about summary refs log tree commit diff
path: root/nixpkgs
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2024-03-24 11:04:41 +0100
committerAlyssa Ross <hi@alyssa.is>2024-03-24 11:04:41 +0100
commit5423cabbbf2b6dec5568f1ecabd288d5d9a642ec (patch)
treef316a6a921bfefd3a63bd4502c2eb50ff1644f67 /nixpkgs
parent46a88117a05c3469af5d99433af140c3de8ca088 (diff)
parent8aa81f34981add12aecada6c702ddbbd0375ca36 (diff)
downloadnixlib-5423cabbbf2b6dec5568f1ecabd288d5d9a642ec.tar
nixlib-5423cabbbf2b6dec5568f1ecabd288d5d9a642ec.tar.gz
nixlib-5423cabbbf2b6dec5568f1ecabd288d5d9a642ec.tar.bz2
nixlib-5423cabbbf2b6dec5568f1ecabd288d5d9a642ec.tar.lz
nixlib-5423cabbbf2b6dec5568f1ecabd288d5d9a642ec.tar.xz
nixlib-5423cabbbf2b6dec5568f1ecabd288d5d9a642ec.tar.zst
nixlib-5423cabbbf2b6dec5568f1ecabd288d5d9a642ec.zip
Merge branch 'nixos-unstable-small' of https://github.com/NixOS/nixpkgs
Diffstat (limited to 'nixpkgs')
-rw-r--r--nixpkgs/.github/CODEOWNERS19
-rw-r--r--nixpkgs/.github/PULL_REQUEST_TEMPLATE.md2
-rw-r--r--nixpkgs/.github/labeler.yml420
-rw-r--r--nixpkgs/.github/workflows/backport.yml4
-rw-r--r--nixpkgs/.github/workflows/basic-eval.yml4
-rw-r--r--nixpkgs/.github/workflows/check-by-name.yml4
-rw-r--r--nixpkgs/.github/workflows/check-maintainers-sorted.yaml4
-rw-r--r--nixpkgs/.github/workflows/editorconfig.yml4
-rw-r--r--nixpkgs/.github/workflows/labels.yml2
-rw-r--r--nixpkgs/.github/workflows/manual-nixos.yml4
-rw-r--r--nixpkgs/.github/workflows/manual-nixpkgs.yml4
-rw-r--r--nixpkgs/.github/workflows/nix-parse.yml4
-rw-r--r--nixpkgs/.github/workflows/periodic-merge-24h.yml2
-rw-r--r--nixpkgs/.github/workflows/periodic-merge-6h.yml2
-rw-r--r--nixpkgs/.github/workflows/update-terraform-providers.yml6
-rw-r--r--nixpkgs/.gitignore1
-rw-r--r--nixpkgs/README.md11
-rw-r--r--nixpkgs/doc/anchor-use.js3
-rw-r--r--nixpkgs/doc/anchor.min.js9
-rw-r--r--nixpkgs/doc/build-helpers/fetchers.chapter.md4
-rw-r--r--nixpkgs/doc/build-helpers/images.md1
-rw-r--r--nixpkgs/doc/build-helpers/images/snaptools.section.md71
-rw-r--r--nixpkgs/doc/build-helpers/trivial-build-helpers.chapter.md121
-rw-r--r--nixpkgs/doc/default.nix5
-rw-r--r--nixpkgs/doc/languages-frameworks/cuda.section.md2
-rw-r--r--nixpkgs/doc/languages-frameworks/haskell.section.md7
-rw-r--r--nixpkgs/doc/languages-frameworks/java.section.md29
-rw-r--r--nixpkgs/doc/languages-frameworks/javascript.section.md49
-rw-r--r--nixpkgs/doc/languages-frameworks/python.section.md9
-rw-r--r--nixpkgs/doc/overrides.css22
-rw-r--r--nixpkgs/doc/style.css523
-rw-r--r--nixpkgs/lib/attrsets.nix1866
-rw-r--r--nixpkgs/lib/customisation.nix133
-rw-r--r--nixpkgs/lib/deprecated.nix104
-rw-r--r--nixpkgs/lib/generators.nix209
-rw-r--r--nixpkgs/lib/kernel.nix4
-rw-r--r--nixpkgs/lib/licenses.nix20
-rw-r--r--nixpkgs/lib/lists.nix1704
-rw-r--r--nixpkgs/lib/systems/default.nix4
-rw-r--r--nixpkgs/lib/tests/misc.nix89
-rw-r--r--nixpkgs/lib/tests/modules/alias-with-priority-can-override.nix13
-rw-r--r--nixpkgs/lib/tests/modules/alias-with-priority.nix13
-rw-r--r--nixpkgs/lib/tests/modules/extendModules-168767-imports.nix9
-rw-r--r--nixpkgs/lib/trivial.nix941
-rw-r--r--nixpkgs/maintainers/maintainer-list.nix290
-rw-r--r--nixpkgs/maintainers/scripts/bootstrap-files/README.md14
-rwxr-xr-xnixpkgs/maintainers/scripts/bootstrap-files/refresh-tarballs.bash56
-rw-r--r--nixpkgs/maintainers/scripts/haskell/dependencies.nix6
-rwxr-xr-xnixpkgs/maintainers/scripts/haskell/hydra-report.hs10
-rwxr-xr-xnixpkgs/maintainers/scripts/haskell/regenerate-hackage-packages.sh4
-rwxr-xr-xnixpkgs/maintainers/scripts/haskell/update-stackage.sh2
-rwxr-xr-xnixpkgs/maintainers/scripts/kde/generate-sources.py22
-rw-r--r--nixpkgs/maintainers/scripts/luarocks-packages.csv2
-rw-r--r--nixpkgs/maintainers/scripts/nix-generate-from-cpan.nix1
-rw-r--r--nixpkgs/maintainers/scripts/nixpkgs-lint.nix1
-rw-r--r--nixpkgs/maintainers/team-list.nix12
-rw-r--r--nixpkgs/nixos/doc/manual/default.nix7
-rw-r--r--nixpkgs/nixos/doc/manual/development/writing-nixos-tests.section.md2
-rw-r--r--nixpkgs/nixos/doc/manual/installation/installing.chapter.md3
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-2405.section.md47
-rw-r--r--nixpkgs/nixos/lib/make-iso9660-image.nix25
-rw-r--r--nixpkgs/nixos/lib/make-iso9660-image.sh5
-rw-r--r--nixpkgs/nixos/lib/make-options-doc/default.nix99
-rw-r--r--nixpkgs/nixos/lib/systemd-lib.nix15
-rw-r--r--nixpkgs/nixos/lib/utils.nix4
-rw-r--r--nixpkgs/nixos/modules/config/nix.nix11
-rw-r--r--nixpkgs/nixos/modules/config/no-x-libs.nix2
-rw-r--r--nixpkgs/nixos/modules/config/resolvconf.nix2
-rw-r--r--nixpkgs/nixos/modules/hardware/video/webcam/ipu6.nix5
-rw-r--r--nixpkgs/nixos/modules/i18n/input-method/fcitx5.nix4
-rw-r--r--nixpkgs/nixos/modules/image/repart-image.nix99
-rw-r--r--nixpkgs/nixos/modules/image/repart.nix72
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix11
-rw-r--r--nixpkgs/nixos/modules/misc/mandoc.nix34
-rw-r--r--nixpkgs/nixos/modules/module-list.nix4
-rw-r--r--nixpkgs/nixos/modules/programs/_1password-gui.nix8
-rw-r--r--nixpkgs/nixos/modules/programs/clash-verge.nix7
-rw-r--r--nixpkgs/nixos/modules/programs/gnupg.nix42
-rw-r--r--nixpkgs/nixos/modules/programs/starship.nix29
-rw-r--r--nixpkgs/nixos/modules/programs/steam.nix13
-rw-r--r--nixpkgs/nixos/modules/programs/wayland/sway.nix5
-rw-r--r--nixpkgs/nixos/modules/security/pam.nix2
-rw-r--r--nixpkgs/nixos/modules/services/audio/spotifyd.nix4
-rw-r--r--nixpkgs/nixos/modules/services/audio/wyoming/faster-whisper.nix17
-rw-r--r--nixpkgs/nixos/modules/services/backup/bacula.nix222
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix34
-rw-r--r--nixpkgs/nixos/modules/services/databases/lldap.nix17
-rw-r--r--nixpkgs/nixos/modules/services/databases/postgresql.md2
-rw-r--r--nixpkgs/nixos/modules/services/databases/postgresql.nix2
-rw-r--r--nixpkgs/nixos/modules/services/desktop-managers/plasma6.nix (renamed from nixpkgs/nixos/modules/services/x11/desktop-managers/plasma6.nix)20
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.nix10
-rw-r--r--nixpkgs/nixos/modules/services/desktops/pipewire/wireplumber.nix32
-rw-r--r--nixpkgs/nixos/modules/services/development/hoogle.nix15
-rw-r--r--nixpkgs/nixos/modules/services/display-managers/greetd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/hardware/fwupd.nix4
-rw-r--r--nixpkgs/nixos/modules/services/matrix/matrix-sliding-sync.nix3
-rw-r--r--nixpkgs/nixos/modules/services/matrix/synapse.nix3
-rw-r--r--nixpkgs/nixos/modules/services/misc/etebase-server.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/gitlab.nix11
-rw-r--r--nixpkgs/nixos/modules/services/misc/llama-cpp.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/ollama.nix60
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix7
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/artifactory.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bind.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bird.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/buildkite-agent.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/collectd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dmarc.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dnsmasq.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/domain.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/exportarr.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix1
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/flow.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fritz.nix97
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fritzbox.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/graphite.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/idrac.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/imap-mailstat.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/influxdb.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/ipmi.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/json.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/junos-czerwonk.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/kea.nix22
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/keylight.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/knot.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/lnd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mail.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mikrotik.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/minio.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mongodb.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mysqld.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nextcloud.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginxlog.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/node.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nut.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pgbouncer.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/php-fpm.nix1
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/ping.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/process.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pve.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/py-air-control.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/redis.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/restic.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rtl_433.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/sabnzbd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/scaphandre.nix1
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/script.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/shelly.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/sql.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/statsd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/surfboard.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/tor.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix1
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unifi.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unpoller.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/v2ray.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/zfs.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/scrutiny.nix85
-rw-r--r--nixpkgs/nixos/modules/services/networking/dnscache.nix6
-rw-r--r--nixpkgs/nixos/modules/services/networking/mihomo.nix118
-rw-r--r--nixpkgs/nixos/modules/services/networking/murmur.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/mycelium.nix133
-rw-r--r--nixpkgs/nixos/modules/services/networking/nebula.nix34
-rw-r--r--nixpkgs/nixos/modules/services/networking/networkmanager.nix30
-rw-r--r--nixpkgs/nixos/modules/services/networking/tinyproxy.nix1
-rw-r--r--nixpkgs/nixos/modules/services/networking/unbound.nix9
-rw-r--r--nixpkgs/nixos/modules/services/security/esdm.nix101
-rw-r--r--nixpkgs/nixos/modules/services/security/yubikey-agent.nix14
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/engelsystem.nix1
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/gotosocial.nix2
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/hedgedoc.nix8
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/komga.nix145
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/nextcloud.nix1
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/pretix.nix581
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/suwayomi-server.md3
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/suwayomi-server.nix11
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/garage.nix14
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/stargazer.nix8
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/budgie.nix9
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/deepin.nix1
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix2
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/lxqt.nix2
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/mate.nix126
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix1
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix1
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/sddm.nix131
-rw-r--r--nixpkgs/nixos/modules/services/x11/window-managers/nimdow.nix11
-rw-r--r--nixpkgs/nixos/modules/services/x11/window-managers/xmonad.nix2
-rw-r--r--nixpkgs/nixos/modules/services/x11/xserver.nix2
-rw-r--r--nixpkgs/nixos/modules/system/boot/binfmt.nix1
-rw-r--r--nixpkgs/nixos/modules/system/boot/kernel.nix5
-rw-r--r--nixpkgs/nixos/modules/system/boot/luksroot.nix6
-rw-r--r--nixpkgs/nixos/modules/system/boot/networkd.nix6
-rw-r--r--nixpkgs/nixos/modules/system/boot/stage-1.nix10
-rw-r--r--nixpkgs/nixos/modules/system/boot/systemd.nix2
-rw-r--r--nixpkgs/nixos/modules/system/boot/systemd/initrd.nix44
-rw-r--r--nixpkgs/nixos/modules/system/boot/timesyncd.nix3
-rw-r--r--nixpkgs/nixos/modules/system/boot/uki.nix17
-rw-r--r--nixpkgs/nixos/modules/testing/test-instrumentation.nix10
-rw-r--r--nixpkgs/nixos/modules/virtualisation/amazon-ec2-amis.nix68
-rw-r--r--nixpkgs/nixos/modules/virtualisation/amazon-image.nix4
-rw-r--r--nixpkgs/nixos/modules/virtualisation/incus.nix13
-rw-r--r--nixpkgs/nixos/modules/virtualisation/nixos-containers.nix6
-rw-r--r--nixpkgs/nixos/tests/all-tests.nix15
-rw-r--r--nixpkgs/nixos/tests/budgie.nix51
-rw-r--r--nixpkgs/nixos/tests/drawterm.nix15
-rw-r--r--nixpkgs/nixos/tests/etcd/etcd-cluster.nix (renamed from nixpkgs/nixos/tests/etcd-cluster.nix)2
-rw-r--r--nixpkgs/nixos/tests/etcd/etcd.nix (renamed from nixpkgs/nixos/tests/etcd.nix)2
-rw-r--r--nixpkgs/nixos/tests/freetube.nix2
-rw-r--r--nixpkgs/nixos/tests/hibernate.nix2
-rw-r--r--nixpkgs/nixos/tests/incus/container.nix1
-rw-r--r--nixpkgs/nixos/tests/incus/default.nix2
-rw-r--r--nixpkgs/nixos/tests/incus/lxd-to-incus.nix1
-rw-r--r--nixpkgs/nixos/tests/incus/openvswitch.nix65
-rw-r--r--nixpkgs/nixos/tests/incus/preseed.nix1
-rw-r--r--nixpkgs/nixos/tests/incus/socket-activated.nix1
-rw-r--r--nixpkgs/nixos/tests/incus/storage.nix46
-rw-r--r--nixpkgs/nixos/tests/incus/ui.nix1
-rw-r--r--nixpkgs/nixos/tests/incus/virtual-machine.nix1
-rw-r--r--nixpkgs/nixos/tests/installer-systemd-stage-1.nix1
-rw-r--r--nixpkgs/nixos/tests/installer.nix42
-rw-r--r--nixpkgs/nixos/tests/kea.nix26
-rw-r--r--nixpkgs/nixos/tests/keycloak.nix32
-rw-r--r--nixpkgs/nixos/tests/krb5/default.nix3
-rw-r--r--nixpkgs/nixos/tests/ladybird.nix2
-rw-r--r--nixpkgs/nixos/tests/make-test-python.nix2
-rw-r--r--nixpkgs/nixos/tests/mate-wayland.nix63
-rw-r--r--nixpkgs/nixos/tests/mate.nix9
-rw-r--r--nixpkgs/nixos/tests/mihomo.nix44
-rw-r--r--nixpkgs/nixos/tests/miriway.nix4
-rw-r--r--nixpkgs/nixos/tests/mycelium/default.nix57
-rw-r--r--nixpkgs/nixos/tests/mycelium/peer1.key1
-rw-r--r--nixpkgs/nixos/tests/mycelium/peer2.key1
-rw-r--r--nixpkgs/nixos/tests/nebula.nix6
-rw-r--r--nixpkgs/nixos/tests/nimdow.nix25
-rw-r--r--nixpkgs/nixos/tests/nix-config.nix18
-rw-r--r--nixpkgs/nixos/tests/nixops/default.nix18
-rw-r--r--nixpkgs/nixos/tests/ollama.nix56
-rw-r--r--nixpkgs/nixos/tests/opensearch.nix30
-rw-r--r--nixpkgs/nixos/tests/pass-secret-service.nix1
-rw-r--r--nixpkgs/nixos/tests/pg_anonymizer.nix94
-rw-r--r--nixpkgs/nixos/tests/pgvecto-rs.nix76
-rw-r--r--nixpkgs/nixos/tests/privoxy.nix13
-rw-r--r--nixpkgs/nixos/tests/prometheus-exporters.nix48
-rw-r--r--nixpkgs/nixos/tests/redlib.nix20
-rw-r--r--nixpkgs/nixos/tests/systemd-machinectl.nix41
-rw-r--r--nixpkgs/nixos/tests/vscodium.nix2
-rw-r--r--nixpkgs/nixos/tests/web-apps/gotosocial.nix2
-rw-r--r--nixpkgs/nixos/tests/web-apps/pretix.nix47
-rw-r--r--nixpkgs/pkgs/README.md4
-rw-r--r--nixpkgs/pkgs/applications/audio/alsa-scarlett-gui/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/ams/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/ario/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/asunder/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/audacity/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/audio-recorder/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/bambootracker/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/blanket/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/bucklespring/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/cantata/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/castopod/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/cd-discid/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/cider/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/cplay-ng/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/curseradio/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/deadbeef/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/dfasma/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/drumkv1/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/easyabc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/easyeffects/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/easytag/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak/edit.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/exaile/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faustlive.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/fdkaac/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/flac2all/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/flacon/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/friture/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/ft2-clone/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/g4music/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/giada/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/goattracker/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/greg/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/gtkpod/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/audio/guitarix/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/helio-workstation/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/hushboard/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/iannix/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/in-formant/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/indicator-sound-switcher/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/jack-autoconnect/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/jack-capture/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/jackmix/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/jacktrip/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/audio/jamesdsp/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/jmusicbot/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/librespot/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/lingot/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/linvstmanager/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/lmms/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/lyrebird/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/mellowplayer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/meters_lv2/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/miniaudicle/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/mixxx/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/mousai/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/munt/mt32emu-qt.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/munt/mt32emu-smf2wav.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/musescore/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/muso/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/mympd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/nootka/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/nova-filters/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/padthv1/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/paprefs/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/parlatype/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/patchance/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/pianobooster/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/picard/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/pipecontrol/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/pithos/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/audio/plugdata/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/polyphone/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/praat/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/pragha/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/psst/default.nix2
-rwxr-xr-xnixpkgs/pkgs/applications/audio/psst/update.sh4
-rw-r--r--nixpkgs/pkgs/applications/audio/pt2-clone/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/puddletag/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseeffects-legacy/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/pyradio/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/qjackctl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/qmidiarp/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/qmidinet/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/qmmp/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/audio/qsampler/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/qsynth/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/audio/r128gain/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/radioboat/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/redoflacs/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/rofi-pulse-select/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/rosegarden/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/rubyripper/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/samplebrain/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/samplv1/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/schismtracker/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/seq66/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/sfxr/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/shortwave/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/snd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/sonata/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/sound-juicer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/soundconverter/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/soundkonverter/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/spek/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/spot/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-cli-linux/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-player/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-qt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-tui/0001-Add-Collection-SearchType.patch41
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-tui/Cargo.lock2704
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-tui/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/audio/spotifyd/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/audio/squeezelite/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/sublime-music/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/surge-XT/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/synthv1/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/tauon/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/tenacity/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/tony/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/traverso/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/vcv-rack/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/audio/vmpk/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/waylyrics/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/yams/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/yesplaymusic/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/audio/youtube-music/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/backup/urbackup-client/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bisq-desktop/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin-abc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/cgminer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/blockchains/clightning/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/dcrwallet/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/blockchains/dogecoin/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/blockchains/exodus/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/framesh/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/gridcoin-research/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/lighthouse/Cargo.lock2766
-rw-r--r--nixpkgs/pkgs/applications/blockchains/lighthouse/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/blockchains/lighthouse/use-c-kzg-from-crates-io.patch11
-rw-r--r--nixpkgs/pkgs/applications/blockchains/lighthouse/use-system-sqlite.patch6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/optimism/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/polkadot/Cargo.lock1494
-rw-r--r--nixpkgs/pkgs/applications/blockchains/polkadot/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/blockchains/sparrow/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/blockchains/ton/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/trezor-suite/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/display-managers/greetd/dlm.nix1
-rw-r--r--nixpkgs/pkgs/applications/display-managers/greetd/wlgreet.nix1
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix1
-rw-r--r--nixpkgs/pkgs/applications/editors/android-studio/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/bluefish/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/codux/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/cpeditor/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/editors/eclipse/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-packages.nix12
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix15
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages/cask/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lspce/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/make-emacs.nix7
-rw-r--r--nixpkgs/pkgs/applications/editors/gobby/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/editors/jetbrains/bin/versions.json440
-rw-r--r--nixpkgs/pkgs/applications/editors/jetbrains/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/jetbrains/plugins/plugins.json315
-rw-r--r--nixpkgs/pkgs/applications/editors/jupyter-kernels/xeus-cling/xeus-cling.nix1
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/generated.nix1
-rw-r--r--nixpkgs/pkgs/applications/editors/lapce/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/leo-editor/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/neovide/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/pulsar/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/editors/rehex/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/rstudio/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/editors/rstudio/ignore-etc-os-release.patch77
-rw-r--r--nixpkgs/pkgs/applications/editors/rstudio/use-system-node.patch30
-rw-r--r--nixpkgs/pkgs/applications/editors/setzer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/editors/standardnotes/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/common.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/plugins/deprecated.json6
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/plugins/generated.nix1208
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix333
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/plugins/overrides.nix18
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/plugins/patches/openscad.nvim/program_paths.patch14
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/plugins/vim-clap/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/plugins/vim-plugin-names12
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/extensions/default.nix433
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/extensions/ms-dotnettools.csharp/default.nix145
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/vscode.nix16
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/vscodium.nix12
-rw-r--r--nixpkgs/pkgs/applications/emulators/86box/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/emulators/bsnes/ares/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/emulators/cdemu/vhba.nix4
-rw-r--r--nixpkgs/pkgs/applications/emulators/cemu/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/emulators/fceux/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/emulators/flycast/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/emulators/fuse-emulator/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/emulators/mednafen/server.nix1
-rw-r--r--nixpkgs/pkgs/applications/emulators/mednaffe/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/emulators/pcem/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/emulators/punes/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/emulators/retroarch/hashes.json96
-rw-r--r--nixpkgs/pkgs/applications/emulators/ripes/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/emulators/rpcemu/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/emulators/sameboy/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/emulators/termtekst/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/emulators/wine/sources.nix6
-rw-r--r--nixpkgs/pkgs/applications/emulators/wine/winetricks.nix1
-rw-r--r--nixpkgs/pkgs/applications/emulators/xemu/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/emulators/yabause/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/file-managers/browsr/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/file-managers/dfilemanager/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/file-managers/fm/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/file-managers/xfe/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/gis/grass/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/gis/qgis/set-pyqt-package-dirs-ltr.patch59
-rw-r--r--nixpkgs/pkgs/applications/gis/qgis/unwrapped-ltr.nix68
-rw-r--r--nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/ahoviewer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/antimony/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/apngasm/2.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/awesomebump/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/blockbench-electron/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/graphics/conjure/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/curtail/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/dia/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/djview/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/dosage/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/drawing/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/drawio/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/graphics/drawpile/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/eddy/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/emblem/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/evilpixie/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/eyedropper/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/fiji/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/fstl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/gcolor3/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/geeqie/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/goxel/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/graphics/gthumb/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/graphics/hdrmerge/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/icon-library/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/identity/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/image-roll/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/imgp/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/komikku/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/krop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/ktikz/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/leocad/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/lightburn/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/meshlab/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/oculante/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/opentoonz/default.nix105
-rw-r--r--nixpkgs/pkgs/applications/graphics/opentoonz/libtiff.nix56
-rw-r--r--nixpkgs/pkgs/applications/graphics/opentoonz/source.nix16
-rw-r--r--nixpkgs/pkgs/applications/graphics/ovito/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/paleta/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/pencil/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/photoflare/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/photoqt/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/graphics/phototonic/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/pick-colour-picker/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/pikopixel/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/graphics/pizarra/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/qcomicbook/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/qimgv/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/qosmic/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/qscreenshot/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/qvge/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/qview/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/rnote/Cargo.lock300
-rw-r--r--nixpkgs/pkgs/applications/graphics/rnote/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/rx/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/xsane.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/scantailor/advanced.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/shotwell/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/shutter/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/structorizer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/symbolic-preview/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/tev/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/timelapse-deflicker/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/vengi-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/vengi-tools/test-voxconvert-all-formats.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/vengi-tools/test-voxconvert-roundtrip.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/veusz/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/weylus/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/xaos/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/xfig/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/xournalpp/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/graphics/xpano/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/graphics/xrgears/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/alligator.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/arianna.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/ark/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/audiotube.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/bomber.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/bovo.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/cantor.nix3
-rw-r--r--nixpkgs/pkgs/applications/kde/dragon.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/elisa.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/falkon.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/filelight.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/ghostwriter.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/granatier.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/juk.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/k3b.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kaddressbook.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kalk.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kalzium.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kamoso.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kapman.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kapptemplate.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kasts.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/katomic.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kblackbox.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kblocks.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kbounce.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kbreakout.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kcalc.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kcharselect.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kcolorchooser.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kde-inotify-survey.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kdebugsettings.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kdevelop/kdevelop-pg-qt.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kdiamond.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/keysmith.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kfind.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kgeography.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kget.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kgpg.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/khelpcenter.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kigo.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/killbots.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kirigami-gallery.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/klettres.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/klines.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kmag.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kmahjongg.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kmines.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kmousetool.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kmplot.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/knavalbattle.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/knetwalk.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/knights.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/koko.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kolf.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kollision.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kolourpaint.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kompare.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/konquest.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kontact.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/konversation.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/korganizer.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/krdc.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/krecorder.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kreversi.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kruler.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kshisen.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kspaceduel.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/ksquares.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/ksudoku.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/ksystemlog.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kteatime.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/ktimer.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/ktouch.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/ktrip.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kturtle.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kwalletmanager.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kwave.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/kweather.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/minuet.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/neochat.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/okular.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/palapeli.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/picmi.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/plasmatube/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/qmlkonsole.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/rocs.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/skanlite.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/skanpage.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/spectacle.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/telly-skout.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/tokodon.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/yakuake.nix1
-rw-r--r--nixpkgs/pkgs/applications/maui/booth.nix1
-rw-r--r--nixpkgs/pkgs/applications/maui/buho.nix1
-rw-r--r--nixpkgs/pkgs/applications/maui/clip.nix1
-rw-r--r--nixpkgs/pkgs/applications/maui/communicator.nix1
-rw-r--r--nixpkgs/pkgs/applications/maui/index.nix1
-rw-r--r--nixpkgs/pkgs/applications/maui/mauiman.nix1
-rw-r--r--nixpkgs/pkgs/applications/maui/nota.nix1
-rw-r--r--nixpkgs/pkgs/applications/maui/pix.nix1
-rw-r--r--nixpkgs/pkgs/applications/maui/shelf.nix1
-rw-r--r--nixpkgs/pkgs/applications/maui/station.nix1
-rw-r--r--nixpkgs/pkgs/applications/maui/vvave.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/1password-gui/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/1password-gui/linux.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/1password/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/9menu/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/OSCAR/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/ablog/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/acpic/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/aitrack/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/almanah/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/antfs-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/apvlv/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/archivebox/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/asciiquarium/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/authenticator/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/auto-multiple-choice/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/avell-unofficial-control-center/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/bambu-studio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/bambu-studio/meshboolean-const.patch21
-rw-r--r--nixpkgs/pkgs/applications/misc/bambu-studio/orca-slicer.nix45
-rw-r--r--nixpkgs/pkgs/applications/misc/bemenu/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/bfcal/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/bibletime/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/bikeshed/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/binocle/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/birdtray/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/bitwarden-menu/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/blender/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/bluetooth_battery/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/bottles/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/break-time/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/brewtarget/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/buku/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/caerbannog/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/calcoo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/calcure/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/calibre/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/cambrinary/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/candle/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cartridges/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cask-server/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cbatticon/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/chatblade/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/cherrytree/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/chewing-editor/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/clight/clightd.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/clight/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/confclerk/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/coolreader/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/copyq/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/misc/corectrl/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/cotp/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/coursera-dl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubiomes-viewer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/coreaction/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/corearchiver/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/corefm/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/coregarage/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/corehunt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/coreimage/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/corepad/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/corepaint/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/corepdf/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/corepins/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/coreshot/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/corestats/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/corestuff/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/coretime/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/coretoppings/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cubocore-packages/coreuniverse/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cum/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cura/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/cura/plugins.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/curaengine/stable.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/dasel/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/ddcui/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/deckmaster/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/dict-cc-py/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/diffpdf/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/diffuse/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/ding/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/dmensamenu/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/dmenu-rs/Cargo.lock334
-rw-r--r--nixpkgs/pkgs/applications/misc/dmenu-rs/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/misc/dmenu/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/dnd-tools/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/done/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/misc/dotfiles/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/electron-cash/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/electrum/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/electrum/grs.nix15
-rw-r--r--nixpkgs/pkgs/applications/misc/electrum/ltc.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/electrum/update.nix20
-rw-r--r--nixpkgs/pkgs/applications/misc/epr/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/etesync-dav/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/evtest-qt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/extract_url/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/faircamp/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/fbmenugen/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/fff/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/flowtime/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/fluxboxlauncher/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/font-manager/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/freemind/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/furtherance/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/fusee-interfacee-tk/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/gImageReader/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/gallery-dl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gcalcli/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/gcstar/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/get_iplayer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/gimoji/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/girara/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/glava/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/gmtp/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/gnome-firmware/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/gnome-usage/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/gopacked/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/gpxlab/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/gpxsee/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/gramps/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/gummi/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/hamster/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/harsh/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/hcl2json/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/heimer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/hollywood/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/hovercraft/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/html5validator/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/huggle/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/imaginer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/inkcut/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/inlyne/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/jetbrains-toolbox/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/johnny/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/josm/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/misc/k4dirstat/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/kanjidraw/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/kapow/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/kchmviewer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/keepassxc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/keepmenu/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/keeweb/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/keystore-explorer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/kickoff/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/kiwix/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/kiwix/tools.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/kjv/lukesmithxyz-kjv.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/klayout/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/klipper-estimator/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/klipperscreen/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/konsave/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/koreader/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/krename/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/ksmoothdock/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/kuro/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/latte-dock/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/loxodo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/makehuman/default.nix145
-rw-r--r--nixpkgs/pkgs/applications/misc/makeself/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/maliit-framework/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/maliit-keyboard/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/mbutil/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/mediaelch/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/meerk40t/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/menumaker/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/michabo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/mkgmap/build.xml.patch19
-rw-r--r--nixpkgs/pkgs/applications/misc/mkgmap/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/misc/mkgmap/ignore-impure-test.patch20
-rw-r--r--nixpkgs/pkgs/applications/misc/mkgmap/splitter/build.xml.patch18
-rw-r--r--nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/misc/mnamer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/mob/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/mozphab/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/mpvc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/mwic/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/nerd-font-patcher/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/notify-osd/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/notifymuch/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/numberstation/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/nwg-bar/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/nwg-dock-hyprland/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/nwg-menu/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/nwg-panel/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/nwg-wrapper/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/obinskit/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/misc/obsidian/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/octoprint/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/misc/octoprint/plugins.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/omegat.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/openbangla-keyboard/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/openbrf/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/opentrack/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/orca/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/osmctools/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/otpclient/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/overmind/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/oversteer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/pairdrop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/passky-desktop/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/misc/pattypan/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/pdf-quench/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/pdfarranger/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/pdfpc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/pdfposter/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/pe-bear/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/pgmodeler/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/phoc/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/pipr/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/plank/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/plots/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/polar-bookshelf1/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/pot/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/procmail/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/misc/projectlibre/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/ptask/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/pueue/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/pure-maps/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/pytrainer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/qMasterPassword/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/qelectrotech/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/qolibri/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/qsudo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/qt-box-editor/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/qtpass/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/razergenie/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/regextester/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/remarkable/rmview/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/remontoire/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/resp-app/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/revanced-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/rofi-screenshot/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/rootbar/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/rsibreak/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/schemes/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/scli/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/seashells/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/selectdefaultapplication/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/sent/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/serial-studio/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/sfwbar/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/shell-genie/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/shipments/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/sigal/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/siglo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/sioyek/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/skytemple/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/misc/slic3r/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/snapper-gui/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/sqls/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/sticky/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/stylish/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/subsurface/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/sway-launcher-desktop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/swaynotificationcenter/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/sweethome3d/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/syncthingtray/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/system76-keyboard-configurator/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/tableplus/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/tasknc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/taskopen/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/tdrop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/teleprompter/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/tellico/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/termdown/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/termpdf.py/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/themechanger/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/thinking-rock/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/tipp10/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/tiv/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/toot/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/topydo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/tpmmanager/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/tuhi/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/tuir/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/twitch-chat-downloader/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/tzupdate/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/ubpm/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/valent/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/misc/variety/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/vhs/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/viking/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/vit/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/vym/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/watchmate/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/watershot/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/waybar/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/misc/waycorner/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/misc/waypaper/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/weather/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/webfontkitgenerator/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/whalebird/default.nix121
-rw-r--r--nixpkgs/pkgs/applications/misc/wikicurses/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/wordbook/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/workrave/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/wpm/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/wttrbar/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/xca/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/xfontsel/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/xmrig/proxy.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/xneur/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/xpad/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/xsuspender/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/xygrib/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/ydict/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/yewtube/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/yubioath-flutter/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/zathura/core/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/misc/zk-shell/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/zscroll/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/adguardian/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/breitbandmessung/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/breitbandmessung/sources.nix11
-rwxr-xr-xnixpkgs/pkgs/applications/networking/breitbandmessung/update.sh29
-rw-r--r--nixpkgs/pkgs/applications/networking/brig/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/badwolf/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/brave/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/castor/default.nix1
-rwxr-xr-xnixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py3
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix36
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix818
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/developer-edition_sources.nix818
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix818
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/floorp/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/ladybird/default.nix132
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/librewolf/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/librewolf/librewolf.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/librewolf/src.json10
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/litebrowser/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/midori/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mullvad-browser/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/netsurf/browser.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/opera/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/polypane/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/surf/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/tor-browser/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/calls/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/circumflex/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/aiac/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argocd-autopilot/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/arkade/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/assign-lb-ip/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/atmos/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cilium/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/civo/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/clusterctl/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cmctl/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cni/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/containerpilot/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/dnsname-cni/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/falcoctl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fetchit/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/flink/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/func/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/gatekeeper/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/glooctl/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/hashi-up/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm-dashboard/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm-docs/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-unittest.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/hubble/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/jx/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3d/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/1_24/chart-versions.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/1_24/default.nix332
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/1_25/0001-script-download-strip-downloading-just-package-CRD.patch41
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/1_25/default.nix336
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/1_26/chart-versions.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/1_26/versions.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/1_27/versions.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/1_28/versions.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/1_29/versions.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/builder.nix13
-rwxr-xr-xnixpkgs/pkgs/applications/networking/cluster/k3s/update-script.sh4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3sup/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k8sgpt/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/karmor/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kbst/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kfilt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kluctl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kn/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kops/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/krelay/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ktop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ktunnel/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubecolor/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-explore/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-gadget/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-images/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-tree/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubedog/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubefirst/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubemqctl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubent/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubergrunt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeshark/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubevela/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubexit/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kyverno/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/levant/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/linkerd/generic.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nova/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ocm/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/odo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/pig/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/pinniped/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/pluto/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/pv-migrate/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/rancher/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/rke/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/roxctl/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/stern/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/talosctl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/temporal/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/temporalite/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-backend-git/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json300
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraspace/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tf-summarize/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tfautomv/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tfswitch/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tftui/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tfupdate/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tgswitch/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tilt/binary.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/timoni/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tubekit/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/vcluster/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/velero/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/waagent/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/werf/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/yor/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/zarf/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/compactor/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/deck/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/discordo/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/dnscontrol/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/feed2imap-go/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/fluent-reader/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/goeland/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/newsflash/Cargo.lock214
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/photon/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/russ/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/tuifeed/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/yarr/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/firehol/iprange.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/flent/http-getter.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/flexget/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/geph/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/gnmic/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/gui.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/gopher/geomyidae/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/gopher/phetch/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/daq/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/zeek/broker/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/zeek/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/abaddon/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/beeper/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/feishu/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/flare-signal/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/pubspec.lock.json195
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/iamb/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/nchat/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/neosay/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix68
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix74
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signaldctl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/tangram/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/macos.patch14
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/webcord/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/webex/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/xmppc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/communi/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/convos/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/halloy/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/ii/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/irssi/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/kirc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/senpai/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/sic/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/srain/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/jnetmap/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/localsend/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/alot/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/betterbird/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/caeml/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/himalaya/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailspring/darwin.nix34
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix105
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailspring/linux.nix92
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch/notmuch-mailmover.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/packages.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mhost/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/mumble/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/netmaker/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/newsreaders/raven-reader/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/enhanced-ctorrent/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/libutp/3.4.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/stig/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/storrent/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/tremotesf/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/pcloud/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/pjsip/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix40
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/dayon/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/rymdport/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/siproxd/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/qtwirediff/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/whsniff/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/casync/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/celeste/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/desync/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/lcsync/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/openrsync/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rclone/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/storj-uplink/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/syncthing/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/twingate/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/wgcf/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/xpipe/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/PageEdit/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/abiword/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/appflowy/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/beamerpresenter/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/beancount/bean-add.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/beebeep/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/bookworm/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/csv2odf/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/cutemarked-ng/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/endeavour/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/espanso/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/office/fava/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/office/foliate/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/gnote/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/gnumeric/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/grisbi/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/gtg/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/homebank/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/iotas/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/office/jameica/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/office/karlender/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/kbibtex/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/kitsas/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/kmymoney/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/ktimetracker/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/mytetra/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/notes/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/osmo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/paperless-ngx/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/office/pdfmixtool/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/planify/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/planner/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/portfolio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/pympress/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/qnotero/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/qownnotes/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/qpdfview/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/scribus/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/tagainijisho/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/timeline/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/timeular/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/todofi.sh/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/treesheets/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/office/tryton/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/office/vnote/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/watson/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/zotero/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/zotero/zotero_7.nix1
-rw-r--r--nixpkgs/pkgs/applications/plasma-mobile/plasma-dialer.nix1
-rw-r--r--nixpkgs/pkgs/applications/plasma-mobile/plasma-phonebook.nix1
-rw-r--r--nixpkgs/pkgs/applications/plasma-mobile/plasma-settings.nix1
-rw-r--r--nixpkgs/pkgs/applications/plasma-mobile/spacebar.nix1
-rw-r--r--nixpkgs/pkgs/applications/printing/pappl/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/radio/abracadabra/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/btlejack/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/radio/cloudlog/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/cqrlog/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/radio/gnuradio/shared.nix1
-rw-r--r--nixpkgs/pkgs/applications/radio/gqrx/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/radio/gridtracker/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/radio/grig/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/radio/guglielmo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/radio/inspectrum/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/radio/klog/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/radio/multimon-ng/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/radio/openwebrx/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/radio/qlog/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/radio/qradiolink/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/radio/qsstv/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/radio/sdrangel/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/sigdigger/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/radio/srsran/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/radio/tqsl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/astrolog/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/calcmysky/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/gpredict/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/xearth/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/xplanet/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/aragorn/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/astral/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/science/biology/astral/make-deterministic.patch21
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bamtools/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bioawk/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bwa-mem2/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bwa/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/cmtk/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/deeptools/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/biology/delly/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/diamond/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/dssp/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/fastp/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/febio-studio/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/flywheel-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/genmap/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/igv/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/iqtree/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/itsx/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/jbrowse/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/kalign/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/kallisto/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/macs2/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/macse/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/mafft/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/minia/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/science/biology/minimap2/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/science/biology/mmseqs2/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/muscle/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/octopus/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/prodigal/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/repseek/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/sambamba/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/samblaster/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/seaview/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/seqkit/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/biology/seqtk/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/svaba/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/tebreak/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/biology/trimmomatic/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/veryfasttree/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/apbs/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/autodock-vina/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/avogadro2/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/d-seams/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/element/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/ergoscf/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/nwchem/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/pymol/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/siesta/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/wxmacmolplt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/appcsxcad/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/caneda/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/dataexplorer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/degate/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/digital/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/diylc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/dsview/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/dwfv/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/fped/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/gaw/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/gerbv/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/hyp2mat/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/base.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/runtime_stock_data_path.patch2
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix72
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/magic-vlsi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/nanovna-saver/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/nvc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/openboardview/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/openhantek6022/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/systemc/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/verilator/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/vhd2vl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/xcircuit/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/xoscope/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/engineering/brmodelo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/geometry/tetgen/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/abella/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/anders/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/bitwuzla/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/celf/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/clprover/clprover.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/coq/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cryptoverif/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cubicle/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cvc3/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cvc4/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cvc5/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/dafny/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/dafny/deps.nix41
-rw-r--r--nixpkgs/pkgs/applications/science/logic/easycrypt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/easycrypt/runtest.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/egglog/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch10
-rw-r--r--nixpkgs/pkgs/applications/science/logic/elan/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/science/logic/fast-downward/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/gappa/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/glucose/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/kissat/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/lci/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/lean4/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/science/logic/leo2/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/leo3/binary.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/logisim-evolution/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/science/logic/logisim/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/metis-prover/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/monosat/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/msat/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/naproche/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/opensmt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/ott/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/potassco/clingcon.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/prooftree/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/redprl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/satallax/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/vampire/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/workcraft/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/z3/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/zchaff/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/fasttext/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/uarmsolver/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/LiE/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/R/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/almonds/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/bcal/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/bliss/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/calc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/calculix/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/cemu-ti/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/clp/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/ecm/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/eigenmath/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/science/math/engauge-digitizer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/getdp/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/science/math/glsurf/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/gmsh/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/jags/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/lp_solve/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/msieve/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/science/math/nauty/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/science/math/nota/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/palp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/pcalc/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/perseus/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/programmer-calculator/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/qalculate-qt/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/ratpoints/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/ries/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/ripser/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/env-locations.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sage-env.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sage-src.nix16
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sage.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sagelib.nix15
-rw-r--r--nixpkgs/pkgs/applications/science/math/scalp/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/singular/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/science/math/speedcrunch/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/weka/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/math/zegrapher/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/misc/bada-bib/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/misc/colmap/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/misc/convertall/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/misc/cwltool/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/misc/foldingathome/client.nix15
-rw-r--r--nixpkgs/pkgs/applications/science/misc/gephi/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/misc/gplates/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/misc/netlogo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/misc/nextinspace/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/misc/openrefine/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/misc/reason-shell/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/misc/rink/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/misc/snakemake/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/misc/vite/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/physics/nnpdf/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/physics/quantomatic/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/physics/sacrifice/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/physics/xflr5/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/physics/xnec2c/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/programming/plm/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/emuflight-configurator/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/inav-configurator/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/mission-planner/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/sumorobot-manager/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/search/xlsxgrep/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/system/glances/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/system/qjournalctl/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/system/supergfxctl/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/system/systemdgenie/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/rio/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/st/mcaimi-st.nix1
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/st/xst.nix1
-rw-r--r--nixpkgs/pkgs/applications/terminal-emulators/syncterm/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/arch/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/blackbox/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/commitizen/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/delta/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/gfold/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/gh/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-annex-metadata-gui/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-cache/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-cola/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-lfs/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-machete/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-review/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-subrepo/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/git/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitflow/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/data.json16
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile59
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock187
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix270
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitsign/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitui/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/glab/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/got/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/version-management/josh/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/version-management/jujutsu/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/p4/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/version-management/radicle-upstream/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/pages.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/topgit/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/video/anilibria-winmaclinux/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/video/cinelerra/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/video/davinci-resolve/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/video/electronplayer/electronplayer.nix1
-rw-r--r--nixpkgs/pkgs/applications/video/gnome-mplayer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix1
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/addons/jellycon/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/addons/orftvthek/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/addons/youtube/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/media-downloader/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/scripts/mpvacious.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/scripts/visualizer.nix6
-rw-r--r--nixpkgs/pkgs/applications/video/mythtv/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/video/mythtv/dont-source-os-release.patch2
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-gstreamer.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-replay-source.nix6
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-shaderfilter.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/pipe-viewer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/pyca/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/video/qmplay2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/rtabmap/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/video/shotcut/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/video/streamlink/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/video/streamlink/ffmpeg-path.patch13
-rw-r--r--nixpkgs/pkgs/applications/video/stremio/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/video/vdr/markad/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/video/vdr/nopacity/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/vdr/plugins.nix1
-rw-r--r--nixpkgs/pkgs/applications/video/vdr/softhddevice/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/youtube-tui/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/virtualization/containerd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/crosvm/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/buildx.nix5
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/compose.nix7
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/compose_1.nix1
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/gc.nix1
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/proxy.nix1
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/sbom.nix1
-rw-r--r--nixpkgs/pkgs/applications/virtualization/imgcrypt/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/lima/bin.nix10
-rw-r--r--nixpkgs/pkgs/applications/virtualization/lima/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/podman-tui/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/podman/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/virtualization/rvvm/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/virtualization/singularity/generic.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/singularity/packages.nix12
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/virtualization/vmware-workstation/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/window-managers/dwl/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/window-managers/evilwm/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix8
-rw-r--r--nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix6
-rw-r--r--nixpkgs/pkgs/applications/window-managers/hyprwm/hyprshade/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/altlayout.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/auto-layout.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/blocks.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/cycle-focus.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/easyfocus.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/i3-ratiosplit.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/i3-resurrect.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/kitti3.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/layout-manager.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/lock.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/wk-switch.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/miriway/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/window-managers/owl/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/window-managers/phosh/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix5
-rw-r--r--nixpkgs/pkgs/applications/window-managers/wayfire/firedecor.nix73
-rw-r--r--nixpkgs/pkgs/applications/window-managers/wayfire/plugins.nix1
-rw-r--r--nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/weston/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/window-managers/xmonad/xmonadctl.nix1
-rw-r--r--nixpkgs/pkgs/build-support/bintools-wrapper/default.nix6
-rw-r--r--nixpkgs/pkgs/build-support/cc-wrapper/default.nix90
-rw-r--r--nixpkgs/pkgs/build-support/deterministic-uname/default.nix1
-rw-r--r--nixpkgs/pkgs/build-support/docker/default.nix7
-rw-r--r--nixpkgs/pkgs/build-support/docker/nix-prefetch-docker.nix1
-rw-r--r--nixpkgs/pkgs/build-support/docker/tarsum.nix1
-rwxr-xr-xnixpkgs/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh3
-rwxr-xr-xnixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git2
-rw-r--r--nixpkgs/pkgs/build-support/fetchnextcloudapp/default.nix5
-rw-r--r--nixpkgs/pkgs/build-support/java/canonicalize-jar.nix9
-rw-r--r--nixpkgs/pkgs/build-support/java/canonicalize-jar.sh29
-rw-r--r--nixpkgs/pkgs/build-support/kernel/make-initrd-ng-tool.nix1
-rw-r--r--nixpkgs/pkgs/build-support/lib/cmake.nix30
-rw-r--r--nixpkgs/pkgs/build-support/lib/meson.nix35
-rw-r--r--nixpkgs/pkgs/build-support/libredirect/test.c6
-rw-r--r--nixpkgs/pkgs/build-support/node/build-npm-package/hooks/npm-install-hook.sh2
-rw-r--r--nixpkgs/pkgs/build-support/node/fetch-npm-deps/default.nix1
-rw-r--r--nixpkgs/pkgs/build-support/oci-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/build-support/php/hooks/php-script-utils.bash20
-rw-r--r--nixpkgs/pkgs/build-support/references-by-popularity/closure-graph.py4
-rw-r--r--nixpkgs/pkgs/build-support/remove-references-to/default.nix1
-rw-r--r--nixpkgs/pkgs/build-support/setup-hooks/canonicalize-jars.sh16
-rw-r--r--nixpkgs/pkgs/build-support/setup-hooks/strip-java-archives.sh16
-rw-r--r--nixpkgs/pkgs/build-support/singularity-tools/default.nix9
-rw-r--r--nixpkgs/pkgs/build-support/snap/default.nix4
-rw-r--r--nixpkgs/pkgs/build-support/snap/make-snap.nix84
-rw-r--r--nixpkgs/pkgs/build-support/trivial-builders/default.nix169
-rw-r--r--nixpkgs/pkgs/build-support/trivial-builders/test/default.nix3
-rw-r--r--nixpkgs/pkgs/build-support/trivial-builders/test/references/default.nix16
-rwxr-xr-xnixpkgs/pkgs/build-support/trivial-builders/test/references/references-test.sh25
-rw-r--r--nixpkgs/pkgs/build-support/trivial-builders/test/writeClosure-union.nix23
-rw-r--r--nixpkgs/pkgs/build-support/writers/data.nix2
-rw-r--r--nixpkgs/pkgs/build-support/writers/scripts.nix8
-rw-r--r--nixpkgs/pkgs/by-name/a5/a52dec/package.nix (renamed from nixpkgs/pkgs/development/libraries/a52dec/default.nix)28
-rw-r--r--nixpkgs/pkgs/by-name/aa/aaaaxy/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ad/ad-miner/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ad/adafruit-nrfutil/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ad/adidnsdump/package.nix39
-rw-r--r--nixpkgs/pkgs/by-name/ai/airlift/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ai/airscan/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/al/alephone-apotheosis-x/package.nix3
-rw-r--r--nixpkgs/pkgs/by-name/al/alephone/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/al/alsa-lib-with-plugins/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/al/alsa-lib/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/al/alsa-oss/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/al/alt-tab-macos/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/am/amazon-ssm-agent/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/am/amfora/package.nix (renamed from nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix)7
-rw-r--r--nixpkgs/pkgs/by-name/am/amphetype/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/an/anytype/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ap/apt/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ar/arrpc/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix5
-rw-r--r--nixpkgs/pkgs/by-name/as/asciiquarium-transparent/package.nix35
-rw-r--r--nixpkgs/pkgs/by-name/as/asn/package.nix (renamed from nixpkgs/pkgs/applications/networking/asn/default.nix)0
-rw-r--r--nixpkgs/pkgs/by-name/as/ast-grep/package.nix19
-rw-r--r--nixpkgs/pkgs/by-name/at/ataripp/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/at/atuin/package.nix14
-rw-r--r--nixpkgs/pkgs/by-name/au/audiness/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/au/audio-sharing/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/au/audiobookshelf/source.json10
-rw-r--r--nixpkgs/pkgs/by-name/au/audion/package.nix27
-rw-r--r--nixpkgs/pkgs/by-name/au/authentik/ldap.nix2
-rw-r--r--nixpkgs/pkgs/by-name/au/authentik/package.nix64
-rw-r--r--nixpkgs/pkgs/by-name/au/autobloody/package.nix46
-rw-r--r--nixpkgs/pkgs/by-name/ba/backlight-auto/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ba/baresip/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ba/barrage/package.nix (renamed from nixpkgs/pkgs/games/lgames/barrage/default.nix)17
-rw-r--r--nixpkgs/pkgs/by-name/ba/base16-shell-preview/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/be/bepass/package.nix61
-rw-r--r--nixpkgs/pkgs/by-name/be/betula/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/bi/bicep/deps.nix318
-rw-r--r--nixpkgs/pkgs/by-name/bi/bicep/package.nix44
-rwxr-xr-xnixpkgs/pkgs/by-name/bi/bicep/updater.sh17
-rw-r--r--nixpkgs/pkgs/by-name/bi/binsort/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/bi/bitbake-language-server/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/bi/bitwarden-cli/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/bi/bitwarden-desktop/electron-builder-package-lock.patch28
-rw-r--r--nixpkgs/pkgs/by-name/bi/bitwarden-desktop/package.nix27
-rw-r--r--nixpkgs/pkgs/by-name/bl/blockbench/package.nix87
-rw-r--r--nixpkgs/pkgs/by-name/bo/bochs/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/bo/boehmgc/package.nix (renamed from nixpkgs/pkgs/development/libraries/boehm-gc/default.nix)9
-rw-r--r--nixpkgs/pkgs/by-name/bo/boogie/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/bo/boxbuddy/package.nix61
-rw-r--r--nixpkgs/pkgs/by-name/bp/bpftop/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/br/bruno/package.nix21
-rw-r--r--nixpkgs/pkgs/by-name/bu/bullshit/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/bu/butler/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/c2/c2fmzq/package.nix2
-rw-r--r--nixpkgs/pkgs/by-name/c2/c2nim/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ca/caido/package.nix8
-rw-r--r--nixpkgs/pkgs/by-name/ca/capslock/package.nix37
-rw-r--r--nixpkgs/pkgs/by-name/ca/cargo-bump/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ca/cargo-pgo/package.nix29
-rw-r--r--nixpkgs/pkgs/by-name/ca/cargo-rdme/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ca/cargo-swift/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ca/cargo-typify/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ca/cargo-vibe/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ca/cargo-wizard/package.nix32
-rw-r--r--nixpkgs/pkgs/by-name/ca/cargo-xwin/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/cb/cbtemulator/package.nix67
-rw-r--r--nixpkgs/pkgs/by-name/cd/cdk/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ce/centrifugo/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/ce/cert-viewer/package.nix26
-rw-r--r--nixpkgs/pkgs/by-name/ce/certi/package.nix39
-rw-r--r--nixpkgs/pkgs/by-name/ce/certificate-ripper/package.nix13
-rw-r--r--nixpkgs/pkgs/by-name/ce/certificate-ripper/pin-default-maven-plguin-versions.patch (renamed from nixpkgs/pkgs/by-name/ce/certificate-ripper/make-deterministic.patch)10
-rw-r--r--nixpkgs/pkgs/by-name/ce/certmgr/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ch/ch341eeprom/package.nix40
-rw-r--r--nixpkgs/pkgs/by-name/ch/chawan/mancha-augment-path.diff15
-rw-r--r--nixpkgs/pkgs/by-name/ch/chawan/package.nix76
-rw-r--r--nixpkgs/pkgs/by-name/ch/chess-clock/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ch/chromatic/package.nix9
-rw-r--r--nixpkgs/pkgs/by-name/ch/chromatic/rustc_serialize_update.patch16
-rw-r--r--nixpkgs/pkgs/by-name/ci/cidr-merger/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ci/cimg/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ci/circom/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ci/ciscoPacketTracer8/package.nix17
-rw-r--r--nixpkgs/pkgs/by-name/cl/clamtk/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/cl/clangbuildanalyzer/package.nix25
-rw-r--r--nixpkgs/pkgs/by-name/cl/clash-meta/package.nix42
-rw-r--r--nixpkgs/pkgs/by-name/cl/clash-nyanpasu/package.nix23
-rw-r--r--nixpkgs/pkgs/by-name/cl/clash-verge-rev/package.nix19
-rw-r--r--nixpkgs/pkgs/by-name/cl/clash-verge/package.nix (renamed from nixpkgs/pkgs/applications/networking/clash-verge/default.nix)7
-rw-r--r--nixpkgs/pkgs/by-name/cl/clipse/package.nix26
-rw-r--r--nixpkgs/pkgs/by-name/cl/clzip/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/cn/cntb/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/co/cockpit/package.nix5
-rw-r--r--nixpkgs/pkgs/by-name/co/codeium/package.nix10
-rw-r--r--nixpkgs/pkgs/by-name/co/commitmsgfmt/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/co/connman-gtk/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/co/connman-ncurses/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/co/connman-notify/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/co/connman_dmenu/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/co/convco/package.nix7
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-applibrary/Cargo.lock1409
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-applibrary/package.nix36
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-comp/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-edit/Cargo.lock2049
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-edit/package.nix37
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-files/Cargo.lock2244
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-files/package.nix26
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-greeter/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-launcher/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-notifications/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-osd/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-panel/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-settings-daemon/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-settings/Cargo.lock1985
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-settings/package.nix36
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-store/Cargo.lock6525
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-store/package.nix99
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-term/Cargo.lock2758
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-term/package.nix28
-rw-r--r--nixpkgs/pkgs/by-name/co/cosmic-workspaces-epoch/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/cp/cpu-x/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/cr/crossplane-cli/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/cr/crosswords/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/cu/cucumber/Gemfile (renamed from nixpkgs/pkgs/development/tools/cucumber/Gemfile)0
-rw-r--r--nixpkgs/pkgs/by-name/cu/cucumber/Gemfile.lock45
-rw-r--r--nixpkgs/pkgs/by-name/cu/cucumber/gemset.nix (renamed from nixpkgs/pkgs/development/tools/cucumber/gemset.nix)43
-rw-r--r--nixpkgs/pkgs/by-name/cu/cucumber/package.nix (renamed from nixpkgs/pkgs/development/tools/cucumber/default.nix)0
-rw-r--r--nixpkgs/pkgs/by-name/cu/cups-printers/package.nix48
-rw-r--r--nixpkgs/pkgs/by-name/cy/cyanrip/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/da/dark-mode-notify/package.nix5
-rw-r--r--nixpkgs/pkgs/by-name/dd/ddsmt/package.nix35
-rw-r--r--nixpkgs/pkgs/by-name/de/dep-scan/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/de/dependabot-cli/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/de/deskreen/package.nix2
-rw-r--r--nixpkgs/pkgs/by-name/de/devenv/Cargo.lock2126
-rw-r--r--nixpkgs/pkgs/by-name/de/devenv/package.nix62
-rw-r--r--nixpkgs/pkgs/by-name/di/digikam/package.nix (renamed from nixpkgs/pkgs/applications/graphics/digikam/default.nix)62
-rw-r--r--nixpkgs/pkgs/by-name/di/discordchatexporter-cli/deps.nix23
-rw-r--r--nixpkgs/pkgs/by-name/di/discordchatexporter-cli/package.nix (renamed from nixpkgs/pkgs/tools/backup/discordchatexporter-cli/default.nix)8
-rwxr-xr-xnixpkgs/pkgs/by-name/di/discordchatexporter-cli/updater.sh (renamed from nixpkgs/pkgs/tools/backup/discordchatexporter-cli/updater.sh)2
-rw-r--r--nixpkgs/pkgs/by-name/di/disko/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/di/displaycal/package.nix (renamed from nixpkgs/pkgs/applications/graphics/displaycal/default.nix)4
-rw-r--r--nixpkgs/pkgs/by-name/di/dissent/package.nix (renamed from nixpkgs/pkgs/applications/audio/gtkcord4/default.nix)20
-rw-r--r--nixpkgs/pkgs/by-name/dj/djent/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/dm/dmarc-report-converter/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/dm/dmenu-bluetooth/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/do/docfd/package.nix49
-rw-r--r--nixpkgs/pkgs/by-name/do/doggo/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/do/donpapi/package.nix53
-rw-r--r--nixpkgs/pkgs/by-name/do/dotbot/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/do/doublecmd/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ds/dsda-doom/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ds/dsda-launcher/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/dx/dxvk/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/dy/dynamodb-local/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/ec/ecc/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ei/eigenlayer/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/ei/eiwd/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ek/eksctl/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/el/elf2nucleus/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/el/elvish/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/en/encled/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/en/engage/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/en/envio/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/et/etlegacy/package.nix (renamed from nixpkgs/pkgs/games/etlegacy/default.nix)8
-rw-r--r--nixpkgs/pkgs/by-name/ex/extractpdfmark/package.nix39
-rw-r--r--nixpkgs/pkgs/by-name/ez/eza/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/fa/fanbox-dl/package.nix7
-rw-r--r--nixpkgs/pkgs/by-name/fa/fangfrisch/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/fa/fast-float/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/fe/feather/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/fi/figurine/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/fi/files-cli/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/fi/firewalk/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/fi/fitsverify/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/fl/flarectl/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/fl/flatter/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/fl/fleng/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/fl/flet-client-flutter/package.nix64
-rw-r--r--nixpkgs/pkgs/by-name/fl/flet-client-flutter/pubspec.lock.json1524
-rw-r--r--nixpkgs/pkgs/by-name/fo/folio/package.nix51
-rw-r--r--nixpkgs/pkgs/by-name/fo/foonathan-memory/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/fr/frankenphp/package.nix2
-rw-r--r--nixpkgs/pkgs/by-name/fr/free42/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/fr/freecad/0001-NIXOS-don-t-ignore-PYTHONPATH.patch (renamed from nixpkgs/pkgs/applications/graphics/freecad/0001-NIXOS-don-t-ignore-PYTHONPATH.patch)0
-rw-r--r--nixpkgs/pkgs/by-name/fr/freecad/package.nix (renamed from nixpkgs/pkgs/applications/graphics/freecad/default.nix)54
-rw-r--r--nixpkgs/pkgs/by-name/fr/frequest/package.nix60
-rw-r--r--nixpkgs/pkgs/by-name/fr/fretboard/package.nix17
-rw-r--r--nixpkgs/pkgs/by-name/fr/fritz-exporter/console-script.patch14
-rw-r--r--nixpkgs/pkgs/by-name/fr/fritz-exporter/package.nix10
-rw-r--r--nixpkgs/pkgs/by-name/fs/fsuae-launcher/package.nix (renamed from nixpkgs/pkgs/applications/emulators/fs-uae/launcher.nix)25
-rw-r--r--nixpkgs/pkgs/by-name/fs/fsuae/package.nix (renamed from nixpkgs/pkgs/applications/emulators/fs-uae/default.nix)19
-rw-r--r--nixpkgs/pkgs/by-name/fw/fwupd/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/fy/fypp/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/g3/g3kb-switch/package.nix34
-rw-r--r--nixpkgs/pkgs/by-name/ga/gamja/package.nix37
-rw-r--r--nixpkgs/pkgs/by-name/ga/gash/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ga/gatus/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/gc/gcs/package.nix5
-rw-r--r--nixpkgs/pkgs/by-name/ge/gerbolyze/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ge/get-google-fonts/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ge/geticons/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/gg/gg/package.nix41
-rw-r--r--nixpkgs/pkgs/by-name/gh/gh-copilot/package.nix59
-rw-r--r--nixpkgs/pkgs/by-name/gh/ghunt/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/gi/git-agecrypt/package.nix38
-rw-r--r--nixpkgs/pkgs/by-name/gi/git-instafix/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/gi/git-releaser/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/gi/gitlab-ci-local/package.nix7
-rw-r--r--nixpkgs/pkgs/by-name/gi/gitu/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/gl/glasskube/package.nix47
-rw-r--r--nixpkgs/pkgs/by-name/gl/glide-media-player/package.nix7
-rw-r--r--nixpkgs/pkgs/by-name/gm/gmetronome/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/gm/gmic-qt/package.nix (renamed from nixpkgs/pkgs/tools/graphics/gmic-qt/default.nix)53
-rw-r--r--nixpkgs/pkgs/by-name/gm/gmic/package.nix18
-rw-r--r--nixpkgs/pkgs/by-name/gn/gnome-graphs/package.nix71
-rw-r--r--nixpkgs/pkgs/by-name/go/go-camo/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/go/godns/package.nix (renamed from nixpkgs/pkgs/tools/networking/godns/default.nix)31
-rw-r--r--nixpkgs/pkgs/by-name/go/goldwarden/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/go/gosmore/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/gp/gpt4all/package.nix8
-rw-r--r--nixpkgs/pkgs/by-name/gr/grun/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/gt/gtimelog/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ha/handlr-regex/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/ha/haunt/package.nix1
-rwxr-xr-xnixpkgs/pkgs/by-name/hd/hdrop/package.nix8
-rw-r--r--nixpkgs/pkgs/by-name/he/hekatomb/package.nix49
-rw-r--r--nixpkgs/pkgs/by-name/he/helix-gpt/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/he/helix-gpt/pin.json8
-rw-r--r--nixpkgs/pkgs/by-name/he/hermitcli/package.nix34
-rw-r--r--nixpkgs/pkgs/by-name/hi/hifiscan/package.nix28
-rw-r--r--nixpkgs/pkgs/by-name/hi/highs/package.nix41
-rw-r--r--nixpkgs/pkgs/by-name/ho/home-manager/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/ho/hoppscotch/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/hu/hugo/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/hy/hyprcursor/package.nix52
-rw-r--r--nixpkgs/pkgs/by-name/hy/hyprdim/package.nix (renamed from nixpkgs/pkgs/applications/misc/hyprdim/default.nix)21
-rw-r--r--nixpkgs/pkgs/by-name/hy/hyprlang/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/hy/hyprlock/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/hy/hyprnome/package.nix (renamed from nixpkgs/pkgs/applications/misc/hyprnome/default.nix)21
-rw-r--r--nixpkgs/pkgs/by-name/id/idb-companion/package.nix35
-rw-r--r--nixpkgs/pkgs/by-name/if/ifrextractor-rs/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ig/igir/package.nix7
-rw-r--r--nixpkgs/pkgs/by-name/ig/ignite-cli/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/im/immersed-vr/darwin.nix27
-rw-r--r--nixpkgs/pkgs/by-name/im/immersed-vr/linux.nix14
-rw-r--r--nixpkgs/pkgs/by-name/im/immersed-vr/package.nix29
-rw-r--r--nixpkgs/pkgs/by-name/im/impression/package.nix16
-rw-r--r--nixpkgs/pkgs/by-name/in/incus/ui.nix81
-rw-r--r--nixpkgs/pkgs/by-name/in/indiepass-desktop/package.nix58
-rw-r--r--nixpkgs/pkgs/by-name/in/intiface-central/package.nix2
-rw-r--r--nixpkgs/pkgs/by-name/in/intune-portal/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/in/invidtui/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/ip/iplan/package.nix55
-rw-r--r--nixpkgs/pkgs/by-name/ja/jackass/package.nix66
-rw-r--r--nixpkgs/pkgs/by-name/ja/jan/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ja/jankyborders/package.nix58
-rw-r--r--nixpkgs/pkgs/by-name/ja/jasp-desktop/package.nix2
-rw-r--r--nixpkgs/pkgs/by-name/ja/jasper/package.nix9
-rw-r--r--nixpkgs/pkgs/by-name/ji/jigmo/package.nix27
-rw-r--r--nixpkgs/pkgs/by-name/jn/jnv/package.nix35
-rw-r--r--nixpkgs/pkgs/by-name/jo/jogl/package.nix9
-rw-r--r--nixpkgs/pkgs/by-name/jo/joshuto/package.nix (renamed from nixpkgs/pkgs/applications/file-managers/joshuto/default.nix)6
-rw-r--r--nixpkgs/pkgs/by-name/ju/just/package.nix (renamed from nixpkgs/pkgs/development/tools/just/default.nix)6
-rw-r--r--nixpkgs/pkgs/by-name/ju/just/setup-hook.sh (renamed from nixpkgs/pkgs/development/tools/just/setup-hook.sh)0
-rw-r--r--nixpkgs/pkgs/by-name/ju/justbuild/package.nix2
-rw-r--r--nixpkgs/pkgs/by-name/ka/kana/package.nix74
-rw-r--r--nixpkgs/pkgs/by-name/ka/kanagawa-gtk-theme/package.nix42
-rw-r--r--nixpkgs/pkgs/by-name/ka/kanagawa-icon-theme/package.nix47
-rw-r--r--nixpkgs/pkgs/by-name/ke/kernel-hardening-checker/package.nix25
-rw-r--r--nixpkgs/pkgs/by-name/ki/kikit/default.nix8
-rw-r--r--nixpkgs/pkgs/by-name/km/kminion/package.nix31
-rw-r--r--nixpkgs/pkgs/by-name/km/kminion/update.sh4
-rw-r--r--nixpkgs/pkgs/by-name/ko/kooha/package.nix (renamed from nixpkgs/pkgs/applications/video/kooha/default.nix)6
-rw-r--r--nixpkgs/pkgs/by-name/kr/krbjack/package.nix48
-rw-r--r--nixpkgs/pkgs/by-name/ku/kubectl-neat/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ku/kubectl-validate/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ky/kyverno-chainsaw/package.nix38
-rw-r--r--nixpkgs/pkgs/by-name/la/labelife-label-printer/package.nix60
-rw-r--r--nixpkgs/pkgs/by-name/la/labwc-menu-generator/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/la/lacus/package.nix39
-rw-r--r--nixpkgs/pkgs/by-name/la/lan-mouse/Cargo.lock940
-rw-r--r--nixpkgs/pkgs/by-name/la/lan-mouse/package.nix7
-rw-r--r--nixpkgs/pkgs/by-name/la/lanzaboote-tool/package.nix2
-rw-r--r--nixpkgs/pkgs/by-name/la/lazymc/Cargo.lock1379
-rw-r--r--nixpkgs/pkgs/by-name/la/lazymc/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/lb/lbreakout2/package.nix49
-rw-r--r--nixpkgs/pkgs/by-name/lb/lbreakouthd/package.nix (renamed from nixpkgs/pkgs/games/lgames/lbreakouthd/default.nix)7
-rw-r--r--nixpkgs/pkgs/by-name/le/ledger/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/le/lefthook/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/le/lemminx/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/li/liana/package.nix2
-rw-r--r--nixpkgs/pkgs/by-name/li/libbgcode/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/li/libcpuid/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/li/libipuz/package.nix42
-rw-r--r--nixpkgs/pkgs/by-name/li/librum/package.nix68
-rw-r--r--nixpkgs/pkgs/by-name/li/librum/use_mupdf_in_nixpkgs.patch109
-rw-r--r--nixpkgs/pkgs/by-name/li/libsignal-ffi/Cargo.lock657
-rw-r--r--nixpkgs/pkgs/by-name/li/libsignal-ffi/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/li/libyang/package.nix (renamed from nixpkgs/pkgs/development/libraries/libyang/default.nix)4
-rw-r--r--nixpkgs/pkgs/by-name/li/linien-gui/package.nix3
-rw-r--r--nixpkgs/pkgs/by-name/li/listmonk/package.nix3
-rw-r--r--nixpkgs/pkgs/by-name/li/littlefs-fuse/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/li/live555/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/li/livekit-cli/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/ll/llama-cpp/package.nix9
-rw-r--r--nixpkgs/pkgs/by-name/ln/lngen/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/lo/local-ai/package.nix311
-rw-r--r--nixpkgs/pkgs/by-name/lo/logiops/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/lo/logiops_0_2_3/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/lo/loksh/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/lo/loramon/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/lp/lpairs2/package.nix (renamed from nixpkgs/pkgs/games/lgames/lpairs2/default.nix)23
-rw-r--r--nixpkgs/pkgs/by-name/lp/lprint/package.nix44
-rw-r--r--nixpkgs/pkgs/by-name/lu/lubelogger/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/lu/lunacy/package.nix114
-rw-r--r--nixpkgs/pkgs/by-name/lu/lutgen/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/lz/lzsa/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ma/maloader/package.nix63
-rw-r--r--nixpkgs/pkgs/by-name/ma/mariadb-connector-java/package.nix8
-rw-r--r--nixpkgs/pkgs/by-name/ma/matrix-hook/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/mb/mbpoll/package.nix30
-rw-r--r--nixpkgs/pkgs/by-name/mc/mcap-cli/package.nix12
-rw-r--r--nixpkgs/pkgs/by-name/mc/mcomix/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/me/med/package.nix30
-rw-r--r--nixpkgs/pkgs/by-name/me/mercure/package.nix8
-rw-r--r--nixpkgs/pkgs/by-name/me/meson/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/me/metronome/package.nix78
-rw-r--r--nixpkgs/pkgs/by-name/me/mev-boost/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/mf/mfoc-hardnested/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/mi/mihomo/package.nix47
-rw-r--r--nixpkgs/pkgs/by-name/mi/minijinja/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/mk/mkalias/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/mk/mksh/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/mo/monophony/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/mo/mosdepth/package.nix5
-rw-r--r--nixpkgs/pkgs/by-name/mo/mountpoint-s3/package.nix8
-rw-r--r--nixpkgs/pkgs/by-name/mo/move-mount-beneath/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/mo/movim/package.nix15
-rw-r--r--nixpkgs/pkgs/by-name/ms/mscompress/package.nix32
-rw-r--r--nixpkgs/pkgs/by-name/ms/msolve/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/my/mycelium/Cargo.lock232
-rw-r--r--nixpkgs/pkgs/by-name/my/mycelium/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/my/mystmd/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/n2/n2/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/na/namespace-cli/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/na/narsil/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/na/nawk/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/nb/nbtscan/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/nc/nc4nix/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/nd/ndstrim/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/ne/netclient/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock660
-rw-r--r--nixpkgs/pkgs/by-name/ne/netease-cloud-music-gtk/package.nix15
-rw-r--r--nixpkgs/pkgs/by-name/ne/netproxrc/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ne/netscanner/package.nix38
-rw-r--r--nixpkgs/pkgs/by-name/nh/nh/package.nix17
-rw-r--r--nixpkgs/pkgs/by-name/ni/nickel/Cargo.lock732
-rw-r--r--nixpkgs/pkgs/by-name/ni/nickel/package.nix21
-rw-r--r--nixpkgs/pkgs/by-name/ni/nicotine-plus/package.nix (renamed from nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix)14
-rw-r--r--nixpkgs/pkgs/by-name/ni/nim-atlas/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ni/nim_builder/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ni/nimdow/package.nix12
-rw-r--r--nixpkgs/pkgs/by-name/ni/nimmm/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ni/niri/Cargo.lock486
-rw-r--r--nixpkgs/pkgs/by-name/ni/niri/package.nix36
-rw-r--r--nixpkgs/pkgs/by-name/ni/nix-snapshotter/package.nix32
-rw-r--r--nixpkgs/pkgs/by-name/ni/nixfmt-rfc-style/package.nix8
-rw-r--r--nixpkgs/pkgs/by-name/ni/nixops-dns/deps.nix20
-rw-r--r--nixpkgs/pkgs/by-name/ni/nixops-dns/package.nix20
-rw-r--r--nixpkgs/pkgs/by-name/ni/nixos-anywhere/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/nl/nls/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/no/node-hp-scan-to/package.nix76
-rw-r--r--nixpkgs/pkgs/by-name/no/nom/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/no/nomacs/package.nix10
-rw-r--r--nixpkgs/pkgs/by-name/no/normaliz/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/nr/nrpl/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ns/nsxiv/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/nu/nuget/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/nu/numbat/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/nv/nvidia-container-toolkit/package.nix2
-rw-r--r--nixpkgs/pkgs/by-name/oa/oauth2ms/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ob/obs-cmd/package.nix26
-rw-r--r--nixpkgs/pkgs/by-name/oc/octorpki/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/oe/oelint-adv/package.nix5
-rw-r--r--nixpkgs/pkgs/by-name/oi/oil/package.nix30
-rw-r--r--nixpkgs/pkgs/by-name/oi/oils-for-unix/package.nix (renamed from nixpkgs/pkgs/by-name/oi/oil-python/package.nix)37
-rw-r--r--nixpkgs/pkgs/by-name/ol/olvid/package.nix108
-rw-r--r--nixpkgs/pkgs/by-name/on/onedrivegui/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/on/onlyoffice-bin_latest/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/op/opcua-commander/package.nix44
-rw-r--r--nixpkgs/pkgs/by-name/op/open-scq30/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/op/openapi-tui/package.nix28
-rw-r--r--nixpkgs/pkgs/by-name/op/opencflite/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/op/opencomposite-helper/package.nix (renamed from nixpkgs/pkgs/development/libraries/opencomposite/helper.nix)0
-rw-r--r--nixpkgs/pkgs/by-name/op/opencomposite/package.nix (renamed from nixpkgs/pkgs/development/libraries/opencomposite/default.nix)6
-rw-r--r--nixpkgs/pkgs/by-name/op/opengist/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/op/opengv/package.nix45
-rw-r--r--nixpkgs/pkgs/by-name/op/openscad-unstable/package.nix39
-rw-r--r--nixpkgs/pkgs/by-name/op/openscad-unstable/test.diff42
-rw-r--r--nixpkgs/pkgs/by-name/op/opensnitch-ui/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/op/opensnitch/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/op/openttd-ttf/package.nix7
-rw-r--r--nixpkgs/pkgs/by-name/op/opshin/package.nix37
-rw-r--r--nixpkgs/pkgs/by-name/ow/owmods-cli/package.nix (renamed from nixpkgs/pkgs/applications/misc/owmods-cli/default.nix)26
-rw-r--r--nixpkgs/pkgs/by-name/pa/pacu/package.nix85
-rw-r--r--nixpkgs/pkgs/by-name/pa/passes/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/pa/payme/package.nix39
-rw-r--r--nixpkgs/pkgs/by-name/pd/pdfannots2json/package.nix3
-rw-r--r--nixpkgs/pkgs/by-name/pd/pdpmake/package.nix29
-rw-r--r--nixpkgs/pkgs/by-name/pe/peergos/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/pe/perf_data_converter/package.nix63
-rw-r--r--nixpkgs/pkgs/by-name/pe/pest/composer.lock161
-rw-r--r--nixpkgs/pkgs/by-name/pe/pest/package.nix7
-rw-r--r--nixpkgs/pkgs/by-name/pg/pg-dump-anon/package.nix32
-rw-r--r--nixpkgs/pkgs/by-name/pi/pianotrans/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/pl/plasticity/package.nix128
-rwxr-xr-xnixpkgs/pkgs/by-name/pl/plasticity/update.sh17
-rw-r--r--nixpkgs/pkgs/by-name/pl/plumber/package.nix5
-rw-r--r--nixpkgs/pkgs/by-name/pn/pnpm-shell-completion/package.nix36
-rw-r--r--nixpkgs/pkgs/by-name/pq/pqiv/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/pr/pre2k/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/pr/pretalx/package.nix33
-rw-r--r--nixpkgs/pkgs/by-name/pr/pretix/language-build.patch12
-rw-r--r--nixpkgs/pkgs/by-name/pr/pretix/package.nix270
-rw-r--r--nixpkgs/pkgs/by-name/pr/pretix/plugin-build.nix37
-rw-r--r--nixpkgs/pkgs/by-name/pr/pretix/plugin-build.patch20
-rw-r--r--nixpkgs/pkgs/by-name/pr/pretix/plugins/default.nix13
-rw-r--r--nixpkgs/pkgs/by-name/pr/pretix/plugins/pages.nix37
-rw-r--r--nixpkgs/pkgs/by-name/pr/pretix/plugins/passbook-openssl.patch33
-rw-r--r--nixpkgs/pkgs/by-name/pr/pretix/plugins/passbook.nix59
-rw-r--r--nixpkgs/pkgs/by-name/pr/pretix/plugins/reluctant-stripe.nix37
-rw-r--r--nixpkgs/pkgs/by-name/pr/pretix/plugins/stretchgoals.nix37
-rw-r--r--nixpkgs/pkgs/by-name/pr/primecount/package.nix (renamed from nixpkgs/pkgs/applications/science/math/primecount/default.nix)31
-rw-r--r--nixpkgs/pkgs/by-name/pr/primesieve/package.nix (renamed from nixpkgs/pkgs/applications/science/math/primesieve/default.nix)38
-rw-r--r--nixpkgs/pkgs/by-name/pr/promptfoo/package.nix7
-rw-r--r--nixpkgs/pkgs/by-name/pr/protoc-gen-js/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/pr/proton-ge-bin/package.nix57
-rw-r--r--nixpkgs/pkgs/by-name/pr/protonmail-bridge-gui/package.nix113
-rw-r--r--nixpkgs/pkgs/by-name/pr/protonmail-bridge-gui/use-nix-googletest.patch23
-rw-r--r--nixpkgs/pkgs/by-name/pr/prox/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/pt/ptcollab/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/pu/pupdate/add-runtime-identifier.patch13
-rw-r--r--nixpkgs/pkgs/by-name/pu/pupdate/deps.nix1
-rw-r--r--nixpkgs/pkgs/by-name/pu/pupdate/package.nix10
-rw-r--r--nixpkgs/pkgs/by-name/py/pyp/package.nix95
-rw-r--r--nixpkgs/pkgs/by-name/py/pyprland/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/qa/qadwaitadecorations/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/qd/qdirstat/package.nix (renamed from nixpkgs/pkgs/applications/misc/qdirstat/default.nix)31
-rw-r--r--nixpkgs/pkgs/by-name/qg/qgrep/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/qr/qrtool/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/qu/quickjs-ng/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/qu/quicktype/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/rd/rdwatool/package.nix49
-rw-r--r--nixpkgs/pkgs/by-name/re/redlib/package.nix61
-rw-r--r--nixpkgs/pkgs/by-name/re/regols/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/re/ren-find/package.nix26
-rw-r--r--nixpkgs/pkgs/by-name/re/renode-dts2repl/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/re/renode-unstable/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/re/renode/package.nix8
-rw-r--r--nixpkgs/pkgs/by-name/re/rep-grep/package.nix26
-rw-r--r--nixpkgs/pkgs/by-name/re/reproxy/package.nix37
-rw-r--r--nixpkgs/pkgs/by-name/re/resonance/package.nix83
-rw-r--r--nixpkgs/pkgs/by-name/re/retool/package.nix (renamed from nixpkgs/pkgs/applications/misc/retool/default.nix)18
-rw-r--r--nixpkgs/pkgs/by-name/ri/ricochet-refresh/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ri/ripunzip/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/rk/rkbin/package.nix36
-rw-r--r--nixpkgs/pkgs/by-name/ro/rofimoji/package.nix (renamed from nixpkgs/pkgs/applications/misc/rofimoji/default.nix)26
-rw-r--r--nixpkgs/pkgs/by-name/ro/route-graph/package.nix51
-rw-r--r--nixpkgs/pkgs/by-name/ro/roxterm/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/rs/rs-tftpd/package.nix26
-rw-r--r--nixpkgs/pkgs/by-name/rs/rs/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/rs/rsgain/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/rs/rspamd-trainer/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/rs/rst2html5/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ru/rustdesk-flutter/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ru/rusti-cal/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/rw/rwpspread/package.nix20
-rw-r--r--nixpkgs/pkgs/by-name/ry/ryujinx/deps.nix67
-rw-r--r--nixpkgs/pkgs/by-name/ry/ryujinx/package.nix9
-rw-r--r--nixpkgs/pkgs/by-name/s3/s3proxy/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/sa/saga/package.nix (renamed from nixpkgs/pkgs/applications/gis/saga/default.nix)14
-rw-r--r--nixpkgs/pkgs/by-name/sa/salmon/fetch-pufferfish.patch6
-rw-r--r--nixpkgs/pkgs/by-name/sa/salmon/package.nix7
-rw-r--r--nixpkgs/pkgs/by-name/sa/samrewritten/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/sa/sarasa-gothic/package.nix (renamed from nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix)32
-rw-r--r--nixpkgs/pkgs/by-name/sa/satty/package.nix14
-rw-r--r--nixpkgs/pkgs/by-name/sc/scalingo/package.nix5
-rw-r--r--nixpkgs/pkgs/by-name/sc/scout/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/sc/screentest/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/sc/scrutiny-collector/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/sc/scrutiny/package.nix8
-rw-r--r--nixpkgs/pkgs/by-name/se/seabird/package.nix66
-rw-r--r--nixpkgs/pkgs/by-name/se/searxng/package.nix6
-rwxr-xr-xnixpkgs/pkgs/by-name/se/segger-jlink/package.nix10
-rw-r--r--nixpkgs/pkgs/by-name/se/selenium-manager/package.nix40
-rw-r--r--nixpkgs/pkgs/by-name/se/sesh/package.nix29
-rw-r--r--nixpkgs/pkgs/by-name/sh/shittier/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/sh/shopware-cli/package.nix7
-rw-r--r--nixpkgs/pkgs/by-name/si/signal-export/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/si/signaturepdf/package.nix3
-rw-r--r--nixpkgs/pkgs/by-name/si/simde/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/si/simdutf/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/si/simplex-chat-desktop/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/sl/slimserver/package.nix (renamed from nixpkgs/pkgs/servers/slimserver/default.nix)26
-rwxr-xr-xnixpkgs/pkgs/by-name/sl/slimserver/update.nu14
-rw-r--r--nixpkgs/pkgs/by-name/sm/smartgithg/package.nix (renamed from nixpkgs/pkgs/applications/version-management/smartgithg/default.nix)8
-rw-r--r--nixpkgs/pkgs/by-name/sm/smlfut/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/sm/smuview/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/sn/snekim/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/sn/snipe-it/package.nix (renamed from nixpkgs/pkgs/servers/web-apps/snipe-it/default.nix)6
-rw-r--r--nixpkgs/pkgs/by-name/sn/snippetexpanderx/package.nix2
-rw-r--r--nixpkgs/pkgs/by-name/so/sophus/package.nix41
-rw-r--r--nixpkgs/pkgs/by-name/so/soupault/package.nix (renamed from nixpkgs/pkgs/tools/typesetting/soupault/default.nix)16
-rw-r--r--nixpkgs/pkgs/by-name/sp/spade/Cargo.lock223
-rw-r--r--nixpkgs/pkgs/by-name/sp/spade/package.nix5
-rw-r--r--nixpkgs/pkgs/by-name/sp/speakersafetyd/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/sp/spfft/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/sp/spice-autorandr/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/sp/spicetify-cli/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/sp/spigot/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/sp/spotube/package.nix11
-rw-r--r--nixpkgs/pkgs/by-name/sr/srb2kart/package.nix106
-rw-r--r--nixpkgs/pkgs/by-name/sr/srm-cuarzo/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ss/ssh-openpgp-auth/daemon.nix14
-rw-r--r--nixpkgs/pkgs/by-name/ss/ssh-openpgp-auth/generic.nix82
-rw-r--r--nixpkgs/pkgs/by-name/ss/ssh-openpgp-auth/package.nix10
-rw-r--r--nixpkgs/pkgs/by-name/ss/sslstrip/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/ss/sssnake/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/st/stanc/package.nix (renamed from nixpkgs/pkgs/development/compilers/stanc/default.nix)16
-rw-r--r--nixpkgs/pkgs/by-name/st/stormlib/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/st/strictdoc/package.nix (renamed from nixpkgs/pkgs/applications/science/engineering/strictdoc/default.nix)61
-rw-r--r--nixpkgs/pkgs/by-name/su/surrealdb/package.nix (renamed from nixpkgs/pkgs/servers/nosql/surrealdb/default.nix)16
-rw-r--r--nixpkgs/pkgs/by-name/su/suwayomi-server/package.nix8
-rw-r--r--nixpkgs/pkgs/by-name/sv/svix-server/package.nix2
-rw-r--r--nixpkgs/pkgs/by-name/sw/sway-assign-cgroups/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/sw/swaycons/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/sw/swayws/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/sw/swaywsr/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/sw/switcheroo/package.nix20
-rw-r--r--nixpkgs/pkgs/by-name/sw/swww/package.nix (renamed from nixpkgs/pkgs/tools/wayland/swww/default.nix)10
-rw-r--r--nixpkgs/pkgs/by-name/sy/symbolicator/package.nix3
-rw-r--r--nixpkgs/pkgs/by-name/sy/symfony-cli/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/sy/syn2mas/package.nix2
-rw-r--r--nixpkgs/pkgs/by-name/sy/syncstorage-rs/Cargo.lock (renamed from nixpkgs/pkgs/servers/syncstorage-rs/Cargo.lock)2549
-rw-r--r--nixpkgs/pkgs/by-name/sy/syncstorage-rs/package.nix (renamed from nixpkgs/pkgs/servers/syncstorage-rs/default.nix)6
-rw-r--r--nixpkgs/pkgs/by-name/t-/t-rex/package.nix (renamed from nixpkgs/pkgs/servers/geospatial/t-rex/default.nix)16
-rw-r--r--nixpkgs/pkgs/by-name/ta/tabby/package.nix10
-rw-r--r--nixpkgs/pkgs/by-name/ta/tana/package.nix111
-rw-r--r--nixpkgs/pkgs/by-name/tc/tcsh/package.nix5
-rw-r--r--nixpkgs/pkgs/by-name/te/technitium-dns-server/package.nix47
-rw-r--r--nixpkgs/pkgs/by-name/te/tenki/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/te/tenv/package.nix46
-rw-r--r--nixpkgs/pkgs/by-name/tg/tgpt/package.nix (renamed from nixpkgs/pkgs/tools/misc/tgpt/default.nix)11
-rw-r--r--nixpkgs/pkgs/by-name/ti/tigerbeetle/package.nix7
-rw-r--r--nixpkgs/pkgs/by-name/ti/tilda/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ti/tilemaker/package.nix (renamed from nixpkgs/pkgs/applications/misc/tilemaker/default.nix)33
-rw-r--r--nixpkgs/pkgs/by-name/ti/tippecanoe/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/to/torrentstream/package.nix2
-rw-r--r--nixpkgs/pkgs/by-name/tp/tpnote/package.nix59
-rw-r--r--nixpkgs/pkgs/by-name/tr/treedome/Cargo.lock494
-rw-r--r--nixpkgs/pkgs/by-name/tr/treedome/package.json1
-rw-r--r--nixpkgs/pkgs/by-name/tr/treedome/package.nix14
-rw-r--r--nixpkgs/pkgs/by-name/tr/trexio/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/tr/tridactyl-native/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/tr/trunk-ng/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/tu/tup/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/tx/txr/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ty/typos-lsp/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/ty/typst-preview/Cargo.lock1062
-rw-r--r--nixpkgs/pkgs/by-name/ty/typst-preview/dom.json11
-rw-r--r--nixpkgs/pkgs/by-name/ty/typst-preview/frontend.json7
-rw-r--r--nixpkgs/pkgs/by-name/ty/typst-preview/package.nix17
-rw-r--r--nixpkgs/pkgs/by-name/ty/typst/Cargo.lock1558
-rw-r--r--nixpkgs/pkgs/by-name/ty/typst/package.nix18
-rw-r--r--nixpkgs/pkgs/by-name/ty/typstfmt/Cargo.lock (renamed from nixpkgs/pkgs/tools/typesetting/typstfmt/Cargo.lock)178
-rw-r--r--nixpkgs/pkgs/by-name/ty/typstfmt/package.nix (renamed from nixpkgs/pkgs/tools/typesetting/typstfmt/default.nix)19
-rw-r--r--nixpkgs/pkgs/by-name/uc/uclibc-ng/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ud/udebug/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/un/unciv/package.nix (renamed from nixpkgs/pkgs/games/unciv/default.nix)5
-rw-r--r--nixpkgs/pkgs/by-name/un/unl0kr/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/un/unrar-free/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/un/unrar/package.nix (renamed from nixpkgs/pkgs/tools/archivers/unrar/default.nix)4
-rw-r--r--nixpkgs/pkgs/by-name/un/unrar/setup-hook.sh (renamed from nixpkgs/pkgs/tools/archivers/unrar/setup-hook.sh)0
-rw-r--r--nixpkgs/pkgs/by-name/un/unrar_6/package.nix15
-rw-r--r--nixpkgs/pkgs/by-name/un/unsilence/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/up/upiano/package.nix17
-rw-r--r--nixpkgs/pkgs/by-name/us/usql/package.nix5
-rw-r--r--nixpkgs/pkgs/by-name/uv/uv/Cargo.lock692
-rw-r--r--nixpkgs/pkgs/by-name/uv/uv/package.nix9
-rw-r--r--nixpkgs/pkgs/by-name/uw/uwhoisd/package.nix45
-rw-r--r--nixpkgs/pkgs/by-name/ux/uxn/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/va/varia/package.nix68
-rw-r--r--nixpkgs/pkgs/by-name/vc/vcpkg-tool/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/vc/vcpkg/package.nix5
-rw-r--r--nixpkgs/pkgs/by-name/vi/victoriametrics/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/vi/vieb/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/vi/vim-language-server/package.json49
-rw-r--r--nixpkgs/pkgs/by-name/vi/vim-language-server/package.nix43
-rw-r--r--nixpkgs/pkgs/by-name/vl/vlc-bin/package.nix61
-rwxr-xr-xnixpkgs/pkgs/by-name/wa/warp-terminal/update.sh37
-rw-r--r--nixpkgs/pkgs/by-name/wa/warp-terminal/versions.json12
-rw-r--r--nixpkgs/pkgs/by-name/wa/waycheck/package.nix8
-rw-r--r--nixpkgs/pkgs/by-name/wa/wayland-logout/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/we/websecprobe/package.nix9
-rw-r--r--nixpkgs/pkgs/by-name/wh/whistle/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/wi/wit-bindgen/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/wl/wl-clipboard-rs/package.nix21
-rw-r--r--nixpkgs/pkgs/by-name/wl/wl-gammarelay-rs/Cargo.lock359
-rw-r--r--nixpkgs/pkgs/by-name/wl/wl-gammarelay-rs/package.nix14
-rw-r--r--nixpkgs/pkgs/by-name/wo/worker/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/wp/wp-cli/package.nix5
-rw-r--r--nixpkgs/pkgs/by-name/ws/wslu/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/wt/wtfis/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/x5/x509-limbo/package.nix49
-rw-r--r--nixpkgs/pkgs/by-name/xa/xarcan/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/xd/xdg-desktop-portal-shana/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/xd/xdg-terminal-exec/package.nix17
-rw-r--r--nixpkgs/pkgs/by-name/xd/xdg-user-dirs/package.nix (renamed from nixpkgs/pkgs/tools/X11/xdg-user-dirs/default.nix)28
-rw-r--r--nixpkgs/pkgs/by-name/xe/xeol/package.nix40
-rw-r--r--nixpkgs/pkgs/by-name/xf/xfs-undelete/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/xi/xiu/package.nix6
-rw-r--r--nixpkgs/pkgs/by-name/xo/xonsh/unwrapped.nix6
-rw-r--r--nixpkgs/pkgs/by-name/xp/xplr/package.nix7
-rw-r--r--nixpkgs/pkgs/by-name/xs/xsct/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ya/yamlscript/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/ya/yazi-unwrapped/package.nix12
-rw-r--r--nixpkgs/pkgs/by-name/yo/youtrack/package.nix4
-rw-r--r--nixpkgs/pkgs/by-name/yt/yt-dlg/package.nix50
-rw-r--r--nixpkgs/pkgs/by-name/yt/ytdownloader/config-dir.patch18
-rw-r--r--nixpkgs/pkgs/by-name/yt/ytdownloader/package.nix70
-rw-r--r--nixpkgs/pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/zc/zcfan/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/ze/zesarux/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/zi/zigpy-cli/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/zi/zircolite/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/zo/zola/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/zp/zpaqfranz/package.nix1
-rw-r--r--nixpkgs/pkgs/by-name/zs/zsync/package.nix (renamed from nixpkgs/pkgs/tools/compression/zsync/default.nix)6
-rw-r--r--nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix4
-rw-r--r--nixpkgs/pkgs/data/documentation/zeal/default.nix1
-rw-r--r--nixpkgs/pkgs/data/fonts/0xproto/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/babelstone-han/default.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/bront/default.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/bin.nix22
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/comfy.nix31
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/default.nix40
-rwxr-xr-xnixpkgs/pkgs/data/fonts/iosevka/update-bin.sh4
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/variants.nix182
-rw-r--r--nixpkgs/pkgs/data/fonts/junicode/default.nix23
-rw-r--r--nixpkgs/pkgs/data/fonts/junicode/test-vf.tex46
-rw-r--r--nixpkgs/pkgs/data/fonts/junicode/test.tex46
-rw-r--r--nixpkgs/pkgs/data/fonts/junicode/tests.nix35
-rw-r--r--nixpkgs/pkgs/data/fonts/junicode/tex-font-path.patch166
-rw-r--r--nixpkgs/pkgs/data/fonts/lxgw-neoxihei/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/openmoji/build.patch77
-rw-r--r--nixpkgs/pkgs/data/fonts/openmoji/default.nix108
-rw-r--r--nixpkgs/pkgs/data/fonts/sketchybar-app-font/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/sudo/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/unifont/default.nix6
-rw-r--r--nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/clash-geoip/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/conway_polynomials/default.nix41
-rw-r--r--nixpkgs/pkgs/data/misc/hackage/pin.json8
-rw-r--r--nixpkgs/pkgs/data/misc/papirus-folders/default.nix1
-rw-r--r--nixpkgs/pkgs/data/misc/sing-geosite/default.nix10
-rw-r--r--nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/v2ray-geoip/default.nix11
-rw-r--r--nixpkgs/pkgs/data/misc/xorg-rgb/default.nix1
-rw-r--r--nixpkgs/pkgs/data/themes/adw-gtk3/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/alacritty-theme/default.nix6
-rw-r--r--nixpkgs/pkgs/data/themes/andromeda-gtk-theme/default.nix61
-rw-r--r--nixpkgs/pkgs/data/themes/catppuccin-kde/default.nix10
-rw-r--r--nixpkgs/pkgs/data/themes/catppuccin/default.nix41
-rw-r--r--nixpkgs/pkgs/data/themes/dracula-theme/default.nix6
-rw-r--r--nixpkgs/pkgs/data/themes/lightly-boehs/default.nix1
-rw-r--r--nixpkgs/pkgs/data/themes/lightly-qt/default.nix1
-rw-r--r--nixpkgs/pkgs/data/themes/where-is-my-sddm-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/budgie/budgie-backgrounds/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/budgie/budgie-control-center/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/budgie/budgie-desktop-view/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/budgie/budgie-desktop/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/budgie/budgie-screensaver/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/budgie/budgie-session/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/budgie/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/budgie/magpie/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/budgie/plugins/budgie-analogue-clock-applet/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/budgie/plugins/budgie-media-player-applet/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/budgie/plugins/budgie-user-indicator-redux/default.nix20
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/pix/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/xviewer/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-calculator/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/0001-fix-build-on-new-dtk.diff20
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/default.nix18
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-draw/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-editor/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-music/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-picker/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-reader/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-screen-recorder/default.nix3
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-shortcut-viewer/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-terminal/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/deepin/apps/deepin-voice-note/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/deepin/artwork/dde-account-faces/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/artwork/deepin-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-app-services/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-appearance/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff6
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-application-manager/default.nix43
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-calendar/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/patch_check_v23_interface.diff (renamed from nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/use_v23_dbus_interface.diff)6
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-launchpad/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-network-core/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-session-shell/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-session-ui/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-session/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/dde-widgets/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/core/deepin-service-manager/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/deepin/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/go-package/dde-api/default.nix26
-rw-r--r--nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/deepin/go-package/go-dbus-factory/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/deepin/go-package/startdde/0001-avoid-use-hardcode-path.patch61
-rw-r--r--nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/deepin/library/dtkcommon/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/library/dtkcore/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/library/dtkdeclarative/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/deepin/library/dtkgui/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/deepin/library/dtkwidget/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/library/image-editor/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/library/qt5integration/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix13
-rw-r--r--nixpkgs/pkgs/desktops/deepin/library/util-dfm/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/econnman/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/ecrire/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/ephoto/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/evisum/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/rage/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/expidus/calculator/default.nix50
-rw-r--r--nixpkgs/pkgs/desktops/expidus/calculator/pubspec.lock.json790
-rw-r--r--nixpkgs/pkgs/desktops/expidus/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome-2/platform/libIDL/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome-2/platform/libgnome/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/accerciser/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-characters/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-clocks/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-logs/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-nettool/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-notes/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/gnome-weather/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/polari/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/seahorse/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/apps/vinagre/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/baobab/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/caribou/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/dconf-editor/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/eog/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/epiphany/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-contacts/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-dictionary/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-screenshot/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gnome-tour/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/gucharmap/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/43/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/gnome/devtools/anjuta/default.nix44
-rw-r--r--nixpkgs/pkgs/desktops/gnome/devtools/devhelp/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/extensions.json393
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/unite/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome/extensions/valent/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/aisleriot/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/atomix/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/five-or-more/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/four-in-a-row/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-2048/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-chess/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-klotski/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-mahjongg/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-mines/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-nibbles/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-robots/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-sudoku/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-taquin/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/gnome-tetravex/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/hitori/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/iagno/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/lightsoff/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/quadrapassel/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/swell-foop/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/games/tali/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gitg/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gnome-applets/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gnome-extensions-cli/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gnome-flashback/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gnome-panel/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/gpaste/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnome/misc/pomodoro/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/back/default.nix22
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/base/default.nix44
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/default.nix17
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/gorm/default.nix24
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/gui/default.nix23
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/gworkspace/default.nix28
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/libobjc2/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/make/builder.sh127
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/make/default.nix23
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/make/gsmakeDerivation.nix19
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/make/setup-hook.sh96
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/make/wrapper.sh4
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/projectcenter/default.nix33
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/systempreferences/default.nix32
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/wrapGNUstepAppsHook.nix8
-rw-r--r--nixpkgs/pkgs/desktops/gnustep/wrapGNUstepAppsHook.sh96
-rw-r--r--nixpkgs/pkgs/desktops/lomiri/development/geonames/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lomiri/services/lomiri-thumbnailer/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lumina/lumina-calculator/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lumina/lumina-pdf/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxde/core/lxappearance/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxde/core/lxrandr/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxde/core/lxtask/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/compton-conf/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/liblxqt/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/lximage-qt/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/lxqt-about/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/lxqt-archiver/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/lxqt-build-tools/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/lxqt-panel/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/lxqt-runner/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/obconf-qt/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/pavucontrol-qt/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/pcmanfm-qt/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/qlipper/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/qps/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/qterminal/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/qtxdg-tools/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/screengrab/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/mate/atril/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja-dropbox/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix37
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja-extensions/hardcode-gsettings.patch169
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja-with-extensions/default.nix29
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja/default.nix12
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja/with-extensions.nix61
-rw-r--r--nixpkgs/pkgs/desktops/mate/default.nix27
-rw-r--r--nixpkgs/pkgs/desktops/mate/engrampa/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/mate/eom/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/mate/libmateweather/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/marco/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-applets/default.nix12
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-backgrounds/default.nix18
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-calc/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-common/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix45
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-gsettings-overrides/default.nix24
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-indicator-applet/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-media/default.nix36
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-menus/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-netbook/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-panel/default.nix37
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-panel/with-applets.nix61
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-polkit/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix13
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-user-guide/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-user-share/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-utils/default.nix36
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-wayland-session/default.nix58
-rw-r--r--nixpkgs/pkgs/desktops/mate/mozo/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/mate/pluma/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/mate/python-caja/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/polonium.nix8
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-browser-integration.nix1
-rw-r--r--nixpkgs/pkgs/desktops/rox/rox-filer/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/surf-display/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/catfish/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/orage/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfburn/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/libxfce4util/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/libxfce4windowing/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfconf/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix1
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix1
-rw-r--r--nixpkgs/pkgs/development/beam-modules/erlfmt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/chez-modules/chez-mit/default.nix2
-rw-r--r--nixpkgs/pkgs/development/chez-modules/chez-srfi/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/abcl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/acme/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/ante/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/arachne-pnr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/armips/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/as31/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/avra/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/ballerina/default.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/bfc/default.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/blueprint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/cakelisp/default.nix13
-rw-r--r--nixpkgs/pkgs/development/compilers/chez/default.nix12
-rw-r--r--nixpkgs/pkgs/development/compilers/chicken/4/egg2nix.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/chicken/5/egg2nix.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/ciao/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/circt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/closure/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/colm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/cone/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/crystal/default.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/crystal2nix/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/dart/package-source-builders/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/dart/package-source-builders/media_kit_libs_linux/default.nix33
-rw-r--r--nixpkgs/pkgs/development/compilers/dart/sources.nix12
-rw-r--r--nixpkgs/pkgs/development/compilers/dictu/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/dmd/generic.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/9/default.nix9
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/9/deps.nix11
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/9/release-info.json5
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/9/release.json10
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/update.nix20
-rwxr-xr-xnixpkgs/pkgs/development/compilers/dotnet/update.sh276
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/versions/9.0.nix143
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/vmr.nix15
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/ansi-wl-pprint.nix17
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/elm-instrument.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/elm-json.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/elm-test-rs.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/elm-test.nix1
-rwxr-xr-xnixpkgs/pkgs/development/compilers/elm/update.sh2
-rw-r--r--nixpkgs/pkgs/development/compilers/erg/default.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/fasmg/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/fbc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/firrtl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/flasm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/flix/default.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/artifacts/overrides/darwin.nix10
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/flutter-tools.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/flux/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/gbforth/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/gcl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.10.7.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/9.0.2.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/9.2.5.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/9.2.6.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/9.2.7.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/9.2.8.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/9.4.5.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/9.4.6.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/9.4.7.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/9.4.8.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/9.6.3-binary.nix410
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/9.8.2.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/common-hadrian.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/ghdl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/gleam/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/glslang/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/gmqcc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/go/1.20.nix189
-rw-r--r--nixpkgs/pkgs/development/compilers/go/1.21.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/graalvm/community-edition/buildGraalvmProduct.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/graalvm/community-edition/graalpy/hashes.nix18
-rw-r--r--nixpkgs/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/hashes.nix18
-rw-r--r--nixpkgs/pkgs/development/compilers/graalvm/community-edition/truffleruby/hashes.nix18
-rw-r--r--nixpkgs/pkgs/development/compilers/hvm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/idris2/build-idris.nix10
-rw-r--r--nixpkgs/pkgs/development/compilers/idris2/idris2-lsp.nix10
-rw-r--r--nixpkgs/pkgs/development/compilers/idris2/idris2.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/inform7/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/inklecate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/ispc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/jasmin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/julia/generic.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/juniper/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/kind2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/koka/default.nix13
-rw-r--r--nixpkgs/pkgs/development/compilers/kotlin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/kotlin/native.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/ldc/binary.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/ldc/generic.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/lesscpy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/ligo/default.nix21
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix138
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/clang/gnu-install-dirs.patch235
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/clang/purity.patch28
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/X86-support-extension.patch23
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/armv7l.patch32
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/default.nix140
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/gnu-install-dirs.patch129
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/normalize-var.patch16
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/default.nix285
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libcxx/default.nix104
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libcxx/gnu-install-dirs.patch100
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/default.nix89
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/gnu-install-dirs.patch34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libunwind/default.nix31
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/libunwind/gnu-install-dirs.patch34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/lld/default.nix46
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/lld/gnu-install-dirs.patch68
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/lldb/gnu-install-dirs.patch91
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/lldb/procfs.patch31
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix365
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs-polly.patch106
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs.patch417
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/11/openmp/default.nix47
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/default.nix17
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libcxx/default.nix144
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libcxx/gnu-install-dirs.patch100
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/default.nix87
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/gnu-install-dirs.patch34
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/libunwind/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/12/llvm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/13/compiler-rt/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/13/default.nix26
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/13/libcxx/default.nix155
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/13/libcxx/gnu-install-dirs.patch82
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/13/libcxxabi/default.nix84
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/13/libcxxabi/gnu-install-dirs.patch37
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/14/compiler-rt/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/14/default.nix20
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/14/libcxx/default.nix153
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/14/libcxx/gnu-install-dirs.patch21
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/14/libcxxabi/default.nix103
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/14/libcxxabi/gnu-install-dirs.patch22
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/15/compiler-rt/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/15/default.nix42
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/15/libcxx/default.nix176
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/15/libcxx/gnu-install-dirs.patch22
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/15/libcxxabi/default.nix113
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/15/libcxxabi/gnu-install-dirs.patch22
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/16/compiler-rt/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/16/default.nix42
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/16/libcxx/default.nix167
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/16/libcxx/gnu-install-dirs.patch22
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/16/libcxxabi/default.nix114
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/16/libcxxabi/gnu-install-dirs.patch22
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/16/llvm/default.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/17/compiler-rt/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/17/default.nix42
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/17/libcxx/default.nix169
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/17/libcxxabi/default.nix114
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/17/libcxxabi/gnu-install-dirs.patch22
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/17/llvm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/common/libclc.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/default.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/default.nix54
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch8
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/libcxx/default.nix167
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/default.nix130
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/gnu-install-dirs.patch22
-rw-r--r--nixpkgs/pkgs/development/compilers/llvm/git/llvm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/lobster/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/lunarml/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/manticore/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/mcpp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/microscheme/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/mint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/mrustc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/mrustc/minicargo.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/ocaml/4.14.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/odin/default.nix5
-rw-r--r--nixpkgs/pkgs/development/compilers/open-watcom/v2.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/openspin/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/opensycl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/ophis/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/paco/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/passerine/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/pforth/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/picat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/purescript/psc-package/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/rasm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/cargo-auditable.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/cargo.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/sbcl/default.nix15
-rw-r--r--nixpkgs/pkgs/development/compilers/scryer-prolog/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/serpent/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/sjasmplus/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/spasm-ng/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/spirv-llvm-translator/default.nix22
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/compiler/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/compiler/patches/swift-darwin-link-cxxabi.patch14
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/default.nix18
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/foundation/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/sourcekit-lsp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/swift-docc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/typescript/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/uasm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/urn/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/urweb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/xa/dxa.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/zasm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/zulu/16.nix26
-rw-r--r--nixpkgs/pkgs/development/compilers/zz/default.nix1
-rw-r--r--nixpkgs/pkgs/development/coq-modules/VST/default.nix2
-rw-r--r--nixpkgs/pkgs/development/coq-modules/Vpl/default.nix17
-rw-r--r--nixpkgs/pkgs/development/coq-modules/VplTactic/default.nix18
-rw-r--r--nixpkgs/pkgs/development/coq-modules/aac-tactics/default.nix2
-rw-r--r--nixpkgs/pkgs/development/coq-modules/compcert/default.nix25
-rw-r--r--nixpkgs/pkgs/development/coq-modules/coqide/default.nix1
-rw-r--r--nixpkgs/pkgs/development/coq-modules/equations/default.nix3
-rw-r--r--nixpkgs/pkgs/development/coq-modules/itauto/default.nix2
-rw-r--r--nixpkgs/pkgs/development/coq-modules/mathcomp-word/default.nix6
-rw-r--r--nixpkgs/pkgs/development/coq-modules/vcfloat/default.nix7
-rw-r--r--nixpkgs/pkgs/development/cuda-modules/cuda-samples/generic.nix4
-rw-r--r--nixpkgs/pkgs/development/cuda-modules/cudatoolkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/cuda-modules/generic-builders/manifest.nix12
-rw-r--r--nixpkgs/pkgs/development/cuda-modules/nccl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/cuda-modules/saxpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-add-cuda-compat-runpath.sh40
-rw-r--r--nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-add-driver-runpath-hook.sh8
-rw-r--r--nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-add-opengl-runpath-hook.sh28
-rw-r--r--nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-fix-elf-files.sh64
-rw-r--r--nixpkgs/pkgs/development/cuda-modules/setup-hooks/extension.nix34
-rw-r--r--nixpkgs/pkgs/development/embedded/arduino/arduino-ci/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/arduino/arduino-cli/default.nix18
-rw-r--r--nixpkgs/pkgs/development/embedded/arduino/arduino-core/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/arduino/arduino-language-server/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/arduino/arduinoOTA/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/avrdude/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/blackmagic/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/cc-tool/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/easypdkprog/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/elf2uf2-rs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/fpga/apio/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/fpga/ecpdap/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/fpga/fujprog/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/fpga/openfpgaloader/default.nix5
-rw-r--r--nixpkgs/pkgs/development/embedded/fpga/tinyprog/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/jtag-remote-server/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/nmrpflash/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/openocd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/stm32/stm32flash/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/stm8/stm8flash/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/svdtools/default.nix7
-rw-r--r--nixpkgs/pkgs/development/embedded/teensy-loader-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/uisp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/embedded/wch-isp/default.nix13
-rw-r--r--nixpkgs/pkgs/development/gnuradio-modules/ais/default.nix1
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-ncurses/default.nix1
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/cabal2nix-unstable.nix6
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-common.nix755
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix32
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix18
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix26
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix43
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix136
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix66
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml543
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml62
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml1406
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml352
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix46
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/generic-builder.nix56
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix14879
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-agent.nix66
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-api-agent.nix27
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-api-core.nix22
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-api.nix39
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-cli.nix43
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-cnix-expr.nix30
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-cnix-store.nix26
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hotfixes/openapi3.nix37
-rwxr-xr-xnixpkgs/pkgs/development/haskell-modules/hotfixes/update.sh10
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/lib/compose.nix7
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/lib/default.nix5
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/make-package-set.nix16
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix9
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix4
-rw-r--r--nixpkgs/pkgs/development/idris-modules/cube.nix2
-rw-r--r--nixpkgs/pkgs/development/idris-modules/mapping.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/acl2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/bats/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/bic/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/boron/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/bwbasic/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/cel-go/default.nix7
-rw-r--r--nixpkgs/pkgs/development/interpreters/ceptre/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/cling/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/clips/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/clojure/clooj.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/clojure/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/cyber/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/eff/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/elixir/1.16.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/emilua/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/25.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/expr/default.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/gauche/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/gnudatalanguage/default.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/gpython/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/hashlink/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/ivy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/janet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/janet/jpm.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/jelly/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/joker/default.nix7
-rw-r--r--nixpkgs/pkgs/development/interpreters/jython/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/kamilalisp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/kerf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/love/0.10.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/love/11.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/lua-5/hooks/setup-hook.sh5
-rw-r--r--nixpkgs/pkgs/development/interpreters/luau/default.nix14
-rw-r--r--nixpkgs/pkgs/development/interpreters/lune/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/maude/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/metamath/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/oak/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/perl/intepreter.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/8.2.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/8.3.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/generic.nix13
-rw-r--r--nixpkgs/pkgs/development/interpreters/picoc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/3.13/virtualenv-permissions.patch12
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/default.nix15
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/pypy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/qnial/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/quickjs/default.nix14
-rw-r--r--nixpkgs/pkgs/development/interpreters/rascal/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/red/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/renpy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/risor/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/rlci/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/rune/default.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/scsh/default.nix11
-rw-r--r--nixpkgs/pkgs/development/interpreters/sollya/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/spidermonkey/115.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/wasmer/default.nix7
-rw-r--r--nixpkgs/pkgs/development/interpreters/wasmtime/default.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/wavm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/wazero/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/yabasic/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/yaegi/default.nix5
-rw-r--r--nixpkgs/pkgs/development/interpreters/zuo/default.nix1
-rwxr-xr-xnixpkgs/pkgs/development/julia-modules/python/extract_artifacts.py4
-rw-r--r--nixpkgs/pkgs/development/libraries/SDL/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/SDL2/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/SDL2_mixer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/SDL2_sound/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/SDL2_ttf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/SDL_compat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/SDL_sixel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/accounts-qt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ace/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/agda/1lab/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/alkimia/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/allegro/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/appstream/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/appstream/qt.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/apr-util/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/apr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/aptdec/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/aravis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/arguments/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/assimp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audiality2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/cubeb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/libopenmpt/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/lv2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/lvtk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/avro-c++/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/aws-c-cal/aws-c-cal-musl-compat.patch33
-rw-r--r--nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/babl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/bashup-events/generic.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/basu/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/bctoolbox/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/belle-sip/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/boost-ext/boost-sml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/boringssl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/botan/generic.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/cairo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/cdo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/cegui/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/cgreen/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/chipmunk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/chromaprint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/civetweb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/cln/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/cloog-ppl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/cloog/0.18.0.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/cloog/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/cmark-gfm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/cmark/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/codec2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/coin3d/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/cppunit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ctpl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ctranslate2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ctypes_sh/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/curlpp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/cutee/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/cxx-rs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/cxxtest/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/czmq/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/db/db-6.0.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/db/db-6.2.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/dbus-glib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/dbxml/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/dee/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/duckdb/default.nix63
-rwxr-xr-xnixpkgs/pkgs/development/libraries/duckdb/update.sh45
-rw-r--r--nixpkgs/pkgs/development/libraries/duckdb/version.patch58
-rw-r--r--nixpkgs/pkgs/development/libraries/duckdb/versions.json5
-rw-r--r--nixpkgs/pkgs/development/libraries/exempi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/exiv2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/expat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/fbthrift/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/fflas-ffpack/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/4.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/5.nix21
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/6.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/default.nix58
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix76
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpegthumbnailer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ffms/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/flatcc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/flint/3.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/frame/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/freealut/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/freetts/default.nix58
-rw-r--r--nixpkgs/pkgs/development/libraries/freetype/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/fribidi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/fstrcmp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/funambol/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/fuzzylite/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ganv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gcab/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gcr/4.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gcr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gdal/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/gdome2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/geos/3.9.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/getdns/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gflags/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ggz_base_libs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/giflib/4.1.nix21
-rw-r--r--nixpkgs/pkgs/development/libraries/giflib/CVE-2021-40633.patch26
-rw-r--r--nixpkgs/pkgs/development/libraries/giflib/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/git2-cpp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/givaro/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/glib/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/glibc/mtrace.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gloox/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/graphene-hardened-malloc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/grpc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gsasl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gsignond/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gsound/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gspell/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gss/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gssdp/tools.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/rs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gtdialog/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk4-layer-shell/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gupnp/1.6.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gupnp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/gusb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/harfbuzz/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/hotpatch/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/htmlcxx/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/hyphen/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ip2location-c/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/isa-l/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/itk/generic.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/java/commons/logging/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/java/cup/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/java/hydra-ant-logger/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/java/jflex/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/java/lombok/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/java/swt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/jbig2dec/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/jellyfin-ffmpeg/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/jemalloc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/jose/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/json-fortran/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/kdb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/languagemachines/libfolia.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/languagemachines/timbl.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/languagemachines/ucto.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/lasem/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libaacs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libadwaita/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libagar/libagar_test.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libajantv2/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libarchive-qt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libassuan/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/libast/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libbson/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/libbytesize/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libcanberra/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libcdada/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libcdaudio/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libchardet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libcifpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libcork/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libcredis/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libcryptui/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libctl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libdatachannel/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libdazzle/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libdbi-drivers/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libdbi-drivers/libdbi-drivers-0.9.0-buffer_overflow.patch11
-rw-r--r--nixpkgs/pkgs/development/libraries/libde265/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libdeflate/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libdeltachat/Cargo.lock1301
-rw-r--r--nixpkgs/pkgs/development/libraries/libdeltachat/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libdevil/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libdicom/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libdisplay-info/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libdivecomputer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libdvdnav/4.2.1.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libei/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libemf2svg/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/liberfa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libevent/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libextractor/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libgbinder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libgit2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libgnomekbd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libgpg-error/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libgpiod/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libgpod/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libhandy/0.x.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libhandy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libhangul/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libhsts/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libieee1284/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libinfinity/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libinput/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libipfix/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libipt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libiptcdata/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libixp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libjcat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libjson-rpc-cpp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libjxl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libksba/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/liblockfile/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/liblogging/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/liblouis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmanette/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libmcrypt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libmikmod/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libmng/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libmodulemd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libmx/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libnatspec/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libndp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libnet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libngspice/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/liboil/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libomxil-bellagio/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libopenshot-audio/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libopus/default.nix36
-rw-r--r--nixpkgs/pkgs/development/libraries/libopus/test-timeout.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/libpanel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libpcap/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libpeas/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libpng/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libproxy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libpsl/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/libqalculate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/librdf/raptor2.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libredwg/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/libs3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libsamplerate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libsearpc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libseccomp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libserdes/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libshumate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libskk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libsmartcols/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libspelling/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libsrs2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libtar/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libtiff/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libtins/0001-force-cpp-14.patch26
-rw-r--r--nixpkgs/pkgs/development/libraries/libtins/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/libu2f-server/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libuchardet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libunicode/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libunwind/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/libusb-compat/0.1.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libva/utils.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libvarlink/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libwtk-sdl2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libxc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libxmlb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libxsmm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libykclient/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/libyuv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/lightgbm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/linbox/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/log4cpp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/log4shib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/luksmeta/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/magic-enum/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/malcontent/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/malcontent/ui.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/mesa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/mitama-cpp-result/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/mono-addins/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/mpfi/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/mtdev/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/mythes/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/nanoflann/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/neatvnc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/neon/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/netcdf-cxx4/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/netcdf-fortran/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/newt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/nghttp2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ngtcp2/gnutls.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/npth/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/nss/latest.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/nss_wrapper/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ntbtls/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/nuspell/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ocl-icd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ode/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/odpic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ogre/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/oniguruma/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/opencsg/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/opendbx/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/opensaml-cpp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/openssl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/openvdb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/orcania/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ortp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/paho-mqtt-c/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/pangolin/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/pcmsolver/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/pdal/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/phonon/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/physfs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/apfelgrid/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/fastjet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/hepmc3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/hoppet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/mela/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/pythia/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/qcdnum/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/wireplumber.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/pixman/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/pkger/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/plplot/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/poly2tri-c/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/pplite/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/protolock/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ptex/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/pth/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/qoi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/qpdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtbase.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtquick3dphysics.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtquickeffectmaker.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtserialbus.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtshadertools.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtsvg.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/quarto/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/rapidfuzz-cpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/rapidjson/unstable.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/re2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/recastnavigation/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/retro-gtk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/rocksdb/default.nix32
-rw-r--r--nixpkgs/pkgs/development/libraries/rote/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/rtlcss/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/s2geometry/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/s2n-tls/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/astronomy/libnova/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/biology/bicgl/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/science/biology/bicpl/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/science/biology/mirtk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/chemistry/dftd4/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/chemistry/harminv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/chemistry/libGDSII/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/chemistry/mctc-lib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/chemistry/molequeue/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/chemistry/multicharge/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/chemistry/openmm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/chemistry/tblite/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/bonmin/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/faiss/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/itpp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/lcalc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/magma/generic.nix117
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/mongoose/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/planarity/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/trilinos/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/sentry-native/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/serialdv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/sexpp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/shine/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/simdjson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/slib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/smooth/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/sonic/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/spdlog/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/sqlcipher/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/sregex/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/srtp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/subunit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/swiften/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/sycl-info/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ta-lib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/tachyon/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/taco/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/taglib-extras/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/taglib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/termbench-pro/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/text-engine/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/thrift/0.10.nix46
-rw-r--r--nixpkgs/pkgs/development/libraries/thrift/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/tidyp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/tinycbor/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/tinycdb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/tracker/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/tsocks/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/twolame/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ucc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/uci/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ucx/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/udns/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/unixODBCDrivers/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/usbredir/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/ustr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/v8/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/vigra/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/virglrenderer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/volume-key/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/vrb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/waffle/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/wavpack/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/wayland/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/waylandpp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/webkitgtk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/webrtc-audio-processing/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/wiiuse/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/wildmidi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/wiredtiger/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/wlroots/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/wolfssl/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/wt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/wxSVG/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/wxsqliteplus/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/x264/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/x265/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/xalanc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/xapian/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/xapian/tools/omega/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/xavs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/xgboost/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/xsd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/yubico-pam/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/yyjson/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/zeroc-ice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/zookeeper_mt/default.nix2
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/packages.nix9
-rw-r--r--nixpkgs/pkgs/development/lua-modules/generated-packages.nix57
-rw-r--r--nixpkgs/pkgs/development/lua-modules/overrides.nix20
-rw-r--r--nixpkgs/pkgs/development/misc/avr/libc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/misc/avr8-burn-omat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/misc/brev-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/misc/datafusion/default.nix1
-rw-r--r--nixpkgs/pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix12
-rw-r--r--nixpkgs/pkgs/development/misc/juce/default.nix1
-rw-r--r--nixpkgs/pkgs/development/misc/loc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/misc/msp430/mspdebug.nix1
-rw-r--r--nixpkgs/pkgs/development/misc/rappel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/misc/rpiboot/default.nix1
-rw-r--r--nixpkgs/pkgs/development/mobile/adbfs-rootless/default.nix1
-rw-r--r--nixpkgs/pkgs/development/mobile/fdroidcl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/mobile/ios-webkit-debug-proxy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/mobile/webos/novacomd.nix1
-rw-r--r--nixpkgs/pkgs/development/node-packages/aliases.nix1
-rw-r--r--nixpkgs/pkgs/development/node-packages/node-packages.json1
-rw-r--r--nixpkgs/pkgs/development/node-packages/node-packages.nix10291
-rw-r--r--nixpkgs/pkgs/development/node-packages/overrides.nix43
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/camlpdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cpdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cry/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/csv/csvtool.nix1
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/eio/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix11
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/jingoo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/lem/default.nix1
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/linol/default.nix18
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/linol/lwt.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/lwd/tyxml-lwd.nix9
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mdx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/menhir/default.nix1
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-syntax-shims/default.nix1
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocsigen-start/default.nix14
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/odoc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix1
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/tyxml/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/wasm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/octave-modules/signal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/perl-modules/ImageExifTool/default.nix55
-rw-r--r--nixpkgs/pkgs/development/perl-modules/Tirex/default.nix55
-rw-r--r--nixpkgs/pkgs/development/perl-modules/strip-nondeterminism/default.nix1
-rw-r--r--nixpkgs/pkgs/development/php-packages/castor/default.nix16
-rw-r--r--nixpkgs/pkgs/development/php-packages/composer/default.nix8
-rw-r--r--nixpkgs/pkgs/development/php-packages/ioncube-loader/default.nix57
-rw-r--r--nixpkgs/pkgs/development/php-packages/mongodb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/php-packages/opentelemetry/default.nix4
-rw-r--r--nixpkgs/pkgs/development/php-packages/phalcon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/php-packages/phpstan/default.nix6
-rw-r--r--nixpkgs/pkgs/development/php-packages/psysh/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/3to2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/a2wsgi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aafigure/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aardwolf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/absl-py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/accelerate/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/actdiag/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/adafruit-io/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/add-trailing-comma/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/adjusttext/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/adlfs/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/aesedb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioaladdinconnect/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioapns/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioautomower/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioazuredevops/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiobafi6/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioblescan/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioboto3/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiobroadlink/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiocache/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioconsole/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiocurrencylayer/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiodhcpwatcher/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioecowitt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioelectricitymaps/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioemonitor/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiogram/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioharmony/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiohomekit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiohttp-client-cache/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiohttp-wsgi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiohttp/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiolifx/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiomisc-pytest/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiomisc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiomqtt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiomysensors/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aionotion/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiooncue/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiooss2/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiopinboard/default.nix60
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiopvapi/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiopvpc/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiopylgtv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioraven/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiortm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioshelly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioslimproto/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiosmtpd/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiosql/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiounifi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiowinreg/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiozeroconf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/airium/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/airthings-ble/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/ajsonrpc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/alabaster/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/albumentations/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/ale-py/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/alectryon/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/alembic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/allure-python-commons-test/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/amaranth/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/amarna/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/amazon-ion/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/anonip/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansi2html/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansi2image/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansible/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/anthemav/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/anthropic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/antlr4-python3-runtime/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/anyconfig/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/anyio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/anytree/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/anywidget/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apache-beam/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apcaccess/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/apispec-webframeworks/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/apkinspector/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/app-model/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apprise/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/approvaltests/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/apsw/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aranet4/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/arcam-fmj/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/archspec/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/arelle/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/argcomplete/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/argh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/argilla/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/argostranslate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aria2p/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/ariadne/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/art/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/arviz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/arxiv2bib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/asdf-standard/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asdf-transform-schemas/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/asf-search/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asks/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/asn1ate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/asn1tools/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/astroid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/astropy-iers-data/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/astropy/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyauth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncpg/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/asysocks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/atenpdu/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/atpublic/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/atsim-potentials/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/attrs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/attrs/remove-hatch-plugins.patch24
-rw-r--r--nixpkgs/pkgs/development/python-modules/audible/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/auditok/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/auth0-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/authcaptureproxy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/authheaders/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/autofaiss/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/autoflake/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/autoit-ripper/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/autologging/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/automat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/av/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/avro-python3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/avro/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/avro3k/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aw-client/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aw-core/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/aws-encryption-sdk/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/aws-lambda-builders/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/aws-sam-translator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aws-xray-sdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/awslambdaric/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/awswrangler/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ax/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/axis/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/axisregistry/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-batch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/b2sdk/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/babel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/babelfont/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bagit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bandit/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/barectf/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/base58/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/baseline/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/batchspawner/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bayespy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bc-jsonpath-ng/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bc-python-hcl2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bcf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bcg/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bch/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bcrypt/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/bdffont/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/beaker/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/beancount-black/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/behave/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bellows/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bentoml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/betamax/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/betterproto/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bids-validator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/biliass/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bimmer-connected/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bincopy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/binwalk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bip32/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitarray/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitmath/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/black-macchiato/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/black/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/blebox-uniapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bless/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/blinkstick/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/blobfile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/blockdiag/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/blocksat-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bloodhound-py/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bloodyad/default.nix64
-rw-r--r--nixpkgs/pkgs/development/python-modules/bluecurrent-api/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/bluetooth-auto-recovery/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/bme280spi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bokeh/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bootstrap/flit-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/borb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bork/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/boto3-stubs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/boto3/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/botocore-stubs/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/botocore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/botorch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bottle/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bpemb/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/breathe/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/brian2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/broadbean/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/brother/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bsddb3/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/bthome-ble/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/bugz/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bugzilla/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/buienradar/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/build/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildcatrust/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildout/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bumps/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bundlewrap/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bwapy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/bx-py-utils/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cachecontrol/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cachelib/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/cachier/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cairosvg/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/calmjs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/camelot/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cantools/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/capstone/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cart/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cartopy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/case/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/cashaddress/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/catboost/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/catppuccin/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/cbor2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/celery-types/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/celery/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/cement/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/censys/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cepa/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cert-chain-resolver/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/certauth/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/certipy-ad/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/certipy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/certomancer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cffconvert/default.nix64
-rw-r--r--nixpkgs/pkgs/development/python-modules/cffsubr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cfn-flip/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/cgroup-utils/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/chalice/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/chameleon/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/chardet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/charset-normalizer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/chat-downloader/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/check-manifest/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/checkdmarc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cheroot/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cherrypy/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/chevron/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/chromadb/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/citeproc-py/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/clarifai-grpc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/clarifai/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/cleanlab/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/clevercsv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/clf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cliche/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/click-odoo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/clickhouse-cityhash/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/clickhouse-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/clickhouse-connect/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/clickhouse-driver/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/cliff/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cloudpathlib/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/cloudsmith-api/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cloudsplaining/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/clustershell/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/cmarkgfm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/coapthon3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/coconut/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cocotb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/codecov/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cogapp/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/cohere/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/coincurve/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/coinmetrics-api-client/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/colorcet/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/colout/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/commonmark/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/compiledb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/compreffor/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/compressed-rtf/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/concurrent-log-handler/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/confight/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/configparser/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/connect-box/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/connexion/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/controku/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/convertdate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/conway-polynomials/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/cornice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/correctionlib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/corsair-scan/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cot/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/courlan/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/coverage/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/coveralls/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cram/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cramjam/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/crc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/credstash/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/criticality-score/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/croniter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/crossplane/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptoparser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/css-html-js-minify/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/css-inline/Cargo.lock1160
-rw-r--r--nixpkgs/pkgs/development/python-modules/css-inline/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/cssbeautifier/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cssmin/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cssutils/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/cu2qu/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cucumber-tag-expressions/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/cupy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cvss/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cwl-upgrader/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cx-freeze/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cyclonedx-python-lib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cysignals/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/cytoolz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/daff/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/daphne/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/daqp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dash/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-yarn/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/databricks-sql-connector/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dataclass-wizard/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/datadog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dataprep-ml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/datasets/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/datasette/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/datashader/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dbf/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/dbt-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/ddt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/deal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/debianbts/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/debtcollector/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/debts/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/debugpy/default.nix60
-rw-r--r--nixpkgs/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch6
-rw-r--r--nixpkgs/pkgs/development/python-modules/debugpy/hardcode-gdb.patch4
-rw-r--r--nixpkgs/pkgs/development/python-modules/debugpy/hardcode-lldb.patch4
-rw-r--r--nixpkgs/pkgs/development/python-modules/debugpy/hardcode-version.patch2
-rw-r--r--nixpkgs/pkgs/development/python-modules/debugpy/skip-attach-pid-tests.patch27
-rw-r--r--nixpkgs/pkgs/development/python-modules/deemix/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/deepdiff/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/deepdish/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/deepl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/defang/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/dehinter/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/deid/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dek/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/deltachat/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/demes/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/demesdraw/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/demjson3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/demoji/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/deprecat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/detect-secrets/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/diceware/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dicom2nifti/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dict2xml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/diffimg/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/diffusers/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/dill/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/dinghy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dingz/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dirigera/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/dissect-executable/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/dissect-shellitem/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dissect-util/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/distlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/distro/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-anymail/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-celery-beat/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-compressor/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-configurations/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-context-decorator/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-csp/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-extensions/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-formtools/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-health-check/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-leaflet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-otp/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-statici18n/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-storages/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/django/4.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/django/5.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/dm-sonnet/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/dnf4/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dns-lexicon/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/doc8/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/docformatter/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/docstr-coverage/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/docstring-to-markdown/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/docstring-to-markdown/remove-coverage-tests.patch16
-rw-r--r--nixpkgs/pkgs/development/python-modules/docx2txt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dodgy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/doit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dot2tex/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/downloader-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dploot/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/drf-spectacular/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/dronecan/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/ds-store/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ds4drv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dsmr-parser/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/dsnap/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dtschema/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/dtschema/fix_libfdt_name.patch24
-rw-r--r--nixpkgs/pkgs/development/python-modules/dtw-python/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/duckdb/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/duckduckgo-search/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/duecredit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/dunamai/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/durus/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/dvc-azure/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dvc-data/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/dvc-http/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/dvc-objects/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dvc-s3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dvc/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/dvclive/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/easyocr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ebcdic/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/ed25519-blake2b/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ed25519/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/edalize/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/editdistance/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/editdistpy/default.nix69
-rw-r--r--nixpkgs/pkgs/development/python-modules/editor/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/editorconfig/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/eggdeps/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/elastic-apm/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/elastic-transport/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/eliot/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/eliqonline/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/elmax/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/email-validator/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/empy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/emv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/energyflow/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/enocean/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/envs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ephemeral-port-reserve/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/eradicate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/espeak-phonemizer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/esprima/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ete3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/etils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/evdev/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/eventkit/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/execnb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/executor/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/exifread/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/extract-msg/default.nix70
-rw-r--r--nixpkgs/pkgs/development/python-modules/extractcode/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/extruct/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/eyed3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ezdxf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/f90nml/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/fabric/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/fairscale/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/faker/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/fakeredis/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/falcon/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/faraday-plugins/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/farm-haystack/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastai/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastapi-sso/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastapi/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastavro/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastembed/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastentrypoints/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastjsonschema/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/faust-cchardet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/favicon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/feedfinder2/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/feedgen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/filecheck/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/filetype/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/find-libpython/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/findimports/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/findpython/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/fiona/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/firebase-messaging/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/fireflyalgorithm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/firetv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-marshmallow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-security-too/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-session-captcha/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-swagger/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/flax/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flet-core/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/flet-runtime/_setup_runtime.py3
-rw-r--r--nixpkgs/pkgs/development/python-modules/flet-runtime/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/flet/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/flipr-api/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/flit-core/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/flit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/flow-record/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/flowlogs-reader/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/flux-led/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/flynt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/folium/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/font-v/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/fontbakery/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fontmake/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fonttools/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/fordpass/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/formbox/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/formulae/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/foxdot/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/fpdf2/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/fpylll/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/freebox-api/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/freezegun/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/frozenlist2/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/fsspec/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/ftfy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/future-fstrings/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/future-typing/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/future/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/fvs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/fx2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gaphas/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/garminconnect/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/garth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gassist-text/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gatt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gawd/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/gcovr/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/gcsfs/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/gdown/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/gehomesdk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gemfileparser/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/geoip/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/geoip2/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/geomet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/geometric/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gerbonara/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/getmac/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gevent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gflanguages/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ghdiff/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ghp-import/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ghrepo-stats/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gibberish-detector/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/git-filter-repo/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/git-revise/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/git-sweep/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/github-to-sqlite/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/githubkit/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/gitpython/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/glad/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/glad2/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/glean-parser/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/glom/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/glyphsets/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/glyphslib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gntp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/goobook/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-auth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-container/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-datacatalog/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-dlp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-iam/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-kms/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-netapp/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-securitycenter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-generativeai/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-i18n-address/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-nest-sdm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-pasta/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-resumable-media/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/googleapis-common-protos/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/googletrans/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gotailwind/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gplaycli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gprof2dot/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gptcache/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gpuctypes/0001-fix-dlopen-cuda.patch44
-rw-r--r--nixpkgs/pkgs/development/python-modules/gpuctypes/default.nix127
-rw-r--r--nixpkgs/pkgs/development/python-modules/gpuctypes/fix-dlopen-cuda.patch32
-rw-r--r--nixpkgs/pkgs/development/python-modules/gpustat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gpxpy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gpy/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/gql/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/gradient/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gradio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphene-django/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphene/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphlib-backport/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphtage/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphviz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/greatfet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/green/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/green/tests.patch17
-rw-r--r--nixpkgs/pkgs/development/python-modules/greenlet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/greynoise/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/griffe/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/grip/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio-channelz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio-health-checking/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio-reflection/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio-status/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio-testing/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gruut-ipa/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gruut/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gsd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gspread/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/gto/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/gtts/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/guessit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/guidance/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/gurobipy/darwin.nix82
-rw-r--r--nixpkgs/pkgs/development/python-modules/gvm-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gymnasium/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/gyp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/h3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/habitipy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/hacking/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hahomematic/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/hassil/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/hatch-jupyter-builder/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/hatchling/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/helpdev/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/hetzner/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/heudiconv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hg-git/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hid-parser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hiredis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hishel/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/hist/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/histoprint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/hjson/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/hmmlearn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hologram/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/holoviews/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/home-assistant-chip-core/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/homeassistant-bring-api/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/homematicip/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/hpccm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/html-sanitizer/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/html2text/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/htmldate/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/htmllistparse/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/htmlmin/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpbin/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpserver/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpx-auth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpx/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/huggingface-hub/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/hupper/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/hydra-check/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/hydra-core/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/hypercorn/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/hyperopt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/hyperscan/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hypothesis/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/hypothesmith/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/i2csense/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ical/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/icalendar/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/idasen/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/identify/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ifcopenshell/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/igraph/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ilua/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/image-diff/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/imagehash/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/imgdiff/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/imgtool/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/importlab/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/imread/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/imutils/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/in-n-out/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/indexed-bzip2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/inquirer/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/inscriptis/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/insightface/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/instructor/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/internetarchive/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/invisible-watermark/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/iocextract/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/iocsearcher/default.nix71
-rw-r--r--nixpkgs/pkgs/development/python-modules/iodata/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipdb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipy/default.nix (renamed from nixpkgs/pkgs/development/python-modules/IPy/default.nix)5
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipykernel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipyparallel/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipython/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipyvuetify/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipywidgets/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipyxact/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/iso-639/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/isort/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/isosurfaces/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/j2cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco-abode/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco-classes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco-collections/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco-email/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco-net/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/jax/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaxlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jedi-language-server/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/jello/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jira/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/jiwer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jmespath/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/josepy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/joserfc/default.nix57
-rw-r--r--nixpkgs/pkgs/development/python-modules/jproperties/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jpylyzer/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/json-merge-patch/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/json-schema-for-humans/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/json-tricks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/json5/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonargparse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonconversion/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsondiff/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonformatter/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonpath-ng/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonpath-rw/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonpointer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonschema-path/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonschema-spec/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonschema-specifications/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonschema/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/junitparser/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-c-kernel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-cache/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-collaboration/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-console/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-contrib-core/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-events/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-lsp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-server-fileid/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-server/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab-lsp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab-server/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/jwcrypto/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/k5test/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/kaggle/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/kajiki/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/kanidm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kaptan/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/karton-asciimagic/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/karton-autoit-ripper/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/karton-classifier/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/karton-config-extractor/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/karton-dashboard/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/karton-mwdb-reporter/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/karton-yaramatcher/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/kazoo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/keep/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/keepkey/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/keras/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/keyring-pass/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/keyring/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/keyrings-cryptfile/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/keystoneauth1/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/khanaa/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/kinparse/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/kivy/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/klaus/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/kml2geojson/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/kombu/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/lacuscore/default.nix65
-rw-r--r--nixpkgs/pkgs/development/python-modules/langchain-community/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/langchain-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/langchain/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/langid/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/langsmith/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/lark/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/laspy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/latexcodec/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lcov-cobertura/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ldfparser/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/leather/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/ledgercomm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ledgerwallet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/lexid/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/libretranslate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/librouteros/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/libsass/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/libtmux/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/liccheck/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/license-expression/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lightning-utilities/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/limits/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/line-profiler/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/linien-client/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/linien-common/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/linkify-it-py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/linknlink/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/linode-api/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/litellm/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/livereload/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/lizard/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/llama-index-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/llama-parse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lmcloud/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/lnkparse3/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/localstack-ext/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/localstack/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/logilab/common.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/logster/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/loopy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/lpc-checksum/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/lsassy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ltpycld2/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/luddite/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/lunarcalendar/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/lupupy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/lxmf/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/lyricwikia/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/lz4/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/m2crypto/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/m3u8/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/mac-alias/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mac-vendor-lookup/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/macfsevents/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/maestral/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/magika/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/mail-parser/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/maison/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mako/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/malduck/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/managesieve/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/manhole/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/manifest-ml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/manifestoo-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/marimo/default.nix65
-rw-r--r--nixpkgs/pkgs/development/python-modules/markdown/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/markdown2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/markdownify/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/marshmallow-dataclass/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/marshmallow-enum/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/masky/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mathlibtools/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/matplotlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/matplotx/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/maxminddb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/maya/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/mcstatus/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/md-toc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mdformat-admon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mdformat-mkdocs/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/mediafile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/meilisearch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/memory-profiler/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mercantile/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/merge3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mergedb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mesa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/meshcat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/meshio/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/meshlabxml/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/meshtastic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/meteofrance-api/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mezzanine/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/miauth/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/micloud/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/microdata/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/microsoft-kiota-serialization-json/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/midiutil/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/mike/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/milc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mindsdb-evaluator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/minidump/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/minio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/misaka/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mistletoe/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mixpanel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mkdocs-autorefs/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/mkdocs-linkcheck/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mkdocs-material/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mkdocs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mkdocstrings-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mlflow/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/mlx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mlxtend/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mne-python/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mobi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mobly/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/mocket/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/molecule/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/monai-deploy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mongoengine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/monitorcontrol/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/more-itertools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/morfessor/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/moto/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/mouseinfo/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/mplhep/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mpris-server/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mpyq/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mqtt2influxdb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mrsqm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/msg-parser/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/msgpack/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/msgraph-core/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/msldap/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/msoffcrypto-tool/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mss/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mullvad-closest/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/multiprocess/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/multiset/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/mutag/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mwdblib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mwxml/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy-boto3-builder/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy-boto3/default.nix82
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/nameko/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/names/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nampa/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/napari-npe2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/napari/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/natsort/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/navec/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbclient/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbconflux/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbconvert/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbexec/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbformat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbtlib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbval/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/nclib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ndg-httpsclient/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ndindex/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/nessclient/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/netaddr/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/netapp-ontap/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/netio/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/netutils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/networkx/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/nevow/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/newversion/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nh3/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/niaarm/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/nikola/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/ninebot-ble/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ninja/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nipy/default.nix82
-rw-r--r--nixpkgs/pkgs/development/python-modules/nipype/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nitransforms/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/niworkflows/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/nkdfu/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nltk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nocasedict/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nocaselist/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nodeenv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nomadnet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nose/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nose2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nosejs/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/notebook-shim/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/notebook/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/notedown/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/notify-py/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/notion-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nox/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/nsz/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/num2words/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/numexpr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/numpy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/numpydoc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nunavut/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/nutils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nvchecker/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/nxt-python/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/objgraph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/oci/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/oelint-parser/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/ofxclient/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ofxtools/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/oldest-supported-numpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/olefile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ollama/default.nix64
-rw-r--r--nixpkgs/pkgs/development/python-modules/ome-zarr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ondilo/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/onetimepad/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/onkyo-eiscp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/online-judge-api-client/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/online-judge-tools/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/onlykey-solo-python/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/onnx/1.15.0-CVE-2024-27318.patch360
-rw-r--r--nixpkgs/pkgs/development/python-modules/onnx/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/onvif-zeep-async/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/onvif-zeep/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/openai-whisper/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/openai/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openant/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/openapi-core/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/openllm-client/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/openllm-core/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/openllm/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/openrazer/daemon.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/opensfm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openstackdocstheme/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openstacksdk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-api/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-common/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-grpc/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-http/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-aiohttp-client/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-asgi/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-django/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-fastapi/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-flask/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-grpc/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-wsgi/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-proto/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-sdk/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-test-utils/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentelemetry-util-http/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/openusd/default.nix221
-rw-r--r--nixpkgs/pkgs/development/python-modules/openwrt-luci-rpc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/opower/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/opsdroid-get-image-size/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/optax/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/optimum/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/optuna/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/oracledb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/orange-canvas-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/orange-widget-base/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/orange3/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/oras/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/orbax-checkpoint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/orgparse/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/osc-diagram/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/osc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/oscpy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/oslo-concurrency/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/oslo-config/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/oslo-i18n/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/oslo-log/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/oslo-utils/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/oslotest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/osqp/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/overrides/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ovmfvartool/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/owslib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/packageurl-python/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/pandas/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pandoc-xnos/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pandocfilters/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/panel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/papermill/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/papis/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/param/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/paramiko/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/parfive/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/parquet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/parse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/parsedmarc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/parsley/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/paste/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pastescript/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/path/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/pathlib-abc/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/pathspec/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pathy/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/patiencediff/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/patool/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/patsy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/paver/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/paypalrestsdk/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/pbr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pcbnew-transition/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pcodedmp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pcpp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pdf2docx/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pdfplumber/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pdfx/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pdoc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pebble/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/peewee/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pelican/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pendulum/3.nix99
-rw-r--r--nixpkgs/pkgs/development/python-modules/pendulum/default.nix99
-rw-r--r--nixpkgs/pkgs/development/python-modules/pep440/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pep8/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/percol/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/periodiq/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/persim/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pg8000/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pgcli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pgmpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pgsanity/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/phe/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/phik/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/phonemizer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/phonopy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/piccolo-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/picosvg/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pijuice/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pillow-heif/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pinboard/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ping3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pip-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pipdate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pipdeptree/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pipx/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/pixcat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pixel-font-builder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pixel-ring/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pkginfo/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pkginfo2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/plac/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/platformdirs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/playwright-stealth/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/playwright/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/playwrightcapture/default.nix82
-rw-r--r--nixpkgs/pkgs/development/python-modules/pleroma-bot/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/plotext/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/plotly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plotnine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pluthon/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/plyplus/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pmdarima/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/pnglatex/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/podcats/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/podman/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/poetry-core/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/polars/Cargo.lock631
-rw-r--r--nixpkgs/pkgs/development/python-modules/polars/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/policy-sentry/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pontos/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pooch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pook/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/port-for/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/portpicker/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pox/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ppft/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pprintpp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pproxy/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/prance/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/prayer-times-calculator/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/preprocess-cancellation/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/preprocess-cancellation/pep-621.patch20
-rw-r--r--nixpkgs/pkgs/development/python-modules/preshed/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/prisma/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/progressbar2/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/prometheus-client/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/prompt-toolkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/prophet/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/propka/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/proto-plus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/protonvpn-nm-lib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/proxy-db/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/psd-tools/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/psycopg/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/psygnal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ptable/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ptpython/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/publicsuffixlist/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pubnub/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pudb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pulp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pulsar-client/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pulumi-aws/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pure-protobuf/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/pvlib/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-partiql-parser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-radix-sr/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-scrypt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-sneakers/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-stringmatching/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-synologydsm-api/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-tree-sitter/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-vapid/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/py3langid/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/py3nvml/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/py65/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyamg/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyaml/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyannotate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyannote-database/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyannote-metrics/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyannote-pipeline/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyathena/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyatome/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybase64/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybids/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybind11/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycairo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycaption/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycardano/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycec/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycflow2dot/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pychromecast/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyclip/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycodestyle/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycognito/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycontracts/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycountry/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycrc/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycrdt-websocket/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycrdt/Cargo.lock219
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycrdt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycritty/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycryptodome/vectors.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyct/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycurl/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydaikin/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydantic-core/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydantic-extra-types/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydantic-settings/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydantic/1.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydantic/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydeconz/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydeps/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydevd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydicom/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydiscourse/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydmd/default.nix83
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydocstyle/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydoe/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydot/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydot/hardcode-graphviz-path.patch16
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyelftools/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyemvue/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyenphase/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyevmasm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyezviz/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfido/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfiglet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyflakes/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfluidsynth/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyformlang/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfritzhome/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyftpdlib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfttt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfxa/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygal/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygetwindow/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygithub/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygnmi/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygount/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygtail/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygtfs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhanko/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhcl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhocon/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyicloud/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyinfra/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyinstaller-versionfile/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyinstrument/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyipp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyixapi/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykakasi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykaleidescape/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykdtree/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykeyatome/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykoplenti/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykulersky/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykwalify/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylacrosse/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylacus/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylama/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylddwrap/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylint/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylnk3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylsp-rope/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymdown-extensions/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyment/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymetar/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymodbus/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymongo-inmemory/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymongo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymorphy2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymorphy3/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymsgbox/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymupdf/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymysensors/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynamodb/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynello/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyngo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyngrok/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynose/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynvml/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyoctoprintapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyodbc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyomo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyopencl/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyoppleio/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyp/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyparsing/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypass/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypca/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypck/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypdf/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyperf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyphotonfile/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypinyin/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypiserver/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyprof2calltree/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyproj/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyprosegur/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyprusalink/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypugjs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypykatz/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqt/6.x.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqt5-stubs/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqt6-charts/default.nix (renamed from nixpkgs/pkgs/development/python-modules/pyqt6-charts.nix)5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqt6-webengine/default.nix (renamed from nixpkgs/pkgs/development/python-modules/pyqt6-webengine.nix)5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyquil/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyquil/pydantic.patch28
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyradiomics/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyrate-limiter/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyrdfa3/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroma/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyscaffold/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyscard/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyscf/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyscreeze/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysdl2/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysecuritas/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysiaalarm/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysimplegui/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyslurm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysmt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysnmp-lextudio/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysol-cards/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysolcast/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyspnego/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysrt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyssim/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysubs2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysuez/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysyncobj/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytado/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytaglib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytapo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytedee-async/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytenable/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytensor/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytesseract/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-base-url/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-django/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-examples/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-harvest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-httpserver/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-jupyter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-lazy-fixture/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-lazy-fixture/pytest-8-compatible.patch66
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-mypy-plugins/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-plt/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-runner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-services/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-socket/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-subtests/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-timeout/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-twisted/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-unordered/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest/7.nix116
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-barcode/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-bidi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-cinderclient/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-dateutil/default.nix (renamed from nixpkgs/pkgs/development/python-modules/dateutil/default.nix)19
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-dbusmock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-docs-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-fontconfig/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-fsutil/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-fx/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-glanceclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-gnupg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-heatclient/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-hl7/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-hpilo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-idzip/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-ipmi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-ironicclient/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-kasa/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-linux-procfs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-louvain/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-lsp-black/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-lsp-server/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-manilaclient/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-matter-server/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-mystrom/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-novaclient/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-nvd3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-on-whales/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-openstackclient/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-roborock/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-secp256k1-cardano/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-slugify/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-snap7/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-snappy/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-socks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-songpal/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-stdnum/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-swiftclient/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-tado/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-ulid/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-yate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-zbar/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pythonfinder/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytibber/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch-pfn-extras/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytrydan/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytube/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyunifiprotect/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvisa-py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvista/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvizio/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywal/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywatchman/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywavelets/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywayland/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywaze/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywebpush/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywebview/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywerview/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywizlight/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyxnat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyzerproc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyzmq/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyzufall/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/qcengine/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-finance/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-machine-learning/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-nature/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-optimization/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/qrcode/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/qtawesome/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/qtconsole/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/qtile/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/qtpy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/quantulum3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/quart/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/quaternion/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/radian/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/radicale-infcloud/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/radios/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/rainbowstream/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ramlfications/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/rapidfuzz/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/rapidgzip/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/rasterio/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ratarmount/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/raven/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/razdel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/rbtools/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/rdflib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/readabilipy/default.nix67
-rw-r--r--nixpkgs/pkgs/development/python-modules/readchar/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/readmdict/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/readme-renderer/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/recipe-scrapers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/recurring-ical-events/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/red-black-tree-mod/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/redis-om/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/referencing/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/regenmaschine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/regex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/relatorio/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/remarshal/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/remotezip/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/renault-api/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/reorder-python-imports/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/repocheck/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/reportlab/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/reptor/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/reqif/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-file/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-gssapi/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/requirements-detector/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/resampy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/responses/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/restrictedpython/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/restview/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/rich-click/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/rich/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ring-doorbell/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/ripser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/riscof/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/riscv-config/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/riscv-isac/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/rmsd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/rnc2rng/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/rns/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/roadlib/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/roadrecon/default.nix63
-rw-r--r--nixpkgs/pkgs/development/python-modules/roadtools/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/roadtx/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/robomachine/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework-databaselibrary/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rokuecp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rollbar/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/roombapy/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/ropgadget/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ropper/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/rotary-embedding-torch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rova/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rpds-py/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/rplcd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/rpmfile/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/rpy2/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/rpyc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rpyc4/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/rq/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/rst2ansi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/rst2pdf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/rstcheck/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/rtfde/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/rtslib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ruamel-yaml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/runs/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/s3-credentials/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/s3fs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sacrebleu/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sacremoses/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/safety-schemas/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/safety/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/sagemaker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/samsungctl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/sanic/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/scapy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/schema-salad/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-build-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-build/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-fuzzy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-hep-testdata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-learn/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-posthocs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-rf/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/scipy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/scmrepo/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/scooby/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/scour/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/scrapy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/screed/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sdkmanager/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/seabreeze/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/seedir/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/segments/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/segno/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/selenium-wire/default.nix80
-rw-r--r--nixpkgs/pkgs/development/python-modules/selenium/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/semver/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/send2trash/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sentence-transformers/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/seqdiag/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/servefile/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-gettext/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-git-versioning/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-odoo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sfrbox-api/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/shamir-mnemonic/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/shap/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/shapely/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/shaperglot/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/shazamio/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/shiboken2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/shodan/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/shortuuid/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/show-in-file-manager/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/shtab/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/signify/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/signxml/default.nix57
-rw-r--r--nixpkgs/pkgs/development/python-modules/sigstore-protobuf-specs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sigstore-rekor-types/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sigstore/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/simple-term-menu/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sip/4.x.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sipyco/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/skein/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/skidl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/skybellpy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/skytemple-files/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/slicedimage/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/slimit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/slob/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/smart-open/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/smartypants/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/snakebite/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/snakeviz/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/snapcast/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sniffio/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/snitun/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/snscrape/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/socialscan/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/socid-extractor/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/socksipy-branch/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/somajo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/soundcloud-v2/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/sourmash/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/soxr/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/spark-parser/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sparklines/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sparqlwrapper/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sparse/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/speechrecognition/default.nix63
-rw-r--r--nixpkgs/pkgs/development/python-modules/spglib/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx-autodoc-typehints/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx-automodapi/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx-external-toc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx-serve/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinx/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/spython/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlalchemy-continuum/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlmap/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlparse/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sre-yield/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/srptools/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ssdp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sshfs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sshtunnel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/starlette/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/static3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/staticjinja/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/statmake/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/statsmodels/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/std-uritemplate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/steamship/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/stem/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/stestr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/stevedore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/stickytape/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/stim/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/stix2-patterns/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/stm32loader/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/stone/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/strawberry-graphql/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/streamlit/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/stripe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/striprtf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/stupidartnet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/subarulink/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/subzerod/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/succulent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sudachidict/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sunpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sunweg/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/sure/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/surepy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/survey/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/svglib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/sybil/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/sympy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/symspellpy/default.nix76
-rw-r--r--nixpkgs/pkgs/development/python-modules/syncedlyrics/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/synologydsm-api/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/syrupy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/systembridgeconnector/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/systembridgemodels/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/tabcmd/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/tabulate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tabview/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tagoio-sdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tailer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tank-utility/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tatsu/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/taxi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tdir/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/telfhash/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tellduslive/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/templateflow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tempora/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorboard/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorboardx/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow-datasets/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorrt/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/termgraph/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tern/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tesla-fleet-api/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tesla-powerwall/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/testcontainers/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/testfixtures/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/testrail-api/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/testrepository/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/textfsm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/textile/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/textual-dev/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/textual-universal-directorytree/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/textual/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/textx/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tf2onnx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/thelogrus/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/thinc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/threadpoolctl/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/threat9-test-bed/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tidalapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tifffile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tika/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tiledb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tilequant/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/timetagger/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/timezonefinder/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/tinygrad/default.nix111
-rw-r--r--nixpkgs/pkgs/development/python-modules/tinysegmenter/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/titlecase/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tld/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tldextract/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tokenize-rt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tololib/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/toml-adapt/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/tomlkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/toolz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/torch/bin.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/torch/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/torchmetrics/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/torchsde/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/torrent-parser/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/towncrier/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tox/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/tplink-omada-client/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/tpm2-pytss/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/tqdm/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/trafilatura/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/traitlets/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/transformers/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/translatepy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tree-sitter/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/trezor/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/trio-asyncio/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/trio/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/troposphere/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/trove-classifiers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tsfresh/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tskit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ttls/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ttn-client/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/ttp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tubeup/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/turnt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix44
-rw-r--r--nixpkgs/pkgs/development/python-modules/twilio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twill/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twine/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/twisted/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/type-infer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/typed-settings/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-colorama/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-dateutil/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-decorator/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-deprecated/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-docutils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-markdown/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-mock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-pillow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-protobuf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-psutil/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-psycopg2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-pyopenssl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-redis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-requests/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/types-setuptools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/typeshed-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tzdata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uamqp/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/uarray/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/uc-micro-py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/udatetime/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ueberzug/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ufmt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ufo2ft/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/ufolint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ufonormalizer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/uharfbuzz/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/ujson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/undefined/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/unearth/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/unidecode/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/unidiff/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/unify/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/universal-pathlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/universal-silabs-flasher/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/unrpa/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/unstructured-api-tools/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/unstructured-inference/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/unstructured/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/upass/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/update-copyright/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/update-dotdee/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/uplc/default.nix55
-rw-r--r--nixpkgs/pkgs/development/python-modules/urlextract/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/urlgrabber/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/urllib3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/us/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/userpath/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/usort/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/uvcclient/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/uvicorn/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/vallox-websocket-api/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vcrpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vector/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/versioneer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/versioningit/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/vharfbuzz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vine/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/virtualenv-clone/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/virtualenv/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/virtualenvwrapper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vispy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vmprof/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/voluptuous/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vpk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/vsure/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/vtjp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/vulture/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/vxi11/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/w1thermsensor/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/wagtail/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/waitress-django/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/waitress/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/wallet-py3k/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/wallet-py3k/openssl-path.patch13
-rw-r--r--nixpkgs/pkgs/development/python-modules/wandb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/warcio/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ward/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/watchdog/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/watchfiles/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/watchgod/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/waterfurnace/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/wavedrom/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/weasel/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/weasyprint/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/weaviate-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/webassets/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/webdataset/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/webdav4/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/webdavclient3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/websocket-client/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/websockify/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/webssh/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/weconnect-mqtt/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/werkzeug/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/west/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/wheel-filename/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/wheel-inspect/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/wheel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/wheezy-template/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/whenever/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/whispers/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/whitenoise/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/whoisdomain/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/whoosh/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/wifi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/wikipedia-api/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/wikipedia2vec/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/withings-sync/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/woob/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/woodblock/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/wordcloud/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/wsgidav/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/wtforms/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wunsen/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/x-wr-timezone/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/xapian/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/xapp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xarray/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/xattr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/xdot/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/xhtml2pdf/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/xiaomi-ble/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/xlrd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/xlsxwriter/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/xmljson/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/xmod/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/xsdata/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/xstatic-asciinema-player/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/xstatic-bootbox/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/xstatic-bootstrap/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/xstatic-font-awesome/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/xstatic-jquery-file-upload/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/xstatic-jquery-ui/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/xstatic-jquery/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/xstatic-pygments/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/xstatic/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/yalexs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yamale/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/yamllint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/yangson/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/yappi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/yark/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/yasi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/yaswfp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ydiff/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/yfinance/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/yolink-api/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/youseedee/0001-use-packaged-unicode-data.patch27
-rw-r--r--nixpkgs/pkgs/development/python-modules/youseedee/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/youtokentome/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/youtube-transcript-api/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/yowsup/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/yte/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/z3c-checkversions/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/zarr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zc-lockfile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zcbor/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/zdaemon/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/zerorpc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/zipstream-ng/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/zlib-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope-configuration/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope-proxy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope-testrunner/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/zxcvbn/default.nix1
-rw-r--r--nixpkgs/pkgs/development/r-modules/default.nix44
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/5/clang-ocl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/5/composable_kernel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/5/hipfort/default.nix1
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/5/rocm-smi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/clang-ocl/default.nix42
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/clr/default.nix189
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/clr/test-opencl-example.nix75
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/clr/test-rocm-smi.nix23
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/composable_kernel/default.nix94
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/default.nix524
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/half/default.nix39
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/hip-common/default.nix44
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/hipblas/default.nix99
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/hipcc/default.nix46
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/hipcub/default.nix90
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/hipfft/default.nix110
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/hipfort/default.nix66
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/hipify/default.nix47
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/hipsolver/default.nix100
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/hipsparse/default.nix136
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/default.nix48
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/update.nix57
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/base.nix175
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/default.nix58
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/clang-unwrapped.nix47
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/lld.nix14
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/llvm.nix10
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/runtimes.nix31
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/1000-libcxx-failing-tests.list171
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/bintools-unwrapped.nix28
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/compiler-rt.nix63
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libc.nix26
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libcxx.nix42
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libcxxabi.nix37
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libunwind.nix26
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/rstdenv.nix36
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/0000-mlir-fix-debugtranslation.patch36
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/1000-openmp-failing-tests.list122
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/1001-mlir-failing-tests.list11
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/clang-tools-extra.nix42
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/clang.nix73
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/flang.nix31
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/libclc.nix36
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/lldb.nix39
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/mlir.nix57
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/openmp.nix54
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/polly.nix18
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/pstl.nix15
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/migraphx/default.nix171
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/miopen/default.nix234
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/mivisionx/default.nix142
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rccl/default.nix91
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rdc/default.nix125
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocalution/default.nix115
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocblas/default.nix209
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocdbgapi/default.nix111
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocfft/default.nix169
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocgdb/default.nix59
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocm-cmake/default.nix35
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocm-comgr/default.nix55
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocm-core/default.nix38
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocm-device-libs/cmake.patch43
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocm-device-libs/default.nix50
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocm-docs-core/default.nix66
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocm-runtime/default.nix74
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocm-smi/cmake.patch89
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocm-smi/default.nix54
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocm-thunk/default.nix54
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocminfo/default.nix63
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocmlir/default.nix136
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocprim/default.nix86
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/0000-dont-install-tests-hsaco.patch15
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/0001-fix-shell-scripts.patch109
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/0002-include-stdint-in-version.patch12
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/default.nix140
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocr-debug-agent/default.nix59
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocrand/default.nix88
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocsolver/default.nix100
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocsparse/default.nix149
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocsparse/deps.nix222
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocthrust/default.nix87
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/roctracer/default.nix103
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocwmma/0000-dont-fetch-googletest.patch35
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rocwmma/default.nix105
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/rpp/default.nix88
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/tensile/default.nix65
-rw-r--r--nixpkgs/pkgs/development/rocm-modules/6/update.nix33
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/rbenv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/skaware-packages/sdnotify-wrapper/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/aapt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/air/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/algolia-cli/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/allure/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/altair-graphql-client/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ameba/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ammonite/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/amqpcat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/bingrep/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/cccc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/checkov/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/coan/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/codeql/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/coz/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/cpplint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/dotenv-linter/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/egypt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/evmdis/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/flow/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilegen/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilesim/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/hotspot/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/jacoco/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/jdepend/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/massif-visualizer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/rizin/0001-fix-compilation-with-clang.patch30
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix14
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/rizin/default.nix19
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/rizin/jsdec.nix33
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/rizin/rz-ghidra.nix21
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/rizin/sigdb.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/rr/zen_workaround.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/snyk/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/splint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/stylelint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/svlint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/swarm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-aws.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/tflint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/uefi-firmware-parser/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/yallback/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/apkid/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/apko/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/apksigcopier/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/apksigner/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/apktool/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/argc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ashpd-demo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/asmfmt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/async/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/avro-tools/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/backblaze-b2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/bacon/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/bashate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/bazelisk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/bbin/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/bearer/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/benthos/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/bin2c/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/bingo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/biome/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/bloaty/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/bodyclose/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/bpf-linker/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/buf/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/alire/default.nix20
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bam/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch41
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix662
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/no-arc.patch34
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/src-deps.json1585
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/upb-clang16.patch57
-rwxr-xr-xnixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/update-srcDeps.py54
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bear/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bob/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/boot/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/buck/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/buck2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/buck2/hashes.json10
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/build2/bdep.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/build2/bpkg.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/conan/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/dub/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/gn/generic.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/kati/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/knit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/mage/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/mill/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/moon/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/msbuild/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/rebar/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/remake/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/sbt/scala-native.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/scala-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/scala-cli/sources.json10
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/shards/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/xmake/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/buildah/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/buildkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/buildpack/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/bundletool/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/butane/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/cambalache/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/capnproto-java/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/castxml/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/cbfmt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/cdecrypt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/changie/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/check-jsonschema/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/checkmake/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/checkmate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/chit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/circup/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/clickable/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/clj-kondo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/clog-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/cloud-nuke/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/cloudsmith-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/cobra-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/cocoapods/Gemfile-beta.lock13
-rw-r--r--nixpkgs/pkgs/development/tools/cocoapods/Gemfile.lock13
-rw-r--r--nixpkgs/pkgs/development/tools/cocoapods/gemset-beta.nix28
-rw-r--r--nixpkgs/pkgs/development/tools/cocoapods/gemset.nix28
-rw-r--r--nixpkgs/pkgs/development/tools/cocogitto/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/code-maat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/codeowners/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/coder/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/codespell/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/comby/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/conftest/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/container2wasm/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/buildbot/default.nix41
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/buildbot/master.nix207
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/buildkite-test-collector-rust/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/woodpecker/common.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/cotton/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/coursier/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/cppclean/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/crd2pulumi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/csvq/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/cucumber/Gemfile.lock43
-rw-r--r--nixpkgs/pkgs/development/tools/cue/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/cuelsp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/dapper/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/darklua/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/database/apgdiff/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/atlas/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/database/clickhouse-backup/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/dblab/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/database/dbmate/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/database/dynein/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/liquibase/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/litecli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/litestream/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/mermerd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/movine/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/pg_activity/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/pgweb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/database/replibyte/Cargo.lock4205
-rw-r--r--nixpkgs/pkgs/development/tools/database/replibyte/default.nix26
-rw-r--r--nixpkgs/pkgs/development/tools/database/schemaspy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/shmig/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/sqlboiler-crdb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/sqlc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/sqlcheck/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/sqlcmd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/sqlfluff/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/database/sqlite-web/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/squirrel-sql/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/trino-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/database/webdis/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/datree/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/dbus-test-runner/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/dcadec/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ddosify/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/dec-decode/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/dep2nix/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/detekt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/devbox/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/devd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/devpi-client/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/devpi-server/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/devpod/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/diesel-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/distgen/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/dive/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/djlint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/doc2go/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/dockfmt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/dockle/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/doctl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/antora/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix14
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/drm_info/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/dstp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/dtools/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/dum/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/dump_syms/default.nix14
-rw-r--r--nixpkgs/pkgs/development/tools/dyff/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/earthly/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/easyjson/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ec2-metadata-mock/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/eclint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/eclipse-mat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/efm-langserver/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/ejson/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/electron/binary/default.nix163
-rw-r--r--nixpkgs/pkgs/development/tools/electron/binary/generic.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/electron/common.nix54
-rw-r--r--nixpkgs/pkgs/development/tools/electron/disable-screen-ai.patch16
-rw-r--r--nixpkgs/pkgs/development/tools/electron/info.json425
-rw-r--r--nixpkgs/pkgs/development/tools/electron/version.patch42
-rw-r--r--nixpkgs/pkgs/development/tools/eliot-tree/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/enochecker-test/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/errcheck/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/esbuild/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/evans/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/exhaustive/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/explain/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/extism-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/faas-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/fable/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/faq/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/fastddsgen/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/fastgron/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/fatcat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/fblog/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/firebase-tools/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/flatpak-builder/default.nix54
-rw-r--r--nixpkgs/pkgs/development/tools/flatpak-builder/fix-paths.patch34
-rw-r--r--nixpkgs/pkgs/development/tools/flatpak-builder/fix-test-prefix.patch29
-rw-r--r--nixpkgs/pkgs/development/tools/flawfinder/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/flip-link/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/flootty/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/fnm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/fprettify/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/fq/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/frece/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/frugal/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/fsautocomplete/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/fundoc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/fusee-launcher/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/fusee-nano/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/fx/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/galen/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gauge/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/gci/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/gcov2lcov/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gdlv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gen-license/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gendef/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/ginkgo/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/git-ps-rs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/github-commenter/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/github/bump/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/github/cligh/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/github/github-release/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/glock/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/glpaper/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/go-bindata-assetfs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/go-bindata/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/go-callvis/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/go-containerregistry/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/go-junit-report/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/go-motion/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/go-outline/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/go-swag/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/go-symbols/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/go-task/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/go-toml/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/goa/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/gocode-gomod/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/goconst/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/goconvey/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/gocover-cobertura/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gocyclo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/godef/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gogetdoc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/goimports-reviser/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gojsontoyaml/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gokart/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/golangci-lint/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/golint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gomacro/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/gomodifytags/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gomplate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/google-clasp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gopkgs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gops/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gore/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/goresym/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gosec/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gotags/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gotemplate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gotest/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gotests/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gotestsum/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gotraceui/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/govers/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gox/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gpp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gptcommit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gqlgenc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/grabserial/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/graphql-client/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/gron/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/guile/g-wrap/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/guile/guile-hall/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/halfempty/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/hadrian/hadrian-9.8.1-allow-Cabal-3.10.patch13
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/hadrian/hadrian.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix53
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/hyper-haskell/server.nix29
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/mueval/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/hatch/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/hcloud/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/headache/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/heroku/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/hors/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/hostess/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/hred/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/htmltest/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/icr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/iferr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ijq/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ilspycmd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/img/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/impl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ineffassign/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/infisical/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/infisical/hashes.json8
-rw-r--r--nixpkgs/pkgs/development/tools/initool/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/irony-server/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/java/cfr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/java/java-language-server/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/java/jextract/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/java/sawjap/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/java/visualvm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/jbang/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/jf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/jfmt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/jid/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/jless/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/jp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/jpexs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/jqp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/jsduck/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/json2hcl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/jtc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/k6/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/kaf/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/kafka-delta-ingest/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/kafkactl/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/karate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/kcat/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/kdash/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/kgt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/genkfs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/kcc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/kimg/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/kpack/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/mktiupgrade/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/patchrom/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ko/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/konf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/konstraint/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/krankerl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/krew/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/kube-prompt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/kubeprompt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/kubie/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/kustomize/4.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/kustomize/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/ansible-language-server/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/beancount-language-server/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/buf-language-server/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/ccls/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/crystalline/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/csharp-ls/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/dot-language-server/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/fortls/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/fortran-language-server/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/glslls/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/gopls/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/jsonnet-language-server/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/lua-language-server/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/metals/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/neocmakelsp/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/openscad-lsp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/rnix-lsp/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/svls/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/typst-lsp/Cargo.lock1225
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/typst-lsp/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/vala-language-server/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/language-servers/zls/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/lazygit/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/leaps/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/legitify/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/librarian-puppet-go/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/license-scanner/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/literate-programming/eweb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/literate-programming/funnelweb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/literate-programming/md-tangle/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/literate-programming/nuweb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ls-lint/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/lurk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/makerpm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/maligned/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/mani/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/manifest-tool/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/mars-mips/default.nix63
-rw-r--r--nixpkgs/pkgs/development/tools/mask/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/melange/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/micronaut/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/minizinc/ide.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/misc/abi-compliance-checker/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/abi-dumper/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/act/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/astyle/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/misc/autogen/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/misc/automaticcomponenttoolkit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/aviator/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/bashdb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/blackfire/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/misc/bonnmotion/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/c2ffi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cbrowser/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cflow/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cgdb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/checkbashisms/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/chrpath/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/complgen/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cppi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cproto/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/creduce/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ctags/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cvise/default.nix13
-rw-r--r--nixpkgs/pkgs/development/tools/misc/d-feet/default.nix90
-rw-r--r--nixpkgs/pkgs/development/tools/misc/d-spy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/dart-sass/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/dart-sass/pubspec.lock.json62
-rw-r--r--nixpkgs/pkgs/development/tools/misc/dbench/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ddd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/deheader/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/dfu-programmer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/direvent/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/dura/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/dwz/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/edb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ezno/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/findnewest/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/fsatrace/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/fswatch/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/fzf-make/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gede/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gef/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gengetopt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/go-licenses/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/go-md2man/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gob2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gopatch/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gperf/3.0.x.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gpuvis/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/grcov/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/grpc-client-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gtkdialog/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gtkperf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/help2man/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/highlight-assertions/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/httpref/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/husky/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/hydra/unstable.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/indent/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/itstool/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/jcli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/jiq/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/k2tf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/kdbg/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/kool/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/libtree/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/libwhich/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/licenseclassifier/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/linuxkit/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/misc/loccount/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/lsof/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ltrace/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/lttng-tools/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/lttng-ust/generic.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/luarocks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/micronucleus/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/mkcert/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/namaka/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ninka/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/nix-build-uncached/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/nixbang/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/objconv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/opengrok/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/pahole/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/patchelf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/patsh/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/perfect-hash/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/planus/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/polylith/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/premake/3.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/premake/5.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/protox/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ptags/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/pwninit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/qtspim/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/regex-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/replacement/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/misc/riff/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/rolespec/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/rsass/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/rtss/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/runme/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/rustywind/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/misc/samply/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/sccache/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/scip/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/scriptisto/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/seer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/sipp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/slint-lsp/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/misc/spruce/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/sqitch/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/strace-analyzer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/strace/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/swig/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/sysbench/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/tcptrack/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/terracognita/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/misc/terraform-lsp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/terraformer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/terser/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/misc/texi2html/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/texlab/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/misc/tie/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/tockloader/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/topiary/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/misc/travis/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ttags/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/typical/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/tyson/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/uncrustify/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/usbsdmux/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/misc/vtable-dumper/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/wasmer-pack/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/whatstyle/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/wishbone-tool/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/xxdiff/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/xxgdb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ycmd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/mix2nix/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/mod/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/modd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/mold/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/mongosh/package-lock.json2122
-rw-r--r--nixpkgs/pkgs/development/tools/mongosh/source.json8
-rw-r--r--nixpkgs/pkgs/development/tools/moq/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/mpfshell/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/mutmut/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/nap/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/napi-rs-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/nasmfmt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/neil/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/nemiver/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/nodenv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/norminette/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/npm-check/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/camlidl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/cppo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/crunch/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/dune-release/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/dune/2.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/dune/3.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/merlin/4.x.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/obelisk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/ocaml-top/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/opaline/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/opam-publish/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/opam/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/opam/installer.nix1
-rwxr-xr-xnixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl5
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/opam2json/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ofono-phonesim/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/oh-my-posh/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/okteto/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/ols/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/operator-sdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/oq/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/oras/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/oshka/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/osslsigncode/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/out-of-tree/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/oxlint/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/package-project-cmake/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/packcc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/packet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pactorio/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/paging-calculator/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pandoc/default.nix13
-rw-r--r--nixpkgs/pkgs/development/tools/parinfer-rust/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/parse-cli-bin/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/bisonc++/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/flex/2.5.35.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/flexc++/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/javacc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/jikespg/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/jshon/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/lemon/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/nex/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/ragel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/re-flex/default.nix20
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gleam.json12
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-koka.json12
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-talon.json12
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/patatt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/patcher9x/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pet/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/pew/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pgloader/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pgtop/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/picotool/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pifpaf/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pigeon/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pip-audit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pqrs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/profiling/pprof/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-connect-go/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-dart/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-doc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-entgrpc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-go-grpc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-go-vtproto/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-go/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-grpc-web/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-prost-crate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-prost-serde/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-prost/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-rust/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-tonic/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-twirp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-twirp_php/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-twirp_swagger/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-twirp_typescript/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/protolint/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/protoscope/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/prototool/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pscale/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pulumictl/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pup/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pur/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pxview/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/py-spy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/pypi-mirror/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/qc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/quick-lint-js/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/rain/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rakkess/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rars/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rbspy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rcodesign/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rdocker/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/react-native-debugger/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rebazel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/refinery-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/reflex/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/refmt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/refurb/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/reindeer/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/relic/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/remodel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/renderizer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/reno/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rep/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/reshape/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/resolve-march-native/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/revive/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/richgo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/riot-redis/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rojo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ronn/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rover/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rq/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ruff/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/run/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rund/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust-code-analysis/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-apk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-audit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-bazel/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-benchcmp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-binstall/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-bitbake/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-bolero/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-bundle-licenses/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-bundle/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-careful/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-chef/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-clone/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-component/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-cranky/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-criterion/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-cyclonedx/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-deb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-depgraph/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-dephell/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-deps/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-diet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-dist/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-docset/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-duplicates/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-graph/default.nix22
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-guppy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-hack/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-hakari/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-hf2/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-info/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-insta/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-kcov/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-lambda/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-leptos/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-license/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-llvm-cov/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-llvm-lines/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-local-registry/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-lock/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-machete/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-mobile2/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-modules/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-mommy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-msrv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-mutants/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-ndk/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-nextest/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-outdated/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-pgrx/default.nix90
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_6_1.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_7_1.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_7_4.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-play/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-profiler/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-public-api/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-readme/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-release/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-risczero/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-rr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-run-bin/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-semver-checks/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-shuttle/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-sort/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-spellcheck/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-supply-chain/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-tally/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-tauri/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-temp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-toml-lint/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-ui/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-vet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-wasi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-web/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-whatfeatures/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-wipe/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-zigbuild/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo2junit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cauwugo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/critcmp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/genemichaels/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/gitlab-clippy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/humility/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/leptosfmt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/maturin/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/ograc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/panamax/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/probe-run/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/ra-multiplex/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rhack/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/roogle/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rust-audit-info/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rust-script/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rustup-toolchain-install-master/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rusty-man/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rustycli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/specr-transpile/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/typeshare/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rye/Cargo.lock9
-rw-r--r--nixpkgs/pkgs/development/tools/rye/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/sca2d/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/scalafix/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/scenebuilder/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/scenic-view/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/schemacrawler/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/sd-local/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/selene/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/semantic-release/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/sentry-cli/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/shellharden/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/sigrok-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/simavr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/skaffold/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/skopeo/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/slimerjs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/smlfmt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/snazy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/so/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/solarus-quest-editor/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/spr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/sq/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/sqsh/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/sshs/Cargo.lock (renamed from nixpkgs/pkgs/by-name/rw/rwpspread/Cargo.lock)949
-rw-r--r--nixpkgs/pkgs/development/tools/sshs/Cargo.toml31
-rw-r--r--nixpkgs/pkgs/development/tools/sshs/default.nix26
-rw-r--r--nixpkgs/pkgs/development/tools/sslmate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/statik/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/steamos-devkit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/subxt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/summon/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/swc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/swiftpm2nix/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/systemfd/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/tapview/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/tarmac/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/teller/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/templ/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/textql/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/tf2pulumi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/the-way/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/thrust/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/time-ghc-modules/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/toast/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/toml2json/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/toml2nix/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/tora/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/toxiproxy/default.nix32
-rw-r--r--nixpkgs/pkgs/development/tools/tradcpp/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/trunk/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/ttfb/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/turso-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/twiggy/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/twilio-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/twitch-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/txtpbfmt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/typos/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/uftrace/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/unconvert/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch20
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/default.nix14
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/gemset.nix142
-rw-r--r--nixpkgs/pkgs/development/tools/vendir/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/viceroy/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/vndr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/vultr-cli/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/vultr/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/wails/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/wally-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/wambo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/wasm-pack/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/wasmserve/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/wgo/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/wiggle/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/wiiload/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/winhelpcgi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/wire/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/wizer/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/worker-build/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/wp4nix/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/wrangler_1/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/xc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/xqilla/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/yaml2json/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/yarn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ytt/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/yuicompressor/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/zprint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/zsv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/web/boa/default.nix1
-rw-r--r--nixpkgs/pkgs/development/web/bun/default.nix10
-rw-r--r--nixpkgs/pkgs/development/web/deno/default.nix12
-rw-r--r--nixpkgs/pkgs/development/web/deno/librusty_v8.nix10
-rw-r--r--nixpkgs/pkgs/development/web/edge-runtime/default.nix1
-rw-r--r--nixpkgs/pkgs/development/web/flyctl/default.nix6
-rw-r--r--nixpkgs/pkgs/development/web/function-runner/default.nix1
-rw-r--r--nixpkgs/pkgs/development/web/grails/default.nix1
-rw-r--r--nixpkgs/pkgs/development/web/ihp-new/default.nix1
-rw-r--r--nixpkgs/pkgs/development/web/insomnia/default.nix1
-rw-r--r--nixpkgs/pkgs/development/web/kore/default.nix12
-rw-r--r--nixpkgs/pkgs/development/web/newman/default.nix1
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v18.nix1
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v21.nix4
-rw-r--r--nixpkgs/pkgs/development/web/playwright/driver.nix1
-rw-r--r--nixpkgs/pkgs/development/web/pnpm-lock-export/default.nix1
-rw-r--r--nixpkgs/pkgs/development/web/publii/default.nix5
-rw-r--r--nixpkgs/pkgs/development/web/shopify-themekit/default.nix7
-rw-r--r--nixpkgs/pkgs/development/web/xmlindent/default.nix1
-rw-r--r--nixpkgs/pkgs/games/2048-in-terminal/default.nix1
-rw-r--r--nixpkgs/pkgs/games/20kly/default.nix1
-rw-r--r--nixpkgs/pkgs/games/90secondportraits/default.nix3
-rw-r--r--nixpkgs/pkgs/games/BeatSaberModManager/default.nix1
-rw-r--r--nixpkgs/pkgs/games/abbaye-des-morts/default.nix1
-rw-r--r--nixpkgs/pkgs/games/airshipper/default.nix1
-rw-r--r--nixpkgs/pkgs/games/airstrike/default.nix1
-rw-r--r--nixpkgs/pkgs/games/among-sus/default.nix1
-rw-r--r--nixpkgs/pkgs/games/angband/default.nix1
-rw-r--r--nixpkgs/pkgs/games/animatch/default.nix1
-rw-r--r--nixpkgs/pkgs/games/anki/default.nix1
-rw-r--r--nixpkgs/pkgs/games/antsimulator/default.nix3
-rw-r--r--nixpkgs/pkgs/games/armagetronad/default.nix1
-rw-r--r--nixpkgs/pkgs/games/atanks/default.nix1
-rw-r--r--nixpkgs/pkgs/games/augustus/default.nix1
-rw-r--r--nixpkgs/pkgs/games/azimuth/default.nix1
-rw-r--r--nixpkgs/pkgs/games/ballerburg/default.nix1
-rw-r--r--nixpkgs/pkgs/games/banner/default.nix5
-rw-r--r--nixpkgs/pkgs/games/bastet/default.nix1
-rw-r--r--nixpkgs/pkgs/games/black-hole-solver/default.nix1
-rw-r--r--nixpkgs/pkgs/games/blightmud/default.nix1
-rw-r--r--nixpkgs/pkgs/games/blobwars/default.nix1
-rw-r--r--nixpkgs/pkgs/games/blockattack/default.nix1
-rw-r--r--nixpkgs/pkgs/games/boohu/default.nix1
-rw-r--r--nixpkgs/pkgs/games/braincurses/default.nix1
-rw-r--r--nixpkgs/pkgs/games/brogue-ce/default.nix3
-rw-r--r--nixpkgs/pkgs/games/brogue/default.nix3
-rw-r--r--nixpkgs/pkgs/games/brutalmaze/default.nix1
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/common.nix1
-rw-r--r--nixpkgs/pkgs/games/cbonsai/default.nix1
-rw-r--r--nixpkgs/pkgs/games/cgoban/default.nix1
-rw-r--r--nixpkgs/pkgs/games/chiaki4deck/default.nix40
-rw-r--r--nixpkgs/pkgs/games/chromium-bsu/default.nix1
-rw-r--r--nixpkgs/pkgs/games/ckan/default.nix1
-rw-r--r--nixpkgs/pkgs/games/construo/default.nix1
-rw-r--r--nixpkgs/pkgs/games/corsix-th/default.nix1
-rw-r--r--nixpkgs/pkgs/games/crack-attack/default.nix1
-rw-r--r--nixpkgs/pkgs/games/crossfire/crossfire-client.nix1
-rw-r--r--nixpkgs/pkgs/games/crrcsim/default.nix1
-rw-r--r--nixpkgs/pkgs/games/cutemaze/default.nix1
-rw-r--r--nixpkgs/pkgs/games/cuyo/default.nix1
-rw-r--r--nixpkgs/pkgs/games/ddnet/default.nix6
-rw-r--r--nixpkgs/pkgs/games/devilutionx/default.nix1
-rw-r--r--nixpkgs/pkgs/games/doom-ports/dhewm3/default.nix1
-rw-r--r--nixpkgs/pkgs/games/doom-ports/doomretro/default.nix5
-rw-r--r--nixpkgs/pkgs/games/doom-ports/doomrunner/default.nix1
-rw-r--r--nixpkgs/pkgs/games/doom-ports/doomseeker/default.nix1
-rw-r--r--nixpkgs/pkgs/games/doom-ports/enyo-launcher/default.nix1
-rw-r--r--nixpkgs/pkgs/games/doom-ports/eternity-engine/default.nix1
-rw-r--r--nixpkgs/pkgs/games/doom-ports/eureka-editor/default.nix1
-rw-r--r--nixpkgs/pkgs/games/doom-ports/gzdoom/default.nix1
-rw-r--r--nixpkgs/pkgs/games/doom-ports/rbdoom-3-bfg/default.nix1
-rw-r--r--nixpkgs/pkgs/games/doom-ports/zandronum/default.nix1
-rw-r--r--nixpkgs/pkgs/games/doom-ports/zdoom/bcc-git.nix1
-rw-r--r--nixpkgs/pkgs/games/doom-ports/zdoom/zdbsp.nix1
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix1
-rw-r--r--nixpkgs/pkgs/games/ecwolf/default.nix1
-rw-r--r--nixpkgs/pkgs/games/eduke32/default.nix108
-rw-r--r--nixpkgs/pkgs/games/eidolon/default.nix1
-rw-r--r--nixpkgs/pkgs/games/empty-epsilon/default.nix1
-rw-r--r--nixpkgs/pkgs/games/endless-sky/default.nix1
-rw-r--r--nixpkgs/pkgs/games/enigma/default.nix1
-rw-r--r--nixpkgs/pkgs/games/ezquake/default.nix1
-rw-r--r--nixpkgs/pkgs/games/fairymax/default.nix1
-rw-r--r--nixpkgs/pkgs/games/ferium/default.nix1
-rw-r--r--nixpkgs/pkgs/games/fheroes2/default.nix1
-rw-r--r--nixpkgs/pkgs/games/fish-fillets-ng/default.nix1
-rw-r--r--nixpkgs/pkgs/games/flare/default.nix1
-rw-r--r--nixpkgs/pkgs/games/freedroid/default.nix1
-rw-r--r--nixpkgs/pkgs/games/freedroidrpg/default.nix1
-rw-r--r--nixpkgs/pkgs/games/freeorion/default.nix6
-rw-r--r--nixpkgs/pkgs/games/freesweep/default.nix1
-rw-r--r--nixpkgs/pkgs/games/frotz/default.nix1
-rw-r--r--nixpkgs/pkgs/games/fsg/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gambit/default.nix1
-rw-r--r--nixpkgs/pkgs/games/garden-of-coloured-lights/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gargoyle/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gav/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gl-117/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gl-gsync-demo/default.nix1
-rw-r--r--nixpkgs/pkgs/games/globulation/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gltron/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gnome-hexgl/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gnonograms/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gnugo/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gnujump/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gnushogi/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gogdl/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gotypist/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gshogi/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gtetrinet/default.nix1
-rw-r--r--nixpkgs/pkgs/games/gweled/default.nix1
-rw-r--r--nixpkgs/pkgs/games/harmonist/default.nix1
-rw-r--r--nixpkgs/pkgs/games/hase/default.nix1
-rw-r--r--nixpkgs/pkgs/games/heroic/default.nix6
-rw-r--r--nixpkgs/pkgs/games/hex-a-hop/default.nix1
-rw-r--r--nixpkgs/pkgs/games/hexgui/default.nix1
-rw-r--r--nixpkgs/pkgs/games/hmcl/default.nix1
-rw-r--r--nixpkgs/pkgs/games/hyperrogue/default.nix1
-rw-r--r--nixpkgs/pkgs/games/icbm3d/default.nix1
-rw-r--r--nixpkgs/pkgs/games/infra-arcana/default.nix1
-rw-r--r--nixpkgs/pkgs/games/instawow/default.nix1
-rw-r--r--nixpkgs/pkgs/games/jfsw/default.nix4
-rw-r--r--nixpkgs/pkgs/games/julius/default.nix3
-rw-r--r--nixpkgs/pkgs/games/jumpy/default.nix1
-rw-r--r--nixpkgs/pkgs/games/kabeljau/default.nix1
-rw-r--r--nixpkgs/pkgs/games/katago/default.nix1
-rw-r--r--nixpkgs/pkgs/games/keeperrl/default.nix1
-rw-r--r--nixpkgs/pkgs/games/klavaro/default.nix1
-rw-r--r--nixpkgs/pkgs/games/kobodeluxe/default.nix1
-rw-r--r--nixpkgs/pkgs/games/koboredux/default.nix1
-rw-r--r--nixpkgs/pkgs/games/koules/default.nix1
-rw-r--r--nixpkgs/pkgs/games/lgames/lbreakout2/default.nix48
-rw-r--r--nixpkgs/pkgs/games/lgogdownloader/default.nix1
-rw-r--r--nixpkgs/pkgs/games/liberation-circuit/default.nix1
-rw-r--r--nixpkgs/pkgs/games/libremines/default.nix1
-rw-r--r--nixpkgs/pkgs/games/lincity/default.nix1
-rw-r--r--nixpkgs/pkgs/games/lincity/ng.nix1
-rw-r--r--nixpkgs/pkgs/games/linthesia/default.nix1
-rw-r--r--nixpkgs/pkgs/games/lugaru/default.nix1
-rw-r--r--nixpkgs/pkgs/games/lzwolf/default.nix1
-rw-r--r--nixpkgs/pkgs/games/macopix/default.nix1
-rw-r--r--nixpkgs/pkgs/games/maelstrom/default.nix1
-rw-r--r--nixpkgs/pkgs/games/maptool/default.nix3
-rw-r--r--nixpkgs/pkgs/games/mar1d/default.nix3
-rw-r--r--nixpkgs/pkgs/games/marble-marcher-ce/default.nix1
-rw-r--r--nixpkgs/pkgs/games/mari0/default.nix1
-rw-r--r--nixpkgs/pkgs/games/methane/default.nix1
-rw-r--r--nixpkgs/pkgs/games/mindustry/default.nix3
-rw-r--r--nixpkgs/pkgs/games/mnemosyne/default.nix1
-rw-r--r--nixpkgs/pkgs/games/moon-buggy/default.nix1
-rw-r--r--nixpkgs/pkgs/games/mrrescue/default.nix1
-rw-r--r--nixpkgs/pkgs/games/n2048/default.nix1
-rw-r--r--nixpkgs/pkgs/games/naev/default.nix5
-rw-r--r--nixpkgs/pkgs/games/nethack/default.nix4
-rw-r--r--nixpkgs/pkgs/games/netris/default.nix1
-rw-r--r--nixpkgs/pkgs/games/newtonwars/default.nix1
-rw-r--r--nixpkgs/pkgs/games/nile/default.nix7
-rw-r--r--nixpkgs/pkgs/games/ninvaders/default.nix1
-rw-r--r--nixpkgs/pkgs/games/njam/default.nix1
-rw-r--r--nixpkgs/pkgs/games/npush/default.nix1
-rw-r--r--nixpkgs/pkgs/games/nsnake/default.nix1
-rw-r--r--nixpkgs/pkgs/games/nudoku/default.nix1
-rw-r--r--nixpkgs/pkgs/games/oh-my-git/default.nix1
-rw-r--r--nixpkgs/pkgs/games/onscripter-en/default.nix1
-rw-r--r--nixpkgs/pkgs/games/opendune/default.nix1
-rw-r--r--nixpkgs/pkgs/games/opendungeons/default.nix1
-rw-r--r--nixpkgs/pkgs/games/openjk/default.nix6
-rw-r--r--nixpkgs/pkgs/games/openspades/default.nix1
-rw-r--r--nixpkgs/pkgs/games/openttd/default.nix1
-rw-r--r--nixpkgs/pkgs/games/openttd/nml.nix1
-rw-r--r--nixpkgs/pkgs/games/opentyrian/default.nix1
-rw-r--r--nixpkgs/pkgs/games/openxcom/default.nix1
-rw-r--r--nixpkgs/pkgs/games/orthorobot/default.nix1
-rw-r--r--nixpkgs/pkgs/games/osu-lazer/bin.nix8
-rw-r--r--nixpkgs/pkgs/games/osu-lazer/default.nix4
-rw-r--r--nixpkgs/pkgs/games/osu-lazer/deps.nix20
-rw-r--r--nixpkgs/pkgs/games/pacvim/default.nix1
-rw-r--r--nixpkgs/pkgs/games/papermc/default.nix63
-rw-r--r--nixpkgs/pkgs/games/papermc/derivation.nix50
-rwxr-xr-xnixpkgs/pkgs/games/papermc/update.py145
-rw-r--r--nixpkgs/pkgs/games/papermc/versions.json50
-rw-r--r--nixpkgs/pkgs/games/pegasus-frontend/default.nix1
-rw-r--r--nixpkgs/pkgs/games/performous/default.nix1
-rw-r--r--nixpkgs/pkgs/games/pingus/default.nix1
-rw-r--r--nixpkgs/pkgs/games/pokerth/default.nix1
-rw-r--r--nixpkgs/pkgs/games/pokete/default.nix1
-rw-r--r--nixpkgs/pkgs/games/powermanga/default.nix1
-rw-r--r--nixpkgs/pkgs/games/principia/default.nix63
-rw-r--r--nixpkgs/pkgs/games/prismlauncher/default.nix4
-rw-r--r--nixpkgs/pkgs/games/pro-office-calculator/default.nix1
-rw-r--r--nixpkgs/pkgs/games/pysolfc/default.nix1
-rw-r--r--nixpkgs/pkgs/games/qgo/default.nix1
-rw-r--r--nixpkgs/pkgs/games/qqwing/default.nix1
-rw-r--r--nixpkgs/pkgs/games/qtads/default.nix1
-rw-r--r--nixpkgs/pkgs/games/quakespasm/vulkan.nix1
-rw-r--r--nixpkgs/pkgs/games/quantumminigolf/default.nix1
-rw-r--r--nixpkgs/pkgs/games/racer/default.nix1
-rw-r--r--nixpkgs/pkgs/games/randtype/default.nix1
-rw-r--r--nixpkgs/pkgs/games/riko4/default.nix1
-rw-r--r--nixpkgs/pkgs/games/rocksndiamonds/default.nix1
-rw-r--r--nixpkgs/pkgs/games/rogue/default.nix1
-rw-r--r--nixpkgs/pkgs/games/rott/default.nix1
-rw-r--r--nixpkgs/pkgs/games/rpg-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/games/rrootage/default.nix1
-rw-r--r--nixpkgs/pkgs/games/runelite/default.nix8
-rw-r--r--nixpkgs/pkgs/games/scummvm/default.nix1
-rw-r--r--nixpkgs/pkgs/games/sfrotz/default.nix1
-rw-r--r--nixpkgs/pkgs/games/shticker-book-unwritten/default.nix1
-rw-r--r--nixpkgs/pkgs/games/sienna/default.nix1
-rw-r--r--nixpkgs/pkgs/games/sil-q/default.nix1
-rw-r--r--nixpkgs/pkgs/games/simutrans/default.nix1
-rw-r--r--nixpkgs/pkgs/games/snipes/default.nix1
-rw-r--r--nixpkgs/pkgs/games/soi/default.nix1
-rw-r--r--nixpkgs/pkgs/games/solicurses/default.nix1
-rw-r--r--nixpkgs/pkgs/games/space-orbit/default.nix1
-rw-r--r--nixpkgs/pkgs/games/srb2kart/default.nix87
-rw-r--r--nixpkgs/pkgs/games/srb2kart/wadlocation.patch61
-rw-r--r--nixpkgs/pkgs/games/stardust/default.nix1
-rw-r--r--nixpkgs/pkgs/games/steam/fhsenv.nix2
-rw-r--r--nixpkgs/pkgs/games/stockfish/default.nix1
-rw-r--r--nixpkgs/pkgs/games/super-tux-kart/default.nix1
-rw-r--r--nixpkgs/pkgs/games/system-syzygy/default.nix1
-rw-r--r--nixpkgs/pkgs/games/taisei/default.nix1
-rw-r--r--nixpkgs/pkgs/games/tecnoballz/default.nix1
-rw-r--r--nixpkgs/pkgs/games/teeworlds/default.nix1
-rw-r--r--nixpkgs/pkgs/games/tennix/default.nix1
-rw-r--r--nixpkgs/pkgs/games/tes3cmd/default.nix1
-rw-r--r--nixpkgs/pkgs/games/the-butterfly-effect/default.nix1
-rw-r--r--nixpkgs/pkgs/games/theforceengine/default.nix1
-rw-r--r--nixpkgs/pkgs/games/tinyfugue/default.nix1
-rw-r--r--nixpkgs/pkgs/games/titanion/default.nix1
-rw-r--r--nixpkgs/pkgs/games/tome4/default.nix1
-rw-r--r--nixpkgs/pkgs/games/torus-trooper/default.nix1
-rw-r--r--nixpkgs/pkgs/games/tr-patcher/default.nix1
-rw-r--r--nixpkgs/pkgs/games/trackballs/default.nix1
-rw-r--r--nixpkgs/pkgs/games/trigger/default.nix1
-rw-r--r--nixpkgs/pkgs/games/tumiki-fighters/default.nix1
-rw-r--r--nixpkgs/pkgs/games/tuxtype/default.nix1
-rw-r--r--nixpkgs/pkgs/games/typespeed/default.nix1
-rw-r--r--nixpkgs/pkgs/games/uchess/default.nix1
-rw-r--r--nixpkgs/pkgs/games/ultrastardx/default.nix6
-rw-r--r--nixpkgs/pkgs/games/umoria/default.nix1
-rw-r--r--nixpkgs/pkgs/games/unnethack/default.nix1
-rw-r--r--nixpkgs/pkgs/games/uqm/default.nix1
-rw-r--r--nixpkgs/pkgs/games/vdrift/default.nix1
-rw-r--r--nixpkgs/pkgs/games/vectoroids/default.nix1
-rw-r--r--nixpkgs/pkgs/games/vms-empire/default.nix1
-rw-r--r--nixpkgs/pkgs/games/warzone2100/default.nix1
-rw-r--r--nixpkgs/pkgs/games/wesnoth/default.nix16
-rw-r--r--nixpkgs/pkgs/games/wireworld/default.nix1
-rw-r--r--nixpkgs/pkgs/games/wolfstoneextract/default.nix1
-rw-r--r--nixpkgs/pkgs/games/wyvern/default.nix1
-rw-r--r--nixpkgs/pkgs/games/xboard/default.nix1
-rw-r--r--nixpkgs/pkgs/games/xbomb/default.nix1
-rw-r--r--nixpkgs/pkgs/games/xgalaga++/default.nix1
-rw-r--r--nixpkgs/pkgs/games/xivlauncher/default.nix4
-rw-r--r--nixpkgs/pkgs/games/xjump/default.nix1
-rw-r--r--nixpkgs/pkgs/games/xmage/default.nix1
-rw-r--r--nixpkgs/pkgs/games/xmoto/default.nix1
-rw-r--r--nixpkgs/pkgs/games/xpilot/bloodspilot-client.nix1
-rw-r--r--nixpkgs/pkgs/games/xpilot/bloodspilot-server.nix1
-rw-r--r--nixpkgs/pkgs/games/xskat/default.nix1
-rw-r--r--nixpkgs/pkgs/games/xsnow/default.nix1
-rw-r--r--nixpkgs/pkgs/games/xsok/default.nix1
-rw-r--r--nixpkgs/pkgs/games/xsokoban/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/frameworks/kcmutils/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/frameworks/kdbusaddons/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/frameworks/kded/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/frameworks/kguiaddons/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/frameworks/kiconthemes/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/frameworks/knewstuff/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/frameworks/kpackage/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/frameworks/kservice/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/frameworks/solid/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/frameworks/sonnet/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/frameworks/syntax-highlighting/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/akonadi-calendar/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/akonadi-import-wizard/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/akonadi-search/default.nix2
-rw-r--r--nixpkgs/pkgs/kde/gear/akonadi/default.nix6
-rw-r--r--nixpkgs/pkgs/kde/gear/akonadiconsole/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/alligator/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/angelfish/default.nix2
-rw-r--r--nixpkgs/pkgs/kde/gear/arianna/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/ark/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/audiotube/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/baloo-widgets/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/blinken/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/bomber/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/bovo/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/colord-kde/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/default.nix12
-rw-r--r--nixpkgs/pkgs/kde/gear/dragon/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/elisa/default.nix5
-rw-r--r--nixpkgs/pkgs/kde/gear/falkon/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/filelight/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/ghostwriter/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/granatier/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/gwenview/default.nix3
-rw-r--r--nixpkgs/pkgs/kde/gear/isoimagewriter/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/itinerary/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/juk/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/k3b/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kaddressbook/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kalarm/default.nix7
-rw-r--r--nixpkgs/pkgs/kde/gear/kalk/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kalzium/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kanagram/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kapman/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kapptemplate/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kasts/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/katomic/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kbackup/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kblackbox/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kblocks/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kbounce/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kbreakout/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kbruch/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kcalc/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kcharselect/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kcolorchooser/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kde-inotify-survey/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kdebugsettings/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kdepim-addons/default.nix2
-rw-r--r--nixpkgs/pkgs/kde/gear/kdiamond/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/keysmith/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kfind/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kgeography/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kget/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kgoldrunner/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kgpg/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/khangman/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/khelpcenter/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kigo/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/killbots/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kimagemapeditor/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kiriki/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kjournald/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kjumpingcube/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/klettres/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/klickety/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/klines/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kmag/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kmahjongg/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kmail-account-wizard/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kmines/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kmousetool/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kmouth/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kmplot/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/knavalbattle/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/knetwalk/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/knights/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/koko/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kolf/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kollision/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kolourpaint/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kompare/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/konquest/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kontact/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kontrast/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/konversation/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/korganizer/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kpat/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/krdc/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/krecorder/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kreversi/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kruler/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kshisen/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/ksnakeduel/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kspaceduel/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/ksquares/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/ksudoku/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/ksystemlog/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kteatime/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/ktimer/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/ktrip/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/ktuberling/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kturtle/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kubrick/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kwalletmanager/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kweather/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/kwordquiz/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/lskat/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/mbox-importer/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/minuet/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/neochat/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/okular/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/palapeli/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/parley/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/partitionmanager/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/picmi/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/pim-sieve-editor/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/plasmatube/default.nix8
-rw-r--r--nixpkgs/pkgs/kde/gear/qmlkonsole/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/skanlite/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/skanpage/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/spectacle/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/step/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/sweeper/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/telly-skout/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/tokodon/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/gear/yakuake/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/generated/sources/gear.json1476
-rw-r--r--nixpkgs/pkgs/kde/generated/sources/plasma.json378
-rw-r--r--nixpkgs/pkgs/kde/lib/mk-kde-derivation.nix9
-rw-r--r--nixpkgs/pkgs/kde/misc/alpaka/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/misc/kunifiedpush/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/misc/phonon/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/breeze/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/kinfocenter/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/kmenuedit/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/kscreen/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/ksshaskpass/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/kwrited/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/libkscreen/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/plasma-activities/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/plasma-browser-integration/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/plasma-systemmonitor/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/plasma-welcome/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/plymouth-kcm/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/sddm-kcm/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/systemsettings/default.nix1
-rw-r--r--nixpkgs/pkgs/kde/plasma/wacomtablet/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/arm-trusted-firmware/default.nix21
-rw-r--r--nixpkgs/pkgs/misc/calaos/installer/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/cups/drivers/cups-drv-rastertosag-gdi/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/drivers/epsonscan2/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/drivers/foomatic-filters/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/drivers/m33-linux/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/drivers/moltengamepad/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/drivers/utsushi/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/drivers/xwiimote/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/fastly/default.nix6
-rw-r--r--nixpkgs/pkgs/misc/ghostscript/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/jitsi-meet-prosody/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/rivalcfg/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/scrcpy/default.nix6
-rw-r--r--nixpkgs/pkgs/misc/screensavers/alock/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/screensavers/i3lock-pixeled/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/screensavers/multilockscreen/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/screensavers/physlock/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/screensavers/pipes-rs/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/screensavers/slock/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/screensavers/xssproxy/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/stabber/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/uboot/0001-configs-rpi-allow-for-bigger-kernels.patch50
-rw-r--r--nixpkgs/pkgs/misc/uboot/default.nix28
-rw-r--r--nixpkgs/pkgs/misc/urbit/default.nix10
-rw-r--r--nixpkgs/pkgs/misc/vencord/default.nix8
-rw-r--r--nixpkgs/pkgs/misc/vencord/package-lock.json192
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/libtapi/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/maloader/default.nix40
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/moltenvk/MoltenVK.xcodeproj.patch100
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/moltenvk/MoltenVKShaderConverter.xcodeproj.patch84
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/moltenvk/default.nix232
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/opencflite/default.nix21
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/print-reexports/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/rewrite-tbd/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/sketchybar/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/yabai/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/915resolution/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/acpi-call/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/acpi/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/acpitool/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/adcli/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/amdctl/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/apfs/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/aseq2json/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/autofs/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/batman-adv/batctl.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/beefi/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bolt/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bpfmon/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bpftune/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bridge-utils/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cachefilesd/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cannelloni/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/catfs/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ch9344/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch26
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types_6_3.patch13
-rw-r--r--nixpkgs/pkgs/os-specific/linux/checksec/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/compsize/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/conky/default.nix26
-rw-r--r--nixpkgs/pkgs/os-specific/linux/conspy/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cpupower-gui/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cpustat/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cramfsswap/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cshatag/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/dcgm/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/devmem2/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/disk-indicator/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/dpdk-kmods/default.nix14
-rw-r--r--nixpkgs/pkgs/os-specific/linux/dpdk/default.nix28
-rw-r--r--nixpkgs/pkgs/os-specific/linux/dstat/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/earlyoom/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ell/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ethq/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/eventstat/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fan2go/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fanctl/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fbterm/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/b43-firmware-cutter/default.nix3
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/bt-fw-converter/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/firmware-updater/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/ivsc-firmware/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/linux-firmware/source.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fnotifystat/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/forkstat/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/freefall/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fscryptctl/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fsverity-utils/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fswebcam/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ftop/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fxload/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/g15daemon/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/gfxtablet/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/google-authenticator/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/gpu-switch/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/gt/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/guvcview/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/hd-idle/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/hdapsd/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/health-check/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/hibernate/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/hwdata/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/hyperv-daemons/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/i7z/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ifenslave/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iio-sensor-proxy/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ima-evm-utils/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/intel-compute-runtime/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/intel-speed-select/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ipp-usb/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iptstate/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iw/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iwd/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/joycond/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kbdlight/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix180
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/generic.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json60
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/kernels-org.json32
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/perf/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/xanmod-kernels.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/zen-kernels.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/klibc/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kmscon/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/latencytop/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ldm/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libselinux/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libtracefs/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libzbd/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lightum/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lockdep/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lsb-release/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/mbpfan/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/mceinject/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/mcelog/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/metastore/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/microcode/intel.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/microcode/iucode-tool.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/msr/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/netatop/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nmon/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nsncd/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/numad/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/numatop/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix20
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nvmet-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ocf-resource-agents/default.nix12
-rw-r--r--nixpkgs/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/odp-dpdk/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/openrazer/driver.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/opensnitch-ebpf/default.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/otpw/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pagemon/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pam_ccreds/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pam_tmpdir/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/paxctl/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/paxtest/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pcimem/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pcm/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pflask/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/piper/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pipework/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pktgen/default.nix16
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ply/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pommed-light/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/power-calibrate/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/power-profiles-daemon/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/powerstat/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/powertop/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/prl-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/procdump/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pscircle/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/psmisc/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/qperf/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/r8125/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/radeontop/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rasdaemon/default.nix9
-rw-r--r--nixpkgs/pkgs/os-specific/linux/reap/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/regionset/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/reptyr/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtkit/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtl8814au/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ryzenadj/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/schedtool/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/sd-switch/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/service-wrapper/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/seturgent/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/shadow/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/sinit/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/smemstat/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/statifier/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/swapview/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/switcheroo-control/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/sysdig/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/system76-power/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/system76-scheduler/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd-wait/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/default.nix14
-rw-r--r--nixpkgs/pkgs/os-specific/linux/tailor-gui/default.nix3
-rw-r--r--nixpkgs/pkgs/os-specific/linux/target-isns/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/tiscamera/0001-cmake-find-aravis-fix-pkg-cfg-include-dirs.patch25
-rw-r--r--nixpkgs/pkgs/os-specific/linux/tiscamera/0001-tcamconvert-tcamsrc-add-missing-include-lib-dirs.patch70
-rw-r--r--nixpkgs/pkgs/os-specific/linux/tiscamera/0001-udev-rules-fix-install-location.patch25
-rw-r--r--nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix19
-rw-r--r--nixpkgs/pkgs/os-specific/linux/tmon/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/tpacpi-bat/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/trace-cmd/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/trinity/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/tuna/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/tunctl/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/turbostat/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ulogd/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ultrablue-server/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/undervolt/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/unscd/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/unstick/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/untie/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/upower/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/usbrelay/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/usbtop/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/usbutils/default.nix3
-rw-r--r--nixpkgs/pkgs/os-specific/linux/usermount/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/v4l2-relayd/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/v4l2loopback/revert-pr518.patch55
-rw-r--r--nixpkgs/pkgs/os-specific/linux/v86d/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/vmware/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/waydroid/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/wpa_supplicant/gui.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/x86_energy_perf_policy/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/xf86-input-wacom/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/xone/default.nix25
-rw-r--r--nixpkgs/pkgs/os-specific/linux/xp-pen-drivers/deco-01-v2/default.nix15
-rw-r--r--nixpkgs/pkgs/os-specific/linux/xsos/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/zenmonitor/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/zenstates/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/zfs/unstable.nix6
-rw-r--r--nixpkgs/pkgs/servers/akkoma/admin-fe/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/akkoma/akkoma-fe/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/akkoma/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/bililiverecorder/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/bird/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/blockbook/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/caddy/xcaddy/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/computing/slurm-spank-x11/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/dns/bind/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dns/coredns/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/dns/dnsdist/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dns/pdns/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/documize-community/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/etebase/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/fastnetmon-advanced/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/filtron/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/frr/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/ftp/bftpd/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/ftp/vsftpd/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/gemini/agate/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/gemini/gmnisrv/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/gemini/molly-brown/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/gemini/stargazer/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/geospatial/mapproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/geospatial/mbtileserver/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/geospatial/pg_featureserv/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/geospatial/pg_tileserv/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/geospatial/tegola/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/gnss-share/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/go-libp2p-daemon/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/gotosocial/default.nix22
-rw-r--r--nixpkgs/pkgs/servers/gotty/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/hasura/cli.nix1
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/appdaemon.nix1
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/cli.nix1
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/component-packages.nix11
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/custom-components/better_thermostat/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/custom-components/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/custom-components/epex_spot/default.nix39
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/custom-components/frigate/default.nix32
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/custom-components/moonraker/default.nix35
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/custom-components/omnik_inverter/default.nix32
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/custom-components/sensi/default.nix30
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/default.nix150
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/frontend.nix4
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/intents.nix4
-rwxr-xr-xnixpkgs/pkgs/servers/home-assistant/parse-requirements.py2
-rw-r--r--nixpkgs/pkgs/servers/home-automation/evcc/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/homepage-dashboard/default.nix31
-rw-r--r--nixpkgs/pkgs/servers/honk/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/hqplayerd/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_ca/default.nix36
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_crl/default.nix30
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_csr/default.nix30
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_dnssd/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_ocsp/default.nix29
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_perl/default.nix40
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_pkcs12/default.nix29
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_python/default.nix29
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_scep/default.nix29
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_spkac/default.nix29
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_tile/default.nix9
-rw-r--r--nixpkgs/pkgs/servers/http/apache-modules/mod_timestamp/default.nix34
-rw-r--r--nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/darkhttpd/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/dufs/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/envoy/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/hyp/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/jetty/11.x.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/jetty/12.x.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/lighttpd/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/lwan/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/mini-httpd/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/nginx/generic.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/nginx/modules.nix6
-rw-r--r--nixpkgs/pkgs/servers/http/pomerium/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/http/pshs/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/quark/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/ran/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/redstore/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/spawn-fcgi/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/tengine/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/tomcat/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/http/unit/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/webhook/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/http/yaws/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/icecast/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/icecream/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/identd/nullidentdmod/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/identd/oidentd/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/imgproxy/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/interlock/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/invidious/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/irc/ergochat/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/irc/irccat/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/irc/ngircd/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/irc/robustirc-bridge/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/isso/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/jackett/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/jackett/deps.nix28
-rw-r--r--nixpkgs/pkgs/servers/jibri/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/jicofo/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/jigasi/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/jitsi-videobridge/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/kanidm/Cargo.lock40
-rw-r--r--nixpkgs/pkgs/servers/kanidm/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/klipper/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/komga/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/kubemq-community/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/kwakd/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/ldap/apache-directory-server/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/ldap/lldap/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/libreddit/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/mail/exim/default.nix32
-rw-r--r--nixpkgs/pkgs/servers/mail/mailhog/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix26
-rw-r--r--nixpkgs/pkgs/servers/mail/mailman/python.nix9
-rw-r--r--nixpkgs/pkgs/servers/mail/mailman/web.nix1
-rw-r--r--nixpkgs/pkgs/servers/mail/mox/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/mail/popa3d/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/mail/postfix/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/mail/postfix/pflogsumm.nix1
-rw-r--r--nixpkgs/pkgs/servers/mail/postfix/postfix-3.0-no-warnings.patch2
-rw-r--r--nixpkgs/pkgs/servers/mail/postsrsd/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/mail/smtprelay/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/matrix-hebbot/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/default.nix38
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-hookshot/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/plugins/s3-storage-provider.nix1
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/tools/synadm.nix1
-rw-r--r--nixpkgs/pkgs/servers/mattermost/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/mattermost/matterircd.nix1
-rw-r--r--nixpkgs/pkgs/servers/mautrix-signal/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/memcached/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/mesos-dns/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/metabase/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/miniflux/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/minio/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/minio/legacy_fs.nix1
-rw-r--r--nixpkgs/pkgs/servers/misc/client-ip-echo/client-ip-echo.nix1
-rw-r--r--nixpkgs/pkgs/servers/misc/gobgpd/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/misc/navidrome/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/misc/oven-media-engine/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/misc/podgrab/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/misc/qremotecontrol-server/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/misc/shell2http/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/misc/starcharts/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/alerta/client.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/alerta/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/alertmanager-irc-relay/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/cadvisor/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/consul-alerts/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/do-agent/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix28
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json2
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana-reporter/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana/default.nix55
-rw-r--r--nixpkgs/pkgs/servers/monitoring/karma/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/laurel/default.nix18
-rw-r--r--nixpkgs/pkgs/servers/monitoring/loki/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/monitoring/longview/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/monitoring/matrix-alertmanager/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/munin/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix5
-rw-r--r--nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_systemd.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/nagios/plugins/smartmon.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/nagios/plugins/zfs.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/openobserve/Cargo.lock360
-rw-r--r--nixpkgs/pkgs/servers/monitoring/openobserve/default.nix15
-rw-r--r--nixpkgs/pkgs/servers/monitoring/phlare/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/monitoring/plugins/openvpn.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/plugins/wmic-bin.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/atlas-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/bird-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/cloudflare-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/consul-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/dcgm-exporter/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/dmarc-metrics-exporter/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/exportarr/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/flow-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/graphite-exporter.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/haproxy-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/idrac-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/imap-mailstat-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/influxdb-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/junos-czerwonk-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/kea-exporter.nix20
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/keylight-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/kthxbye.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/lnd-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/mail-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/minio-exporter/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/mysqld-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/nut-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/openldap-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/pgbouncer-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/php-fpm-exporter.nix2
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/pihole-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/ping-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/postfix-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/prom2json.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/promscale/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/pushgateway.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/pve-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix5
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/rtl_433-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/sachet.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/script-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/shelly-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix7
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/sql-exporter.nix5
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/statsd-exporter.nix7
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/systemd-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/tor-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/unbound-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/v2ray-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/zfs-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/riemann/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/seyren/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/telegraf/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/monitoring/unpoller/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/uptime-kuma/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/vmagent/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/mqtt/flashmq/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/nats-server/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/neard/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/networking/rustus/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/nextcloud/news-updater.nix1
-rw-r--r--nixpkgs/pkgs/servers/nextcloud/notify_push.nix1
-rw-r--r--nixpkgs/pkgs/servers/nosql/aerospike/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/nosql/ferretdb/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/nosql/mongodb/6.0.nix3
-rw-r--r--nixpkgs/pkgs/servers/nosql/mongodb/fix-gcc-13-ctype-6_0.patch12
-rw-r--r--nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix1
-rw-r--r--nixpkgs/pkgs/servers/nosql/neo4j/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/onlyoffice-documentserver/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/openvscode-server/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/osmocom/libosmo-sccp/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/osmocom/osmo-hnbgw/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/osmocom/osmo-hnodeb/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/osmocom/osmo-mgw/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/osmocom/osmo-msc/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/osmocom/osmo-pcu/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/osmocom/osmo-sip-connector/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/pinnwand/steck.nix1
-rw-r--r--nixpkgs/pkgs/servers/pleroma/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/plex/raw.nix6
-rw-r--r--nixpkgs/pkgs/servers/pocketbase/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/polaris/Cargo.lock2731
-rw-r--r--nixpkgs/pkgs/servers/polaris/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/prowlarr/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/pufferpanel/bump-sha1cd.patch28
-rw-r--r--nixpkgs/pkgs/servers/pufferpanel/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/pufferpanel/deps.patch146
-rw-r--r--nixpkgs/pkgs/servers/pulseaudio/qpaeq.nix1
-rw-r--r--nixpkgs/pkgs/servers/radicale/2.x.nix1
-rw-r--r--nixpkgs/pkgs/servers/radicale/3.x.nix25
-rw-r--r--nixpkgs/pkgs/servers/rainloop/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/readarr/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/redpanda/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/reproxy/default.nix45
-rw-r--r--nixpkgs/pkgs/servers/roon-server/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sabnzbd/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/scylladb/configure-etc-osrelease.patch28
-rw-r--r--nixpkgs/pkgs/servers/scylladb/default.nix104
-rw-r--r--nixpkgs/pkgs/servers/scylladb/seastar-configure-script-paths.patch13
-rw-r--r--nixpkgs/pkgs/servers/search/groonga/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/search/lnx/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/search/meilisearch/Cargo.lock2147
-rw-r--r--nixpkgs/pkgs/servers/search/meilisearch/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/search/qdrant/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/search/sonic-server/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/search/typesense/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/search/weaviate/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/search/zincsearch/default.nix9
-rw-r--r--nixpkgs/pkgs/servers/serf/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/sickbeard/sickgear.nix5
-rw-r--r--nixpkgs/pkgs/servers/silc-server/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/snappymail/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/sonarr/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/sozu/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/spicedb/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/spicedb/zed.nix7
-rw-r--r--nixpkgs/pkgs/servers/sql/cockroachdb/default.nix70
-rw-r--r--nixpkgs/pkgs/servers/sql/dolt/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/12.nix10
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/13.nix14
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/14.nix14
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/15.nix10
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/16.nix10
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/default.nix426
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/anonymizer.nix32
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/default.nix107
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/lantern.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/periods.nix1
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix5
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_embedding.nix1
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_net.nix1
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_repack.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_uuidv7.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pgvecto-rs/0001-read-clang-flags-from-environment.diff19
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pgvecto-rs/Cargo.lock (renamed from nixpkgs/pkgs/applications/misc/done/Cargo.lock)3712
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix102
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix5
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/plv8/0001-build-Allow-using-V8-from-system.patch2
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/plv8/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix9
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/promscale_extension.nix3
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix3
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix23
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/generic.nix322
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/packages.nix103
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/patches/locale-binary-path.patch (renamed from nixpkgs/pkgs/servers/sql/postgresql/locale-binary-path.patch)0
-rw-r--r--nixpkgs/pkgs/servers/sql/proxysql/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/sql/rqlite/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/squid/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sslh/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sunshine/default.nix48
-rw-r--r--nixpkgs/pkgs/servers/sunshine/dont-build-webui.patch14
-rw-r--r--nixpkgs/pkgs/servers/sunshine/package-lock.json864
-rw-r--r--nixpkgs/pkgs/servers/tailscale/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/tautulli/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/trezord/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/trickster/trickster.nix1
-rw-r--r--nixpkgs/pkgs/servers/tt-rss/plugin-ff-instagram/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/ttyd/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/web-apps/bookstack/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/bookstack/php-packages.nix180
-rw-r--r--nixpkgs/pkgs/servers/web-apps/changedetection-io/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/default.nix26
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock2
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock6
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix16
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock2
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile11
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock133
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix187
-rw-r--r--nixpkgs/pkgs/servers/web-apps/discourse/use_mv_instead_of_rename.patch22
-rw-r--r--nixpkgs/pkgs/servers/web-apps/engelsystem/default.nix24
-rw-r--r--nixpkgs/pkgs/servers/web-apps/fileshelter/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/web-apps/galene/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/web-apps/hedgedoc/default.nix17
-rw-r--r--nixpkgs/pkgs/servers/web-apps/jirafeau/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/web-apps/jitsi-meet/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/lemmy/package.json2
-rw-r--r--nixpkgs/pkgs/servers/web-apps/matomo/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/web-apps/meme-bingo-web/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/web-apps/morty/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/web-apps/netbox/generic.nix1
-rw-r--r--nixpkgs/pkgs/servers/web-apps/outline/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/web-apps/peering-manager/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/web-apps/phylactery/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/web-apps/pict-rs/0.3.nix1
-rw-r--r--nixpkgs/pkgs/servers/web-apps/pict-rs/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/web-apps/plausible/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/web-apps/shiori/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/web-apps/slskd/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/web-apps/wordpress/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/default.nix12
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/tarballs.list4
-rw-r--r--nixpkgs/pkgs/servers/xmpp/biboumi/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/xmpp/ejabberd/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/xmpp/prosody-filer/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/zookeeper/default.nix15
-rw-r--r--nixpkgs/pkgs/shells/bash/blesh/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/carapace/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/es/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/fish/babelfish.nix1
-rw-r--r--nixpkgs/pkgs/shells/fish/default.nix17
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/default.nix2
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/forgit.nix4
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/puffer.nix18
-rw-r--r--nixpkgs/pkgs/shells/fish/plugins/transient-fish.nix22
-rw-r--r--nixpkgs/pkgs/shells/fzf-git-sh/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/hilbish/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/ion/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/jush/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/liquidprompt/default.nix2
-rw-r--r--nixpkgs/pkgs/shells/mrsh/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/murex/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/nix-your-shell/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/nsh/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/nushell/default.nix2
-rw-r--r--nixpkgs/pkgs/shells/nushell/nu_scripts/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/nushell/plugins/default.nix2
-rw-r--r--nixpkgs/pkgs/shells/nushell/plugins/formats.nix1
-rw-r--r--nixpkgs/pkgs/shells/nushell/plugins/gstat.nix1
-rw-r--r--nixpkgs/pkgs/shells/nushell/plugins/query.nix1
-rw-r--r--nixpkgs/pkgs/shells/nushell/plugins/regex.nix35
-rw-r--r--nixpkgs/pkgs/shells/oh/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/oksh/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/scponly/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/yash/default.nix5
-rw-r--r--nixpkgs/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/zsh/antibody/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/antidote/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/zsh/nix-zsh-completions/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-abbr/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-forgit/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix8
-rw-r--r--nixpkgs/pkgs/stdenv/adapters.nix42
-rw-r--r--nixpkgs/pkgs/stdenv/darwin/default.nix63
-rw-r--r--nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix409
-rw-r--r--nixpkgs/pkgs/stdenv/darwin/patch-bootstrap-tools-next.sh38
-rw-r--r--nixpkgs/pkgs/stdenv/darwin/unpack-bootstrap-tools-aarch64.sh5
-rw-r--r--nixpkgs/pkgs/stdenv/generic/default.nix2
-rw-r--r--nixpkgs/pkgs/stdenv/generic/make-derivation.nix314
-rw-r--r--nixpkgs/pkgs/stdenv/linux/bootstrap-files/powerpc64-unknown-linux-gnuabielfv2.nix21
-rw-r--r--nixpkgs/pkgs/stdenv/linux/default.nix1
-rw-r--r--nixpkgs/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix1
-rw-r--r--nixpkgs/pkgs/test/default.nix1
-rw-r--r--nixpkgs/pkgs/test/haskell/shellFor/default.nix8
-rw-r--r--nixpkgs/pkgs/test/nixpkgs-check-by-name/.envrc6
-rw-r--r--nixpkgs/pkgs/test/nixpkgs-check-by-name/scripts/pinned-tool.json4
-rw-r--r--nixpkgs/pkgs/tools/X11/arandr/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/X11/xdg-utils/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/X11/xdragon/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/admin/amazon-ec2-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/ansible/doctor.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/ansible/later.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/ansible/lint.nix5
-rw-r--r--nixpkgs/pkgs/tools/admin/aws-google-auth/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/aws-lambda-runtime-interface-emulator/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/admin/aws-mfa/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/aws-vault/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/awscli/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/admin/awscli2/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/admin/awslimitchecker/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/awslogs/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/azure-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix152
-rw-r--r--nixpkgs/pkgs/tools/admin/balena-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/chamber/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/chkcrontab/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/copilot-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/credhub-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/dehydrated/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/drawterm/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/gam/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/gimme-aws-creds/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/gixy/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/google-cloud-sdk/components.json1419
-rw-r--r--nixpkgs/pkgs/tools/admin/google-cloud-sdk/data.nix22
-rw-r--r--nixpkgs/pkgs/tools/admin/granted/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/hedgedoc-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/lxd/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/lxd/ui.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/mycli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/nomachine-client/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/pgadmin/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/admin/pgadmin/yarn.lock136
-rw-r--r--nixpkgs/pkgs/tools/admin/proxmove/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi-bin/data.nix366
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-aws-native.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-azure-native.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-command.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-random.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/qovery-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/s3bro/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/salt/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/admin/ssl-cert-check/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/admin/trivy/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/try/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/archivers/unar/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/asap/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/audio/dl-librescore/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/audio/liquidsoap/full.nix8
-rw-r--r--nixpkgs/pkgs/tools/audio/mpd-discord-rpc/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/audio/openai-whisper-cpp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/pa-applet/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/spotdl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/audio/wyoming/faster-whisper.nix25
-rw-r--r--nixpkgs/pkgs/tools/audio/wyoming/piper.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/android-backup-extractor/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/automysqlbackup/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/autorestic/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/awsbck/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/backup/bakelite/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/borgmatic/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/btar/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/bup/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/burp/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/backup/chunksync/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/discordchatexporter-cli/deps.nix23
-rw-r--r--nixpkgs/pkgs/tools/backup/diskrsync/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/duply/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/flockit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/gh2md/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/gphotos-sync/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/httrack/qt.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/kopia/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/lvmsync/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/mastodon-archive/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/monolith/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/mylvmbackup/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/pyznap/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/rdedup/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/restic/rest-server.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/rotate-backups/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/sigtop/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/stenc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/ugarit-manifest-maker/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/wal-e/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/wal-g/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/backup/zbackup/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/zfs-prune-snapshots/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/zfs-replicate/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/backup/zfsnap/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/bootloaders/refind/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/compression/crabz/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/compression/lzham/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/compression/lzip/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/compression/lzip/mingw-mkdir-one-argument.patch13
-rw-r--r--nixpkgs/pkgs/tools/compression/ouch/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/compression/xz/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/9pfs/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/archivemount/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/bcache-tools/bcache-udev-modern.patch30
-rw-r--r--nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/btrfs-heatmap/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/btrfs-snap/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/catcli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/ceph-csi/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/ceph/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/filesystems/cpcfs/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/curlftpfs/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/darling-dmg/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/dduper/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/disorderfs/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/djmount/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/duff/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/httpfs/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/filesystems/rar2fs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/tar2ext4/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/games/ajour/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/games/gamemode/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/games/joystickwake/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/games/jpsxdec/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/games/minecraft/amidst/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/games/minecraft/fabric-installer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/games/minecraft/mcaselector/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/games/minecraft/minecraft-server-hibernation/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/games/mymcplus/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/games/pokefinder/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/games/steamback/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/games/steamtinkerlaunch/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/games/ukmm/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/graphics/asymptote/default.nix53
-rw-r--r--nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/netpbm/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/pngcrush/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/graphics/quirc/0001-dont-build-demos.patch4
-rw-r--r--nixpkgs/pkgs/tools/graphics/quirc/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/graphics/realesrgan-ncnn-vulkan/cmakelists.patch12
-rw-r--r--nixpkgs/pkgs/tools/graphics/realesrgan-ncnn-vulkan/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/graphics/rocket/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/graphics/snapdragon-profiler/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/vips/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/vulkan-caps-viewer/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/emote/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/evdevremapkeys/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/evscript/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/evsieve/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/gebaar-libinput/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-cangjie/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/interception-tools/caps2esc.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/keyfuzz/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/libinput-gestures/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/lisgd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/m17n-db/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/nabi/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/touchegg/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/xlibinput_calibrator/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/llm/shell_gpt/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/0x/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/3mux/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/SP800-90B_EntropyAssessment/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/aichat/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/altserver-linux/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/antimicrox/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/autojump/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/bash_unit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/bepasty/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/broot/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/chezmoi/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/clipster/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/diffoscope/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/domine/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/dooit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/dua/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/edid-decode/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/eludris/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/esphome/dashboard.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/esphome/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/etcher/default.nix72
-rw-r--r--nixpkgs/pkgs/tools/misc/fastfetch/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/fclones/gui.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/fedifetcher/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/fzf/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/gosu/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/hdf5/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/misc/hunt/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/i3minator/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/ili2c/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/kalker/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/kcollectd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-client.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-explorer.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/linux-logo/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/lsd/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/map/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/miniserve/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/mise/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/mmctl/0001-module-replace-public.patch8
-rw-r--r--nixpkgs/pkgs/tools/misc/mmctl/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/misc/moar/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/mods/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/mpremote/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/nbqa/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/ntfy-sh/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/ollama/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/misc/onefetch/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/opentelemetry-collector/contrib.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/otel-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pb/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/pfetch-rs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/pgbadger/default.nix46
-rw-r--r--nixpkgs/pkgs/tools/misc/plantuml/plantuml-c4.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/plfit/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/misc/pokeget-rs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/pricehist/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/pspg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pubs/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/qrscan/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/r3ctl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/rauc/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/remind/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/rshim-user-space/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/scdl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/star-history/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/starship/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/staruml/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/steampipe/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/tagref/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/tbls/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/thefuck/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/tio/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/tkman/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/tmuxinator/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/tmuxp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/ttfautohint/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/turbo/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/ugs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/upower-notify/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/url-parser/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/vector/Cargo.lock24
-rw-r--r--nixpkgs/pkgs/tools/misc/vector/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/wacomtablet/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/wv2/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/yt-dlp/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/misc/z-lua/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/6tunnel/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ain/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/airgeddon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/boundary/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/bwm-ng/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/cantoolz/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/carddav-util/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/cfspeedtest/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/cloud-custodian/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/cmst/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/corerad/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/croc/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/curl-impersonate/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/networking/dd-agent/datadog-process-agent.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ddns-go/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/decode-spam-headers/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/discord-sh/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/dnschef/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/dnstwist/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsviz/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/evillimiter/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/flannel/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/flannel/plugin.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/gandi-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/gmrender-resurrect/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/gnirehtet/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/gost/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/networking/gp-saml-gui/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/grpc_cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/haguichi/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/hblock/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/http-prompt/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/httplz/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/httpstat/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/hysteria/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/ifwifi/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/imapsync/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/iperf3d/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ipfetch/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ipgrep/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ipinfo/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/kea/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/knock/package.nix35
-rw-r--r--nixpkgs/pkgs/tools/networking/labctl/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/linkchecker/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mbidled/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/networking/minio-client/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/miniupnpd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/modemmanager/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/moodle-dl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mozillavpn/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mqttmultimeter/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/networking/mqttmultimeter/deps.nix130
-rw-r--r--nixpkgs/pkgs/tools/networking/mu/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/muffet/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/mutt-ics/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/narrowlink/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/netbird/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/networkd-dispatcher/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/networkd-notify/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/dmenu/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/fix-install-paths.patch4
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/fix-paths.patch48
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/sstp/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/networking/networkmanager/tray.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ngrok/versions.json36
-rw-r--r--nixpkgs/pkgs/tools/networking/nikto/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/norouter/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/networking/nss-mdns/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/nxdomain/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/nyx/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/nzbget/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/networking/ockam/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/oha/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/openresolv/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/openssh/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/gtk-gnutella/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/tahoe-lafs/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/persepolis/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/picosnitch/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/pirate-get/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/polygon-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/proxify/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/ratman/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/s3cmd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/saldl/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/sing-box/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/sish/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/sitespeed-io/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/snowflake/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/sockdump/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/sshoogr/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/swaks/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/telepresence/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/termshark/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/tinystatus/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/tuntox/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/udp2raw/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/uget-integrator/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/unbound/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/networking/updog/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/urlwatch/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/v2ray/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/v2raya/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/v2raya/package.json4
-rw-r--r--nixpkgs/pkgs/tools/networking/vpn-slice/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/vpnc-scripts/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/whatip/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wifish/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wuzz/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/xray/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/zrok/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/nix/dnadd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/nix/nar-serve/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/nix/nix-init/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/nix/nix-melt/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/nix/nix-output-monitor/generated-package.nix6
-rw-r--r--nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/nix/nix-store-gcs-proxy/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/nix/nixdoc/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/nix/nixel/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/nix/nixos-render-docs/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py11
-rw-r--r--nixpkgs/pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py2
-rw-r--r--nixpkgs/pkgs/tools/nix/nixpkgs-lint/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/nix/npins/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/nix/rnix-hashes/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/nix/zon2nix/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/apk-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/comma/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/conda/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/disnix/DisnixWebService/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/dnf5/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/dpkg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/gx/go/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/harmonia/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/package-management/libcomps/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-doc/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-du/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-update-source/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-update/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix/common.nix8
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix/patches/2_18/CVE-2024-27297.patch379
-rw-r--r--nixpkgs/pkgs/tools/package-management/pacman/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-audit-plugin.nix9
-rw-r--r--nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/wapm/cli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/2fa/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/acltoolkit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/adenum/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/aesfix/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/aeskeyfind/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/afl/libdislocator.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/age-plugin-ledger/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/age-plugin-tpm/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/age-plugin-yubikey/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/aide/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/aiodnsbrute/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/alterx/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/amoco/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/apachetomcatscanner/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/argocd-vault-plugin/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/arti/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/arubaotp-seed-extractor/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/asc-key-to-qr-code-gif/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/asnmap/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/atomic-operator/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/authz0/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/aws-iam-authenticator/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/b2sum/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/b3sum/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/badchars/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/badrobot/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/binbloom/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/bmrsa/11.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/boofuzz/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/browserpass/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/bruteforce-luks/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/brutespray/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/buttercup-desktop/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/cariddi/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/cdxgen/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/certdump/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/certgraph/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/certinfo/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/certstrap/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/certsync/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/security/cewl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/cfripper/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/cfssl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/chain-bench/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/chainsaw/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/cherrybomb/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/chrome-token-signing/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/cirrusgo/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/clairvoyance/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/cliam/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/cloudbrute/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/cloudfox/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/security/cloudhunter/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/cloudlist/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/cmospwd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/cnquery/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/cnspec/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/coercer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/commix/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/cosign/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/coze/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/crackql/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/crackxls/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/credential-detector/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/creds/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/credslayer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/crlfsuite/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/crlfuzz/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/crowbar/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/crunch/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/cryptomator/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/decoder/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/deepsecrets/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/dieharder/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/dirstalk/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/dismap/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/dnsenum/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/dnspeep/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/dnsrecon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/doas/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/dontgo403/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/doona/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/doppler/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/dorkscout/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/earlybird/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ec2stepshell/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ecdsatool/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/enc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/enchive/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/enum4linux-ng/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/enum4linux/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/enumerepo/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/evil-winrm/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/evtx/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/expliot/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/extrude/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/faraday-agent-dispatcher/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/faraday-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ffuf/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/fierce/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/fingerprintx/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/firefox_decrypt/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/security/fpm2/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/freeze/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/fulcio/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/galer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/gallia/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/gau/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/gencfsm/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/genpass/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ggshield/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ghauri/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ghdorker/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ghidra/build.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ghidra/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ghost/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/gitjacker/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/gnupg-pkcs11-scd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/go-cve-search/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/go-exploitdb/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/goblob/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/gobuster/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/gomapenum/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/git-credential.nix15
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/hibp.nix15
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/jsonapi.nix15
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/summon.nix15
-rw-r--r--nixpkgs/pkgs/tools/security/gorilla-bin/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/gospider/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/gotestwaf/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/gotrue/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/gotrue/supabase.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/goverview/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/govulncheck/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/gowitness/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/graphinder/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/graphqlmap/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/graphw00f/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/grype/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/hakrawler/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/hash_extender/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/hashcat/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/hashrat/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/haveged/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/hfinger/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/holehe/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/honeytrap/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/hstsparser/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/httpdump/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/httpx/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/iaito/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ifdnfc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/imdshift/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/inql/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ioccheck/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ipscan/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/isolate/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/jaeles/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/jd-gui/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/joincap/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/jsubfinder/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/jwx/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/katana/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/kbs2/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/kdigger/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/keepwn/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/kerbrute/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/kestrel/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/keybase/gui.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/keycard-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/keyscope/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/kiterunner/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/knockpy/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/knowsmore/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/kpcli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/kube-bench/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/kubeaudit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/kubeclarity/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/kubernetes-polaris/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/kubescape/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/kubesec/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ldapmonitor/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ldeep/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/lesspass-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/lil-pwny/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/linux-exploit-suggester/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/log4j-scan/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/log4j-sniffer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/lynis/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/masscan/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/medusa/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/melt/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock16
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/metasploit/gemset.nix14
-rw-r--r--nixpkgs/pkgs/tools/security/mfcuk/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/mfoc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/minica/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/mitm6/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/mitmproxy2swagger/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/mkpasswd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/mkrand/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/mktemp/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/mokutil/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/monsoon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/mpw/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/msfpc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/munge/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/mx-takeover/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/naabu/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/nasty/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/nbtscanner/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ncrack/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/nitrokey-app/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/nmap-formatter/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/nmap/qt.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/noseyparker/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/nosqli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/notary/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ntlmrecon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/nuclei/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/nwipe/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/oauth2c/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/octosuite/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/onioncircuits/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/onlykey-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/open-ecard/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/openrisk/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/orjail/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ospd-openvas/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/osv-detector/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/osv-scanner/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/otpauth/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ots/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/pamtester/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/paperkey/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/pass/extensions/import.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/pass/rofi-pass.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/pass/wofi-pass.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/pass2csv/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/passphrase2pgp/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/pcsc-cyberjack/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/pcsclite/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/pdfcrack/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/pgpdump/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/pinentry/default.nix203
-rw-r--r--nixpkgs/pkgs/tools/security/plecost/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/pomerium-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/posteid-seed-extractor/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/pretender/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/proxmark3/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/security/pwdsafety/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/pwncat/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/qdigidoc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/quill-qr/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/quill/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/radamsa/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/redwax-tool/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/regpg/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/responder/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ripasso/cursive.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/rustscan/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/s5/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/safe/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/saml2aws/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/sammler/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/sbctl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/scilla/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/scorecard/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/scrypt/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/sdlookup/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/secretscanner/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/semgrep/semgrep-core.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/sequoia-sqop/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/shc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/shisho/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/signify/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/silenthound/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/security/slsa-verifier/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/smbmap/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/snallygaster/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/snow/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/snowcat/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/spectre-meltdown-checker/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/spyre/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ssdeep/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ssh-audit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/ssh-to-pgp/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/sshchecker/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/sshguard/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/sshocker/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/sshuttle/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/sslscan/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/stacs/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/step-kms-plugin/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/su-exec/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/subjs/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/swaggerhole/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/tboot/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/teler/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/tell-me-your-secrets/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/terrascan/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/tessen/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/theharvester/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/threatest/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/tor/torsocks.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/tpm2-abrmd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/tracee/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/trousers/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/truecrack/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/trueseeing/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/trufflehog/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/trustymail/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/uddup/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/udpx/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/urlhunter/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/usbrip/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/vals/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/vault-medusa/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/vault-ssh-plus/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/vault/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/vaultwarden/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/verifpal/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/vexctl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/vulnix/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/wad/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/waf-tester/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/wafw00f/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/web-eid-app/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/whatweb/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/wipe/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/xcat/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/xorex/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/xsser/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/xsubfind3r/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/yarGen/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/yersinia/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/yubikey-agent/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/yubikey-touch-detector/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/security/zdns/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/zgrab2/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/zkar/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/system/automatic-timezoned/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/btop/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/system/confd/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/system/consul-template/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/dell-command-configure/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/system/freeipmi/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/goreman/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/system/illum/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/java-service-wrapper/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/journalwatch/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/system/kanata/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/system/lact/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/monit/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/natscli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix1
-rw-r--r--nixpkgs/pkgs/tools/system/nvtop/build-nvtop.nix90
-rw-r--r--nixpkgs/pkgs/tools/system/nvtop/default.nix91
-rw-r--r--nixpkgs/pkgs/tools/system/rsyslog/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/system/sleuthkit/default.nix76
-rw-r--r--nixpkgs/pkgs/tools/system/stress-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/zenith/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/a2ps/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/abbreviate/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/agrep/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/aha/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/align/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/anew/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/anewer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/ansifilter/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/ascii/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/asciigraph/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/autocorrect/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/base16384/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/bashblog/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/book-summary/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/boxes/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/catdocx/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/cconv/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/chars/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/choose/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/cidrgrep/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/cmigemo/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/coloursum/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/comrak/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/convertlit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/copyright-update/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/crowdin-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/csvdiff/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/csview/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/dadadodo/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/dfmt/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/diffr/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/diffstat/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/difftastic/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/text/dirdiff/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/djot-js/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/text/each/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/epubcheck/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/esh/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/fanficfare/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/fastmod/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/frangipanni/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/frawk/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/frogmouth/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/fst/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/gawk/gawkextlib.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/gjo/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/glogg/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/gnupatch/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/gtranslator/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/gtree/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/gucci/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/hck/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/text/hcledit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/highlight/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/html2text/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/huniq/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/hyx/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/invoice2data/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/jen/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/jotdown/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/jsawk/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/jumanpp/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/kdiff3/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/l2md/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mairix/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mark/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/markscribe/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/math-review/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mawk/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mb2md/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-admonish/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-cmdrun/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-d2/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-emojicodes/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-epub/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-footnote/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-graphviz/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-katex/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-kroki-preprocessor/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-linkcheck/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-man/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-mermaid/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-open-on-gh/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-pagetoc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-pdf/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-plantuml/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook-toc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mdcat/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/mir-qualia/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mmdoc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/morsel/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/mpage/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/multitran/mtutils/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/nerdfix/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/nkf/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/odt2txt/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/papeer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/paperoni/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/papertrail/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/par/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/pbgopy/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/peco/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/pinyin-tool/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/platinum-searcher/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/pn/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/podiff/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/poedit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/pomsky/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/proselint/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/qprint/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/reckon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/recode/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/reveal-md/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/rgxg/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/riffdiff/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/rnr/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/rosie/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/rpl/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/text/runiq/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/ruplacer/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/sad/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/text/scraper/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/sd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/sgml/openjade/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/sgrep/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/shab/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/shocco/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/sift/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/smu/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/sorted-grep/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/subedit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/tab/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/teip/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/termbook/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/tidy-viewer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/tml/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/to-html/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/tuc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/tv/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/txt2tags/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/ugrep/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/unfurl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/uniscribe/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/unrtf/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/untex/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/uwc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/vale/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/vgrep/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/wdiff/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/wgetpaste/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/text/xidel/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/xml/xmlformat/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/xml/xmloscopy/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/xml/xq/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/xpaste/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/xsv/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/yaml-merge/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/zet/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctorj/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/bibtex-tidy/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/typesetting/fop/default.nix68
-rw-r--r--nixpkgs/pkgs/tools/typesetting/hayagriva/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tectonic/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tectonic/tests.nix6
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tectonic/wrapper.nix3
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/gladtex/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/latexrun/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/pplatex/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix65
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix11
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix524
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix25
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb.nix2449
-rw-r--r--nixpkgs/pkgs/tools/video/blackmagic-desktop-video/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/virtualization/govc/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/virtualization/nixos-container/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/virtualization/rootlesskit/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/virtualization/xen-guest-agent/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/wayland/hyprland-per-window-layout/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/wayland/wleave/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/wayland/wlr-randr/default.nix4
-rw-r--r--nixpkgs/pkgs/top-level/aliases.nix88
-rw-r--r--nixpkgs/pkgs/top-level/all-packages.nix790
-rw-r--r--nixpkgs/pkgs/top-level/config.nix32
-rw-r--r--nixpkgs/pkgs/top-level/coq-packages.nix2
-rw-r--r--nixpkgs/pkgs/top-level/darwin-packages.nix8
-rw-r--r--nixpkgs/pkgs/top-level/dotnet-packages.nix1
-rw-r--r--nixpkgs/pkgs/top-level/haskell-packages.nix112
-rw-r--r--nixpkgs/pkgs/top-level/java-packages.nix11
-rw-r--r--nixpkgs/pkgs/top-level/kodi-packages.nix211
-rw-r--r--nixpkgs/pkgs/top-level/linux-kernels.nix19
-rw-r--r--nixpkgs/pkgs/top-level/octave-packages.nix10
-rw-r--r--nixpkgs/pkgs/top-level/perl-packages.nix97
-rw-r--r--nixpkgs/pkgs/top-level/php-packages.nix8
-rw-r--r--nixpkgs/pkgs/top-level/python-aliases.nix2
-rw-r--r--nixpkgs/pkgs/top-level/python-packages.nix179
-rw-r--r--nixpkgs/pkgs/top-level/release-cross.nix169
-rw-r--r--nixpkgs/pkgs/top-level/release-cuda.nix11
-rw-r--r--nixpkgs/pkgs/top-level/release-haskell.nix58
-rw-r--r--nixpkgs/pkgs/top-level/release-lib.nix65
-rw-r--r--nixpkgs/pkgs/top-level/release-python.nix13
-rw-r--r--nixpkgs/pkgs/top-level/release-r.nix8
-rw-r--r--nixpkgs/pkgs/top-level/release-small.nix8
-rw-r--r--nixpkgs/pkgs/top-level/release.nix42
-rw-r--r--nixpkgs/pkgs/top-level/ruby-packages.nix258
-rw-r--r--nixpkgs/pkgs/top-level/stage.nix3
-rw-r--r--nixpkgs/pkgs/top-level/unixtools.nix13
8932 files changed, 118001 insertions, 75043 deletions
diff --git a/nixpkgs/.github/CODEOWNERS b/nixpkgs/.github/CODEOWNERS
index 278e11ce6863..15e253be5b80 100644
--- a/nixpkgs/.github/CODEOWNERS
+++ b/nixpkgs/.github/CODEOWNERS
@@ -131,13 +131,13 @@ nixos/modules/installer/tools/nix-fallback-paths.nix  @raitobezarius @ma27
 /pkgs/development/interpreters/python/hooks                 @FRidh @jonringer
 
 # Haskell
-/doc/languages-frameworks/haskell.section.md  @cdepillabout @sternenseemann @maralorn @ncfavier
-/maintainers/scripts/haskell                  @cdepillabout @sternenseemann @maralorn @ncfavier
-/pkgs/development/compilers/ghc               @cdepillabout @sternenseemann @maralorn @ncfavier
-/pkgs/development/haskell-modules             @cdepillabout @sternenseemann @maralorn @ncfavier
-/pkgs/test/haskell                            @cdepillabout @sternenseemann @maralorn @ncfavier
-/pkgs/top-level/release-haskell.nix           @cdepillabout @sternenseemann @maralorn @ncfavier
-/pkgs/top-level/haskell-packages.nix          @cdepillabout @sternenseemann @maralorn @ncfavier
+/doc/languages-frameworks/haskell.section.md  @sternenseemann @maralorn @ncfavier
+/maintainers/scripts/haskell                  @sternenseemann @maralorn @ncfavier
+/pkgs/development/compilers/ghc               @sternenseemann @maralorn @ncfavier
+/pkgs/development/haskell-modules             @sternenseemann @maralorn @ncfavier
+/pkgs/test/haskell                            @sternenseemann @maralorn @ncfavier
+/pkgs/top-level/release-haskell.nix           @sternenseemann @maralorn @ncfavier
+/pkgs/top-level/haskell-packages.nix          @sternenseemann @maralorn @ncfavier
 
 # Perl
 /pkgs/development/interpreters/perl @stigtsp @zakame @dasJ
@@ -359,3 +359,8 @@ nixos/tests/zfs.nix                       @raitobezarius
 nixos/modules/services/continuous-integration/buildbot @Mic92 @zowoq
 nixos/tests/buildbot.nix                               @Mic92 @zowoq
 pkgs/development/tools/continuous-integration/buildbot @Mic92 @zowoq
+
+# Pretix
+pkgs/by-name/pr/pretix/ @mweinelt
+nixos/modules/services/web-apps/pretix.nix @mweinelt
+nixos/tests/web-apps/pretix.nix @mweinelt
diff --git a/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md b/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md
index 40ea13f131e8..1dfd8cd15abd 100644
--- a/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md
+++ b/nixpkgs/.github/PULL_REQUEST_TEMPLATE.md
@@ -38,7 +38,7 @@ Reviewing helps to reduce the average time-to-merge for everyone.
 Thanks a lot if you do!
 
 List of open PRs: https://github.com/NixOS/nixpkgs/pulls
-Reviewing guidelines: https://nixos.org/manual/nixpkgs/unstable/#chap-reviewing-contributions
+Reviewing guidelines: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#reviewing-contributions
 -->
 
 ---
diff --git a/nixpkgs/.github/labeler.yml b/nixpkgs/.github/labeler.yml
index c3e834b0e7da..a6e8d734382e 100644
--- a/nixpkgs/.github/labeler.yml
+++ b/nixpkgs/.github/labeler.yml
@@ -1,216 +1,362 @@
 "6.topic: agda":
-  - doc/languages-frameworks/agda.section.md
-  - nixos/tests/agda.nix
-  - pkgs/build-support/agda/**/*
-  - pkgs/development/libraries/agda/**/*
-  - pkgs/top-level/agda-packages.nix
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/agda.section.md
+        - nixos/tests/agda.nix
+        - pkgs/build-support/agda/**/*
+        - pkgs/development/libraries/agda/**/*
+        - pkgs/top-level/agda-packages.nix
 
 "6.topic: cinnamon":
-  - pkgs/desktops/cinnamon/**/*
-  - nixos/modules/services/x11/desktop-managers/cinnamon.nix
-  - nixos/tests/cinnamon.nix
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - pkgs/desktops/cinnamon/**/*
+        - nixos/modules/services/x11/desktop-managers/cinnamon.nix
+        - nixos/tests/cinnamon.nix
 
 "6.topic: emacs":
-  - nixos/modules/services/editors/emacs.nix
-  - nixos/modules/services/editors/emacs.xml
-  - nixos/tests/emacs-daemon.nix
-  - pkgs/applications/editors/emacs/elisp-packages/**/*
-  - pkgs/applications/editors/emacs/**/*
-  - pkgs/build-support/emacs/**/*
-  - pkgs/top-level/emacs-packages.nix
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - nixos/modules/services/editors/emacs.nix
+        - nixos/modules/services/editors/emacs.xml
+        - nixos/tests/emacs-daemon.nix
+        - pkgs/applications/editors/emacs/elisp-packages/**/*
+        - pkgs/applications/editors/emacs/**/*
+        - pkgs/build-support/emacs/**/*
+        - pkgs/top-level/emacs-packages.nix
 
 "6.topic: Enlightenment DE":
-  - nixos/modules/services/x11/desktop-managers/enlightenment.nix
-  - pkgs/desktops/enlightenment/**/*
-  - pkgs/development/python-modules/python-efl/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - nixos/modules/services/x11/desktop-managers/enlightenment.nix
+        - pkgs/desktops/enlightenment/**/*
+        - pkgs/development/python-modules/python-efl/*
 
 "6.topic: erlang":
-  - doc/languages-frameworks/beam.section.md
-  - pkgs/development/beam-modules/**/*
-  - pkgs/development/interpreters/elixir/**/*
-  - pkgs/development/interpreters/erlang/**/*
-  - pkgs/development/tools/build-managers/rebar/**/*
-  - pkgs/development/tools/build-managers/rebar3/**/*
-  - pkgs/development/tools/erlang/**/*
-  - pkgs/top-level/beam-packages.nix
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/beam.section.md
+        - pkgs/development/beam-modules/**/*
+        - pkgs/development/interpreters/elixir/**/*
+        - pkgs/development/interpreters/erlang/**/*
+        - pkgs/development/tools/build-managers/rebar/**/*
+        - pkgs/development/tools/build-managers/rebar3/**/*
+        - pkgs/development/tools/erlang/**/*
+        - pkgs/top-level/beam-packages.nix
 
 "6.topic: fetch":
-  - pkgs/build-support/fetch*/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - pkgs/build-support/fetch*/**/*
 
 "6.topic: flakes":
-  - '**/flake.nix'
-  - lib/systems/flake-systems.nix
-  - nixos/modules/config/nix-flakes.nix
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - '**/flake.nix'
+        - lib/systems/flake-systems.nix
+        - nixos/modules/config/nix-flakes.nix
 
 "6.topic: GNOME":
-  - doc/languages-frameworks/gnome.section.md
-  - nixos/modules/services/desktops/gnome/**/*
-  - nixos/modules/services/x11/desktop-managers/gnome.nix
-  - nixos/tests/gnome-xorg.nix
-  - nixos/tests/gnome.nix
-  - pkgs/desktops/gnome/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/gnome.section.md
+        - nixos/modules/services/desktops/gnome/**/*
+        - nixos/modules/services/x11/desktop-managers/gnome.nix
+        - nixos/tests/gnome-xorg.nix
+        - nixos/tests/gnome.nix
+        - pkgs/desktops/gnome/**/*
 
 "6.topic: golang":
-  - doc/languages-frameworks/go.section.md
-  - pkgs/build-support/go/**/*
-  - pkgs/development/compilers/go/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/go.section.md
+        - pkgs/build-support/go/**/*
+        - pkgs/development/compilers/go/**/*
 
 "6.topic: haskell":
-  - doc/languages-frameworks/haskell.section.md
-  - maintainers/scripts/haskell/**/*
-  - pkgs/development/compilers/ghc/**/*
-  - pkgs/development/haskell-modules/**/*
-  - pkgs/development/tools/haskell/**/*
-  - pkgs/test/haskell/**/*
-  - pkgs/top-level/haskell-packages.nix
-  - pkgs/top-level/release-haskell.nix
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/haskell.section.md
+        - maintainers/scripts/haskell/**/*
+        - pkgs/development/compilers/ghc/**/*
+        - pkgs/development/haskell-modules/**/*
+        - pkgs/development/tools/haskell/**/*
+        - pkgs/test/haskell/**/*
+        - pkgs/top-level/haskell-packages.nix
+        - pkgs/top-level/release-haskell.nix
 
 "6.topic: jupyter":
-  - pkgs/development/python-modules/jupyter*/**/*
-  - pkgs/development/python-modules/mkdocs-jupyter/*
-  - nixos/modules/services/development/jupyter/**/*
-  - pkgs/applications/editors/jupyter-kernels/**/*
-  - pkgs/applications/editors/jupyter/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - pkgs/development/python-modules/jupyter*/**/*
+        - pkgs/development/python-modules/mkdocs-jupyter/*
+        - nixos/modules/services/development/jupyter/**/*
+        - pkgs/applications/editors/jupyter-kernels/**/*
+        - pkgs/applications/editors/jupyter/**/*
 
 "6.topic: kernel":
-  - pkgs/build-support/kernel/**/*
-  - pkgs/os-specific/linux/kernel/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - pkgs/build-support/kernel/**/*
+        - pkgs/os-specific/linux/kernel/**/*
 
 "6.topic: lib":
-  - lib/**
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - lib/**
 
 "6.topic: lua":
-  - pkgs/development/interpreters/lua-5/**/*
-  - pkgs/development/interpreters/luajit/**/*
-  - pkgs/development/lua-modules/**/*
-  - pkgs/top-level/lua-packages.nix
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - pkgs/development/interpreters/lua-5/**/*
+        - pkgs/development/interpreters/luajit/**/*
+        - pkgs/development/lua-modules/**/*
+        - pkgs/top-level/lua-packages.nix
 
 "6.topic: Lumina DE":
-  - nixos/modules/services/x11/desktop-managers/lumina.nix
-  - pkgs/desktops/lumina/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - nixos/modules/services/x11/desktop-managers/lumina.nix
+        - pkgs/desktops/lumina/**/*
 
 "6.topic: LXQt":
-  - nixos/modules/services/x11/desktop-managers/lxqt.nix
-  - pkgs/desktops/lxqt/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - nixos/modules/services/x11/desktop-managers/lxqt.nix
+        - pkgs/desktops/lxqt/**/*
 
 "6.topic: mate":
-  - nixos/modules/services/x11/desktop-managers/mate.nix
-  - nixos/tests/mate.nix
-  - pkgs/desktops/mate/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - nixos/modules/services/x11/desktop-managers/mate.nix
+        - nixos/tests/mate.nix
+        - pkgs/desktops/mate/**/*
 
 "6.topic: module system":
-  - lib/modules.nix
-  - lib/types.nix
-  - lib/options.nix
-  - lib/tests/modules.sh
-  - lib/tests/modules/**
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - lib/modules.nix
+        - lib/types.nix
+        - lib/options.nix
+        - lib/tests/modules.sh
+        - lib/tests/modules/**
 
 "6.topic: nixos":
-  - nixos/**/*
-  - pkgs/os-specific/linux/nixos-rebuild/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - nixos/**/*
+        - pkgs/os-specific/linux/nixos-rebuild/**/*
 
 "6.topic: nim":
-  - doc/languages-frameworks/nim.section.md
-  - pkgs/development/compilers/nim/*
-  - pkgs/development/nim-packages/**/*
-  - pkgs/top-level/nim-packages.nix
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/nim.section.md
+        - pkgs/development/compilers/nim/*
+        - pkgs/development/nim-packages/**/*
+        - pkgs/top-level/nim-packages.nix
 
 "6.topic: nodejs":
-  - doc/languages-frameworks/javascript.section.md
-  - pkgs/build-support/node/**/*
-  - pkgs/development/node-packages/**/*
-  - pkgs/development/tools/yarn/*
-  - pkgs/development/tools/yarn2nix-moretea/**/*
-  - pkgs/development/web/nodejs/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/javascript.section.md
+        - pkgs/build-support/node/**/*
+        - pkgs/development/node-packages/**/*
+        - pkgs/development/tools/yarn/*
+        - pkgs/development/tools/yarn2nix-moretea/**/*
+        - pkgs/development/web/nodejs/*
 
 "6.topic: ocaml":
-  - doc/languages-frameworks/ocaml.section.md
-  - pkgs/development/compilers/ocaml/**/*
-  - pkgs/development/compilers/reason/**/*
-  - pkgs/development/ocaml-modules/**/*
-  - pkgs/development/tools/ocaml/**/*
-  - pkgs/top-level/ocaml-packages.nix
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/ocaml.section.md
+        - pkgs/development/compilers/ocaml/**/*
+        - pkgs/development/compilers/reason/**/*
+        - pkgs/development/ocaml-modules/**/*
+        - pkgs/development/tools/ocaml/**/*
+        - pkgs/top-level/ocaml-packages.nix
 
 "6.topic: pantheon":
-  - nixos/modules/services/desktops/pantheon/**/*
-  - nixos/modules/services/x11/desktop-managers/pantheon.nix
-  - nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
-  - nixos/tests/pantheon.nix
-  - pkgs/desktops/pantheon/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - nixos/modules/services/desktops/pantheon/**/*
+        - nixos/modules/services/x11/desktop-managers/pantheon.nix
+        - nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
+        - nixos/tests/pantheon.nix
+        - pkgs/desktops/pantheon/**/*
+
+"6.topic: php":
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/php.section.md
+        - pkgs/build-support/php/**/*
+        - pkgs/development/interpreters/php/*
+        - pkgs/development/php-packages/**/*
+        - pkgs/test/php/default.nix
+        - pkgs/top-level/php-packages.nix
 
 "6.topic: policy discussion":
-  - .github/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - .github/**/*
 
 "6.topic: printing":
-  - nixos/modules/services/printing/cupsd.nix
-  - pkgs/misc/cups/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - nixos/modules/services/printing/cupsd.nix
+        - pkgs/misc/cups/**/*
 
 "6.topic: python":
-  - doc/languages-frameworks/python.section.md
-  - pkgs/development/interpreters/python/**/*
-  - pkgs/development/python-modules/**/*
-  - pkgs/top-level/python-packages.nix
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/python.section.md
+        - pkgs/development/interpreters/python/**/*
+        - pkgs/development/python-modules/**/*
+        - pkgs/top-level/python-packages.nix
 
 "6.topic: qt/kde":
-  - doc/languages-frameworks/qt.section.md
-  - nixos/modules/services/x11/desktop-managers/plasma5.nix
-  - nixos/tests/plasma5.nix
-  - pkgs/applications/kde/**/*
-  - pkgs/desktops/plasma-5/**/*
-  - pkgs/development/libraries/kde-frameworks/**/*
-  - pkgs/development/libraries/qt-5/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/qt.section.md
+        - nixos/modules/services/x11/desktop-managers/plasma5.nix
+        - nixos/tests/plasma5.nix
+        - pkgs/applications/kde/**/*
+        - pkgs/desktops/plasma-5/**/*
+        - pkgs/development/libraries/kde-frameworks/**/*
+        - pkgs/development/libraries/qt-5/**/*
 
 "6.topic: ruby":
-  - doc/languages-frameworks/ruby.section.md
-  - pkgs/development/interpreters/ruby/**/*
-  - pkgs/development/ruby-modules/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/ruby.section.md
+        - pkgs/development/interpreters/ruby/**/*
+        - pkgs/development/ruby-modules/**/*
 
 "6.topic: rust":
-  - doc/languages-frameworks/rust.section.md
-  - pkgs/build-support/rust/**/*
-  - pkgs/development/compilers/rust/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/rust.section.md
+        - pkgs/build-support/rust/**/*
+        - pkgs/development/compilers/rust/**/*
 
 "6.topic: stdenv":
-  - pkgs/stdenv/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - pkgs/stdenv/**/*
 
 "6.topic: steam":
-  - pkgs/games/steam/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - pkgs/games/steam/**/*
 
 "6.topic: systemd":
-  - pkgs/os-specific/linux/systemd/**/*
-  - nixos/modules/system/boot/systemd*/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - pkgs/os-specific/linux/systemd/**/*
+        - nixos/modules/system/boot/systemd*/**/*
 
 "6.topic: TeX":
-  - doc/languages-frameworks/texlive.section.md
-  - pkgs/test/texlive/**
-  - pkgs/tools/typesetting/tex/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/texlive.section.md
+        - pkgs/test/texlive/**
+        - pkgs/tools/typesetting/tex/**/*
+
+"6.topic: testing":
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        # NOTE: Let's keep the scope limited to test frameworks that are
+        #       *developed in this repo*;
+        #       - not individual tests
+        #       - not packages for test frameworks
+        - nixos/lib/testing/**
+        - nixos/lib/test-driver/**
+        - nixos/tests/nixos-test-driver/**
+        - nixos/lib/testing-python.nix      # legacy
+        - nixos/tests/make-test-python.nix  # legacy
+        # lib/debug.nix has a test framework (runTests) but it's not the main focus
 
 "6.topic: vim":
-  - doc/languages-frameworks/vim.section.md
-  - pkgs/applications/editors/vim/**/*
-  - pkgs/applications/editors/vim/plugins/**/*
-  - nixos/modules/programs/neovim.nix
-  - pkgs/applications/editors/neovim/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/languages-frameworks/vim.section.md
+        - pkgs/applications/editors/vim/**/*
+        - pkgs/applications/editors/vim/plugins/**/*
+        - nixos/modules/programs/neovim.nix
+        - pkgs/applications/editors/neovim/**/*
 
 "6.topic: vscode":
-  - pkgs/applications/editors/vscode/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - pkgs/applications/editors/vscode/**/*
 
 "6.topic: xfce":
-  - nixos/doc/manual/configuration/xfce.xml
-  - nixos/modules/services/x11/desktop-managers/xfce.nix
-  - nixos/tests/xfce.nix
-  - pkgs/desktops/xfce/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - nixos/doc/manual/configuration/xfce.xml
+        - nixos/modules/services/x11/desktop-managers/xfce.nix
+        - nixos/tests/xfce.nix
+        - pkgs/desktops/xfce/**/*
 
 "6.topic: zig":
-  - pkgs/development/compilers/zig/**/*
-  - doc/hooks/zig.section.md
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - pkgs/development/compilers/zig/**/*
+        - doc/hooks/zig.section.md
 
 "8.has: changelog":
-  - nixos/doc/manual/release-notes/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - nixos/doc/manual/release-notes/**/*
 
 "8.has: documentation":
-  - doc/**/*
-  - nixos/doc/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - doc/**/*
+        - nixos/doc/**/*
 
 "8.has: module (update)":
-  - nixos/modules/**/*
+  - any:
+    - changed-files:
+      - any-glob-to-any-file:
+        - nixos/modules/**/*
diff --git a/nixpkgs/.github/workflows/backport.yml b/nixpkgs/.github/workflows/backport.yml
index c49eeac5a20b..3a93eb4fd624 100644
--- a/nixpkgs/.github/workflows/backport.yml
+++ b/nixpkgs/.github/workflows/backport.yml
@@ -20,11 +20,11 @@ jobs:
     if: github.repository_owner == 'NixOS' && github.event.pull_request.merged == true && (github.event_name != 'labeled' || startsWith('backport', github.event.label.name))
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
         with:
           ref: ${{ github.event.pull_request.head.sha }}
       - name: Create backport PRs
-        uses: korthout/backport-action@08bafb375e6e9a9a2b53a744b987e5d81a133191 # v2.1.1
+        uses: korthout/backport-action@e8161d6a0dbfa2651b7daa76cbb75bc7c925bbf3 # v2.4.1
         with:
           # Config README: https://github.com/korthout/backport-action#backport-action
           copy_labels_pattern: 'severity:\ssecurity'
diff --git a/nixpkgs/.github/workflows/basic-eval.yml b/nixpkgs/.github/workflows/basic-eval.yml
index a0cd990ebc73..9008ca208e17 100644
--- a/nixpkgs/.github/workflows/basic-eval.yml
+++ b/nixpkgs/.github/workflows/basic-eval.yml
@@ -18,8 +18,8 @@ jobs:
     runs-on: ubuntu-latest
     # we don't limit this action to only NixOS repo since the checks are cheap and useful developer feedback
     steps:
-    - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
-    - uses: cachix/install-nix-action@6004951b182f8860210c8d6f0d808ec5b1a33d28 # v25
+    - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
+    - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
     - uses: cachix/cachix-action@18cf96c7c98e048e10a83abd92116114cd8504be # v14
       with:
         # This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
diff --git a/nixpkgs/.github/workflows/check-by-name.yml b/nixpkgs/.github/workflows/check-by-name.yml
index 94875e67b649..bf6acf3701da 100644
--- a/nixpkgs/.github/workflows/check-by-name.yml
+++ b/nixpkgs/.github/workflows/check-by-name.yml
@@ -87,7 +87,7 @@ jobs:
             exit 1
           fi
           echo "mergedSha=$mergedSha" >> "$GITHUB_ENV"
-      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
         with:
           # pull_request_target checks out the base branch by default
           ref: ${{ env.mergedSha }}
@@ -98,7 +98,7 @@ jobs:
           base=$(mktemp -d)
           git worktree add "$base" "$(git rev-parse HEAD^1)"
           echo "base=$base" >> "$GITHUB_ENV"
-      - uses: cachix/install-nix-action@6004951b182f8860210c8d6f0d808ec5b1a33d28 # v25
+      - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
       - name: Fetching the pinned tool
         # Update the pinned version using pkgs/test/nixpkgs-check-by-name/scripts/update-pinned-tool.sh
         run: |
diff --git a/nixpkgs/.github/workflows/check-maintainers-sorted.yaml b/nixpkgs/.github/workflows/check-maintainers-sorted.yaml
index 074644153204..eb7d22ea66bb 100644
--- a/nixpkgs/.github/workflows/check-maintainers-sorted.yaml
+++ b/nixpkgs/.github/workflows/check-maintainers-sorted.yaml
@@ -12,11 +12,11 @@ jobs:
     runs-on: ubuntu-latest
     if: github.repository_owner == 'NixOS'
     steps:
-      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
         with:
           # pull_request_target checks out the base branch by default
           ref: refs/pull/${{ github.event.pull_request.number }}/merge
-      - uses: cachix/install-nix-action@6004951b182f8860210c8d6f0d808ec5b1a33d28 # v25
+      - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
diff --git a/nixpkgs/.github/workflows/editorconfig.yml b/nixpkgs/.github/workflows/editorconfig.yml
index 6b151d45be2a..168e5bccaea4 100644
--- a/nixpkgs/.github/workflows/editorconfig.yml
+++ b/nixpkgs/.github/workflows/editorconfig.yml
@@ -24,11 +24,11 @@ jobs:
     - name: print list of changed files
       run: |
         cat "$HOME/changed_files"
-    - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+    - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
       with:
         # pull_request_target checks out the base branch by default
         ref: refs/pull/${{ github.event.pull_request.number }}/merge
-    - uses: cachix/install-nix-action@6004951b182f8860210c8d6f0d808ec5b1a33d28 # v25
+    - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
       with:
         # nixpkgs commit is pinned so that it doesn't break
         # editorconfig-checker 2.4.0
diff --git a/nixpkgs/.github/workflows/labels.yml b/nixpkgs/.github/workflows/labels.yml
index 4dc690e88bbc..2912e64c115b 100644
--- a/nixpkgs/.github/workflows/labels.yml
+++ b/nixpkgs/.github/workflows/labels.yml
@@ -18,7 +18,7 @@ jobs:
     runs-on: ubuntu-latest
     if: "github.repository_owner == 'NixOS' && !contains(github.event.pull_request.title, '[skip treewide]')"
     steps:
-    - uses: actions/labeler@ac9175f8a1f3625fd0d4fb234536d26811351594 # v4.3.0
+    - uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0
       with:
         repo-token: ${{ secrets.GITHUB_TOKEN }}
         sync-labels: true
diff --git a/nixpkgs/.github/workflows/manual-nixos.yml b/nixpkgs/.github/workflows/manual-nixos.yml
index c9c2451a9df2..545f0c95c47b 100644
--- a/nixpkgs/.github/workflows/manual-nixos.yml
+++ b/nixpkgs/.github/workflows/manual-nixos.yml
@@ -14,11 +14,11 @@ jobs:
     runs-on: ubuntu-latest
     if: github.repository_owner == 'NixOS'
     steps:
-      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
         with:
           # pull_request_target checks out the base branch by default
           ref: refs/pull/${{ github.event.pull_request.number }}/merge
-      - uses: cachix/install-nix-action@6004951b182f8860210c8d6f0d808ec5b1a33d28 # v25
+      - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
diff --git a/nixpkgs/.github/workflows/manual-nixpkgs.yml b/nixpkgs/.github/workflows/manual-nixpkgs.yml
index d9a425a494ab..9d675c385feb 100644
--- a/nixpkgs/.github/workflows/manual-nixpkgs.yml
+++ b/nixpkgs/.github/workflows/manual-nixpkgs.yml
@@ -15,11 +15,11 @@ jobs:
     runs-on: ubuntu-latest
     if: github.repository_owner == 'NixOS'
     steps:
-      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
         with:
           # pull_request_target checks out the base branch by default
           ref: refs/pull/${{ github.event.pull_request.number }}/merge
-      - uses: cachix/install-nix-action@6004951b182f8860210c8d6f0d808ec5b1a33d28 # v25
+      - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
diff --git a/nixpkgs/.github/workflows/nix-parse.yml b/nixpkgs/.github/workflows/nix-parse.yml
index e625cca93c5c..da2e942414e2 100644
--- a/nixpkgs/.github/workflows/nix-parse.yml
+++ b/nixpkgs/.github/workflows/nix-parse.yml
@@ -24,12 +24,12 @@ jobs:
         if [[ -s "$HOME/changed_files" ]]; then
           echo "CHANGED_FILES=$HOME/changed_files" > "$GITHUB_ENV"
         fi
-    - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+    - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
       with:
         # pull_request_target checks out the base branch by default
         ref: refs/pull/${{ github.event.pull_request.number }}/merge
       if: ${{ env.CHANGED_FILES && env.CHANGED_FILES != '' }}
-    - uses: cachix/install-nix-action@6004951b182f8860210c8d6f0d808ec5b1a33d28 # v25
+    - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
       with:
         nix_path: nixpkgs=channel:nixpkgs-unstable
     - name: Parse all changed or added nix files
diff --git a/nixpkgs/.github/workflows/periodic-merge-24h.yml b/nixpkgs/.github/workflows/periodic-merge-24h.yml
index bd7aadfbade1..6adada59c5a5 100644
--- a/nixpkgs/.github/workflows/periodic-merge-24h.yml
+++ b/nixpkgs/.github/workflows/periodic-merge-24h.yml
@@ -41,7 +41,7 @@ jobs:
             into: staging-23.11
     name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
     steps:
-      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
 
       - name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
         uses: devmasx/merge-branch@854d3ac71ed1e9deb668e0074781b81fdd6e771f # 1.4.0
diff --git a/nixpkgs/.github/workflows/periodic-merge-6h.yml b/nixpkgs/.github/workflows/periodic-merge-6h.yml
index 61a489ad7156..6f188ee28d17 100644
--- a/nixpkgs/.github/workflows/periodic-merge-6h.yml
+++ b/nixpkgs/.github/workflows/periodic-merge-6h.yml
@@ -39,7 +39,7 @@ jobs:
             into: staging
     name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
     steps:
-      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
 
       - name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
         uses: devmasx/merge-branch@854d3ac71ed1e9deb668e0074781b81fdd6e771f # 1.4.0
diff --git a/nixpkgs/.github/workflows/update-terraform-providers.yml b/nixpkgs/.github/workflows/update-terraform-providers.yml
index 77486c722287..9b7ec5cc59b0 100644
--- a/nixpkgs/.github/workflows/update-terraform-providers.yml
+++ b/nixpkgs/.github/workflows/update-terraform-providers.yml
@@ -16,8 +16,8 @@ jobs:
     if: github.repository_owner == 'NixOS' && github.ref == 'refs/heads/master' # ensure workflow_dispatch only runs on master
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
-      - uses: cachix/install-nix-action@6004951b182f8860210c8d6f0d808ec5b1a33d28 # v25
+      - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
+      - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
         with:
           nix_path: nixpkgs=channel:nixpkgs-unstable
       - name: setup
@@ -46,7 +46,7 @@ jobs:
         run: |
           git clean -f
       - name: create PR
-        uses: peter-evans/create-pull-request@a4f52f8033a6168103c2538976c07b467e8163bc # v6.0.1
+        uses: peter-evans/create-pull-request@70a41aba780001da0a30141984ae2a0c95d8704e # v6.0.2
         with:
           body: |
             Automatic update by [update-terraform-providers](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/update-terraform-providers.yml) action.
diff --git a/nixpkgs/.gitignore b/nixpkgs/.gitignore
index e73debc369c5..2753c9073832 100644
--- a/nixpkgs/.gitignore
+++ b/nixpkgs/.gitignore
@@ -17,7 +17,6 @@ tags
 /doc/NEWS.txt
 /doc/manual.html
 /doc/manual.pdf
-/result
 /source/
 .version-suffix
 
diff --git a/nixpkgs/README.md b/nixpkgs/README.md
index 5e616eff2f52..481ada0565f8 100644
--- a/nixpkgs/README.md
+++ b/nixpkgs/README.md
@@ -1,9 +1,10 @@
 <p align="center">
-  <a href="https://nixos.org#gh-light-mode-only">
-    <img src="https://raw.githubusercontent.com/NixOS/nixos-homepage/master/logo/nixos-hires.png" width="500px" alt="NixOS logo"/>
-  </a>
-  <a href="https://nixos.org#gh-dark-mode-only">
-    <img src="https://raw.githubusercontent.com/NixOS/nixos-artwork/master/logo/nixos-white.png" width="500px" alt="NixOS logo"/>
+  <a href="https://nixos.org">
+    <picture>
+      <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/NixOS/nixos-homepage/master/logo/nixos-hires.png">
+      <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/NixOS/nixos-artwork/master/logo/nixos-white.png">
+      <img src="https://raw.githubusercontent.com/NixOS/nixos-homepage/master/logo/nixos-hires.png" width="500px" alt="NixOS logo">
+    </picture>
   </a>
 </p>
 
diff --git a/nixpkgs/doc/anchor-use.js b/nixpkgs/doc/anchor-use.js
new file mode 100644
index 000000000000..a45c4e2be68d
--- /dev/null
+++ b/nixpkgs/doc/anchor-use.js
@@ -0,0 +1,3 @@
+document.addEventListener('DOMContentLoaded', function(event) {
+  anchors.add('h1[id]:not(div.note h1, div.warning h1, div.tip h1, div.caution h1, div.important h1), h2[id]:not(div.note h2, div.warning h2, div.tip h2, div.caution h2, div.important h2), h3[id]:not(div.note h3, div.warning h3, div.tip h3, div.caution h3, div.important h3), h4[id]:not(div.note h4, div.warning h4, div.tip h4, div.caution h4, div.important h4), h5[id]:not(div.note h5, div.warning h5, div.tip h5, div.caution h5, div.important h5), h6[id]:not(div.note h6, div.warning h6, div.tip h6, div.caution h6, div.important h6)');
+});
diff --git a/nixpkgs/doc/anchor.min.js b/nixpkgs/doc/anchor.min.js
new file mode 100644
index 000000000000..00f80c058f6d
--- /dev/null
+++ b/nixpkgs/doc/anchor.min.js
@@ -0,0 +1,9 @@
+// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
+//
+// AnchorJS - v5.0.0 - 2023-01-18
+// https://www.bryanbraun.com/anchorjs/
+// Copyright (c) 2023 Bryan Braun; Licensed MIT
+//
+// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat
+!function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(globalThis,function(){"use strict";return function(A){function u(A){A.icon=Object.prototype.hasOwnProperty.call(A,"icon")?A.icon:"",A.visible=Object.prototype.hasOwnProperty.call(A,"visible")?A.visible:"hover",A.placement=Object.prototype.hasOwnProperty.call(A,"placement")?A.placement:"right",A.ariaLabel=Object.prototype.hasOwnProperty.call(A,"ariaLabel")?A.ariaLabel:"Anchor",A.class=Object.prototype.hasOwnProperty.call(A,"class")?A.class:"",A.base=Object.prototype.hasOwnProperty.call(A,"base")?A.base:"",A.truncate=Object.prototype.hasOwnProperty.call(A,"truncate")?Math.floor(A.truncate):64,A.titleText=Object.prototype.hasOwnProperty.call(A,"titleText")?A.titleText:""}function d(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new TypeError("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],u(this.options),this.add=function(A){var e,t,o,i,n,s,a,r,l,c,h,p=[];if(u(this.options),0!==(e=d(A=A||"h2, h3, h4, h5, h6")).length){for(null===document.head.querySelector("style.anchorjs")&&((A=document.createElement("style")).className="anchorjs",A.appendChild(document.createTextNode("")),void 0===(h=document.head.querySelector('[rel="stylesheet"],style'))?document.head.appendChild(A):document.head.insertBefore(A,h),A.sheet.insertRule(".anchorjs-link{opacity:0;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}",A.sheet.cssRules.length),A.sheet.insertRule(":hover>.anchorjs-link,.anchorjs-link:focus{opacity:1}",A.sheet.cssRules.length),A.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",A.sheet.cssRules.length),A.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',A.sheet.cssRules.length)),h=document.querySelectorAll("[id]"),t=[].map.call(h,function(A){return A.id}),i=0;i<e.length;i++)if(this.hasAnchorJSLink(e[i]))p.push(i);else{if(e[i].hasAttribute("id"))o=e[i].getAttribute("id");else if(e[i].hasAttribute("data-anchor-id"))o=e[i].getAttribute("data-anchor-id");else{for(r=a=this.urlify(e[i].textContent),s=0;n=t.indexOf(r=void 0!==n?a+"-"+s:r),s+=1,-1!==n;);n=void 0,t.push(r),e[i].setAttribute("id",r),o=r}(l=document.createElement("a")).className="anchorjs-link "+this.options.class,l.setAttribute("aria-label",this.options.ariaLabel),l.setAttribute("data-anchorjs-icon",this.options.icon),this.options.titleText&&(l.title=this.options.titleText),c=document.querySelector("base")?window.location.pathname+window.location.search:"",c=this.options.base||c,l.href=c+"#"+o,"always"===this.options.visible&&(l.style.opacity="1"),""===this.options.icon&&(l.style.font="1em/1 anchorjs-icons","left"===this.options.placement)&&(l.style.lineHeight="inherit"),"left"===this.options.placement?(l.style.position="absolute",l.style.marginLeft="-1.25em",l.style.paddingRight=".25em",l.style.paddingLeft=".25em",e[i].insertBefore(l,e[i].firstChild)):(l.style.marginLeft=".1875em",l.style.paddingRight=".1875em",l.style.paddingLeft=".1875em",e[i].appendChild(l))}for(i=0;i<p.length;i++)e.splice(p[i]-i,1);this.elements=this.elements.concat(e)}return this},this.remove=function(A){for(var e,t,o=d(A),i=0;i<o.length;i++)(t=o[i].querySelector(".anchorjs-link"))&&(-1!==(e=this.elements.indexOf(o[i]))&&this.elements.splice(e,1),o[i].removeChild(t));return this},this.removeAll=function(){this.remove(this.elements)},this.urlify=function(A){var e=document.createElement("textarea");return e.innerHTML=A,A=e.value,this.options.truncate||u(this.options),A.trim().replace(/'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}});
+// @license-end
diff --git a/nixpkgs/doc/build-helpers/fetchers.chapter.md b/nixpkgs/doc/build-helpers/fetchers.chapter.md
index ad2378fd0e74..b326f189d50e 100644
--- a/nixpkgs/doc/build-helpers/fetchers.chapter.md
+++ b/nixpkgs/doc/build-helpers/fetchers.chapter.md
@@ -262,6 +262,10 @@ or
 
 ***
 ```
+
+This function should only be used by non-redistributable software with an unfree license that we need to require the user to download manually.
+It produces packages that cannot be built automatically.
+
 ## `fetchtorrent` {#fetchtorrent}
 
 `fetchtorrent` expects two arguments. `url` which can either be a Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file. It can also take a `config` argument which will craft a `settings.json` configuration file and give it to `transmission`, the underlying program that is performing the fetch. The available config options for `transmission` can be found [here](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md#options)
diff --git a/nixpkgs/doc/build-helpers/images.md b/nixpkgs/doc/build-helpers/images.md
index 5596784bfa48..033891fcef48 100644
--- a/nixpkgs/doc/build-helpers/images.md
+++ b/nixpkgs/doc/build-helpers/images.md
@@ -6,7 +6,6 @@ This chapter describes tools for creating various types of images.
 images/appimagetools.section.md
 images/dockertools.section.md
 images/ocitools.section.md
-images/snaptools.section.md
 images/portableservice.section.md
 images/makediskimage.section.md
 images/binarycache.section.md
diff --git a/nixpkgs/doc/build-helpers/images/snaptools.section.md b/nixpkgs/doc/build-helpers/images/snaptools.section.md
deleted file mode 100644
index 259fa1b06180..000000000000
--- a/nixpkgs/doc/build-helpers/images/snaptools.section.md
+++ /dev/null
@@ -1,71 +0,0 @@
-# pkgs.snapTools {#sec-pkgs-snapTools}
-
-`pkgs.snapTools` is a set of functions for creating Snapcraft images. Snap and Snapcraft is not used to perform these operations.
-
-## The makeSnap Function {#ssec-pkgs-snapTools-makeSnap-signature}
-
-`makeSnap` takes a single named argument, `meta`. This argument mirrors [the upstream `snap.yaml` format](https://docs.snapcraft.io/snap-format) exactly.
-
-The `base` should not be specified, as `makeSnap` will force set it.
-
-Currently, `makeSnap` does not support creating GUI stubs.
-
-## Build a Hello World Snap {#ssec-pkgs-snapTools-build-a-snap-hello}
-
-The following expression packages GNU Hello as a Snapcraft snap.
-
-``` {#ex-snapTools-buildSnap-hello .nix}
-let
-  inherit (import <nixpkgs> { }) snapTools hello;
-in snapTools.makeSnap {
-  meta = {
-    name = "hello";
-    summary = hello.meta.description;
-    description = hello.meta.longDescription;
-    architectures = [ "amd64" ];
-    confinement = "strict";
-    apps.hello.command = "${hello}/bin/hello";
-  };
-}
-```
-
-`nix-build` this expression and install it with `snap install ./result --dangerous`. `hello` will now be the Snapcraft version of the package.
-
-## Build a Graphical Snap {#ssec-pkgs-snapTools-build-a-snap-firefox}
-
-Graphical programs require many more integrations with the host. This example uses Firefox as an example because it is one of the most complicated programs we could package.
-
-``` {#ex-snapTools-buildSnap-firefox .nix}
-let
-  inherit (import <nixpkgs> { }) snapTools firefox;
-in snapTools.makeSnap {
-  meta = {
-    name = "nix-example-firefox";
-    summary = firefox.meta.description;
-    architectures = [ "amd64" ];
-    apps.nix-example-firefox = {
-      command = "${firefox}/bin/firefox";
-      plugs = [
-        "pulseaudio"
-        "camera"
-        "browser-support"
-        "avahi-observe"
-        "cups-control"
-        "desktop"
-        "desktop-legacy"
-        "gsettings"
-        "home"
-        "network"
-        "mount-observe"
-        "removable-media"
-        "x11"
-      ];
-    };
-    confinement = "strict";
-  };
-}
-```
-
-`nix-build` this expression and install it with `snap install ./result --dangerous`. `nix-example-firefox` will now be the Snapcraft version of the Firefox package.
-
-The specific meaning behind plugs can be looked up in the [Snapcraft interface documentation](https://docs.snapcraft.io/supported-interfaces).
diff --git a/nixpkgs/doc/build-helpers/trivial-build-helpers.chapter.md b/nixpkgs/doc/build-helpers/trivial-build-helpers.chapter.md
index 384e25035060..6d14db639938 100644
--- a/nixpkgs/doc/build-helpers/trivial-build-helpers.chapter.md
+++ b/nixpkgs/doc/build-helpers/trivial-build-helpers.chapter.md
@@ -7,7 +7,9 @@ Like [`stdenv.mkDerivation`](#sec-using-stdenv), each of these build helpers cre
 
 `runCommand :: String -> AttrSet -> String -> Derivation`
 
-`runCommand name drvAttrs buildCommand` returns a derivation that is built by running the specified shell commands.
+The result of `runCommand name drvAttrs buildCommand` is a derivation that is built by running the specified shell commands.
+
+By default `runCommand` runs in a stdenv with no compiler environment, whereas [`runCommandCC`](#trivial-builder-runCommandCC) uses the default stdenv, `pkgs.stdenv`.
 
 `name :: String`
 :   The name that Nix will append to the store path in the same way that `stdenv.mkDerivation` uses its `name` attribute.
@@ -92,6 +94,107 @@ writeShellScript "evaluate-my-file.sh" ''
 ```
 ::::
 
+### `makeDesktopItem` {#trivial-builder-makeDesktopItem}
+
+Write an [XDG desktop file](https://specifications.freedesktop.org/desktop-entry-spec/1.4/) to the Nix store.
+
+This function is usually used to add desktop items to a package through the `copyDesktopItems` hook.
+
+`makeDesktopItem` adheres to version 1.4 of the specification.
+
+#### Inputs {#trivial-builder-makeDesktopItem-inputs}
+
+`makeDesktopItem` takes an attribute set that accepts most values from the [XDG specification](https://specifications.freedesktop.org/desktop-entry-spec/1.4/ar01s06.html).
+
+All recognised keys from the specification are supported with the exception of the "Hidden" field. The keys are converted into camelCase format, but correspond 1:1 to their equivalent in the specification: `genericName`, `noDisplay`, `comment`, `icon`, `onlyShowIn`, `notShowIn`, `dbusActivatable`, `tryExec`, `exec`, `path`, `terminal`, `mimeTypes`, `categories`, `implements`, `keywords`, `startupNotify`, `startupWMClass`, `url`, `prefersNonDefaultGPU`.
+
+The "Version" field is hardcoded to the version `makeDesktopItem` currently adheres to.
+
+The following fields are either required, are of a different type than in the specification, carry specific default values, or are additional fields supported by `makeDesktopItem`:
+
+`name` (String)
+
+: The name of the desktop file in the Nix store.
+
+`type` (String; _optional_)
+
+: Default value: `"Application"`
+
+`desktopName` (String)
+
+: Corresponds to the "Name" field of the specification.
+
+`actions` (List of Attribute set; _optional_)
+
+: A list of attribute sets {name, exec?, icon?}
+
+`extraConfig` (Attribute set; _optional_)
+
+: Additional key/value pairs to be added verbatim to the desktop file. Attributes need to be prefixed with 'X-'.
+
+#### Examples {#trivial-builder-makeDesktopItem-examples}
+
+::: {.example #ex-makeDesktopItem}
+# Usage 1 of `makeDesktopItem`
+
+Write a desktop file `/nix/store/<store path>/my-program.desktop` to the Nix store.
+
+```nix
+{makeDesktopItem}:
+makeDesktopItem {
+  name = "my-program";
+  desktopName = "My Program";
+  genericName = "Video Player";
+  noDisplay = false;
+  comment = "Cool video player";
+  icon = "/path/to/icon";
+  onlyShowIn = [ "KDE" ];
+  dbusActivatable = true;
+  tryExec = "my-program";
+  exec = "my-program --someflag";
+  path = "/some/working/path";
+  terminal = false;
+  actions.example = {
+    name = "New Window";
+    exec = "my-program --new-window";
+    icon = "/some/icon";
+  };
+  mimeTypes = [ "video/mp4" ];
+  categories = [ "Utility" ];
+  implements = [ "org.my-program" ];
+  keywords = [ "Video" "Player" ];
+  startupNotify = false;
+  startupWMClass = "MyProgram";
+  prefersNonDefaultGPU = false;
+  extraConfig.X-SomeExtension = "somevalue";
+}
+```
+
+:::
+
+::: {.example #ex2-makeDesktopItem}
+# Usage 2 of `makeDesktopItem`
+
+Override the `hello` package to add a desktop item.
+
+```nix
+{ copyDesktopItems
+, hello
+, makeDesktopItem }:
+
+hello.overrideAttrs {
+  nativeBuildInputs = [ copyDesktopItems ];
+
+  desktopItems = [(makeDesktopItem {
+    name = "hello";
+    desktopName = "Hello";
+    exec = "hello";
+  })];
+}
+```
+
+:::
+
 ### `writeTextFile` {#trivial-builder-writeTextFile}
 
 Write a text file to the Nix store.
@@ -153,6 +256,12 @@ Write a text file to the Nix store.
 
   Default: `true`
 
+`derivationArgs` (Attribute set, _optional_)
+
+: Extra arguments to pass to the underlying call to `stdenv.mkDerivation`.
+
+  Default: `{}`
+
 The resulting store path will include some variation of the name, and it will be a file unless `destination` is used, in which case it will be a directory.
 
 ::: {.example #ex-writeTextFile}
@@ -549,14 +658,18 @@ This creates a derivation with a directory structure like the following:
 
 ## `writeReferencesToFile` {#trivial-builder-writeReferencesToFile}
 
-Writes the closure of transitive dependencies to a file.
+Deprecated. Use [`writeClosure`](#trivial-builder-writeClosure) instead.
+
+## `writeClosure` {#trivial-builder-writeClosure}
+
+Given a list of [store paths](https://nixos.org/manual/nix/stable/glossary#gloss-store-path) (or string-like expressions coercible to store paths), write their collective [closure](https://nixos.org/manual/nix/stable/glossary#gloss-closure) to a text file.
 
-This produces the equivalent of `nix-store -q --requisites`.
+The result is equivalent to the output of `nix-store -q --requisites`.
 
 For example,
 
 ```nix
-writeReferencesToFile (writeScriptBin "hi" ''${hello}/bin/hello'')
+writeClosure [ (writeScriptBin "hi" ''${hello}/bin/hello'') ]
 ```
 
 produces an output path `/nix/store/<hash>-runtime-deps` containing
diff --git a/nixpkgs/doc/default.nix b/nixpkgs/doc/default.nix
index bcbc20b9f983..76aba1a03eaf 100644
--- a/nixpkgs/doc/default.nix
+++ b/nixpkgs/doc/default.nix
@@ -122,16 +122,17 @@ in pkgs.stdenv.mkDerivation {
       ${pkgs.documentation-highlighter}/mono-blue.css \
       ${pkgs.documentation-highlighter}/loader.js
 
-    cp -t out ./overrides.css ./style.css
+    cp -t out ./style.css ./anchor.min.js ./anchor-use.js
 
     nixos-render-docs manual html \
       --manpage-urls ./manpage-urls.json \
       --revision ${pkgs.lib.trivial.revisionWithDefault (pkgs.rev or "master")} \
       --stylesheet style.css \
-      --stylesheet overrides.css \
       --stylesheet highlightjs/mono-blue.css \
       --script ./highlightjs/highlight.pack.js \
       --script ./highlightjs/loader.js \
+      --script ./anchor.min.js \
+      --script ./anchor-use.js \
       --toc-depth 1 \
       --section-toc-depth 1 \
       manual.md \
diff --git a/nixpkgs/doc/languages-frameworks/cuda.section.md b/nixpkgs/doc/languages-frameworks/cuda.section.md
index 11c86e375c61..09af824531a2 100644
--- a/nixpkgs/doc/languages-frameworks/cuda.section.md
+++ b/nixpkgs/doc/languages-frameworks/cuda.section.md
@@ -144,4 +144,4 @@ All new projects should use the CUDA redistributables available in [`cudaPackage
 | Find libraries | `configurePhase` | Missing dependency on a `dev` output | Add the missing dependency | The `dev` output typically contain CMake configuration files |
 | Find libraries | `buildPhase` or `patchelf` | Missing dependency on a `lib` or `static` output | Add the missing dependency | The `lib` or `static` output typically contain the libraries |
 
-In the scenario you are unable to run the resulting binary: this is arguably the most complicated as it could be any combination of the previous reasons. This type of failure typically occurs when a library attempts to load or open a library it depends on that it does not declare in its `DT_NEEDED` section. As a first step, ensure that dependencies are patched with [`cudaPackages.autoAddOpenGLRunpath`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages.autoAddOpenGLRunpath). Failing that, try running the application with [`nixGL`](https://github.com/guibou/nixGL) or a similar wrapper tool. If that works, it likely means that the application is attempting to load a library that is not in the `RPATH` or `RUNPATH` of the binary.
+In the scenario you are unable to run the resulting binary: this is arguably the most complicated as it could be any combination of the previous reasons. This type of failure typically occurs when a library attempts to load or open a library it depends on that it does not declare in its `DT_NEEDED` section. As a first step, ensure that dependencies are patched with [`cudaPackages.autoAddDriverRunpath`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages.autoAddDriverRunpath). Failing that, try running the application with [`nixGL`](https://github.com/guibou/nixGL) or a similar wrapper tool. If that works, it likely means that the application is attempting to load a library that is not in the `RPATH` or `RUNPATH` of the binary.
diff --git a/nixpkgs/doc/languages-frameworks/haskell.section.md b/nixpkgs/doc/languages-frameworks/haskell.section.md
index bec72cb3c0d3..5d7796b554de 100644
--- a/nixpkgs/doc/languages-frameworks/haskell.section.md
+++ b/nixpkgs/doc/languages-frameworks/haskell.section.md
@@ -113,7 +113,7 @@ Each of those compiler versions has a corresponding attribute set built using
 it. However, the non-standard package sets are not tested regularly and, as a
 result, contain fewer working packages. The corresponding package set for GHC
 9.4.5 is `haskell.packages.ghc945`. In fact `haskellPackages` is just an alias
-for `haskell.packages.ghc927`:
+for `haskell.packages.ghc964`:
 
 ```console
 $ nix-env -f '<nixpkgs>' -qaP -A haskell.packages.ghc927
@@ -1020,6 +1020,11 @@ failing because of e.g. a syntax error in the Haddock documentation.
 : Sets `doCheck` to `false` for `drv`. Useful if a package has a broken,
 flaky or otherwise problematic test suite breaking the build.
 
+`dontCheckIf condition drv`
+: Sets `doCheck` to `false` for `drv`, but only if `condition` applies.
+Otherwise it's a no-op. Useful to conditionally disable tests for a package
+without interfering with previous overrides or default values.
+
 <!-- Purposefully omitting the non-list variants here. They are a bit
 ugly, and we may want to deprecate them at some point. -->
 
diff --git a/nixpkgs/doc/languages-frameworks/java.section.md b/nixpkgs/doc/languages-frameworks/java.section.md
index 371bdf6323fb..0ce1442cca68 100644
--- a/nixpkgs/doc/languages-frameworks/java.section.md
+++ b/nixpkgs/doc/languages-frameworks/java.section.md
@@ -4,12 +4,31 @@ Ant-based Java packages are typically built from source as follows:
 
 ```nix
 stdenv.mkDerivation {
-  name = "...";
+  pname = "...";
+  version = "...";
+
   src = fetchurl { ... };
 
-  nativeBuildInputs = [ jdk ant ];
+  nativeBuildInputs = [
+    ant
+    jdk
+    stripJavaArchivesHook # removes timestamp metadata from jar files
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+    ant # build the project using ant
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
 
-  buildPhase = "ant";
+    # copy generated jar file(s) to an appropriate location in $out
+    install -Dm644 build/foo.jar $out/share/java/foo.jar
+
+    runHook postInstall
+  '';
 }
 ```
 
@@ -17,6 +36,10 @@ Note that `jdk` is an alias for the OpenJDK (self-built where available,
 or pre-built via Zulu). Platforms with OpenJDK not (yet) in Nixpkgs
 (`Aarch32`, `Aarch64`) point to the (unfree) `oraclejdk`.
 
+Also note that not using `stripJavaArchivesHook` will likely cause the
+generated `.jar` files to be non-deterministic, which is not optimal.
+Using it, however, does not always guarantee reproducibility.
+
 JAR files that are intended to be used by other packages should be
 installed in `$out/share/java`. JDKs have a stdenv setup hook that add
 any JARs in the `share/java` directories of the build inputs to the
diff --git a/nixpkgs/doc/languages-frameworks/javascript.section.md b/nixpkgs/doc/languages-frameworks/javascript.section.md
index c148070ad244..d553444d53b0 100644
--- a/nixpkgs/doc/languages-frameworks/javascript.section.md
+++ b/nixpkgs/doc/languages-frameworks/javascript.section.md
@@ -4,11 +4,14 @@
 
 This contains instructions on how to package javascript applications.
 
-The various tools available will be listed in the [tools-overview](#javascript-tools-overview). Some general principles for packaging will follow. Finally some tool specific instructions will be given.
+The various tools available will be listed in the [tools-overview](#javascript-tools-overview).
+Some general principles for packaging will follow.
+Finally some tool specific instructions will be given.
 
 ## Getting unstuck / finding code examples {#javascript-finding-examples}
 
-If you find you are lacking inspiration for packing javascript applications, the links below might prove useful. Searching online for prior art can be helpful if you are running into solved problems.
+If you find you are lacking inspiration for packaging javascript applications, the links below might prove useful.
+Searching online for prior art can be helpful if you are running into solved problems.
 
 ### Github {#javascript-finding-examples-github}
 
@@ -30,17 +33,23 @@ The following principles are given in order of importance with potential excepti
 
 It is often not documented which node version is used upstream, but if it is, try to use the same version when packaging.
 
-This can be a problem if upstream is using the latest and greatest and you are trying to use an earlier version of node. Some cryptic errors regarding V8 may appear.
+This can be a problem if upstream is using the latest and greatest and you are trying to use an earlier version of node.
+Some cryptic errors regarding V8 may appear.
 
 ### Try to respect the package manager originally used by upstream (and use the upstream lock file) {#javascript-upstream-package-manager}
 
-A lock file (package-lock.json, yarn.lock...) is supposed to make reproducible installations of node_modules for each tool.
+A lock file (package-lock.json, yarn.lock...) is supposed to make reproducible installations of `node_modules` for each tool.
 
-Guidelines of package managers, recommend to commit those lock files to the repos. If a particular lock file is present, it is a strong indication of which package manager is used upstream.
+Guidelines of package managers, recommend to commit those lock files to the repos.
+If a particular lock file is present, it is a strong indication of which package manager is used upstream.
 
-It's better to try to use a Nix tool that understand the lock file. Using a different tool might give you hard to understand error because different packages have been installed. An example of problems that could arise can be found [here](https://github.com/NixOS/nixpkgs/pull/126629). Upstream use NPM, but this is an attempt to package it with `yarn2nix` (that uses yarn.lock).
+It's better to try to use a Nix tool that understand the lock file.
+Using a different tool might give you hard to understand error because different packages have been installed.
+An example of problems that could arise can be found [here](https://github.com/NixOS/nixpkgs/pull/126629).
+Upstream use NPM, but this is an attempt to package it with `yarn2nix` (that uses yarn.lock).
 
-Using a different tool forces to commit a lock file to the repository. Those files are fairly large, so when packaging for nixpkgs, this approach does not scale well.
+Using a different tool forces to commit a lock file to the repository.
+Those files are fairly large, so when packaging for nixpkgs, this approach does not scale well.
 
 Exceptions to this rule are:
 
@@ -78,17 +87,23 @@ Exceptions to this rule are:
 
 ### Using node_modules directly {#javascript-using-node_modules}
 
-Each tool has an abstraction to just build the node_modules (dependencies) directory. You can always use the `stdenv.mkDerivation` with the node_modules to build the package (symlink the node_modules directory and then use the package build command). The node_modules abstraction can be also used to build some web framework frontends. For an example of this see how [plausible](https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/web-apps/plausible/default.nix) is built. `mkYarnModules` to make the derivation containing node_modules. Then when building the frontend you can just symlink the node_modules directory.
+Each tool has an abstraction to just build the node_modules (dependencies) directory.
+You can always use the `stdenv.mkDerivation` with the node_modules to build the package (symlink the node_modules directory and then use the package build command).
+The node_modules abstraction can be also used to build some web framework frontends.
+For an example of this see how [plausible](https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/web-apps/plausible/default.nix) is built. `mkYarnModules` to make the derivation containing node_modules.
+Then when building the frontend you can just symlink the node_modules directory.
 
 ## Javascript packages inside nixpkgs {#javascript-packages-nixpkgs}
 
 The [pkgs/development/node-packages](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages) folder contains a generated collection of [NPM packages](https://npmjs.com/) that can be installed with the Nix package manager.
 
-As a rule of thumb, the package set should only provide _end user_ software packages, such as command-line utilities. Libraries should only be added to the package set if there is a non-NPM package that requires it.
+As a rule of thumb, the package set should only provide _end user_ software packages, such as command-line utilities.
+Libraries should only be added to the package set if there is a non-NPM package that requires it.
 
 When it is desired to use NPM libraries in a development project, use the `node2nix` generator directly on the `package.json` configuration file of the project.
 
-The package set provides support for the official stable Node.js versions. The latest stable LTS release in `nodePackages`, as well as the latest stable current release in `nodePackages_latest`.
+The package set provides support for the official stable Node.js versions.
+The latest stable LTS release in `nodePackages`, as well as the latest stable current release in `nodePackages_latest`.
 
 If your package uses native addons, you need to examine what kind of native build system it uses. Here are some examples:
 
@@ -96,7 +111,8 @@ If your package uses native addons, you need to examine what kind of native buil
 - `node-gyp-builder`
 - `node-pre-gyp`
 
-After you have identified the correct system, you need to override your package expression while adding in build system as a build input. For example, `dat` requires `node-gyp-build`, so we override its expression in [pkgs/development/node-packages/overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/overrides.nix):
+After you have identified the correct system, you need to override your package expression while adding in build system as a build input.
+For example, `dat` requires `node-gyp-build`, so we override its expression in [pkgs/development/node-packages/overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/overrides.nix):
 
 ```nix
     dat = prev.dat.override (oldAttrs: {
@@ -159,7 +175,8 @@ git config --global url."https://github.com/".insteadOf git://github.com/
 
 ### buildNpmPackage {#javascript-buildNpmPackage}
 
-`buildNpmPackage` allows you to package npm-based projects in Nixpkgs without the use of an auto-generated dependencies file (as used in [node2nix](#javascript-node2nix)). It works by utilizing npm's cache functionality -- creating a reproducible cache that contains the dependencies of a project, and pointing npm to it.
+`buildNpmPackage` allows you to package npm-based projects in Nixpkgs without the use of an auto-generated dependencies file (as used in [node2nix](#javascript-node2nix)).
+It works by utilizing npm's cache functionality -- creating a reproducible cache that contains the dependencies of a project, and pointing npm to it.
 
 Here's an example:
 
@@ -193,7 +210,9 @@ buildNpmPackage rec {
 }
 ```
 
-In the default `installPhase` set by `buildNpmPackage`, it uses `npm pack --json --dry-run` to decide what files to install in `$out/lib/node_modules/$name/`, where `$name` is the `name` string defined in the package's `package.json`. Additionally, the `bin` and `man` keys in the source's `package.json` are used to decide what binaries and manpages are supposed to be installed. If these are not defined, `npm pack` may miss some files, and no binaries will be produced.
+In the default `installPhase` set by `buildNpmPackage`, it uses `npm pack --json --dry-run` to decide what files to install in `$out/lib/node_modules/$name/`, where `$name` is the `name` string defined in the package's `package.json`.
+Additionally, the `bin` and `man` keys in the source's `package.json` are used to decide what binaries and manpages are supposed to be installed.
+If these are not defined, `npm pack` may miss some files, and no binaries will be produced.
 
 #### Arguments {#javascript-buildNpmPackage-arguments}
 
@@ -315,10 +334,10 @@ buildPhase = ''
 '';
 ```
 
-The dist phase is also trying to build a binary, the only way to override it is with:
+The `distPhase` is packing the package's dependencies in a tarball using `yarn pack`. You can disable it using:
 
 ```nix
-distPhase = "true";
+doDist = false;
 ```
 
 The configure phase can sometimes fail because it makes many assumptions which may not always apply. One common override is:
diff --git a/nixpkgs/doc/languages-frameworks/python.section.md b/nixpkgs/doc/languages-frameworks/python.section.md
index fa7f3eddf72c..049b395dcc25 100644
--- a/nixpkgs/doc/languages-frameworks/python.section.md
+++ b/nixpkgs/doc/languages-frameworks/python.section.md
@@ -74,8 +74,9 @@ and the aliases
 
 #### `buildPythonPackage` function {#buildpythonpackage-function}
 
-The `buildPythonPackage` function is implemented in
-`pkgs/development/interpreters/python/mk-python-derivation.nix`
+The `buildPythonPackage` function has its name binding in
+`pkgs/development/interpreters/python/python-packages-base.nix` and is
+implemented in `pkgs/development/interpreters/python/mk-python-derivation.nix`
 using setup hooks.
 
 The following is an example:
@@ -2014,6 +2015,10 @@ example of such a situation is when `py.test` is used.
 
 * Tests that attempt to access `$HOME` can be fixed by using the following
   work-around before running tests (e.g. `preCheck`): `export HOME=$(mktemp -d)`
+* Compiling with Cython causes tests to fail with a `ModuleNotLoadedError`.
+  This can be fixed with two changes in the derivation: 1) replacing `pytest` with
+  `pytestCheckHook` and 2) adding a `preCheck` containing `cd $out` to run
+  tests within the built output.
 
 ## Contributing {#contributing}
 
diff --git a/nixpkgs/doc/overrides.css b/nixpkgs/doc/overrides.css
deleted file mode 100644
index 73901a3f543b..000000000000
--- a/nixpkgs/doc/overrides.css
+++ /dev/null
@@ -1,22 +0,0 @@
-.docbook .xref img[src^=images\/callouts\/],
-.screen img,
-.programlisting img,
-.literallayout img,
-.synopsis img {
-    width: 1em;
-}
-
-.calloutlist img {
-    width: 1.5em;
-}
-
-.prompt,
-.screen img,
-.programlisting img,
-.literallayout img,
-.synopsis img {
-    -moz-user-select: none;
-    -webkit-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
diff --git a/nixpkgs/doc/style.css b/nixpkgs/doc/style.css
index 474dd32e3fb1..fddf4f4823c7 100644
--- a/nixpkgs/doc/style.css
+++ b/nixpkgs/doc/style.css
@@ -1,291 +1,416 @@
-/* Copied from http://bakefile.sourceforge.net/, which appears
-   licensed under the GNU GPL. */
-
-
-/***************************************************************************
-                             Basic headers and text:
- ***************************************************************************/
+html {
+    line-height: 1.15;
+    -webkit-text-size-adjust: 100%;
+}
 
-body
-{
-    font-family: "Nimbus Sans L", sans-serif;
-    font-size: 1em;
-    background: white;
-    margin: 2em 1em 2em 1em;
+body {
+    margin: 0;
 }
 
-h1, h2, h3, h4
-{
-    color: #005aa0;
+.book {
+    margin: auto;
+    width: 100%;
 }
 
-h1 /* title */
-{
-    font-size: 200%;
+@media screen and (min-width: 768px) {
+    .book {
+        max-width: 46rem;
+    }
 }
 
-h2 /* chapters, appendices, subtitle */
-{
-    font-size: 180%;
+@media screen and (min-width: 992px) {
+    .book {
+        max-width: 60rem;
+    }
 }
 
-div.book
-{
-    text-align: center;
+@media screen and (min-width: 1200px) {
+    .book {
+        max-width: 73rem;
+    }
 }
 
-div.book > div
-{
-    /*
-     * based on https://medium.com/@zkareemz/golden-ratio-62b3b6d4282a
-     * we do 70 characters per line to fit code listings better
-     * 70 * (font-size / 1.618)
-     * expression for emacs:
-     * (* 70 (/ 1 1.618))
-     */
-    max-width: 43.2em;
-    text-align: left;
-    margin: auto;
+.book .list-of-examples {
+    display: none;
 }
 
-/* Extra space between chapters, appendices. */
-div.chapter > div.titlepage h2, div.appendix > div.titlepage h2
-{
-    margin-top: 1.5em;
+h1 {
+    font-size: 2em;
+    margin: 0.67em 0;
 }
 
-div.section > div.titlepage h2 /* sections */
-{
-    font-size: 150%;
-    margin-top: 1.5em;
+hr {
+    box-sizing: content-box;
+    height: 0;
+    overflow: visible;
 }
 
-h3 /* subsections */
-{
-    font-size: 125%;
+pre {
+    font-family: monospace, monospace;
+    font-size: 1em;
 }
 
-div.simplesect h2
-{
-    font-size: 110%;
+a {
+    background-color: transparent;
 }
 
-div.appendix h3
-{
-    font-size: 150%;
-    margin-top: 1.5em;
+strong {
+    font-weight: bolder;
 }
 
-div.refnamediv h2, div.refsynopsisdiv h2, div.refsection h2 /* refentry parts */
-{
-    margin-top: 1.4em;
-    font-size: 125%;
+code {
+    font-family: monospace, monospace;
+    font-size: 1em;
 }
 
-div.refsection h3
-{
-    font-size: 110%;
+sup {
+    font-size: 75%;
+    line-height: 0;
+    position: relative;
+    vertical-align: baseline;
 }
 
+sup {
+    top: -0.5em;
+}
 
-/***************************************************************************
-                               Examples:
- ***************************************************************************/
+::-webkit-file-upload-button {
+    -webkit-appearance: button;
+    font: inherit;
+}
 
-div.example
-{
-    border: 1px solid #b0b0b0;
-    padding: 6px 6px;
-    margin-left: 1.5em;
-    margin-right: 1.5em;
-    background: #f4f4f8;
-    border-radius: 0.4em;
-    box-shadow: 0.4em 0.4em 0.5em #e0e0e0;
+pre {
+    overflow: auto;
 }
 
-div.example p.title
-{
-    margin-top: 0em;
+*,
+*::before,
+*::after {
+    box-sizing: border-box;
 }
 
-div.example pre
-{
-    box-shadow: none;
+html {
+    font-size: 100%;
+    line-height: 1.77777778;
 }
 
+@media screen and (min-width: 4000px) {
+    html {
+        background: #000;
+    }
 
-/***************************************************************************
-                            Screen dumps:
- ***************************************************************************/
+    html body {
+        margin: auto;
+        max-width: 250rem;
+    }
+}
 
-pre.screen, pre.programlisting
-{
-    border: 1px solid #b0b0b0;
-    padding: 3px 3px;
-    margin-left: 0.5em;
-    margin-right: 0.5em;
+@media screen and (max-width: 320px) {
+    html {
+        font-size: calc(16 / 320 * 100vw);
+    }
+}
 
-    background: #f4f4f8;
-    font-family: monospace;
-    border-radius: 0.4em;
-    box-shadow: 0.4em 0.4em 0.5em #e0e0e0;
+body {
+    font-size: 1rem;
+    font-family: 'Roboto', sans-serif;
+    font-weight: 300;
+    color: #000000;
+    background-color: #ffffff;
+    min-height: 100vh;
+    display: flex;
+    flex-direction: column;
 }
 
-div.example pre.programlisting
-{
-    border: 0px;
-    padding: 0 0;
-    margin: 0 0 0 0;
+@media screen and (max-width: 767.9px) {
+    body {
+        padding-left: 1rem;
+        padding-right: 1rem;
+    }
 }
 
-/***************************************************************************
-                               Notes, warnings etc:
- ***************************************************************************/
+a {
+    text-decoration: none;
+    border-bottom: 1px solid;
+    color: #405d99;
+}
 
-.note, .warning
-{
-    border: 1px solid #b0b0b0;
-    padding: 3px 3px;
-    margin-left: 1.5em;
-    margin-right: 1.5em;
-    margin-bottom: 1em;
-    padding: 0.3em 0.3em 0.3em 0.3em;
-    background: #fffff5;
-    border-radius: 0.4em;
-    box-shadow: 0.4em 0.4em 0.5em #e0e0e0;
+ul {
+    padding: 0;
+    margin-top: 0;
+    margin-right: 0;
+    margin-bottom: 1rem;
+    margin-left: 1rem;
 }
 
-div.note, div.warning
-{
-    font-style: italic;
+table {
+    border-collapse: collapse;
+    width: 100%;
+    margin-bottom: 1rem;
 }
 
-div.note h3, div.warning h3
-{
-    color: red;
-    font-size: 100%;
-    padding-right: 0.5em;
-    display: inline;
+thead th {
+    text-align: left;
 }
 
-div.note p, div.warning p
-{
-    margin-bottom: 0em;
+hr {
+    margin-top: 1rem;
+    margin-bottom: 1rem;
 }
 
-div.note h3 + p, div.warning h3 + p
-{
-    display: inline;
+h1 {
+    font-weight: 800;
+    line-height: 110%;
+    font-size: 200%;
+    margin-bottom: 1rem;
+    color: #6586c8;
 }
 
-div.note h3
-{
-    color: blue;
-    font-size: 100%;
+h2 {
+    font-weight: 800;
+    line-height: 110%;
+    font-size: 170%;
+    margin-bottom: 0.625rem;
+    color: #6586c8;
 }
 
-div.navfooter *
-{
-    font-size: 90%;
+h2:not(:first-child) {
+    margin-top: 1rem;
 }
 
+h3 {
+    font-weight: 800;
+    line-height: 110%;
+    margin-bottom: 1rem;
+    font-size: 150%;
+    color: #6586c8;
+}
 
-/***************************************************************************
-                        Links colors and highlighting:
- ***************************************************************************/
+.note h3,
+.tip h3,
+.warning h3,
+.caution h3,
+.important h3 {
+    font-size: 120%;
+}
 
-a { text-decoration: none; }
-a:hover { text-decoration: underline; }
-a:link { color: #0048b3; }
-a:visited { color: #002a6a; }
+h4 {
+    font-weight: 800;
+    line-height: 110%;
+    margin-bottom: 1rem;
+    font-size: 140%;
+    color: #6586c8;
+}
 
+h5 {
+    font-weight: 800;
+    line-height: 110%;
+    margin-bottom: 1rem;
+    font-size: 130%;
+    color: #6a6a6a;
+}
 
-/***************************************************************************
-                              Table of contents:
- ***************************************************************************/
+h6 {
+    font-weight: 800;
+    line-height: 110%;
+    margin-bottom: 1rem;
+    font-size: 120%
+}
 
-div.toc
-{
-    font-size: 90%;
+strong {
+    font-weight: bold;
 }
 
-div.toc dl
-{
-    margin-top: 0em;
-    margin-bottom: 0em;
+p {
+    margin-top: 0;
+    margin-bottom: 1rem;
 }
 
+dt>*:first-child,
+dd>*:first-child {
+    margin-top: 0;
+}
 
-/***************************************************************************
-                               Special elements:
- ***************************************************************************/
+dt>*:last-child,
+dd>*:last-child {
+    margin-bottom: 0;
+}
 
-tt, code
-{
-    color: #400000;
+pre,
+code {
+    font-family: monospace;
 }
 
-.term
-{
-    font-weight: bold;
+code {
+    color: #ff8657;
+    background: #f4f4f4;
+    display: inline-block;
+    padding: 0 0.5rem;
+    border: 1px solid #d8d8d8;
+    border-radius: 0.5rem;
+    line-height: 1.57777778;
+}
+
+div.book .programlisting,
+div.appendix .programlisting {
+    border-radius: 0.5rem;
+    padding: 1rem;
+    overflow: auto;
+    background: #f2f8fd;
+    color: #000000;
+}
+
+div.book .note,
+div.book .tip,
+div.book .warning,
+div.book .caution,
+div.book .important,
+div.appendix .note,
+div.appendix .tip,
+div.appendix .warning,
+div.appendix .caution,
+div.appendix .important {
+    margin-bottom: 1rem;
+    border-radius: 0.5rem;
+    padding: 1.5rem;
+    overflow: auto;
+    background: #f4f4f4;
+}
+
+div.book .note>.title,
+div.book .tip>.title,
+div.book .warning>.title,
+div.book .caution>.title,
+div.book .important>.title,
+div.appendix .note>.title,
+div.appendix .tip>.title,
+div.appendix .warning>.title,
+div.appendix .caution>.title,
+div.appendix .important>.title {
+    font-weight: 800;
+    /* font-family: 'Overpass', serif; */
+    line-height: 110%;
+    margin-bottom: 1rem;
+    color: inherit;
+    margin-bottom: 0;
+}
+
+div.book .note> :first-child,
+div.book .tip> :first-child,
+div.book .warning> :first-child,
+div.book .caution> :first-child,
+div.book .important> :first-child,
+div.appendix .note> :first-child,
+div.appendix .tip> :first-child,
+div.appendix .warning> :first-child,
+div.appendix .caution> :first-child,
+div.appendix .important> :first-child {
+    margin-top: 0;
+}
+
+div.book .note> :last-child,
+div.book .tip> :last-child,
+div.book .warning> :last-child,
+div.book .caution> :last-child,
+div.book .important> :last-child,
+div.appendix .note> :last-child,
+div.appendix .tip> :last-child,
+div.appendix .warning> :last-child,
+div.appendix .caution> :last-child,
+div.appendix .important> :last-child {
+    margin-bottom: 0;
+}
+
+div.book .note,
+div.book .tip,
+div.appendix .note,
+div.appendix .tip {
+    color: #5277c3;
+    background: #f2f8fd;
+}
+
+div.book .warning,
+div.book .caution,
+div.appendix .warning,
+div.appendix .caution {
+    color: #cc3900;
+    background-color: #fff5e1;
+}
+
+div.book .section,
+div.appendix .section {
+    margin-top: 2em;
+}
+
+div.book div.example,
+div.appendix div.example {
+    margin-top: 1.5em;
+}
 
+div.book br.example-break,
+div.appendix br.example-break {
+    display: none;
 }
 
-div.variablelist dd p, div.glosslist dd p
-{
-    margin-top: 0em;
+div.book div.footnotes>hr,
+div.appendix div.footnotes>hr {
+    border-color: #d8d8d8;
 }
 
-div.variablelist dd, div.glosslist dd
-{
-    margin-left: 1.5em;
+div.book div.footnotes>br,
+div.appendix div.footnotes>br {
+    display: none;
 }
 
-div.glosslist dt
-{
-    font-style: italic;
+div.book dt,
+div.appendix dt {
+    margin-top: 1em;
 }
 
-.varname
-{
-    color: #400000;
+div.book .toc dt,
+div.appendix .toc dt {
+    margin-top: 0;
 }
 
-span.command strong
-{
-    font-weight: normal;
-    color: #400000;
+div.book .list-of-examples dt,
+div.appendix .list-of-examples dt {
+    margin-top: 0;
 }
 
-div.calloutlist table
-{
-    box-shadow: none;
+div.book code,
+div.appendix code {
+    padding: 0;
+    border: 0;
+    background-color: inherit;
+    color: inherit;
+    font-size: 100%;
+    -webkit-hyphens: none;
+    -moz-hyphens: none;
+    hyphens: none;
 }
 
-table
-{
-    border-collapse: collapse;
-    box-shadow: 0.4em 0.4em 0.5em #e0e0e0;
+div.book div.toc,
+div.appendix div.toc {
+    margin-bottom: 3em;
+    border-bottom: 0.0625rem solid #d8d8d8;
 }
 
-table.simplelist
-{
-    text-align: left;
-    color: #005aa0;
-    border: 0;
-    padding: 5px;
-    background: #fffff5;
-    font-weight: normal;
-    font-style: italic;
-    box-shadow: none;
-    margin-bottom: 1em;
+div.book div.toc dd,
+div.appendix div.toc dd {
+    margin-left: 2em;
 }
 
-div.navheader table, div.navfooter table {
-    box-shadow: none;
+div.book span.command,
+div.appendix span.command {
+    font-family: monospace;
+    -webkit-hyphens: none;
+    -moz-hyphens: none;
+    hyphens: none;
 }
 
-div.affiliation
-{
-    font-style: italic;
+div.book .informaltable th,
+div.book .informaltable td,
+div.appendix .informaltable th,
+div.appendix .informaltable td {
+    padding: 0.5rem;
 }
diff --git a/nixpkgs/lib/attrsets.nix b/nixpkgs/lib/attrsets.nix
index 34054460ba76..de5968b95348 100644
--- a/nixpkgs/lib/attrsets.nix
+++ b/nixpkgs/lib/attrsets.nix
@@ -1,4 +1,6 @@
-/* Operations on attribute sets. */
+/**
+  Operations on attribute sets.
+*/
 { lib }:
 
 let
@@ -12,35 +14,57 @@ rec {
   inherit (builtins) attrNames listToAttrs hasAttr isAttrs getAttr removeAttrs;
 
 
-  /* Return an attribute from nested attribute sets.
+  /**
+    Return an attribute from nested attribute sets.
+
+    Nix has an [attribute selection operator `. or`](https://nixos.org/manual/nix/stable/language/operators#attribute-selection) which is sufficient for such queries, as long as the number of attributes is static. For example:
+
+    ```nix
+    (x.a.b or 6) == attrByPath ["a" "b"] 6 x
+    # and
+    (x.${f p}."example.com" or 6) == attrByPath [ (f p) "example.com" ] 6 x
+    ```
+
 
-     Nix has an [attribute selection operator `. or`](https://nixos.org/manual/nix/stable/language/operators#attribute-selection) which is sufficient for such queries, as long as the number of attributes is static. For example:
+    # Inputs
 
-     ```nix
-     (x.a.b or 6) == attrByPath ["a" "b"] 6 x
-     # and
-     (x.${f p}."example.com" or 6) == attrByPath [ (f p) "example.com" ] 6 x
-     ```
+    `attrPath`
 
-     Example:
-       x = { a = { b = 3; }; }
-       # ["a" "b"] is equivalent to x.a.b
-       # 6 is a default value to return if the path does not exist in attrset
-       attrByPath ["a" "b"] 6 x
-       => 3
-       attrByPath ["z" "z"] 6 x
-       => 6
+    : A list of strings representing the attribute path to return from `set`
 
-     Type:
-       attrByPath :: [String] -> Any -> AttrSet -> Any
+    `default`
+
+    : Default value if `attrPath` does not resolve to an existing value
+
+    `set`
+
+    : The nested attribute set to select values from
+
+    # Type
 
+    ```
+    attrByPath :: [String] -> Any -> AttrSet -> Any
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.attrByPath` usage example
+
+    ```nix
+    x = { a = { b = 3; }; }
+    # ["a" "b"] is equivalent to x.a.b
+    # 6 is a default value to return if the path does not exist in attrset
+    attrByPath ["a" "b"] 6 x
+    => 3
+    attrByPath ["z" "z"] 6 x
+    => 6
+    ```
+
+    :::
   */
   attrByPath =
-    # A list of strings representing the attribute path to return from `set`
     attrPath:
-    # Default value if `attrPath` does not resolve to an existing value
     default:
-    # The nested attribute set to select values from
     set:
     let
       lenAttrPath = length attrPath;
@@ -57,37 +81,57 @@ rec {
     in
       attrByPath' 0 set;
 
-  /* Return if an attribute from nested attribute set exists.
+  /**
+    Return if an attribute from nested attribute set exists.
+
+    Nix has a [has attribute operator `?`](https://nixos.org/manual/nix/stable/language/operators#has-attribute), which is sufficient for such queries, as long as the number of attributes is static. For example:
 
-     Nix has a [has attribute operator `?`](https://nixos.org/manual/nix/stable/language/operators#has-attribute), which is sufficient for such queries, as long as the number of attributes is static. For example:
+    ```nix
+    (x?a.b) == hasAttryByPath ["a" "b"] x
+    # and
+    (x?${f p}."example.com") == hasAttryByPath [ (f p) "example.com" ] x
+    ```
+
+    **Laws**:
+     1.  ```nix
+         hasAttrByPath [] x == true
+         ```
+
+
+    # Inputs
 
-     ```nix
-     (x?a.b) == hasAttryByPath ["a" "b"] x
-     # and
-     (x?${f p}."example.com") == hasAttryByPath [ (f p) "example.com" ] x
-     ```
+    `attrPath`
 
-     **Laws**:
-      1.  ```nix
-          hasAttrByPath [] x == true
-          ```
+    : A list of strings representing the attribute path to check from `set`
 
-     Example:
-       x = { a = { b = 3; }; }
-       hasAttrByPath ["a" "b"] x
-       => true
-       hasAttrByPath ["z" "z"] x
-       => false
-       hasAttrByPath [] (throw "no need")
-       => true
+    `e`
 
-    Type:
-      hasAttrByPath :: [String] -> AttrSet -> Bool
+    : The nested attribute set to check
+
+    # Type
+
+    ```
+    hasAttrByPath :: [String] -> AttrSet -> Bool
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.hasAttrByPath` usage example
+
+    ```nix
+    x = { a = { b = 3; }; }
+    hasAttrByPath ["a" "b"] x
+    => true
+    hasAttrByPath ["z" "z"] x
+    => false
+    hasAttrByPath [] (throw "no need")
+    => true
+    ```
+
+    :::
   */
   hasAttrByPath =
-    # A list of strings representing the attribute path to check from `set`
     attrPath:
-    # The nested attribute set to check
     e:
     let
       lenAttrPath = length attrPath;
@@ -103,7 +147,7 @@ rec {
     in
       hasAttrByPath' 0 e;
 
-  /*
+  /**
     Return the longest prefix of an attribute path that refers to an existing attribute in a nesting of attribute sets.
 
     Can be used after [`mapAttrsRecursiveCond`](#function-library-lib.attrsets.mapAttrsRecursiveCond) to apply a condition,
@@ -120,24 +164,43 @@ rec {
         hasAttrByPath (attrsets.longestValidPathPrefix p x) x == true
         ```
 
-    Example:
-      x = { a = { b = 3; }; }
-      attrsets.longestValidPathPrefix ["a" "b" "c"] x
-      => ["a" "b"]
-      attrsets.longestValidPathPrefix ["a"] x
-      => ["a"]
-      attrsets.longestValidPathPrefix ["z" "z"] x
-      => []
-      attrsets.longestValidPathPrefix ["z" "z"] (throw "no need")
-      => []
-
-    Type:
-      attrsets.longestValidPathPrefix :: [String] -> Value -> [String]
+
+    # Inputs
+
+    `attrPath`
+
+    : A list of strings representing the longest possible path that may be returned.
+
+    `v`
+
+    : The nested attribute set to check.
+
+    # Type
+
+    ```
+    attrsets.longestValidPathPrefix :: [String] -> Value -> [String]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.longestValidPathPrefix` usage example
+
+    ```nix
+    x = { a = { b = 3; }; }
+    attrsets.longestValidPathPrefix ["a" "b" "c"] x
+    => ["a" "b"]
+    attrsets.longestValidPathPrefix ["a"] x
+    => ["a"]
+    attrsets.longestValidPathPrefix ["z" "z"] x
+    => []
+    attrsets.longestValidPathPrefix ["z" "z"] (throw "no need")
+    => []
+    ```
+
+    :::
   */
   longestValidPathPrefix =
-    # A list of strings representing the longest possible path that may be returned.
     attrPath:
-    # The nested attribute set to check.
     v:
     let
       lenAttrPath = length attrPath;
@@ -168,19 +231,39 @@ rec {
     in
       getPrefixForSetAtIndex v 0;
 
-  /* Create a new attribute set with `value` set at the nested attribute location specified in `attrPath`.
+  /**
+    Create a new attribute set with `value` set at the nested attribute location specified in `attrPath`.
+
 
-     Example:
-       setAttrByPath ["a" "b"] 3
-       => { a = { b = 3; }; }
+    # Inputs
 
-     Type:
-       setAttrByPath :: [String] -> Any -> AttrSet
+    `attrPath`
+
+    : A list of strings representing the attribute path to set
+
+    `value`
+
+    : The value to set at the location described by `attrPath`
+
+    # Type
+
+    ```
+    setAttrByPath :: [String] -> Any -> AttrSet
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.setAttrByPath` usage example
+
+    ```nix
+    setAttrByPath ["a" "b"] 3
+    => { a = { b = 3; }; }
+    ```
+
+    :::
   */
   setAttrByPath =
-    # A list of strings representing the attribute path to set
     attrPath:
-    # The value to set at the location described by `attrPath`
     value:
     let
       len = length attrPath;
@@ -190,47 +273,89 @@ rec {
         else { ${elemAt attrPath n} = atDepth (n + 1); };
     in atDepth 0;
 
-  /* Like `attrByPath`, but without a default value. If it doesn't find the
-     path it will throw an error.
+  /**
+    Like `attrByPath`, but without a default value. If it doesn't find the
+    path it will throw an error.
 
-     Nix has an [attribute selection operator](https://nixos.org/manual/nix/stable/language/operators#attribute-selection) which is sufficient for such queries, as long as the number of attributes is static. For example:
+    Nix has an [attribute selection operator](https://nixos.org/manual/nix/stable/language/operators#attribute-selection) which is sufficient for such queries, as long as the number of attributes is static. For example:
 
     ```nix
-     x.a.b == getAttrByPath ["a" "b"] x
-     # and
-     x.${f p}."example.com" == getAttrByPath [ (f p) "example.com" ] x
-     ```
-
-     Example:
-       x = { a = { b = 3; }; }
-       getAttrFromPath ["a" "b"] x
-       => 3
-       getAttrFromPath ["z" "z"] x
-       => error: cannot find attribute `z.z'
-
-     Type:
-       getAttrFromPath :: [String] -> AttrSet -> Any
+    x.a.b == getAttrByPath ["a" "b"] x
+    # and
+    x.${f p}."example.com" == getAttrByPath [ (f p) "example.com" ] x
+    ```
+
+
+    # Inputs
+
+    `attrPath`
+
+    : A list of strings representing the attribute path to get from `set`
+
+    `set`
+
+    : The nested attribute set to find the value in.
+
+    # Type
+
+    ```
+    getAttrFromPath :: [String] -> AttrSet -> Any
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.getAttrFromPath` usage example
+
+    ```nix
+    x = { a = { b = 3; }; }
+    getAttrFromPath ["a" "b"] x
+    => 3
+    getAttrFromPath ["z" "z"] x
+    => error: cannot find attribute `z.z'
+    ```
+
+    :::
   */
   getAttrFromPath =
-    # A list of strings representing the attribute path to get from `set`
     attrPath:
-    # The nested attribute set to find the value in.
     set:
     attrByPath attrPath (abort ("cannot find attribute `" + concatStringsSep "." attrPath + "'")) set;
 
-  /* Map each attribute in the given set and merge them into a new attribute set.
+  /**
+    Map each attribute in the given set and merge them into a new attribute set.
+
+
+    # Inputs
 
-     Type:
-       concatMapAttrs :: (String -> a -> AttrSet) -> AttrSet -> AttrSet
+    `f`
 
-     Example:
-       concatMapAttrs
-         (name: value: {
-           ${name} = value;
-           ${name + value} = value;
-         })
-         { x = "a"; y = "b"; }
-       => { x = "a"; xa = "a"; y = "b"; yb = "b"; }
+    : 1\. Function argument
+
+    `v`
+
+    : 2\. Function argument
+
+    # Type
+
+    ```
+    concatMapAttrs :: (String -> a -> AttrSet) -> AttrSet -> AttrSet
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.concatMapAttrs` usage example
+
+    ```nix
+    concatMapAttrs
+      (name: value: {
+        ${name} = value;
+        ${name + value} = value;
+      })
+      { x = "a"; y = "b"; }
+    => { x = "a"; xa = "a"; y = "b"; yb = "b"; }
+    ```
+
+    :::
   */
   concatMapAttrs = f: v:
     foldl' mergeAttrs { }
@@ -239,49 +364,61 @@ rec {
       );
 
 
-  /* Update or set specific paths of an attribute set.
-
-     Takes a list of updates to apply and an attribute set to apply them to,
-     and returns the attribute set with the updates applied. Updates are
-     represented as `{ path = ...; update = ...; }` values, where `path` is a
-     list of strings representing the attribute path that should be updated,
-     and `update` is a function that takes the old value at that attribute path
-     as an argument and returns the new
-     value it should be.
-
-     Properties:
-
-     - Updates to deeper attribute paths are applied before updates to more
-       shallow attribute paths
-
-     - Multiple updates to the same attribute path are applied in the order
-       they appear in the update list
-
-     - If any but the last `path` element leads into a value that is not an
-       attribute set, an error is thrown
-
-     - If there is an update for an attribute path that doesn't exist,
-       accessing the argument in the update function causes an error, but
-       intermediate attribute sets are implicitly created as needed
-
-     Example:
-       updateManyAttrsByPath [
-         {
-           path = [ "a" "b" ];
-           update = old: { d = old.c; };
-         }
-         {
-           path = [ "a" "b" "c" ];
-           update = old: old + 1;
-         }
-         {
-           path = [ "x" "y" ];
-           update = old: "xy";
-         }
-       ] { a.b.c = 0; }
-       => { a = { b = { d = 1; }; }; x = { y = "xy"; }; }
-
-    Type: updateManyAttrsByPath :: [{ path :: [String]; update :: (Any -> Any); }] -> AttrSet -> AttrSet
+  /**
+    Update or set specific paths of an attribute set.
+
+    Takes a list of updates to apply and an attribute set to apply them to,
+    and returns the attribute set with the updates applied. Updates are
+    represented as `{ path = ...; update = ...; }` values, where `path` is a
+    list of strings representing the attribute path that should be updated,
+    and `update` is a function that takes the old value at that attribute path
+    as an argument and returns the new
+    value it should be.
+
+    Properties:
+
+    - Updates to deeper attribute paths are applied before updates to more
+      shallow attribute paths
+
+    - Multiple updates to the same attribute path are applied in the order
+      they appear in the update list
+
+    - If any but the last `path` element leads into a value that is not an
+      attribute set, an error is thrown
+
+    - If there is an update for an attribute path that doesn't exist,
+      accessing the argument in the update function causes an error, but
+      intermediate attribute sets are implicitly created as needed
+
+    # Type
+
+    ```
+    updateManyAttrsByPath :: [{ path :: [String]; update :: (Any -> Any); }] -> AttrSet -> AttrSet
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.updateManyAttrsByPath` usage example
+
+    ```nix
+    updateManyAttrsByPath [
+      {
+        path = [ "a" "b" ];
+        update = old: { d = old.c; };
+      }
+      {
+        path = [ "a" "b" "c" ];
+        update = old: old + 1;
+      }
+      {
+        path = [ "x" "y" ];
+        update = old: "xy";
+      }
+    ] { a.b.c = 0; }
+    => { a = { b = { d = 1; }; }; x = { y = "xy"; }; }
+    ```
+
+    :::
   */
   updateManyAttrsByPath = let
     # When recursing into attributes, instead of updating the `path` of each
@@ -342,96 +479,208 @@ rec {
 
   in updates: value: go 0 true value updates;
 
-  /* Return the specified attributes from a set.
+  /**
+    Return the specified attributes from a set.
+
+
+    # Inputs
+
+    `nameList`
+
+    : The list of attributes to fetch from `set`. Each attribute name must exist on the attrbitue set
 
-     Example:
-       attrVals ["a" "b" "c"] as
-       => [as.a as.b as.c]
+    `set`
 
-     Type:
-       attrVals :: [String] -> AttrSet -> [Any]
+    : The set to get attribute values from
+
+    # Type
+
+    ```
+    attrVals :: [String] -> AttrSet -> [Any]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.attrVals` usage example
+
+    ```nix
+    attrVals ["a" "b" "c"] as
+    => [as.a as.b as.c]
+    ```
+
+    :::
   */
   attrVals =
-    # The list of attributes to fetch from `set`. Each attribute name must exist on the attrbitue set
     nameList:
-    # The set to get attribute values from
     set: map (x: set.${x}) nameList;
 
 
-  /* Return the values of all attributes in the given set, sorted by
-     attribute name.
+  /**
+    Return the values of all attributes in the given set, sorted by
+    attribute name.
 
-     Example:
-       attrValues {c = 3; a = 1; b = 2;}
-       => [1 2 3]
+    # Type
 
-     Type:
-       attrValues :: AttrSet -> [Any]
+    ```
+    attrValues :: AttrSet -> [Any]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.attrValues` usage example
+
+    ```nix
+    attrValues {c = 3; a = 1; b = 2;}
+    => [1 2 3]
+    ```
+
+    :::
   */
   attrValues = builtins.attrValues;
 
 
-  /* Given a set of attribute names, return the set of the corresponding
-     attributes from the given set.
+  /**
+    Given a set of attribute names, return the set of the corresponding
+    attributes from the given set.
+
+
+    # Inputs
+
+    `names`
 
-     Example:
-       getAttrs [ "a" "b" ] { a = 1; b = 2; c = 3; }
-       => { a = 1; b = 2; }
+    : A list of attribute names to get out of `set`
 
-     Type:
-       getAttrs :: [String] -> AttrSet -> AttrSet
+    `attrs`
+
+    : The set to get the named attributes from
+
+    # Type
+
+    ```
+    getAttrs :: [String] -> AttrSet -> AttrSet
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.getAttrs` usage example
+
+    ```nix
+    getAttrs [ "a" "b" ] { a = 1; b = 2; c = 3; }
+    => { a = 1; b = 2; }
+    ```
+
+    :::
   */
   getAttrs =
-    # A list of attribute names to get out of `set`
     names:
-    # The set to get the named attributes from
     attrs: genAttrs names (name: attrs.${name});
 
-  /* Collect each attribute named `attr` from a list of attribute
-     sets.  Sets that don't contain the named attribute are ignored.
+  /**
+    Collect each attribute named `attr` from a list of attribute
+    sets.  Sets that don't contain the named attribute are ignored.
+
+    # Inputs
+
+    `attr`
+
+    : The attribute name to get out of the sets.
 
-     Example:
-       catAttrs "a" [{a = 1;} {b = 0;} {a = 2;}]
-       => [1 2]
+    `list`
 
-     Type:
-       catAttrs :: String -> [AttrSet] -> [Any]
+    : The list of attribute sets to go through
+
+    # Type
+
+    ```
+    catAttrs :: String -> [AttrSet] -> [Any]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.catAttrs` usage example
+
+    ```nix
+    catAttrs "a" [{a = 1;} {b = 0;} {a = 2;}]
+    => [1 2]
+    ```
+
+    :::
   */
   catAttrs = builtins.catAttrs;
 
 
-  /* Filter an attribute set by removing all attributes for which the
-     given predicate return false.
+  /**
+    Filter an attribute set by removing all attributes for which the
+    given predicate return false.
+
+
+    # Inputs
+
+    `pred`
 
-     Example:
-       filterAttrs (n: v: n == "foo") { foo = 1; bar = 2; }
-       => { foo = 1; }
+    : Predicate taking an attribute name and an attribute value, which returns `true` to include the attribute, or `false` to exclude the attribute.
 
-     Type:
-       filterAttrs :: (String -> Any -> Bool) -> AttrSet -> AttrSet
+    `set`
+
+    : The attribute set to filter
+
+    # Type
+
+    ```
+    filterAttrs :: (String -> Any -> Bool) -> AttrSet -> AttrSet
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.filterAttrs` usage example
+
+    ```nix
+    filterAttrs (n: v: n == "foo") { foo = 1; bar = 2; }
+    => { foo = 1; }
+    ```
+
+    :::
   */
   filterAttrs =
-    # Predicate taking an attribute name and an attribute value, which returns `true` to include the attribute, or `false` to exclude the attribute.
     pred:
-    # The attribute set to filter
     set:
     listToAttrs (concatMap (name: let v = set.${name}; in if pred name v then [(nameValuePair name v)] else []) (attrNames set));
 
 
-  /* Filter an attribute set recursively by removing all attributes for
-     which the given predicate return false.
+  /**
+    Filter an attribute set recursively by removing all attributes for
+    which the given predicate return false.
+
+
+    # Inputs
+
+    `pred`
+
+    : Predicate taking an attribute name and an attribute value, which returns `true` to include the attribute, or `false` to exclude the attribute.
+
+    `set`
+
+    : The attribute set to filter
+
+    # Type
+
+    ```
+    filterAttrsRecursive :: (String -> Any -> Bool) -> AttrSet -> AttrSet
+    ```
 
-     Example:
-       filterAttrsRecursive (n: v: v != null) { foo = { bar = null; }; }
-       => { foo = {}; }
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.filterAttrsRecursive` usage example
 
-     Type:
-       filterAttrsRecursive :: (String -> Any -> Bool) -> AttrSet -> AttrSet
+    ```nix
+    filterAttrsRecursive (n: v: v != null) { foo = { bar = null; }; }
+    => { foo = {}; }
+    ```
+
+    :::
   */
   filterAttrsRecursive =
-    # Predicate taking an attribute name and an attribute value, which returns `true` to include the attribute, or `false` to exclude the attribute.
     pred:
-    # The attribute set to filter
     set:
     listToAttrs (
       concatMap (name:
@@ -445,59 +694,84 @@ rec {
       ) (attrNames set)
     );
 
-   /*
+   /**
     Like [`lib.lists.foldl'`](#function-library-lib.lists.foldl-prime) but for attribute sets.
     Iterates over every name-value pair in the given attribute set.
     The result of the callback function is often called `acc` for accumulator. It is passed between callbacks from left to right and the final `acc` is the return value of `foldlAttrs`.
 
     Attention:
-      There is a completely different function
-      `lib.foldAttrs`
-      which has nothing to do with this function, despite the similar name.
-
-    Example:
-      foldlAttrs
-        (acc: name: value: {
-          sum = acc.sum + value;
-          names = acc.names ++ [name];
-        })
-        { sum = 0; names = []; }
-        {
-          foo = 1;
-          bar = 10;
-        }
-      ->
-        {
-          sum = 11;
-          names = ["bar" "foo"];
-        }
-
-      foldlAttrs
-        (throw "function not needed")
-        123
-        {};
-      ->
-        123
-
-      foldlAttrs
-        (acc: _: _: acc)
-        3
-        { z = throw "value not needed"; a = throw "value not needed"; };
-      ->
-        3
-
-      The accumulator doesn't have to be an attrset.
-      It can be as simple as a number or string.
-
-      foldlAttrs
-        (acc: _: v: acc * 10 + v)
-        1
-        { z = 1; a = 2; };
-      ->
-        121
-
-    Type:
-      foldlAttrs :: ( a -> String -> b -> a ) -> a -> { ... :: b } -> a
+
+    There is a completely different function `lib.foldAttrs`
+    which has nothing to do with this function, despite the similar name.
+
+
+    # Inputs
+
+    `f`
+
+    : 1\. Function argument
+
+    `init`
+
+    : 2\. Function argument
+
+    `set`
+
+    : 3\. Function argument
+
+    # Type
+
+    ```
+    foldlAttrs :: ( a -> String -> b -> a ) -> a -> { ... :: b } -> a
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.foldlAttrs` usage example
+
+    ```nix
+    foldlAttrs
+      (acc: name: value: {
+        sum = acc.sum + value;
+        names = acc.names ++ [name];
+      })
+      { sum = 0; names = []; }
+      {
+        foo = 1;
+        bar = 10;
+      }
+    ->
+      {
+        sum = 11;
+        names = ["bar" "foo"];
+      }
+
+    foldlAttrs
+      (throw "function not needed")
+      123
+      {};
+    ->
+      123
+
+    foldlAttrs
+      (acc: _: _: acc)
+      3
+      { z = throw "value not needed"; a = throw "value not needed"; };
+    ->
+      3
+
+    The accumulator doesn't have to be an attrset.
+    It can be as simple as a number or string.
+
+    foldlAttrs
+      (acc: _: v: acc * 10 + v)
+      1
+      { z = 1; a = 2; };
+    ->
+      121
+    ```
+
+    :::
   */
   foldlAttrs = f: init: set:
     foldl'
@@ -505,22 +779,44 @@ rec {
       init
       (attrNames set);
 
-  /* Apply fold functions to values grouped by key.
+  /**
+    Apply fold functions to values grouped by key.
+
+
+    # Inputs
+
+    `op`
+
+    : A function, given a value and a collector combines the two.
+
+    `nul`
+
+    : The starting value.
+
+    `list_of_attrs`
+
+    : A list of attribute sets to fold together by key.
+
+    # Type
+
+    ```
+    foldAttrs :: (Any -> Any -> Any) -> Any -> [AttrSets] -> Any
+    ```
 
-     Example:
-       foldAttrs (item: acc: [item] ++ acc) [] [{ a = 2; } { a = 3; }]
-       => { a = [ 2 3 ]; }
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.foldAttrs` usage example
 
-     Type:
-       foldAttrs :: (Any -> Any -> Any) -> Any -> [AttrSets] -> Any
+    ```nix
+    foldAttrs (item: acc: [item] ++ acc) [] [{ a = 2; } { a = 3; }]
+    => { a = [ 2 3 ]; }
+    ```
 
+    :::
   */
   foldAttrs =
-    # A function, given a value and a collector combines the two.
     op:
-    # The starting value.
     nul:
-    # A list of attribute sets to fold together by key.
     list_of_attrs:
     foldr (n: a:
         foldr (name: o:
@@ -529,26 +825,46 @@ rec {
     ) {} list_of_attrs;
 
 
-  /* Recursively collect sets that verify a given predicate named `pred`
-     from the set `attrs`.  The recursion is stopped when the predicate is
-     verified.
+  /**
+    Recursively collect sets that verify a given predicate named `pred`
+    from the set `attrs`. The recursion is stopped when the predicate is
+    verified.
+
 
-     Example:
-       collect isList { a = { b = ["b"]; }; c = [1]; }
-       => [["b"] [1]]
+    # Inputs
 
-       collect (x: x ? outPath)
-          { a = { outPath = "a/"; }; b = { outPath = "b/"; }; }
-       => [{ outPath = "a/"; } { outPath = "b/"; }]
+    `pred`
+
+    : Given an attribute's value, determine if recursion should stop.
+
+    `attrs`
+
+    : The attribute set to recursively collect.
+
+    # Type
 
-     Type:
-       collect :: (AttrSet -> Bool) -> AttrSet -> [x]
+    ```
+    collect :: (AttrSet -> Bool) -> AttrSet -> [x]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.collect` usage example
+
+    ```nix
+    collect isList { a = { b = ["b"]; }; c = [1]; }
+    => [["b"] [1]]
+
+    collect (x: x ? outPath)
+       { a = { outPath = "a/"; }; b = { outPath = "b/"; }; }
+    => [{ outPath = "a/"; } { outPath = "b/"; }]
+    ```
+
+    :::
   */
   collect =
-  # Given an attribute's value, determine if recursion should stop.
-  pred:
-  # The attribute set to recursively collect.
-  attrs:
+    pred:
+    attrs:
     if pred attrs then
       [ attrs ]
     else if isAttrs attrs then
@@ -556,21 +872,39 @@ rec {
     else
       [];
 
-  /* Return the cartesian product of attribute set value combinations.
-
-    Example:
-      cartesianProductOfSets { a = [ 1 2 ]; b = [ 10 20 ]; }
-      => [
-           { a = 1; b = 10; }
-           { a = 1; b = 20; }
-           { a = 2; b = 10; }
-           { a = 2; b = 20; }
-         ]
-     Type:
-       cartesianProductOfSets :: AttrSet -> [AttrSet]
+  /**
+    Return the cartesian product of attribute set value combinations.
+
+
+    # Inputs
+
+    `attrsOfLists`
+
+    : Attribute set with attributes that are lists of values
+
+    # Type
+
+    ```
+    cartesianProductOfSets :: AttrSet -> [AttrSet]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.cartesianProductOfSets` usage example
+
+    ```nix
+    cartesianProductOfSets { a = [ 1 2 ]; b = [ 10 20 ]; }
+    => [
+         { a = 1; b = 10; }
+         { a = 1; b = 20; }
+         { a = 2; b = 10; }
+         { a = 2; b = 20; }
+       ]
+    ```
+
+    :::
   */
   cartesianProductOfSets =
-    # Attribute set with attributes that are lists of values
     attrsOfLists:
     foldl' (listOfAttrs: attrName:
       concatMap (attrs:
@@ -579,76 +913,155 @@ rec {
     ) [{}] (attrNames attrsOfLists);
 
 
-  /* Utility function that creates a `{name, value}` pair as expected by `builtins.listToAttrs`.
+  /**
+    Utility function that creates a `{name, value}` pair as expected by `builtins.listToAttrs`.
+
+
+    # Inputs
 
-     Example:
-       nameValuePair "some" 6
-       => { name = "some"; value = 6; }
+    `name`
 
-     Type:
-       nameValuePair :: String -> Any -> { name :: String; value :: Any; }
+    : Attribute name
+
+    `value`
+
+    : Attribute value
+
+    # Type
+
+    ```
+    nameValuePair :: String -> Any -> { name :: String; value :: Any; }
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.nameValuePair` usage example
+
+    ```nix
+    nameValuePair "some" 6
+    => { name = "some"; value = 6; }
+    ```
+
+    :::
   */
   nameValuePair =
-    # Attribute name
     name:
-    # Attribute value
     value:
     { inherit name value; };
 
 
-  /* Apply a function to each element in an attribute set, creating a new attribute set.
+  /**
+    Apply a function to each element in an attribute set, creating a new attribute set.
+
+    # Inputs
+
+    `f`
 
-     Example:
-       mapAttrs (name: value: name + "-" + value)
-          { x = "foo"; y = "bar"; }
-       => { x = "x-foo"; y = "y-bar"; }
+    : A function that takes an attribute name and its value, and returns the new value for the attribute.
 
-     Type:
-       mapAttrs :: (String -> Any -> Any) -> AttrSet -> AttrSet
+    `attrset`
+
+    : The attribute set to iterate through.
+
+    # Type
+
+    ```
+    mapAttrs :: (String -> Any -> Any) -> AttrSet -> AttrSet
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.mapAttrs` usage example
+
+    ```nix
+    mapAttrs (name: value: name + "-" + value)
+       { x = "foo"; y = "bar"; }
+    => { x = "x-foo"; y = "y-bar"; }
+    ```
+
+    :::
   */
   mapAttrs = builtins.mapAttrs;
 
 
-  /* Like `mapAttrs`, but allows the name of each attribute to be
-     changed in addition to the value.  The applied function should
-     return both the new name and value as a `nameValuePair`.
+  /**
+    Like `mapAttrs`, but allows the name of each attribute to be
+    changed in addition to the value.  The applied function should
+    return both the new name and value as a `nameValuePair`.
+
+
+    # Inputs
 
-     Example:
-       mapAttrs' (name: value: nameValuePair ("foo_" + name) ("bar-" + value))
-          { x = "a"; y = "b"; }
-       => { foo_x = "bar-a"; foo_y = "bar-b"; }
+    `f`
 
-     Type:
-       mapAttrs' :: (String -> Any -> { name :: String; value :: Any; }) -> AttrSet -> AttrSet
+    : A function, given an attribute's name and value, returns a new `nameValuePair`.
+
+    `set`
+
+    : Attribute set to map over.
+
+    # Type
+
+    ```
+    mapAttrs' :: (String -> Any -> { name :: String; value :: Any; }) -> AttrSet -> AttrSet
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.mapAttrs'` usage example
+
+    ```nix
+    mapAttrs' (name: value: nameValuePair ("foo_" + name) ("bar-" + value))
+       { x = "a"; y = "b"; }
+    => { foo_x = "bar-a"; foo_y = "bar-b"; }
+    ```
+
+    :::
   */
   mapAttrs' =
-    # A function, given an attribute's name and value, returns a new `nameValuePair`.
     f:
-    # Attribute set to map over.
     set:
     listToAttrs (map (attr: f attr set.${attr}) (attrNames set));
 
 
-  /* Call a function for each attribute in the given set and return
-     the result in a list.
+  /**
+    Call a function for each attribute in the given set and return
+    the result in a list.
+
+    # Inputs
+
+    `f`
 
-     Example:
-       mapAttrsToList (name: value: name + value)
-          { x = "a"; y = "b"; }
-       => [ "xa" "yb" ]
+    : A function, given an attribute's name and value, returns a new value.
 
-     Type:
-       mapAttrsToList :: (String -> a -> b) -> AttrSet -> [b]
+    `attrs`
 
+    : Attribute set to map over.
+
+    # Type
+
+    ```
+    mapAttrsToList :: (String -> a -> b) -> AttrSet -> [b]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.mapAttrsToList` usage example
+
+    ```nix
+    mapAttrsToList (name: value: name + value)
+       { x = "a"; y = "b"; }
+    => [ "xa" "yb" ]
+    ```
+
+    :::
   */
   mapAttrsToList =
-    # A function, given an attribute's name and value, returns a new value.
     f:
-    # Attribute set to map over.
     attrs:
     map (name: f name attrs.${name}) (attrNames attrs);
 
-  /*
+  /**
     Deconstruct an attrset to a list of name-value pairs as expected by [`builtins.listToAttrs`](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-listToAttrs).
     Each element of the resulting list is an attribute set with these attributes:
     - `name` (string): The name of the attribute
@@ -668,13 +1081,28 @@ rec {
     This is because the `listToAttrs` removes duplicate names and doesn't preserve the order of the list.
     :::
 
-    Example:
-      attrsToList { foo = 1; bar = "asdf"; }
-      => [ { name = "bar"; value = "asdf"; } { name = "foo"; value = 1; } ]
+    # Inputs
+
+    `set`
 
-    Type:
-      attrsToList :: AttrSet -> [ { name :: String; value :: Any; } ]
+    : The attribute set to deconstruct.
+
+    # Type
 
+    ```
+    attrsToList :: AttrSet -> [ { name :: String; value :: Any; } ]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.attrsToList` usage example
+
+    ```nix
+    attrsToList { foo = 1; bar = "asdf"; }
+    => [ { name = "bar"; value = "asdf"; } { name = "foo"; value = 1; } ]
+    ```
+
+    :::
   */
   attrsToList = mapAttrsToList nameValuePair;
 
@@ -705,9 +1133,7 @@ rec {
     ```
   */
   mapAttrsRecursive =
-    # A function that, given an attribute path as a list of strings and the corresponding attribute value, returns a new value.
     f:
-    # Attribute set to recursively map over.
     set:
     mapAttrsRecursiveCond (as: true) f set;
 
@@ -736,12 +1162,8 @@ rec {
     ```
   */
   mapAttrsRecursiveCond =
-    # A function that, given the attribute set the recursion is currently at, determines if to recurse deeper into that attribute set.
     cond:
-    # A function that, given an attribute path as a list of strings and the corresponding attribute value, returns a new value.
-    # The attribute value is either an attribute set for which `cond` returns false, or something other than an attribute set.
     f:
-    # Attribute set to recursively map over.
     set:
     let
       recurse = path:
@@ -754,48 +1176,95 @@ rec {
     recurse [ ] set;
 
 
-  /* Generate an attribute set by mapping a function over a list of
-     attribute names.
+  /**
+    Generate an attribute set by mapping a function over a list of
+    attribute names.
+
+
+    # Inputs
+
+    `names`
+
+    : Names of values in the resulting attribute set.
+
+    `f`
+
+    : A function, given the name of the attribute, returns the attribute's value.
+
+    # Type
+
+    ```
+    genAttrs :: [ String ] -> (String -> Any) -> AttrSet
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.genAttrs` usage example
 
-     Example:
-       genAttrs [ "foo" "bar" ] (name: "x_" + name)
-       => { foo = "x_foo"; bar = "x_bar"; }
+    ```nix
+    genAttrs [ "foo" "bar" ] (name: "x_" + name)
+    => { foo = "x_foo"; bar = "x_bar"; }
+    ```
 
-     Type:
-       genAttrs :: [ String ] -> (String -> Any) -> AttrSet
+    :::
   */
   genAttrs =
-    # Names of values in the resulting attribute set.
     names:
-    # A function, given the name of the attribute, returns the attribute's value.
     f:
     listToAttrs (map (n: nameValuePair n (f n)) names);
 
 
-  /* Check whether the argument is a derivation. Any set with
-     `{ type = "derivation"; }` counts as a derivation.
+  /**
+    Check whether the argument is a derivation. Any set with
+    `{ type = "derivation"; }` counts as a derivation.
+
 
-     Example:
-       nixpkgs = import <nixpkgs> {}
-       isDerivation nixpkgs.ruby
-       => true
-       isDerivation "foobar"
-       => false
+    # Inputs
 
-     Type:
-       isDerivation :: Any -> Bool
+    `value`
+
+    : Value to check.
+
+    # Type
+
+    ```
+    isDerivation :: Any -> Bool
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.isDerivation` usage example
+
+    ```nix
+    nixpkgs = import <nixpkgs> {}
+    isDerivation nixpkgs.ruby
+    => true
+    isDerivation "foobar"
+    => false
+    ```
+
+    :::
   */
   isDerivation =
-    # Value to check.
     value: value.type or null == "derivation";
 
-   /* Converts a store path to a fake derivation.
+   /**
+    Converts a store path to a fake derivation.
+
+
+    # Inputs
+
+    `path`
 
-      Type:
-        toDerivation :: Path -> Derivation
-   */
+    : A store path to convert to a derivation.
+
+    # Type
+
+    ```
+    toDerivation :: Path -> Derivation
+    ```
+  */
    toDerivation =
-     # A store path to convert to a derivation.
      path:
      let
        path' = builtins.storePath path;
@@ -810,42 +1279,85 @@ rec {
     in res;
 
 
-  /* If `cond` is true, return the attribute set `as`,
-     otherwise an empty attribute set.
+  /**
+    If `cond` is true, return the attribute set `as`,
+    otherwise an empty attribute set.
+
+
+    # Inputs
+
+    `cond`
 
-     Example:
-       optionalAttrs (true) { my = "set"; }
-       => { my = "set"; }
-       optionalAttrs (false) { my = "set"; }
-       => { }
+    : Condition under which the `as` attribute set is returned.
+
+    `as`
+
+    : The attribute set to return if `cond` is `true`.
+
+    # Type
+
+    ```
+    optionalAttrs :: Bool -> AttrSet -> AttrSet
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.optionalAttrs` usage example
+
+    ```nix
+    optionalAttrs (true) { my = "set"; }
+    => { my = "set"; }
+    optionalAttrs (false) { my = "set"; }
+    => { }
+    ```
 
-     Type:
-       optionalAttrs :: Bool -> AttrSet -> AttrSet
+    :::
   */
   optionalAttrs =
-    # Condition under which the `as` attribute set is returned.
     cond:
-    # The attribute set to return if `cond` is `true`.
     as:
     if cond then as else {};
 
 
-  /* Merge sets of attributes and use the function `f` to merge attributes
-     values.
+  /**
+    Merge sets of attributes and use the function `f` to merge attributes
+    values.
+
+
+    # Inputs
+
+    `names`
 
-     Example:
-       zipAttrsWithNames ["a"] (name: vs: vs) [{a = "x";} {a = "y"; b = "z";}]
-       => { a = ["x" "y"]; }
+    : List of attribute names to zip.
 
-     Type:
-       zipAttrsWithNames :: [ String ] -> (String -> [ Any ] -> Any) -> [ AttrSet ] -> AttrSet
+    `f`
+
+    : A function, accepts an attribute name, all the values, and returns a combined value.
+
+    `sets`
+
+    : List of values from the list of attribute sets.
+
+    # Type
+
+    ```
+    zipAttrsWithNames :: [ String ] -> (String -> [ Any ] -> Any) -> [ AttrSet ] -> AttrSet
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.zipAttrsWithNames` usage example
+
+    ```nix
+    zipAttrsWithNames ["a"] (name: vs: vs) [{a = "x";} {a = "y"; b = "z";}]
+    => { a = ["x" "y"]; }
+    ```
+
+    :::
   */
   zipAttrsWithNames =
-    # List of attribute names to zip.
     names:
-    # A function, accepts an attribute name, all the values, and returns a combined value.
     f:
-    # List of values from the list of attribute sets.
     sets:
     listToAttrs (map (name: {
       inherit name;
@@ -853,52 +1365,91 @@ rec {
     }) names);
 
 
-  /* Merge sets of attributes and use the function f to merge attribute values.
-     Like `lib.attrsets.zipAttrsWithNames` with all key names are passed for `names`.
+  /**
+    Merge sets of attributes and use the function f to merge attribute values.
+    Like `lib.attrsets.zipAttrsWithNames` with all key names are passed for `names`.
 
-     Implementation note: Common names appear multiple times in the list of
-     names, hopefully this does not affect the system because the maximal
-     laziness avoid computing twice the same expression and `listToAttrs` does
-     not care about duplicated attribute names.
+    Implementation note: Common names appear multiple times in the list of
+    names, hopefully this does not affect the system because the maximal
+    laziness avoid computing twice the same expression and `listToAttrs` does
+    not care about duplicated attribute names.
 
-     Example:
-       zipAttrsWith (name: values: values) [{a = "x";} {a = "y"; b = "z";}]
-       => { a = ["x" "y"]; b = ["z"]; }
+    # Type
+
+    ```
+    zipAttrsWith :: (String -> [ Any ] -> Any) -> [ AttrSet ] -> AttrSet
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.zipAttrsWith` usage example
 
-     Type:
-       zipAttrsWith :: (String -> [ Any ] -> Any) -> [ AttrSet ] -> AttrSet
+    ```nix
+    zipAttrsWith (name: values: values) [{a = "x";} {a = "y"; b = "z";}]
+    => { a = ["x" "y"]; b = ["z"]; }
+    ```
+
+    :::
   */
   zipAttrsWith =
     builtins.zipAttrsWith or (f: sets: zipAttrsWithNames (concatMap attrNames sets) f sets);
 
 
-  /* Merge sets of attributes and combine each attribute value in to a list.
+  /**
+    Merge sets of attributes and combine each attribute value in to a list.
+
+    Like `lib.attrsets.zipAttrsWith` with `(name: values: values)` as the function.
+
+    # Type
+
+    ```
+    zipAttrs :: [ AttrSet ] -> AttrSet
+    ```
 
-     Like `lib.attrsets.zipAttrsWith` with `(name: values: values)` as the function.
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.zipAttrs` usage example
 
-     Example:
-       zipAttrs [{a = "x";} {a = "y"; b = "z";}]
-       => { a = ["x" "y"]; b = ["z"]; }
+    ```nix
+    zipAttrs [{a = "x";} {a = "y"; b = "z";}]
+    => { a = ["x" "y"]; b = ["z"]; }
+    ```
 
-     Type:
-       zipAttrs :: [ AttrSet ] -> AttrSet
+    :::
   */
   zipAttrs = zipAttrsWith (name: values: values);
 
-  /*
+  /**
     Merge a list of attribute sets together using the `//` operator.
     In case of duplicate attributes, values from later list elements take precedence over earlier ones.
     The result is the same as `foldl mergeAttrs { }`, but the performance is better for large inputs.
     For n list elements, each with an attribute set containing m unique attributes, the complexity of this operation is O(nm log n).
 
-    Type:
-      mergeAttrsList :: [ Attrs ] -> Attrs
 
-    Example:
-      mergeAttrsList [ { a = 0; b = 1; } { c = 2; d = 3; } ]
-      => { a = 0; b = 1; c = 2; d = 3; }
-      mergeAttrsList [ { a = 0; } { a = 1; } ]
-      => { a = 1; }
+    # Inputs
+
+    `list`
+
+    : 1\. Function argument
+
+    # Type
+
+    ```
+    mergeAttrsList :: [ Attrs ] -> Attrs
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.mergeAttrsList` usage example
+
+    ```nix
+    mergeAttrsList [ { a = 0; b = 1; } { c = 2; d = 3; } ]
+    => { a = 0; b = 1; c = 2; d = 3; }
+    mergeAttrsList [ { a = 0; } { a = 1; } ]
+    => { a = 1; }
+    ```
+
+    :::
   */
   mergeAttrsList = list:
     let
@@ -922,42 +1473,65 @@ rec {
       binaryMerge 0 (length list);
 
 
-  /* Does the same as the update operator '//' except that attributes are
-     merged until the given predicate is verified.  The predicate should
-     accept 3 arguments which are the path to reach the attribute, a part of
-     the first attribute set and a part of the second attribute set.  When
-     the predicate is satisfied, the value of the first attribute set is
-     replaced by the value of the second attribute set.
-
-     Example:
-       recursiveUpdateUntil (path: l: r: path == ["foo"]) {
-         # first attribute set
-         foo.bar = 1;
-         foo.baz = 2;
-         bar = 3;
-       } {
-         #second attribute set
-         foo.bar = 1;
-         foo.quz = 2;
-         baz = 4;
-       }
-
-       => {
-         foo.bar = 1; # 'foo.*' from the second set
-         foo.quz = 2; #
-         bar = 3;     # 'bar' from the first set
-         baz = 4;     # 'baz' from the second set
-       }
-
-     Type:
-       recursiveUpdateUntil :: ( [ String ] -> AttrSet -> AttrSet -> Bool ) -> AttrSet -> AttrSet -> AttrSet
+  /**
+    Does the same as the update operator '//' except that attributes are
+    merged until the given predicate is verified.  The predicate should
+    accept 3 arguments which are the path to reach the attribute, a part of
+    the first attribute set and a part of the second attribute set.  When
+    the predicate is satisfied, the value of the first attribute set is
+    replaced by the value of the second attribute set.
+
+
+    # Inputs
+
+    `pred`
+
+    : Predicate, taking the path to the current attribute as a list of strings for attribute names, and the two values at that path from the original arguments.
+
+    `lhs`
+
+    : Left attribute set of the merge.
+
+    `rhs`
+
+    : Right attribute set of the merge.
+
+    # Type
+
+    ```
+    recursiveUpdateUntil :: ( [ String ] -> AttrSet -> AttrSet -> Bool ) -> AttrSet -> AttrSet -> AttrSet
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.recursiveUpdateUntil` usage example
+
+    ```nix
+    recursiveUpdateUntil (path: l: r: path == ["foo"]) {
+      # first attribute set
+      foo.bar = 1;
+      foo.baz = 2;
+      bar = 3;
+    } {
+      #second attribute set
+      foo.bar = 1;
+      foo.quz = 2;
+      baz = 4;
+    }
+
+    => {
+      foo.bar = 1; # 'foo.*' from the second set
+      foo.quz = 2; #
+      bar = 3;     # 'bar' from the first set
+      baz = 4;     # 'baz' from the second set
+    }
+    ```
+
+    :::
   */
   recursiveUpdateUntil =
-    # Predicate, taking the path to the current attribute as a list of strings for attribute names, and the two values at that path from the original arguments.
     pred:
-    # Left attribute set of the merge.
     lhs:
-    # Right attribute set of the merge.
     rhs:
     let f = attrPath:
       zipAttrsWith (n: values:
@@ -971,51 +1545,90 @@ rec {
     in f [] [rhs lhs];
 
 
-  /* A recursive variant of the update operator ‘//’.  The recursion
-     stops when one of the attribute values is not an attribute set,
-     in which case the right hand side value takes precedence over the
-     left hand side value.
+  /**
+    A recursive variant of the update operator ‘//’.  The recursion
+    stops when one of the attribute values is not an attribute set,
+    in which case the right hand side value takes precedence over the
+    left hand side value.
+
+
+    # Inputs
+
+    `lhs`
+
+    : Left attribute set of the merge.
+
+    `rhs`
+
+    : Right attribute set of the merge.
+
+    # Type
+
+    ```
+    recursiveUpdate :: AttrSet -> AttrSet -> AttrSet
+    ```
 
-     Example:
-       recursiveUpdate {
-         boot.loader.grub.enable = true;
-         boot.loader.grub.device = "/dev/hda";
-       } {
-         boot.loader.grub.device = "";
-       }
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.recursiveUpdate` usage example
 
-       returns: {
-         boot.loader.grub.enable = true;
-         boot.loader.grub.device = "";
-       }
+    ```nix
+    recursiveUpdate {
+      boot.loader.grub.enable = true;
+      boot.loader.grub.device = "/dev/hda";
+    } {
+      boot.loader.grub.device = "";
+    }
+
+    returns: {
+      boot.loader.grub.enable = true;
+      boot.loader.grub.device = "";
+    }
+    ```
 
-     Type:
-       recursiveUpdate :: AttrSet -> AttrSet -> AttrSet
+    :::
   */
   recursiveUpdate =
-    # Left attribute set of the merge.
     lhs:
-    # Right attribute set of the merge.
     rhs:
     recursiveUpdateUntil (path: lhs: rhs: !(isAttrs lhs && isAttrs rhs)) lhs rhs;
 
 
-  /*
+  /**
     Recurse into every attribute set of the first argument and check that:
     - Each attribute path also exists in the second argument.
     - If the attribute's value is not a nested attribute set, it must have the same value in the right argument.
 
-     Example:
-       matchAttrs { cpu = {}; } { cpu = { bits = 64; }; }
-       => true
 
-     Type:
-       matchAttrs :: AttrSet -> AttrSet -> Bool
+    # Inputs
+
+    `pattern`
+
+    : Attribute set structure to match
+
+    `attrs`
+
+    : Attribute set to check
+
+    # Type
+
+    ```
+    matchAttrs :: AttrSet -> AttrSet -> Bool
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.matchAttrs` usage example
+
+    ```nix
+    matchAttrs { cpu = {}; } { cpu = { bits = 64; }; }
+    => true
+    ```
+
+    :::
   */
   matchAttrs =
-    # Attribute set structure to match
     pattern:
-    # Attribute set to check
     attrs:
     assert isAttrs pattern;
     all
@@ -1034,161 +1647,340 @@ rec {
     )
     (attrNames pattern);
 
-  /* Override only the attributes that are already present in the old set
+  /**
+    Override only the attributes that are already present in the old set
     useful for deep-overriding.
 
-    Example:
-      overrideExisting {} { a = 1; }
-      => {}
-      overrideExisting { b = 2; } { a = 1; }
-      => { b = 2; }
-      overrideExisting { a = 3; b = 2; } { a = 1; }
-      => { a = 1; b = 2; }
 
-    Type:
-      overrideExisting :: AttrSet -> AttrSet -> AttrSet
+    # Inputs
+
+    `old`
+
+    : Original attribute set
+
+    `new`
+
+    : Attribute set with attributes to override in `old`.
+
+    # Type
+
+    ```
+    overrideExisting :: AttrSet -> AttrSet -> AttrSet
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.overrideExisting` usage example
+
+    ```nix
+    overrideExisting {} { a = 1; }
+    => {}
+    overrideExisting { b = 2; } { a = 1; }
+    => { b = 2; }
+    overrideExisting { a = 3; b = 2; } { a = 1; }
+    => { a = 1; b = 2; }
+    ```
+
+    :::
   */
   overrideExisting =
-    # Original attribute set
     old:
-    # Attribute set with attributes to override in `old`.
     new:
     mapAttrs (name: value: new.${name} or value) old;
 
 
-  /* Turns a list of strings into a human-readable description of those
+  /**
+    Turns a list of strings into a human-readable description of those
     strings represented as an attribute path. The result of this function is
     not intended to be machine-readable.
     Create a new attribute set with `value` set at the nested attribute location specified in `attrPath`.
 
-    Example:
-      showAttrPath [ "foo" "10" "bar" ]
-      => "foo.\"10\".bar"
-      showAttrPath []
-      => "<root attribute path>"
 
-    Type:
-      showAttrPath :: [String] -> String
+    # Inputs
+
+    `path`
+
+    : Attribute path to render to a string
+
+    # Type
+
+    ```
+    showAttrPath :: [String] -> String
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.showAttrPath` usage example
+
+    ```nix
+    showAttrPath [ "foo" "10" "bar" ]
+    => "foo.\"10\".bar"
+    showAttrPath []
+    => "<root attribute path>"
+    ```
+
+    :::
   */
   showAttrPath =
-    # Attribute path to render to a string
     path:
     if path == [] then "<root attribute path>"
     else concatMapStringsSep "." escapeNixIdentifier path;
 
 
-  /* Get a package output.
-     If no output is found, fallback to `.out` and then to the default.
+  /**
+    Get a package output.
+    If no output is found, fallback to `.out` and then to the default.
+
+
+    # Inputs
+
+    `output`
 
-     Example:
-       getOutput "dev" pkgs.openssl
-       => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev"
+    : 1\. Function argument
 
-     Type:
-       getOutput :: String -> Derivation -> String
+    `pkg`
+
+    : 2\. Function argument
+
+    # Type
+
+    ```
+    getOutput :: String -> Derivation -> String
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.getOutput` usage example
+
+    ```nix
+    getOutput "dev" pkgs.openssl
+    => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev"
+    ```
+
+    :::
   */
   getOutput = output: pkg:
     if ! pkg ? outputSpecified || ! pkg.outputSpecified
       then pkg.${output} or pkg.out or pkg
       else pkg;
 
-  /* Get a package's `bin` output.
-     If the output does not exist, fallback to `.out` and then to the default.
+  /**
+    Get a package's `bin` output.
+    If the output does not exist, fallback to `.out` and then to the default.
+
+    # Inputs
+
+    `pkg`
 
-     Example:
-       getBin pkgs.openssl
-       => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r"
+    : The package whose `bin` output will be retrieved.
 
-     Type:
-       getBin :: Derivation -> String
+    # Type
+
+    ```
+    getBin :: Derivation -> String
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.getBin` usage example
+
+    ```nix
+    getBin pkgs.openssl
+    => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r"
+    ```
+
+    :::
   */
   getBin = getOutput "bin";
 
 
-  /* Get a package's `lib` output.
-     If the output does not exist, fallback to `.out` and then to the default.
+  /**
+    Get a package's `lib` output.
+    If the output does not exist, fallback to `.out` and then to the default.
+
+    # Inputs
+
+    `pkg`
 
-     Example:
-       getLib pkgs.openssl
-       => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-lib"
+    : The package whose `lib` output will be retrieved.
 
-     Type:
-       getLib :: Derivation -> String
+    # Type
+
+    ```
+    getLib :: Derivation -> String
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.getLib` usage example
+
+    ```nix
+    getLib pkgs.openssl
+    => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-lib"
+    ```
+
+    :::
   */
   getLib = getOutput "lib";
 
 
-  /* Get a package's `dev` output.
-     If the output does not exist, fallback to `.out` and then to the default.
+  /**
+    Get a package's `dev` output.
+    If the output does not exist, fallback to `.out` and then to the default.
+
+    # Inputs
+
+    `pkg`
 
-     Example:
-       getDev pkgs.openssl
-       => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev"
+    : The package whose `dev` output will be retrieved.
+
+    # Type
+
+    ```
+    getDev :: Derivation -> String
+    ```
 
-     Type:
-       getDev :: Derivation -> String
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.getDev` usage example
+
+    ```nix
+    getDev pkgs.openssl
+    => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev"
+    ```
+
+    :::
   */
   getDev = getOutput "dev";
 
 
-  /* Get a package's `man` output.
-     If the output does not exist, fallback to `.out` and then to the default.
+  /**
+    Get a package's `man` output.
+    If the output does not exist, fallback to `.out` and then to the default.
+
+    # Inputs
+
+    `pkg`
+
+    : The package whose `man` output will be retrieved.
+
+    # Type
+
+    ```
+    getMan :: Derivation -> String
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.getMan` usage example
 
-     Example:
-       getMan pkgs.openssl
-       => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-man"
+    ```nix
+    getMan pkgs.openssl
+    => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-man"
+    ```
 
-     Type:
-       getMan :: Derivation -> String
+    :::
   */
   getMan = getOutput "man";
 
-  /* Pick the outputs of packages to place in `buildInputs`
+  /**
+    Pick the outputs of packages to place in `buildInputs`
+
+    # Inputs
 
-   Type: chooseDevOutputs :: [Derivation] -> [String]
+    `pkgs`
 
+    : List of packages.
+
+    # Type
+
+    ```
+    chooseDevOutputs :: [Derivation] -> [String]
+    ```
   */
   chooseDevOutputs = builtins.map getDev;
 
-  /* Make various Nix tools consider the contents of the resulting
-     attribute set when looking for what to build, find, etc.
+  /**
+    Make various Nix tools consider the contents of the resulting
+    attribute set when looking for what to build, find, etc.
 
-     This function only affects a single attribute set; it does not
-     apply itself recursively for nested attribute sets.
+    This function only affects a single attribute set; it does not
+    apply itself recursively for nested attribute sets.
 
-     Example:
-       { pkgs ? import <nixpkgs> {} }:
-       {
-         myTools = pkgs.lib.recurseIntoAttrs {
-           inherit (pkgs) hello figlet;
-         };
-       }
 
-     Type:
-       recurseIntoAttrs :: AttrSet -> AttrSet
+    # Inputs
+
+    `attrs`
+
+    : An attribute set to scan for derivations.
+
+    # Type
 
-   */
+    ```
+    recurseIntoAttrs :: AttrSet -> AttrSet
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.attrsets.recurseIntoAttrs` usage example
+
+    ```nix
+    { pkgs ? import <nixpkgs> {} }:
+    {
+      myTools = pkgs.lib.recurseIntoAttrs {
+        inherit (pkgs) hello figlet;
+      };
+    }
+    ```
+
+    :::
+  */
   recurseIntoAttrs =
-    # An attribute set to scan for derivations.
     attrs:
     attrs // { recurseForDerivations = true; };
 
-  /* Undo the effect of recurseIntoAttrs.
+  /**
+    Undo the effect of recurseIntoAttrs.
 
-     Type:
-       dontRecurseIntoAttrs :: AttrSet -> AttrSet
-   */
+
+    # Inputs
+
+    `attrs`
+
+    : An attribute set to not scan for derivations.
+
+    # Type
+
+    ```
+    dontRecurseIntoAttrs :: AttrSet -> AttrSet
+    ```
+  */
   dontRecurseIntoAttrs =
-    # An attribute set to not scan for derivations.
     attrs:
     attrs // { recurseForDerivations = false; };
 
-  /* `unionOfDisjoint x y` is equal to `x // y // z` where the
-     attrnames in `z` are the intersection of the attrnames in `x` and
-     `y`, and all values `assert` with an error message.  This
-      operator is commutative, unlike (//).
+  /**
+    `unionOfDisjoint x y` is equal to `x // y // z` where the
+    attrnames in `z` are the intersection of the attrnames in `x` and
+    `y`, and all values `assert` with an error message.  This
+     operator is commutative, unlike (//).
+
+
+    # Inputs
+
+    `x`
+
+    : 1\. Function argument
+
+    `y`
 
-     Type: unionOfDisjoint :: AttrSet -> AttrSet -> AttrSet
+    : 2\. Function argument
+
+    # Type
+
+    ```
+    unionOfDisjoint :: AttrSet -> AttrSet -> AttrSet
+    ```
   */
   unionOfDisjoint = x: y:
     let
diff --git a/nixpkgs/lib/customisation.nix b/nixpkgs/lib/customisation.nix
index 7be412bac353..66638b63342a 100644
--- a/nixpkgs/lib/customisation.nix
+++ b/nixpkgs/lib/customisation.nix
@@ -306,18 +306,129 @@ rec {
     in if drv == null then null else
       deepSeq drv' drv';
 
-  /* Make a set of packages with a common scope. All packages called
-     with the provided `callPackage` will be evaluated with the same
-     arguments. Any package in the set may depend on any other. The
-     `overrideScope'` function allows subsequent modification of the package
-     set in a consistent way, i.e. all packages in the set will be
-     called with the overridden packages. The package sets may be
-     hierarchical: the packages in the set are called with the scope
-     provided by `newScope` and the set provides a `newScope` attribute
-     which can form the parent scope for later package sets.
+  /**
+    Make an attribute set (a "scope") from functions that take arguments from that same attribute set.
+    See [](#ex-makeScope) for how to use it.
 
-     Type:
-       makeScope :: (AttrSet -> ((AttrSet -> a) | Path) -> AttrSet -> a) -> (AttrSet -> AttrSet) -> AttrSet
+    # Inputs
+
+    1. `newScope` (`AttrSet -> ((AttrSet -> a) | Path) -> AttrSet -> a`)
+
+       A function that takes an attribute set `attrs` and returns what ends up as `callPackage` in the output.
+
+       Typical values are `callPackageWith` or the output attribute `newScope`.
+
+    2. `f` (`AttrSet -> AttrSet`)
+
+       A function that takes an attribute set as returned by `makeScope newScope f` (a "scope") and returns any attribute set.
+
+       This function is used to compute the fixpoint of the resulting scope using `callPackage`.
+       Its argument is the lazily evaluated reference to the value of that fixpoint, and is typically called `self` or `final`.
+
+       See [](#ex-makeScope) for how to use it.
+       See [](#sec-functions-library-fixedPoints) for details on fixpoint computation.
+
+    # Output
+
+    `makeScope` returns an attribute set of a form called `scope`, which also contains the final attributes produced by `f`:
+
+    ```
+    scope :: {
+      callPackage :: ((AttrSet -> a) | Path) -> AttrSet -> a
+      newScope = AttrSet -> scope
+      overrideScope = (scope -> scope -> AttrSet) -> scope
+      packages :: AttrSet -> AttrSet
+    }
+    ```
+
+    - `callPackage` (`((AttrSet -> a) | Path) -> AttrSet -> a`)
+
+      A function that
+
+      1. Takes a function `p`, or a path to a Nix file that contains a function `p`, which takes an attribute set and returns value of arbitrary type `a`,
+      2. Takes an attribute set `args` with explicit attributes to pass to `p`,
+      3. Calls `f` with attributes from the original attribute set `attrs` passed to `newScope` updated with `args, i.e. `attrs // args`, if they match the attributes in the argument of `p`.
+
+      All such functions `p` will be called with the same value for `attrs`.
+
+      See [](#ex-makeScope-callPackage) for how to use it.
+
+    - `newScope` (`AttrSet -> scope`)
+
+      Takes an attribute set `attrs` and returns a scope that extends the original scope.
+
+    - `overrideScope` (`(scope -> scope -> AttrSet) -> scope`)
+
+      Takes a function `g` of the form `final: prev: { # attributes }` to act as an overlay on `f`, and returns a new scope with values determined by `extends g f`.
+      See [](https://nixos.org/manual/nixpkgs/unstable/#function-library-lib.fixedPoints.extends) for details.
+
+      This allows subsequent modification of the final attribute set in a consistent way, i.e. all functions `p` invoked with `callPackage` will be called with the modified values.
+
+    - `packages` (`AttrSet -> AttrSet`)
+
+      The value of the argument `f` to `makeScope`.
+
+    - final attributes
+
+      The final values returned by `f`.
+
+    # Examples
+
+    :::{#ex-makeScope .example}
+    # Create an interdependent package set on top of `pkgs`
+
+    The functions in `foo.nix` and `bar.nix` can depend on each other, in the sense that `foo.nix` can contain a function that expects `bar` as an attribute in its argument.
+
+    ```nix
+    let
+      pkgs = import <nixpkgs> { };
+    in
+    pkgs.lib.makeScope pkgs.newScope (self: {
+      foo = self.callPackage ./foo.nix { };
+      bar = self.callPackage ./bar.nix { };
+    })
+    ```
+
+    evaluates to
+
+    ```nix
+    {
+      callPackage = «lambda»;
+      newScope = «lambda»;
+      overrideScope = «lambda»;
+      packages = «lambda»;
+      foo = «derivation»;
+      bar = «derivation»;
+    }
+    ```
+    :::
+
+    :::{#ex-makeScope-callPackage .example}
+    # Using `callPackage` from a scope
+
+    ```nix
+    let
+      pkgs = import <nixpkgs> { };
+      inherit (pkgs) lib;
+      scope = lib.makeScope lib.callPackageWith (self: { a = 1; b = 2; });
+      three = scope.callPackage ({ a, b }: a + b) { };
+      four = scope.callPackage ({ a, b }: a + b) { a = 2; };
+    in
+    [ three four ]
+    ```
+
+    evaluates to
+
+    ```nix
+    [ 3 4 ]
+    ```
+    :::
+
+    # Type
+
+    ```
+    makeScope :: (AttrSet -> ((AttrSet -> a) | Path) -> AttrSet -> a) -> (AttrSet -> AttrSet) -> scope
+    ```
   */
   makeScope = newScope: f:
     let self = f self // {
diff --git a/nixpkgs/lib/deprecated.nix b/nixpkgs/lib/deprecated.nix
index ed14e04bbd68..b76622b5d842 100644
--- a/nixpkgs/lib/deprecated.nix
+++ b/nixpkgs/lib/deprecated.nix
@@ -1,14 +1,37 @@
 { lib }:
-let
-    inherit (builtins) head tail isList isAttrs isInt attrNames;
-
-in
-
-with lib.lists;
-with lib.attrsets;
-with lib.strings;
 
-rec {
+let
+  inherit (lib)
+    and
+    any
+    attrByPath
+    attrNames
+    compare
+    concat
+    concatMap
+    elem
+    filter
+    foldl
+    foldr
+    genericClosure
+    head
+    imap1
+    init
+    isAttrs
+    isFunction
+    isInt
+    isList
+    lists
+    listToAttrs
+    mapAttrs
+    mergeAttrs
+    meta
+    nameValuePair
+    tail
+    toList
+    ;
+
+  inherit (lib.attrsets) removeAttrs;
 
   # returns default if env var is not set
   maybeEnv = name: default:
@@ -26,7 +49,7 @@ rec {
         base = (setAttrMerge "passthru" {} (f arg)
                         ( z: z // {
                             function = foldArgs merger f arg;
-                            args = (lib.attrByPath ["passthru" "args"] {} z) // x;
+                            args = (attrByPath ["passthru" "args"] {} z) // x;
                           } ));
         withStdOverrides = base // {
           override = base.passthru.function;
@@ -77,11 +100,11 @@ rec {
   # Output : are reqs satisfied? It's asserted.
   checkReqs = attrSet: argList: condList:
   (
-    foldr lib.and true
+    foldr and true
       (map (x: let name = (head x); in
 
         ((checkFlag attrSet name) ->
-        (foldr lib.and true
+        (foldr and true
         (map (y: let val=(getValue attrSet argList y); in
                 (val!=null) && (val!=false))
         (tail x))))) condList));
@@ -159,11 +182,11 @@ rec {
 
   closePropagationSlow = list: (uniqList {inputList = (innerClosePropagation [] list);});
 
-  # This is an optimisation of lib.closePropagation which avoids the O(n^2) behavior
+  # This is an optimisation of closePropagation which avoids the O(n^2) behavior
   # Using a list of derivations, it generates the full closure of the propagatedXXXBuildInputs
   # The ordering / sorting / comparison is done based on the `outPath`
   # attribute of each derivation.
-  # On some benchmarks, it performs up to 15 times faster than lib.closePropagation.
+  # On some benchmarks, it performs up to 15 times faster than closePropagation.
   # See https://github.com/NixOS/nixpkgs/pull/194391 for details.
   closePropagationFast = list:
     builtins.map (x: x.val) (builtins.genericClosure {
@@ -250,10 +273,10 @@ rec {
   # foldArgs, composedArgsAndFun or applyAndFun. Example: composableDerivation in all-packages.nix
   mergeAttrByFunc = x: y:
     let
-          mergeAttrBy2 = { mergeAttrBy = lib.mergeAttrs; }
+          mergeAttrBy2 = { mergeAttrBy = mergeAttrs; }
                       // (maybeAttr "mergeAttrBy" {} x)
                       // (maybeAttr "mergeAttrBy" {} y); in
-    foldr lib.mergeAttrs {} [
+    foldr mergeAttrs {} [
       x y
       (mapAttrs ( a: v: # merge special names using given functions
           if x ? ${a}
@@ -273,9 +296,9 @@ rec {
 
   # sane defaults (same name as attr name so that inherit can be used)
   mergeAttrBy = # { buildInputs = concatList; [...]; passthru = mergeAttr; [..]; }
-    listToAttrs (map (n: nameValuePair n lib.concat)
+    listToAttrs (map (n: nameValuePair n concat)
       [ "nativeBuildInputs" "buildInputs" "propagatedBuildInputs" "configureFlags" "prePhases" "postAll" "patches" ])
-    // listToAttrs (map (n: nameValuePair n lib.mergeAttrs) [ "passthru" "meta" "cfg" "flags" ])
+    // listToAttrs (map (n: nameValuePair n mergeAttrs) [ "passthru" "meta" "cfg" "flags" ])
     // listToAttrs (map (n: nameValuePair n (a: b: "${a}\n${b}") ) [ "preConfigure" "postInstall" ])
   ;
 
@@ -283,7 +306,7 @@ rec {
       if isAttrs x then
           if x ? outPath then "derivation"
           else "attrs"
-      else if lib.isFunction x then "function"
+      else if isFunction x then "function"
       else if isList x then "list"
       else if x == true then "bool"
       else if x == false then "bool"
@@ -304,4 +327,47 @@ rec {
   fakeHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
   fakeSha256 = "0000000000000000000000000000000000000000000000000000000000000000";
   fakeSha512 = "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
+
+in
+
+# Everything in this attrset is the public interface of the file.
+{
+  inherit
+    checkFlag
+    checkReqs
+    closePropagation
+    closePropagationFast
+    closePropagationSlow
+    condConcat
+    defaultMerge
+    defaultMergeArg
+    fakeHash
+    fakeSha256
+    fakeSha512
+    foldArgs
+    getValue
+    ifEnable
+    imap
+    innerClosePropagation
+    innerModifySumArgs
+    lazyGenericClosure
+    mapAttrsFlatten
+    maybeAttr
+    maybeAttrNullable
+    maybeEnv
+    mergeAttrBy
+    mergeAttrByFunc
+    mergeAttrsByFuncDefaults
+    mergeAttrsByFuncDefaultsClean
+    mergeAttrsConcatenateValues
+    mergeAttrsNoOverride
+    mergeAttrsWithFunc
+    modifySumArgs
+    nixType
+    nvs
+    setAttr
+    setAttrMerge
+    uniqList
+    uniqListExt
+    ;
 }
diff --git a/nixpkgs/lib/generators.nix b/nixpkgs/lib/generators.nix
index ed59654cc07e..5f42a98de709 100644
--- a/nixpkgs/lib/generators.nix
+++ b/nixpkgs/lib/generators.nix
@@ -14,15 +14,58 @@
  * Documentation in the manual, #sec-generators
  */
 { lib }:
-with (lib).trivial;
-let
-  libStr = lib.strings;
-  libAttr = lib.attrsets;
-
-  inherit (lib) isFunction;
-in
 
-rec {
+let
+  inherit (lib)
+    addErrorContext
+    assertMsg
+    attrNames
+    concatLists
+    concatMapStringsSep
+    concatStrings
+    concatStringsSep
+    const
+    elem
+    escape
+    filter
+    flatten
+    foldl
+    functionArgs  # Note: not the builtin; considers `__functor` in attrsets.
+    gvariant
+    hasInfix
+    head
+    id
+    init
+    isAttrs
+    isBool
+    isDerivation
+    isFloat
+    isFunction    # Note: not the builtin; considers `__functor` in attrsets.
+    isInt
+    isList
+    isPath
+    isString
+    last
+    length
+    mapAttrs
+    mapAttrsToList
+    optionals
+    recursiveUpdate
+    replaceStrings
+    reverseList
+    splitString
+    tail
+    toList
+    ;
+
+  inherit (lib.strings)
+    escapeNixIdentifier
+    floatToString
+    match
+    split
+    toJSON
+    typeOf
+    ;
 
   ## -- HELPER FUNCTIONS & DEFAULTS --
 
@@ -30,13 +73,13 @@ rec {
    * The builtin `toString` function has some strange defaults,
    * suitable for bash scripts but not much else.
    */
-  mkValueStringDefault = {}: v: with builtins;
+  mkValueStringDefault = {}: v:
     let err = t: v: abort
           ("generators.mkValueStringDefault: " +
            "${t} not supported: ${toPretty {} v}");
     in   if isInt      v then toString v
     # convert derivations to store paths
-    else if lib.isDerivation v then toString v
+    else if isDerivation v then toString v
     # we default to not quoting strings
     else if isString   v then v
     # isString returns "1", which is not a good default
@@ -53,7 +96,7 @@ rec {
     # Floats currently can't be converted to precise strings,
     # condition warning on nix version once this isn't a problem anymore
     # See https://github.com/NixOS/nix/pull/3480
-    else if isFloat    v then libStr.floatToString v
+    else if isFloat    v then floatToString v
     else err "this value is" (toString v);
 
 
@@ -69,7 +112,7 @@ rec {
   mkKeyValueDefault = {
     mkValueString ? mkValueStringDefault {}
   }: sep: k: v:
-    "${libStr.escape [sep] k}${sep}${mkValueString v}";
+    "${escape [sep] k}${sep}${mkValueString v}";
 
 
   ## -- FILE FORMAT GENERATORS --
@@ -86,9 +129,9 @@ rec {
   }:
   let mkLine = k: v: indent + mkKeyValue k v + "\n";
       mkLines = if listsAsDuplicateKeys
-        then k: v: map (mkLine k) (if lib.isList v then v else [v])
+        then k: v: map (mkLine k) (if isList v then v else [v])
         else k: v: [ (mkLine k v) ];
-  in attrs: libStr.concatStrings (lib.concatLists (libAttr.mapAttrsToList mkLines attrs));
+  in attrs: concatStrings (concatLists (mapAttrsToList mkLines attrs));
 
 
   /* Generate an INI-style config file from an
@@ -113,7 +156,7 @@ rec {
    */
   toINI = {
     # apply transformations (e.g. escapes) to section names
-    mkSectionName ? (name: libStr.escape [ "[" "]" ] name),
+    mkSectionName ? (name: escape [ "[" "]" ] name),
     # format a setting line from key and value
     mkKeyValue    ? mkKeyValueDefault {} "=",
     # allow lists as values for duplicate keys
@@ -122,8 +165,8 @@ rec {
     let
         # map function to string for each key val
         mapAttrsToStringsSep = sep: mapFn: attrs:
-          libStr.concatStringsSep sep
-            (libAttr.mapAttrsToList mapFn attrs);
+          concatStringsSep sep
+            (mapAttrsToList mapFn attrs);
         mkSection = sectName: sectValues: ''
           [${mkSectionName sectName}]
         '' + toKeyValue { inherit mkKeyValue listsAsDuplicateKeys; } sectValues;
@@ -164,7 +207,7 @@ rec {
    */
   toINIWithGlobalSection = {
     # apply transformations (e.g. escapes) to section names
-    mkSectionName ? (name: libStr.escape [ "[" "]" ] name),
+    mkSectionName ? (name: escape [ "[" "]" ] name),
     # format a setting line from key and value
     mkKeyValue    ? mkKeyValueDefault {} "=",
     # allow lists as values for duplicate keys
@@ -195,12 +238,11 @@ rec {
    *>   name = "edolstra"
    */
   toGitINI = attrs:
-    with builtins;
     let
       mkSectionName = name:
         let
-          containsQuote = libStr.hasInfix ''"'' name;
-          sections = libStr.splitString "." name;
+          containsQuote = hasInfix ''"'' name;
+          sections = splitString "." name;
           section = head sections;
           subsections = tail sections;
           subsection = concatStringsSep "." subsections;
@@ -220,19 +262,19 @@ rec {
       # generation for multiple ini values
       mkKeyValue = k: v:
         let mkKeyValue = mkKeyValueDefault { inherit mkValueString; } " = " k;
-        in concatStringsSep "\n" (map (kv: "\t" + mkKeyValue kv) (lib.toList v));
+        in concatStringsSep "\n" (map (kv: "\t" + mkKeyValue kv) (toList v));
 
       # converts { a.b.c = 5; } to { "a.b".c = 5; } for toINI
       gitFlattenAttrs = let
         recurse = path: value:
-          if isAttrs value && !lib.isDerivation value then
-            lib.mapAttrsToList (name: value: recurse ([ name ] ++ path) value) value
+          if isAttrs value && !isDerivation value then
+            mapAttrsToList (name: value: recurse ([ name ] ++ path) value) value
           else if length path > 1 then {
-            ${concatStringsSep "." (lib.reverseList (tail path))}.${head path} = value;
+            ${concatStringsSep "." (reverseList (tail path))}.${head path} = value;
           } else {
             ${head path} = value;
           };
-      in attrs: lib.foldl lib.recursiveUpdate { } (lib.flatten (recurse [ ] attrs));
+      in attrs: foldl recursiveUpdate { } (flatten (recurse [ ] attrs));
 
       toINI_ = toINI { inherit mkKeyValue mkSectionName; };
     in
@@ -240,25 +282,12 @@ rec {
 
   # mkKeyValueDefault wrapper that handles dconf INI quirks.
   # The main differences of the format is that it requires strings to be quoted.
-  mkDconfKeyValue = mkKeyValueDefault { mkValueString = v: toString (lib.gvariant.mkValue v); } "=";
+  mkDconfKeyValue = mkKeyValueDefault { mkValueString = v: toString (gvariant.mkValue v); } "=";
 
   # Generates INI in dconf keyfile style. See https://help.gnome.org/admin/system-admin-guide/stable/dconf-keyfiles.html.en
   # for details.
   toDconfINI = toINI { mkKeyValue = mkDconfKeyValue; };
 
-  /* Generates JSON from an arbitrary (non-function) value.
-    * For more information see the documentation of the builtin.
-    */
-  toJSON = {}: builtins.toJSON;
-
-
-  /* YAML has been a strict superset of JSON since 1.2, so we
-    * use toJSON. Before it only had a few differences referring
-    * to implicit typing rules, so it should work with older
-    * parsers as well.
-    */
-  toYAML = toJSON;
-
   withRecursion =
     {
       /* If this option is not null, the given value will stop evaluating at a certain depth */
@@ -266,7 +295,7 @@ rec {
       /* If this option is true, an error will be thrown, if a certain given depth is exceeded */
     , throwOnDepthLimit ? true
     }:
-      assert builtins.isInt depthLimit;
+      assert isInt depthLimit;
       let
         specialAttrs = [
           "__functor"
@@ -275,7 +304,7 @@ rec {
           "__pretty"
         ];
         stepIntoAttr = evalNext: name:
-          if builtins.elem name specialAttrs
+          if elem name specialAttrs
             then id
             else evalNext;
         transform = depth:
@@ -284,7 +313,7 @@ rec {
               then throw "Exceeded maximum eval-depth limit of ${toString depthLimit} while trying to evaluate with `generators.withRecursion'!"
               else const "<unevaluated>"
           else id;
-        mapAny = with builtins; depth: v:
+        mapAny = depth: v:
           let
             evalNext = x: mapAny (depth + 1) (transform (depth + 1) x);
           in
@@ -311,9 +340,8 @@ rec {
     indent ? ""
   }:
     let
-    go = indent: v: with builtins;
-    let     isPath   = v: typeOf v == "path";
-            introSpace = if multiline then "\n${indent}  " else " ";
+    go = indent: v:
+    let     introSpace = if multiline then "\n${indent}  " else " ";
             outroSpace = if multiline then "\n${indent}" else " ";
     in if   isInt      v then toString v
     # toString loses precision on floats, so we use toJSON instead. This isn't perfect
@@ -322,16 +350,16 @@ rec {
     else if isFloat    v then builtins.toJSON v
     else if isString   v then
       let
-        lines = filter (v: ! isList v) (builtins.split "\n" v);
-        escapeSingleline = libStr.escape [ "\\" "\"" "\${" ];
-        escapeMultiline = libStr.replaceStrings [ "\${" "''" ] [ "''\${" "'''" ];
+        lines = filter (v: ! isList v) (split "\n" v);
+        escapeSingleline = escape [ "\\" "\"" "\${" ];
+        escapeMultiline = replaceStrings [ "\${" "''" ] [ "''\${" "'''" ];
         singlelineResult = "\"" + concatStringsSep "\\n" (map escapeSingleline lines) + "\"";
         multilineResult = let
           escapedLines = map escapeMultiline lines;
           # The last line gets a special treatment: if it's empty, '' is on its own line at the "outer"
           # indentation level. Otherwise, '' is appended to the last line.
-          lastLine = lib.last escapedLines;
-        in "''" + introSpace + concatStringsSep introSpace (lib.init escapedLines)
+          lastLine = last escapedLines;
+        in "''" + introSpace + concatStringsSep introSpace (init escapedLines)
                 + (if lastLine == "" then outroSpace else introSpace + lastLine) + "''";
       in
         if multiline && length lines > 1 then multilineResult else singlelineResult
@@ -342,11 +370,11 @@ rec {
     else if isList     v then
       if v == [] then "[ ]"
       else "[" + introSpace
-        + libStr.concatMapStringsSep introSpace (go (indent + "  ")) v
+        + concatMapStringsSep introSpace (go (indent + "  ")) v
         + outroSpace + "]"
     else if isFunction v then
-      let fna = lib.functionArgs v;
-          showFnas = concatStringsSep ", " (libAttr.mapAttrsToList
+      let fna = functionArgs v;
+          showFnas = concatStringsSep ", " (mapAttrsToList
                        (name: hasDefVal: if hasDefVal then name + "?" else name)
                        fna);
       in if fna == {}    then "<function>"
@@ -359,10 +387,10 @@ rec {
       else if v ? type && v.type == "derivation" then
         "<derivation ${v.name or "???"}>"
       else "{" + introSpace
-          + libStr.concatStringsSep introSpace (libAttr.mapAttrsToList
+          + concatStringsSep introSpace (mapAttrsToList
               (name: value:
-                "${libStr.escapeNixIdentifier name} = ${
-                  builtins.addErrorContext "while evaluating an attribute `${name}`"
+                "${escapeNixIdentifier name} = ${
+                  addErrorContext "while evaluating an attribute `${name}`"
                     (go (indent + "  ") value)
                 };") v)
         + outroSpace + "}"
@@ -371,9 +399,7 @@ rec {
 
   # PLIST handling
   toPlist = {}: v: let
-    isFloat = builtins.isFloat or (x: false);
-    isPath = x: builtins.typeOf x == "path";
-    expr = ind: x:  with builtins;
+    expr = ind: x:
       if x == null  then "" else
       if isBool x   then bool ind x else
       if isInt x    then int ind x else
@@ -394,23 +420,23 @@ rec {
 
     indent = ind: expr "\t${ind}";
 
-    item = ind: libStr.concatMapStringsSep "\n" (indent ind);
+    item = ind: concatMapStringsSep "\n" (indent ind);
 
-    list = ind: x: libStr.concatStringsSep "\n" [
+    list = ind: x: concatStringsSep "\n" [
       (literal ind "<array>")
       (item ind x)
       (literal ind "</array>")
     ];
 
-    attrs = ind: x: libStr.concatStringsSep "\n" [
+    attrs = ind: x: concatStringsSep "\n" [
       (literal ind "<dict>")
       (attr ind x)
       (literal ind "</dict>")
     ];
 
     attr = let attrFilter = name: value: name != "_module" && value != null;
-    in ind: x: libStr.concatStringsSep "\n" (lib.flatten (lib.mapAttrsToList
-      (name: value: lib.optionals (attrFilter name value) [
+    in ind: x: concatStringsSep "\n" (flatten (mapAttrsToList
+      (name: value: optionals (attrFilter name value) [
       (key "\t${ind}" name)
       (expr "\t${ind}" value)
     ]) x));
@@ -426,11 +452,10 @@ ${expr "" v}
    * the Natural type.
   */
   toDhall = { }@args: v:
-    with builtins;
-    let concatItems = lib.strings.concatStringsSep ", ";
+    let concatItems = concatStringsSep ", ";
     in if isAttrs v then
       "{ ${
-        concatItems (lib.attrsets.mapAttrsToList
+        concatItems (mapAttrsToList
           (key: value: "${key} = ${toDhall args value}") v)
       } }"
     else if isList v then
@@ -444,7 +469,7 @@ ${expr "" v}
     else if v == null then
       abort "generators.toDhall: cannot convert a null to Dhall"
     else
-      builtins.toJSON v;
+      toJSON v;
 
   /*
    Translate a simple Nix expression to Lua representation with occasional
@@ -488,7 +513,6 @@ ${expr "" v}
     /* Interpret as variable bindings */
     asBindings ? false,
   }@args: v:
-    with builtins;
     let
       innerIndent = "${indent}  ";
       introSpace = if multiline then "\n${innerIndent}" else " ";
@@ -501,9 +525,9 @@ ${expr "" v}
       isLuaInline = { _type ? null, ... }: _type == "lua-inline";
 
       generatedBindings =
-          assert lib.assertMsg (badVarNames == []) "Bad Lua var names: ${toPretty {} badVarNames}";
-          libStr.concatStrings (
-            lib.attrsets.mapAttrsToList (key: value: "${indent}${key} = ${toLua innerArgs value}\n") v
+          assert assertMsg (badVarNames == []) "Bad Lua var names: ${toPretty {} badVarNames}";
+          concatStrings (
+            mapAttrsToList (key: value: "${indent}${key} = ${toLua innerArgs value}\n") v
             );
 
       # https://en.wikibooks.org/wiki/Lua_Programming/variable#Variable_names
@@ -515,7 +539,7 @@ ${expr "" v}
     else if v == null then
       "nil"
     else if isInt v || isFloat v || isString v || isBool v then
-      builtins.toJSON v
+      toJSON v
     else if isList v then
       (if v == [ ] then "{}" else
       "{${introSpace}${concatItems (map (value: "${toLua innerArgs value}") v)}${outroSpace}}")
@@ -525,11 +549,11 @@ ${expr "" v}
           "(${v.expr})"
         else if v == { } then
           "{}"
-        else if libAttr.isDerivation v then
+        else if isDerivation v then
           ''"${toString v}"''
         else
           "{${introSpace}${concatItems (
-            lib.attrsets.mapAttrsToList (key: value: "[${builtins.toJSON key}] = ${toLua innerArgs value}") v
+            mapAttrsToList (key: value: "[${toJSON key}] = ${toLua innerArgs value}") v
             )}${outroSpace}}"
       )
     else
@@ -542,4 +566,37 @@ ${expr "" v}
      mkLuaInline :: String -> AttrSet
   */
   mkLuaInline = expr: { _type = "lua-inline"; inherit expr; };
+
+in
+
+# Everything in this attrset is the public interface of the file.
+{
+  inherit
+    mkDconfKeyValue
+    mkKeyValueDefault
+    mkLuaInline
+    mkValueStringDefault
+    toDconfINI
+    toDhall
+    toGitINI
+    toINI
+    toINIWithGlobalSection
+    toKeyValue
+    toLua
+    toPlist
+    toPretty
+    withRecursion
+    ;
+
+  /* Generates JSON from an arbitrary (non-function) value.
+    * For more information see the documentation of the builtin.
+    */
+  toJSON = {}: toJSON;
+
+  /* YAML has been a strict superset of JSON since 1.2, so we
+    * use toJSON. Before it only had a few differences referring
+    * to implicit typing rules, so it should work with older
+    * parsers as well.
+    */
+  toYAML = {}: toJSON;
 }
diff --git a/nixpkgs/lib/kernel.nix b/nixpkgs/lib/kernel.nix
index 33da9663a8ed..7391f9e5d079 100644
--- a/nixpkgs/lib/kernel.nix
+++ b/nixpkgs/lib/kernel.nix
@@ -1,6 +1,8 @@
 { lib }:
 
-with lib;
+let
+  inherit (lib) mkIf versionAtLeast versionOlder;
+in
 {
 
 
diff --git a/nixpkgs/lib/licenses.nix b/nixpkgs/lib/licenses.nix
index 30ca31ff71f2..4cda7e5c01a3 100644
--- a/nixpkgs/lib/licenses.nix
+++ b/nixpkgs/lib/licenses.nix
@@ -599,6 +599,11 @@ in mkLicense lset) ({
     url = "https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception";
   };
 
+  giftware = {
+    spdxId = "Giftware";
+    fullName = "Giftware License";
+  };
+
   hpnd = {
     spdxId = "HPND";
     fullName = "Historic Permission Notice and Disclaimer";
@@ -609,6 +614,11 @@ in mkLicense lset) ({
     spdxId = "HPND-sell-variant";
   };
 
+  hpndUc = {
+    spdxId = "HPND-UC";
+    fullName = "Historical Permission Notice and Disclaimer - University of California variant";
+  };
+
   # Intel's license, seems free
   iasl = {
     spdxId = "Intel-ACPI";
@@ -894,6 +904,11 @@ in mkLicense lset) ({
     url = "https://raw.githubusercontent.com/netdata/netdata/master/web/gui/v2/LICENSE.md";
   };
 
+  nistSoftware = {
+    spdxId = "NIST-Software";
+    fullName = "NIST Software License";
+  };
+
   nlpl = {
     spdxId = "NLPL";
     fullName = "No Limit Public License";
@@ -1251,11 +1266,6 @@ in mkLicense lset) ({
   };
 } // {
   # TODO: remove legacy aliases
-  agpl3 = {
-    spdxId = "AGPL-3.0";
-    fullName = "GNU Affero General Public License v3.0";
-    deprecated = true;
-  };
   gpl2 = {
     spdxId = "GPL-2.0";
     fullName = "GNU General Public License v2.0";
diff --git a/nixpkgs/lib/lists.nix b/nixpkgs/lib/lists.nix
index 05216c1a66eb..c162f921280d 100644
--- a/nixpkgs/lib/lists.nix
+++ b/nixpkgs/lib/lists.nix
@@ -1,4 +1,6 @@
-/* General list operations. */
+/**
+  General list operations.
+*/
 { lib }:
 let
   inherit (lib.strings) toInt;
@@ -9,45 +11,112 @@ rec {
 
   inherit (builtins) head tail length isList elemAt concatLists filter elem genList map;
 
-  /*  Create a list consisting of a single element.  `singleton x` is
-      sometimes more convenient with respect to indentation than `[x]`
-      when x spans multiple lines.
+  /**
+    Create a list consisting of a single element. `singleton x` is
+    sometimes more convenient with respect to indentation than `[x]`
+    when x spans multiple lines.
 
-      Type: singleton :: a -> [a]
+    # Inputs
 
-      Example:
-        singleton "foo"
-        => [ "foo" ]
+    `x`
+
+    : 1\. Function argument
+
+    # Type
+
+    ```
+    singleton :: a -> [a]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.singleton` usage example
+
+    ```nix
+    singleton "foo"
+    => [ "foo" ]
+    ```
+
+    :::
   */
   singleton = x: [x];
 
-  /*  Apply the function to each element in the list. Same as `map`, but arguments
-      flipped.
+  /**
+    Apply the function to each element in the list.
+    Same as `map`, but arguments flipped.
+
+    # Inputs
+
+    `xs`
+
+    : 1\. Function argument
+
+    `f`
+
+    : 2\. Function argument
+
+    # Type
+
+    ```
+    forEach :: [a] -> (a -> b) -> [b]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.forEach` usage example
 
-      Type: forEach :: [a] -> (a -> b) -> [b]
+    ```nix
+    forEach [ 1 2 ] (x:
+      toString x
+    )
+    => [ "1" "2" ]
+    ```
 
-      Example:
-        forEach [ 1 2 ] (x:
-          toString x
-        )
-        => [ "1" "2" ]
+    :::
   */
   forEach = xs: f: map f xs;
 
-  /* “right fold†a binary function `op` between successive elements of
-     `list` with `nul` as the starting value, i.e.,
-     `foldr op nul [x_1 x_2 ... x_n] == op x_1 (op x_2 ... (op x_n nul))`.
+  /**
+    “right fold†a binary function `op` between successive elements of
+    `list` with `nul` as the starting value, i.e.,
+    `foldr op nul [x_1 x_2 ... x_n] == op x_1 (op x_2 ... (op x_n nul))`.
+
+
+    # Inputs
+
+    `op`
+
+    : 1\. Function argument
+
+    `nul`
 
-     Type: foldr :: (a -> b -> b) -> b -> [a] -> b
+    : 2\. Function argument
 
-     Example:
-       concat = foldr (a: b: a + b) "z"
-       concat [ "a" "b" "c" ]
-       => "abcz"
-       # different types
-       strange = foldr (int: str: toString (int + 1) + str) "a"
-       strange [ 1 2 3 4 ]
-       => "2345a"
+    `list`
+
+    : 3\. Function argument
+
+    # Type
+
+    ```
+    foldr :: (a -> b -> b) -> b -> [a] -> b
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.foldr` usage example
+
+    ```nix
+    concat = foldr (a: b: a + b) "z"
+    concat [ "a" "b" "c" ]
+    => "abcz"
+    # different types
+    strange = foldr (int: str: toString (int + 1) + str) "a"
+    strange [ 1 2 3 4 ]
+    => "2345a"
+    ```
+
+    :::
   */
   foldr = op: nul: list:
     let
@@ -58,24 +127,53 @@ rec {
         else op (elemAt list n) (fold' (n + 1));
     in fold' 0;
 
-  /* `fold` is an alias of `foldr` for historic reasons */
+  /**
+    `fold` is an alias of `foldr` for historic reasons
+  */
   # FIXME(Profpatsch): deprecate?
   fold = foldr;
 
 
-  /* “left foldâ€, like `foldr`, but from the left:
-     `foldl op nul [x_1 x_2 ... x_n] == op (... (op (op nul x_1) x_2) ... x_n)`.
+  /**
+    “left foldâ€, like `foldr`, but from the left:
+
+    `foldl op nul [x_1 x_2 ... x_n] == op (... (op (op nul x_1) x_2) ... x_n)`.
+
+    # Inputs
+
+    `op`
+
+    : 1\. Function argument
+
+    `nul`
+
+    : 2\. Function argument
+
+    `list`
 
-     Type: foldl :: (b -> a -> b) -> b -> [a] -> b
+    : 3\. Function argument
 
-     Example:
-       lconcat = foldl (a: b: a + b) "z"
-       lconcat [ "a" "b" "c" ]
-       => "zabc"
-       # different types
-       lstrange = foldl (str: int: str + toString (int + 1)) "a"
-       lstrange [ 1 2 3 4 ]
-       => "a2345"
+    # Type
+
+    ```
+    foldl :: (b -> a -> b) -> b -> [a] -> b
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.foldl` usage example
+
+    ```nix
+    lconcat = foldl (a: b: a + b) "z"
+    lconcat [ "a" "b" "c" ]
+    => "zabc"
+    # different types
+    lstrange = foldl (str: int: str + toString (int + 1)) "a"
+    lstrange [ 1 2 3 4 ]
+    => "a2345"
+    ```
+
+    :::
   */
   foldl = op: nul: list:
     let
@@ -85,7 +183,7 @@ rec {
         else op (foldl' (n - 1)) (elemAt list n);
     in foldl' (length list - 1);
 
-  /*
+  /**
     Reduce a list by applying a binary operator from left to right,
     starting with an initial accumulator.
 
@@ -119,131 +217,305 @@ rec {
     op (op (... (op (op (op accâ‚€ xâ‚€) xâ‚) xâ‚‚) ...) xₙ₋â‚) xâ‚™
     ```
 
-    Type: foldl' :: (acc -> x -> acc) -> acc -> [x] -> acc
+    # Inputs
 
-    Example:
-      foldl' (acc: x: acc + x) 0 [1 2 3]
-      => 6
-  */
-  foldl' =
-    /* The binary operation to run, where the two arguments are:
+    `op`
+
+    : The binary operation to run, where the two arguments are:
 
     1. `acc`: The current accumulator value: Either the initial one for the first iteration, or the result of the previous iteration
     2. `x`: The corresponding list element for this iteration
-    */
+
+    `acc`
+
+    : The initial accumulator value.
+
+      The accumulator value is evaluated in any case before the first iteration starts.
+
+      To avoid evaluation even before the `list` argument is given an eta expansion can be used:
+
+      ```nix
+      list: lib.foldl' op acc list
+      ```
+
+    `list`
+
+    : The list to fold
+
+    # Type
+
+    ```
+    foldl' :: (acc -> x -> acc) -> acc -> [x] -> acc
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.foldl'` usage example
+
+    ```nix
+    foldl' (acc: x: acc + x) 0 [1 2 3]
+    => 6
+    ```
+
+    :::
+  */
+  foldl' =
     op:
-    # The initial accumulator value
     acc:
-    # The list to fold
-    list:
-
     # The builtin `foldl'` is a bit lazier than one might expect.
     # See https://github.com/NixOS/nix/pull/7158.
     # In particular, the initial accumulator value is not forced before the first iteration starts.
     builtins.seq acc
-      (builtins.foldl' op acc list);
+      (builtins.foldl' op acc);
+
+  /**
+    Map with index starting from 0
+
+    # Inputs
+
+    `f`
+
+    : 1\. Function argument
 
-  /* Map with index starting from 0
+    `list`
 
-     Type: imap0 :: (int -> a -> b) -> [a] -> [b]
+    : 2\. Function argument
 
-     Example:
-       imap0 (i: v: "${v}-${toString i}") ["a" "b"]
-       => [ "a-0" "b-1" ]
+    # Type
+
+    ```
+    imap0 :: (int -> a -> b) -> [a] -> [b]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.imap0` usage example
+
+    ```nix
+    imap0 (i: v: "${v}-${toString i}") ["a" "b"]
+    => [ "a-0" "b-1" ]
+    ```
+
+    :::
   */
   imap0 = f: list: genList (n: f n (elemAt list n)) (length list);
 
-  /* Map with index starting from 1
+  /**
+    Map with index starting from 1
+
 
-     Type: imap1 :: (int -> a -> b) -> [a] -> [b]
+    # Inputs
 
-     Example:
-       imap1 (i: v: "${v}-${toString i}") ["a" "b"]
-       => [ "a-1" "b-2" ]
+    `f`
+
+    : 1\. Function argument
+
+    `list`
+
+    : 2\. Function argument
+
+    # Type
+
+    ```
+    imap1 :: (int -> a -> b) -> [a] -> [b]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.imap1` usage example
+
+    ```nix
+    imap1 (i: v: "${v}-${toString i}") ["a" "b"]
+    => [ "a-1" "b-2" ]
+    ```
+
+    :::
   */
   imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
 
-  /* Map and concatenate the result.
+  /**
+    Map and concatenate the result.
+
+    # Type
+
+    ```
+    concatMap :: (a -> [b]) -> [a] -> [b]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.concatMap` usage example
 
-     Type: concatMap :: (a -> [b]) -> [a] -> [b]
+    ```nix
+    concatMap (x: [x] ++ ["z"]) ["a" "b"]
+    => [ "a" "z" "b" "z" ]
+    ```
 
-     Example:
-       concatMap (x: [x] ++ ["z"]) ["a" "b"]
-       => [ "a" "z" "b" "z" ]
+    :::
   */
   concatMap = builtins.concatMap;
 
-  /* Flatten the argument into a single list; that is, nested lists are
-     spliced into the top-level lists.
+  /**
+    Flatten the argument into a single list; that is, nested lists are
+    spliced into the top-level lists.
+
+
+    # Inputs
+
+    `x`
+
+    : 1\. Function argument
+
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.flatten` usage example
+
+    ```nix
+    flatten [1 [2 [3] 4] 5]
+    => [1 2 3 4 5]
+    flatten 1
+    => [1]
+    ```
 
-     Example:
-       flatten [1 [2 [3] 4] 5]
-       => [1 2 3 4 5]
-       flatten 1
-       => [1]
+    :::
   */
   flatten = x:
     if isList x
     then concatMap (y: flatten y) x
     else [x];
 
-  /* Remove elements equal to 'e' from a list.  Useful for buildInputs.
+  /**
+    Remove elements equal to 'e' from a list.  Useful for buildInputs.
+
+
+    # Inputs
+
+    `e`
 
-     Type: remove :: a -> [a] -> [a]
+    : Element to remove from `list`
 
-     Example:
-       remove 3 [ 1 3 4 3 ]
-       => [ 1 4 ]
+    `list`
+
+    : The list
+
+    # Type
+
+    ```
+    remove :: a -> [a] -> [a]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.remove` usage example
+
+    ```nix
+    remove 3 [ 1 3 4 3 ]
+    => [ 1 4 ]
+    ```
+
+    :::
   */
   remove =
-    # Element to remove from the list
     e: filter (x: x != e);
 
-  /* Find the sole element in the list matching the specified
-     predicate, returns `default` if no such element exists, or
-     `multiple` if there are multiple matching elements.
+  /**
+    Find the sole element in the list matching the specified
+    predicate.
+
+    Returns `default` if no such element exists, or
+    `multiple` if there are multiple matching elements.
+
+
+    # Inputs
+
+    `pred`
+
+    : Predicate
+
+    `default`
+
+    : Default value to return if element was not found.
+
+    `multiple`
+
+    : Default value to return if more than one element was found
+
+    `list`
+
+    : Input list
 
-     Type: findSingle :: (a -> bool) -> a -> a -> [a] -> a
+    # Type
 
-     Example:
-       findSingle (x: x == 3) "none" "multiple" [ 1 3 3 ]
-       => "multiple"
-       findSingle (x: x == 3) "none" "multiple" [ 1 3 ]
-       => 3
-       findSingle (x: x == 3) "none" "multiple" [ 1 9 ]
-       => "none"
+    ```
+    findSingle :: (a -> bool) -> a -> a -> [a] -> a
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.findSingle` usage example
+
+    ```nix
+    findSingle (x: x == 3) "none" "multiple" [ 1 3 3 ]
+    => "multiple"
+    findSingle (x: x == 3) "none" "multiple" [ 1 3 ]
+    => 3
+    findSingle (x: x == 3) "none" "multiple" [ 1 9 ]
+    => "none"
+    ```
+
+    :::
   */
   findSingle =
-    # Predicate
     pred:
-    # Default value to return if element was not found.
     default:
-    # Default value to return if more than one element was found
     multiple:
-    # Input list
     list:
     let found = filter pred list; len = length found;
     in if len == 0 then default
       else if len != 1 then multiple
       else head found;
 
-  /* Find the first index in the list matching the specified
-     predicate or return `default` if no such element exists.
+  /**
+    Find the first index in the list matching the specified
+    predicate or return `default` if no such element exists.
+
+    # Inputs
+
+    `pred`
+
+    : Predicate
+
+    `default`
+
+    : Default value to return
+
+    `list`
+
+    : Input list
+
+    # Type
+
+    ```
+    findFirstIndex :: (a -> Bool) -> b -> [a] -> (Int | b)
+    ```
 
-     Type: findFirstIndex :: (a -> Bool) -> b -> [a] -> (Int | b)
+    # Examples
+    :::{.example}
+    ## `lib.lists.findFirstIndex` usage example
 
-     Example:
-       findFirstIndex (x: x > 3) null [ 0 6 4 ]
-       => 1
-       findFirstIndex (x: x > 9) null [ 0 6 4 ]
-       => null
+    ```nix
+    findFirstIndex (x: x > 3) null [ 0 6 4 ]
+    => 1
+    findFirstIndex (x: x > 9) null [ 0 6 4 ]
+    => null
+    ```
+
+    :::
   */
   findFirstIndex =
-    # Predicate
     pred:
-    # Default value to return
     default:
-    # Input list
     list:
     let
       # A naive recursive implementation would be much simpler, but
@@ -278,23 +550,46 @@ rec {
     else
       resultIndex;
 
-  /* Find the first element in the list matching the specified
-     predicate or return `default` if no such element exists.
+  /**
+    Find the first element in the list matching the specified
+    predicate or return `default` if no such element exists.
+
+    # Inputs
+
+    `pred`
+
+    : Predicate
+
+    `default`
+
+    : Default value to return
+
+    `list`
 
-     Type: findFirst :: (a -> bool) -> a -> [a] -> a
+    : Input list
+
+    # Type
+
+    ```
+    findFirst :: (a -> bool) -> a -> [a] -> a
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.findFirst` usage example
+
+    ```nix
+    findFirst (x: x > 3) 7 [ 1 6 4 ]
+    => 6
+    findFirst (x: x > 9) 7 [ 1 6 4 ]
+    => 7
+    ```
 
-     Example:
-       findFirst (x: x > 3) 7 [ 1 6 4 ]
-       => 6
-       findFirst (x: x > 9) 7 [ 1 6 4 ]
-       => 7
+    :::
   */
   findFirst =
-    # Predicate
     pred:
-    # Default value to return
     default:
-    # Input list
     list:
     let
       index = findFirstIndex pred null list;
@@ -304,152 +599,359 @@ rec {
     else
       elemAt list index;
 
-  /* Return true if function `pred` returns true for at least one
-     element of `list`.
+  /**
+    Return true if function `pred` returns true for at least one
+    element of `list`.
 
-     Type: any :: (a -> bool) -> [a] -> bool
+    # Inputs
 
-     Example:
-       any isString [ 1 "a" { } ]
-       => true
-       any isString [ 1 { } ]
-       => false
+    `pred`
+
+    : Predicate
+
+    `list`
+
+    : Input list
+
+    # Type
+
+    ```
+    any :: (a -> bool) -> [a] -> bool
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.any` usage example
+
+    ```nix
+    any isString [ 1 "a" { } ]
+    => true
+    any isString [ 1 { } ]
+    => false
+    ```
+
+    :::
   */
   any = builtins.any;
 
-  /* Return true if function `pred` returns true for all elements of
-     `list`.
+  /**
+    Return true if function `pred` returns true for all elements of
+    `list`.
+
+    # Inputs
+
+    `pred`
+
+    : Predicate
+
+    `list`
 
-     Type: all :: (a -> bool) -> [a] -> bool
+    : Input list
 
-     Example:
-       all (x: x < 3) [ 1 2 ]
-       => true
-       all (x: x < 3) [ 1 2 3 ]
-       => false
+    # Type
+
+    ```
+    all :: (a -> bool) -> [a] -> bool
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.all` usage example
+
+    ```nix
+    all (x: x < 3) [ 1 2 ]
+    => true
+    all (x: x < 3) [ 1 2 3 ]
+    => false
+    ```
+
+    :::
   */
   all = builtins.all;
 
-  /* Count how many elements of `list` match the supplied predicate
-     function.
+  /**
+    Count how many elements of `list` match the supplied predicate
+    function.
+
+    # Inputs
+
+    `pred`
+
+    : Predicate
+
+    # Type
+
+    ```
+    count :: (a -> bool) -> [a] -> int
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.count` usage example
 
-     Type: count :: (a -> bool) -> [a] -> int
+    ```nix
+    count (x: x == 3) [ 3 2 3 4 6 ]
+    => 2
+    ```
 
-     Example:
-       count (x: x == 3) [ 3 2 3 4 6 ]
-       => 2
+    :::
   */
   count =
-    # Predicate
     pred: foldl' (c: x: if pred x then c + 1 else c) 0;
 
-  /* Return a singleton list or an empty list, depending on a boolean
-     value.  Useful when building lists with optional elements
-     (e.g. `++ optional (system == "i686-linux") firefox`).
+  /**
+    Return a singleton list or an empty list, depending on a boolean
+    value.  Useful when building lists with optional elements
+    (e.g. `++ optional (system == "i686-linux") firefox`).
+
+    # Inputs
+
+    `cond`
+
+    : 1\. Function argument
+
+    `elem`
+
+    : 2\. Function argument
+
+    # Type
 
-     Type: optional :: bool -> a -> [a]
+    ```
+    optional :: bool -> a -> [a]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.optional` usage example
 
-     Example:
-       optional true "foo"
-       => [ "foo" ]
-       optional false "foo"
-       => [ ]
+    ```nix
+    optional true "foo"
+    => [ "foo" ]
+    optional false "foo"
+    => [ ]
+    ```
+
+    :::
   */
   optional = cond: elem: if cond then [elem] else [];
 
-  /* Return a list or an empty list, depending on a boolean value.
+  /**
+    Return a list or an empty list, depending on a boolean value.
+
+    # Inputs
+
+    `cond`
 
-     Type: optionals :: bool -> [a] -> [a]
+    : Condition
 
-     Example:
-       optionals true [ 2 3 ]
-       => [ 2 3 ]
-       optionals false [ 2 3 ]
-       => [ ]
+    `elems`
+
+    : List to return if condition is true
+
+    # Type
+
+    ```
+    optionals :: bool -> [a] -> [a]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.optionals` usage example
+
+    ```nix
+    optionals true [ 2 3 ]
+    => [ 2 3 ]
+    optionals false [ 2 3 ]
+    => [ ]
+    ```
+
+    :::
   */
   optionals =
-    # Condition
     cond:
-    # List to return if condition is true
     elems: if cond then elems else [];
 
 
-  /* If argument is a list, return it; else, wrap it in a singleton
-     list.  If you're using this, you should almost certainly
-     reconsider if there isn't a more "well-typed" approach.
+  /**
+    If argument is a list, return it; else, wrap it in a singleton
+    list. If you're using this, you should almost certainly
+    reconsider if there isn't a more "well-typed" approach.
+
+    # Inputs
+
+    `x`
+
+    : 1\. Function argument
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.toList` usage example
+
+    ```nix
+    toList [ 1 2 ]
+    => [ 1 2 ]
+    toList "hi"
+    => [ "hi "]
+    ```
 
-     Example:
-       toList [ 1 2 ]
-       => [ 1 2 ]
-       toList "hi"
-       => [ "hi "]
+    :::
   */
   toList = x: if isList x then x else [x];
 
-  /* Return a list of integers from `first` up to and including `last`.
+  /**
+    Return a list of integers from `first` up to and including `last`.
+
+    # Inputs
+
+    `first`
+
+    : First integer in the range
+
+    `last`
+
+    : Last integer in the range
+
+    # Type
+
+    ```
+    range :: int -> int -> [int]
+    ```
 
-     Type: range :: int -> int -> [int]
+    # Examples
+    :::{.example}
+    ## `lib.lists.range` usage example
 
-     Example:
-       range 2 4
-       => [ 2 3 4 ]
-       range 3 2
-       => [ ]
+    ```nix
+    range 2 4
+    => [ 2 3 4 ]
+    range 3 2
+    => [ ]
+    ```
+
+    :::
   */
   range =
-    # First integer in the range
     first:
-    # Last integer in the range
     last:
     if first > last then
       []
     else
       genList (n: first + n) (last - first + 1);
 
-  /* Return a list with `n` copies of an element.
+  /**
+    Return a list with `n` copies of an element.
+
+    # Inputs
+
+    `n`
+
+    : 1\. Function argument
 
-    Type: replicate :: int -> a -> [a]
+    `elem`
 
-    Example:
-      replicate 3 "a"
-      => [ "a" "a" "a" ]
-      replicate 2 true
-      => [ true true ]
+    : 2\. Function argument
+
+    # Type
+
+    ```
+    replicate :: int -> a -> [a]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.replicate` usage example
+
+    ```nix
+    replicate 3 "a"
+    => [ "a" "a" "a" ]
+    replicate 2 true
+    => [ true true ]
+    ```
+
+    :::
   */
   replicate = n: elem: genList (_: elem) n;
 
-  /* Splits the elements of a list in two lists, `right` and
-     `wrong`, depending on the evaluation of a predicate.
+  /**
+    Splits the elements of a list in two lists, `right` and
+    `wrong`, depending on the evaluation of a predicate.
+
+    # Inputs
+
+    `pred`
+
+    : Predicate
+
+    `list`
+
+    : Input list
+
+    # Type
+
+    ```
+    (a -> bool) -> [a] -> { right :: [a]; wrong :: [a]; }
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.partition` usage example
 
-     Type: (a -> bool) -> [a] -> { right :: [a]; wrong :: [a]; }
+    ```nix
+    partition (x: x > 2) [ 5 1 2 3 4 ]
+    => { right = [ 5 3 4 ]; wrong = [ 1 2 ]; }
+    ```
 
-     Example:
-       partition (x: x > 2) [ 5 1 2 3 4 ]
-       => { right = [ 5 3 4 ]; wrong = [ 1 2 ]; }
+    :::
   */
   partition = builtins.partition;
 
-  /* Splits the elements of a list into many lists, using the return value of a predicate.
-     Predicate should return a string which becomes keys of attrset `groupBy` returns.
+  /**
+    Splits the elements of a list into many lists, using the return value of a predicate.
+    Predicate should return a string which becomes keys of attrset `groupBy` returns.
+    `groupBy'` allows to customise the combining function and initial value
+
+    # Inputs
+
+    `op`
+
+    : 1\. Function argument
+
+    `nul`
+
+    : 2\. Function argument
 
-     `groupBy'` allows to customise the combining function and initial value
+    `pred`
 
-     Example:
-       groupBy (x: boolToString (x > 2)) [ 5 1 2 3 4 ]
-       => { true = [ 5 3 4 ]; false = [ 1 2 ]; }
-       groupBy (x: x.name) [ {name = "icewm"; script = "icewm &";}
-                             {name = "xfce";  script = "xfce4-session &";}
-                             {name = "icewm"; script = "icewmbg &";}
-                             {name = "mate";  script = "gnome-session &";}
-                           ]
-       => { icewm = [ { name = "icewm"; script = "icewm &"; }
-                      { name = "icewm"; script = "icewmbg &"; } ];
-            mate  = [ { name = "mate";  script = "gnome-session &"; } ];
-            xfce  = [ { name = "xfce";  script = "xfce4-session &"; } ];
-          }
+    : 3\. Function argument
 
-       groupBy' builtins.add 0 (x: boolToString (x > 2)) [ 5 1 2 3 4 ]
-       => { true = 12; false = 3; }
+    `lst`
+
+    : 4\. Function argument
+
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.groupBy'` usage example
+
+    ```nix
+    groupBy (x: boolToString (x > 2)) [ 5 1 2 3 4 ]
+    => { true = [ 5 3 4 ]; false = [ 1 2 ]; }
+    groupBy (x: x.name) [ {name = "icewm"; script = "icewm &";}
+                          {name = "xfce";  script = "xfce4-session &";}
+                          {name = "icewm"; script = "icewmbg &";}
+                          {name = "mate";  script = "gnome-session &";}
+                        ]
+    => { icewm = [ { name = "icewm"; script = "icewm &"; }
+                   { name = "icewm"; script = "icewmbg &"; } ];
+         mate  = [ { name = "mate";  script = "gnome-session &"; } ];
+         xfce  = [ { name = "xfce";  script = "xfce4-session &"; } ];
+       }
+
+    groupBy' builtins.add 0 (x: boolToString (x > 2)) [ 5 1 2 3 4 ]
+    => { true = 12; false = 3; }
+    ```
+
+    :::
   */
   groupBy' = op: nul: pred: lst: mapAttrs (name: foldl op nul) (groupBy pred lst);
 
@@ -461,68 +963,153 @@ rec {
          r // { ${key} = (r.${key} or []) ++ [e]; }
     ) {});
 
-  /* Merges two lists of the same size together. If the sizes aren't the same
-     the merging stops at the shortest. How both lists are merged is defined
-     by the first argument.
+  /**
+    Merges two lists of the same size together. If the sizes aren't the same
+    the merging stops at the shortest. How both lists are merged is defined
+    by the first argument.
+
+    # Inputs
+
+    `f`
 
-     Type: zipListsWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+    : Function to zip elements of both lists
 
-     Example:
-       zipListsWith (a: b: a + b) ["h" "l"] ["e" "o"]
-       => ["he" "lo"]
+    `fst`
+
+    : First list
+
+    `snd`
+
+    : Second list
+
+    # Type
+
+    ```
+    zipListsWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.zipListsWith` usage example
+
+    ```nix
+    zipListsWith (a: b: a + b) ["h" "l"] ["e" "o"]
+    => ["he" "lo"]
+    ```
+
+    :::
   */
   zipListsWith =
-    # Function to zip elements of both lists
     f:
-    # First list
     fst:
-    # Second list
     snd:
     genList
       (n: f (elemAt fst n) (elemAt snd n)) (min (length fst) (length snd));
 
-  /* Merges two lists of the same size together. If the sizes aren't the same
-     the merging stops at the shortest.
+  /**
+    Merges two lists of the same size together. If the sizes aren't the same
+    the merging stops at the shortest.
+
+    # Inputs
+
+    `fst`
 
-     Type: zipLists :: [a] -> [b] -> [{ fst :: a; snd :: b; }]
+    : First list
 
-     Example:
-       zipLists [ 1 2 ] [ "a" "b" ]
-       => [ { fst = 1; snd = "a"; } { fst = 2; snd = "b"; } ]
+    `snd`
+
+    : Second list
+
+    # Type
+
+    ```
+    zipLists :: [a] -> [b] -> [{ fst :: a; snd :: b; }]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.zipLists` usage example
+
+    ```nix
+    zipLists [ 1 2 ] [ "a" "b" ]
+    => [ { fst = 1; snd = "a"; } { fst = 2; snd = "b"; } ]
+    ```
+
+    :::
   */
   zipLists = zipListsWith (fst: snd: { inherit fst snd; });
 
-  /* Reverse the order of the elements of a list.
+  /**
+    Reverse the order of the elements of a list.
+
+    # Inputs
+
+    `xs`
+
+    : 1\. Function argument
 
-     Type: reverseList :: [a] -> [a]
+    # Type
 
-     Example:
+    ```
+    reverseList :: [a] -> [a]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.reverseList` usage example
 
-       reverseList [ "b" "o" "j" ]
-       => [ "j" "o" "b" ]
+    ```nix
+    reverseList [ "b" "o" "j" ]
+    => [ "j" "o" "b" ]
+    ```
+
+    :::
   */
   reverseList = xs:
     let l = length xs; in genList (n: elemAt xs (l - n - 1)) l;
 
-  /* Depth-First Search (DFS) for lists `list != []`.
+  /**
+    Depth-First Search (DFS) for lists `list != []`.
+
+    `before a b == true` means that `b` depends on `a` (there's an
+    edge from `b` to `a`).
+
+
+    # Inputs
 
-     `before a b == true` means that `b` depends on `a` (there's an
-     edge from `b` to `a`).
+    `stopOnCycles`
 
-     Example:
-         listDfs true hasPrefix [ "/home/user" "other" "/" "/home" ]
-           == { minimal = "/";                  # minimal element
-                visited = [ "/home/user" ];     # seen elements (in reverse order)
-                rest    = [ "/home" "other" ];  # everything else
-              }
+    : 1\. Function argument
 
-         listDfs true hasPrefix [ "/home/user" "other" "/" "/home" "/" ]
-           == { cycle   = "/";                  # cycle encountered at this element
-                loops   = [ "/" ];              # and continues to these elements
-                visited = [ "/" "/home/user" ]; # elements leading to the cycle (in reverse order)
-                rest    = [ "/home" "other" ];  # everything else
+    `before`
 
-   */
+    : 2\. Function argument
+
+    `list`
+
+    : 3\. Function argument
+
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.listDfs` usage example
+
+    ```nix
+    listDfs true hasPrefix [ "/home/user" "other" "/" "/home" ]
+      == { minimal = "/";                  # minimal element
+           visited = [ "/home/user" ];     # seen elements (in reverse order)
+           rest    = [ "/home" "other" ];  # everything else
+         }
+
+    listDfs true hasPrefix [ "/home/user" "other" "/" "/home" "/" ]
+      == { cycle   = "/";                  # cycle encountered at this element
+           loops   = [ "/" ];              # and continues to these elements
+           visited = [ "/" "/home/user" ]; # elements leading to the cycle (in reverse order)
+           rest    = [ "/home" "other" ];  # everything else
+    ```
+
+    :::
+  */
   listDfs = stopOnCycles: before: list:
     let
       dfs' = us: visited: rest:
@@ -540,28 +1127,46 @@ rec {
                           (tail b.right ++ b.wrong);
     in dfs' (head list) [] (tail list);
 
-  /* Sort a list based on a partial ordering using DFS. This
-     implementation is O(N^2), if your ordering is linear, use `sort`
-     instead.
+  /**
+    Sort a list based on a partial ordering using DFS. This
+    implementation is O(N^2), if your ordering is linear, use `sort`
+    instead.
 
-     `before a b == true` means that `b` should be after `a`
-     in the result.
+    `before a b == true` means that `b` should be after `a`
+    in the result.
 
-     Example:
 
-         toposort hasPrefix [ "/home/user" "other" "/" "/home" ]
-           == { result = [ "/" "/home" "/home/user" "other" ]; }
+    # Inputs
 
-         toposort hasPrefix [ "/home/user" "other" "/" "/home" "/" ]
-           == { cycle = [ "/home/user" "/" "/" ]; # path leading to a cycle
-                loops = [ "/" ]; }                # loops back to these elements
+    `before`
 
-         toposort hasPrefix [ "other" "/home/user" "/home" "/" ]
-           == { result = [ "other" "/" "/home" "/home/user" ]; }
+    : 1\. Function argument
 
-         toposort (a: b: a < b) [ 3 2 1 ] == { result = [ 1 2 3 ]; }
+    `list`
 
-   */
+    : 2\. Function argument
+
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.toposort` usage example
+
+    ```nix
+    toposort hasPrefix [ "/home/user" "other" "/" "/home" ]
+      == { result = [ "/" "/home" "/home/user" "other" ]; }
+
+    toposort hasPrefix [ "/home/user" "other" "/" "/home" "/" ]
+      == { cycle = [ "/home/user" "/" "/" ]; # path leading to a cycle
+           loops = [ "/" ]; }                # loops back to these elements
+
+    toposort hasPrefix [ "other" "/home/user" "/home" "/" ]
+      == { result = [ "other" "/" "/home" "/home/user" ]; }
+
+    toposort (a: b: a < b) [ 3 2 1 ] == { result = [ 1 2 3 ]; }
+    ```
+
+    :::
+  */
   toposort = before: list:
     let
       dfsthis = listDfs true before list;
@@ -581,24 +1186,45 @@ rec {
                 else # there are no cycles
                      { result = [ dfsthis.minimal ] ++ toporest.result; };
 
-  /* Sort a list based on a comparator function which compares two
-     elements and returns true if the first argument is strictly below
-     the second argument.  The returned list is sorted in an increasing
-     order.  The implementation does a quick-sort.
+  /**
+    Sort a list based on a comparator function which compares two
+    elements and returns true if the first argument is strictly below
+    the second argument.  The returned list is sorted in an increasing
+    order.  The implementation does a quick-sort.
+
+    See also [`sortOn`](#function-library-lib.lists.sortOn), which applies the
+    default comparison on a function-derived property, and may be more efficient.
+
+    # Inputs
+
+    `comparator`
+
+    : 1\. Function argument
+
+    `list`
+
+    : 2\. Function argument
+
+    # Type
 
-     See also [`sortOn`](#function-library-lib.lists.sortOn), which applies the
-     default comparison on a function-derived property, and may be more efficient.
+    ```
+    sort :: (a -> a -> Bool) -> [a] -> [a]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.sort` usage example
 
-     Example:
-       sort (p: q: p < q) [ 5 3 7 ]
-       => [ 3 5 7 ]
+    ```nix
+    sort (p: q: p < q) [ 5 3 7 ]
+    => [ 3 5 7 ]
+    ```
 
-     Type:
-       sort :: (a -> a -> Bool) -> [a] -> [a]
+    :::
   */
   sort = builtins.sort;
 
-  /*
+  /**
     Sort a list based on the default comparison of a derived property `b`.
 
     The items are returned in `b`-increasing order.
@@ -614,12 +1240,33 @@ rec {
     sortOn f == sort (p: q: f p < f q)
     ```
 
-    Example:
-      sortOn stringLength [ "aa" "b" "cccc" ]
-      => [ "b" "aa" "cccc" ]
 
-    Type:
-      sortOn :: (a -> b) -> [a] -> [a], for comparable b
+    # Inputs
+
+    `f`
+
+    : 1\. Function argument
+
+    `list`
+
+    : 2\. Function argument
+
+    # Type
+
+    ```
+    sortOn :: (a -> b) -> [a] -> [a], for comparable b
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.sortOn` usage example
+
+    ```nix
+    sortOn stringLength [ "aa" "b" "cccc" ]
+    => [ "b" "aa" "cccc" ]
+    ```
+
+    :::
   */
   sortOn = f: list:
     let
@@ -634,17 +1281,40 @@ rec {
           (a: b: head a < head b)
           pairs);
 
-  /* Compare two lists element-by-element.
+  /**
+    Compare two lists element-by-element.
+
+    # Inputs
+
+    `cmp`
+
+    : 1\. Function argument
+
+    `a`
+
+    : 2\. Function argument
+
+    `b`
+
+    : 3\. Function argument
+
 
-     Example:
-       compareLists compare [] []
-       => 0
-       compareLists compare [] [ "a" ]
-       => -1
-       compareLists compare [ "a" ] []
-       => 1
-       compareLists compare [ "a" "b" ] [ "a" "c" ]
-       => -1
+    # Examples
+    :::{.example}
+    ## `lib.lists.compareLists` usage example
+
+    ```nix
+    compareLists compare [] []
+    => 0
+    compareLists compare [] [ "a" ]
+    => -1
+    compareLists compare [ "a" ] []
+    => 1
+    compareLists compare [ "a" "b" ] [ "a" "c" ]
+    => -1
+    ```
+
+    :::
   */
   compareLists = cmp: a: b:
     if a == []
@@ -658,16 +1328,32 @@ rec {
               then compareLists cmp (tail a) (tail b)
               else rel;
 
-  /* Sort list using "Natural sorting".
-     Numeric portions of strings are sorted in numeric order.
+  /**
+    Sort list using "Natural sorting".
+    Numeric portions of strings are sorted in numeric order.
+
+
+    # Inputs
+
+    `lst`
+
+    : 1\. Function argument
+
 
-     Example:
-       naturalSort ["disk11" "disk8" "disk100" "disk9"]
-       => ["disk8" "disk9" "disk11" "disk100"]
-       naturalSort ["10.46.133.149" "10.5.16.62" "10.54.16.25"]
-       => ["10.5.16.62" "10.46.133.149" "10.54.16.25"]
-       naturalSort ["v0.2" "v0.15" "v0.0.9"]
-       => [ "v0.0.9" "v0.2" "v0.15" ]
+    # Examples
+    :::{.example}
+    ## `lib.lists.naturalSort` usage example
+
+    ```nix
+    naturalSort ["disk11" "disk8" "disk100" "disk9"]
+    => ["disk8" "disk9" "disk11" "disk100"]
+    naturalSort ["10.46.133.149" "10.5.16.62" "10.54.16.25"]
+    => ["10.5.16.62" "10.46.133.149" "10.54.16.25"]
+    naturalSort ["v0.2" "v0.15" "v0.0.9"]
+    => [ "v0.0.9" "v0.2" "v0.15" ]
+    ```
+
+    :::
   */
   naturalSort = lst:
     let
@@ -677,61 +1363,149 @@ rec {
     in
       map (x: elemAt x 1) (sort less prepared);
 
-  /* Return the first (at most) N elements of a list.
+  /**
+    Return the first (at most) N elements of a list.
+
+
+    # Inputs
+
+    `count`
+
+    : Number of elements to take
+
+    `list`
 
-     Type: take :: int -> [a] -> [a]
+    : Input list
 
-     Example:
-       take 2 [ "a" "b" "c" "d" ]
-       => [ "a" "b" ]
-       take 2 [ ]
-       => [ ]
+    # Type
+
+    ```
+    take :: int -> [a] -> [a]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.take` usage example
+
+    ```nix
+    take 2 [ "a" "b" "c" "d" ]
+    => [ "a" "b" ]
+    take 2 [ ]
+    => [ ]
+    ```
+
+    :::
   */
   take =
-    # Number of elements to take
     count: sublist 0 count;
 
-  /* Remove the first (at most) N elements of a list.
+  /**
+    Remove the first (at most) N elements of a list.
 
-     Type: drop :: int -> [a] -> [a]
 
-     Example:
-       drop 2 [ "a" "b" "c" "d" ]
-       => [ "c" "d" ]
-       drop 2 [ ]
-       => [ ]
+    # Inputs
+
+    `count`
+
+    : Number of elements to drop
+
+    `list`
+
+    : Input list
+
+    # Type
+
+    ```
+    drop :: int -> [a] -> [a]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.drop` usage example
+
+    ```nix
+    drop 2 [ "a" "b" "c" "d" ]
+    => [ "c" "d" ]
+    drop 2 [ ]
+    => [ ]
+    ```
+
+    :::
   */
   drop =
-    # Number of elements to drop
     count:
-    # Input list
     list: sublist count (length list) list;
 
-  /* Whether the first list is a prefix of the second list.
+  /**
+    Whether the first list is a prefix of the second list.
+
+
+    # Inputs
+
+    `list1`
 
-  Type: hasPrefix :: [a] -> [a] -> bool
+    : 1\. Function argument
 
-  Example:
+    `list2`
+
+    : 2\. Function argument
+
+    # Type
+
+    ```
+    hasPrefix :: [a] -> [a] -> bool
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.hasPrefix` usage example
+
+    ```nix
     hasPrefix [ 1 2 ] [ 1 2 3 4 ]
     => true
     hasPrefix [ 0 1 ] [ 1 2 3 4 ]
     => false
+    ```
+
+    :::
   */
   hasPrefix =
     list1:
     list2:
     take (length list1) list2 == list1;
 
-  /* Remove the first list as a prefix from the second list.
-  Error if the first list isn't a prefix of the second list.
+  /**
+    Remove the first list as a prefix from the second list.
+    Error if the first list isn't a prefix of the second list.
+
+    # Inputs
+
+    `list1`
+
+    : 1\. Function argument
+
+    `list2`
 
-  Type: removePrefix :: [a] -> [a] -> [a]
+    : 2\. Function argument
+
+    # Type
+
+    ```
+    removePrefix :: [a] -> [a] -> [a]
+    ```
 
-  Example:
+    # Examples
+    :::{.example}
+    ## `lib.lists.removePrefix` usage example
+
+    ```nix
     removePrefix [ 1 2 ] [ 1 2 3 4 ]
     => [ 3 4 ]
     removePrefix [ 0 1 ] [ 1 2 3 4 ]
     => <error>
+    ```
+
+    :::
   */
   removePrefix =
     list1:
@@ -741,23 +1515,46 @@ rec {
     else
       throw "lib.lists.removePrefix: First argument is not a list prefix of the second argument";
 
-  /* Return a list consisting of at most `count` elements of `list`,
-     starting at index `start`.
+  /**
+    Return a list consisting of at most `count` elements of `list`,
+    starting at index `start`.
+
+    # Inputs
+
+    `start`
+
+    : Index at which to start the sublist
+
+    `count`
 
-     Type: sublist :: int -> int -> [a] -> [a]
+    : Number of elements to take
 
-     Example:
-       sublist 1 3 [ "a" "b" "c" "d" "e" ]
-       => [ "b" "c" "d" ]
-       sublist 1 3 [ ]
-       => [ ]
+    `list`
+
+    : Input list
+
+    # Type
+
+    ```
+    sublist :: int -> int -> [a] -> [a]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.sublist` usage example
+
+    ```nix
+    sublist 1 3 [ "a" "b" "c" "d" "e" ]
+    => [ "b" "c" "d" ]
+    sublist 1 3 [ ]
+    => [ ]
+    ```
+
+    :::
   */
   sublist =
-    # Index at which to start the sublist
     start:
-    # Number of elements to take
     count:
-    # Input list
     list:
     let len = length list; in
     genList
@@ -766,17 +1563,40 @@ rec {
        else if start + count > len then len - start
        else count);
 
-  /* The common prefix of two lists.
+  /**
+    The common prefix of two lists.
+
+
+    # Inputs
+
+    `list1`
 
-  Type: commonPrefix :: [a] -> [a] -> [a]
+    : 1\. Function argument
 
-  Example:
+    `list2`
+
+    : 2\. Function argument
+
+    # Type
+
+    ```
+    commonPrefix :: [a] -> [a] -> [a]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.commonPrefix` usage example
+
+    ```nix
     commonPrefix [ 1 2 3 4 5 6 ] [ 1 2 4 8 ]
     => [ 1 2 ]
     commonPrefix [ 1 2 3 ] [ 1 2 3 4 5 ]
     => [ 1 2 3 ]
     commonPrefix [ 1 2 3 ] [ 4 5 6 ]
     => [ ]
+    ```
+
+    :::
   */
   commonPrefix =
     list1:
@@ -792,87 +1612,225 @@ rec {
     in
     take commonPrefixLength list1;
 
-  /* Return the last element of a list.
+  /**
+    Return the last element of a list.
+
+    This function throws an error if the list is empty.
+
+
+    # Inputs
 
-     This function throws an error if the list is empty.
+    `list`
 
-     Type: last :: [a] -> a
+    : 1\. Function argument
+
+    # Type
+
+    ```
+    last :: [a] -> a
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.last` usage example
+
+    ```nix
+    last [ 1 2 3 ]
+    => 3
+    ```
 
-     Example:
-       last [ 1 2 3 ]
-       => 3
+    :::
   */
   last = list:
     assert lib.assertMsg (list != []) "lists.last: list must not be empty!";
     elemAt list (length list - 1);
 
-  /* Return all elements but the last.
+  /**
+    Return all elements but the last.
 
-     This function throws an error if the list is empty.
+    This function throws an error if the list is empty.
 
-     Type: init :: [a] -> [a]
 
-     Example:
-       init [ 1 2 3 ]
-       => [ 1 2 ]
+    # Inputs
+
+    `list`
+
+    : 1\. Function argument
+
+    # Type
+
+    ```
+    init :: [a] -> [a]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.init` usage example
+
+    ```nix
+    init [ 1 2 3 ]
+    => [ 1 2 ]
+    ```
+
+    :::
   */
   init = list:
     assert lib.assertMsg (list != []) "lists.init: list must not be empty!";
     take (length list - 1) list;
 
 
-  /* Return the image of the cross product of some lists by a function.
+  /**
+    Return the image of the cross product of some lists by a function.
+
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.crossLists` usage example
 
-    Example:
-      crossLists (x:y: "${toString x}${toString y}") [[1 2] [3 4]]
-      => [ "13" "14" "23" "24" ]
+    ```nix
+    crossLists (x:y: "${toString x}${toString y}") [[1 2] [3 4]]
+    => [ "13" "14" "23" "24" ]
+    ```
+
+    :::
   */
   crossLists = warn
     "lib.crossLists is deprecated, use lib.cartesianProductOfSets instead."
     (f: foldl (fs: args: concatMap (f: map f args) fs) [f]);
 
 
-  /* Remove duplicate elements from the list. O(n^2) complexity.
+  /**
+    Remove duplicate elements from the `list`. O(n^2) complexity.
+
 
-     Type: unique :: [a] -> [a]
+    # Inputs
 
-     Example:
-       unique [ 3 2 3 4 ]
-       => [ 3 2 4 ]
-   */
+    `list`
+
+    : Input list
+
+    # Type
+
+    ```
+    unique :: [a] -> [a]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.unique` usage example
+
+    ```nix
+    unique [ 3 2 3 4 ]
+    => [ 3 2 4 ]
+    ```
+
+    :::
+  */
   unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) [];
 
-  /* Check if list contains only unique elements. O(n^2) complexity.
+  /**
+    Check if list contains only unique elements. O(n^2) complexity.
+
+
+    # Inputs
+
+    `list`
+
+    : 1\. Function argument
+
+    # Type
+
+    ```
+    allUnique :: [a] -> bool
+    ```
 
-     Type: allUnique :: [a] -> bool
+    # Examples
+    :::{.example}
+    ## `lib.lists.allUnique` usage example
 
-     Example:
-       allUnique [ 3 2 3 4 ]
-       => false
-       allUnique [ 3 2 4 1 ]
-       => true
-   */
+    ```nix
+    allUnique [ 3 2 3 4 ]
+    => false
+    allUnique [ 3 2 4 1 ]
+    => true
+    ```
+
+    :::
+  */
   allUnique = list: (length (unique list) == length list);
 
 
-  /* Intersects list 'e' and another list. O(nm) complexity.
+  /**
+    Intersects list 'list1' and another list (`list2`).
+
+    O(nm) complexity.
 
-     Example:
-       intersectLists [ 1 2 3 ] [ 6 3 2 ]
-       => [ 3 2 ]
+    # Inputs
+
+    `list1`
+
+    : First list
+
+    `list2`
+
+    : Second list
+
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.intersectLists` usage example
+
+    ```nix
+    intersectLists [ 1 2 3 ] [ 6 3 2 ]
+    => [ 3 2 ]
+    ```
+
+    :::
   */
   intersectLists = e: filter (x: elem x e);
 
-  /* Subtracts list 'e' from another list. O(nm) complexity.
+  /**
+    Subtracts list 'e' from another list (`list2`).
+
+    O(nm) complexity.
+
+    # Inputs
+
+    `e`
+
+    : First list
+
+    `list2`
+
+    : Second list
+
+
+    # Examples
+    :::{.example}
+    ## `lib.lists.subtractLists` usage example
 
-     Example:
-       subtractLists [ 3 2 ] [ 1 2 3 4 5 3 ]
-       => [ 1 4 5 ]
+    ```nix
+    subtractLists [ 3 2 ] [ 1 2 3 4 5 3 ]
+    => [ 1 4 5 ]
+    ```
+
+    :::
   */
   subtractLists = e: filter (x: !(elem x e));
 
-  /* Test if two lists have no common element.
-     It should be slightly more efficient than (intersectLists a b == [])
+  /**
+    Test if two lists have no common element.
+    It should be slightly more efficient than (intersectLists a b == [])
+
+    # Inputs
+
+    `a`
+
+    : 1\. Function argument
+
+    `b`
+
+    : 2\. Function argument
   */
   mutuallyExclusive = a: b: length a == 0 || !(any (x: elem x a) b);
 
diff --git a/nixpkgs/lib/systems/default.nix b/nixpkgs/lib/systems/default.nix
index 6137d47e91a2..a71ea9209cb8 100644
--- a/nixpkgs/lib/systems/default.nix
+++ b/nixpkgs/lib/systems/default.nix
@@ -243,10 +243,14 @@ rec {
               vncSupport = false;
               gtkSupport = false;
               sdlSupport = false;
+              alsaSupport = false;
               pulseSupport = false;
               pipewireSupport = false;
+              jackSupport = false;
               smbdSupport = false;
               seccompSupport = false;
+              tpmSupport = false;
+              capstoneSupport = false;
               enableDocs = false;
               hostCpuTargets = [ "${final.qemuArch}-linux-user" ];
             };
diff --git a/nixpkgs/lib/tests/misc.nix b/nixpkgs/lib/tests/misc.nix
index 98d1f4e71c48..6f1d9039db80 100644
--- a/nixpkgs/lib/tests/misc.nix
+++ b/nixpkgs/lib/tests/misc.nix
@@ -13,9 +13,96 @@ Alternatively, to run all `lib` tests:
 
   [nixpkgs]$ nix-build lib/tests/release.nix
 */
-with import ../default.nix;
 
 let
+  lib = import ../default.nix;
+
+  inherit (lib)
+    allUnique
+    and
+    attrNames
+    attrsets
+    attrsToList
+    bitAnd
+    bitOr
+    bitXor
+    boolToString
+    callPackagesWith
+    callPackageWith
+    cartesianProductOfSets
+    cli
+    composeExtensions
+    composeManyExtensions
+    concatLines
+    concatMapAttrs
+    concatMapStrings
+    concatStrings
+    concatStringsSep
+    const
+    escapeXML
+    evalModules
+    filter
+    fix
+    fold
+    foldAttrs
+    foldl
+    foldl'
+    foldlAttrs
+    foldr
+    functionArgs
+    generators
+    genList
+    getExe
+    getExe'
+    groupBy
+    groupBy'
+    hasAttrByPath
+    hasInfix
+    id
+    isStorePath
+    lazyDerivation
+    lists
+    listToAttrs
+    makeExtensible
+    makeOverridable
+    mapAttrs
+    matchAttrs
+    mergeAttrs
+    meta
+    mkOption
+    mod
+    nameValuePair
+    optionalDrvAttr
+    optionAttrSetToDocList
+    overrideExisting
+    packagesFromDirectoryRecursive
+    pipe
+    range
+    recursiveUpdateUntil
+    removePrefix
+    replicate
+    runTests
+    setFunctionArgs
+    showAttrPath
+    sort
+    sortOn
+    stringLength
+    strings
+    stringToCharacters
+    systems
+    tail
+    take
+    testAllTrue
+    toBaseDigits
+    toHexString
+    toInt
+    toIntBase10
+    toShellVars
+    types
+    updateManyAttrsByPath
+    versions
+    ;
+
   testingThrow = expr: {
     expr = (builtins.tryEval (builtins.seq expr "didn't throw"));
     expected = { success = false; value = false; };
diff --git a/nixpkgs/lib/tests/modules/alias-with-priority-can-override.nix b/nixpkgs/lib/tests/modules/alias-with-priority-can-override.nix
index 9a18c9d9f613..82a4c0df8cba 100644
--- a/nixpkgs/lib/tests/modules/alias-with-priority-can-override.nix
+++ b/nixpkgs/lib/tests/modules/alias-with-priority-can-override.nix
@@ -6,12 +6,19 @@
 
 { config, lib, ... }:
 
-with lib;
+let
+  inherit (lib)
+    mkAliasOptionModule
+    mkForce
+    mkOption
+    types
+    ;
+in
 
 {
   options = {
     # A simple boolean option that can be enabled or disabled.
-    enable = lib.mkOption {
+    enable = mkOption {
       type = types.nullOr types.bool;
       default = null;
       example = true;
@@ -41,7 +48,7 @@ with lib;
     # should override the next import.
     ( { config, lib, ... }:
       {
-        enableAlias = lib.mkForce false;
+        enableAlias = mkForce false;
       }
     )
 
diff --git a/nixpkgs/lib/tests/modules/alias-with-priority.nix b/nixpkgs/lib/tests/modules/alias-with-priority.nix
index a35a06fc6974..c64a586ab2d1 100644
--- a/nixpkgs/lib/tests/modules/alias-with-priority.nix
+++ b/nixpkgs/lib/tests/modules/alias-with-priority.nix
@@ -6,12 +6,19 @@
 
 { config, lib, ... }:
 
-with lib;
+let
+  inherit (lib)
+    mkAliasOptionModule
+    mkDefault
+    mkOption
+    types
+    ;
+in
 
 {
   options = {
     # A simple boolean option that can be enabled or disabled.
-    enable = lib.mkOption {
+    enable = mkOption {
       type = types.nullOr types.bool;
       default = null;
       example = true;
@@ -41,7 +48,7 @@ with lib;
     # should be able to be overridden by the next import.
     ( { config, lib, ... }:
       {
-        enableAlias = lib.mkDefault false;
+        enableAlias = mkDefault false;
       }
     )
 
diff --git a/nixpkgs/lib/tests/modules/extendModules-168767-imports.nix b/nixpkgs/lib/tests/modules/extendModules-168767-imports.nix
index 489e6b5a5d83..6b50b81236d1 100644
--- a/nixpkgs/lib/tests/modules/extendModules-168767-imports.nix
+++ b/nixpkgs/lib/tests/modules/extendModules-168767-imports.nix
@@ -2,7 +2,14 @@
 , extendModules
 , ...
 }:
-with lib;
+
+let
+  inherit (lib)
+    mkOption
+    mkOverride
+    types
+    ;
+in
 {
   imports = [
 
diff --git a/nixpkgs/lib/trivial.nix b/nixpkgs/lib/trivial.nix
index c197822a4f8e..936ad207c03d 100644
--- a/nixpkgs/lib/trivial.nix
+++ b/nixpkgs/lib/trivial.nix
@@ -16,59 +16,114 @@ in {
 
   ## Simple (higher order) functions
 
-  /* The identity function
-     For when you need a function that does “nothingâ€.
+  /**
+    The identity function
+    For when you need a function that does “nothingâ€.
 
-     Type: id :: a -> a
+
+    # Inputs
+
+    `x`
+
+    : The value to return
+
+    # Type
+
+    ```
+    id :: a -> a
+    ```
   */
-  id =
-    # The value to return
-    x: x;
+  id = x: x;
+
+  /**
+    The constant function
+
+    Ignores the second argument. If called with only one argument,
+    constructs a function that always returns a static value.
+
+
+    # Inputs
+
+    `x`
+
+    : Value to return
+
+    `y`
+
+    : Value to ignore
+
+    # Type
+
+    ```
+    const :: a -> b -> a
+    ```
 
-  /* The constant function
+    # Examples
+    :::{.example}
+    ## `lib.trivial.const` usage example
 
-     Ignores the second argument. If called with only one argument,
-     constructs a function that always returns a static value.
+    ```nix
+    let f = const 5; in f 10
+    => 5
+    ```
 
-     Type: const :: a -> b -> a
-     Example:
-       let f = const 5; in f 10
-       => 5
+    :::
   */
   const =
-    # Value to return
     x:
-    # Value to ignore
     y: x;
 
-  /* Pipes a value through a list of functions, left to right.
+  /**
+    Pipes a value through a list of functions, left to right.
 
-     Type: pipe :: a -> [<functions>] -> <return type of last function>
-     Example:
-       pipe 2 [
-         (x: x + 2)  # 2 + 2 = 4
-         (x: x * 2)  # 4 * 2 = 8
-       ]
-       => 8
+    # Inputs
 
-       # ideal to do text transformations
-       pipe [ "a/b" "a/c" ] [
+    `value`
 
-         # create the cp command
-         (map (file: ''cp "${src}/${file}" $out\n''))
+    : Value to start piping.
 
-         # concatenate all commands into one string
-         lib.concatStrings
+    `fns`
 
-         # make that string into a nix derivation
-         (pkgs.runCommand "copy-to-out" {})
+    : List of functions to apply sequentially.
 
-       ]
-       => <drv which copies all files to $out>
+    # Type
 
-     The output type of each function has to be the input type
-     of the next function, and the last function returns the
-     final value.
+    ```
+    pipe :: a -> [<functions>] -> <return type of last function>
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.trivial.pipe` usage example
+
+    ```nix
+    pipe 2 [
+        (x: x + 2)  # 2 + 2 = 4
+        (x: x * 2)  # 4 * 2 = 8
+      ]
+    => 8
+
+    # ideal to do text transformations
+    pipe [ "a/b" "a/c" ] [
+
+      # create the cp command
+      (map (file: ''cp "${src}/${file}" $out\n''))
+
+      # concatenate all commands into one string
+      lib.concatStrings
+
+      # make that string into a nix derivation
+      (pkgs.runCommand "copy-to-out" {})
+
+    ]
+    => <drv which copies all files to $out>
+
+    The output type of each function has to be the input type
+    of the next function, and the last function returns the
+    final value.
+    ```
+
+    :::
   */
   pipe = builtins.foldl' (x: f: f x);
 
@@ -79,71 +134,197 @@ in {
 
   ## Named versions corresponding to some builtin operators.
 
-  /* Concatenate two lists
+  /**
+    Concatenate two lists
+
+
+    # Inputs
+
+    `x`
+
+    : 1\. Function argument
+
+    `y`
+
+    : 2\. Function argument
 
-     Type: concat :: [a] -> [a] -> [a]
+    # Type
 
-     Example:
-       concat [ 1 2 ] [ 3 4 ]
-       => [ 1 2 3 4 ]
+    ```
+    concat :: [a] -> [a] -> [a]
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.trivial.concat` usage example
+
+    ```nix
+    concat [ 1 2 ] [ 3 4 ]
+    => [ 1 2 3 4 ]
+    ```
+
+    :::
   */
   concat = x: y: x ++ y;
 
-  /* boolean “or†*/
+  /**
+    boolean “orâ€
+
+
+    # Inputs
+
+    `x`
+
+    : 1\. Function argument
+
+    `y`
+
+    : 2\. Function argument
+  */
   or = x: y: x || y;
 
-  /* boolean “and†*/
+  /**
+    boolean “andâ€
+
+
+    # Inputs
+
+    `x`
+
+    : 1\. Function argument
+
+    `y`
+
+    : 2\. Function argument
+  */
   and = x: y: x && y;
 
-  /* bitwise “not†*/
+  /**
+    bitwise “notâ€
+  */
   bitNot = builtins.sub (-1);
 
-  /* Convert a boolean to a string.
+  /**
+    Convert a boolean to a string.
+
+    This function uses the strings "true" and "false" to represent
+    boolean values. Calling `toString` on a bool instead returns "1"
+    and "" (sic!).
+
+
+    # Inputs
+
+    `b`
+
+    : 1\. Function argument
 
-     This function uses the strings "true" and "false" to represent
-     boolean values. Calling `toString` on a bool instead returns "1"
-     and "" (sic!).
+    # Type
 
-     Type: boolToString :: bool -> string
+    ```
+    boolToString :: bool -> string
+    ```
   */
   boolToString = b: if b then "true" else "false";
 
-  /* Merge two attribute sets shallowly, right side trumps left
+  /**
+    Merge two attribute sets shallowly, right side trumps left
+
+    mergeAttrs :: attrs -> attrs -> attrs
+
+
+    # Inputs
+
+    `x`
+
+    : Left attribute set
+
+    `y`
+
+    : Right attribute set (higher precedence for equal keys)
 
-     mergeAttrs :: attrs -> attrs -> attrs
 
-     Example:
-       mergeAttrs { a = 1; b = 2; } { b = 3; c = 4; }
-       => { a = 1; b = 3; c = 4; }
+    # Examples
+    :::{.example}
+    ## `lib.trivial.mergeAttrs` usage example
+
+    ```nix
+    mergeAttrs { a = 1; b = 2; } { b = 3; c = 4; }
+    => { a = 1; b = 3; c = 4; }
+    ```
+
+    :::
   */
   mergeAttrs =
-    # Left attribute set
     x:
-    # Right attribute set (higher precedence for equal keys)
     y: x // y;
 
-  /* Flip the order of the arguments of a binary function.
+  /**
+    Flip the order of the arguments of a binary function.
+
+
+    # Inputs
+
+    `f`
+
+    : 1\. Function argument
+
+    `a`
+
+    : 2\. Function argument
 
-     Type: flip :: (a -> b -> c) -> (b -> a -> c)
+    `b`
 
-     Example:
-       flip concat [1] [2]
-       => [ 2 1 ]
+    : 3\. Function argument
+
+    # Type
+
+    ```
+    flip :: (a -> b -> c) -> (b -> a -> c)
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.trivial.flip` usage example
+
+    ```nix
+    flip concat [1] [2]
+    => [ 2 1 ]
+    ```
+
+    :::
   */
   flip = f: a: b: f b a;
 
-  /* Apply function if the supplied argument is non-null.
+  /**
+    Apply function if the supplied argument is non-null.
+
+
+    # Inputs
 
-     Example:
-       mapNullable (x: x+1) null
-       => null
-       mapNullable (x: x+1) 22
-       => 23
+    `f`
+
+    : Function to call
+
+    `a`
+
+    : Argument to check for null before passing it to `f`
+
+
+    # Examples
+    :::{.example}
+    ## `lib.trivial.mapNullable` usage example
+
+    ```nix
+    mapNullable (x: x+1) null
+    => null
+    mapNullable (x: x+1) 22
+    => 23
+    ```
+
+    :::
   */
   mapNullable =
-    # Function to call
     f:
-    # Argument to check for null before passing it to `f`
     a: if a == null then a else f a;
 
   # Pull in some builtins not included elsewhere.
@@ -155,57 +336,84 @@ in {
 
   ## nixpkgs version strings
 
-  /* Returns the current full nixpkgs version number. */
+  /**
+    Returns the current full nixpkgs version number.
+  */
   version = release + versionSuffix;
 
-  /* Returns the current nixpkgs release number as string. */
+  /**
+    Returns the current nixpkgs release number as string.
+  */
   release = lib.strings.fileContents ./.version;
 
-  /* The latest release that is supported, at the time of release branch-off,
-     if applicable.
+  /**
+    The latest release that is supported, at the time of release branch-off,
+    if applicable.
 
-     Ideally, out-of-tree modules should be able to evaluate cleanly with all
-     supported Nixpkgs versions (master, release and old release until EOL).
-     So if possible, deprecation warnings should take effect only when all
-     out-of-tree expressions/libs/modules can upgrade to the new way without
-     losing support for supported Nixpkgs versions.
+    Ideally, out-of-tree modules should be able to evaluate cleanly with all
+    supported Nixpkgs versions (master, release and old release until EOL).
+    So if possible, deprecation warnings should take effect only when all
+    out-of-tree expressions/libs/modules can upgrade to the new way without
+    losing support for supported Nixpkgs versions.
 
-     This release number allows deprecation warnings to be implemented such that
-     they take effect as soon as the oldest release reaches end of life. */
+    This release number allows deprecation warnings to be implemented such that
+    they take effect as soon as the oldest release reaches end of life.
+  */
   oldestSupportedRelease =
     # Update on master only. Do not backport.
     2311;
 
-  /* Whether a feature is supported in all supported releases (at the time of
-     release branch-off, if applicable). See `oldestSupportedRelease`. */
+  /**
+    Whether a feature is supported in all supported releases (at the time of
+    release branch-off, if applicable). See `oldestSupportedRelease`.
+
+
+    # Inputs
+
+    `release`
+
+    : Release number of feature introduction as an integer, e.g. 2111 for 21.11.
+    Set it to the upcoming release, matching the nixpkgs/.version file.
+  */
   isInOldestRelease =
-    /* Release number of feature introduction as an integer, e.g. 2111 for 21.11.
-       Set it to the upcoming release, matching the nixpkgs/.version file.
-    */
     release:
       release <= lib.trivial.oldestSupportedRelease;
 
-  /* Returns the current nixpkgs release code name.
+  /**
+    Returns the current nixpkgs release code name.
 
-     On each release the first letter is bumped and a new animal is chosen
-     starting with that new letter.
+    On each release the first letter is bumped and a new animal is chosen
+    starting with that new letter.
   */
   codeName = "Uakari";
 
-  /* Returns the current nixpkgs version suffix as string. */
+  /**
+    Returns the current nixpkgs version suffix as string.
+  */
   versionSuffix =
     let suffixFile = ../.version-suffix;
     in if pathExists suffixFile
     then lib.strings.fileContents suffixFile
     else "pre-git";
 
-  /* Attempts to return the the current revision of nixpkgs and
-     returns the supplied default value otherwise.
+  /**
+    Attempts to return the the current revision of nixpkgs and
+    returns the supplied default value otherwise.
+
+
+    # Inputs
+
+    `default`
 
-     Type: revisionWithDefault :: string -> string
+    : Default value to return if revision can not be determined
+
+    # Type
+
+    ```
+    revisionWithDefault :: string -> string
+    ```
   */
   revisionWithDefault =
-    # Default value to return if revision can not be determined
     default:
     let
       revisionFile = "${toString ./..}/.git-revision";
@@ -217,47 +425,115 @@ in {
 
   nixpkgsVersion = warn "lib.nixpkgsVersion is a deprecated alias of lib.version." version;
 
-  /* Determine whether the function is being called from inside a Nix
-     shell.
+  /**
+    Determine whether the function is being called from inside a Nix
+    shell.
 
-     Type: inNixShell :: bool
+    # Type
+
+    ```
+    inNixShell :: bool
+    ```
   */
   inNixShell = builtins.getEnv "IN_NIX_SHELL" != "";
 
-  /* Determine whether the function is being called from inside pure-eval mode
-     by seeing whether `builtins` contains `currentSystem`. If not, we must be in
-     pure-eval mode.
+  /**
+    Determine whether the function is being called from inside pure-eval mode
+    by seeing whether `builtins` contains `currentSystem`. If not, we must be in
+    pure-eval mode.
+
+    # Type
 
-     Type: inPureEvalMode :: bool
+    ```
+    inPureEvalMode :: bool
+    ```
   */
   inPureEvalMode = ! builtins ? currentSystem;
 
   ## Integer operations
 
-  /* Return minimum of two numbers. */
+  /**
+    Return minimum of two numbers.
+
+
+    # Inputs
+
+    `x`
+
+    : 1\. Function argument
+
+    `y`
+
+    : 2\. Function argument
+  */
   min = x: y: if x < y then x else y;
 
-  /* Return maximum of two numbers. */
+  /**
+    Return maximum of two numbers.
+
+
+    # Inputs
+
+    `x`
+
+    : 1\. Function argument
+
+    `y`
+
+    : 2\. Function argument
+  */
   max = x: y: if x > y then x else y;
 
-  /* Integer modulus
+  /**
+    Integer modulus
+
+
+    # Inputs
+
+    `base`
+
+    : 1\. Function argument
+
+    `int`
+
+    : 2\. Function argument
+
 
-     Example:
-       mod 11 10
-       => 1
-       mod 1 10
-       => 1
+    # Examples
+    :::{.example}
+    ## `lib.trivial.mod` usage example
+
+    ```nix
+    mod 11 10
+    => 1
+    mod 1 10
+    => 1
+    ```
+
+    :::
   */
   mod = base: int: base - (int * (builtins.div base int));
 
 
   ## Comparisons
 
-  /* C-style comparisons
+  /**
+    C-style comparisons
+
+    a < b,  compare a b => -1
+    a == b, compare a b => 0
+    a > b,  compare a b => 1
+
+
+    # Inputs
+
+    `a`
+
+    : 1\. Function argument
+
+    `b`
 
-     a < b,  compare a b => -1
-     a == b, compare a b => 0
-     a > b,  compare a b => 1
+    : 2\. Function argument
   */
   compare = a: b:
     if a < b
@@ -266,50 +542,100 @@ in {
          then 1
          else 0;
 
-  /* Split type into two subtypes by predicate `p`, take all elements
-     of the first subtype to be less than all the elements of the
-     second subtype, compare elements of a single subtype with `yes`
-     and `no` respectively.
+  /**
+    Split type into two subtypes by predicate `p`, take all elements
+    of the first subtype to be less than all the elements of the
+    second subtype, compare elements of a single subtype with `yes`
+    and `no` respectively.
+
+
+    # Inputs
+
+    `p`
+
+    : Predicate
+
+    `yes`
+
+    : Comparison function if predicate holds for both values
+
+    `no`
 
-     Type: (a -> bool) -> (a -> a -> int) -> (a -> a -> int) -> (a -> a -> int)
+    : Comparison function if predicate holds for neither value
 
-     Example:
-       let cmp = splitByAndCompare (hasPrefix "foo") compare compare; in
+    `a`
 
-       cmp "a" "z" => -1
-       cmp "fooa" "fooz" => -1
+    : First value to compare
 
-       cmp "f" "a" => 1
-       cmp "fooa" "a" => -1
-       # while
-       compare "fooa" "a" => 1
+    `b`
+
+    : Second value to compare
+
+    # Type
+
+    ```
+    (a -> bool) -> (a -> a -> int) -> (a -> a -> int) -> (a -> a -> int)
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.trivial.splitByAndCompare` usage example
+
+    ```nix
+    let cmp = splitByAndCompare (hasPrefix "foo") compare compare; in
+
+    cmp "a" "z" => -1
+    cmp "fooa" "fooz" => -1
+
+    cmp "f" "a" => 1
+    cmp "fooa" "a" => -1
+    # while
+    compare "fooa" "a" => 1
+    ```
+
+    :::
   */
   splitByAndCompare =
-    # Predicate
-    p:
-    # Comparison function if predicate holds for both values
-    yes:
-    # Comparison function if predicate holds for neither value
-    no:
-    # First value to compare
-    a:
-    # Second value to compare
-    b:
+    p: yes: no: a: b:
     if p a
     then if p b then yes a b else -1
     else if p b then 1 else no a b;
 
 
-  /* Reads a JSON file.
+  /**
+    Reads a JSON file.
 
-     Type: importJSON :: path -> any
+
+    # Inputs
+
+    `path`
+
+    : 1\. Function argument
+
+    # Type
+
+    ```
+    importJSON :: path -> any
+    ```
   */
   importJSON = path:
     builtins.fromJSON (builtins.readFile path);
 
-  /* Reads a TOML file.
+  /**
+    Reads a TOML file.
+
+
+    # Inputs
 
-     Type: importTOML :: path -> any
+    `path`
+
+    : 1\. Function argument
+
+    # Type
+
+    ```
+    importTOML :: path -> any
+    ```
   */
   importTOML = path:
     builtins.fromTOML (builtins.readFile path);
@@ -329,7 +655,7 @@ in {
   # TODO: figure out a clever way to integrate location information from
   # something like __unsafeGetAttrPos.
 
-  /*
+  /**
     Print a warning before returning the second argument. This function behaves
     like `builtins.trace`, but requires a string message and formats it as a
     warning, including the `warning: ` prefix.
@@ -337,28 +663,80 @@ in {
     To get a call stack trace and abort evaluation, set the environment variable
     `NIX_ABORT_ON_WARN=true` and set the Nix options `--option pure-eval false --show-trace`
 
-    Type: string -> a -> a
+    # Inputs
+
+    `msg`
+
+    : Warning message to print.
+
+    `val`
+
+    : Value to return as-is.
+
+    # Type
+
+    ```
+    string -> a -> a
+    ```
   */
   warn =
     if lib.elem (builtins.getEnv "NIX_ABORT_ON_WARN") ["1" "true" "yes"]
     then msg: builtins.trace "warning: ${msg}" (abort "NIX_ABORT_ON_WARN=true; warnings are treated as unrecoverable errors.")
     else msg: builtins.trace "warning: ${msg}";
 
-  /*
+  /**
     Like warn, but only warn when the first argument is `true`.
 
-    Type: bool -> string -> a -> a
+
+    # Inputs
+
+    `cond`
+
+    : 1\. Function argument
+
+    `msg`
+
+    : 2\. Function argument
+
+    `val`
+
+    : Value to return as-is.
+
+    # Type
+
+    ```
+    bool -> string -> a -> a
+    ```
   */
   warnIf = cond: msg: if cond then warn msg else x: x;
 
-  /*
+  /**
     Like warnIf, but negated (warn if the first argument is `false`).
 
-    Type: bool -> string -> a -> a
+
+    # Inputs
+
+    `cond`
+
+    : 1\. Function argument
+
+    `msg`
+
+    : 2\. Function argument
+
+    `val`
+
+    : Value to return as-is.
+
+    # Type
+
+    ```
+    bool -> string -> a -> a
+    ```
   */
   warnIfNot = cond: msg: if cond then x: x else warn msg;
 
-  /*
+  /**
     Like the `assert b; e` expression, but with a custom error message and
     without the semicolon.
 
@@ -369,33 +747,95 @@ in {
     Calls can be juxtaposed using function application, as `(r: r) a = a`, so
     `(r: r) (r: r) a = a`, and so forth.
 
-    Type: bool -> string -> a -> a
 
-    Example:
+    # Inputs
+
+    `cond`
+
+    : 1\. Function argument
 
-        throwIfNot (lib.isList overlays) "The overlays argument to nixpkgs must be a list."
-        lib.foldr (x: throwIfNot (lib.isFunction x) "All overlays passed to nixpkgs must be functions.") (r: r) overlays
-        pkgs
+    `msg`
 
+    : 2\. Function argument
+
+    # Type
+
+    ```
+    bool -> string -> a -> a
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.trivial.throwIfNot` usage example
+
+    ```nix
+    throwIfNot (lib.isList overlays) "The overlays argument to nixpkgs must be a list."
+    lib.foldr (x: throwIfNot (lib.isFunction x) "All overlays passed to nixpkgs must be functions.") (r: r) overlays
+    pkgs
+    ```
+
+    :::
   */
   throwIfNot = cond: msg: if cond then x: x else throw msg;
 
-  /*
+  /**
     Like throwIfNot, but negated (throw if the first argument is `true`).
 
-    Type: bool -> string -> a -> a
+
+    # Inputs
+
+    `cond`
+
+    : 1\. Function argument
+
+    `msg`
+
+    : 2\. Function argument
+
+    # Type
+
+    ```
+    bool -> string -> a -> a
+    ```
   */
   throwIf = cond: msg: if cond then throw msg else x: x;
 
-  /* Check if the elements in a list are valid values from a enum, returning the identity function, or throwing an error message otherwise.
+  /**
+    Check if the elements in a list are valid values from a enum, returning the identity function, or throwing an error message otherwise.
+
+
+    # Inputs
+
+    `msg`
 
-     Example:
-       let colorVariants = ["bright" "dark" "black"]
-       in checkListOfEnum "color variants" [ "standard" "light" "dark" ] colorVariants;
-       =>
-       error: color variants: bright, black unexpected; valid ones: standard, light, dark
+    : 1\. Function argument
 
-     Type: String -> List ComparableVal -> List ComparableVal -> a -> a
+    `valid`
+
+    : 2\. Function argument
+
+    `given`
+
+    : 3\. Function argument
+
+    # Type
+
+    ```
+    String -> List ComparableVal -> List ComparableVal -> a -> a
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.trivial.checkListOfEnum` usage example
+
+    ```nix
+    let colorVariants = ["bright" "dark" "black"]
+    in checkListOfEnum "color variants" [ "standard" "light" "dark" ] colorVariants;
+    =>
+    error: color variants: bright, black unexpected; valid ones: standard, light, dark
+    ```
+
+    :::
   */
   checkListOfEnum = msg: valid: given:
     let
@@ -410,15 +850,27 @@ in {
 
   ## Function annotations
 
-  /* Add metadata about expected function arguments to a function.
-     The metadata should match the format given by
-     builtins.functionArgs, i.e. a set from expected argument to a bool
-     representing whether that argument has a default or not.
-     setFunctionArgs : (a → b) → Map String Bool → (a → b)
+  /**
+    Add metadata about expected function arguments to a function.
+    The metadata should match the format given by
+    builtins.functionArgs, i.e. a set from expected argument to a bool
+    representing whether that argument has a default or not.
+    setFunctionArgs : (a → b) → Map String Bool → (a → b)
 
-     This function is necessary because you can't dynamically create a
-     function of the { a, b ? foo, ... }: format, but some facilities
-     like callPackage expect to be able to query expected arguments.
+    This function is necessary because you can't dynamically create a
+    function of the { a, b ? foo, ... }: format, but some facilities
+    like callPackage expect to be able to query expected arguments.
+
+
+    # Inputs
+
+    `f`
+
+    : 1\. Function argument
+
+    `args`
+
+    : 2\. Function argument
   */
   setFunctionArgs = f: args:
     { # TODO: Should we add call-time "type" checking like built in?
@@ -426,84 +878,133 @@ in {
       __functionArgs = args;
     };
 
-  /* Extract the expected function arguments from a function.
-     This works both with nix-native { a, b ? foo, ... }: style
-     functions and functions with args set with 'setFunctionArgs'. It
-     has the same return type and semantics as builtins.functionArgs.
-     setFunctionArgs : (a → b) → Map String Bool.
+  /**
+    Extract the expected function arguments from a function.
+    This works both with nix-native { a, b ? foo, ... }: style
+    functions and functions with args set with 'setFunctionArgs'. It
+    has the same return type and semantics as builtins.functionArgs.
+    setFunctionArgs : (a → b) → Map String Bool.
+
+
+    # Inputs
+
+    `f`
+
+    : 1\. Function argument
   */
   functionArgs = f:
     if f ? __functor
     then f.__functionArgs or (functionArgs (f.__functor f))
     else builtins.functionArgs f;
 
-  /* Check whether something is a function or something
-     annotated with function args.
+  /**
+    Check whether something is a function or something
+    annotated with function args.
+
+
+    # Inputs
+
+    `f`
+
+    : 1\. Function argument
   */
   isFunction = f: builtins.isFunction f ||
     (f ? __functor && isFunction (f.__functor f));
 
-  /*
+  /**
     `mirrorFunctionArgs f g` creates a new function `g'` with the same behavior as `g` (`g' x == g x`)
     but its function arguments mirroring `f` (`lib.functionArgs g' == lib.functionArgs f`).
 
-    Type:
-      mirrorFunctionArgs :: (a -> b) -> (a -> c) -> (a -> c)
-
-    Example:
-      addab = {a, b}: a + b
-      addab { a = 2; b = 4; }
-      => 6
-      lib.functionArgs addab
-      => { a = false; b = false; }
-      addab1 = attrs: addab attrs + 1
-      addab1 { a = 2; b = 4; }
-      => 7
-      lib.functionArgs addab1
-      => { }
-      addab1' = lib.mirrorFunctionArgs addab addab1
-      addab1' { a = 2; b = 4; }
-      => 7
-      lib.functionArgs addab1'
-      => { a = false; b = false; }
+
+    # Inputs
+
+    `f`
+
+    : Function to provide the argument metadata
+
+    `g`
+
+    : Function to set the argument metadata to
+
+    # Type
+
+    ```
+    mirrorFunctionArgs :: (a -> b) -> (a -> c) -> (a -> c)
+    ```
+
+    # Examples
+    :::{.example}
+    ## `lib.trivial.mirrorFunctionArgs` usage example
+
+    ```nix
+    addab = {a, b}: a + b
+    addab { a = 2; b = 4; }
+    => 6
+    lib.functionArgs addab
+    => { a = false; b = false; }
+    addab1 = attrs: addab attrs + 1
+    addab1 { a = 2; b = 4; }
+    => 7
+    lib.functionArgs addab1
+    => { }
+    addab1' = lib.mirrorFunctionArgs addab addab1
+    addab1' { a = 2; b = 4; }
+    => 7
+    lib.functionArgs addab1'
+    => { a = false; b = false; }
+    ```
+
+    :::
   */
   mirrorFunctionArgs =
-    # Function to provide the argument metadata
     f:
     let
       fArgs = functionArgs f;
     in
-    # Function to set the argument metadata to
     g:
     setFunctionArgs g fArgs;
 
-  /*
+  /**
     Turns any non-callable values into constant functions.
     Returns callable values as is.
 
-    Example:
 
-      nix-repl> lib.toFunction 1 2
-      1
+    # Inputs
+
+    `v`
+
+    : Any value
+
+
+    # Examples
+    :::{.example}
+    ## `lib.trivial.toFunction` usage example
+
+    ```nix
+    nix-repl> lib.toFunction 1 2
+    1
 
-      nix-repl> lib.toFunction (x: x + 1) 2
-      3
+    nix-repl> lib.toFunction (x: x + 1) 2
+    3
+    ```
+
+    :::
   */
   toFunction =
-    # Any value
     v:
     if isFunction v
     then v
     else k: v;
 
-  /* Convert the given positive integer to a string of its hexadecimal
-     representation. For example:
+  /**
+    Convert the given positive integer to a string of its hexadecimal
+    representation. For example:
 
-     toHexString 0 => "0"
+    toHexString 0 => "0"
 
-     toHexString 16 => "10"
+    toHexString 16 => "10"
 
-     toHexString 250 => "FA"
+    toHexString 250 => "FA"
   */
   toHexString = let
     hexDigits = {
@@ -520,14 +1021,26 @@ in {
       else hexDigits.${toString d};
   in i: lib.concatMapStrings toHexDigit (toBaseDigits 16 i);
 
-  /* `toBaseDigits base i` converts the positive integer i to a list of its
-     digits in the given base. For example:
+  /**
+    `toBaseDigits base i` converts the positive integer i to a list of its
+    digits in the given base. For example:
+
+    toBaseDigits 10 123 => [ 1 2 3 ]
+
+    toBaseDigits 2 6 => [ 1 1 0 ]
+
+    toBaseDigits 16 250 => [ 15 10 ]
+
+
+    # Inputs
+
+    `base`
 
-     toBaseDigits 10 123 => [ 1 2 3 ]
+    : 1\. Function argument
 
-     toBaseDigits 2 6 => [ 1 1 0 ]
+    `i`
 
-     toBaseDigits 16 250 => [ 15 10 ]
+    : 2\. Function argument
   */
   toBaseDigits = base: i:
     let
diff --git a/nixpkgs/maintainers/maintainer-list.nix b/nixpkgs/maintainers/maintainer-list.nix
index dfd15d5044b3..8f0dca78eada 100644
--- a/nixpkgs/maintainers/maintainer-list.nix
+++ b/nixpkgs/maintainers/maintainer-list.nix
@@ -761,6 +761,11 @@
     githubId = 786394;
     name = "Alexander Krupenkin ";
   };
+  akshayka = {
+    github = "akshayka";
+    githubId = 1994308;
+    name = "Akshay Agrawal";
+  };
   akshgpt7 = {
     email = "akshgpt7@gmail.com";
     github = "akshgpt7";
@@ -2599,6 +2604,12 @@
     github = "blaggacao";
     githubId = 7548295;
   };
+  blakesmith = {
+    name = "Blake Smith";
+    email = "blakesmith0@gmail.com";
+    github = "blakesmith";
+    githubId = 44368;
+  };
   blankparticle = {
     name = "BlankParticle";
     email = "blankparticle@gmail.com";
@@ -2930,6 +2941,12 @@
     githubId = 37375448;
     name = "Buildit";
   };
+  bwc9876 = {
+    email = "bwc9876@gmail.com";
+    github = "Bwc9876";
+    githubId = 25644444;
+    name = "Ben C";
+  };
   bwlang = {
     email = "brad@langhorst.com";
     github = "bwlang";
@@ -3422,7 +3439,7 @@
     name = "Philipp Dargel";
   };
   chito = {
-    email = "iamchito@protonmail.com";
+    email = "chitochi@proton.me";
     github = "chitochi";
     githubId = 153365419;
     matrix = "@chito:nichijou.dev";
@@ -3446,6 +3463,12 @@
     githubId = 1118859;
     name = "Scott Worley";
   };
+  ChlorideCull = {
+    email = "nixrelated@chcl.se";
+    github = "ChlorideCull";
+    githubId = 4977063;
+    name = "Sebastian Johansson";
+  };
   choochootrain = {
     email = "hurshal@imap.cc";
     github = "choochootrain";
@@ -4247,6 +4270,12 @@
     githubId = 49398;
     name = "Daniël de Kok";
   };
+  daniel-fahey = {
+    name = "Daniel Fahey";
+    email = "daniel.fahey+nixpkgs@pm.me";
+    github = "daniel-fahey";
+    githubId = 7294692;
+  };
   danielfullmer = {
     email = "danielrf12@gmail.com";
     github = "danielfullmer";
@@ -4987,6 +5016,12 @@
     githubId = 283316;
     name = "Dane Lipscombe";
   };
+  dmadisetti = {
+    email = "nix@madisetti.me";
+    github = "dmadisetti";
+    githubId = 2689338;
+    name = "Dylan Madisetti";
+  };
   dmalikov = {
     email = "malikov.d.y@gmail.com";
     github = "dmalikov";
@@ -5594,6 +5629,12 @@
     githubId = 5737945;
     name = "Elia Argentieri";
   };
+  elisesouche = {
+    email = "elise@souche.one";
+    github = "elisesouche";
+    githubId = 161958668;
+    name = "Élise Souche";
+  };
   elitak = {
     email = "elitak@gmail.com";
     github = "elitak";
@@ -5648,6 +5689,12 @@
     githubId = 2536303;
     name = "Enno Lohmeier";
   };
+  elpdt852 = {
+    email = "nix@pdtpartners.com";
+    github = "elpdt852";
+    githubId = 122112154;
+    name = "Edgar Lee";
+  };
   elvishjerricco = {
     email = "elvishjerricco@gmail.com";
     matrix = "@elvishjerricco:matrix.org";
@@ -5765,6 +5812,15 @@
     githubId = 418227;
     name = "Jean-Philippe Braun";
   };
+  eownerdead = {
+    name = "EOWNERDEAD";
+    email = "eownerdead@disroot.org";
+    github = "eownerdead";
+    githubId = 141208772;
+    keys = [{
+      fingerprint = "4715 17D6 2495 A273 4DDB  5661 009E 5630 5CA5 4D63";
+    }];
+  };
   eperuffo = {
     email = "info@emanueleperuffo.com";
     github = "emanueleperuffo";
@@ -6177,6 +6233,12 @@
     githubId = 303897;
     name = "Fabián Heredia Montiel";
   };
+  fabianrig = {
+    email = "fabianrig@posteo.de";
+    github = "fabianrig";
+    githubId = 88741530;
+    name = "Fabian Rigoll";
+  };
   fadenb = {
     email = "tristan.helmich+nixos@gmail.com";
     github = "fadenb";
@@ -6245,12 +6307,12 @@
   };
   federicoschonborn = {
     name = "Federico Damián Schonborn";
-    email = "fdschonborn@gmail.com";
+    email = "federicoschonborn@disroot.org";
     github = "FedericoSchonborn";
     githubId = 62166915;
     matrix = "@FedericoDSchonborn:matrix.org";
     keys = [
-      { fingerprint = "517A 8A6A 09CA A11C 9667  CEE3 193F 70F1 5C9A B0A0"; }
+      { fingerprint = "C43F 4052 D289 3B73 33F8  0259 E4F6 F544 DE9E 29E8"; }
     ];
   };
   fedx-sudo = {
@@ -6630,6 +6692,11 @@
     githubId = 46672819;
     name = "Frido Friedemann";
   };
+  friedrichaltheide = {
+    github = "friedrichaltheide";
+    githubId = 11352905;
+    name = "Friedrich Altheide";
+  };
   frlan = {
     email = "frank@frank.uvena.de";
     github = "frlan";
@@ -7036,6 +7103,12 @@
     github = "getpsyched";
     githubId = 43472218;
   };
+  getreu = {
+    email = "getreu@web.de";
+    github = "getreu";
+    githubId = 579082;
+    name = "Jens Getreu";
+  };
   gfrascadorio = {
     email = "gfrascadorio@tutanota.com";
     github = "gfrascadorio";
@@ -7415,6 +7488,12 @@
     githubId = 21156405;
     name = "GuangTao Zhang";
   };
+  Guanran928 = {
+    email = "guanran928@outlook.com";
+    github = "Guanran928";
+    githubId = 68757440;
+    name = "Guanran928";
+  };
   guekka = {
     github = "Guekka";
     githubId = 39066502;
@@ -7461,6 +7540,13 @@
     githubId = 443978;
     name = "Gabriel Volpe";
   };
+  gwg313 = {
+    email = "gwg313@pm.me";
+    matrix = "@gwg313:matrix.org";
+    github = "gwg313";
+    githubId = 70684146;
+    name = "Glen Goodwin";
+  };
   gytis-ivaskevicius = {
     name = "Gytis Ivaskevicius";
     email = "me@gytis.io";
@@ -7947,6 +8033,12 @@
     githubId = 1614615;
     name = "Hendrik Schaeidt";
   };
+  hsjobeki = {
+    email = "hsjobeki@gmail.com";
+    github = "hsjobeki";
+    githubId = 50398876;
+    name = "Johannes Kirschbauer";
+  };
   htr = {
     email = "hugo@linux.com";
     github = "htr";
@@ -8591,6 +8683,12 @@
     githubId = 2179419;
     name = "Arseniy Seroka";
   };
+  jakedevs = {
+    email = "work@jakedevs.net";
+    github = "jakedevs";
+    githubId = 153585330;
+    name = "Jacob Levi";
+  };
   jakehamilton = {
     name = "Jake Hamilton";
     email = "jake.hamilton@hey.com";
@@ -9224,6 +9322,15 @@
     githubId = 1102396;
     name = "Jussi Maki";
   };
+  joaquintrinanes = {
+    email = "hi@joaquint.io";
+    github = "JoaquinTrinanes";
+    name = "Joaquín Triñanes";
+    githubId = 1385934;
+    keys = [{
+      fingerprint = "3A13 5C15 E1D5 850D 2F90  AB25 6E14 46DD 451C 6BAF";
+    }];
+  };
   jobojeha = {
     email = "jobojeha@jeppener.de";
     github = "jobojeha";
@@ -9398,6 +9505,13 @@
     githubId = 392720;
     name = "Jon Banafato";
   };
+  jonas-w = {
+    email = "nixpkgs@03j.de";
+    github = "jonas-w";
+    githubId = 32615971;
+    name = "Jonas Wunderlich";
+    matrix = "@matrix:03j.de";
+  };
   jonathanmarler = {
     email = "johnnymarler@gmail.com";
     github = "marler8997";
@@ -9410,6 +9524,12 @@
     githubId = 1843676;
     name = "Jonathan Reeve";
   };
+  jonboh = {
+    email = "jon.bosque.hernando@gmail.com";
+    github = "jonboh";
+    githubId = 31407988;
+    name = "Jon Bosque";
+  };
   jonnybolton = {
     email = "jonnybolton@gmail.com";
     github = "jonnynightingale";
@@ -9871,6 +9991,15 @@
     githubId = 1621930;
     name = "Kamil Chmielewski";
   };
+  kamillaova = {
+    name = "Kamilla Ova";
+    email = "me@kamillaova.dev";
+    github = "Kamillaova";
+    githubId = 54859825;
+    keys = [{
+      fingerprint = "B2D0 AA53 8DBE 60B0 0811  3FC0 2D52 5F67 791E 5834";
+    }];
+  };
   kampfschlaefer = {
     email = "arnold@arnoldarts.de";
     github = "kampfschlaefer";
@@ -9970,14 +10099,6 @@
     githubId = 15373888;
     name = "Claudius Holeksa";
   };
-  ken-matsui = {
-    github = "ken-matsui";
-    githubId = 26405363;
-    name = "Ken Matsui";
-    keys = [{
-      fingerprint = "3611 8CD3 6DE8 3334 B44A  DDE4 1033 60B3 298E E433";
-    }];
-  };
   kennyballou = {
     email = "kb@devnulllabs.io";
     github = "kennyballou";
@@ -10571,6 +10692,12 @@
     githubId = 449813;
     name = "Roman Kuznetsov";
   };
+  kuznetsss = {
+    email = "kuzzz99@gmail.com";
+    github = "kuznetsss";
+    githubId = 15742918;
+    name = "Sergey Kuznetsov";
+  };
   kwohlfahrt = {
     email = "kai.wohlfahrt@gmail.com";
     github = "kwohlfahrt";
@@ -12643,6 +12770,12 @@
     githubId = 635591;
     name = "Shahar Dawn Or";
   };
+  mihaimaruseac = {
+    email = "mihaimaruseac@gmail.com";
+    github = "mihaimaruseac";
+    githubId = 323199;
+    name = "Mihai Maruseac";
+  };
   mihnea-s = {
     email = "mihn.stn@gmail.com";
     github = "mihnea-s";
@@ -13608,6 +13741,12 @@
     githubId = 77314501;
     name = "Maurice Zhou";
   };
+  nealfennimore = {
+    email = "hi@neal.codes";
+    github = "nealfennimore";
+    githubId = 5731551;
+    name = "Neal Fennimore";
+  };
   Nebucatnetzer = {
     email = "andreas+nixpkgs@zweili.ch";
     github = "Nebucatnetzer";
@@ -14567,6 +14706,12 @@
     githubId = 111265;
     name = "Ozan Sener";
   };
+  osnyx = {
+    email = "os@flyingcircus.io";
+    github = "osnyx";
+    githubId = 104593071;
+    name = "Oliver Schmidt";
+  };
   ostrolucky = {
     email = "gabriel.ostrolucky@gmail.com";
     github = "ostrolucky";
@@ -14915,6 +15060,12 @@
     githubId = 8641;
     name = "Pierre Carrier";
   };
+  pcasaretto = {
+    email = "pcasaretto@gmail.com";
+    github = "pcasaretto";
+    githubId = 817039;
+    name = "Paulo Casaretto";
+  };
   pedrohlc = {
     email = "root@pedrohlc.com";
     github = "PedroHLC";
@@ -14951,6 +15102,12 @@
     github = "pennae";
     githubId = 82953136;
   };
+  perchun = {
+    name = "Perchun Pak";
+    email = "nixpkgs@perchun.it";
+    github = "PerchunPak";
+    githubId = 68118654;
+  };
   peret = {
     name = "Peter Retzlaff";
     github = "peret";
@@ -15819,7 +15976,7 @@
     githubId = 10837173;
   };
   qjoly = {
-    email = "github@thoughtless.eu";
+    email = "github@une-pause-cafe.fr";
     github = "qjoly";
     githubId = 82603435;
     name = "Quentin JOLY";
@@ -16490,6 +16647,12 @@
     githubId = 641278;
     name = "Robert T. McGibbon";
   };
+  rmgpinto = {
+    email = "hessian_loom_0u@icloud.com";
+    github = "rmgpinto";
+    githubId = 24584;
+    name = "Ricardo Gândara Pinto";
+  };
   rnhmjoj = {
     email = "rnhmjoj@inventati.org";
     matrix = "@rnhmjoj:maxwell.ydns.eu";
@@ -16627,6 +16790,15 @@
     githubId = 1312525;
     name = "Rongcui Dong";
   };
+  rookeur = {
+    email = "adrien.langou@hotmail.com";
+    github = "Rookeur";
+    githubId = 57438432;
+    name = "Adrien Langou";
+    keys = [{
+      fingerprint = "3B8F FC41 0094 2CB4 5A2A  7DF2 5A44 DA8F 9071 91B0";
+    }];
+  };
   roosemberth = {
     email = "roosembert.palacios+nixpkgs@posteo.ch";
     matrix = "@roosemberth:orbstheorem.ch";
@@ -17109,6 +17281,12 @@
     githubId = 1153271;
     name = "Sander van der Burg";
   };
+  Sanskarzz = {
+    email = "sanskar.gur@gmail.com";
+    github = "Sanskarzz";
+    githubId = 92817635;
+    name = "Sanskar Gurdasani";
+  };
   sarcasticadmin = {
     email = "rob@sarcasticadmin.com";
     github = "sarcasticadmin";
@@ -17154,6 +17332,12 @@
     githubId = 8534888;
     name = "Savanni D'Gerinel";
   };
+  savedra1 = {
+    email = "michaelsavedra@gmail.com";
+    github = "savedra1";
+    githubId = 99875823;
+    name = "Michael Savedra";
+  };
   savyajha = {
     email = "savya.jha@hawkradius.com";
     github = "savyajha";
@@ -17550,15 +17734,6 @@
     matrix = "@shamrocklee:matrix.org";
     name = "Yueh-Shun Li";
   };
-  shanesveller = {
-    email = "shane@sveller.dev";
-    github = "shanesveller";
-    githubId = 831;
-    keys = [{
-      fingerprint = "F83C 407C ADC4 5A0F 1F2F  44E8 9210 C218 023C 15CD";
-    }];
-    name = "Shane Sveller";
-  };
   shard7 = {
     email = "sh7user@gmail.com";
     github = "shard77";
@@ -17768,6 +17943,7 @@
   };
   sikmir = {
     email = "sikmir@disroot.org";
+    matrix = "@sikmir:matrix.org";
     github = "sikmir";
     githubId = 688044;
     name = "Nikolay Korotkiy";
@@ -17775,6 +17951,12 @@
       fingerprint = "ADF4 C13D 0E36 1240 BD01  9B51 D1DE 6D7F 6936 63A5";
     }];
   };
+  silky = {
+    name = "Noon van der Silk";
+    email = "noonsilk+nixpkgs@gmail.com";
+    github = "silky";
+    githubId = 129525;
+  };
   Silver-Golden = {
     name = "Brendan Golden";
     email = "github+nixpkgs@brendan.ie";
@@ -17818,7 +18000,7 @@
   };
   sinanmohd = {
     name = "Sinan Mohd";
-    email = "sinan@firemail.cc";
+    email = "sinan@sinanmohd.com";
     matrix = "@sinan:sinanmohd.com";
     github = "sinanmohd";
     githubId = 69694713;
@@ -17949,6 +18131,16 @@
     githubId = 12828415;
     name = "Michel Weitbrecht";
   };
+  slotThe = {
+    name = "Tony Zorman";
+    email = "tonyzorman@mailbox.org";
+    github= "slotThe";
+    matrix = "@slot-:matrix.org";
+    githubId = 50166980;
+    keys = [{
+      fingerprint = "4896 FB6C 9528 46C3 414C 2475 C927 DE8C 7DFD 57B8";
+    }];
+  };
   slwst = {
     email = "email@slw.st";
     github = "slwst";
@@ -18079,6 +18271,12 @@
     githubId = 55726;
     name = "Stanislav Ochotnický";
   };
+  sodiboo = {
+    name = "sodiboo";
+    github = "sodiboo";
+    githubId = 37938646;
+    matrix = "@sodiboo:arcticfoxes.net";
+  };
   softinio = {
     email = "code@softinio.com";
     github = "softinio";
@@ -18241,6 +18439,11 @@
     githubId = 950799;
     name = "Tomasz Czyż";
   };
+  spoonbaker = {
+    github = "Spoonbaker";
+    githubId = 47164123;
+    name = "Spoonbaker";
+  };
   sprock = {
     email = "rmason@mun.ca";
     github = "sprock";
@@ -18341,6 +18544,12 @@
     githubId = 6362238;
     name = "Christoph Honal";
   };
+  starsep = {
+    email = "nix@starsep.com";
+    github = "starsep";
+    githubId = 2798728;
+    name = "Filip Czaplicki";
+  };
   star-szr = {
     email = "nixpkgs@szr.fastmail.com";
     github = "star-szr";
@@ -19171,6 +19380,13 @@
     githubId = 42933;
     name = "Andrew Childs";
   };
+  thefossguy = {
+    name = "Pratham Patel";
+    email = "prathampatel@thefossguy.com";
+    matrix = "@thefossguy:matrix.org";
+    github = "thefossguy";
+    githubId = 44400303;
+  };
   thehedgeh0g = {
     name = "The Hedgehog";
     email = "hedgehog@mrhedgehog.xyz";
@@ -19196,6 +19412,12 @@
     githubId = 3105057;
     name = "Jan Beinke";
   };
+  themaxmur = {
+    name = "Maxim Muravev";
+    email = "muravjev.mak@yandex.ru";
+    github = "TheMaxMur";
+    githubId = 31189199;
+  };
   thenonameguy = {
     email = "thenonameguy24@gmail.com";
     name = "Krisztian Szabo";
@@ -19864,6 +20086,12 @@
       fingerprint = "E631 8869 586F 99B4 F6E6  D785 5942 58F0 389D 2802";
     }];
   };
+  twitchy0 = {
+    email = "code@nitinpassa.com";
+    github = "twitchy0";
+    githubId = 131159000;
+    name = "Nitin Passa";
+  };
   twitchyliquid64 = {
     name = "Tom";
     email = "twitchyliquid64@ciphersink.net";
@@ -20829,6 +21057,12 @@
     githubId = 15619766;
     name = "wldhx";
   };
+  w-lfchen = {
+    email = "w-lfchen@posteo.net";
+    github = "w-lfchen";
+    githubId = 115360611;
+    name = "Wölfchen";
+  };
   wmertens = {
     email = "Wout.Mertens@gmail.com";
     github = "wmertens";
@@ -21071,6 +21305,12 @@
     githubId = 3028542;
     name = "Guillermo NWDD";
   };
+  xokdvium = {
+    email = "xokdvium@proton.me";
+    github = "xokdvium";
+    githubId = 145775305;
+    name = "Sergei Zimmerman";
+  };
   xrelkd = {
     github = "xrelkd";
     githubId = 46590321;
@@ -21141,6 +21381,12 @@
     github = "yanganto";
     githubId = 10803111;
   };
+  yannickulrich = {
+    email = "yannick.ulrich@proton.me";
+    github = "yannickulrich";
+    githubId = 749922;
+    name = "Yannick Ulrich";
+  };
   yannip = {
     email = "yPapandreou7@gmail.com";
     github = "YanniPapandreou";
diff --git a/nixpkgs/maintainers/scripts/bootstrap-files/README.md b/nixpkgs/maintainers/scripts/bootstrap-files/README.md
index b55878f34192..7a1a2bef867c 100644
--- a/nixpkgs/maintainers/scripts/bootstrap-files/README.md
+++ b/nixpkgs/maintainers/scripts/bootstrap-files/README.md
@@ -6,8 +6,9 @@ binaries (without the reliance on external inputs):
 - `bootstrap-tools`: an archive with the compiler toolchain and other
   helper tools enough to build the rest of the `nixpkgs`.
 - initial binaries needed to unpack `bootstrap-tools.*`. On `linux`
-  it's just `busybox`, on `darwin` it's `sh`, `bzip2`, `mkdir` and
-  `cpio`. These binaries can be executed directly from the store.
+  it's just `busybox`, on `darwin` it is unpack.nar.xz which contains
+  the binaries and script needed to unpack the tools. These binaries
+  can be executed directly from the store.
 
 These are called "bootstrap files".
 
@@ -74,12 +75,3 @@ There are two types of bootstrap files:
 The `.build` job contains `/on-server/` subdirectory with binaries to
 be uploaded to `tarballs.nixos.org`.
 The files are uploaded to `tarballs.nixos.org` by writers to `S3` store.
-
-## TODOs
-
-- `pkgs/stdenv/darwin` file layout is slightly different from
-  `pkgs/stdenv/linux`. Once `linux` seed update becomes a routine we can
-  bring `darwin` in sync if it's feasible.
-- `darwin` definition of `.build` `on-server/` directory layout differs
-  and should be updated.
-
diff --git a/nixpkgs/maintainers/scripts/bootstrap-files/refresh-tarballs.bash b/nixpkgs/maintainers/scripts/bootstrap-files/refresh-tarballs.bash
index 21c43ade27f1..e7bf27f24046 100755
--- a/nixpkgs/maintainers/scripts/bootstrap-files/refresh-tarballs.bash
+++ b/nixpkgs/maintainers/scripts/bootstrap-files/refresh-tarballs.bash
@@ -6,6 +6,8 @@
 #! nix-shell -p nix
 #! nix-shell -p jq
 
+set -o pipefail
+
 # How the refresher works:
 #
 # For a given list of <targets>:
@@ -15,6 +17,9 @@
 # 4. calculate hashes and craft the commit message with the details on
 #    how to upload the result to 'tarballs.nixos.org'
 
+scratch_dir=$(mktemp -d)
+trap 'rm -rf -- "${scratch_dir}"' EXIT
+
 usage() {
     cat >&2 <<EOF
 Usage:
@@ -67,14 +72,8 @@ NATIVE_TARGETS=(
     i686-unknown-linux-gnu
     x86_64-unknown-linux-gnu
     x86_64-unknown-linux-musl
-
-    # TODO: add darwin here once a few prerequisites are satisfied:
-    #   - bootstrap-files are factored out into a separate file
-    #   - the build artifacts are factored out into an `on-server`
-    #     directory. Right onw if does not match `linux` layout.
-    #
-    #aarch64-apple-darwin
-    #x86_64-apple-darwin
+    aarch64-apple-darwin
+    x86_64-apple-darwin
 )
 
 is_native() {
@@ -93,6 +92,7 @@ CROSS_TARGETS=(
     mips64el-unknown-linux-gnuabi64
     mips64el-unknown-linux-gnuabin32
     mipsel-unknown-linux-gnu
+    powerpc64-unknown-linux-gnuabielfv2
     powerpc64le-unknown-linux-gnu
     riscv64-unknown-linux-gnu
 )
@@ -105,6 +105,20 @@ is_cross() {
     return 1
 }
 
+nar_sri_get() {
+    local restore_path store_path
+    ((${#@} != 2)) && die "nar_sri_get /path/to/name.nar.xz name"
+    restore_path="${scratch_dir}/$2"
+    xz -d < "$1" | nix-store --restore "${restore_path}"
+    [[ $? -ne 0 ]] && die "Failed to unpack '$1'"
+
+    store_path=$(nix-store --add "${restore_path}")
+    [[ $? -ne 0 ]] && die "Failed to add '$restore_path' to store"
+    rm -rf -- "${restore_path}"
+
+    nix-hash --to-sri "$(nix-store --query --hash "${store_path}")"
+}
+
 # collect passed options
 
 targets=()
@@ -221,6 +235,7 @@ EOF
           case "$fname" in
               bootstrap-tools.tar.xz) attr=bootstrapTools ;;
               busybox) attr=$fname ;;
+              unpack.nar.xz) attr=unpack ;;
               *) die "Don't know how to map '$fname' to attribute name. Please update me."
           esac
 
@@ -228,18 +243,31 @@ EOF
           executable_nix=
           if [[ -x "$p" ]]; then
               executable_arg="--executable"
-              executable_nix="    executable = true;"
+              executable_nix="executable = true;"
+          fi
+          unpack_nix=
+          name_nix=
+          if [[ $fname = *.nar.xz ]]; then
+              unpack_nix="unpack = true;"
+              name_nix="name = \"${fname%.nar.xz}\";"
+              sri=$(nar_sri_get "$p" "${fname%.nar.xz}")
+              [[ $? -ne 0 ]] && die "Failed to get hash of '$p'"
+          else
+              sha256=$(nix-prefetch-url $executable_arg --name "$fname" "file://$p")
+              [[ $? -ne 0 ]] && die "Failed to get the hash for '$p'"
+              sri=$(nix-hash --to-sri "sha256:$sha256")
+              [[ $? -ne 0 ]] && die "Failed to convert '$sha256' hash to an SRI form"
           fi
-          sha256=$(nix-prefetch-url $executable_arg --name "$fname" "file://$p")
-          [[ $? -ne 0 ]] && die "Failed to get the hash for '$p'"
-          sri=$(nix-hash --to-sri "sha256:$sha256")
-          [[ $? -ne 0 ]] && die "Failed to convert '$sha256' hash to an SRI form"
 
           # individual file entries
           cat <<EOF
   $attr = import <nix/fetchurl.nix> {
     url = "http://tarballs.nixos.org/${s3_prefix}/${nixpkgs_revision}/$fname";
-    hash = "${sri}";$(printf "\n%s" "${executable_nix}")
+    hash = "${sri}";$(
+    [[ -n ${executable_nix} ]] && printf "\n    %s" "${executable_nix}"
+    [[ -n ${name_nix} ]]       && printf "\n    %s" "${name_nix}"
+    [[ -n ${unpack_nix} ]]     && printf "\n    %s" "${unpack_nix}"
+)
   };
 EOF
       done
diff --git a/nixpkgs/maintainers/scripts/haskell/dependencies.nix b/nixpkgs/maintainers/scripts/haskell/dependencies.nix
index fd8338c0029a..5965b1ba1828 100644
--- a/nixpkgs/maintainers/scripts/haskell/dependencies.nix
+++ b/nixpkgs/maintainers/scripts/haskell/dependencies.nix
@@ -2,8 +2,10 @@
 let
   pkgs = import ../../.. {};
   inherit (pkgs) lib;
-  getDeps = _: pkg: {
-    deps = builtins.filter (x: x != null) (map (x: x.pname or null) (pkg.propagatedBuildInputs or []));
+  getDeps = _: pkg: let
+    pname = pkg.pname or null;
+  in {
+    deps = builtins.filter (x: x != null && x != pname) (map (x: x.pname or null) (pkg.propagatedBuildInputs or []));
     broken = (pkg.meta.hydraPlatforms or [null]) == [];
   };
 in
diff --git a/nixpkgs/maintainers/scripts/haskell/hydra-report.hs b/nixpkgs/maintainers/scripts/haskell/hydra-report.hs
index 8b4f798cc543..e911830e8b3e 100755
--- a/nixpkgs/maintainers/scripts/haskell/hydra-report.hs
+++ b/nixpkgs/maintainers/scripts/haskell/hydra-report.hs
@@ -83,7 +83,7 @@ import Prelude hiding (id)
 import Data.List (sortOn)
 import Control.Concurrent.Async (concurrently)
 import Control.Exception (evaluate)
-import qualified Data.IntMap.Strict as IntMap
+import qualified Data.IntMap.Lazy as IntMap
 import qualified Data.IntSet as IntSet
 import Data.Bifunctor (second)
 import Data.Data (Proxy)
@@ -299,7 +299,7 @@ calculateReverseDependencies depMap =
    Map.fromDistinctAscList $ zip keys (zip (rdepMap False) (rdepMap True))
  where
     -- This code tries to efficiently invert the dependency map and calculate
-    -- it’s transitive closure by internally identifying every pkg with it’s index
+    -- its transitive closure by internally identifying every pkg with its index
     -- in the package list and then using memoization.
     keys :: [PkgName]
     keys = Map.keys depMap
@@ -317,11 +317,11 @@ calculateReverseDependencies depMap =
     intDeps :: [(Int, (Bool, [Int]))]
     intDeps = zip [0..] (fmap depInfoToIdx depInfos)
 
-    rdepMap onlyUnbroken = IntSet.size <$> resultList
+    rdepMap onlyUnbroken = IntSet.size <$> IntMap.elems resultList
      where
-       resultList = go <$> [0..]
+       resultList = IntMap.fromDistinctAscList [(i, go i) | i <- [0..length keys - 1]]
        oneStepMap = IntMap.fromListWith IntSet.union $ (\(key,(_,deps)) -> (,IntSet.singleton key) <$> deps) <=< filter (\(_, (broken,_)) -> not (broken && onlyUnbroken)) $ intDeps
-       go pkg = IntSet.unions (oneStep:((resultList !!) <$> IntSet.toList oneStep))
+       go pkg = IntSet.unions (oneStep:((resultList IntMap.!) <$> IntSet.toList oneStep))
         where oneStep = IntMap.findWithDefault mempty pkg oneStepMap
 
 -- | Generate a mapping of Hydra job names to maintainer GitHub handles. Calls
diff --git a/nixpkgs/maintainers/scripts/haskell/regenerate-hackage-packages.sh b/nixpkgs/maintainers/scripts/haskell/regenerate-hackage-packages.sh
index 96a18aa8ed87..8f629c53102f 100755
--- a/nixpkgs/maintainers/scripts/haskell/regenerate-hackage-packages.sh
+++ b/nixpkgs/maintainers/scripts/haskell/regenerate-hackage-packages.sh
@@ -66,10 +66,6 @@ done
 
 HACKAGE2NIX="${HACKAGE2NIX:-hackage2nix}"
 
-# To prevent hackage2nix fails because of encoding.
-# See: https://github.com/NixOS/nixpkgs/pull/122023
-export LC_ALL=C.UTF-8
-
 config_dir=pkgs/development/haskell-modules/configuration-hackage2nix
 
 run_hackage2nix() {
diff --git a/nixpkgs/maintainers/scripts/haskell/update-stackage.sh b/nixpkgs/maintainers/scripts/haskell/update-stackage.sh
index 5dc52abdd668..fdb1cd184f69 100755
--- a/nixpkgs/maintainers/scripts/haskell/update-stackage.sh
+++ b/nixpkgs/maintainers/scripts/haskell/update-stackage.sh
@@ -8,7 +8,7 @@ set -eu -o pipefail
 # (should be capitalized like the display name)
 SOLVER=LTS
 # Stackage solver verson, if any. Use latest if empty
-VERSION=21
+VERSION=
 TMP_TEMPLATE=update-stackage.XXXXXXX
 readonly SOLVER
 readonly VERSION
diff --git a/nixpkgs/maintainers/scripts/kde/generate-sources.py b/nixpkgs/maintainers/scripts/kde/generate-sources.py
index 380213ee6907..7b3b2ac35d26 100755
--- a/nixpkgs/maintainers/scripts/kde/generate-sources.py
+++ b/nixpkgs/maintainers/scripts/kde/generate-sources.py
@@ -4,6 +4,7 @@ import base64
 import binascii
 import json
 import pathlib
+from typing import Optional
 from urllib.parse import urlparse
 
 import bs4
@@ -57,19 +58,26 @@ def to_sri(hash):
     ),
     default=pathlib.Path(__file__).parent.parent.parent.parent
 )
-def main(set: str, version: str, nixpkgs: pathlib.Path):
+@click.option(
+    "--sources-url",
+    type=str,
+    default=None,
+)
+def main(set: str, version: str, nixpkgs: pathlib.Path, sources_url: Optional[str]):
     root_dir = nixpkgs / "pkgs/kde"
     set_dir = root_dir / set
     generated_dir = root_dir / "generated"
     metadata = utils.KDERepoMetadata.from_json(generated_dir)
 
-    set_url = {
-        "frameworks": "kf",
-        "gear": "releases",
-        "plasma": "plasma",
-    }[set]
+    if sources_url is None:
+        set_url = {
+            "frameworks": "kf",
+            "gear": "releases",
+            "plasma": "plasma",
+        }[set]
+        sources_url = f"https://kde.org/info/sources/source-{set_url}-{version}.html"
 
-    sources = httpx.get(f"https://kde.org/info/sources/source-{set_url}-{version}.html")
+    sources = httpx.get(sources_url)
     sources.raise_for_status()
     bs = bs4.BeautifulSoup(sources.text, features="html.parser")
 
diff --git a/nixpkgs/maintainers/scripts/luarocks-packages.csv b/nixpkgs/maintainers/scripts/luarocks-packages.csv
index 939905ab81d9..fd6c59c0b46f 100644
--- a/nixpkgs/maintainers/scripts/luarocks-packages.csv
+++ b/nixpkgs/maintainers/scripts/luarocks-packages.csv
@@ -95,6 +95,7 @@ magick,,,,,5.1,donovanglover
 markdown,,,,,,
 mediator_lua,,,,,,
 middleclass,,,,,,
+mimetypes,,,,,,
 mpack,,,,,,
 moonscript,https://github.com/leafo/moonscript.git,dev-1,,,,arobyn
 nlua,,,,,,teto
@@ -116,6 +117,7 @@ stdlib,,,,41.2.2,,vyp
 teal-language-server,,,http://luarocks.org/dev,,,
 telescope.nvim,,,,,5.1,
 telescope-manix,,,,,,
+tiktoken_core,,,,,,natsukium
 tl,,,,,,mephistophiles
 toml,,,,,,mrcjkb
 toml-edit,,,,,5.1,mrcjkb
diff --git a/nixpkgs/maintainers/scripts/nix-generate-from-cpan.nix b/nixpkgs/maintainers/scripts/nix-generate-from-cpan.nix
index bf48a5318611..a8135f4b304a 100644
--- a/nixpkgs/maintainers/scripts/nix-generate-from-cpan.nix
+++ b/nixpkgs/maintainers/scripts/nix-generate-from-cpan.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation {
   meta = {
     maintainers = with lib.maintainers; [ eelco ];
     description = "Utility to generate a Nix expression for a Perl package from CPAN";
+    mainProgram = "nix-generate-from-cpan";
     platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/maintainers/scripts/nixpkgs-lint.nix b/nixpkgs/maintainers/scripts/nixpkgs-lint.nix
index 873905373af0..b400ce034b3e 100644
--- a/nixpkgs/maintainers/scripts/nixpkgs-lint.nix
+++ b/nixpkgs/maintainers/scripts/nixpkgs-lint.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     maintainers = [ maintainers.eelco ];
     description = "A utility for Nixpkgs contributors to check Nixpkgs for common errors";
+    mainProgram = "nixpkgs-lint";
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/maintainers/team-list.nix b/nixpkgs/maintainers/team-list.nix
index 000b1300ac46..0f481ed3eb9d 100644
--- a/nixpkgs/maintainers/team-list.nix
+++ b/nixpkgs/maintainers/team-list.nix
@@ -96,6 +96,15 @@ with lib.maintainers; {
     shortName = "Blockchains";
   };
 
+  budgie = {
+    members = [
+      bobby285271
+      federicoschonborn
+    ];
+    scope = "Maintain Budgie desktop environment";
+    shortName = "Budgie";
+  };
+
   buildbot = {
     members = [
       lopsided98
@@ -303,6 +312,8 @@ with lib.maintainers; {
       dpausp
       frlan
       leona
+      osnyx
+      ma27
     ];
     scope = "Team for Flying Circus employees who collectively maintain packages.";
     shortName = "Flying Circus employees";
@@ -869,6 +880,7 @@ with lib.maintainers; {
     members = [
       Madouura
       Flakebi
+      mschwaig
     ];
     githubTeams = [
       "rocm-maintainers"
diff --git a/nixpkgs/nixos/doc/manual/default.nix b/nixpkgs/nixos/doc/manual/default.nix
index a368b16201f8..5f51bb53ad7f 100644
--- a/nixpkgs/nixos/doc/manual/default.nix
+++ b/nixpkgs/nixos/doc/manual/default.nix
@@ -105,7 +105,9 @@ in rec {
       mkdir -p $dst
 
       cp ${../../../doc/style.css} $dst/style.css
-      cp ${../../../doc/overrides.css} $dst/overrides.css
+      cp ${../../../doc/anchor.min.js} $dst/anchor.min.js
+      cp ${../../../doc/anchor-use.js} $dst/anchor-use.js
+
       cp -r ${pkgs.documentation-highlighter} $dst/highlightjs
 
       ${prepareManualFromMD}
@@ -115,10 +117,11 @@ in rec {
         --revision ${lib.escapeShellArg revision} \
         --generator "nixos-render-docs ${lib.version}" \
         --stylesheet style.css \
-        --stylesheet overrides.css \
         --stylesheet highlightjs/mono-blue.css \
         --script ./highlightjs/highlight.pack.js \
         --script ./highlightjs/loader.js \
+        --script ./anchor.min.js \
+        --script ./anchor-use.js \
         --toc-depth 1 \
         --chunk-toc-depth 1 \
         ./manual.md \
diff --git a/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.section.md b/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.section.md
index 84b247fd2042..50886376c240 100644
--- a/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.section.md
+++ b/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.section.md
@@ -261,7 +261,7 @@ added using the parameter `extraPythonPackages`. For example, you could add
 
   testScript = ''
     import numpy as np
-    assert str(np.zeros(4) == "array([0., 0., 0., 0.])")
+    assert str(np.zeros(4)) == "[0. 0. 0. 0.]"
   '';
 }
 ```
diff --git a/nixpkgs/nixos/doc/manual/installation/installing.chapter.md b/nixpkgs/nixos/doc/manual/installation/installing.chapter.md
index 815bcc071cd9..c7deb07352f1 100644
--- a/nixpkgs/nixos/doc/manual/installation/installing.chapter.md
+++ b/nixpkgs/nixos/doc/manual/installation/installing.chapter.md
@@ -272,6 +272,9 @@ update /etc/fstab.
     # parted /dev/sda -- mkpart ESP fat32 1MB 512MB
     # parted /dev/sda -- set 3 esp on
     ```
+    ::: {.note}
+    In case you decided to not create a swap partition, replace `3` by `2`. To be sure of the id number of ESP, run `parted --list`.
+    :::
 
 Once complete, you can follow with
 [](#sec-installation-manual-partitioning-formatting).
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-2405.section.md b/nixpkgs/nixos/doc/manual/release-notes/rl-2405.section.md
index 665e8590fc42..19ff6f4485cd 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/rl-2405.section.md
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-2405.section.md
@@ -42,6 +42,12 @@ In addition to numerous new and upgraded packages, this release has the followin
 - A new option `system.etc.overlay.enable` was added. If enabled, `/etc` is
   mounted via an overlayfs instead of being created by a custom perl script.
 
+- NixOS AMIs are now uploaded regularly to a new AWS Account.
+  Instructions on how to use them can be found on <https://nixos.github.io/amis>.
+  We are working on integration the data into the NixOS homepage.
+  The list in `nixos/modules/virtualisation/amazon-ec2-amis.nix` will stop
+  being updated and will be removed in the future.
+
 - It is now possible to have a completely perlless system (i.e. a system
   without perl). Previously, the NixOS activation depended on two perl scripts
   which can now be replaced via an opt-in mechanism. To make your system
@@ -76,6 +82,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - [ollama](https://ollama.ai), server for running large language models locally.
 
+- [Mihomo](https://github.com/MetaCubeX/mihomo), a rule-based proxy in Go. Available as [services.mihomo.enable](#opt-services.mihomo.enable).
+
 - [hebbot](https://github.com/haecker-felix/hebbot), a Matrix bot to generate "This Week in X" like blog posts. Available as [services.hebbot](#opt-services.hebbot.enable).
 
 - [Python Matter Server](https://github.com/home-assistant-libs/python-matter-server), a
@@ -97,8 +105,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [Monado](https://monado.freedesktop.org/), an open source XR runtime. Available as [services.monado](#opt-services.monado.enable).
 
+- [Pretix](https://pretix.eu/about/en/), an open source ticketing software for events. Available as [services.pretix]($opt-services-pretix.enable).
+
 - [Clevis](https://github.com/latchset/clevis), a pluggable framework for automated decryption, used to unlock encrypted devices in initrd. Available as [boot.initrd.clevis.enable](#opt-boot.initrd.clevis.enable).
 
+- [fritz-exporter](https://github.com/pdreker/fritz_exporter), a Prometheus exporter for extracting metrics from [FRITZ!](https://avm.de/produkte/) devices. Available as [services.prometheus.exporters.fritz](#opt-services.prometheus.exporters.fritz.enable).
+
 - [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
 
 - [TuxClocker](https://github.com/Lurkki14/tuxclocker), a hardware control and monitoring program. Available as [programs.tuxclocker](#opt-programs.tuxclocker.enable).
@@ -117,11 +129,15 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
 
+- `k3s`: was updated to version [v1.29](https://github.com/k3s-io/k3s/releases/tag/v1.29.1%2Bk3s2), all previous versions (k3s_1_26, k3s_1_27, k3s_1_28) will be removed. See [changelog and upgrade notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md#urgent-upgrade-notes) for more information.
+
 - `himalaya` was updated to `v1.0.0-beta.3`, which introduces breaking changes. Check out the [release note](https://github.com/soywod/himalaya/releases/tag/v1.0.0-beta.3) for details.
 
 - The `power.ups` module now generates `upsd.conf`, `upsd.users` and `upsmon.conf` automatically from a set of new configuration options. This breaks compatibility with existing `power.ups` setups where these files were created manually. Back up these files before upgrading NixOS.
 
-- `k3s` was updated to [v1.29](https://github.com/k3s-io/k3s/releases/tag/v1.29.1%2Bk3s2). See [changelog and upgrade notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md#urgent-upgrade-notes) for more information.
+- `pdns` was updated to version [v4.9.x](https://doc.powerdns.com/authoritative/changelog/4.9.html), which introduces breaking changes. Check out the [Upgrade Notes](https://doc.powerdns.com/authoritative/upgrading.html#to-4-9-0) for details.
+
+- `unrar` was updated to v7. See [changelog](https://www.rarlab.com/unrar7notes.htm) for more information.
 
 - `k9s` was updated to v0.31. There have been various breaking changes in the config file format,
   check out the changelog of [v0.29](https://github.com/derailed/k9s/releases/tag/v0.29.0),
@@ -129,6 +145,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
   [v0.31](https://github.com/derailed/k9s/releases/tag/v0.31.0) for details. It is recommended
   to back up your current configuration and let k9s recreate the new base configuration.
 
+- NixOS AMIs are now uploaded regularly to a new AWS Account.
+  Instructions on how to use them can be found on <https://nixos.github.io/amis>.
+  We are working on integration the data into the NixOS homepage.
+  The list in `nixos/modules/virtualisation/amazon-ec2-amis.nix` will stop
+  being updated and will be removed in the future.
+
 - The option `services.postgresql.ensureUsers._.ensurePermissions` has been removed as it's
   not declarative and is broken with newer postgresql versions. Consider using
   [](#opt-services.postgresql.ensureUsers._.ensureDBOwnership)
@@ -136,6 +158,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `idris2` was updated to v0.7.0. This version introduces breaking changes. Check out the [changelog](https://github.com/idris-lang/Idris2/blob/v0.7.0/CHANGELOG.md#v070) for details.
 
+- `nvtop` family of packages was reorganized into nested attrset. `nvtop` has been renamed to `nvtopPackages.full`, and all `nvtop-{amd,nvidia,intel,msm}` packages are now named as `nvtopPackages.{amd,nvidia,intel,msm}`
+
 - `neo4j` has been updated to 5, you may want to read the [release notes for Neo4j 5](https://neo4j.com/release-notes/database/neo4j-5/)
 
 - `services.neo4j.allowUpgrade` was removed and no longer has any effect. Neo4j 5 supports automatic rolling upgrades.
@@ -153,6 +177,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - Invidious has changed its default database username from `kemal` to `invidious`. Setups involving an externally provisioned database (i.e. `services.invidious.database.createLocally == false`) should adjust their configuration accordingly. The old `kemal` user will not be removed automatically even when the database is provisioned automatically.(https://github.com/NixOS/nixpkgs/pull/265857)
 
+- `writeReferencesToFile` is deprecated in favour of the new trivial build helper `writeClosure`. The latter accepts a list of paths and has an unambiguous name and cleaner implementation.
+
 - `inetutils` now has a lower priority to avoid shadowing the commonly used `util-linux`. If one wishes to restore the default priority, simply use `lib.setPrio 5 inetutils` or override with `meta.priority = 5`.
 
 - `paperless`' `services.paperless.extraConfig` setting has been removed and converted to the freeform type and option named `services.paperless.settings`.
@@ -306,7 +332,14 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `addDriverRunpath` has been added to facilitate the deprecation of the old `addOpenGLRunpath` setuphook. This change is motivated by the evolution of the setuphook to include all hardware acceleration.
 
-- Cinnamon has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release.
+- Cinnamon has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
+
+- MATE has been updated to 1.28.
+  - To properly support panel plugins built with Wayland (in-process) support, we are introducing `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets.
+  - Similarly, please use `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions.
+  - To use the Wayland session, enable `services.xserver.desktopManager.mate.enableWaylandSession`. This is opt-in for now as it is in early stage and introduces a new set of Wayfire closure. Due to [known issues with LightDM](https://github.com/canonical/lightdm/issues/63), we suggest using SDDM for display manager.
+
+- The Budgie module installs gnome-terminal by default (instead of mate-terminal).
 
 - New `boot.loader.systemd-boot.xbootldrMountPoint` allows setting up a separate [XBOOTLDR partition](https://uapi-group.org/specifications/specs/boot_loader_specification/) to store boot files. Useful on systems with a small EFI System partition that cannot be easily repartitioned.
 
@@ -333,6 +366,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [Lilypond](https://lilypond.org/index.html) and [Denemo](https://www.denemo.org) are now compiled with Guile 3.0.
 
+- The EC2 image module now enables the [Amazon SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html) by default.
+
 - The following options of the Nextcloud module were moved into [`services.nextcloud.settings`](#opt-services.nextcloud.settings) and renamed to match the name from Nextcloud's `config.php`:
   - `logLevel` -> [`loglevel`](#opt-services.nextcloud.settings.loglevel),
   - `logType` -> [`log_type`](#opt-services.nextcloud.settings.log_type),
@@ -375,6 +410,9 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [Nginx virtual hosts](#opt-services.nginx.virtualHosts) using `forceSSL` or
   `globalRedirect` can now have redirect codes other than 301 through
+
+- `bacula` now allows to configure `TLS` for encrypted communication.
+
   `redirectCode`.
 
 - `libjxl` 0.9.0 [dropped support for the butteraugli API](https://github.com/libjxl/libjxl/pull/2576). You will no longer be able to set `enableButteraugli` on `libaom`.
@@ -425,4 +463,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 - QtMultimedia has changed its default backend to `QT_MEDIA_BACKEND=ffmpeg` (previously `gstreamer` on Linux or `darwin` on MacOS).
   The previous native backends remain available but are now minimally maintained. Refer to [upstream documentation](https://doc.qt.io/qt-6/qtmultimedia-index.html#ffmpeg-as-the-default-backend) for further details about each platform.
 
-- The oil shell is now using the c++ version by default. The python based build is still available as `oil-python`
+- The oil shell's c++ version is now available as `oils-for-unix`. The python version is still available as `oil`
+
+- `documentation.man.mandoc` now by default uses `MANPATH` to set the directories where mandoc will search for manual pages.
+  This enables mandoc to find manual pages in Nix profiles. To set the manual search paths via the `mandoc.conf` configuration file like before, use `documentation.man.mandoc.settings.manpath` instead.
diff --git a/nixpkgs/nixos/lib/make-iso9660-image.nix b/nixpkgs/nixos/lib/make-iso9660-image.nix
index 2f7dcf519a16..ec520f570682 100644
--- a/nixpkgs/nixos/lib/make-iso9660-image.nix
+++ b/nixpkgs/nixos/lib/make-iso9660-image.nix
@@ -1,4 +1,4 @@
-{ stdenv, closureInfo, xorriso, syslinux, libossp_uuid
+{ lib, stdenv, callPackage, closureInfo, xorriso, syslinux, libossp_uuid, squashfsTools
 
 , # The file name of the resulting ISO image.
   isoName ? "cd.iso"
@@ -16,6 +16,17 @@
   # symlink to `object' that will be added to the CD.
   storeContents ? []
 
+, # In addition to `contents', the closure of the store paths listed
+  # in `squashfsContents' is compressed as squashfs and the result is
+  # placed in /nix-store.squashfs on the CD.
+  # FIXME: This is a performance optimization to avoid Hydra copying
+  # the squashfs between builders and should be removed when Hydra
+  # is smarter about scheduling.
+  squashfsContents ? []
+
+, # Compression settings for squashfs
+  squashfsCompression ? "xz -Xdict-size 100%"
+
 , # Whether this should be an El-Torito bootable CD.
   bootable ? false
 
@@ -45,12 +56,20 @@ assert bootable -> bootImage != "";
 assert efiBootable -> efiBootImage != "";
 assert usbBootable -> isohybridMbrImage != "";
 
+let
+  needSquashfs = squashfsContents != [];
+  makeSquashfsDrv = callPackage ./make-squashfs.nix {
+    storeContents = squashfsContents;
+    comp = squashfsCompression;
+  };
+in
 stdenv.mkDerivation {
   name = isoName;
   __structuredAttrs = true;
 
   buildCommandPath = ./make-iso9660-image.sh;
-  nativeBuildInputs = [ xorriso syslinux zstd libossp_uuid ];
+  nativeBuildInputs = [ xorriso syslinux zstd libossp_uuid ]
+    ++ lib.optionals needSquashfs makeSquashfsDrv.nativeBuildInputs;
 
   inherit isoName bootable bootImage compressImage volumeID efiBootImage efiBootable isohybridMbrImage usbBootable;
 
@@ -60,6 +79,8 @@ stdenv.mkDerivation {
   objects = map (x: x.object) storeContents;
   symlinks = map (x: x.symlink) storeContents;
 
+  squashfsCommand = lib.optionalString needSquashfs makeSquashfsDrv.buildCommand;
+
   # For obtaining the closure of `storeContents'.
   closureInfo = closureInfo { rootPaths = map (x: x.object) storeContents; };
 }
diff --git a/nixpkgs/nixos/lib/make-iso9660-image.sh b/nixpkgs/nixos/lib/make-iso9660-image.sh
index 34febe9cfe0e..5881195e461f 100644
--- a/nixpkgs/nixos/lib/make-iso9660-image.sh
+++ b/nixpkgs/nixos/lib/make-iso9660-image.sh
@@ -68,6 +68,11 @@ for i in $(< $closureInfo/store-paths); do
     addPath "${i:1}" "$i"
 done
 
+# If needed, build a squashfs and add that
+if [[ -n "$squashfsCommand" ]]; then
+    (out="nix-store.squashfs" eval "$squashfsCommand")
+    addPath "nix-store.squashfs" "nix-store.squashfs"
+fi
 
 # Also include a manifest of the closures in a format suitable for
 # nix-store --load-db.
diff --git a/nixpkgs/nixos/lib/make-options-doc/default.nix b/nixpkgs/nixos/lib/make-options-doc/default.nix
index 284934a7608e..09a4022845e0 100644
--- a/nixpkgs/nixos/lib/make-options-doc/default.nix
+++ b/nixpkgs/nixos/lib/make-options-doc/default.nix
@@ -1,20 +1,95 @@
-/* Generate JSON, XML and DocBook documentation for given NixOS options.
+/**
+  Generates documentation for [nix modules](https://nix.dev/tutorials/module-system/module-system.html).
 
-   Minimal example:
+  It uses the declared `options` to generate documentation in various formats.
 
-    { pkgs,  }:
+  # Outputs
 
-    let
-      eval = import (pkgs.path + "/nixos/lib/eval-config.nix") {
-        baseModules = [
-          ../module.nix
-        ];
-        modules = [];
-      };
-    in pkgs.nixosOptionsDoc {
-      options = eval.options;
+  This function returns an attribute set with the following entries.
+
+  ## optionsCommonMark
+
+  Documentation in CommonMark text format.
+
+  ## optionsJSON
+
+  All options in a JSON format suitable for further automated processing.
+
+  `example.json`
+  ```json
+  {
+    ...
+    "fileSystems.<name>.options": {
+      "declarations": ["nixos/modules/tasks/filesystems.nix"],
+      "default": {
+        "_type": "literalExpression",
+        "text": "[\n  \"defaults\"\n]"
+      },
+      "description": "Options used to mount the file system.",
+      "example": {
+        "_type": "literalExpression",
+        "text": "[\n  \"data=journal\"\n]"
+      },
+      "loc": ["fileSystems", "<name>", "options"],
+      "readOnly": false,
+      "type": "non-empty (list of string (with check: non-empty))"
+      "relatedPackages": "- [`pkgs.tmux`](\n    https://search.nixos.org/packages?show=tmux&sort=relevance&query=tmux\n  )\n",
+    },
+    ...
+  }
+  ```
+
+  ## optionsDocBook
+
+  deprecated since 23.11 and will be removed in 24.05.
+
+  ## optionsAsciiDoc
+
+  Documentation rendered as AsciiDoc. This is useful for e.g. man pages.
+
+  > Note: NixOS itself uses this ouput to to build the configuration.nix man page"
+
+  ## optionsNix
+
+  All options as a Nix attribute set value, with the same schema as `optionsJSON`.
+
+  # Example
+
+  ## Example: NixOS configuration
+
+  ```nix
+  let
+    # Evaluate a NixOS configuration
+    eval = import (pkgs.path + "/nixos/lib/eval-config.nix") {
+      # Overriden explicitly here, this would include all modules from NixOS otherwise.
+      # See: docs of eval-config.nix for more details
+      baseModules = [];
+      modules = [
+        ./module.nix
+      ];
+    };
+  in
+    pkgs.nixosOptionsDoc {
+      inherit (eval) options;
     }
+  ```
+
+  ## Example: non-NixOS modules
+
+  `nixosOptionsDoc` can also be used to build documentation for non-NixOS modules.
 
+  ```nix
+  let
+    eval = lib.evalModules {
+      modules = [
+        ./module.nix
+      ];
+    };
+  in
+    pkgs.nixosOptionsDoc {
+      inherit (eval) options;
+    }
+  ```
 */
 { pkgs
 , lib
diff --git a/nixpkgs/nixos/lib/systemd-lib.nix b/nixpkgs/nixos/lib/systemd-lib.nix
index ef218e674ebf..c00b2d0f207c 100644
--- a/nixpkgs/nixos/lib/systemd-lib.nix
+++ b/nixpkgs/nixos/lib/systemd-lib.nix
@@ -73,13 +73,26 @@ in rec {
     optional (attr ? ${name} && (! isMacAddress attr.${name} && attr.${name} != "none"))
       "Systemd ${group} field `${name}` must be a valid MAC address or the special value `none`.";
 
-
+  isNumberOrRangeOf = check: v:
+    if isInt v
+    then check v
+    else let
+      parts = splitString "-" v;
+      lower = toIntBase10 (head parts);
+      upper = if tail parts != [] then toIntBase10 (head (tail parts)) else lower;
+    in
+      length parts <= 2 && lower <= upper && check lower && check upper;
   isPort = i: i >= 0 && i <= 65535;
+  isPortOrPortRange = isNumberOrRangeOf isPort;
 
   assertPort = name: group: attr:
     optional (attr ? ${name} && ! isPort attr.${name})
       "Error on the systemd ${group} field `${name}': ${attr.name} is not a valid port number.";
 
+  assertPortOrPortRange = name: group: attr:
+    optional (attr ? ${name} && ! isPortOrPortRange attr.${name})
+      "Error on the systemd ${group} field `${name}': ${attr.name} is not a valid port number or range of port numbers.";
+
   assertValueOneOf = name: values: group: attr:
     optional (attr ? ${name} && !elem attr.${name} values)
       "Systemd ${group} field `${name}' cannot have value `${toString attr.${name}}'.";
diff --git a/nixpkgs/nixos/lib/utils.nix b/nixpkgs/nixos/lib/utils.nix
index 49ba2e5c8386..22a2c79843c6 100644
--- a/nixpkgs/nixos/lib/utils.nix
+++ b/nixpkgs/nixos/lib/utils.nix
@@ -64,8 +64,8 @@ rec {
     let
       s = if builtins.isPath arg then "${arg}"
         else if builtins.isString arg then arg
-        else if builtins.isInt arg || builtins.isFloat arg then toString arg
-        else throw "escapeSystemdExecArg only allows strings, paths and numbers";
+        else if builtins.isInt arg || builtins.isFloat arg || lib.isDerivation arg then toString arg
+        else throw "escapeSystemdExecArg only allows strings, paths, numbers and derivations";
     in
       replaceStrings [ "%" "$" ] [ "%%" "$$" ] (builtins.toJSON s);
 
diff --git a/nixpkgs/nixos/modules/config/nix.nix b/nixpkgs/nixos/modules/config/nix.nix
index e6a74bbb73fc..a40953a3a3c9 100644
--- a/nixpkgs/nixos/modules/config/nix.nix
+++ b/nixpkgs/nixos/modules/config/nix.nix
@@ -14,8 +14,10 @@ let
     concatStringsSep
     boolToString
     escape
+    filterAttrs
     floatToString
     getVersion
+    hasPrefix
     isBool
     isDerivation
     isFloat
@@ -95,14 +97,19 @@ let
 
       mkKeyValuePairs = attrs: concatStringsSep "\n" (mapAttrsToList mkKeyValue attrs);
 
+      isExtra = key: hasPrefix "extra-" key;
+
     in
     pkgs.writeTextFile {
       name = "nix.conf";
+      # workaround for https://github.com/NixOS/nix/issues/9487
+      # extra-* settings must come after their non-extra counterpart
       text = ''
         # WARNING: this file is generated from the nix.* options in
         # your NixOS configuration, typically
         # /etc/nixos/configuration.nix.  Do not edit it!
-        ${mkKeyValuePairs cfg.settings}
+        ${mkKeyValuePairs (filterAttrs (key: value: !(isExtra key)) cfg.settings)}
+        ${mkKeyValuePairs (filterAttrs (key: value: isExtra key) cfg.settings)}
         ${cfg.extraOptions}
       '';
       checkPhase = lib.optionalString cfg.checkConfig (
@@ -345,7 +352,7 @@ in
             show-trace = true;
 
             system-features = [ "big-parallel" "kvm" "recursive-nix" ];
-            sandbox-paths = { "/bin/sh" = "''${pkgs.busybox-sandbox-shell.out}/bin/busybox"; };
+            sandbox-paths = [ "/bin/sh=''${pkgs.busybox-sandbox-shell.out}/bin/busybox" ];
           }
         '';
         description = lib.mdDoc ''
diff --git a/nixpkgs/nixos/modules/config/no-x-libs.nix b/nixpkgs/nixos/modules/config/no-x-libs.nix
index 870b3fe77cca..fea6e0c4110b 100644
--- a/nixpkgs/nixos/modules/config/no-x-libs.nix
+++ b/nixpkgs/nixos/modules/config/no-x-libs.nix
@@ -66,7 +66,7 @@ with lib;
       networkmanager-sstp = super.networkmanager-vpnc.override { withGnome = false; };
       networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
       pango = super.pango.override { x11Support = false; };
-      pinentry = super.pinentry.override { enabledFlavors = [ "curses" "tty" "emacs" ]; withLibsecret = false; };
+      pinentry-curses = super.pinentry-curses.override { withLibsecret = false; };
       pipewire = super.pipewire.override { vulkanSupport = false; x11Support = false; };
       pythonPackagesExtensions = super.pythonPackagesExtensions ++ [
         (python-final: python-prev: {
diff --git a/nixpkgs/nixos/modules/config/resolvconf.nix b/nixpkgs/nixos/modules/config/resolvconf.nix
index e9ae4d651d26..3b8cc0cb8f42 100644
--- a/nixpkgs/nixos/modules/config/resolvconf.nix
+++ b/nixpkgs/nixos/modules/config/resolvconf.nix
@@ -28,6 +28,8 @@ let
     '' + optionalString cfg.useLocalResolver ''
       # This hosts runs a full-blown DNS resolver.
       name_servers='127.0.0.1'
+    '' + optionalString (cfg.useLocalResolver && config.networking.enableIPv6) ''
+      name_servers='::1'
     '' + cfg.extraConfig;
 
 in
diff --git a/nixpkgs/nixos/modules/hardware/video/webcam/ipu6.nix b/nixpkgs/nixos/modules/hardware/video/webcam/ipu6.nix
index c2dbdc217bd6..a7767e446bd4 100644
--- a/nixpkgs/nixos/modules/hardware/video/webcam/ipu6.nix
+++ b/nixpkgs/nixos/modules/hardware/video/webcam/ipu6.nix
@@ -30,7 +30,10 @@ in
       ipu6-drivers
     ];
 
-    hardware.firmware = [ pkgs.ipu6-camera-bins ];
+    hardware.firmware = with pkgs; [
+      ipu6-camera-bins
+      ivsc-firmware
+    ];
 
     services.udev.extraRules = ''
       SUBSYSTEM=="intel-ipu6-psys", MODE="0660", GROUP="video"
diff --git a/nixpkgs/nixos/modules/i18n/input-method/fcitx5.nix b/nixpkgs/nixos/modules/i18n/input-method/fcitx5.nix
index ee8d2652b1c7..755336220520 100644
--- a/nixpkgs/nixos/modules/i18n/input-method/fcitx5.nix
+++ b/nixpkgs/nixos/modules/i18n/input-method/fcitx5.nix
@@ -32,8 +32,8 @@ in
       };
       plasma6Support = mkOption {
         type = types.bool;
-        default = config.services.xserver.desktopManager.plasma6.enable;
-        defaultText = literalExpression "config.services.xserver.desktopManager.plasma6.enable";
+        default = config.services.desktopManager.plasma6.enable;
+        defaultText = literalExpression "config.services.desktopManager.plasma6.enable";
         description = lib.mdDoc ''
           Use qt6 versions of fcitx5 packages.
           Required for configuring fcitx5 in KDE System Settings.
diff --git a/nixpkgs/nixos/modules/image/repart-image.nix b/nixpkgs/nixos/modules/image/repart-image.nix
index 7ac47ee32ff4..83e766268cf0 100644
--- a/nixpkgs/nixos/modules/image/repart-image.nix
+++ b/nixpkgs/nixos/modules/image/repart-image.nix
@@ -2,6 +2,7 @@
 # NixOS module that can be imported.
 
 { lib
+, stdenvNoCC
 , runCommand
 , python3
 , black
@@ -25,14 +26,18 @@
 , xz
 
   # arguments
+, name
+, version
 , imageFileBasename
 , compression
 , fileSystems
-, partitions
+, partitionsJSON
 , split
 , seed
 , definitionsDirectory
 , sectorSize
+, mkfsEnv ? {}
+, createEmpty ? true
 }:
 
 let
@@ -71,42 +76,88 @@ let
     "xz" = "xz --keep --verbose --threads=0 -${toString compression.level}";
   }."${compression.algorithm}";
 in
+  stdenvNoCC.mkDerivation (finalAttrs:
+  (if (version != null)
+  then { pname = name; inherit version; }
+  else { inherit name;  }
+  ) // {
+  __structuredAttrs = true;
 
-runCommand imageFileBasename
-{
   nativeBuildInputs = [
     systemd
     fakeroot
     util-linux
+  ] ++ lib.optionals (compression.enable) [
     compressionPkg
   ] ++ fileSystemTools;
-} ''
-  amendedRepartDefinitions=$(${amendRepartDefinitions} ${partitions} ${definitionsDirectory})
-
-  mkdir -p $out
-  cd $out
-
-  echo "Building image with systemd-repart..."
-  unshare --map-root-user fakeroot systemd-repart \
-    --dry-run=no \
-    --empty=create \
-    --size=auto \
-    --seed="${seed}" \
-    --definitions="$amendedRepartDefinitions" \
-    --split="${lib.boolToString split}" \
-    --json=pretty \
-    ${lib.optionalString (sectorSize != null) "--sector-size=${toString sectorSize}"} \
-    ${imageFileBasename}.raw \
-    | tee repart-output.json
 
+  env = mkfsEnv;
+
+  inherit partitionsJSON definitionsDirectory;
+
+  # relative path to the repart definitions that are read by systemd-repart
+  finalRepartDefinitions = "repart.d";
+
+  systemdRepartFlags = [
+    "--dry-run=no"
+    "--size=auto"
+    "--seed=${seed}"
+    "--definitions=${finalAttrs.finalRepartDefinitions}"
+    "--split=${lib.boolToString split}"
+    "--json=pretty"
+  ] ++ lib.optionals createEmpty [
+    "--empty=create"
+  ] ++ lib.optionals (sectorSize != null) [
+    "--sector-size=${toString sectorSize}"
+  ];
+
+  dontUnpack = true;
+  dontConfigure = true;
+  doCheck = false;
+
+  patchPhase = ''
+    runHook prePatch
+
+    amendedRepartDefinitionsDir=$(${amendRepartDefinitions} $partitionsJSON $definitionsDirectory)
+    ln -vs $amendedRepartDefinitionsDir $finalRepartDefinitions
+
+    runHook postPatch
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    echo "Building image with systemd-repart..."
+    unshare --map-root-user fakeroot systemd-repart \
+      ''${systemdRepartFlags[@]} \
+      ${imageFileBasename}.raw \
+      | tee repart-output.json
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+  ''
   # Compression is implemented in the same derivation as opposed to in a
   # separate derivation to allow users to save disk space. Disk images are
   # already very space intensive so we want to allow users to mitigate this.
-  if ${lib.boolToString compression.enable}; then
+  + lib.optionalString compression.enable
+  ''
     for f in ${imageFileBasename}*; do
       echo "Compressing $f with ${compression.algorithm}..."
       # Keep the original file when compressing and only delete it afterwards
       ${compressionCommand} $f && rm $f
     done
-  fi
-''
+  '' + ''
+    mv -v repart-output.json ${imageFileBasename}* $out
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    inherit amendRepartDefinitions;
+  };
+})
diff --git a/nixpkgs/nixos/modules/image/repart.nix b/nixpkgs/nixos/modules/image/repart.nix
index 6a933f0d83cc..1a43297f4b43 100644
--- a/nixpkgs/nixos/modules/image/repart.nix
+++ b/nixpkgs/nixos/modules/image/repart.nix
@@ -60,6 +60,11 @@ let
       };
     };
   };
+
+  mkfsOptionsToEnv = opts: lib.mapAttrs' (fsType: options: {
+    name = "SYSTEMD_REPART_MKFS_OPTIONS_${lib.toUpper fsType}";
+    value = builtins.concatStringsSep " " options;
+  }) opts;
 in
 {
   options.image.repart = {
@@ -183,6 +188,38 @@ in
       '';
     };
 
+    mkfsOptions = lib.mkOption {
+      type = with lib.types; attrsOf (listOf str);
+      default = {};
+      example = lib.literalExpression ''
+        {
+          vfat = [ "-S 512" "-c" ];
+        }
+      '';
+      description = lib.mdDoc ''
+        Specify extra options for created file systems. The specified options
+        are converted to individual environment variables of the format
+        `SYSTEMD_REPART_MKFS_OPTIONS_<FSTYPE>`.
+
+        See [upstream systemd documentation](https://github.com/systemd/systemd/blob/v255/docs/ENVIRONMENT.md?plain=1#L575-L577)
+        for information about the usage of these environment variables.
+
+        The example would produce the following environment variable:
+        ```
+        SYSTEMD_REPART_MKFS_OPTIONS_VFAT="-S 512 -c"
+        ```
+      '';
+    };
+
+    finalPartitions = lib.mkOption {
+      type = lib.types.attrs;
+      internal = true;
+      readOnly = true;
+      description = lib.mdDoc ''
+        Convenience option to access partitions with added closures.
+      '';
+    };
+
   };
 
   config = {
@@ -196,6 +233,16 @@ in
             "zstd" = ".zst";
             "xz" = ".xz";
           }."${cfg.compression.algorithm}";
+
+        makeClosure = paths: pkgs.closureInfo { rootPaths = paths; };
+
+        # Add the closure of the provided Nix store paths to cfg.partitions so
+        # that amend-repart-definitions.py can read it.
+        addClosure = _name: partitionConfig: partitionConfig // (
+          lib.optionalAttrs
+            (partitionConfig.storePaths or [ ] != [ ])
+            { closure = "${makeClosure partitionConfig.storePaths}/store-paths"; }
+        );
       in
       {
         name = lib.mkIf (config.system.image.id != null) (lib.mkOptionDefault config.system.image.id);
@@ -211,6 +258,8 @@ in
             "xz" = 3;
           }."${cfg.compression.algorithm}";
         };
+
+        finalPartitions = lib.mapAttrs addClosure cfg.partitions;
       };
 
     system.build.image =
@@ -219,34 +268,25 @@ in
           (f: f != null)
           (lib.mapAttrsToList (_n: v: v.repartConfig.Format or null) cfg.partitions);
 
-        makeClosure = paths: pkgs.closureInfo { rootPaths = paths; };
-
-        # Add the closure of the provided Nix store paths to cfg.partitions so
-        # that amend-repart-definitions.py can read it.
-        addClosure = _name: partitionConfig: partitionConfig // (
-          lib.optionalAttrs
-            (partitionConfig.storePaths or [ ] != [ ])
-            { closure = "${makeClosure partitionConfig.storePaths}/store-paths"; }
-        );
-
-        finalPartitions = lib.mapAttrs addClosure cfg.partitions;
 
         format = pkgs.formats.ini { };
 
         definitionsDirectory = utils.systemdUtils.lib.definitions
           "repart.d"
           format
-          (lib.mapAttrs (_n: v: { Partition = v.repartConfig; }) finalPartitions);
+          (lib.mapAttrs (_n: v: { Partition = v.repartConfig; }) cfg.finalPartitions);
+
+        partitionsJSON = pkgs.writeText "partitions.json" (builtins.toJSON cfg.finalPartitions);
 
-        partitions = pkgs.writeText "partitions.json" (builtins.toJSON finalPartitions);
+        mkfsEnv = mkfsOptionsToEnv cfg.mkfsOptions;
       in
       pkgs.callPackage ./repart-image.nix {
         systemd = cfg.package;
-        inherit (cfg) imageFileBasename compression split seed sectorSize;
-        inherit fileSystems definitionsDirectory partitions;
+        inherit (cfg) name version imageFileBasename compression split seed sectorSize;
+        inherit fileSystems definitionsDirectory partitionsJSON mkfsEnv;
       };
 
-    meta.maintainers = with lib.maintainers; [ nikstur ];
+    meta.maintainers = with lib.maintainers; [ nikstur willibutz ];
 
   };
 }
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix b/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
index 6adb94e09aff..f5b6af3a6b7f 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -811,12 +811,6 @@ in
       optional config.isoImage.includeSystemBuildDependencies
         config.system.build.toplevel.drvPath;
 
-    # Create the squashfs image that contains the Nix store.
-    system.build.squashfsStore = pkgs.callPackage ../../../lib/make-squashfs.nix {
-      storeContents = config.isoImage.storeContents;
-      comp = config.isoImage.squashfsCompression;
-    };
-
     # Individual files to be included on the CD, outside of the Nix
     # store on the CD.
     isoImage.contents =
@@ -827,9 +821,6 @@ in
         { source = config.system.build.initialRamdisk + "/" + config.system.boot.loader.initrdFile;
           target = "/boot/" + config.system.boot.loader.initrdFile;
         }
-        { source = config.system.build.squashfsStore;
-          target = "/nix-store.squashfs";
-        }
         { source = pkgs.writeText "version" config.system.nixos.label;
           target = "/version.txt";
         }
@@ -878,6 +869,8 @@ in
       bootable = config.isoImage.makeBiosBootable;
       bootImage = "/isolinux/isolinux.bin";
       syslinux = if config.isoImage.makeBiosBootable then pkgs.syslinux else null;
+      squashfsContents = config.isoImage.storeContents;
+      squashfsCompression = config.isoImage.squashfsCompression;
     } // optionalAttrs (config.isoImage.makeUsbBootable && config.isoImage.makeBiosBootable) {
       usbBootable = true;
       isohybridMbrImage = "${pkgs.syslinux}/share/syslinux/isohdpfx.bin";
diff --git a/nixpkgs/nixos/modules/misc/mandoc.nix b/nixpkgs/nixos/modules/misc/mandoc.nix
index 73646a60aabb..706e2ac2c283 100644
--- a/nixpkgs/nixos/modules/misc/mandoc.nix
+++ b/nixpkgs/nixos/modules/misc/mandoc.nix
@@ -17,6 +17,8 @@ let
       )
       output
   );
+
+  makeLeadingSlashes = map (path: if builtins.substring 0 1 path != "/" then "/${path}" else path);
 in
 {
   meta.maintainers = [ lib.maintainers.sternenseemann ];
@@ -29,6 +31,7 @@ in
         type = with lib.types; listOf str;
         default = [ "share/man" ];
         example = lib.literalExpression "[ \"share/man\" \"share/man/fr\" ]";
+        apply = makeLeadingSlashes;
         description = ''
           Change the paths included in the MANPATH environment variable,
           i. e. the directories where {manpage}`man(1)`
@@ -41,6 +44,28 @@ in
         '';
       };
 
+      cachePath = lib.mkOption {
+        type = with lib.types; listOf str;
+        default = cfg.manPath;
+        defaultText = lib.literalExpression "config.documentation.man.mandoc.manPath";
+        example = lib.literalExpression "[ \"share/man\" \"share/man/fr\" ]";
+        apply = makeLeadingSlashes;
+        description = ''
+          Change the paths where mandoc {manpage}`makewhatis(8)`generates the
+          manual page index caches. {option}`documentation.man.generateCaches`
+          should be enabled to allow cache generation. This list should only
+          include the paths to manpages installed in the system configuration,
+          i. e. /run/current-system/sw/share/man. {manpage}`makewhatis(8)`
+          creates a database in each directory using the files
+          `mansection/[arch/]title.section` and `catsection/[arch/]title.0`
+          in it. If a directory contains no manual pages, no database is
+          created in that directory.
+          This option only needs to be set manually if extra paths should be
+          indexed or {option}`documentation.man.manPath` contains paths that
+          can't be indexed.
+        '';
+      };
+
       package = lib.mkOption {
         type = lib.types.package;
         default = pkgs.mandoc;
@@ -178,19 +203,14 @@ in
       # TODO(@sternenseemman): fix symlinked directories not getting indexed,
       # see: https://inbox.vuxu.org/mandoc-tech/20210906171231.GF83680@athene.usta.de/T/#e85f773c1781e3fef85562b2794f9cad7b2909a3c
       extraSetup = lib.mkIf config.documentation.man.generateCaches ''
-        for man_path in ${
-          lib.concatMapStringsSep " " (path:
-            "$out/" + lib.escapeShellArg path
-            ) cfg.manPath} ${lib.concatMapStringsSep " " (path:
-            lib.escapeShellArg path) cfg.settings.manpath
-          }
+        for man_path in ${lib.concatMapStringsSep " " (path: "$out" + lib.escapeShellArg path) cfg.cachePath}
         do
           [[ -d "$man_path" ]] && ${makewhatis} -T utf8 $man_path
         done
       '';
 
       # tell mandoc the paths containing man pages
-      profileRelativeSessionVariables."MANPATH" = map (path: if builtins.substring 0 1 path != "/" then "/${path}" else path) cfg.manPath;
+      profileRelativeSessionVariables."MANPATH" = lib.mkIf (cfg.manPath != [ ]) cfg.manPath;
     };
   };
 }
diff --git a/nixpkgs/nixos/modules/module-list.nix b/nixpkgs/nixos/modules/module-list.nix
index bbca2fa76855..a103869c16aa 100644
--- a/nixpkgs/nixos/modules/module-list.nix
+++ b/nixpkgs/nixos/modules/module-list.nix
@@ -203,6 +203,7 @@
   ./programs/i3lock.nix
   ./programs/iotop.nix
   ./programs/java.nix
+  ./programs/joycond-cemuhook.nix
   ./programs/k3b.nix
   ./programs/k40-whisperer.nix
   ./programs/kbdlight.nix
@@ -1019,6 +1020,7 @@
   ./services/networking/lxd-image-server.nix
   ./services/networking/magic-wormhole-mailbox-server.nix
   ./services/networking/matterbridge.nix
+  ./services/networking/mihomo.nix
   ./services/networking/minidlna.nix
   ./services/networking/miniupnpd.nix
   ./services/networking/miredo.nix
@@ -1035,6 +1037,7 @@
   ./services/networking/multipath.nix
   ./services/networking/murmur.nix
   ./services/networking/mxisd.nix
+  ./services/networking/mycelium.nix
   ./services/networking/namecoind.nix
   ./services/networking/nar-serve.nix
   ./services/networking/nat.nix
@@ -1359,6 +1362,7 @@
   ./services/web-apps/plausible.nix
   ./services/web-apps/powerdns-admin.nix
   ./services/web-apps/pretalx.nix
+  ./services/web-apps/pretix.nix
   ./services/web-apps/prosody-filer.nix
   ./services/web-apps/rimgo.nix
   ./services/web-apps/sftpgo.nix
diff --git a/nixpkgs/nixos/modules/programs/_1password-gui.nix b/nixpkgs/nixos/modules/programs/_1password-gui.nix
index 83ef6037fb5a..eb2effee4326 100644
--- a/nixpkgs/nixos/modules/programs/_1password-gui.nix
+++ b/nixpkgs/nixos/modules/programs/_1password-gui.nix
@@ -51,14 +51,6 @@ in
           setuid = false;
           setgid = true;
         };
-
-        "1Password-KeyringHelper" = {
-          source = "${package}/share/1password/1Password-KeyringHelper";
-          owner = "root";
-          group = "onepassword";
-          setuid = true;
-          setgid = true;
-        };
       };
 
     };
diff --git a/nixpkgs/nixos/modules/programs/clash-verge.nix b/nixpkgs/nixos/modules/programs/clash-verge.nix
index 57a1c0377edb..e1afafa7cadc 100644
--- a/nixpkgs/nixos/modules/programs/clash-verge.nix
+++ b/nixpkgs/nixos/modules/programs/clash-verge.nix
@@ -3,6 +3,7 @@
 {
   options.programs.clash-verge = {
     enable = lib.mkEnableOption (lib.mdDoc "Clash Verge");
+    package = lib.mkPackageOption pkgs "clash-verge" {};
     autoStart = lib.mkEnableOption (lib.mdDoc "Clash Verge auto launch");
     tunMode = lib.mkEnableOption (lib.mdDoc "Clash Verge TUN mode");
   };
@@ -14,10 +15,10 @@
     lib.mkIf cfg.enable {
 
       environment.systemPackages = [
-        pkgs.clash-verge
+        cfg.package
         (lib.mkIf cfg.autoStart (pkgs.makeAutostartItem {
           name = "clash-verge";
-          package = pkgs.clash-verge;
+          package = cfg.package;
         }))
       ];
 
@@ -25,7 +26,7 @@
         owner = "root";
         group = "root";
         capabilities = "cap_net_bind_service,cap_net_admin=+ep";
-        source = "${lib.getExe pkgs.clash-verge}";
+        source = "${lib.getExe cfg.package}";
       };
     };
 
diff --git a/nixpkgs/nixos/modules/programs/gnupg.nix b/nixpkgs/nixos/modules/programs/gnupg.nix
index 179d2de87cc5..66be1f247fbd 100644
--- a/nixpkgs/nixos/modules/programs/gnupg.nix
+++ b/nixpkgs/nixos/modules/programs/gnupg.nix
@@ -1,8 +1,7 @@
 { config, lib, pkgs, ... }:
 
-with lib;
-
 let
+  inherit (lib) mkRemovedOptionModule mkOption mkPackageOption types mkIf optionalString;
 
   cfg = config.programs.gnupg;
 
@@ -26,8 +25,10 @@ let
       "curses";
 
 in
-
 {
+  imports = [
+    (mkRemovedOptionModule [ "programs" "gnupg" "agent" "pinentryFlavor" ] "Use programs.gnupg.agent.pinentryPackage instead")
+  ];
 
   options.programs.gnupg = {
     package = mkPackageOption pkgs "gnupg" { };
@@ -66,17 +67,17 @@ in
       '';
     };
 
-    agent.pinentryFlavor = mkOption {
-      type = types.nullOr (types.enum pkgs.pinentry.flavors);
-      example = "gnome3";
-      default = defaultPinentryFlavor;
-      defaultText = literalMD ''matching the configured desktop environment'';
+    agent.pinentryPackage = mkOption {
+      type = types.nullOr types.package;
+      example = lib.literalMD "pkgs.pinentry-gnome3";
+      default = pkgs.pinentry-curses;
+      defaultText = lib.literalMD "matching the configured desktop environment or `pkgs.pinentry-curses`";
       description = lib.mdDoc ''
-        Which pinentry interface to use. If not null, the path to the
-        pinentry binary will be set in /etc/gnupg/gpg-agent.conf.
-        If not set at all, it'll pick an appropriate flavor depending on the
-        system configuration (qt flavor for lxqt and plasma5, gtk2 for xfce
-        4.12, gnome3 on all other systems with X enabled, ncurses otherwise).
+        Which pinentry package to use. The path to the mainProgram as defined in
+        the package's meta attriutes will be set in /etc/gnupg/gpg-agent.conf.
+        If not set by the user, it'll pick an appropriate flavor depending on the
+        system configuration (qt flavor for lxqt and plasma5, gtk2 for xfce,
+        gnome3 on all other systems with X enabled, curses otherwise).
       '';
     };
 
@@ -102,9 +103,8 @@ in
   };
 
   config = mkIf cfg.agent.enable {
-    programs.gnupg.agent.settings = {
-      pinentry-program = lib.mkIf (cfg.agent.pinentryFlavor != null)
-        "${pkgs.pinentry.${cfg.agent.pinentryFlavor}}/bin/pinentry";
+    programs.gnupg.agent.settings = mkIf (cfg.agent.pinentryPackage != null) {
+      pinentry-program = lib.getExe cfg.agent.pinentryPackage;
     };
 
     environment.etc."gnupg/gpg-agent.conf".source =
@@ -207,9 +207,9 @@ in
       wantedBy = [ "sockets.target" ];
     };
 
-    services.dbus.packages = mkIf (cfg.agent.pinentryFlavor == "gnome3") [ pkgs.gcr ];
+    services.dbus.packages = mkIf (lib.elem "gnome3" (cfg.agent.pinentryPackage.flavors or [])) [ pkgs.gcr ];
 
-    environment.systemPackages = with pkgs; [ cfg.package ];
+    environment.systemPackages = [ cfg.package ];
 
     environment.interactiveShellInit = ''
       # Bind gpg-agent to this TTY if gpg commands are used.
@@ -230,12 +230,10 @@ in
     '';
 
     assertions = [
-      { assertion = cfg.agent.enableSSHSupport -> !config.programs.ssh.startAgent;
+      {
+        assertion = cfg.agent.enableSSHSupport -> !config.programs.ssh.startAgent;
         message = "You can't use ssh-agent and GnuPG agent with SSH support enabled at the same time!";
       }
     ];
   };
-
-  # uses attributes of the linked package
-  meta.buildDocsInSandbox = false;
 }
diff --git a/nixpkgs/nixos/modules/programs/starship.nix b/nixpkgs/nixos/modules/programs/starship.nix
index 34f6f0882c61..7f8d9eb3363d 100644
--- a/nixpkgs/nixos/modules/programs/starship.nix
+++ b/nixpkgs/nixos/modules/programs/starship.nix
@@ -12,7 +12,7 @@ let
       nativeBuildInputs = [ pkgs.yq ];
     } ''
     tomlq -s -t 'reduce .[] as $item ({}; . * $item)' \
-      ${lib.concatStringsSep " " (map (f: "${pkgs.starship}/share/starship/presets/${f}.toml") cfg.presets)} \
+      ${lib.concatStringsSep " " (map (f: "${cfg.package}/share/starship/presets/${f}.toml") cfg.presets)} \
       ${userSettingsFile} \
       > $out
   '';
@@ -26,23 +26,20 @@ let
 in
 {
   options.programs.starship = {
-    enable = lib.mkEnableOption (lib.mdDoc "the Starship shell prompt");
+    enable = lib.mkEnableOption "the Starship shell prompt";
 
-    interactiveOnly = lib.mkOption {
-      default = true;
-      example = false;
-      type = lib.types.bool;
-      description = lib.mdDoc ''
-        Whether to enable starship only when the shell is interactive.
-        Some plugins require this to be set to false to function correctly.
-      '';
-    };
+    package = lib.mkPackageOption pkgs "starship" { };
+
+    interactiveOnly = lib.mkEnableOption ''
+      starship only when the shell is interactive.
+      Some plugins require this to be set to false to function correctly
+    '' // { default = true; };
 
     presets = lib.mkOption {
       default = [ ];
       example = [ "nerd-font-symbols" ];
       type = with lib.types; listOf str;
-      description = lib.mdDoc ''
+      description = ''
         Presets files to be merged with settings in order.
       '';
     };
@@ -50,7 +47,7 @@ in
     settings = lib.mkOption {
       inherit (settingsFormat) type;
       default = { };
-      description = lib.mdDoc ''
+      description = ''
         Configuration included in `starship.toml`.
 
         See https://starship.rs/config/#prompt for documentation.
@@ -68,7 +65,7 @@ in
         if [[ ! -f "$HOME/.config/starship.toml" ]]; then
           export STARSHIP_CONFIG=${settingsFile}
         fi
-        eval "$(${pkgs.starship}/bin/starship init bash)"
+        eval "$(${cfg.package}/bin/starship init bash)"
       fi
     '';
 
@@ -81,7 +78,7 @@ in
         if not test -f "$HOME/.config/starship.toml";
           set -x STARSHIP_CONFIG ${settingsFile}
         end
-        eval (${pkgs.starship}/bin/starship init fish)
+        eval (${cfg.package}/bin/starship init fish)
       end
     '';
 
@@ -94,7 +91,7 @@ in
         if [[ ! -f "$HOME/.config/starship.toml" ]]; then
           export STARSHIP_CONFIG=${settingsFile}
         fi
-        eval "$(${pkgs.starship}/bin/starship init zsh)"
+        eval "$(${cfg.package}/bin/starship init zsh)"
       fi
     '';
   };
diff --git a/nixpkgs/nixos/modules/programs/steam.nix b/nixpkgs/nixos/modules/programs/steam.nix
index 31803f061dce..c93a34f61849 100644
--- a/nixpkgs/nixos/modules/programs/steam.nix
+++ b/nixpkgs/nixos/modules/programs/steam.nix
@@ -44,8 +44,8 @@ in {
       '';
       apply = steam: steam.override (prev: {
         extraEnv = (lib.optionalAttrs (cfg.extraCompatPackages != [ ]) {
-            STEAM_EXTRA_COMPAT_TOOLS_PATHS = makeBinPath cfg.extraCompatPackages;
-          }) // (prev.extraEnv or {});
+          STEAM_EXTRA_COMPAT_TOOLS_PATHS = makeSearchPathOutput "steamcompattool" "" cfg.extraCompatPackages;
+        }) // (prev.extraEnv or {});
         extraLibraries = pkgs: let
           prevLibs = if prev ? extraLibraries then prev.extraLibraries pkgs else [ ];
           additionalLibs = with config.hardware.opengl;
@@ -74,10 +74,17 @@ in {
     extraCompatPackages = mkOption {
       type = types.listOf types.package;
       default = [ ];
+      example = literalExpression ''
+        with pkgs; [
+          proton-ge-bin
+        ]
+      '';
       description = lib.mdDoc ''
         Extra packages to be used as compatibility tools for Steam on Linux. Packages will be included
         in the `STEAM_EXTRA_COMPAT_TOOLS_PATHS` environmental variable. For more information see
-        <https://github.com/ValveSoftware/steam-for-linux/issues/6310">.
+        https://github.com/ValveSoftware/steam-for-linux/issues/6310.
+
+        These packages must be Steam compatibility tools that have a `steamcompattool` output.
       '';
     };
 
diff --git a/nixpkgs/nixos/modules/programs/wayland/sway.nix b/nixpkgs/nixos/modules/programs/wayland/sway.nix
index ca2503ae5da7..2bd297af5254 100644
--- a/nixpkgs/nixos/modules/programs/wayland/sway.nix
+++ b/nixpkgs/nixos/modules/programs/wayland/sway.nix
@@ -152,6 +152,7 @@ in {
             '';
           }
         ];
+
         environment = {
           systemPackages = optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
           # Needed for the default wallpaper:
@@ -166,8 +167,12 @@ in {
             "sway/config".source = mkOptionDefault "${cfg.package}/etc/sway/config";
           };
         };
+
+        programs.gnupg.agent.pinentryPackage = lib.mkDefault pkgs.pinentry-gnome3;
+
         # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
         xdg.portal.config.sway.default = mkDefault [ "wlr" "gtk" ];
+
         # To make a Sway session available if a display manager like SDDM is enabled:
         services.xserver.displayManager.sessionPackages = optionals (cfg.package != null) [ cfg.package ]; }
       (import ./wayland-session.nix { inherit lib pkgs; })
diff --git a/nixpkgs/nixos/modules/security/pam.nix b/nixpkgs/nixos/modules/security/pam.nix
index 560e5eff5c39..26dc724ae159 100644
--- a/nixpkgs/nixos/modules/security/pam.nix
+++ b/nixpkgs/nixos/modules/security/pam.nix
@@ -683,7 +683,7 @@ let
           (let dp9ik = config.security.pam.dp9ik; in { name = "p9"; enable = dp9ik.enable; control = dp9ik.control; modulePath = "${pkgs.pam_dp9ik}/lib/security/pam_p9.so"; args = [
             dp9ik.authserver
           ]; })
-          { name = "fprintd"; enable = cfg.fprintAuth; control = "sufficient"; modulePath = "${pkgs.fprintd}/lib/security/pam_fprintd.so"; }
+          { name = "fprintd"; enable = cfg.fprintAuth; control = "sufficient"; modulePath = "${config.services.fprintd.package}/lib/security/pam_fprintd.so"; }
         ] ++
           # Modules in this block require having the password set in PAM_AUTHTOK.
           # pam_unix is marked as 'sufficient' on NixOS which means nothing will run
diff --git a/nixpkgs/nixos/modules/services/audio/spotifyd.nix b/nixpkgs/nixos/modules/services/audio/spotifyd.nix
index 1194b6f200d7..04bb523e25b1 100644
--- a/nixpkgs/nixos/modules/services/audio/spotifyd.nix
+++ b/nixpkgs/nixos/modules/services/audio/spotifyd.nix
@@ -24,7 +24,7 @@ in
         type = types.lines;
         description = lib.mdDoc ''
           (Deprecated) Configuration for Spotifyd. For syntax and directives, see
-          <https://github.com/Spotifyd/spotifyd#Configuration>.
+          <https://docs.spotifyd.rs/config/File.html>.
         '';
       };
 
@@ -34,7 +34,7 @@ in
         example = { global.bitrate = 320; };
         description = lib.mdDoc ''
           Configuration for Spotifyd. For syntax and directives, see
-          <https://github.com/Spotifyd/spotifyd#Configuration>.
+          <https://docs.spotifyd.rs/config/File.html>.
         '';
       };
     };
diff --git a/nixpkgs/nixos/modules/services/audio/wyoming/faster-whisper.nix b/nixpkgs/nixos/modules/services/audio/wyoming/faster-whisper.nix
index dd7f62744cd0..0c36e8c9ab05 100644
--- a/nixpkgs/nixos/modules/services/audio/wyoming/faster-whisper.nix
+++ b/nixpkgs/nixos/modules/services/audio/wyoming/faster-whisper.nix
@@ -37,22 +37,13 @@ in
             enable = mkEnableOption (mdDoc "Wyoming faster-whisper server");
 
             model = mkOption {
-              # Intersection between available and referenced models here:
-              # https://github.com/rhasspy/models/releases/tag/v1.0
-              # https://github.com/rhasspy/rhasspy3/blob/wyoming-v1/programs/asr/faster-whisper/server/wyoming_faster_whisper/download.py#L17-L27
-              type = enum [
-                "tiny"
-                "tiny-int8"
-                "base"
-                "base-int8"
-                "small"
-                "small-int8"
-                "medium-int8"
-              ];
+              type = str;
               default = "tiny-int8";
-              example = "medium-int8";
+              example = "Systran/faster-distil-whisper-small.en";
               description = mdDoc ''
                 Name of the voice model to use.
+
+                Check the [2.0.0 release notes](https://github.com/rhasspy/wyoming-faster-whisper/releases/tag/v2.0.0) for possible values.
               '';
             };
 
diff --git a/nixpkgs/nixos/modules/services/backup/bacula.nix b/nixpkgs/nixos/modules/services/backup/bacula.nix
index 5a75a46e5259..39975adf5909 100644
--- a/nixpkgs/nixos/modules/services/backup/bacula.nix
+++ b/nixpkgs/nixos/modules/services/backup/bacula.nix
@@ -4,11 +4,36 @@
 # TODO: test configuration when building nixexpr (use -t parameter)
 # TODO: support sqlite3 (it's deprecate?) and mysql
 
-with lib;
 
 let
+  inherit (lib)
+    concatStringsSep
+    literalExpression
+    mapAttrsToList
+    mdDoc
+    mkIf
+    mkOption
+    optional
+    optionalString
+    types
+    ;
   libDir = "/var/lib/bacula";
 
+  yes_no = bool: if bool then "yes" else "no";
+  tls_conf = tls_cfg: optionalString tls_cfg.enable (
+    concatStringsSep
+      "\n"
+      (
+      ["TLS Enable = yes;"]
+      ++ optional (tls_cfg.require != null) "TLS Require = ${yes_no tls_cfg.require};"
+      ++ optional (tls_cfg.certificate != null) ''TLS Certificate = "${tls_cfg.certificate}";''
+      ++ [''TLS Key = "${tls_cfg.key}";'']
+      ++ optional (tls_cfg.verifyPeer != null) "TLS Verify Peer = ${yes_no tls_cfg.verifyPeer};"
+      ++ optional (tls_cfg.allowedCN != [ ]) "TLS Allowed CN = ${concatStringsSep " " (tls_cfg.allowedCN)};"
+      ++ optional (tls_cfg.caCertificateFile != null) ''TLS CA Certificate File = "${tls_cfg.caCertificateFile}";''
+      )
+  );
+
   fd_cfg = config.services.bacula-fd;
   fd_conf = pkgs.writeText "bacula-fd.conf"
     ''
@@ -18,6 +43,7 @@ let
         WorkingDirectory = ${libDir};
         Pid Directory = /run;
         ${fd_cfg.extraClientConfig}
+        ${tls_conf fd_cfg.tls}
       }
 
       ${concatStringsSep "\n" (mapAttrsToList (name: value: ''
@@ -25,6 +51,7 @@ let
         Name = "${name}";
         Password = ${value.password};
         Monitor = ${value.monitor};
+        ${tls_conf value.tls}
       }
       '') fd_cfg.director)}
 
@@ -44,6 +71,7 @@ let
         WorkingDirectory = ${libDir};
         Pid Directory = /run;
         ${sd_cfg.extraStorageConfig}
+        ${tls_conf sd_cfg.tls}
       }
 
       ${concatStringsSep "\n" (mapAttrsToList (name: value: ''
@@ -70,6 +98,7 @@ let
         Name = "${name}";
         Password = ${value.password};
         Monitor = ${value.monitor};
+        ${tls_conf value.tls}
       }
       '') sd_cfg.director)}
 
@@ -90,6 +119,7 @@ let
       Working Directory = ${libDir};
       Pid Directory = /run/;
       QueryFile = ${pkgs.bacula}/etc/query.sql;
+      ${tls_conf dir_cfg.tls}
       ${dir_cfg.extraDirectorConfig}
     }
 
@@ -108,13 +138,99 @@ let
     ${dir_cfg.extraConfig}
     '';
 
-  directorOptions = {...}:
+  linkOption = name: destination: "[${name}](#opt-${builtins.replaceStrings [ "<" ">"] ["_" "_"] destination})";
+  tlsLink = destination: submodulePath: linkOption "${submodulePath}.${destination}" "${submodulePath}.${destination}";
+
+  tlsOptions = submodulePath: {...}:
+  {
+    options = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = mdDoc ''
+          Specifies if TLS should be enabled.
+          If this set to `false` TLS will be completely disabled, even if ${tlsLink "tls.require" submodulePath} is true.
+        '';
+      };
+      require = mkOption {
+        type = types.nullOr types.bool;
+        default = null;
+        description = mdDoc ''
+          Require TLS or TLS-PSK encryption.
+          This directive is ignored unless one of ${tlsLink "tls.enable" submodulePath} is true or TLS PSK Enable is set to `yes`.
+          If TLS is not required while TLS or TLS-PSK are enabled, then the Bacula component
+          will connect with other components either with or without TLS or TLS-PSK
+
+          If ${tlsLink "tls.enable" submodulePath} or TLS-PSK is enabled and TLS is required, then the Bacula
+          component will refuse any connection request that does not use TLS.
+        '';
+      };
+      certificate = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        description = mdDoc ''
+          The full path to the PEM encoded TLS certificate.
+          It will be used as either a client or server certificate,
+          depending on the connection direction.
+          This directive is required in a server context, but it may
+          not be specified in a client context if ${tlsLink "tls.verifyPeer" submodulePath} is
+          `false` in the corresponding server context.
+        '';
+      };
+      key = mkOption {
+        type = types.path;
+        description = mdDoc ''
+          The path of a PEM encoded TLS private key.
+          It must correspond to the TLS certificate.
+        '';
+      };
+      verifyPeer = mkOption {
+        type = types.nullOr types.bool;
+        default = null;
+        description = mdDoc ''
+          Verify peer certificate.
+          Instructs server to request and verify the client's X.509 certificate.
+          Any client certificate signed by a known-CA will be accepted.
+          Additionally, the client's X509 certificate Common Name must meet the value of the Address directive.
+          If ${tlsLink "tls.allowedCN" submodulePath} is used,
+          the client's x509 certificate Common Name must also correspond to
+          one of the CN specified in the ${tlsLink "tls.allowedCN" submodulePath} directive.
+          This directive is valid only for a server and not in client context.
+
+          Standard from Bacula is `true`.
+        '';
+      };
+      allowedCN = mkOption {
+        type = types.listOf types.str;
+        default = [ ];
+        description = mdDoc ''
+          Common name attribute of allowed peer certificates.
+          This directive is valid for a server and in a client context.
+          If this directive is specified, the peer certificate will be verified against this list.
+          In the case this directive is configured on a server side, the allowed
+          CN list will not be checked if ${tlsLink "tls.verifyPeer" submodulePath} is false.
+        '';
+      };
+      caCertificateFile = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        description = mdDoc ''
+          The path specifying a PEM encoded TLS CA certificate(s).
+          Multiple certificates are permitted in the file.
+          One of TLS CA Certificate File or TLS CA Certificate Dir are required in a server context, unless
+          ${tlsLink "tls.verifyPeer" submodulePath} is false, and are always required in a client context.
+        '';
+      };
+    };
+  };
+
+  directorOptions = submodulePath:{...}:
   {
     options = {
       password = mkOption {
         type = types.str;
         # TODO: required?
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Specifies the password that must be supplied for the default Bacula
           Console to be authorized. The same password must appear in the
           Director resource of the Console configuration file. For added
@@ -135,7 +251,7 @@ let
         type = types.enum [ "no" "yes" ];
         default = "no";
         example = "yes";
-        description = lib.mdDoc ''
+        description = mdDoc ''
           If Monitor is set to `no`, this director will have
           full access to this Storage daemon. If Monitor is set to
           `yes`, this director will only be able to fetch the
@@ -146,6 +262,13 @@ let
           security problems.
         '';
       };
+
+      tls = mkOption {
+        type = types.submodule (tlsOptions "${submodulePath}.director.<name>");
+        description = mdDoc ''
+          TLS Options for the Director in this Configuration.
+        '';
+      };
     };
   };
 
@@ -154,7 +277,7 @@ let
     options = {
       changerDevice = mkOption {
         type = types.str;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           The specified name-string must be the generic SCSI device name of the
           autochanger that corresponds to the normal read/write Archive Device
           specified in the Device resource. This generic SCSI device name
@@ -173,7 +296,7 @@ let
 
       changerCommand = mkOption {
         type = types.str;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           The name-string specifies an external program to be called that will
           automatically change volumes as required by Bacula. Normally, this
           directive will be specified only in the AutoChanger resource, which
@@ -195,14 +318,14 @@ let
       };
 
       devices = mkOption {
-        description = lib.mdDoc "";
+        description = mdDoc "";
         type = types.listOf types.str;
       };
 
       extraAutochangerConfig = mkOption {
         default = "";
         type = types.lines;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Extra configuration to be passed in Autochanger directive.
         '';
         example = ''
@@ -219,7 +342,7 @@ let
       archiveDevice = mkOption {
         # TODO: required?
         type = types.str;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           The specified name-string gives the system file name of the storage
           device managed by this storage daemon. This will usually be the
           device file name of a removable storage device (tape drive), for
@@ -236,7 +359,7 @@ let
       mediaType = mkOption {
         # TODO: required?
         type = types.str;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           The specified name-string names the type of media supported by this
           device, for example, `DLT7000`. Media type names are
           arbitrary in that you set them to anything you want, but they must be
@@ -274,7 +397,7 @@ let
       extraDeviceConfig = mkOption {
         default = "";
         type = types.lines;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Extra configuration to be passed in Device directive.
         '';
         example = ''
@@ -295,7 +418,7 @@ in {
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Whether to enable the Bacula File Daemon.
         '';
       };
@@ -304,7 +427,7 @@ in {
         default = "${config.networking.hostName}-fd";
         defaultText = literalExpression ''"''${config.networking.hostName}-fd"'';
         type = types.str;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           The client name that must be used by the Director when connecting.
           Generally, it is a good idea to use a name related to the machine so
           that error messages can be easily identified if you have multiple
@@ -315,7 +438,7 @@ in {
       port = mkOption {
         default = 9102;
         type = types.port;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           This specifies the port number on which the Client listens for
           Director connections. It must agree with the FDPort specified in
           the Client resource of the Director's configuration file.
@@ -324,16 +447,26 @@ in {
 
       director = mkOption {
         default = {};
-        description = lib.mdDoc ''
+        description = mdDoc ''
           This option defines director resources in Bacula File Daemon.
         '';
-        type = with types; attrsOf (submodule directorOptions);
+        type = types.attrsOf (types.submodule (directorOptions "services.bacula-fd"));
       };
 
+
+      tls = mkOption {
+        type = types.submodule (tlsOptions "services.bacula-fd");
+        default = { };
+        description = mdDoc ''
+          TLS Options for the File Daemon.
+          Important notice: The backup won't be encrypted.
+        '';
+       };
+
       extraClientConfig = mkOption {
         default = "";
         type = types.lines;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Extra configuration to be passed in Client directive.
         '';
         example = ''
@@ -345,7 +478,7 @@ in {
       extraMessagesConfig = mkOption {
         default = "";
         type = types.lines;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Extra configuration to be passed in Messages directive.
         '';
         example = ''
@@ -358,7 +491,7 @@ in {
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Whether to enable Bacula Storage Daemon.
         '';
       };
@@ -367,7 +500,7 @@ in {
         default = "${config.networking.hostName}-sd";
         defaultText = literalExpression ''"''${config.networking.hostName}-sd"'';
         type = types.str;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Specifies the Name of the Storage daemon.
         '';
       };
@@ -375,7 +508,7 @@ in {
       port = mkOption {
         default = 9103;
         type = types.port;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Specifies port number on which the Storage daemon listens for
           Director connections.
         '';
@@ -383,32 +516,32 @@ in {
 
       director = mkOption {
         default = {};
-        description = lib.mdDoc ''
+        description = mdDoc ''
           This option defines Director resources in Bacula Storage Daemon.
         '';
-        type = with types; attrsOf (submodule directorOptions);
+        type = types.attrsOf (types.submodule (directorOptions "services.bacula-sd"));
       };
 
       device = mkOption {
         default = {};
-        description = lib.mdDoc ''
+        description = mdDoc ''
           This option defines Device resources in Bacula Storage Daemon.
         '';
-        type = with types; attrsOf (submodule deviceOptions);
+        type = types.attrsOf (types.submodule deviceOptions);
       };
 
       autochanger = mkOption {
         default = {};
-        description = lib.mdDoc ''
+        description = mdDoc ''
           This option defines Autochanger resources in Bacula Storage Daemon.
         '';
-        type = with types; attrsOf (submodule autochangerOptions);
+        type = types.attrsOf (types.submodule autochangerOptions);
       };
 
       extraStorageConfig = mkOption {
         default = "";
         type = types.lines;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Extra configuration to be passed in Storage directive.
         '';
         example = ''
@@ -420,13 +553,21 @@ in {
       extraMessagesConfig = mkOption {
         default = "";
         type = types.lines;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Extra configuration to be passed in Messages directive.
         '';
         example = ''
           console = all
         '';
       };
+      tls = mkOption {
+        type = types.submodule (tlsOptions "services.bacula-sd");
+        default = { };
+        description = mdDoc ''
+          TLS Options for the Storage Daemon.
+          Important notice: The backup won't be encrypted.
+        '';
+       };
 
     };
 
@@ -434,7 +575,7 @@ in {
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Whether to enable Bacula Director Daemon.
         '';
       };
@@ -443,7 +584,7 @@ in {
         default = "${config.networking.hostName}-dir";
         defaultText = literalExpression ''"''${config.networking.hostName}-dir"'';
         type = types.str;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           The director name used by the system administrator. This directive is
           required.
         '';
@@ -452,7 +593,7 @@ in {
       port = mkOption {
         default = 9101;
         type = types.port;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Specify the port (a positive integer) on which the Director daemon
           will listen for Bacula Console connections. This same port number
           must be specified in the Director resource of the Console
@@ -465,7 +606,7 @@ in {
       password = mkOption {
         # TODO: required?
         type = types.str;
-        description = lib.mdDoc ''
+        description = mdDoc ''
            Specifies the password that must be supplied for a Director.
         '';
       };
@@ -473,7 +614,7 @@ in {
       extraMessagesConfig = mkOption {
         default = "";
         type = types.lines;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Extra configuration to be passed in Messages directive.
         '';
         example = ''
@@ -484,7 +625,7 @@ in {
       extraDirectorConfig = mkOption {
         default = "";
         type = types.lines;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Extra configuration to be passed in Director directive.
         '';
         example = ''
@@ -496,13 +637,22 @@ in {
       extraConfig = mkOption {
         default = "";
         type = types.lines;
-        description = lib.mdDoc ''
+        description = mdDoc ''
           Extra configuration for Bacula Director Daemon.
         '';
         example = ''
           TODO
         '';
       };
+
+      tls = mkOption {
+        type = types.submodule (tlsOptions "services.bacula-dir");
+        default = { };
+        description = mdDoc ''
+          TLS Options for the Director.
+          Important notice: The backup won't be encrypted.
+        '';
+       };
     };
   };
 
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix b/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix
index b1d44e67658b..10e1f0532c84 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/hydra/default.nix
@@ -178,6 +178,24 @@ in
         description = lib.mdDoc "Whether to run the server in debug mode.";
       };
 
+      maxServers = mkOption {
+        type = types.int;
+        default = 25;
+        description = lib.mdDoc "Maximum number of starman workers to spawn.";
+      };
+
+      minSpareServers = mkOption {
+        type = types.int;
+        default = 4;
+        description = lib.mdDoc "Minimum number of spare starman workers to keep.";
+      };
+
+      maxSpareServers = mkOption {
+        type = types.int;
+        default = 5;
+        description = lib.mdDoc "Maximum number of spare starman workers to keep.";
+      };
+
       extraConfig = mkOption {
         type = types.lines;
         description = lib.mdDoc "Extra lines for the Hydra configuration.";
@@ -224,6 +242,16 @@ in
   ###### implementation
 
   config = mkIf cfg.enable {
+    assertions = [
+      {
+        assertion = cfg.maxServers != 0 && cfg.maxSpareServers != 0 && cfg.minSpareServers != 0;
+        message = "services.hydra.{minSpareServers,maxSpareServers,minSpareServers} cannot be 0";
+      }
+      {
+        assertion = cfg.minSpareServers < cfg.maxSpareServers;
+        message = "services.hydra.minSpareServers cannot be bigger than servives.hydra.maxSpareServers";
+      }
+    ];
 
     users.groups.hydra = {
       gid = config.ids.gids.hydra;
@@ -258,7 +286,7 @@ in
         using_frontend_proxy = 1
         base_uri = ${cfg.hydraURL}
         notification_sender = ${cfg.notificationSender}
-        max_servers = 25
+        max_servers = ${toString cfg.maxServers}
         ${optionalString (cfg.logo != null) ''
           hydra_logo = ${cfg.logo}
         ''}
@@ -359,8 +387,8 @@ in
         serviceConfig =
           { ExecStart =
               "@${hydra-package}/bin/hydra-server hydra-server -f -h '${cfg.listenHost}' "
-              + "-p ${toString cfg.port} --max_spare_servers 5 --max_servers 25 "
-              + "--max_requests 100 ${optionalString cfg.debugServer "-d"}";
+              + "-p ${toString cfg.port} --min_spare_servers ${toString cfg.minSpareServers} --max_spare_servers ${toString cfg.maxSpareServers} "
+              + "--max_servers ${toString cfg.maxServers} --max_requests 100 ${optionalString cfg.debugServer "-d"}";
             User = "hydra-www";
             PermissionsStartOnly = true;
             Restart = "always";
diff --git a/nixpkgs/nixos/modules/services/databases/lldap.nix b/nixpkgs/nixos/modules/services/databases/lldap.nix
index e821da8e58aa..033de7af886f 100644
--- a/nixpkgs/nixos/modules/services/databases/lldap.nix
+++ b/nixpkgs/nixos/modules/services/databases/lldap.nix
@@ -107,10 +107,25 @@ in
       wants = [ "network-online.target" ];
       after = [ "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
+      # lldap defaults to a hardcoded `jwt_secret` value if none is provided, which is bad, because
+      # an attacker could create a valid admin jwt access token fairly trivially.
+      # Because there are 3 different ways `jwt_secret` can be provided, we check if any one of them is present,
+      # and if not, bootstrap a secret in `/var/lib/lldap/jwt_secret_file` and give that to lldap.
+      script = lib.optionalString (!cfg.settings ? jwt_secret) ''
+        if [[ -z "$LLDAP_JWT_SECRET_FILE" ]] && [[ -z "$LLDAP_JWT_SECRET" ]]; then
+          if [[ ! -e "./jwt_secret_file" ]]; then
+            ${lib.getExe pkgs.openssl} rand -base64 -out ./jwt_secret_file 32
+          fi
+          export LLDAP_JWT_SECRET_FILE="./jwt_secret_file"
+        fi
+      '' + ''
+         ${lib.getExe cfg.package} run --config-file ${format.generate "lldap_config.toml" cfg.settings}
+      '';
       serviceConfig = {
-        ExecStart = "${lib.getExe cfg.package} run --config-file ${format.generate "lldap_config.toml" cfg.settings}";
         StateDirectory = "lldap";
+        StateDirectoryMode = "0750";
         WorkingDirectory = "%S/lldap";
+        UMask = "0027";
         User = "lldap";
         Group = "lldap";
         DynamicUser = true;
diff --git a/nixpkgs/nixos/modules/services/databases/postgresql.md b/nixpkgs/nixos/modules/services/databases/postgresql.md
index 7d141f12b5de..3ff1f00fa9cf 100644
--- a/nixpkgs/nixos/modules/services/databases/postgresql.md
+++ b/nixpkgs/nixos/modules/services/databases/postgresql.md
@@ -277,7 +277,7 @@ self: super: {
 Here's a recipe on how to override a particular plugin through an overlay:
 ```
 self: super: {
-  postgresql_15 = super.postgresql_15.override { this = self.postgresql_15; } // {
+  postgresql_15 = super.postgresql_15// {
     pkgs = super.postgresql_15.pkgs // {
       pg_repack = super.postgresql_15.pkgs.pg_repack.overrideAttrs (_: {
         name = "pg_repack-v20181024";
diff --git a/nixpkgs/nixos/modules/services/databases/postgresql.nix b/nixpkgs/nixos/modules/services/databases/postgresql.nix
index c4e76c82ba5c..c3f3b98ae5e7 100644
--- a/nixpkgs/nixos/modules/services/databases/postgresql.nix
+++ b/nixpkgs/nixos/modules/services/databases/postgresql.nix
@@ -14,7 +14,7 @@ let
       #     package = pkgs.postgresql_<major>;
       #   };
       # works.
-      base = if cfg.enableJIT && !cfg.package.jitSupport then cfg.package.withJIT else cfg.package;
+      base = if cfg.enableJIT then cfg.package.withJIT else cfg.package;
     in
     if cfg.extraPlugins == []
       then base
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma6.nix b/nixpkgs/nixos/modules/services/desktop-managers/plasma6.nix
index 1237261e0af7..e20b431f0b58 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma6.nix
+++ b/nixpkgs/nixos/modules/services/desktop-managers/plasma6.nix
@@ -5,8 +5,7 @@
   utils,
   ...
 }: let
-  xcfg = config.services.xserver;
-  cfg = xcfg.desktopManager.plasma6;
+  cfg = config.services.desktopManager.plasma6;
 
   inherit (pkgs) kdePackages;
   inherit (lib) literalExpression mkDefault mkIf mkOption mkPackageOptionMD types;
@@ -17,7 +16,7 @@
   '';
 in {
   options = {
-    services.xserver.desktopManager.plasma6 = {
+    services.desktopManager.plasma6 = {
       enable = mkOption {
         type = types.bool;
         default = false;
@@ -44,6 +43,12 @@ in {
     };
   };
 
+  imports = [
+    (lib.mkRenamedOptionModule [ "services" "xserver" "desktopManager" "plasma6" "enable" ] [ "services" "desktopManager" "plasma6" "enable" ])
+    (lib.mkRenamedOptionModule [ "services" "xserver" "desktopManager" "plasma6" "enableQt5Integration" ] [ "services" "desktopManager" "plasma6" "enableQt5Integration" ])
+    (lib.mkRenamedOptionModule [ "services" "xserver" "desktopManager" "plasma6" "notoPackage" ] [ "services" "desktopManager" "plasma6" "notoPackage" ])
+  ];
+
   config = mkIf cfg.enable {
     assertions = [
       {
@@ -161,10 +166,11 @@ in {
     in
       requiredPackages
       ++ utils.removePackagesByName optionalPackages config.environment.plasma6.excludePackages
-      ++ lib.optionals config.services.xserver.desktopManager.plasma6.enableQt5Integration [
+      ++ lib.optionals config.services.desktopManager.plasma6.enableQt5Integration [
         breeze.qt5
         plasma-integration.qt5
         pkgs.plasma5Packages.kwayland-integration
+        pkgs.plasma5Packages.kio
         kio-extras-kf5
       ]
       # Optional hardware support features
@@ -175,7 +181,7 @@ in {
       ++ lib.optional config.powerManagement.enable powerdevil
       ++ lib.optional config.services.colord.enable colord-kde
       ++ lib.optional config.services.hardware.bolt.enable plasma-thunderbolt
-      ++ lib.optionals config.services.samba.enable [kdenetwork-filesharing pkgs.samba]
+      ++ lib.optional config.services.samba.enable kdenetwork-filesharing
       ++ lib.optional config.services.xserver.wacom.enable wacomtablet
       ++ lib.optional config.services.flatpak.enable flatpak-kcm;
 
@@ -185,7 +191,7 @@ in {
       "/libexec" # for drkonqi
     ];
 
-    environment.etc."X11/xkb".source = xcfg.xkb.dir;
+    environment.etc."X11/xkb".source = config.services.xserver.xkb.dir;
 
     # Add ~/.config/kdedefaults to XDG_CONFIG_DIRS for shells, since Plasma sets that.
     # FIXME: maybe we should append to XDG_CONFIG_DIRS in /etc/set-environment instead?
@@ -210,6 +216,7 @@ in {
       serif = ["Noto Serif"];
     };
 
+    programs.gnupg.agent.pinentryPackage = mkDefault pkgs.pinentry-qt;
     programs.ssh.askPassword = mkDefault "${kdePackages.ksshaskpass.out}/bin/ksshaskpass";
 
     # Enable helpful DBus services.
@@ -246,6 +253,7 @@ in {
     services.xserver.displayManager.sddm = {
       package = kdePackages.sddm;
       theme = mkDefault "breeze";
+      wayland.compositor = "kwin";
       extraPackages = with kdePackages; [
         breeze-icons
         kirigami
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.nix b/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.nix
index 09448833620c..182615cd4d6c 100644
--- a/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.nix
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/pipewire.nix
@@ -95,6 +95,14 @@ in {
         enable = mkEnableOption (lib.mdDoc "JACK audio emulation");
       };
 
+      raopOpenFirewall = mkOption {
+        type = lib.types.bool;
+        default = false;
+        description = lib.mdDoc ''
+          Opens UDP/6001-6002, required by RAOP/Airplay for timing and control data.
+        '';
+      };
+
       pulse = {
         enable = mkEnableOption (lib.mdDoc "PulseAudio server emulation");
       };
@@ -371,6 +379,8 @@ in {
     environment.sessionVariables.LD_LIBRARY_PATH =
       lib.mkIf cfg.jack.enable [ "${cfg.package.jack}/lib" ];
 
+    networking.firewall.allowedUDPPorts = lib.mkIf cfg.raopOpenFirewall [ 6001 6002 ];
+
     users = lib.mkIf cfg.systemWide {
       users.pipewire = {
         uid = config.ids.uids.pipewire;
diff --git a/nixpkgs/nixos/modules/services/desktops/pipewire/wireplumber.nix b/nixpkgs/nixos/modules/services/desktops/pipewire/wireplumber.nix
index 009d68bd4f28..de177d0e4ef3 100644
--- a/nixpkgs/nixos/modules/services/desktops/pipewire/wireplumber.nix
+++ b/nixpkgs/nixos/modules/services/desktops/pipewire/wireplumber.nix
@@ -56,24 +56,30 @@ in
 
   config =
     let
-      pwNotForAudioConfigPkg = pkgs.writeTextDir "share/wireplumber/main.lua.d/80-pw-not-for-audio.lua" ''
-        -- PipeWire is not used for audio, so prevent it from grabbing audio devices
-        alsa_monitor.enable = function() end
-      '';
-      systemwideConfigPkg = pkgs.writeTextDir "share/wireplumber/main.lua.d/80-systemwide.lua" ''
-        -- When running system-wide, these settings need to be disabled (they
-        -- use functions that aren't available on the system dbus).
-        alsa_monitor.properties["alsa.reserve"] = false
-        default_access.properties["enable-flatpak-portal"] = false
+      pwNotForAudioConfigPkg = pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/90-nixos-no-audio.conf" ''
+        # PipeWire is not used for audio, so WirePlumber should not be handling it
+        wireplumber.profiles = {
+          main = {
+            hardware.audio = disabled
+            hardware.bluetooth = disabled
+          }
+        }
       '';
-      systemwideBluetoothConfigPkg = pkgs.writeTextDir "share/wireplumber/bluetooth.lua.d/80-systemwide.lua" ''
-        -- When running system-wide, logind-integration needs to be disabled.
-        bluez_monitor.properties["with-logind"] = false
+
+      systemwideConfigPkg = pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/90-nixos-systemwide.conf" ''
+        # When running system-wide, we don't have logind to call ReserveDevice,
+        # And bluetooth logind integration needs to be disabled
+        wireplumber.profiles = {
+          main = {
+            support.reserve-device = disabled
+            monitor.bluez.seat-monitoring = disabled
+          }
+        }
       '';
 
       configPackages = cfg.configPackages
           ++ lib.optional (!pwUsedForAudio) pwNotForAudioConfigPkg
-          ++ lib.optionals config.services.pipewire.systemWide [ systemwideConfigPkg systemwideBluetoothConfigPkg ];
+          ++ lib.optional config.services.pipewire.systemWide systemwideConfigPkg;
 
       configs = pkgs.buildEnv {
         name = "wireplumber-configs";
diff --git a/nixpkgs/nixos/modules/services/development/hoogle.nix b/nixpkgs/nixos/modules/services/development/hoogle.nix
index 88dd01fd8aab..c90bb7f01902 100644
--- a/nixpkgs/nixos/modules/services/development/hoogle.nix
+++ b/nixpkgs/nixos/modules/services/development/hoogle.nix
@@ -56,6 +56,16 @@ in {
       description = lib.mdDoc "Set the host to bind on.";
       default = "127.0.0.1";
     };
+
+    extraOptions = mkOption {
+      type = types.listOf types.str;
+      default = [];
+      example = [ "--no-security-headers" ];
+      description = lib.mdDoc ''
+        Additional command-line arguments to pass to
+        {command}`hoogle server`
+      '';
+    };
   };
 
   config = mkIf cfg.enable {
@@ -66,7 +76,10 @@ in {
 
       serviceConfig = {
         Restart = "always";
-        ExecStart = ''${hoogleEnv}/bin/hoogle server --local --port ${toString cfg.port} --home ${cfg.home} --host ${cfg.host}'';
+        ExecStart = ''
+          ${hoogleEnv}/bin/hoogle server --local --port ${toString cfg.port} --home ${cfg.home} --host ${cfg.host} \
+            ${concatStringsSep " " cfg.extraOptions}
+        '';
 
         DynamicUser = true;
 
diff --git a/nixpkgs/nixos/modules/services/display-managers/greetd.nix b/nixpkgs/nixos/modules/services/display-managers/greetd.nix
index c2d345152de9..5ce67c3fb3fd 100644
--- a/nixpkgs/nixos/modules/services/display-managers/greetd.nix
+++ b/nixpkgs/nixos/modules/services/display-managers/greetd.nix
@@ -61,6 +61,8 @@ in
     systemd.services."autovt@${tty}".enable = false;
 
     systemd.services.greetd = {
+      aliases = [ "display-manager.service" ];
+
       unitConfig = {
         Wants = [
           "systemd-user-sessions.service"
diff --git a/nixpkgs/nixos/modules/services/hardware/fwupd.nix b/nixpkgs/nixos/modules/services/hardware/fwupd.nix
index 8a9e38d0547b..c4837ff80ec7 100644
--- a/nixpkgs/nixos/modules/services/hardware/fwupd.nix
+++ b/nixpkgs/nixos/modules/services/hardware/fwupd.nix
@@ -14,11 +14,11 @@ let
 
   customEtc = {
     "fwupd/fwupd.conf" = {
-      source = format.generate "fwupd.conf" {
+      source = format.generate "fwupd.conf" ({
         fwupd = cfg.daemonSettings;
       } // lib.optionalAttrs (lib.length (lib.attrNames cfg.uefiCapsuleSettings) != 0) {
         uefi_capsule = cfg.uefiCapsuleSettings;
-      };
+      });
       # fwupd tries to chmod the file if it doesn't have the right permissions
       mode = "0640";
     };
diff --git a/nixpkgs/nixos/modules/services/matrix/matrix-sliding-sync.nix b/nixpkgs/nixos/modules/services/matrix/matrix-sliding-sync.nix
index 8b22cd7dba80..d62e41bebd64 100644
--- a/nixpkgs/nixos/modules/services/matrix/matrix-sliding-sync.nix
+++ b/nixpkgs/nixos/modules/services/matrix/matrix-sliding-sync.nix
@@ -37,7 +37,7 @@ in
             type = lib.types.str;
             default = "127.0.0.1:8009";
             example = "[::]:8008";
-            description = lib.mdDoc "The interface and port to listen on.";
+            description = lib.mdDoc "The interface and port or path (for unix socket) to listen on.";
           };
 
           SYNCV3_LOG_LEVEL = lib.mkOption {
@@ -98,6 +98,7 @@ in
         ExecStart = lib.getExe cfg.package;
         StateDirectory = "matrix-sliding-sync";
         WorkingDirectory = "%S/matrix-sliding-sync";
+        RuntimeDirectory = "matrix-sliding-sync";
         Restart = "on-failure";
         RestartSec = "1s";
       };
diff --git a/nixpkgs/nixos/modules/services/matrix/synapse.nix b/nixpkgs/nixos/modules/services/matrix/synapse.nix
index e3f9c7742cc7..7291c0fcbcdd 100644
--- a/nixpkgs/nixos/modules/services/matrix/synapse.nix
+++ b/nixpkgs/nixos/modules/services/matrix/synapse.nix
@@ -1232,7 +1232,8 @@ in {
             ProtectKernelTunables = true;
             ProtectProc = "invisible";
             ProtectSystem = "strict";
-            ReadWritePaths = [ cfg.dataDir cfg.settings.media_store_path ];
+            ReadWritePaths = [ cfg.dataDir cfg.settings.media_store_path ] ++
+              (map (listener: dirOf listener.path) (filter (listener: listener.path != null) cfg.settings.listeners));
             RemoveIPC = true;
             RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
             RestrictNamespaces = true;
diff --git a/nixpkgs/nixos/modules/services/misc/etebase-server.nix b/nixpkgs/nixos/modules/services/misc/etebase-server.nix
index f5a5e8a780d4..6ec3807f0fb2 100644
--- a/nixpkgs/nixos/modules/services/misc/etebase-server.nix
+++ b/nixpkgs/nixos/modules/services/misc/etebase-server.nix
@@ -177,6 +177,8 @@ in
 
     systemd.tmpfiles.rules = [
       "d '${cfg.dataDir}' - ${cfg.user} ${config.users.users.${cfg.user}.group} - -"
+    ] ++ lib.optionals (cfg.unixSocket != null) [
+      "d '${builtins.dirOf cfg.unixSocket}' - ${cfg.user} ${config.users.users.${cfg.user}.group} - -"
     ];
 
     systemd.services.etebase-server = {
diff --git a/nixpkgs/nixos/modules/services/misc/gitlab.nix b/nixpkgs/nixos/modules/services/misc/gitlab.nix
index ec347a75f063..e95ab0a112bc 100644
--- a/nixpkgs/nixos/modules/services/misc/gitlab.nix
+++ b/nixpkgs/nixos/modules/services/misc/gitlab.nix
@@ -1439,6 +1439,8 @@ in {
         nodejs
         gnupg
 
+        "${cfg.packages.gitlab}/share/gitlab/vendor/gems/sidekiq-${cfg.packages.gitlab.rubyEnv.gems.sidekiq.version}"
+
         # Needed for GitLab project imports
         gnutar
         gzip
@@ -1452,7 +1454,12 @@ in {
         TimeoutSec = "infinity";
         Restart = "always";
         WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
-        ExecStart="${cfg.packages.gitlab.rubyEnv}/bin/sidekiq -C \"${cfg.packages.gitlab}/share/gitlab/config/sidekiq_queues.yml\" -e production";
+        ExecStart = utils.escapeSystemdExecArgs [
+          "${cfg.packages.gitlab}/share/gitlab/bin/sidekiq-cluster"
+          "-e" "production"
+          "-r" "."
+          "*" # all queue groups
+        ];
       };
     };
 
@@ -1550,7 +1557,7 @@ in {
         gnutar
         gzip
         openssh
-        gitlab-workhorse
+        cfg.packages.gitlab-workhorse
       ];
       serviceConfig = {
         Type = "simple";
diff --git a/nixpkgs/nixos/modules/services/misc/llama-cpp.nix b/nixpkgs/nixos/modules/services/misc/llama-cpp.nix
index 4d76456fb2fd..305d4538e89a 100644
--- a/nixpkgs/nixos/modules/services/misc/llama-cpp.nix
+++ b/nixpkgs/nixos/modules/services/misc/llama-cpp.nix
@@ -56,7 +56,7 @@ in {
       serviceConfig = {
         Type = "idle";
         KillSignal = "SIGINT";
-        ExecStart = "${cfg.package}/bin/llama-cpp-server --log-disable --host ${cfg.host} --port ${builtins.toString cfg.port} -m ${cfg.model} ${utils.escapeSystemdExecArgs cfg.extraFlags}";
+        ExecStart = "${cfg.package}/bin/llama-server --log-disable --host ${cfg.host} --port ${builtins.toString cfg.port} -m ${cfg.model} ${utils.escapeSystemdExecArgs cfg.extraFlags}";
         Restart = "on-failure";
         RestartSec = 300;
 
diff --git a/nixpkgs/nixos/modules/services/misc/ollama.nix b/nixpkgs/nixos/modules/services/misc/ollama.nix
index 3ac3beb4de07..7a5661510e25 100644
--- a/nixpkgs/nixos/modules/services/misc/ollama.nix
+++ b/nixpkgs/nixos/modules/services/misc/ollama.nix
@@ -13,48 +13,60 @@ in
 {
   options = {
     services.ollama = {
-      enable = lib.mkEnableOption (
-        lib.mdDoc "Server for local large language models"
-      );
+      enable = lib.mkEnableOption "ollama server for local large language models";
+      package = lib.mkPackageOption pkgs "ollama" { };
       listenAddress = lib.mkOption {
         type = types.str;
         default = "127.0.0.1:11434";
-        description = lib.mdDoc ''
-          Specifies the bind address on which the ollama server HTTP interface listens.
+        example = "0.0.0.0:11111";
+        description = ''
+          The address which the ollama server HTTP interface binds and listens to.
         '';
       };
       acceleration = lib.mkOption {
         type = types.nullOr (types.enum [ "rocm" "cuda" ]);
         default = null;
         example = "rocm";
-        description = lib.mdDoc ''
-          Specifies the interface to use for hardware acceleration.
+        description = ''
+          What interface to use for hardware acceleration.
 
           - `rocm`: supported by modern AMD GPUs
           - `cuda`: supported by modern NVIDIA GPUs
         '';
       };
-      package = lib.mkPackageOption pkgs "ollama" { };
+      environmentVariables = lib.mkOption {
+        type = types.attrsOf types.str;
+        default = { };
+        example = {
+          HOME = "/tmp";
+          OLLAMA_LLM_LIBRARY = "cpu";
+        };
+        description = ''
+          Set arbitrary environment variables for the ollama service.
+
+          Be aware that these are only seen by the ollama server (systemd service),
+          not normal invocations like `ollama run`.
+          Since `ollama run` is mostly a shell around the ollama server, this is usually sufficient.
+        '';
+      };
     };
   };
 
   config = lib.mkIf cfg.enable {
-    systemd = {
-      services.ollama = {
-        wantedBy = [ "multi-user.target" ];
-        description = "Server for local large language models";
-        after = [ "network.target" ];
-        environment = {
-          HOME = "%S/ollama";
-          OLLAMA_MODELS = "%S/ollama/models";
-          OLLAMA_HOST = cfg.listenAddress;
-        };
-        serviceConfig = {
-          ExecStart = "${lib.getExe ollamaPackage} serve";
-          WorkingDirectory = "/var/lib/ollama";
-          StateDirectory = [ "ollama" ];
-          DynamicUser = true;
-        };
+    systemd.services.ollama = {
+      description = "Server for local large language models";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+      environment = cfg.environmentVariables // {
+        HOME = "%S/ollama";
+        OLLAMA_MODELS = "%S/ollama/models";
+        OLLAMA_HOST = cfg.listenAddress;
+      };
+      serviceConfig = {
+        ExecStart = "${lib.getExe ollamaPackage} serve";
+        WorkingDirectory = "%S/ollama";
+        StateDirectory = [ "ollama" ];
+        DynamicUser = true;
       };
     };
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
index 6be6ba7edf72..8c5ec2992eda 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -1,4 +1,4 @@
-{ config, pkgs, lib, options, ... }:
+{ config, pkgs, lib, options, utils, ... }:
 
 let
   inherit (lib) concatStrings foldl foldl' genAttrs literalExpression maintainers
@@ -35,6 +35,7 @@ let
     "dovecot"
     "fastly"
     "flow"
+    "fritz"
     "fritzbox"
     "graphite"
     "idrac"
@@ -94,10 +95,10 @@ let
     "zfs"
   ]
     (name:
-      import (./. + "/exporters/${name}.nix") { inherit config lib pkgs options; }
+      import (./. + "/exporters/${name}.nix") { inherit config lib pkgs options utils; }
     )) // (mapAttrs
     (name: params:
-      import (./. + "/exporters/${params.name}.nix") { inherit config lib pkgs options; type = params.type ; })
+      import (./. + "/exporters/${params.name}.nix") { inherit config lib pkgs options utils; type = params.type ; })
     {
       exportarr-bazarr = {
         name = "exportarr";
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix
index a8a9f84ea8ea..de6cda18bc37 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/apcupsd.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/artifactory.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/artifactory.nix
index bc67fe59b3b8..b3afdb596686 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/artifactory.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/artifactory.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bind.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bind.nix
index bd2003f06504..100446c1a4eb 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bind.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bind.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bird.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bird.nix
index 5f6c36f4c567..fc52135e3b45 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bird.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bird.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix
index 330d54126448..45f00a04a86c 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix
index ce2c391de523..e8399e1bec80 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/blackbox.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/buildkite-agent.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/buildkite-agent.nix
index 0515b72b13f9..6bfadc3b7632 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/buildkite-agent.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/buildkite-agent.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/collectd.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/collectd.nix
index f67596f05a3a..3b2b123bbd07 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/collectd.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/collectd.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dmarc.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dmarc.nix
index 437cece588a7..a4a917b473ce 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dmarc.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dmarc.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dnsmasq.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dnsmasq.nix
index ece42a34cb06..4cfee7c54a41 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dnsmasq.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dnsmasq.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/domain.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/domain.nix
index 61e2fc80afde..b2c8e6664c0f 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/domain.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/domain.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
index 6fb438353a4c..df6b1ef3200c 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/exportarr.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/exportarr.nix
index 8511abbee1bd..c632b0290262 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/exportarr.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/exportarr.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options, type }:
+{ config, lib, pkgs, options, type, ... }:
 
 let
   cfg = config.services.prometheus.exporters."exportarr-${type}";
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix
index 2a8b7fc0818d..097ea3959478 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix
@@ -2,6 +2,7 @@
 , lib
 , pkgs
 , options
+, ...
 }:
 
 let
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/flow.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/flow.nix
index 81099aaf1704..42292abeada2 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/flow.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/flow.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fritz.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fritz.nix
new file mode 100644
index 000000000000..c3a962b576a5
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fritz.nix
@@ -0,0 +1,97 @@
+{ config, lib, pkgs, utils, ... }:
+let
+  inherit (lib) mkOption types mdDoc;
+  cfg = config.services.prometheus.exporters.fritz;
+  yaml = pkgs.formats.yaml { };
+  configFile = yaml.generate "fritz-exporter.yaml" cfg.settings;
+in
+{
+  port = 9787;
+
+  extraOpts = {
+    settings = mkOption {
+      description = mdDoc "Configuration settings for fritz-exporter.";
+      type = types.submodule {
+        freeformType = yaml.type;
+
+        options = {
+          # Pull existing port option into config file.
+          port = mkOption {
+            type = types.port;
+            default = cfg.port;
+            internal = true;
+            visible = false;
+          };
+          # Pull existing listen address option into config file.
+          listen_address = mkOption {
+            type = types.str;
+            default = cfg.listenAddress;
+            internal = true;
+            visible = false;
+          };
+          log_level = mkOption {
+            type = types.enum [ "DEBUG" "INFO" "WARNING" "ERROR" "CRITICAL" ];
+            default = "INFO";
+            description = mdDoc ''
+              Log level to use for the exporter.
+            '';
+          };
+          devices = mkOption {
+            default = [];
+            description = "Fritz!-devices to monitor using the exporter.";
+            type = with types; listOf (submodule {
+              freeformType = yaml.type;
+
+              options = {
+                name = mkOption {
+                  type = types.str;
+                  default = "";
+                  description = mdDoc ''
+                    Name to use for the device.
+                  '';
+                };
+                hostname = mkOption {
+                  type = types.str;
+                  default = "fritz.box";
+                  description = mdDoc ''
+                    Hostname under which the target device is reachable.
+                  '';
+                };
+                username = mkOption {
+                  type = types.str;
+                  description = mdDoc ''
+                    Username to authenticate with the target device.
+                  '';
+                };
+                password_file = mkOption {
+                  type = types.path;
+                  description = mdDoc ''
+                    Path to a file which contains the password to authenticate with the target device.
+                    Needs to be readable by the user the exporter runs under.
+                  '';
+                };
+                host_info = mkOption {
+                  type = types.bool;
+                  description = mdDoc ''
+                    Enable extended host info for this device. *Warning*: This will heavily increase scrape time.
+                  '';
+                  default = false;
+                };
+              };
+            });
+          };
+        };
+      };
+    };
+  };
+
+  serviceOpts = {
+    serviceConfig = {
+      ExecStart = utils.escapeSystemdExecArgs ([
+        (lib.getExe pkgs.fritz-exporter)
+        "--config" configFile
+      ] ++ cfg.extraFlags);
+      DynamicUser = false;
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fritzbox.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fritzbox.nix
index dc53d21406ff..7b881a8e2693 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fritzbox.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/fritzbox.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/graphite.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/graphite.nix
index 34a887104212..07c06afe1409 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/graphite.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/graphite.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 let
   cfg = config.services.prometheus.exporters.graphite;
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/idrac.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/idrac.nix
index f5604bc00ee0..78ae4826215c 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/idrac.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/idrac.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 let
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/imap-mailstat.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/imap-mailstat.nix
index c5024a258e71..68fc63e40fcd 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/imap-mailstat.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/imap-mailstat.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/influxdb.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/influxdb.nix
index 61c0c08d2250..d0d7f16bdadf 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/influxdb.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/influxdb.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/ipmi.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/ipmi.nix
index 9adbe31d84d6..fe9734d33c7c 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/ipmi.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/ipmi.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix
index 024602718602..bc670ba9cc0e 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/jitsi.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/json.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/json.nix
index 473f3a7e47e3..7f78985d80cd 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/json.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/json.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/junos-czerwonk.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/junos-czerwonk.nix
index 15e0c9ecb177..72119d17fcb7 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/junos-czerwonk.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/junos-czerwonk.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/kea.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/kea.nix
index 3abb6ff6bdf8..ccfdd98b8db9 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/kea.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/kea.nix
@@ -1,7 +1,8 @@
 { config
 , lib
 , pkgs
-, options
+, utils
+, ...
 }:
 
 with lib;
@@ -9,18 +10,22 @@ with lib;
 let
   cfg = config.services.prometheus.exporters.kea;
 in {
+  imports = [
+    (mkRenamedOptionModule [ "controlSocketPaths" ] [ "targets" ])
+  ];
   port = 9547;
   extraOpts = {
-    controlSocketPaths = mkOption {
+    targets = mkOption {
       type = types.listOf types.str;
       example = literalExpression ''
         [
           "/run/kea/kea-dhcp4.socket"
           "/run/kea/kea-dhcp6.socket"
+          "http://127.0.0.1:8547"
         ]
       '';
       description = lib.mdDoc ''
-        Paths to kea control sockets
+        Paths or URLs to the Kea control socket.
       '';
     };
   };
@@ -32,12 +37,11 @@ in {
     serviceConfig = {
       User = "kea";
       DynamicUser = true;
-      ExecStart = ''
-        ${pkgs.prometheus-kea-exporter}/bin/kea-exporter \
-          --address ${cfg.listenAddress} \
-          --port ${toString cfg.port} \
-          ${concatStringsSep " " cfg.controlSocketPaths}
-      '';
+      ExecStart = utils.escapeSystemdExecArgs ([
+        (lib.getExe pkgs.prometheus-kea-exporter)
+        "--address" cfg.listenAddress
+        "--port" cfg.port
+      ] ++ cfg.extraFlags ++ cfg.targets);
       RuntimeDirectory = "kea";
       RuntimeDirectoryPreserve = true;
       RestrictAddressFamilies = [
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/keylight.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/keylight.nix
index dfa56343b871..afdb664a0de5 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/keylight.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/keylight.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/knot.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/knot.nix
index 775848750803..0352aff8b013 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/knot.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/knot.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/lnd.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/lnd.nix
index 9f914b1dc146..66d9c02f904b 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/lnd.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/lnd.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mail.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
index 15079f5841f4..8c88f47ab86a 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mikrotik.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mikrotik.nix
index 54dab4b5581a..a8dba75251d8 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mikrotik.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mikrotik.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/minio.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/minio.nix
index 82cc3fc314f2..e24d4f766e30 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/minio.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/minio.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix
index 222ea3e5384f..0eb193c0021f 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mongodb.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mongodb.nix
index b36a09c60920..1ed6bbf0325d 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mongodb.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mongodb.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mysqld.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mysqld.nix
index 849c514de681..c6da052ccdf3 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mysqld.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/mysqld.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 let
   cfg = config.services.prometheus.exporters.mysqld;
   inherit (lib) types mkOption mdDoc mkIf mkForce cli concatStringsSep optionalString escapeShellArgs;
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nextcloud.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nextcloud.nix
index 28a3eb6a134c..82deea6864e8 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nextcloud.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nextcloud.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
index 88dc79fc2503..339749226aa4 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginxlog.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginxlog.nix
index 674dc9dd4158..b79a034e1384 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginxlog.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nginxlog.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/node.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/node.nix
index dd8602e2c63d..9b8a0d2c6bc2 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/node.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/node.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nut.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nut.nix
index e58a394456a3..a14e379079b0 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nut.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/nut.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pgbouncer.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pgbouncer.nix
index 9e55cadae523..9587403c7802 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pgbouncer.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pgbouncer.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/php-fpm.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/php-fpm.nix
index 8238f1ac1856..4ea5f64012c0 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/php-fpm.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/php-fpm.nix
@@ -2,6 +2,7 @@
 , lib
 , pkgs
 , options
+, ...
 }:
 
 let
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix
index 6f403b3e58c8..4b7eca7493a6 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pihole.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/ping.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/ping.nix
index af78b6bef625..bda5038a0c64 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/ping.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/ping.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
index 9f402b123110..ead8e806f85a 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix
index 755d771ecdff..514b2d0c8f2d 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/postgres.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/process.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/process.nix
index 278d6cd78074..86c71a88e28b 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/process.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/process.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pve.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pve.nix
index 83e740320df2..96db49d9591f 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pve.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/pve.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 let
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/py-air-control.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/py-air-control.nix
index f03b3c4df916..60243e0ed069 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/py-air-control.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/py-air-control.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/redis.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/redis.nix
index befbcb21f766..71f94a700efd 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/redis.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/redis.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/restic.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/restic.nix
index 977bd42e9812..12962af5f111 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/restic.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/restic.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
index f9dcfad07d30..8169d4075a9f 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rtl_433.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rtl_433.nix
index 1f7235cb7830..42b659501161 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rtl_433.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/rtl_433.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 let
   cfg = config.services.prometheus.exporters.rtl_433;
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/sabnzbd.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/sabnzbd.nix
index b9ab305f7c08..0d937ac6673f 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/sabnzbd.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/sabnzbd.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 let
   inherit (lib) mkOption types;
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/scaphandre.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/scaphandre.nix
index 3b6ebf65b090..d4c929d88b9c 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/scaphandre.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/scaphandre.nix
@@ -2,6 +2,7 @@
 , lib
 , pkgs
 , options
+, ...
 }:
 
 let
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/script.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/script.nix
index eab0e1d8a6b5..f37fa456d27c 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/script.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/script.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/shelly.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/shelly.nix
index b9cfd1b1e84a..1d2329dfbae1 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/shelly.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/shelly.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix
index 50e1321a1e9c..1040e9ecadbd 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix
index 459f5842f546..2bacc9cd7cac 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
index 452cb154bcf6..207446e39f49 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/snmp.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/sql.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/sql.nix
index 678bc348679d..dbfa69678a0c 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/sql.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/sql.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 with lib;
 let
   cfg = config.services.prometheus.exporters.sql;
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/statsd.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/statsd.nix
index d9d732d8c125..94df86167e8c 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/statsd.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/statsd.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/surfboard.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/surfboard.nix
index b1d6760b40b3..337ebd4ed66f 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/surfboard.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/surfboard.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/tor.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/tor.nix
index 7a9167110a27..b91f69aded3d 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/tor.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/tor.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix
index f2336429d42f..2f4444a96c69 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unbound.nix
@@ -2,6 +2,7 @@
 , lib
 , pkgs
 , options
+, ...
 }:
 
 with lib;
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unifi.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unifi.nix
index 70f26d9783be..b7addcd56827 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unifi.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unifi.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unpoller.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unpoller.nix
index 3b7f978528cd..aff1197a8775 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unpoller.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unpoller.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/v2ray.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/v2ray.nix
index a019157c664b..7b21e5fc7cb7 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/v2ray.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/v2ray.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix
index a7e5b41dffc6..98fbba82c8e9 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/varnish.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix
index 9b7590314936..127c8021a9f0 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/wireguard.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/zfs.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/zfs.nix
index ff12a52d49a9..21f6354cc4a2 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/zfs.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/zfs.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, options }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/scrutiny.nix b/nixpkgs/nixos/modules/services/monitoring/scrutiny.nix
index aef924ef840c..031f5a30cada 100644
--- a/nixpkgs/nixos/modules/services/monitoring/scrutiny.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/scrutiny.nix
@@ -2,7 +2,7 @@
 let
   inherit (lib) maintainers;
   inherit (lib.meta) getExe;
-  inherit (lib.modules) mkIf;
+  inherit (lib.modules) mkIf mkMerge;
   inherit (lib.options) literalExpression mkEnableOption mkOption mkPackageOption;
   inherit (lib.types) bool enum nullOr port str submodule;
 
@@ -156,43 +156,47 @@ in
     };
   };
 
-  config = mkIf (cfg.enable || cfg.collector.enable) {
-    services.influxdb2.enable = cfg.influxdb.enable;
+  config = mkMerge [
+    (mkIf cfg.enable {
+      services.influxdb2.enable = cfg.influxdb.enable;
 
-    networking.firewall = mkIf cfg.openFirewall {
-      allowedTCPPorts = [ cfg.settings.web.listen.port ];
-    };
-
-    services.smartd = mkIf cfg.collector.enable {
-      enable = true;
-      extraOptions = [
-        "-A /var/log/smartd/"
-        "--interval=600"
-      ];
-    };
+      networking.firewall = mkIf cfg.openFirewall {
+        allowedTCPPorts = [ cfg.settings.web.listen.port ];
+      };
 
-    systemd = {
-      services = {
-        scrutiny = mkIf cfg.enable {
-          description = "Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds";
-          wantedBy = [ "multi-user.target" ];
-          after = [ "network.target" ];
-          environment = {
-            SCRUTINY_VERSION = "1";
-            SCRUTINY_WEB_DATABASE_LOCATION = "/var/lib/scrutiny/scrutiny.db";
-            SCRUTINY_WEB_SRC_FRONTEND_PATH = "${cfg.package}/share/scrutiny";
-          };
-          serviceConfig = {
-            DynamicUser = true;
-            ExecStart = "${getExe cfg.package} start --config ${settingsFormat.generate "scrutiny.yaml" cfg.settings}";
-            Restart = "always";
-            StateDirectory = "scrutiny";
-            StateDirectoryMode = "0750";
-          };
+      systemd.services.scrutiny = {
+        description = "Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds";
+        wantedBy = [ "multi-user.target" ];
+        after = [ "network.target" ] ++ lib.optional cfg.influxdb.enable "influxdb2.service";
+        wants = lib.optional cfg.influxdb.enable "influxdb2.service";
+        environment = {
+          SCRUTINY_VERSION = "1";
+          SCRUTINY_WEB_DATABASE_LOCATION = "/var/lib/scrutiny/scrutiny.db";
+          SCRUTINY_WEB_SRC_FRONTEND_PATH = "${cfg.package}/share/scrutiny";
         };
+        serviceConfig = {
+          DynamicUser = true;
+          ExecStart = "${getExe cfg.package} start --config ${settingsFormat.generate "scrutiny.yaml" cfg.settings}";
+          Restart = "always";
+          StateDirectory = "scrutiny";
+          StateDirectoryMode = "0750";
+        };
+      };
+    })
+    (mkIf cfg.collector.enable {
+      services.smartd = {
+        enable = true;
+        extraOptions = [
+          "-A /var/log/smartd/"
+          "--interval=600"
+        ];
+      };
 
-        scrutiny-collector = mkIf cfg.collector.enable {
+      systemd = {
+        services.scrutiny-collector = {
           description = "Scrutiny Collector Service";
+          after = lib.optional cfg.enable "scrutiny.service";
+          wants = lib.optional cfg.enable "scrutiny.service";
           environment = {
             COLLECTOR_VERSION = "1";
             COLLECTOR_API_ENDPOINT = cfg.collector.settings.api.endpoint;
@@ -201,20 +205,13 @@ in
             Type = "oneshot";
             ExecStart = "${getExe cfg.collector.package} run --config ${settingsFormat.generate "scrutiny-collector.yaml" cfg.collector.settings}";
           };
+          startAt = cfg.collector.schedule;
         };
-      };
 
-      timers = mkIf cfg.collector.enable {
-        scrutiny-collector = {
-          timerConfig = {
-            OnCalendar = cfg.collector.schedule;
-            Persistent = true;
-            Unit = "scrutiny-collector.service";
-          };
-        };
+        timers.scrutiny-collector.timerConfig.Persistent = true;
       };
-    };
-  };
+    })
+  ];
 
   meta.maintainers = [ maintainers.jnsgruk ];
 }
diff --git a/nixpkgs/nixos/modules/services/networking/dnscache.nix b/nixpkgs/nixos/modules/services/networking/dnscache.nix
index eff13f69f470..4f5b77a5b685 100644
--- a/nixpkgs/nixos/modules/services/networking/dnscache.nix
+++ b/nixpkgs/nixos/modules/services/networking/dnscache.nix
@@ -86,7 +86,11 @@ in {
 
   config = mkIf config.services.dnscache.enable {
     environment.systemPackages = [ pkgs.djbdns ];
-    users.users.dnscache.isSystemUser = true;
+    users.users.dnscache = {
+        isSystemUser = true;
+        group = "dnscache";
+    };
+    users.groups.dnscache = {};
 
     systemd.services.dnscache = {
       description = "djbdns dnscache server";
diff --git a/nixpkgs/nixos/modules/services/networking/mihomo.nix b/nixpkgs/nixos/modules/services/networking/mihomo.nix
new file mode 100644
index 000000000000..ae700603b529
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/mihomo.nix
@@ -0,0 +1,118 @@
+# NOTE:
+# cfg.configFile contains secrets such as proxy servers' credential!
+# we dont want plaintext secrets in world-readable `/nix/store`.
+
+{ lib
+, config
+, pkgs
+, ...
+}:
+let
+  cfg = config.services.mihomo;
+in
+{
+  options.services.mihomo = {
+    enable = lib.mkEnableOption "Mihomo, A rule-based proxy in Go.";
+
+    package = lib.mkPackageOption pkgs "mihomo" { };
+
+    configFile = lib.mkOption {
+      default = null;
+      type = lib.types.nullOr lib.types.path;
+      description = "Configuration file to use.";
+    };
+
+    webui = lib.mkOption {
+      default = null;
+      type = lib.types.nullOr lib.types.path;
+      description = ''
+        Local web interface to use.
+
+        You can also use the following website, just in case:
+        - metacubexd:
+          - https://d.metacubex.one
+          - https://metacubex.github.io/metacubexd
+          - https://metacubexd.pages.dev
+        - yacd:
+          - https://yacd.haishan.me
+        - clash-dashboard (buggy):
+          - https://clash.razord.top
+      '';
+    };
+
+    extraOpts = lib.mkOption {
+      default = null;
+      type = lib.types.nullOr lib.types.str;
+      description = "Extra command line options to use.";
+    };
+
+    tunMode = lib.mkEnableOption ''
+      necessary permission for Mihomo's systemd service for TUN mode to function properly.
+
+      Keep in mind, that you still need to enable TUN mode manually in Mihomo's configuration.
+    '';
+  };
+
+  config = lib.mkIf cfg.enable {
+    ### systemd service
+    systemd.services."mihomo" = {
+      description = "Mihomo daemon, A rule-based proxy in Go.";
+      documentation = [ "https://wiki.metacubex.one/" ];
+      requires = [ "network-online.target" ];
+      after = [ "network-online.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig =
+        {
+          ExecStart = lib.concatStringsSep " " [
+            (lib.getExe cfg.package)
+            "-d /var/lib/private/mihomo"
+            (lib.optionalString (cfg.configFile != null) "-f \${CREDENTIALS_DIRECTORY}/config.yaml")
+            (lib.optionalString (cfg.webui != null) "-ext-ui ${cfg.webui}")
+            (lib.optionalString (cfg.extraOpts != null) cfg.extraOpts)
+          ];
+
+          DynamicUser = true;
+          StateDirectory = "mihomo";
+          LoadCredential = "config.yaml:${cfg.configFile}";
+
+          ### Hardening
+          AmbientCapabilities = "";
+          CapabilityBoundingSet = "";
+          DeviceAllow = "";
+          LockPersonality = true;
+          MemoryDenyWriteExecute = true;
+          NoNewPrivileges = true;
+          PrivateDevices = true;
+          PrivateMounts = true;
+          PrivateTmp = true;
+          PrivateUsers = true;
+          ProcSubset = "pid";
+          ProtectClock = true;
+          ProtectControlGroups = true;
+          ProtectHome = true;
+          ProtectHostname = true;
+          ProtectKernelLogs = true;
+          ProtectKernelModules = true;
+          ProtectKernelTunables = true;
+          ProtectProc = "invisible";
+          ProtectSystem = "strict";
+          RestrictRealtime = true;
+          RestrictSUIDSGID = true;
+          RestrictNamespaces = true;
+          RestrictAddressFamilies = "AF_INET AF_INET6";
+          SystemCallArchitectures = "native";
+          SystemCallFilter = "@system-service bpf";
+          UMask = "0077";
+        }
+        // lib.optionalAttrs cfg.tunMode {
+          AmbientCapabilities = "CAP_NET_ADMIN";
+          CapabilityBoundingSet = "CAP_NET_ADMIN";
+          PrivateDevices = false;
+          PrivateUsers = false;
+          RestrictAddressFamilies = "AF_INET AF_INET6 AF_NETLINK";
+        };
+    };
+  };
+
+  meta.maintainers = with lib.maintainers; [ Guanran928 ];
+}
diff --git a/nixpkgs/nixos/modules/services/networking/murmur.nix b/nixpkgs/nixos/modules/services/networking/murmur.nix
index 5805f332a66f..1fb5063e5ad8 100644
--- a/nixpkgs/nixos/modules/services/networking/murmur.nix
+++ b/nixpkgs/nixos/modules/services/networking/murmur.nix
@@ -33,7 +33,7 @@ let
     sendversion=${boolToString cfg.sendVersion}
 
     ${optionalString (cfg.registerName != "") "registerName=${cfg.registerName}"}
-    ${optionalString (cfg.registerPassword == "") "registerPassword=${cfg.registerPassword}"}
+    ${optionalString (cfg.registerPassword != "") "registerPassword=${cfg.registerPassword}"}
     ${optionalString (cfg.registerUrl != "") "registerUrl=${cfg.registerUrl}"}
     ${optionalString (cfg.registerHostname != "") "registerHostname=${cfg.registerHostname}"}
 
diff --git a/nixpkgs/nixos/modules/services/networking/mycelium.nix b/nixpkgs/nixos/modules/services/networking/mycelium.nix
new file mode 100644
index 000000000000..9c4bca7c6861
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/mycelium.nix
@@ -0,0 +1,133 @@
+{ config, pkgs, lib, ... }:
+
+let
+  cfg = config.services.mycelium;
+in
+{
+  options.services.mycelium = {
+    enable = lib.mkEnableOption "mycelium network";
+    peers = lib.mkOption {
+      type = lib.types.listOf lib.types.str;
+      description = ''
+        List of peers to connect to, in the formats:
+         - `quic://[2001:0db8::1]:9651`
+         - `quic://192.0.2.1:9651`
+         - `tcp://[2001:0db8::1]:9651`
+         - `tcp://192.0.2.1:9651`
+
+        If addHostedPublicNodes is set to true, the hosted public nodes will also be added.
+      '';
+      default = [ ];
+    };
+    keyFile = lib.mkOption {
+      type = lib.types.nullOr lib.types.path;
+      default = null;
+      description = ''
+        Optional path to a file containing the mycelium key material.
+        If unset, the default location (`/var/lib/mycelium/key.bin`) will be used.
+        If no key exist at this location, it will be generated on startup.
+      '';
+    };
+    openFirewall = lib.mkOption {
+      type = lib.types.bool;
+      default = false;
+      description = "Open the firewall for mycelium";
+    };
+    package = lib.mkOption {
+      type = lib.types.package;
+      default = pkgs.mycelium;
+      defaultText = lib.literalExpression ''"''${pkgs.mycelium}"'';
+      description = "The mycelium package to use";
+    };
+    addHostedPublicNodes = lib.mkOption {
+      type = lib.types.bool;
+      default = true;
+      description = ''
+        Adds the hosted peers from https://github.com/threefoldtech/mycelium#hosted-public-nodes.
+      '';
+    };
+  };
+  config = lib.mkIf cfg.enable {
+    networking.firewall.allowedTCPPorts = lib.optionals cfg.openFirewall [ 9651 ];
+    networking.firewall.allowedUDPPorts = lib.optionals cfg.openFirewall [ 9650 9651 ];
+
+    systemd.services.mycelium = {
+      description = "Mycelium network";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      restartTriggers = [
+        cfg.keyFile
+      ];
+
+      unitConfig.Documentation = "https://github.com/threefoldtech/mycelium";
+
+      serviceConfig = {
+        User = "mycelium";
+        DynamicUser = true;
+        StateDirectory = "mycelium";
+        ProtectHome = true;
+        ProtectSystem = true;
+        LoadCredential = lib.mkIf (cfg.keyFile != null) "keyfile:${cfg.keyFile}";
+        SyslogIdentifier = "mycelium";
+        AmbientCapabilities = [ "CAP_NET_ADMIN" ];
+        MemoryDenyWriteExecute = true;
+        ProtectControlGroups = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK";
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [ "@system-service" "~@privileged @keyring" ];
+        ExecStart = lib.concatStringsSep " " ([
+          (lib.getExe cfg.package)
+          (if (cfg.keyFile != null) then
+            "--key-file \${CREDENTIALS_DIRECTORY}/keyfile" else
+            "--key-file %S/mycelium/key.bin"
+          )
+          "--tun-name"
+          "mycelium"
+        ] ++
+        (lib.optional (cfg.addHostedPublicNodes || cfg.peers != [ ]) "--peers")
+        ++ cfg.peers ++ (lib.optionals cfg.addHostedPublicNodes [
+          "tcp://188.40.132.242:9651" # DE 01
+          "tcp://[2a01:4f8:221:1e0b::2]:9651"
+          "quic://188.40.132.242:9651"
+          "quic://[2a01:4f8:221:1e0b::2]:9651"
+
+          "tcp://136.243.47.186:9651" # DE 02
+          "tcp://[2a01:4f8:212:fa6::2]:9651"
+          "quic://136.243.47.186:9651"
+          "quic://[2a01:4f8:212:fa6::2]:9651"
+
+          "tcp://185.69.166.7:9651" # BE 03
+          "tcp://[2a02:1802:5e:0:8478:51ff:fee2:3331]:9651"
+          "quic://185.69.166.7:9651"
+          "quic://[2a02:1802:5e:0:8478:51ff:fee2:3331]:9651"
+
+          "tcp://185.69.166.8:9651" # BE 04
+          "tcp://[2a02:1802:5e:0:8c9e:7dff:fec9:f0d2]:9651"
+          "quic://185.69.166.8:9651"
+          "quic://[2a02:1802:5e:0:8c9e:7dff:fec9:f0d2]:9651"
+
+          "tcp://65.21.231.58:9651" # FI 05
+          "tcp://[2a01:4f9:6a:1dc5::2]:9651"
+          "quic://65.21.231.58:9651"
+          "quic://[2a01:4f9:6a:1dc5::2]:9651"
+
+          "tcp://65.109.18.113:9651" # FI 06
+          "tcp://[2a01:4f9:5a:1042::2]:9651"
+          "quic://65.109.18.113:9651"
+          "quic://[2a01:4f9:5a:1042::2]:9651"
+        ]));
+        Restart = "always";
+        RestartSec = 5;
+        TimeoutStopSec = 5;
+      };
+    };
+  };
+  meta = {
+    maintainers = with lib.maintainers; [ flokli lassulus ];
+  };
+}
+
diff --git a/nixpkgs/nixos/modules/services/networking/nebula.nix b/nixpkgs/nixos/modules/services/networking/nebula.nix
index e13876172dac..2f9e41ae9c80 100644
--- a/nixpkgs/nixos/modules/services/networking/nebula.nix
+++ b/nixpkgs/nixos/modules/services/networking/nebula.nix
@@ -10,6 +10,15 @@ let
   format = pkgs.formats.yaml {};
 
   nameToId = netName: "nebula-${netName}";
+
+  resolveFinalPort = netCfg:
+    if netCfg.listen.port == null then
+      if (netCfg.isLighthouse || netCfg.isRelay) then
+        4242
+      else
+        0
+    else
+      netCfg.listen.port;
 in
 {
   # Interface
@@ -95,8 +104,15 @@ in
             };
 
             listen.port = mkOption {
-              type = types.port;
-              default = 4242;
+              type = types.nullOr types.port;
+              default = null;
+              defaultText = lib.literalExpression ''
+                if (config.services.nebula.networks.''${name}.isLighthouse ||
+                    config.services.nebula.networks.''${name}.isRelay) then
+                  4242
+                else
+                  0;
+              '';
               description = lib.mdDoc "Port number to listen on.";
             };
 
@@ -174,7 +190,7 @@ in
           };
           listen = {
             host = netCfg.listen.host;
-            port = netCfg.listen.port;
+            port = resolveFinalPort netCfg;
           };
           tun = {
             disabled = netCfg.tun.disable;
@@ -185,7 +201,15 @@ in
             outbound = netCfg.firewall.outbound;
           };
         } netCfg.settings;
-        configFile = format.generate "nebula-config-${netName}.yml" settings;
+        configFile = format.generate "nebula-config-${netName}.yml" (
+          warnIf
+            ((settings.lighthouse.am_lighthouse || settings.relay.am_relay) && settings.listen.port == 0)
+            ''
+              Nebula network '${netName}' is configured as a lighthouse or relay, and its port is ${builtins.toString settings.listen.port}.
+              You will likely experience connectivity issues: https://nebula.defined.net/docs/config/listen/#listenport
+            ''
+            settings
+          );
         in
         {
           # Create the systemd service for Nebula.
@@ -229,7 +253,7 @@ in
 
     # Open the chosen ports for UDP.
     networking.firewall.allowedUDPPorts =
-      unique (mapAttrsToList (netName: netCfg: netCfg.listen.port) enabledNetworks);
+      unique (filter (port: port > 0) (mapAttrsToList (netName: netCfg: resolveFinalPort netCfg) enabledNetworks));
 
     # Create the service users and groups.
     users.users = mkMerge (mapAttrsToList (netName: netCfg:
diff --git a/nixpkgs/nixos/modules/services/networking/networkmanager.nix b/nixpkgs/nixos/modules/services/networking/networkmanager.nix
index c96439cf2641..573a02cbda9e 100644
--- a/nixpkgs/nixos/modules/services/networking/networkmanager.nix
+++ b/nixpkgs/nixos/modules/services/networking/networkmanager.nix
@@ -101,7 +101,23 @@ let
     pre-down = "pre-down.d/";
   };
 
-  macAddressOpt = mkOption {
+  macAddressOptWifi = mkOption {
+    type = types.either types.str (types.enum [ "permanent" "preserve" "random" "stable" "stable-ssid" ]);
+    default = "preserve";
+    example = "00:11:22:33:44:55";
+    description = lib.mdDoc ''
+      Set the MAC address of the interface.
+
+      - `"XX:XX:XX:XX:XX:XX"`: MAC address of the interface
+      - `"permanent"`: Use the permanent MAC address of the device
+      - `"preserve"`: Don’t change the MAC address of the device upon activation
+      - `"random"`: Generate a randomized value upon each connect
+      - `"stable"`: Generate a stable, hashed MAC address
+      - `"stable-ssid"`: Generate a stable MAC addressed based on Wi-Fi network
+    '';
+  };
+
+  macAddressOptEth = mkOption {
     type = types.either types.str (types.enum [ "permanent" "preserve" "random" "stable" ]);
     default = "preserve";
     example = "00:11:22:33:44:55";
@@ -258,10 +274,10 @@ in
         '';
       };
 
-      ethernet.macAddress = macAddressOpt;
+      ethernet.macAddress = macAddressOptEth;
 
       wifi = {
-        macAddress = macAddressOpt;
+        macAddress = macAddressOptWifi;
 
         backend = mkOption {
           type = types.enum [ "wpa_supplicant" "iwd" ];
@@ -291,7 +307,7 @@ in
       };
 
       dns = mkOption {
-        type = types.enum [ "default" "dnsmasq" "unbound" "systemd-resolved" "none" ];
+        type = types.enum [ "default" "dnsmasq" "systemd-resolved" "none" ];
         default = "default";
         description = lib.mdDoc ''
           Set the DNS (`resolv.conf`) processing mode.
@@ -436,6 +452,7 @@ in
             And if you edit a declarative profile NetworkManager will move it to the persistent storage and treat it like a ad-hoc one,
             but there will be two profiles as soon as the systemd unit from this option runs again which can be confusing since NetworkManager tools will start displaying two profiles with the same name and probably a bit different settings depending on what you edited.
             A profile won't be deleted even if it's removed from the config until the system reboots because that's when NetworkManager clears it's temp directory.
+            If `networking.resolvconf.enable` is true, attributes affecting the name resolution (such as `ignore-auto-dns`) may not end up changing `/etc/resolv.conf` as expected when other name services (for example `networking.dhcpcd`) are enabled. Run `resolvconf -l` in the terminal to see what each service produces.
           '';
         };
         environmentFiles = mkOption {
@@ -583,6 +600,7 @@ in
       description = "Ensure that NetworkManager declarative profiles are created";
       wantedBy = [ "multi-user.target" ];
       before = [ "network-online.target" ];
+      after = [ "NetworkManager.service" ];
       script = let
         path = id: "/run/NetworkManager/system-connections/${id}.nmconnection";
       in ''
@@ -592,9 +610,7 @@ in
           ${pkgs.envsubst}/bin/envsubst -i ${ini.generate (lib.escapeShellArg profile.n) profile.v} > ${path (lib.escapeShellArg profile.n)}
         '') (lib.mapAttrsToList (n: v: { inherit n v; }) cfg.ensureProfiles.profiles)
       + ''
-        if systemctl is-active --quiet NetworkManager; then
-          ${pkgs.networkmanager}/bin/nmcli connection reload
-        fi
+        ${pkgs.networkmanager}/bin/nmcli connection reload
       '';
       serviceConfig = {
         EnvironmentFile = cfg.ensureProfiles.environmentFiles;
diff --git a/nixpkgs/nixos/modules/services/networking/tinyproxy.nix b/nixpkgs/nixos/modules/services/networking/tinyproxy.nix
index 8ff12b52f10c..2b7509e99ca4 100644
--- a/nixpkgs/nixos/modules/services/networking/tinyproxy.nix
+++ b/nixpkgs/nixos/modules/services/networking/tinyproxy.nix
@@ -7,6 +7,7 @@ let
   mkValueStringTinyproxy = with lib; v:
         if true  ==         v then "yes"
         else if false ==    v then "no"
+        else if types.path.check v then ''"${v}"''
         else generators.mkValueStringDefault {} v;
   mkKeyValueTinyproxy = {
     mkValueString ? mkValueStringDefault {}
diff --git a/nixpkgs/nixos/modules/services/networking/unbound.nix b/nixpkgs/nixos/modules/services/networking/unbound.nix
index 8438e472e11e..242fcd500bb0 100644
--- a/nixpkgs/nixos/modules/services/networking/unbound.nix
+++ b/nixpkgs/nixos/modules/services/networking/unbound.nix
@@ -76,12 +76,13 @@ in {
 
       checkconf = mkOption {
         type = types.bool;
-        default = !cfg.settings ? include;
-        defaultText = "!config.services.unbound.settings ? include";
+        default = !cfg.settings ? include && !cfg.settings ? remote-control;
+        defaultText = "!services.unbound.settings ? include && !services.unbound.settings ? remote-control";
         description = lib.mdDoc ''
           Wether to check the resulting config file with unbound checkconf for syntax errors.
 
-          If settings.include is used, then this options is disabled, as the import can likely not be resolved at build time.
+          If settings.include is used, this options is disabled, as the import can likely not be accessed at build time.
+          If settings.remote-control is used, this option is disabled, too as the control-key-file, server-cert-file and server-key-file cannot be accessed at build time.
         '';
       };
 
@@ -229,8 +230,6 @@ in {
       resolvconf = {
         useLocalResolver = mkDefault true;
       };
-
-      networkmanager.dns = "unbound";
     };
 
     environment.etc."unbound/unbound.conf".source = confFile;
diff --git a/nixpkgs/nixos/modules/services/security/esdm.nix b/nixpkgs/nixos/modules/services/security/esdm.nix
index 134b4be1a94c..c34fba1b3c75 100644
--- a/nixpkgs/nixos/modules/services/security/esdm.nix
+++ b/nixpkgs/nixos/modules/services/security/esdm.nix
@@ -4,49 +4,33 @@ let
   cfg = config.services.esdm;
 in
 {
+  imports = [
+    # removed option 'services.esdm.cuseRandomEnable'
+    (lib.mkRemovedOptionModule [ "services" "esdm" "cuseRandomEnable" ] ''
+      Use services.esdm.enableLinuxCompatServices instead.
+    '')
+    # removed option 'services.esdm.cuseUrandomEnable'
+    (lib.mkRemovedOptionModule [ "services" "esdm" "cuseUrandomEnable" ] ''
+      Use services.esdm.enableLinuxCompatServices instead.
+    '')
+    # removed option 'services.esdm.procEnable'
+    (lib.mkRemovedOptionModule [ "services" "esdm" "procEnable" ] ''
+      Use services.esdm.enableLinuxCompatServices instead.
+    '')
+    # removed option 'services.esdm.verbose'
+    (lib.mkRemovedOptionModule [ "services" "esdm" "verbose" ] ''
+      There is no replacement.
+    '')
+  ];
+
   options.services.esdm = {
     enable = lib.mkEnableOption (lib.mdDoc "ESDM service configuration");
     package = lib.mkPackageOption pkgs "esdm" { };
-    serverEnable = lib.mkOption {
-      type = lib.types.bool;
-      default = true;
-      description = lib.mdDoc ''
-        Enable option for ESDM server service. If serverEnable == false, then the esdm-server
-        will not start. Also the subsequent services esdm-cuse-random, esdm-cuse-urandom
-        and esdm-proc will not start as these have the entry Want=esdm-server.service.
-      '';
-    };
-    cuseRandomEnable = lib.mkOption {
-      type = lib.types.bool;
-      default = true;
-      description = lib.mdDoc ''
-        Enable option for ESDM cuse-random service. Determines if the esdm-cuse-random.service
-        is started.
-      '';
-    };
-    cuseUrandomEnable = lib.mkOption {
-      type = lib.types.bool;
-      default = true;
-      description = lib.mdDoc ''
-        Enable option for ESDM cuse-urandom service. Determines if the esdm-cuse-urandom.service
-        is started.
-      '';
-    };
-    procEnable = lib.mkOption {
+    enableLinuxCompatServices = lib.mkOption {
       type = lib.types.bool;
       default = true;
       description = lib.mdDoc ''
-        Enable option for ESDM proc service. Determines if the esdm-proc.service
-        is started.
-      '';
-    };
-    verbose = lib.mkOption {
-      type = lib.types.bool;
-      default = false;
-      description = lib.mdDoc ''
-        Enable verbose ExecStart for ESDM. If verbose == true, then the corresponding "ExecStart"
-        values of the 4 aforementioned services are overwritten with the option
-        for the highest verbosity.
+        Enable /dev/random, /dev/urandom and /proc/sys/kernel/random/* userspace wrapper.
       '';
     };
   };
@@ -55,46 +39,13 @@ in
     lib.mkMerge [
       ({
         systemd.packages = [ cfg.package ];
-      })
-      # It is necessary to set those options for these services to be started by systemd in NixOS
-      (lib.mkIf cfg.serverEnable {
         systemd.services."esdm-server".wantedBy = [ "basic.target" ];
-        systemd.services."esdm-server".serviceConfig = lib.mkIf cfg.verbose {
-          ExecStart = [
-            " " # unset previous value defined in 'esdm-server.service'
-            "${cfg.package}/bin/esdm-server -f -vvvvvv"
-          ];
-        };
-      })
-
-      (lib.mkIf cfg.cuseRandomEnable {
-        systemd.services."esdm-cuse-random".wantedBy = [ "basic.target" ];
-        systemd.services."esdm-cuse-random".serviceConfig = lib.mkIf cfg.verbose {
-          ExecStart = [
-            " " # unset previous value defined in 'esdm-cuse-random.service'
-            "${cfg.package}/bin/esdm-cuse-random -f -v 6"
-          ];
-        };
       })
-
-      (lib.mkIf cfg.cuseUrandomEnable {
-        systemd.services."esdm-cuse-urandom".wantedBy = [ "basic.target" ];
-        systemd.services."esdm-cuse-urandom".serviceConfig = lib.mkIf cfg.verbose {
-          ExecStart = [
-            " " # unset previous value defined in 'esdm-cuse-urandom.service'
-            "${config.services.esdm.package}/bin/esdm-cuse-urandom -f -v 6"
-          ];
-        };
-      })
-
-      (lib.mkIf cfg.procEnable {
-        systemd.services."esdm-proc".wantedBy = [ "basic.target" ];
-        systemd.services."esdm-proc".serviceConfig = lib.mkIf cfg.verbose {
-          ExecStart = [
-            " " # unset previous value defined in 'esdm-proc.service'
-            "${cfg.package}/bin/esdm-proc --relabel -f -o allow_other /proc/sys/kernel/random -v 6"
-          ];
-        };
+      # It is necessary to set those options for these services to be started by systemd in NixOS
+      (lib.mkIf cfg.enableLinuxCompatServices {
+        systemd.targets."esdm-linux-compat".wantedBy = [ "basic.target" ];
+        systemd.services."esdm-server-suspend".wantedBy = [ "sleep.target" "suspend.target" "hibernate.target" ];
+        systemd.services."esdm-server-resume".wantedBy = [ "sleep.target" "suspend.target" "hibernate.target" ];
       })
     ]);
 
diff --git a/nixpkgs/nixos/modules/services/security/yubikey-agent.nix b/nixpkgs/nixos/modules/services/security/yubikey-agent.nix
index a9f15e4405f2..3d5f84af2cf4 100644
--- a/nixpkgs/nixos/modules/services/security/yubikey-agent.nix
+++ b/nixpkgs/nixos/modules/services/security/yubikey-agent.nix
@@ -6,9 +6,6 @@ with lib;
 
 let
   cfg = config.services.yubikey-agent;
-
-  # reuse the pinentryFlavor option from the gnupg module
-  pinentryFlavor = config.programs.gnupg.agent.pinentryFlavor;
 in
 {
   ###### interface
@@ -40,14 +37,9 @@ in
 
     # This overrides the systemd user unit shipped with the
     # yubikey-agent package
-    systemd.user.services.yubikey-agent = mkIf (pinentryFlavor != null) {
-      path = [ pkgs.pinentry.${pinentryFlavor} ];
-      wantedBy = [
-        (if pinentryFlavor == "tty" || pinentryFlavor == "curses" then
-          "default.target"
-        else
-          "graphical-session.target")
-      ];
+    systemd.user.services.yubikey-agent = mkIf (config.programs.gnupg.agent.pinentryPackage != null) {
+      path = [ config.programs.gnupg.agent.pinentryPackage ];
+      wantedBy = [ "default.target" ];
     };
 
     # Yubikey-agent expects pcsd to be running in order to function.
diff --git a/nixpkgs/nixos/modules/services/web-apps/engelsystem.nix b/nixpkgs/nixos/modules/services/web-apps/engelsystem.nix
index 669620debce5..ae7b2b9e7d0c 100644
--- a/nixpkgs/nixos/modules/services/web-apps/engelsystem.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/engelsystem.nix
@@ -99,7 +99,6 @@ in {
       '';
 
     services.phpfpm.pools.engelsystem = {
-      phpPackage = pkgs.php81;
       user = "engelsystem";
       settings = {
         "listen.owner" = config.services.nginx.user;
diff --git a/nixpkgs/nixos/modules/services/web-apps/gotosocial.nix b/nixpkgs/nixos/modules/services/web-apps/gotosocial.nix
index 45464f646da8..657509c11005 100644
--- a/nixpkgs/nixos/modules/services/web-apps/gotosocial.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/gotosocial.nix
@@ -27,7 +27,7 @@ let
 in
 {
   meta.doc = ./gotosocial.md;
-  meta.maintainers = with lib.maintainers; [ misuzu ];
+  meta.maintainers = with lib.maintainers; [ misuzu blakesmith ];
 
   options.services.gotosocial = {
     enable = lib.mkEnableOption (lib.mdDoc "ActivityPub social network server");
diff --git a/nixpkgs/nixos/modules/services/web-apps/hedgedoc.nix b/nixpkgs/nixos/modules/services/web-apps/hedgedoc.nix
index adcfe80a7332..8b17c6cbc3be 100644
--- a/nixpkgs/nixos/modules/services/web-apps/hedgedoc.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/hedgedoc.nix
@@ -236,9 +236,9 @@ in
     };
 
     services.hedgedoc.settings = {
-      defaultNotePath = lib.mkDefault "${cfg.package}/public/default.md";
-      docsPath = lib.mkDefault "${cfg.package}/public/docs";
-      viewPath = lib.mkDefault "${cfg.package}/public/views";
+      defaultNotePath = lib.mkDefault "${cfg.package}/share/hedgedoc/public/default.md";
+      docsPath = lib.mkDefault "${cfg.package}/share/hedgedoc/public/docs";
+      viewPath = lib.mkDefault "${cfg.package}/share/hedgedoc/public/views";
     };
 
     systemd.services.hedgedoc = {
@@ -263,7 +263,7 @@ in
         Group = name;
 
         Restart = "always";
-        ExecStart = "${cfg.package}/bin/hedgedoc";
+        ExecStart = lib.getExe cfg.package;
         RuntimeDirectory = [ name ];
         StateDirectory = [ name ];
         WorkingDirectory = "/run/${name}";
diff --git a/nixpkgs/nixos/modules/services/web-apps/komga.nix b/nixpkgs/nixos/modules/services/web-apps/komga.nix
index 31f475fc7b04..d7ab2a9e612e 100644
--- a/nixpkgs/nixos/modules/services/web-apps/komga.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/komga.nix
@@ -1,99 +1,122 @@
-{ config, pkgs, lib, ... }:
-
-with lib;
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
 
 let
   cfg = config.services.komga;
-
-in {
+  inherit (lib) mkOption mkEnableOption maintainers;
+  inherit (lib.types) port str bool;
+in
+{
   options = {
     services.komga = {
-      enable = mkEnableOption (lib.mdDoc "Komga, a free and open source comics/mangas media server");
+      enable = mkEnableOption "Komga, a free and open source comics/mangas media server";
 
       port = mkOption {
-        type = types.port;
+        type = port;
         default = 8080;
-        description = lib.mdDoc ''
-          The port that Komga will listen on.
-        '';
+        description = "The port that Komga will listen on.";
       };
 
       user = mkOption {
-        type = types.str;
+        type = str;
         default = "komga";
-        description = lib.mdDoc ''
-          User account under which Komga runs.
-        '';
+        description = "User account under which Komga runs.";
       };
 
       group = mkOption {
-        type = types.str;
+        type = str;
         default = "komga";
-        description = lib.mdDoc ''
-          Group under which Komga runs.
-        '';
+        description = "Group under which Komga runs.";
       };
 
       stateDir = mkOption {
-        type = types.str;
+        type = str;
         default = "/var/lib/komga";
-        description = lib.mdDoc ''
-          State and configuration directory Komga will use.
-        '';
+        description = "State and configuration directory Komga will use.";
       };
 
       openFirewall = mkOption {
-        type = types.bool;
+        type = bool;
         default = false;
-        description = lib.mdDoc ''
-          Whether to open the firewall for the port in {option}`services.komga.port`.
-        '';
+        description = "Whether to open the firewall for the port in {option}`services.komga.port`.";
       };
     };
   };
 
-  config = mkIf cfg.enable {
-
-    networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
+  config =
+    let
+      inherit (lib) mkIf getExe;
+    in
+    mkIf cfg.enable {
 
-    users.groups = mkIf (cfg.group == "komga") {
-      komga = {};
-    };
+      networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
 
-    users.users = mkIf (cfg.user == "komga") {
-      komga = {
-        group = cfg.group;
-        home = cfg.stateDir;
-        description = "Komga Daemon user";
-        isSystemUser = true;
-      };
-    };
+      users.groups = mkIf (cfg.group == "komga") { komga = { }; };
 
-    systemd.services.komga = {
-      environment = {
-        SERVER_PORT = builtins.toString cfg.port;
-        KOMGA_CONFIGDIR = cfg.stateDir;
+      users.users = mkIf (cfg.user == "komga") {
+        komga = {
+          group = cfg.group;
+          home = cfg.stateDir;
+          description = "Komga Daemon user";
+          isSystemUser = true;
+        };
       };
 
-      description = "Komga is a free and open source comics/mangas media server";
-
-      wantedBy = [ "multi-user.target" ];
-      wants = [ "network-online.target" ];
-      after = [ "network-online.target" ];
-
-      serviceConfig = {
-        User = cfg.user;
-        Group = cfg.group;
-
-        Type = "simple";
-        Restart = "on-failure";
-        ExecStart = "${pkgs.komga}/bin/komga";
-
-        StateDirectory = mkIf (cfg.stateDir == "/var/lib/komga") "komga";
+      systemd.services.komga = {
+        environment = {
+          SERVER_PORT = builtins.toString cfg.port;
+          KOMGA_CONFIGDIR = cfg.stateDir;
+        };
+
+        description = "Komga is a free and open source comics/mangas media server";
+
+        wantedBy = [ "multi-user.target" ];
+        wants = [ "network-online.target" ];
+        after = [ "network-online.target" ];
+
+        serviceConfig = {
+          User = cfg.user;
+          Group = cfg.group;
+
+          Type = "simple";
+          Restart = "on-failure";
+          ExecStart = getExe pkgs.komga;
+
+          StateDirectory = mkIf (cfg.stateDir == "/var/lib/komga") "komga";
+
+          RemoveIPC = true;
+          NoNewPrivileges = true;
+          CapabilityBoundingSet = "";
+          SystemCallFilter = [ "@system-service" ];
+          ProtectSystem = "full";
+          PrivateTmp = true;
+          ProtectProc = "invisible";
+          ProtectClock = true;
+          ProcSubset = "pid";
+          PrivateUsers = true;
+          PrivateDevices = true;
+          ProtectHostname = true;
+          ProtectKernelTunables = true;
+          RestrictAddressFamilies = [
+            "AF_INET"
+            "AF_INET6"
+            "AF_NETLINK"
+          ];
+          LockPersonality = true;
+          RestrictNamespaces = true;
+          ProtectKernelLogs = true;
+          ProtectControlGroups = true;
+          ProtectKernelModules = true;
+          SystemCallArchitectures = "native";
+          RestrictSUIDSGID = true;
+          RestrictRealtime = true;
+        };
       };
-
     };
-  };
 
   meta.maintainers = with maintainers; [ govanify ];
 }
diff --git a/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix b/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
index 5cda4a00a9de..7f998207c434 100644
--- a/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
@@ -14,7 +14,6 @@ let
     expose_php = "Off";
     error_reporting = "E_ALL & ~E_DEPRECATED & ~E_STRICT";
     display_errors = "stderr";
-    "opcache.enable_cli" = "1";
     "opcache.interned_strings_buffer" = "8";
     "opcache.max_accelerated_files" = "10000";
     "opcache.memory_consumption" = "128";
diff --git a/nixpkgs/nixos/modules/services/web-apps/pretix.nix b/nixpkgs/nixos/modules/services/web-apps/pretix.nix
new file mode 100644
index 000000000000..2355f8c450a1
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-apps/pretix.nix
@@ -0,0 +1,581 @@
+{ config
+, lib
+, pkgs
+, utils
+, ...
+}:
+
+let
+  inherit (lib)
+    concatMapStringsSep
+    escapeShellArgs
+    filter
+    filterAttrs
+    getExe
+    getExe'
+    isAttrs
+    isList
+    literalExpression
+    mapAttrs
+    mkDefault
+    mkEnableOption
+    mkIf
+    mkOption
+    mkPackageOption
+    optionals
+    optionalString
+    recursiveUpdate
+    types
+  ;
+
+  filterRecursiveNull = o:
+    if isAttrs o then
+      mapAttrs (_: v: filterRecursiveNull v) (filterAttrs (_: v: v != null) o)
+    else if isList o then
+      map filterRecursiveNull (filter (v: v != null) o)
+    else
+      o;
+
+  cfg = config.services.pretix;
+  format = pkgs.formats.ini { };
+
+  configFile = format.generate "pretix.cfg" (filterRecursiveNull cfg.settings);
+
+  finalPackage = cfg.package.override {
+    inherit (cfg) plugins;
+  };
+
+  pythonEnv = cfg.package.python.buildEnv.override {
+    extraLibs = with cfg.package.python.pkgs; [
+      (toPythonModule finalPackage)
+      gunicorn
+    ]
+    ++ lib.optionals (cfg.settings.memcached.location != null)
+      cfg.package.optional-dependencies.memcached
+    ;
+  };
+
+  withRedis = cfg.settings.redis.location != null;
+in
+{
+  meta = with lib; {
+    maintainers = with maintainers; [ hexa ];
+  };
+
+  options.services.pretix = {
+    enable = mkEnableOption "pretix";
+
+    package = mkPackageOption pkgs "pretix" { };
+
+    group = mkOption {
+      type = types.str;
+      default = "pretix";
+      description = ''
+        Group under which pretix should run.
+      '';
+    };
+
+    user = mkOption {
+      type = types.str;
+      default = "pretix";
+      description = ''
+        User under which pretix should run.
+      '';
+    };
+
+    environmentFile = mkOption {
+      type = types.nullOr types.path;
+      default = null;
+      example = "/run/keys/pretix-secrets.env";
+      description = ''
+        Environment file to pass secret configuration values.
+
+        Each line must follow the `PRETIX_SECTION_KEY=value` pattern.
+      '';
+    };
+
+    plugins = mkOption {
+      type = types.listOf types.package;
+      default = [];
+      example = literalExpression ''
+        with config.services.pretix.package.plugins; [
+          passbook
+          pages
+        ];
+      '';
+      description = ''
+        Pretix plugins to install into the Python environment.
+      '';
+    };
+
+    gunicorn.extraArgs = mkOption {
+      type = with types; listOf str;
+      default = [
+        "--name=pretix"
+      ];
+      example = [
+        "--name=pretix"
+        "--workers=4"
+        "--max-requests=1200"
+        "--max-requests-jitter=50"
+        "--log-level=info"
+      ];
+      description = ''
+        Extra arguments to pass to gunicorn.
+        See <https://docs.pretix.eu/en/latest/admin/installation/manual_smallscale.html#start-pretix-as-a-service> for details.
+      '';
+      apply = escapeShellArgs;
+    };
+
+    celery = {
+      extraArgs = mkOption {
+        type = with types; listOf str;
+        default = [ ];
+        description = ''
+          Extra arguments to pass to celery.
+
+          See <https://docs.celeryq.dev/en/stable/reference/cli.html#celery-worker> for more info.
+        '';
+        apply = utils.escapeSystemdExecArgs;
+      };
+    };
+
+    nginx = {
+      enable = mkOption {
+        type = types.bool;
+        default = true;
+        example = false;
+        description = ''
+          Whether to set up an nginx virtual host.
+        '';
+      };
+
+      domain = mkOption {
+        type = types.str;
+        example = "talks.example.com";
+        description = ''
+          The domain name under which to set up the virtual host.
+        '';
+      };
+    };
+
+    database.createLocally = mkOption {
+      type = types.bool;
+      default = true;
+      example = false;
+      description = ''
+        Whether to automatically set up the database on the local DBMS instance.
+
+        Only supported for PostgreSQL. Not required for sqlite.
+      '';
+    };
+
+    settings = mkOption {
+      type = types.submodule {
+        freeformType = format.type;
+        options = {
+          pretix = {
+            instance_name = mkOption {
+              type = types.str;
+              example = "tickets.example.com";
+              description = ''
+                The name of this installation.
+              '';
+            };
+
+            url = mkOption {
+              type = types.str;
+              example = "https://tickets.example.com";
+              description = ''
+                The installation’s full URL, without a trailing slash.
+              '';
+            };
+
+            cachedir = mkOption {
+              type = types.path;
+              default = "/var/cache/pretix";
+              description = ''
+                Directory for storing temporary files.
+              '';
+            };
+
+            datadir = mkOption {
+              type = types.path;
+              default = "/var/lib/pretix";
+              description = ''
+                Directory for storing user uploads and similar data.
+              '';
+            };
+
+            logdir = mkOption {
+              type = types.path;
+              default = "/var/log/pretix";
+              description = ''
+                Directory for storing log files.
+              '';
+            };
+
+            currency = mkOption {
+              type = types.str;
+              default = "EUR";
+              example = "USD";
+              description = ''
+                Default currency for events in its ISO 4217 three-letter code.
+              '';
+            };
+
+            registration = mkOption {
+              type = types.bool;
+              default = false;
+              example = true;
+              description = ''
+                Whether to allow registration of new admin users.
+              '';
+            };
+          };
+
+          database = {
+            backend = mkOption {
+              type = types.enum [
+                "sqlite3"
+                "postgresql"
+              ];
+              default = "postgresql";
+              description = ''
+                Database backend to use.
+
+                Only postgresql is recommended for production setups.
+              '';
+            };
+
+            host = mkOption {
+              type = with types; nullOr types.path;
+              default = if cfg.settings.database.backend == "postgresql" then "/run/postgresql" else null;
+              defaultText = literalExpression ''
+                if config.services.pretix.settings..database.backend == "postgresql" then "/run/postgresql"
+                else null
+              '';
+              description = ''
+                Database host or socket path.
+              '';
+            };
+
+            name = mkOption {
+              type = types.str;
+              default = "pretix";
+              description = ''
+                Database name.
+              '';
+            };
+
+            user = mkOption {
+              type = types.str;
+              default = "pretix";
+              description = ''
+                Database username.
+              '';
+            };
+          };
+
+          mail = {
+            from = mkOption {
+              type = types.str;
+              example = "tickets@example.com";
+              description = ''
+                E-Mail address used in the `FROM` header of outgoing mails.
+              '';
+            };
+
+            host = mkOption {
+              type = types.str;
+              default = "localhost";
+              example = "mail.example.com";
+              description = ''
+                Hostname of the SMTP server use for mail delivery.
+              '';
+            };
+
+            port = mkOption {
+              type = types.port;
+              default = 25;
+              example = 587;
+              description = ''
+                Port of the SMTP server to use for mail delivery.
+              '';
+            };
+          };
+
+          celery = {
+            backend = mkOption {
+              type = types.str;
+              default = "redis+socket://${config.services.redis.servers.pretix.unixSocket}?virtual_host=1";
+              defaultText = literalExpression ''
+                optionalString config.services.pretix.celery.enable "redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=1"
+              '';
+              description = ''
+                URI to the celery backend used for the asynchronous job queue.
+              '';
+            };
+
+            broker = mkOption {
+              type = types.str;
+              default = "redis+socket://${config.services.redis.servers.pretix.unixSocket}?virtual_host=2";
+              defaultText = literalExpression ''
+                optionalString config.services.pretix.celery.enable "redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=2"
+              '';
+              description = ''
+                URI to the celery broker used for the asynchronous job queue.
+              '';
+            };
+          };
+
+          redis = {
+            location = mkOption {
+              type = with types; nullOr str;
+              default = "unix://${config.services.redis.servers.pretix.unixSocket}?db=0";
+              defaultText = literalExpression ''
+                "unix://''${config.services.redis.servers.pretix.unixSocket}?db=0"
+              '';
+              description = ''
+                URI to the redis server, used to speed up locking, caching and session storage.
+              '';
+            };
+
+            sessions = mkOption {
+              type = types.bool;
+              default = true;
+              example = false;
+              description = ''
+                Whether to use redis as the session storage.
+              '';
+            };
+          };
+
+          memcached = {
+            location = mkOption {
+              type = with types; nullOr str;
+              default = null;
+              example = "127.0.0.1:11211";
+              description = ''
+                The `host:port` combination or the path to the UNIX socket of a memcached instance.
+
+                Can be used instead of Redis for caching.
+              '';
+            };
+          };
+
+          tools = {
+            pdftk = mkOption {
+              type = types.path;
+              default = getExe pkgs.pdftk;
+              defaultText = literalExpression ''
+                lib.getExe pkgs.pdftk
+              '';
+              description = ''
+                Path to the pdftk executable.
+              '';
+            };
+          };
+        };
+      };
+      default = { };
+      description = ''
+        pretix configuration as a Nix attribute set. All settings can also be passed
+        from the environment.
+
+        See <https://docs.pretix.eu/en/latest/admin/config.html> for possible options.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    # https://docs.pretix.eu/en/latest/admin/installation/index.html
+
+    environment.systemPackages = [
+      (pkgs.writeScriptBin "pretix-manage" ''
+        cd ${cfg.settings.pretix.datadir}
+        sudo=exec
+        if [[ "$USER" != ${cfg.user} ]]; then
+          sudo='exec /run/wrappers/bin/sudo -u ${cfg.user} ${optionalString withRedis "-g redis-pretix"} --preserve-env=PRETIX_CONFIG_FILE'
+        fi
+        export PRETIX_CONFIG_FILE=${configFile}
+        $sudo ${getExe' pythonEnv "pretix-manage"} "$@"
+      '')
+    ];
+
+    services = {
+      nginx = mkIf cfg.nginx.enable {
+        enable = true;
+        recommendedGzipSettings = mkDefault true;
+        recommendedOptimisation = mkDefault true;
+        recommendedProxySettings = mkDefault true;
+        recommendedTlsSettings = mkDefault true;
+        upstreams.pretix.servers."unix:/run/pretix/pretix.sock" = { };
+        virtualHosts.${cfg.nginx.domain} = {
+          # https://docs.pretix.eu/en/latest/admin/installation/manual_smallscale.html#ssl
+          extraConfig = ''
+            more_set_headers Referrer-Policy same-origin;
+            more_set_headers X-Content-Type-Options nosniff;
+          '';
+          locations = {
+            "/".proxyPass = "http://pretix";
+            "/media/" = {
+              alias = "${cfg.settings.pretix.datadir}/media/";
+              extraConfig = ''
+                access_log off;
+                expires 7d;
+              '';
+            };
+            "^~ /media/(cachedfiles|invoices)" = {
+              extraConfig = ''
+                deny all;
+                return 404;
+              '';
+            };
+            "/static/" = {
+              alias = "${finalPackage}/${cfg.package.python.sitePackages}/pretix/static.dist/";
+              extraConfig = ''
+                access_log off;
+                more_set_headers Cache-Control "public";
+                expires 365d;
+              '';
+            };
+          };
+        };
+      };
+
+      postgresql = mkIf (cfg.database.createLocally && cfg.settings.database.backend == "postgresql") {
+        enable = true;
+        ensureUsers = [ {
+          name = cfg.settings.database.user;
+          ensureDBOwnership = true;
+        } ];
+        ensureDatabases = [ cfg.settings.database.name ];
+      };
+
+      redis.servers.pretix.enable = withRedis;
+    };
+
+    systemd.services = let
+      commonUnitConfig = {
+        environment.PRETIX_CONFIG_FILE = configFile;
+        serviceConfig = {
+          User = "pretix";
+          Group = "pretix";
+          EnvironmentFile = optionals (cfg.environmentFile != null) [
+            cfg.environmentFile
+          ];
+          StateDirectory = [
+            "pretix"
+          ];
+          StateDirectoryMode = "0755";
+          CacheDirectory = "pretix";
+          LogsDirectory = "pretix";
+          WorkingDirectory = cfg.settings.pretix.datadir;
+          SupplementaryGroups = optionals withRedis [
+            "redis-pretix"
+          ];
+          AmbientCapabilities = "";
+          CapabilityBoundingSet = [ "" ];
+          DevicePolicy = "closed";
+          LockPersonality = true;
+          MemoryDenyWriteExecute = false; # required by pdftk
+          NoNewPrivileges = true;
+          PrivateDevices = true;
+          PrivateTmp = true;
+          ProcSubset = "pid";
+          ProtectControlGroups = true;
+          ProtectHome = true;
+          ProtectHostname = true;
+          ProtectKernelLogs = true;
+          ProtectKernelModules = true;
+          ProtectKernelTunables = true;
+          ProtectProc = "invisible";
+          ProtectSystem = "strict";
+          RemoveIPC = true;
+          RestrictAddressFamilies = [
+            "AF_INET"
+            "AF_INET6"
+            "AF_UNIX"
+          ];
+          RestrictNamespaces = true;
+          RestrictRealtime = true;
+          RestrictSUIDSGID = true;
+          SystemCallArchitectures = "native";
+          SystemCallFilter = [
+            "@system-service"
+            "~@privileged"
+            "@chown"
+          ];
+          UMask = "0022";
+        };
+      };
+    in {
+      pretix-web = recursiveUpdate commonUnitConfig {
+        description = "pretix web service";
+        after = [
+          "network.target"
+          "redis-pretix.service"
+          "postgresql.service"
+        ];
+        wantedBy = [ "multi-user.target" ];
+        preStart = ''
+          versionFile="${cfg.settings.pretix.datadir}/.version"
+          version=$(cat "$versionFile" 2>/dev/null || echo 0)
+
+          pluginsFile="${cfg.settings.pretix.datadir}/.plugins"
+          plugins=$(cat "$pluginsFile" 2>/dev/null || echo "")
+          configuredPlugins="${concatMapStringsSep "|" (package: package.name) cfg.plugins}"
+
+          if [[ $version != ${cfg.package.version} || $plugins != $configuredPlugins ]]; then
+            ${getExe' pythonEnv "pretix-manage"} migrate
+
+            echo "${cfg.package.version}" > "$versionFile"
+            echo "$configuredPlugins" > "$pluginsFile"
+          fi
+        '';
+        serviceConfig = {
+          TimeoutStartSec = "5min";
+          ExecStart = "${getExe' pythonEnv "gunicorn"} --bind unix:/run/pretix/pretix.sock ${cfg.gunicorn.extraArgs} pretix.wsgi";
+          RuntimeDirectory = "pretix";
+        };
+      };
+
+      pretix-periodic = recursiveUpdate commonUnitConfig {
+        description = "pretix periodic task runner";
+        # every 15 minutes
+        startAt = [ "*:3,18,33,48" ];
+        serviceConfig = {
+          Type = "oneshot";
+          ExecStart = "${getExe' pythonEnv "pretix-manage"} runperiodic";
+        };
+      };
+
+      pretix-worker = recursiveUpdate commonUnitConfig {
+        description = "pretix asynchronous job runner";
+        after = [
+          "network.target"
+          "redis-pretix.service"
+          "postgresql.service"
+        ];
+        wantedBy = [ "multi-user.target" ];
+        serviceConfig.ExecStart = "${getExe' pythonEnv "celery"} -A pretix.celery_app worker ${cfg.celery.extraArgs}";
+      };
+    };
+
+    systemd.sockets.pretix-web.socketConfig = {
+      ListenStream = "/run/pretix/pretix.sock";
+      SocketUser = "nginx";
+    };
+
+    users = {
+      groups."${cfg.group}" = {};
+      users."${cfg.user}" = {
+        isSystemUser = true;
+        createHome = true;
+        home = cfg.settings.pretix.datadir;
+        inherit (cfg) group;
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/web-apps/suwayomi-server.md b/nixpkgs/nixos/modules/services/web-apps/suwayomi-server.md
index ff1e06c8a53a..18e7a631443f 100644
--- a/nixpkgs/nixos/modules/services/web-apps/suwayomi-server.md
+++ b/nixpkgs/nixos/modules/services/web-apps/suwayomi-server.md
@@ -101,6 +101,9 @@ Not all the configuration options are available directly in this module, but you
         port = 4567;
         autoDownloadNewChapters = false;
         maxSourcesInParallel" = 6;
+        extensionRepos = [
+          "https://raw.githubusercontent.com/MY_ACCOUNT/MY_REPO/repo/index.min.json"
+        ];
       };
     };
   };
diff --git a/nixpkgs/nixos/modules/services/web-apps/suwayomi-server.nix b/nixpkgs/nixos/modules/services/web-apps/suwayomi-server.nix
index 94dbe6f99356..99c6ea2a36e6 100644
--- a/nixpkgs/nixos/modules/services/web-apps/suwayomi-server.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/suwayomi-server.nix
@@ -102,6 +102,17 @@ in
                 '';
               };
 
+              extensionRepos = mkOption {
+                type = types.listOf types.str;
+                default = [];
+                example = [
+                  "https://raw.githubusercontent.com/MY_ACCOUNT/MY_REPO/repo/index.min.json"
+                ];
+                description = mdDoc ''
+                  URL of repositories from which the extensions can be installed.
+                '';
+              };
+
               localSourcePath = mkOption {
                 type = types.path;
                 default = cfg.dataDir;
diff --git a/nixpkgs/nixos/modules/services/web-servers/garage.nix b/nixpkgs/nixos/modules/services/web-servers/garage.nix
index 48dd5b34757c..616be978b6e5 100644
--- a/nixpkgs/nixos/modules/services/web-servers/garage.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/garage.nix
@@ -75,7 +75,19 @@ in
       source = configFile;
     };
 
-    environment.systemPackages = [ cfg.package ]; # For administration
+    # For administration
+    environment.systemPackages = [
+      (pkgs.writeScriptBin "garage" ''
+        # make it so all future variables set are automatically exported as environment variables
+        set -a
+
+        # source the set environmentFile (since systemd EnvironmentFile is supposed to be a minor subset of posix sh parsing) (with shell arg escaping to avoid quoting issues)
+        [ -f ${lib.escapeShellArg cfg.environmentFile} ] && . ${lib.escapeShellArg cfg.environmentFile}
+
+        # exec the program with quoted args (also with shell arg escaping for the program path to avoid quoting issues there)
+        exec ${lib.escapeShellArg (lib.getExe cfg.package)} "$@"
+      '')
+    ];
 
     systemd.services.garage = {
       description = "Garage Object Storage (S3 compatible)";
diff --git a/nixpkgs/nixos/modules/services/web-servers/stargazer.nix b/nixpkgs/nixos/modules/services/web-servers/stargazer.nix
index 18f57363137c..4eca33326040 100644
--- a/nixpkgs/nixos/modules/services/web-servers/stargazer.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/stargazer.nix
@@ -129,6 +129,12 @@ in
       example = lib.literalExpression "\"1y\"";
     };
 
+    debugMode = lib.mkOption {
+      type = lib.types.bool;
+      default = false;
+      description = lib.mdDoc "Run Stargazer in debug mode.";
+    };
+
     routes = lib.mkOption {
       type = lib.types.listOf
         (lib.types.submodule {
@@ -195,7 +201,7 @@ in
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
       serviceConfig = {
-        ExecStart = "${pkgs.stargazer}/bin/stargazer ${configFile}";
+        ExecStart = "${pkgs.stargazer}/bin/stargazer ${configFile} ${lib.optionalString cfg.debugMode "-D"}";
         Restart = "always";
         # User and group
         User = cfg.user;
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/budgie.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/budgie.nix
index fe39097a22e8..466ef5c565b7 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/budgie.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/budgie.nix
@@ -44,6 +44,8 @@ let
     enableSshSocket = config.services.openssh.startWhenNeeded;
   };
 in {
+  meta.maintainers = lib.teams.budgie.members;
+
   options = {
     services.xserver.desktopManager.budgie = {
       enable = mkEnableOption (mdDoc "the Budgie desktop");
@@ -144,7 +146,6 @@ in {
           mate.atril
           mate.engrampa
           mate.mate-calc
-          mate.mate-terminal
           mate.mate-system-monitor
           vlc
 
@@ -158,8 +159,11 @@ in {
         ] config.environment.budgie.excludePackages)
       ++ cfg.sessionPath;
 
+    # Both budgie-desktop-view and nemo defaults to this emulator.
+    programs.gnome-terminal.enable = mkDefault true;
+
     # Fonts.
-    fonts.packages = mkDefault [
+    fonts.packages = [
       pkgs.noto-fonts
       pkgs.hack-font
     ];
@@ -212,7 +216,6 @@ in {
     services.colord.enable = mkDefault true; # for BCC's Color panel.
     services.gnome.at-spi2-core.enable = mkDefault true; # for BCC's A11y panel.
     services.accounts-daemon.enable = mkDefault true; # for BCC's Users panel.
-    services.fprintd.enable = mkDefault true; # for BCC's Users panel.
     services.udisks2.enable = mkDefault true; # for BCC's Details panel.
 
     # For BCC's Online Accounts panel.
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/deepin.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/deepin.nix
index 0824d6e30a8a..902e3a9317dd 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/deepin.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/deepin.nix
@@ -66,6 +66,7 @@ in
       services.upower.enable = mkDefault config.powerManagement.enable;
       networking.networkmanager.enable = mkDefault true;
       programs.dconf.enable = mkDefault true;
+      programs.gnupg.agent.pinentryPackage = mkDefault pkgs.pinentry-qt;
 
       fonts.packages = with pkgs; [ noto-fonts ];
       xdg.mime.enable = true;
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix
index ecb8d1e91bde..33d0a7b52643 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix
@@ -18,7 +18,7 @@ in
   # determines the default: later modules (if enabled) are preferred.
   # E.g., if Plasma 5 is enabled, it supersedes xterm.
   imports = [
-    ./none.nix ./xterm.nix ./phosh.nix ./xfce.nix ./plasma5.nix ./plasma6.nix ./lumina.nix
+    ./none.nix ./xterm.nix ./phosh.nix ./xfce.nix ./plasma5.nix ../../desktop-managers/plasma6.nix ./lumina.nix
     ./lxqt.nix ./enlightenment.nix ./gnome.nix ./retroarch.nix ./kodi.nix
     ./mate.nix ./pantheon.nix ./surf-display.nix ./cde.nix
     ./cinnamon.nix ./budgie.nix ./deepin.nix
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/lxqt.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/lxqt.nix
index 50ad72dc7388..3d02deba6fc7 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/lxqt.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/lxqt.nix
@@ -62,6 +62,8 @@ in
     # Link some extra directories in /run/current-system/software/share
     environment.pathsToLink = [ "/share" ];
 
+    programs.gnupg.agent.pinentryPackage = mkDefault pkgs.pinentry-qt;
+
     # virtual file systems support for PCManFM-QT
     services.gvfs.enable = true;
 
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/mate.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/mate.nix
index f535a1d298b9..957eac7848e7 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/mate.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/mate.nix
@@ -20,6 +20,22 @@ in
       };
 
       debug = mkEnableOption (lib.mdDoc "mate-session debug messages");
+
+      extraPanelApplets = mkOption {
+        default = [ ];
+        example = literalExpression "with pkgs.mate; [ mate-applets ]";
+        type = types.listOf types.package;
+        description = lib.mdDoc "Extra applets to add to mate-panel.";
+      };
+
+      extraCajaExtensions = mkOption {
+        default = [ ];
+        example = lib.literalExpression "with pkgs.mate; [ caja-extensions ]";
+        type = types.listOf types.package;
+        description = lib.mdDoc "Extra extensions to add to caja.";
+      };
+
+      enableWaylandSession = mkEnableOption (lib.mdDoc "MATE Wayland session");
     };
 
     environment.mate.excludePackages = mkOption {
@@ -31,55 +47,63 @@ in
 
   };
 
-  config = mkIf cfg.enable {
-
-    services.xserver.displayManager.sessionPackages = [
-      pkgs.mate.mate-session-manager
-    ];
-
-    # Let caja find extensions
-    environment.sessionVariables.CAJA_EXTENSION_DIRS = [ "${config.system.path}/lib/caja/extensions-2.0" ];
-
-    # Let mate-panel find applets
-    environment.sessionVariables."MATE_PANEL_APPLETS_DIR" = "${config.system.path}/share/mate-panel/applets";
-    environment.sessionVariables."MATE_PANEL_EXTRA_MODULES" = "${config.system.path}/lib/mate-panel/applets";
-
-    # Debugging
-    environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1";
-
-    environment.systemPackages = utils.removePackagesByName
-      (pkgs.mate.basePackages ++
-      pkgs.mate.extraPackages ++
-      [
-        pkgs.desktop-file-utils
-        pkgs.glib
-        pkgs.gtk3.out
-        pkgs.shared-mime-info
-        pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
-        pkgs.yelp # for 'Contents' in 'Help' menus
-      ])
-      config.environment.mate.excludePackages;
-
-    programs.dconf.enable = true;
-    # Shell integration for VTE terminals
-    programs.bash.vteIntegration = mkDefault true;
-    programs.zsh.vteIntegration = mkDefault true;
-
-    # Mate uses this for printing
-    programs.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
-
-    services.gnome.at-spi2-core.enable = true;
-    services.gnome.gnome-keyring.enable = true;
-    services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
-    services.gvfs.enable = true;
-    services.upower.enable = config.powerManagement.enable;
-    services.xserver.libinput.enable = mkDefault true;
-
-    security.pam.services.mate-screensaver.unixAuth = true;
-
-    xdg.portal.configPackages = mkDefault [ pkgs.mate.mate-desktop ];
-
-    environment.pathsToLink = [ "/share" ];
-  };
-
+  config = mkMerge [
+    (mkIf (cfg.enable || cfg.enableWaylandSession) {
+      services.xserver.displayManager.sessionPackages = [
+        pkgs.mate.mate-session-manager
+      ];
+
+      # Debugging
+      environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1";
+
+      environment.systemPackages = utils.removePackagesByName
+        (pkgs.mate.basePackages ++
+        pkgs.mate.extraPackages ++
+        [
+          (pkgs.mate.caja-with-extensions.override {
+            extensions = cfg.extraCajaExtensions;
+          })
+          (pkgs.mate.mate-panel-with-applets.override {
+            applets = cfg.extraPanelApplets;
+          })
+          pkgs.desktop-file-utils
+          pkgs.glib
+          pkgs.gtk3.out
+          pkgs.shared-mime-info
+          pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
+          pkgs.yelp # for 'Contents' in 'Help' menus
+        ])
+        config.environment.mate.excludePackages;
+
+      programs.dconf.enable = true;
+      # Shell integration for VTE terminals
+      programs.bash.vteIntegration = mkDefault true;
+      programs.zsh.vteIntegration = mkDefault true;
+
+      # Mate uses this for printing
+      programs.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
+
+      services.gnome.at-spi2-core.enable = true;
+      services.gnome.gnome-keyring.enable = true;
+      services.udev.packages = [ pkgs.mate.mate-settings-daemon ];
+      services.gvfs.enable = true;
+      services.upower.enable = config.powerManagement.enable;
+      services.xserver.libinput.enable = mkDefault true;
+
+      security.pam.services.mate-screensaver.unixAuth = true;
+
+      xdg.portal.configPackages = mkDefault [ pkgs.mate.mate-desktop ];
+
+      environment.pathsToLink = [ "/share" ];
+    })
+    (mkIf cfg.enableWaylandSession {
+      programs.wayfire.enable = true;
+      programs.wayfire.plugins = [ pkgs.wayfirePlugins.firedecor ];
+
+      environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${pkgs.mate.mate-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
+
+      environment.systemPackages = [ pkgs.mate.mate-wayland-session ];
+      services.xserver.displayManager.sessionPackages = [ pkgs.mate.mate-wayland-session ];
+    })
+  ];
 }
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 7645b3070369..f516a29fb5db 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -336,6 +336,7 @@ in
         serif = [ "Noto Serif" ];
       };
 
+      programs.gnupg.agent.pinentryPackage = mkDefault pkgs.pinentry-qt;
       programs.ssh.askPassword = mkDefault "${pkgs.plasma5Packages.ksshaskpass.out}/bin/ksshaskpass";
 
       # Enable helpful DBus services.
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix
index e28486bcc12d..3ba27b201507 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/xfce.nix
@@ -131,6 +131,7 @@ in
         xfdesktop
       ] ++ optional cfg.enableScreensaver xfce4-screensaver) excludePackages;
 
+    programs.gnupg.agent.pinentryPackage = mkDefault pkgs.pinentry-gtk2;
     programs.xfconf.enable = true;
     programs.thunar.enable = true;
 
diff --git a/nixpkgs/nixos/modules/services/x11/display-managers/sddm.nix b/nixpkgs/nixos/modules/services/x11/display-managers/sddm.nix
index 5b7f4bc58d80..a315a3ebf322 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/nixpkgs/nixos/modules/services/x11/display-managers/sddm.nix
@@ -1,19 +1,24 @@
 { config, lib, pkgs, ... }:
 
-with lib;
 let
   xcfg = config.services.xserver;
   dmcfg = xcfg.displayManager;
   cfg = dmcfg.sddm;
   xEnv = config.systemd.services.display-manager.environment;
 
-  sddm = cfg.package.override(old: {
+  sddm = cfg.package.override (old: {
     withWayland = cfg.wayland.enable;
-    extraPackages = old.extraPackages or [] ++ cfg.extraPackages;
+    extraPackages = old.extraPackages or [ ] ++ cfg.extraPackages;
   });
 
   iniFmt = pkgs.formats.ini { };
 
+  inherit (lib)
+    concatMapStrings concatStringsSep getExe
+    attrNames getAttr optionalAttrs optionalString
+    mkRemovedOptionModule mkRenamedOptionModule mkIf mkEnableOption mkOption mkPackageOption types
+    ;
+
   xserverWrapper = pkgs.writeShellScript "xserver-wrapper" ''
     ${concatMapStrings (n: "export ${n}=\"${getAttr n xEnv}\"\n") (attrNames xEnv)}
     exec systemd-cat -t xserver-wrapper ${dmcfg.xserverBin} ${toString dmcfg.xserverArgs} "$@"
@@ -38,12 +43,21 @@ let
       DefaultSession = optionalString (dmcfg.defaultSession != null) "${dmcfg.defaultSession}.desktop";
 
       DisplayServer = if cfg.wayland.enable then "wayland" else "x11";
+    } // optionalAttrs (cfg.wayland.compositor == "kwin") {
+      GreeterEnvironment = concatStringsSep " " [
+        "LANG=C.UTF-8"
+        "QT_WAYLAND_SHELL_INTEGRATION=layer-shell"
+      ];
+      InputMethod = ""; # needed if we are using --inputmethod with kwin
     };
 
     Theme = {
       Current = cfg.theme;
       ThemeDir = "/run/current-system/sw/share/sddm/themes";
       FacesDir = "/run/current-system/sw/share/sddm/faces";
+    } // optionalAttrs (cfg.theme == "breeze") {
+      CursorTheme = "breeze_cursors";
+      CursorSize = 24;
     };
 
     Users = {
@@ -69,7 +83,7 @@ let
       SessionDir = "${dmcfg.sessionData.desktops}/share/wayland-sessions";
       CompositorCommand = lib.optionalString cfg.wayland.enable cfg.wayland.compositorCommand;
     };
-  } // lib.optionalAttrs dmcfg.autoLogin.enable {
+  } // optionalAttrs dmcfg.autoLogin.enable {
     Autologin = {
       User = dmcfg.autoLogin.user;
       Session = autoLoginSessionName;
@@ -83,6 +97,34 @@ let
   autoLoginSessionName =
     "${dmcfg.sessionData.autologinSession}.desktop";
 
+  compositorCmds = {
+    kwin = concatStringsSep " " [
+      "${lib.getBin pkgs.kdePackages.kwin}/bin/kwin_wayland"
+      "--no-global-shortcuts"
+      "--no-kactivities"
+      "--no-lockscreen"
+      "--locale1"
+    ];
+    # This is basically the upstream default, but with Weston referenced by full path
+    # and the configuration generated from NixOS options.
+    weston =
+      let
+        westonIni = (pkgs.formats.ini { }).generate "weston.ini" {
+          libinput = {
+            enable-tap = xcfg.libinput.mouse.tapping;
+            left-handed = xcfg.libinput.mouse.leftHanded;
+          };
+          keyboard = {
+            keymap_model = xcfg.xkb.model;
+            keymap_layout = xcfg.xkb.layout;
+            keymap_variant = xcfg.xkb.variant;
+            keymap_options = xcfg.xkb.options;
+          };
+        };
+      in
+      "${getExe pkgs.weston} --shell=kiosk -c ${westonIni}";
+  };
+
 in
 {
   imports = [
@@ -111,7 +153,7 @@ in
         '';
       };
 
-      package = mkPackageOption pkgs [ "plasma5Packages" "sddm" ] {};
+      package = mkPackageOption pkgs [ "plasma5Packages" "sddm" ] { };
 
       enableHidpi = mkOption {
         type = types.bool;
@@ -145,7 +187,7 @@ in
 
       extraPackages = mkOption {
         type = types.listOf types.package;
-        default = [];
+        default = [ ];
         defaultText = "[]";
         description = lib.mdDoc ''
           Extra Qt plugins / QML libraries to add to the environment.
@@ -206,24 +248,16 @@ in
       wayland = {
         enable = mkEnableOption "experimental Wayland support";
 
+        compositor = mkOption {
+          description = lib.mdDoc "The compositor to use: ${lib.concatStringsSep ", " (builtins.attrNames compositorCmds)}";
+          type = types.enum (builtins.attrNames compositorCmds);
+          default = "weston";
+        };
+
         compositorCommand = mkOption {
           type = types.str;
           internal = true;
-
-          # This is basically the upstream default, but with Weston referenced by full path
-          # and the configuration generated from NixOS options.
-          default = let westonIni = (pkgs.formats.ini {}).generate "weston.ini" {
-              libinput = {
-                enable-tap = xcfg.libinput.mouse.tapping;
-                left-handed = xcfg.libinput.mouse.leftHanded;
-              };
-              keyboard = {
-                keymap_model = xcfg.xkb.model;
-                keymap_layout = xcfg.xkb.layout;
-                keymap_variant = xcfg.xkb.variant;
-                keymap_options = xcfg.xkb.options;
-              };
-            }; in "${pkgs.weston}/bin/weston --shell=kiosk -c ${westonIni}";
+          default = compositorCmds.${cfg.wayland.compositor};
           description = lib.mdDoc "Command used to start the selected compositor";
         };
       };
@@ -247,8 +281,6 @@ in
       }
     ];
 
-    services.xserver.displayManager.job.execCmd = "exec /run/current-system/sw/bin/sddm";
-
     security.pam.services = {
       sddm.text = ''
         auth      substack      login
@@ -293,30 +325,41 @@ in
       uid = config.ids.uids.sddm;
     };
 
-    environment.etc."sddm.conf".source = cfgFile;
-    environment.pathsToLink = [
-      "/share/sddm"
-    ];
+    environment = {
+      etc."sddm.conf".source = cfgFile;
+      pathsToLink = [
+        "/share/sddm"
+      ];
+      systemPackages = [ sddm ];
+    };
 
     users.groups.sddm.gid = config.ids.gids.sddm;
 
-    environment.systemPackages = [ sddm ];
-    services.dbus.packages = [ sddm ];
-    systemd.tmpfiles.packages = [ sddm ];
-
-    # We're not using the upstream unit, so copy these: https://github.com/sddm/sddm/blob/develop/services/sddm.service.in
-    systemd.services.display-manager.after = [
-      "systemd-user-sessions.service"
-      "getty@tty7.service"
-      "plymouth-quit.service"
-      "systemd-logind.service"
-    ];
-    systemd.services.display-manager.conflicts = [
-      "getty@tty7.service"
-    ];
+    services = {
+      dbus.packages = [ sddm ];
+      xserver = {
+        displayManager.job.execCmd = "exec /run/current-system/sw/bin/sddm";
+        # To enable user switching, allow sddm to allocate TTYs/displays dynamically.
+        tty = null;
+        display = null;
+      };
+    };
 
-    # To enable user switching, allow sddm to allocate TTYs/displays dynamically.
-    services.xserver.tty = null;
-    services.xserver.display = null;
+    systemd = {
+      tmpfiles.packages = [ sddm ];
+
+      # We're not using the upstream unit, so copy these: https://github.com/sddm/sddm/blob/develop/services/sddm.service.in
+      services.display-manager = {
+        after = [
+          "systemd-user-sessions.service"
+          "getty@tty7.service"
+          "plymouth-quit.service"
+          "systemd-logind.service"
+        ];
+        conflicts = [
+          "getty@tty7.service"
+        ];
+      };
+    };
   };
 }
diff --git a/nixpkgs/nixos/modules/services/x11/window-managers/nimdow.nix b/nixpkgs/nixos/modules/services/x11/window-managers/nimdow.nix
index de3192876024..9cee4bb271a5 100644
--- a/nixpkgs/nixos/modules/services/x11/window-managers/nimdow.nix
+++ b/nixpkgs/nixos/modules/services/x11/window-managers/nimdow.nix
@@ -8,16 +8,23 @@ in
 {
   options = {
     services.xserver.windowManager.nimdow.enable = mkEnableOption (lib.mdDoc "nimdow");
+    services.xserver.windowManager.nimdow.package = mkOption {
+      type = types.package;
+      default = pkgs.nimdow;
+      defaultText = "pkgs.nimdow";
+      description = lib.mdDoc "nimdow package to use";
+    };
   };
 
+
   config = mkIf cfg.enable {
     services.xserver.windowManager.session = singleton {
       name = "nimdow";
       start = ''
-        ${pkgs.nimdow}/bin/nimdow &
+        ${cfg.package}/bin/nimdow &
         waitPID=$!
       '';
     };
-    environment.systemPackages = [ pkgs.nimdow ];
+    environment.systemPackages = [ cfg.package pkgs.st ];
   };
 }
diff --git a/nixpkgs/nixos/modules/services/x11/window-managers/xmonad.nix b/nixpkgs/nixos/modules/services/x11/window-managers/xmonad.nix
index c35446bf405b..2962f2851fa9 100644
--- a/nixpkgs/nixos/modules/services/x11/window-managers/xmonad.nix
+++ b/nixpkgs/nixos/modules/services/x11/window-managers/xmonad.nix
@@ -37,7 +37,7 @@ let
 
   xmonad = if (cfg.config != null) then xmonad-config else xmonad-vanilla;
 in {
-  meta.maintainers = with maintainers; [ lassulus xaverdh ivanbrennan ];
+  meta.maintainers = with maintainers; [ lassulus xaverdh ivanbrennan slotThe ];
 
   options = {
     services.xserver.windowManager.xmonad = {
diff --git a/nixpkgs/nixos/modules/services/x11/xserver.nix b/nixpkgs/nixos/modules/services/x11/xserver.nix
index 38fb1074fcdf..4e0235f9ad1d 100644
--- a/nixpkgs/nixos/modules/services/x11/xserver.nix
+++ b/nixpkgs/nixos/modules/services/x11/xserver.nix
@@ -749,6 +749,8 @@ in
     boot.kernel.sysctl."fs.inotify.max_user_instances" = mkDefault 524288;
     boot.kernel.sysctl."fs.inotify.max_user_watches" = mkDefault 524288;
 
+    programs.gnupg.agent.pinentryPackage = lib.mkOverride 1100 pkgs.pinentry-gnome3;
+
     systemd.defaultUnit = mkIf cfg.autorun "graphical.target";
 
     systemd.services.display-manager =
diff --git a/nixpkgs/nixos/modules/system/boot/binfmt.nix b/nixpkgs/nixos/modules/system/boot/binfmt.nix
index 08e3dce70844..2242c9da62d0 100644
--- a/nixpkgs/nixos/modules/system/boot/binfmt.nix
+++ b/nixpkgs/nixos/modules/system/boot/binfmt.nix
@@ -331,6 +331,7 @@ in {
           "proc-sys-fs-binfmt_misc.mount"
           "systemd-binfmt.service"
         ];
+        services.systemd-binfmt.after = [ "systemd-tmpfiles-setup.service" ];
         services.systemd-binfmt.restartTriggers = [ (builtins.toJSON config.boot.binfmt.registrations) ];
       })
     ];
diff --git a/nixpkgs/nixos/modules/system/boot/kernel.nix b/nixpkgs/nixos/modules/system/boot/kernel.nix
index b0ac857feb4b..950cff386d02 100644
--- a/nixpkgs/nixos/modules/system/boot/kernel.nix
+++ b/nixpkgs/nixos/modules/system/boot/kernel.nix
@@ -233,7 +233,9 @@ in
         symlinks because modprobe only supports one directory.
       '';
       # Convert the list of path to only one path.
-      apply = pkgs.aggregateModules;
+      apply = let
+        kernel-name = config.boot.kernelPackages.kernel.name or "kernel";
+      in modules: (pkgs.aggregateModules modules).override { name = kernel-name + "-modules"; };
     };
 
     system.requiredKernelConfig = mkOption {
@@ -299,6 +301,7 @@ in
             "usbhid"
             "hid_generic" "hid_lenovo" "hid_apple" "hid_roccat"
             "hid_logitech_hidpp" "hid_logitech_dj" "hid_microsoft" "hid_cherry"
+            "hid_corsair"
 
           ] ++ optionals pkgs.stdenv.hostPlatform.isx86 [
             # Misc. x86 keyboard stuff.
diff --git a/nixpkgs/nixos/modules/system/boot/luksroot.nix b/nixpkgs/nixos/modules/system/boot/luksroot.nix
index 86a3875e2c67..3020734783e7 100644
--- a/nixpkgs/nixos/modules/system/boot/luksroot.nix
+++ b/nixpkgs/nixos/modules/system/boot/luksroot.nix
@@ -982,8 +982,10 @@ in
         }
         { assertion = config.boot.initrd.systemd.enable -> !luks.fido2Support;
           message = ''
-            systemd stage 1 does not support configuring FIDO2 unlocking through `boot.initrd.luks.devices.<name>.fido2`.
-            Use systemd-cryptenroll(1) to configure FIDO2 support.
+            systemd stage 1 does not support configuring FIDO2 unlocking through `boot.initrd.luks.fido2Support`.
+            Use systemd-cryptenroll(1) to configure FIDO2 support, and set
+            `boot.initrd.luks.devices.''${DEVICE}.crypttabExtraOpts` as appropriate per crypttab(5)
+            (e.g. `fido2-device=auto`).
           '';
         }
         # TODO
diff --git a/nixpkgs/nixos/modules/system/boot/networkd.nix b/nixpkgs/nixos/modules/system/boot/networkd.nix
index 88d6a2ded873..9b0d750d12ce 100644
--- a/nixpkgs/nixos/modules/system/boot/networkd.nix
+++ b/nixpkgs/nixos/modules/system/boot/networkd.nix
@@ -729,8 +729,8 @@ let
         (assertInt "FirewallMark")
         (assertRange "FirewallMark" 1 4294967295)
         (assertInt "Priority")
-        (assertPort "SourcePort")
-        (assertPort "DestinationPort")
+        (assertPortOrPortRange "SourcePort")
+        (assertPortOrPortRange "DestinationPort")
         (assertValueOneOf "InvertRule" boolValues)
         (assertValueOneOf "Family" ["ipv4" "ipv6" "both"])
         (assertInt "SuppressPrefixLength")
@@ -797,6 +797,7 @@ let
           "UseHostname"
           "Hostname"
           "UseDomains"
+          "UseGateway"
           "UseRoutes"
           "UseTimezone"
           "ClientIdentifier"
@@ -829,6 +830,7 @@ let
         (assertValueOneOf "SendHostname" boolValues)
         (assertValueOneOf "UseHostname" boolValues)
         (assertValueOneOf "UseDomains" (boolValues ++ ["route"]))
+        (assertValueOneOf "UseGateway" boolValues)
         (assertValueOneOf "UseRoutes" boolValues)
         (assertValueOneOf "UseTimezone" boolValues)
         (assertValueOneOf "ClientIdentifier" ["mac" "duid" "duid-only"])
diff --git a/nixpkgs/nixos/modules/system/boot/stage-1.nix b/nixpkgs/nixos/modules/system/boot/stage-1.nix
index 90a74c0ac578..02a3f5113cc0 100644
--- a/nixpkgs/nixos/modules/system/boot/stage-1.nix
+++ b/nixpkgs/nixos/modules/system/boot/stage-1.nix
@@ -13,15 +13,11 @@ let
 
   kernel-name = config.boot.kernelPackages.kernel.name or "kernel";
 
-  modulesTree = config.system.modulesTree.override { name = kernel-name + "-modules"; };
-  firmware = config.hardware.firmware;
-
-
   # Determine the set of modules that we need to mount the root FS.
   modulesClosure = pkgs.makeModulesClosure {
     rootModules = config.boot.initrd.availableKernelModules ++ config.boot.initrd.kernelModules;
-    kernel = modulesTree;
-    firmware = firmware;
+    kernel = config.system.modulesTree;
+    firmware = config.hardware.firmware;
     allowMissing = false;
   };
 
@@ -688,7 +684,7 @@ in
 
   config = mkIf config.boot.initrd.enable {
     assertions = [
-      { assertion = any (fs: fs.mountPoint == "/") fileSystems;
+      { assertion = !config.boot.initrd.systemd.enable -> any (fs: fs.mountPoint == "/") fileSystems;
         message = "The ‘fileSystems’ option does not specify your root file system.";
       }
       { assertion = let inherit (config.boot) resumeDevice; in
diff --git a/nixpkgs/nixos/modules/system/boot/systemd.nix b/nixpkgs/nixos/modules/system/boot/systemd.nix
index 49090423e078..a8885aee78f2 100644
--- a/nixpkgs/nixos/modules/system/boot/systemd.nix
+++ b/nixpkgs/nixos/modules/system/boot/systemd.nix
@@ -97,7 +97,7 @@ let
 
       # Maintaining state across reboots.
       "systemd-random-seed.service"
-      "systemd-boot-random-seed.service"
+      ] ++ (optional cfg.package.withBootloader "systemd-boot-random-seed.service") ++ [
       "systemd-backlight@.service"
       "systemd-rfkill.service"
       "systemd-rfkill.socket"
diff --git a/nixpkgs/nixos/modules/system/boot/systemd/initrd.nix b/nixpkgs/nixos/modules/system/boot/systemd/initrd.nix
index f83837fbc6d4..e4f61db0cd02 100644
--- a/nixpkgs/nixos/modules/system/boot/systemd/initrd.nix
+++ b/nixpkgs/nixos/modules/system/boot/systemd/initrd.nix
@@ -91,13 +91,11 @@ let
   };
 
   kernel-name = config.boot.kernelPackages.kernel.name or "kernel";
-  modulesTree = config.system.modulesTree.override { name = kernel-name + "-modules"; };
-  firmware = config.hardware.firmware;
   # Determine the set of modules that we need to mount the root FS.
   modulesClosure = pkgs.makeModulesClosure {
     rootModules = config.boot.initrd.availableKernelModules ++ config.boot.initrd.kernelModules;
-    kernel = modulesTree;
-    firmware = firmware;
+    kernel = config.system.modulesTree;
+    firmware = config.hardware.firmware;
     allowMissing = false;
   };
 
@@ -212,6 +210,19 @@ in {
       default = [];
     };
 
+    root = lib.mkOption {
+      type = lib.types.enum [ "fstab" "gpt-auto" ];
+      default = "fstab";
+      example = "gpt-auto";
+      description = ''
+        Controls how systemd will interpret the root FS in initrd. See
+        {manpage}`kernel-command-line(7)`. NixOS currently does not
+        allow specifying the root file system itself this
+        way. Instead, the `fstab` value is used in order to interpret
+        the root file system specified with the `fileSystems` option.
+      '';
+    };
+
     emergencyAccess = mkOption {
       type = with types; oneOf [ bool (nullOr (passwdEntry str)) ];
       description = lib.mdDoc ''
@@ -342,7 +353,12 @@ in {
   };
 
   config = mkIf (config.boot.initrd.enable && cfg.enable) {
-    assertions = map (name: {
+    assertions = [
+      {
+        assertion = cfg.root == "fstab" -> any (fs: fs.mountPoint == "/") (builtins.attrValues config.fileSystems);
+        message = "The ‘fileSystems’ option does not specify your root file system.";
+      }
+    ] ++ map (name: {
       assertion = lib.attrByPath name (throw "impossible") config.boot.initrd == "";
       message = ''
         systemd stage 1 does not support 'boot.initrd.${lib.concatStringsSep "." name}'. Please
@@ -371,7 +387,12 @@ in {
       "autofs"
       # systemd-cryptenroll
     ] ++ lib.optional cfg.enableTpm2 "tpm-tis"
-    ++ lib.optional (cfg.enableTpm2 && !(pkgs.stdenv.hostPlatform.isRiscV64 || pkgs.stdenv.hostPlatform.isArmv7)) "tpm-crb";
+    ++ lib.optional (cfg.enableTpm2 && !(pkgs.stdenv.hostPlatform.isRiscV64 || pkgs.stdenv.hostPlatform.isArmv7)) "tpm-crb"
+    ++ lib.optional cfg.package.withEfi "efivarfs";
+
+    boot.kernelParams = [
+      "root=${config.boot.initrd.systemd.root}"
+    ] ++ lib.optional (config.boot.resumeDevice != "") "resume=${config.boot.resumeDevice}";
 
     boot.initrd.systemd = {
       initrdBin = [pkgs.bash pkgs.coreutils cfg.package.kmod cfg.package];
@@ -495,7 +516,7 @@ in {
               case $o in
                   init=*)
                       IFS== read -r -a initParam <<< "$o"
-                      closure="$(dirname "''${initParam[1]}")"
+                      closure="''${initParam[1]}"
                       ;;
               esac
           done
@@ -506,6 +527,13 @@ in {
             exit 1
           fi
 
+          # Resolve symlinks in the init parameter. We need this for some boot loaders
+          # (e.g. boot.loader.generationsDir).
+          closure="$(chroot /sysroot ${pkgs.coreutils}/bin/realpath "$closure")"
+
+          # Assume the directory containing the init script is the closure.
+          closure="$(dirname "$closure")"
+
           # If we are not booting a NixOS closure (e.g. init=/bin/sh),
           # we don't know what root to prepare so we don't do anything
           if ! [ -x "/sysroot$(readlink "/sysroot$closure/prepare-root" || echo "$closure/prepare-root")" ]; then
@@ -554,7 +582,5 @@ in {
         serviceConfig.Type = "oneshot";
       };
     };
-
-    boot.kernelParams = lib.mkIf (config.boot.resumeDevice != "") [ "resume=${config.boot.resumeDevice}" ];
   };
 }
diff --git a/nixpkgs/nixos/modules/system/boot/timesyncd.nix b/nixpkgs/nixos/modules/system/boot/timesyncd.nix
index 2666e4cd6b28..ef17c1481abb 100644
--- a/nixpkgs/nixos/modules/system/boot/timesyncd.nix
+++ b/nixpkgs/nixos/modules/system/boot/timesyncd.nix
@@ -21,6 +21,9 @@ with lib;
         type = types.listOf types.str;
         description = lib.mdDoc ''
           The set of NTP servers from which to synchronise.
+          Note if this is set to an empty list, the defaults systemd itself is
+          compiled with ({0..4}.nixos.pool.ntp.org) apply,
+          In case you want to disable timesyncd altogether, use the `enable` option.
         '';
       };
       extraConfig = mkOption {
diff --git a/nixpkgs/nixos/modules/system/boot/uki.nix b/nixpkgs/nixos/modules/system/boot/uki.nix
index ce00ac8e6397..c8d3c2f6605f 100644
--- a/nixpkgs/nixos/modules/system/boot/uki.nix
+++ b/nixpkgs/nixos/modules/system/boot/uki.nix
@@ -7,8 +7,6 @@ let
   inherit (pkgs.stdenv.hostPlatform) efiArch;
 
   format = pkgs.formats.ini { };
-  ukifyConfig = format.generate "ukify.conf" cfg.settings;
-
 in
 
 {
@@ -48,6 +46,15 @@ in
           contains and how it is built.
         '';
       };
+
+      configFile = lib.mkOption {
+        type = lib.types.path;
+        description = lib.mdDoc ''
+          The configuration file passed to {manpage}`ukify(1)` to create the UKI.
+
+          By default this configuration file is created from {option}`boot.uki.settings`.
+        '';
+      };
     };
 
     system.boot.loader.ukiFile = lib.mkOption {
@@ -75,9 +82,13 @@ in
         OSRelease = lib.mkOptionDefault "@${config.system.build.etc}/etc/os-release";
         # This is needed for cross compiling.
         EFIArch = lib.mkOptionDefault efiArch;
+      } // lib.optionalAttrs (config.hardware.deviceTree.enable && config.hardware.deviceTree.name != null) {
+        DeviceTree = lib.mkOptionDefault "${config.hardware.deviceTree.package}/${config.hardware.deviceTree.name}";
       };
     };
 
+    boot.uki.configFile = lib.mkOptionDefault (format.generate "ukify.conf" cfg.settings);
+
     system.boot.loader.ukiFile =
       let
         name = config.boot.uki.name;
@@ -90,7 +101,7 @@ in
     system.build.uki = pkgs.runCommand config.system.boot.loader.ukiFile { } ''
       mkdir -p $out
       ${pkgs.buildPackages.systemdUkify}/lib/systemd/ukify build \
-        --config=${ukifyConfig} \
+        --config=${cfg.configFile} \
         --output="$out/${config.system.boot.loader.ukiFile}"
     '';
 
diff --git a/nixpkgs/nixos/modules/testing/test-instrumentation.nix b/nixpkgs/nixos/modules/testing/test-instrumentation.nix
index 6aa718c1975d..50a54a006415 100644
--- a/nixpkgs/nixos/modules/testing/test-instrumentation.nix
+++ b/nixpkgs/nixos/modules/testing/test-instrumentation.nix
@@ -42,8 +42,10 @@ let
         # Otherwise we get errors on the terminal because bash tries to
         # setup things like job control.
         # Note: calling bash explicitly here instead of sh makes sure that
-        # we can also run non-NixOS guests during tests.
-        PS1= exec /usr/bin/env bash --norc /dev/hvc0
+        # we can also run non-NixOS guests during tests. This, however, is
+        # mostly futureproofing as the test instrumentation is still very
+        # tightly coupled to NixOS.
+        PS1= exec ${pkgs.coreutils}/bin/env bash --norc /dev/hvc0
       '';
       serviceConfig.KillSignal = "SIGHUP";
   };
@@ -121,7 +123,9 @@ in
           }
         ];
 
-        contents."/usr/bin/env".source = "${pkgs.coreutils}/bin/env";
+        storePaths = [
+          "${pkgs.coreutils}/bin/env"
+        ];
       })
     ];
 
diff --git a/nixpkgs/nixos/modules/virtualisation/amazon-ec2-amis.nix b/nixpkgs/nixos/modules/virtualisation/amazon-ec2-amis.nix
index ff88f02e5d33..97636f4dcb2a 100644
--- a/nixpkgs/nixos/modules/virtualisation/amazon-ec2-amis.nix
+++ b/nixpkgs/nixos/modules/virtualisation/amazon-ec2-amis.nix
@@ -1,3 +1,6 @@
+# NOTE: this file will stop being updated.
+# please use https://nixos.github.io/amis/  and https://nixos.github.io/amis/images.json
+# instead.
 let self = {
   "14.04".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-71c6f470";
   "14.04".ap-northeast-1.x86_64-linux.pv-ebs = "ami-4dcbf84c";
@@ -584,5 +587,68 @@ let self = {
   "23.05".us-west-1.aarch64-linux.hvm-ebs = "ami-0e75c8f3deb1f842b";
   "23.05".us-west-2.aarch64-linux.hvm-ebs = "ami-0d0979d889078d036";
 
-  latest = self."23.05";
+
+  # 23.11.4976.79baff8812a0
+
+  "23.11".eu-north-1.x86_64-linux.hvm-ebs = "ami-00e64007071666b9e";
+  "23.11".ap-south-2.x86_64-linux.hvm-ebs = "ami-0bbb8e5663f912455";
+  "23.11".ap-south-1.x86_64-linux.hvm-ebs = "ami-057ec482a7bc9cb87";
+  "23.11".eu-south-1.x86_64-linux.hvm-ebs = "ami-083f9740e86ab36b9";
+  "23.11".eu-south-2.x86_64-linux.hvm-ebs = "ami-0686a9ef630e6eeef";
+  "23.11".me-central-1.x86_64-linux.hvm-ebs = "ami-0475d5925ff0390f8";
+  "23.11".il-central-1.x86_64-linux.hvm-ebs = "ami-0997e21a353de1226";
+  "23.11".ca-central-1.x86_64-linux.hvm-ebs = "ami-0f9fc310496ea54ec";
+  "23.11".eu-central-1.x86_64-linux.hvm-ebs = "ami-0923e79b6f9b198fa";
+  "23.11".eu-central-2.x86_64-linux.hvm-ebs = "ami-0b02e6421cde609ff";
+  "23.11".us-west-1.x86_64-linux.hvm-ebs = "ami-0e94c086e49480566";
+  "23.11".us-west-2.x86_64-linux.hvm-ebs = "ami-0a2f8942a90eb233a";
+  "23.11".af-south-1.x86_64-linux.hvm-ebs = "ami-0c9ff564e4a503c56";
+  "23.11".eu-west-3.x86_64-linux.hvm-ebs = "ami-0955d4d89c446d5ff";
+  "23.11".eu-west-2.x86_64-linux.hvm-ebs = "ami-0c5834d32e6dce6c8";
+  "23.11".eu-west-1.x86_64-linux.hvm-ebs = "ami-0e7d1823ac80520e6";
+  "23.11".ap-northeast-3.x86_64-linux.hvm-ebs = "ami-06b3692ef87ef308a";
+  "23.11".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0fb1e23007bdc6083";
+  "23.11".me-south-1.x86_64-linux.hvm-ebs = "ami-0a4beeb2fc744c149";
+  "23.11".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-0f60ab2288ac784c3";
+  "23.11".sa-east-1.x86_64-linux.hvm-ebs = "ami-058779e1d5c1cc6ae";
+  "23.11".ap-east-1.x86_64-linux.hvm-ebs = "ami-039879f1b367e167f";
+  "23.11".ca-west-1.x86_64-linux.hvm-ebs = "ami-07dc9bc5645a981f1";
+  "23.11".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-0ee92af1fc4c4e5f3";
+  "23.11".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-0814092ef52275887";
+  "23.11".ap-southeast-3.x86_64-linux.hvm-ebs = "ami-0d20b4b6529b6214c";
+  "23.11".ap-southeast-4.x86_64-linux.hvm-ebs = "ami-0aa7b8aa04e5ec741";
+  "23.11".us-east-1.x86_64-linux.hvm-ebs = "ami-0c2e37dc938ed9405";
+  "23.11".us-east-2.x86_64-linux.hvm-ebs = "ami-05c218c4a08c58296";
+
+  "23.11".eu-north-1.aarch64-linux.hvm-ebs = "ami-05e68ac90786e5ac0";
+  "23.11".ap-south-2.aarch64-linux.hvm-ebs = "ami-0a53356d3176a82af";
+  "23.11".ap-south-1.aarch64-linux.hvm-ebs = "ami-0cc335be202b53954";
+  "23.11".eu-south-1.aarch64-linux.hvm-ebs = "ami-05d387849385390c0";
+  "23.11".eu-south-2.aarch64-linux.hvm-ebs = "ami-0193deb9aa4b398bb";
+  "23.11".me-central-1.aarch64-linux.hvm-ebs = "ami-05bd96550451e131d";
+  "23.11".il-central-1.aarch64-linux.hvm-ebs = "ami-0264204c502a16f49";
+  "23.11".ca-central-1.aarch64-linux.hvm-ebs = "ami-08345537f80791b3c";
+  "23.11".eu-central-1.aarch64-linux.hvm-ebs = "ami-03b257130b2b01000";
+  "23.11".eu-central-2.aarch64-linux.hvm-ebs = "ami-0b4412d8a4d3fb7ae";
+  "23.11".us-west-1.aarch64-linux.hvm-ebs = "ami-0a2d70cd7a3b03e24";
+  "23.11".us-west-2.aarch64-linux.hvm-ebs = "ami-01b8e062c74311de0";
+  "23.11".af-south-1.aarch64-linux.hvm-ebs = "ami-011c296fee301596b";
+  "23.11".eu-west-3.aarch64-linux.hvm-ebs = "ami-024531ee8546d7ec7";
+  "23.11".eu-west-2.aarch64-linux.hvm-ebs = "ami-0a5dda5cf7e00b39b";
+  "23.11".eu-west-1.aarch64-linux.hvm-ebs = "ami-013f7a51b602dec7d";
+  "23.11".ap-northeast-3.aarch64-linux.hvm-ebs = "ami-0220fc0e06979c6ff";
+  "23.11".ap-northeast-2.aarch64-linux.hvm-ebs = "ami-0978048539bbad573";
+  "23.11".me-south-1.aarch64-linux.hvm-ebs = "ami-02057e1a9c901b506";
+  "23.11".ap-northeast-1.aarch64-linux.hvm-ebs = "ami-05616e07e227f9982";
+  "23.11".sa-east-1.aarch64-linux.hvm-ebs = "ami-0bf5255283cec803b";
+  "23.11".ap-east-1.aarch64-linux.hvm-ebs = "ami-00432470e52956e49";
+  "23.11".ca-west-1.aarch64-linux.hvm-ebs = "ami-0675649785473e1ac";
+  "23.11".ap-southeast-1.aarch64-linux.hvm-ebs = "ami-006494f0fa381ba53";
+  "23.11".ap-southeast-2.aarch64-linux.hvm-ebs = "ami-0d8c15d68266d6881";
+  "23.11".ap-southeast-3.aarch64-linux.hvm-ebs = "ami-0db38da4ed78d2a10";
+  "23.11".ap-southeast-4.aarch64-linux.hvm-ebs = "ami-098b3b942486b5e71";
+  "23.11".us-east-1.aarch64-linux.hvm-ebs = "ami-02d1d66bda50b9036";
+  "23.11".us-east-2.aarch64-linux.hvm-ebs = "ami-0aa62457617706386";
+
+  latest = self."23.11";
 }; in self
diff --git a/nixpkgs/nixos/modules/virtualisation/amazon-image.nix b/nixpkgs/nixos/modules/virtualisation/amazon-image.nix
index c7fe1bed5159..77730178422c 100644
--- a/nixpkgs/nixos/modules/virtualisation/amazon-image.nix
+++ b/nixpkgs/nixos/modules/virtualisation/amazon-image.nix
@@ -79,6 +79,10 @@ in
       serviceConfig.StandardOutput = "journal+console";
     };
 
+    # Amazon-issued AMIs include the SSM Agent by default, so we do the same.
+    # https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html
+    services.amazon-ssm-agent.enable = true;
+
     # Allow root logins only using the SSH key that the user specified
     # at instance creation time.
     services.openssh.enable = true;
diff --git a/nixpkgs/nixos/modules/virtualisation/incus.nix b/nixpkgs/nixos/modules/virtualisation/incus.nix
index a561c5682ae5..da7873c7bec8 100644
--- a/nixpkgs/nixos/modules/virtualisation/incus.nix
+++ b/nixpkgs/nixos/modules/virtualisation/incus.nix
@@ -164,19 +164,24 @@ in
         "network-online.target"
         "lxcfs.service"
         "incus.socket"
-      ];
+      ]
+        ++ lib.optional config.virtualisation.vswitch.enable "ovs-vswitchd.service";
+
       requires = [
         "lxcfs.service"
         "incus.socket"
-      ];
+      ]
+        ++ lib.optional config.virtualisation.vswitch.enable "ovs-vswitchd.service";
+
       wants = [
         "network-online.target"
       ];
 
-      path = lib.mkIf config.boot.zfs.enabled [
+      path = lib.optionals config.boot.zfs.enabled [
         config.boot.zfs.package
         "${config.boot.zfs.package}/lib/udev"
-      ];
+      ]
+        ++ lib.optional config.virtualisation.vswitch.enable config.virtualisation.vswitch.package;
 
       environment = lib.mkMerge [ {
         # Override Path to the LXC template configuration directory
diff --git a/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix b/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
index d4fa707b2dd5..5db3a336f85d 100644
--- a/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
+++ b/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
@@ -509,6 +509,12 @@ in
                                 for details).
                               '';
                             }
+                            {
+                              assertion = !lib.strings.hasInfix "_" name;
+                              message = ''
+                                Names containing underscores are not allowed in nixos-containers. Please rename the container '${name}'
+                              '';
+                            }
                           ];
                         };
                       };
diff --git a/nixpkgs/nixos/tests/all-tests.nix b/nixpkgs/nixos/tests/all-tests.nix
index 7376cd40b910..2c08fdba6c98 100644
--- a/nixpkgs/nixos/tests/all-tests.nix
+++ b/nixpkgs/nixos/tests/all-tests.nix
@@ -290,8 +290,8 @@ in {
   activation-etc-overlay-mutable = runTest ./activation/etc-overlay-mutable.nix;
   activation-etc-overlay-immutable = runTest ./activation/etc-overlay-immutable.nix;
   activation-perlless = runTest ./activation/perlless.nix;
-  etcd = handleTestOn ["x86_64-linux"] ./etcd.nix {};
-  etcd-cluster = handleTestOn ["x86_64-linux"] ./etcd-cluster.nix {};
+  etcd = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./etcd/etcd.nix {};
+  etcd-cluster = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./etcd/etcd-cluster.nix {};
   etebase-server = handleTest ./etebase-server.nix {};
   etesync-dav = handleTest ./etesync-dav.nix {};
   evcc = handleTest ./evcc.nix {};
@@ -464,7 +464,7 @@ in {
   keymap = handleTest ./keymap.nix {};
   knot = handleTest ./knot.nix {};
   komga = handleTest ./komga.nix {};
-  krb5 = discoverTests (import ./krb5 {});
+  krb5 = discoverTests (import ./krb5);
   ksm = handleTest ./ksm.nix {};
   kthxbye = handleTest ./kthxbye.nix {};
   kubernetes = handleTestOn ["x86_64-linux"] ./kubernetes {};
@@ -513,6 +513,7 @@ in {
   mastodon = discoverTests (import ./web-apps/mastodon { inherit handleTestOn; });
   pixelfed = discoverTests (import ./web-apps/pixelfed { inherit handleTestOn; });
   mate = handleTest ./mate.nix {};
+  mate-wayland = handleTest ./mate-wayland.nix {};
   matter-server = handleTest ./matter-server.nix {};
   matomo = handleTest ./matomo.nix {};
   matrix-appservice-irc = handleTest ./matrix/appservice-irc.nix {};
@@ -528,6 +529,7 @@ in {
   memcached = handleTest ./memcached.nix {};
   merecat = handleTest ./merecat.nix {};
   metabase = handleTest ./metabase.nix {};
+  mihomo = handleTest ./mihomo.nix {};
   mindustry = handleTest ./mindustry.nix {};
   minecraft = handleTest ./minecraft.nix {};
   minecraft-server = handleTest ./minecraft-server.nix {};
@@ -560,6 +562,7 @@ in {
   munin = handleTest ./munin.nix {};
   mutableUsers = handleTest ./mutable-users.nix {};
   mxisd = handleTest ./mxisd.nix {};
+  mycelium = handleTest ./mycelium {};
   mympd = handleTest ./mympd.nix {};
   mysql = handleTest ./mysql/mysql.nix {};
   mysql-autobackup = handleTest ./mysql/mysql-autobackup.nix {};
@@ -579,6 +582,7 @@ in {
   ndppd = handleTest ./ndppd.nix {};
   nebula = handleTest ./nebula.nix {};
   netbird = handleTest ./netbird.nix {};
+  nimdow = handleTest ./nimdow.nix {};
   neo4j = handleTest ./neo4j.nix {};
   netdata = handleTest ./netdata.nix {};
   networking.networkd = handleTest ./networking.nix { networkd = true; };
@@ -613,6 +617,7 @@ in {
   nginx-variants = handleTest ./nginx-variants.nix {};
   nifi = handleTestOn ["x86_64-linux"] ./web-apps/nifi.nix {};
   nitter = handleTest ./nitter.nix {};
+  nix-config = handleTest ./nix-config.nix {};
   nix-ld = handleTest ./nix-ld.nix {};
   nix-serve = handleTest ./nix-serve.nix {};
   nix-serve-ssh = handleTest ./nix-serve-ssh.nix {};
@@ -640,6 +645,7 @@ in {
   nzbget = handleTest ./nzbget.nix {};
   nzbhydra2 = handleTest ./nzbhydra2.nix {};
   oh-my-zsh = handleTest ./oh-my-zsh.nix {};
+  ollama = handleTest ./ollama.nix {};
   ombi = handleTest ./ombi.nix {};
   openarena = handleTest ./openarena.nix {};
   openldap = handleTest ./openldap.nix {};
@@ -682,10 +688,12 @@ in {
   peering-manager = handleTest ./web-apps/peering-manager.nix {};
   peertube = handleTestOn ["x86_64-linux"] ./web-apps/peertube.nix {};
   peroxide = handleTest ./peroxide.nix {};
+  pg_anonymizer = handleTest ./pg_anonymizer.nix {};
   pgadmin4 = handleTest ./pgadmin4.nix {};
   pgbouncer = handleTest ./pgbouncer.nix {};
   pgjwt = handleTest ./pgjwt.nix {};
   pgmanage = handleTest ./pgmanage.nix {};
+  pgvecto-rs = handleTest ./pgvecto-rs.nix {};
   phosh = handleTest ./phosh.nix {};
   photoprism = handleTest ./photoprism.nix {};
   php = handleTest ./php {};
@@ -725,6 +733,7 @@ in {
   pppd = handleTest ./pppd.nix {};
   predictable-interface-names = handleTest ./predictable-interface-names.nix {};
   pretalx = runTest ./web-apps/pretalx.nix;
+  pretix = runTest ./web-apps/pretix.nix;
   printing-socket = handleTest ./printing.nix { socket = true; };
   printing-service = handleTest ./printing.nix { socket = false; };
   privoxy = handleTest ./privoxy.nix {};
diff --git a/nixpkgs/nixos/tests/budgie.nix b/nixpkgs/nixos/tests/budgie.nix
index fe0ed2cf80ed..5228e869b056 100644
--- a/nixpkgs/nixos/tests/budgie.nix
+++ b/nixpkgs/nixos/tests/budgie.nix
@@ -1,7 +1,7 @@
 import ./make-test-python.nix ({ pkgs, lib, ... }: {
   name = "budgie";
 
-  meta.maintainers = [ lib.maintainers.federicoschonborn ];
+  meta.maintainers = lib.teams.budgie.members;
 
   nodes.machine = { ... }: {
     imports = [
@@ -29,6 +29,8 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
   testScript = { nodes, ... }:
     let
       user = nodes.machine.users.users.alice;
+      env = "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/${toString user.uid}/bus DISPLAY=:0";
+      su = command: "su - ${user.name} -c '${env} ${command}'";
     in
     ''
       with subtest("Wait for login"):
@@ -47,21 +49,46 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
           machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
 
       with subtest("Check if Budgie session components actually start"):
-          machine.wait_until_succeeds("pgrep budgie-daemon")
+          for i in ["budgie-daemon", "budgie-panel", "budgie-wm", "budgie-desktop-view", "gsd-media-keys"]:
+              machine.wait_until_succeeds(f"pgrep -f {i}")
+          # We don't check xwininfo for budgie-wm.
+          # See https://github.com/NixOS/nixpkgs/pull/216737#discussion_r1155312754
           machine.wait_for_window("budgie-daemon")
-          machine.wait_until_succeeds("pgrep budgie-panel")
           machine.wait_for_window("budgie-panel")
-          # We don't check xwininfo for this one.
-          # See https://github.com/NixOS/nixpkgs/pull/216737#discussion_r1155312754
-          machine.wait_until_succeeds("pgrep budgie-wm")
 
-      with subtest("Open MATE terminal"):
-          machine.succeed("su - ${user.name} -c 'DISPLAY=:0 mate-terminal >&2 &'")
-          machine.wait_for_window("Terminal")
+      with subtest("Check if various environment variables are set"):
+          cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf /run/current-system/sw/bin/budgie-wm)/environ"
+          machine.succeed(f"{cmd} | grep 'XDG_CURRENT_DESKTOP' | grep 'Budgie:GNOME'")
+          machine.succeed(f"{cmd} | grep 'BUDGIE_PLUGIN_DATADIR' | grep '${pkgs.budgie.budgie-desktop-with-plugins.pname}'")
+
+      with subtest("Open run dialog"):
+          machine.send_key("alt-f2")
+          machine.wait_for_window("budgie-run-dialog")
+          machine.sleep(2)
+          machine.screenshot("run_dialog")
+          machine.send_key("esc")
+
+      with subtest("Open Budgie Control Center"):
+          machine.succeed("${su "budgie-control-center >&2 &"}")
+          machine.wait_for_window("Budgie Control Center")
+
+      with subtest("Lock the screen"):
+          machine.succeed("${su "budgie-screensaver-command -l >&2 &"}")
+          machine.wait_until_succeeds("${su "budgie-screensaver-command -q"} | grep 'The screensaver is active'")
+          machine.sleep(2)
+          machine.send_chars("${user.password}", delay=0.5)
+          machine.screenshot("budgie_screensaver")
+          machine.send_chars("\n")
+          machine.wait_until_succeeds("${su "budgie-screensaver-command -q"} | grep 'The screensaver is inactive'")
+          machine.sleep(2)
+
+      with subtest("Open GNOME terminal"):
+          machine.succeed("${su "gnome-terminal"}")
+          machine.wait_for_window("${user.name}@machine: ~")
 
-      with subtest("Check if budgie-wm has ever coredumped"):
-          machine.fail("coredumpctl --json=short | grep budgie-wm")
-          machine.sleep(20)
+      with subtest("Check if Budgie has ever coredumped"):
+          machine.fail("coredumpctl --json=short | grep budgie")
+          machine.sleep(10)
           machine.screenshot("screen")
     '';
 })
diff --git a/nixpkgs/nixos/tests/drawterm.nix b/nixpkgs/nixos/tests/drawterm.nix
index 1d444bb55433..3594343853c0 100644
--- a/nixpkgs/nixos/tests/drawterm.nix
+++ b/nixpkgs/nixos/tests/drawterm.nix
@@ -38,11 +38,24 @@ let
         def drawterm_running():
             machine.succeed("pgrep drawterm")
 
+        # cage is a bit wonky here.
+        # it seems to lag behind drawing
+        # and somehow needs a single input character
+        # in order to get the first prompt to show up.
+        # This is not present in any other compositor
+        # as far as I know, and after spending a couple
+        # hours with the upstream source trying to deduce
+        # how to perhaps fix it, I figured just polling is OK.
+        @polling_condition
+        def cpu_shown_up():
+            machine.send_chars(".")
+            machine.wait_for_text("cpu", 1)
+
         start_all()
 
         machine.wait_for_unit("graphical.target")
         drawterm_running.wait() # type: ignore[union-attr]
-        machine.wait_for_text("cpu")
+        cpu_shown_up.wait() # type: ignore[union-attr]
         machine.send_chars("cpu\n")
         machine.wait_for_text("auth")
         machine.send_chars("cpu\n")
diff --git a/nixpkgs/nixos/tests/etcd-cluster.nix b/nixpkgs/nixos/tests/etcd/etcd-cluster.nix
index c77c0dd73c25..734d56dbc223 100644
--- a/nixpkgs/nixos/tests/etcd-cluster.nix
+++ b/nixpkgs/nixos/tests/etcd/etcd-cluster.nix
@@ -1,6 +1,6 @@
 # This test runs simple etcd cluster
 
-import ./make-test-python.nix ({ pkgs, ... } : let
+import ../make-test-python.nix ({ pkgs, ... } : let
 
   runWithOpenSSL = file: cmd: pkgs.runCommand file {
     buildInputs = [ pkgs.openssl ];
diff --git a/nixpkgs/nixos/tests/etcd.nix b/nixpkgs/nixos/tests/etcd/etcd.nix
index 79857778ae1b..a32d0f9a55d1 100644
--- a/nixpkgs/nixos/tests/etcd.nix
+++ b/nixpkgs/nixos/tests/etcd/etcd.nix
@@ -1,6 +1,6 @@
 # This test runs simple etcd node
 
-import ./make-test-python.nix ({ pkgs, ... } : {
+import ../make-test-python.nix ({ pkgs, ... } : {
   name = "etcd";
 
   meta = with pkgs.lib.maintainers; {
diff --git a/nixpkgs/nixos/tests/freetube.nix b/nixpkgs/nixos/tests/freetube.nix
index faa534938227..10f0773cb884 100644
--- a/nixpkgs/nixos/tests/freetube.nix
+++ b/nixpkgs/nixos/tests/freetube.nix
@@ -40,4 +40,4 @@ let
       '';
     });
 in
-builtins.mapAttrs (k: v: mkTest k v { }) tests
+builtins.mapAttrs (k: v: mkTest k v) tests
diff --git a/nixpkgs/nixos/tests/hibernate.nix b/nixpkgs/nixos/tests/hibernate.nix
index 296aa9ba68b9..6de287f63e08 100644
--- a/nixpkgs/nixos/tests/hibernate.nix
+++ b/nixpkgs/nixos/tests/hibernate.nix
@@ -24,8 +24,8 @@ makeTest {
       virtualisation.useNixStoreImage = true;
 
       swapDevices = lib.mkOverride 0 [ { device = "/dev/vdc"; options = [ "x-systemd.makefs" ]; } ];
-      boot.resumeDevice = "/dev/vdc";
       boot.initrd.systemd.enable = systemdStage1;
+      virtualisation.useEFIBoot = true;
     };
   };
 
diff --git a/nixpkgs/nixos/tests/incus/container.nix b/nixpkgs/nixos/tests/incus/container.nix
index eb00429e53fe..9260f70da98c 100644
--- a/nixpkgs/nixos/tests/incus/container.nix
+++ b/nixpkgs/nixos/tests/incus/container.nix
@@ -29,6 +29,7 @@ in
 
       incus.enable = true;
     };
+    networking.nftables.enable = true;
   };
 
   testScript = ''
diff --git a/nixpkgs/nixos/tests/incus/default.nix b/nixpkgs/nixos/tests/incus/default.nix
index ff36fe9d6730..32bc5396a164 100644
--- a/nixpkgs/nixos/tests/incus/default.nix
+++ b/nixpkgs/nixos/tests/incus/default.nix
@@ -11,8 +11,10 @@
     boot.initrd.systemd.enable = true;
   }; };
   lxd-to-incus = import ./lxd-to-incus.nix { inherit system pkgs; };
+  openvswitch = import ./openvswitch.nix { inherit system pkgs; };
   preseed = import ./preseed.nix { inherit system pkgs; };
   socket-activated = import ./socket-activated.nix { inherit system pkgs; };
+  storage = import ./storage.nix { inherit system pkgs; };
   ui = import ./ui.nix {inherit system pkgs;};
   virtual-machine = handleTestOn [ "x86_64-linux" ] ./virtual-machine.nix { inherit system pkgs; };
 }
diff --git a/nixpkgs/nixos/tests/incus/lxd-to-incus.nix b/nixpkgs/nixos/tests/incus/lxd-to-incus.nix
index c0fc98c224df..262f63c0f26f 100644
--- a/nixpkgs/nixos/tests/incus/lxd-to-incus.nix
+++ b/nixpkgs/nixos/tests/incus/lxd-to-incus.nix
@@ -67,6 +67,7 @@ import ../make-test-python.nix (
 
           incus.enable = true;
         };
+        networking.nftables.enable = true;
       };
 
     testScript = ''
diff --git a/nixpkgs/nixos/tests/incus/openvswitch.nix b/nixpkgs/nixos/tests/incus/openvswitch.nix
new file mode 100644
index 000000000000..5d4aef031ad0
--- /dev/null
+++ b/nixpkgs/nixos/tests/incus/openvswitch.nix
@@ -0,0 +1,65 @@
+import ../make-test-python.nix ({ pkgs, lib, ... } :
+
+{
+  name = "incus-openvswitch";
+
+  meta = {
+    maintainers = lib.teams.lxc.members;
+  };
+
+  nodes.machine = { lib, ... }: {
+    virtualisation = {
+      incus.enable = true;
+      vswitch.enable = true;
+      incus.preseed = {
+        networks = [
+          {
+            name = "nixostestbr0";
+            type = "bridge";
+            config = {
+              "bridge.driver" = "openvswitch";
+              "ipv4.address" = "10.0.100.1/24";
+              "ipv4.nat" = "true";
+            };
+          }
+        ];
+        profiles = [
+          {
+            name = "nixostest_default";
+            devices = {
+              eth0 = {
+                name = "eth0";
+                network = "nixostestbr0";
+                type = "nic";
+              };
+              root = {
+                path = "/";
+                pool = "default";
+                size = "35GiB";
+                type = "disk";
+              };
+            };
+          }
+        ];
+        storage_pools = [
+          {
+            name = "nixostest_pool";
+            driver = "dir";
+          }
+        ];
+      };
+    };
+    networking.nftables.enable = true;
+  };
+
+  testScript = ''
+    machine.wait_for_unit("incus.service")
+    machine.wait_for_unit("incus-preseed.service")
+
+    with subtest("Verify openvswitch bridge"):
+      machine.succeed("incus network info nixostestbr0")
+
+    with subtest("Verify openvswitch bridge"):
+      machine.succeed("ovs-vsctl br-exists nixostestbr0")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/incus/preseed.nix b/nixpkgs/nixos/tests/incus/preseed.nix
index a488d71f3c92..f2d928115f3e 100644
--- a/nixpkgs/nixos/tests/incus/preseed.nix
+++ b/nixpkgs/nixos/tests/incus/preseed.nix
@@ -48,6 +48,7 @@ import ../make-test-python.nix ({ pkgs, lib, ... } :
         ];
       };
     };
+    networking.nftables.enable = true;
   };
 
   testScript = ''
diff --git a/nixpkgs/nixos/tests/incus/socket-activated.nix b/nixpkgs/nixos/tests/incus/socket-activated.nix
index fca536b7054f..59caf1090fbd 100644
--- a/nixpkgs/nixos/tests/incus/socket-activated.nix
+++ b/nixpkgs/nixos/tests/incus/socket-activated.nix
@@ -12,6 +12,7 @@ import ../make-test-python.nix ({ pkgs, lib, ... } :
       incus.enable = true;
       incus.socketActivation = true;
     };
+    networking.nftables.enable = true;
   };
 
   testScript = ''
diff --git a/nixpkgs/nixos/tests/incus/storage.nix b/nixpkgs/nixos/tests/incus/storage.nix
new file mode 100644
index 000000000000..190f4f7451c2
--- /dev/null
+++ b/nixpkgs/nixos/tests/incus/storage.nix
@@ -0,0 +1,46 @@
+import ../make-test-python.nix (
+  { pkgs, lib, ... }:
+
+  {
+    name = "incus-storage";
+
+    meta = {
+      maintainers = lib.teams.lxc.members;
+    };
+
+    nodes.machine =
+      { lib, ... }:
+      {
+        boot.supportedFilesystems = [ "zfs" ];
+        boot.zfs.forceImportRoot = false;
+        environment.systemPackages = [ pkgs.parted ];
+        networking.hostId = "01234567";
+        networking.nftables.enable = true;
+
+        virtualisation = {
+          emptyDiskImages = [ 2048 ];
+          incus.enable = true;
+        };
+      };
+
+    testScript = ''
+      machine.wait_for_unit("incus.service")
+
+      with subtest("Verify zfs pool created and usable"):
+        machine.succeed(
+            "zpool status",
+            "parted --script /dev/vdb mklabel gpt",
+            "zpool create zfs_pool /dev/vdb",
+        )
+
+        machine.succeed("incus storage create zfs_pool zfs source=zfs_pool/incus")
+        machine.succeed("zfs list zfs_pool/incus")
+        machine.succeed("incus storage volume create zfs_pool test_fs --type filesystem")
+        machine.succeed("incus storage volume create zfs_pool test_vol --type block")
+        machine.succeed("incus storage show zfs_pool")
+        machine.succeed("incus storage volume list zfs_pool")
+        machine.succeed("incus storage volume show zfs_pool test_fs")
+        machine.succeed("incus storage volume show zfs_pool test_vol")
+    '';
+  }
+)
diff --git a/nixpkgs/nixos/tests/incus/ui.nix b/nixpkgs/nixos/tests/incus/ui.nix
index 24ce1217d8df..837eb14844ce 100644
--- a/nixpkgs/nixos/tests/incus/ui.nix
+++ b/nixpkgs/nixos/tests/incus/ui.nix
@@ -10,6 +10,7 @@ import ../make-test-python.nix ({ pkgs, lib, ... }: {
       incus.enable = true;
       incus.ui.enable = true;
     };
+    networking.nftables.enable = true;
 
     environment.systemPackages =
       let
diff --git a/nixpkgs/nixos/tests/incus/virtual-machine.nix b/nixpkgs/nixos/tests/incus/virtual-machine.nix
index c76e4f448f2f..ab378c7b9490 100644
--- a/nixpkgs/nixos/tests/incus/virtual-machine.nix
+++ b/nixpkgs/nixos/tests/incus/virtual-machine.nix
@@ -32,6 +32,7 @@ in
 
       incus.enable = true;
     };
+    networking.nftables.enable = true;
   };
 
   testScript = ''
diff --git a/nixpkgs/nixos/tests/installer-systemd-stage-1.nix b/nixpkgs/nixos/tests/installer-systemd-stage-1.nix
index 662017935412..d10256d91d7f 100644
--- a/nixpkgs/nixos/tests/installer-systemd-stage-1.nix
+++ b/nixpkgs/nixos/tests/installer-systemd-stage-1.nix
@@ -37,6 +37,7 @@
     clevisLuksFallback
     clevisZfs
     clevisZfsFallback
+    gptAutoRoot
     ;
 
 }
diff --git a/nixpkgs/nixos/tests/installer.nix b/nixpkgs/nixos/tests/installer.nix
index 97bb7f8def59..1de886d6a0d1 100644
--- a/nixpkgs/nixos/tests/installer.nix
+++ b/nixpkgs/nixos/tests/installer.nix
@@ -82,6 +82,7 @@ let
   testScriptFun = { bootLoader, createPartitions, grubDevice, grubUseEfi, grubIdentifier
                   , postInstallCommands, preBootCommands, postBootCommands, extraConfig
                   , testSpecialisationConfig, testFlakeSwitch, clevisTest, clevisFallbackTest
+                  , disableFileSystems
                   }:
     let
       qemu-common = import ../lib/qemu-common.nix { inherit (pkgs) lib pkgs; };
@@ -163,7 +164,7 @@ let
       ${createPartitions}
 
       with subtest("Create the NixOS configuration"):
-          machine.succeed("nixos-generate-config --root /mnt")
+          machine.succeed("nixos-generate-config ${optionalString disableFileSystems "--no-filesystems"} --root /mnt")
           machine.succeed("cat /mnt/etc/nixos/hardware-configuration.nix >&2")
           machine.copy_from_host(
               "${ makeConfig {
@@ -433,6 +434,7 @@ let
     , testFlakeSwitch ? false
     , clevisTest ? false
     , clevisFallbackTest ? false
+    , disableFileSystems ? false
     }:
     makeTest {
       inherit enableOCR;
@@ -541,7 +543,8 @@ let
       testScript = testScriptFun {
         inherit bootLoader createPartitions postInstallCommands preBootCommands postBootCommands
                 grubDevice grubIdentifier grubUseEfi extraConfig
-                testSpecialisationConfig testFlakeSwitch clevisTest clevisFallbackTest;
+                testSpecialisationConfig testFlakeSwitch clevisTest clevisFallbackTest
+                disableFileSystems;
       };
     };
 
@@ -1414,4 +1417,39 @@ in {
       };
     };
   };
+
+  gptAutoRoot = let
+    rootPartType = {
+      ia32 = "44479540-F297-41B2-9AF7-D131D5F0458A";
+      x64 = "4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709";
+      arm = "69DAD710-2CE4-4E3C-B16C-21A1D49ABED3";
+      aa64 = "B921B045-1DF0-41C3-AF44-4C6F280D3FAE";
+    }.${pkgs.stdenv.hostPlatform.efiArch};
+  in makeInstallerTest "gptAutoRoot" {
+    disableFileSystems = true;
+    createPartitions = ''
+      machine.succeed(
+        "sgdisk --zap-all /dev/vda",
+        "sgdisk --new=1:0:+100M --typecode=0:ef00 /dev/vda", # /boot
+        "sgdisk --new=2:0:+1G --typecode=0:8200 /dev/vda", # swap
+        "sgdisk --new=3:0:+5G --typecode=0:${rootPartType} /dev/vda", # /
+        "udevadm settle",
+
+        "mkfs.vfat /dev/vda1",
+        "mkswap /dev/vda2 -L swap",
+        "swapon -L swap",
+        "mkfs.ext4 -L root /dev/vda3",
+        "udevadm settle",
+
+        "mount /dev/vda3 /mnt",
+        "mkdir -p /mnt/boot",
+        "mount /dev/vda1 /mnt/boot"
+      )
+    '';
+    bootLoader = "systemd-boot";
+    extraConfig = ''
+      boot.initrd.systemd.root = "gpt-auto";
+      boot.initrd.supportedFilesystems = ["ext4"];
+    '';
+  };
 }
diff --git a/nixpkgs/nixos/tests/kea.nix b/nixpkgs/nixos/tests/kea.nix
index c8ecf771fa13..98a8e93a0760 100644
--- a/nixpkgs/nixos/tests/kea.nix
+++ b/nixpkgs/nixos/tests/kea.nix
@@ -44,6 +44,11 @@ import ./make-test-python.nix ({ pkgs, lib, ...}: {
             name = "/var/lib/kea/dhcp4.leases";
           };
 
+          control-socket = {
+            socket-type = "unix";
+            socket-name = "/run/kea/dhcp4.sock";
+          };
+
           interfaces-config = {
             dhcp-socket-type = "raw";
             interfaces = [
@@ -89,6 +94,25 @@ import ./make-test-python.nix ({ pkgs, lib, ...}: {
           };
         };
       };
+
+      services.kea.ctrl-agent = {
+        enable = true;
+        settings = {
+          http-host = "127.0.0.1";
+          http-port = 8000;
+          control-sockets.dhcp4 = {
+            socket-type = "unix";
+            socket-name = "/run/kea/dhcp4.sock";
+          };
+        };
+      };
+
+      services.prometheus.exporters.kea = {
+        enable = true;
+        controlSocketPaths = [
+          "http://127.0.0.1:8000"
+        ];
+      };
     };
 
     nameserver = { config, pkgs, ... }: {
@@ -182,5 +206,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...}: {
     client.wait_until_succeeds("ping -c 5 10.0.0.1")
     router.wait_until_succeeds("ping -c 5 10.0.0.3")
     nameserver.wait_until_succeeds("kdig +short client.lan.nixos.test @10.0.0.2 | grep -q 10.0.0.3")
+    router.log(router.execute("curl 127.0.0.1:9547")[1])
+    router.succeed("curl --no-buffer 127.0.0.1:9547 | grep -qE '^kea_dhcp4_addresses_assigned_total.*1.0$'")
   '';
 })
diff --git a/nixpkgs/nixos/tests/keycloak.nix b/nixpkgs/nixos/tests/keycloak.nix
index 228e57d1cdd6..67b412c80961 100644
--- a/nixpkgs/nixos/tests/keycloak.nix
+++ b/nixpkgs/nixos/tests/keycloak.nix
@@ -6,8 +6,8 @@ let
   certs = import ./common/acme/server/snakeoil-certs.nix;
   frontendUrl = "https://${certs.domain}";
 
-  keycloakTest = import ./make-test-python.nix (
-    { pkgs, databaseType, ... }:
+  keycloakTest = databaseType: import ./make-test-python.nix (
+    { pkgs, ... }:
     let
       initialAdminPassword = "h4Iho\"JFn't2>iQIR9";
       adminPasswordFile = pkgs.writeText "admin-password" "${initialAdminPassword}";
@@ -76,16 +76,18 @@ let
             enabled = true;
             realm = "test-realm";
             clients = [ client ];
-            users = [(
-              user // {
-                enabled = true;
-                credentials = [{
-                  type = "password";
-                  temporary = false;
-                  value = password;
-                }];
-              }
-            )];
+            users = [
+              (
+                user // {
+                  enabled = true;
+                  credentials = [{
+                    type = "password";
+                    temporary = false;
+                    value = password;
+                  }];
+                }
+              )
+            ];
           };
 
           realmDataJson = pkgs.writeText "realm-data.json" (builtins.toJSON realm);
@@ -177,7 +179,7 @@ let
   );
 in
 {
-  postgres = keycloakTest { databaseType = "postgresql"; };
-  mariadb = keycloakTest { databaseType = "mariadb"; };
-  mysql = keycloakTest { databaseType = "mysql"; };
+  postgres = keycloakTest "postgresql";
+  mariadb = keycloakTest "mariadb";
+  mysql = keycloakTest "mysql";
 }
diff --git a/nixpkgs/nixos/tests/krb5/default.nix b/nixpkgs/nixos/tests/krb5/default.nix
index ede085632c63..274ad580cebc 100644
--- a/nixpkgs/nixos/tests/krb5/default.nix
+++ b/nixpkgs/nixos/tests/krb5/default.nix
@@ -1,4 +1,3 @@
-{ system ? builtins.currentSystem }:
 {
-  example-config = import ./example-config.nix { inherit system; };
+  example-config = import ./example-config.nix;
 }
diff --git a/nixpkgs/nixos/tests/ladybird.nix b/nixpkgs/nixos/tests/ladybird.nix
index 4e9ab9a36d13..8ed0f47887c7 100644
--- a/nixpkgs/nixos/tests/ladybird.nix
+++ b/nixpkgs/nixos/tests/ladybird.nix
@@ -21,7 +21,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
     ''
       machine.wait_for_x()
       machine.succeed("echo '<!DOCTYPE html><html><body><h1>Hello world</h1></body></html>' > page.html")
-      machine.execute("ladybird file://$(pwd)/page.html >&2 &")
+      machine.execute("Ladybird file://$(pwd)/page.html >&2 &")
       machine.wait_for_window("Ladybird")
       machine.sleep(5)
       machine.wait_for_text("Hello world")
diff --git a/nixpkgs/nixos/tests/make-test-python.nix b/nixpkgs/nixos/tests/make-test-python.nix
index 28569f1d2955..32531fffd2bf 100644
--- a/nixpkgs/nixos/tests/make-test-python.nix
+++ b/nixpkgs/nixos/tests/make-test-python.nix
@@ -1,5 +1,5 @@
 f: {
-  system ? builtins.currentSystem,
+  system,
   pkgs ? import ../.. { inherit system; config = {}; overlays = []; },
   ...
 } @ args:
diff --git a/nixpkgs/nixos/tests/mate-wayland.nix b/nixpkgs/nixos/tests/mate-wayland.nix
new file mode 100644
index 000000000000..df39ead286e1
--- /dev/null
+++ b/nixpkgs/nixos/tests/mate-wayland.nix
@@ -0,0 +1,63 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
+  name = "mate-wayland";
+
+  meta.maintainers = lib.teams.mate.members;
+
+  nodes.machine = { ... }: {
+    imports = [
+      ./common/user-account.nix
+    ];
+
+    services.xserver.enable = true;
+    services.xserver.displayManager = {
+      sddm.enable = true; # https://github.com/canonical/lightdm/issues/63
+      sddm.wayland.enable = true;
+      defaultSession = "MATE";
+      autoLogin = {
+        enable = true;
+        user = "alice";
+      };
+    };
+    services.xserver.desktopManager.mate.enableWaylandSession = true;
+
+    hardware.pulseaudio.enable = true;
+
+    # Need to switch to a different GPU driver than the default one (-vga std) so that wayfire can launch:
+    virtualisation.qemu.options = [ "-vga none -device virtio-gpu-pci" ];
+  };
+
+  enableOCR = true;
+
+  testScript = { nodes, ... }:
+    let
+      user = nodes.machine.users.users.alice;
+    in
+    ''
+      machine.wait_for_unit("display-manager.service")
+
+      with subtest("Wait for Wayland server"):
+          machine.wait_for_file("/run/user/${toString user.uid}/wayland-1")
+
+      with subtest("Check if MATE session components actually start"):
+          for i in ["wayfire", "mate-panel", "mate-wayland.sh", "mate-wayland-components.sh"]:
+              machine.wait_until_succeeds(f"pgrep -f {i}")
+          machine.wait_for_text('(Applications|Places|System)')
+          # It is expected that this applet doesn't work in Wayland
+          machine.wait_for_text('WorkspaceSwitcherApplet')
+
+      with subtest("Check if various environment variables are set"):
+          cmd = "xargs --null --max-args=1 echo < /proc/$(pgrep -xf mate-panel)/environ"
+          machine.succeed(f"{cmd} | grep 'XDG_SESSION_TYPE' | grep 'wayland'")
+          machine.succeed(f"{cmd} | grep 'XDG_SESSION_DESKTOP' | grep 'MATE'")
+          machine.succeed(f"{cmd} | grep 'MATE_PANEL_APPLETS_DIR' | grep '${pkgs.mate.mate-panel-with-applets.pname}'")
+
+      with subtest("Check if Wayfire config is properly configured"):
+          for i in ["button_style = mate", "firedecor", "mate-wayland-components.sh"]:
+              machine.wait_until_succeeds(f"cat /home/${user.name}/.config/mate/wayfire.ini | grep '{i}'")
+
+      with subtest("Check if Wayfire has ever coredumped"):
+          machine.fail("coredumpctl --json=short | grep wayfire")
+          machine.sleep(10)
+          machine.screenshot("screen")
+    '';
+})
diff --git a/nixpkgs/nixos/tests/mate.nix b/nixpkgs/nixos/tests/mate.nix
index 48582e18d520..1252ec43cf3d 100644
--- a/nixpkgs/nixos/tests/mate.nix
+++ b/nixpkgs/nixos/tests/mate.nix
@@ -54,6 +54,15 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
           machine.wait_for_text('(Applications|Places|System)')
           machine.wait_for_text('(Computer|Home|Trash)')
 
+      with subtest("Check if various environment variables are set"):
+          machine.succeed("xargs --null --max-args=1 echo < /proc/$(pgrep -xf marco)/environ | grep 'XDG_CURRENT_DESKTOP' | grep 'MATE'")
+          # From mate-panel-with-applets packaging
+          machine.succeed("xargs --null --max-args=1 echo < /proc/$(pgrep -xf mate-panel)/environ | grep 'MATE_PANEL_APPLETS_DIR' | grep '${pkgs.mate.mate-panel-with-applets.pname}'")
+
+      with subtest("Check if applets are built with in-process support"):
+          # This is needed for Wayland support
+          machine.fail("pgrep -fa clock-applet")
+
       with subtest("Lock the screen"):
           machine.wait_until_succeeds("su - ${user.name} -c '${env} mate-screensaver-command -q' | grep 'The screensaver is inactive'")
           machine.succeed("su - ${user.name} -c '${env} mate-screensaver-command -l >&2 &'")
diff --git a/nixpkgs/nixos/tests/mihomo.nix b/nixpkgs/nixos/tests/mihomo.nix
new file mode 100644
index 000000000000..472d10050f7f
--- /dev/null
+++ b/nixpkgs/nixos/tests/mihomo.nix
@@ -0,0 +1,44 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "mihomo";
+  meta.maintainers = with pkgs.lib.maintainers; [ Guanran928 ];
+
+  nodes.machine = {
+    environment.systemPackages = [ pkgs.curl ];
+
+    services.nginx = {
+      enable = true;
+      statusPage = true;
+    };
+
+    services.mihomo = {
+      enable = true;
+      configFile = pkgs.writeTextFile {
+        name = "config.yaml";
+        text = ''
+          mixed-port: 7890
+          external-controller: 127.0.0.1:9090
+          authentication:
+          - "user:supersecret"
+        '';
+      };
+    };
+  };
+
+  testScript = ''
+    # Wait until it starts
+    machine.wait_for_unit("nginx.service")
+    machine.wait_for_unit("mihomo.service")
+    machine.wait_for_open_port(80)
+    machine.wait_for_open_port(7890)
+    machine.wait_for_open_port(9090)
+
+    # Proxy
+    machine.succeed("curl --fail --max-time 10 --proxy http://user:supersecret@localhost:7890 http://localhost")
+    machine.succeed("curl --fail --max-time 10 --proxy socks5://user:supersecret@localhost:7890 http://localhost")
+    machine.fail("curl --fail --max-time 10 --proxy http://user:supervillain@localhost:7890 http://localhost")
+    machine.fail("curl --fail --max-time 10 --proxy socks5://user:supervillain@localhost:7890 http://localhost")
+
+    # Web UI
+    machine.succeed("curl --fail http://localhost:9090") == '{"hello":"clash"}'
+  '';
+})
diff --git a/nixpkgs/nixos/tests/miriway.nix b/nixpkgs/nixos/tests/miriway.nix
index a0987d9fc41b..24e6ec6367cd 100644
--- a/nixpkgs/nixos/tests/miriway.nix
+++ b/nixpkgs/nixos/tests/miriway.nix
@@ -100,7 +100,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
     # Test Wayland
     # We let Miriway start the first terminal, as we might get stuck if it's not ready to process the first keybind
     # machine.send_key("ctrl-alt-t")
-    machine.wait_for_text("alice@machine")
+    machine.wait_for_text(r"(alice|machine)")
     machine.send_chars("test-wayland\n")
     machine.wait_for_file("/tmp/test-wayland-exit-ok")
     machine.copy_from_vm("/tmp/test-wayland.out")
@@ -112,7 +112,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
 
     # Test XWayland
     machine.send_key("ctrl-alt-a")
-    machine.wait_for_text("alice@machine")
+    machine.wait_for_text(r"(alice|machine)")
     machine.send_chars("test-x11\n")
     machine.wait_for_file("/tmp/test-x11-exit-ok")
     machine.copy_from_vm("/tmp/test-x11.out")
diff --git a/nixpkgs/nixos/tests/mycelium/default.nix b/nixpkgs/nixos/tests/mycelium/default.nix
new file mode 100644
index 000000000000..f0d72436843c
--- /dev/null
+++ b/nixpkgs/nixos/tests/mycelium/default.nix
@@ -0,0 +1,57 @@
+import ../make-test-python.nix ({ lib, ... }: let
+  peer1-ip = "531:c350:28c1:dfde:ea6d:77d1:a60b:7209";
+  peer2-ip = "49f:3942:3a55:d100:4c78:c558:c4f:695b";
+in
+  {
+    name = "mycelium";
+    meta.maintainers = with lib.maintainers; [ lassulus ];
+
+    nodes = {
+
+      peer1 = { config, pkgs, ... }: {
+        virtualisation.vlans = [ 1 ];
+        networking.interfaces.eth1.ipv4.addresses = [{
+          address = "192.168.1.11";
+          prefixLength = 24;
+        }];
+
+        services.mycelium = {
+          enable = true;
+          addHostedPublicNodes = false;
+          openFirewall = true;
+          keyFile = ./peer1.key;
+          peers = [
+            "quic://192.168.1.12:9651"
+            "tcp://192.168.1.12:9651"
+          ];
+        };
+      };
+
+      peer2 = { config, pkgs, ... }: {
+        virtualisation.vlans = [ 1 ];
+        networking.interfaces.eth1.ipv4.addresses = [{
+          address = "192.168.1.12";
+          prefixLength = 24;
+        }];
+
+        services.mycelium = {
+          enable = true;
+          addHostedPublicNodes = false;
+          openFirewall = true;
+          keyFile = ./peer2.key;
+        };
+      };
+    };
+
+    testScript = ''
+      start_all()
+
+      peer1.wait_for_unit("network-online.target")
+      peer2.wait_for_unit("network-online.target")
+      peer1.wait_for_unit("mycelium.service")
+      peer2.wait_for_unit("mycelium.service")
+
+      peer1.succeed("ping -c5 ${peer2-ip}")
+      peer2.succeed("ping -c5 ${peer1-ip}")
+    '';
+  })
diff --git a/nixpkgs/nixos/tests/mycelium/peer1.key b/nixpkgs/nixos/tests/mycelium/peer1.key
new file mode 100644
index 000000000000..db1cf9e72fe4
--- /dev/null
+++ b/nixpkgs/nixos/tests/mycelium/peer1.key
@@ -0,0 +1 @@
+sì	B0㔟ŽdûRæÈôÌH¶5œu?à»í…^
\ No newline at end of file
diff --git a/nixpkgs/nixos/tests/mycelium/peer2.key b/nixpkgs/nixos/tests/mycelium/peer2.key
new file mode 100644
index 000000000000..7e757de48efb
--- /dev/null
+++ b/nixpkgs/nixos/tests/mycelium/peer2.key
@@ -0,0 +1 @@
+ÏXÿ1®yGÏÕ…ŸSAM»eÈÀ«¾‡œÝ7]
\ No newline at end of file
diff --git a/nixpkgs/nixos/tests/nebula.nix b/nixpkgs/nixos/tests/nebula.nix
index 89b91d89fcb3..6c468153d5b2 100644
--- a/nixpkgs/nixos/tests/nebula.nix
+++ b/nixpkgs/nixos/tests/nebula.nix
@@ -10,6 +10,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: let
       environment.systemPackages = [ pkgs.nebula ];
       users.users.root.openssh.authorizedKeys.keys = [ snakeOilPublicKey ];
       services.openssh.enable = true;
+      networking.firewall.enable = true; # Implicitly true, but let's make sure.
       networking.interfaces.eth1.useDHCP = false;
 
       services.nebula.networks.smoke = {
@@ -17,7 +18,10 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: let
         ca = "/etc/nebula/ca.crt";
         cert = "/etc/nebula/${name}.crt";
         key = "/etc/nebula/${name}.key";
-        listen = { host = "0.0.0.0"; port = 4242; };
+        listen = {
+          host = "0.0.0.0";
+          port = if (config.services.nebula.networks.smoke.isLighthouse || config.services.nebula.networks.smoke.isRelay) then 4242 else 0;
+        };
       };
     }
     extraConfig
diff --git a/nixpkgs/nixos/tests/nimdow.nix b/nixpkgs/nixos/tests/nimdow.nix
new file mode 100644
index 000000000000..cefe46edc5fb
--- /dev/null
+++ b/nixpkgs/nixos/tests/nimdow.nix
@@ -0,0 +1,25 @@
+import ./make-test-python.nix ({ pkgs, ...} : {
+  name = "nimdow";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ marcusramberg ];
+  };
+
+  nodes.machine = { lib, ... }: {
+    imports = [ ./common/x11.nix ./common/user-account.nix ];
+    test-support.displayManager.auto.user = "alice";
+    services.xserver.displayManager.defaultSession = lib.mkForce "none+nimdow";
+    services.xserver.windowManager.nimdow.enable = true;
+  };
+
+  testScript = { ... }: ''
+    with subtest("ensure x starts"):
+        machine.wait_for_x()
+        machine.wait_for_file("/home/alice/.Xauthority")
+        machine.succeed("xauth merge ~alice/.Xauthority")
+
+    with subtest("ensure we can open a new terminal"):
+        machine.send_key("meta_l-ret")
+        machine.wait_for_window(r"alice.*?machine")
+        machine.screenshot("terminal")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/nix-config.nix b/nixpkgs/nixos/tests/nix-config.nix
new file mode 100644
index 000000000000..907e886def35
--- /dev/null
+++ b/nixpkgs/nixos/tests/nix-config.nix
@@ -0,0 +1,18 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+{
+  name = "nix-config";
+  nodes.machine = { pkgs, ... }: {
+    nix.settings = {
+      nix-path = [ "nonextra=/etc/value.nix" ];
+      extra-nix-path = [ "extra=/etc/value.nix" ];
+    };
+    environment.etc."value.nix".text = "42";
+  };
+  testScript = ''
+    start_all()
+    machine.wait_for_unit("nix-daemon.socket")
+    # regression test for the workaround for https://github.com/NixOS/nix/issues/9487
+    print(machine.succeed("nix-instantiate --find-file extra"))
+    print(machine.succeed("nix-instantiate --find-file nonextra"))
+  '';
+})
diff --git a/nixpkgs/nixos/tests/nixops/default.nix b/nixpkgs/nixos/tests/nixops/default.nix
index 8477e5059fca..6468b8c38224 100644
--- a/nixpkgs/nixos/tests/nixops/default.nix
+++ b/nixpkgs/nixos/tests/nixops/default.nix
@@ -93,23 +93,5 @@ let
 
   inherit (import ../ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey;
 
-  /*
-    Return a store path with a closure containing everything including
-    derivations and all build dependency outputs, all the way down.
-  */
-  allDrvOutputs = pkg:
-    let name = "allDrvOutputs-${pkg.pname or pkg.name or "unknown"}";
-    in
-    pkgs.runCommand name { refs = pkgs.writeReferencesToFile pkg.drvPath; } ''
-      touch $out
-      while read ref; do
-        case $ref in
-          *.drv)
-            cat $ref >>$out
-            ;;
-        esac
-      done <$refs
-    '';
-
 in
 tests
diff --git a/nixpkgs/nixos/tests/ollama.nix b/nixpkgs/nixos/tests/ollama.nix
new file mode 100644
index 000000000000..4b21f445cdbd
--- /dev/null
+++ b/nixpkgs/nixos/tests/ollama.nix
@@ -0,0 +1,56 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }:
+let
+  mainPort = "11434";
+  altPort = "11435";
+
+  curlRequest = port: request:
+    "curl http://127.0.0.1:${port}/api/generate -d '${builtins.toJSON request}'";
+
+  prompt = {
+    model = "tinydolphin";
+    prompt = "lorem ipsum";
+    options = {
+      seed = 69;
+      temperature = 0;
+    };
+  };
+in
+{
+  name = "ollama";
+  meta = with lib.maintainers; {
+    maintainers = [ abysssol ];
+  };
+
+  nodes = {
+    cpu = { ... }: {
+      services.ollama.enable = true;
+    };
+
+    rocm = { ... }: {
+      services.ollama.enable = true;
+      services.ollama.acceleration = "rocm";
+    };
+
+    cuda = { ... }: {
+      services.ollama.enable = true;
+      services.ollama.acceleration = "cuda";
+    };
+
+    altAddress = { ... }: {
+      services.ollama.enable = true;
+      services.ollama.listenAddress = "127.0.0.1:${altPort}";
+    };
+  };
+
+  testScript = ''
+    vms = [ cpu, rocm, cuda, altAddress ];
+
+    start_all()
+    for vm in vms:
+        vm.wait_for_unit("multi-user.target")
+
+    stdout = cpu.succeed("""${curlRequest mainPort prompt}""", timeout=100)
+
+    stdout = altAddress.succeed("""${curlRequest altPort prompt}""", timeout=100)
+  '';
+})
diff --git a/nixpkgs/nixos/tests/opensearch.nix b/nixpkgs/nixos/tests/opensearch.nix
index 2887ac967765..7d37583464cb 100644
--- a/nixpkgs/nixos/tests/opensearch.nix
+++ b/nixpkgs/nixos/tests/opensearch.nix
@@ -1,7 +1,7 @@
 let
-  opensearchTest =
+  opensearchTest = extraSettings:
     import ./make-test-python.nix (
-      { pkgs, lib, extraSettings ? {} }: {
+      { pkgs, lib, ... }: {
         name = "opensearch";
         meta.maintainers = with pkgs.lib.maintainers; [ shyim ];
 
@@ -27,20 +27,18 @@ in
 {
   opensearch = opensearchTest {};
   opensearchCustomPathAndUser = opensearchTest {
-    extraSettings = {
-      services.opensearch.dataDir = "/var/opensearch_test";
-      services.opensearch.user = "open_search";
-      services.opensearch.group = "open_search";
-      systemd.tmpfiles.rules = [
-        "d /var/opensearch_test 0700 open_search open_search -"
-      ];
-      users = {
-        groups.open_search = {};
-        users.open_search = {
-          description = "OpenSearch daemon user";
-          group = "open_search";
-          isSystemUser = true;
-        };
+    services.opensearch.dataDir = "/var/opensearch_test";
+    services.opensearch.user = "open_search";
+    services.opensearch.group = "open_search";
+    systemd.tmpfiles.rules = [
+      "d /var/opensearch_test 0700 open_search open_search -"
+    ];
+    users = {
+      groups.open_search = { };
+      users.open_search = {
+        description = "OpenSearch daemon user";
+        group = "open_search";
+        isSystemUser = true;
       };
     };
   };
diff --git a/nixpkgs/nixos/tests/pass-secret-service.nix b/nixpkgs/nixos/tests/pass-secret-service.nix
index e0dddf0ad29e..cdbdaa52dbc0 100644
--- a/nixpkgs/nixos/tests/pass-secret-service.nix
+++ b/nixpkgs/nixos/tests/pass-secret-service.nix
@@ -26,7 +26,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
 
       programs.gnupg = {
         agent.enable = true;
-        agent.pinentryFlavor = "tty";
         dirmngr.enable = true;
       };
     };
diff --git a/nixpkgs/nixos/tests/pg_anonymizer.nix b/nixpkgs/nixos/tests/pg_anonymizer.nix
new file mode 100644
index 000000000000..2960108e37c3
--- /dev/null
+++ b/nixpkgs/nixos/tests/pg_anonymizer.nix
@@ -0,0 +1,94 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
+  name = "pg_anonymizer";
+  meta.maintainers = lib.teams.flyingcircus.members;
+
+  nodes.machine = { pkgs, ... }: {
+    environment.systemPackages = [ pkgs.pg-dump-anon ];
+    services.postgresql = {
+      enable = true;
+      extraPlugins = ps: [ ps.anonymizer ];
+      settings.shared_preload_libraries = "anon";
+    };
+  };
+
+  testScript = ''
+    start_all()
+    machine.wait_for_unit("multi-user.target")
+    machine.wait_for_unit("postgresql.service")
+
+    with subtest("Setup"):
+        machine.succeed("sudo -u postgres psql --command 'create database demo'")
+        machine.succeed(
+            "sudo -u postgres psql -d demo -f ${pkgs.writeText "init.sql" ''
+              create extension anon cascade;
+              select anon.init();
+              create table player(id serial, name text, points int);
+              insert into player(id,name,points) values (1,'Foo', 23);
+              insert into player(id,name,points) values (2,'Bar',42);
+              security label for anon on column player.name is 'MASKED WITH FUNCTION anon.fake_last_name();';
+              security label for anon on column player.points is 'MASKED WITH VALUE NULL';
+            ''}"
+        )
+
+    def get_player_table_contents():
+        return [
+            x.split(',') for x in machine.succeed("sudo -u postgres psql -d demo --csv --command 'select * from player'").splitlines()[1:]
+        ]
+
+    def check_anonymized_row(row, id, original_name):
+        assert row[0] == id, f"Expected first row to have ID {id}, but got {row[0]}"
+        assert row[1] != original_name, f"Expected first row to have a name other than {original_name}"
+        assert not bool(row[2]), "Expected points to be NULL in first row"
+
+    def find_xsv_in_dump(dump, sep=','):
+        """
+        Expecting to find a CSV (for pg_dump_anon) or TSV (for pg_dump) structure, looking like
+
+            COPY public.player ...
+            1,Shields,
+            2,Salazar,
+            \.
+
+        in the given dump (the commas are tabs in case of pg_dump).
+              Extract the CSV lines and split by `sep`.
+        """
+
+        try:
+            from itertools import dropwhile, takewhile
+            return [x.split(sep) for x in list(takewhile(
+                lambda x: x != "\\.",
+                dropwhile(
+                    lambda x: not x.startswith("COPY public.player"),
+                    dump.splitlines()
+                )
+            ))[1:]]
+        except:
+            print(f"Dump to process: {dump}")
+            raise
+
+    def check_original_data(output):
+        assert output[0] == ['1','Foo','23'], f"Expected first row from player table to be 1,Foo,23; got {output[0]}"
+        assert output[1] == ['2','Bar','42'], f"Expected first row from player table to be 2,Bar,42; got {output[1]}"
+
+    def check_anonymized_rows(output):
+        check_anonymized_row(output[0], '1', 'Foo')
+        check_anonymized_row(output[1], '2', 'Bar')
+
+    with subtest("Check initial state"):
+        check_original_data(get_player_table_contents())
+
+    with subtest("Anonymous dumps"):
+        check_original_data(find_xsv_in_dump(
+            machine.succeed("sudo -u postgres pg_dump demo"),
+            sep='\t'
+        ))
+        check_anonymized_rows(find_xsv_in_dump(
+            machine.succeed("sudo -u postgres pg_dump_anon -U postgres -h /run/postgresql -d demo"),
+            sep=','
+        ))
+
+    with subtest("Anonymize"):
+        machine.succeed("sudo -u postgres psql -d demo --command 'select anon.anonymize_database();'")
+        check_anonymized_rows(get_player_table_contents())
+  '';
+})
diff --git a/nixpkgs/nixos/tests/pgvecto-rs.nix b/nixpkgs/nixos/tests/pgvecto-rs.nix
new file mode 100644
index 000000000000..cd871dab6a0f
--- /dev/null
+++ b/nixpkgs/nixos/tests/pgvecto-rs.nix
@@ -0,0 +1,76 @@
+# mostly copied from ./timescaledb.nix which was copied from ./postgresql.nix
+# as it seemed unapproriate to test additional extensions for postgresql there.
+
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../.. { inherit system config; }
+}:
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+with pkgs.lib;
+
+let
+  postgresql-versions = import ../../pkgs/servers/sql/postgresql pkgs;
+  # Test cases from https://docs.pgvecto.rs/use-cases/hybrid-search.html
+  test-sql = pkgs.writeText "postgresql-test" ''
+    CREATE EXTENSION vectors;
+
+    CREATE TABLE items (
+      id bigserial PRIMARY KEY,
+      content text NOT NULL,
+      embedding vectors.vector(3) NOT NULL -- 3 dimensions
+    );
+
+    INSERT INTO items (content, embedding) VALUES
+      ('a fat cat sat on a mat and ate a fat rat', '[1, 2, 3]'),
+      ('a fat dog sat on a mat and ate a fat rat', '[4, 5, 6]'),
+      ('a thin cat sat on a mat and ate a thin rat', '[7, 8, 9]'),
+      ('a thin dog sat on a mat and ate a thin rat', '[10, 11, 12]');
+  '';
+  make-postgresql-test = postgresql-name: postgresql-package: makeTest {
+    name = postgresql-name;
+    meta = with pkgs.lib.maintainers; {
+      maintainers = [ diogotcorreia ];
+    };
+
+    nodes.machine = { ... }:
+      {
+        services.postgresql = {
+          enable = true;
+          package = postgresql-package;
+          extraPlugins = ps: with ps; [
+            pgvecto-rs
+          ];
+          settings.shared_preload_libraries = "vectors";
+        };
+      };
+
+    testScript = ''
+      def check_count(statement, lines):
+          return 'test $(sudo -u postgres psql postgres -tAc "{}"|wc -l) -eq {}'.format(
+              statement, lines
+          )
+
+
+      machine.start()
+      machine.wait_for_unit("postgresql")
+
+      with subtest("Postgresql with extension vectors is available just after unit start"):
+          machine.succeed(check_count("SELECT * FROM pg_available_extensions WHERE name = 'vectors' AND default_version = '${postgresql-package.pkgs.pgvecto-rs.version}';", 1))
+
+      machine.succeed("sudo -u postgres psql -f ${test-sql}")
+
+      machine.succeed(check_count("SELECT content, embedding FROM items WHERE to_tsvector('english', content) @@ 'cat & rat'::tsquery;", 2))
+
+      machine.shutdown()
+    '';
+
+  };
+  applicablePostgresqlVersions = filterAttrs (_: value: versionAtLeast value.version "12") postgresql-versions;
+in
+mapAttrs'
+  (name: package: {
+    inherit name;
+    value = make-postgresql-test name package;
+  })
+  applicablePostgresqlVersions
diff --git a/nixpkgs/nixos/tests/privoxy.nix b/nixpkgs/nixos/tests/privoxy.nix
index 2d95c4522a01..2a18d332c877 100644
--- a/nixpkgs/nixos/tests/privoxy.nix
+++ b/nixpkgs/nixos/tests/privoxy.nix
@@ -77,6 +77,11 @@ in
     networking.proxy.httpsProxy = "http://localhost:8118";
   };
 
+  nodes.machine_socks4  = { ... }: { services.privoxy = { enable = true; settings.forward-socks4  = "/ 127.0.0.1:9050 ."; }; };
+  nodes.machine_socks4a = { ... }: { services.privoxy = { enable = true; settings.forward-socks4a = "/ 127.0.0.1:9050 ."; }; };
+  nodes.machine_socks5  = { ... }: { services.privoxy = { enable = true; settings.forward-socks5  = "/ 127.0.0.1:9050 ."; }; };
+  nodes.machine_socks5t = { ... }: { services.privoxy = { enable = true; settings.forward-socks5t = "/ 127.0.0.1:9050 ."; }; };
+
   testScript =
     ''
       with subtest("Privoxy is running"):
@@ -109,5 +114,13 @@ in
           machine.systemctl("start systemd-tmpfiles-clean")
           # ...and count again
           machine.succeed("test $(ls /run/privoxy/certs | wc -l) -eq 0")
+
+      with subtest("Privoxy supports socks upstream proxies"):
+          for m in [machine_socks4, machine_socks4a, machine_socks5, machine_socks5t]:
+              m.wait_for_unit("privoxy")
+              m.wait_for_open_port(8118)
+              # We expect a 503 error because the dummy upstream proxy is not reachable.
+              # In issue #265654, instead privoxy segfaulted causing curl to exit with "Empty reply from server".
+              m.succeed("http_proxy=http://localhost:8118 curl -v http://does-not-exist/ 2>&1 | grep 'HTTP/1.1 503'")
     '';
 })
diff --git a/nixpkgs/nixos/tests/prometheus-exporters.nix b/nixpkgs/nixos/tests/prometheus-exporters.nix
index 632656ad5795..3dc368e320ff 100644
--- a/nixpkgs/nixos/tests/prometheus-exporters.nix
+++ b/nixpkgs/nixos/tests/prometheus-exporters.nix
@@ -418,54 +418,6 @@ let
       '';
     };
 
-    kea = let
-      controlSocketPathV4 = "/run/kea/dhcp4.sock";
-      controlSocketPathV6 = "/run/kea/dhcp6.sock";
-    in
-    {
-      exporterConfig = {
-        enable = true;
-        controlSocketPaths = [
-          controlSocketPathV4
-          controlSocketPathV6
-        ];
-      };
-      metricProvider = {
-        services.kea = {
-          dhcp4 = {
-            enable = true;
-            settings = {
-              control-socket = {
-                socket-type = "unix";
-                socket-name = controlSocketPathV4;
-              };
-            };
-          };
-          dhcp6 = {
-            enable = true;
-            settings = {
-              control-socket = {
-                socket-type = "unix";
-                socket-name = controlSocketPathV6;
-              };
-            };
-          };
-        };
-      };
-
-      exporterTest = ''
-        wait_for_unit("kea-dhcp4-server.service")
-        wait_for_unit("kea-dhcp6-server.service")
-        wait_for_file("${controlSocketPathV4}")
-        wait_for_file("${controlSocketPathV6}")
-        wait_for_unit("prometheus-kea-exporter.service")
-        wait_for_open_port(9547)
-        succeed(
-            "curl --fail localhost:9547/metrics | grep 'packets_received_total'"
-        )
-      '';
-    };
-
     knot = {
       exporterConfig = {
         enable = true;
diff --git a/nixpkgs/nixos/tests/redlib.nix b/nixpkgs/nixos/tests/redlib.nix
new file mode 100644
index 000000000000..e4bde25e30a6
--- /dev/null
+++ b/nixpkgs/nixos/tests/redlib.nix
@@ -0,0 +1,20 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }: {
+  name = "redlib";
+  meta.maintainers = with lib.maintainers; [ soispha ];
+
+  nodes.machine = {
+    services.libreddit = {
+      package = pkgs.redlib;
+      enable = true;
+      # Test CAP_NET_BIND_SERVICE
+      port = 80;
+    };
+  };
+
+  testScript = ''
+    machine.wait_for_unit("libreddit.service")
+    machine.wait_for_open_port(80)
+    # Query a page that does not require Internet access
+    machine.succeed("curl --fail http://localhost:80/settings")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/systemd-machinectl.nix b/nixpkgs/nixos/tests/systemd-machinectl.nix
index b8ed0c33e8e4..02b4d9c590b5 100644
--- a/nixpkgs/nixos/tests/systemd-machinectl.nix
+++ b/nixpkgs/nixos/tests/systemd-machinectl.nix
@@ -42,8 +42,18 @@ import ./make-test-python.nix ({ pkgs, ... }:
 
       virtualisation.additionalPaths = [ containerSystem ];
 
-      # not needed, but we want to test the nspawn file generation
-      systemd.nspawn.${containerName} = { };
+      systemd.tmpfiles.rules = [
+        "d /var/lib/machines/shared-decl 0755 root root - -"
+      ];
+      systemd.nspawn.shared-decl = {
+        execConfig = {
+          Boot = false;
+          Parameters = "${containerSystem}/init";
+        };
+        filesConfig = {
+          BindReadOnly = "/nix/store";
+        };
+      };
 
       systemd.services."systemd-nspawn@${containerName}" = {
         serviceConfig.Environment = [
@@ -52,14 +62,33 @@ import ./make-test-python.nix ({ pkgs, ... }:
         ];
         overrideStrategy = "asDropin";
       };
+
+      # open DHCP for container
+      networking.firewall.extraCommands = ''
+        ${pkgs.iptables}/bin/iptables -A nixos-fw -i ve-+ -p udp -m udp --dport 67 -j nixos-fw-accept
+      '';
     };
 
     testScript = ''
       start_all()
       machine.wait_for_unit("default.target");
 
-      # Install container
+      # Test machinectl start stop of shared-decl
+      machine.succeed("machinectl start shared-decl");
+      machine.wait_until_succeeds("systemctl -M shared-decl is-active default.target");
+      machine.succeed("machinectl stop shared-decl");
+
+      # create containers root
       machine.succeed("mkdir -p ${containerRoot}");
+
+      # start container with shared nix store by using same arguments as for systemd-nspawn@.service
+      machine.succeed("systemd-run systemd-nspawn --machine=${containerName} --network-veth -U --bind-ro=/nix/store ${containerSystem}/init")
+      machine.wait_until_succeeds("systemctl -M ${containerName} is-active default.target");
+
+      # Test machinectl stop
+      machine.succeed("machinectl stop ${containerName}");
+
+      # Install container
       # Workaround for nixos-install
       machine.succeed("chmod o+rx /var/lib/machines");
       machine.succeed("nixos-install --root ${containerRoot} --system ${containerSystem} --no-channel-copy --no-root-passwd");
@@ -77,6 +106,12 @@ import ./make-test-python.nix ({ pkgs, ... }:
       # Test nss_mymachines via nscd
       machine.succeed("getent hosts ${containerName}");
 
+      # Test systemd-nspawn network configuration to container
+      machine.succeed("networkctl --json=short status ve-${containerName} | ${pkgs.jq}/bin/jq -e '.OperationalState == \"routable\"'");
+
+      # Test systemd-nspawn network configuration to host
+      machine.succeed("machinectl shell ${containerName} /run/current-system/sw/bin/networkctl --json=short status host0 | ${pkgs.jq}/bin/jq -r '.OperationalState == \"routable\"'");
+
       # Test systemd-nspawn network configuration
       machine.succeed("ping -n -c 1 ${containerName}");
 
diff --git a/nixpkgs/nixos/tests/vscodium.nix b/nixpkgs/nixos/tests/vscodium.nix
index d817ce927ff8..76d5244b3ee3 100644
--- a/nixpkgs/nixos/tests/vscodium.nix
+++ b/nixpkgs/nixos/tests/vscodium.nix
@@ -76,4 +76,4 @@ let
     });
 
 in
-builtins.mapAttrs (k: v: mkTest k v { }) tests
+builtins.mapAttrs (k: v: mkTest k v) tests
diff --git a/nixpkgs/nixos/tests/web-apps/gotosocial.nix b/nixpkgs/nixos/tests/web-apps/gotosocial.nix
index 6d279ab63a79..8c4e76b14e3b 100644
--- a/nixpkgs/nixos/tests/web-apps/gotosocial.nix
+++ b/nixpkgs/nixos/tests/web-apps/gotosocial.nix
@@ -1,7 +1,7 @@
 { lib, ... }:
 {
   name = "gotosocial";
-  meta.maintainers = with lib.maintainers; [ misuzu ];
+  meta.maintainers = with lib.maintainers; [ misuzu blakesmith ];
 
   nodes.machine = { pkgs, ... }: {
     environment.systemPackages = [ pkgs.jq ];
diff --git a/nixpkgs/nixos/tests/web-apps/pretix.nix b/nixpkgs/nixos/tests/web-apps/pretix.nix
new file mode 100644
index 000000000000..559316f9b85c
--- /dev/null
+++ b/nixpkgs/nixos/tests/web-apps/pretix.nix
@@ -0,0 +1,47 @@
+{
+  lib,
+  pkgs,
+  ...
+}:
+
+{
+  name = "pretix";
+  meta.maintainers = with lib.maintainers; [ hexa ];
+
+  nodes = {
+    pretix = {
+      networking.extraHosts = ''
+        127.0.0.1 tickets.local
+      '';
+
+      services.pretix = {
+        enable = true;
+        nginx.domain = "tickets.local";
+        plugins = with pkgs.pretix.plugins; [
+          passbook
+          pages
+        ];
+        settings = {
+          pretix = {
+            instance_name = "NixOS Test";
+            url = "http://tickets.local";
+          };
+          mail.from = "hello@tickets.local";
+        };
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+
+    pretix.wait_for_unit("pretix-web.service")
+    pretix.wait_for_unit("pretix-worker.service")
+
+    pretix.wait_until_succeeds("curl -q --fail http://tickets.local")
+
+    pretix.succeed("pretix-manage --help")
+
+    pretix.log(pretix.succeed("systemd-analyze security pretix-web.service"))
+  '';
+}
diff --git a/nixpkgs/pkgs/README.md b/nixpkgs/pkgs/README.md
index 837a99f07e7f..f8a79acdbd29 100644
--- a/nixpkgs/pkgs/README.md
+++ b/nixpkgs/pkgs/README.md
@@ -65,6 +65,8 @@ Now that this is out of the way. To add a package to Nixpkgs:
    $ git add pkgs/by-name/so/some-package/package.nix
    ```
 
+   If the package is written in a language other than C, you should use [the corresponding language framework](https://nixos.org/manual/nixpkgs/stable/#chap-language-support).
+
    You can have a look at the existing Nix expressions under `pkgs/` to see how it’s done, some of which are also using the [category hierarchy](#category-hierarchy).
    Here are some good ones:
 
@@ -176,7 +178,7 @@ For example, the `libxml2` package builds both a library and some tools; but itâ
 
   - **If it’s a _language server_:**
 
-    - `development/tools/language-servers` (e.g. `ccls` or `rnix-lsp`)
+    - `development/tools/language-servers` (e.g. `ccls` or `nil`)
 
   - **Else:**
 
diff --git a/nixpkgs/pkgs/applications/audio/alsa-scarlett-gui/default.nix b/nixpkgs/pkgs/applications/audio/alsa-scarlett-gui/default.nix
index de4f8b3db98a..2b5aea7e5843 100644
--- a/nixpkgs/pkgs/applications/audio/alsa-scarlett-gui/default.nix
+++ b/nixpkgs/pkgs/applications/audio/alsa-scarlett-gui/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GUI for alsa controls presented by Focusrite Scarlett Gen 2/3 Mixer Driver";
+    mainProgram = "alsa-scarlett-gui";
     homepage = "https://github.com/geoffreybennett/alsa-scarlett-gui";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ sebtm ];
diff --git a/nixpkgs/pkgs/applications/audio/ams/default.nix b/nixpkgs/pkgs/applications/audio/ams/default.nix
index c51dced37724..9086bfc33387 100644
--- a/nixpkgs/pkgs/applications/audio/ams/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ams/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Realtime modular synthesizer for ALSA";
+    mainProgram = "ams";
     homepage = "https://alsamodular.sourceforge.net";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/ario/default.nix b/nixpkgs/pkgs/applications/audio/ario/default.nix
index 5b956e8f5961..b9e14f486b7a 100644
--- a/nixpkgs/pkgs/applications/audio/ario/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ario/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GTK client for MPD (Music player daemon)";
+    mainProgram = "ario";
     homepage = "https://ario-player.sourceforge.net/";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.garrison ];
diff --git a/nixpkgs/pkgs/applications/audio/asunder/default.nix b/nixpkgs/pkgs/applications/audio/asunder/default.nix
index dbaef1cf2acf..8e209a4717fa 100644
--- a/nixpkgs/pkgs/applications/audio/asunder/default.nix
+++ b/nixpkgs/pkgs/applications/audio/asunder/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A graphical Audio CD ripper and encoder for Linux";
+    mainProgram = "asunder";
     homepage = "http://littlesvr.ca/asunder/index.php";
     license = licenses.gpl2;
     maintainers = with maintainers; [ mudri ];
diff --git a/nixpkgs/pkgs/applications/audio/audacity/default.nix b/nixpkgs/pkgs/applications/audio/audacity/default.nix
index f476b3c8a8e6..74af177d0e27 100644
--- a/nixpkgs/pkgs/applications/audio/audacity/default.nix
+++ b/nixpkgs/pkgs/applications/audio/audacity/default.nix
@@ -190,6 +190,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Sound editor with graphical UI";
+    mainProgram = "audacity";
     homepage = "https://www.audacityteam.org";
     changelog = "https://github.com/audacity/audacity/releases";
     license = with licenses; [
diff --git a/nixpkgs/pkgs/applications/audio/audio-recorder/default.nix b/nixpkgs/pkgs/applications/audio/audio-recorder/default.nix
index aaf6777533ff..72d31e2966ff 100644
--- a/nixpkgs/pkgs/applications/audio/audio-recorder/default.nix
+++ b/nixpkgs/pkgs/applications/audio/audio-recorder/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Audio recorder for GNOME and Unity Desktops";
+    mainProgram = "audio-recorder";
     longDescription = ''
       This program allows you to record your favourite music or audio to a file.
       It can record audio from your system soundcard, microphones, browsers and
diff --git a/nixpkgs/pkgs/applications/audio/bambootracker/default.nix b/nixpkgs/pkgs/applications/audio/bambootracker/default.nix
index 6c1bd006c7a6..5ebc2caf0f71 100644
--- a/nixpkgs/pkgs/applications/audio/bambootracker/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bambootracker/default.nix
@@ -76,6 +76,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
+    mainProgram = "BambooTracker";
     homepage = "https://bambootracker.github.io/BambooTracker/";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
index 93296b3eff0b..3ec595e3e8bb 100644
--- a/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
+++ b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio5.nix
@@ -27,11 +27,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwig-studio";
-  version = "5.1.3";
+  version = "5.1.6";
 
   src = fetchurl {
     url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
-    sha256 = "sha256-1/iKezOD2HCym6JBXRa9rGpjolJjrxRZA4vwfgZyVng=";
+    sha256 = "sha256-U1Qp7/7kAr1IEcv256I2J/sb5MYxfR20Pi5N8WaVh2U=";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/audio/blanket/default.nix b/nixpkgs/pkgs/applications/audio/blanket/default.nix
index 5a3d9949f8c5..4b08f8cf223a 100644
--- a/nixpkgs/pkgs/applications/audio/blanket/default.nix
+++ b/nixpkgs/pkgs/applications/audio/blanket/default.nix
@@ -59,6 +59,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/rafaelmardojai/blanket";
     description = "Listen to different sounds";
+    mainProgram = "blanket";
     maintainers = with maintainers; [ onny ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/bucklespring/default.nix b/nixpkgs/pkgs/applications/audio/bucklespring/default.nix
index dbdef66c5bc4..ccc25da4f1ed 100644
--- a/nixpkgs/pkgs/applications/audio/bucklespring/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bucklespring/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Nostalgia bucklespring keyboard sound";
+    mainProgram = "buckle";
     longDescription = ''
       When built with libinput (wayland or bare console),
       users need to be in the input group to use this:
diff --git a/nixpkgs/pkgs/applications/audio/cantata/default.nix b/nixpkgs/pkgs/applications/audio/cantata/default.nix
index c5f3cfe5b68f..0d5c85625253 100644
--- a/nixpkgs/pkgs/applications/audio/cantata/default.nix
+++ b/nixpkgs/pkgs/applications/audio/cantata/default.nix
@@ -111,6 +111,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A graphical client for MPD";
+    mainProgram = "cantata";
     homepage = "https://github.com/cdrummond/cantata";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/applications/audio/castopod/default.nix b/nixpkgs/pkgs/applications/audio/castopod/default.nix
index 9d9f83e2ecce..801368a131cf 100644
--- a/nixpkgs/pkgs/applications/audio/castopod/default.nix
+++ b/nixpkgs/pkgs/applications/audio/castopod/default.nix
@@ -7,11 +7,11 @@
 }:
 stdenv.mkDerivation {
   pname = "castopod";
-  version = "1.6.4";
+  version = "1.10.5";
 
   src = fetchurl {
-    url = "https://code.castopod.org/adaures/castopod/uploads/ce56d4f149242f12bedd20f9a2b0916d/castopod-1.6.4.tar.gz";
-    sha256 = "080jj91yxbn3xsbs0sywzwa2f5in9bp9qi2zwqcfqpaxlq9ga62v";
+    url = "https://code.castopod.org/adaures/castopod/uploads/66de724407be8f940af5eb1d633fbbc3/castopod-1.10.5.tar.gz";
+    sha256 = "0ssdgqxqldg2f6ni54k5vlndnjjy9lah47q1crpz5nnkkjgvc96y";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/applications/audio/cd-discid/default.nix b/nixpkgs/pkgs/applications/audio/cd-discid/default.nix
index 16c574e8d038..e13a64e4bd83 100644
--- a/nixpkgs/pkgs/applications/audio/cd-discid/default.nix
+++ b/nixpkgs/pkgs/applications/audio/cd-discid/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     description = "Command-line utility to get CDDB discid information from a CD-ROM disc";
+    mainProgram = "cd-discid";
 
     longDescription = ''
       cd-discid is a backend utility to get CDDB discid information
diff --git a/nixpkgs/pkgs/applications/audio/cider/default.nix b/nixpkgs/pkgs/applications/audio/cider/default.nix
index 96f0ab0f706a..315fa2c9a65b 100644
--- a/nixpkgs/pkgs/applications/audio/cider/default.nix
+++ b/nixpkgs/pkgs/applications/audio/cider/default.nix
@@ -23,7 +23,7 @@ appimageTools.wrapType2 rec {
   meta = with lib; {
     description = "A new look into listening and enjoying Apple Music in style and performance.";
     homepage = "https://github.com/ciderapp/Cider";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = [ maintainers.cigrainger ];
     platforms = [ "x86_64-linux" ];
     mainProgram = "cider";
diff --git a/nixpkgs/pkgs/applications/audio/cplay-ng/default.nix b/nixpkgs/pkgs/applications/audio/cplay-ng/default.nix
index d4eb815bd14c..caecd35bed18 100644
--- a/nixpkgs/pkgs/applications/audio/cplay-ng/default.nix
+++ b/nixpkgs/pkgs/applications/audio/cplay-ng/default.nix
@@ -29,6 +29,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/xi/cplay-ng";
     description = "Simple curses audio player";
+    mainProgram = "cplay-ng";
     longDescription = ''
       cplay is a minimalist music player with a textual user interface written
       in Python. It aims to provide a power-user-friendly interface with simple
diff --git a/nixpkgs/pkgs/applications/audio/curseradio/default.nix b/nixpkgs/pkgs/applications/audio/curseradio/default.nix
index 94059e06e546..0faa58b99884 100644
--- a/nixpkgs/pkgs/applications/audio/curseradio/default.nix
+++ b/nixpkgs/pkgs/applications/audio/curseradio/default.nix
@@ -29,6 +29,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Command line radio player";
+    mainProgram = "curseradio";
     homepage = "https://github.com/chronitis/curseradio";
     license = licenses.mit;
     maintainers = [ maintainers.eyjhb ];
diff --git a/nixpkgs/pkgs/applications/audio/deadbeef/default.nix b/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
index 2c08477d07a0..f26fd4903726 100644
--- a/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
+++ b/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
@@ -130,6 +130,7 @@ in clangStdenv.mkDerivation {
 
   meta = with lib; {
     description = "Ultimate Music Player for GNU/Linux";
+    mainProgram = "deadbeef";
     homepage = "http://deadbeef.sourceforge.net/";
     downloadPage = "https://github.com/DeaDBeeF-Player/deadbeef";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/applications/audio/dfasma/default.nix b/nixpkgs/pkgs/applications/audio/dfasma/default.nix
index cb2ac2b9e0bf..78ab9c8a5f4f 100644
--- a/nixpkgs/pkgs/applications/audio/dfasma/default.nix
+++ b/nixpkgs/pkgs/applications/audio/dfasma/default.nix
@@ -49,6 +49,7 @@ in mkDerivation rec {
 
   meta = with lib; {
     description = "Analyse and compare audio files in time and frequency";
+    mainProgram = "dfasma";
     longDescription = ''
       DFasma is free open-source software to compare audio files by time and
       frequency. The comparison is first visual, using wavforms and spectra. It
diff --git a/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix b/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix
index 649c0f39097f..6ae27b93f29e 100644
--- a/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix
+++ b/nixpkgs/pkgs/applications/audio/dr14_tmeter/default.nix
@@ -22,6 +22,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Compute the DR14 of a given audio file according to the procedure described by the Pleasurize Music Foundation";
+    mainProgram = "dr14_tmeter";
     license = licenses.gpl3Plus;
     homepage = "http://dr14tmeter.sourceforge.net/";
     maintainers = [ maintainers.adisbladis ];
diff --git a/nixpkgs/pkgs/applications/audio/drumkv1/default.nix b/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
index 30d6328b5758..8dfb00318c15 100644
--- a/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
+++ b/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
@@ -15,6 +15,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "An old-school drum-kit sampler synthesizer with stereo fx";
+    mainProgram = "drumkv1_jack";
     homepage = "http://drumkv1.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/easyabc/default.nix b/nixpkgs/pkgs/applications/audio/easyabc/default.nix
index edf6e3596aa2..9fb792626ac2 100644
--- a/nixpkgs/pkgs/applications/audio/easyabc/default.nix
+++ b/nixpkgs/pkgs/applications/audio/easyabc/default.nix
@@ -73,6 +73,7 @@ in python.pkgs.buildPythonApplication {
 
   meta = {
     description = "ABC music notation editor";
+    mainProgram = "easyabc";
     homepage = "https://easyabc.sourceforge.net/";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/easyeffects/default.nix b/nixpkgs/pkgs/applications/audio/easyeffects/default.nix
index dd998050ac70..81fb1efe5083 100644
--- a/nixpkgs/pkgs/applications/audio/easyeffects/default.nix
+++ b/nixpkgs/pkgs/applications/audio/easyeffects/default.nix
@@ -41,13 +41,13 @@
 
 stdenv.mkDerivation rec {
   pname = "easyeffects";
-  version = "7.1.4";
+  version = "7.1.5";
 
   src = fetchFromGitHub {
     owner = "wwmm";
     repo = "easyeffects";
     rev = "v${version}";
-    hash = "sha256-UNS7kHyxHB4VneELXGn2G8T8EeKUpjb1ib2q0G+gf/s=";
+    hash = "sha256-QoH1dOzBtQHQQKA0+eZFX6yOvjRUmUZVxcdpISIpLLk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/easytag/default.nix b/nixpkgs/pkgs/applications/audio/easytag/default.nix
index d55fd7ff0cb6..6d3fd8f1d17d 100644
--- a/nixpkgs/pkgs/applications/audio/easytag/default.nix
+++ b/nixpkgs/pkgs/applications/audio/easytag/default.nix
@@ -33,6 +33,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "View and edit tags for various audio files";
+    mainProgram = "easytag";
     homepage = "https://wiki.gnome.org/Apps/EasyTAG";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/audio/espeak/default.nix b/nixpkgs/pkgs/applications/audio/espeak/default.nix
index 7164cb5fd3e0..4693995883d9 100644
--- a/nixpkgs/pkgs/applications/audio/espeak/default.nix
+++ b/nixpkgs/pkgs/applications/audio/espeak/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Compact open source software speech synthesizer";
+    mainProgram = "espeak";
     homepage = "https://espeak.sourceforge.net/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/espeak/edit.nix b/nixpkgs/pkgs/applications/audio/espeak/edit.nix
index 6c4da056c848..4be2f404f60f 100644
--- a/nixpkgs/pkgs/applications/audio/espeak/edit.nix
+++ b/nixpkgs/pkgs/applications/audio/espeak/edit.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Phoneme editor for espeak";
+    mainProgram = "espeakedit";
     homepage = "https://espeak.sourceforge.net/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/exaile/default.nix b/nixpkgs/pkgs/applications/audio/exaile/default.nix
index 77054b2d9144..a2f75fd85a70 100644
--- a/nixpkgs/pkgs/applications/audio/exaile/default.nix
+++ b/nixpkgs/pkgs/applications/audio/exaile/default.nix
@@ -93,6 +93,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.exaile.org/";
     description = "A music player with a simple interface and powerful music management capabilities";
+    mainProgram = "exaile";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ryneeverett ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/audio/faust/faustlive.nix b/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
index 1d91f561c044..3826bb8b4bad 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
@@ -86,6 +86,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A standalone just-in-time Faust compiler";
+    mainProgram = "FaustLive";
     longDescription = ''
       FaustLive is a standalone just-in-time Faust compiler. It tries to bring
       together the convenience of a standalone interpreted language with the
diff --git a/nixpkgs/pkgs/applications/audio/fdkaac/default.nix b/nixpkgs/pkgs/applications/audio/fdkaac/default.nix
index 2350bde0bd6a..55e014e001fb 100644
--- a/nixpkgs/pkgs/applications/audio/fdkaac/default.nix
+++ b/nixpkgs/pkgs/applications/audio/fdkaac/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Command line encoder frontend for libfdk-aac encoder";
+    mainProgram = "fdkaac";
     longDescription = ''
       fdkaac reads linear PCM audio in either WAV, raw PCM, or CAF format,
       and encodes it into either M4A / AAC file.
diff --git a/nixpkgs/pkgs/applications/audio/flac2all/default.nix b/nixpkgs/pkgs/applications/audio/flac2all/default.nix
index 4a6132d39af3..7020879eae9b 100644
--- a/nixpkgs/pkgs/applications/audio/flac2all/default.nix
+++ b/nixpkgs/pkgs/applications/audio/flac2all/default.nix
@@ -37,6 +37,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Multi process, clustered, FLAC to multi codec audio converter with tagging support";
+    mainProgram = "flac2all";
     homepage = "https://github.com/ZivaVatra/flac2all";
     license = licenses.gpl3;
     # TODO: This has only been tested on Linux, but may work on Mac too.
diff --git a/nixpkgs/pkgs/applications/audio/flacon/default.nix b/nixpkgs/pkgs/applications/audio/flacon/default.nix
index b5d57e5a6178..a06efc1c78ea 100644
--- a/nixpkgs/pkgs/applications/audio/flacon/default.nix
+++ b/nixpkgs/pkgs/applications/audio/flacon/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description =
       "Extracts audio tracks from an audio CD image to separate tracks";
+    mainProgram = "flacon";
     homepage = "https://flacon.github.io/";
     license = licenses.lgpl21;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/friture/default.nix b/nixpkgs/pkgs/applications/audio/friture/default.nix
index eb702d086312..60a098bb1ab8 100644
--- a/nixpkgs/pkgs/applications/audio/friture/default.nix
+++ b/nixpkgs/pkgs/applications/audio/friture/default.nix
@@ -49,6 +49,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A real-time audio analyzer";
+    mainProgram = "friture";
     homepage = "https://friture.org/";
     license = licenses.gpl3;
     platforms = platforms.linux; # fails on Darwin
diff --git a/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix b/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
index ad4691e1ffa7..0587fc8d4bbb 100644
--- a/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ft2-clone";
-  version = "1.76";
+  version = "1.79.2";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    hash = "sha256-oVQ1B7rYZX2kHTY8jVVm3rkOLx499kiEvhkv2V94W9k=";
+    hash = "sha256-/RZXtSjJ0nRtlMreT4M/IYQpdv/UXjVJaHMld9wwaUw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/audio/g4music/default.nix b/nixpkgs/pkgs/applications/audio/g4music/default.nix
index ed8b067ade32..bbb31c114659 100644
--- a/nixpkgs/pkgs/applications/audio/g4music/default.nix
+++ b/nixpkgs/pkgs/applications/audio/g4music/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A beautiful, fast, fluent, light weight music player written in GTK4";
+    mainProgram = "g4music";
     homepage = "https://gitlab.gnome.org/neithern/g4music";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ magnouvean ];
diff --git a/nixpkgs/pkgs/applications/audio/giada/default.nix b/nixpkgs/pkgs/applications/audio/giada/default.nix
index 0b272226f19a..7008e6a53155 100644
--- a/nixpkgs/pkgs/applications/audio/giada/default.nix
+++ b/nixpkgs/pkgs/applications/audio/giada/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A free, minimal, hardcore audio tool for DJs, live performers and electronic musicians";
+    mainProgram = "giada";
     homepage = "https://giadamusic.com/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ kashw2 ];
diff --git a/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix b/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
index 8753b1893ea3..bba557913297 100644
--- a/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
+++ b/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Listen to your favorite podcasts";
+    mainProgram = "gnome-podcasts";
     homepage = "https://wiki.gnome.org/Apps/Podcasts";
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/applications/audio/goattracker/default.nix b/nixpkgs/pkgs/applications/audio/goattracker/default.nix
index 148dd8788634..17373c1d5a52 100644
--- a/nixpkgs/pkgs/applications/audio/goattracker/default.nix
+++ b/nixpkgs/pkgs/applications/audio/goattracker/default.nix
@@ -58,7 +58,7 @@ in stdenv.mkDerivation (finalAttrs: {
 
     convert goattrk2.bmp goattracker.png
     install -Dm644 goattracker.png $out/share/icons/hicolor/32x32/apps/goattracker.png
-    install -Dm644 ../linux/goattracker.1 -t $out/share/man/man1/goattracker.1
+    ${lib.optionalString (!isStereo) "install -Dm644 ../linux/goattracker.1 $out/share/man/man1/goattracker.1"}
 
     runHook postInstall
   '';
diff --git a/nixpkgs/pkgs/applications/audio/greg/default.nix b/nixpkgs/pkgs/applications/audio/greg/default.nix
index 2193447c02c7..5e6d5e2583ab 100644
--- a/nixpkgs/pkgs/applications/audio/greg/default.nix
+++ b/nixpkgs/pkgs/applications/audio/greg/default.nix
@@ -18,6 +18,7 @@ with pythonPackages; buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/manolomartinez/greg";
     description = "A command-line podcast aggregator";
+    mainProgram = "greg";
     license = licenses.gpl3;
     maintainers = with maintainers; [ edwtjo ];
   };
diff --git a/nixpkgs/pkgs/applications/audio/gtkpod/default.nix b/nixpkgs/pkgs/applications/audio/gtkpod/default.nix
deleted file mode 100644
index ba73a5aae109..000000000000
--- a/nixpkgs/pkgs/applications/audio/gtkpod/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib, stdenv, fetchurl, pkg-config, wrapGAppsHook, intltool, libgpod, libxml2, curl, flac
-, gnome, gtk3, gettext, perlPackages, flex, libid3tag, gdl
-, libvorbis, gdk-pixbuf
-}:
-
-stdenv.mkDerivation rec {
-  version = "2.1.5";
-  pname = "gtkpod";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/gtkpod/${pname}-${version}.tar.gz";
-    sha256 = "0xisrpx069f7bjkyc8vqxb4k0480jmx1wscqxr6cpq1qj6pchzd5";
-  };
-  postPatch = ''
-    sed -i 's/which/type -P/' scripts/*.sh
-  '';
-
-  nativeBuildInputs = [ pkg-config wrapGAppsHook intltool ];
-  buildInputs = [
-    curl gettext
-    flex libgpod libid3tag flac libvorbis libxml2 gtk3 gdk-pixbuf
-    gdl gnome.adwaita-icon-theme gnome.anjuta
-  ] ++ (with perlPackages; [ perl XMLParser ]);
-
-  # Workaround build failure on -fno-common toolchains like upstream
-  # gcc-10. Otherwise build fails as:
-  #   ld: .libs/autodetection.o:/build/gtkpod-2.1.5/libgtkpod/gtkpod_app_iface.h:248: multiple definition of
-  #       `gtkpod_app'; .libs/gtkpod_app_iface.o:/build/gtkpod-2.1.5/libgtkpod/gtkpod_app_iface.h:248: first defined here
-  env.NIX_CFLAGS_COMPILE = "-fcommon";
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "GTK Manager for an Apple ipod";
-    homepage = "https://sourceforge.net/projects/gtkpod/";
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-    maintainers = [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/audio/guitarix/default.nix b/nixpkgs/pkgs/applications/audio/guitarix/default.nix
index 84308d59d44c..2134370eac9f 100644
--- a/nixpkgs/pkgs/applications/audio/guitarix/default.nix
+++ b/nixpkgs/pkgs/applications/audio/guitarix/default.nix
@@ -117,6 +117,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A virtual guitar amplifier for Linux running with JACK";
+    mainProgram = "guitarix";
     longDescription = ''
         guitarix is a virtual guitar amplifier for Linux running with
       JACK (Jack Audio Connection Kit). It is free as in speech and
diff --git a/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix b/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix
index 0b92b23d1800..eaaa197a9c6a 100644
--- a/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix
+++ b/nixpkgs/pkgs/applications/audio/helio-workstation/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "One music sequencer for all major platforms, both desktop and mobile";
+    mainProgram = "helio";
     homepage = "https://helio.fm/";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.suhr ];
diff --git a/nixpkgs/pkgs/applications/audio/hushboard/default.nix b/nixpkgs/pkgs/applications/audio/hushboard/default.nix
index f0fde190db99..3248ab35b22c 100644
--- a/nixpkgs/pkgs/applications/audio/hushboard/default.nix
+++ b/nixpkgs/pkgs/applications/audio/hushboard/default.nix
@@ -67,6 +67,7 @@ buildPythonApplication {
     homepage = "https://kryogenix.org/code/hushboard/";
     license = licenses.mit;
     description = "Mute your microphone while typing";
+    mainProgram = "hushboard";
     platforms = platforms.linux;
     maintainers = with maintainers; [ sersorrel ];
   };
diff --git a/nixpkgs/pkgs/applications/audio/iannix/default.nix b/nixpkgs/pkgs/applications/audio/iannix/default.nix
index 31f0bbbb4c7d..f55fcdfd3601 100644
--- a/nixpkgs/pkgs/applications/audio/iannix/default.nix
+++ b/nixpkgs/pkgs/applications/audio/iannix/default.nix
@@ -21,6 +21,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical open-source sequencer";
+    mainProgram = "iannix";
     homepage = "https://www.iannix.org/";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/in-formant/default.nix b/nixpkgs/pkgs/applications/audio/in-formant/default.nix
index 3df72add7f6b..89e7e876af8e 100644
--- a/nixpkgs/pkgs/applications/audio/in-formant/default.nix
+++ b/nixpkgs/pkgs/applications/audio/in-formant/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A real-time pitch and formant tracking software";
+    mainProgram = "in-formant";
     homepage = "https://github.com/in-formant/in-formant";
     license = licenses.asl20;
     # currently broken on i686-linux and aarch64-linux due to other nixpkgs dependencies
diff --git a/nixpkgs/pkgs/applications/audio/indicator-sound-switcher/default.nix b/nixpkgs/pkgs/applications/audio/indicator-sound-switcher/default.nix
index 6610e53e2cc7..c47aff47fffe 100644
--- a/nixpkgs/pkgs/applications/audio/indicator-sound-switcher/default.nix
+++ b/nixpkgs/pkgs/applications/audio/indicator-sound-switcher/default.nix
@@ -54,6 +54,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Sound input/output selector indicator for Linux";
+    mainProgram = "indicator-sound-switcher";
     homepage = "https://yktoo.com/en/software/sound-switcher-indicator/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ alexnortung ];
diff --git a/nixpkgs/pkgs/applications/audio/jack-autoconnect/default.nix b/nixpkgs/pkgs/applications/audio/jack-autoconnect/default.nix
index 302571c2be4d..d4fd50ca4f6d 100644
--- a/nixpkgs/pkgs/applications/audio/jack-autoconnect/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jack-autoconnect/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
     homepage = "https://github.com/kripton/jack_autoconnect";
     description =
       "Tiny application that reacts on port registrations by clients and connects them";
+    mainProgram = "jack_autoconnect";
     maintainers = with maintainers; [ unclechu ];
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/jack-capture/default.nix b/nixpkgs/pkgs/applications/audio/jack-capture/default.nix
index e0b761a70f90..62fa23be2e5b 100644
--- a/nixpkgs/pkgs/applications/audio/jack-capture/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jack-capture/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A program for recording soundfiles with jack";
+    mainProgram = "jack_capture";
     homepage = "https://github.com/kmatheussen/jack_capture/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ goibhniu orivej ];
diff --git a/nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix b/nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix
index 9905d072361e..8cdac43a3882 100644
--- a/nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jack-oscrolloscope/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple waveform viewer for JACK";
+    mainProgram = "jack_oscrolloscope";
     homepage = "http://das.nasophon.de/jack_oscrolloscope";
     license = licenses.gpl2;
     maintainers = [ maintainers.goibhniu ];
diff --git a/nixpkgs/pkgs/applications/audio/jackmix/default.nix b/nixpkgs/pkgs/applications/audio/jackmix/default.nix
index b34c7fbc1801..86c8a91862e7 100644
--- a/nixpkgs/pkgs/applications/audio/jackmix/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jackmix/default.nix
@@ -36,6 +36,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Matrix-Mixer for the Jack-Audio-connection-Kit";
+    mainProgram = "jackmix";
     homepage = "https://github.com/kampfschlaefer/jackmix";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ kampfschlaefer ];
diff --git a/nixpkgs/pkgs/applications/audio/jacktrip/default.nix b/nixpkgs/pkgs/applications/audio/jacktrip/default.nix
index fc7b636e97af..150f05c5f53e 100644
--- a/nixpkgs/pkgs/applications/audio/jacktrip/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jacktrip/default.nix
@@ -11,7 +11,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.2.2";
+  version = "2.2.4";
   pname = "jacktrip";
 
   src = fetchFromGitHub {
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     repo = "jacktrip";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-idfetMiMqjl9Qrun4hlFhQaGWcvasgjojTts+0F3GGE=";
+    sha256 = "sha256-H1zjBNEFPvZRDEaFOiL1ZAlHQsNxeT4WbXEOqg0+eFg=";
   };
 
   preConfigure = ''
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Multi-machine audio network performance over the Internet";
+    mainProgram = "jacktrip";
     homepage = "https://jacktrip.github.io/jacktrip/";
     license = with licenses; [ gpl3 lgpl3 mit ];
     maintainers = [ maintainers.iwanb ];
diff --git a/nixpkgs/pkgs/applications/audio/jamesdsp/default.nix b/nixpkgs/pkgs/applications/audio/jamesdsp/default.nix
index d7e96c84c6a5..4d2b7cf6dba1 100644
--- a/nixpkgs/pkgs/applications/audio/jamesdsp/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jamesdsp/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "An audio effect processor for PipeWire clients";
+    mainProgram = "jamesdsp";
     homepage = "https://github.com/Audio4Linux/JDSP4Linux";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ pasqui23 rewine ];
diff --git a/nixpkgs/pkgs/applications/audio/jmusicbot/default.nix b/nixpkgs/pkgs/applications/audio/jmusicbot/default.nix
index 6b154ffbb1a6..5caf1a472d57 100644
--- a/nixpkgs/pkgs/applications/audio/jmusicbot/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jmusicbot/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "JMusicBot";
-  version = "0.3.9";
+  version = "0.4.0";
 
   src = fetchurl {
     url = "https://github.com/jagrosh/MusicBot/releases/download/${version}/JMusicBot-${version}.jar";
-    sha256 = "sha256-2A1yo2e1MawGLMTM6jWwpQJJuKOmljxFriORv90Jqg8=";
+    sha256 = "sha256-JSVrzyCqAp3V5OZ+KJczhWGolPkdaHsPmiqfmhapQMs=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix b/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix
index 491a18bba3ea..d7e7dd7b6947 100644
--- a/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ladspa-plugins/default.nix
@@ -33,8 +33,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://plugin.org.uk/";
     description = "LADSPA format audio plugins";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = [ maintainers.magnetophon ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/librespot/default.nix b/nixpkgs/pkgs/applications/audio/librespot/default.nix
index 2617030829a5..dc60185fc0f7 100644
--- a/nixpkgs/pkgs/applications/audio/librespot/default.nix
+++ b/nixpkgs/pkgs/applications/audio/librespot/default.nix
@@ -50,6 +50,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Open Source Spotify client library and playback daemon";
+    mainProgram = "librespot";
     homepage = "https://github.com/librespot-org/librespot";
     changelog = "https://github.com/librespot-org/librespot/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/applications/audio/lingot/default.nix b/nixpkgs/pkgs/applications/audio/lingot/default.nix
index 234e2d675cb1..3d7339f571d6 100644
--- a/nixpkgs/pkgs/applications/audio/lingot/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lingot/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Not a Guitar-Only tuner";
+    mainProgram = "lingot";
     homepage = "https://www.nongnu.org/lingot/";
     license = lib.licenses.gpl2Plus;
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/applications/audio/linvstmanager/default.nix b/nixpkgs/pkgs/applications/audio/linvstmanager/default.nix
index dc8376c4166f..8df3fd507adc 100644
--- a/nixpkgs/pkgs/applications/audio/linvstmanager/default.nix
+++ b/nixpkgs/pkgs/applications/audio/linvstmanager/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical companion application for various bridges like LinVst, etc";
+    mainProgram = "linvstmanager";
     homepage = "https://github.com/Goli4thus/linvstmanager";
     license = with licenses; [ gpl3 ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/lmms/default.nix b/nixpkgs/pkgs/applications/audio/lmms/default.nix
index 01b84780607b..75e5e9d39e83 100644
--- a/nixpkgs/pkgs/applications/audio/lmms/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lmms/default.nix
@@ -48,6 +48,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "DAW similar to FL Studio (music production software)";
+    mainProgram = "lmms";
     homepage = "https://lmms.io";
     license = licenses.gpl2Plus;
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/nixpkgs/pkgs/applications/audio/lyrebird/default.nix b/nixpkgs/pkgs/applications/audio/lyrebird/default.nix
index 4f1d8ca36e84..5eb2d745cdc3 100644
--- a/nixpkgs/pkgs/applications/audio/lyrebird/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lyrebird/default.nix
@@ -55,6 +55,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Simple and powerful voice changer for Linux, written in GTK 3";
+    mainProgram = "lyrebird";
     homepage = "https://github.com/chxrlt/lyrebird";
     license = licenses.mit;
     maintainers = with maintainers; [ OPNA2608 ];
diff --git a/nixpkgs/pkgs/applications/audio/mellowplayer/default.nix b/nixpkgs/pkgs/applications/audio/mellowplayer/default.nix
index b736ae882990..b5eb65cad444 100644
--- a/nixpkgs/pkgs/applications/audio/mellowplayer/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mellowplayer/default.nix
@@ -65,6 +65,7 @@ mkDerivation rec {
     broken = stdenv.isDarwin; # test build fails, but the project is not maintained anymore
 
     description = "Cloud music integration for your desktop";
+    mainProgram = "MellowPlayer";
     homepage = "https://gitlab.com/ColinDuquesnoy/MellowPlayer";
     license = licenses.gpl2;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/nixpkgs/pkgs/applications/audio/meters_lv2/default.nix b/nixpkgs/pkgs/applications/audio/meters_lv2/default.nix
index e79da2fd1ea9..d4dbcf210ec9 100644
--- a/nixpkgs/pkgs/applications/audio/meters_lv2/default.nix
+++ b/nixpkgs/pkgs/applications/audio/meters_lv2/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Collection of audio level meters with GUI in LV2 plugin format";
+    mainProgram = "x42-meter";
     homepage = "https://x42.github.io/meters.lv2/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix b/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix
index e6b21dff2dc5..42d4c38d47a3 100644
--- a/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mhwaveedit/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical program for editing, playing and recording sound files";
+    mainProgram = "mhwaveedit";
     homepage = "https://github.com/magnush/mhwaveedit";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix b/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix
index ed48c129418c..907a17eccb30 100644
--- a/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix
+++ b/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A small MIDI visualizer tool, using OpenGL";
+    mainProgram = "MIDIVisualizer";
     homepage = "https://github.com/kosua20/MIDIVisualizer";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix b/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix
index 0d07663d115a..645c69a1c86b 100644
--- a/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix
+++ b/nixpkgs/pkgs/applications/audio/midisheetmusic/default.nix
@@ -54,6 +54,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Convert MIDI Files to Piano Sheet Music for two hands";
+    mainProgram = "midisheetmusic.mono.exe";
     homepage = "http://midisheetmusic.com";
     license = licenses.gpl2;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/applications/audio/miniaudicle/default.nix b/nixpkgs/pkgs/applications/audio/miniaudicle/default.nix
index 00f71063bac3..d0aed09ee863 100644
--- a/nixpkgs/pkgs/applications/audio/miniaudicle/default.nix
+++ b/nixpkgs/pkgs/applications/audio/miniaudicle/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A light-weight integrated development environment for the ChucK digital audio programming language";
+    mainProgram = "miniAudicle";
     homepage = "https://audicle.cs.princeton.edu/mini/";
     downloadPage = "https://audicle.cs.princeton.edu/mini/linux/";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/applications/audio/mixxx/default.nix b/nixpkgs/pkgs/applications/audio/mixxx/default.nix
index f9e860d78177..4abc6d4956f4 100644
--- a/nixpkgs/pkgs/applications/audio/mixxx/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mixxx/default.nix
@@ -142,6 +142,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://mixxx.org";
     description = "Digital DJ mixing software";
+    mainProgram = "mixxx";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ goibhniu bfortz ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix b/nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix
index d4da27dd3639..c68d14b28f99 100644
--- a/nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix
+++ b/nixpkgs/pkgs/applications/audio/monkeys-audio/default.nix
@@ -5,13 +5,13 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "10.52";
+  version = "10.60";
   pname = "monkeys-audio";
 
   src = fetchzip {
     url = "https://monkeysaudio.com/files/MAC_${
       builtins.concatStringsSep "" (lib.strings.splitString "." finalAttrs.version)}_SDK.zip";
-    hash = "sha256-n+bQzvuCTt7dnqkPO592KKZeShmMlbp/KAXK0F2dlTg=";
+    hash = "sha256-llOo9G65UDDCzaSahq5qssw6SmOJ5C9qS2bdXB/pKF0=";
     stripRoot = false;
   };
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix b/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix
index b92d0fd77c11..bf7f9a07f772 100644
--- a/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix
+++ b/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix
@@ -46,6 +46,7 @@ pythonPackages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://www.mopidy.com/";
     description = "An extensible music server that plays music from local disk, Spotify, SoundCloud, and more";
+    mainProgram = "mopidy";
     license = licenses.asl20;
     maintainers = [ maintainers.fpletz ];
     hydraPlatforms = [];
diff --git a/nixpkgs/pkgs/applications/audio/mousai/default.nix b/nixpkgs/pkgs/applications/audio/mousai/default.nix
index c2bcc0200fbc..1ce6a0ea8209 100644
--- a/nixpkgs/pkgs/applications/audio/mousai/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mousai/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Identify any songs in seconds";
+    mainProgram = "mousai";
     homepage = "https://github.com/SeaDve/Mousai";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/applications/audio/munt/mt32emu-qt.nix b/nixpkgs/pkgs/applications/audio/munt/mt32emu-qt.nix
index 51501de4a89e..9ebb59ddafdd 100644
--- a/nixpkgs/pkgs/applications/audio/munt/mt32emu-qt.nix
+++ b/nixpkgs/pkgs/applications/audio/munt/mt32emu-qt.nix
@@ -65,6 +65,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://munt.sourceforge.net/";
     description = "A synthesizer application built on Qt and libmt32emu";
+    mainProgram = "mt32emu-qt";
     longDescription = ''
       mt32emu-qt is a synthesiser application that facilitates both realtime
       synthesis and conversion of pre-recorded SMF files to WAVE making use of
diff --git a/nixpkgs/pkgs/applications/audio/munt/mt32emu-smf2wav.nix b/nixpkgs/pkgs/applications/audio/munt/mt32emu-smf2wav.nix
index 517d1b200aab..3ebadcca91be 100644
--- a/nixpkgs/pkgs/applications/audio/munt/mt32emu-smf2wav.nix
+++ b/nixpkgs/pkgs/applications/audio/munt/mt32emu-smf2wav.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://munt.sourceforge.net/";
     description = "Produces a WAVE file from a Standard MIDI file (SMF)";
+    mainProgram = "mt32emu-smf2wav";
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ OPNA2608 ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/audio/musescore/default.nix b/nixpkgs/pkgs/applications/audio/musescore/default.nix
index 71ae712c9f67..d6c90f896dfd 100644
--- a/nixpkgs/pkgs/applications/audio/musescore/default.nix
+++ b/nixpkgs/pkgs/applications/audio/musescore/default.nix
@@ -142,9 +142,6 @@ in stdenv'.mkDerivation (finalAttrs: {
     homepage = "https://musescore.org/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ vandenoever doronbehar ];
-    # on aarch64-linux:
-    # error: cannot convert '<brace-enclosed initializer list>' to 'float32x4_t' in assignment
-    broken = (stdenv.isLinux && stdenv.isAarch64);
     mainProgram = "mscore";
   };
 })
diff --git a/nixpkgs/pkgs/applications/audio/muso/default.nix b/nixpkgs/pkgs/applications/audio/muso/default.nix
index 95c45216ef2e..30b26e7e5979 100644
--- a/nixpkgs/pkgs/applications/audio/muso/default.nix
+++ b/nixpkgs/pkgs/applications/audio/muso/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "An automatic music sorter (based on ID3 tags)";
+    mainProgram = "muso";
     homepage = "https://github.com/quebin31/muso";
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/audio/mympd/default.nix b/nixpkgs/pkgs/applications/audio/mympd/default.nix
index a757ca391e1b..bf60c8a4439d 100644
--- a/nixpkgs/pkgs/applications/audio/mympd/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mympd/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mympd";
-  version = "14.0.4";
+  version = "14.1.0";
 
   src = fetchFromGitHub {
     owner = "jcorporation";
     repo = "myMPD";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-kPh3u6mjTxoqGlhei8kPOyrjU9m7zpv16y5PaGHBsIA=";
+    sha256 = "sha256-yNB5WQi3M4cYogtxx/vLi2xJog2keyFrJIMlx663DLo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/nootka/default.nix b/nixpkgs/pkgs/applications/audio/nootka/default.nix
index 3ce835138f6d..a52c5bb98176 100644
--- a/nixpkgs/pkgs/applications/audio/nootka/default.nix
+++ b/nixpkgs/pkgs/applications/audio/nootka/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Application for practicing playing musical scores and ear training";
+    mainProgram = "nootka";
     homepage = "https://nootka.sourceforge.io/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mmlb orivej ];
diff --git a/nixpkgs/pkgs/applications/audio/nova-filters/default.nix b/nixpkgs/pkgs/applications/audio/nova-filters/default.nix
index 1c457c8a0e7b..17d90c6d310b 100644
--- a/nixpkgs/pkgs/applications/audio/nova-filters/default.nix
+++ b/nixpkgs/pkgs/applications/audio/nova-filters/default.nix
@@ -4,7 +4,6 @@
 , scons
 , boost
 , ladspaH
-, libcxxabi
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -23,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
       --replace "-fomit-frame-pointer -ffast-math -mfpmath=sse" "-I${boost.dev}/include -I${ladspaH}/include" \
       --replace "env.has_key('cxx')" "True" \
       --replace "env['cxx']" "'${stdenv.cc.targetPrefix}c++'" \
-      --replace "-Wl,--strip-all" "${lib.optionalString stdenv.isDarwin "-L${libcxxabi}/lib"}"
+      --replace "-Wl,--strip-all" ""
 
     substituteInPlace filters.cpp \
       --replace "LADSPA_HINT_SAMPLE_RATE, 0, 0.5" "LADSPA_HINT_SAMPLE_RATE, 0.0001, 0.5"
diff --git a/nixpkgs/pkgs/applications/audio/padthv1/default.nix b/nixpkgs/pkgs/applications/audio/padthv1/default.nix
index 2c4581cc7319..f51a3f69a2c5 100644
--- a/nixpkgs/pkgs/applications/audio/padthv1/default.nix
+++ b/nixpkgs/pkgs/applications/audio/padthv1/default.nix
@@ -15,6 +15,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "polyphonic additive synthesizer";
+    mainProgram = "padthv1_jack";
     homepage = "http://padthv1.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/paprefs/default.nix b/nixpkgs/pkgs/applications/audio/paprefs/default.nix
index ef45cc4676a1..212d866059da 100644
--- a/nixpkgs/pkgs/applications/audio/paprefs/default.nix
+++ b/nixpkgs/pkgs/applications/audio/paprefs/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "PulseAudio Preferences";
+    mainProgram = "paprefs";
 
     longDescription = ''
       PulseAudio Preferences (paprefs) is a simple GTK based configuration
diff --git a/nixpkgs/pkgs/applications/audio/parlatype/default.nix b/nixpkgs/pkgs/applications/audio/parlatype/default.nix
index 23fb4380a2e5..d05130de4124 100644
--- a/nixpkgs/pkgs/applications/audio/parlatype/default.nix
+++ b/nixpkgs/pkgs/applications/audio/parlatype/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GNOME audio player for transcription";
+    mainProgram = "parlatype";
     longDescription = ''
       Parlatype is a minimal audio player for manual speech transcription,
       written for the GNOME desktop environment. It plays audio sources to
diff --git a/nixpkgs/pkgs/applications/audio/patchance/default.nix b/nixpkgs/pkgs/applications/audio/patchance/default.nix
index 7770065b3d1c..86e1d2745b96 100644
--- a/nixpkgs/pkgs/applications/audio/patchance/default.nix
+++ b/nixpkgs/pkgs/applications/audio/patchance/default.nix
@@ -42,6 +42,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/Houston4444/Patchance";
     description = "JACK Patchbay GUI";
+    mainProgram = "patchance";
     license = licenses.gpl2;
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/pianobooster/default.nix b/nixpkgs/pkgs/applications/audio/pianobooster/default.nix
index 7d62aa61d6b0..a83c5ee7e401 100644
--- a/nixpkgs/pkgs/applications/audio/pianobooster/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pianobooster/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A MIDI file player that teaches you how to play the piano";
+    mainProgram = "pianobooster";
     homepage = "https://github.com/pianobooster/PianoBooster";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/picard/default.nix b/nixpkgs/pkgs/applications/audio/picard/default.nix
index 36ed7069ea80..82909a6296bf 100644
--- a/nixpkgs/pkgs/applications/audio/picard/default.nix
+++ b/nixpkgs/pkgs/applications/audio/picard/default.nix
@@ -77,6 +77,7 @@ pythonPackages.buildPythonApplication rec {
     homepage = "https://picard.musicbrainz.org";
     changelog = "https://picard.musicbrainz.org/changelog";
     description = "The official MusicBrainz tagger";
+    mainProgram = "picard";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/applications/audio/pipecontrol/default.nix b/nixpkgs/pkgs/applications/audio/pipecontrol/default.nix
index 0f302bc72e5d..1586be58e3cf 100644
--- a/nixpkgs/pkgs/applications/audio/pipecontrol/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pipecontrol/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Pipewire control GUI program in Qt (Kirigami2)";
+    mainProgram = "pipecontrol";
     homepage = "https://github.com/portaloffreedom/pipecontrol";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ tilcreator ];
diff --git a/nixpkgs/pkgs/applications/audio/pithos/default.nix b/nixpkgs/pkgs/applications/audio/pithos/default.nix
index 6de3da92db8a..1ff4aedb6b00 100644
--- a/nixpkgs/pkgs/applications/audio/pithos/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pithos/default.nix
@@ -4,13 +4,13 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "pithos";
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo  = pname;
-    rev = version;
-    hash = "sha256-GPDbFlwiGT/B2paX33d3mUCV77q+fPM0LMaKFsQQjjQ=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-3j6IoMi30BQ8WHK4BxbsW+/3XZx7rBFd47EBENa2GiQ=";
   };
 
   format = "other";
@@ -34,6 +34,7 @@ pythonPackages.buildPythonApplication rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Pandora Internet Radio player for GNOME";
+    mainProgram = "pithos";
     homepage = "https://pithos.github.io/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ obadz ];
diff --git a/nixpkgs/pkgs/applications/audio/plugdata/default.nix b/nixpkgs/pkgs/applications/audio/plugdata/default.nix
index b4f587f2e807..9af5c4a9fa85 100644
--- a/nixpkgs/pkgs/applications/audio/plugdata/default.nix
+++ b/nixpkgs/pkgs/applications/audio/plugdata/default.nix
@@ -114,6 +114,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Plugin wrapper around Pure Data to allow patching in a wide selection of DAWs";
+    mainProgram = "plugdata";
     homepage = "https://plugdata.org/";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/polyphone/default.nix b/nixpkgs/pkgs/applications/audio/polyphone/default.nix
index 0e73861aa0f4..a01ce9773afa 100644
--- a/nixpkgs/pkgs/applications/audio/polyphone/default.nix
+++ b/nixpkgs/pkgs/applications/audio/polyphone/default.nix
@@ -46,6 +46,7 @@ mkDerivation rec {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "A soundfont editor for creating musical instruments";
+    mainProgram = "polyphone";
     homepage = "https://www.polyphone-soundfonts.com/";
     license = licenses.gpl3;
     maintainers = [ maintainers.maxdamantus ];
diff --git a/nixpkgs/pkgs/applications/audio/praat/default.nix b/nixpkgs/pkgs/applications/audio/praat/default.nix
index 0f98ba2357a5..6274d448ad51 100644
--- a/nixpkgs/pkgs/applications/audio/praat/default.nix
+++ b/nixpkgs/pkgs/applications/audio/praat/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Doing phonetics by computer";
+    mainProgram = "praat";
     homepage = "https://www.fon.hum.uva.nl/praat/";
     license = lib.licenses.gpl2Plus; # Has some 3rd-party code in it though
     maintainers = with lib.maintainers; [ orivej ];
diff --git a/nixpkgs/pkgs/applications/audio/pragha/default.nix b/nixpkgs/pkgs/applications/audio/pragha/default.nix
index 8e039f05927f..2ae9e233c4e2 100644
--- a/nixpkgs/pkgs/applications/audio/pragha/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pragha/default.nix
@@ -95,6 +95,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A lightweight GTK+ music manager - fork of Consonance Music Manager";
+    mainProgram = "pragha";
     homepage = "https://pragha-music-player.github.io/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mbaeten ];
diff --git a/nixpkgs/pkgs/applications/audio/psst/default.nix b/nixpkgs/pkgs/applications/audio/psst/default.nix
index 46958b01bd1c..7abb8e78d161 100644
--- a/nixpkgs/pkgs/applications/audio/psst/default.nix
+++ b/nixpkgs/pkgs/applications/audio/psst/default.nix
@@ -16,7 +16,7 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "psst";
-  version = "unstable-2024-03-04";
+  version = "unstable-2024-02-11";
 
   src = fetchFromGitHub {
     owner = "jpochyla";
diff --git a/nixpkgs/pkgs/applications/audio/psst/update.sh b/nixpkgs/pkgs/applications/audio/psst/update.sh
index a504b61c2410..4ffa9417f040 100755
--- a/nixpkgs/pkgs/applications/audio/psst/update.sh
+++ b/nixpkgs/pkgs/applications/audio/psst/update.sh
@@ -24,7 +24,9 @@ if [ -z "$rev" ]; then
     rev="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/jpochyla/psst/commits?per_page=1" | jq -r '.[0].sha')"
 fi
 
-version="unstable-$(date +%F)"
+date="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/jpochyla/psst/commits/$rev" | jq -r '.commit.author.date' | cut -dT -f1)"
+
+version="unstable-$date"
 
 # Sources
 src_hash=$(nix-prefetch-github jpochyla psst --rev "$rev" | jq -r .hash)
diff --git a/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix b/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
index 0f4bb9957f7a..c4213c06f8bc 100644
--- a/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pt2-clone";
-  version = "1.66.1";
+  version = "1.67";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "pt2-clone";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-j7VPC1sj1Q+wL2TBgv06uYLPqym8F57HG1SRvj0Ggeo=";
+    sha256 = "sha256-fTUTXwS6A72zhKkANlSljQVvPeN5rOTyuyb8vLxYfdk=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/audio/puddletag/default.nix b/nixpkgs/pkgs/applications/audio/puddletag/default.nix
index 128d5c59c78e..ddeee09d829d 100644
--- a/nixpkgs/pkgs/applications/audio/puddletag/default.nix
+++ b/nixpkgs/pkgs/applications/audio/puddletag/default.nix
@@ -21,14 +21,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "puddletag";
-  version = "2.2.0";
+  version = "2.3.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "puddletag";
     repo = "puddletag";
     rev = "refs/tags/${version}";
-    hash = "sha256-KaFfpOWI9u2ZC/3kuCLneWOOKSmAaIuHPFHptkKMH/g=";
+    hash = "sha256-oScT8YcQoDf2qZ+J7xKm22Sbfym3tkVUrWT5D2LU5e8=";
   };
 
   pythonRelaxDeps = true;
@@ -57,6 +57,7 @@ python3.pkgs.buildPythonApplication rec {
     pyparsing
     pyqt5
     rapidfuzz
+    unidecode
   ];
 
   # the file should be executable but it isn't so our wrapper doesn't run
@@ -71,6 +72,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "An audio tag editor similar to the Windows program, Mp3tag";
+    mainProgram = "puddletag";
     homepage = "https://docs.puddletag.net";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ peterhoeg dschrempf ];
diff --git a/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix b/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix
index 1b21aa9d4163..e58d8edba6f9 100644
--- a/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pulseaudio-ctl/default.nix
@@ -33,6 +33,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Control pulseaudio volume from the shell or mapped to keyboard shortcuts. No need for alsa-utils";
+    mainProgram = "pulseaudio-ctl";
     homepage = "https://bbs.archlinux.org/viewtopic.php?id=124513";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix b/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
index 5358750b13e2..57f99b81299e 100644
--- a/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
@@ -67,6 +67,7 @@ python3Packages.buildPythonApplication {
 
   meta = with lib; {
     description = "A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux";
+    mainProgram = "pulseaudio-dlna";
     homepage = "https://github.com/Cygn/pulseaudio-dlna";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mog ];
diff --git a/nixpkgs/pkgs/applications/audio/pulseeffects-legacy/default.nix b/nixpkgs/pkgs/applications/audio/pulseeffects-legacy/default.nix
index 7d255b7a71e2..c243b99f098c 100644
--- a/nixpkgs/pkgs/applications/audio/pulseeffects-legacy/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pulseeffects-legacy/default.nix
@@ -106,6 +106,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Limiter, compressor, reverberation, equalizer and auto volume effects for Pulseaudio applications";
+    mainProgram = "pulseeffects";
     homepage = "https://github.com/wwmm/pulseeffects";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/audio/pyradio/default.nix b/nixpkgs/pkgs/applications/audio/pyradio/default.nix
index e9ef64260f46..9748c9f16111 100644
--- a/nixpkgs/pkgs/applications/audio/pyradio/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pyradio/default.nix
@@ -39,6 +39,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "http://www.coderholic.com/pyradio/";
     description = "Curses based internet radio player";
+    mainProgram = "pyradio";
     changelog = "https://github.com/coderholic/pyradio/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ contrun ];
diff --git a/nixpkgs/pkgs/applications/audio/qjackctl/default.nix b/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
index abfcef0d2f75..47f8f10fbf0f 100644
--- a/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
@@ -38,6 +38,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A Qt application to control the JACK sound server daemon";
+    mainProgram = "qjackctl";
     homepage = "https://github.com/rncbc/qjackctl";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.goibhniu ];
diff --git a/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix b/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix
index 4c2de70efc0f..7b7f929e5379 100644
--- a/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qmidiarp/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An advanced MIDI arpeggiator";
+    mainProgram = "qmidiarp";
     longDescription = ''
       An advanced MIDI arpeggiator, programmable step sequencer and LFO for Linux.
       It can hold any number of arpeggiator, sequencer, or LFO modules running in
diff --git a/nixpkgs/pkgs/applications/audio/qmidinet/default.nix b/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
index 556787ca9ea5..29c8ad7a797f 100644
--- a/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qmidinet/default.nix
@@ -17,6 +17,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A MIDI network gateway application that sends and receives MIDI data (ALSA Sequencer and/or JACK MIDI) over the network";
+    mainProgram = "qmidinet";
     homepage = "http://qmidinet.sourceforge.net/";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.magnetophon ];
diff --git a/nixpkgs/pkgs/applications/audio/qmmp/default.nix b/nixpkgs/pkgs/applications/audio/qmmp/default.nix
index 65cf4e3d7b00..427d9f48c1fd 100644
--- a/nixpkgs/pkgs/applications/audio/qmmp/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qmmp/default.nix
@@ -26,11 +26,11 @@
 
 stdenv.mkDerivation rec {
   pname = "qmmp";
-  version = "2.1.5";
+  version = "2.1.6";
 
   src = fetchurl {
     url = "https://qmmp.ylsoftware.com/files/qmmp/2.1/${pname}-${version}.tar.bz2";
-    hash = "sha256-Jb4/KxnY1wtrUTbD+X04Wl7b9A2sZ92E/N1K+dVU95U=";
+    hash = "sha256-knqo5yCkcO/bFmM++z+SdiWzpDKK9ooV0wqlcIKj7so=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Qt-based audio player that looks like Winamp";
+    mainProgram = "qmmp";
     homepage = "https://qmmp.ylsoftware.com/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/qsampler/default.nix b/nixpkgs/pkgs/applications/audio/qsampler/default.nix
index bb40e0b3eebc..bd4922394f6a 100644
--- a/nixpkgs/pkgs/applications/audio/qsampler/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qsampler/default.nix
@@ -20,6 +20,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.linuxsampler.org";
     description = "Graphical frontend to LinuxSampler";
+    mainProgram = "qsampler";
     license = licenses.gpl2;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/qsynth/default.nix b/nixpkgs/pkgs/applications/audio/qsynth/default.nix
index a24625ca7de8..714a66f6e2c8 100644
--- a/nixpkgs/pkgs/applications/audio/qsynth/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qsynth/default.nix
@@ -1,28 +1,23 @@
-{ lib, fetchurl, alsa-lib, fluidsynth, libjack2, autoconf, pkg-config
-, mkDerivation, qtbase, qttools, qtx11extras
+{ lib, stdenv, fetchurl, alsa-lib, fluidsynth, libjack2, cmake, pkg-config
+, qtbase, qttools, qtx11extras, wrapQtAppsHook
 }:
 
-mkDerivation  rec {
+stdenv.mkDerivation rec {
   pname = "qsynth";
-  version = "0.9.4";
+  version = "0.9.13";
 
   src = fetchurl {
     url = "mirror://sourceforge/qsynth/${pname}-${version}.tar.gz";
-    sha256 = "sha256-dlgIkMde7uv4UlMKEPhtZ7MfSTBc7RvHs+Q2yk+G/JM=";
+    hash = "sha256-SvgZrdS6BwWhNgbovcfhpQKVcu0iwr4dDqeIckuo1fk=";
   };
 
-  nativeBuildInputs = [ autoconf pkg-config ];
+  nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
 
   buildInputs = [ alsa-lib fluidsynth libjack2 qtbase qttools qtx11extras ];
 
-  enableParallelBuilding = true;
-  # Missing install depends:
-  #   lrelease error: Parse error at src/translations/qsynth_ru.ts:1503:33: Premature end of document.
-  #   make: *** [Makefile:107: src/translations/qsynth_ru.qm] Error 1
-  enableParallelInstalling = false;
-
   meta = with lib; {
     description = "Fluidsynth GUI";
+    mainProgram = "qsynth";
     homepage = "https://sourceforge.net/projects/qsynth";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ goibhniu ];
diff --git a/nixpkgs/pkgs/applications/audio/r128gain/default.nix b/nixpkgs/pkgs/applications/audio/r128gain/default.nix
index 8cf6871a76b4..6cf7f41f10ce 100644
--- a/nixpkgs/pkgs/applications/audio/r128gain/default.nix
+++ b/nixpkgs/pkgs/applications/audio/r128gain/default.nix
@@ -36,6 +36,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Fast audio loudness scanner & tagger (ReplayGain v2 / R128)";
+    mainProgram = "r128gain";
     homepage = "https://github.com/desbma/r128gain";
     license = licenses.lgpl2Plus;
     maintainers = [ maintainers.AluisioASG ];
diff --git a/nixpkgs/pkgs/applications/audio/radioboat/default.nix b/nixpkgs/pkgs/applications/audio/radioboat/default.nix
index 3dc97a84b62f..b5421115201a 100644
--- a/nixpkgs/pkgs/applications/audio/radioboat/default.nix
+++ b/nixpkgs/pkgs/applications/audio/radioboat/default.nix
@@ -51,6 +51,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A terminal web radio client";
+    mainProgram = "radioboat";
     homepage = "https://github.com/slashformotion/radioboat";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix b/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix
index ce3f57162366..56c316dadcdb 100644
--- a/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix
+++ b/nixpkgs/pkgs/applications/audio/radiotray-ng/default.nix
@@ -19,7 +19,6 @@
 # GStreamer
 , glib-networking
 , gst_all_1
-, libsoup_3
 # User-agent info
 , lsb-release
 # rt2rtng
@@ -100,8 +99,6 @@ stdenv.mkDerivation rec {
   preFixup = ''
     gappsWrapperArgs+=(--suffix PATH : ${lib.makeBinPath [ dbus ]})
     wrapProgram $out/bin/rt2rtng --prefix PYTHONPATH : $PYTHONPATH
-    # for GStreamer
-    gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${lib.getLib libsoup_3}/lib")
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/audio/redoflacs/default.nix b/nixpkgs/pkgs/applications/audio/redoflacs/default.nix
index 999dc90a6e4e..75425375f6af 100644
--- a/nixpkgs/pkgs/applications/audio/redoflacs/default.nix
+++ b/nixpkgs/pkgs/applications/audio/redoflacs/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Parallel BASH commandline FLAC compressor, verifier, organizer, analyzer, and retagger";
+    mainProgram = "redoflacs";
     homepage = src.meta.homepage;
     license = licenses.gpl2;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix b/nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix
index 8f9819bd913b..65c4c700e262 100644
--- a/nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix
+++ b/nixpkgs/pkgs/applications/audio/rofi-mpd/default.nix
@@ -18,6 +18,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A rofi menu for interacting with MPD written in Python";
+    mainProgram = "rofi-mpd";
     homepage = "https://github.com/JakeStanger/Rofi_MPD";
     license = licenses.mit;
     maintainers = with maintainers; [ jakestanger ];
diff --git a/nixpkgs/pkgs/applications/audio/rofi-pulse-select/default.nix b/nixpkgs/pkgs/applications/audio/rofi-pulse-select/default.nix
index 0664a6c2c4d7..857cdddeb638 100644
--- a/nixpkgs/pkgs/applications/audio/rofi-pulse-select/default.nix
+++ b/nixpkgs/pkgs/applications/audio/rofi-pulse-select/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Rofi-based interface to select source/sink (aka input/output) with PulseAudio";
+    mainProgram = "rofi-pulse-select";
     homepage = "https://gitlab.com/DamienCassou/rofi-pulse-select";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ DamienCassou ];
diff --git a/nixpkgs/pkgs/applications/audio/rosegarden/default.nix b/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
index 0a82a4671db2..57a7ca82254a 100644
--- a/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
+++ b/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.rosegardenmusic.com/";
     description = "Music composition and editing environment";
+    mainProgram = "rosegarden";
     longDescription = ''
       Rosegarden is a music composition and editing environment based around
       a MIDI sequencer that features a rich understanding of music notation
diff --git a/nixpkgs/pkgs/applications/audio/rubyripper/default.nix b/nixpkgs/pkgs/applications/audio/rubyripper/default.nix
index 23cc0577c688..a30eca6a7686 100644
--- a/nixpkgs/pkgs/applications/audio/rubyripper/default.nix
+++ b/nixpkgs/pkgs/applications/audio/rubyripper/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "High quality CD audio ripper";
+    mainProgram = "rrip_cli";
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
     homepage = "https://github.com/bleskodev/rubyripper";
diff --git a/nixpkgs/pkgs/applications/audio/samplebrain/default.nix b/nixpkgs/pkgs/applications/audio/samplebrain/default.nix
index 942e7bccc13c..54314812491c 100644
--- a/nixpkgs/pkgs/applications/audio/samplebrain/default.nix
+++ b/nixpkgs/pkgs/applications/audio/samplebrain/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A custom sample mashing app";
+    mainProgram = "samplebrain";
     homepage = "https://thentrythis.org/projects/samplebrain";
     changelog = "https://gitlab.com/then-try-this/samplebrain/-/releases/v${version}_release";
     maintainers = with maintainers; [ mitchmindtree ];
diff --git a/nixpkgs/pkgs/applications/audio/samplv1/default.nix b/nixpkgs/pkgs/applications/audio/samplv1/default.nix
index 95035570e924..1af25d0d75b5 100644
--- a/nixpkgs/pkgs/applications/audio/samplv1/default.nix
+++ b/nixpkgs/pkgs/applications/audio/samplv1/default.nix
@@ -18,6 +18,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "An old-school all-digital polyphonic sampler synthesizer with stereo fx";
+    mainProgram = "samplv1_jack";
     homepage = "http://samplv1.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/schismtracker/default.nix b/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
index 46f6237ce322..94b082fd84a4 100644
--- a/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
+++ b/nixpkgs/pkgs/applications/audio/schismtracker/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "schismtracker";
-  version = "20240129";
+  version = "20240308";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-msi638LQM0LPfUineINRW8l8BcPKIeRBEDtV5L6anGk=";
+    sha256 = "sha256-6MzMmeD4HCS/7VTFTAcOhyKjz5NvzvDEzcSpHGUwFvM=";
   };
 
   configureFlags = [ "--enable-dependency-tracking" ]
diff --git a/nixpkgs/pkgs/applications/audio/seq66/default.nix b/nixpkgs/pkgs/applications/audio/seq66/default.nix
index 8f47ab0b6a20..51d40f962a88 100644
--- a/nixpkgs/pkgs/applications/audio/seq66/default.nix
+++ b/nixpkgs/pkgs/applications/audio/seq66/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "seq66";
-  version = "0.90.5";
+  version = "0.99.12";
 
   src = fetchFromGitHub {
     owner = "ahlstromcj";
-    repo = pname;
+    repo = "seq66";
     rev = version;
-    sha256 = "1jvra1wzlycfpvffnqidk264zw6fyl4fsghkw5256ldk22aalmq9";
+    hash = "sha256-+EU0UdmZaDnhN142yR/r0tK1FKBbuFPmde6iSS26Tjo=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config qttools which wrapQtAppsHook ];
@@ -18,13 +18,9 @@ stdenv.mkDerivation rec {
   buildInputs = [ alsa-lib libjack2 liblo qtbase ];
 
   postPatch = ''
-    for d in libseq66/include libseq66/src libsessions/include libsessions/src seq_qt5/src seq_rtmidi/include seq_rtmidi/src Seqtool/src; do
-      substituteInPlace "$d/Makefile.am" --replace '$(git_info)' '${version}'
+    for d in libseq66/src libsessions/include libsessions/src seq_qt5/src seq_rtmidi/src; do
+      substituteInPlace "$d/Makefile.am" --replace-fail '$(git_info)' '${version}'
     done
-
-    # gcc-13 headers compatibilty. TODO: try to remove with next version
-    # update
-    sed -e '1i #include <cstdint>' -i libseq66/src/os/daemonize.cpp
   '';
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix b/nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix
index 2b264cfd56b9..529d12db967f 100644
--- a/nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sfxr-qt/default.nix
@@ -58,6 +58,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/agateau/sfxr-qt";
     description = "A sound effect generator, QtQuick port of sfxr";
+    mainProgram = "sfxr-qt";
     license = licenses.gpl2;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/sfxr/default.nix b/nixpkgs/pkgs/applications/audio/sfxr/default.nix
index 08efb7690335..552bc8ea52a5 100644
--- a/nixpkgs/pkgs/applications/audio/sfxr/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sfxr/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
     broken = stdenv.isDarwin;
     homepage = "http://www.drpetter.se/project_sfxr.html";
     description = "A videogame sound effect generator";
+    mainProgram = "sfxr";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/audio/shortwave/default.nix b/nixpkgs/pkgs/applications/audio/shortwave/default.nix
index b64e4bf5e50e..c1f3f53416fd 100644
--- a/nixpkgs/pkgs/applications/audio/shortwave/default.nix
+++ b/nixpkgs/pkgs/applications/audio/shortwave/default.nix
@@ -75,6 +75,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/World/Shortwave";
     description = "Find and listen to internet radio stations";
+    mainProgram = "shortwave";
     longDescription = ''
       Shortwave is a streaming audio player designed for the GNOME
       desktop. It is the successor to the older Gradio application.
diff --git a/nixpkgs/pkgs/applications/audio/snd/default.nix b/nixpkgs/pkgs/applications/audio/snd/default.nix
index 9151cdff7608..6958a38f2586 100644
--- a/nixpkgs/pkgs/applications/audio/snd/default.nix
+++ b/nixpkgs/pkgs/applications/audio/snd/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "snd";
-  version = "24.1";
+  version = "24.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/snd/snd-${version}.tar.gz";
-    sha256 = "sha256-hC6GddYjBD6p4zwHD3fCvZZLwpRiNKOb6aaHstRhA1M=";
+    sha256 = "sha256-1ngnhOpPaRGH3xmiA7cUfVDqlJM1ZC+XfeSiV8vcdls=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/applications/audio/sonata/default.nix b/nixpkgs/pkgs/applications/audio/sonata/default.nix
index e5aa90180120..97397da96f25 100644
--- a/nixpkgs/pkgs/applications/audio/sonata/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sonata/default.nix
@@ -46,6 +46,7 @@ in buildPythonApplication rec {
 
   meta = {
     description = "An elegant client for the Music Player Daemon";
+    mainProgram = "sonata";
     longDescription = ''
       Sonata is an elegant client for the Music Player Daemon.
 
diff --git a/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix b/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix
index 6ea4bcd6628d..f58f88b32138 100644
--- a/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Comparative visualisation of related audio recordings";
+    mainProgram = "sonic-lineup";
     homepage = "https://www.sonicvisualiser.org/sonic-lineup/";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.vandenoever ];
diff --git a/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix b/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix
index 999b2825eff7..261de6e48450 100644
--- a/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sound-juicer/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Gnome CD Ripper";
+    mainProgram = "sound-juicer";
     homepage = "https://wiki.gnome.org/Apps/SoundJuicer";
     maintainers = [ maintainers.bdimcheff ];
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/applications/audio/soundconverter/default.nix b/nixpkgs/pkgs/applications/audio/soundconverter/default.nix
index e2e5094e8452..b07ed63f220d 100644
--- a/nixpkgs/pkgs/applications/audio/soundconverter/default.nix
+++ b/nixpkgs/pkgs/applications/audio/soundconverter/default.nix
@@ -73,6 +73,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://soundconverter.org/";
     description = "Leading audio file converter for the GNOME Desktop";
+    mainProgram = "soundconverter";
     longDescription = ''
       SoundConverter reads anything the GStreamer library can read,
       and writes WAV, FLAC, MP3, AAC and Ogg Vorbis files.
diff --git a/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix b/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix
index b044db5fab82..0aebd46210da 100644
--- a/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix
+++ b/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix
@@ -78,6 +78,7 @@ mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.schmittlauch ];
     description = "Audio file converter, CD ripper and Replay Gain tool";
+    mainProgram = "soundkonverter";
     longDescription = ''
       soundKonverter is a frontend to various audio converters.
 
diff --git a/nixpkgs/pkgs/applications/audio/spek/default.nix b/nixpkgs/pkgs/applications/audio/spek/default.nix
index f54e661b4c74..bd206709c26e 100644
--- a/nixpkgs/pkgs/applications/audio/spek/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spek/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Analyse your audio files by showing their spectrogram";
+    mainProgram = "spek";
     homepage = "http://spek.cc/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ bjornfor ];
diff --git a/nixpkgs/pkgs/applications/audio/spot/default.nix b/nixpkgs/pkgs/applications/audio/spot/default.nix
index d9a0babb6840..7cf683beb918 100644
--- a/nixpkgs/pkgs/applications/audio/spot/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spot/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Native Spotify client for the GNOME desktop";
+    mainProgram = "spot";
     homepage = "https://github.com/xou816/spot";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/audio/spotify-cli-linux/default.nix b/nixpkgs/pkgs/applications/audio/spotify-cli-linux/default.nix
index 82aa5c366ab6..73b1ea913206 100644
--- a/nixpkgs/pkgs/applications/audio/spotify-cli-linux/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spotify-cli-linux/default.nix
@@ -23,6 +23,7 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://pwittchen.github.io/spotify-cli-linux/";
     maintainers = [ maintainers.kmein ];
     description = "A command line interface to Spotify on Linux.";
+    mainProgram = "spotifycli";
     license = licenses.gpl3;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/applications/audio/spotify-player/default.nix b/nixpkgs/pkgs/applications/audio/spotify-player/default.nix
index 0e4e5234ec00..f3c675564512 100644
--- a/nixpkgs/pkgs/applications/audio/spotify-player/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spotify-player/default.nix
@@ -33,16 +33,16 @@ assert lib.assertOneOf "withAudioBackend" withAudioBackend [ "" "alsa" "pulseaud
 
 rustPlatform.buildRustPackage rec {
   pname = "spotify-player";
-  version = "0.17.0";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "aome510";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-fGDIlkTaRg+J6YcP9iBcJFuYm9F0UOA+v/26hhdg9/o=";
+    hash = "sha256-1aq+J1dP+hGJHq3boxZLUFfLLSFDY2uN6BwYXqHjCtk=";
   };
 
-  cargoHash = "sha256-oZNydOnD2+6gLAsT3YTSlWSQ06EftS7Tl/AvlTbL84U=";
+  cargoHash = "sha256-nULTz1H52L1kiTtViYfvxL+jrJ0uDk68oe8t5Hd7aCU=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix b/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix
index d302643eb47d..4f6460bd3a2d 100644
--- a/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spotify-qt/default.nix
@@ -28,6 +28,7 @@ mkDerivation rec {
 
    meta = with lib; {
     description = "Lightweight unofficial Spotify client using Qt";
+    mainProgram = "spotify-qt";
     homepage = "https://github.com/kraxarn/spotify-qt";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/audio/spotify-tui/0001-Add-Collection-SearchType.patch b/nixpkgs/pkgs/applications/audio/spotify-tui/0001-Add-Collection-SearchType.patch
deleted file mode 100644
index b9daa79a9719..000000000000
--- a/nixpkgs/pkgs/applications/audio/spotify-tui/0001-Add-Collection-SearchType.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 408e6a5170bbe9f854bf46e1cbae21265cf25294 Mon Sep 17 00:00:00 2001
-From: Florian Bruhin <me@the-compiler.org>
-Date: Mon, 25 Apr 2022 18:39:07 +0200
-Subject: [PATCH] Add Collection SearchType
-
-Backport of https://github.com/ramsayleung/rspotify/pull/306
----
- src/senum.rs | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/senum.rs b/src/senum.rs
-index c94c31c..79d8730 100644
---- a/src/senum.rs
-+++ b/src/senum.rs
-@@ -87,6 +87,7 @@ pub enum Type {
-     User,
-     Show,
-     Episode,
-+    Collection,
- }
- impl Type {
-     pub fn as_str(&self) -> &str {
-@@ -98,6 +99,7 @@ pub fn as_str(&self) -> &str {
-             Type::User => "user",
-             Type::Show => "show",
-             Type::Episode => "episode",
-+            Type::Collection => "collection",
-         }
-     }
- }
-@@ -112,6 +114,7 @@ fn from_str(s: &str) -> Result<Self, Self::Err> {
-             "user" => Ok(Type::User),
-             "show" => Ok(Type::Show),
-             "episode" => Ok(Type::Episode),
-+            "collection" => Ok(Type::Collection),
-             _ => Err(Error::new(ErrorKind::NoEnum(s.to_owned()))),
-         }
-     }
--- 
-2.35.3
-
diff --git a/nixpkgs/pkgs/applications/audio/spotify-tui/Cargo.lock b/nixpkgs/pkgs/applications/audio/spotify-tui/Cargo.lock
deleted file mode 100644
index 22ab43406c48..000000000000
--- a/nixpkgs/pkgs/applications/audio/spotify-tui/Cargo.lock
+++ /dev/null
@@ -1,2704 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "addr2line"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"
-dependencies = [
- "gimli",
-]
-
-[[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 = "aho-corasick"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "android_system_properties"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "ansi_term"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.71"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
-
-[[package]]
-name = "arboard"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47044a1809e2953fe6d084312b81dcb7d9ffc24fee45aa39e5b938f66f75b8a8"
-dependencies = [
- "clipboard-win",
- "core-graphics",
- "image",
- "log",
- "objc",
- "objc-foundation",
- "objc_id",
- "once_cell",
- "parking_lot",
- "scopeguard",
- "thiserror",
- "winapi 0.3.9",
- "x11rb",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi 0.1.19",
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "autocfg"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78"
-dependencies = [
- "autocfg 1.1.0",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "backtrace"
-version = "0.3.67"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"
-dependencies = [
- "addr2line",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "miniz_oxide 0.6.2",
- "object",
- "rustc-demangle",
-]
-
-[[package]]
-name = "base64"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "bitflags"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-
-[[package]]
-name = "block"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
-
-[[package]]
-name = "bumpalo"
-version = "3.12.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b"
-
-[[package]]
-name = "bytemuck"
-version = "1.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "bytes"
-version = "0.4.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
-dependencies = [
- "byteorder",
- "iovec",
-]
-
-[[package]]
-name = "bytes"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
-
-[[package]]
-name = "bytes"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
-
-[[package]]
-name = "cassowary"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
-
-[[package]]
-name = "cc"
-version = "1.0.79"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
-
-[[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 = "chrono"
-version = "0.4.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
-dependencies = [
- "iana-time-zone",
- "js-sys",
- "num-integer",
- "num-traits",
- "rustc-serialize",
- "serde",
- "time",
- "wasm-bindgen",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "clap"
-version = "2.34.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
-dependencies = [
- "ansi_term",
- "atty",
- "bitflags",
- "strsim 0.8.0",
- "textwrap",
- "unicode-width",
- "vec_map",
-]
-
-[[package]]
-name = "clipboard-win"
-version = "4.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
-dependencies = [
- "error-code",
- "str-buf",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "cloudabi"
-version = "0.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "color_quant"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
-
-[[package]]
-name = "core-foundation"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
-
-[[package]]
-name = "core-graphics"
-version = "0.21.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52a67c4378cf203eace8fb6567847eb641fd6ff933c1145a115c6ee820ebb978"
-dependencies = [
- "bitflags",
- "core-foundation",
- "foreign-types",
- "libc",
-]
-
-[[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 = "crossterm"
-version = "0.20.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0ebde6a9dd5e331cd6c6f48253254d117642c31653baa475e394657c59c1f7d"
-dependencies = [
- "bitflags",
- "crossterm_winapi",
- "libc",
- "mio 0.7.14",
- "parking_lot",
- "signal-hook",
- "signal-hook-mio",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "crossterm_winapi"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a6966607622438301997d3dac0d2f6e9a90c68bb6bc1785ea98456ab93c0507"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "darling"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcfbcb0c5961907597a7d1148e3af036268f2b773886b8bb3eeb1e1281d3d3d6"
-dependencies = [
- "darling_core",
- "darling_macro",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6afc018370c3bff3eb51f89256a6bdb18b4fdcda72d577982a14954a7a0b402c"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2 0.4.30",
- "quote 0.6.13",
- "strsim 0.7.0",
- "syn 0.15.44",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6d8dac1c6f1d29a41c4712b4400f878cb4fcc4c7628f298dd75038e024998d1"
-dependencies = [
- "darling_core",
- "quote 0.6.13",
- "syn 0.15.44",
-]
-
-[[package]]
-name = "deflate"
-version = "0.8.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174"
-dependencies = [
- "adler32",
- "byteorder",
-]
-
-[[package]]
-name = "derive_builder"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ac53fa6a3cda160df823a9346442525dcaf1e171999a1cf23e67067e4fd64d4"
-dependencies = [
- "darling",
- "derive_builder_core",
- "proc-macro2 0.4.30",
- "quote 0.6.13",
- "syn 0.15.44",
-]
-
-[[package]]
-name = "derive_builder_core"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0288a23da9333c246bb18c143426074a6ae96747995c5819d2947b64cd942b37"
-dependencies = [
- "darling",
- "proc-macro2 0.4.30",
- "quote 0.6.13",
- "syn 0.15.44",
-]
-
-[[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-sys"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
-dependencies = [
- "libc",
- "redox_users",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "dotenv"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0d0a1279c96732bc6800ce6337b6a614697b0e74ae058dc03c62ebeb78b4d86"
-dependencies = [
- "failure",
- "lazy_static",
- "regex",
-]
-
-[[package]]
-name = "either"
-version = "1.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
-
-[[package]]
-name = "encoding_rs"
-version = "0.8.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
-dependencies = [
- "cfg-if 1.0.0",
-]
-
-[[package]]
-name = "env_logger"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3"
-dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
-]
-
-[[package]]
-name = "errno"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "error-code"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
-dependencies = [
- "libc",
- "str-buf",
-]
-
-[[package]]
-name = "failure"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
-dependencies = [
- "backtrace",
- "failure_derive",
-]
-
-[[package]]
-name = "failure_derive"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 1.0.109",
- "synstructure",
-]
-
-[[package]]
-name = "fastrand"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
-dependencies = [
- "instant",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "form_urlencoded"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
-dependencies = [
- "percent-encoding 2.2.0",
-]
-
-[[package]]
-name = "fuchsia-cprng"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-
-[[package]]
-name = "fuchsia-zircon"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
-dependencies = [
- "bitflags",
- "fuchsia-zircon-sys",
-]
-
-[[package]]
-name = "fuchsia-zircon-sys"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-
-[[package]]
-name = "futures"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-channel"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
-dependencies = [
- "futures-core",
- "futures-sink",
-]
-
-[[package]]
-name = "futures-core"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
-
-[[package]]
-name = "futures-executor"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
-dependencies = [
- "futures-core",
- "futures-task",
- "futures-util",
-]
-
-[[package]]
-name = "futures-io"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
-
-[[package]]
-name = "futures-macro"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 2.0.15",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
-
-[[package]]
-name = "futures-task"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
-
-[[package]]
-name = "futures-util"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
-dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
- "futures-task",
- "memchr",
- "pin-project-lite 0.2.9",
- "pin-utils",
- "slab",
-]
-
-[[package]]
-name = "gethostname"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
-dependencies = [
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
-dependencies = [
- "cfg-if 1.0.0",
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "gimli"
-version = "0.27.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4"
-
-[[package]]
-name = "h2"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535"
-dependencies = [
- "bytes 0.5.6",
- "fnv",
- "futures-core",
- "futures-sink",
- "futures-util",
- "http",
- "indexmap",
- "slab",
- "tokio",
- "tokio-util",
- "tracing",
- "tracing-futures",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
-
-[[package]]
-name = "http"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
-dependencies = [
- "bytes 1.4.0",
- "fnv",
- "itoa 1.0.6",
-]
-
-[[package]]
-name = "http-body"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b"
-dependencies = [
- "bytes 0.5.6",
- "http",
-]
-
-[[package]]
-name = "httparse"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
-
-[[package]]
-name = "httpdate"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47"
-
-[[package]]
-name = "humantime"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
-dependencies = [
- "quick-error",
-]
-
-[[package]]
-name = "hyper"
-version = "0.13.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb"
-dependencies = [
- "bytes 0.5.6",
- "futures-channel",
- "futures-core",
- "futures-util",
- "h2",
- "http",
- "http-body",
- "httparse",
- "httpdate",
- "itoa 0.4.8",
- "pin-project",
- "socket2",
- "tokio",
- "tower-service",
- "tracing",
- "want",
-]
-
-[[package]]
-name = "hyper-tls"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed"
-dependencies = [
- "bytes 0.5.6",
- "hyper",
- "native-tls",
- "tokio",
- "tokio-tls",
-]
-
-[[package]]
-name = "iana-time-zone"
-version = "0.1.56"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c"
-dependencies = [
- "android_system_properties",
- "core-foundation-sys",
- "iana-time-zone-haiku",
- "js-sys",
- "wasm-bindgen",
- "windows",
-]
-
-[[package]]
-name = "iana-time-zone-haiku"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "ident_case"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
-
-[[package]]
-name = "idna"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
-dependencies = [
- "matches",
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "idna"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "image"
-version = "0.23.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1"
-dependencies = [
- "bytemuck",
- "byteorder",
- "color_quant",
- "num-iter",
- "num-rational",
- "num-traits",
- "png",
- "tiff",
-]
-
-[[package]]
-name = "indexmap"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg 1.1.0",
- "hashbrown",
-]
-
-[[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",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "1.0.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220"
-dependencies = [
- "hermit-abi 0.3.1",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "iovec"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "ipnet"
-version = "2.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f"
-
-[[package]]
-name = "itertools"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"
-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.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
-
-[[package]]
-name = "jpeg-decoder"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
-
-[[package]]
-name = "js-sys"
-version = "0.3.62"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68c16e1bfd491478ab155fd8b4896b86f9ede344949b641e61501e07c2b8b4d5"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "kernel32-sys"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-dependencies = [
- "winapi 0.2.8",
- "winapi-build",
-]
-
-[[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.144"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
-
-[[package]]
-name = "linked-hash-map"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f"
-
-[[package]]
-name = "lock_api"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
-dependencies = [
- "autocfg 1.1.0",
- "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 = "matches"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
-
-[[package]]
-name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg 1.1.0",
-]
-
-[[package]]
-name = "mime"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
-
-[[package]]
-name = "mime_guess"
-version = "2.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
-dependencies = [
- "mime",
- "unicase",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.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 1.1.0",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "mio"
-version = "0.6.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
-dependencies = [
- "cfg-if 0.1.10",
- "fuchsia-zircon",
- "fuchsia-zircon-sys",
- "iovec",
- "kernel32-sys",
- "libc",
- "log",
- "miow 0.2.2",
- "net2",
- "slab",
- "winapi 0.2.8",
-]
-
-[[package]]
-name = "mio"
-version = "0.7.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc"
-dependencies = [
- "libc",
- "log",
- "miow 0.3.7",
- "ntapi",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "mio-named-pipes"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656"
-dependencies = [
- "log",
- "mio 0.6.23",
- "miow 0.3.7",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "mio-uds"
-version = "0.6.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
-dependencies = [
- "iovec",
- "libc",
- "mio 0.6.23",
-]
-
-[[package]]
-name = "miow"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
-dependencies = [
- "kernel32-sys",
- "net2",
- "winapi 0.2.8",
- "ws2_32-sys",
-]
-
-[[package]]
-name = "miow"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "native-tls"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
-dependencies = [
- "lazy_static",
- "libc",
- "log",
- "openssl",
- "openssl-probe",
- "openssl-sys",
- "schannel",
- "security-framework",
- "security-framework-sys",
- "tempfile",
-]
-
-[[package]]
-name = "net2"
-version = "0.2.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631"
-dependencies = [
- "cfg-if 0.1.10",
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "nix"
-version = "0.20.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5e06129fb611568ef4e868c14b326274959aa70ff7776e9d55323531c374945"
-dependencies = [
- "bitflags",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "memoffset",
-]
-
-[[package]]
-name = "ntapi"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg 1.1.0",
- "num-traits",
-]
-
-[[package]]
-name = "num-iter"
-version = "0.1.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
-dependencies = [
- "autocfg 1.1.0",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
-dependencies = [
- "autocfg 1.1.0",
- "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 1.1.0",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
-dependencies = [
- "hermit-abi 0.2.6",
- "libc",
-]
-
-[[package]]
-name = "objc"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
-dependencies = [
- "malloc_buf",
-]
-
-[[package]]
-name = "objc-foundation"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
-dependencies = [
- "block",
- "objc",
- "objc_id",
-]
-
-[[package]]
-name = "objc_id"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
-dependencies = [
- "objc",
-]
-
-[[package]]
-name = "object"
-version = "0.30.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.17.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
-
-[[package]]
-name = "openssl"
-version = "0.10.52"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56"
-dependencies = [
- "bitflags",
- "cfg-if 1.0.0",
- "foreign-types",
- "libc",
- "once_cell",
- "openssl-macros",
- "openssl-sys",
-]
-
-[[package]]
-name = "openssl-macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 2.0.15",
-]
-
-[[package]]
-name = "openssl-probe"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
-
-[[package]]
-name = "openssl-sys"
-version = "0.9.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
- "vcpkg",
-]
-
-[[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.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
-dependencies = [
- "cfg-if 1.0.0",
- "instant",
- "libc",
- "redox_syscall 0.2.16",
- "smallvec",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
-
-[[package]]
-name = "percent-encoding"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
-
-[[package]]
-name = "pin-project"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "pin-project-lite"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
-
-[[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.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
-
-[[package]]
-name = "png"
-version = "0.16.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6"
-dependencies = [
- "bitflags",
- "crc32fast",
- "deflate",
- "miniz_oxide 0.3.7",
-]
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-[[package]]
-name = "proc-macro2"
-version = "0.4.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
-dependencies = [
- "unicode-xid 0.1.0",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.56"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quick-error"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-
-[[package]]
-name = "quote"
-version = "0.6.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
-dependencies = [
- "proc-macro2 0.4.30",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500"
-dependencies = [
- "proc-macro2 1.0.56",
-]
-
-[[package]]
-name = "rand"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-dependencies = [
- "autocfg 0.1.8",
- "libc",
- "rand_chacha 0.1.1",
- "rand_core 0.4.2",
- "rand_hc",
- "rand_isaac",
- "rand_jitter",
- "rand_os",
- "rand_pcg",
- "rand_xorshift",
- "winapi 0.3.9",
-]
-
-[[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.4",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
-dependencies = [
- "autocfg 0.1.8",
- "rand_core 0.3.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.4",
-]
-
-[[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.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
-dependencies = [
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "rand_isaac"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
-dependencies = [
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "rand_jitter"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
-dependencies = [
- "libc",
- "rand_core 0.4.2",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "rand_os"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
-dependencies = [
- "cloudabi",
- "fuchsia-cprng",
- "libc",
- "rand_core 0.4.2",
- "rdrand",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "rand_pcg"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
-dependencies = [
- "autocfg 0.1.8",
- "rand_core 0.4.2",
-]
-
-[[package]]
-name = "rand_xorshift"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
-dependencies = [
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "random"
-version = "0.12.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97d13a3485349981c90c79112a11222c3e6e75de1d52b87a7525b3bf5361420f"
-
-[[package]]
-name = "rdrand"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-dependencies = [
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "redox_users"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
-dependencies = [
- "getrandom",
- "redox_syscall 0.2.16",
- "thiserror",
-]
-
-[[package]]
-name = "regex"
-version = "1.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c"
-
-[[package]]
-name = "reqwest"
-version = "0.10.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0718f81a8e14c4dbb3b34cf23dc6aaf9ab8a0dfec160c534b3dbca1aaa21f47c"
-dependencies = [
- "base64 0.13.1",
- "bytes 0.5.6",
- "encoding_rs",
- "futures-core",
- "futures-util",
- "http",
- "http-body",
- "hyper",
- "hyper-tls",
- "ipnet",
- "js-sys",
- "lazy_static",
- "log",
- "mime",
- "mime_guess",
- "native-tls",
- "percent-encoding 2.2.0",
- "pin-project-lite 0.2.9",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "tokio",
- "tokio-socks",
- "tokio-tls",
- "url 2.3.1",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
- "winreg",
-]
-
-[[package]]
-name = "rspotify"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eefd7bb58b714606b30a490f751d7926942e2874eef5e82934d60d7a4a68dca4"
-dependencies = [
- "base64 0.10.1",
- "chrono",
- "derive_builder",
- "dotenv",
- "env_logger",
- "failure",
- "itertools",
- "lazy_static",
- "log",
- "percent-encoding 1.0.1",
- "rand 0.6.5",
- "random",
- "reqwest",
- "serde",
- "serde_derive",
- "serde_json",
- "url 1.7.2",
- "webbrowser",
-]
-
-[[package]]
-name = "rustc-demangle"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
-
-[[package]]
-name = "rustc-serialize"
-version = "0.3.24"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
-
-[[package]]
-name = "rustix"
-version = "0.37.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f79bef90eb6d984c72722595b5b1348ab39275a5e5123faca6863bf07d75a4e0"
-dependencies = [
- "bitflags",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
-
-[[package]]
-name = "schannel"
-version = "0.1.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3"
-dependencies = [
- "windows-sys 0.42.0",
-]
-
-[[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
-name = "security-framework"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23a2ac85147a3a11d77ecf1bc7166ec0b92febfa4461c37944e180f319ece467"
-dependencies = [
- "bitflags",
- "core-foundation",
- "core-foundation-sys",
- "libc",
- "security-framework-sys",
-]
-
-[[package]]
-name = "security-framework-sys"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "serde"
-version = "1.0.163"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.163"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 2.0.15",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.96"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
-dependencies = [
- "itoa 1.0.6",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_urlencoded"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
-dependencies = [
- "form_urlencoded",
- "itoa 1.0.6",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_yaml"
-version = "0.8.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b"
-dependencies = [
- "indexmap",
- "ryu",
- "serde",
- "yaml-rust",
-]
-
-[[package]]
-name = "signal-hook"
-version = "0.3.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9"
-dependencies = [
- "libc",
- "signal-hook-registry",
-]
-
-[[package]]
-name = "signal-hook-mio"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
-dependencies = [
- "libc",
- "mio 0.7.14",
- "signal-hook",
-]
-
-[[package]]
-name = "signal-hook-registry"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "slab"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
-dependencies = [
- "autocfg 1.1.0",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
-
-[[package]]
-name = "socket2"
-version = "0.3.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"
-dependencies = [
- "cfg-if 1.0.0",
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "spotify-tui"
-version = "0.25.0"
-dependencies = [
- "anyhow",
- "arboard",
- "backtrace",
- "clap",
- "crossterm",
- "dirs",
- "rand 0.8.5",
- "rspotify",
- "serde",
- "serde_json",
- "serde_yaml",
- "tokio",
- "tui",
- "unicode-width",
-]
-
-[[package]]
-name = "str-buf"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
-
-[[package]]
-name = "strsim"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
-
-[[package]]
-name = "strsim"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-
-[[package]]
-name = "syn"
-version = "0.15.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
-dependencies = [
- "proc-macro2 0.4.30",
- "quote 0.6.13",
- "unicode-xid 0.1.0",
-]
-
-[[package]]
-name = "syn"
-version = "1.0.109"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "unicode-ident",
-]
-
-[[package]]
-name = "synstructure"
-version = "0.12.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 1.0.109",
- "unicode-xid 0.2.4",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
-dependencies = [
- "cfg-if 1.0.0",
- "fastrand",
- "redox_syscall 0.3.5",
- "rustix",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
-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.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 2.0.15",
-]
-
-[[package]]
-name = "tiff"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437"
-dependencies = [
- "jpeg-decoder",
- "miniz_oxide 0.4.4",
- "weezl",
-]
-
-[[package]]
-name = "time"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
-dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "tinyvec"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-
-[[package]]
-name = "tokio"
-version = "0.2.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092"
-dependencies = [
- "bytes 0.5.6",
- "fnv",
- "futures-core",
- "iovec",
- "lazy_static",
- "libc",
- "memchr",
- "mio 0.6.23",
- "mio-named-pipes",
- "mio-uds",
- "num_cpus",
- "pin-project-lite 0.1.12",
- "signal-hook-registry",
- "slab",
- "tokio-macros",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "tokio-macros"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "tokio-socks"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d611fd5d241872372d52a0a3d309c52d0b95a6a67671a6c8f7ab2c4a37fb2539"
-dependencies = [
- "bytes 0.4.12",
- "either",
- "futures",
- "thiserror",
- "tokio",
-]
-
-[[package]]
-name = "tokio-tls"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343"
-dependencies = [
- "native-tls",
- "tokio",
-]
-
-[[package]]
-name = "tokio-util"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499"
-dependencies = [
- "bytes 0.5.6",
- "futures-core",
- "futures-sink",
- "log",
- "pin-project-lite 0.1.12",
- "tokio",
-]
-
-[[package]]
-name = "tower-service"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
-
-[[package]]
-name = "tracing"
-version = "0.1.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
-dependencies = [
- "cfg-if 1.0.0",
- "log",
- "pin-project-lite 0.2.9",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
-dependencies = [
- "once_cell",
-]
-
-[[package]]
-name = "tracing-futures"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
-dependencies = [
- "pin-project",
- "tracing",
-]
-
-[[package]]
-name = "try-lock"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
-
-[[package]]
-name = "tui"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39c8ce4e27049eed97cfa363a5048b09d995e209994634a0efc26a14ab6c0c23"
-dependencies = [
- "bitflags",
- "cassowary",
- "crossterm",
- "unicode-segmentation",
- "unicode-width",
-]
-
-[[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.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "unicode-segmentation"
-version = "1.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
-
-[[package]]
-name = "unicode-xid"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-
-[[package]]
-name = "url"
-version = "1.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
-dependencies = [
- "idna 0.1.5",
- "matches",
- "percent-encoding 1.0.1",
-]
-
-[[package]]
-name = "url"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
-dependencies = [
- "form_urlencoded",
- "idna 0.3.0",
- "percent-encoding 2.2.0",
-]
-
-[[package]]
-name = "vcpkg"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-
-[[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 = "want"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
-dependencies = [
- "log",
- "try-lock",
-]
-
-[[package]]
-name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.85"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b6cb788c4e39112fbe1822277ef6fb3c55cd86b95cb3d3c4c1c9597e4ac74b4"
-dependencies = [
- "cfg-if 1.0.0",
- "serde",
- "serde_json",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.85"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35e522ed4105a9d626d885b35d62501b30d9666283a5c8be12c14a8bdafe7822"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 2.0.15",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-futures"
-version = "0.4.35"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "083abe15c5d88556b77bdf7aef403625be9e327ad37c62c4e4129af740168163"
-dependencies = [
- "cfg-if 1.0.0",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.85"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "358a79a0cb89d21db8120cbfb91392335913e4890665b1a7981d9e956903b434"
-dependencies = [
- "quote 1.0.27",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.85"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4783ce29f09b9d93134d41297aded3a712b7b979e9c6f28c32cb88c973a94869"
-dependencies = [
- "proc-macro2 1.0.56",
- "quote 1.0.27",
- "syn 2.0.15",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.85"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a901d592cafaa4d711bc324edfaff879ac700b19c3dfd60058d2b445be2691eb"
-
-[[package]]
-name = "web-sys"
-version = "0.3.62"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16b5f940c7edfdc6d12126d98c9ef4d1b3d470011c47c76a6581df47ad9ba721"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "webbrowser"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecad156490d6b620308ed411cfee90d280b3cbd13e189ea0d3fada8acc89158a"
-dependencies = [
- "web-sys",
- "widestring",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "weezl"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
-
-[[package]]
-name = "widestring"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c"
-
-[[package]]
-name = "winapi"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-
-[[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-build"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-
-[[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 0.3.9",
-]
-
-[[package]]
-name = "winapi-wsapoll"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
-dependencies = [
- "windows-targets 0.48.0",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.42.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-dependencies = [
- "windows_aarch64_gnullvm 0.42.2",
- "windows_aarch64_msvc 0.42.2",
- "windows_i686_gnu 0.42.2",
- "windows_i686_msvc 0.42.2",
- "windows_x86_64_gnu 0.42.2",
- "windows_x86_64_gnullvm 0.42.2",
- "windows_x86_64_msvc 0.42.2",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.45.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
-dependencies = [
- "windows-targets 0.42.2",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-dependencies = [
- "windows-targets 0.48.0",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
-dependencies = [
- "windows_aarch64_gnullvm 0.42.2",
- "windows_aarch64_msvc 0.42.2",
- "windows_i686_gnu 0.42.2",
- "windows_i686_msvc 0.42.2",
- "windows_x86_64_gnu 0.42.2",
- "windows_x86_64_gnullvm 0.42.2",
- "windows_x86_64_msvc 0.42.2",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
-dependencies = [
- "windows_aarch64_gnullvm 0.48.0",
- "windows_aarch64_msvc 0.48.0",
- "windows_i686_gnu 0.48.0",
- "windows_i686_msvc 0.48.0",
- "windows_x86_64_gnu 0.48.0",
- "windows_x86_64_gnullvm 0.48.0",
- "windows_x86_64_msvc 0.48.0",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
-
-[[package]]
-name = "winreg"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"
-dependencies = [
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "ws2_32-sys"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
-dependencies = [
- "winapi 0.2.8",
- "winapi-build",
-]
-
-[[package]]
-name = "x11rb"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ffb080b3f2f616242a4eb8e7d325035312127901025b0052bc3154a282d0f19"
-dependencies = [
- "gethostname",
- "nix",
- "winapi 0.3.9",
- "winapi-wsapoll",
-]
-
-[[package]]
-name = "yaml-rust"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
-dependencies = [
- "linked-hash-map",
-]
diff --git a/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix b/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix
deleted file mode 100644
index bca06406eba9..000000000000
--- a/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ lib
-, rustPlatform
-, fetchFromGitHub
-, stdenv
-, installShellFiles
-, pkg-config
-, openssl
-, python3
-, libxcb
-, AppKit
-, Security
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "spotify-tui";
-  version = "0.25.0";
-
-  src = fetchFromGitHub {
-    owner = "Rigellute";
-    repo = "spotify-tui";
-    rev = "v${version}";
-    hash = "sha256-L5gg6tjQuYoAC89XfKE38KCFONwSAwfNoFEUPH4jNAI=";
-  };
-
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-  };
-
-  nativeBuildInputs = [ installShellFiles ] ++ lib.optionals stdenv.isLinux [ pkg-config python3 ];
-  buildInputs = [ ]
-    ++ lib.optionals stdenv.isLinux [ openssl libxcb ]
-    ++ lib.optionals stdenv.isDarwin [ AppKit Security ];
-
-  postPatch = ''
-    # update Cargo.lock to fix build
-    ln -sf ${./Cargo.lock} Cargo.lock
-
-    # Add patch adding the collection variant to rspotify used by spotify-tu
-    # This fixes the issue of getting an error when playing liked songs
-    # see https://github.com/NixOS/nixpkgs/pull/170915
-    patch -p1 -d $cargoDepsCopy/rspotify-0.10.0 < ${./0001-Add-Collection-SearchType.patch}
-  '';
-
-  postInstall = ''
-    for shell in bash fish zsh; do
-      $out/bin/spt --completions $shell > spt.$shell
-      installShellCompletion spt.$shell
-    done
-  '';
-
-  meta = with lib; {
-    description = "Spotify for the terminal written in Rust";
-    homepage = "https://github.com/Rigellute/spotify-tui";
-    changelog = "https://github.com/Rigellute/spotify-tui/blob/v${version}/CHANGELOG.md";
-    license = with licenses; [ mit /* or */ asl20 ];
-    maintainers = with maintainers; [ jwijenbergh ];
-    mainProgram = "spt";
-  };
-}
diff --git a/nixpkgs/pkgs/applications/audio/spotifyd/default.nix b/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
index 0e41bedb2650..6de9493ab8e8 100644
--- a/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spotifyd/default.nix
@@ -9,16 +9,16 @@
 
 rustPackages.rustPlatform.buildRustPackage rec {
   pname = "spotifyd";
-  version = "0.3.5";
+  version = "0.3.5-unstable-2024-02-18";
 
   src = fetchFromGitHub {
     owner = "Spotifyd";
     repo = "spotifyd";
-    rev = "v${version}";
-    hash = "sha256-+P85FWJIsfAv8/DnQFxfoWvNY8NpbZ2xUidfwN8tiA8=";
+    rev = "ff2f7a06e54bf05afd57a0243dc9f67abc15f040";
+    hash = "sha256-nebAd4a+ht+blRP52OF830/Dm15ZPwRL4IPWmmT9ViM=";
   };
 
-  cargoHash = "sha256-j+2yEtn3D+vNRcY4+NnqSX4xRQIE5Sq7bentxTh6kMI=";
+  cargoHash = "sha256-6BRIMTrWTwvX3yIGEYEvigMT+n4EtaruMdrej2Dd49w=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -40,7 +40,7 @@ rustPackages.rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "An open source Spotify client running as a UNIX daemon";
     homepage = "https://spotifyd.rs/";
-    changelog = "https://github.com/Spotifyd/spotifyd/raw/v${version}/CHANGELOG.md";
+    changelog = "https://github.com/Spotifyd/spotifyd/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ anderslundstedt Br1ght0ne marsam ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/audio/squeezelite/default.nix b/nixpkgs/pkgs/applications/audio/squeezelite/default.nix
index 3fd633506b2d..694dd04d12a9 100644
--- a/nixpkgs/pkgs/applications/audio/squeezelite/default.nix
+++ b/nixpkgs/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.1468";
+  version = "2.0.0.1473";
 
   src = fetchFromGitHub {
     owner = "ralph-irving";
     repo = "squeezelite";
-    rev = "fd89d67b1b9a17a6dd212be0c91d0417b440f60a";
-    hash = "sha256-wYVRlv+Y1jvdAGlj2zXKUhQBwWX9pGgNX6U71PsfySg=";
+    rev = "66c9b6a21834019a0230c39fcee74b6bf2891f7d";
+    hash = "sha256-MCH7vltF3jLGfxcRspXg9eQMx+e+lHSoxIanf91NrE0=";
   };
 
   buildInputs = [ flac libmad libvorbis mpg123 ]
diff --git a/nixpkgs/pkgs/applications/audio/sublime-music/default.nix b/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
index a2f6b17a8746..b2cf3a5d842d 100644
--- a/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
@@ -117,6 +117,7 @@ python.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "GTK3 Subsonic/Airsonic client";
+    mainProgram = "sublime-music";
     homepage = "https://sublimemusic.app/";
     changelog = "https://github.com/sublime-music/sublime-music/blob/v${version}/CHANGELOG.rst";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/audio/surge-XT/default.nix b/nixpkgs/pkgs/applications/audio/surge-XT/default.nix
index 9f234b5e71c0..63cf1110d784 100644
--- a/nixpkgs/pkgs/applications/audio/surge-XT/default.nix
+++ b/nixpkgs/pkgs/applications/audio/surge-XT/default.nix
@@ -2,7 +2,6 @@
 , lib
 , fetchFromGitHub
 , cmake
-, gitMinimal
 , pkg-config
 , alsa-lib
 , freetype
@@ -23,15 +22,12 @@ stdenv.mkDerivation rec {
     owner = "surge-synthesizer";
     repo = "surge";
     rev = "release_xt_${version}";
-    branchName = "release-xt/${version}";
     fetchSubmodules = true;
-    leaveDotGit = true;
-    sha256 = "sha256-q6qs/OhIakF+Gc8Da3pnfkUGYDUoJbvee0o8dfrRI2U=";
+    sha256 = "sha256-xcbZ5TC2W2PVzAkpoKPFIgW1oRGaC+ynQYot3cb5NAQ=";
   };
 
   nativeBuildInputs = [
     cmake
-    gitMinimal
     pkg-config
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/synthv1/default.nix b/nixpkgs/pkgs/applications/audio/synthv1/default.nix
index b0e9e9bde9d0..770c5d924a1d 100644
--- a/nixpkgs/pkgs/applications/audio/synthv1/default.nix
+++ b/nixpkgs/pkgs/applications/audio/synthv1/default.nix
@@ -15,6 +15,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "An old-school 4-oscillator subtractive polyphonic synthesizer with stereo fx";
+    mainProgram = "synthv1_jack";
     homepage = "https://synthv1.sourceforge.io/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/audio/tauon/default.nix b/nixpkgs/pkgs/applications/audio/tauon/default.nix
index 979907202835..09136728a4b9 100644
--- a/nixpkgs/pkgs/applications/audio/tauon/default.nix
+++ b/nixpkgs/pkgs/applications/audio/tauon/default.nix
@@ -134,6 +134,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "The Linux desktop music player from the future";
+    mainProgram = "tauon";
     homepage = "https://tauonmusicbox.rocks/";
     changelog = "https://github.com/Taiko2k/TauonMusicBox/releases/tag/v${finalAttrs.version}";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/applications/audio/tenacity/default.nix b/nixpkgs/pkgs/applications/audio/tenacity/default.nix
index 6c4dd61c6674..c2879d412324 100644
--- a/nixpkgs/pkgs/applications/audio/tenacity/default.nix
+++ b/nixpkgs/pkgs/applications/audio/tenacity/default.nix
@@ -150,6 +150,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Sound editor with graphical UI";
+    mainProgram = "tenacity";
     homepage = "https://tenacityaudio.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ irenes lheckemann ];
diff --git a/nixpkgs/pkgs/applications/audio/tony/default.nix b/nixpkgs/pkgs/applications/audio/tony/default.nix
index 33561122b191..a0af1a706643 100644
--- a/nixpkgs/pkgs/applications/audio/tony/default.nix
+++ b/nixpkgs/pkgs/applications/audio/tony/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Pitch and note annotation of unaccompanied melody";
+    mainProgram = "tony";
     homepage = "https://www.sonicvisualiser.org/tony/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ orivej ];
diff --git a/nixpkgs/pkgs/applications/audio/traverso/default.nix b/nixpkgs/pkgs/applications/audio/traverso/default.nix
index 698a03b4a713..b8a81ec7a8e9 100644
--- a/nixpkgs/pkgs/applications/audio/traverso/default.nix
+++ b/nixpkgs/pkgs/applications/audio/traverso/default.nix
@@ -22,6 +22,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Cross-platform multitrack audio recording and audio editing suite";
+    mainProgram = "traverso";
     homepage = "https://traverso-daw.org/";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix b/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
index c0067779b7b2..c086436de09f 100644
--- a/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
+++ b/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
@@ -4,7 +4,6 @@
 , curl
 , fetchFromBitbucket
 , fetchFromGitHub
-, fetchzip
 , ghc_filesystem
 , glew
 , glfw
@@ -19,8 +18,6 @@
 , libjack2
 , libpulseaudio
 , libsamplerate
-, libXext
-, libXi
 , makeDesktopItem
 , makeWrapper
 , pkg-config
@@ -114,8 +111,8 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  pname = "VCV-Rack";
-  version = "2.4.0";
+  pname = "vcv-rack";
+  version = "2.4.1";
 
   desktopItems = [
     (makeDesktopItem {
@@ -135,7 +132,7 @@ stdenv.mkDerivation rec {
     owner = "VCVRack";
     repo = "Rack";
     rev = "v${version}";
-    sha256 = "0azrqyx5as4jmk9dxb7cj7x9dha81i0mm9pkvdv944qyccqwg55i";
+    hash = "sha256-Gn/sFltLXX2mLv4dDqmr/UPd+JBXVkIZGwMI6Rm0Ih4=";
   };
 
   patches = [
@@ -169,6 +166,10 @@ stdenv.mkDerivation rec {
     cp -r ${fundamental-source} plugins/Fundamental/
     chmod -R +rw plugins/Fundamental # will be used as build dir
     substituteInPlace plugin.mk --replace ":= all" ":= dist"
+    substituteInPlace plugins/Fundamental/src/Logic.cpp \
+      --replace \
+        "LightButton<VCVBezelBig, VCVBezelLightBig<WhiteLight>>" \
+        "struct rack::componentlibrary::LightButton<VCVBezelBig, VCVBezelLightBig<WhiteLight>>"
 
     # Fix reference to zenity
     substituteInPlace dep/osdialog/osdialog_zenity.c \
diff --git a/nixpkgs/pkgs/applications/audio/vmpk/default.nix b/nixpkgs/pkgs/applications/audio/vmpk/default.nix
index c40af7b046ed..7802c6cce704 100644
--- a/nixpkgs/pkgs/applications/audio/vmpk/default.nix
+++ b/nixpkgs/pkgs/applications/audio/vmpk/default.nix
@@ -23,6 +23,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Virtual MIDI Piano Keyboard";
+    mainProgram = "vmpk";
     homepage = "http://vmpk.sourceforge.net/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ orivej ];
diff --git a/nixpkgs/pkgs/applications/audio/waylyrics/default.nix b/nixpkgs/pkgs/applications/audio/waylyrics/default.nix
index f22f4f1e8203..9f55645a56bb 100644
--- a/nixpkgs/pkgs/applications/audio/waylyrics/default.nix
+++ b/nixpkgs/pkgs/applications/audio/waylyrics/default.nix
@@ -55,6 +55,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Desktop lyrics with QQ and NetEase Music source";
+    mainProgram = "waylyrics";
     homepage = "https://github.com/poly000/waylyrics";
     license = with licenses; [ mit cc-by-40 ];
     maintainers = with maintainers; [ shadowrz aleksana ];
diff --git a/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix b/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix
index e28d773d6e2a..02336f753450 100644
--- a/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix
+++ b/nixpkgs/pkgs/applications/audio/xsynth-dssi/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation  rec {
 
   meta = with lib; {
     description = "Classic-analog (VCOs-VCF-VCA) style software synthesizer";
+    mainProgram = "Xsynth_gtk";
     longDescription = ''
       Xsynth-DSSI is a classic-analog (VCOs-VCF-VCA) style software
       synthesizer which operates as a plugin for the DSSI Soft Synth
diff --git a/nixpkgs/pkgs/applications/audio/yams/default.nix b/nixpkgs/pkgs/applications/audio/yams/default.nix
index 96c1ab27b72c..e4afe4ad2729 100644
--- a/nixpkgs/pkgs/applications/audio/yams/default.nix
+++ b/nixpkgs/pkgs/applications/audio/yams/default.nix
@@ -23,6 +23,7 @@ python3Packages.buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/Berulacks/yams";
     description = "Last.FM scrobbler for MPD";
+    mainProgram = "yams";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ccellado ];
   };
diff --git a/nixpkgs/pkgs/applications/audio/yesplaymusic/default.nix b/nixpkgs/pkgs/applications/audio/yesplaymusic/default.nix
index aee0d1d192fe..a7f81dcf4c40 100644
--- a/nixpkgs/pkgs/applications/audio/yesplaymusic/default.nix
+++ b/nixpkgs/pkgs/applications/audio/yesplaymusic/default.nix
@@ -65,6 +65,7 @@ let
 
   meta = with lib; {
     description = "A good-looking third-party netease cloud music player";
+    mainProgram = "yesplaymusic";
     homepage = "https://github.com/qier222/YesPlayMusic/";
     license = licenses.mit;
     maintainers = with maintainers; [ ChaosAttractor ];
diff --git a/nixpkgs/pkgs/applications/audio/youtube-music/default.nix b/nixpkgs/pkgs/applications/audio/youtube-music/default.nix
index cfb97b549a06..7f6b7865054f 100644
--- a/nixpkgs/pkgs/applications/audio/youtube-music/default.nix
+++ b/nixpkgs/pkgs/applications/audio/youtube-music/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitHub
-, buildNpmPackage
 , makeWrapper
 , electron
 , python3
@@ -14,21 +13,17 @@
 , makeDesktopItem
 }:
 
-let
+stdenv.mkDerivation (finalAttrs: {
   pname = "youtube-music";
-  version = "3.1.0";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = "th-ch";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-6ZiftpdCwxCkJzcHryVrUKzM+mM1eQpdLNFl0Dja59Q=";
+    repo = "youtube-music";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-N6TzDTKvMyasksE0qcEGKeNjGAD08OzxpmpoQ11/ZW4=";
   };
 
-in
-stdenv.mkDerivation (finalAttrs: {
-  inherit pname version src;
-
   pnpmDeps = stdenvNoCC.mkDerivation {
     pname = "${finalAttrs.pname}-pnpm-deps";
     inherit (finalAttrs) src version ELECTRON_SKIP_BINARY_DOWNLOAD;
@@ -51,17 +46,15 @@ stdenv.mkDerivation (finalAttrs: {
     dontBuild = true;
     dontFixup = true;
     outputHashMode = "recursive";
-    outputHashAlgo = "sha256";
     outputHash = {
-      x86_64-linux = "sha256-Oy11V7FXfVhLUR9gX0sjQEFuVPFpbaVdT518oOSLcvA=";
-      aarch64-linux = "sha256-6nXemaGiQjp2stjjKItPJ62VcH5Q5pRf63qKtl2haXI=";
-      x86_64-darwin = "sha256-jSMAw+AMD63vqPckZjblw4EDngA4E8h0WlsZu3hUShY=";
-      aarch64-darwin = "sha256-zujXURpIcw7IOw63AW167h6cywYXydhHZMzA2apGZAs=";
+      x86_64-linux = "sha256-V6CSawxBWFbXmAPbck0xCXqRlANpqFAoqSAB4Duf8qM=";
+      aarch64-linux = "sha256-cqBn35soV14CmobKt0napRELio4HKKA8Iw3QSWTxzP8=";
+      x86_64-darwin = "sha256-DY9T1N8Hxr57/XisYT+u2+hQvYMIiyQ3UHeTuA6BhSY=";
+      aarch64-darwin = "sha256-3Zk0SyhVKaz5QdO69/xzWFZj9ueJS6GLWhfW7odWvHc=";
     }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
   };
 
-  nativeBuildInputs =
-    [ makeWrapper python3 nodePackages.pnpm nodePackages.nodejs ]
+  nativeBuildInputs = [ makeWrapper python3 nodePackages.pnpm nodePackages.nodejs ]
     ++ lib.optionals (!stdenv.isDarwin) [ copyDesktopItems ];
 
 
diff --git a/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix b/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
index 0060e8d4c7f4..20dcd0d491e8 100644
--- a/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
+++ b/nixpkgs/pkgs/applications/audio/zynaddsubfx/default.nix
@@ -141,6 +141,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "High quality software synthesizer (${guiName} GUI)";
+    mainProgram = "zynaddsubfx";
     homepage =
       if guiModule == "zest"
       then "https://zynaddsubfx.sourceforge.io/zyn-fusion.html"
diff --git a/nixpkgs/pkgs/applications/backup/urbackup-client/default.nix b/nixpkgs/pkgs/applications/backup/urbackup-client/default.nix
index ed5f59e2c41c..3e6158f69ab5 100644
--- a/nixpkgs/pkgs/applications/backup/urbackup-client/default.nix
+++ b/nixpkgs/pkgs/applications/backup/urbackup-client/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     description = "An easy to setup Open Source client/server backup system";
     longDescription = "An easy to setup Open Source client/server backup system, that through a combination of image and file backups accomplishes both data safety and a fast restoration time";
     homepage = "https://www.urbackup.org/index.html";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.mgttlinger ];
   };
diff --git a/nixpkgs/pkgs/applications/blockchains/bisq-desktop/default.nix b/nixpkgs/pkgs/applications/blockchains/bisq-desktop/default.nix
index 8e6881f0d7e8..31c044f39c61 100644
--- a/nixpkgs/pkgs/applications/blockchains/bisq-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/bisq-desktop/default.nix
@@ -9,7 +9,7 @@
 , dpkg
 , writeScript
 , bash
-, strip-nondeterminism
+, stripJavaArchivesHook
 , tor
 , zip
 , xz
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     dpkg
     imagemagick
     makeWrapper
-    strip-nondeterminism
+    stripJavaArchivesHook
     xz
     zip
     findutils
@@ -89,7 +89,6 @@ stdenv.mkDerivation rec {
     tar --sort=name --mtime="@$SOURCE_DATE_EPOCH" -cJf native/linux/x64/tor.tar.xz tor
     tor_jar_file=$(find ./opt/bisq/lib/app -name "tor-binary-linux64-*.jar")
     zip -r $tor_jar_file native
-    strip-nondeterminism ./opt/bisq/lib/app/*.jar
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin-abc/default.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-abc/default.nix
index 126b6ef74229..2124cfec4770 100644
--- a/nixpkgs/pkgs/applications/blockchains/bitcoin-abc/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-abc/default.nix
@@ -25,13 +25,13 @@
 
 mkDerivation rec {
   pname = "bitcoin" + lib.optionalString (!withGui) "d" + "-abc";
-  version = "0.28.11";
+  version = "0.28.12";
 
   src = fetchFromGitHub {
     owner = "bitcoin-ABC";
     repo = "bitcoin-abc";
     rev = "v${version}";
-    hash = "sha256-JOAEaz9b89qIpHOJ+aHMu8RVpEvzuVtFv8plUMKcmlM=";
+    hash = "sha256-D8ZKxvB8kfNkVTaI6uESEzw+ABtmNk0nJLK5N/pJ6W8=";
   };
 
   nativeBuildInputs = [ pkg-config cmake ];
diff --git a/nixpkgs/pkgs/applications/blockchains/cgminer/default.nix b/nixpkgs/pkgs/applications/blockchains/cgminer/default.nix
index 7d2dbe920858..1f8cf152e080 100644
--- a/nixpkgs/pkgs/applications/blockchains/cgminer/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/cgminer/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "CPU/GPU miner in c for bitcoin";
+    mainProgram = "cgminer";
     homepage = "https://github.com/ckolivas/cgminer";
     license = licenses.gpl3;
     maintainers = with maintainers; [ offline mmahut ];
diff --git a/nixpkgs/pkgs/applications/blockchains/clightning/default.nix b/nixpkgs/pkgs/applications/blockchains/clightning/default.nix
index 2e3ec0e3143a..cf8279e78c7b 100644
--- a/nixpkgs/pkgs/applications/blockchains/clightning/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/clightning/default.nix
@@ -22,11 +22,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "clightning";
-  version = "24.02";
+  version = "24.02.1";
 
   src = fetchurl {
     url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
-    sha256 = "sha256-hud6NU2apAJNf2epNk+3nwTUmRy5DfNOYiGp402H4ik=";
+    sha256 = "sha256-cz4rQUEaWILZMxmIP4V15pWf4zow5PDeWJzn5FEaUSs=";
   };
 
   # when building on darwin we need dawin.cctools to provide the correct libtool
diff --git a/nixpkgs/pkgs/applications/blockchains/dcrwallet/default.nix b/nixpkgs/pkgs/applications/blockchains/dcrwallet/default.nix
index fa604e9aac93..6fe4afa5b584 100644
--- a/nixpkgs/pkgs/applications/blockchains/dcrwallet/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/dcrwallet/default.nix
@@ -15,6 +15,13 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
+  checkFlags = [
+    # Test fails with:
+    # 'x509_test.go:201: server did not report bad certificate error;
+    # instead errored with [...] tls: unknown certificate authority (*url.Error)'
+    "-skip=^TestUntrustedClientCert$"
+  ];
+
   meta = {
     homepage = "https://decred.org";
     description = "A secure Decred wallet daemon written in Go (golang)";
diff --git a/nixpkgs/pkgs/applications/blockchains/dogecoin/default.nix b/nixpkgs/pkgs/applications/blockchains/dogecoin/default.nix
deleted file mode 100644
index 1c6a7212e2ed..000000000000
--- a/nixpkgs/pkgs/applications/blockchains/dogecoin/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ lib, stdenv , fetchFromGitHub
-, pkg-config, autoreconfHook
-, db5, openssl, boost, zlib, miniupnpc, libevent
-, protobuf, qtbase ? null
-, wrapQtAppsHook ? null, qttools ? null, qmake ? null, qrencode
-, withGui, withUpnp ? true, withUtils ? true, withWallet ? true
-, withZmq ? true, zeromq, util-linux ? null, Cocoa ? null }:
-
-stdenv.mkDerivation rec {
-  pname = "dogecoin" + lib.optionalString (!withGui) "d";
-  version = "1.14.6";
-
-  src = fetchFromGitHub {
-    owner = "dogecoin";
-    repo = "dogecoin";
-    rev = "v${version}";
-    sha256 = "sha256-PmbmmA2Mq07dwB3cI7A9c/ewtu0I+sWvQT39Yekm/sU=";
-  };
-
-  preConfigure = lib.optionalString withGui ''
-    export LRELEASE=${lib.getDev qttools}/bin/lrelease
-  '';
-
-  nativeBuildInputs = [ pkg-config autoreconfHook util-linux ]
-    ++ lib.optionals withGui [ wrapQtAppsHook qttools ];
-
-  buildInputs = [ openssl protobuf boost zlib libevent ]
-    ++ lib.optionals withGui [ qtbase qrencode ]
-    ++ lib.optionals withUpnp [ miniupnpc ]
-    ++ lib.optionals withWallet [ db5 ]
-    ++ lib.optionals withZmq [ zeromq ]
-    ++ lib.optionals stdenv.isDarwin [ Cocoa ];
-
-  configureFlags = [
-    "--with-incompatible-bdb"
-    "--with-boost-libdir=${boost.out}/lib"
-  ] ++ lib.optionals (!withGui) [ "--with-gui=no" ]
-    ++ lib.optionals (!withUpnp) [ "--without-miniupnpc" ]
-    ++ lib.optionals (!withUtils) [ "--without-utils" ]
-    ++ lib.optionals (!withWallet) [ "--disable-wallet" ]
-    ++ lib.optionals (!withZmq) [ "--disable-zmq" ];
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "Wow, such coin, much shiba, very rich";
-    longDescription = ''
-      Dogecoin is a decentralized, peer-to-peer digital currency that
-      enables you to easily send money online. Think of it as "the
-      internet currency."
-      It is named after a famous Internet meme, the "Doge" - a Shiba Inu dog.
-    '';
-    homepage = "https://www.dogecoin.com/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ edwtjo offline ];
-    platforms = platforms.unix;
-    broken = true;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/blockchains/exodus/default.nix b/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
index 323bca0844cc..60189088b201 100644
--- a/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exodus";
-  version = "24.2.12";
+  version = "24.11.5";
 
   src = fetchurl {
     name = "exodus-linux-x64-${version}.zip";
     url = "https://downloads.exodus.com/releases/${pname}-linux-x64-${version}.zip";
     curlOptsList = [ "--user-agent" "Mozilla/5.0" ];
-    sha256 = "sha256-oT0CgmfNXq9Kdoo+l+GHW2NVcT12MxJxq9BlIP7lMDE=";
+    sha256 = "sha256-sh6Ym+Dm5UIEiESIu1cuY8XSsnJcENCzW7b4S562ax8=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/applications/blockchains/framesh/default.nix b/nixpkgs/pkgs/applications/blockchains/framesh/default.nix
index 68eaf2a1adff..f866ff3ea98c 100644
--- a/nixpkgs/pkgs/applications/blockchains/framesh/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/framesh/default.nix
@@ -2,10 +2,10 @@
 
 let
   pname = "framesh";
-  version = "0.6.8";
+  version = "0.6.9";
   src = fetchurl {
     url = "https://github.com/floating/frame/releases/download/v${version}/Frame-${version}.AppImage";
-    hash = "sha256-qTbT1g+9hypBUxRMZ/Eat5OGb1y6yJlxQ6iJzfQH8G4=";
+    hash = "sha256-SsQIAg5DttvNJk1z+GJq4+e0Qa/j+VEKPV2bPA6+V8A=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/nixpkgs/pkgs/applications/blockchains/gridcoin-research/default.nix b/nixpkgs/pkgs/applications/blockchains/gridcoin-research/default.nix
index 2e1b6563afe4..4a5bd601ced7 100644
--- a/nixpkgs/pkgs/applications/blockchains/gridcoin-research/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/gridcoin-research/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gridcoin-research";
-  version = "5.4.5.0";
+  version = "5.4.7.0";
 
   src = fetchFromGitHub {
     owner = "gridcoin-community";
     repo = "Gridcoin-Research";
     rev = "${version}";
-    sha256 = "1a174m7821c7d3yh9lyh0r3ds6qn06x16aa1qxcbrqyxxc127yky";
+    sha256 = "sha256-wdXah7QnWohGAtC98exPSkhg5F3BaBOiFs6bklFxD7E=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/blockchains/lighthouse/Cargo.lock b/nixpkgs/pkgs/applications/blockchains/lighthouse/Cargo.lock
index a7f0bd102b66..6d76f7aef763 100644
--- a/nixpkgs/pkgs/applications/blockchains/lighthouse/Cargo.lock
+++ b/nixpkgs/pkgs/applications/blockchains/lighthouse/Cargo.lock
@@ -53,7 +53,6 @@ dependencies = [
  "regex",
  "rpassword",
  "serde",
- "serde_derive",
  "serde_yaml",
  "slog",
  "types",
@@ -92,6 +91,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "aead"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
+dependencies = [
+ "crypto-common",
+ "generic-array",
+]
+
+[[package]]
 name = "aes"
 version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -100,7 +109,7 @@ dependencies = [
  "cfg-if",
  "cipher 0.3.0",
  "cpufeatures",
- "ctr",
+ "ctr 0.8.0",
  "opaque-debug",
 ]
 
@@ -117,45 +126,49 @@ dependencies = [
 
 [[package]]
 name = "aes-gcm"
-version = "0.9.4"
+version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6"
+checksum = "bc3be92e19a7ef47457b8e6f90707e12b6ac5d20c6f3866584fa3be0787d839f"
 dependencies = [
- "aead",
+ "aead 0.4.3",
  "aes 0.7.5",
  "cipher 0.3.0",
- "ctr",
- "ghash",
+ "ctr 0.7.0",
+ "ghash 0.4.4",
  "subtle",
 ]
 
 [[package]]
-name = "ahash"
-version = "0.7.6"
+name = "aes-gcm"
+version = "0.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1"
 dependencies = [
- "getrandom 0.2.10",
- "once_cell",
- "version_check",
+ "aead 0.5.2",
+ "aes 0.8.3",
+ "cipher 0.4.4",
+ "ctr 0.9.2",
+ "ghash 0.5.0",
+ "subtle",
 ]
 
 [[package]]
 name = "ahash"
-version = "0.8.3"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
 dependencies = [
  "cfg-if",
  "once_cell",
  "version_check",
+ "zerocopy",
 ]
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.0"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f2135563fb5c609d2b2b87c1e8ce7bc41b0b45430fa9661f457981503dd5bf0"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
@@ -196,25 +209,16 @@ dependencies = [
 ]
 
 [[package]]
-name = "anvil-rpc"
-version = "0.1.0"
-source = "git+https://github.com/foundry-rs/foundry?rev=b45456717ffae1af65acdc71099f8cb95e6683a0#b45456717ffae1af65acdc71099f8cb95e6683a0"
-dependencies = [
- "serde",
- "serde_json",
-]
-
-[[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
 
 [[package]]
 name = "arbitrary"
-version = "1.3.0"
+version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e"
+checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
 dependencies = [
  "derive_arbitrary",
 ]
@@ -226,15 +230,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
 
 [[package]]
-name = "array-init"
-version = "0.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23589ecb866b460d3a0f1278834750268c607e8e28a1b982c907219f3178cd72"
-dependencies = [
- "nodrop",
-]
-
-[[package]]
 name = "arrayref"
 version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -292,65 +287,55 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247"
 
 [[package]]
+name = "async-channel"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 2.5.3",
+ "futures-core",
+]
+
+[[package]]
 name = "async-io"
-version = "1.13.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
+checksum = "fb41eb19024a91746eba0773aa5e16036045bbf45733766661099e182ea6a744"
 dependencies = [
  "async-lock",
- "autocfg",
  "cfg-if",
  "concurrent-queue",
+ "futures-io",
  "futures-lite",
- "log",
  "parking",
  "polling",
- "rustix 0.37.23",
+ "rustix 0.38.30",
  "slab",
- "socket2 0.4.9",
- "waker-fn",
+ "tracing",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "async-lock"
-version = "2.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
-dependencies = [
- "event-listener",
-]
-
-[[package]]
-name = "async-stream"
-version = "0.3.5"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
 dependencies = [
- "async-stream-impl",
- "futures-core",
+ "event-listener 4.0.3",
+ "event-listener-strategy",
  "pin-project-lite",
 ]
 
 [[package]]
-name = "async-stream-impl"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.37",
-]
-
-[[package]]
 name = "async-trait"
-version = "0.1.73"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -366,9 +351,9 @@ dependencies = [
 
 [[package]]
 name = "asynchronous-codec"
-version = "0.6.2"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4057f2c32adbb2fc158e22fb38433c8e9bbf76b75a4732c7c0cbaf695fb65568"
+checksum = "a860072022177f903e59730004fb5dc13db9275b79bb2aef7ba8ce831956c233"
 dependencies = [
  "bytes",
  "futures-sink",
@@ -383,13 +368,24 @@ version = "0.16.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fdb8867f378f33f78a811a8eb9bf108ad99430d7aad43315dd9319c827ef6247"
 dependencies = [
- "http",
+ "http 0.2.11",
  "log",
  "url",
  "wildmatch",
 ]
 
 [[package]]
+name = "attohttpc"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2"
+dependencies = [
+ "http 0.2.11",
+ "log",
+ "url",
+]
+
+[[package]]
 name = "atty"
 version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -420,18 +416,19 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "axum"
-version = "0.6.20"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
+checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e"
 dependencies = [
  "async-trait",
  "axum-core",
- "bitflags 1.3.2",
  "bytes",
  "futures-util",
- "http",
- "http-body",
- "hyper",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.1.0",
+ "hyper-util",
  "itoa",
  "matchit",
  "memchr",
@@ -448,23 +445,28 @@ dependencies = [
  "tower",
  "tower-layer",
  "tower-service",
+ "tracing",
 ]
 
 [[package]]
 name = "axum-core"
-version = "0.3.4"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
+checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3"
 dependencies = [
  "async-trait",
  "bytes",
  "futures-util",
- "http",
- "http-body",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "http-body-util",
  "mime",
+ "pin-project-lite",
  "rustversion",
+ "sync_wrapper",
  "tower-layer",
  "tower-service",
+ "tracing",
 ]
 
 [[package]]
@@ -508,9 +510,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "base64"
-version = "0.21.4"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "base64ct"
@@ -519,24 +521,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 
 [[package]]
-name = "beacon-api-client"
-version = "0.1.0"
-source = "git+https://github.com/ralexstokes/beacon-api-client?rev=93d7e8c#93d7e8c38fe9782c4862909663e7b57c44f805a9"
-dependencies = [
- "ethereum-consensus",
- "http",
- "itertools",
- "reqwest",
- "serde",
- "serde_json",
- "thiserror",
- "tokio",
- "tracing",
- "tracing-subscriber",
- "url",
-]
-
-[[package]]
 name = "beacon_chain"
 version = "0.2.0"
 dependencies = [
@@ -546,6 +530,7 @@ dependencies = [
  "environment",
  "eth1",
  "eth2",
+ "eth2_network_config",
  "ethereum_hashing",
  "ethereum_serde_utils",
  "ethereum_ssz",
@@ -558,10 +543,11 @@ dependencies = [
  "hex",
  "int_to_bytes",
  "itertools",
+ "kzg",
  "lazy_static",
  "lighthouse_metrics",
  "logging",
- "lru 0.7.8",
+ "lru",
  "maplit",
  "merkle_proof",
  "oneshot_broadcast",
@@ -576,9 +562,11 @@ dependencies = [
  "serde_json",
  "slasher",
  "slog",
+ "slog-async",
+ "slog-term",
  "sloggers",
  "slot_clock",
- "smallvec 1.11.0",
+ "smallvec",
  "ssz_types",
  "state_processing",
  "store",
@@ -595,7 +583,7 @@ dependencies = [
 
 [[package]]
 name = "beacon_node"
-version = "4.5.0"
+version = "4.6.0"
 dependencies = [
  "beacon_chain",
  "clap",
@@ -611,13 +599,14 @@ dependencies = [
  "genesis",
  "hex",
  "http_api",
- "hyper",
+ "hyper 1.1.0",
  "lighthouse_network",
  "lighthouse_version",
  "monitoring_api",
  "node_test_rig",
  "sensitive_url",
  "serde",
+ "serde_json",
  "slasher",
  "slog",
  "store",
@@ -682,6 +671,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "bindgen"
+version = "0.66.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
+dependencies = [
+ "bitflags 2.4.2",
+ "cexpr",
+ "clang-sys",
+ "lazy_static",
+ "lazycell",
+ "log",
+ "peeking_take_while",
+ "prettyplease",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "syn 2.0.48",
+ "which",
+]
+
+[[package]]
 name = "bitflags"
 version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -689,9 +701,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
 name = "bitvec"
@@ -765,7 +777,6 @@ dependencies = [
  "milagro_bls",
  "rand",
  "serde",
- "serde_derive",
  "tree_hash",
  "zeroize",
 ]
@@ -794,7 +805,7 @@ dependencies = [
 
 [[package]]
 name = "boot_node"
-version = "4.5.0"
+version = "4.6.0"
 dependencies = [
  "beacon_node",
  "clap",
@@ -806,7 +817,6 @@ dependencies = [
  "log",
  "logging",
  "serde",
- "serde_derive",
  "serde_json",
  "serde_yaml",
  "slog",
@@ -859,9 +869,9 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c"
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
@@ -894,6 +904,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "c-kzg"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32700dc7904064bb64e857d38a1766607372928e2466ee5f02a869829b3297d7"
+dependencies = [
+ "bindgen 0.66.1",
+ "blst",
+ "cc",
+ "glob",
+ "hex",
+ "libc",
+ "serde",
+]
+
+[[package]]
 name = "cached_tree_hash"
 version = "0.1.0"
 dependencies = [
@@ -903,7 +928,7 @@ dependencies = [
  "ethereum_ssz_derive",
  "quickcheck",
  "quickcheck_macros",
- "smallvec 1.11.0",
+ "smallvec",
  "ssz_types",
  "tree_hash",
 ]
@@ -919,9 +944,9 @@ dependencies = [
 
 [[package]]
 name = "cargo-platform"
-version = "0.1.3"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479"
+checksum = "ceed8ef69d8518a5dda55c07425450b58a4e1946f4951eab6d7191ee86c2443d"
 dependencies = [
  "serde",
 ]
@@ -973,39 +998,38 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chacha20"
-version = "0.8.2"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c80e5460aa66fe3b91d40bcbdab953a597b60053e34d684ac6903f863b680a6"
+checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
 dependencies = [
  "cfg-if",
- "cipher 0.3.0",
+ "cipher 0.4.4",
  "cpufeatures",
- "zeroize",
 ]
 
 [[package]]
 name = "chacha20poly1305"
-version = "0.9.1"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18446b09be63d457bbec447509e85f662f32952b035ce892290396bc0b0cff5"
+checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35"
 dependencies = [
- "aead",
+ "aead 0.5.2",
  "chacha20",
- "cipher 0.3.0",
+ "cipher 0.4.4",
  "poly1305",
  "zeroize",
 ]
 
 [[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "41daef31d7a747c5c847246f36de49ced6f7403b4cdabc807a97b5cc184cda7a"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "num-traits",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -1025,13 +1049,14 @@ checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
 dependencies = [
  "crypto-common",
  "inout",
+ "zeroize",
 ]
 
 [[package]]
 name = "clang-sys"
-version = "1.6.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
+checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
 dependencies = [
  "glob",
  "libc",
@@ -1097,7 +1122,6 @@ dependencies = [
  "parking_lot 0.12.1",
  "sensitive_url",
  "serde",
- "serde_derive",
  "serde_yaml",
  "slasher",
  "slasher_service",
@@ -1126,6 +1150,7 @@ name = "compare_fields"
 version = "0.2.0"
 dependencies = [
  "compare_fields_derive",
+ "itertools",
 ]
 
 [[package]]
@@ -1138,18 +1163,18 @@ dependencies = [
 
 [[package]]
 name = "concurrent-queue"
-version = "2.2.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
 dependencies = [
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "const-oid"
-version = "0.9.5"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
 
 [[package]]
 name = "constant_time_eq"
@@ -1165,9 +1190,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
 
 [[package]]
 name = "core-foundation"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -1175,9 +1200,9 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "core2"
@@ -1190,9 +1215,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -1244,46 +1269,37 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.15"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset 0.9.0",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crunchy"
@@ -1298,19 +1314,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef"
 dependencies = [
  "generic-array",
- "rand_core 0.6.4",
+ "rand_core",
  "subtle",
  "zeroize",
 ]
 
 [[package]]
 name = "crypto-bigint"
-version = "0.5.3"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "740fe28e594155f10cfc383984cbefd529d7396050557148f79cb0f621204124"
+checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
 dependencies = [
  "generic-array",
- "rand_core 0.6.4",
+ "rand_core",
  "subtle",
  "zeroize",
 ]
@@ -1322,6 +1338,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
 dependencies = [
  "generic-array",
+ "rand_core",
  "typenum",
 ]
 
@@ -1337,9 +1354,9 @@ dependencies = [
 
 [[package]]
 name = "crypto-mac"
-version = "0.11.1"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714"
+checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e"
 dependencies = [
  "generic-array",
  "subtle",
@@ -1347,9 +1364,9 @@ dependencies = [
 
 [[package]]
 name = "csv"
-version = "1.2.2"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086"
+checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
 dependencies = [
  "csv-core",
  "itoa",
@@ -1359,15 +1376,24 @@ dependencies = [
 
 [[package]]
 name = "csv-core"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
+checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "ctr"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481"
+dependencies = [
+ "cipher 0.3.0",
+]
+
+[[package]]
+name = "ctr"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea"
@@ -1376,40 +1402,36 @@ dependencies = [
 ]
 
 [[package]]
-name = "ctrlc"
-version = "3.4.1"
+name = "ctr"
+version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82e95fbd621905b854affdc67943b043a0fbb6ed7385fd5a25650d19a8a6cfdf"
+checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"
 dependencies = [
- "nix 0.27.1",
- "windows-sys 0.48.0",
+ "cipher 0.4.4",
 ]
 
 [[package]]
-name = "curve25519-dalek"
-version = "3.2.0"
+name = "ctrlc"
+version = "3.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61"
+checksum = "b467862cc8610ca6fc9a1532d7777cee0804e678ab45410897b9396495994a0b"
 dependencies = [
- "byteorder",
- "digest 0.9.0",
- "rand_core 0.5.1",
- "subtle",
- "zeroize",
+ "nix 0.27.1",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "curve25519-dalek"
-version = "4.1.0"
+version = "4.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622178105f911d937a42cdb140730ba4a3ed2becd8ae6ce39c7d28b5d75d4588"
+checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"
 dependencies = [
  "cfg-if",
  "cpufeatures",
  "curve25519-dalek-derive",
  "digest 0.10.7",
  "fiat-crypto",
- "platforms 3.1.2",
+ "platforms 3.3.0",
  "rustc_version",
  "subtle",
  "zeroize",
@@ -1417,13 +1439,13 @@ dependencies = [
 
 [[package]]
 name = "curve25519-dalek-derive"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
+checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1483,15 +1505,15 @@ dependencies = [
 
 [[package]]
 name = "data-encoding"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
 
 [[package]]
 name = "data-encoding-macro"
-version = "0.1.13"
+version = "0.1.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99"
+checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e"
 dependencies = [
  "data-encoding",
  "data-encoding-macro-internal",
@@ -1499,9 +1521,9 @@ dependencies = [
 
 [[package]]
 name = "data-encoding-macro-internal"
-version = "0.1.11"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772"
+checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3"
 dependencies = [
  "data-encoding",
  "syn 1.0.109",
@@ -1516,6 +1538,7 @@ dependencies = [
  "clap",
  "clap_utils",
  "environment",
+ "hex",
  "logging",
  "slog",
  "sloggers",
@@ -1538,7 +1561,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e4355c25cbf99edcb6b4a0e906f6bdc6956eda149e84455bea49696429b2f8e8"
 dependencies = [
  "futures",
- "tokio-util 0.7.8",
+ "tokio-util 0.7.10",
 ]
 
 [[package]]
@@ -1592,9 +1615,12 @@ dependencies = [
 
 [[package]]
 name = "deranged"
-version = "0.3.8"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
 
 [[package]]
 name = "derivative"
@@ -1609,13 +1635,13 @@ dependencies = [
 
 [[package]]
 name = "derive_arbitrary"
-version = "1.3.1"
+version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8"
+checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1633,11 +1659,11 @@ dependencies = [
 
 [[package]]
 name = "diesel"
-version = "2.1.1"
+version = "2.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d98235fdc2f355d330a8244184ab6b4b33c28679c0b4158f63138e51d6cf7e88"
+checksum = "62c6fcf842f17f8c78ecf7c81d75c5ce84436b41ee07e03f490fbb5f5a8731d8"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.2",
  "byteorder",
  "diesel_derives",
  "itoa",
@@ -1647,14 +1673,14 @@ dependencies = [
 
 [[package]]
 name = "diesel_derives"
-version = "2.1.1"
+version = "2.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e054665eaf6d97d1e7125512bb2d35d07c73ac86cc6920174cb42d1ab697a554"
+checksum = "ef8337737574f55a468005a83499da720f20c65586241ffea339db9ecdfd2b44"
 dependencies = [
  "diesel_table_macro_syntax",
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1674,7 +1700,7 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
 dependencies = [
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1750,33 +1776,30 @@ dependencies = [
 
 [[package]]
 name = "discv5"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98c05fa26996c6141f78ac4fafbe297a7fa69690565ba4e0d1f2e60bde5ce501"
+version = "0.4.0"
+source = "git+https://github.com/sigp/discv5?rev=e30a2c31b7ac0c57876458b971164654dfa4513b#e30a2c31b7ac0c57876458b971164654dfa4513b"
 dependencies = [
  "aes 0.7.5",
- "aes-gcm",
+ "aes-gcm 0.9.2",
  "arrayvec",
  "delay_map",
- "enr 0.9.0",
+ "enr",
  "fnv",
  "futures",
- "hashlink 0.7.0",
+ "hashlink",
  "hex",
  "hkdf",
  "lazy_static",
- "libp2p-core",
- "libp2p-identity",
- "lru 0.7.8",
+ "libp2p",
+ "lru",
  "more-asserts",
  "parking_lot 0.11.2",
  "rand",
  "rlp",
- "smallvec 1.11.0",
- "socket2 0.4.9",
+ "smallvec",
+ "socket2 0.4.10",
  "tokio",
  "tracing",
- "tracing-subscriber",
  "uint",
  "zeroize",
 ]
@@ -1789,7 +1812,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1818,39 +1841,40 @@ dependencies = [
 
 [[package]]
 name = "ecdsa"
-version = "0.16.8"
+version = "0.16.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4"
+checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
 dependencies = [
  "der 0.7.8",
  "digest 0.10.7",
- "elliptic-curve 0.13.5",
+ "elliptic-curve 0.13.8",
  "rfc6979 0.4.0",
- "signature 2.1.0",
- "spki 0.7.2",
+ "signature 2.2.0",
+ "spki 0.7.3",
 ]
 
 [[package]]
 name = "ed25519"
-version = "2.2.2"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d"
+checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
 dependencies = [
  "pkcs8 0.10.2",
- "signature 2.1.0",
+ "signature 2.2.0",
 ]
 
 [[package]]
 name = "ed25519-dalek"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980"
+checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0"
 dependencies = [
- "curve25519-dalek 4.1.0",
+ "curve25519-dalek",
  "ed25519",
- "rand_core 0.6.4",
+ "rand_core",
  "serde",
- "sha2 0.10.7",
+ "sha2 0.10.8",
+ "subtle",
  "zeroize",
 ]
 
@@ -1864,16 +1888,20 @@ dependencies = [
  "compare_fields",
  "compare_fields_derive",
  "derivative",
+ "eth2_network_config",
  "ethereum-types 0.14.1",
+ "ethereum_serde_utils",
  "ethereum_ssz",
  "ethereum_ssz_derive",
  "execution_layer",
  "fork_choice",
  "fs2",
  "hex",
+ "kzg",
+ "logging",
  "rayon",
  "serde",
- "serde_derive",
+ "serde_json",
  "serde_repr",
  "serde_yaml",
  "snap",
@@ -1904,8 +1932,7 @@ dependencies = [
  "ff 0.12.1",
  "generic-array",
  "group 0.12.1",
- "pkcs8 0.9.0",
- "rand_core 0.6.4",
+ "rand_core",
  "sec1 0.3.0",
  "subtle",
  "zeroize",
@@ -1913,19 +1940,19 @@ dependencies = [
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.5"
+version = "0.13.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"
+checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
 dependencies = [
  "base16ct 0.2.0",
- "crypto-bigint 0.5.3",
+ "crypto-bigint 0.5.5",
  "digest 0.10.7",
  "ff 0.13.0",
  "generic-array",
  "group 0.13.0",
  "pem-rfc7468",
  "pkcs8 0.10.2",
- "rand_core 0.6.4",
+ "rand_core",
  "sec1 0.7.3",
  "subtle",
  "zeroize",
@@ -1942,53 +1969,33 @@ dependencies = [
 
 [[package]]
 name = "enr"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26fa0a0be8915790626d5759eb51fe47435a8eac92c2f212bd2da9aa7f30ea56"
-dependencies = [
- "base64 0.13.1",
- "bs58 0.4.0",
- "bytes",
- "hex",
- "k256 0.11.6",
- "log",
- "rand",
- "rlp",
- "serde",
- "sha3 0.10.8",
- "zeroize",
-]
-
-[[package]]
-name = "enr"
-version = "0.9.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0be7b2ac146c1f99fe245c02d16af0696450d8e06c135db75e10eeb9e642c20d"
+checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.7",
  "bytes",
  "ed25519-dalek",
  "hex",
- "k256 0.13.1",
+ "k256 0.13.3",
  "log",
  "rand",
  "rlp",
  "serde",
- "serde-hex",
  "sha3 0.10.8",
  "zeroize",
 ]
 
 [[package]]
 name = "enum-as-inner"
-version = "0.5.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116"
+checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2025,7 +2032,6 @@ dependencies = [
  "futures",
  "logging",
  "serde",
- "serde_derive",
  "slog",
  "slog-async",
  "slog-json",
@@ -2043,24 +2049,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
-name = "errno"
-version = "0.3.3"
+name = "erased-serde"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
+checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c"
 dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
+ "serde",
 ]
 
 [[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+name = "errno"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
- "cc",
  "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2140,13 +2144,15 @@ dependencies = [
  "proto_array",
  "psutil",
  "reqwest",
- "ring",
+ "ring 0.16.20",
  "sensitive_url",
  "serde",
  "serde_json",
  "slashing_protection",
+ "ssz_types",
  "store",
  "tokio",
+ "tree_hash",
  "types",
 ]
 
@@ -2169,7 +2175,6 @@ dependencies = [
  "lazy_static",
  "num-bigint",
  "serde",
- "serde_derive",
  "serde_yaml",
 ]
 
@@ -2180,7 +2185,7 @@ dependencies = [
  "bls",
  "hex",
  "num-bigint-dig",
- "ring",
+ "ring 0.16.20",
  "sha2 0.9.9",
  "zeroize",
 ]
@@ -2219,6 +2224,7 @@ dependencies = [
  "pretty_reqwest_error",
  "reqwest",
  "sensitive_url",
+ "serde_json",
  "serde_yaml",
  "sha2 0.9.9",
  "slog",
@@ -2315,30 +2321,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "ethereum-consensus"
-version = "0.1.1"
-source = "git+https://github.com/ralexstokes/ethereum-consensus?rev=e380108#e380108d15fcc40349927fdf3d11c71f9edb67c2"
-dependencies = [
- "async-stream",
- "blst",
- "bs58 0.4.0",
- "enr 0.6.2",
- "hex",
- "integer-sqrt",
- "multiaddr 0.14.0",
- "multihash 0.16.3",
- "rand",
- "serde",
- "serde_json",
- "serde_yaml",
- "sha2 0.9.9",
- "ssz_rs",
- "thiserror",
- "tokio",
- "tokio-stream",
-]
-
-[[package]]
 name = "ethereum-types"
 version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2363,7 +2345,7 @@ dependencies = [
  "impl-codec 0.6.0",
  "impl-rlp",
  "impl-serde 0.4.0",
- "primitive-types 0.12.1",
+ "primitive-types 0.12.2",
  "scale-info",
  "uint",
 ]
@@ -2376,15 +2358,15 @@ checksum = "233dc6f434ce680dbabf4451ee3380cec46cb3c45d66660445a435619710dd35"
 dependencies = [
  "cpufeatures",
  "lazy_static",
- "ring",
- "sha2 0.10.7",
+ "ring 0.16.20",
+ "sha2 0.10.8",
 ]
 
 [[package]]
 name = "ethereum_serde_utils"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f8cb04ea380a33e9c269fa5f8df6f2d63dee19728235f3e639e7674e038686a"
+checksum = "de4d5951468846963c24e8744c133d44f39dff2cd3a233f6be22b370d08a524f"
 dependencies = [
  "ethereum-types 0.14.1",
  "hex",
@@ -2401,7 +2383,7 @@ checksum = "e61ffea29f26e8249d35128a82ec8d3bd4fbc80179ea5f5e5e3daafef6a80fcb"
 dependencies = [
  "ethereum-types 0.14.1",
  "itertools",
- "smallvec 1.11.0",
+ "smallvec",
 ]
 
 [[package]]
@@ -2446,7 +2428,7 @@ dependencies = [
  "dunce",
  "ethers-core",
  "eyre",
- "getrandom 0.2.10",
+ "getrandom",
  "hex",
  "proc-macro2",
  "quote",
@@ -2517,10 +2499,10 @@ dependencies = [
  "futures-core",
  "futures-timer",
  "futures-util",
- "getrandom 0.2.10",
+ "getrandom",
  "hashers",
  "hex",
- "http",
+ "http 0.2.11",
  "once_cell",
  "parking_lot 0.11.2",
  "pin-project",
@@ -2546,6 +2528,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
+name = "event-listener"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+dependencies = [
+ "event-listener 4.0.3",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "execution_engine_integration"
 version = "0.1.0"
 dependencies = [
@@ -2575,12 +2578,11 @@ version = "0.1.0"
 dependencies = [
  "arc-swap",
  "async-trait",
- "axum",
  "builder_client",
  "bytes",
  "environment",
  "eth2",
- "ethereum-consensus",
+ "eth2_network_config",
  "ethereum_serde_utils",
  "ethereum_ssz",
  "ethers-core",
@@ -2590,13 +2592,12 @@ dependencies = [
  "hash-db",
  "hash256-std-hasher",
  "hex",
- "hyper",
  "jsonwebtoken",
  "keccak-hash",
+ "kzg",
  "lazy_static",
  "lighthouse_metrics",
- "lru 0.7.8",
- "mev-rs",
+ "lru",
  "parking_lot 0.12.1",
  "pretty_reqwest_error",
  "rand",
@@ -2606,7 +2607,6 @@ dependencies = [
  "serde_json",
  "slog",
  "slot_clock",
- "ssz_rs",
  "ssz_types",
  "state_processing",
  "strum",
@@ -2634,9 +2634,9 @@ dependencies = [
 
 [[package]]
 name = "eyre"
-version = "0.6.8"
+version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb"
+checksum = "b6267a1fa6f59179ea4afc8e50fd8612a3cc60bc858f786ff877a4a8cb042799"
 dependencies = [
  "indenter",
  "once_cell",
@@ -2656,18 +2656,9 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
 
 [[package]]
 name = "fastrand"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
-dependencies = [
- "instant",
-]
-
-[[package]]
-name = "fastrand"
-version = "2.0.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "ff"
@@ -2675,7 +2666,7 @@ version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160"
 dependencies = [
- "rand_core 0.6.4",
+ "rand_core",
  "subtle",
 ]
 
@@ -2685,7 +2676,7 @@ version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
 dependencies = [
- "rand_core 0.6.4",
+ "rand_core",
  "subtle",
 ]
 
@@ -2697,9 +2688,9 @@ checksum = "ec54ac60a7f2ee9a97cad9946f9bf629a3bc6a7ae59e68983dc9318f5a54b81a"
 
 [[package]]
 name = "fiat-crypto"
-version = "0.2.1"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0870c84016d4b481be5c9f323c24f65e31e901ae618f0e80f4308fb00de1d2d"
+checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7"
 
 [[package]]
 name = "field-offset"
@@ -2707,7 +2698,7 @@ version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
 dependencies = [
- "memoffset 0.9.0",
+ "memoffset",
  "rustc_version",
 ]
 
@@ -2752,9 +2743,9 @@ dependencies = [
 
 [[package]]
 name = "flate2"
-version = "1.0.27"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "libz-sys",
@@ -2799,9 +2790,9 @@ dependencies = [
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
@@ -2830,9 +2821,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
 
 [[package]]
 name = "futures"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -2844,10 +2835,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "futures-bounded"
+version = "0.2.3"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
+dependencies = [
+ "futures-timer",
+ "futures-util",
+]
+
+[[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -2855,15 +2855,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -2873,34 +2873,29 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
-version = "1.13.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
+checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
 dependencies = [
- "fastrand 1.9.0",
  "futures-core",
- "futures-io",
- "memchr",
- "parking",
  "pin-project-lite",
- "waker-fn",
 ]
 
 [[package]]
 name = "futures-macro"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2910,20 +2905,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "35bd3cf68c183738046838e300353e4716c674dc5e56890de4826801a6622a28"
 dependencies = [
  "futures-io",
- "rustls",
+ "rustls 0.21.10",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-ticker"
@@ -2944,9 +2939,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -3003,64 +2998,61 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.1.16"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
+ "js-sys",
  "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
+ "wasi",
+ "wasm-bindgen",
 ]
 
 [[package]]
-name = "getrandom"
-version = "0.2.10"
+name = "ghash"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99"
 dependencies = [
- "cfg-if",
- "js-sys",
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
- "wasm-bindgen",
+ "opaque-debug",
+ "polyval 0.5.3",
 ]
 
 [[package]]
 name = "ghash"
-version = "0.4.4"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99"
+checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40"
 dependencies = [
  "opaque-debug",
- "polyval",
+ "polyval 0.6.1",
 ]
 
 [[package]]
 name = "gimli"
-version = "0.28.0"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "git-version"
-version = "0.3.5"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899"
+checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19"
 dependencies = [
  "git-version-macro",
- "proc-macro-hack",
 ]
 
 [[package]]
 name = "git-version-macro"
-version = "0.3.5"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f"
+checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0"
 dependencies = [
- "proc-macro-hack",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3076,7 +3068,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7"
 dependencies = [
  "ff 0.12.1",
- "rand_core 0.6.4",
+ "rand_core",
  "subtle",
 ]
 
@@ -3087,26 +3079,45 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
 dependencies = [
  "ff 0.13.0",
- "rand_core 0.6.4",
+ "rand_core",
  "subtle",
 ]
 
 [[package]]
 name = "h2"
-version = "0.3.21"
+version = "0.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
 dependencies = [
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
  "futures-util",
- "http",
- "indexmap 1.9.3",
+ "http 0.2.11",
+ "indexmap 2.1.0",
+ "slab",
+ "tokio",
+ "tokio-util 0.7.10",
+ "tracing",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 1.0.0",
+ "indexmap 2.1.0",
  "slab",
  "tokio",
- "tokio-util 0.7.8",
+ "tokio-util 0.7.10",
  "tracing",
 ]
 
@@ -3133,38 +3144,17 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
-dependencies = [
- "ahash 0.7.6",
-]
-
-[[package]]
-name = "hashbrown"
 version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-dependencies = [
- "ahash 0.7.6",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
-dependencies = [
- "ahash 0.8.3",
-]
 
 [[package]]
 name = "hashbrown"
-version = "0.14.0"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.8.3",
+ "ahash",
  "allocator-api2",
 ]
 
@@ -3179,20 +3169,11 @@ dependencies = [
 
 [[package]]
 name = "hashlink"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf"
-dependencies = [
- "hashbrown 0.11.2",
-]
-
-[[package]]
-name = "hashlink"
 version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
 dependencies = [
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -3201,10 +3182,10 @@ version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.7",
  "bytes",
  "headers-core",
- "http",
+ "http 0.2.11",
  "httpdate",
  "mime",
  "sha1",
@@ -3216,7 +3197,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
 dependencies = [
- "http",
+ "http 0.2.11",
 ]
 
 [[package]]
@@ -3236,9 +3217,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.2"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
 
 [[package]]
 name = "hex"
@@ -3253,10 +3234,56 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b07f60793ff0a4d9cef0f18e63b5357e06209987153a64648c972c1e5aff336f"
 
 [[package]]
+name = "hickory-proto"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "091a6fbccf4860009355e3efc52ff4acf37a63489aad7435372d44ceeb6fbbcf"
+dependencies = [
+ "async-trait",
+ "cfg-if",
+ "data-encoding",
+ "enum-as-inner",
+ "futures-channel",
+ "futures-io",
+ "futures-util",
+ "idna 0.4.0",
+ "ipnet",
+ "once_cell",
+ "rand",
+ "socket2 0.5.5",
+ "thiserror",
+ "tinyvec",
+ "tokio",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "hickory-resolver"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35b8f021164e6a984c9030023544c57789c51760065cd510572fedcfb04164e8"
+dependencies = [
+ "cfg-if",
+ "futures-util",
+ "hickory-proto",
+ "ipconfig",
+ "lru-cache",
+ "once_cell",
+ "parking_lot 0.12.1",
+ "rand",
+ "resolv-conf",
+ "smallvec",
+ "thiserror",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
 name = "hkdf"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
 dependencies = [
  "hmac 0.12.1",
 ]
@@ -3277,7 +3304,7 @@ version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b"
 dependencies = [
- "crypto-mac 0.11.1",
+ "crypto-mac 0.11.0",
  "digest 0.9.0",
 ]
 
@@ -3302,6 +3329,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "hostname"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3314,9 +3350,20 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
 dependencies = [
  "bytes",
  "fnv",
@@ -3325,12 +3372,35 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
- "http",
+ "http 0.2.11",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-body"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+dependencies = [
+ "bytes",
+ "http 1.0.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
  "pin-project-lite",
 ]
 
@@ -3357,7 +3427,7 @@ dependencies = [
  "lighthouse_network",
  "lighthouse_version",
  "logging",
- "lru 0.7.8",
+ "lru",
  "network",
  "operation_pool",
  "parking_lot 0.12.1",
@@ -3422,22 +3492,22 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "hyper"
-version = "0.14.27"
+version = "0.14.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-core",
  "futures-util",
- "h2",
- "http",
- "http-body",
+ "h2 0.3.24",
+ "http 0.2.11",
+ "http-body 0.4.6",
  "httparse",
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.9",
+ "socket2 0.5.5",
  "tokio",
  "tower-service",
  "tracing",
@@ -3445,17 +3515,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "hyper"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "h2 0.4.2",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
 name = "hyper-rustls"
-version = "0.24.1"
+version = "0.24.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
  "futures-util",
- "http",
- "hyper",
- "rustls",
+ "http 0.2.11",
+ "hyper 0.14.28",
+ "rustls 0.21.10",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
 ]
 
 [[package]]
@@ -3465,24 +3554,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
 dependencies = [
  "bytes",
- "hyper",
+ "hyper 0.14.28",
  "native-tls",
  "tokio",
  "tokio-native-tls",
 ]
 
 [[package]]
+name = "hyper-util"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdea9aac0dbe5a9240d68cfd9501e2db94222c6dc06843e06640b9e07f0fdc67"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http 1.0.0",
+ "http-body 1.0.0",
+ "hyper 1.1.0",
+ "pin-project-lite",
+ "socket2 0.5.5",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
 name = "iana-time-zone"
-version = "0.1.57"
+version = "0.1.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows 0.48.0",
+ "windows-core 0.52.0",
 ]
 
 [[package]]
@@ -3502,20 +3609,19 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
 name = "idna"
-version = "0.2.3"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
 dependencies = [
- "matches",
  "unicode-bidi",
  "unicode-normalization",
 ]
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -3534,12 +3640,12 @@ dependencies = [
 
 [[package]]
 name = "if-addrs"
-version = "0.7.0"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbc0fa01ffc752e9dbc72818cdb072cd028b86be5e09dd04c5a643704fe101a9"
+checksum = "cabb0019d51a643781ff15c9c8a3e5dedc365c47211270f4e8f82812fedd8f0a"
 dependencies = [
  "libc",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -3554,21 +3660,21 @@ dependencies = [
 
 [[package]]
 name = "if-watch"
-version = "3.0.1"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9465340214b296cd17a0009acdb890d6160010b8adf8f78a00d0d7ab270f79f"
+checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e"
 dependencies = [
  "async-io",
  "core-foundation",
  "fnv",
  "futures",
- "if-addrs 0.7.0",
+ "if-addrs 0.10.2",
  "ipnet",
  "log",
  "rtnetlink",
  "system-configuration",
  "tokio",
- "windows 0.34.0",
+ "windows",
 ]
 
 [[package]]
@@ -3577,9 +3683,28 @@ version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "556b5a75cd4adb7c4ea21c64af1c48cefb2ce7d43dc4352c720a1fe47c21f355"
 dependencies = [
- "attohttpc",
+ "attohttpc 0.16.3",
+ "log",
+ "rand",
+ "url",
+ "xmltree",
+]
+
+[[package]]
+name = "igd-next"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "064d90fec10d541084e7b39ead8875a5a80d9114a2b18791565253bae25f49e4"
+dependencies = [
+ "async-trait",
+ "attohttpc 0.24.1",
+ "bytes",
+ "futures",
+ "http 0.2.11",
+ "hyper 0.14.28",
  "log",
  "rand",
+ "tokio",
  "url",
  "xmltree",
 ]
@@ -3599,7 +3724,7 @@ version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f"
 dependencies = [
- "parity-scale-codec 3.6.5",
+ "parity-scale-codec 3.6.9",
 ]
 
 [[package]]
@@ -3658,12 +3783,12 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -3711,7 +3836,7 @@ version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
- "hermit-abi 0.3.2",
+ "hermit-abi 0.3.4",
  "libc",
  "windows-sys 0.48.0",
 ]
@@ -3722,7 +3847,7 @@ version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
 dependencies = [
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "widestring 1.0.2",
  "windows-sys 0.48.0",
  "winreg",
@@ -3730,9 +3855,9 @@ dependencies = [
 
 [[package]]
 name = "ipnet"
-version = "2.8.0"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "itertools"
@@ -3745,9 +3870,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jemalloc-ctl"
@@ -3782,18 +3907,18 @@ dependencies = [
 
 [[package]]
 name = "jobserver"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -3804,9 +3929,9 @@ version = "8.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
 dependencies = [
- "base64 0.21.4",
- "pem",
- "ring",
+ "base64 0.21.7",
+ "pem 1.1.1",
+ "ring 0.16.20",
  "serde",
  "serde_json",
  "simple_asn1",
@@ -3821,29 +3946,29 @@ dependencies = [
  "cfg-if",
  "ecdsa 0.14.8",
  "elliptic-curve 0.12.3",
- "sha2 0.10.7",
+ "sha2 0.10.8",
  "sha3 0.10.8",
 ]
 
 [[package]]
 name = "k256"
-version = "0.13.1"
+version = "0.13.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc"
+checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b"
 dependencies = [
  "cfg-if",
- "ecdsa 0.16.8",
- "elliptic-curve 0.13.5",
+ "ecdsa 0.16.9",
+ "elliptic-curve 0.13.8",
  "once_cell",
- "sha2 0.10.7",
- "signature 2.1.0",
+ "sha2 0.10.8",
+ "signature 2.2.0",
 ]
 
 [[package]]
 name = "keccak"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940"
+checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654"
 dependencies = [
  "cpufeatures",
 ]
@@ -3854,17 +3979,33 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4b286e6b663fb926e1eeb68528e69cb70ed46c6d65871a21b2215ae8154c6d3c"
 dependencies = [
- "primitive-types 0.12.1",
+ "primitive-types 0.12.2",
  "tiny-keccak",
 ]
 
 [[package]]
+name = "kzg"
+version = "0.1.0"
+dependencies = [
+ "arbitrary",
+ "c-kzg",
+ "derivative",
+ "ethereum_hashing",
+ "ethereum_serde_utils",
+ "ethereum_ssz",
+ "ethereum_ssz_derive",
+ "hex",
+ "serde",
+ "tree_hash",
+]
+
+[[package]]
 name = "lazy_static"
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 dependencies = [
- "spin",
+ "spin 0.5.2",
 ]
 
 [[package]]
@@ -3875,7 +4016,7 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "lcli"
-version = "4.5.0"
+version = "4.6.0"
 dependencies = [
  "account_utils",
  "beacon_chain",
@@ -3892,7 +4033,9 @@ dependencies = [
  "eth2_wallet",
  "ethereum_hashing",
  "ethereum_ssz",
+ "execution_layer",
  "genesis",
+ "hex",
  "int_to_bytes",
  "lighthouse_network",
  "lighthouse_version",
@@ -3936,9 +4079,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.148"
+version = "0.2.152"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b"
+checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
 
 [[package]]
 name = "libflate"
@@ -3962,19 +4105,19 @@ dependencies = [
 
 [[package]]
 name = "libloading"
-version = "0.7.4"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
 dependencies = [
  "cfg-if",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "libm"
-version = "0.2.7"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 
 [[package]]
 name = "libmdbx"
@@ -3993,14 +4136,14 @@ dependencies = [
 
 [[package]]
 name = "libp2p"
-version = "0.52.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32d07d1502a027366d55afe187621c2d7895dc111a3df13b35fed698049681d7"
+version = "0.54.0"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "bytes",
+ "either",
  "futures",
  "futures-timer",
- "getrandom 0.2.10",
+ "getrandom",
  "instant",
  "libp2p-allow-block-list",
  "libp2p-connection-limits",
@@ -4016,16 +4159,18 @@ dependencies = [
  "libp2p-quic",
  "libp2p-swarm",
  "libp2p-tcp",
+ "libp2p-upnp",
  "libp2p-yamux",
- "multiaddr 0.18.0",
+ "multiaddr",
  "pin-project",
+ "rw-stream-sink",
+ "thiserror",
 ]
 
 [[package]]
 name = "libp2p-allow-block-list"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55b46558c5c0bf99d3e2a1a38fd54ff5476ca66dd1737b12466a1824dd219311"
+version = "0.3.0"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "libp2p-core",
  "libp2p-identity",
@@ -4035,9 +4180,8 @@ dependencies = [
 
 [[package]]
 name = "libp2p-connection-limits"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f5107ad45cb20b2f6c3628c7b6014b996fcb13a88053f4569c872c6e30abf58"
+version = "0.3.1"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "libp2p-core",
  "libp2p-identity",
@@ -4047,9 +4191,8 @@ dependencies = [
 
 [[package]]
 name = "libp2p-core"
-version = "0.40.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef7dd7b09e71aac9271c60031d0e558966cdb3253ba0308ab369bb2de80630d0"
+version = "0.41.2"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "either",
  "fnv",
@@ -4057,9 +4200,8 @@ dependencies = [
  "futures-timer",
  "instant",
  "libp2p-identity",
- "log",
- "multiaddr 0.18.0",
- "multihash 0.19.1",
+ "multiaddr",
+ "multihash",
  "multistream-select",
  "once_cell",
  "parking_lot 0.12.1",
@@ -4067,205 +4209,203 @@ dependencies = [
  "quick-protobuf",
  "rand",
  "rw-stream-sink",
- "smallvec 1.11.0",
+ "smallvec",
  "thiserror",
- "unsigned-varint 0.7.2",
+ "tracing",
+ "unsigned-varint 0.8.0",
  "void",
 ]
 
 [[package]]
 name = "libp2p-dns"
-version = "0.40.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd4394c81c0c06d7b4a60f3face7e8e8a9b246840f98d2c80508d0721b032147"
+version = "0.41.1"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
+ "async-trait",
  "futures",
+ "hickory-resolver",
  "libp2p-core",
  "libp2p-identity",
- "log",
  "parking_lot 0.12.1",
- "smallvec 1.11.0",
- "trust-dns-resolver",
+ "smallvec",
+ "tracing",
 ]
 
 [[package]]
 name = "libp2p-gossipsub"
-version = "0.45.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d157562dba6017193e5285acf6b1054759e83540bfd79f75b69d6ce774c88da"
+version = "0.46.1"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
+ "async-channel",
  "asynchronous-codec",
- "base64 0.21.4",
+ "base64 0.21.7",
  "byteorder",
  "bytes",
  "either",
  "fnv",
  "futures",
  "futures-ticker",
- "getrandom 0.2.10",
+ "futures-timer",
+ "getrandom",
  "hex_fmt",
  "instant",
  "libp2p-core",
  "libp2p-identity",
  "libp2p-swarm",
- "log",
  "prometheus-client",
  "quick-protobuf",
  "quick-protobuf-codec",
  "rand",
  "regex",
- "sha2 0.10.7",
- "smallvec 1.11.0",
- "unsigned-varint 0.7.2",
+ "sha2 0.10.8",
+ "smallvec",
+ "tracing",
  "void",
 ]
 
 [[package]]
 name = "libp2p-identify"
-version = "0.43.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a29675a32dbcc87790db6cf599709e64308f1ae9d5ecea2d259155889982db8"
+version = "0.44.1"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "asynchronous-codec",
  "either",
  "futures",
+ "futures-bounded",
  "futures-timer",
  "libp2p-core",
  "libp2p-identity",
  "libp2p-swarm",
- "log",
- "lru 0.10.1",
+ "lru",
  "quick-protobuf",
  "quick-protobuf-codec",
- "smallvec 1.11.0",
+ "smallvec",
  "thiserror",
+ "tracing",
  "void",
 ]
 
 [[package]]
 name = "libp2p-identity"
-version = "0.2.3"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "686e73aff5e23efbb99bc85340ea6fd8686986aa7b283a881ba182cfca535ca9"
+checksum = "999ec70441b2fb35355076726a6bc466c932e9bdc66f6a11c6c0aa17c7ab9be0"
 dependencies = [
  "asn1_der",
  "bs58 0.5.0",
  "ed25519-dalek",
+ "hkdf",
  "libsecp256k1",
- "log",
- "multihash 0.19.1",
+ "multihash",
  "p256",
  "quick-protobuf",
  "rand",
  "sec1 0.7.3",
- "sha2 0.10.7",
+ "sha2 0.10.8",
  "thiserror",
+ "tracing",
  "void",
  "zeroize",
 ]
 
 [[package]]
 name = "libp2p-mdns"
-version = "0.44.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42a2567c305232f5ef54185e9604579a894fd0674819402bb0ac0246da82f52a"
+version = "0.45.1"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "data-encoding",
  "futures",
+ "hickory-proto",
  "if-watch",
  "libp2p-core",
  "libp2p-identity",
  "libp2p-swarm",
- "log",
  "rand",
- "smallvec 1.11.0",
- "socket2 0.5.4",
+ "smallvec",
+ "socket2 0.5.5",
  "tokio",
- "trust-dns-proto",
+ "tracing",
  "void",
 ]
 
 [[package]]
 name = "libp2p-metrics"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "239ba7d28f8d0b5d77760dc6619c05c7e88e74ec8fbbe97f856f20a56745e620"
+version = "0.14.1"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
+ "futures",
  "instant",
  "libp2p-core",
  "libp2p-gossipsub",
  "libp2p-identify",
  "libp2p-identity",
  "libp2p-swarm",
- "once_cell",
+ "pin-project",
  "prometheus-client",
 ]
 
 [[package]]
 name = "libp2p-mplex"
-version = "0.40.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93959ed08b6caf9810e067655e25f1362098797fef7c44d3103e63dcb6f0fabe"
+version = "0.41.0"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "asynchronous-codec",
  "bytes",
  "futures",
  "libp2p-core",
  "libp2p-identity",
- "log",
  "nohash-hasher",
  "parking_lot 0.12.1",
  "rand",
- "smallvec 1.11.0",
- "unsigned-varint 0.7.2",
+ "smallvec",
+ "tracing",
+ "unsigned-varint 0.8.0",
 ]
 
 [[package]]
 name = "libp2p-noise"
-version = "0.43.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71ce70757f2c0d82e9a3ef738fb10ea0723d16cec37f078f719e2c247704c1bb"
+version = "0.44.0"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
+ "asynchronous-codec",
  "bytes",
- "curve25519-dalek 4.1.0",
+ "curve25519-dalek",
  "futures",
  "libp2p-core",
  "libp2p-identity",
- "log",
- "multiaddr 0.18.0",
- "multihash 0.19.1",
+ "multiaddr",
+ "multihash",
  "once_cell",
  "quick-protobuf",
  "rand",
- "sha2 0.10.7",
+ "sha2 0.10.8",
  "snow",
  "static_assertions",
  "thiserror",
+ "tracing",
  "x25519-dalek",
  "zeroize",
 ]
 
 [[package]]
 name = "libp2p-plaintext"
-version = "0.40.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37266c683a757df713f7dcda0cdcb5ad4681355ffa1b37b77c113c176a531195"
+version = "0.41.0"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "asynchronous-codec",
  "bytes",
  "futures",
  "libp2p-core",
  "libp2p-identity",
- "log",
  "quick-protobuf",
- "unsigned-varint 0.7.2",
+ "quick-protobuf-codec",
+ "tracing",
 ]
 
 [[package]]
 name = "libp2p-quic"
-version = "0.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cb763e88f9a043546bfebd3575f340e7dd3d6c1b2cf2629600ec8965360c63a"
+version = "0.10.2"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "bytes",
  "futures",
@@ -4274,21 +4414,21 @@ dependencies = [
  "libp2p-core",
  "libp2p-identity",
  "libp2p-tls",
- "log",
  "parking_lot 0.12.1",
  "quinn",
  "rand",
- "rustls",
- "socket2 0.5.4",
+ "ring 0.16.20",
+ "rustls 0.21.10",
+ "socket2 0.5.5",
  "thiserror",
  "tokio",
+ "tracing",
 ]
 
 [[package]]
 name = "libp2p-swarm"
-version = "0.43.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28016944851bd73526d3c146aabf0fa9bbe27c558f080f9e5447da3a1772c01a"
+version = "0.45.0"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "either",
  "fnv",
@@ -4298,33 +4438,30 @@ dependencies = [
  "libp2p-core",
  "libp2p-identity",
  "libp2p-swarm-derive",
- "log",
  "multistream-select",
  "once_cell",
  "rand",
- "smallvec 1.11.0",
+ "smallvec",
  "tokio",
+ "tracing",
  "void",
 ]
 
 [[package]]
 name = "libp2p-swarm-derive"
-version = "0.33.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4d5ec2a3df00c7836d7696c136274c9c59705bac69133253696a6c932cd1d74"
+version = "0.34.1"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "heck",
- "proc-macro-warning",
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "libp2p-tcp"
-version = "0.40.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09bfdfb6f945c5c014b87872a0bdb6e0aef90e92f380ef57cd9013f118f9289d"
+version = "0.41.0"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "futures",
  "futures-timer",
@@ -4332,41 +4469,67 @@ dependencies = [
  "libc",
  "libp2p-core",
  "libp2p-identity",
- "log",
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "tokio",
+ "tracing",
 ]
 
 [[package]]
 name = "libp2p-tls"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8218d1d5482b122ccae396bbf38abdcb283ecc96fa54760e1dfd251f0546ac61"
+version = "0.3.0"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "futures",
  "futures-rustls",
  "libp2p-core",
  "libp2p-identity",
  "rcgen",
- "ring",
- "rustls",
- "rustls-webpki",
+ "ring 0.16.20",
+ "rustls 0.21.10",
+ "rustls-webpki 0.101.7",
  "thiserror",
  "x509-parser",
  "yasna",
 ]
 
 [[package]]
+name = "libp2p-upnp"
+version = "0.2.0"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
+dependencies = [
+ "futures",
+ "futures-timer",
+ "igd-next",
+ "libp2p-core",
+ "libp2p-swarm",
+ "tokio",
+ "tracing",
+ "void",
+]
+
+[[package]]
 name = "libp2p-yamux"
-version = "0.44.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eedcb62824c4300efb9cfd4e2a6edaf3ca097b9e68b36dabe45a44469fd6a85"
+version = "0.45.1"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
+ "either",
  "futures",
  "libp2p-core",
- "log",
  "thiserror",
- "yamux",
+ "tracing",
+ "yamux 0.12.1",
+ "yamux 0.13.1",
+]
+
+[[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.2",
+ "libc",
+ "redox_syscall 0.4.1",
 ]
 
 [[package]]
@@ -4429,9 +4592,9 @@ dependencies = [
 
 [[package]]
 name = "libz-sys"
-version = "1.1.12"
+version = "1.1.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
+checksum = "295c17e837573c8c821dbaeb3cceb3d745ad082f7572191409e69cbc1b3fd050"
 dependencies = [
  "cc",
  "pkg-config",
@@ -4440,7 +4603,7 @@ dependencies = [
 
 [[package]]
 name = "lighthouse"
-version = "4.5.0"
+version = "4.6.0"
 dependencies = [
  "account_manager",
  "account_utils",
@@ -4452,7 +4615,6 @@ dependencies = [
  "clap_utils",
  "database_manager",
  "directory",
- "env_logger 0.9.3",
  "environment",
  "eth1",
  "eth2",
@@ -4463,6 +4625,7 @@ dependencies = [
  "lighthouse_metrics",
  "lighthouse_network",
  "lighthouse_version",
+ "logging",
  "malloc_utils",
  "sensitive_url",
  "serde",
@@ -4474,6 +4637,7 @@ dependencies = [
  "sloggers",
  "task_executor",
  "tempfile",
+ "tracing-subscriber",
  "types",
  "unused_port",
  "validator_client",
@@ -4507,10 +4671,9 @@ dependencies = [
  "lazy_static",
  "libp2p",
  "libp2p-mplex",
- "libp2p-quic",
  "lighthouse_metrics",
  "lighthouse_version",
- "lru 0.7.8",
+ "lru",
  "lru_cache",
  "parking_lot 0.12.1",
  "prometheus-client",
@@ -4519,12 +4682,11 @@ dependencies = [
  "rand",
  "regex",
  "serde",
- "serde_derive",
  "sha2 0.9.9",
  "slog",
  "slog-async",
  "slog-term",
- "smallvec 1.11.0",
+ "smallvec",
  "snap",
  "ssz_types",
  "strum",
@@ -4566,15 +4728,9 @@ checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.4.7"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lmdb-rkv"
@@ -4599,9 +4755,9 @@ dependencies = [
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -4637,24 +4793,20 @@ dependencies = [
  "sloggers",
  "take_mut",
  "tokio",
+ "tracing",
+ "tracing-appender",
+ "tracing-core",
+ "tracing-log",
+ "tracing-subscriber",
 ]
 
 [[package]]
 name = "lru"
-version = "0.7.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a"
-dependencies = [
- "hashbrown 0.12.3",
-]
-
-[[package]]
-name = "lru"
-version = "0.10.1"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670"
+checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7"
 dependencies = [
- "hashbrown 0.13.2",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -4671,13 +4823,14 @@ name = "lru_cache"
 version = "0.1.0"
 dependencies = [
  "fnv",
+ "mock_instant",
 ]
 
 [[package]]
-name = "mach"
-version = "0.3.2"
+name = "mach2"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
+checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709"
 dependencies = [
  "libc",
 ]
@@ -4723,22 +4876,17 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
 
 [[package]]
 name = "matchit"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed1202b2a6f884ae56f04cff409ab315c5ce26b5e58d7412e484f01fd52f52ef"
-
-[[package]]
-name = "maybe-uninit"
-version = "2.0.0"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
 
 [[package]]
 name = "md-5"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
 dependencies = [
+ "cfg-if",
  "digest 0.10.7",
 ]
 
@@ -4747,7 +4895,7 @@ name = "mdbx-sys"
 version = "0.11.6-4"
 source = "git+https://github.com/sigp/libmdbx-rs?tag=v0.1.4#096da80a83d14343f8df833006483f48075cd135"
 dependencies = [
- "bindgen",
+ "bindgen 0.59.2",
  "cc",
  "cmake",
  "libc",
@@ -4755,24 +4903,15 @@ dependencies = [
 
 [[package]]
 name = "mediatype"
-version = "0.19.15"
+version = "0.19.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c408dc227d302f1496c84d9dc68c00fec6f56f9228a18f3023f976f3ca7c945"
+checksum = "83a018c36a54f4e12c30464bbc59311f85d3f6f4d6c1b4fa4ea9db2b174ddefc"
 
 [[package]]
 name = "memchr"
-version = "2.6.3"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
-
-[[package]]
-name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memoffset"
@@ -4814,32 +4953,11 @@ dependencies = [
  "itertools",
  "proc-macro2",
  "quote",
- "smallvec 1.11.0",
+ "smallvec",
  "syn 1.0.109",
 ]
 
 [[package]]
-name = "mev-rs"
-version = "0.3.0"
-source = "git+https://github.com/ralexstokes/mev-rs?rev=216657016d5c0889b505857c89ae42c7aa2764af#216657016d5c0889b505857c89ae42c7aa2764af"
-dependencies = [
- "anvil-rpc",
- "async-trait",
- "axum",
- "beacon-api-client",
- "ethereum-consensus",
- "hyper",
- "parking_lot 0.12.1",
- "reqwest",
- "serde",
- "serde_json",
- "ssz_rs",
- "thiserror",
- "tokio",
- "tracing",
-]
-
-[[package]]
 name = "migrations_internals"
 version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4905,16 +5023,22 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
+name = "mock_instant"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c1a54de846c4006b88b1516731cc1f6026eb5dc4bcb186aa071ef66d40524ec"
+
+[[package]]
 name = "monitoring_api"
 version = "0.1.0"
 dependencies = [
@@ -4926,7 +5050,6 @@ dependencies = [
  "reqwest",
  "sensitive_url",
  "serde",
- "serde_derive",
  "serde_json",
  "slog",
  "store",
@@ -4936,40 +5059,22 @@ dependencies = [
 
 [[package]]
 name = "more-asserts"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389"
-
-[[package]]
-name = "multiaddr"
-version = "0.14.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c580bfdd8803cce319b047d239559a22f809094aaea4ac13902a1fdcfcd4261"
-dependencies = [
- "arrayref",
- "bs58 0.4.0",
- "byteorder",
- "data-encoding",
- "multihash 0.16.3",
- "percent-encoding",
- "serde",
- "static_assertions",
- "unsigned-varint 0.7.2",
- "url",
-]
+checksum = "1fafa6961cabd9c63bcd77a45d7e3b7f3b552b70417831fb0f56db717e72407e"
 
 [[package]]
 name = "multiaddr"
-version = "0.18.0"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92a651988b3ed3ad1bc8c87d016bb92f6f395b84ed1db9b926b32b1fc5a2c8b5"
+checksum = "8b852bc02a2da5feed68cd14fa50d0774b92790a5bdbfa932a813926c8472070"
 dependencies = [
  "arrayref",
  "byteorder",
  "data-encoding",
  "libp2p-identity",
  "multibase",
- "multihash 0.19.1",
+ "multihash",
  "percent-encoding",
  "serde",
  "static_assertions",
@@ -4990,19 +5095,6 @@ dependencies = [
 
 [[package]]
 name = "multihash"
-version = "0.16.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c346cf9999c631f002d8f977c4eaeaa0e6386f16007202308d0b3757522c2cc"
-dependencies = [
- "core2",
- "digest 0.10.7",
- "multihash-derive",
- "sha2 0.10.7",
- "unsigned-varint 0.7.2",
-]
-
-[[package]]
-name = "multihash"
 version = "0.19.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492"
@@ -5012,31 +5104,16 @@ dependencies = [
 ]
 
 [[package]]
-name = "multihash-derive"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db"
-dependencies = [
- "proc-macro-crate",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "synstructure",
-]
-
-[[package]]
 name = "multistream-select"
 version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea0df8e5eec2298a62b326ee4f0d7fe1a6b90a09dfcf9df37b38f947a8c42f19"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "bytes",
  "futures",
- "log",
  "pin-project",
- "smallvec 1.11.0",
- "unsigned-varint 0.7.2",
+ "smallvec",
+ "tracing",
+ "unsigned-varint 0.8.0",
 ]
 
 [[package]]
@@ -5133,6 +5210,7 @@ dependencies = [
  "derivative",
  "environment",
  "error-chain",
+ "eth2",
  "ethereum-types 0.14.1",
  "ethereum_ssz",
  "execution_layer",
@@ -5148,6 +5226,7 @@ dependencies = [
  "lighthouse_metrics",
  "lighthouse_network",
  "logging",
+ "lru",
  "lru_cache",
  "matches",
  "num_cpus",
@@ -5160,7 +5239,7 @@ dependencies = [
  "slog-term",
  "sloggers",
  "slot_clock",
- "smallvec 1.11.0",
+ "smallvec",
  "ssz_types",
  "store",
  "strum",
@@ -5173,19 +5252,6 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.23.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c"
-dependencies = [
- "bitflags 1.3.2",
- "cc",
- "cfg-if",
- "libc",
- "memoffset 0.6.5",
-]
-
-[[package]]
-name = "nix"
 version = "0.24.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
@@ -5201,7 +5267,7 @@ version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.2",
  "cfg-if",
  "libc",
 ]
@@ -5223,12 +5289,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "nodrop"
-version = "0.1.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
-
-[[package]]
 name = "nohash-hasher"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5288,7 +5348,7 @@ dependencies = [
  "num-traits",
  "rand",
  "serde",
- "smallvec 1.11.0",
+ "smallvec",
  "zeroize",
 ]
 
@@ -5315,9 +5375,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
  "autocfg",
 ]
@@ -5328,7 +5388,7 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.2",
+ "hermit-abi 0.3.4",
  "libc",
 ]
 
@@ -5343,9 +5403,9 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.32.1"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
@@ -5361,9 +5421,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "oneshot_broadcast"
@@ -5411,11 +5471,11 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.57"
+version = "0.10.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c"
+checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.2",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -5432,7 +5492,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5443,18 +5503,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "300.1.3+3.1.2"
+version = "300.2.1+3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd2c101a165fff9935e34def4669595ab1c7847943c42be86e21503e482be107"
+checksum = "3fe476c29791a5ca0d1273c697e96085bbabbbea2ef7afd5617e78a4b40332d3"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.93"
+version = "0.9.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d"
+checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
 dependencies = [
  "cc",
  "libc",
@@ -5480,7 +5540,6 @@ dependencies = [
  "rand",
  "rayon",
  "serde",
- "serde_derive",
  "state_processing",
  "store",
  "tokio",
@@ -5499,10 +5558,10 @@ version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b"
 dependencies = [
- "ecdsa 0.16.8",
- "elliptic-curve 0.13.5",
+ "ecdsa 0.16.9",
+ "elliptic-curve 0.13.8",
  "primeorder",
- "sha2 0.10.7",
+ "sha2 0.10.8",
 ]
 
 [[package]]
@@ -5521,15 +5580,15 @@ dependencies = [
 
 [[package]]
 name = "parity-scale-codec"
-version = "3.6.5"
+version = "3.6.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0dec8a8073036902368c2cdc0387e85ff9a37054d7e7c98e592145e0c92cd4fb"
+checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe"
 dependencies = [
  "arrayvec",
  "bitvec 1.0.1",
  "byte-slice-cast",
  "impl-trait-for-tuples",
- "parity-scale-codec-derive 3.6.5",
+ "parity-scale-codec-derive 3.6.9",
  "serde",
 ]
 
@@ -5539,7 +5598,7 @@ version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -5547,11 +5606,11 @@ dependencies = [
 
 [[package]]
 name = "parity-scale-codec-derive"
-version = "3.6.5"
+version = "3.6.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260"
+checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 2.0.0",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -5559,9 +5618,9 @@ dependencies = [
 
 [[package]]
 name = "parking"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
@@ -5581,7 +5640,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
 dependencies = [
  "lock_api",
- "parking_lot_core 0.9.8",
+ "parking_lot_core 0.9.9",
 ]
 
 [[package]]
@@ -5594,20 +5653,20 @@ dependencies = [
  "instant",
  "libc",
  "redox_syscall 0.2.16",
- "smallvec 1.11.0",
+ "smallvec",
  "winapi",
 ]
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.3.5",
- "smallvec 1.11.0",
+ "redox_syscall 0.4.1",
+ "smallvec",
  "windows-targets 0.48.5",
 ]
 
@@ -5618,7 +5677,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700"
 dependencies = [
  "base64ct",
- "rand_core 0.6.4",
+ "rand_core",
  "subtle",
 ]
 
@@ -5634,7 +5693,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa"
 dependencies = [
- "crypto-mac 0.11.1",
+ "crypto-mac 0.11.0",
 ]
 
 [[package]]
@@ -5646,7 +5705,7 @@ dependencies = [
  "digest 0.10.7",
  "hmac 0.12.1",
  "password-hash",
- "sha2 0.10.7",
+ "sha2 0.10.8",
 ]
 
 [[package]]
@@ -5665,6 +5724,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "pem"
+version = "3.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
+dependencies = [
+ "base64 0.21.7",
+ "serde",
+]
+
+[[package]]
 name = "pem-rfc7468"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5675,9 +5744,9 @@ dependencies = [
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pharos"
@@ -5724,7 +5793,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5756,14 +5825,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
 dependencies = [
  "der 0.7.8",
- "spki 0.7.2",
+ "spki 0.7.3",
 ]
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "platforms"
@@ -5773,9 +5842,9 @@ checksum = "e8d0eef3571242013a0d5dc84861c3ae4a652e56e12adf8bdc26ff5f8cb34c94"
 
 [[package]]
 name = "platforms"
-version = "3.1.2"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8"
+checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c"
 
 [[package]]
 name = "plotters"
@@ -5807,29 +5876,27 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "2.8.0"
+version = "3.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
+checksum = "545c980a3880efd47b2e262f6a4bb6daad6555cf3367aa9c4e52895f69537a41"
 dependencies = [
- "autocfg",
- "bitflags 1.3.2",
  "cfg-if",
  "concurrent-queue",
- "libc",
- "log",
  "pin-project-lite",
- "windows-sys 0.48.0",
+ "rustix 0.38.30",
+ "tracing",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "poly1305"
-version = "0.7.2"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede"
+checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
 dependencies = [
  "cpufeatures",
  "opaque-debug",
- "universal-hash",
+ "universal-hash 0.5.1",
 ]
 
 [[package]]
@@ -5841,7 +5908,19 @@ dependencies = [
  "cfg-if",
  "cpufeatures",
  "opaque-debug",
- "universal-hash",
+ "universal-hash 0.4.0",
+]
+
+[[package]]
+name = "polyval"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "opaque-debug",
+ "universal-hash 0.5.1",
 ]
 
 [[package]]
@@ -5850,7 +5929,7 @@ version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.7",
  "byteorder",
  "bytes",
  "fallible-iterator",
@@ -5858,7 +5937,7 @@ dependencies = [
  "md-5",
  "memchr",
  "rand",
- "sha2 0.10.7",
+ "sha2 0.10.8",
  "stringprep",
 ]
 
@@ -5874,6 +5953,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5897,12 +5982,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "prettyplease"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5"
+dependencies = [
+ "proc-macro2",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "primeorder"
-version = "0.13.2"
+version = "0.13.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3"
+checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
 dependencies = [
- "elliptic-curve 0.13.5",
+ "elliptic-curve 0.13.8",
 ]
 
 [[package]]
@@ -5920,9 +6015,9 @@ dependencies = [
 
 [[package]]
 name = "primitive-types"
-version = "0.12.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f3486ccba82358b11a77516035647c34ba167dfa53312630de83b12bd4f3d66"
+checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2"
 dependencies = [
  "fixed-hash 0.8.0",
  "impl-codec 0.6.0",
@@ -5934,12 +6029,21 @@ dependencies = [
 
 [[package]]
 name = "proc-macro-crate"
-version = "1.1.3"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
 dependencies = [
- "thiserror",
- "toml 0.5.11",
+ "once_cell",
+ "toml_edit 0.19.15",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8"
+dependencies = [
+ "toml_edit 0.20.7",
 ]
 
 [[package]]
@@ -5967,27 +6071,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "proc-macro-hack"
-version = "0.5.20+deprecated"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
-
-[[package]]
-name = "proc-macro-warning"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.37",
-]
-
-[[package]]
 name = "proc-macro2"
-version = "1.0.67"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
@@ -6004,7 +6091,7 @@ dependencies = [
  "flate2",
  "hex",
  "lazy_static",
- "rustix 0.36.15",
+ "rustix 0.36.17",
 ]
 
 [[package]]
@@ -6024,9 +6111,9 @@ dependencies = [
 
 [[package]]
 name = "prometheus-client"
-version = "0.21.2"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c99afa9a01501019ac3a14d71d9f94050346f55ca471ce90c799a15c58f61e2"
+checksum = "510c4f1c9d81d556458f94c98f857748130ea9737bbd6053da497503b26ea63c"
 dependencies = [
  "dtoa",
  "itoa",
@@ -6042,7 +6129,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -6053,7 +6140,6 @@ dependencies = [
  "ethereum_ssz_derive",
  "safe_arith",
  "serde",
- "serde_derive",
  "serde_yaml",
  "superstruct",
  "types",
@@ -6067,16 +6153,16 @@ checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94"
 
 [[package]]
 name = "psutil"
-version = "3.2.2"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f866af2b0f8e4b0d2d00aad8a9c5fc48fad33466cd99a64cbb3a4c1505f1a62d"
+checksum = "5e617cc9058daa5e1fe5a0d23ed745773a5ee354111dad1ec0235b0cc16b6730"
 dependencies = [
  "cfg-if",
  "darwin-libproc",
  "derive_more",
  "glob",
- "mach",
- "nix 0.23.2",
+ "mach2",
+ "nix 0.24.3",
  "num_cpus",
  "once_cell",
  "platforms 2.0.0",
@@ -6101,15 +6187,14 @@ dependencies = [
 
 [[package]]
 name = "quick-protobuf-codec"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8ededb1cd78531627244d51dd0c7139fbe736c7d57af0092a76f0ffb2f56e98"
+version = "0.3.1"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "asynchronous-codec",
  "bytes",
  "quick-protobuf",
  "thiserror",
- "unsigned-varint 0.7.2",
+ "unsigned-varint 0.8.0",
 ]
 
 [[package]]
@@ -6146,7 +6231,7 @@ dependencies = [
  "quinn-proto",
  "quinn-udp",
  "rustc-hash",
- "rustls",
+ "rustls 0.21.10",
  "thiserror",
  "tokio",
  "tracing",
@@ -6154,15 +6239,15 @@ dependencies = [
 
 [[package]]
 name = "quinn-proto"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c78e758510582acc40acb90458401172d41f1016f8c9dde89e49677afb7eec1"
+checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a"
 dependencies = [
  "bytes",
  "rand",
- "ring",
+ "ring 0.16.20",
  "rustc-hash",
- "rustls",
+ "rustls 0.21.10",
  "slab",
  "thiserror",
  "tinyvec",
@@ -6177,16 +6262,16 @@ checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7"
 dependencies = [
  "bytes",
  "libc",
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "tracing",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -6232,7 +6317,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 dependencies = [
  "libc",
  "rand_chacha",
- "rand_core 0.6.4",
+ "rand_core",
 ]
 
 [[package]]
@@ -6242,16 +6327,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
 dependencies = [
  "ppv-lite86",
- "rand_core 0.6.4",
-]
-
-[[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",
+ "rand_core",
 ]
 
 [[package]]
@@ -6260,7 +6336,7 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.10",
+ "getrandom",
 ]
 
 [[package]]
@@ -6269,14 +6345,14 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
 dependencies = [
- "rand_core 0.6.4",
+ "rand_core",
 ]
 
 [[package]]
 name = "rayon"
-version = "1.7.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -6284,24 +6360,22 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.11.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
 ]
 
 [[package]]
 name = "rcgen"
-version = "0.10.0"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b"
+checksum = "52c4f3084aa3bc7dfbba4eff4fab2a54db4324965d8872ab933565e6fbd83bc6"
 dependencies = [
- "pem",
- "ring",
+ "pem 3.0.3",
+ "ring 0.16.20",
  "time",
  "yasna",
 ]
@@ -6317,34 +6391,34 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.3.5"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
  "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "redox_users"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
- "getrandom 0.2.10",
- "redox_syscall 0.2.16",
+ "getrandom",
+ "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.9.5"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.3.8",
- "regex-syntax 0.7.5",
+ "regex-automata 0.4.4",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
@@ -6358,13 +6432,13 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.8"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
+checksum = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.7.5",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
@@ -6375,25 +6449,25 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
-version = "0.11.20"
+version = "0.11.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
+checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41"
 dependencies = [
- "base64 0.21.4",
+ "base64 0.21.7",
  "bytes",
  "encoding_rs",
  "futures-core",
  "futures-util",
- "h2",
- "http",
- "http-body",
- "hyper",
+ "h2 0.3.24",
+ "http 0.2.11",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
  "hyper-rustls",
  "hyper-tls",
  "ipnet",
@@ -6404,15 +6478,16 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls",
- "rustls-pemfile",
+ "rustls 0.21.10",
+ "rustls-pemfile 1.0.4",
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "system-configuration",
  "tokio",
  "tokio-native-tls",
- "tokio-rustls",
- "tokio-util 0.7.8",
+ "tokio-rustls 0.24.1",
+ "tokio-util 0.7.10",
  "tower-service",
  "url",
  "wasm-bindgen",
@@ -6463,13 +6538,27 @@ dependencies = [
  "cc",
  "libc",
  "once_cell",
- "spin",
- "untrusted",
+ "spin 0.5.2",
+ "untrusted 0.7.1",
  "web-sys",
  "winapi",
 ]
 
 [[package]]
+name = "ring"
+version = "0.17.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+dependencies = [
+ "cc",
+ "getrandom",
+ "libc",
+ "spin 0.9.8",
+ "untrusted 0.9.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "rle-decode-fast"
 version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6530,9 +6619,9 @@ dependencies = [
  "bitflags 1.3.2",
  "fallible-iterator",
  "fallible-streaming-iterator",
- "hashlink 0.8.4",
+ "hashlink",
  "libsqlite3-sys",
- "smallvec 1.11.0",
+ "smallvec",
 ]
 
 [[package]]
@@ -6573,9 +6662,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.36.15"
+version = "0.36.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c37f1bd5ef1b5422177b7646cba67430579cfe2ace80f284fee876bca52ad941"
+checksum = "305efbd14fde4139eb501df5f136994bb520b033fa9fbdce287507dc23b8c7ed"
 dependencies = [
  "bitflags 1.3.2",
  "errno",
@@ -6587,60 +6676,87 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.37.23"
+version = "0.38.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "errno",
- "io-lifetimes",
  "libc",
- "linux-raw-sys 0.3.8",
- "windows-sys 0.48.0",
+ "linux-raw-sys 0.4.13",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "rustix"
-version = "0.38.13"
+name = "rustls"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
- "bitflags 2.4.0",
- "errno",
- "libc",
- "linux-raw-sys 0.4.7",
- "windows-sys 0.48.0",
+ "log",
+ "ring 0.17.7",
+ "rustls-webpki 0.101.7",
+ "sct",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.7"
+version = "0.22.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
+checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
 dependencies = [
  "log",
- "ring",
- "rustls-webpki",
- "sct",
+ "ring 0.17.7",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.1",
+ "subtle",
+ "zeroize",
 ]
 
 [[package]]
 name = "rustls-pemfile"
-version = "1.0.3"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64 0.21.7",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4"
+dependencies = [
+ "base64 0.21.7",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e9d979b3ce68192e42760c7810125eb6cf2ea10efae545a156063e61f314e2a"
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
- "base64 0.21.4",
+ "ring 0.17.7",
+ "untrusted 0.9.0",
 ]
 
 [[package]]
 name = "rustls-webpki"
-version = "0.101.5"
+version = "0.102.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45a27e3b59326c16e23d30aeb7a36a24cc0d29e71d68ff611cdfb4a01d013bed"
+checksum = "ef4ca26037c909dedb327b48c3327d0ba91d3dd3c4e05dad328f210ffb68e95b"
 dependencies = [
- "ring",
- "untrusted",
+ "ring 0.17.7",
+ "rustls-pki-types",
+ "untrusted 0.9.0",
 ]
 
 [[package]]
@@ -6652,8 +6768,7 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 [[package]]
 name = "rw-stream-sink"
 version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8c9026ff5d2f23da5e45bbc283f156383001bfb09c4e44256d02c1a685fe9a1"
+source = "git+https://github.com/sigp/rust-libp2p/?rev=cfa3275ca17e502799ed56e555b6c0611752e369#cfa3275ca17e502799ed56e555b6c0611752e369"
 dependencies = [
  "futures",
  "pin-project",
@@ -6662,9 +6777,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "safe_arith"
@@ -6690,23 +6805,23 @@ dependencies = [
 
 [[package]]
 name = "scale-info"
-version = "2.9.0"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35c0a159d0c45c12b20c5a844feb1fe4bea86e28f17b92a5f0c42193634d3782"
+checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60"
 dependencies = [
  "cfg-if",
  "derive_more",
- "parity-scale-codec 3.6.5",
+ "parity-scale-codec 3.6.9",
  "scale-info-derive",
 ]
 
 [[package]]
 name = "scale-info-derive"
-version = "2.9.0"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "912e55f6d20e0e80d63733872b40e1227c0bce1e1ab81ba67d696339bfd7fd29"
+checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -6714,11 +6829,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -6756,12 +6871,12 @@ dependencies = [
 
 [[package]]
 name = "sct"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
- "ring",
- "untrusted",
+ "ring 0.17.7",
+ "untrusted 0.9.0",
 ]
 
 [[package]]
@@ -6817,9 +6932,9 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.18"
+version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
 dependencies = [
  "serde",
 ]
@@ -6840,25 +6955,14 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.188"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
-name = "serde-hex"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca37e3e4d1b39afd7ff11ee4e947efae85adfddf4841787bfa47c470e96dc26d"
-dependencies = [
- "array-init",
- "serde",
- "smallvec 0.6.14",
-]
-
-[[package]]
 name = "serde_array_query"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6880,20 +6984,20 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.188"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.107"
+version = "1.0.111"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
 dependencies = [
  "itoa",
  "ryu",
@@ -6902,9 +7006,9 @@ dependencies = [
 
 [[package]]
 name = "serde_path_to_error"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335"
+checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c"
 dependencies = [
  "itoa",
  "serde",
@@ -6912,20 +7016,20 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.16"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
+checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
@@ -6966,21 +7070,22 @@ dependencies = [
 
 [[package]]
 name = "serde_yaml"
-version = "0.8.26"
+version = "0.9.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b"
+checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38"
 dependencies = [
- "indexmap 1.9.3",
+ "indexmap 2.1.0",
+ "itoa",
  "ryu",
  "serde",
- "yaml-rust",
+ "unsafe-libyaml",
 ]
 
 [[package]]
 name = "sha1"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -7002,9 +7107,9 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.10.7"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -7035,18 +7140,18 @@ dependencies = [
 
 [[package]]
 name = "sharded-slab"
-version = "0.1.4"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
 dependencies = [
  "lazy_static",
 ]
 
 [[package]]
 name = "shlex"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "signal-hook-registry"
@@ -7064,17 +7169,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c"
 dependencies = [
  "digest 0.10.7",
- "rand_core 0.6.4",
+ "rand_core",
 ]
 
 [[package]]
 name = "signature"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
+checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
 dependencies = [
  "digest 0.10.7",
- "rand_core 0.6.4",
+ "rand_core",
 ]
 
 [[package]]
@@ -7138,14 +7243,13 @@ dependencies = [
  "lmdb-rkv",
  "lmdb-rkv-sys",
  "logging",
- "lru 0.7.8",
+ "lru",
  "maplit",
  "parking_lot 0.12.1",
  "rand",
  "rayon",
  "safe_arith",
  "serde",
- "serde_derive",
  "slog",
  "sloggers",
  "strum",
@@ -7185,7 +7289,6 @@ dependencies = [
  "rayon",
  "rusqlite",
  "serde",
- "serde_derive",
  "serde_json",
  "tempfile",
  "types",
@@ -7196,6 +7299,9 @@ name = "slog"
 version = "2.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06"
+dependencies = [
+ "erased-serde",
+]
 
 [[package]]
 name = "slog-async"
@@ -7302,47 +7408,38 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "0.6.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0"
-dependencies = [
- "maybe-uninit",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.11.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "snap"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831"
+checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
 
 [[package]]
 name = "snow"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c9d1425eb528a21de2755c75af4c9b5d57f50a0d4c3b7f1828a4cd03f8ba155"
+checksum = "58021967fd0a5eeeb23b08df6cc244a4d4a5b4aec1d27c9e02fad1a58b4cd74e"
 dependencies = [
- "aes-gcm",
+ "aes-gcm 0.10.3",
  "blake2",
  "chacha20poly1305",
- "curve25519-dalek 4.1.0",
- "rand_core 0.6.4",
- "ring",
+ "curve25519-dalek",
+ "rand_core",
+ "ring 0.17.7",
  "rustc_version",
- "sha2 0.10.7",
+ "sha2 0.10.8",
  "subtle",
 ]
 
 [[package]]
 name = "socket2"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
 dependencies = [
  "libc",
  "winapi",
@@ -7350,9 +7447,9 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.4"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
 dependencies = [
  "libc",
  "windows-sys 0.48.0",
@@ -7365,6 +7462,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
 
 [[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
+[[package]]
 name = "spki"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7376,40 +7479,15 @@ dependencies = [
 
 [[package]]
 name = "spki"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a"
+checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
 dependencies = [
  "base64ct",
  "der 0.7.8",
 ]
 
 [[package]]
-name = "ssz_rs"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "057291e5631f280978fa9c8009390663ca4613359fc1318e36a8c24c392f6d1f"
-dependencies = [
- "bitvec 1.0.1",
- "hex",
- "num-bigint",
- "serde",
- "sha2 0.9.9",
- "ssz_rs_derive",
-]
-
-[[package]]
-name = "ssz_rs_derive"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
 name = "ssz_types"
 version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7422,7 +7500,7 @@ dependencies = [
  "itertools",
  "serde",
  "serde_derive",
- "smallvec 1.11.0",
+ "smallvec",
  "tree_hash",
  "typenum",
 ]
@@ -7447,7 +7525,7 @@ dependencies = [
  "merkle_proof",
  "rayon",
  "safe_arith",
- "smallvec 1.11.0",
+ "smallvec",
  "ssz_types",
  "tokio",
  "tree_hash",
@@ -7485,10 +7563,9 @@ dependencies = [
  "lazy_static",
  "leveldb",
  "lighthouse_metrics",
- "lru 0.7.8",
+ "lru",
  "parking_lot 0.12.1",
  "serde",
- "serde_derive",
  "slog",
  "sloggers",
  "state_processing",
@@ -7544,9 +7621,9 @@ dependencies = [
 
 [[package]]
 name = "subtle"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "superstruct"
@@ -7558,7 +7635,7 @@ dependencies = [
  "itertools",
  "proc-macro2",
  "quote",
- "smallvec 1.11.0",
+ "smallvec",
  "syn 1.0.109",
 ]
 
@@ -7584,9 +7661,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.37"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -7654,7 +7731,6 @@ dependencies = [
  "lighthouse_network",
  "parking_lot 0.12.1",
  "serde",
- "serde_derive",
  "serde_json",
  "sysinfo",
  "types",
@@ -7700,15 +7776,15 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.8.0"
+version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
  "cfg-if",
- "fastrand 2.0.0",
- "redox_syscall 0.3.5",
- "rustix 0.38.13",
- "windows-sys 0.48.0",
+ "fastrand",
+ "redox_syscall 0.4.1",
+ "rustix 0.38.30",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -7724,9 +7800,9 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.2.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
@@ -7749,8 +7825,9 @@ dependencies = [
 
 [[package]]
 name = "testcontainers"
-version = "0.14.0"
-source = "git+https://github.com/testcontainers/testcontainers-rs/?rev=0f2c9851#0f2c985160e51a200cfc847097c15b8d85ed7df1"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f83d2931d7f521af5bae989f716c3fa43a6af9af7ec7a5e21b59ae40878cec00"
 dependencies = [
  "bollard-stubs",
  "futures",
@@ -7760,7 +7837,7 @@ dependencies = [
  "rand",
  "serde",
  "serde_json",
- "sha2 0.10.7",
+ "sha2 0.10.8",
 ]
 
 [[package]]
@@ -7774,22 +7851,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.48"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.48"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -7813,14 +7890,15 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.28"
+version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
+checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
 dependencies = [
  "deranged",
  "itoa",
  "libc",
  "num_threads",
+ "powerfmt",
  "serde",
  "time-core",
  "time-macros",
@@ -7828,15 +7906,15 @@ dependencies = [
 
 [[package]]
 name = "time-core"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.14"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
+checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
 dependencies = [
  "time-core",
 ]
@@ -7864,7 +7942,7 @@ dependencies = [
  "pbkdf2 0.11.0",
  "rand",
  "rustc-hash",
- "sha2 0.10.7",
+ "sha2 0.10.8",
  "thiserror",
  "unicode-normalization",
  "wasm-bindgen",
@@ -7907,19 +7985,18 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.32.0"
+version = "1.35.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
 dependencies = [
  "backtrace",
  "bytes",
  "libc",
  "mio",
  "num_cpus",
- "parking_lot 0.12.1",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "tokio-macros",
  "windows-sys 0.48.0",
 ]
@@ -7936,13 +8013,13 @@ dependencies = [
 
 [[package]]
 name = "tokio-macros"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -7975,9 +8052,9 @@ dependencies = [
  "postgres-protocol",
  "postgres-types",
  "rand",
- "socket2 0.5.4",
+ "socket2 0.5.5",
  "tokio",
- "tokio-util 0.7.8",
+ "tokio-util 0.7.10",
  "whoami",
 ]
 
@@ -7987,7 +8064,18 @@ version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
 dependencies = [
- "rustls",
+ "rustls 0.21.10",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+dependencies = [
+ "rustls 0.22.2",
+ "rustls-pki-types",
  "tokio",
 ]
 
@@ -8000,7 +8088,7 @@ dependencies = [
  "futures-core",
  "pin-project-lite",
  "tokio",
- "tokio-util 0.7.8",
+ "tokio-util 0.7.10",
 ]
 
 [[package]]
@@ -8021,9 +8109,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.8"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
 dependencies = [
  "bytes",
  "futures-core",
@@ -8052,14 +8140,14 @@ dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit",
+ "toml_edit 0.19.15",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
 ]
@@ -8070,7 +8158,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.1.0",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -8078,6 +8166,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "toml_edit"
+version = "0.20.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
+dependencies = [
+ "indexmap 2.1.0",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
 name = "tower"
 version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8107,11 +8206,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
  "log",
  "pin-project-lite",
  "tracing-attributes",
@@ -8119,21 +8217,33 @@ dependencies = [
 ]
 
 [[package]]
+name = "tracing-appender"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf"
+dependencies = [
+ "crossbeam-channel",
+ "thiserror",
+ "time",
+ "tracing-subscriber",
+]
+
+[[package]]
 name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
  "valuable",
@@ -8151,27 +8261,27 @@ dependencies = [
 
 [[package]]
 name = "tracing-log"
-version = "0.1.3"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
 dependencies = [
- "lazy_static",
  "log",
+ "once_cell",
  "tracing-core",
 ]
 
 [[package]]
 name = "tracing-subscriber"
-version = "0.3.17"
+version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
 dependencies = [
  "matchers",
  "nu-ansi-term",
  "once_cell",
  "regex",
  "sharded-slab",
- "smallvec 1.11.0",
+ "smallvec",
  "thread_local",
  "tracing",
  "tracing-core",
@@ -8205,7 +8315,7 @@ checksum = "5c998ac5fe2b07c025444bdd522e6258110b63861c6698eedc610c071980238d"
 dependencies = [
  "ethereum-types 0.14.1",
  "ethereum_hashing",
- "smallvec 1.11.0",
+ "smallvec",
 ]
 
 [[package]]
@@ -8230,56 +8340,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "trust-dns-proto"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26"
-dependencies = [
- "async-trait",
- "cfg-if",
- "data-encoding",
- "enum-as-inner",
- "futures-channel",
- "futures-io",
- "futures-util",
- "idna 0.2.3",
- "ipnet",
- "lazy_static",
- "rand",
- "smallvec 1.11.0",
- "socket2 0.4.9",
- "thiserror",
- "tinyvec",
- "tokio",
- "tracing",
- "url",
-]
-
-[[package]]
-name = "trust-dns-resolver"
-version = "0.22.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe"
-dependencies = [
- "cfg-if",
- "futures-util",
- "ipconfig",
- "lazy_static",
- "lru-cache",
- "parking_lot 0.12.1",
- "resolv-conf",
- "smallvec 1.11.0",
- "thiserror",
- "tokio",
- "tracing",
- "trust-dns-proto",
-]
-
-[[package]]
 name = "try-lock"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "typenum"
@@ -8308,6 +8372,7 @@ dependencies = [
  "hex",
  "int_to_bytes",
  "itertools",
+ "kzg",
  "lazy_static",
  "log",
  "maplit",
@@ -8322,12 +8387,10 @@ dependencies = [
  "rusqlite",
  "safe_arith",
  "serde",
- "serde_derive",
  "serde_json",
- "serde_with",
  "serde_yaml",
  "slog",
- "smallvec 1.11.0",
+ "smallvec",
  "ssz_types",
  "state_processing",
  "strum",
@@ -8370,9 +8433,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
@@ -8391,9 +8454,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "unicode-xid"
@@ -8403,15 +8466,31 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
 
 [[package]]
 name = "universal-hash"
-version = "0.4.1"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05"
+checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402"
 dependencies = [
  "generic-array",
  "subtle",
 ]
 
 [[package]]
+name = "universal-hash"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
+dependencies = [
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
+name = "unsafe-libyaml"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
+
+[[package]]
 name = "unsigned-varint"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8426,6 +8505,12 @@ name = "unsigned-varint"
 version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105"
+
+[[package]]
+name = "unsigned-varint"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06"
 dependencies = [
  "asynchronous-codec",
  "bytes",
@@ -8438,6 +8523,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
 
 [[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
 name = "unused_port"
 version = "0.1.0"
 dependencies = [
@@ -8448,12 +8539,12 @@ dependencies = [
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
- "idna 0.4.0",
+ "idna 0.5.0",
  "percent-encoding",
 ]
 
@@ -8463,7 +8554,7 @@ version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
 dependencies = [
- "getrandom 0.2.10",
+ "getrandom",
  "serde",
 ]
 
@@ -8487,7 +8578,7 @@ dependencies = [
  "filesystem",
  "futures",
  "hex",
- "hyper",
+ "hyper 1.1.0",
  "itertools",
  "lazy_static",
  "libsecp256k1",
@@ -8500,15 +8591,15 @@ dependencies = [
  "parking_lot 0.12.1",
  "rand",
  "reqwest",
- "ring",
+ "ring 0.16.20",
  "safe_arith",
  "sensitive_url",
  "serde",
- "serde_derive",
  "serde_json",
  "slashing_protection",
  "slog",
  "slot_clock",
+ "strum",
  "sysinfo",
  "system_health",
  "task_executor",
@@ -8597,12 +8688,6 @@ 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.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8623,29 +8708,28 @@ dependencies = [
 
 [[package]]
 name = "warp"
-version = "0.3.5"
-source = "git+https://github.com/seanmonstar/warp.git#5ad8a9cb155f6485d13d591a564d8c70053a388a"
+version = "0.3.6"
+source = "git+https://github.com/seanmonstar/warp.git#7b07043cee0ca24e912155db4e8f6d9ab7c049ed"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-util",
  "headers",
- "http",
- "hyper",
+ "http 0.2.11",
+ "hyper 0.14.28",
  "log",
  "mime",
  "mime_guess",
  "percent-encoding",
  "pin-project",
- "rustls-pemfile",
+ "rustls-pemfile 2.0.0",
  "scoped-tls",
  "serde",
  "serde_json",
  "serde_urlencoded",
  "tokio",
- "tokio-rustls",
- "tokio-stream",
- "tokio-util 0.7.8",
+ "tokio-rustls 0.25.0",
+ "tokio-util 0.7.10",
  "tower-service",
  "tracing",
 ]
@@ -8670,21 +8754,15 @@ dependencies = [
 
 [[package]]
 name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "wasi"
 version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -8692,24 +8770,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.37"
+version = "0.4.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -8719,9 +8797,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -8729,22 +8807,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
 
 [[package]]
 name = "wasm-streams"
@@ -8790,7 +8868,7 @@ dependencies = [
  "eth2",
  "hex",
  "http_api",
- "hyper",
+ "hyper 1.1.0",
  "log",
  "logging",
  "network",
@@ -8811,9 +8889,9 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.67"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -8847,9 +8925,21 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.25.2"
+version = "0.25.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
+
+[[package]]
+name = "which"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
+dependencies = [
+ "either",
+ "home",
+ "once_cell",
+ "rustix 0.38.30",
+]
 
 [[package]]
 name = "whoami"
@@ -8897,9 +8987,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -8912,23 +9002,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows"
-version = "0.34.0"
+version = "0.51.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45296b64204227616fdbf2614cefa4c236b98ee64dfaaaa435207ed99fe7829f"
-dependencies = [
- "windows_aarch64_msvc 0.34.0",
- "windows_i686_gnu 0.34.0",
- "windows_i686_msvc 0.34.0",
- "windows_x86_64_gnu 0.34.0",
- "windows_x86_64_msvc 0.34.0",
-]
-
-[[package]]
-name = "windows"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
 dependencies = [
+ "windows-core 0.51.1",
  "windows-targets 0.48.5",
 ]
 
@@ -8945,6 +9023,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "windows-core"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[package]]
 name = "windows-sys"
 version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8963,6 +9059,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[package]]
 name = "windows-targets"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8993,6 +9098,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "windows-targets"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
+]
+
+[[package]]
 name = "windows_aarch64_gnullvm"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -9005,10 +9125,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
-name = "windows_aarch64_msvc"
-version = "0.34.0"
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -9023,10 +9143,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
-name = "windows_i686_gnu"
-version = "0.34.0"
+name = "windows_aarch64_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -9041,10 +9161,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
-name = "windows_i686_msvc"
-version = "0.34.0"
+name = "windows_i686_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -9059,10 +9179,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
-name = "windows_x86_64_gnu"
-version = "0.34.0"
+name = "windows_i686_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -9077,6 +9197,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
+[[package]]
 name = "windows_x86_64_gnullvm"
 version = "0.42.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -9089,10 +9215,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
-name = "windows_x86_64_msvc"
-version = "0.34.0"
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -9107,10 +9233,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+[[package]]
 name = "winnow"
-version = "0.5.15"
+version = "0.5.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
+checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16"
 dependencies = [
  "memchr",
 ]
@@ -9161,12 +9293,13 @@ dependencies = [
 
 [[package]]
 name = "x25519-dalek"
-version = "1.1.1"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f"
+checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96"
 dependencies = [
- "curve25519-dalek 3.2.0",
- "rand_core 0.5.1",
+ "curve25519-dalek",
+ "rand_core",
+ "serde",
  "zeroize",
 ]
 
@@ -9189,9 +9322,9 @@ dependencies = [
 
 [[package]]
 name = "xml-rs"
-version = "0.8.18"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab77e97b50aee93da431f2cee7cd0f43b4d1da3c408042f2d7d164187774f0a"
+checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
 
 [[package]]
 name = "xmltree"
@@ -9213,9 +9346,9 @@ dependencies = [
 
 [[package]]
 name = "yamux"
-version = "0.12.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0329ef377816896f014435162bb3711ea7a07729c23d0960e6f8048b21b8fe91"
+checksum = "9ed0164ae619f2dc144909a9f082187ebb5893693d8c0196e8085283ccd4b776"
 dependencies = [
  "futures",
  "log",
@@ -9227,6 +9360,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "yamux"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad1d0148b89300047e72994bee99ecdabd15a9166a7b70c8b8c37c314dcc9002"
+dependencies = [
+ "futures",
+ "instant",
+ "log",
+ "nohash-hasher",
+ "parking_lot 0.12.1",
+ "pin-project",
+ "rand",
+ "static_assertions",
+]
+
+[[package]]
 name = "yasna"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -9236,10 +9385,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "zerocopy"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "zeroize"
-version = "1.6.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
 dependencies = [
  "zeroize_derive",
 ]
@@ -9252,7 +9421,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.37",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -9296,11 +9465,10 @@ dependencies = [
 
 [[package]]
 name = "zstd-sys"
-version = "2.0.8+zstd.1.5.5"
+version = "2.0.9+zstd.1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
+checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
 dependencies = [
  "cc",
- "libc",
  "pkg-config",
 ]
diff --git a/nixpkgs/pkgs/applications/blockchains/lighthouse/default.nix b/nixpkgs/pkgs/applications/blockchains/lighthouse/default.nix
index dbc4d4d4b9aa..b348233d312d 100644
--- a/nixpkgs/pkgs/applications/blockchains/lighthouse/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/lighthouse/default.nix
@@ -12,9 +12,9 @@
 , postgresql
 , protobuf
 , rustPlatform
+, rust-jemalloc-sys
 , Security
 , sqlite
-, rust-jemalloc-sys
 , stdenv
 , SystemConfiguration
 , testers
@@ -23,7 +23,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lighthouse";
-  version = "4.5.0";
+  version = "4.6.0";
 
   # lighthouse/common/deposit_contract/build.rs
   depositContractSpecVersion = "0.12.1";
@@ -33,11 +33,12 @@ rustPlatform.buildRustPackage rec {
     owner = "sigp";
     repo = "lighthouse";
     rev = "v${version}";
-    hash = "sha256-UUOvTxOQXT1zfhDYEL/J6moHAyejZn7GyGS/XBmXxRQ=";
+    hash = "sha256-uMrVnVvYXcY2Axn3ycsf+Pwur3HYGoOYjjUkGS5c3l4=";
   };
 
   patches = [
     ./use-system-sqlite.patch
+    ./use-c-kzg-from-crates-io.patch
   ];
 
   postPatch = ''
@@ -48,14 +49,11 @@ rustPlatform.buildRustPackage rec {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "amcl-0.3.0" = "sha256-kc8k/ls4W0TwFBsRcyyotyz8ZBEjsZXHeJnJtsnW/LM=";
-      "anvil-rpc-0.1.0" = "sha256-L38OioxnWEn94g3GJT4j3U1cJZ8jQDHp8d1QOHaVEuU=";
-      "beacon-api-client-0.1.0" = "sha256-Z0CoPxZzl2bjb8vgmHWxq2orMawhMMs7beKGopilKjE=";
-      "ethereum-consensus-0.1.1" = "sha256-biTrw3yMJUo9+56QK5RGWXLCoPPZEWp18SCs+Y9QWg4=";
+      "discv5-0.4.0" = "sha256-GKAk9Du6fy0ldeBEwPueDbVPhyNxdKNROKpMJvR/OTc=";
+      "futures-bounded-0.2.3" = "sha256-/LbD+je9P1lPnXMJVDqRQHJziQPXPvSDmQadTfsQ5I8=";
       "libmdbx-0.1.4" = "sha256-NMsR/Wl1JIj+YFPyeMMkrJFfoS07iEAKEQawO89a+/Q=";
       "lmdb-rkv-0.14.0" = "sha256-sxmguwqqcyOlfXOZogVz1OLxfJPo+Q0+UjkROkbbOCk=";
-      "mev-rs-0.3.0" = "sha256-LCO0GTvWTLcbPt7qaSlLwlKmAjt3CIHVYTT/JRXpMEo=";
-      "testcontainers-0.14.0" = "sha256-mSsp21G7MLEtFROWy88Et5s07PO0tjezovCGIMh+/oQ=";
-      "warp-0.3.5" = "sha256-d5e6ASdL7+Dl3KsTNOb9B5RHpStrupOKsbGWsdu9Jfk=";
+      "warp-0.3.6" = "sha256-knDt2aw/PJ0iabhKg+okwwnEzCY+vQVhE7HKCTM6QbE=";
     };
   };
 
@@ -70,8 +68,8 @@ rustPlatform.buildRustPackage rec {
   ];
 
   buildInputs = [
-    sqlite
     rust-jemalloc-sys
+    sqlite
   ] ++ lib.optionals stdenv.isDarwin [
     CoreFoundation
     Security
@@ -102,11 +100,12 @@ rustPlatform.buildRustPackage rec {
   # All of these tests require network access and/or docker
   cargoTestFlags = [
     "--workspace"
-    "--exclude beacon_node"
     "--exclude beacon_chain"
+    "--exclude beacon_node"
     "--exclude http_api"
     "--exclude lighthouse"
     "--exclude lighthouse_network"
+    "--exclude network"
     "--exclude slashing_protection"
     "--exclude watch"
     "--exclude web3signer_tests"
@@ -147,11 +146,17 @@ rustPlatform.buildRustPackage rec {
     updateScript = nix-update-script { };
   };
 
+  enableParallelBuilding = true;
+
+  # This is needed by the unit tests.
+  FORK_NAME = "capella";
+
   meta = with lib; {
     description = "Ethereum consensus client in Rust";
     homepage = "https://lighthouse.sigmaprime.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ centromere pmw ];
     mainProgram = "lighthouse";
+    broken = stdenv.hostPlatform.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/lighthouse/use-c-kzg-from-crates-io.patch b/nixpkgs/pkgs/applications/blockchains/lighthouse/use-c-kzg-from-crates-io.patch
new file mode 100644
index 000000000000..b6cb1768636a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/lighthouse/use-c-kzg-from-crates-io.patch
@@ -0,0 +1,11 @@
+diff --git a/crypto/kzg/Cargo.toml b/crypto/kzg/Cargo.toml
+index 7b70166f9..857fa4ee1 100644
+--- a/crypto/kzg/Cargo.toml
++++ b/crypto/kzg/Cargo.toml
+@@ -16,4 +16,4 @@ serde = { workspace = true }
+ ethereum_serde_utils = { workspace = true }
+ hex = { workspace = true }
+ ethereum_hashing = { workspace = true }
+-c-kzg = { git = "https://github.com/ethereum/c-kzg-4844", rev = "748283cced543c486145d5f3f38684becdfe3e1b"}
+\ No newline at end of file
++c-kzg = "0.4.0"
diff --git a/nixpkgs/pkgs/applications/blockchains/lighthouse/use-system-sqlite.patch b/nixpkgs/pkgs/applications/blockchains/lighthouse/use-system-sqlite.patch
index 9980b22c8525..88025059662e 100644
--- a/nixpkgs/pkgs/applications/blockchains/lighthouse/use-system-sqlite.patch
+++ b/nixpkgs/pkgs/applications/blockchains/lighthouse/use-system-sqlite.patch
@@ -1,10 +1,10 @@
 diff --git a/Cargo.toml b/Cargo.toml
-index 62c0e7bd2..a089e3c5b 100644
+index ca55d00d4..76514b545 100644
 --- a/Cargo.toml
 +++ b/Cargo.toml
-@@ -138,7 +138,7 @@ rayon = "1.7"
+@@ -139,7 +139,7 @@ rayon = "1.7"
  regex = "1"
- reqwest = { version = "0.11", default-features = false, features = ["blocking", "json", "stream", "rustls-tls"] }
+ reqwest = { version = "0.11", default-features = false, features = ["blocking", "json", "stream", "rustls-tls", "native-tls-vendored"] }
  ring = "0.16"
 -rusqlite = { version = "0.28", features = ["bundled"] }
 +rusqlite = { version = "0.28" }
diff --git a/nixpkgs/pkgs/applications/blockchains/monero-cli/default.nix b/nixpkgs/pkgs/applications/blockchains/monero-cli/default.nix
index 9f56963bcf33..341e346b1c4d 100644
--- a/nixpkgs/pkgs/applications/blockchains/monero-cli/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/monero-cli/default.nix
@@ -25,13 +25,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "monero-cli";
-  version = "0.18.3.1";
+  version = "0.18.3.2";
 
   src = fetchFromGitHub {
     owner = "monero-project";
     repo = "monero";
     rev = "v${version}";
-    hash = "sha256-PYcSbwbuQm6/r9RH+vjDy7NW1AiKhK/DG1pYYt4/drg=";
+    hash = "sha256-iVxy5SKBowTd8tY1L/MrXAu3r2S7bv67up3qWf0xJiw=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix b/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
index c78fa74fb68e..a1ab9ff5889e 100644
--- a/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "monero-gui";
-  version = "0.18.3.1";
+  version = "0.18.3.2";
 
   src = fetchFromGitHub {
     owner = "monero-project";
     repo = "monero-gui";
     rev = "v${version}";
-    hash = "sha256-1xgecaScGLFbv0V5QlpettdvCcb9+xu7eO/J9MyPzmY=";
+    hash = "sha256-7/pJcEWc7zujegBnlRDMOfYpVuUDMGsQO805nYgN5PY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/blockchains/optimism/default.nix b/nixpkgs/pkgs/applications/blockchains/optimism/default.nix
index f65ff172ab05..02ec6b101cc5 100644
--- a/nixpkgs/pkgs/applications/blockchains/optimism/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/optimism/default.nix
@@ -6,19 +6,19 @@
 
 buildGoModule rec {
   pname = "optimism";
-  version = "1.7.0";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "ethereum-optimism";
     repo = "optimism";
     rev = "op-node/v${version}";
-    hash = "sha256-ru6/PDgsQOpOjKSolk3US6dV/NMH/lWEuJf5lmuR4SI=";
+    hash = "sha256-p3dbyszUeknAXrI1WqN9WS6AkEYQdVfMP90Kk/L41vM=";
     fetchSubmodules = true;
   };
 
   subPackages = [ "op-node/cmd" "op-proposer/cmd" "op-batcher/cmd" ];
 
-  vendorHash = "sha256-BrlF8uwnD1hlrrpvc2JEsaPY4/+bGR1cXwjkkYANyiE=";
+  vendorHash = "sha256-24zj480UU9SYqr2mV6rCJ46gwLgzilLuhqrkNKHVR28=";
 
   buildInputs = [
     libpcap
diff --git a/nixpkgs/pkgs/applications/blockchains/polkadot/Cargo.lock b/nixpkgs/pkgs/applications/blockchains/polkadot/Cargo.lock
index 0edbfa0a419a..439e4052adff 100644
--- a/nixpkgs/pkgs/applications/blockchains/polkadot/Cargo.lock
+++ b/nixpkgs/pkgs/applications/blockchains/polkadot/Cargo.lock
@@ -86,16 +86,16 @@ dependencies = [
 
 [[package]]
 name = "aes-gcm"
-version = "0.9.4"
+version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6"
+checksum = "bc3be92e19a7ef47457b8e6f90707e12b6ac5d20c6f3866584fa3be0787d839f"
 dependencies = [
  "aead 0.4.3",
  "aes 0.7.5",
  "cipher 0.3.0",
- "ctr 0.8.0",
+ "ctr 0.7.0",
  "ghash 0.4.4",
- "subtle 2.4.1",
+ "subtle 2.5.0",
 ]
 
 [[package]]
@@ -109,14 +109,14 @@ dependencies = [
  "cipher 0.4.4",
  "ctr 0.9.2",
  "ghash 0.5.0",
- "subtle 2.4.1",
+ "subtle 2.5.0",
 ]
 
 [[package]]
 name = "ahash"
-version = "0.7.6"
+version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
 dependencies = [
  "getrandom 0.2.10",
  "once_cell",
@@ -125,9 +125,9 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.8.7"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff"
 dependencies = [
  "cfg-if",
  "getrandom 0.2.10",
@@ -191,7 +191,7 @@ checksum = "c0391754c09fab4eae3404d19d0d297aa1c670c1775ab51d8a5312afeca23157"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -206,7 +206,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
  "syn-solidity",
  "tiny-keccak",
 ]
@@ -324,6 +324,20 @@ dependencies = [
 
 [[package]]
 name = "aquamarine"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1da02abba9f9063d786eab1509833ebb2fac0f966862ca59439c76b9c566760"
+dependencies = [
+ "include_dir",
+ "itertools 0.10.5",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "aquamarine"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e"
@@ -333,7 +347,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -732,12 +746,6 @@ dependencies = [
 
 [[package]]
 name = "arrayvec"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
-
-[[package]]
-name = "arrayvec"
 version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
@@ -978,6 +986,7 @@ dependencies = [
  "cumulus-pallet-session-benchmarking",
  "cumulus-pallet-xcm",
  "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-aura",
  "cumulus-primitives-core",
  "cumulus-primitives-utility",
  "frame-benchmarking",
@@ -1049,11 +1058,11 @@ dependencies = [
  "frame-support",
  "frame-system",
  "hex-literal",
- "pallet-asset-conversion",
  "pallet-assets",
  "pallet-balances",
  "pallet-collator-selection",
  "pallet-session",
+ "pallet-timestamp",
  "pallet-xcm",
  "pallet-xcm-bridge-hub-router",
  "parachains-common",
@@ -1098,7 +1107,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
 dependencies = [
  "concurrent-queue",
- "event-listener",
+ "event-listener 2.5.3",
  "futures-core",
 ]
 
@@ -1108,7 +1117,7 @@ version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "async-task",
  "concurrent-queue",
  "fastrand 1.9.0",
@@ -1122,7 +1131,7 @@ version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "autocfg",
  "blocking",
  "futures-lite",
@@ -1134,7 +1143,7 @@ version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
 dependencies = [
- "async-lock",
+ "async-lock 2.8.0",
  "autocfg",
  "cfg-if",
  "concurrent-queue",
@@ -1154,7 +1163,18 @@ version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
 dependencies = [
- "event-listener",
+ "event-listener 2.5.3",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
+dependencies = [
+ "event-listener 4.0.3",
+ "event-listener-strategy",
+ "pin-project-lite 0.2.12",
 ]
 
 [[package]]
@@ -1176,11 +1196,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9"
 dependencies = [
  "async-io",
- "async-lock",
+ "async-lock 2.8.0",
  "autocfg",
  "blocking",
  "cfg-if",
- "event-listener",
+ "event-listener 2.5.3",
  "futures-lite",
  "rustix 0.37.23",
  "signal-hook",
@@ -1206,7 +1226,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -1223,7 +1243,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -1308,7 +1328,7 @@ dependencies = [
  "ark-std 0.4.0",
  "dleq_vrf",
  "fflonk",
- "merlin 3.0.0",
+ "merlin",
  "rand_chacha 0.3.1",
  "rand_core 0.6.4",
  "ring 0.1.0",
@@ -1405,7 +1425,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -1414,9 +1434,7 @@ version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f"
 dependencies = [
- "bitcoin_hashes",
- "rand",
- "rand_core 0.6.4",
+ "bitcoin_hashes 0.11.0",
  "serde",
  "unicode-normalization",
 ]
@@ -1437,12 +1455,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
 
 [[package]]
+name = "bitcoin-internals"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb"
+
+[[package]]
 name = "bitcoin_hashes"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4"
 
 [[package]]
+name = "bitcoin_hashes"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b"
+dependencies = [
+ "bitcoin-internals",
+ "hex-conservative",
+]
+
+[[package]]
 name = "bitflags"
 version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1535,18 +1569,6 @@ dependencies = [
 
 [[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 0.12.4",
-]
-
-[[package]]
-name = "block-buffer"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
@@ -1564,22 +1586,13 @@ dependencies = [
 ]
 
 [[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 = "blocking"
 version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65"
 dependencies = [
  "async-channel",
- "async-lock",
+ "async-lock 2.8.0",
  "async-task",
  "atomic-waker",
  "fastrand 1.9.0",
@@ -1993,6 +2006,7 @@ dependencies = [
  "cumulus-pallet-session-benchmarking",
  "cumulus-pallet-xcm",
  "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-aura",
  "cumulus-primitives-core",
  "cumulus-primitives-utility",
  "frame-benchmarking",
@@ -2087,6 +2101,7 @@ dependencies = [
  "pallet-bridge-messages",
  "pallet-bridge-parachains",
  "pallet-bridge-relayers",
+ "pallet-timestamp",
  "pallet-utility",
  "parachains-common",
  "parachains-runtimes-test-utils",
@@ -2161,6 +2176,7 @@ dependencies = [
  "cumulus-pallet-session-benchmarking",
  "cumulus-pallet-xcm",
  "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-aura",
  "cumulus-primitives-core",
  "cumulus-primitives-utility",
  "frame-benchmarking",
@@ -2588,40 +2604,40 @@ dependencies = [
  "clap_lex 0.2.4",
  "indexmap 1.9.3",
  "once_cell",
- "strsim",
+ "strsim 0.10.0",
  "termcolor",
  "textwrap",
 ]
 
 [[package]]
 name = "clap"
-version = "4.4.18"
+version = "4.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
+checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da"
 dependencies = [
  "clap_builder",
- "clap_derive 4.4.7",
+ "clap_derive 4.5.0",
 ]
 
 [[package]]
 name = "clap-num"
-version = "1.0.2"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "488557e97528174edaa2ee268b23a809e0c598213a4bbcb4f34575a46fda147e"
+checksum = "0e063d263364859dc54fb064cedb7c122740cd4733644b14b176c097f51e8ab7"
 dependencies = [
  "num-traits",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.4.18"
+version = "4.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
+checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb"
 dependencies = [
  "anstream",
  "anstyle",
- "clap_lex 0.6.0",
- "strsim",
+ "clap_lex 0.7.0",
+ "strsim 0.11.0",
  "terminal_size",
 ]
 
@@ -2631,7 +2647,7 @@ version = "4.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "586a385f7ef2f8b4d86bddaa0c094794e7ccbfe5ffef1f434fe928143fc783a5"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
 ]
 
 [[package]]
@@ -2649,14 +2665,14 @@ dependencies = [
 
 [[package]]
 name = "clap_derive"
-version = "4.4.7"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -2670,9 +2686,9 @@ dependencies = [
 
 [[package]]
 name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "coarsetime"
@@ -2718,6 +2734,7 @@ dependencies = [
  "cumulus-pallet-session-benchmarking",
  "cumulus-pallet-xcm",
  "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-aura",
  "cumulus-primitives-core",
  "cumulus-primitives-utility",
  "frame-benchmarking",
@@ -2824,11 +2841,10 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
 name = "colored"
-version = "2.0.4"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
+checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
 dependencies = [
- "is-terminal",
  "lazy_static",
  "windows-sys 0.48.0",
 ]
@@ -2856,7 +2872,7 @@ dependencies = [
  "ark-std 0.4.0",
  "fflonk",
  "getrandom_or_panic",
- "merlin 3.0.0",
+ "merlin",
  "rand_chacha 0.3.1",
 ]
 
@@ -2972,6 +2988,7 @@ dependencies = [
  "cumulus-pallet-session-benchmarking",
  "cumulus-pallet-xcm",
  "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-aura",
  "cumulus-primitives-core",
  "cumulus-primitives-utility",
  "frame-benchmarking",
@@ -3065,6 +3082,7 @@ dependencies = [
  "cumulus-pallet-session-benchmarking",
  "cumulus-pallet-xcm",
  "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-aura",
  "cumulus-primitives-core",
  "cumulus-primitives-utility",
  "frame-benchmarking",
@@ -3093,7 +3111,6 @@ dependencies = [
  "pallet-xcm-benchmarks",
  "parachains-common",
  "parity-scale-codec",
- "polkadot-core-primitives",
  "polkadot-parachain-primitives",
  "polkadot-runtime-common",
  "rococo-runtime-constants",
@@ -3129,6 +3146,7 @@ dependencies = [
  "cumulus-pallet-session-benchmarking",
  "cumulus-pallet-xcm",
  "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-aura",
  "cumulus-primitives-core",
  "cumulus-primitives-utility",
  "frame-benchmarking",
@@ -3143,11 +3161,11 @@ dependencies = [
  "pallet-aura",
  "pallet-authorship",
  "pallet-balances",
+ "pallet-broker",
  "pallet-collator-selection",
  "pallet-message-queue",
  "pallet-multisig",
  "pallet-session",
- "pallet-sudo",
  "pallet-timestamp",
  "pallet-transaction-payment",
  "pallet-transaction-payment-rpc-runtime-api",
@@ -3156,7 +3174,6 @@ dependencies = [
  "pallet-xcm-benchmarks",
  "parachains-common",
  "parity-scale-codec",
- "polkadot-core-primitives",
  "polkadot-parachain-primitives",
  "polkadot-runtime-common",
  "scale-info",
@@ -3364,7 +3381,7 @@ dependencies = [
  "anes",
  "cast",
  "ciborium",
- "clap 4.4.18",
+ "clap 4.5.1",
  "criterion-plot",
  "futures",
  "is-terminal",
@@ -3460,7 +3477,7 @@ checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15"
 dependencies = [
  "generic-array 0.14.7",
  "rand_core 0.6.4",
- "subtle 2.4.1",
+ "subtle 2.5.0",
  "zeroize",
 ]
 
@@ -3492,24 +3509,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
 dependencies = [
  "generic-array 0.14.7",
- "subtle 2.4.1",
-]
-
-[[package]]
-name = "crypto-mac"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714"
-dependencies = [
- "generic-array 0.14.7",
- "subtle 2.4.1",
+ "subtle 2.5.0",
 ]
 
 [[package]]
 name = "ctr"
-version = "0.8.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea"
+checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481"
 dependencies = [
  "cipher 0.3.0",
 ]
@@ -3527,7 +3534,7 @@ dependencies = [
 name = "cumulus-client-cli"
 version = "0.7.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "parity-scale-codec",
  "sc-chain-spec",
  "sc-cli",
@@ -3857,6 +3864,7 @@ dependencies = [
  "pallet-message-queue",
  "parity-scale-codec",
  "polkadot-parachain-primitives",
+ "polkadot-runtime-common",
  "polkadot-runtime-parachains",
  "rand",
  "sc-client-api",
@@ -3885,7 +3893,7 @@ dependencies = [
  "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -4031,6 +4039,25 @@ dependencies = [
 ]
 
 [[package]]
+name = "cumulus-primitives-storage-weight-reclaim"
+version = "1.0.0"
+dependencies = [
+ "cumulus-primitives-core",
+ "cumulus-primitives-proof-size-hostfunction",
+ "cumulus-test-runtime",
+ "docify 0.2.7",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 14.0.0",
+ "sp-trie",
+]
+
+[[package]]
 name = "cumulus-primitives-timestamp"
 version = "0.7.0"
 dependencies = [
@@ -4050,7 +4077,6 @@ dependencies = [
  "frame-support",
  "log",
  "pallet-asset-conversion",
- "pallet-xcm-benchmarks",
  "parity-scale-codec",
  "polkadot-runtime-common",
  "polkadot-runtime-parachains",
@@ -4130,6 +4156,7 @@ dependencies = [
  "polkadot-node-subsystem-util",
  "polkadot-overseer",
  "polkadot-primitives",
+ "polkadot-service",
  "sc-authority-discovery",
  "sc-client-api",
  "sc-network",
@@ -4192,6 +4219,7 @@ dependencies = [
  "cumulus-primitives-core",
  "cumulus-primitives-parachain-inherent",
  "cumulus-primitives-proof-size-hostfunction",
+ "cumulus-primitives-storage-weight-reclaim",
  "cumulus-test-relay-sproof-builder",
  "cumulus-test-runtime",
  "cumulus-test-service",
@@ -4236,6 +4264,7 @@ version = "0.1.0"
 dependencies = [
  "cumulus-pallet-parachain-system",
  "cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
  "frame-executive",
  "frame-support",
  "frame-system",
@@ -4268,7 +4297,7 @@ name = "cumulus-test-service"
 version = "0.1.0"
 dependencies = [
  "async-trait",
- "clap 4.4.18",
+ "clap 4.5.1",
  "criterion 0.5.1",
  "cumulus-client-cli",
  "cumulus-client-consensus-common",
@@ -4278,6 +4307,7 @@ dependencies = [
  "cumulus-client-service",
  "cumulus-pallet-parachain-system",
  "cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
  "cumulus-relay-chain-inprocess-interface",
  "cumulus-relay-chain-interface",
  "cumulus-relay-chain-minimal-node",
@@ -4342,19 +4372,6 @@ dependencies = [
 
 [[package]]
 name = "curve25519-dalek"
-version = "2.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216"
-dependencies = [
- "byteorder",
- "digest 0.8.1",
- "rand_core 0.5.1",
- "subtle 2.4.1",
- "zeroize",
-]
-
-[[package]]
-name = "curve25519-dalek"
 version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61"
@@ -4362,15 +4379,15 @@ dependencies = [
  "byteorder",
  "digest 0.9.0",
  "rand_core 0.5.1",
- "subtle 2.4.1",
+ "subtle 2.5.0",
  "zeroize",
 ]
 
 [[package]]
 name = "curve25519-dalek"
-version = "4.1.1"
+version = "4.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"
+checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -4379,7 +4396,7 @@ dependencies = [
  "fiat-crypto",
  "platforms",
  "rustc_version 0.4.0",
- "subtle 2.4.1",
+ "subtle 2.5.0",
  "zeroize",
 ]
 
@@ -4391,7 +4408,7 @@ checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -4431,7 +4448,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "scratch",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -4448,7 +4465,7 @@ checksum = "50c49547d73ba8dcfd4ad7325d64c6d5391ff4224d498fc39a6f3f49825a530d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -4603,7 +4620,7 @@ dependencies = [
  "block-buffer 0.10.4",
  "const-oid",
  "crypto-common",
- "subtle 2.4.1",
+ "subtle 2.5.0",
 ]
 
 [[package]]
@@ -4656,7 +4673,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -4698,11 +4715,37 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
 
 [[package]]
 name = "docify"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af1b04e6ef3d21119d3eb7b032bca17f99fe041e9c072f30f32cc0e1a2b1f3c4"
+dependencies = [
+ "docify_macros 0.1.16",
+]
+
+[[package]]
+name = "docify"
 version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7cc4fd38aaa9fb98ac70794c82a00360d1e165a87fbf96a8a91f9dfc602aaee2"
 dependencies = [
- "docify_macros",
+ "docify_macros 0.2.7",
+]
+
+[[package]]
+name = "docify_macros"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b5610df7f2acf89a1bb5d1a66ae56b1c7fcdcfe3948856fb3ace3f644d70eb7"
+dependencies = [
+ "common-path",
+ "derive-syn-parse",
+ "lazy_static",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn 2.0.50",
+ "termcolor",
+ "walkdir",
 ]
 
 [[package]]
@@ -4717,7 +4760,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "regex",
- "syn 2.0.48",
+ "syn 2.0.50",
  "termcolor",
  "toml 0.8.8",
  "walkdir",
@@ -4784,6 +4827,7 @@ dependencies = [
  "digest 0.10.7",
  "elliptic-curve",
  "rfc6979",
+ "serdect",
  "signature",
  "spki",
 ]
@@ -4804,12 +4848,12 @@ version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0"
 dependencies = [
- "curve25519-dalek 4.1.1",
+ "curve25519-dalek 4.1.2",
  "ed25519",
  "rand_core 0.6.4",
  "serde",
  "sha2 0.10.7",
- "subtle 2.4.1",
+ "subtle 2.5.0",
  "zeroize",
 ]
 
@@ -4833,7 +4877,7 @@ version = "4.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9"
 dependencies = [
- "curve25519-dalek 4.1.1",
+ "curve25519-dalek 4.1.2",
  "ed25519",
  "hashbrown 0.14.3",
  "hex",
@@ -4850,9 +4894,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.5"
+version = "0.13.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b"
+checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
 dependencies = [
  "base16ct",
  "crypto-bigint",
@@ -4863,7 +4907,8 @@ dependencies = [
  "pkcs8",
  "rand_core 0.6.4",
  "sec1",
- "subtle 2.4.1",
+ "serdect",
+ "subtle 2.5.0",
  "zeroize",
 ]
 
@@ -4888,10 +4933,10 @@ dependencies = [
  "paste",
  "polkadot-primitives",
  "polkadot-runtime-parachains",
- "polkadot-service",
  "sc-consensus-grandpa",
  "sp-authority-discovery",
  "sp-consensus-babe",
+ "sp-consensus-beefy",
  "sp-core",
  "sp-runtime",
  "staging-xcm",
@@ -4942,7 +4987,7 @@ checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -4953,7 +4998,7 @@ checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -5092,6 +5137,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
+name = "event-listener"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite 0.2.12",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+dependencies = [
+ "event-listener 4.0.3",
+ "pin-project-lite 0.2.12",
+]
+
+[[package]]
 name = "exit-future"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5122,7 +5188,7 @@ dependencies = [
  "fs-err",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -5136,12 +5202,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "fake-simd"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
-
-[[package]]
 name = "fallible-iterator"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5237,7 +5297,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
 dependencies = [
  "rand_core 0.6.4",
- "subtle 2.4.1",
+ "subtle 2.5.0",
 ]
 
 [[package]]
@@ -5250,7 +5310,7 @@ dependencies = [
  "ark-poly",
  "ark-serialize 0.4.2",
  "ark-std 0.4.0",
- "merlin 3.0.0",
+ "merlin",
 ]
 
 [[package]]
@@ -5390,7 +5450,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
 name = "frame"
 version = "0.0.1-dev"
 dependencies = [
- "docify",
+ "docify 0.2.7",
  "frame-executive",
  "frame-support",
  "frame-system",
@@ -5399,7 +5459,6 @@ dependencies = [
  "pallet-examples",
  "parity-scale-codec",
  "scale-info",
- "simple-mermaid",
  "sp-api",
  "sp-arithmetic",
  "sp-block-builder",
@@ -5450,7 +5509,7 @@ dependencies = [
  "Inflector",
  "array-bytes 6.1.0",
  "chrono",
- "clap 4.4.18",
+ "clap 4.5.1",
  "comfy-table",
  "frame-benchmarking",
  "frame-support",
@@ -5516,7 +5575,7 @@ dependencies = [
  "quote",
  "scale-info",
  "sp-arithmetic",
- "syn 2.0.48",
+ "syn 2.0.50",
  "trybuild",
 ]
 
@@ -5542,7 +5601,7 @@ dependencies = [
 name = "frame-election-solution-type-fuzzer"
 version = "2.0.0-alpha.5"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "frame-election-provider-solution-type",
  "frame-election-provider-support",
  "frame-support",
@@ -5559,6 +5618,7 @@ dependencies = [
 name = "frame-executive"
 version = "28.0.0"
 dependencies = [
+ "aquamarine 0.3.3",
  "array-bytes 6.1.0",
  "frame-support",
  "frame-system",
@@ -5615,11 +5675,11 @@ dependencies = [
 name = "frame-support"
 version = "28.0.0"
 dependencies = [
- "aquamarine",
+ "aquamarine 0.5.0",
  "array-bytes 6.1.0",
  "assert_matches",
  "bitflags 1.3.2",
- "docify",
+ "docify 0.2.7",
  "environmental",
  "frame-metadata",
  "frame-support-procedural",
@@ -5649,6 +5709,7 @@ dependencies = [
  "sp-staking",
  "sp-state-machine",
  "sp-std 14.0.0",
+ "sp-timestamp",
  "sp-tracing 16.0.0",
  "sp-weights",
  "static_assertions",
@@ -5671,7 +5732,7 @@ dependencies = [
  "quote",
  "regex",
  "sp-crypto-hashing",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -5682,7 +5743,7 @@ dependencies = [
  "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -5691,7 +5752,7 @@ version = "11.0.0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -5762,7 +5823,7 @@ version = "28.0.0"
 dependencies = [
  "cfg-if",
  "criterion 0.4.0",
- "docify",
+ "docify 0.2.7",
  "frame-support",
  "log",
  "parity-scale-codec",
@@ -5854,9 +5915,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
 
 [[package]]
 name = "futures"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -5885,9 +5946,9 @@ checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -5924,7 +5985,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -6152,6 +6213,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "governor"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "821239e5672ff23e2a7060901fa622950bbd80b649cdaadd78d1c1767ed14eb4"
+dependencies = [
+ "cfg-if",
+ "dashmap",
+ "futures",
+ "futures-timer",
+ "no-std-compat",
+ "nonzero_ext",
+ "parking_lot 0.12.1",
+ "quanta",
+ "rand",
+ "smallvec",
+]
+
+[[package]]
 name = "group"
 version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6159,7 +6238,7 @@ checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
 dependencies = [
  "ff",
  "rand_core 0.6.4",
- "subtle 2.4.1",
+ "subtle 2.5.0",
 ]
 
 [[package]]
@@ -6174,7 +6253,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
  "slab",
  "tokio",
  "tokio-util",
@@ -6189,9 +6268,9 @@ checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
 
 [[package]]
 name = "handlebars"
-version = "4.3.7"
+version = "5.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83c3372087601b532857d332f5957cbae686da52bb7810bf038c3e3c3cc2fa0d"
+checksum = "ab283476b99e66691dee3f1640fea91487a8d81f50fb5ecc75538f8f8879a1e4"
 dependencies = [
  "log",
  "pest",
@@ -6222,7 +6301,7 @@ version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 dependencies = [
- "ahash 0.7.6",
+ "ahash 0.7.8",
 ]
 
 [[package]]
@@ -6231,7 +6310,7 @@ version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
 dependencies = [
- "ahash 0.8.7",
+ "ahash 0.8.8",
 ]
 
 [[package]]
@@ -6240,7 +6319,7 @@ version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.8.7",
+ "ahash 0.8.8",
  "allocator-api2",
  "serde",
 ]
@@ -6282,6 +6361,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
+name = "hex-conservative"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30ed443af458ccb6d81c1e7e661545f94d3176752fb1df2f543b902a1e0f51e2"
+
+[[package]]
 name = "hex-literal"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6308,16 +6393,6 @@ dependencies = [
 
 [[package]]
 name = "hmac"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b"
-dependencies = [
- "crypto-mac 0.11.1",
- "digest 0.9.0",
-]
-
-[[package]]
-name = "hmac"
 version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
@@ -6440,9 +6515,9 @@ dependencies = [
  "hyper",
  "log",
  "rustls 0.21.6",
- "rustls-native-certs",
+ "rustls-native-certs 0.6.3",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
 ]
 
 [[package]]
@@ -6605,9 +6680,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.0.0"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -6621,9 +6696,9 @@ checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590"
 
 [[package]]
 name = "indicatif"
-version = "0.17.6"
+version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b297dc40733f23a0e52728a58fa9489a5b7638a324932de16b41adc3ef80730"
+checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25"
 dependencies = [
  "console",
  "instant",
@@ -6770,9 +6845,9 @@ checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd"
 
 [[package]]
 name = "jsonrpsee"
-version = "0.20.3"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "affdc52f7596ccb2d7645231fc6163bb314630c989b64998f3699a28b4d5d4dc"
+checksum = "4a95f7cc23d5fab0cdeeaf6bad8c8f5e7a3aa7f0d211957ea78232b327ab27b0"
 dependencies = [
  "jsonrpsee-core",
  "jsonrpsee-http-client",
@@ -6786,19 +6861,20 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-client-transport"
-version = "0.20.3"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5b005c793122d03217da09af68ba9383363caa950b90d3436106df8cabce935"
+checksum = "6b1736cfa3845fd9f8f43751f2b8e0e83f7b6081e754502f7d63b6587692cc83"
 dependencies = [
  "futures-util",
  "http",
  "jsonrpsee-core",
  "pin-project",
- "rustls-native-certs",
+ "rustls-native-certs 0.7.0",
+ "rustls-pki-types",
  "soketto",
  "thiserror",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.25.0",
  "tokio-util",
  "tracing",
  "url",
@@ -6806,12 +6882,12 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-core"
-version = "0.20.3"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2327ba8df2fdbd5e897e2b5ed25ce7f299d345b9736b6828814c3dbd1fd47b"
+checksum = "82030d038658974732103e623ba2e0abec03bbbe175b39c0a2fafbada60c5868"
 dependencies = [
  "anyhow",
- "async-lock",
+ "async-lock 3.3.0",
  "async-trait",
  "beef",
  "futures-timer",
@@ -6819,21 +6895,22 @@ dependencies = [
  "hyper",
  "jsonrpsee-types",
  "parking_lot 0.12.1",
+ "pin-project",
  "rand",
  "rustc-hash",
  "serde",
  "serde_json",
- "soketto",
  "thiserror",
  "tokio",
+ "tokio-stream",
  "tracing",
 ]
 
 [[package]]
 name = "jsonrpsee-http-client"
-version = "0.20.3"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f80c17f62c7653ce767e3d7288b793dfec920f97067ceb189ebdd3570f2bc20"
+checksum = "36a06ef0de060005fddf772d54597bb6a8b0413da47dcffd304b0306147b9678"
 dependencies = [
  "async-trait",
  "hyper",
@@ -6851,12 +6928,12 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-proc-macros"
-version = "0.20.3"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29110019693a4fa2dbda04876499d098fa16d70eba06b1e6e2b3f1b251419515"
+checksum = "69fc56131589f82e57805f7338b87023db4aafef813555708b159787e34ad6bc"
 dependencies = [
  "heck",
- "proc-macro-crate 1.3.1",
+ "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -6864,15 +6941,16 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-server"
-version = "0.20.3"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82c39a00449c9ef3f50b84fc00fc4acba20ef8f559f07902244abf4c15c5ab9c"
+checksum = "d85be77fe5b2a94589e3164fb780017f7aff7d646b49278c0d0346af16975c8e"
 dependencies = [
  "futures-util",
  "http",
  "hyper",
  "jsonrpsee-core",
  "jsonrpsee-types",
+ "pin-project",
  "route-recognizer",
  "serde",
  "serde_json",
@@ -6887,23 +6965,22 @@ dependencies = [
 
 [[package]]
 name = "jsonrpsee-types"
-version = "0.20.3"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5be0be325642e850ed0bdff426674d2e66b2b7117c9be23a7caef68a2902b7d9"
+checksum = "9a48fdc1202eafc51c63e00406575e59493284ace8b8b61aa16f3a6db5d64f1a"
 dependencies = [
  "anyhow",
  "beef",
  "serde",
  "serde_json",
  "thiserror",
- "tracing",
 ]
 
 [[package]]
 name = "jsonrpsee-ws-client"
-version = "0.20.3"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bca9cb3933ccae417eb6b08c3448eb1cb46e39834e5b503e395e5e5bd08546c0"
+checksum = "c5ce25d70a8e4d3cc574bbc3cad0137c326ad64b194793d5e7bbdd3fa4504181"
 dependencies = [
  "http",
  "jsonrpsee-client-transport",
@@ -6914,14 +6991,15 @@ dependencies = [
 
 [[package]]
 name = "k256"
-version = "0.13.1"
+version = "0.13.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc"
+checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b"
 dependencies = [
  "cfg-if",
  "ecdsa",
  "elliptic-curve",
  "once_cell",
+ "serdect",
  "sha2 0.10.7",
 ]
 
@@ -7001,6 +7079,7 @@ dependencies = [
  "pallet-lottery",
  "pallet-membership",
  "pallet-message-queue",
+ "pallet-migrations",
  "pallet-mixnet",
  "pallet-mmr",
  "pallet-multisig",
@@ -7013,6 +7092,7 @@ dependencies = [
  "pallet-nomination-pools-runtime-api",
  "pallet-offences",
  "pallet-offences-benchmarking",
+ "pallet-parameters",
  "pallet-preimage",
  "pallet-proxy",
  "pallet-ranked-collective",
@@ -7631,7 +7711,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451"
 dependencies = [
  "crunchy",
  "digest 0.9.0",
- "subtle 2.4.1",
+ "subtle 2.5.0",
 ]
 
 [[package]]
@@ -7827,6 +7907,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "mach2"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "macro_magic"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7835,7 +7924,7 @@ dependencies = [
  "macro_magic_core",
  "macro_magic_macros",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -7849,7 +7938,7 @@ dependencies = [
  "macro_magic_core_macros",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -7860,7 +7949,7 @@ checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -7871,7 +7960,7 @@ checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3"
 dependencies = [
  "macro_magic_core",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -7991,18 +8080,6 @@ dependencies = [
 
 [[package]]
 name = "merlin"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42"
-dependencies = [
- "byteorder",
- "keccak",
- "rand_core 0.5.1",
- "zeroize",
-]
-
-[[package]]
-name = "merlin"
 version = "3.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d"
@@ -8037,15 +8114,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
-name = "minimal-node"
-version = "4.0.0-dev"
+name = "minimal-template-node"
+version = "0.0.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "frame",
  "futures",
  "futures-timer",
  "jsonrpsee",
- "minimal-runtime",
+ "minimal-template-runtime",
  "sc-basic-authorship",
  "sc-cli",
  "sc-client-api",
@@ -8072,12 +8149,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "minimal-runtime"
-version = "0.1.0"
+name = "minimal-template-runtime"
+version = "0.0.0"
 dependencies = [
  "frame",
- "frame-support",
  "pallet-balances",
+ "pallet-minimal-template",
  "pallet-sudo",
  "pallet-timestamp",
  "pallet-transaction-payment",
@@ -8099,9 +8176,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "wasi 0.11.0+wasi-snapshot-preview1",
@@ -8119,7 +8196,7 @@ dependencies = [
  "bitflags 1.3.2",
  "blake2 0.10.6",
  "c2-chacha",
- "curve25519-dalek 4.1.1",
+ "curve25519-dalek 4.1.2",
  "either",
  "hashlink",
  "lioness",
@@ -8128,7 +8205,7 @@ dependencies = [
  "rand",
  "rand_chacha 0.3.1",
  "rand_distr",
- "subtle 2.4.1",
+ "subtle 2.5.0",
  "thiserror",
  "zeroize",
 ]
@@ -8493,6 +8570,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "no-std-compat"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c"
+
+[[package]]
 name = "no-std-net"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8503,7 +8586,7 @@ name = "node-bench"
 version = "0.9.0-dev"
 dependencies = [
  "array-bytes 6.1.0",
- "clap 4.4.18",
+ "clap 4.5.1",
  "derive_more",
  "fs_extra",
  "futures",
@@ -8580,60 +8663,16 @@ dependencies = [
 name = "node-runtime-generate-bags"
 version = "3.0.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "generate-bags",
  "kitchensink-runtime",
 ]
 
 [[package]]
-name = "node-template"
-version = "4.0.0-dev"
-dependencies = [
- "clap 4.4.18",
- "frame-benchmarking",
- "frame-benchmarking-cli",
- "frame-system",
- "futures",
- "jsonrpsee",
- "node-template-runtime",
- "pallet-transaction-payment",
- "pallet-transaction-payment-rpc",
- "sc-basic-authorship",
- "sc-cli",
- "sc-client-api",
- "sc-consensus",
- "sc-consensus-aura",
- "sc-consensus-grandpa",
- "sc-executor",
- "sc-network",
- "sc-offchain",
- "sc-rpc-api",
- "sc-service",
- "sc-telemetry",
- "sc-transaction-pool",
- "sc-transaction-pool-api",
- "serde_json",
- "sp-api",
- "sp-block-builder",
- "sp-blockchain",
- "sp-consensus-aura",
- "sp-consensus-grandpa",
- "sp-core",
- "sp-inherents",
- "sp-io",
- "sp-keyring",
- "sp-runtime",
- "sp-timestamp",
- "substrate-build-script-utils",
- "substrate-frame-rpc-system",
- "try-runtime-cli",
-]
-
-[[package]]
 name = "node-template-release"
 version = "3.0.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "flate2",
  "fs_extra",
  "glob",
@@ -8644,45 +8683,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "node-template-runtime"
-version = "4.0.0-dev"
-dependencies = [
- "frame-benchmarking",
- "frame-executive",
- "frame-support",
- "frame-system",
- "frame-system-benchmarking",
- "frame-system-rpc-runtime-api",
- "frame-try-runtime",
- "pallet-aura",
- "pallet-balances",
- "pallet-grandpa",
- "pallet-sudo",
- "pallet-template",
- "pallet-timestamp",
- "pallet-transaction-payment",
- "pallet-transaction-payment-rpc-runtime-api",
- "parity-scale-codec",
- "scale-info",
- "serde_json",
- "sp-api",
- "sp-block-builder",
- "sp-consensus-aura",
- "sp-consensus-grandpa",
- "sp-core",
- "sp-genesis-builder",
- "sp-inherents",
- "sp-offchain",
- "sp-runtime",
- "sp-session",
- "sp-std 14.0.0",
- "sp-storage 19.0.0",
- "sp-transaction-pool",
- "sp-version",
- "substrate-wasm-builder",
-]
-
-[[package]]
 name = "node-testing"
 version = "3.0.0-dev"
 dependencies = [
@@ -8743,6 +8743,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "nonzero_ext"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21"
+
+[[package]]
 name = "normalize-line-endings"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8893,9 +8899,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "oorandom"
@@ -8951,7 +8957,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eedb646674596266dc9bb2b5c7eea7c36b32ecc7777eba0d510196972d72c4fd"
 dependencies = [
  "expander 2.0.0",
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
  "itertools 0.11.0",
  "petgraph",
  "proc-macro-crate 1.3.1",
@@ -9199,8 +9205,8 @@ dependencies = [
 name = "pallet-bags-list"
 version = "27.0.0"
 dependencies = [
- "aquamarine",
- "docify",
+ "aquamarine 0.5.0",
+ "docify 0.2.7",
  "frame-benchmarking",
  "frame-election-provider-support",
  "frame-support",
@@ -9248,7 +9254,7 @@ dependencies = [
 name = "pallet-balances"
 version = "28.0.0"
 dependencies = [
- "docify",
+ "docify 0.2.7",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
@@ -9564,12 +9570,11 @@ dependencies = [
  "anyhow",
  "frame-system",
  "parity-wasm",
- "polkavm-linker",
+ "polkavm-linker 0.5.0",
  "sp-runtime",
  "tempfile",
  "toml 0.8.8",
  "twox-hash",
- "wat",
 ]
 
 [[package]]
@@ -9616,7 +9621,7 @@ version = "18.0.0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -9626,7 +9631,7 @@ dependencies = [
  "bitflags 1.3.2",
  "parity-scale-codec",
  "paste",
- "polkavm-derive",
+ "polkavm-derive 0.5.0",
  "scale-info",
 ]
 
@@ -9728,6 +9733,7 @@ dependencies = [
  "pallet-bags-list",
  "pallet-balances",
  "pallet-election-provider-multi-phase",
+ "pallet-nomination-pools",
  "pallet-session",
  "pallet-staking",
  "pallet-timestamp",
@@ -9863,6 +9869,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "pallet-example-single-block-migrations"
+version = "0.0.1"
+dependencies = [
+ "docify 0.2.7",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-try-runtime",
+ "log",
+ "pallet-balances",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 14.0.0",
+ "sp-version",
+]
+
+[[package]]
 name = "pallet-example-split"
 version = "10.0.0"
 dependencies = [
@@ -9903,6 +9929,7 @@ dependencies = [
  "pallet-example-frame-crate",
  "pallet-example-kitchensink",
  "pallet-example-offchain-worker",
+ "pallet-example-single-block-migrations",
  "pallet-example-split",
  "pallet-example-tasks",
 ]
@@ -9911,7 +9938,7 @@ dependencies = [
 name = "pallet-fast-unstake"
 version = "27.0.0"
 dependencies = [
- "docify",
+ "docify 0.2.7",
  "frame-benchmarking",
  "frame-election-provider-support",
  "frame-support",
@@ -10109,6 +10136,39 @@ dependencies = [
 ]
 
 [[package]]
+name = "pallet-migrations"
+version = "1.0.0"
+dependencies = [
+ "docify 0.1.16",
+ "frame-benchmarking",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "impl-trait-for-tuples",
+ "log",
+ "parity-scale-codec",
+ "pretty_assertions",
+ "scale-info",
+ "sp-api",
+ "sp-block-builder",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std 14.0.0",
+ "sp-tracing 16.0.0",
+ "sp-version",
+]
+
+[[package]]
+name = "pallet-minimal-template"
+version = "0.0.0"
+dependencies = [
+ "frame",
+ "parity-scale-codec",
+ "scale-info",
+]
+
+[[package]]
 name = "pallet-mixnet"
 version = "0.4.0"
 dependencies = [
@@ -10383,7 +10443,7 @@ dependencies = [
 name = "pallet-paged-list"
 version = "0.6.0"
 dependencies = [
- "docify",
+ "docify 0.2.7",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
@@ -10409,17 +10469,36 @@ dependencies = [
 
 [[package]]
 name = "pallet-parachain-template"
-version = "0.7.0"
+version = "0.0.0"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
  "frame-system",
  "parity-scale-codec",
  "scale-info",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+]
+
+[[package]]
+name = "pallet-parameters"
+version = "0.0.1"
+dependencies = [
+ "docify 0.2.7",
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "pallet-balances",
+ "pallet-example-basic",
+ "parity-scale-codec",
+ "paste",
+ "scale-info",
  "serde",
  "sp-core",
  "sp-io",
  "sp-runtime",
+ "sp-std 14.0.0",
 ]
 
 [[package]]
@@ -10567,7 +10646,7 @@ dependencies = [
 name = "pallet-safe-mode"
 version = "9.0.0"
 dependencies = [
- "docify",
+ "docify 0.2.7",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
@@ -10624,7 +10703,7 @@ dependencies = [
 name = "pallet-scheduler"
 version = "29.0.0"
 dependencies = [
- "docify",
+ "docify 0.2.7",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
@@ -10770,7 +10849,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "sp-runtime",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -10837,7 +10916,7 @@ dependencies = [
 name = "pallet-sudo"
 version = "28.0.0"
 dependencies = [
- "docify",
+ "docify 0.2.7",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
@@ -10851,7 +10930,7 @@ dependencies = [
 
 [[package]]
 name = "pallet-template"
-version = "4.0.0-dev"
+version = "0.0.0"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -10861,14 +10940,13 @@ dependencies = [
  "sp-core",
  "sp-io",
  "sp-runtime",
- "sp-std 14.0.0",
 ]
 
 [[package]]
 name = "pallet-timestamp"
 version = "27.0.0"
 dependencies = [
- "docify",
+ "docify 0.2.7",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
@@ -10972,7 +11050,7 @@ dependencies = [
 name = "pallet-treasury"
 version = "27.0.0"
 dependencies = [
- "docify",
+ "docify 0.2.7",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
@@ -10992,7 +11070,7 @@ dependencies = [
 name = "pallet-tx-pause"
 version = "9.0.0"
 dependencies = [
- "docify",
+ "docify 0.2.7",
  "frame-benchmarking",
  "frame-support",
  "frame-system",
@@ -11174,9 +11252,9 @@ dependencies = [
 
 [[package]]
 name = "parachain-template-node"
-version = "0.1.0"
+version = "0.0.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "color-print",
  "cumulus-client-cli",
  "cumulus-client-collator",
@@ -11232,7 +11310,7 @@ dependencies = [
 
 [[package]]
 name = "parachain-template-runtime"
-version = "0.7.0"
+version = "0.0.0"
 dependencies = [
  "cumulus-pallet-aura-ext",
  "cumulus-pallet-parachain-system",
@@ -11240,6 +11318,7 @@ dependencies = [
  "cumulus-pallet-xcm",
  "cumulus-pallet-xcmp-queue",
  "cumulus-primitives-core",
+ "cumulus-primitives-storage-weight-reclaim",
  "cumulus-primitives-utility",
  "frame-benchmarking",
  "frame-executive",
@@ -11332,6 +11411,7 @@ dependencies = [
  "pallet-balances",
  "pallet-collator-selection",
  "pallet-session",
+ "pallet-timestamp",
  "pallet-xcm",
  "parity-scale-codec",
  "polkadot-parachain-primitives",
@@ -11348,6 +11428,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "parity-bip39"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9"
+dependencies = [
+ "bitcoin_hashes 0.13.0",
+ "rand",
+ "rand_core 0.6.4",
+ "serde",
+ "unicode-normalization",
+]
+
+[[package]]
 name = "parity-bytes"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -11502,19 +11595,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156"
 
 [[package]]
-name = "paste"
-version = "1.0.14"
+name = "password-hash"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166"
+dependencies = [
+ "base64ct",
+ "rand_core 0.6.4",
+ "subtle 2.5.0",
+]
 
 [[package]]
-name = "pbkdf2"
-version = "0.8.0"
+name = "paste"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa"
-dependencies = [
- "crypto-mac 0.11.1",
-]
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
 name = "pbkdf2"
@@ -11523,6 +11618,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
 dependencies = [
  "digest 0.10.7",
+ "password-hash",
 ]
 
 [[package]]
@@ -11613,7 +11709,6 @@ dependencies = [
  "staging-xcm-builder",
  "staging-xcm-executor",
  "substrate-wasm-builder",
- "testnet-parachains-constants",
 ]
 
 [[package]]
@@ -11660,6 +11755,7 @@ dependencies = [
  "cumulus-pallet-session-benchmarking",
  "cumulus-pallet-xcm",
  "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-aura",
  "cumulus-primitives-core",
  "cumulus-primitives-utility",
  "enumflags2",
@@ -11758,6 +11854,7 @@ dependencies = [
  "cumulus-pallet-session-benchmarking",
  "cumulus-pallet-xcm",
  "cumulus-pallet-xcmp-queue",
+ "cumulus-primitives-aura",
  "cumulus-primitives-core",
  "cumulus-primitives-utility",
  "enumflags2",
@@ -11848,7 +11945,7 @@ dependencies = [
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -11869,7 +11966,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
 ]
 
 [[package]]
@@ -11889,7 +11986,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -11962,7 +12059,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot"
-version = "1.7.0"
+version = "6.0.0"
 dependencies = [
  "assert_cmd",
  "color-eyre",
@@ -12055,6 +12152,7 @@ dependencies = [
  "polkadot-node-subsystem-util",
  "polkadot-primitives",
  "polkadot-primitives-test-helpers",
+ "polkadot-subsystem-bench",
  "rand",
  "sc-network",
  "schnellru",
@@ -12086,6 +12184,7 @@ dependencies = [
  "polkadot-node-subsystem-util",
  "polkadot-primitives",
  "polkadot-primitives-test-helpers",
+ "polkadot-subsystem-bench",
  "rand",
  "sc-network",
  "schnellru",
@@ -12102,7 +12201,7 @@ name = "polkadot-cli"
 version = "7.0.0"
 dependencies = [
  "cfg-if",
- "clap 4.4.18",
+ "clap 4.5.1",
  "frame-benchmarking-cli",
  "futures",
  "log",
@@ -12121,6 +12220,7 @@ dependencies = [
  "sp-io",
  "sp-keyring",
  "sp-maybe-compressed-blob",
+ "sp-runtime",
  "substrate-build-script-utils",
  "thiserror",
  "try-runtime-cli",
@@ -12178,7 +12278,7 @@ dependencies = [
  "fatality",
  "futures",
  "futures-timer",
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
  "lazy_static",
  "parity-scale-codec",
  "polkadot-erasure-coding",
@@ -12223,6 +12323,7 @@ dependencies = [
  "futures",
  "futures-timer",
  "lazy_static",
+ "parking_lot 0.12.1",
  "polkadot-node-network-protocol",
  "polkadot-node-subsystem",
  "polkadot-node-subsystem-test-helpers",
@@ -12309,7 +12410,7 @@ dependencies = [
  "kvdb",
  "kvdb-memorydb",
  "log",
- "merlin 3.0.0",
+ "merlin",
  "parity-scale-codec",
  "parking_lot 0.12.1",
  "polkadot-node-jaeger",
@@ -12384,7 +12485,9 @@ dependencies = [
  "polkadot-primitives",
  "polkadot-primitives-test-helpers",
  "polkadot-statement-table",
+ "rstest",
  "sc-keystore",
+ "schnellru",
  "sp-application-crypto",
  "sp-core",
  "sp-keyring",
@@ -12536,6 +12639,7 @@ dependencies = [
  "polkadot-node-subsystem-util",
  "polkadot-primitives",
  "polkadot-primitives-test-helpers",
+ "rstest",
  "sc-keystore",
  "sp-application-crypto",
  "sp-core",
@@ -12559,6 +12663,8 @@ dependencies = [
  "polkadot-node-subsystem-util",
  "polkadot-primitives",
  "polkadot-primitives-test-helpers",
+ "rstest",
+ "schnellru",
  "sp-application-crypto",
  "sp-keystore",
  "thiserror",
@@ -12937,7 +13043,7 @@ dependencies = [
 
 [[package]]
 name = "polkadot-parachain-bin"
-version = "1.7.0"
+version = "1.9.0"
 dependencies = [
  "assert_cmd",
  "asset-hub-rococo-runtime",
@@ -12945,7 +13051,7 @@ dependencies = [
  "async-trait",
  "bridge-hub-rococo-runtime",
  "bridge-hub-westend-runtime",
- "clap 4.4.18",
+ "clap 4.5.1",
  "collectives-westend-runtime",
  "color-print",
  "contracts-rococo-runtime",
@@ -13054,6 +13160,7 @@ version = "7.0.0"
 dependencies = [
  "bitvec",
  "hex-literal",
+ "log",
  "parity-scale-codec",
  "polkadot-core-primitives",
  "polkadot-parachain-primitives",
@@ -13146,7 +13253,6 @@ dependencies = [
  "pallet-transaction-payment",
  "pallet-treasury",
  "pallet-vesting",
- "pallet-xcm-benchmarks",
  "parity-scale-codec",
  "polkadot-primitives",
  "polkadot-primitives-test-helpers",
@@ -13220,6 +13326,7 @@ dependencies = [
  "polkadot-runtime-metrics",
  "rand",
  "rand_chacha 0.3.1",
+ "rstest",
  "rustc-hex",
  "sc-keystore",
  "scale-info",
@@ -13251,13 +13358,28 @@ version = "0.0.1"
 dependencies = [
  "cumulus-pallet-aura-ext",
  "cumulus-pallet-parachain-system",
- "docify",
+ "docify 0.2.7",
  "frame",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
  "kitchensink-runtime",
+ "pallet-assets",
  "pallet-aura",
+ "pallet-authorship",
+ "pallet-balances",
+ "pallet-collective",
  "pallet-default-config-example",
+ "pallet-democracy",
+ "pallet-example-offchain-worker",
+ "pallet-example-single-block-migrations",
  "pallet-examples",
+ "pallet-multisig",
+ "pallet-proxy",
+ "pallet-scheduler",
  "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-utility",
  "parity-scale-codec",
  "sc-cli",
  "sc-client-db",
@@ -13276,10 +13398,13 @@ dependencies = [
  "sp-core",
  "sp-io",
  "sp-keyring",
+ "sp-offchain",
  "sp-runtime",
+ "sp-version",
  "staging-chain-spec-builder",
  "staging-node-cli",
  "staging-parachain-info",
+ "staging-xcm",
  "subkey",
  "substrate-wasm-builder",
 ]
@@ -13290,6 +13415,7 @@ version = "7.0.0"
 dependencies = [
  "assert_matches",
  "async-trait",
+ "bitvec",
  "env_logger 0.9.3",
  "frame-benchmarking",
  "frame-benchmarking-cli",
@@ -13420,7 +13546,7 @@ dependencies = [
  "fatality",
  "futures",
  "futures-timer",
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
  "parity-scale-codec",
  "polkadot-node-network-protocol",
  "polkadot-node-primitives",
@@ -13450,6 +13576,7 @@ dependencies = [
  "parity-scale-codec",
  "polkadot-primitives",
  "sp-core",
+ "tracing-gum",
 ]
 
 [[package]]
@@ -13458,24 +13585,28 @@ version = "1.0.0"
 dependencies = [
  "assert_matches",
  "async-trait",
+ "bincode",
  "bitvec",
- "clap 4.4.18",
+ "clap 4.5.1",
  "clap-num",
  "color-eyre",
  "colored",
  "env_logger 0.9.3",
  "futures",
  "futures-timer",
+ "hex",
  "itertools 0.11.0",
  "kvdb-memorydb",
  "log",
  "orchestra",
  "parity-scale-codec",
  "paste",
+ "polkadot-approval-distribution",
  "polkadot-availability-bitfield-distribution",
  "polkadot-availability-distribution",
  "polkadot-availability-recovery",
  "polkadot-erasure-coding",
+ "polkadot-node-core-approval-voting",
  "polkadot-node-core-av-store",
  "polkadot-node-core-chain-api",
  "polkadot-node-metrics",
@@ -13492,17 +13623,24 @@ dependencies = [
  "pyroscope",
  "pyroscope_pprofrs",
  "rand",
+ "rand_chacha 0.3.1",
+ "rand_core 0.6.4",
  "rand_distr",
  "sc-keystore",
  "sc-network",
  "sc-service",
+ "schnorrkel 0.11.4",
  "serde",
  "serde_yaml",
+ "sha1",
  "sp-application-crypto",
  "sp-consensus",
+ "sp-consensus-babe",
  "sp-core",
  "sp-keyring",
  "sp-keystore",
+ "sp-runtime",
+ "sp-timestamp",
  "substrate-prometheus-endpoint",
  "tokio",
  "tracing-gum",
@@ -13543,7 +13681,7 @@ version = "1.0.0"
 dependencies = [
  "assert_matches",
  "async-trait",
- "clap 4.4.18",
+ "clap 4.5.1",
  "color-eyre",
  "futures",
  "futures-timer",
@@ -13690,26 +13828,66 @@ dependencies = [
 name = "polkadot-voter-bags"
 version = "7.0.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "generate-bags",
  "sp-io",
  "westend-runtime",
 ]
 
 [[package]]
+name = "polkavm"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94"
+dependencies = [
+ "libc",
+ "log",
+ "polkavm-assembler",
+ "polkavm-common 0.9.0",
+ "polkavm-linux-raw",
+]
+
+[[package]]
+name = "polkavm-assembler"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fa96d6d868243acc12de813dd48e756cbadcc8e13964c70d272753266deadc1"
+dependencies = [
+ "log",
+]
+
+[[package]]
 name = "polkavm-common"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "88b4e215c80fe876147f3d58158d5dfeae7dabdd6047e175af77095b78d0035c"
 
 [[package]]
+name = "polkavm-common"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92"
+dependencies = [
+ "log",
+]
+
+[[package]]
 name = "polkavm-derive"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6380dbe1fb03ecc74ad55d841cfc75480222d153ba69ddcb00977866cbdabdb8"
 dependencies = [
- "polkavm-derive-impl",
- "syn 2.0.48",
+ "polkavm-derive-impl 0.5.0",
+ "syn 2.0.50",
+]
+
+[[package]]
+name = "polkavm-derive"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606"
+dependencies = [
+ "polkavm-derive-impl-macro",
 ]
 
 [[package]]
@@ -13718,10 +13896,32 @@ version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc8211b3365bbafb2fb32057d68b0e1ca55d079f5cf6f9da9b98079b94b3987d"
 dependencies = [
- "polkavm-common",
+ "polkavm-common 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
+]
+
+[[package]]
+name = "polkavm-derive-impl"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c"
+dependencies = [
+ "polkavm-common 0.9.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.50",
+]
+
+[[package]]
+name = "polkavm-derive-impl-macro"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429"
+dependencies = [
+ "polkavm-derive-impl 0.9.0",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -13734,12 +13934,33 @@ dependencies = [
  "hashbrown 0.14.3",
  "log",
  "object 0.32.2",
- "polkavm-common",
+ "polkavm-common 0.5.0",
+ "regalloc2 0.9.3",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "polkavm-linker"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c7be503e60cf56c0eb785f90aaba4b583b36bff00e93997d93fef97f9553c39"
+dependencies = [
+ "gimli 0.28.0",
+ "hashbrown 0.14.3",
+ "log",
+ "object 0.32.2",
+ "polkavm-common 0.9.0",
  "regalloc2 0.9.3",
  "rustc-demangle",
 ]
 
 [[package]]
+name = "polkavm-linux-raw"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120"
+
+[[package]]
 name = "polling"
 version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -13763,7 +13984,7 @@ checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede"
 dependencies = [
  "cpufeatures",
  "opaque-debug 0.3.0",
- "universal-hash 0.4.1",
+ "universal-hash 0.4.0",
 ]
 
 [[package]]
@@ -13786,7 +14007,7 @@ dependencies = [
  "cfg-if",
  "cpufeatures",
  "opaque-debug 0.3.0",
- "universal-hash 0.4.1",
+ "universal-hash 0.4.0",
 ]
 
 [[package]]
@@ -13911,7 +14132,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62"
 dependencies = [
  "proc-macro2",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -14002,7 +14223,7 @@ checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -14074,7 +14295,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -14174,7 +14395,7 @@ dependencies = [
  "itertools 0.11.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -14226,6 +14447,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "quanta"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab"
+dependencies = [
+ "crossbeam-utils",
+ "libc",
+ "mach2",
+ "once_cell",
+ "raw-cpuid",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "web-sys",
+ "winapi",
+]
+
+[[package]]
 name = "quick-error"
 version = "1.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -14386,6 +14623,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "raw-cpuid"
+version = "10.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
 name = "rawpointer"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -14492,7 +14738,7 @@ checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -14571,10 +14817,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
+name = "relative-path"
+version = "1.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc"
+
+[[package]]
 name = "remote-ext-tests-bags-list"
 version = "1.0.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "frame-system",
  "log",
  "pallet-bags-list-remote-tests",
@@ -14609,12 +14861,12 @@ dependencies = [
  "percent-encoding",
  "pin-project-lite 0.2.12",
  "rustls 0.21.6",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.3",
  "serde",
  "serde_json",
  "serde_urlencoded",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tower-service",
  "url",
  "wasm-bindgen",
@@ -14641,7 +14893,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
 dependencies = [
  "hmac 0.12.1",
- "subtle 2.4.1",
+ "subtle 2.5.0",
 ]
 
 [[package]]
@@ -14657,7 +14909,7 @@ dependencies = [
  "blake2 0.10.6",
  "common",
  "fflonk",
- "merlin 3.0.0",
+ "merlin",
 ]
 
 [[package]]
@@ -14953,6 +15205,35 @@ dependencies = [
 ]
 
 [[package]]
+name = "rstest"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199"
+dependencies = [
+ "futures",
+ "futures-timer",
+ "rstest_macros",
+ "rustc_version 0.4.0",
+]
+
+[[package]]
+name = "rstest_macros"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
+dependencies = [
+ "cfg-if",
+ "glob",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "relative-path",
+ "rustc_version 0.4.0",
+ "syn 2.0.50",
+ "unicode-ident",
+]
+
+[[package]]
 name = "rtnetlink"
 version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -15122,18 +15403,45 @@ checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb"
 dependencies = [
  "log",
  "ring 0.16.20",
- "rustls-webpki",
+ "rustls-webpki 0.101.4",
  "sct",
 ]
 
 [[package]]
+name = "rustls"
+version = "0.22.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
+dependencies = [
+ "log",
+ "ring 0.17.7",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.2",
+ "subtle 2.5.0",
+ "zeroize",
+]
+
+[[package]]
 name = "rustls-native-certs"
 version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
 dependencies = [
  "openssl-probe",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.3",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-native-certs"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile 2.0.0",
+ "rustls-pki-types",
  "schannel",
  "security-framework",
 ]
@@ -15148,6 +15456,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-pemfile"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4"
+dependencies = [
+ "base64 0.21.2",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a716eb65e3158e90e17cd93d855216e27bde02745ab842f2cab4a39dba1bacf"
+
+[[package]]
 name = "rustls-webpki"
 version = "0.101.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -15158,6 +15482,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-webpki"
+version = "0.102.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+dependencies = [
+ "ring 0.17.7",
+ "rustls-pki-types",
+ "untrusted 0.9.0",
+]
+
+[[package]]
 name = "rustversion"
 version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -15317,7 +15652,7 @@ name = "sc-chain-spec"
 version = "27.0.0"
 dependencies = [
  "array-bytes 6.1.0",
- "docify",
+ "docify 0.2.7",
  "log",
  "memmap2 0.9.3",
  "parity-scale-codec",
@@ -15348,7 +15683,7 @@ dependencies = [
  "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -15356,9 +15691,8 @@ name = "sc-cli"
 version = "0.36.0"
 dependencies = [
  "array-bytes 6.1.0",
- "bip39",
  "chrono",
- "clap 4.4.18",
+ "clap 4.5.1",
  "fdlimit",
  "futures",
  "futures-timer",
@@ -15366,6 +15700,7 @@ dependencies = [
  "libp2p-identity",
  "log",
  "names",
+ "parity-bip39",
  "parity-scale-codec",
  "rand",
  "regex",
@@ -15669,7 +16004,7 @@ dependencies = [
 name = "sc-consensus-grandpa"
 version = "0.19.0"
 dependencies = [
- "ahash 0.8.7",
+ "ahash 0.8.8",
  "array-bytes 6.1.0",
  "assert_matches",
  "async-trait",
@@ -15837,6 +16172,7 @@ dependencies = [
  "paste",
  "regex",
  "sc-executor-common",
+ "sc-executor-polkavm",
  "sc-executor-wasmtime",
  "sc-runtime-test",
  "sc-tracing",
@@ -15866,6 +16202,7 @@ dependencies = [
 name = "sc-executor-common"
 version = "0.29.0"
 dependencies = [
+ "polkavm",
  "sc-allocator",
  "sp-maybe-compressed-blob",
  "sp-wasm-interface 20.0.0",
@@ -15874,6 +16211,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "sc-executor-polkavm"
+version = "0.29.0"
+dependencies = [
+ "log",
+ "polkavm",
+ "sc-executor-common",
+ "sp-wasm-interface 20.0.0",
+]
+
+[[package]]
 name = "sc-executor-wasmtime"
 version = "0.29.0"
 dependencies = [
@@ -16055,7 +16402,7 @@ dependencies = [
 name = "sc-network-gossip"
 version = "0.34.0"
 dependencies = [
- "ahash 0.8.7",
+ "ahash 0.8.8",
  "async-trait",
  "futures",
  "futures-timer",
@@ -16314,7 +16661,10 @@ dependencies = [
 name = "sc-rpc-server"
 version = "11.0.0"
 dependencies = [
+ "futures",
+ "governor",
  "http",
+ "hyper",
  "jsonrpsee",
  "log",
  "serde_json",
@@ -16338,11 +16688,13 @@ dependencies = [
  "parity-scale-codec",
  "parking_lot 0.12.1",
  "pretty_assertions",
+ "rand",
  "sc-block-builder",
  "sc-chain-spec",
  "sc-client-api",
  "sc-rpc",
  "sc-service",
+ "sc-transaction-pool",
  "sc-transaction-pool-api",
  "sc-utils",
  "serde",
@@ -16358,6 +16710,7 @@ dependencies = [
  "sp-version",
  "substrate-test-runtime",
  "substrate-test-runtime-client",
+ "substrate-test-runtime-transaction-pool",
  "thiserror",
  "tokio",
  "tokio-stream",
@@ -16412,6 +16765,7 @@ dependencies = [
  "sc-transaction-pool",
  "sc-transaction-pool-api",
  "sc-utils",
+ "schnellru",
  "serde",
  "serde_json",
  "sp-api",
@@ -16509,7 +16863,7 @@ dependencies = [
 name = "sc-storage-monitor"
 version = "0.16.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "fs4",
  "log",
  "sp-core",
@@ -16611,7 +16965,7 @@ dependencies = [
  "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -16744,29 +17098,13 @@ version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d"
 dependencies = [
- "ahash 0.8.7",
+ "ahash 0.8.8",
  "cfg-if",
  "hashbrown 0.13.2",
 ]
 
 [[package]]
 name = "schnorrkel"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862"
-dependencies = [
- "arrayref",
- "arrayvec 0.5.2",
- "curve25519-dalek 2.1.3",
- "merlin 2.0.1",
- "rand_core 0.5.1",
- "sha2 0.8.2",
- "subtle 2.4.1",
- "zeroize",
-]
-
-[[package]]
-name = "schnorrkel"
 version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d"
@@ -16774,7 +17112,7 @@ dependencies = [
  "arrayref",
  "arrayvec 0.7.4",
  "curve25519-dalek-ng",
- "merlin 3.0.0",
+ "merlin",
  "rand_core 0.6.4",
  "sha2 0.9.9",
  "subtle-ng",
@@ -16790,13 +17128,13 @@ dependencies = [
  "aead 0.5.2",
  "arrayref",
  "arrayvec 0.7.4",
- "curve25519-dalek 4.1.1",
+ "curve25519-dalek 4.1.2",
  "getrandom_or_panic",
- "merlin 3.0.0",
+ "merlin",
  "rand_core 0.6.4",
  "serde_bytes",
  "sha2 0.10.7",
- "subtle 2.4.1",
+ "subtle 2.5.0",
  "zeroize",
 ]
 
@@ -16838,7 +17176,8 @@ dependencies = [
  "der",
  "generic-array 0.14.7",
  "pkcs8",
- "subtle 2.4.1",
+ "serdect",
+ "subtle 2.5.0",
  "zeroize",
 ]
 
@@ -16995,9 +17334,9 @@ checksum = "f97841a747eef040fcd2e7b3b9a220a7205926e60488e673d9e4926d27772ce5"
 
 [[package]]
 name = "serde"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
@@ -17022,13 +17361,13 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -17053,9 +17392,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.111"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -17085,11 +17424,11 @@ dependencies = [
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.30"
+version = "0.9.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38"
+checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
  "itoa",
  "ryu",
  "serde",
@@ -17097,6 +17436,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "serdect"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177"
+dependencies = [
+ "base16ct",
+ "serde",
+]
+
+[[package]]
 name = "serial_test"
 version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -17118,7 +17467,7 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -17147,9 +17496,9 @@ dependencies = [
 
 [[package]]
 name = "sha1"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -17158,18 +17507,6 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69"
-dependencies = [
- "block-buffer 0.7.3",
- "digest 0.8.1",
- "fake-simd",
- "opaque-debug 0.2.3",
-]
-
-[[package]]
-name = "sha2"
 version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
@@ -17298,8 +17635,9 @@ dependencies = [
 
 [[package]]
 name = "simple-mermaid"
-version = "0.1.0"
-source = "git+https://github.com/kianenigma/simple-mermaid.git?rev=e48b187bcfd5cc75111acd9d241f1bd36604344b#e48b187bcfd5cc75111acd9d241f1bd36604344b"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18"
 
 [[package]]
 name = "siphasher"
@@ -17358,7 +17696,7 @@ dependencies = [
  "async-executor",
  "async-fs",
  "async-io",
- "async-lock",
+ "async-lock 2.8.0",
  "async-net",
  "async-process",
  "blocking",
@@ -17381,7 +17719,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c0bb30cf57b7b5f6109ce17c3164445e2d6f270af2cb48f6e4d31c2967c9a9f5"
 dependencies = [
  "arrayvec 0.7.4",
- "async-lock",
+ "async-lock 2.8.0",
  "atomic-take",
  "base64 0.21.2",
  "bip39",
@@ -17392,7 +17730,7 @@ dependencies = [
  "derive_more",
  "ed25519-zebra 4.0.3",
  "either",
- "event-listener",
+ "event-listener 2.5.3",
  "fnv",
  "futures-lite",
  "futures-util",
@@ -17401,13 +17739,13 @@ dependencies = [
  "hmac 0.12.1",
  "itertools 0.11.0",
  "libsecp256k1",
- "merlin 3.0.0",
+ "merlin",
  "no-std-net",
  "nom",
  "num-bigint",
  "num-rational",
  "num-traits",
- "pbkdf2 0.12.2",
+ "pbkdf2",
  "pin-project",
  "poly1305 0.8.0",
  "rand",
@@ -17435,12 +17773,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "256b5bad1d6b49045e95fe87492ce73d5af81545d8b4d8318a872d2007024c33"
 dependencies = [
  "async-channel",
- "async-lock",
+ "async-lock 2.8.0",
  "base64 0.21.2",
  "blake2-rfc",
  "derive_more",
  "either",
- "event-listener",
+ "event-listener 2.5.3",
  "fnv",
  "futures-channel",
  "futures-lite",
@@ -17476,15 +17814,15 @@ version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0c9d1425eb528a21de2755c75af4c9b5d57f50a0d4c3b7f1828a4cd03f8ba155"
 dependencies = [
- "aes-gcm 0.9.4",
+ "aes-gcm 0.9.2",
  "blake2 0.10.6",
  "chacha20poly1305",
- "curve25519-dalek 4.1.1",
+ "curve25519-dalek 4.1.2",
  "rand_core 0.6.4",
  "ring 0.16.20",
  "rustc_version 0.4.0",
  "sha2 0.10.7",
- "subtle 2.4.1",
+ "subtle 2.5.0",
 ]
 
 [[package]]
@@ -17499,7 +17837,7 @@ dependencies = [
 
 [[package]]
 name = "snowbridge-beacon-primitives"
-version = "0.0.0"
+version = "0.2.0"
 dependencies = [
  "byte-slice-cast",
  "frame-support",
@@ -17523,7 +17861,7 @@ dependencies = [
 
 [[package]]
 name = "snowbridge-core"
-version = "0.0.0"
+version = "0.2.0"
 dependencies = [
  "ethabi-decode",
  "frame-support",
@@ -17546,7 +17884,7 @@ dependencies = [
 
 [[package]]
 name = "snowbridge-ethereum"
-version = "0.1.0"
+version = "0.3.0"
 dependencies = [
  "ethabi-decode",
  "ethbloom",
@@ -17585,7 +17923,7 @@ dependencies = [
 
 [[package]]
 name = "snowbridge-outbound-queue-merkle-tree"
-version = "0.1.1"
+version = "0.3.0"
 dependencies = [
  "array-bytes 4.2.0",
  "env_logger 0.9.3",
@@ -17600,7 +17938,7 @@ dependencies = [
 
 [[package]]
 name = "snowbridge-outbound-queue-runtime-api"
-version = "0.0.0"
+version = "0.2.0"
 dependencies = [
  "frame-support",
  "parity-scale-codec",
@@ -17614,7 +17952,7 @@ dependencies = [
 
 [[package]]
 name = "snowbridge-pallet-ethereum-client"
-version = "0.0.0"
+version = "0.2.0"
 dependencies = [
  "bp-runtime",
  "byte-slice-cast",
@@ -17660,7 +17998,7 @@ dependencies = [
 
 [[package]]
 name = "snowbridge-pallet-inbound-queue"
-version = "0.0.0"
+version = "0.2.0"
 dependencies = [
  "alloy-primitives",
  "alloy-rlp",
@@ -17693,7 +18031,7 @@ dependencies = [
 
 [[package]]
 name = "snowbridge-pallet-inbound-queue-fixtures"
-version = "0.9.0"
+version = "0.10.0"
 dependencies = [
  "frame-benchmarking",
  "frame-support",
@@ -17707,7 +18045,7 @@ dependencies = [
 
 [[package]]
 name = "snowbridge-pallet-outbound-queue"
-version = "0.0.0"
+version = "0.2.0"
 dependencies = [
  "bridge-hub-common",
  "ethabi-decode",
@@ -17732,7 +18070,7 @@ dependencies = [
 
 [[package]]
 name = "snowbridge-pallet-system"
-version = "0.0.0"
+version = "0.2.0"
 dependencies = [
  "ethabi-decode",
  "frame-benchmarking",
@@ -17760,7 +18098,7 @@ dependencies = [
 
 [[package]]
 name = "snowbridge-router-primitives"
-version = "0.0.0"
+version = "0.9.0"
 dependencies = [
  "ethabi-decode",
  "frame-support",
@@ -17783,7 +18121,7 @@ dependencies = [
 
 [[package]]
 name = "snowbridge-runtime-common"
-version = "0.0.0"
+version = "0.2.0"
 dependencies = [
  "frame-support",
  "frame-system",
@@ -17799,7 +18137,7 @@ dependencies = [
 
 [[package]]
 name = "snowbridge-runtime-test-common"
-version = "0.0.0"
+version = "0.2.0"
 dependencies = [
  "assets-common",
  "bridge-hub-test-utils",
@@ -17876,7 +18214,7 @@ dependencies = [
 
 [[package]]
 name = "snowbridge-system-runtime-api"
-version = "0.0.0"
+version = "0.2.0"
 dependencies = [
  "parity-scale-codec",
  "snowbridge-core",
@@ -17924,6 +18262,87 @@ dependencies = [
 ]
 
 [[package]]
+name = "solochain-template-node"
+version = "0.0.0"
+dependencies = [
+ "clap 4.5.1",
+ "frame-benchmarking-cli",
+ "frame-system",
+ "futures",
+ "jsonrpsee",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc",
+ "sc-basic-authorship",
+ "sc-cli",
+ "sc-client-api",
+ "sc-consensus",
+ "sc-consensus-aura",
+ "sc-consensus-grandpa",
+ "sc-executor",
+ "sc-network",
+ "sc-offchain",
+ "sc-rpc-api",
+ "sc-service",
+ "sc-telemetry",
+ "sc-transaction-pool",
+ "sc-transaction-pool-api",
+ "serde_json",
+ "solochain-template-runtime",
+ "sp-api",
+ "sp-block-builder",
+ "sp-blockchain",
+ "sp-consensus-aura",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-inherents",
+ "sp-io",
+ "sp-keyring",
+ "sp-runtime",
+ "sp-timestamp",
+ "substrate-build-script-utils",
+ "substrate-frame-rpc-system",
+ "try-runtime-cli",
+]
+
+[[package]]
+name = "solochain-template-runtime"
+version = "0.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-executive",
+ "frame-support",
+ "frame-system",
+ "frame-system-benchmarking",
+ "frame-system-rpc-runtime-api",
+ "frame-try-runtime",
+ "pallet-aura",
+ "pallet-balances",
+ "pallet-grandpa",
+ "pallet-sudo",
+ "pallet-template",
+ "pallet-timestamp",
+ "pallet-transaction-payment",
+ "pallet-transaction-payment-rpc-runtime-api",
+ "parity-scale-codec",
+ "scale-info",
+ "sp-api",
+ "sp-block-builder",
+ "sp-consensus-aura",
+ "sp-consensus-grandpa",
+ "sp-core",
+ "sp-genesis-builder",
+ "sp-inherents",
+ "sp-offchain",
+ "sp-runtime",
+ "sp-session",
+ "sp-std 14.0.0",
+ "sp-storage 19.0.0",
+ "sp-transaction-pool",
+ "sp-version",
+ "substrate-wasm-builder",
+]
+
+[[package]]
 name = "sp-api"
 version = "26.0.0"
 dependencies = [
@@ -17936,6 +18355,7 @@ dependencies = [
  "sp-externalities 0.25.0",
  "sp-metadata-ir",
  "sp-runtime",
+ "sp-runtime-interface 24.0.0",
  "sp-state-machine",
  "sp-std 14.0.0",
  "sp-test-primitives",
@@ -17955,7 +18375,7 @@ dependencies = [
  "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -18152,6 +18572,7 @@ dependencies = [
  "sp-core",
  "sp-crypto-hashing",
  "sp-io",
+ "sp-keystore",
  "sp-mmr-primitives",
  "sp-runtime",
  "sp-std 14.0.0",
@@ -18219,7 +18640,6 @@ version = "28.0.0"
 dependencies = [
  "array-bytes 6.1.0",
  "bandersnatch_vrfs",
- "bip39",
  "bitflags 1.3.2",
  "blake2 0.10.6",
  "bounded-collections",
@@ -18232,10 +18652,12 @@ dependencies = [
  "hash256-std-hasher",
  "impl-serde",
  "itertools 0.10.5",
+ "k256",
  "lazy_static",
  "libsecp256k1",
  "log",
- "merlin 3.0.0",
+ "merlin",
+ "parity-bip39",
  "parity-scale-codec",
  "parking_lot 0.12.1",
  "paste",
@@ -18347,7 +18769,7 @@ version = "0.0.0"
 dependencies = [
  "quote",
  "sp-crypto-hashing",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -18365,7 +18787,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf5
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -18374,7 +18796,7 @@ version = "14.0.0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -18431,6 +18853,7 @@ dependencies = [
  "libsecp256k1",
  "log",
  "parity-scale-codec",
+ "polkavm-derive 0.9.1",
  "rustversion",
  "secp256k1",
  "sp-core",
@@ -18465,7 +18888,6 @@ dependencies = [
  "rand_chacha 0.2.2",
  "sp-core",
  "sp-externalities 0.25.0",
- "thiserror",
 ]
 
 [[package]]
@@ -18534,7 +18956,7 @@ dependencies = [
 name = "sp-npos-elections-fuzzer"
 version = "2.0.0-alpha.5"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "honggfuzz",
  "rand",
  "sp-npos-elections",
@@ -18573,7 +18995,7 @@ dependencies = [
 name = "sp-runtime"
 version = "31.0.1"
 dependencies = [
- "docify",
+ "docify 0.2.7",
  "either",
  "hash256-std-hasher",
  "impl-trait-for-tuples",
@@ -18623,6 +19045,7 @@ dependencies = [
  "bytes",
  "impl-trait-for-tuples",
  "parity-scale-codec",
+ "polkavm-derive 0.9.1",
  "primitive-types",
  "rustversion",
  "sp-core",
@@ -18648,7 +19071,7 @@ dependencies = [
  "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -18660,7 +19083,7 @@ dependencies = [
  "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -18757,7 +19180,7 @@ name = "sp-statement-store"
 version = "10.0.0"
 dependencies = [
  "aes-gcm 0.10.3",
- "curve25519-dalek 4.1.1",
+ "curve25519-dalek 4.1.2",
  "ed25519-dalek",
  "hkdf",
  "parity-scale-codec",
@@ -18884,7 +19307,7 @@ dependencies = [
 name = "sp-trie"
 version = "29.0.0"
 dependencies = [
- "ahash 0.8.7",
+ "ahash 0.8.8",
  "array-bytes 6.1.0",
  "criterion 0.4.0",
  "hash-db",
@@ -18932,7 +19355,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "sp-version",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -19056,7 +19479,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
 name = "staging-chain-spec-builder"
 version = "2.0.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "log",
  "sc-chain-spec",
  "serde_json",
@@ -19069,7 +19492,7 @@ version = "3.0.0-dev"
 dependencies = [
  "array-bytes 6.1.0",
  "assert_cmd",
- "clap 4.4.18",
+ "clap 4.5.1",
  "clap_complete",
  "criterion 0.4.0",
  "frame-benchmarking",
@@ -19179,7 +19602,7 @@ dependencies = [
 name = "staging-node-inspect"
 version = "0.12.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "parity-scale-codec",
  "sc-cli",
  "sc-client-api",
@@ -19323,7 +19746,7 @@ dependencies = [
  "bitflags 1.3.2",
  "byteorder",
  "keccak",
- "subtle 2.4.1",
+ "subtle 2.5.0",
  "zeroize",
 ]
 
@@ -19334,6 +19757,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
 name = "strum"
 version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -19371,27 +19800,27 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
 name = "subkey"
 version = "9.0.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "sc-cli",
 ]
 
 [[package]]
 name = "substrate-bip39"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e620c7098893ba667438b47169c00aacdd9e7c10e042250ce2b60b087ec97328"
+version = "0.4.7"
 dependencies = [
- "hmac 0.11.0",
- "pbkdf2 0.8.0",
- "schnorrkel 0.9.1",
- "sha2 0.9.9",
+ "bip39",
+ "hmac 0.12.1",
+ "pbkdf2",
+ "rustc-hex",
+ "schnorrkel 0.11.4",
+ "sha2 0.10.7",
  "zeroize",
 ]
 
@@ -19420,7 +19849,7 @@ dependencies = [
 name = "substrate-frame-cli"
 version = "32.0.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "frame-support",
  "frame-system",
  "sc-cli",
@@ -19638,6 +20067,7 @@ dependencies = [
  "console",
  "filetime",
  "parity-wasm",
+ "polkavm-linker 0.9.2",
  "sp-maybe-compressed-blob",
  "strum 0.24.1",
  "tempfile",
@@ -19654,9 +20084,9 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
 
 [[package]]
 name = "subtle"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "subtle-ng"
@@ -19768,9 +20198,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -19786,7 +20216,7 @@ dependencies = [
  "paste",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -19900,7 +20330,7 @@ dependencies = [
 name = "test-parachain-adder-collator"
 version = "1.0.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "futures",
  "futures-timer",
  "log",
@@ -19948,7 +20378,7 @@ dependencies = [
 name = "test-parachain-undying-collator"
 version = "1.0.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.1",
  "futures",
  "futures-timer",
  "log",
@@ -19998,6 +20428,7 @@ dependencies = [
 name = "testnet-parachains-constants"
 version = "1.0.0"
 dependencies = [
+ "cumulus-primitives-core",
  "frame-support",
  "polkadot-core-primitives",
  "rococo-runtime-constants",
@@ -20050,7 +20481,7 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -20211,7 +20642,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -20236,6 +20667,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "tokio-rustls"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+dependencies = [
+ "rustls 0.22.2",
+ "rustls-pki-types",
+ "tokio",
+]
+
+[[package]]
 name = "tokio-stream"
 version = "0.1.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -20323,7 +20765,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
  "toml_datetime",
  "winnow",
 ]
@@ -20334,7 +20776,7 @@ version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.2.3",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -20407,7 +20849,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -20449,7 +20891,7 @@ dependencies = [
  "proc-macro-crate 3.0.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
@@ -20631,7 +21073,7 @@ version = "0.38.0"
 dependencies = [
  "assert_cmd",
  "async-trait",
- "clap 4.4.18",
+ "clap 4.5.1",
  "frame-remote-externalities",
  "frame-try-runtime",
  "hex",
@@ -20784,12 +21226,12 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
 
 [[package]]
 name = "universal-hash"
-version = "0.4.1"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05"
+checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402"
 dependencies = [
  "generic-array 0.14.7",
- "subtle 2.4.1",
+ "subtle 2.5.0",
 ]
 
 [[package]]
@@ -20799,7 +21241,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
 dependencies = [
  "crypto-common",
- "subtle 2.4.1",
+ "subtle 2.5.0",
 ]
 
 [[package]]
@@ -21014,7 +21456,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
  "wasm-bindgen-shared",
 ]
 
@@ -21048,7 +21490,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -21158,9 +21600,9 @@ dependencies = [
 
 [[package]]
 name = "wasmi"
-version = "0.31.0"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f341edb80021141d4ae6468cbeefc50798716a347d4085c3811900049ea8945"
+checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7"
 dependencies = [
  "smallvec",
  "spin 0.9.8",
@@ -21171,9 +21613,9 @@ dependencies = [
 
 [[package]]
 name = "wasmi_arena"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468"
+checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073"
 
 [[package]]
 name = "wasmi_core"
@@ -21967,7 +22409,7 @@ version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96"
 dependencies = [
- "curve25519-dalek 4.1.1",
+ "curve25519-dalek 4.1.2",
  "rand_core 0.6.4",
  "serde",
  "zeroize",
@@ -22043,10 +22485,12 @@ dependencies = [
  "pallet-transaction-payment",
  "pallet-xcm",
  "parity-scale-codec",
+ "polkadot-service",
  "polkadot-test-client",
  "polkadot-test-runtime",
  "polkadot-test-service",
  "sp-consensus",
+ "sp-core",
  "sp-keyring",
  "sp-runtime",
  "sp-state-machine",
@@ -22063,7 +22507,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "staging-xcm",
- "syn 2.0.48",
+ "syn 2.0.50",
  "trybuild",
 ]
 
@@ -22116,8 +22560,10 @@ name = "xcm-simulator-fuzzer"
 version = "1.0.0"
 dependencies = [
  "arbitrary",
+ "frame-executive",
  "frame-support",
  "frame-system",
+ "frame-try-runtime",
  "honggfuzz",
  "pallet-balances",
  "pallet-message-queue",
@@ -22183,14 +22629,14 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
 name = "zeroize"
-version = "1.6.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
 dependencies = [
  "zeroize_derive",
 ]
@@ -22203,7 +22649,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.50",
 ]
 
 [[package]]
diff --git a/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix b/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
index 374817b6bb06..8f545fa8a166 100644
--- a/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/polkadot/default.nix
@@ -11,13 +11,13 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "polkadot";
-  version = "1.7.0";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "paritytech";
     repo = "polkadot-sdk";
     rev = "polkadot-v${version}";
-    hash = "sha256-YjA69i1cnnMlH/3U40s/qUi+u1IKFvlGUjsDVJuBgBE=";
+    hash = "sha256-YLd1XKluL8QBbZPTb1FCvBDVD0YWjZfZTvl4p9jx28Y=";
 
     # the build process of polkadot requires a .git folder in order to determine
     # the git commit hash that is being built and add it to the version string.
@@ -44,7 +44,6 @@ rustPlatform.buildRustPackage rec {
       "ark-secret-scalar-0.0.2" = "sha256-91sODxaj0psMw0WqigMCGO5a7+NenAsRj5ZmW6C7lvc=";
       "common-0.1.0" = "sha256-LHz2dK1p8GwyMimlR7AxHLz1tjTYolPwdjP7pxork1o=";
       "fflonk-0.1.0" = "sha256-+BvZ03AhYNP0D8Wq9EMsP+lSgPA6BBlnWkoxTffVLwo=";
-      "simple-mermaid-0.1.0" = "sha256-IekTldxYq+uoXwGvbpkVTXv2xrcZ0TQfyyE2i2zH+6w=";
       "sp-ark-bls12-381-0.4.2" = "sha256-nNr0amKhSvvI9BlsoP+8v6Xppx/s7zkf0l9Lm3DW8w8=";
       "sp-crypto-ec-utils-0.4.1" = "sha256-/Sw1ZM/JcJBokFE4y2mv/P43ciTL5DEm0PDG0jZvMkI=";
     };
diff --git a/nixpkgs/pkgs/applications/blockchains/sparrow/default.nix b/nixpkgs/pkgs/applications/blockchains/sparrow/default.nix
index 32b8066ff42e..8552d12bc9bf 100644
--- a/nixpkgs/pkgs/applications/blockchains/sparrow/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/sparrow/default.nix
@@ -21,45 +21,47 @@
 
 let
   pname = "sparrow";
-  version = "1.8.1";
+  version = "1.8.4";
 
   src = fetchurl {
     url = "https://github.com/sparrowwallet/${pname}/releases/download/${version}/${pname}-${version}-x86_64.tar.gz";
-    sha256 = "sha256-dpYGMclYMjxjUbIcSZ7V54I1LTVfHxAKH9+7CaprD4U=";
+    sha256 = "0w6z84w9spwfpqrf5m9bcq30xqp94c27jw3qzxfdyisp8n22xvd8";
   };
 
   launcher = writeScript "sparrow" ''
     #! ${bash}/bin/bash
     params=(
       --module-path @out@/lib:@jdkModules@/modules
-      --add-opens javafx.graphics/com.sun.javafx.css=org.controlsfx.controls
-      --add-opens javafx.graphics/javafx.scene=org.controlsfx.controls
-      --add-opens javafx.controls/com.sun.javafx.scene.control.behavior=org.controlsfx.controls
-      --add-opens javafx.controls/com.sun.javafx.scene.control.inputmap=org.controlsfx.controls
-      --add-opens javafx.graphics/com.sun.javafx.scene.traversal=org.controlsfx.controls
-      --add-opens javafx.base/com.sun.javafx.event=org.controlsfx.controls
-      --add-opens javafx.controls/javafx.scene.control.cell=com.sparrowwallet.sparrow
-      --add-opens org.controlsfx.controls/impl.org.controlsfx.skin=com.sparrowwallet.sparrow
-      --add-opens org.controlsfx.controls/impl.org.controlsfx.skin=javafx.fxml
-      --add-opens javafx.graphics/com.sun.javafx.tk=centerdevice.nsmenufx
-      --add-opens javafx.graphics/com.sun.javafx.tk.quantum=centerdevice.nsmenufx
-      --add-opens javafx.graphics/com.sun.glass.ui=centerdevice.nsmenufx
-      --add-opens javafx.controls/com.sun.javafx.scene.control=centerdevice.nsmenufx
-      --add-opens javafx.graphics/com.sun.javafx.menu=centerdevice.nsmenufx
-      --add-opens javafx.graphics/com.sun.glass.ui=com.sparrowwallet.sparrow
+      --add-opens=javafx.graphics/com.sun.javafx.css=org.controlsfx.controls
+      --add-opens=javafx.graphics/javafx.scene=org.controlsfx.controls
+      --add-opens=javafx.controls/com.sun.javafx.scene.control.behavior=org.controlsfx.controls
+      --add-opens=javafx.controls/com.sun.javafx.scene.control.inputmap=org.controlsfx.controls
+      --add-opens=javafx.graphics/com.sun.javafx.scene.traversal=org.controlsfx.controls
+      --add-opens=javafx.base/com.sun.javafx.event=org.controlsfx.controls
+      --add-opens=javafx.controls/javafx.scene.control.cell=com.sparrowwallet.sparrow
+      --add-opens=org.controlsfx.controls/impl.org.controlsfx.skin=com.sparrowwallet.sparrow
+      --add-opens=org.controlsfx.controls/impl.org.controlsfx.skin=javafx.fxml
+      --add-opens=javafx.graphics/com.sun.javafx.tk=centerdevice.nsmenufx
+      --add-opens=javafx.graphics/com.sun.javafx.tk.quantum=centerdevice.nsmenufx
+      --add-opens=javafx.graphics/com.sun.glass.ui=centerdevice.nsmenufx
+      --add-opens=javafx.controls/com.sun.javafx.scene.control=centerdevice.nsmenufx
+      --add-opens=javafx.graphics/com.sun.javafx.menu=centerdevice.nsmenufx
+      --add-opens=javafx.graphics/com.sun.glass.ui=com.sparrowwallet.sparrow
       --add-opens=javafx.graphics/javafx.scene.input=com.sparrowwallet.sparrow
-      --add-opens javafx.graphics/com.sun.javafx.application=com.sparrowwallet.sparrow
-      --add-opens java.base/java.net=com.sparrowwallet.sparrow
-      --add-opens java.base/java.io=com.google.gson
+      --add-opens=javafx.graphics/com.sun.javafx.application=com.sparrowwallet.sparrow
+      --add-opens=java.base/java.net=com.sparrowwallet.sparrow
+      --add-opens=java.base/java.io=com.google.gson
       --add-opens=java.smartcardio/sun.security.smartcardio=com.sparrowwallet.sparrow
-      --add-reads com.sparrowwallet.merged.module=java.desktop
-      --add-reads com.sparrowwallet.merged.module=java.sql
-      --add-reads com.sparrowwallet.merged.module=com.sparrowwallet.sparrow
-      --add-reads com.sparrowwallet.merged.module=logback.classic
-      --add-reads com.sparrowwallet.merged.module=com.fasterxml.jackson.databind
-      --add-reads com.sparrowwallet.merged.module=com.fasterxml.jackson.annotation
-      --add-reads com.sparrowwallet.merged.module=com.fasterxml.jackson.core
-      --add-reads com.sparrowwallet.merged.module=co.nstant.in.cbor
+      --add-reads=com.sparrowwallet.merged.module=java.desktop
+      --add-reads=com.sparrowwallet.merged.module=java.sql
+      --add-reads=com.sparrowwallet.merged.module=com.sparrowwallet.sparrow
+      --add-reads=com.sparrowwallet.merged.module=ch.qos.logback.classic
+      --add-reads=com.sparrowwallet.merged.module=org.slf4j
+      --add-reads=com.sparrowwallet.merged.module=com.fasterxml.jackson.databind
+      --add-reads=com.sparrowwallet.merged.module=com.fasterxml.jackson.annotation
+      --add-reads=com.sparrowwallet.merged.module=com.fasterxml.jackson.core
+      --add-reads=com.sparrowwallet.merged.module=co.nstant.in.cbor
+      --add-reads=kotlin.stdlib=kotlinx.coroutines.core
       -m com.sparrowwallet.sparrow
     )
 
diff --git a/nixpkgs/pkgs/applications/blockchains/ton/default.nix b/nixpkgs/pkgs/applications/blockchains/ton/default.nix
index 0d4d3826b7e7..888b6f8d2b97 100644
--- a/nixpkgs/pkgs/applications/blockchains/ton/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/ton/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ton";
-  version = "2024.01";
+  version = "2024.03";
 
   src = fetchFromGitHub {
     owner = "ton-blockchain";
     repo = "ton";
     rev = "v${version}";
-    hash = "sha256-nZ7yel+lTNO5zFzN711tLwAvqpf5qaYOxERwApnMVOs=";
+    hash = "sha256-AVg33aZAyedmNIFqQJm4Nn6luLxK4mKgnIRmNU7j2C0=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/blockchains/trezor-suite/default.nix b/nixpkgs/pkgs/applications/blockchains/trezor-suite/default.nix
index 13b29dbc200f..328e423535f3 100644
--- a/nixpkgs/pkgs/applications/blockchains/trezor-suite/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/trezor-suite/default.nix
@@ -8,7 +8,7 @@
 
 let
   pname = "trezor-suite";
-  version = "24.2.4";
+  version = "24.3.2";
   name = "${pname}-${version}";
 
   suffix = {
@@ -19,8 +19,8 @@ let
   src = fetchurl {
     url = "https://github.com/trezor/${pname}/releases/download/v${version}/Trezor-Suite-${version}-${suffix}.AppImage";
     hash = { # curl -Lfs https://github.com/trezor/trezor-suite/releases/latest/download/latest-linux{-arm64,}.yml | grep ^sha512 | sed 's/: /-/'
-      aarch64-linux = "sha512-25nyubEf4Vkjz6jumoQwmqTppJdby0vBVztF2eGZmLA81qysx9cpHboVKqQM3dEPBlYO7EVNSeW9d7qEenweBA==";
-      x86_64-linux  = "sha512-oI7D6eRSzUzMphgJByYFsQ1xcHTKj+SOuDG+8Pb7nX8HVb8tiRqKY+ZZ87LAJppM75eXvf3X1hRNRk5PlI2ELA==";
+      aarch64-linux = "sha512-oj/UrUFTH0QZD2eTHdR/Lu6Tz6AIhbIBgPJD3jH1YJKgOZIzX21H0KSddMgu+iKPw2WmoKf0UP+qqf+yFs/mVQ==";
+      x86_64-linux  = "sha512-RakNuSDKR0neO0IZwTVaARX9tWNDfJwOBFL3teUsNlcrur862I1c6NaaA/RxriujolDRI+wgG0twaUGEXXar5g==";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
diff --git a/nixpkgs/pkgs/applications/display-managers/greetd/dlm.nix b/nixpkgs/pkgs/applications/display-managers/greetd/dlm.nix
index 3b6f4773a29c..02df9876bad1 100644
--- a/nixpkgs/pkgs/applications/display-managers/greetd/dlm.nix
+++ b/nixpkgs/pkgs/applications/display-managers/greetd/dlm.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A stupid simple graphical login manager";
+    mainProgram = "dlm";
     homepage = "https://git.sr.ht/~kennylevinsen/dlm";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ luc65r ];
diff --git a/nixpkgs/pkgs/applications/display-managers/greetd/wlgreet.nix b/nixpkgs/pkgs/applications/display-managers/greetd/wlgreet.nix
index cea23577cc45..803b61caa8be 100644
--- a/nixpkgs/pkgs/applications/display-managers/greetd/wlgreet.nix
+++ b/nixpkgs/pkgs/applications/display-managers/greetd/wlgreet.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Raw wayland greeter for greetd, to be run under sway or similar";
+    mainProgram = "wlgreet";
     homepage = "https://git.sr.ht/~kennylevinsen/wlgreet";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ luc65r ];
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix b/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
index cd406686df86..a35b52bf8cd6 100644
--- a/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation {
       A fork of pantheon greeter that positions elements in a central and
       vertigal manner and adds a blur effect to the background
     '';
+    mainProgram = "pantheon-greeter";
     homepage = "https://github.com/nick92/Enso-OS";
     platforms = platforms.linux;
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix b/nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
index 72f386798709..353e5150356f 100644
--- a/nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A minimal, configurable, single-user GTK3 LightDM greeter";
+    mainProgram = "lightdm-mini-greeter";
     homepage = "https://github.com/prikhi/lightdm-mini-greeter";
     license = licenses.gpl3;
     maintainers = with maintainers; [ mnacamura prikhi ];
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix b/nixpkgs/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix
index bb70fa299d10..c6c479505d12 100644
--- a/nixpkgs/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm-tiny-greeter/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A tiny multi user lightdm greeter";
+    mainProgram = "lightdm-tiny-greeter";
     homepage = "https://github.com/off-world/lightdm-tiny-greeter";
     license = licenses.bsd3;
     maintainers = with maintainers; [ edwtjo ];
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix b/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
index 4ceeeb9f6b5d..6d29d90d4b56 100644
--- a/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm/gtk-greeter.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Xubuntu/lightdm-gtk-greeter";
     description = "A GTK greeter for LightDM";
+    mainProgram = "lightdm-gtk-greeter";
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bobby285271 ];
diff --git a/nixpkgs/pkgs/applications/editors/android-studio/default.nix b/nixpkgs/pkgs/applications/editors/android-studio/default.nix
index 785feeb98990..6f261ff51983 100644
--- a/nixpkgs/pkgs/applications/editors/android-studio/default.nix
+++ b/nixpkgs/pkgs/applications/editors/android-studio/default.nix
@@ -10,16 +10,16 @@ let
     inherit tiling_wm;
   };
   stableVersion = {
-    version = "2023.2.1.23"; # "Android Studio Iguana | 2023.2.1"
-    sha256Hash = "sha256-G2aPgMqBHNw1DetlaBQ9o3/VfX6QEh9VQqMZ5S/VoHM=";
+    version = "2023.2.1.24"; # "Android Studio Iguana | 2023.2.1 Patch 1"
+    sha256Hash = "sha256-ACZCdXKEnJy7DJTW+XGOoIvDRdzP47NytUEAqV//mbU=";
   };
   betaVersion = {
     version = "2023.2.1.23"; # "Android Studio Iguana | 2023.2.1"
     sha256Hash = "sha256-G2aPgMqBHNw1DetlaBQ9o3/VfX6QEh9VQqMZ5S/VoHM=";
   };
   latestVersion = {
-    version = "2023.3.1.12"; # "Android Studio Jellyfish | 2023.3.1 Canary 12"
-    sha256Hash = "sha256-yg84WBLHfb6q+OlHuh5SJ5P4Fuc8yqO9eZ8iecOhZj4=";
+    version = "2023.3.2.1"; # "Android Studio Jellyfish | 2023.3.2 Canary 1"
+    sha256Hash = "sha256-99EWGh3+3HV8yO29ANg1pwoo/1ktI2aCwKrdIqlcgVs=";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/nixpkgs/pkgs/applications/editors/bluefish/default.nix b/nixpkgs/pkgs/applications/editors/bluefish/default.nix
index 0ec47ceb9566..afcc62a28999 100644
--- a/nixpkgs/pkgs/applications/editors/bluefish/default.nix
+++ b/nixpkgs/pkgs/applications/editors/bluefish/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bluefish";
-  version = "2.2.14";
+  version = "2.2.15";
 
   src = fetchurl {
     url = "mirror://sourceforge/bluefish/bluefish-${version}.tar.bz2";
-    sha256 = "sha256-IszfnOTlyWIQY+bPfXOr+wc2q3pyvOCG0Gxc9e4SXt4=";
+    sha256 = "sha256-YUPlHGtVedWW86moXg8NhYDJ9Y+ChXWxGYgODKHZQbw=";
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/editors/codux/default.nix b/nixpkgs/pkgs/applications/editors/codux/default.nix
index 6bf950cd0ad6..f74d554a8c73 100644
--- a/nixpkgs/pkgs/applications/editors/codux/default.nix
+++ b/nixpkgs/pkgs/applications/editors/codux/default.nix
@@ -5,11 +5,11 @@
 
 let
   pname = "codux";
-  version = "15.21.0";
+  version = "15.22.2";
 
   src = fetchurl {
     url = "https://github.com/wixplosives/codux-versions/releases/download/${version}/Codux-${version}.x86_64.AppImage";
-    sha256 = "sha256-NUIcHPXCEuR/ZlQuVCxDthZMksx1MtoOG/9koDXW/j8=";
+    sha256 = "sha256-aYGZPoA2Tux6pmpZFShkZB+os34jZczXsfmYN/pu+Ic=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
diff --git a/nixpkgs/pkgs/applications/editors/cpeditor/default.nix b/nixpkgs/pkgs/applications/editors/cpeditor/default.nix
index 773ef1af035e..9f8c14a37e03 100644
--- a/nixpkgs/pkgs/applications/editors/cpeditor/default.nix
+++ b/nixpkgs/pkgs/applications/editors/cpeditor/default.nix
@@ -5,6 +5,7 @@
 , qtbase
 , qttools
 , wrapQtAppsHook
+, syntax-highlighting
 , cmake
 , ninja
 , python3
@@ -13,25 +14,23 @@
 
 stdenv.mkDerivation rec {
   pname = "cpeditor";
-  version = "6.11.2";
+  version = "7.0.1";
 
   src = fetchFromGitHub {
     owner = "cpeditor";
     repo = "cpeditor";
     rev = version;
-    sha256 = "sha256-zotbXzRjIwZdYluJiz6GWUIOXl/wz1TWt+dcTwMhURo=";
+    hash = "sha256-t7nn3sO45dOQq5OMWhaseO9XHicQ/1fjukXal5yPMgY";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ cmake ninja pkg-config wrapQtAppsHook python3 ];
-  buildInputs = [ qtbase qttools ];
+  buildInputs = [ qtbase qttools syntax-highlighting ];
 
   postPatch = ''
-    substituteInPlace src/Core/Runner.cpp --replace "/bin/bash" "${runtimeShell}"
+    substituteInPlace src/Core/Runner.cpp --replace-fail "/bin/bash" "${runtimeShell}"
   '';
 
-  env.NIX_CFLAGS_COMPILE = "-std=c++14";
-
   meta = with lib; {
     description = "An IDE specially designed for competitive programming";
     homepage = "https://cpeditor.org";
diff --git a/nixpkgs/pkgs/applications/editors/eclipse/default.nix b/nixpkgs/pkgs/applications/editors/eclipse/default.nix
index 230c5d36f1b5..732dc7695cc2 100644
--- a/nixpkgs/pkgs/applications/editors/eclipse/default.nix
+++ b/nixpkgs/pkgs/applications/editors/eclipse/default.nix
@@ -9,7 +9,7 @@
 # use ./update.sh to help with updating for each quarterly release
 #
 # then, to test:
-# for e in cpp dsl modeling platform sdk java jee committers rcp; do for s in pkgs pkgsCross.aarch64-multiplatform; do echo; echo $s $e; nix build -f default.nix ${s}.eclipses.eclipse-${e} -o eclipse-${s}-${e}; done; done
+# for e in cpp dsl embedcpp modeling platform sdk java jee committers rcp; do for s in pkgs pkgsCross.aarch64-multiplatform; do echo; echo $s $e; nix-build -A ${s}.eclipses.eclipse-${e} -o eclipse-${s}-${e}; done; done
 
 let
   platform_major = "4";
@@ -64,6 +64,21 @@ in rec {
       };
   };
 
+  ### Eclipse IDE for Embedded C/C++ Developers
+
+  eclipse-embedcpp = buildEclipse {
+    name = "eclipse-embedcpp-${platform_major}.${platform_minor}";
+    description = "Eclipse IDE for Embedded C/C++ Developers";
+    src =
+      fetchurl {
+        url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-embedcpp-${year}-${month}-R-linux-gtk-${arch}.tar.gz";
+        hash = {
+          x86_64 = "sha256-c/dd/3PzTSnrtaa2gNw+crdNu/xA428hYr8YNeBSEyw=";
+          aarch64 = "sha256-tF6o3NpFNxXALf2UA8tLzFhqYe46cI2swvym8vDSxNI=";
+        }.${arch};
+      };
+  };
+
   ### Eclipse Modeling
 
   eclipse-modeling = buildEclipse {
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-packages.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-packages.nix
index 3d0073bf8143..00f50233d50f 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-packages.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-devel-packages.nix
@@ -83,6 +83,18 @@ self: let
           rm $outd/xapian-lite.cc $outd/emacs-module.h $outd/emacs-module-prelude.h $outd/demo.gif $outd/Makefile
         '';
       });
+
+      # native compilation for tests/seq-tests.el never ends
+      # delete tests/seq-tests.el to workaround this
+      seq = super.seq.overrideAttrs (old: {
+        dontUnpack = false;
+        postUnpack = (old.postUnpack or "") + "\n" + ''
+          local content_directory=$(echo seq-*)
+          rm --verbose $content_directory/tests/seq-tests.el
+          src=$PWD/$content_directory.tar
+          tar --create --verbose --file=$src $content_directory
+        '';
+      });
     };
 
     elpaDevelPackages = super // overrides;
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
index 0b142281559a..18a0a36fc06c 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/elpa-packages.nix
@@ -63,9 +63,6 @@ self: let
       cl-print = null; # builtin
       tle = null; # builtin
       advice = null; # builtin
-      seq = if lib.versionAtLeast self.emacs.version "27"
-            then null
-            else super.seq;
       # Compilation instructions for the Ada executables:
       # https://www.nongnu.org/ada-mode/
       ada-mode = super.ada-mode.overrideAttrs (old: {
@@ -174,6 +171,18 @@ self: let
         '';
       });
 
+      # native compilation for tests/seq-tests.el never ends
+      # delete tests/seq-tests.el to workaround this
+      seq = super.seq.overrideAttrs (old: {
+        dontUnpack = false;
+        postUnpack = (old.postUnpack or "") + "\n" + ''
+          local content_directory=$(echo seq-*)
+          rm --verbose $content_directory/tests/seq-tests.el
+          src=$PWD/$content_directory.tar
+          tar --create --verbose --file=$src $content_directory
+        '';
+      });
+
 
     };
 
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages/cask/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages/cask/default.nix
index 692481cc7fbc..3ab796bcbd19 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages/cask/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages/cask/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Project management for Emacs";
+    mainProgram = "cask";
     longDescription = ''
       Cask is a project management tool for Emacs that helps automate the
       package development cycle; development, dependencies, testing, building,
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lspce/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lspce/default.nix
index 67b1b600390e..34c077da7739 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lspce/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages/lspce/default.nix
@@ -9,13 +9,13 @@
 }:
 
 let
-  version = "unstable-2023-12-01";
+  version = "unstable-2024-02-03";
 
   src = fetchFromGitHub {
     owner = "zbelial";
     repo = "lspce";
-    rev = "1958b6fcdfb6288aa17fa42360315d6c4aa85991";
-    hash = "sha256-HUIRm1z6xNJWgX7ykujzniBrOTh76D3dJHrm0LR3nuQ=";
+    rev = "543dcf0ea9e3ff5c142c4365d90b6ae8dc27bd15";
+    hash = "sha256-LZWRQOKkTjNo8jecBRholW9SHpiK0SWcV8yObojpvxo=";
   };
 
   meta = {
@@ -30,7 +30,7 @@ let
     inherit version src meta;
     pname = "lspce-module";
 
-    cargoHash = "sha256-qMLwdZwqrK7bPXL1bIbOqM7xQPpeiO8FDoje0CEJeXQ=";
+    cargoHash = "sha256-W9rsi7o4KvyRoG/pqRKOBbJtUoSW549Sh8+OV9sLcxs=";
 
     checkFlags = [
       # flaky test
diff --git a/nixpkgs/pkgs/applications/editors/emacs/make-emacs.nix b/nixpkgs/pkgs/applications/editors/emacs/make-emacs.nix
index c48550f8680a..a52533564616 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/make-emacs.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/make-emacs.nix
@@ -68,6 +68,7 @@
 , withAlsaLib ? false
 , withAthena ? false
 , withCsrc ? true
+, withDbus ? stdenv.isLinux
 , withGTK2 ? false
 , withGTK3 ? withPgtk && !noGui
 , withGconf ? false
@@ -77,6 +78,7 @@
 , withMotif ? false
 , withNS ? stdenv.isDarwin && !(variant == "macport" || noGui)
 , withPgtk ? false
+, withSelinux ? stdenv.isLinux
 , withSQLite3 ? lib.versionAtLeast version "29"
 , withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
 , withToolkitScrollBars ? true
@@ -227,8 +229,9 @@ mkDerivation (finalAttrs: {
     alsa-lib
   ] ++ lib.optionals withGpm [
     gpm
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals withDbus [
     dbus
+  ] ++ lib.optionals withSelinux [
     libselinux
   ] ++ lib.optionals (!stdenv.isDarwin && withGTK3) [
     gsettings-desktop-schemas
@@ -338,6 +341,8 @@ mkDerivation (finalAttrs: {
     (lib.withFeature withTreeSitter "tree-sitter")
     (lib.withFeature withXinput2 "xinput2")
     (lib.withFeature withXwidgets "xwidgets")
+    (lib.withFeature withDbus "dbus")
+    (lib.withFeature withSelinux "selinux")
   ];
 
   env = lib.optionalAttrs withNativeCompilation {
diff --git a/nixpkgs/pkgs/applications/editors/gobby/default.nix b/nixpkgs/pkgs/applications/editors/gobby/default.nix
index 063833ceaa15..d36f89e3c1c7 100644
--- a/nixpkgs/pkgs/applications/editors/gobby/default.nix
+++ b/nixpkgs/pkgs/applications/editors/gobby/default.nix
@@ -23,6 +23,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://gobby.0x539.de/";
     description = "A GTK-based collaborative editor supporting multiple documents in one session and a multi-user chat";
+    mainProgram = "gobby-0.5";
     license = lib.licenses.gpl2Plus;
     maintainers = [ ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/editors/jetbrains/bin/versions.json b/nixpkgs/pkgs/applications/editors/jetbrains/bin/versions.json
index a650e905bddf..35997b58c36f 100644
--- a/nixpkgs/pkgs/applications/editors/jetbrains/bin/versions.json
+++ b/nixpkgs/pkgs/applications/editors/jetbrains/bin/versions.json
@@ -3,10 +3,10 @@
     "clion": {
       "update-channel": "CLion RELEASE",
       "url-template": "https://download.jetbrains.com/cpp/CLion-{version}.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "e0add1e84352e368ad4c8de0ff8ea003dc56f3ee92c503e93bfddf4a56e97f31",
-      "url": "https://download.jetbrains.com/cpp/CLion-2023.3.3.tar.gz",
-      "build_number": "233.14015.92"
+      "version": "2023.3.4",
+      "sha256": "eae2e1646387ee36a2f24c10d924647fd3d00bb31dd42e9c17438ae7aecf79a8",
+      "url": "https://download.jetbrains.com/cpp/CLion-2023.3.4.tar.gz",
+      "build_number": "233.14475.31"
     },
     "datagrip": {
       "update-channel": "DataGrip RELEASE",
@@ -19,117 +19,117 @@
     "dataspell": {
       "update-channel": "DataSpell RELEASE",
       "url-template": "https://download.jetbrains.com/python/dataspell-{version}.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "1f46730744eb6db361ee858b9e5448c6ca69a83f2fec6a055bf7a43ce14e9c47",
-      "url": "https://download.jetbrains.com/python/dataspell-2023.3.3.tar.gz",
-      "build_number": "233.14015.111"
+      "version": "2023.3.4",
+      "sha256": "53e4efdf3388207d91f3e3767490172389cb92db449b951768af865b400ca7fe",
+      "url": "https://download.jetbrains.com/python/dataspell-2023.3.4.tar.gz",
+      "build_number": "233.14475.37"
     },
     "gateway": {
       "update-channel": "Gateway RELEASE",
       "url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "411a4d964a9b12f0cd0c0eaf47eec8c8e1da85c39bb50d0794905dd490a2b18a",
-      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2023.3.3.tar.gz",
-      "build_number": "233.14015.129"
+      "version": "2023.3.4",
+      "sha256": "a6235d4706d594c95c34fed6f32d5ded97eae6af5b8803c47ebd0ec6ccf77a06",
+      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2023.3.4.tar.gz",
+      "build_number": "233.14475.30"
     },
     "goland": {
       "update-channel": "GoLand RELEASE",
       "url-template": "https://download.jetbrains.com/go/goland-{version}.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "18a692790f0d4e2d40cedebb954aed074f72bb67ba4bdb63b7a4cb4df2c216c7",
-      "url": "https://download.jetbrains.com/go/goland-2023.3.3.tar.gz",
-      "build_number": "233.14015.113"
+      "version": "2023.3.5",
+      "sha256": "bf4cacb8b9f2cc2bf5661d19f1e240debd978a6e043d7e3c2a26f0ba3b409487",
+      "url": "https://download.jetbrains.com/go/goland-2023.3.5.tar.gz",
+      "build_number": "233.14808.20"
     },
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "dc123ded3c7ede89e7cd3d4d5e46fada96b8763f648cd0cdbc5b7d6e26203fd2",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.3.tar.gz",
-      "build_number": "233.14015.106"
+      "version": "2023.3.5",
+      "sha256": "869e534533de1dbce095db6e3fee4a63a3c8fd654052089b83d08b7808495634",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.5.tar.gz",
+      "build_number": "233.14808.21"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "d9bb8259d69f57d3dd674d1a1cce9ce372d5bea7bdab9685aa466b66f04e535f",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.3.tar.gz",
-      "build_number": "233.14015.106"
+      "version": "2023.3.5",
+      "sha256": "86f45fb2f171ac1394e2c238c06b9e6e6308ce7982465ae0b86ffded2c329ef8",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.5.tar.gz",
+      "build_number": "233.14808.21"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
       "url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}.tar.gz",
-      "version": "2023.2",
-      "sha256": "10d85eee914e23691f8512745eaa044ee33e0ca784fb84a1b0a39852d5ec1014",
-      "url": "https://download.jetbrains.com/mps/2023.2/MPS-2023.2.tar.gz",
-      "build_number": "232.10072.781"
+      "version": "2023.3",
+      "sha256": "7f40c6a9b29e17e29fd2acb2e0d1d31d3353e28fce31a479dd81dd1b66c1fa8c",
+      "url": "https://download.jetbrains.com/mps/2023.3/MPS-2023.3.tar.gz",
+      "build_number": "233.13135.979"
     },
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "83fae32882fdb58495f740d9e7a7d223186f2f80325892cc3cd7edad39bd200f",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.3.tar.gz",
-      "build_number": "233.14015.96",
+      "version": "2023.3.5",
+      "sha256": "05700ce1b36c0132ff0daf9ddc129e6f2adfbfbac01a55f5881bac8bbaecf66b",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.5.tar.gz",
+      "build_number": "233.14808.18",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "f71513f428f5df3b97b09c415967ff2db3a4e7172f293e621b3f04cd1d695443",
-      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.3.tar.gz",
-      "build_number": "233.13763.11"
+      "version": "2023.3.4",
+      "sha256": "27546b7900c0da52baa9b14f88406c2b1244c570363e506f225bf101e65cea79",
+      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.4.tar.gz",
+      "build_number": "233.14475.56"
     },
     "pycharm-professional": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "29c4955410b2ea26f0cd0f44e02c8fe2b1b7dad075f0739652051faa6f84797b",
-      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.3.tar.gz",
-      "build_number": "233.13763.11"
+      "version": "2023.3.4",
+      "sha256": "41367c6d92f69d33c0f375e4a058fef799be00d14437402371dc8ca3e5f1161e",
+      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.4.tar.gz",
+      "build_number": "233.14475.56"
     },
     "rider": {
       "update-channel": "Rider RELEASE",
       "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "e4b351d90a198c473b9ae5d9427a802c8e9d923644c4aff9cc6c16ccc994ebd0",
-      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2023.3.3.tar.gz",
-      "build_number": "233.14015.60"
+      "version": "2023.3.4",
+      "sha256": "fb137ea346d957f151cb0d7755661293ae5e33e36f306b6dc90fb42895443309",
+      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2023.3.4.tar.gz",
+      "build_number": "233.14475.66"
     },
     "ruby-mine": {
       "update-channel": "RubyMine RELEASE",
       "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "a0d8533b0aad083689d61899b74e1c4405ba247b6d981c6378199106b14db74f",
-      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.3.tar.gz",
-      "build_number": "233.14015.117"
+      "version": "2023.3.5",
+      "sha256": "2ba00db4538fcdbe116b767666529bfe3d015592d8c41234c94cff7f17086630",
+      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.5.tar.gz",
+      "build_number": "233.14808.14"
     },
     "rust-rover": {
       "update-channel": "RustRover EAP",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}.tar.gz",
       "version": "2023.3 EAP",
-      "sha256": "8d3e95f563641c20109ddd7572382663202c048a49b3ee0880cf4f69457d7f29",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-233.13135.127.tar.gz",
-      "build_number": "233.13135.127"
+      "sha256": "51b6db1563d68326bd7c8defe1f6c04b428e1a592d06579edfeb0feb60c45077",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-233.14015.155.tar.gz",
+      "build_number": "233.14015.155"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "c56ece93853aff41bc4b1fa7c40be086c8d0cb8346891ecd47a70c3978c66cd3",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.3.tar.gz",
-      "build_number": "233.14015.89"
+      "version": "2023.3.4",
+      "sha256": "236204a90d47e0dd25002078d3f032e51e03ce6bf214a78bebd28640bdd31908",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.4.tar.gz",
+      "build_number": "233.14475.40"
     }
   },
   "aarch64-linux": {
     "clion": {
       "update-channel": "CLion RELEASE",
       "url-template": "https://download.jetbrains.com/cpp/CLion-{version}-aarch64.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "1b129162abaadd6f824d036c82f013baeddb8cd002f72321c6ecb12a3ba3a9e7",
-      "url": "https://download.jetbrains.com/cpp/CLion-2023.3.3-aarch64.tar.gz",
-      "build_number": "233.14015.92"
+      "version": "2023.3.4",
+      "sha256": "fa427be85ead8e2769aeadf19ce816cb7f02c3b08ec3b4cc7e0cddea44386dc8",
+      "url": "https://download.jetbrains.com/cpp/CLion-2023.3.4-aarch64.tar.gz",
+      "build_number": "233.14475.31"
     },
     "datagrip": {
       "update-channel": "DataGrip RELEASE",
@@ -142,117 +142,117 @@
     "dataspell": {
       "update-channel": "DataSpell RELEASE",
       "url-template": "https://download.jetbrains.com/python/dataspell-{version}-aarch64.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "87996adb4cf2c28ea68ebb6dbdfacfd65224446b48fbbf2ebf9dfb9627e39de2",
-      "url": "https://download.jetbrains.com/python/dataspell-2023.3.3-aarch64.tar.gz",
-      "build_number": "233.14015.111"
+      "version": "2023.3.4",
+      "sha256": "3dbc17eec909f5b4c99b08f07e15c4c5f86b30c3bbffac486bb1afcecfa47782",
+      "url": "https://download.jetbrains.com/python/dataspell-2023.3.4-aarch64.tar.gz",
+      "build_number": "233.14475.37"
     },
     "gateway": {
       "update-channel": "Gateway RELEASE",
       "url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}-aarch64.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "69708ad33b9a9af71beea5fe7ead6f3208b84ee673a37999f40ccff46f26a1bf",
-      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2023.3.3-aarch64.tar.gz",
-      "build_number": "233.14015.129"
+      "version": "2023.3.4",
+      "sha256": "e429fe93c87687555eeb618d0cc11bcbf6809a1cfaf3763a260543ea5b639235",
+      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2023.3.4-aarch64.tar.gz",
+      "build_number": "233.14475.30"
     },
     "goland": {
       "update-channel": "GoLand RELEASE",
       "url-template": "https://download.jetbrains.com/go/goland-{version}-aarch64.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "dfe17fa21cbcfc7a050a03194c063aafc248876e393360dce5b90aa790082de2",
-      "url": "https://download.jetbrains.com/go/goland-2023.3.3-aarch64.tar.gz",
-      "build_number": "233.14015.113"
+      "version": "2023.3.5",
+      "sha256": "79d2f7bca00233710546198a80eb3beb55d0524cd0015781686a2cf9bc36fce8",
+      "url": "https://download.jetbrains.com/go/goland-2023.3.5-aarch64.tar.gz",
+      "build_number": "233.14808.20"
     },
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}-aarch64.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "9c1bd513e8687d185aa7c7fbb80a3e43949067ca312271b2d8ee5059236443fa",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.3-aarch64.tar.gz",
-      "build_number": "233.14015.106"
+      "version": "2023.3.5",
+      "sha256": "9a4f532f83becaee99d9e2c57c96f016da2d1b26c73ae8e220cc02361c222a5e",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.5-aarch64.tar.gz",
+      "build_number": "233.14808.21"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}-aarch64.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "65e4c672f394ffd4fabc14570d95dfe05ade7fae3f056ab1e8dd902bedf166bf",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.3-aarch64.tar.gz",
-      "build_number": "233.14015.106"
+      "version": "2023.3.5",
+      "sha256": "620a164756338c49c4949dda24716b2269d88e92caddc7566d7fa8625c9ca5cb",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.5-aarch64.tar.gz",
+      "build_number": "233.14808.21"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
       "url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}.tar.gz",
-      "version": "2023.2",
-      "sha256": "10d85eee914e23691f8512745eaa044ee33e0ca784fb84a1b0a39852d5ec1014",
-      "url": "https://download.jetbrains.com/mps/2023.2/MPS-2023.2.tar.gz",
-      "build_number": "232.10072.781"
+      "version": "2023.3",
+      "sha256": "7f40c6a9b29e17e29fd2acb2e0d1d31d3353e28fce31a479dd81dd1b66c1fa8c",
+      "url": "https://download.jetbrains.com/mps/2023.3/MPS-2023.3.tar.gz",
+      "build_number": "233.13135.979"
     },
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "7e1b0a6f5fe0ddf832e286544fd1fc4de9ad1d0ef1882f4b1ee4d380e49affdd",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.3-aarch64.tar.gz",
-      "build_number": "233.14015.96",
+      "version": "2023.3.5",
+      "sha256": "bd3f4eca26332ecb1e0a62ffbeee7b0d527a17229bf9998179edb8c0b1e0c524",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.5-aarch64.tar.gz",
+      "build_number": "233.14808.18",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}-aarch64.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "6e8340b494d73e3ff8de46a3e6e70ff8198b76c989c859faef59cc18724a36a2",
-      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.3-aarch64.tar.gz",
-      "build_number": "233.13763.11"
+      "version": "2023.3.4",
+      "sha256": "9c9678921b118f90519ba73543c63657d262e6aa7a7fe6b2293dcd5f26943531",
+      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.4-aarch64.tar.gz",
+      "build_number": "233.14475.56"
     },
     "pycharm-professional": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}-aarch64.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "bf0d8935b316ca2ce2b27a8ee98042f50a0b69ab1a7bb7bb1278941178d54fcf",
-      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.3-aarch64.tar.gz",
-      "build_number": "233.13763.11"
+      "version": "2023.3.4",
+      "sha256": "4800ba2575ba2b277785f9d3c9fce05d552c623b41db220f7dfdd886874b7042",
+      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.4-aarch64.tar.gz",
+      "build_number": "233.14475.56"
     },
     "rider": {
       "update-channel": "Rider RELEASE",
       "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}-aarch64.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "72681b8627b10d4e23177e729d37ee96f870442edd12d4306b9406d95446d420",
-      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2023.3.3-aarch64.tar.gz",
-      "build_number": "233.14015.60"
+      "version": "2023.3.4",
+      "sha256": "99c80997bd0d2b8b918ef81fbbe7b422e165665c8fa3d108b1387ca0188c9558",
+      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2023.3.4-aarch64.tar.gz",
+      "build_number": "233.14475.66"
     },
     "ruby-mine": {
       "update-channel": "RubyMine RELEASE",
       "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}-aarch64.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "cb8ef50e2a5abdca78a713584798851bf736af2b1a67c861f8a750a09d3631ad",
-      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.3-aarch64.tar.gz",
-      "build_number": "233.14015.117"
+      "version": "2023.3.5",
+      "sha256": "91fd717d04512170e181fd77f7cd0a63ef10e4f510a81d124d67a82d5d82a5d8",
+      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.5-aarch64.tar.gz",
+      "build_number": "233.14808.14"
     },
     "rust-rover": {
       "update-channel": "RustRover EAP",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}-aarch64.tar.gz",
       "version": "2023.3 EAP",
-      "sha256": "f99755d11d410ba453e1ef70a22aed15a02da292933222de64067b4f2d3cdcef",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-233.13135.127-aarch64.tar.gz",
-      "build_number": "233.13135.127"
+      "sha256": "d71b4d2eb3769a3acc2ebb3b3324ca376b86eb6788bf9e85467db8ee60f006c7",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-233.14015.155-aarch64.tar.gz",
+      "build_number": "233.14015.155"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}-aarch64.tar.gz",
-      "version": "2023.3.3",
-      "sha256": "14fe97e2ed2b7a2c283266159d571f955631abb527b2c728e4b837cdacf2a5fc",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.3-aarch64.tar.gz",
-      "build_number": "233.14015.89"
+      "version": "2023.3.4",
+      "sha256": "2e072ee801d07961079ef183dec13561726e2c38df68e35fe4be51d8caac585c",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.4-aarch64.tar.gz",
+      "build_number": "233.14475.40"
     }
   },
   "x86_64-darwin": {
     "clion": {
       "update-channel": "CLion RELEASE",
       "url-template": "https://download.jetbrains.com/cpp/CLion-{version}.dmg",
-      "version": "2023.3.3",
-      "sha256": "ad93d0e6b8e580db3063e36c349fd470cc47766d51287569b87b3e947463aa55",
-      "url": "https://download.jetbrains.com/cpp/CLion-2023.3.3.dmg",
-      "build_number": "233.14015.92"
+      "version": "2023.3.4",
+      "sha256": "2eb149d2bbf1c778f3386bc9cf7b11741b4372e69c680def31260b9aa213159e",
+      "url": "https://download.jetbrains.com/cpp/CLion-2023.3.4.dmg",
+      "build_number": "233.14475.31"
     },
     "datagrip": {
       "update-channel": "DataGrip RELEASE",
@@ -265,117 +265,117 @@
     "dataspell": {
       "update-channel": "DataSpell RELEASE",
       "url-template": "https://download.jetbrains.com/python/dataspell-{version}.dmg",
-      "version": "2023.3.3",
-      "sha256": "fb302153ce044e8b6bb4df5935e25d4464bffe690bd2b94ef2d60b18299ec8b2",
-      "url": "https://download.jetbrains.com/python/dataspell-2023.3.3.dmg",
-      "build_number": "233.14015.111"
+      "version": "2023.3.4",
+      "sha256": "8bc75545a3c502a98e6e8360ab4d0e7639979456d87ec7cb508344d7e3066955",
+      "url": "https://download.jetbrains.com/python/dataspell-2023.3.4.dmg",
+      "build_number": "233.14475.37"
     },
     "gateway": {
       "update-channel": "Gateway RELEASE",
       "url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}.dmg",
-      "version": "2023.3.3",
-      "sha256": "9a96c387bcd0ba9d84fd53ba2ae37d0370809d27a0fdb63e18664fdf5ee7f53f",
-      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2023.3.3.dmg",
-      "build_number": "233.14015.129"
+      "version": "2023.3.4",
+      "sha256": "5cf8720e0259c2bfd2474a5fd1db329cb48c10a8823ba0c29b0f3bde3ddbdf8a",
+      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2023.3.4.dmg",
+      "build_number": "233.14475.30"
     },
     "goland": {
       "update-channel": "GoLand RELEASE",
       "url-template": "https://download.jetbrains.com/go/goland-{version}.dmg",
-      "version": "2023.3.3",
-      "sha256": "2e459e390988e2d196add580c8cbfce8132ef0a4d55709d7495cb65a195ed4f9",
-      "url": "https://download.jetbrains.com/go/goland-2023.3.3.dmg",
-      "build_number": "233.14015.113"
+      "version": "2023.3.5",
+      "sha256": "2d76043909619e7fc59d87cda6c17fac03acaafc20f7a30da0219ef57415386f",
+      "url": "https://download.jetbrains.com/go/goland-2023.3.5.dmg",
+      "build_number": "233.14808.20"
     },
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}.dmg",
-      "version": "2023.3.3",
-      "sha256": "291308af0dcb276dd2103affb4cdfb55c29135eb411fed2ac6f5a73270525688",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.3.dmg",
-      "build_number": "233.14015.106"
+      "version": "2023.3.5",
+      "sha256": "f9ac332146ea4eb01b2d3789c042d62a024c6ccedb7e15bf9b09f506ef0663ac",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.5.dmg",
+      "build_number": "233.14808.21"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}.dmg",
-      "version": "2023.3.3",
-      "sha256": "48ea080e2e444bd6f9c27f9d9e958df4d09bc4df98457cf2ebf7f25a4a2cded9",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.3.dmg",
-      "build_number": "233.14015.106"
+      "version": "2023.3.5",
+      "sha256": "e31b7b572cb3e908e325707873d1cba53ccff0032c1876cfd7d1d998f247629b",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.5.dmg",
+      "build_number": "233.14808.21"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
       "url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}-macos.dmg",
-      "version": "2023.2",
-      "sha256": "11a635432beaca5809fe0253303d07444a0bfd6fac287c72e7b03e7a9f1a59e4",
-      "url": "https://download.jetbrains.com/mps/2023.2/MPS-2023.2-macos.dmg",
-      "build_number": "232.10072.781"
+      "version": "2023.3",
+      "sha256": "c1e46dcb3429772b164f423cedc644f388217d1e7310d682b2341f9e744333bf",
+      "url": "https://download.jetbrains.com/mps/2023.3/MPS-2023.3-macos.dmg",
+      "build_number": "233.13135.979"
     },
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}.dmg",
-      "version": "2023.3.3",
-      "sha256": "082d432eb363b274fa4eea2f743518dfcf29deb0e7be34f64152d5b114415daf",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.3.dmg",
-      "build_number": "233.14015.96",
+      "version": "2023.3.5",
+      "sha256": "536836776189c54f6ba6dc61c344758ba1bc5c8b6191d09c69cfaeaa11ef33dd",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.5.dmg",
+      "build_number": "233.14808.18",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}.dmg",
-      "version": "2023.3.3",
-      "sha256": "b42894264cf0f14fe5a93807999c89870c6709e3f1edf9d629ea74c151825451",
-      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.3.dmg",
-      "build_number": "233.13763.11"
+      "version": "2023.3.4",
+      "sha256": "492268d99fec38fa81bd02772ed57b243403ecad1f5f28b3a1150502cf8b4a6c",
+      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.4.dmg",
+      "build_number": "233.14475.56"
     },
     "pycharm-professional": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}.dmg",
-      "version": "2023.3.3",
-      "sha256": "c86b6e279ac6a82ce79e187c96b671c1b3bbb6cc2c7c5686454705316b398e9c",
-      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.3.dmg",
-      "build_number": "233.13763.11"
+      "version": "2023.3.4",
+      "sha256": "59512bbe61a9332f02e78d34b85ab2563b5dac2fa9882519ed27cfcbccef5dc2",
+      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.4.dmg",
+      "build_number": "233.14475.56"
     },
     "rider": {
       "update-channel": "Rider RELEASE",
       "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}.dmg",
-      "version": "2023.3.3",
-      "sha256": "a90346a30523eaa2e3abf57abd3949f46e0c6e6d2ea0c62c36d40b07061626cb",
-      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2023.3.3.dmg",
-      "build_number": "233.14015.60"
+      "version": "2023.3.4",
+      "sha256": "00435dc8d9dd43bbd73a55be7d5b304be8ee124032a7485750aef86cddc53ba2",
+      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2023.3.4.dmg",
+      "build_number": "233.14475.66"
     },
     "ruby-mine": {
       "update-channel": "RubyMine RELEASE",
       "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}.dmg",
-      "version": "2023.3.3",
-      "sha256": "5fcba619de2c19b969aa6ce200c859a196de6597476cd9c31b8ffef415486b8b",
-      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.3.dmg",
-      "build_number": "233.14015.117"
+      "version": "2023.3.5",
+      "sha256": "bb25d2e10187c87b809c9ce06ca5d05eb3675dd33bff587b3249117f4c290d01",
+      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.5.dmg",
+      "build_number": "233.14808.14"
     },
     "rust-rover": {
       "update-channel": "RustRover EAP",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}.dmg",
       "version": "2023.3 EAP",
-      "sha256": "f52d5ed316e92ff259aa097fce6c4d8985567373f08d2551ecfa49970c3b3c21",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-233.13135.127.dmg",
-      "build_number": "233.13135.127"
+      "sha256": "ceb2f78f0d018b66a2f81ad0e2facc7717e4d2f0fe0a3d3ef9277269afb64dee",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-233.14015.155.dmg",
+      "build_number": "233.14015.155"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}.dmg",
-      "version": "2023.3.3",
-      "sha256": "e576a6adeda21bff4eb4bb7d250bb30ba4e773e9bd8728b05fa6d6dc6eea6756",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.3.dmg",
-      "build_number": "233.14015.89"
+      "version": "2023.3.4",
+      "sha256": "5c7f2b3194bf49712456466bfdc58f20bd434f00128c4964d82e9744ee114cf8",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.4.dmg",
+      "build_number": "233.14475.40"
     }
   },
   "aarch64-darwin": {
     "clion": {
       "update-channel": "CLion RELEASE",
       "url-template": "https://download.jetbrains.com/cpp/CLion-{version}-aarch64.dmg",
-      "version": "2023.3.3",
-      "sha256": "4f8d01238149ae479e07762063011fd9b4b7c5c2ae355348810691d51f646bfb",
-      "url": "https://download.jetbrains.com/cpp/CLion-2023.3.3-aarch64.dmg",
-      "build_number": "233.14015.92"
+      "version": "2023.3.4",
+      "sha256": "340d239008c38743a10e51ae609ec3bf3dd732cf2042ef997532c6b8ed272b1a",
+      "url": "https://download.jetbrains.com/cpp/CLion-2023.3.4-aarch64.dmg",
+      "build_number": "233.14475.31"
     },
     "datagrip": {
       "update-channel": "DataGrip RELEASE",
@@ -388,107 +388,107 @@
     "dataspell": {
       "update-channel": "DataSpell RELEASE",
       "url-template": "https://download.jetbrains.com/python/dataspell-{version}-aarch64.dmg",
-      "version": "2023.3.3",
-      "sha256": "db05a2acc6a5a15b1bca9e8f68b96f975d8860df35b1bd37c0d5803af4080ee0",
-      "url": "https://download.jetbrains.com/python/dataspell-2023.3.3-aarch64.dmg",
-      "build_number": "233.14015.111"
+      "version": "2023.3.4",
+      "sha256": "2b87177f16dc4d31ff0dcf7206e03da3ff811c88ad18711170ca263e02d6ffa5",
+      "url": "https://download.jetbrains.com/python/dataspell-2023.3.4-aarch64.dmg",
+      "build_number": "233.14475.37"
     },
     "gateway": {
       "update-channel": "Gateway RELEASE",
       "url-template": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}-aarch64.dmg",
-      "version": "2023.3.3",
-      "sha256": "ec6150b6336d831a03ad7336bedc70d7c6f319f958bbf012c59671db42764173",
-      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2023.3.3-aarch64.dmg",
-      "build_number": "233.14015.129"
+      "version": "2023.3.4",
+      "sha256": "2e769fd9c28b33d34845d1b92cb12a13578f2d4c2f255c88a42fcb79a7cf848f",
+      "url": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2023.3.4-aarch64.dmg",
+      "build_number": "233.14475.30"
     },
     "goland": {
       "update-channel": "GoLand RELEASE",
       "url-template": "https://download.jetbrains.com/go/goland-{version}-aarch64.dmg",
-      "version": "2023.3.3",
-      "sha256": "4b192b5a59d86ca8f20377d7905e8a91aa1f53e99bb868ff74d9d0959b54d9c4",
-      "url": "https://download.jetbrains.com/go/goland-2023.3.3-aarch64.dmg",
-      "build_number": "233.14015.113"
+      "version": "2023.3.5",
+      "sha256": "2addb56238a56fc91fe6bbbaa5d7ae1d7adc223abb1a12e2575abf85425d1e54",
+      "url": "https://download.jetbrains.com/go/goland-2023.3.5-aarch64.dmg",
+      "build_number": "233.14808.20"
     },
     "idea-community": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIC-{version}-aarch64.dmg",
-      "version": "2023.3.3",
-      "sha256": "dad35642f993830970975ed81c7b04f89171dba0dde9e4ccf7ea29b24392603f",
-      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.3-aarch64.dmg",
-      "build_number": "233.14015.106"
+      "version": "2023.3.5",
+      "sha256": "f1f3d2585e4dceff80e5e5ac5e532e5cc94bd6711167c429c3d3c7a6b3c81f09",
+      "url": "https://download.jetbrains.com/idea/ideaIC-2023.3.5-aarch64.dmg",
+      "build_number": "233.14808.21"
     },
     "idea-ultimate": {
       "update-channel": "IntelliJ IDEA RELEASE",
       "url-template": "https://download.jetbrains.com/idea/ideaIU-{version}-aarch64.dmg",
-      "version": "2023.3.3",
-      "sha256": "ccd1dc932b3bdfabe629c38a85716ce561dbf0f4512533a62acc503648dbaa22",
-      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.3-aarch64.dmg",
-      "build_number": "233.14015.106"
+      "version": "2023.3.5",
+      "sha256": "a81096a8f697967df1a2c8564267df81bbee24d88a10011dc3e4340efb66461a",
+      "url": "https://download.jetbrains.com/idea/ideaIU-2023.3.5-aarch64.dmg",
+      "build_number": "233.14808.21"
     },
     "mps": {
       "update-channel": "MPS RELEASE",
       "url-template": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}-macos-aarch64.dmg",
-      "version": "2023.2",
-      "url": "https://download.jetbrains.com/mps/2023.2/MPS-2023.2-macos-aarch64.dmg",
-      "sha256": "a19ecd8a109783e9d2260cc18f48ac97e52a0bc00ee29df5ccf711a80d1701eb",
-      "build_number": "232.10072.781"
+      "version": "2023.3",
+      "url": "https://download.jetbrains.com/mps/2023.3/MPS-2023.3-macos-aarch64.dmg",
+      "sha256": "133e5bae81d675a6ee7780efec18dd96dfed059dbfdd2ad4a1028d9956a1ec6e",
+      "build_number": "233.13135.979"
     },
     "phpstorm": {
       "update-channel": "PhpStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.dmg",
-      "version": "2023.3.3",
-      "sha256": "052bf5e1676410b0ce25574c57c56470ee3d2d8f4b0d776c1de6bb841a6eb3bd",
-      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.3-aarch64.dmg",
-      "build_number": "233.14015.96",
+      "version": "2023.3.5",
+      "sha256": "6b4da9083d0e4bd9725c7394981de66e9a633ad797dfb771baf65887b8d18471",
+      "url": "https://download.jetbrains.com/webide/PhpStorm-2023.3.5-aarch64.dmg",
+      "build_number": "233.14808.18",
       "version-major-minor": "2022.3"
     },
     "pycharm-community": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-community-{version}-aarch64.dmg",
-      "version": "2023.3.3",
-      "sha256": "1e4dd6fb00d7557ba381406279818a3e7892027eff0fbb1b6cdf4b112c47899e",
-      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.3-aarch64.dmg",
-      "build_number": "233.13763.11"
+      "version": "2023.3.4",
+      "sha256": "885ed6dcb7b99147e345ce2d088e2636e8317a5e71ff67e9bc9d0f770266646e",
+      "url": "https://download.jetbrains.com/python/pycharm-community-2023.3.4-aarch64.dmg",
+      "build_number": "233.14475.56"
     },
     "pycharm-professional": {
       "update-channel": "PyCharm RELEASE",
       "url-template": "https://download.jetbrains.com/python/pycharm-professional-{version}-aarch64.dmg",
-      "version": "2023.3.3",
-      "sha256": "84fb09938539dc2f7ecfbd9be20a916cf542fc4e0b69a319d17e4180e4d6a244",
-      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.3-aarch64.dmg",
-      "build_number": "233.13763.11"
+      "version": "2023.3.4",
+      "sha256": "58dbf1628f59950d40be4ed73199ce92ef36be6735823d9566135ddea16c1718",
+      "url": "https://download.jetbrains.com/python/pycharm-professional-2023.3.4-aarch64.dmg",
+      "build_number": "233.14475.56"
     },
     "rider": {
       "update-channel": "Rider RELEASE",
       "url-template": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}-aarch64.dmg",
-      "version": "2023.3.3",
-      "sha256": "2d6d425610a8d14616cf9a18a0048d678164fcc45f4f5a8ee3fff695012a0c43",
-      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2023.3.3-aarch64.dmg",
-      "build_number": "233.14015.60"
+      "version": "2023.3.4",
+      "sha256": "8ffd13dcc2207d4a781dc92e89643767e0dd6ef53024c92669f4daaf9cf929c0",
+      "url": "https://download.jetbrains.com/rider/JetBrains.Rider-2023.3.4-aarch64.dmg",
+      "build_number": "233.14475.66"
     },
     "ruby-mine": {
       "update-channel": "RubyMine RELEASE",
       "url-template": "https://download.jetbrains.com/ruby/RubyMine-{version}-aarch64.dmg",
-      "version": "2023.3.3",
-      "sha256": "1e9b62b495709c5d40af0aa9e5bdca21658dc23339659bcc3d5666ef45686281",
-      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.3-aarch64.dmg",
-      "build_number": "233.14015.117"
+      "version": "2023.3.5",
+      "sha256": "1ea4720ef6559a52901e8627dd100f25951419ab4ce592f602e5bb2359027b6b",
+      "url": "https://download.jetbrains.com/ruby/RubyMine-2023.3.5-aarch64.dmg",
+      "build_number": "233.14808.14"
     },
     "rust-rover": {
       "update-channel": "RustRover EAP",
       "url-template": "https://download.jetbrains.com/rustrover/RustRover-{version}-aarch64.dmg",
       "version": "2023.3 EAP",
-      "sha256": "dc4edbd94363753084dbf2dfbeff6a13af681465e3ece8b60b2382b11e516793",
-      "url": "https://download.jetbrains.com/rustrover/RustRover-233.13135.127-aarch64.dmg",
-      "build_number": "233.13135.127"
+      "sha256": "13c986d075c78e6a81db489247fc542014ad46da7cc7bd6fa1710be047ef0884",
+      "url": "https://download.jetbrains.com/rustrover/RustRover-233.14015.155-aarch64.dmg",
+      "build_number": "233.14015.155"
     },
     "webstorm": {
       "update-channel": "WebStorm RELEASE",
       "url-template": "https://download.jetbrains.com/webstorm/WebStorm-{version}-aarch64.dmg",
-      "version": "2023.3.3",
-      "sha256": "30b9c45af873991c0d2dca508b42e61fa6a7ea752ac00bb93c1e519d15ef277c",
-      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.3-aarch64.dmg",
-      "build_number": "233.14015.89"
+      "version": "2023.3.4",
+      "sha256": "e8abaf52bc68a9da2873897de4f1aa89510323d4a12dc32fa98b192bc4eae5bc",
+      "url": "https://download.jetbrains.com/webstorm/WebStorm-2023.3.4-aarch64.dmg",
+      "build_number": "233.14475.40"
     }
   }
 }
diff --git a/nixpkgs/pkgs/applications/editors/jetbrains/default.nix b/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
index e40fa4c68d72..e5584575b24a 100644
--- a/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
+++ b/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
@@ -240,8 +240,6 @@ rec {
           --replace-needed libssl.so.10 libssl.so \
           --replace-needed libcrypto.so.10 libcrypto.so
 
-        interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
-        patchelf --set-interpreter $interp $PWD/plugins/intellij-rust/bin/linux/*/intellij-rust-native-helper
         chmod +x $PWD/plugins/intellij-rust/bin/linux/*/intellij-rust-native-helper
       )
     '';
diff --git a/nixpkgs/pkgs/applications/editors/jetbrains/plugins/plugins.json b/nixpkgs/pkgs/applications/editors/jetbrains/plugins/plugins.json
index 37202bb81467..388f0a46dfad 100644
--- a/nixpkgs/pkgs/applications/editors/jetbrains/plugins/plugins.json
+++ b/nixpkgs/pkgs/applications/editors/jetbrains/plugins/plugins.json
@@ -17,17 +17,17 @@
         "webstorm"
       ],
       "builds": {
-        "232.10072.781": "https://plugins.jetbrains.com/files/164/442850/IdeaVim-2.7.5-signed.zip",
-        "233.13135.127": "https://plugins.jetbrains.com/files/164/479004/IdeaVim-2.8.2-signed.zip",
-        "233.13763.11": "https://plugins.jetbrains.com/files/164/479004/IdeaVim-2.8.2-signed.zip",
-        "233.14015.106": "https://plugins.jetbrains.com/files/164/479004/IdeaVim-2.8.2-signed.zip",
-        "233.14015.113": "https://plugins.jetbrains.com/files/164/479004/IdeaVim-2.8.2-signed.zip",
-        "233.14015.117": "https://plugins.jetbrains.com/files/164/479004/IdeaVim-2.8.2-signed.zip",
-        "233.14015.137": "https://plugins.jetbrains.com/files/164/479004/IdeaVim-2.8.2-signed.zip",
-        "233.14015.60": "https://plugins.jetbrains.com/files/164/479004/IdeaVim-2.8.2-signed.zip",
-        "233.14015.89": "https://plugins.jetbrains.com/files/164/479004/IdeaVim-2.8.2-signed.zip",
-        "233.14015.92": "https://plugins.jetbrains.com/files/164/479004/IdeaVim-2.8.2-signed.zip",
-        "233.14015.96": "https://plugins.jetbrains.com/files/164/479004/IdeaVim-2.8.2-signed.zip"
+        "233.13135.979": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
+        "233.14015.137": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
+        "233.14015.155": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
+        "233.14475.31": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
+        "233.14475.40": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
+        "233.14475.56": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
+        "233.14475.66": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
+        "233.14808.14": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
+        "233.14808.18": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
+        "233.14808.20": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip"
       },
       "name": "ideavim"
     },
@@ -36,7 +36,7 @@
         "idea-ultimate"
       ],
       "builds": {
-        "233.14015.106": "https://plugins.jetbrains.com/files/631/474316/python-233.14015.106.zip"
+        "233.14808.21": "https://plugins.jetbrains.com/files/631/502576/python-233.14808.21.zip"
       },
       "name": "python"
     },
@@ -47,8 +47,8 @@
         "mps"
       ],
       "builds": {
-        "232.10072.781": "https://plugins.jetbrains.com/files/6954/459286/kotlin-plugin-232-1.9.22-release-704-IJ10072.27.zip",
-        "233.14015.106": null
+        "233.13135.979": null,
+        "233.14808.21": null
       },
       "name": "kotlin"
     },
@@ -69,17 +69,17 @@
         "webstorm"
       ],
       "builds": {
-        "232.10072.781": null,
-        "233.13135.127": "https://plugins.jetbrains.com/files/6981/464477/ini-233.13135.116.zip",
-        "233.13763.11": "https://plugins.jetbrains.com/files/6981/468089/ini-233.13763.5.zip",
-        "233.14015.106": "https://plugins.jetbrains.com/files/6981/474956/ini-233.14015.113.zip",
-        "233.14015.113": "https://plugins.jetbrains.com/files/6981/474956/ini-233.14015.113.zip",
-        "233.14015.117": "https://plugins.jetbrains.com/files/6981/474956/ini-233.14015.113.zip",
-        "233.14015.137": "https://plugins.jetbrains.com/files/6981/474956/ini-233.14015.113.zip",
-        "233.14015.60": "https://plugins.jetbrains.com/files/6981/474956/ini-233.14015.113.zip",
-        "233.14015.89": "https://plugins.jetbrains.com/files/6981/474956/ini-233.14015.113.zip",
-        "233.14015.92": "https://plugins.jetbrains.com/files/6981/474956/ini-233.14015.113.zip",
-        "233.14015.96": "https://plugins.jetbrains.com/files/6981/474956/ini-233.14015.113.zip"
+        "233.13135.979": null,
+        "233.14015.137": null,
+        "233.14015.155": null,
+        "233.14475.31": "https://plugins.jetbrains.com/files/6981/487357/ini-233.14475.38.zip",
+        "233.14475.40": "https://plugins.jetbrains.com/files/6981/487357/ini-233.14475.38.zip",
+        "233.14475.56": "https://plugins.jetbrains.com/files/6981/487357/ini-233.14475.38.zip",
+        "233.14475.66": "https://plugins.jetbrains.com/files/6981/487357/ini-233.14475.38.zip",
+        "233.14808.14": "https://plugins.jetbrains.com/files/6981/502555/ini-233.14808.20.zip",
+        "233.14808.18": "https://plugins.jetbrains.com/files/6981/502555/ini-233.14808.20.zip",
+        "233.14808.20": "https://plugins.jetbrains.com/files/6981/502555/ini-233.14808.20.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/6981/502555/ini-233.14808.20.zip"
       },
       "name": "ini"
     },
@@ -89,8 +89,8 @@
         "phpstorm"
       ],
       "builds": {
-        "233.14015.106": "https://plugins.jetbrains.com/files/7219/467592/Symfony_Plugin-2022.1.263.zip",
-        "233.14015.96": "https://plugins.jetbrains.com/files/7219/467592/Symfony_Plugin-2022.1.263.zip"
+        "233.14808.18": "https://plugins.jetbrains.com/files/7219/497847/Symfony_Plugin-2023.1.265.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/7219/497847/Symfony_Plugin-2023.1.265.zip"
       },
       "name": "symfony-support"
     },
@@ -100,8 +100,8 @@
         "phpstorm"
       ],
       "builds": {
-        "233.14015.106": "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip",
-        "233.14015.96": "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip"
+        "233.14808.18": "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip"
       },
       "name": "php-annotations"
     },
@@ -114,11 +114,11 @@
         "rust-rover"
       ],
       "builds": {
-        "233.13135.127": "https://plugins.jetbrains.com/files/7322/456914/python-ce-233.13135.103.zip",
-        "233.14015.106": "https://plugins.jetbrains.com/files/7322/474341/python-ce-233.14015.106.zip",
-        "233.14015.113": "https://plugins.jetbrains.com/files/7322/474341/python-ce-233.14015.106.zip",
         "233.14015.137": "https://plugins.jetbrains.com/files/7322/474341/python-ce-233.14015.106.zip",
-        "233.14015.60": "https://plugins.jetbrains.com/files/7322/474341/python-ce-233.14015.106.zip"
+        "233.14015.155": "https://plugins.jetbrains.com/files/7322/474341/python-ce-233.14015.106.zip",
+        "233.14475.66": "https://plugins.jetbrains.com/files/7322/484110/python-ce-233.14475.9.zip",
+        "233.14808.20": "https://plugins.jetbrains.com/files/7322/502153/python-ce-233.14808.12.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/7322/502153/python-ce-233.14808.12.zip"
       },
       "name": "python-community-edition"
     },
@@ -138,16 +138,16 @@
         "webstorm"
       ],
       "builds": {
-        "232.10072.781": "https://plugins.jetbrains.com/files/8182/395553/intellij-rust-0.4.201.5424-232.zip",
-        "233.13763.11": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
-        "233.14015.106": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
-        "233.14015.113": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
-        "233.14015.117": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
+        "233.13135.979": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
         "233.14015.137": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
-        "233.14015.60": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
-        "233.14015.89": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
-        "233.14015.92": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
-        "233.14015.96": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip"
+        "233.14475.31": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
+        "233.14475.40": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
+        "233.14475.56": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
+        "233.14475.66": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
+        "233.14808.14": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
+        "233.14808.18": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
+        "233.14808.20": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip"
       },
       "name": "-deprecated-rust"
     },
@@ -167,16 +167,16 @@
         "webstorm"
       ],
       "builds": {
-        "232.10072.781": "https://plugins.jetbrains.com/files/8182/372556/intellij-rust-0.4.200.5420-232-beta.zip",
-        "233.13763.11": null,
-        "233.14015.106": null,
-        "233.14015.113": null,
-        "233.14015.117": null,
+        "233.13135.979": null,
         "233.14015.137": null,
-        "233.14015.60": null,
-        "233.14015.89": null,
-        "233.14015.92": null,
-        "233.14015.96": null
+        "233.14475.31": null,
+        "233.14475.40": null,
+        "233.14475.56": null,
+        "233.14475.66": null,
+        "233.14808.14": null,
+        "233.14808.18": null,
+        "233.14808.20": null,
+        "233.14808.21": null
       },
       "name": "-deprecated-rust-beta"
     },
@@ -190,10 +190,10 @@
         "ruby-mine"
       ],
       "builds": {
-        "233.13763.11": "https://plugins.jetbrains.com/files/8554/454574/featuresTrainer-233.13135.67.zip",
-        "233.14015.106": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip",
-        "233.14015.113": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip",
-        "233.14015.117": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip"
+        "233.14475.56": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip",
+        "233.14808.14": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip",
+        "233.14808.20": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip"
       },
       "name": "ide-features-trainer"
     },
@@ -214,17 +214,17 @@
         "webstorm"
       ],
       "builds": {
-        "232.10072.781": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.13135.127": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.13763.11": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.14015.106": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.14015.113": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.14015.117": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.13135.979": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
         "233.14015.137": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.14015.60": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.14015.89": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.14015.92": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
-        "233.14015.96": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip"
+        "233.14015.155": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.14475.31": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.14475.40": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.14475.56": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.14475.66": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.14808.14": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.14808.18": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.14808.20": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip"
       },
       "name": "nixidea"
     },
@@ -234,8 +234,8 @@
         "idea-ultimate"
       ],
       "builds": {
-        "233.14015.106": "https://plugins.jetbrains.com/files/9568/474312/go-plugin-233.14015.106.zip",
-        "233.14015.113": "https://plugins.jetbrains.com/files/9568/474312/go-plugin-233.14015.106.zip"
+        "233.14808.20": "https://plugins.jetbrains.com/files/9568/502583/go-plugin-233.14808.21.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/9568/502583/go-plugin-233.14808.21.zip"
       },
       "name": "go"
     },
@@ -256,17 +256,17 @@
         "webstorm"
       ],
       "builds": {
-        "232.10072.781": "https://plugins.jetbrains.com/files/10037/432491/CSVEditor-3.2.3-232.zip",
-        "233.13135.127": "https://plugins.jetbrains.com/files/10037/432492/CSVEditor-3.2.3-233.zip",
-        "233.13763.11": "https://plugins.jetbrains.com/files/10037/432492/CSVEditor-3.2.3-233.zip",
-        "233.14015.106": "https://plugins.jetbrains.com/files/10037/432492/CSVEditor-3.2.3-233.zip",
-        "233.14015.113": "https://plugins.jetbrains.com/files/10037/432492/CSVEditor-3.2.3-233.zip",
-        "233.14015.117": "https://plugins.jetbrains.com/files/10037/432492/CSVEditor-3.2.3-233.zip",
-        "233.14015.137": "https://plugins.jetbrains.com/files/10037/432492/CSVEditor-3.2.3-233.zip",
-        "233.14015.60": "https://plugins.jetbrains.com/files/10037/432492/CSVEditor-3.2.3-233.zip",
-        "233.14015.89": "https://plugins.jetbrains.com/files/10037/432492/CSVEditor-3.2.3-233.zip",
-        "233.14015.92": "https://plugins.jetbrains.com/files/10037/432492/CSVEditor-3.2.3-233.zip",
-        "233.14015.96": "https://plugins.jetbrains.com/files/10037/432492/CSVEditor-3.2.3-233.zip"
+        "233.13135.979": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.14015.137": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.14015.155": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.14475.31": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.14475.40": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.14475.56": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.14475.66": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.14808.14": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.14808.18": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.14808.20": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip"
       },
       "name": "csv-editor"
     },
@@ -287,17 +287,17 @@
         "webstorm"
       ],
       "builds": {
-        "232.10072.781": "https://plugins.jetbrains.com/files/12062/364117/keymap-vscode-232.8660.88.zip",
-        "233.13135.127": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.13763.11": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.14015.106": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.14015.113": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.14015.117": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.13135.979": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
         "233.14015.137": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.14015.60": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.14015.89": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.14015.92": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
-        "233.14015.96": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip"
+        "233.14015.155": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.14475.31": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.14475.40": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.14475.56": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.14475.66": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.14808.14": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.14808.18": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.14808.20": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip"
       },
       "name": "vscode-keymap"
     },
@@ -318,17 +318,17 @@
         "webstorm"
       ],
       "builds": {
-        "232.10072.781": "https://plugins.jetbrains.com/files/12559/364124/keymap-eclipse-232.8660.88.zip",
-        "233.13135.127": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.13763.11": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.14015.106": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.14015.113": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.14015.117": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.13135.979": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
         "233.14015.137": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.14015.60": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.14015.89": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.14015.92": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
-        "233.14015.96": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip"
+        "233.14015.155": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.14475.31": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.14475.40": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.14475.56": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.14475.66": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.14808.14": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.14808.18": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.14808.20": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip"
       },
       "name": "eclipse-keymap"
     },
@@ -349,17 +349,17 @@
         "webstorm"
       ],
       "builds": {
-        "232.10072.781": "https://plugins.jetbrains.com/files/13017/364038/keymap-visualStudio-232.8660.88.zip",
-        "233.13135.127": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.13763.11": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.14015.106": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.14015.113": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.14015.117": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.13135.979": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
         "233.14015.137": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.14015.60": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.14015.89": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.14015.92": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
-        "233.14015.96": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip"
+        "233.14015.155": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.14475.31": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.14475.40": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.14475.56": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.14475.66": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.14808.14": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.14808.18": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.14808.20": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip"
       },
       "name": "visual-studio-keymap"
     },
@@ -380,17 +380,17 @@
         "webstorm"
       ],
       "builds": {
-        "232.10072.781": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.13135.127": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.13763.11": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.14015.106": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.14015.113": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.14015.117": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.13135.979": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
         "233.14015.137": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.14015.60": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.14015.89": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.14015.92": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
-        "233.14015.96": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar"
+        "233.14015.155": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.14475.31": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.14475.40": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.14475.56": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.14475.66": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.14808.14": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.14808.18": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.14808.20": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar",
+        "233.14808.21": "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar"
       },
       "name": "darcula-pitch-black"
     },
@@ -411,17 +411,17 @@
         "webstorm"
       ],
       "builds": {
-        "232.10072.781": "https://plugins.jetbrains.com/files/17718/474473/github-copilot-intellij-1.4.13.4415.zip",
-        "233.13135.127": "https://plugins.jetbrains.com/files/17718/474473/github-copilot-intellij-1.4.13.4415.zip",
-        "233.13763.11": "https://plugins.jetbrains.com/files/17718/474473/github-copilot-intellij-1.4.13.4415.zip",
-        "233.14015.106": "https://plugins.jetbrains.com/files/17718/474473/github-copilot-intellij-1.4.13.4415.zip",
-        "233.14015.113": "https://plugins.jetbrains.com/files/17718/474473/github-copilot-intellij-1.4.13.4415.zip",
-        "233.14015.117": "https://plugins.jetbrains.com/files/17718/474473/github-copilot-intellij-1.4.13.4415.zip",
-        "233.14015.137": "https://plugins.jetbrains.com/files/17718/474473/github-copilot-intellij-1.4.13.4415.zip",
-        "233.14015.60": "https://plugins.jetbrains.com/files/17718/474473/github-copilot-intellij-1.4.13.4415.zip",
-        "233.14015.89": "https://plugins.jetbrains.com/files/17718/474473/github-copilot-intellij-1.4.13.4415.zip",
-        "233.14015.92": "https://plugins.jetbrains.com/files/17718/474473/github-copilot-intellij-1.4.13.4415.zip",
-        "233.14015.96": "https://plugins.jetbrains.com/files/17718/474473/github-copilot-intellij-1.4.13.4415.zip"
+        "233.13135.979": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
+        "233.14015.137": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
+        "233.14015.155": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
+        "233.14475.31": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
+        "233.14475.40": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
+        "233.14475.56": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
+        "233.14475.66": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
+        "233.14808.14": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
+        "233.14808.18": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
+        "233.14808.20": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip"
       },
       "name": "github-copilot"
     },
@@ -442,17 +442,17 @@
         "webstorm"
       ],
       "builds": {
-        "232.10072.781": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.13135.127": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.13763.11": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.14015.106": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.14015.113": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.14015.117": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.13135.979": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
         "233.14015.137": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.14015.60": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.14015.89": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.14015.92": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
-        "233.14015.96": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip"
+        "233.14015.155": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.14475.31": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.14475.40": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.14475.56": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.14475.66": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.14808.14": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.14808.18": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.14808.20": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip"
       },
       "name": "netbeans-6-5-keymap"
     },
@@ -463,43 +463,34 @@
         "rust-rover"
       ],
       "builds": {
-        "233.13135.127": "https://plugins.jetbrains.com/files/22407/473386/intellij-rust-233.23135.127.zip",
-        "233.14015.106": "https://plugins.jetbrains.com/files/22407/473386/intellij-rust-233.23135.127.zip",
-        "233.14015.92": "https://plugins.jetbrains.com/files/22407/473386/intellij-rust-233.23135.127.zip"
+        "233.14015.155": "https://plugins.jetbrains.com/files/22407/498174/intellij-rust-233.24015.155.zip",
+        "233.14475.31": "https://plugins.jetbrains.com/files/22407/498174/intellij-rust-233.24015.155.zip",
+        "233.14808.21": "https://plugins.jetbrains.com/files/22407/498174/intellij-rust-233.24015.155.zip"
       },
       "name": "rust"
     }
   },
   "files": {
-    "https://plugins.jetbrains.com/files/10037/432491/CSVEditor-3.2.3-232.zip": "sha256-H/LRD/5Q9qtYCq4CSonqQcJ4IcdefI/vg2Jlmc0vaJY=",
-    "https://plugins.jetbrains.com/files/10037/432492/CSVEditor-3.2.3-233.zip": "sha256-qbQ2ArW1NcER+LbiVqpB+Sdmi5s78u8jfNmEb+2Nmrg=",
-    "https://plugins.jetbrains.com/files/12062/364117/keymap-vscode-232.8660.88.zip": "sha256-q5i1eAANK+6uBYrtioKLzvJf5ALUB0K4d31Ut0vT/lE=",
+    "https://plugins.jetbrains.com/files/10037/493012/CSVEditor-3.3.0-233.zip": "sha256-C3l3Z9a7maCrMjc2Fk/wf3AoExRbvN+fn2mAtXigt0A=",
     "https://plugins.jetbrains.com/files/12062/445740/keymap-vscode-233.11799.188.zip": "sha256-9keDJ73bSHkzAEq8nT96I5sp05BgMZ08/4BzarOjO5g=",
-    "https://plugins.jetbrains.com/files/12559/364124/keymap-eclipse-232.8660.88.zip": "sha256-eRCsivZbDNrc+kesa9jVsOoMFFz+WpYfSMXxPCCjWjw=",
     "https://plugins.jetbrains.com/files/12559/445772/keymap-eclipse-233.11799.165.zip": "sha256-IsmoWuUroAp1LLuphp4F1dun4tQOOitZxoG+Nxs5pYk=",
-    "https://plugins.jetbrains.com/files/13017/364038/keymap-visualStudio-232.8660.88.zip": "sha256-5S8u7w14fLkaTcjACfUSun9pMNtPk20/8+Dr5Sp9sDE=",
     "https://plugins.jetbrains.com/files/13017/445774/keymap-visualStudio-233.11799.165.zip": "sha256-Nb2tSxL+mAY1qJ3waipgV8ep+0R/BaYnzz7zfwtLHmk=",
     "https://plugins.jetbrains.com/files/14059/82616/darcula-pitch-black.jar": "sha256-eXInfAqY3yEZRXCAuv3KGldM1pNKEioNwPB0rIGgJFw=",
-    "https://plugins.jetbrains.com/files/164/442850/IdeaVim-2.7.5-signed.zip": "sha256-MiF8MVWBEQqupoYyI+QOyXhSvJcoSgptePENByURphI=",
-    "https://plugins.jetbrains.com/files/164/479004/IdeaVim-2.8.2-signed.zip": "sha256-TqcOkgq2tM01VBV4K7daHsIGg4L2TdKqabqJwuJql2Q=",
-    "https://plugins.jetbrains.com/files/17718/474473/github-copilot-intellij-1.4.13.4415.zip": "sha256-JpFzBZkv5tXH/TIvXa92VLDy4FDCRt45x6kzmOzzFsA=",
+    "https://plugins.jetbrains.com/files/164/491097/IdeaVim-2.9.1-signed.zip": "sha256-cUlxDF2aYw6od+dwLC3Gtv9tOzzMKo4NGZECBodIQPA=",
+    "https://plugins.jetbrains.com/files/17718/499821/github-copilot-intellij-1.5.0.5148.zip": "sha256-/JuPSqFG6VyaDj2IQAYK3Lz7/FQWppfxxXUGuGQggrY=",
     "https://plugins.jetbrains.com/files/18444/165585/NetBeans6.5Keymap.zip": "sha256-KrzZTKZMQqoEMw+vDUv2jjs0EX0leaPBkU8H/ecq/oI=",
-    "https://plugins.jetbrains.com/files/22407/473386/intellij-rust-233.23135.127.zip": "sha256-w0wfdzjekav1uAab2NaZtmTOWDNFz8IxD6Jx0jT4egQ=",
-    "https://plugins.jetbrains.com/files/631/474316/python-233.14015.106.zip": "sha256-cCTapGg6tjT8usIoqshrhw7Ubg9cYrRGIZiLsiGtT0g=",
-    "https://plugins.jetbrains.com/files/6954/459286/kotlin-plugin-232-1.9.22-release-704-IJ10072.27.zip": "sha256-3I/wmEkK+iL0VpwoqRlotI+G8G+sqcGN1MCcab+HX5E=",
-    "https://plugins.jetbrains.com/files/6981/464477/ini-233.13135.116.zip": "sha256-YoFaVOgW0DuyCp/pvcU5ePdnZokrOJZ/SwY6lxnYUOA=",
-    "https://plugins.jetbrains.com/files/6981/468089/ini-233.13763.5.zip": "sha256-sKeMk4lMeBlu7F/mf3GFRc9RZSVrAlCdRLaQARHfxow=",
-    "https://plugins.jetbrains.com/files/6981/474956/ini-233.14015.113.zip": "sha256-tJoqLmhQBsAC/k0H3rNO0/3/Np539KXiZfTMTfvUkH4=",
-    "https://plugins.jetbrains.com/files/7219/467592/Symfony_Plugin-2022.1.263.zip": "sha256-KFnMKzybqbLbPVRzRtrUBaNsrel46V2YRmQFc1EecLY=",
+    "https://plugins.jetbrains.com/files/22407/498174/intellij-rust-233.24015.155.zip": "sha256-oFg2xlR3gB1DpmhqHlugSjnrBDgAHlwvroqwAHiUAzI=",
+    "https://plugins.jetbrains.com/files/631/502576/python-233.14808.21.zip": "sha256-1YN+brLdFOgcSQwLzafrjbIZ4NWBllaKulLCJ6MfdGI=",
+    "https://plugins.jetbrains.com/files/6981/487357/ini-233.14475.38.zip": "sha256-++4e6qSYfqoP3/M69xyNaNmkhyeX3h8dK9cJabeB5cY=",
+    "https://plugins.jetbrains.com/files/6981/502555/ini-233.14808.20.zip": "sha256-8uDtfKkWfYr2qTD4Etb/zne1IXiiVLKQGJHKIVtp5cI=",
+    "https://plugins.jetbrains.com/files/7219/497847/Symfony_Plugin-2023.1.265.zip": "sha256-lAAu2NamhKjGcVTu5cBlwSX8UP8bkKf9S++CW6xzvkk=",
     "https://plugins.jetbrains.com/files/7320/346181/PHP_Annotations-9.4.0.zip": "sha256-hT5K4w4lhvNwDzDMDSvsIDGj9lyaRqglfOhlbNdqpWs=",
-    "https://plugins.jetbrains.com/files/7322/456914/python-ce-233.13135.103.zip": "sha256-Yqb3FPG5M5+hNHX3OSEStBekjTjMlf4IV6Yr6+lfoRw=",
     "https://plugins.jetbrains.com/files/7322/474341/python-ce-233.14015.106.zip": "sha256-yd70cSA/Icn5YlH4Q79cIWGFJ6huYUBDKk6vCIYa3DU=",
-    "https://plugins.jetbrains.com/files/8182/372556/intellij-rust-0.4.200.5420-232-beta.zip": "sha256-ZlSfPvhPixEz5JxU9qyG0nL3jiSjr4gKaf/xYcQI1vQ=",
-    "https://plugins.jetbrains.com/files/8182/395553/intellij-rust-0.4.201.5424-232.zip": "sha256-pVwBEyUCx/DJET9uIm8vxFeChE8FskWyfLjDpfg2mAE=",
+    "https://plugins.jetbrains.com/files/7322/484110/python-ce-233.14475.9.zip": "sha256-YMB/ewCKE1F/JXI8iau9pKkv9D5D9a8OiTVukkzTocA=",
+    "https://plugins.jetbrains.com/files/7322/502153/python-ce-233.14808.12.zip": "sha256-PUBR9krJ26QrL2jTus0b+uhzkEkT+lGnBKy1f4i/U+w=",
     "https://plugins.jetbrains.com/files/8182/466854/intellij-rust-233.15445.zip": "sha256-+Lc/avYBLpyIV63DlbhAJtieHDv4HdggqdGFDw9iqN0=",
-    "https://plugins.jetbrains.com/files/8554/454574/featuresTrainer-233.13135.67.zip": "sha256-XgtOrfULS7TJ6yfWOwNX/EL6cEirvVyzMtPzlPJEkXM=",
     "https://plugins.jetbrains.com/files/8554/469535/featuresTrainer-233.14015.29.zip": "sha256-Hj/CsaQb1U3FN1x2+00Rq2NjC6AWrfuTJL1NiEssfJ4=",
     "https://plugins.jetbrains.com/files/8607/422943/NixIDEA-0.4.0.11.zip": "sha256-Dwitpu5yLPWx+IUilpN5iqnN8FkKgaxUNjroBEx5lkM=",
-    "https://plugins.jetbrains.com/files/9568/474312/go-plugin-233.14015.106.zip": "sha256-i281TuFtacnu+horAhcHYZy0zV2nRJzSorFBPpC7usc="
+    "https://plugins.jetbrains.com/files/9568/502583/go-plugin-233.14808.21.zip": "sha256-QPZRPCCSta/q9hj0fVlmF26xebAKyUhh/dc27FgJHco="
   }
 }
diff --git a/nixpkgs/pkgs/applications/editors/jupyter-kernels/xeus-cling/xeus-cling.nix b/nixpkgs/pkgs/applications/editors/jupyter-kernels/xeus-cling/xeus-cling.nix
index f223043ca3b6..326d5a32e4b8 100644
--- a/nixpkgs/pkgs/applications/editors/jupyter-kernels/xeus-cling/xeus-cling.nix
+++ b/nixpkgs/pkgs/applications/editors/jupyter-kernels/xeus-cling/xeus-cling.nix
@@ -79,6 +79,7 @@ clangStdenv.mkDerivation rec {
 
   meta = {
     description = "Jupyter kernel for the C++ programming language";
+    mainProgram = "xcpp";
     homepage = "https://github.com/jupyter-xeus/xeus-cling";
     maintainers = with lib.maintainers; [ thomasjm ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/generated.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/generated.nix
index 84fc2cec0a95..9bc508d618d6 100644
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/generated.nix
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/generated.nix
@@ -133,6 +133,7 @@ packages = ( self:
       sha256 = "1i3id7xw0j4z1a14mscr68ckpgvcwsjpl86lr864wy7w7qcmblx6";
     };
     meta.homepage = "https://github.com/listentolist/kakoune-rainbow/";
+    meta.mainProgram = "kak-rainbow.scm";
   };
 
   kakoune-registers = buildKakounePluginFrom2Nix {
diff --git a/nixpkgs/pkgs/applications/editors/lapce/default.nix b/nixpkgs/pkgs/applications/editors/lapce/default.nix
index dce0ad168106..299c5e06cbd5 100644
--- a/nixpkgs/pkgs/applications/editors/lapce/default.nix
+++ b/nixpkgs/pkgs/applications/editors/lapce/default.nix
@@ -75,10 +75,6 @@ rustPlatform.buildRustPackage rec {
 
     # This variable is read by build script, so that Lapce editor knows its version
     RELEASE_TAG_NAME = "v${version}";
-
-  } // lib.optionalAttrs stdenv.cc.isClang {
-    # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/editors/leo-editor/default.nix b/nixpkgs/pkgs/applications/editors/leo-editor/default.nix
index 49ac3fa018d2..2f0bfcaef731 100644
--- a/nixpkgs/pkgs/applications/editors/leo-editor/default.nix
+++ b/nixpkgs/pkgs/applications/editors/leo-editor/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "leo-editor";
-  version = "6.7.6";
+  version = "6.7.8";
 
   src = fetchFromGitHub {
     owner = "leo-editor";
     repo = "leo-editor";
     rev = version;
-    sha256 = "sha256-AWno/LccMMXZ7Aw4FYQCJSoB3dRRONoT/iex0jPFng0=";
+    sha256 = "sha256-cawcfEz9QpsjfgJzG5oA5TY2EpT8hLDw5QIjwdKPW6Y=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix b/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix
index 01248b287c51..fc39298321e9 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix
@@ -37,6 +37,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "GUI for neovim, without any web bloat";
+    mainProgram = "gnvim";
     homepage = "https://github.com/vhakulinen/gnvim";
     license = licenses.mit;
     maintainers = with maintainers; [ minijackson ];
diff --git a/nixpkgs/pkgs/applications/editors/neovim/neovide/default.nix b/nixpkgs/pkgs/applications/editors/neovim/neovide/default.nix
index db789c4babd3..b103c9f20be5 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/neovide/default.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/neovide/default.nix
@@ -78,11 +78,6 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
     darwin.apple_sdk.frameworks.AppKit
   ];
 
-  env = lib.optionalAttrs stdenv.isDarwin {
-    # Work around https://github.com/NixOS/nixpkgs/issues/166205
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   postFixup = let
     libPath = lib.makeLibraryPath ([
       libglvnd
@@ -114,6 +109,7 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
 
   meta = with lib; {
     description = "This is a simple graphical user interface for Neovim.";
+    mainProgram = "neovide";
     homepage = "https://github.com/neovide/neovide";
     changelog = "https://github.com/neovide/neovide/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/applications/editors/pulsar/default.nix b/nixpkgs/pkgs/applications/editors/pulsar/default.nix
index ef08ac9352dd..b1af335ec1d4 100644
--- a/nixpkgs/pkgs/applications/editors/pulsar/default.nix
+++ b/nixpkgs/pkgs/applications/editors/pulsar/default.nix
@@ -33,13 +33,13 @@
 
 let
   pname = "pulsar";
-  version = "1.109.0";
+  version = "1.114.0";
 
   sourcesPath = {
     x86_64-linux.tarname = "Linux.${pname}-${version}.tar.gz";
-    x86_64-linux.hash = "sha256-pIm3mI1YdfapxXgIciSHtI4LeqMw5RdYTnH+eHUQ4Yo=";
+    x86_64-linux.hash = "sha256-O//dowoMgQfS3hq088IKr5aJd5St9zpT/ypfuswnyv0=";
     aarch64-linux.tarname = "ARM.Linux.${pname}-${version}-arm64.tar.gz";
-    aarch64-linux.hash = "sha256-KIY/qzfl7CU0YwIgQlNHoAMhLfrTbQe7ZZvzdkUVw+M=";
+    aarch64-linux.hash = "sha256-EzCTB1Ib9cTbslEdXPsS5gehHr1qd5v4iZgOqpxhUmA=";
   }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   newLibpath = lib.makeLibraryPath [
@@ -137,7 +137,7 @@ stdenv.mkDerivation rec {
       --set-rpath "${newLibpath}" \
       $opt/resources/app/ppm/bin/node
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      $opt/resources/app.asar.unpacked/node_modules/symbols-view/vendor/ctags-linux
+      $opt/resources/app.asar.unpacked/node_modules/symbol-provider-ctags/vendor/ctags-linux
 
   '' + lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") ''
     # Replace the bundled git with the one from nixpkgs
@@ -208,7 +208,7 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ colamaroro ];
+    maintainers = with maintainers; [ colamaroro bryango ];
     knownVulnerabilities = [
       "CVE-2023-5217"
       "CVE-2022-21718"
diff --git a/nixpkgs/pkgs/applications/editors/rehex/default.nix b/nixpkgs/pkgs/applications/editors/rehex/default.nix
index 617ae79c6849..9a3ba2a4a59f 100644
--- a/nixpkgs/pkgs/applications/editors/rehex/default.nix
+++ b/nixpkgs/pkgs/applications/editors/rehex/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rehex";
-  version = "0.61.0";
+  version = "0.61.1";
 
   src = fetchFromGitHub {
     owner = "solemnwarning";
     repo = pname;
     rev = version;
-    hash = "sha256-NBBBeTy15q6G30XR2PVd/xdIg41U2pWSPtqpdQX/+9o=";
+    hash = "sha256-/m4s5BW33I9g9hi5j3Vtui271w8Jv91+rQrI3qpO5Og=";
   };
 
   nativeBuildInputs = [ pkg-config which zip ]
diff --git a/nixpkgs/pkgs/applications/editors/rstudio/default.nix b/nixpkgs/pkgs/applications/editors/rstudio/default.nix
index 82a572eaf4c5..d3ca7de1d6a1 100644
--- a/nixpkgs/pkgs/applications/editors/rstudio/default.nix
+++ b/nixpkgs/pkgs/applications/editors/rstudio/default.nix
@@ -7,7 +7,7 @@
 , makeDesktopItem
 , copyDesktopItems
 , cmake
-, boost
+, boost183
 , zlib
 , openssl
 , R
@@ -40,18 +40,19 @@
 
 let
   pname = "RStudio";
-  version =
-  "${RSTUDIO_VERSION_MAJOR}.${RSTUDIO_VERSION_MINOR}.${RSTUDIO_VERSION_PATCH}${RSTUDIO_VERSION_SUFFIX}";
-  RSTUDIO_VERSION_MAJOR  = "2023";
-  RSTUDIO_VERSION_MINOR  = "09";
-  RSTUDIO_VERSION_PATCH  = "0";
-  RSTUDIO_VERSION_SUFFIX = "+463";
+  version = "2023.12.1+402";
+  RSTUDIO_VERSION_MAJOR = lib.versions.major version;
+  RSTUDIO_VERSION_MINOR = lib.versions.minor version;
+  RSTUDIO_VERSION_PATCH = lib.versions.patch version;
+  RSTUDIO_VERSION_SUFFIX = "+" + toString (
+    lib.tail (lib.splitString "+" version)
+  );
 
   src = fetchFromGitHub {
     owner = "rstudio";
     repo = "rstudio";
-    rev = "v${version}";
-    hash = "sha256-FwNuU2rbE3GEhuwphvZISUMhvSZJ6FjjaZ1oQ9F8NWc=";
+    rev = version;
+    hash = "sha256-ecMzkpHazg8jEBz9wh8hqRX2UdziOC8b6F+3xxdugy0=";
   };
 
   mathJaxSrc = fetchurl {
@@ -62,8 +63,8 @@ let
   rsconnectSrc = fetchFromGitHub {
     owner = "rstudio";
     repo = "rsconnect";
-    rev = "5175a927a41acfd9a21d9fdecb705ea3292109f2";
-    hash = "sha256-c1fFcN6KAfxXv8bv4WnIqQKg1wcNP2AywhEmIbyzaBA=";
+    rev = "v1.2.0";
+    hash = "sha256-ghRz4Frd+I9ShRNNOE/kdk9KjRCj0Z1mPnThueriiUY=";
   };
 
   # Ideally, rev should match the rstudio release name.
@@ -93,7 +94,7 @@ in
     ];
 
     buildInputs = [
-      boost
+      boost183
       zlib
       openssl
       R
@@ -133,6 +134,7 @@ in
       ./fix-resources-path.patch
       ./pandoc-nix-path.patch
       ./use-system-quarto.patch
+      ./ignore-etc-os-release.patch
     ];
 
     postPatch = ''
diff --git a/nixpkgs/pkgs/applications/editors/rstudio/ignore-etc-os-release.patch b/nixpkgs/pkgs/applications/editors/rstudio/ignore-etc-os-release.patch
new file mode 100644
index 000000000000..7c67edd16fcb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/rstudio/ignore-etc-os-release.patch
@@ -0,0 +1,77 @@
+diff --git a/CMakeGlobals.txt b/CMakeGlobals.txt
+index 5f96ffb..3f15687 100644
+--- a/CMakeGlobals.txt
++++ b/CMakeGlobals.txt
+@@ -29,11 +29,6 @@ endif()
+ get_filename_component(ROOT_SRC_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
+ set(CMAKE_MODULE_PATH "${ROOT_SRC_DIR}/cmake/modules/")
+ 
+-# read /etc/os-release
+-if(LINUX)
+-   include(OsRelease)
+-endif()
+-
+ # version info
+ if ("$ENV{RSTUDIO_VERSION_MAJOR}" STREQUAL "")
+   string(TIMESTAMP CPACK_PACKAGE_VERSION_MAJOR "%Y")
+diff --git a/cmake/modules/OsRelease.cmake b/cmake/modules/OsRelease.cmake
+deleted file mode 100644
+index 81a9e1f..0000000
+--- a/cmake/modules/OsRelease.cmake
++++ /dev/null
+@@ -1,24 +0,0 @@
+-#
+-# OsRelease.cmake
+-#
+-# Copyright (C) 2022 by Posit Software, PBC
+-#
+-# This program is licensed to you under the terms of version 3 of the
+-# GNU Affero General Public License. This program is distributed WITHOUT
+-# ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
+-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
+-# AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details.
+-#
+-#
+-
+-# reads and parses /etc/os-release into CMake variables
+-file(STRINGS "/etc/os-release" OS_RELEASE)
+-foreach(LINE ${OS_RELEASE})
+-	string(FIND "${LINE}" "=" INDEX)
+-	string(SUBSTRING "${LINE}" 0 "${INDEX}" KEY)
+-	math(EXPR INDEX "${INDEX} + 1")
+-	string(SUBSTRING "${LINE}" "${INDEX}" -1 VALUE)
+-	separate_arguments(VALUE UNIX_COMMAND "${VALUE}")
+-	set("OS_RELEASE_${KEY}" "${VALUE}" CACHE INTERNAL "/etc/os-release: ${KEY}")
+-endforeach()
+-
+diff --git a/package/linux/CMakeLists.txt b/package/linux/CMakeLists.txt
+index 5d5c35e..a94f8fc 100644
+--- a/package/linux/CMakeLists.txt
++++ b/package/linux/CMakeLists.txt
+@@ -16,7 +16,7 @@
+ # configure cpack install location
+ set(CPACK_SET_DESTDIR "ON")
+ set(CPACK_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+-message(STATUS "Packaging RStudio for ${OS_RELEASE_PRETTY_NAME}")
++message(STATUS "Packaging RStudio for Nix")
+ 
+ # detect architecture (packaging platform specific)
+ find_program(DPKG_EXECUTABLE dpkg)
+@@ -42,17 +42,6 @@ if(EXISTS "/etc/redhat-release")
+    endif()
+ endif()
+ 
+-# set libssl dependency
+-if(OS_RELEASE_ID STREQUAL "ubuntu")
+-  if(OS_RELEASE_VERSION_ID VERSION_GREATER_EQUAL "22.04")
+-    set(RSTUDIO_DEBIAN_DEPENDS_SSL "libssl-dev")
+-  else()
+-    set(RSTUDIO_DEBIAN_DEPENDS_SSL "libssl1.0.0 | libssl1.0.2 | libssl1.1")
+-  endif()
+-else()
+-  set(RSTUDIO_DEBIAN_DEPENDS_SSL "libssl-dev")
+-endif()
+-
+ # configuration specific
+ if(RSTUDIO_SERVER)
+ 
diff --git a/nixpkgs/pkgs/applications/editors/rstudio/use-system-node.patch b/nixpkgs/pkgs/applications/editors/rstudio/use-system-node.patch
index bb4480b4ae5f..6e0acf46dda0 100644
--- a/nixpkgs/pkgs/applications/editors/rstudio/use-system-node.patch
+++ b/nixpkgs/pkgs/applications/editors/rstudio/use-system-node.patch
@@ -6,7 +6,7 @@ index d18362b..98cdd4c 100644
  external-pandoc-path=${RSTUDIO_DEPENDENCIES_PANDOC_DIR}
  external-quarto-path=${RSTUDIO_DEPENDENCIES_QUARTO_DIR}
  external-libclang-path=${RSTUDIO_DEPENDENCIES_DIR}/common/libclang
--external-node-path=${RSTUDIO_DEPENDENCIES_DIR}/common/node/16.14.0/bin/node
+-external-node-path=${RSTUDIO_DEPENDENCIES_DIR}/common/node/18.18.2/bin/node
 +external-node-path=@node@/bin/node
  
  # enable copilot
@@ -32,7 +32,7 @@ index 033d605..f1ee63d 100644
 +++ b/src/gwt/build.xml
 @@ -87,29 +87,7 @@
     <!-- ensure version matches RSTUDIO_NODE_VERSION -->
-    <property name="node.version" value="16.14.0"/>
+    <property name="node.version" value="18.18.2"/>
     <property name="node.dir" value="../../dependencies/common/node/${node.version}"/>
 -   <!-- use yarn from system but will prefer yarn from dependencies if available -->
 -   <condition property="yarn.bin" value="yarn">
@@ -58,15 +58,18 @@ index 033d605..f1ee63d 100644
 -      value="c:\rstudio-tools\dependencies\common\node\${node.version}\node_modules\yarn\bin\yarn.cmd"
 -      file="c:\rstudio-tools\dependencies\common\node\${node.version}\node_modules\yarn\bin\yarn.cmd"/>
 +   <property name="node.bin" value="@node@/bin/node"/>
- 
+
     <property name="panmirror.dir" value="./lib/quarto/apps/panmirror"/>
     <property name="panmirror.build.dir" value="./www/js/panmirror"/>
-@@ -126,21 +104,11 @@
-       file="c:\rstudio-tools\src\gwt\lib\quarto\apps\panmirror"/>
- 
-    <target name="panmirror" description="Compile panmirror library">
+@@ -133,28 +111,11 @@
+             <isset property="panmirror.minify" />
+          </not>
+       </condition>
+-
 -      <echo message="yarn location: ${yarn.bin}"/>
 -      <echo message="panmirror location: ${panmirror.dir}"/>
+-      <echo message="panmirror minify: ${panmirror.minify}"/>
+-
        <mkdir dir="${panmirror.build.dir}"/>
 -      <exec executable="${yarn.bin}" dir="${panmirror.dir}" resolveexecutable="true" failonerror="true">
 -         <arg value="install"/>
@@ -75,14 +78,19 @@ index 033d605..f1ee63d 100644
 -      </exec>
 -      <exec executable="${yarn.bin}" dir="${panmirror.dir}" resolveexecutable="true" failonerror="true">
 -         <arg value="build"/>
+-         <arg value="--minify"/>
+-         <arg value="${panmirror.minify}"/>
+-         <arg value="--sourcemap"/>
+-         <arg value="true"/>
 -         <env key="PANMIRROR_OUTDIR" value="dist-rstudio"/>
-+      <exec executable="${node.bin}" dir="${panmirror.dir}" spawn="${panmirror.spawn}">
-+         <arg value="fuse"/>
-+         <arg value="${panmirror.target}"/>
++     <exec executable="${node.bin}" dir="${panmirror.dir}" spawn="${panmirror.spawn}">
++          <arg value="fuse"/>
++          <arg value="${panmirror.target}"/>
        </exec>
 -      <copy todir="${panmirror.build.dir}">
 -         <fileset dir="${panmirror.dir}/dist-rstudio"/>
 -      </copy>
     </target>
- 
+
     <target name="javac" description="Compile java source">
+    
diff --git a/nixpkgs/pkgs/applications/editors/setzer/default.nix b/nixpkgs/pkgs/applications/editors/setzer/default.nix
index e2e7638550f9..e331619d6266 100644
--- a/nixpkgs/pkgs/applications/editors/setzer/default.nix
+++ b/nixpkgs/pkgs/applications/editors/setzer/default.nix
@@ -69,6 +69,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "LaTeX editor written in Python with Gtk";
+    mainProgram = "setzer";
     homepage = src.meta.homepage;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/applications/editors/standardnotes/default.nix b/nixpkgs/pkgs/applications/editors/standardnotes/default.nix
index e3348ceebfd7..8d535f6f5534 100644
--- a/nixpkgs/pkgs/applications/editors/standardnotes/default.nix
+++ b/nixpkgs/pkgs/applications/editors/standardnotes/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
       end-to-end encryption, powerful extensions, and open-source applications.
     '';
     homepage = "https://standardnotes.org";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ mgregoire chuangzhu squalus ];
     sourceProvenance = [ sourceTypes.binaryNativeCode ];
     platforms = builtins.attrNames srcjson.deb;
diff --git a/nixpkgs/pkgs/applications/editors/vim/common.nix b/nixpkgs/pkgs/applications/editors/vim/common.nix
index 5aab7711cf3e..a32285f19e7a 100644
--- a/nixpkgs/pkgs/applications/editors/vim/common.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/common.nix
@@ -1,6 +1,6 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "9.1.0075";
+  version = "9.1.0148";
 
   outputs = [ "out" "xxd" ];
 
@@ -8,7 +8,7 @@ rec {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    hash = "sha256-rirPSh0rFg25JHl4idADLz6fIRmEALzp2Oa7De6uuGU=";
+    hash = "sha256-lBs9PwNE3GoxtMka9oftYx3gegjCv6D3sEyAWK6RZzM=";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/editors/vim/plugins/deprecated.json b/nixpkgs/pkgs/applications/editors/vim/plugins/deprecated.json
index 6566a2808b70..162bc4a19c65 100644
--- a/nixpkgs/pkgs/applications/editors/vim/plugins/deprecated.json
+++ b/nixpkgs/pkgs/applications/editors/vim/plugins/deprecated.json
@@ -24,7 +24,7 @@
         "new": "nvchad-ui"
     },
     "nvim-base16": {
-        "date": "2024-02-15",
+        "date": "2024-03-16",
         "new": "base16-nvim"
     },
     "nvim-bufferline-lua": {
@@ -47,6 +47,10 @@
         "date": "2021-09-03",
         "new": "sqlite-lua"
     },
+    "vim-fsharp": {
+        "date": "2024-03-16",
+        "new": "zarchive-vim-fsharp"
+    },
     "vim-jade": {
         "date": "2020-03-27",
         "new": "vim-pug"
diff --git a/nixpkgs/pkgs/applications/editors/vim/plugins/generated.nix b/nixpkgs/pkgs/applications/editors/vim/plugins/generated.nix
index c5821f51e42c..4b34bafdebe6 100644
--- a/nixpkgs/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/plugins/generated.nix
@@ -29,24 +29,24 @@ final: prev:
 
   ChatGPT-nvim = buildVimPlugin {
     pname = "ChatGPT.nvim";
-    version = "2024-02-29";
+    version = "2024-03-06";
     src = fetchFromGitHub {
       owner = "jackMort";
       repo = "ChatGPT.nvim";
-      rev = "dc6f76efcf8db15d21c9554d5da2211990ba4099";
-      sha256 = "13hm0q0yk7rhhb5gvn2kn5l7hixkx2v2kl3fjl07p7r9iia0rjy8";
+      rev = "df53728e05129278d6ea26271ec086aa013bed90";
+      sha256 = "0yh7awf26cqfndhliizi0mfqj2111hicg3hlqjjiag96qq9csgdw";
     };
     meta.homepage = "https://github.com/jackMort/ChatGPT.nvim/";
   };
 
   CheckAttach = buildVimPlugin {
     pname = "CheckAttach";
-    version = "2019-05-08";
+    version = "2024-03-07";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "CheckAttach";
-      rev = "8f0b1350431d1d34655a147e6f1cfe6cb5dda5f7";
-      sha256 = "1z9a40nbdjd3pnp28nfsi2bijsbaiphc0ia816f5flkchn07gmmj";
+      rev = "6d22144650029a5d4dc3c8f5e303a3f6ce56e76b";
+      sha256 = "04jcnq024zss9snv26py3969pflxkhn4ak0a4ap55qy9za4fcsi7";
     };
     meta.homepage = "https://github.com/chrisbra/CheckAttach/";
   };
@@ -173,24 +173,24 @@ final: prev:
 
   LazyVim = buildVimPlugin {
     pname = "LazyVim";
-    version = "2024-02-21";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "LazyVim";
       repo = "LazyVim";
-      rev = "91126b9896bebcea9a21bce43be4e613e7607164";
-      sha256 = "0cp56d4vy8mwdf3gl64cnw25fizqw0p1nfwnn470b3mwk9851i7g";
+      rev = "864c58cae6df28c602ecb4c94bc12a46206760aa";
+      sha256 = "07gaiw4xbyqjpw15lry2m4cb42szwmi77dvnkhdj4ii4n7iv749s";
     };
     meta.homepage = "https://github.com/LazyVim/LazyVim/";
   };
 
   LeaderF = buildVimPlugin {
     pname = "LeaderF";
-    version = "2024-02-25";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "Yggdroot";
       repo = "LeaderF";
-      rev = "f166222d21995f23417df604b3d500636d63d99a";
-      sha256 = "1zj19xz50xdvqlb8li45mdv1s7irxisckijx2r6xl79ykdm998jb";
+      rev = "1b1c9f21ed72a12fb7cc430edb1549e83f9b413b";
+      sha256 = "0q36mmi3jf1i1z12nddk0zdqla4289pj5mvak9sd79mpi9yrvnp8";
     };
     meta.homepage = "https://github.com/Yggdroot/LeaderF/";
   };
@@ -305,12 +305,12 @@ final: prev:
 
   SchemaStore-nvim = buildVimPlugin {
     pname = "SchemaStore.nvim";
-    version = "2024-02-29";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "b0o";
       repo = "SchemaStore.nvim";
-      rev = "f3a32e89db213900a7dae31f2243c2a41e8b16c9";
-      sha256 = "0zwvjqdk2a7w0r6msnnagqnx506163b0xy6qz0saaksfmi2zmws2";
+      rev = "9f74c6a52f4f6adaf3b3d64b15d2363219afefae";
+      sha256 = "0kblp05s42n10w5nl56x4mks967na0fljwva387sgympqibwpgws";
     };
     meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
   };
@@ -449,12 +449,12 @@ final: prev:
 
   YouCompleteMe = buildVimPlugin {
     pname = "YouCompleteMe";
-    version = "2024-02-18";
+    version = "2024-03-04";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "c3c03323c4e4bd84b8fc6173a6c95bbd6c922b11";
-      sha256 = "1977s7082pvml4yi6km3i0k81n5vp0ym25ybxgl28ym66xrxcl28";
+      rev = "d088ff721ea2f1a56649157fa91771d068f1706f";
+      sha256 = "0mxf52vgmk3j6fyymkzrl19lsgdk0jvhx2w7imblsswabqx5xc7a";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -498,12 +498,12 @@ final: prev:
 
   actions-preview-nvim = buildVimPlugin {
     pname = "actions-preview.nvim";
-    version = "2024-02-25";
+    version = "2024-03-09";
     src = fetchFromGitHub {
       owner = "aznhe21";
       repo = "actions-preview.nvim";
-      rev = "5c240e6356156b72cfbf7c05feefadae61d7a06f";
-      sha256 = "11p2393x80mym11nz3p1v3sz88y04sy8rknvfv5spd1gxcm7172w";
+      rev = "5072b1b1065a6b22bdd46b5c21780a91d6a08071";
+      sha256 = "195ns7dw3g4sq3pmh3h3xas4kfmwwhidlg4q7nnffkd6x9cdg31w";
     };
     meta.homepage = "https://github.com/aznhe21/actions-preview.nvim/";
   };
@@ -522,12 +522,12 @@ final: prev:
 
   aerial-nvim = buildVimPlugin {
     pname = "aerial.nvim";
-    version = "2024-02-05";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "aerial.nvim";
-      rev = "3748e87a316a68754341cdffcef44fee61dee51c";
-      sha256 = "0d7623dibwrp7nzl512laznai478rw8vz2jxlmbihs5gccnxnvp7";
+      rev = "993142d49274092c64a2d475aa726df3c323949d";
+      sha256 = "06pw6ygbmf65zkg65ajy3cr0g3y1fg0lk8kkw2q5f9s2qq2fs306";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/aerial.nvim/";
@@ -583,12 +583,12 @@ final: prev:
 
   ale = buildVimPlugin {
     pname = "ale";
-    version = "2024-02-28";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "24a937e04f3c59add32d8bd8533e02ab93268772";
-      sha256 = "0z5nbdarhxnw7qp0j1hk98my7ks5vm0llgm1i2jrq2y52x0lp2xh";
+      rev = "712b4b3a9714ff58a5c0798c7b6e0ecf7c59857d";
+      sha256 = "1fsnjcw503ca9612q3vjl32q1sq5wyjbiqy2rbwjy2w1cjny7160";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -799,12 +799,12 @@ final: prev:
 
   asyncrun-vim = buildVimPlugin {
     pname = "asyncrun.vim";
-    version = "2024-02-24";
+    version = "2024-03-05";
     src = fetchFromGitHub {
       owner = "skywind3000";
       repo = "asyncrun.vim";
-      rev = "915e36a2ed84b73741e13d2df3edc8e01ca56f5b";
-      sha256 = "0rw3wnxsk9gx4kvw2x5h1pbmpls7fvlim3ihlhw37zf2irsfph5w";
+      rev = "c572812e1d32c064859d8e9790c05e09f78ce508";
+      sha256 = "126ipiv31igbxppgji4p4ahzqgzyrkn08fqn7ws4l6nsm2h75xl3";
     };
     meta.homepage = "https://github.com/skywind3000/asyncrun.vim/";
   };
@@ -1015,24 +1015,24 @@ final: prev:
 
   bamboo-nvim = buildVimPlugin {
     pname = "bamboo.nvim";
-    version = "2024-02-13";
+    version = "2024-03-09";
     src = fetchFromGitHub {
       owner = "ribru17";
       repo = "bamboo.nvim";
-      rev = "2c5a7442f8db3dcc3f5175f0bed73675e26e3931";
-      sha256 = "0ana0pad4lcqg6mcava4mvvi0c9bwkcgfql1xgmcxmz1svgrqkqg";
+      rev = "ca93b6193742f80330ace6d5e4e9f0f0480e0c45";
+      sha256 = "1hqjwzn5pfzg46rq316vx83sqyl7fv1y7kk1b9i550zmv7q6qvlj";
     };
     meta.homepage = "https://github.com/ribru17/bamboo.nvim/";
   };
 
   barbar-nvim = buildVimPlugin {
     pname = "barbar.nvim";
-    version = "2024-02-27";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "barbar.nvim";
-      rev = "1d6b1386abe97d1d8cba47eb9afa8a9f2d1bbe66";
-      sha256 = "1cwyghc81fsqbmfqq0gs2y38x5dddlz9asfcjhc1diyf2x78wycv";
+      rev = "3c48b5edf61dda21ad41c514e53448fee366a824";
+      sha256 = "1fys0jay5ij0xh0sinmyr00z903ksdpcm8cyp6rjwsryrjqda8km";
     };
     meta.homepage = "https://github.com/romgrk/barbar.nvim/";
   };
@@ -1075,12 +1075,12 @@ final: prev:
 
   base46 = buildVimPlugin {
     pname = "base46";
-    version = "2024-02-29";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "nvchad";
       repo = "base46";
-      rev = "36a44bf1c712a42b46479540ee89e296c6c63cdc";
-      sha256 = "0j7zgyg1f17b7lzlgq39hmcvzshh1saav7f2jn87kb46jvng7nva";
+      rev = "6ffabeac88203b6d74afb4be4de5d3daa5dbbda8";
+      sha256 = "0048smdfljgxfr7g425m0wxj5whd164r13zrcf2yfzyj7lhb93k6";
     };
     meta.homepage = "https://github.com/nvchad/base46/";
   };
@@ -1279,12 +1279,12 @@ final: prev:
 
   bufferline-nvim = buildVimPlugin {
     pname = "bufferline.nvim";
-    version = "2024-01-29";
+    version = "2024-03-07";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "bufferline.nvim";
-      rev = "b15c6daf5a64426c69732b31a951f4e438cb6590";
-      sha256 = "09yj7gkk4ba50cdfmnn56g5hrbh4hk9934mj3xm08nbqhh4jir1k";
+      rev = "64e2c5def50dfd6b6f14d96a45fa3d815a4a1eef";
+      sha256 = "1r9bb6jmcj2048ny86v7ha8scjv1qispmxhj98l11jb2xb1f1fvn";
     };
     meta.homepage = "https://github.com/akinsho/bufferline.nvim/";
   };
@@ -1303,12 +1303,12 @@ final: prev:
 
   bullets-vim = buildVimPlugin {
     pname = "bullets.vim";
-    version = "2024-01-31";
+    version = "2024-03-08";
     src = fetchFromGitHub {
       owner = "bullets-vim";
       repo = "bullets.vim";
-      rev = "d9a47f114031d3030b1e4de3c0b6a664b1201524";
-      sha256 = "0ypf8ggvl1q5kgrzanr20n6bllfl547hk50aq0jmw0mprhi5npds";
+      rev = "0cc28d53e9da628e006c89bb2d3b03b94a0dee33";
+      sha256 = "0gxa73q89w7mkhhmy3f2zdcsys4p9m4z61ff1c9lmbvd1r8dh898";
     };
     meta.homepage = "https://github.com/bullets-vim/bullets.vim/";
   };
@@ -1351,24 +1351,24 @@ final: prev:
 
   ccc-nvim = buildVimPlugin {
     pname = "ccc.nvim";
-    version = "2024-03-01";
+    version = "2024-03-08";
     src = fetchFromGitHub {
       owner = "uga-rosa";
       repo = "ccc.nvim";
-      rev = "fb740df82b25aaab3988cdaf9d9e908eba1a0111";
-      sha256 = "06jya7svz3q0vcwgmj8xqjvhix92q9d40iwybm0qqlv69k09lqwc";
+      rev = "f3d9d31aab7990d50ae6922fd7c1e3a9eb7da183";
+      sha256 = "0h94gcp1labwgkphd1n9nn9jw1ps4ij2s6pmkdxag8j15kbh3r7k";
     };
     meta.homepage = "https://github.com/uga-rosa/ccc.nvim/";
   };
 
   chadtree = buildVimPlugin {
     pname = "chadtree";
-    version = "2024-03-01";
+    version = "2024-03-11";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "b2e5c4a744cae86f3103157c6834043d189829fe";
-      sha256 = "1p54rnyicimi2slhz47s16m6c2khy5bda0f19k5i5kwib042g0dh";
+      rev = "d2afbb28ed1b6de119fe7c1d4fe248da0819b4d8";
+      sha256 = "0gmjs4ms7nxmfd4wyw082mqqgj82309x75yi8rxvnaqyksn70bas";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -1495,12 +1495,12 @@ final: prev:
 
   cloak-nvim = buildVimPlugin {
     pname = "cloak.nvim";
-    version = "2024-02-02";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "laytan";
       repo = "cloak.nvim";
-      rev = "9abe4e986e924fc54a972c1b0ff52b65a0622624";
-      sha256 = "0jnhxxq2c7bprkicqxqi17fybfgpzv0z1jxrqm346hmnmm8amgvw";
+      rev = "462e84e1659d984196d09f7d16690b19b9aee804";
+      sha256 = "1gg29wngh1cgxpmjvhzg9dx062xklbz87961p81jbpx4m1xsaxwi";
     };
     meta.homepage = "https://github.com/laytan/cloak.nvim/";
   };
@@ -1517,6 +1517,18 @@ final: prev:
     meta.homepage = "https://github.com/asheq/close-buffers.vim/";
   };
 
+  cmake-tools-nvim = buildVimPlugin {
+    pname = "cmake-tools.nvim";
+    version = "2024-02-02";
+    src = fetchFromGitHub {
+      owner = "Civitasv";
+      repo = "cmake-tools.nvim";
+      rev = "055d7bb37d5c4038ce1e400656b6504602934ce7";
+      sha256 = "sha256-e16I51FbT0itLkyornd9RjShXmLxUzPrygFYVc66xoY=";
+    };
+    meta.homepage = "https://github.com/Civitasv/cmake-tools.nvim/";
+  };
+
   cmd-parser-nvim = buildVimPlugin {
     pname = "cmd-parser.nvim";
     version = "2022-02-23";
@@ -1663,12 +1675,12 @@ final: prev:
 
   cmp-dictionary = buildVimPlugin {
     pname = "cmp-dictionary";
-    version = "2024-02-02";
+    version = "2024-03-03";
     src = fetchFromGitHub {
       owner = "uga-rosa";
       repo = "cmp-dictionary";
-      rev = "afa18f35a818af7bcb65b05c183a6777ede6c0ad";
-      sha256 = "1nz0ywakqvvscrvdzk86w8f29s8mrcyln2jqgh24kvic5zwb66xj";
+      rev = "3dab73d34a889eafdb57c666c3c2076b4c3e126b";
+      sha256 = "08nyng2ykxnapih97m1wsj1fskjz7yb09g2mb3428l7zbvjjk3nq";
     };
     meta.homepage = "https://github.com/uga-rosa/cmp-dictionary/";
   };
@@ -1687,12 +1699,12 @@ final: prev:
 
   cmp-emoji = buildVimPlugin {
     pname = "cmp-emoji";
-    version = "2021-09-28";
+    version = "2024-03-05";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-emoji";
-      rev = "19075c36d5820253d32e2478b6aaf3734aeaafa0";
-      sha256 = "00jrwg491q6nx3q36krarxfpchg3fgdsz7l02ag7cm0x9hv4dknd";
+      rev = "0acd702358230abeb6576769f7116e766bca28a0";
+      sha256 = "1i9ak17cair797fijxd61lnjqy3qykpscah7303arvkxdr8w1zik";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-emoji/";
   };
@@ -2179,12 +2191,12 @@ final: prev:
 
   coc-nvim = buildVimPlugin {
     pname = "coc.nvim";
-    version = "2024-02-28";
+    version = "2024-03-11";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "0ce9a96b95e5d88181b0bed26f40922d1bf65b90";
-      sha256 = "1b227bqjy196srr0djkrjhil2y74vvcrz2qkg04fy2i5h87rd2ip";
+      rev = "a0f3e2c1b13157a25063b32b49debf46cc96a873";
+      sha256 = "1lqd93663nrcbwkhr3a1yyh22zamv38zf3nazxsq36aix4h0v616";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -2203,24 +2215,24 @@ final: prev:
 
   codeium-nvim = buildVimPlugin {
     pname = "codeium.nvim";
-    version = "2024-02-14";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "Exafunction";
       repo = "codeium.nvim";
-      rev = "cd5913ff5481229b15186293d1d46dd9500789f9";
-      sha256 = "1lsf60aaxzc0w0sgvb8pghrx6hwfh57jx9xaj6g7rhbpxw9l05cx";
+      rev = "73ba2a3a41484437ff8a45ca1e796fa9d6fa1153";
+      sha256 = "1lcliki38mamk722klb3a0an2bsblx9rsgwixa9f0j7naril4z9z";
     };
     meta.homepage = "https://github.com/Exafunction/codeium.nvim/";
   };
 
   codeium-vim = buildVimPlugin {
     pname = "codeium.vim";
-    version = "2024-02-27";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "Exafunction";
       repo = "codeium.vim";
-      rev = "f2d90dedb45e35f7563d2ce3a31c6928f79de678";
-      sha256 = "17884drb1mqgbb1pccczpjal623jnyb8z33wrrzgajg3k4z8i2b2";
+      rev = "bef9cbaa5c19ab85d8048f364bfc0ac8c7ab335d";
+      sha256 = "13b4nq2z1pw6v0rbmjkxynjs6w4b859hhcnhnsl2r0imhkgss4l5";
     };
     meta.homepage = "https://github.com/Exafunction/codeium.vim/";
   };
@@ -2251,12 +2263,12 @@ final: prev:
 
   colorbuddy-nvim = buildVimPlugin {
     pname = "colorbuddy.nvim";
-    version = "2022-02-28";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "tjdevries";
       repo = "colorbuddy.nvim";
-      rev = "cdb5b0654d3cafe61d2a845e15b2b4b0e78e752a";
-      sha256 = "1gjwgh77xgpdpzlz51c7gxnbpqyzm4hy9baspgjf9j5ny4yisn03";
+      rev = "e498b2b49d9ad0c3fb8168a02b237b689dcd4051";
+      sha256 = "1dxxxdbml12p8awcp78vxj1i2jbhvcdn4m4lnqczxb7qxwpb6g2r";
     };
     meta.homepage = "https://github.com/tjdevries/colorbuddy.nvim/";
   };
@@ -2455,12 +2467,12 @@ final: prev:
 
   conform-nvim = buildVimPlugin {
     pname = "conform.nvim";
-    version = "2024-03-01";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "conform.nvim";
-      rev = "c36fc6492be27108395443a67bcbd2b3280f29c5";
-      sha256 = "0vd9qj4ga3l21v84v3a9bj1qs4mkw7dbmslygs9ibchihv2kw98j";
+      rev = "67ee2258e08ccb91345d52f62484b657feccef25";
+      sha256 = "0d76rrjbmi3rmvm27jh61zs35z9axc5l6yacr3yrrnfi0kahi0fy";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/conform.nvim/";
@@ -2468,12 +2480,12 @@ final: prev:
 
   conjure = buildVimPlugin {
     pname = "conjure";
-    version = "2024-02-02";
+    version = "2024-03-11";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "conjure";
-      rev = "f50d4db821489f66ff93afe58155eef42c273a5d";
-      sha256 = "1q0in2yay28887vjirs15dcbx9p29rqcwg6fzfg01b8vs7nq63gw";
+      rev = "dfb9f75010a181c090ab905b2a2b4180aea20f15";
+      sha256 = "0swwnb5sr3j5yx77f94ymdc1jpv1nyi0qj9l402qzz5dc4pi2mp6";
     };
     meta.homepage = "https://github.com/Olical/conjure/";
   };
@@ -2528,24 +2540,24 @@ final: prev:
 
   copilot-vim = buildVimPlugin {
     pname = "copilot.vim";
-    version = "2024-03-01";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "github";
       repo = "copilot.vim";
-      rev = "0754163b9d070d4a99d60ecb45f060bc5f97e281";
-      sha256 = "0qslfc64x16a8jwasva08xa8x33lq0q1vkx7mhk29a94r7l6rdjd";
+      rev = "9484e35cf222e9360e05450622a884f95c662c4c";
+      sha256 = "1c7dabbyk5124xw5k5b29h9nmv04ix6p3j3p7qns7ssqinvfphmm";
     };
     meta.homepage = "https://github.com/github/copilot.vim/";
   };
 
   coq-artifacts = buildVimPlugin {
     pname = "coq.artifacts";
-    version = "2024-02-18";
+    version = "2024-03-01";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq.artifacts";
-      rev = "1b7915035e1cc6b40d27c69051fd81e8fe6b62db";
-      sha256 = "076n62rnr9gahw1n8j94xgrab5q1d09sf98p4nhh32gc1z4w2hd1";
+      rev = "9c5067a471322c6bb866545e88e5b28c82511865";
+      sha256 = "0c0l259qyywck43hgs09qznrw1wm72idprlfk4ddcdj8g99vny84";
     };
     meta.homepage = "https://github.com/ms-jpq/coq.artifacts/";
   };
@@ -2576,12 +2588,12 @@ final: prev:
 
   coq_nvim = buildVimPlugin {
     pname = "coq_nvim";
-    version = "2024-03-01";
+    version = "2024-03-11";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq_nvim";
-      rev = "2f6c60ffbcdb7f61cb9c88364eb4f3886f3a3813";
-      sha256 = "0r2w77psva2imp7ixrc00z2ia38bnihgz7dx0qlfd38q2lkz8qgi";
+      rev = "a290446adad540d780e87d7fa8ef86bb2fdc2951";
+      sha256 = "1z8icxpxv03yiigav70r5v463pj5n5v5lq6czwpq2x51pxkaznym";
     };
     meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
   };
@@ -2600,24 +2612,24 @@ final: prev:
 
   cpsm = buildVimPlugin {
     pname = "cpsm";
-    version = "2021-07-25";
+    version = "2024-03-06";
     src = fetchFromGitHub {
       owner = "nixprime";
       repo = "cpsm";
-      rev = "814961aef3eba4412e5e63342575c46f87eaead4";
-      sha256 = "13qp6qaghaw355wjwmmd8d7cakb3ry9ijpnz06mj8yza50w7p3fx";
+      rev = "1a5fc1b6169bb80c29b0b986130c4f3f1a9ed82e";
+      sha256 = "0gsf2xaa9nw0yhlnhvllz03kbdbfjvazdgb753rblkxrqnbjjs6w";
     };
     meta.homepage = "https://github.com/nixprime/cpsm/";
   };
 
   crates-nvim = buildVimPlugin {
     pname = "crates.nvim";
-    version = "2024-02-04";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "saecki";
       repo = "crates.nvim";
-      rev = "ec2b04a380c9f3a8e6ca38c230e4990d71978143";
-      sha256 = "0x3zlvwz3w69sdfp0hqs3ra83mgdf72nmffkpm56f56hnld7r1f1";
+      rev = "b4f4987ccdb1cc3899ee541ef4375c73c48c4570";
+      sha256 = "0r9l018sfymmbg7lc31bp4q2aqdljaqini5s14mg3r7lwcg15z61";
     };
     meta.homepage = "https://github.com/saecki/crates.nvim/";
   };
@@ -2708,12 +2720,12 @@ final: prev:
 
   cyberdream-nvim = buildVimPlugin {
     pname = "cyberdream.nvim";
-    version = "2024-02-15";
+    version = "2024-03-09";
     src = fetchFromGitHub {
       owner = "scottmckendry";
       repo = "cyberdream.nvim";
-      rev = "7b83422a9318e036ac21df6a63c0ab1ca745e54f";
-      sha256 = "0dhp2726drdvx63vqcm3kmlk6bi7mwjr40fgwz9zspj8jg8gj40n";
+      rev = "7ad27cf30a2aeeaefb8e4d25a9ae7c06bd4ce299";
+      sha256 = "02nqql0bw4d3izvxi77ml7akkhi6ihgs3ra998zb4c5kf1mcf5nw";
     };
     meta.homepage = "https://github.com/scottmckendry/cyberdream.nvim/";
   };
@@ -2756,24 +2768,24 @@ final: prev:
 
   debugprint-nvim = buildVimPlugin {
     pname = "debugprint.nvim";
-    version = "2024-02-22";
+    version = "2024-03-05";
     src = fetchFromGitHub {
       owner = "andrewferrier";
       repo = "debugprint.nvim";
-      rev = "4432f917be7e0c95a21af17b31b216fba60fb131";
-      sha256 = "0q21kdch8ksb7i94160w5fmja30yvz6rpxkpls0g3ijaafxyk6w3";
+      rev = "39d21298151dda8bfab537ae7741528cffe07aa3";
+      sha256 = "0ah84grvp1j8nvrv5rj6l63vw5d0d6678dylv91dmd78rfdwna7g";
     };
     meta.homepage = "https://github.com/andrewferrier/debugprint.nvim/";
   };
 
   deepwhite-nvim = buildVimPlugin {
     pname = "deepwhite.nvim";
-    version = "2024-01-23";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "Verf";
       repo = "deepwhite.nvim";
-      rev = "7c8d12505dafac651f14d4eaa21623a7658871ab";
-      sha256 = "1hz07976ka8q45sgk3ggmb0gk9qz463i8narda3hcws302h8nw8k";
+      rev = "fe78337404c36f48ef0824ad1bb43de3bb4211bc";
+      sha256 = "0jxkjm83fgzjhgid57aj92775gdcy6ag280h8img2zjfnq9kgh27";
     };
     meta.homepage = "https://github.com/Verf/deepwhite.nvim/";
   };
@@ -2804,12 +2816,12 @@ final: prev:
 
   defx-nvim = buildVimPlugin {
     pname = "defx.nvim";
-    version = "2023-12-28";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "defx.nvim";
-      rev = "492096c69e90fcb0242db877269c304bd0cded19";
-      sha256 = "0zax6lbmvvphmga12kcwksgdbxrpb526sqz1li7mvhqsi6vyi366";
+      rev = "1b17dc334294ef0da74ffa5a05d425ffcaf39a3f";
+      sha256 = "1wfrff59kirvbsdyrgavcv17fmwzvi6iszzsxnncgfnshf184mnb";
     };
     meta.homepage = "https://github.com/Shougo/defx.nvim/";
   };
@@ -2852,12 +2864,12 @@ final: prev:
 
   denite-nvim = buildVimPlugin {
     pname = "denite.nvim";
-    version = "2023-12-28";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "83e2a4f29dae330eabd4dcc63359469106880ce8";
-      sha256 = "1a9r44z2fiwj9vj7ys8w0dvqikza45s9qmdzgr1ndnnb3azr2mki";
+      rev = "055dd686c274a293dc4b7365be07c159148c31dd";
+      sha256 = "0rxpj0xhd188xlpm0h557ljdv3zhwxmwm5mf7fsjxcka3m7iy1n1";
     };
     meta.homepage = "https://github.com/Shougo/denite.nvim/";
   };
@@ -2876,12 +2888,12 @@ final: prev:
 
   deol-nvim = buildVimPlugin {
     pname = "deol.nvim";
-    version = "2023-12-09";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "0fcdadc7636ef82636e972c4c651fb77e3cf1954";
-      sha256 = "14nhfxaxd771rh784acs1s21cvlx8877wsb9qmyk821sljb4hcwn";
+      rev = "8ac4d600ebc51565cb1fa5c045e8e71e2eeaa009";
+      sha256 = "1pak5m9aicnqw8akc2zbh3aqmq0rl5j7m4xidh2h5hm5xnjidp9x";
     };
     meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
@@ -3094,12 +3106,12 @@ final: prev:
 
   deoplete-nvim = buildVimPlugin {
     pname = "deoplete.nvim";
-    version = "2023-12-28";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "00a179968eb5f53408dafc22567c1e2933c01079";
-      sha256 = "0xa3gvfh7yd932fk641h3jp2mq52pcpi5yvgcdybyx7znfdd84sr";
+      rev = "43d7457059d65335ee0ceaa5505befbdd78ad705";
+      sha256 = "1x41fdynyb68r6lw62244avic5br6bw28bgz7n2rfdlz9ayimbz1";
     };
     meta.homepage = "https://github.com/Shougo/deoplete.nvim/";
   };
@@ -3226,12 +3238,12 @@ final: prev:
 
   doom-one-nvim = buildVimPlugin {
     pname = "doom-one.nvim";
-    version = "2024-02-25";
+    version = "2024-03-07";
     src = fetchFromGitHub {
       owner = "NTBBloodbath";
       repo = "doom-one.nvim";
-      rev = "84d7a3ab8a0458649f10b328a3db7415b0d911d4";
-      sha256 = "1szsvx94b30a3p2rpj5idk2yjfc6m2avnclh68yqd3rckrk2nzsa";
+      rev = "76595eec15896a5da7f4e39ceeded6ffb0f4dc38";
+      sha256 = "0ir882521yc9ir9n8kqpra9nyc232f4gnsywvzjkbm98qdrpjvy2";
     };
     meta.homepage = "https://github.com/NTBBloodbath/doom-one.nvim/";
   };
@@ -3250,24 +3262,24 @@ final: prev:
 
   dressing-nvim = buildVimPlugin {
     pname = "dressing.nvim";
-    version = "2024-01-29";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "dressing.nvim";
-      rev = "6f212262061a2120e42da0d1e87326e8a41c0478";
-      sha256 = "1xm7jbhgs3raaqc10lg0czayii36di6cx47b527qc67p2qp03q33";
+      rev = "18e5beb3845f085b6a33c24112b37988f3f93c06";
+      sha256 = "0pvkm9s0lg0vlk7qbn1sjf6sis3i3xba1824xml631bg6hahw37l";
     };
     meta.homepage = "https://github.com/stevearc/dressing.nvim/";
   };
 
   dropbar-nvim = buildVimPlugin {
     pname = "dropbar.nvim";
-    version = "2024-02-24";
+    version = "2024-03-08";
     src = fetchFromGitHub {
       owner = "Bekaboo";
       repo = "dropbar.nvim";
-      rev = "a133a7deed7431496d8e87e8e4cc9c09a9d78945";
-      sha256 = "1ai1fhwlrvr0p8brqapfrdd7rlkarwf78f6plannydd58zlc4j7p";
+      rev = "f1034cfe852cf62a0ebb12ae583f1477ea07e060";
+      sha256 = "1f9fd6m31xjkf6rhi05p0cxdx7xp3lpfg13yasaaabasxqwz92sz";
     };
     meta.homepage = "https://github.com/Bekaboo/dropbar.nvim/";
   };
@@ -3286,12 +3298,12 @@ final: prev:
 
   edge = buildVimPlugin {
     pname = "edge";
-    version = "2024-01-23";
+    version = "2024-03-02";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "edge";
-      rev = "7506891a93dd0954d59b556ae5bb4c85403150ed";
-      sha256 = "1228zzwx0vghmhf2fma6fdj8pcw8kslw6kw14kwv5b1sfxg7rap3";
+      rev = "86af25173e7e0d43c70f6621305c2b816635c4bf";
+      sha256 = "1xdkz51z7cxy55j7s0hvv3jyk61nwn4d21lf3y2yf5z87wnzl604";
     };
     meta.homepage = "https://github.com/sainnhe/edge/";
   };
@@ -3359,12 +3371,12 @@ final: prev:
 
   elixir-tools-nvim = buildVimPlugin {
     pname = "elixir-tools.nvim";
-    version = "2024-02-27";
+    version = "2024-03-11";
     src = fetchFromGitHub {
       owner = "elixir-tools";
       repo = "elixir-tools.nvim";
-      rev = "0de83ff15ab76608ed4020676193bdf5a9d8b9b7";
-      sha256 = "052svi6px486jdgvga8mh5z1djx8fd73jf9j9k1hp7383x9bq56b";
+      rev = "4d003f4b41ab9b4f8b569104fa7818f048ed4e25";
+      sha256 = "08qz9azq1m4rfw8s2sd6hhrds5zx0vv2azyjnwyk05q2v95xwl55";
     };
     meta.homepage = "https://github.com/elixir-tools/elixir-tools.nvim/";
   };
@@ -3444,24 +3456,24 @@ final: prev:
 
   everforest = buildVimPlugin {
     pname = "everforest";
-    version = "2024-02-10";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "everforest";
-      rev = "4ce8ea3588265dd7d82113d3a937f53c59685164";
-      sha256 = "0p8jp04dx0y3l6ll163m2pvanhysfakra2knmp9mp9rmzyyqk8xp";
+      rev = "4c7fef2eea3ad22958927d6d1b261b4f2c2c384e";
+      sha256 = "0dbs7y4xdlgaqzbrn0ang9yshma3l3i4wd0ffmcczh4sxbsis5b6";
     };
     meta.homepage = "https://github.com/sainnhe/everforest/";
   };
 
   executor-nvim = buildVimPlugin {
     pname = "executor.nvim";
-    version = "2023-11-25";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "google";
       repo = "executor.nvim";
-      rev = "2af6072829562922e047ed644fc83749c4b10d92";
-      sha256 = "0v2bk4nyrkc7qkrh6sb16dif382b26gjix83sfnyk973g07v43in";
+      rev = "f6c3109f714d89641fb939b42044b2136f8520b7";
+      sha256 = "17j4x4wx50mhhafmp1c5rn644vsnx2473g9i32gg9hmzf27phcdn";
     };
     meta.homepage = "https://github.com/google/executor.nvim/";
   };
@@ -3552,12 +3564,12 @@ final: prev:
 
   fern-vim = buildVimPlugin {
     pname = "fern.vim";
-    version = "2023-12-04";
+    version = "2024-03-16";
     src = fetchFromGitHub {
       owner = "lambdalisue";
       repo = "fern.vim";
-      rev = "56f8e4c79da01eecb0f7f3803c051cd23c803b35";
-      sha256 = "13bfp6qgvxx4xbngnpssxv8z1w2f63jalhj69haazaca8yhr4599";
+      rev = "00faa2cd9a0efad9d23f362141f73c786de3389b";
+      sha256 = "0g3akjn2sz9hs9sq138d9yj30g3lynbca79yhk9vfxbs9s1cgzdl";
     };
     meta.homepage = "https://github.com/lambdalisue/fern.vim/";
   };
@@ -3612,12 +3624,12 @@ final: prev:
 
   firenvim = buildVimPlugin {
     pname = "firenvim";
-    version = "2024-01-23";
+    version = "2024-03-05";
     src = fetchFromGitHub {
       owner = "glacambre";
       repo = "firenvim";
-      rev = "f2dd6d3bcf3309a7dd30c79b3b3c03ab55cea6e2";
-      sha256 = "0d1c3km53v1g8c2aa8fqrs0yhrq80mw1wcfglxkyppg81q91qfs6";
+      rev = "3363c140dca2ef0b89e2be0317917f077d752cd7";
+      sha256 = "1c9k848y320fkn4mbsxb3x7i5dfwms1waq12yig1fn9mspw83vqy";
     };
     meta.homepage = "https://github.com/glacambre/firenvim/";
   };
@@ -3889,24 +3901,24 @@ final: prev:
 
   fzf-lua = buildVimPlugin {
     pname = "fzf-lua";
-    version = "2024-02-28";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "ibhagwan";
       repo = "fzf-lua";
-      rev = "d68d1cfde9bf82061dfdfe35b83fb8636e03766d";
-      sha256 = "0mvj6pwlas6gjjfzvh5qhhnkz2i8b90l21qxsbpjyy0p9jp046vv";
+      rev = "a1d6608b6ba5309f9abda776398c97fe8ed26c11";
+      sha256 = "1njnbjyi8n4sgs3zpl1hcdi237crp9x5h52fxwnv3j8nxnbai5kj";
     };
     meta.homepage = "https://github.com/ibhagwan/fzf-lua/";
   };
 
   fzf-vim = buildVimPlugin {
     pname = "fzf.vim";
-    version = "2024-02-15";
+    version = "2024-03-11";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "8ea9574b3ebdc44fbe3dc6381a13f9ce0c290e2f";
-      sha256 = "14b8rwmhv47ls8ncr8zhf7zb0ziq5ccgcii9fwn71iqrqhzs0m0b";
+      rev = "e69f2dcdad44e7eafe764969ed7281d7290db18f";
+      sha256 = "0c9p6qyq4wfvvkmgn77nkppwfqnr1si2xzcwlgmmp1vvfjdmam7m";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
@@ -4057,12 +4069,12 @@ final: prev:
 
   gitsigns-nvim = buildNeovimPlugin {
     pname = "gitsigns.nvim";
-    version = "2024-01-27";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "2c2463dbd82eddd7dbab881c3a62cfbfbe3c67ae";
-      sha256 = "0j9q39pks1lvp9zd97lc1frb2fq0irjizza34kp381gg6smxmc28";
+      rev = "4e348641b8206c3b8d23080999e3ddbe4ca90efc";
+      sha256 = "0apzslpij9sq7h0rpilvgrn5naqiwrz69x5g5n7m82pj9pz0d2m5";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -4117,12 +4129,12 @@ final: prev:
 
   go-nvim = buildVimPlugin {
     pname = "go.nvim";
-    version = "2024-03-01";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "go.nvim";
-      rev = "8efd0c89f2305a6840a99d7823c40cc3acea91d6";
-      sha256 = "087ik3zkw46czxvh8wbg0pci8p9lxb836j922gnvlwm845jxpkif";
+      rev = "9ac3e6faa32d01479973f4ca368d00b7ae328646";
+      sha256 = "0rllids06cgfb6hwgacqss7mnmvbrna2h0qwic0mslhg1m8wkq96";
     };
     meta.homepage = "https://github.com/ray-x/go.nvim/";
   };
@@ -4331,6 +4343,18 @@ final: prev:
     meta.homepage = "https://github.com/junegunn/gv.vim/";
   };
 
+  hardhat-nvim = buildVimPlugin {
+    pname = "hardhat.nvim";
+    version = "2024-03-14";
+    src = fetchFromGitHub {
+      owner = "TheSnakeWitcher";
+      repo = "hardhat.nvim";
+      rev = "fd61b2623f72751d661d9e2a22beeac2d561dd1d";
+      sha256 = "0kkzcqwzi5lig6kv9zp4sdncnx1qnwlkvw0lnsckq4xnp2x1dd92";
+    };
+    meta.homepage = "https://github.com/TheSnakeWitcher/hardhat.nvim/";
+  };
+
   hardtime-nvim = buildVimPlugin {
     pname = "hardtime.nvim";
     version = "2024-02-03";
@@ -4380,24 +4404,24 @@ final: prev:
 
   haskell-snippets-nvim = buildVimPlugin {
     pname = "haskell-snippets.nvim";
-    version = "2024-02-05";
+    version = "2024-03-11";
     src = fetchFromGitHub {
       owner = "mrcjkb";
       repo = "haskell-snippets.nvim";
-      rev = "0adc2b0956c2de107bbf3b0329b5b7450a1d07e4";
-      sha256 = "1mpj9vpisd0g0w5qg0ck5lg4birxwlc9dw9haqcsynjpfk3za8q3";
+      rev = "66a7525706b03a730accab3f706d3f0f8078569d";
+      sha256 = "0nh1f1ajd25lrw3y7pp013586gx6vklqfqai8z6lgk7dfzm9cpcj";
     };
     meta.homepage = "https://github.com/mrcjkb/haskell-snippets.nvim/";
   };
 
   haskell-tools-nvim = buildNeovimPlugin {
     pname = "haskell-tools.nvim";
-    version = "2024-02-25";
+    version = "2024-03-11";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "haskell-tools.nvim";
-      rev = "0f95fb809b2cfa28f7540ba874356d12426b8d29";
-      sha256 = "1qysrm4y83x81f1iymjqfs9qqgmiazgsn4qm6gi8nh2adiwsijmb";
+      rev = "d8b57f073d844380a7f18c65227e5ce7cb6bc325";
+      sha256 = "02w9982qimq4xi79l29n3jky9pgqrfisfff4fxv485gz5hnl65hj";
     };
     meta.homepage = "https://github.com/MrcJkb/haskell-tools.nvim/";
   };
@@ -4464,12 +4488,12 @@ final: prev:
 
   hex-nvim = buildVimPlugin {
     pname = "hex.nvim";
-    version = "2023-09-09";
+    version = "2024-03-03";
     src = fetchFromGitHub {
       owner = "RaafatTurki";
       repo = "hex.nvim";
-      rev = "dc51e5d67fc994380b7c7a518b6b625cde4b3062";
-      sha256 = "13j27zc18chlgv9w7ml7j3lxbl7lkcqvvwys05hw0dbhik13bcyh";
+      rev = "cbffd2ce4b8be089360e3c95d5909cd511d8840c";
+      sha256 = "0dvhgdab3f2w7irh164qglj44h4hqba15yq223ckhka7l9r8nggq";
     };
     meta.homepage = "https://github.com/RaafatTurki/hex.nvim/";
   };
@@ -4523,12 +4547,12 @@ final: prev:
 
   hmts-nvim = buildVimPlugin {
     pname = "hmts.nvim";
-    version = "2024-02-02";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "calops";
       repo = "hmts.nvim";
-      rev = "ba1239972a1f56b94252d4f85a43e777ac419662";
-      sha256 = "1n67k7kl2xz3zi75h1qb524nxlgvrgwr4ywsykqwz1k7dlkxh3ck";
+      rev = "473d74cf54da8f51aaa9993ec3e6bfae278eb47b";
+      sha256 = "14a6k53b002zvz336s6q5yznvyjfdn9y2qdnickhz2cwkrgr1hvf";
     };
     meta.homepage = "https://github.com/calops/hmts.nvim/";
   };
@@ -4583,12 +4607,12 @@ final: prev:
 
   hover-nvim = buildVimPlugin {
     pname = "hover.nvim";
-    version = "2024-01-26";
+    version = "2024-03-07";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "hover.nvim";
-      rev = "4d04667cf3d6b22379e02ccef6a2fdc6e8837d56";
-      sha256 = "066c7gjkgp9gj0kcg7vjik3sgzbfrbjm2j6fwcssh1vy9lgx12wk";
+      rev = "1084aa544477cf878d466cacaec0d8d4692c7360";
+      sha256 = "0f80nhm6lfa6nph6a4w7748ggvmwg2wh29nwv1sniakjvnk0vr6b";
     };
     meta.homepage = "https://github.com/lewis6991/hover.nvim/";
   };
@@ -4739,12 +4763,12 @@ final: prev:
 
   indent-blankline-nvim = buildVimPlugin {
     pname = "indent-blankline.nvim";
-    version = "2024-02-13";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "lukas-reineke";
       repo = "indent-blankline.nvim";
-      rev = "821a7acd88587d966f7e464b0b3031dfe7f5680c";
-      sha256 = "0pc9irbfqvy55ymdyd60a69y3vvi1nqvs4j9akg624pvnda10fv7";
+      rev = "3d08501caef2329aba5121b753e903904088f7e6";
+      sha256 = "09p7y9d08sb1fqpy84yga39cf9misir6wx3rby67v2pl3i01k7sy";
     };
     meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/";
   };
@@ -5088,24 +5112,24 @@ final: prev:
 
   lazy-lsp-nvim = buildVimPlugin {
     pname = "lazy-lsp.nvim";
-    version = "2024-02-13";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "dundalek";
       repo = "lazy-lsp.nvim";
-      rev = "cdfeaf4f6c1714990180453723921002374a30de";
-      sha256 = "12y750mwy5awndapvsjsxqk77samyvjsb156fc8ggpwmd067jlq8";
+      rev = "d60bc498c9d1d890e8aa4257c784f5103a2d1f13";
+      sha256 = "1k484kfwznq93fk7sqin8767knjfv4anb7vig7ihambvdcd1l74b";
     };
     meta.homepage = "https://github.com/dundalek/lazy-lsp.nvim/";
   };
 
   lazy-nvim = buildVimPlugin {
     pname = "lazy.nvim";
-    version = "2024-01-23";
+    version = "2024-03-07";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "lazy.nvim";
-      rev = "aedcd79811d491b60d0a6577a9c1701063c2a609";
-      sha256 = "1lsxb684pdsn625krshxr65lyqb5aa07ryqb5yif8p19766g01pj";
+      rev = "83493db50a434a4c5c648faf41e2ead80f96e478";
+      sha256 = "0p9ssd6ja90a90vckhpr4xbf0sfa62yrmmc30jbxln9wxqaylcaw";
     };
     meta.homepage = "https://github.com/folke/lazy.nvim/";
   };
@@ -5124,12 +5148,12 @@ final: prev:
 
   lean-nvim = buildVimPlugin {
     pname = "lean.nvim";
-    version = "2024-02-25";
+    version = "2024-03-04";
     src = fetchFromGitHub {
       owner = "Julian";
       repo = "lean.nvim";
-      rev = "fbc0dc43643497587dac79f666565111ec71f7f8";
-      sha256 = "17fvhls0d9apk2wxjj1k8jvy1cvgwqifigzj7rabqq03ayhzv59m";
+      rev = "2dc102db03e83afc473c80a7d962974841e13b54";
+      sha256 = "0nwb71f49838fzgpgq0y5q9n9yhg2k7ga4rd2dib2cd3msccb09g";
     };
     meta.homepage = "https://github.com/Julian/lean.nvim/";
   };
@@ -5160,24 +5184,24 @@ final: prev:
 
   leap-nvim = buildVimPlugin {
     pname = "leap.nvim";
-    version = "2024-02-29";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "leap.nvim";
-      rev = "d74388c49da2ef51bcae0f386f1c699c8394ce6e";
-      sha256 = "0yl1980bcdvdlqgaxa9h6y5skrdhv0hcxday4rlgvj8nj6swbha6";
+      rev = "812604b7b100e555062fa41c82bfd9c6c776d856";
+      sha256 = "0llfdja9ppkmfak9hj7v5j0raijcqwbj9jlqkk312x65040wda87";
     };
     meta.homepage = "https://github.com/ggandor/leap.nvim/";
   };
 
   legendary-nvim = buildVimPlugin {
     pname = "legendary.nvim";
-    version = "2024-02-02";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "mrjones2014";
       repo = "legendary.nvim";
-      rev = "8277e7ffbde3d32cc582e81b5d109f4071bbbc4b";
-      sha256 = "1frbi1wvhmhgr4cvlxh419fjww98h8b0h1zpcbjbvbv17iakchj9";
+      rev = "2f7192410e5a20981d5b778f3390896f016897f9";
+      sha256 = "148h3cbsnh1fs02liiqxzw4iy3wk1lln0k4m3w1vxz5v3h27yscn";
     };
     meta.homepage = "https://github.com/mrjones2014/legendary.nvim/";
   };
@@ -5352,12 +5376,12 @@ final: prev:
 
   lir-nvim = buildVimPlugin {
     pname = "lir.nvim";
-    version = "2023-07-12";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "tamago324";
       repo = "lir.nvim";
-      rev = "969e95bd07ec315b5efc53af69c881278c2b74fa";
-      sha256 = "1rrmsib2frr4x00kl07v9acva8wa75fbpvpwq8yvdyjy1zgmir7q";
+      rev = "7a9d45de08fecd23a04aca1f96688d744830029e";
+      sha256 = "17pvzsk1w50bdl9ddrgylck7sam41vvz4x4pm5jkxc4bs7vvffd8";
     };
     meta.homepage = "https://github.com/tamago324/lir.nvim/";
   };
@@ -5508,12 +5532,12 @@ final: prev:
 
   lsp-zero-nvim = buildVimPlugin {
     pname = "lsp-zero.nvim";
-    version = "2024-02-27";
+    version = "2024-03-09";
     src = fetchFromGitHub {
       owner = "VonHeikemen";
       repo = "lsp-zero.nvim";
-      rev = "009ace7a0ca360d9299ff7eb33364b5c16556561";
-      sha256 = "0550ld8q8wwskf6s02azdz3q8s1j8vmdzwar1v72fdmawb97hchz";
+      rev = "14c9164413df4be17a5a0ca9e01a376691cbcaef";
+      sha256 = "0j14qznpwi80hildcd0gwmn2qyq3cq2y320g812c0g4lp6w30m83";
     };
     meta.homepage = "https://github.com/VonHeikemen/lsp-zero.nvim/";
   };
@@ -5532,23 +5556,23 @@ final: prev:
 
   lsp_lines-nvim = buildVimPlugin {
     pname = "lsp_lines.nvim";
-    version = "2023-10-29";
+    version = "2024-03-09";
     src = fetchgit {
       url = "https://git.sr.ht/~whynothugo/lsp_lines.nvim";
-      rev = "cf2306dd332e34a3e91075b40bdd4f6db824b2ee";
-      sha256 = "18g9fhwr2mrjcns36h6x1xgy8q84i80566474zxsd6z7ckd8qdfw";
+      rev = "6f3defec73f7c87939e800e9afa5d0571b19b401";
+      sha256 = "1bkvghdj53wak8c0s293vzl788z96cz2p5c61qh2bdzh6qpn55d2";
     };
     meta.homepage = "https://git.sr.ht/~whynothugo/lsp_lines.nvim";
   };
 
   lsp_signature-nvim = buildVimPlugin {
     pname = "lsp_signature.nvim";
-    version = "2023-11-28";
+    version = "2024-03-10";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "lsp_signature.nvim";
-      rev = "fed2c8389c148ff1dfdcdca63c2b48d08a50dea0";
-      sha256 = "18cwrdww4yxl597d95yixhwxlavmkl37nslpida9cincxrz16rz0";
+      rev = "1b32f64549478efd8f9e0d00517db84cf41aa0ea";
+      sha256 = "027fhgpxngagn5khswz4h7kxp9wvyfx2ql9vpxbvvvckwdhy6ql8";
     };
     meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/";
   };
@@ -5579,12 +5603,12 @@ final: prev:
 
   lspsaga-nvim = buildVimPlugin {
     pname = "lspsaga.nvim";
-    version = "2024-02-17";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "lspsaga.nvim";
-      rev = "b1b140aa20a0cf353cd3e282870429b48b30a169";
-      sha256 = "1psgxp5ynnbnks8337ralc0whw79d0l75n9q2sb62845dgs8i00f";
+      rev = "74b13f63417014739ac09576f7196bec301fa2ac";
+      sha256 = "0gmq17w6fn4zvkqi7q1ixdsk54w5aswl8w0s5rrs12qk852fymra";
     };
     meta.homepage = "https://github.com/nvimdev/lspsaga.nvim/";
   };
@@ -5615,24 +5639,24 @@ final: prev:
 
   lualine-nvim = buildVimPlugin {
     pname = "lualine.nvim";
-    version = "2024-01-25";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "nvim-lualine";
       repo = "lualine.nvim";
-      rev = "7d131a8d3ba5016229e8a1d08bf8782acea98852";
-      sha256 = "00ns525n4a3yqsnrsfbffj38nhh03s39g0dffjq6r71air2irhrc";
+      rev = "af4c3cf17206810880d2a93562e0a4c0d901c684";
+      sha256 = "0nxz4gw4lycajmi22mnrhpzrrcrszgmy9xi9a4n9k6ps716icq25";
     };
     meta.homepage = "https://github.com/nvim-lualine/lualine.nvim/";
   };
 
   luasnip = buildNeovimPlugin {
     pname = "luasnip";
-    version = "2024-02-15";
+    version = "2024-03-03";
     src = fetchFromGitHub {
       owner = "l3mon4d3";
       repo = "luasnip";
-      rev = "f3b3d3446bcbfa62d638b1903ff00a78b2b730a1";
-      sha256 = "17q0z9jm9n3c4jj27xxd0nk3vflwnnwybkf47rxvpx95d3wkr0gi";
+      rev = "a7a4b4682c4b3e2ba82b82a4e6e5f5a0e79dec32";
+      sha256 = "1v8ya2vgff4c4k8sfyy2wn9spwwirad56p0jb3k3kiz4j2vf4spv";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/l3mon4d3/luasnip/";
@@ -5736,12 +5760,12 @@ final: prev:
 
   mason-lspconfig-nvim = buildVimPlugin {
     pname = "mason-lspconfig.nvim";
-    version = "2024-02-22";
+    version = "2024-03-16";
     src = fetchFromGitHub {
       owner = "williamboman";
       repo = "mason-lspconfig.nvim";
-      rev = "21d33d69a81f6351e5a5f49078b2e4f0075c8e73";
-      sha256 = "1dxx7b5aadhws58dzxh7am0rcnzzzhfxbsnkcl5hp9d221wkvi3q";
+      rev = "82c7cb08ddb836ad938b2708e50085f12a8825d2";
+      sha256 = "18x9a7dr4904aqnnz0wqkx7bx6xnd1wnhbx3adq8sr651vj6pb1y";
     };
     meta.homepage = "https://github.com/williamboman/mason-lspconfig.nvim/";
   };
@@ -5796,12 +5820,12 @@ final: prev:
 
   material-vim = buildVimPlugin {
     pname = "material.vim";
-    version = "2023-02-09";
+    version = "2024-03-04";
     src = fetchFromGitHub {
       owner = "kaicataldo";
       repo = "material.vim";
-      rev = "b47e7f884cb606c19a20e8e520dfa10c3b3a52f9";
-      sha256 = "1abhf71ap9cs03ibi3qm8lw8kdynb86x85didnhlhb673xg0kbcz";
+      rev = "07e70d5d675fadb1e81191b2d990b2a72edccf0d";
+      sha256 = "1rv7hp3gvzvvvh2vifz8r9g12srbldysgnydljp71qs3pwbqpp2v";
     };
     meta.homepage = "https://github.com/kaicataldo/material.vim/";
   };
@@ -5880,24 +5904,24 @@ final: prev:
 
   mini-nvim = buildVimPlugin {
     pname = "mini.nvim";
-    version = "2024-02-29";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "echasnovski";
       repo = "mini.nvim";
-      rev = "f24747266a047617d06605a2316aa6c071662fa2";
-      sha256 = "1f10jzypias9cji4y7bvl095b5qs9i4i5gi2khhk1nbqkpqyyala";
+      rev = "9968f6e221ae7bdac57a910c5bf2026186aa023c";
+      sha256 = "0sg5y4f3idxfcalngipgsajsrr0jjhpy4klarcnmq60sv6dmz5dh";
     };
     meta.homepage = "https://github.com/echasnovski/mini.nvim/";
   };
 
   minimap-vim = buildVimPlugin {
     pname = "minimap.vim";
-    version = "2023-10-02";
+    version = "2024-03-03";
     src = fetchFromGitHub {
       owner = "wfxr";
       repo = "minimap.vim";
-      rev = "701f4cf4b60a3e1685d2da484282f3a3d8bf9db6";
-      sha256 = "1kgzg69v9gsl0whq7740av3iyih0z460l42js5jxl8mg630bzxbc";
+      rev = "6dc0c36fd92eab38064f22c016e43639f42293d3";
+      sha256 = "0ch6j2xdgh61pb5qzhsavvypk1b8mck99zn9j2k5fdn7b08i90av";
     };
     meta.homepage = "https://github.com/wfxr/minimap.vim/";
   };
@@ -5916,12 +5940,12 @@ final: prev:
 
   mkdnflow-nvim = buildVimPlugin {
     pname = "mkdnflow.nvim";
-    version = "2024-02-08";
+    version = "2024-03-04";
     src = fetchFromGitHub {
       owner = "jakewvincent";
       repo = "mkdnflow.nvim";
-      rev = "1b24b8b5fe10fe09af4572c0165293e0dcd998aa";
-      sha256 = "04bsnj8v1wwkq92dlgk1jn8sx964zawcc7im858r4jxczycg8kj8";
+      rev = "0a42aa3c7c2c982a1503e63ce8f0f065e0eb63df";
+      sha256 = "1p5vwzl48bgfzxk4nwxlyf98ymjyglm44942lpm8al908ysnpwc2";
     };
     meta.homepage = "https://github.com/jakewvincent/mkdnflow.nvim/";
   };
@@ -5940,12 +5964,12 @@ final: prev:
 
   modicator-nvim = buildVimPlugin {
     pname = "modicator.nvim";
-    version = "2024-02-10";
+    version = "2024-03-05";
     src = fetchFromGitHub {
       owner = "mawkler";
       repo = "modicator.nvim";
-      rev = "d35bb7c3a93e311c784cb439ca26209181c0815e";
-      sha256 = "0dg7q1x2mzkhlvrbr26zcqih81b5wzb9wvh5zm0iw099pgf2fq37";
+      rev = "780ea1e98c9bee8f3816685213b0aac42b34cd75";
+      sha256 = "1db48c8yfpvlz5v17c7vxrsjz8n0x0fxjbb59w0bm88n85rd2pnv";
     };
     meta.homepage = "https://github.com/mawkler/modicator.nvim/";
   };
@@ -5976,12 +6000,12 @@ final: prev:
 
   molten-nvim = buildVimPlugin {
     pname = "molten-nvim";
-    version = "2024-02-23";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "benlubas";
       repo = "molten-nvim";
-      rev = "8346bba69e0de96278dad2038e9be74605908b7d";
-      sha256 = "08f3zxzka43f87fks56594476h57yq01x7a1zdsn4acc278xg1nb";
+      rev = "8d31d04e18acc419f147452861ad5eb34b998276";
+      sha256 = "1nlpg57zfjbla9draxpp3iw8lcsgkyd7y9vgc81q842mb1syby4z";
     };
     meta.homepage = "https://github.com/benlubas/molten-nvim/";
   };
@@ -6288,12 +6312,12 @@ final: prev:
 
   neo-tree-nvim = buildVimPlugin {
     pname = "neo-tree.nvim";
-    version = "2024-02-25";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "nvim-neo-tree";
       repo = "neo-tree.nvim";
-      rev = "459c60317cc1d251f6eb3b6f010d015d5d24b806";
-      sha256 = "0ynfilsp93gl9f89js30jk9h8bh21v19snl4f1x80b7wrr64agak";
+      rev = "00b46a1ee17ec2bb93b52e1aac7d1449b659f53f";
+      sha256 = "1vmfscin3lgs97pxxfhlw2nvc0nag37pwhba4p1sr3z89jrc4xi5";
     };
     meta.homepage = "https://github.com/nvim-neo-tree/neo-tree.nvim/";
   };
@@ -6312,12 +6336,12 @@ final: prev:
 
   neoconf-nvim = buildVimPlugin {
     pname = "neoconf.nvim";
-    version = "2024-03-01";
+    version = "2024-03-16";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "neoconf.nvim";
-      rev = "2feab3abaa2c00dc21f490619f5c0f4ccf0ba495";
-      sha256 = "1197rs8mpq77x54h2r8m385gdpxd5liql3dwivqk89cica0av8db";
+      rev = "68753daced3b41d6b5e4a441b10a69c1ec33523c";
+      sha256 = "0f3lvrvs9sfwvr47bnjhxapgkgz790vwdgn50cd6lgr849n64s8z";
     };
     meta.homepage = "https://github.com/folke/neoconf.nvim/";
   };
@@ -6372,24 +6396,24 @@ final: prev:
 
   neogen = buildVimPlugin {
     pname = "neogen";
-    version = "2023-09-09";
+    version = "2024-03-03";
     src = fetchFromGitHub {
       owner = "danymat";
       repo = "neogen";
-      rev = "70127baaff25611deaf1a29d801fc054ad9d2dc1";
-      sha256 = "00za9qbc8jmf9asqqgr37dpm21xf8cq3pn529zgarmz1gbk106cp";
+      rev = "b95347a588401a755eadd17482edc1662876bd58";
+      sha256 = "16aw070mfm9d33jsc0xbmpwsna61pqci8h896phizvndp1lx9lfw";
     };
     meta.homepage = "https://github.com/danymat/neogen/";
   };
 
   neogit = buildVimPlugin {
     pname = "neogit";
-    version = "2024-02-23";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "NeogitOrg";
       repo = "neogit";
-      rev = "0d0879b0045fb213c328126969a3317c0963d34a";
-      sha256 = "1nflx2kk2q0kwwxafbvdfa92pn4vzvynr4jqd5jni9h7n5xvg9dl";
+      rev = "bc6aca9242bdcf61ea8aa4355e24f7bffb2aa8f3";
+      sha256 = "1zn5akv15069ldjnlbiy1b5hi5d2jfcj45wqh2zj09cq8hd3zqpb";
     };
     meta.homepage = "https://github.com/NeogitOrg/neogit/";
   };
@@ -6456,12 +6480,12 @@ final: prev:
 
   neorg = buildVimPlugin {
     pname = "neorg";
-    version = "2024-02-26";
+    version = "2024-03-04";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg";
-      rev = "a4072328c089725c7a53f586884384133d68c0ed";
-      sha256 = "0p981gv1f5gggxi2dkxlp5wz73mb9pf6ws4icf4phg2k22yha7ww";
+      rev = "086891d396ac9fccd91faf1520f563b6eb9eb942";
+      sha256 = "1k152lzvizaf1i7gkbjilcvs9l9d13zs606qjw0mpvyhzy4rqd0r";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg/";
   };
@@ -6480,12 +6504,12 @@ final: prev:
 
   neoscroll-nvim = buildVimPlugin {
     pname = "neoscroll.nvim";
-    version = "2024-02-04";
+    version = "2024-03-10";
     src = fetchFromGitHub {
       owner = "karb94";
       repo = "neoscroll.nvim";
-      rev = "6e3546751076890304428150e53bd59198a4505d";
-      sha256 = "1hm93lzg9mgpcm871gln6dq864mm2llaypcm0415gyvpqy2fmr3n";
+      rev = "21d52973bde32db998fc8b6590f87eb3c3c6d8e4";
+      sha256 = "1hxf9218asn22lpa28zb6kmj64a8ak4njxj0whl60a1p0349s4qb";
     };
     meta.homepage = "https://github.com/karb94/neoscroll.nvim/";
   };
@@ -6538,6 +6562,19 @@ final: prev:
     meta.homepage = "https://github.com/nvim-neotest/neotest/";
   };
 
+  neotest-bash = buildVimPlugin {
+    pname = "neotest-bash";
+    version = "2023-11-18";
+    src = fetchFromGitHub {
+      owner = "rcasia";
+      repo = "neotest-bash";
+      rev = "2eaad2ae4577fadf4af1eec32ec169d0fb2698bb";
+      sha256 = "0w1x9ya843pa8514974frdd8qmzycnvj418igni4y3wy3s0dc65v";
+      fetchSubmodules = true;
+    };
+    meta.homepage = "https://github.com/rcasia/neotest-bash/";
+  };
+
   neotest-dart = buildVimPlugin {
     pname = "neotest-dart";
     version = "2024-02-28";
@@ -6564,12 +6601,12 @@ final: prev:
 
   neotest-dotnet = buildVimPlugin {
     pname = "neotest-dotnet";
-    version = "2024-02-22";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "Issafalcon";
       repo = "neotest-dotnet";
-      rev = "c19df2a139d88c5b4130b830d2cbe63a2c6c6c0c";
-      sha256 = "1bb9dv6g7x793hgbg20lf8igjym2ixcxk8ymrrhlcn0489sx79rb";
+      rev = "15943dd05e2d4d9393531b647ad661e60820c608";
+      sha256 = "0vcx6avfbsjxv3nwbmy6101yb33msx6s3l1mzmnb7rprgcy53zm5";
     };
     meta.homepage = "https://github.com/Issafalcon/neotest-dotnet/";
   };
@@ -6587,6 +6624,18 @@ final: prev:
     meta.homepage = "https://github.com/jfpedroza/neotest-elixir/";
   };
 
+  neotest-foundry = buildVimPlugin {
+    pname = "neotest-foundry";
+    version = "2024-02-03";
+    src = fetchFromGitHub {
+      owner = "llllvvuu";
+      repo = "neotest-foundry";
+      rev = "efe5fae9a602946b3e7d60a8a9b2a8b7f255a66c";
+      sha256 = "0xx32s8lc2c2c8xrm95l74q269b0gy8ic3vs20gax1931dlk5d3s";
+    };
+    meta.homepage = "https://github.com/llllvvuu/neotest-foundry/";
+  };
+
   neotest-go = buildVimPlugin {
     pname = "neotest-go";
     version = "2024-02-24";
@@ -6599,18 +6648,55 @@ final: prev:
     meta.homepage = "https://github.com/nvim-neotest/neotest-go/";
   };
 
+  neotest-gradle = buildVimPlugin {
+    pname = "neotest-gradle";
+    version = "2023-12-05";
+    src = fetchFromGitHub {
+      owner = "weilbith";
+      repo = "neotest-gradle";
+      rev = "cfb5d5d7d193631fc2a60244adc78313561c5d0d";
+      sha256 = "1prf726livgkld935r648d72flsbm3lylw6h1y3864fj034kvq5v";
+    };
+    meta.homepage = "https://github.com/weilbith/neotest-gradle/";
+  };
+
+  neotest-gtest = buildVimPlugin {
+    pname = "neotest-gtest";
+    version = "2023-12-10";
+    src = fetchFromGitHub {
+      owner = "alfaix";
+      repo = "neotest-gtest";
+      rev = "6e794ac91f4c347e2ea5ddeb23d594f8fc64f2a8";
+      sha256 = "0syyi8y064pm06nj0fczqqy5dnmmps3ykc4k06jl05pk3jfilhaa";
+      fetchSubmodules = true;
+    };
+    meta.homepage = "https://github.com/alfaix/neotest-gtest/";
+  };
+
   neotest-haskell = buildVimPlugin {
     pname = "neotest-haskell";
-    version = "2024-02-05";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "neotest-haskell";
-      rev = "02852878c8d1e9f3cc61ea2d6592335d4cf6a54a";
-      sha256 = "0967yv47gld3gy3nh1fxqxqnfjjaajqnil42z7pwz7bkxgs63hib";
+      rev = "948fdb3fd73fa7c12692c48b6923344557d81b42";
+      sha256 = "0sb7nhw3mf15by21a6387qs482b9aysin220cvw4w2schf6h760v";
     };
     meta.homepage = "https://github.com/MrcJkb/neotest-haskell/";
   };
 
+  neotest-java = buildVimPlugin {
+    pname = "neotest-java";
+    version = "2024-02-11";
+    src = fetchFromGitHub {
+      owner = "rcasia";
+      repo = "neotest-java";
+      rev = "311acc2855cc76917f59f5c534d55e5c91e26810";
+      sha256 = "0gqhddq6z6q7jdla19l48iyac29wg8m58z27ybbas8sq96p9lqrf";
+    };
+    meta.homepage = "https://github.com/rcasia/neotest-java/";
+  };
+
   neotest-jest = buildVimPlugin {
     pname = "neotest-jest";
     version = "2024-02-19";
@@ -6623,6 +6709,18 @@ final: prev:
     meta.homepage = "https://github.com/nvim-neotest/neotest-jest/";
   };
 
+  neotest-minitest = buildVimPlugin {
+    pname = "neotest-minitest";
+    version = "2023-11-05";
+    src = fetchFromGitHub {
+      owner = "zidhuss";
+      repo = "neotest-minitest";
+      rev = "0129b64b7b7ce6c8a6dbd53782a5c8a855c10835";
+      sha256 = "0xb1q1xkw6g4jpg1q7lw97a2fd4xi9zizvrfcj9xc1m6vx1nh8b5";
+    };
+    meta.homepage = "https://github.com/zidhuss/neotest-minitest/";
+  };
+
   neotest-pest = buildVimPlugin {
     pname = "neotest-pest";
     version = "2024-02-16";
@@ -6637,16 +6735,28 @@ final: prev:
 
   neotest-phpunit = buildVimPlugin {
     pname = "neotest-phpunit";
-    version = "2024-02-24";
+    version = "2024-03-11";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "neotest-phpunit";
-      rev = "2f01e83eedbcf6f0257934b32b5d4fda404a9f11";
-      sha256 = "0yqi7n6ljr3drgng9yj7im6x35fjb9ap5p0svv1n7lwcbnnbywai";
+      rev = "d5e920ab861d175080524b9a3caa5ab8c372def0";
+      sha256 = "0wa3f383narj388xs3nrb3l7fjfrrvmcnqwd64mr2n6347gqc3f0";
     };
     meta.homepage = "https://github.com/olimorris/neotest-phpunit/";
   };
 
+  neotest-playwright = buildVimPlugin {
+    pname = "neotest-playwright";
+    version = "2024-02-23";
+    src = fetchFromGitHub {
+      owner = "thenbe";
+      repo = "neotest-playwright";
+      rev = "39968792371cb48d395dc54c0498b7373ef73986";
+      sha256 = "0vvw5rv36iyfz3gk9rngvz3jdahyhzjvv5gics0qr88mww923m5q";
+    };
+    meta.homepage = "https://github.com/thenbe/neotest-playwright/";
+  };
+
   neotest-plenary = buildVimPlugin {
     pname = "neotest-plenary";
     version = "2023-09-29";
@@ -6721,16 +6831,28 @@ final: prev:
 
   neotest-vitest = buildVimPlugin {
     pname = "neotest-vitest";
-    version = "2024-02-29";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "marilari88";
       repo = "neotest-vitest";
-      rev = "ae774282a592b872e84ffdcc5b4d11fc991eca7b";
-      sha256 = "0d6bfl6w1r1gylanlwymiq79aqxr5hyzs37lmm67lh6zqmadk4g4";
+      rev = "102e7494bbe0f205d28c31a3fd75a9dfbcc78c73";
+      sha256 = "03j5vfqryi419d5x0ssxpasx93jkpraj2vhwfclbhwfjf1d20jkl";
     };
     meta.homepage = "https://github.com/marilari88/neotest-vitest/";
   };
 
+  neotest-zig = buildVimPlugin {
+    pname = "neotest-zig";
+    version = "2023-12-10";
+    src = fetchFromGitHub {
+      owner = "lawrence-laz";
+      repo = "neotest-zig";
+      rev = "742f97f971a39d44b4832b432083608834a0e59c";
+      sha256 = "06sxdbxqfv2wzrw1v0hzsvy4cnynrym3irzi0c43gqiq7k1fksq4";
+    };
+    meta.homepage = "https://github.com/lawrence-laz/neotest-zig/";
+  };
+
   neovim-ayu = buildVimPlugin {
     pname = "neovim-ayu";
     version = "2024-02-05";
@@ -6877,24 +6999,24 @@ final: prev:
 
   night-owl-nvim = buildVimPlugin {
     pname = "night-owl.nvim";
-    version = "2024-02-26";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "oxfist";
       repo = "night-owl.nvim";
-      rev = "b9205dac99317b9ece31636a0414d35efb957aca";
-      sha256 = "1dzvd3bhmnbazhlwp5g9zpjj5vbisxz1l578g9fl5gfqyv5yyvqr";
+      rev = "7f139517b6d2f05ee6542850b04de004a6b25dce";
+      sha256 = "1c20y1f0sakbajsmzk0fhv3wqwsni3wxlvsgcgzxbf922rm9ln3x";
     };
     meta.homepage = "https://github.com/oxfist/night-owl.nvim/";
   };
 
   nightfox-nvim = buildVimPlugin {
     pname = "nightfox.nvim";
-    version = "2024-01-31";
+    version = "2024-03-11";
     src = fetchFromGitHub {
       owner = "EdenEast";
       repo = "nightfox.nvim";
-      rev = "a408e6bb101066952b81de9c11be367114bd561f";
-      sha256 = "0h9dcwh404jzrjw78y98s59pcqcyki5wrsap77lilzq0j8zh1lj1";
+      rev = "a4eb88b2dad3fba5c2d87f82cd15dfb9de73913d";
+      sha256 = "1vcpb1zc9fxlb3vsrg4p9kqclmfmngkz1sikrhv61ikzfsdwcbpn";
     };
     meta.homepage = "https://github.com/EdenEast/nightfox.nvim/";
   };
@@ -6961,24 +7083,24 @@ final: prev:
 
   no-clown-fiesta-nvim = buildVimPlugin {
     pname = "no-clown-fiesta.nvim";
-    version = "2024-02-20";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "aktersnurra";
       repo = "no-clown-fiesta.nvim";
-      rev = "667d51fd990d52f7ba80d9f76baa217dd79c6b11";
-      sha256 = "17kg08fx15fn94073ppnmga3npr8ba9qjxnmhfccph49i90q7d95";
+      rev = "0cf858e14aa98218c4aec92011bded80e935549b";
+      sha256 = "0vfii1m25c64846yy3kj9yabiqyhf64msd7p5rlqwfqc4l2y67hh";
     };
     meta.homepage = "https://github.com/aktersnurra/no-clown-fiesta.nvim/";
   };
 
   no-neck-pain-nvim = buildVimPlugin {
     pname = "no-neck-pain.nvim";
-    version = "2024-02-05";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "shortcuts";
       repo = "no-neck-pain.nvim";
-      rev = "7ab539aaa083e92ef438d4cdc0261d8661916f1d";
-      sha256 = "0pprczdx9bfsdvkc2l3szkdfvkpbcmblz3bz9cn68vldnw1z4yvx";
+      rev = "ca5c80feaf6b412bf16244bc2d802a7e99cbae7a";
+      sha256 = "0s9s21hpsiwxrwglpr9qdl8sbazx4nmkqk55wfwsrkinchx6zcg9";
     };
     meta.homepage = "https://github.com/shortcuts/no-neck-pain.nvim/";
   };
@@ -7009,12 +7131,12 @@ final: prev:
 
   none-ls-nvim = buildVimPlugin {
     pname = "none-ls.nvim";
-    version = "2024-02-29";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "nvimtools";
       repo = "none-ls.nvim";
-      rev = "e6d3abffa77597dac35de723e11daaee2fafce77";
-      sha256 = "0v8b8if96wwd7czjdlgl7a8vz8pfcwvcwbbmz6sa7dcynj7pvids";
+      rev = "72e25ed4162474ef5d666525853f8a42bffd97c5";
+      sha256 = "13h0ldwvl1iysz1xz22bd9k8rp7ilcsbhibv5xc0ybqqsfv0ndhn";
     };
     meta.homepage = "https://github.com/nvimtools/none-ls.nvim/";
   };
@@ -7033,12 +7155,12 @@ final: prev:
 
   nordic-nvim = buildVimPlugin {
     pname = "nordic.nvim";
-    version = "2022-12-08";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "andersevenrud";
       repo = "nordic.nvim";
-      rev = "cd552784eeeae61644fec60f6cc52c267dbddc73";
-      sha256 = "0pv3z3kz1v399q283fymz10rq46980a5z2nvhzrfg3i0ws4gpni0";
+      rev = "9697dc86e888f603cdb7e3a0742b7814b8a01cd1";
+      sha256 = "1rf4z8rvdh4iv4ifq3z1hic2ldcpkja82834w5nhig3x2rn5hw7m";
     };
     meta.homepage = "https://github.com/andersevenrud/nordic.nvim/";
   };
@@ -7069,12 +7191,12 @@ final: prev:
 
   nui-nvim = buildNeovimPlugin {
     pname = "nui.nvim";
-    version = "2024-02-16";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "MunifTanjim";
       repo = "nui.nvim";
-      rev = "c3c7fd618dcb5a89e443a2e1033e7d11fdb0596b";
-      sha256 = "0wj2mgmykplg6dwgdh63342fdfqwmr7x2pnykk47646gzzixlgl1";
+      rev = "3dc46d725f7b94bee5117c0a699b57b1902b5d65";
+      sha256 = "1wqf7p8hvspnnr6w3vd3kn4z0wmsg3ishmim68na0h0x8hvx5h2h";
     };
     meta.homepage = "https://github.com/MunifTanjim/nui.nvim/";
   };
@@ -7105,12 +7227,12 @@ final: prev:
 
   nvchad = buildVimPlugin {
     pname = "nvchad";
-    version = "2024-02-29";
+    version = "2024-03-16";
     src = fetchFromGitHub {
       owner = "nvchad";
       repo = "nvchad";
-      rev = "8fe6a6560eff96238f55701470494ad911eab955";
-      sha256 = "0kxr0z0n8whs2qxnywc8whdi15cp3wajp9rr6ys0ndqb995bcp67";
+      rev = "178bf21fdef6679ea70af3f6e45b1c1e6ed8e8a6";
+      sha256 = "0rhyh9j28y2f3s4j1lc1fcwwxh67xnc7i2pd3pz3j95zvbws8xg8";
     };
     meta.homepage = "https://github.com/nvchad/nvchad/";
   };
@@ -7189,12 +7311,12 @@ final: prev:
 
   nvim-bqf = buildVimPlugin {
     pname = "nvim-bqf";
-    version = "2024-02-20";
+    version = "2024-03-02";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-bqf";
-      rev = "654c904d5ad9dc4846445056086168e25bd8ba2d";
-      sha256 = "03gy2qnx7r6h0kk6h1x4pshwh08q5zaw5pxdpwnyfi9fkgdidcyc";
+      rev = "b51a37fcd808edafd52511458467c8c9a701ea8d";
+      sha256 = "0pvzhj7b0cw3rgy87rq1n194348ws6a0z9pjxrc8rxwsv79mphsq";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/";
   };
@@ -7345,12 +7467,12 @@ final: prev:
 
   nvim-dap = buildVimPlugin {
     pname = "nvim-dap";
-    version = "2024-02-17";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "fc880e82059eb21c0fa896be60146e5f17680648";
-      sha256 = "1dg4sh3dxswak311faz5n3g2l7zy6jvqdvdrbj51n5flm7bgzscq";
+      rev = "c43c2473ecb482a9d91f32c1d4c0098fffad3c7d";
+      sha256 = "1aspwwmrv6jfg2cvb9n7rfaa57w72d4yf5gvhfxnva8rfwy907gb";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
@@ -7393,12 +7515,12 @@ final: prev:
 
   nvim-dap-virtual-text = buildVimPlugin {
     pname = "nvim-dap-virtual-text";
-    version = "2023-12-28";
+    version = "2024-03-10";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "nvim-dap-virtual-text";
-      rev = "d4542ac257d3c7ee4131350db6179ae6340ce40b";
-      sha256 = "1xgj7m5b89ndy5asg6zknhpqbgflhd82vvwafzqxgc6zr86iv4r0";
+      rev = "baa5b0dc6663284cce32e0d00ac1f2511b13496f";
+      sha256 = "136qm88phwbyn5zdbr6xnw0hvsa7zcycxyg5anhfdc1vxdsh8lfm";
     };
     meta.homepage = "https://github.com/theHamsta/nvim-dap-virtual-text/";
   };
@@ -7477,24 +7599,24 @@ final: prev:
 
   nvim-highlight-colors = buildVimPlugin {
     pname = "nvim-highlight-colors";
-    version = "2024-02-25";
+    version = "2024-03-05";
     src = fetchFromGitHub {
       owner = "brenoprata10";
       repo = "nvim-highlight-colors";
-      rev = "abff2ecd998de946e091ea7749b613ab6975f6f7";
-      sha256 = "0yhflyvjdfr4s6ipvcs98375lbhmg7wslvkfrmz1xmlmxpw63w0y";
+      rev = "a9f191d5ba27a5943b8992bf618858fa7374758f";
+      sha256 = "036mb597k4w86lypjjk0554z7vambyndasnnkl035m885n2vny1q";
     };
     meta.homepage = "https://github.com/brenoprata10/nvim-highlight-colors/";
   };
 
   nvim-highlite = buildVimPlugin {
     pname = "nvim-highlite";
-    version = "2024-02-29";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "Iron-E";
       repo = "nvim-highlite";
-      rev = "a85f9d0b8a31d60db79adfdbe3d6e62ae9466826";
-      sha256 = "0w0ycxqmpa1pg0jm3p68bi3z3666g8qzf234k15sir04yzd7rhgg";
+      rev = "e86a34da29d385c3f7c85de176b358191fb36808";
+      sha256 = "1dvkyzhns94mkvv3midhnb8jqa5wc139768laszxnan1s71rmxbf";
     };
     meta.homepage = "https://github.com/Iron-E/nvim-highlite/";
   };
@@ -7525,12 +7647,12 @@ final: prev:
 
   nvim-jdtls = buildVimPlugin {
     pname = "nvim-jdtls";
-    version = "2024-02-21";
+    version = "2024-03-07";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-jdtls";
-      rev = "382b9f625861f47d95876bcfb4c261f3b96077cb";
-      sha256 = "1c65a12w1lmh16f6rwpq5nf5xqr3sna7arbwywh0bnxg6i3lhbgf";
+      rev = "8eb5f0dbe6e126b392ddcaf45893358619893e45";
+      sha256 = "04v31198sqrw18ycrxhz94zq4q9bn879cdlyc06f8fc2hwqnz1ya";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
   };
@@ -7608,12 +7730,12 @@ final: prev:
 
   nvim-lint = buildVimPlugin {
     pname = "nvim-lint";
-    version = "2024-02-29";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-lint";
-      rev = "e824adb9bc01647f71e55457353a68f0f37f9931";
-      sha256 = "1494d979kpmbvlhq4na4hjr7zyl9gfh70pm0ikg26sasad8a51kx";
+      rev = "03b1fc593638098a35de26d768d5f43b0fe57041";
+      sha256 = "1rf9m7skw7zmkp8wlipgdhc33jni97p2lbax6gsxsziajzxmvrih";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-lint/";
   };
@@ -7644,12 +7766,12 @@ final: prev:
 
   nvim-lspconfig = buildVimPlugin {
     pname = "nvim-lspconfig";
-    version = "2024-02-29";
+    version = "2024-03-16";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "9553725789be682ecd945a527ec552e489ea8534";
-      sha256 = "1gny37nw2sy88ddyd0jx23ks5grdmi2ipwyl6zkv1kl1lv2v9n39";
+      rev = "5b364bd4db0fb68a56ffe427a370920854acb834";
+      sha256 = "0aljwqk4r6dx3hyshz62zd0n39a3vx94zrg7v923zbkjk77hr3dd";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -7704,12 +7826,12 @@ final: prev:
 
   nvim-metals = buildVimPlugin {
     pname = "nvim-metals";
-    version = "2024-02-22";
+    version = "2024-03-02";
     src = fetchFromGitHub {
       owner = "scalameta";
       repo = "nvim-metals";
-      rev = "9f498a5f74771cedaa05871a79df91aa09ad6bd9";
-      sha256 = "1ll7nihbwl8rk0l9zrl55rapnc7h1hwcgmvgm6595zjba30sjazn";
+      rev = "4f9bf0c821092f20dd34c1a4ea5b07b0500ff089";
+      sha256 = "05d2v6yfs60n4xli5c682nlczqnib9pg6hxp79fiidhdidrf9zfj";
     };
     meta.homepage = "https://github.com/scalameta/nvim-metals/";
   };
@@ -7908,36 +8030,36 @@ final: prev:
 
   nvim-solarized-lua = buildVimPlugin {
     pname = "nvim-solarized-lua";
-    version = "2024-03-01";
+    version = "2024-03-04";
     src = fetchFromGitHub {
       owner = "ishan9299";
       repo = "nvim-solarized-lua";
-      rev = "9ae0c5e56490e711d42d0636915b8b08b99a7f96";
-      sha256 = "1qis7dgw4dqrpmvii4qf1qwmlql4lly276zp89vsrng4cylyjfgd";
+      rev = "d69a263c97cbc765ca442d682b3283aefd61d4ac";
+      sha256 = "1m0f63ih6hhxmap9gyrp05px2a3pyswraf75vhmabwwxpn903l6h";
     };
     meta.homepage = "https://github.com/ishan9299/nvim-solarized-lua/";
   };
 
   nvim-spectre = buildVimPlugin {
     pname = "nvim-spectre";
-    version = "2024-02-19";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "nvim-pack";
       repo = "nvim-spectre";
-      rev = "3712ff0cdf4f9f877d9ca708d835a877d9a0abaf";
-      sha256 = "1112r1qz44mgvqda98a1ch4w262n5hs9ylgp9fdvgz62nhgxgl5m";
+      rev = "d1db6c1d37252b5a38f199e2f590c5a1617d9254";
+      sha256 = "1baavgxg61ww72avgzjjhkwkjaqcs9qw95p9a589ifgb9sclxklb";
     };
     meta.homepage = "https://github.com/nvim-pack/nvim-spectre/";
   };
 
   nvim-spider = buildVimPlugin {
     pname = "nvim-spider";
-    version = "2024-01-02";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "chrisgrieser";
       repo = "nvim-spider";
-      rev = "dc371a116041c49ae6d3813f6e1722c2dcdabdcf";
-      sha256 = "0x0plf8gxyl3cy6h2adhz535g00k1qmq0ibx9scxp00chh0g8nr4";
+      rev = "bcc9fa38a62637491b75b02e364191553fd858a2";
+      sha256 = "184i4zwp0m4bgv0pzj9acc7c2h0yzjc9jdcjp3k81j1kmfpva1fp";
     };
     meta.homepage = "https://github.com/chrisgrieser/nvim-spider/";
   };
@@ -7992,36 +8114,36 @@ final: prev:
 
   nvim-tree-lua = buildVimPlugin {
     pname = "nvim-tree.lua";
-    version = "2024-02-24";
+    version = "2024-03-16";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-tree.lua";
-      rev = "d52fdeb0a300ac42b9cfa65ae0600a299f8e8677";
-      sha256 = "0dngnviq36z9jsm1p6w4b3xg31k6fj05xdk6qn0cxjjharrskazi";
+      rev = "f7c09bd72e50e1795bd3afb9e2a2b157b4bfb3c3";
+      sha256 = "09dmcbl4mhwr9p5wngn10d4y48qhqhr07xkblc3zwgf0n4cqrkxj";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPlugin {
     pname = "nvim-treesitter";
-    version = "2024-03-01";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "c2a265156d5799adbd9f9e7d5385735fa5d21776";
-      sha256 = "08cish176w59wj1j221q1k67mjgabdkl676v5kp79ig7b23hfzz5";
+      rev = "f87882858438834d2fbb6379aa2be37de901751b";
+      sha256 = "1il8iph7qh2z8clwbqwc8l2fn91wpv651sqyhdkyqz9iznb7h2fq";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
 
   nvim-treesitter-context = buildVimPlugin {
     pname = "nvim-treesitter-context";
-    version = "2024-02-25";
+    version = "2024-03-05";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-context";
-      rev = "b8d1ffe58a88e0356da56b167373e89c4579ce15";
-      sha256 = "1z5my5hk7mwrvmjb36w7q82mi8n6q1a63i0p94vphx8vchipa60n";
+      rev = "b8b7e52c1517d401d7c519787d5dc4528c41291a";
+      sha256 = "1wcwx29n24wy5hlfh6ilsj5x1q3acdv4khh0c4p5a9m5vg4zbyn2";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-context/";
   };
@@ -8064,12 +8186,12 @@ final: prev:
 
   nvim-treesitter-textobjects = buildVimPlugin {
     pname = "nvim-treesitter-textobjects";
-    version = "2024-02-28";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "95933e762e28f9d38b572d65e7e4da9d2f4d90cb";
-      sha256 = "09hnk52jzw4xjhd5ls1r81r1ncy4pnqhz7vdsq843il8psxg50ng";
+      rev = "d2a4ffc22d9d38d44edb73da007b3cf43451e9b4";
+      sha256 = "159fcx7kfbgrk8lywfrx7vpdd6pdzphrqv4jwlvmjmzmmnbayhm7";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
@@ -8112,12 +8234,12 @@ final: prev:
 
   nvim-ufo = buildVimPlugin {
     pname = "nvim-ufo";
-    version = "2024-02-27";
+    version = "2024-03-16";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-ufo";
-      rev = "239ae620d818ffa1319ca3056546df71906d4bfb";
-      sha256 = "17nd2clil96j1a8l5rxvb83c1aqkff31sxylv4kac6rx30g8k9qa";
+      rev = "2296dbb8939c4050c222f4eb24889540ef8acd76";
+      sha256 = "0dlrn9nlf43byn2dk24pkyjidm9i1zalrkn45pr76ayqy34fxp9n";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-ufo/";
   };
@@ -8136,12 +8258,12 @@ final: prev:
 
   nvim-web-devicons = buildVimPlugin {
     pname = "nvim-web-devicons";
-    version = "2024-02-25";
+    version = "2024-03-16";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-web-devicons";
-      rev = "0bb67ef952ea3eb7b1bac9c011281471d99a27bc";
-      sha256 = "0rykazpyv111w408c4xm1x76nr0vdwss8f7mbkfdgijxj9llk87b";
+      rev = "cb0c967c9723a76ccb1be0cc3a9a10e577d2f6ec";
+      sha256 = "038inkii20fxk33c8bqz86nb81jf0z02l1gq2ml0k2fd5ffaq0nw";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-web-devicons/";
   };
@@ -8208,24 +8330,24 @@ final: prev:
 
   nvterm = buildVimPlugin {
     pname = "nvterm";
-    version = "2023-09-09";
+    version = "2024-03-09";
     src = fetchFromGitHub {
       owner = "nvchad";
       repo = "nvterm";
-      rev = "3e43be1d0ca60cc5e2dfc2d289b06577e7e57e98";
-      sha256 = "10k9x2mg0pcrrf83ysxc0amldjnfgvxl8r74j42czdw5my8aqgcf";
+      rev = "9d7ba3b6e368243175d38e1ec956e0476fd86ed9";
+      sha256 = "0pnh3mva0jjm2li5xnkbfa3cvn0di01b24kqn82g43fjvmf3kxzx";
     };
     meta.homepage = "https://github.com/nvchad/nvterm/";
   };
 
   obsidian-nvim = buildVimPlugin {
     pname = "obsidian.nvim";
-    version = "2024-03-01";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "epwalsh";
       repo = "obsidian.nvim";
-      rev = "c7812abe3ab5c6a6a8b29a9ec08b32142a2e7011";
-      sha256 = "0jmhabvlbrgy1bkjlaf6dvajr5lypif541a62pmk1w7i7jlgv2h8";
+      rev = "450c3dabffa395502800d6ac0b1d1dcd5d89f80e";
+      sha256 = "003z6v2r8bd20jlpwknp1la4gqxbqcmkiqq1yvp68b4i1klll5a1";
     };
     meta.homepage = "https://github.com/epwalsh/obsidian.nvim/";
   };
@@ -8256,24 +8378,24 @@ final: prev:
 
   octo-nvim = buildVimPlugin {
     pname = "octo.nvim";
-    version = "2024-02-16";
+    version = "2024-03-11";
     src = fetchFromGitHub {
       owner = "pwntester";
       repo = "octo.nvim";
-      rev = "feae1e5519deebad3c59ee1d57d28aa22822f7c8";
-      sha256 = "0nvd93ml9gv20qh7bl1q69bk7ya6k3lnl49ywhaixh41f28z39wf";
+      rev = "1e2376ac6966805be9967f4ea0e4cf7c750f8214";
+      sha256 = "04v882ym3kgmja01gw1wgpw09dzjcy665jrmrza3ilir4c192ddh";
     };
     meta.homepage = "https://github.com/pwntester/octo.nvim/";
   };
 
   oil-nvim = buildVimPlugin {
     pname = "oil.nvim";
-    version = "2024-02-23";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "oil.nvim";
-      rev = "132b4ea0740c417b9d717411cab4cf187e1fd095";
-      sha256 = "085n2mfsv0gmz4f31wpzld804033h73mm7zfhni6xa8ffd7vvldj";
+      rev = "32e18df30f937e02135398c270b72a4d24b40120";
+      sha256 = "15w8adbb9pwsnjch41d3dw4q3dpvrw61wvwbxzyfzhk032133dz6";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/oil.nvim/";
@@ -8305,12 +8427,12 @@ final: prev:
 
   omnisharp-extended-lsp-nvim = buildVimPlugin {
     pname = "omnisharp-extended-lsp.nvim";
-    version = "2023-12-25";
+    version = "2024-03-09";
     src = fetchFromGitHub {
       owner = "Hoffs";
       repo = "omnisharp-extended-lsp.nvim";
-      rev = "4be2e8689067494ed7e5a4f1221adc31d1a07783";
-      sha256 = "1mzbyz5p10d7ilpi7c05qcjjixc6nrnd0shzh49ic20d2c9wnzdy";
+      rev = "f7310a06ad86072158adc37f394650e7fba9631d";
+      sha256 = "0li9zsh7g149jb4154x0z5v8frwlziv45iqam4zl9yjnx0m6s085";
     };
     meta.homepage = "https://github.com/Hoffs/omnisharp-extended-lsp.nvim/";
   };
@@ -8365,12 +8487,12 @@ final: prev:
 
   onedarkpro-nvim = buildVimPlugin {
     pname = "onedarkpro.nvim";
-    version = "2024-02-29";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "onedarkpro.nvim";
-      rev = "0059f3f9b21daf3540f1108c2bab3fa9e9082331";
-      sha256 = "1jiisdy9b9ia806fiq635r2ljqrd8caxpvk3xmrc3w04xhsnb38y";
+      rev = "e4fc3641aa3b52e30496bf34b87f70ef5506686e";
+      sha256 = "05kzbw4zm4c213clfc6wn0pjqqyx3baivmbzyppmwmx54l6qqdsy";
     };
     meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/";
   };
@@ -8389,12 +8511,12 @@ final: prev:
 
   onenord-nvim = buildVimPlugin {
     pname = "onenord.nvim";
-    version = "2024-03-01";
+    version = "2024-03-08";
     src = fetchFromGitHub {
       owner = "rmehri01";
       repo = "onenord.nvim";
-      rev = "1527c93d7fcaea743f5ad8f1c58b11bbcffb38bc";
-      sha256 = "0k5lcc3cml0bh9dwbkyyp7hj0wp783zzhl9k17ckv4kc56fz6qs4";
+      rev = "ce4aacbaa50b6b44a3e69eee6a3f380e96ccdbd0";
+      sha256 = "1i1n746bf0gfmq22ajj2p4f7819sql4f051gwjmcypd1hrn651lh";
     };
     meta.homepage = "https://github.com/rmehri01/onenord.nvim/";
   };
@@ -8425,36 +8547,36 @@ final: prev:
 
   openingh-nvim = buildVimPlugin {
     pname = "openingh.nvim";
-    version = "2024-02-02";
+    version = "2024-03-10";
     src = fetchFromGitHub {
       owner = "Almo7aya";
       repo = "openingh.nvim";
-      rev = "52e2727cbd7b52cdc7a5bb52c77c07a329db6cba";
-      sha256 = "06v4b07ary1swli801ay0g7jd14c7b3pp75vndkxab79nshcs88c";
+      rev = "613c18967d42202f3e2a9ac788caf62a402e7c1a";
+      sha256 = "1s1rnk1slw6bc9dvk70r9hgsva598n19smpyk89ix3h5xw81sr64";
     };
     meta.homepage = "https://github.com/Almo7aya/openingh.nvim/";
   };
 
   openscad-nvim = buildVimPlugin {
     pname = "openscad.nvim";
-    version = "2023-06-19";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "salkin-mada";
       repo = "openscad.nvim";
-      rev = "d77e7b3822da685d24a58081e94c4384e254d91f";
-      sha256 = "1sf8fhp7mfr9kwf7x1qf4gdbi4xc6qfwjlyyj1aykbxd1b39kg2x";
+      rev = "5c35ce921a63d59f2a0bb20d872c15a0d4c8aa72";
+      sha256 = "1l3xhv670apfjns12xzhf7sn3mf3gdd3xiyirydrnp7bxy7dyv1h";
     };
     meta.homepage = "https://github.com/salkin-mada/openscad.nvim/";
   };
 
   orgmode = buildVimPlugin {
     pname = "orgmode";
-    version = "2024-03-01";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "nvim-orgmode";
       repo = "orgmode";
-      rev = "9d92c8f2c88a95b859710f77fdd8a35fb4c19694";
-      sha256 = "1gfy8s1kbiy11p1n9fr10znhc1knqq5ilf2160n9zwd4ms60l97y";
+      rev = "261c987345131a736066c25ea409f4d10904b0af";
+      sha256 = "1k1q49gymnpb3b1kp5kwn8q0r6pd7smadjv1v9d70q4ij8j3hi9i";
     };
     meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
   };
@@ -8473,24 +8595,36 @@ final: prev:
 
   otter-nvim = buildVimPlugin {
     pname = "otter.nvim";
-    version = "2024-02-25";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "jmbuhr";
       repo = "otter.nvim";
-      rev = "9f6e9c083e314c471a9f420baa80954b28c539fa";
-      sha256 = "1idgx8p2hzcbjvdk69pih5gsagk18x1bdq5a3k17hhj0mcz5hz6q";
+      rev = "6dd878c49520f7e53c75fc14d20dcf2c4a5f326d";
+      sha256 = "0xjkp8fp8405bpjg0jwkhw6jris1sz39d46d0n4idyzxf5n8pcf4";
     };
     meta.homepage = "https://github.com/jmbuhr/otter.nvim/";
   };
 
+  outline-nvim = buildVimPlugin {
+    pname = "outline.nvim";
+    version = "2024-01-22";
+    src = fetchFromGitHub {
+      owner = "hedyhli";
+      repo = "outline.nvim";
+      rev = "a8d40aecb799196303ff3521c0e31c87bba57198";
+      sha256 = "1xhqrgjj37d1wq7vrcw9vwmrvzl5a3vyz4k0dglvgjq5z2g5zb0x";
+    };
+    meta.homepage = "https://github.com/hedyhli/outline.nvim/";
+  };
+
   overseer-nvim = buildVimPlugin {
     pname = "overseer.nvim";
-    version = "2024-02-21";
+    version = "2024-03-07";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "overseer.nvim";
-      rev = "4855aefcf335bbac71eea9c6a888958fb1ed1e1a";
-      sha256 = "1p5cr628qcla3ad1nfnpk9vmaxxspvfjiimyw5n81giywlf136sg";
+      rev = "b72f6d23ce47ccd427be2341f389c63448278f17";
+      sha256 = "0b44hqiwgh1zvgwslwjmmry4qznpwaymydz0pjgks9msw8zbld06";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/stevearc/overseer.nvim/";
@@ -8570,12 +8704,12 @@ final: prev:
 
   papercolor-theme = buildVimPlugin {
     pname = "papercolor-theme";
-    version = "2022-06-08";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "NLKNguyen";
       repo = "papercolor-theme";
-      rev = "9051480ad9129ff4ab4fffb38b44779b9081626f";
-      sha256 = "15vx37jy75xs1ibxrwwxi3p4yzgsw7y63l8ksaxvddg4lv63gidi";
+      rev = "0cfe64ffb24c21a6101b5f994ca342a74c977aef";
+      sha256 = "1w6j57lri4r79igzi5rvvfv93c3pb4lrvvcg95gpa9rg122plw15";
     };
     meta.homepage = "https://github.com/NLKNguyen/papercolor-theme/";
   };
@@ -8702,12 +8836,12 @@ final: prev:
 
   plenary-nvim = buildNeovimPlugin {
     pname = "plenary.nvim";
-    version = "2024-01-29";
+    version = "2024-03-06";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "4f71c0c4a196ceb656c824a70792f3df3ce6bb6d";
-      sha256 = "0kr8c5fgvv7ijsvk4z0c9dawqy58mg5yz9yzx0al2ljax32lfqh1";
+      rev = "f7adfc4b3f4f91aab6caebf42b3682945fbc35be";
+      sha256 = "0brfbf9ygzb050p4kmk5mx17y8p5zvz2wa1zyw430cdrlqb68nzy";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -8908,12 +9042,12 @@ final: prev:
 
   quarto-nvim = buildVimPlugin {
     pname = "quarto-nvim";
-    version = "2024-02-19";
+    version = "2024-03-06";
     src = fetchFromGitHub {
       owner = "quarto-dev";
       repo = "quarto-nvim";
-      rev = "a6e7452de5944f7f38a4b12f1d50e460c1dccd95";
-      sha256 = "0l2qgz51yh4pvx494k8p34xrda4mg38m9dwhy9sdxw01qy910xp8";
+      rev = "67e09027b5d8bd948907734fc6fb15028ffdcd28";
+      sha256 = "07p45qmxnc10kfn9syfqv5v5jm75rd8bs9gv90a246dxis4p0515";
     };
     meta.homepage = "https://github.com/quarto-dev/quarto-nvim/";
   };
@@ -8980,11 +9114,11 @@ final: prev:
 
   rainbow-delimiters-nvim = buildVimPlugin {
     pname = "rainbow-delimiters.nvim";
-    version = "2024-02-29";
+    version = "2024-03-16";
     src = fetchgit {
       url = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim";
-      rev = "cfc3f53cfa0fbabd95bd33747288aea24fe45211";
-      sha256 = "07qd0875h1ccvpx8kvb0wl0qvbgz6hcg2lwhsqwv1jmi7d95sib8";
+      rev = "2200900e3c1aae21dadb65c2ea2e91bcc39ca368";
+      sha256 = "1hbak03xdkj0gfg5zjqdmlaih3pjm0339qvd9jjbp29gzjy6q8hl";
     };
     meta.homepage = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim";
   };
@@ -9063,12 +9197,12 @@ final: prev:
 
   refactoring-nvim = buildVimPlugin {
     pname = "refactoring.nvim";
-    version = "2024-02-27";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "theprimeagen";
       repo = "refactoring.nvim";
-      rev = "94444558fc651b7e36f39d86c518e44b4de15123";
-      sha256 = "005bmgmlpqn876mjgykh072z1n4vl7xk76hxp99hqys7vp65b6gr";
+      rev = "d2786877c91aa409c824f27b4ce8a9f560dda60a";
+      sha256 = "0s0pd2b9hnz4rbgva1xad7lzg8z8mq7j8x15ppnrw6bplx5m35jd";
     };
     meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/";
   };
@@ -9123,12 +9257,12 @@ final: prev:
 
   rest-nvim = buildNeovimPlugin {
     pname = "rest.nvim";
-    version = "2024-02-18";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "rest-nvim";
       repo = "rest.nvim";
-      rev = "c27a0bcb84ab5534d89065d638119ed2dbbae189";
-      sha256 = "078w4zr4h302i3d5vd31qypxr2yxhnz0yxkpgvam2z0l3mp07qz0";
+      rev = "91badd46c60df6bd9800c809056af2d80d33da4c";
+      sha256 = "13swdcp23fb4kl6hr40l3zv4m6zw3d0q91g8anphrv751xqjkyx1";
     };
     meta.homepage = "https://github.com/rest-nvim/rest.nvim/";
   };
@@ -9243,12 +9377,12 @@ final: prev:
 
   rustaceanvim = buildNeovimPlugin {
     pname = "rustaceanvim";
-    version = "2024-02-27";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "mrcjkb";
       repo = "rustaceanvim";
-      rev = "b5342fcd1f8dc694d375983c60df928b58a02eb4";
-      sha256 = "10slkraz8ap0apv2jii9ympxnxrr3rygazlz1qh6bbdnvy4s7hcx";
+      rev = "69a22c2ec63ab375190006751562b62ebb318250";
+      sha256 = "0nr48zm6wrldx43zc4v4j2jm6sp9627a2mjd6jh62bg4g210ipci";
     };
     meta.homepage = "https://github.com/mrcjkb/rustaceanvim/";
   };
@@ -9411,12 +9545,12 @@ final: prev:
 
   sg-nvim = buildVimPlugin {
     pname = "sg.nvim";
-    version = "2024-02-02";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "sourcegraph";
       repo = "sg.nvim";
-      rev = "d8286f431981f32e5e6e494c8a6f9ffbd2ee1428";
-      sha256 = "197bg1ndc33s2bcb026qy2cwazgaz9djgw1g9fcp7gj0ki900h1d";
+      rev = "8d7735bfb810d919806da1e1c4f839fbc6ecccfe";
+      sha256 = "1wb6k3zyk5xa2s6v9x5kly9wv6hi4mpw9630fkyj0ixc4z67y4j9";
     };
     meta.homepage = "https://github.com/sourcegraph/sg.nvim/";
   };
@@ -9484,24 +9618,24 @@ final: prev:
 
   smart-splits-nvim = buildVimPlugin {
     pname = "smart-splits.nvim";
-    version = "2024-03-01";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "mrjones2014";
       repo = "smart-splits.nvim";
-      rev = "1339ffe7426d1b20f179ffc03f858eaab38376c0";
-      sha256 = "0k00z8kvqzzkb0vmcgv24yzcxl4girw86avmg6pkjnyp273y9l11";
+      rev = "83bdcc3db3b272a6e73b0f3aea0f5bc0a8da2696";
+      sha256 = "1jj19kffws1fi309qzazq35szq43kdga732wvgy2sb4wc28s7vfs";
     };
     meta.homepage = "https://github.com/mrjones2014/smart-splits.nvim/";
   };
 
   smartcolumn-nvim = buildVimPlugin {
     pname = "smartcolumn.nvim";
-    version = "2023-12-26";
+    version = "2024-03-10";
     src = fetchFromGitHub {
       owner = "m4xshen";
       repo = "smartcolumn.nvim";
-      rev = "a52915d6d9abf9972e249ebcffcc651cf9b062dd";
-      sha256 = "1mqmbyy2a8b74xyag3jaz24pi3v8gzm0hvmw228s898bxqs496vk";
+      rev = "cefb17be095ad5526030a21bb2a80553cae09127";
+      sha256 = "1lddpzrqcvq4vqjqcc89zi851kn1r247m5c1sxn7zxh5sl61wwhc";
     };
     meta.homepage = "https://github.com/m4xshen/smartcolumn.nvim/";
   };
@@ -9520,12 +9654,12 @@ final: prev:
 
   smartyank-nvim = buildVimPlugin {
     pname = "smartyank.nvim";
-    version = "2023-12-06";
+    version = "2024-03-05";
     src = fetchFromGitHub {
       owner = "ibhagwan";
       repo = "smartyank.nvim";
-      rev = "b048fec8c6b7d122adab6f78606057d59975ece7";
-      sha256 = "1i9lyl7yy96rvjpl676pgs1irvrrqx8xsrbz9b8ri37md8h3zjym";
+      rev = "d9e078fe08d6466e37ea45ac446a9f60e6866789";
+      sha256 = "13l8mj2wp8a3n7n5k7c1pdywv6l8rlgahwg8mnbnk11q7i03a1y3";
     };
     meta.homepage = "https://github.com/ibhagwan/smartyank.nvim/";
   };
@@ -9773,12 +9907,12 @@ final: prev:
 
   staline-nvim = buildVimPlugin {
     pname = "staline.nvim";
-    version = "2024-02-28";
+    version = "2024-03-08";
     src = fetchFromGitHub {
       owner = "tamton-aquib";
       repo = "staline.nvim";
-      rev = "c0f0d4ab31e0fe4aea466a016a81ca560bcaa7b8";
-      sha256 = "0k5yd2l8v697djamw5p2k4pfbiy8cwszbln6y1h1c77viq7pm78w";
+      rev = "c49f2deaba3d3c669e7243b57619e0078e7a351b";
+      sha256 = "1d3mp5ymzi5pb8y246h38bydd2cw4iacakaj9a7r7hf87i6kfz6k";
     };
     meta.homepage = "https://github.com/tamton-aquib/staline.nvim/";
   };
@@ -9893,12 +10027,12 @@ final: prev:
 
   suda-vim = buildVimPlugin {
     pname = "suda.vim";
-    version = "2023-06-27";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "lambdalisue";
       repo = "suda.vim";
-      rev = "8b0fc3711760195aba104e2d190cff9af8267052";
-      sha256 = "196fl3anzpw5999035xjmm00qsrg2d2mmbkjr7f72bk7rqiqyl8c";
+      rev = "66727b416837836712975e748bc8a19fb6cf4ec3";
+      sha256 = "09lbnx6mrqsrn6fvcp3mb6mkwbrkdrvr5rgzp43idj0ipm5j809h";
     };
     meta.homepage = "https://github.com/lambdalisue/suda.vim/";
   };
@@ -10220,12 +10354,12 @@ final: prev:
 
   telescope-coc-nvim = buildVimPlugin {
     pname = "telescope-coc.nvim";
-    version = "2024-01-10";
+    version = "2024-03-02";
     src = fetchFromGitHub {
       owner = "fannheyward";
       repo = "telescope-coc.nvim";
-      rev = "96cd72d1e246faf16ef90a6f602330d1d03a446a";
-      sha256 = "02wxz1pkz051wgjix933xszm61md3f0gr97ap5m3ljhg1blrpsb3";
+      rev = "421f50c56d66bc8f39c5deec05532deb071b597d";
+      sha256 = "1cf6990fkrzbagwphzkyh10i30hrv8vbqgmf4znva3ms1ad7ilhf";
     };
     meta.homepage = "https://github.com/fannheyward/telescope-coc.nvim/";
   };
@@ -10244,36 +10378,36 @@ final: prev:
 
   telescope-file-browser-nvim = buildVimPlugin {
     pname = "telescope-file-browser.nvim";
-    version = "2024-02-15";
+    version = "2024-03-06";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-file-browser.nvim";
-      rev = "48ffb8de688a22942940f50411d5928631368848";
-      sha256 = "0f00kag7jjs7h9mz43jik45xmffvz0biiyj37qkzkq7s6zjgh7ml";
+      rev = "8839e3f8070dfafa5b0c0e4652700298e7b872c4";
+      sha256 = "0arrbh4n7y1x8gjj6qkfssrfh3ni6ls9lsvdzjwm4b7hq6b79pxj";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-file-browser.nvim/";
   };
 
   telescope-frecency-nvim = buildVimPlugin {
     pname = "telescope-frecency.nvim";
-    version = "2024-02-25";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-frecency.nvim";
-      rev = "771726f7d6e7e96e9273e454b1c1f49168663a37";
-      sha256 = "06xwzib8x3c7l9dkrh3w9f6sy1vch6zy37hpy20hd5i38pks1x56";
+      rev = "bd52772bf2e8d3e83f1575a018cf4a0e8c3c09a3";
+      sha256 = "0i6qpsjj78yyqkvnxmk8rpf654ll649rvi6ck0qcf0v91m27i509";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/";
   };
 
   telescope-fzf-native-nvim = buildVimPlugin {
     pname = "telescope-fzf-native.nvim";
-    version = "2023-09-10";
+    version = "2024-03-05";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-fzf-native.nvim";
-      rev = "6c921ca12321edaa773e324ef64ea301a1d0da62";
-      sha256 = "101dxn7jfyg2wdzkw5cnrw475mg0p3w475l1hplqfhghz33zb1hy";
+      rev = "9ef21b2e6bb6ebeaf349a0781745549bbb870d27";
+      sha256 = "0lvykmaarl5nd3iaphp8jgnxg6cly5p6ignd3i1450rpbdp1w9xg";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-fzf-native.nvim/";
   };
@@ -10341,12 +10475,12 @@ final: prev:
 
   telescope-manix = buildNeovimPlugin {
     pname = "telescope-manix";
-    version = "2024-02-28";
+    version = "2024-03-11";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "telescope-manix";
-      rev = "d08cb87f8789dbab4be37713ff50c3acbe85787d";
-      sha256 = "0y3n270zkii123r3987xzvp194dl0q1hy234v95w7l48cf4v495k";
+      rev = "bebbcf6d6980c6b8f843508d42f641413af0505c";
+      sha256 = "08chi9p3gpgxvyb985fzzlfxpy13al01zv96mqz4kzl3k78nnz3j";
     };
     meta.homepage = "https://github.com/MrcJkb/telescope-manix/";
   };
@@ -10486,12 +10620,12 @@ final: prev:
 
   telescope-nvim = buildNeovimPlugin {
     pname = "telescope.nvim";
-    version = "2024-02-29";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "5f5fc3aa75e9fc824d4fbbb5de31f172b43f620d";
-      sha256 = "0yx5160hg3pj4n394jicw7h37px3g9xa6dywlf89zq6fjknj65fw";
+      rev = "e9e01d699843af530ef4ad2c8679a7e273bb3dd1";
+      sha256 = "0p4yfxdgf6wjzhg72ial4rzls7imsbf6skf82q1nqg7ihkng9rby";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -10522,12 +10656,12 @@ final: prev:
 
   tender-vim = buildVimPlugin {
     pname = "tender.vim";
-    version = "2021-05-24";
+    version = "2024-03-01";
     src = fetchFromGitHub {
       owner = "jacoborus";
       repo = "tender.vim";
-      rev = "7746453a045eaa97dc413a7209268345f33f3243";
-      sha256 = "0yxgcnx5x82ak74nz3pvkd1z8i3c7lcl068lh5izdpx65fk7m5yh";
+      rev = "ff01136712d2000760c7077f2aa06dac7987b696";
+      sha256 = "091xrfpa225ia8fk6rr30hzih1wcanmpf5chp3bx8fj0nwmd06wv";
     };
     meta.homepage = "https://github.com/jacoborus/tender.vim/";
   };
@@ -10678,12 +10812,12 @@ final: prev:
 
   tmux-nvim = buildVimPlugin {
     pname = "tmux.nvim";
-    version = "2024-02-12";
+    version = "2024-03-05";
     src = fetchFromGitHub {
       owner = "aserowy";
       repo = "tmux.nvim";
-      rev = "9c02adf16ff2f18c8e236deba91e9cf4356a02d2";
-      sha256 = "0lg3zcyd76qfbz90i01jwhxfglsnmggynh6v48lnbz0kj1prik4y";
+      rev = "63e9c5e054099dd30af306bd8ceaa2f1086e1b07";
+      sha256 = "0ynzljwq6hv7415p7pr0aqx8kycp84p3p3dy4jcx61dxfgdpgc4c";
     };
     meta.homepage = "https://github.com/aserowy/tmux.nvim/";
   };
@@ -10739,12 +10873,12 @@ final: prev:
 
   tokyonight-nvim = buildVimPlugin {
     pname = "tokyonight.nvim";
-    version = "2024-01-31";
+    version = "2024-03-10";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "tokyonight.nvim";
-      rev = "610179f7f12db3d08540b6cc61434db2eaecbcff";
-      sha256 = "1vdw6rav1y4i4x8pgxh6lgi6d21fvvzkw25maihxh865zrqrsc4v";
+      rev = "c025baf23b62f044eff1f4ef561c45de636f0e32";
+      sha256 = "1sd5ib228yw8vxb4xfg0pgbd06r90kz6pq8bn4f5qhrwi91jnvn0";
     };
     meta.homepage = "https://github.com/folke/tokyonight.nvim/";
   };
@@ -10782,7 +10916,7 @@ final: prev:
       rev = "fd35a46f4b7c1b244249266bdcb2da3814f01724";
       sha256 = "sha256-wT+7rmp08r0XYGp+MhjJX8dsFTar8+nf10CV9OdkOSk=";
     };
-    meta.homepage = "https://github.com/xiyaowong/transparent.nvim";
+    meta.homepage = "https://github.com/xiyaowong/transparent.nvim/";
   };
 
   treesj = buildVimPlugin {
@@ -10811,12 +10945,12 @@ final: prev:
 
   trim-nvim = buildVimPlugin {
     pname = "trim.nvim";
-    version = "2024-02-26";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "cappyzawa";
       repo = "trim.nvim";
-      rev = "17a16c532a0ba1528fe9a4d79015b2843734502d";
-      sha256 = "0p4nv4nyand3ksdg8wk8lybph6f9rcnrk4kn5awlih23nx88bsi1";
+      rev = "4fe47a46c02a58894ded8328ca81f6c214a892f5";
+      sha256 = "1h8w50an3fmp8xl052apblsnm0x70m1ykygjn5wb94wsb7crydl9";
     };
     meta.homepage = "https://github.com/cappyzawa/trim.nvim/";
   };
@@ -10919,12 +11053,12 @@ final: prev:
 
   typst-vim = buildVimPlugin {
     pname = "typst.vim";
-    version = "2024-02-26";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "kaarmu";
       repo = "typst.vim";
-      rev = "ff57d27cf5ee7427941a63fb537714f9a80e0246";
-      sha256 = "038llp0k4n1vnh06wgxf02qjik18as0cg346xz36f0h9hizxf36l";
+      rev = "8dbc6160138b8d12adbdce5d54595de9fbee9e8c";
+      sha256 = "18ajsy8cfqs4si0xz6l72w4a3015icxc59mibcvxa5m42hjvxf6s";
     };
     meta.homepage = "https://github.com/kaarmu/typst.vim/";
   };
@@ -10943,24 +11077,24 @@ final: prev:
 
   ultisnips = buildVimPlugin {
     pname = "ultisnips";
-    version = "2023-10-17";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "SirVer";
       repo = "ultisnips";
-      rev = "b393ba65386d47664421e1f8b246a87a6e8b218c";
-      sha256 = "1g6r2nd3nplilgp6fj012smlhs857kn10mb8qab2phh2ja1r25c7";
+      rev = "49dc8cb2086db19d385791c8e1635723b0fd95c7";
+      sha256 = "1awhd7iprh4387m97pak46cw81240wqyrrrkkkzgmw1qzmwh3nip";
     };
     meta.homepage = "https://github.com/SirVer/ultisnips/";
   };
 
   undotree = buildVimPlugin {
     pname = "undotree";
-    version = "2024-02-11";
+    version = "2024-03-08";
     src = fetchFromGitHub {
       owner = "mbbill";
       repo = "undotree";
-      rev = "9dbbf3b7d19dda0d22ceca461818e4739ad8154d";
-      sha256 = "1avs5cmwcnp5pnyk2d6krsmgqlbd5zf32nwwcxk5ac1mhyx9fcln";
+      rev = "aa93a7e5890dbbebbc064cd22260721a6db1a196";
+      sha256 = "110w9nr24rph717w1vs3vhfq1ggsjgq91zvyp431qxpa7wzd5pyk";
     };
     meta.homepage = "https://github.com/mbbill/undotree/";
   };
@@ -10979,12 +11113,12 @@ final: prev:
 
   unison = buildVimPlugin {
     pname = "unison";
-    version = "2024-02-29";
+    version = "2024-03-16";
     src = fetchFromGitHub {
       owner = "unisonweb";
       repo = "unison";
-      rev = "d20e9b1fe531a280b6f248a3d0dde1d8fb866491";
-      sha256 = "11fxrw31m9bq20gkh30wcfz155wfd9rzmh4if5spxrnfiar8vqh7";
+      rev = "dca4fa3a6c4713cb53621ba0bc04fba86060f8c3";
+      sha256 = "0ppr7hiakykdwf9ss2xnlx6cf4z3x4jvl28xz85n4qgi6yq5y025";
     };
     meta.homepage = "https://github.com/unisonweb/unison/";
   };
@@ -11075,24 +11209,24 @@ final: prev:
 
   vifm-vim = buildVimPlugin {
     pname = "vifm.vim";
-    version = "2024-02-25";
+    version = "2024-03-11";
     src = fetchFromGitHub {
       owner = "vifm";
       repo = "vifm.vim";
-      rev = "8021ee9734e08ace56b5ddf92d929d13b5352509";
-      sha256 = "1vbflxjh3x4a4agg7ha6qdxdl843dhk1g522m1ddmlx26w8gxq6c";
+      rev = "7a3dcb5796d7f8967fb3f53d0eb18526a41766eb";
+      sha256 = "1w1z25lf50m6yjjr7ss96scgii3k020bzvfcbypjrx72gnqrv18g";
     };
     meta.homepage = "https://github.com/vifm/vifm.vim/";
   };
 
   vim-CtrlXA = buildVimPlugin {
     pname = "vim-CtrlXA";
-    version = "2024-03-01";
+    version = "2024-03-05";
     src = fetchFromGitHub {
       owner = "Konfekt";
       repo = "vim-CtrlXA";
-      rev = "1c8621b1b0018d7fbe7cc8ede03595acc7b83a91";
-      sha256 = "0zsl85fn5nf2ffmv130nr49zzxspw97k48pdwnh87lbn4rs8pixg";
+      rev = "26ab577a888c6346a009702caa4522e73b42242f";
+      sha256 = "0ji9dabhylj83wanbsg3glag00ajfzdchd5jd9j2pv7aldndvbpa";
     };
     meta.homepage = "https://github.com/Konfekt/vim-CtrlXA/";
   };
@@ -11723,12 +11857,12 @@ final: prev:
 
   vim-bracketed-paste = buildVimPlugin {
     pname = "vim-bracketed-paste";
-    version = "2022-03-21";
+    version = "2024-03-06";
     src = fetchFromGitHub {
       owner = "ConradIrwin";
       repo = "vim-bracketed-paste";
-      rev = "45411da73cc159e4fc2138d930553d247bbfbcdc";
-      sha256 = "1bz40p7zr439ziy7mfks4jcs5rdnw4zinp81fw6wsm5knrx1r5qy";
+      rev = "ffa3bc10ab511a646f1b30bc9345f240c15394e9";
+      sha256 = "0vd2da853c9ms7dzqfcr8wz58gfiq4if20cn530hdg5b3pbsl6z2";
     };
     meta.homepage = "https://github.com/ConradIrwin/vim-bracketed-paste/";
   };
@@ -12131,12 +12265,12 @@ final: prev:
 
   vim-dadbod = buildVimPlugin {
     pname = "vim-dadbod";
-    version = "2024-02-26";
+    version = "2024-03-07";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dadbod";
-      rev = "acb78e078dc4fe1e997ebf006be17aa3766d2ef4";
-      sha256 = "0bfyj49wkdlila4qnf9ymf06z8kzfx74f932yvg1n4b25m1gyqf0";
+      rev = "960bbb7de11b7282a68d579a64e838b487934493";
+      sha256 = "0x7ax3d6srqa8b7hhnyxh8rp2f9aiv5z5vlv5n6mjgjgcpbqydg6";
     };
     meta.homepage = "https://github.com/tpope/vim-dadbod/";
   };
@@ -12662,11 +12796,11 @@ final: prev:
     version = "2018-11-13";
     src = fetchFromGitHub {
       owner = "fsharp";
-      repo = "vim-fsharp";
+      repo = "zarchive-vim-fsharp";
       rev = "012d98c981139976551a4d9779f5cce7f8d84d5c";
       sha256 = "0ds300kjhm352ni3fwivsrnc9ls021d2x29f4cdszillamcgs7pw";
     };
-    meta.homepage = "https://github.com/fsharp/vim-fsharp/";
+    meta.homepage = "https://github.com/fsharp/zarchive-vim-fsharp/";
   };
 
   vim-ft-diff_fold = buildVimPlugin {
@@ -12695,12 +12829,12 @@ final: prev:
 
   vim-fugitive = buildVimPlugin {
     pname = "vim-fugitive";
-    version = "2024-02-24";
+    version = "2024-03-04";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "2e88f14a585c014691904ba8fe39e6ea851c9422";
-      sha256 = "1218q9q6za9zlc383f6v2k6grl0sbsdc6rfi5cwssypp6npcmyfm";
+      rev = "41beedabc7e948c787ea5696e04c3544c3674e23";
+      sha256 = "17vwycm78bxk7y2s931lz3plzsfx39mkbgc4dnhbp9np16ywb0hc";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -13441,12 +13575,12 @@ final: prev:
 
   vim-just = buildVimPlugin {
     pname = "vim-just";
-    version = "2024-02-08";
+    version = "2024-03-04";
     src = fetchFromGitHub {
       owner = "NoahTheDuke";
       repo = "vim-just";
-      rev = "974b16e257e2d30d94ec954d815ff2755fa229fb";
-      sha256 = "0n0n9dgcp7fqc299khjddn661sv0pbbc17qsnnqwqh2fmdfpdnpc";
+      rev = "ace92c34d72a413d51459ce5e9503e50f3262988";
+      sha256 = "18vl1ci6plwfhvq542ad7y2vygfidq7f1cn00s6pf0npiyhghsi4";
     };
     meta.homepage = "https://github.com/NoahTheDuke/vim-just/";
   };
@@ -13705,12 +13839,12 @@ final: prev:
 
   vim-lsp-settings = buildVimPlugin {
     pname = "vim-lsp-settings";
-    version = "2024-02-28";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "mattn";
       repo = "vim-lsp-settings";
-      rev = "2bdd9757e71384eab3b5eaec846a194cf70ae5f3";
-      sha256 = "1c5bsnb1nv88m9rz2ks90c2laqwkkf0ac8h4kzqx7kxc6as8xin5";
+      rev = "b93c195d521ea4d6559880eb8d18f5a503e946d9";
+      sha256 = "047654s76zgv64hp2rvx94w5prb6i5wz7l6zbifa2m4ac9sjyqr2";
     };
     meta.homepage = "https://github.com/mattn/vim-lsp-settings/";
   };
@@ -13814,12 +13948,12 @@ final: prev:
 
   vim-markdown-toc = buildVimPlugin {
     pname = "vim-markdown-toc";
-    version = "2023-12-13";
+    version = "2024-03-10";
     src = fetchFromGitHub {
       owner = "mzlogin";
       repo = "vim-markdown-toc";
-      rev = "0e2c7cdc3ac1d067eb309a10220d001bb7be39cd";
-      sha256 = "0ggdbvv4mca4z0xhkdybimc4yy3bah1v21660wjs8n2v4f5rvslx";
+      rev = "5acf680e820940b1bd78a501298ff953455b8d65";
+      sha256 = "1r3nlqd7b6g5hrcqwrqm0rg095d9a6dnwazxw66wkda2psyj9xdd";
     };
     meta.homepage = "https://github.com/mzlogin/vim-markdown-toc/";
   };
@@ -14450,12 +14584,12 @@ final: prev:
 
   vim-plug = buildVimPlugin {
     pname = "vim-plug";
-    version = "2024-02-24";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "vim-plug";
-      rev = "2f8f04cf79f424aab8c2372d8e0b89099e3dba65";
-      sha256 = "03jvf9fcz5894g990jbmn7mr9afl07fkglph2lz3b5015i6ywy08";
+      rev = "2cd7bf673b5796ad7ee341a4b595a5479c4e9201";
+      sha256 = "0m0y9gi200aqvpb17cy5sjlkqm6vnd942xhq817wjpf5kgbdj4fk";
     };
     meta.homepage = "https://github.com/junegunn/vim-plug/";
   };
@@ -14558,24 +14692,24 @@ final: prev:
 
   vim-projectionist = buildVimPlugin {
     pname = "vim-projectionist";
-    version = "2024-02-26";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-projectionist";
-      rev = "afc737df8cb62bf630813edb84fd344b025b8b1a";
-      sha256 = "1kfn7arvdmyd0wc5kvb2hykwy7h44d2i4psmy70z6h6iy8lhhd42";
+      rev = "729f3630a4c19e52e1fd825802d2a1659daeaf48";
+      sha256 = "07mg6m47x9ab6awlc1kviahgzmfdxm1ykvnqrlf81msa5gb4a36k";
     };
     meta.homepage = "https://github.com/tpope/vim-projectionist/";
   };
 
   vim-prosession = buildVimPlugin {
     pname = "vim-prosession";
-    version = "2023-11-01";
+    version = "2024-03-07";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-prosession";
-      rev = "a79ac2677c5f7ee766454b6c30f21bc033049037";
-      sha256 = "0rvimllhz91yykwqgl1ffxc19c4dds4q17wa4ip0zv7y7fydhzvf";
+      rev = "1cb2eadde0b79f49eb4b5a54cc78735aea33cbca";
+      sha256 = "01ky6lgxcb9ghgmd8bw0ja6rvd0hsds8fzdpa7dn8j6x7yl4mcbv";
     };
     meta.homepage = "https://github.com/dhruvasagar/vim-prosession/";
   };
@@ -14594,12 +14728,12 @@ final: prev:
 
   vim-ps1 = buildVimPlugin {
     pname = "vim-ps1";
-    version = "2023-12-09";
+    version = "2024-03-06";
     src = fetchFromGitHub {
       owner = "PProvost";
       repo = "vim-ps1";
-      rev = "be5dce9cd15176c6b1ecd056a8ced93fc2f6efac";
-      sha256 = "1k8a1ilsshjvahf9az1x8nalb5wkin8jxzi3zqc658liww2qm98z";
+      rev = "839cec1550e09fc902c74103053e9e765051083d";
+      sha256 = "0cpkxhyvcdbwicyb6h1lknb0r666rxlgjx6pq5s1xwxqva6lpmqv";
     };
     meta.homepage = "https://github.com/PProvost/vim-ps1/";
   };
@@ -14906,12 +15040,12 @@ final: prev:
 
   vim-sentence-chopper = buildVimPlugin {
     pname = "vim-sentence-chopper";
-    version = "2023-02-15";
+    version = "2024-03-08";
     src = fetchFromGitHub {
       owner = "Konfekt";
       repo = "vim-sentence-chopper";
-      rev = "39f50c65a46909e8c4c808310fa4187a8e3c1b38";
-      sha256 = "11kcja7gpi7ri7j8241ay6py75a6va72qv0bl2w235vx0l3zv486";
+      rev = "b1394d3dbc3675324b2735c12f0df99395d9d7ba";
+      sha256 = "12llyn54qmbwzvn3m08r8k1fp6xwqp71sbbkp9j587kd4d6y5kps";
     };
     meta.homepage = "https://github.com/Konfekt/vim-sentence-chopper/";
   };
@@ -15314,24 +15448,24 @@ final: prev:
 
   vim-tabby = buildVimPlugin {
     pname = "vim-tabby";
-    version = "2024-02-01";
+    version = "2024-03-01";
     src = fetchFromGitHub {
       owner = "TabbyML";
       repo = "vim-tabby";
-      rev = "0b62bc2ed5c7d930c7435c3504d5c18ea6379b28";
-      sha256 = "06crxhvwz04s6sfj0q22kkp3g5zvip13088m95qwznw9bv2gpx3s";
+      rev = "afd76df166ed0f223ede1071e0cfde8075cc4a24";
+      sha256 = "0wp5c1m95k000sw8j4b8rwphmkg529dscch6ps50fjn9j91ab96g";
     };
     meta.homepage = "https://github.com/TabbyML/vim-tabby/";
   };
 
   vim-table-mode = buildVimPlugin {
     pname = "vim-table-mode";
-    version = "2023-10-29";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-table-mode";
-      rev = "4ff8de2ac93431ee6d85a9e04177012752e6abdc";
-      sha256 = "0wpdh17chadai08kbvd1gkfyzv5b64l4nwbj80jgsig5p4qqz3pj";
+      rev = "e4365bde024f73e205eefa2fb78e3029ddb92ea9";
+      sha256 = "0n7wsh9mrh4n24wwdgdwk52sqrwzii6v5bkvbihhaxbwhxq397pj";
     };
     meta.homepage = "https://github.com/dhruvasagar/vim-table-mode/";
   };
@@ -15411,12 +15545,12 @@ final: prev:
 
   vim-test = buildVimPlugin {
     pname = "vim-test";
-    version = "2024-01-26";
+    version = "2024-03-14";
     src = fetchFromGitHub {
       owner = "vim-test";
       repo = "vim-test";
-      rev = "46d2067586b788e2194e812bbfdbb2061b93a5ee";
-      sha256 = "150wl2gky4v4qs9czag3q64p4xcp1x53dyy5dkiyz2bwalphwv01";
+      rev = "a49c9cade75e97cace5e3ba545ce82d02f689feb";
+      sha256 = "0mw7jzi5qf4wn4zbm63ddn2xa97fhd38rp68ddnbvj8lqqjjkxam";
     };
     meta.homepage = "https://github.com/vim-test/vim-test/";
   };
@@ -15507,12 +15641,12 @@ final: prev:
 
   vim-themis = buildVimPlugin {
     pname = "vim-themis";
-    version = "2023-11-06";
+    version = "2024-03-02";
     src = fetchFromGitHub {
       owner = "thinca";
       repo = "vim-themis";
-      rev = "77b37bef259b9979e15fd7fdaf659cc167487f21";
-      sha256 = "1xskpb8ah9p5qw5vljc12zq7alm95xjhlcy78jhahb48nkf2b39l";
+      rev = "5c8df1b5fa495ece990df5596d8e7fa1be2c2355";
+      sha256 = "14v75zl5dgxi9pyv8vm79gd578mnq0mw4c947v8f2zhlc4xbda04";
     };
     meta.homepage = "https://github.com/thinca/vim-themis/";
   };
@@ -15831,12 +15965,12 @@ final: prev:
 
   vim-wakatime = buildVimPlugin {
     pname = "vim-wakatime";
-    version = "2024-02-22";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "wakatime";
       repo = "vim-wakatime";
-      rev = "285c2e4e48fb0c63ced233c00fb10a2edb3b6c94";
-      sha256 = "1f7jqmsr7b9103g9fif3p8fglrqlgk5nf3ckhkjpwfy6355vk41h";
+      rev = "56b4d073adaf18c04c7bb5728d41c03b2f25754d";
+      sha256 = "1qcx81hgamz4v7nxhbx0kbwsx2qm0b7rsgpja16imhycvlaf28n1";
     };
     meta.homepage = "https://github.com/wakatime/vim-wakatime/";
   };
@@ -15927,12 +16061,12 @@ final: prev:
 
   vim-xkbswitch = buildVimPlugin {
     pname = "vim-xkbswitch";
-    version = "2023-05-11";
+    version = "2024-03-12";
     src = fetchFromGitHub {
       owner = "lyokha";
       repo = "vim-xkbswitch";
-      rev = "42b55bfec8f6dbd715135ce582a6f769831face1";
-      sha256 = "0asqj8icak9a6rqvf0xqax1g6lj0gjp6c2yhmmrzql5d4kbx1id6";
+      rev = "42ef558e792e35600e608d1cd7ad8a760f157269";
+      sha256 = "0aim4bdznk4iklz67nrbw67x3vjv18nmiqy2730b75kl88v0n6iw";
     };
     meta.homepage = "https://github.com/lyokha/vim-xkbswitch/";
   };
@@ -16156,12 +16290,12 @@ final: prev:
 
   vimtex = buildVimPlugin {
     pname = "vimtex";
-    version = "2024-02-27";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "2bb7cdc17c0ac18266e4c96083290956169c1c38";
-      sha256 = "06y7hhv86xgms4wli5sqhlsdpcb08lv6yjx0k7y1yp69sfyb2cxp";
+      rev = "577f7c59a4c0047ef354eb2f6fef39cbdc9a4556";
+      sha256 = "0bglgaqdy6abdf4cnyyqqlh33d9537k1w6jmkzzb90q8mwlvy23k";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -16240,12 +16374,12 @@ final: prev:
 
   vscode-nvim = buildVimPlugin {
     pname = "vscode.nvim";
-    version = "2024-02-29";
+    version = "2024-03-13";
     src = fetchFromGitHub {
       owner = "Mofiqul";
       repo = "vscode.nvim";
-      rev = "2f248dceb66b5706b98ee86370eb7673862a3903";
-      sha256 = "0261ahb7my88kkw91b0n9y0ss6whsr2gilma6a1rbjpbmymskljv";
+      rev = "ea9ff6da3756ab229bcb59aad1ea7749eb15b065";
+      sha256 = "1m2zb5wzcdvhir7ijk49r210s7r6j8yzjgx9w60pqjh1pywi423x";
     };
     meta.homepage = "https://github.com/Mofiqul/vscode.nvim/";
   };
@@ -16649,12 +16783,12 @@ final: prev:
 
   catppuccin-nvim = buildVimPlugin {
     pname = "catppuccin-nvim";
-    version = "2024-02-24";
+    version = "2024-03-05";
     src = fetchFromGitHub {
       owner = "catppuccin";
       repo = "nvim";
-      rev = "c0de3b46811fe1ce3912e2245a9dfbea6b41c300";
-      sha256 = "12m5jzp2xyv0hyndscnj7708b8rczsmqqr0kd4ng7kh5ll0xr8br";
+      rev = "045e3499d9ec8d84635fb08877ae44fd33f6a38d";
+      sha256 = "1l86f56lcb0rklg1mipa9ssvgipx02vl5f4d60m5xary72qsgcva";
     };
     meta.homepage = "https://github.com/catppuccin/nvim/";
   };
@@ -16745,12 +16879,12 @@ final: prev:
 
   nightfly = buildVimPlugin {
     pname = "nightfly";
-    version = "2024-01-30";
+    version = "2024-03-16";
     src = fetchFromGitHub {
       owner = "bluz71";
       repo = "vim-nightfly-colors";
-      rev = "56fe47bd16272d9644fd9946a2596fa2c3905c35";
-      sha256 = "075iagcglwl2ggl1p6p0lmkpfrqsr5g48j3pix3xb5sx82697l3j";
+      rev = "43ca56b9035be8b276889637c281f4d7d8833e1c";
+      sha256 = "1if5l751gym0810ysbls1pp5c9b7il9vzqngzf4936bs9gw7wzql";
     };
     meta.homepage = "https://github.com/bluz71/vim-nightfly-colors/";
   };
@@ -16769,12 +16903,12 @@ final: prev:
 
   nvchad-ui = buildVimPlugin {
     pname = "nvchad-ui";
-    version = "2024-02-21";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "nvchad";
       repo = "ui";
-      rev = "7b3225264af17a9e0aff0b4fd2a0fac90b73db53";
-      sha256 = "00frh2f0vgz9h3ajbig2df6a6jj1sarbwxnxzr232vi25azysy2z";
+      rev = "5a910659cffebf9671d0df1f98fb159c13ee9152";
+      sha256 = "10zxpzi2xzniy128f7871dc309flsda69las1ngyv7nclzq5mdwz";
     };
     meta.homepage = "https://github.com/nvchad/ui/";
   };
@@ -16817,12 +16951,12 @@ final: prev:
 
   rose-pine = buildVimPlugin {
     pname = "rose-pine";
-    version = "2024-02-14";
+    version = "2024-03-15";
     src = fetchFromGitHub {
       owner = "rose-pine";
       repo = "neovim";
-      rev = "f977eeba34b030b37f93ece2fbd792477606203b";
-      sha256 = "1mlpqm0g8nx8pfnn5kgg8scqayjl6n3x4jnnpbb4hharrrp37sb6";
+      rev = "c52167563e6aa44b5fa6fe007faa2bcac71050f0";
+      sha256 = "1sghyhmr0zsgd4qj1av8hxx9ca5kx9ks2zynrm13bnyr46kci73p";
     };
     meta.homepage = "https://github.com/rose-pine/neovim/";
   };
@@ -16875,5 +17009,17 @@ final: prev:
     meta.homepage = "https://github.com/jhradilek/vim-snippets/";
   };
 
+  virt-column-nvim = buildVimPlugin {
+    pname = "virt-column-nvim";
+    version = "2023-11-13";
+    src = fetchFromGitHub {
+      owner = "lukas-reineke";
+      repo = "virt-column.nvim";
+      rev = "b62b4ef0774d19452d4ed18e473e824c7a756f2f";
+      sha256 = "sha256-7ljjJ7UwN2U1xPCtsYbrKdnz6SGQGbM/HrxPTxNKlwo=";
+    };
+    meta.homepage = "https://github.com/lukas-reineke/virt-column.nvim/";
+  };
+
 
 }
diff --git a/nixpkgs/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix b/nixpkgs/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
index 7006b2e8064f..518473b45124 100644
--- a/nixpkgs/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
@@ -27,12 +27,12 @@
   };
   angular = buildGrammar {
     language = "angular";
-    version = "0.0.0+rev=6d02054";
+    version = "0.0.0+rev=62179d7";
     src = fetchFromGitHub {
       owner = "dlvandenberg";
       repo = "tree-sitter-angular";
-      rev = "6d02054ae9aa1fedf5097fe6d93dd78f751dff21";
-      hash = "sha256-Bm3I9a14WMNqL+nt5qr8Bd0Z4BOTCCF25wFrJ07FCSw=";
+      rev = "62179d7bbfb5fd8a8f7298495ac654d252a1bd52";
+      hash = "sha256-qRsBeJ01kGTKJqFubG1u9SFa1nsDH7ZHKQ0cGwfqi84=";
     };
     meta.homepage = "https://github.com/dlvandenberg/tree-sitter-angular";
   };
@@ -50,12 +50,12 @@
   };
   arduino = buildGrammar {
     language = "arduino";
-    version = "0.0.0+rev=7722d43";
+    version = "0.0.0+rev=e3a0a7f";
     src = fetchFromGitHub {
       owner = "ObserverOfTime";
       repo = "tree-sitter-arduino";
-      rev = "7722d4398d87ea22c4877264f88b45bd7ce0cba5";
-      hash = "sha256-pNiJY+KJ8QrL7xXOX/NRIFxIbXmf9DkVC9FUvXlk5qQ=";
+      rev = "e3a0a7f60e544afc478b72cdda7ffc0f2f889db0";
+      hash = "sha256-WdGCnZSMxyNJJYHB5H5Atc9EW2/0oB22/OWyxTrQHT8=";
     };
     meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-arduino";
   };
@@ -94,23 +94,23 @@
   };
   awk = buildGrammar {
     language = "awk";
-    version = "0.0.0+rev=207b049";
+    version = "0.0.0+rev=ba74721";
     src = fetchFromGitHub {
       owner = "Beaglefoot";
       repo = "tree-sitter-awk";
-      rev = "207b04974c83d8d25a947e4d09763675c4617da7";
-      hash = "sha256-sW6ix5j9VpeQj7dct9u3cJ8sXgjIQlhQ7Nnh2S8wWbk=";
+      rev = "ba7472152d79a8c916550c80fdbfd5724d07a0c9";
+      hash = "sha256-ywrd9wCdrQ9UZPXvB8fUkelFaZzHxL+hDAPSecMueFs=";
     };
     meta.homepage = "https://github.com/Beaglefoot/tree-sitter-awk";
   };
   bash = buildGrammar {
     language = "bash";
-    version = "0.0.0+rev=975bc70";
+    version = "0.0.0+rev=f3f26f4";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-bash";
-      rev = "975bc70ad95dbbf2733872bc2e0a059c055db983";
-      hash = "sha256-SU5wBy81aANd7oUZvYR14Vd53Ml/cBSwDtO6uG34CaE=";
+      rev = "f3f26f47a126797c011c311cec9d449d855c3eab";
+      hash = "sha256-6Rfxh8Y6dg2wyQ9jYnbOaXm1SVfQDQ1B1tNqgpz6sY4=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-bash";
   };
@@ -127,12 +127,12 @@
   };
   beancount = buildGrammar {
     language = "beancount";
-    version = "0.0.0+rev=1f19abf";
+    version = "0.0.0+rev=6c665e7";
     src = fetchFromGitHub {
       owner = "polarmutex";
       repo = "tree-sitter-beancount";
-      rev = "1f19abf1e162e1828013cb5434c6cf30f4054e80";
-      hash = "sha256-yb6z5iLMoK1wWCS9laA1muRVLssFwnyAg4SKWVsti0s=";
+      rev = "6c665e7cf15d76a1687959643868a78fb381458d";
+      hash = "sha256-hVFPt+ndXx38SH/e/dORz226SQwDNu1j4cinvJLhkTM=";
     };
     meta.homepage = "https://github.com/polarmutex/tree-sitter-beancount";
   };
@@ -182,12 +182,12 @@
   };
   c = buildGrammar {
     language = "c";
-    version = "0.0.0+rev=652433f";
+    version = "0.0.0+rev=371fd0b";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-c";
-      rev = "652433fce487d8c3943207da38e3e65e4550e288";
-      hash = "sha256-Ld8ufwdOVqRYb9YpOa6z6fWoA+gj0w0nlq3dqhFCap8=";
+      rev = "371fd0bf0650581b6e49f06f438c88c419859696";
+      hash = "sha256-zaH4b5lsOtnl1e07ERU2mP/IFvg90YjsFFhvz+EY/ig=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
   };
@@ -248,12 +248,12 @@
   };
   cmake = buildGrammar {
     language = "cmake";
-    version = "0.0.0+rev=f8de25f";
+    version = "0.0.0+rev=7dc1582";
     src = fetchFromGitHub {
       owner = "uyha";
       repo = "tree-sitter-cmake";
-      rev = "f8de25f30757a2def006a7c144354710fe63dcf3";
-      hash = "sha256-J8Ro3J9kkH7k/v+nwekCotoS/l28yInhk9p/xaSbegc=";
+      rev = "7dc15823107831729c64a917c796a93cf5c6a7e3";
+      hash = "sha256-kz/FnQMibzmZ6O/x92q8IfrriO0vUlZhozIzhS0jRyo=";
     };
     meta.homepage = "https://github.com/uyha/tree-sitter-cmake";
   };
@@ -359,12 +359,12 @@
   };
   cue = buildGrammar {
     language = "cue";
-    version = "0.0.0+rev=2df92e6";
+    version = "0.0.0+rev=8a5f273";
     src = fetchFromGitHub {
       owner = "eonpatapon";
       repo = "tree-sitter-cue";
-      rev = "2df92e6755337e9234ad18ffef37f35d95e2ba9d";
-      hash = "sha256-RsWbGMC2RXfZlZnkXJclMwiGecZ8Sc1OPkG+mmE5r6Q=";
+      rev = "8a5f273bfa281c66354da562f2307c2d394b6c81";
+      hash = "sha256-uV7Tl41PCU+8uJa693km5xvysvbptbT7LvGyYIelspk=";
     };
     meta.homepage = "https://github.com/eonpatapon/tree-sitter-cue";
   };
@@ -768,12 +768,12 @@
   };
   gitcommit = buildGrammar {
     language = "gitcommit";
-    version = "0.0.0+rev=6bd8196";
+    version = "0.0.0+rev=523a1a4";
     src = fetchFromGitHub {
       owner = "gbprod";
       repo = "tree-sitter-gitcommit";
-      rev = "6bd81962d1abe309bf5dffde3315e4a5988f35fd";
-      hash = "sha256-aSgnTbhpekeDDUzz9hecebW5ejCnmLiE5d1fTTxP19g=";
+      rev = "523a1a4f0f674eff7fbf46addfa6ef7644151aae";
+      hash = "sha256-QWWX/92yOZES1XgcCTu77tgcfeRhaUEJJudCCopMBrk=";
     };
     meta.homepage = "https://github.com/gbprod/tree-sitter-gitcommit";
   };
@@ -790,12 +790,12 @@
   };
   gleam = buildGrammar {
     language = "gleam";
-    version = "0.0.0+rev=58b7cac";
+    version = "0.0.0+rev=2012f29";
     src = fetchFromGitHub {
       owner = "gleam-lang";
       repo = "tree-sitter-gleam";
-      rev = "58b7cac8fc14c92b0677c542610d8738c373fa81";
-      hash = "sha256-VtuGsa8jKndxlyJKy9UHfZXvAgr63Q0iwceXKfEUAYE=";
+      rev = "2012f294baacf30e7a62414754021284377366c6";
+      hash = "sha256-W+PfxqPUKHhLH5UBATmQ1mlSfLPAWIQyDgiSQBWBtBs=";
     };
     meta.homepage = "https://github.com/gleam-lang/tree-sitter-gleam";
   };
@@ -887,6 +887,17 @@
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-go-sum";
   };
+  gotmpl = buildGrammar {
+    language = "gotmpl";
+    version = "0.0.0+rev=17144a7";
+    src = fetchFromGitHub {
+      owner = "ngalaiko";
+      repo = "tree-sitter-go-template";
+      rev = "17144a77be0acdecebd9d557398883569fed41de";
+      hash = "sha256-aB8MTTKzxV9+66goNfFRI39wzuBiGECAc8HvAQzIv80=";
+    };
+    meta.homepage = "https://github.com/ngalaiko/tree-sitter-go-template";
+  };
   gowork = buildGrammar {
     language = "gowork";
     version = "0.0.0+rev=949a8a4";
@@ -900,12 +911,12 @@
   };
   gpg = buildGrammar {
     language = "gpg";
-    version = "0.0.0+rev=d4c9cc0";
+    version = "0.0.0+rev=f99323f";
     src = fetchFromGitHub {
       owner = "ObserverOfTime";
       repo = "tree-sitter-gpg-config";
-      rev = "d4c9cc0060cd4d1b8ca6d7add9f34352ad310a09";
-      hash = "sha256-kV9GN0qdVNA7LFYoCM/ISEW4Mpd5v9+oHV83XgEJTRs=";
+      rev = "f99323fb8f3f10b6c69db0c2f6d0a14bd7330675";
+      hash = "sha256-VJXXpHVMKUNaslsjoKR6XsaUJ8C+0MyidXtRPRywnpg=";
     };
     meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-gpg-config";
   };
@@ -988,26 +999,38 @@
   };
   hcl = buildGrammar {
     language = "hcl";
-    version = "0.0.0+rev=e135399";
+    version = "0.0.0+rev=e936d3f";
     src = fetchFromGitHub {
       owner = "MichaHoffmann";
       repo = "tree-sitter-hcl";
-      rev = "e135399cb31b95fac0760b094556d1d5ce84acf0";
-      hash = "sha256-Ylxpj+e9YGhyRRRCCVs0g/zhwHpwGELxG2i+E3SFmpQ=";
+      rev = "e936d3fef8bac884661472dce71ad82284761eb1";
+      hash = "sha256-lcvs4auZrMb1f9ocrAnLVxX8JnvrPT18LsJBqoNG9Oo=";
     };
     meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-hcl";
   };
   heex = buildGrammar {
     language = "heex";
-    version = "0.0.0+rev=4a36c9a";
+    version = "0.0.0+rev=b5ad6e3";
     src = fetchFromGitHub {
       owner = "connorlay";
       repo = "tree-sitter-heex";
-      rev = "4a36c9a388505180da6ee0eda1d8afb8c83481c8";
-      hash = "sha256-6gdAxNI81jbN8XZALRw31kFQRZg8ge/O7QRprLZpWOg=";
+      rev = "b5ad6e34eea18a15bbd1466ca707a17f9bff7b93";
+      hash = "sha256-o0ArFfBJTrEQVXVet+AIDPCB/b9KKvOYrrtMGyLgtM8=";
     };
     meta.homepage = "https://github.com/connorlay/tree-sitter-heex";
   };
+  helm = buildGrammar {
+    language = "helm";
+    version = "0.0.0+rev=17144a7";
+    src = fetchFromGitHub {
+      owner = "ngalaiko";
+      repo = "tree-sitter-go-template";
+      rev = "17144a77be0acdecebd9d557398883569fed41de";
+      hash = "sha256-aB8MTTKzxV9+66goNfFRI39wzuBiGECAc8HvAQzIv80=";
+    };
+    location = "dialects/helm";
+    meta.homepage = "https://github.com/ngalaiko/tree-sitter-go-template";
+  };
   hjson = buildGrammar {
     language = "hjson";
     version = "0.0.0+rev=02fa3b7";
@@ -1065,12 +1088,12 @@
   };
   html = buildGrammar {
     language = "html";
-    version = "0.0.0+rev=b5d9758";
+    version = "0.0.0+rev=b285e25";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-html";
-      rev = "b5d9758e22b4d3d25704b72526670759a9e4d195";
-      hash = "sha256-v3BD36OKkzJ1xqQV87HAyQpnQzi/4+PuyEAM1HfkW3U=";
+      rev = "b285e25c1ba8729399ce4f15ac5375cf6c3aa5be";
+      hash = "sha256-bAFSq2FXtSvFY8FrpeDgXXSq66QZsUrdz1As07B45u0=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-html";
   };
@@ -1153,23 +1176,23 @@
   };
   java = buildGrammar {
     language = "java";
-    version = "0.0.0+rev=99b29f1";
+    version = "0.0.0+rev=5e62fbb";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-java";
-      rev = "99b29f1ed957b3b424b6e21f57bd21a9732a622a";
-      hash = "sha256-2A3dXO+N3M7GEiI06Dn28vU73Bow6vK0deC85mY058Q=";
+      rev = "5e62fbb519b608dfd856000fdc66536304c414de";
+      hash = "sha256-Wki+tdLzYINDbZMFd79QIDNK46rtzx25Qy0mB54eWN4=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-java";
   };
   javascript = buildGrammar {
     language = "javascript";
-    version = "0.0.0+rev=51aed72";
+    version = "0.0.0+rev=de1e682";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-javascript";
-      rev = "51aed7263d33bee46b0a8a5e165ffcb690d5aca8";
-      hash = "sha256-FDnVwYpPgenOTgWaX/VdmtUmmIbCm/TtkiQ3TFoQjYY=";
+      rev = "de1e682289a417354df5b4437a3e4f92e0722a0f";
+      hash = "sha256-HhqYqU1CwPxXMHp21unRekFDzpGVedlgh/4bsplhe9c=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-javascript";
   };
@@ -1274,12 +1297,12 @@
   };
   kotlin = buildGrammar {
     language = "kotlin";
-    version = "0.0.0+rev=4e909d6";
+    version = "0.0.0+rev=260afd9";
     src = fetchFromGitHub {
       owner = "fwcd";
       repo = "tree-sitter-kotlin";
-      rev = "4e909d6cc9ac96b4eaecb3fb538eaca48e9e9ee9";
-      hash = "sha256-Rmq5G+7h/XSNX7JYtpAKcWbOZ1aZpBpe9GpaizK2DRk=";
+      rev = "260afd9a92bac51b3a4546303103c3d40a430639";
+      hash = "sha256-cmtUGmytAgiqBi31CNxEX+vE3YXmH1hphsIHvGRd7SY=";
     };
     meta.homepage = "https://github.com/fwcd/tree-sitter-kotlin";
   };
@@ -1373,12 +1396,12 @@
   };
   lua = buildGrammar {
     language = "lua";
-    version = "0.0.0+rev=04c9579";
+    version = "0.0.0+rev=a24dab1";
     src = fetchFromGitHub {
       owner = "MunifTanjim";
       repo = "tree-sitter-lua";
-      rev = "04c9579dcb917255b2e5f8199df4ae7f587d472f";
-      hash = "sha256-kzyn6XF4/PN8civ/0UV+ancCMkh7DF2B7WUYxix6aaM=";
+      rev = "a24dab177e58c9c6832f96b9a73102a0cfbced4a";
+      hash = "sha256-uFaEptW4wPrqgHfB1mYmVltf+4no61L2cPgpsr5qBIU=";
     };
     meta.homepage = "https://github.com/MunifTanjim/tree-sitter-lua";
   };
@@ -1439,24 +1462,24 @@
   };
   markdown = buildGrammar {
     language = "markdown";
-    version = "0.0.0+rev=2821521";
+    version = "0.0.0+rev=b2f0198";
     src = fetchFromGitHub {
       owner = "MDeiml";
       repo = "tree-sitter-markdown";
-      rev = "2821521a4e6eab37b63dff6a8e169cd88554047d";
-      hash = "sha256-JoZ/CKIMHVowwqTMFdys+Qu1CHMsP+8Wr2LJo5h30B4=";
+      rev = "b2f01981a76e3251f5b660378136c248ed106b81";
+      hash = "sha256-6gxtiO6Dzo5BELdw/dAaQB90SJYelr/RqvTzNK55caA=";
     };
     location = "tree-sitter-markdown";
     meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
   };
   markdown_inline = buildGrammar {
     language = "markdown_inline";
-    version = "0.0.0+rev=2821521";
+    version = "0.0.0+rev=b2f0198";
     src = fetchFromGitHub {
       owner = "MDeiml";
       repo = "tree-sitter-markdown";
-      rev = "2821521a4e6eab37b63dff6a8e169cd88554047d";
-      hash = "sha256-JoZ/CKIMHVowwqTMFdys+Qu1CHMsP+8Wr2LJo5h30B4=";
+      rev = "b2f01981a76e3251f5b660378136c248ed106b81";
+      hash = "sha256-6gxtiO6Dzo5BELdw/dAaQB90SJYelr/RqvTzNK55caA=";
     };
     location = "tree-sitter-markdown-inline";
     meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
@@ -1507,12 +1530,12 @@
   };
   mlir = buildGrammar {
     language = "mlir";
-    version = "0.0.0+rev=117cbbc";
+    version = "0.0.0+rev=992c756";
     src = fetchFromGitHub {
       owner = "artagnon";
       repo = "tree-sitter-mlir";
-      rev = "117cbbc46bbf82ae30b24f8939573655017226da";
-      hash = "sha256-c0+Pvhe++fHmRL9Ptri+vsdRN3MCb2Z/7EqWmFaK/CE=";
+      rev = "992c756686eb968af752ce75a874591042a8e24c";
+      hash = "sha256-nm7YSwj10p6GKR7lUJZ5SZeiW8fh+5ZI52haeUM3oDE=";
     };
     generate = true;
     meta.homepage = "https://github.com/artagnon/tree-sitter-mlir";
@@ -1541,12 +1564,12 @@
   };
   nickel = buildGrammar {
     language = "nickel";
-    version = "0.0.0+rev=33a64ec";
+    version = "0.0.0+rev=58baf89";
     src = fetchFromGitHub {
       owner = "nickel-lang";
       repo = "tree-sitter-nickel";
-      rev = "33a64ec9a27058c52e4195f1030235dcdfc04747";
-      hash = "sha256-gTOePRg5ZEXfBL35biG6abpxW2eycgbHIzaL6w4g8rc=";
+      rev = "58baf89db8fdae54a84bcf22c80ff10ee3f929ed";
+      hash = "sha256-WuY6X1mnXdjiy4joIcY8voK2sqICFf0GvudulZ9lwqg=";
     };
     meta.homepage = "https://github.com/nickel-lang/tree-sitter-nickel";
   };
@@ -1640,24 +1663,24 @@
   };
   ocaml = buildGrammar {
     language = "ocaml";
-    version = "0.0.0+rev=9965d20";
+    version = "0.0.0+rev=712d9bf";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-ocaml";
-      rev = "9965d208337d88bbf1a38ad0b0fe49e5f5ec9677";
-      hash = "sha256-9Y/eZNsKkz8RKjMn5RIAPITkDQTWdSc/fBXzxMg1ViQ=";
+      rev = "712d9bfa1d537c5899dde5538767ed2d8bb37a93";
+      hash = "sha256-l4hchr03Jrsat863K8wfBeHo1o9dw0T3RAl4MMWKIHA=";
     };
     location = "ocaml";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-ocaml";
   };
   ocaml_interface = buildGrammar {
     language = "ocaml_interface";
-    version = "0.0.0+rev=9965d20";
+    version = "0.0.0+rev=712d9bf";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-ocaml";
-      rev = "9965d208337d88bbf1a38ad0b0fe49e5f5ec9677";
-      hash = "sha256-9Y/eZNsKkz8RKjMn5RIAPITkDQTWdSc/fBXzxMg1ViQ=";
+      rev = "712d9bfa1d537c5899dde5538767ed2d8bb37a93";
+      hash = "sha256-l4hchr03Jrsat863K8wfBeHo1o9dw0T3RAl4MMWKIHA=";
     };
     location = "interface";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-ocaml";
@@ -1742,24 +1765,24 @@
   };
   php = buildGrammar {
     language = "php";
-    version = "0.0.0+rev=78a78df";
+    version = "0.0.0+rev=ad414fa";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-php";
-      rev = "78a78df5e06b4c13173af2a1f607c9a853d0f240";
-      hash = "sha256-N7qbOQethP/ZZHu5r+SJYCdrX4FVg72YuyULpuMUAhw=";
+      rev = "ad414fa5497328e96ef992d80896f19c77584f7c";
+      hash = "sha256-is5jtMg3G4ay+yF1Eti0jDljlB4vmibLPW0qup+8VeU=";
     };
     location = "php";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
   };
   php_only = buildGrammar {
     language = "php_only";
-    version = "0.0.0+rev=78a78df";
+    version = "0.0.0+rev=ad414fa";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-php";
-      rev = "78a78df5e06b4c13173af2a1f607c9a853d0f240";
-      hash = "sha256-N7qbOQethP/ZZHu5r+SJYCdrX4FVg72YuyULpuMUAhw=";
+      rev = "ad414fa5497328e96ef992d80896f19c77584f7c";
+      hash = "sha256-is5jtMg3G4ay+yF1Eti0jDljlB4vmibLPW0qup+8VeU=";
     };
     location = "php_only";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
@@ -1921,12 +1944,12 @@
   };
   puppet = buildGrammar {
     language = "puppet";
-    version = "0.0.0+rev=3641b9e";
+    version = "0.0.0+rev=5849f96";
     src = fetchFromGitHub {
       owner = "amaanq";
       repo = "tree-sitter-puppet";
-      rev = "3641b9e854ac9c84c7576e71c4c9a357bcfd9550";
-      hash = "sha256-J1DBjQRdV4R85NTyg/qmwbjm1bryKe3UOdp4XyH6BQc=";
+      rev = "5849f9694197a6e822872945b415429c285fdd54";
+      hash = "sha256-Lwfiby7amjTIOz8QRoC4RdZyFPfFikmQ2sqta4akyH8=";
     };
     meta.homepage = "https://github.com/amaanq/tree-sitter-puppet";
   };
@@ -1954,12 +1977,12 @@
   };
   python = buildGrammar {
     language = "python";
-    version = "0.0.0+rev=22d3f87";
+    version = "0.0.0+rev=b8a4c64";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-python";
-      rev = "22d3f87bdafac2782e907330babe4af574f5d0b4";
-      hash = "sha256-tyEawslx00ZwohMZo4HBa/INfbS7q6Ob2LO7pvowobk=";
+      rev = "b8a4c64121ba66b460cb878e934e3157ecbfb124";
+      hash = "sha256-ZTqWyr4+pOyXY4X/WnYdn9Sgp7T8FEEUy/TQPuFqb4k=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-python";
   };
@@ -1998,12 +2021,12 @@
   };
   query = buildGrammar {
     language = "query";
-    version = "0.0.0+rev=a0ccc35";
+    version = "0.0.0+rev=176a380";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "tree-sitter-query";
-      rev = "a0ccc351e5e868ec1f8135e97aa3b53c663cf2df";
-      hash = "sha256-H2QLsjl3/Kh0ojCf2Df38tb9KrM2InphEmtGd0J6+hM=";
+      rev = "176a380df78800167565118bb0dadfc961abbd43";
+      hash = "sha256-b9M213q6dmuK65llDTMW7rksrOyTEzlE0kdAVv0fDnA=";
     };
     meta.homepage = "https://github.com/nvim-treesitter/tree-sitter-query";
   };
@@ -2020,12 +2043,12 @@
   };
   racket = buildGrammar {
     language = "racket";
-    version = "0.0.0+rev=e4ba1a9";
+    version = "0.0.0+rev=b5a2fe7";
     src = fetchFromGitHub {
       owner = "6cdh";
       repo = "tree-sitter-racket";
-      rev = "e4ba1a9674a3b4dd7905d04f194ae6f8331be342";
-      hash = "sha256-4+TRol2i6ibuXqBr6O8jI/4MZq8hnf09eVBtPqaKp8s=";
+      rev = "b5a2fe74cac87dc5342b366f50db71d421e7cf8f";
+      hash = "sha256-TPQw9Yd194tTD2k+qzzGjMInCAJ9WeZuRPRD96zLGzs=";
     };
     meta.homepage = "https://github.com/6cdh/tree-sitter-racket";
   };
@@ -2108,12 +2131,12 @@
   };
   rnoweb = buildGrammar {
     language = "rnoweb";
-    version = "0.0.0+rev=502c112";
+    version = "0.0.0+rev=1a74dc0";
     src = fetchFromGitHub {
       owner = "bamonroe";
       repo = "tree-sitter-rnoweb";
-      rev = "502c1126dc6777f09af5bef16e72a42f75bd081e";
-      hash = "sha256-aGEhy4uMhKFbL0+JO5rrn3GIe//8PZpDHEMDGHDlBCY=";
+      rev = "1a74dc0ed731ad07db39f063e2c5a6fe528cae7f";
+      hash = "sha256-sCjSS6iunij2SXHNzQcTq0HKawH9i5h/vQ6yl77opXw=";
     };
     meta.homepage = "https://github.com/bamonroe/tree-sitter-rnoweb";
   };
@@ -2152,34 +2175,34 @@
   };
   ruby = buildGrammar {
     language = "ruby";
-    version = "0.0.0+rev=22a0bb2";
+    version = "0.0.0+rev=9d86f37";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-ruby";
-      rev = "22a0bb2678755a3714e194609862ea7f4516e807";
-      hash = "sha256-lD3pRbQZDyqIkiknuXAkXd+6aHqKUY/8SNwQgfnrbBw=";
+      rev = "9d86f3761bb30e8dcc81e754b81d3ce91848477e";
+      hash = "sha256-Ibfu+5NWCkw7jriy1tiMLplpXNZfZf8WP30lDU1//GM=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-ruby";
   };
   rust = buildGrammar {
     language = "rust";
-    version = "0.0.0+rev=2d7bac5";
+    version = "0.0.0+rev=3a56481";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-rust";
-      rev = "2d7bac5164c344c95530c16dd5c8fa1319e34308";
-      hash = "sha256-k5/tfG8ONOK8ARgHwpxqB27sJWHioTd5WfCpmMZ1vJY=";
+      rev = "3a56481f8d13b6874a28752502a58520b9139dc7";
+      hash = "sha256-6ROXeKuPehtIOtaI1OJuTtyPfQmZyLzCxv3ZS04yAIk=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-rust";
   };
   scala = buildGrammar {
     language = "scala";
-    version = "0.0.0+rev=e02f003";
+    version = "0.0.0+rev=70b4fe6";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-scala";
-      rev = "e02f003d78dc269fef287b9b7b9963dc1f26bd7e";
-      hash = "sha256-LkrZ+y7QSAGe/kkkdUSyFQJFmD/mOI5Ps/wxD3BAkDI=";
+      rev = "70b4fe63c4973b04cc7bd40c6b7646d9c2430db8";
+      hash = "sha256-ZwrsEhlZGVJMP+GRIlaxGqS1b7HtiQelg3QBwJT9Igk=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-scala";
   };
@@ -2197,12 +2220,12 @@
   };
   scheme = buildGrammar {
     language = "scheme";
-    version = "0.0.0+rev=85b6188";
+    version = "0.0.0+rev=6c77a5b";
     src = fetchFromGitHub {
       owner = "6cdh";
       repo = "tree-sitter-scheme";
-      rev = "85b6188fb77c03dfb01d13e58e2844450506860c";
-      hash = "sha256-v+iQpeAeySKPgMu5IQ8vNnUSc2duX1vYvO3qqK1/Pmc=";
+      rev = "6c77a5bcfb9baceeaa79ef67354b2d501b37b085";
+      hash = "sha256-HIZ8j8a5ejB87rTBaMpNGRGL0TGqXiuV/BxfU4aj17s=";
     };
     meta.homepage = "https://github.com/6cdh/tree-sitter-scheme";
   };
@@ -2230,12 +2253,12 @@
   };
   slint = buildGrammar {
     language = "slint";
-    version = "0.0.0+rev=3c82235";
+    version = "0.0.0+rev=f5fa844";
     src = fetchFromGitHub {
       owner = "slint-ui";
       repo = "tree-sitter-slint";
-      rev = "3c82235f41b63f35a01ae3888206e93585cbb84a";
-      hash = "sha256-D3X2YwvxvseIGnKzaSocr3Ak7qoASZhxyRS+rtpir0g=";
+      rev = "f5fa844d2adbcfdc7a0ec4daae4539887959d9ff";
+      hash = "sha256-MSIQd1Xb4ug4yZk2bQFPHMZxrqe1xke6X7LKsxtkIkc=";
     };
     meta.homepage = "https://github.com/slint-ui/tree-sitter-slint";
   };
@@ -2274,12 +2297,12 @@
   };
   solidity = buildGrammar {
     language = "solidity";
-    version = "0.0.0+rev=5cb506a";
+    version = "0.0.0+rev=b239a95";
     src = fetchFromGitHub {
       owner = "JoranHonig";
       repo = "tree-sitter-solidity";
-      rev = "5cb506ae419c4ad620c77210fd47500d3d169dbc";
-      hash = "sha256-3BQuEGrmQD9Va7JpTuKJaZ6VaJ//tfPtjoEDRj/utcU=";
+      rev = "b239a95f94cfcc6e7b3e961bc73a28d55e214f02";
+      hash = "sha256-b+LthCf+g19sjKeNgXZmUV0RNi94O3u0WmXfgKRpaE0=";
     };
     meta.homepage = "https://github.com/JoranHonig/tree-sitter-solidity";
   };
@@ -2309,12 +2332,12 @@
   };
   sourcepawn = buildGrammar {
     language = "sourcepawn";
-    version = "0.0.0+rev=39ce73a";
+    version = "0.0.0+rev=3ca89fd";
     src = fetchFromGitHub {
       owner = "nilshelmig";
       repo = "tree-sitter-sourcepawn";
-      rev = "39ce73ad42b2c4f52848d16093c24feddaa7d226";
-      hash = "sha256-CyCUGGycWpgQl/BGDjRHwYoa9Mess49jUf9WUkRaliE=";
+      rev = "3ca89fdf998340a7973e276b39516d8902950f86";
+      hash = "sha256-AF7PiM0Tt6wqGdNsfMGSkgWXgZRDZGdKc7DQpUHuGUA=";
     };
     meta.homepage = "https://github.com/nilshelmig/tree-sitter-sourcepawn";
   };
@@ -2331,12 +2354,12 @@
   };
   sql = buildGrammar {
     language = "sql";
-    version = "0.0.0+rev=da2d1ef";
+    version = "0.0.0+rev=cdb7cde";
     src = fetchFromGitHub {
       owner = "derekstride";
       repo = "tree-sitter-sql";
-      rev = "da2d1eff425b146d3c8cab7be8dfa98b11d896dc";
-      hash = "sha256-aNxUvmj4AMO744fsSOsvQcNEtHYuQDephKha/hSphh0=";
+      rev = "cdb7cde9bf70b194ab8beb5069fbbc3c9640284e";
+      hash = "sha256-yxr+AbKp4pkVpjMQXL3P5VEzSo2Ii6yE7ceEBYiDHJA=";
     };
     meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
   };
@@ -2353,12 +2376,12 @@
   };
   ssh_config = buildGrammar {
     language = "ssh_config";
-    version = "0.0.0+rev=4fab1c9";
+    version = "0.0.0+rev=514695d";
     src = fetchFromGitHub {
       owner = "ObserverOfTime";
       repo = "tree-sitter-ssh-config";
-      rev = "4fab1c9116cb7890885508e4630cc8e6a8373a41";
-      hash = "sha256-cZoRQN3vrOC7xaKeURGeKfQ0xAyRMapbgNQrBTCFoHI=";
+      rev = "514695df4985f56455b8f139a319453a2325cdcf";
+      hash = "sha256-LDqRP8FA5m1tnbGNTxItQlp6B6U+M6gOBlbi4zX0FHI=";
     };
     meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-ssh-config";
   };
@@ -2430,12 +2453,12 @@
   };
   swift = buildGrammar {
     language = "swift";
-    version = "0.0.0+rev=fc00cbb";
+    version = "0.0.0+rev=78a736d";
     src = fetchFromGitHub {
       owner = "alex-pinkus";
       repo = "tree-sitter-swift";
-      rev = "fc00cbb460b40228b30f322b5a34ea0e8f35a9f8";
-      hash = "sha256-FEac9qZuNAJYn/7mIpRSOy72F3qsiyPHZTn1DUzM2xk=";
+      rev = "78a736d77094b0b3c35e811e6765c4d38a72724e";
+      hash = "sha256-cBUBmXc+mhub5jvGKPcCgHgZPQtxF6OD+dlKQ0ZaxpY=";
     };
     generate = true;
     meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
@@ -2464,12 +2487,12 @@
   };
   t32 = buildGrammar {
     language = "t32";
-    version = "0.0.0+rev=b904af3";
+    version = "0.0.0+rev=0a457a5";
     src = fetchFromGitLab {
       owner = "xasc";
       repo = "tree-sitter-t32";
-      rev = "b904af353fb2f1df6ac45d8d3e3a5ee85a6cc306";
-      hash = "sha256-MGdwcw9T3hemUHfgQmdTp20MW08AQcVWGRHxkP/6N5Y=";
+      rev = "0a457a557be7779336bc8ac2b396e73797bc68f7";
+      hash = "sha256-ylMJ177FYVcnfaXbnOieNP1Emq8HpeAgEddt96tBJqE=";
     };
     meta.homepage = "https://gitlab.com/xasc/tree-sitter-t32.git";
   };
@@ -2520,12 +2543,12 @@
   };
   terraform = buildGrammar {
     language = "terraform";
-    version = "0.0.0+rev=e135399";
+    version = "0.0.0+rev=e936d3f";
     src = fetchFromGitHub {
       owner = "MichaHoffmann";
       repo = "tree-sitter-hcl";
-      rev = "e135399cb31b95fac0760b094556d1d5ce84acf0";
-      hash = "sha256-Ylxpj+e9YGhyRRRCCVs0g/zhwHpwGELxG2i+E3SFmpQ=";
+      rev = "e936d3fef8bac884661472dce71ad82284761eb1";
+      hash = "sha256-lcvs4auZrMb1f9ocrAnLVxX8JnvrPT18LsJBqoNG9Oo=";
     };
     location = "dialects/terraform";
     meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-hcl";
@@ -2565,12 +2588,12 @@
   };
   tlaplus = buildGrammar {
     language = "tlaplus";
-    version = "0.0.0+rev=aaf5bb5";
+    version = "0.0.0+rev=3896a5b";
     src = fetchFromGitHub {
       owner = "tlaplus-community";
       repo = "tree-sitter-tlaplus";
-      rev = "aaf5bb5c1df0a6e583bb51efa519a9ac788b2ad8";
-      hash = "sha256-p/khQ31bReopPyZ1TvUKI6bnFipWiGrxKO7cAYzeku4=";
+      rev = "3896a5be761f04ffb22a841b2a0672f7a8a43ef9";
+      hash = "sha256-EODxn3ZitUSz8/4XkgMK0dp2T07BwlsXVbFbBQ5xXi4=";
     };
     meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
   };
@@ -2621,12 +2644,12 @@
   };
   tsx = buildGrammar {
     language = "tsx";
-    version = "0.0.0+rev=198e2ea";
+    version = "0.0.0+rev=b00b8eb";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-typescript";
-      rev = "198e2ea43d1c4ddd76ee883f4eae15f4201cd241";
-      hash = "sha256-WnVqoshymxZgGC/p5nFX08ypB1VDLIAMjjWN5YC4UT8=";
+      rev = "b00b8eb44f0b9f02556da0b1a4e2f71faed7e61b";
+      hash = "sha256-uGuwE1eTVEkuosMfTeY2akHB+bJ5npWEwUv+23nhY9M=";
     };
     location = "tsx";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript";
@@ -2655,12 +2678,12 @@
   };
   typescript = buildGrammar {
     language = "typescript";
-    version = "0.0.0+rev=198e2ea";
+    version = "0.0.0+rev=b00b8eb";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-typescript";
-      rev = "198e2ea43d1c4ddd76ee883f4eae15f4201cd241";
-      hash = "sha256-WnVqoshymxZgGC/p5nFX08ypB1VDLIAMjjWN5YC4UT8=";
+      rev = "b00b8eb44f0b9f02556da0b1a4e2f71faed7e61b";
+      hash = "sha256-uGuwE1eTVEkuosMfTeY2akHB+bJ5npWEwUv+23nhY9M=";
     };
     location = "typescript";
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-typescript";
@@ -2790,34 +2813,34 @@
   };
   vim = buildGrammar {
     language = "vim";
-    version = "0.0.0+rev=bc1364d";
+    version = "0.0.0+rev=052279c";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "tree-sitter-vim";
-      rev = "bc1364d922952138957a62105171ed68e73fbb6c";
-      hash = "sha256-5h1GYjyYMJd5GS0zXh0LP1wBs60fYohpFv89gcdZ4vU=";
+      rev = "052279cd5e1d73b075640c64cef97e7bdcd32611";
+      hash = "sha256-EoiMqMcBl5bC1Irs2flA2F5nHN6VTZdv6hdCrqoTAcY=";
     };
     meta.homepage = "https://github.com/neovim/tree-sitter-vim";
   };
   vimdoc = buildGrammar {
     language = "vimdoc";
-    version = "0.0.0+rev=b63be26";
+    version = "0.0.0+rev=f431bfa";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "tree-sitter-vimdoc";
-      rev = "b63be26fa571259b512e1939f01755d9d6e78fbd";
-      hash = "sha256-gsjepcw8Y8Vm6GhJRKUJKLsCb+Rd0lNyYfnmWijuiLo=";
+      rev = "f431bfa7d433f4d629943147817193a4fccbd303";
+      hash = "sha256-+SYbYvmVN2U0Q03p0eCj3MViCyzPqUiPG1oMWh7hRyM=";
     };
     meta.homepage = "https://github.com/neovim/tree-sitter-vimdoc";
   };
   vue = buildGrammar {
     language = "vue";
-    version = "0.0.0+rev=7e48557";
+    version = "0.0.0+rev=3b9d520";
     src = fetchFromGitHub {
       owner = "tree-sitter-grammars";
       repo = "tree-sitter-vue";
-      rev = "7e48557b903a9db9c38cea3b7839ef7e1f36c693";
-      hash = "sha256-dz9NC+axivAsVJPbt7TNtU89wFyrTBoD2hCBjiXFbgY=";
+      rev = "3b9d52087100bdfce43dad2ca46d75b0e21613f6";
+      hash = "sha256-36MnM1X8uhqCb44oHY0kEKDLpYmU1QL2JfGpdIbb3pc=";
     };
     meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-vue";
   };
@@ -2845,12 +2868,12 @@
   };
   wing = buildGrammar {
     language = "wing";
-    version = "0.0.0+rev=13b79ea";
+    version = "0.0.0+rev=07f6740";
     src = fetchFromGitHub {
       owner = "winglang";
       repo = "wing";
-      rev = "13b79ea3f343b15f233c6e7ac930797748191615";
-      hash = "sha256-2BOPevKjrNoTRNaadwr7erWDBxIDUvU4zLOQgXOB4rE=";
+      rev = "07f6740ab9f4f74c49413b9056154cac51f4b2d7";
+      hash = "sha256-jnDrJhhsfRAqR+83VaGXBKANu5J2Xt7LNUm0VUFEVbY=";
     };
     location = "libs/tree-sitter-wing";
     generate = true;
@@ -2881,14 +2904,14 @@
   };
   yaml = buildGrammar {
     language = "yaml";
-    version = "0.0.0+rev=0e36bed";
+    version = "0.0.0+rev=9e59b9b";
     src = fetchFromGitHub {
-      owner = "ikatyang";
+      owner = "tree-sitter-grammars";
       repo = "tree-sitter-yaml";
-      rev = "0e36bed171768908f331ff7dff9d956bae016efb";
-      hash = "sha256-bpiT3FraOZhJaoiFWAoVJX1O+plnIi8aXOW2LwyU23M=";
+      rev = "9e59b9bbf839ba231fbcb953617d8b9b9a059e38";
+      hash = "sha256-9YVXErOwUf4hcvugcgtlefyQd4p34u9AT4gUcwc3ZaU=";
     };
-    meta.homepage = "https://github.com/ikatyang/tree-sitter-yaml";
+    meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-yaml";
   };
   yang = buildGrammar {
     language = "yang";
diff --git a/nixpkgs/pkgs/applications/editors/vim/plugins/overrides.nix b/nixpkgs/pkgs/applications/editors/vim/plugins/overrides.nix
index f278070e4550..b50f1c8f81e4 100644
--- a/nixpkgs/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -668,6 +668,10 @@
     dependencies = with self; [ guard-collection ];
   };
 
+  hardhat-nvim = super.hardhat-nvim.overrideAttrs {
+    dependencies = with self; [ overseer-nvim plenary-nvim ];
+  };
+
   harpoon = super.harpoon.overrideAttrs {
     dependencies = with self; [ plenary-nvim ];
   };
@@ -947,6 +951,14 @@
     dependencies = with self; [ plenary-nvim ];
   };
 
+  neotest-gradle = super.neotest-gradle.overrideAttrs {
+    dependencies = with self; [ plenary-nvim ];
+  };
+
+  neotest-gtest = super.neotest-gtest.overrideAttrs {
+    dependencies = [ self.plenary-nvim ];
+  };
+
   neo-tree-nvim = super.neo-tree-nvim.overrideAttrs {
     dependencies = with self; [ plenary-nvim nui-nvim ];
   };
@@ -996,9 +1008,9 @@
       spectre_oxi = rustPlatform.buildRustPackage {
         pname = "spectre_oxi";
         inherit (old) version src;
-        sourceRoot = "source/spectre_oxi";
+        sourceRoot = "${old.src.name}/spectre_oxi";
 
-        cargoHash = "sha256-gCGuD5kipgfR0Le8npNmyBxNsUq0PavXvKkxkiPx13E=";
+        cargoHash = "sha256-VDnrJ2EJ8LDykqxYKD1VR8BkDqzzifazJzL/0UsmSCk=";
 
 
         preCheck = ''
@@ -1134,7 +1146,7 @@
         pname = "sg-nvim-rust";
         inherit (old) version src;
 
-        cargoHash = "sha256-nlPSsp/HbS1DxhOHh5+7x1re46oiQa9FQMLClc7TQLg=";
+        cargoHash = "sha256-iGNLk3ckm90i5m05V/va+hO9RMiOUKL19dkszoUCwlU=";
 
         nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/editors/vim/plugins/patches/openscad.nvim/program_paths.patch b/nixpkgs/pkgs/applications/editors/vim/plugins/patches/openscad.nvim/program_paths.patch
index c6b63682b2a0..82d73809ff79 100644
--- a/nixpkgs/pkgs/applications/editors/vim/plugins/patches/openscad.nvim/program_paths.patch
+++ b/nixpkgs/pkgs/applications/editors/vim/plugins/patches/openscad.nvim/program_paths.patch
@@ -1,5 +1,5 @@
 diff --git a/autoload/health/openscad_nvim.vim b/autoload/health/openscad_nvim.vim
-index 9022d55..30ef53f 100644
+index d6d4b4c..9853877 100644
 --- a/autoload/health/openscad_nvim.vim
 +++ b/autoload/health/openscad_nvim.vim
 @@ -7,7 +7,7 @@ function! s:check_nvim_version_minimum() abort
@@ -8,20 +8,20 @@ index 9022d55..30ef53f 100644
  function! s:check_zathura_installed() abort
 -	if !executable('zathura')
 +	if !executable('@zathura@')
- 		call health#report_error('has(zathura)','install zathura')
+ 		call v:lua.vim.health.error('has(zathura)','install zathura')
  	else
- 		call health#report_ok("zathura is installed")
+ 		call v:lua.vim.health.ok("zathura is installed")
 @@ -15,7 +15,7 @@ function! s:check_zathura_installed() abort
  endfunction
  
  function! s:check_htop_installed() abort
 -	if !executable('htop')
 +	if !executable('@htop@')
- 		call health#report_error('has(htop)','install htop')
+ 		call v:lua.vim.health.error('has(htop)','install htop')
  	else
- 		call health#report_ok("htop is installed")
+ 		call v:lua.vim.health.ok("htop is installed")
 diff --git a/lua/openscad.lua b/lua/openscad.lua
-index 7dff2fb..4382003 100644
+index 7475f29..832c895 100644
 --- a/lua/openscad.lua
 +++ b/lua/openscad.lua
 @@ -101,7 +101,7 @@ end
@@ -38,7 +38,7 @@ index 7dff2fb..4382003 100644
  	else
  		-- TODO: What about Windows?
 -		jobCommand = 'openscad ' .. vim.fn.expand('%:p')
-+		jobCommand = '@oepnscad@ ' .. vim.fn.expand('%:p')
++		jobCommand = '@openscad@ ' .. vim.fn.expand('%:p')
  	end
  
  	vim.fn.jobstart(jobCommand)
diff --git a/nixpkgs/pkgs/applications/editors/vim/plugins/vim-clap/default.nix b/nixpkgs/pkgs/applications/editors/vim/plugins/vim-clap/default.nix
index b6b0267216f5..dade53492fd2 100644
--- a/nixpkgs/pkgs/applications/editors/vim/plugins/vim-clap/default.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/plugins/vim-clap/default.nix
@@ -22,6 +22,7 @@ let
 
   meta = with lib; {
     description = "A modern performant fuzzy picker for Vim and NeoVim";
+    mainProgram = "maple";
     homepage = "https://github.com/liuchengxu/vim-clap";
     changelog = "https://github.com/liuchengxu/vim-clap/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/editors/vim/plugins/vim-plugin-names b/nixpkgs/pkgs/applications/editors/vim/plugins/vim-plugin-names
index 78c923ef87d5..99ef5148939e 100644
--- a/nixpkgs/pkgs/applications/editors/vim/plugins/vim-plugin-names
+++ b/nixpkgs/pkgs/applications/editors/vim/plugins/vim-plugin-names
@@ -126,6 +126,7 @@ https://github.com/bbchung/clighter8/,,
 https://github.com/ekickx/clipboard-image.nvim/,,
 https://github.com/laytan/cloak.nvim/,HEAD,
 https://github.com/asheq/close-buffers.vim/,HEAD,
+https://github.com/Civitasv/cmake-tools.nvim/,,
 https://github.com/winston0410/cmd-parser.nvim/,,
 https://github.com/FelipeLema/cmp-async-path/,HEAD,
 https://github.com/crispgm/cmp-beancount/,HEAD,
@@ -361,6 +362,7 @@ https://github.com/nvimdev/guard.nvim/,HEAD,
 https://github.com/nmac427/guess-indent.nvim/,HEAD,
 https://github.com/sjl/gundo.vim/,,
 https://github.com/junegunn/gv.vim/,,
+https://github.com/TheSnakeWitcher/hardhat.nvim/,HEAD,
 https://github.com/m4xshen/hardtime.nvim/,HEAD,
 https://git.sr.ht/~sircmpwn/hare.vim,HEAD,
 https://github.com/ThePrimeagen/harpoon/,master,
@@ -548,15 +550,22 @@ https://github.com/Shougo/neosnippet-snippets/,,
 https://github.com/Shougo/neosnippet.vim/,,
 https://github.com/kassio/neoterm/,,
 https://github.com/nvim-neotest/neotest/,HEAD,
+https://github.com/rcasia/neotest-bash/,HEAD,
 https://github.com/sidlatau/neotest-dart/,HEAD,
 https://github.com/MarkEmmons/neotest-deno/,HEAD,
 https://github.com/Issafalcon/neotest-dotnet/,HEAD,
 https://github.com/jfpedroza/neotest-elixir/,HEAD,
+https://github.com/llllvvuu/neotest-foundry/,HEAD,
 https://github.com/nvim-neotest/neotest-go/,HEAD,
+https://github.com/weilbith/neotest-gradle/,HEAD,
+https://github.com/alfaix/neotest-gtest/,HEAD,
 https://github.com/MrcJkb/neotest-haskell/,HEAD,
+https://github.com/rcasia/neotest-java/,HEAD,
 https://github.com/haydenmeade/neotest-jest/,HEAD,
+https://github.com/zidhuss/neotest-minitest/,HEAD,
 https://github.com/theutz/neotest-pest/,HEAD,
 https://github.com/olimorris/neotest-phpunit/,HEAD,
+https://github.com/thenbe/neotest-playwright/,HEAD,
 https://github.com/nvim-neotest/neotest-plenary/,HEAD,
 https://github.com/nvim-neotest/neotest-python/,HEAD,
 https://github.com/olimorris/neotest-rspec/,HEAD,
@@ -564,6 +573,7 @@ https://github.com/rouge8/neotest-rust/,HEAD,
 https://github.com/stevanmilic/neotest-scala/,HEAD,
 https://github.com/shunsambongi/neotest-testthat/,HEAD,
 https://github.com/marilari88/neotest-vitest/,HEAD,
+https://github.com/lawrence-laz/neotest-zig/,HEAD,
 https://github.com/rose-pine/neovim/,main,rose-pine
 https://github.com/Shatur/neovim-ayu/,,
 https://github.com/cloudhead/neovim-fuzzy/,,
@@ -713,6 +723,7 @@ https://github.com/salkin-mada/openscad.nvim/,HEAD,
 https://github.com/nvim-orgmode/orgmode/,,
 https://github.com/rgroli/other.nvim/,HEAD,
 https://github.com/jmbuhr/otter.nvim/,,
+https://github.com/hedyhli/outline.nvim/,HEAD,
 https://github.com/stevearc/overseer.nvim/,HEAD,
 https://github.com/nyoom-engineering/oxocarbon.nvim/,HEAD,
 https://github.com/vuki656/package-info.nvim/,,
@@ -1364,6 +1375,7 @@ https://github.com/puremourning/vimspector/,,
 https://github.com/lervag/vimtex/,,
 https://github.com/preservim/vimux/,,
 https://github.com/vimwiki/vimwiki/,,
+https://github.com/lukas-reineke/virt-column.nvim/,HEAD,
 https://github.com/jubnzv/virtual-types.nvim/,HEAD,
 https://github.com/vim-scripts/vis/,,
 https://github.com/navicore/vissort.vim/,,
diff --git a/nixpkgs/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix b/nixpkgs/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix
index 9c82b2ef60f8..34f892df6c3b 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/extensions/chenglou92.rescript-vscode/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, vscode-utils, callPackage }:
 let
-  version = "1.42.0";
+  version = "1.50.0";
   rescript-editor-analysis = callPackage ./rescript-editor-analysis.nix { inherit version; };
   arch =
     if stdenv.isLinux then "linux"
@@ -13,7 +13,7 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
     name = "rescript-vscode";
     publisher = "chenglou92";
     inherit version;
-    sha256 = "sha256-Po7zuppr8EHSfg2sDzkNn0KARncsiNVPoRsd25zc/xg=";
+    sha256 = "sha256-Dt7mqZQ/vEUFyUD5SsY6RGzg9kq19/Amksrwtfv0TuE=";
   };
   postPatch = ''
     rm -r ${analysisDir}
diff --git a/nixpkgs/pkgs/applications/editors/vscode/extensions/default.nix b/nixpkgs/pkgs/applications/editors/vscode/extensions/default.nix
index 1c5b3718c1ef..cf91adbc27df 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/extensions/default.nix
@@ -18,6 +18,7 @@
 , clojure-lsp
 , alejandra
 , millet
+, craftos-pc
 , shfmt
 , typst-lsp
 , typst-preview
@@ -40,6 +41,22 @@ let
   #
   baseExtensions = self: lib.mapAttrs (_n: lib.recurseIntoAttrs)
     {
+      "13xforever".language-x86-64-assembly = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "language-x86-64-assembly";
+          publisher = "13xforever";
+          version = "3.1.4";
+          sha256 = "sha256-FJRDm1H3GLBfSKBSFgVspCjByy9m+j9OStlU+/pMfs8=";
+        };
+        meta = {
+          description = "Cutting edge x86 and x86_64 assembly syntax highlighting";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=13xforever.language-x86-64-assembly";
+          homepage = "https://github.com/13xforever/x86_64-assembly-vscode";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       "1Password".op-vscode = buildVscodeMarketplaceExtension {
         mktplcRef = {
           publisher = "1Password";
@@ -86,6 +103,23 @@ let
         };
       };
 
+      "42crunch".vscode-openapi = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          publisher = "42Crunch";
+          name = "vscode-openapi";
+          version = "4.25.1";
+          sha256 = "+hKQUJp9c0oyhePFmQEXAqtqKL3fkQ1nhopUPnhRZc4=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/42Crunch.vscode-openapi/changelog";
+          description = "A Visual Studio Code extension with rich support for the OpenAPI Specification (OAS).";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=42Crunch.vscode-openapi";
+          homepage = "https://github.com/42Crunch/vscode-openapi";
+          license = lib.licenses.gpl3;
+          maintainers = [ lib.maintainers.benhiemer ];
+        };
+      };
+
       a5huynh.vscode-ron = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "vscode-ron";
@@ -393,8 +427,8 @@ let
         mktplcRef = {
           name = "vscode-neovim";
           publisher = "asvetliakov";
-          version = "1.5.0";
-          sha256 = "1glad9xmzq58jc7js8afjmqrxgd3rqm80fk528wv5kqcmn90bgk3";
+          version = "1.7.1";
+          sha256 = "0ib4sjk7r370ckvaqb4yzgy7csy8pli9z2jhibhhwwcq2748ah4q";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/asvetliakov.vscode-neovim/changelog";
@@ -1016,6 +1050,22 @@ let
         };
       };
 
+      cweijan.dbclient-jdbc = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "dbclient-jdbc";
+          publisher = "cweijan";
+          version = "1.3.4";
+          sha256 = "sha256-qknooeedRhTvEWSuGXFoO/BczGanYCdMr7WWjthxG+k=";
+        };
+        meta = {
+          description = "JDBC Adapter For Database Client";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=cweijan.dbclient-jdbc";
+          homepage = "https://github.com/database-client/jdbc-adapter-server";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       cweijan.vscode-database-client2 = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "vscode-database-client2";
@@ -1351,12 +1401,12 @@ let
           # semver scheme, contrary to preview versions which are listed on
           # the VSCode Marketplace and use a calver scheme. We should avoid
           # using preview versions, because they expire after two weeks.
-          version = "14.1.1";
-          sha256 = "sha256-eSN48IudpHYzT4u+S4b2I2pyEPyOwBCSL49awT/mzEE=";
+          version = "14.9.0";
+          sha256 = "sha256-Z6KeIUw1SLZ4tUgs7sU9IJO/6diozPxQuTbXr6DayHA=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/eamodio.gitlens/changelog";
-          description = "GitLens supercharges the Git capabilities built into Visual Studio Code.";
+          description = "A Visual Studio Code extension that improves its built-in Git capabilities";
           longDescription = ''
             Supercharge the Git capabilities built into Visual Studio Code — Visualize code authorship at a glance via Git
             blame annotations and code lens, seamlessly navigate and explore Git repositories, gain valuable insights via
@@ -1524,12 +1574,28 @@ let
 
       equinusocio.vsc-material-theme = callPackage ./equinusocio.vsc-material-theme { };
 
+      equinusocio.vsc-material-theme-icons = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vsc-material-theme-icons";
+          publisher = "Equinusocio";
+          version = "3.5.0";
+          sha256 = "sha256-XqtyZVlsPaPkKB9HdigKSXjCwqXe9wzJWeRcPpS6EVM=";
+        };
+        meta = {
+          description = "Material Theme Icons, the most epic icons theme for Visual Studio Code and Material Theme.";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=Equinusocio.vsc-material-theme-icons";
+          homepage = "https://github.com/material-theme/vsc-material-theme-icons";
+          license = lib.licenses.asl20;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       esbenp.prettier-vscode = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "prettier-vscode";
           publisher = "esbenp";
-          version = "10.1.0";
-          sha256 = "sha256-SQuf15Jq84MKBVqK6UviK04uo7gQw9yuw/WEBEXcQAc=";
+          version = "10.4.0";
+          sha256 = "sha256-8+90cZpqyH+wBgPFaX5GaU6E02yBWUoB+T9C2z2Ix8c=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/esbenp.prettier-vscode/changelog";
@@ -1622,6 +1688,22 @@ let
         };
       };
 
+      firsttris.vscode-jest-runner = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-jest-runner";
+          publisher = "firsttris";
+          version = "0.4.72";
+          sha256 = "sha256-1nUpOXdteWsyFYJ2uATCcr1SUbeusmbpa09Bkw9/TZM=";
+        };
+        meta = {
+          description = "Simple way to run or debug a single (or multiple) tests from context-menu";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=firsttris.vscode-jest-runner";
+          homepage = "https://github.com/firsttris/vscode-jest-runner";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       foam.foam-vscode = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "foam-vscode";
@@ -1679,8 +1761,8 @@ let
         mktplcRef = {
           name = "shell-format";
           publisher = "foxundermoon";
-          version = "7.1.0";
-          sha256 = "09z72mdr5bfdcb67xyzlv7lb9vyjlc3k9ackj4jgixfk40c68cnj";
+          version = "7.2.5";
+          sha256 = "sha256-kfpRByJDcGY3W9+ELBzDOUMl06D/vyPlN//wPgQhByk=";
         };
 
         nativeBuildInputs = [ jq moreutils ];
@@ -1785,8 +1867,8 @@ let
         mktplcRef = {
           publisher = "github";
           name = "copilot";
-          version = "1.156.691";
-          sha256 = "sha256-K7lzwfgqb0gUJAivro/ePaQetM31M+zTBRZMBy92ZuA=";
+          version = "1.172.758";
+          sha256 = "sha256-sK3IiA4mQ6Hse+UpZ81Zb5iBSREzTrs7ypsfGbJiXm4=";
         };
 
         meta = {
@@ -1802,8 +1884,8 @@ let
         mktplcRef = {
           publisher = "github";
           name = "copilot-chat";
-          version = "0.12.2024013003"; # latest version compatible with vscode 1.86
-          sha256 = "sha256-4ArWVFko2T6ze/i+HTdXAioWC7euWCycDsQxFTrEtUw=";
+          version = "0.13.2024022301"; # compatible with vscode >= 1.87
+          sha256 = "sha256-WdojLEdrg6iqTH/cNPEWb6VEfk+gIHh2M5GHrAURjy8=";
         };
         meta = {
           description = "GitHub Copilot Chat is a companion extension to GitHub Copilot that houses experimental chat features";
@@ -1986,6 +2068,38 @@ let
         };
       };
 
+      hars.cppsnippets = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "cppsnippets";
+          publisher = "hars";
+          version = "0.0.15";
+          sha256 = "sha256-KXdEKcxPclbD22aKGAKSmdpVBZP2IpQRaKfc2LDsL0U=";
+        };
+        meta = {
+          description = "Code snippets for C/C++";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=hars.CppSnippets";
+          homepage = "https://github.com/one-harsh/vscode-cpp-snippets";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
+      hashicorp.hcl = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "HCL";
+          publisher = "HashiCorp";
+          version = "0.3.2";
+          sha256 = "sha256-cxF3knYY29PvT3rkRS8SGxMn9vzt56wwBXpk2PqO0mo=";
+        };
+        meta = {
+          description = "HashiCorp HCL syntax";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=HashiCorp.HCL";
+          homepage = "https://github.com/hashicorp/vscode-hcl";
+          license = lib.licenses.mpl20;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       hashicorp.terraform = callPackage ./hashicorp.terraform { };
 
       haskell.haskell = buildVscodeMarketplaceExtension {
@@ -2000,6 +2114,22 @@ let
         };
       };
 
+      hediet.vscode-drawio = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-drawio";
+          publisher = "hediet";
+          version = "1.6.6";
+          sha256 = "sha256-SPcSnS7LnRL5gdiJIVsFaN7eccrUHSj9uQYIQZllm0M=";
+        };
+        meta = {
+          description = "This unofficial extension integrates Draw.io into VS Code.";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=hediet.vscode-drawio";
+          homepage = "https://github.com/hediet/vscode-drawio";
+          license = lib.licenses.gpl3Only;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       hookyqr.beautify = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "beautify";
@@ -2104,8 +2234,8 @@ let
         mktplcRef = {
           name = "Ionide-fsharp";
           publisher = "Ionide";
-          version = "7.17.0";
-          sha256 = "sha256-CC6ySeuO61O/mAkQYGoK/1cd4hlyS0vG+Lqv0HQ7K6c=";
+          version = "7.18.2";
+          sha256 = "sha256-CEeTLiZktp5YzCRxDXa+s8W9N971iQla/FyCr8Co0SQ=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/Ionide.Ionide-fsharp/changelog";
@@ -2133,6 +2263,39 @@ let
         };
       };
 
+      jackmacwindows.craftos-pc = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "craftos-pc";
+          publisher = "jackmacwindows";
+          version = "1.2.2";
+          sha256 = "sha256-A+MNroXv0t9Mw/gr0Fyov3cXyF/GGzwRLKrIxQ2tKCE=";
+        };
+        nativeBuildInputs = [ jq moreutils ];
+        postInstall = ''
+          cd "$out/$installPrefix"
+
+          jq -e '
+            .contributes.configuration.properties."craftos-pc.executablePath.linux".default =
+              "${lib.meta.getExe craftos-pc}" |
+            .contributes.configuration.properties."craftos-pc.executablePath.mac".default =
+              "${lib.meta.getExe craftos-pc}" |
+            .contributes.configuration.properties."craftos-pc.executablePath.windows".default =
+              "${lib.meta.getExe craftos-pc}"
+          ' \
+          < package.json \
+          | sponge package.json
+        '';
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/jackmacwindows.craftos-pc/changelog";
+          description = "A Visual Studio Code extension for opening a CraftOS-PC window";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=jackmacwindows.craftos-pc";
+          homepage = "https://www.craftos-pc.cc/docs/extension";
+          license = lib.licenses.mit;
+          maintainers = with lib.maintainers; [ tomodachi94 ];
+          platforms = craftos-pc.meta.platforms;
+        };
+      };
+
       james-yu.latex-workshop = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "latex-workshop";
@@ -2489,6 +2652,22 @@ let
         meta.license = lib.licenses.mit;
       };
 
+      mathiasfrohlich.kotlin = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "Kotlin";
+          publisher = "mathiasfrohlich";
+          version = "1.7.1";
+          sha256 = "sha256-MuAlX6cdYMLYRX2sLnaxWzdNPcZ4G0Fdf04fmnzQKH4=";
+        };
+        meta = {
+          description = "Kotlin language support for VS Code";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=mathiasfrohlich.Kotlin";
+          homepage = "https://github.com/mathiasfrohlich/vscode-kotlin";
+          license = lib.licenses.asl20;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       matthewpi.caddyfile-support = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "caddyfile-support";
@@ -2557,8 +2736,8 @@ let
         mktplcRef = {
           name = "typst-preview";
           publisher = "mgt19937";
-          version = "0.10.8";
-          sha256 = "sha256-Ad6eCAuueeAeh6z/kk/F2HhbV4tp/XmiGySA2fn5wqY=";
+          version = "0.11.1";
+          sha256 = "sha256-OsCgkq0OSBu7RZYHlxgy7W7zDNDUgJFSeSET20CX8zA=";
         };
 
         buildInputs = [
@@ -2823,6 +3002,22 @@ let
 
       ms-vscode.cpptools = callPackage ./ms-vscode.cpptools { };
 
+      ms-vscode.cpptools-extension-pack = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "cpptools-extension-pack";
+          publisher = "ms-vscode";
+          version = "1.3.0";
+          sha256 = "sha256-rHST7CYCVins3fqXC+FYiS5Xgcjmi7QW7M4yFrUR04U=";
+        };
+        meta = {
+          description = "Popular extensions for C++ development in Visual Studio Code.";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools-extension-pack";
+          homepage = "https://github.com/microsoft/vscode-cpptools";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       ms-vscode.hexeditor = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "hexeditor";
@@ -2898,8 +3093,8 @@ let
         mktplcRef = {
           name = "remote-containers";
           publisher = "ms-vscode-remote";
-          version = "0.305.0";
-          sha256 = "sha256-srSRD/wgDbQo9P1uJk8YtcXPZO62keG5kRnp1TmHqOc=";
+          version = "0.347.0";
+          sha256 = "sha256-E9H1nPWG5JuzBxbYc/yWd8Y3azEWrd9whGirl0GK7kU=";
         };
         meta = {
           description = "Open any folder or repository inside a Docker container.";
@@ -2914,6 +3109,23 @@ let
 
       ms-vsliveshare.vsliveshare = callPackage ./ms-vsliveshare.vsliveshare { };
 
+      mshr-h.veriloghdl = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "veriloghdl";
+          publisher = "mshr-h";
+          version = "1.13.2";
+          sha256 = "sha256-MOU8zf2qS7P2pQ29w3mvhDc2OvZiH4HNe530BjIiRAA=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/mshr-h.VerilogHDL/changelog";
+          description = "A Visual Studio Code extension for supporting Verilog-HDL, SystemVerilog, Bluespec and SystemVerilog";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=mshr-h.VerilogHDL";
+          homepage = "https://github.com/mshr-h/vscode-verilog-hdl-support";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.newam ];
+        };
+      };
+
       mskelton.one-dark-theme = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "one-dark-theme";
@@ -2971,6 +3183,22 @@ let
         };
       };
 
+      naumovs.theme-oceanicnext = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "theme-oceanicnext";
+          publisher = "naumovs";
+          version = "0.0.4";
+          sha256 = "sha256-romhWL3s0NVZ3kptSNT4/X9WkgakgNNfFElaBCo6jj4=";
+        };
+        meta = {
+          description = "Oceanic Next theme for VSCode + dimmed bg version for better looking UI";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=naumovs.theme-oceanicnext";
+          homepage = "https://github.com/voronianski/oceanic-next-color-scheme";
+          license = lib.licenses.unlicense;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       njpwerner.autodocstring = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "autodocstring";
@@ -3170,6 +3398,23 @@ let
         };
       };
 
+      pythagoratechnologies.gpt-pilot-vs-code = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "gpt-pilot-vs-code";
+          publisher = "PythagoraTechnologies";
+          version = "0.1.7";
+          sha256 = "sha256-EUddanrB6h5cn3pK2JTkEPffVb06ZMI2qDPh0kFfJjA=";
+        };
+        meta = {
+          changelog = "https://marketplace.visualstudio.com/items/PythagoraTechnologies.gpt-pilot-vs-code/changelog";
+          description = "A VSCode extension for assisting the developer to code, debug, build applications using LLMs/AI";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=PythagoraTechnologies.gpt-pilot-vs-code";
+          homepage = "https://github.com/Pythagora-io/gpt-pilot/";
+          license = lib.licenses.asl20;
+          maintainers = [ ];
+        };
+      };
+
       quicktype.quicktype = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "quicktype";
@@ -3196,6 +3441,22 @@ let
         meta.license = lib.licenses.mit;
       };
 
+      redhat.ansible = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "ansible";
+          publisher = "redhat";
+          version = "2.12.143";
+          sha256 = "sha256-NEV7sVYJJvapZjk5sylkzijH8qLZ7xzmBzHI7qcj2Ok=";
+        };
+        meta = {
+          description = "Ansible language support";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=redhat.ansible";
+          homepage = "https://github.com/ansible/vscode-ansible";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       redhat.java = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "java";
@@ -3232,6 +3493,22 @@ let
         };
       };
 
+      reloadedextensions.reloaded-cpp = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "reloaded-cpp";
+          publisher = "reloadedextensions";
+          version = "0.1.9";
+          sha256 = "sha256-KQiSD18W9NnsqhRt+XM3ko70u4zX4enn3OpMt0ebViU=";
+        };
+        meta = {
+          description = "C/C++ must-have highlighter that understands many coding styles and APIs. Use with 'Reloaded Themes' extension.";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=reloadedextensions.reloaded-cpp";
+          homepage = "https://github.com/kobalicek/reloaded-cpp";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       richie5um2.snake-trail = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "snake-trail";
@@ -3447,8 +3724,8 @@ let
         mktplcRef = {
           publisher = "shd101wyy";
           name = "markdown-preview-enhanced";
-          version = "0.8.10";
-          sha256 = "sha256-BjTV2uH9QqCS1VJ94XXgzNMJb4FB4Ee+t/5uAQfJCuM=";
+          version = "0.8.12";
+          sha256 = "sha256-4Iq6idux029i7cBV3x79ZRAbSk3ymqx+Q2jv0zV9ZTI=";
         };
         meta = {
           description = "Provides a live preview of markdown using either markdown-it or pandoc";
@@ -3548,6 +3825,23 @@ let
         };
       };
 
+      smcpeak.default-keys-windows = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "default-keys-windows";
+          publisher = "smcpeak";
+          version = "0.0.10";
+          sha256 = "sha256-v1JY5ZGWOfF14H235Y9CLlPwIvmNwCeRhIkdmcgCCFU=";
+        };
+        meta = {
+          changelog = "https://github.com/smcpeak/vscode-default-keys-windows/blob/master/CHANGELOG.md";
+          description = "VSCode extension that provides default Windows keybindings on any platform";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=smcpeak.default-keys-windows";
+          homepage = "https://github.com/smcpeak/vscode-default-keys-windows";
+          license = lib.licenses.mit;
+          maintainers = [ ];
+        };
+      };
+
       sonarsource.sonarlint-vscode = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "sonarlint-vscode";
@@ -3653,6 +3947,22 @@ let
         };
       };
 
+      stylelint.vscode-stylelint = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-stylelint";
+          publisher = "stylelint";
+          version = "1.3.0";
+          sha256 = "sha256-JoCa2d0ayBEuCcQi3Z/90GJ4AIECVz8NCpd+i+9uMeA=";
+        };
+        meta = {
+          description = "Official Stylelint extension for Visual Studio Code";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=stylelint.vscode-stylelint";
+          homepage = "https://github.com/stylelint/vscode-stylelint";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       sumneko.lua = callPackage ./sumneko.lua { };
 
       svelte.svelte-vscode = buildVscodeMarketplaceExtension {
@@ -3730,6 +4040,22 @@ let
         };
       };
 
+      tal7aouy.icons = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "icons";
+          publisher = "tal7aouy";
+          version = "3.8.0";
+          sha256 = "sha256-PdhNFyVUWcOfli/ZlT+6TmtWrV31fBP1E1Vd4QWOY+A=";
+        };
+        meta = {
+          description = "Icons for Visual Studio Code.";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=tal7aouy.icons";
+          homepage = "https://github.com/tal7aouy/vscode-icons";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       tamasfe.even-better-toml = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "even-better-toml";
@@ -4063,6 +4389,54 @@ let
         };
       };
 
+      visualstudioexptteam.intellicode-api-usage-examples = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "intellicode-api-usage-examples";
+          publisher = "VisualStudioExptTeam";
+          version = "0.2.8";
+          sha256 = "sha256-aXAS3QX+mrX0kJqf1LUsvguqRxxC0o+jj1bKQteXPNA=";
+        };
+        meta = {
+          description = "See relevant code examples from GitHub for over 100K different APIs right in your editor.";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.intellicode-api-usage-examples";
+          homepage = "https://github.com/MicrosoftDocs/intellicode";
+          license = lib.licenses.cc-by-40;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
+      visualstudioexptteam.vscodeintellicode = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscodeintellicode";
+          publisher = "VisualStudioExptTeam";
+          version = "1.2.30";
+          sha256 = "sha256-f2Gn+W0QHN8jD5aCG+P93Y+JDr/vs2ldGL7uQwBK4lE=";
+        };
+        meta = {
+          description = "AI-assisted development";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode";
+          homepage = "https://github.com/MicrosoftDocs/intellicode";
+          license = lib.licenses.cc-by-40;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
+      vlanguage.vscode-vlang = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-vlang";
+          publisher = "vlanguage";
+          version = "0.1.14";
+          sha256 = "sha256-hlBALxBs5wZZFk4lgAkdkGs731Xuc2p0qxffOW6mMWQ=";
+        };
+        meta = {
+          description = "V language support (syntax highlighting, formatter, snippets) for Visual Studio Code.";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=vlanguage.vscode-vlang";
+          homepage = "https://github.com/vlang/vscode-vlang";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       vscjava.vscode-gradle = buildVscodeMarketplaceExtension rec {
         mktplcRef = {
           name = "vscode-gradle";
@@ -4117,6 +4491,22 @@ let
         };
       };
 
+      vscjava.vscode-java-pack = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "vscode-java-pack";
+          publisher = "vscjava";
+          version = "0.25.2023121402";
+          sha256 = "sha256-JhVJK2gZe3R6dpynon+9wauSAWPdW4LmG9oRWylCexM=";
+        };
+        meta = {
+          description = "Popular extensions for Java development that provides Java IntelliSense, debugging, testing, Maven/Gradle support, project management and more";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack";
+          homepage = "https://github.com/Microsoft/vscode-java-pack";
+          license = lib.licenses.mit;
+          maintainers = [ lib.maintainers.themaxmur ];
+        };
+      };
+
       vscjava.vscode-maven = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "vscode-maven";
@@ -4399,6 +4789,7 @@ let
     };
 
   aliases = super: {
+    _13xforever = super."13xforever";
     _1Password = super."1Password";
     _2gua = super."2gua";
     _4ops = super."4ops";
diff --git a/nixpkgs/pkgs/applications/editors/vscode/extensions/ms-dotnettools.csharp/default.nix b/nixpkgs/pkgs/applications/editors/vscode/extensions/ms-dotnettools.csharp/default.nix
index a170385f9aa1..c1c84082e2ff 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/extensions/ms-dotnettools.csharp/default.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/extensions/ms-dotnettools.csharp/default.nix
@@ -1,72 +1,63 @@
 { lib
-, fetchurl
 , vscode-utils
 , patchelf
 , icu
 , stdenv
 , openssl
 , coreutils
+,
 }:
 let
   inherit (stdenv.hostPlatform) system;
+  inherit (vscode-utils) buildVscodeMarketplaceExtension;
 
-  version = "1.25.4";
-
-  vsixInfo =
+  extInfo =
     let
-      linuxDebuggerBins = [
+      baseBins = [
+        ".roslyn/Microsoft.CodeAnalysis.LanguageServer"
+        ".razor/rzls"
+      ];
+      linuxBins = baseBins ++ [
         ".debugger/vsdbg-ui"
         ".debugger/vsdbg"
       ];
-      darwinX86DebuggerBins = [
+      darwinBins = baseBins ++ [
         ".debugger/x86_64/vsdbg-ui"
         ".debugger/x86_64/vsdbg"
       ];
-      darwinAarch64DebuggerBins = [
-        ".debugger/arm64/vsdbg-ui"
-        ".debugger/arm64/vsdbg"
-      ];
-      omniSharpBins = [
-        ".omnisharp/1.39.4-net6.0/OmniSharp"
-      ];
-      razorBins = [
-        ".razor/createdump"
-        ".razor/rzls"
-      ];
     in
       {
         x86_64-linux = {
-          url = "https://github.com/OmniSharp/omnisharp-vscode/releases/download/v${version}/csharp-${version}-linux-x64.vsix";
-          sha256 = "08k0wxyj8wz8npw1yqrkdpbvwbnrdnsngdkrd2p5ayn3v608ifc2";
-          binaries = linuxDebuggerBins ++ omniSharpBins ++ razorBins;
+          arch = "linux-x64";
+          sha256 = "sha256-si4HKGVIHu44QNlNI2WEnMff9+QZOMWiBfWQaaFGyQE=";
+          binaries = linuxBins;
         };
         aarch64-linux = {
-          url = "https://github.com/OmniSharp/omnisharp-vscode/releases/download/v${version}/csharp-${version}-linux-arm64.vsix";
-          sha256 = "09r2d463dk35905f2c3msqzxa7ylcf0ynhbp3n6d12y3x1200pr2";
-          binaries = linuxDebuggerBins ++ omniSharpBins ++ razorBins;
+          arch = "linux-arm64";
+          sha256 = "sha256-1IXkSRgCHOLD4VeCdqyy54MXCBUX5RDDb3pf7GQH5jA=";
+          binaries = linuxBins;
         };
         x86_64-darwin = {
-          url = "https://github.com/OmniSharp/omnisharp-vscode/releases/download/v${version}/csharp-${version}-darwin-x64.vsix";
-          sha256 = "0mp550kq33zwmlvrhymwnixl4has62imw3ia5z7a01q7mp0w9wpn";
-          binaries = darwinX86DebuggerBins ++ omniSharpBins ++ razorBins;
+          arch = "darwin-x64";
+          sha256 = "sha256-AAbYjZ+YYyGEXSLkiFfluLf7P4OzPhmHzK44N5XT9UI=";
+          binaries = darwinBins;
         };
         aarch64-darwin = {
-          url = "https://github.com/OmniSharp/omnisharp-vscode/releases/download/v${version}/csharp-${version}-darwin-arm64.vsix";
-          sha256 = "08406xz2raal8f10bmnkz1mwdfprsbkjxzc01v0i4sax1hr2a2yl";
-          binaries = darwinAarch64DebuggerBins ++ darwinX86DebuggerBins ++ omniSharpBins ++ razorBins;
+          arch = "darwin-arm64";
+          sha256 = "sha256-1m47kX0Jo+UvthNfgdoPdBBOcDyCA8DfP+zRk3SicR0=";
+          binaries = darwinBins ++ [
+            ".debugger/arm64/vsdbg-ui"
+            ".debugger/arm64/vsdbg"
+          ];
         };
       }.${system} or (throw "Unsupported system: ${system}");
 in
-vscode-utils.buildVscodeMarketplaceExtension rec {
+buildVscodeMarketplaceExtension {
   mktplcRef = {
     name = "csharp";
     publisher = "ms-dotnettools";
-    inherit version;
-  };
-
-  vsix = fetchurl {
-    name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
-    inherit (vsixInfo) url sha256;
+    version = "2.22.3";
+    inherit (extInfo) sha256 arch;
   };
 
   nativeBuildInputs = [
@@ -74,63 +65,47 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
   ];
 
   postPatch = ''
-    declare ext_unique_id
-    # See below as to why we cannot take the whole basename.
-    ext_unique_id="$(basename "$out" | head -c 32)"
-
-    # Fix 'Unable to connect to debuggerEventsPipeName .. exceeds the maximum length 107.' when
-    # attempting to launch a specific test in debug mode. The extension attemps to open
-    # a pipe in extension dir which would fail anyway. We change to target file path
-    # to a path in tmp dir with a short name based on the unique part of the nix store path.
-    # This is however a brittle patch as we're working on minified code.
-    # Hence the attempt to only hold on stable names.
-    # However, this really would better be fixed upstream.
-    sed -i \
-      -E -e 's/(this\._pipePath=[a-zA-Z0-9_]+\.join\()([a-zA-Z0-9_]+\.getExtensionPath\(\)[^,]*,)/\1require("os").tmpdir(), "'"$ext_unique_id"'"\+/g' \
-      "$PWD/dist/extension.js"
-
-    # Fix reference to uname
-    sed -i \
-      -E -e 's_uname -m_${coreutils}/bin/uname -m_g' \
-      "$PWD/dist/extension.js"
+      patchelf_add_icu_as_needed() {
+        declare elf="''${1?}"
+        declare icu_major_v="${
+        lib.head (lib.splitVersion (lib.getVersion icu.name))
+      }"
 
-    patchelf_add_icu_as_needed() {
-      declare elf="''${1?}"
-      declare icu_major_v="${
-      lib.head (lib.splitVersion (lib.getVersion icu.name))
-    }"
+        for icu_lib in icui18n icuuc icudata; do
+          patchelf --add-needed "lib''${icu_lib}.so.$icu_major_v" "$elf"
+        done
+      }
 
-      for icu_lib in icui18n icuuc icudata; do
-        patchelf --add-needed "lib''${icu_lib}.so.$icu_major_v" "$elf"
-      done
-    }
+      patchelf_common() {
+        declare elf="''${1?}"
 
-    patchelf_common() {
-      declare elf="''${1?}"
+        patchelf_add_icu_as_needed "$elf"
+        patchelf --add-needed "libssl.so" "$elf"
+        patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+          --set-rpath "${lib.makeLibraryPath [stdenv.cc.cc openssl icu.out]}:\$ORIGIN" \
+          "$elf"
+      }
 
-      patchelf_add_icu_as_needed "$elf"
-      patchelf --add-needed "libssl.so" "$elf"
-      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-        --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc openssl icu.out ]}:\$ORIGIN" \
-        "$elf"
-    }
+      substituteInPlace dist/extension.js \
+        --replace 'uname -m' '${lib.getExe' coreutils "uname"} -m'
 
-  '' + (lib.concatStringsSep "\n" (map
-    (bin: ''
-      chmod +x "${bin}"
-    '')
-    vsixInfo.binaries))
-  + lib.optionalString stdenv.isLinux (lib.concatStringsSep "\n" (map
-    (bin: ''
-      patchelf_common "${bin}"
-    '')
-    vsixInfo.binaries));
+    ''
+    + (lib.concatStringsSep "\n" (map
+      (bin: ''
+        chmod +x "${bin}"
+      '')
+      extInfo.binaries))
+    + lib.optionalString stdenv.isLinux (lib.concatStringsSep "\n" (map
+      (bin: ''
+        patchelf_common "${bin}"
+      '')
+      extInfo.binaries));
 
   meta = {
-    description = "C# for Visual Studio Code (powered by OmniSharp)";
-    homepage = "https://github.com/OmniSharp/omnisharp-vscode";
+    description = "Official C# support for Visual Studio Code";
+    homepage = "https://github.com/dotnet/vscode-csharp";
     license = lib.licenses.mit;
-    maintainers = [ lib.maintainers.jraygauthier ];
+    maintainers = with lib.maintainers; [ ggg ];
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix b/nixpkgs/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix
index 1729256670c3..2de2c1c8789f 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/extensions/ms-vscode.cpptools/default.nix
@@ -30,14 +30,24 @@
 
 let
   gdbDefaultsTo = if gdbUseFixed then "${gdb}/bin/gdb" else "gdb";
+  supported = {
+    x86_64-linux = {
+      sha256 = "sha256-4mKCBqUCOndKEfsJqTIsfwEt+0CZI8QAhBj3Y4+wKlg=";
+      arch = "linux-x64";
+    };
+    aarch64-linux = {
+      sha256 = "sha256-Kjl8mEpayA1xMHEAMJ5k3Ctk3l48KlUBU5w3dL4pGWM=";
+      arch = "linux-arm64";
+    };
+  };
+
+  base = supported.${stdenv.system} or (throw "unsupported platform ${stdenv.system}");
 in
 vscode-utils.buildVscodeMarketplaceExtension {
-  mktplcRef = {
+  mktplcRef = base // {
     name = "cpptools";
     publisher = "ms-vscode";
     version = "1.17.3";
-    sha256 = "sha256-4mKCBqUCOndKEfsJqTIsfwEt+0CZI8QAhBj3Y4+wKlg=";
-    arch = "linux-x64";
   };
 
   nativeBuildInputs = [
@@ -85,6 +95,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
     homepage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools";
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.jraygauthier lib.maintainers.stargate01 ];
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix b/nixpkgs/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix
index c6ad1dc42bf5..ad7fd06cb020 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix
@@ -39,15 +39,17 @@ let
     ];
 
     postFixup = ''
-      mkdir -p $out/share
+      mkdir -p $out/share/{adapter,formatters}
       # codelldb expects libcodelldb.so to be in the same
       # directory as the executable, and can't find it in $out/lib.
       # To make codelldb executable as a standalone,
       # we put all files in $out/share, and then wrap the binary in $out/bin.
-      mv $out/bin/* $out/share
-      cp $out/lib/* $out/share
-      ln -s ${lldb.lib} $out/lldb
-      makeWrapper $out/share/codelldb $out/bin/codelldb \
+      mv $out/bin/* $out/share/adapter
+      cp $out/lib/* $out/share/adapter
+      cp -r adapter/scripts $out/share/adapter
+      cp -t $out/share/formatters formatters/*.py
+      ln -s ${lldb.lib} $out/share/lldb
+      makeWrapper $out/share/adapter/codelldb $out/bin/codelldb \
         --set-default LLDB_DEBUGSERVER_PATH "${lldb.out}/bin/lldb-server"
     '';
 
@@ -125,12 +127,9 @@ in stdenv.mkDerivation {
 
     mkdir -p $ext/{adapter,formatters}
     mv -t $ext vsix-extracted/extension/*
-    cp -t $ext/adapter ${adapter}/share/*
-    cp -r ../adapter/scripts $ext/adapter
+    cp -t $ext/ -r ${adapter}/share/*
     wrapProgram $ext/adapter/codelldb \
       --set-default LLDB_DEBUGSERVER_PATH "${lldb.out}/bin/lldb-server"
-    cp -t $ext/formatters ../formatters/*.py
-    ln -s ${lldb.lib} $ext/lldb
     # Mark that all components are installed.
     touch $ext/platform.ok
 
diff --git a/nixpkgs/pkgs/applications/editors/vscode/vscode.nix b/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
index 1c430546d21a..5d7342c823cf 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
@@ -30,21 +30,21 @@ let
   archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1sasd183cf264a8am93ck35b485p5vl2bfzzxzpf65rvcmvhn7fh";
-    x86_64-darwin = "01nfh5izc53sxfw27i0byn0l6q4qwp7y9zs0g9a3rx3qglm47qr8";
-    aarch64-linux = "183583xnjv18ksy8bbkjfkxx3zy22anj14hi8bavhgix9bzk3wrb";
-    aarch64-darwin = "1whjm4z922qq1yh4vliiab777n0la6sc45n2qf7q9pvxjj1f83wj";
-    armv7l-linux = "171diqiv9yb9c5klihndsgk7qp7y80cc6bq8r4hnw1b834k0ywfp";
+    x86_64-linux = "11brsgksn3bl3px0hwa83vr22gb2k19pn8hcn7xwn6zzcgf7rsf2";
+    x86_64-darwin = "1ai7jmiq37zpicc5p387nvbx5122fp7c3qh2k596jq7l7k0iyfzd";
+    aarch64-linux = "0psjz56h8asgdh0m6insfysw1f6d00hifvb0rfsi8qv0wca72wb4";
+    aarch64-darwin = "0jskk6dvjg290mvw8hcs4hrhy7m3ridsj5w9lxs6kn74fdvg1byb";
+    armv7l-linux = "0rz26xw312s0larjvkrf8np9c0yccppadiqmj69j47vavg78274c";
   }.${system} or throwSystem;
 in
   callPackage ./generic.nix rec {
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.87.1";
+    version = "1.87.2";
     pname = "vscode" + lib.optionalString isInsiders "-insiders";
 
     # This is used for VS Code - Remote SSH test
-    rev = "1e790d77f81672c49be070e04474901747115651";
+    rev = "863d2581ecda6849923a2118d93a088b0745d9d6";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
     longName = "Visual Studio Code" + lib.optionalString isInsiders " - Insiders";
@@ -68,7 +68,7 @@ in
       src = fetchurl {
         name = "vscode-server-${rev}.tar.gz";
         url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
-        sha256 = "19k2n1zlfvy1dczrslrdzhvpa27nc0mcg2x4bmp5yvvv5bpv3bbd";
+        sha256 = "1hdny44f93qzpm9vgx14wk1myrnsv5qcj25rqcy2jb5kspnq6813";
       };
     };
 
diff --git a/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix b/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
index 22f4ec88118c..f46c514acb76 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
@@ -15,11 +15,11 @@ let
   archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0pz2dn245jzjw2n79mm9angvdlwlwxb4lwdq8za1i99g2m4il1bz";
-    x86_64-darwin = "0d0ivs672zh7w60pxy95awq7c8gxhs7d8wv5cf25289gnzcd6qff";
-    aarch64-linux = "1srir5gr0bdvnxyqrfq00p34ligg0pppr22g9zrdm8jasvrz6fb0";
-    aarch64-darwin = "046kcsanz5msf5xd94b1lxcwclsp3dcwxgzrcxycbsykxslz9gpq";
-    armv7l-linux = "0h576q3jbdy48bvg4h9swd2w7cynxmnm2klj6p719myigx7h2jzg";
+    x86_64-linux = "1jy1lsbha951z2bcnfrkgin7nms3clpa97rx7c7pdm23mnyg9073";
+    x86_64-darwin = "0425cnzw1dz2k6a9p63w7vf25icf02m04ri82dp0k1kvhjfr8l37";
+    aarch64-linux = "123p1glr9rc1z2lfl8g5zw7rcipg1njybscqn9qyzkpqymcsqfdy";
+    aarch64-darwin = "1bl5wvbfr5k1vy6ah2i9548cn1l3nx3ng4c544zvclskmr8kf84s";
+    armv7l-linux = "0nyv3yjqcrg4r2m2d63qz34g07pp8n0ndmai9pqwcf7a1m0v0sj4";
   }.${system} or throwSystem;
 
   sourceRoot = lib.optionalString (!stdenv.isDarwin) ".";
@@ -29,7 +29,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.86.2.24057";
+    version = "1.87.2.24072";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/nixpkgs/pkgs/applications/emulators/86box/default.nix b/nixpkgs/pkgs/applications/emulators/86box/default.nix
index 93b95b4c2b7c..1fceee8182ed 100644
--- a/nixpkgs/pkgs/applications/emulators/86box/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/86box/default.nix
@@ -76,6 +76,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Emulator of x86-based machines based on PCem.";
+    mainProgram = "86Box";
     homepage = "https://86box.net/";
     license = with licenses; [ gpl2Only ] ++ optional unfreeEnableDiscord unfree;
     maintainers = [ maintainers.jchw ];
diff --git a/nixpkgs/pkgs/applications/emulators/bsnes/ares/default.nix b/nixpkgs/pkgs/applications/emulators/bsnes/ares/default.nix
index b3d362cd11aa..0a5993557a08 100644
--- a/nixpkgs/pkgs/applications/emulators/bsnes/ares/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/bsnes/ares/default.nix
@@ -83,6 +83,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://ares-emu.net";
     description = "Open-source multi-system emulator with a focus on accuracy and preservation";
+    mainProgram = "ares";
     license = lib.licenses.isc;
     maintainers = with lib.maintainers; [ Madouura AndersonTorres ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/applications/emulators/cdemu/vhba.nix b/nixpkgs/pkgs/applications/emulators/cdemu/vhba.nix
index 40792c81ac1c..103e4b4b5b89 100644
--- a/nixpkgs/pkgs/applications/emulators/cdemu/vhba.nix
+++ b/nixpkgs/pkgs/applications/emulators/cdemu/vhba.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "vhba";
-  version = "20211218";
+  version = "20240202";
 
   src  = fetchurl {
     url = "mirror://sourceforge/cdemu/vhba-module-${version}.tar.xz";
-    sha256 = "sha256-csWowcRSgF5M74yv787MLSXOGXrkxnODCCgC5a3Nd7Y=";
+    sha256 = "sha256-v1hQ1Lj1AiHKh9c0OpKe2oexkfb1roxhQXRUO1ut3oM=";
   };
 
   makeFlags = kernel.makeFlags ++ [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" "INSTALL_MOD_PATH=$(out)" ];
diff --git a/nixpkgs/pkgs/applications/emulators/cemu/default.nix b/nixpkgs/pkgs/applications/emulators/cemu/default.nix
index 6e0db9e02c9f..fa7f68c7063f 100644
--- a/nixpkgs/pkgs/applications/emulators/cemu/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/cemu/default.nix
@@ -46,13 +46,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "cemu";
-  version = "2.0-66";
+  version = "2.0-68";
 
   src = fetchFromGitHub {
     owner = "cemu-project";
     repo = "Cemu";
     rev = "v${version}";
-    hash = "sha256-1s1H2rJuN9lRNanKXxKWMLBOFg5z3IwpJCZCmymAH9Y=";
+    hash = "sha256-/c0rpj4s3aNJVH+AlU9R4t321OqTvJHfZQCfyzYB4m8=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/emulators/fceux/default.nix b/nixpkgs/pkgs/applications/emulators/fceux/default.nix
index 8c5c554d6dc0..6a33b68dbe70 100644
--- a/nixpkgs/pkgs/applications/emulators/fceux/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/fceux/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "http://www.fceux.com/";
     description = "A Nintendo Entertainment System (NES) Emulator";
+    mainProgram = "fceux";
     changelog = "https://github.com/TASEmulators/blob/fceux/${finalAttrs.src.rev}/changelog.txt";
     license = with lib.licenses; [ gpl2Plus ];
     maintainers = with lib.maintainers; [ AndersonTorres sbruder ];
diff --git a/nixpkgs/pkgs/applications/emulators/flycast/default.nix b/nixpkgs/pkgs/applications/emulators/flycast/default.nix
index ee02b1eee071..2661fada5f79 100644
--- a/nixpkgs/pkgs/applications/emulators/flycast/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/flycast/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/flyinghead/flycast";
     changelog = "https://github.com/flyinghead/flycast/releases/tag/v${version}";
     description = "A multi-platform Sega Dreamcast, Naomi and Atomiswave emulator";
+    mainProgram = "flycast";
     license = licenses.gpl2Only;
     platforms = platforms.unix;
     maintainers = [ maintainers.ivar ];
diff --git a/nixpkgs/pkgs/applications/emulators/fuse-emulator/default.nix b/nixpkgs/pkgs/applications/emulators/fuse-emulator/default.nix
index 91aec6d52ed6..378437ca30c8 100644
--- a/nixpkgs/pkgs/applications/emulators/fuse-emulator/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/fuse-emulator/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://fuse-emulator.sourceforge.net/";
     description = "ZX Spectrum emulator";
+    mainProgram = "fuse";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ orivej ];
diff --git a/nixpkgs/pkgs/applications/emulators/mednafen/server.nix b/nixpkgs/pkgs/applications/emulators/mednafen/server.nix
index 24c13bf0228c..3e11ff41d48d 100644
--- a/nixpkgs/pkgs/applications/emulators/mednafen/server.nix
+++ b/nixpkgs/pkgs/applications/emulators/mednafen/server.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Netplay server for Mednafen";
+    mainProgram = "mednafen-server";
     homepage = "https://mednafen.github.io/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ AndersonTorres ];
diff --git a/nixpkgs/pkgs/applications/emulators/mednaffe/default.nix b/nixpkgs/pkgs/applications/emulators/mednaffe/default.nix
index 32bb06b27042..75a25a4bec3b 100644
--- a/nixpkgs/pkgs/applications/emulators/mednaffe/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/mednaffe/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GTK-based frontend for mednafen emulator";
+    mainProgram = "mednaffe";
     homepage = "https://github.com/AmatCoder/mednaffe";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ sheenobu yana AndersonTorres ];
diff --git a/nixpkgs/pkgs/applications/emulators/pcem/default.nix b/nixpkgs/pkgs/applications/emulators/pcem/default.nix
index bd9503f01778..e680dd450d30 100644
--- a/nixpkgs/pkgs/applications/emulators/pcem/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/pcem/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Emulator for IBM PC computers and clones";
+    mainProgram = "pcem";
     homepage = "https://pcem-emulator.co.uk/";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.terin ];
diff --git a/nixpkgs/pkgs/applications/emulators/punes/default.nix b/nixpkgs/pkgs/applications/emulators/punes/default.nix
index 529dce536430..ba5f1205a58b 100644
--- a/nixpkgs/pkgs/applications/emulators/punes/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/punes/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , gitUpdater
 , cmake
 , pkg-config
@@ -17,26 +16,17 @@
 , wrapQtAppsHook
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "punes";
-  version = "0.110";
+  version = "0.111";
 
   src = fetchFromGitHub {
     owner = "punesemu";
     repo = "puNES";
-    rev = "v${version}";
-    sha256 = "sha256-+hL168r40aYUjyLbWFXWk9G2srrrG1TH1gLYMliHftU=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-TIXjYkInWV3yVnvXrdHcmeWYeps5TcvkG2Xjg4roIds=";
   };
 
-  patches = [
-    # Fixes compilation on aarch64
-    # Remove when version > 0.110
-    (fetchpatch {
-      url = "https://github.com/punesemu/puNES/commit/90dd5bc90412bbd199c2716f67a24aa88b24d80f.patch";
-      hash = "sha256-/KNpTds4qjwyaTUebWWPlVXfuxVh6M4zOInxUfYztJg=";
-    })
-  ];
-
   nativeBuildInputs = [
     cmake
     pkg-config
@@ -71,9 +61,11 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Qt-based Nintendo Entertainment System emulator and NSF/NSFe Music Player";
+    mainProgram = "punes";
     homepage = "https://github.com/punesemu/puNES";
+    changelog = "https://github.com/punesemu/puNES/blob/v${finalAttrs.version}/ChangeLog";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ OPNA2608 ];
     platforms = with platforms; linux ++ freebsd ++ openbsd ++ windows;
   };
-}
+})
diff --git a/nixpkgs/pkgs/applications/emulators/retroarch/hashes.json b/nixpkgs/pkgs/applications/emulators/retroarch/hashes.json
index 558c24a2ed88..459109e9247b 100644
--- a/nixpkgs/pkgs/applications/emulators/retroarch/hashes.json
+++ b/nixpkgs/pkgs/applications/emulators/retroarch/hashes.json
@@ -55,20 +55,20 @@
         "src": {
             "owner": "libretro",
             "repo": "beetle-pce-libretro",
-            "rev": "95b5ea18a694f5a05b1c0cda20928c825d981238",
-            "hash": "sha256-4Y2dyELUGWycCQ1UA0Ov6Ijh1t+KgSL1AtDefbRmjbA="
+            "rev": "20b86372b5f490394099ee0ad06e0eb3a4fd5c2e",
+            "hash": "sha256-jYV2eiBSLj9H2RIau8NwYLGV2SY7GqygEYTJ3YVoMNc="
         },
-        "version": "unstable-2024-03-01"
+        "version": "unstable-2024-03-22"
     },
     "beetle-pce-fast": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "beetle-pce-fast-libretro",
-            "rev": "28180934e9d7f1a6ec655adde0b81f0b167732ad",
-            "hash": "sha256-Kt1Bh32zoJynbqp/0ARngPTYHlvp6k/Ya09l8/736gk="
+            "rev": "9bfba0eb494cd994087cc41e5204cc11484ceae0",
+            "hash": "sha256-NnI3Yh4vD5edI0rWbiU2XXYppzv5FvoZr52ikOcTUo4="
         },
-        "version": "unstable-2024-03-01"
+        "version": "unstable-2024-03-15"
     },
     "beetle-pcfx": {
         "fetcher": "fetchFromGitHub",
@@ -85,10 +85,10 @@
         "src": {
             "owner": "libretro",
             "repo": "beetle-psx-libretro",
-            "rev": "680bbf0e2a4f9bc2b534d213416456baa9c95212",
-            "hash": "sha256-QmiCokeMtQC2+cwWFovve2+c3pahD+IdOFBRAXEPV0k="
+            "rev": "77060aa536c81075371c79621c95772fef765868",
+            "hash": "sha256-IZXn3Yn1BndRCjKCzzzcWyMBFBzKAoQ732XK32FiYK4="
         },
-        "version": "unstable-2024-03-01"
+        "version": "unstable-2024-03-15"
     },
     "beetle-saturn": {
         "fetcher": "fetchFromGitHub",
@@ -115,10 +115,10 @@
         "src": {
             "owner": "libretro",
             "repo": "beetle-supergrafx-libretro",
-            "rev": "29ff9e00a85db3d462cca42543a84597c421c99c",
-            "hash": "sha256-UZt1yFcwgdY/TbDs+GQ73Nu5KRA1R8gdKs73IQC1mCg="
+            "rev": "e41f864c0abb36aef20f8e37cd9d9a92c00a9221",
+            "hash": "sha256-LkkW5mQmwv89ZECssVh43ezwe4xMagUOiSz82OupISQ="
         },
-        "version": "unstable-2024-03-01"
+        "version": "unstable-2024-03-22"
     },
     "beetle-vb": {
         "fetcher": "fetchFromGitHub",
@@ -165,10 +165,10 @@
         "src": {
             "owner": "libretro",
             "repo": "bsnes-libretro",
-            "rev": "9e9b928e0153f663cf4802f266315ab092067b7e",
-            "hash": "sha256-Fn1bz3TC+8CEmGDNcll0yfzBpDPvfS1vknf49ogNCIQ="
+            "rev": "494d53b11d875a51f2de9e8fe25db038ae4c63fa",
+            "hash": "sha256-hLFT4m0900+2PAmVS41Z5uf3Ir2hg2pCbs2der8CG+k="
         },
-        "version": "unstable-2024-03-01"
+        "version": "unstable-2024-03-15"
     },
     "bsnes-hd": {
         "fetcher": "fetchFromGitHub",
@@ -287,10 +287,10 @@
         "src": {
             "owner": "libretro",
             "repo": "fbneo",
-            "rev": "a9c41d1e1132b1a7aad48c0f8e94fcf9c7ba0f9f",
-            "hash": "sha256-H4pJruHqJ4p3tBykm015U+wApHrAeVaZO9nLJ9Rc0NQ="
+            "rev": "b6c6d883df5e9e9a9a5d4b9f09e796702b08d177",
+            "hash": "sha256-dLDtcjp68caRwc3wLj80Oj7HA/SlW7/eswbY1n3aRAc="
         },
-        "version": "unstable-2024-03-03"
+        "version": "unstable-2024-03-21"
     },
     "fceumm": {
         "fetcher": "fetchFromGitHub",
@@ -307,11 +307,11 @@
         "src": {
             "owner": "flyinghead",
             "repo": "flycast",
-            "rev": "391da7023f63c2afd32af72ac9f2cfb02bbc7eb6",
-            "hash": "sha256-fcNpFl6VwaoL2mWZOgyVoJWX9CV2KbWctukdxxo797I=",
+            "rev": "40cdef6c1c9bd73bf3a55d412e30c25bbcf2b59c",
+            "hash": "sha256-+3PqeLT6i2HesVaA5b13bavNqH0mqeFIkHfhusdzWYU=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-03-04"
+        "version": "unstable-2024-03-19"
     },
     "fmsx": {
         "fetcher": "fetchFromGitHub",
@@ -348,20 +348,20 @@
         "src": {
             "owner": "libretro",
             "repo": "gambatte-libretro",
-            "rev": "9806d3f12bc3a831fad3f71c6fbad6f93d83581c",
-            "hash": "sha256-EdqS410TZyRqE/nd/oLJt7dauN0DCtNnhB6k6CPd/tc="
+            "rev": "b2dadf0c4ebcc70f04245d8bc1eefc2b8d56cbe3",
+            "hash": "sha256-GvZO2TJM8L65/aWp3KRsA7VpAmS6Gz3e64LDcOt97qc="
         },
-        "version": "unstable-2024-03-01"
+        "version": "unstable-2024-03-15"
     },
     "genesis-plus-gx": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "Genesis-Plus-GX",
-            "rev": "d434ad9ee418247490a8560b52e0651d25304f35",
-            "hash": "sha256-v6IYku+9hLlGD0sgkzoatdD7Glp/3pgwBE2K4hdsFec="
+            "rev": "667158b034ce860e345b13e1ed927fea9d155b96",
+            "hash": "sha256-uerlejdqJO+vPDs1K7dAxImfJzWrEWlVhF/uTaQoo6E="
         },
-        "version": "unstable-2024-03-02"
+        "version": "unstable-2024-03-15"
     },
     "gpsp": {
         "fetcher": "fetchFromGitHub",
@@ -438,10 +438,10 @@
         "src": {
             "owner": "libretro",
             "repo": "mame2003-plus-libretro",
-            "rev": "a7cb863de48247c771a0fcc71d519131eae4e9c6",
-            "hash": "sha256-Y/Zyfck5tJ6oVsL/WjNXJZdPE5THeyBD5tNzJQaLSn8="
+            "rev": "8e60ed0217ff6206768d7bdc6313e86c4c852405",
+            "hash": "sha256-zq143CSDMSBQ/e7kntz63cTaKk552IKfCoRGmt5jYik="
         },
-        "version": "unstable-2024-03-02"
+        "version": "unstable-2024-03-21"
     },
     "mame2010": {
         "fetcher": "fetchFromGitHub",
@@ -539,10 +539,10 @@
         "src": {
             "owner": "libretro",
             "repo": "mupen64plus-libretro-nx",
-            "rev": "fa55ddca926d3c3ad2285911646919def4aa6fa3",
-            "hash": "sha256-Fn/qSQDR8FuHG9eLE0I24wUa0sdosrl6+lhnf9cD+yQ="
+            "rev": "3f794eec4dc4af2f22ecce507f2da324381d3d92",
+            "hash": "sha256-xO01TAjW8otnoU8fzmK69BufoQn3eY9BPamc3ISqBn8="
         },
-        "version": "unstable-2024-02-06"
+        "version": "unstable-2024-03-07"
     },
     "neocd": {
         "fetcher": "fetchFromGitHub",
@@ -630,10 +630,10 @@
         "src": {
             "owner": "libretro",
             "repo": "pcsx_rearmed",
-            "rev": "9aefd427e47e1cdf94578e1913054bc14a44bab6",
-            "hash": "sha256-CWeHKajdTu4M8SioMsIt6c1BrnguPxmQ6cKOkPpRdqw="
+            "rev": "2b2ac30d6905b3434d822c223b36957aef96a857",
+            "hash": "sha256-jBs3ccKXGX0wumQkGeoNpbsRfWFx5lTufUE0NhEfCtk="
         },
-        "version": "unstable-2024-02-14"
+        "version": "unstable-2024-03-21"
     },
     "picodrive": {
         "fetcher": "fetchFromGitHub",
@@ -651,22 +651,22 @@
         "src": {
             "owner": "jpd002",
             "repo": "Play-",
-            "rev": "79cb8379b0ac86d26bacf85f34b5d199b232f6fa",
-            "hash": "sha256-lXSbFsbZh01FxzN1f0pBSFXrJe1RimlmmmTB9GitQzo=",
+            "rev": "6e9fa384d6e94f552ba56c3233b38770c41b46af",
+            "hash": "sha256-KplGpF0d821ms/UA0GVtDVgdFQR6Xbl844GVPUId77Q=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-03-05"
+        "version": "unstable-2024-03-21"
     },
     "ppsspp": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "hrydgard",
             "repo": "ppsspp",
-            "rev": "0159102a191d43de7ae51775a79846efa2635988",
-            "hash": "sha256-b7QOOpeoVJUComVOlMtZK8B5w5vkE6rxJVEHecJE19k=",
+            "rev": "cd85b4d5e8410dd9b5a9ee5c0e507abd0dc3ff29",
+            "hash": "sha256-a/Le2xFoLmRU8Q2WIegipt/kU49px20W7P6/zqQsspQ=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-02-28"
+        "version": "unstable-2024-03-21"
     },
     "prboom": {
         "fetcher": "fetchFromGitHub",
@@ -793,10 +793,10 @@
         "src": {
             "owner": "stella-emu",
             "repo": "stella",
-            "rev": "a311e1d714db3837ae4c05e2fab0abcf092a2e54",
-            "hash": "sha256-QJirSJleSPezNoyH2DKkaoNmGY3r/5J64IHBp+MeFvI="
+            "rev": "8e8549c1c441e62c2bac0ae5a6489ba3e15412c6",
+            "hash": "sha256-gcIBtLpfmjPHxnixMOF/onNyIclC8sDrmgTi3zHW0Mc="
         },
-        "version": "unstable-2024-03-03"
+        "version": "unstable-2024-03-08"
     },
     "stella2014": {
         "fetcher": "fetchFromGitHub",
@@ -874,10 +874,10 @@
         "src": {
             "owner": "libretro",
             "repo": "libretro-vecx",
-            "rev": "56a99fa08a7601b304d752188ca573febf26faeb",
-            "hash": "sha256-9/d6qzsUJZYZewAbFI4LU2FVpv09uby/5mxCZU7rVzo="
+            "rev": "3a5655ff67e161ef33f66b0f6c26aaf2e59ceda8",
+            "hash": "sha256-NGZo1bUGgw4YMyyBfTsvXPQG/P130mkXzt4GXE/yatU="
         },
-        "version": "unstable-2024-02-10"
+        "version": "unstable-2024-03-17"
     },
     "virtualjaguar": {
         "fetcher": "fetchFromGitHub",
diff --git a/nixpkgs/pkgs/applications/emulators/ripes/default.nix b/nixpkgs/pkgs/applications/emulators/ripes/default.nix
index e1438b1d0a80..4717a1b0601d 100644
--- a/nixpkgs/pkgs/applications/emulators/ripes/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/ripes/default.nix
@@ -14,14 +14,14 @@
 stdenv.mkDerivation rec {
   pname = "ripes";
   # Pulling unstable version as latest stable does not build against gcc-13.
-  version = "2.2.6-unstable-2024-01-02";
+  version = "2.2.6-unstable-2024-03-03";
 
   src = fetchFromGitHub {
     owner = "mortbopet";
     repo = "Ripes";
-    rev = "0faf41b669a93a1944707cd7d111a5e9241425fe";
+    rev = "b71f0ddd5d2d346cb97b28fd3f70fef55bb9b6b7";
     fetchSubmodules = true;
-    hash = "sha256-3+jibS1mGYBy9jmucytc7GvB1ZKRfh7aXtDty77hA3k=";
+    hash = "sha256-zQrrWBHNIacRoAEIjR0dlgUTncBCiodcBeT/wbDClWg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/emulators/rpcemu/default.nix b/nixpkgs/pkgs/applications/emulators/rpcemu/default.nix
index 9fad3725203f..25930470412a 100644
--- a/nixpkgs/pkgs/applications/emulators/rpcemu/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/rpcemu/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://www.marutan.net/rpcemu/index.php";
     description = "Risc PC Emulator";
+    mainProgram = "rpcemu-interpreter";
     longDescription = ''
       RPCEmu is an emulator of classic Acorn computer systems, such as the Risc
       PC and A7000. It runs on multiple platforms including Windows, Linux and
diff --git a/nixpkgs/pkgs/applications/emulators/sameboy/default.nix b/nixpkgs/pkgs/applications/emulators/sameboy/default.nix
index 94c9b9562864..7433d2128a71 100644
--- a/nixpkgs/pkgs/applications/emulators/sameboy/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/sameboy/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://sameboy.github.io";
     description = "Game Boy, Game Boy Color, and Super Game Boy emulator";
+    mainProgram = "sameboy";
 
     longDescription = ''
       SameBoy is a user friendly Game Boy, Game Boy Color and Super
diff --git a/nixpkgs/pkgs/applications/emulators/termtekst/default.nix b/nixpkgs/pkgs/applications/emulators/termtekst/default.nix
index 56f56cffad97..76aa0c79832b 100644
--- a/nixpkgs/pkgs/applications/emulators/termtekst/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/termtekst/default.nix
@@ -22,6 +22,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Console NOS Teletekst viewer in Python";
+    mainProgram = "tt";
     longDescription = ''
       Small Python app using curses to display Dutch NOS Teletekst on
       the Linux console. The original Teletekst font includes 2x6
diff --git a/nixpkgs/pkgs/applications/emulators/wine/sources.nix b/nixpkgs/pkgs/applications/emulators/wine/sources.nix
index 9d2189c23063..fb9b387a7b7a 100644
--- a/nixpkgs/pkgs/applications/emulators/wine/sources.nix
+++ b/nixpkgs/pkgs/applications/emulators/wine/sources.nix
@@ -69,9 +69,9 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the hash for staging as well.
-    version = "9.3";
+    version = "9.4";
     url = "https://dl.winehq.org/wine/source/9.x/wine-${version}.tar.xz";
-    hash = "sha256-FIsuNBR9H6FIQVY3xyPJn0N26SyE6QzB0OAK1O07F5M=";
+    hash = "sha256-xV/5lXYSVJuMfffN3HnXoA0ZFX0Fs3EUi/CNTd92jsY=";
     inherit (stable) patches;
 
     ## see http://wiki.winehq.org/Gecko
@@ -117,7 +117,7 @@ in rec {
   staging = fetchFromGitLab rec {
     # https://gitlab.winehq.org/wine/wine-staging
     inherit (unstable) version;
-    hash = "sha256-1k7HHcsosce5MX86IMiFrfjg0li4DuP0utjyal1Iwkc=";
+    hash = "sha256-wij0CeAL6V8dH4nRS+UVKZMBJlSNgzr9tG1860WSbrU=";
     domain = "gitlab.winehq.org";
     owner = "wine";
     repo = "wine-staging";
diff --git a/nixpkgs/pkgs/applications/emulators/wine/winetricks.nix b/nixpkgs/pkgs/applications/emulators/wine/winetricks.nix
index c5d8e9bd95b3..2b31faae18a4 100644
--- a/nixpkgs/pkgs/applications/emulators/wine/winetricks.nix
+++ b/nixpkgs/pkgs/applications/emulators/wine/winetricks.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A script to install DLLs needed to work around problems in Wine";
+    mainProgram = "winetricks";
     license = lib.licenses.lgpl21;
     homepage = "https://github.com/Winetricks/winetricks";
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/applications/emulators/xemu/default.nix b/nixpkgs/pkgs/applications/emulators/xemu/default.nix
index 3fc8adde9b67..43fbd7e5f73b 100644
--- a/nixpkgs/pkgs/applications/emulators/xemu/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/xemu/default.nix
@@ -28,13 +28,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "xemu";
-  version = "0.7.118";
+  version = "0.7.119";
 
   src = fetchFromGitHub {
     owner = "xemu-project";
     repo = "xemu";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-IGzPxwNxuqMsZhQ63VUyDzPSBpAgc0U0oUjM/blEd7g=";
+    hash = "sha256-5gH1pQqy45vmgeW61peEi6+ZXpPgyQMUg3dh37oqR6s=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/emulators/yabause/default.nix b/nixpkgs/pkgs/applications/emulators/yabause/default.nix
index 17b7b563c15f..fea9a439bb8f 100644
--- a/nixpkgs/pkgs/applications/emulators/yabause/default.nix
+++ b/nixpkgs/pkgs/applications/emulators/yabause/default.nix
@@ -28,6 +28,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "An open-source Sega Saturn emulator";
+    mainProgram = "yabause";
     homepage = "https://yabause.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
diff --git a/nixpkgs/pkgs/applications/file-managers/browsr/default.nix b/nixpkgs/pkgs/applications/file-managers/browsr/default.nix
index b859ab8d7e11..dbf481ed0048 100644
--- a/nixpkgs/pkgs/applications/file-managers/browsr/default.nix
+++ b/nixpkgs/pkgs/applications/file-managers/browsr/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "browsr";
-  version = "1.18.0";
+  version = "1.19.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "juftin";
     repo = "browsr";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ygqoz1rNQwhU1/8NsHwQsSCqQ8gYwHEaAuIaVMCtKKA=";
+    hash = "sha256-V5B+/zfUlpF0TMTHqzyjapW93/DoJKgbJkTMX2NZyIQ=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
@@ -27,6 +27,7 @@ python3.pkgs.buildPythonApplication rec {
     pandas
     pillow
     pymupdf
+    pyperclip
     rich
     rich-click
     rich-pixels
@@ -75,10 +76,14 @@ python3.pkgs.buildPythonApplication rec {
     "test_github_screenshot"
     "test_github_screenshot_license"
     "test_textual_app_context_path_github"
+    "test_mkdocs_screenshot"
+    # Different output
+    "test_textual_app_context_path"
   ];
 
   meta = with lib; {
     description = "A file explorer in your terminal";
+    mainProgram = "browsr";
     homepage = "https://juftin.com/browsr";
     changelog = "https://github.com/juftin/browsr/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/file-managers/dfilemanager/default.nix b/nixpkgs/pkgs/applications/file-managers/dfilemanager/default.nix
index 6c5544aded3e..8a30535f646e 100644
--- a/nixpkgs/pkgs/applications/file-managers/dfilemanager/default.nix
+++ b/nixpkgs/pkgs/applications/file-managers/dfilemanager/default.nix
@@ -19,6 +19,7 @@ mkDerivation {
   meta = {
     homepage = "https://github.com/probonopd/dfilemanager";
     description = "File manager written in Qt/C++";
+    mainProgram = "dfm";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.unix;
   };
diff --git a/nixpkgs/pkgs/applications/file-managers/fm/default.nix b/nixpkgs/pkgs/applications/file-managers/fm/default.nix
index 9c13e7f42b96..148d949794f6 100644
--- a/nixpkgs/pkgs/applications/file-managers/fm/default.nix
+++ b/nixpkgs/pkgs/applications/file-managers/fm/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage {
   pname = "fm";
-  version = "unstable-2023-07-25";
+  version = "0-unstable-2024-01-03";
 
   src = fetchFromGitHub {
     owner = "euclio";
     repo = "fm";
-    rev = "a0830b5483a48a8b1e40982f20c28dcb5bfe4a6e";
-    hash = "sha256-uso7j+bf6PF5wiTzSJymSxNNfzqXVcJygkfGdzQl4xA=";
+    rev = "f1da116fe703a2c3d5bc9450703ecf1a1f1b4fda";
+    hash = "sha256-fCufqCy5H5Up6V15sOz8SJrixth7OQ7tc4yIymmfq1M=";
   };
 
-  cargoHash = "sha256-3IxpnDYbfLI1VAMgqIE4eSkiT9Z6HcC3K6MH6uqD9Ic=";
+  cargoHash = "sha256-E/mT+e17Qse4aPCY5Tuvih+ZMDnUqwvEBY0N70kciMs=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/applications/file-managers/xfe/default.nix b/nixpkgs/pkgs/applications/file-managers/xfe/default.nix
index ffad141bdafa..3853119126d1 100644
--- a/nixpkgs/pkgs/applications/file-managers/xfe/default.nix
+++ b/nixpkgs/pkgs/applications/file-managers/xfe/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xfe";
-  version = "1.46";
+  version = "1.46.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/xfe/xfe-${version}.tar.xz";
-    sha256 = "sha256-80rtoetmipDObW8BHL2US7305Jo5TFrQrIg6DzLoR/k=";
+    sha256 = "sha256-NTpowZCl4OTWrK2txh7f7t9WxGRdfM0M3KIyHq3nJUg=";
   };
 
   nativeBuildInputs = [ pkg-config intltool ];
diff --git a/nixpkgs/pkgs/applications/gis/grass/default.nix b/nixpkgs/pkgs/applications/gis/grass/default.nix
index 5fcc6f93fac0..9dc83fdf2397 100644
--- a/nixpkgs/pkgs/applications/gis/grass/default.nix
+++ b/nixpkgs/pkgs/applications/gis/grass/default.nix
@@ -23,7 +23,6 @@
 , pkg-config
 , postgresql
 , proj
-, proj-datumgrid
 , python3Packages
 , readline
 , sqlite
@@ -71,7 +70,6 @@ stdenv.mkDerivation (finalAttrs: {
     pdal
     postgresql
     proj
-    proj-datumgrid
     readline
     sqlite
     wxGTK32
diff --git a/nixpkgs/pkgs/applications/gis/qgis/set-pyqt-package-dirs-ltr.patch b/nixpkgs/pkgs/applications/gis/qgis/set-pyqt-package-dirs-ltr.patch
deleted file mode 100644
index 5553f80fbc5b..000000000000
--- a/nixpkgs/pkgs/applications/gis/qgis/set-pyqt-package-dirs-ltr.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-diff --git a/cmake/FindPyQt5.cmake b/cmake/FindPyQt5.cmake
-index b51fd0075e..87ee317e05 100644
---- a/cmake/FindPyQt5.cmake
-+++ b/cmake/FindPyQt5.cmake
-@@ -25,7 +25,7 @@ ELSE(EXISTS PYQT5_VERSION_STR)
-   IF(SIP_BUILD_EXECUTABLE)
-     # SIP >= 5.0 path
- 
--    FILE(GLOB _pyqt5_metadata "${Python_SITEARCH}/PyQt5-*.dist-info/METADATA")
-+    FILE(GLOB _pyqt5_metadata "@pyQt5PackageDir@/PyQt5-*.dist-info/METADATA")
-     IF(_pyqt5_metadata)
-       FILE(READ ${_pyqt5_metadata} _pyqt5_metadata_contents)
-       STRING(REGEX REPLACE ".*\nVersion: ([^\n]+).*$" "\\1" PYQT5_VERSION_STR ${_pyqt5_metadata_contents})
-@@ -34,8 +34,8 @@ ELSE(EXISTS PYQT5_VERSION_STR)
-     ENDIF(_pyqt5_metadata)
- 
-     IF(PYQT5_VERSION_STR)
--      SET(PYQT5_MOD_DIR "${Python_SITEARCH}/PyQt5")
--      SET(PYQT5_SIP_DIR "${Python_SITEARCH}/PyQt5/bindings")
-+      SET(PYQT5_MOD_DIR "@pyQt5PackageDir@/PyQt5")
-+      SET(PYQT5_SIP_DIR "@pyQt5PackageDir@/PyQt5/bindings")
-       FIND_PROGRAM(__pyuic5 "pyuic5")
-       GET_FILENAME_COMPONENT(PYQT5_BIN_DIR ${__pyuic5} DIRECTORY)
- 
-diff --git a/cmake/FindQsci.cmake b/cmake/FindQsci.cmake
-index 69e41c1fe9..5456c3d59b 100644
---- a/cmake/FindQsci.cmake
-+++ b/cmake/FindQsci.cmake
-@@ -24,7 +24,7 @@ ELSE(QSCI_MOD_VERSION_STR)
-   IF(SIP_BUILD_EXECUTABLE)
-     # SIP >= 5.0 path
- 
--    FILE(GLOB _qsci_metadata "${Python_SITEARCH}/QScintilla*.dist-info/METADATA")
-+    FILE(GLOB _qsci_metadata "@qsciPackageDir@/QScintilla*.dist-info/METADATA")
-     IF(_qsci_metadata)
-       FILE(READ ${_qsci_metadata} _qsci_metadata_contents)
-       STRING(REGEX REPLACE ".*\nVersion: ([^\n]+).*$" "\\1" QSCI_MOD_VERSION_STR ${_qsci_metadata_contents})
-@@ -33,7 +33,7 @@ ELSE(QSCI_MOD_VERSION_STR)
-     ENDIF(_qsci_metadata)
- 
-     IF(QSCI_MOD_VERSION_STR)
--      SET(QSCI_SIP_DIR "${PYQT5_SIP_DIR}")
-+      SET(QSCI_SIP_DIR "@qsciPackageDir@/PyQt5/bindings")
-       SET(QSCI_FOUND TRUE)
-     ENDIF(QSCI_MOD_VERSION_STR)
- 
-diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
-index 4cd19c3af4..668cc6a5e6 100644
---- a/python/CMakeLists.txt
-+++ b/python/CMakeLists.txt
-@@ -206,7 +206,7 @@ if (WITH_GUI)
-     install(FILES ${QGIS_PYTHON_OUTPUT_DIRECTORY}/_gui.pyi DESTINATION ${QGIS_PYTHON_DIR})
-   endif()
-   if(QSCI_SIP_DIR)
--    set(SIP_EXTRA_OPTIONS ${SIP_EXTRA_OPTIONS} -I ${QSCI_SIP_DIR})
-+    set(SIP_BUILD_EXTRA_OPTIONS ${SIP_BUILD_EXTRA_OPTIONS} --include-dir=${QSCI_SIP_DIR})
-   else()
-     message(STATUS "Qsci sip file not found - disabling bindings for derived classes")
-     set(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} HAVE_QSCI_SIP)
diff --git a/nixpkgs/pkgs/applications/gis/qgis/unwrapped-ltr.nix b/nixpkgs/pkgs/applications/gis/qgis/unwrapped-ltr.nix
index 7e93c6814c7b..4a5e06c2e5e6 100644
--- a/nixpkgs/pkgs/applications/gis/qgis/unwrapped-ltr.nix
+++ b/nixpkgs/pkgs/applications/gis/qgis/unwrapped-ltr.nix
@@ -1,17 +1,17 @@
 { lib
-, callPackage
 , fetchFromGitHub
-, fetchpatch
 , makeWrapper
 , mkDerivation
 , substituteAll
 , wrapGAppsHook
+, wrapQtAppsHook
 
 , withGrass ? true
 , withWebKit ? false
 
 , bison
 , cmake
+, draco
 , exiv2
 , fcgi
 , flex
@@ -25,7 +25,7 @@
 , netcdf
 , ninja
 , openssl
-# , pdal
+, pdal
 , postgresql
 , proj
 , protobuf
@@ -36,6 +36,7 @@
 , qtbase
 , qtkeychain
 , qtlocation
+, qtmultimedia
 , qtsensors
 , qtserialport
 , qtwebkit
@@ -63,8 +64,8 @@ let
     owslib
     psycopg2
     pygments
-    pyqt-builder
     pyqt5
+    pyqt-builder
     python-dateutil
     pytz
     pyyaml
@@ -76,14 +77,14 @@ let
     urllib3
   ];
 in mkDerivation rec {
-  version = "3.28.15";
+  version = "3.34.5";
   pname = "qgis-ltr-unwrapped";
 
   src = fetchFromGitHub {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
-    hash = "sha256-R6p1MVeCMbaD74Eqn+OLQkTYP+00y9mBucJR1JXPEJ4=";
+    hash = "sha256-TRSS1YclGUfBjNz+Lo8U8YlN4kdJ9JLcwd7qpgwRbG0=";
   };
 
   passthru = {
@@ -94,6 +95,7 @@ in mkDerivation rec {
   nativeBuildInputs = [
     makeWrapper
     wrapGAppsHook
+    wrapQtAppsHook
 
     bison
     cmake
@@ -102,32 +104,34 @@ in mkDerivation rec {
   ];
 
   buildInputs = [
-    openssl
-    proj
-    geos
-    sqlite
-    gsl
-    qwt
+    draco
     exiv2
-    protobuf
     fcgi
+    geos
+    gsl
+    hdf5
     libspatialindex
     libspatialite
-    postgresql
-    txt2tags
     libzip
-    hdf5
     netcdf
-    qtbase
-    qtsensors
+    openssl
+    pdal
+    postgresql
+    proj
+    protobuf
     qca-qt5
-    qtkeychain
     qscintilla
+    qt3d
+    qtbase
+    qtkeychain
     qtlocation
+    qtmultimedia
+    qtsensors
     qtserialport
     qtxmlpatterns
-    qt3d
-    # pdal
+    qwt
+    sqlite
+    txt2tags
     zstd
   ] ++ lib.optional withGrass grass
     ++ lib.optional withWebKit qtwebkit
@@ -135,22 +139,22 @@ in mkDerivation rec {
 
   patches = [
     (substituteAll {
-      src = ./set-pyqt-package-dirs-ltr.patch;
+      src = ./set-pyqt-package-dirs.patch;
       pyQt5PackageDir = "${py.pkgs.pyqt5}/${py.pkgs.python.sitePackages}";
       qsciPackageDir = "${py.pkgs.qscintilla-qt5}/${py.pkgs.python.sitePackages}";
     })
-    (fetchpatch {
-      name = "qgis-3.28.9-exiv2-0.28.patch";
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sci-geosciences/qgis/files/qgis-3.28.9-exiv2-0.28.patch?id=002882203ad6a2b08ce035a18b95844a9f4b85d0";
-      hash = "sha256-mPRo0A7ko4GCHJrfJ2Ls0dUKvkFtDmhKekI2CR9StMw=";
-    })
   ];
 
-  # PDAL is disabled until https://github.com/qgis/QGIS/pull/54940
-  # is backported.
+  # Add path to Qt platform plugins
+  # (offscreen is needed by "${APIS_SRC_DIR}/generate_console_pap.py")
+  preBuild = ''
+    export QT_QPA_PLATFORM_PLUGIN_PATH=${qtbase.bin}/lib/qt-${qtbase.version}/plugins/platforms
+  '';
+
   cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
     "-DWITH_3D=True"
-    "-DWITH_PDAL=False"  # TODO: re-enable PDAL
+    "-DWITH_PDAL=True"
     "-DENABLE_TESTS=False"
   ] ++ lib.optional (!withWebKit) "-DWITH_QTWEBKIT=OFF"
     ++ lib.optional withGrass (let
@@ -159,6 +163,10 @@ in mkDerivation rec {
       in "-DGRASS_PREFIX${gmajor}=${grass}/grass${gmajor}${gminor}"
     );
 
+  qtWrapperArgs = [
+    "--set QT_QPA_PLATFORM_PLUGIN_PATH ${qtbase.bin}/lib/qt-${qtbase.version}/plugins/platforms"
+  ];
+
   dontWrapGApps = true; # wrapper params passed below
 
   postFixup = lib.optionalString withGrass ''
diff --git a/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix b/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix
index ac72139796d4..61e08ef56163 100644
--- a/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix
@@ -78,14 +78,14 @@ let
     urllib3
   ];
 in mkDerivation rec {
-  version = "3.36.0";
+  version = "3.36.1";
   pname = "qgis-unwrapped";
 
   src = fetchFromGitHub {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
-    hash = "sha256-uO9Bu+7n8xzsjumbp0t/yYQNvyDgRH1bdfqpX9oLoTY=";
+    hash = "sha256-/0wVPcQoliJFgY8Kn506gUHfY+kDTdLgzbp/0KLSAkI=";
   };
 
   passthru = {
@@ -98,9 +98,9 @@ in mkDerivation rec {
     wrapGAppsHook
     wrapQtAppsHook
 
+    bison
     cmake
     flex
-    bison
     ninja
   ];
 
diff --git a/nixpkgs/pkgs/applications/graphics/ahoviewer/default.nix b/nixpkgs/pkgs/applications/graphics/ahoviewer/default.nix
index d903ce1adf8e..4c1d309ebbab 100644
--- a/nixpkgs/pkgs/applications/graphics/ahoviewer/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/ahoviewer/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/ahodesuka/ahoviewer";
     description = "A GTK2 image viewer, manga reader, and booru browser";
+    mainProgram = "ahoviewer";
     maintainers = with maintainers; [ xzfc ];
     license = licenses.mit;
     # Unintentionally not working on Darwin:
diff --git a/nixpkgs/pkgs/applications/graphics/antimony/default.nix b/nixpkgs/pkgs/applications/graphics/antimony/default.nix
index 50156802779c..56ee01f8bbe8 100644
--- a/nixpkgs/pkgs/applications/graphics/antimony/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/antimony/default.nix
@@ -62,6 +62,7 @@ in
 
     meta = with lib; {
       description = "A computer-aided design (CAD) tool from a parallel universe";
+      mainProgram = "antimony";
       homepage    = "https://github.com/mkeeter/antimony";
       license     = licenses.mit;
       maintainers = with maintainers; [ rnhmjoj ];
diff --git a/nixpkgs/pkgs/applications/graphics/apngasm/2.nix b/nixpkgs/pkgs/applications/graphics/apngasm/2.nix
index 81d2915c96df..f581f9dd1245 100644
--- a/nixpkgs/pkgs/applications/graphics/apngasm/2.nix
+++ b/nixpkgs/pkgs/applications/graphics/apngasm/2.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Create highly optimized Animated PNG files from PNG/TGA images";
+    mainProgram = "apngasm";
     homepage = "https://apngasm.sourceforge.net/";
     license = licenses.zlib;
     maintainers = with maintainers; [ orivej ];
diff --git a/nixpkgs/pkgs/applications/graphics/awesomebump/default.nix b/nixpkgs/pkgs/applications/graphics/awesomebump/default.nix
index a5debbc21b02..ef9a2f7c7766 100644
--- a/nixpkgs/pkgs/applications/graphics/awesomebump/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/awesomebump/default.nix
@@ -14,7 +14,7 @@ let
   qtnproperty = mkDerivation {
     name = "qtnproperty";
     inherit src;
-    sourceRoot = "AwesomeBump/Sources/utils/QtnProperty";
+    sourceRoot = "${src.name}/Sources/utils/QtnProperty";
     patches = [ ./qtnproperty-parallel-building.patch ];
     buildInputs = [ qtscript qtbase qtdeclarative ];
     nativeBuildInputs = [ qmake flex bison ];
diff --git a/nixpkgs/pkgs/applications/graphics/blockbench-electron/default.nix b/nixpkgs/pkgs/applications/graphics/blockbench-electron/default.nix
deleted file mode 100644
index 50a10310546d..000000000000
--- a/nixpkgs/pkgs/applications/graphics/blockbench-electron/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_25 }:
-
-stdenv.mkDerivation rec {
-  pname = "blockbench-electron";
-  version = "4.8.1";
-
-  src = fetchurl {
-    url = "https://github.com/JannisX11/blockbench/releases/download/v${version}/Blockbench_${version}.AppImage";
-    sha256 = "sha256-CE2wDOt1WBcYmPs4sEyZ3LYvKLequFZH0B3huMYHlwA=";
-    name = "${pname}-${version}.AppImage";
-  };
-
-  appimageContents = appimageTools.extractType2 {
-    name = "${pname}-${version}";
-    inherit src;
-  };
-
-  dontUnpack = true;
-  dontConfigure = true;
-  dontBuild = true;
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/bin $out/share/${pname} $out/share/applications
-    cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
-    cp -a ${appimageContents}/blockbench.desktop $out/share/applications/${pname}.desktop
-    cp -a ${appimageContents}/usr/share/icons $out/share
-    substituteInPlace $out/share/applications/${pname}.desktop \
-      --replace 'Exec=AppRun' 'Exec=${pname}'
-    runHook postInstall
-  '';
-
-  postFixup = ''
-    makeWrapper ${electron_25}/bin/electron $out/bin/${pname} \
-      --add-flags $out/share/${pname}/resources/app.asar \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}"
-  '';
-
-  meta = with lib; {
-    description = "A boxy 3D model editor powered by Electron";
-    homepage = "https://blockbench.net/";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ ckie ];
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix b/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix
index 1ad3476e8091..e78b95c363b6 100644
--- a/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix
@@ -2,6 +2,8 @@
 , stdenv
 , mkDerivation
 , fetchFromGitHub
+, makeDesktopItem
+, copyDesktopItems
 , cmake
 , boost
 , cgal
@@ -23,13 +25,13 @@
 
 mkDerivation rec {
   pname = "cloudcompare";
-  version = "2.13";
+  version = "2.13.1";
 
   src = fetchFromGitHub {
     owner = "CloudCompare";
     repo = "CloudCompare";
     rev = "v${version}";
-    hash = "sha256-tCmIdajizaTT1tvPA7YQoklfz7pYVKS0lJXrxV2fidg=";
+    hash = "sha256-QQwQt63tXxJnGaBLu+GvWkEazumYPhXnDe+giSu7wjk=";
     fetchSubmodules = true;
   };
 
@@ -37,6 +39,7 @@ mkDerivation rec {
     cmake
     eigen # header-only
     wrapGAppsHook
+    copyDesktopItems
   ];
 
   buildInputs = [
@@ -96,12 +99,15 @@ mkDerivation rec {
   dontWrapGApps = true;
 
   postInstall = ''
-    install -Dm444 $src/snap/gui/{ccViewer,cloudcompare}.png -t $out/share/icons/hicolor/256x256/apps
-    install -Dm444 $src/snap/gui/{ccViewer,cloudcompare}.desktop -t $out/share/applications
-    substituteInPlace $out/share/applications/{ccViewer,cloudcompare}.desktop \
-      --replace 'Exec=cloudcompare.' 'Exec=' \
-      --replace 'Icon=''${SNAP}/meta/gui/' 'Icon=' \
-      --replace '.png' ""
+    install -Dm444 $src/qCC/images/icon/cc_icon_16.png $out/share/icons/hicolor/16x16/apps/CloudCompare.png
+    install -Dm444 $src/qCC/images/icon/cc_icon_32.png $out/share/icons/hicolor/32x32/apps/CloudCompare.png
+    install -Dm444 $src/qCC/images/icon/cc_icon_64.png $out/share/icons/hicolor/64x64/apps/CloudCompare.png
+    install -Dm444 $src/qCC/images/icon/cc_icon_256.png $out/share/icons/hicolor/256x256/apps/CloudCompare.png
+
+    install -Dm444 $src/qCC/images/icon/cc_viewer_icon_16.png $out/share/icons/hicolor/16x16/apps/ccViewer.png
+    install -Dm444 $src/qCC/images/icon/cc_viewer_icon_32.png $out/share/icons/hicolor/32x32/apps/ccViewer.png
+    install -Dm444 $src/qCC/images/icon/cc_viewer_icon_64.png $out/share/icons/hicolor/64x64/apps/ccViewer.png
+    install -Dm444 $src/qCC/images/icon/cc_viewer_icon_256.png $out/share/icons/hicolor/256x256/apps/ccViewer.png
   '';
 
   # fix file dialogs crashing on non-NixOS (and avoid double wrapping)
@@ -109,11 +115,35 @@ mkDerivation rec {
     qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
+  desktopItems = [
+    (makeDesktopItem {
+      name = "CloudCompare";
+      desktopName = "CloudCompare";
+      comment = "3D point cloud and mesh processing software";
+      exec = "CloudCompare";
+      terminal = false;
+      categories = [ "Graphics" "3DGraphics" "Viewer" ];
+      keywords = [ "3d" "processing" ];
+      icon = "CloudCompare";
+    })
+    (makeDesktopItem {
+      name = "ccViewer";
+      desktopName = "CloudCompare Viewer";
+      comment = "3D point cloud and mesh processing software";
+      exec = "ccViewer";
+      terminal = false;
+      categories = [ "Graphics" "3DGraphics" "Viewer" ];
+      keywords = [ "3d" "viewer" ];
+      icon = "ccViewer";
+    })
+  ];
+
   meta = with lib; {
     description = "3D point cloud and mesh processing software";
     homepage = "https://cloudcompare.org";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ nh2 ];
+    mainProgram = "CloudCompare";
     platforms = with platforms; linux; # only tested here; might work on others
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/conjure/default.nix b/nixpkgs/pkgs/applications/graphics/conjure/default.nix
index b0b00369ffde..634cf7132b1d 100644
--- a/nixpkgs/pkgs/applications/graphics/conjure/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/conjure/default.nix
@@ -57,6 +57,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Magically transform your images";
+    mainProgram = "conjure";
     longDescription = ''
       Resize, crop, rotate, flip images, apply various filters and effects,
       adjust levels and brightness, and much more. An intuitive tool for designers,
diff --git a/nixpkgs/pkgs/applications/graphics/curtail/default.nix b/nixpkgs/pkgs/applications/graphics/curtail/default.nix
index 30ca2289526b..2a881c153f68 100644
--- a/nixpkgs/pkgs/applications/graphics/curtail/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/curtail/default.nix
@@ -69,6 +69,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Simple & useful image compressor";
+    mainProgram = "curtail";
     homepage = "https://github.com/Huluti/Curtail";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ anselmschueler ];
diff --git a/nixpkgs/pkgs/applications/graphics/dia/default.nix b/nixpkgs/pkgs/applications/graphics/dia/default.nix
index eb9d54d5cfc1..c79f50e86d79 100644
--- a/nixpkgs/pkgs/applications/graphics/dia/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/dia/default.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Gnome Diagram drawing software";
+    mainProgram = "dia";
     homepage = "http://live.gnome.org/Dia";
     maintainers = with maintainers; [ raskin ];
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/applications/graphics/djview/default.nix b/nixpkgs/pkgs/applications/graphics/djview/default.nix
index 6386c39ce910..5bbbfc0c686c 100644
--- a/nixpkgs/pkgs/applications/graphics/djview/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/djview/default.nix
@@ -46,6 +46,7 @@ mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "A portable DjVu viewer (Qt5) and browser (nsdejavu) plugin";
+    mainProgram = "djview";
     homepage = "https://djvu.sourceforge.net/djview4.html";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/graphics/dosage/default.nix b/nixpkgs/pkgs/applications/graphics/dosage/default.nix
index 6bdf149c9b97..1aaa53948619 100644
--- a/nixpkgs/pkgs/applications/graphics/dosage/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/dosage/default.nix
@@ -23,6 +23,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = {
     description = "A comic strip downloader and archiver";
+    mainProgram = "dosage";
     homepage = "https://dosage.rocks/";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ toonn ];
diff --git a/nixpkgs/pkgs/applications/graphics/drawing/default.nix b/nixpkgs/pkgs/applications/graphics/drawing/default.nix
index 693c0b213b54..90caf78d6313 100644
--- a/nixpkgs/pkgs/applications/graphics/drawing/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/drawing/default.nix
@@ -63,6 +63,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A free basic image editor, similar to Microsoft Paint, but aiming at the GNOME desktop";
+    mainProgram = "drawing";
     homepage = "https://maoschanz.github.io/drawing/";
     changelog = "https://github.com/maoschanz/drawing/releases/tag/${version}";
     maintainers = with maintainers; [ mothsart ];
diff --git a/nixpkgs/pkgs/applications/graphics/drawio/default.nix b/nixpkgs/pkgs/applications/graphics/drawio/default.nix
index 08a0ba5b8125..b9c56a01e006 100644
--- a/nixpkgs/pkgs/applications/graphics/drawio/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/drawio/default.nix
@@ -6,6 +6,7 @@
 , copyDesktopItems
 , prefetch-yarn-deps
 , makeWrapper
+, autoSignDarwinBinariesHook
 , nodejs
 , yarn
 , electron
@@ -13,19 +14,24 @@
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "23.1.5";
+  version = "24.0.4";
 
   src = fetchFromGitHub {
     owner = "jgraph";
     repo = "drawio-desktop";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-ThmTahuU0o/vr6h/T/zCyEB5/APJlVA6t1TNfZgqTJ0=";
+    hash = "sha256-+TCnVXcmAEpa7MiL0dyeoh2aUfIIO8eze9pEaHgKnME=";
   };
 
+  # `@electron/fuses` tries to run `codesign` and fails. Disable and use autoSignDarwinBinariesHook instead
+  postPatch = ''
+    sed -i -e 's/resetAdHocDarwinSignature:.*/resetAdHocDarwinSignature: false,/' build/fuses.js
+  '';
+
   offlineCache = fetchYarnDeps {
     yarnLock = src + "/yarn.lock";
-    hash = "sha256-hL89WVYy/EQe6Zppmr17Q9T2o/UjBvydDIgGpr7AA5M=";
+    hash = "sha256-QS0bkDDQq3sn79TQ+pTZsmbmXgMccyLmlPLTsko7eGg=";
   };
 
   nativeBuildInputs = [
@@ -35,6 +41,8 @@ stdenv.mkDerivation rec {
     yarn
   ] ++ lib.optionals (!stdenv.isDarwin) [
     copyDesktopItems
+  ] ++ lib.optionals stdenv.isDarwin [
+    autoSignDarwinBinariesHook
   ];
 
   ELECTRON_SKIP_BINARY_DOWNLOAD = true;
diff --git a/nixpkgs/pkgs/applications/graphics/drawpile/default.nix b/nixpkgs/pkgs/applications/graphics/drawpile/default.nix
index ea07e2314217..5c43c609f31f 100644
--- a/nixpkgs/pkgs/applications/graphics/drawpile/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/drawpile/default.nix
@@ -98,6 +98,7 @@ in mkDerivation rec {
 
   meta = {
     description = "A collaborative drawing program that allows multiple users to sketch on the same canvas simultaneously";
+    mainProgram = "drawpile-srv";
     homepage = "https://drawpile.net/";
     downloadPage = "https://drawpile.net/download/";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/applications/graphics/eddy/default.nix b/nixpkgs/pkgs/applications/graphics/eddy/default.nix
index 58b8777bb223..6dac49fc5d15 100644
--- a/nixpkgs/pkgs/applications/graphics/eddy/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/eddy/default.nix
@@ -40,6 +40,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "http://www.obdasystems.com/eddy";
     description = "Graphical editor for the specification and visualization of Graphol ontologies";
+    mainProgram = "eddy";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ koslambrou ];
diff --git a/nixpkgs/pkgs/applications/graphics/emblem/default.nix b/nixpkgs/pkgs/applications/graphics/emblem/default.nix
index b2df35c20c4b..6d490fc24141 100644
--- a/nixpkgs/pkgs/applications/graphics/emblem/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/emblem/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Generate project icons and avatars from a symbolic icon";
+    mainProgram = "emblem";
     homepage = "https://gitlab.gnome.org/World/design/emblem";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix b/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix
index 8e6d8328a3cb..fb397239849b 100644
--- a/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Pixel-oriented paint program, modelled on Deluxe Paint";
+    mainProgram = "evilpixie";
     homepage = "https://github.com/bcampbell/evilpixie"; # http://evilpixie.scumways.com/ is gone
     downloadPage = "https://github.com/bcampbell/evilpixie/releases";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/applications/graphics/eyedropper/default.nix b/nixpkgs/pkgs/applications/graphics/eyedropper/default.nix
index f531f8c16271..efa60ac32826 100644
--- a/nixpkgs/pkgs/applications/graphics/eyedropper/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/eyedropper/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Pick and format colors";
+    mainProgram = "eyedropper";
     homepage = "https://github.com/FineFindus/eyedropper";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/graphics/fiji/default.nix b/nixpkgs/pkgs/applications/graphics/fiji/default.nix
index e3847b98d519..c5f4d08f30e4 100644
--- a/nixpkgs/pkgs/applications/graphics/fiji/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/fiji/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://imagej.net/software/fiji/";
     description = "batteries-included distribution of ImageJ2, bundling a lot of plugins which facilitate scientific image analysis";
+    mainProgram = "fiji";
     platforms = [ "x86_64-linux" ];
     sourceProvenance = with sourceTypes; [
       binaryBytecode
diff --git a/nixpkgs/pkgs/applications/graphics/fstl/default.nix b/nixpkgs/pkgs/applications/graphics/fstl/default.nix
index c7faf43e24e8..a004c2dd8d77 100644
--- a/nixpkgs/pkgs/applications/graphics/fstl/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/fstl/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "The fastest STL file viewer";
+    mainProgram = "fstl";
     homepage = "https://github.com/fstl-app/fstl";
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix b/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix
index 6895a334f1e5..ae36266f29c8 100644
--- a/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple color chooser written in GTK3";
+    mainProgram = "gcolor3";
     homepage = "https://gitlab.gnome.org/World/gcolor3";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/graphics/geeqie/default.nix b/nixpkgs/pkgs/applications/graphics/geeqie/default.nix
index 653dad23b638..a064e27a6657 100644
--- a/nixpkgs/pkgs/applications/graphics/geeqie/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/geeqie/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Lightweight GTK based image viewer";
+    mainProgram = "geeqie";
 
     longDescription =
       ''
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix b/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
index 4ef13e7ad312..16d5ab6d33c1 100644
--- a/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -5,7 +5,7 @@
 { config, lib, pkgs }:
 
 let
-  inherit (pkgs) stdenv fetchurl fetchpatch pkg-config intltool glib fetchFromGitHub;
+  inherit (pkgs) stdenv fetchurl fetchpatch pkg-config intltool glib fetchFromGitHub fetchFromGitLab;
 in
 
 lib.makeScope pkgs.newScope (self:
@@ -111,13 +111,18 @@ in
        Video
     */
     pname = "gap";
-    version = "2.6.0";
-
-    src = fetchurl {
-      url = "https://ftp.gimp.org/pub/gimp/plug-ins/v2.6/gap/gimp-gap-2.6.0.tar.bz2";
-      sha256 = "1jic7ixcmsn4kx2cn32nc5087rk6g8xsrz022xy11yfmgvhzb0ql";
+    version = "2.6.0-unstable-2023-05-20";
+
+    src = fetchFromGitLab {
+      domain = "gitlab.gnome.org";
+      owner = "Archive";
+      repo = "gimp-gap";
+      rev = "b2aa06cc7ee4ae1938f14640fe46b75ef5b15982";
+      hash = "sha256-q5TgCy0+iIfxyqJRXsKxiFrWMFSzBqC0SA9MBGTHXcA=";
     };
 
+    nativeBuildInputs = with pkgs; [autoreconfHook];
+
     hardeningDisable = [ "format" ];
 
     env = {
diff --git a/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix b/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix
index 7a51f037f995..fbcc5ebcf478 100644
--- a/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix
@@ -114,6 +114,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Access, organize and share your photos";
+    mainProgram = "gnome-photos";
     homepage = "https://wiki.gnome.org/Apps/Photos";
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/applications/graphics/goxel/default.nix b/nixpkgs/pkgs/applications/graphics/goxel/default.nix
index 0b10cda884c7..000fd3719263 100644
--- a/nixpkgs/pkgs/applications/graphics/goxel/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/goxel/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, scons, pkg-config, wrapGAppsHook
-, glfw3, gtk3, libpng12 }:
+, glfw3, gtk3, libpng }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "goxel";
@@ -13,7 +13,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   nativeBuildInputs = [ scons pkg-config wrapGAppsHook ];
-  buildInputs = [ glfw3 gtk3 libpng12 ];
+  buildInputs = [ glfw3 gtk3 libpng ];
 
   buildPhase = ''
     make release
@@ -33,6 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Open Source 3D voxel editor";
+    mainProgram = "goxel";
     homepage = "https://guillaumechereau.github.io/goxel/";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/graphics/gthumb/default.nix b/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
index 44a86c6447dc..79793c688711 100644
--- a/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gthumb/default.nix
@@ -35,11 +35,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gthumb";
-  version = "3.12.5";
+  version = "3.12.6";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-9jhd9F/oxyYuw0nhP4FRLpDpl5jdI3eTLkKR1jNZ86s=";
+    sha256 = "sha256-YIdwxsjnMHOh1AS2W9G3YeGsXcJecBMP8HJIj6kvXDM=";
   };
 
   nativeBuildInputs = [
@@ -109,6 +109,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Gthumb";
     description = "Image browser and viewer for GNOME";
+    mainProgram = "gthumb";
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.mimame ];
diff --git a/nixpkgs/pkgs/applications/graphics/hdrmerge/default.nix b/nixpkgs/pkgs/applications/graphics/hdrmerge/default.nix
index 827ee15af60a..cfd5fe516be5 100644
--- a/nixpkgs/pkgs/applications/graphics/hdrmerge/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/hdrmerge/default.nix
@@ -72,6 +72,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/jcelaya/hdrmerge";
     description = "Combines two or more raw images into an HDR";
+    mainProgram = "hdrmerge";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.paperdigits ];
diff --git a/nixpkgs/pkgs/applications/graphics/icon-library/default.nix b/nixpkgs/pkgs/applications/graphics/icon-library/default.nix
index 6033843e4aeb..25cc1ebebfbc 100644
--- a/nixpkgs/pkgs/applications/graphics/icon-library/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/icon-library/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/World/design/icon-library";
     description = "Symbolic icons for your apps";
+    mainProgram = "icon-library";
     maintainers = with maintainers; [ qyliss ];
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/graphics/identity/default.nix b/nixpkgs/pkgs/applications/graphics/identity/default.nix
index a17ecf7a6fb2..8d9caa58543c 100644
--- a/nixpkgs/pkgs/applications/graphics/identity/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/identity/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A program for comparing multiple versions of an image or video";
+    mainProgram = "identity";
     homepage = "https://gitlab.gnome.org/YaLTeR/identity";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/graphics/image-roll/default.nix b/nixpkgs/pkgs/applications/graphics/image-roll/default.nix
index 461a07837d83..2c142b7bbb80 100644
--- a/nixpkgs/pkgs/applications/graphics/image-roll/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/image-roll/default.nix
@@ -40,6 +40,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Simple and fast GTK image viewer with basic image manipulation tools";
+    mainProgram = "image-roll";
     homepage = "https://github.com/weclaw1/image-roll";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/applications/graphics/imgp/default.nix b/nixpkgs/pkgs/applications/graphics/imgp/default.nix
index 995aaf2599df..bb2334222fb7 100644
--- a/nixpkgs/pkgs/applications/graphics/imgp/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/imgp/default.nix
@@ -31,6 +31,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "High-performance CLI batch image resizer & rotator";
+    mainProgram = "imgp";
     homepage = "https://github.com/jarun/imgp";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix b/nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix
index 4b9b93505ad8..65ec4eb71d42 100644
--- a/nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/kgraphviewer/default.nix
@@ -29,6 +29,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A Graphviz dot graph viewer for KDE";
+    mainProgram = "kgraphviewer";
     license     = licenses.gpl2;
     maintainers = with maintainers; [ ];
     platforms   = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/graphics/komikku/default.nix b/nixpkgs/pkgs/applications/graphics/komikku/default.nix
index 4a4b499ca4d0..d69475213439 100644
--- a/nixpkgs/pkgs/applications/graphics/komikku/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/komikku/default.nix
@@ -88,6 +88,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Manga reader for GNOME";
+    mainProgram = "komikku";
     homepage = "https://apps.gnome.org/Komikku/";
     license = licenses.gpl3Plus;
     changelog = "https://codeberg.org/valos/Komikku/releases/tag/v${version}";
diff --git a/nixpkgs/pkgs/applications/graphics/krop/default.nix b/nixpkgs/pkgs/applications/graphics/krop/default.nix
index 0adcf0b538d2..93e24b24b53b 100644
--- a/nixpkgs/pkgs/applications/graphics/krop/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/krop/default.nix
@@ -37,6 +37,7 @@ python3Packages.buildPythonApplication rec {
   meta = {
     homepage = "http://arminstraub.com/software/krop";
     description = "Graphical tool to crop the pages of PDF files";
+    mainProgram = "krop";
     longDescription = ''
     Krop is a tool that allows you to optimise your PDF files, and remove
     sections of the page you do not want.  A unique feature of krop, at least to my
diff --git a/nixpkgs/pkgs/applications/graphics/ktikz/default.nix b/nixpkgs/pkgs/applications/graphics/ktikz/default.nix
index d176ce38f0ad..b7fe2e205fa8 100644
--- a/nixpkgs/pkgs/applications/graphics/ktikz/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/ktikz/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Editor for the TikZ language";
+    mainProgram = "qtikz";
     homepage = "https://github.com/fhackenberger/ktikz";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/graphics/leocad/default.nix b/nixpkgs/pkgs/applications/graphics/leocad/default.nix
index bb37dc5ef027..9a0bbaefe505 100644
--- a/nixpkgs/pkgs/applications/graphics/leocad/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/leocad/default.nix
@@ -56,6 +56,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "CAD program for creating virtual LEGO models";
+    mainProgram = "leocad";
     homepage = "https://www.leocad.org/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/applications/graphics/lightburn/default.nix b/nixpkgs/pkgs/applications/graphics/lightburn/default.nix
index 7ac16d934fa8..cd2a1f4b5184 100644
--- a/nixpkgs/pkgs/applications/graphics/lightburn/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/lightburn/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lightburn";
-  version = "1.5.02";
+  version = "1.5.04";
 
   nativeBuildInputs = [
     p7zip
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
-    sha256 = "sha256-1gmiPWrNk3T8WJ9u/4UzrhwxOcPUKyWIqtwqJiXA4c4=";
+    sha256 = "sha256-cyQUv/KqdtDwCFo8CatJYdepgdWNwTSMyDLzOjvvO5c=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix b/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix
index 68e88bdea28a..1f1116096821 100644
--- a/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix
@@ -55,6 +55,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A 3D fractal rendering engine";
+    mainProgram = "mandelbulber2";
     longDescription = "Mandelbulber creatively generates three-dimensional fractals. Explore trigonometric, hyper-complex, Mandelbox, IFS, and many other 3D fractals.";
     homepage = "https://mandelbulber.com";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/graphics/meshlab/default.nix b/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
index bee1e35ec129..32d528831539 100644
--- a/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
@@ -86,6 +86,7 @@ mkDerivation rec {
 
   meta = {
     description = "A system for processing and editing 3D triangular meshes";
+    mainProgram = "meshlab";
     homepage = "https://www.meshlab.net/";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ viric ];
diff --git a/nixpkgs/pkgs/applications/graphics/oculante/default.nix b/nixpkgs/pkgs/applications/graphics/oculante/default.nix
index d6f8c1d641cb..f83184a488aa 100644
--- a/nixpkgs/pkgs/applications/graphics/oculante/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/oculante/default.nix
@@ -22,16 +22,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "oculante";
-  version = "0.8.13";
+  version = "0.8.16";
 
   src = fetchFromGitHub {
     owner = "woelper";
     repo = "oculante";
     rev = version;
-    hash = "sha256-RbRvV3OkRZXc0n7qGzqbBtbU81wFc+/Ohg9pbVqdsw4=";
+    hash = "sha256-C8USTDW5C+mjj/fr242is/42RpmUvcK3lUeaq0/BSGA=";
   };
 
-  cargoHash = "sha256-qt4bHCHpiP6yOce9hquVVlLFF906ADwhss4xAP9E0fA=";
+  cargoHash = "sha256-w8k0QG509PRHHB1e4WThYnM6R0PwWMbSBxs2B0zQ0ww=";
 
   nativeBuildInputs = [
     cmake
diff --git a/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix b/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix
index 7fd9606f3abc..1dd460c2e1d2 100644
--- a/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix
@@ -1,12 +1,93 @@
-{ boost, cmake, fetchFromGitHub, freeglut, freetype, glew, libjpeg, libmypaint
-, libpng, libtiff, libusb1, lz4, xz, lzo, openblas, opencv, pkg-config, qtbase
-, qtmultimedia, qtscript, qtserialport, lib, stdenv, superlu, wrapQtAppsHook, }:
-let source = import ./source.nix { inherit fetchFromGitHub; };
-in stdenv.mkDerivation rec {
-  inherit (source) src;
+{ boost
+, cmake
+, fetchFromGitHub
+, freeglut
+, freetype
+, glew
+, libjpeg
+, libmypaint
+, libpng
+, libusb1
+, lz4
+, xz
+, lzo
+, openblas
+, opencv
+, pkg-config
+, qtbase
+, qtmultimedia
+, qtscript
+, qtserialport
+, lib
+, stdenv
+, superlu
+, wrapQtAppsHook
+, libtiff
+, zlib
+}:
+let
+  libtiff-ver = "4.0.3"; # The version in thirdparty/tiff-*
+  opentoonz-ver = "1.7.1";
+
+  src = fetchFromGitHub {
+    owner = "opentoonz";
+    repo = "opentoonz";
+    rev = "v${opentoonz-ver}";
+    hash = "sha256-5iXOvh4QTv+G0fjEHU62u7QCee+jbvKhK0+fQXbdJis=";
+  };
+
+  opentoonz-opencv = opencv.override {
+    inherit libtiff;
+  };
+
+  opentoonz-libtiff = stdenv.mkDerivation {
+    pname = "libtiff";
+    version = "${libtiff-ver}-opentoonz";
+
+    inherit src;
+    outputs = [ "bin" "dev" "out" "man" "doc" ];
+
+    nativeBuildInputs = [ pkg-config ];
+    propagatedBuildInputs = [ zlib libjpeg xz ];
+
+    postUnpack = ''
+      sourceRoot="$sourceRoot/thirdparty/tiff-${libtiff-ver}"
+    '';
+
+    # opentoonz uses internal libtiff headers
+    postInstall = ''
+      cp libtiff/{tif_config,tif_dir,tiffiop}.h $dev/include
+    '';
+
+    meta = libtiff.meta // {
+      knownVulnerabilities = [
+        ''
+          Do not open untrusted files with Opentoonz:
+          Opentoonz uses an old custom fork of tibtiff from 2012 that is known to
+          be affected by at least these 50 vulnerabilities:
+            CVE-2012-4564 CVE-2013-4232 CVE-2013-4243 CVE-2013-4244 CVE-2014-8127
+            CVE-2014-8128 CVE-2014-8129 CVE-2014-8130 CVE-2014-9330 CVE-2015-1547
+            CVE-2015-8781 CVE-2015-8782 CVE-2015-8783 CVE-2015-8784 CVE-2015-8870
+            CVE-2016-3620 CVE-2016-3621 CVE-2016-3623 CVE-2016-3624 CVE-2016-3625
+            CVE-2016-3631 CVE-2016-3632 CVE-2016-3633 CVE-2016-3634 CVE-2016-3658
+            CVE-2016-3945 CVE-2016-3990 CVE-2016-3991 CVE-2016-5102 CVE-2016-5314
+            CVE-2016-5315 CVE-2016-5316 CVE-2016-5318 CVE-2016-5319 CVE-2016-5321
+            CVE-2016-5322 CVE-2016-5323 CVE-2016-6223 CVE-2016-9453 CVE-2016-9532
+            CVE-2017-9935 CVE-2017-9937 CVE-2018-10963 CVE-2018-5360
+            CVE-2019-14973 CVE-2019-17546 CVE-2020-35521 CVE-2020-35522
+            CVE-2020-35523 CVE-2020-35524
+          More info at https://github.com/opentoonz/opentoonz/issues/4193
+        ''
+      ];
+      maintainers = with lib.maintainers; [ chkno ];
+    };
+  };
+in
+stdenv.mkDerivation {
+  inherit src;
 
   pname = "opentoonz";
-  version = source.versions.opentoonz;
+  version = opentoonz-ver;
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
 
@@ -18,13 +99,13 @@ in stdenv.mkDerivation rec {
     libjpeg
     libmypaint
     libpng
-    libtiff
+    opentoonz-libtiff
     libusb1
     lz4
     xz
     lzo
     openblas
-    opencv
+    opentoonz-opencv
     qtbase
     qtmultimedia
     qtscript
@@ -36,8 +117,10 @@ in stdenv.mkDerivation rec {
 
   cmakeDir = "../sources";
   cmakeFlags = [
-    "-DTIFF_INCLUDE_DIR=${libtiff.dev}/include"
-    "-DTIFF_LIBRARY=${libtiff.out}/lib/libtiff.so"
+    "-DCMAKE_SKIP_BUILD_RPATH=ON"
+    "-DTIFF_INCLUDE_DIR=${opentoonz-libtiff.dev}/include"
+    "-DTIFF_LIBRARY=${opentoonz-libtiff.out}/lib/libtiff.so"
+    (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true)
   ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/graphics/opentoonz/libtiff.nix b/nixpkgs/pkgs/applications/graphics/opentoonz/libtiff.nix
deleted file mode 100644
index 43ba1592ccc2..000000000000
--- a/nixpkgs/pkgs/applications/graphics/opentoonz/libtiff.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-# Per https://github.com/opentoonz/opentoonz/blob/master/doc/how_to_build_linux.md ,
-# opentoonz requires its own modified version of libtiff.  We still build it as
-# a separate package
-#  1. For visibility for tools like vulnix, and
-#  2. To avoid a diamond-dependency problem with opencv linking the normal libtiff
-#     and opentoonz linking opencv and this modified libtiff, we build an opencv
-#     against this modified libtiff as well.
-#
-# We use a separate mkDerivation rather than a minimal libtiff.overrideAttrs
-# because the main libtiff builds with cmake and this version of libtiff was
-# forked before libtiff gained CMake build capability (added in libtiff-4.0.5).
-
-{ lib, fetchFromGitHub, stdenv, pkg-config, zlib, libjpeg, xz, libtiff, }:
-
-let source = import ./source.nix { inherit fetchFromGitHub; };
-
-in stdenv.mkDerivation {
-  pname = "libtiff";
-  version = source.versions.libtiff + "-opentoonz";
-
-  inherit (source) src;
-  outputs = [ "bin" "dev" "out" "man" "doc" ];
-
-  nativeBuildInputs = [ pkg-config ];
-  propagatedBuildInputs = [ zlib libjpeg xz ];
-
-  postUnpack = ''
-    sourceRoot="$sourceRoot/thirdparty/tiff-${source.versions.libtiff}"
-  '';
-
-  # opentoonz uses internal libtiff headers
-  postInstall = ''
-    cp libtiff/{tif_config,tif_dir,tiffiop}.h $dev/include
-  '';
-
-  meta = libtiff.meta // {
-    knownVulnerabilities = [''
-      Do not open untrusted files with Opentoonz:
-      Opentoonz uses an old custom fork of tibtiff from 2012 that is known to
-      be affected by at least these 50 vulnerabilities:
-        CVE-2012-4564 CVE-2013-4232 CVE-2013-4243 CVE-2013-4244 CVE-2014-8127
-        CVE-2014-8128 CVE-2014-8129 CVE-2014-8130 CVE-2014-9330 CVE-2015-1547
-        CVE-2015-8781 CVE-2015-8782 CVE-2015-8783 CVE-2015-8784 CVE-2015-8870
-        CVE-2016-3620 CVE-2016-3621 CVE-2016-3623 CVE-2016-3624 CVE-2016-3625
-        CVE-2016-3631 CVE-2016-3632 CVE-2016-3633 CVE-2016-3634 CVE-2016-3658
-        CVE-2016-3945 CVE-2016-3990 CVE-2016-3991 CVE-2016-5102 CVE-2016-5314
-        CVE-2016-5315 CVE-2016-5316 CVE-2016-5318 CVE-2016-5319 CVE-2016-5321
-        CVE-2016-5322 CVE-2016-5323 CVE-2016-6223 CVE-2016-9453 CVE-2016-9532
-        CVE-2017-9935 CVE-2017-9937 CVE-2018-10963 CVE-2018-5360
-        CVE-2019-14973 CVE-2019-17546 CVE-2020-35521 CVE-2020-35522
-        CVE-2020-35523 CVE-2020-35524
-      More info at https://github.com/opentoonz/opentoonz/issues/4193
-    ''];
-    maintainers = with lib.maintainers; [ chkno ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/graphics/opentoonz/source.nix b/nixpkgs/pkgs/applications/graphics/opentoonz/source.nix
deleted file mode 100644
index 27a4b8c0b0d2..000000000000
--- a/nixpkgs/pkgs/applications/graphics/opentoonz/source.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-# opentoonz's source archive contains both opentoonz's source and a modified
-# version of libtiff that opentoonz requires.
-
-{ fetchFromGitHub, }: rec {
-  versions = {
-    opentoonz = "1.5.0";
-    libtiff = "4.0.3";  # The version in thirdparty/tiff-*
-  };
-
-  src = fetchFromGitHub {
-    owner = "opentoonz";
-    repo = "opentoonz";
-    rev = "v${versions.opentoonz}";
-    sha256 = "1rw30ksw3zjph1cwxkfvqj0330v8wd4333gn0fdf3cln1w0549lk";
-  };
-}
diff --git a/nixpkgs/pkgs/applications/graphics/ovito/default.nix b/nixpkgs/pkgs/applications/graphics/ovito/default.nix
index 596ae0d07a11..81ce2518cea7 100644
--- a/nixpkgs/pkgs/applications/graphics/ovito/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/ovito/default.nix
@@ -54,6 +54,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Scientific visualization and analysis software for atomistic and particle simulation data";
+    mainProgram = "ovito";
     homepage = "https://ovito.org";
     license = with licenses;  [ gpl3Only mit ];
     maintainers = with maintainers; [ twhitehead ];
diff --git a/nixpkgs/pkgs/applications/graphics/paleta/default.nix b/nixpkgs/pkgs/applications/graphics/paleta/default.nix
index 062c157c3f02..6275b3d10e4c 100644
--- a/nixpkgs/pkgs/applications/graphics/paleta/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/paleta/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Extract the dominant colors from any image";
+    mainProgram = "paleta";
     homepage = "https://github.com/nate-xyz/paleta";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/graphics/pencil/default.nix b/nixpkgs/pkgs/applications/graphics/pencil/default.nix
index ffd31bf7325a..9924e0b58c14 100644
--- a/nixpkgs/pkgs/applications/graphics/pencil/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/pencil/default.nix
@@ -98,6 +98,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GUI prototyping/mockup tool";
+    mainProgram = "pencil";
     homepage    = "https://pencil.evolus.vn/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.gpl2; # Commercial license is also available
diff --git a/nixpkgs/pkgs/applications/graphics/photoflare/default.nix b/nixpkgs/pkgs/applications/graphics/photoflare/default.nix
index 6c6ea1059c73..3f47a0073d24 100644
--- a/nixpkgs/pkgs/applications/graphics/photoflare/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/photoflare/default.nix
@@ -21,6 +21,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A cross-platform image editor with a powerful features and a very friendly graphical user interface";
+    mainProgram = "photoflare";
     homepage = "https://photoflare.io";
     maintainers = [ maintainers.omgbebebe ];
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/graphics/photoqt/default.nix b/nixpkgs/pkgs/applications/graphics/photoqt/default.nix
index 5d1ce4129791..ccc95ac94216 100644
--- a/nixpkgs/pkgs/applications/graphics/photoqt/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/photoqt/default.nix
@@ -20,16 +20,17 @@
 , qtmultimedia
 , qtpositioning
 , qtsvg
+, zxing-cpp
 , qtwayland
 }:
 
 stdenv.mkDerivation rec {
   pname = "photoqt";
-  version = "4.2";
+  version = "4.3";
 
   src = fetchurl {
     url = "https://photoqt.org/pkgs/photoqt-${version}.tar.gz";
-    hash = "sha256-OUqsyvmv6ccJDzcWAeS1OOmK2eXOCEgGktz6GEUzoA8=";
+    hash = "sha256-B0ZubvWIEZFnD2v74bpPv+/wr7vaHS9QP4//9/afjzQ=";
   };
 
   nativeBuildInputs = [
@@ -55,20 +56,19 @@ stdenv.mkDerivation rec {
     qtmultimedia
     qtpositioning
     qtsvg
+    zxing-cpp
   ] ++ lib.optionals stdenv.isLinux [
     qtwayland
   ];
 
   cmakeFlags = [
-    "-DDEVIL=OFF"
-    "-DCHROMECAST=OFF"
-    "-DFREEIMAGE=OFF"
-    "-DIMAGEMAGICK=OFF"
+    (lib.cmakeBool "DEVIL" false)
+    (lib.cmakeBool "CHROMECAST" false)
+    (lib.cmakeBool "FREEIMAGE" false)
+    (lib.cmakeBool "IMAGEMAGICK" false)
   ];
 
-  preConfigure = ''
-    export MAGICK_LOCATION="${graphicsmagick}/include/GraphicsMagick"
-  '';
+  env.MAGICK_LOCATION = "${graphicsmagick}/include/GraphicsMagick";
 
   postInstall = lib.optionalString stdenv.isDarwin ''
     mkdir -p $out/Applications
diff --git a/nixpkgs/pkgs/applications/graphics/phototonic/default.nix b/nixpkgs/pkgs/applications/graphics/phototonic/default.nix
index 738f78cf347d..345398435a07 100644
--- a/nixpkgs/pkgs/applications/graphics/phototonic/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/phototonic/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An image viewer and organizer";
+    mainProgram = "phototonic";
     homepage = "https://github.com/oferkv/phototonic";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ pSub ];
diff --git a/nixpkgs/pkgs/applications/graphics/pick-colour-picker/default.nix b/nixpkgs/pkgs/applications/graphics/pick-colour-picker/default.nix
index a4b8bbc9c2fd..bd9ab649d633 100644
--- a/nixpkgs/pkgs/applications/graphics/pick-colour-picker/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/pick-colour-picker/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
     license = licenses.mit;
     platforms = platforms.linux;
     description = "A colour picker that remembers where you picked colours from";
+    mainProgram = "pick-colour-picker";
     maintainers = [ maintainers.mkg20001 ];
 
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/graphics/pikopixel/default.nix b/nixpkgs/pkgs/applications/graphics/pikopixel/default.nix
index 816d9af62aa3..c65353143368 100644
--- a/nixpkgs/pkgs/applications/graphics/pikopixel/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/pikopixel/default.nix
@@ -1,9 +1,10 @@
 { lib
+, clangStdenv
 , fetchurl
 , gnustep
 }:
 
-gnustep.gsmakeDerivation rec {
+clangStdenv.mkDerivation rec {
   pname = "pikopixel";
   version = "1.0-b10";
 
@@ -14,6 +15,11 @@ gnustep.gsmakeDerivation rec {
 
   sourceRoot = "PikoPixel.Sources.${version}/PikoPixel";
 
+  nativeBuildInputs = [
+    gnustep.make
+    gnustep.wrapGNUstepAppsHook
+  ];
+
   buildInputs = [
     gnustep.base
     gnustep.gui
@@ -33,9 +39,10 @@ gnustep.gsmakeDerivation rec {
 
   meta = with lib; {
     description = "Application for drawing and editing pixel-art images";
+    mainProgram = "PikoPixel";
     homepage = "https://twilightedge.com/mac/pikopixel/";
     downloadPage = "https://twilightedge.com/mac/pikopixel/";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/applications/graphics/pizarra/default.nix b/nixpkgs/pkgs/applications/graphics/pizarra/default.nix
index f9d7fc650647..b53368439d75 100644
--- a/nixpkgs/pkgs/applications/graphics/pizarra/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/pizarra/default.nix
@@ -41,6 +41,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple blackboard written in GTK";
+    mainProgram = "pizarra";
     longDescription = ''
       A simple endless blackboard.
       Contains various features, such as:
diff --git a/nixpkgs/pkgs/applications/graphics/qcomicbook/default.nix b/nixpkgs/pkgs/applications/graphics/qcomicbook/default.nix
index 47bf2d950283..ee2296b391bb 100644
--- a/nixpkgs/pkgs/applications/graphics/qcomicbook/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/qcomicbook/default.nix
@@ -27,6 +27,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/stolowski/QComicBook";
     description = "Comic book reader in Qt5";
+    mainProgram = "qcomicbook";
     license = licenses.gpl2;
 
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/graphics/qimgv/default.nix b/nixpkgs/pkgs/applications/graphics/qimgv/default.nix
index 2cb5f8ddde24..c6789fd05738 100644
--- a/nixpkgs/pkgs/applications/graphics/qimgv/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/qimgv/default.nix
@@ -55,6 +55,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A Qt5 image viewer with optional video support";
+    mainProgram = "qimgv";
     homepage = "https://github.com/easymodo/qimgv";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/graphics/qosmic/default.nix b/nixpkgs/pkgs/applications/graphics/qosmic/default.nix
index 9e2248f896de..a3a688fd0366 100644
--- a/nixpkgs/pkgs/applications/graphics/qosmic/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/qosmic/default.nix
@@ -72,6 +72,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A cosmic recursive flame fractal editor";
+    mainProgram = "qosmic";
     homepage = "https://github.com/bitsed/qosmic";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.raboof ];
diff --git a/nixpkgs/pkgs/applications/graphics/qscreenshot/default.nix b/nixpkgs/pkgs/applications/graphics/qscreenshot/default.nix
index efbab2e04bbb..761bd69d3520 100644
--- a/nixpkgs/pkgs/applications/graphics/qscreenshot/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/qscreenshot/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   ];
   meta = with lib; {
     description = "Simple creation and editing of screenshots";
+    mainProgram = "qScreenshot";
     homepage = "https://sourceforge.net/projects/qscreenshot/";
     license = licenses.gpl2;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/graphics/qvge/default.nix b/nixpkgs/pkgs/applications/graphics/qvge/default.nix
index 442e3200e469..e7c6def43b91 100644
--- a/nixpkgs/pkgs/applications/graphics/qvge/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/qvge/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Qt Visual Graph Editor";
+    mainProgram = "qvgeapp";
     homepage = "https://github.com/ArsMasiuk/qvge";
     license = licenses.mit;
     maintainers = with maintainers; [ sikmir ];
diff --git a/nixpkgs/pkgs/applications/graphics/qview/default.nix b/nixpkgs/pkgs/applications/graphics/qview/default.nix
index 9bba92a2b5b7..38ff606487c0 100644
--- a/nixpkgs/pkgs/applications/graphics/qview/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/qview/default.nix
@@ -34,6 +34,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Practical and minimal image viewer";
+    mainProgram = "qview";
     homepage = "https://interversehq.com/qview/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ acowley ];
diff --git a/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix b/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix
index e6d0319950d5..494815ac930b 100644
--- a/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/rapid-photo-downloader/default.nix
@@ -97,6 +97,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Photo and video importer for cameras, phones, and memory cards";
+    mainProgram = "rapid-photo-downloader";
     homepage = "https://www.damonlynch.net/rapid/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/graphics/rnote/Cargo.lock b/nixpkgs/pkgs/applications/graphics/rnote/Cargo.lock
index f36abca67e8c..07c7748de264 100644
--- a/nixpkgs/pkgs/applications/graphics/rnote/Cargo.lock
+++ b/nixpkgs/pkgs/applications/graphics/rnote/Cargo.lock
@@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[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",
  "once_cell",
@@ -46,14 +46,13 @@ checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
 
 [[package]]
 name = "alsa"
-version = "0.7.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2562ad8dcf0f789f65c6fdaad8a8a9708ed6b488e649da28c01656ad66b8b47"
+checksum = "37fe60779335388a88c01ac6c3be40304d1e349de3ada3b15f7808bb90fa9dce"
 dependencies = [
  "alsa-sys",
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "libc",
- "nix",
 ]
 
 [[package]]
@@ -526,9 +525,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 = "bytemuck"
@@ -580,10 +579,11 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
 
 [[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",
 ]
 
@@ -620,9 +620,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[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",
@@ -645,9 +645,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.5.1"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da"
+checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -655,9 +655,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.5.1"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
  "anstream",
  "anstyle",
@@ -774,23 +774,21 @@ dependencies = [
 
 [[package]]
 name = "cpal"
-version = "0.15.2"
+version = "0.15.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d959d90e938c5493000514b446987c07aed46c668faaa7d34d6c7a67b1a578c"
+checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779"
 dependencies = [
  "alsa",
  "core-foundation-sys",
  "coreaudio-rs",
  "dasp_sample",
- "jni 0.19.0",
+ "jni",
  "js-sys",
  "libc",
  "mach2",
  "ndk",
  "ndk-context",
  "oboe",
- "once_cell",
- "parking_lot",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
@@ -871,9 +869,9 @@ dependencies = [
 
 [[package]]
 name = "cxx"
-version = "1.0.118"
+version = "1.0.119"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2673ca5ae28334544ec2a6b18ebe666c42a2650abfb48abbd532ed409a44be2b"
+checksum = "635179be18797d7e10edb9cd06c859580237750c7351f39ed9b298bfc17544ad"
 dependencies = [
  "cc",
  "cxxbridge-flags",
@@ -883,9 +881,9 @@ dependencies = [
 
 [[package]]
 name = "cxx-gen"
-version = "0.7.118"
+version = "0.7.119"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a94f02b4e45d7d00ecabff7635833f71c786576067b3d4158c8bef65d0a8e38b"
+checksum = "5797d553b95704a6a49394acfdb93e2332b8aaa146713a1e8ebe362e86d9fa68"
 dependencies = [
  "codespan-reporting",
  "proc-macro2",
@@ -895,15 +893,15 @@ dependencies = [
 
 [[package]]
 name = "cxxbridge-flags"
-version = "1.0.118"
+version = "1.0.119"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "886acf875df67811c11cd015506b3392b9e1820b1627af1a6f4e93ccdfc74d11"
+checksum = "a87ff7342ffaa54b7c61618e0ce2bbcf827eba6d55b923b83d82551acbbecfe5"
 
 [[package]]
 name = "cxxbridge-macro"
-version = "1.0.118"
+version = "1.0.119"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d151cc139c3080e07f448f93a1284577ab2283d2a44acd902c6fba9ec20b6de"
+checksum = "70b5b86cf65fa0626d85720619d80b288013477a91a0389fa8bc716bf4903ad1"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1469,9 +1467,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6771942f85a2beaa220c64739395e4401b9fab4a52aba9b503fa1e6ed4d4d806"
+checksum = "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b"
 dependencies = [
  "cairo-rs",
  "gdk-pixbuf",
@@ -1484,9 +1482,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4-sys"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1eb95854fab65072023a7814434f003db571d6e45c287c0b0c540c1c78bdf6ae"
+checksum = "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -1653,7 +1651,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0f5897ca27a83e4cdc7b4666850bade0a2e73e17689aabafcc9acddad9d823b8"
 dependencies = [
  "heck",
- "proc-macro-crate 3.1.0",
+ "proc-macro-crate",
  "proc-macro2",
  "quote",
  "syn 2.0.52",
@@ -1711,9 +1709,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e8ce8dee0fd87a11002214b1204ff18c9272fbd530408f0884a0f9b25dc31de"
+checksum = "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e"
 dependencies = [
  "cairo-rs",
  "gdk4",
@@ -1726,9 +1724,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4-sys"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2660a652da5b662d43924df19ba40d73f015ed427329ef51d2b1360a4e0dc0e4"
+checksum = "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738"
 dependencies = [
  "cairo-sys-rs",
  "gdk4-sys",
@@ -1742,9 +1740,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d26ffa3ec6316ccaa1df62d3e7f5bae1637c0acbb43f250fabef38319f73c64"
+checksum = "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83"
 dependencies = [
  "cairo-rs",
  "field-offset",
@@ -1763,12 +1761,12 @@ dependencies = [
 
 [[package]]
 name = "gtk4-macros"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8b86439e9896f6f3f47c3d8077c5c8205174078760afdabd9098a8e9e937d97"
+checksum = "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567"
 dependencies = [
  "anyhow",
- "proc-macro-crate 3.1.0",
+ "proc-macro-crate",
  "proc-macro-error",
  "proc-macro2",
  "quote",
@@ -1777,9 +1775,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4-sys"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2abc0a6d356d59a3806021829ce6ed3e70bba3509b41a535fedcb09fae13fbc0"
+checksum = "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -1886,7 +1884,7 @@ dependencies = [
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows-core",
+ "windows-core 0.52.0",
 ]
 
 [[package]]
@@ -2113,30 +2111,18 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jni"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec"
-dependencies = [
- "cesu8",
- "combine",
- "jni-sys",
- "log",
- "thiserror",
- "walkdir",
-]
-
-[[package]]
-name = "jni"
-version = "0.20.0"
+version = "0.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c"
+checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
 dependencies = [
  "cesu8",
+ "cfg-if",
  "combine",
  "jni-sys",
  "log",
  "thiserror",
  "walkdir",
+ "windows-sys 0.45.0",
 ]
 
 [[package]]
@@ -2146,6 +2132,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
+name = "jobserver"
+version = "0.1.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "jpeg-decoder"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2156,9 +2151,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",
 ]
@@ -2266,12 +2261,12 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[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",
- "windows-sys 0.48.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -2497,9 +2492,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "log",
@@ -2546,15 +2541,15 @@ dependencies = [
 
 [[package]]
 name = "ndk"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
+checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "jni-sys",
+ "log",
  "ndk-sys",
  "num_enum",
- "raw-window-handle",
  "thiserror",
 ]
 
@@ -2566,9 +2561,9 @@ checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
 
 [[package]]
 name = "ndk-sys"
-version = "0.4.1+23.1.7779620"
+version = "0.5.0+25.2.9519653"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3"
+checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691"
 dependencies = [
  "jni-sys",
 ]
@@ -2580,17 +2575,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
 
 [[package]]
-name = "nix"
-version = "0.24.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
-dependencies = [
- "bitflags 1.3.2",
- "cfg-if",
- "libc",
-]
-
-[[package]]
 name = "no-std-compat"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2661,17 +2645,6 @@ dependencies = [
 
 [[package]]
 name = "num-derive"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "num-derive"
 version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
@@ -2723,23 +2696,23 @@ dependencies = [
 
 [[package]]
 name = "num_enum"
-version = "0.5.11"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
+checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845"
 dependencies = [
  "num_enum_derive",
 ]
 
 [[package]]
 name = "num_enum_derive"
-version = "0.5.11"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
+checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
 dependencies = [
- "proc-macro-crate 1.3.1",
+ "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2797,23 +2770,23 @@ dependencies = [
 
 [[package]]
 name = "oboe"
-version = "0.5.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8868cc237ee02e2d9618539a23a8d228b9bb3fc2e7a5b11eed3831de77c395d0"
+checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb"
 dependencies = [
- "jni 0.20.0",
+ "jni",
  "ndk",
  "ndk-context",
- "num-derive 0.3.3",
+ "num-derive",
  "num-traits",
  "oboe-sys",
 ]
 
 [[package]]
 name = "oboe-sys"
-version = "0.5.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f44155e7fb718d3cfddcf70690b2b51ac4412f347cd9e4fbe511abe9cd7b5f2"
+checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d"
 dependencies = [
  "cc",
 ]
@@ -2826,9 +2799,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "open"
-version = "5.1.0"
+version = "5.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f2588edf622de56e7a1fed57bf203344f63c03f3d43472ba0434a92373c8f27"
+checksum = "449f0ff855d85ddbf1edd5b646d65249ead3f5e422aaa86b7d2d0b049b103e32"
 dependencies = [
  "is-wsl",
  "libc",
@@ -2961,7 +2934,7 @@ dependencies = [
  "downcast-rs",
  "either",
  "nalgebra",
- "num-derive 0.4.2",
+ "num-derive",
  "num-traits",
  "rustc-hash",
  "serde",
@@ -3250,16 +3223,6 @@ dependencies = [
 
 [[package]]
 name = "proc-macro-crate"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
-dependencies = [
- "once_cell",
- "toml_edit 0.19.15",
-]
-
-[[package]]
-name = "proc-macro-crate"
 version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
@@ -3368,12 +3331,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "raw-window-handle"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
-
-[[package]]
 name = "rawpointer"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3422,7 +3379,7 @@ checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.4.5",
+ "regex-automata 0.4.6",
  "regex-syntax 0.8.2",
 ]
 
@@ -3437,9 +3394,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",
@@ -3469,7 +3426,7 @@ dependencies = [
 
 [[package]]
 name = "rnote"
-version = "0.10.0"
+version = "0.10.1"
 dependencies = [
  "anyhow",
  "async-fs",
@@ -3487,7 +3444,7 @@ dependencies = [
  "libadwaita",
  "nalgebra",
  "notify-debouncer-full",
- "num-derive 0.4.2",
+ "num-derive",
  "num-traits",
  "numeric-sort",
  "once_cell",
@@ -3519,7 +3476,7 @@ dependencies = [
 
 [[package]]
 name = "rnote-cli"
-version = "0.10.0"
+version = "0.10.1"
 dependencies = [
  "anyhow",
  "atty",
@@ -3538,7 +3495,7 @@ dependencies = [
 
 [[package]]
 name = "rnote-compose"
-version = "0.10.0"
+version = "0.10.1"
 dependencies = [
  "anyhow",
  "approx",
@@ -3547,7 +3504,7 @@ dependencies = [
  "ink-stroke-modeler-rs",
  "kurbo 0.10.4",
  "nalgebra",
- "num-derive 0.4.2",
+ "num-derive",
  "num-traits",
  "once_cell",
  "palette",
@@ -3567,7 +3524,7 @@ dependencies = [
 
 [[package]]
 name = "rnote-engine"
-version = "0.10.0"
+version = "0.10.1"
 dependencies = [
  "anyhow",
  "approx",
@@ -3587,7 +3544,7 @@ dependencies = [
  "kurbo 0.10.4",
  "librsvg",
  "nalgebra",
- "num-derive 0.4.2",
+ "num-derive",
  "num-traits",
  "once_cell",
  "parry2d-f64",
@@ -4674,9 +4631,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[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",
@@ -4690,9 +4647,9 @@ 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",
  "wasm-bindgen-macro",
@@ -4700,9 +4657,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
@@ -4715,9 +4672,9 @@ dependencies = [
 
 [[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",
  "js-sys",
@@ -4727,9 +4684,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",
@@ -4737,9 +4694,9 @@ 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",
@@ -4750,15 +4707,15 @@ dependencies = [
 
 [[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 = "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",
@@ -4825,11 +4782,12 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows"
-version = "0.46.0"
+version = "0.54.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25"
+checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49"
 dependencies = [
- "windows-targets 0.42.2",
+ "windows-core 0.54.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -4842,6 +4800,34 @@ dependencies = [
 ]
 
 [[package]]
+name = "windows-core"
+version = "0.54.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65"
+dependencies = [
+ "windows-result",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd19df78e5168dfb0aedc343d1d1b8d422ab2db6756d2dc3fef75035402a3f64"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[package]]
 name = "windows-sys"
 version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/nixpkgs/pkgs/applications/graphics/rnote/default.nix b/nixpkgs/pkgs/applications/graphics/rnote/default.nix
index 33ca80234711..cf4c2a54af07 100644
--- a/nixpkgs/pkgs/applications/graphics/rnote/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/rnote/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rnote";
-  version = "0.10.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "flxzt";
     repo = "rnote";
     rev = "v${version}";
-    hash = "sha256-PMg83eWcC21yNiRYdTS6/j9gerTctnDPHXIM4PWktrU=";
+    hash = "sha256-J9M1d6C40EpqcSU5vYVfsCruhECkPJOdhzG2IX1tTQ0=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
diff --git a/nixpkgs/pkgs/applications/graphics/rx/default.nix b/nixpkgs/pkgs/applications/graphics/rx/default.nix
index fe3d10bae635..77ed3f49117c 100644
--- a/nixpkgs/pkgs/applications/graphics/rx/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/rx/default.nix
@@ -37,6 +37,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = {
     description = "Modern and extensible pixel editor implemented in Rust";
+    mainProgram = "rx";
     homepage = "https://rx.cloudhead.io/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ minijackson Br1ght0ne ];
diff --git a/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix b/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix
index d88c7352d574..83530518aa7d 100644
--- a/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix
@@ -1,22 +1,23 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, avahi, libjpeg, libpng
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, avahi, libjpeg, libpng, libtiff
 , libxml2, gnutls, sane-backends }:
 stdenv.mkDerivation rec {
   pname = "sane-airscan";
-  version = "0.99.27";
+  version = "0.99.29";
 
   nativeBuildInputs = [ meson ninja pkg-config ];
-  buildInputs = [ avahi gnutls libjpeg libpng libxml2 sane-backends ];
+  buildInputs = [ avahi gnutls libjpeg libpng libxml2 libtiff sane-backends ];
 
   src = fetchFromGitHub {
     owner = "alexpevzner";
     repo = pname;
     rev = version;
-    sha256 = "sha256-29IPoLF4rmq8sGTi5RmpT1Fq8RJJlaepTt+2GWDU3es=";
+    sha256 = "sha256-9ErTC9NztyO9o6y2FjQPl2lu1gICasZYm2tnaCVCLt8=";
   };
 
   meta = with lib; {
     homepage = "https://github.com/alexpevzner/sane-airscan";
     description = "Scanner Access Now Easy - Apple AirScan (eSCL) driver";
+    mainProgram = "airscan-discover";
     longDescription = ''
       sane-airscan: Linux support of Apple AirScan (eSCL) compatible document scanners.
     '';
diff --git a/nixpkgs/pkgs/applications/graphics/sane/xsane.nix b/nixpkgs/pkgs/applications/graphics/sane/xsane.nix
index 471e2141b5b8..e9a1ca2c40de 100644
--- a/nixpkgs/pkgs/applications/graphics/sane/xsane.nix
+++ b/nixpkgs/pkgs/applications/graphics/sane/xsane.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.sane-project.org/";
     description = "Graphical scanning frontend for sane";
+    mainProgram = "xsane";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ melling ];
diff --git a/nixpkgs/pkgs/applications/graphics/scantailor/advanced.nix b/nixpkgs/pkgs/applications/graphics/scantailor/advanced.nix
index 2ab5c5562670..b83b9df83b01 100644
--- a/nixpkgs/pkgs/applications/graphics/scantailor/advanced.nix
+++ b/nixpkgs/pkgs/applications/graphics/scantailor/advanced.nix
@@ -19,6 +19,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/vigri/scantailor-advanced";
     description = "Interactive post-processing tool for scanned pages (vigri's fork)";
+    mainProgram = "scantailor";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
     platforms = with platforms; gnu ++ linux ++ darwin;
diff --git a/nixpkgs/pkgs/applications/graphics/shotwell/default.nix b/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
index 9eb1fbb28ee4..e6d6eb41b9e0 100644
--- a/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
@@ -96,6 +96,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Popular photo organizer for the GNOME desktop";
+    mainProgram = "shotwell";
     homepage = "https://wiki.gnome.org/Apps/Shotwell";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [];
diff --git a/nixpkgs/pkgs/applications/graphics/shutter/default.nix b/nixpkgs/pkgs/applications/graphics/shutter/default.nix
index e5659fb7fe2a..d10e8487796f 100644
--- a/nixpkgs/pkgs/applications/graphics/shutter/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/shutter/default.nix
@@ -104,6 +104,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Screenshot and annotation tool";
+    mainProgram = "shutter";
     homepage = "https://shutter-project.org/";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix b/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix
index 51c0f306f92d..592244455e98 100644
--- a/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/smartdeblur/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Y-Vladimir/SmartDeblur";
     description = "Tool for restoring blurry and defocused images";
+    mainProgram = "SmartDeblur";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/graphics/structorizer/default.nix b/nixpkgs/pkgs/applications/graphics/structorizer/default.nix
index bb6d2660836a..6bf2cf24d80e 100644
--- a/nixpkgs/pkgs/applications/graphics/structorizer/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/structorizer/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "structorizer";
-  version = "3.32-16";
+  version = "3.32-18";
 
   desktopItems = [
     (makeDesktopItem {
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     owner = "fesch";
     repo = "Structorizer.Desktop";
     rev = version;
-    hash = "sha256-K/ofwwlkZF13V0IZEL166n58ylm+qdh1jbXzH7LwXog=";
+    hash = "sha256-CA87j11TFUd0nmuPc1qyqdITkTPE/jauf31cO2iBQVg=";
   };
 
   patches = [ ./makeStructorizer.patch ./makeBigJar.patch ];
diff --git a/nixpkgs/pkgs/applications/graphics/symbolic-preview/default.nix b/nixpkgs/pkgs/applications/graphics/symbolic-preview/default.nix
index b73d481966b1..6f3103ecb8a6 100644
--- a/nixpkgs/pkgs/applications/graphics/symbolic-preview/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/symbolic-preview/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/World/design/symbolic-preview";
     description = "Symbolics made easy";
+    mainProgram = "symbolic-preview";
     maintainers = with maintainers; [ qyliss ];
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/graphics/tev/default.nix b/nixpkgs/pkgs/applications/graphics/tev/default.nix
index ff97eb65f17c..ca70027eb202 100644
--- a/nixpkgs/pkgs/applications/graphics/tev/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/tev/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A high dynamic range (HDR) image comparison tool";
+    mainProgram = "tev";
     longDescription = ''
       A high dynamic range (HDR) image comparison tool for graphics people. tev
       allows viewing images through various tonemapping operators and inspecting
diff --git a/nixpkgs/pkgs/applications/graphics/timelapse-deflicker/default.nix b/nixpkgs/pkgs/applications/graphics/timelapse-deflicker/default.nix
index f1757d51b1b3..511ed8a0134a 100644
--- a/nixpkgs/pkgs/applications/graphics/timelapse-deflicker/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/timelapse-deflicker/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple script to deflicker images taken for timelapses";
+    mainProgram = "timelapse-deflicker";
     homepage = "https://github.com/cyberang3l/timelapse-deflicker";
     license = licenses.gpl3;
     maintainers = with maintainers; [ valeriangalliat ];
diff --git a/nixpkgs/pkgs/applications/graphics/vengi-tools/default.nix b/nixpkgs/pkgs/applications/graphics/vengi-tools/default.nix
index 771ae49e220d..1c3bf8b6ede3 100644
--- a/nixpkgs/pkgs/applications/graphics/vengi-tools/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/vengi-tools/default.nix
@@ -29,13 +29,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vengi-tools";
-  version = "0.0.28";
+  version = "0.0.29";
 
   src = fetchFromGitHub {
     owner = "mgerhardy";
     repo = "vengi";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-UjSm/J/y7MUg3Exmw0P56+bcjiLxXdGS2brocdzgJ+c=";
+    hash = "sha256-VGgmJPNLEsD1y6e6CRw1Wipmy9MKAQkydyHNNjPyvhQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/vengi-tools/test-voxconvert-all-formats.nix b/nixpkgs/pkgs/applications/graphics/vengi-tools/test-voxconvert-all-formats.nix
index fc99ceb07144..c3e6e47adfba 100644
--- a/nixpkgs/pkgs/applications/graphics/vengi-tools/test-voxconvert-all-formats.nix
+++ b/nixpkgs/pkgs/applications/graphics/vengi-tools/test-voxconvert-all-formats.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     mkdir $out
     for format in vox qef qbt qb vxm vxr binvox gox cub vxl csv; do
       echo Testing $format export
-      ${vengi-tools}/bin/vengi-voxconvert --input ${vengi-tools.src}/data/voxedit/chr_knight.qb --output $out/chr_knight.$format
+      ${vengi-tools}/bin/vengi-voxconvert --input ${vengi-tools.src}/data/tests/chr_knight.qb --output $out/chr_knight.$format
     done
   '';
 }
diff --git a/nixpkgs/pkgs/applications/graphics/vengi-tools/test-voxconvert-roundtrip.nix b/nixpkgs/pkgs/applications/graphics/vengi-tools/test-voxconvert-roundtrip.nix
index a6fbb65fedfd..a683bff7a10b 100644
--- a/nixpkgs/pkgs/applications/graphics/vengi-tools/test-voxconvert-roundtrip.nix
+++ b/nixpkgs/pkgs/applications/graphics/vengi-tools/test-voxconvert-roundtrip.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
   name = "vengi-tools-test-voxconvert-roundtrip";
   meta.timeout = 10;
   buildCommand = ''
-    ${vengi-tools}/bin/vengi-voxconvert --input ${vengi-tools.src}/data/voxedit/chr_knight.qb --output chr_knight.vox
+    ${vengi-tools}/bin/vengi-voxconvert --input ${vengi-tools.src}/data/tests/chr_knight.qb --output chr_knight.vox
     ${vengi-tools}/bin/vengi-voxconvert --input chr_knight.vox --output chr_knight.qb
     ${vengi-tools}/bin/vengi-voxconvert --input chr_knight.qb --output chr_knight1.vox
     diff chr_knight.vox chr_knight1.vox
diff --git a/nixpkgs/pkgs/applications/graphics/veusz/default.nix b/nixpkgs/pkgs/applications/graphics/veusz/default.nix
index d630ceda6a58..67f5a76e5e97 100644
--- a/nixpkgs/pkgs/applications/graphics/veusz/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/veusz/default.nix
@@ -62,6 +62,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A scientific plotting and graphing program with a GUI";
+    mainProgram = "veusz";
     homepage = "https://veusz.github.io/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/graphics/weylus/default.nix b/nixpkgs/pkgs/applications/graphics/weylus/default.nix
index 27021eab2132..36647a62aef2 100644
--- a/nixpkgs/pkgs/applications/graphics/weylus/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/weylus/default.nix
@@ -99,6 +99,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Use your tablet as graphic tablet/touch screen on your computer";
+    mainProgram = "weylus";
     homepage = "https://github.com/H-M-H/Weylus";
     license = with licenses; [ agpl3Only ];
     maintainers = with maintainers; [ lom ];
diff --git a/nixpkgs/pkgs/applications/graphics/xaos/default.nix b/nixpkgs/pkgs/applications/graphics/xaos/default.nix
index e79f322be5e4..dd717223fdbb 100644
--- a/nixpkgs/pkgs/applications/graphics/xaos/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/xaos/default.nix
@@ -42,6 +42,7 @@ in stdenv.mkDerivation rec {
 
   meta = src.meta // {
     description = "Real-time interactive fractal zoomer";
+    mainProgram = "xaos";
     homepage = "https://xaos-project.github.io/";
     license = lib.licenses.gpl2Plus;
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/graphics/xfig/default.nix b/nixpkgs/pkgs/applications/graphics/xfig/default.nix
index 00e736731f2f..cb96daeb1270 100644
--- a/nixpkgs/pkgs/applications/graphics/xfig/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/xfig/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     changelog = "https://sourceforge.net/p/mcj/xfig/ci/${version}/tree/CHANGES";
     description = "An interactive drawing tool for X11";
+    mainProgram = "xfig";
     longDescription = ''
       Note that you need to have the <literal>netpbm</literal> tools
       in your path to export bitmaps.
diff --git a/nixpkgs/pkgs/applications/graphics/xournalpp/default.nix b/nixpkgs/pkgs/applications/graphics/xournalpp/default.nix
index 923ee5deda13..7ff575acab66 100644
--- a/nixpkgs/pkgs/applications/graphics/xournalpp/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/xournalpp/default.nix
@@ -7,6 +7,7 @@
 , pkg-config
 
 , alsa-lib
+, binutils
 , glib
 , gsettings-desktop-schemas
 , gtk3
@@ -25,16 +26,22 @@
 
 stdenv.mkDerivation rec {
   pname = "xournalpp";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchFromGitHub {
     owner = "xournalpp";
-    repo = pname;
+    repo = "xournalpp";
     rev = "v${version}";
-    sha256 = "sha256-6ND0Y+TzdN2rRI10cusgSK1sYMC55Wn5qFCHP4hsdes=";
+    sha256 = "sha256-8UAAX/kixqiY9zEYs5eva0G2K2vlfnYd1yyVHMSfSeY=";
   };
 
+  postPatch = ''
+    substituteInPlace src/util/Stacktrace.cpp \
+      --replace-fail "addr2line" "${binutils}/bin/addr2line"
+  '';
+
   nativeBuildInputs = [ cmake gettext pkg-config wrapGAppsHook ];
+
   buildInputs =
     lib.optionals stdenv.isLinux [
       alsa-lib
@@ -56,8 +63,6 @@ stdenv.mkDerivation rec {
 
   buildFlags = [ "translations" ];
 
-  hardeningDisable = [ "format" ];
-
   meta = with lib; {
     description = "Xournal++ is a handwriting Notetaking software with PDF annotation support";
     homepage    = "https://xournalpp.github.io/";
@@ -65,5 +70,6 @@ stdenv.mkDerivation rec {
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ andrew-d sikmir ];
     platforms   = platforms.unix;
+    mainProgram = "xournalpp";
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/xpano/default.nix b/nixpkgs/pkgs/applications/graphics/xpano/default.nix
index 3ba27e66e66f..9842aca43dd8 100644
--- a/nixpkgs/pkgs/applications/graphics/xpano/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/xpano/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A panorama stitching tool";
+    mainProgram = "Xpano";
     homepage = "https://krupkat.github.io/xpano/";
     changelog = "https://github.com/krupkat/xpano/releases/tag/v${version}";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/graphics/xrgears/default.nix b/nixpkgs/pkgs/applications/graphics/xrgears/default.nix
index ac73412117cf..2f367e8a70d5 100644
--- a/nixpkgs/pkgs/applications/graphics/xrgears/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/xrgears/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.freedesktop.org/monado/demos/xrgears";
     description = "An OpenXR example using Vulkan for rendering";
+    mainProgram = "xrgears";
     platforms = platforms.linux;
     license = licenses.mit;
     maintainers = with maintainers; [ expipiplus1 ];
diff --git a/nixpkgs/pkgs/applications/kde/alligator.nix b/nixpkgs/pkgs/applications/kde/alligator.nix
index 4470141af296..425f9733b38a 100644
--- a/nixpkgs/pkgs/applications/kde/alligator.nix
+++ b/nixpkgs/pkgs/applications/kde/alligator.nix
@@ -33,6 +33,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "RSS reader made with kirigami";
+    mainProgram = "alligator";
     homepage = "https://invent.kde.org/plasma-mobile/alligator";
     # https://invent.kde.org/plasma-mobile/alligator/-/commit/db30f159c4700244532b17a260deb95551045b7a
     #  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
diff --git a/nixpkgs/pkgs/applications/kde/arianna.nix b/nixpkgs/pkgs/applications/kde/arianna.nix
index fe3038789a23..ba88e4ecbded 100644
--- a/nixpkgs/pkgs/applications/kde/arianna.nix
+++ b/nixpkgs/pkgs/applications/kde/arianna.nix
@@ -53,6 +53,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "An Epub Reader for Plasma and Plasma Mobile";
+    mainProgram = "arianna";
     homepage = "https://invent.kde.org/graphics/arianna";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/kde/ark/default.nix b/nixpkgs/pkgs/applications/kde/ark/default.nix
index f6dd70682742..815bee892d6d 100644
--- a/nixpkgs/pkgs/applications/kde/ark/default.nix
+++ b/nixpkgs/pkgs/applications/kde/ark/default.nix
@@ -31,6 +31,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://apps.kde.org/ark/";
     description = "Graphical file compression/decompression utility";
+    mainProgram = "ark";
     license = with licenses; [ gpl2 lgpl3 ] ++ optional unfreeEnableUnrar unfree;
     maintainers = [ maintainers.ttuegel ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/audiotube.nix b/nixpkgs/pkgs/applications/kde/audiotube.nix
index 9ba9745c6b4f..bf1ec3099029 100644
--- a/nixpkgs/pkgs/applications/kde/audiotube.nix
+++ b/nixpkgs/pkgs/applications/kde/audiotube.nix
@@ -62,6 +62,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Client for YouTube Music";
+    mainProgram = "audiotube";
     homepage = "https://invent.kde.org/plasma-mobile/audiotube";
     # https://invent.kde.org/plasma-mobile/audiotube/-/tree/c503d0607a3386112beaa9cf990ab85fe33ef115/LICENSES
     license = with licenses; [ bsd2 cc0 gpl2Only gpl3Only ];
diff --git a/nixpkgs/pkgs/applications/kde/bomber.nix b/nixpkgs/pkgs/applications/kde/bomber.nix
index d8840e1bfece..1e52a6d87727 100644
--- a/nixpkgs/pkgs/applications/kde/bomber.nix
+++ b/nixpkgs/pkgs/applications/kde/bomber.nix
@@ -8,6 +8,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://apps.kde.org/bomber/";
     description = "A single player arcade game";
+    mainProgram = "bomber";
     longDescription = ''
       Bomber is a single player arcade game. The player is invading various
       cities in a plane that is decreasing in height.
diff --git a/nixpkgs/pkgs/applications/kde/bovo.nix b/nixpkgs/pkgs/applications/kde/bovo.nix
index ae89a8e396f6..d1788bd5e234 100644
--- a/nixpkgs/pkgs/applications/kde/bovo.nix
+++ b/nixpkgs/pkgs/applications/kde/bovo.nix
@@ -8,6 +8,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://apps.kde.org/bovo/";
     description = "Five in a row application";
+    mainProgram = "bovo";
     longDescription = ''
       Bovo is a Gomoku (from Japanese 五目並㹠- lit. "five points") like game for two players,
       where the opponents alternate in placing their respective pictogram on the game board.
diff --git a/nixpkgs/pkgs/applications/kde/cantor.nix b/nixpkgs/pkgs/applications/kde/cantor.nix
index 0acfa430eaa7..1805ed8a5234 100644
--- a/nixpkgs/pkgs/applications/kde/cantor.nix
+++ b/nixpkgs/pkgs/applications/kde/cantor.nix
@@ -95,6 +95,9 @@ mkDerivation {
     "--prefix PATH : ${placeholder "out"}/bin"
   ] ++ lib.optional withSage "--prefix PATH : ${sage-with-env}/bin";
 
+  # Causes failures on Hydra and ofborg from some reason
+  enableParallelBuilding = false;
+
   meta = with lib; {
     description = "Front end to powerful mathematics and statistics packages";
     homepage = "https://cantor.kde.org/";
diff --git a/nixpkgs/pkgs/applications/kde/dragon.nix b/nixpkgs/pkgs/applications/kde/dragon.nix
index 399205da6caa..a9e9425b7bb5 100644
--- a/nixpkgs/pkgs/applications/kde/dragon.nix
+++ b/nixpkgs/pkgs/applications/kde/dragon.nix
@@ -13,6 +13,7 @@ mkDerivation {
     homepage = "https://apps.kde.org/dragonplayer/";
     license = with lib.licenses; [ gpl2Plus fdl12Plus ];
     description = "A simple media player for KDE";
+    mainProgram = "dragon";
     maintainers = [ lib.maintainers.jonathanreeve ];
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
diff --git a/nixpkgs/pkgs/applications/kde/elisa.nix b/nixpkgs/pkgs/applications/kde/elisa.nix
index 5073d869a3aa..b9a384616416 100644
--- a/nixpkgs/pkgs/applications/kde/elisa.nix
+++ b/nixpkgs/pkgs/applications/kde/elisa.nix
@@ -42,6 +42,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://apps.kde.org/elisa/";
     description = "A simple media player for KDE";
+    mainProgram = "elisa";
     license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/falkon.nix b/nixpkgs/pkgs/applications/kde/falkon.nix
index 94cf6f5cfd25..d949b5ce1b2d 100644
--- a/nixpkgs/pkgs/applications/kde/falkon.nix
+++ b/nixpkgs/pkgs/applications/kde/falkon.nix
@@ -32,6 +32,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "QtWebEngine based cross-platform web browser";
+    mainProgram = "falkon";
     homepage    = "https://www.falkon.org";
     license     = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/applications/kde/filelight.nix b/nixpkgs/pkgs/applications/kde/filelight.nix
index af1b131b5c76..017a5eb2f532 100644
--- a/nixpkgs/pkgs/applications/kde/filelight.nix
+++ b/nixpkgs/pkgs/applications/kde/filelight.nix
@@ -17,6 +17,7 @@ mkDerivation {
   pname = "filelight";
   meta = {
     description = "Disk usage statistics";
+    mainProgram = "filelight";
     homepage = "https://apps.kde.org/filelight/";
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ fridh vcunat ];
diff --git a/nixpkgs/pkgs/applications/kde/ghostwriter.nix b/nixpkgs/pkgs/applications/kde/ghostwriter.nix
index 1fad4669dc62..d9399986959e 100644
--- a/nixpkgs/pkgs/applications/kde/ghostwriter.nix
+++ b/nixpkgs/pkgs/applications/kde/ghostwriter.nix
@@ -33,6 +33,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "A cross-platform, aesthetic, distraction-free Markdown editor";
+    mainProgram = "ghostwriter";
     homepage = "https://ghostwriter.kde.org/";
     changelog = "https://invent.kde.org/office/ghostwriter/-/blob/master/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/kde/granatier.nix b/nixpkgs/pkgs/applications/kde/granatier.nix
index b4aa2168e0d1..ac050e014794 100644
--- a/nixpkgs/pkgs/applications/kde/granatier.nix
+++ b/nixpkgs/pkgs/applications/kde/granatier.nix
@@ -8,6 +8,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.granatier";
     description = "Clone of the classic Bomberman game";
+    mainProgram = "granatier";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/juk.nix b/nixpkgs/pkgs/applications/kde/juk.nix
index 70bd90b7e9ed..dd428a014487 100644
--- a/nixpkgs/pkgs/applications/kde/juk.nix
+++ b/nixpkgs/pkgs/applications/kde/juk.nix
@@ -30,6 +30,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://invent.kde.org/multimedia/juk";
     description = "Audio jukebox app, supporting collections of MP3, Ogg Vorbis and FLAC audio files";
+    mainProgram = "juk";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ zendo ];
diff --git a/nixpkgs/pkgs/applications/kde/k3b.nix b/nixpkgs/pkgs/applications/kde/k3b.nix
index 673567fbef69..643c5e80b10f 100644
--- a/nixpkgs/pkgs/applications/kde/k3b.nix
+++ b/nixpkgs/pkgs/applications/kde/k3b.nix
@@ -12,6 +12,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://apps.kde.org/k3b/";
     description = "Disk burning application";
+    mainProgram = "k3b";
     license = with licenses; [ gpl2Plus ];
     maintainers = with maintainers; [ sander ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kaddressbook.nix b/nixpkgs/pkgs/applications/kde/kaddressbook.nix
index 6e3201837fd0..0d5df31781c3 100644
--- a/nixpkgs/pkgs/applications/kde/kaddressbook.nix
+++ b/nixpkgs/pkgs/applications/kde/kaddressbook.nix
@@ -14,6 +14,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kaddressbook/";
     description = "KDE contact manager";
+    mainProgram = "kaddressbook";
     license = with lib.licenses; [ gpl2Plus lgpl21Plus fdl12Plus ];
     maintainers = kdepimTeam;
   };
diff --git a/nixpkgs/pkgs/applications/kde/kalk.nix b/nixpkgs/pkgs/applications/kde/kalk.nix
index 8d63991fb080..c151078e910e 100644
--- a/nixpkgs/pkgs/applications/kde/kalk.nix
+++ b/nixpkgs/pkgs/applications/kde/kalk.nix
@@ -43,6 +43,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Calculator built with kirigami";
+    mainProgram = "kalk";
     homepage = "https://invent.kde.org/plasma-mobile/kalk";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ samueldr ];
diff --git a/nixpkgs/pkgs/applications/kde/kalzium.nix b/nixpkgs/pkgs/applications/kde/kalzium.nix
index 045c9a3c8d6e..c365f6e7e7d4 100644
--- a/nixpkgs/pkgs/applications/kde/kalzium.nix
+++ b/nixpkgs/pkgs/applications/kde/kalzium.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://edu.kde.org/kalzium/";
     description = "Program that shows you the Periodic Table of Elements";
+    mainProgram = "kalzium";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kamoso.nix b/nixpkgs/pkgs/applications/kde/kamoso.nix
index c80ed0c511e4..878c127a977c 100644
--- a/nixpkgs/pkgs/applications/kde/kamoso.nix
+++ b/nixpkgs/pkgs/applications/kde/kamoso.nix
@@ -40,6 +40,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kamoso/";
     description = "A simple and friendly program to use your camera";
+    mainProgram = "kamoso";
     license = with lib.licenses; [ lgpl21Only gpl3Only ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/kde/kapman.nix b/nixpkgs/pkgs/applications/kde/kapman.nix
index 01fa984e5933..cb0187e97639 100644
--- a/nixpkgs/pkgs/applications/kde/kapman.nix
+++ b/nixpkgs/pkgs/applications/kde/kapman.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kapman";
     description = "Clone of the well known game Pac-Man";
+    mainProgram = "kapman";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kapptemplate.nix b/nixpkgs/pkgs/applications/kde/kapptemplate.nix
index 447b2d009b60..38b671bc382d 100644
--- a/nixpkgs/pkgs/applications/kde/kapptemplate.nix
+++ b/nixpkgs/pkgs/applications/kde/kapptemplate.nix
@@ -15,6 +15,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "KDE App Code Template Generator";
+    mainProgram = "kapptemplate";
     license = licenses.gpl2;
     homepage = "https://kde.org/applications/en/development/org.kde.kapptemplate";
     maintainers = [ maintainers.shamilton ];
diff --git a/nixpkgs/pkgs/applications/kde/kasts.nix b/nixpkgs/pkgs/applications/kde/kasts.nix
index 59b455398203..e0f00a1db204 100644
--- a/nixpkgs/pkgs/applications/kde/kasts.nix
+++ b/nixpkgs/pkgs/applications/kde/kasts.nix
@@ -59,6 +59,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Mobile podcast application";
+    mainProgram = "kasts";
     homepage = "https://apps.kde.org/kasts/";
     # https://invent.kde.org/plasma-mobile/kasts/-/tree/master/LICENSES
     license = with licenses; [ bsd2 cc-by-sa-40 cc0 gpl2Only gpl2Plus gpl3Only gpl3Plus lgpl3Plus ];
diff --git a/nixpkgs/pkgs/applications/kde/katomic.nix b/nixpkgs/pkgs/applications/kde/katomic.nix
index aa00d58c417e..29e67635fb3e 100644
--- a/nixpkgs/pkgs/applications/kde/katomic.nix
+++ b/nixpkgs/pkgs/applications/kde/katomic.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.katomic";
     description = "Fun educational game built around molecular geometry";
+    mainProgram = "katomic";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kblackbox.nix b/nixpkgs/pkgs/applications/kde/kblackbox.nix
index 9f2f652f5586..c85184dcc109 100644
--- a/nixpkgs/pkgs/applications/kde/kblackbox.nix
+++ b/nixpkgs/pkgs/applications/kde/kblackbox.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kblackbox";
     description = "Game of hide and seek played on a grid of boxes";
+    mainProgram = "kblackbox";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kblocks.nix b/nixpkgs/pkgs/applications/kde/kblocks.nix
index 971901687f02..61e49a69999c 100644
--- a/nixpkgs/pkgs/applications/kde/kblocks.nix
+++ b/nixpkgs/pkgs/applications/kde/kblocks.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kblocks";
     description = "Classic falling blocks game";
+    mainProgram = "kblocks";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kbounce.nix b/nixpkgs/pkgs/applications/kde/kbounce.nix
index d96c0f7f8273..f6f6ad43829b 100644
--- a/nixpkgs/pkgs/applications/kde/kbounce.nix
+++ b/nixpkgs/pkgs/applications/kde/kbounce.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kbounce";
     description = "Single player arcade game with the elements of puzzle";
+    mainProgram = "kbounce";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kbreakout.nix b/nixpkgs/pkgs/applications/kde/kbreakout.nix
index ad58bde5838b..eb448d1a7400 100644
--- a/nixpkgs/pkgs/applications/kde/kbreakout.nix
+++ b/nixpkgs/pkgs/applications/kde/kbreakout.nix
@@ -14,6 +14,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kbreakout/";
     description = "Breakout-like game";
+    mainProgram = "kbreakout";
     license = with lib.licenses; [ lgpl21 gpl3 ];
   };
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/applications/kde/kcalc.nix b/nixpkgs/pkgs/applications/kde/kcalc.nix
index 20ae678dc011..fdd8bb89f96e 100644
--- a/nixpkgs/pkgs/applications/kde/kcalc.nix
+++ b/nixpkgs/pkgs/applications/kde/kcalc.nix
@@ -10,6 +10,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kcalc/";
     description = "Scientific calculator";
+    mainProgram = "kcalc";
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ lib.maintainers.fridh ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/kcharselect.nix b/nixpkgs/pkgs/applications/kde/kcharselect.nix
index 0bc76b420874..54549aeb73ca 100644
--- a/nixpkgs/pkgs/applications/kde/kcharselect.nix
+++ b/nixpkgs/pkgs/applications/kde/kcharselect.nix
@@ -11,6 +11,7 @@ mkDerivation {
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.schmittlauch ];
     description = "A tool to select special characters from all installed fonts and copy them into the clipboard";
+    mainProgram = "kcharselect";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/kde/kcolorchooser.nix b/nixpkgs/pkgs/applications/kde/kcolorchooser.nix
index 26601bb37e3c..601fe705d47a 100644
--- a/nixpkgs/pkgs/applications/kde/kcolorchooser.nix
+++ b/nixpkgs/pkgs/applications/kde/kcolorchooser.nix
@@ -9,6 +9,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kcolorchooser/";
     description = "Color chooser";
+    mainProgram = "kcolorchooser";
     license = with lib.licenses; [ mit ];
     maintainers = [ lib.maintainers.ttuegel ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/kde-inotify-survey.nix b/nixpkgs/pkgs/applications/kde/kde-inotify-survey.nix
index d90d789c5776..470e225ea0ab 100644
--- a/nixpkgs/pkgs/applications/kde/kde-inotify-survey.nix
+++ b/nixpkgs/pkgs/applications/kde/kde-inotify-survey.nix
@@ -23,6 +23,7 @@ mkDerivation {
 
   meta = {
     description = "Tooling for monitoring inotify limits and informing the user when they have been or about to be reached";
+    mainProgram = "kde-inotify-survey";
     homepage = "https://invent.kde.org/system/kde-inotify-survey";
     license = lib.licenses.gpl2Plus;
     maintainers = [];
diff --git a/nixpkgs/pkgs/applications/kde/kdebugsettings.nix b/nixpkgs/pkgs/applications/kde/kdebugsettings.nix
index 829f7a26eb30..792d2dc04896 100644
--- a/nixpkgs/pkgs/applications/kde/kdebugsettings.nix
+++ b/nixpkgs/pkgs/applications/kde/kdebugsettings.nix
@@ -11,6 +11,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kdebugsettings/";
     description = "KDE debug settings";
+    mainProgram = "kdebugsettings";
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/kdevelop/kdevelop-pg-qt.nix b/nixpkgs/pkgs/applications/kde/kdevelop/kdevelop-pg-qt.nix
index 468e264915c8..908c21bba8a6 100644
--- a/nixpkgs/pkgs/applications/kde/kdevelop/kdevelop-pg-qt.nix
+++ b/nixpkgs/pkgs/applications/kde/kdevelop/kdevelop-pg-qt.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.ambrop72 ];
     platforms = platforms.linux;
     description = "Parser-generator from KDevplatform";
+    mainProgram = "kdev-pg-qt";
     longDescription = ''
       KDevelop-PG-Qt is the parser-generator from KDevplatform.
       It is used for some KDevelop-languagesupport-plugins (Ruby, PHP, CSS...).
diff --git a/nixpkgs/pkgs/applications/kde/kdiamond.nix b/nixpkgs/pkgs/applications/kde/kdiamond.nix
index 040806fd08e0..d5b18530aff9 100644
--- a/nixpkgs/pkgs/applications/kde/kdiamond.nix
+++ b/nixpkgs/pkgs/applications/kde/kdiamond.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kdiamond";
     description = "A single player puzzle game";
+    mainProgram = "kdiamond";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/keysmith.nix b/nixpkgs/pkgs/applications/kde/keysmith.nix
index eaca7f68e24b..cca4d2ece563 100644
--- a/nixpkgs/pkgs/applications/kde/keysmith.nix
+++ b/nixpkgs/pkgs/applications/kde/keysmith.nix
@@ -31,6 +31,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "OTP client for Plasma Mobile and Desktop";
+    mainProgram = "keysmith";
     license = licenses.gpl3;
     homepage = "https://github.com/KDE/keysmith";
     maintainers = with maintainers; [ samueldr shamilton ];
diff --git a/nixpkgs/pkgs/applications/kde/kfind.nix b/nixpkgs/pkgs/applications/kde/kfind.nix
index 2c96b17dea19..e7449660fcd5 100644
--- a/nixpkgs/pkgs/applications/kde/kfind.nix
+++ b/nixpkgs/pkgs/applications/kde/kfind.nix
@@ -9,6 +9,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kfind/";
     description = "Find files/folders";
+    mainProgram = "kfind";
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ lib.maintainers.iblech ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/kgeography.nix b/nixpkgs/pkgs/applications/kde/kgeography.nix
index b832ffcfa2cf..9e55ed5879d8 100644
--- a/nixpkgs/pkgs/applications/kde/kgeography.nix
+++ b/nixpkgs/pkgs/applications/kde/kgeography.nix
@@ -9,6 +9,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kgeography/";
     description = "Geography trainer";
+    mainProgram = "kgeography";
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ lib.maintainers.globin ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/kget.nix b/nixpkgs/pkgs/applications/kde/kget.nix
index 2f59e3aaf963..1c537e970711 100644
--- a/nixpkgs/pkgs/applications/kde/kget.nix
+++ b/nixpkgs/pkgs/applications/kde/kget.nix
@@ -18,6 +18,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://apps.kde.org/kget/";
     description = "Download manager";
+    mainProgram = "kget";
     license = with licenses; [ gpl2 ];
     maintainers = with maintainers; [ peterhoeg ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/kgpg.nix b/nixpkgs/pkgs/applications/kde/kgpg.nix
index 3db757b497dd..c39e521802e4 100644
--- a/nixpkgs/pkgs/applications/kde/kgpg.nix
+++ b/nixpkgs/pkgs/applications/kde/kgpg.nix
@@ -20,6 +20,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kgpg/";
     description = "A KDE based interface for GnuPG, a powerful encryption utility";
+    mainProgram = "kgpg";
     license = [ lib.licenses.gpl2 ];
     maintainers = [ lib.maintainers.ttuegel ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/khelpcenter.nix b/nixpkgs/pkgs/applications/kde/khelpcenter.nix
index eeafc1e5285e..1638c3223de5 100644
--- a/nixpkgs/pkgs/applications/kde/khelpcenter.nix
+++ b/nixpkgs/pkgs/applications/kde/khelpcenter.nix
@@ -21,6 +21,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://apps.kde.org/help/";
     description = "Help center";
+    mainProgram = "khelpcenter";
     license = licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/applications/kde/kigo.nix b/nixpkgs/pkgs/applications/kde/kigo.nix
index 238158b524b3..1fcedb393864 100644
--- a/nixpkgs/pkgs/applications/kde/kigo.nix
+++ b/nixpkgs/pkgs/applications/kde/kigo.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kigo";
     description = "An open-source implementation of the popular Go game";
+    mainProgram = "kigo";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/killbots.nix b/nixpkgs/pkgs/applications/kde/killbots.nix
index ef81c3b5ec11..6ac75851619f 100644
--- a/nixpkgs/pkgs/applications/kde/killbots.nix
+++ b/nixpkgs/pkgs/applications/kde/killbots.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.killbots";
     description = "A game where you avoid robots";
+    mainProgram = "killbots";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kirigami-gallery.nix b/nixpkgs/pkgs/applications/kde/kirigami-gallery.nix
index c22cc16aaf91..492d687e01d7 100644
--- a/nixpkgs/pkgs/applications/kde/kirigami-gallery.nix
+++ b/nixpkgs/pkgs/applications/kde/kirigami-gallery.nix
@@ -23,6 +23,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://apps.kde.org/kirigami2.gallery/";
     description = "View examples of Kirigami components";
+    mainProgram = "kirigami2gallery";
     license = licenses.lgpl2;
     maintainers = with maintainers; [ shadowrz ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/klettres.nix b/nixpkgs/pkgs/applications/kde/klettres.nix
index a87090a794b5..583edfb8a56c 100644
--- a/nixpkgs/pkgs/applications/kde/klettres.nix
+++ b/nixpkgs/pkgs/applications/kde/klettres.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://invent.kde.org/education/klettres";
     description = "An application specially designed to help the user to learn an alphabet";
+    mainProgram = "klettres";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/klines.nix b/nixpkgs/pkgs/applications/kde/klines.nix
index 336ea9a2506e..a7b4d81f5fe4 100644
--- a/nixpkgs/pkgs/applications/kde/klines.nix
+++ b/nixpkgs/pkgs/applications/kde/klines.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.klines";
     description = "A simple but highly addictive one player game";
+    mainProgram = "klines";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kmag.nix b/nixpkgs/pkgs/applications/kde/kmag.nix
index ba1bb8d18515..dc6cec7e5a47 100644
--- a/nixpkgs/pkgs/applications/kde/kmag.nix
+++ b/nixpkgs/pkgs/applications/kde/kmag.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/utilities/org.kde.kmag";
     description = "A small Linux utility to magnify a part of the screen";
+    mainProgram = "kmag";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kmahjongg.nix b/nixpkgs/pkgs/applications/kde/kmahjongg.nix
index a0c277ec0917..1c2e46c21124 100644
--- a/nixpkgs/pkgs/applications/kde/kmahjongg.nix
+++ b/nixpkgs/pkgs/applications/kde/kmahjongg.nix
@@ -14,6 +14,7 @@ mkDerivation {
   buildInputs = [ kdeclarative libkmahjongg knewstuff libkdegames ];
   meta = {
     description = "Mahjongg solitaire";
+    mainProgram = "kmahjongg";
     homepage = "https://apps.kde.org/kmahjongg/";
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/kde/kmines.nix b/nixpkgs/pkgs/applications/kde/kmines.nix
index 66131df26c16..108c7f049b08 100644
--- a/nixpkgs/pkgs/applications/kde/kmines.nix
+++ b/nixpkgs/pkgs/applications/kde/kmines.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kmines";
     description = "A classic Minesweeper game";
+    mainProgram = "kmines";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kmousetool.nix b/nixpkgs/pkgs/applications/kde/kmousetool.nix
index 4bac765dc4b9..bedcbb6bc4dc 100644
--- a/nixpkgs/pkgs/applications/kde/kmousetool.nix
+++ b/nixpkgs/pkgs/applications/kde/kmousetool.nix
@@ -28,6 +28,7 @@ mkDerivation {
   meta = {
     homepage = "https://github.com/KDE/kmousetool";
     description = "Program that clicks the mouse for you";
+    mainProgram = "kmousetool";
     license = with lib.licenses; [ gpl2Plus fdl12Plus ];
     maintainers = [ lib.maintainers.jayesh-bhoot ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/kmplot.nix b/nixpkgs/pkgs/applications/kde/kmplot.nix
index 9f1ab4d28119..478198215396 100644
--- a/nixpkgs/pkgs/applications/kde/kmplot.nix
+++ b/nixpkgs/pkgs/applications/kde/kmplot.nix
@@ -7,6 +7,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kmplot/";
     description = "Mathematical function plotter";
+    mainProgram = "kmplot";
     license = with lib.licenses; [ gpl2Plus fdl12Plus ];
     maintainers = [ lib.maintainers.orivej ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/knavalbattle.nix b/nixpkgs/pkgs/applications/kde/knavalbattle.nix
index 155faf4e5399..b405bfe1834d 100644
--- a/nixpkgs/pkgs/applications/kde/knavalbattle.nix
+++ b/nixpkgs/pkgs/applications/kde/knavalbattle.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.knavalbattle";
     description = "Naval Battle is a ship sinking game";
+    mainProgram = "knavalbattle";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/knetwalk.nix b/nixpkgs/pkgs/applications/kde/knetwalk.nix
index 3a863b40a1c6..ae25146b41b6 100644
--- a/nixpkgs/pkgs/applications/kde/knetwalk.nix
+++ b/nixpkgs/pkgs/applications/kde/knetwalk.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.knetwalk";
     description = "A single player logic game";
+    mainProgram = "knetwalk";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/knights.nix b/nixpkgs/pkgs/applications/kde/knights.nix
index 084a2349fc1f..589f409907d7 100644
--- a/nixpkgs/pkgs/applications/kde/knights.nix
+++ b/nixpkgs/pkgs/applications/kde/knights.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.knights";
     description = "A chess game";
+    mainProgram = "knights";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/koko.nix b/nixpkgs/pkgs/applications/kde/koko.nix
index 3543a7284bff..826125f91d10 100644
--- a/nixpkgs/pkgs/applications/kde/koko.nix
+++ b/nixpkgs/pkgs/applications/kde/koko.nix
@@ -73,6 +73,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Image gallery mobile application";
+    mainProgram = "koko";
     homepage = "https://apps.kde.org/koko/";
     # LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
     license = [ licenses.lgpl3Only licenses.lgpl21Only ];
diff --git a/nixpkgs/pkgs/applications/kde/kolf.nix b/nixpkgs/pkgs/applications/kde/kolf.nix
index c9a5a61e2812..7d966e60c679 100644
--- a/nixpkgs/pkgs/applications/kde/kolf.nix
+++ b/nixpkgs/pkgs/applications/kde/kolf.nix
@@ -12,6 +12,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kolf/";
     description = "Miniature golf";
+    mainProgram = "kolf";
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ peterhoeg ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/kollision.nix b/nixpkgs/pkgs/applications/kde/kollision.nix
index 806b2f592338..4aa01245f1ae 100644
--- a/nixpkgs/pkgs/applications/kde/kollision.nix
+++ b/nixpkgs/pkgs/applications/kde/kollision.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kollision";
     description = "A casual game";
+    mainProgram = "kollision";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kolourpaint.nix b/nixpkgs/pkgs/applications/kde/kolourpaint.nix
index b02c91e8641f..4af7cd12b896 100644
--- a/nixpkgs/pkgs/applications/kde/kolourpaint.nix
+++ b/nixpkgs/pkgs/applications/kde/kolourpaint.nix
@@ -19,6 +19,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kolourpaint/";
     description = "Paint program";
+    mainProgram = "kolourpaint";
     maintainers = [ lib.maintainers.fridh ];
     license = with lib.licenses; [ gpl2 ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/kompare.nix b/nixpkgs/pkgs/applications/kde/kompare.nix
index 097661d58021..27c2d646413b 100644
--- a/nixpkgs/pkgs/applications/kde/kompare.nix
+++ b/nixpkgs/pkgs/applications/kde/kompare.nix
@@ -9,6 +9,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kompare/";
     description = "Diff/patch frontend";
+    mainProgram = "kompare";
     license = with lib.licenses; [ gpl2 ];
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
diff --git a/nixpkgs/pkgs/applications/kde/konquest.nix b/nixpkgs/pkgs/applications/kde/konquest.nix
index 7c4ac20f4a51..ba400bd5da2e 100644
--- a/nixpkgs/pkgs/applications/kde/konquest.nix
+++ b/nixpkgs/pkgs/applications/kde/konquest.nix
@@ -24,6 +24,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/konquest/";
     description = "Galactic strategy game";
+    mainProgram = "konquest";
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ lheckemann ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/kontact.nix b/nixpkgs/pkgs/applications/kde/kontact.nix
index 2218e19c231a..f405b9af20ab 100644
--- a/nixpkgs/pkgs/applications/kde/kontact.nix
+++ b/nixpkgs/pkgs/applications/kde/kontact.nix
@@ -13,6 +13,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kontact/";
     description = "Personal information manager";
+    mainProgram = "kontact";
     license = with lib.licenses; [ gpl2Plus lgpl21Plus fdl12Plus ];
     maintainers = kdepimTeam;
   };
diff --git a/nixpkgs/pkgs/applications/kde/konversation.nix b/nixpkgs/pkgs/applications/kde/konversation.nix
index 4b224827e839..9b995629460f 100644
--- a/nixpkgs/pkgs/applications/kde/konversation.nix
+++ b/nixpkgs/pkgs/applications/kde/konversation.nix
@@ -66,6 +66,7 @@ mkDerivation {
 
   meta = {
     description = "Integrated IRC client for KDE";
+    mainProgram = "konversation";
     license = with lib.licenses; [ gpl2 ];
     homepage = "https://konversation.kde.org";
   };
diff --git a/nixpkgs/pkgs/applications/kde/korganizer.nix b/nixpkgs/pkgs/applications/kde/korganizer.nix
index e4c5a8dc5176..c1febe58f45a 100644
--- a/nixpkgs/pkgs/applications/kde/korganizer.nix
+++ b/nixpkgs/pkgs/applications/kde/korganizer.nix
@@ -17,6 +17,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/korganizer/";
     description = "Personal organizer";
+    mainProgram = "korganizer";
     license = with lib.licenses; [ gpl2Plus lgpl21Plus fdl12Plus ];
     maintainers = kdepimTeam;
   };
diff --git a/nixpkgs/pkgs/applications/kde/krdc.nix b/nixpkgs/pkgs/applications/kde/krdc.nix
index dfa84dae31bc..5d3fd18706db 100644
--- a/nixpkgs/pkgs/applications/kde/krdc.nix
+++ b/nixpkgs/pkgs/applications/kde/krdc.nix
@@ -19,6 +19,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "http://www.kde.org";
     description = "Remote desktop client";
+    mainProgram = "krdc";
     license = with licenses; [ gpl2Plus lgpl21Plus fdl12Plus bsd3 ];
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/krecorder.nix b/nixpkgs/pkgs/applications/kde/krecorder.nix
index 71164d1b02d4..afa5ddee2ed6 100644
--- a/nixpkgs/pkgs/applications/kde/krecorder.nix
+++ b/nixpkgs/pkgs/applications/kde/krecorder.nix
@@ -35,6 +35,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Audio recorder for Plasma Mobile";
+    mainProgram = "krecorder";
     homepage = "https://invent.kde.org/plasma-mobile/krecorder";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ samueldr ];
diff --git a/nixpkgs/pkgs/applications/kde/kreversi.nix b/nixpkgs/pkgs/applications/kde/kreversi.nix
index 351555b5f338..91756d2e15d7 100644
--- a/nixpkgs/pkgs/applications/kde/kreversi.nix
+++ b/nixpkgs/pkgs/applications/kde/kreversi.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kreversi";
     description = "A simple one player strategy game played against the computer";
+    mainProgram = "kreversi";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kruler.nix b/nixpkgs/pkgs/applications/kde/kruler.nix
index 918c0c55b625..965ef278542b 100644
--- a/nixpkgs/pkgs/applications/kde/kruler.nix
+++ b/nixpkgs/pkgs/applications/kde/kruler.nix
@@ -9,6 +9,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kruler/";
     description = "Screen ruler";
+    mainProgram = "kruler";
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ lib.maintainers.vandenoever ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/kshisen.nix b/nixpkgs/pkgs/applications/kde/kshisen.nix
index 791e95af6905..b15dbfa8f9fa 100644
--- a/nixpkgs/pkgs/applications/kde/kshisen.nix
+++ b/nixpkgs/pkgs/applications/kde/kshisen.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kshisen";
     description = "A solitaire-like game played using the standard set of Mahjong tiles";
+    mainProgram = "kshisen";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kspaceduel.nix b/nixpkgs/pkgs/applications/kde/kspaceduel.nix
index bf174546f2f6..500f2813b8f4 100644
--- a/nixpkgs/pkgs/applications/kde/kspaceduel.nix
+++ b/nixpkgs/pkgs/applications/kde/kspaceduel.nix
@@ -14,6 +14,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/kspaceduel/";
     description = "Space arcade game";
+    mainProgram = "kspaceduel";
     license = with lib.licenses; [ lgpl21 gpl3 ];
   };
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/applications/kde/ksquares.nix b/nixpkgs/pkgs/applications/kde/ksquares.nix
index b48ee473523c..326482c3aa8c 100644
--- a/nixpkgs/pkgs/applications/kde/ksquares.nix
+++ b/nixpkgs/pkgs/applications/kde/ksquares.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.ksquares";
     description = "A game of Dots and Boxes";
+    mainProgram = "ksquares";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/ksudoku.nix b/nixpkgs/pkgs/applications/kde/ksudoku.nix
index 1cfb3884ff59..64567ad9d88f 100644
--- a/nixpkgs/pkgs/applications/kde/ksudoku.nix
+++ b/nixpkgs/pkgs/applications/kde/ksudoku.nix
@@ -14,6 +14,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/ksudoku/";
     description = "Suduko game";
+    mainProgram = "ksudoku";
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/ksystemlog.nix b/nixpkgs/pkgs/applications/kde/ksystemlog.nix
index 1b78c16b49dd..c886acc65f5a 100644
--- a/nixpkgs/pkgs/applications/kde/ksystemlog.nix
+++ b/nixpkgs/pkgs/applications/kde/ksystemlog.nix
@@ -13,6 +13,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://apps.kde.org/ksystemlog/";
     description = "System log viewer";
+    mainProgram = "ksystemlog";
     license = with licenses; [ gpl2 ];
     maintainers = with maintainers; [ peterhoeg ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/kteatime.nix b/nixpkgs/pkgs/applications/kde/kteatime.nix
index 639bd933103f..056df2fa263d 100644
--- a/nixpkgs/pkgs/applications/kde/kteatime.nix
+++ b/nixpkgs/pkgs/applications/kde/kteatime.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/utilities/org.kde.kteatime";
     description = "A handy timer for steeping tea";
+    mainProgram = "kteatime";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/ktimer.nix b/nixpkgs/pkgs/applications/kde/ktimer.nix
index 7eab059f1a72..31535af1d7ad 100644
--- a/nixpkgs/pkgs/applications/kde/ktimer.nix
+++ b/nixpkgs/pkgs/applications/kde/ktimer.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/utilities/org.kde.ktimer";
     description = "A little tool to execute programs after some time";
+    mainProgram = "ktimer";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/ktouch.nix b/nixpkgs/pkgs/applications/kde/ktouch.nix
index df727c43a166..1a5f14bbc9e3 100644
--- a/nixpkgs/pkgs/applications/kde/ktouch.nix
+++ b/nixpkgs/pkgs/applications/kde/ktouch.nix
@@ -14,6 +14,7 @@ mkDerivation {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.schmittlauch ];
     description = "A touch typing tutor from the KDE software collection";
+    mainProgram = "ktouch";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools qtdeclarative ];
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/kde/ktrip.nix b/nixpkgs/pkgs/applications/kde/ktrip.nix
index 5377dd106586..ebcb85d67d4a 100644
--- a/nixpkgs/pkgs/applications/kde/ktrip.nix
+++ b/nixpkgs/pkgs/applications/kde/ktrip.nix
@@ -39,6 +39,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Public transport trip planner";
+    mainProgram = "ktrip";
     homepage = "https://apps.kde.org/ktrip/";
     # GPL-2.0-or-later
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/applications/kde/kturtle.nix b/nixpkgs/pkgs/applications/kde/kturtle.nix
index cf4b2c91ffed..1f03f7fcb407 100644
--- a/nixpkgs/pkgs/applications/kde/kturtle.nix
+++ b/nixpkgs/pkgs/applications/kde/kturtle.nix
@@ -5,6 +5,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://invent.kde.org/education/kturtle";
     description = "An educational programming environment for learning how to program";
+    mainProgram = "kturtle";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kwalletmanager.nix b/nixpkgs/pkgs/applications/kde/kwalletmanager.nix
index 8d56adc41326..63534d584d9f 100644
--- a/nixpkgs/pkgs/applications/kde/kwalletmanager.nix
+++ b/nixpkgs/pkgs/applications/kde/kwalletmanager.nix
@@ -17,6 +17,7 @@ mkDerivation {
     homepage = "https://apps.kde.org/kwalletmanager5/";
 
     description = "KDE wallet management tool";
+    mainProgram = "kwalletmanager5";
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ fridh ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/kwave.nix b/nixpkgs/pkgs/applications/kde/kwave.nix
index a315ce6bd9bd..b0eda04de709 100644
--- a/nixpkgs/pkgs/applications/kde/kwave.nix
+++ b/nixpkgs/pkgs/applications/kde/kwave.nix
@@ -8,6 +8,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://kde.org/applications/en/multimedia/org.kde.kwave";
     description = "A simple media player";
+    mainProgram = "kwave";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/kweather.nix b/nixpkgs/pkgs/applications/kde/kweather.nix
index d6a1f999ce65..b9a5fc04f6df 100644
--- a/nixpkgs/pkgs/applications/kde/kweather.nix
+++ b/nixpkgs/pkgs/applications/kde/kweather.nix
@@ -41,6 +41,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Weather application for Plasma Mobile";
+    mainProgram = "kweather";
     homepage = "https://invent.kde.org/plasma-mobile/kweather";
     license = with licenses; [ gpl2Plus cc-by-40 ];
     maintainers = with maintainers; [ samueldr ];
diff --git a/nixpkgs/pkgs/applications/kde/minuet.nix b/nixpkgs/pkgs/applications/kde/minuet.nix
index 0aaa5012a073..8e5285ac57d8 100644
--- a/nixpkgs/pkgs/applications/kde/minuet.nix
+++ b/nixpkgs/pkgs/applications/kde/minuet.nix
@@ -10,6 +10,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://apps.kde.org/minuet/";
     description = "Music Education Software";
+    mainProgram = "minuet";
     license = with licenses; [ lgpl21 gpl3 ];
     maintainers = with maintainers; [ peterhoeg HaoZeke ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/neochat.nix b/nixpkgs/pkgs/applications/kde/neochat.nix
index 03c6f19e68f5..840ab864cd95 100644
--- a/nixpkgs/pkgs/applications/kde/neochat.nix
+++ b/nixpkgs/pkgs/applications/kde/neochat.nix
@@ -67,6 +67,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "A client for matrix, the decentralized communication protocol";
+    mainProgram = "neochat";
     homepage = "https://apps.kde.org/en/neochat";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/applications/kde/okular.nix b/nixpkgs/pkgs/applications/kde/okular.nix
index 8079232b926c..927cdb737b98 100644
--- a/nixpkgs/pkgs/applications/kde/okular.nix
+++ b/nixpkgs/pkgs/applications/kde/okular.nix
@@ -34,6 +34,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "http://www.kde.org";
     description = "KDE document viewer";
+    mainProgram = "okular";
     license = with licenses; [ gpl2Plus lgpl21Plus fdl12Plus bsd3 ];
     maintainers = with maintainers; [ ttuegel ];
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/palapeli.nix b/nixpkgs/pkgs/applications/kde/palapeli.nix
index 13aa24df27d4..9effbc2674f7 100644
--- a/nixpkgs/pkgs/applications/kde/palapeli.nix
+++ b/nixpkgs/pkgs/applications/kde/palapeli.nix
@@ -16,6 +16,7 @@ mkDerivation {
   meta = {
     homepage = "https://apps.kde.org/palapeli/";
     description = "A single-player jigsaw puzzle game";
+    mainProgram = "palapeli";
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ harrisonthorne ];
   };
diff --git a/nixpkgs/pkgs/applications/kde/picmi.nix b/nixpkgs/pkgs/applications/kde/picmi.nix
index 30ee9fa84369..3f5e36886836 100644
--- a/nixpkgs/pkgs/applications/kde/picmi.nix
+++ b/nixpkgs/pkgs/applications/kde/picmi.nix
@@ -8,6 +8,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://apps.kde.org/picmi/";
     description = "Nonogram game";
+    mainProgram = "picmi";
     longDescription = ''The goal is to reveal the hidden pattern in the board by coloring or
       leaving blank the cells in a grid according to numbers given at the side of the grid.
       '';
diff --git a/nixpkgs/pkgs/applications/kde/plasmatube/default.nix b/nixpkgs/pkgs/applications/kde/plasmatube/default.nix
index d7f0e337e509..cc83254cb2ac 100644
--- a/nixpkgs/pkgs/applications/kde/plasmatube/default.nix
+++ b/nixpkgs/pkgs/applications/kde/plasmatube/default.nix
@@ -50,6 +50,7 @@ mkDerivation {
 
   meta = {
     description = "Youtube player powered by an invidious server";
+    mainProgram = "plasmatube";
     homepage = "https://invent.kde.org/plasma-mobile/plasmatube";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/applications/kde/qmlkonsole.nix b/nixpkgs/pkgs/applications/kde/qmlkonsole.nix
index da892fb47c0e..1071fce7e752 100644
--- a/nixpkgs/pkgs/applications/kde/qmlkonsole.nix
+++ b/nixpkgs/pkgs/applications/kde/qmlkonsole.nix
@@ -35,6 +35,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Terminal app for Plasma Mobile";
+    mainProgram = "qmlkonsole";
     homepage = "https://invent.kde.org/plasma-mobile/qmlkonsole";
     license = with licenses; [ gpl2Plus gpl3Plus cc0 ];
     maintainers = with maintainers; [ balsoft ];
diff --git a/nixpkgs/pkgs/applications/kde/rocs.nix b/nixpkgs/pkgs/applications/kde/rocs.nix
index 80f5f4bb6d65..732814c42f69 100644
--- a/nixpkgs/pkgs/applications/kde/rocs.nix
+++ b/nixpkgs/pkgs/applications/kde/rocs.nix
@@ -11,6 +11,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://edu.kde.org/rocs/";
     description = "A graph theory IDE.";
+    mainProgram = "rocs";
     license = with licenses; [ gpl2Plus lgpl21Plus fdl12Plus ];
     platforms = lib.platforms.linux;
     maintainers = with maintainers; [ knairda ];
diff --git a/nixpkgs/pkgs/applications/kde/skanlite.nix b/nixpkgs/pkgs/applications/kde/skanlite.nix
index e31c775c3d86..2d2ca212d00c 100644
--- a/nixpkgs/pkgs/applications/kde/skanlite.nix
+++ b/nixpkgs/pkgs/applications/kde/skanlite.nix
@@ -9,6 +9,7 @@ mkDerivation {
   pname = "skanlite";
   meta = with lib; {
     description = "KDE simple image scanning application";
+    mainProgram = "skanlite";
     homepage    = "https://apps.kde.org/skanlite";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ polendri ];
diff --git a/nixpkgs/pkgs/applications/kde/skanpage.nix b/nixpkgs/pkgs/applications/kde/skanpage.nix
index fc16723ce4de..89094a10a87b 100644
--- a/nixpkgs/pkgs/applications/kde/skanpage.nix
+++ b/nixpkgs/pkgs/applications/kde/skanpage.nix
@@ -25,6 +25,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "KDE utility to scan images and multi-page documents";
+    mainProgram = "skanpage";
     homepage = "https://apps.kde.org/skanpage";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/kde/spectacle.nix b/nixpkgs/pkgs/applications/kde/spectacle.nix
index 8505e34920df..f5471e2d1086 100644
--- a/nixpkgs/pkgs/applications/kde/spectacle.nix
+++ b/nixpkgs/pkgs/applications/kde/spectacle.nix
@@ -33,6 +33,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://apps.kde.org/spectacle/";
     description = "Screenshot capture utility";
+    mainProgram = "spectacle";
     maintainers = with maintainers; [ ttuegel ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/kde/telly-skout.nix b/nixpkgs/pkgs/applications/kde/telly-skout.nix
index 4c84768a693a..9ecff11c0e08 100644
--- a/nixpkgs/pkgs/applications/kde/telly-skout.nix
+++ b/nixpkgs/pkgs/applications/kde/telly-skout.nix
@@ -17,6 +17,7 @@ mkDerivation {
 
   meta = {
     description = "A convergent Kirigami TV guide";
+    mainProgram = "telly-skout";
     homepage = "https://apps.kde.org/telly-skout/";
     license = lib.licenses.gpl2Plus;
     maintainers = [];
diff --git a/nixpkgs/pkgs/applications/kde/tokodon.nix b/nixpkgs/pkgs/applications/kde/tokodon.nix
index 43da82e89018..c11bb05dae0f 100644
--- a/nixpkgs/pkgs/applications/kde/tokodon.nix
+++ b/nixpkgs/pkgs/applications/kde/tokodon.nix
@@ -53,6 +53,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "A Mastodon client for Plasma and Plasma Mobile";
+    mainProgram = "tokodon";
     homepage = "https://invent.kde.org/network/tokodon";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/kde/yakuake.nix b/nixpkgs/pkgs/applications/kde/yakuake.nix
index 7c98275b9173..ce1cf3d161ff 100644
--- a/nixpkgs/pkgs/applications/kde/yakuake.nix
+++ b/nixpkgs/pkgs/applications/kde/yakuake.nix
@@ -28,6 +28,7 @@ mkDerivation {
   meta = {
     homepage = "https://yakuake.kde.org";
     description = "Quad-style terminal emulator for KDE";
+    mainProgram = "yakuake";
     maintainers = with lib.maintainers; [ fridh ];
     license = lib.licenses.gpl2;
   };
diff --git a/nixpkgs/pkgs/applications/maui/booth.nix b/nixpkgs/pkgs/applications/maui/booth.nix
index f82055895854..bca0c23a8543 100644
--- a/nixpkgs/pkgs/applications/maui/booth.nix
+++ b/nixpkgs/pkgs/applications/maui/booth.nix
@@ -47,6 +47,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Camera application";
+    mainProgram = "booth";
     homepage = "https://invent.kde.org/maui/booth";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ milahu ];
diff --git a/nixpkgs/pkgs/applications/maui/buho.nix b/nixpkgs/pkgs/applications/maui/buho.nix
index 481779a6cab7..b9f9fb446fb5 100644
--- a/nixpkgs/pkgs/applications/maui/buho.nix
+++ b/nixpkgs/pkgs/applications/maui/buho.nix
@@ -41,6 +41,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Task and Note Keeper";
+    mainProgram = "buho";
     homepage = "https://invent.kde.org/maui/buho";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/applications/maui/clip.nix b/nixpkgs/pkgs/applications/maui/clip.nix
index 10df8c47dfc3..88d874c04e12 100644
--- a/nixpkgs/pkgs/applications/maui/clip.nix
+++ b/nixpkgs/pkgs/applications/maui/clip.nix
@@ -41,6 +41,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Video player and video collection manager";
+    mainProgram = "clip";
     homepage = "https://invent.kde.org/maui/clip";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/applications/maui/communicator.nix b/nixpkgs/pkgs/applications/maui/communicator.nix
index 3fec87d1f512..4ee5f59dc3cd 100644
--- a/nixpkgs/pkgs/applications/maui/communicator.nix
+++ b/nixpkgs/pkgs/applications/maui/communicator.nix
@@ -50,6 +50,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Contacts and dialer application";
+    mainProgram = "communicator";
     homepage = "https://invent.kde.org/maui/communicator";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/applications/maui/index.nix b/nixpkgs/pkgs/applications/maui/index.nix
index bc223adb4b1c..4e12123074fd 100644
--- a/nixpkgs/pkgs/applications/maui/index.nix
+++ b/nixpkgs/pkgs/applications/maui/index.nix
@@ -40,6 +40,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Multi-platform file manager";
+    mainProgram = "index";
     homepage = "https://invent.kde.org/maui/index-fm";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/applications/maui/mauiman.nix b/nixpkgs/pkgs/applications/maui/mauiman.nix
index 626d045b115c..7566c7d6ed7d 100644
--- a/nixpkgs/pkgs/applications/maui/mauiman.nix
+++ b/nixpkgs/pkgs/applications/maui/mauiman.nix
@@ -20,6 +20,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://invent.kde.org/maui/mauiman";
     description = "Maui Manager Library. Server and public library API";
+    mainProgram = "MauiManServer3";
     maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/maui/nota.nix b/nixpkgs/pkgs/applications/maui/nota.nix
index cdf4943df5fe..5e579c8cbdcb 100644
--- a/nixpkgs/pkgs/applications/maui/nota.nix
+++ b/nixpkgs/pkgs/applications/maui/nota.nix
@@ -39,6 +39,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Multi-platform text editor";
+    mainProgram = "nota";
     homepage = "https://invent.kde.org/maui/nota";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/applications/maui/pix.nix b/nixpkgs/pkgs/applications/maui/pix.nix
index 6794da74c3a7..b19c5dff7148 100644
--- a/nixpkgs/pkgs/applications/maui/pix.nix
+++ b/nixpkgs/pkgs/applications/maui/pix.nix
@@ -45,6 +45,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Image gallery application";
+    mainProgram = "pix";
     homepage = "https://invent.kde.org/maui/pix";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/applications/maui/shelf.nix b/nixpkgs/pkgs/applications/maui/shelf.nix
index 3ac804512531..1c1b53a8e1e9 100644
--- a/nixpkgs/pkgs/applications/maui/shelf.nix
+++ b/nixpkgs/pkgs/applications/maui/shelf.nix
@@ -43,6 +43,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Document and EBook collection manager";
+    mainProgram = "shelf";
     homepage = "https://invent.kde.org/maui/shelf";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/applications/maui/station.nix b/nixpkgs/pkgs/applications/maui/station.nix
index 474e52c63a2b..2ca994397ccd 100644
--- a/nixpkgs/pkgs/applications/maui/station.nix
+++ b/nixpkgs/pkgs/applications/maui/station.nix
@@ -35,6 +35,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Convergent terminal emulator";
+    mainProgram = "station";
     homepage = "https://invent.kde.org/maui/station";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/applications/maui/vvave.nix b/nixpkgs/pkgs/applications/maui/vvave.nix
index bd5b97292010..e10d33df0eb5 100644
--- a/nixpkgs/pkgs/applications/maui/vvave.nix
+++ b/nixpkgs/pkgs/applications/maui/vvave.nix
@@ -41,6 +41,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Multi-platform media player";
+    mainProgram = "vvave";
     homepage = "https://invent.kde.org/maui/vvave";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/applications/misc/1password-gui/default.nix b/nixpkgs/pkgs/applications/misc/1password-gui/default.nix
index 21b445944abf..32825d3ba523 100644
--- a/nixpkgs/pkgs/applications/misc/1password-gui/default.nix
+++ b/nixpkgs/pkgs/applications/misc/1password-gui/default.nix
@@ -9,7 +9,7 @@
 let
 
   pname = "1password";
-  version = if channel == "stable" then "8.10.27" else "8.10.28-11.BETA";
+  version = if channel == "stable" then "8.10.27" else "8.10.28-21.BETA";
 
   sources = {
     stable = {
@@ -33,19 +33,19 @@ let
     beta = {
       x86_64-linux = {
         url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
-        hash = "sha256-pchfBeZcXoyfSHutQqgAWkf6uzTEIQ/AbKDOC2N+BN8=";
+        hash = "sha256-Pz9tpGsKLmf37r0fnBxcE7qGjN3RZSF/iwQUnqev0Jk=";
       };
       aarch64-linux = {
         url = "https://downloads.1password.com/linux/tar/beta/aarch64/1password-${version}.arm64.tar.gz";
-        hash = "sha256-rcjoyuEL8p4nCvjboPF0BV1lV5/+zo/rP9AP0ORB0N0=";
+        hash = "sha256-ezzdwUUcSBqJUKlG1By5HXbgrTFDpaGIJipU+V1FUBc=";
       };
       x86_64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
-        hash = "sha256-D3kYUpL69HMQnjJyzQ2/Ahiyt94uwxM86n7U9uQ/mVs=";
+        hash = "sha256-zFO8ypDqPGcJY/2eKke/ljQ4S3syI7jyZSexbYzBA+c=";
       };
       aarch64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
-        hash = "sha256-FJbFsMS/f7PHTvu9PxDgFQB3v47AsyESdKctr+S1LXk=";
+        hash = "sha256-LAhGmXqfcgjiDbE0RLhzpi15rluM8/fZ3GZ52yHdMKg=";
       };
     };
   };
diff --git a/nixpkgs/pkgs/applications/misc/1password-gui/linux.nix b/nixpkgs/pkgs/applications/misc/1password-gui/linux.nix
index 1bb980203b1d..140adde918fc 100644
--- a/nixpkgs/pkgs/applications/misc/1password-gui/linux.nix
+++ b/nixpkgs/pkgs/applications/misc/1password-gui/linux.nix
@@ -110,8 +110,8 @@ in stdenv.mkDerivation {
       cp -a resources/icons $out/share
 
       interp="$(cat $NIX_CC/nix-support/dynamic-linker)"
-      patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper,1Password-LastPass-Exporter,op-ssh-sign}
-      patchelf --set-rpath ${rpath}:$out/share/1password $out/share/1password/{1password,1Password-BrowserSupport,1Password-KeyringHelper,1Password-LastPass-Exporter,op-ssh-sign}
+      patchelf --set-interpreter $interp $out/share/1password/{1password,1Password-BrowserSupport,1Password-LastPass-Exporter,op-ssh-sign}
+      patchelf --set-rpath ${rpath}:$out/share/1password $out/share/1password/{1password,1Password-BrowserSupport,1Password-LastPass-Exporter,op-ssh-sign}
       for file in $(find $out -type f -name \*.so\* ); do
         patchelf --set-rpath ${rpath}:$out/share/1password $file
       done
diff --git a/nixpkgs/pkgs/applications/misc/1password/default.nix b/nixpkgs/pkgs/applications/misc/1password/default.nix
index b7df39ee2b08..9e9465f9c6ed 100644
--- a/nixpkgs/pkgs/applications/misc/1password/default.nix
+++ b/nixpkgs/pkgs/applications/misc/1password/default.nix
@@ -12,12 +12,12 @@ let
     if extension == "zip" then fetchzip args else fetchurl args;
 
   pname = "1password-cli";
-  version = "2.25.0";
+  version = "2.26.0";
   sources = rec {
-    aarch64-linux = fetch "linux_arm64" "sha256-Fs7psSWGqQqnUpGtU0nv1Mv+GysL/wD8AeVbMUDJ9pg=" "zip";
-    i686-linux = fetch "linux_386" "sha256-Vqk2COKRtDkOn7960VknyHx7sZVHZ4GP+aaC1rU4eqc=" "zip";
-    x86_64-linux = fetch "linux_amd64" "sha256-rMIZU92A13eiUqr35C+RTg3OTE9u8hcYJRinHoPWYTE=" "zip";
-    aarch64-darwin = fetch "apple_universal" "sha256-JO7Hh8PUnW5D3GCJFPcVfIYXzHV6HkckqFnGK9vH7Qs=" "pkg";
+    aarch64-linux = fetch "linux_arm64" "sha256-zWmWeAPtgSR8/3l40K4DPdMm0Pan+J1uNjUaEx+geO4=" "zip";
+    i686-linux = fetch "linux_386" "sha256-OOjAMfRTSW+RuD0PPosvxMIPJcPQQok5Wn209sa0tuU=" "zip";
+    x86_64-linux = fetch "linux_amd64" "sha256-RwdEeqBFNj5dgBsmC2fiDwUGFWhuqeEL7g60ogFEq1Y=" "zip";
+    aarch64-darwin = fetch "apple_universal" "sha256-pwXHax0DBx1UpVmwYytpSikt5xdKZJXrdqvjWyWdUBM=" "pkg";
     x86_64-darwin = aarch64-darwin;
   };
   platforms = builtins.attrNames sources;
diff --git a/nixpkgs/pkgs/applications/misc/9menu/default.nix b/nixpkgs/pkgs/applications/misc/9menu/default.nix
index 8e6b7b3bcbec..e383a2eb6b6f 100644
--- a/nixpkgs/pkgs/applications/misc/9menu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/9menu/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/arnoldrobbins/9menu";
     description = "Simple X11 menu program for running commands";
+    mainProgram = "9menu";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = libX11.meta.platforms;
diff --git a/nixpkgs/pkgs/applications/misc/OSCAR/default.nix b/nixpkgs/pkgs/applications/misc/OSCAR/default.nix
index 6e20a855acb7..223fff1080e5 100644
--- a/nixpkgs/pkgs/applications/misc/OSCAR/default.nix
+++ b/nixpkgs/pkgs/applications/misc/OSCAR/default.nix
@@ -39,6 +39,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.sleepfiles.com/OSCAR/";
     description = "Software for reviewing and exploring data produced by CPAP and related machines used in the treatment of sleep apnea";
+    mainProgram = "OSCAR";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.roconnor ];
     # Someone needs to create a suitable installPhase for Darwin and Windows.
diff --git a/nixpkgs/pkgs/applications/misc/ablog/default.nix b/nixpkgs/pkgs/applications/misc/ablog/default.nix
index a9cc6670e899..932db21317c6 100644
--- a/nixpkgs/pkgs/applications/misc/ablog/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ablog/default.nix
@@ -41,6 +41,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "ABlog for blogging with Sphinx";
+    mainProgram = "ablog";
     homepage = "https://ablog.readthedocs.io/en/latest/";
     license = licenses.mit;
     maintainers = with maintainers; [ rgrinberg ];
diff --git a/nixpkgs/pkgs/applications/misc/acpic/default.nix b/nixpkgs/pkgs/applications/misc/acpic/default.nix
index 7d05f0a05702..7a53e564c57c 100644
--- a/nixpkgs/pkgs/applications/misc/acpic/default.nix
+++ b/nixpkgs/pkgs/applications/misc/acpic/default.nix
@@ -28,6 +28,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Daemon extending acpid event handling capabilities.";
+    mainProgram = "acpic";
     homepage = "https://github.com/psliwka/acpic";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ aacebedo ];
diff --git a/nixpkgs/pkgs/applications/misc/aitrack/default.nix b/nixpkgs/pkgs/applications/misc/aitrack/default.nix
index 48e0afe13ebd..b9bb69623487 100644
--- a/nixpkgs/pkgs/applications/misc/aitrack/default.nix
+++ b/nixpkgs/pkgs/applications/misc/aitrack/default.nix
@@ -44,6 +44,7 @@
 
   meta = with lib; {
     description = "6DoF Head tracking software";
+    mainProgram = "aitrack";
     maintainers = with maintainers; [ ck3d ];
     platforms = platforms.linux;
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/misc/almanah/default.nix b/nixpkgs/pkgs/applications/misc/almanah/default.nix
index 3b27f5b96e30..35677f56cccb 100644
--- a/nixpkgs/pkgs/applications/misc/almanah/default.nix
+++ b/nixpkgs/pkgs/applications/misc/almanah/default.nix
@@ -93,6 +93,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Small GTK application to allow to keep a diary of your life";
+    mainProgram = "almanah";
     homepage = "https://wiki.gnome.org/Apps/Almanah_Diary";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/antfs-cli/default.nix b/nixpkgs/pkgs/applications/misc/antfs-cli/default.nix
index 516b786222db..43fcab337a05 100644
--- a/nixpkgs/pkgs/applications/misc/antfs-cli/default.nix
+++ b/nixpkgs/pkgs/applications/misc/antfs-cli/default.nix
@@ -7,6 +7,7 @@ python3Packages.buildPythonApplication {
   meta = with lib; {
     homepage = "https://github.com/Tigge/antfs-cli";
     description = "Extracts FIT files from ANT-FS based sport watches";
+    mainProgram = "antfs-cli";
     license = licenses.mit;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/applications/misc/apvlv/default.nix b/nixpkgs/pkgs/applications/misc/apvlv/default.nix
index 78d353ce2a85..f45fb95aba59 100644
--- a/nixpkgs/pkgs/applications/misc/apvlv/default.nix
+++ b/nixpkgs/pkgs/applications/misc/apvlv/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://naihe2010.github.io/apvlv/";
     description = "PDF viewer with Vim-like behaviour";
+    mainProgram = "apvlv";
     longDescription = ''
       apvlv is a PDF/DJVU/UMD/TXT Viewer Under Linux/WIN32
       with Vim-like behaviour.
diff --git a/nixpkgs/pkgs/applications/misc/archivebox/default.nix b/nixpkgs/pkgs/applications/misc/archivebox/default.nix
index 4979a683ebe0..996c11292ab1 100644
--- a/nixpkgs/pkgs/applications/misc/archivebox/default.nix
+++ b/nixpkgs/pkgs/applications/misc/archivebox/default.nix
@@ -43,8 +43,9 @@ let
           rev = "e43f383dae3a35237e42f6acfe1207a8e7e7bdf5";
           hash = "sha256-NAMa78KhAuoJfp0Cb0Codz84sRfRQ1JhSLNYRI4GBPM=";
         };
+
         # possibly a real issue, but that version is not supported anymore
-        disabledTests = [ "test_should_highlight_bash_syntax_without_name" ];
+        doCheck = false;
       });
     };
   };
diff --git a/nixpkgs/pkgs/applications/misc/asciiquarium/default.nix b/nixpkgs/pkgs/applications/misc/asciiquarium/default.nix
index a4276dac1d1f..0ab79bb2134a 100644
--- a/nixpkgs/pkgs/applications/misc/asciiquarium/default.nix
+++ b/nixpkgs/pkgs/applications/misc/asciiquarium/default.nix
@@ -22,6 +22,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Enjoy the mysteries of the sea from the safety of your own terminal!";
+    mainProgram = "asciiquarium";
     homepage = "https://robobunny.com/projects/asciiquarium/html/";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix b/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix
index c9f97c5602b2..7b805496c2d8 100644
--- a/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix
+++ b/nixpkgs/pkgs/applications/misc/audio/wavrsocvt/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Convert .wav files into sound files for Lego NXT brick";
+    mainProgram = "wavrsocvt";
     longDescription = ''
       wavrsocvt is a command-line utility which can be used from a
       terminal window or script to convert .wav files into sound
diff --git a/nixpkgs/pkgs/applications/misc/authenticator/default.nix b/nixpkgs/pkgs/applications/misc/authenticator/default.nix
index dac943fee677..57e8b7620731 100644
--- a/nixpkgs/pkgs/applications/misc/authenticator/default.nix
+++ b/nixpkgs/pkgs/applications/misc/authenticator/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Two-factor authentication code generator for GNOME";
+    mainProgram = "authenticator";
     homepage = "https://gitlab.gnome.org/World/Authenticator";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ austinbutler ];
diff --git a/nixpkgs/pkgs/applications/misc/auto-multiple-choice/default.nix b/nixpkgs/pkgs/applications/misc/auto-multiple-choice/default.nix
index 43aad6d5be16..bdd1e6fbb854 100644
--- a/nixpkgs/pkgs/applications/misc/auto-multiple-choice/default.nix
+++ b/nixpkgs/pkgs/applications/misc/auto-multiple-choice/default.nix
@@ -144,6 +144,7 @@ stdenv.mkDerivation (finalAttrs: rec {
 
   meta = with lib; {
     description = "Create and manage multiple choice questionnaires with automated marking.";
+    mainProgram = "auto-multiple-choice";
     longDescription = ''
       Create, manage and mark multiple-choice questionnaires.
       auto-multiple-choice features automated or manual formatting with
diff --git a/nixpkgs/pkgs/applications/misc/avell-unofficial-control-center/default.nix b/nixpkgs/pkgs/applications/misc/avell-unofficial-control-center/default.nix
index 45d4f69075d2..c37d2c42b64f 100644
--- a/nixpkgs/pkgs/applications/misc/avell-unofficial-control-center/default.nix
+++ b/nixpkgs/pkgs/applications/misc/avell-unofficial-control-center/default.nix
@@ -20,6 +20,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/rodgomesc/avell-unofficial-control-center";
     description = "Software for controlling RGB keyboard lights on some gaming laptops that use ITE Device(8291) Rev 0.03";
+    mainProgram = "aucc";
     license = licenses.mit;
     maintainers = with maintainers; [ rkitover ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/bambu-studio/default.nix b/nixpkgs/pkgs/applications/misc/bambu-studio/default.nix
index 1455558dcc2e..f58283564c13 100644
--- a/nixpkgs/pkgs/applications/misc/bambu-studio/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bambu-studio/default.nix
@@ -113,6 +113,8 @@ stdenv.mkDerivation rec {
   patches = [
     # Fix for webkitgtk linking
     ./0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch
+    # Fix build with cgal-5.6.1+
+    ./meshboolean-const.patch
   ];
 
   doCheck = true;
@@ -167,7 +169,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "PC Software for BambuLab's 3D printers";
     homepage = "https://github.com/bambulab/BambuStudio";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     maintainers = with maintainers; [ zhaofengli ];
     mainProgram = "bambu-studio";
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/bambu-studio/meshboolean-const.patch b/nixpkgs/pkgs/applications/misc/bambu-studio/meshboolean-const.patch
new file mode 100644
index 000000000000..68e72591d8f4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/bambu-studio/meshboolean-const.patch
@@ -0,0 +1,21 @@
+Fix build with cgal 5.6.1+
+
+diff --git a/src/libslic3r/MeshBoolean.cpp b/src/libslic3r/MeshBoolean.cpp
+index 50bbc099..b05245d3 100644
+--- a/src/libslic3r/MeshBoolean.cpp
++++ b/src/libslic3r/MeshBoolean.cpp
+@@ -200,12 +200,12 @@ indexed_triangle_set cgal_to_indexed_triangle_set(const _Mesh &cgalmesh)
+     const auto &vertices = cgalmesh.vertices();
+     int vsize = int(vertices.size());
+
+-    for (auto &vi : vertices) {
++    for (const auto &vi : vertices) {
+         auto &v = cgalmesh.point(vi); // Don't ask...
+         its.vertices.emplace_back(to_vec3f(v));
+     }
+
+-    for (auto &face : faces) {
++    for (const auto &face : faces) {
+         auto vtc = cgalmesh.vertices_around_face(cgalmesh.halfedge(face));
+
+         int i = 0;
diff --git a/nixpkgs/pkgs/applications/misc/bambu-studio/orca-slicer.nix b/nixpkgs/pkgs/applications/misc/bambu-studio/orca-slicer.nix
index b600f6164010..dc55a4d02f69 100644
--- a/nixpkgs/pkgs/applications/misc/bambu-studio/orca-slicer.nix
+++ b/nixpkgs/pkgs/applications/misc/bambu-studio/orca-slicer.nix
@@ -1,24 +1,27 @@
 { lib, fetchFromGitHub, makeDesktopItem, bambu-studio }:
-let
-  orca-slicer = bambu-studio.overrideAttrs (finalAttrs: previousAttrs: {
-    version = "1.9.1";
-    pname = "orca-slicer";
 
-    src = fetchFromGitHub {
-      owner = "SoftFever";
-      repo = "OrcaSlicer";
-      rev = "v${finalAttrs.version}";
-      hash = "sha256-+JYUpyEr3xraJEb1wDkyle+jAQiNE+AMUTT1fhh4Clw=";
-    };
+bambu-studio.overrideAttrs (finalAttrs: previousAttrs: {
+  version = "1.9.1";
+  pname = "orca-slicer";
 
-    meta = with lib; {
-      description = "G-code generator for 3D printers (Bambu, Prusa, Voron, VzBot, RatRig, Creality, etc";
-      homepage = "https://github.com/SoftFever/OrcaSlicer";
-      license = licenses.agpl3Only;
-      maintainers = with maintainers; [ zhaofengli ovlach pinpox ];
-      mainProgram = "orca-slicer";
-      platforms = platforms.linux;
-    };
-  });
-in
-orca-slicer
+  # Don't inherit patches from bambu-studio
+  patches = [
+    ./0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch
+  ];
+
+  src = fetchFromGitHub {
+    owner = "SoftFever";
+    repo = "OrcaSlicer";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-+JYUpyEr3xraJEb1wDkyle+jAQiNE+AMUTT1fhh4Clw=";
+  };
+
+  meta = with lib; {
+    description = "G-code generator for 3D printers (Bambu, Prusa, Voron, VzBot, RatRig, Creality, etc";
+    homepage = "https://github.com/SoftFever/OrcaSlicer";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ zhaofengli ovlach pinpox ];
+    mainProgram = "orca-slicer";
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/misc/bemenu/default.nix b/nixpkgs/pkgs/applications/misc/bemenu/default.nix
index c5e082d79654..5fac61399127 100644
--- a/nixpkgs/pkgs/applications/misc/bemenu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bemenu/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bemenu";
-  version = "0.6.19";
+  version = "0.6.21";
 
   src = fetchFromGitHub {
     owner = "Cloudef";
     repo = finalAttrs.pname;
     rev = finalAttrs.version;
-    hash = "sha256-k7xpMZUANacW/Qw7PSt+6XMPshSkmTHh/OGQlu7nmKY=";
+    hash = "sha256-E/5wN7HpdBt//jFe9yAB8fuHKiFJ7D1UAJEvG8KBJ6k=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/applications/misc/bfcal/default.nix b/nixpkgs/pkgs/applications/misc/bfcal/default.nix
index 695f5bc69b0c..0f801aa2e130 100644
--- a/nixpkgs/pkgs/applications/misc/bfcal/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bfcal/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Quickly display a calendar";
+    mainProgram = "bfcal";
     homepage = "https://git.sr.ht/~bitfehler/bfcal";
     license = licenses.gpl3Plus;
     platforms = qtbase.meta.platforms;
diff --git a/nixpkgs/pkgs/applications/misc/bibletime/default.nix b/nixpkgs/pkgs/applications/misc/bibletime/default.nix
index f5b027a9b2de..f49477fae234 100644
--- a/nixpkgs/pkgs/applications/misc/bibletime/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bibletime/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "http://www.bibletime.info/";
     description = "A powerful cross platform Bible study tool";
+    mainProgram = "bibletime";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/bikeshed/default.nix b/nixpkgs/pkgs/applications/misc/bikeshed/default.nix
index f3e58b778718..21c6ac8c523d 100644
--- a/nixpkgs/pkgs/applications/misc/bikeshed/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bikeshed/default.nix
@@ -63,6 +63,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Preprocessor for anyone writing specifications that converts source files into actual specs";
+    mainProgram = "bikeshed";
     longDescription = ''
       Bikeshed is a pre-processor for spec documents, turning a source document
       (containing only the actual spec content, plus several shorthands for linking
diff --git a/nixpkgs/pkgs/applications/misc/binocle/default.nix b/nixpkgs/pkgs/applications/misc/binocle/default.nix
index 02b1b4c7b5d5..92ccc4112993 100644
--- a/nixpkgs/pkgs/applications/misc/binocle/default.nix
+++ b/nixpkgs/pkgs/applications/misc/binocle/default.nix
@@ -42,6 +42,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Graphical tool to visualize binary data";
+    mainProgram = "binocle";
     homepage = "https://github.com/sharkdp/binocle";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/applications/misc/birdtray/default.nix b/nixpkgs/pkgs/applications/misc/birdtray/default.nix
index 4865f9f29eda..cbdb165a6484 100644
--- a/nixpkgs/pkgs/applications/misc/birdtray/default.nix
+++ b/nixpkgs/pkgs/applications/misc/birdtray/default.nix
@@ -31,6 +31,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Mail system tray notification icon for Thunderbird";
+    mainProgram = "birdtray";
     homepage = "https://github.com/gyunaev/birdtray";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ Flakebi ];
diff --git a/nixpkgs/pkgs/applications/misc/bitwarden-menu/default.nix b/nixpkgs/pkgs/applications/misc/bitwarden-menu/default.nix
index d6c7faab4da5..5e067ac807d9 100644
--- a/nixpkgs/pkgs/applications/misc/bitwarden-menu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bitwarden-menu/default.nix
@@ -25,6 +25,7 @@ buildPythonApplication rec {
   meta = with lib; {
     changelog = "https://github.com/firecat53/bitwarden-menu/releases/tag/v${version}";
     description = "Dmenu/Rofi frontend for managing Bitwarden vaults. Uses the Bitwarden CLI tool to interact with the Bitwarden database.";
+    mainProgram = "bwm";
     homepage = "https://github.com/firecat53/bitwarden-menu";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/applications/misc/blender/default.nix b/nixpkgs/pkgs/applications/misc/blender/default.nix
index ebbc6cc84fef..c0fb3b336d0f 100644
--- a/nixpkgs/pkgs/applications/misc/blender/default.nix
+++ b/nixpkgs/pkgs/applications/misc/blender/default.nix
@@ -84,6 +84,7 @@
 let
   python3Packages = python310Packages;
   python3 = python3Packages.python;
+  pyPkgsOpenusd = python3Packages.openusd.override { withOsl = false; };
 
   libdecor' = libdecor.overrideAttrs (old: {
     # Blender uses private APIs, need to patch to expose them
@@ -112,6 +113,11 @@ stdenv.mkDerivation (finalAttrs: {
       url = "https://projects.blender.org/blender/blender/commit/cf4365e555a759d5b3225bce77858374cb07faad.diff";
       hash = "sha256-Nypd04yFSHYa7RBa8kNmoApqJrU4qpaOle3tkj44d4g=";
     })
+    (fetchpatch {
+      # https://projects.blender.org/blender/blender/issues/117145
+      url = "https://projects.blender.org/blender/blender/commit/eb99895c972b6c713294f68a34798aa51d36034a.patch";
+      hash = "sha256-95nG5mW408lhKJ2BppgaUwBMMeXeGyBqho6mCfB53GI=";
+    })
   ] ++ lib.optional stdenv.isDarwin ./darwin.patch;
 
   postPatch =
@@ -166,6 +172,7 @@ stdenv.mkDerivation (finalAttrs: {
       "-DWITH_PYTHON_INSTALL_REQUESTS=OFF"
       "-DWITH_SDL=OFF"
       "-DWITH_TBB=ON"
+      "-DWITH_USD=ON"
 
       # Blender supplies its own FindAlembic.cmake (incompatible with the Alembic-supplied config file)
       "-DALEMBIC_INCLUDE_DIR=${lib.getDev alembic}/include"
@@ -232,6 +239,7 @@ stdenv.mkDerivation (finalAttrs: {
       (opensubdiv.override { inherit cudaSupport; })
       potrace
       pugixml
+      pyPkgsOpenusd
       python3
       tbb
       zlib
@@ -287,6 +295,7 @@ stdenv.mkDerivation (finalAttrs: {
       ps.numpy
       ps.requests
       ps.zstandard
+      pyPkgsOpenusd
     ];
 
   blenderExecutable =
diff --git a/nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix b/nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix
index c0c76b4ef49d..3ace71b7644a 100644
--- a/nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix
+++ b/nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix
@@ -19,6 +19,7 @@ in
 
     meta = with lib; {
       description = "Configurable blue light filter";
+      mainProgram = "blucontrol";
       longDescription = ''
         This application is a blue light filter, with the main focus on configurability.
         Configuration is done in Haskell in the style of xmonad.
diff --git a/nixpkgs/pkgs/applications/misc/bluetooth_battery/default.nix b/nixpkgs/pkgs/applications/misc/bluetooth_battery/default.nix
index d9c3f5bc2a43..4158cdf8cc55 100644
--- a/nixpkgs/pkgs/applications/misc/bluetooth_battery/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bluetooth_battery/default.nix
@@ -22,6 +22,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Fetch the battery charge level of some Bluetooth headsets";
+    mainProgram = "bluetooth_battery";
     homepage = "https://github.com/TheWeirdDev/Bluetooth_Headset_Battery_Level";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/bottles/default.nix b/nixpkgs/pkgs/applications/misc/bottles/default.nix
index eb0c6a841425..434ffd76852e 100644
--- a/nixpkgs/pkgs/applications/misc/bottles/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bottles/default.nix
@@ -28,13 +28,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "bottles-unwrapped";
-  version = "51.9";
+  version = "51.11";
 
   src = fetchFromGitHub {
     owner = "bottlesdevs";
     repo = "bottles";
     rev = version;
-    sha256 = "sha256-iZUszwVcbVn6Xsqou6crSp9gJBRmm5vEqxS87h/s3PQ=";
+    sha256 = "sha256-uS3xmTu+LrVFX93bYcJvYjl6179d3IjpxLKrOXn8Z8Y=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/misc/break-time/default.nix b/nixpkgs/pkgs/applications/misc/break-time/default.nix
index e72f08fd381e..a4bbf4d4c104 100644
--- a/nixpkgs/pkgs/applications/misc/break-time/default.nix
+++ b/nixpkgs/pkgs/applications/misc/break-time/default.nix
@@ -43,6 +43,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Break timer that forces you to take a break";
+    mainProgram = "break-time";
     homepage    = "https://github.com/cdepillabout/break-time";
     license     = with licenses; [ mit ];
     maintainers = with maintainers; [ cdepillabout ];
diff --git a/nixpkgs/pkgs/applications/misc/brewtarget/default.nix b/nixpkgs/pkgs/applications/misc/brewtarget/default.nix
index 13a5681ebd37..d46cf7e0d5dd 100644
--- a/nixpkgs/pkgs/applications/misc/brewtarget/default.nix
+++ b/nixpkgs/pkgs/applications/misc/brewtarget/default.nix
@@ -33,6 +33,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Open source beer recipe creation tool";
+    mainProgram = "brewtarget";
     homepage = "http://www.brewtarget.org/";
     license = licenses.gpl3;
     maintainers = [ maintainers.mmahut ];
diff --git a/nixpkgs/pkgs/applications/misc/buku/default.nix b/nixpkgs/pkgs/applications/misc/buku/default.nix
index ddf2b9f528da..4e2a5e29999c 100644
--- a/nixpkgs/pkgs/applications/misc/buku/default.nix
+++ b/nixpkgs/pkgs/applications/misc/buku/default.nix
@@ -78,6 +78,7 @@ with python3.pkgs; buildPythonApplication rec {
 
   meta = with lib; {
     description = "Private cmdline bookmark manager";
+    mainProgram = "buku";
     homepage = "https://github.com/jarun/Buku";
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/caerbannog/default.nix b/nixpkgs/pkgs/applications/misc/caerbannog/default.nix
index 2825b371e06d..0d21c7e16570 100644
--- a/nixpkgs/pkgs/applications/misc/caerbannog/default.nix
+++ b/nixpkgs/pkgs/applications/misc/caerbannog/default.nix
@@ -52,6 +52,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Mobile-friendly Gtk frontend for password-store";
+    mainProgram = "caerbannog";
     homepage = "https://sr.ht/~craftyguy/caerbannog/";
     changelog = "https://git.sr.ht/~craftyguy/caerbannog/refs/${version}";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/misc/calcoo/default.nix b/nixpkgs/pkgs/applications/misc/calcoo/default.nix
index 5f90b4bb2363..462b56d50ce0 100644
--- a/nixpkgs/pkgs/applications/misc/calcoo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/calcoo/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchzip
 , ant
-, canonicalize-jars-hook
+, stripJavaArchivesHook
 , jdk
 , makeWrapper
 }:
@@ -18,7 +18,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [
     ant
-    canonicalize-jars-hook
+    stripJavaArchivesHook
     jdk
     makeWrapper
   ];
diff --git a/nixpkgs/pkgs/applications/misc/calcure/default.nix b/nixpkgs/pkgs/applications/misc/calcure/default.nix
index dcd2c62d2185..a9fd65a4d99d 100644
--- a/nixpkgs/pkgs/applications/misc/calcure/default.nix
+++ b/nixpkgs/pkgs/applications/misc/calcure/default.nix
@@ -32,6 +32,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Modern TUI calendar and task manager with minimal and customizable UI";
+    mainProgram = "calcure";
     homepage = "https://github.com/anufrievroman/calcure";
     changelog = "https://github.com/anufrievroman/calcure/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/misc/calibre/default.nix b/nixpkgs/pkgs/applications/misc/calibre/default.nix
index 6003212d16b5..da1e263107b3 100644
--- a/nixpkgs/pkgs/applications/misc/calibre/default.nix
+++ b/nixpkgs/pkgs/applications/misc/calibre/default.nix
@@ -32,11 +32,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "calibre";
-  version = "7.6.0";
+  version = "7.7.0";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${finalAttrs.version}/calibre-${finalAttrs.version}.tar.xz";
-    hash = "sha256-fD2kTwH692x6Nm93NrUQvmbcXiX9hHBpo4wvUvBqLAM=";
+    hash = "sha256-+kz3Fz1RDQ+ROgv7y0WNAWvIESKvHKID8UnSeCh8yA4=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/misc/cambrinary/default.nix b/nixpkgs/pkgs/applications/misc/cambrinary/default.nix
index 1fecfe1c17cb..15bb60d4c3f7 100644
--- a/nixpkgs/pkgs/applications/misc/cambrinary/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cambrinary/default.nix
@@ -31,6 +31,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Cambridge dictionary in a terminal";
+    mainProgram = "cambrinary";
     homepage = "https://github.com/xueyuanl/cambrinary";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/candle/default.nix b/nixpkgs/pkgs/applications/misc/candle/default.nix
index 3f9f2ec678b5..7b62e50e9006 100644
--- a/nixpkgs/pkgs/applications/misc/candle/default.nix
+++ b/nixpkgs/pkgs/applications/misc/candle/default.nix
@@ -25,6 +25,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "GRBL controller application with G-Code visualizer written in Qt";
+    mainProgram = "candle";
     homepage = "https://github.com/Denvi/Candle";
     license = licenses.gpl3;
     maintainers = with maintainers; [ matti-kariluoma ];
diff --git a/nixpkgs/pkgs/applications/misc/cartridges/default.nix b/nixpkgs/pkgs/applications/misc/cartridges/default.nix
index d90be2bc101c..008004aa3c8e 100644
--- a/nixpkgs/pkgs/applications/misc/cartridges/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cartridges/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A GTK4 + Libadwaita game launcher";
+    mainProgram = "cartridges";
     longDescription = ''
       A simple game launcher for all of your games.
       It has support for importing games from Steam, Lutris, Heroic
diff --git a/nixpkgs/pkgs/applications/misc/cask-server/default.nix b/nixpkgs/pkgs/applications/misc/cask-server/default.nix
index 603060ec5241..462696348839 100644
--- a/nixpkgs/pkgs/applications/misc/cask-server/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cask-server/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Public server and API to interface with Cask features";
+    mainProgram = "CaskServer";
     homepage = "https://github.com/Nitrux/cask-server";
     license = with licenses; [
       bsd2
diff --git a/nixpkgs/pkgs/applications/misc/cbatticon/default.nix b/nixpkgs/pkgs/applications/misc/cbatticon/default.nix
index 4d189d1c37a4..665957ca0ea1 100644
--- a/nixpkgs/pkgs/applications/misc/cbatticon/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cbatticon/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Lightweight and fast battery icon that sits in the system tray";
+    mainProgram = "cbatticon";
     homepage = "https://github.com/valr/cbatticon";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/chatblade/default.nix b/nixpkgs/pkgs/applications/misc/chatblade/default.nix
index a285c88a36f9..9ec41576c1a8 100644
--- a/nixpkgs/pkgs/applications/misc/chatblade/default.nix
+++ b/nixpkgs/pkgs/applications/misc/chatblade/default.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "chatblade";
-  version = "0.3.4";
+  version = "0.4.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ODC8n4JS7IOfAJMn7CPzJcBNMhfD5A3eEqVUK1e4mZY=";
+    sha256 = "sha256-AjE+1MkSkZOtEUPKEPBKQ3n+aOB8cwsorBpL5skNskU=";
   };
 
   doCheck = false; # there are no tests
@@ -41,6 +41,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/npiv/chatblade/";
     description = "A CLI Swiss Army Knife for ChatGPT";
+    mainProgram = "chatblade";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ deejayem ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/cherrytree/default.nix b/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
index 11944a21e0ef..74623b544af1 100644
--- a/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An hierarchical note taking application";
+    mainProgram = "cherrytree";
     longDescription = ''
       Cherrytree is an hierarchical note taking application, featuring rich
       text, syntax highlighting and powerful search capabilities. It organizes
diff --git a/nixpkgs/pkgs/applications/misc/chewing-editor/default.nix b/nixpkgs/pkgs/applications/misc/chewing-editor/default.nix
index 13ee17999fe1..9cf163055a4b 100644
--- a/nixpkgs/pkgs/applications/misc/chewing-editor/default.nix
+++ b/nixpkgs/pkgs/applications/misc/chewing-editor/default.nix
@@ -19,6 +19,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Cross platform chewing user phrase editor";
+    mainProgram = "chewing-editor";
     longDescription = ''
       chewing-editor is a cross platform chewing user phrase editor. It provides a easy way to manage user phrase. With it, user can customize their user phrase to increase input performance.
     '';
diff --git a/nixpkgs/pkgs/applications/misc/clight/clightd.nix b/nixpkgs/pkgs/applications/misc/clight/clightd.nix
index 7e6b84913a7a..b6958d86bbd0 100644
--- a/nixpkgs/pkgs/applications/misc/clight/clightd.nix
+++ b/nixpkgs/pkgs/applications/misc/clight/clightd.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Linux bus interface that changes screen brightness/temperature";
+    mainProgram = "clightd";
     homepage = "https://github.com/FedeDP/Clightd";
     platforms = platforms.linux;
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/applications/misc/clight/default.nix b/nixpkgs/pkgs/applications/misc/clight/default.nix
index 3adff5c62887..3b0189ddb5c1 100644
--- a/nixpkgs/pkgs/applications/misc/clight/default.nix
+++ b/nixpkgs/pkgs/applications/misc/clight/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clight";
-  version = "4.10";
+  version = "4.11";
 
   src = fetchFromGitHub {
     owner = "FedeDP";
     repo = "Clight";
     rev = version;
-    sha256 = "sha256-IAoz4f4XrX8bgesWL4yLK6m5F+c75WNIMFgKBj+W61Q=";
+    sha256 = "sha256-Fu38HRP83Yn2jsq9xnCWOXNlV/0hJKD1/cOOp3EV45Q=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/confclerk/default.nix b/nixpkgs/pkgs/applications/misc/confclerk/default.nix
index 84095c416541..7646cb9ae87b 100644
--- a/nixpkgs/pkgs/applications/misc/confclerk/default.nix
+++ b/nixpkgs/pkgs/applications/misc/confclerk/default.nix
@@ -19,6 +19,7 @@ mkDerivation rec {
 
   meta = {
     description = "Offline conference schedule viewer";
+    mainProgram = "confclerk";
     homepage = "http://www.toastfreeware.priv.at/confclerk";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ ehmry ];
diff --git a/nixpkgs/pkgs/applications/misc/coolreader/default.nix b/nixpkgs/pkgs/applications/misc/coolreader/default.nix
index a1a63992349e..d75cdd4843fa 100644
--- a/nixpkgs/pkgs/applications/misc/coolreader/default.nix
+++ b/nixpkgs/pkgs/applications/misc/coolreader/default.nix
@@ -20,6 +20,7 @@ mkDerivation rec {
     broken = stdenv.isDarwin;
     homepage = "https://github.com/buggins/coolreader";
     description = "Cross platform open source e-book reader";
+    mainProgram = "cr3";
     license = licenses.gpl2Plus; # see https://github.com/buggins/coolreader/issues/80
     maintainers = with maintainers; [ gebner ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/misc/copyq/default.nix b/nixpkgs/pkgs/applications/misc/copyq/default.nix
index dacb6c3af93d..79472e3840a4 100644
--- a/nixpkgs/pkgs/applications/misc/copyq/default.nix
+++ b/nixpkgs/pkgs/applications/misc/copyq/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch2
 , cmake
 , ninja
 , extra-cmake-modules
@@ -14,32 +13,24 @@
 , qtwayland
 , wayland
 , wrapQtAppsHook
+, kdePackages
 }:
 
 stdenv.mkDerivation rec {
   pname = "CopyQ";
-  version = "7.1.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "hluk";
     repo = "CopyQ";
     rev = "v${version}";
-    hash = "sha256-aAmpFKIIFZLPWUaOcf4V1d/wVQ7xRcnXFsqFjROsabg=";
+    hash = "sha256-Ewunl4k9f0aDjilhKAsVxwR3S6uSZ1xwtu6ccNsNOgk=";
   };
 
-  patches = [
-    # itemfakevim: fix build with qt 6.6.0
-    # https://github.com/hluk/CopyQ/pull/2508
-    (fetchpatch2 {
-      url = "https://github.com/hluk/CopyQ/commit/a20bfff0d78296b334ff8cabb047ab5d842b7311.patch";
-      hash = "sha256-F/6cQ8+O1Ttd4EFFxQas5ES6U+qxWdmYqUWRQLsVMa4=";
-    })
-  ];
-
   nativeBuildInputs = [
     cmake
     ninja
-    extra-cmake-modules
+    kdePackages.extra-cmake-modules
     wrapQtAppsHook
   ];
 
@@ -52,6 +43,9 @@ stdenv.mkDerivation rec {
     libXtst
     qtwayland
     wayland
+    kdePackages.kconfig
+    kdePackages.kstatusnotifieritem
+    kdePackages.knotifications
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/misc/corectrl/default.nix b/nixpkgs/pkgs/applications/misc/corectrl/default.nix
index 2b17ea756878..a7397da8d7cf 100644
--- a/nixpkgs/pkgs/applications/misc/corectrl/default.nix
+++ b/nixpkgs/pkgs/applications/misc/corectrl/default.nix
@@ -9,6 +9,8 @@
 , glxinfo
 , polkit
 , procps
+, pugixml
+, spdlog
 , util-linux
 , vulkan-tools
 , qtbase
@@ -23,13 +25,13 @@
 
 stdenv.mkDerivation rec{
   pname = "corectrl";
-  version = "1.3.10";
+  version = "1.4.0";
 
   src = fetchFromGitLab {
     owner = "corectrl";
     repo = "corectrl";
     rev = "v${version}";
-    sha256 = "sha256-fN4dX0Ya2DvPEkuwtKIw1zT+JEbC2zyJKtcGwLVdAUs=";
+    sha256 = "sha256-zTH7iSPN7VIhXvWFndOulvGnfUZ+uGWnW53WcnSW+e4=";
   };
   patches = [
     ./polkit-dir.patch
@@ -47,6 +49,8 @@ stdenv.mkDerivation rec{
     glxinfo
     polkit
     procps
+    pugixml
+    spdlog
     util-linux
     vulkan-tools
     qtbase
diff --git a/nixpkgs/pkgs/applications/misc/cotp/default.nix b/nixpkgs/pkgs/applications/misc/cotp/default.nix
index 824b4353b35f..10ec80724739 100644
--- a/nixpkgs/pkgs/applications/misc/cotp/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cotp/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cotp";
-  version = "1.4.5";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "replydev";
     repo = "cotp";
     rev = "v${version}";
-    hash = "sha256-q0SI/y4pSNoU+4aQzpkUNioqrxmLxiA2GD1pmyLUISw=";
+    hash = "sha256-Zs/RUpyu8GG4koprC+8aSzpPUSLc19p/XinY5fR5Z4A=";
   };
 
-  cargoHash = "sha256-pwhihmrFzb7y4ztXnzJVeMbo5VBoyjJTEDh5ogECLrA=";
+  cargoHash = "sha256-jYKu1sAzPUfv8gQj3V4zxarRj3XUhyD/5n1WqMuLF/g=";
 
   buildInputs = lib.optionals stdenv.isLinux [ libxcb ]
     ++ lib.optionals stdenv.isDarwin [ AppKit ];
diff --git a/nixpkgs/pkgs/applications/misc/coursera-dl/default.nix b/nixpkgs/pkgs/applications/misc/coursera-dl/default.nix
index f95633f0c896..67848ea9354e 100644
--- a/nixpkgs/pkgs/applications/misc/coursera-dl/default.nix
+++ b/nixpkgs/pkgs/applications/misc/coursera-dl/default.nix
@@ -75,6 +75,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "CLI for downloading Coursera.org videos and naming them";
+    mainProgram = "coursera-dl";
     homepage = "https://github.com/coursera-dl/coursera-dl";
     changelog = "https://github.com/coursera-dl/coursera-dl/blob/0.11.5/CHANGELOG.md";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/applications/misc/cubiomes-viewer/default.nix b/nixpkgs/pkgs/applications/misc/cubiomes-viewer/default.nix
index dd4486f9b988..fd07542b7fa9 100644
--- a/nixpkgs/pkgs/applications/misc/cubiomes-viewer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubiomes-viewer/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
     broken = stdenv.isDarwin;
     homepage = "https://github.com/Cubitect/cubiomes-viewer";
     description = "A graphical Minecraft seed finder and map viewer";
+    mainProgram = "cubiomes-viewer";
     longDescription = ''
       Cubiomes Viewer provides a graphical interface for the efficient and flexible seed-finding
       utilities provided by cubiomes and a map viewer for the Minecraft biomes and structure generation.
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/coreaction/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/coreaction/default.nix
index b21f001a0a80..818e9da4494e 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/coreaction/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/coreaction/default.nix
@@ -25,6 +25,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A side bar for showing widgets from the C Suite";
+    mainProgram = "coreaction";
     homepage = "https://gitlab.com/cubocore/coreapps/coreaction";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/corearchiver/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/corearchiver/default.nix
index 590f41a764d0..691917e28da9 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/corearchiver/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/corearchiver/default.nix
@@ -26,6 +26,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Archiver from the C Suite to create and extract archives";
+    mainProgram = "corearchiver";
     homepage = "https://gitlab.com/cubocore/coreapps/corearchiver";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/corefm/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/corefm/default.nix
index c618ee100a28..6bbd8ed8f785 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/corefm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/corefm/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A lightwight filemanager from the C Suite";
+    mainProgram = "corefm";
     homepage = "https://gitlab.com/cubocore/coreapps/corefm";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/coregarage/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/coregarage/default.nix
index 4c332c4a9a2b..8a7050e5538a 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/coregarage/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/coregarage/default.nix
@@ -26,6 +26,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A settings manager for the C Suite";
+    mainProgram = "coregarage";
     homepage = "https://gitlab.com/cubocore/coreapps/coregarage";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/corehunt/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/corehunt/default.nix
index 52c39752afae..d802a6f448af 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/corehunt/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/corehunt/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A file finder utility from the C Suite";
+    mainProgram = "corehunt";
     homepage = "https://gitlab.com/cubocore/coreapps/corehunt";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/coreimage/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/coreimage/default.nix
index 8ba09d6c9416..cbb5fba861fb 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/coreimage/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/coreimage/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "An image viewer from the C Suite";
+    mainProgram = "coreimage";
     homepage = "https://gitlab.com/cubocore/coreapps/coreimage";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix
index 69dbcd33a85f..6093c1176b80 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/coreinfo/default.nix
@@ -27,6 +27,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A file information tool from the C Suite";
+    mainProgram = "coreinfo";
     homepage = "https://gitlab.com/cubocore/coreapps/coreinfo";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix
index 734b183c844d..dcd05b4bf77f 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/corekeyboard/default.nix
@@ -27,6 +27,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A virtual keyboard for X11 from the C Suite";
+    mainProgram = "corekeyboard";
     homepage = "https://gitlab.com/cubocore/coreapps/corekeyboard";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/corepad/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/corepad/default.nix
index 4b27137980ea..8db13988b0b0 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/corepad/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/corepad/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A document editor from the C Suite";
+    mainProgram = "corepad";
     homepage = "https://gitlab.com/cubocore/coreapps/corepad";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/corepaint/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/corepaint/default.nix
index 958532bb6fce..345a9b26e666 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/corepaint/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/corepaint/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A paint app from the C Suite";
+    mainProgram = "corepaint";
     homepage = "https://gitlab.com/cubocore/coreapps/corepaint";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/corepdf/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/corepdf/default.nix
index b7679827f321..242422fd8a3f 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/corepdf/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/corepdf/default.nix
@@ -26,6 +26,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A PDF viewer from the C Suite";
+    mainProgram = "corepdf";
     homepage = "https://gitlab.com/cubocore/coreapps/corepdf";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/corepins/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/corepins/default.nix
index e1274c6d6dfe..cb31415ef5d0 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/corepins/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/corepins/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A bookmarking app from the C Suite";
+    mainProgram = "corepins";
     homepage = "https://gitlab.com/cubocore/coreapps/corepins";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix
index 7d87fc6f4526..6d48c65fc95f 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/corerenamer/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A batch file renamer from the C Suite";
+    mainProgram = "corerenamer";
     homepage = "https://gitlab.com/cubocore/coreapps/corerenamer";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/coreshot/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/coreshot/default.nix
index 183765f63511..3603becfc1e3 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/coreshot/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/coreshot/default.nix
@@ -25,6 +25,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A screen capture utility from the C Suite";
+    mainProgram = "coreshot";
     homepage = "https://gitlab.com/cubocore/coreapps/coreshot";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/corestats/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/corestats/default.nix
index 8dd6f1089d45..e01691b9f618 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/corestats/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/corestats/default.nix
@@ -25,6 +25,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A system resource viewer from the C Suite";
+    mainProgram = "corestats";
     homepage = "https://gitlab.com/cubocore/coreapps/corestats";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/corestuff/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/corestuff/default.nix
index a2946485ab56..933a09bbd188 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/corestuff/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/corestuff/default.nix
@@ -32,6 +32,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "An activity viewer from the C Suite";
+    mainProgram = "corestuff";
     homepage = "https://gitlab.com/cubocore/coreapps/corestuff";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix
index 30570f5e91e5..c4a8ea5c90e9 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/coreterminal/default.nix
@@ -36,6 +36,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A terminal emulator from the C Suite";
+    mainProgram = "coreterminal";
     homepage = "https://gitlab.com/cubocore/coreapps/coreterminal";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/coretime/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/coretime/default.nix
index c2a717453e78..b8ac4c39a1a3 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/coretime/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/coretime/default.nix
@@ -25,6 +25,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A time related task manager from the C Suite";
+    mainProgram = "coretime";
     homepage = "https://gitlab.com/cubocore/coreapps/coretime";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/coretoppings/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/coretoppings/default.nix
index 920850cc6021..1296c8f57564 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/coretoppings/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/coretoppings/default.nix
@@ -79,6 +79,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Additional features,plugins etc for CuboCore Application Suite";
+    mainProgram = "shareIT";
     homepage = "https://gitlab.com/cubocore/coreapps/coretoppings";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cubocore-packages/coreuniverse/default.nix b/nixpkgs/pkgs/applications/misc/cubocore-packages/coreuniverse/default.nix
index 8eb056f7772c..df84578090f8 100644
--- a/nixpkgs/pkgs/applications/misc/cubocore-packages/coreuniverse/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cubocore-packages/coreuniverse/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Shows information about apps from the C Suite";
+    mainProgram = "coreuniverse";
     homepage = "https://gitlab.com/cubocore/coreapps/coreuniverse";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/applications/misc/cum/default.nix b/nixpkgs/pkgs/applications/misc/cum/default.nix
index d49987c82858..b06f77787ac0 100644
--- a/nixpkgs/pkgs/applications/misc/cum/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cum/default.nix
@@ -28,6 +28,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "comic updater, mangafied";
+    mainProgram = "cum";
     homepage = "https://github.com/Hamuko/cum";
     license = licenses.asl20;
     maintainers = with maintainers; [ tadeokondrak ];
diff --git a/nixpkgs/pkgs/applications/misc/cura/default.nix b/nixpkgs/pkgs/applications/misc/cura/default.nix
index 31202a4be6e3..a385d31ec74b 100644
--- a/nixpkgs/pkgs/applications/misc/cura/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cura/default.nix
@@ -57,6 +57,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "3D printer / slicing GUI built on top of the Uranium framework";
+    mainProgram = "cura";
     homepage = "https://github.com/Ultimaker/Cura";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/cura/plugins.nix b/nixpkgs/pkgs/applications/misc/cura/plugins.nix
index 95d3a2aa9333..12f7920d3bf7 100644
--- a/nixpkgs/pkgs/applications/misc/cura/plugins.nix
+++ b/nixpkgs/pkgs/applications/misc/cura/plugins.nix
@@ -27,7 +27,7 @@ let
       meta = with lib; {
         description = "Enables printing directly to OctoPrint and monitoring the process";
         homepage = "https://github.com/fieldOfView/Cura-OctoPrintPlugin";
-        license = licenses.agpl3;
+        license = licenses.agpl3Plus;
         maintainers = with maintainers; [ gebner ];
       };
     };
diff --git a/nixpkgs/pkgs/applications/misc/curaengine/stable.nix b/nixpkgs/pkgs/applications/misc/curaengine/stable.nix
index 6bddfabfb5bb..0de7e18f172d 100644
--- a/nixpkgs/pkgs/applications/misc/curaengine/stable.nix
+++ b/nixpkgs/pkgs/applications/misc/curaengine/stable.nix
@@ -22,8 +22,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Engine for processing 3D models into 3D printing instructions";
+    mainProgram = "CuraEngine";
     homepage = "https://github.com/Ultimaker/CuraEngine";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/dasel/default.nix b/nixpkgs/pkgs/applications/misc/dasel/default.nix
index 75ffbb9080bd..56bd8bce5bc0 100644
--- a/nixpkgs/pkgs/applications/misc/dasel/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dasel/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "dasel";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "TomWright";
     repo = "dasel";
     rev = "v${version}";
-    hash = "sha256-4SINZXjTILJDmjv6ubuAhBzBmrXY0gJ0huNM3Y0O7Go=";
+    hash = "sha256-N3WeU+8KJwYKvuN4I1ZNEtIgLTmh/XgnhwATwV7dsvY=";
   };
 
   vendorHash = "sha256-G9IdTMF5Lnwq38rdJtuvUjD4RBaSmCYs3g+ETz29Mec=";
diff --git a/nixpkgs/pkgs/applications/misc/ddcui/default.nix b/nixpkgs/pkgs/applications/misc/ddcui/default.nix
index 520c49d2159b..045e37cef160 100644
--- a/nixpkgs/pkgs/applications/misc/ddcui/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ddcui/default.nix
@@ -34,6 +34,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical user interface for ddcutil - control monitor settings";
+    mainProgram = "ddcui";
     homepage = "https://www.ddcutil.com/ddcui_main/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ nh2 ];
diff --git a/nixpkgs/pkgs/applications/misc/deckmaster/default.nix b/nixpkgs/pkgs/applications/misc/deckmaster/default.nix
index 773b1b36e514..f977fd1980bb 100644
--- a/nixpkgs/pkgs/applications/misc/deckmaster/default.nix
+++ b/nixpkgs/pkgs/applications/misc/deckmaster/default.nix
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An application to control your Elgato Stream Deck on Linux";
+    mainProgram = "deckmaster";
     homepage = "https://github.com/muesli/deckmaster";
     changelog = "https://github.com/muesli/deckmaster/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/misc/dict-cc-py/default.nix b/nixpkgs/pkgs/applications/misc/dict-cc-py/default.nix
index cbacf1191275..9d4c40084f7f 100644
--- a/nixpkgs/pkgs/applications/misc/dict-cc-py/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dict-cc-py/default.nix
@@ -25,6 +25,7 @@ python3.pkgs.buildPythonPackage rec {
 
   meta = with lib; {
     description = "Unofficial command line client for dict.cc";
+    mainProgram = "dict.cc.py";
     homepage = "https://github.com/rbaron/dict.cc.py";
     license = with licenses; [ cc0 ];
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/misc/diffpdf/default.nix b/nixpkgs/pkgs/applications/misc/diffpdf/default.nix
index 370f41b1b831..4792003b792e 100644
--- a/nixpkgs/pkgs/applications/misc/diffpdf/default.nix
+++ b/nixpkgs/pkgs/applications/misc/diffpdf/default.nix
@@ -51,6 +51,7 @@ mkDerivation rec {
   meta = {
     homepage = "http://www.qtrac.eu/diffpdfc.html";
     description = "Tool for diffing pdf files visually or textually";
+    mainProgram = "diffpdf";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ ];
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/applications/misc/diffuse/default.nix b/nixpkgs/pkgs/applications/misc/diffuse/default.nix
index 75e5f34174bc..0f5cf3c0adc1 100644
--- a/nixpkgs/pkgs/applications/misc/diffuse/default.nix
+++ b/nixpkgs/pkgs/applications/misc/diffuse/default.nix
@@ -71,6 +71,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/MightyCreak/diffuse";
     description = "Graphical tool for merging and comparing text files";
+    mainProgram = "diffuse";
     license = licenses.gpl2;
     maintainers = with maintainers; [ k3a ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/ding/default.nix b/nixpkgs/pkgs/applications/misc/ding/default.nix
index 3c193d3f569a..d0791b492f09 100644
--- a/nixpkgs/pkgs/applications/misc/ding/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ding/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple and fast dictionary lookup tool";
+    mainProgram = "ding";
     homepage = "https://www-user.tu-chemnitz.de/~fri/ding/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux; # homepage says: unix-like except darwin
diff --git a/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix b/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix
index d5208ea7b02d..75c9302e0791 100644
--- a/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dmensamenu/default.nix
@@ -28,6 +28,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/dotlambda/dmensamenu";
     description = "Print German canteen menus using dmenu and OpenMensa";
+    mainProgram = "dmensamenu";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/dmenu-rs/Cargo.lock b/nixpkgs/pkgs/applications/misc/dmenu-rs/Cargo.lock
index f3da4c99885d..33e74c4e7ddf 100644
--- a/nixpkgs/pkgs/applications/misc/dmenu-rs/Cargo.lock
+++ b/nixpkgs/pkgs/applications/misc/dmenu-rs/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.20"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
@@ -22,39 +22,47 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.2.6"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "342258dd14006105c2b75ab1bd7543a03bdf0cfc94383303ac212a04939dff6f"
+checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
 dependencies = [
  "anstyle",
  "anstyle-parse",
+ "anstyle-query",
  "anstyle-wincon",
- "concolor-override",
- "concolor-query",
- "is-terminal",
+ "colorchoice",
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle"
-version = "0.3.5"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2"
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.1.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7d1bb534e9efed14f3e5f44e7dd1a4f709384023a4165199a4241e18dff0116"
+checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
+name = "anstyle-query"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+dependencies = [
+ "windows-sys",
+]
+
+[[package]]
 name = "anstyle-wincon"
-version = "0.2.0"
+version = "3.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3127af6145b149f3287bb9a0d10ad9c5692dba8c53ad48285e5bec4063834fa"
+checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
 dependencies = [
  "anstyle",
  "windows-sys",
@@ -77,7 +85,7 @@ version = "0.64.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "cexpr",
  "clang-sys",
  "lazy_static",
@@ -100,6 +108,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
+name = "bitflags"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+
+[[package]]
 name = "block"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -107,9 +121,12 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
 
 [[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "cexpr"
@@ -128,9 +145,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "clang-sys"
-version = "1.6.0"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ed9a53e5d4d9c573ae844bfac6872b159cb1d1585a83b29e7a64b7eef7332a"
+checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
 dependencies = [
  "glob",
  "libc",
@@ -145,7 +162,7 @@ checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
 dependencies = [
  "ansi_term",
  "atty",
- "bitflags",
+ "bitflags 1.3.2",
  "strsim 0.8.0",
  "textwrap",
  "unicode-width",
@@ -155,45 +172,43 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.2.0"
+version = "4.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6efb5f0a41b5ef5b50c5da28c07609c20091df0c1fc33d418fa2a7e693c2b624"
+checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64"
 dependencies = [
  "clap_builder",
  "clap_derive",
- "once_cell",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.2.0"
+version = "4.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "671fcaa5debda4b9a84aa7fde49c907c8986c0e6ab927e04217c9cb74e7c8bc9"
+checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc"
 dependencies = [
  "anstream",
  "anstyle",
- "bitflags",
  "clap_lex",
  "strsim 0.10.0",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.2.0"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.11",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.4.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 
 [[package]]
 name = "clipboard"
@@ -227,19 +242,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "concolor-override"
+name = "colorchoice"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a855d4a1978dc52fb0536a04d384c2c0c1aa273597f08b77c8c4d3b2eec6037f"
-
-[[package]]
-name = "concolor-query"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88d11d52c3d7ca2e6d0040212be9e4dbbcd78b6447f535b6b561f449427944cf"
-dependencies = [
- "windows-sys",
-]
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
 name = "config"
@@ -255,9 +261,9 @@ dependencies = [
 
 [[package]]
 name = "csv"
-version = "1.2.1"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b015497079b9a9d69c02ad25de6c0a6edef051ea6360a327d0bd05802ef64ad"
+checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
 dependencies = [
  "csv-core",
  "itoa",
@@ -267,9 +273,9 @@ dependencies = [
 
 [[package]]
 name = "csv-core"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
+checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
 dependencies = [
  "memchr",
 ]
@@ -319,9 +325,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "encode_unicode"
@@ -331,23 +337,12 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
 
 [[package]]
 name = "errno"
-version = "0.2.8"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8"
 dependencies = [
- "errno-dragonfly",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
  "libc",
+ "windows-sys",
 ]
 
 [[package]]
@@ -373,9 +368,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.8"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
 dependencies = [
  "cfg-if",
  "libc",
@@ -413,29 +408,26 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.1"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
-name = "io-lifetimes"
-version = "1.0.9"
+name = "home"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb"
+checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
 dependencies = [
- "hermit-abi 0.3.1",
- "libc",
  "windows-sys",
 ]
 
 [[package]]
 name = "is-terminal"
-version = "0.4.5"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
 dependencies = [
- "hermit-abi 0.3.1",
- "io-lifetimes",
+ "hermit-abi 0.3.3",
  "rustix",
  "windows-sys",
 ]
@@ -460,9 +452,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.6"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
 name = "lazy_static"
@@ -478,9 +470,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "libc"
-version = "0.2.140"
+version = "0.2.150"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
 
 [[package]]
 name = "libloading"
@@ -493,6 +485,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall",
+]
+
+[[package]]
 name = "linked-hash-map"
 version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -500,18 +503,15 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.1.4"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
 
 [[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "malloc_buf"
@@ -531,9 +531,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "minimal-lexical"
@@ -582,9 +582,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.17.1"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 
 [[package]]
 name = "overrider"
@@ -615,9 +615,9 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.26"
+version = "0.3.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
 
 [[package]]
 name = "pledge"
@@ -644,9 +644,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.54"
+version = "1.0.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e472a104799c74b514a57226160104aa483546de37e839ec50e3c2e41dd87534"
+checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
 dependencies = [
  "unicode-ident",
 ]
@@ -663,38 +663,50 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.26"
+version = "1.0.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "redox_users"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
  "getrandom",
- "redox_syscall",
+ "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.7.3"
+version = "1.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -703,9 +715,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.29"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "rustc-hash"
@@ -734,13 +746,12 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.36.11"
+version = "0.38.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e"
+checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e"
 dependencies = [
- "bitflags",
+ "bitflags 2.4.1",
  "errno",
- "io-lifetimes",
  "libc",
  "linux-raw-sys",
  "windows-sys",
@@ -748,15 +759,15 @@ dependencies = [
 
 [[package]]
 name = "rustversion"
-version = "1.0.12"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.13"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
 
 [[package]]
 name = "semver"
@@ -775,9 +786,23 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.159"
+version = "1.0.192"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065"
+checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.192"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.39",
+]
 
 [[package]]
 name = "servo-fontconfig"
@@ -802,15 +827,15 @@ dependencies = [
 
 [[package]]
 name = "shlex"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
 
 [[package]]
 name = "stest"
 version = "0.0.0"
 dependencies = [
- "clap 4.2.0",
+ "clap 4.4.8",
 ]
 
 [[package]]
@@ -838,9 +863,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.11"
+version = "2.0.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21e3787bb71465627110e7d87ed4faaa36c1f61042ee67badb9e2ef173accc40"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -860,9 +885,9 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.2.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
 dependencies = [
  "winapi-util",
 ]
@@ -878,29 +903,29 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.40"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.50"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.11",
+ "syn 2.0.39",
 ]
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-segmentation"
@@ -910,9 +935,9 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "utf8parse"
@@ -934,13 +959,14 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "which"
-version = "4.4.0"
+version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
 dependencies = [
  "either",
- "libc",
+ "home",
  "once_cell",
+ "rustix",
 ]
 
 [[package]]
@@ -961,9 +987,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -976,18 +1002,18 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows-sys"
-version = "0.45.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
  "windows-targets",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
@@ -1000,45 +1026,45 @@ dependencies = [
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.2"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "x11"
diff --git a/nixpkgs/pkgs/applications/misc/dmenu-rs/default.nix b/nixpkgs/pkgs/applications/misc/dmenu-rs/default.nix
index 1635e383e9bc..3340171c2da6 100644
--- a/nixpkgs/pkgs/applications/misc/dmenu-rs/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dmenu-rs/default.nix
@@ -2,7 +2,6 @@
 , rustPlatform
 , lib
 , fetchFromGitHub
-, fetchpatch
 , cargo
 , expat
 , fontconfig
@@ -19,13 +18,13 @@
 # See: https://github.com/Shizcow/dmenu-rs#plugins
 stdenv.mkDerivation rec {
   pname = "dmenu-rs";
-  version = "5.5.2";
+  version = "5.5.3";
 
   src = fetchFromGitHub {
     owner = "Shizcow";
-    repo = pname;
+    repo = "dmenu-rs";
     rev = version;
-    sha256 = "sha256-6yO2S6j/BD6x/bsuTFKAKvARl1n94KRiPwpmswmUOPU=";
+    hash = "sha256-05Ia+GHeL8PzOwR7H+NEVhKJVMPhlIaQLwGfvwOAl0g=";
   };
 
   nativeBuildInputs = [
@@ -52,17 +51,6 @@ stdenv.mkDerivation rec {
     lockFile = ./Cargo.lock;
   };
 
-  # Fix a bug in the makefile when installing.
-  # See https://github.com/Shizcow/dmenu-rs/pull/50
-  patches = let
-    fix-broken-make-install-patch = fetchpatch {
-      url = "https://github.com/Shizcow/dmenu-rs/commit/1f4b3f8a07d73272f8c6f19bfb6ff3de5e042815.patch";
-      sha256 = "sha256-hmXApWg8qngc1vHkHUnB7Lt7wQUOyCSsBmn4HC1j53M=";
-    };
-  in [
-    fix-broken-make-install-patch
-  ];
-
   # Copy the Cargo.lock stored here in nixpkgs into the build directory.
   postPatch = ''
     cp ${./Cargo.lock} src/Cargo.lock
diff --git a/nixpkgs/pkgs/applications/misc/dmenu/default.nix b/nixpkgs/pkgs/applications/misc/dmenu/default.nix
index b53fab409b04..70f7b0b58ca4 100644
--- a/nixpkgs/pkgs/applications/misc/dmenu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dmenu/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dmenu";
-  version = "5.2";
+  version = "5.3";
 
   src = fetchurl {
     url = "https://dl.suckless.org/tools/dmenu-${version}.tar.gz";
-    sha256 = "sha256-1NTKd7WRQPJyJy21N+BbuRpZFPVoAmUtxX5hp3PUN5I=";
+    sha256 = "sha256-Go9T5v0tdJg57IcMXiez4U2lw+6sv8uUXRWeHVQzeV8=";
   };
 
   buildInputs = [ libX11 libXinerama zlib libXft ];
diff --git a/nixpkgs/pkgs/applications/misc/dnd-tools/default.nix b/nixpkgs/pkgs/applications/misc/dnd-tools/default.nix
index 3b0d0ec90e25..130b4bd63126 100644
--- a/nixpkgs/pkgs/applications/misc/dnd-tools/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dnd-tools/default.nix
@@ -22,6 +22,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/savagezen/dnd-tools";
     description = "A set of interactive command line tools for Dungeons and Dragons 5th Edition";
+    mainProgram = "dnd-tools";
     license = licenses.agpl3Only;
     maintainers = [ maintainers.urlordjames ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/done/default.nix b/nixpkgs/pkgs/applications/misc/done/default.nix
index a52ebda61945..cbc23dc9eb4f 100644
--- a/nixpkgs/pkgs/applications/misc/done/default.nix
+++ b/nixpkgs/pkgs/applications/misc/done/default.nix
@@ -21,21 +21,19 @@
 
 stdenv.mkDerivation rec {
   pname = "done";
-  version = "0.2.0";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "done-devs";
     repo = "done";
     rev = "v${version}";
-    hash = "sha256-97bWBayEyhCMjTxxxFVdO8V2pBZuVzss1Tp9/TnfDB0=";
+    hash = "sha256-SbeP7PnJd7jjdXa9uDIAlMAJLOrYHqNP5p9gQclb6RU=";
   };
 
-  cargoDeps = rustPlatform.importCargoLock {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "directories-4.0.1" = "sha256-4M8WstNq5I7UduIUZI9q1R9oazp7MDBRBRBHZv6iGWI=";
-      "libset-0.1.2" = "sha256-+eA6pqafIYomXdlvwSzT/b/T4Je5HgPPmGL2M11VpMU=";
-    };
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-YJJGQR1tkK5z7vQQgkd8xPSqYhtiZIN+s9Xnwjn0z5A=";
   };
 
   nativeBuildInputs = [
@@ -62,8 +60,6 @@ stdenv.mkDerivation rec {
 
   env = lib.optionalAttrs stdenv.isDarwin {
     GETTEXT_DIR = gettext;
-    # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
   };
 
   meta = with lib; {
@@ -71,6 +67,7 @@ stdenv.mkDerivation rec {
     homepage = "https://done.edfloreshz.dev/";
     changelog = "https://github.com/done-devs/done/blob/${src.rev}/CHANGES.md";
     license = licenses.mpl20;
+    mainProgram = "done";
     maintainers = with maintainers; [ figsoda ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/dotfiles/default.nix b/nixpkgs/pkgs/applications/misc/dotfiles/default.nix
index 52d5016200f9..017d18b0bce8 100644
--- a/nixpkgs/pkgs/applications/misc/dotfiles/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dotfiles/default.nix
@@ -17,6 +17,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Easily manage your dotfiles";
+    mainProgram = "dotfiles";
     homepage = "https://github.com/jbernard/dotfiles";
     license = licenses.isc;
   };
diff --git a/nixpkgs/pkgs/applications/misc/electron-cash/default.nix b/nixpkgs/pkgs/applications/misc/electron-cash/default.nix
index 7760b57dd3b9..f28d1bf7e043 100644
--- a/nixpkgs/pkgs/applications/misc/electron-cash/default.nix
+++ b/nixpkgs/pkgs/applications/misc/electron-cash/default.nix
@@ -82,6 +82,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A Bitcoin Cash SPV Wallet";
+    mainProgram = "electron-cash";
     longDescription = ''
       An easy-to-use Bitcoin Cash client featuring wallets generated from
       mnemonic seeds (in addition to other, more advanced, wallet options)
diff --git a/nixpkgs/pkgs/applications/misc/electrum/default.nix b/nixpkgs/pkgs/applications/misc/electrum/default.nix
index 986681d5a819..eb24885ca142 100644
--- a/nixpkgs/pkgs/applications/misc/electrum/default.nix
+++ b/nixpkgs/pkgs/applications/misc/electrum/default.nix
@@ -9,10 +9,27 @@
 , enableQt ? true
 , callPackage
 , qtwayland
+, fetchPypi
 }:
 
 let
-  version = "4.5.3";
+  version = "4.5.4";
+
+  python = python3.override {
+    self = python;
+    packageOverrides = self: super: {
+      # Pin ledger-bitcoin to 0.2.1
+      ledger-bitcoin = super.ledger-bitcoin.overridePythonAttrs (oldAttrs: rec {
+        version = "0.2.1";
+        format = "pyproject";
+        src = fetchPypi {
+          pname = "ledger_bitcoin";
+          inherit version;
+          hash = "sha256-AWl/q2MzzspNIo6yf30S92PgM/Ygsb+1lJsg7Asztso=";
+        };
+      });
+    };
+  };
 
   libsecp256k1_name =
     if stdenv.isLinux then "libsecp256k1.so.{v}"
@@ -29,7 +46,7 @@ let
     owner = "spesmilo";
     repo = "electrum";
     rev = version;
-    sha256 = "sha256-Lr6ynHAbyaiaxYAWU5j5Wh5acxO5HkP1/jpnFrL4j68=";
+    sha256 = "sha256-fDu2PlEQOF7ftlS6dYw15S2XiAx+D/bng4zC9ELj6uk=";
 
     postFetch = ''
       mv $out ./all
@@ -39,13 +56,13 @@ let
 
 in
 
-python3.pkgs.buildPythonApplication {
+python.pkgs.buildPythonApplication {
   pname = "electrum";
   inherit version;
 
   src = fetchurl {
     url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
-    sha256 = "sha256-kej0msc7SB+51ad5xZrT8MMEY5rfYOGqum6RO1gBH5s=";
+    sha256 = "sha256-lDuwXhOjcbCx8x/oIoigrklDwCbhn1trf5lDf/X/1Qc=";
   };
 
   postUnpack = ''
@@ -56,7 +73,7 @@ python3.pkgs.buildPythonApplication {
   nativeBuildInputs = lib.optionals enableQt [ wrapQtAppsHook ];
   buildInputs = lib.optional (stdenv.isLinux && enableQt) qtwayland;
 
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = with python.pkgs; [
     aiohttp
     aiohttp-socks
     aiorpcx
@@ -80,12 +97,15 @@ python3.pkgs.buildPythonApplication {
     ckcc-protocol
     keepkey
     trezor
+    bitbox02
+    cbor
+    pyserial
   ] ++ lib.optionals enableQt [
     pyqt5
     qdarkstyle
   ];
 
-  checkInputs = with python3.pkgs; lib.optionals enableQt [
+  checkInputs = with python.pkgs; lib.optionals enableQt [
     pyqt6
   ];
 
@@ -117,7 +137,7 @@ python3.pkgs.buildPythonApplication {
     wrapQtApp $out/bin/electrum
   '';
 
-  nativeCheckInputs = with python3.pkgs; [ pytestCheckHook pyaes pycryptodomex ];
+  nativeCheckInputs = with python.pkgs; [ pytestCheckHook pyaes pycryptodomex ];
 
   pytestFlagsArray = [ "tests" ];
 
@@ -140,7 +160,7 @@ python3.pkgs.buildPythonApplication {
     changelog = "https://github.com/spesmilo/electrum/blob/master/RELEASE-NOTES";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = with maintainers; [ joachifm np prusnak ];
+    maintainers = with maintainers; [ joachifm np prusnak chewblacka ];
     mainProgram = "electrum";
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/electrum/grs.nix b/nixpkgs/pkgs/applications/misc/electrum/grs.nix
index 87a85e9f986d..4ca911126c5b 100644
--- a/nixpkgs/pkgs/applications/misc/electrum/grs.nix
+++ b/nixpkgs/pkgs/applications/misc/electrum/grs.nix
@@ -10,7 +10,7 @@
 }:
 
 let
-  version = "4.4.4";
+  version = "4.5.4";
 
   libsecp256k1_name =
     if stdenv.isLinux then "libsecp256k1.so.{v}"
@@ -32,11 +32,11 @@ python3.pkgs.buildPythonApplication {
     owner = "Groestlcoin";
     repo = "electrum-grs";
     rev = "refs/tags/v${version}";
-    sha256 = "0fl01qdvb1z6l6kwipj1lj0qmjk3mzw25wv7yh5j1hh1f5lng0s8";
+    sha256 = "1k078jg3bw4n3kcxy917m30x1skxm679w8hcw8mlxb94ikrjc66h";
   };
 
   nativeBuildInputs = lib.optionals enableQt [ wrapQtAppsHook ];
-  buildInputs = lib.optional stdenv.isLinux qtwayland;
+  buildInputs = lib.optional (stdenv.isLinux && enableQt) qtwayland;
 
   propagatedBuildInputs = with python3.pkgs; [
     aiohttp
@@ -56,17 +56,25 @@ python3.pkgs.buildPythonApplication {
     requests
     tlslite-ng
     certifi
+    jsonpatch
     # plugins
     btchip-python
     ledger-bitcoin
     ckcc-protocol
     keepkey
     trezor
+    bitbox02
+    cbor
+    pyserial
   ] ++ lib.optionals enableQt [
     pyqt5
     qdarkstyle
   ];
 
+  checkInputs = with python3.pkgs; lib.optionals enableQt [
+    pyqt6
+  ];
+
   postPatch = ''
     # make compatible with protobuf4 by easing dependencies ...
     substituteInPlace ./contrib/requirements/requirements.txt \
@@ -115,5 +123,6 @@ python3.pkgs.buildPythonApplication {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ gruve-p ];
+    mainProgram = "electrum-grs";
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/electrum/ltc.nix b/nixpkgs/pkgs/applications/misc/electrum/ltc.nix
index 9b0c63834cfb..a85252027e96 100644
--- a/nixpkgs/pkgs/applications/misc/electrum/ltc.nix
+++ b/nixpkgs/pkgs/applications/misc/electrum/ltc.nix
@@ -127,6 +127,7 @@ python3.pkgs.buildPythonApplication {
 
   meta = with lib; {
     description = "Lightweight Litecoin Client";
+    mainProgram = "electrum-ltc";
     longDescription = ''
       Electrum-LTC is a simple, but powerful Litecoin wallet. A unique secret
       phrase (or “seedâ€) leaves intruders stranded and your peace of mind
diff --git a/nixpkgs/pkgs/applications/misc/electrum/update.nix b/nixpkgs/pkgs/applications/misc/electrum/update.nix
index 7a0fb8fd3eb6..509a64378088 100644
--- a/nixpkgs/pkgs/applications/misc/electrum/update.nix
+++ b/nixpkgs/pkgs/applications/misc/electrum/update.nix
@@ -4,6 +4,7 @@
 , bash
 , coreutils
 , curl
+, fetchurl
 , gnugrep
 , gnupg
 , gnused
@@ -13,7 +14,22 @@
 let
   downloadPageUrl = "https://download.electrum.org";
 
-  signingKeys = ["6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6"];
+  signingKeys = lib.lists.map fetchurl [
+    {
+      url = "https://github.com/spesmilo/electrum/raw/master/pubkeys/Emzy.asc";
+      hash = "sha256-QG0cM6AKlSKFacVlhcso/xvrooUdF7oqoppyezt0hjE=";
+    }
+    {
+      url = "https://github.com/spesmilo/electrum/raw/master/pubkeys/ThomasV.asc";
+      hash = "sha256-37ApVZlI+2EevxQIKXVKVpktt1Ls3UbWq4dfio2ORdo=";
+    }
+    {
+      url = "https://github.com/spesmilo/electrum/raw/master/pubkeys/sombernight_releasekey.asc";
+      hash = "sha256-GgdPJ9TB5hh5SPCcTZURfqXkrU4qwl0dCci52V/wpdQ=";
+    }
+  ];
+
+  gpgImportPaths = lib.concatStringsSep " " signingKeys;
 in
 
 writeScript "update-electrum" ''
@@ -48,7 +64,7 @@ sigFile=$srcFile.asc
 export GNUPGHOME=$PWD/gnupg
 mkdir -m 700 -p "$GNUPGHOME"
 
-gpg --batch --recv-keys ${lib.concatStringsSep " " (map (x: "'${x}'") signingKeys)}
+gpg --batch --import ${gpgImportPaths}
 gpg --batch --verify "$sigFile" "$srcFile"
 
 sha256=$(nix-prefetch-url --type sha256 "file://$PWD/$srcFile")
diff --git a/nixpkgs/pkgs/applications/misc/epr/default.nix b/nixpkgs/pkgs/applications/misc/epr/default.nix
index 20b2b4ba8d90..5728972f2bd8 100644
--- a/nixpkgs/pkgs/applications/misc/epr/default.nix
+++ b/nixpkgs/pkgs/applications/misc/epr/default.nix
@@ -13,6 +13,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "CLI Epub Reader";
+    mainProgram = "epr";
     homepage = "https://github.com/wustho/epr";
     license = licenses.mit;
     maintainers = [ maintainers.Br1ght0ne ];
diff --git a/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix b/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix
index a4bbdc2eb7b3..85ff399ac83f 100644
--- a/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix
+++ b/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix
@@ -46,6 +46,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://www.etesync.com/";
     description = "Secure, end-to-end encrypted, and privacy respecting sync for contacts, calendars and tasks";
+    mainProgram = "etesync-dav";
     license = licenses.gpl3;
     maintainers = with maintainers; [ thyol valodim ];
     broken = stdenv.isDarwin; # pyobjc-framework-Cocoa is missing
diff --git a/nixpkgs/pkgs/applications/misc/evtest-qt/default.nix b/nixpkgs/pkgs/applications/misc/evtest-qt/default.nix
index 9092fe99ff76..42000afd3d7e 100644
--- a/nixpkgs/pkgs/applications/misc/evtest-qt/default.nix
+++ b/nixpkgs/pkgs/applications/misc/evtest-qt/default.nix
@@ -30,6 +30,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Simple input device tester for linux with Qt GUI";
+    mainProgram = "evtest-qt";
     homepage = "https://github.com/Grumbel/evtest-qt";
     maintainers = with maintainers; [ alexarice ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/extract_url/default.nix b/nixpkgs/pkgs/applications/misc/extract_url/default.nix
index 35ea33bde3a2..b47fca90b9f6 100644
--- a/nixpkgs/pkgs/applications/misc/extract_url/default.nix
+++ b/nixpkgs/pkgs/applications/misc/extract_url/default.nix
@@ -34,6 +34,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.memoryhole.net/~kyle/extract_url/";
     description = "Extracts URLs from MIME messages or plain text";
+    mainProgram = "extract_url";
     license = licenses.bsd2;
     maintainers = [ maintainers.qyliss ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/faircamp/default.nix b/nixpkgs/pkgs/applications/misc/faircamp/default.nix
index 7987a3c44d02..9aa92101a1cc 100644
--- a/nixpkgs/pkgs/applications/misc/faircamp/default.nix
+++ b/nixpkgs/pkgs/applications/misc/faircamp/default.nix
@@ -60,6 +60,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A self-hostable, statically generated bandcamp alternative";
+    mainProgram = "faircamp";
     longDescription = ''
       Faircamp takes a directory on your disk - your Catalog - and from it
       produces a fancy-looking (and technically simple and completely static)
diff --git a/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix b/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix
index 161991f03264..90d3f3b01424 100644
--- a/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix
+++ b/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix
@@ -71,6 +71,7 @@ perlPackages.buildPerlPackage rec {
   meta = with lib; {
     homepage = "https://github.com/trizen/fbmenugen";
     description = "Simple menu generator for the Fluxbox Window Manager";
+    mainProgram = "fbmenugen";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
diff --git a/nixpkgs/pkgs/applications/misc/fff/default.nix b/nixpkgs/pkgs/applications/misc/fff/default.nix
index a3f791940cbf..351796a036d2 100644
--- a/nixpkgs/pkgs/applications/misc/fff/default.nix
+++ b/nixpkgs/pkgs/applications/misc/fff/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fucking Fast File-Manager";
+    mainProgram = "fff";
     homepage = "https://github.com/dylanaraps/fff";
     license = licenses.mit;
     maintainers = [ maintainers.tadeokondrak ];
diff --git a/nixpkgs/pkgs/applications/misc/flowtime/default.nix b/nixpkgs/pkgs/applications/misc/flowtime/default.nix
index 6637cb878191..06962d75452b 100644
--- a/nixpkgs/pkgs/applications/misc/flowtime/default.nix
+++ b/nixpkgs/pkgs/applications/misc/flowtime/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Get what motivates you done, without losing concentration";
+    mainProgram = "flowtime";
     homepage = "https://github.com/Diego-Ivan/Flowtime";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ foo-dogsquared pokon548 ];
diff --git a/nixpkgs/pkgs/applications/misc/fluxboxlauncher/default.nix b/nixpkgs/pkgs/applications/misc/fluxboxlauncher/default.nix
index 719f08db6bcd..19e70ad7c54c 100644
--- a/nixpkgs/pkgs/applications/misc/fluxboxlauncher/default.nix
+++ b/nixpkgs/pkgs/applications/misc/fluxboxlauncher/default.nix
@@ -53,6 +53,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A Gui editor (gtk) to configure applications launching on a fluxbox session";
+    mainProgram = "fluxboxlauncher";
     homepage = "https://github.com/mothsART/fluxboxlauncher";
     maintainers = with maintainers; [ mothsart ];
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/applications/misc/font-manager/default.nix b/nixpkgs/pkgs/applications/misc/font-manager/default.nix
index 40cbeaea6130..309d8fa2faf5 100644
--- a/nixpkgs/pkgs/applications/misc/font-manager/default.nix
+++ b/nixpkgs/pkgs/applications/misc/font-manager/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://fontmanager.github.io/";
     description = "Simple font management for GTK desktop environments";
+    mainProgram = "font-manager";
     longDescription = ''
       Font Manager is intended to provide a way for average users to
       easily manage desktop fonts, without having to resort to command
diff --git a/nixpkgs/pkgs/applications/misc/freemind/default.nix b/nixpkgs/pkgs/applications/misc/freemind/default.nix
index ff84ecdf55f0..0bdf8df306a8 100644
--- a/nixpkgs/pkgs/applications/misc/freemind/default.nix
+++ b/nixpkgs/pkgs/applications/misc/freemind/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Mind-mapping software";
+    mainProgram = "freemind";
     homepage = "https://freemind.sourceforge.net/wiki/index.php/Main_Page";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/furtherance/default.nix b/nixpkgs/pkgs/applications/misc/furtherance/default.nix
index f6fea4c633d0..15616f32bebd 100644
--- a/nixpkgs/pkgs/applications/misc/furtherance/default.nix
+++ b/nixpkgs/pkgs/applications/misc/furtherance/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Track your time without being tracked";
+    mainProgram = "furtherance";
     homepage = "https://github.com/lakoliu/Furtherance";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/fusee-interfacee-tk/default.nix b/nixpkgs/pkgs/applications/misc/fusee-interfacee-tk/default.nix
index 813b8113ee30..c69b7c0633f4 100644
--- a/nixpkgs/pkgs/applications/misc/fusee-interfacee-tk/default.nix
+++ b/nixpkgs/pkgs/applications/misc/fusee-interfacee-tk/default.nix
@@ -32,6 +32,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/nh-server/fusee-interfacee-tk";
     description = "A tool to send .bin files to a Nintendo Switch in RCM mode";
+    mainProgram = "fusee-interfacee-tk";
     longDescription = "A mod of falquinhos Fusée Launcher for use with Nintendo Homebrew Switch Guide. It also adds the ability to mount SD while in RCM.
     Must be run as sudo.";
     maintainers = with maintainers; [ kristian-brucaj ];
diff --git a/nixpkgs/pkgs/applications/misc/gImageReader/default.nix b/nixpkgs/pkgs/applications/misc/gImageReader/default.nix
index 04efe6f52dcd..bc293b455b2a 100644
--- a/nixpkgs/pkgs/applications/misc/gImageReader/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gImageReader/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple Gtk/Qt front-end to tesseract-ocr";
+    mainProgram = "gimagereader-gtk";
     homepage = "https://github.com/manisandro/gImageReader";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [teto];
diff --git a/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix b/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
index 09c0cdd0d1c4..7fb177d48289 100644
--- a/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "gallery-dl";
-  version = "1.26.8";
+  version = "1.26.9";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "gallery_dl";
-    sha256 = "sha256-tfNmKgWKr2TGQNgvC/qo2+Dvij4LUL0Zy77mfTcci2k=";
+    sha256 = "sha256-PgbfppyJCpgFupBQng8MUPihbDmit4C+xWnSzCJyu5k=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/gcalcli/default.nix b/nixpkgs/pkgs/applications/misc/gcalcli/default.nix
index 90b4883ec290..47950616578e 100644
--- a/nixpkgs/pkgs/applications/misc/gcalcli/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gcalcli/default.nix
@@ -30,6 +30,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "CLI for Google Calendar";
+    mainProgram = "gcalcli";
     homepage = "https://github.com/insanum/gcalcli";
     license = licenses.mit;
     maintainers = with maintainers; [ nocoolnametom ];
diff --git a/nixpkgs/pkgs/applications/misc/gcstar/default.nix b/nixpkgs/pkgs/applications/misc/gcstar/default.nix
index 4a6b45469d27..0f6478f50fcd 100644
--- a/nixpkgs/pkgs/applications/misc/gcstar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gcstar/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.com/Kerenoc/GCstar";
     description = "Manage your collections of movies, games, books, music and more";
+    mainProgram = "gcstar";
     longDescription = ''
       GCstar is an application for managing your collections.
       It supports many types of collections, including movies, books, games, comics, stamps, coins, and many more.
diff --git a/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix b/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix
index 12d056b01ec6..4f455d901c2d 100644
--- a/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/get_iplayer/default.nix
@@ -46,6 +46,7 @@ perlPackages.buildPerlPackage rec {
 
   meta = with lib; {
     description = "Downloads TV and radio programmes from BBC iPlayer and BBC Sounds";
+    mainProgram = "get_iplayer";
     license = licenses.gpl3Plus;
     homepage = "https://github.com/get-iplayer/get_iplayer";
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/misc/gimoji/default.nix b/nixpkgs/pkgs/applications/misc/gimoji/default.nix
index 1a039cc05307..71582e3acc39 100644
--- a/nixpkgs/pkgs/applications/misc/gimoji/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gimoji/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gimoji";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "zeenix";
     repo = "gimoji";
     rev = version;
-    hash = "sha256-O4rIla/vpei+N2TXB2eIrFAkOyguE9gCQgVptl2mn0w=";
+    hash = "sha256-0mLFrFxMbX9Gl72W3EC7kfXHqDBo5QU+ut+1psntphY=";
   };
 
-  cargoHash = "sha256-ne7b95snaoji3mF3yN6ZvTSnQxJvLT7jOMbh5U10YgU=";
+  cargoHash = "sha256-pKHhYWEF9L0UX9hc2Ga3WOUWzISA8ONwn3rcI9u2/n0=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.AppKit
diff --git a/nixpkgs/pkgs/applications/misc/girara/default.nix b/nixpkgs/pkgs/applications/misc/girara/default.nix
index 18cfd01229ae..d33560c4f16a 100644
--- a/nixpkgs/pkgs/applications/misc/girara/default.nix
+++ b/nixpkgs/pkgs/applications/misc/girara/default.nix
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "girara";
-  version = "0.4.2";
+  version = "0.4.3";
 
   outputs = [ "out" "dev" ];
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "pwmt";
     repo = "girara";
     rev = version;
-    hash = "sha256-/9pj6gB46sKIilImDGdJ8H7UHip/z5ckZWZnJLw/0YU=";
+    hash = "sha256-/bJXdLXksTxUFC3w7zuBZY6Zh7tJxUJVbS87ENDQbDE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/glava/default.nix b/nixpkgs/pkgs/applications/misc/glava/default.nix
index 14173fc7057f..df5d6138d35f 100644
--- a/nixpkgs/pkgs/applications/misc/glava/default.nix
+++ b/nixpkgs/pkgs/applications/misc/glava/default.nix
@@ -80,6 +80,7 @@ in
       description = ''
         OpenGL audio spectrum visualizer
       '';
+      mainProgram = "glava";
       homepage = "https://github.com/wacossusca34/glava";
       platforms = platforms.linux;
       license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/applications/misc/gmtp/default.nix b/nixpkgs/pkgs/applications/misc/gmtp/default.nix
index a8465538b50a..31c62f53423c 100644
--- a/nixpkgs/pkgs/applications/misc/gmtp/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gmtp/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "A simple MP3 and Media player client for UNIX and UNIX like systems";
+    mainProgram = "gmtp";
     homepage = "https://gmtp.sourceforge.io";
     platforms = lib.platforms.linux;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/applications/misc/gnome-firmware/default.nix b/nixpkgs/pkgs/applications/misc/gnome-firmware/default.nix
index defaad0d2c97..4f94a5bc7f6b 100644
--- a/nixpkgs/pkgs/applications/misc/gnome-firmware/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gnome-firmware/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/World/gnome-firmware";
     description = "Tool for installing firmware on devices";
+    mainProgram = "gnome-firmware";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix b/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix
index 31d81a332790..b4cca2f3bf63 100644
--- a/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gnome-multi-writer/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool for writing an ISO file to multiple USB devices at once";
+    mainProgram = "gnome-multi-writer";
     homepage = "https://wiki.gnome.org/Apps/MultiWriter";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix b/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix
index 818ef8fb96a0..dc4df70bc00e 100644
--- a/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gnome-recipes/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Recipe management application for GNOME";
+    mainProgram = "gnome-recipes";
     homepage = "https://wiki.gnome.org/Apps/Recipes";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix b/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix
index 179facc64fd5..c969c92ffdd2 100644
--- a/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gnome-usage/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A nice way to view information about use of system resources, like memory and disk space";
+    mainProgram = "gnome-usage";
     homepage = "https://gitlab.gnome.org/GNOME/gnome-usage";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix b/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix
index 1345dc51593d..9cc9b3bf6d47 100644
--- a/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix
+++ b/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix
@@ -76,6 +76,7 @@ in mkDerivation rec {
 
   meta = {
     description = "Performance software for cyclists, runners and triathletes. Built from source and without API tokens";
+    mainProgram = "GoldenCheetah";
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ adamcstephens ];
     license = lib.licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/applications/misc/gopacked/default.nix b/nixpkgs/pkgs/applications/misc/gopacked/default.nix
index 1af03a1528a2..aef599323b81 100644
--- a/nixpkgs/pkgs/applications/misc/gopacked/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gopacked/default.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A simple text-based Minecraft modpack manager";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     homepage = src.meta.homepage;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix b/nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix
index afb02c9937f9..0f1e60ff0165 100644
--- a/nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix
+++ b/nixpkgs/pkgs/applications/misc/gphoto2/gphotofs.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fuse FS to mount a digital camera";
+    mainProgram = "gphotofs";
     homepage = "http://www.gphoto.org/";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix b/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix
index 887a469397e1..9a18c9d5c9d9 100644
--- a/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gpx-viewer/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://blog.sarine.nl/tag/gpxviewer/";
     description = "Simple tool to visualize tracks and waypoints stored in a gpx file";
+    mainProgram = "gpx-viewer";
     changelog = "https://github.com/DaveDavenport/gpx-viewer/blob/${src.rev}/NEWS";
     platforms = with platforms; linux;
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/applications/misc/gpxlab/default.nix b/nixpkgs/pkgs/applications/misc/gpxlab/default.nix
index 9d3d7c27ec8c..18c31afef6b5 100644
--- a/nixpkgs/pkgs/applications/misc/gpxlab/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gpxlab/default.nix
@@ -27,6 +27,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/BourgeoisLab/GPXLab";
     description = "Program to show and manipulate GPS tracks";
+    mainProgram = "gpxlab";
     longDescription = ''
       GPXLab is an application to display and manage GPS tracks
       previously recorded with a GPS tracker.
diff --git a/nixpkgs/pkgs/applications/misc/gpxsee/default.nix b/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
index 896cf02dc887..227177d14369 100644
--- a/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
@@ -18,13 +18,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "gpxsee";
-  version = "13.16";
+  version = "13.17";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = finalAttrs.version;
-    hash = "sha256-rw+I7Re1hqZ1k1flIAr7kW8Wst7pVdmFcqtQTg6L/9Y=";
+    hash = "sha256-pk6PMQDPvyfUS5PMRu6pz/QrRrOfbq9oGsMk0ZDawDM=";
   };
 
   buildInputs = [
@@ -63,6 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
     broken = isQt6 && stdenv.isDarwin;
     changelog = "https://build.opensuse.org/package/view_file/home:tumic:GPXSee/gpxsee/gpxsee.changes";
     description = "GPS log file viewer and analyzer";
+    mainProgram = "gpxsee";
     homepage = "https://www.gpxsee.org/";
     license = lib.licenses.gpl3Only;
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/misc/gramps/default.nix b/nixpkgs/pkgs/applications/misc/gramps/default.nix
index 7539b22087c3..bd0690b381a9 100644
--- a/nixpkgs/pkgs/applications/misc/gramps/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gramps/default.nix
@@ -109,6 +109,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Genealogy software";
+    mainProgram = "gramps";
     homepage = "https://gramps-project.org";
     maintainers = with maintainers; [ jk pinpox ];
     changelog = "https://github.com/gramps-project/gramps/blob/v${version}/ChangeLog";
diff --git a/nixpkgs/pkgs/applications/misc/gummi/default.nix b/nixpkgs/pkgs/applications/misc/gummi/default.nix
index d9e0204be322..7131c5cd1227 100644
--- a/nixpkgs/pkgs/applications/misc/gummi/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gummi/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://gummi.app";
     description = "Simple LaTex editor for GTK users";
+    mainProgram = "gummi";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ flokli ];
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/applications/misc/hamster/default.nix b/nixpkgs/pkgs/applications/misc/hamster/default.nix
index 5f7b51bb6ee6..c425014e24ed 100644
--- a/nixpkgs/pkgs/applications/misc/hamster/default.nix
+++ b/nixpkgs/pkgs/applications/misc/hamster/default.nix
@@ -51,6 +51,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Time tracking application";
+    mainProgram = "hamster";
     homepage = "http://projecthamster.org/";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/misc/harsh/default.nix b/nixpkgs/pkgs/applications/misc/harsh/default.nix
index 449b154cb8b6..fe6ec4f677aa 100644
--- a/nixpkgs/pkgs/applications/misc/harsh/default.nix
+++ b/nixpkgs/pkgs/applications/misc/harsh/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "harsh";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "wakatara";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-MpKfUvDqwkvPsnjTxR3fohzYfSLQ2Nx25czYOE8LpK4=";
+    hash = "sha256-NgYmzRoJCoFpfo4NXnQKCp/gvN9g076Y9Pq8CnMrC/s=";
   };
 
-  vendorHash = "sha256-zjLXq64uC5iRm9uxUGDW5127z25gNSVV2qhVVXuYqY0=";
+  vendorHash = "sha256-Xzyu6jy4sbZPZv0EIksA2snlsivc0jp02QoOYpmFtQw=";
 
   meta = with lib; {
     description = "CLI habit tracking for geeks";
diff --git a/nixpkgs/pkgs/applications/misc/hcl2json/default.nix b/nixpkgs/pkgs/applications/misc/hcl2json/default.nix
index be6da03f1708..40bfede8551f 100644
--- a/nixpkgs/pkgs/applications/misc/hcl2json/default.nix
+++ b/nixpkgs/pkgs/applications/misc/hcl2json/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "hcl2json";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "tmccombs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6DCxpnTizTg3uhHIIze2IyA8IKcjIv44XoId7exdQZI=";
+    sha256 = "sha256-lnmWIyS1byXvShR1/ej8PAuo+WJBEBykQwJ79439Fus=";
   };
 
-  vendorHash = "sha256-Ay6Sgdm7X+NxtLkFM0AT8aoWLdASjUhcidRUiV2K+us=";
+  vendorHash = "sha256-HbdectUQgyQZ9qcfBarwRTF3VjzSqaM2vhVekThv2+k=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/applications/misc/heimer/default.nix b/nixpkgs/pkgs/applications/misc/heimer/default.nix
index 69f45cb407b9..b044c7fedbed 100644
--- a/nixpkgs/pkgs/applications/misc/heimer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/heimer/default.nix
@@ -28,6 +28,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Simple cross-platform mind map and note-taking tool written in Qt";
+    mainProgram = "heimer";
     homepage = "https://github.com/juzzlin/Heimer";
     changelog = "https://github.com/juzzlin/Heimer/blob/${version}/CHANGELOG";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/misc/hollywood/default.nix b/nixpkgs/pkgs/applications/misc/hollywood/default.nix
index f3b721bc4959..1b655e5afacc 100644
--- a/nixpkgs/pkgs/applications/misc/hollywood/default.nix
+++ b/nixpkgs/pkgs/applications/misc/hollywood/default.nix
@@ -87,6 +87,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Fill your console with Hollywood melodrama technobabble";
+    mainProgram = "hollywood";
     homepage = "https://a.hollywood.computer/";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.anselmschueler ];
diff --git a/nixpkgs/pkgs/applications/misc/hovercraft/default.nix b/nixpkgs/pkgs/applications/misc/hovercraft/default.nix
index 25e541cf3d48..c5623d2dac16 100644
--- a/nixpkgs/pkgs/applications/misc/hovercraft/default.nix
+++ b/nixpkgs/pkgs/applications/misc/hovercraft/default.nix
@@ -36,6 +36,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Makes impress.js presentations from reStructuredText";
+    mainProgram = "hovercraft";
     homepage = "https://github.com/regebro/hovercraft";
     license = licenses.mit;
     maintainers = with maintainers; [ goibhniu makefu ];
diff --git a/nixpkgs/pkgs/applications/misc/html5validator/default.nix b/nixpkgs/pkgs/applications/misc/html5validator/default.nix
index 6c9c65cf4270..cee564d512d5 100644
--- a/nixpkgs/pkgs/applications/misc/html5validator/default.nix
+++ b/nixpkgs/pkgs/applications/misc/html5validator/default.nix
@@ -33,6 +33,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Command line tool that tests files for HTML5 validity";
+    mainProgram = "html5validator";
     homepage = "https://github.com/svenkreiss/html5validator";
     changelog = "https://github.com/svenkreiss/html5validator/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/misc/huggle/default.nix b/nixpkgs/pkgs/applications/misc/huggle/default.nix
index 3a6f25ede695..37d43a90d05d 100644
--- a/nixpkgs/pkgs/applications/misc/huggle/default.nix
+++ b/nixpkgs/pkgs/applications/misc/huggle/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Anti-vandalism tool for use on MediaWiki-based projects";
+    mainProgram = "huggle";
     homepage = "https://github.com/huggle/huggle3-qt-lx";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.fee1-dead ];
diff --git a/nixpkgs/pkgs/applications/misc/imaginer/default.nix b/nixpkgs/pkgs/applications/misc/imaginer/default.nix
index 3f2b99954e08..1b00bd0614bd 100644
--- a/nixpkgs/pkgs/applications/misc/imaginer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/imaginer/default.nix
@@ -62,6 +62,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/ImaginerApp/Imaginer";
     description = "Imaginer with AI";
+    mainProgram = "imaginer";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ _0xMRTT ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/inkcut/default.nix b/nixpkgs/pkgs/applications/misc/inkcut/default.nix
index 36d001d62d46..b711fd9330dc 100644
--- a/nixpkgs/pkgs/applications/misc/inkcut/default.nix
+++ b/nixpkgs/pkgs/applications/misc/inkcut/default.nix
@@ -89,6 +89,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://www.codelv.com/projects/inkcut/";
     description = "Control 2D plotters, cutters, engravers, and CNC machines";
+    mainProgram = "inkcut";
     license = licenses.gpl3;
     maintainers = with maintainers; [ raboof ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/inlyne/default.nix b/nixpkgs/pkgs/applications/misc/inlyne/default.nix
index d9698c04aed5..f20f70c3b028 100644
--- a/nixpkgs/pkgs/applications/misc/inlyne/default.nix
+++ b/nixpkgs/pkgs/applications/misc/inlyne/default.nix
@@ -6,6 +6,8 @@
 , pkg-config
 , fontconfig
 , xorg
+, libxkbcommon
+, wayland
 , libGL
 , openssl
 , darwin
@@ -13,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "inlyne";
-  version = "0.3.2";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "trimental";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-DSi6iS1ySdvGf6FxZpsDOAFpAKx/APcZjxA3Qy0gQBU=";
+    hash = "sha256-kZQREYnauR8xusyX6enBPUKHSe39aBLlrZjKEjJlfx0=";
   };
 
-  cargoHash = "sha256-UzegSJGAOBUDN8WluN7fLWS7NfHhm9YY0Zuq6DCIqHo=";
+  cargoHash = "sha256-2mQFr2nLJ/iBLpdOUmerY6F2C8Kt+/vMEjS6THpmJic=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -36,6 +38,8 @@ rustPlatform.buildRustPackage rec {
     xorg.libXi
     xorg.libXrandr
     xorg.libxcb
+    wayland
+    libxkbcommon
     openssl
   ] ++ lib.optionals stdenv.isDarwin [
     darwin.apple_sdk_11_0.frameworks.AppKit
diff --git a/nixpkgs/pkgs/applications/misc/jetbrains-toolbox/default.nix b/nixpkgs/pkgs/applications/misc/jetbrains-toolbox/default.nix
index f9e942ca9411..6019ffed2b89 100644
--- a/nixpkgs/pkgs/applications/misc/jetbrains-toolbox/default.nix
+++ b/nixpkgs/pkgs/applications/misc/jetbrains-toolbox/default.nix
@@ -9,11 +9,11 @@
 }:
 let
   pname = "jetbrains-toolbox";
-  version = "2.2.2.20062";
+  version = "2.2.3.20090";
 
   src = fetchzip {
     url = "https://download.jetbrains.com/toolbox/jetbrains-toolbox-${version}.tar.gz";
-    sha256 = "sha256-wIO9QQa+YfNNqO5HlijVxBDOgVSsJhtGmfChKA8QpPo=";
+    sha256 = "sha256-SqxQF5pG61CySsDzdZ1P2C9cCe/B145D0S+T4NByif8=";
     stripRoot = false;
   };
 
diff --git a/nixpkgs/pkgs/applications/misc/johnny/default.nix b/nixpkgs/pkgs/applications/misc/johnny/default.nix
index 0f1530afb50c..cead88817a54 100644
--- a/nixpkgs/pkgs/applications/misc/johnny/default.nix
+++ b/nixpkgs/pkgs/applications/misc/johnny/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://openwall.info/wiki/john/johnny";
     description = "Open Source GUI frontend for John the Ripper";
+    mainProgram = "johnny";
     license = licenses.bsd2;
     maintainers = with maintainers; [ Misaka13514 ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix b/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix
index 67c58d5c3009..a8245a223466 100644
--- a/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix
@@ -28,6 +28,7 @@ let
 
   meta = with lib; {
     description = "An open source note taking and to-do application with synchronisation capabilities";
+    mainProgram = "joplin-desktop";
     longDescription = ''
       Joplin is a free, open source note taking and to-do application, which can
       handle a large number of notes organised into notebooks. The notes are
diff --git a/nixpkgs/pkgs/applications/misc/josm/default.nix b/nixpkgs/pkgs/applications/misc/josm/default.nix
index 3c3fc200c114..6b5ce0b3c44d 100644
--- a/nixpkgs/pkgs/applications/misc/josm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/josm/default.nix
@@ -3,22 +3,29 @@
 }:
 let
   pname = "josm";
-  version = "18969";
+  version = "19017";
   srcs = {
     jar = fetchurl {
       url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-      hash = "sha256-a8muRwE4+9WdYVz7lYE9dRnqVIGQxL8cFmIdBr2R65U=";
+      hash = "sha256-+PSsvauVe+e+qB7sz9AFmC/dZhWHFHe0zWYPEhgvRIQ=";
     };
     macosx = fetchurl {
       url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java17.zip";
-      hash = "sha256-npXY7WJM1+9ygeAw102UtimnI/yXqs5vgPnatm4AIrI=";
+      hash = "sha256-QYvAC+W7gHC5unwfcbQ0sz5U1VkMwIIUkDWQK9vDe2A=";
     };
     pkg = fetchsvn {
       url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
       rev = version;
-      sha256 = "sha256-RFZGRTDdWP/goH/Ev16nhq1SjxYkfFr3djwSrotK7Fo=";
+      sha256 = "sha256-Pb4EAyvERz6kP3EmkgmUy/58KQHhBJmZJvpAj72GCIk=";
     };
   };
+
+  # Needed as of version 19017.
+  baseJavaOpts = toString [
+    "--add-exports=java.base/sun.security.action=ALL-UNNAMED"
+    "--add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED"
+    "--add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED"
+  ];
 in
 stdenv.mkDerivation rec {
   inherit pname version;
@@ -38,7 +45,7 @@ stdenv.mkDerivation rec {
 
       # Add libXxf86vm to path because it is needed by at least Kendzi3D plugin
       makeWrapper ${jre}/bin/java $out/bin/josm \
-        --add-flags "${extraJavaOpts} -jar $out/share/josm/josm.jar" \
+        --add-flags "${baseJavaOpts} ${extraJavaOpts} -jar $out/share/josm/josm.jar" \
         --prefix LD_LIBRARY_PATH ":" '${libXxf86vm}/lib'
     '';
 
diff --git a/nixpkgs/pkgs/applications/misc/k4dirstat/default.nix b/nixpkgs/pkgs/applications/misc/k4dirstat/default.nix
index d3c073e5663a..e1636e30267b 100644
--- a/nixpkgs/pkgs/applications/misc/k4dirstat/default.nix
+++ b/nixpkgs/pkgs/applications/misc/k4dirstat/default.nix
@@ -33,6 +33,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/jeromerobert/k4dirstat";
     description = "A small utility program that sums up disk usage for directory trees";
+    mainProgram = "k4dirstat";
     license = licenses.gpl2;
     maintainers = [ maintainers.raboof ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/kanjidraw/default.nix b/nixpkgs/pkgs/applications/misc/kanjidraw/default.nix
index 53c752651d2d..0d5189474729 100644
--- a/nixpkgs/pkgs/applications/misc/kanjidraw/default.nix
+++ b/nixpkgs/pkgs/applications/misc/kanjidraw/default.nix
@@ -27,6 +27,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Handwritten kanji recognition";
+    mainProgram = "kanjidraw";
     longDescription = ''
       kanjidraw is a simple Python library + GUI for matching (the strokes of a)
       handwritten kanji against its database.
diff --git a/nixpkgs/pkgs/applications/misc/kapow/default.nix b/nixpkgs/pkgs/applications/misc/kapow/default.nix
index 49fbed7b1efb..db352199408c 100644
--- a/nixpkgs/pkgs/applications/misc/kapow/default.nix
+++ b/nixpkgs/pkgs/applications/misc/kapow/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Punch clock to track time spent on projects";
+    mainProgram = "kapow";
     homepage = "https://gottcode.org/kapow/";
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/kchmviewer/default.nix b/nixpkgs/pkgs/applications/misc/kchmviewer/default.nix
index 4d703bff0c22..83d077f82795 100644
--- a/nixpkgs/pkgs/applications/misc/kchmviewer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/kchmviewer/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "CHM (Winhelp) files viewer";
+    mainProgram = "kchmviewer";
     homepage = "http://www.ulduzsoft.com/linux/kchmviewer/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ sikmir ];
diff --git a/nixpkgs/pkgs/applications/misc/keepassxc/default.nix b/nixpkgs/pkgs/applications/misc/keepassxc/default.nix
index ed7884ad2562..b40283538c87 100644
--- a/nixpkgs/pkgs/applications/misc/keepassxc/default.nix
+++ b/nixpkgs/pkgs/applications/misc/keepassxc/default.nix
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "keepassxc";
-  version = "2.7.6";
+  version = "2.7.7";
 
   src = fetchFromGitHub {
     owner = "keepassxreboot";
     repo = "keepassxc";
     rev = version;
-    hash = "sha256-xgrkMz7BCBxjfxHsAz/CFLv1d175LnrAJIOZMM3GmU0=";
+    hash = "sha256-HjDzb1H3eMSraKbfHgg9S+w4TXNt40lQkDz+EChb5Ks=";
   };
 
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang (toString [
diff --git a/nixpkgs/pkgs/applications/misc/keepmenu/default.nix b/nixpkgs/pkgs/applications/misc/keepmenu/default.nix
index d10c10c231d6..040f2f6f61a7 100644
--- a/nixpkgs/pkgs/applications/misc/keepmenu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/keepmenu/default.nix
@@ -42,6 +42,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/firecat53/keepmenu";
     description = "Dmenu/Rofi frontend for Keepass databases";
+    mainProgram = "keepmenu";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ elliot ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/keeweb/default.nix b/nixpkgs/pkgs/applications/misc/keeweb/default.nix
index 7af5465ad9e0..22f3ad668ccb 100644
--- a/nixpkgs/pkgs/applications/misc/keeweb/default.nix
+++ b/nixpkgs/pkgs/applications/misc/keeweb/default.nix
@@ -65,6 +65,7 @@ let
 
   meta = with lib; {
     description = "Free cross-platform password manager compatible with KeePass";
+    mainProgram = "keeweb";
     homepage = "https://keeweb.info/";
     changelog = "https://github.com/keeweb/keeweb/blob/v${version}/release-notes.md";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/nixpkgs/pkgs/applications/misc/keystore-explorer/default.nix b/nixpkgs/pkgs/applications/misc/keystore-explorer/default.nix
index a79169ff633e..fb5990f5dca0 100644
--- a/nixpkgs/pkgs/applications/misc/keystore-explorer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/keystore-explorer/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Open source GUI replacement for the Java command-line utilities keytool and jarsigner";
+    mainProgram = "keystore-explorer";
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license = lib.licenses.gpl3Only;
     maintainers = [ lib.maintainers.numinit ];
diff --git a/nixpkgs/pkgs/applications/misc/kickoff/default.nix b/nixpkgs/pkgs/applications/misc/kickoff/default.nix
index 21018f509b1c..cd1a57a09f35 100644
--- a/nixpkgs/pkgs/applications/misc/kickoff/default.nix
+++ b/nixpkgs/pkgs/applications/misc/kickoff/default.nix
@@ -35,6 +35,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Minimalistic program launcher";
+    mainProgram = "kickoff";
     homepage = "https://github.com/j0ru/kickoff";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ pyxels ];
diff --git a/nixpkgs/pkgs/applications/misc/kiwix/default.nix b/nixpkgs/pkgs/applications/misc/kiwix/default.nix
index 6e255b74f4b1..e804f890b832 100644
--- a/nixpkgs/pkgs/applications/misc/kiwix/default.nix
+++ b/nixpkgs/pkgs/applications/misc/kiwix/default.nix
@@ -39,6 +39,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "An offline reader for Web content";
+    mainProgram = "kiwix-desktop";
     homepage = "https://kiwix.org";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/kiwix/tools.nix b/nixpkgs/pkgs/applications/misc/kiwix/tools.nix
index 979ce433fb4b..b5e123b41264 100644
--- a/nixpkgs/pkgs/applications/misc/kiwix/tools.nix
+++ b/nixpkgs/pkgs/applications/misc/kiwix/tools.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "kiwix-tools";
-  version = "3.6.0";
+  version = "3.7.0";
 
   src = fetchFromGitHub {
     owner = "kiwix";
     repo = "kiwix-tools";
     rev = finalAttrs.version;
-    hash = "sha256-+th86lMAuCcmWj06yQoZ1L7rLZKqNvuTrV+Rra2km44=";
+    hash = "sha256-JwF4EN5kyHEfNoMhHb9ywe+7pmgQtjEd2FeRUeTjvQw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/kjv/lukesmithxyz-kjv.nix b/nixpkgs/pkgs/applications/misc/kjv/lukesmithxyz-kjv.nix
index 7cec6c592235..27a1a9050284 100644
--- a/nixpkgs/pkgs/applications/misc/kjv/lukesmithxyz-kjv.nix
+++ b/nixpkgs/pkgs/applications/misc/kjv/lukesmithxyz-kjv.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Read the Word of God from your terminal + Apocrypha";
+    mainProgram = "kjv";
     homepage = "https://lukesmith.xyz/articles/command-line-bibles";
     license = licenses.unlicense;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/klayout/default.nix b/nixpkgs/pkgs/applications/misc/klayout/default.nix
index a119dc6633f2..0b1bc647917a 100644
--- a/nixpkgs/pkgs/applications/misc/klayout/default.nix
+++ b/nixpkgs/pkgs/applications/misc/klayout/default.nix
@@ -58,6 +58,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "High performance layout viewer and editor with support for GDS and OASIS";
+    mainProgram = "klayout";
     license = with licenses; [ gpl2Plus ];
     homepage = "https://www.klayout.de/";
     changelog = "https://www.klayout.de/development.html#${version}";
diff --git a/nixpkgs/pkgs/applications/misc/klipper-estimator/default.nix b/nixpkgs/pkgs/applications/misc/klipper-estimator/default.nix
index baecf249a6b9..2eff4a1cf08d 100644
--- a/nixpkgs/pkgs/applications/misc/klipper-estimator/default.nix
+++ b/nixpkgs/pkgs/applications/misc/klipper-estimator/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "klipper-estimator";
-  version = "3.6.0";
+  version = "3.7.1";
 
   src = fetchFromGitHub {
     owner = "Annex-Engineering";
     repo = "klipper_estimator";
     rev = "v${version}";
-    hash = "sha256-1Od4sIHrg52DezV5DCg2NVv/2nbXQW3fK6f9aqVmlTk=";
+    hash = "sha256-zRHV8Bc4+diSfb/hhBxBTaSiZHlKZ9wgd8DZ4Kt6nf0=";
   };
 
-  cargoHash = "sha256-5O2KUTegK5ArTalJ57/Kn9lzlkmAIXnzluljvfrIc5U=";
+  cargoHash = "sha256-zozZuVzn/xYjmP9+B5uzIBuu/rx/tymgvOuiKz617eo=";
 
   buildInputs =
     [ openssl ]
diff --git a/nixpkgs/pkgs/applications/misc/klipperscreen/default.nix b/nixpkgs/pkgs/applications/misc/klipperscreen/default.nix
index 8589991ff522..789ab7c68828 100644
--- a/nixpkgs/pkgs/applications/misc/klipperscreen/default.nix
+++ b/nixpkgs/pkgs/applications/misc/klipperscreen/default.nix
@@ -48,7 +48,7 @@
   meta = with lib; {
     description = "Touchscreen GUI for the Klipper 3D printer firmware";
     homepage = "https://github.com/jordanruthe/KlipperScreen";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ cab404 ];
     mainProgram = "KlipperScreen";
   };
diff --git a/nixpkgs/pkgs/applications/misc/konsave/default.nix b/nixpkgs/pkgs/applications/misc/konsave/default.nix
index 75950d28e232..f86f2c19c6c0 100644
--- a/nixpkgs/pkgs/applications/misc/konsave/default.nix
+++ b/nixpkgs/pkgs/applications/misc/konsave/default.nix
@@ -19,6 +19,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Save Linux Customization";
+    mainProgram = "konsave";
     maintainers = with maintainers; [ MoritzBoehme ];
     homepage = "https://github.com/Prayag2/konsave";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/applications/misc/koreader/default.nix b/nixpkgs/pkgs/applications/misc/koreader/default.nix
index b24ae5d06ad2..857ca1d26a8e 100644
--- a/nixpkgs/pkgs/applications/misc/koreader/default.nix
+++ b/nixpkgs/pkgs/applications/misc/koreader/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/koreader/koreader";
     description =
       "An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices";
+    mainProgram = "koreader";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = [ "aarch64-linux" "x86_64-linux" ];
     license = licenses.agpl3Only;
diff --git a/nixpkgs/pkgs/applications/misc/krename/default.nix b/nixpkgs/pkgs/applications/misc/krename/default.nix
index 6d575709208e..98ba8836efca 100644
--- a/nixpkgs/pkgs/applications/misc/krename/default.nix
+++ b/nixpkgs/pkgs/applications/misc/krename/default.nix
@@ -35,6 +35,7 @@ in mkDerivation rec {
 
   meta = with lib; {
     description = "A powerful batch renamer for KDE";
+    mainProgram = "krename";
     homepage = "https://kde.org/applications/utilities/krename/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/applications/misc/ksmoothdock/default.nix b/nixpkgs/pkgs/applications/misc/ksmoothdock/default.nix
index 80c46bd9c16d..c592d944c632 100644
--- a/nixpkgs/pkgs/applications/misc/ksmoothdock/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ksmoothdock/default.nix
@@ -32,6 +32,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A cool desktop panel for KDE Plasma 5";
+    mainProgram = "ksmoothdock";
     license = licenses.mit;
     homepage = "https://dangvd.github.io/ksmoothdock/";
     maintainers = with maintainers; [ shamilton ];
diff --git a/nixpkgs/pkgs/applications/misc/kuro/default.nix b/nixpkgs/pkgs/applications/misc/kuro/default.nix
index 50a773b5c518..55a2e04c9326 100644
--- a/nixpkgs/pkgs/applications/misc/kuro/default.nix
+++ b/nixpkgs/pkgs/applications/misc/kuro/default.nix
@@ -5,18 +5,21 @@
 , makeDesktopItem
 , copyDesktopItems
 , mkYarnPackage
-, electron
+, electron_29
 }:
 
+let
+  electron = electron_29;
+in
 mkYarnPackage rec {
   pname = "kuro";
   version = "9.0.0";
 
   src = fetchFromGitHub {
     owner = "davidsmorais";
-    repo = pname;
+    repo = "kuro";
     rev = "v${version}";
-    sha256 = "sha256-9Z/r5T5ZI5aBghHmwiJcft/x/wTRzDlbIupujN2RFfU=";
+    hash = "sha256-9Z/r5T5ZI5aBghHmwiJcft/x/wTRzDlbIupujN2RFfU=";
   };
 
   packageJSON = ./package.json;
@@ -26,7 +29,7 @@ mkYarnPackage rec {
     hash = "sha256-GTiNv7u1QK/wjQgpka7REuoLn2wjZG59kYJQaZZPycI=";
   };
 
-  ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
+  env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
 
   nativeBuildInputs = [
     makeWrapper
@@ -68,21 +71,23 @@ mkYarnPackage rec {
 
   desktopItems = [
     (makeDesktopItem {
-      name = pname;
-      exec = pname;
-      icon = pname;
+      name = "kuro";
+      exec = "kuro";
+      icon = "kuro";
       desktopName = "Kuro";
       genericName = "Microsoft To-Do Client";
       comment = meta.description;
       categories = [ "Office" ];
-      startupWMClass = pname;
+      startupWMClass = "kuro";
     })
   ];
 
   meta = with lib; {
+    changelog = "https://github.com/davidsmorais/kuro/releases/tag/${src.rev}";
     description = "An unofficial, featureful, open source, community-driven, free Microsoft To-Do app";
     homepage = "https://github.com/davidsmorais/kuro";
     license = licenses.mit;
+    mainProgram = "kuro";
     maintainers = with maintainers; [ ChaosAttractor ];
     inherit (electron.meta) platforms;
   };
diff --git a/nixpkgs/pkgs/applications/misc/latte-dock/default.nix b/nixpkgs/pkgs/applications/misc/latte-dock/default.nix
index 6562cd7b4a29..ae1b13cc870a 100644
--- a/nixpkgs/pkgs/applications/misc/latte-dock/default.nix
+++ b/nixpkgs/pkgs/applications/misc/latte-dock/default.nix
@@ -30,6 +30,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Dock-style app launcher based on Plasma frameworks";
+    mainProgram = "latte-dock";
     homepage = "https://invent.kde.org/plasma/latte-dock";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/loxodo/default.nix b/nixpkgs/pkgs/applications/misc/loxodo/default.nix
index 77dd39bc0601..a5b729c3cf3b 100644
--- a/nixpkgs/pkgs/applications/misc/loxodo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/loxodo/default.nix
@@ -33,6 +33,7 @@ python3.pkgs.buildPythonApplication {
 
   meta = with lib; {
     description = "A Password Safe V3 compatible password vault";
+    mainProgram = "loxodo";
     homepage = "https://www.christoph-sommer.de/loxodo/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/makehuman/default.nix b/nixpkgs/pkgs/applications/misc/makehuman/default.nix
new file mode 100644
index 000000000000..70cb33643ee6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/makehuman/default.nix
@@ -0,0 +1,145 @@
+{ stdenv
+, lib
+, fetchpatch
+, fetchFromGitHub
+, python3
+, qtbase
+, qttools
+, git-lfs
+, wrapQtAppsHook
+}:
+
+let
+  pydeps = with python3.pkgs; [
+    numpy
+    pyqt5
+    pyopengl
+  ];
+  python = python3.withPackages (pkgs: pydeps);
+in
+stdenv.mkDerivation rec {
+  pname = "makehuman";
+  version = "1.2.0";
+
+  source = fetchFromGitHub {
+    owner = "makehumancommunity";
+    repo = "makehuman";
+    rev = "v${version}";
+    hash = "sha256-mCv6H0B7b4uxozpNHkKsG+Is2H0QYEJnnzKCHixhBpY=";
+    name = "${pname}-source";
+  };
+
+  assets = fetchFromGitHub {
+    owner = "makehumancommunity";
+    repo = "makehuman-assets";
+    rev = "v${version}";
+    hash = "sha256-Jd2A0PAHVdFMnDLq4Mu5wsK/E6A4QpKjUyv66ix1Gbo=";
+    name = "${pname}-assets-source";
+  };
+
+  patches = [
+    # work with numpy>=1.24
+    (fetchpatch {
+      name = "fix-compile_targets.py-when-using-numpy-1.24.0-or-newer";
+      url = "https://patch-diff.githubusercontent.com/raw/makehumancommunity/makehuman/pull/220.patch";
+      hash = "sha256-ip7U83cCBrl+4gM1GZ2QQIER5Qur6HRu3a/TnHqk//g=";
+    })
+    # crash related to collections.Callable -> collections.abc.Callable
+    (fetchpatch {
+      name = "remove-unnecessary-compatibility-test";
+      url = "https://patch-diff.githubusercontent.com/raw/makehumancommunity/makehuman/pull/188.patch";
+      hash = "sha256-HGrk3n7rhV4YgK8mNUdfHwQl8dFT8yuzjxorvwfMmJw=";
+    })
+    # some OpenGL issue causing blank windows on recent Qt
+    (fetchpatch {
+      name = "qt-opengl-update-from-qglwidget-to-qopenglwidget-to-fix-blank";
+      url = "https://patch-diff.githubusercontent.com/raw/makehumancommunity/makehuman/pull/197.patch";
+      hash = "sha256-fEqBwg1Jd36nKWIT9XPr6Buj1N3AmTQg2LBaoX3eTxw=";
+    })
+    # multisampling issue
+    (fetchpatch {
+      name = "switch-default-for-multisampling-and-disable-sample-buffers";
+      url = "https://github.com/makehumancommunity/makehuman/commit/c47b884028a24eb190d097e7523a3059e439cb6f.patch";
+      hash = "sha256-tknQHX9qQYH15gyOLNhxfO3bsFVIv3Z1F7ZXD1IT1h4=";
+    })
+    # PyQt >= 5.12
+    (fetchpatch {
+      name = "fix-scrolling-issue-on-pyqt5>=5.12";
+      url = "https://github.com/makehumancommunity/makehuman/commit/02c4269a2d4c57f68159fe8f437a8b1978b99099.patch";
+      hash = "sha256-yR5tZcELX0N83PW/vS6yB5xKoZcHhVp48invlu7quWM=";
+    })
+  ];
+
+  srcs = [
+    source
+    assets
+  ];
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [
+    python
+    qtbase
+    git-lfs
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    python
+    qtbase
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pydeps
+  ];
+
+  finalSource = "${pname}-final";
+
+  postUnpack = ''
+    mkdir -p $finalSource
+    cp -r $source/makehuman $finalSource
+    chmod u+w $finalSource --recursive
+    cp -r $assets/base/* $finalSource/makehuman/data
+    chmod u+w $finalSource --recursive
+    sourceRoot=$finalSource
+  '';
+
+  configurePhase = ''
+    runHook preConfigure
+    pushd ./makehuman
+    bash ./cleannpz.sh
+    bash ./cleanpyc.sh
+    python3 ./compile_targets.py
+    python3 ./compile_models.py
+    python3 ./compile_proxies.py
+    popd
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    mkdir -p $out/opt $out/bin
+    cp -r * $out/opt
+    python -m compileall -o 0 -o 2 $out/opt
+    ln -s $out/opt/makehuman/makehuman.py $out/bin/makehuman
+    chmod +x $out/bin/makehuman
+    runHook postBuild
+  '';
+
+  preFixup = ''
+    wrapQtApp $out/bin/makehuman
+  '';
+
+  meta = {
+    description = "Software to create realistic humans";
+    homepage = "http://www.makehumancommunity.org/";
+    license = with lib.licenses; [ agpl3Plus cc0 ];
+    longDescription = ''
+      MakeHuman is a GUI program for procedurally generating
+      realistic-looking humans.
+    '';
+    mainProgram = "makehuman";
+    maintainers = with lib.maintainers; [ elisesouche ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/makeself/default.nix b/nixpkgs/pkgs/applications/misc/makeself/default.nix
index 7c2d33aebc00..91a2e11b3666 100644
--- a/nixpkgs/pkgs/applications/misc/makeself/default.nix
+++ b/nixpkgs/pkgs/applications/misc/makeself/default.nix
@@ -23,16 +23,18 @@ stdenv.mkDerivation rec {
   checkTarget = "test";
   nativeCheckInputs = [ which zstd pbzip2 ];
 
+  sharePath = "$out/share/${pname}";
+
   installPhase = ''
     runHook preInstall
     installManPage makeself.1
     install -Dm555 makeself.sh $out/bin/makeself
-    install -Dm444 -t $out/share/${pname}/ makeself.lsm README.md makeself-header.sh
+    install -Dm444 -t ${sharePath}/ makeself.lsm README.md makeself-header.sh
     runHook postInstall
   '';
 
   fixupPhase = ''
-    sed -e "s|^HEADER=.*|HEADER=$out/share/${pname}-${version}/makeself-header.sh|" -i $out/bin/makeself
+    sed -e "s|^HEADER=.*|HEADER=${sharePath}/makeself-header.sh|" -i $out/bin/makeself
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/misc/maliit-framework/default.nix b/nixpkgs/pkgs/applications/misc/maliit-framework/default.nix
index ce8ebef16a89..2f30e805c584 100644
--- a/nixpkgs/pkgs/applications/misc/maliit-framework/default.nix
+++ b/nixpkgs/pkgs/applications/misc/maliit-framework/default.nix
@@ -70,6 +70,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Core libraries of Maliit and server";
+    mainProgram = "maliit-server";
     homepage = "http://maliit.github.io/";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ samueldr ];
diff --git a/nixpkgs/pkgs/applications/misc/maliit-keyboard/default.nix b/nixpkgs/pkgs/applications/misc/maliit-keyboard/default.nix
index b662c2522df8..3669dfe5a5b7 100644
--- a/nixpkgs/pkgs/applications/misc/maliit-keyboard/default.nix
+++ b/nixpkgs/pkgs/applications/misc/maliit-keyboard/default.nix
@@ -67,6 +67,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Virtual keyboard";
+    mainProgram = "maliit-keyboard";
     homepage = "http://maliit.github.io/";
     license = with licenses; [ lgpl3Only bsd3 cc-by-30 ];
     maintainers = with maintainers; [ samueldr ];
diff --git a/nixpkgs/pkgs/applications/misc/mbutil/default.nix b/nixpkgs/pkgs/applications/misc/mbutil/default.nix
index 69b61afaee55..13809abe3929 100644
--- a/nixpkgs/pkgs/applications/misc/mbutil/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mbutil/default.nix
@@ -16,6 +16,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "An importer and exporter for MBTiles";
+    mainProgram = "mb-util";
     homepage = "https://github.com/mapbox/mbutil";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/mediaelch/default.nix b/nixpkgs/pkgs/applications/misc/mediaelch/default.nix
index bc85e674c575..b1d472a605a6 100644
--- a/nixpkgs/pkgs/applications/misc/mediaelch/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mediaelch/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://mediaelch.de/mediaelch/";
     description = "Media Manager for Kodi";
+    mainProgram = "MediaElch";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ stunkymonkey ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix b/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix
index e4b734b89aac..bbb4f6432fb4 100644
--- a/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix
@@ -6,11 +6,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mediainfo-gui";
-  version = "23.11";
+  version = "24.01.1";
 
   src = fetchurl {
     url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    hash = "sha256-gByxsNG//MEibeymISoe41Mi6LsSYwozu7B6kqioycM=";
+    hash = "sha256-MupkbVyGxj1UQY0QsnNiYKtD5Lcn+B6N1ez16bXj/TQ=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/applications/misc/meerk40t/default.nix b/nixpkgs/pkgs/applications/misc/meerk40t/default.nix
index b07133ecbbc2..c1a0b41a58ac 100644
--- a/nixpkgs/pkgs/applications/misc/meerk40t/default.nix
+++ b/nixpkgs/pkgs/applications/misc/meerk40t/default.nix
@@ -74,6 +74,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     changelog = "https://github.com/meerk40t/meerk40t/releases/tag/${version}";
     description = "MeerK40t LaserCutter Software";
+    mainProgram = "meerk40t";
     homepage = "https://github.com/meerk40t/meerk40t";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/applications/misc/menumaker/default.nix b/nixpkgs/pkgs/applications/misc/menumaker/default.nix
index c0958cd23537..23ec74cd8b8d 100644
--- a/nixpkgs/pkgs/applications/misc/menumaker/default.nix
+++ b/nixpkgs/pkgs/applications/misc/menumaker/default.nix
@@ -13,6 +13,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Heuristics-driven menu generator for several window managers";
+    mainProgram = "mmaker";
     homepage = "https://menumaker.sourceforge.net";
     license = licenses.bsd2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix b/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix
index 88df68f55979..24970e7a5832 100644
--- a/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix
+++ b/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix
@@ -57,6 +57,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Python GTK application to view and clean metadata in files, using mat2";
+    mainProgram = "metadata-cleaner";
     homepage = "https://gitlab.com/rmnvgr/metadata-cleaner";
     changelog = "https://gitlab.com/rmnvgr/metadata-cleaner/-/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ gpl3Plus cc-by-sa-40 ];
diff --git a/nixpkgs/pkgs/applications/misc/michabo/default.nix b/nixpkgs/pkgs/applications/misc/michabo/default.nix
index c356dc19786d..6329bd9d2495 100644
--- a/nixpkgs/pkgs/applications/misc/michabo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/michabo/default.nix
@@ -43,6 +43,7 @@ in mkDerivation rec {
 
   meta = with lib; {
     description = "A native desktop app for Pleroma and Mastodon servers";
+    mainProgram = "Michabo";
     homepage = "https://git.pleroma.social/kaniini/michabo";
     license = licenses.gpl3;
     maintainers = with maintainers; [ fgaz ];
diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/build.xml.patch b/nixpkgs/pkgs/applications/misc/mkgmap/build.xml.patch
index 2aced4452062..567c0d5586f8 100644
--- a/nixpkgs/pkgs/applications/misc/mkgmap/build.xml.patch
+++ b/nixpkgs/pkgs/applications/misc/mkgmap/build.xml.patch
@@ -1,14 +1,6 @@
 --- a/build.xml	(revision 4555)
 +++ a/build.xml	(working copy)
-@@ -222,13 +222,13 @@
- 		<property name="svn.version.build" value="none"/>
- 
- 		<propertyfile file="${build.classes}/mkgmap-version.properties">
--			<entry key="svn.version" value="${svn.version.build}" />
--			<entry key="build.timestamp" value="${build.timestamp}" />
-+			<entry key="svn.version" value="@version@" />
-+			<entry key="build.timestamp" value="unknown" />
- 		</propertyfile>
+@@ -228,7 +228,7 @@
  	</target>
  
  	<!-- Compile the product itself (no tests). -->
@@ -35,12 +27,3 @@
  		<mkdir dir="tmp/report"/>
  		<junit printsummary="yes" failureproperty="junit.failure" forkmode="once">
  
-@@ -351,7 +351,7 @@
- 			ignoreerrors="true"/>
- 	</target>
- 
--	<target name="dist" depends="build, check-version, version-file"
-+	<target name="dist" depends="build, version-file"
- 					description="Make the distribution area">
- 
- 		<mkdir dir="${dist}"/>
diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/default.nix b/nixpkgs/pkgs/applications/misc/mkgmap/default.nix
index 5648e34d8461..7f97818c7452 100644
--- a/nixpkgs/pkgs/applications/misc/mkgmap/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mkgmap/default.nix
@@ -1,11 +1,12 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , fetchsvn
-, substituteAll
 , jdk
 , jre
 , ant
 , makeWrapper
+, stripJavaArchivesHook
 , doCheck ? true
 , withExamples ? false
 }:
@@ -15,23 +16,29 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mkgmap";
-  version = "4917";
+  version = "4918";
 
   src = fetchsvn {
     url = "https://svn.mkgmap.org.uk/mkgmap/mkgmap/trunk";
     rev = version;
-    sha256 = "sha256-7VCEbsvcT7iaJ3MZz4CthJEE9FSJCowAO7PJ9UqmzPA=";
+    sha256 = "sha256-oQ/2KY6xA/kwAroHiPqcIJlcPsTTeStUu8WN/95ZUTw=";
   };
 
   patches = [
-    (substituteAll {
-      # Disable automatic download of dependencies
-      src = ./build.xml.patch;
-      inherit version;
-    })
+    # Disable automatic download of dependencies
+    ./build.xml.patch
+    ./ignore-impure-test.patch
   ];
 
   postPatch = with deps; ''
+    # Manually create version properties file for reproducibility
+    mkdir -p build/classes
+    cat > build/classes/mkgmap-version.properties << EOF
+      svn.version=${version}
+      build.timestamp=unknown
+    EOF
+
+    # Put pre-fetched dependencies into the right place
     mkdir -p lib/compile
     cp ${fastutil} lib/compile/${fastutil.name}
     cp ${osmpbf} lib/compile/${osmpbf.name}
@@ -51,38 +58,53 @@ stdenv.mkDerivation rec {
     '') testInputs}
   '';
 
-  nativeBuildInputs = [ jdk ant makeWrapper ];
+  nativeBuildInputs = [ jdk ant makeWrapper stripJavaArchivesHook ];
 
-  buildPhase = "ant";
+  buildPhase = ''
+    runHook preBuild
+    ant
+    runHook postBuild
+  '';
 
   inherit doCheck;
 
-  checkPhase = "ant test";
+  checkPhase = ''
+    runHook preCheck
+    ant test
+    runHook postCheck
+  '';
 
   installPhase = ''
+    runHook preInstall
+
     install -Dm644 dist/mkgmap.jar -t $out/share/java/mkgmap
     install -Dm644 dist/doc/mkgmap.1 -t $out/share/man/man1
     cp -r dist/lib/ $out/share/java/mkgmap/
     makeWrapper ${jre}/bin/java $out/bin/mkgmap \
       --add-flags "-jar $out/share/java/mkgmap/mkgmap.jar"
-  '' + lib.optionalString withExamples ''
-    mkdir -p $out/share/mkgmap
-    cp -r dist/examples $out/share/mkgmap/
+
+    ${lib.optionalString withExamples ''
+      mkdir -p $out/share/mkgmap
+      cp -r dist/examples $out/share/mkgmap/
+    ''}
+
+    runHook postInstall
   '';
 
   passthru.updateScript = [ ./update.sh "mkgmap" meta.downloadPage ];
 
   meta = with lib; {
     description = "Create maps for Garmin GPS devices from OpenStreetMap (OSM) data";
-    homepage = "https://www.mkgmap.org.uk/";
     downloadPage = "https://www.mkgmap.org.uk/download/mkgmap.html";
-    sourceProvenance = with sourceTypes; [
-      fromSource
-      binaryBytecode  # deps
-    ];
+    homepage = "https://www.mkgmap.org.uk/";
     license = licenses.gpl2Only;
+    mainProgram = "mkgmap";
     maintainers = with maintainers; [ sikmir ];
     platforms = platforms.all;
-    mainProgram = "mkgmap";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode # deps
+    ];
   };
+
 }
diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/ignore-impure-test.patch b/nixpkgs/pkgs/applications/misc/mkgmap/ignore-impure-test.patch
new file mode 100644
index 000000000000..1ed2f7092f08
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/mkgmap/ignore-impure-test.patch
@@ -0,0 +1,20 @@
+diff --git a/test/uk/me/parabola/imgfmt/app/srt/SrtCollatorTest.java b/test/uk/me/parabola/imgfmt/app/srt/SrtCollatorTest.java
+index e1e4ac7..954b918 100644
+--- a/test/uk/me/parabola/imgfmt/app/srt/SrtCollatorTest.java
++++ b/test/uk/me/parabola/imgfmt/app/srt/SrtCollatorTest.java
+@@ -17,6 +17,7 @@ import java.text.Collator;
+ import uk.me.parabola.mkgmap.srt.SrtTextReader;
+ 
+ import org.junit.Before;
++import org.junit.Ignore;
+ import org.junit.Test;
+ 
+ import static org.junit.Assert.*;
+@@ -111,6 +112,7 @@ public class SrtCollatorTest {
+ 	 * meant to be identical to the java one.
+ 	 */
+ 	@Test
++	@Ignore
+ 	public void testJavaRules() {
+ 		Collator collator = Collator.getInstance();
+ 
diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/splitter/build.xml.patch b/nixpkgs/pkgs/applications/misc/mkgmap/splitter/build.xml.patch
index a028dbef0314..1fb0a14ef4c3 100644
--- a/nixpkgs/pkgs/applications/misc/mkgmap/splitter/build.xml.patch
+++ b/nixpkgs/pkgs/applications/misc/mkgmap/splitter/build.xml.patch
@@ -1,13 +1,6 @@
 --- a/build.xml	(revision 597)
 +++ a/build.xml	(working copy)
-@@ -207,12 +207,12 @@
- 		<property name="svn.version.build" value="unknown"/>
- 
- 		<propertyfile file="${build.classes}/splitter-version.properties">
--			<entry key="svn.version" value="${svn.version.build}" />
--			<entry key="build.timestamp" value="${build.timestamp}" />
-+			<entry key="svn.version" value="@version@" />
-+			<entry key="build.timestamp" value="unknown" />
+@@ -212,7 +212,7 @@
  		</propertyfile>
  	</target>
  
@@ -25,15 +18,6 @@
      <javac srcdir="${test}" destdir="${build.test-classes}" debug="yes" includeantruntime="false">
        <include name="**/*.java"/>
        <classpath refid="test.classpath"/>
-@@ -261,7 +261,7 @@
- 	  <fail if="junit.failure" message="Test failed.  See test-reports/index.html"/>
- 	</target>
- 
--  <target name="dist" depends="build, check-version, version-file" description="Make the distribution area">
-+  <target name="dist" depends="build, version-file" description="Make the distribution area">
- 
-     <mkdir dir="${dist}"/>
-     <mkdir dir="${dist}/doc/api"/>
 @@ -324,7 +324,7 @@
  	</target>
  
diff --git a/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix b/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix
index d9b886cbe2b3..801af789d47d 100644
--- a/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mkgmap/splitter/default.nix
@@ -1,11 +1,12 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , fetchsvn
-, substituteAll
 , jdk
 , jre
 , ant
 , makeWrapper
+, stripJavaArchivesHook
 , doCheck ? true
 }:
 let
@@ -23,17 +24,21 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    (substituteAll {
-      # Disable automatic download of dependencies
-      src = ./build.xml.patch;
-      inherit version;
-    })
-
+    # Disable automatic download of dependencies
+    ./build.xml.patch
     # Fix func.SolverAndProblemGeneratorTest test
     ./fix-failing-test.patch
   ];
 
   postPatch = with deps; ''
+    # Manually create version properties file for reproducibility
+    mkdir -p build/classes
+    cat > build/classes/splitter-version.properties << EOF
+      svn.version=${version}
+      build.timestamp=unknown
+    EOF
+
+    # Put pre-fetched dependencies into the right place
     mkdir -p lib/compile
     cp ${fastutil} lib/compile/${fastutil.name}
     cp ${osmpbf} lib/compile/${osmpbf.name}
@@ -50,34 +55,48 @@ stdenv.mkDerivation rec {
     '') testInputs}
   '';
 
-  nativeBuildInputs = [ jdk ant makeWrapper ];
+  nativeBuildInputs = [ jdk ant makeWrapper stripJavaArchivesHook ];
 
-  buildPhase = "ant";
+  buildPhase = ''
+    runHook preBuild
+    ant
+    runHook postBuild
+  '';
 
   inherit doCheck;
 
-  checkPhase = "ant run.tests && ant run.func-tests";
+  checkPhase = ''
+    runHook preCheck
+    ant run.tests
+    ant run.func-tests
+    runHook postCheck
+  '';
 
   installPhase = ''
+    runHook preInstall
+
     install -Dm644 dist/splitter.jar -t $out/share/java/splitter
     install -Dm644 doc/splitter.1 -t $out/share/man/man1
     cp -r dist/lib/ $out/share/java/splitter/
     makeWrapper ${jre}/bin/java $out/bin/splitter \
       --add-flags "-jar $out/share/java/splitter/splitter.jar"
+
+    runHook postInstall
   '';
 
   passthru.updateScript = [ ../update.sh "mkgmap-splitter" meta.downloadPage ];
 
   meta = with lib; {
     description = "Utility for splitting OpenStreetMap maps into tiles";
-    homepage = "https://www.mkgmap.org.uk/";
     downloadPage = "https://www.mkgmap.org.uk/download/splitter.html";
-    sourceProvenance = with sourceTypes; [
-      fromSource
-      binaryBytecode  # deps
-    ];
+    homepage = "https://www.mkgmap.org.uk/";
     license = licenses.gpl2Only;
+    mainProgram = "splitter";
     maintainers = with maintainers; [ sikmir ];
     platforms = platforms.all;
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode # deps
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/mnamer/default.nix b/nixpkgs/pkgs/applications/misc/mnamer/default.nix
index e928e631c07c..fbcc9e61be45 100644
--- a/nixpkgs/pkgs/applications/misc/mnamer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mnamer/default.nix
@@ -40,6 +40,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/jkwill87/mnamer";
     description = "An intelligent and highly configurable media organization utility";
+    mainProgram = "mnamer";
     license = licenses.mit;
     maintainers = with maintainers; [ urlordjames ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/mob/default.nix b/nixpkgs/pkgs/applications/misc/mob/default.nix
index f41e927185ec..7fb218266fa1 100644
--- a/nixpkgs/pkgs/applications/misc/mob/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mob/default.nix
@@ -35,6 +35,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool for smooth git handover";
+    mainProgram = "mob";
     homepage = "https://github.com/remotemobprogramming/mob";
     license = licenses.mit;
     maintainers = with maintainers; [ ericdallo ];
diff --git a/nixpkgs/pkgs/applications/misc/mozphab/default.nix b/nixpkgs/pkgs/applications/misc/mozphab/default.nix
index 6d8455e6915d..a19297acbc85 100644
--- a/nixpkgs/pkgs/applications/misc/mozphab/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mozphab/default.nix
@@ -71,6 +71,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Phabricator CLI from Mozilla to support submission of a series of commits";
+    mainProgram = "moz-phab";
     longDescription = ''
       moz-phab is a custom command-line tool, which communicates to
       Phabricator’s API, providing several conveniences, including support for
diff --git a/nixpkgs/pkgs/applications/misc/mpvc/default.nix b/nixpkgs/pkgs/applications/misc/mpvc/default.nix
index 58f6962f4c3a..8736abb413ba 100644
--- a/nixpkgs/pkgs/applications/misc/mpvc/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mpvc/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A mpc-like control interface for mpv";
+    mainProgram = "mpvc";
     homepage = "https://github.com/lwilletts/mpvc";
     license = licenses.mit;
     maintainers = [ maintainers.neeasade ];
diff --git a/nixpkgs/pkgs/applications/misc/mwic/default.nix b/nixpkgs/pkgs/applications/misc/mwic/default.nix
index a31d6d5a90ab..6b647aab2473 100644
--- a/nixpkgs/pkgs/applications/misc/mwic/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mwic/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://jwilk.net/software/mwic";
     description = "spell-checker that groups possible misspellings and shows them in their contexts";
+    mainProgram = "mwic";
     license = licenses.mit;
     maintainers = with maintainers; [ matthiasbeyer ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/nerd-font-patcher/default.nix b/nixpkgs/pkgs/applications/misc/nerd-font-patcher/default.nix
index 76bd2a44824e..b4479f10309e 100644
--- a/nixpkgs/pkgs/applications/misc/nerd-font-patcher/default.nix
+++ b/nixpkgs/pkgs/applications/misc/nerd-font-patcher/default.nix
@@ -33,6 +33,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Font patcher to generate Nerd font";
+    mainProgram = "nerd-font-patcher";
     homepage = "https://nerdfonts.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ ck3d ];
diff --git a/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix b/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix
index 17377c6dae55..49f6cf478fbb 100644
--- a/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix
+++ b/nixpkgs/pkgs/applications/misc/notify-osd-customizable/default.nix
@@ -39,6 +39,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Daemon that displays passive pop-up notifications";
+    mainProgram = "notify-osd";
     homepage = "https://launchpad.net/notify-osd";
     license = licenses.gpl3;
     maintainers = [ maintainers.imalison ];
diff --git a/nixpkgs/pkgs/applications/misc/notify-osd/default.nix b/nixpkgs/pkgs/applications/misc/notify-osd/default.nix
index 9c0c5a3921ef..77b5d52c22cf 100644
--- a/nixpkgs/pkgs/applications/misc/notify-osd/default.nix
+++ b/nixpkgs/pkgs/applications/misc/notify-osd/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Daemon that displays passive pop-up notifications";
+    mainProgram = "notify-osd";
     homepage = "https://launchpad.net/notify-osd";
     license = licenses.gpl3;
     maintainers = [ maintainers.bodil ];
diff --git a/nixpkgs/pkgs/applications/misc/notifymuch/default.nix b/nixpkgs/pkgs/applications/misc/notifymuch/default.nix
index e94b6f2f156b..6ba819133ecc 100644
--- a/nixpkgs/pkgs/applications/misc/notifymuch/default.nix
+++ b/nixpkgs/pkgs/applications/misc/notifymuch/default.nix
@@ -43,6 +43,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Display desktop notifications for unread mail in a notmuch database";
+    mainProgram = "notifymuch";
     homepage = "https://github.com/kspi/notifymuch";
     maintainers = with maintainers; [ arjan-s ];
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/applications/misc/numberstation/default.nix b/nixpkgs/pkgs/applications/misc/numberstation/default.nix
index de2c377b26c2..7a1393637dff 100644
--- a/nixpkgs/pkgs/applications/misc/numberstation/default.nix
+++ b/nixpkgs/pkgs/applications/misc/numberstation/default.nix
@@ -62,6 +62,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     changelog = "https://git.sr.ht/~martijnbraam/numberstation/refs/${version}";
     description = "TOTP Authentication application for mobile";
+    mainProgram = "numberstation";
     homepage = "https://sr.ht/~martijnbraam/numberstation/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/applications/misc/nwg-bar/default.nix b/nixpkgs/pkgs/applications/misc/nwg-bar/default.nix
index 0b4b7cd1e255..356b1edb15ae 100644
--- a/nixpkgs/pkgs/applications/misc/nwg-bar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/nwg-bar/default.nix
@@ -38,6 +38,7 @@ buildGoModule rec {
   meta = with lib; {
     description =
       "GTK3-based button bar for sway and other wlroots-based compositors";
+    mainProgram = "nwg-bar";
     homepage = "https://github.com/nwg-piotr/nwg-bar";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/nwg-dock-hyprland/default.nix b/nixpkgs/pkgs/applications/misc/nwg-dock-hyprland/default.nix
index 676af3ec5891..607dd7c22fac 100644
--- a/nixpkgs/pkgs/applications/misc/nwg-dock-hyprland/default.nix
+++ b/nixpkgs/pkgs/applications/misc/nwg-dock-hyprland/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "GTK3-based dock for Hyprland";
+    mainProgram = "nwg-dock-hyprland";
     homepage = "https://github.com/nwg-piotr/nwg-dock-hyprland";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/nwg-menu/default.nix b/nixpkgs/pkgs/applications/misc/nwg-menu/default.nix
index e587396e151a..179b4f71ae64 100644
--- a/nixpkgs/pkgs/applications/misc/nwg-menu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/nwg-menu/default.nix
@@ -39,6 +39,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/nwg-piotr/nwg-menu";
     description = "MenuStart plugin for nwg-panel";
+    mainProgram = "nwg-menu";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ berbiche ];
diff --git a/nixpkgs/pkgs/applications/misc/nwg-panel/default.nix b/nixpkgs/pkgs/applications/misc/nwg-panel/default.nix
index 308a1d0d2cee..b91ed927482f 100644
--- a/nixpkgs/pkgs/applications/misc/nwg-panel/default.nix
+++ b/nixpkgs/pkgs/applications/misc/nwg-panel/default.nix
@@ -16,13 +16,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "nwg-panel";
-  version = "0.9.25";
+  version = "0.9.26";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = "nwg-panel";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dTBV2OckPJNA707PNz/jmfUPpufhItt4EEDHAI79kxQ=";
+    hash = "sha256-FGSMXiVygkA3thHtWaA6s5Kz96PYZgMzQQwIjOr6a0c=";
   };
 
   # No tests
diff --git a/nixpkgs/pkgs/applications/misc/nwg-wrapper/default.nix b/nixpkgs/pkgs/applications/misc/nwg-wrapper/default.nix
index 2ff04c09b82e..5b2862831896 100644
--- a/nixpkgs/pkgs/applications/misc/nwg-wrapper/default.nix
+++ b/nixpkgs/pkgs/applications/misc/nwg-wrapper/default.nix
@@ -31,6 +31,7 @@ python3Packages.buildPythonPackage rec {
 
   meta = with lib; {
     description = "Wrapper to display a script output or a text file content on the desktop in sway or other wlroots-based compositors";
+    mainProgram = "nwg-wrapper";
     homepage = "https://github.com/nwg-piotr/nwg-wrapper/";
     license = licenses.mit;
     maintainers = with maintainers; [ artturin ];
diff --git a/nixpkgs/pkgs/applications/misc/obinskit/default.nix b/nixpkgs/pkgs/applications/misc/obinskit/default.nix
deleted file mode 100644
index 043ff2352e90..000000000000
--- a/nixpkgs/pkgs/applications/misc/obinskit/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, libxkbcommon
-, systemd
-, xorg
-, electron_13
-, makeWrapper
-, makeDesktopItem
-}:
-let
-  desktopItem = makeDesktopItem rec {
-    name = "Obinskit";
-    exec = "obinskit";
-    icon = "obinskit";
-    desktopName = "Obinskit";
-    genericName = "Obinskit keyboard configurator";
-    categories = [ "Utility" ];
-  };
-  electron = electron_13;
-in
-stdenv.mkDerivation rec {
-  pname = "obinskit";
-  version = "1.2.11";
-
-  src = fetchurl {
-    url = "https://s3.hexcore.xyz/occ/linux/tar/ObinsKit_${version}_x64.tar.gz";
-    curlOptsList = [ "--header" "Referer: https://www.hexcore.xyz/" ];
-    hash = "sha256-KhCu1TZsJmcXRSWSTaYOMjt+IA4qqavBwaYzXnkgls0=";
-  };
-
-  unpackPhase = "tar -xzf $src";
-
-  sourceRoot = "ObinsKit_${version}_x64";
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  dontConfigure = true;
-  dontBuild = true;
-
-  installPhase = ''
-    mkdir -p $out/opt/obinskit
-
-    cp -r resources $out/opt/obinskit/
-    cp -r locales $out/opt/obinskit/
-
-    mkdir -p $out/share/{applications,pixmaps}
-    install resources/icons/tray-darwin@2x.png $out/share/pixmaps/obinskit.png
-    ln -s ${desktopItem}/share/applications/* $out/share/applications
-  '';
-
-  postFixup = ''
-    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
-      --add-flags $out/opt/obinskit/resources/app.asar \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc.lib libxkbcommon (lib.getLib systemd) xorg.libXt xorg.libXtst ]}"
-  '';
-
-  meta = with lib; {
-    description = "Graphical configurator for Anne Pro and Anne Pro II keyboards";
-    homepage = "https://www.hexcore.xyz/obinskit";
-    license = licenses.unfree;
-    maintainers = with maintainers; [ shou ];
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/misc/obsidian/default.nix b/nixpkgs/pkgs/applications/misc/obsidian/default.nix
index 586d9744dbe2..0a3569e47305 100644
--- a/nixpkgs/pkgs/applications/misc/obsidian/default.nix
+++ b/nixpkgs/pkgs/applications/misc/obsidian/default.nix
@@ -12,20 +12,20 @@
 let
   inherit (stdenv.hostPlatform) system;
   pname = "obsidian";
-  version = "1.5.8";
+  version = "1.5.11";
   appname = "Obsidian";
   meta = with lib; {
     description = "A powerful knowledge base that works on top of a local folder of plain text Markdown files";
     homepage = "https://obsidian.md";
     downloadPage = "https://github.com/obsidianmd/obsidian-releases/releases";
     license = licenses.obsidian;
-    maintainers = with maintainers; [ atila conradmearns zaninime qbit kashw2 ];
+    maintainers = with maintainers; [ atila conradmearns zaninime qbit kashw2 w-lfchen ];
   };
 
   filename = if stdenv.isDarwin then "Obsidian-${version}-universal.dmg" else "obsidian-${version}.tar.gz";
   src = fetchurl {
     url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/${filename}";
-    hash = if stdenv.isDarwin then "sha256-5olNmOLE9AgVUyRY8PylUPGYIMS+KoDG3g2BMCySdyE=" else "sha256-oc2iA2E3ac/uUNv6unzfac5meHqQzmzDVl/M9jNpS/M=";
+    hash = if stdenv.isDarwin then "sha256-RtIEjVaqYygylhZwFB9ObZPPhSSzvJTJniGVFzAa/VY=" else "sha256-QDxMgisyYc2lJ0OKn2hR0VA8OeAwysCq6Z4Q59qRvtU=";
   };
 
   icon = fetchurl {
diff --git a/nixpkgs/pkgs/applications/misc/octoprint/default.nix b/nixpkgs/pkgs/applications/misc/octoprint/default.nix
index 5b42f1d08c3c..0a13013e5da2 100644
--- a/nixpkgs/pkgs/applications/misc/octoprint/default.nix
+++ b/nixpkgs/pkgs/applications/misc/octoprint/default.nix
@@ -38,6 +38,16 @@ let
                 hash = "sha256-7e6bCn/yZiG9WowQ/0hK4oc3okENmbC7mmhQx/uXeqA=";
               };
             });
+
+            netaddr = super.netaddr.overridePythonAttrs (oldAttrs: rec {
+              version = "0.9.0";
+
+              src = fetchPypi {
+                pname = "netaddr";
+                inherit version;
+                hash = "sha256-e0b6mxotcf1d6eSjeE7zOXAKU6CMgEDwi69fEZTaASg=";
+              };
+            });
           }
         )
 
@@ -246,6 +256,7 @@ let
               meta = with lib; {
                 homepage = "https://octoprint.org/";
                 description = "The snappy web interface for your 3D printer";
+                mainProgram = "octoprint";
                 license = licenses.agpl3Only;
                 maintainers = with maintainers; [ abbradar gebner WhittlesJr gador ];
               };
diff --git a/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix b/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix
index af251385fceb..ff920edbc272 100644
--- a/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix
+++ b/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix
@@ -53,7 +53,7 @@ in
     meta = with lib; {
       description = "Marlin auto bed leveling control, mesh correction, and z probe handling";
       homepage = "https://framagit.org/razer/Octoprint_ABL_Expert/";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ WhittlesJr ];
     };
   };
@@ -72,7 +72,7 @@ in
     meta = with lib; {
       description = "Displays 3D mesh of bed topography report";
       homepage = "https://github.com/jneilliii/OctoPrint-BedLevelVisualizer";
-      license = licenses.agpl3;
+      license = licenses.mit;
       maintainers = with maintainers; [ lovesegfault ];
     };
   };
@@ -110,7 +110,7 @@ in
     meta = with lib; {
       description = "Plugin for slicing via Cura Legacy from within OctoPrint";
       homepage = "https://github.com/OctoPrint/OctoPrint-CuraEngineLegacy";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ gebner ];
     };
   };
@@ -148,7 +148,7 @@ in
     meta = with lib; {
       description = "OctoPrint-Plugin that sends the current progress of a print via M117 command";
       homepage = "https://github.com/OllisGit/OctoPrint-DisplayLayerProgress";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ j0hax ];
     };
   };
@@ -186,7 +186,7 @@ in
     meta = with lib; {
       description = "Edit gcode on OctoPrint";
       homepage = "https://github.com/ieatacid/OctoPrint-GcodeEditor";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ WhittlesJr ];
     };
   };
@@ -205,7 +205,7 @@ in
     meta = with lib; {
       description = "Displays GCode documentation for Marlin in the Octoprint terminal command line";
       homepage = "https://github.com/costas-basdekis/MarlinGcodeDocumentation";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ lovesegfault ];
     };
   };
@@ -226,7 +226,7 @@ in
     meta = with lib; {
       description = "Publish printer status MQTT";
       homepage = "https://github.com/OctoPrint/OctoPrint-MQTT";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ peterhoeg ];
     };
   };
@@ -256,7 +256,7 @@ in
     meta = with lib; {
       description = "Better print time estimation for OctoPrint";
       homepage = "https://github.com/eyal0/OctoPrint-PrintTimeGenius";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ gebner ];
     };
   };
@@ -284,7 +284,7 @@ in
     meta = with lib; {
       description = "OctoPrint plugin to control ATX/AUX power supply";
       homepage = "https://github.com/kantlivelong/OctoPrint-PSUControl";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ gebner ];
     };
   };
@@ -303,7 +303,7 @@ in
     meta = with lib; {
       description = "A simple plugin that add an emergency stop buton on NavBar of OctoPrint";
       homepage = "https://github.com/Sebclem/OctoPrint-SimpleEmergencyStop";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ WhittlesJr ];
     };
   };
@@ -322,7 +322,7 @@ in
     meta = with lib; {
       description = "A simple stl viewer tab for OctoPrint";
       homepage = "https://github.com/jneilliii/Octoprint-STLViewer";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ abbradar ];
     };
   };
@@ -362,7 +362,7 @@ in
     meta = with lib; {
       description = "Beautiful themes for OctoPrint";
       homepage = "https://github.com/birkbjo/OctoPrint-Themeify";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ lovesegfault ];
     };
   };
@@ -381,7 +381,7 @@ in
     meta = with lib; {
       description = "Show printers status in window title";
       homepage = "https://github.com/MoonshineSG/OctoPrint-TitleStatus";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ abbradar ];
     };
   };
@@ -400,7 +400,7 @@ in
     meta = with lib; {
       description = "Touch friendly interface for a small TFT module or phone for OctoPrint";
       homepage = "https://github.com/BillyBlaze/OctoPrint-TouchUI";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ gebner ];
     };
   };
@@ -419,7 +419,7 @@ in
     meta = with lib; {
       description = "A plugin for a better integration of Klipper into OctoPrint";
       homepage = "https://github.com/AliceGrey/OctoprintKlipperPlugin";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ lovesegfault ];
     };
   };
@@ -473,7 +473,7 @@ in
     meta = with lib; {
       description = "A dashboard for Octoprint";
       homepage = "https://github.com/StefanCohen/OctoPrint-Dashboard";
-      license = licenses.agpl3;
+      license = licenses.agpl3Plus;
       maintainers = with maintainers; [ j0hax ];
     };
   };
diff --git a/nixpkgs/pkgs/applications/misc/omegat.nix b/nixpkgs/pkgs/applications/misc/omegat.nix
index da4de96fbce0..5349add035ae 100644
--- a/nixpkgs/pkgs/applications/misc/omegat.nix
+++ b/nixpkgs/pkgs/applications/misc/omegat.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "The free computer aided translation (CAT) tool for professionals";
+    mainProgram = "omegat";
     longDescription = ''
       OmegaT is a free and open source multiplatform Computer Assisted Translation
       tool with fuzzy matching, translation memory, keyword search, glossaries, and
diff --git a/nixpkgs/pkgs/applications/misc/openbangla-keyboard/default.nix b/nixpkgs/pkgs/applications/misc/openbangla-keyboard/default.nix
index 4b7e1ec8c16a..108bb1aeff0d 100644
--- a/nixpkgs/pkgs/applications/misc/openbangla-keyboard/default.nix
+++ b/nixpkgs/pkgs/applications/misc/openbangla-keyboard/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation rec {
   meta = {
     isIbusEngine = withIbusSupport;
     description = "An OpenSource, Unicode compliant Bengali Input Method";
+    mainProgram = "openbangla-gui";
     homepage = "https://openbangla.github.io/";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ eclairevoyant hqurve ];
diff --git a/nixpkgs/pkgs/applications/misc/openbrf/default.nix b/nixpkgs/pkgs/applications/misc/openbrf/default.nix
index 63734811ff43..03b3cde0c835 100644
--- a/nixpkgs/pkgs/applications/misc/openbrf/default.nix
+++ b/nixpkgs/pkgs/applications/misc/openbrf/default.nix
@@ -50,6 +50,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "A tool to edit resource files (BRF)";
+    mainProgram = "openBrf";
     homepage = "https://github.com/cfcohen/openbrf";
     maintainers = with lib.maintainers; [ abbradar ];
     license = licenses.free;
diff --git a/nixpkgs/pkgs/applications/misc/opentrack/default.nix b/nixpkgs/pkgs/applications/misc/opentrack/default.nix
index 84edbc567b41..d28a9e52a902 100644
--- a/nixpkgs/pkgs/applications/misc/opentrack/default.nix
+++ b/nixpkgs/pkgs/applications/misc/opentrack/default.nix
@@ -71,6 +71,7 @@ in
     meta = with lib; {
       homepage = "https://github.com/opentrack/opentrack";
       description = "Head tracking software for MS Windows, Linux, and Apple OSX";
+      mainProgram = "opentrack";
       changelog = "https://github.com/opentrack/opentrack/releases/tag/${version}";
       license = licenses.isc;
       maintainers = with maintainers; [zaninime];
diff --git a/nixpkgs/pkgs/applications/misc/orca/default.nix b/nixpkgs/pkgs/applications/misc/orca/default.nix
index fdb7d3ac9879..283970a6e75e 100644
--- a/nixpkgs/pkgs/applications/misc/orca/default.nix
+++ b/nixpkgs/pkgs/applications/misc/orca/default.nix
@@ -98,6 +98,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Projects/Orca";
     description = "Screen reader";
+    mainProgram = "orca";
     longDescription = ''
       A free, open source, flexible and extensible screen reader that provides
       access to the graphical desktop via speech and refreshable braille.
diff --git a/nixpkgs/pkgs/applications/misc/osmctools/default.nix b/nixpkgs/pkgs/applications/misc/osmctools/default.nix
index fc46ffb7ffac..230bc80d180a 100644
--- a/nixpkgs/pkgs/applications/misc/osmctools/default.nix
+++ b/nixpkgs/pkgs/applications/misc/osmctools/default.nix
@@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
     ];
     maintainers = with maintainers; [ sikmir ];
     platforms = platforms.unix;
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/otpclient/default.nix b/nixpkgs/pkgs/applications/misc/otpclient/default.nix
index 328735d6d4a5..e53cc20874ba 100644
--- a/nixpkgs/pkgs/applications/misc/otpclient/default.nix
+++ b/nixpkgs/pkgs/applications/misc/otpclient/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "otpclient";
-  version = "3.5.0";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "paolostivanin";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-MiWEnyhHo6+3woWi4Vf75s+cfzJSPE0xdnvuPbsxrsc=";
+    hash = "sha256-3Nv2ci8MBjvWc7gF5UOJnyfSV8XK0REN1XwI8RUYgWI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/overmind/default.nix b/nixpkgs/pkgs/applications/misc/overmind/default.nix
index ec1ea90cd47c..762dec67a61d 100644
--- a/nixpkgs/pkgs/applications/misc/overmind/default.nix
+++ b/nixpkgs/pkgs/applications/misc/overmind/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/DarthSim/overmind";
     description = "Process manager for Procfile-based applications and tmux";
+    mainProgram = "overmind";
     license = with licenses; [ mit ];
     maintainers = [ maintainers.adisbladis ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/oversteer/default.nix b/nixpkgs/pkgs/applications/misc/oversteer/default.nix
index a7567380c5f0..eb47b4225d87 100644
--- a/nixpkgs/pkgs/applications/misc/oversteer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/oversteer/default.nix
@@ -70,6 +70,7 @@ in stdenv.mkDerivation {
     homepage = "https://github.com/berarma/oversteer";
     changelog = "https://github.com/berarma/oversteer/releases/tag/${version}";
     description = "Steering Wheel Manager for Linux";
+    mainProgram = "oversteer";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.srounce ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/pairdrop/default.nix b/nixpkgs/pkgs/applications/misc/pairdrop/default.nix
index 7715481cffd5..f5ffafdb8015 100644
--- a/nixpkgs/pkgs/applications/misc/pairdrop/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pairdrop/default.nix
@@ -33,6 +33,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     description = "Local file sharing in your browser";
+    mainProgram = "pairdrop";
     longDescription = ''
       PairDrop is a sublime alternative to AirDrop that works on all platforms.
       Send images, documents or text via peer to peer connection to devices in the same local network/Wi-Fi or to paired devices.
diff --git a/nixpkgs/pkgs/applications/misc/passky-desktop/default.nix b/nixpkgs/pkgs/applications/misc/passky-desktop/default.nix
index 927035ed8167..ec45bc3efaea 100644
--- a/nixpkgs/pkgs/applications/misc/passky-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/misc/passky-desktop/default.nix
@@ -1,12 +1,15 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, electron_22
+, electron_29
 , makeWrapper
 , makeDesktopItem
 , copyDesktopItems
 }:
 
+let
+  electron = electron_29;
+in
 stdenv.mkDerivation rec {
   pname = "passky-desktop";
   version = "8.1.1";
@@ -18,7 +21,10 @@ stdenv.mkDerivation rec {
     sha256 = "1ma8s1bngjdzclcc4m5pcmavk38sidaskmz7dgfnv84y35si18dr";
   };
 
-  nativeBuildInputs = [ makeWrapper copyDesktopItems ];
+  nativeBuildInputs = [
+    makeWrapper
+    copyDesktopItems
+  ];
 
   installPhase = ''
     runHook preInstall
@@ -35,7 +41,7 @@ stdenv.mkDerivation rec {
     done
 
     mkdir "$out/share/applications"
-    makeWrapper ${electron_22}/bin/electron "$out/bin/passky" \
+    makeWrapper ${electron}/bin/electron "$out/bin/passky" \
       --add-flags "$out/share/passky/electron/" \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
 
@@ -45,12 +51,13 @@ stdenv.mkDerivation rec {
   desktopItems = [
     (
       makeDesktopItem {
-        name = "Passky";
+        name = "passky";
         type = "Application";
-        desktopName = "passky";
+        desktopName = "Passky";
         comment = "Simple, modern, open source and secure password manager.";
         icon = "passky";
         exec = "passky %U";
+        terminal = false;
         categories = [ "Utility" ];
         startupWMClass = "Passky";
       }
diff --git a/nixpkgs/pkgs/applications/misc/pattypan/default.nix b/nixpkgs/pkgs/applications/misc/pattypan/default.nix
index aac0da8b4c40..c1f5aa84b0eb 100644
--- a/nixpkgs/pkgs/applications/misc/pattypan/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pattypan/default.nix
@@ -7,7 +7,7 @@
 , wrapGAppsHook
 , makeDesktopItem
 , copyDesktopItems
-, canonicalize-jars-hook
+, stripJavaArchivesHook
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
     makeWrapper
     wrapGAppsHook
     copyDesktopItems
-    canonicalize-jars-hook
+    stripJavaArchivesHook
   ];
 
   dontWrapGApps = true;
diff --git a/nixpkgs/pkgs/applications/misc/pdf-quench/default.nix b/nixpkgs/pkgs/applications/misc/pdf-quench/default.nix
index 0245fadb171a..78151061700a 100644
--- a/nixpkgs/pkgs/applications/misc/pdf-quench/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pdf-quench/default.nix
@@ -29,6 +29,7 @@ python3.pkgs.buildPythonApplication {
   meta = with lib; {
     homepage = "https://github.com/linuxerwang/pdf-quench";
     description = "A visual tool for cropping pdf files";
+    mainProgram = "pdf-quench";
     platforms = platforms.linux;
     license = licenses.gpl2;
     maintainers = with maintainers; [ flokli ];
diff --git a/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix b/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix
index 34077b857415..2973a4b9a36c 100644
--- a/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix
@@ -51,6 +51,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Merge or split pdf documents and rotate, crop and rearrange their pages using an interactive and intuitive graphical interface";
+    mainProgram = "pdfarranger";
     platforms = platforms.linux;
     maintainers = with maintainers; [ symphorien ];
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/misc/pdfpc/default.nix b/nixpkgs/pkgs/applications/misc/pdfpc/default.nix
index 0fa676bdfb4b..9e36bba66961 100644
--- a/nixpkgs/pkgs/applications/misc/pdfpc/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pdfpc/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A presenter console with multi-monitor support for PDF files";
+    mainProgram = "pdfpc";
     homepage = "https://pdfpc.github.io/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ pSub ];
diff --git a/nixpkgs/pkgs/applications/misc/pdfposter/default.nix b/nixpkgs/pkgs/applications/misc/pdfposter/default.nix
index 5261fe3dbfe2..ff7d97969e43 100644
--- a/nixpkgs/pkgs/applications/misc/pdfposter/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pdfposter/default.nix
@@ -37,6 +37,7 @@ with localPython.pkgs; buildPythonApplication rec {
 
   meta = with lib; {
     description = "Split large pages of a PDF into smaller ones for poster printing";
+    mainProgram = "pdfposter";
     homepage = "https://pdfposter.readthedocs.io";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ wamserma ];
diff --git a/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix b/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix
index b56f9374bddb..0d1e5e5f737c 100644
--- a/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/torakiki/pdfsam";
     description = "Multi-platform software designed to extract pages, split, merge, mix and rotate PDF files";
+    mainProgram = "pdfsam-basic";
     sourceProvenance = with sourceTypes; [
       binaryBytecode
       binaryNativeCode
diff --git a/nixpkgs/pkgs/applications/misc/pe-bear/default.nix b/nixpkgs/pkgs/applications/misc/pe-bear/default.nix
index 79307f777955..9a71d8add70e 100644
--- a/nixpkgs/pkgs/applications/misc/pe-bear/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pe-bear/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Portable Executable reversing tool with a friendly GUI";
+    mainProgram = "PE-bear";
     homepage = "https://hshrzd.wordpress.com/pe-bear/";
 
     license = [
diff --git a/nixpkgs/pkgs/applications/misc/pgmodeler/default.nix b/nixpkgs/pkgs/applications/misc/pgmodeler/default.nix
index ba12738c2e1c..fcc139bfa041 100644
--- a/nixpkgs/pkgs/applications/misc/pgmodeler/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pgmodeler/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pgmodeler";
-  version = "1.0.6";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "pgmodeler";
     repo = "pgmodeler";
     rev = "v${version}";
-    sha256 = "sha256-Km4PWvbIzgc1Kxsp26HYLCA4OkCfOsGWsdWYLmWf/NA=";
+    sha256 = "sha256-9/D5C3l3N15q+xP9lLAcdT+1+dEMcowBeR+DjE67fYQ=";
   };
 
   nativeBuildInputs = [ pkg-config qmake wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/applications/misc/phoc/default.nix b/nixpkgs/pkgs/applications/misc/phoc/default.nix
index 9ccc17f95ec6..deccbabe3fd4 100644
--- a/nixpkgs/pkgs/applications/misc/phoc/default.nix
+++ b/nixpkgs/pkgs/applications/misc/phoc/default.nix
@@ -24,12 +24,12 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "phoc";
-  version = "0.36.0";
+  version = "0.37.0";
 
   src = fetchurl {
     # This tarball includes the meson wrapped subproject 'gmobile'.
     url = with finalAttrs; "https://sources.phosh.mobi/releases/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-eAKHboICsuQ4lecxnnZ8+hZjt5l1DDQbfuwypDYtdKk=";
+    hash = "sha256-SQLoOjqDBL1G3SDO4mfVRV2U0i+M1EwiqUR52ytFJmM=";
   };
 
   nativeBuildInputs = [
@@ -65,7 +65,6 @@ stdenv.mkDerivation (finalAttrs: {
         inherit (finalAttrs) src;
         preferLocalBuild = true;
         allowSubstitutes = false;
-        phases = "unpackPhase installPhase";
         installPhase = "cp subprojects/packagefiles/wlroots/$name $out";
       })
     ];
@@ -81,6 +80,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Wayland compositor for mobile phones like the Librem 5";
+    mainProgram = "phoc";
     homepage = "https://gitlab.gnome.org/World/Phosh/phoc";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ masipcat tomfitzhenry zhaofengli ];
diff --git a/nixpkgs/pkgs/applications/misc/pipr/default.nix b/nixpkgs/pkgs/applications/misc/pipr/default.nix
index 2f5ba3e6d9cb..f447ffcaeef6 100644
--- a/nixpkgs/pkgs/applications/misc/pipr/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pipr/default.nix
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A commandline-tool to interactively write shell pipelines";
+    mainProgram = "pipr";
     homepage = "https://github.com/ElKowar/pipr";
     license = licenses.mit;
     maintainers = with maintainers; [ elkowar ];
diff --git a/nixpkgs/pkgs/applications/misc/plank/default.nix b/nixpkgs/pkgs/applications/misc/plank/default.nix
index 1a8f0df5e41c..fb3226e6d803 100644
--- a/nixpkgs/pkgs/applications/misc/plank/default.nix
+++ b/nixpkgs/pkgs/applications/misc/plank/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Elegant, simple, clean dock";
+    mainProgram = "plank";
     homepage = "https://launchpad.net/plank";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/plots/default.nix b/nixpkgs/pkgs/applications/misc/plots/default.nix
index 4e6b9d24a56b..1e7db2651a10 100644
--- a/nixpkgs/pkgs/applications/misc/plots/default.nix
+++ b/nixpkgs/pkgs/applications/misc/plots/default.nix
@@ -56,6 +56,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Graph plotting app for GNOME";
+    mainProgram = "plots";
     longDescription = ''
       Plots is a graph plotting app for GNOME.
       Plots makes it easy to visualise mathematical formulae.
diff --git a/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix b/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix
index ad731c1050c9..983dc81d1790 100644
--- a/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix
+++ b/nixpkgs/pkgs/applications/misc/polar-bookshelf/default.nix
@@ -122,6 +122,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://getpolarized.io/";
     description = "Personal knowledge repository for PDF and web content supporting incremental reading and document annotation";
+    mainProgram = "polar-desktop-app";
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.gpl3Only;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/polar-bookshelf1/default.nix b/nixpkgs/pkgs/applications/misc/polar-bookshelf1/default.nix
index 41b7fb786abd..a4ff885a71b8 100644
--- a/nixpkgs/pkgs/applications/misc/polar-bookshelf1/default.nix
+++ b/nixpkgs/pkgs/applications/misc/polar-bookshelf1/default.nix
@@ -109,6 +109,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://getpolarized.io/";
     description = "Personal knowledge repository for PDF and web content supporting incremental reading and document annotation";
+    mainProgram = "polar-bookshelf";
     license = lib.licenses.gpl3Only;
     maintainers = [ lib.maintainers.dansbandit ];
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/pot/default.nix b/nixpkgs/pkgs/applications/misc/pot/default.nix
index 33e6c18932de..fdc0a6b6c414 100644
--- a/nixpkgs/pkgs/applications/misc/pot/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pot/default.nix
@@ -128,6 +128,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A cross-platform translation software";
+    mainProgram = "pot";
     homepage = "https://pot.pylogmon.com";
     platforms = platforms.linux;
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/applications/misc/procmail/default.nix b/nixpkgs/pkgs/applications/misc/procmail/default.nix
index 661bbd22be85..3bd280766b16 100644
--- a/nixpkgs/pkgs/applications/misc/procmail/default.nix
+++ b/nixpkgs/pkgs/applications/misc/procmail/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch }:
+{ lib, stdenv, fetchurl, fetchpatch, buildPackages }:
 
 stdenv.mkDerivation rec {
   pname = "procmail";
@@ -30,8 +30,19 @@ stdenv.mkDerivation rec {
     sed -e "3i\
     .PHONY: install
     " -i Makefile
+  '' + lib.optionalString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
+    substituteInPlace src/Makefile.0 \
+      --replace-fail '@./_autotst' '@${stdenv.hostPlatform.emulator buildPackages} ./_autotst'
+    sed -e '3i\
+    _autotst() { ${stdenv.hostPlatform.emulator buildPackages} ./_autotst "$@"; } \
+    _locktst() { ${stdenv.hostPlatform.emulator buildPackages} ./_locktst "$@"; } \
+    ' -i src/autoconf
   '';
 
+  # default target is binaries + manpages; manpages don't cross compile without more work.
+  makeFlags = lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ "bins" ];
+  installTargets = lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ "install.bin" ];
+
   meta = with lib; {
     description = "Mail processing and filtering utility";
     homepage = "https://github.com/BuGlessRB/procmail/";
diff --git a/nixpkgs/pkgs/applications/misc/projectlibre/default.nix b/nixpkgs/pkgs/applications/misc/projectlibre/default.nix
index ceb61d71866c..52e56ed0623c 100644
--- a/nixpkgs/pkgs/applications/misc/projectlibre/default.nix
+++ b/nixpkgs/pkgs/applications/misc/projectlibre/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.projectlibre.com/";
     description = "Project-Management Software similar to MS-Project";
+    mainProgram = "projectlibre";
     maintainers = [ maintainers.Mogria ];
     license = licenses.cpal10;
   };
diff --git a/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix b/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix
index 0b5a5065cf12..0a9e0c23fae9 100644
--- a/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix
@@ -191,7 +191,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "G-code generator for 3D printer";
     homepage = "https://github.com/prusa3d/PrusaSlicer";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     maintainers = with maintainers; [ moredread tweber tmarkus ];
     platforms = platforms.unix;
   } // lib.optionalAttrs (stdenv.isDarwin) {
diff --git a/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix
index 88423e36a956..63e547619696 100644
--- a/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix
+++ b/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix
@@ -81,7 +81,7 @@ let
     meta = with lib; {
       inherit description;
       homepage = "https://github.com/supermerill/SuperSlicer";
-      license = licenses.agpl3;
+      license = licenses.agpl3Plus;
       maintainers = with maintainers; [ cab404 moredread tmarkus ];
       mainProgram = "superslicer";
     };
diff --git a/nixpkgs/pkgs/applications/misc/ptask/default.nix b/nixpkgs/pkgs/applications/misc/ptask/default.nix
index 739003720447..67a4bca94cf8 100644
--- a/nixpkgs/pkgs/applications/misc/ptask/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ptask/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://wpitchoune.net/ptask/";
     description = "GTK-based GUI for taskwarrior";
+    mainProgram = "ptask";
     license = licenses.gpl2;
     maintainers = [ maintainers.spacefrogg ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/pueue/default.nix b/nixpkgs/pkgs/applications/misc/pueue/default.nix
index 7e158853966b..69483be06db6 100644
--- a/nixpkgs/pkgs/applications/misc/pueue/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pueue/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pueue";
-  version = "3.3.3";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "Nukesor";
     repo = "pueue";
     rev = "v${version}";
-    hash = "sha256-Q1x97eJNjtET+L3KpWTXLKbz62XgkjxNZkAAZWhbMmM=";
+    hash = "sha256-kKu/+F+zK0UyRHGkrZdD8alvsQTZFHhTqYK2phxo/ZA=";
   };
 
-  cargoHash = "sha256-i9SPOZo9AuITm6iI++D3ipY8c0xfZzkeHW7tb9SZ3iQ=";
+  cargoHash = "sha256-KwIGJiCGcFEKuloVtJr0GQxoFQVt/OHyJ/YCp4bCSGc=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/applications/misc/pure-maps/default.nix b/nixpkgs/pkgs/applications/misc/pure-maps/default.nix
index d1bfe4132583..1531d6edb7a8 100644
--- a/nixpkgs/pkgs/applications/misc/pure-maps/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pure-maps/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "pure-maps";
-  version = "3.2.1";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "rinigus";
     repo = "pure-maps";
     rev = version;
-    hash = "sha256-AZt0JcNegHkUkWy+NW5CNLZfxjjFyKWBrhLJgSTv3to=";
+    hash = "sha256-TeFolD3jXRdLGfXdy+QcwtOcQQVUB5fn8PwoYfRLaPQ=";
     fetchSubmodules = true;
   };
 
@@ -36,6 +36,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Display vector and raster maps, places, routes, and provide navigation instructions with a flexible selection of data and service providers";
+    mainProgram = "pure-maps";
     homepage = "https://github.com/rinigus/pure-maps";
     changelog = "https://github.com/rinigus/pure-maps/blob/${src.rev}/NEWS.md";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/applications/misc/pytrainer/default.nix b/nixpkgs/pkgs/applications/misc/pytrainer/default.nix
index 22ee11082f15..6d907fab0db4 100644
--- a/nixpkgs/pkgs/applications/misc/pytrainer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pytrainer/default.nix
@@ -91,6 +91,7 @@ in python.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/pytrainer/pytrainer";
     description = "Application for logging and graphing sporting excursions";
+    mainProgram = "pytrainer";
     maintainers = with maintainers; [ rycee dotlambda ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/qMasterPassword/default.nix b/nixpkgs/pkgs/applications/misc/qMasterPassword/default.nix
index 436c1fc70377..e6a672040824 100644
--- a/nixpkgs/pkgs/applications/misc/qMasterPassword/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qMasterPassword/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Stateless Master Password Manager";
+    mainProgram = "qMasterPassword";
     longDescription = ''
       Access all your passwords using only a single master password. But in
       contrast to other managers it does not store any passwords: Unique
diff --git a/nixpkgs/pkgs/applications/misc/qelectrotech/default.nix b/nixpkgs/pkgs/applications/misc/qelectrotech/default.nix
index 3b97a69de226..b4d8bd3ab182 100644
--- a/nixpkgs/pkgs/applications/misc/qelectrotech/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qelectrotech/default.nix
@@ -69,6 +69,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Free software to create electric diagrams";
+    mainProgram = "qelectrotech";
     homepage = "https://qelectrotech.org/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ yvesf ];
diff --git a/nixpkgs/pkgs/applications/misc/qolibri/default.nix b/nixpkgs/pkgs/applications/misc/qolibri/default.nix
index af7cc7e01a6f..c0530dfe78e3 100644
--- a/nixpkgs/pkgs/applications/misc/qolibri/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qolibri/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/ludios/qolibri";
     description = "EPWING reader for viewing Japanese dictionaries";
+    mainProgram = "qolibri";
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/applications/misc/qsudo/default.nix b/nixpkgs/pkgs/applications/misc/qsudo/default.nix
index d73c3793871a..a573ba814a42 100644
--- a/nixpkgs/pkgs/applications/misc/qsudo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qsudo/default.nix
@@ -34,6 +34,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical sudo utility from Project Trident";
+    mainProgram = "qsudo";
     homepage = "https://github.com/project-trident/qsudo";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/qt-box-editor/default.nix b/nixpkgs/pkgs/applications/misc/qt-box-editor/default.nix
index 7a84f85a9e21..937641021a5c 100644
--- a/nixpkgs/pkgs/applications/misc/qt-box-editor/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qt-box-editor/default.nix
@@ -33,6 +33,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Editor of tesseract-ocr box files";
+    mainProgram = "qt-box-editor-1.12rc1";
     homepage = "https://github.com/zdenop/qt-box-editor";
     license = licenses.asl20;
     maintainers = [ maintainers.costrouc ];
diff --git a/nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix b/nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix
index f8020fbdb447..4ebd059c9274 100644
--- a/nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix
@@ -39,6 +39,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Qt pip-mode-like video player for wlroots-based wayland compositors";
+    mainProgram = "qt-video-wlr";
     homepage = "https://github.com/xdavidwu/qt-video-wlr";
     license = licenses.mit;
     maintainers = with maintainers; [ fionera rewine ];
diff --git a/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix b/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix
index d158c111c87f..ce265d5f67fd 100644
--- a/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qtbitcointrader/default.nix
@@ -27,6 +27,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Bitcoin trading client";
+    mainProgram = "QtBitcoinTrader";
     homepage = "https://centrabit.com/";
     license = licenses.gpl3;
     platforms = qt5.qtbase.meta.platforms;
diff --git a/nixpkgs/pkgs/applications/misc/qtpass/default.nix b/nixpkgs/pkgs/applications/misc/qtpass/default.nix
index ad940a77f99a..26807bc42a1c 100644
--- a/nixpkgs/pkgs/applications/misc/qtpass/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qtpass/default.nix
@@ -54,6 +54,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A multi-platform GUI for pass, the standard unix password manager";
+    mainProgram = "qtpass";
     homepage = "https://qtpass.org";
     license = licenses.gpl3;
     maintainers = [ maintainers.hrdinka ];
diff --git a/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix b/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix
index 9c5f35be9a9e..455b6df4d054 100644
--- a/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix
+++ b/nixpkgs/pkgs/applications/misc/raiseorlaunch/default.nix
@@ -19,6 +19,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     maintainers = with maintainers; [ winpat ];
     description = "A run-or-raise-application-launcher for i3 window manager";
+    mainProgram = "raiseorlaunch";
     homepage = "https://github.com/open-dynaMIX/raiseorlaunch";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/razergenie/default.nix b/nixpkgs/pkgs/applications/misc/razergenie/default.nix
index 8f78c0becaf5..9b18c60447e3 100644
--- a/nixpkgs/pkgs/applications/misc/razergenie/default.nix
+++ b/nixpkgs/pkgs/applications/misc/razergenie/default.nix
@@ -34,6 +34,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/z3ntu/RazerGenie";
     description = "Qt application for configuring your Razer devices under GNU/Linux";
+    mainProgram = "razergenie";
     license = licenses.gpl3;
     maintainers = with maintainers; [ f4814n Mogria ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/regextester/default.nix b/nixpkgs/pkgs/applications/misc/regextester/default.nix
index e5900a050efc..05daa180d029 100644
--- a/nixpkgs/pkgs/applications/misc/regextester/default.nix
+++ b/nixpkgs/pkgs/applications/misc/regextester/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A desktop application to test regular expressions interactively";
+    mainProgram = "com.github.artemanufrij.regextester";
     homepage = "https://github.com/artemanufrij/regextester";
     maintainers = with maintainers; [ samdroid-apps ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix b/nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix
index c5958aff724c..c9a60d4ce2e8 100644
--- a/nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix
+++ b/nixpkgs/pkgs/applications/misc/remarkable/restream/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "reMarkable screen sharing over SSH";
+    mainProgram = "restream";
     homepage = "https://github.com/rien/reStream";
     license = licenses.mit;
     maintainers = [ maintainers.cpcloud ];
diff --git a/nixpkgs/pkgs/applications/misc/remarkable/rmview/default.nix b/nixpkgs/pkgs/applications/misc/remarkable/rmview/default.nix
index 24627025ca9f..52ad1dce2688 100644
--- a/nixpkgs/pkgs/applications/misc/remarkable/rmview/default.nix
+++ b/nixpkgs/pkgs/applications/misc/remarkable/rmview/default.nix
@@ -24,6 +24,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Fast live viewer for reMarkable 1 and 2";
+    mainProgram = "rmview";
     homepage = "https://github.com/bordaigorl/rmview";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.nickhu ];
diff --git a/nixpkgs/pkgs/applications/misc/remontoire/default.nix b/nixpkgs/pkgs/applications/misc/remontoire/default.nix
index fdabc149d6db..0aabaababf6a 100644
--- a/nixpkgs/pkgs/applications/misc/remontoire/default.nix
+++ b/nixpkgs/pkgs/applications/misc/remontoire/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A small GTK app for presenting keybinding hints";
+    mainProgram = "remontoire";
     homepage = "https://github.com/regolith-linux/remontoire";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/resp-app/default.nix b/nixpkgs/pkgs/applications/misc/resp-app/default.nix
index b95bc98fdd3a..9748ca63c281 100644
--- a/nixpkgs/pkgs/applications/misc/resp-app/default.nix
+++ b/nixpkgs/pkgs/applications/misc/resp-app/default.nix
@@ -95,6 +95,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Cross-platform Developer GUI for Redis";
+    mainProgram = "resp";
     homepage = "https://resp.app/";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/revanced-cli/default.nix b/nixpkgs/pkgs/applications/misc/revanced-cli/default.nix
index 56923e0ee195..2d0629f5e171 100644
--- a/nixpkgs/pkgs/applications/misc/revanced-cli/default.nix
+++ b/nixpkgs/pkgs/applications/misc/revanced-cli/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "revanced-cli";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchurl {
     url = "https://github.com/revanced/revanced-cli/releases/download/v${version}/revanced-cli-${version}-all.jar";
-    hash = "sha256-ydP9iPClWNKlbBhsNC1bzqfJYRyit1WsxIgwbQQbgi8=";
+    hash = "sha256-I25SmWUVJenFou1fKCd53PojoGt9FAQ7hDpEWweAICQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/misc/rofi-screenshot/default.nix b/nixpkgs/pkgs/applications/misc/rofi-screenshot/default.nix
index fedb03fa613d..6b1861dc8fc5 100644
--- a/nixpkgs/pkgs/applications/misc/rofi-screenshot/default.nix
+++ b/nixpkgs/pkgs/applications/misc/rofi-screenshot/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
   meta = {
     description =
       "Use rofi to perform various types of screenshots and screen captures";
+    mainProgram = "rofi-screenshot";
     homepage = "https://github.com/ceuk/rofi-screenshot";
     maintainers = with lib.maintainers; [ zopieux ];
     platforms = lib.platforms.all;
diff --git a/nixpkgs/pkgs/applications/misc/rootbar/default.nix b/nixpkgs/pkgs/applications/misc/rootbar/default.nix
index ee536ca7c50f..41582e1b413c 100644
--- a/nixpkgs/pkgs/applications/misc/rootbar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/rootbar/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://hg.sr.ht/~scoopta/rootbar";
     description = "A bar for Wayland WMs";
+    mainProgram = "rootbar";
     longDescription = ''
       Root Bar is a bar for wlroots based wayland compositors such as sway and
       was designed to address the lack of good bars for wayland.
diff --git a/nixpkgs/pkgs/applications/misc/rsibreak/default.nix b/nixpkgs/pkgs/applications/misc/rsibreak/default.nix
index eb0944fd2a03..24d0a0eaa6ab 100644
--- a/nixpkgs/pkgs/applications/misc/rsibreak/default.nix
+++ b/nixpkgs/pkgs/applications/misc/rsibreak/default.nix
@@ -18,6 +18,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Takes care of your health and regularly breaks your work to avoid repetitive strain injury (RSI)";
+    mainProgram = "rsibreak";
     license = licenses.gpl2;
     homepage = "https://www.kde.org/applications/utilities/rsibreak/";
     maintainers = with maintainers; [ vandenoever ];
diff --git a/nixpkgs/pkgs/applications/misc/schemes/default.nix b/nixpkgs/pkgs/applications/misc/schemes/default.nix
index 41ec97f8b176..b3653d50646f 100644
--- a/nixpkgs/pkgs/applications/misc/schemes/default.nix
+++ b/nixpkgs/pkgs/applications/misc/schemes/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Edit GtkSourceView style-schemes for an application or platform";
+    mainProgram = "schemes";
     homepage = "https://gitlab.gnome.org/chergert/schemes";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ _0xMRTT ];
diff --git a/nixpkgs/pkgs/applications/misc/scli/default.nix b/nixpkgs/pkgs/applications/misc/scli/default.nix
index 2cfc8b6a3265..4c11333a4a01 100644
--- a/nixpkgs/pkgs/applications/misc/scli/default.nix
+++ b/nixpkgs/pkgs/applications/misc/scli/default.nix
@@ -10,13 +10,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "scli";
-  version = "0.7.3";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "isamert";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-x5NLYqA/sdQkT/8oG/ija/+4+KjRHa1q0T3mqymAuV8=";
+    sha256 = "sha256-GC19iJYdNUdC4UEBWWdlzl0Ha6Y3knB1dG+6spwdYQ0=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -51,6 +51,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Simple terminal user interface for Signal";
+    mainProgram = "scli";
     homepage = "https://github.com/isamert/scli";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/misc/seashells/default.nix b/nixpkgs/pkgs/applications/misc/seashells/default.nix
index 4ece0036c530..37a90478710c 100644
--- a/nixpkgs/pkgs/applications/misc/seashells/default.nix
+++ b/nixpkgs/pkgs/applications/misc/seashells/default.nix
@@ -16,6 +16,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://seashells.io/";
     description = "Pipe command-line programs to seashells.io";
+    mainProgram = "seashells";
     longDescription = ''
       Official cient for seashells.io, which allows you to view
       command-line output on the web, in real-time.
diff --git a/nixpkgs/pkgs/applications/misc/selectdefaultapplication/default.nix b/nixpkgs/pkgs/applications/misc/selectdefaultapplication/default.nix
index 39470d2b0edd..700ac3e75884 100644
--- a/nixpkgs/pkgs/applications/misc/selectdefaultapplication/default.nix
+++ b/nixpkgs/pkgs/applications/misc/selectdefaultapplication/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A very simple application that lets you define default applications on Linux in a sane way";
+    mainProgram = "selectdefaultapplication";
     homepage = "https://github.com/sandsmark/selectdefaultapplication";
     maintainers = with maintainers; [ nsnelson ];
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/applications/misc/sent/default.nix b/nixpkgs/pkgs/applications/misc/sent/default.nix
index fcf021a5ac7f..dc681b7385dc 100644
--- a/nixpkgs/pkgs/applications/misc/sent/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sent/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple plaintext presentation tool";
+    mainProgram = "sent";
     homepage = "https://tools.suckless.org/sent/";
     license = licenses.isc;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/serial-studio/default.nix b/nixpkgs/pkgs/applications/misc/serial-studio/default.nix
index 1e205618f400..129f3d49eb75 100644
--- a/nixpkgs/pkgs/applications/misc/serial-studio/default.nix
+++ b/nixpkgs/pkgs/applications/misc/serial-studio/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Multi-purpose serial data visualization & processing program";
+    mainProgram = "serial-studio";
     homepage = "https://serial-studio.github.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ sikmir ];
diff --git a/nixpkgs/pkgs/applications/misc/sfwbar/default.nix b/nixpkgs/pkgs/applications/misc/sfwbar/default.nix
index bd46c449ffab..9f467fdf6a2d 100644
--- a/nixpkgs/pkgs/applications/misc/sfwbar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sfwbar/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/LBCrion/sfwbar";
     description = "A flexible taskbar application for wayland compositors, designed with a stacking layout in mind";
+    mainProgram = "sfwbar";
     platforms = platforms.linux;
     maintainers = with maintainers; [ NotAShelf ];
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/applications/misc/shell-genie/default.nix b/nixpkgs/pkgs/applications/misc/shell-genie/default.nix
index dd6c723121d4..63294e404821 100644
--- a/nixpkgs/pkgs/applications/misc/shell-genie/default.nix
+++ b/nixpkgs/pkgs/applications/misc/shell-genie/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Describe your shell commands in natural language";
+    mainProgram = "shell-genie";
     homepage = "https://github.com/dylanjcastillo/shell-genie";
     license = licenses.mit;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/applications/misc/shipments/default.nix b/nixpkgs/pkgs/applications/misc/shipments/default.nix
index dccd5dc89c69..792f997c5f85 100644
--- a/nixpkgs/pkgs/applications/misc/shipments/default.nix
+++ b/nixpkgs/pkgs/applications/misc/shipments/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Postal package tracking application";
+    mainProgram = "shipments";
     homepage = "https://sr.ht/~martijnbraam/shipments/";
     changelog = "https://git.sr.ht/~martijnbraam/shipments/refs/${version}";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/applications/misc/sigal/default.nix b/nixpkgs/pkgs/applications/misc/sigal/default.nix
index 145c34b7f8c0..1e82fce07898 100644
--- a/nixpkgs/pkgs/applications/misc/sigal/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sigal/default.nix
@@ -51,6 +51,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Yet another simple static gallery generator";
+    mainProgram = "sigal";
     homepage = "http://sigal.saimon.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ domenkozar matthiasbeyer ];
diff --git a/nixpkgs/pkgs/applications/misc/siglo/default.nix b/nixpkgs/pkgs/applications/misc/siglo/default.nix
index 520f4330e503..1231d2fd47fd 100644
--- a/nixpkgs/pkgs/applications/misc/siglo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/siglo/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GTK app to sync InfiniTime watch with PinePhone";
+    mainProgram = "siglo";
     homepage = "https://github.com/theironrobin/siglo";
     changelog = "https://github.com/theironrobin/siglo/tags/v${version}";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/applications/misc/sioyek/default.nix b/nixpkgs/pkgs/applications/misc/sioyek/default.nix
index 3a59a2542eaf..3cdec7ec291f 100644
--- a/nixpkgs/pkgs/applications/misc/sioyek/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sioyek/default.nix
@@ -86,6 +86,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://sioyek.info/";
     description = "A PDF viewer designed for research papers and technical books";
+    mainProgram = "sioyek";
     changelog = "https://github.com/ahrm/sioyek/releases/tag/v${finalAttrs.version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ podocarp ];
diff --git a/nixpkgs/pkgs/applications/misc/skytemple/default.nix b/nixpkgs/pkgs/applications/misc/skytemple/default.nix
index 945ea6e25bdd..b054be4be094 100644
--- a/nixpkgs/pkgs/applications/misc/skytemple/default.nix
+++ b/nixpkgs/pkgs/applications/misc/skytemple/default.nix
@@ -65,6 +65,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/SkyTemple/skytemple";
     description = "ROM hacking tool for Pokémon Mystery Dungeon Explorers of Sky";
+    mainProgram = "skytemple";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ xfix marius851000 ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix b/nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix
index c924a3ec2bb5..901265016f8e 100644
--- a/nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix
@@ -8,33 +8,34 @@
 , shiboken2
 }:
 let
-  version = "0.1.3";
+  version = "0.1.3+";
 in
  buildPythonApplication rec {
   pname = "sl1-to-photon";
   inherit version;
 
   src = fetchFromGitHub {
-    owner = "fookatchu";
+    owner = "cab404";
     repo = "SL1toPhoton";
-    rev = "v${version}";
-    sha256 = "1hmb74rcky3nax4lxn7pw6lcd5a66fdbwrm11c84zb31xb51bakw";
+    rev = "7edc6ea99818622f5d49ac7af80ddd4916b8c19f";
+    sha256 = "ssFfjlBMi3FHosDBUA2gs71VUIBkEdPVcV3STNxmOIM=";
   };
 
-  propagatedBuildInputs = [ pyphotonfile pillow numpy pyside2 shiboken2 ];
+  pythonPath = [ pyphotonfile pillow numpy pyside2 shiboken2 ];
 
-  format = "other";
+  format = "setuptools";
+  dontUseSetuptoolsCheck = true;
 
   installPhase = ''
     install -D -m 0755 SL1_to_Photon.py $out/bin/${pname}
-    sed -i '1i#!/usr/bin/env python' $out/bin/${pname}
   '';
 
   meta = with lib; {
     maintainers = [ maintainers.cab404 ];
     license = licenses.gpl3Plus;
     description = "Tool for converting Slic3r PE's SL1 files to Photon files for the Anycubic Photon 3D-Printer";
-    homepage = "https://github.com/fookatchu/SL1toPhoton";
+    homepage = "https://github.com/cab404/SL1toPhoton";
+    mainProgram = "sl1-to-photon";
   };
 
 }
diff --git a/nixpkgs/pkgs/applications/misc/slic3r/default.nix b/nixpkgs/pkgs/applications/misc/slic3r/default.nix
index 923e480c1f0f..6695f53e9932 100644
--- a/nixpkgs/pkgs/applications/misc/slic3r/default.nix
+++ b/nixpkgs/pkgs/applications/misc/slic3r/default.nix
@@ -89,13 +89,14 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "G-code generator for 3D printers";
+    mainProgram = "slic3r";
     longDescription = ''
       Slic3r is the tool you need to convert a digital 3D model into printing
       instructions for your 3D printer. It cuts the model into horizontal
       slices (layers), generates toolpaths to fill them and calculates the
       amount of material to be extruded.'';
     homepage = "https://slic3r.org/";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ bjornfor ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/snapper-gui/default.nix b/nixpkgs/pkgs/applications/misc/snapper-gui/default.nix
index 4c60e2947b97..c82b0813f78b 100644
--- a/nixpkgs/pkgs/applications/misc/snapper-gui/default.nix
+++ b/nixpkgs/pkgs/applications/misc/snapper-gui/default.nix
@@ -34,6 +34,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Graphical interface for snapper";
+    mainProgram = "snapper-gui";
     longDescription = ''
       A graphical user interface for the tool snapper for Linux filesystem
       snapshot management. It can compare snapshots and revert differences between snapshots.
diff --git a/nixpkgs/pkgs/applications/misc/sqls/default.nix b/nixpkgs/pkgs/applications/misc/sqls/default.nix
index b6d4f3f180eb..5851ea49289e 100644
--- a/nixpkgs/pkgs/applications/misc/sqls/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sqls/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/sqls-server/sqls";
     description = "SQL language server written in Go";
+    mainProgram = "sqls";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/sticky/default.nix b/nixpkgs/pkgs/applications/misc/sticky/default.nix
index 6571bca3bfa6..9e9df71ddf9a 100644
--- a/nixpkgs/pkgs/applications/misc/sticky/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sticky/default.nix
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A sticky notes app for the linux desktop";
+    mainProgram = "sticky";
     homepage = "https://github.com/linuxmint/sticky";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/stylish/default.nix b/nixpkgs/pkgs/applications/misc/stylish/default.nix
index b1fed22b7ffe..8dce6409bb7c 100644
--- a/nixpkgs/pkgs/applications/misc/stylish/default.nix
+++ b/nixpkgs/pkgs/applications/misc/stylish/default.nix
@@ -45,6 +45,7 @@ stdenvNoCC.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/thevinter/styli.sh";
     description = "A shell script to manage wallpapers";
+    mainProgram = "styli.sh";
     longDescription = ''
       Styli.sh is a Bash script that aims to automate the tedious process
       of finding new wallpapers, downloading and switching them via the
diff --git a/nixpkgs/pkgs/applications/misc/subsurface/default.nix b/nixpkgs/pkgs/applications/misc/subsurface/default.nix
index 6831cea6c4f3..fb028c744751 100644
--- a/nixpkgs/pkgs/applications/misc/subsurface/default.nix
+++ b/nixpkgs/pkgs/applications/misc/subsurface/default.nix
@@ -140,6 +140,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A divelog program";
+    mainProgram = "subsurface";
     longDescription = ''
       Subsurface can track single- and multi-tank dives using air, Nitrox or TriMix.
       It allows tracking of dive locations including GPS coordinates (which can also
diff --git a/nixpkgs/pkgs/applications/misc/sway-launcher-desktop/default.nix b/nixpkgs/pkgs/applications/misc/sway-launcher-desktop/default.nix
index 525e25ae7e06..f377e493dfd9 100644
--- a/nixpkgs/pkgs/applications/misc/sway-launcher-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sway-launcher-desktop/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "TUI Application launcher with Desktop Entry support.";
+    mainProgram = "sway-launcher-desktop";
     longDescription = ''
       This is a TUI-based launcher menu made with bash and the amazing fzf.
       Despite its name, it does not (read: no longer) depend on the Sway window manager
diff --git a/nixpkgs/pkgs/applications/misc/swaynotificationcenter/default.nix b/nixpkgs/pkgs/applications/misc/swaynotificationcenter/default.nix
index 2a5dd6da1935..b22c483f6177 100644
--- a/nixpkgs/pkgs/applications/misc/swaynotificationcenter/default.nix
+++ b/nixpkgs/pkgs/applications/misc/swaynotificationcenter/default.nix
@@ -30,13 +30,13 @@
 
 stdenv.mkDerivation (finalAttrs: rec {
   pname = "SwayNotificationCenter";
-  version = "0.10.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "ErikReider";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-7O+DX4uuncUqx5zEKQprZE6tctteT6NU01V2EBHiFqA=";
+    hash = "sha256-SR3FfEit50y4XSCLh3raUoigRNXpxh0mk4qLhQ/FozM=";
   };
 
   # build pkg-config is required to locate the native `scdoc` input
diff --git a/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix b/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
index 2c8f9993fed5..c78e1246c5c8 100644
--- a/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
@@ -1,5 +1,6 @@
 { lib
 , stdenv
+, fetchzip
 , fetchurl
 , makeWrapper
 , makeDesktopItem
@@ -50,9 +51,12 @@ let
       find . -name '*.so' | xargs strings | { grep '/nix/store' || :; } >> ./.jar-paths
     '';
 
-    nativeBuildInputs = [ makeWrapper unzip autoPatchelfHook ];
+    nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
     buildInputs = [ ant jdk p7zip gtk3 gsettings-desktop-schemas libXxf86vm ];
 
+    # upstream targets Java 7 by default
+    env.ANT_ARGS = "-DappletClassSource=8 -DappletClassTarget=8 -DclassSource=8 -DclassTarget=8";
+
     buildPhase = ''
       runHook preBuild
 
@@ -100,9 +104,6 @@ let
       mainProgram = exec;
     };
   };
-
-  d2u = lib.replaceStrings ["."] ["_"];
-
 in {
 
   application = mkSweetHome3D rec {
@@ -111,9 +112,9 @@ in {
     module = "SweetHome3D";
     description = "Design and visualize your future home";
     license = lib.licenses.gpl2Plus;
-    src = fetchurl {
+    src = fetchzip {
       url = "mirror://sourceforge/sweethome3d/${module}-${version}-src.zip";
-      sha256 = "sha256-Io3HfussfSy6CLHE0JCAk0gjBAla/u+pS1Gan8BxozY=";
+      hash = "sha256-RVuwxL/YATqHoQuc25ZaYgZ+o2rMOqnzU8/LLxb5Ra4=";
     };
     desktopName = "Sweet Home 3D";
     icons = {
diff --git a/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix b/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
index d5cdebb76282..f4fe14fb6751 100644
--- a/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
+++ b/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchurl
+, fetchzip
 , makeWrapper
 , makeDesktopItem
 , jdk
@@ -18,14 +18,6 @@ let
     + removeSuffix "libraryeditor" (toLower m)
     + "-editor";
 
-  applicationSrc = stdenv.mkDerivation {
-    name = "application-src";
-    src = sweethome3dApp.src;
-    nativeBuildInputs = [ unzip ];
-    buildPhase = "";
-    installPhase = "cp -r . $out";
-  };
-
   mkEditorProject =
   { pname, module, version, src, license, description, desktopName }:
 
@@ -41,18 +33,21 @@ let
       categories = [ "Graphics" "2DGraphics" "3DGraphics" ];
     };
 
-    nativeBuildInputs = [ makeWrapper unzip ];
+    nativeBuildInputs = [ makeWrapper ];
     buildInputs = [ ant jdk gtk3 gsettings-desktop-schemas ];
 
+    # upstream targets Java 7 by default
+    env.ANT_ARGS = "-DappletClassSource=8 -DappletClassTarget=8 -DclassSource=8 -DclassTarget=8";
+
     postPatch = ''
-      sed -i -e 's,../SweetHome3D,${applicationSrc},g' build.xml
+      sed -i -e 's,../SweetHome3D,${sweethome3dApp.src},g' build.xml
       sed -i -e 's,lib/macosx/java3d-1.6/jogl-all.jar,lib/java3d-1.6/jogl-all.jar,g' build.xml
     '';
 
     buildPhase = ''
       runHook preBuild
 
-      ant -lib ${applicationSrc}/libtest -lib ${applicationSrc}/lib -lib ${jdk}/lib
+      ant -lib ${sweethome3dApp.src}/libtest -lib ${sweethome3dApp.src}/lib -lib ${jdk}/lib
 
       runHook postBuild
     '';
@@ -90,9 +85,9 @@ in {
     pname = module;
     description = "Easily create SH3T files and edit the properties of the texture images it contain";
     license = lib.licenses.gpl2Plus;
-    src = fetchurl {
+    src = fetchzip {
       url = "mirror://sourceforge/sweethome3d/${module}-${version}-src.zip";
-      sha256 = "03vb9y645qzffxxdhgbjb0d98k3lafxckg2vh2s86j62b6357d0h";
+      hash = "sha256-v8hMEUujTgWvFnBTF8Dnd1iWgoIXBzGMUxBgmjdxx+g=";
     };
     desktopName = "Sweet Home 3D - Textures Library Editor";
   };
@@ -102,10 +97,10 @@ in {
     module = "FurnitureLibraryEditor";
     pname = module;
     description = "Quickly create SH3F files and edit the properties of the 3D models it contain";
-    license = lib.licenses.gpl2;
-    src = fetchurl {
+    license = lib.licenses.gpl2Plus;
+    src = fetchzip {
       url = "mirror://sourceforge/sweethome3d/${module}-${version}-src.zip";
-      sha256 = "sha256-r5xJlUctUdcknJfm8rbz+bdzFhqgHsHpHwxEC4mItws=";
+      hash = "sha256-pqsSxQPzsyx4PS98fgU6UFhPWhpQoepGm0uJtkvV46c=";
     };
     desktopName = "Sweet Home 3D - Furniture Library Editor";
   };
diff --git a/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix b/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix
index 609bd81e40e4..8029ff503119 100644
--- a/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix
+++ b/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , qtbase
 , qtsvg
+, qtwayland
 , qtwebengine
 , qtdeclarative
 , extra-cmake-modules
@@ -51,6 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
     boost
     qtforkawesome
   ] ++ lib.optionals stdenv.isDarwin [ iconv ]
+    ++ lib.optionals stdenv.isLinux [ qtwayland ]
     ++ lib.optionals webviewSupport [ qtwebengine ]
     ++ lib.optionals jsSupport [ qtdeclarative ]
     ++ lib.optionals kioPluginSupport [ kio ]
diff --git a/nixpkgs/pkgs/applications/misc/system76-keyboard-configurator/default.nix b/nixpkgs/pkgs/applications/misc/system76-keyboard-configurator/default.nix
index 737c713fb79c..94dc95a466cd 100644
--- a/nixpkgs/pkgs/applications/misc/system76-keyboard-configurator/default.nix
+++ b/nixpkgs/pkgs/applications/misc/system76-keyboard-configurator/default.nix
@@ -37,6 +37,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Keyboard configuration application for System76 keyboards and laptops";
+    mainProgram = "system76-keyboard-configurator";
     homepage = "https://github.com/pop-os/keyboard-configurator";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ mirrexagon ];
diff --git a/nixpkgs/pkgs/applications/misc/tableplus/default.nix b/nixpkgs/pkgs/applications/misc/tableplus/default.nix
index c53f89582b45..542a3c6000f2 100644
--- a/nixpkgs/pkgs/applications/misc/tableplus/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tableplus/default.nix
@@ -1,20 +1,20 @@
 { lib
 , fetchurl
-, undmg
+, _7zz
 , stdenv
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tableplus";
-  version = "504";
+  version = "538";
   src = fetchurl {
     url = "https://download.tableplus.com/macos/${finalAttrs.version}/TablePlus.dmg";
-    hash = "sha256-YFUquv71QFEnlmh93+HsFN6XtgoUx6CMOVqfdWAIWfo=";
+    hash = "sha256-db3dvjEzkqWrEO+lXyImk0cVBkh8MnCwHOYKIg+kRC4=";
   };
 
   sourceRoot = "TablePlus.app";
 
-  nativeBuildInputs = [ undmg ];
+  nativeBuildInputs = [ _7zz ];
 
   installPhase = ''
     runHook preInstall
diff --git a/nixpkgs/pkgs/applications/misc/tasknc/default.nix b/nixpkgs/pkgs/applications/misc/tasknc/default.nix
index 5250581762b0..236c81da562c 100644
--- a/nixpkgs/pkgs/applications/misc/tasknc/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tasknc/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lharding/tasknc";
     description = "A ncurses wrapper around taskwarrior";
+    mainProgram = "tasknc";
     maintainers = with maintainers; [ matthiasbeyer infinisil ];
     platforms = platforms.linux; # Cannot test others
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/misc/taskopen/default.nix b/nixpkgs/pkgs/applications/misc/taskopen/default.nix
index 54361a0fbbd5..ee40e19261a9 100644
--- a/nixpkgs/pkgs/applications/misc/taskopen/default.nix
+++ b/nixpkgs/pkgs/applications/misc/taskopen/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Script for taking notes and open urls with taskwarrior";
+    mainProgram = "taskopen";
     homepage = "https://github.com/ValiValpas/taskopen";
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/applications/misc/tdrop/default.nix b/nixpkgs/pkgs/applications/misc/tdrop/default.nix
index 34c01a197591..e39dd2462321 100644
--- a/nixpkgs/pkgs/applications/misc/tdrop/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tdrop/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Glorified WM-Independent Dropdown Creator";
+    mainProgram = "tdrop";
     homepage = "https://github.com/noctuid/tdrop";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/teleprompter/default.nix b/nixpkgs/pkgs/applications/misc/teleprompter/default.nix
deleted file mode 100644
index 9e4f711d125c..000000000000
--- a/nixpkgs/pkgs/applications/misc/teleprompter/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ lib, stdenv, fetchurl, electron_10, makeDesktopItem, makeWrapper, asar, autoPatchelfHook}:
-
-let
-  electron = electron_10;
-in
-stdenv.mkDerivation rec {
-  pname = "teleprompter";
-  version = "2.4.0";
-
-  src = fetchurl {
-    url = "https://github.com/ImaginarySense/Imaginary-Teleprompter-Electron/releases/download/${lib.versions.majorMinor version}/imaginary-teleprompter-${version}.tar.gz";
-    sha256 = "bgdtK8l5d26avv1WUw9cfOgZrIL1q/a9890Ams4yidQ=";
-  };
-
-  dontBuild = true;
-  dontStrip = true;
-
-  nativeBuildInputs = [ autoPatchelfHook makeWrapper asar ];
-  installPhase = ''
-    mkdir -p $out/bin $out/opt/teleprompter $out/share/applications
-    asar e resources/app.asar $out/opt/teleprompter/resources/app.asar.unpacked
-    ln -s ${desktopItem}/share/applications/* $out/share/applications
-  '';
-
-  postFixup = ''
-    makeWrapper ${electron}/bin/electron $out/bin/teleprompter \
-      --add-flags "$out/opt/teleprompter/resources/app.asar.unpacked --without-update"
-  '';
-
-  desktopItem = makeDesktopItem {
-     name = "teleprompter";
-     exec = "teleprompter";
-     desktopName = "Teleprompter";
-  };
-
-  meta = with lib; {
-    description = "The most complete, free, teleprompter app on the web";
-    license = [ licenses.gpl3Plus ];
-    homepage = "https://github.com/ImaginarySense/Teleprompter-Core";
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ Scriptkiddi ];
-  };
-}
-
diff --git a/nixpkgs/pkgs/applications/misc/tellico/default.nix b/nixpkgs/pkgs/applications/misc/tellico/default.nix
index 52b513b89d6d..b990f0ddb0d2 100644
--- a/nixpkgs/pkgs/applications/misc/tellico/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tellico/default.nix
@@ -61,6 +61,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Collection management software, free and simple";
+    mainProgram = "tellico";
     homepage = "https://tellico-project.org/";
     license = with licenses; [ gpl2Only gpl3Only lgpl2Only ];
     maintainers = with maintainers; [ numkem ];
diff --git a/nixpkgs/pkgs/applications/misc/termdown/default.nix b/nixpkgs/pkgs/applications/misc/termdown/default.nix
index f28bd665a5e1..d2d592dce7e9 100644
--- a/nixpkgs/pkgs/applications/misc/termdown/default.nix
+++ b/nixpkgs/pkgs/applications/misc/termdown/default.nix
@@ -22,6 +22,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Starts a countdown to or from TIMESPEC";
+    mainProgram = "termdown";
     longDescription = "Countdown timer and stopwatch in your terminal";
     homepage = "https://github.com/trehn/termdown";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/applications/misc/termpdf.py/default.nix b/nixpkgs/pkgs/applications/misc/termpdf.py/default.nix
index e51f7633e013..244bfee24032 100644
--- a/nixpkgs/pkgs/applications/misc/termpdf.py/default.nix
+++ b/nixpkgs/pkgs/applications/misc/termpdf.py/default.nix
@@ -32,6 +32,7 @@ buildPythonApplication {
       A graphical pdf (and epub, cbz, ...) reader that works
       inside the kitty terminal.
     '';
+    mainProgram = "termpdf.py";
     homepage = "https://github.com/dsanson/termpdf.py";
     maintainers = with maintainers; [ teto ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/misc/themechanger/default.nix b/nixpkgs/pkgs/applications/misc/themechanger/default.nix
index 945bd8de5420..652fe267852a 100644
--- a/nixpkgs/pkgs/applications/misc/themechanger/default.nix
+++ b/nixpkgs/pkgs/applications/misc/themechanger/default.nix
@@ -53,6 +53,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/ALEX11BR/ThemeChanger";
     description = "A theme changing utility for Linux";
+    mainProgram = "themechanger";
     longDescription = ''
       This app is a theme changing utility for Linux, BSDs, and whatnots.
       It lets the user change GTK 2/3/4, Kvantum, icon and cursor themes, edit GTK CSS with live preview, and set some related options.
diff --git a/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix b/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix
index bf53848b5d38..2c31d2b5725d 100644
--- a/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix
+++ b/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Task management system";
+    mainProgram = "thinkingrock";
     homepage = "http://www.thinkingrock.com.au/";
     license = licenses.cddl;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/tipp10/default.nix b/nixpkgs/pkgs/applications/misc/tipp10/default.nix
index 76ea8fb7fc0e..d61e0deabbd7 100644
--- a/nixpkgs/pkgs/applications/misc/tipp10/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tipp10/default.nix
@@ -17,6 +17,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Learn and train typing with the ten-finger system";
+    mainProgram = "tipp10";
     homepage = "https://gitlab.com/tipp10/tipp10";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/misc/tiv/default.nix b/nixpkgs/pkgs/applications/misc/tiv/default.nix
index 30117180b74c..4bfb705ae861 100644
--- a/nixpkgs/pkgs/applications/misc/tiv/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tiv/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/stefanhaustein/TerminalImageViewer";
     description = "Small C++ program to display images in a (modern) terminal using RGB ANSI codes and unicode block graphics characters";
+    mainProgram = "tiv";
     license = licenses.asl20;
     maintainers = with maintainers; [ magnetophon ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/misc/toot/default.nix b/nixpkgs/pkgs/applications/misc/toot/default.nix
index feb9f188b10e..496644ff4d42 100644
--- a/nixpkgs/pkgs/applications/misc/toot/default.nix
+++ b/nixpkgs/pkgs/applications/misc/toot/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "toot";
-  version = "0.41.1";
+  version = "0.42.0";
 
   src = fetchFromGitHub {
     owner  = "ihabunek";
     repo   = "toot";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-FwxA8YJzNKEK5WjdDi8PIufHh+SRVMRiFVIQs1iZ0UY=";
+    sha256 = "sha256-FxA/loJzb/DBI1vWC71IFqdFcwjwIezhBJCGNeBzRoU=";
   };
 
   nativeCheckInputs = with python3Packages; [ pytest ];
@@ -27,6 +27,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Mastodon CLI interface";
+    mainProgram = "toot";
     homepage    = "https://github.com/ihabunek/toot";
     license     = licenses.gpl3;
     maintainers = [ maintainers.matthiasbeyer ];
diff --git a/nixpkgs/pkgs/applications/misc/topydo/default.nix b/nixpkgs/pkgs/applications/misc/topydo/default.nix
index 9ece11043fa0..59e93dcb5dea 100644
--- a/nixpkgs/pkgs/applications/misc/topydo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/topydo/default.nix
@@ -44,6 +44,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A cli todo application compatible with the todo.txt format";
+    mainProgram = "topydo";
     homepage = "https://github.com/topydo/topydo";
     changelog = "https://github.com/topydo/topydo/blob/${src.rev}/CHANGES.md";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/misc/tpmmanager/default.nix b/nixpkgs/pkgs/applications/misc/tpmmanager/default.nix
index 48ff9675a78d..90d1cc01ffb4 100644
--- a/nixpkgs/pkgs/applications/misc/tpmmanager/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tpmmanager/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://projects.sirrix.com/trac/tpmmanager";
     description = "Tool for managing the TPM";
+    mainProgram = "tpmmanager";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ ];
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/applications/misc/tuhi/default.nix b/nixpkgs/pkgs/applications/misc/tuhi/default.nix
index 1b26f455649a..b3334c59c4a0 100644
--- a/nixpkgs/pkgs/applications/misc/tuhi/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tuhi/default.nix
@@ -56,6 +56,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "DBus daemon to access Wacom SmartPad devices";
+    mainProgram = "tuhi";
     homepage = "https://github.com/tuhiproject/tuhi";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/tuir/default.nix b/nixpkgs/pkgs/applications/misc/tuir/default.nix
index d4188829d40b..a1c4f60c4e65 100644
--- a/nixpkgs/pkgs/applications/misc/tuir/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tuir/default.nix
@@ -25,6 +25,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Browse Reddit from your Terminal (fork of rtv)";
+    mainProgram = "tuir";
     homepage = "https://gitlab.com/ajak/tuir/";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne matthiasbeyer ];
diff --git a/nixpkgs/pkgs/applications/misc/twitch-chat-downloader/default.nix b/nixpkgs/pkgs/applications/misc/twitch-chat-downloader/default.nix
index 61fb05250712..a602c31008de 100644
--- a/nixpkgs/pkgs/applications/misc/twitch-chat-downloader/default.nix
+++ b/nixpkgs/pkgs/applications/misc/twitch-chat-downloader/default.nix
@@ -31,6 +31,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Twitch Chat Downloader";
+    mainProgram = "tcd";
     homepage = "https://github.com/TheDrHax/Twitch-Chat-Downloader";
     license = licenses.mit;
     maintainers = with maintainers; [ marsam ];
diff --git a/nixpkgs/pkgs/applications/misc/tzupdate/default.nix b/nixpkgs/pkgs/applications/misc/tzupdate/default.nix
index 7c49696141c6..7ca8c9f97345 100644
--- a/nixpkgs/pkgs/applications/misc/tzupdate/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tzupdate/default.nix
@@ -16,6 +16,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Update timezone information based on geoip";
+    mainProgram = "tzupdate";
     homepage = "https://github.com/cdown/tzupdate";
     maintainers = [ maintainers.michaelpj ];
     license = licenses.unlicense;
diff --git a/nixpkgs/pkgs/applications/misc/ubpm/default.nix b/nixpkgs/pkgs/applications/misc/ubpm/default.nix
index 6e0d7f7f25f5..02e8411999fe 100644
--- a/nixpkgs/pkgs/applications/misc/ubpm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ubpm/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://codeberg.org/LazyT/ubpm";
     description = "Universal Blood Pressure Manager";
+    mainProgram = "ubpm";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ kurnevsky ];
   };
diff --git a/nixpkgs/pkgs/applications/misc/valent/default.nix b/nixpkgs/pkgs/applications/misc/valent/default.nix
index 09ec8609712d..4e07cf62821d 100644
--- a/nixpkgs/pkgs/applications/misc/valent/default.nix
+++ b/nixpkgs/pkgs/applications/misc/valent/default.nix
@@ -60,8 +60,9 @@ stdenv.mkDerivation rec {
     "-Dvapi=false"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "An implementation of the KDE Connect protocol, built on GNOME platform libraries";
+    mainProgram = "valent";
     longDescription = ''
       Note that you have to open firewall ports for other devices
       to connect to it. Use either:
@@ -81,8 +82,8 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://valent.andyholmes.ca";
     changelog = "https://github.com/andyholmes/valent/blob/${src.rev}/CHANGELOG.md";
-    license = with licenses; [ gpl3Plus cc0 cc-by-sa-30 ];
-    maintainers = with maintainers; [ federicoschonborn aleksana ];
-    platforms = platforms.linux;
+    license = with lib.licenses; [ gpl3Plus cc0 cc-by-sa-30 ];
+    maintainers = with lib.maintainers; [ aleksana federicoschonborn ];
+    platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/variety/default.nix b/nixpkgs/pkgs/applications/misc/variety/default.nix
index cf0272f075e2..e26496718f39 100644
--- a/nixpkgs/pkgs/applications/misc/variety/default.nix
+++ b/nixpkgs/pkgs/applications/misc/variety/default.nix
@@ -82,6 +82,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/varietywalls/variety";
     description = "A wallpaper manager for Linux systems";
+    mainProgram = "variety";
     longDescription = ''
       Variety is a wallpaper manager for Linux systems. It supports numerous
       desktops and wallpaper sources, including local files and online services:
diff --git a/nixpkgs/pkgs/applications/misc/vhs/default.nix b/nixpkgs/pkgs/applications/misc/vhs/default.nix
index ae0466c1faaa..43c3aea38e82 100644
--- a/nixpkgs/pkgs/applications/misc/vhs/default.nix
+++ b/nixpkgs/pkgs/applications/misc/vhs/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool for generating terminal GIFs with code";
+    mainProgram = "vhs";
     homepage = "https://github.com/charmbracelet/vhs";
     changelog = "https://github.com/charmbracelet/vhs/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/misc/viking/default.nix b/nixpkgs/pkgs/applications/misc/viking/default.nix
index be642790f386..8a987ed24672 100644
--- a/nixpkgs/pkgs/applications/misc/viking/default.nix
+++ b/nixpkgs/pkgs/applications/misc/viking/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GPS data editor and analyzer";
+    mainProgram = "viking";
     longDescription = ''
       Viking is a free/open source program to manage GPS data.  You
       can import and plot tracks and waypoints, show Openstreetmaps
diff --git a/nixpkgs/pkgs/applications/misc/vit/default.nix b/nixpkgs/pkgs/applications/misc/vit/default.nix
index b7594add350a..7bd7501f2296 100644
--- a/nixpkgs/pkgs/applications/misc/vit/default.nix
+++ b/nixpkgs/pkgs/applications/misc/vit/default.nix
@@ -33,6 +33,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/scottkosty/vit";
     description = "Visual Interactive Taskwarrior";
+    mainProgram = "vit";
     maintainers = with maintainers; [ dtzWill arcnmx ];
     platforms = platforms.all;
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/misc/vym/default.nix b/nixpkgs/pkgs/applications/misc/vym/default.nix
index 4815a7bc10af..e58b98c4e070 100644
--- a/nixpkgs/pkgs/applications/misc/vym/default.nix
+++ b/nixpkgs/pkgs/applications/misc/vym/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "http://www.insilmaril.de/vym/";
     description = "A mind-mapping software";
+    mainProgram = "vym";
     longDescription = ''
       VYM (View Your Mind) is a tool to generate and manipulate maps which show
       your thoughts. Such maps can help you to improve your creativity and
diff --git a/nixpkgs/pkgs/applications/misc/watchmate/default.nix b/nixpkgs/pkgs/applications/misc/watchmate/default.nix
index b78d7f5277ca..c668aea45531 100644
--- a/nixpkgs/pkgs/applications/misc/watchmate/default.nix
+++ b/nixpkgs/pkgs/applications/misc/watchmate/default.nix
@@ -51,6 +51,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "PineTime smart watch companion app for Linux phone and desktop";
+    mainProgram = "watchmate";
     homepage = "https://github.com/azymohliad/watchmate";
     changelog = "https://github.com/azymohliad/watchmate/raw/v${version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/misc/watershot/default.nix b/nixpkgs/pkgs/applications/misc/watershot/default.nix
index 6a6feb209d05..6d29fab82527 100644
--- a/nixpkgs/pkgs/applications/misc/watershot/default.nix
+++ b/nixpkgs/pkgs/applications/misc/watershot/default.nix
@@ -33,6 +33,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     platforms = with platforms; linux;
     description = "A simple wayland native screenshot tool";
+    mainProgram = "watershot";
     homepage = "https://github.com/Kirottu/watershot";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lord-valen ];
diff --git a/nixpkgs/pkgs/applications/misc/waybar/default.nix b/nixpkgs/pkgs/applications/misc/waybar/default.nix
index dad61b88d4ff..fd24f6605e4e 100644
--- a/nixpkgs/pkgs/applications/misc/waybar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/waybar/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , bash
 , fetchFromGitHub
+, fetchFromGitLab
 , SDL2
 , alsa-lib
 , catch2_3
@@ -51,6 +52,7 @@
 , mpdSupport ? true
 , mprisSupport ? stdenv.isLinux
 , nlSupport ? true
+, pipewireSupport ? true
 , pulseSupport ? true
 , rfkillSupport ? true
 , runTests ? true
@@ -68,24 +70,35 @@ let
   libcava.src = fetchFromGitHub {
     owner = "LukashonakV";
     repo = "cava";
-    rev = "0.9.1";
-    hash = "sha256-FnRJJV0poRmw+y4nt1X7Z0ipX86LRK1TJhNKHFk0rTw=";
+    rev = "0.10.1";
+    hash = "sha256-iIYKvpOWafPJB5XhDOSIW9Mb4I3A4pcgIIPQdQYEqUw=";
   };
+
+  wireplumber_0_4 = wireplumber.overrideAttrs (attrs: rec {
+    version = "0.4.17";
+    src = fetchFromGitLab {
+      domain = "gitlab.freedesktop.org";
+      owner = "pipewire";
+      repo = "wireplumber";
+      rev = version;
+      hash = "sha256-vhpQT67+849WV1SFthQdUeFnYe/okudTQJoL3y+wXwI=";
+    };
+  });
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "waybar";
-  version = "0.9.24";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "Alexays";
     repo = "Waybar";
     rev = finalAttrs.version;
-    hash = "sha256-JhLKGzqZ8akWcyHTav2TGcGmXk9dy9Xj4+/oFCPeNU0=";
+    hash = "sha256-p1VRrKT2kTDy48gDXPMHlLbfcokAOFeTZXGzTeO1SAE=";
   };
 
   postUnpack = lib.optional cavaSupport ''
     pushd "$sourceRoot"
-    cp -R --no-preserve=mode,ownership ${libcava.src} subprojects/cava-0.9.1
+    cp -R --no-preserve=mode,ownership ${libcava.src} subprojects/cava-0.10.1
     patchShebangs .
     popd
   '';
@@ -122,7 +135,6 @@ stdenv.mkDerivation (finalAttrs: {
     fftw
     iniparser
     ncurses
-    pipewire
     portaudio
   ]
   ++ lib.optional evdevSupport libevdev
@@ -138,7 +150,8 @@ stdenv.mkDerivation (finalAttrs: {
   ++ lib.optional traySupport libdbusmenu-gtk3
   ++ lib.optional udevSupport udev
   ++ lib.optional upowerSupport upower
-  ++ lib.optional wireplumberSupport wireplumber
+  ++ lib.optional wireplumberSupport wireplumber_0_4
+  ++ lib.optional (cavaSupport || pipewireSupport) pipewire
   ++ lib.optional (!stdenv.isLinux) libinotify-kqueue;
 
   nativeCheckInputs = [ catch2_3 ];
@@ -147,7 +160,6 @@ stdenv.mkDerivation (finalAttrs: {
   mesonFlags = (lib.mapAttrsToList lib.mesonEnable {
     "cava" = cavaSupport;
     "dbusmenu-gtk" = traySupport;
-    "gtk-layer-shell" = true;
     "jack" = jackSupport;
     "libinput" = inputSupport;
     "libnl" = nlSupport;
@@ -155,6 +167,7 @@ stdenv.mkDerivation (finalAttrs: {
     "man-pages" = true;
     "mpd" = mpdSupport;
     "mpris" = mprisSupport;
+    "pipewire" = pipewireSupport;
     "pulseaudio" = pulseSupport;
     "rfkill" = rfkillSupport;
     "sndio" = sndioSupport;
diff --git a/nixpkgs/pkgs/applications/misc/waycorner/default.nix b/nixpkgs/pkgs/applications/misc/waycorner/default.nix
index 66e5660042ad..2d1303bb26c7 100644
--- a/nixpkgs/pkgs/applications/misc/waycorner/default.nix
+++ b/nixpkgs/pkgs/applications/misc/waycorner/default.nix
@@ -8,14 +8,14 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "waycorner";
-  version = "0.2.1";
+  version = "0.2.3";
   src = fetchFromGitHub {
     owner = "AndreasBackx";
     repo = "waycorner";
     rev = version;
-    hash = "sha256-xvmvtn6dMqt8kUwvn5d5Nl1V84kz1eWa9BSIN/ONkSQ=";
+    hash = "sha256-b8juIhJ3kh+NJc8RUVVoatqjWISSW0ir/vk2Dz/428Y=";
   };
-  cargoHash = "sha256-Dl+GhJywWhaC4QMS70klazPsFipGVRW+6jrXH2XsEAI=";
+  cargoHash = "sha256-LGxFRGzQ8jOfxT5di3+YGqfS5KM4+Br6KlTFpPbkJyU=";
   buildInputs = [
     wayland
   ];
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Hot corners for Wayland";
+    mainProgram = "waycorner";
     changelog = "https://github.com/AndreasBackx/waycorner/blob/main/CHANGELOG.md";
     homepage = "https://github.com/AndreasBackx/waycorner";
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/waypaper/default.nix b/nixpkgs/pkgs/applications/misc/waypaper/default.nix
index 1b2ca4843461..36f79865d31a 100644
--- a/nixpkgs/pkgs/applications/misc/waypaper/default.nix
+++ b/nixpkgs/pkgs/applications/misc/waypaper/default.nix
@@ -42,6 +42,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     changelog = "https://github.com/anufrievroman/waypaper/releases/tag/${version}";
     description = "GUI wallpaper setter for Wayland-based window managers";
+    mainProgram = "waypaper";
     longDescription = ''
       GUI wallpaper setter for Wayland-based window managers that works as a frontend for popular backends like swaybg and swww.
 
diff --git a/nixpkgs/pkgs/applications/misc/weather/default.nix b/nixpkgs/pkgs/applications/misc/weather/default.nix
index 290de03f39ff..b17bca38d6e9 100644
--- a/nixpkgs/pkgs/applications/misc/weather/default.nix
+++ b/nixpkgs/pkgs/applications/misc/weather/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://fungi.yuggoth.org/weather";
     description = "Quick access to current weather conditions and forecasts";
+    mainProgram = "weather";
     license = licenses.isc;
     maintainers = [ maintainers.matthiasbeyer ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/webfontkitgenerator/default.nix b/nixpkgs/pkgs/applications/misc/webfontkitgenerator/default.nix
index 57d006a5b569..c4a3a7b86e98 100644
--- a/nixpkgs/pkgs/applications/misc/webfontkitgenerator/default.nix
+++ b/nixpkgs/pkgs/applications/misc/webfontkitgenerator/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Webfont Kit Generator is a simple utility that allows you to generate woff, woff2 and the necessary CSS boilerplate from non-web font formats (otf & ttf)";
+    mainProgram = "webfontkitgenerator";
     homepage = "https://apps.gnome.org/app/com.rafaelmardojai.WebfontKitGenerator";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ benediktbroich ];
diff --git a/nixpkgs/pkgs/applications/misc/whalebird/default.nix b/nixpkgs/pkgs/applications/misc/whalebird/default.nix
index ce7d178f1c05..83b310ef885e 100644
--- a/nixpkgs/pkgs/applications/misc/whalebird/default.nix
+++ b/nixpkgs/pkgs/applications/misc/whalebird/default.nix
@@ -1,38 +1,54 @@
-{ lib, stdenv, fetchurl
-, autoPatchelfHook, makeDesktopItem, copyDesktopItems, makeWrapper, gnugrep, asar
-, electron, python3, alsa-lib, gtk3, libdbusmenu, libxshmfence, mesa, nss
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeDesktopItem
+, copyDesktopItems
+, makeWrapper
+, electron
+, cacert
+, gitMinimal
+, yarn
 }:
-
 stdenv.mkDerivation rec {
   pname = "whalebird";
-  version = "5.0.7";
-
-  src = let
-    downloads = "https://github.com/h3poteto/whalebird-desktop/releases/download/v${version}";
-  in
-    if stdenv.system == "x86_64-linux" then
-      fetchurl {
-        url = downloads + "/Whalebird-${version}-linux-x64.tar.bz2";
-        hash = "sha256-eufP038REwF2VwAxxI8R0S3fE8oJ+SX/CES5ozuut2w=";
-      }
-    else if stdenv.system == "aarch64-linux" then
-      fetchurl {
-        url = downloads + "/Whalebird-${version}-linux-arm64.tar.bz2";
-        hash = "sha256-U0xVTUUm6wsRxYc1w4vfNtVE6o8dNzXTSi+IX4mgDEE=";
-      }
-    else
-      throw "Whalebird is not supported for ${stdenv.system}";
+  version = "6.0.4";
+
+  src = fetchFromGitHub {
+    owner = "h3poteto";
+    repo = "whalebird-desktop";
+    rev = "v${version}";
+    hash = "sha256-Yx0GEEPJ+d4/RvCbqZdKR6iE2iUNbOJr+RuboqjT8z8=";
+  };
+  # we cannot use fetchYarnDeps because that doesn't support yarn 2/berry lockfiles
+  offlineCache = stdenv.mkDerivation {
+    name = "whalebird-${version}-offline-cache";
+    inherit src;
+
+    nativeBuildInputs = [
+      cacert # needed for git
+      gitMinimal # needed to download git dependencies
+      yarn
+    ];
+
+    buildPhase = ''
+      export HOME=$(mktemp -d)
+      yarn config set enableTelemetry 0
+      yarn config set cacheFolder $out
+      yarn config set --json supportedArchitectures.os '[ "linux" ]'
+      yarn config set --json supportedArchitectures.cpu '[ "arm64", "x64" ]'
+      yarn
+    '';
+
+    outputHashMode = "recursive";
+    outputHash = "sha256-RjTGAgHRRQ4O3eTYpmTrl+KXafDZkWf1NH6lzdozVAA=";
+  };
 
   nativeBuildInputs = [
-    autoPatchelfHook
     makeWrapper
     copyDesktopItems
-    gnugrep
-    asar
+    yarn
   ];
 
-  buildInputs = [ alsa-lib gtk3 libdbusmenu libxshmfence mesa nss ];
-
   desktopItems = [
     (makeDesktopItem {
       desktopName = "Whalebird";
@@ -44,28 +60,21 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  unpackPhase = ''
-    mkdir -p opt
-    tar -xf ${src} -C opt
-    # remove the version/target suffix from the untar'd directory
-    mv opt/Whalebird-* opt/Whalebird
-  '';
+  ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
 
   buildPhase = ''
     runHook preBuild
 
-    # Necessary steps to find the tray icon
-    # For aarch64-linux, we need to overwrite this symlink first as it points to
-    # /usr/bin/python3
-    if [ "${stdenv.system}" = "aarch64-linux" ]
-    then ln -sf ${python3}/bin/python3 \
-      opt/Whalebird/resources/app.asar.unpacked/node_modules/better-sqlite3/build/node_gyp_bins/python3
-    fi
-    asar extract opt/Whalebird/resources/app.asar "$TMP/work"
-    substituteInPlace "$TMP/work/dist/electron/main.js" \
-      --replace "$(grep -oE '.{2},"tray_icon.png"' "$TMP/work/dist/electron/main.js")" \
-        "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\""
-    asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" opt/Whalebird/resources/app.asar
+    export HOME=$(mktemp -d)
+    yarn config set enableTelemetry 0
+    yarn config set cacheFolder ${offlineCache}
+
+    yarn --immutable-cache
+    yarn run nextron build --no-pack
+    yarn run electron-builder --dir \
+      --config electron-builder.yml \
+      -c.electronDist="${electron}/libexec/electron" \
+      -c.electronVersion=${electron.version}
 
     runHook postBuild
   '';
@@ -73,26 +82,30 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
 
-    mkdir $out
-    mv opt $out
+    mkdir -p $out/opt
+    cp -r ./dist/*-unpacked $out/opt/Whalebird
 
-    # install icons
-    for icon in $out/opt/Whalebird/resources/build/icons/*.png; do
-      mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps"
-      ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/whalebird.png"
+    # Install icons
+    # Taken from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=whalebird#n41
+    for i in 16 32 128 256 512; do
+      install -Dm644 "resources/icons/icon.iconset/icon_$i"x"$i.png" \
+        "$out/share/icons/hicolor/$i"x"$i/apps/whalebird.png"
     done
+    install -Dm644 "resources/icons/icon.iconset/icon_32x32@2x.png" \
+      "$out/share/icons/hicolor/64x64/apps/whalebird.png"
 
-    makeWrapper ${electron}/bin/electron $out/bin/whalebird \
-      --add-flags $out/opt/Whalebird/resources/app.asar \
+    makeWrapper "${electron}/bin/electron" "$out/bin/whalebird" \
+      --add-flags "$out/opt/Whalebird/resources/app.asar" \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
 
     runHook postInstall
   '';
 
   meta = with lib; {
-    description = "Electron based Mastodon, Pleroma and Misskey client for Windows, Mac and Linux";
+    description = "Single-column Fediverse client for desktop";
+    mainProgram = "whalebird";
     homepage = "https://whalebird.social";
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    changelog = "https://github.com/h3poteto/whalebird-desktop/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang colinsane weathercold ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
diff --git a/nixpkgs/pkgs/applications/misc/wikicurses/default.nix b/nixpkgs/pkgs/applications/misc/wikicurses/default.nix
index ec7dff141439..5f20f314d3f4 100644
--- a/nixpkgs/pkgs/applications/misc/wikicurses/default.nix
+++ b/nixpkgs/pkgs/applications/misc/wikicurses/default.nix
@@ -25,6 +25,7 @@ pythonPackages.buildPythonApplication rec {
 
   meta = {
     description = "A simple curses interface for MediaWiki sites such as Wikipedia";
+    mainProgram = "wikicurses";
     homepage = "https://github.com/ids1024/wikicurses/";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/wordbook/default.nix b/nixpkgs/pkgs/applications/misc/wordbook/default.nix
index 757fed5265f2..314ae208f9d5 100644
--- a/nixpkgs/pkgs/applications/misc/wordbook/default.nix
+++ b/nixpkgs/pkgs/applications/misc/wordbook/default.nix
@@ -61,6 +61,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Offline English-English dictionary application built for GNOME";
+    mainProgram = "wordbook";
     homepage = "https://github.com/fushinari/Wordbook";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/workrave/default.nix b/nixpkgs/pkgs/applications/misc/workrave/default.nix
index 7d85f9c7a234..c4a5e692cfca 100644
--- a/nixpkgs/pkgs/applications/misc/workrave/default.nix
+++ b/nixpkgs/pkgs/applications/misc/workrave/default.nix
@@ -88,6 +88,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "A program to help prevent Repetitive Strain Injury";
+    mainProgram = "workrave";
     longDescription = ''
       Workrave is a program that assists in the recovery and prevention of
       Repetitive Strain Injury (RSI). The program frequently alerts you to
diff --git a/nixpkgs/pkgs/applications/misc/wpm/default.nix b/nixpkgs/pkgs/applications/misc/wpm/default.nix
index b6db073eb945..f7786471839a 100644
--- a/nixpkgs/pkgs/applications/misc/wpm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/wpm/default.nix
@@ -21,6 +21,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Console app for measuring typing speed in words per minute (WPM)";
+    mainProgram = "wpm";
     homepage = "https://pypi.org/project/wpm";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ alejandrosame ];
diff --git a/nixpkgs/pkgs/applications/misc/wttrbar/default.nix b/nixpkgs/pkgs/applications/misc/wttrbar/default.nix
index c2f67e83f8a7..3d74cdf35c22 100644
--- a/nixpkgs/pkgs/applications/misc/wttrbar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/wttrbar/default.nix
@@ -7,18 +7,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wttrbar";
-  version = "0.8.2";
+  version = "0.9.4";
 
   src = fetchFromGitHub {
     owner = "bjesus";
     repo = "wttrbar";
     rev = version;
-    hash = "sha256-XgBPZl5msKICIrUJZz2gj/hZjVAv0HpVKa69/KiLwnI=";
+    hash = "sha256-kRrVqUfkrSK/9z3Hj4J+mKcdV7JdTzjhxlVRa/kf8sw=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [ Security SystemConfiguration ]);
 
-  cargoHash = "sha256-JGJJ94rzHTQNR6rzFPWnFHH3t0fL1tvMeEN5NMzRtHM=";
+  cargoHash = "sha256-HxSyGME95FWR5VwodmrMUX0jPlfE9SJV0WBbICuuTok=";
 
   meta = {
     description = "A simple but detailed weather indicator for Waybar using wttr.in";
diff --git a/nixpkgs/pkgs/applications/misc/xca/default.nix b/nixpkgs/pkgs/applications/misc/xca/default.nix
index f5c8e90d2703..19b5a8e3ec2d 100644
--- a/nixpkgs/pkgs/applications/misc/xca/default.nix
+++ b/nixpkgs/pkgs/applications/misc/xca/default.nix
@@ -1,26 +1,35 @@
-{ stdenv, mkDerivation, lib, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config
-, libtool, openssl, qtbase, qttools, sphinx }:
-
-mkDerivation rec {
+{ stdenv
+, lib
+, fetchFromGitHub
+, wrapQtAppsHook
+, cmake
+, pkg-config
+, openssl
+, qtbase
+, qttools
+, sphinx
+}:
+
+stdenv.mkDerivation (finalAttrs: {
   pname = "xca";
-  version = "2.4.0";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
-    owner  = "chris2511";
-    repo   = "xca";
-    rev    = "RELEASE.${version}";
-    sha256 = "04z0mmjsry72nvib4icmwh1717y4q9pf2gr68ljrzln4vv4ckpwk";
+    owner = "chris2511";
+    repo = "xca";
+    rev = "RELEASE.${finalAttrs.version}";
+    hash = "sha256-E0Ap+JDK/oYTG+uaRHsdOxyLIywlYJ01T4ANQhNH220=";
   };
 
-  # Adaptions to stay OpenSSL 3.0 compatible
-  patches = [ (fetchpatch {
-    url = "https://github.com/chris2511/xca/commit/f5ac099e948ea354deac75ff9fa09d51453476e1.patch";
-    hash = "sha256-4rRO2y9hZq879HTsgBgbXGRYEcgfG4niJKyK3l3PMZ8=";
-  }) ];
-
-  buildInputs = [ libtool openssl qtbase ];
+  buildInputs = [ openssl qtbase ];
 
-  nativeBuildInputs = [ autoreconfHook pkg-config qttools sphinx ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    qttools
+    sphinx
+    wrapQtAppsHook
+  ];
 
   # Needed for qcollectiongenerator (see https://github.com/NixOS/nixpkgs/pull/92710)
   QT_PLUGIN_PATH = "${qtbase}/${qtbase.qtPluginPrefix}";
@@ -28,11 +37,11 @@ mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "An x509 certificate generation tool, handling RSA, DSA and EC keys, certificate signing requests (PKCS#10) and CRLs";
-    homepage    = "https://hohnstaedt.de/xca/";
-    license     = licenses.bsd3;
+    mainProgram = "xca";
+    homepage = "https://hohnstaedt.de/xca/";
+    license = licenses.bsd3;
     maintainers = with maintainers; [ offline peterhoeg ];
-    platforms   = platforms.all;
+    inherit (qtbase.meta) platforms;
   };
-}
+})
diff --git a/nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix b/nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix
index a9ccb2399daf..130b97189a62 100644
--- a/nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix
+++ b/nixpkgs/pkgs/applications/misc/xdgmenumaker/default.nix
@@ -56,6 +56,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Command line tool that generates XDG menus for several window managers";
+    mainProgram = "xdgmenumaker";
     homepage = "https://github.com/gapan/xdgmenumaker";
     license = licenses.gpl3Plus;
     # NOTE: exclude darwin from platforms because Travis reports hash mismatch
diff --git a/nixpkgs/pkgs/applications/misc/xfontsel/default.nix b/nixpkgs/pkgs/applications/misc/xfontsel/default.nix
index 6bcab225c25a..5bfdb209c1ff 100644
--- a/nixpkgs/pkgs/applications/misc/xfontsel/default.nix
+++ b/nixpkgs/pkgs/applications/misc/xfontsel/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.x.org/";
     description = "Allows testing the fonts available in an X server";
+    mainProgram = "xfontsel";
     license = with licenses; [ x11 smlnj mit ];
     maintainers = with maintainers; [ viric ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/misc/xmrig/proxy.nix b/nixpkgs/pkgs/applications/misc/xmrig/proxy.nix
index 0acaece4cc02..23b6c07ba6c6 100644
--- a/nixpkgs/pkgs/applications/misc/xmrig/proxy.nix
+++ b/nixpkgs/pkgs/applications/misc/xmrig/proxy.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Monero (XMR) Stratum protocol proxy";
+    mainProgram = "xmrig-proxy";
     homepage = "https://github.com/xmrig/xmrig-proxy";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ aij ];
diff --git a/nixpkgs/pkgs/applications/misc/xneur/default.nix b/nixpkgs/pkgs/applications/misc/xneur/default.nix
index eab545cf0818..e282d84f9c93 100644
--- a/nixpkgs/pkgs/applications/misc/xneur/default.nix
+++ b/nixpkgs/pkgs/applications/misc/xneur/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Utility for switching between keyboard layouts";
+    mainProgram = "xneur";
     homepage = "https://xneur.ru";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.raskin ];
diff --git a/nixpkgs/pkgs/applications/misc/xpad/default.nix b/nixpkgs/pkgs/applications/misc/xpad/default.nix
index 2a14cbe24fb5..13b29491bf3f 100644
--- a/nixpkgs/pkgs/applications/misc/xpad/default.nix
+++ b/nixpkgs/pkgs/applications/misc/xpad/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A sticky note application for jotting down things to remember";
+    mainProgram = "xpad";
     homepage = "https://launchpad.net/xpad";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/xsuspender/default.nix b/nixpkgs/pkgs/applications/misc/xsuspender/default.nix
index b47bbef0188f..178522fbf518 100644
--- a/nixpkgs/pkgs/applications/misc/xsuspender/default.nix
+++ b/nixpkgs/pkgs/applications/misc/xsuspender/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Auto-suspend inactive X11 applications";
+    mainProgram = "xsuspender";
     homepage = "https://kernc.github.io/xsuspender/";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ offline ];
diff --git a/nixpkgs/pkgs/applications/misc/xygrib/default.nix b/nixpkgs/pkgs/applications/misc/xygrib/default.nix
index f7b3f6837f7c..4ce68f77e25b 100644
--- a/nixpkgs/pkgs/applications/misc/xygrib/default.nix
+++ b/nixpkgs/pkgs/applications/misc/xygrib/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://opengribs.org";
     description = "Weather Forecast Visualization";
+    mainProgram = "xygrib";
     longDescription = ''
       XyGrib is a leading opensource weather visualization package.
       It interacts with OpenGribs's Grib server providing a choice
diff --git a/nixpkgs/pkgs/applications/misc/ydict/default.nix b/nixpkgs/pkgs/applications/misc/ydict/default.nix
index 1c57456f4a19..0d52c230a423 100644
--- a/nixpkgs/pkgs/applications/misc/ydict/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ydict/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Yet another command-line Youdao Chinese dictionary";
+    mainProgram = "ydict";
     homepage = "https://github.com/TimothyYe/ydict";
     license = licenses.mit;
     maintainers = with maintainers; [ zendo ];
diff --git a/nixpkgs/pkgs/applications/misc/yewtube/default.nix b/nixpkgs/pkgs/applications/misc/yewtube/default.nix
index 14f50e3be290..26ce9f8f64a2 100644
--- a/nixpkgs/pkgs/applications/misc/yewtube/default.nix
+++ b/nixpkgs/pkgs/applications/misc/yewtube/default.nix
@@ -40,6 +40,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Terminal based YouTube player and downloader, forked from mps-youtube";
+    mainProgram = "yt";
     homepage = "https://github.com/mps-youtube/yewtube";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fgaz koral ];
diff --git a/nixpkgs/pkgs/applications/misc/yubioath-flutter/default.nix b/nixpkgs/pkgs/applications/misc/yubioath-flutter/default.nix
index 4895f749ec8d..0611655da1bc 100644
--- a/nixpkgs/pkgs/applications/misc/yubioath-flutter/default.nix
+++ b/nixpkgs/pkgs/applications/misc/yubioath-flutter/default.nix
@@ -84,6 +84,7 @@ flutter.buildFlutterApplication rec {
 
   meta = with lib; {
     description = "Yubico Authenticator for Desktop";
+    mainProgram = "yubioath-flutter";
     homepage = "https://github.com/Yubico/yubioath-flutter";
     license = licenses.asl20;
     maintainers = with maintainers; [ lukegb ];
diff --git a/nixpkgs/pkgs/applications/misc/zathura/core/default.nix b/nixpkgs/pkgs/applications/misc/zathura/core/default.nix
index 9e3f5df6a793..3b529c18f52d 100644
--- a/nixpkgs/pkgs/applications/misc/zathura/core/default.nix
+++ b/nixpkgs/pkgs/applications/misc/zathura/core/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, meson, ninja, wrapGAppsHook, pkg-config
+{ lib, stdenv, fetchFromGitLab, meson, ninja, wrapGAppsHook, pkg-config, gitUpdater
 , appstream-glib, json-glib, desktop-file-utils, python3
 , gtk, girara, gettext, libxml2, check
 , sqlite, glib, texlive, libintl, libseccomp
@@ -8,11 +8,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "zathura";
-  version = "0.5.4";
-
-  src = fetchurl {
-    url = "https://pwmt.org/projects/zathura/download/zathura-${finalAttrs.version}.tar.xz";
-    sha256 = "0ckgamf98sydq543arp865jg1afwzhpzcsbhv6zrch2dm5x7y0x3";
+  version = "0.5.5";
+
+  src = fetchFromGitLab {
+    domain = "git.pwmt.org";
+    owner = "pwmt";
+    repo = "zathura";
+    rev = finalAttrs.version;
+    hash = "sha256-mHEYqgBB55p8nykFtvYtP5bWexp/IqFbeLs7gZmXCeE=";
   };
 
   outputs = [ "bin" "man" "dev" "out" ];
@@ -20,7 +23,6 @@ stdenv.mkDerivation (finalAttrs: {
   # Flag list:
   # https://github.com/pwmt/zathura/blob/master/meson_options.txt
   mesonFlags = [
-    "-Dsqlite=enabled"
     "-Dmanpages=enabled"
     "-Dconvert-icon=enabled"
     "-Dsynctex=enabled"
@@ -43,6 +45,8 @@ stdenv.mkDerivation (finalAttrs: {
 
   doCheck = !stdenv.isDarwin;
 
+  passthru.updateScript = gitUpdater { };
+
   meta = with lib; {
     homepage = "https://git.pwmt.org/pwmt/zathura";
     description = "A core component for zathura PDF viewer";
diff --git a/nixpkgs/pkgs/applications/misc/zk-shell/default.nix b/nixpkgs/pkgs/applications/misc/zk-shell/default.nix
index 9f6816f00dda..e565e1ecda75 100644
--- a/nixpkgs/pkgs/applications/misc/zk-shell/default.nix
+++ b/nixpkgs/pkgs/applications/misc/zk-shell/default.nix
@@ -25,6 +25,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A powerful & scriptable shell for Apache ZooKeeper";
+    mainProgram = "zk-shell";
     homepage = "https://github.com/rgs1/zk_shell";
     license = licenses.asl20;
     maintainers = [ maintainers.mahe ];
diff --git a/nixpkgs/pkgs/applications/misc/zscroll/default.nix b/nixpkgs/pkgs/applications/misc/zscroll/default.nix
index bc53ade06a78..ccdac791e336 100644
--- a/nixpkgs/pkgs/applications/misc/zscroll/default.nix
+++ b/nixpkgs/pkgs/applications/misc/zscroll/default.nix
@@ -20,6 +20,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A text scroller for use with panels and shells";
+    mainProgram = "zscroll";
     homepage = "https://github.com/noctuid/zscroll";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/networking/adguardian/default.nix b/nixpkgs/pkgs/applications/networking/adguardian/default.nix
index 7b85ee2c000c..21123d47e5d1 100644
--- a/nixpkgs/pkgs/applications/networking/adguardian/default.nix
+++ b/nixpkgs/pkgs/applications/networking/adguardian/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Terminal-based, real-time traffic monitoring and statistics for your AdGuard Home instance";
+    mainProgram = "adguardian";
     homepage = "https://github.com/Lissy93/AdGuardian-Term";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/nixpkgs/pkgs/applications/networking/breitbandmessung/default.nix b/nixpkgs/pkgs/applications/networking/breitbandmessung/default.nix
index 09ec430e6548..9a6cc8a4f739 100644
--- a/nixpkgs/pkgs/applications/networking/breitbandmessung/default.nix
+++ b/nixpkgs/pkgs/applications/networking/breitbandmessung/default.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , asar
 , dpkg
-, electron_24
+, electron
 , makeWrapper
 , nixosTests
 , undmg
@@ -12,14 +12,11 @@
 let
   inherit (stdenv.hostPlatform) system;
 
-  version = "3.3.0";
+  sources = import ./sources.nix;
 
   systemArgs = rec {
-    x86_64-linux = rec {
-      src = fetchurl {
-        url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-${version}-linux.deb";
-        sha256 = "sha256-12mbdxklje9msnRtNk1RAtIg3OCybev/vUersDZj2i4=";
-      };
+    x86_64-linux = {
+      src = fetchurl sources.x86_64-linux;
 
       nativeBuildInputs = [
         asar
@@ -49,7 +46,7 @@ let
         }
         EOF
 
-        makeWrapper ${electron_24}/bin/electron $out/bin/breitbandmessung \
+        makeWrapper ${electron}/bin/electron $out/bin/breitbandmessung \
           --add-flags $out/share/breitbandmessung/resources/build/electron.js
 
         # Fix the desktop link
@@ -59,10 +56,7 @@ let
     };
 
     x86_64-darwin = {
-      src = fetchurl {
-        url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-${version}-mac.dmg";
-        sha256 = "sha256-a27R/N13i4qU2znTKz+LGxSdgSzJ0MzIHeiPHyRd65k=";
-      };
+      src = fetchurl sources.x86_64-darwin;
 
       nativeBuildInputs = [ undmg ];
 
@@ -79,9 +73,10 @@ let
 in
 stdenv.mkDerivation ({
   pname = "breitbandmessung";
-  inherit version;
+  inherit (sources) version;
 
   passthru.tests = { inherit (nixosTests) breitbandmessung; };
+  passthru.updateScript = ./update.sh;
 
   meta = with lib; {
     description = "Broadband internet speed test app from the german Bundesnetzagentur";
diff --git a/nixpkgs/pkgs/applications/networking/breitbandmessung/sources.nix b/nixpkgs/pkgs/applications/networking/breitbandmessung/sources.nix
new file mode 100644
index 000000000000..d97cc1179952
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/breitbandmessung/sources.nix
@@ -0,0 +1,11 @@
+{
+  version = "3.6.0";
+  x86_64-linux = {
+    url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-3.6.0-linux.deb";
+    sha256 = "sha256-jUp4Q9tiR/WLkTNHz97j0eE/WwcfFF3ut0S9N4M75Oc=";
+  };
+  x86_64-darwin = {
+    url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-3.6.0-mac.dmg";
+    sha256 = "sha256-ZvTig1/fm1GRoOYuTRBiZ8j4CRbZSa95q6a0sxo39Gs=";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/breitbandmessung/update.sh b/nixpkgs/pkgs/applications/networking/breitbandmessung/update.sh
new file mode 100755
index 000000000000..da982adf933b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/breitbandmessung/update.sh
@@ -0,0 +1,29 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq nix ripgrep
+
+set -xeu -o pipefail
+
+PACKAGE_DIR="$(realpath "$(dirname "$0")")"
+
+current="$(nix eval -f "$PACKAGE_DIR/sources.nix" --raw version || :)"
+latest="$(curl -sS https://breitbandmessung.de/desktop-app | \
+  rg '.*Aktuelle Version der Desktop-App lautet:\s*([.0-9]+).*' -r '$1')"
+
+if [[ $current != $latest ]]; then
+  linux_hash="$(nix store prefetch-file --json https://download.breitbandmessung.de/bbm/Breitbandmessung-${latest}-linux.deb | jq -r .hash)"
+  darwin_hash="$(nix store prefetch-file --json https://download.breitbandmessung.de/bbm/Breitbandmessung-${latest}-mac.dmg | jq -r .hash)"
+
+  cat <<EOF >"$PACKAGE_DIR/sources.nix"
+{
+  version = "${latest}";
+  x86_64-linux = {
+    url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-${latest}-linux.deb";
+    sha256 = "${linux_hash}";
+  };
+  x86_64-darwin = {
+    url = "https://download.breitbandmessung.de/bbm/Breitbandmessung-${latest}-mac.dmg";
+    sha256 = "${darwin_hash}";
+  };
+}
+EOF
+fi
diff --git a/nixpkgs/pkgs/applications/networking/brig/default.nix b/nixpkgs/pkgs/applications/networking/brig/default.nix
index 8c659a99d0ff..e7204a68d14c 100644
--- a/nixpkgs/pkgs/applications/networking/brig/default.nix
+++ b/nixpkgs/pkgs/applications/networking/brig/default.nix
@@ -51,7 +51,7 @@ buildGoModule rec {
     '';
     homepage = "https://brig.readthedocs.io";
     changelog = "https://github.com/sahib/brig/releases/tag/${src.rev}";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ offline ];
     mainProgram = "brig";
   };
diff --git a/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix b/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
index a89d2bb36e87..f36cf28b2d05 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
@@ -20,6 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Gemini Project client written in Rust with NCurses";
+    mainProgram = "asuka";
     homepage = "https://git.sr.ht/~julienxx/asuka";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix b/nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix
index afd2e9b9c1a7..d17dfb8e28cb 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix
@@ -19,6 +19,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://tildegit.org/solderpunk/AV-98";
     description = "Experimental console client for the Gemini protocol";
+    mainProgram = "av98";
     license = licenses.bsd2;
     maintainers = with maintainers; [ ehmry ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/browsers/badwolf/default.nix b/nixpkgs/pkgs/applications/networking/browsers/badwolf/default.nix
index 41308634186d..2200f878172b 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/badwolf/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/badwolf/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Minimalist and privacy-oriented WebKitGTK+ browser";
+    mainProgram = "badwolf";
     homepage = "https://hacktivis.me/projects/badwolf";
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix b/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix
index 96a968a50fe9..f96d6014b5bc 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/bombadillo/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Non-web client for the terminal, supporting Gopher, Gemini and more";
+    mainProgram = "bombadillo";
     homepage = "https://bombadillo.colorfield.space/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ehmry ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
index b9fd4c14ad50..2c2c0813a88f 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
@@ -94,11 +94,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.63.165";
+  version = "1.64.109";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    hash = "sha256-UyzOV6sUv7WdwN31TIg35HGchrUSXnvzk3Aba/d8dJc=";
+    hash = "sha256-36igba0U3p8i7t91RxeG6PqlKYyHDDlj295ICcYmCNc=";
   };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix b/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix
index ee04f9ed04dc..2eeef882d630 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A fully-modern text-based browser, rendering to TTY and browsers";
+    mainProgram = "browsh";
     homepage = "https://www.brow.sh/";
     maintainers = with maintainers; [ kalbasit siraben ];
     license = lib.licenses.lgpl21;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix b/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
index 6a898fb0c95d..6d35a7091e8f 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
@@ -44,6 +44,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols";
+    mainProgram = "castor";
     homepage = "https://sr.ht/~julienxx/Castor";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py b/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py
index 45f4282582f5..437b82d3a777 100755
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/get-commit-message.py
@@ -13,7 +13,8 @@ from collections import OrderedDict
 import feedparser
 import requests
 
-feed = feedparser.parse('https://chromereleases.googleblog.com/feeds/posts/default')
+# Official rss/atom feed taken from <https://chromereleases.googleblog.com/>'s html source (<link type="application/atom+xml">)
+feed = feedparser.parse('https://www.blogger.com/feeds/8982037438137564684/posts/default')
 html_tags = re.compile(r'<[^>]+>')
 target_version = sys.argv[1] if len(sys.argv) == 2 else None
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index 6fdcb81a502d..6e94e687b3a4 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -1,39 +1,39 @@
 {
   stable = {
     chromedriver = {
-      hash_darwin = "sha256-iv370BYH8HobUxeYbsV4/A6JyZG2feEuVbJCLVZc3Og=";
+      hash_darwin = "sha256-yRLbe3xl0L/PfRcVB4LA6JeDvLpgUhtKZiAfyB2v/ZE=";
       hash_darwin_aarch64 =
-        "sha256-Gc0OXG7dx5Mvy0aAsnqVIJtPFK8OYmFr8Ofy+UXacM4=";
-      hash_linux = "sha256-ZcN/v7co08aRWM88s93nBU/FLEfE7JGf/hEH0tk3qy8=";
-      version = "122.0.6261.94";
+        "sha256-TMreCFF9Lo+9gy7kzZWd9Mjep0CYa3Cxn4kr9BNTdkE=";
+      hash_linux = "sha256-rM2usA0zDZ1aXvkbvm+l0xalViEJIxu8ZYZvoTkNiis=";
+      version = "123.0.6312.58";
     };
     deps = {
       gn = {
-        hash = "sha256-UhdDsq9JyP0efGpAaJ/nLp723BbjM6pkFPcAnQbgMKY=";
-        rev = "f99e015ac35f689cfdbf46e4eb174e5d2da78d8e";
+        hash = "sha256-JvilCnnb4laqwq69fay+IdAujYC1EHD7uWpkF/C8tBw=";
+        rev = "d4f94f9a6c25497b2ce0356bb99a8d202c8c1d32";
         url = "https://gn.googlesource.com/gn";
-        version = "2024-01-22";
+        version = "2024-02-19";
       };
     };
-    hash = "sha256-43h11bx/k78W7fEPZz4LwxNVExwGSSt74mlbiUYf5ig=";
-    hash_deb_amd64 = "sha256-juwTFdJB1hgAA14aabNIrql5aaP1JWQy7nOsoTF2Vto=";
-    version = "122.0.6261.111";
+    hash = "sha256-GrCYCUjxV16tinqrIqW4DQD51dKIgKNu2fLLz9Yqq7k=";
+    hash_deb_amd64 = "sha256-z+UC7wUsWAX7kPIgk8S9ujW2n6HlUp0m3zHTvsAiTps=";
+    version = "123.0.6312.58";
   };
   ungoogled-chromium = {
     deps = {
       gn = {
-        hash = "sha256-UhdDsq9JyP0efGpAaJ/nLp723BbjM6pkFPcAnQbgMKY=";
-        rev = "f99e015ac35f689cfdbf46e4eb174e5d2da78d8e";
+        hash = "sha256-JvilCnnb4laqwq69fay+IdAujYC1EHD7uWpkF/C8tBw=";
+        rev = "d4f94f9a6c25497b2ce0356bb99a8d202c8c1d32";
         url = "https://gn.googlesource.com/gn";
-        version = "2024-01-22";
+        version = "2024-02-19";
       };
       ungoogled-patches = {
-        hash = "sha256-7c4VQLotLHmSFKfzzXrlwXKB3XPFpyRTnuATrS9RfEw=";
-        rev = "122.0.6261.111-1";
+        hash = "sha256-vaL5lClzUzksjeJ/qneQ0uJ7IO5pJKBXa/cEgRx8s70=";
+        rev = "123.0.6312.58-1";
       };
     };
-    hash = "sha256-43h11bx/k78W7fEPZz4LwxNVExwGSSt74mlbiUYf5ig=";
-    hash_deb_amd64 = "sha256-juwTFdJB1hgAA14aabNIrql5aaP1JWQy7nOsoTF2Vto=";
-    version = "122.0.6261.111";
+    hash = "sha256-GrCYCUjxV16tinqrIqW4DQD51dKIgKNu2fLLz9Yqq7k=";
+    hash_deb_amd64 = "sha256-z+UC7wUsWAX7kPIgk8S9ujW2n6HlUp0m3zHTvsAiTps=";
+    version = "123.0.6312.58";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
index 35f33c997294..8a129f2fdab8 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Full-featured text-mode web browser";
+    mainProgram = "elinks";
     homepage = "https://github.com/rkd77/elinks";
     license = licenses.gpl2;
     platforms = with platforms; linux ++ darwin;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix b/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix
index 0508b4a19ef3..4b9270b7d518 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix
@@ -71,6 +71,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A new GNOME web browser";
+    mainProgram = "eolie";
     homepage = "https://wiki.gnome.org/Apps/Eolie";
     license  = licenses.gpl3Plus;
     maintainers = with maintainers; [ samdroid-apps ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
index 3a8a72d98682..0e63502c11e6 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
@@ -1,1025 +1,1025 @@
 {
-  version = "124.0b8";
+  version = "125.0b3";
   sources = [
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ach/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ach/firefox-125.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "498160fe4419c54a020abef6cef36d8dc920740da38c1c7f977220ddcaa13c71";
+      sha256 = "26f270d202e24be21fd8425f5ad07dfc528e14deefd740c8f66255cfc9b9fc29";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/af/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/af/firefox-125.0b3.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "7147f1d3c1eac2e0374477ce81ad91ea49de13b5cdefff97730d9077271f692d";
+      sha256 = "0ba7f89ff5c7fb105bd302d4b03ba07c8fff278ded41ba51f47b287b5de2f6ae";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/an/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/an/firefox-125.0b3.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "61a472e290a57df534892b07aeca02553e756bd44546d809be341cdf95b88b3f";
+      sha256 = "362c303fe41d4a1e446e436880d9126208c42f2e9bf5ddd643aeed4f66badca7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ar/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ar/firefox-125.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "bed77ce354fb1b2e04f0a7731053a89451bd9ee8bbf72b0b5463fd961022b93a";
+      sha256 = "7f317844e5d7508377329f323dbf0db42ff3e82564384af5ec3f1e43cdaac154";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ast/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ast/firefox-125.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "884868af0039befecb7bd6321616d230e3da5d2c35146b85d4cda87e0b537998";
+      sha256 = "ec51c512fbe1cf93b34adf7afb7f57530a33c35895f2992f399bfd8400f40465";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/az/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/az/firefox-125.0b3.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "aa14276f90ec2c5d8197c9a1b36f114377afbb29ceb07cd0e14176f163451231";
+      sha256 = "dc8e53b56b31d838aa6680b7252d950e905587a68038ecc4f824e8f181e9f905";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/be/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/be/firefox-125.0b3.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "b8a14208004e37548ba3a59ba00e51a3284fc29650809522c7c2893a2a0439e3";
+      sha256 = "e4f5855a8f20955af3dd9b03a59db75af5f464ab21b744833dd27f23e9ca23af";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/bg/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/bg/firefox-125.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "71022753ddd7673f9e4f4bf60eae881c88f39950312b63d1d502c3b194c1523c";
+      sha256 = "e463e1996d79b286912d85a4ee9da55eb7eaa706e93b20c7210c41f949386b10";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/bn/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/bn/firefox-125.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "ac2a5c73afcc99b6e158c0f9fb751c672193549591c1d57e572ce3c19ee3cd30";
+      sha256 = "bb91145794d6a1e66011c2aa3fe657a173aa6894a6c5814050159f9dcf933e24";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/br/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/br/firefox-125.0b3.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "ccd1d62628b6b8b8a9a5f55d9f8f16dded489177462e699568e6ee0675dd84b9";
+      sha256 = "a3be23d14accd55c70c73f60e80fcddc7d90226afa8e781165ebfd15282ae9a3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/bs/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/bs/firefox-125.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "9067c57713ec76d8fb08c8f15b3a6739f67bbaa8ddd1f8a4d61299d696bbe982";
+      sha256 = "5eaf42bcf14e7fbb74b64a7f89086bf37f664201197b455d712ee64ec986eb3c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ca-valencia/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ca-valencia/firefox-125.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "39b0a40e608a2222643f5488b025ff6bd162fd9a67850e81bad9247314769a21";
+      sha256 = "80b972946fd09f8c76bb92a4e1d97df1db0406193b35100fcfd74bd39b4dab76";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ca/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ca/firefox-125.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "0dd73343ca3fe7226ac8fc8c63a1d0575bddba7b3f2ea72b6c17cc8c668c1cba";
+      sha256 = "99abfc3b45c1f55648d2bd39dc6c43c972969594d82eaf56d60c106fcc722612";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/cak/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/cak/firefox-125.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "d7a5dc04bc88c1a9766c83be9661a89682535506b4836c8e63727e4c54c17e68";
+      sha256 = "eb30ac2f271d714321e873145d818bc53e40e65e6deba5427f0fe4e073eea990";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/cs/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/cs/firefox-125.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "5eec7445431e54b15c42048a65681df95f50dadf42b4a8b1e4b048c9a28394bf";
+      sha256 = "12717b271032276c110409d8118f3e40259253bf6c4b85d14e9e6a0a0e398e8d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/cy/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/cy/firefox-125.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "ec89add3c34304e68794fee2b4e6ec47941c23b876f8881d70390b930067ff82";
+      sha256 = "e7004ff1cdbc7c73ebecb0ee2f3ce269797ae9cd1e4968c86b53b0ccd5272302";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/da/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/da/firefox-125.0b3.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "30c3d6c4549da860e21a0e9f2419a5321e1c5081afae520119e276249454cb72";
+      sha256 = "a52c8b7c1e3e7def78022b565714ec1d506cd41709b490d2c15a04e59fb38ddc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/de/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/de/firefox-125.0b3.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "f4fff260dfb6575a9f4494b31fd3a4eb345b426d3bba42974d2af3b5bf6490e7";
+      sha256 = "54908c05f5286e6d6f00230dd88c1d6d8afec8607de3fcaace3c5d8020971f17";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/dsb/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/dsb/firefox-125.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "663c2964382378cf48ae28dcc0dcb6a73a5dcf44f9f154587587c23f1b524bc7";
+      sha256 = "1aea82d1b560f9dfc30f4d338aba07d82188a75c3721fd21a74b8b1c521fc2df";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/el/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/el/firefox-125.0b3.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "71077e486e15b87d2dd01e8fb2e29fd8ab3474d9c573f3822e95d3c23bead365";
+      sha256 = "f816577da47d804341e460b41b9f908d9dbb3351e319870a48af03e5a2c739ab";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/en-CA/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/en-CA/firefox-125.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "3fb87d5cbc1035dcc5559762fe201ea01b8e8ca3428a4587f0cd96ea055f4be2";
+      sha256 = "54b7d36f935d72018f5ed73ed827ec7b03fd8eb082584a44c9b4fd85d76c0e5e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/en-GB/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/en-GB/firefox-125.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "71df3c7af4c7cce95ab7828bcd2d4d276db28dffb07a9441f5c9e566218c6d9f";
+      sha256 = "d878ef2613a3a645837fde51259308876107b49fe9db3ff90f8fe121cf84efb5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/en-US/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/en-US/firefox-125.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "11569530552cbbf07b204540c5827287ff5584044fb4492d236595cfe1d0cd62";
+      sha256 = "6cdebd362dbfbf207bad3d82e529f570d7785e5889420f1645c47773107c299f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/eo/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/eo/firefox-125.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "c17689fe1daa621071e3e4e748a04f1d272cd208b1a93483a3676eb33928a308";
+      sha256 = "cb74b92e7c85b25139828027c39c5d294c15047aa24eb30a14491490522054ff";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/es-AR/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/es-AR/firefox-125.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "f4a728f32da094ed1ef73e53f31031d2c73bf65ca712aa95686aa44c8be3a93e";
+      sha256 = "6053d304f91b6c164900192f9b08321eb02c31e35e2d0819c26df56b7ca596f6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/es-CL/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/es-CL/firefox-125.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "0c8924fbd8376807a578a9a721d37b4cbe308e1c696f24157e1942fa8478693e";
+      sha256 = "ad054269554a9df87a2dff9a4b2078bdd3229fff20d260bf579803de7f95a378";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/es-ES/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/es-ES/firefox-125.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "3dd74e6b27b9a12aa2832c99911a60435590d0b17652f30eafc98cabd82be6bf";
+      sha256 = "ad860d90f35997e15fb654f0bbeed2c072ff4160a08ac189d6b5f56e72703772";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/es-MX/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/es-MX/firefox-125.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "34937a832767f724c2c6d6dbadb3d1d772ae5125316b8f222b77f7fe905b4e8e";
+      sha256 = "a3908f63abadef718e416ae16db3566669429994b64f1aa65a2bf6f947b65040";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/et/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/et/firefox-125.0b3.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "8c9433785f857c353c4d0b724908054b0406a089c3701614194695aa9de19b7f";
+      sha256 = "de20bc66b50d44d7d00fea04418936bc03b5f8fdf1123fa30ddf6ffa9cb16219";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/eu/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/eu/firefox-125.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "0ed38ba2f81759eb894c773b92eec06960746cc40ba22c3dc4fa39f3b05fdfc9";
+      sha256 = "8f99bae8d1450339d6600eb06cd06cc870ac73fce26a500ef74452b2007b60cf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/fa/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/fa/firefox-125.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "1f2ee8a943860b90b04fc82b3dc6191721b5e9fa7153c62e5f5b2ce9bc3dbebb";
+      sha256 = "a4172a0656f14e4384240749083d0f18e5a8371224a7410818e8f0110e3c7e5d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ff/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ff/firefox-125.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "9a140bd2a158ee6e8d45eacbed9543995c294eb41531eb1fbb777b7de9a763bb";
+      sha256 = "9c960d59d1173b2123dc64e0353a9bcf14c7bcfd660a92ab2b4e82fad93aeb0a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/fi/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/fi/firefox-125.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "fe71f0fa0dd029e7d6c9c2577515788657dbf6ed71706c023b3149224138137e";
+      sha256 = "77aefd63ee6ca84064aeb6090b38e5506971de7aac351038ddb2e42e6cf4761c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/fr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/fr/firefox-125.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "14dcb1413960dacc86099ac3b6f9659e64b02a8b1d12b4560186ca676a775864";
+      sha256 = "fbe9f91bacaa56f2b594d5aed5d3f040b10f68149b88ad81d1b1654e86e25762";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/fur/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/fur/firefox-125.0b3.tar.bz2";
       locale = "fur";
       arch = "linux-x86_64";
-      sha256 = "c9e91c7d6ebcfbcaa00a5999a6d98b6acb5b80fba3520783fd852bfd3264fcd0";
+      sha256 = "0eb9ac87df15c33617bb5cf158a94ed24f92828ef3fdb2b91684fb4d45f6d1a8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/fy-NL/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/fy-NL/firefox-125.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "df7e4cd7ade845185aef56b2ba8e0922f1875c114128dc1c37c4772be0485f3b";
+      sha256 = "931b5831b819ab83e4cae5022188fff59424a283dd4afa244c692f1babd230c8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ga-IE/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ga-IE/firefox-125.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "565b7b7786bf35383c6997570fe0b160996d10345e95c2b17647c81eb71dc32f";
+      sha256 = "c66fd0a7453a9d8ca6167b9184eaee4a8d01ab9f9b29eceafc2188850b473ef8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/gd/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/gd/firefox-125.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "069c60b9665cc35db47d3ce49a69b490071187901a35db65d824eb0a63e2fe47";
+      sha256 = "7d8d86a907308146549e0492ea657b849f0e12b41ca2c071901908f4456853d5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/gl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/gl/firefox-125.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "76dbf06e5c48450d733809bd67cd941472436048b3187d1c02f0b1dcc7220824";
+      sha256 = "ddc30ea9bafd21e9069a76a9e7f7e9f4b29d034fc9faaf7c49291146f8519512";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/gn/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/gn/firefox-125.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "bd493ae8649070bbcdd7c8ff426f8aa1e49b989857776f5c1fba3f69f78caabf";
+      sha256 = "1b19fea8e2c4da59b091379b5835eab87a4b004519411a259395ece0176e6b57";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/gu-IN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/gu-IN/firefox-125.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "848f4f329203608873633f5df338e270f0b1548db32365758df21329b3e54e03";
+      sha256 = "40d9fe9017cbd23e8294dd4076289867b2b7ded49cf3062972aab9be80af0d6a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/he/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/he/firefox-125.0b3.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "b67ffceb6f9f5827e43749a9bb515e940d3eb350d18f744615c767fd88cdef35";
+      sha256 = "90a993442c69ebd1a89513ecce8de64b721f30b5305bd50363d7b71eacbd9c93";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/hi-IN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/hi-IN/firefox-125.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "ca1aac0d712b9d7ff94f0ed36ec45069ab77039127fd80267a798c8a94ebe336";
+      sha256 = "2bcb005240b3142a2c1186b1d6e9e5dedcf0b0d2fbb7b7807825353ea00adda9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/hr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/hr/firefox-125.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "ae32e9b27f474d0d6c4a985bd4c9f185dfc73b078b59ae785d086012dfc371a3";
+      sha256 = "a4a03d6ae54ea31d9c1a41fffed6277e8fb7c6e68924a43b25c46176965f5ad8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/hsb/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/hsb/firefox-125.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "836ab3333520cad38adac7d05d1d6e02c9cc8a2153854e259475a826ea895c5b";
+      sha256 = "3a0c290231b0f3310940ef23ba7a524dbde63eeae41b8c92815ac80b72b812ba";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/hu/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/hu/firefox-125.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "88fe5dd32590af165397886c47b41c7055a668dfb1428e55293eb0d13d9dc3e2";
+      sha256 = "49fd47ff780e7b475a17130dba0e59b145858b0d24d7b3083f495ab610fcf0fb";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/hy-AM/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/hy-AM/firefox-125.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "c11cbc9463c07edec709253dfe92f7178cfd65c7bff77744fe9a7314abe1ffd8";
+      sha256 = "97726a8372437d67f6845322af8267df717f24a047fbbef867f689e9e2d09ba4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ia/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ia/firefox-125.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "cf4bbf493f30f6438dd9905a51a4610565890d28ffb7fa210cf1ba705b62b937";
+      sha256 = "1a8db02d322185fe1a80d4b102ea3f418267b88e2895f756d6fdf48bae068b01";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/id/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/id/firefox-125.0b3.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "431b23b18f4368dc7e67eebbb5385ae6083e422106845ea32ab7a505884ca51b";
+      sha256 = "81b830221eba3446e6dbc70052945a9f78e5596a9554f7cec02bdff2bdc62b82";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/is/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/is/firefox-125.0b3.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "fa7e80a8d2da221b5546cf55fcdcde8f1d90c8dc60d24ded97a9c42042c006a1";
+      sha256 = "2aaaab7cfcd30f207a68bf91b6b6c674b18fc2236b08b1b03b287004c243507b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/it/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/it/firefox-125.0b3.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "238183326c82c260a4d052e9ca3191ada9c40eec61ee4728c76f771bab8058c8";
+      sha256 = "c3dd7afb3b8ee529664dbff7a7388ffbac4580c432b55454c1f291f4e292bf4f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ja/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ja/firefox-125.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "ee9f7c25f347244dc9070660335fef1eec0ad5e3271e89f6abd98347c58d00ef";
+      sha256 = "6b2552b5a9ed988eb28a057425bc2f26c94ed261029f465adc4d3e1086a2578c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ka/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ka/firefox-125.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "a4dd57e5e58915fedc95afe8b108c590ee5edfdb12dc7d13b5427b376c85887c";
+      sha256 = "78b63ca841afef7660f203c3f2874f99295262170f9b7a1a9e4787ebec368e54";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/kab/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/kab/firefox-125.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "35b7d9bdb1b3b7be1f81d835e4c8a4dcfc6fe6972e6306236b73f43a18998138";
+      sha256 = "01d987b3c729efa383154a808e61ecadf81988770a5377196ccc4f1e590ff039";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/kk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/kk/firefox-125.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "c437382b634f275765947c196009ca95dd915048e3971636b265ee32c2c0694a";
+      sha256 = "597730513dbe657f98ac312345ddb6050b4ec65d67c3ccdc592b99c67e314807";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/km/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/km/firefox-125.0b3.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "a1b68b3d19faf9ced453267a4def22f93ecc221152d2fd678ac06c365ccaeddd";
+      sha256 = "1bf358d22742e800bc861bb26eb6daa3ed84e6aed113f2ddafac8c0d6561f808";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/kn/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/kn/firefox-125.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "f58931ed182ef51499dbbbbf0c2dcc0cf16e81fa52e5262f68d96ccf3dfd1fd7";
+      sha256 = "fde435607d1978f1a12ef6aeff3bf5cb03babe339a2f386f5a5a7251c073fe0d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ko/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ko/firefox-125.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "a12b37a933d08a9937e4a11a616c00da1ef1b2598636791fdb11a86838fed531";
+      sha256 = "00fc74a01753ed0a3d60095140478d474b8e331825da0680ddea721c9c326903";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/lij/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/lij/firefox-125.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "4ffedfb9586bf7829bc28075404845ac5313a6fd12454ba1868ff7b09fee3e30";
+      sha256 = "719a9a08920e0b297a0ef1e17616f9da76e612e4cdba1bbc092abc0ad2ac7ee6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/lt/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/lt/firefox-125.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "be6ee9c388a756c491ed837143158ed985053fb2641aa3308fa62cc64119de16";
+      sha256 = "b2c74cff5af083ec4399d0da6605c293a962d7d3cedf1b8bbd00f328354da26c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/lv/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/lv/firefox-125.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "ba4c68dd71c385f208b5204f96e60e5696a513966e24f5971b0bf4b0f601eeab";
+      sha256 = "4bf749d4e10d2096a2f59617824f7f98edc5ee8ae375268fb8e0be17c2e90533";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/mk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/mk/firefox-125.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "01ef871b2faaa1386d5fe87fa5f3e02450d34225006f4cd0d707c18153e9f227";
+      sha256 = "48e7ad63dce4c9960b9ad8a7a492800e5fb597ea7590b9bbcbbd043210e8541a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/mr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/mr/firefox-125.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "835df049127e84688e8f5f4d335282c3555ec27c451c18e5d021c58443767954";
+      sha256 = "c449a30e01687d1ef6cb709f0bb42cb8c24c13261472264ffe8f0d06507554b5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ms/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ms/firefox-125.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "1281b674ee9f91d948b0f97d5b4a2663b06235083477530c196fbb550871e554";
+      sha256 = "8ddd9dddc54186122b59aa3c15ceb1499a2bbe7ab0a0e2de8bfede15217dc5fc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/my/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/my/firefox-125.0b3.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "fcd415563af57e2520583770ad3cb65b3d6cc9d5c58820e23b9972a609697896";
+      sha256 = "812a634368bf24323bc4ea8b115d72bee1da9b5fa6a4cea4e28ec3f48eb0ebf9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/nb-NO/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/nb-NO/firefox-125.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "22f97efb833b969b73d970964464696d48b79e38dda3df73780f3bc4864e190b";
+      sha256 = "37c86907aeafec8862ab51c10371f9e6cfe04dfa599913600ea8809eb626583a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ne-NP/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ne-NP/firefox-125.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "ce06a4576f0e005cd782270120297e09ac4cdb76cde7c30afa154894fb3ad9de";
+      sha256 = "ad2f32448e14e6c67dd0143ab880c45633c5474d02bc2272efe175841a32259e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/nl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/nl/firefox-125.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "f58d39d3055151b14721dd71a6275022790b192fd314c47fe6cbecf7bf6aa0e5";
+      sha256 = "539685864a01dc8aca5be2757c1bc3cc992c4de1d34a75a1b6d0830d08e678b4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/nn-NO/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/nn-NO/firefox-125.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "efc46d4866f505d8d4cd616099d25f2e2d4816584d26de434e6c4ade1901aa15";
+      sha256 = "5cec5f5088aeee789dbf3a73e2009ec87b69da6b7891fcec78616c0e3b0aee9b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/oc/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/oc/firefox-125.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "bd7585d14218a2736108097f4f19e4aa2835e6d920d543e0e7a0f8752d5723ec";
+      sha256 = "a17122cac761d7283db72c8dbcf801cebb2d99f8d6850b16e799985cece73f85";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/pa-IN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/pa-IN/firefox-125.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "57dabc970195c887ec53a354ee10c1cc603ddd2490f67ab82dd7f8bb0a436e6d";
+      sha256 = "a4ef26b3d18cbda908f9bb69e5bc737d67aae7ebe21b116965917a54cc50b384";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/pl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/pl/firefox-125.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "01d21b0141e06d3f1cdf85cf0b24c42ac477bab74aae89d46f328adf59178e37";
+      sha256 = "f0d3e7fe1ed598f6abb695066f3df506b1ee0e033c16ed30ad0153759a4551c3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/pt-BR/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/pt-BR/firefox-125.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "bd61c71a527a525abb866502b8ee736ba038b5d5f73f91e0a11943c3710fc20f";
+      sha256 = "53dfce0b5a4bee2136c8e1524f71cde7f311da512f2d1e2d2814859143cdaf5e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/pt-PT/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/pt-PT/firefox-125.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "53e40341c49f6d27180a938404c2a56209c005d903b1d1c3bc1c7d484e4d0eef";
+      sha256 = "8ec9b6352c4f5b0d40085edc9e726609d165208ffcec8e6df3981f134aaad200";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/rm/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/rm/firefox-125.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "5d8150abe8259961e6594fdd78dfee6ce5cc8a41abf9a19d2c81aa6eb96d2356";
+      sha256 = "4ce2082780044082f43bb2f09e3258275eca3b180569216114ffcc49760fd055";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ro/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ro/firefox-125.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "0eb76559f252afe5d127b15ce12c2d25074cb672f6ec5a08f5ae0ad36d8f1b94";
+      sha256 = "38f4ecea58a9448daa761efd77a1b1102e6ef2d3a0af8e203b331f6585bf903d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ru/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ru/firefox-125.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "2bf109d625b3ad396d128636ff39eda37ec19313d64b396fd9345b2ba3aa59da";
+      sha256 = "9282d75069b6477c1aab9312f55ec95f361aefac4f8d2155390b3f1e8bbce757";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/sat/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/sat/firefox-125.0b3.tar.bz2";
       locale = "sat";
       arch = "linux-x86_64";
-      sha256 = "4009662d05b7b68badfcda5bda423f19b4ba9ecbddbf0f2b6bf4f1eaa80db417";
+      sha256 = "4e6700fcad752a067ac2418998ae08c6d0b0f984c56a47d93f6320dcf98ae849";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/sc/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/sc/firefox-125.0b3.tar.bz2";
       locale = "sc";
       arch = "linux-x86_64";
-      sha256 = "e87055f385cbcb3709733d6262fa206518d878ad529917468816b39e50786d7d";
+      sha256 = "3600e7b8cd2e49bef9081cef9ea038feb134346623fe4b95c1ea1e819939b9ed";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/sco/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/sco/firefox-125.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "1c50bfdb850e31dda249fe3690190a2cc5c0bf364f8ae7d6785828670afc909f";
+      sha256 = "66e14f412c457d3ef2f4ba6d75775f1cfef77979e39dbfe3b6c2c22fc08f94a7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/si/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/si/firefox-125.0b3.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "0417a734f8ae09012dc3938dd75d57ec8137809a061bfd45030ff91d569b399e";
+      sha256 = "d4795fa79f222304d713bde3e66e1ae7bd7e0dcf666910cda97ca418016f6cf0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/sk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/sk/firefox-125.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "99690e159e2c46e1dc3461518d2f7d7b5cb5eec01380dcd31c10396cb5150108";
+      sha256 = "06973d1f46beef9363a1c473e508548a4f559ed9ec5e326dc51f7055cc86706b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/sl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/sl/firefox-125.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "e2cdae50872eb59517ce8f7a5e97acb7638c39d316f056bceb85adbaef3ac35a";
+      sha256 = "be87516ee3378e6b7dd2357046feee1c92ba6e6166c31b27f35955669c9e24b5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/son/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/son/firefox-125.0b3.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "caa0e11deb1fc520ec34118a0b4b1e606636e79e13e2517ff011911b4953f22a";
+      sha256 = "a40e5b2453d329deacc46f9e6cf8c22144f903f0c3d3506371a3d0230c171bfa";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/sq/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/sq/firefox-125.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "f8163e8fd64b5e953b91aa6d3a371ea911927f0b7b5c33b75a492973ffaa4280";
+      sha256 = "11206a674ac4c736ccec0fb3f2b1ebcdfd9562259152b99cea161347f00fd621";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/sr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/sr/firefox-125.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "9b4cdc44c7e6b48af7be0bc81117f3ca03b3780b187c0779591fd72b1968bf0e";
+      sha256 = "9811e0bbfa3d2a0c711302f1c849154bc58b6822b56c239db0a426c01d85d79c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/sv-SE/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/sv-SE/firefox-125.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "ec839806e1c3947c2b3631b1c2aeb71487fd57ea8c676685497f97f81af152c9";
+      sha256 = "b8c27bebdfa8352339cd7ae41ee366332e59e3b02a38b9ed5190692f4bae2f2f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/szl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/szl/firefox-125.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "214be5eb788674c0ea75c4a374d53c64bac186e5107e6aae48dcd104f812537d";
+      sha256 = "322e9936382fd94ebd0876a297fb80616b915ed401d67292bc2c2f71c67216e6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ta/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ta/firefox-125.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "fdf7e1134f47247cb4b36c42201a6a3b51b96ba3e47ae1c3a2bffce5234a7a90";
+      sha256 = "9ad2a4f9316a7b4283e6f4a5717d91ecedb2214bbddfb8c4148b19f8a86f2300";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/te/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/te/firefox-125.0b3.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "2ef07ad1c1a007781f6da44b302ae20558c3c06142d89aae2270e88115ce5e2f";
+      sha256 = "c806f382e5b5708b14504770b71da8f74e5c3c96e2f8d82858dbf242f87e2502";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/tg/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/tg/firefox-125.0b3.tar.bz2";
       locale = "tg";
       arch = "linux-x86_64";
-      sha256 = "f1c60b13b9b50603102649d46f38eacb25c367c606a5b79a45a4775c753cac31";
+      sha256 = "6650fe7774698bfa047632afa68076e6b66ee1796d27622fa29f525e651a33b8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/th/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/th/firefox-125.0b3.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "37ec497b4afe4f99858ccd548738e228777ff79824de783798a99ae11e19fe8c";
+      sha256 = "efe81c7aa71594dc964f8e70975cfcd89e79be37dfbbe31d0a46226d8e6df37c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/tl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/tl/firefox-125.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "bbdd4dc391fe275faffc94a08c5c398be660641bac6adf6ff3aa1e207ee99cb3";
+      sha256 = "abea281c570614e99be42f9e42936d29f22c5787cb84fd7211bbb50b455a0ebf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/tr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/tr/firefox-125.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "fcbfbad85ce3dc94818858eeca8a7f582418ae49797f92c2246cea1da01376f0";
+      sha256 = "6eab90da0924012a7471c0cd96629ad880e2307147b8de03e931efee9c9db0ce";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/trs/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/trs/firefox-125.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "4ddb5aecc4b35d8006daa5254f9ad5250c1e8559fc4d25fbd8ea689aa0b29f82";
+      sha256 = "0d9c57c0475800187d755cc4800b1497de815cfb29b1ac8246fee5097a6e5d25";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/uk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/uk/firefox-125.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "700adcbb6c5f72353c0219b7cdd78163a169f3af738656aa15ecf1cfbca1d4b1";
+      sha256 = "a21f3aaf726ef9401702c49b063c257b8077b902f4dcb0ee3cb7a02e5c5d2433";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/ur/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/ur/firefox-125.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "fb34526f530ff6a98b027a2d546a3946746355b48f5a6fc5474450a8844e89f4";
+      sha256 = "b39024edcd9841db1da3be0b0d0856a4c530e8ecdcba642fb669231f09999381";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/uz/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/uz/firefox-125.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "6ed20bf3fa767f67ff4eeb21dfaee038e0fc8bb55508a6052fcfca56ae52a068";
+      sha256 = "b5f6f1f8a81308bd89c732001a285ff1d39dac1e029ebf61f49df3ca664d9fe2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/vi/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/vi/firefox-125.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "de6804cd8bc5ad41fd3f2cf7568d579917452f051be9ce9532d58b692e4eb0ac";
+      sha256 = "76642b47dfe6faeb8df1f3e321a7d3b27f3f4b1aab7b541ae74eb21ec3af5c06";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/xh/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/xh/firefox-125.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "ef53fe68d37517d4e6c02f440222668b90e9ebbe5f72629073cc9575b725573d";
+      sha256 = "3daa8a2b6ee24131abbf5302ef6e8ef30ca3fd2e3a5bbabc0051fb77368d6a94";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/zh-CN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/zh-CN/firefox-125.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "219b8e7e0c3f4a00a7c1eca4ca99219a2be42374d7a5edf217bd6d949f575dc9";
+      sha256 = "714630c8188d61c2db5d7b8c82f8675226dca0d72cbd70ba2b6fe50c9bad2455";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-x86_64/zh-TW/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-x86_64/zh-TW/firefox-125.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "4a1eac1e258a53643810d165edf9bcc30e649c8336fa73d25f7a677b3b560464";
+      sha256 = "32d0ea7bd28ff285c47e2dffd5293eb7582b5926442c4fe9e4672683f45f8a54";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ach/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ach/firefox-125.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "bdcbd1f7da60fb1123831297ba67633084f00058384c3deca781e6b7f631ce0b";
+      sha256 = "8735a0b051180b84bf86caff71c5e8a275afcd0048108ded5b9fd49963c4ae27";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/af/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/af/firefox-125.0b3.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "5e0a213a6805744dc628cc34b21f6033b36d0043786040d8b4fbb6f253a2a125";
+      sha256 = "8e228a07c29ab2baacee1b5092fb19cb2adc8c8a583f7fadd1b68e7df013ae55";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/an/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/an/firefox-125.0b3.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "b846416562c0aba9e3251517ece40a5ea023972ecdc54f52f29444fd5fbf71c4";
+      sha256 = "1ec0068752d212dbaa54580737dfb5c0f1ae803facf2c83366e179648d1b2f63";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ar/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ar/firefox-125.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "ac12e77c4bbbadde99f467246e06a42b248d6546e66c75b5b69b6504ddcf04c2";
+      sha256 = "ea8899374e17f26104e33064531f0f4c0714850468383593003f81be7a74e310";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ast/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ast/firefox-125.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "f0728b3c6b35d76de0981d149c9164b3184ab34269f28957c4782447eb2e7ec3";
+      sha256 = "5594a8ca8480d9d1d0b9c540eadc0c235a20e36ea5295149b740d71cb746260d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/az/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/az/firefox-125.0b3.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "875851341f23b907320e5e82c06b311ecb0036e4bcd5b7e1f37570f897fd1499";
+      sha256 = "8d495e99aebb713c9d3607d5fa720e080c165dc51946a5210e358f3a6652c7e2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/be/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/be/firefox-125.0b3.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "deed159e3b60dfb5c4e968090970aa65a5bc809452d6fae4e4af66c760c2eca9";
+      sha256 = "c818aba76e49d5e079c499ec036735e76c79965aa7c8e2940df832b650e7ee24";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/bg/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/bg/firefox-125.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "8ec73869da3b30ba52204e183ae3b32dfb4d834e283fe9d01825d1f62fe4225d";
+      sha256 = "17c70822a1b3063a130fdc9ed51f34f3a5b78e8459982360078b58a6a02f2d92";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/bn/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/bn/firefox-125.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "efcc5d00828b1d5577fb05af7fe766041b7518636e135dc20d2bd889ed0ee6eb";
+      sha256 = "75f18eab95425c0adc66f7c1b133058242719d0bdc3da1f57b13160b7e39a441";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/br/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/br/firefox-125.0b3.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "852099cc439439327428a76f72309c4522f517e9d9505669d234e7df835f69d4";
+      sha256 = "3ad75b8b0faa9b2cd1a6d1e4e34cc5f9b593b6385a53ac3495d4478961a48621";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/bs/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/bs/firefox-125.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "6053af49749d82f733ec34baa91ddd122b4fb1e368bc200c9aa48170e6354d3f";
+      sha256 = "8e4b32e0ee63dcdf21db95a76585de82b391056ff4b2c14392d71d5ece533d7d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ca-valencia/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ca-valencia/firefox-125.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "2862f74877b911cdac16cefc2d0bec3e0b4157c5402fc817f5df80ab578a65b3";
+      sha256 = "ce9f41ae17c9ab966181f3518e836bd2849b0ac51ed770cc3498d00dcac4ad27";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ca/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ca/firefox-125.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "38e3131a062fad31b839ea6db798dad821588b718a28d715d5848c29304b4268";
+      sha256 = "f95dc0ed0a60786015656a86fad4c8c4536a048efc66d281364f3300687f4857";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/cak/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/cak/firefox-125.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "2a45c9d0b8447cec450dfbdd216e117a436680ca464f2098de92c857018aaf1b";
+      sha256 = "396252e386bd595c4ee36955e4ca5e3c65a8e8e0906519143ca6be370bfd7120";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/cs/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/cs/firefox-125.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "48357663089077f12a74e0b8ca7536a4fc157298924c0d214ba967cee932476c";
+      sha256 = "dcff8415e9a164efe510cdde199b8a0e9eb19d9909d50186f0ff01dcbff6ec3c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/cy/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/cy/firefox-125.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "2922f32225039083c37f40db38589a7c81cf65e0fa642adfa3ebd68137094a56";
+      sha256 = "a037b49db3aa879a3f119ddd3c78c90183e0d4b140950c125d1e19fef31999ac";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/da/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/da/firefox-125.0b3.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "5296e6782136312ced24888eeaacc3b2456a9c7ae915c9b54f48a8d92076cfe0";
+      sha256 = "9fb9bfbbf05082f3986135f98fb550a43b7ef25423df4859f4d7077de7a5b389";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/de/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/de/firefox-125.0b3.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "f150299b6d34b8305564248f2ee45f85958f6dab810d17253c9414a1e24e074d";
+      sha256 = "7cec62c65d014a265630784eb5fa80bc1eb00d222d53fe21614a79eb9324ed17";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/dsb/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/dsb/firefox-125.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "3ef6f69508f09125f4c9e1bd752f417d55fe34f97b1ea8374d3aee2916c3dac7";
+      sha256 = "e236cf93b3aa7e63fe21424bc52f6c10bd06de5d75502762e29f2830f9ce995e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/el/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/el/firefox-125.0b3.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "f6528a1e33082ab896e627081330f7663b097c88c62051b1a6e17a58b30893f5";
+      sha256 = "3b35967f5a7d06a564bcbebce814f96efb8239e90915356dc4731f174c11cead";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/en-CA/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/en-CA/firefox-125.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "acc53089885c5c00841ec66130807a9993ed223654491ef3152f460cf830a4aa";
+      sha256 = "c83c77f2188b71e9c8a6214da13498a45c0426d1d39ec7ac8c65dd98ae362979";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/en-GB/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/en-GB/firefox-125.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "c6bee0a546b4de27f1a35bbdf052df9508c5ef09bad436359efb3f4b8803af1c";
+      sha256 = "8ea6722fd4069a60b8ab458f85d7b7a86a7a0cf279f26117b0500b8db4759232";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/en-US/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/en-US/firefox-125.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "33e5151fb2391203017895997dc039dd0959c4d992cb427caf434be9756803dc";
+      sha256 = "f595d89b4554769fb470079a195fe33eaa75f2ef55e2022739440f313b6e8119";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/eo/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/eo/firefox-125.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "c0f6a21e7c187ad2daca0f8ad18c087c2b44bc23d1bda52018ce977993bffcc9";
+      sha256 = "5201f8e23397008d3378cfbd776c5eca650df0b7aad58c342b4ea087645f1a9d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/es-AR/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/es-AR/firefox-125.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "1c482f713f63cb63e5e647a8d54abef47277d2bb66b2fc073313c203ebe6e383";
+      sha256 = "4b205740d3531834a20c53d2006a3e8f2a2b00d391f4f6e974be570ae585efa8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/es-CL/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/es-CL/firefox-125.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "f54a9bb4bd13e6c7755154746a5dd0519dacb506abf0fa255df5c654b9cb9741";
+      sha256 = "b4bd3924548bf3f11a1d666c38253e62697abbd01b7ee8e6d9a8b563373e6e29";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/es-ES/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/es-ES/firefox-125.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "0159213252e40b4bd88742da8412e0d0b7ac53c5fb1c063b4d90374211c4ae42";
+      sha256 = "96b6ab90b281380f60d88ccbea0434098f3f6d40f6ebba010938f8f8643e2a81";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/es-MX/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/es-MX/firefox-125.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "9b10953497b0a97ab545d49fd1696fd59930cec19b0ccfc44fae41af8fc89509";
+      sha256 = "a45abd5200bfc53eaf89a33012eb53ef46369155c0214ccc110e7e55f144db8e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/et/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/et/firefox-125.0b3.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "e266b6435612746a143635d2b147d784928d6664ef9ab131043b0396c0089981";
+      sha256 = "c1476278f0fd3ff52a46c2312ea732e4933b53317ab0e19f2addedb52cb3c040";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/eu/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/eu/firefox-125.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "da36a0d396c54d8dbccc33fcaa34f813e8040bb920933faf41339258f3b90a18";
+      sha256 = "1e126d9a2660580a89e35210082906632ac3f6c505bf071be7109986a5b64647";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/fa/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/fa/firefox-125.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "7f7998fff9db9b9b0dd6d5c8a2491912f354e69d86f8123a627823effd6af388";
+      sha256 = "6a68baa945c59cc5da84e4dd524ba3dac390f5ca4eecbf2efd621ef39f20c2b4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ff/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ff/firefox-125.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "f7d704982ff235048c274cd0ecbb36e519479229532a34b6a0e7cf9e50422b3b";
+      sha256 = "4d715919aac55cd9578926ebd4e3289f7780a5a400905990ae7b476fade246a7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/fi/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/fi/firefox-125.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "ba875c3c9bd322b39f3684cbe67c16de84615eb3c35e6790efcb862687ed9002";
+      sha256 = "9dc082b6e4ce454fc5ca0522d4ef3e878dbc61d5dabe9357ef6296b396213843";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/fr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/fr/firefox-125.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "c921b0ccc93f94d5df9746691bbc3086b22da8349f1a52ad5e26ba93b7abf650";
+      sha256 = "586467ddf105f5e477788eb75f6e63be3b5244add7eee1af7ab61369962971ac";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/fur/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/fur/firefox-125.0b3.tar.bz2";
       locale = "fur";
       arch = "linux-i686";
-      sha256 = "dc02e708a2d7ea14786f10fa984c255311c9c6e129f9fcfae6a7a542f8f68085";
+      sha256 = "221d693f717134dabd73572c7c6b02a1ff54e2053e4f5411ee7fd8d80956e9ea";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/fy-NL/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/fy-NL/firefox-125.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "e667de6651376ba436d3903a09bfbaafbbc02b229884bf047689eb85c33358b9";
+      sha256 = "2b5849044bcd3dac2ec2b81aad53ab18aeb443761b06eba9c3136c9125f056d8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ga-IE/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ga-IE/firefox-125.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "5a3fed972dd5eed1d9096a01ca96f461cd60422ba45056d1d360192474a92cf2";
+      sha256 = "9d81e379980a70f80acd03b29e3d67a507863b63239e8de38026281547253873";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/gd/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/gd/firefox-125.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "951149f7826a41f5baf0a8e6d33894cfbbbf5604857b53add5d1ffcfe381affc";
+      sha256 = "61059f4056a9b1c0ee2d419cbc78885dfafd5ceb20e0c8b56002b07922bc6c6f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/gl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/gl/firefox-125.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "9d6edc3d5367845bdf7d3d1a037c9e6d4938bf9ca9c8da4d7b1b0be8c30884ac";
+      sha256 = "50171b3f2ba28763e2b2dda48628dffc66bd3b70cb9cb8ce89567dd04f29a230";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/gn/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/gn/firefox-125.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "f272ef4ce5c750cdb15ee384d3b2f3d8180fefce5658e90df65c6a956a50febe";
+      sha256 = "b31ec123045a626df4ea7bdf4b9a3c7e62c2adeb9979dcbcff3fb60c08107b06";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/gu-IN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/gu-IN/firefox-125.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "08146f867a46af824bb8cf04f65577307a88e8dc9c3551473de7b26d65c7b071";
+      sha256 = "eefd737401ff61ba1fcb90ad1cd3d9aabd983cc71771bda12c3775d538d6338a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/he/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/he/firefox-125.0b3.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "ae314e7432b89fccb51302c3e0b8ba57b08fddbc9b24ce4238c18aebb45c0a38";
+      sha256 = "68b84e744721b302985158454386930f9aba35ad9b90395a7c37c5605e416f30";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/hi-IN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/hi-IN/firefox-125.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "20ed21211b8fa4569972286807c2a920e431253d5f78c66da8c22fff00dcf2ae";
+      sha256 = "25969e8b66d639f99f31ccf9554f5772bd91fb3c5e73215113716fe39386622d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/hr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/hr/firefox-125.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "883ebf254fd70cd1eb54c66c7836107e9faacdf9b1ede606b6996cc3c2353eda";
+      sha256 = "171632e54960bde84c24fa2605c33bf931d3226cce61a47c5f2965579b7bd269";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/hsb/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/hsb/firefox-125.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "470deb438d124656690aa408b92b388cfb8064111678c018f44d89067a8088ef";
+      sha256 = "392818d5df651ae6ae4594a53b08e6109832c2aa754ab787c43c764ddeb24e1e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/hu/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/hu/firefox-125.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "6c2f5a044d174d7e788e0db22fb42d6b84179f3777ec54a5f73fc14de8b5c5a4";
+      sha256 = "382c390d35a28d6fe9a74f0dc5133cb2fc165489ab608b2d81b97fdc592d9684";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/hy-AM/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/hy-AM/firefox-125.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "82a2acd29a34f8423954946b032bc48b50441ff14462612a151032798d711db2";
+      sha256 = "53575c12d1b6d4acb5c814b05a6387ba9add1002205bd175b9f9455301f7c332";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ia/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ia/firefox-125.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "70a994763ad6dbd97a0b0866695ff3db379e6f132d356ef56cd3cb407251cbc6";
+      sha256 = "1f7facfd8281c9e84e2d147064e1d41d767da4ce0a37ad971da209a855b2cecd";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/id/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/id/firefox-125.0b3.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "c38f42145ef48fb309d772abc85a92086e9e5f7f81fa9967ce20db3f2edc0691";
+      sha256 = "9732c429803320b501411f23558bc5361e46894e6c5da76397ff68866c8e9a62";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/is/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/is/firefox-125.0b3.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "4cddf60be4c177ca9228d69d42bda0ca1d8294819efbed27048283c5d1bd6938";
+      sha256 = "76f4cf18cf5a0c90ac1a87b38fbe9f2134bce5b4cf5db9c3ba3b1b65301899f1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/it/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/it/firefox-125.0b3.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "f4603394a5106a77347dc3f129e3e2887545c2ac5e0794010e8b623c5068adb4";
+      sha256 = "9cd6e4bb2f99a3e544a3a7388d896b40f0a3ac47ff321cd752558776ae566783";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ja/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ja/firefox-125.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "5bab0bf58b493c2b58b90adad6f13dee3ecda39948f2c689bd2c925cfd4c30db";
+      sha256 = "0470e3f059487daf2cdca14d4741051ffb97cf8223f43c45045b09c82db2b3c2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ka/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ka/firefox-125.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "9e0241d98327769523ac6c5db53b362eee90bffc817228f681c5fc24f5c88106";
+      sha256 = "3106a8a7eec9071d05d4e8bb25b4056ee1365a3306fb7f06ce2c3c06cb23831c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/kab/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/kab/firefox-125.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "3a665ed22585532423b439762a6be17f78a02e2977dfdd30a3a49c654a9d2895";
+      sha256 = "31e5b0e7fbda67855f9f51ab8780f97da7e04d58f1277eaf8b17453d474aef0d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/kk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/kk/firefox-125.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "f27b507195363c0c10ecd2668781dcde692f0273bbfc2af97ca96b40e5c7ec46";
+      sha256 = "f4bd7afee3b6c5c139d6378d318d157b41a4cfd243212ab80f3e6d82b1fb542f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/km/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/km/firefox-125.0b3.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "d53d77a5f252387e1d63070b4f5684c4b631f35d4fe7a46853b3349afb061eea";
+      sha256 = "bb5fa0e8e14e7081f57d0c79fa747289175de0a822d1301e4e8be7b7c6956a1f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/kn/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/kn/firefox-125.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "6b5c10a4dd665cf394f2996b0aff2745d0ad08c1960cb3ffdd485d90a9875875";
+      sha256 = "452157747f13a83231c4590ca8c6ee366c40a0660daa45b0f698051acf28fce3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ko/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ko/firefox-125.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "f6ca141e3ec7cd2c3e757c3abc6dac2b9d8603ac21ad61c67c555b878a8960dc";
+      sha256 = "3c921614a40d997a1fac5b0e55b25877ddc1f012b617522aa6336a87b78a6ee9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/lij/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/lij/firefox-125.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "a0178386782d2cc578d1412c6eb07b609db4ae08fc0d9613bfdfb6812ff49763";
+      sha256 = "39f69c08d4f4ac4c198c476f38ed57d1c67479d0e31254c1d5f26fab2b6a5314";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/lt/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/lt/firefox-125.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "a2291eb8df840e545b2bb288d5ad68f8bab9a66cd883b15ce4f9364a67e2d082";
+      sha256 = "0127e04febc82e5ff4e7df08ae118872045f3b621b43f02a82852c8e07eab608";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/lv/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/lv/firefox-125.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "8e927eca1e77dae2756eaa85f4ce8cef303904ebbef0e0cabb741a0cb60d9809";
+      sha256 = "8dd8a49b6d8e3ba3dc8228cd0eea21bcfb5c5b24867a85992614a9a34bca1766";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/mk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/mk/firefox-125.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "71089907754ff08f5abbec5a87949634d9efcaedc6b0b052468cc4437324078c";
+      sha256 = "9422b19733fc73e81433951610479dc629501b9e276d96f0cb9b6dbd88dbce5c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/mr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/mr/firefox-125.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "9acd87dd9b9859f82464641e51215cb2afee19355c54630a999682220c35ac5c";
+      sha256 = "7243352297aa9d5ed5df6b05be1e2f110207b39ddb15372145bce04152bb00d9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ms/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ms/firefox-125.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "f341f1a23a4ced9c72d26daffd029bdbf1ff0793a72db6df9a691151317f83f4";
+      sha256 = "815aaa80584c49996e45e4a96e9a18f1d63be63eb3fdea014f8a2b9b02f7bd5d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/my/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/my/firefox-125.0b3.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "ae8d29654d85e6a25f8d10a113e20abb307c00f8b34fb9f63af2bfa12f9233ed";
+      sha256 = "556c1b512ccf4b7ceb94bdc0e44ffb5a00dbb4d87ff1041e1b9c841758b6f81e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/nb-NO/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/nb-NO/firefox-125.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "d8b6c0d18f5213d61838fa949321b34eec7d1d054ff4f6dfe9edab7bc9937c30";
+      sha256 = "9db5d8cbf980c38e984a760bc36e62676534cc746a3e79aca95d6a995fc2cfd6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ne-NP/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ne-NP/firefox-125.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "739b960b77bc4bb1a7adf41afa4f1e5a5b7e787174bcb4cef1d251a2b77d48bb";
+      sha256 = "0aa6d542eaa6b8f94bf781790dd5f8a244706beb122fcc0ed26c97f14003783e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/nl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/nl/firefox-125.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "f9b832e2a137b369fe5b403a111b6def32c31c3bb716e1f6762bc560dfdfdc35";
+      sha256 = "b2884c18b2df0c6520071d5820062f52218e1c729e087fff9e9a79f71ee0f6a3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/nn-NO/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/nn-NO/firefox-125.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "d98ec566e4ce0222cbe7714938cdfe4ee08ebd59d58e281f28afa4a998947aa9";
+      sha256 = "603b4fde678bf64e5ab2f6322643face4d022c7d8ad01dc087450f0c4f913fc4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/oc/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/oc/firefox-125.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "af47d1a95048b8aa8bd2052e24ace28d24ab7367d113afa85055316b4844d78e";
+      sha256 = "9a86eeb908b55fba8db1ca1fa695d8c0da892b11e9ffb9d9a5d1d201f917ddff";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/pa-IN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/pa-IN/firefox-125.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "a388e5efe3bfcfbad0b2d1b77f6b9c366f93951afe20b8438ad8241eb0362ad3";
+      sha256 = "3d057a0a7ce25ef04499c4b22c664e558dfb4b3d102fb85cbedf69a574c389b3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/pl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/pl/firefox-125.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "c03e54968e539c909c5a4c870b4f80dfcff406fc79d594b3897d0d0e7bc9f26c";
+      sha256 = "86e4b00d5b592a273fb1080f25eeba25357accfb43a41fe4bb4f03599ce8f617";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/pt-BR/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/pt-BR/firefox-125.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "113d9baa6a713ef7bb2828759f2cb3913825d7c8b595076961ebc7a318edbe8a";
+      sha256 = "d01518cd6f619acd4495579b3165d98e8330913660d0b524b8939ce11f6ff9e4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/pt-PT/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/pt-PT/firefox-125.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "93a2ba4c8564c89e28c3d29ca00caa04cd13cc6947c59aab21c9e3c91eeec5d7";
+      sha256 = "6ca3a5571e552e91668db6803a6d5b7fcc70f3db5f75154251be07be4bbdd40f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/rm/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/rm/firefox-125.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "90b9bd0d35cd91e6dcfa24f661d7ae40a3405604e3c696ab91b516cb159eefa1";
+      sha256 = "81a2a01e1cd47fe4a0bad5ce7dc0b4e234a3339769aea05207b54da267ab48db";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ro/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ro/firefox-125.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "741b586436d5c5b85f86041ff0a17aa734a9d81ca1dfa566fc69060c4efb6c7d";
+      sha256 = "1bbced01e2c481a4b3881588be4a71715f49704d7b4023a5dce4d5faefb6b98a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ru/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ru/firefox-125.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "bb9165219242a8039761656a039fff273515f8a2e0b0444ce047b4722fa1c589";
+      sha256 = "7027e85188962c94239360e9fe242075b5f8ce7cf0817279455b8684ebd86e9f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/sat/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/sat/firefox-125.0b3.tar.bz2";
       locale = "sat";
       arch = "linux-i686";
-      sha256 = "54d2506e1384a5f3ca0611f31f0f0645c8c73875ec663c40fd672931e2851cdf";
+      sha256 = "6906d8bb86c15d435a154f15e65ffec6007735278614ff9656d0efd09d89ff39";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/sc/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/sc/firefox-125.0b3.tar.bz2";
       locale = "sc";
       arch = "linux-i686";
-      sha256 = "f53434a7c0f15105129a76a82dfee2b585d49aae58458a09364118c9e7cad2da";
+      sha256 = "4beed8eecc01f5a6a6abca25ffcd587c5fb9dd2b0b7fd702c1bf808ffc3b4031";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/sco/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/sco/firefox-125.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "ca58ff487ce497f8b8c8ec590ac5592d30a47b3a3da2bd03b273b0ac1e94b389";
+      sha256 = "b7c65e7e7902084a97fc804993c634d4e80c3bc936e6b7accc115b5af6288b0e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/si/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/si/firefox-125.0b3.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "623710ebf2caea98662b64816498f9e79dd65251a6466d5a54ee35eac763d8a8";
+      sha256 = "577f7d9bb9583681af565b1d27131460f94a1289851b580aef5680700c5030b3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/sk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/sk/firefox-125.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "0858782eb73df79ef09dee6b3ee2d4f59d348f134b0b1049d03b3b9981126074";
+      sha256 = "d5eeaf00e48218f85e3336e6efdda23b35ae597a23906c03f96e5a46bf98ddb1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/sl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/sl/firefox-125.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "abc3a5d76ae7034995291722aa8841a441d6bbe23ec2bb04967e829eb0d21bb7";
+      sha256 = "e4f9fd351a2a093ad2c9dbe65171a46df5cc7f294b39fece0f7e84bfc1aaaebc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/son/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/son/firefox-125.0b3.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "4ea467ca12a5fd58c79c95ba545b236ed45adaa78ee3d4c57cc91e79b77814a9";
+      sha256 = "3f21fc73007c01c01059acd895f75c719aacb5ba3ec301a85feb35f4b95aa1c8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/sq/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/sq/firefox-125.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "a3904e0c003adbfa70b53c5cb320c146fe2338fe5f39aa1f577befcfbe4e56ba";
+      sha256 = "380531a68e684da1dba48483f7577da55c30be8a7d827413668036f17239fd96";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/sr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/sr/firefox-125.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "6d5e3b1f6c31ff77605dd9ea840e91e8378079ce7b396b7b2d76dea21686847b";
+      sha256 = "efb203e0195093cdb6d6cd83896382fb7abbda4602a141223274f0204f6700ed";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/sv-SE/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/sv-SE/firefox-125.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "fcdad045574044659d42fff2c1dc13788a2fa95c53affbc6f0f01a8fbb7779c3";
+      sha256 = "ea72e44dd494a645965b9049f2874a3fe15aa38dbd0d10b6a219a289bead24d2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/szl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/szl/firefox-125.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "c122a3a55de5d421f9b43025c0c6e7df8937b785a3646881d58d649f5b1df4c2";
+      sha256 = "c134794aaacd09357e25f3fc38118e4585db1228b1026ed5ae109fe008111f37";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ta/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ta/firefox-125.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "a479a71aace75ba50794fcccab989a8a9696611a56bcd228ada53e4c278b8c37";
+      sha256 = "cb0b82040e427e449d116644d9c3f327512a8fbbc2e9d6419fe49aa576af3d9e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/te/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/te/firefox-125.0b3.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "3ab19708939b6471759e6f1209d933d3a3c8770e25ee7117f10ca0d4aaae6886";
+      sha256 = "bfa777e66bb5e4b2937eeadb44cea3fd90cdc0f7e593b4cf1601b1b4a37db13e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/tg/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/tg/firefox-125.0b3.tar.bz2";
       locale = "tg";
       arch = "linux-i686";
-      sha256 = "1c7d028c6460a7b15c3fbb7f69f0e4af8234db574b92bf2342416646941d0d0d";
+      sha256 = "e68ac79f0e2bfb130dc92a25540cef201a4deae261f481f2aec9981a4bb228b0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/th/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/th/firefox-125.0b3.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "fd9a4491c3174f968347f98d77406518f7f2ef87a82915393e7e6d02f067a5c7";
+      sha256 = "3cf68e55bb12554e22139ea011dffab3aabb4d1164a6f069ae8cfbff487e60b9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/tl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/tl/firefox-125.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "bb8cc15e3691d3064d50b5770d467219d93f625c71174a33e17a38a8f4cdde2b";
+      sha256 = "e155c0c4f2e3bf1eff31530d877e45f3788d902fbef970943cb6b3107ab94d5d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/tr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/tr/firefox-125.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "a5d02b487e0247c090f44eee79f6e142c7890bea6c1f9848412997e40ab48fbe";
+      sha256 = "197f8d49899419bb61e2fd0e6bef9485aa5ae4940a529043469056d8c74ead02";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/trs/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/trs/firefox-125.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "25f4ff67fdc4be664a5b4e65a5214b7124a27725204dd93acfd24d77c70e95d6";
+      sha256 = "7a5a4ff73ed265ab3d7ab2595a84dce0c03cd9a2941c9fe74890b0bdd7bb9b96";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/uk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/uk/firefox-125.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "e688945fc510418bf69321b8168bb537b76cc8a2798b19946f8d969e13151d27";
+      sha256 = "cd0f75980fadfac1cc1465e65c583ec2482cc5ee2f1be99cb39adbf77fba2d4d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/ur/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/ur/firefox-125.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "1f01f0459e671fa083b71c96355c60aa3fa30b79116597f8ad6dfa3ab9661ba9";
+      sha256 = "2dea3790598b9a2ff68a04a927399852179a4f4da6ce9794c7375057f2682005";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/uz/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/uz/firefox-125.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "95174084f39d37d9ca11cc2c62485f0c7b0e74cc1aecdd46e3a9958f6fd121ca";
+      sha256 = "dc14b9b71afa69966010d325d45da1aa8a16a2969f02b369c14a719a46d69ff2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/vi/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/vi/firefox-125.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "391a0e484adc0d004c3f1e1409876ff13ed6bab6ff05b686dcdc6a2ecb929886";
+      sha256 = "3754cb21f4fceeb393987c7424aa452b0f77b2271771f3a40d58e4c921f3b0b7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/xh/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/xh/firefox-125.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "70bbe9ae5637b874f928fc3b85dc1326aa6e7ee4e66a2a5067934f029a6ca8aa";
+      sha256 = "3966ef9fdd6c21c32d410b973b9fcac0a0bcb39325cf38ddf046a3b4c95f4d74";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/zh-CN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/zh-CN/firefox-125.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "df1bacb4df2b14b7e43bb36e9acef401112957b49a86c4e7ed43c1d25f054da1";
+      sha256 = "3e7986779b89dacc6d38f5b9bd2dd315efe1c90ed7f3f4588dcc30799eb068d6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0b8/linux-i686/zh-TW/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/125.0b3/linux-i686/zh-TW/firefox-125.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "d32db2c273ef9e674c8746a1bed7a8d3d7d99b1d717d714b5346c66c3ba42f87";
+      sha256 = "4100f89b608e365091886be683baf8a04a6b32961f612aba7663b77e66b37d2d";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/developer-edition_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/developer-edition_sources.nix
index 529203441982..f96bda5f6bc0 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/developer-edition_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/developer-edition_sources.nix
@@ -1,1025 +1,1025 @@
 {
-  version = "124.0b8";
+  version = "125.0b3";
   sources = [
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ach/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ach/firefox-125.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "2988de946ed490228980b45ea0890896818fcd2576ef25b7dde173e7a2288b7a";
+      sha256 = "16080b9711c0aa4cfa59104de6c6c061bda8ce31b4afbe84dfce68da8d3e1159";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/af/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/af/firefox-125.0b3.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "1687d39822c1c2aa26bad3ae5b2b7249d8d77b807fb710f3ac17dbee10379fca";
+      sha256 = "94ce583e46fa39e49415cd2a536fe1ea9c04c5f4a762a2596dce192863695e4f";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/an/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/an/firefox-125.0b3.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "d25fa9dca8315719c7e7410d65c24878090c8ede9f8872e907f97c5208fc36af";
+      sha256 = "270b4afedbe6c3301d25564f80c4024d2ef9ed9de39da6f98b7a380e219d4a98";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ar/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ar/firefox-125.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "2070bcfe283bb4cca1d41f966aa9c2482711d945d72713d2a8984550cbfb2c64";
+      sha256 = "430687deac1f7bcd01a560d074c8b98d6bf1d57c06047e608b938ef5dcba3ac1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ast/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ast/firefox-125.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "babe235327c171b7cacedadcbe9bfc115268a3c86b26156159d6e13a527e5e9f";
+      sha256 = "816b1f696deb220ae167ba7ef06f59909a7ee234317238679f8851ea26e8b679";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/az/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/az/firefox-125.0b3.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "f88f43800dc35bd61e3954d160ece9b278bb3f7b9ffca080f56f19e72809281d";
+      sha256 = "19612477e94a501ff8ea91621aa1f206a09cebe5bf192408fb58d697d35fc7c1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/be/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/be/firefox-125.0b3.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "a794265636992a09b91d940694681550dcd53de67691093eaaca46451ec72559";
+      sha256 = "43ec52fce69cf361d213bbeb7cf6a7e15dd8341e1f34334def5afde8dde569d0";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/bg/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/bg/firefox-125.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "672062dd3c6c0c0244230ed69e52e78cc8a95f4ee0e6328e9ce271dd8cc3ff4b";
+      sha256 = "80eeed2e8d756aac9234c1cce2afc7461c6a4ce7ce84d251e763a871771db84b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/bn/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/bn/firefox-125.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "41a949ba8f1f374deb54e5cb1ffdfcbac4be333d2f3c62f23e5de1a65d2bbcf8";
+      sha256 = "e26c824e066571d627fe10c0569e233f47c93b43dc9f752352a32708295a1951";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/br/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/br/firefox-125.0b3.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "bcaf2de1ced5c94ff689b24f7496aae1d7ef0bc6c4106ae1864b0904c517b3cb";
+      sha256 = "344fb728d4b755603f8107b42a865a5b266c76a6f7dfed83b18e8a44ec808af2";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/bs/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/bs/firefox-125.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "7962417ea71924a02d08877b27cb9f3c34298820687dedd5fa14815e54813c46";
+      sha256 = "1ad04066cdaa63a8fb03f474e5b543421c4149ee86eaa926499fcded603b356b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ca-valencia/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ca-valencia/firefox-125.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "73cee93f18933add9fe9e351e9ca65df1fff08dfa58c8e0bec2a194f59e3efed";
+      sha256 = "26834f233c53d20f08bf6365e9e46d87de79eb35c63f731d70e94bacd992b72d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ca/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ca/firefox-125.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "81746545945da6cbaba5b62f140645ac38f766fcb85d6ccc14a6a7f4b3f2af6f";
+      sha256 = "b62ee3d630cd5c97c44e43577c0d47904d58d94b158d459e11d5297c22a1b16e";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/cak/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/cak/firefox-125.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "c0132f83fffe7cd5e61a1d445fcf40c37efeb59a260c2aedae66070e118c36b4";
+      sha256 = "1c56379921efbecb3594f2bd939c89683c66ed1ca5f09f52750e221c7908e50d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/cs/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/cs/firefox-125.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "57f97db425407eea0f7a3a46a025c2d6a78205564aca3ce833765926b191dab3";
+      sha256 = "a5885f6d3c5fc6951395e8f9f8732f234a0be4cdba92dade0d07bea7616aa3b9";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/cy/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/cy/firefox-125.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "e8a2ba537f651ca41c90e2b73805736d94aee2385332f78d328656bd27ad4393";
+      sha256 = "75638c8788bc163825daf3d4af72628feead367d397131d904cf2cee452080e9";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/da/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/da/firefox-125.0b3.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "206de0cfc1d6fe05d6cdc30f12c6c1a7078296d519dfb12c31faf4c2bac5b03d";
+      sha256 = "cbc9c2c19a8dbaf64a76886fa475ba30d49695f457ad4f3b3d17776afdd0e692";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/de/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/de/firefox-125.0b3.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "89d56459285a171cbccb5f030fdb1ed6760c793bdef4f0331b9b59133e758795";
+      sha256 = "042e2748932a0f6838dae77c61f8f1a8874b17e0613e82962e0a1073c2efd66c";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/dsb/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/dsb/firefox-125.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "a259ef10f69f7a0d199ed69dd6edccd3c995b492cf32a89829574bc931124907";
+      sha256 = "e6fca4065abaf6d2f2ae585100ec85b8eb43a3173c7225f41e26b395d38b1a87";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/el/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/el/firefox-125.0b3.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "f540fef5edd06244d3b5677629707c25bd1b77340f8bee130410a9e13e021b4a";
+      sha256 = "343e92fea4a4990f02b47a2c7e208299abf119c1f4e6a0508935f2f173c0c536";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/en-CA/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/en-CA/firefox-125.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "797d044fb9af451561b8aeaf44c63476018c5c1778cd8f4e159b42e66e54bbbd";
+      sha256 = "625ccacb4d5298e018ae4706c929745dec748edab2ee9a241d548facbeca3bbe";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/en-GB/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/en-GB/firefox-125.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "9f95d07b7ca673ab08febcbae1d41ec5b1540f1e3906132da6fc461c2c026412";
+      sha256 = "05d886a93f3876ab0535bb8d8d5005ce9770f6f9c933935ea13a2035244f6181";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/en-US/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/en-US/firefox-125.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "da86a9c747bebe0c7dfa7e4b9e421bbb364c9f0f89bfa4a1a9e5ecb16e10ee0d";
+      sha256 = "d1fe9fe71e2e7d48fb378e2ad6b08226ef013470c9ed40af8d19d28fec2ce656";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/eo/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/eo/firefox-125.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "edf010104ec42ad79242cce4d93ad7319e62df91f9ced6ca811367e9a8b65dbe";
+      sha256 = "9fbf00816e65351c5ec270e6cbe0cda2a2b4557bee42841a5c9e0fbbed69a056";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/es-AR/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/es-AR/firefox-125.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "71b108e32318295d4f528216a5078f1200b7681a3d8c0a64edfcf8c750c7ccd7";
+      sha256 = "01c9118dbb74c1aac478765b8d4ed491324b216ab4711eb2a6154e9cf82d55b2";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/es-CL/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/es-CL/firefox-125.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "0e004dbdce5186349386af181d23b7db7e70f15044fc2689251299eb14a593e0";
+      sha256 = "315bbb054c53b32a9fe80226c1dc15ab1e7a9aecdc9486d9eb10d9ba5480c018";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/es-ES/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/es-ES/firefox-125.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "1abc44fb00c7edfc1c7abce1f8a3cb42952a5202de78be6f74c193978b33fe43";
+      sha256 = "8c63766afcb55874ea47f2b6270d94b3c3dbf886191399b1a077556b9c4dc23e";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/es-MX/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/es-MX/firefox-125.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "9829eae29d54a2cc719b1e5a1edd449d24e23f8b20cbb0848fcee65dcc49698d";
+      sha256 = "bb0852f0794f4a5c2df5108ffac6bb1c1eb06e127247f56d572cbe66666a6f90";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/et/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/et/firefox-125.0b3.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "bf3d8e5c72773855c67220a3fa30a3336393fee024dd660f0756b64437830b89";
+      sha256 = "1679ca873cc8bca96aaf24c561b7314c471c00e4b3a2808b1832a9d8e61d66e6";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/eu/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/eu/firefox-125.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "41122f93963c7bebd6b9c4f7549e0c2ace87a9fc6b0652e95e458daedd3d7a02";
+      sha256 = "39a4cd57c0f6ab55a5d188f5960b69ee1ada3a7c2bbf398414d4d0ef8e22b762";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/fa/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/fa/firefox-125.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "b77127090d34358d0bb8979d0e3f2eb2f28294aef852a4c8ff1aadd667aa2bb1";
+      sha256 = "96306b9decb1b899499013a8c91a2a6a93fc46b6f84653eb6ebd4b1c951765d4";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ff/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ff/firefox-125.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "16c289cc6df84d6c11346c63f06401ddb8213dda5fe6213adf595103006f0be3";
+      sha256 = "ead0d58a3566cae5f2e1bcbe7505734fefc9954b5feb8271bf8f9a7db80fa4bd";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/fi/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/fi/firefox-125.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "9d28939dd4b140e519d8cf3dd2fb7b3d436a9dba1fe0ca3edd501efcb27fe815";
+      sha256 = "f440d12967a34c28a556752eaa33879bbdbd35474a62824b66acfe482caf77c8";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/fr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/fr/firefox-125.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "4fa0c1fce593428b52398574dfea25afc43634e501470eeb4b5377e56379c522";
+      sha256 = "8816e662c89b8a70b2190569eae54f86efd51bd0797fa04ff01c4732e4f7cf8b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/fur/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/fur/firefox-125.0b3.tar.bz2";
       locale = "fur";
       arch = "linux-x86_64";
-      sha256 = "3efaed291928fc656ada9b5553465df933611f17e950bf1a33a93d5938ee308c";
+      sha256 = "0e888ce388bc7fc1e0102a1d12848ac5f7eb868c928ffb880bbc63a12f85441e";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/fy-NL/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/fy-NL/firefox-125.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "7c40996622bdcda21621feacded35a68da3da46401b5199594e9f602be7d9029";
+      sha256 = "341d6500244dcdbd52249c9ed21fe3b8987eb7d39d0ef4984452c43a25f2bdc4";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ga-IE/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ga-IE/firefox-125.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "3d3ca2cc0de55afafc208d3f2a5e8ea9a1090918497375480e00b9487aecaff5";
+      sha256 = "206ae6ecb9784392dc3a6df8e16b4b2b2cc33948ce3ef4d181adc84354689956";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/gd/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/gd/firefox-125.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "89a4df6e0be19cd486e3af3891bdeaae24b388eb107fcfb662e173952afb179b";
+      sha256 = "97c209100a387f32455ffcd4c4417698b4ee6eed949ae94466182e4f95b42cb6";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/gl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/gl/firefox-125.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "1ee2cb1645e2dc1d7840ad3bc25a1b9850c613eee6638e518b4f6b1c85e72e5e";
+      sha256 = "26a9c2754cc36f7e417d5e74128e68dcff2c0ac882cbe1db30abfdcb9abd52d2";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/gn/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/gn/firefox-125.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "53fc0c3e15c8caa460f45112dc6377f8e30fc4ea093b6add483772b4672ae35c";
+      sha256 = "e7b190cbde265c7733cf9e6afd2d954755618fb8b8806658611a39ddcf681d75";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/gu-IN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/gu-IN/firefox-125.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "17ce5a7783094959e7293d4cb0980d0cecb4ffcf5047e51e32ae4acf0ab53024";
+      sha256 = "8f1ac5182431fdf260b3907812e598610e3443eab1f5de9b766feb0d448d90b7";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/he/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/he/firefox-125.0b3.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "e74b756e6b1405aa1ce63e62d2f1f4b0fc82cfa84591d1585335e6132f41ce03";
+      sha256 = "d0f76362f5b1f89ace520ef32c10ed590638a3ac4d3775f00ceab26713c921ac";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/hi-IN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/hi-IN/firefox-125.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "928e276ec78476ad1c2f6d2e4c78e378ba91f7b8fe15094f1fdb3b569bde38e5";
+      sha256 = "f5741e9d4ebd7ca6b57f0c164616358609b3055b5d5e4036310782e63ee42dab";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/hr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/hr/firefox-125.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "fbf7f1f034888366c47646f6471ff6e2b16b24653857bf29106db5c79cc0aa24";
+      sha256 = "b312d68249110e6d06099ff23a52b24dc525e5ea53f1f1cc43f5f762c6a42a4f";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/hsb/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/hsb/firefox-125.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "f0d43f298c10229e7445d9b6fc60d9d8082eed402a0b35ab0c7d576e8e6fe714";
+      sha256 = "a1f9dbd28c4e52b010cbcaea17039393f8e1266cf05c3a38853cd80aef3d1a22";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/hu/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/hu/firefox-125.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "ca36f85425b69126844a50f6dfd53aa58bc5957869e182939c2c801b247d7275";
+      sha256 = "2a871b7467a20308ac4e0dac617452ac976b046803a4954569db2e90dfb05fa0";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/hy-AM/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/hy-AM/firefox-125.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "9dbb281f9e809c22c8247bc91f5b5f77a10ec1394d44b1a8f05b0f996781461f";
+      sha256 = "ac67797a9c11a6035f4d3be85d431f6215c35ea82b516dcdc303e55f96c14688";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ia/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ia/firefox-125.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "3a894f67f061cba30fd1d4ad8ae6258a3603b9ff70437cd0d15dd07a0f78de08";
+      sha256 = "7404c51e1b0849310fa99db80a384f4020078d0b75c674d323a8e52c7eff00eb";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/id/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/id/firefox-125.0b3.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "27adef08d52cd4a1c6030ec165a93206b179cbf71cc6531c0930c23d0d093815";
+      sha256 = "e43fbf31640d0373800fc976511933fc2277b3ccaeb9239752f4d2618d8ac3b8";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/is/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/is/firefox-125.0b3.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "5c00ac38e8bbbc12c2b82946978e5b1d9cf76e4497ac928f5cbf709248dfd965";
+      sha256 = "5b10b85ed3a7a5edc5978a6f64b31e386a324912986cad895742cee648c2f32f";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/it/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/it/firefox-125.0b3.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "bc618b604865437745a171a0ceeff8539ed29045008073ff300ce06ebe79953b";
+      sha256 = "aaeb52a96b94645f50ecd04d7ff8ab4f4fd8fc9a5fad2cd60effb754c9ec75e0";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ja/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ja/firefox-125.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "0aa1160b46e69921be37d99e95793ba3993695e78ca2a133dcb88d0e634ff9cf";
+      sha256 = "5a9ea85a75dfbe9f3f98518496f1431e49a7cd3c86041ce4eac571972c2c3184";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ka/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ka/firefox-125.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "3ba54e3f9aaf00b7063008da2ce83390591688e81ed012c88f7a8d5ae3a826bf";
+      sha256 = "a2dd08fb72c57cdf850351257bac5b6295069a88fd5ec0a68a5ce1d29ed01699";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/kab/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/kab/firefox-125.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "97eebeb472796278bb8b0e7253f7afc2953377904f4e58e1866381311f3e1a90";
+      sha256 = "552614ed2b8afeaf7390b8ddfba12732943b1d704d39ec53a66916533aa2572d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/kk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/kk/firefox-125.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "bbc0cff5ea750c9d5597935d6b6ff9724304fc44041bd2788f54c5e62d58126c";
+      sha256 = "011d4547842c30c50be5b54dc09ddb60f39d7c00af8ea738595212caca805648";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/km/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/km/firefox-125.0b3.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "1aa3e271596a41773b09edfbb2c3c2efa79bca942eefb43bafbdbb095a40a7f6";
+      sha256 = "79e46800bd08859b132c1ec885ff88c47aaa687723f04b93fd4867b305815318";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/kn/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/kn/firefox-125.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "37f0d74e645b187f36d2adf51d54e3053ce12489d9be88572d6c9dd66b95a8e9";
+      sha256 = "4bcc2dbfb78370c510bf462bb818e6fcb1b5d25d966d9f583dac467554ad4ae1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ko/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ko/firefox-125.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "970157e4c6562744716324dee490c0a9e2b1ec80013e613dcd31c38646b06591";
+      sha256 = "65f23deb4e13a4666c1b6a23e1e7575e60b79189d142058b2d47a4f47395712a";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/lij/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/lij/firefox-125.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "b8cfb9658a6553fa5630219eabe865f44b646017383d4996d0e0b28a89bb70b3";
+      sha256 = "c8afe9a1d694af6bd1306b6ff78b014b97d8ee47289b106affc417ac680b150b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/lt/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/lt/firefox-125.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "aa3197cec919cc8ee124273e258d66e2d731dda388ab5fead650e1f75efab140";
+      sha256 = "8ac2ff0822bca568b7cc0578455bbec1fd1e3de81f806deb0dfa244f297f4655";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/lv/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/lv/firefox-125.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "fc8bd3ea5641ee5f40784ff58265d1d4e9f9fbb57370c94d3bfaf16c8ca419f7";
+      sha256 = "c6c1c89ce39eb8ada497c7be3fac96500b8dd16c81ec7bd1194d075f372f6eb6";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/mk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/mk/firefox-125.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "3c7842697ece438bfa6f1ffa411b9f7a207b855be590e000f36bf0fbdcf7d0fc";
+      sha256 = "afae60f7be3ba9757aeb1a5ce1f6aaef4d9762882c933c0557cb155f802c4f67";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/mr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/mr/firefox-125.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "c0f7095e04fdf54dd45702cd77661b9589c0179cd58af049dd9668f375bfb4db";
+      sha256 = "5526958478774d45d1c5ea4a5c59aaf6875a8c29a8fb78b35d6263acbeff57d0";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ms/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ms/firefox-125.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "cdd283a160113ac0111b4474ce938deb4ac85dd6bd2b56a15c9452517710435b";
+      sha256 = "59df945b1b6359777cc9acb0eb1f92160e96da5c5d6d41436417419f49a0a026";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/my/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/my/firefox-125.0b3.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "9acfcf0899f950a61b6897f4c4720b04ed75424f584164a88d0fd8b14b14853a";
+      sha256 = "465d80c65f659e9460a824fb11093bbe8d2331dba1a0a741be7adb7824b78dbc";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/nb-NO/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/nb-NO/firefox-125.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "e1bd46e35d445814f6f84994780975827098975a5f4c42a823cfdee7f2666613";
+      sha256 = "6e4aebc7f3a7800a7f18833faba7b94c10b91c8d1de569947c55c704b760e379";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ne-NP/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ne-NP/firefox-125.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "408e293ab25cb7e08e6d75284856b780a3ba86921ee6555599e5783a386bb187";
+      sha256 = "b57abf4880172c7a754895767355bef06fd67b8c43c976f73a0c5a88da06b366";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/nl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/nl/firefox-125.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "90ff9d8166b37faf8ea99be184dfb5c0cb3cf4f1fb50c66880dda85aa2372ded";
+      sha256 = "12a559691aa5e578243aedaa8f9ae6efe1922161746e09241578b3e57b3c92d6";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/nn-NO/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/nn-NO/firefox-125.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "790ec50757bf6b96437019eefc2082e21b40b50dbbe8626a508a7affd2882b20";
+      sha256 = "3488ecb164f0084ea148af187b0ce2ef433f7c4c6af1e3b4b4b2b4aa4c96c116";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/oc/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/oc/firefox-125.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "7d9335f226f72b2f4cea0d05c9a473de8183fb0095e3270f937018587d1743e1";
+      sha256 = "7e98088ed358034c5945cdfd65ccb021e94f138bfb3ce6d662835d126413302c";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/pa-IN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/pa-IN/firefox-125.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "7131a9c7ede8e091a237a9681ee27d63d951ca0c2ab9c3c36b54fc3fe265d746";
+      sha256 = "29808659f8ae11ca7977b1c0d7019c859fa1ecc0102624b85eb65fd34a28727a";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/pl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/pl/firefox-125.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "af5ee6966b6d86a14265813adae3a197aa680c02ffacbab0ff6afc94b356d590";
+      sha256 = "b8c8a1811849ec1df95e2e5d1b292295609078537500d1eebcdeee7f240d3d60";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/pt-BR/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/pt-BR/firefox-125.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "7090d17fac42690c2838ea84ce3bcb8a08a0fc9396a057294a6629ff2ebfb6bf";
+      sha256 = "7b0e8984f7326c7046957200b1d57e07ab097b6ac376a89de4347839178dd363";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/pt-PT/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/pt-PT/firefox-125.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "da8468391bd00b5ee03e46a744b45ca626496b1af9420c2705d5bc11c8266b12";
+      sha256 = "8500e5ca3ed22df202aa850ccf1ae651ef1c8201aead372e5372b980bf6bde92";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/rm/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/rm/firefox-125.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "c4d9327c336cf4200cf909d6cb1a673c5c77badbed3a277a94964efccdff290d";
+      sha256 = "54dd69a47953ee1d609a2657be7f9cd083faabc0d46717a35a15ed7f79b2ca20";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ro/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ro/firefox-125.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "9d49135c68be87dd3c3555358ce90fcb5d67d5c326eba024d3bef4d9bea66c64";
+      sha256 = "0067c51c9b311249cad2bb864a3e5d0d9a1a7856255eb500e0bfc7856b41c458";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ru/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ru/firefox-125.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "717c98a87b4fdb5b1b4f89a37fdd9427f3047573781046dd3697c6cf9b9360a8";
+      sha256 = "e11fcf28a13192c54509748a141934a8c1683f6964a64feadf2105f9e3ec3420";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/sat/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/sat/firefox-125.0b3.tar.bz2";
       locale = "sat";
       arch = "linux-x86_64";
-      sha256 = "9884d3194ab9635d8d5fb0ce6f1e1b4dff7d396916f43285ecefe5324c1bcad5";
+      sha256 = "c7254445cd9ece9f6d8058cfe6201475c7cb53e747b222f2b4a950b45e8ac110";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/sc/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/sc/firefox-125.0b3.tar.bz2";
       locale = "sc";
       arch = "linux-x86_64";
-      sha256 = "00afb58e3e6fd10f52691fc69378c93037c8f3812f38ba25408a44ca978d1417";
+      sha256 = "7ddc4b66a133eec5e81bb592127219c9d7caf19dd4d16842442873a85d356079";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/sco/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/sco/firefox-125.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "3dda5b6f9e6bc2d3b10c47f12fa0673bd065b3f392783d6c0fe291fcfed6d672";
+      sha256 = "f7014a6e6eda6153b90d692de4a3ac6c330082beb40f3ed210038e5a07fe3182";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/si/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/si/firefox-125.0b3.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "f476b7179fed6803d9bc3075ae00689880c24ec05a762e0b43fceef40d8e10d8";
+      sha256 = "3c9f874af7be6103221a111788325183ee5785810c1a6682e43ce3c18d2f0151";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/sk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/sk/firefox-125.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "d19816bb7b750dfb03ed88d47075d0c912af3e1c2e7d067649ee47a2af0ef67a";
+      sha256 = "1663bed4ae9646f7caafd769179a4c85990eae56da3e1f43b2b8b3e03dda9719";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/sl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/sl/firefox-125.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "aa83d9502cdfb85037578ac6c5b6bc93f4fa50bb30cc0926de97011c8c618082";
+      sha256 = "a48099677feb59be989f80515fc875d9aa8bb323cba8e58f9725e5d0ff89fe6e";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/son/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/son/firefox-125.0b3.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "64027d1b99bfe100e9bad88e1b7e4b568b82f804be5e8efa855bcec5dca433d5";
+      sha256 = "55b9311cc2b65ef3463719fcb3cc4f9101aa06beca2b8a0ca9e9dcadd68a1614";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/sq/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/sq/firefox-125.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "b8fb2c0e743af3824ab5cd1826eaa9157c4b36c1cd676785bdc4b9dff0cb5403";
+      sha256 = "284c7f017dbfd00106cc1deff5566a966f712235cfd2dcf6731d553cc55c9e2b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/sr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/sr/firefox-125.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "936d63bb50e68eae164386b1a759f12972e49fa00501041aeea5fcdea25c5ffc";
+      sha256 = "7394289954cc4463961a57886c0883d5459feb6e3962be37c49a6eac655852e1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/sv-SE/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/sv-SE/firefox-125.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "e387a557a1f10e26aa80668db226f8c1f4eb56a80577bf397b0034ce9034b6a7";
+      sha256 = "9a9ada3492f9065ad67da25e720cd8795395e7dbcaec5cfb455c3f409ee400b1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/szl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/szl/firefox-125.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "c418fdcfea926e9b7ea8bf046504efe4afd20a2a89d3d64a6d8c72b6052ef38a";
+      sha256 = "8c7d314d1d1a2bff40342c5ea8986cdfb47b88d195c26346a46d622ba3110090";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ta/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ta/firefox-125.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "1fb9a209749419dcb3ba38c28406f468bb87f4fe353b2783b486bede3ca417b5";
+      sha256 = "497e83f3216d44c0139b507eca1ce31d9abaaa8d382b79486cf0c2739b2cb020";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/te/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/te/firefox-125.0b3.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "35aa12ba711241352aaf0a72f4cd523ed75cb2a08d2dc705bb2f663a8bfe7bd5";
+      sha256 = "245199bb94ee5a976b3d73fa0133304de7eb3cffff76ff193eb65a4c61c97293";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/tg/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/tg/firefox-125.0b3.tar.bz2";
       locale = "tg";
       arch = "linux-x86_64";
-      sha256 = "00f447b784dfd4f42687a4e7abfecd0c2d27b03bf66b3c5388a6908f383cb6f7";
+      sha256 = "fda439ad9200ce361d9bd2f449fb2bf4aa06cd043f9c74721145d175d954d4a2";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/th/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/th/firefox-125.0b3.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "a770af7bfe27c7d7cdebcb1200fdb27919f82b559e6e7f4eb5e1aa6ea2ccf434";
+      sha256 = "5ec5f736205b166542a4447cf5573081fb8c485fd627f0c146969cd783ddc7f1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/tl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/tl/firefox-125.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "115ac23a996aafaac14193e441d2bee9e3b52909961ffd62d70e68c1a9573690";
+      sha256 = "f42f6e8e6e766b785b4807e56cd9c8908e1b2c7c91c20a737929b323fefc433a";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/tr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/tr/firefox-125.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "dcadfb282a5e3f084be99e448cd0aac00c0b5354aa4883aeb964a394f33b9a7d";
+      sha256 = "60b73c7195bfc185af02ddc50b3363fc2b00bcef0f14d4bad3472bb4ca4dc7ac";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/trs/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/trs/firefox-125.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "19a62eeff342b238c9809f1d4b40294747e7468fd4f91a8d58388074935f409a";
+      sha256 = "640f1d6f8bb3bc5451e4a0561740d8893c3f796b7ec1fe913c966543c8f36e33";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/uk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/uk/firefox-125.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "dc415f1cd5a41f03dac20cfc4cfbdf4d26c7ddd4be2ca4b04d51e01bf5e59306";
+      sha256 = "9589e819977c0ebc554a84ce6204a4bf4d7e02dcfedd2ef992cc9d8c87702b7b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/ur/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/ur/firefox-125.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "dafa40eaf630b41fc724b07f768eee71cdd07b5a30a59de495ebf39103d9c9de";
+      sha256 = "25a38c3b6f836816451c68cf906c42ad151cf6ee5c9734ff299724cf44204613";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/uz/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/uz/firefox-125.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "1c2bb1452ab82b39e9b840191c4a40462fba2e13dbc9615b1fdc34ae0764deee";
+      sha256 = "b66991d25713cb88780f3dc4f5d6ac7a4c3b10d166d4af078abd3155c600b06f";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/vi/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/vi/firefox-125.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "2263cc8f570647b8a824a03dd7faeb58b8aa382a329d084666128e47245700af";
+      sha256 = "781ab31c3db628cea09cbf50eb2a7ff699c26996c7a12f9bf958ef16cb712397";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/xh/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/xh/firefox-125.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "a77eb182f8025691aa3fd977c73ea96219c54be81d49f7552e09ef3c3b21bb40";
+      sha256 = "a70de936d9bca557f18c396eb17404b452979bb9a698d7c5e06f4912e2b5f2e0";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/zh-CN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/zh-CN/firefox-125.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "80335d3dd9c33099116697c51e2fc695c56d6cf0e6b42db45e248f6df92c1ba9";
+      sha256 = "cef4f63d4283f794065de149da69c8ce525455e5f891593e27b8b8a7e9f9cefd";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-x86_64/zh-TW/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-x86_64/zh-TW/firefox-125.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "591be7b8a030140521f02712a23770a93f8d9da62603eefb3644b2a3ad0d21c4";
+      sha256 = "418f3232ab5d0feb166d9a98ee3bd08b5324c04bb51a708819a489e4f0dabf78";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ach/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ach/firefox-125.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "aa76760edf5c2693d1ec694ea10f7ae07b4e09e5aba0b58e106d0ede15e6e35b";
+      sha256 = "6714cb9674b90dfc3e9dd605783c780adaa0f81319eb76e1d05ddb6b026e25fd";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/af/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/af/firefox-125.0b3.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "e2ba6bad6f07c1923212dbaa47a3c58c379a45e9ff7c9104291ba8b3fcfa1a04";
+      sha256 = "8e15387aeaeb199358a628b01351e3c40e34e55d25c58763e306dcce1f278cdf";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/an/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/an/firefox-125.0b3.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "ca164a264c83e882221fc1b0fab46fa56520ca35193c295950c11c16f660b6eb";
+      sha256 = "a08265f6afcbd49ff0094559ee321d6a51d31fb0bf5300cb0ee648ac88e08934";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ar/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ar/firefox-125.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "d179a74ab02ccb30cc6c00e610b8689e512a62eed45f1aef75468b566aec063c";
+      sha256 = "9993ce75dd39b8bd78a58119d9877b74ac7aca888074b5d8982379d680df3588";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ast/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ast/firefox-125.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "2399fe0d6d2c8de1d6f49a4099e851a566134f96cb445894c6df0f9e278b1c60";
+      sha256 = "7e12f9ca6a3d7842aadf19c8e3da5b26abdfecd4f3c1819f7cf136685b787214";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/az/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/az/firefox-125.0b3.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "630ebf57df7056d3aada0fd46a9528eb42657e51fee2d7e982b751a417269ab1";
+      sha256 = "5bc0c2a1c2bb32621887956702f8c328cbcafd1edc5710b505ac2a955ac77a09";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/be/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/be/firefox-125.0b3.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "fff4c9023b4ce2f30603c73012e62689c93fa430850c255145d3fe897c43eaaf";
+      sha256 = "1c60401600b2d1e8c38214e09bcecce111d54a2c096ca20f02df890fc927d1b1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/bg/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/bg/firefox-125.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "bb43272a9e759eb212daaeb275136d1b68e5d991e27d25bf082620d209f797d2";
+      sha256 = "c1cea06607026057315dbba842e5c91293e57684be67044a25f8e1282bdd79ce";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/bn/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/bn/firefox-125.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "bf57088004b1e0dc8ad4cede525a02926d4f371edb7d4ad8d76c053d727bb851";
+      sha256 = "a15b42fdacc8fab1f6f0c470e6529c0686fac7ff929225bcc38059f89d5b46a3";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/br/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/br/firefox-125.0b3.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "18abfec06bc1f23a9a9a182aa2185f16ad3e2f82a7b334077c66af1f9300e26e";
+      sha256 = "b297b22cddf43cbe24ef5eb8f152a485f230fcbe68efb6214f0b309a79649921";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/bs/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/bs/firefox-125.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "dae93ad920d4702483cb9206582aa2752f3d8e174ec49b5ce06e44d6de846a1c";
+      sha256 = "78918c208f573a2c1e93a0589903d7957660580854d811d1ed158d4ce59b5261";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ca-valencia/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ca-valencia/firefox-125.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "3cce7fc4501e374c1d834391ce2055a9c221924da46dcbfd4c7bc44adb046148";
+      sha256 = "be4d7bab931c0259d22cf2691f3cfc54310ddc218bd8905241451eb076724c41";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ca/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ca/firefox-125.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "dfc7e60767c592746f85771f965e0cef5497e8ecfe9e736d4defd44266a446b6";
+      sha256 = "714db2607f8916ecf87847d354b8cedcccfa7924e84b0c1e0f2c51e61be8acf1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/cak/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/cak/firefox-125.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "c1d9a227cc7ec9ae4fe3c16680dd6267979c1ecc9ef405a43e2a618a1b3df0b8";
+      sha256 = "267eb8cb87fea31c40502902172a21c1019a8a21ca768bc1289280aae1a341a9";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/cs/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/cs/firefox-125.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "2142c9908664c1fd07e8eeee30fb87083eec9bc01e17c67d1a6cd381f498f7bf";
+      sha256 = "a539065db25271f18dba45e5540c801123d37bc083305227cd9dea80e380d09a";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/cy/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/cy/firefox-125.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "f844948dde2a0f6c8117e460ad665cff5c8c65426bb7fe5df1d8a6311d729515";
+      sha256 = "f2505a446017b5793c3d8b20b0894a50ad92f23b6d9706f6460bf9b08bd09c51";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/da/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/da/firefox-125.0b3.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "221f2ff0075634f9068e2354f998c4b7728d85690dc3597eddc2bbe1af9a71d7";
+      sha256 = "2b1df3484ed7eec80c4a1176189b050a092d2095bef517f5e5abb83fc8403344";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/de/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/de/firefox-125.0b3.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "0c351ab75f97337fdb908e26ffcb03a94f76fe8ce540427fa3d2115d8718f1d8";
+      sha256 = "3e6c3d4c66736c441ae129652ac9b5447c24dde5766421ccd830d6f7dd3e1ac2";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/dsb/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/dsb/firefox-125.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "17eccf8cf872a54ede61d94f4a06aa263c124ae02f6f71034ac33a9f635357e9";
+      sha256 = "d833376fcd5671e5b88a20cc81920e16c630896889911b37b41ad352eb8dd639";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/el/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/el/firefox-125.0b3.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "83f1adb26f9087922db447bb24f75c473bbf58c4747a98ee1355a62155808334";
+      sha256 = "ff6dde262f3f10813a060de598284c3282085793dd4cf1fbdc91e866d97ff294";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/en-CA/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/en-CA/firefox-125.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "85e2b7dc78a54ecf5dd9e7338077e9319a65d6b06b99ac546af7615954950046";
+      sha256 = "813fe098360c506ecd2b7747e537bcae15239aa8ac546bbe3638aa526c411f06";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/en-GB/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/en-GB/firefox-125.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "a2d8b8f30c94ee77049e4f673fa7f06d3f0c70db9a809bdaae5bd574f01f3cbf";
+      sha256 = "85b8fa35eb8cd79705472639add855a5a1eaefe84dc525011e8c9c41096b0443";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/en-US/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/en-US/firefox-125.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "518abc1f7ae35072ccef6446a02c4314c1755b11d6cec0624ec03259af3e4ac9";
+      sha256 = "9f2e7d1f11f281a4ce32105afdde53e15a51987b7c8f05013fa5cab013638d68";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/eo/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/eo/firefox-125.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "5532249bc5ee61e1943369c7e3436483152a804095451c7bf2633df7286ca389";
+      sha256 = "7710311bda94808e53d51c3bcae8b4386eb7c62c53fcd4da046288fa146c10b3";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/es-AR/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/es-AR/firefox-125.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "f116793316f68401258fe6dbc60cb770ef2a1d96df6f1a9adca865a3b0d590e6";
+      sha256 = "9de5e82e64ccf1976a6cdd605d8b6b7c42602fbb41084f64bbab4b1a2f27b34a";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/es-CL/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/es-CL/firefox-125.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "b163a8125e3eb6a13a63216cabaebd94efd7f6ed398e9c08b221dcab4e8d0bfb";
+      sha256 = "8dd94679171e8d16e5cfcb7d3fa88a95fb4787aa1b1c0e8894eca3c2a15e0beb";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/es-ES/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/es-ES/firefox-125.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "8aaa9ef3b71276a3bee29f5deb4b0526ca47a8fcb6769987d074684f04eee86e";
+      sha256 = "d6eb6f340cdc86a6fce6850e98267ea5c9e9ffc4ddbc6bb527c4ad2fda26ddd0";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/es-MX/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/es-MX/firefox-125.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "1f85797fc49d9e623324a4fe51e88902d3ddcdd3d4cb0a3f08edd19b70c8c244";
+      sha256 = "c85226374da9da6a45979a7abbdce62276bef6bdc62539297592819c68933755";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/et/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/et/firefox-125.0b3.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "0775246cd8a802f82762921039433b6cd9f5817da20fbb05385d012ac3ab24d3";
+      sha256 = "cf7e10bdc36e2e51c1e38d9ab78f91ddd7150d2e90662afc005ca33518503706";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/eu/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/eu/firefox-125.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "25bdea2a77f7440fb82cec00ac3cdcfe73d9b9f73c2ee8be9a968a50b2b4c90e";
+      sha256 = "3b7195d1ba2925f8174cc66ada8f53ecf3ce7249b3e6f4ce0b8f21e7ad90263d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/fa/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/fa/firefox-125.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "73fab87160c95716b4da8b3f04f7d13aa9036c7882d60a7856aa1dda4c928e2c";
+      sha256 = "ceb919a9ceaa64f45a57ec34a4f5f58ffe8724593dcf3c4f8d0769b3c631aaa3";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ff/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ff/firefox-125.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "d4f2ff849514c55cb04435be331d6d16a9e418317de3481ed4677f49dd163a73";
+      sha256 = "52d59678181b65ca351fd63c7a513744a363689f45074d8a810e9a8ad59d9225";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/fi/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/fi/firefox-125.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "9d6116fdc259c3380afcff8ead9d7624031d80ba2f873e630d86ab8fe8b79892";
+      sha256 = "3d5a97a7fce6e92f8370741e0f6e2337b81510b62fb545abd7fdb24460e97550";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/fr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/fr/firefox-125.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "dbcd97a38f66fb6c3c331a9484639ba089d1ee7887576be67811b6f1ceef5e82";
+      sha256 = "8dcbca9879e1fda4c91eadb802a75ffcec0807878c1756e9795a23a39ddaf371";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/fur/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/fur/firefox-125.0b3.tar.bz2";
       locale = "fur";
       arch = "linux-i686";
-      sha256 = "10d0d38bdfbb5c22a02f55e4a46dec24fd5001b6bbe86cc786e390a60305474b";
+      sha256 = "8ce6422b2910b3dd5486c4d66e8e66ed001ea1a327a0c37d25a48e49011ae350";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/fy-NL/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/fy-NL/firefox-125.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "ba920fcabad22afda736c77f31fc6d9197483e958c510b2cbc1fcd7bb440409d";
+      sha256 = "131c2f88a90922364e8acb6f7507f939333a902ff6d4772a8d7a087492ba568d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ga-IE/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ga-IE/firefox-125.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "31421bf4e085c4ac196938dfd9fc7bd57964edf9d60211a92a968cfe17102dfb";
+      sha256 = "6c867002318384a3e14bbb7c2020b89c466748f186b3661c79fa6d28d86110bc";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/gd/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/gd/firefox-125.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "f4e43a5050162e6184dfadaac4b96abf2aecce7db43854c7a9aaade7db076b17";
+      sha256 = "7cc11fa23d684be0b46a9244635ce54ba090c1d91330d7e7c7648b00d445f1a2";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/gl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/gl/firefox-125.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "0123d50fb36c7af78acb5c750887b36deccf327564b035ec9c2e6a67a59c69d4";
+      sha256 = "a62c7b73defbd091097e8102941a5ae4154d6e499fba9480df783da59d7a7de3";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/gn/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/gn/firefox-125.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "17d2bf565d3ec79cc5ad9c89fd84ccf3ee412c978d5f860fe1abf25f4fb66176";
+      sha256 = "aea955e54cddf7650b0f98fd459a835fcfb32ae747fff89df4ddee800033cc74";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/gu-IN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/gu-IN/firefox-125.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "1269a278efb2ece6f0d07cfbbf3a632dad018320feabebe2eb82349f4bb855a5";
+      sha256 = "21c69957f3b934f4b686cf9dfa302288acafdf73d10d6b1c397026ac41953cee";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/he/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/he/firefox-125.0b3.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "7cd523d54bcf67a5b61d39ded21e2172c27ca772b422ed2d0b2bff63d4e1bce3";
+      sha256 = "f360225c9becd764fff98db0d81affd1783187fcea73f5fbf5ec5156c8f973f9";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/hi-IN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/hi-IN/firefox-125.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "9a5b1c15a41d3b176c6a5e2c516695de601fa71d0075ee96e6f07a9a610015cb";
+      sha256 = "894b03e94b3c91e9ea93b2c7248fdc566f3ae5ffd19f9287e89eecf5734a2276";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/hr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/hr/firefox-125.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "2e6516a1dfeb983fe22378160a212ed70fc14b062728d297eec52b241a51f324";
+      sha256 = "13e363b6b0b6506418ebaaa1629156ff6307949e25502e9696b8faa294f9917e";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/hsb/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/hsb/firefox-125.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "f77cf0fa3f7d2080eb6761671aefe0041c3d2c516b72d8ae6d8f81ed03007ed0";
+      sha256 = "22d5674f5eb70c3a6caa7379b689cb1a1faa4039f2e4db6e0dad3a68bec91b45";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/hu/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/hu/firefox-125.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "d0ee83be5bac2cc71f4991d5a032912f71d382c7f7ae5a668172cea7e9301c9c";
+      sha256 = "11c1917b02034478901251890bb43a561f40262f2363dc73787b500a7d50e1ce";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/hy-AM/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/hy-AM/firefox-125.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "4a7d3dc8a8184cebbf041777cf65e304c886398b90b27b2540021221a7363056";
+      sha256 = "f231b52f759689f74fddde815f5bc7a44af4fca06179f4c23a6252436262239d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ia/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ia/firefox-125.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "30186ea1499238252c4f918f5ca76d5afb576d15ff21d029d31e6f6f6b541196";
+      sha256 = "b5df62632efaffdbba5afd0319c945df1e194472d9f06dcab1f1937c01fe5a01";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/id/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/id/firefox-125.0b3.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "d9ceb73e188a90710fe8c8c9b4e32dda51ebf37a02787bc3238590154ea426dc";
+      sha256 = "74d936926244d3f03603f1b09677adb084f84900d011a6a97371f854348b7ef0";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/is/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/is/firefox-125.0b3.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "ff38b84ccd30753c006597e01ac66ecf2ddc3d3f95116609c53610fcbe9937cb";
+      sha256 = "a972076dade79174845958bf4552aa1b215a0a67e025f1e699cc3fd12f763e66";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/it/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/it/firefox-125.0b3.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "3eb74a0a81a220a2f95318e0db06edebe7bd8479cf8f81d0f4f8c2c7adedc149";
+      sha256 = "7fcdf37d52780d9c1f014eb92e39409f23aca3f72ee78d0df99a0141665be7c3";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ja/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ja/firefox-125.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "db4d2bed4c3c734b01b6705a9dd53994232edd982890eee692030476910dd90a";
+      sha256 = "c19ab21acedb1cc882159ae8ed6a0c20fdf0ac07bb618d77d65addb629a6b971";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ka/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ka/firefox-125.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "0d0d6b513949fd0cd5a586533863472ffe62d4be58d22af841d30525c5190674";
+      sha256 = "9da3e50153cebabfdcdfe6e086b7adb36482d6fe09f9cfb2760f2149ad5f3012";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/kab/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/kab/firefox-125.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "0ccc4e6d3c782ceb99a6ceae54d973c8d88b3b5d9fc6bb618624c1fa7b597212";
+      sha256 = "3536bdb2952cf5506f2fe6414d907cb268edd0615e69195dab4588db74c56335";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/kk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/kk/firefox-125.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "23d0a3e6824b0eea903dfbe98bf6876ee53c2db3acfb5632d662f4525bae92ab";
+      sha256 = "6f302ad5022d94da85e423b7874f587e5f7c068f568ad8cdaa7a7b47817705fe";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/km/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/km/firefox-125.0b3.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "02dfd503a62e28aeb3dda3b09d6972ec327d238f0f2ef64768705c72e8be7bf2";
+      sha256 = "811430e35cdd001640cf2b1cc68f6f42d41ae571c98e20e28bf977b2b6eef909";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/kn/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/kn/firefox-125.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "e07d9f8b2c65a53e485c1fb1a0bc4da6c97cc08c4b458ecb9d506f70d2fdecb5";
+      sha256 = "0de47d50e50cb4a5979deddf871361ee7e9adfd79599a602c76edf76241d23bf";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ko/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ko/firefox-125.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "b1bc1228711c61aa6661d6d7bd8c9dc14633b91e39c01c529509fab1a694dfa4";
+      sha256 = "d472e88ef2c6d2f4ba25a1a73026c9fdf1ef594f49a7635ee86dea931a340572";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/lij/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/lij/firefox-125.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "25b6aaca1a0fb110d7c1d0cecc8e33f7547a751b4b3a0f231c8a8d7f70d61650";
+      sha256 = "f2434b54653559cfc17932d6fe08fbc7a6e2183f78b4422281408014f966d7bb";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/lt/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/lt/firefox-125.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "ac056502aa4f2bad9a3546e137d998092a68527cc6be43bd9d6968639755aeb9";
+      sha256 = "ecb756b42c5104c9e71bf6c9a8b58a4fdc4bfa32e557f9725893927937ae0be3";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/lv/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/lv/firefox-125.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "68b6ec84d05606f81f297b4b1ff16a2a1dc8fcfedb1cdc767b7da2f510b80e25";
+      sha256 = "f794fee3df46b154d7707504d7c0fb577d68218775dd8e38bd4c2fb9b286eef1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/mk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/mk/firefox-125.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "5f942d4160e9f90aede2ee9b3b13aada7255e01deae66eba68573355c5217b35";
+      sha256 = "23304ef47f7cfcef4d7fca52385497d5df174a7d73339bab646330e81fd43794";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/mr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/mr/firefox-125.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "840311613baf8efce83f271c7c83dfc6d77697496f98ffcd27dddd8a2120f928";
+      sha256 = "beb32cba027a126b752cc1ce2c9813eb99dcf9dd63345258cf7cd2f93033e7fd";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ms/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ms/firefox-125.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "a1d3e3591d229f57a2a7e034a3f8b94bb02732c0573281cd6fe4246f438cab08";
+      sha256 = "04e5ca1b15ef78c4e55e4620892dd0674d6933cdbd9c48ccaf521287390bc8ce";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/my/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/my/firefox-125.0b3.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "69beb93edaa85ffef9522a9ea56e8afc88a2038650574ae800828ab85c3780e8";
+      sha256 = "c258311ad0088bd8a07da39e46f8d6e91cc68b9c1e74bea6a44ab783ba1e10ce";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/nb-NO/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/nb-NO/firefox-125.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "3f1b794544cbce7dc677cb8c9256bea073958a4fd1aa959fb08be9d95bbeb885";
+      sha256 = "38c9ef3b0299cbde42c3ed200979b80aaea92a102b060ad9713986067b4db2c0";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ne-NP/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ne-NP/firefox-125.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "8b9bc5f41692289eeb8e9467347bb36bd49b7fd9a953f20083d265283c0f8fec";
+      sha256 = "a2f3bec65e11ffc04a3be15c06e95fcca05ec3b029380b738c4fa28498b5aa9a";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/nl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/nl/firefox-125.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "9586b5dad0cb92829bdfcfd62bbbf0063c164f45f6f32c20674893eccc5bc87e";
+      sha256 = "8d7034d31c094653dacff4d17ca98990088ffea0b2ee88559638da9de1ac761e";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/nn-NO/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/nn-NO/firefox-125.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "554278e0e22a6ee6cae6b97af98cf431949994d67a3c45e3d014c077e535bb80";
+      sha256 = "5a28a067d6acc3a60c4e64f017afa9c6281544a3cc03447299470f7695b1390b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/oc/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/oc/firefox-125.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "7ad9b9fe11914a409e6399e382769d5714cda263369ecce9623eb48473b21f50";
+      sha256 = "d3e22b27b21137d86b58670d6df486db9f45e7bdd3dfb40fdb673b0f11a8414b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/pa-IN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/pa-IN/firefox-125.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "e7aa0ab0df162527d0f1c732557f2167f9db7006f0594159525d16332a9955a6";
+      sha256 = "0fde3869466c487f79b9d88b0b3940e9c6369ac079b82a3b042e50045c4a6bde";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/pl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/pl/firefox-125.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "dcce2bb444c3cf0b87e0287b16dc4957fbcafaae54cd2544e2b4b5cb2b97c84e";
+      sha256 = "d78977050b2bd7f6f4d9af8f4fb0b4fa3fc1d4ff8bd2929044e22d43e17caa5a";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/pt-BR/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/pt-BR/firefox-125.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "71e547acf97d111ff652bef1cbda341b15163f6d803ebe22ccf1453d2f561c02";
+      sha256 = "6cdcf2c18f4eb538a764decccc94df421ba23df75e8bbdb5ac2cbdeb47c3aea0";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/pt-PT/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/pt-PT/firefox-125.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "dc2897cb329190a51974759cc2e89d0c575e8a1870cfb262d1409d274508f05c";
+      sha256 = "74b2e5ebec3e3c385616555f9e0ae6be5dee74f12f58bd69e595adfa7ac87857";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/rm/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/rm/firefox-125.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "d2d40be605511153cf23f414096f2c84a343296f575f5ffe73a4f473fa697514";
+      sha256 = "e3d5269f2a73b98d7ec80a2126ec410ddcdaf79c8074be3b3b7341371ee0a254";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ro/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ro/firefox-125.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "fae6d516211ca709c302c422e7a41c0fae50cb4b4a99ed6004c94b374ac759af";
+      sha256 = "96baad86f7a9b6024a03a84d050a806d2d1f25549d1c23155da9d00d1f59ee03";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ru/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ru/firefox-125.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "d9fe4059ab150b9dacd0127033830e14fd9a525ad55871d9d85132637fa05231";
+      sha256 = "2ed0333b47c491f32a945b0a72a5033118220719c47f75430bccb1c5ed9405a9";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/sat/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/sat/firefox-125.0b3.tar.bz2";
       locale = "sat";
       arch = "linux-i686";
-      sha256 = "348dbbf5d660b8792550ef382ebc950bd592eacfd4d7f14da6b9762c6da7776c";
+      sha256 = "724e95f2dd44c9c02643f214aa41610e5a407d8dbde131ab6967930ae5267c55";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/sc/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/sc/firefox-125.0b3.tar.bz2";
       locale = "sc";
       arch = "linux-i686";
-      sha256 = "be6234ee443ed62fcd48b83883a3b1aa8d08bb27e4151ae57ed1cf0a2aebac54";
+      sha256 = "15058d68db7eec89676bd5d022329e413b835c862431bba58fca036ecdabddc4";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/sco/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/sco/firefox-125.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "09300d6f2319d04a1ab4f818267bc07566e58fa3bf61f19ea5aa7846d31ebdf4";
+      sha256 = "64b38d1c78b2f972064d0e925a5ca8015c071f26669243c1388550fc62e4a512";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/si/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/si/firefox-125.0b3.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "be8ff8fefc496f37e26f4085fbff4a17f44754b352f98be9fca234ce2d2730ea";
+      sha256 = "22ec9ecfdc99d65537d5d747777db609142e6dcf11f4963a432074fd0cc8b3ff";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/sk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/sk/firefox-125.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "774899fbc337bf361ab92e81634f3c47f02b7d8332e22571376a0415eadd85ba";
+      sha256 = "ed77fdb9e7ddff80e7040ec7706b494f5289a7588779eff014be71b76ffdee58";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/sl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/sl/firefox-125.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "25b2e5f818328ca37fd59921ed66868924a68293333fd2edd26118ba6dd587a5";
+      sha256 = "528190c7f6bcbadf46b3bd75ea73fe3bfc5a3a302a3b40d7c47d437f03cd5ef6";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/son/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/son/firefox-125.0b3.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "104feb16b580dc2cbee8fdd8d17678db9f036eff957d1b4e50d1e293734270dc";
+      sha256 = "7d2354354273ee8cf0d41082fd3209c8b655f9f5a785a5e255f10eedb53957b8";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/sq/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/sq/firefox-125.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "f33ef83e14680dea66e3401e159be8be324e7eba896f156f17226cb698146162";
+      sha256 = "072b989e179f2dfe9a5a8fb2ee91dd974046a549af3cd2cbbea360c554a41e5b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/sr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/sr/firefox-125.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "8d7c9969490597f1bfbe5f0b373284a26eed2c94255761b94290540eb84de86e";
+      sha256 = "f9b07a4b48ea10d17cea8554470f33eef851fdaec692ddad37216f77bd7f4e1b";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/sv-SE/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/sv-SE/firefox-125.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "15ed3a7a62a46e9206321575119613997e85fea8e97a9a761456e53d825a652e";
+      sha256 = "2f75c5a62938a82b618c4c78e46ecc1d18d2afd61a2f0a130901e84c97c836e2";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/szl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/szl/firefox-125.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "bb4996c80d9e035cda965b2a817e2b5c9735ea8ee22407dcddfbd41d21d9716e";
+      sha256 = "02aa521fffc111ea4e0ebbef613d62e6dfa78a8197059dbcaeaeb847f98e155e";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ta/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ta/firefox-125.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "1e12b1d2d7c15458dea4c27d814954d956282309ffaf70ddb69c98e635f0788d";
+      sha256 = "67cd1869bfe82bc84e6e68183d1e7105ffd7c22ef1d1660e52a06e4e64d20ba1";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/te/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/te/firefox-125.0b3.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "b4ff963d688f88eedf43085acfc6702754d25e12f43a80b019de58f4cc2855fb";
+      sha256 = "7f02501d196c8d6b552f488100f066e68e74ef6d5b397afea8fbe363fe0b372d";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/tg/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/tg/firefox-125.0b3.tar.bz2";
       locale = "tg";
       arch = "linux-i686";
-      sha256 = "85223aa30f3e81f204c0256e1a9a6a0c76e9681fbdb3c7474c64626b9ef5a24a";
+      sha256 = "009bd480d267d4c17900f5eecfea9cd574cdd5a37254911d4b1ab5808deabbe9";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/th/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/th/firefox-125.0b3.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "f635bd36bbd753cb3077e03418eb750baa8002a6c9f44fcaf6366872c721168e";
+      sha256 = "e155b423efcc0497abe5c9b7c6c7bf30ce11e86bbbbe239dfc032825433a3522";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/tl/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/tl/firefox-125.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "776710dbfce6eba3bfc624e2711debb03d8a546c191a97c5c4ce9095f47a7aa1";
+      sha256 = "cc9508684d642080f9f9d57306447d92cb1be0c6c506d18ca9233b3fd18a0058";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/tr/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/tr/firefox-125.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "8782b53e8d9eebf17c01c118afff74b203e81b555c7e368960b1bc4eeea58eb3";
+      sha256 = "151b14773653844df91952492caca2ecdb3c29cdfec28bb58d6e8b793557f034";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/trs/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/trs/firefox-125.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "055dd3e5277051a5272ce373054671c5714d2d40e62cedf837a4357d39e4ca25";
+      sha256 = "3499236ac8738ebc23103061b6cca874877f0fa00b3c787c33167ebb0d522d10";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/uk/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/uk/firefox-125.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "e23e6924dc570e08598b0dd0552a3172e107d711a2ca7460f64bbcdaedf77116";
+      sha256 = "fbec6749db43fa6eac93af72bc2ab7a018b91548b7865575f5ddd94e30c530f6";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/ur/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/ur/firefox-125.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "8fb0251ae0590956d5a94d5eb7eff2331df364c8b032f63e817d3ad781b042bb";
+      sha256 = "ce1103ce73278012f0ca3ffabfcc9de143e9b053019b7dc7161d884dec22944c";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/uz/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/uz/firefox-125.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "50da5b255686fdcec917b5baf4414b864c6f8fd55e515d11de2880978b1ddc23";
+      sha256 = "d1f0177e72308cda889ecaa58d4d69663fdf147c024577fb425e64c172670dd0";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/vi/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/vi/firefox-125.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "43fbed358886f514899d631d705a94dd091a862ba54f07a517e464bddbfc01b2";
+      sha256 = "09d01255a2d2a98ef48f89966696fc062f28acd319235a38401882d05ebce432";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/xh/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/xh/firefox-125.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "37e909b0a9f8095699b5275905111d4057c0f3a2be41bb035f9219e349713b96";
+      sha256 = "e4140d3532f4b709e4158a893698c8c217bdd9ed0153ae7f1030490bffccaa4c";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/zh-CN/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/zh-CN/firefox-125.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "db219f41bdf130da6acc1aec907b4c685cfd03ee45f2c27f7942695df770355b";
+      sha256 = "528de6f25fe06f551a20365a0baef55595011073bae21014d6b6f6061e55e04f";
     }
-    { url = "https://archive.mozilla.org/pub/devedition/releases/124.0b8/linux-i686/zh-TW/firefox-124.0b8.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/devedition/releases/125.0b3/linux-i686/zh-TW/firefox-125.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "9bda59e49ce5a7c9fa3834a1e5d5c359d0ea51e6b44db77a909db36be636dc85";
+      sha256 = "2e67545c9dfa9f22965650f63e6ed2d6c8e520e0b3492edbb4d2810e1f26a49c";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 763f77207561..5790d2185a07 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,1025 +1,1025 @@
 {
-  version = "123.0.1";
+  version = "124.0.1";
   sources = [
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ach/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ach/firefox-124.0.1.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "f75b62ef742041554fd8f262f0cf5bcab2cbe1459236bef0609f48098fed219d";
+      sha256 = "f3cf06a01249619b589902d80958597fcf34b204fa44d0b28f7dfd1e483661ba";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/af/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/af/firefox-124.0.1.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "cf2c4764bd4c2bc55c29d5ce57931776e369da735f2ae41c283d83e27bda7a79";
+      sha256 = "9d6f8eee7cb6973f786f75b0fa353ed0a05b9a11d9a5341b59af625ac32ff570";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/an/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/an/firefox-124.0.1.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "7addefb080a8b8638bb6768812c5cf3a15ec59cd42c9e545c285c648b1c554cb";
+      sha256 = "f65856aec3e2976e71f82e466b785b947d783052b5fd1e5e69f0c397af9a8dd3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ar/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ar/firefox-124.0.1.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "b61ab0111db5d27fd692438f7ce8e744a21c7a767d09313eef28e8e65ce1d298";
+      sha256 = "2f1d3bbe747686a17b3165e04b27ff2baa75ec8744ea185c93e7989b717117e7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ast/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ast/firefox-124.0.1.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "1cfaaf5b3238a62a91ba2d44ac354cb39df667c69c216494182eff77f318ac43";
+      sha256 = "6e9cc69720b7c839f5588371fb76d27b36230492a2018d039870f37c37e9cd4a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/az/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/az/firefox-124.0.1.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "63f5e6237eee5e43602f363731ec1d0978a8dc3e13b501bfddd38ab72b971ceb";
+      sha256 = "3dc89171eacbe159458be72dcbe5f407ad50ff9449d555cdbdf2cdceebb4d2d5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/be/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/be/firefox-124.0.1.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "a9971112d84ea66fb16dec059d2865ffef4358e88da37bf78f0300f71c30bab3";
+      sha256 = "3e2f581088dd06e81e22e4c950c3f2b9a3a7e209f169c6c7b6ea9274c4c8d58b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/bg/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/bg/firefox-124.0.1.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "102814f934565406a17654c0022289b70e82aff61f90b5be6f89ed42416f6baf";
+      sha256 = "11fea5e2314bec874cb30c81678d37f05a48dc69a2184fca57e4c643d3e40dde";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/bn/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/bn/firefox-124.0.1.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "68d7a8a1ac410d934e5321886a8d4bf2401210225a220a8f531bbc0dd2fee746";
+      sha256 = "5b927efcca6ab98b9a948a5bbf2910a24017757b212827e50d93ddc2946f19a8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/br/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/br/firefox-124.0.1.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "ca451e59b8f95afc190bfd045dd63bdc6fb0133cb837cc057cc3475f9075275a";
+      sha256 = "5230ecc73d47a2694dfdb74c3266735299ad882f47bdbd791adc1e21e7ff00e3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/bs/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/bs/firefox-124.0.1.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "fe080c32810ddffcf764a4d1df644993c1ed6160252334bda72da89307a61539";
+      sha256 = "d023afe13923f4004e399fe8222724137af281ebfbd0a8b38daf4dde3c65aea8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ca-valencia/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ca-valencia/firefox-124.0.1.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "76c57269959be413fb640d90fe6b3085c395180074e7b44fbd6f9e13dc8d1650";
+      sha256 = "f64bfd62fc11046f44e9aedb3126f7d4d4bf1be8e45bd0d2309d5a368b820ac9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ca/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ca/firefox-124.0.1.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "7fceb4101a2c29d08566fa5b0cd1e75f2f980c28997d7ea350c24fd0c5119f87";
+      sha256 = "979534b9f4ef30f99f1b0f9667bc562dc11190a63ce943781cf2262e05c89672";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/cak/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/cak/firefox-124.0.1.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "a20d06868da8287be80e87ed9f7300de1d94254052ec041f46ad2bf98b570563";
+      sha256 = "0956c85721673e7ea41eaff753aab77c6de7e4cbfee77d58d33258f6e79a494e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/cs/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/cs/firefox-124.0.1.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "dd7cad292bf0e355778f0823846da1cc71b08c4ea911d5b33ff6228d5baef1ca";
+      sha256 = "15947e251c30871dce97d79462508de992c4f1811e10dd7dab518d3ad66833ba";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/cy/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/cy/firefox-124.0.1.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "e0efd70a46747b7cca69d87f90b1fd220b0c9026e0e27d2e9e8d0a030884e56f";
+      sha256 = "90224203e39e5ca8bde25aa5dc42b955e3eb966f7f363f0005cb3f05b1732623";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/da/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/da/firefox-124.0.1.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "410095c9ad4505fd9ba4d84208a8947a0a3c40a68766b73349fb2c3a56e69082";
+      sha256 = "8743e9c45acc0db1fbe074519e28871fde0a347b330188cc127c7dd87a5b9d19";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/de/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/de/firefox-124.0.1.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "5d18db69a349db7cdbe629ca39d725c6e753d163f216d3162a4f6ac84ce55585";
+      sha256 = "378eedebf7ae3f0f9e3e1d6562e3923f8068e6f38a56a7da61e9e74a138cf047";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/dsb/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/dsb/firefox-124.0.1.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "11afce2b590cf31d1f5f51945f469d7183262f949928709cb45290e4e93b6a2f";
+      sha256 = "703f6fdcdec2258c36310eb4ed3989c408d1cb4666128b57aabe64ca77e6c4ca";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/el/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/el/firefox-124.0.1.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "3a8548f70d3463542550a226b9ba85b3068abae11eb657a42dc73a7eff0c58b6";
+      sha256 = "e1bdb27a824f1dac9414c0f5b1c67046bbe474147b4193fa3170b763155015ee";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/en-CA/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/en-CA/firefox-124.0.1.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "b8242176ef80daafa16ecb4ac993d2d7cca759e80c6b5ace87e56bd42293b053";
+      sha256 = "6bfcbf8e39267dd5b8004ab6e32409d86f6fe86561204b51f415fb6d1544699e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/en-GB/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/en-GB/firefox-124.0.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "1789b98be450b4ebf208ad423ed1c40e561767a13a1f6955d09632b26b3f3b16";
+      sha256 = "f87bd6e91ef6b9099e7a88e65c64079c91d20946528339a82345a72964a23714";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/en-US/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/en-US/firefox-124.0.1.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "3b8534ecd870f25434fc7ac8b7a26470492484f24fefe3be8eed0b41db52fe43";
+      sha256 = "b419cb0a10f6f601b1066d75f57b10e378f56b961be8c9dc1c7f73b869ecf82d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/eo/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/eo/firefox-124.0.1.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "3da2623bf337afc22e0334b995cbd09f830f25926556970375e9bef1306a90e5";
+      sha256 = "e047927587f98168bd81e5daf6fab8237d938d03986bc2ed30f805c7f0aa0839";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/es-AR/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/es-AR/firefox-124.0.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "c84442c32bb58894af9b5eebc5a229722ca757c033f4b0d23ba9bfbfddce7bb1";
+      sha256 = "9ad097b7a11161d92d9bf352cfb6220acb714a259182316ea05c57f27618e1fa";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/es-CL/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/es-CL/firefox-124.0.1.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "4b0f1baefa170b16ce4ad3952a05c00ef4ddc425f035ffb5fa3f6af9acc63413";
+      sha256 = "08187529717acd6f13441ac45102276189cd9eae732e0f51a8cdc9b0f00dd664";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/es-ES/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/es-ES/firefox-124.0.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "044042e9d34bad55ac16ebceef5fa9dd81db804e366e93a501bb2a18498bcc3f";
+      sha256 = "6296de65f13e6e7d5e2112e685d15a82e4704b0723877abc0cc885ec315d7de7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/es-MX/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/es-MX/firefox-124.0.1.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "40fd50c417335e058f1997e7e7e6c825917ccc9edb220c29aa980892bec5401d";
+      sha256 = "301af81702beea052bded44dbda27df0d2f552b388769f63397401ea218ef8a9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/et/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/et/firefox-124.0.1.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "969523313c595059bf5f4842afd046cd37e3cca5afbcae217363cbff49c52688";
+      sha256 = "5a658938a52d4ddbeccbdf79ef4275e7155d8c0236dbb61e3f7f055edaa6a00c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/eu/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/eu/firefox-124.0.1.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "987e7f1ddab0028d1fd6e363bd589b20a9aac36d8a26c228eaa7c2589ab5cc98";
+      sha256 = "9400df8c445819089a6ddfe3df2f943eb13101e17eb91fbf122fcd7aa1959ad2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/fa/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/fa/firefox-124.0.1.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "06dca4a2bbfb9692c6de387984307d4c49451a171883cc83be5aec9ada973a79";
+      sha256 = "8da3b22865e33cd9c29a9128f5974b64c4a5252d22f126764a208cf3724042ff";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ff/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ff/firefox-124.0.1.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "690d1d88442ecd7076f14199a3e3f618a0b04df7563fb9952425da4905f63b46";
+      sha256 = "96ab917494770020c315d432f22775a454ca687df83b4ad5977a5171485016a5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/fi/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/fi/firefox-124.0.1.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "32df70910840484a491dcf7f61d5f74aa7bece6686647cde0eac21999dd05152";
+      sha256 = "3bf62c684405bea056ed3b73445821414665b831c53947c7de77e6b10622473a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/fr/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/fr/firefox-124.0.1.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "c1000ee35209f8d873c1140eadd0a880aa2f8e5bcf9b81c544aacfb0404be2ef";
+      sha256 = "86788faeeb15494d930513a6e176ae29aed559d882b9923ade69b57cd91acb84";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/fur/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/fur/firefox-124.0.1.tar.bz2";
       locale = "fur";
       arch = "linux-x86_64";
-      sha256 = "cb0c741b78c3502cb0443ca3776c87d8a08533daa77c7982ef0e6dce165d9e60";
+      sha256 = "caa352ab582f4ee21caeee6f38df93687a646b0ef89a377cb73fa6e08a44eecf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/fy-NL/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/fy-NL/firefox-124.0.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "2e476fd22368e8f650f58a1801fdbe6a37b012036681de5d664952ad349ff496";
+      sha256 = "b2190bec369eac8b10dadf4206b704d75d1460184f2b6ffcd200696c938f9170";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ga-IE/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ga-IE/firefox-124.0.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "3ef381fb76e9ef821b199f2a6fffbe4a8909b4062d51f5f3a140740fbf493cf3";
+      sha256 = "325df07e29c3ea9ad4c29aa9fe8e31116f1262bc38d68dc3892e47534c72ce37";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/gd/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/gd/firefox-124.0.1.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "f4e3397613747b232377cf7bb85c14f12e64a28baa8d332a97f45da8a9b98d61";
+      sha256 = "b542ce27357cf01eb9ed1cc4e0f1ba2803d3632d0957b9e1e4cbfab398762063";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/gl/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/gl/firefox-124.0.1.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "8844502e4f7df3275f31b342f8236c01d44923e6a8492dc863664ae51adaa1ae";
+      sha256 = "fbf0611d592bebed40becca14bfcac6fa9a81ca70ec6aab6cd6115cbd677ac5d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/gn/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/gn/firefox-124.0.1.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "6975eeebefdfe593335d209610eef81d71eacb90a2515f703132d20eaf76278a";
+      sha256 = "db6c303831341c50dc7ca02056aa7ce33c216ce43f4f5f3c007bae008a80d40c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/gu-IN/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/gu-IN/firefox-124.0.1.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "38442209d23b9971202ace24aac5019802ced71d0575c44e47e349a81f043a55";
+      sha256 = "22944270dc71bb6f2fce3097013673c6c7605f1ea268addd03e3fff26b8b1640";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/he/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/he/firefox-124.0.1.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "b71ca8761e6264b4c8aec18ecb56aeb142d578eb8f1957ac5246183480e0b956";
+      sha256 = "9bd51e9bd330ae82de70878d9daded75cba723aec24394e12ef5310a00dbb802";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/hi-IN/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/hi-IN/firefox-124.0.1.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "4496189f9ea47b2f45c24c01e1b357c370b83fca125fe91a57dcc847ebd9c5cd";
+      sha256 = "a94825e082b02f4f6f66601175994621bf757f840d78074abb144044ff96a0de";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/hr/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/hr/firefox-124.0.1.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "80a4b79b479668ce9527098571730f51b76e0122f3546e789a476c6d1ecdffb1";
+      sha256 = "f35f8733becade601bf0145cf59ac881e5bae7f2b27c9fd15b7270ce170da7cf";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/hsb/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/hsb/firefox-124.0.1.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "5ee3391ac6672bb0b948eb7dfcbff2db5e5e7bfbe4affbf70774d7d36abde78e";
+      sha256 = "c03896e5761308c72d6db811beda9432ad5ae69d1467282272d75817cb37e83c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/hu/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/hu/firefox-124.0.1.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "45f8a5d8f074b97e1b9ba48dff8ce31d50f377e2699c059592c4e63b3913e51e";
+      sha256 = "2557f4c4960d919148eb8ae4f33de5cf3088c81a560d6180f6bcdb3c8f91f0fb";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/hy-AM/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/hy-AM/firefox-124.0.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "dd54a15145d9daa98a61671fea89a897a6ae2628e3c49869713ad2e116f2a806";
+      sha256 = "8968d6522f9ed6f7dc2ac4420fa7922777de1374b0e5d7829253a2b0a2662505";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ia/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ia/firefox-124.0.1.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "cba0e9e677e37e689b88b23412b7271dd434935325e8e262544b53f25d71d7b9";
+      sha256 = "c24c2ef713be3c4e6fc410b98f2164fcd89c3c265a5b2c374de6271edeed3994";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/id/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/id/firefox-124.0.1.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "a98ee6411b0dc5ce0ec54bd49987a29333f10962582e86f2170accedf10628e3";
+      sha256 = "59e6d5ea01b982f1322b5b156d3b89c43bf742f34b3a9503018b3cc2c6528b2c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/is/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/is/firefox-124.0.1.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "c6959761101a9a2d82f97346076b26a5b45c61158f3794e8214373833fe1256a";
+      sha256 = "3668ba9e603b677b3dd515d0f9c6827643a880c99bb434579fc46a8a5fa82203";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/it/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/it/firefox-124.0.1.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "003dccb5c74cbfb521a73cee1a1c34954f86be047325f25c205ada9770e2ecf0";
+      sha256 = "4a481f75aa5c0ba129fa478ca6238f9b0d9ecce8fb1b77c068723b708b509966";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ja/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ja/firefox-124.0.1.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "5cf4c2763dc2a0e7cc9aef8657e38cbd173d4b627457783c49e0d172ccf3f57b";
+      sha256 = "c00063d5caaec78e66215c3b888d3aa37e890d54d731d7e4369c14f254973ff3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ka/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ka/firefox-124.0.1.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "71c77304997fa09e74713f2eac78111cf205b6765631c3c92dc78a4dd544411b";
+      sha256 = "2715a9a1e28d676c3b9c4443b1348a77eb781f97e6486c4d3803506e448baadb";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/kab/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/kab/firefox-124.0.1.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "ad819f057503ceb161e8a5fecddfba338b75b32cc314f12bc9cc80a5680f5fa8";
+      sha256 = "53dee9ed4362ced402ee20b9d036e538745e3563b2646532b945f1e929fe97ae";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/kk/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/kk/firefox-124.0.1.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "c954182c207bce777b90528be9ba7af3643e7a79ef512d6f2265cb1a1226048e";
+      sha256 = "d61f7cc878b39fbf99733e797c990e55aef2c64e3c4b6b5c130f3a7be2e276da";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/km/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/km/firefox-124.0.1.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "e15587382e625734740b7aa145d640f56bf31cf3584f54de6175e53ac42a1ec4";
+      sha256 = "4c97edeee4d4c5b0b8ddad40a7d9dfb7f4152683c34e770ca2682e5ad4e7df7f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/kn/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/kn/firefox-124.0.1.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "da37801da2162e0df19c3f3b4b5915c53145a75db257b389289fde08c7fd01c4";
+      sha256 = "cdf4606b63cdba42ae540f2b0a6c4f35463c415f477ce20424fbb0bff0263c28";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ko/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ko/firefox-124.0.1.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "281f13b06cdc6676ebbced34c93b51a5063925b3c9c99c79044870cd8e54b85f";
+      sha256 = "c41e95608f7002eb168cef78e0495f22e9cba5719cdaaf2a7b73fdc8f7b938ad";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/lij/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/lij/firefox-124.0.1.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "bf8bfd6646eeaf2e230bf5bd13f75ae954e5c2ae25a762b8f1d49faa79123a9b";
+      sha256 = "fd1202613c6a09c6d334324c3b3b518a299220499c02b12ab852a1622ead5437";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/lt/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/lt/firefox-124.0.1.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "908b4781a1859e974ee7b50235498bd1405f9d64f2c4103a5c8c5e0cc7bebfef";
+      sha256 = "277dd986c8b4ff586c585721c21ca00f8f5066eb29afe8f2a4cfccde6076758a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/lv/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/lv/firefox-124.0.1.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "165ae2c28cc10498fb49b954a991a46d48616b4f0efa79b86ca4f9a6c02993e3";
+      sha256 = "c3b74e8c7f773375c328ccd850ac9682a8188ebbb38082e6d0533eb541cd8a9d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/mk/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/mk/firefox-124.0.1.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "249e4c1e4b8d0d20a3e36079e68a408fc156517fcac74b848af0c8d10a9b74e8";
+      sha256 = "97a52d92cafe3458e7018a681528c34c860c245ad6c12b83fd0e71561334bb8b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/mr/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/mr/firefox-124.0.1.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "74bda8b7609bc718f718af429be6a7cf69e29d998cb1456e0ba83f53182f598b";
+      sha256 = "a833f157fcbb9d6c53b97c14b53286ee44aae494b04f8f3e551df7487c926d87";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ms/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ms/firefox-124.0.1.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "dce41631ab21a218995fed4f4dce00340086f745de9d6225ef6ec6dbf0bcaff5";
+      sha256 = "5ac6e260d13e51331e37f79abde8c1b3a75205d79a8d5424236793101aa35abc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/my/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/my/firefox-124.0.1.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "46440d3fe90f29aaf3f61b7a827c33a2b0ca61133c21deb5c466ed4d1142db17";
+      sha256 = "fe56cb9765405b24f726150b62e06461a2c8a8ccdacbeb66a378f8f4567141bd";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/nb-NO/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/nb-NO/firefox-124.0.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "695944d2717b0c818a2285b0cb3032dbfb7ade9b33005a41cd6ae3569e422ca5";
+      sha256 = "45562c238bb2edd7337d875e2747c536bc04929f930b17a69214e5656c63f8fe";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ne-NP/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ne-NP/firefox-124.0.1.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "ab86235bd22026f9f60dc20f0bbdb0c5e746a3fcf2ae82547f2d79bb6c45191a";
+      sha256 = "1bf583ab7dd78ec09354295f0965b4aa3e591943db803dbd74969c5a47c8dac8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/nl/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/nl/firefox-124.0.1.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "b58bc987e8abdc0de3e22f2389f1833d869fdb71d30d140367705f87b7939e77";
+      sha256 = "98f0f741628224ca361bb10e17e92167d6269493913e0554ce6a0d056122a8c0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/nn-NO/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/nn-NO/firefox-124.0.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "7a9cd93a1991058c026b8dbdf8d71437517d843a981d0d5175594a79a94ae6c0";
+      sha256 = "6ace54426bdc296099b140fac5bcf477522a6229f81569b0549f421106a19d25";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/oc/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/oc/firefox-124.0.1.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "9050a3ae7630f7a1a0ccfe1e11efdb5b532465695ce7ed64832a876aac844d61";
+      sha256 = "18dc82d54f51b4b7034c58f5db2609dcbd560a2479e68c96e947f54dca0565b3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/pa-IN/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/pa-IN/firefox-124.0.1.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "89ed73edd4b30070c359578b3d661bd1a7d4a918caf99bca0002c1b154857d50";
+      sha256 = "77c30313cc4f415e2c99ca72f5b21a318ad54bdd15b9b21ee6891e34c6ff239e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/pl/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/pl/firefox-124.0.1.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "a7c167c226655f90635607438d80bd4315dc74e05cb3f25cb4798b4e29f4c605";
+      sha256 = "001b136f11b6dc6fc940eddad2cce6d46fb51e5824c07b20363031c7289739d3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/pt-BR/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/pt-BR/firefox-124.0.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "ef2cd05b23bc4e62a3842e2b6b63c39f59376983f083ebeb6aee5835c98075e5";
+      sha256 = "56558e84fa9e333cbf1e55172c11f005bb4b54d35b3f00224d95c099ce041fcc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/pt-PT/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/pt-PT/firefox-124.0.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "7ee4f96ca552efcabe88af740051e221828d1ca3fcec3aa98638b5a3e5cc783f";
+      sha256 = "47af2a6ff3eb19ebfd5b7845205b363b942b1d734f838db9a101317a4fcbf353";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/rm/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/rm/firefox-124.0.1.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "0c94128c1c61eca0d1c0c265e02325efa74610098e4ca7328b542123d23328b8";
+      sha256 = "22a65143cabc563185a2c250a44b7c35471978fee6d2e63fc77ca0ff7f592cd5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ro/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ro/firefox-124.0.1.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "402ef539cfd6a2d01bd34f01293d0e5e7e9027b37272e6215475e7bc2b671189";
+      sha256 = "b39056890e2ee424de116b926bfab21232e1c7c001c177db62002bc9ad732aea";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ru/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ru/firefox-124.0.1.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "64780e6c833502553026ddb775d19008fe962ac30d31837e0da336eaffe38043";
+      sha256 = "194ebd35422340b4fb44fa38dd2c453545de44ce04c5d74aa97894ba3f61cc15";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/sat/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/sat/firefox-124.0.1.tar.bz2";
       locale = "sat";
       arch = "linux-x86_64";
-      sha256 = "9dc4711073345e2e57a41e917f86e70b77bff8fc3c44d7048a953e7e0879ef95";
+      sha256 = "3da5b34cde8dd12bcf790130fcc58e6007df19a30a8c3d63ab0d93a70f0cfb61";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/sc/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/sc/firefox-124.0.1.tar.bz2";
       locale = "sc";
       arch = "linux-x86_64";
-      sha256 = "e19b72d3cad92d6ff43dea70a6758d56d7322bbe22caa6a87fd54fa60bee9cd5";
+      sha256 = "f6c464d6134f95914f3fe37b683aebf69f4f74848ca09673eae93a59e29ce66f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/sco/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/sco/firefox-124.0.1.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "c620abf91ce8fc4d776a2d1663a188984616e266c12443b79779d0c2ee9eb313";
+      sha256 = "4a47955e89811295fdb38389da571d77f26efdd499a2154eecd96609ba88e746";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/si/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/si/firefox-124.0.1.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "aa5c37712961877bcbf19e2f6dff8937e7548ba5a2b4ac12aa5a7567dc7b296c";
+      sha256 = "303c451fce457d13c280b5f7645cc867a1890b242e99611eef7bb975179e6886";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/sk/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/sk/firefox-124.0.1.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "85d5f7d997366e38936564e8c31571d224d4bb2736fafa49e531356995906ffa";
+      sha256 = "c160e2a6655c19c4f8b62c2ea528e1e3888a113daf90431927b85dfefe24f78d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/sl/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/sl/firefox-124.0.1.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "b39ba95f5a19c151a662e27f6be7791490bef484b029734d6db5843006e32758";
+      sha256 = "bad57cdf2a375a1a0c70a72f8996d977cc1ee2c785623296af0b68ac3a2cd25d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/son/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/son/firefox-124.0.1.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "d85616b33a72d52057cc9f97250a4fca4d070be490bb5910053e39c6d6747c97";
+      sha256 = "e5f363b74020917b2ed8568d76c697eb29474f742b28c8b5bd65e2256d34602f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/sq/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/sq/firefox-124.0.1.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "a0bd91b23dc4c956a09eeb24a740087acaa57a8b56b898fd6e726d3fdd39d4de";
+      sha256 = "2162070684fe0eba5f1b8ba1facb1fd2b20c74ac9fc8e6ef5a5b3e0ce94cf4e3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/sr/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/sr/firefox-124.0.1.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "b20bb338b1832ed650607f70b8b0b6c2706c4918ff5819036f27ef2da1d6ccfa";
+      sha256 = "ab234185045aa946df05bd470705e16624a90f926c02a608dad468e4eefedd44";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/sv-SE/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/sv-SE/firefox-124.0.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "696de0158fcfbc7fe0b3b7accd3be8454419c5ab256321d22c1be7bdb1b8f9d5";
+      sha256 = "d1b45c59582539583cde7c1f7a6d9744e8262f87bec1679538c034c12f6ebee7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/szl/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/szl/firefox-124.0.1.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "ef78815a24e22fbbcc83a51721ed499e1d83eabe003658704c839d7d8905c6ea";
+      sha256 = "1ca31d53f9f7f4e0eea5fbb2bbb4d560f3f2330892a9def403a08a6f7fa21de2";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ta/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ta/firefox-124.0.1.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "52d36e16b92c8f19d05c499da7d438199d4f2fbea9ebb02f880bb867dd9e9b04";
+      sha256 = "1823948d2f34cabd560c0f83e57a194d3d0c890ea31ae4a601d7dfa71a27505a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/te/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/te/firefox-124.0.1.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "3ecc2c68dbdf2ecaefae6ad4ec2bd5f77d13b8bccf15a2206c5d79a2a37b4d4e";
+      sha256 = "b2958854e4f91e407655e313f9ca51e9fce3383f29a53909eb7ebbf00010dee0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/tg/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/tg/firefox-124.0.1.tar.bz2";
       locale = "tg";
       arch = "linux-x86_64";
-      sha256 = "1956515b09c74da7e4636060a962b397dc553b484ed6c1d62edbfa2ff37dda51";
+      sha256 = "a9ec8a6fd0228b9adad46079c37f452cffd90f4dff41d1b303336cf034b2466e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/th/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/th/firefox-124.0.1.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "125bffcf7ded47b6c212e64ae68fd75835fb6c978bad113ed87510900ac42779";
+      sha256 = "d8f6221e2c8d4c53a2526f3eb581608ea70f4867e6d327df22a879968704253c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/tl/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/tl/firefox-124.0.1.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "166bcfcda73ea220d8054d83813e29bfa983ef9e4296292f414aa7c525d4d2a2";
+      sha256 = "8762fda9690cb5b9c79ba9dee237a0bda0643d5ea0d225e6fe2ed764b53a6f22";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/tr/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/tr/firefox-124.0.1.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "06e00ef3e0c639606f501fea77b7bdeeaa45a40c201fba4dc006fee6e4dcec78";
+      sha256 = "baddbf1bcadca956c9a8363b8bba45fabe467e19b8c00683ea0d962a11155cd1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/trs/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/trs/firefox-124.0.1.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "7ff12b4344a6b629002dd60ce1b1d1e020e6dd5ac38991ee5e0bb5dca677bb22";
+      sha256 = "b4139bc97b3f3809785f2f9735a43c9b9e699b21f3579d1c902284c6fe492f62";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/uk/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/uk/firefox-124.0.1.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "ec028996370dbdf36c13c0bce640cd198e2cae736180d4a280e422be0c8cd71b";
+      sha256 = "b35c44d3afea1c67aadc1b12715671f683cdae2a47682037d657d05820f919ec";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/ur/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/ur/firefox-124.0.1.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "744ce5e135432ab29c8003425254b5c2f5ff04b0afa7a20a08ace52f67dcdb94";
+      sha256 = "92215b2adb57a7428344ac932a21b301191c6362e4252d84d83f81c2022a1394";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/uz/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/uz/firefox-124.0.1.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "b3c0b93926c7e4cd963a75deadeb84a93274d88471408fb6cc552e61731db5fe";
+      sha256 = "f959ef1d40e3b19138ae184164fc0044e71778fe789ac6cd5629140e9259fa65";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/vi/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/vi/firefox-124.0.1.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "2c9226f3de5bd15d223d048b05afaf9ee45df4605c33f1aed7dfca24ee2bb533";
+      sha256 = "93d7043dbe7db562fe7076d604f059bf360de0fc9ebd79b3dae6fb99a7db099d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/xh/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/xh/firefox-124.0.1.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "48b6e5747d8588d87689229fee19aebf418a9f75de913619ceca6bd78b69ea69";
+      sha256 = "e376f2b8dbe9b0b82c150a3878b4805fb120720a13a9a9542978dc97e5892f69";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/zh-CN/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/zh-CN/firefox-124.0.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "f5608061edf267d886640f5e8c30dc3218086625265ae7ea184e2e47c2d01ee2";
+      sha256 = "ed01c6f6576cb6b9d2e9df1d3e36982662afa478569a42d7a7f656b0bdf224a1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-x86_64/zh-TW/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-x86_64/zh-TW/firefox-124.0.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "acd09f9b95264eb45ea5bae3d9488e02ddae6b7058965b8de9986edcf0e0a77d";
+      sha256 = "5b01e3224e54ee672170db945b3ca4b3f1bfc0a21d9e34def1cbad2d7be6232e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ach/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ach/firefox-124.0.1.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "4d0c665a61fddf9ac61131648a324b7948ab2e8f6af13e7ed188b00da7ff43d9";
+      sha256 = "e91988bdc4f806abf775e0d63c591cac9ed1f31abed6b1d06b5d3f6e6a1d8a17";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/af/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/af/firefox-124.0.1.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "d2842a2e3209d82c3061fa9a9d4f50d34f526025fb35185bbca7996fe48bb0db";
+      sha256 = "f0f64cc0168784df441cdb5fd9aaf6f1ffb6282a6ada9fc6a980e56e5ac6c16e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/an/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/an/firefox-124.0.1.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "762655f9ddf758370eacbfbbc99c765b1e38ff76f01dad853920f43ce501d964";
+      sha256 = "c583abe21e42e4f1f215db97090046bd12653a838ecff4776b54cba598c0d923";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ar/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ar/firefox-124.0.1.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "48375bd6f8468c19ad75b0ed9af3a6876f168ac54e92946fa2ee7ffca5734d97";
+      sha256 = "23fce3719163d666b57270c6ecfaafb0f0b7a838d1f4a4fbdd00dae3ec9d6f8a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ast/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ast/firefox-124.0.1.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "8c08795156f5abb31583e0bfbde799cc8ae59af0708a9ce51f493f7fd25a9815";
+      sha256 = "e1a92c72e55df6ad72b364168962a9a7a380657c03db1b1cc90a002c38c37380";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/az/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/az/firefox-124.0.1.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "8fd37144314defb7a619fda9c2c046a38010e9e484dfe7e3eae8d05ffb6e8ec8";
+      sha256 = "3fae8156967f4620a6168d5dcf37b8b0c83c853d7ed6d89d97fa47e2a803c63d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/be/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/be/firefox-124.0.1.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "c02548b20eb63470996c48d7e1c8f20c1190885016553df43a567b284da98494";
+      sha256 = "f321dcdf3b7b792087f0dde1947e5139119568b8b149d0399a2309e29b786c6f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/bg/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/bg/firefox-124.0.1.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "35b37062c04e3f09ebe01507129ff055e1c03c370cdab86f10147c5dcb3c8a18";
+      sha256 = "2fb2cc8b12d4136837a7d35669f930a3d777ab0da7e4353463fb83059f7bf7f6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/bn/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/bn/firefox-124.0.1.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "863664b359fa105d10aeee1406f4b9c676b51591ae8c7f1f711024617a75cbda";
+      sha256 = "daac2f43f859013d0dcfe1f8e517945635441fbad05142199a2ae52a51b76da9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/br/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/br/firefox-124.0.1.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "b799947741eb130fe9de449751fddbea7df646374d9f25e36c015d789bb957d0";
+      sha256 = "a7ed357fc4e04e699370844de7d018aa767426712a23851ceab5b361112a3c2e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/bs/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/bs/firefox-124.0.1.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "59139a0284d412444c52f6e740e145c1119368de51d53f544b60e46c8cfe5a99";
+      sha256 = "f07b73cc2d016d7b1c535e3f49e328d4b1f5812b3712f6f3b5d7c403a84a8dee";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ca-valencia/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ca-valencia/firefox-124.0.1.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "4061fe9e39d668a99ef633f6a1de0c86b98c9ab2397fa309cf6fc855624c7862";
+      sha256 = "a1a8c11d983abd15e599a4f1ebdd9c4c359d3c07d6f9ea2c133ca115bf9bbcbd";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ca/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ca/firefox-124.0.1.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "38be38bd053c5a77429a1e645e2c7b380c25e04c51f8aa180053e73e4bc2ac55";
+      sha256 = "dbe27d0e7825f51ed218350e74ea8765920975ee52f00746e99e69ee4aab0430";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/cak/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/cak/firefox-124.0.1.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "d0fdce0349a7c28a46457561a750b7219b26af9fef51d9ffb2cf0ffcd52500f6";
+      sha256 = "6128eb471f114f1e971b463b6bb196b731ab75d49d7534803e433608a967e5c1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/cs/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/cs/firefox-124.0.1.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "bbeca20b9218d297f48258bb4b12e63b9568acaac09f482b5ccb17c554a8fc0a";
+      sha256 = "8d5c9ecaeabb1146b305f80f48f4f4d5f72f7343f0494fc10b6dac975b8a6a46";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/cy/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/cy/firefox-124.0.1.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "b3f7f2750b3d8caf498e8253f8e1fdc7266d1df2a4bb1502590731c7cf8498fd";
+      sha256 = "3cc49e2dd6c253ebf6d95eb1419330868ec932cd171c64902117958c99a28be9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/da/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/da/firefox-124.0.1.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "6c8541934c50eb3fc4438ee1cb7f52c7f4deace8a67da26dfbc560d7368a904e";
+      sha256 = "7cfa1509fb99d4e70675700b5b420ff186cd9cdde38777dffdc872489f381be4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/de/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/de/firefox-124.0.1.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "72c112e3ff388a55277003deb76b1dad61362687fb86adb19bc06f55f1755bb4";
+      sha256 = "00155fbc60631a30aa3fa28b35e29b0b28592a60d40334fc3c3a4bf4f1bebc25";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/dsb/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/dsb/firefox-124.0.1.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "00921f6914afbe436f687b6f0eba5b7a1a7b27f7dc5cb28804f5917c76d025fa";
+      sha256 = "79bf89b19b83a8d79874b41d96930a2c3930f1a4b9fe82f4e58a68660a408f23";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/el/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/el/firefox-124.0.1.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "ef8e9803773aeeefccf081d994f9c29492e3566cfdfd21b7d0f0ec2d815dcce4";
+      sha256 = "484583dba0b350fc9409d9bf8bf497419acd79043009ae54cdcf174b0e0ec005";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/en-CA/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/en-CA/firefox-124.0.1.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "75c95b8e6f8c6c9f038e69b5520e8bdb37b9df3c23a69b47a03e7ff8159c7eb3";
+      sha256 = "10673499b7a9220dbb9e1e03b78eedb4f5e3116aaf9b650fcf951f7ab80286e9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/en-GB/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/en-GB/firefox-124.0.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "3a7b577b98e17a69f7b60085645f59a3ea9488ecca7df50e1fd582f6a2435392";
+      sha256 = "85c89bd867ac7ec5dc472474fc06644e78a79040d96407f9bccdfc961e614350";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/en-US/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/en-US/firefox-124.0.1.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "8b07eb35545ae8dc929c83211429c3ad983754ff4a3b9d7fe53c593b8b7361b2";
+      sha256 = "1cd95c55d0a89244878518c60239000ee8d9954e1ffb7ee423662319d79cbc02";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/eo/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/eo/firefox-124.0.1.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "f581fc6f4105d1feb4831f18ee252fc0e60c71f52661f208323c6631f1f215ea";
+      sha256 = "0ead4b4952df41b8731d8ac8f2ca1e814be1d05ac42b517392853f9743508233";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/es-AR/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/es-AR/firefox-124.0.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "72e93870ee29b0ca9ff82e3ac8b8ae653cc3209a16d4f9db6ceb495976b744c4";
+      sha256 = "504f329a94591609fe9902e82413c7c66f2212ff38150833d45795f267e5f37b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/es-CL/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/es-CL/firefox-124.0.1.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "5412d2301a9d0ada3d288c3574229232d79731d987ad4e3e66ba34be4fe26e0d";
+      sha256 = "57c38a5e3612a109f594878078e1ade72feafee47411d8e5b838b6887b4cf6bc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/es-ES/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/es-ES/firefox-124.0.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "c502e7882ac81ee33afef3f3261460f5f90067541041b643c7f67b8a275a9962";
+      sha256 = "e9401f3f4feb9ace0a5b1aff03b42389b3c074cd07e34bd7950cafad472b32d5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/es-MX/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/es-MX/firefox-124.0.1.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "711b2154e3e9c16b14ca52125b043c21e626b3a7125374f0716d070a6c1e20b5";
+      sha256 = "1324b74bac16a301227e378a0542c9b710fc8d5e50b82f156d428e1ab00cc0ba";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/et/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/et/firefox-124.0.1.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "b305264b43b0c7d69c61a01cd8a03497d423fdeaa2fc7a78f0599a61588f2506";
+      sha256 = "f58fcdecf5d6c6ff6fd742e3c12ff3f1705aac928fae8a53646ec2259593c2ec";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/eu/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/eu/firefox-124.0.1.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "39d4b2038a53613ed33658eeb57b601003c2e66d73b4f8cc3b146a809a64993e";
+      sha256 = "fc1f4ac290e1fd05e67d292865c8bdab28cd052c1701049720219569e7fdb6a6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/fa/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/fa/firefox-124.0.1.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "89a4f6e36192b45afba98ecae5095a0e572e7fd54d5c654a34bbdda144f9d5c3";
+      sha256 = "3bf3ebaedb91a2cc41b5c500262269e0e662d6d6be2614eee3c1f81ae48574f8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ff/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ff/firefox-124.0.1.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "7432c3f6cc6245fa579c62f854d7df3e1a56b58c517265c4281d3e023ae3276c";
+      sha256 = "c22b27189d541978d5f9b2eb841b4edf6e2470855798ca6234989043807bd842";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/fi/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/fi/firefox-124.0.1.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "6de09fe1340eb8ec38d0a906eda6a593c4ed19c6d376c0920572f60b410ae365";
+      sha256 = "40a80397d6c5df8b8b0e98b79b903168ce6c94324f7dbbfba3def5f458efb6f9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/fr/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/fr/firefox-124.0.1.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "8d94c283a8b4714d9c62791e0241905e75b7d84848f474f989ecb72ccc91d11c";
+      sha256 = "edef3bc1b23133cfbc6b26c8bac5b8e226debb63b568496a0b107e6081660b2d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/fur/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/fur/firefox-124.0.1.tar.bz2";
       locale = "fur";
       arch = "linux-i686";
-      sha256 = "7902934807620dfc8eed6580fe14f25a36642b389cd179b37a19a3e549880931";
+      sha256 = "51639ac52bbce9a5f9690d1d4d5294cac1802585653c1406939a2020b1f53d98";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/fy-NL/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/fy-NL/firefox-124.0.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "fd8277c928a767d2d2ea21e4485e653d3d562d8ae64b4aab7a3f02fabea0f312";
+      sha256 = "1652fc1be79283a3a91bb2b042559d8261bafc0e2cc01b49586755b693a3c428";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ga-IE/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ga-IE/firefox-124.0.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "7aefd5b2507205321276387a11ec80ef3ff3dd7f2d9335c084f7cc3374a7022f";
+      sha256 = "6ef5b5cc908a61362b7e364e24b6f8ef66844039a4029589a787a0a67c9a9407";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/gd/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/gd/firefox-124.0.1.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "53b37078c2c1f12514519ca6fbcc592e4f5761d233698f7425a652e7f3c1910d";
+      sha256 = "b0a2df0c168914b51809c9255d8f199b788a177980f61b4b14c8b02defdd4007";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/gl/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/gl/firefox-124.0.1.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "46389d1f1b6f38cab4a4c4d5e9e4c0c2ffd2ec838ec009f96d728610f2eed4d8";
+      sha256 = "066dc78ff3283dc8ce23ca349b9ccc430b3000fda87a8ef6e83e2aaa6715f660";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/gn/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/gn/firefox-124.0.1.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "0e8c50f36761760933fa06ee6990fcb6dc100b215a23007493858206d40dcd6a";
+      sha256 = "d2ece2f565440acb002149a097277eb0ce8e51b115600279be8a4e2eb723dee7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/gu-IN/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/gu-IN/firefox-124.0.1.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "6ddd0f83093b632378c68e8f4cfc69bbebb1c89eb6d0373569a13bc29968dba9";
+      sha256 = "74304610205d645b588141e827b7518432b50e4d179c3410f842f83a64780f6e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/he/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/he/firefox-124.0.1.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "3e9d5e9c0f52dbde990a7887f7a19e7d04758c4795ccde188325ebb87a9d12c6";
+      sha256 = "b7a08f44ee616b892a563d9e7363a386de180d364629800215438431a2596133";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/hi-IN/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/hi-IN/firefox-124.0.1.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "e50f4c08d891cf2bce19b3ac18f383059cb327a2dc859143dc2b30028a80cabd";
+      sha256 = "1b2a6170c7362a1fcb7949a39a9aafe72b475fc3852084d0b30aadab09ec4c9a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/hr/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/hr/firefox-124.0.1.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "637b0447fbbf30102b1cb8a7d0132a3e9886b97120c0d7133a72e4883fb287bd";
+      sha256 = "aa71efcb89d8bbebbca28d1454e7b02c85dda7db2e1e09fcf9c2b0bb1efdd4d0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/hsb/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/hsb/firefox-124.0.1.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "60baad0c3b3a9b173be7a16937b745f0ff43e2a1ae57bede664034396712744b";
+      sha256 = "cef575876ec29f5fea4fc4bcca5b18629adf08b92781132fd09b6bb2890839b1";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/hu/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/hu/firefox-124.0.1.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "f0394b4af70b735da9ed1135f83e21e06195c3cc51727a82fb07c3e300619b5f";
+      sha256 = "abf649e25bfc1f071d0c4ec0d4ea6ac055d58aafe0f99bd1a1f93dcdd57404bd";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/hy-AM/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/hy-AM/firefox-124.0.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "0eb0ea21af508927116193cb58a5d7dc6f192434d39904fd19dbf0fbad0d0c24";
+      sha256 = "568b71e8d81fc15d26e62422a00f6df2f97df24c48f76071924785e68c149776";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ia/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ia/firefox-124.0.1.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "428dfd19440af9ad37af7b7d26b1dbb143c10d980daf964ea4fb165096cc7943";
+      sha256 = "e9cd88403c9d7fdd0449f1504d754c771acbef9fdd2e2c14c5a9bbdf325c107c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/id/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/id/firefox-124.0.1.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "fb778338b48e86d5840adc66be2c2bcf5bd41c0b80e4b238def7b8b77d3dd494";
+      sha256 = "a1fa36f11a1086144328251788bb57d6dac1cfe797fa8792f90752f4516e5006";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/is/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/is/firefox-124.0.1.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "ed5a8d23393d579655eb8d60e0cad4700accbc80f68b8b1427aa361eabbd8d29";
+      sha256 = "3666ef7b9a7c5c8b393bc7cc2b12f83059039bbe9997cd653f550b71cea71cf4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/it/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/it/firefox-124.0.1.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "4fdcb0edda17eef781a748159739b4ebd01d552b3a1c98b54b0d60a5eb4b1aae";
+      sha256 = "60b218dfb14264b7cfd79854e5a0f0d154ef07e2e53f2b802f9838c2e8344162";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ja/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ja/firefox-124.0.1.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "120ab2a4eb98215f3d1d184a4e607a90d6f597ba55db20abfc359325469b79da";
+      sha256 = "9ddde2b5c951d859bee59efe861a15e0f00c1debe4a1621cf7df98a8138fe871";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ka/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ka/firefox-124.0.1.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "20572c346b606d69bfa7a34c469ef9ca3071dc8c0a717413fbf7709db9803f5e";
+      sha256 = "a16aa95b54fa6a9c99f18a066537bd990de1750c6c8c80f3413e700a5a07329c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/kab/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/kab/firefox-124.0.1.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "375bafa0bf1f91abc57a81bfc42de2d90ea0f0e6b9e32e739b5083dc770f8f04";
+      sha256 = "87e2222e8bc3edd394fe679f4b8ae646ed58104813fdd8b35adb2024986b2af6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/kk/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/kk/firefox-124.0.1.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "4cde37c5a34417a3ca1c825fe9af4cb362cd43c1b3b523213c068f246b669e0b";
+      sha256 = "1d52a0c2407b14b4e2476cc38d3961493a6fb5874c6e68bad212ca4402732d17";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/km/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/km/firefox-124.0.1.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "13f31c4707d503c70c6904b8d0e02c97b855f76c5bc4bcc677ede6aa77214502";
+      sha256 = "86e6c120540d0bbeee982e4dce011e677a4652dd19e9d19a97a1c138e9d461a4";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/kn/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/kn/firefox-124.0.1.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "bc710e13c61e6ecc23a03591bc68066118f8319d75e1738273ce7a005f90a3a8";
+      sha256 = "fdc73008c8efb0e14e1aca7b8392b7c39ca2e6baf21aceab1dc5882cd5a5a4e7";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ko/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ko/firefox-124.0.1.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "525fca14b1eb8a8ac03ba32ca997cb26ff32f36457a9a9cd3cf928c023b38102";
+      sha256 = "dba889cd73f292b1c1edf66be7683aeecde3d18e4d697c971e359e483dcea642";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/lij/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/lij/firefox-124.0.1.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "dadfa83f5d1ea88cc6386b321b6289feafd7fe09a274e083db325268b7fb536e";
+      sha256 = "79c9b5eb29f8c8b27f580f36d08ab2922eb36bf5968bf17d83b40572183d8a6a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/lt/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/lt/firefox-124.0.1.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "aa8065020b395b82aa901c269f7015a75adfbae3abed8867083e16422b6d1743";
+      sha256 = "8d40bb5a1a8c33f02748dabb107d2c49c7a62c91b7f29ca8cddf46edc77a1c5f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/lv/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/lv/firefox-124.0.1.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "6c85908500f514141cf5de25214fd2fa1887bd4854948aab44d4957a5c59a74a";
+      sha256 = "00ec09a31a02b63b165c6a672429dd3145c1a69a0e0a5df8cdb4adb0de914ddc";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/mk/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/mk/firefox-124.0.1.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "8bbd5dcc23c2db81cd09f193414f3adb551b3cf5b8c09322d2a56ab7ea5bd675";
+      sha256 = "2d38319810756beab2f3007fbc3bc36b1378cf92814c3ee89e6a0f855bbbfe27";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/mr/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/mr/firefox-124.0.1.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "b9eecfcac3a150cf4520e89da677cdbe1d76bee492c6b6b5fa0531ccd5320985";
+      sha256 = "377b84b1e27feea213582be8177ff5a5c863c3e3eb0b7f4900bf548be781d8a8";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ms/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ms/firefox-124.0.1.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "2f6e5d840eec34c9aab3cfc29fc0751ed20e8e77f5ea9711665c4a9272224c46";
+      sha256 = "65284597701f979d1835190328b3f99c39fc13a6e08a0904cccb7997841018f9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/my/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/my/firefox-124.0.1.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "30563c0672276bc22fecfa4b8f617a070cfdeac0dd37849d5bd0e8cbdb4eadf6";
+      sha256 = "3efcea68e2731f4024f243294da913c1aedd704364110c73e11ecee84df7b108";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/nb-NO/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/nb-NO/firefox-124.0.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "c31b3e5d9f4501e15e9a2c24e4f6655e6aab41b5f684e0668f4db15af4632a3e";
+      sha256 = "2c589a36bbc017eb53579b0b1ea401c347eb693b286093759ab0014ff4191053";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ne-NP/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ne-NP/firefox-124.0.1.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "9e222e3428d512f754fa7be13f9c5b9b1949d03810592c65698134319fe9127f";
+      sha256 = "394ec29ae0ab9d699fe15a0ab73ce92f12a8794b253b3494cc27c3efadd672cd";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/nl/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/nl/firefox-124.0.1.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "6c88d0d8410a80d8da64c2560e7d40b0be263cf27330027d363d04297533bee9";
+      sha256 = "df17577546a281a0c3a94fd3793be9d991bc270bb1c78b0e569a873e753bd765";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/nn-NO/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/nn-NO/firefox-124.0.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "e251ca0643c922de34080b5d47d6e1e3e2695bdfcaa0f22579b5d37ddda0a56a";
+      sha256 = "30050f528ff98bc96783fac1ad92d89d5b6173a888294391ee4e0c91e41c6e6a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/oc/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/oc/firefox-124.0.1.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "0891cbd391fa1cc972df92a89e24c50ba39f905670b1c96f8023715c38ee63a2";
+      sha256 = "a84fe2a6b8949ef720be04177f21d3065bf4a14ec6f86e25dbddee8b56f56a0f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/pa-IN/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/pa-IN/firefox-124.0.1.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "0ce36b90683326a70c518a461a21410604c7e5d8b8c330a6ae8fa24fd96ead9b";
+      sha256 = "51b4b770566deeae87471baf119e899bbfeed068166e5efec5d2df0091368109";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/pl/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/pl/firefox-124.0.1.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "12d081dd2db9b2f067c23bd4586c70ac6b2ab342f8b2daf9c47c69a8824d99ac";
+      sha256 = "501f9fcabb0bd57419c3ebea6e14b35c42373060349f5496d828bb7c81b12163";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/pt-BR/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/pt-BR/firefox-124.0.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "cca7fb5f3d0117cc1ab9c475cdcff3a914c46669ae45c13f1973950a416443e5";
+      sha256 = "437ef79fe9a568ae3b5d8339187a9f68b8209354e55c69485fd0975a81c4e261";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/pt-PT/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/pt-PT/firefox-124.0.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "3f6c4b13ceed4899e3c0a2831be5b8e580e9e022216bf2995100aacb6d4ccf83";
+      sha256 = "82798804899b552deac8dc55da6a0b8227af4abec87bad0143b306381a6551da";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/rm/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/rm/firefox-124.0.1.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "b0d7f4c906938c4b38a842d42dcee275d2cf34784090e77e4bf7e9273255b47c";
+      sha256 = "5ecd2ad1f3c9cfe98e15a37e5b6a8753c9a1a27384aa893703c4d7ba19af9d2d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ro/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ro/firefox-124.0.1.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "f18dae01578c1785bd47ba00098e27e4380c16568f07d4efef2cd52c806b0af0";
+      sha256 = "73b265f0f92f3e0a81114654120e02823599081ef3f4ce12c552c8c622875c2e";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ru/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ru/firefox-124.0.1.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "5dddfc399d856944eb168c1a800b8f254dde1fb0c63d43cd39002c923c30928e";
+      sha256 = "17d1c887cd95518cb509d92c3423ad60cb281038ddf71aa6e3b0b622a4838209";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/sat/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/sat/firefox-124.0.1.tar.bz2";
       locale = "sat";
       arch = "linux-i686";
-      sha256 = "ca5df0b13d79458eab3790af54c5bb2cc4b9131109386fe274f69e313efd002e";
+      sha256 = "71131bf296cbc844608a63082da56d54fba20f798c4873d68d0c251b1914ad3c";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/sc/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/sc/firefox-124.0.1.tar.bz2";
       locale = "sc";
       arch = "linux-i686";
-      sha256 = "e570d69137e5a4bf075c20241fe3eed7f259ebd1c3c4dde44923cf7673adffb1";
+      sha256 = "d15362d39bd9300fd944db163406044e63bfb8e059e95df52084da0ce6bab76b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/sco/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/sco/firefox-124.0.1.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "dc9f7e388d547b2e651ef4046ba4e2d1575b7aac221c72d07c64730b94f6e27f";
+      sha256 = "4226010021336ec84f586a084cc7c66f546b69d75724a02fb4928090697615d3";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/si/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/si/firefox-124.0.1.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "a111f53656d3a35f8e26a6d31e8abb37540fccf2d0765eb072c93aaef1542275";
+      sha256 = "66e6d403f9388ff8d5f14fbc3ea6710611286133881cf49d2afa79eb1206e4b0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/sk/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/sk/firefox-124.0.1.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "d87b48cac01b8bfdf956be8a35aeec7a385b00d3b4f263c7bafadfd8d8a3ed42";
+      sha256 = "2f14b7eddf70ff6c1b0aab07f42c618604ee79bb6af406f97e17d2012fac995d";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/sl/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/sl/firefox-124.0.1.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "dc65b040c45f0859644f5d29266601417be528fbdc78dd8b91ec936b1441aed9";
+      sha256 = "0c81a5157256fec79bce00c32c0558e256bfc1f4955c6d0b91b5e481fa3018d9";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/son/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/son/firefox-124.0.1.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "edfc5fdabc404c51686cb35e5e1c325de769189a3bf1cede45feccd4d17b1569";
+      sha256 = "b0c261496b1f8feb8c0e9ad4c1d7dbbb7db2b189ec734270376e57f86a1f0be5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/sq/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/sq/firefox-124.0.1.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "85ce21ca1bc5a84b3a91cb9f79782a6622983a149432a869117e3c1d7166aa06";
+      sha256 = "f2bd6d3b2ef5f3a71471367feb11748c2012e49c86db9d15681da442638dc352";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/sr/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/sr/firefox-124.0.1.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "96b4cd3780251fb884e8916c43d4ab8176095d9212471808f5a55a590921d2fe";
+      sha256 = "170335737a793264bd67ea4c1861731542b2834cfa6ad0305cc8fb81f3e4ab71";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/sv-SE/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/sv-SE/firefox-124.0.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "d88af89af095662713201c1b799b3d93dfb71d7b4842b860a7abb8909861b8c9";
+      sha256 = "6a0036bdbce5c20582f82ec44f04e780647047118cabb597dff117dfaf9f84e0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/szl/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/szl/firefox-124.0.1.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "94ce3d48f9fae7a61e4b87b1afec13ea3ea1b3ad746662efd3b19bf6a19ae167";
+      sha256 = "eecec3185ca0cf0bde7f74b7f2973cab3104a79f0fdf2489dcf41c064072060f";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ta/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ta/firefox-124.0.1.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "032d5b035463d250471037f9d7b7acc6b437e77730994a80bb85a504d9835a20";
+      sha256 = "8b60a57fd9f0353be508f251e05f073ba066846e97aec29dc756335ee6b4f1e0";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/te/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/te/firefox-124.0.1.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "a9a49a318b5fb6f172d5ad8cbf57b201efed0637691d9938651cbfea84606ba3";
+      sha256 = "809e483f245f668a38f029979cfbc6506544d50a876f0036ee372cc2df5e9522";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/tg/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/tg/firefox-124.0.1.tar.bz2";
       locale = "tg";
       arch = "linux-i686";
-      sha256 = "129f5ab858cdc67eee80a07bf2ec60bb3f5fa3be6b575306b1a36111c67b80c0";
+      sha256 = "f57fdca712272a8d3e89c2443fd0687d5e26d5491626bfd96c9a5126263d5f5a";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/th/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/th/firefox-124.0.1.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "d320639cdbf2d5af261f5e5f9765e77b025ea3a182f8bcf1864a0a84eb28500a";
+      sha256 = "c3f073f99aa4b41fab6e9f42ca2646ca28069e8f7e729046afe1be276d9ffbf6";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/tl/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/tl/firefox-124.0.1.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "6392898dfc91d49af03e7ad08a6652d15b98c4a95e1524f0a96eeace0438db4b";
+      sha256 = "198077676ff2cb3dec4dc486400e1dc347ce6d2640e889ab6089b2b9926d1d93";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/tr/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/tr/firefox-124.0.1.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "95023851d7b4326a1bcbd457d0deb043423d3a075ff64b26872ea2a6c39ffdce";
+      sha256 = "cedc651e4639cdb069340931dca5b583586bf8204ec385ab1cecf1f6b48735fa";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/trs/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/trs/firefox-124.0.1.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "9f0e816e6a36ac93e12bd64b7ccc5a2edaedfeb8bffaa53d0c023b721462b05a";
+      sha256 = "8e6bcfd3d585f0d00907e69ebdfa31c123068c63d0ea223780eaf1b87ff60d59";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/uk/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/uk/firefox-124.0.1.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "601e88f9261025196e0c203cfefbdbea9760ff36f94bfdd94eb2597483bfd535";
+      sha256 = "8922a43839d08629eba896ea5d7a3c7fe33e53a8d062b6f96ee158ca3856c23b";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/ur/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/ur/firefox-124.0.1.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "939f6952eb1f9e503e904db41c9d30c71b8cd83a14c2cd153f79984392ffa2d5";
+      sha256 = "3ebef48288de9f4cf3c0aa52d6b893ed53212367edb03167ab14f84f88d9a5a5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/uz/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/uz/firefox-124.0.1.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "c4d0ce34a4f8a735dff11e7dfabca8257d76b92677a8297c354bd60f10fee86d";
+      sha256 = "1949d14efaf57932193f27dbd0f1071ab6edf187a95add78fe36bbf36b2d96ff";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/vi/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/vi/firefox-124.0.1.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "0fc59fca1064caf257a8b3154d2e73e9adb037e3045a8e0516bec9aecc79b2db";
+      sha256 = "5e4729febba8b072f81f9c3da9ce66f995c59d6ab92e6d7bbe03486ad98186cd";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/xh/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/xh/firefox-124.0.1.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "553833a73134ce07af1215b6af08eb7b2b1e2a8dad979c0a49a276acc7c79826";
+      sha256 = "cac4ceea802e808d6c0b1b857bed305991d5c5a82657336d09bad8ec38d50b88";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/zh-CN/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/zh-CN/firefox-124.0.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "7be0b31305dfece1f34920186b78405468e91f26cd05dd2162b79e64b7ae98d4";
+      sha256 = "db5e5dcf5e446aea04bd96c1954c87aa96347c0048c98ea657d64c31743debb5";
     }
-    { url = "https://archive.mozilla.org/pub/firefox/releases/123.0.1/linux-i686/zh-TW/firefox-123.0.1.tar.bz2";
+    { url = "https://archive.mozilla.org/pub/firefox/releases/124.0.1/linux-i686/zh-TW/firefox-124.0.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "f63bd2c9cfab6d964922533c0628b681cd5987fb774afad303a88cebd4eafc13";
+      sha256 = "4b932e80fcaf459ae9fe360328b662529d322f986205b7ec86c37f8683b32ff5";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
index 45823df01d99..25a25e8f358d 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
@@ -183,7 +183,7 @@ let
   # We only link c++ libs here, our compiler wrapper can find wasi libc and crt itself.
   wasiSysRoot = runCommand "wasi-sysroot" {} ''
     mkdir -p $out/lib/wasm32-wasi
-    for lib in ${pkgsCross.wasi32.llvmPackages.libcxx}/lib/* ${pkgsCross.wasi32.llvmPackages.libcxxabi}/lib/*; do
+    for lib in ${pkgsCross.wasi32.llvmPackages.libcxx}/lib/*; do
       ln -s $lib $out/lib/wasm32-wasi
     done
   '';
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
index bbeab6f512b1..992e575a3398 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -3,10 +3,10 @@
 {
   firefox = buildMozillaMach rec {
     pname = "firefox";
-    version = "123.0.1";
+    version = "124.0.1";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "e9af61c1ca800edd16ab7a0d24c9a36bbb34813ed0a11ff62389aa38fa83deba394bca5d95cdaad55ad29ffa3c0e5d3dd15ac1099f7fa3649f4b6c835b7498c2";
+      sha512 = "282c45e5c468419536dd8b81c8ea687b10d8002d7521403330e6eeef49207143bee88a44c3785748d461ed9a72687606f5da14f4dfb98eb40a5cd08a4a12722b";
     };
 
     extraPatches = [
@@ -33,11 +33,11 @@
 
   firefox-beta = buildMozillaMach rec {
     pname = "firefox-beta";
-    version = "124.0b8";
+    version = "125.0b3";
     applicationName = "Mozilla Firefox Beta";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "8f3564169be29a5456c2e3fee22c0fb7146caf4c13770a8c32dd9bcc667410a90135b634598fc243e088c1b078ab31470ceb2fc3557c13221414bf8ba518c67b";
+      sha512 = "7743cda6eed1274591243718dab2d85c0c84ebcaa97283eaded5293243c1c4a40712d3a4b66da4cd18e0eeb50296f3fc9b91a61a4a744b20dd70bd3b3291973d";
     };
 
     meta = {
@@ -62,13 +62,13 @@
 
   firefox-devedition = buildMozillaMach rec {
     pname = "firefox-devedition";
-    version = "124.0b8";
+    version = "125.0b3";
     applicationName = "Mozilla Firefox Developer Edition";
     requireSigning = false;
     branding = "browser/branding/aurora";
     src = fetchurl {
       url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "7aa937b7d41fce7b8ccd3e33a68c7d85a05a2c6a8c3ff4891b8731e335c4ac3b03838c9056ac7fc1f28b5a0de04188c8126f6725a3d7f544f5854d53595688a6";
+      sha512 = "9c452aa0358f227ec988058dc27cd4e3345dc2febea295fe1f061fa4a8d1d118c180e554836c647f4c82ab7a26a9ec9eeb8a73543ba1e23a511842b900ce56e5";
     };
 
     meta = {
@@ -94,11 +94,11 @@
 
   firefox-esr-115 = buildMozillaMach rec {
     pname = "firefox-esr-115";
-    version = "115.8.0esr";
+    version = "115.9.1esr";
     applicationName = "Mozilla Firefox ESR";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "4b8c06b5eb3617700a72aaad8831d703a537fe600740f1acb8377bd0ce198a199938603fd7e6b2007671a578dfb24aa8f5c031c6c1ccf15d4a34562679eaa883";
+      sha512 = "9ccaede2fcda13a07f98a2110bb8f99c7324601d66bff311f3070a669576a1598fe1d7de2d005d725d1f44dbe3934a9c0fd0b7950f60686047d4ce8d9d812310";
     };
 
     meta = {
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
index a2b97577c8d3..0f62075439c5 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -18,6 +18,7 @@
 , sndio
 , libjack2
 , speechd
+, removeReferencesTo
 }:
 
 ## configurability of the wrapper itself
@@ -238,7 +239,7 @@ let
               };
             }));
 
-      nativeBuildInputs = [ makeWrapper lndir jq ];
+      nativeBuildInputs = [ makeWrapper lndir jq removeReferencesTo ];
       buildInputs = [ browser.gtk3 ];
 
 
@@ -413,7 +414,9 @@ let
       passthru = { unwrapped = browser; };
 
       disallowedRequisites = [ stdenv.cc ];
-
+      postInstall = ''
+        find "$out" -type f -exec remove-references-to -t ${stdenv.cc} '{}' +
+      '';
       meta = browser.meta // {
         inherit (browser.meta) description;
         mainProgram = launcherName;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/floorp/default.nix b/nixpkgs/pkgs/applications/networking/browsers/floorp/default.nix
index 8701f8d7795b..6bb01b63e5cd 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/floorp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/floorp/default.nix
@@ -11,6 +11,8 @@
   applicationName = "Floorp";
   binaryName = "floorp";
   branding = "browser/branding/official";
+  requireSigning = false;
+  allowAddonSideload = true;
 
   # Must match the contents of `browser/config/version.txt` in the source tree
   version = "115.8.0";
@@ -26,9 +28,7 @@
   extraConfigureFlags = [
     "--with-app-name=${pname}"
     "--with-app-basename=${applicationName}"
-    "--with-distribution-id=one.ablaze.floorp"
     "--with-unsigned-addon-scopes=app,system"
-    "--allow-addon-sideload"
   ];
 
   meta = {
@@ -54,6 +54,5 @@
   mlsAPISupport = true;
 }).overrideAttrs (prev: {
   MOZ_DATA_REPORTING = "";
-  MOZ_REQUIRE_SIGNING = "";
   MOZ_TELEMETRY_REPORTING = "";
 })
diff --git a/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix b/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix
index 1435d2472635..3515f0e30e01 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description =
       "Graphical small-internet client, supports gemini, http, https, gopher, finger";
+    mainProgram = "kristall";
     homepage = "https://random-projects.net/projects/kristall.gemini";
     maintainers = with maintainers; [ ehmry ];
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/ladybird/default.nix b/nixpkgs/pkgs/applications/networking/browsers/ladybird/default.nix
index c29400c32fdf..04e786bcaad4 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/ladybird/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/ladybird/default.nix
@@ -1,73 +1,157 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchzip
+, fetchurl
+, cacert
+, tzdata
+, unicode-emoji
+, unicode-character-database
+, darwin
 , cmake
 , ninja
-, unzip
-, wrapQtAppsHook
 , libxcrypt
-, qtbase
+, qt6Packages
 , nixosTests
+, AppKit
+, Cocoa
+, Foundation
+, OpenGL
 }:
 
+let
+  inherit (builtins) elemAt;
+  cldr_version = "44.1.0";
+  cldr-json = fetchzip {
+    url = "https://github.com/unicode-org/cldr-json/releases/download/${cldr_version}/cldr-${cldr_version}-json-modern.zip";
+    stripRoot = false;
+    hash = "sha256-EbbzaaspKgRT/dsJV3Kf0Dfj8LN9zT+Pl4gk5kiOXWk=";
+    postFetch = ''
+      echo -n ${cldr_version} > $out/version.txt
+    '';
+  };
+  unicode-idna = fetchurl {
+    url = "https://www.unicode.org/Public/idna/${unicode-character-database.version}/IdnaMappingTable.txt";
+    hash = "sha256-QCy9KF8flS/NCDS2NUHVT2nT2PG4+Fmb9xoaFJNfgsQ=";
+  };
+  adobe-icc-profiles = fetchurl {
+    url = "https://download.adobe.com/pub/adobe/iccprofiles/win/AdobeICCProfilesCS4Win_end-user.zip";
+    hash = "sha256-kgQ7fDyloloPaXXQzcV9tgpn3Lnr37FbFiZzEb61j5Q=";
+    name = "adobe-icc-profiles.zip";
+  };
+  public_suffix_commit = "9094af5c6cb260e69137c043c01be18fee01a540";
+  public-suffix-list = fetchurl {
+    url = "https://raw.githubusercontent.com/publicsuffix/list/${public_suffix_commit}/public_suffix_list.dat";
+    hash = "sha256-0szHUz1T0MXOQ9tcXoKY2F/bI3s7hsYCjURqywZsf1w=";
+  };
+  # Note: The cacert version is synthetic and must match the version in the package's CMake
+  cacert_version = "2023-12-12";
+in
 stdenv.mkDerivation (finalAttrs: {
   pname = "ladybird";
-  version = "unstable-2023-01-17";
+  version = "0-unstable-2024-03-16";
 
   src = fetchFromGitHub {
     owner = "SerenityOS";
     repo = "serenity";
-    rev = "45e85d20b64862df119f643f24e2d500c76c58f3";
-    hash = "sha256-n2mLg9wNfdMGsJuGj+ukjto9qYjGOIz4cZjgvMGQUrY=";
+    rev = "3a8bde9ef24dace600484b38992fdc7d17bf92c3";
+    hash = "sha256-r8HYcexrOjDYsXuCtROiNY7Rl60pVQBvVQf190gqNuY=";
   };
 
   sourceRoot = "${finalAttrs.src.name}/Ladybird";
 
   postPatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace "MACOSX_BUNDLE TRUE" "MACOSX_BUNDLE FALSE"
-    # https://github.com/SerenityOS/serenity/issues/17062
-    substituteInPlace main.cpp \
-      --replace "./SQLServer/SQLServer" "$out/bin/SQLServer"
-    # https://github.com/SerenityOS/serenity/issues/10055
-    substituteInPlace ../Meta/Lagom/CMakeLists.txt \
-      --replace "@rpath" "$out/lib"
+    sed -i '/iconutil/d' CMakeLists.txt
+
+    # Don't set absolute paths in RPATH
+    substituteInPlace ../Meta/CMake/lagom_install_options.cmake \
+      --replace-fail "\''${CMAKE_INSTALL_BINDIR}" "bin" \
+      --replace-fail "\''${CMAKE_INSTALL_LIBDIR}" "lib"
   '';
 
-  nativeBuildInputs = [
+  preConfigure = ''
+    # Setup caches for LibLocale, LibUnicode, LibTimezone, LibTLS and LibGfx
+    # Note that the versions of the input data packages must match the
+    # expected version in the package's CMake.
+    mkdir -p build/Caches
+
+    ln -s ${cldr-json} build/Caches/CLDR
+
+    cp -r ${unicode-character-database}/share/unicode build/Caches/UCD
+    chmod +w build/Caches/UCD
+    cp ${unicode-emoji}/share/unicode/emoji/emoji-test.txt build/Caches/UCD
+    cp ${unicode-idna} build/Caches/UCD/IdnaMappingTable.txt
+    echo -n ${unicode-character-database.version} > build/Caches/UCD/version.txt
+    chmod -w build/Caches/UCD
+
+    mkdir build/Caches/TZDB
+    tar -xzf ${elemAt tzdata.srcs 0} -C build/Caches/TZDB
+    echo -n ${tzdata.version} > build/Caches/TZDB/version.txt
+
+    mkdir build/Caches/CACERT
+    cp ${cacert}/etc/ssl/certs/ca-bundle.crt build/Caches/CACERT/cacert-${cacert_version}.pem
+    echo -n ${cacert_version} > build/Caches/CACERT/version.txt
+
+    mkdir build/Caches/PublicSuffix
+    cp ${public-suffix-list} build/Caches/PublicSuffix/public_suffix_list.dat
+
+    mkdir build/Caches/AdobeICCProfiles
+    cp ${adobe-icc-profiles} build/Caches/AdobeICCProfiles/adobe-icc-profiles.zip
+    chmod +w build/Caches/AdobeICCProfiles
+  '';
+
+  nativeBuildInputs = with qt6Packages; [
     cmake
     ninja
-    unzip
     wrapQtAppsHook
   ];
 
-  buildInputs = [
+  buildInputs = with qt6Packages; [
     libxcrypt
     qtbase
+    qtmultimedia
+  ] ++ lib.optionals stdenv.isDarwin [
+    AppKit
+    Cocoa
+    Foundation
+    OpenGL
   ];
 
   cmakeFlags = [
     # Disable network operations
-    "-DENABLE_TIME_ZONE_DATABASE_DOWNLOAD=false"
-    "-DENABLE_UNICODE_DATABASE_DOWNLOAD=false"
+    "-DSERENITY_CACHE_DIR=Caches"
+    "-DENABLE_NETWORK_DOWNLOADS=OFF"
+    "-DENABLE_COMMONMARK_SPEC_DOWNLOAD=OFF"
+  ] ++ lib.optionals stdenv.isLinux [
+    "-DCMAKE_INSTALL_LIBEXECDIR=libexec"
+    # FIXME: Enable this when launching with the commandline flag --enable-gpu-painting doesn't fail calling eglBindAPI on GNU/Linux
+    "-DENABLE_ACCELERATED_GRAPHICS=OFF"
   ];
 
+  # FIXME: Add an option to -DENABLE_QT=ON on macOS to use Qt rather than Cocoa for the GUI
+  # FIXME: Add an option to enable PulseAudio rather than using Qt multimedia on non-macOS
+
   env.NIX_CFLAGS_COMPILE = "-Wno-error";
 
-  # https://github.com/SerenityOS/serenity/issues/10055
   postInstall = lib.optionalString stdenv.isDarwin ''
-    install_name_tool -add_rpath $out/lib $out/bin/ladybird
+    mkdir -p $out/Applications $out/bin
+    mv $out/bundle/Ladybird.app $out/Applications
   '';
 
+  # Only Ladybird and WebContent need wrapped, if Qt is enabled.
+  # On linux we end up wraping some non-Qt apps, like headless-browser.
+  dontWrapQtApps = stdenv.isDarwin;
+
   passthru.tests = {
     nixosTest = nixosTests.ladybird;
   };
 
   meta = with lib; {
-    description = "A browser using the SerenityOS LibWeb engine with a Qt GUI";
-    homepage = "https://github.com/awesomekling/ladybird";
+    description = "A browser using the SerenityOS LibWeb engine with a Qt or Cocoa GUI";
+    homepage = "https://ladybird.dev";
     license = licenses.bsd2;
     maintainers = with maintainers; [ fgaz ];
-    platforms = platforms.unix;
+    platforms = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" ];
+    mainProgram = "Ladybird";
   };
 })
diff --git a/nixpkgs/pkgs/applications/networking/browsers/librewolf/default.nix b/nixpkgs/pkgs/applications/networking/browsers/librewolf/default.nix
index 0e6ba888015e..6a1d59858d80 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/librewolf/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/librewolf/default.nix
@@ -11,6 +11,7 @@ in
   src = librewolf-src.firefox;
   requireSigning = false;
   allowAddonSideload = true;
+  branding = "browser/branding/librewolf";
   inherit (librewolf-src) extraConfigureFlags extraPatches extraPostPatch extraPassthru;
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/networking/browsers/librewolf/librewolf.nix b/nixpkgs/pkgs/applications/networking/browsers/librewolf/librewolf.nix
index f6689f6ae87d..bb35d92a3d62 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/librewolf/librewolf.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/librewolf/librewolf.nix
@@ -11,10 +11,7 @@ rec {
   extraConfigureFlags = [
     "--with-app-name=librewolf"
     "--with-app-basename=LibreWolf"
-    "--with-branding=browser/branding/librewolf"
-    "--with-distribution-id=io.gitlab.librewolf-community"
     "--with-unsigned-addon-scopes=app,system"
-    "--allow-addon-sideload"
   ];
 
   extraPostPatch = ''
diff --git a/nixpkgs/pkgs/applications/networking/browsers/librewolf/src.json b/nixpkgs/pkgs/applications/networking/browsers/librewolf/src.json
index 40f22d2096f6..06a95382210e 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/librewolf/src.json
+++ b/nixpkgs/pkgs/applications/networking/browsers/librewolf/src.json
@@ -1,15 +1,15 @@
 {
-  "packageVersion": "123.0-1",
+  "packageVersion": "124.0.1-1",
   "source": {
-    "rev": "123.0-1",
-    "sha256": "1ic71b9sf6pgvsyinz0r8qhbpkryfdbj7lz6lh02d27xhnw9jd93"
+    "rev": "124.0.1-1",
+    "sha256": "1qyhwxc16qsmq3bvsmdwqib47v27fly1szq7jh78dylpib8xgb6f"
   },
   "settings": {
     "rev": "8a499ecdab8a5136faee50aae1fdd48997711de6",
     "sha256": "1c12y7b09rrz8zlpar8nnd9k2nvldjqq3cicbc57g6s1npnf8rz6"
   },
   "firefox": {
-    "version": "123.0",
-    "sha512": "a19567a13e1b663e538c4af17491146adad1f0ab977995e8da9ce9ed428008ad20902dee4efb82d54e1319a0e31768609696bc822563d75732b622760129d8bb"
+    "version": "124.0.1",
+    "sha512": "282c45e5c468419536dd8b81c8ea687b10d8002d7521403330e6eeef49207143bee88a44c3785748d461ed9a72687606f5da14f4dfb98eb40a5cd08a4a12722b"
   }
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/litebrowser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/litebrowser/default.nix
index 2158d0bb2f57..d1ffce7e6e5e 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/litebrowser/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/litebrowser/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A simple browser based on the litehtml engine";
+    mainProgram = "litebrowser";
     homepage = "https://github.com/litehtml/litebrowser-linux";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix b/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix
index 66188f174753..a861f2f44bfc 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix
@@ -76,6 +76,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://luakit.github.io/";
     description = "Fast, small, webkit-based browser framework extensible in Lua";
+    mainProgram = "luakit";
     longDescription = ''
       Luakit is a highly configurable browser framework based on the WebKit web
       content engine and the GTK+ toolkit. It is very fast, extensible with Lua,
diff --git a/nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/default.nix b/nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/default.nix
index 784e89adc629..4271b21fa8fd 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/microsoft-edge/default.nix
@@ -1,20 +1,20 @@
 {
   beta = import ./browser.nix {
     channel = "beta";
-    version = "122.0.2365.59";
+    version = "123.0.2420.41";
     revision = "1";
-    hash = "sha256-hs6NHAdqji5Cg1ReGWqalFHv6wyRlyclssyc0cxM+ZU=";
+    hash = "sha256-tWsd+RyGJp+/1Sf4yDrq4EbLfaYsLkm4wLj9rfWmPlE=";
   };
   dev = import ./browser.nix {
     channel = "dev";
-    version = "123.0.2420.6";
+    version = "124.0.2450.2";
     revision = "1";
-    hash = "sha256-fX6lxhJstz2cZZODu7xRe1fez8WTXqlYNgsMhIVTLaU=";
+    hash = "sha256-9PRQnnTYhArwRcTxuCufM7JcAcr6K7jKeFCrOsarCh0=";
   };
   stable = import ./browser.nix {
     channel = "stable";
-    version = "122.0.2365.59";
+    version = "122.0.2365.92";
     revision = "1";
-    hash = "sha256-LbyipfA5TZWSZu1jeUykGZ2FXwt9rZ7ak7mmryXRnMQ=";
+    hash = "sha256-6rEVxFS2advEL4O2uczJTsTy31os9r52IGnHXxj3A+g=";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix b/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix
index 187914740f25..3bf46be68319 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/midori/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Lightweight WebKitGTK web browser";
+    mainProgram = "midori";
     homepage = "https://www.midori-browser.org/";
     license = with licenses; [ lgpl21Plus ];
     platforms = with platforms; linux;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mullvad-browser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mullvad-browser/default.nix
index c74677490d5e..61e704c9e806 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/mullvad-browser/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/mullvad-browser/default.nix
@@ -90,7 +90,7 @@ let
       ++ lib.optionals mediaSupport [ ffmpeg ]
   );
 
-  version = "13.0.10";
+  version = "13.0.13";
 
   sources = {
     x86_64-linux = fetchurl {
@@ -102,7 +102,7 @@ let
         "https://tor.eff.org/dist/mullvadbrowser/${version}/mullvad-browser-linux-x86_64-${version}.tar.xz"
         "https://tor.calyxinstitute.org/dist/mullvadbrowser/${version}/mullvad-browser-linux-x86_64-${version}.tar.xz"
       ];
-      hash = "sha256-+8b3K3XLSPlndR12KNUH0lsPquhTupxQrLBuSEGac7Y=";
+      hash = "sha256-CAJJs14U9zsl5PiyZIwXYZG4dZz+Cqn7sD9u3S+/WvA=";
     };
   };
 
@@ -256,6 +256,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Privacy-focused browser made in a collaboration between The Tor Project and Mullvad";
+    mainProgram = "mullvad-browser";
     homepage = "https://mullvad.net/en/browser";
     platforms = attrNames sources;
     maintainers = with maintainers; [ felschr panicgh ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/browser.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/browser.nix
index 0297301096d6..6feb02faa9d2 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/netsurf/browser.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/browser.nix
@@ -134,6 +134,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://www.netsurf-browser.org/";
     description = "A free, open source, small web browser";
+    mainProgram = "netsurf-gtk3";
     longDescription = ''
       NetSurf is a free, open source web browser. It is written in C and
       released under the GNU Public Licence version 2. NetSurf has its own
diff --git a/nixpkgs/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix b/nixpkgs/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix
index fc2b99280380..0ad77b07ca40 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/netsurf/nsgenbind.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://www.netsurf-browser.org/";
     description = "Generator for JavaScript bindings for netsurf browser";
+    mainProgram = "nsgenbind";
     license = lib.licenses.mit;
     inherit (buildsystem.meta) maintainers platforms;
   };
diff --git a/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix b/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix
index ecc75cd5cd30..6a990201c75d 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/nyxt/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Infinitely extensible web-browser (with Lisp development files using WebKitGTK platform port)";
+    mainProgram = "nyxt";
     homepage = "https://nyxt.atlas.engineer";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lewo dariof4 ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
index e890b35bc635..3387f66920aa 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
@@ -51,11 +51,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "opera";
-  version = "107.0.5045.36";
+  version = "108.0.5067.29";
 
   src = fetchurl {
     url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
-    hash = "sha256-NSJmPwDZbmZUv7HoTiZJbvJTAS6HENFWX+JjKVC0oPc=";
+    hash = "sha256-lPazFtTWb/AbK/5H5MQK+dn0imJqUHiL6/KRq1CNxfo=";
   };
 
   unpackPhase = "dpkg-deb -x $src .";
diff --git a/nixpkgs/pkgs/applications/networking/browsers/polypane/default.nix b/nixpkgs/pkgs/applications/networking/browsers/polypane/default.nix
index aa4032a7d7d9..d0a1e359f956 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/polypane/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/polypane/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "polypane";
-  version = "18.0.0";
+  version = "18.0.4";
 
   src = fetchurl {
     url = "https://github.com/firstversionist/${pname}/releases/download/v${version}/${pname}-${version}.AppImage";
     name = "${pname}-${version}.AppImage";
-    sha256 = "sha256-d2A+edQJKyChNCA7QH+YjlcIlHYVghX3UP60ZZBtP1s=";
+    sha256 = "sha256-FqaXLoFgkKHzOvy7f9R36uIDnv2c6HrVF6T3VK5Aw3c=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix b/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix
index 8ad81139fbe9..eb2e9789caa5 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/qtchan/default.nix
@@ -22,6 +22,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "4chan browser in qt5";
+    mainProgram = "qtchan";
     homepage    = "https://github.com/siavash119/qtchan";
     license     = licenses.mit;
     maintainers = with maintainers; [ Madouura ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix b/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix
index 6573821d0598..012a86aadb38 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/surf/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple web browser based on WebKitGTK";
+    mainProgram = "surf";
     longDescription = ''
       surf is a simple web browser based on WebKitGTK. It is able to display
       websites and follow links. It supports the XEmbed protocol which makes it
diff --git a/nixpkgs/pkgs/applications/networking/browsers/tor-browser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/tor-browser/default.nix
index 41d22dc39aa3..425e06051b59 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/tor-browser/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/tor-browser/default.nix
@@ -101,7 +101,7 @@ lib.warnIf (useHardenedMalloc != null)
       ++ lib.optionals mediaSupport [ ffmpeg ]
   );
 
-  version = "13.0.11";
+  version = "13.0.13";
 
   sources = {
     x86_64-linux = fetchurl {
@@ -111,7 +111,7 @@ lib.warnIf (useHardenedMalloc != null)
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz"
         "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-x86_64-${version}.tar.xz"
       ];
-      hash = "sha256-a8BAesBp85oaHJrkQYcYufH9cy7OrFrfnljZZrFPlGE=";
+      hash = "sha256-l7Ka8vjVX67ZPPzRnQixtki5/cYhP6P/J91CyGPnwfI=";
     };
 
     i686-linux = fetchurl {
@@ -121,7 +121,7 @@ lib.warnIf (useHardenedMalloc != null)
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz"
         "https://tor.calyxinstitute.org/dist/torbrowser/${version}/tor-browser-linux-i686-${version}.tar.xz"
       ];
-      hash = "sha256-cyZnLcJmXNjBJhBLwBoW09K6dsT6Og+h0ufc4/6zxac=";
+      hash = "sha256-Ro9F3SZiagtj3AnDOtHmyy1G/KOi/O9M3f775qrZig4=";
     };
   };
 
@@ -323,6 +323,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Privacy-focused browser routing traffic through the Tor network";
+    mainProgram = "tor-browser";
     homepage = "https://www.torproject.org/";
     changelog = "https://gitweb.torproject.org/builders/tor-browser-build.git/plain/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt?h=maint-${version}";
     platforms = attrNames sources;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix
index 35fece92529b..8df37ed5e086 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vimb/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A Vim-like browser";
+    mainProgram = "vimb";
     longDescription = ''
       A fast and lightweight vim like web browser based on the webkit web
       browser engine and the GTK toolkit. Vimb is modal like the great vim
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
index d7d26f183e23..45b687fa812f 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -24,7 +24,7 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "6.6.3271.48";
+  version = "6.6.3271.53";
 
   suffix = {
     aarch64-linux = "arm64";
@@ -34,8 +34,8 @@ in stdenv.mkDerivation rec {
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb";
     hash = {
-      aarch64-linux = "sha256-NeYyPgIioURSDomwZq7Cc08+A/XnQEk6yEiag7YxQO0=";
-      x86_64-linux = "sha256-/zBvH0IQZJr8PKWkIznPRxNLMxQoxVOnDrAw+0BWOEM=";
+      aarch64-linux = "sha256-iB8BPA7A2S9fsg5n6QDt6iKFnS1lQ6Xp2yO9VBGndq8=";
+      x86_64-linux = "sha256-2HS8SxaKu0NF++J8PhGJWEbA9FU1a+g/t9+HIKjvt58=";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
index 5e49e35313ea..778914763d19 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
@@ -4,11 +4,11 @@
 # downloads at https://vivaldi.com/download/
 stdenv.mkDerivation rec {
   pname = "chromium-codecs-ffmpeg-extra";
-  version = "111306";
+  version = "114023";
 
   src = fetchurl {
-    url = "https://api.snapcraft.io/api/v1/snaps/download/XXzVIXswXKHqlUATPqGCj2w2l7BxosS8_34.snap";
-    sha256 = "sha256-Dna9yFgP7JeQLAeZWvSZ+eSMX2yQbX2/+mX0QC22lYY=";
+    url = "https://api.snapcraft.io/api/v1/snaps/download/XXzVIXswXKHqlUATPqGCj2w2l7BxosS8_37.snap";
+    hash = "sha256-l1eHTAJvpkWof7Yj7M5uaa3YdLWw9F+/QvIUAfBx3ow=";
   };
 
   buildInputs = [ squashfsTools ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix b/nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix
index 2f63670128bb..dc8b89ac1df7 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/webmacs/default.nix
@@ -60,6 +60,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Keyboard-based web browser with Emacs/conkeror heritage";
+    mainProgram = "webmacs";
     longDescription = ''
       webmacs is yet another browser for keyboard-based web navigation.
 
diff --git a/nixpkgs/pkgs/applications/networking/calls/default.nix b/nixpkgs/pkgs/applications/networking/calls/default.nix
index 3546284f99c3..77a80df87ed5 100644
--- a/nixpkgs/pkgs/applications/networking/calls/default.nix
+++ b/nixpkgs/pkgs/applications/networking/calls/default.nix
@@ -34,7 +34,7 @@
 
 stdenv.mkDerivation rec {
   pname = "calls";
-  version = "45.0";
+  version = "46.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-NIQFKVpZSxY2QOb73WfYsCzMQwB9XySoADCL7IlmGe8=";
+    hash = "sha256-ZUVMK0Ex77EQKTGM0gBDHt8W9l4rHspihYduMcwMGho=";
   };
 
   outputs = [ "out" "devdoc" ];
diff --git a/nixpkgs/pkgs/applications/networking/circumflex/default.nix b/nixpkgs/pkgs/applications/networking/circumflex/default.nix
index bc1d81e7f956..bec25bf6f120 100644
--- a/nixpkgs/pkgs/applications/networking/circumflex/default.nix
+++ b/nixpkgs/pkgs/applications/networking/circumflex/default.nix
@@ -23,7 +23,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "A command line tool for browsing Hacker News in your terminal";
     homepage = "https://github.com/bensadeh/circumflex";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ mktip ];
     mainProgram = "clx";
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/aiac/default.nix b/nixpkgs/pkgs/applications/networking/cluster/aiac/default.nix
index 995e00a63948..79bf754fa3e2 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/aiac/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/aiac/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = ''Artificial Intelligence Infrastructure-as-Code Generator.'';
+    mainProgram = "aiac";
     homepage = "https://github.com/gofireflyio/aiac/";
     license = licenses.asl20;
     maintainers = with maintainers; [ qjoly ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
index a76c04324ec0..8a6e3ac65f74 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
@@ -84,6 +84,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Container native workflow engine for Kubernetes";
+    mainProgram = "argo";
     homepage = "https://github.com/argoproj/argo";
     changelog = "https://github.com/argoproj/argo-workflows/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argocd-autopilot/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
index 3b0250c5f9a9..55028845e2cb 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argocd-autopilot/default.nix
@@ -46,6 +46,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "ArgoCD Autopilot";
+    mainProgram = "argocd-autopilot";
     downloadPage = "https://github.com/argoproj-labs/argocd-autopilot";
     homepage = "https://argocd-autopilot.readthedocs.io/en/stable/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
index 2d84c51b8059..d40532db8a16 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "2.10.2";
+  version = "2.10.4";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = "v${version}";
-    hash = "sha256-eFa2AXFVymi7et+fHTLgdiBUq6D8zK5DRg9Dqhxe4TE=";
+    hash = "sha256-D7vkVvYLImC9dtqPU3Gxe5sQO92qxnx4533ykBm7u7c=";
   };
 
   proxyVendor = true; # darwin/linux hash mismatch
@@ -56,6 +56,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Declarative continuous deployment for Kubernetes";
+    mainProgram = "argocd";
     downloadPage = "https://github.com/argoproj/argo-cd";
     homepage = "https://argo-cd.readthedocs.io/en/stable/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/arkade/default.nix b/nixpkgs/pkgs/applications/networking/cluster/arkade/default.nix
index 82e5d12eaede..b921d080a478 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/arkade/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/arkade/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "arkade";
-  version = "0.11.4";
+  version = "0.11.6";
 
   src = fetchFromGitHub {
     owner = "alexellis";
     repo = "arkade";
     rev = version;
-    hash = "sha256-nRA/3dJn6hUJDppS/tt/WRIoYrRTeuY7ULZXii3LC48=";
+    hash = "sha256-PCyPdUgvW2wCo1MZ/5jbPLfermbYKZKDbAFsc2goqlY=";
   };
 
   CGO_ENABLED = 0;
@@ -51,6 +51,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/alexellis/arkade";
     description = "Open Source Kubernetes Marketplace";
+    mainProgram = "arkade";
     license = licenses.mit;
     maintainers = with maintainers; [ welteki techknowlogick qjoly ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/assign-lb-ip/default.nix b/nixpkgs/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
index 7b85443db3f0..bc55112dd292 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Assigns loadBalancerIP address to a Kubernetes service for testing purposes";
+    mainProgram = "assign-lb-ip";
     homepage    = "https://github.com/Nordix/assign-lb-ip";
     license     = licenses.asl20;
     maintainers = [ maintainers.starcraft66 ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
index 7b6edadbba43..59c1d8664d55 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/runatlantis/atlantis";
     description = "Terraform Pull Request Automation";
+    mainProgram = "atlantis";
     license = licenses.asl20;
     maintainers = with maintainers; [ jpotier ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/atmos/default.nix b/nixpkgs/pkgs/applications/networking/cluster/atmos/default.nix
index af4dad92e466..00c8805f3cfa 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/atmos/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/atmos/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "atmos";
-  version = "1.64.3";
+  version = "1.66.0";
 
   src = fetchFromGitHub {
     owner = "cloudposse";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Z27wFAWstsQliDiYl93yY9LDeVcGEWcrmggGJI60hxk=";
+    sha256 = "sha256-8cEJw4gCyh3aosck70vdLVYGOL3zR0AOpAMNv/j6rEM=";
   };
 
-  vendorHash = "sha256-i7m9YXPlWqHtvC4Df7v5bLWt2tqeT933t2+Xit5RQxg=";
+  vendorHash = "sha256-k03pRrUzHvVjKt6w40JEiJTvbwhKa/0rjkZQsnmfe68=";
 
   ldflags = [ "-s" "-w" "-X github.com/cloudposse/atmos/cmd.Version=v${version}" ];
 
@@ -36,6 +36,7 @@ buildGoModule rec {
     homepage = "https://atmos.tools";
     changelog = "https://github.com/cloudposse/atmos/releases/tag/v${version}";
     description = "Universal Tool for DevOps and Cloud Automation (works with terraform, helm, helmfile, etc)";
+    mainProgram = "atmos";
     license = licenses.asl20;
     maintainers = with maintainers; [ rb ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix
index ab20b2dc72cc..0daf7ae97ba1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/bosh-cli/default.nix
@@ -8,13 +8,13 @@
 buildGoModule rec {
   pname = "bosh-cli";
 
-  version = "7.5.4";
+  version = "7.5.5";
 
   src = fetchFromGitHub {
     owner = "cloudfoundry";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-aNzKp7QwyhC/ado0NrCyxrRZu+ePGBNSq31/Iw6k6n0=";
+    sha256 = "sha256-LjqMCkEIl+0psxIys/tvJPkEQqDRzLOsaFUfAVG+RrE=";
   };
   vendorHash = null;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cilium/default.nix b/nixpkgs/pkgs/applications/networking/cluster/cilium/default.nix
index 986ed3f09c98..2174bd7bc658 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/cilium/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/cilium/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cilium-cli";
-  version = "0.15.22";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "cilium";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-tjVrcxWXE/eOeVoXnoBHYXk4rA3QqcWDbK1MRZ+v7uE=";
+    hash = "sha256-RJJETvgLdE/fJtd1LMShJ7Hm8/s1zUybhec6YPT44wg=";
   };
 
   vendorHash = null;
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   ldflags = [
     "-s" "-w"
-    "-X github.com/cilium/cilium-cli/cli.Version=${version}"
+    "-X github.com/cilium/cilium-cli/defaults.CLIVersion=${version}"
   ];
 
   # Required to workaround install check error:
@@ -26,7 +26,7 @@ buildGoModule rec {
 
   doInstallCheck = true;
   installCheckPhase = ''
-    $out/bin/cilium version | grep ${version} > /dev/null
+    $out/bin/cilium version --client | grep ${version} > /dev/null
   '';
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/civo/default.nix b/nixpkgs/pkgs/applications/networking/cluster/civo/default.nix
index acb6849bf598..d2f913a765ed 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/civo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/civo/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "civo";
-  version = "1.0.75";
+  version = "1.0.76";
 
   src = fetchFromGitHub {
     owner  = "civo";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-ElhNxrbXywOWQmhgzM56NfGo7qOLn/Ju4/lOOoc5sDk=";
+    sha256 = "sha256-Bk0YfW9KDliaJIqpVxCXTy7EiGGJPZTXcn6SFEmywRE=";
   };
 
-  vendorHash = "sha256-oqitgYSL7nf2Lyne0c2vHOSOEG5uHPH9+3lgiROK2Yc=";
+  vendorHash = "sha256-22n+ks1D65Gk2acCMHxgj19VHDf4B23ivqHfo3J45j0=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -39,6 +39,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI for interacting with Civo resources";
+    mainProgram = "civo";
     homepage = "https://github.com/civo/cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ berryp ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/clusterctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/clusterctl/default.nix
index b2b5390af48b..34add12a8135 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/clusterctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/clusterctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "clusterctl";
-  version = "1.6.2";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = "cluster-api";
     rev = "v${version}";
-    hash = "sha256-OTOM83dsf6Fk+CYkACQOmguDTYfZvN9qes3S/cFEq/8=";
+    hash = "sha256-gyZxEzktbYtQSm1gm4wWJriMo/MjDdgaAxjA7J3jeQ0=";
   };
 
-  vendorHash = "sha256-SwJx3KPdOugDYLLymPyrPam0uMyRWIDpQn79Sd9fhJ4=";
+  vendorHash = "sha256-bMM4d1ji03bICsd6uBqu+0n4rB/SiKjtevQzV0DYHiE=";
 
   subPackages = [ "cmd/clusterctl" ];
 
@@ -41,6 +41,7 @@ buildGoModule rec {
   meta = with lib; {
     changelog = "https://github.com/kubernetes-sigs/cluster-api/releases/tag/${src.rev}";
     description = "Kubernetes cluster API tool";
+    mainProgram = "clusterctl";
     homepage = "https://cluster-api.sigs.k8s.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ qjoly ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cmctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/cmctl/default.nix
index e23af212b554..feb1b03d26fe 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/cmctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/cmctl/default.nix
@@ -8,18 +8,18 @@
 
 buildGoModule rec {
   pname = "cmctl";
-  version = "1.14.3";
+  version = "1.14.4";
 
   src = fetchFromGitHub {
     owner = "cert-manager";
     repo = "cert-manager";
     rev = "v${version}";
-    hash = "sha256-CPHSWGM8zq+Sg0tqdm9kmIyBFpVf1ot40Ud7Mpe1sNI=";
+    hash = "sha256-iUXN+8ueCxGsFnwhC2WjrQQSXV7TGUR80xaKqjxcC6o=";
   };
 
   sourceRoot = "${src.name}/cmd/ctl";
 
-  vendorHash = "sha256-CBX/U9v2ubmPveXUeWbogHDyWVAtU0pyOWAlnRsMs4c=";
+  vendorHash = "sha256-ViKsqqM6l/tQSGgj8Yt2L57x+eE1Pd3xCVPuWpIjWOQ=";
 
   ldflags = [
     "-s"
@@ -50,6 +50,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A CLI tool for managing cert-manager service on Kubernetes clusters";
+    mainProgram = "cmctl";
     longDescription = ''
       cert-manager adds certificates and certificate issuers as resource types
       in Kubernetes clusters, and simplifies the process of obtaining, renewing
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix b/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix
index 33688148985f..6fdeb802ea1c 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Container Network Interface - networking for Linux containers";
+    mainProgram = "cnitool";
     license = licenses.asl20;
     homepage = "https://github.com/containernetworking/cni";
     maintainers = with maintainers; [ offline vdemeester ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix
index 1db39c3cf007..438d51518dff 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cni-plugins";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "containernetworking";
     repo = "plugins";
     rev = "v${version}";
-    hash = "sha256-goXpNpb5tVOHeskRLw3CivYett3RxYBREAI+S74CMFQ=";
+    hash = "sha256-co4jThsUR070aJh1hgXHT6QKW22d8UCmogtZYc4nzlA=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/containerpilot/default.nix b/nixpkgs/pkgs/applications/networking/cluster/containerpilot/default.nix
index dc6e5f3402fa..a255db568125 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/containerpilot/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/containerpilot/default.nix
@@ -17,6 +17,7 @@ buildGoPackage rec {
   meta = with lib; {
     homepage = "https://www.joyent.com/containerpilot";
     description = "An application centric micro-orchestrator.";
+    mainProgram = "containerpilot";
     platforms = platforms.unix;
     license = licenses.mpl20;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/dnsname-cni/default.nix b/nixpkgs/pkgs/applications/networking/cluster/dnsname-cni/default.nix
index 3b6edd575297..c147822b43b5 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/dnsname-cni/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/dnsname-cni/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "DNS name resolution for containers";
+    mainProgram = "dnsname";
     homepage = "https://github.com/containers/dnsname";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
index a35cfab16cd7..c21cf5b4970e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://minikube.sigs.k8s.io/docs/drivers/kvm2";
     description = "KVM2 driver for docker-machine";
+    mainProgram = "docker-machine-driver-kvm2";
     license = licenses.asl20;
     maintainers = with maintainers; [ tadfisher atkinschang ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix
index b116f566c5ce..b976308c4d8a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/driftctl/default.nix
@@ -46,6 +46,7 @@ buildGoModule rec {
     homepage = "https://driftctl.com/";
     changelog = "https://github.com/snyk/driftctl/releases/tag/v${version}";
     description = "Detect, track and alert on infrastructure drift";
+    mainProgram = "driftctl";
     longDescription = ''
       driftctl is a free and open-source CLI that warns of infrastructure drift
       and fills in the missing piece in your DevSecOps toolbox.
diff --git a/nixpkgs/pkgs/applications/networking/cluster/falcoctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/falcoctl/default.nix
index 1c582447fa8a..7a73cc8cea29 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/falcoctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/falcoctl/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Administrative tooling for Falco";
+    mainProgram = "falcoctl";
     homepage = "https://github.com/falcosecurity/falcoctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ developer-guy kranurag7 LucaGuerra ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fetchit/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fetchit/default.nix
index cadc331a9605..a113a5c718f0 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/fetchit/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/fetchit/default.nix
@@ -64,6 +64,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool to manage the life cycle and configuration of Podman containers";
+    mainProgram = "fetchit";
     longDescription = ''
       FetchIt allows for a GitOps based approach to manage containers running on
       a single host or multiple hosts based on a git repository. This allows for
diff --git a/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix b/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix
index 276c6ebea34d..5eed2c4afe6c 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A distributed stream processing framework";
+    mainProgram = "flink";
     homepage = "https://flink.apache.org";
     downloadPage = "https://flink.apache.org/downloads.html";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
index 589193446285..099ef4340235 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI client for Flux, the GitOps Kubernetes operator";
+    mainProgram = "fluxctl";
     homepage = "https://github.com/fluxcd/flux";
     license = licenses.asl20;
     maintainers = with maintainers; [ Gonzih Br1ght0ne ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix
index 299abe58fbd3..07234c75ff8e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/fn-cli/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command-line tool for the fn project";
+    mainProgram = "fn";
     homepage = "https://fnproject.io";
     license = licenses.asl20;
     maintainers = [ maintainers.c4605 ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/func/default.nix b/nixpkgs/pkgs/applications/networking/cluster/func/default.nix
index 7145d1277c9b..7ddb89d1c048 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/func/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/func/default.nix
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The Knative client library and CLI for creating, building, and deploying Knative Functions";
+    mainProgram = "func";
     homepage = "https://github.com/knative/func";
     changelog = "https://github.com/knative/func/releases/tag/knative-v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/gatekeeper/default.nix b/nixpkgs/pkgs/applications/networking/cluster/gatekeeper/default.nix
index 3d36d7c499ed..5558a48d9f8e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/gatekeeper/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/gatekeeper/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "gatekeeper";
-  version = "3.15.0";
+  version = "3.15.1";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "gatekeeper";
     rev = "v${version}";
-    hash = "sha256-Mt9bSgmqjj9KkJJW0F2tr2P8GtSy80h9CfMXvIxyKc4=";
+    hash = "sha256-KPRcY14IeP4WU/cnUG7JWwJcp/LN6O74u417I+qAqXE=";
   };
 
   vendorHash = null;
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Policy Controller for Kubernetes";
+    mainProgram = "gator";
     homepage = "https://github.com/open-policy-agent/gatekeeper";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/glooctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/glooctl/default.nix
index 487fe6085af6..ffe98a73c904 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/glooctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/glooctl/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "glooctl";
-  version = "1.16.5";
+  version = "1.16.8";
 
   src = fetchFromGitHub {
     owner = "solo-io";
     repo = "gloo";
     rev = "v${version}";
-    hash = "sha256-pxF5X3fCBeWFLQj8S0xYDcQNRs375RJIrl62nGjZZr0=";
+    hash = "sha256-M8ZNDt+sO8ZtVM1PyISOsFwXrD6q9ACPG0T99bqwk1c=";
   };
 
-  vendorHash = "sha256-kbbgEnpqev7b4Sycmhs8xbu+yO4oMELh9xDmw7YyWYU=";
+  vendorHash = "sha256-UyzqKpF2WBj25Bm4MtkF6yjl87A61vGsteBNCjJV178=";
 
   subPackages = [ "projects/gloo/cli/cmd" ];
 
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = {
     description = "glooctl is the unified CLI for Gloo";
+    mainProgram = "glooctl";
     homepage = "https://docs.solo.io/gloo-edge/latest/reference/cli/glooctl/";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/hashi-up/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hashi-up/default.nix
index 583a0c32b1d1..de782bef9af1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/hashi-up/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/hashi-up/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A lightweight utility to install HashiCorp Consul, Nomad, or Vault on any remote Linux host";
+    mainProgram = "hashi-up";
     homepage = "https://github.com/jsiebens/hashi-up";
     license = licenses.mit;
     maintainers = with maintainers; [ lucperkins ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm-dashboard/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm-dashboard/default.nix
index bcd24be5c922..e0603ff72136 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm-dashboard/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm-dashboard/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = {
     description = "A simplified way of working with Helm";
+    mainProgram = "helm-dashboard";
     longDescription = ''
       Helm Dashboard is an open-source project which offers a UI-driven way to view the installed Helm charts,
       see their revision history and corresponding k8s resources.
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm-docs/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm-docs/default.nix
index cf286c8dc6f5..dfd3f4f08ea9 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm-docs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm-docs/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "helm-docs";
-  version = "1.11.2";
+  version = "1.13.1";
 
   src = fetchFromGitHub {
     owner = "norwoodj";
     repo = "helm-docs";
     rev = "v${version}";
-    hash = "sha256-w4QV96/02Pbs/l0lTLPYY8Ag21ZDDVPdgvuveiKUCoM=";
+    hash = "sha256-lSGgT+aWp4NgiIoCnR4TNdecEqIZVnKMmGtEingq05o=";
   };
 
-  vendorHash = "sha256-6byD8FdeqdRDNUZFZ7FUUdyTuFOO8s3rb6YPGKdwLB8=";
+  vendorHash = "sha256-LpARmDupT+vUPqUwFnvOGKOaBQbTuTvQnWc5Q2bGBaY=";
 
   subPackages = [ "cmd/helm-docs" ];
   ldflags = [
@@ -23,6 +23,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/norwoodj/helm-docs";
     description = "A tool for automatically generating markdown documentation for Helm charts";
+    mainProgram = "helm-docs";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ sagikazarmark ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
index 4dc1fbd91a34..b46ed8f329b1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "kubernetes-helm";
-  version = "3.14.2";
+  version = "3.14.3";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "sha256-7Cd5lxPSXXCvYLLh334qnDmd9zbF1LMxTNoZEBpzHS4=";
+    sha256 = "sha256-GC9rkB35m+a/9pEvD7aNjE4z3qrv33NES842crrzD3I=";
   };
-  vendorHash = "sha256-pYB9J7Zf6MApGpFL7HzqIDcC/vERiVE4z8SsipIeJ7c=";
+  vendorHash = "sha256-f5tLyq9tP5tdE73Mlee9vAUSHqkUAtAJkwjZP/K6wPM=";
 
   subPackages = [ "cmd/helm" ];
   ldflags = [
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
index 267aceb08298..6926b5498b4c 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
@@ -1,17 +1,17 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGo122Module, fetchFromGitHub, lib }:
 
-buildGoModule rec {
+buildGo122Module rec {
   pname = "helm-diff";
-  version = "3.9.4";
+  version = "3.9.5";
 
   src = fetchFromGitHub {
     owner = "databus23";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-hDni0bAF4tp7upP/D5S6dGN//zaNHidWAYf/l6W9j28=";
+    hash = "sha256-6XkiGSbZzkYnqaHcoZQckADGVcWmSWL87MVzqb98lMQ=";
   };
 
-  vendorHash = "sha256-51xjHGU9TC4Nwa9keR0b7bgwpZcRmG7duT9R1JRr3Uw=";
+  vendorHash = "sha256-E0ERop/TBr36sfTKCD+DdZwHSkhYdGmvKoJF2gl3gwE=";
 
   ldflags = [ "-s" "-w" "-X github.com/databus23/helm-diff/v3/cmd.Version=${version}" ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
index f858f8b2a677..7729ca16881e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-secrets.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "helm-secrets";
-  version = "4.5.1";
+  version = "4.6.0";
 
   src = fetchFromGitHub {
     owner = "jkroepke";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-UB69cGsELQ2CFXVsPV0MDNOYRTYgfA2NXHKbsaZl9NQ=";
+    hash = "sha256-j4mOkPHJKiRWGTZloPBXwbHKOj2Hg44dspySa/KxPT4=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-unittest.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-unittest.nix
index 8e0a72251ca3..69c45c3378ff 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-unittest.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/plugins/helm-unittest.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "helm-unittest";
-  version = "0.4.2";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-51Cx8V0cvuyBLFVmOWpA8X/kpDR67Q5EYZct44ED/ys=";
+    hash = "sha256-2ymsh+GWCjpiTVRIuf0i9+wz6WnwpG0QP6tErabSEFk=";
   };
 
-  vendorHash = "sha256-6tXQ2fbn1ZzImx8luxetXHNj3gIUt217rjXJPxMpjTw=";
+  vendorHash = "sha256-ftD913mz9ziO3XWCdsbONrgMlBIc0uX4gq3NQmkXbs0=";
 
   # NOTE: Remove the install and upgrade hooks.
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
index 258a04c5e84b..f0fa298e7786 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -1,23 +1,23 @@
 { lib
-, buildGoModule
+, buildGo122Module
 , fetchFromGitHub
 , installShellFiles
 , makeWrapper
 , pluginsDir ? null
 }:
 
-buildGoModule rec {
+buildGo122Module rec {
   pname = "helmfile";
-  version = "0.161.0";
+  version = "0.162.0";
 
   src = fetchFromGitHub {
     owner = "helmfile";
     repo = "helmfile";
     rev = "v${version}";
-    sha256 = "sha256-SoXpUAISYgB0qrw0urnVjPFfBc4jtkfDl41MmzfRG/g=";
+    hash = "sha256-BiouIaiYveQe0sTgvuf1R1S0qydLpoxWl958zyVFvWE=";
   };
 
-  vendorHash = "sha256-piGbC9cljBjJ0X2kzNqNnpFmcjnu6DdKizSRGrw/+2c=";
+  vendorHash = "sha256-z6UfyruXLzcH9iLgsM6Wmb1i8PWrroAbhGi2fphYBoA=";
 
   doCheck = false;
 
@@ -41,6 +41,7 @@ buildGoModule rec {
 
   meta = {
     description = "Declarative spec for deploying Helm charts";
+    mainProgram = "helmfile";
     longDescription = ''
       Declaratively deploy your Kubernetes manifests, Kustomize configs,
       and charts as Helm releases in one shot.
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
index 0e0a69496f98..458ecae5ff68 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Helm Charts (k8s applications) as Code tool";
+    mainProgram = "helmsman";
     homepage = "https://github.com/Praqma/helmsman";
     license = licenses.mit;
     maintainers = with maintainers; [ lynty ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix
index a1fceb10ea7b..1519058e8f16 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
 
   meta = {
     description = "A CLI tool for provisioning Kubernetes clusters on Hetzner Cloud";
+    mainProgram = "hetzner-kube";
     homepage = "https://github.com/xetys/hetzner-kube";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ eliasp ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/hubble/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hubble/default.nix
index ecbe56d09885..49d1b10bf3fd 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/hubble/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/hubble/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "hubble";
-  version = "0.13.0";
+  version = "0.13.2";
 
   src = fetchFromGitHub {
     owner = "cilium";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jFzxAzLv3EfqWgbXsN8d0OPY8pDy7OBjJIzr+x5yFF0=";
+    sha256 = "sha256-0SCuQzRwluowF48lzyLxY+0rvTOyDbpkMI7Iwb6GHJo=";
   };
 
   vendorHash = null;
@@ -40,6 +40,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Network, Service & Security Observability for Kubernetes using eBPF";
+    mainProgram = "hubble";
     license = licenses.asl20;
     homepage = "https://github.com/cilium/hubble/";
     maintainers = with maintainers; [ humancalico bryanasdev000 ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
index 4c19d2404834..0deb88ce4230 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "istioctl";
-  version = "1.20.3";
+  version = "1.21.0";
 
   src = fetchFromGitHub {
     owner = "istio";
     repo = "istio";
     rev = version;
-    hash = "sha256-NimwuQj/EvWtXt87LgHWwcZ2hAd548o/agXY4TVK63o=";
+    hash = "sha256-d+4WiMjP9L9tMrShTadXA1k/l1U3jYj/ihP0g3HuYRE=";
   };
-  vendorHash = "sha256-4HzUsTLt4R35TS4jKOmrKW0At9q8W61TU+NTQ/K7Axk=";
+  vendorHash = "sha256-8nvcxBF+ygWkMLbGwJvj1NjGL06xh6mNZvaEbZJw0TM=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -40,6 +40,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Istio configuration command line utility for service operators to debug and diagnose their Istio mesh";
+    mainProgram = "istioctl";
     homepage = "https://istio.io/latest/docs/reference/commands/istioctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ bryanasdev000 veehaitch ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix b/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix
index 204b08962454..0bbee5b74ae0 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Command line tool for installing and using Jenkins X";
+    mainProgram = "jx";
     homepage = "https://jenkins-x.io";
     longDescription = ''
       Jenkins X provides automated CI+CD for Kubernetes with Preview
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3d/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k3d/default.nix
index e74595903b51..fcd97875ff80 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k3d/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3d/default.nix
@@ -61,6 +61,7 @@ buildGoModule rec {
     homepage = "https://github.com/k3d-io/k3d/";
     changelog = "https://github.com/k3d-io/k3d/blob/v${version}/CHANGELOG.md";
     description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container";
+    mainProgram = "k3d";
     longDescription = ''
       k3s is the lightweight Kubernetes distribution by Rancher: rancher/k3s
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_24/chart-versions.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/1_24/chart-versions.nix
deleted file mode 100644
index 8c40604d0f1c..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_24/chart-versions.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-    traefik-crd  = {
-        url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-20.3.1+up20.3.0.tgz";
-        sha256 = "1775vjldvqvhzdbzanxhbaqbmkih09yb91im651q8bc7z5sb9ckn";
-    };
-    traefik = {
-        url = "https://k3s.io/k3s-charts/assets/traefik/traefik-20.3.1+up20.3.0.tgz";
-        sha256 = "1rj0f0n0vgjcbzfwzhqmsd501i2f6vw145w9plbp8gwdyzmg2nc6";
-    };
-}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_24/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/1_24/default.nix
deleted file mode 100644
index 25b615d6718f..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_24/default.nix
+++ /dev/null
@@ -1,332 +0,0 @@
-{ stdenv
-, lib
-, makeWrapper
-, socat
-, iptables
-, iproute2
-, ipset
-, bridge-utils
-, btrfs-progs
-, conntrack-tools
-, buildGoModule
-, runc
-, rsync
-, kmod
-, libseccomp
-, pkg-config
-, ethtool
-, util-linux
-, fetchFromGitHub
-, fetchurl
-, fetchzip
-, fetchgit
-, zstd
-, yq-go
-, sqlite
-, nixosTests
-, k3s
-, pkgsBuildBuild
-}:
-
-# k3s is a kinda weird derivation. One of the main points of k3s is the
-# simplicity of it being one binary that can perform several tasks.
-# However, when you have a good package manager (like nix), that doesn't
-# actually make much of a difference; you don't really care if it's one binary
-# or 10 since with a good package manager, installing and running it is
-# identical.
-# Since upstream k3s packages itself as one large binary with several
-# "personalities" (in the form of subcommands like 'k3s agent' and 'k3s
-# kubectl'), it ends up being easiest to mostly mimic upstream packaging, with
-# some exceptions.
-# K3s also carries patches to some packages (such as containerd and cni
-# plugins), so we intentionally use the k3s versions of those binaries for k3s,
-# even if the upstream version of those binaries exist in nixpkgs already. In
-# the end, that means we have a thick k3s binary that behaves like the upstream
-# one for the most part.
-# However, k3s also bundles several pieces of unpatched software, from the
-# strongswan vpn software, to iptables, to socat, conntrack, busybox, etc.
-# Those pieces of software we entirely ignore upstream's handling of, and just
-# make sure they're in the path if desired.
-let
-  k3sVersion = "1.24.10+k3s1";     # k3s git tag
-  k3sCommit = "546a94e9ae1c3be6f9c0dcde32a6e6672b035bc8"; # k3s git commit at the above version
-  k3sRepoSha256 = "sha256-HfkGb3GtR2wQkVIze26aFh6A6W0fegr8ovpSel7oujQ=";
-  k3sVendorHash = "sha256-YAerisDr/knlKPaO2fVMZA4FUpwshFmkpi3mJAmLqKM=";
-
-  # Based on the traefik charts here: https://github.com/k3s-io/k3s/blob/v1.24.10%2Bk3s1/scripts/download#L29-L32
-  # see also https://github.com/k3s-io/k3s/blob/v1.24.10%2Bk3s1/manifests/traefik.yaml#L8-L16
-  # At the time of writing, there are two traefik charts, and that's it
-  charts = import ./chart-versions.nix;
-
-  # taken from ./scripts/version.sh VERSION_ROOT https://github.com/k3s-io/k3s/blob/v1.24.10%2Bk3s1/scripts/version.sh#L56
-  k3sRootVersion = "0.12.1";
-  k3sRootSha256 = "sha256-xCXbarWztnvW2xn3cGa84hie3OevVZeGEDWh+Uf3RBw=";
-
-  # taken from ./scripts/version.sh VERSION_CNIPLUGINS https://github.com/k3s-io/k3s/blob/v1.24.10%2Bk3s1/scripts/version.sh#L49
-  k3sCNIVersion = "1.1.1-k3s1";
-  k3sCNISha256 = "14mb3zsqibj1sn338gjmsyksbm0mxv9p016dij7zidccx2rzn6nl";
-
-  # taken from go.mod, the 'github.com/containerd/containerd' line
-  # run `grep github.com/containerd/containerd go.mod | head -n1 | awk '{print $4}'`
-  # https://github.com/k3s-io/k3s/blob/v1.24.10%2Bk3s1/go.mod#L10
-  containerdVersion = "1.5.16-k3s1";
-  containerdSha256 = "sha256-dxC44qE1A20Hd2j77Ir9Sla8xncttswWIuGGM/5FWi8=";
-
-  # run `grep github.com/kubernetes-sigs/cri-tools go.mod | head -n1 | awk '{print $4}'` in the k3s repo at the tag
-  # https://github.com/k3s-io/k3s/blob/v1.24.10%2Bk3s1/go.mod#L18
-  criCtlVersion = "1.24.0-k3s1";
-
-  baseMeta = k3s.meta;
-
-  # https://github.com/k3s-io/k3s/blob/5fb370e53e0014dc96183b8ecb2c25a61e891e76/scripts/build#L19-L40
-  versionldflags = [
-    "-X github.com/rancher/k3s/pkg/version.Version=v${k3sVersion}"
-    "-X github.com/rancher/k3s/pkg/version.GitCommit=${lib.substring 0 8 k3sCommit}"
-    "-X k8s.io/client-go/pkg/version.gitVersion=v${k3sVersion}"
-    "-X k8s.io/client-go/pkg/version.gitCommit=${k3sCommit}"
-    "-X k8s.io/client-go/pkg/version.gitTreeState=clean"
-    "-X k8s.io/client-go/pkg/version.buildDate=1970-01-01T01:01:01Z"
-    "-X k8s.io/component-base/version.gitVersion=v${k3sVersion}"
-    "-X k8s.io/component-base/version.gitCommit=${k3sCommit}"
-    "-X k8s.io/component-base/version.gitTreeState=clean"
-    "-X k8s.io/component-base/version.buildDate=1970-01-01T01:01:01Z"
-    "-X github.com/kubernetes-sigs/cri-tools/pkg/version.Version=v${criCtlVersion}"
-    "-X github.com/containerd/containerd/version.Version=v${containerdVersion}"
-    "-X github.com/containerd/containerd/version.Package=github.com/k3s-io/containerd"
-  ];
-
-  # bundled into the k3s binary
-  traefikChart = fetchurl charts.traefik;
-  traefik-crdChart = fetchurl charts.traefik-crd;
-
-  # so, k3s is a complicated thing to package
-  # This derivation attempts to avoid including any random binaries from the
-  # internet. k3s-root is _mostly_ binaries built to be bundled in k3s (which
-  # we don't care about doing, we can add those as build or runtime
-  # dependencies using a real package manager).
-  # In addition to those binaries, it's also configuration though (right now
-  # mostly strongswan configuration), and k3s does use those files.
-  # As such, we download it in order to grab 'etc' and bundle it into the final
-  # k3s binary.
-  k3sRoot = fetchzip {
-    # Note: marked as apache 2.0 license
-    url = "https://github.com/k3s-io/k3s-root/releases/download/v${k3sRootVersion}/k3s-root-amd64.tar";
-    sha256 = k3sRootSha256;
-    stripRoot = false;
-  };
-  k3sCNIPlugins = buildGoModule rec {
-    pname = "k3s-cni-plugins";
-    version = k3sCNIVersion;
-    vendorHash = null;
-
-    subPackages = [ "." ];
-
-    src = fetchFromGitHub {
-      owner = "rancher";
-      repo = "plugins";
-      rev = "v${version}";
-      sha256 = k3sCNISha256;
-    };
-
-    postInstall = ''
-      mv $out/bin/plugins $out/bin/cni
-    '';
-
-    meta = baseMeta // {
-      description = "CNI plugins, as patched by rancher for k3s";
-    };
-  };
-  # Grab this separately from a build because it's used by both stages of the
-  # k3s build.
-  k3sRepo = fetchgit {
-    url = "https://github.com/k3s-io/k3s";
-    rev = "v${k3sVersion}";
-    sha256 = k3sRepoSha256;
-  };
-  # Stage 1 of the k3s build:
-  # Let's talk about how k3s is structured.
-  # One of the ideas of k3s is that there's the single "k3s" binary which can
-  # do everything you need, from running a k3s server, to being a worker node,
-  # to running kubectl.
-  # The way that actually works is that k3s is a single go binary that contains
-  # a bunch of bindata that it unpacks at runtime into directories (either the
-  # user's home directory or /var/lib/rancher if run as root).
-  # This bindata includes both binaries and configuration.
-  # In order to let nixpkgs do all its autostripping/patching/etc, we split this into two derivations.
-  # First, we build all the binaries that get packed into the thick k3s binary
-  # (and output them from one derivation so they'll all be suitably patched up).
-  # Then, we bundle those binaries into our thick k3s binary and use that as
-  # the final single output.
-  # This approach was chosen because it ensures the bundled binaries all are
-  # correctly built to run with nix (we can lean on the existing buildGoModule
-  # stuff), and we can again lean on that tooling for the final k3s binary too.
-  # Other alternatives would be to manually run the
-  # strip/patchelf/remove-references step ourselves in the installPhase of the
-  # derivation when we've built all the binaries, but haven't bundled them in
-  # with generated bindata yet.
-
-  k3sServer = buildGoModule rec {
-    pname = "k3s-server";
-    version = k3sVersion;
-
-    src = k3sRepo;
-    vendorHash = k3sVendorHash;
-
-    nativeBuildInputs = [ pkg-config ];
-    buildInputs = [ libseccomp sqlite.dev ];
-
-    subPackages = [ "cmd/server" ];
-    ldflags = versionldflags;
-
-    tags = [ "libsqlite3" "linux" ];
-
-    # create the multicall symlinks for k3s
-    postInstall = ''
-      mv $out/bin/server $out/bin/k3s
-      pushd $out
-      # taken verbatim from https://github.com/k3s-io/k3s/blob/v1.24.10%2Bk3s1/scripts/build#L123-L131
-      ln -s k3s ./bin/k3s-agent
-      ln -s k3s ./bin/k3s-server
-      ln -s k3s ./bin/k3s-etcd-snapshot
-      ln -s k3s ./bin/k3s-secrets-encrypt
-      ln -s k3s ./bin/k3s-certificate
-      ln -s k3s ./bin/k3s-completion
-      ln -s k3s ./bin/kubectl
-      ln -s k3s ./bin/crictl
-      ln -s k3s ./bin/ctr
-      popd
-    '';
-
-    meta = baseMeta // {
-      description = "The various binaries that get packaged into the final k3s binary";
-    };
-  };
-  k3sContainerd = buildGoModule {
-    pname = "k3s-containerd";
-    version = containerdVersion;
-    src = fetchFromGitHub {
-      owner = "k3s-io";
-      repo = "containerd";
-      rev = "v${containerdVersion}";
-      sha256 = containerdSha256;
-    };
-    vendorHash = null;
-    buildInputs = [ btrfs-progs ];
-    subPackages = [ "cmd/containerd" "cmd/containerd-shim-runc-v2" ];
-    ldflags = versionldflags;
-  };
-in
-buildGoModule rec {
-  pname = "k3s";
-  version = k3sVersion;
-
-  src = k3sRepo;
-  vendorHash = k3sVendorHash;
-
-  postPatch = ''
-    # Nix prefers dynamically linked binaries over static binary.
-
-    substituteInPlace scripts/package-cli \
-      --replace '"$LDFLAGS $STATIC" -o' \
-                '"$LDFLAGS" -o' \
-      --replace "STATIC=\"-extldflags \'-static\'\"" \
-                ""
-
-    # Upstream codegen fails with trimpath set. Removes "trimpath" for 'go generate':
-
-    substituteInPlace scripts/package-cli \
-      --replace '"''${GO}" generate' \
-                'GOFLAGS="" \
-                 GOOS="${pkgsBuildBuild.go.GOOS}" \
-                 GOARCH="${pkgsBuildBuild.go.GOARCH}" \
-                 CC="${pkgsBuildBuild.stdenv.cc}/bin/cc" \
-                 "''${GO}" generate'
-  '';
-
-  # Important utilities used by the kubelet, see
-  # https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-237202494
-  # Note the list in that issue is stale and some aren't relevant for k3s.
-  k3sRuntimeDeps = [
-    kmod
-    socat
-    iptables
-    iproute2
-    ipset
-    bridge-utils
-    ethtool
-    util-linux # kubelet wants 'nsenter' from util-linux: https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-705994388
-    conntrack-tools
-  ];
-
-  buildInputs = k3sRuntimeDeps;
-
-  nativeBuildInputs = [
-    makeWrapper
-    rsync
-    yq-go
-    zstd
-  ];
-
-  # embedded in the final k3s cli
-  propagatedBuildInputs = [
-    k3sCNIPlugins
-    k3sContainerd
-    k3sServer
-    runc
-  ];
-
-  # We override most of buildPhase due to peculiarities in k3s's build.
-  # Specifically, it has a 'go generate' which runs part of the package. See
-  # this comment:
-  # https://github.com/NixOS/nixpkgs/pull/158089#discussion_r799965694
-  # So, why do we use buildGoModule at all? For the `vendorHash` / `go mod download` stuff primarily.
-  buildPhase = ''
-    patchShebangs ./scripts/package-cli ./scripts/download ./scripts/build-upload
-
-    # copy needed 'go generate' inputs into place
-    mkdir -p ./bin/aux
-    rsync -a --no-perms ${k3sServer}/bin/ ./bin/
-    ln -vsf ${runc}/bin/runc ./bin/runc
-    ln -vsf ${k3sCNIPlugins}/bin/cni ./bin/cni
-    ln -vsf ${k3sContainerd}/bin/* ./bin/
-    rsync -a --no-perms --chmod u=rwX ${k3sRoot}/etc/ ./etc/
-    mkdir -p ./build/static/charts
-
-    cp ${traefikChart} ./build/static/charts
-    cp ${traefik-crdChart} ./build/static/charts
-
-    export ARCH=$GOARCH
-    export DRONE_TAG="v${k3sVersion}"
-    export DRONE_COMMIT="${k3sCommit}"
-    # use ./scripts/package-cli to run 'go generate' + 'go build'
-
-    ./scripts/package-cli
-    mkdir -p $out/bin
-  '';
-
-  # Otherwise it depends on 'getGoDirs', which is normally set in buildPhase
-  doCheck = false;
-
-  installPhase = ''
-    # wildcard to match the arm64 build too
-    install -m 0755 dist/artifacts/k3s* -D $out/bin/k3s
-    wrapProgram $out/bin/k3s \
-      --prefix PATH : ${lib.makeBinPath k3sRuntimeDeps} \
-      --prefix PATH : "$out/bin"
-    ln -s $out/bin/k3s $out/bin/kubectl
-    ln -s $out/bin/k3s $out/bin/crictl
-    ln -s $out/bin/k3s $out/bin/ctr
-  '';
-
-  doInstallCheck = true;
-  installCheckPhase = ''
-    $out/bin/k3s --version | grep -F "v${k3sVersion}" >/dev/null
-  '';
-
-  # Fix-Me: Needs to be adapted specifically for 1.24
-  # passthru.updateScript = ./update.sh;
-
-  passthru.tests = k3s.passthru.mkTests k3sVersion;
-
-  meta = baseMeta;
-}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_25/0001-script-download-strip-downloading-just-package-CRD.patch b/nixpkgs/pkgs/applications/networking/cluster/k3s/1_25/0001-script-download-strip-downloading-just-package-CRD.patch
deleted file mode 100644
index 115fd6824772..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_25/0001-script-download-strip-downloading-just-package-CRD.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 6f53bd36a40da4c71486e3b79f6e32d53d6eea5d Mon Sep 17 00:00:00 2001
-From: Euan Kemp <euank@euank.com>
-Date: Thu, 3 Feb 2022 23:50:40 -0800
-Subject: [PATCH 2/2] scrips/download: strip downloading, just package CRD
-
-The CRD packaging is a complicated set of commands, so let's reuse it.
----
- scripts/download | 10 ++--------
- 1 file changed, 2 insertions(+), 8 deletions(-)
-
-diff --git a/scripts/download b/scripts/download
-index 5effc0562a..82361803ee 100755
---- a/scripts/download
-+++ b/scripts/download
-@@ -24,12 +24,6 @@ rm -rf ${CONTAINERD_DIR}
- mkdir -p ${CHARTS_DIR}
- mkdir -p ${DATA_DIR}
- 
--curl --compressed -sfL https://github.com/k3s-io/k3s-root/releases/download/${VERSION_ROOT}/k3s-root-${ARCH}.tar | tar xf - --exclude=bin/socat
--
--git clone --single-branch --branch=${VERSION_RUNC} --depth=1 https://github.com/opencontainers/runc ${RUNC_DIR}
--
--git clone --single-branch --branch=${VERSION_CONTAINERD} --depth=1 https://github.com/k3s-io/containerd ${CONTAINERD_DIR}
--
- setup_tmp() {
-     TMP_DIR=$(mktemp -d --tmpdir=${CHARTS_DIR})
-     cleanup() {
-@@ -44,8 +38,8 @@ setup_tmp() {
- 
- download_and_package_traefik () {
-   echo "Downloading Traefik Helm chart from ${TRAEFIK_URL}"
--  curl -sfL ${TRAEFIK_URL} -o ${TMP_DIR}/${TRAEFIK_FILE}
--  code=$?
-+  # nixpkgs: copy in our known traefik chart instead
-+  cp $TRAEFIK_CHART_FILE ${TMP_DIR}/${TRAEFIK_FILE}
- 
-   if [ $code -ne 0 ]; then
-     echo "Error: Failed to download Traefik Helm chart!"
--- 
-2.34.1
-
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_25/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/1_25/default.nix
deleted file mode 100644
index 7ea3ff7867e6..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_25/default.nix
+++ /dev/null
@@ -1,336 +0,0 @@
-{ stdenv
-, lib
-, makeWrapper
-, socat
-, iptables
-, iproute2
-, ipset
-, bridge-utils
-, btrfs-progs
-, conntrack-tools
-, buildGoModule
-, runc
-, rsync
-, kmod
-, libseccomp
-, pkg-config
-, ethtool
-, util-linux
-, fetchFromGitHub
-, fetchurl
-, fetchzip
-, fetchgit
-, zstd
-, yq-go
-, sqlite
-, nixosTests
-, pkgsBuildBuild
-, k3s
-}:
-
-# k3s is a kinda weird derivation. One of the main points of k3s is the
-# simplicity of it being one binary that can perform several tasks.
-# However, when you have a good package manager (like nix), that doesn't
-# actually make much of a difference; you don't really care if it's one binary
-# or 10 since with a good package manager, installing and running it is
-# identical.
-# Since upstream k3s packages itself as one large binary with several
-# "personalities" (in the form of subcommands like 'k3s agent' and 'k3s
-# kubectl'), it ends up being easiest to mostly mimic upstream packaging, with
-# some exceptions.
-# K3s also carries patches to some packages (such as containerd and cni
-# plugins), so we intentionally use the k3s versions of those binaries for k3s,
-# even if the upstream version of those binaries exist in nixpkgs already. In
-# the end, that means we have a thick k3s binary that behaves like the upstream
-# one for the most part.
-# However, k3s also bundles several pieces of unpatched software, from the
-# strongswan vpn software, to iptables, to socat, conntrack, busybox, etc.
-# Those pieces of software we entirely ignore upstream's handling of, and just
-# make sure they're in the path if desired.
-let
-  k3sVersion = "1.25.3+k3s1";     # k3s git tag
-  k3sCommit = "f2585c1671b31b4b34bddbb3bf4e7d69662b0821"; # k3s git commit at the above version
-  k3sRepoSha256 = "0zwf3iwjcidx14zw36s1hr0q8wmmbfc0rfqwd7fmpjq597h8zkms";
-  k3sVendorHash = "sha256-U67tJRGqPFk5AfRe7I50zKGC9HJ2oh+iI/C7qF/76BQ=";
-
-  # taken from ./manifests/traefik.yaml, extracted from '.spec.chart' https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/download#L9
-  # The 'patch' and 'minor' versions are currently hardcoded as single digits only, so ignore the trailing two digits. Weird, I know.
-  traefikChartVersion = "12.0.0";
-  traefikChartSha256 = "1sqmi71fi3ad5dh5fmsp9mv80x6pkgqwi4r9fr8l6i9sdnai6f1a";
-
-  # taken from ./scripts/version.sh VERSION_ROOT https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/version.sh#L47
-  k3sRootVersion = "0.11.0";
-  k3sRootSha256 = "016n56vi09xkvjph7wgzb2m86mhd5x65fs4d11pmh20hl249r620";
-
-  # taken from ./scripts/version.sh VERSION_CNIPLUGINS https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/version.sh#L45
-  k3sCNIVersion = "1.1.1-k3s1";
-  k3sCNISha256 = "14mb3zsqibj1sn338gjmsyksbm0mxv9p016dij7zidccx2rzn6nl";
-
-  # taken from go.mod, the 'github.com/containerd/containerd' line
-  # run `grep github.com/containerd/containerd go.mod | head -n1 | awk '{print $4}'`
-  containerdVersion = "1.5.13-k3s2";
-  containerdSha256 = "1pfr2ji4aij9js90gf4a3hqnhyw5hshcjdccm62l700j68gs5z97";
-
-  # run `grep github.com/kubernetes-sigs/cri-tools go.mod | head -n1 | awk '{print $4}'` in the k3s repo at the tag
-  criCtlVersion = "1.25.0-k3s1";
-
-  baseMeta = k3s.meta;
-
-  # https://github.com/k3s-io/k3s/blob/5fb370e53e0014dc96183b8ecb2c25a61e891e76/scripts/build#L19-L40
-  versionldflags = [
-    "-X github.com/rancher/k3s/pkg/version.Version=v${k3sVersion}"
-    "-X github.com/rancher/k3s/pkg/version.GitCommit=${lib.substring 0 8 k3sCommit}"
-    "-X k8s.io/client-go/pkg/version.gitVersion=v${k3sVersion}"
-    "-X k8s.io/client-go/pkg/version.gitCommit=${k3sCommit}"
-    "-X k8s.io/client-go/pkg/version.gitTreeState=clean"
-    "-X k8s.io/client-go/pkg/version.buildDate=1970-01-01T01:01:01Z"
-    "-X k8s.io/component-base/version.gitVersion=v${k3sVersion}"
-    "-X k8s.io/component-base/version.gitCommit=${k3sCommit}"
-    "-X k8s.io/component-base/version.gitTreeState=clean"
-    "-X k8s.io/component-base/version.buildDate=1970-01-01T01:01:01Z"
-    "-X github.com/kubernetes-sigs/cri-tools/pkg/version.Version=v${criCtlVersion}"
-    "-X github.com/containerd/containerd/version.Version=v${containerdVersion}"
-    "-X github.com/containerd/containerd/version.Package=github.com/k3s-io/containerd"
-  ];
-
-  # bundled into the k3s binary
-  traefikChart = fetchurl {
-    url = "https://helm.traefik.io/traefik/traefik-${traefikChartVersion}.tgz";
-    sha256 = traefikChartSha256;
-  };
-  # so, k3s is a complicated thing to package
-  # This derivation attempts to avoid including any random binaries from the
-  # internet. k3s-root is _mostly_ binaries built to be bundled in k3s (which
-  # we don't care about doing, we can add those as build or runtime
-  # dependencies using a real package manager).
-  # In addition to those binaries, it's also configuration though (right now
-  # mostly strongswan configuration), and k3s does use those files.
-  # As such, we download it in order to grab 'etc' and bundle it into the final
-  # k3s binary.
-  k3sRoot = fetchzip {
-    # Note: marked as apache 2.0 license
-    url = "https://github.com/k3s-io/k3s-root/releases/download/v${k3sRootVersion}/k3s-root-amd64.tar";
-    sha256 = k3sRootSha256;
-    stripRoot = false;
-  };
-  k3sCNIPlugins = buildGoModule rec {
-    pname = "k3s-cni-plugins";
-    version = k3sCNIVersion;
-    vendorHash = null;
-
-    subPackages = [ "." ];
-
-    src = fetchFromGitHub {
-      owner = "rancher";
-      repo = "plugins";
-      rev = "v${version}";
-      sha256 = k3sCNISha256;
-    };
-
-    postInstall = ''
-      mv $out/bin/plugins $out/bin/cni
-    '';
-
-    meta = baseMeta // {
-      description = "CNI plugins, as patched by rancher for k3s";
-    };
-  };
-  # Grab this separately from a build because it's used by both stages of the
-  # k3s build.
-  k3sRepo = fetchgit {
-    url = "https://github.com/k3s-io/k3s";
-    rev = "v${k3sVersion}";
-    sha256 = k3sRepoSha256;
-  };
-  # Stage 1 of the k3s build:
-  # Let's talk about how k3s is structured.
-  # One of the ideas of k3s is that there's the single "k3s" binary which can
-  # do everything you need, from running a k3s server, to being a worker node,
-  # to running kubectl.
-  # The way that actually works is that k3s is a single go binary that contains
-  # a bunch of bindata that it unpacks at runtime into directories (either the
-  # user's home directory or /var/lib/rancher if run as root).
-  # This bindata includes both binaries and configuration.
-  # In order to let nixpkgs do all its autostripping/patching/etc, we split this into two derivations.
-  # First, we build all the binaries that get packed into the thick k3s binary
-  # (and output them from one derivation so they'll all be suitably patched up).
-  # Then, we bundle those binaries into our thick k3s binary and use that as
-  # the final single output.
-  # This approach was chosen because it ensures the bundled binaries all are
-  # correctly built to run with nix (we can lean on the existing buildGoModule
-  # stuff), and we can again lean on that tooling for the final k3s binary too.
-  # Other alternatives would be to manually run the
-  # strip/patchelf/remove-references step ourselves in the installPhase of the
-  # derivation when we've built all the binaries, but haven't bundled them in
-  # with generated bindata yet.
-
-  k3sServer = buildGoModule rec {
-    pname = "k3s-server";
-    version = k3sVersion;
-
-    src = k3sRepo;
-    vendorHash = k3sVendorHash;
-
-    nativeBuildInputs = [ pkg-config ];
-    buildInputs = [ libseccomp sqlite.dev ];
-
-    subPackages = [ "cmd/server" ];
-    ldflags = versionldflags;
-
-    tags = [ "libsqlite3" "linux" ];
-
-    # create the multicall symlinks for k3s
-    postInstall = ''
-      mv $out/bin/server $out/bin/k3s
-      pushd $out
-      # taken verbatim from https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/build#L105-L113
-      ln -s k3s ./bin/k3s-agent
-      ln -s k3s ./bin/k3s-server
-      ln -s k3s ./bin/k3s-etcd-snapshot
-      ln -s k3s ./bin/k3s-secrets-encrypt
-      ln -s k3s ./bin/k3s-certificate
-      ln -s k3s ./bin/kubectl
-      ln -s k3s ./bin/crictl
-      ln -s k3s ./bin/ctr
-      popd
-    '';
-
-    meta = baseMeta // {
-      description = "The various binaries that get packaged into the final k3s binary";
-    };
-  };
-  k3sContainerd = buildGoModule {
-    pname = "k3s-containerd";
-    version = containerdVersion;
-    src = fetchFromGitHub {
-      owner = "k3s-io";
-      repo = "containerd";
-      rev = "v${containerdVersion}";
-      sha256 = containerdSha256;
-    };
-    vendorHash = null;
-    buildInputs = [ btrfs-progs ];
-    subPackages = [ "cmd/containerd" "cmd/containerd-shim-runc-v2" ];
-    ldflags = versionldflags;
-  };
-in
-buildGoModule rec {
-  pname = "k3s";
-  version = k3sVersion;
-
-  src = k3sRepo;
-  vendorHash = k3sVendorHash;
-
-  patches = [
-    ./0001-script-download-strip-downloading-just-package-CRD.patch
-  ];
-
-  postPatch = ''
-    # Nix prefers dynamically linked binaries over static binary.
-
-    substituteInPlace scripts/package-cli \
-      --replace '"$LDFLAGS $STATIC" -o' \
-                '"$LDFLAGS" -o' \
-      --replace "STATIC=\"-extldflags \'-static\'\"" \
-                ""
-
-    # Upstream codegen fails with trimpath set. Removes "trimpath" for 'go generate':
-
-    substituteInPlace scripts/package-cli \
-      --replace '"''${GO}" generate' \
-                'GOFLAGS="" \
-                 GOOS="${pkgsBuildBuild.go.GOOS}" \
-                 GOARCH="${pkgsBuildBuild.go.GOARCH}" \
-                 CC="${pkgsBuildBuild.stdenv.cc}/bin/cc" \
-                 "''${GO}" generate'
-  '';
-
-  # Important utilities used by the kubelet, see
-  # https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-237202494
-  # Note the list in that issue is stale and some aren't relevant for k3s.
-  k3sRuntimeDeps = [
-    kmod
-    socat
-    iptables
-    iproute2
-    ipset
-    bridge-utils
-    ethtool
-    util-linux # kubelet wants 'nsenter' from util-linux: https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-705994388
-    conntrack-tools
-  ];
-
-  buildInputs = k3sRuntimeDeps;
-
-  nativeBuildInputs = [
-    makeWrapper
-    rsync
-    yq-go
-    zstd
-  ];
-
-  # embedded in the final k3s cli
-  propagatedBuildInputs = [
-    k3sCNIPlugins
-    k3sContainerd
-    k3sServer
-    runc
-  ];
-
-  # We override most of buildPhase due to peculiarities in k3s's build.
-  # Specifically, it has a 'go generate' which runs part of the package. See
-  # this comment:
-  # https://github.com/NixOS/nixpkgs/pull/158089#discussion_r799965694
-  # So, why do we use buildGoModule at all? For the `vendorHash` / `go mod download` stuff primarily.
-  buildPhase = ''
-    patchShebangs ./scripts/package-cli ./scripts/download ./scripts/build-upload
-
-    # copy needed 'go generate' inputs into place
-    mkdir -p ./bin/aux
-    rsync -a --no-perms ${k3sServer}/bin/ ./bin/
-    ln -vsf ${runc}/bin/runc ./bin/runc
-    ln -vsf ${k3sCNIPlugins}/bin/cni ./bin/cni
-    ln -vsf ${k3sContainerd}/bin/* ./bin/
-    rsync -a --no-perms --chmod u=rwX ${k3sRoot}/etc/ ./etc/
-    mkdir -p ./build/static/charts
-    # Note, upstream's chart has a 00 suffix. This seems to not matter though, so we're ignoring that naming detail.
-    export TRAEFIK_CHART_FILE=${traefikChart}
-    # place the traefik chart using their code since it's complicated
-    # We trim the actual download, see patches
-    ./scripts/download
-
-    export ARCH=$GOARCH
-    export DRONE_TAG="v${k3sVersion}"
-    export DRONE_COMMIT="${k3sCommit}"
-    # use ./scripts/package-cli to run 'go generate' + 'go build'
-
-    ./scripts/package-cli
-    mkdir -p $out/bin
-  '';
-
-  # Otherwise it depends on 'getGoDirs', which is normally set in buildPhase
-  doCheck = false;
-
-  installPhase = ''
-    # wildcard to match the arm64 build too
-    install -m 0755 dist/artifacts/k3s* -D $out/bin/k3s
-    wrapProgram $out/bin/k3s \
-      --prefix PATH : ${lib.makeBinPath k3sRuntimeDeps} \
-      --prefix PATH : "$out/bin"
-    ln -s $out/bin/k3s $out/bin/kubectl
-    ln -s $out/bin/k3s $out/bin/crictl
-    ln -s $out/bin/k3s $out/bin/ctr
-  '';
-
-  doInstallCheck = true;
-  installCheckPhase = ''
-    $out/bin/k3s --version | grep -F "v${k3sVersion}" >/dev/null
-  '';
-
-  # Fix-Me: Needs to be adapted specifically for 1.25
-  # passthru.updateScript = ./update.sh;
-
-  passthru.tests = k3s.passthru.mkTests k3sVersion;
-
-  meta = baseMeta;
-}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_26/chart-versions.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/1_26/chart-versions.nix
index d3ff99358af2..1acca4d0e101 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_26/chart-versions.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/1_26/chart-versions.nix
@@ -1,10 +1,10 @@
 {
     traefik-crd  = {
-        url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-21.2.1+up21.2.0.tgz";
-        sha256 = "05j3vyikb7g2z2i07rij9h4ki5lb2hb2rynpiqfd4l1y5qm0qhw9";
+        url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-25.0.2+up25.0.0.tgz";
+        sha256 = "0jygzsn5pxzf7423x5iqfffgx5xvm7c7hfck46y7vpv1fdkiipcq";
     };
     traefik = {
-        url = "https://k3s.io/k3s-charts/assets/traefik/traefik-21.2.1+up21.2.0.tgz";
-        sha256 = "0gvz0yzph2893scd0q10b938yc7f36b3zqs57pkjgqqpl1d0nwhg";
+        url = "https://k3s.io/k3s-charts/assets/traefik/traefik-25.0.2+up25.0.0.tgz";
+        sha256 = "1g9n19lnqdkmbbr3rnbwc854awha0kqqfwyxanyx1lg5ww8ldp89";
     };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_26/versions.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/1_26/versions.nix
index 5bbfbcf380a5..efca8313d584 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_26/versions.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/1_26/versions.nix
@@ -1,14 +1,14 @@
 {
-  k3sVersion = "1.26.9+k3s1";
-  k3sCommit = "4e217286a7ea41b82f1b67ab851d444ecf9a0f9b";
-  k3sRepoSha256 = "1rf2gzf3ilcd1gc6d4k1w6cficr70x8lwzcq81njpz72dr6883z3";
-  k3sVendorHash = "sha256-heCQNRaa0qFNkL69KEiIH2qEg+pukgS+fLOSWcwFddA=";
+  k3sVersion = "1.26.14+k3s1";
+  k3sCommit = "c7e6922aa84369b3c0d28bb800e67bb162895a1c";
+  k3sRepoSha256 = "1spvyyzk711g4ik1pv21xaasy7va5l5gcvbfkamfv4ijn0wz4mjx";
+  k3sVendorHash = "sha256-ursq2Vq1J9MdkwDl3kKioxizhR46yo2urNc3VpwVH2A=";
   chartVersions = import ./chart-versions.nix;
   k3sRootVersion = "0.12.2";
   k3sRootSha256 = "1gjynvr350qni5mskgm7pcc7alss4gms4jmkiv453vs8mmma9c9k";
-  k3sCNIVersion = "1.3.0-k3s1";
-  k3sCNISha256 = "0zma9g4wvdnhs9igs03xlx15bk2nq56j73zns9xgqmfiixd9c9av";
-  containerdVersion = "1.7.6-k3s1.26";
-  containerdSha256 = "1bj7nggfmkrrgm5yk08p665z1mw1y376k4g3vjbkqldfglzpx7sq";
+  k3sCNIVersion = "1.4.0-k3s2";
+  k3sCNISha256 = "17dg6jgjx18nrlyfmkv14dhzxsljz4774zgwz5dchxcf38bvarqa";
+  containerdVersion = "1.7.11-k3s2.26";
+  containerdSha256 = "0413a81kzb05xkklwyngg8g6a0w4icsi938rim69jmr2sijc89ww";
   criCtlVersion = "1.26.0-rc.0-k3s1";
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_27/versions.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/1_27/versions.nix
index 596f21ab55cd..de7fbe181351 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_27/versions.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/1_27/versions.nix
@@ -1,13 +1,13 @@
 {
-  k3sVersion = "1.27.9+k3s1";
-  k3sCommit = "2c249a39358bd36438ab53aedef5487d950fd558";
-  k3sRepoSha256 = "16zcp1ih34zpz6115ivbcs49n5yikgj8mpiv177jvvb2vakmkgv6";
-  k3sVendorHash = "sha256-zvoBN1mErSXovv/xVzjntHyZjVyCfPzsOdlcTSIwKus=";
+  k3sVersion = "1.27.11+k3s1";
+  k3sCommit = "06d6bc80b469a61e5e90438b1f2639cd136a89e7";
+  k3sRepoSha256 = "0qkm8yqs9p34kb5k2q0j5wiykj78qc12n65n0clas5by23jrqcqa";
+  k3sVendorHash = "sha256-+z8pr30+28puv7yjA7ZvW++I0ipNEmen2OhCxFMzYOY=";
   chartVersions = import ./chart-versions.nix;
   k3sRootVersion = "0.12.2";
   k3sRootSha256 = "1gjynvr350qni5mskgm7pcc7alss4gms4jmkiv453vs8mmma9c9k";
-  k3sCNIVersion = "1.3.0-k3s1";
-  k3sCNISha256 = "0zma9g4wvdnhs9igs03xlx15bk2nq56j73zns9xgqmfiixd9c9av";
+  k3sCNIVersion = "1.4.0-k3s2";
+  k3sCNISha256 = "17dg6jgjx18nrlyfmkv14dhzxsljz4774zgwz5dchxcf38bvarqa";
   containerdVersion = "1.7.11-k3s2.27";
   containerdSha256 = "0xjxc5dgh3drk2glvcabd885damjffp9r4cs0cm1zgnrrbhlipra";
   criCtlVersion = "1.26.0-rc.0-k3s1";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_28/versions.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/1_28/versions.nix
index 2b8085795577..24e04c89aca9 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_28/versions.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/1_28/versions.nix
@@ -1,13 +1,13 @@
 {
-  k3sVersion = "1.28.6+k3s2";
-  k3sCommit = "c9f49a3b06cd7ebe793f8cc1dcd0293168e743d9";
-  k3sRepoSha256 = "0vz5976q58v9x6g1qz6kz3xksgf8gm1f727ccckmpbyxbhw75zsa";
-  k3sVendorHash = "sha256-HG4x3N/F5qCFpLxGrUWPkBHHqY7WBRDWN7DNyAcJwyI=";
+  k3sVersion = "1.28.7+k3s1";
+  k3sCommit = "051b14b248655896fdfd7ba6c93db6182cde7431";
+  k3sRepoSha256 = "1136h9xwg1p26lh3m63a4c55qsahla0d0xvlr09qqbhqiyv7fn0b";
+  k3sVendorHash = "sha256-FzalTtDleFIN12lvn0k7+nWchr6y/Ztcxs0bs2E4UO0=";
   chartVersions = import ./chart-versions.nix;
   k3sRootVersion = "0.12.2";
   k3sRootSha256 = "1gjynvr350qni5mskgm7pcc7alss4gms4jmkiv453vs8mmma9c9k";
-  k3sCNIVersion = "1.3.0-k3s1";
-  k3sCNISha256 = "0zma9g4wvdnhs9igs03xlx15bk2nq56j73zns9xgqmfiixd9c9av";
+  k3sCNIVersion = "1.4.0-k3s2";
+  k3sCNISha256 = "17dg6jgjx18nrlyfmkv14dhzxsljz4774zgwz5dchxcf38bvarqa";
   containerdVersion = "1.7.11-k3s2";
   containerdSha256 = "0279sil02wz7310xhrgmdbc0r2qibj9lafy0i9k24jdrh74icmib";
   criCtlVersion = "1.26.0-rc.0-k3s1";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_29/versions.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/1_29/versions.nix
index bfb337a9824b..fcdd8e91a215 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/1_29/versions.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/1_29/versions.nix
@@ -1,13 +1,13 @@
 {
-  k3sVersion = "1.29.1+k3s2";
-  k3sCommit = "57482a1c1bb9c67b5f893418a114edca1004258e";
-  k3sRepoSha256 = "0pvab3dd6dzgk1zgra4jmdwba5b8xssfjr3mihwq1h0c5bxf1cza";
-  k3sVendorHash = "sha256-EkRbdUoYpK7M+Wbc2Cf37bOwdwPB6/xLxULO7Bkpt5c=";
+  k3sVersion = "1.29.2+k3s1";
+  k3sCommit = "86f102134ed6b1669badd3bfb6420f73e8f015d0";
+  k3sRepoSha256 = "0gd35ficik92x4svcg4mlw1v6vms7sfw1asmdahh16li4j27wdz5";
+  k3sVendorHash = "sha256-KG795CA3l+iCdJlYMNTQLmv3YqmtM2juacbsmH7B//M=";
   chartVersions = import ./chart-versions.nix;
   k3sRootVersion = "0.12.2";
   k3sRootSha256 = "1gjynvr350qni5mskgm7pcc7alss4gms4jmkiv453vs8mmma9c9k";
-  k3sCNIVersion = "1.3.0-k3s1";
-  k3sCNISha256 = "0zma9g4wvdnhs9igs03xlx15bk2nq56j73zns9xgqmfiixd9c9av";
+  k3sCNIVersion = "1.4.0-k3s2";
+  k3sCNISha256 = "17dg6jgjx18nrlyfmkv14dhzxsljz4774zgwz5dchxcf38bvarqa";
   containerdVersion = "1.7.11-k3s2";
   containerdSha256 = "0279sil02wz7310xhrgmdbc0r2qibj9lafy0i9k24jdrh74icmib";
   criCtlVersion = "1.29.0-k3s1";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/builder.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/builder.nix
index 2173748cd2df..01659d9236c8 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/builder.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/builder.nix
@@ -187,13 +187,12 @@ let
 
     patches =
       # Disable: Add runtime checking of golang version
-      lib.optional (lib.versionAtLeast k3sVersion "1.28")
-        (fetchpatch {
-          # https://github.com/k3s-io/k3s/pull/9054
-          url = "https://github.com/k3s-io/k3s/commit/b297996b9252b02e56e9425f55f6becbf6bb7832.patch";
-          hash = "sha256-xBOY2jnLhT9dtVKtq26V9QUnuX1q6E/9UcO9IaU719U=";
-          revert = true;
-        });
+      (fetchpatch {
+        # https://github.com/k3s-io/k3s/pull/9054
+        url = "https://github.com/k3s-io/k3s/commit/b297996b9252b02e56e9425f55f6becbf6bb7832.patch";
+        hash = "sha256-xBOY2jnLhT9dtVKtq26V9QUnuX1q6E/9UcO9IaU719U=";
+        revert = true;
+      });
 
     nativeBuildInputs = [ pkg-config ];
     buildInputs = [ libseccomp sqlite.dev ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/update-script.sh b/nixpkgs/pkgs/applications/networking/cluster/k3s/update-script.sh
index dc41d7325b6c..19b0a6d9309e 100755
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/update-script.sh
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/update-script.sh
@@ -25,8 +25,8 @@ LATEST_TAG_NAME=$(jq 'map(.tag_name)' ${LATEST_TAG_RAWFILE} | \
 K3S_VERSION=$(echo ${LATEST_TAG_NAME} | sed 's/^v//')
 
 K3S_COMMIT=$(curl --silent -f ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
-    https://api.github.com/repos/k3s-io/k3s/tags \
-    | jq -r "map(select(.name == \"${LATEST_TAG_NAME}\")) | .[0] | .commit.sha")
+    https://api.github.com/repos/k3s-io/k3s/git/refs/tags \
+    | jq -r "map(select(.ref == \"refs/tags/${LATEST_TAG_NAME}\")) | .[0] | .object.sha")
 
 K3S_REPO_SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/k3s-io/k3s/archive/refs/tags/${LATEST_TAG_NAME}.tar.gz)
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3sup/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k3sup/default.nix
index c45970ddeef8..d5ac78ea5c4c 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k3sup/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3sup/default.nix
@@ -48,6 +48,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/alexellis/k3sup";
     description = "Bootstrap Kubernetes with k3s over SSH";
+    mainProgram = "k3sup";
     license = licenses.mit;
     maintainers = with maintainers; [ welteki qjoly ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k8sgpt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k8sgpt/default.nix
index a24b521e242c..5f358587c4a4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k8sgpt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k8sgpt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "k8sgpt";
-  version = "0.3.27";
+  version = "0.3.29";
 
   src = fetchFromGitHub {
     owner = "k8sgpt-ai";
     repo = "k8sgpt";
     rev = "v${version}";
-    hash = "sha256-HWcEcufn0NM+7AF4/M29bsUoQYlVA1nbrkCKt9F1g6k=";
+    hash = "sha256-SYMgImnNqkP0A8EzR2btpVPb37G4Oxyb+Am//lXxTxU=";
   };
 
-  vendorHash = "sha256-b8Y95BDOR5HI6QMU4XLn5FmSHFD9fntc80r84KgmkuY=";
+  vendorHash = "sha256-NOXySV9sQl4Q1eDbcGMk0msMSosjyxYyJfhu7hd/4gw=";
 
   CGO_ENABLED = 0;
 
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Giving Kubernetes Superpowers to everyone";
+    mainProgram = "k8sgpt";
     homepage = "https://k8sgpt.ai";
     changelog = "https://github.com/k8sgpt-ai/k8sgpt/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
index fac829c936e7..274bff5d253f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "k9s";
-  version = "0.32.3";
+  version = "0.32.4";
 
   src = fetchFromGitHub {
     owner = "derailed";
     repo = "k9s";
     rev = "v${version}";
-    hash = "sha256-rw+MoMI/VmFvCE94atfP+djg+N75qwRfxjRlyCvLxR8=";
+    hash = "sha256-0MAnN1ekzHLs25EspDN3xacmDvwXGwKO/5RsCMMwTI8=";
   };
 
   ldflags = [
@@ -23,7 +23,7 @@ buildGoModule rec {
 
   proxyVendor = true;
 
-  vendorHash = "sha256-R/lQAjEfch3RtJNsny6ox0ZgUOFGZdoUEgmeIIM/pmQ=";
+  vendorHash = "sha256-Eaz56iU862KDAlVPuMo8qPuWSFCxEFcJ3Qubl9TUiyI=";
 
   # TODO investigate why some config tests are failing
   doCheck = !(stdenv.isDarwin && stdenv.isAarch64);
diff --git a/nixpkgs/pkgs/applications/networking/cluster/karmor/default.nix b/nixpkgs/pkgs/applications/networking/cluster/karmor/default.nix
index 38058e57d2d8..7b61d9390b29 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/karmor/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/karmor/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "karmor";
-  version = "1.1.1";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "kubearmor";
     repo = "kubearmor-client";
     rev = "v${version}";
-    hash = "sha256-NeLMHecfDyMhXmq1HO3qRIWeYpkoj9Od5wWStZEkHYU=";
+    hash = "sha256-hul348zF81oXTcvcfRpNYiiqfocS3HPwcPdXp7Ij91Y=";
   };
 
-  vendorHash = "sha256-EIvwzgpC9Ls43RJEhxNYDlF4luKthFgJleaXcYzOYow=";
+  vendorHash = "sha256-CKOZxmUVZWFb7cc+amPwyMv5ScujWeipEqm95m63SYk=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -48,6 +48,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A client tool to help manage KubeArmor";
+    mainProgram = "karmor";
     homepage = "https://kubearmor.io";
     changelog = "https://github.com/kubearmor/kubearmor-client/releases/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kbst/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kbst/default.nix
index 30207b07457f..566610ebc7cb 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kbst/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kbst/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubestack framework CLI";
+    mainProgram = "kbst";
     homepage = "https://www.kubestack.com/";
     license = licenses.asl20;
     maintainers = with maintainers; [ mtrsk ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix
index 5e36f45e50fd..8813327a6090 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kconf/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An opinionated command line tool for managing multiple kubeconfigs";
+    mainProgram = "kconf";
     homepage = "https://github.com/particledecay/kconf";
     license = licenses.mit;
     maintainers = with maintainers; [ thmzlt ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kfilt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kfilt/default.nix
index dd85bd8bbddc..8059528eaa12 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kfilt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kfilt/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = {
     description = "Command-line tool that filters Kubernetes resources";
+    mainProgram = "kfilt";
     homepage = "https://github.com/ryane/kfilt";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.ryane ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kluctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kluctl/default.nix
index 99e311ff3e20..601be5ff6d1d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kluctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kluctl/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The missing glue to put together large Kubernetes deployments";
+    mainProgram = "kluctl";
     homepage = "https://kluctl.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ sikmir netthier ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kn/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kn/default.nix
index 156c2cae7ac5..3a5f18cbf581 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kn/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kn/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The Knative client kn is your door to the Knative world. It allows you to create Knative resources interactively from the command line or from within scripts";
+    mainProgram = "kn";
     homepage = "https://github.com/knative/client";
     changelog = "https://github.com/knative/client/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix
index 290d41fbdddd..248dcf84e3ed 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kompose/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool to help users who are familiar with docker-compose move to Kubernetes";
+    mainProgram = "kompose";
     homepage = "https://kompose.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ thpham vdemeester ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix
index 10c161f45d05..14e75829e401 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kontemplate/default.nix
@@ -15,6 +15,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description      = "Extremely simple Kubernetes resource templates";
+    mainProgram = "kontemplate";
     homepage         = "http://kontemplate.works";
     downloadPage     = "https://github.com/tazjin/kontemplate/releases";
     license          = licenses.gpl3;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
index 1e911aaabf66..7f051075a5b3 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
@@ -38,6 +38,7 @@ let
 
         meta = with lib; {
           description = "Easiest way to get a production Kubernetes up and running";
+          mainProgram = "kops";
           homepage = "https://github.com/kubernetes/kops";
           changelog = "https://github.com/kubernetes/kops/tree/master/docs/releases";
           license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix
index ff5c8588ccee..8ae2138907b1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A toolkit to help you manage, manipulate, customize, and apply Kubernetes Resource configuration data files";
+    mainProgram = "kpt";
     homepage = "https://googlecontainertools.github.io/kpt/";
     license = licenses.asl20;
     maintainers = with maintainers; [ mikefaille ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/krelay/default.nix b/nixpkgs/pkgs/applications/networking/cluster/krelay/default.nix
index ce890323a86a..6fad5b344c0d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/krelay/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/krelay/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "krelay";
-  version = "0.0.6";
+  version = "0.0.8";
 
   src = fetchFromGitHub {
     owner = "knight42";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-hyjseBIyPdY/xy163bGtfNR1rN/cQczJO53gu4/WmiU=";
+    hash = "sha256-KR5lBLgzv9yjL3JvCjg8dxXWmPgagnnKxYtrPunAyXY=";
   };
 
-  vendorHash = "sha256-uDLc1W3jw3F+23C5S65Tcljiurobw4IRw7gYzZyBxQ0=";
+  vendorHash = "sha256-vaWdJyPOLsrLrhipBvUCOHo/TjnJz4Qpvj3lvUPHomU=";
 
   subPackages = [ "cmd/client" ];
 
@@ -22,7 +22,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A better alternative to `kubectl port-forward` that can forward TCP or UDP traffic to IP/Host which is accessible inside the cluster.";
+    description = "A drop-in replacement for `kubectl port-forward` with some enhanced features";
     homepage = "https://github.com/knight42/krelay";
     changelog = "https://github.com/knight42/krelay/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ktop/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ktop/default.nix
index 58fca5221c0d..847a58a9c40f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/ktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/ktop/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A top-like tool for your Kubernetes cluster";
+    mainProgram = "ktop";
     longDescription = ''
       Following the tradition of Unix/Linux top tools, ktop is a tool that displays useful metrics information about nodes, pods, and other workload resources running in a Kubernetes cluster.
     '';
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ktunnel/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ktunnel/default.nix
index 3b05aabc00b9..5cbcc6b661b7 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/ktunnel/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/ktunnel/default.nix
@@ -32,6 +32,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "A cli that exposes your local resources to kubernetes ";
+    mainProgram = "ktunnel";
     homepage = "https://github.com/omrikiei/ktunnel";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix
index c4a631c3258e..caed8df9e511 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube-capacity/default.nix
@@ -16,6 +16,7 @@ buildGoModule rec {
   meta = with lib; {
     description =
       "A simple CLI that provides an overview of the resource requests, limits, and utilization in a Kubernetes cluster";
+    mainProgram = "kube-capacity";
     homepage = "https://github.com/robscott/kube-capacity";
     changelog = "https://github.com/robscott/kube-capacity/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
index 2701db12e61d..4b75b292fd3f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kube-router";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "cloudnativelabs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Iwo+I1EfclkF4FL8QM3xGkIFxakmelI+hSUepLwfFSw=";
+    hash = "sha256-5aOAQ5kRnNsCn5EH9RKoeEfcFB3g59eqYIdSNjQxdjM=";
   };
 
-  vendorHash = "sha256-VjPesQ27GcwnFQrNI+VYzJ4/aahcjASbfMi//Zs/KLM=";
+  vendorHash = "sha256-5aGcDO+dV9XinH0vw6uNB0mnWuFQcyLhRB7zYr+sRfg=";
 
   CGO_ENABLED = 0;
 
@@ -29,6 +29,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://www.kube-router.io/";
     description = "All-in-one router, firewall and service proxy for Kubernetes";
+    mainProgram = "kube-router";
     license = licenses.asl20;
     maintainers = with maintainers; [ colemickens johanot ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix
index 47eb7b4e60af..f8b42bb0fae3 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube-score/default.nix
@@ -34,6 +34,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubernetes object analysis with recommendations for improved reliability and security";
+    mainProgram = "kube-score";
     homepage = "https://github.com/zegl/kube-score";
     changelog = "https://github.com/zegl/kube-score/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix
index 69b0f990eadc..55f29f0deb47 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubebuilder/default.nix
@@ -60,6 +60,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "SDK for building Kubernetes APIs using CRDs";
+    mainProgram = "kubebuilder";
     homepage = "https://github.com/kubernetes-sigs/kubebuilder";
     changelog = "https://github.com/kubernetes-sigs/kubebuilder/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
index da4b6568901c..78f14012707b 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubecfg/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool for managing Kubernetes resources as code";
+    mainProgram = "kubecfg";
     homepage = "https://github.com/kubecfg/kubecfg";
     changelog = "https://github.com/kubecfg/kubecfg/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubecolor/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubecolor/default.nix
index 2b41250c628b..794b184e245f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubecolor/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubecolor/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Colorizes kubectl output";
+    mainProgram = "kubecolor";
     homepage = "https://github.com/kubecolor/kubecolor";
     changelog = "https://github.com/kubecolor/kubecolor/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix
index 611a33ca8f73..b129e0c65bd5 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeconform/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A FAST Kubernetes manifests validator, with support for Custom Resources!";
+    mainProgram = "kubeconform";
     homepage    = "https://github.com/yannh/kubeconform/";
     license     = licenses.asl20;
     maintainers = [ maintainers.j4m3s ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix
index 77fd7928d680..db05ee6b363a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-cnpg/default.nix
@@ -5,22 +5,23 @@
 
 buildGoModule rec {
   pname = "kubectl-cnpg";
-  version = "1.22.1";
+  version = "1.22.2";
 
   src = fetchFromGitHub {
     owner = "cloudnative-pg";
     repo = "cloudnative-pg";
     rev = "v${version}";
-    hash = "sha256-mKQuHswnoxgqQOCiQFbibg6MqACOxM73XngQai6s6To=";
+    hash = "sha256-xR61PYUqiVtPTghEEeSWXs/Apx7VVWDgi6Pgx/EBQzQ=";
   };
 
-  vendorHash = "sha256-SCeKoxI1zFzSwLAdAa1YI3DiyfK/uOk7CmWwQWVeF7g=";
+  vendorHash = "sha256-u5ou9rY/JBrV0EF/nJX8u/Fqde/WZe21EcsNLwvtqB0=";
 
   subPackages = [ "cmd/kubectl-cnpg" ];
 
   meta = with lib; {
     homepage = "https://cloudnative-pg.io/";
     description = "Plugin for kubectl to manage a CloudNativePG cluster in Kubernetes";
+    mainProgram = "kubectl-cnpg";
     license = licenses.asl20;
     maintainers = with maintainers; [ devusb ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
index e198de456cca..050192b86c9f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-doctor/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "kubectl cluster triage plugin for k8s";
+    mainProgram = "kubectl-doctor";
     homepage = "https://github.com/emirozer/kubectl-doctor";
     changelog = "https://github.com/emirozer/kubectl-doctor/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix
index f17c2b2ad1ab..46bf4cb14eef 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-evict-pod/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "This plugin evicts the given pod and is useful for testing pod disruption budget rules";
+    mainProgram = "kubectl-evict-pod";
     homepage    = "https://github.com/rajatjindal/kubectl-evict-pod";
     license     = licenses.asl20;
     maintainers = [ maintainers.j4m3s ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix
index 76562de2bd76..dc917a987e0d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-example/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "kubectl plugin for retrieving resource example YAMLs";
+    mainProgram = "kubectl-example";
     homepage = "https://github.com/seredot/kubectl-example";
     changelog = "https://github.com/seredot/kubectl-example/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-explore/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-explore/default.nix
index 2eb7b6befb75..0ff402b39f08 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubectl-explore/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-explore/default.nix
@@ -16,6 +16,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A better kubectl explain with the fuzzy finder";
+    mainProgram = "kubectl-explore";
     homepage = "https://github.com/keisku/kubectl-explore";
     changelog = "https://github.com/keisku/kubectl-explore/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-gadget/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-gadget/default.nix
index d4545cfe990c..ffc4cc761a8d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubectl-gadget/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-gadget/default.nix
@@ -2,22 +2,23 @@
 
 buildGoModule rec {
   pname = "kubectl-gadget";
-  version = "0.25.1";
+  version = "0.26.0";
 
   src = fetchFromGitHub {
     owner = "inspektor-gadget";
     repo = "inspektor-gadget";
     rev = "v${version}";
-    hash = "sha256-RbLc8c2F2Jy9jHwcd1FgqxhC5cl82oOauo/hsZ5zaG0=";
+    hash = "sha256-G2FvKnO+YuLlRlzfB1YMRhCHWa6v4sMFLyDqp12bzn4=";
   };
 
-  vendorHash = "sha256-/1dDAcICf7+g8hxaIAUsUwR9FNqatMhgAsvXrOuvGyk=";
+  vendorHash = "sha256-IrSx1iCOd95CWyLo6WuEtTFm6p62se/t8dcBmH5eOP4=";
 
   CGO_ENABLED = 0;
 
   ldflags = [
     "-s" "-w"
-    "-X main.version=v${version}"
+    "-X github.com/inspektor-gadget/inspektor-gadget/cmd/common.version=v${version}"
+    "-X main.gadgetimage=ghcr.io/inspektor-gadget/inspektor-gadget:v${version}"
     "-extldflags=-static"
   ];
 
@@ -29,8 +30,9 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A collection of gadgets for troubleshooting Kubernetes applications using eBPF";
+    mainProgram = "kubectl-gadget";
     homepage = "https://inspektor-gadget.io";
     license = licenses.asl20;
-    maintainers = with maintainers; [ kranurag7 ];
+    maintainers = with maintainers; [ kranurag7 devusb ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-images/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-images/default.nix
index 7ab487d3dda1..1c4b1bf60e12 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubectl-images/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-images/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Show container images used in the cluster.";
+    mainProgram = "kubectl-images";
     homepage = "https://github.com/chenjiandongx/kubectl-images";
     changelog = "https://github.com/chenjiandongx/kubectl-images/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix
index d8718b1d254c..934d1c9151dc 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-node-shell/default.nix
@@ -24,6 +24,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     description = "Exec into node via kubectl";
+    mainProgram = "kubectl-node_shell";
     homepage = "https://github.com/kvaps/kubectl-node-shell";
     license = licenses.asl20;
     maintainers = with maintainers; [ jocelynthode ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-tree/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-tree/default.nix
index 1cb0cc3e9419..62d4553b881d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubectl-tree/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-tree/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "kubectl plugin to browse Kubernetes object hierarchies as a tree";
+    mainProgram = "kubectl-tree";
     homepage = "https://github.com/ahmetb/kubectl-tree";
     changelog = "https://github.com/ahmetb/kubectl-tree/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix
index 0bfdaafd5f56..695d63db8165 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubectl-view-secret/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubernetes CLI plugin to decode Kubernetes secrets";
+    mainProgram = "kubectl-view-secret";
     homepage = "https://github.com/elsesiy/kubectl-view-secret";
     changelog = "https://github.com/elsesiy/kubectl-view-secret/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubedog/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubedog/default.nix
index 9618fcbf4457..5d31bc8e3350 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubedog/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubedog/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
       A tool to watch and follow Kubernetes resources in CI/CD deployment
       pipelines
     '';
+    mainProgram = "kubedog";
     homepage = "https://github.com/werf/kubedog";
     changelog = "https://github.com/werf/kubedog/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubefirst/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubefirst/default.nix
index c470b79f9097..ada816ef8316 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubefirst/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubefirst/default.nix
@@ -1,25 +1,34 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
 buildGoModule rec {
   pname = "kubefirst";
-  version = "2.3.8";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "kubefirst";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-CW+p6hcXHVUlMuxXiwHtp4/iY/VYe/64TMY2UyARpG4=";
+    repo = "kubefirst";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-fw2DmgAiCsEw5lkeZOiU5ptAFb13BDTx09Js6IO28Ww=";
   };
 
-  vendorHash = "sha256-hI6f7Iyo4sWgSSRLDROLhvI/g1wLc1oVmVt2pQ5Ptbk=";
+  vendorHash = "sha256-ZcZl4knlyKAwTsiyZvlkN5e2ox30B5aNzutI/2UEE9U=";
 
-  ldflags = [ "-s" "-w" "-X github.com/kubefirst/runtime/configs.K1Version=v${version}"];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X=github.com/kubefirst/runtime/configs.K1Version=v${version}"
+  ];
 
   doCheck = false;
 
   meta = with lib; {
-    description = "The Kubefirst CLI creates instant GitOps platforms that integrate some of the best tools in cloud native from scratch.";
+    description = "Tool to create instant GitOps platforms that integrate some of the best tools in cloud native from scratch";
+    mainProgram = "kubefirst";
     homepage = "https://github.com/kubefirst/kubefirst/";
+    changelog = "https://github.com/kubefirst/kubefirst/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ qjoly ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
index a771972b6948..0d3852e28414 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Kubernetes credential plugin implementing OpenID Connect (OIDC) authentication";
+    mainProgram = "kubectl-oidc_login";
     inherit (src.meta) homepage;
     license = licenses.asl20;
     maintainers = with maintainers; [ benley ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix
index 28e3f47a388a..b2fa146b0bc3 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubelogin/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Kubernetes credential plugin implementing Azure authentication";
+    mainProgram = "kubelogin";
     inherit (src.meta) homepage;
     license = licenses.mit;
     maintainers = [];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubemqctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubemqctl/default.nix
index 7185ff5a42dc..8e2590b75c7e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubemqctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubemqctl/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
   meta = {
     homepage = "https://github.com/kubemq-io/kubemqctl";
     description = "Kubemqctl is a command line interface (CLI) for Kubemq Kubernetes Message Broker.";
+    mainProgram = "kubemqctl";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ brianmcgee ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubent/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubent/default.nix
index f650394ef0e4..75f4244ee142 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubent/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubent";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "doitintl";
     repo = "kube-no-trouble";
     rev = version;
-    sha256 = "sha256-fJRaahK/tDns+edi1GIdYRk4+h2vbY2LltZN2hxvKGI=";
+    sha256 = "sha256-/gCbj0RDwV5E8kNkEu+37ilzw/A0BAXiYfHGPdkCsRs=";
   };
 
-  vendorHash = "sha256-nEc0fngop+0ju8hDu7nowBsioqCye15Jo1mRlM0TtlQ=";
+  vendorHash = "sha256-6hp7mzE45Tlmt4ybhpdJLYCv+WqQ9ak2S47kJTwyGVI=";
 
   ldflags = [
     "-w" "-s"
@@ -29,6 +29,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/doitintl/kube-no-trouble";
     description = "Easily check your cluster for use of deprecated APIs";
+    mainProgram = "kubent";
     license = licenses.mit;
     maintainers = with maintainers; [ peterromfeldhk ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubergrunt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubergrunt/default.nix
index e5a5e1ba9f4b..c37fe18281c9 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubergrunt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubergrunt/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Collection of commands to fill in the gaps between Terraform, Helm, and Kubectl";
+    mainProgram = "kubergrunt";
     homepage = "https://github.com/gruntwork-io/kubergrunt";
     license = licenses.asl20;
     maintainers = with maintainers; [ psibi ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix
index 9efefd064667..37ca5be589d1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes-metrics-server/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/kubernetes-sigs/metrics-server";
     description = "Kubernetes container resource metrics collector";
+    mainProgram = "metrics-server";
     license = licenses.asl20;
     maintainers = with maintainers; [ eskytthe ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
index 5e8cfc2b166c..11666ef5c0bf 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -20,13 +20,13 @@
 
 buildGoModule rec {
   pname = "kubernetes";
-  version = "1.29.2";
+  version = "1.29.3";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kubernetes";
     rev = "v${version}";
-    hash = "sha256-DFQaDlp8CqN0jKTVO5N9ZQYyM2gm/VnQfO4/bfvYrTE=";
+    hash = "sha256-mtYxFy2d892uMLrtaR6ao07gjbThuGa7bzauwvJ0WOo=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix
index 4495a8590f42..264fbe7d5dc0 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubernix/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Single dependency Kubernetes clusters for local testing, experimenting and development";
+    mainProgram = "kubernix";
     homepage = "https://github.com/saschagrunert/kubernix";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ saschagrunert ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
index 921797d1591a..ed5db3c9485d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Kubernetes controller and tool for one-way encrypted Secrets";
+    mainProgram = "kubeseal";
     homepage = "https://github.com/bitnami-labs/sealed-secrets";
     changelog = "https://github.com/bitnami-labs/sealed-secrets/blob/v${version}/RELEASE-NOTES.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeshark/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeshark/default.nix
index b901889c0832..412ca8f8a097 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeshark/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeshark/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubeshark";
-  version = "52.1.63";
+  version = "52.1.77";
 
   src = fetchFromGitHub {
     owner = "kubeshark";
     repo = "kubeshark";
     rev = "v${version}";
-    hash = "sha256-Ub8FsynnsAiLF4YwZHbhmQIJANAe/lCUgfq3ys/dtO8=";
+    hash = "sha256-BpixzQ88JfA1cS5bLMHmLhE5Si5UbC9zRf9GAELrJwM=";
   };
 
   vendorHash = "sha256-SmvO9DYOXxnmN2dmHPPOguVwEbWSH/xNLBB+idpzopo=";
@@ -48,6 +48,7 @@ buildGoModule rec {
   meta = with lib; {
     changelog = "https://github.com/kubeshark/kubeshark/releases/tag/${version}";
     description = "The API Traffic Viewer for Kubernetes";
+    mainProgram = "kubeshark";
     homepage = "https://kubeshark.co/";
     license = licenses.asl20;
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix
index 88a56e3c72e3..bfbfa1fa7ccf 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool to observe Kubernetes resources in real time";
+    mainProgram = "kubespy";
     homepage = "https://github.com/pulumi/kubespy";
     license = licenses.asl20;
     maintainers = with maintainers; [ blaggacao ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix
index 774feac4d23d..5fc1eaf48827 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Bash script to tail Kubernetes logs from multiple pods at the same time";
+    mainProgram = "kubetail";
     longDescription = ''
       Bash script that enables you to aggregate (tail/follow) logs from
       multiple pods into one stream. This is the same as running "kubectl logs
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
index 574bfc61bb87..8fb1e68b0206 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Validate your Kubernetes configuration files";
+    mainProgram = "kubeval";
     homepage = "https://github.com/instrumenta/kubeval";
     license = licenses.asl20;
     maintainers = with maintainers; [ johanot nicknovitski ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubevela/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubevela/default.nix
index b58044992a6c..18a8f0b1fd1d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubevela/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubevela/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "kubevela";
-  version = "1.9.9";
+  version = "1.9.10";
 
   src = fetchFromGitHub {
     owner = "kubevela";
     repo = "kubevela";
     rev = "v${version}";
-    hash = "sha256-4OxkBN0hZ2wtZjU0aQVzhWtWd8kaCokT3WF82WeVS6U=";
+    hash = "sha256-DWmkPzMg6AbyOKoO2vev48f/cKO9XQpyR85Jg0T20aI=";
   };
 
-  vendorHash = "sha256-fMo01CmPaNgvNcY8oG4rIGfYa+teKU3ETJsAaF14cnc=";
+  vendorHash = "sha256-vRSlSEnqD/a6KBvCWnNTzIBKE9BYzMtFWUhAF+m3R54=";
 
   ldflags = [
     "-s" "-w"
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubexit/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubexit/default.nix
index bf086de6d78b..080c87385bb6 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubexit/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubexit/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
   ldflags = [ "-s" "-w" ];
   meta = with lib; {
     description = "Command supervisor for coordinated Kubernetes pod container termination.";
+    mainProgram = "kubexit";
     homepage = "https://github.com/karlkfi/kubexit/";
     license = licenses.asl20;
     maintainers = with maintainers; [ qjoly ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kyverno/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kyverno/default.nix
index 3cf8ef72ba5c..208867bec2c0 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kyverno/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kyverno/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubernetes Native Policy Management";
+    mainProgram = "kyverno";
     homepage = "https://kyverno.io/";
     changelog = "https://github.com/kyverno/kyverno/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/levant/default.nix b/nixpkgs/pkgs/applications/networking/cluster/levant/default.nix
index 78458741a5ba..937e57204b96 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/levant/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/levant/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An open source templating and deployment tool for HashiCorp Nomad jobs";
+    mainProgram = "levant";
     homepage = "https://github.com/hashicorp/levant";
     license = licenses.mpl20;
     maintainers = with maintainers; [ max-niederman ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/linkerd/generic.nix b/nixpkgs/pkgs/applications/networking/cluster/linkerd/generic.nix
index 0384f56f14aa..edd5a895f3f0 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/linkerd/generic.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/linkerd/generic.nix
@@ -55,6 +55,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A simple Kubernetes service mesh that improves security, observability and reliability";
+    mainProgram = "linkerd";
     downloadPage = "https://github.com/linkerd/linkerd2/";
     homepage = "https://linkerd.io/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
index bd9d0fece1b5..69e73e6d47a3 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
@@ -67,6 +67,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://minikube.sigs.k8s.io";
     description = "A tool that makes it easy to run Kubernetes locally";
+    mainProgram = "minikube";
     license = licenses.asl20;
     maintainers = with maintainers; [ ebzzry copumpkin vdemeester atkinschang Chili-Man ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
index dd0eced01663..8f7a59c70e8a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "nerdctl";
-  version = "1.7.4";
+  version = "1.7.5";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-d90xwrMtDK5ibRHIeV6nzv5jqJfaQXpU9xKTH49yiX4=";
+    hash = "sha256-eGDshnJ26rrRuM9lWwcdRg8udA4uE5ee6c+SYES7qt4=";
   };
 
-  vendorHash = "sha256-oiBgZQtqFwq189h/Bb4CrFhs4RDYUoEEOjrccujGclU=";
+  vendorHash = "sha256-GsI695T7nkwwAt78l7mc5JCD9wXAUcTxwsiLLFcANBI=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
@@ -52,6 +52,7 @@ buildGoModule rec {
     homepage = "https://github.com/containerd/nerdctl/";
     changelog = "https://github.com/containerd/nerdctl/releases/tag/v${version}";
     description = "A Docker-compatible CLI for containerd";
+    mainProgram = "nerdctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk developer-guy ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix
index acd0643b4bdf..d32445c6455c 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix
@@ -91,6 +91,7 @@ let
 
     meta = with lib; {
       description = "Autoscaling daemon for Nomad";
+      mainProgram = "nomad-autoscaler";
       homepage = "https://github.com/hashicorp/nomad-autoscaler";
       license = licenses.mpl20;
       maintainers = with maintainers; [ jonringer ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix
index 384e5b87c555..8eb6a4656318 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad-driver-podman/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://www.github.com/hashicorp/nomad-driver-podman";
     description = "Podman task driver for Nomad";
+    mainProgram = "nomad-driver-podman";
     platforms = platforms.linux;
     license = licenses.mpl20;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix
index e0181e69c0b9..f94cb28ce2f5 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix
@@ -39,6 +39,7 @@ let
       meta = with lib; {
         homepage = "https://www.nomadproject.io/";
         description = "A Distributed, Highly Available, Datacenter-Aware Scheduler";
+        mainProgram = "nomad";
         inherit license;
         maintainers = with maintainers; [ rushmorem pradeepchhetri endocrimes amaxine techknowlogick cottand ];
       };
@@ -81,9 +82,9 @@ rec {
 
   nomad_1_7 = generic {
     buildGoModule = buildGo121Module;
-    version = "1.7.5";
-    sha256 = "sha256-uwPAmmxxlPp5NuuCUTv5VykX+q2vbA0yCRoblrJPP1g=";
-    vendorHash = "sha256-xu1odCHUO3cv0ldXj3T8aM+fqPzc4r1gyFWsiuyzOpU=";
+    version = "1.7.6";
+    sha256 = "sha256-rEWXQwkW/muX3D0An3WmHCoboPACFCrSG7Tyzor2wnQ=";
+    vendorHash = "sha256-95yUtNfN/50LjWHHReaB4/riUqy8J67099bP8Ua7gRw=";
     license = lib.licenses.bsl11;
     passthru.tests.nomad = nixosTests.nomad;
     preCheck = ''
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nova/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nova/default.nix
index 2686b79c4b7f..050674907082 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nova/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nova/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "nova";
-  version = "3.7.0";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "FairwindsOps";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-K4D8vCZxOPRalSDlAmva7Qm72EJ2Xdz20oqKKqkD6iA=";
+    hash = "sha256-3bSxMb/JFIy3b6N/94cXfGlUbPIm046O9m2KPan8YIs=";
   };
 
   vendorHash = "sha256-c30B8Wjvwp4NnB1P8h4/raGiGAX/cbTZ/KQqh/qeNhA=";
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Find outdated or deprecated Helm charts running in your cluster";
+    mainProgram = "nova";
     longDescription = ''
       Nova scans your cluster for installed Helm charts, then
       cross-checks them against all known Helm repositories. If it
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ocm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ocm/default.nix
index 95646c800aba..99195f8889d2 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/ocm/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/ocm/default.nix
@@ -40,6 +40,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI for the Red Hat OpenShift Cluster Manager";
+    mainProgram = "ocm";
     license = licenses.asl20;
     homepage = "https://github.com/openshift-online/ocm-cli";
     maintainers = with maintainers; [ stehessel ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/odo/default.nix b/nixpkgs/pkgs/applications/networking/cluster/odo/default.nix
index e94e3772c8dd..9ab5082f61dc 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/odo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/odo/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Developer-focused CLI for OpenShift and Kubernetes";
+    mainProgram = "odo";
     license = licenses.asl20;
     homepage = "https://odo.dev";
     changelog = "https://github.com/redhat-developer/odo/releases/v${version}";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix
index 5aae5e8e68bf..42938d1246f9 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/pig/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://pig.apache.org/";
     description = "High-level language for Apache Hadoop";
+    mainProgram = "pig";
     license = licenses.asl20;
 
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/networking/cluster/pinniped/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pinniped/default.nix
index 3d8f0755ca0e..ed86002a564a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/pinniped/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/pinniped/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec{
 
   meta = with lib; {
     description = "Tool to securely log in to your Kubernetes clusters";
+    mainProgram = "pinniped";
     homepage = "https://pinniped.dev/";
     license = licenses.asl20;
     maintainers = with maintainers; [ bpaulin ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/pluto/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pluto/default.nix
index 4223c0854f55..628084f6f31e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/pluto/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/pluto/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/FairwindsOps/pluto";
     description = "Find deprecated Kubernetes apiVersions";
+    mainProgram = "pluto";
     license = licenses.asl20;
     maintainers = with maintainers; [ peterromfeldhk kashw2 ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix b/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
index 7cb97701f8d8..4c21b95265fb 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "popeye";
-  version = "0.20.5";
+  version = "0.21.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "derailed";
     repo = "popeye";
-    sha256 = "sha256-e3ANhF2g1YpCipnHej2ZegoAq20MOyTIjxgNMs3qGbk=";
+    sha256 = "sha256-zk3SMIvaFV6t+VCMvcmMaHpTEYx/LinaPLNXUU+JSwk=";
   };
 
   ldflags = [
@@ -17,7 +17,7 @@ buildGoModule rec {
     "-X github.com/derailed/popeye/cmd.commit=${version}"
   ];
 
-  vendorHash = "sha256-lRm3cS+VYP9vptr6ixmkni7DpNnexrhyccKDV7TWKg0=";
+  vendorHash = "sha256-qrw/7fauMVb3Ai5E5MXL84yXHcReJZZ1oioB/Cv32Is=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -35,6 +35,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Kubernetes cluster resource sanitizer";
+    mainProgram = "popeye";
     homepage = "https://github.com/derailed/popeye";
     changelog = "https://github.com/derailed/popeye/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/pv-migrate/default.nix b/nixpkgs/pkgs/applications/networking/cluster/pv-migrate/default.nix
index 871f8287b825..b55510e7e4cf 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/pv-migrate/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/pv-migrate/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI tool to easily migrate Kubernetes persistent volumes ";
+    mainProgram = "pv-migrate";
     homepage = "https://github.com/utkuozdemir/pv-migrate";
     changelog = "https://github.com/utkuozdemir/pv-migrate/releases/tag/${version}";
     license = licenses.afl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/rancher/default.nix b/nixpkgs/pkgs/applications/networking/cluster/rancher/default.nix
index 8259a574cc1c..309b806a8870 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/rancher/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/rancher/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The Rancher Command Line Interface (CLI) is a unified tool for interacting with your Rancher Server";
+    mainProgram = "rancher";
     homepage = "https://github.com/rancher/cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ bryanasdev000 ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/rke/default.nix b/nixpkgs/pkgs/applications/networking/cluster/rke/default.nix
index c349e93b6ba3..435377d8e304 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/rke/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/rke/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "rke";
-  version = "1.5.5";
+  version = "1.5.6";
 
   src = fetchFromGitHub {
     owner = "rancher";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-TPgXjM7RyjI8NmfiZHkHF3txfzAwjOg7kGODBj37JEI=";
+    hash = "sha256-yw7GacSvPKXStmYtG4oQQlIca5Svk4pHDliMDVhyPRI=";
   };
 
   vendorHash = "sha256-0H9K3/BwdSExADFHaYtn2RrHZ6AyEjzlBKYXL/Ow9JA=";
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/rancher/rke";
     description = "An extremely simple, lightning fast Kubernetes distribution that runs entirely within containers";
+    mainProgram = "rke";
     changelog = "https://github.com/rancher/rke/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/roxctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/roxctl/default.nix
index 607137c8d77a..abcb6fd4299a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/roxctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/roxctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "roxctl";
-  version = "4.3.4";
+  version = "4.3.5";
 
   src = fetchFromGitHub {
     owner = "stackrox";
     repo = "stackrox";
     rev = version;
-    sha256 = "sha256-5UMU3oKi3QhREum2YevOzwF5OOi8quPWgt+kgGjkeFQ=";
+    sha256 = "sha256-zTZ03Qtb3ndBf1MunhYS8rzPReExzEPGxCh1JexkwuA=";
   };
 
-  vendorHash = "sha256-Jzv4ozR8RJiwkgVGGq6dlV/7rbBLq8hFe/Pm4SJZCkU=";
+  vendorHash = "sha256-Sl5eIK8PWeGi2V7q/Qm5Gfjj1A9nQPtM0BGdO6inPxk=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -37,6 +37,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command-line client of the StackRox Kubernetes Security Platform";
+    mainProgram = "roxctl";
     license = licenses.asl20;
     homepage = "https://www.stackrox.io";
     maintainers = with maintainers; [ stehessel ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
index d3127b076777..866775702521 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
@@ -48,6 +48,7 @@ buildGoPackage rec {
   meta = with lib; {
     homepage = "https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html";
     description = "Amazon SSM Session Manager Plugin";
+    mainProgram = "session-manager-plugin";
     license = licenses.asl20;
     maintainers = with maintainers; [ amarshall mbaillie ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix b/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
index 278bb1b54adc..59b3a9de41e6 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/starboard/default.nix
@@ -69,6 +69,7 @@ buildGoModule rec {
     homepage = "https://github.com/aquasecurity/starboard";
     changelog = "https://github.com/aquasecurity/starboard/releases/tag/v${version}";
     description = "Kubernetes-native security tool kit";
+    mainProgram = "starboard";
     longDescription = ''
       Starboard integrates security tools into the Kubernetes environment, so
       that users can find and view the risks that relate to different resources
diff --git a/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix b/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix
index 07822397434d..5585b373df35 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Multi pod and container log tailing for Kubernetes";
+    mainProgram = "stern";
     homepage = "https://github.com/stern/stern";
     license = licenses.asl20;
     maintainers = with maintainers; [ mbode preisschild ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix b/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix
index 5cb9f8160067..002bc9da2631 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/taktuk/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Efficient, large scale, parallel remote execution of commands";
+    mainProgram = "taktuk";
     longDescription = ''
       TakTuk allows one to execute commands in parallel on a potentially large set
       of remote nodes (using ssh to connect to each node). It is typically used
diff --git a/nixpkgs/pkgs/applications/networking/cluster/talosctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/talosctl/default.nix
index 17b5c866de6e..afc3b7bdf5aa 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/talosctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/talosctl/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A CLI for out-of-band management of Kubernetes nodes created by Talos";
+    mainProgram = "talosctl";
     homepage = "https://www.talos.dev/";
     license = licenses.mpl20;
     maintainers = with maintainers; [ flokli ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
index cf52f6d948ea..2bf571920452 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tektoncd-cli";
-  version = "0.35.1";
+  version = "0.36.0";
 
   src = fetchFromGitHub {
     owner = "tektoncd";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-/o0UzjIUlRP936YG7fgfonPHc86z1WFCBcELor2frqE=";
+    sha256 = "sha256-no/F9PqChokG2so3LeptHYO3BXoqWFyMtY/5nlEMT8Y=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/temporal/default.nix b/nixpkgs/pkgs/applications/networking/cluster/temporal/default.nix
index c6e5ba9df7a9..f9cfb3b3cba1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/temporal/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/temporal/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "temporal";
-  version = "1.22.6";
+  version = "1.23.0";
 
   src = fetchFromGitHub {
     owner = "temporalio";
     repo = "temporal";
     rev = "v${version}";
-    hash = "sha256-L5TOFhAMfbKjNK/Q74V2lcZs5vyynvMZMhHFB1ay5F8=";
+    hash = "sha256-4e8z4k7loL9vVYe5jut1X/5qDboChQxZtPO1ZBHNb7o=";
   };
 
-  vendorHash = "sha256-ItJ4Bng9TTGJpSHaNglODIheO2ZmntHl7QfK4+2I2CM=";
+  vendorHash = "sha256-4xwdVFE0CGcOA8Efj4ECionPP9rbzT02zyr2HR143AM=";
 
   excludedPackages = [ "./build" ];
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/temporalite/default.nix b/nixpkgs/pkgs/applications/networking/cluster/temporalite/default.nix
index efe1f2d30c5d..5581c1694534 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/temporalite/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/temporalite/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An experimental distribution of Temporal that runs as a single process";
+    mainProgram = "temporalite";
     homepage = "https://github.com/temporalio/temporalite";
     license = licenses.mit;
     maintainers = with maintainers; [ lucperkins ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-backend-git/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-backend-git/default.nix
index 2e7f70eaf57d..a78b339c087a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-backend-git/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-backend-git/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Terraform HTTP Backend implementation that uses Git repository as storage";
+    mainProgram = "terraform-backend-git";
     homepage = "https://github.com/plumber-cd/terraform-backend-git";
     changelog = "https://github.com/plumber-cd/terraform-backend-git/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix
index ce1915242e43..69bb5d991972 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix
@@ -52,6 +52,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "BDD test framework for terraform";
+    mainProgram = "terraform-compliance";
     homepage = "https://github.com/terraform-compliance/cli";
     changelog = "https://github.com/terraform-compliance/cli/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
index 49855b77c544..0a07d0e8627a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-docs/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A utility to generate documentation from Terraform modules in various output formats";
+    mainProgram = "terraform-docs";
     homepage = "https://github.com/terraform-docs/terraform-docs/";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix
index 89d4b769e9af..56763aca0679 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/adammck/terraform-inventory";
     description = "Terraform state to ansible inventory adapter";
+    mainProgram = "terraform-inventory";
     license = licenses.mit;
     maintainers = with maintainers; [ htr ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
index 2454092e0051..9e4d3d824f7b 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -86,6 +86,7 @@ let
       heroku = automated-providers.heroku.override { spdx = "MPL-2.0"; };
       # mkisofs needed to create ISOs holding cloud-init data and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630
       libvirt = automated-providers.libvirt.overrideAttrs (_: { propagatedBuildInputs = [ cdrtools ]; });
+      minio = automated-providers.minio.override { spdx = "AGPL-3.0-only"; };
     };
 
   # Put all the providers we not longer support in this list.
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 1dc43aee15eb..e4fadde572a3 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -9,14 +9,13 @@
     "vendorHash": null
   },
   "acme": {
-    "hash": "sha256-ZhL5u6v7ZraajKaSK6hwzXbXr+ySdFmBSJnmsOhOJok=",
+    "hash": "sha256-CFyB6jLHtnHxY9LB5a3qaMVfz6isi1pSXcscVMM9QKA=",
     "homepage": "https://registry.terraform.io/providers/vancluever/acme",
     "owner": "vancluever",
-    "proxyVendor": true,
     "repo": "terraform-provider-acme",
-    "rev": "v2.20.2",
+    "rev": "v2.21.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-eiWGI8sp+gGL8UiRBG6lHmCATVUebYwdXJbLNGfi6xY="
+    "vendorHash": "sha256-wqXMoByVqd2NxdFunK29Hq59pfQoXW+kHoH0dTcfFVw="
   },
   "age": {
     "hash": "sha256-bJrzjvkrCX93bNqCA+FdRibHnAw6cb61StqtwUY5ok4=",
@@ -28,13 +27,13 @@
     "vendorHash": "sha256-jK7JuARpoxq7hvq5+vTtUwcYot0YqlOZdtDwq4IqKvk="
   },
   "aiven": {
-    "hash": "sha256-7dKlhPGkt1WB/nlXV2IrNT7E3w2kNdishJB/xL299Cw=",
+    "hash": "sha256-ap2UuJojGx7+OZB2RmIZlHbawZi4lqa1iGUr2NLSPGk=",
     "homepage": "https://registry.terraform.io/providers/aiven/aiven",
     "owner": "aiven",
     "repo": "terraform-provider-aiven",
-    "rev": "v4.13.2",
+    "rev": "v4.14.0",
     "spdx": "MIT",
-    "vendorHash": "sha256-rIyAhe4YQ9XG3nODCSxZRohHgNIPQ94pDLrh7+4Rj1k="
+    "vendorHash": "sha256-PSErY3yFDTjtK+FVlJEEBfZAz1BybjiPK7nDulrrbdY="
   },
   "akamai": {
     "hash": "sha256-j1UTi4ygixwSfu9Wp//JzKe58xSV/tZM3kRo1ikBo3Y=",
@@ -46,11 +45,11 @@
     "vendorHash": "sha256-/gW1vxaDaUMpm0QSghd/Glo3S/XVa5t9x3QrIs4Bqyk="
   },
   "alicloud": {
-    "hash": "sha256-YD9q4sjX9Bmp1k6MIy7EKIT2fY0e9Mb939hJ5w1Hh2Y=",
+    "hash": "sha256-Zi4oymePLOW6NgEE8aHlEo7rStz2GPNFSSUl9LUr7OU=",
     "homepage": "https://registry.terraform.io/providers/aliyun/alicloud",
     "owner": "aliyun",
     "repo": "terraform-provider-alicloud",
-    "rev": "v1.217.2",
+    "rev": "v1.219.0",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
@@ -82,13 +81,13 @@
     "vendorHash": "sha256-q9PO9tMbaXTs3nBLElwU05GcDZMZqNmLVVGDmiSRSfo="
   },
   "artifactory": {
-    "hash": "sha256-W8IWBc9tWmj4Rkp4CgZV9tsAL41EOnEhH+iTImP/+D4=",
+    "hash": "sha256-udgRoN1YoVaJpNS6MkZAThcuWGOL9Jc3lf3NAKS9WH8=",
     "homepage": "https://registry.terraform.io/providers/jfrog/artifactory",
     "owner": "jfrog",
     "repo": "terraform-provider-artifactory",
-    "rev": "v10.1.5",
+    "rev": "v10.4.0",
     "spdx": "Apache-2.0",
-    "vendorHash": "sha256-J/+OcqRtcHaqoDkrWIDpPlBHQ/UWupwchA1aeSoHSh4="
+    "vendorHash": "sha256-P5L2Q8t9TxJnu5cjOwEKek1KNKAw78fqZoOSAo6AvzQ="
   },
   "auth0": {
     "hash": "sha256-Yoje6btftS0slz2newORBbb9kTjWXaXzbP94YKT6+3E=",
@@ -100,13 +99,13 @@
     "vendorHash": "sha256-kBLyk8glOuvgpbGLUUwtzKecqDDU8VS3JxN6tPIhMro="
   },
   "avi": {
-    "hash": "sha256-EGpHajrTTOx7LrFHzsrrkGMqsuUEJLJAN6AJ48QdJis=",
+    "hash": "sha256-OKUxIJO5WR8ZVkhst1xIgxKsAy+9PNHOmG2NsaRUxFY=",
     "homepage": "https://registry.terraform.io/providers/vmware/avi",
     "owner": "vmware",
     "repo": "terraform-provider-avi",
-    "rev": "v22.1.5",
+    "rev": "v22.1.6",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-r42KHzvRBXuWgLgtg+WUVt0ThjSMXtUKjEE9y/s/1uQ="
+    "vendorHash": "sha256-Sq304WOdKx4J1sD1+YA7uDi+uQtUiXa+BISs/j87dWw="
   },
   "aviatrix": {
     "hash": "sha256-84MtHPrDVaLMQQYnAfuP/pZuzruWxUTLpziwn3ny1oU=",
@@ -118,13 +117,13 @@
     "vendorHash": null
   },
   "aws": {
-    "hash": "sha256-/KJMoRsEKA4cqY/TpSWQDBpNjtqmZcqnpMSLf2E0LXY=",
+    "hash": "sha256-+daAkFF6nSTe6yxOdW58BRzBYI4tUMhNoG6vnG1cXTA=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/aws",
     "owner": "hashicorp",
     "repo": "terraform-provider-aws",
-    "rev": "v5.39.1",
+    "rev": "v5.41.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-q5Tsm7JLrX5OK4fKV0SBRgK6ZHogG16OtMFeJrR0bBc="
+    "vendorHash": "sha256-JmMp9AqjWZGVvCsCCTYl3o4BT9yxzA3A16ESrpciCLE="
   },
   "azuread": {
     "hash": "sha256-lumXl3orK5Jq5+qnRfiIA94NjK2bCjd3LhRzHmW1h8I=",
@@ -136,11 +135,11 @@
     "vendorHash": null
   },
   "azurerm": {
-    "hash": "sha256-HPbEbFw99HM6+a+EAbkwE6hvzh4/FU/cAbl6DT1dbp0=",
+    "hash": "sha256-5uA+P29yLCXyOB+98Nx9dPNKONmgDAkMEb8cNRB4MW8=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/azurerm",
     "owner": "hashicorp",
     "repo": "terraform-provider-azurerm",
-    "rev": "v3.94.0",
+    "rev": "v3.96.0",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
@@ -155,11 +154,11 @@
   },
   "baiducloud": {
     "deleteVendor": true,
-    "hash": "sha256-wPfWcc4OD3KXEfe9IsK/4NPdX/4bQNKTiGBsKL0OZC8=",
+    "hash": "sha256-ymTKRxbFUT99qxAS8lb4QAAWXX7yopPo8Ac93mpGEHo=",
     "homepage": "https://registry.terraform.io/providers/baidubce/baiducloud",
     "owner": "baidubce",
     "repo": "terraform-provider-baiducloud",
-    "rev": "v1.19.37",
+    "rev": "v1.19.39",
     "spdx": "MPL-2.0",
     "vendorHash": "sha256-puTQKvIvyBRgdZZTZCXEAdc8HYNgtoSmzjpqHCIEAKk="
   },
@@ -191,13 +190,13 @@
     "vendorHash": "sha256-/dOiXO2aPkuZaFiwv/6AXJdIADgx8T7eOwvJfBBoqg8="
   },
   "buildkite": {
-    "hash": "sha256-3r2vxoPRTehKTswcNoAkVKuLbo6OFuyLy1WEyjw2zO8=",
+    "hash": "sha256-zhltbz9mlHVJI4R8RSS6UyyfeopgK62BJzQfl3VtIfE=",
     "homepage": "https://registry.terraform.io/providers/buildkite/buildkite",
     "owner": "buildkite",
     "repo": "terraform-provider-buildkite",
-    "rev": "v1.5.0",
+    "rev": "v1.5.2",
     "spdx": "MIT",
-    "vendorHash": "sha256-21OyBnW86A3Tm0OAHilCM+pgJcgx2a+P9up3/jeA8qg="
+    "vendorHash": "sha256-LKATx/5jjQCyaOUDFQNka3tWMH5DbEKNhrfYlyzDPKc="
   },
   "checkly": {
     "hash": "sha256-Wxw87/9BG/bTDGqgKdle6WF38oDoHkrc0HIKjJlaQOQ=",
@@ -227,13 +226,13 @@
     "vendorHash": "sha256-cI3brJwN+7FTceOMwR0HMbZCNHhwvm31OXqjAEvrzrs="
   },
   "cloudflare": {
-    "hash": "sha256-b9qsA0V/ncQPiP2SQyFpVDaQdEyAMBQp4WfCQlcd9xk=",
+    "hash": "sha256-veqaQQaZz05lom2X03+bav2JBVv/enBCA1lcyKmAlZk=",
     "homepage": "https://registry.terraform.io/providers/cloudflare/cloudflare",
     "owner": "cloudflare",
     "repo": "terraform-provider-cloudflare",
-    "rev": "v4.25.0",
+    "rev": "v4.26.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-TBELRtWlzXqP64fPM3e1pn/w8FVERQ3BLf+kRoahNXk="
+    "vendorHash": "sha256-8MvwvBDUs0OVptgtbg/tAEEBgD9Tk5mWKnnW4p0Rk20="
   },
   "cloudfoundry": {
     "hash": "sha256-1nYncJLVU/f9WD6Quh9IieIXgixPzbPk4zbtI1zmf9g=",
@@ -255,11 +254,11 @@
     "vendorHash": "sha256-MFhKJEuylDnyj9ltugxGXgfIxBT3/mYaxB0JmTJxK3M="
   },
   "cloudscale": {
-    "hash": "sha256-GjtWkty9mNMnTzXUf9U56b9HkjrjUdouA41ZptXMKeQ=",
+    "hash": "sha256-O4Y8p5S5C4SldryndecoaX5d8nrX10nqurAkJ0Un2NY=",
     "homepage": "https://registry.terraform.io/providers/cloudscale-ch/cloudscale",
     "owner": "cloudscale-ch",
     "repo": "terraform-provider-cloudscale",
-    "rev": "v4.2.3",
+    "rev": "v4.3.0",
     "spdx": "MIT",
     "vendorHash": null
   },
@@ -292,13 +291,13 @@
     "vendorHash": "sha256-ZCMSmOCPEMxCSpl3DjIUGPj1W/KNJgyjtHpmQ19JquA="
   },
   "datadog": {
-    "hash": "sha256-gmFD9VG9mcxw7lpt25bz8z2RnmeCSbd2EkFJHbZNP0Y=",
+    "hash": "sha256-zAu2zkC9saWg1Miu4OkqeXtNhGgboCzr/CRmtfFsAVc=",
     "homepage": "https://registry.terraform.io/providers/DataDog/datadog",
     "owner": "DataDog",
     "repo": "terraform-provider-datadog",
-    "rev": "v3.37.0",
+    "rev": "v3.38.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-20ANWw/0rqhCVhkl2r1PusXKOAKrvpxgvpGKmKMzbZM="
+    "vendorHash": "sha256-vIdM7SEWYnBw30wGl7wM/sMl4xtRPTUQvhqGoJxfKBg="
   },
   "dexidp": {
     "hash": "sha256-3UgiOeAGpGG2mkImPDvb24WjV2mavhY0E12j7W+SJs8=",
@@ -320,11 +319,11 @@
     "vendorHash": "sha256-e/+czUeOACwRC7xY90pZp2EWDzDpLU6Ud9RPzuNKaOY="
   },
   "digitalocean": {
-    "hash": "sha256-pu6QTKT5ikm3B12zDpWFsMbSjv8zl1oMvWtA4qtjluk=",
+    "hash": "sha256-wwb62tZZxpr7NXbiqcS40aF9E2msagj2Mqy4kogDsEA=",
     "homepage": "https://registry.terraform.io/providers/digitalocean/digitalocean",
     "owner": "digitalocean",
     "repo": "terraform-provider-digitalocean",
-    "rev": "v2.34.1",
+    "rev": "v2.36.0",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
@@ -347,13 +346,13 @@
     "vendorHash": "sha256-z2p2tjTK7eL0gRU8XnXw9SY9qokqiqJOVhkiBQlHRnA="
   },
   "dnsimple": {
-    "hash": "sha256-iH35dJLa/63s+CU5PdeMbqXUVGfWfpKIXH3znNUApEc=",
+    "hash": "sha256-aa5L1FO9Ro215zj3vH1H9k0fP2mYI5+TAvyPQumwWOM=",
     "homepage": "https://registry.terraform.io/providers/dnsimple/dnsimple",
     "owner": "dnsimple",
     "repo": "terraform-provider-dnsimple",
-    "rev": "v1.4.0",
+    "rev": "v1.5.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-fuIaNHlZica6PxFLzXGA+b6ODWrGWXdWYOeWzgiQRXo="
+    "vendorHash": "sha256-XA6gvm4S5kwdW2uha6B5BUX5mR8HPOs3xgPgGdIc0d4="
   },
   "docker": {
     "hash": "sha256-UyHOI8C0eDV5YllAi9clHp/CEldHjIp3FHHMPy1rK58=",
@@ -383,13 +382,13 @@
     "vendorHash": "sha256-oVTanZpCWs05HwyIKW2ajiBPz1HXOFzBAt5Us+EtTRw="
   },
   "equinix": {
-    "hash": "sha256-WWW4X5fCQAZZiAVi79realf0EtB0AGnfS5yjSJrlZTU=",
+    "hash": "sha256-LF9S0jqMeXSci6uAFW+3C7IA9PGmSUgFrVG13/i0hZc=",
     "homepage": "https://registry.terraform.io/providers/equinix/equinix",
     "owner": "equinix",
     "repo": "terraform-provider-equinix",
-    "rev": "v1.26.0",
+    "rev": "v1.33.0",
     "spdx": "MIT",
-    "vendorHash": "sha256-vMmHoQEXXPbFS/q+wy35SQd5+yEXLQFVWX9AKsmbTn4="
+    "vendorHash": "sha256-TC1vPWe1rFofz0SdKpV9qAmknLROQH2MglPDrA62nO0="
   },
   "exoscale": {
     "hash": "sha256-t1yZmayoZkDImcIr+VkNhQRzlfteGuvgcjSDOmmCF5I=",
@@ -410,22 +409,22 @@
     "vendorHash": "sha256-qeKXdjrDPJWO4xW8by6djJReeYbCjh8VzQmE5/65zII="
   },
   "fastly": {
-    "hash": "sha256-trDTXsZZTSxYe8ybFYpw8FkjxWJhTjyavT21c8wN0y0=",
+    "hash": "sha256-jjZKwxJeimutMuz8TdNLsLigiXidtfxdsptrxSo3940=",
     "homepage": "https://registry.terraform.io/providers/fastly/fastly",
     "owner": "fastly",
     "repo": "terraform-provider-fastly",
-    "rev": "v5.7.0",
+    "rev": "v5.7.1",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
   "flexibleengine": {
-    "hash": "sha256-8wp6chQBysKEZ2088PY+h62FnTI8nIapmhQpTHO1TIQ=",
+    "hash": "sha256-yEZ9JiUSqFFbfqzOOD59ZBv4yFCeUBBKlp6aiUqDqiM=",
     "homepage": "https://registry.terraform.io/providers/FlexibleEngineCloud/flexibleengine",
     "owner": "FlexibleEngineCloud",
     "repo": "terraform-provider-flexibleengine",
-    "rev": "v1.45.0",
+    "rev": "v1.46.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-hpoeXO3RfnI49UAqtF4rmX75DXCfsl4XTjIPGFyI/Nc="
+    "vendorHash": "sha256-ZbU2z7qUHPR7vDSflesSjgK7x3LYXVe/gnVsy19q6Bs="
   },
   "fortios": {
     "hash": "sha256-SENWlcDkb6S73yKratGSlT151wWuR43B40SoK7Hb6Qs=",
@@ -447,42 +446,40 @@
     "vendorHash": "sha256-EiTWJ4bw8IwsRTD9Lt28Up2DXH0oVneO2IaO8VqWtkw="
   },
   "github": {
-    "hash": "sha256-y8DMpNSySMbe7E+sGVQcQdEyulq4Wnp5ryYD7FQO/fc=",
+    "hash": "sha256-0tnqXynYPct9HAZdhJ42bzJbcsC5QVz4bOszEO+tjSc=",
     "homepage": "https://registry.terraform.io/providers/integrations/github",
     "owner": "integrations",
     "repo": "terraform-provider-github",
-    "rev": "v6.0.0",
+    "rev": "v6.2.0",
     "spdx": "MIT",
     "vendorHash": null
   },
   "gitlab": {
-    "hash": "sha256-sk18gC7ZecdvXIzYrNhyYLduttZrVVgekNjgYR379TY=",
+    "hash": "sha256-RphUUJOMx9p1fTys68C+bWxgS8zjrWLe4VgMXwKa8SE=",
     "homepage": "https://registry.terraform.io/providers/gitlabhq/gitlab",
     "owner": "gitlabhq",
     "repo": "terraform-provider-gitlab",
-    "rev": "v16.8.1",
+    "rev": "v16.9.1",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-dfsIEyLyTTJJxMPXWyo0YuSaRrjL+qGL654TAgECWPM="
+    "vendorHash": "sha256-mr4ZEQobsFBRU/RUV4joqsWQTuAaSioB1GO09wQJy7M="
   },
   "google": {
-    "hash": "sha256-mP2/XDQX/AagEmmUMDGzS6ATJpuJU21lmEvs2wFe7Tg=",
+    "hash": "sha256-CbOy5kExsXHQTMteNpqnr0SHsQIjKSiJuwJD9Wcy5Ag=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/google",
     "owner": "hashicorp",
-    "proxyVendor": true,
     "repo": "terraform-provider-google",
-    "rev": "v5.19.0",
+    "rev": "v5.21.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-0yCgFgRDGaJLGFEX3lZxoqrS1xWjqmRfYaYdMVpI2KI="
+    "vendorHash": "sha256-VL03n3rEMccHuYmFMgoX01hzpEA7WHIyxa8GnfVLLSo="
   },
   "google-beta": {
-    "hash": "sha256-Hx9/hGT0cqNYkn1xojeolWrvFPWhh1gsKl/qxeejBzA=",
+    "hash": "sha256-fn4JrTU/TX8jJ6vYxzWYFpGFmgSDEt6txOF/jsX2BcU=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/google-beta",
     "owner": "hashicorp",
-    "proxyVendor": true,
     "repo": "terraform-provider-google-beta",
-    "rev": "v5.19.0",
+    "rev": "v5.21.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-0yCgFgRDGaJLGFEX3lZxoqrS1xWjqmRfYaYdMVpI2KI="
+    "vendorHash": "sha256-bUJJNnnmF7PXwXUomE5uuk21rpHsy7W5ESkj0DDiY04="
   },
   "googleworkspace": {
     "hash": "sha256-dedYnsKHizxJZibuvJOMbJoux0W6zgKaK5fxIofKqCY=",
@@ -494,13 +491,13 @@
     "vendorHash": "sha256-fqVBnAivVekV+4tpkl+E6eNA3wi8mhLevJRCs3W7L2g="
   },
   "grafana": {
-    "hash": "sha256-FcoWovmdPUcX4LcSF9MLpxvwK1ObFejump4ha0Fmdbw=",
+    "hash": "sha256-8YE+bi44c55hDH+NlEsuocT1d6PugF/QfwvOTD693YE=",
     "homepage": "https://registry.terraform.io/providers/grafana/grafana",
     "owner": "grafana",
     "repo": "terraform-provider-grafana",
-    "rev": "v2.12.2",
+    "rev": "v2.14.2",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-lbtWI96iAjHNRbhJw2e8yWSGJD7hsMqy4ZGCScSH8ME="
+    "vendorHash": "sha256-HVPCLtE1DVM5Rq/myNoJwFrSQVG6utX0LOmR7yklRu8="
   },
   "gridscale": {
     "hash": "sha256-5gidBMUfJ4DPKuRx/pF5Rlff7DPkIXBJ7qzCIy6bZm8=",
@@ -567,11 +564,11 @@
     "vendorHash": "sha256-GDeuiT3PV92t3CsD60CAmN8ED9j8UzDbRlk59SSCVCM="
   },
   "huaweicloud": {
-    "hash": "sha256-gNMeblhzUWa2YTvy0bmMzP0NQ3Qe0Ibec4tEKHyTHR0=",
+    "hash": "sha256-vOaLOGLp+V+IYYa56rpiv1yx89incw796cTUgUXHtdM=",
     "homepage": "https://registry.terraform.io/providers/huaweicloud/huaweicloud",
     "owner": "huaweicloud",
     "repo": "terraform-provider-huaweicloud",
-    "rev": "v1.62.0",
+    "rev": "v1.62.1",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
@@ -594,13 +591,13 @@
     "vendorHash": null
   },
   "ibm": {
-    "hash": "sha256-zTrVz4SqjqbU5T/kxvhKsJnx/VPPRUvQ6CMCqiclj7M=",
+    "hash": "sha256-dYH6D5VKh2wNh8L4SyXELy1zL+fORLeOgXG92XDg4GY=",
     "homepage": "https://registry.terraform.io/providers/IBM-Cloud/ibm",
     "owner": "IBM-Cloud",
     "repo": "terraform-provider-ibm",
-    "rev": "v1.61.0",
+    "rev": "v1.63.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-/kbrtNvEYU0mfoe2lPaZ/b8kAfkuP/6QVzUxRry/4+I="
+    "vendorHash": "sha256-SlUzByF0tke5YtMflOzpYfguZlNe8qeqJqvxCh/TVoY="
   },
   "icinga2": {
     "hash": "sha256-Y/Oq0aTzP+oSKPhHiHY9Leal4HJJm7TNDpcdqkUsCmk=",
@@ -612,13 +609,13 @@
     "vendorHash": null
   },
   "incus": {
-    "hash": "sha256-0KCP5ll6TszSTP2J9+dDK6qqNcVCPgLQrdMMrfVhmds=",
+    "hash": "sha256-GahwviyhXcrCtM0jjJKKEwHkZTcJnVPB1JlVsJjcv+k=",
     "homepage": "https://registry.terraform.io/providers/lxc/incus",
     "owner": "lxc",
     "repo": "terraform-provider-incus",
-    "rev": "v0.1.0",
+    "rev": "v0.1.1",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-pKWKef0MtW90HBhDVtQlETt9TqnHnfW6Ck4gXShJVF0="
+    "vendorHash": "sha256-/SpaWENm6nwveUACS7hvH/Z25CTzQK/6igPhTW/fYJ8="
   },
   "infoblox": {
     "hash": "sha256-rjqtqfmQQoJIhMtP6sFOu/XfJ691E77P0Bf9gjml2yg=",
@@ -639,13 +636,13 @@
     "vendorHash": "sha256-NEGjgtrn6ZowqSF6NAK1NnSjYVUvfWuH/4R5ZPdTZSs="
   },
   "kafka": {
-    "hash": "sha256-EECV3JMile7Lif/GuC5330OcAGm5ylc6k43fY4jRy80=",
+    "hash": "sha256-BS15vAQeWAYPaF7i4xpFPv7Ni+tF4LFu8k/woVvQNF4=",
     "homepage": "https://registry.terraform.io/providers/Mongey/kafka",
     "owner": "Mongey",
     "repo": "terraform-provider-kafka",
-    "rev": "v0.6.0",
+    "rev": "v0.7.0",
     "spdx": "MIT",
-    "vendorHash": "sha256-DKyDjcj7tovmlZeKjzun5YsCffTAJirp0z49kcOBq54="
+    "vendorHash": "sha256-H35qqnWovPgf1t9DlxnPhDg2uWEKTWR3KcLtDum/Qc4="
   },
   "kafka-connect": {
     "hash": "sha256-PiSVfzNPEXAgONb/eaVAN4yPudn5glcHL0BLqE5PWsw=",
@@ -675,20 +672,20 @@
     "vendorHash": "sha256-lXQHo66b9X0jZhoF+5Ix5qewQGyI82VPJ7gGzc2CHao="
   },
   "kubernetes": {
-    "hash": "sha256-CxzBTixyvsSSjZDv8GrxAB1oeRjJBB9nRAuKoASeKbI=",
+    "hash": "sha256-l2WPpczgKjDYxtZFqhqmJvq8CdsAIBQBeofZOn7BLzM=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/kubernetes",
     "owner": "hashicorp",
     "repo": "terraform-provider-kubernetes",
-    "rev": "v2.26.0",
+    "rev": "v2.27.0",
     "spdx": "MPL-2.0",
     "vendorHash": "sha256-mVC3Uf+4zWM7lXHXOfVI+okXI8gP1W5VyZyH+qVNX7o="
   },
   "launchdarkly": {
-    "hash": "sha256-rv/jgGrjJrUzGBpUnkc0n/x/msxAc/45n/JKCrGPWMA=",
+    "hash": "sha256-IuoFMp0NViuwwgOlfvoReodPhOJR0+YyJDI/vjN52jQ=",
     "homepage": "https://registry.terraform.io/providers/launchdarkly/launchdarkly",
     "owner": "launchdarkly",
     "repo": "terraform-provider-launchdarkly",
-    "rev": "v2.18.0",
+    "rev": "v2.18.1",
     "spdx": "MPL-2.0",
     "vendorHash": "sha256-JbrecA5pNIifikBHwqFL72hRfRFHHl29mFKE4nDdbkY="
   },
@@ -702,13 +699,13 @@
     "vendorHash": "sha256-K/PH8DAi6Wj+isPx9xefQcLPKnrimfItZFSPfktTias="
   },
   "linode": {
-    "hash": "sha256-ZhZ6Y8hPLL3ZxemCgDdGNC8waxNEKLMVtv3cNZtAoic=",
+    "hash": "sha256-rk1fUC+++pXmYVL1IgR5rT77pere+j51n9kdzaDWKgc=",
     "homepage": "https://registry.terraform.io/providers/linode/linode",
     "owner": "linode",
     "repo": "terraform-provider-linode",
-    "rev": "v2.16.0",
+    "rev": "v2.17.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-rwto/tgKfmUYCNNMZpBpZ3vHyl9I8RrgLVmPogkMYe8="
+    "vendorHash": "sha256-8vmorWsrZLJo3lKN74Bt+V8xKPOe389FZ2SjvxYfvtI="
   },
   "linuxbox": {
     "hash": "sha256-MzasMVtXO7ZeZ+qEx2Z+7881fOIA0SFzSvXVHeEROtg=",
@@ -720,13 +717,13 @@
     "vendorHash": "sha256-Jlg3a91pOhMC5SALzL9onajZUZ2H9mXfU5CKvotbCbw="
   },
   "local": {
-    "hash": "sha256-FeraMYTrcGQ7JwlCOMyOJdwhtdRHS1b5PA0lpSIwAVY=",
+    "hash": "sha256-va8CFAHPZvc541Bml0VPN6A5qyUiKBXRfH/3AwxgXTo=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/local",
     "owner": "hashicorp",
     "repo": "terraform-provider-local",
-    "rev": "v2.4.1",
+    "rev": "v2.5.1",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-T/YQsNpPISDSVi00KrLRX/+jFNQVl2ze/3D2ZRxmUjI="
+    "vendorHash": "sha256-PpLqFek6FnD+xWF8QMS2PFUP7sXXVWWWosq6fpLRzxg="
   },
   "lxd": {
     "hash": "sha256-culY1Im8D4CtgC2LtTFFB0BgrNgLfDLT0I290+0NE3A=",
@@ -765,31 +762,31 @@
     "vendorHash": "sha256-QxbZv6YMa5/I4bTeQBNdmG3EKtLEmstnH7HMiZzFJrI="
   },
   "migadu": {
-    "hash": "sha256-4mT5BbOXl4OY99ao6nyQQgQImPk/1X7lOAZcAxYToQw=",
+    "hash": "sha256-jLOXQmsAAG78eNAlpo6Ge5fdhUHeGevVm079H1gE5/s=",
     "homepage": "https://registry.terraform.io/providers/metio/migadu",
     "owner": "metio",
     "repo": "terraform-provider-migadu",
-    "rev": "2024.1.25",
+    "rev": "2024.3.21",
     "spdx": "0BSD",
-    "vendorHash": "sha256-eee9X1QTDqL9rIGOnnxLU6QlcSIeMLlTZnHYis+ht+w="
+    "vendorHash": "sha256-ecoy0nJPuBsoVkYXNkrURgmDiaZEplkD1Zv4TEMuyU0="
   },
   "minio": {
-    "hash": "sha256-i3YYBffP7Jp3f0wN1ZwP+c7C8WN8EKUh7JOKzbH0R/I=",
+    "hash": "sha256-dgMK61jFXnOvE11FIoIJfFN1zb+N9HrFZ/WtQqwktbw=",
     "homepage": "https://registry.terraform.io/providers/aminueza/minio",
     "owner": "aminueza",
     "repo": "terraform-provider-minio",
-    "rev": "v2.0.1",
+    "rev": "v2.2.0",
     "spdx": "AGPL-3.0",
-    "vendorHash": "sha256-aIIkj0KpkIR+CsgPk4NCfhG7BMKaAQZy/49unQx4nWQ="
+    "vendorHash": "sha256-Uxexx5sK6D+EEEPWLnWFE0HPG1RKUsYnSJ/1bV9JBkw="
   },
   "mongodbatlas": {
-    "hash": "sha256-6XLPk4UNZVQLpY44MIVXabmHtkoQQ58WNfhmhW+/4Ow=",
+    "hash": "sha256-1IHiwMvME+kTbOSBNHBpDifzORf4li8WUxvtMu2uQiI=",
     "homepage": "https://registry.terraform.io/providers/mongodb/mongodbatlas",
     "owner": "mongodb",
     "repo": "terraform-provider-mongodbatlas",
-    "rev": "v1.15.1",
+    "rev": "v1.15.2",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-LBgZmVuBkeKNTPIk274owej+E4Ir0xcGkL4L05PhZUg="
+    "vendorHash": "sha256-fVDjhXRbYt845ZhFY85lCpXubKINBeMZg0U3K5RbnDk="
   },
   "namecheap": {
     "hash": "sha256-g3i7jZBOl2umsyRk1z7Radv8a9Ry6oQ8oorv3YbY7Xo=",
@@ -819,22 +816,22 @@
     "vendorHash": "sha256-QluXNbTBc/EXCO3PmnBOSwSERK3t5NhCS4Jnz5hU97k="
   },
   "nomad": {
-    "hash": "sha256-KHbdP5kAs65Z31Fe7EjwUVlFaezgjCqECryF/hSXXXs=",
+    "hash": "sha256-+S78qH7xMvJEGvgTRlxADNZI24PNgqCj1xgmIl4Oif4=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/nomad",
     "owner": "hashicorp",
     "repo": "terraform-provider-nomad",
-    "rev": "v2.1.1",
+    "rev": "v2.2.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-+0UAB4ZQfIyoCopQkm1hTCxDIa/J4gLDGwv4iInN4os="
+    "vendorHash": "sha256-f/L9ZkirFIb+Yu2H4wz9wCb65NCC0TsmEnZPCI4Z6gw="
   },
   "ns1": {
-    "hash": "sha256-UHoOVITbfwZ7tviDuZ1Tp9aVgRpB9ZnCzk5EOZeH/Eo=",
+    "hash": "sha256-qk+JfmWjaK29KqUVN2K01AEU+zJAQGeJhsnu3BBNHqI=",
     "homepage": "https://registry.terraform.io/providers/ns1-terraform/ns1",
     "owner": "ns1-terraform",
     "repo": "terraform-provider-ns1",
-    "rev": "v2.0.10",
+    "rev": "v2.2.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-nkpKq8cAusokeuOk32n8QA9He9zQlaTFzUwLMHKzpqM="
+    "vendorHash": "sha256-Fh4RP2Yu3EWD/I8r3I2nEkyQBZdM5SmdX+IcK5B8cb0="
   },
   "null": {
     "hash": "sha256-KOwJXGvMc9Xgq4Kbr72aW6RDwzldUrU1C3aDxpKO3qE=",
@@ -856,11 +853,11 @@
     "vendorHash": "sha256-LRIfxQGwG988HE5fftGl6JmBG7tTknvmgpm4Fu1NbWI="
   },
   "oci": {
-    "hash": "sha256-X7/v25Ges3F69LQs1SEXNLwiCkHX+/VrJ7y2XtE+2bg=",
+    "hash": "sha256-V3A22EUSmVjglnytaxRL2CCG5DtzKl0J+Xalk96z99o=",
     "homepage": "https://registry.terraform.io/providers/oracle/oci",
     "owner": "oracle",
     "repo": "terraform-provider-oci",
-    "rev": "v5.31.0",
+    "rev": "v5.34.0",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
@@ -901,13 +898,13 @@
     "vendorHash": "sha256-WHsYDcvLE1i+wCHGNF6eE8yVpPbP5SLG7ZK1AL7xMXI="
   },
   "opentelekomcloud": {
-    "hash": "sha256-ZDZ5sOWpmsGc+ESWkib2gws8XOeN35WEpi9/R2262yg=",
+    "hash": "sha256-rifK2xVnzYQZnDzF4glkpA4w1/rbvuxkas8npJRXqvM=",
     "homepage": "https://registry.terraform.io/providers/opentelekomcloud/opentelekomcloud",
     "owner": "opentelekomcloud",
     "repo": "terraform-provider-opentelekomcloud",
-    "rev": "v1.36.2",
+    "rev": "v1.36.4",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-2gZ3+XK5FF4hQ2zGjULrPj3QYrCG9MNFLdcVdxgzX9s="
+    "vendorHash": "sha256-4kO4pl1Ssj+lCmImiJQq59J/6rpfuYt/NBDBxJopQdE="
   },
   "opsgenie": {
     "hash": "sha256-ZssKhfwFrzCjvlebEmKAHWBInN5daVqxbmVFoA92dv8=",
@@ -919,20 +916,20 @@
     "vendorHash": null
   },
   "ovh": {
-    "hash": "sha256-jQ+eitK5kX12yso+cSltZWRPc/3P2v4W4H2+TbPKvNI=",
+    "hash": "sha256-SGezO0L/rt5rnIz3LijkKdXn0+EPlmM/rGQ/aB2GES4=",
     "homepage": "https://registry.terraform.io/providers/ovh/ovh",
     "owner": "ovh",
     "repo": "terraform-provider-ovh",
-    "rev": "v0.37.0",
+    "rev": "v0.40.0",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
   "pagerduty": {
-    "hash": "sha256-WjRfkMMgGuqSpJd4514heDQD4SaiH7gIkZwJzzqxoZk=",
+    "hash": "sha256-D1tYsPiozT9FdTL+DKDkjxAByXueyKwBkka3P9xDJLc=",
     "homepage": "https://registry.terraform.io/providers/PagerDuty/pagerduty",
     "owner": "PagerDuty",
     "repo": "terraform-provider-pagerduty",
-    "rev": "v3.9.0",
+    "rev": "v3.10.0",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
@@ -973,13 +970,13 @@
     "vendorHash": null
   },
   "project": {
-    "hash": "sha256-ZE3OW83tz2DfcwFn8KfZZYQuWdl335zJecC3Qzn0xPg=",
+    "hash": "sha256-eXieWiwDzTkOVvrjjnG8i8ke7mMTjluq5zEtiZqfiOA=",
     "homepage": "https://registry.terraform.io/providers/jfrog/project",
     "owner": "jfrog",
     "repo": "terraform-provider-project",
-    "rev": "v1.4.0",
+    "rev": "v1.5.1",
     "spdx": "Apache-2.0",
-    "vendorHash": "sha256-i7wota4ezfBA2AoSGO8OdbJcZQizXrPRJYE/WJSTFss="
+    "vendorHash": "sha256-bJ6+i7fZ6PsUcwjwJKiMC10I44bojIifI7eWUhdT1Bw="
   },
   "proxmox": {
     "hash": "sha256-ikXLLNoAjrnGGGI3fHTKFXm8YwqNazE/U39JTjOBsW4=",
@@ -1000,13 +997,13 @@
     "vendorHash": "sha256-j+3qtGlueKZgf0LuNps4Wc9G3EmpSgl8ZNSLqslyizI="
   },
   "rancher2": {
-    "hash": "sha256-k4lJszOUxeOmpBX8wFiIg6MmVUWqH6OTuj0/OJgr0ZA=",
+    "hash": "sha256-w9oAeE8KuD7kdBFOkNgifaELrxr3X1yKYXFiQLyaGY8=",
     "homepage": "https://registry.terraform.io/providers/rancher/rancher2",
     "owner": "rancher",
     "repo": "terraform-provider-rancher2",
-    "rev": "v4.0.0",
+    "rev": "v4.1.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-8XBsQuzEtg8nybJOFHkkr4nfp4WxnmgXqt0ci7q0CbI="
+    "vendorHash": "sha256-kzOEHkVCHOwISXVPmKbJJ2BbBdIJ3G1JtA1nFGZYnG8="
   },
   "random": {
     "hash": "sha256-8RRfoxDXa9pScyZ8CXBuWODlahd3lH0IzPaV0yb7GpI=",
@@ -1036,13 +1033,13 @@
     "vendorHash": null
   },
   "scaleway": {
-    "hash": "sha256-ygCr2kxnVoR2IvtvQI483Urd5sLU6U+TCHYW1FXy1Tc=",
+    "hash": "sha256-3K1BGar+D45nCSQNodJYTp+kP0EdoBzQTOEJ3PQa3t8=",
     "homepage": "https://registry.terraform.io/providers/scaleway/scaleway",
     "owner": "scaleway",
     "repo": "terraform-provider-scaleway",
-    "rev": "v2.37.0",
+    "rev": "v2.38.2",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-JXSXDJqRGZDk1xyyWhv+S9Jl5duBN9RR71eukDc6ODQ="
+    "vendorHash": "sha256-5otz+3S1o3V+V1SZaFP611AwyCvoPCxCwR2SE3DEw5o="
   },
   "secret": {
     "hash": "sha256-MmAnA/4SAPqLY/gYcJSTnEttQTsDd2kEdkQjQj6Bb+A=",
@@ -1108,11 +1105,11 @@
     "vendorHash": "sha256-F1AuO/dkldEDRvkwrbq2EjByxjg3K2rohZAM4DzKPUw="
   },
   "snowflake": {
-    "hash": "sha256-ZPqKctqmAaF7obRDdK2Jn5kGihjyPZhl8IoAprcXuUI=",
+    "hash": "sha256-X0VD4aI7WzNsy36e39eWzn2IIaLuXnhFSgiMnbb4myU=",
     "homepage": "https://registry.terraform.io/providers/Snowflake-Labs/snowflake",
     "owner": "Snowflake-Labs",
     "repo": "terraform-provider-snowflake",
-    "rev": "v0.87.0",
+    "rev": "v0.87.2",
     "spdx": "MIT",
     "vendorHash": "sha256-hvaZBOeAVutoKv46BLE1ud1Ox0K0InpTSG5G2WwTj5s="
   },
@@ -1126,13 +1123,13 @@
     "vendorHash": "sha256-8W1PK4T98iK1N6EB6AVjvr1P9Ja51+kSOmYAEosxrh8="
   },
   "spotinst": {
-    "hash": "sha256-9hSrU4pSlbcGM0HHKg/xIPz4DTvds6+yIFYbQ+xmPrA=",
+    "hash": "sha256-3/dMhB5SRc1pEsoflaMcNmPn3MjEUZ95aruqwD/Ro0M=",
     "homepage": "https://registry.terraform.io/providers/spotinst/spotinst",
     "owner": "spotinst",
     "repo": "terraform-provider-spotinst",
-    "rev": "v1.162.0",
+    "rev": "v1.165.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-lOLX/ZcBbh7TzsKO9w/dB1gm0KD9ezlXNjWRBBQVgsQ="
+    "vendorHash": "sha256-aKp9DDUU1cZye24jtFqpxA43KJj8CjXFE/+hl1PBH6c="
   },
   "ssh": {
     "hash": "sha256-1UN5QJyjCuxs2vQYlSuz2jsu/HgGTxOoWWRcv4qcwow=",
@@ -1162,22 +1159,22 @@
     "vendorHash": "sha256-9M1DsE/FPQK8TG7xCJWbU3HAJCK3p/7lxdzjO1oAfWs="
   },
   "sumologic": {
-    "hash": "sha256-fO7EsELdBElvosfbyKYnun7pJhoy5tTADGgYHqi9nEQ=",
+    "hash": "sha256-wGqOUeDJs80s5xNsnJ4uLg6DXxcZA+P30XtY4DyCDzo=",
     "homepage": "https://registry.terraform.io/providers/SumoLogic/sumologic",
     "owner": "SumoLogic",
     "repo": "terraform-provider-sumologic",
-    "rev": "v2.28.2",
+    "rev": "v2.28.3",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-iNBM4Y24vDGPKyb5cppSogk145F0/pAFmOzEeiWgfLI="
+    "vendorHash": "sha256-ti0zBliq3DXVNWlqE0dO6T5UxN/p1fLMt4FK/0/j9oY="
   },
   "tailscale": {
-    "hash": "sha256-1OSGJham+oJLQUcSm+Iea9SDM5VhOcE7Bz+ZgxM4Lww=",
+    "hash": "sha256-hvhdaxO7CbsfFzDw0UuRxlgRwvumWPz/I65IgounflQ=",
     "homepage": "https://registry.terraform.io/providers/tailscale/tailscale",
     "owner": "tailscale",
     "repo": "terraform-provider-tailscale",
-    "rev": "v0.13.13",
+    "rev": "v0.15.0",
     "spdx": "MIT",
-    "vendorHash": "sha256-w0S9ACnDNZsEvYEkS2Q/8I2doM3AmgpzmgRXgA7CaTw="
+    "vendorHash": "sha256-+XgYutJTSKL6HmAX4GLnktqcM3AxYP7B1UHzAp/Oz78="
   },
   "talos": {
     "hash": "sha256-DoO2aGoBkuafPJGNz0opmkFw4wwUgsczA2D0bSXQAlg=",
@@ -1188,23 +1185,32 @@
     "spdx": "MPL-2.0",
     "vendorHash": "sha256-FWwHAaUKUw7DyNs4sAlkLkGNj48wMJgpFvfQgbp8lFs="
   },
+  "temporalcloud": {
+    "hash": "sha256-pjxEcA8K9n70FWMwpTXr8fwOCj/GVmiL9XfKLRLQ6tI=",
+    "homepage": "https://registry.terraform.io/providers/temporalio/temporalcloud",
+    "owner": "temporalio",
+    "repo": "terraform-provider-temporalcloud",
+    "rev": "v0.0.6",
+    "spdx": "MPL-2.0",
+    "vendorHash": "sha256-2rYaxDDIPH46gXNILnTcHRsChpEd406r4pzWdnHMLNM="
+  },
   "tencentcloud": {
-    "hash": "sha256-vcq7DvYv4dHd7nO4iwCWePuPwM2mIMfC438FkpG/Iwo=",
+    "hash": "sha256-Vk1Jc1zSTKoFlNATlx9i5Pn4EzD/uS+RgmUCooMQVx8=",
     "homepage": "https://registry.terraform.io/providers/tencentcloudstack/tencentcloud",
     "owner": "tencentcloudstack",
     "repo": "terraform-provider-tencentcloud",
-    "rev": "v1.81.77",
+    "rev": "v1.81.83",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
   "tfe": {
-    "hash": "sha256-/YEDeDH+6J1p/p0myonruRx4BiYao2zy40kMMb+Jv6o=",
+    "hash": "sha256-5Txgqf/4dh2fsB6guqgLs3PxZs1QB32NzqCFIwM4ogg=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/tfe",
     "owner": "hashicorp",
     "repo": "terraform-provider-tfe",
-    "rev": "v0.52.0",
+    "rev": "v0.53.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-kDR4CB3RAvGC/NkT4PJ7BxI2v8WSfI2mfGSW+d1J2ZI="
+    "vendorHash": "sha256-7rMBmB93dLPyd9VcVc9R8SnXQ0XkU6SHc6j/KiAODVg="
   },
   "thunder": {
     "hash": "sha256-ezolcZ652YUV/CDoNKNRZkiRpRoa5AMqHxeYLxluA5A=",
@@ -1216,13 +1222,13 @@
     "vendorHash": null
   },
   "time": {
-    "hash": "sha256-5AOp6y/Nmu59uB9QXqwkcgakyzAyiAclZ9EJa7+MvpY=",
+    "hash": "sha256-yRYGyDPMR/2+OOjqXj1OhpvYoAUEbgWPcW4PcatPPh8=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/time",
     "owner": "hashicorp",
     "repo": "terraform-provider-time",
-    "rev": "v0.10.0",
+    "rev": "v0.11.1",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-TrkmjqUJi28sN9POzEuKzKyPQiS1RtVpj9NbsM3jW0I="
+    "vendorHash": "sha256-UZ0DpurmLmju/MG0uhAXgbwQoas94/R9TNT1cyO6pIQ="
   },
   "tls": {
     "hash": "sha256-2K18jY2+oPvelMtZ2o4WJcAPhc93nCvJdHq+VNfmWZI=",
@@ -1253,11 +1259,11 @@
     "vendorHash": null
   },
   "ucloud": {
-    "hash": "sha256-OFnNEmODAluhEzVvQ22jblUhpzIlIvjsYZZmtepAcX8=",
+    "hash": "sha256-u9LxsBKmS80h4y+/nJZ+0+cmQP5gS/I+T5g8H/QlPDA=",
     "homepage": "https://registry.terraform.io/providers/ucloud/ucloud",
     "owner": "ucloud",
     "repo": "terraform-provider-ucloud",
-    "rev": "v1.38.6",
+    "rev": "v1.38.8",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
@@ -1271,13 +1277,13 @@
     "vendorHash": "sha256-srhu8iepW/JmPrJ7PuXyk0GEWMwzpNpkny33z7ZdrdM="
   },
   "vault": {
-    "hash": "sha256-hxEy9S6BH4pjHzmGu7LMFuV/dXc9oJ4PKLX4TYlxAJo=",
+    "hash": "sha256-jwVc1x2+i4V/0mWRg5+Xpk0ONHC1T55Hof9JOUVAo/s=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/vault",
     "owner": "hashicorp",
     "repo": "terraform-provider-vault",
-    "rev": "v3.25.0",
+    "rev": "v4.1.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-cKD8+YiclFNR9xWr68F17mQjtxhAsPBpXhT6luvXp3I="
+    "vendorHash": "sha256-b/1g/1hFbIfzYJ0lQKNzalLkD95LLRgoftuoeDicalE="
   },
   "vcd": {
     "hash": "sha256-TP9COMofx4c2GZ0dQkfopn4iq8ddfV3WwuNjTu6yQnU=",
@@ -1316,22 +1322,22 @@
     "vendorHash": "sha256-OzcDMLWwnBYIkBcL6U1t9oCNhZZokBUf2TONb+OfgPE="
   },
   "vra7": {
-    "hash": "sha256-dvdsfUKhl1z/iHsh+/2HDb6mEX86P9FgynkzVQgtM5w=",
+    "hash": "sha256-v/0LBzyUUqt+Jx4GubCC2QzKdgt5WrrjZ4YvfxA2+GA=",
     "homepage": "https://registry.terraform.io/providers/vmware/vra7",
     "owner": "vmware",
     "repo": "terraform-provider-vra7",
-    "rev": "v3.0.12",
+    "rev": "v3.0.13",
     "spdx": "MPL-2.0",
     "vendorHash": null
   },
   "vsphere": {
-    "hash": "sha256-VWPKSR6xIph5dnMBSmLB/laY+DmNdshn6+94amCFQ5g=",
+    "hash": "sha256-SATX9BO6tnHW8+oeSeMNP3+opKHBk42va2J8YdrnlUw=",
     "homepage": "https://registry.terraform.io/providers/hashicorp/vsphere",
     "owner": "hashicorp",
     "repo": "terraform-provider-vsphere",
-    "rev": "v2.6.1",
+    "rev": "v2.7.0",
     "spdx": "MPL-2.0",
-    "vendorHash": "sha256-d9CdK5AHFZRC89Xko4vyx8jR10fkG1VYGVILlXM7zgw="
+    "vendorHash": "sha256-cHzIOIGy5DT5q5fvQlv56V6/vU0akBFM34M+c2+qIy4="
   },
   "vultr": {
     "hash": "sha256-+J4RHQWOy4Wfv2/8UNHe8g2fp2yAxzqzZZRv749B3Yc=",
@@ -1352,11 +1358,11 @@
     "vendorHash": "sha256-GRnVhGpVgFI83Lg34Zv1xgV5Kp8ioKTFV5uaqS80ATg="
   },
   "yandex": {
-    "hash": "sha256-utRegZYS19yjd1Gnqnet+XKaLop81JrNO+Oq7Gzms1M=",
+    "hash": "sha256-mlai++RjiYFSJLkhyWyKKYs/LFVoKIHtFB2bGmB5DFM=",
     "homepage": "https://registry.terraform.io/providers/yandex-cloud/yandex",
     "owner": "yandex-cloud",
     "repo": "terraform-provider-yandex",
-    "rev": "v0.110.0",
+    "rev": "v0.112.0",
     "spdx": "MPL-2.0",
     "vendorHash": "sha256-eE8gYyIGVBmw02I6j9GoEm2TiOmHGWhOs5pcqj/6PaA="
   }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
index ee0d92436ee3..94b7fe50c5a9 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
@@ -167,9 +167,9 @@ rec {
   mkTerraform = attrs: pluggable (generic attrs);
 
   terraform_1 = mkTerraform {
-    version = "1.7.4";
-    hash = "sha256-LF8lFDZtDowHqa0z/TCVKznxn15Msha/af8p/w0bI1k=";
-    vendorHash = "sha256-DI4YTjdFFvfby8ExEY3KoK4J9YKK5LPpMbelzFMDVVs=";
+    version = "1.7.5";
+    hash = "sha256-k/ugXlHK7lEKfOpSBXQNUdcq26rVVdjo53U+7ChJLIc=";
+    vendorHash = "sha256-5sCf65gFpI3y+qwDYvD08OZHNsDMg2IuDL65NMsLQ4Y=";
     patches = [ ./provider-path-0_15.patch ];
     passthru = {
       inherit plugins;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
index 6ded1556fa60..c2b51dbf5a01 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.55.12";
+  version = "0.55.19";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-RwPpABQnfcMfOMZm2PPT3w03HU8Y73leI+xxlHqZF10=";
+    hash = "sha256-Ag5EmgX4xWbKBhXVsGTu5EtjXV3deGETPtsM9IpOr7s=";
   };
 
-  vendorHash = "sha256-sdEA/5QQ85tGfo7qSCD/lD20uAh045fl3tF9nFfH6x0=";
+  vendorHash = "sha256-ijAg0Y/dfNxDS/Jov7QYjlTZ4N4/jDMH/zCV0jdVXRc=";
 
   doCheck = false;
 
@@ -37,6 +37,7 @@ buildGoModule rec {
     homepage = "https://terragrunt.gruntwork.io";
     changelog = "https://github.com/gruntwork-io/terragrunt/releases/tag/v${version}";
     description = "A thin wrapper for Terraform that supports locking for Terraform state and enforces best practices";
+    mainProgram = "terragrunt";
     license = licenses.mit;
     maintainers = with maintainers; [ jk qjoly kashw2 ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraspace/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraspace/default.nix
index af7c1025356a..da45541108f6 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraspace/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraspace/default.nix
@@ -24,6 +24,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Terraform framework that provides an organized structure, and keeps your code DRY";
+    mainProgram = "terraspace";
     homepage    = "https://github.com/boltops-tools/terraspace";
     license     = licenses.asl20;
     platforms   = ruby.meta.platforms;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tf-summarize/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tf-summarize/default.nix
index 840e221ec9ce..14fec4795db0 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tf-summarize/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tf-summarize/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "tf-summarize";
-  version = "0.3.7";
+  version = "0.3.9";
 
   src = fetchFromGitHub {
     owner = "dineshba";
     repo = "tf-summarize";
     rev = "v${version}";
-    hash = "sha256-IdtIcWnriCwghAWay+GzVf30difsDNHrHDNHDkkTxLg=";
+    hash = "sha256-rMpCNFuWgllvpi9PLyXAaV5IRphmPEI8HjBxKWgOydg=";
   };
 
-  vendorHash = "sha256-YdfZt8SHBJHk5VUC8Em97EzX79EV4hxvo0B05npBA2U=";
+  vendorHash = "sha256-nfontEgMj2qPbrM35iR7b65qrkWHCMY1v944iYdNLG8=";
 
   ldflags = [
     "-s"
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command-line utility to print the summary of the terraform plan";
+    mainProgram = "tf-summarize";
     homepage = "https://github.com/dineshba/tf-summarize";
     license = licenses.mit;
     maintainers = with maintainers; [ pjrm ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tfautomv/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tfautomv/default.nix
index 358dfd0a39fd..fc9dadbf37b6 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tfautomv/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tfautomv/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/busser/tfautomv";
     description = "When refactoring a Terraform codebase, you often need to write moved blocks. This can be tedious. Let tfautomv do it for you";
+    mainProgram = "tfautomv";
     license = licenses.asl20;
     maintainers = with maintainers; [ qjoly ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tfswitch/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tfswitch/default.nix
index c8f2fb070fba..50079dc762d8 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tfswitch/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tfswitch/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
   meta = with lib; {
     description =
       "A command line tool to switch between different versions of terraform";
+    mainProgram = "tfswitch";
     homepage = "https://github.com/warrensbox/terraform-switcher";
     license = licenses.mit;
     maintainers = with maintainers; [ psibi ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tftui/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tftui/default.nix
index 3a9d657dbdd2..5ef3142ee69d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tftui/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tftui/default.nix
@@ -1,27 +1,33 @@
 { lib
-, buildPythonApplication
-, fetchPypi
+, fetchFromGitHub
 , makeWrapper
-, poetry-core
-, posthog
-, pyperclip
-, requests
-, rich
-, textual
+, python3
 , enableUsageTracking ? false
 }:
 
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "tftui";
-  version = "0.12.4";
+  version = "0.12.6";
   pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-E4Y0qA7SooMlHh+oSFUl1hfblpirr/Jdb1C2fqU43t0=";
+  src = fetchFromGitHub {
+    owner = "idoavrah";
+    repo = "terraform-tui";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-vK1qKf8+RxwHUpuEQ97PcwGvObNVpd88kAb3DFRoRG0=";
   };
 
-  propagatedBuildInputs = [
+  pythonRelaxDeps = [
+    "textual"
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    makeWrapper
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
     posthog
     pyperclip
     requests
@@ -29,11 +35,6 @@ buildPythonApplication rec {
     textual
   ];
 
-  nativeBuildInputs = [
-    makeWrapper
-    poetry-core
-  ];
-
   pythonImportsCheck = [
     "tftui"
   ];
@@ -46,7 +47,7 @@ buildPythonApplication rec {
   meta = with lib; {
     description = "Textual UI to view and interact with Terraform state";
     homepage = "https://github.com/idoavrah/terraform-tui";
-    changelog = "https://github.com/idoavrah/terraform-tui/releases";
+    changelog = "https://github.com/idoavrah/terraform-tui/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; teams.bitnomial.members;
     mainProgram = "tftui";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tfupdate/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tfupdate/default.nix
index b60da990413b..e7a4250f9444 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tfupdate/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tfupdate/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Update version constraints in your Terraform configurations";
+    mainProgram = "tfupdate";
     homepage = "https://github.com/minamijoyo/tfupdate";
     changelog = "https://github.com/minamijoyo/tfupdate/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tgswitch/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tgswitch/default.nix
index 25c301f0cbb5..6196eeeac8ed 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tgswitch/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tgswitch/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command line tool to switch between different versions of terragrunt";
+    mainProgram = "tgswitch";
     homepage = "https://github.com/warrensbox/tgswitch";
     license = licenses.mit;
     maintainers = with maintainers; [ psibi ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tilt/binary.nix b/nixpkgs/pkgs/applications/networking/cluster/tilt/binary.nix
index d326f0f92e80..ebb7f6e11789 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tilt/binary.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tilt/binary.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = {
     description = "Local development tool to manage your developer instance when your team deploys to Kubernetes in production";
+    mainProgram = "tilt";
     homepage = "https://tilt.dev/";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ anton-dessiatov ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/timoni/default.nix b/nixpkgs/pkgs/applications/networking/cluster/timoni/default.nix
index 0efc9bb50055..a756212d3d67 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/timoni/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/timoni/default.nix
@@ -42,6 +42,7 @@ buildGo122Module rec {
     homepage = "https://timoni.sh";
     changelog = "https://github.com/stefanprodan/timoni/releases/tag/${src.rev}";
     description = "A package manager for Kubernetes, powered by CUE and inspired by Helm";
+    mainProgram = "timoni";
     license = licenses.asl20;
     maintainers = with maintainers; [ votava ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tubekit/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tubekit/default.nix
index afcef293c1d8..1e4895118be1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tubekit/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tubekit/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubectl alternative with quick context switching";
+    mainProgram = "tubectl";
     homepage = "https://github.com/reconquest/tubekit";
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/vcluster/default.nix b/nixpkgs/pkgs/applications/networking/cluster/vcluster/default.nix
index db2ea91fd054..540e203fea74 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/vcluster/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/vcluster/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "vcluster";
-  version = "0.19.1";
+  version = "0.19.4";
 
   src = fetchFromGitHub {
     owner = "loft-sh";
-    repo = pname;
+    repo = "vcluster";
     rev = "v${version}";
-    hash = "sha256-W9BSLGUrW8Us+yYQLIz3oY8JKJSo43cL+oWQQf3xWJE=";
+    hash = "sha256-fzHaB+EeS8Gr1EVlxAZzKDYgv3Jij4LwmYaXN4tjYBg=";
   };
 
   vendorHash = null;
@@ -45,11 +45,13 @@ buildGoModule rec {
     command = "vcluster --version";
   };
 
-  meta = with lib; {
+  meta = {
+    changelog = "https://github.com/loft-sh/vcluster/releases/tag/v${version}";
     description = "Create fully functional virtual Kubernetes clusters";
+    mainProgram = "vcluster";
     downloadPage = "https://github.com/loft-sh/vcluster";
     homepage = "https://www.vcluster.com/";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ peterromfeldhk berryp qjoly ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ berryp peterromfeldhk qjoly superherointj ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix b/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
index 7700ab1e6ab6..4cb8bc0ad40d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
@@ -2,14 +2,14 @@
 
 buildGoModule rec {
   pname = "velero";
-  version = "1.13.0";
+  version = "1.13.1";
 
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "velero";
     rev = "v${version}";
-    sha256 = "sha256-R9iZpib8hoU9EC6B6Kaj2dWDOkb5qFw1UzsxMBClCso=";
+    sha256 = "sha256-Fz3FqNj2NbqU9CvtdjM8cjkZh5xLCA+AAIF/QgLJ7UA=";
   };
 
   ldflags = [
diff --git a/nixpkgs/pkgs/applications/networking/cluster/waagent/default.nix b/nixpkgs/pkgs/applications/networking/cluster/waagent/default.nix
index 5c980133ff6c..65b6d780ffb2 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/waagent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/waagent/default.nix
@@ -65,6 +65,7 @@ python.pkgs.buildPythonApplication rec {
 
   meta = {
     description = "The Microsoft Azure Linux Agent (waagent)";
+    mainProgram = "waagent";
     longDescription = ''
       The Microsoft Azure Linux Agent (waagent)
       manages Linux provisioning and VM interaction with the Azure
diff --git a/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix b/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
index 880095c72098..7e16417fe2b9 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/waypoint/default.nix
@@ -70,6 +70,7 @@ buildGoModule rec {
     homepage = "https://waypointproject.io";
     changelog = "https://github.com/hashicorp/waypoint/blob/v${version}/CHANGELOG.md";
     description = "A tool to build, deploy, and release any application on any platform";
+    mainProgram = "waypoint";
     longDescription = ''
       Waypoint allows developers to define their application build, deploy, and
       release lifecycle as code, reducing the time to deliver deployments
diff --git a/nixpkgs/pkgs/applications/networking/cluster/werf/default.nix b/nixpkgs/pkgs/applications/networking/cluster/werf/default.nix
index 6699898945d2..27e527b97066 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/werf/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/werf/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "werf";
-  version = "1.2.296";
+  version = "1.2.297";
 
   src = fetchFromGitHub {
     owner = "werf";
     repo = "werf";
     rev = "v${version}";
-    hash = "sha256-D0bWva6Y0x9uMdKMONsiGC3SV2ktGPzfMq9BELqgk3E=";
+    hash = "sha256-AFuEpMSsfwjqoiLCiSyXecIe/UA72BEHs+kUaUtZU2U=";
   };
 
-  vendorHash = "sha256-6q13vMxu0iQgaXS+Z6V0jjSIhxMscw6sLANzK07gAlI=";
+  vendorHash = "sha256-mOHrNXaLnTt0WRVJI8GD48pxLvbSa6oWoxa4YFaIA6Y=";
 
   proxyVendor = true;
 
@@ -83,6 +83,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "GitOps delivery tool";
+    mainProgram = "werf";
     longDescription = ''
       The CLI tool gluing Git, Docker, Helm & Kubernetes with any CI system to
       implement CI/CD and Giterminism.
diff --git a/nixpkgs/pkgs/applications/networking/cluster/yor/default.nix b/nixpkgs/pkgs/applications/networking/cluster/yor/default.nix
index 2f55325f6eff..8008de2d977f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/yor/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/yor/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "yor";
-  version = "0.1.190";
+  version = "0.1.191";
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = pname;
     rev = version;
-    hash = "sha256-1CofTfH7PffncLsa8Ho/fY+R6oaefUld3x84oeD5Bbo=";
+    hash = "sha256-gqtvaAt2iIkKXHO7X2hiTqAdao7t6fZhl11089D2wdM=";
   };
 
-  vendorHash = "sha256-iUBajZv9BHQm0kHJGK/9FYp7nGSr7p6tlPKxugZ3BjQ=";
+  vendorHash = "sha256-uT/jGD4hDVes4h+mlSIT2p+C9TjxnUWsmKv9haPjjLc=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/applications/networking/cluster/zarf/default.nix b/nixpkgs/pkgs/applications/networking/cluster/zarf/default.nix
index 1834b5ae58a1..a19cfa5bee58 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/zarf/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/zarf/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "zarf";
-  version = "0.32.4";
+  version = "0.32.5";
 
   src = fetchFromGitHub {
     owner = "defenseunicorns";
     repo = "zarf";
     rev = "v${version}";
-    hash = "sha256-Pm8xvJKKIa7PX6oYR1LoxmHeG3rQdsfS444kL5R3/zQ=";
+    hash = "sha256-uItOFBvxre7GHgASfTILkFkGddzISNciIpyQhsnyQGY=";
   };
 
-  vendorHash = "sha256-2cXkGgyZoCsVYLPB4sglOWZURl1AS0Gb/7ke7P3mdyw=";
+  vendorHash = "sha256-ZwcyUteDgR9mNVE3UVqHwHzE0bkxE3voxk3b3Ie4Els=";
   proxyVendor = true;
 
   preBuild = ''
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "DevSecOps for Air Gap & Limited-Connection Systems. https://zarf.dev";
+    mainProgram = "zarf";
     homepage = "https://github.com/defenseunicorns/zarf.git";
     license = licenses.asl20;
     maintainers = with maintainers; [ ragingpastry ];
diff --git a/nixpkgs/pkgs/applications/networking/compactor/default.nix b/nixpkgs/pkgs/applications/networking/compactor/default.nix
index 84c0f6ae8ba5..12e6f432c5bd 100644
--- a/nixpkgs/pkgs/applications/networking/compactor/default.nix
+++ b/nixpkgs/pkgs/applications/networking/compactor/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   src = fetchFromGitHub {
     owner = "dns-stats";
-    repo = pname;
+    repo = "compactor";
     rev = version;
     fetchSubmodules = true;
     hash = "sha256-5Z14suhO5ghhmZsSj4DsSoKm+ct2gQFO6qxhjmx4Xm4=";
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Tools to capture DNS traffic and record it in C-DNS files";
     homepage    = "https://dns-stats.org/";
-    changelog   = "https://github.com/dns-stats/${pname}/raw/${version}/ChangeLog.txt";
+    changelog   = "https://github.com/dns-stats/compactor/raw/${version}/ChangeLog.txt";
     license     = licenses.mpl20;
     maintainers = with maintainers; [ fdns ];
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/deck/default.nix b/nixpkgs/pkgs/applications/networking/deck/default.nix
index 203007087836..e6cccf088e46 100644
--- a/nixpkgs/pkgs/applications/networking/deck/default.nix
+++ b/nixpkgs/pkgs/applications/networking/deck/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "deck";
-  version = "1.35.0";
+  version = "1.36.0";
 
   src = fetchFromGitHub {
     owner = "Kong";
     repo = "deck";
     rev = "v${version}";
-    hash = "sha256-Cng1T/TjhPttLFcI3if0Ea/M2edXDnrMVAFzAZmNAD8=";
+    hash = "sha256-bbHJilMh7qnGvYuid8/PmIg5m42jddqOOuMd7mzQmCo=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
@@ -21,7 +21,7 @@ buildGoModule rec {
   ];
 
   proxyVendor = true; # darwin/linux hash mismatch
-  vendorHash = "sha256-tv/wI4AN10io9x1wl2etKC+MB2vz+6FkmT/eJSsT4VI=";
+  vendorHash = "sha256-Er9m8G020SKEN8jMIhEYiKvF27YY4dZvG0noYaH3bPU=";
 
   postInstall = ''
     installShellCompletion --cmd deck \
diff --git a/nixpkgs/pkgs/applications/networking/discordo/default.nix b/nixpkgs/pkgs/applications/networking/discordo/default.nix
index 8930e5d99891..a9540226d002 100644
--- a/nixpkgs/pkgs/applications/networking/discordo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/discordo/default.nix
@@ -3,16 +3,16 @@
 
 buildGoModule rec {
   pname = "discordo";
-  version = "unstable-2024-03-03";
+  version = "unstable-2024-03-12";
 
   src = fetchFromGitHub {
     owner = "ayn2op";
     repo = pname;
-    rev = "ce2091d566f2d999d83b3c9463860b73f1d163ae";
-    hash = "sha256-71i/8t768RtD0Gk2cpSdznERSNf1gErQrrOGYiZz05g=";
+    rev = "5805f6605efe63fc887e850bcc5d107070eb2c1a";
+    hash = "sha256-IzVDxylrR0X8HLWTelSBq2+uu2h2Jd6iaNUXh9zQ9Yk=";
   };
 
-  vendorHash = "sha256-dBJYTe8aZtNuBwmcpXb3OEHoLVCa/GbGExLIRc8cVbo=";
+  vendorHash = "sha256-6pCQHr/O2pfR1v8YI+htwGZ8RFStEEUctIEpgblXvjY=";
 
   CGO_ENABLED = 0;
 
diff --git a/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
index ae4fc0a4e3b7..fc2c33e292cf 100644
--- a/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
+++ b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, testers, dnscontrol }:
 
 buildGoModule rec {
   pname = "dnscontrol";
@@ -15,13 +15,20 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
-  ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
+  ldflags = [ "-s" "-w" "-X=main.version=${version}" ];
 
   preCheck = ''
     # requires network
     rm pkg/spflib/flatten_test.go pkg/spflib/parse_test.go
   '';
 
+  passthru.tests = {
+    version = testers.testVersion {
+      command = "${lib.getExe dnscontrol} version";
+      package = dnscontrol;
+    };
+  };
+
   meta = with lib; {
     description = "Synchronize your DNS to multiple providers from a simple DSL";
     homepage = "https://dnscontrol.org/";
diff --git a/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix b/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix
index 3d348d347172..aba0262e3258 100644
--- a/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix
+++ b/nixpkgs/pkgs/applications/networking/dyndns/cfdyndns/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "CloudFlare Dynamic DNS Client";
+    mainProgram = "cfdyndns";
     homepage = "https://github.com/nrdxp/cfdyndns";
     license = lib.licenses.mit;
     maintainers = with maintainers; [ colemickens nrdxp ];
diff --git a/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix b/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix
index 776bfd501b00..6a9a57d67c3b 100644
--- a/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/dyndns/dyndnsc/default.nix
@@ -42,6 +42,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Dynamic DNS update client with support for multiple protocols";
+    mainProgram = "dyndnsc";
     longDescription = ''
       Dyndnsc is a command line client for sending updates to Dynamic
       DNS (DDNS, DynDNS) services.  It supports multiple protocols and
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix
index 729d12c1e5b9..d0a1e2cbce15 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/canto-curses/default.nix
@@ -16,6 +16,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = {
     description = "An ncurses-based console Atom/RSS feed reader";
+    mainProgram = "canto-curses";
     longDescription = ''
       Canto is an Atom/RSS feed reader for the console that is meant to be
       quick, concise, and colorful. It's meant to allow you to crank through
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix
index 86bb8f3042ec..bf304389bcae 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/castget/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A simple, command-line based RSS enclosure downloader";
+    mainProgram = "castget";
     longDescription = ''
       castget is a simple, command-line based RSS enclosure downloader. It is
       primarily intended for automatic, unattended downloading of podcasts.
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/feed2imap-go/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/feed2imap-go/default.nix
index b0bce2b71c5e..806e4fc147e0 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/feed2imap-go/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/feed2imap-go/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Uploads rss feeds as e-mails onto an IMAP server";
+    mainProgram = "feed2imap-go";
     homepage = "https://github.com/Necoro/feed2imap-go";
     license = licenses.gpl2;
     maintainers = with maintainers; [ nomeata ];
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/fluent-reader/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/fluent-reader/default.nix
index dd351ce1a27f..362771511cf5 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/fluent-reader/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/fluent-reader/default.nix
@@ -27,6 +27,7 @@ in appimageTools.wrapType2 {
 
   meta = with lib; {
     description = "Modern desktop RSS reader built with Electron, React, and Fluent UI";
+    mainProgram = "fluent-reader";
     homepage = "https://hyliu.me/fluent-reader";
     license = licenses.bsd3;
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix
index 7563e8c22d78..902b6a7b35cb 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/gnome-feeds/default.nix
@@ -78,6 +78,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "An RSS/Atom feed reader for GNOME";
+    mainProgram = "gfeeds";
     homepage = "https://gitlab.gnome.org/World/gfeeds";
     license = licenses.gpl3Plus;
     maintainers = [
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/goeland/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/goeland/default.nix
index 30bce6a15ff4..08bdff3bbcfa 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/goeland/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/goeland/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An alternative to rss2email written in golang with many filters";
+    mainProgram = "goeland";
     longDescription = ''
       Goeland excels at creating beautiful emails from RSS feeds,
       tailored for daily or weekly digest. It includes a number of
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/Cargo.lock b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/Cargo.lock
index e743a701da57..5ae116115e22 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/Cargo.lock
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/Cargo.lock
@@ -89,16 +89,16 @@ checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
 
 [[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 = "article_scraper"
 version = "2.0.0"
 source = "git+https://gitlab.com/news-flash/article_scraper.git#0dcebe8b49b8d867810d0f7ff155e502f637bb96"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "chrono",
  "encoding_rs",
  "escaper",
@@ -139,7 +139,7 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb"
 dependencies = [
- "event-listener 5.1.0",
+ "event-listener 5.2.0",
  "event-listener-strategy 0.5.0",
  "futures-core",
  "pin-project-lite",
@@ -152,7 +152,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",
@@ -259,7 +259,7 @@ dependencies = [
  "async-signal",
  "blocking",
  "cfg-if",
- "event-listener 5.1.0",
+ "event-listener 5.2.0",
  "futures-lite",
  "rustix",
  "windows-sys 0.52.0",
@@ -273,7 +273,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -308,7 +308,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -345,10 +345,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
+name = "base64"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
+
+[[package]]
 name = "bigdecimal"
-version = "0.4.2"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c06619be423ea5bb86c95f087d5707942791a08a85530df0db2209a3ecfb8bc9"
+checksum = "9324c8014cd04590682b34f1e9448d38f0674d0f7b2dc553331016ef0e4e9ebc"
 dependencies = [
  "autocfg",
  "libm",
@@ -546,9 +552,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.88"
+version = "1.0.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc"
+checksum = "a0ba8f7aaa012f30d5b2861462f6708eccd49c3c39863fe083a308035f63d723"
 
 [[package]]
 name = "cfg-expr"
@@ -583,7 +589,7 @@ dependencies = [
  "js-sys",
  "num-traits",
  "wasm-bindgen",
- "windows-targets 0.52.3",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -617,7 +623,7 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "013b56b25f5e10cae0fac4564fd64aa54766a860b896fc2d582f97616be6e92c"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "chrono",
  "log",
  "reqwest",
@@ -709,9 +715,9 @@ dependencies = [
 
 [[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",
 ]
@@ -836,7 +842,7 @@ dependencies = [
  "diesel_table_macro_syntax",
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -856,7 +862,7 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
 dependencies = [
- "syn 2.0.51",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -956,7 +962,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -977,7 +983,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1033,9 +1039,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",
@@ -1058,7 +1064,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",
 ]
 
@@ -1308,7 +1314,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1518,7 +1524,7 @@ dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1740,9 +1746,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"
@@ -1793,9 +1799,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
 dependencies = [
  "bytes",
  "fnv",
@@ -1947,9 +1953,9 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
 
 [[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",
@@ -2046,9 +2052,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",
 ]
@@ -2187,9 +2193,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"
 dependencies = [
  "serde",
 ]
@@ -2250,7 +2256,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c42f95f9d296f2dcb50665f507ed5a68a171453142663ce44d77a4eb217b053"
 dependencies = [
  "aes",
- "base64",
+ "base64 0.21.7",
  "block-modes",
  "crc-any",
  "des",
@@ -2382,7 +2388,7 @@ version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "babaa4cdaadf81050c03f93f16375cf305a29b2d6f099d66ff40aae93afcfee2"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "log",
  "reqwest",
  "serde",
@@ -2404,9 +2410,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "wasi",
@@ -2474,7 +2480,7 @@ source = "git+https://gitlab.com/news_flash/news_flash.git#46cf25eff46655e314ae3
 dependencies = [
  "article_scraper",
  "async-trait",
- "base64",
+ "base64 0.21.7",
  "bitflags 2.4.2",
  "bytes",
  "chrono",
@@ -2522,7 +2528,7 @@ name = "news_flash_gtk"
 version = "0.0.0"
 dependencies = [
  "ashpd",
- "base64",
+ "base64 0.22.0",
  "bytesize",
  "chrono",
  "color-backtrace",
@@ -2580,7 +2586,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "488e5fb51484deb6bc5bc22f0b0db4902ae7e391d075f8d1a1b9a9674ea326d3"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "log",
  "reqwest",
  "serde",
@@ -2701,9 +2707,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "opaque-debug"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
 
 [[package]]
 name = "openssl"
@@ -2728,7 +2734,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3193,9 +3199,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",
@@ -3215,7 +3221,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
 dependencies = [
  "async-compression",
- "base64",
+ "base64 0.21.7",
  "bytes",
  "cookie",
  "cookie_store",
@@ -3287,7 +3293,7 @@ dependencies = [
  "quote",
  "rust-embed-utils",
  "shellexpand",
- "syn 2.0.51",
+ "syn 2.0.52",
  "walkdir",
 ]
 
@@ -3335,7 +3341,7 @@ version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
- "base64",
+ "base64 0.21.7",
 ]
 
 [[package]]
@@ -3446,7 +3452,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3468,7 +3474,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3696,9 +3702,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.51"
+version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3812,7 +3818,7 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3918,7 +3924,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -4024,7 +4030,7 @@ dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow 0.6.2",
+ "winnow 0.6.5",
 ]
 
 [[package]]
@@ -4052,7 +4058,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -4240,9 +4246,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[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",
@@ -4265,9 +4271,9 @@ 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",
  "wasm-bindgen-macro",
@@ -4275,24 +4281,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.51",
+ "syn 2.0.52",
  "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",
  "js-sys",
@@ -4302,9 +4308,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",
@@ -4312,22 +4318,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.52",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "wasm-streams"
@@ -4344,9 +4350,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",
@@ -4434,7 +4440,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]]
@@ -4452,7 +4458,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]]
@@ -4472,17 +4478,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]]
@@ -4493,9 +4499,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"
@@ -4505,9 +4511,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"
@@ -4517,9 +4523,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"
@@ -4529,9 +4535,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"
@@ -4541,9 +4547,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"
@@ -4553,9 +4559,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"
@@ -4565,9 +4571,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.3"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "winnow"
@@ -4580,9 +4586,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",
 ]
@@ -4657,7 +4663,7 @@ dependencies = [
  "blocking",
  "derivative",
  "enumflags2",
- "event-listener 5.1.0",
+ "event-listener 5.2.0",
  "futures-core",
  "futures-sink",
  "futures-util",
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
index 37c8760df82e..e6bc4c841c17 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "newsflash";
-  version = "3.1.5";
+  version = "3.1.6";
 
   src = fetchFromGitLab {
     owner = "news-flash";
     repo = "news_flash_gtk";
     rev = "refs/tags/v.${finalAttrs.version}";
-    hash = "sha256-6RkZdRQ/pNq6VkL9E2BaAWbKKGbCpEC+skGHPe3TwH8=";
+    hash = "sha256-zEf61aKtiuTCmhzkfVkTLtIRCb4DVXVtI+9Az9dU9HE=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/photon/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/photon/default.nix
index 34612e2a87fc..1717327d865c 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/photon/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/photon/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "RSS/Atom reader with the focus on speed, usability and a bit of unix philosophy";
+    mainProgram = "photon";
     homepage = "https://sr.ht/~ghost08/photon";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kmein ];
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
index b9e903c236a5..3feabb49602d 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
@@ -1,4 +1,9 @@
-{ pythonPackages, fetchurl, lib, nixosTests }:
+{ lib
+, pythonPackages
+, fetchPypi
+, fetchpatch2
+, nixosTests
+}:
 
 with pythonPackages;
 
@@ -9,11 +14,19 @@ buildPythonApplication rec {
   propagatedBuildInputs = [ feedparser html2text ];
   nativeCheckInputs = [ beautifulsoup4 ];
 
-  src = fetchurl {
-    url = "mirror://pypi/r/rss2email/${pname}-${version}.tar.gz";
-    sha256 = "sha256-RwORS2PHquxBZLNKqCJtR5XX4SHqPCb/Fn+Y68dfI/g=";
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-RwORS2PHquxBZLNKqCJtR5XX4SHqPCb/Fn+Y68dfI/g=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      name = "html2text-2024.2.25-compat.patch";
+      url = "https://github.com/rss2email/rss2email/commit/b5c0e78006c2db6929b5ff50e8529de58a00412a.patch";
+      hash = "sha256-edmsi3I0acx5iF9xoAS9deSexqW2UtWZR/L7CgeZs/M=";
+    })
+  ];
+
   outputs = [ "out" "man" "doc" ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
index 5c031ebc479c..499b8a2893d0 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple RSS/Atom feed reader with online synchronization";
+    mainProgram = "rssguard";
     longDescription = ''
       RSS Guard is a simple, light and easy-to-use RSS/ATOM feed aggregator
       developed using Qt framework and with online feed synchronization support
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix
index af2dbd1a9a4f..524e8d76b697 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/rsstail/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Monitor RSS feeds for new entries";
+    mainProgram = "rsstail";
     longDescription = ''
       RSSTail is more or less an RSS reader: it monitors an RSS feed and if it
       detects a new entry it'll emit only that new entry.
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/russ/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/russ/default.nix
index 4bf3c2a34000..6780b58f0d01 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/russ/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/russ/default.nix
@@ -23,6 +23,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "A TUI RSS reader with vim-like controls and a local-first, offline-first focus";
+    mainProgram = "russ";
     homepage = "https://github.com/ckampfe/russ";
     license = with licenses; [ agpl3Only ];
     maintainers = with maintainers; [ blusk ];
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/tuifeed/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/tuifeed/default.nix
index 89494bb6d017..6ee7a6148445 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/tuifeed/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/tuifeed/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A terminal feed reader with a fancy UI";
+    mainProgram = "tuifeed";
     homepage = "https://github.com/veeso/tuifeed";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ devhell ];
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/yarr/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/yarr/default.nix
index ab3e6af5723e..205e52012cd7 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/yarr/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/yarr/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Yet another rss reader";
+    mainProgram = "yarr";
     homepage = "https://github.com/nkanaev/yarr";
     changelog = "https://github.com/nkanaev/yarr/blob/v${version}/doc/changelog.txt";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/networking/firehol/iprange.nix b/nixpkgs/pkgs/applications/networking/firehol/iprange.nix
index 7dc43d5c116c..d2504b73cc30 100644
--- a/nixpkgs/pkgs/applications/networking/firehol/iprange.nix
+++ b/nixpkgs/pkgs/applications/networking/firehol/iprange.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "manage IP ranges";
+    mainProgram = "iprange";
     homepage = "https://github.com/firehol/iprange";
     license = licenses.gpl2;
     maintainers = with maintainers; [ oxzi ];
diff --git a/nixpkgs/pkgs/applications/networking/flent/http-getter.nix b/nixpkgs/pkgs/applications/networking/flent/http-getter.nix
index 21c9d3ca6fb1..5ea07cfe4f9d 100644
--- a/nixpkgs/pkgs/applications/networking/flent/http-getter.nix
+++ b/nixpkgs/pkgs/applications/networking/flent/http-getter.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/tohojo/http-getter";
     description = "Simple getter for HTTP URLs using cURL";
+    mainProgram = "http-getter";
     platforms = platforms.unix;
     license = licenses.gpl3;
   };
diff --git a/nixpkgs/pkgs/applications/networking/flexget/default.nix b/nixpkgs/pkgs/applications/networking/flexget/default.nix
index 72011a3160b2..bf26bbd002bc 100644
--- a/nixpkgs/pkgs/applications/networking/flexget/default.nix
+++ b/nixpkgs/pkgs/applications/networking/flexget/default.nix
@@ -6,7 +6,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "flexget";
-  version = "3.11.19";
+  version = "3.11.25";
   pyproject = true;
 
   # Fetch from GitHub in order to use `requirements.in`
@@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "Flexget";
     repo = "Flexget";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XqZPhjuk3f9EbDTu+iX2U6uOXTn3rFdYjQNx5Prte88=";
+    hash = "sha256-bvCogSBB990LIkk273EMTlqNN303JKr5WCI8g7hLU9Q=";
   };
 
   postPatch = ''
@@ -42,7 +42,7 @@ python3.pkgs.buildPythonApplication rec {
     loguru
     more-itertools
     packaging
-    pendulum_3
+    pendulum
     psutil
     pynzb
     pyrsistent
diff --git a/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
index 16a4e9b200c1..23dfae71080a 100644
--- a/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
@@ -22,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "filezilla";
-  version = "3.66.4";
+  version = "3.66.5";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.xz";
-    hash = "sha256-pA8E4C76rntQ0VFe4cNsSw5EWBhWbEUORAv9bHDpsgM=";
+    hash = "sha256-khIoGbrmNBBwuktuy0V+ZzC0bn3ImUKZCQPymJA9Gzs=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/applications/networking/geph/default.nix b/nixpkgs/pkgs/applications/networking/geph/default.nix
index 1b839d748477..68cf0d61dacc 100644
--- a/nixpkgs/pkgs/applications/networking/geph/default.nix
+++ b/nixpkgs/pkgs/applications/networking/geph/default.nix
@@ -19,7 +19,7 @@
 }:
 
 let
-  version = "4.10.1";
+  version = "4.11.0";
   geph-meta = with lib; {
     description = "A modular Internet censorship circumvention system designed specifically to deal with national filtering.";
     homepage = "https://geph.io";
@@ -36,10 +36,10 @@ in
       owner = "geph-official";
       repo = pname;
       rev = "v${version}";
-      hash = "sha256-e0Pdg4pQ5s1wvTnFm1rKuAwkYtCtu2Uacd7yH3EHeCo=";
+      hash = "sha256-6zii8WxJp++yqTkxejNDta7IW+SG0uPgmnWqX5Oa9PU=";
     };
 
-    cargoHash = "sha256-Kwc+EOH2pJJVvIcTUfL39Xrv/7YmTPUDge7mmjDs9pQ=";
+    cargoHash = "sha256-WI525ufJxuepRZHyx8tO4K+7WZuM/NlTVNqVMJH6avg=";
 
     nativeBuildInputs = [ perl ];
 
@@ -55,8 +55,8 @@ in
     src = fetchFromGitHub {
       owner = "geph-official";
       repo = "gephgui-pkg";
-      rev = "4163e12188dd679ba548e127fc9771cb5e87bab0";
-      hash = "sha256-wBvhfgp5sZTRCBR9HZqs1G0VaIt9DW2e9CWMAp/T5WI=";
+      rev = "3a6d2fa85603e9ac3d5d6286685d8a8ca792a508";
+      hash = "sha256-SE1TwYvR3+zwdPxlanq4hovmJsOdCJQzWfSJ6sSyJ5k=";
       fetchSubmodules = true;
     };
 
@@ -64,7 +64,7 @@ in
       pname = "${pname}-pnpm-deps";
       inherit src version;
 
-      sourceRoot = "source/gephgui-wry/gephgui";
+      sourceRoot = "${src.name}/gephgui-wry/gephgui";
 
       nativeBuildInputs = [
         jq
@@ -95,7 +95,7 @@ in
       pname = "gephgui-wry";
       inherit version src;
 
-      sourceRoot = "source/gephgui-wry";
+      sourceRoot = "${src.name}/gephgui-wry";
 
       cargoLock = {
         lockFile = ./Cargo.lock;
diff --git a/nixpkgs/pkgs/applications/networking/gnmic/default.nix b/nixpkgs/pkgs/applications/networking/gnmic/default.nix
index 37d22d3e32d6..223c5c4beb02 100644
--- a/nixpkgs/pkgs/applications/networking/gnmic/default.nix
+++ b/nixpkgs/pkgs/applications/networking/gnmic/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "gnmic";
-  version = "0.35.1";
+  version = "0.36.2";
 
   src = fetchFromGitHub {
     owner = "openconfig";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-1Rtq/tRDU8hwrEYhP2/2qPWAYeCPL03m4NpXO3sGUdo=";
+    hash = "sha256-PUOIKPkzM6riiXR8R1Io0QI/qr6HaexfFgbp2Hx2SOo=";
   };
 
-  vendorHash = "sha256-HoOjVfpowb5jvAYdQ3cbCQmSl1RJKPDjvOaOGfhe5TY=";
+  vendorHash = "sha256-zrG/rNoYtfVNN50g41txLQIcBAKi1yE5p1TODrDiXzU=";
 
   ldflags = [
     "-s" "-w"
diff --git a/nixpkgs/pkgs/applications/networking/gns3/default.nix b/nixpkgs/pkgs/applications/networking/gns3/default.nix
index 500d4c169280..c039a8885ae0 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/default.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/default.nix
@@ -12,25 +12,25 @@ in {
 
   guiStable = mkGui {
     channel = "stable";
-    version = "2.2.45";
-    hash = "sha256-SMnhPz5zTPtidy/BIvauDM60WgDLG+NIr9rdUrQhz0A=";
+    version = "2.2.46";
+    hash = "sha256-i/Eq66dYDGR4RLJ76ZlKruhU0KC9KlMMf8Wb91ZoyY0=";
   };
 
   guiPreview = mkGui {
     channel = "stable";
-    version = "2.2.45";
-    hash = "sha256-SMnhPz5zTPtidy/BIvauDM60WgDLG+NIr9rdUrQhz0A=";
+    version = "2.2.46";
+    hash = "sha256-i/Eq66dYDGR4RLJ76ZlKruhU0KC9KlMMf8Wb91ZoyY0=";
   };
 
   serverStable = mkServer {
     channel = "stable";
-    version = "2.2.45";
-    hash = "sha256-1GwhZEPfRW1e+enJipy7YOnA4QzeqZ7aCG92GrsZhms=";
+    version = "2.2.46";
+    hash = "sha256-A6rAhc/EGvbqVdg1jXxNX3bKQLcGurqa7hKh9LvH+es=";
   };
 
   serverPreview = mkServer {
     channel = "stable";
-    version = "2.2.45";
-    hash = "sha256-1GwhZEPfRW1e+enJipy7YOnA4QzeqZ7aCG92GrsZhms=";
+    version = "2.2.46";
+    hash = "sha256-A6rAhc/EGvbqVdg1jXxNX3bKQLcGurqa7hKh9LvH+es=";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/gns3/gui.nix b/nixpkgs/pkgs/applications/networking/gns3/gui.nix
index 218334bbd92f..895df8abfbc7 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/gui.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/gui.nix
@@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
     inherit hash;
     owner = "GNS3";
     repo = pname;
-    rev = "v${version}";
+    rev = "refs/tags/v${version}";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/nixpkgs/pkgs/applications/networking/gopher/geomyidae/default.nix b/nixpkgs/pkgs/applications/networking/gopher/geomyidae/default.nix
index bd57b968140b..442757a8bbe4 100644
--- a/nixpkgs/pkgs/applications/networking/gopher/geomyidae/default.nix
+++ b/nixpkgs/pkgs/applications/networking/gopher/geomyidae/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A gopher daemon for Linux/BSD";
+    mainProgram = "geomyidae";
     homepage = "gopher://bitreich.org/1/scm/geomyidae";
     license = licenses.mit;
     maintainers = [ maintainers.athas ];
diff --git a/nixpkgs/pkgs/applications/networking/gopher/phetch/default.nix b/nixpkgs/pkgs/applications/networking/gopher/phetch/default.nix
index 8cdd3dc06325..ed327dab740a 100644
--- a/nixpkgs/pkgs/applications/networking/gopher/phetch/default.nix
+++ b/nixpkgs/pkgs/applications/networking/gopher/phetch/default.nix
@@ -37,6 +37,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A quick lil gopher client for your terminal, written in rust";
+    mainProgram = "phetch";
     longDescription = ''
       phetch is a terminal client designed to help you quickly navigate the gophersphere.
       - <1MB executable for Linux, Mac, and NetBSD
diff --git a/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix b/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix
index 686f671e13a5..2e89930f2b78 100644
--- a/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A terminal gopher client";
+    mainProgram = "sacc";
     homepage = "gopher://bitreich.org/1/scm/sacc";
     license = licenses.isc;
     maintainers = [ maintainers.sternenseemann ];
diff --git a/nixpkgs/pkgs/applications/networking/ids/daq/default.nix b/nixpkgs/pkgs/applications/networking/ids/daq/default.nix
index dc40337bd723..a8d2f52052dc 100644
--- a/nixpkgs/pkgs/applications/networking/ids/daq/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ids/daq/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Data AcQuisition library (DAQ), for packet I/O";
+    mainProgram = "daq-modules-config";
     homepage = "https://www.snort.org";
     maintainers = with lib.maintainers; [ aycanirican ];
     license = lib.licenses.gpl2;
diff --git a/nixpkgs/pkgs/applications/networking/ids/zeek/broker/default.nix b/nixpkgs/pkgs/applications/networking/ids/zeek/broker/default.nix
index ef37f4c2ed06..1e9b6f3f0c08 100644
--- a/nixpkgs/pkgs/applications/networking/ids/zeek/broker/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ids/zeek/broker/default.nix
@@ -24,12 +24,12 @@ let
     hash = "sha256-AVaKcRjF5ZiSR8aPSLBzSTeWVwGWW/aSyQJcN0Yhza0=";
   };
   caf' = caf.overrideAttrs (old: {
-    version = "unstable-2022-11-17-zeek";
+    version = "unstable-2024-01-07-zeek";
     src = fetchFromGitHub {
       owner = "zeek";
       repo = "actor-framework";
-      rev = "4f580d89f35ae4d475505101623c8b022c0c6aa6";
-      hash = "sha256-8KGXg072lZiq/rC5ZuThDGRjeYvVVFBd3ea8yhUHOYY=";
+      rev = "e3048cdd13e085c97870a55eb1f9de04e25320f3";
+      hash = "sha256-uisoYXiZbFQa/TfWGRrCJ23MX4bg8Ds86ffC8sZSRNQ=";
     };
     cmakeFlags = old.cmakeFlags ++ [
       "-DCAF_ENABLE_TESTING=OFF"
@@ -39,7 +39,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "zeek-broker";
-  version = "2.7.0";
+  version = "6.2.0";
   outputs = [ "out" "py" ];
 
   strictDeps = true;
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
     owner = "zeek";
     repo = "broker";
     rev = "v${version}";
-    hash = "sha256-fwLqw7PPYUDm+eJxDpCtY/W6XianqBDPHOhzDQoooYo=";
+    hash = "sha256-SG5TzozKvYc7qcEPJgiEtsxgzdZbbJt90lmuUbCPyv0=";
   };
   postUnpack = ''
     rmdir $sourceRoot/cmake $sourceRoot/3rdparty
@@ -82,6 +82,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Zeek's Messaging Library";
+    mainProgram = "broker-benchmark";
     homepage = "https://github.com/zeek/broker";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
index d5b07d7e5c03..09bf661f54b1 100644
--- a/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
@@ -26,11 +26,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "zeek";
-  version = "6.1.1";
+  version = "6.2.0";
 
   src = fetchurl {
     url = "https://download.zeek.org/zeek-${version}.tar.gz";
-    sha256 = "sha256-j8Vl6Vc/Wu1JpDV0UoXkLcEPUjRUnvwVAq91RPaDN+U=";
+    hash = "sha256-Y1Z+j5+Ffqho5Q2O8uQgNxsxPE7gqHaxe1SZEJDA0oY=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix
index f402faf965be..de70f49fe604 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Export Skype history to HTML";
+    mainProgram = "SkypeExport";
     homepage = "https://github.com/Temptin/SkypeExport";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/abaddon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/abaddon/default.nix
index 3dbab9211dfa..7101bba8d196 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/abaddon/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/abaddon/default.nix
@@ -77,6 +77,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A discord client reimplementation, written in C++";
+    mainProgram = "abaddon";
     homepage = "https://github.com/uowuo/abaddon";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ genericnerdyusername ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix
index d5975bb78059..666140c8dec2 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/alfaview/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alfaview";
-  version = "9.8.2";
+  version = "9.9.1";
 
   src = fetchurl {
     url = "https://assets.alfaview.com/stable/linux/deb/${pname}_${version}.deb";
-    hash = "sha256-xDi51AtQGM8htkFaLKlHXHh0VaT477qK/7VZVmFIE0M=";
+    hash = "sha256-GZLIVpXQ22W4JykdLJ7pTogOFhDaiukgsLa2E7giiaU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/beeper/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/beeper/default.nix
index 1a014d2aef0a..ce49c9e8c29a 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/beeper/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/beeper/default.nix
@@ -11,11 +11,11 @@
 }:
 let
   pname = "beeper";
-  version = "3.98.16";
+  version = "3.100.26";
   name = "${pname}-${version}";
   src = fetchurl {
-    url = "https://download.todesktop.com/2003241lzgn20jd/beeper-3.98.16-build-240228llcputn9l-x86_64.AppImage";
-    hash = "sha256-CjtlE/owx7emzGDdOAw6pSlAuNbUspm1YP+kxm6Jrt8=";
+    url = "https://download.todesktop.com/2003241lzgn20jd/beeper-3.100.26-build-240314pjsp57xom-x86_64.AppImage";
+    hash = "sha256-KYjB7ZfjoVf6UoXQvmtAqtD23JNQGqboNzXekAiJF7k=";
   };
   appimage = appimageTools.wrapType2 {
     inherit version pname src;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
index 99ce3f8811ef..32b3096c3c66 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "IRC instant messaging gateway";
+    mainProgram = "bitlbee";
 
     longDescription = ''
       BitlBee brings IM (instant messaging) to IRC clients.  It's a
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix
index 4bdc8f7f6deb..c0fd454a2fd8 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/briar-desktop/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Decentalized and secure messnger";
+    mainProgram = "briar-desktop";
     homepage = "https://code.briarproject.org/briar/briar-desktop";
     license = licenses.gpl3;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
index 4353c983320b..19c91baf9a43 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   '';
   meta = with lib; {
     description = "A chat client for Twitch chat";
+    mainProgram = "chatterino";
     longDescription = ''
       Chatterino is a chat client for Twitch chat. It aims to be an
       improved/extended version of the Twitch web chat. Chatterino 2 is
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix
index 9faecf609272..adacea2d019a 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/chatty/default.nix
@@ -15,6 +15,7 @@
 , gnome-desktop
 , gspell
 , gtk4
+, gst_all_1
 , json-glib
 , libgcrypt
 , libadwaita
@@ -29,7 +30,7 @@
 
 stdenv.mkDerivation rec {
   pname = "chatty";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
@@ -37,7 +38,7 @@ stdenv.mkDerivation rec {
     repo = "Chatty";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-5IkQnXAKl0duy/B6+z7PXYv5zxakxJCgQhWBw5wioWg=";
+    hash = "sha256-7SdoN9JjGwELOdISJwS1Afcydp/rE2uq/tHO/UrFKNU=";
   };
 
   nativeBuildInputs = [
@@ -58,6 +59,7 @@ stdenv.mkDerivation rec {
     gnome-desktop
     gspell
     gtk4
+    gst_all_1.gstreamer
     json-glib
     libgcrypt
     libadwaita
@@ -78,6 +80,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "XMPP and SMS messaging via libpurple and ModemManager";
+    mainProgram = "chatty";
     homepage = "https://gitlab.gnome.org/World/Chatty";
     changelog = "https://gitlab.gnome.org/World/Chatty/-/blob/${src.rev}/NEWS";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix
index 01bd4ff50e4c..35c2c0dbffb3 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/Bios-Marcel/cordless";
     description = "Discord terminal client";
+    mainProgram = "cordless";
     license = licenses.bsd3;
     maintainers = with maintainers; [ colemickens ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix
index 61fb4b43a033..8223f9598b61 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/coyim/default.nix
@@ -30,6 +30,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "a safe and secure chat client";
+    mainProgram = "coyim";
     homepage = "https://coy.im/";
     license = licenses.gpl3;
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
index ab6b0ff5abc4..d53b122068a9 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildNpmPackage
 , copyDesktopItems
-, electron_26
+, electron_28
 , buildGoModule
 , esbuild
 , fetchFromGitHub
@@ -36,16 +36,16 @@ let
 in
 buildNpmPackage rec {
   pname = "deltachat-desktop";
-  version = "1.42.2";
+  version = "1.44.1";
 
   src = fetchFromGitHub {
     owner = "deltachat";
     repo = "deltachat-desktop";
     rev = "v${version}";
-    hash = "sha256-c8eK6YpxCP+Ga/VcqbbOUYuL1h4xspjglCZ1wiEAags=";
+    hash = "sha256-fL+9oPQ5dAgvQREZ7A+hKo2MnZKeVvadQDvDPsDNbnQ=";
   };
 
-  npmDepsHash = "sha256-7xMSsKESK9BqQrMvxceEhsETwDFue0/viCNULtzzwGo=";
+  npmDepsHash = "sha256-rUxJLDsAfp+brecTThYTdHIVIfVkKwZ/W5sHV0hHHIk=";
 
   postPatch = ''
     test \
@@ -103,7 +103,7 @@ buildNpmPackage rec {
         $out/lib/node_modules/deltachat-desktop/html-dist/fonts
     done
 
-    makeWrapper ${electron_26}/bin/electron $out/bin/deltachat \
+    makeWrapper ${lib.getExe electron_28} $out/bin/deltachat \
       --set LD_PRELOAD ${sqlcipher}/lib/libsqlcipher${stdenv.hostPlatform.extensions.sharedLibrary} \
       --add-flags $out/lib/node_modules/deltachat-desktop
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
index 879314a97f0e..258f75df4d10 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -121,6 +121,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Modern Jabber/XMPP Client using GTK/Vala";
+    mainProgram = "dino";
     homepage = "https://github.com/dino/dino";
     license = licenses.gpl3Plus;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix
index 44ef7cae84c7..bdbd550b6731 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord-screenaudio/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A custom discord client that supports streaming with audio on Linux";
+    mainProgram = "discord-screenaudio";
     homepage = "https://github.com/maltejur/discord-screenaudio";
     downloadPage = "https://github.com/maltejur/discord-screenaudio/releases";
     changelog = "https://github.com/maltejur/discord-screenaudio/releases/tag/v${version}";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
index 3392aff89add..2537ad916385 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -2,52 +2,52 @@
 let
   versions =
     if stdenv.isLinux then {
-      stable = "0.0.43";
-      ptb = "0.0.72";
-      canary = "0.0.285";
-      development = "0.0.13";
+      stable = "0.0.45";
+      ptb = "0.0.74";
+      canary = "0.0.300";
+      development = "0.0.14";
     } else {
-      stable = "0.0.294";
-      ptb = "0.0.97";
-      canary = "0.0.416";
-      development = "0.0.30";
+      stable = "0.0.296";
+      ptb = "0.0.102";
+      canary = "0.0.435";
+      development = "0.0.31";
     };
   version = versions.${branch};
   srcs = rec {
     x86_64-linux = {
       stable = fetchurl {
         url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
-        hash = "sha256-DO8bS5luSKhKW6sJZhz4xVeIPexQVoaD4xYugHCN3uk=";
+        hash = "sha256-dSDc5EyWk/aH5JFG6WYfJqnb0Y2/b46YcdNB2Z9wRn0=";
       };
       ptb = fetchurl {
         url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
-        hash = "sha256-yZzQj8XOIk6Ccyn/o1PAZPlr43xrl8O2LLmwV+WO9Wg=";
+        hash = "sha256-I466kZg4FE6oPem7wxR6Snd8V3nFF5hH70zlGTCcsZk=";
       };
       canary = fetchurl {
         url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
-        hash = "sha256-dfBwe/YOzUUAfBrf51mNXtpyGL3Mp235e6TfQM4h04s=";
+        hash = "sha256-GmPnc13LBBsMgTiUkOstL1u0l29NGUUQBQKTlXcJWsE=";
       };
       development = fetchurl {
         url = "https://dl-development.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
-        hash = "sha256-/vYi82c9ef83MSBtmnZRGEgTNTOj/01zRUbvBWR0ayo=";
+        hash = "sha256-QR71x+AUT2s/f8QBSJwSDqmqDRQBu3kUxAiXgfOsdOE=";
       };
     };
     x86_64-darwin = {
       stable = fetchurl {
         url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg";
-        hash = "sha256-OzaAHCGusctuQk2uzJhCQCTI6SNRGQZXbQ0FgPZLV8w=";
+        hash = "sha256-0bSyL/J2P1pVzv9pFTNSR3V2NkQcDTd74t8KT+WVd64=";
       };
       ptb = fetchurl {
         url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
-        hash = "sha256-nONU9TZAWtxqh5PpvgsvaEHESOKhMYGTe184EgCNxHQ=";
+        hash = "sha256-33x6M++EsRJXTbsC4BCa21Yz7cbAhsosPO1WqYq/lCY=";
       };
       canary = fetchurl {
         url = "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
-        hash = "sha256-3Vl5qQihUqyQdHnM/968xaCPIM6P6ImLQAiWKXwYnps=";
+        hash = "sha256-Jreet8EstaTAYAmQrzRaJE/b+xwgRVXIW8elEY7amvw=";
       };
       development = fetchurl {
         url = "https://dl-development.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg";
-        hash = "sha256-ffTIfurfYprKAJbOOGzzxCfGQofiVy+Q0NmEJ59ENk4=";
+        hash = "sha256-He/9KH1oMyj9ofYSwHhdqm7jKDsvrGpPPjLED9fSq30=";
       };
     };
     aarch64-darwin = x86_64-darwin;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index 46a7f821446c..ffbee0f25f82 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -16,6 +16,7 @@
 , AppKit
 , CoreServices
 , desktopToDarwinBundle
+, libnotify
 , useKeytar ? true
 }:
 
@@ -77,7 +78,13 @@ stdenv.mkDerivation (finalAttrs: builtins.removeAttrs pinData [ "hashes" ] // {
     runHook postBuild
   '';
 
-  installPhase = ''
+  installPhase =
+    let
+      libPath = lib.makeLibraryPath [
+        libnotify
+      ];
+    in
+  ''
     runHook preInstall
 
     # resources
@@ -104,6 +111,7 @@ stdenv.mkDerivation (finalAttrs: builtins.removeAttrs pinData [ "hashes" ] // {
     # LD_PRELOAD workaround for sqlcipher not found: https://github.com/matrix-org/seshat/issues/102
     makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
       --set LD_PRELOAD ${sqlcipher}/lib/libsqlcipher.so \
+      --set LD_LIBRARY_PATH "${libPath}" \
       --add-flags "$out/share/element/electron" \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.nix
index 19ea95b452ff..f6e239a89d71 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/pin.nix
@@ -1,9 +1,9 @@
 {
-  "version" = "1.11.59";
+  "version" = "1.11.61";
   "hashes" = {
-    "desktopSrcHash" = "sha256-dasRfLsa8Jc6Vyay02f6IytjvYs3xbSFB2fU5bxi79E=";
-    "desktopYarnHash" = "00jvid2li68ji1xkbbpdiy39fzvhmw7ypnr3x82wbqqafkc5vil6";
-    "webSrcHash" = "sha256-UpRRTPrNiFsqXKD072jXVIqS8ZiuKt/BUzx1oja90VA=";
-    "webYarnHash" = "1s9lp2dd3slpp70rrbmsbmzphm6fwglnrqwk9fgylzqa1ds8nfjd";
+    "desktopSrcHash" = "sha256-1Pq26e2ngcji7wieHNOQAWPFBKGLoeTRAKQ3Aqnn1jw=";
+    "desktopYarnHash" = "16psxfai8dyckm4xwrg5czv6l4163x2nlqqcdgly6axabllgacj1";
+    "webSrcHash" = "sha256-RJhZgwTMDLMt+ha0lxPwqiP5sipXIcGZfdPVgCxePH4=";
+    "webYarnHash" = "1vj3f2bml8jyjz6djzvw1hbrv7148wk8y9hwp323zf8n6y4rnk28";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/feishu/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/feishu/default.nix
index 602df7626f0e..8900f26d90a4 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/feishu/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/feishu/default.nix
@@ -63,13 +63,13 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "6.9.16";
+  version = "6.9.20";
   pname = "feishu";
-  packageHash = "fe01b99b"; # A hash value used in the download url
+  packageHash = "6085d1c4"; # A hash value used in the download url
 
   src = fetchurl {
     url = "https://sf3-cn.feishucdn.com/obj/ee-appcenter/${packageHash}/Feishu-linux_x64-${version}.deb";
-    hash = "sha256-+koH6/K0J8KCVaNGIVvmLmPn/Ttyc9WcNAp0f7PLkqg=";
+    hash = "sha256-kg5j/vWaCBUjnF983kk0ZMJ+inF5z5ctED9+ITuIn94=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/default.nix
index 2730af4d4e65..a2fe31c1099d 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdium/default.nix
@@ -6,13 +6,13 @@ let
     aarch64-linux = "arm64";
   }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   hash = {
-    amd64-linux_hash = "sha256-X1wGrxwENEXKhJkY8cg0iFVJTnJzWDs/4jsluq01sZM=";
-    arm64-linux_hash = "sha256-7qjM2H88rc+oGT8u4z5DzKMxu03yRDrXVJ9joK58vwM=";
+    amd64-linux_hash = "sha256-ERAMFb69Y2kWiHIBn4ITEZJlx+YIpzqDye80vchOXl0=";
+    arm64-linux_hash = "sha256-B3zlhxJQaDoZ69nu/dXUbY2qxJ6FAp4CqU8+TLoNwsg=";
   }."${arch}-linux_hash";
 in mkFranzDerivation rec {
   pname = "ferdium";
   name = "Ferdium";
-  version = "6.7.0";
+  version = "6.7.1";
   src = fetchurl {
     url = "https://github.com/ferdium/ferdium-app/releases/download/v${version}/Ferdium-linux-${version}-${arch}.deb";
     inherit hash;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/flare-signal/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/flare-signal/default.nix
index 9988352d1614..f21241e10b60 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/flare-signal/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/flare-signal/default.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
   meta = {
     changelog = "https://gitlab.com/schmiddi-on-mobile/flare/-/blob/${src.rev}/CHANGELOG.md";
     description = "An unofficial Signal GTK client";
+    mainProgram = "flare";
     homepage = "https://gitlab.com/schmiddi-on-mobile/flare";
     license = lib.licenses.agpl3Plus;
     maintainers = with lib.maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
index f3505d9856b2..99562f4054ae 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/default.nix
@@ -4,7 +4,7 @@
 , imagemagick
 , mesa
 , libdrm
-, flutter316
+, flutter
 , pulseaudio
 , makeDesktopItem
 , gnome
@@ -16,20 +16,21 @@ let
   libwebrtcRpath = lib.makeLibraryPath [ mesa libdrm ];
   pubspecLock = lib.importJSON ./pubspec.lock.json;
 in
-flutter316.buildFlutterApplication (rec {
+flutter.buildFlutterApplication (rec {
   pname = "fluffychat-${targetFlutterPlatform}";
-  version = "1.17.1";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "krille-chan";
     repo = "fluffychat";
     rev = "refs/tags/v${version}";
-    hash = "sha256-SCZtdmpUaCwORIJgT9lQO/It+WSzkhBOd6liLzPBerU=";
+    hash = "sha256-xm3+zBqg/mW2XxqFDXxeC+gIc+TgeciJmQf8w1kcW5Y=";
   };
 
   inherit pubspecLock;
 
   gitHashes = {
+    flutter_shortcuts = "sha256-4nptZ7/tM2W/zylk3rfQzxXgQ6AipFH36gcIb/0RbHo=";
     keyboard_shortcuts = "sha256-U74kRujftHPvpMOIqVT0Ph+wi1ocnxNxIFA1krft4Os=";
     wakelock_windows = "sha256-Dfwe3dSScD/6kvkP67notcbb+EgTQ3kEYcH7wpra2dI=";
   };
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/pubspec.lock.json b/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/pubspec.lock.json
index ea9578706e02..b6df5968cd9a 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/pubspec.lock.json
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fluffychat/pubspec.lock.json
@@ -1,15 +1,5 @@
 {
   "packages": {
-    "_fe_analyzer_shared": {
-      "dependency": "transitive",
-      "description": {
-        "name": "_fe_analyzer_shared",
-        "sha256": "ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "61.0.0"
-    },
     "adaptive_dialog": {
       "dependency": "direct main",
       "description": {
@@ -20,26 +10,6 @@
       "source": "hosted",
       "version": "2.0.0"
     },
-    "analyzer": {
-      "dependency": "transitive",
-      "description": {
-        "name": "analyzer",
-        "sha256": "ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "5.13.0"
-    },
-    "analyzer_plugin": {
-      "dependency": "transitive",
-      "description": {
-        "name": "analyzer_plugin",
-        "sha256": "c1d5f167683de03d5ab6c3b53fc9aeefc5d59476e7810ba7bbddff50c6f4392d",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.11.2"
-    },
     "animations": {
       "dependency": "direct main",
       "description": {
@@ -310,36 +280,6 @@
       "source": "hosted",
       "version": "1.0.6"
     },
-    "dart_code_metrics": {
-      "dependency": "direct dev",
-      "description": {
-        "name": "dart_code_metrics",
-        "sha256": "3dede3f7abc077a4181ec7445448a289a9ce08e2981e6a4d49a3fb5099d47e1f",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "5.7.6"
-    },
-    "dart_code_metrics_presets": {
-      "dependency": "transitive",
-      "description": {
-        "name": "dart_code_metrics_presets",
-        "sha256": "b71eadf02a3787ebd5c887623f83f6fdc204d45c75a081bd636c4104b3fd8b73",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.8.0"
-    },
-    "dart_style": {
-      "dependency": "transitive",
-      "description": {
-        "name": "dart_style",
-        "sha256": "1efa911ca7086affd35f463ca2fc1799584fb6aa89883cf0af8e3664d6a02d55",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.3.2"
-    },
     "dart_webrtc": {
       "dependency": "transitive",
       "description": {
@@ -424,11 +364,11 @@
       "dependency": "direct main",
       "description": {
         "name": "emoji_picker_flutter",
-        "sha256": "009c51efc763d5a6ba05a5628b8b2184c327cd117d66ea9c3e7edf2ff269c423",
+        "sha256": "8506341d62efd116d6fb1481450bffdbac659d3d90d46d9cc610bfae5f33cc54",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.6.3"
+      "version": "1.6.4"
     },
     "emoji_proposal": {
       "dependency": "direct main",
@@ -494,11 +434,11 @@
       "dependency": "transitive",
       "description": {
         "name": "file",
-        "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d",
+        "sha256": "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "6.1.4"
+      "version": "7.0.0"
     },
     "file_picker": {
       "dependency": "direct main",
@@ -592,6 +532,16 @@
       "source": "sdk",
       "version": "0.0.0"
     },
+    "flutter_file_dialog": {
+      "dependency": "direct main",
+      "description": {
+        "name": "flutter_file_dialog",
+        "sha256": "9344b8f07be6a1b6f9854b723fb0cf84a8094ba94761af1d213589d3cb087488",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.0.2"
+    },
     "flutter_foreground_task": {
       "dependency": "direct main",
       "description": {
@@ -726,11 +676,11 @@
       "dependency": "direct main",
       "description": {
         "name": "flutter_local_notifications",
-        "sha256": "bb5cd63ff7c91d6efe452e41d0d0ae6348925c82eafd10ce170ef585ea04776e",
+        "sha256": "c18f1de98fe0bb9dd5ba91e1330d4febc8b6a7de6aae3ffe475ef423723e72f3",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "16.2.0"
+      "version": "16.3.2"
     },
     "flutter_local_notifications_linux": {
       "dependency": "transitive",
@@ -888,6 +838,17 @@
       "source": "hosted",
       "version": "3.0.0"
     },
+    "flutter_shortcuts": {
+      "dependency": "direct main",
+      "description": {
+        "path": ".",
+        "ref": "HEAD",
+        "resolved-ref": "930c51d56c87a7f8cefdf8c1db52c194baddc37d",
+        "url": "https://github.com/krille-chan/flutter_shortcuts.git"
+      },
+      "source": "git",
+      "version": "1.4.0"
+    },
     "flutter_svg": {
       "dependency": "transitive",
       "description": {
@@ -1040,11 +1001,11 @@
       "dependency": "direct main",
       "description": {
         "name": "go_router",
-        "sha256": "c247a4f76071c3b97bb5ae8912968870d5565644801c5e09f3bc961b4d874895",
+        "sha256": "07ee2436909f749d606f53521dc1725dd738dc5196e5ff815bc254253c594075",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "12.1.1"
+      "version": "13.1.0"
     },
     "gradient_borders": {
       "dependency": "transitive",
@@ -1333,6 +1294,36 @@
       "source": "hosted",
       "version": "0.8.2"
     },
+    "leak_tracker": {
+      "dependency": "transitive",
+      "description": {
+        "name": "leak_tracker",
+        "sha256": "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "10.0.0"
+    },
+    "leak_tracker_flutter_testing": {
+      "dependency": "transitive",
+      "description": {
+        "name": "leak_tracker_flutter_testing",
+        "sha256": "b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.1"
+    },
+    "leak_tracker_testing": {
+      "dependency": "transitive",
+      "description": {
+        "name": "leak_tracker_testing",
+        "sha256": "a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.1"
+    },
     "linkify": {
       "dependency": "direct main",
       "description": {
@@ -1417,31 +1408,31 @@
       "dependency": "transitive",
       "description": {
         "name": "matcher",
-        "sha256": "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e",
+        "sha256": "d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.12.16"
+      "version": "0.12.16+1"
     },
     "material_color_utilities": {
       "dependency": "transitive",
       "description": {
         "name": "material_color_utilities",
-        "sha256": "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41",
+        "sha256": "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.5.0"
+      "version": "0.8.0"
     },
     "matrix": {
       "dependency": "direct main",
       "description": {
         "name": "matrix",
-        "sha256": "ae57870b14484044896a07abbc102b29cfafcfe38c382e954ba057e63196afdd",
+        "sha256": "84e5745dd41468a2870d119e597529e6471f3ce2f400e4b35d5bd6a036a98692",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.25.5"
+      "version": "0.25.7"
     },
     "matrix_api_lite": {
       "dependency": "transitive",
@@ -1457,11 +1448,11 @@
       "dependency": "transitive",
       "description": {
         "name": "meta",
-        "sha256": "a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e",
+        "sha256": "d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.10.0"
+      "version": "1.11.0"
     },
     "mgrs_dart": {
       "dependency": "transitive",
@@ -1537,11 +1528,11 @@
       "dependency": "direct main",
       "description": {
         "name": "package_info_plus",
-        "sha256": "7e76fad405b3e4016cd39d08f455a4eb5199723cf594cd1b8916d47140d93017",
+        "sha256": "88bc797f44a94814f2213db1c9bd5badebafdfb8290ca9f78d4b9ee2a3db4d79",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "4.2.0"
+      "version": "5.0.1"
     },
     "package_info_plus_platform_interface": {
       "dependency": "transitive",
@@ -1567,11 +1558,11 @@
       "dependency": "transitive",
       "description": {
         "name": "path",
-        "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917",
+        "sha256": "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.8.3"
+      "version": "1.9.0"
     },
     "path_parsing": {
       "dependency": "transitive",
@@ -1717,11 +1708,11 @@
       "dependency": "transitive",
       "description": {
         "name": "platform",
-        "sha256": "ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102",
+        "sha256": "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.1.2"
+      "version": "3.1.4"
     },
     "platform_detect": {
       "dependency": "transitive",
@@ -1777,11 +1768,11 @@
       "dependency": "transitive",
       "description": {
         "name": "process",
-        "sha256": "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09",
+        "sha256": "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "4.2.4"
+      "version": "5.0.2"
     },
     "proj4dart": {
       "dependency": "transitive",
@@ -1813,16 +1804,6 @@
       "source": "hosted",
       "version": "2.1.4"
     },
-    "pub_updater": {
-      "dependency": "transitive",
-      "description": {
-        "name": "pub_updater",
-        "sha256": "05ae70703e06f7fdeb05f7f02dd680b8aad810e87c756a618f33e1794635115c",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.3.0"
-    },
     "pubspec_parse": {
       "dependency": "transitive",
       "description": {
@@ -2633,11 +2614,11 @@
       "dependency": "transitive",
       "description": {
         "name": "vm_service",
-        "sha256": "c538be99af830f478718b51630ec1b6bee5e74e52c8a802d328d9e71d35d2583",
+        "sha256": "b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "11.10.0"
+      "version": "13.0.0"
     },
     "wakelock_platform_interface": {
       "dependency": "transitive",
@@ -2653,11 +2634,11 @@
       "dependency": "direct main",
       "description": {
         "name": "wakelock_plus",
-        "sha256": "f45a6c03aa3f8322e0a9d7f4a0482721c8789cb41d555407367650b8f9c26018",
+        "sha256": "f268ca2116db22e57577fb99d52515a24bdc1d570f12ac18bb762361d43b043d",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.1.3"
+      "version": "1.1.4"
     },
     "wakelock_plus_platform_interface": {
       "dependency": "transitive",
@@ -2680,35 +2661,25 @@
       "source": "git",
       "version": "0.2.2"
     },
-    "watcher": {
-      "dependency": "transitive",
-      "description": {
-        "name": "watcher",
-        "sha256": "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.1.0"
-    },
     "web": {
       "dependency": "transitive",
       "description": {
         "name": "web",
-        "sha256": "afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152",
+        "sha256": "edc8a9573dd8c5a83a183dae1af2b6fd4131377404706ca4e5420474784906fa",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.3.0"
+      "version": "0.4.0"
     },
     "webdriver": {
       "dependency": "transitive",
       "description": {
         "name": "webdriver",
-        "sha256": "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49",
+        "sha256": "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "3.0.2"
+      "version": "3.0.3"
     },
     "webrtc_interface": {
       "dependency": "direct main",
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix
index fdfbbc5b275b..e259c6b60f8d 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/freetalk/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description =  "Console XMPP client";
+    mainProgram = "freetalk";
     license = licenses.gpl3Plus ;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix
index d1947825c42b..82cfb3126c86 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix
@@ -23,6 +23,7 @@ buildGoModule {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Extensible matrix bot written in Go";
+    mainProgram = "go-neb";
     homepage = "https://github.com/matrix-org/go-neb";
     license = licenses.asl20;
     maintainers = with maintainers; [ hexa maralorn ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix
index d7fd40029843..e25a94d0bef8 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix
@@ -51,6 +51,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://maunium.net/go/gomuks/";
     description = "A terminal based Matrix client written in Go";
+    mainProgram = "gomuks";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ chvp emily ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix
index 352fa1a511cd..63d8581aa766 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gurk-rs/default.nix
@@ -43,6 +43,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Signal Messenger client for terminal";
+    mainProgram = "gurk";
     homepage = "https://github.com/boxdot/gurk-rs";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ devhell ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/iamb/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/iamb/default.nix
index ea8351c74f66..6e4e5276e582 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/iamb/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/iamb/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A Matrix client for Vim addicts";
+    mainProgram = "iamb";
     homepage = "https://github.com/ulyssa/iamb";
     changelog = "https://github.com/ulyssa/iamb/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix
index 2c86b3e86fa8..946b77512e17 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix
@@ -47,6 +47,7 @@ buildDunePackage rec {
   meta = with lib; {
     homepage = "https://github.com/hannesm/jackline";
     description = "minimalistic secure XMPP client in OCaml";
+    mainProgram = "jackline";
     license = licenses.bsd2;
     maintainers = with maintainers; [ sternenseemann ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix
index 7acbd1b3b393..98b4b69e6929 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jami/default.nix
@@ -249,6 +249,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://jami.net/";
     description = "The free and universal communication platform that respects the privacy and freedoms of its users";
+    mainProgram = "jami";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.linsui ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
index cb634f434d24..a9ee84fbbb95 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://desktop.jitsi.org/";
     description = "Open Source Video Calls and Chat";
+    mainProgram = "jitsi";
     sourceProvenance = with sourceTypes; [
       binaryBytecode
       binaryNativeCode
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix
index 5a242e9cd517..b710421adb4a 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/kaidan/default.nix
@@ -57,6 +57,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "User-friendly and modern chat app, using XMPP";
+    mainProgram = "kaidan";
     longDescription = ''
        Kaidan is a user-friendly and modern chat app for every device. It uses
        the open communication protocol XMPP (Jabber). Unlike other chat apps,
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
index 30d1ee2dcda8..955c20c2c6f6 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
@@ -45,6 +45,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Delta Chat client using Kirigami framework";
+    mainProgram = "kdeltachat";
     homepage = "https://git.sr.ht/~link2xt/kdeltachat";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix
index 1d930612e9f9..778e1dc9cf50 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/linphone/default.nix
@@ -134,6 +134,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.linphone.org/";
     description = "Open source SIP phone for voice/video calls and instant messaging";
+    mainProgram = "linphone";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jluttine ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
index 154803697873..54c485525d7e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
@@ -55,6 +55,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Simple but convenient CLI-based Matrix client app for sending and receiving";
+    mainProgram = "matrix-commander";
     homepage = "https://github.com/8go/matrix-commander";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix
index 0b2be12ad0b3..b16b0bbd7c4e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/matrix-dl/default.nix
@@ -25,6 +25,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Download backlogs from Matrix as raw text";
+    mainProgram = "matrix-dl";
     homepage = src.meta.homepage;
     license = licenses.gpl1Plus;
     maintainers = with maintainers; [ aw ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix
deleted file mode 100644
index 9b501facb7f6..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/matrixcli/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib, fetchFromGitHub
-  , buildPythonApplication, buildPythonPackage
-  , pygobject3, pytest-runner, requests, responses, pytest, python-olm
-  , canonicaljson, olm
-}:
-let
-  mainsrc = fetchFromGitHub {
-    owner = "saadnpq";
-    repo = "matrixcli";
-    rev = "61ebde173ca2f77185c261c2b7f6db297ca89863";
-    sha256 = "sha256-eH/8b8IyfXqUo7odSECYF+84pXTsP+5S7pFR3oWXknU=";
-    fetchSubmodules = true;
-  };
-
-  sdk = buildPythonPackage rec {
-    name = "${pname}-${version}";
-    pname = "matrix-python-sdk-matrixcli";
-    version = "0.0.2019-08-15";
-
-    src = "${mainsrc}/matrix-python-sdk/";
-
-    propagatedBuildInputs = [
-      requests responses olm python-olm canonicaljson
-      pytest-runner pytest
-    ];
-
-    doCheck = false;
-    doInstallCheck = false;
-
-    meta = {
-      license = lib.licenses.asl20;
-      description = "Fork of Matrix Python SDK";
-      platforms = lib.platforms.linux;
-    };
-  };
-
-in
-buildPythonApplication rec {
-  pname = "matrixcli";
-  version = "0.0.2019-08-15";
-
-  src = mainsrc;
-
-  propagatedBuildInputs = [pygobject3 sdk];
-
-  meta = {
-    description = "CLI client for Matrix";
-    license = lib.licenses.gpl3;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
-    homepage = "https://github.com/saadnpq/matrixcli";
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
index 7b9246300c06..ac9d1b136934 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
@@ -1,24 +1,24 @@
 { lib
 , stdenv
 , fetchurl
-, electron_27
+, electron_28
 , makeWrapper
 }:
 
 let
 
   pname = "mattermost-desktop";
-  version = "5.6.0";
+  version = "5.7.0";
 
   srcs = {
     "x86_64-linux" = {
       url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-x64.tar.gz";
-      hash = "sha256-KUF/zH18X+RS8AICBv53JTBpcaokzo92psyoQNmLF/Q=";
+      hash = "sha256-1xfU9+VzjhSVWsP1AYizphhQ2010GbQBgQ4dxvY3TBU=";
     };
 
     "aarch64-linux" = {
       url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-arm64.tar.gz";
-      hash = "sha256-Zl5PalAles39qSMtt1cytfu4Mheud4+8TTkt7Ohdf/o=";
+      hash = "sha256-RrH+R9IuokKK+zfmCmOt38hD1HvWJbKqmxTFhQ3RcqQ=";
     };
   };
 
@@ -52,7 +52,7 @@ stdenv.mkDerivation {
     substituteInPlace $out/share/applications/Mattermost.desktop \
       --replace /share/mattermost-desktop/mattermost-desktop /bin/mattermost-desktop
 
-    makeWrapper '${lib.getExe electron_27}' $out/bin/${pname} \
+    makeWrapper '${lib.getExe electron_28}' $out/bin/${pname} \
       --add-flags $out/share/${pname}/app.asar
 
     runHook postInstall
@@ -60,6 +60,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Mattermost Desktop client";
+    mainProgram = "mattermost-desktop";
     homepage = "https://about.mattermost.com/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix
index 3acd11a9a0d3..60ec25e5f172 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mcabber/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://mcabber.com/";
     description = "Small Jabber console client";
+    mainProgram = "mcabber";
     license = licenses.gpl2;
     maintainers = with maintainers; [ pSub ];
     platforms = with platforms; linux;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix
index b6c48a0e948c..a4f17b6709d1 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mm/default.nix
@@ -14,6 +14,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "A file system based matrix client";
+    mainProgram = "mm";
     homepage = "https://git.lost.host/meutraa/mm";
     license = licenses.isc;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/nchat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/nchat/default.nix
index 51b704f5bc7b..0e3c7f6803fb 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/nchat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/nchat/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Terminal-based chat client with support for Telegram and WhatsApp";
+    mainProgram = "nchat";
     homepage = "https://github.com/d99kris/nchat";
     license = licenses.mit;
     maintainers = with maintainers; [ sikmir ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/neosay/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/neosay/default.nix
index 3f76bdade3a8..46ea22da5db8 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/neosay/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/neosay/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Pipe stdin to matrix";
+    mainProgram = "neosay";
     homepage = "https://github.com/donuts-are-good/neosay";
     license = licenses.mit;
     maintainers = with maintainers; [ janik ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
index dbe944d189b6..5b5669a3a6a2 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
@@ -1,31 +1,41 @@
-{ lib, stdenv, buildPythonApplication, fetchFromGitHub, pythonOlder,
-  attrs, aiohttp, appdirs, click, keyring, logbook, peewee, janus,
-  prompt-toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3,
-  setuptools, installShellFiles, nixosTests,
-
-  pytest, faker, pytest-aiohttp, aioresponses,
-
-  enableDbusUi ? true
+{ lib
+, stdenv
+, python3Packages
+, fetchFromGitHub
+, installShellFiles
+, nixosTests
+, enableDbusUi ? true
 }:
 
-buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "pantalaimon";
   version = "0.10.5";
-
-  disabled = pythonOlder "3.6";
+  pyproject = true;
 
   # pypi tarball miss tests
   src = fetchFromGitHub {
     owner = "matrix-org";
-    repo = pname;
+    repo = "pantalaimon";
     rev = version;
-    sha256 = "sha256-yMhE3wKRbFHoL0vdFR8gMkNU7Su4FHbAwKQYADaaWpk=";
+    hash = "sha256-yMhE3wKRbFHoL0vdFR8gMkNU7Su4FHbAwKQYADaaWpk=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    installShellFiles
+  ] ++ (with python3Packages; [
+    setuptools
+    pythonRelaxDepsHook
+  ]);
+
+  pythonRelaxDeps = [
+    "matrix-nio"
+  ];
+
+  dependencies = with python3Packages; [
     aiohttp
     appdirs
     attrs
+    cachetools
     click
     janus
     keyring
@@ -33,34 +43,28 @@ buildPythonApplication rec {
     matrix-nio
     peewee
     prompt-toolkit
-    setuptools
   ]
   ++ matrix-nio.optional-dependencies.e2e
-  ++ lib.optionals enableDbusUi [
-      dbus-python
-      notify2
-      pygobject3
-      pydbus
+  ++ lib.optionals enableDbusUi optional-dependencies.ui;
+
+  optional-dependencies.ui = with python3Packages; [
+    dbus-python
+    notify2
+    pygobject3
+    pydbus
   ];
 
-  nativeCheckInputs = [
-    pytest
+  nativeCheckInputs = with python3Packages; [
+    aioresponses
     faker
     pytest-aiohttp
-    aioresponses
-  ];
-
-  nativeBuildInputs = [
-    installShellFiles
-  ];
+    pytestCheckHook
+  ]
+  ++ lib.flatten (lib.attrValues optional-dependencies);
 
   # darwin has difficulty communicating with server, fails some integration tests
   doCheck = !stdenv.isDarwin;
 
-  checkPhase = ''
-    pytest
-  '';
-
   postInstall = ''
     installManPage docs/man/*.[1-9]
   '';
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
index cb8b09c336db..cca91da3abda 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
@@ -92,6 +92,7 @@ stdenv.mkDerivation rec {
   meta =  with lib; {
     homepage = "http://www.profanity.im/";
     description = "A console based XMPP client";
+    mainProgram = "profanity";
     longDescription = ''
       Profanity is a console based XMPP client written in C using ncurses and
       libstrophe, inspired by Irssi.
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
index 750ebe186bb8..295f92b9ef9a 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
@@ -99,6 +99,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://psi-plus.com";
     description = "XMPP (Jabber) client based on Qt5";
+    mainProgram = "psi-plus";
     maintainers = with maintainers; [ orivej misuzu unclechu ];
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix
index 62b6c8f8e59c..7745fc9fc909 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix
@@ -25,6 +25,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://psi-im.org";
     description = "An XMPP (Jabber) client";
+    mainProgram = "psi";
     maintainers = [ maintainers.raskin ];
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix
index 8273a6fdbc6d..09240ae4713b 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/qtox/default.nix
@@ -69,6 +69,7 @@ mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Qt Tox client";
+    mainProgram = "qtox";
     homepage = "https://tox.chat";
     license = licenses.gpl3;
     maintainers = with maintainers; [ akaWolf peterhoeg ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix
index 5111b7424f44..2a0bfce75631 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/quaternion/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Cross-platform desktop IM client for the Matrix protocol";
+    mainProgram = "quaternion";
     homepage = "https://matrix.org/ecosystem/clients/quaternion/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
index 87f0cd4c9747..53762baf82ff 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
@@ -2,11 +2,11 @@
 
 let
   pname = "rambox";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchurl {
     url = "https://github.com/ramboxapp/download/releases/download/v${version}/Rambox-${version}-linux-x64.AppImage";
-    sha256 = "sha256-PmTiXQp+AkTwCKisH1tR6B1+cHPx25P8FAAlLvKEb3w=";
+    hash = "sha256-fSj/AX1uCUAC3Vg5+rtGF3IDPFTHRAgJ8CPVL8BYc+E=";
   };
 
   desktopItem = (makeDesktopItem {
@@ -39,5 +39,6 @@ appimageTools.wrapType2 {
     license = licenses.unfree;
     maintainers = with maintainers; [ nazarewk ];
     platforms = [ "x86_64-linux" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix
index 5dcb22050763..4a80071a6cea 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ratox/default.nix
@@ -27,6 +27,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "FIFO based tox client";
+    mainProgram = "ratox";
     homepage = "http://ratox.2f30.org/";
     license = licenses.isc;
     maintainers = with maintainers; [ ehmry ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix
deleted file mode 100644
index 99c7cbbc7d8e..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/ricochet/default.nix
+++ /dev/null
@@ -1,74 +0,0 @@
-{ mkDerivation
-, lib
-, fetchFromGitHub
-, pkg-config
-, makeDesktopItem
-, qtbase
-, qttools
-, qtmultimedia
-, qtquickcontrols
-, openssl
-, protobuf
-, qmake
-}:
-
-mkDerivation rec {
-  pname = "ricochet";
-  version = "1.1.4";
-
-  src = fetchFromGitHub {
-    owner = "ricochet-im";
-    repo = "ricochet";
-    rev = "v${version}";
-    sha256 = "sha256-CGVTHa0Hqj90WvB6ZbA156DVgzv/R7blsU550y2Ai9c=";
-  };
-
-  desktopItem = makeDesktopItem {
-    name = "ricochet";
-    exec = "ricochet";
-    icon = "ricochet";
-    desktopName = "Ricochet";
-    genericName = "Ricochet";
-    comment = meta.description;
-    categories = [ "Office" "Email" ];
-  };
-
-  buildInputs = [
-    qtbase
-    qttools
-    qtmultimedia
-    qtquickcontrols
-    openssl
-    protobuf
-  ];
-
-  nativeBuildInputs = [ pkg-config qmake ];
-
-  preConfigure = ''
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags openssl)"
-  '';
-
-  qmakeFlags = [ "DEFINES+=RICOCHET_NO_PORTABLE" ];
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp ricochet $out/bin
-
-    mkdir -p $out/share/applications
-    cp $desktopItem/share/applications"/"* $out/share/applications
-
-    mkdir -p $out/share/pixmaps
-    cp icons/ricochet.png $out/share/pixmaps/ricochet.png
-  '';
-
-  # RCC: Error in 'translation/embedded.qrc': Cannot find file 'ricochet_en.qm'
-  enableParallelBuilding = false;
-
-  meta = with lib; {
-    description = "Anonymous peer-to-peer instant messaging";
-    homepage = "https://ricochet.im";
-    license = licenses.bsd3;
-    maintainers = [ maintainers.codsl maintainers.jgillich maintainers.np ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
index e46f5824af0f..737e867bf5a6 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
@@ -88,6 +88,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Official Desktop client for Rocket.Chat";
+    mainProgram = "rocketchat-desktop";
     homepage = "https://github.com/RocketChat/Rocket.Chat.Electron";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix
index ed02def3eb88..590a0639dc84 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/seren/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple ncurses VoIP program based on the Opus codec";
+    mainProgram = "seren";
     longDescription = ''
       Seren is a simple VoIP program based on the Opus codec
       that allows you to create a voice conference from the terminal, with up to 10
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop/default.nix
index 9b2dc1e62ef3..bc0afb8b6883 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/session-desktop/default.nix
@@ -57,6 +57,7 @@ stdenvNoCC.mkDerivation {
 
   meta = with lib; {
     description = "Onion routing based messenger";
+    mainProgram = "session-desktop";
     homepage = "https://getsession.org/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ alexnortung ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
index 4f8f972620ac..2f62a08f4625 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/AsamK/signal-cli";
     description = "Command-line and dbus interface for communicating with the Signal messaging service";
+    mainProgram = "signal-cli";
     changelog = "https://github.com/AsamK/signal-cli/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ivan ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix
index 1df4202a5ccc..86f08b1067a1 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop-beta.nix
@@ -2,7 +2,7 @@
 callPackage ./generic.nix { } rec {
   pname = "signal-desktop-beta";
   dir = "Signal Beta";
-  version = "7.2.0-beta.1";
+  version = "7.4.0-beta.1";
   url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb";
-  hash = "sha256-ZCTCcNMrZwadAbs+1sf3A+S1FRjTCb1lYk0Vg5rxqXc=";
+  hash = "sha256-Pjz55iVBww7d7WIAonTeX+cdEobitltoAyOU79RY40c=";
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix
index f262f2c97b6f..10ea168355b3 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix
@@ -2,7 +2,7 @@
 callPackage ./generic.nix { } rec {
   pname = "signal-desktop";
   dir = "Signal";
-  version = "7.1.1";
+  version = "7.2.1";
   url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-  hash = "sha256-YQLDm6T67vio66PLehlLQDxsAkhm22dhpjUR1eBwsg8=";
+  hash = "sha256-IJ808xvPqGivccqH/mOMSHu/mU/JLFJ798UztwXWtm0=";
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
index 631bc6b292f3..27d2c9a72b0e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "signalbackup-tools";
-  version = "20240306";
+  version = "20240319";
 
   src = fetchFromGitHub {
     owner = "bepaald";
     repo = pname;
     rev = version;
-    hash = "sha256-KN4FkqgWj92LqPtwU/Wyk1qe8AyUsWlobypq5WgRVyI=";
+    hash = "sha256-aDf7HId0A4GBiG3AJZLAtVEq54RywV/gx4Sa3c/KLg0=";
   };
 
   postPatch = ''
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool to work with Signal Backup files";
+    mainProgram = "signalbackup-tools";
     homepage = "https://github.com/bepaald/signalbackup-tools";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.malo ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signaldctl/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signaldctl/default.nix
index 82637dbbb0c9..d1c152013b57 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signaldctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signaldctl/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A golang library for communicating with signald";
+    mainProgram = "signaldctl";
     homepage = "https://signald.org/signaldctl/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ colinsane ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix
index 417cb4dbb844..9dd94225acfe 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/silc-client/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://silcnet.org/";
     description = "Secure Internet Live Conferencing server";
+    mainProgram = "silc";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix
index 15ff9a9e2b50..425b0535e741 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Chat over SSH";
+    mainProgram = "ssh-chat";
     homepage = "https://github.com/shazow/ssh-chat";
     license = licenses.mit;
     maintainers = with maintainers; [ luc65r ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/tangram/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/tangram/default.nix
index df460db31664..c32e55ffde4e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/tangram/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/tangram/default.nix
@@ -82,6 +82,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Run web apps on your desktop";
+    mainProgram = "re.sonny.Tangram";
     homepage = "https://github.com/sonnyp/Tangram";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix
index 67fa404adb67..0d430af0894c 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teams-for-linux/default.nix
@@ -9,6 +9,7 @@
 , fetchYarnDeps
 , prefetch-yarn-deps
 , electron
+, libnotify
 , libpulseaudio
 , pipewire
 , alsa-utils
@@ -19,18 +20,18 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "teams-for-linux";
-  version = "1.4.13";
+  version = "1.4.14";
 
   src = fetchFromGitHub {
     owner = "IsmaelMartinez";
     repo = "teams-for-linux";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-6e3AFfjm/ajC+StldG92FyC2C5usAOUoZSqihQC9fKw=";
+    hash = "sha256-qdox6C6ztWECwSqHZoZHMbqPFrokPK0u44NUG+SHmPk=";
   };
 
   offlineCache = fetchYarnDeps {
     yarnLock = "${finalAttrs.src}/yarn.lock";
-    hash = "sha256-wyQi1F7TV4TQZFdqRLfo4f90pCaJeRrmNgU8UfY9FjQ=";
+    hash = "sha256-++ZPsBH0qHCykexpY2aZukAc+Ak1wEzAUker8ZLxA9Q=";
   };
 
   nativeBuildInputs = [ yarn prefetch-yarn-deps nodejs copyDesktopItems makeWrapper ];
@@ -71,11 +72,11 @@ stdenv.mkDerivation (finalAttrs: {
     done
     popd
 
-    # Linux needs 'aplay' for notification sounds, 'libpulse' for meeting sound, and 'libpipewire' for screen sharing
+    # Linux needs 'aplay' for notification sounds, 'libpulse' for meeting sound, 'libpipewire' for screen sharing and 'libnotify' for notifications
     makeWrapper '${electron}/bin/electron' "$out/bin/teams-for-linux" \
       ${lib.optionalString stdenv.isLinux ''
         --prefix PATH : ${lib.makeBinPath [ alsa-utils which ]} \
-        --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpulseaudio pipewire ]} \
+        --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpulseaudio pipewire libnotify ]} \
       ''} \
       --add-flags "$out/share/teams-for-linux/app.asar" \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
@@ -100,6 +101,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Unofficial Microsoft Teams client for Linux";
+    mainProgram = "teams-for-linux";
     homepage = "https://github.com/IsmaelMartinez/teams-for-linux";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ muscaln lilyinstarlight qjoly chvp ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
index a0c7b678d5a0..45197d2d7086 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
@@ -13,7 +13,7 @@ let
     [ zlib glib libpng freetype xorg.libSM xorg.libICE xorg.libXrender openssl
       xorg.libXrandr xorg.libXfixes xorg.libXcursor xorg.libXinerama
       xorg.libxcb fontconfig xorg.libXext xorg.libX11 alsa-lib qtbase qtwebengine qtwebchannel qtsvg
-      qtwebsockets libpulseaudio quazip llvmPackages.libcxx llvmPackages.libcxxabi
+      qtwebsockets libpulseaudio quazip llvmPackages.libcxx
     ];
 
   desktopItem = makeDesktopItem {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
index dbd81911501e..f0732ec03920 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
@@ -209,6 +209,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Kotatogram – experimental Telegram Desktop fork";
+    mainProgram = "kotatogram-desktop";
     longDescription = ''
       Unofficial desktop client for the Telegram messenger, based on Telegram Desktop.
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
index 2e270607274d..8f94ec6e5acd 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
@@ -64,14 +64,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "telegram-desktop";
-  version = "4.14.15";
+  version = "4.15.2";
 
   src = fetchFromGitHub {
     owner = "telegramdesktop";
     repo = "tdesktop";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-706FAtXS541D7H/Qc86eC1FLUWu1/tZuCq3GgJ0L/Ds=";
+    hash = "sha256-gzwDezOmIvSF4fPHAslf8DyBAgCYkD5ySX+MKKMXhSg=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/macos.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/macos.patch
index c8424359fdbf..3036af515ea3 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/macos.patch
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/macos.patch
@@ -54,7 +54,19 @@ diff --git a/Telegram/lib_webview/webview/platform/mac/webview_mac.mm b/Telegram
 index 738e574..80ff5f0 100644
 --- a/Telegram/lib_webview/webview/platform/mac/webview_mac.mm
 +++ b/Telegram/lib_webview/webview/platform/mac/webview_mac.mm
-@@ -254,10 +254,12 @@ void *Instance::winId() {
+@@ -314,9 +314,11 @@ Instance::Instance(Config config) {
+ 	_dataRequestHandler = std::move(config.dataRequestHandler);
+ 	[configuration setURLSchemeHandler:_handler forURLScheme:stdToNS(kDataUrlScheme)];
+ 	_webview = [[WKWebView alloc] initWithFrame:NSZeroRect configuration:configuration];
++#if 0
+ 	if (@available(macOS 13.3, *)) {
+ 		_webview.inspectable = config.debug ? YES : NO;
+ 	}
++#endif
+ 	[_manager addScriptMessageHandler:_handler name:@"external"];
+ 	[_webview setNavigationDelegate:_handler];
+ 	[_webview setUIDelegate:_handler];
+@@ -658,10 +660,12 @@ void *Instance::winId() {
  }
  
  void Instance::setOpaqueBg(QColor opaqueBg) {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix
index 0918bfee91e2..7cdbda355d38 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tg/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonApplication, fetchFromGitHub, pythonOlder, python-telegram }:
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, pythonOlder
+, fetchpatch
+, stdenv
+, libnotify
+, python-telegram
+}:
 
 buildPythonApplication rec {
   pname = "tg";
@@ -12,12 +20,27 @@ buildPythonApplication rec {
     hash = "sha256-apHd26XnOz5nak+Kz8PJPsonQfTWDyPz7Mi/tWf7zwM=";
   };
 
+  patches = [
+    # Fix sending messages
+    # https://github.com/paul-nameless/tg/pull/306
+    (fetchpatch {
+      url = "https://github.com/mindtheegab/tg/commit/13e2b266989d2d757a394b0fb8cb7fd6ccc2b70c.patch";
+      hash = "sha256-Wja6xBOlPuACzhbT8Yl3F8qSh3Kd9G1lnr9VarbPrfM=";
+    })
+  ];
+
+  # Fix notifications on platforms other than darwin by providing notify-send
+  postPatch = lib.optionalString (!stdenv.isDarwin) ''
+    sed -i 's|^NOTIFY_CMD = .*|NOTIFY_CMD = "${libnotify}/bin/notify-send {title} {message} -i {icon_path}"|' tg/config.py
+  '';
+
   propagatedBuildInputs = [ python-telegram ];
 
   doCheck = false; # No tests
 
   meta = with lib; {
     description = "Terminal client for telegram";
+    mainProgram = "tg";
     homepage = "https://github.com/paul-nameless/tg";
     license = licenses.unlicense;
     maintainers = with maintainers; [ sikmir ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
index ed2723c0435c..dc4b11caf0b9 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telepathy/gabble/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Jabber/XMPP connection manager for the Telepathy framework";
+    mainProgram = "telepathy-gabble-xmpp-console";
     homepage = "https://telepathy.freedesktop.org/components/telepathy-gabble/";
     license = licenses.lgpl21Plus;
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix
index ffa603fb80b1..c8b38ccb35ec 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/tensor/default.nix
@@ -62,6 +62,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/davidar/tensor";
     description = "Cross-platform Qt5/QML-based Matrix client";
+    mainProgram = "tensor";
     license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
     inherit (qtbase.meta) platforms;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
index 0cb8cc4ff2e5..fc796ac7a349 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Desktop client for Threema, a privacy-focused end-to-end encrypted mobile messenger";
+    mainProgram = "threema";
     homepage = "https://threema.ch";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix
index 2f16cb78454f..bd3f30adc688 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/toxic/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; src.meta // {
     description = "Reference CLI for Tox";
+    mainProgram = "toxic";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ehmry ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix
index 240931065e6c..19e50f3fe8bf 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/turses/default.nix
@@ -87,6 +87,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Twitter client for the console";
+    mainProgram = "turses";
     homepage = "https://github.com/louipc/turses";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
index 982b41b27946..4b4ce6f1f9b3 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/twitch-tui/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "twitch-tui";
-  version = "2.6.5";
+  version = "2.6.6";
 
   src = fetchFromGitHub {
     owner = "Xithrius";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-eJw3C38+FdiMLE+x+akIo8c/VqsbWVbcGJj1Lb2vImE=";
+    hash = "sha256-71VpLTPOqSEosLt3noiWhsFPpIp7n3S3BHhIzWYGwkI=";
   };
 
-  cargoHash = "sha256-zhRrZr5RXKhjZCIjN3lRJ8BJlW/zxKJUzWtpOygX9oo=";
+  cargoHash = "sha256-2SWYKqZfIN+Ghryuoh77eDiM7cqJcLihdWpEhOGpLZg=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix
index 7fee1f5c3a83..c5aa13da0d33 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/utox/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Lightweight Tox client";
+    mainProgram = "utox";
     homepage = "https://github.com/uTox/uTox";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
index a22437bf8da0..9d089a383556 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A console (ncurses) client for vk.com written in D";
+    mainProgram = "vk-cli";
     homepage = "https://github.com/vk-cli/vk";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/webcord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/webcord/default.nix
index d2ccfb8a4b03..d2796142e8f7 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/webcord/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/webcord/default.nix
@@ -7,23 +7,23 @@
 , libpulseaudio
 , libnotify
 , xdg-utils
-, electron_28
+, electron_29
 , makeDesktopItem
 , nix-update-script
 }:
 
 buildNpmPackage rec {
   pname = "webcord";
-  version = "4.7.1";
+  version = "4.8.0";
 
   src = fetchFromGitHub {
     owner = "SpacingBat3";
     repo = "WebCord";
     rev = "v${version}";
-    hash = "sha256-JzKXIdXR/C3HRbpmSUq3qXYpLnVQjIY/uO+wbt1k2jI=";
+    hash = "sha256-x9Ejb8yxgQhlEfUUfoqbgSffNNtOoFeAyb3OISR+Jz4=";
   };
 
-  npmDepsHash = "sha256-KbMoM1zYOjX2Dwu6DJZLyezRx78AC9piPw3xsX3Kb3I=";
+  npmDepsHash = "sha256-7H4I4vKygMgsPh+OvZZGhpkoQQu1a51yUTwEPJSBM18=";
 
   nativeBuildInputs = [
     copyDesktopItems
@@ -61,7 +61,7 @@ buildNpmPackage rec {
     install -Dm644 sources/assets/icons/app.png $out/share/icons/hicolor/256x256/apps/webcord.png
 
     # Add xdg-utils to path via suffix, per PR #181171
-    makeWrapper '${lib.getExe electron_28}' $out/bin/webcord \
+    makeWrapper '${lib.getExe electron_29}' $out/bin/webcord \
       --prefix LD_LIBRARY_PATH : ${libPath}:$out/opt/webcord \
       --suffix PATH : "${binPath}" \
       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/webex/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/webex/default.nix
index c55178060fc8..6793c187e54a 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/webex/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/webex/default.nix
@@ -56,11 +56,11 @@
 
 stdenv.mkDerivation rec {
   pname = "webex";
-  version = "43.11.0.27795";
+  version = "43.11.0.28947";
 
   src = fetchurl {
-    url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Gold/20231108131957/Webex_ubuntu.7z";
-    sha256 = "e7a30481840a4a56c7ac38fa9efb487c722758ad9ac875432e86232d6a8e6466";
+    url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Gold/20240311173044/Webex_ubuntu.7z";
+    sha256 = "f84669a2cd974435c6c0f8a6dc5a62c4ef01a3848e36ffcc8077f718be4a3b86";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
index efca89de7cbb..366dcbeffaea 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/eneshecan/whatsapp-for-linux";
     description = "Whatsapp desktop messaging app";
+    mainProgram = "whatsapp-for-linux";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ bartuka ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/xmppc/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/xmppc/default.nix
index c1a8891a073e..47eb18f191dc 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/xmppc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/xmppc/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Command Line Interface Tool for XMPP";
+    mainProgram = "xmppc";
     homepage = "https://codeberg.org/Anoxinon_e.V./xmppc";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix
index 1ccc9fbe6f57..29ebc5f43d56 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage    = "http://ytalk.ourproject.org";
     description = "A terminal based talk client";
+    mainProgram = "ytalk";
     platforms   = lib.platforms.unix;
     maintainers = with lib.maintainers; [ taeer ];
     license     = lib.licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index d12bea03460e..5c96be3bb82e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -48,23 +48,23 @@ let
   # and often with different versions.  We write them on three lines
   # like this (rather than using {}) so that the updater script can
   # find where to edit them.
-  versions.aarch64-darwin = "5.17.10.30974";
-  versions.x86_64-darwin = "5.17.10.30974";
-  versions.x86_64-linux = "5.17.10.3512";
+  versions.aarch64-darwin = "5.17.11.31580";
+  versions.x86_64-darwin = "5.17.11.31580";
+  versions.x86_64-linux = "5.17.11.3835";
 
   srcs = {
     aarch64-darwin = fetchurl {
       url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64";
       name = "zoomusInstallerFull.pkg";
-      hash = "sha256-JWGy8je6hFDTSKPx4GAUDMJdi5/zKoj4KK5w6E0pcsI=";
+      hash = "sha256-oCCZksH5sgfPVxh6I7ZpIMvkMX0+HnL1R9voNRjTUP4=";
     };
     x86_64-darwin = fetchurl {
       url = "https://zoom.us/client/${versions.x86_64-darwin}/zoomusInstallerFull.pkg";
-      hash = "sha256-lO0fyW5catdgKZ7cAQhdAbfQW+EewdCjTne+ZC3UW3w=";
+      hash = "sha256-6bIUfS6bZWh7fEq2xY++nIbnmE5DJxte6sjyoSKUMzU=";
     };
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz";
-      hash = "sha256-dXpfgouZjd+0YyHz1c/7VL3a1SATAX8BpkR4KBeEDbc=";
+      hash = "sha256-eIa8ESoYi0gPbJbqahqKKvnM7rGPT+WeMIYCyFEWHGE=";
     };
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/irc/communi/default.nix b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
index cbd099c33bc7..4f81dd657c62 100644
--- a/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple and elegant cross-platform IRC client";
+    mainProgram = "communi";
     homepage = "https://github.com/communi/communi-desktop";
     license = licenses.bsd3;
     maintainers = with maintainers; [ hrdinka ];
diff --git a/nixpkgs/pkgs/applications/networking/irc/convos/default.nix b/nixpkgs/pkgs/applications/networking/irc/convos/default.nix
index da4967916d44..2fc2e0585910 100644
--- a/nixpkgs/pkgs/applications/networking/irc/convos/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/convos/default.nix
@@ -90,6 +90,7 @@ perlPackages.buildPerlPackage rec {
   meta = {
     homepage = "https://convos.chat";
     description = "Convos is the simplest way to use IRC in your browser";
+    mainProgram = "convos";
     license = lib.licenses.artistic2;
     maintainers = with lib.maintainers; [ sgo ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/irc/halloy/default.nix b/nixpkgs/pkgs/applications/networking/irc/halloy/default.nix
index df0113f25872..2758914f73cc 100644
--- a/nixpkgs/pkgs/applications/networking/irc/halloy/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/halloy/default.nix
@@ -15,13 +15,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "halloy";
-  version = "2024.2";
+  version = "2024.3";
 
   src = fetchFromGitHub {
     owner = "squidowl";
     repo = "halloy";
     rev = "refs/tags/${version}";
-    hash = "sha256-SzjMoXISd4fMHoenF1CK3Yn8bfLq9INuOmt86QTcgk8=";
+    hash = "sha256-9yEkM65c8R71oQ0C54xZqwRh609+HSaq4Hb8izNM52A=";
   };
 
   cargoLock = {
diff --git a/nixpkgs/pkgs/applications/networking/irc/ii/default.nix b/nixpkgs/pkgs/applications/networking/irc/ii/default.nix
index 8fcbdce97291..8fca00992252 100644
--- a/nixpkgs/pkgs/applications/networking/irc/ii/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/ii/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     homepage = "https://tools.suckless.org/ii/";
     license = lib.licenses.mit;
     description = "Irc it, simple FIFO based irc client";
+    mainProgram = "ii";
     platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix b/nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix
index d6b7af7c0a86..9f1ff1008177 100644
--- a/nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/irccloud/default.nix
@@ -30,6 +30,7 @@ in appimageTools.wrapType2 {
 
   meta = with lib; {
     description = "A desktop client for IRCCloud";
+    mainProgram = "irccloud";
     homepage = "https://www.irccloud.com";
     license = licenses.asl20;
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix b/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix
index 5da057b29154..56c951798fe9 100644
--- a/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/ircdog/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "ircdog is a simple wrapper over the raw IRC protocol that can respond to pings, and interprets formatting codes";
+    mainProgram = "ircdog";
     homepage = "https://github.com/ergochat/ircdog";
     changelog = "https://github.com/ergochat/ircdog/releases/tag/v${version}";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix b/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix
index d95b64f04298..940242b6668d 100644
--- a/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/irssi/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Terminal based IRC client";
+    mainProgram = "irssi";
     homepage = "https://irssi.org";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ fab lovek323 ];
diff --git a/nixpkgs/pkgs/applications/networking/irc/kirc/default.nix b/nixpkgs/pkgs/applications/networking/irc/kirc/default.nix
index c21a444b61c1..ea2e45bff88e 100644
--- a/nixpkgs/pkgs/applications/networking/irc/kirc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/kirc/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://mcpcpc.github.io/kirc/";
     description = "Tiny IRC client written in C99";
+    mainProgram = "kirc";
     longDescription = ''
       kirc is a tiny open-source Internet Relay Chat (IRC) client designed with
       usability and cross-platform compatibility in mind.
diff --git a/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix b/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix
index fbf5dcb844d4..f27a31e66088 100644
--- a/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/senpai/default.nix
@@ -35,6 +35,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Your everyday IRC student";
+    mainProgram = "senpai";
     homepage = "https://sr.ht/~taiite/senpai/";
     changelog = "https://git.sr.ht/~delthas/senpai/refs/v${version}";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/applications/networking/irc/sic/default.nix b/nixpkgs/pkgs/applications/networking/irc/sic/default.nix
index d5a0737403a8..82c5852128e9 100644
--- a/nixpkgs/pkgs/applications/networking/irc/sic/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/sic/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Simple IRC client";
+    mainProgram = "sic";
     homepage = "https://tools.suckless.org/sic/";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/irc/srain/default.nix b/nixpkgs/pkgs/applications/networking/irc/srain/default.nix
index a035e6113616..42fd7e1fb653 100644
--- a/nixpkgs/pkgs/applications/networking/irc/srain/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/srain/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Modern IRC client written in GTK";
+    mainProgram = "srain";
     homepage = "https://srain.silverrainz.me";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/jnetmap/default.nix b/nixpkgs/pkgs/applications/networking/jnetmap/default.nix
index 8aea49decb7e..b3c90beba36d 100644
--- a/nixpkgs/pkgs/applications/networking/jnetmap/default.nix
+++ b/nixpkgs/pkgs/applications/networking/jnetmap/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical network monitoring and documentation tool";
+    mainProgram = "jnetmap";
     homepage = "http://www.rakudave.ch/jnetmap/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/networking/localsend/default.nix b/nixpkgs/pkgs/applications/networking/localsend/default.nix
index 95506e98dc9a..3854b347c061 100644
--- a/nixpkgs/pkgs/applications/networking/localsend/default.nix
+++ b/nixpkgs/pkgs/applications/networking/localsend/default.nix
@@ -7,13 +7,14 @@
 , pkg-config
 , libayatana-appindicator
 , undmg
+, makeBinaryWrapper
 }:
 
 let
   pname = "localsend";
   version = "1.14.0";
 
-  linux = flutter313.buildFlutterApplication {
+  linux = flutter313.buildFlutterApplication rec {
     inherit pname version;
 
     src = fetchFromGitHub {
@@ -23,7 +24,7 @@ let
       hash = "sha256-CO0uFcZnOfE31EZxRUpgtod3+1lyXPpbytHB45DEM98=";
     };
 
-    sourceRoot = "source/app";
+    sourceRoot = "${src.name}/app";
 
     pubspecLock = lib.importJSON ./pubspec.lock.json;
 
@@ -59,7 +60,7 @@ let
 
     passthru.updateScript = ./update.sh;
 
-    meta = meta // {
+    meta = metaCommon // {
       mainProgram = "localsend_app";
     };
   };
@@ -72,22 +73,23 @@ let
       hash = "sha256-L7V48QoOA0cjx45n+9Xav/zzCzCsZB3TBip0WGusMXg=";
     };
 
-    nativeBuildInputs = [ undmg ];
+    nativeBuildInputs = [ undmg makeBinaryWrapper ];
 
     sourceRoot = ".";
 
     installPhase = ''
       mkdir -p $out/Applications
       cp -r *.app $out/Applications
+      makeBinaryWrapper $out/Applications/LocalSend.app/Contents/MacOS/LocalSend $out/bin/localsend
     '';
 
-    meta = meta // {
+    meta = metaCommon // {
       sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
       platforms = [ "x86_64-darwin" "aarch64-darwin" ];
     };
   };
 
-  meta = with lib; {
+  metaCommon = with lib; {
     description = "An open source cross-platform alternative to AirDrop";
     homepage = "https://localsend.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix
index bcd9573974d3..9c40ce8f0f68 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/afew/default.nix
@@ -54,6 +54,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/afewmail/afew";
     description = "An initial tagging script for notmuch mail";
+    mainProgram = "afew";
     license = licenses.isc;
     maintainers = with maintainers; [ flokli ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/alot/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/alot/default.nix
index 471b603f26a1..cc3273dcdca9 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/alot/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/alot/default.nix
@@ -90,6 +90,7 @@ with python3.pkgs; buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/pazz/alot";
     description = "Terminal MUA using notmuch mail";
+    mainProgram = "alot";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ milibopp ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix
index 518d47a9a40a..249d262fe1e9 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/astroid/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://astroidmail.github.io/";
     description = "GTK frontend to the notmuch mail system";
+    mainProgram = "astroid";
     maintainers = with maintainers; [ bdimcheff SuprDewd ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/betterbird/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/betterbird/default.nix
index 3e9ebbceed75..6ca7c348969f 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/betterbird/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/betterbird/default.nix
@@ -44,6 +44,7 @@ in ((buildMozillaMach {
 
   applicationName = "Betterbird";
   binaryName = "betterbird";
+  branding = "comm/mail/branding/betterbird";
   inherit (thunderbird-unwrapped) application extraPatches;
 
   src = fetchurl {
@@ -92,11 +93,6 @@ in ((buildMozillaMach {
     libdbusmenu-gtk3
   ];
 
-  extraConfigureFlags = [
-    "--enable-application=comm/mail"
-    "--with-branding=comm/mail/branding/betterbird"
-  ];
-
   meta = with lib; {
     description = "Betterbird is a fine-tuned version of Mozilla Thunderbird, Thunderbird on steroids, if you will";
     homepage = "https://www.betterbird.eu/";
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/caeml/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/caeml/default.nix
index 54b4c7f60cdb..f109ccfc3137 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/caeml/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/caeml/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "cat eml files";
+    mainProgram = "caeml";
     longDescription = ''
       Reads an email file from either STDIN or from a file passed as the first
       argument, digests it and outputs it to STDOUT in a more human readable
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index 51f6eeacd1be..16bc93304921 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -153,6 +153,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The user-friendly, lightweight, and fast email client";
+    mainProgram = "claws-mail";
     homepage = "https://www.claws-mail.org/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix
index a7b51585e3a0..da26d45b2b41 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/electron-mail/default.nix
@@ -29,6 +29,7 @@ in appimageTools.wrapType2 {
 
   meta = with lib; {
     description = "ElectronMail is an Electron-based unofficial desktop client for ProtonMail";
+    mainProgram = "electron-mail";
     homepage = "https://github.com/vladimiry/ElectronMail";
     license = licenses.gpl3;
     maintainers = [ maintainers.princemachiavelli ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index a92f7b86c00b..252bfb08e93f 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -128,6 +128,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Evolution";
     description = "Personal information management application that provides integrated mail, calendaring and address book functionality";
+    mainProgram = "evolution";
     maintainers = teams.gnome.members;
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix
index cc2f5c91921d..9f148618b254 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix
@@ -34,6 +34,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Simple tray icon for detecting new email on IMAP servers";
+    mainProgram = "hasmail";
     homepage = "https://github.com/jonhoo/hasmail";
     license = licenses.unlicense;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/himalaya/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/himalaya/default.nix
index 02da88ba6a32..7ab696685b52 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/himalaya/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/himalaya/default.nix
@@ -52,6 +52,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "CLI to manage emails";
+    mainProgram = "himalaya";
     homepage = "https://pimalaya.org/himalaya/cli/latest/";
     changelog = "https://github.com/soywod/himalaya/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix b/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix
index 30c161783944..3277dee46a9d 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/imapfilter.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://github.com/lefcha/imapfilter";
     description = "Mail filtering utility";
+    mainProgram = "imapfilter";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ doronbehar ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix
index 878b778c5a50..e35d37dfe224 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Console-based email client";
+    mainProgram = "lumail2";
     homepage = "https://lumail.org/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix
index 43590c9d3361..b28b874adbc6 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailcheck/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Simple command line tool to check for new messages";
+    mainProgram = "mailcheck";
     homepage    = "https://mailcheck.sourceforge.net/";
     license     = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ kovirobi ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/darwin.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/darwin.nix
new file mode 100644
index 000000000000..cccc46a4f5eb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/darwin.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, fetchurl
+, pname
+, version
+, meta
+, unzip
+, makeWrapper
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  inherit pname version meta;
+
+  src = fetchurl {
+    url = "https://github.com/Foundry376/Mailspring/releases/download/${finalAttrs.version}/Mailspring-AppleSilicon.zip";
+    hash = "sha256-LYv3643oj58WR+4IE4XmJmCgD9S2AXNbPwW5W0QCuGI=";
+  };
+  dontUnpack = true;
+
+  nativeBuildInputs = [
+    unzip
+    makeWrapper
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/Applications $out/bin
+    unzip $src -d $out/Applications
+    makeWrapper $out/Applications/Mailspring.app/Contents/MacOS/Mailspring $out/bin/mailspring
+
+    runHook postInstall
+  '';
+})
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix
index a211650d3d9a..ba8436717a40 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix
@@ -1,105 +1,26 @@
-{ stdenv
-, lib
-, fetchurl
-, autoPatchelfHook
-, alsa-lib
-, coreutils
-, db
-, dpkg
-, glib
-, gtk3
-, wrapGAppsHook
-, libkrb5
-, libsecret
-, nss
-, openssl
-, udev
-, xorg
-, mesa
-, libdrm
-, libappindicator
+{ lib
+, stdenv
+, callPackage
 }:
-
-stdenv.mkDerivation (finalAttrs: {
+let
   pname = "mailspring";
   version = "1.13.3";
 
-  src = fetchurl {
-    url = "https://github.com/Foundry376/Mailspring/releases/download/${finalAttrs.version}/mailspring-${finalAttrs.version}-amd64.deb";
-    hash = "sha256-2F5k8zRRI6x1EQ0k8wvIq1Q3Lnrn2ROp/Mq+H7Vqzlc=";
-  };
-
-  nativeBuildInputs = [
-    autoPatchelfHook
-    dpkg
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    alsa-lib
-    db
-    glib
-    gtk3
-    libkrb5
-    libsecret
-    nss
-    xorg.libxkbfile
-    xorg.libXdamage
-    xorg.libXScrnSaver
-    xorg.libXtst
-    xorg.libxshmfence
-    mesa
-    libdrm
-  ];
-
-  runtimeDependencies = [
-    coreutils
-    openssl
-    (lib.getLib udev)
-    libappindicator
-    libsecret
-  ];
-
-  unpackPhase = ''
-    runHook preUnpack
-
-    dpkg -x $src .
-
-    runHook postUnpack
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/{bin,lib}
-    cp -ar ./usr/share $out
-
-    substituteInPlace $out/share/mailspring/resources/app.asar.unpacked/mailsync \
-      --replace dirname ${coreutils}/bin/dirname
-
-    ln -s $out/share/mailspring/mailspring $out/bin/mailspring
-    ln -s ${lib.getLib openssl}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
-
-    runHook postInstall
-  '';
-
-  postFixup = /* sh */ ''
-    substituteInPlace $out/share/applications/Mailspring.desktop \
-      --replace Exec=mailspring Exec=$out/bin/mailspring
-  '';
-
-  meta = {
+  meta = with lib; {
     description = "A beautiful, fast and maintained fork of Nylas Mail by one of the original authors";
     downloadPage = "https://github.com/Foundry376/Mailspring";
     homepage = "https://getmailspring.com";
-    license = lib.licenses.gpl3Plus;
+    license = licenses.gpl3Plus;
     longDescription = ''
       Mailspring is an open-source mail client forked from Nylas Mail and built with Electron.
       Mailspring's sync engine runs locally, but its source is not open.
     '';
     mainProgram = "mailspring";
-    maintainers = with lib.maintainers; [ toschmidt ];
-    platforms = [ "x86_64-linux" ];
-    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    maintainers = with maintainers; [ toschmidt ];
+    platforms = [ "x86_64-linux" "aarch64-darwin" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
   };
-})
+
+  linux = callPackage ./linux.nix { inherit pname version meta; };
+  darwin = callPackage ./darwin.nix { inherit pname version meta; };
+in if stdenv.hostPlatform.isDarwin then darwin else linux
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/linux.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/linux.nix
new file mode 100644
index 000000000000..dff8796f6ce2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/linux.nix
@@ -0,0 +1,92 @@
+{ stdenv
+, lib
+, pname
+, version
+, meta
+, fetchurl
+, autoPatchelfHook
+, alsa-lib
+, coreutils
+, db
+, dpkg
+, glib
+, gtk3
+, wrapGAppsHook
+, libkrb5
+, libsecret
+, nss
+, openssl
+, udev
+, xorg
+, mesa
+, libdrm
+, libappindicator
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  inherit pname version meta;
+
+  src = fetchurl {
+    url = "https://github.com/Foundry376/Mailspring/releases/download/${finalAttrs.version}/mailspring-${finalAttrs.version}-amd64.deb";
+    hash = "sha256-2F5k8zRRI6x1EQ0k8wvIq1Q3Lnrn2ROp/Mq+H7Vqzlc=";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    alsa-lib
+    db
+    glib
+    gtk3
+    libkrb5
+    libsecret
+    nss
+    xorg.libxkbfile
+    xorg.libXdamage
+    xorg.libXScrnSaver
+    xorg.libXtst
+    xorg.libxshmfence
+    mesa
+    libdrm
+  ];
+
+  runtimeDependencies = [
+    coreutils
+    openssl
+    (lib.getLib udev)
+    libappindicator
+    libsecret
+  ];
+
+  unpackPhase = ''
+    runHook preUnpack
+
+    dpkg -x $src .
+
+    runHook postUnpack
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,lib}
+    cp -ar ./usr/share $out
+
+    substituteInPlace $out/share/mailspring/resources/app.asar.unpacked/mailsync \
+      --replace-fail dirname ${coreutils}/bin/dirname
+
+    ln -s $out/share/mailspring/mailspring $out/bin/mailspring
+    ln -s ${lib.getLib openssl}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
+
+    runHook postInstall
+  '';
+
+  postFixup = /* sh */ ''
+    substituteInPlace $out/share/applications/Mailspring.desktop \
+      --replace-fail Exec=mailspring Exec=$out/bin/mailspring
+  '';
+})
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix
index 7de15eade835..3dc373a09024 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix
@@ -74,6 +74,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "Terminal e-mail client and e-mail client library";
+    mainProgram = "meli";
     homepage = "https://meli.delivery";
     license = licenses.gpl3;
     maintainers = with maintainers; [ _0x4A6F matthiasbeyer ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
index 7d3be7c62baf..d381dd0b0f27 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
@@ -22,6 +22,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/flokli/mlarchive2maildir";
     description = "Imports mail from (pipermail) archives into a maildir";
+    mainProgram = "mlarchive2maildir";
     license = licenses.mit;
     maintainers = with maintainers; [ flokli ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix
index fd980893124f..14d2556616c7 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/msgviewer/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Viewer for .msg files (MS Outlook)";
+    mainProgram = "msgviewer";
     homepage    = "https://www.washington.edu/alpine/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license     = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
index 6674e957cb5b..7da31db64e08 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -23,12 +23,12 @@ assert gpgmeSupport -> sslSupport;
 
 stdenv.mkDerivation rec {
   pname = "mutt";
-  version = "2.2.12";
+  version = "2.2.13";
   outputs = [ "out" "doc" "info" ];
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
-    hash = "sha256-BDrzEvZLjlb3/Qv3f4SiBdTEmAML2VhkV2ZcR7sYzjg=";
+    hash = "sha256-6yP63cHMl9hnaT86Sp8wlJrZN2WtW2/a4nl6QAHFjvs=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
index 6616a87ba6ef..7bad118dc38b 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -105,6 +105,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A small but very powerful text-based mail client";
+    mainProgram = "neomutt";
     homepage    = "http://www.neomutt.org";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ erikryb vrthra ma27 raitobezarius ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
index 79b553a5dc92..125ea3958408 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/wangp/bower";
     description = "A curses terminal client for the Notmuch email system";
+    mainProgram = "bower";
     maintainers = with maintainers; [ jgart ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
index b2970b02f7db..ba2f75669847 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "notmuch";
-  version = "0.38.2";
+  version = "0.38.3";
 
   src = fetchurl {
     url = "https://notmuchmail.org/releases/notmuch-${version}.tar.xz";
-    hash = "sha256-UoLr5HQrA+4A/Dq4NZaflNIpJ523IyESvcUAnYYelH4=";
+    hash = "sha256-mvRsyA2li0MByiuu/MJaQNES0DFVB+YywPPw8IMo0FQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix
index c1db11908012..3c933eaa4b8a 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/muchsync.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   XAPIAN_CONFIG = "${xapian}/bin/xapian-config";
   meta = {
     description = "Synchronize maildirs and notmuch databases";
+    mainProgram = "muchsync";
     homepage = "http://www.muchsync.org/";
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix
index 4cd9706bdb97..92d82f057fbd 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/mutt.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Mutt support for notmuch";
+    mainProgram = "notmuch-mutt";
     homepage    = "https://notmuchmail.org/";
     license     = with licenses; gpl3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/notmuch-mailmover.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/notmuch-mailmover.nix
index ea59ad817249..2467e79255b5 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/notmuch-mailmover.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/notmuch-mailmover.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Application to assign notmuch tagged mails to IMAP folders";
+    mainProgram = "notmuch-mailmover";
     homepage = "https://github.com/michaeladler/notmuch-mailmover/";
     license = licenses.asl20;
     maintainers = with maintainers; [ michaeladler archer-65 ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix
index 90b7dbd28d4c..d45c7f6dd575 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/sylpheed/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://sylpheed.sraoss.jp/en/";
     description = "Lightweight and user-friendly e-mail client";
+    mainProgram = "sylpheed";
     maintainers = with maintainers; [ eelco ];
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index 46d23c54b932..956842ca9bcc 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -44,13 +44,13 @@ rec {
 
   thunderbird-115 = (buildMozillaMach rec {
     pname = "thunderbird";
-    version = "115.8.0";
+    version = "115.9.0";
     application = "comm/mail";
     applicationName = "Mozilla Thunderbird";
     binaryName = pname;
     src = fetchurl {
       url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-      sha512 = "a0bdd34bebda4973f714422293f10a5a96c2b12f097c68d76fa37c48943fdbfb32dd2e504faa0b88fd699118b1903e18c3bb54cb32cd5e2ff60c09966b23e79c";
+      sha512 = "8ff0bed6e6d7f337ebae09011a10b59343ae7a8355ed1da2d72ec0d4218010adfae78e42565e5b784df26cef4702f313dc9616ac5ca5530fb772d77bdf7f2ea4";
     };
     extraPatches = [
       # The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
diff --git a/nixpkgs/pkgs/applications/networking/mhost/default.nix b/nixpkgs/pkgs/applications/networking/mhost/default.nix
index ac02ca8f64c1..f4313187636c 100644
--- a/nixpkgs/pkgs/applications/networking/mhost/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mhost/default.nix
@@ -1,19 +1,22 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, Security, SystemConfiguration }:
 
 rustPlatform.buildRustPackage rec {
   pname = "mhost";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "lukaspustina";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1j0378f8gj8hdcdhpj6lqlnriasmjxzri42wjj9pygzkmpd3ym86";
+    sha256 = "sha256-6jn9jOCh96d9y2l1OZ5hgxg7sYXPUFzJiiT95OR7lD0=";
   };
 
-  cargoSha256 = "0gqrya0bpdd67k2sxib7f4npnrx84d9r4hjq2sg2xz4j8pmgs018";
+  cargoHash = "sha256-d2JYT/eJaGm8pfmjsuSZiQxlzcsypFH53F/9joW0J6I=";
 
-  buildInputs = lib.optional stdenv.isDarwin Security;
+  buildInputs = lib.optionals stdenv.isDarwin [
+    Security
+    SystemConfiguration
+  ];
 
   CARGO_CRATE_NAME = "mhost";
 
diff --git a/nixpkgs/pkgs/applications/networking/mumble/default.nix b/nixpkgs/pkgs/applications/networking/mumble/default.nix
index 27fdde3c2a66..1ba63841ce5f 100644
--- a/nixpkgs/pkgs/applications/networking/mumble/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mumble/default.nix
@@ -48,6 +48,7 @@ let
 
     meta = with lib; {
       description = "Low-latency, high quality voice chat software";
+      mainProgram = "mumble-server";
       homepage = "https://mumble.info";
       license = licenses.bsd3;
       maintainers = with maintainers; [ infinisil felixsinger ];
diff --git a/nixpkgs/pkgs/applications/networking/netmaker/default.nix b/nixpkgs/pkgs/applications/networking/netmaker/default.nix
index c2967e0f3588..6a3de1308753 100644
--- a/nixpkgs/pkgs/applications/networking/netmaker/default.nix
+++ b/nixpkgs/pkgs/applications/networking/netmaker/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "netmaker";
-  version = "0.21.2";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "gravitl";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-0KyBRIMXGqg4MdTyN3Kw1rVbZ7ULlfW6M9DSfAUQF8A=";
+    hash = "sha256-M2DY+C0g8G+DjicMeT3Ojn4GzG7vaE1OHKSy7O6T1Kk=";
   };
 
-  vendorHash = "sha256-B9r+p9kL/8h5qGmJ2WChnU3qKFf9z76YFqn6M2dXsDg=";
+  vendorHash = "sha256-SUu0OvHCmlssH9HbAaMbiG0gF/ezxgf1n0HBiB/2PTs=";
 
   inherit subPackages;
 
diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix
index 0851d0f30e79..06ec0b304576 100644
--- a/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix
+++ b/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchurl
-, fetchpatch
 , pkg-config
 , intltool
 , python3Packages
@@ -25,23 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "liferea";
-  version = "1.15.5";
+  version = "1.15.6";
 
   src = fetchurl {
     url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
-    hash = "sha256-7lanrs63N6ZnqxvjcW/+cUZVDqUbML2gftQUc/sLr3Q=";
+    hash = "sha256-4P/0fwHofsRjZcLuFdkUKxWIp/9P5yXA2ED/zqTGd94=";
   };
 
-  patches = [
-    # Pull upstream fix for libxml2-2.12 compatibility:
-    #   https://github.com/lwindolf/liferea/pull/1329
-    (fetchpatch {
-      name = "libxml2-2.12.patch";
-      url = "https://github.com/lwindolf/liferea/commit/be8ef494586d9ef73c04ec4ca058a9a158ae3562.patch";
-      hash = "sha256-K1R7dJMm7ui6QKQqAHCo/ZrLCW3PhPU1EKRPEICtCsQ=";
-    })
-  ];
-
   nativeBuildInputs = [
     wrapGAppsHook
     python3Packages.wrapPython
diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix
index 82f8ec4d55b1..24e2585a24db 100644
--- a/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix
+++ b/nixpkgs/pkgs/applications/networking/newsreaders/pan/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A GTK-based Usenet newsreader good at both text and binaries";
+    mainProgram = "pan";
     homepage = "http://pan.rebelbase.com/";
     maintainers = [ maintainers.eelco ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/raven-reader/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/raven-reader/default.nix
index b78afb6a726e..46970cbef118 100644
--- a/nixpkgs/pkgs/applications/networking/newsreaders/raven-reader/default.nix
+++ b/nixpkgs/pkgs/applications/networking/newsreaders/raven-reader/default.nix
@@ -30,6 +30,7 @@ appimageTools.wrapType2 {
 
   meta = with lib; {
     description = "Open source desktop news reader with flexible settings to optimize your experience";
+    mainProgram = "raven-reader";
     homepage = "https://ravenreader.app/";
     license = licenses.mit;
     maintainers = with maintainers; [ wolfangaukang ];
diff --git a/nixpkgs/pkgs/applications/networking/p2p/enhanced-ctorrent/default.nix b/nixpkgs/pkgs/applications/networking/p2p/enhanced-ctorrent/default.nix
index b83729ebc693..e8432b4c5c24 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/enhanced-ctorrent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/enhanced-ctorrent/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation {
   meta = {
     broken = stdenv.isDarwin;
     description = "BitTorrent client written in C++";
+    mainProgram = "ctorrent";
     longDescription = ''
       CTorrent, a BitTorrent client implemented in C++, with bugfixes and
       performance enhancements.
diff --git a/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
index fd5424cee342..2d8cf8780f63 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.frostwire.com/";
     description = "BitTorrent Client and Cloud File Downloader";
+    mainProgram = "frostwire";
     sourceProvenance = with sourceTypes; [
       binaryBytecode
       binaryNativeCode
diff --git a/nixpkgs/pkgs/applications/networking/p2p/libutp/3.4.nix b/nixpkgs/pkgs/applications/networking/p2p/libutp/3.4.nix
index dfff1eeed239..6f543789fd61 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/libutp/3.4.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/libutp/3.4.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "uTorrent Transport Protocol library";
+    mainProgram = "ucat";
     homepage = "https://github.com/transmission/libutp";
     license = licenses.mit;
     maintainers = with maintainers; [ emilytrau ];
diff --git a/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix b/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix
index a51dba890a40..6c09ae892e27 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix
@@ -36,9 +36,11 @@ buildGoModule rec {
   passthru.tests = { inherit (nixosTests) magnetico; };
 
   meta = with lib; {
+    # Build fails with Go >=1.21, couldn't be fixed by updating module dependencies.
+    broken = true;
     description  = "Autonomous (self-hosted) BitTorrent DHT search engine suite";
-    homepage     = "https://github.com/boramalper/magnetico";
-    license      = licenses.agpl3;
+    homepage     = "https://github.com/ireun/magnetico";
+    license      = licenses.agpl3Only;
     badPlatforms = platforms.darwin;
     maintainers  = with maintainers; [ rnhmjoj ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix b/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix
index ebc105147d3d..45b5044e1d6c 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/opentracker/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation {
     license = licenses.beerware;
     platforms = platforms.linux;
     description = "Bittorrent tracker project which aims for minimal resource usage and is intended to run at your wlan router";
+    mainProgram = "opentracker";
     maintainers = with maintainers; [ makefu ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix b/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix
index 2119e80a93f4..b36ad59194d2 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix
@@ -62,6 +62,8 @@ python310Packages.buildPythonApplication rec {
     description = "TUI and CLI for the BitTorrent client Transmission";
     homepage = "https://github.com/rndusr/stig";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ doronbehar ];
+    # Too many broken tests, and it fails to launch
+    broken = true;
+    maintainers = with maintainers; [  ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/p2p/storrent/default.nix b/nixpkgs/pkgs/applications/networking/p2p/storrent/default.nix
index a21a9fef3855..469eae7987c8 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/storrent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/storrent/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/jech/storrent";
     description = "An implementation of the BitTorrent protocol that is optimised for streaming media";
+    mainProgram = "storrent";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.marsam ];
diff --git a/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
index 28b425a05e3b..35c368a826f7 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GTK remote control for the Transmission BitTorrent client";
+    mainProgram = "transmission-remote-gtk";
     homepage = "https://github.com/transmission-remote-gtk/transmission-remote-gtk";
     changelog = "https://github.com/transmission-remote-gtk/transmission-remote-gtk/releases/tag/${version}";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix
index 48e6a76c29a5..6a75a02d854b 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix
@@ -54,6 +54,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Curses interface for transmission";
+    mainProgram = "tremc";
     homepage = "https://github.com/tremc/tremc";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kashw2 ];
diff --git a/nixpkgs/pkgs/applications/networking/p2p/tremotesf/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tremotesf/default.nix
index df898599701b..6cf8c73bfb69 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/tremotesf/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/tremotesf/default.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Remote GUI for transmission-daemon";
+    mainProgram = "tremotesf";
     license = licenses.gpl3Plus;
     homepage = "https://github.com/equeim/tremotesf2";
     maintainers = with maintainers; [ sochotnicky ];
diff --git a/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
index e5949d2b11aa..bb009ff0adf0 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
@@ -108,6 +108,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Decentralised P2P filesharing client based on the Bittorrent protocol";
+    mainProgram = "tribler";
     homepage = "https://www.tribler.org/";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ xvapx viric mkg20001 ];
diff --git a/nixpkgs/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix b/nixpkgs/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix
index df91e40eab82..71799de37fc3 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix
@@ -47,6 +47,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A fork/continuation of the ZeroNet project";
+    mainProgram = "zeronet";
     longDescription = ''
       zeronet-conservancy is a fork/continuation of ZeroNet project (that has
       been abandoned by its creator) that is dedicated to sustaining existing
diff --git a/nixpkgs/pkgs/applications/networking/pcloud/default.nix b/nixpkgs/pkgs/applications/networking/pcloud/default.nix
index aae1c3cfb771..d5db07a819ac 100644
--- a/nixpkgs/pkgs/applications/networking/pcloud/default.nix
+++ b/nixpkgs/pkgs/applications/networking/pcloud/default.nix
@@ -38,13 +38,13 @@
 
 let
   pname = "pcloud";
-  version = "1.14.4";
-  code = "XZDh750ZBgJa45xqQ8H1ztdMFX2wVhOCTOFk";
+  version = "1.14.5";
+  code = "XZ0AMJ0ZdrENNeVMNI4Tz3lO1nxr577ryOMV";
 
   # Archive link's codes: https://www.pcloud.com/release-notes/linux.html
   src = fetchzip {
     url = "https://api.pcloud.com/getpubzip?code=${code}&filename=pcloud-${version}.zip";
-    hash = "sha256-1KF3tF62lkT6tfeP/dMaZITXp4Vyegp3lFYdLJ49OR8=";
+    hash = "sha256-a577iWPrke3EizG03m0+hjSoPzA4wDai/QMX2Zl7MF0=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/nixpkgs/pkgs/applications/networking/pjsip/default.nix b/nixpkgs/pkgs/applications/networking/pjsip/default.nix
index 1943a395bd7b..124a1d40f3b3 100644
--- a/nixpkgs/pkgs/applications/networking/pjsip/default.nix
+++ b/nixpkgs/pkgs/applications/networking/pjsip/default.nix
@@ -15,13 +15,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "pjsip";
-  version = "2.14";
+  version = "2.14.1";
 
   src = fetchFromGitHub {
     owner = finalAttrs.pname;
     repo = "pjproject";
     rev = "refs/tags/${finalAttrs.version}";
-    hash = "sha256-PWCeIvnBAOqbcNYPhIY7hykdvLzoD9lssSViCCPNT68=";
+    hash = "sha256-LDA3o1QMrAxcGuOi/YRoMzXmw/wFkfDs2wweZuIJ2RY=";
   };
 
   patches = [
@@ -35,10 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
     ++ lib.optional stdenv.isLinux alsa-lib
     ++ lib.optionals stdenv.isDarwin [ AppKit CoreFoundation Security ];
 
-  env = lib.optionalAttrs (stdenv.cc.libcxx != null) {
-    # work around https://github.com/NixOS/nixpkgs/issues/166205
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  } // lib.optionalAttrs stdenv.cc.isClang {
+  env = lib.optionalAttrs stdenv.cc.isClang {
     CXXFLAGS = "-std=c++11";
   } // lib.optionalAttrs stdenv.isDarwin {
     NIX_CFLAGS_LINK = "-headerpad_max_install_names";
diff --git a/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix b/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix
index 12cd9f9d04e7..07a155e15e4c 100644
--- a/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/powerdns-admin/default.nix
@@ -130,6 +130,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A PowerDNS web interface with advanced features";
+    mainProgram = "powerdns-admin";
     homepage = "https://github.com/PowerDNS-Admin/PowerDNS-Admin";
     license = licenses.mit;
     maintainers = with maintainers; [ Flakebi zhaofengli ];
diff --git a/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix b/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix
index 1414543d4cc4..8b04fc7e3f49 100644
--- a/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix
+++ b/nixpkgs/pkgs/applications/networking/protonmail-bridge/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "protonmail-bridge";
-  version = "3.9.1";
+  version = "3.10.0";
 
   src = fetchFromGitHub {
     owner = "ProtonMail";
     repo = "proton-bridge";
     rev = "v${version}";
-    hash = "sha256-osQIx67KWEraVlB+J6HmC44uDTF1HKUytBS6eilp4jI=";
+    hash = "sha256-xjpySIbt7f86PRR/9F1DXMc0G+pBq3/75STW6Zw6IhE=";
   };
 
-  vendorHash = "sha256-5XU/qyYdk8nufyQbyjkjUEWzt+RTVYzsdyKU77qrgHc=";
+  vendorHash = "sha256-cgQcI6yrnc5BUuyOkaYu24GzCaGe+BgXOC2zdt1Z1Lg=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -37,17 +37,14 @@ buildGoModule rec {
 
   postInstall = ''
     mv $out/bin/Desktop-Bridge $out/bin/protonmail-bridge # The cli is named like that in other distro packages
-    install -Dm444 dist/proton-bridge.desktop -t $out/share/applications
-    install -Dm444 dist/bridge.svg $out/share/icons/hicolor/scalable/apps/protonmail-bridge.svg
   '';
 
-  meta = with lib; {
-    homepage = "https://github.com/ProtonMail/proton-bridge";
+  meta = {
     changelog = "https://github.com/ProtonMail/proton-bridge/blob/${src.rev}/Changelog.md";
-    downloadPage = "https://github.com/ProtonMail/proton-bridge/releases";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ mrfreezeex ];
     description = "Use your ProtonMail account with your local e-mail client";
+    downloadPage = "https://github.com/ProtonMail/proton-bridge/releases";
+    homepage = "https://github.com/ProtonMail/proton-bridge";
+    license = lib.licenses.gpl3Plus;
     longDescription = ''
       An application that runs on your computer in the background and seamlessly encrypts
       and decrypts your mail as it enters and leaves your computer.
@@ -55,5 +52,6 @@ buildGoModule rec {
       To work, use secret-service freedesktop.org API (e.g. Gnome keyring) or pass.
     '';
     mainProgram = "protonmail-bridge";
+    maintainers = with lib.maintainers; [ mrfreezeex daniel-fahey ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
index 5155e29a0bda..08e428b18b07 100644
--- a/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
@@ -7,14 +7,14 @@ let
   description = "Desktop sharing application, providing remote support and online meetings";
 in stdenv.mkDerivation rec {
   pname = "anydesk";
-  version = "6.3.0";
+  version = "6.3.1";
 
   src = fetchurl {
     urls = [
       "https://download.anydesk.com/linux/anydesk-${version}-amd64.tar.gz"
       "https://download.anydesk.com/linux/generic-linux/anydesk-${version}-amd64.tar.gz"
     ];
-    hash = "sha256-seMzfTXOGa+TljgpmIsgFOis+79r0bWt+4vH3Nb+5FI=";
+    hash = "sha256-qVksva6+EfAQiOexP8NlDSCR5Ab2WGsuCG4BD87rlag=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix
index f6004c2a3fae..891dfe5d8e9e 100644
--- a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix
@@ -1,7 +1,7 @@
 { lib, callPackage }:
 
 # For detailed information about the Citrix source-tarball, please refer to the OEM
-# reference guide: https://developer-docs.citrix.com/projects/workspace-app-for-linux-oem-guide/en/latest/
+# reference guide: https://developer-docs.citrix.com/en-us/citrix-workspace-app-for-linux/citrix-workspace-app-for-linux-oem-reference-guide
 
 let
   inherit (callPackage ./sources.nix { }) supportedVersions unsupportedVersions;
@@ -13,7 +13,7 @@ let
       Citrix Workspace at version ${x} is not supported anymore!
 
       Actively supported releases are listed here:
-      https://www.citrix.com/support/product-lifecycle/milestones/receiver.html
+      https://www.citrix.com/support/product-lifecycle/workspace-app.html
     '')) unsupportedVersions
   );
 
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
index bf14b0321943..f751f3237e41 100644
--- a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -2,7 +2,7 @@
 , file, atk, alsa-lib, cairo, fontconfig, gdk-pixbuf, glib, webkitgtk, gtk2-x11, gtk3
 , heimdal, krb5, libsoup, libvorbis, speex, openssl, zlib, xorg, pango, gtk2
 , gnome2, mesa, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2
-, libjpeg, libredirect, tzdata, cacert, systemd, libcxxabi, libcxx, e2fsprogs, symlinkJoin
+, libjpeg, libredirect, tzdata, cacert, systemd, libcxx, e2fsprogs, symlinkJoin
 , libpulseaudio, pcsclite, glib-networking, llvmPackages_12, opencv4
 , libfaketime
 , libinput, libcap, libjson, libsecret, libcanberra-gtk3
@@ -22,6 +22,18 @@ let
       ln -sf $out/lib/libssl.so $out/lib/libssl.so.1.0.0
     '';
   };
+
+  opencv4' = symlinkJoin {
+    name = "opencv4-compat";
+    nativeBuildInputs = [ makeWrapper ];
+    paths = [ opencv4 ];
+    postBuild = ''
+      for so in ${opencv4}/lib/*.so; do
+        ln -s "$so" $out/lib/$(basename "$so").407
+      done
+    '';
+  };
+
 in
 
 stdenv.mkDerivation rec {
@@ -84,7 +96,6 @@ stdenv.mkDerivation rec {
     libcap
     libcanberra-gtk3
     libcxx
-    libcxxabi
     libinput
     libjpeg
     libjson
@@ -98,7 +109,7 @@ stdenv.mkDerivation rec {
     mesa
     nspr
     nss
-    opencv4
+    opencv4'
     openssl'
     pango
     speex
@@ -184,7 +195,7 @@ stdenv.mkDerivation rec {
 
     ${mkWrappers copyCert extraCerts}
 
-    # See https://developer-docs.citrix.com/projects/workspace-app-for-linux-oem-guide/en/latest/reference-information/#library-files
+    # See https://developer-docs.citrix.com/en-us/citrix-workspace-app-for-linux/citrix-workspace-app-for-linux-oem-reference-guide/reference-information/#library-files
     # Those files are fallbacks to support older libwekit.so and libjpeg.so
     rm $out/opt/citrix-icaclient/lib/ctxjpeg_fb_8.so || true
     rm $out/opt/citrix-icaclient/lib/UIDialogLibWebKit.so || true
@@ -226,7 +237,7 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
     description = "Citrix Workspace";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" ] ++ optional (versionOlder version "24") "i686-linux";
     maintainers = with maintainers; [ michaeladler ];
     inherit homepage;
   };
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
index 3d9391168514..00c1ff878b96 100644
--- a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
@@ -12,30 +12,8 @@ let
   # for Linux.
   #
   # The latest versions can be found at https://www.citrix.com/downloads/workspace-app/linux/
+  # x86 is unsupported past 23.11, see https://docs.citrix.com/en-us/citrix-workspace-app-for-linux/deprecation
   supportedVersions = lib.mapAttrs mkVersionInfo {
-
-    "23.02.0" = {
-      major     = "23";
-      minor     = "2";
-      patch     = "0";
-      x64hash   = "d0030a4782ba4b2628139635a12a7de044a4eb36906ef1eadb05b6ea77c1a7bc";
-      x86hash   = "39228fc8dd69adca4e56991c1ebc0832fec183c3ab5abd2d65c66b39b634391b";
-      x64suffix = "10";
-      x86suffix = "10";
-      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest6.html";
-    };
-
-    "23.07.0" = {
-      major     = "23";
-      minor     = "7";
-      patch     = "0";
-      x64hash   = "d4001226e79b5353fc74da4c8ed4f6295c1859fe18142cb5de345a3c7ae48168";
-      x86hash   = "4a7da238286ae28d7baf0fefa1e7e09d077c8bc56c2bf7bec00da42c331bee59";
-      x64suffix = "17";
-      x86suffix = "17";
-      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest21.html";
-    };
-
     "23.09.0" = {
       major     = "23";
       minor     = "9";
@@ -55,17 +33,27 @@ let
       x86hash   = "65b8c144e51b5bd78b98ae69e0fa76d6c020a857d74fd5254be49492527072b6";
       x64suffix = "82";
       x86suffix = "82";
-      homepage  = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
+      homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest10.html";
     };
 
+    "24.02.0" = {
+      major     = "24";
+      minor     = "2";
+      patch     = "0";
+      x64hash   = "eaeb5d3bd079d4e5c9707da67f5f7a25cb765e19c36d01861290655dbf2aaee4";
+      x86hash   = "";
+      x64suffix = "65";
+      x86suffix = "";
+      homepage  = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
+    };
   };
 
   # Retain attribute-names for abandoned versions of Citrix workspace to
   # provide a meaningful error-message if it's attempted to use such an old one.
   #
   # The lifespans of Citrix products can be found here:
-  # https://www.citrix.com/support/product-lifecycle/milestones/receiver.html
-  unsupportedVersions = [ ];
+  # https://www.citrix.com/support/product-lifecycle/workspace-app.html
+  unsupportedVersions = [ "23.02.0" "23.07.0" ];
 in {
   inherit supportedVersions unsupportedVersions;
 }
diff --git a/nixpkgs/pkgs/applications/networking/remote/dayon/default.nix b/nixpkgs/pkgs/applications/networking/remote/dayon/default.nix
index a68a6eddd334..ea46ec131fbc 100644
--- a/nixpkgs/pkgs/applications/networking/remote/dayon/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/dayon/default.nix
@@ -6,7 +6,7 @@
 , jre
 , makeWrapper
 , copyDesktopItems
-, canonicalize-jars-hook
+, stripJavaArchivesHook
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
     jdk
     makeWrapper
     copyDesktopItems
-    canonicalize-jars-hook
+    stripJavaArchivesHook
   ];
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix b/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix
index e2ee9428ad24..a544984ee76b 100644
--- a/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/rdesktop/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation (rec {
 
   meta = {
     description = "Open source client for Windows Terminal Services";
+    mainProgram = "rdesktop";
     homepage = "http://www.rdesktop.org/";
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
     license = lib.licenses.gpl2;
diff --git a/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix b/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
index 759388cbd425..82a98c0579c7 100644
--- a/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -1,5 +1,6 @@
 { mkDerivation
 , lib
+, stdenv
 , fetchurl
 , autoPatchelfHook
 , makeWrapper
@@ -8,6 +9,7 @@
 , qtbase
 , qtwebengine
 , qtx11extras
+, qtquickcontrols2
 , getconf
 , glibc
 , libXrandr
@@ -26,12 +28,22 @@ mkDerivation rec {
   pname = "teamviewer";
   # teamviewer itself has not development files but the dev output removes propagated other dev outputs from runtime
   outputs = [ "out" "dev" ];
-  version = "15.38.3";
-
-  src = fetchurl {
-    url = "https://dl.tvcdn.de/download/linux/version_${lib.versions.major version}x/teamviewer_${version}_amd64.deb";
-    sha256 = "sha256-+GGpGV8rl15VQvPRA2PWngQI4VoxCrZ0ArEm9FgdOVE=";
-  };
+  version = "15.49.2";
+
+  src =
+    let
+       base_url = "https://dl.tvcdn.de/download/linux/version_${lib.versions.major version}x";
+    in
+      {
+       x86_64-linux = fetchurl {
+          url = "${base_url}/teamviewer_${version}_amd64.deb";
+          sha256 = "sha256-Ag41RQD4lp4Sxuz6wZwiFzVxUalV+M3Zwa2Cug4iNSM=";
+       };
+       aarch64-linux = fetchurl {
+          url = "${base_url}/teamviewer_${version}_arm64.deb";
+          sha256 = "sha256-JGSmFq4q8TQJVIrS6qQxIxZPNKgor+pFetextLJPHtg=";
+       };
+      }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   unpackPhase = ''
     ar x $src
@@ -39,7 +51,7 @@ mkDerivation rec {
   '';
 
   nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapQtAppsHook ];
-  buildInputs = [ qtbase qtwebengine qtx11extras icu63 ];
+  buildInputs = [ qtbase qtwebengine qtx11extras qtquickcontrols2 icu63 ];
 
   installPhase = ''
     mkdir -p $out/share/teamviewer $out/bin $out/share/applications
diff --git a/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix b/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix
index 306f31f0628d..8924006e81ef 100644
--- a/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "waypipe";
-  version = "0.8.6";
+  version = "0.9.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mstoeckl";
     repo = "waypipe";
     rev = "v${version}";
-    hash = "sha256-1VLPnP4BmF9Zha0uVsPjA/WbF/oLfZmdDX57SzqrV5A=";
+    hash = "sha256-zk5IzZiFff9EeJn24/QmE1ybcBkxpaz6Owp77CfCwV0=";
   };
 
   strictDeps = true;
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     changelog = "https://gitlab.freedesktop.org/mstoeckl/waypipe/-/releases#v${version}";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ mic92 ];
     mainProgram = "waypipe";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix b/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix
index 19d19310591d..0712e68e324b 100644
--- a/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wayvnc";
-  version = "0.7.2";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "any1";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6at0p1Xc25K5l6sq2uMWpaLVvZMNlWC0ybyZyrIw41I=";
+    hash = "sha256-IGEM212CU91+pT8xq3BzrPrIDUZxZveb2jhatMGJAsw=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix b/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix
index 854fee0b6b65..848590d4cb87 100644
--- a/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/x2goclient/default.nix
@@ -60,6 +60,7 @@ qt5.mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical NoMachine NX3 remote desktop client";
+    mainProgram = "x2goclient";
     homepage = "http://x2go.org/";
     maintainers = with maintainers; [ ];
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix b/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix
index c9f679d9e124..3d6d1de3d964 100644
--- a/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/xrdp/default.nix
@@ -22,7 +22,7 @@
 }:
 
 let
-  version = "0.9.24";
+  version = "0.9.25.1";
   patchedXrdpSrc = applyPatches {
     patches = [ ./dynamic_config.patch ];
     name = "xrdp-patched-${version}";
@@ -31,19 +31,19 @@ let
       repo = "xrdp";
       rev = "v${version}";
       fetchSubmodules = true;
-      hash = "sha256-Kvj72l+jmoad6VgmCYW2KtQAbJMJ8AZjNIYJ5lUNzRM=";
+      hash = "sha256-oAs0oWkCyj3ObdJuHLfT25ZzkTrxNAXDiFU64OOP4Ow=";
     };
   };
 
   xorgxrdp = stdenv.mkDerivation rec {
     pname = "xorgxrdp";
-    version = "0.9.19";
+    version = "0.9.20";
 
     src = fetchFromGitHub {
       owner = "neutrinolabs";
       repo = "xorgxrdp";
       rev = "v${version}";
-      hash = "sha256-WI1KyJDQkmNHwweZMbNd2KUfawaieoGMDMQfeD12cZs=";
+      hash = "sha256-cAAWk/GqR5zJmh7EAzX3qJiYNl/RrDWdncdFeqsFIaU=";
     };
 
     nativeBuildInputs = [ pkg-config autoconf automake which libtool nasm ];
diff --git a/nixpkgs/pkgs/applications/networking/rymdport/default.nix b/nixpkgs/pkgs/applications/networking/rymdport/default.nix
index 8f78701fb9e5..7108b2306b79 100644
--- a/nixpkgs/pkgs/applications/networking/rymdport/default.nix
+++ b/nixpkgs/pkgs/applications/networking/rymdport/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "rymdport";
-  version = "3.5.2";
+  version = "3.5.3";
 
   src = fetchFromGitHub {
     owner = "Jacalz";
     repo = "rymdport";
     rev = "v${version}";
-    hash = "sha256-LTCr1OFh+1QQhXFNl9SoLPqEY0ERlLlWfSxRKjyyqPk=";
+    hash = "sha256-lCtFm360UeypzYpivlYXxuqZ0BzGzGkkq31dmgjwv4M=";
   };
 
-  vendorHash = "sha256-twXeLNWy/5wTaFb645mCeI5PzByEGj5aCWl6vO+qRLQ=";
+  vendorHash = "sha256-PXRy12JWYQQMMzh7jrEhquileY2oYFvqt8KZvrfp2o0=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/applications/networking/siproxd/default.nix b/nixpkgs/pkgs/applications/networking/siproxd/default.nix
index 1b2d3053d9be..f9dea3e2bf80 100644
--- a/nixpkgs/pkgs/applications/networking/siproxd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/siproxd/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://siproxd.sourceforge.net/";
     description = "A masquerading SIP Proxy Server";
+    mainProgram = "siproxd";
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
     license = lib.licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/applications/networking/sniffers/qtwirediff/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/qtwirediff/default.nix
index d4fe6c8ee708..8ed53ec0771f 100644
--- a/nixpkgs/pkgs/applications/networking/sniffers/qtwirediff/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sniffers/qtwirediff/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Debugging tool to diff network traffic leveraging Wireshark";
+    mainProgram = "qtwirediff";
     homepage = "https://github.com/aaptel/qtwirediff";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ janik ];
diff --git a/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix
index 1e27a01fa5e6..8ffadab3ed44 100644
--- a/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sniffers/sngrep/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A tool for displaying SIP calls message flows from terminal";
+    mainProgram = "sngrep";
     homepage = "https://github.com/irontec/sngrep";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/networking/sniffers/whsniff/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/whsniff/default.nix
index 514336e7a6b9..da50fe39a5e0 100644
--- a/nixpkgs/pkgs/applications/networking/sniffers/whsniff/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sniffers/whsniff/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/homewsn/whsniff";
     description = "Packet sniffer for 802.15.4 wireless networks";
+    mainProgram = "whsniff";
     maintainers = with maintainers; [ snicket2100 ];
     platforms = platforms.linux;
     license = licenses.gpl2Only;
diff --git a/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix b/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix
index 9e1f59f0bed6..75776f02150b 100644
--- a/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix
@@ -46,7 +46,7 @@ in
         sea-slang for gossip - a scuttlebutt is basically a watercooler on a ship.
       '';
       homepage = "https://www.scuttlebutt.nz/";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       maintainers = with maintainers; [ asymmetric picnoir cyplo ];
       mainProgram = "ssb-patchwork";
       platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/networking/sync/casync/default.nix b/nixpkgs/pkgs/applications/networking/sync/casync/default.nix
index 7a1252f806fb..79064f6bc107 100644
--- a/nixpkgs/pkgs/applications/networking/sync/casync/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/casync/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Content-Addressable Data Synchronizer";
+    mainProgram = "casync";
     homepage = "https://github.com/systemd/casync";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/sync/celeste/default.nix b/nixpkgs/pkgs/applications/networking/sync/celeste/default.nix
index 5e56e5be7117..1836ebd1e6d9 100644
--- a/nixpkgs/pkgs/applications/networking/sync/celeste/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/celeste/default.nix
@@ -86,6 +86,7 @@ rustPlatform.buildRustPackage rec {
   meta = {
     changelog = "https://github.com/hwittenborn/celeste/blob/${src.rev}/CHANGELOG.md";
     description = "GUI file synchronization client that can sync with any cloud provider";
+    mainProgram = "celeste";
     homepage = "https://github.com/hwittenborn/celeste";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/applications/networking/sync/desync/default.nix b/nixpkgs/pkgs/applications/networking/sync/desync/default.nix
index 8a5e3965ffd5..e2c43315338e 100644
--- a/nixpkgs/pkgs/applications/networking/sync/desync/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/desync/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Content-addressed binary distribution system";
+    mainProgram = "desync";
     longDescription = "An alternate implementation of the casync protocol and storage mechanism with a focus on production-readiness";
     homepage = "https://github.com/folbricht/desync";
     changelog = "https://github.com/folbricht/desync/releases/tag/v${version}";
diff --git a/nixpkgs/pkgs/applications/networking/sync/lcsync/default.nix b/nixpkgs/pkgs/applications/networking/sync/lcsync/default.nix
index 1d06ee1e4fd6..591a95fd008c 100644
--- a/nixpkgs/pkgs/applications/networking/sync/lcsync/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/lcsync/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     changelog = "https://codeberg.org/librecast/lcsync/src/tag/v${finalAttrs.version}/CHANGELOG.md";
     description = "Librecast File and Syncing Tool";
+    mainProgram = "lcsync";
     homepage = "https://librecast.net/lcsync.html";
     license = [ lib.licenses.gpl2 lib.licenses.gpl3 ];
     maintainers = with lib.maintainers; [ albertchae aynish DMills27 jasonodoom jleightcap ];
diff --git a/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix b/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix
index cc9663dd6fc2..a5dc0bc8cf51 100644
--- a/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/lsyncd/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/axkibe/lsyncd";
     description = "A utility that synchronizes local directories with remote targets";
+    mainProgram = "lsyncd";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ bobvanderlinden ];
diff --git a/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix b/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
index b2c3b30d8719..a4616c2aa923 100644
--- a/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/onedrive/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A complete tool to interact with OneDrive on Linux";
+    mainProgram = "onedrive";
     homepage = "https://github.com/abraunegg/onedrive";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ srgom peterhoeg bertof ];
diff --git a/nixpkgs/pkgs/applications/networking/sync/openrsync/default.nix b/nixpkgs/pkgs/applications/networking/sync/openrsync/default.nix
index 291db3c39951..8b91bf24407c 100644
--- a/nixpkgs/pkgs/applications/networking/sync/openrsync/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/openrsync/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://www.openrsync.org/";
     description = "BSD-licensed implementation of rsync";
+    mainProgram = "openrsync";
     license = licenses.isc;
     maintainers = with maintainers; [ fgaz ];
     # https://github.com/kristapsdz/openrsync#portability
diff --git a/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix b/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix
index 1917fc40c0ee..99945267fa99 100644
--- a/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/rclone/browser.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Graphical Frontend to Rclone written in Qt";
+    mainProgram = "rclone-browser";
     license = licenses.unlicense;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
index ebb0f17e784b..3b9727e2914a 100644
--- a/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "rclone";
-  version = "1.65.2";
+  version = "1.66.0";
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "rclone";
+    repo = "rclone";
     rev = "v${version}";
-    hash = "sha256-P7VJ6pauZ7J8LvyYNi7ANsKrYOcmInZCfRO+X+K6LzI=";
+    hash = "sha256-75RnAROICtRUDn95gSCNO0F6wes4CkJteNfUN38GQIY=";
   };
 
-  vendorHash = "sha256-budC8psvTtfVi3kYOaJ+dy/9H11ekJVkXMmeV9RhXVU=";
+  vendorHash = "sha256-zGBwgIuabLDqWbutvPHDbPRo5Dd9kNfmgToZXy7KVgI=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/applications/networking/sync/storj-uplink/default.nix b/nixpkgs/pkgs/applications/networking/sync/storj-uplink/default.nix
index db26d084e797..8f625a1fe1b0 100644
--- a/nixpkgs/pkgs/applications/networking/sync/storj-uplink/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/storj-uplink/default.nix
@@ -5,18 +5,18 @@
 
 buildGoModule rec {
   pname = "storj-uplink";
-  version = "1.99.1";
+  version = "1.100.3";
 
   src = fetchFromGitHub {
     owner = "storj";
     repo = "storj";
     rev = "v${version}";
-    hash = "sha256-UzuKy3pwl+chwYUWtcUEJIrU8wpSg3o2mVryc3qA9EM=";
+    hash = "sha256-/aR6M/zL7xL+ujmGgu9J8Toiy7/0ou76nYJ0vwd5RVM=";
   };
 
   subPackages = [ "cmd/uplink" ];
 
-  vendorHash = "sha256-RaZ+yEkzsu/V3734joWtVA2m2vCOW+CnjF5s0mwDI/0=";
+  vendorHash = "sha256-84PI1tZFiodnGvMwObELVxXMCgIWINOrO0ISAWRnxRM=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/nixpkgs/pkgs/applications/networking/syncthing/default.nix b/nixpkgs/pkgs/applications/networking/syncthing/default.nix
index 5a3c42f2deb5..89c7147310dc 100644
--- a/nixpkgs/pkgs/applications/networking/syncthing/default.nix
+++ b/nixpkgs/pkgs/applications/networking/syncthing/default.nix
@@ -13,16 +13,16 @@ let
   common = { stname, target, postInstall ? "" }:
     buildGoModule rec {
       pname = stname;
-      version = "1.27.2";
+      version = "1.27.4";
 
       src = fetchFromGitHub {
         owner = "syncthing";
         repo = "syncthing";
         rev = "v${version}";
-        hash = "sha256-CDOWN2b7DCRqhbJmiz4zp+q03GwmuVKv1MZT3NaO7lI=";
+        hash = "sha256-TXkZJAN72Qa3Mo2TYvCHNOl3BWfRxu78XXHW48Jjj0M=";
       };
 
-      vendorHash = "sha256-3MWVx0N17YgvFira56gvqMJlR1o/udtmWBn9oEVEp04=";
+      vendorHash = "sha256-ALdmETpEmvA3bTfBRK6LaO7bnlH03fljX1P7rqzskG4=";
 
       nativeBuildInputs = lib.optionals stdenv.isDarwin [
         # Recent versions of macOS seem to require binaries to be signed when
diff --git a/nixpkgs/pkgs/applications/networking/twingate/default.nix b/nixpkgs/pkgs/applications/networking/twingate/default.nix
index 3ac7e18086a9..c8e218a3fdff 100644
--- a/nixpkgs/pkgs/applications/networking/twingate/default.nix
+++ b/nixpkgs/pkgs/applications/networking/twingate/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "twingate";
-  version = "2024.018.111147";
+  version = "2024.63.115357";
 
   src = fetchurl {
     url = "https://binaries.twingate.com/client/linux/DEB/x86_64/${version}/twingate-amd64.deb";
-    hash = "sha256-lOW4Y2zRP1UGMgBSC3K92mF5172kp0B1nwfRpE1QX/M=";
+    hash = "sha256-VSm9gnHfo9LPwUvNwLeX7OjqMYgFUgGYSxx/qDndfwo=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/networking/wgcf/default.nix b/nixpkgs/pkgs/applications/networking/wgcf/default.nix
index b088c61e599d..ecd4b9e06fa2 100644
--- a/nixpkgs/pkgs/applications/networking/wgcf/default.nix
+++ b/nixpkgs/pkgs/applications/networking/wgcf/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "wgcf";
-  version = "2.2.21";
+  version = "2.2.22";
 
   src = fetchFromGitHub {
     owner = "ViRb3";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-FzzPDTRmDCBS7EZOgj4ckytbtlRPqPdHpyn3nF0yHdc=";
+    hash = "sha256-NzXIzOMc6rVX65FJe/S8rkYJbWNPWRz+mH7vP7Ch9Kw=";
   };
 
   subPackages = ".";
 
-  vendorHash = "sha256-cGtm+rUgYppwwL/BizWikPUyFExHzLucL2o2g9PgGNw=";
+  vendorHash = "sha256-GinKmXHXWEGmCz83AU3z5JBmPnWJ9Q2EqEPgaTUiDgs=";
 
   meta = with lib; {
     description = "Cross-platform, unofficial CLI for Cloudflare Warp";
diff --git a/nixpkgs/pkgs/applications/networking/xpipe/default.nix b/nixpkgs/pkgs/applications/networking/xpipe/default.nix
index fdd403cd4e0f..7221687ae714 100644
--- a/nixpkgs/pkgs/applications/networking/xpipe/default.nix
+++ b/nixpkgs/pkgs/applications/networking/xpipe/default.nix
@@ -33,14 +33,14 @@ let
   }.${system} or throwSystem;
 
   hash = {
-    x86_64-linux = "sha256-MtSpyPj2PX8K2e4ZLAmvn0T5bJvPtBbzmn6/cTXGlbc=";
+    x86_64-linux = "sha256-L76UTgy1tGxj5KVXefz2uj2M/sse2n0byqRtW/wvwz8=";
   }.${system} or throwSystem;
 
   displayname = "XPipe";
 
 in stdenvNoCC.mkDerivation rec {
   pname = "xpipe";
-  version = "8.0.1";
+  version = "8.4";
 
   src = fetchzip {
     url = "https://github.com/xpipe-io/xpipe/releases/download/${version}/xpipe-portable-linux-${arch}.tar.gz";
diff --git a/nixpkgs/pkgs/applications/office/PageEdit/default.nix b/nixpkgs/pkgs/applications/office/PageEdit/default.nix
index 0c98eaac4b37..5f47ca9bbe68 100644
--- a/nixpkgs/pkgs/applications/office/PageEdit/default.nix
+++ b/nixpkgs/pkgs/applications/office/PageEdit/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "ePub XHTML Visual Editor";
+    mainProgram = "pageedit";
     homepage = "https://sigil-ebook.com/pageedit/";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.pasqui23 ];
diff --git a/nixpkgs/pkgs/applications/office/abiword/default.nix b/nixpkgs/pkgs/applications/office/abiword/default.nix
index 8f62a4187611..0ca18f8e360b 100644
--- a/nixpkgs/pkgs/applications/office/abiword/default.nix
+++ b/nixpkgs/pkgs/applications/office/abiword/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Word processing program, similar to Microsoft Word";
+    mainProgram = "abiword";
     homepage = "https://www.abisource.com/";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/office/appflowy/default.nix b/nixpkgs/pkgs/applications/office/appflowy/default.nix
index 046e1273ed1b..ee508a1d59b9 100644
--- a/nixpkgs/pkgs/applications/office/appflowy/default.nix
+++ b/nixpkgs/pkgs/applications/office/appflowy/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "appflowy";
-  version = "0.4.9";
+  version = "0.5.2";
 
   src = fetchzip {
     url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${version}/AppFlowy-${version}-linux-x86_64.tar.gz";
-    hash = "sha256-+Olmp2z5cLDgZikY2n9LI2A9W03pYdCtUE9hdr9Tp2Q=";
+    hash = "sha256-yXrdV/m6Ss9DyYleA5K7Wz1RUa8fznDJl5Yvco+jaiA=";
     stripRoot = false;
   };
 
diff --git a/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix b/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix
index 947c9946e5d3..c3e080ad3d52 100644
--- a/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix
+++ b/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix
@@ -87,7 +87,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Modular multi screen pdf presentation viewer";
     homepage = "https://github.com/stiglers-eponym/BeamerPresenter";
-    license = with licenses; [ agpl3 gpl3Plus ];
+    license = with licenses; [ agpl3Only gpl3Plus ];
     platforms = platforms.all;
     maintainers = with maintainers; [ pacien dotlambda ];
     mainProgram = "beamerpresenter";
diff --git a/nixpkgs/pkgs/applications/office/beancount/bean-add.nix b/nixpkgs/pkgs/applications/office/beancount/bean-add.nix
index 1d5bafbdb406..9d451668eff6 100644
--- a/nixpkgs/pkgs/applications/office/beancount/bean-add.nix
+++ b/nixpkgs/pkgs/applications/office/beancount/bean-add.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "https://github.com/simon-v/bean-add/";
     description = "beancount transaction entry assistant";
+    mainProgram = "bean-add";
 
     # The (only) source file states:
     #   License: "Do what you feel is right, but don't be a jerk" public license.
diff --git a/nixpkgs/pkgs/applications/office/beebeep/default.nix b/nixpkgs/pkgs/applications/office/beebeep/default.nix
index 8fa5fc980714..978066b7199a 100644
--- a/nixpkgs/pkgs/applications/office/beebeep/default.nix
+++ b/nixpkgs/pkgs/applications/office/beebeep/default.nix
@@ -36,6 +36,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.beebeep.net/";
     description = "BeeBEEP is the free office messenger that is indispensable in all those places where privacy and security are an essential requirement.";
+    mainProgram = "beebeep";
     platforms = platforms.linux;
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ mglolenstine ];
diff --git a/nixpkgs/pkgs/applications/office/bookworm/default.nix b/nixpkgs/pkgs/applications/office/bookworm/default.nix
index 621fce9e4579..13d3c46c946d 100644
--- a/nixpkgs/pkgs/applications/office/bookworm/default.nix
+++ b/nixpkgs/pkgs/applications/office/bookworm/default.nix
@@ -82,6 +82,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple, focused eBook reader";
+    mainProgram = "com.github.babluboy.bookworm";
     longDescription = ''
       Read the books you love without having to worry about different format complexities like epub, pdf, mobi, cbr, etc.
     '';
diff --git a/nixpkgs/pkgs/applications/office/csv2odf/default.nix b/nixpkgs/pkgs/applications/office/csv2odf/default.nix
index 436e8d97bdba..3ab5ff356b6e 100644
--- a/nixpkgs/pkgs/applications/office/csv2odf/default.nix
+++ b/nixpkgs/pkgs/applications/office/csv2odf/default.nix
@@ -11,6 +11,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://sourceforge.net/p/csv2odf/wiki/Main_Page/";
     description = "Convert csv files to OpenDocument Format";
+    mainProgram = "csv2odf";
     longDescription = ''
       csv2odf is a command line tool that can convert a comma separated value
       (csv) file to an odf, ods, html, xlsx, or docx document that can be viewed in
diff --git a/nixpkgs/pkgs/applications/office/cutemarked-ng/default.nix b/nixpkgs/pkgs/applications/office/cutemarked-ng/default.nix
index 9488546aad6e..79555fc2f113 100644
--- a/nixpkgs/pkgs/applications/office/cutemarked-ng/default.nix
+++ b/nixpkgs/pkgs/applications/office/cutemarked-ng/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Qt-based, free and open source markdown editor";
+    mainProgram = "cutemarked";
     homepage = "https://github.com/Waqar144/CuteMarkEd-NG";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ rewine ];
diff --git a/nixpkgs/pkgs/applications/office/endeavour/default.nix b/nixpkgs/pkgs/applications/office/endeavour/default.nix
index 09442c8b56ba..851eab538818 100644
--- a/nixpkgs/pkgs/applications/office/endeavour/default.nix
+++ b/nixpkgs/pkgs/applications/office/endeavour/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Personal task manager for GNOME";
+    mainProgram = "endeavour";
     homepage = "https://gitlab.gnome.org/World/Endeavour";
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/applications/office/espanso/default.nix b/nixpkgs/pkgs/applications/office/espanso/default.nix
index d4d0290277e1..1b02f3be80ec 100644
--- a/nixpkgs/pkgs/applications/office/espanso/default.nix
+++ b/nixpkgs/pkgs/applications/office/espanso/default.nix
@@ -120,11 +120,6 @@ rustPlatform.buildRustPackage rec {
       --replace '"/usr/local/bin/espanso"' '"${placeholder "out"}/bin/espanso"'
   '';
 
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   # Some tests require networking
   doCheck = false;
 
@@ -150,6 +145,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cross-platform Text Expander written in Rust";
+    mainProgram = "espanso";
     homepage = "https://espanso.org";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ kimat thehedgeh0g ];
diff --git a/nixpkgs/pkgs/applications/office/fava/default.nix b/nixpkgs/pkgs/applications/office/fava/default.nix
index 9cdc5d1b5014..d00600bbea59 100644
--- a/nixpkgs/pkgs/applications/office/fava/default.nix
+++ b/nixpkgs/pkgs/applications/office/fava/default.nix
@@ -2,12 +2,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "fava";
-  version = "1.27.2";
+  version = "1.27.3";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-kLQAWFHDmzsBjVMm/ZUn+TFkM52W0h0jg0wSp1tmPZQ=";
+    hash = "sha256-GsnXZaazEiOhyjbIinHRD1fdoqlAp3d5csrmtydxmGM=";
   };
 
   nativeBuildInputs = with python3.pkgs; [ setuptools-scm ];
@@ -47,6 +47,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Web interface for beancount";
+    mainProgram = "fava";
     homepage = "https://beancount.github.io/fava";
     changelog = "https://beancount.github.io/fava/changelog.html";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/office/foliate/default.nix b/nixpkgs/pkgs/applications/office/foliate/default.nix
index 0ca0f87a073a..7a7aa8c1c9a1 100644
--- a/nixpkgs/pkgs/applications/office/foliate/default.nix
+++ b/nixpkgs/pkgs/applications/office/foliate/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple and modern GTK eBook reader";
+    mainProgram = "foliate";
     homepage = "https://johnfactotum.github.io/foliate";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/applications/office/gnote/default.nix b/nixpkgs/pkgs/applications/office/gnote/default.nix
index 922c41d1d42f..29c72b24cdce 100644
--- a/nixpkgs/pkgs/applications/office/gnote/default.nix
+++ b/nixpkgs/pkgs/applications/office/gnote/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Gnote";
     description = "A note taking application";
+    mainProgram = "gnote";
     maintainers = with maintainers; [ jfvillablanca ];
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/office/gnumeric/default.nix b/nixpkgs/pkgs/applications/office/gnumeric/default.nix
index d0331a742472..7e351afadf53 100644
--- a/nixpkgs/pkgs/applications/office/gnumeric/default.nix
+++ b/nixpkgs/pkgs/applications/office/gnumeric/default.nix
@@ -7,11 +7,11 @@ let
   inherit (python3Packages) python pygobject3;
 in stdenv.mkDerivation rec {
   pname = "gnumeric";
-  version = "1.12.56";
+  version = "1.12.57";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "UaOPNaxbD3He+oueIL8uCFY3mPHLMzeamhdyb7Hj4bI=";
+    sha256 = "r/ULG2I0DCT8z0U9X60+f7c/S8SzT340tsPS2a9qHk8=";
   };
 
   configureFlags = [ "--disable-component" ];
diff --git a/nixpkgs/pkgs/applications/office/grisbi/default.nix b/nixpkgs/pkgs/applications/office/grisbi/default.nix
index 81f97b116b05..b0242fc4ae43 100644
--- a/nixpkgs/pkgs/applications/office/grisbi/default.nix
+++ b/nixpkgs/pkgs/applications/office/grisbi/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A personnal accounting application";
+    mainProgram = "grisbi";
     longDescription = ''
       Grisbi is an application written by French developers, so it perfectly
       respects French accounting rules. Grisbi can manage multiple accounts,
diff --git a/nixpkgs/pkgs/applications/office/gtg/default.nix b/nixpkgs/pkgs/applications/office/gtg/default.nix
index 44aaa6c7146e..d7bad1d13390 100644
--- a/nixpkgs/pkgs/applications/office/gtg/default.nix
+++ b/nixpkgs/pkgs/applications/office/gtg/default.nix
@@ -72,6 +72,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = " A personal tasks and TODO-list items organizer";
+    mainProgram = "gtg";
     longDescription = ''
       "Getting Things GNOME" (GTG) is a personal tasks and ToDo list organizer inspired by the "Getting Things Done" (GTD) methodology.
       GTG is intended to help you track everything you need to do and need to know, from small tasks to large projects.
diff --git a/nixpkgs/pkgs/applications/office/homebank/default.nix b/nixpkgs/pkgs/applications/office/homebank/default.nix
index a5f0b90095e7..023a5729ed80 100644
--- a/nixpkgs/pkgs/applications/office/homebank/default.nix
+++ b/nixpkgs/pkgs/applications/office/homebank/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Free, easy, personal accounting for everyone";
+    mainProgram = "homebank";
     homepage = "https://www.gethomebank.org";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ pSub frlan ];
diff --git a/nixpkgs/pkgs/applications/office/iotas/default.nix b/nixpkgs/pkgs/applications/office/iotas/default.nix
index 4b6a251f0460..08a4a1bd3d6e 100644
--- a/nixpkgs/pkgs/applications/office/iotas/default.nix
+++ b/nixpkgs/pkgs/applications/office/iotas/default.nix
@@ -19,15 +19,15 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "iotas";
-  version = "0.2.7";
-  format = "other";
+  version = "0.2.10";
+  pyproject = false;
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
-    owner = "cheywood";
-    repo = pname;
+    owner = "World";
+    repo = "iotas";
     rev = version;
-    hash = "sha256-k3Qbi/BwkJlQzlyTlo9SjJ1M3zMFHo4669rzd+BBPzQ=";
+    hash = "sha256-aITt+TJb/LrVOyb/mAC7U6/NJ4stHD76jjBFC7Pt7fU=";
   };
 
   nativeBuildInputs = [
@@ -57,6 +57,7 @@ python3.pkgs.buildPythonApplication rec {
     markdown-it-py
     linkify-it-py
     mdit-py-plugins
+    pypandoc
   ];
 
   # prevent double wrapping
@@ -67,9 +68,10 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Simple note taking with mobile-first design and Nextcloud sync";
-    homepage = "https://gitlab.gnome.org/cheywood/iotas";
+    homepage = "https://gitlab.gnome.org/World/iotas";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "iotas";
     maintainers = with maintainers; [ zendo ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/jameica/default.nix b/nixpkgs/pkgs/applications/office/jameica/default.nix
index e6aa7cb21d14..66d2a80c5555 100644
--- a/nixpkgs/pkgs/applications/office/jameica/default.nix
+++ b/nixpkgs/pkgs/applications/office/jameica/default.nix
@@ -1,4 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, wrapGAppsHook, ant, jdk, jre, gtk2, glib, xorg, Cocoa }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeDesktopItem
+, makeWrapper
+, wrapGAppsHook
+, stripJavaArchivesHook
+, ant
+, jdk
+, jre
+, gtk2
+, glib
+, libXtst
+, Cocoa
+}:
 
 let
   _version = "2.10.4";
@@ -26,10 +40,6 @@ stdenv.mkDerivation rec {
   pname = "jameica";
   inherit version;
 
-  nativeBuildInputs = [ ant jdk wrapGAppsHook makeWrapper ];
-  buildInputs = lib.optionals stdenv.isLinux [ gtk2 glib xorg.libXtst ]
-    ++ lib.optional stdenv.isDarwin Cocoa;
-
   src = fetchFromGitHub {
     owner = "willuhn";
     repo = "jameica";
@@ -37,15 +47,23 @@ stdenv.mkDerivation rec {
     hash = "sha256-MSVSd5DyVL+dcfTDv1M99hxickPwT2Pt6QGNsu6DGZI=";
   };
 
+  nativeBuildInputs = [ ant jdk wrapGAppsHook makeWrapper stripJavaArchivesHook ];
+  buildInputs = lib.optionals stdenv.isLinux [ gtk2 glib libXtst ]
+    ++ lib.optional stdenv.isDarwin Cocoa;
+
   dontWrapGApps = true;
 
   # there is also a build.gradle, but it only seems to be used to vendor 3rd party libraries
   # and is not able to build the application itself
   buildPhase = ''
-    (cd build; ant -Dsystem.version=${version} init compile jar)
+    runHook preBuild
+    ant -f build -Dsystem.version=${version} init compile jar
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/libexec $out/lib $out/bin $out/share/{applications,jameica-${version},java}/
 
     # copy libraries except SWT
@@ -57,6 +75,8 @@ stdenv.mkDerivation rec {
     install -Dm644 plugin.xml $out/share/java/
     install -Dm644 build/jameica-icon.png $out/share/pixmaps/jameica.png
     cp ${desktopItem}/share/applications/* $out/share/applications/
+
+    runHook postInstall
   '';
 
   postFixup = ''
diff --git a/nixpkgs/pkgs/applications/office/karlender/default.nix b/nixpkgs/pkgs/applications/office/karlender/default.nix
index 222a91b5d620..db3e5c6876d9 100644
--- a/nixpkgs/pkgs/applications/office/karlender/default.nix
+++ b/nixpkgs/pkgs/applications/office/karlender/default.nix
@@ -54,6 +54,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Mobile-friendly GTK calendar application";
+    mainProgram = "karlender";
     homepage = "https://gitlab.com/floers/karlender";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ chuangzhu ];
diff --git a/nixpkgs/pkgs/applications/office/kbibtex/default.nix b/nixpkgs/pkgs/applications/office/kbibtex/default.nix
index 1b3b4accc4ea..e7b04848ca40 100644
--- a/nixpkgs/pkgs/applications/office/kbibtex/default.nix
+++ b/nixpkgs/pkgs/applications/office/kbibtex/default.nix
@@ -70,6 +70,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Bibliography editor for KDE";
+    mainProgram = "kbibtex";
     homepage = "https://userbase.kde.org/KBibTeX";
     changelog = "https://invent.kde.org/office/kbibtex/-/raw/v${version}/ChangeLog";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/applications/office/kitsas/default.nix b/nixpkgs/pkgs/applications/office/kitsas/default.nix
index c3c3f5392679..e1b3a2b1a729 100644
--- a/nixpkgs/pkgs/applications/office/kitsas/default.nix
+++ b/nixpkgs/pkgs/applications/office/kitsas/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/artoh/kitupiikki";
     description = "An accounting tool suitable for Finnish associations and small business";
+    mainProgram = "kitsas";
     maintainers = with maintainers; [ gspia ];
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/office/kmymoney/default.nix b/nixpkgs/pkgs/applications/office/kmymoney/default.nix
index 3b39f88add75..a910d76b29c9 100644
--- a/nixpkgs/pkgs/applications/office/kmymoney/default.nix
+++ b/nixpkgs/pkgs/applications/office/kmymoney/default.nix
@@ -76,6 +76,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Personal finance manager for KDE";
+    mainProgram = "kmymoney";
     homepage = "https://kmymoney.org/";
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/applications/office/ktimetracker/default.nix b/nixpkgs/pkgs/applications/office/ktimetracker/default.nix
index 3b1700cc24fa..58720625cc8e 100644
--- a/nixpkgs/pkgs/applications/office/ktimetracker/default.nix
+++ b/nixpkgs/pkgs/applications/office/ktimetracker/default.nix
@@ -25,6 +25,7 @@ kio knotifications kwindowsystem kxmlgui ktextwidgets
 
   meta = with lib; {
     description = "Todo management and time tracking application";
+    mainProgram = "ktimetracker";
     license = licenses.gpl2;
     homepage = "https://userbase.kde.org/KTimeTracker";
     maintainers = with maintainers; [ dtzWill ];
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/default.nix b/nixpkgs/pkgs/applications/office/libreoffice/default.nix
index e7fa0c53f730..46677de9bbc1 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/default.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/default.nix
@@ -98,7 +98,7 @@
 , gpgme
 , libwebp
 , abseil-cpp
-, langs ? [ "ar" "ca" "cs" "da" "de" "en-GB" "en-US" "eo" "es" "fr" "hu" "it" "ja" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sl" "tr" "uk" "zh-CN" ]
+, langs ? [ "ar" "ca" "cs" "da" "de" "en-GB" "en-US" "eo" "es" "fi" "fr" "hu" "it" "ja" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sl" "tr" "uk" "zh-CN" ]
 , withHelp ? true
 , kdeIntegration ? false
 , wrapQtAppsHook ? null
diff --git a/nixpkgs/pkgs/applications/office/mytetra/default.nix b/nixpkgs/pkgs/applications/office/mytetra/default.nix
index b7d53507c4cf..8195a73bb207 100644
--- a/nixpkgs/pkgs/applications/office/mytetra/default.nix
+++ b/nixpkgs/pkgs/applications/office/mytetra/default.nix
@@ -37,6 +37,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Smart manager for information collecting";
+    mainProgram = "mytetra";
     homepage = "https://webhamster.ru/site/page/index/articles/projectcode/138";
     license = licenses.gpl3;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/applications/office/notes/default.nix b/nixpkgs/pkgs/applications/office/notes/default.nix
index abd93813a725..dda8ddb5beac 100644
--- a/nixpkgs/pkgs/applications/office/notes/default.nix
+++ b/nixpkgs/pkgs/applications/office/notes/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "A fast and beautiful note-taking app";
+    mainProgram = "notes";
     downloadPage = "https://github.com/nuttyartist/notes";
     homepage = "https://www.get-notes.com";
     license = lib.licenses.mpl20;
diff --git a/nixpkgs/pkgs/applications/office/osmo/default.nix b/nixpkgs/pkgs/applications/office/osmo/default.nix
index 975305a72173..8f73d9c6b2e8 100644
--- a/nixpkgs/pkgs/applications/office/osmo/default.nix
+++ b/nixpkgs/pkgs/applications/office/osmo/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A handy personal organizer";
+    mainProgram = "osmo";
     homepage = "https://clayo.org/osmo/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/office/paperless-ngx/default.nix b/nixpkgs/pkgs/applications/office/paperless-ngx/default.nix
index 0f77fd1cf358..257ee3250e50 100644
--- a/nixpkgs/pkgs/applications/office/paperless-ngx/default.nix
+++ b/nixpkgs/pkgs/applications/office/paperless-ngx/default.nix
@@ -22,13 +22,13 @@
 }:
 
 let
-  version = "2.6.1";
+  version = "2.6.3";
 
   src = fetchFromGitHub {
     owner = "paperless-ngx";
     repo = "paperless-ngx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sBzy3C59630moKuv3cmE9YI/FQkoZbF0SoSFbpJdNd8=";
+    hash = "sha256-M1CnB1adk02lJuFsm0zzjSx/l9hKHJMt1Wh2a5Xtdyg=";
   };
 
   python = python3;
@@ -53,7 +53,7 @@ let
       cd src-ui
     '';
 
-    npmDepsHash = "sha256-oie1jUFIRrOpdxw1gDtLBgFl1Fb0F5hjvl0wTAd6eYU=";
+    npmDepsHash = "sha256-qgCUfGVk698Ink23U7LxkGdFoNpOhCp240tbk+hU0dk=";
 
     nativeBuildInputs = [
       pkg-config
diff --git a/nixpkgs/pkgs/applications/office/pdfmixtool/default.nix b/nixpkgs/pkgs/applications/office/pdfmixtool/default.nix
index 585c2d43c433..2aeca54c1e96 100644
--- a/nixpkgs/pkgs/applications/office/pdfmixtool/default.nix
+++ b/nixpkgs/pkgs/applications/office/pdfmixtool/default.nix
@@ -51,6 +51,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "An application to split, merge, rotate and mix PDF files";
+    mainProgram = "pdfmixtool";
     homepage = "https://gitlab.com/scarpetta/pdfmixtool";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/applications/office/planify/default.nix b/nixpkgs/pkgs/applications/office/planify/default.nix
index c4a1ab0887d1..537dc979a493 100644
--- a/nixpkgs/pkgs/applications/office/planify/default.nix
+++ b/nixpkgs/pkgs/applications/office/planify/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "planify";
-  version = "4.5.2";
+  version = "4.5.4";
 
   src = fetchFromGitHub {
     owner = "alainm23";
     repo = "planify";
     rev = version;
-    hash = "sha256-huHNcAIwTvKssPQmOGCc6UzPxCh7JP1gM6BGbD0QM/w=";
+    hash = "sha256-Q7QwsMUlejZStmQNRQntclHSCVQl54dtg8hyvXyM4PM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/office/planner/default.nix b/nixpkgs/pkgs/applications/office/planner/default.nix
index 8dbcd13f1c99..0beb4825ddd4 100644
--- a/nixpkgs/pkgs/applications/office/planner/default.nix
+++ b/nixpkgs/pkgs/applications/office/planner/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Project management tool for the GNOME desktop";
+    mainProgram = "planner";
     homepage = "https://wiki.gnome.org/Apps/Planner";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ amiloradovsky ];
diff --git a/nixpkgs/pkgs/applications/office/portfolio/default.nix b/nixpkgs/pkgs/applications/office/portfolio/default.nix
index b58b0152d41a..7ef353dc1cd0 100644
--- a/nixpkgs/pkgs/applications/office/portfolio/default.nix
+++ b/nixpkgs/pkgs/applications/office/portfolio/default.nix
@@ -27,11 +27,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "PortfolioPerformance";
-  version = "0.67.3";
+  version = "0.68.2";
 
   src = fetchurl {
     url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    hash = "sha256-WqWrerEBaaXA9vhpVHEyMZdAxajeOPANFyUeK42cXUU=";
+    hash = "sha256-h/WCfF3jK/pkN911vxPe2xzGUfVY2Xy+3yJwoqBQ5mA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/office/pympress/default.nix b/nixpkgs/pkgs/applications/office/pympress/default.nix
index 485b83ab7c3a..353e46e067da 100644
--- a/nixpkgs/pkgs/applications/office/pympress/default.nix
+++ b/nixpkgs/pkgs/applications/office/pympress/default.nix
@@ -42,6 +42,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Simple yet powerful PDF reader designed for dual-screen presentations";
+    mainProgram = "pympress";
     license = licenses.gpl2Plus;
     homepage = "https://cimbali.github.io/pympress/";
     maintainers = [ maintainers.tbenst ];
diff --git a/nixpkgs/pkgs/applications/office/qnotero/default.nix b/nixpkgs/pkgs/applications/office/qnotero/default.nix
index ff7ce4121298..c091f61dffc6 100644
--- a/nixpkgs/pkgs/applications/office/qnotero/default.nix
+++ b/nixpkgs/pkgs/applications/office/qnotero/default.nix
@@ -43,6 +43,7 @@ python3Packages.buildPythonPackage rec {
 
   meta = {
     description = "Quick access to Zotero references";
+    mainProgram = "qnotero";
     homepage = "https://www.cogsci.nl/software/qnotero";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/applications/office/qownnotes/default.nix b/nixpkgs/pkgs/applications/office/qownnotes/default.nix
index 0ff9312f8b49..4164e493bc8a 100644
--- a/nixpkgs/pkgs/applications/office/qownnotes/default.nix
+++ b/nixpkgs/pkgs/applications/office/qownnotes/default.nix
@@ -19,14 +19,14 @@
 let
   pname = "qownnotes";
   appname = "QOwnNotes";
-  version = "24.3.0";
+  version = "24.3.5";
 in
 stdenv.mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
-    hash = "sha256-NIxRXNawzV6adgf7tCYdn1/Nd2ULodOVGt1QwITpO6Q=";
+    hash = "sha256-s3OeTK6XodIMrNTuImdljbQYX1Abj7SFOZmPJgm2teo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/office/qpdfview/default.nix b/nixpkgs/pkgs/applications/office/qpdfview/default.nix
index 49e2334c8093..9b0bb09df904 100644
--- a/nixpkgs/pkgs/applications/office/qpdfview/default.nix
+++ b/nixpkgs/pkgs/applications/office/qpdfview/default.nix
@@ -62,6 +62,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A tabbed document viewer";
+    mainProgram = "qpdfview";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/office/scribus/default.nix b/nixpkgs/pkgs/applications/office/scribus/default.nix
index 00f7d2b51f8b..5f2a11719896 100644
--- a/nixpkgs/pkgs/applications/office/scribus/default.nix
+++ b/nixpkgs/pkgs/applications/office/scribus/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
       arthsmn
     ];
     description = "Desktop Publishing (DTP) and Layout program";
+    mainProgram = "scribus";
     homepage = "https://www.scribus.net";
     # There are a lot of licenses...
     # https://github.com/scribusproject/scribus/blob/20508d69ca4fc7030477db8dee79fd1e012b52d2/COPYING#L15-L19
diff --git a/nixpkgs/pkgs/applications/office/tagainijisho/default.nix b/nixpkgs/pkgs/applications/office/tagainijisho/default.nix
index 55c84fd2a3d0..6ec176393e3e 100644
--- a/nixpkgs/pkgs/applications/office/tagainijisho/default.nix
+++ b/nixpkgs/pkgs/applications/office/tagainijisho/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A free, open-source Japanese dictionary and kanji lookup tool";
+    mainProgram = "tagainijisho";
     homepage = "https://www.tagaini.net/";
     license = with licenses; [
       /* program */
diff --git a/nixpkgs/pkgs/applications/office/timeline/default.nix b/nixpkgs/pkgs/applications/office/timeline/default.nix
index 7953badbec4d..9f8bb5b563d5 100644
--- a/nixpkgs/pkgs/applications/office/timeline/default.nix
+++ b/nixpkgs/pkgs/applications/office/timeline/default.nix
@@ -87,6 +87,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://thetimelineproj.sourceforge.net/";
     changelog = "https://thetimelineproj.sourceforge.net/changelog.html";
     description = "Display and navigate information on a timeline";
+    mainProgram = "timeline";
     license = with licenses; [ gpl3Only cc-by-sa-30 ];
     platforms = with platforms; unix;
     maintainers = with maintainers; [ davidak ];
diff --git a/nixpkgs/pkgs/applications/office/timeular/default.nix b/nixpkgs/pkgs/applications/office/timeular/default.nix
index 8ea89c5b058b..ef6c931bcc6a 100644
--- a/nixpkgs/pkgs/applications/office/timeular/default.nix
+++ b/nixpkgs/pkgs/applications/office/timeular/default.nix
@@ -5,12 +5,12 @@
 }:
 
 let
-  version = "6.7.3";
+  version = "6.7.5";
   pname = "timeular";
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage";
-    hash = "sha256-VnjCTf2x3GzmKW9EfNWGsN/aK7DKjTo8DZOF2qqGJ0Q=";
+    hash = "sha256-b/I34f8fGgPr4+fZJ+2cb+Xi/AvotxNHYg7IaLTByPk=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/nixpkgs/pkgs/applications/office/todofi.sh/default.nix b/nixpkgs/pkgs/applications/office/todofi.sh/default.nix
index afdbceb3417e..5581c3d4f7dc 100644
--- a/nixpkgs/pkgs/applications/office/todofi.sh/default.nix
+++ b/nixpkgs/pkgs/applications/office/todofi.sh/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Todo-txt + Rofi = Todofi.sh";
+    mainProgram = "todofi.sh";
     homepage = "https://github.com/hugokernel/todofi.sh";
     license = licenses.mit;
     maintainers = with maintainers; [ ewok ];
diff --git a/nixpkgs/pkgs/applications/office/treesheets/default.nix b/nixpkgs/pkgs/applications/office/treesheets/default.nix
index 1fda91523a5e..c10b18a6f64a 100644
--- a/nixpkgs/pkgs/applications/office/treesheets/default.nix
+++ b/nixpkgs/pkgs/applications/office/treesheets/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "treesheets";
-  version = "unstable-2024-01-30";
+  version = "unstable-2024-03-14";
 
   src = fetchFromGitHub {
     owner = "aardappel";
     repo = "treesheets";
-    rev = "f11a3418cb6e403898be215f3efcc2fcb7bc0f19";
-    sha256 = "FOeRfNPX1ER1ZMUWy+4b67XfrATPPZntfhywjaGgDpo=";
+    rev = "4910f91cc067b1022d773a40d5762b0ebd47d0f3";
+    sha256 = "We3+Y2V2izsgem0fJ0/2pPj5tyjXhOEuubP7lIhnEQ0=";
   };
 
   nativeBuildInputs = [
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Free Form Data Organizer";
+    mainProgram = "treesheets";
 
     longDescription = ''
       The ultimate replacement for spreadsheets, mind mappers, outliners,
diff --git a/nixpkgs/pkgs/applications/office/tryton/default.nix b/nixpkgs/pkgs/applications/office/tryton/default.nix
index 34c65d4e2fe7..3de19b4d605f 100644
--- a/nixpkgs/pkgs/applications/office/tryton/default.nix
+++ b/nixpkgs/pkgs/applications/office/tryton/default.nix
@@ -21,13 +21,13 @@ with lib;
 
 python3Packages.buildPythonApplication rec {
   pname = "tryton";
-  version = "7.0.5";
+  version = "7.0.7";
 
   disabled = !python3Packages.isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-NAnNBfwnMky0qbtU3P5+kHJwCj6nfIQCtYgu6nXLcaQ=";
+    sha256 = "sha256-NODeDEgmf/nSKrM+RxAUsUwsbVQT7OSDrTOGVBwOzpw=";
   };
 
   nativeBuildInputs = [
@@ -63,6 +63,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = {
     description = "The client of the Tryton application platform";
+    mainProgram = "tryton";
     longDescription = ''
       The client for Tryton, a three-tier high-level general purpose
       application platform under the license GPL-3 written in Python and using
diff --git a/nixpkgs/pkgs/applications/office/vnote/default.nix b/nixpkgs/pkgs/applications/office/vnote/default.nix
index cd118c3c1d88..4394a58bdb3e 100644
--- a/nixpkgs/pkgs/applications/office/vnote/default.nix
+++ b/nixpkgs/pkgs/applications/office/vnote/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://vnotex.github.io/vnote";
     description = "A pleasant note-taking platform";
+    mainProgram = "vnote";
     changelog = "https://github.com/vnotex/vnote/releases/tag/${finalAttrs.src.rev}";
     license = lib.licenses.lgpl3Plus;
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/nixpkgs/pkgs/applications/office/watson/default.nix b/nixpkgs/pkgs/applications/office/watson/default.nix
index 4d5fd8542f2e..0c04b0ddd52e 100644
--- a/nixpkgs/pkgs/applications/office/watson/default.nix
+++ b/nixpkgs/pkgs/applications/office/watson/default.nix
@@ -35,6 +35,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://tailordev.github.io/Watson/";
     description = "A wonderful CLI to track your time!";
+    mainProgram = "watson";
     license = licenses.mit;
     maintainers = with maintainers; [ mguentner nathyong oxzi ];
   };
diff --git a/nixpkgs/pkgs/applications/office/zotero/default.nix b/nixpkgs/pkgs/applications/office/zotero/default.nix
index a5c49591f086..e343790da2c7 100644
--- a/nixpkgs/pkgs/applications/office/zotero/default.nix
+++ b/nixpkgs/pkgs/applications/office/zotero/default.nix
@@ -41,12 +41,12 @@
 
 stdenv.mkDerivation rec {
   pname = "zotero";
-  version = "6.0.30";
+  version = "6.0.35";
 
   src = fetchurl {
     url =
       "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
-    hash = "sha256-4XQZ1xw9Qtk3SzHMsEUk+HuIYtHDAOMgpwzbAd5QQpU=";
+    hash = "sha256-HAVLmamEPuFf0548/iEXes+f4XnQ7kU1u9hyOYhVyZ0=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/office/zotero/zotero_7.nix b/nixpkgs/pkgs/applications/office/zotero/zotero_7.nix
index 0de12fb2fd14..4d4ea36c5acf 100644
--- a/nixpkgs/pkgs/applications/office/zotero/zotero_7.nix
+++ b/nixpkgs/pkgs/applications/office/zotero/zotero_7.nix
@@ -144,6 +144,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.zotero.org";
     description = "Collect, organize, cite, and share your research sources";
+    mainProgram = "zotero";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/applications/plasma-mobile/plasma-dialer.nix b/nixpkgs/pkgs/applications/plasma-mobile/plasma-dialer.nix
index 1c2223e3c89f..5a5132cd9051 100644
--- a/nixpkgs/pkgs/applications/plasma-mobile/plasma-dialer.nix
+++ b/nixpkgs/pkgs/applications/plasma-mobile/plasma-dialer.nix
@@ -79,6 +79,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Dialer for Plasma Mobile";
+    mainProgram = "plasmaphonedialer";
     homepage = "https://invent.kde.org/plasma-mobile/plasma-dialer";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ samueldr ];
diff --git a/nixpkgs/pkgs/applications/plasma-mobile/plasma-phonebook.nix b/nixpkgs/pkgs/applications/plasma-mobile/plasma-phonebook.nix
index 7e465260da8d..bc186b67d317 100644
--- a/nixpkgs/pkgs/applications/plasma-mobile/plasma-phonebook.nix
+++ b/nixpkgs/pkgs/applications/plasma-mobile/plasma-phonebook.nix
@@ -33,6 +33,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Phone book for Plasma Mobile";
+    mainProgram = "plasma-phonebook";
     homepage = "https://invent.kde.org/plasma-mobile/plasma-phonebook";
     # https://invent.kde.org/plasma-mobile/plasma-phonebook/-/commit/3ac27760417e51c051c5dd44155c3f42dd000e4f
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/plasma-mobile/plasma-settings.nix b/nixpkgs/pkgs/applications/plasma-mobile/plasma-settings.nix
index d44998ebd17d..8e7b20672fa9 100644
--- a/nixpkgs/pkgs/applications/plasma-mobile/plasma-settings.nix
+++ b/nixpkgs/pkgs/applications/plasma-mobile/plasma-settings.nix
@@ -50,6 +50,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Settings application for Plasma Mobile";
+    mainProgram = "plasma-settings";
     homepage = "https://invent.kde.org/plasma-mobile/plasma-settings";
     # https://invent.kde.org/plasma-mobile/plasma-settings/-/commit/a59007f383308503e59498b3036e1483bca26e35
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/applications/plasma-mobile/spacebar.nix b/nixpkgs/pkgs/applications/plasma-mobile/spacebar.nix
index 659b92228d2c..7ae6e7684acc 100644
--- a/nixpkgs/pkgs/applications/plasma-mobile/spacebar.nix
+++ b/nixpkgs/pkgs/applications/plasma-mobile/spacebar.nix
@@ -49,6 +49,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "SMS application for Plasma Mobile";
+    mainProgram = "spacebar";
     homepage = "https://invent.kde.org/plasma-mobile/spacebar";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ samueldr ];
diff --git a/nixpkgs/pkgs/applications/printing/pappl/default.nix b/nixpkgs/pkgs/applications/printing/pappl/default.nix
index 4c0bcfb4ed38..821944387eff 100644
--- a/nixpkgs/pkgs/applications/printing/pappl/default.nix
+++ b/nixpkgs/pkgs/applications/printing/pappl/default.nix
@@ -13,23 +13,15 @@
 
 stdenv.mkDerivation rec {
   pname = "pappl";
-  version = "1.1.0";
+  version = "1.4.6";
 
   src = fetchFromGitHub {
     owner = "michaelrsweet";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-FsmR0fFb9bU9G3oUyJU1eDLcoZ6OQ2//TINlPrW6lU0=";
+    sha256 = "sha256-d7QD6Kz4tBVHGFPBYcvRSzW+EtsNgpfweFvCx3ovfWE=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "file-offset-bits-64-linux.patch";
-      url = "https://github.com/michaelrsweet/pappl/commit/7ec4ce4331b6637c54a37943269e05d15ff6dd47.patch";
-      sha256 = "sha256-x5lriopWw6Mn2qjv19flsleEzPMHU4jYWRy0y6hTL5k=";
-    })
-  ];
-
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [
@@ -63,9 +55,10 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "C-based framework/library for developing CUPS Printer Applications";
+    mainProgram = "pappl-makeresheader";
     homepage = "https://github.com/michaelrsweet/pappl";
     license = licenses.asl20;
     platforms = platforms.linux; # should also work for darwin, but requires additional work
-    maintainers = with maintainers; [ jonringer ];
+    maintainers = with maintainers; [ jonringer ChlorideCull ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/radio/abracadabra/default.nix b/nixpkgs/pkgs/applications/radio/abracadabra/default.nix
index 38c140af9b7c..a9de02d1fa80 100644
--- a/nixpkgs/pkgs/applications/radio/abracadabra/default.nix
+++ b/nixpkgs/pkgs/applications/radio/abracadabra/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "abracadabra";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "KejPi";
     repo = "AbracaDABra";
     rev = "v${version}";
-    hash = "sha256-viB6vRqBvYbFJh6wYs7kIk4sY9SZHRz1KlHJ3DTwUFQ=";
+    hash = "sha256-w/WAcTorLCzqHLwQjbZwaHGytLXHr4eW7Yx768on67Q=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/radio/btlejack/default.nix b/nixpkgs/pkgs/applications/radio/btlejack/default.nix
index c5eb8d5cfe4d..5be832d6d9a6 100644
--- a/nixpkgs/pkgs/applications/radio/btlejack/default.nix
+++ b/nixpkgs/pkgs/applications/radio/btlejack/default.nix
@@ -20,6 +20,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/virtualabs/btlejack";
     description = "Bluetooth Low Energy Swiss-army knife";
+    mainProgram = "btlejack";
     license = licenses.mit;
     maintainers = with maintainers; [ oxzi ];
   };
diff --git a/nixpkgs/pkgs/applications/radio/cloudlog/default.nix b/nixpkgs/pkgs/applications/radio/cloudlog/default.nix
index 31bcea6d588d..862bbcdb5e5b 100644
--- a/nixpkgs/pkgs/applications/radio/cloudlog/default.nix
+++ b/nixpkgs/pkgs/applications/radio/cloudlog/default.nix
@@ -8,13 +8,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "cloudlog";
-  version = "2.6.5";
+  version = "2.6.7";
 
   src = fetchFromGitHub {
     owner = "magicbug";
     repo = "Cloudlog";
     rev = version;
-    hash = "sha256-RxA0joF+hqIL+eElVVwG0kxvzxkt3YsFaomf9GIHtCw=";
+    hash = "sha256-blWMfe/eqeccGE5dWVJWV7L1akWnhO3t5n8HbjlJIcA=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/radio/cqrlog/default.nix b/nixpkgs/pkgs/applications/radio/cqrlog/default.nix
index a167642dd7e7..af1e283249d8 100644
--- a/nixpkgs/pkgs/applications/radio/cqrlog/default.nix
+++ b/nixpkgs/pkgs/applications/radio/cqrlog/default.nix
@@ -95,6 +95,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Linux logging program for amateur radio operators";
+    mainProgram = "cqrlog";
     homepage = "https://www.cqrlog.com/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ shamilton ];
diff --git a/nixpkgs/pkgs/applications/radio/gnuradio/shared.nix b/nixpkgs/pkgs/applications/radio/gnuradio/shared.nix
index cd674e41815e..da3479777d4a 100644
--- a/nixpkgs/pkgs/applications/radio/gnuradio/shared.nix
+++ b/nixpkgs/pkgs/applications/radio/gnuradio/shared.nix
@@ -125,6 +125,7 @@ in {
 
   meta = with lib; {
     description = "Software Defined Radio (SDR) software";
+    mainProgram = "gnuradio-config-info";
     longDescription = ''
       GNU Radio is a free & open-source software development toolkit that
       provides signal processing blocks to implement software radios. It can be
diff --git a/nixpkgs/pkgs/applications/radio/gqrx/default.nix b/nixpkgs/pkgs/applications/radio/gqrx/default.nix
index a4b12cc676fc..1079b2c19641 100644
--- a/nixpkgs/pkgs/applications/radio/gqrx/default.nix
+++ b/nixpkgs/pkgs/applications/radio/gqrx/default.nix
@@ -81,6 +81,7 @@ gnuradioMinimal.pkgs.mkDerivation rec {
 
   meta = with lib; {
     description = "Software defined radio (SDR) receiver";
+    mainProgram = "gqrx";
     longDescription = ''
       Gqrx is a software defined radio receiver powered by GNU Radio and the Qt
       GUI toolkit. It can process I/Q data from many types of input devices,
diff --git a/nixpkgs/pkgs/applications/radio/gridtracker/default.nix b/nixpkgs/pkgs/applications/radio/gridtracker/default.nix
index 31eb90fb2240..5769fbbdf1c8 100644
--- a/nixpkgs/pkgs/applications/radio/gridtracker/default.nix
+++ b/nixpkgs/pkgs/applications/radio/gridtracker/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An amateur radio companion to WSJT-X or JTDX";
+    mainProgram = "gridtracker";
     longDescription = ''
       GridTracker listens to traffic from WSJT-X/JTDX, displays it on a map,
       and has a sophisticated alerting and filtering system for finding and
diff --git a/nixpkgs/pkgs/applications/radio/grig/default.nix b/nixpkgs/pkgs/applications/radio/grig/default.nix
index 33ae8b8ff88b..b288317c03c7 100644
--- a/nixpkgs/pkgs/applications/radio/grig/default.nix
+++ b/nixpkgs/pkgs/applications/radio/grig/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple Ham Radio control (CAT) program based on Hamlib";
+    mainProgram = "grig";
     longDescription = ''
       Grig is a graphical user interface for the Ham Radio Control Libraries.
       It is intended to be simple and generic, presenting the user with the
diff --git a/nixpkgs/pkgs/applications/radio/guglielmo/default.nix b/nixpkgs/pkgs/applications/radio/guglielmo/default.nix
index f449fc061d3b..98cde58e8cff 100644
--- a/nixpkgs/pkgs/applications/radio/guglielmo/default.nix
+++ b/nixpkgs/pkgs/applications/radio/guglielmo/default.nix
@@ -47,6 +47,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Qt based FM / Dab tuner";
+    mainProgram = "guglielmo";
     homepage = "https://github.com/marcogrecopriolo/guglielmo";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.markuskowa ];
diff --git a/nixpkgs/pkgs/applications/radio/inspectrum/default.nix b/nixpkgs/pkgs/applications/radio/inspectrum/default.nix
index fa5eda7b783b..afdf80ede1a0 100644
--- a/nixpkgs/pkgs/applications/radio/inspectrum/default.nix
+++ b/nixpkgs/pkgs/applications/radio/inspectrum/default.nix
@@ -36,6 +36,7 @@ gnuradio3_8Minimal.pkgs.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool for analysing captured signals from sdr receivers";
+    mainProgram = "inspectrum";
     homepage = "https://github.com/miek/inspectrum";
     maintainers = with maintainers; [ mog ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/radio/klog/default.nix b/nixpkgs/pkgs/applications/radio/klog/default.nix
index 248561b3ee13..a9b9c5959a8c 100644
--- a/nixpkgs/pkgs/applications/radio/klog/default.nix
+++ b/nixpkgs/pkgs/applications/radio/klog/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A multiplatform free hamradio logger";
+    mainProgram = "klog";
     longDescription = ''
       KLog provides QSO management, useful QSL management DX-Cluster client, DXCC management,
       ClubLog integration, WSJT-X, DX-Marathon support and much more.
diff --git a/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix b/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix
index 776313d49161..646f8a990249 100644
--- a/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix
+++ b/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Multimon is a digital baseband audio protocol decoder";
+    mainProgram = "multimon-ng";
     longDescription = ''
       multimon-ng a fork of multimon, a digital baseband audio
       protocol decoder for common signaling modes in commercial and
diff --git a/nixpkgs/pkgs/applications/radio/openwebrx/default.nix b/nixpkgs/pkgs/applications/radio/openwebrx/default.nix
index 4ca4d369d79c..b85d02ce042e 100644
--- a/nixpkgs/pkgs/applications/radio/openwebrx/default.nix
+++ b/nixpkgs/pkgs/applications/radio/openwebrx/default.nix
@@ -94,6 +94,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/jketterl/openwebrx";
     description = "A simple DSP library and command-line tool for Software Defined Radio";
+    mainProgram = "openwebrx";
     license = licenses.gpl3Only;
     maintainers = teams.c3d2.members;
   };
diff --git a/nixpkgs/pkgs/applications/radio/qlog/default.nix b/nixpkgs/pkgs/applications/radio/qlog/default.nix
index 0298c3f78367..a752592d412d 100644
--- a/nixpkgs/pkgs/applications/radio/qlog/default.nix
+++ b/nixpkgs/pkgs/applications/radio/qlog/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qlog";
-  version = "0.32.0";
+  version = "0.33.1";
 
   src = fetchFromGitHub {
     owner = "foldynl";
     repo = "QLog";
     rev = "v${version}";
-    hash = "sha256-GU4TdGtVh7CgiPYQJp0D6X9G1ge4Lzp/AaqbtyOWGtw=";
+    hash = "sha256-stPzkCLcjzQT0n1NRGT7YN625RPYhJ9FuMkjtFZwtbA=";
     fetchSubmodules = true;
   };
 
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Amateur radio logbook software";
+    mainProgram = "qlog";
     license = with licenses; [ gpl3Only ];
     homepage = "https://github.com/foldynl/QLog";
     maintainers = with maintainers; [ oliver-koss mkg20001 ];
diff --git a/nixpkgs/pkgs/applications/radio/qradiolink/default.nix b/nixpkgs/pkgs/applications/radio/qradiolink/default.nix
index 78ff080f4032..ab413ca82e38 100644
--- a/nixpkgs/pkgs/applications/radio/qradiolink/default.nix
+++ b/nixpkgs/pkgs/applications/radio/qradiolink/default.nix
@@ -79,8 +79,9 @@ gnuradio3_8.pkgs.mkDerivation rec {
 
   meta = with lib; {
     description = "SDR transceiver application for analog and digital modes";
+    mainProgram = "qradiolink";
     homepage = "http://qradiolink.org/";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     maintainers = [ maintainers.markuskowa ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/applications/radio/qsstv/default.nix b/nixpkgs/pkgs/applications/radio/qsstv/default.nix
index 6e7a28eb7c74..43d9ad13e4b9 100644
--- a/nixpkgs/pkgs/applications/radio/qsstv/default.nix
+++ b/nixpkgs/pkgs/applications/radio/qsstv/default.nix
@@ -26,6 +26,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Qt-based slow-scan TV and fax";
+    mainProgram = "qsstv";
     homepage = "http://users.telenet.be/on4qz/";
     platforms = platforms.linux;
     license = lib.licenses.gpl3;
diff --git a/nixpkgs/pkgs/applications/radio/sdrangel/default.nix b/nixpkgs/pkgs/applications/radio/sdrangel/default.nix
index c20aded859da..aa5b3426d19b 100644
--- a/nixpkgs/pkgs/applications/radio/sdrangel/default.nix
+++ b/nixpkgs/pkgs/applications/radio/sdrangel/default.nix
@@ -52,13 +52,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "sdrangel";
-  version = "7.18.1";
+  version = "7.19.1";
 
   src = fetchFromGitHub {
     owner = "f4exb";
     repo = "sdrangel";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-7sGjO2DyjA/KeAEBTrli+/9QZTKu7VKkJFp3BJk9UVs=";
+    hash = "sha256-nPJaO8GDA2HtbvC7mHzbFMQMs1tRYB44lw2lnUy6Di4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/radio/sigdigger/default.nix b/nixpkgs/pkgs/applications/radio/sigdigger/default.nix
index 4273d148ce28..03f783f970da 100644
--- a/nixpkgs/pkgs/applications/radio/sigdigger/default.nix
+++ b/nixpkgs/pkgs/applications/radio/sigdigger/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Qt-based digital signal analyzer, using Suscan core and Sigutils DSP library";
+    mainProgram = "SigDigger";
     homepage = "https://github.com/BatchDrake/SigDigger";
     license = licenses.gpl3;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/radio/srsran/default.nix b/nixpkgs/pkgs/applications/radio/srsran/default.nix
index 5d03f9bcfdfb..d5897fe32020 100644
--- a/nixpkgs/pkgs/applications/radio/srsran/default.nix
+++ b/nixpkgs/pkgs/applications/radio/srsran/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.srslte.com/";
     description = "Open-source 4G and 5G software radio suite.";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     platforms = with platforms; linux ;
     maintainers = with maintainers; [ hexagonal-sun ];
   };
diff --git a/nixpkgs/pkgs/applications/radio/tqsl/default.nix b/nixpkgs/pkgs/applications/radio/tqsl/default.nix
index a207ba2f1468..a67ddcbee6ab 100644
--- a/nixpkgs/pkgs/applications/radio/tqsl/default.nix
+++ b/nixpkgs/pkgs/applications/radio/tqsl/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Software for using the ARRL Logbook of the World";
+    mainProgram = "tqsl";
     homepage = "https://www.arrl.org/tqsl-download";
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/science/astronomy/astrolog/default.nix b/nixpkgs/pkgs/applications/science/astronomy/astrolog/default.nix
index 743a58e9e053..7ad05e35e24e 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/astrolog/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/astrolog/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.kmein ];
     homepage = "https://astrolog.org/astrolog.htm";
     description = "Freeware astrology program";
+    mainProgram = "astrolog";
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
   };
diff --git a/nixpkgs/pkgs/applications/science/astronomy/calcmysky/default.nix b/nixpkgs/pkgs/applications/science/astronomy/calcmysky/default.nix
index cf762d36de74..9b7f50415ecd 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/calcmysky/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/calcmysky/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "calcmysky";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "10110111";
     repo = "CalcMySky";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oqYOXoIPVqCD3HL7ShNoF89W725hFHX0Ei/yVJNTS5I=";
+    hash = "sha256-AP6YkORbvH8PzF869s2OWbTwTfwMC+RLJx3V3BqVy88=";
   };
 
   nativeBuildInputs = [ cmake wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix b/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix
index d9130223e836..8b40196fdbff 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/celestia/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://celestia.space/";
     description = "Real-time 3D simulation of space";
+    mainProgram = "celestia";
     changelog = "https://github.com/CelestiaProject/Celestia/releases/tag/${version}";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ hjones2199 ];
diff --git a/nixpkgs/pkgs/applications/science/astronomy/gpredict/default.nix b/nixpkgs/pkgs/applications/science/astronomy/gpredict/default.nix
index 1fd2d4ac2adc..56c5a92460dd 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/gpredict/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/gpredict/default.nix
@@ -29,6 +29,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Real time satellite tracking and orbit prediction";
+    mainProgram = "gpredict";
     longDescription = ''
       Gpredict is a real time satellite tracking and orbit prediction program
       written using the GTK widgets. Gpredict is targetted mainly towards ham radio
diff --git a/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix b/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix
index a957bfc988bc..36f58d8d18a1 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/gravit/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     homepage = "https://github.com/gak/gravit";
     description = "Beautiful OpenGL-based gravity simulator";
+    mainProgram = "gravit";
     license = lib.licenses.gpl2Plus;
 
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix b/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix
index 14c684d432c4..ab141666c0aa 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/kstars/default.nix
@@ -40,6 +40,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Virtual planetarium astronomy software";
+    mainProgram = "kstars";
     homepage = "https://kde.org/applications/education/org.kde.kstars";
     longDescription = ''
       It provides an accurate graphical simulation of the night sky, from any location on Earth, at any date and time.
diff --git a/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix b/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
index cad727c75fd6..59472c4b25ce 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -95,6 +95,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta =  {
     description = "Free open-source planetarium";
+    mainProgram = "stellarium";
     homepage = "https://stellarium.org/";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/astronomy/xearth/default.nix b/nixpkgs/pkgs/applications/science/astronomy/xearth/default.nix
index 7fcc588658ae..6123f277fd12 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/xearth/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/xearth/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "sets the X root window to an image of the Earth";
+    mainProgram = "xearth";
     homepage = "https://xearth.org";
     longDescription =
       '' Xearth  sets  the X root window to an image of the Earth, as seen from your favorite vantage point in space,
diff --git a/nixpkgs/pkgs/applications/science/astronomy/xplanet/default.nix b/nixpkgs/pkgs/applications/science/astronomy/xplanet/default.nix
index 94aa92a1b713..677bc0cdf077 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/xplanet/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/xplanet/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Renders an image of the earth or other planets into the X root window";
+    mainProgram = "xplanet";
     homepage = "https://xplanet.sourceforge.net";
     license = licenses.gpl2;
     maintainers = with maintainers; [ lassulus sander ];
diff --git a/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix b/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix
index 4ee8501e8e13..3ec62ada04c9 100644
--- a/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Detects tRNA, mtRNA, and tmRNA genes in nucleotide sequences";
+    mainProgram = "aragorn";
     homepage = "http://www.ansikte.se/ARAGORN/";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.bzizou ];
diff --git a/nixpkgs/pkgs/applications/science/biology/astral/default.nix b/nixpkgs/pkgs/applications/science/biology/astral/default.nix
index 6a9513c6b817..34077949b97d 100644
--- a/nixpkgs/pkgs/applications/science/biology/astral/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/astral/default.nix
@@ -2,59 +2,78 @@
 , stdenvNoCC
 , fetchFromGitHub
 , jdk8
-, makeWrapper
 , jre8
+, strip-nondeterminism
+, makeWrapper
 , zip
 }:
+
 let
   jdk = jdk8;
   jre = jre8;
 in
-stdenvNoCC.mkDerivation rec {
+stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "astral";
   version = "5.7.1";
 
   src = fetchFromGitHub {
     owner = "smirarab";
     repo = "ASTRAL";
-    rev = "v${version}";
-    sha256 = "043w2z6gbrisqirdid022f4b8jps1pp5syi344krv2bis1gjq5sn";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-VhcsX9BxiZ0nISN6Xe4N+kq0iBMCtNhyxDrm9cwXfBA=";
   };
 
-  nativeBuildInputs = [ jdk makeWrapper jre zip ];
+  patches = [
+    # we can't use stripJavaArchivesHook here, because the build process puts a .jar file into a zip file
+    # this patch calls strip-nondeterminism manually
+    ./make-deterministic.patch
+  ];
+
+  nativeBuildInputs = [
+    jdk
+    zip
+    strip-nondeterminism
+    makeWrapper
+  ];
 
   buildPhase = ''
+    runHook preBuild
     patchShebangs ./make.sh
     ./make.sh
+    runHook postBuild
   '';
 
   doCheck = true;
 
   checkPhase = ''
     runHook preCheck
-    java -jar astral.${version}.jar -i main/test_data/song_primates.424.gene.tre
+    java -jar astral.${finalAttrs.version}.jar -i main/test_data/song_primates.424.gene.tre
     runHook postCheck
   '';
 
   installPhase = ''
-    mkdir -p $out/share/lib
-    mkdir -p $out/bin
-    mv astral.${version}.jar $out/share/
-    mv lib/*.jar $out/share/lib
-    mv Astral.${version}.zip $out/share/
-    cp -a  main/test_data $out/share/
+    runHook preInstall
+
+    install -Dm644 astral.${finalAttrs.version}.jar -t $out/share
+    install -Dm644 lib/*.jar -t $out/share/lib
+    install -Dm644 Astral.${finalAttrs.version}.zip -t $out/share
+    cp -a main/test_data $out/share
+
     makeWrapper ${jre}/bin/java $out/bin/astral \
-        --add-flags "-jar $out/share/astral.${version}.jar"
+        --add-flags "-jar $out/share/astral.${finalAttrs.version}.jar"
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     homepage = "https://github.com/smirarab/ASTRAL";
     description = "Tool for estimating an unrooted species tree given a set of unrooted gene trees";
+    mainProgram = "astral";
     sourceProvenance = with sourceTypes; [
       fromSource
-      binaryBytecode  # source bundles dependencies as jars
+      binaryBytecode # source bundles dependencies as jars
     ];
     license = licenses.asl20;
-    maintainers = with maintainers; [ bzizou ];
+    maintainers = with maintainers; [ bzizou tomasajt ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/applications/science/biology/astral/make-deterministic.patch b/nixpkgs/pkgs/applications/science/biology/astral/make-deterministic.patch
new file mode 100644
index 000000000000..940182e2f49f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/astral/make-deterministic.patch
@@ -0,0 +1,21 @@
+diff --git a/make.sh b/make.sh
+index 3ff6529..937b1a2 100644
+--- a/make.sh
++++ b/make.sh
+@@ -17,6 +17,8 @@ jar cvfm ../astral.$version.jar ../manifest.text phylonet/util/BitSet.* phylonet
+ 
+ cd ..
+ 
++strip-nondeterminism --type jar astral.$version.jar
++
+ chmod +x astral.$version.jar
+ sed -e "s/__astral.jar__/astral.$version.jar/g" -e "s/__astral.zip__/Astral.$version.zip/g" README.template.md > README.md
+ sed -e "s/__astral.jar__/astral.$version.jar/g" -e "s/__astral.zip__/Astral.$version.zip/g" astral-tutorial-template.md > astral-tutorial.md
+@@ -32,6 +34,7 @@ ln -s ../astral-tutorial.pdf .
+ cd ..
+ rm -f Astral.$version.zip
+ zip -r Astral.$version.zip Astral 
++strip-nondeterminism --type zip Astral.$version.zip
+ 
+ set +x
+ echo "
diff --git a/nixpkgs/pkgs/applications/science/biology/bamtools/default.nix b/nixpkgs/pkgs/applications/science/biology/bamtools/default.nix
index 05373dafd381..602254e2966a 100644
--- a/nixpkgs/pkgs/applications/science/biology/bamtools/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/bamtools/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "C++ API & command-line toolkit for working with BAM data";
+    mainProgram = "bamtools";
     homepage = "https://github.com/pezmaster31/bamtools";
     changelog = "https://github.com/pezmaster31/bamtools/releases/tag/${finalAttrs.src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/science/biology/bioawk/default.nix b/nixpkgs/pkgs/applications/science/biology/bioawk/default.nix
index cfbb1a551fac..f7da30fc4f72 100644
--- a/nixpkgs/pkgs/applications/science/biology/bioawk/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/bioawk/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "BWK awk modified for biological data";
+    mainProgram = "bioawk";
     homepage = "https://github.com/lh3/bioawk";
     license = licenses.hpnd;
     maintainers = with maintainers; [ natsukium ];
diff --git a/nixpkgs/pkgs/applications/science/biology/bwa-mem2/default.nix b/nixpkgs/pkgs/applications/science/biology/bwa-mem2/default.nix
index b34b6dc8c90f..c339baf446d2 100644
--- a/nixpkgs/pkgs/applications/science/biology/bwa-mem2/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/bwa-mem2/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Next version of the bwa-mem algorithm in bwa, a software package for mapping low-divergent sequences against a large reference genome";
+    mainProgram = "bwa-mem2";
     license = licenses.mit;
     homepage = "https://github.com/bwa-mem2/bwa-mem2/";
     changelog = "https://github.com/bwa-mem2/bwa-mem2/blob/${finalAttrs.src.rev}/NEWS.md";
diff --git a/nixpkgs/pkgs/applications/science/biology/bwa/default.nix b/nixpkgs/pkgs/applications/science/biology/bwa/default.nix
index 4786f25beb50..8c883e2617bf 100644
--- a/nixpkgs/pkgs/applications/science/biology/bwa/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/bwa/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A software package for mapping low-divergent sequences against a large reference genome, such as the human genome";
+    mainProgram = "bwa";
     license     = licenses.gpl3Plus;
     homepage    = "https://bio-bwa.sourceforge.net/";
     maintainers = with maintainers; [ luispedro ];
diff --git a/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix b/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix
index a131c6645499..d7d23dd2d46e 100644
--- a/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/cmtk/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Computational Morphometry Toolkit";
+    mainProgram = "cmtk";
     longDescription = ''A software toolkit for computational morphometry of
       biomedical images, CMTK comprises a set of command line tools and a
       back-end general-purpose library for processing and I/O'';
diff --git a/nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix b/nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix
index fe1c1f5511d1..d9092b9eeb11 100644
--- a/nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/conglomerate/default.nix
@@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
     description = "More command-line utilities for working with MINC files";
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.unix;
-    license   = licenses.free;
+    license   = licenses.hpndUc;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix b/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix
index 605ecaadf648..a7f30dbc075d 100644
--- a/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/dcm2niix/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "DICOM to NIfTI converter";
+    mainProgram = "dcm2niix";
     longDescription = ''
       dcm2niix is designed to convert neuroimaging data from the DICOM format to the NIfTI format.
     '';
diff --git a/nixpkgs/pkgs/applications/science/biology/deeptools/default.nix b/nixpkgs/pkgs/applications/science/biology/deeptools/default.nix
index a7a1f77dfe90..2abd0825e6e3 100644
--- a/nixpkgs/pkgs/applications/science/biology/deeptools/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/deeptools/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "deeptools";
-  version = "3.5.4";
+  version = "3.5.5";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "deeptools";
     repo = "deepTools";
-    rev = version;
-    hash = "sha256-A8YdlMptmJyxWW0EYLjXFIWjIO/mttEC7VYdlCe9MaI=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-2kSlL7Y5f/FjVtStnmz+GlTw2oymrtxOCaXlqgbQ7FU=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/nixpkgs/pkgs/applications/science/biology/delly/default.nix b/nixpkgs/pkgs/applications/science/biology/delly/default.nix
index b483b3d57bef..34ea942b4f5c 100644
--- a/nixpkgs/pkgs/applications/science/biology/delly/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/delly/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Structural variant caller for mapped DNA sequenced data";
+    mainProgram = "delly";
     license = licenses.bsd3;
     maintainers = with maintainers; [ scalavision ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/biology/diamond/default.nix b/nixpkgs/pkgs/applications/science/biology/diamond/default.nix
index 3349c0392d08..f3afff0f5eb7 100644
--- a/nixpkgs/pkgs/applications/science/biology/diamond/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/diamond/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Accelerated BLAST compatible local sequence aligner";
+    mainProgram = "diamond";
     longDescription = ''
       DIAMOND is a sequence aligner for protein and translated DNA searches, designed for high performance analysis of big sequence data. The key features are:
       - Pairwise alignment of proteins and translated DNA at 100x-10,000x speed of BLAST.
diff --git a/nixpkgs/pkgs/applications/science/biology/dssp/default.nix b/nixpkgs/pkgs/applications/science/biology/dssp/default.nix
index 006b46db9974..6c7157a91764 100644
--- a/nixpkgs/pkgs/applications/science/biology/dssp/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/dssp/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Calculate the most likely secondary structure assignment given the 3D structure of a protein";
+    mainProgram = "mkdssp";
     homepage = "https://github.com/PDB-REDO/dssp";
     changelog = "https://github.com/PDB-REDO/libcifpp/releases/tag/${finalAttrs.src.rev}";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix b/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix
index fe4a3e49930c..c306cfd71c39 100644
--- a/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/est-sfs/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://sourceforge.net/projects/est-usfs";
     description = "Estimate the unfolded site frequency spectrum and ancestral states";
+    mainProgram = "est-sfs";
     license = licenses.gpl3;
     maintainers = [ maintainers.bzizou ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/science/biology/fastp/default.nix b/nixpkgs/pkgs/applications/science/biology/fastp/default.nix
index e7fc0d4a35f1..0495da0e3c3d 100644
--- a/nixpkgs/pkgs/applications/science/biology/fastp/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/fastp/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Ultra-fast all-in-one FASTQ preprocessor";
+    mainProgram = "fastp";
     license = licenses.mit;
     homepage = "https://github.com/OpenGene/fastp";
     maintainers = with maintainers; [ jbedo ];
diff --git a/nixpkgs/pkgs/applications/science/biology/febio-studio/default.nix b/nixpkgs/pkgs/applications/science/biology/febio-studio/default.nix
index 550d221c74eb..708bd0f4305a 100644
--- a/nixpkgs/pkgs/applications/science/biology/febio-studio/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/febio-studio/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "FEBio Suite Solver";
+    mainProgram = "FEBioStudio";
     license = with licenses; [ mit ];
     homepage = "https://febio.org/";
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/biology/flywheel-cli/default.nix b/nixpkgs/pkgs/applications/science/biology/flywheel-cli/default.nix
index 254a3c011d27..51600d31c513 100644
--- a/nixpkgs/pkgs/applications/science/biology/flywheel-cli/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/flywheel-cli/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library and command line interface for interacting with a Flywheel site";
+    mainProgram = "fw";
     homepage = "https://gitlab.com/flywheel-io/public/python-cli";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/science/biology/genmap/default.nix b/nixpkgs/pkgs/applications/science/biology/genmap/default.nix
index c6f9cf1fb193..235135cb6050 100644
--- a/nixpkgs/pkgs/applications/science/biology/genmap/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/genmap/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Ultra-fast computation of genome mappability";
+    mainProgram = "genmap";
     license = lib.licenses.bsd3;
     homepage = "https://github.com/cpockrandt/genmap";
     maintainers = with lib.maintainers; [ jbedo ];
diff --git a/nixpkgs/pkgs/applications/science/biology/igv/default.nix b/nixpkgs/pkgs/applications/science/biology/igv/default.nix
index 6959a14df250..0d8d87ac4109 100644
--- a/nixpkgs/pkgs/applications/science/biology/igv/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/igv/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "igv";
-  version = "2.17.2";
+  version = "2.17.3";
   src = fetchzip {
     url = "https://data.broadinstitute.org/igv/projects/downloads/${lib.versions.majorMinor version}/IGV_${version}.zip";
-    sha256 = "sha256-KMLy+YxRT5EDZhfqkZRHrPR9BmBg6hFWLSNwJhZ2I+k=";
+    sha256 = "sha256-SGqkWBv4nol0+lnGN7wBHJvndcIqZ5+Wt1wAcXA42cU=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/science/biology/iqtree/default.nix b/nixpkgs/pkgs/applications/science/biology/iqtree/default.nix
index 37a8a58a92e1..17b2ba9f9bde 100644
--- a/nixpkgs/pkgs/applications/science/biology/iqtree/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/iqtree/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.iqtree.org/";
     description = "Efficient and versatile phylogenomic software by maximum likelihood";
+    mainProgram = "iqtree2";
     license = licenses.lgpl2;
     maintainers = with maintainers; [ bzizou ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
diff --git a/nixpkgs/pkgs/applications/science/biology/itsx/default.nix b/nixpkgs/pkgs/applications/science/biology/itsx/default.nix
index 843f0df57924..366b4add2ed7 100644
--- a/nixpkgs/pkgs/applications/science/biology/itsx/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/itsx/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Improved software detection and extraction of ITS1 and ITS2 from ribosomal ITS sequences of fungi and other eukaryotes for use in environmental sequencing";
+    mainProgram = "ITSx";
     homepage = "https://microbiology.se/software/itsx/";
     license = licenses.gpl3;
     maintainers = [ maintainers.bzizou ];
diff --git a/nixpkgs/pkgs/applications/science/biology/jbrowse/default.nix b/nixpkgs/pkgs/applications/science/biology/jbrowse/default.nix
index 3ed6a885aa75..15694ae3e638 100644
--- a/nixpkgs/pkgs/applications/science/biology/jbrowse/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/jbrowse/default.nix
@@ -31,6 +31,7 @@ appimageTools.wrapType2 {
 
   meta = with lib; {
     description = "The next-generation genome browser";
+    mainProgram = "jbrowse-desktop";
     homepage = "https://jbrowse.org/jb2/";
     license = licenses.asl20;
     maintainers = with maintainers; [ benwbooth ];
diff --git a/nixpkgs/pkgs/applications/science/biology/kalign/default.nix b/nixpkgs/pkgs/applications/science/biology/kalign/default.nix
index 3ca83978d969..f26b679f799d 100644
--- a/nixpkgs/pkgs/applications/science/biology/kalign/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/kalign/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "A fast multiple sequence alignment program";
+    mainProgram = "kalign";
     homepage = "https://github.com/TimoLassmann/kalign";
     changelog = "https://github.com/TimoLassmann/kalign/releases/tag/${finalAttrs.src.rev}";
     license = lib.licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix b/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix
index a193fa59238f..55c555e387de 100644
--- a/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/kallisto/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Program for quantifying abundances of transcripts from RNA-Seq data";
+    mainProgram = "kallisto";
     homepage = "https://pachterlab.github.io/kallisto";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/science/biology/macs2/default.nix b/nixpkgs/pkgs/applications/science/biology/macs2/default.nix
index 8884d41d9064..73f12af6a605 100644
--- a/nixpkgs/pkgs/applications/science/biology/macs2/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/macs2/default.nix
@@ -46,6 +46,7 @@ python3.pkgs.buildPythonPackage rec {
 
   meta = with lib; {
     description = "Model-based Analysis for ChIP-Seq";
+    mainProgram = "macs2";
     homepage = "https://github.com/macs3-project/MACS/";
     changelog = "https://github.com/macs3-project/MACS/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/applications/science/biology/macse/default.nix b/nixpkgs/pkgs/applications/science/biology/macse/default.nix
index 2ac09ca21ab6..06937f7e645e 100644
--- a/nixpkgs/pkgs/applications/science/biology/macse/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/macse/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Multiple alignment of coding sequences";
+    mainProgram = "macse";
     homepage = "https://bioweb.supagro.inra.fr/macse/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/applications/science/biology/mafft/default.nix b/nixpkgs/pkgs/applications/science/biology/mafft/default.nix
index e9acd1c88b66..f2e3ead2e913 100644
--- a/nixpkgs/pkgs/applications/science/biology/mafft/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/mafft/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mafft";
-  version = "7.520";
+  version = "7.525";
 
   src = fetchFromGitLab {
     owner = "sysimm";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-H+EcKahJWwidAx+IUT4uCZEty+S8hUeMSB8VbTu5SmQ=";
+    sha256 = "sha256-ckBmvFssYAmYcBHAEftjQqBV0MB0theGfemaPx3XUws=";
   };
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/applications/science/biology/minia/default.nix b/nixpkgs/pkgs/applications/science/biology/minia/default.nix
index 023a05d7504f..3665639a2cd9 100644
--- a/nixpkgs/pkgs/applications/science/biology/minia/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/minia/default.nix
@@ -25,8 +25,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Short read genome assembler";
+    mainProgram = "minia";
     homepage = "https://github.com/GATB/minia";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     maintainers = with maintainers; [ jbedo ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/nixpkgs/pkgs/applications/science/biology/minimap2/default.nix b/nixpkgs/pkgs/applications/science/biology/minimap2/default.nix
index 35c1b076d7eb..eeb31dee0538 100644
--- a/nixpkgs/pkgs/applications/science/biology/minimap2/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/minimap2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "minimap2";
-  version = "2.26";
+  version = "2.27";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "lh3";
     rev = "v${version}";
-    sha256 = "sha256-vK8Z/j6Ndu1vMFYPPzViP4evtIhyVVFwsfTqNCYnXpQ=";
+    sha256 = "sha256-F6IJrYD2dk+5bKKVIahLiNnD/Hd/CjNQQd9zz0Gkans=";
   };
 
   buildInputs = [ zlib ];
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A versatile pairwise aligner for genomic and spliced nucleotide sequences";
+    mainProgram = "minimap2";
     homepage = "https://lh3.github.io/minimap2";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/science/biology/mmseqs2/default.nix b/nixpkgs/pkgs/applications/science/biology/mmseqs2/default.nix
index 3e39fcb2918b..18acee7a5f14 100644
--- a/nixpkgs/pkgs/applications/science/biology/mmseqs2/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/mmseqs2/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Ultra fast and sensitive sequence search and clustering suite";
+    mainProgram = "mmseqs";
     homepage = "https://mmseqs.com/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ natsukium ];
diff --git a/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix b/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix
index e4c2bbe65652..54f5b9bbb370 100644
--- a/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Bayesian Inference of Phylogeny";
+    mainProgram = "mb";
     longDescription = ''
       Bayesian inference of phylogeny is based upon a
       quantity called the posterior probability distribution of trees, which is
diff --git a/nixpkgs/pkgs/applications/science/biology/muscle/default.nix b/nixpkgs/pkgs/applications/science/biology/muscle/default.nix
index 366d0278227d..cdcf6c7b50aa 100644
--- a/nixpkgs/pkgs/applications/science/biology/muscle/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/muscle/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Multiple sequence alignment with top benchmark scores scalable to thousands of sequences";
+    mainProgram = "muscle";
     license     = licenses.gpl3Plus;
     homepage    = "https://www.drive5.com/muscle/";
     maintainers = with maintainers; [ unode thyol ];
diff --git a/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix b/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix
index 9bf579a80c3b..f415c9c39141 100644
--- a/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix
+++ b/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix
@@ -27,6 +27,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib ; {
     description = "Management of analyses and data in DNA metabarcoding";
+    mainProgram = "obi";
     homepage = "https://git.metabarcoding.org/obitools/obitools3";
     license = licenses.cecill20;
     maintainers = [ maintainers.bzizou ];
diff --git a/nixpkgs/pkgs/applications/science/biology/octopus/default.nix b/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
index 0090ca82d6c3..c594108c6f47 100644
--- a/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Bayesian haplotype-based mutation calling";
+    mainProgram = "octopus";
     license = licenses.mit;
     homepage = "https://github.com/luntergroup/octopus";
     maintainers = with maintainers; [ jbedo ];
diff --git a/nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix b/nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix
index 00fd0ff0083e..0e65bed4cf3e 100644
--- a/nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/plink-ng/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
   meta = {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "A comprehensive update to the PLINK association analysis toolset";
+    mainProgram = "plink";
     homepage = "https://www.cog-genomics.org/plink2";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix b/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix
index 28a21522c6b8..cd83a723f91e 100644
--- a/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/prodigal/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fast, reliable protein-coding gene prediction for prokaryotic genomes";
+    mainProgram = "prodigal";
     homepage = "https://github.com/hyattpd/Prodigal";
     license = licenses.gpl3;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/science/biology/repseek/default.nix b/nixpkgs/pkgs/applications/science/biology/repseek/default.nix
index 5966c83b7a5f..e5e0193f7911 100644
--- a/nixpkgs/pkgs/applications/science/biology/repseek/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/repseek/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Tool to retrieve approximate repeats from large DNA sequences";
+    mainProgram = "repseek";
     homepage = "https://bioinfo.mnhn.fr/abi/public/RepSeek";
     maintainers = [ lib.maintainers.bzizou ];
     license = lib.licenses.lgpl21;
diff --git a/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix b/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix
index e1722a7086d8..b6635f02aacd 100644
--- a/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/sambamba/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "SAM/BAM processing tool";
+    mainProgram = "sambamba";
     homepage = "https://lomereiter.github.io/sambamba/";
     maintainers = with maintainers; [ jbedo ];
     license = with licenses; gpl2;
diff --git a/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix b/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix
index 4315dd2767e1..f16d0e42d8ef 100644
--- a/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/samblaster/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool for marking duplicates and extracting discordant/split reads from SAM/BAM files";
+    mainProgram = "samblaster";
     maintainers = with maintainers; [ jbedo ];
     license = licenses.mit;
     homepage = "https://github.com/GregoryFaust/samblaster";
diff --git a/nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix b/nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix
index 2472e4976cad..edb3a9a9da5b 100644
--- a/nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix
+++ b/nixpkgs/pkgs/applications/science/biology/samtools/samtools_0_1_19.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tools for manipulating SAM/BAM/CRAM format";
+    mainProgram = "samtools";
     license = licenses.mit;
     homepage = "https://samtools.sourceforge.net/";
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/biology/seaview/default.nix b/nixpkgs/pkgs/applications/science/biology/seaview/default.nix
index 640d2f5ae416..06549748018d 100644
--- a/nixpkgs/pkgs/applications/science/biology/seaview/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/seaview/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GUI for molecular phylogeny";
+    mainProgram = "seaview";
     longDescription = ''
       SeaView is a multiplatform, graphical user interface for multiple sequence alignment and molecular phylogeny.
         - SeaView reads and writes various file formats (NEXUS, MSF, CLUSTAL, FASTA, PHYLIP, MASE, Newick) of DNA and protein sequences and of phylogenetic trees.
diff --git a/nixpkgs/pkgs/applications/science/biology/seqkit/default.nix b/nixpkgs/pkgs/applications/science/biology/seqkit/default.nix
index 9682265b9342..1c572ba56354 100644
--- a/nixpkgs/pkgs/applications/science/biology/seqkit/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/seqkit/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "seqkit";
-  version = "2.7.0";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "shenwei356";
     repo = "seqkit";
     rev = "v${version}";
-    sha256 = "sha256-tnVkFING9BH/iNOdKeCsSk4ln2fLUUpI5ASaQ7CCdrg=";
+    sha256 = "sha256-JsrmRUbSNCFJ58tIblKq+VRXCD1mBeCAcosDGiVb5Gs=";
   };
 
-  vendorHash = "sha256-o7XGBI05BK7kOBagVV2eteJmkzLTmio41KOm46GdzDU=";
+  vendorHash = "sha256-0//kySYhNmfiwiys/Ku0/8RzKpnxO0+byD8pcIkvDY0=";
 
   meta = with lib; {
     description = "cross-platform and ultrafast toolkit for FASTA/Q file manipulation";
diff --git a/nixpkgs/pkgs/applications/science/biology/seqtk/default.nix b/nixpkgs/pkgs/applications/science/biology/seqtk/default.nix
index 90bd4bb3c65e..417bec9c062f 100644
--- a/nixpkgs/pkgs/applications/science/biology/seqtk/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/seqtk/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Toolkit for processing sequences in FASTA/Q formats";
+    mainProgram = "seqtk";
     license = licenses.mit;
     homepage = "https://github.com/lh3/seqtk";
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix b/nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix
index 034409cfb013..553725fb4566 100644
--- a/nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/somatic-sniper/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Identify single nucleotide positions that are different between tumor and normal";
+    mainProgram = "bam-somaticsniper";
     license = licenses.mit;
     homepage = "https://github.com/genome/somatic-sniper";
     maintainers = with maintainers; [ jbedo ];
diff --git a/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix b/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix
index bfd6d20f1384..d47aae9ce665 100644
--- a/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tools for filtering, mapping, and OTU-picking from shotgun genomics data";
+    mainProgram = "sortmerna";
     license = licenses.lgpl3;
     platforms = platforms.x86_64;
     homepage = "https://bioinfo.lifl.fr/RNA/sortmerna/";
diff --git a/nixpkgs/pkgs/applications/science/biology/svaba/default.nix b/nixpkgs/pkgs/applications/science/biology/svaba/default.nix
index d36c4b668ec3..fec5a5a3b92d 100644
--- a/nixpkgs/pkgs/applications/science/biology/svaba/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/svaba/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "Structural variant and INDEL caller for DNA sequencing data, using genome-wide local assembly";
+    mainProgram = "svaba";
     license = licenses.gpl3;
     homepage = "https://github.com/walaj/svaba";
     maintainers = with maintainers; [ scalavision ];
diff --git a/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix b/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix
index a046aee1c6c3..879f9b95d846 100644
--- a/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix
@@ -40,6 +40,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Find and characterise transposable element insertions";
+    mainProgram = "tebreak";
     homepage = "https://github.com/adamewing/tebreak";
     license = licenses.mit;
     maintainers = with maintainers; [ jbedo ];
diff --git a/nixpkgs/pkgs/applications/science/biology/trimmomatic/default.nix b/nixpkgs/pkgs/applications/science/biology/trimmomatic/default.nix
index 53cff76badce..db19278eaa47 100644
--- a/nixpkgs/pkgs/applications/science/biology/trimmomatic/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/trimmomatic/default.nix
@@ -5,7 +5,7 @@
 , jdk
 , jre
 , makeWrapper
-, canonicalize-jars-hook
+, stripJavaArchivesHook
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
     ant
     jdk
     makeWrapper
-    canonicalize-jars-hook
+    stripJavaArchivesHook
   ];
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/applications/science/biology/veryfasttree/default.nix b/nixpkgs/pkgs/applications/science/biology/veryfasttree/default.nix
index 63597a75d494..6c054fecd742 100644
--- a/nixpkgs/pkgs/applications/science/biology/veryfasttree/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/veryfasttree/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Speeding up the estimation of phylogenetic trees for large alignments through parallelization and vectorization strategies";
+    mainProgram = "VeryFastTree";
     homepage = "https://github.com/citiususc/veryfasttree";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ thyol ];
diff --git a/nixpkgs/pkgs/applications/science/chemistry/apbs/default.nix b/nixpkgs/pkgs/applications/science/chemistry/apbs/default.nix
index 228c77ee5c0e..ec8f8e7ffbf6 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/apbs/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/apbs/default.nix
@@ -104,6 +104,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Software for biomolecular electrostatics and solvation calculations";
+    mainProgram = "apbs";
     homepage = "https://www.poissonboltzmann.org/";
     changelog = "https://github.com/Electrostatics/apbs/releases/tag/v${finalAttrs.version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/applications/science/chemistry/autodock-vina/default.nix b/nixpkgs/pkgs/applications/science/chemistry/autodock-vina/default.nix
index 499bedb929ff..d56b8a02a20d 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/autodock-vina/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/autodock-vina/default.nix
@@ -20,10 +20,10 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-yguUMEX0tn75wKrPKyqlCYbBFaEwC5b1s3k9xept1Fw=";
   };
 
-  sourceRoot =
-    if stdenv.isDarwin
-    then "source/build/mac/release"
-    else "source/build/linux/release";
+  sourceRoot = "${finalAttrs.src.name}/build/${
+    if stdenv.hostPlatform.isDarwin then "mac"
+    else "linux"
+  }/release";
 
   buildInputs = [
     boost'
diff --git a/nixpkgs/pkgs/applications/science/chemistry/avogadro2/default.nix b/nixpkgs/pkgs/applications/science/chemistry/avogadro2/default.nix
index 7b8d69681f46..7ee42c1a793c 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/avogadro2/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/avogadro2/default.nix
@@ -41,6 +41,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Molecule editor and visualizer";
+    mainProgram = "avogadro2";
     maintainers = with maintainers; [ sheepforce ];
     homepage = "https://github.com/OpenChemistry/avogadroapp";
     platforms = platforms.mesaPlatforms;
diff --git a/nixpkgs/pkgs/applications/science/chemistry/d-seams/default.nix b/nixpkgs/pkgs/applications/science/chemistry/d-seams/default.nix
index 260b1e24a082..5b5d8cfbd9d4 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/d-seams/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/d-seams/default.nix
@@ -25,6 +25,7 @@ clangStdenv.mkDerivation rec {
   meta = with lib; {
     description =
       "d-SEAMS: Deferred Structural Elucidation Analysis for Molecular Simulations";
+    mainProgram = "yodaStruct";
     longDescription = ''
       d-SEAMS, is a free and open-source postprocessing engine for the analysis
       of molecular dynamics trajectories, which is specifically able to
diff --git a/nixpkgs/pkgs/applications/science/chemistry/element/default.nix b/nixpkgs/pkgs/applications/science/chemistry/element/default.nix
index c18fc9a563b9..c3c4a0fe582e 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/element/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/element/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The periodic table on the command line";
+    mainProgram = "element";
     homepage = "https://github.com/gennaro-tedesco/element";
     license = licenses.asl20;
     maintainers = [ maintainers.j0hax ];
diff --git a/nixpkgs/pkgs/applications/science/chemistry/ergoscf/default.nix b/nixpkgs/pkgs/applications/science/chemistry/ergoscf/default.nix
index 5343f102b249..3ee33cf19b74 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/ergoscf/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/ergoscf/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Quantum chemistry program for large-scale self-consistent field calculations";
+    mainProgram = "ergo";
     homepage = "http://www.ergoscf.org";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.markuskowa ];
diff --git a/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix b/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
index 0af60d240f69..ee3ab5f1f3a5 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
      description = "A Java 3D viewer for chemical structures";
+     mainProgram = "jmol";
      homepage = "https://sourceforge.net/projects/jmol";
      sourceProvenance = with sourceTypes; [ binaryBytecode ];
      license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/applications/science/chemistry/nwchem/default.nix b/nixpkgs/pkgs/applications/science/chemistry/nwchem/default.nix
index a7d9462a7fbd..61266a9f0285 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/nwchem/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/nwchem/default.nix
@@ -208,6 +208,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Open Source High-Performance Computational Chemistry";
+    mainProgram = "nwchem";
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ sheepforce markuskowa ];
     homepage = "https://nwchemgit.github.io";
diff --git a/nixpkgs/pkgs/applications/science/chemistry/pymol/default.nix b/nixpkgs/pkgs/applications/science/chemistry/pymol/default.nix
index 553e82eed8fb..0e4728dd65d6 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/pymol/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/pymol/default.nix
@@ -71,6 +71,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     inherit description;
+    mainProgram = "pymol";
     homepage = "https://www.pymol.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ samlich ];
diff --git a/nixpkgs/pkgs/applications/science/chemistry/siesta/default.nix b/nixpkgs/pkgs/applications/science/chemistry/siesta/default.nix
index c0e0e874cbd6..02586dea2e29 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/siesta/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/siesta/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A first-principles materials simulation code using DFT";
+    mainProgram = "siesta";
     longDescription = ''
          SIESTA is both a method and its computer program
          implementation, to perform efficient electronic structure
diff --git a/nixpkgs/pkgs/applications/science/chemistry/wxmacmolplt/default.nix b/nixpkgs/pkgs/applications/science/chemistry/wxmacmolplt/default.nix
index e2a4fdf0cb18..ae6c0df87905 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/wxmacmolplt/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/wxmacmolplt/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical user interface for GAMESS-US";
+    mainProgram = "wxmacmolplt";
     homepage = "https://brettbode.github.io/wxmacmolplt/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/science/electronics/appcsxcad/default.nix b/nixpkgs/pkgs/applications/science/electronics/appcsxcad/default.nix
index 2e882aff361d..c401e150f35e 100644
--- a/nixpkgs/pkgs/applications/science/electronics/appcsxcad/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/appcsxcad/default.nix
@@ -46,6 +46,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Minimal Application using the QCSXCAD library";
+    mainProgram = "AppCSXCAD";
     homepage = "https://github.com/thliebig/AppCSXCAD";
     license = licenses.gpl3;
     maintainers = with maintainers; [ matthuszagh ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix b/nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix
index 631f44e80633..9d9498df00da 100644
--- a/nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/archimedes/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "GNU package for semiconductor device simulations";
+    mainProgram = "archimedes";
     homepage = "https://www.gnu.org/software/archimedes";
     license = lib.licenses.gpl2Plus;
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/applications/science/electronics/caneda/default.nix b/nixpkgs/pkgs/applications/science/electronics/caneda/default.nix
index 1adac4832a13..4a4cf61c7f65 100644
--- a/nixpkgs/pkgs/applications/science/electronics/caneda/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/caneda/default.nix
@@ -16,6 +16,7 @@ mkDerivation rec {
 
   meta = {
     description = "Open source EDA software focused on easy of use and portability";
+    mainProgram = "caneda";
     homepage = "http://caneda.org";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [viric];
diff --git a/nixpkgs/pkgs/applications/science/electronics/dataexplorer/default.nix b/nixpkgs/pkgs/applications/science/electronics/dataexplorer/default.nix
index 8fd9dcc5eaa8..aa471d2bfcaf 100644
--- a/nixpkgs/pkgs/applications/science/electronics/dataexplorer/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/dataexplorer/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dataexplorer";
-  version = "3.8.3";
+  version = "3.8.5";
 
   src = fetchurl {
     url = "mirror://savannah/dataexplorer/dataexplorer-${version}-src.tar.gz";
-    sha256 = "sha256-vU9klb6Mweg8yxnClsIdelG4uW92if64SJ7UHumYYbs=";
+    sha256 = "sha256-b68xIZNbzHdPyZwLngcnjcoBtI6AeTdrblz/qx/HbGQ=";
   };
 
   nativeBuildInputs = [ ant makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/degate/default.nix b/nixpkgs/pkgs/applications/science/electronics/degate/default.nix
index 2aa20aec6503..30ded5d1354f 100644
--- a/nixpkgs/pkgs/applications/science/electronics/degate/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/degate/default.nix
@@ -67,6 +67,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A modern and open-source cross-platform software for chips reverse engineering";
+    mainProgram = "Degate";
     homepage = "https://degate.readthedocs.io/";
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/electronics/digital/default.nix b/nixpkgs/pkgs/applications/science/electronics/digital/default.nix
index ed90b03dbc3e..41deecbb6224 100644
--- a/nixpkgs/pkgs/applications/science/electronics/digital/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/digital/default.nix
@@ -60,6 +60,7 @@ maven.buildMavenPackage rec {
   meta = with lib; {
     homepage = "https://github.com/hneemann/Digital";
     description = pkgDescription;
+    mainProgram = "digital";
     license = licenses.gpl3Only;
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ Dettorer ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/diylc/default.nix b/nixpkgs/pkgs/applications/science/electronics/diylc/default.nix
index 8530e6927fe9..ced8c72d2155 100644
--- a/nixpkgs/pkgs/applications/science/electronics/diylc/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/diylc/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Multi platform circuit layout and schematic drawing tool";
+    mainProgram = "diylc";
     homepage = "https://bancika.github.io/diy-layout-creator/";
     changelog = "https://github.com/bancika/diy-layout-creator/releases";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix b/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix
index ec53e976aec5..3c8e7ad19064 100644
--- a/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/dsview/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A GUI program for supporting various instruments from DreamSourceLab, including logic analyzer, oscilloscope, etc";
+    mainProgram = "DSView";
     homepage = "https://www.dreamsourcelab.com/";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/electronics/dwfv/default.nix b/nixpkgs/pkgs/applications/science/electronics/dwfv/default.nix
index ed340271f262..2d88e2647dfd 100644
--- a/nixpkgs/pkgs/applications/science/electronics/dwfv/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/dwfv/default.nix
@@ -13,6 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple digital waveform viewer with vi-like key bindings";
+    mainProgram = "dwfv";
     homepage = "https://github.com/psurply/dwfv";
     license = licenses.mit;
     maintainers = with maintainers; [ newam ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/fped/default.nix b/nixpkgs/pkgs/applications/science/electronics/fped/default.nix
index 138d45c787cd..6d10426b298a 100644
--- a/nixpkgs/pkgs/applications/science/electronics/fped/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/fped/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "An editor that allows the interactive creation of footprints electronic components";
+    mainProgram = "fped";
     homepage = "http://projects.qi-hardware.com/index.php/p/fped/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ expipiplus1 ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix b/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix
index efe70f125d04..955edb9b59ae 100644
--- a/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix
@@ -54,28 +54,29 @@ stdenv.mkDerivation {
     qtbase
     qtsvg
     qtserialport
-    qtwayland
     qt5compat
     boost
     libgit2
     quazip
     libngspice
     clipper
+  ] ++ lib.optionals stdenv.isLinux [
+    qtwayland
   ];
 
   postPatch = ''
     # Use packaged quazip, libgit and ngspice
     sed -i "/pri\/quazipdetect.pri/d" phoenix.pro
     sed -i "/pri\/spicedetect.pri/d" phoenix.pro
-    substituteInPlace phoenix.pro \
-      --replace 'LIBGIT_STATIC = true' 'LIBGIT_STATIC = false'
+    substituteInPlace pri/libgit2detect.pri \
+      --replace-fail 'LIBGIT_STATIC = true' 'LIBGIT_STATIC = false'
 
     #TODO: Do not hardcode SHA.
     substituteInPlace src/fapplication.cpp \
-      --replace 'PartsChecker::getSha(dir.absolutePath());' '"${partsSha}";'
+      --replace-fail 'PartsChecker::getSha(dir.absolutePath());' '"${partsSha}";'
 
     substituteInPlace phoenix.pro \
-      --replace "6.5.10" "${qtbase.version}"
+      --replace-fail "6.5.10" "${qtbase.version}"
 
     mkdir parts
     cp -a ${parts}/* parts/
@@ -92,6 +93,13 @@ stdenv.mkDerivation {
     "phoenix.pro"
   ];
 
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    mkdir $out/Applications
+    mv $out/bin/Fritzing.app $out/Applications/Fritzing.app
+    cp FritzingInfo.plist $out/Applications/Fritzing.app/Contents/Info.plist
+    makeWrapper $out/Applications/Fritzing.app/Contents/MacOS/Fritzing $out/bin/Fritzing
+  '';
+
   postFixup = ''
     # generate the parts.db file
     QT_QPA_PLATFORM=offscreen "$out/bin/Fritzing" \
@@ -105,7 +113,7 @@ stdenv.mkDerivation {
     homepage = "https://fritzing.org/";
     license = with licenses; [ gpl3 cc-by-sa-30 ];
     maintainers = with maintainers; [ robberer muscaln ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     mainProgram = "Fritzing";
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/electronics/gaw/default.nix b/nixpkgs/pkgs/applications/science/electronics/gaw/default.nix
index a54602de13f3..5dec368f454c 100644
--- a/nixpkgs/pkgs/applications/science/electronics/gaw/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/gaw/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Gtk Analog Wave viewer";
+    mainProgram = "gaw";
     longDescription = ''
       Gaw is a software tool for displaying analog waveforms from
       sampled datas, for example from the output of simulators or
diff --git a/nixpkgs/pkgs/applications/science/electronics/gerbv/default.nix b/nixpkgs/pkgs/applications/science/electronics/gerbv/default.nix
index 652a96617cbc..5f178e08280a 100644
--- a/nixpkgs/pkgs/applications/science/electronics/gerbv/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/gerbv/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Gerber (RS-274X) viewer";
+    mainProgram = "gerbv";
     homepage = "https://gerbv.github.io/";
     changelog = "https://github.com/gerbv/gerbv/releases/tag/v${version}";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix b/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
index 6bdc197269cc..4c3692266a5c 100644
--- a/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
@@ -144,6 +144,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A comprehensive reverse engineering and manipulation framework for gate-level netlists";
+    mainProgram = "hal";
     homepage = "https://github.com/emsec/hal";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/electronics/hyp2mat/default.nix b/nixpkgs/pkgs/applications/science/electronics/hyp2mat/default.nix
index 799af4c43086..71da4a259d54 100644
--- a/nixpkgs/pkgs/applications/science/electronics/hyp2mat/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/hyp2mat/default.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Import Hyperlynx Boardsim files to openEMS, an open source 3D full-wave electromagnetic field solver";
+    mainProgram = "hyp2mat";
     homepage = "https://github.com/koendv/hyp2mat";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ matthuszagh ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
index bff63f3b2d7e..d884a60c984f 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
@@ -21,6 +21,10 @@
 , libpthreadstubs
 , libXdmcp
 , unixODBC
+, libgit2
+, libsecret
+, libgcrypt
+, libgpg-error
 
 , util-linux
 , libselinux
@@ -92,12 +96,11 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     "-DKICAD_USE_EGL=ON"
     "-DOCC_INCLUDE_DIR=${opencascade-occt}/include/opencascade"
+    # https://gitlab.com/kicad/code/kicad/-/issues/17133
+    "-DCMAKE_CTEST_ARGUMENTS='--exclude-regex;qa_spice'"
   ]
-  ++ optionals (stable) [
-    # https://gitlab.com/kicad/code/kicad/-/issues/12491
-    # should be resolved in the next major? release
-    "-DCMAKE_CTEST_ARGUMENTS='--exclude-regex;qa_eeschema'"
-  ]
+  ++ optional (stdenv.hostPlatform.system == "aarch64-linux")
+    "-DCMAKE_CTEST_ARGUMENTS=--exclude-regex;'qa_spice|qa_cli'"
   ++ optional (stable && !withNgspice) "-DKICAD_SPICE=OFF"
   ++ optionals (!withScripting) [
     "-DKICAD_SCRIPTING_WXPYTHON=OFF"
@@ -126,6 +129,10 @@ stdenv.mkDerivation rec {
     doxygen
     graphviz
     pkg-config
+    libgit2
+    libsecret
+    libgcrypt
+    libgpg-error
   ]
   # wanted by configuration on linux, doesn't seem to affect performance
   # no effect on closure size
@@ -180,13 +187,14 @@ stdenv.mkDerivation rec {
   doInstallCheck = !(debug);
   installCheckTarget = "test";
 
-  pythonForTests = python.withPackages(ps: with ps; [
-    numpy
-    pytest
-    cairosvg
-    pytest-image-diff
-  ]);
-  nativeInstallCheckInputs = optional (!stable) pythonForTests;
+  nativeInstallCheckInputs = [
+    (python.withPackages(ps: with ps; [
+      numpy
+      pytest
+      cairosvg
+      pytest-image-diff
+    ]))
+  ];
 
   dontStrip = debug;
 
@@ -196,7 +204,7 @@ stdenv.mkDerivation rec {
       Just the build products, the libraries are passed via an env var in the wrapper, default.nix
     '';
     homepage = "https://www.kicad.org/";
-    license = lib.licenses.agpl3;
+    license = lib.licenses.agpl3Plus;
     platforms = lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
index fa0c7ae7a75e..99670eee8a46 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
@@ -205,9 +205,9 @@ stdenv.mkDerivation rec {
     "--prefix GIO_EXTRA_MODULES : ${dconf}/lib/gio/modules"
     # required to open a bug report link in firefox-wayland
     "--set-default MOZ_DBUS_REMOTE 1"
-    "--set-default KICAD7_FOOTPRINT_DIR ${footprints}/share/kicad/footprints"
-    "--set-default KICAD7_SYMBOL_DIR ${symbols}/share/kicad/symbols"
-    "--set-default KICAD7_TEMPLATE_DIR ${template_dir}"
+    "--set-default KICAD8_FOOTPRINT_DIR ${footprints}/share/kicad/footprints"
+    "--set-default KICAD8_SYMBOL_DIR ${symbols}/share/kicad/symbols"
+    "--set-default KICAD8_TEMPLATE_DIR ${template_dir}"
   ]
   ++ optionals (addons != [ ]) (
     let stockDataPath = symlinkJoin {
@@ -218,11 +218,11 @@ stdenv.mkDerivation rec {
       ];
     };
     in
-    [ "--set-default NIX_KICAD7_STOCK_DATA_PATH ${stockDataPath}" ]
+    [ "--set-default NIX_KICAD8_STOCK_DATA_PATH ${stockDataPath}" ]
   )
   ++ optionals (with3d)
   [
-    "--set-default KICAD7_3DMODEL_DIR ${packages3d}/share/kicad/3dmodels"
+    "--set-default KICAD8_3DMODEL_DIR ${packages3d}/share/kicad/3dmodels"
   ]
   ++ optionals (withNgspice) [ "--prefix LD_LIBRARY_PATH : ${libngspice}/lib" ]
 
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/runtime_stock_data_path.patch b/nixpkgs/pkgs/applications/science/electronics/kicad/runtime_stock_data_path.patch
index 16f7e493c623..43e99a531cf5 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/runtime_stock_data_path.patch
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/runtime_stock_data_path.patch
@@ -6,7 +6,7 @@ index a74cdd9..790cc58 100644
  {
      wxString path;
 
-+    if( wxGetEnv( wxT( "NIX_KICAD7_STOCK_DATA_PATH" ), &path ) ) {
++    if( wxGetEnv( wxT( "NIX_KICAD8_STOCK_DATA_PATH" ), &path ) ) {
 +        return path;
 +    }
 +
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix
index 11837638e1ab..36114fff73a3 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix
@@ -3,67 +3,67 @@
 {
   "kicad" = {
     kicadVersion = {
-      version =			"7.0.10";
+      version =			"8.0.1";
       src = {
-        rev =			"7daac78752749fc919e932be6156914aa83c926f";
-        sha256 =		"0z459yi0s02mwdgbr3xxw43gn9yjhvfkjnsxmns5mksgzsr5nmhh";
+        rev =			"20421d65e5a7ede894345d337ab47b469f5ba154";
+        sha256 =		"096kvmm96ccxir1rspgzzjkp6y2j80l3w2vphg9iv3drxmjp7qjv";
       };
     };
     libVersion = {
-      version =			"7.0.10";
+      version =			"8.0.1";
       libSources = {
-        symbols.rev =		"eedf6c9ddac2816023e817d4dc91032f9d7390b9";
-        symbols.sha256 =	"0nlgmxf9z1vf4g350dfkxql1dawgmw275wqxkgszsfxmhdfpmi9v";
-        templates.rev =		"9ce98cc45f3778e05c404edebf0f98de5c247ffe";
-        templates.sha256 =	"0mykfwwik7472i4r0isc5szj3dnmvd0538p0vlmzh4rcgj3pj3vm";
-        footprints.rev =	"7061fc9847ecc1b838e60dc6826db534028494f6";
-        footprints.sha256 =	"1az6fzh1lma71mj12bc4bblnmzjayrxhkb8w9rjvlhvvgv33cdmy";
-        packages3d.rev =	"d7345b34daaa23acf0d4506ed937fb424b5b18cd";
-        packages3d.sha256 =	"0xzyi4mgyifwc6dppdzh6jq294mkj0a71cwkqw2ymz1kfbksw626";
+        symbols.rev =		"d6aff3948edfca2bacf36900ff080f6b3f65fe4c";
+        symbols.sha256 =	"00xnvikmqd1zkg9p1f89kvryvkybl5f20baij6babqyc29nbzkwy";
+        templates.rev =		"0a6c4f798a68a5c639d54b4d3093460ab9267816";
+        templates.sha256 =	"0m9bggz3cm27kqpjjwxy19mqzk0c69bywcjkqcni7kafr21c6k4z";
+        footprints.rev =	"226b4f3d5c10a4126d88b895188bdab629fe60b0";
+        footprints.sha256 =	"1bb3mb2a7vkridgmqqm9ib3hv2m4zx1i14mglb11sribypy0ma5p";
+        packages3d.rev =	"49c1cd4017499b8a7f6dedbe7ede834d1713eb28";
+        packages3d.sha256 =	"0b5jwr5bbd0kzb75nj3028knjrv0872dk54sbsnxaz669q8zaxap";
       };
     };
   };
   "kicad-testing" = {
     kicadVersion = {
-      version =			"7.0-2024-01-27";
+      version =			"8.0-2024-02-23";
       src = {
-        rev =			"13fcb571f7e5bf4bf142d151651fc577aca32053";
-        sha256 =		"0wvk3wx5lm2jvyip6b96ja464hdzp9klb7b7ng5i3mdldabh0jba";
+        rev =			"14d71c8ca6b48d2eb956bb069acf05a37b1b2652";
+        sha256 =		"0xqd0xbpnvsvba75526nwgzr8l2cfxy99sjmg13sjxfx7rq16kqi";
       };
     };
     libVersion = {
-      version =			"7.0-2024-01-27";
+      version =			"8.0-2024-02-23";
       libSources = {
-        symbols.rev =		"eedf6c9ddac2816023e817d4dc91032f9d7390b9";
-        symbols.sha256 =	"0nlgmxf9z1vf4g350dfkxql1dawgmw275wqxkgszsfxmhdfpmi9v";
-        templates.rev =		"9ce98cc45f3778e05c404edebf0f98de5c247ffe";
-        templates.sha256 =	"0mykfwwik7472i4r0isc5szj3dnmvd0538p0vlmzh4rcgj3pj3vm";
-        footprints.rev =	"7061fc9847ecc1b838e60dc6826db534028494f6";
-        footprints.sha256 =	"1az6fzh1lma71mj12bc4bblnmzjayrxhkb8w9rjvlhvvgv33cdmy";
-        packages3d.rev =	"d7345b34daaa23acf0d4506ed937fb424b5b18cd";
-        packages3d.sha256 =	"0xzyi4mgyifwc6dppdzh6jq294mkj0a71cwkqw2ymz1kfbksw626";
+        symbols.rev =		"e228d4e8b295364e90e36c57f4023d8285ba88cd";
+        symbols.sha256 =	"049h2a7yn6ks8sybppixa872dbvyd0rwf9r6nixvdg6d13fl6rwf";
+        templates.rev =		"2e00c233b67e35323f90d04c190bf70237a252f2";
+        templates.sha256 =	"0m9bggz3cm27kqpjjwxy19mqzk0c69bywcjkqcni7kafr21c6k4z";
+        footprints.rev =	"6e5329a6d4aaa81290e23af3eba88f505c2f61b0";
+        footprints.sha256 =	"0ypjlbmzmcl3pha3q2361va70c988b1drxy8320gm66jkzfc21a1";
+        packages3d.rev =	"d1e521228d9f5888836b1a6a35fb05fb925456fa";
+        packages3d.sha256 =	"0lcy1av7ixg1f7arflk50jllpc1749sfvf3h62hkxsz97wkr97xj";
       };
     };
   };
   "kicad-unstable" = {
     kicadVersion = {
-      version =			"2023-08-15";
+      version =			"2024-02-23";
       src = {
-        rev =			"e0d4cf2d5b023a7e5b70d854452376aa3510acd8";
-        sha256 =		"0666j4q3vz24smcjw9m4ib3ca2dqiqgx2amhv7ys4rzqb6v2pvn2";
+        rev =			"b7b64d959f37f00bb0d14b007c3b3908196e1024";
+        sha256 =		"1gl7mjqpmqq4m55z6crwb77983g00gi2161ichsc7hsfhs4c8grh";
       };
     };
     libVersion = {
-      version =			"2023-08-15";
+      version =			"2024-02-23";
       libSources = {
-        symbols.rev =		"06d20a4b9f7e5375329194d141b096dcdcb7518a";
-        symbols.sha256 =	"1wr754m4ykidds3i14gqhvyrj3mbkchp2hkfnr0rjsdaqf4zmqdf";
-        templates.rev =		"867eef383a0f61015cb69677d5c632d78a2ea01a";
-        templates.sha256 =	"1qi20mrsfn4fxmr1fyphmil2i9p2nzmwk5rlfchc5aq2194nj3lq";
-        footprints.rev =	"5d2ac73ae72bfe8b8ee9eeb081a7851b2ca84c24";
-        footprints.sha256 =	"1qg016ysf0ddm3bd5bkjawlrc0z4r3zhmdjkqkwaaaydnpwp23qz";
-        packages3d.rev =	"f1dae9f95e59216f3b974f585e5b420db853da9e";
-        packages3d.sha256 =	"0ciri6lhnh0w9i00z167snj5acnjndi1rgmyls08p45zj4rma8y2";
+        symbols.rev =		"8b0c343d8694fe0a968e5c4af69fd161bacf7da1";
+        symbols.sha256 =	"049h2a7yn6ks8sybppixa872dbvyd0rwf9r6nixvdg6d13fl6rwf";
+        templates.rev =		"0a6c4f798a68a5c639d54b4d3093460ab9267816";
+        templates.sha256 =	"0m9bggz3cm27kqpjjwxy19mqzk0c69bywcjkqcni7kafr21c6k4z";
+        footprints.rev =	"ded6b053460faae5783c538a38e91e2b4bddcf2e";
+        footprints.sha256 =	"035bf37n4vrihaj4zfdncisdx9fly1vya7lhkxhlsbv5blpi4a5y";
+        packages3d.rev =	"984667325076d4e50dab14e755aeacf97f42194c";
+        packages3d.sha256 =	"0lkaxv02h4sxrnm8zr17wl9d07mazlisad78r35gry741i362cdg";
       };
     };
   };
diff --git a/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/default.nix b/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/default.nix
index 15130deefc58..5fc4b0036f9f 100644
--- a/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "magic-vlsi";
-  version = "8.3.463";
+  version = "8.3.465";
 
   src = fetchurl {
     url    = "http://opencircuitdesign.com/magic/archive/magic-${version}.tgz";
-    sha256 = "sha256-ba5kTz5ncsEPTh0a0/tbp37qFogUQ+W4p2rPNFLNIAY=";
+    sha256 = "sha256-cb9A8rpjD3x3fJo+xexlyzn+/3M5iUJmSoBraom9zd8=";
   };
 
   nativeBuildInputs = [ python3 ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/nanovna-saver/default.nix b/nixpkgs/pkgs/applications/science/electronics/nanovna-saver/default.nix
index 61788938e40a..d1b38d8b8e07 100644
--- a/nixpkgs/pkgs/applications/science/electronics/nanovna-saver/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/nanovna-saver/default.nix
@@ -47,6 +47,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/NanoVNA-Saver/nanovna-saver";
     description =
       "A tool for reading, displaying and saving data from the NanoVNA";
+    mainProgram = "NanoVNASaver";
     longDescription = ''
       A multiplatform tool to save Touchstone files from the NanoVNA, sweep
       frequency spans in segments to gain more than 101 data points, and
diff --git a/nixpkgs/pkgs/applications/science/electronics/nvc/default.nix b/nixpkgs/pkgs/applications/science/electronics/nvc/default.nix
index 378daf9c498c..48c9b17816e9 100644
--- a/nixpkgs/pkgs/applications/science/electronics/nvc/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/nvc/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "VHDL compiler and simulator";
+    mainProgram = "nvc";
     homepage = "https://www.nickg.me.uk/nvc/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ wegank ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/openboardview/default.nix b/nixpkgs/pkgs/applications/science/electronics/openboardview/default.nix
index 9e498881d2e2..4eaf29133a44 100644
--- a/nixpkgs/pkgs/applications/science/electronics/openboardview/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/openboardview/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Linux SDL/ImGui edition software for viewing .brd files";
+    mainProgram = "openboardview";
     homepage = "https://github.com/OpenBoardView/OpenBoardView";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/electronics/openhantek6022/default.nix b/nixpkgs/pkgs/applications/science/electronics/openhantek6022/default.nix
index b6e5d89a3e97..ca0c651fad27 100644
--- a/nixpkgs/pkgs/applications/science/electronics/openhantek6022/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/openhantek6022/default.nix
@@ -23,6 +23,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Free software for Hantek and compatible (Voltcraft/Darkwire/Protek/Acetech) USB digital signal oscilloscopes";
+    mainProgram = "OpenHantek";
     homepage = "https://github.com/OpenHantek/OpenHantek6022";
     license = licenses.gpl3;
     maintainers = with maintainers; [ baracoder ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix b/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix
index cab42731c336..52685f1df254 100644
--- a/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/pulseview/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Qt-based LA/scope/MSO GUI for sigrok (a signal analysis software suite)";
+    mainProgram = "pulseview";
     homepage = "https://sigrok.org/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ bjornfor vifino ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/systemc/default.nix b/nixpkgs/pkgs/applications/science/electronics/systemc/default.nix
index dc6186841f47..4e14d08e63bf 100644
--- a/nixpkgs/pkgs/applications/science/electronics/systemc/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/systemc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "systemc";
@@ -11,16 +11,21 @@ stdenv.mkDerivation rec {
     sha256 = "0sj8wlkp68cjhmkd9c9lvm3lk3sckczpz7w9vby64inc1f9fnf0b";
   };
 
-  enableParallelBuilding = true;
-  nativeBuildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ cmake ];
 
-  configureFlags = [ "--with-unix-layout" ];
+  cmakeFlags = [
+    # Undefined reference to the sc_core::sc_api_version_2_3_4_XXX
+    # https://github.com/accellera-official/systemc/issues/21
+    "-DCMAKE_CXX_STANDARD=17"
+  ];
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
 
   meta = with lib; {
     description = "The language for System-level design, modeling and verification";
     homepage    = "https://systemc.org/";
     license     = licenses.asl20;
-    platforms   = platforms.linux;
+    platforms   = platforms.unix;
     maintainers = with maintainers; [ victormignot amiloradovsky ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix b/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix
index f8741cd8d180..f20ce5e0acd0 100644
--- a/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/tkgate/1.x.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Event driven digital circuit simulator with a TCL/TK-based graphical editor";
+    mainProgram = "gmac";
     homepage = "http://www.tkgate.org/";
     license = lib.licenses.gpl2Plus;
     hydraPlatforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix b/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
index 062ba93ca420..92f8fa52b91f 100644
--- a/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, perl, flex, bison, python3, autoconf,
+{ lib, stdenv, fetchFromGitHub, fetchpatch, perl, flex, bison, python3, autoconf,
   which, cmake, ccache, help2man, makeWrapper, glibcLocales,
   systemc, git, numactl }:
 
@@ -13,6 +13,15 @@ stdenv.mkDerivation rec {
     hash = "sha256-Ya3lqK8BfvMVLZUrD2Et6OmptteWXp5VmZb2x2G/V/E=";
   };
 
+  patches = [
+    (fetchpatch {
+      # Fix try-lock spuriously fail in V3ThreadPool destructor
+      # https://github.com/verilator/verilator/pull/4938
+      url = "https://github.com/verilator/verilator/commit/4b9cce4369c78423779238e585ed693c456d464e.patch";
+      hash = "sha256-sGrk/pxqZqUcmJdzQoPlzXMmYqHCOmd9Y2n6ieVNg1U=";
+    })
+  ];
+
   enableParallelBuilding = true;
   buildInputs = [ perl python3 systemc ];  # ccache
   nativeBuildInputs = [ makeWrapper flex bison autoconf help2man git ];
@@ -37,6 +46,11 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  env = {
+    SYSTEMC_INCLUDE = "${lib.getDev systemc}/include";
+    SYSTEMC_LIBDIR = "${lib.getLib systemc}/lib";
+  };
+
   meta = with lib; {
     description = "Fast and robust (System)Verilog simulator/compiler and linter";
     homepage    = "https://www.veripool.org/verilator";
diff --git a/nixpkgs/pkgs/applications/science/electronics/vhd2vl/default.nix b/nixpkgs/pkgs/applications/science/electronics/vhd2vl/default.nix
index 0ec14d282b4a..d56a8aa6ce84 100644
--- a/nixpkgs/pkgs/applications/science/electronics/vhd2vl/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/vhd2vl/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "VHDL to Verilog converter";
+    mainProgram = "vhd2vl";
     homepage = "https://github.com/ldoolitt/vhd2vl";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ matthuszagh ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/xcircuit/default.nix b/nixpkgs/pkgs/applications/science/electronics/xcircuit/default.nix
index 61b63ff1d7a4..c51156d2c1ab 100644
--- a/nixpkgs/pkgs/applications/science/electronics/xcircuit/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/xcircuit/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Generic drawing program tailored to circuit diagrams";
+    mainProgram = "xcircuit";
     homepage = "http://opencircuitdesign.com/xcircuit";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/science/electronics/xoscope/default.nix b/nixpkgs/pkgs/applications/science/electronics/xoscope/default.nix
index 9f9224b5543c..0fa0c1bc79bf 100644
--- a/nixpkgs/pkgs/applications/science/electronics/xoscope/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/xoscope/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Oscilloscope through the sound card";
+    mainProgram = "xoscope";
     homepage = "https://xoscope.sourceforge.net";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [viric];
diff --git a/nixpkgs/pkgs/applications/science/engineering/brmodelo/default.nix b/nixpkgs/pkgs/applications/science/engineering/brmodelo/default.nix
index c0573ae131d3..c484260d25f3 100644
--- a/nixpkgs/pkgs/applications/science/engineering/brmodelo/default.nix
+++ b/nixpkgs/pkgs/applications/science/engineering/brmodelo/default.nix
@@ -102,6 +102,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Entity-relationship diagram tool for making conceptual and logical database models";
+    mainProgram = "brmodelo";
     homepage = "https://github.com/chcandido/brModelo";
     license = licenses.gpl3;
     maintainers = with maintainers; [ yuu ];
diff --git a/nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix b/nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix
index 684f5913f79f..f67bf198443a 100644
--- a/nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix
+++ b/nixpkgs/pkgs/applications/science/geometry/tetgen/1.4.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Quality Tetrahedral Mesh Generator and 3D Delaunay Triangulator";
+    mainProgram = "tetgen";
     homepage = "http://tetgen.org/";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/applications/science/geometry/tetgen/default.nix b/nixpkgs/pkgs/applications/science/geometry/tetgen/default.nix
index ff2b211b34d2..dce56dc4e17d 100644
--- a/nixpkgs/pkgs/applications/science/geometry/tetgen/default.nix
+++ b/nixpkgs/pkgs/applications/science/geometry/tetgen/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Quality Tetrahedral Mesh Generator and 3D Delaunay Triangulator";
+    mainProgram = "tetgen";
     homepage = "http://tetgen.org/";
     license = lib.licenses.agpl3Plus;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/applications/science/logic/abella/default.nix b/nixpkgs/pkgs/applications/science/logic/abella/default.nix
index 4483b8ad4756..7878626d6e9a 100644
--- a/nixpkgs/pkgs/applications/science/logic/abella/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/abella/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Interactive theorem prover";
+    mainProgram = "abella";
     longDescription = ''
       Abella is an interactive theorem prover based on lambda-tree syntax.
       This means that Abella is well-suited for reasoning about the meta-theory
diff --git a/nixpkgs/pkgs/applications/science/logic/anders/default.nix b/nixpkgs/pkgs/applications/science/logic/anders/default.nix
index eb2be71f1681..dff6c86703d4 100644
--- a/nixpkgs/pkgs/applications/science/logic/anders/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/anders/default.nix
@@ -20,6 +20,7 @@ ocamlPackages.buildDunePackage rec {
 
   meta = with lib; {
     description = "Modal Homotopy Type System";
+    mainProgram = "anders";
     homepage = "https://homotopy.dev/";
     license = licenses.isc;
     maintainers = [ maintainers.suhr ];
diff --git a/nixpkgs/pkgs/applications/science/logic/bitwuzla/default.nix b/nixpkgs/pkgs/applications/science/logic/bitwuzla/default.nix
index 4af4058339d9..bacf8620e5fd 100644
--- a/nixpkgs/pkgs/applications/science/logic/bitwuzla/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/bitwuzla/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A SMT solver for fixed-size bit-vectors, floating-point arithmetic, arrays, and uninterpreted functions";
+    mainProgram = "bitwuzla";
     homepage = "https://bitwuzla.github.io";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/logic/celf/default.nix b/nixpkgs/pkgs/applications/science/logic/celf/default.nix
index 044a6f3ca1c4..e1f0c237f673 100644
--- a/nixpkgs/pkgs/applications/science/logic/celf/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/celf/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Linear logic programming system";
+    mainProgram = "celf";
     homepage = "https://github.com/clf/celf";
     license = licenses.gpl3;
     maintainers = with maintainers; [ bcdarwin ];
diff --git a/nixpkgs/pkgs/applications/science/logic/clprover/clprover.nix b/nixpkgs/pkgs/applications/science/logic/clprover/clprover.nix
index 2a8c058a80bb..543c6cb4310b 100644
--- a/nixpkgs/pkgs/applications/science/logic/clprover/clprover.nix
+++ b/nixpkgs/pkgs/applications/science/logic/clprover/clprover.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Resolution-based theorem prover for Coalition Logic implemented in C++";
+    mainProgram = "CLProver++";
     homepage = "https://cgi.csc.liv.ac.uk/~ullrich/CLProver++/";
     license = licenses.gpl3; # Note that while the website states that it is GPLv2 but the file in the zip as well as the comments in the source state it is GPLv3
     maintainers = with maintainers; [ mgttlinger ];
diff --git a/nixpkgs/pkgs/applications/science/logic/coq/default.nix b/nixpkgs/pkgs/applications/science/logic/coq/default.nix
index e52a51936180..37a8aba7d8c7 100644
--- a/nixpkgs/pkgs/applications/science/logic/coq/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/coq/default.nix
@@ -57,6 +57,7 @@ let
    "8.17.1".sha256   = "sha256-x+RwkbxMg9aR0L3WSCtpIz8jwA5cJA4tXAtHMZb20y4=";
    "8.18.0".sha256   = "sha256-WhiBs4nzPHQ0R24xAdM49kmxSCPOxiOVMA1iiMYunz4=";
    "8.19.0".sha256   = "sha256-ixsYCvCXpBHqJ71hLQklphlwoOO3i/6w2PJjllKqf9k=";
+   "8.19.1".sha256   = "sha256-kmZ8Uk8jpzjOd67aAPp3C+vU2oNaBw9pr7+Uixcgg94=";
   };
   releaseRev = v: "V${v}";
   fetched = import ../../../../build-support/coq/meta-fetch/default.nix
diff --git a/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix b/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix
index f2e3eaab91dc..4be57a194635 100644
--- a/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An advanced SAT Solver";
+    mainProgram = "cryptominisat5";
     homepage = "https://github.com/msoos/cryptominisat";
     license = licenses.mit;
     maintainers = with maintainers; [ mic92 ];
diff --git a/nixpkgs/pkgs/applications/science/logic/cryptoverif/default.nix b/nixpkgs/pkgs/applications/science/logic/cryptoverif/default.nix
index 5c15b8a17241..4b74cdd518ca 100644
--- a/nixpkgs/pkgs/applications/science/logic/cryptoverif/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/cryptoverif/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Cryptographic protocol verifier in the computational model";
+    mainProgram = "cryptoverif";
     homepage    = "https://prosecco.gforge.inria.fr/personal/bblanche/cryptoverif/";
     license     = lib.licenses.cecill-b;
     platforms   = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/logic/cubicle/default.nix b/nixpkgs/pkgs/applications/science/logic/cubicle/default.nix
index c9382c5d0f1a..03409e68ea33 100644
--- a/nixpkgs/pkgs/applications/science/logic/cubicle/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/cubicle/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An open source model checker for verifying safety properties of array-based systems";
+    mainProgram = "cubicle";
     homepage = "https://cubicle.lri.fr/";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix b/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix
index 0385909610e6..bec5a89cc691 100644
--- a/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A prover for satisfiability modulo theory (SMT)";
+    mainProgram = "cvc3";
     maintainers = with maintainers;
       [ raskin ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix b/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix
index 1513c7477985..ac45db8cb312 100644
--- a/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A high-performance theorem prover and SMT solver";
+    mainProgram = "cvc4";
     homepage    = "http://cvc4.cs.stanford.edu/web/";
     license     = licenses.gpl3;
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/logic/cvc5/default.nix b/nixpkgs/pkgs/applications/science/logic/cvc5/default.nix
index 2dff344e4edb..d34b29337296 100644
--- a/nixpkgs/pkgs/applications/science/logic/cvc5/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/cvc5/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A high-performance theorem prover and SMT solver";
+    mainProgram = "cvc5";
     homepage    = "https://cvc5.github.io";
     license     = licenses.gpl3Only;
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/logic/dafny/default.nix b/nixpkgs/pkgs/applications/science/logic/dafny/default.nix
index 5f56d612ab24..83d472c1abb1 100644
--- a/nixpkgs/pkgs/applications/science/logic/dafny/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/dafny/default.nix
@@ -8,13 +8,13 @@
 
 buildDotnetModule rec {
   pname = "Dafny";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchFromGitHub {
     owner = "dafny-lang";
     repo = "dafny";
     rev = "v${version}";
-    hash = "sha256-rnPZms60vRtefEV+3IeVXoZJU9WMjVxPVioRaEcyw/o=";
+    hash = "sha256-NsQhJY++IaLyFc5jqo7TyZBcz0P8VUizGLxdIe9KEO4=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/science/logic/dafny/deps.nix b/nixpkgs/pkgs/applications/science/logic/dafny/deps.nix
index a786d8b3d6fd..91fe5624ac7f 100644
--- a/nixpkgs/pkgs/applications/science/logic/dafny/deps.nix
+++ b/nixpkgs/pkgs/applications/science/logic/dafny/deps.nix
@@ -2,19 +2,19 @@
 # Please dont edit it manually, your changes might get overwritten!
 
 { fetchNuGet }: [
-  (fetchNuGet { pname = "Boogie"; version = "3.0.9"; sha256 = "12700rvm3zj73pkkjaypfa72fvqz8bp78hi3jkh89dqavhg3l7p5"; })
-  (fetchNuGet { pname = "Boogie.AbstractInterpretation"; version = "3.0.9"; sha256 = "1612d1x7smhcczmk21z9kswjjvq3h0r5mlf1zb8mznyx0154pckg"; })
-  (fetchNuGet { pname = "Boogie.BaseTypes"; version = "3.0.9"; sha256 = "0v6x8k61rl6bvp1zbvbhnlpkakbw11c2mf8glafmf4znrakwil23"; })
-  (fetchNuGet { pname = "Boogie.CodeContractsExtender"; version = "3.0.9"; sha256 = "045z0j7bhsb8fypzkz8spixfqdchcpsq3bb9bfwb95if2mna4zx2"; })
-  (fetchNuGet { pname = "Boogie.Concurrency"; version = "3.0.9"; sha256 = "00k08qh614vciadzk7lr1dcwsvrcfpslvs342amq12c25rxh3125"; })
-  (fetchNuGet { pname = "Boogie.Core"; version = "3.0.9"; sha256 = "03fip919iw7y3vwk5nj53jj73ry43z9fpn752j5fbgygkl2zbx4q"; })
-  (fetchNuGet { pname = "Boogie.ExecutionEngine"; version = "3.0.9"; sha256 = "098l1qmya021raqgdapxvwq3pra4v7wpv7j3dmmhsnpg8zs30jgi"; })
-  (fetchNuGet { pname = "Boogie.Graph"; version = "3.0.9"; sha256 = "1y8aai7wmsyh2pn9bl1rp2nifs3k9b8kb2lqx5rgs1fdiyk2q24j"; })
-  (fetchNuGet { pname = "Boogie.Houdini"; version = "3.0.9"; sha256 = "1ssr82swqmjsap6v344v2kwkfsv70gx082dk54x7vpapr56f1fgp"; })
-  (fetchNuGet { pname = "Boogie.Model"; version = "3.0.9"; sha256 = "1cy04a7dr1z7dxfkx6l9kfm30rx5wsn7g50b0wyzp4ns6sbkh47f"; })
-  (fetchNuGet { pname = "Boogie.Provers.SMTLib"; version = "3.0.9"; sha256 = "1ijzn67wl82ycr1k7gbh8dhq99zxqqjdc48glf4ld832l7sp3vam"; })
-  (fetchNuGet { pname = "Boogie.VCExpr"; version = "3.0.9"; sha256 = "0hivg31c8v9ix5b8mici6mxz1yzydwiyvgb510bnghxciwbnd4gp"; })
-  (fetchNuGet { pname = "Boogie.VCGeneration"; version = "3.0.9"; sha256 = "1j9853vixzpgdfd60c3hr5padfdj3sbrbhmr6jg9a0cr3afk72sm"; })
+  (fetchNuGet { pname = "Boogie"; version = "3.1.3"; sha256 = "0xzc7s0rjb8dhdkdf71g6pdsnyhbl534xpwd8gbx6g16a87iqx6i"; })
+  (fetchNuGet { pname = "Boogie.AbstractInterpretation"; version = "3.1.3"; sha256 = "0a7v2jkkbh59pyc5nz4avszm3dbmp4amkmr6lvn0gyc3hxgn8d3k"; })
+  (fetchNuGet { pname = "Boogie.BaseTypes"; version = "3.1.3"; sha256 = "1h94yl4ymhd2g14i5w8lnnh2zw7gx65qydzvv8cm8d5yn64gch63"; })
+  (fetchNuGet { pname = "Boogie.CodeContractsExtender"; version = "3.1.3"; sha256 = "0b1h1lz997lgyq34bx3ngnhgcrw8j4qvsa6iygb6bydxz7rirrf4"; })
+  (fetchNuGet { pname = "Boogie.Concurrency"; version = "3.1.3"; sha256 = "1aq0gdz1xkmp82c67vrmyvkncfbbj5zxrsg78lsmmi22h9qbkzm3"; })
+  (fetchNuGet { pname = "Boogie.Core"; version = "3.1.3"; sha256 = "0yhl272lv9lncjval2z7zl9wavlxx8bivj467zl2zzbrxw2k5wz8"; })
+  (fetchNuGet { pname = "Boogie.ExecutionEngine"; version = "3.1.3"; sha256 = "0p0zp329h6mddbswm3pdcyvy03y69vyznv11ph6bkpya21lsxqy7"; })
+  (fetchNuGet { pname = "Boogie.Graph"; version = "3.1.3"; sha256 = "1p8vb4x4iy7f0ycwb8f71j9a2ci8irwg3rvad2hg3rgbihbwp1qj"; })
+  (fetchNuGet { pname = "Boogie.Houdini"; version = "3.1.3"; sha256 = "06qlgi9f70r2w7w6h9qw3lx9dd4pbddpdplqjxi090rpry6dhrbz"; })
+  (fetchNuGet { pname = "Boogie.Model"; version = "3.1.3"; sha256 = "0fbvnrghaq17fdpjx12axxrrjp1mh99skaznmvxd1ylsqqnn4cbk"; })
+  (fetchNuGet { pname = "Boogie.Provers.SMTLib"; version = "3.1.3"; sha256 = "0x7gpc7m04in2gzdn4jgjphd2xjqrdfmh84wzwnwpvi5wyn869jc"; })
+  (fetchNuGet { pname = "Boogie.VCExpr"; version = "3.1.3"; sha256 = "0dyndhqz1yf9qnq9mw73g53rnz0xfbdbi3yk6pg7fdm1m3363h5p"; })
+  (fetchNuGet { pname = "Boogie.VCGeneration"; version = "3.1.3"; sha256 = "1bl83727zc1rhskx548p5pa27804n3f5i9n233jvcz6n6bfjn74k"; })
   (fetchNuGet { pname = "CocoR"; version = "2014.12.24"; sha256 = "0ps8h7aawkcc1910qnh13llzb01pvgsjmg862pxp0p4wca2dn7a2"; })
   (fetchNuGet { pname = "JetBrains.Annotations"; version = "2021.1.0"; sha256 = "07pnhxxlgx8spmwmakz37nmbvgyb6yjrbrhad5rrn6y767z5r1gb"; })
   (fetchNuGet { pname = "MediatR"; version = "8.1.0"; sha256 = "0cqx7yfh998xhsfk5pr6229lcjcs1jxxyqz7dwskc9jddl6a2akp"; })
@@ -40,6 +40,7 @@
   (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "5.0.0"; sha256 = "01ahgd0b2z2zycrr2lcsq2cl59fn04bh51hdwdp9dcsdkpvnasj1"; })
   (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "5.0.0"; sha256 = "00vii8148a6pk12l9jl0rhjp7apil5q5qcy7v1smnv17lj4p8szd"; })
   (fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "5.0.0"; sha256 = "0lm6n9vbyjh0l17qcc2y9qwn1cns3dyjmkvbxjp0g9sll32kjpmb"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "2.0.0"; sha256 = "1jkwjcq1ld9znz1haazk8ili2g4pzfdp6i7r7rki4hg3jcadn386"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "5.0.0"; sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "5.0.0"; sha256 = "1yza38675dbv1qqnnhqm23alv2bbaqxp0pb7zinjmw8j2mr5r6wc"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.0.0"; sha256 = "0g4zadlg73f507krilhaaa7h0jdga216syrzjlyf5fdk25gxmjqh"; })
@@ -53,10 +54,9 @@
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "3.0.0"; sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51"; })
   (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.TestPlatform.Extensions.TrxLogger"; version = "17.0.0"; sha256 = "067vpfk5690j0d01lfy8mry42pkzz79l873cp2dby0hi8skfklaq"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.11.0"; sha256 = "1fc0ghk1cny4i8w43b94pxhl0srxisv6kaflkkp30ncsa9szhkxh"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.0.0"; sha256 = "1bh5scbvl6ndldqv20sl34h4y257irm9ziv2wyfc3hka6912fhn7"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "16.11.0"; sha256 = "0hp1vndf2jhyg1f3miq4g2068z5kpfzy6nmswm25vymghxp1ws4k"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.Extensions.TrxLogger"; version = "17.9.0"; sha256 = "0wn38vj9i4gjw5zsl4wcivpqrmp1h5n6m1zxcfwj7yjn9hf45rz9"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.9.0"; sha256 = "1kgsl9w9fganbm9wvlkqgk0ag9hfi58z88rkfybc6kvg78bx89ca"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.9.0"; sha256 = "19ffh31a1jxzn8j69m1vnk5hyfz3dbxmflq77b8x82zybiilh5nl"; })
   (fetchNuGet { pname = "Microsoft.VisualStudio.Threading"; version = "16.7.56"; sha256 = "13x0xrsjxd86clf9cjjwmpzlyp8pkrf13riya7igs8zy93zw2qap"; })
   (fetchNuGet { pname = "Microsoft.VisualStudio.Threading.Analyzers"; version = "16.7.56"; sha256 = "04v9df0k7bsc0rzgkw4mnvi43pdrh42vk6xdcwn9m6im33m0nnz2"; })
   (fetchNuGet { pname = "Microsoft.VisualStudio.Validation"; version = "15.5.31"; sha256 = "1ah99rn922qa0sd2k3h64m324f2r32pw8cn4cfihgvwx4qdrpmgw"; })
@@ -64,8 +64,8 @@
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.6.0"; sha256 = "0i4y782yrqqyx85pg597m20gm0v126w0j9ddk5z7xb3crx4z9f2s"; })
   (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.0"; sha256 = "0c6pcj088g1yd1vs529q3ybgsd2vjlk5y1ic6dkmbhvrp5jibl9p"; })
   (fetchNuGet { pname = "Nerdbank.Streams"; version = "2.6.81"; sha256 = "06wihcaga8537ibh0mkj28m720m6vzkqk562zkynhca85nd236yi"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "11.0.2"; sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2"; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
-  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
   (fetchNuGet { pname = "OmniSharp.Extensions.JsonRpc"; version = "0.19.5"; sha256 = "0ilcv3cxcvjkd8ngiydi69pzll07rhqdv5nq9yjnhyj142ynw2cb"; })
   (fetchNuGet { pname = "OmniSharp.Extensions.JsonRpc.Generators"; version = "0.19.5"; sha256 = "1mac4yx29ld8fyirg7n0vqn81hzdvcrl8w0l9w5xhnnm6bcd42v8"; })
   (fetchNuGet { pname = "OmniSharp.Extensions.LanguageProtocol"; version = "0.19.5"; sha256 = "1clgrbw6dlh46iiiqhavwh15xqar41az352mb5r4ln8ql3wnmk1i"; })
@@ -104,7 +104,7 @@
   (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
   (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.12.0"; sha256 = "0lqxpc96qcjkv9pr1rln7mi4y7n7jdi4vb36c2fv3845w1vswgr4"; })
   (fetchNuGet { pname = "Serilog.Extensions.Logging"; version = "3.0.1"; sha256 = "069qy7dm5nxb372ij112ppa6m99b4iaimj3sji74m659fwrcrl9a"; })
   (fetchNuGet { pname = "Serilog.Settings.Configuration"; version = "3.1.0"; sha256 = "1cj5am4n073331gbfm2ylqb9cadl4q3ppzgwmm5c8m1drxpiwkb5"; })
   (fetchNuGet { pname = "Serilog.Sinks.Debug"; version = "2.0.0"; sha256 = "1i7j870l47gan3gpnnlzkccn5lbm7518cnkp25a3g5gp9l0dbwpw"; })
@@ -114,8 +114,6 @@
   (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.7.0"; sha256 = "1gik4sn9jsi1wcy1pyyp0r4sn2g17cwrsh24b2d52vif8p2h24zx"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; })
-  (fetchNuGet { pname = "System.Collections.NonGeneric"; version = "4.0.1"; sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d"; })
-  (fetchNuGet { pname = "System.Collections.Specialized"; version = "4.0.1"; sha256 = "1wbv7y686p5x169rnaim7sln67ivmv6r57falrnx8aap9y33mam9"; })
   (fetchNuGet { pname = "System.CommandLine"; version = "2.0.0-beta4.22272.1"; sha256 = "1iy5hwwgvx911g3yq65p4zsgpy08w4qz9j3h0igcf7yci44vw8yd"; })
   (fetchNuGet { pname = "System.Configuration.ConfigurationManager"; version = "6.0.0"; sha256 = "0sqapr697jbb4ljkq46msg0xx1qpmc31ivva6llyz2wzq3mpmxbw"; })
   (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
@@ -124,7 +122,6 @@
   (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.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
   (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.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
diff --git a/nixpkgs/pkgs/applications/science/logic/easycrypt/default.nix b/nixpkgs/pkgs/applications/science/logic/easycrypt/default.nix
index 2869bcd6e1e3..782d15d61559 100644
--- a/nixpkgs/pkgs/applications/science/logic/easycrypt/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/easycrypt/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.all;
     homepage = "https://easycrypt.info/";
     description = "Computer-Aided Cryptographic Proofs";
+    mainProgram = "easycrypt";
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/logic/easycrypt/runtest.nix b/nixpkgs/pkgs/applications/science/logic/easycrypt/runtest.nix
index c0d72d96e1d1..b714dc14991b 100644
--- a/nixpkgs/pkgs/applications/science/logic/easycrypt/runtest.nix
+++ b/nixpkgs/pkgs/applications/science/logic/easycrypt/runtest.nix
@@ -21,5 +21,6 @@ python3Packages.buildPythonApplication rec {
 
   meta = easycrypt.meta // {
     description = "Testing program for EasyCrypt formalizations";
+    mainProgram = "ec-runtest";
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/logic/egglog/default.nix b/nixpkgs/pkgs/applications/science/logic/egglog/default.nix
index ab5653b50912..8b94c449c6be 100644
--- a/nixpkgs/pkgs/applications/science/logic/egglog/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/egglog/default.nix
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "A fixpoint reasoning system that unifies Datalog and equality saturation";
+    mainProgram = "egglog";
     homepage = "https://github.com/egraphs-good/egglog";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch b/nixpkgs/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
index 74da9d854f34..0b33d4242eb7 100644
--- a/nixpkgs/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
+++ b/nixpkgs/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
@@ -2,7 +2,7 @@ diff --git a/src/elan-dist/src/component/package.rs b/src/elan-dist/src/componen
 index c51e76d..ae8159e 100644
 --- a/src/elan-dist/src/component/package.rs
 +++ b/src/elan-dist/src/component/package.rs
-@@ -56,6 +56,35 @@ fn unpack_without_first_dir<R: Read>(archive: &mut tar::Archive<R>, path: &Path)
+@@ -56,6 +56,37 @@ fn unpack_without_first_dir<R: Read>(archive: &mut tar::Archive<R>, path: &Path)
          entry
              .unpack(&full_path)
              .chain_err(|| ErrorKind::ExtractingPackage)?;
@@ -26,9 +26,11 @@ index c51e76d..ae8159e 100644
 +        use std::os::unix::fs::PermissionsExt;
 +        let new_path = dest_path.with_extension("orig");
 +        ::std::fs::rename(dest_path, &new_path)?;
-+        ::std::fs::write(dest_path, format!(r#"#! @shell@
-+LEAN_CC="${{LEAN_CC:-@cc@}}" exec -a "$0" {} "$@" -L {}/lib  # use bundled libraries, but not bundled compiler that doesn't know about NIX_LDFLAGS
-+"#, new_path.to_str().unwrap(), dest_path.parent().unwrap().parent().unwrap().to_str().unwrap()))?;
++        ::std::fs::write(dest_path, r#"#! @shell@
++dir="$(dirname "${BASH_SOURCE[0]}")"
++# use bundled libraries, but not bundled compiler that doesn't know about NIX_LDFLAGS
++LEAN_CC="${LEAN_CC:-@cc@}" exec -a "$0" "$dir/leanc.orig" "$@" -L"$dir/../lib"
++"#)?;
 +        ::std::fs::set_permissions(dest_path, ::std::fs::Permissions::from_mode(0o755))?;
 +    }
 +
diff --git a/nixpkgs/pkgs/applications/science/logic/elan/default.nix b/nixpkgs/pkgs/applications/science/logic/elan/default.nix
index 129aacc07f62..245f8db13ce6 100644
--- a/nixpkgs/pkgs/applications/science/logic/elan/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/elan/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, runCommand, patchelf, makeWrapper, pkg-config, curl, runtimeShell, fetchpatch
+{ stdenv, lib, runCommand, patchelf, makeWrapper, pkg-config, curl, runtimeShell
 , openssl, zlib, fetchFromGitHub, rustPlatform, libiconv }:
 
 rustPlatform.buildRustPackage rec {
@@ -23,14 +23,6 @@ rustPlatform.buildRustPackage rec {
   buildFeatures = [ "no-self-update" ];
 
   patches = lib.optionals stdenv.isLinux [
-    # revert temporary directory creation, because it break the wrapper
-    # https://github.com/NixOS/nixpkgs/pull/289941#issuecomment-1980778358
-    (fetchpatch {
-      url = "https://github.com/leanprover/elan/commit/bd54acaab75d08b3912ee1f051af8657f3a9cfdf.patch";
-      hash = "sha256-6If/wxWSea8Zjlp3fx9wh3D0TjmWZbvCuY9q5c2qJGA=";
-      revert = true;
-    })
-
     # Run patchelf on the downloaded binaries.
     # This is necessary because Lean 4 is now dynamically linked.
     (runCommand "0001-dynamically-patchelf-binaries.patch" {
diff --git a/nixpkgs/pkgs/applications/science/logic/fast-downward/default.nix b/nixpkgs/pkgs/applications/science/logic/fast-downward/default.nix
index a73d141f45b8..77b538d1cbd8 100644
--- a/nixpkgs/pkgs/applications/science/logic/fast-downward/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/fast-downward/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A domain-independent planning system";
+    mainProgram = "fast-downward";
     homepage = "https://www.fast-downward.org/";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/logic/gappa/default.nix b/nixpkgs/pkgs/applications/science/logic/gappa/default.nix
index af6673caa54f..2eb8567aaa4c 100644
--- a/nixpkgs/pkgs/applications/science/logic/gappa/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/gappa/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://gappa.gforge.inria.fr/";
     description = "Verifying and formally proving properties on numerical programs dealing with floating-point or fixed-point arithmetic";
+    mainProgram = "gappa";
     license = with lib.licenses; [ cecill20 gpl2 ];
     maintainers = with lib.maintainers; [ vbgl ];
     platforms = lib.platforms.all;
diff --git a/nixpkgs/pkgs/applications/science/logic/glucose/default.nix b/nixpkgs/pkgs/applications/science/logic/glucose/default.nix
index 512f0414f1c6..a2392ef39861 100644
--- a/nixpkgs/pkgs/applications/science/logic/glucose/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/glucose/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Modern, parallel SAT solver (${if enableUnfree then "parallel" else "sequential"} version)";
+    mainProgram = "glucose";
     homepage = "https://www.labri.fr/perso/lsimon/research/glucose/";
     license = if enableUnfree then licenses.unfreeRedistributable else licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/logic/kissat/default.nix b/nixpkgs/pkgs/applications/science/logic/kissat/default.nix
index d1703340527b..65bcebdc6b1a 100644
--- a/nixpkgs/pkgs/applications/science/logic/kissat/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/kissat/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A 'keep it simple and clean bare metal SAT solver' written in C";
+    mainProgram = "kissat";
     longDescription = ''
       Kissat is a "keep it simple and clean bare metal SAT solver" written in C.
       It is a port of CaDiCaL back to C with improved data structures,
diff --git a/nixpkgs/pkgs/applications/science/logic/lci/default.nix b/nixpkgs/pkgs/applications/science/logic/lci/default.nix
index 593b2c54c5cf..659855c23fb2 100644
--- a/nixpkgs/pkgs/applications/science/logic/lci/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/lci/default.nix
@@ -9,6 +9,7 @@ stdenv.mkDerivation rec {
   buildInputs = [readline];
   meta = {
     description = "Lambda calculus interpreter";
+    mainProgram = "lci";
     maintainers = with lib.maintainers; [raskin];
     platforms = with lib.platforms; linux;
     license = lib.licenses.gpl3;
diff --git a/nixpkgs/pkgs/applications/science/logic/lean4/default.nix b/nixpkgs/pkgs/applications/science/logic/lean4/default.nix
index fbc41a67d73b..dca55d969db4 100644
--- a/nixpkgs/pkgs/applications/science/logic/lean4/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/lean4/default.nix
@@ -50,11 +50,6 @@ stdenv.mkDerivation (finalAttrs: {
     "-DINSTALL_LICENSE=OFF"
   ];
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   passthru.tests = {
     version = testers.testVersion {
       package = finalAttrs.finalPackage;
diff --git a/nixpkgs/pkgs/applications/science/logic/leo2/default.nix b/nixpkgs/pkgs/applications/science/logic/leo2/default.nix
index a72444adbba0..dcf2d5b7c33c 100644
--- a/nixpkgs/pkgs/applications/science/logic/leo2/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/leo2/default.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A high-performance typed higher order prover";
+    mainProgram = "leo";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.unix;
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/applications/science/logic/leo3/binary.nix b/nixpkgs/pkgs/applications/science/logic/leo3/binary.nix
index 332b28db5fb6..0cdf8a4dc210 100644
--- a/nixpkgs/pkgs/applications/science/logic/leo3/binary.nix
+++ b/nixpkgs/pkgs/applications/science/logic/leo3/binary.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An automated theorem prover for classical higher-order logic with choice";
+    mainProgram = "leo3";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.bsd3;
     maintainers = [maintainers.raskin];
diff --git a/nixpkgs/pkgs/applications/science/logic/logisim-evolution/default.nix b/nixpkgs/pkgs/applications/science/logic/logisim-evolution/default.nix
index affbfc170b90..3d86c8cafdbc 100644
--- a/nixpkgs/pkgs/applications/science/logic/logisim-evolution/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/logisim-evolution/default.nix
@@ -1,25 +1,45 @@
-{ lib, stdenv, fetchurl, jre, makeWrapper, copyDesktopItems, makeDesktopItem, unzip }:
+{ lib
+, stdenv
+, fetchurl
+, jre
+, makeBinaryWrapper
+, copyDesktopItems
+, makeDesktopItem
+, desktopToDarwinBundle
+, unzip
+}:
 
-stdenv.mkDerivation rec {
+let
+  icon = fetchurl {
+    url = "https://github.com/logisim-evolution/logisim-evolution/raw/9e0afa3cd6a8bfa75dab61830822cde83c70bb4b/artwork/logisim-evolution-icon.svg";
+    hash = "sha256-DNRimhNFt6jLdjqv7o2cNz38K6XnevxD0rGymym3xBs=";
+  };
+in
+stdenv.mkDerivation (finalAttrs: {
   pname = "logisim-evolution";
   version = "3.8.0";
 
   src = fetchurl {
-    url = "https://github.com/logisim-evolution/logisim-evolution/releases/download/v${version}/logisim-evolution-${version}-all.jar";
-    sha256 = "sha256-TFm+fa3CMp0OMhnKBc6cLIWGQbIG/OpOOCG7ea7wbCw=";
+    url = "https://github.com/logisim-evolution/logisim-evolution/releases/download/v${finalAttrs.version}/logisim-evolution-${finalAttrs.version}-all.jar";
+    hash = "sha256-TFm+fa3CMp0OMhnKBc6cLIWGQbIG/OpOOCG7ea7wbCw=";
   };
-
   dontUnpack = true;
 
-  nativeBuildInputs = [ makeWrapper copyDesktopItems unzip ];
+  nativeBuildInputs = [
+    makeBinaryWrapper
+    copyDesktopItems
+    unzip
+  ] ++ lib.optionals stdenv.isDarwin [
+    desktopToDarwinBundle
+  ];
 
   desktopItems = [
     (makeDesktopItem {
-      name = pname;
+      name = "logisim-evolution";
       desktopName = "Logisim-evolution";
       exec = "logisim-evolution";
       icon = "logisim-evolution";
-      comment = meta.description;
+      comment = finalAttrs.meta.description;
       categories = [ "Education" ];
     })
   ];
@@ -29,22 +49,19 @@ stdenv.mkDerivation rec {
 
     mkdir -p $out/bin
     makeWrapper ${jre}/bin/java $out/bin/logisim-evolution --add-flags "-jar $src"
-
-    # Create icons
-    unzip $src "resources/logisim/img/*"
-    for size in 16 32 48 128 256; do
-      install -D "./resources/logisim/img/logisim-icon-$size.png" "$out/share/icons/hicolor/''${size}x''${size}/apps/logisim-evolution.png"
-    done
+    install -Dm444 ${icon} $out/share/icons/hicolor/scalable/apps/logisim-evolution.svg
 
     runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
+    changelog = "https://github.com/logisim-evolution/logisim-evolution/releases/tag/v${finalAttrs.version}";
     homepage = "https://github.com/logisim-evolution/logisim-evolution";
     description = "Digital logic designer and simulator";
-    maintainers = with maintainers; [ emilytrau ];
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
-    license = licenses.gpl2Plus;
-    platforms = platforms.unix;
+    mainProgram = "logisim-evolution";
+    maintainers = with lib.maintainers; [ emilytrau ];
+    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
+    license = lib.licenses.gpl3Only;
+    platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/nixpkgs/pkgs/applications/science/logic/logisim/default.nix b/nixpkgs/pkgs/applications/science/logic/logisim/default.nix
index ea8a1416a77a..d278f1e78468 100644
--- a/nixpkgs/pkgs/applications/science/logic/logisim/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/logisim/default.nix
@@ -1,25 +1,39 @@
-{ lib, stdenv, fetchurl, jre, makeWrapper, copyDesktopItems, makeDesktopItem, unzip }:
+{ lib
+, stdenv
+, fetchurl
+, jre
+, makeBinaryWrapper
+, copyDesktopItems
+, makeDesktopItem
+, desktopToDarwinBundle
+, unzip
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "logisim";
   version = "2.7.1";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/circuit/${lib.versions.majorMinor version}.x/${version}/logisim-generic-${version}.jar";
-    sha256 = "1hkvc9zc7qmvjbl9579p84hw3n8wl3275246xlzj136i5b0phain";
+    url = "mirror://sourceforge/project/circuit/${lib.versions.majorMinor finalAttrs.version}.x/${finalAttrs.version}/logisim-generic-${finalAttrs.version}.jar";
+    hash = "sha256-Nip4wSrRjCA/7YaIcsSgHNnBIUE3nZLokrviw35ie8I=";
   };
-
   dontUnpack = true;
 
-  nativeBuildInputs = [ makeWrapper copyDesktopItems unzip ];
+  nativeBuildInputs = [
+    makeBinaryWrapper
+    copyDesktopItems
+    unzip
+  ] ++ lib.optionals stdenv.isDarwin [
+    desktopToDarwinBundle
+  ];
 
   desktopItems = [
     (makeDesktopItem {
-      name = pname;
+      name = "logisim";
       desktopName = "Logisim";
       exec = "logisim";
       icon = "logisim";
-      comment = meta.description;
+      comment = finalAttrs.meta.description;
       categories = [ "Education" ];
     })
   ];
@@ -34,18 +48,19 @@ stdenv.mkDerivation rec {
     unzip $src "resources/logisim/img/*"
     for size in 16 20 24 48 64 128
     do
-      install -D "./resources/logisim/img/logisim-icon-$size.png" "$out/share/icons/hicolor/''${size}x''${size}/apps/logisim.png"
+      install -Dm444 "./resources/logisim/img/logisim-icon-$size.png" "$out/share/icons/hicolor/''${size}x''${size}/apps/logisim.png"
     done
 
     runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
     homepage = "http://www.cburch.com/logisim/";
     description = "Educational tool for designing and simulating digital logic circuits";
-    maintainers = with maintainers; [ emilytrau ];
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
-    license = licenses.gpl2Plus;
-    platforms = platforms.unix;
+    mainProgram = "logisim";
+    maintainers = with lib.maintainers; [ emilytrau ];
+    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
+    license = lib.licenses.gpl2Only;
+    platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix b/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix
index 30c13c6036f9..19ade58fbfaa 100644
--- a/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Fast translation from LTL formulae to Buchi automata";
+    mainProgram = "ltl2ba";
     homepage    = "http://www.lsv.ens-cachan.fr/~gastin/ltl2ba";
     license     = lib.licenses.gpl2Plus;
     platforms   = lib.platforms.darwin ++ lib.platforms.linux;
diff --git a/nixpkgs/pkgs/applications/science/logic/metis-prover/default.nix b/nixpkgs/pkgs/applications/science/logic/metis-prover/default.nix
index 5b17403dc7f4..bd6f71860bdb 100644
--- a/nixpkgs/pkgs/applications/science/logic/metis-prover/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/metis-prover/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Automatic theorem prover for first-order logic with equality";
+    mainProgram = "metis";
     homepage = "https://www.gilith.com/research/metis/";
     license = licenses.mit;
     maintainers = with maintainers; [ gebner ];
diff --git a/nixpkgs/pkgs/applications/science/logic/monosat/default.nix b/nixpkgs/pkgs/applications/science/logic/monosat/default.nix
index 5b894d2c9376..067ba8ceb1b3 100644
--- a/nixpkgs/pkgs/applications/science/logic/monosat/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/monosat/default.nix
@@ -61,6 +61,7 @@ let
 
     meta = {
       description = "SMT solver for Monotonic Theories";
+      mainProgram = "monosat";
       platforms   = platforms.unix;
       license     = if includeGplCode then licenses.gpl2 else licenses.mit;
       homepage    = "https://github.com/sambayless/monosat";
diff --git a/nixpkgs/pkgs/applications/science/logic/msat/default.nix b/nixpkgs/pkgs/applications/science/logic/msat/default.nix
index dc2b1a221199..299fe95224eb 100644
--- a/nixpkgs/pkgs/applications/science/logic/msat/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/msat/default.nix
@@ -9,5 +9,6 @@ with ocamlPackages; buildDunePackage {
 
   meta = msat.meta // {
     description = "SAT solver binary based on the msat library";
+    mainProgram = "msat";
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/logic/naproche/default.nix b/nixpkgs/pkgs/applications/science/logic/naproche/default.nix
index f6743745a7b6..d2070ba8240f 100644
--- a/nixpkgs/pkgs/applications/science/logic/naproche/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/naproche/default.nix
@@ -2,13 +2,13 @@
 
 with haskellPackages; mkDerivation {
   pname = "Naproche-SAD";
-  version = "unstable-2023-07-11";
+  version = "unstable-2024-01-18";
 
   src = fetchFromGitHub {
     owner = "naproche";
     repo = "naproche";
-    rev = "4c399d49a86987369bec6e1ac5ae3739cd6db0a8";
-    sha256 = "sha256-Ji6yxbDEcwuYAzIZwK5sHNltK1WBFBfpyoEtoID/U4k=";
+    rev = "bb3dbcbd2173e3334bc5bdcd04c07c6836a11387";
+    hash = "sha256-DWcowUjy8/VBuhqvDYlVINHssF4KhuzT0L+m1YwUxoE=";
   };
 
   isExecutable = true;
@@ -20,11 +20,7 @@ with haskellPackages; mkDerivation {
   ];
 
   prePatch = "hpack";
-
-  checkPhase = ''
-    export NAPROCHE_EPROVER=${eprover}/bin/eprover
-    dist/build/Naproche-SAD/Naproche-SAD examples/cantor.ftl.tex -t 60 --tex=on
-  '';
+  doCheck = false; # Tests are broken in upstream
 
   postInstall = ''
     wrapProgram $out/bin/Naproche-SAD \
@@ -35,4 +31,5 @@ with haskellPackages; mkDerivation {
   description = "Write formal proofs in natural language and LaTeX";
   maintainers = with lib.maintainers; [ jvanbruegge ];
   license = lib.licenses.gpl3Only;
+  mainProgram = "Naproche-SAD";
 }
diff --git a/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix b/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix
index 3677eb39de6a..2290ff29224b 100644
--- a/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/open-wbo/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "State-of-the-art MaxSAT and Pseudo-Boolean solver";
+    mainProgram = "open-wbo";
     maintainers = with maintainers; [ gebner ];
     platforms = platforms.unix;
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/science/logic/opensmt/default.nix b/nixpkgs/pkgs/applications/science/logic/opensmt/default.nix
index 6d073400209d..4a5f453f3547 100644
--- a/nixpkgs/pkgs/applications/science/logic/opensmt/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/opensmt/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "A satisfiability modulo theory (SMT) solver";
+    mainProgram = "opensmt";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
     license = if enableReadline then licenses.gpl2Plus else licenses.mit;
diff --git a/nixpkgs/pkgs/applications/science/logic/ott/default.nix b/nixpkgs/pkgs/applications/science/logic/ott/default.nix
index a00c565fb4e0..b8197aaa4123 100644
--- a/nixpkgs/pkgs/applications/science/logic/ott/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/ott/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A tool for the working semanticist";
+    mainProgram = "ott";
     longDescription = ''
       Ott is a tool for writing definitions of programming languages and
       calculi. It takes as input a definition of a language syntax and
diff --git a/nixpkgs/pkgs/applications/science/logic/potassco/clingcon.nix b/nixpkgs/pkgs/applications/science/logic/potassco/clingcon.nix
index 4966bf608bc9..957ebfd3ec43 100644
--- a/nixpkgs/pkgs/applications/science/logic/potassco/clingcon.nix
+++ b/nixpkgs/pkgs/applications/science/logic/potassco/clingcon.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Extension of clingo to handle constraints over integers";
+    mainProgram = "clingcon";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     homepage = "https://potassco.org/";
diff --git a/nixpkgs/pkgs/applications/science/logic/prooftree/default.nix b/nixpkgs/pkgs/applications/science/logic/prooftree/default.nix
index 4e65c018d1a2..adb64f02c14f 100644
--- a/nixpkgs/pkgs/applications/science/logic/prooftree/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/prooftree/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A program for proof-tree visualization";
+    mainProgram = "prooftree";
     longDescription = ''
       Prooftree is a program for proof-tree visualization during interactive
       proof development in a theorem prover. It is currently being developed
diff --git a/nixpkgs/pkgs/applications/science/logic/redprl/default.nix b/nixpkgs/pkgs/applications/science/logic/redprl/default.nix
index 656f3f1b653e..2749730f9d66 100644
--- a/nixpkgs/pkgs/applications/science/logic/redprl/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/redprl/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A proof assistant for Nominal Computational Type Theory";
+    mainProgram = "redprl";
     homepage = "http://www.redprl.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ acowley ];
diff --git a/nixpkgs/pkgs/applications/science/logic/satallax/default.nix b/nixpkgs/pkgs/applications/science/logic/satallax/default.nix
index af11cd0d6d8f..bd3e9d3e8351 100644
--- a/nixpkgs/pkgs/applications/science/logic/satallax/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/satallax/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Automated theorem prover for higher-order logic";
+    mainProgram = "satallax";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix b/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix
index 86c3db9942a1..288ddc06806a 100644
--- a/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix
+++ b/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix
@@ -90,6 +90,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://research.microsoft.com/en-us/um/people/lamport/tla/toolbox.html";
     description = "IDE for the TLA+ tools";
+    mainProgram = "tla-toolbox";
     longDescription = ''
       Integrated development environment for the TLA+ tools, based on Eclipse. You can use it
       to create and edit your specs, run the PlusCal translator, view the pretty-printed
diff --git a/nixpkgs/pkgs/applications/science/logic/vampire/default.nix b/nixpkgs/pkgs/applications/science/logic/vampire/default.nix
index a3c1aa3f131d..62427e2ee455 100644
--- a/nixpkgs/pkgs/applications/science/logic/vampire/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/vampire/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://vprover.github.io/";
     description = "The Vampire Theorem Prover";
+    mainProgram = "vampire";
     platforms = platforms.unix;
     license = licenses.bsd3;
     maintainers = with maintainers; [ gebner ];
diff --git a/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix b/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix
index 89f6e23c79d3..cc512acad793 100644
--- a/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://workcraft.org/";
     description = "Framework for interpreted graph modeling, verification and synthesis";
+    mainProgram = "workcraft";
     platforms = lib.platforms.linux;
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ timor ];
diff --git a/nixpkgs/pkgs/applications/science/logic/z3/default.nix b/nixpkgs/pkgs/applications/science/logic/z3/default.nix
index b247599a0813..f35da4a732b0 100644
--- a/nixpkgs/pkgs/applications/science/logic/z3/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/z3/default.nix
@@ -79,6 +79,7 @@ let common = { version, sha256, patches ? [ ], tag ? "z3" }:
 
     meta = with lib; {
       description = "A high-performance theorem prover and SMT solver";
+      mainProgram = "z3";
       homepage = "https://github.com/Z3Prover/z3";
       changelog = "https://github.com/Z3Prover/z3/releases/tag/z3-${version}";
       license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/science/logic/zchaff/default.nix b/nixpkgs/pkgs/applications/science/logic/zchaff/default.nix
index 57f673042dc8..5e22ff448ed3 100644
--- a/nixpkgs/pkgs/applications/science/logic/zchaff/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/zchaff/default.nix
@@ -24,6 +24,7 @@ clangStdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.princeton.edu/~chaff/zchaf";
     description = "Accelerated SAT Solver from Princeton";
+    mainProgram = "zchaff";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/fasttext/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/fasttext/default.nix
index 301308f90136..b0a36bedc536 100644
--- a/nixpkgs/pkgs/applications/science/machine-learning/fasttext/default.nix
+++ b/nixpkgs/pkgs/applications/science/machine-learning/fasttext/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library for text classification and representation learning";
+    mainProgram = "fasttext";
     homepage = "https://fasttext.cc/";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix
index 6b76eea33cef..1a6e9351d3a7 100644
--- a/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix
+++ b/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix
@@ -44,6 +44,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Utility for training word and subword embeddings";
+    mainProgram = "finalfrontier";
     homepage = "https://github.com/finalfusion/finalfrontier/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix
index 23703ed09952..244eaa05d695 100644
--- a/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix
+++ b/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix
@@ -29,6 +29,7 @@
     '';
     meta = with lib; {
       description = "A graphical image annotation tool and label object bounding boxes in images";
+      mainProgram = "labelImg";
       homepage = "https://github.com/tzutalin/labelImg";
       license = licenses.mit;
       platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/uarmsolver/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/uarmsolver/default.nix
index 811f1bd23c80..12bca5531364 100644
--- a/nixpkgs/pkgs/applications/science/machine-learning/uarmsolver/default.nix
+++ b/nixpkgs/pkgs/applications/science/machine-learning/uarmsolver/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "universal Association Rule Mining Solver";
+    mainProgram = "uARMSolver";
     homepage    = "https://github.com/firefly-cpp/uARMSolver";
     license     = licenses.mit;
     platforms   = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/science/math/LiE/default.nix b/nixpkgs/pkgs/applications/science/math/LiE/default.nix
index d05cc90ca44c..7eb9edbb3b19 100644
--- a/nixpkgs/pkgs/applications/science/math/LiE/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/LiE/default.nix
@@ -9,6 +9,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "A Computer algebra package for Lie group computations";
+    mainProgram = "lie";
     homepage = "http://wwwmathlabo.univ-poitiers.fr/~maavl/LiE/";
     license = lib.licenses.lgpl3; # see the website
 
diff --git a/nixpkgs/pkgs/applications/science/math/R/default.nix b/nixpkgs/pkgs/applications/science/math/R/default.nix
index f4cc1f1fbfea..acfc38686ea4 100644
--- a/nixpkgs/pkgs/applications/science/math/R/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/R/default.nix
@@ -15,13 +15,13 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "R";
-  version = "4.3.2";
+  version = "4.3.3";
 
   src = let
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "https://cran.r-project.org/src/base/R-${lib.versions.major version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-s/V2CsLu6AJqPw7vyyW0dyPZeAOO7o6ER2IJTIYMRSo=";
+    sha256 = "sha256-gIUSMTk7hb84d+6eObKC51Dthkxexgy9aObhOfBSAzA=";
   };
 
   outputs = [ "out" "tex" ];
diff --git a/nixpkgs/pkgs/applications/science/math/almonds/default.nix b/nixpkgs/pkgs/applications/science/math/almonds/default.nix
index ec3891667c58..2b05b552253d 100644
--- a/nixpkgs/pkgs/applications/science/math/almonds/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/almonds/default.nix
@@ -19,6 +19,7 @@ with python3.pkgs; buildPythonApplication rec {
 
   meta = with lib; {
     description = "Terminal Mandelbrot fractal viewer";
+    mainProgram = "almonds";
     homepage = "https://github.com/Tenchi2xh/Almonds";
     license = licenses.mit;
     maintainers = with maintainers; [ infinisil ];
diff --git a/nixpkgs/pkgs/applications/science/math/bcal/default.nix b/nixpkgs/pkgs/applications/science/math/bcal/default.nix
index fdf07a2a3299..9ba028d1cb65 100644
--- a/nixpkgs/pkgs/applications/science/math/bcal/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/bcal/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Storage conversion and expression calculator";
+    mainProgram = "bcal";
     homepage = "https://github.com/jarun/bcal";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/math/bliss/default.nix b/nixpkgs/pkgs/applications/science/math/bliss/default.nix
index 4fccc3a46403..33969c705d05 100644
--- a/nixpkgs/pkgs/applications/science/math/bliss/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/bliss/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An open source tool for computing automorphism groups and canonical forms of graphs. It has both a command line user interface as well as C++ and C programming language APIs";
+    mainProgram = "bliss";
     homepage = "http://www.tcs.hut.fi/Software/bliss/";
     license = licenses.lgpl3;
     platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
diff --git a/nixpkgs/pkgs/applications/science/math/calc/default.nix b/nixpkgs/pkgs/applications/science/math/calc/default.nix
index 0f8982eac5b9..699f3d25caf7 100644
--- a/nixpkgs/pkgs/applications/science/math/calc/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/calc/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "http://www.isthe.com/chongo/tech/comp/calc/";
     description = "C-style arbitrary precision calculator";
+    mainProgram = "calc";
     changelog = "https://github.com/lcn2/calc/blob/v${finalAttrs.version}/CHANGES";
     # The licensing situation depends on readline (see section 3 of the LGPL)
     # If linked against readline then GPLv2 otherwise LGPLv2.1
diff --git a/nixpkgs/pkgs/applications/science/math/calculix/default.nix b/nixpkgs/pkgs/applications/science/math/calculix/default.nix
index 7a89fdd73c84..8af2ea9f4bce 100644
--- a/nixpkgs/pkgs/applications/science/math/calculix/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/calculix/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.calculix.de/";
     description = "Three-dimensional structural finite element program";
+    mainProgram = "ccx";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ gebner ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/math/cemu-ti/default.nix b/nixpkgs/pkgs/applications/science/math/cemu-ti/default.nix
index 2f2440eacfed..c8d5bea6f602 100644
--- a/nixpkgs/pkgs/applications/science/math/cemu-ti/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/cemu-ti/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Third-party TI-84 Plus CE / TI-83 Premium CE emulator, focused on developer features";
+    mainProgram = "CEmu";
     homepage = "https://ce-programming.github.io/CEmu";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ luc65r ];
diff --git a/nixpkgs/pkgs/applications/science/math/clp/default.nix b/nixpkgs/pkgs/applications/science/math/clp/default.nix
index 4cfff4702e69..06032b4a3182 100644
--- a/nixpkgs/pkgs/applications/science/math/clp/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/clp/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     license = licenses.epl20;
     homepage = "https://github.com/coin-or/Clp";
     description = "An open-source linear programming solver written in C++";
+    mainProgram = "clp";
     platforms = platforms.darwin ++ platforms.linux;
     maintainers = [ maintainers.vbgl ];
   };
diff --git a/nixpkgs/pkgs/applications/science/math/ecm/default.nix b/nixpkgs/pkgs/applications/science/math/ecm/default.nix
index c59b1a8729a2..222db0e98e6a 100644
--- a/nixpkgs/pkgs/applications/science/math/ecm/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/ecm/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Elliptic Curve Method for Integer Factorization";
+    mainProgram = "ecm";
     license = lib.licenses.gpl2Plus;
     homepage = "http://ecm.gforge.inria.fr/";
     maintainers = [ lib.maintainers.roconnor ];
diff --git a/nixpkgs/pkgs/applications/science/math/eigenmath/default.nix b/nixpkgs/pkgs/applications/science/math/eigenmath/default.nix
index 49515a6601d4..358e491b2f4a 100644
--- a/nixpkgs/pkgs/applications/science/math/eigenmath/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/eigenmath/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eigenmath";
-  version = "unstable-2024-03-06";
+  version = "unstable-2024-03-20";
 
   src = fetchFromGitHub {
     owner = "georgeweigt";
     repo = pname;
-    rev = "ff2a5f89969e106f57ad624ac3897e06f26692d7";
-    hash = "sha256-54nw734EjICaac8PvdgiGeDWdJTCXnWVUJL2uE937E4=";
+    rev = "262a6525225be7bcef52c3072b1061db3c238055";
+    hash = "sha256-QH8mLlcCOuq77vLer8RsSnD9VeJu9kAVv2qWAH3ky6I=";
   };
 
   checkPhase = let emulator = stdenv.hostPlatform.emulator buildPackages; in ''
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib;{
     description = "Computer algebra system written in C";
+    mainProgram = "eigenmath";
     homepage = "https://georgeweigt.github.io";
     license = licenses.bsd2;
     maintainers = with maintainers; [ nickcao ];
diff --git a/nixpkgs/pkgs/applications/science/math/engauge-digitizer/default.nix b/nixpkgs/pkgs/applications/science/math/engauge-digitizer/default.nix
index 4c26dc2887c8..95306a0820fa 100644
--- a/nixpkgs/pkgs/applications/science/math/engauge-digitizer/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/engauge-digitizer/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Engauge Digitizer is a tool for recovering graph data from an image file";
+    mainProgram = "engauge";
     homepage = "https://markummitchell.github.io/engauge-digitizer";
     license = with licenses; [ gpl2Only ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/science/math/getdp/default.nix b/nixpkgs/pkgs/applications/science/math/getdp/default.nix
index b5f4263c793d..d28f59e4be2f 100644
--- a/nixpkgs/pkgs/applications/science/math/getdp/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/getdp/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "getdp";
-  version = "3.5.0";
+  version = "3.6.0";
   src = fetchurl {
     url = "http://getdp.info/src/getdp-${version}-source.tgz";
-    sha256 = "sha256-C/dsSe+puIQBpFfBL3qr2XWXrUnvYy0/uTCKqOpDe9w=";
+    sha256 = "sha256-N1cb72W77Dr+TzeHpLgv5FuFb+SJqyGcfn+kOfEvZgA=";
   };
 
   inherit (petsc) mpiSupport;
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A General Environment for the Treatment of Discrete Problems";
+    mainProgram = "getdp";
     longDescription = ''
       GetDP is a free finite element solver using mixed elements to discretize
       de Rham-type complexes in one, two and three dimensions.  The main
diff --git a/nixpkgs/pkgs/applications/science/math/glsurf/default.nix b/nixpkgs/pkgs/applications/science/math/glsurf/default.nix
index b4e8c6fb23db..d2ebba75638b 100644
--- a/nixpkgs/pkgs/applications/science/math/glsurf/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/glsurf/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://raffalli.eu/~christophe/glsurf/";
     description = "A program to draw implicit surfaces and curves";
+    mainProgram = "glsurf";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
   };
diff --git a/nixpkgs/pkgs/applications/science/math/gmsh/default.nix b/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
index 62a0c3c405df..669d3a3ab8f1 100644
--- a/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A three-dimensional finite element mesh generator";
+    mainProgram = "gmsh";
     homepage = "https://gmsh.info/";
     license = lib.licenses.gpl2Plus;
   };
diff --git a/nixpkgs/pkgs/applications/science/math/jags/default.nix b/nixpkgs/pkgs/applications/science/math/jags/default.nix
index 087807013694..50d7df24417a 100644
--- a/nixpkgs/pkgs/applications/science/math/jags/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/jags/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Just Another Gibbs Sampler";
+    mainProgram = "jags";
     license = licenses.gpl2;
     homepage = "http://mcmc-jags.sourceforge.net";
     maintainers = [ maintainers.andres ];
diff --git a/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix b/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix
index ee54def6eb97..fdabc8896a58 100644
--- a/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Mixed Integer Linear Programming (MILP) solver";
+    mainProgram = "lp_solve";
     homepage = "https://lpsolve.sourceforge.net";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ smironov ];
diff --git a/nixpkgs/pkgs/applications/science/math/msieve/default.nix b/nixpkgs/pkgs/applications/science/math/msieve/default.nix
index 6456608e7dbc..1de6d416a0e6 100644
--- a/nixpkgs/pkgs/applications/science/math/msieve/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/msieve/default.nix
@@ -1,12 +1,13 @@
-{ lib, stdenv, fetchurl, zlib, gmp, ecm }:
+{ lib, stdenv, fetchsvn, zlib, gmp, ecm }:
 
 stdenv.mkDerivation rec {
   pname = "msieve";
-  version = "1.53";
+  version = "r1050";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/msieve/msieve/Msieve%20v${version}/msieve${lib.replaceStrings ["."] [""] version}_src.tar.gz";
-    sha256 = "1d1vv7j4rh3nnxsmvafi73qy7lw7n3akjlm5pjl3m936yapvmz65";
+  src = fetchsvn {
+    url = "svn://svn.code.sf.net/p/msieve/code/trunk";
+    rev = "1050";
+    hash = "sha256-cn6OhE4zhrpB7BFrRdOnucjATbfo5mLkK7O0Usx1quE=";
   };
 
   buildInputs = [ zlib gmp ecm ];
@@ -23,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A C library implementing a suite of algorithms to factor large integers";
+    mainProgram = "msieve";
     license = lib.licenses.publicDomain;
     homepage = "http://msieve.sourceforge.net/";
     maintainers = [ lib.maintainers.roconnor ];
diff --git a/nixpkgs/pkgs/applications/science/math/nauty/default.nix b/nixpkgs/pkgs/applications/science/math/nauty/default.nix
index ef8c041039b1..c1feeffdcb6d 100644
--- a/nixpkgs/pkgs/applications/science/math/nauty/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/nauty/default.nix
@@ -4,11 +4,11 @@
 }:
 stdenv.mkDerivation rec {
   pname = "nauty";
-  version = "2.7r4";
+  version = "2.8.8";
 
   src = fetchurl {
-    url = "https://pallini.di.uniroma1.it/nauty${builtins.replaceStrings ["."] [""] version}.tar.gz";
-    sha256 = "sha256-uBDIWm/imfO0yfJKr5KcrH+VRsLzXCDh3Qrbx0CISKY=";
+    url = "https://pallini.di.uniroma1.it/nauty${builtins.replaceStrings ["."] ["_"] version}.tar.gz";
+    sha256 = "sha256-FZ0hVoEKa7JAQQzWHrZBrdhQiNnxXIiM2qN7hoH5Kc4=";
   };
 
   outputs = [ "out" "dev" ];
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     # I'm not sure if the filename will remain the same for future changelog or
     # if it will track changes to minor releases. Lets see. Better than nothing
     # in any case.
-    changelog = "https://pallini.di.uniroma1.it/changes24-27.txt";
+    changelog = "https://pallini.di.uniroma1.it/changes24-28.txt";
     homepage = "https://pallini.di.uniroma1.it/";
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/math/nota/default.nix b/nixpkgs/pkgs/applications/science/math/nota/default.nix
index 897785ef6e8b..810d7d6d72bc 100644
--- a/nixpkgs/pkgs/applications/science/math/nota/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/nota/default.nix
@@ -37,4 +37,5 @@ mkDerivation rec {
   homepage = "https://kary.us/nota";
   license = lib.licenses.mpl20;
   maintainers = with lib.maintainers; [ dtzWill ];
+  mainProgram = "nota";
 }
diff --git a/nixpkgs/pkgs/applications/science/math/palp/default.nix b/nixpkgs/pkgs/applications/science/math/palp/default.nix
index ffe17bc3dec2..2fe77aa14a65 100644
--- a/nixpkgs/pkgs/applications/science/math/palp/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/palp/default.nix
@@ -10,11 +10,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "palp";
-  version = "2.20";
+  version = "2.21";
 
   src = fetchurl {
     url = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/palp/${pname}-${version}.tar.gz";
-    sha256 = "1q1cl3vpdir16szy0jcadysydcrjp48hqxyx42kr8g9digkqjgkj";
+    sha256 = "sha256-fkp78hmZioRMC8zgoXbknQdDy0tQWg4ZUym/LsGW3dc=";
   };
 
   hardeningDisable = [
diff --git a/nixpkgs/pkgs/applications/science/math/pcalc/default.nix b/nixpkgs/pkgs/applications/science/math/pcalc/default.nix
index 97888b712eb1..64ab5acebed2 100644
--- a/nixpkgs/pkgs/applications/science/math/pcalc/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/pcalc/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://vapier.github.io/pcalc/";
     description = "Programmer's calculator";
+    mainProgram = "pcalc";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ftrvxmtrx ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/math/perseus/default.nix b/nixpkgs/pkgs/applications/science/math/perseus/default.nix
index bbfc8aed4428..9a37eeac66da 100644
--- a/nixpkgs/pkgs/applications/science/math/perseus/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/perseus/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "The Persistent Homology Software";
+    mainProgram = "perseus";
     longDescription = ''
       Persistent homology - or simply, persistence - is an algebraic
       topological invariant of a filtered cell complex. Perseus
diff --git a/nixpkgs/pkgs/applications/science/math/programmer-calculator/default.nix b/nixpkgs/pkgs/applications/science/math/programmer-calculator/default.nix
index ee48a1d0f1a3..9cb220ceca6a 100644
--- a/nixpkgs/pkgs/applications/science/math/programmer-calculator/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/programmer-calculator/default.nix
@@ -21,6 +21,7 @@ gccStdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A terminal calculator for programmers";
+    mainProgram = "pcalc";
     longDescription = ''
       Terminal calculator made for programmers working with multiple number
       representations, sizes, and overall close to the bits
diff --git a/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix b/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
index 0c859fd95bea..2a2b4617d24b 100644
--- a/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "qalculate-gtk";
-  version = "4.9.0";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-gtk";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-rQxOOxM4TazkDs/H3KEPbdo6WBl0ptyAlZwv8nnGMss=";
+    hash = "sha256-hlGNL7aMzxBxtATWJBqJTFEQqMv10oC3sRCdtRLHOww=";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/nixpkgs/pkgs/applications/science/math/qalculate-qt/default.nix b/nixpkgs/pkgs/applications/science/math/qalculate-qt/default.nix
index 9932c7c2dcd9..296fc5f783f3 100644
--- a/nixpkgs/pkgs/applications/science/math/qalculate-qt/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/qalculate-qt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "qalculate-qt";
-  version = "4.9.0";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-qt";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-Ac8RRxLheaenlR7JqKzfBpPxsq7PHfE9qXFf3Vx4GSg=";
+    hash = "sha256-X7IY2yXpZiyE+T2dl0G4tWpJ5O6MVCy/sOY3v9inma0=";
   };
 
   nativeBuildInputs = [ qmake intltool pkg-config qttools wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix b/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix
index 42e6b7d00a5e..69b972fe9790 100644
--- a/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/ratpoints/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A program to find rational points on hyperelliptic curves";
+    mainProgram = "ratpoints";
     license = lib.licenses.gpl2Plus;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/math/ries/default.nix b/nixpkgs/pkgs/applications/science/math/ries/default.nix
index eb759723256d..5c0626913e3c 100644
--- a/nixpkgs/pkgs/applications/science/math/ries/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/ries/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://mrob.com/pub/ries/";
     description = "Tool to produce a list of equations that approximately solve to a given number";
+    mainProgram = "ries";
     platforms = platforms.all;
     maintainers = with maintainers; [ symphorien ];
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/science/math/ripser/default.nix b/nixpkgs/pkgs/applications/science/math/ripser/default.nix
index 50ccee58f503..83cf6bc51aa4 100644
--- a/nixpkgs/pkgs/applications/science/math/ripser/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/ripser/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "A lean C++ code for the computation of Vietoris–Rips persistence barcodes";
+    mainProgram = "ripser";
     homepage = "https://github.com/Ripser/ripser";
     license = lib.licenses.lgpl3;
     maintainers = with lib.maintainers; [erikryb];
diff --git a/nixpkgs/pkgs/applications/science/math/sage/default.nix b/nixpkgs/pkgs/applications/science/math/sage/default.nix
index 765c691c9555..6624dcc36528 100644
--- a/nixpkgs/pkgs/applications/science/math/sage/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/sage/default.nix
@@ -15,7 +15,7 @@ let
     pkgs = pkgs.python3.pkgs.overrideScope (self: super: {
       # `sagelib`, i.e. all of sage except some wrappers and runtime dependencies
       sagelib = self.callPackage ./sagelib.nix {
-        inherit flint arb;
+        inherit flint3;
         inherit sage-src env-locations singular;
         inherit (maxima) lisp-compiler;
         linbox = pkgs.linbox.override { withSage = true; };
@@ -73,7 +73,7 @@ let
     sagelib = python3.pkgs.sagelib;
     sage-docbuild = python3.pkgs.sage-docbuild;
     inherit env-locations;
-    inherit python3 singular palp flint pythonEnv maxima;
+    inherit python3 singular palp flint3 pythonEnv maxima;
     pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config
   };
 
@@ -125,9 +125,7 @@ let
     ignoreCollisions = true;
   } // { extraLibs = pythonRuntimeDeps; }; # make the libs accessible
 
-  arb = pkgs.arb.override { inherit flint; };
-
-  singular = pkgs.singular.override { inherit flint; };
+  singular = pkgs.singular.override { inherit flint3; };
 
   maxima = pkgs.maxima-ecl.override {
     lisp-compiler = pkgs.ecl.override {
@@ -149,7 +147,7 @@ let
   # openblas instead of openblasCompat. Apparently other packages somehow use flints
   # blas when it is available. Alternative would be to override flint to use
   # openblasCompat.
-  flint = pkgs.flint.override { withBlas = false; };
+  flint3 = pkgs.flint3.override { withBlas = false; };
 
   # Multiple palp dimensions need to be available and sage expects them all to be
   # in the same folder.
diff --git a/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix b/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix
index 39d358a1f9a8..1ca0f471a7ee 100644
--- a/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix
+++ b/nixpkgs/pkgs/applications/science/math/sage/env-locations.nix
@@ -3,7 +3,6 @@
 , pari
 , singular
 , maxima
-, conway_polynomials
 , graphs
 , elliptic_curves
 , polytopes_db
@@ -27,16 +26,13 @@ writeTextFile rec {
     export GPDOCDIR="${pari}/share/pari/doc"
     export SINGULARPATH='${singular}/share/singular'
     export SINGULAR_SO='${singular}/lib/libSingular.so'
-    export GAP_SO='${gap}/lib/libgap.so'
     export SINGULAR_EXECUTABLE='${singular}/bin/Singular'
     export MAXIMA_FAS='${maxima}/lib/maxima/${maxima.version}/binary-ecl/maxima.fas'
     export MAXIMA_PREFIX="${maxima}"
-    export CONWAY_POLYNOMIALS_DATA_DIR='${conway_polynomials}/share/conway_polynomials'
     export GRAPHS_DATA_DIR='${graphs}/share/graphs'
     export ELLCURVE_DATA_DIR='${elliptic_curves}/share/ellcurves'
     export POLYTOPE_DATA_DIR='${polytopes_db}/share/reflexive_polytopes'
-    export GAP_LIB_DIR='${gap}/lib/gap'
-    export GAP_SHARE_DIR='${gap}/share/gap'
+    export GAP_ROOT_PATHS='${gap}/lib/gap;${gap}/share/gap'
     export ECLDIR='${maxima.lisp-compiler}/lib/${maxima.lisp-compiler.pname}-${maxima.lisp-compiler.version}/'
     export COMBINATORIAL_DESIGN_DATA_DIR="${combinatorial_designs}/share/combinatorial_designs"
     export CREMONA_MINI_DATA_DIR="${elliptic_curves}/share/cremona"
diff --git a/nixpkgs/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix b/nixpkgs/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix
index fb8c3ec8a204..b45998bbcb86 100644
--- a/nixpkgs/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix
+++ b/nixpkgs/pkgs/applications/science/math/sage/python-modules/sage-docbuild.nix
@@ -4,6 +4,7 @@
 , jupyter-sphinx
 , sphinx
 , sphinx-copybutton
+, sphinx-inline-tabs
 }:
 
 buildPythonPackage rec {
@@ -15,6 +16,7 @@ buildPythonPackage rec {
     jupyter-sphinx
     sphinx
     sphinx-copybutton
+    sphinx-inline-tabs
   ];
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix b/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix
index 4c22470de910..4f179ea3a42b 100644
--- a/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix
+++ b/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix
@@ -42,7 +42,7 @@
 , flintqs
 , blas
 , lapack
-, flint
+, flint3
 , gmp
 , mpfr
 , zlib
@@ -155,7 +155,7 @@ writeTextFile rec {
     # cython needs to find these libraries, otherwise will fail with `ld: cannot find -lflint` or similar
     export LDFLAGS='${
       lib.concatStringsSep " " (map (pkg: "-L${pkg}/lib") [
-        flint
+        flint3
         gap
         glpk
         gmp
@@ -174,7 +174,7 @@ writeTextFile rec {
         singular
         gmp.dev
         glpk
-        flint
+        flint3
         gap
         mpfr.dev
       ])
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix b/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
index a77565e4072a..11bcc9ee3d5a 100644
--- a/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
+++ b/nixpkgs/pkgs/applications/science/math/sage/sage-src.nix
@@ -10,14 +10,14 @@
 # all get the same sources with the same patches applied.
 
 stdenv.mkDerivation rec {
-  version = "10.2";
+  version = "10.3";
   pname = "sage-src";
 
   src = fetchFromGitHub {
     owner = "sagemath";
     repo = "sage";
     rev = version;
-    sha256 = "sha256-VXnPdJhtw5Y/anecrVpevJDCyBVfnjksyuuZslNipm4=";
+    hash = "sha256-OHtMv8t0RrP6R8XIREU+C1vpazeQLWa75wx9Mv6BN1U=";
   };
 
   # contains essential files (e.g., setup.cfg) generated by the bootstrap script.
@@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
   configure-src = fetchurl {
     # the hash below is the tagged commit's _parent_. it can also be found by looking for
     # the "configure" asset at https://github.com/sagemath/sage/releases/tag/${version}
-    url = "mirror://sageupstream/configure/configure-b2813506039143e6f0abe859ab67a343abf72c2e.tar.gz";
-    sha256 = "sha256-a1v0XyoKI+zO6Sjm8DzEwItRHbIgRDbpj4UfwVH+/hw=";
+    url = "mirror://sageupstream/configure/configure-ab1a517b64b02bf15bbcb8d7c2d4d643bd5eff9b.tar.gz";
+    hash = "sha256-pe9AxTM+gFSR4/eVfUzay+4bwjoubbYeDPc+avKjlaw=";
   };
 
   # Patches needed because of particularities of nix or the way this is packaged.
@@ -62,11 +62,11 @@ stdenv.mkDerivation rec {
   # should come from or be proposed to upstream. This list will probably never
   # be empty since dependencies update all the time.
   packageUpgradePatches = [
-    # https://github.com/sagemath/sage/pull/37123, to land in 10.3.beta7
+    # https://github.com/sagemath/sage/pull/37492
     (fetchpatch {
-      name = "scipy-1.12-upgrade.patch";
-      url = "https://github.com/sagemath/sage/commit/54eec464e9fdf18b411d9148aecb918178e95909.diff";
-      sha256 = "sha256-9wyNrcSfF6mYFTIV4ev2OdD7igb0AeyZZYWSc/+JrIU=";
+      name = "singular-4.3.2p14-upgrade.patch";
+      url = "https://github.com/sagemath/sage/commit/a0c56816b051e97da44ac0a4e4d4f6915cf7fa0f.diff";
+      sha256 = "sha256-WGMmPeBoj2LUC+2qxWuaJL89QUuGt6axGvxWkpM9LYg=";
     })
   ];
 
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sage.nix b/nixpkgs/pkgs/applications/science/math/sage/sage.nix
index 227e4bbdbfdb..81b55e841d24 100644
--- a/nixpkgs/pkgs/applications/science/math/sage/sage.nix
+++ b/nixpkgs/pkgs/applications/science/math/sage/sage.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab";
+    mainProgram = "sage";
     homepage = "https://www.sagemath.org";
     license = licenses.gpl2Plus;
     maintainers = teams.sage.members;
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix b/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix
index 5a1f4ee473c9..b67b74e3a0f2 100644
--- a/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix
+++ b/nixpkgs/pkgs/applications/science/math/sage/sagelib.nix
@@ -10,7 +10,6 @@
 , iml
 , libpng
 , readline
-, arb
 , blas
 , boost
 , brial
@@ -18,7 +17,7 @@
 , eclib
 , ecm
 , fflas-ffpack
-, flint
+, flint3
 , gap
 , giac
 , givaro
@@ -45,6 +44,7 @@
 , singular
 , sqlite
 , symmetrica
+, conway-polynomials
 , cvxopt
 , cypari2
 , cysignals
@@ -92,6 +92,7 @@ buildPythonPackage rec {
   version = src.version;
   pname = "sagelib";
   src = sage-src;
+  pyproject = true;
 
   nativeBuildInputs = [
     iml
@@ -112,7 +113,6 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     # native dependencies (TODO: determine which ones need to be propagated)
-    arb
     blas
     boost
     brial
@@ -120,7 +120,7 @@ buildPythonPackage rec {
     eclib
     ecm
     fflas-ffpack
-    flint
+    flint3
     gap
     giac
     givaro
@@ -149,6 +149,7 @@ buildPythonPackage rec {
     symmetrica
 
     # from src/sage/setup.cfg and requirements.txt
+    conway-polynomials
     cvxopt
     cypari2
     cysignals
@@ -202,11 +203,7 @@ buildPythonPackage rec {
     mkdir -p "$SAGE_SHARE/sage/ext/notebook-ipython"
     mkdir -p "var/lib/sage/installed"
 
-    # version lower bounds are useful, but upper bounds are a hassle because
-    # Sage tests already catch any relevant API breakage.
-    # according to the discussion at https://trac.sagemath.org/ticket/33520,
-    # upper bounds will be less noisy starting from Sage 9.6.
-    sed -i 's/, <[^, ]*//' build/pkgs/*/install-requires.txt
+    sed -i "/sage-conf/d" src/{setup.cfg,pyproject.toml,requirements.txt}
 
     cd build/pkgs/sagelib/src
   '';
diff --git a/nixpkgs/pkgs/applications/science/math/scalp/default.nix b/nixpkgs/pkgs/applications/science/math/scalp/default.nix
index 4145407d7aaa..fc230a11966f 100644
--- a/nixpkgs/pkgs/applications/science/math/scalp/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/scalp/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Scalable Linear Programming Library";
+    mainProgram = "scalp";
     homepage = "https://digidev.digi.e-technik.uni-kassel.de/scalp/";
     license = licenses.lgpl3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/math/singular/default.nix b/nixpkgs/pkgs/applications/science/math/singular/default.nix
index f77bd5a92243..a6c64066d88e 100644
--- a/nixpkgs/pkgs/applications/science/math/singular/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/singular/default.nix
@@ -5,7 +5,7 @@
 , sharutils
 , file
 , getconf
-, flint
+, flint3
 , ntl
 , cddlib
 , gfan
@@ -18,13 +18,13 @@
 # want it to match the upstream format because sage depends on it.
 , texinfo4
 , texliveSmall
-, enableDocs ? !stdenv.isDarwin
+, enableDocs ? true
 , enableGfanlib ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "singular";
-  version = "4.3.2p2";
+  version = "4.3.2p16";
 
   # since the tarball does not contain tests, we fetch from GitHub.
   src = fetchFromGitHub {
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     # if a release is tagged (which sometimes does not happen), it will
     # be in the format below.
     rev = "Release-${lib.replaceStrings ["."] ["-"] version}";
-    sha256 = "sha256-dtZmN8xUCZ9eSgmtBxqfJeWsM4W5Baq7xWXuNAxNLjA=";
+    sha256 = "sha256-5JZgI5lnfX4JlBSEAL7Wv6uao/57GBaMqwgslJt9Bjk=";
 
     # the repository's .gitattributes file contains the lines "/Tst/
     # export-ignore" and "/doc/ export-ignore" so some directories are
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
     ncurses
     readline
     ntl
-    flint
+    flint3
     lrcalc
     gfan
   ] ++ lib.optionals enableGfanlib [
diff --git a/nixpkgs/pkgs/applications/science/math/speedcrunch/default.nix b/nixpkgs/pkgs/applications/science/math/speedcrunch/default.nix
index 98bc6b031f19..a77474b86ffa 100644
--- a/nixpkgs/pkgs/applications/science/math/speedcrunch/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/speedcrunch/default.nix
@@ -23,6 +23,7 @@ mkDerivation rec {
     homepage    = "http://speedcrunch.org";
     license     = licenses.gpl2Plus;
     description = "A fast power user calculator";
+    mainProgram = "speedcrunch";
     longDescription = ''
       SpeedCrunch is a fast, high precision and powerful desktop calculator.
       Among its distinctive features are a scrollable display, up to 50 decimal
diff --git a/nixpkgs/pkgs/applications/science/math/weka/default.nix b/nixpkgs/pkgs/applications/science/math/weka/default.nix
index 004060f832c2..6f907ba9c0c3 100644
--- a/nixpkgs/pkgs/applications/science/math/weka/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/weka/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.cs.waikato.ac.nz/ml/weka/";
     description = "Collection of machine learning algorithms for data mining tasks";
+    mainProgram = "weka";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.mimame ];
diff --git a/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix b/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
index 057a11fa3cdd..4d2815d12997 100644
--- a/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation (finalAttrs:{
 
   meta = with lib; {
     description = "Cross platform GUI for the computer algebra system Maxima";
+    mainProgram = "wxmaxima";
     license = licenses.gpl2;
     homepage = "https://wxmaxima-developers.github.io/wxmaxima/";
     maintainers = with maintainers; [ doronbehar ];
diff --git a/nixpkgs/pkgs/applications/science/math/zegrapher/default.nix b/nixpkgs/pkgs/applications/science/math/zegrapher/default.nix
index 32633eb8015d..2beaf5757a55 100644
--- a/nixpkgs/pkgs/applications/science/math/zegrapher/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/zegrapher/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://zegrapher.com/";
     description = "An open source math plotter";
+    mainProgram = "ZeGrapher";
     longDescription = ''
       An open source, free and easy to use math plotter. It can plot functions,
       sequences, parametric equations and data on the plane.
diff --git a/nixpkgs/pkgs/applications/science/misc/bada-bib/default.nix b/nixpkgs/pkgs/applications/science/misc/bada-bib/default.nix
index 0eafebd9628c..189531532574 100644
--- a/nixpkgs/pkgs/applications/science/misc/bada-bib/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/bada-bib/default.nix
@@ -75,6 +75,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/RogerCrocker/BadaBib";
     description = "A simple BibTeX Viewer and Editor";
+    mainProgram = "badabib";
     maintainers = [ maintainers.Cogitri ];
     license = licenses.gpl3Plus;
   };
diff --git a/nixpkgs/pkgs/applications/science/misc/colmap/default.nix b/nixpkgs/pkgs/applications/science/misc/colmap/default.nix
index a029f5440b25..64a7952be4cc 100644
--- a/nixpkgs/pkgs/applications/science/misc/colmap/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/colmap/default.nix
@@ -37,7 +37,7 @@ mkDerivation rec {
   nativeBuildInputs = [
     cmake
   ] ++ lib.optionals cudaSupport [
-    cudaPackages.autoAddOpenGLRunpathHook
+    cudaPackages.autoAddDriverRunpath
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/science/misc/convertall/default.nix b/nixpkgs/pkgs/applications/science/misc/convertall/default.nix
index 9a7ac2a8b13c..534562b028d8 100644
--- a/nixpkgs/pkgs/applications/science/misc/convertall/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/convertall/default.nix
@@ -30,6 +30,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://convertall.bellz.org/";
     description = "Graphical unit converter";
+    mainProgram = "convertall";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ orivej ];
     platforms = pyqt5.meta.platforms;
diff --git a/nixpkgs/pkgs/applications/science/misc/cwltool/default.nix b/nixpkgs/pkgs/applications/science/misc/cwltool/default.nix
index fb3b26a12edf..9b4c711aba8f 100644
--- a/nixpkgs/pkgs/applications/science/misc/cwltool/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/cwltool/default.nix
@@ -84,6 +84,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Common Workflow Language reference implementation";
+    mainProgram = "cwltool";
     homepage = "https://www.commonwl.org";
     changelog = "https://github.com/common-workflow-language/cwltool/releases/tag/${version}";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix b/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
index bd5b698988d4..f4aaac1a3823 100644
--- a/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.cytoscape.org";
     description = "A general platform for complex network analysis and visualization";
+    mainProgram = "cytoscape";
     license = lib.licenses.lgpl21;
     maintainers = [lib.maintainers.mimame];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/misc/foldingathome/client.nix b/nixpkgs/pkgs/applications/science/misc/foldingathome/client.nix
index 108dcc284ea9..6ff159cc54cb 100644
--- a/nixpkgs/pkgs/applications/science/misc/foldingathome/client.nix
+++ b/nixpkgs/pkgs/applications/science/misc/foldingathome/client.nix
@@ -3,18 +3,23 @@
 , fetchFromGitHub
 , ocl-icd
 , openssl
+, re2
+, libevent
+, git
+, zlib
+, expat
 , scons
 , stdenv
 , extraPkgs ? [ ]
 }:
 let
-  version = "8.3.1";
+  version = "8.3.7";
 
   cbangSrc = fetchFromGitHub {
     owner = "cauldrondevelopmentllc";
     repo = "cbang";
     rev = "bastet-v${version}";
-    hash = "sha256-cuyfJG5aDJ6e2SllxwKTViG0j8FWHvjcTaaBBtkgEdU=";
+    sha256 = "sha256-acAImItdkgo6PBFL6Vu/caIdcnvp/3VEW2lgVDgKy9g=";
   };
 
   fah-client = stdenv.mkDerivation {
@@ -25,10 +30,10 @@ let
       owner = "FoldingAtHome";
       repo = "fah-client-bastet";
       rev = "v${version}";
-      hash = "sha256-Ztc2im4Xmk8f6GotGRgA5zDkcyQFnodUvroJVl+ApT4=";
+      sha256 = "sha256-d+LY/R4TAko+2e2W76KEBQ8fXj0hzzmBOm+c4tksXMA=";
     };
 
-    nativeBuildInputs = [ scons ];
+    nativeBuildInputs = [ scons re2 libevent git ];
 
     buildInputs = [ openssl ];
 
@@ -63,7 +68,7 @@ in
 buildFHSEnv {
   name = fah-client.name;
 
-  targetPkgs = _: [ fah-client ocl-icd ] ++ extraPkgs;
+  targetPkgs = _: [ fah-client ocl-icd zlib expat ] ++ extraPkgs;
 
   runScript = "/bin/fah-client";
 
diff --git a/nixpkgs/pkgs/applications/science/misc/gephi/default.nix b/nixpkgs/pkgs/applications/science/misc/gephi/default.nix
index 22c453dbab30..ab8134daf3ae 100644
--- a/nixpkgs/pkgs/applications/science/misc/gephi/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/gephi/default.nix
@@ -37,6 +37,7 @@ mavenJdk11.buildMavenPackage rec {
 
   meta = with lib; {
     description = "A platform for visualizing and manipulating large graphs";
+    mainProgram = "gephi";
     homepage = "https://gephi.org";
     sourceProvenance = with sourceTypes; [
       fromSource
diff --git a/nixpkgs/pkgs/applications/science/misc/gplates/default.nix b/nixpkgs/pkgs/applications/science/misc/gplates/default.nix
index 4ab17c22934e..74dd61a2228c 100644
--- a/nixpkgs/pkgs/applications/science/misc/gplates/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/gplates/default.nix
@@ -67,6 +67,7 @@ in stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Desktop software for the interactive visualisation of plate-tectonics";
+    mainProgram = "gplates";
     homepage = "https://www.gplates.org";
     license = licenses.gpl2Only;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/science/misc/netlogo/default.nix b/nixpkgs/pkgs/applications/science/misc/netlogo/default.nix
index db8f0a717aa1..13c3c36f90ae 100644
--- a/nixpkgs/pkgs/applications/science/misc/netlogo/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/netlogo/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A multi-agent programmable modeling environment";
+    mainProgram = "netlogo";
     longDescription = ''
       NetLogo is a multi-agent programmable modeling environment. It is used by
       many tens of thousands of students, teachers and researchers worldwide.
diff --git a/nixpkgs/pkgs/applications/science/misc/nextinspace/default.nix b/nixpkgs/pkgs/applications/science/misc/nextinspace/default.nix
index 78e21dcd8788..742b4cb622c2 100644
--- a/nixpkgs/pkgs/applications/science/misc/nextinspace/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/nextinspace/default.nix
@@ -37,6 +37,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Print upcoming space-related events in your terminal";
+    mainProgram = "nextinspace";
     homepage = "https://github.com/The-Kid-Gid/nextinspace";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ penguwin ];
diff --git a/nixpkgs/pkgs/applications/science/misc/openrefine/default.nix b/nixpkgs/pkgs/applications/science/misc/openrefine/default.nix
index 2ad67027ade4..9f2ef0f29b31 100644
--- a/nixpkgs/pkgs/applications/science/misc/openrefine/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/openrefine/default.nix
@@ -27,7 +27,7 @@ let
     inherit src version;
 
     pname = "openrefine-npm";
-    sourceRoot = "source/main/webapp";
+    sourceRoot = "${src.name}/main/webapp";
 
     npmDepsHash = "sha256-8GhcL4tohQ5u2HeYN6JyTMMobUOqAL8ETCLiP1SoDSk=";
 
diff --git a/nixpkgs/pkgs/applications/science/misc/reason-shell/default.nix b/nixpkgs/pkgs/applications/science/misc/reason-shell/default.nix
index aa1544669ed8..848f31abe4c6 100644
--- a/nixpkgs/pkgs/applications/science/misc/reason-shell/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/reason-shell/default.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A shell for research papers";
+    mainProgram = "reason";
     homepage = "https://github.com/jaywonchung/reason";
     changelog = "https://github.com/jaywonchung/reason/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/science/misc/rink/default.nix b/nixpkgs/pkgs/applications/science/misc/rink/default.nix
index b7e523f67474..1e88047eba72 100644
--- a/nixpkgs/pkgs/applications/science/misc/rink/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/rink/default.nix
@@ -23,6 +23,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Unit-aware calculator";
+    mainProgram = "rink";
     homepage = "https://rinkcalc.app";
     license = with licenses; [ mpl20 gpl3Plus ];
     maintainers = with maintainers; [ sb0 Br1ght0ne ];
diff --git a/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix b/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
index 5081b471fc95..628b40cd1300 100644
--- a/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
@@ -89,6 +89,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://snakemake.github.io";
     license = licenses.mit;
     description = "Python-based execution environment for make-like workflows";
+    mainProgram = "snakemake";
     longDescription = ''
       Snakemake is a workflow management system that aims to reduce the complexity of
       creating workflows by providing a fast and comfortable execution environment,
diff --git a/nixpkgs/pkgs/applications/science/misc/vite/default.nix b/nixpkgs/pkgs/applications/science/misc/vite/default.nix
index c748b6d1bd3f..f1c9329c94df 100644
--- a/nixpkgs/pkgs/applications/science/misc/vite/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/vite/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Visual Trace Explorer (ViTE), a tool to visualize execution traces";
+    mainProgram = "vite";
 
     longDescription = ''
       ViTE is a trace explorer. It is a tool to visualize execution
diff --git a/nixpkgs/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix b/nixpkgs/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix
index a13a071584fd..75ab576212d7 100644
--- a/nixpkgs/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix
+++ b/nixpkgs/pkgs/applications/science/molecular-dynamics/dl-poly-classic/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://www.ccp5.ac.uk/DL_POLY_C";
     description = "DL_POLY Classic is a general purpose molecular dynamics simulation package";
+    mainProgram = "DLPOLY.X";
     license = licenses.bsdOriginal;
     platforms = platforms.unix;
     maintainers = [ maintainers.costrouc ];
diff --git a/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix b/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix
index db27bb188cf5..4c2a80c2f1b7 100644
--- a/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix
+++ b/nixpkgs/pkgs/applications/science/molecular-dynamics/lammps/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
     pkg-config
     # Although not always needed, it is needed if cmakeFlags include
     # GPU_API=cuda, and it doesn't users that don't enable the GPU package.
-    cudaPackages.autoAddOpenGLRunpathHook
+    cudaPackages.autoAddDriverRunpath
   ];
 
   passthru = {
diff --git a/nixpkgs/pkgs/applications/science/physics/nnpdf/default.nix b/nixpkgs/pkgs/applications/science/physics/nnpdf/default.nix
index 26e8247f85e3..d0104095f39a 100644
--- a/nixpkgs/pkgs/applications/science/physics/nnpdf/default.nix
+++ b/nixpkgs/pkgs/applications/science/physics/nnpdf/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An open-source machine learning framework for global analyses of parton distributions";
+    mainProgram = "evolven3fit";
     homepage = "https://docs.nnpdf.science/";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.veprbl ];
diff --git a/nixpkgs/pkgs/applications/science/physics/quantomatic/default.nix b/nixpkgs/pkgs/applications/science/physics/quantomatic/default.nix
index 4baa65201e0b..caff65f1d71b 100644
--- a/nixpkgs/pkgs/applications/science/physics/quantomatic/default.nix
+++ b/nixpkgs/pkgs/applications/science/physics/quantomatic/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A piece of software for reasoning about monoidal theories; in particular, quantum information processing";
+    mainProgram = "quantomatic";
     license = licenses.gpl3;
     homepage = "https://quantomatic.github.io/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/nixpkgs/pkgs/applications/science/physics/sacrifice/default.nix b/nixpkgs/pkgs/applications/science/physics/sacrifice/default.nix
index ec0620d3d8ed..352b65dc700c 100644
--- a/nixpkgs/pkgs/applications/science/physics/sacrifice/default.nix
+++ b/nixpkgs/pkgs/applications/science/physics/sacrifice/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "A standalone contribution to AGILe for steering Pythia 8";
+    mainProgram = "run-pythia";
     license     = lib.licenses.gpl2;
     homepage    = "https://agile.hepforge.org/trac/wiki/Sacrifice";
     platforms   = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/physics/xflr5/default.nix b/nixpkgs/pkgs/applications/science/physics/xflr5/default.nix
index eb60c12e9f0c..497be8fcbaa9 100644
--- a/nixpkgs/pkgs/applications/science/physics/xflr5/default.nix
+++ b/nixpkgs/pkgs/applications/science/physics/xflr5/default.nix
@@ -15,6 +15,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "An analysis tool for airfoils, wings and planes";
+    mainProgram = "xflr5";
     homepage = "https://sourceforge.net/projects/xflr5/";
     license = licenses.gpl3;
     maintainers = [ maintainers.esclear ];
diff --git a/nixpkgs/pkgs/applications/science/physics/xnec2c/default.nix b/nixpkgs/pkgs/applications/science/physics/xnec2c/default.nix
index 87daa8cac853..26ec1518fed5 100644
--- a/nixpkgs/pkgs/applications/science/physics/xnec2c/default.nix
+++ b/nixpkgs/pkgs/applications/science/physics/xnec2c/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.xnec2c.org/";
     description = "Graphical antenna simulation";
+    mainProgram = "xnec2c";
     license = licenses.gpl3;
     maintainers = with maintainers; [ mvs ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/science/programming/plm/default.nix b/nixpkgs/pkgs/applications/science/programming/plm/default.nix
index e4213fe7a8ff..a0a16515e228 100644
--- a/nixpkgs/pkgs/applications/science/programming/plm/default.nix
+++ b/nixpkgs/pkgs/applications/science/programming/plm/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Free cross-platform programming exerciser";
+    mainProgram = "plm";
     homepage = "http://people.irisa.fr/Martin.Quinson/Teaching/PLM/";
     license = licenses.gpl3;
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix b/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix
index e8e5fbba4e49..252eadc1c39c 100644
--- a/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The Betaflight flight control system configuration tool";
+    mainProgram = "betaflight-configurator";
     longDescription = ''
       A crossplatform configuration tool for the Betaflight flight control system.
       Various types of aircraft are supported by the tool and by Betaflight, e.g.
diff --git a/nixpkgs/pkgs/applications/science/robotics/emuflight-configurator/default.nix b/nixpkgs/pkgs/applications/science/robotics/emuflight-configurator/default.nix
index 0a733261ea2b..2c51355eb54f 100644
--- a/nixpkgs/pkgs/applications/science/robotics/emuflight-configurator/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/emuflight-configurator/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The Emuflight flight control system configuration tool";
+    mainProgram = "emuflight-configurator";
     longDescription = ''
       A crossplatform configuration tool for the Emuflight flight control system.
       Various types of aircraft are supported by the tool and by Emuflight, e.g.
diff --git a/nixpkgs/pkgs/applications/science/robotics/inav-configurator/default.nix b/nixpkgs/pkgs/applications/science/robotics/inav-configurator/default.nix
index 9efb9163e5e0..f5216eaf6c92 100644
--- a/nixpkgs/pkgs/applications/science/robotics/inav-configurator/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/inav-configurator/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The iNav flight control system configuration tool";
+    mainProgram = "inav-configurator";
     longDescription = ''
       A crossplatform configuration tool for the iNav flight control system.
       Various types of aircraft are supported by the tool and by iNav, e.g.
diff --git a/nixpkgs/pkgs/applications/science/robotics/mission-planner/default.nix b/nixpkgs/pkgs/applications/science/robotics/mission-planner/default.nix
index 856fdfec8235..f6e7e5f114fa 100644
--- a/nixpkgs/pkgs/applications/science/robotics/mission-planner/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/mission-planner/default.nix
@@ -46,6 +46,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An ArduPilot ground station";
+    mainProgram = "mission-planner";
     longDescription = ''
       Full-featured ground station application for the ArduPilot open source
       autopilot project.  Lets you both flash, configure and control ArduPilot
diff --git a/nixpkgs/pkgs/applications/science/robotics/sumorobot-manager/default.nix b/nixpkgs/pkgs/applications/science/robotics/sumorobot-manager/default.nix
index 343f9fad105b..eb9322f0fb22 100644
--- a/nixpkgs/pkgs/applications/science/robotics/sumorobot-manager/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/sumorobot-manager/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Desktop App for managing SumoRobots";
+    mainProgram = "sumorobot-manager";
     homepage = "https://www.robokoding.com/kits/sumorobot/sumomanager/";
     license = licenses.mit;
     maintainers = with maintainers; [ abbradar ];
diff --git a/nixpkgs/pkgs/applications/search/xlsxgrep/default.nix b/nixpkgs/pkgs/applications/search/xlsxgrep/default.nix
index 18b3a1a26c87..454e9210db6a 100644
--- a/nixpkgs/pkgs/applications/search/xlsxgrep/default.nix
+++ b/nixpkgs/pkgs/applications/search/xlsxgrep/default.nix
@@ -14,6 +14,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     maintainers = with maintainers; [ felixscheinost ];
     description = "CLI tool to search text in XLSX and XLS files. It works similarly to Unix/GNU Linux grep";
+    mainProgram = "xlsxgrep";
     homepage = "https://github.com/zazuum/xlsxgrep";
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/applications/system/glances/default.nix b/nixpkgs/pkgs/applications/system/glances/default.nix
index 7e66aacf25c1..7a4db20a5032 100644
--- a/nixpkgs/pkgs/applications/system/glances/default.nix
+++ b/nixpkgs/pkgs/applications/system/glances/default.nix
@@ -48,6 +48,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://nicolargo.github.io/glances/";
     description = "Cross-platform curses-based monitoring tool";
+    mainProgram = "glances";
     changelog = "https://github.com/nicolargo/glances/blob/v${version}/NEWS.rst";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ jonringer primeos koral ];
diff --git a/nixpkgs/pkgs/applications/system/qjournalctl/default.nix b/nixpkgs/pkgs/applications/system/qjournalctl/default.nix
index 563d0904fc53..d3bec7e306d5 100644
--- a/nixpkgs/pkgs/applications/system/qjournalctl/default.nix
+++ b/nixpkgs/pkgs/applications/system/qjournalctl/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Qt-based graphical user interface for systemd's journalctl command";
+    mainProgram = "qjournalctl";
     homepage = "https://github.com/pentix/qjournalctl";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/applications/system/supergfxctl/default.nix b/nixpkgs/pkgs/applications/system/supergfxctl/default.nix
index cb05475dd037..4180699155e6 100644
--- a/nixpkgs/pkgs/applications/system/supergfxctl/default.nix
+++ b/nixpkgs/pkgs/applications/system/supergfxctl/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "supergfxctl";
-  version = "5.1.2";
+  version = "5.2.1";
 
   src = fetchFromGitLab {
     owner = "asus-linux";
     repo = "supergfxctl";
     rev = version;
-    hash = "sha256-HJGyjFeN3bq+ArCGfFHAMnjW76wSnNyxPWR0ELcyjLg=";
+    hash = "sha256-gjMLyT3pvQhmjz9SFbYlDAqg+tCX5ORkCkcnyBzO5ws=";
   };
 
-  cargoSha256 = "sha256-wPqCXbpSYXwsUi1mv9ZBSxdhDgDqsjKxnPzQcURlnDU=";
+  cargoHash = "sha256-ndugyiAYPDyue2Ajxx22BNvYc9iBTxZqP5OxaqmC7U0=";
 
   postPatch = ''
     substituteInPlace data/supergfxd.service --replace /usr/bin/supergfxd $out/bin/supergfxd
diff --git a/nixpkgs/pkgs/applications/system/systemdgenie/default.nix b/nixpkgs/pkgs/applications/system/systemdgenie/default.nix
index ad009be56355..c8d747a8e122 100644
--- a/nixpkgs/pkgs/applications/system/systemdgenie/default.nix
+++ b/nixpkgs/pkgs/applications/system/systemdgenie/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec{
 
   meta = with lib; {
     description = "Systemd management utility";
+    mainProgram = "systemdgenie";
     homepage = "https://kde.org";
     license = licenses.gpl2;
     maintainers = [ maintainers.pasqui23 ];
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix
index ad9487b082c8..9f6cba1d55f1 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/foot/default.nix
@@ -135,7 +135,7 @@ stdenv.mkDerivation {
   # https://codeberg.org/dnkl/foot/src/branch/master/INSTALL.md#release-build
   CFLAGS =
     if !doPgo
-    then "-O3 -fno-plt"
+    then "-O3"
     else pgoCflags;
 
   # ar with gcc plugins for lto objects
@@ -165,10 +165,10 @@ stdenv.mkDerivation {
     meson configure -Db_pgo=generate
     ninja
     # make sure there is _some_ profiling data on all binaries
+    meson test
     ./footclient --version
     ./foot --version
     ./utils/xtgettcap
-    ./tests/test-config
     # generate pgo data of wayland independent code
     ./pgo ${stimuliFile} ${stimuliFile} ${stimuliFile}
     meson configure -Db_pgo=use
@@ -182,6 +182,10 @@ stdenv.mkDerivation {
     moveToOutput share/foot/themes "$themes"
   '';
 
+  doCheck = true;
+
+  strictDeps = true;
+
   outputs = [ "out" "terminfo" "themes" ];
 
   passthru.tests = {
@@ -208,19 +212,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     maintainers = [ maintainers.sternenseemann maintainers.abbe ];
     platforms = platforms.linux;
-    # From (presumably) ncurses version 6.3, it will ship a foot
-    # terminfo file. This however won't include some non-standard
-    # capabilities foot's bundled terminfo file contains. Unless we
-    # want to have some features in e. g. vim or tmux stop working,
-    # we need to make sure that the foot terminfo overwrites ncurses'
-    # one. Due to <nixpkgs/nixos/modules/config/system-path.nix>
-    # ncurses is always added to environment.systemPackages on
-    # NixOS with its priority increased by 3, so we need to go
-    # one bigger.
-    # This doesn't matter a lot for local use since foot sets
-    # TERMINFO to a store path, but allows installing foot.terminfo
-    # on remote systems for proper foot terminfo support.
-    priority = (ncurses.meta.priority or 5) + 3 + 1;
     mainProgram = "foot";
   };
 }
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix
index 2a249d0426ca..790627e41db4 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/kitty/default.nix
@@ -18,37 +18,39 @@
 , libpng
 , python3
 , zlib
+, simde
 , bashInteractive
 , zsh
 , fish
 , nixosTests
-, go
-, buildGoModule
+, go_1_22
+, buildGo122Module
 , nix-update-script
 }:
 
 with python3Packages;
 buildPythonApplication rec {
   pname = "kitty";
-  version = "0.32.2";
+  version = "0.33.1";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CgL+XXVTGLbNXm7DLenrkCZAfspyNubGOAPUZmKiq2c=";
+    hash = "sha256-E6gFGgySXs2oCS4Ipevbr9aPWzF4tb4Arl4w+4lQ+wg=";
   };
 
-  goModules = (buildGoModule {
+  goModules = (buildGo122Module {
     pname = "kitty-go-modules";
     inherit src version;
-    vendorHash = "sha256-Ve8s4vgDmByfvyJL8a36+7g3QErkhqVXGCSu6vHFFx0=";
+    vendorHash = "sha256-ypSZHJpk9wTXLH9sbmaSQB28iOIpv2nDPlgweM0Ldhs=";
   }).goModules;
 
   buildInputs = [
     harfbuzz
     ncurses
+    simde
     lcms2
     librsync
     openssl.dev
@@ -78,7 +80,7 @@ buildPythonApplication rec {
     sphinx-copybutton
     sphinxext-opengraph
     sphinx-inline-tabs
-    go
+    go_1_22
   ] ++ lib.optionals stdenv.isDarwin [
     imagemagick
     libicns  # For the png2icns tool.
@@ -232,7 +234,9 @@ buildPythonApplication rec {
   '';
 
   passthru = {
-    tests.test = nixosTests.terminal-emulators.kitty;
+    tests = lib.optionalAttrs stdenv.isLinux {
+      default = nixosTests.terminal-emulators.kitty;
+    };
     updateScript = nix-update-script {};
   };
 
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/rio/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/rio/default.nix
index 2eb978a4c181..ee77c4c3d457 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/rio/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/rio/default.nix
@@ -51,16 +51,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "rio";
-  version = "0.0.35";
+  version = "0.0.36";
 
   src = fetchFromGitHub {
     owner = "raphamorim";
     repo = "rio";
     rev = "v${version}";
-    hash = "sha256-e+GiNwvjwIi5wCyI+IQ0BZ8IR8by5RUq8dk1JO50mjU=";
+    hash = "sha256-QCQFFnlKD5olaGjRwDlj5/EBV6Qy/bFAZOQRtCSPamc=";
   };
 
-  cargoHash = "sha256-voQQjouCOwVLzOKtDUCa1lZLgx0JB7mvCqOY4BhmMr4=";
+  cargoHash = "sha256-Ea0scCbM9mfxC1YL3HCoBk93eVW20bj2mJyauyDSzT8=";
 
   nativeBuildInputs = [
     ncurses
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/st/mcaimi-st.nix b/nixpkgs/pkgs/applications/terminal-emulators/st/mcaimi-st.nix
index 11c89cfab670..7ff35a5cb77c 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/st/mcaimi-st.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/st/mcaimi-st.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/gnotclub/xst";
     description = "Suckless Terminal fork";
+    mainProgram = "st";
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/st/xst.nix b/nixpkgs/pkgs/applications/terminal-emulators/st/xst.nix
index b0d46a2c22a0..3f48a71012c3 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/st/xst.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/st/xst.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/gnotclub/xst";
     description = "Simple terminal fork that can load config from Xresources";
+    mainProgram = "xst";
     license = licenses.mit;
     maintainers = [ maintainers.vyp ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/terminal-emulators/syncterm/default.nix b/nixpkgs/pkgs/applications/terminal-emulators/syncterm/default.nix
index 05e521b24a32..36a02e08bbd5 100644
--- a/nixpkgs/pkgs/applications/terminal-emulators/syncterm/default.nix
+++ b/nixpkgs/pkgs/applications/terminal-emulators/syncterm/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
     broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     homepage = "https://syncterm.bbsdev.net/";
     description = "BBS terminal emulator";
+    mainProgram = "syncterm";
     maintainers = with maintainers; [ embr ];
     platforms = platforms.unix;
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/applications/version-management/arch/default.nix b/nixpkgs/pkgs/applications/version-management/arch/default.nix
index c161d8446acf..146469bbbb3e 100644
--- a/nixpkgs/pkgs/applications/version-management/arch/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/arch/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "GNU Arch (aka. `tla'), a distributed revision control system";
+    mainProgram = "tla";
     homepage = "https://www.gnu.org/software/gnu-arch/";
     license = "GPL";
   };
diff --git a/nixpkgs/pkgs/applications/version-management/blackbox/default.nix b/nixpkgs/pkgs/applications/version-management/blackbox/default.nix
index bee8da850b70..c98ff367c668 100644
--- a/nixpkgs/pkgs/applications/version-management/blackbox/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/blackbox/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     expect
     which
     coreutils
-    pinentry.tty
+    pinentry
     git
     gnutar
     procps
diff --git a/nixpkgs/pkgs/applications/version-management/commitizen/default.nix b/nixpkgs/pkgs/applications/version-management/commitizen/default.nix
index 5b5042494c49..537c1bfcd607 100644
--- a/nixpkgs/pkgs/applications/version-management/commitizen/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/commitizen/default.nix
@@ -11,7 +11,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "commitizen";
-  version = "3.16.0";
+  version = "3.20.0";
   format = "pyproject";
 
   disabled = python3.pythonOlder "3.8";
@@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "commitizen-tools";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-vd8MtkzI7PPow0Ld0NhwbWOUWgSgecAT/DZK0ocUWCw=";
+    hash = "sha256-lruEkXgbND2Q49J9mnDSqDA4kWiUBIg1mI+s1a+V3ds=";
   };
 
   pythonRelaxDeps = [
@@ -55,7 +55,7 @@ python3.pkgs.buildPythonApplication rec {
     pytest-freezer
     pytest-mock
     pytest-regressions
-    pytestCheckHook
+    (pytestCheckHook.override { pytest = pytest_7; })
   ];
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/applications/version-management/delta/default.nix b/nixpkgs/pkgs/applications/version-management/delta/default.nix
index 7038ed13dc89..3065d5672193 100644
--- a/nixpkgs/pkgs/applications/version-management/delta/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/delta/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "delta";
-  version = "0.16.5";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "dandavison";
     repo = pname;
     rev = version;
-    hash = "sha256-W6XtfXfOP8QfQ0t5hquFdYvCO9muE50N1fQsNtnOzfM=";
+    hash = "sha256-r0ED9o2UP91fe6Bng5ioJra5S1bg+UEXMLeSQPkMswI=";
   };
 
-  cargoHash = "sha256-SNKbgEyelJCHKCaBRfCGc3RECGABtZzMC2rCbhzqZtU=";
+  cargoHash = "sha256-3CxRNhcjfDK/xUuM3w+GwqE0+X6WT92/LGj/qRp0TwA=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/applications/version-management/gfold/default.nix b/nixpkgs/pkgs/applications/version-management/gfold/default.nix
index 0acd75d202ff..1459e2f18e80 100644
--- a/nixpkgs/pkgs/applications/version-management/gfold/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gfold/default.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage {
       "CLI tool to help keep track of your Git repositories, written in Rust";
     homepage = "https://github.com/nickgerace/gfold";
     license = licenses.asl20;
-    maintainers = [ maintainers.shanesveller ];
+    maintainers = [];
     platforms = platforms.unix;
     mainProgram = "gfold";
   };
diff --git a/nixpkgs/pkgs/applications/version-management/gh/default.nix b/nixpkgs/pkgs/applications/version-management/gh/default.nix
index 129ae0854bd5..a8b65a6961d1 100644
--- a/nixpkgs/pkgs/applications/version-management/gh/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "2.45.0";
+  version = "2.46.0";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-jztBWn/1bDTxR/q27RYJM6boFWyduTKAtIn5zIZK2tU=";
+    hash = "sha256-UvHLOG7/IJOzqFSu9Bbho+ldgvvGCiVjJK0epnYxZF8=";
   };
 
-  vendorHash = "sha256-FprVBvYPGWLcUKlWg9JU7yy2KDa/3rceAEHUIYHN4f8=";
+  vendorHash = "sha256-hZ8YGGrkeqI8079KSQM3E8SISb8lzFo4kQx2G+8HpNM=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-annex-metadata-gui/default.nix b/nixpkgs/pkgs/applications/version-management/git-annex-metadata-gui/default.nix
index 4d57820c84eb..3fcde8f900cc 100644
--- a/nixpkgs/pkgs/applications/version-management/git-annex-metadata-gui/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-annex-metadata-gui/default.nix
@@ -26,6 +26,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/alpernebbi/git-annex-metadata-gui";
     description = "Graphical interface for git-annex metadata commands";
+    mainProgram = "git-annex-metadata-gui";
     maintainers = with maintainers; [ dotlambda ];
     license = licenses.gpl3Plus;
     platforms = with platforms; linux;
diff --git a/nixpkgs/pkgs/applications/version-management/git-cache/default.nix b/nixpkgs/pkgs/applications/version-management/git-cache/default.nix
index 147570c7afd1..7b31fca2b995 100644
--- a/nixpkgs/pkgs/applications/version-management/git-cache/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-cache/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation {
     homepage = "https://github.com/Seb35/git-cache";
     license = licenses.wtfpl;
     description = "A program to add and manage a system-wide or user-wide cache for remote git repositories";
+    mainProgram = "git-cache";
     platforms = platforms.unix;
     maintainers = with maintainers; [ maxhearnden ];
   };
diff --git a/nixpkgs/pkgs/applications/version-management/git-cola/default.nix b/nixpkgs/pkgs/applications/version-management/git-cola/default.nix
index a8d8cb8b7983..f7182140e017 100644
--- a/nixpkgs/pkgs/applications/version-management/git-cola/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-cola/default.nix
@@ -1,20 +1,48 @@
-{ stdenv, lib, fetchFromGitHub, python3Packages, gettext, git, qt5, gitUpdater }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, python3Packages
+, gettext
+, git
+, qt5
+, gitUpdater
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "git-cola";
-  version = "4.5.0";
+  version = "4.6.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "git-cola";
     repo = "git-cola";
     rev = "v${version}";
-    hash = "sha256-HORGtpiZGWpeRDhr4E9KW5LSAD6r74l7rl6RhhVtiJo=";
+    hash = "sha256-qAvoBVZt2IwrWFNzGWpCZqj8gbjysGlB/VXaa1CMH4o=";
   };
 
-  buildInputs = lib.optionals stdenv.isLinux [ qt5.qtwayland ];
-  propagatedBuildInputs = with python3Packages; [ git pyqt5 qtpy send2trash ];
-  nativeBuildInputs = with python3Packages; [ setuptools-scm gettext qt5.wrapQtAppsHook ];
-  nativeCheckInputs = with python3Packages; [ git pytestCheckHook ];
+  buildInputs = lib.optionals stdenv.isLinux [
+    qt5.qtwayland
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    setuptools
+    git
+    pyqt5
+    qtpy
+    send2trash
+    polib
+  ];
+
+  nativeBuildInputs = with python3Packages; [
+    setuptools-scm
+    gettext
+    qt5.wrapQtAppsHook
+  ];
+
+  nativeCheckInputs = with python3Packages; [
+    git
+    pytestCheckHook
+  ];
 
   disabledTestPaths = [
     "qtpy/"
diff --git a/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
index d8e0815c91a8..430d0fe1f759 100644
--- a/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "git-lfs";
-  version = "3.5.0";
+  version = "3.5.1";
 
   src = fetchFromGitHub {
     owner = "git-lfs";
     repo = "git-lfs";
     rev = "v${version}";
-    hash = "sha256-iBv9kUaoyH9yEoCZYGYm+gmdjb797hWftzwkRNDNu3k=";
+    hash = "sha256-xSLXbAvIoY3c341qi89pTrjBZdXh/bPrweJD2O2gkjY=";
   };
 
   vendorHash = "sha256-N8HB2qwBxjzfNucftHxmX2W9srCx62pjmkCWzwiCj/I=";
diff --git a/nixpkgs/pkgs/applications/version-management/git-machete/default.nix b/nixpkgs/pkgs/applications/version-management/git-machete/default.nix
index 96800e5ea91c..a038435b8d60 100644
--- a/nixpkgs/pkgs/applications/version-management/git-machete/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-machete/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "3.23.2";
+  version = "3.24.2";
 
   src = fetchFromGitHub {
     owner = "virtuslab";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-1b8nKA6/UYiFPx7Va2GBUsGWxeOABFgyVVrYtHcKyrA=";
+    hash = "sha256-nxfSdgGF/hDFf7KIJ+tqCvxEi1GOjTAbpcJylIqhd/M=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/nixpkgs/pkgs/applications/version-management/git-review/default.nix b/nixpkgs/pkgs/applications/version-management/git-review/default.nix
index e32d89c042ca..2f7defa3ee55 100644
--- a/nixpkgs/pkgs/applications/version-management/git-review/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-review/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonApplication rec {
   pname = "git-review";
-  version = "2.3.1";
+  version = "2.4.0";
 
   # Manually set version because prb wants to get it from the git
   # upstream repository (and we are installing from tarball instead)
@@ -18,9 +18,9 @@ buildPythonApplication rec {
   src = fetchFromGitea {
     domain = "opendev.org";
     owner = "opendev";
-    repo = pname;
+    repo = "git-review";
     rev = version;
-    sha256 = "sha256-C8M4b/paHJB9geizc1eIhXsTuLeeS4dDisCfCQF1RuU=";
+    hash = "sha256-UfYc662NqnQt0+CKc+18jXnNTOcZv8urCNBsWd6x0VQ=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/nixpkgs/pkgs/applications/version-management/git-subrepo/default.nix b/nixpkgs/pkgs/applications/version-management/git-subrepo/default.nix
index 39b054d2a303..e861bc17b8ca 100644
--- a/nixpkgs/pkgs/applications/version-management/git-subrepo/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-subrepo/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/ingydotnet/git-subrepo";
     description = "Git submodule alternative";
+    mainProgram = "git-subrepo";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ryantrinkle ];
diff --git a/nixpkgs/pkgs/applications/version-management/git/default.nix b/nixpkgs/pkgs/applications/version-management/git/default.nix
index 767172787fba..8f57c97230fb 100644
--- a/nixpkgs/pkgs/applications/version-management/git/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git/default.nix
@@ -29,7 +29,7 @@ assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.43.2";
+  version = "2.44.0";
   svn = subversionClient.override { perlBindings = perlSupport; };
   gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
 in
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    hash = "sha256-9hLBq8Y1V9UK04SYY/yRCWcBOfyZAeV0Rg7HbgURrbk=";
+    hash = "sha256-41hzjctbXqNAzpAKABXAOuhugE5/9k5HqkYx3e5oHeM=";
   };
 
   outputs = [ "out" ] ++ lib.optional withManual "doc";
@@ -318,25 +318,20 @@ stdenv.mkDerivation (finalAttrs: {
     disable_test t0001-init 'shared overrides system'
     disable_test t0001-init 'init honors global core.sharedRepository'
     disable_test t1301-shared-repo
-    # git-completion.bash: line 405: compgen: command not found:
-    disable_test t9902-completion 'option aliases are shown with GIT_COMPLETION_SHOW_ALL'
+    # /build/git-2.44.0/contrib/completion/git-completion.bash: line 452: compgen: command not found
+    disable_test t9902-completion
 
     # Our patched gettext never fallbacks
     disable_test t0201-gettext-fallbacks
-
-    ${lib.optionalString (!sendEmailSupport) ''
-      # Disable sendmail tests
-      disable_test t9001-send-email
-    ''}
-
+  '' + lib.optionalString (!sendEmailSupport) ''
+    # Disable sendmail tests
+    disable_test t9001-send-email
+  '' + ''
     # XXX: I failed to understand why this one fails.
     # Could someone try to re-enable it on the next release ?
     # Tested to fail: 2.18.0 and 2.19.0
     disable_test t1700-split-index "null sha1"
 
-    # Tested to fail: 2.18.0
-    disable_test t9902-completion "sourcing the completion script clears cached --options"
-
     # Flaky tests:
     disable_test t5319-multi-pack-index
     disable_test t6421-merge-partial-clone
@@ -345,12 +340,11 @@ stdenv.mkDerivation (finalAttrs: {
     disable_test t0021-conversion
     disable_test t3910-mac-os-precompose
 
-    ${lib.optionalString (!perlSupport) ''
-      # request-pull is a Bash script that invokes Perl, so it is not available
-      # when NO_PERL=1, and the test should be skipped, but the test suite does
-      # not check for the Perl prerequisite.
-      disable_test t5150-request-pull
-    ''}
+  '' + lib.optionalString (!perlSupport) ''
+    # request-pull is a Bash script that invokes Perl, so it is not available
+    # when NO_PERL=1, and the test should be skipped, but the test suite does
+    # not check for the Perl prerequisite.
+    disable_test t5150-request-pull
   '' + lib.optionalString stdenv.isDarwin ''
     # XXX: Some tests added in 2.24.0 fail.
     # Please try to re-enable on the next release.
@@ -358,8 +352,6 @@ stdenv.mkDerivation (finalAttrs: {
     # fail (as of 2.33.0)
     #===(   18623;1208  8/?  224/?  2/? )= =fatal: Not a valid object name refs/tags/signed-empty
     disable_test t6300-for-each-ref
-    #===(   22665;1651  9/?  1/?  0/?  0/? )= =/private/tmp/nix-build-git-2.33.0.drv-2/git-2.33.0/t/../contrib/completion/git-completion.bash: line 405: compgen: command not found
-    disable_test t9902-completion
     # not ok 1 - populate workdir (with 2.33.1 on x86_64-darwin)
     disable_test t5003-archive-zip
   '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
diff --git a/nixpkgs/pkgs/applications/version-management/gitea/default.nix b/nixpkgs/pkgs/applications/version-management/gitea/default.nix
index e5b05f211f62..e5d3d257684a 100644
--- a/nixpkgs/pkgs/applications/version-management/gitea/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitea/default.nix
@@ -20,12 +20,12 @@
 
 buildGoModule rec {
   pname = "gitea";
-  version = "1.21.7";
+  version = "1.21.9";
 
   # not fetching directly from the git repo, because that lacks several vendor files for the web UI
   src = fetchurl {
     url = "https://dl.gitea.com/gitea/${version}/gitea-src-${version}.tar.gz";
-    hash = "sha256-d/3BPOSez7M2Xh2x9H2KsDIZ69PHinHIzQ6ekt/yWas=";
+    hash = "sha256-4o5pSkC9jl8rI68naorDrRE4Rm0/chj3+cRxZqoziIU=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/applications/version-management/gitflow/default.nix b/nixpkgs/pkgs/applications/version-management/gitflow/default.nix
index 09ab7031bd23..de291113daea 100644
--- a/nixpkgs/pkgs/applications/version-management/gitflow/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitflow/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/petervanderdoes/gitflow";
     description = "Extend git with the Gitflow branching model";
+    mainProgram = "git-flow";
     longDescription = ''
       A set of scripts that provide high-level repository operations
       for managing feature/release/hotfix branches in a Git repository,
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/data.json b/nixpkgs/pkgs/applications/version-management/gitlab/data.json
index dddcdf5812d4..c0e35b7298b1 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/data.json
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/data.json
@@ -1,15 +1,15 @@
 {
-  "version": "16.8.1",
-  "repo_hash": "sha256-95YdEAUYoFDFX4COI6NnI6tDB+NLnihlJdUDM8NixXA=",
-  "yarn_hash": "1yhl4l2dln9ck4nbjjrlyjx17nxk4h12gb5hqjh4dq3rz3az3jvx",
+  "version": "16.9.2",
+  "repo_hash": "sha256-pvmbxCySSc+Ug4W3cpXA6L7E3/I6J2A0BpcjFbR3YEI=",
+  "yarn_hash": "02vchjx17h6kk268pwrjqmrri0wa6vrljm7y5s23hwzir4v86slq",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v16.8.1-ee",
+  "rev": "v16.9.2-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "16.8.1",
-    "GITLAB_PAGES_VERSION": "16.8.1",
+    "GITALY_SERVER_VERSION": "16.9.2",
+    "GITLAB_PAGES_VERSION": "16.9.2",
     "GITLAB_SHELL_VERSION": "14.33.0",
-    "GITLAB_ELASTICSEARCH_INDEXER_VERSION": "4.6.0",
-    "GITLAB_WORKHORSE_VERSION": "16.8.1"
+    "GITLAB_ELASTICSEARCH_INDEXER_VERSION": "4.7.0",
+    "GITLAB_WORKHORSE_VERSION": "16.9.2"
   }
 }
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
index 6c635aafe03e..37789c27abef 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
@@ -49,7 +49,7 @@ let
                 cp Cargo.lock $out
               '';
             };
-            hash = "sha256-I5w/roDgnRe5eyXo0wiRcoWPpXEtpL3kOl9eDg99t/w=";
+            hash = "sha256-csasA2RH1vwRdF/9/BpFmh0AKsP3xtGmrhCx6mbVf6k=";
           };
 
           dontBuild = false;
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
index e6d9ce605b4c..94e3648a0c87 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -6,7 +6,7 @@
 }:
 
 let
-  version = "16.8.1";
+  version = "16.9.2";
   package_version = "v${lib.versions.major version}";
   gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
 
@@ -18,10 +18,10 @@ let
       owner = "gitlab-org";
       repo = "gitaly";
       rev = "v${version}";
-      hash = "sha256-yR8O9F6THymKKHbnfh67NhEcNNBz7XHja/fpeTmVoe0=";
+      hash = "sha256-YlSZq7+YtV9mhZDoNZ7QStbZLQ/Vtt8H2ZW84ONvCq8=";
     };
 
-    vendorHash = "sha256-AkL/BbCrqgXyvfiMxzMIXeZwh5aFL2a2+myk/4YXMNc=";
+    vendorHash = "sha256-aqwdeBjR8IGa1DsAXY1h7vq7OkuTgoDim5m40YKlcmo=";
 
     ldflags = [ "-X ${gitaly_package}/internal/version.version=${version}" "-X ${gitaly_package}/internal/version.moduleVersion=${version}" ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix
index bc4093e72000..2d192219d895 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "gitlab-container-registry";
-  version = "3.88.0";
+  version = "3.90.0";
   rev = "v${version}-gitlab";
 
   # nixpkgs-update: no auto update
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "gitlab-org";
     repo = "container-registry";
     inherit rev;
-    hash = "sha256-egslb+8+RsDjpL5xQpdCU3QwFH59grRCkODQnAkZe/0=";
+    hash = "sha256-bHRvvmVQFsdgYmVVucu1warn+SvCoIVh+C/U2uwi12E=";
   };
 
-  vendorHash = "sha256-IFXIr0xYJCKM5VUHQV+4S/+FEAhFEjbMaU+9JWIh8cA=";
+  vendorHash = "sha256-Zv5Xz1T/ZUM/kyEgZJKbDuIN2nufoHVAn4kD3SuvJCg=";
 
   patches = [
     ./Disable-inmemory-storage-driver-test.patch
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix
index da6dbda266c6..b3c29fe0ddc1 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix
@@ -2,23 +2,24 @@
 
 buildGoModule rec {
   pname = "gitlab-elasticsearch-indexer";
-  version = "4.6.0";
+  version = "4.7.0";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-elasticsearch-indexer";
     rev = "v${version}";
-    sha256 = "sha256-HlT3Uj/DWbyK4xGq7SjKjZ90sww6oMiMDo05mtv6rTA=";
+    sha256 = "sha256-xkCG8PyOXQl2xqsq3INqYWGdcJpJgRsi/hB9creGTSM=";
   };
 
-  vendorHash = "sha256-YUH/agSy/shHmHRXlfDtgumbka6BjX5NTxgvlNJS4hQ=";
+  vendorHash = "sha256-1eyIRlrgEQ6iiM2tom5S92BlsyaPVKZzSU3+Mmdxi+4=";
 
   buildInputs = [ icu ];
   nativeBuildInputs = [ pkg-config ];
 
   meta = with lib; {
     description = "Indexes Git repositories into Elasticsearch for GitLab.";
+    mainProgram = "gitlab-elasticsearch-indexer";
     license = licenses.mit;
     maintainers = with maintainers; [ xanderio yayayayaka ];
   };
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix
index 202dd29c4fab..2a4bbb893099 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix
@@ -2,21 +2,22 @@
 
 buildGoModule rec {
   pname = "gitlab-pages";
-  version = "16.8.1";
+  version = "16.9.2";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-pages";
     rev = "v${version}";
-    hash = "sha256-Wj15GHm+5Xd5wq4C3dH+i94jh7pecHM6KCDugLm5YAA=";
+    hash = "sha256-1ygIMatPcqvhjN5Zkuk0WXd9iW6fv3bLK9EZsIII/WM=";
   };
 
-  vendorHash = "sha256-9yogTSdEij/YwWGm3gz7jMn2AZcI+o7aEnjBvJ8E3vA=";
+  vendorHash = "sha256-ZjIjGZaZhxa3OvdaA4qD+Qza604mxe1u+zAUtIAKouo=";
   subPackages = [ "." ];
 
   meta = with lib; {
     description = "Daemon used to serve static websites for GitLab users";
+    mainProgram = "gitlab-pages";
     homepage = "https://gitlab.com/gitlab-org/gitlab-pages";
     changelog = "https://gitlab.com/gitlab-org/gitlab-pages/-/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index 58361fbfb631..8e58210af06a 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -5,7 +5,7 @@ in
 buildGoModule rec {
   pname = "gitlab-workhorse";
 
-  version = "16.8.1";
+  version = "16.9.2";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   sourceRoot = "${src.name}/workhorse";
 
-  vendorHash = "sha256-OcdfanSlH1ZUmKlhzMOD3oNySx1o92Is7EDf1Z3953A=";
+  vendorHash = "sha256-RJ/CT8p1DpxmZcJLBeMDG77Zsn0Q6MiXsDcMK/LM2DA=";
   buildInputs = [ git ];
   ldflags = [ "-X main.Version=${version}" ];
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index 161dc46f7844..f60cd85d493d 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -28,7 +28,7 @@ gem 'rails', '~> 7.0.8' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'activerecord-gitlab', path: 'gems/activerecord-gitlab' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'bootsnap', '~> 1.17.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'bootsnap', '~> 1.18.3', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'openssl', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'ipaddr', '~> 1.2.5' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -141,11 +141,11 @@ gem 'grape-path-helpers', '~> 2.0.0', feature_category: :api
 gem 'rack-cors', '~> 2.0.1', require: 'rack/cors' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # GraphQL API
-gem 'graphql', '~> 2.0.27', feature_category: :api
+gem 'graphql', '~> 2.2.5', feature_category: :api
 gem 'graphql-docs', '~> 4.0.0', group: [:development, :test], feature_category: :api
 gem 'graphiql-rails', '~> 1.8.0', feature_category: :api
 gem 'apollo_upload_server', '~> 2.1.5', feature_category: :api
-gem 'graphlient', '~> 0.5.0', feature_category: :importers # Used by BulkImport feature (group::import)
+gem 'graphlient', '~> 0.6.0', feature_category: :importers # Used by BulkImport feature (group::import)
 
 # Generate Fake data
 gem 'ffaker', '~> 2.10' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -196,6 +196,10 @@ gem 'google-apis-serviceusage_v1', '~> 0.28.0' # rubocop:todo Gemfile/MissingFea
 gem 'google-apis-sqladmin_v1beta4', '~> 0.41.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'google-apis-androidpublisher_v3', '~> 0.34.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
+gem 'googleauth', '~> 1.8.1', feature_category: :shared
+gem 'google-cloud-artifact_registry-v1', '~> 0.11.0', feature_category: :shared
+gem 'google-cloud-compute-v1', '~> 2.6.0', feature_category: :shared
+
 # Seed data
 gem 'seed-fu', '~> 2.3.7' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -203,9 +207,9 @@ gem 'seed-fu', '~> 2.3.7' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'elasticsearch-model', '~> 7.2' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'elasticsearch-api',   '7.13.3' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'aws-sdk-core', '~> 3.190.2' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'aws-sdk-core', '~> 3.191.1' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'aws-sdk-s3', '~> 1.142.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'aws-sdk-s3', '~> 1.143.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'faraday_middleware-aws-sigv4', '~>0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'typhoeus', '~> 1.4.0' # Used with Elasticsearch to support http keep-alive connections # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -226,7 +230,7 @@ gem 'asciidoctor-kroki', '~> 0.8.0', require: false # rubocop:todo Gemfile/Missi
 gem 'rouge', '~> 4.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'truncato', '~> 0.7.12' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'nokogiri', '~> 1.16' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'gitlab-glfm-markdown', '~> 0.0.11', feature_category: :team_planning
+gem 'gitlab-glfm-markdown', '~> 0.0.12', feature_category: :team_planning
 
 # Calendar rendering
 gem 'icalendar' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -252,7 +256,7 @@ gem 'state_machines-activerecord', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeat
 gem 'acts-as-taggable-on', '~> 10.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Background jobs
-gem 'sidekiq', '~> 7.1.6' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'sidekiq', path: 'vendor/gems/sidekiq-7.1.6', require: 'sidekiq' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'sidekiq-cron', '~> 1.12.0', feature_category: :shared
 gem 'gitlab-sidekiq-fetcher', path: 'vendor/gems/sidekiq-reliable-fetch', require: 'sidekiq-reliable-fetch' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -269,11 +273,11 @@ gem 'rainbow', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'ruby-progressbar', '~> 1.10' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Linear-time regex library for untrusted regular expressions
-gem 're2', '2.6.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 're2', '2.7.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Misc
 
-gem 'semver_dialects', '~> 1.5', feature_category: :static_application_security_testing
+gem 'semver_dialects', '~> 1.6.1', feature_category: :static_application_security_testing
 gem 'version_sorter', '~> 2.3' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'csv_builder', path: 'gems/csv_builder' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -336,7 +340,8 @@ gem 'gitlab_chronic_duration', '~> 0.12' # rubocop:todo Gemfile/MissingFeatureCa
 
 gem 'rack-proxy', '~> 0.7.7' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'sassc-rails', '~> 2.1.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'sassc-rails', '~> 2.1.0', feature_category: :shared, require: false
+gem 'cssbundling-rails', '1.3.3', feature_category: :shared, require: false
 gem 'autoprefixer-rails', '10.2.5.1' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'terser', '1.0.2' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -347,7 +352,7 @@ gem 'gon', '~> 6.4.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'request_store', '~> 1.5.1' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'base32', '~> 0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'gitlab-license', '~> 2.3' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'gitlab-license', '~> 2.4', feature_category: :shared
 
 # Protect against bruteforcing
 gem 'rack-attack', '~> 6.7.0' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -360,14 +365,14 @@ gem 'sentry-sidekiq', '~> 5.10.0', feature_category: :error_tracking
 
 # PostgreSQL query parsing
 #
-gem 'pg_query', '~> 4.2.3' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'pg_query', '~> 5.1.0', feature_category: :database
 
 gem 'gitlab-schema-validation', path: 'gems/gitlab-schema-validation' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'gitlab-http', path: 'gems/gitlab-http' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'premailer-rails', '~> 1.10.3' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'gitlab-labkit', '~> 0.35.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'gitlab-labkit', '~> 0.35.1' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'thrift', '>= 0.16.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # I18n
@@ -388,12 +393,12 @@ gem 'snowplow-tracker', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Metrics
 gem 'webrick', '~> 1.8.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'prometheus-client-mmap', '~> 1.1', require: 'prometheus/client' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'prometheus-client-mmap', '~> 1.1', '>= 1.1.1', require: 'prometheus/client' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'warning', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 group :development do
-  gem 'lefthook', '~> 1.5.5', require: false, feature_category: :tooling
+  gem 'lefthook', '~> 1.5.6', require: false, feature_category: :tooling
   gem 'rubocop', feature_category: :tooling
   gem 'solargraph', '~> 0.47.2', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -407,7 +412,7 @@ group :development do
 
   gem 'listen', '~> 3.7' # rubocop:todo Gemfile/MissingFeatureCategory
 
-  gem 'ruby-lsp', "~> 0.13.2", require: false, feature_category: :tooling
+  gem 'ruby-lsp', "~> 0.13.3", require: false, feature_category: :tooling
 
   gem 'ruby-lsp-rails', "~> 0.2.8", feature_category: :tooling
 
@@ -498,15 +503,15 @@ group :test do
   gem 'rspec-parameterized', '~> 1.0', require: false, feature_category: :tooling
   gem 'os', '~> 1.1', feature_category: :tooling
 
-  gem 'capybara', '~> 3.39', '>= 3.39.2' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'capybara', '~> 3.40' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'capybara-screenshot', '~> 1.0.26' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'selenium-webdriver', '~> 4.16' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'selenium-webdriver', '~> 4.17' # rubocop:todo Gemfile/MissingFeatureCategory
 
   gem 'graphlyte', '~> 1.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
   gem 'shoulda-matchers', '~> 5.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'email_spec', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'webmock', '~> 3.19.1' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'webmock', '~> 3.20.0' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'rails-controller-testing' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'concurrent-ruby', '~> 1.1' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'test-prof', '~> 1.3.1' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -517,10 +522,10 @@ group :test do
   # Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527
   gem 'derailed_benchmarks', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
-  gem 'gitlab_quality-test_tooling', '~> 1.11.0', require: false, feature_category: :tooling
+  gem 'gitlab_quality-test_tooling', '~> 1.14.2', require: false, feature_category: :tooling
 end
 
-gem 'octokit', '~> 6.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'octokit', '~> 8.0', feature_category: :importers
 
 gem 'gitlab-mail_room', '~> 0.0.24', require: 'mail_room', feature_category: :shared
 
@@ -552,14 +557,14 @@ gem 'ssh_data', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'spamcheck', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Gitaly GRPC protocol definitions
-gem 'gitaly', '~> 16.7.0-rc1', feature_category: :gitaly
+gem 'gitaly', '~> 16.9.0-rc3', feature_category: :gitaly
 
 # KAS GRPC protocol definitions
-gem 'kas-grpc', '~> 0.3.0', feature_category: :deployment_management
+gem 'kas-grpc', '~> 0.4.0', feature_category: :deployment_management
 
-gem 'grpc', '~> 1.58.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'grpc', '~> 1.60.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'google-protobuf', '~> 3.25', '>= 3.25.2' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'google-protobuf', '~> 3.25', '>= 3.25.1' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'toml-rb', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -634,7 +639,7 @@ gem 'cvss-suite', '~> 3.0.1', require: 'cvss_suite' # rubocop:todo Gemfile/Missi
 gem 'arr-pm', '~> 0.0.12' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Remote Development
-gem 'devfile', '~> 0.0.24.pre.alpha1', feature_category: :remote_development
+gem 'devfile', '~> 0.0.25.pre.alpha1', feature_category: :remote_development
 
 # Apple plist parsing
 gem 'CFPropertyList', '~> 3.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -652,4 +657,4 @@ gem 'net-http', '= 0.1.1' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'duo_api', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'gitlab-sdk', feature_category: :application_instrumentation
+gem 'gitlab-sdk', '~> 0.3.0', feature_category: :application_instrumentation
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index adbd0b47167f..8648c235f491 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -34,6 +34,7 @@ PATH
   specs:
     gitlab-housekeeper (0.1.0)
       activesupport
+      awesome_print
       httparty
       rubocop
 
@@ -178,6 +179,15 @@ PATH
       omniauth (~> 2.0)
 
 PATH
+  remote: vendor/gems/sidekiq-7.1.6
+  specs:
+    sidekiq (7.1.6)
+      concurrent-ruby (< 2)
+      connection_pool (>= 2.3.0)
+      rack (>= 2.2.4)
+      redis-client (>= 0.14.0)
+
+PATH
   remote: vendor/gems/sidekiq-reliable-fetch
   specs:
     gitlab-sidekiq-fetcher (0.11.0)
@@ -301,7 +311,7 @@ GEM
     aws-sdk-cloudformation (1.41.0)
       aws-sdk-core (~> 3, >= 3.99.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-core (3.190.2)
+    aws-sdk-core (3.191.1)
       aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
       aws-sigv4 (~> 1.8)
@@ -309,8 +319,8 @@ GEM
     aws-sdk-kms (1.76.0)
       aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.142.0)
-      aws-sdk-core (~> 3, >= 3.189.0)
+    aws-sdk-s3 (1.143.0)
+      aws-sdk-core (~> 3, >= 3.191.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.8)
     aws-sigv4 (1.8.0)
@@ -337,6 +347,7 @@ GEM
     babosa (2.0.0)
     backport (1.2.0)
     base32 (0.3.2)
+    base64 (0.2.0)
     batch-loader (2.0.1)
     bcrypt (3.1.18)
     benchmark (0.2.0)
@@ -353,7 +364,7 @@ GEM
     bindata (2.4.11)
     binding_of_caller (1.0.0)
       debug_inspector (>= 0.0.1)
-    bootsnap (1.17.1)
+    bootsnap (1.18.3)
       msgpack (~> 1.2)
     browser (5.3.1)
     builder (3.2.4)
@@ -364,11 +375,11 @@ GEM
       bundler (>= 1.2.0, < 3)
       thor (~> 1.0)
     byebug (11.1.3)
-    capybara (3.39.2)
+    capybara (3.40.0)
       addressable
       matrix
       mini_mime (>= 0.1.3)
-      nokogiri (~> 1.8)
+      nokogiri (~> 1.11)
       rack (>= 1.6.0)
       rack-test (>= 0.6.3)
       regexp_parser (>= 1.5, < 3.0)
@@ -382,8 +393,7 @@ GEM
       mime-types (>= 1.16)
       ssrf_filter (~> 1.0, < 1.1.0)
     cbor (0.5.9.6)
-    character_set (1.4.1)
-      sorted_set (~> 1.0)
+    character_set (1.8.0)
     charlock_holmes (0.7.7)
     chef-config (18.3.0)
       addressable
@@ -425,8 +435,10 @@ GEM
       git
     css_parser (1.14.0)
       addressable
+    cssbundling-rails (1.3.3)
+      railties (>= 6.0.0)
     cvss-suite (3.0.1)
-    danger (9.3.1)
+    danger (9.4.2)
       claide (~> 1.0)
       claide-plugins (>= 0.9.2)
       colored2 (~> 3.1)
@@ -437,7 +449,7 @@ GEM
       kramdown (~> 2.3)
       kramdown-parser-gfm (~> 1.0)
       no_proxy_fix
-      octokit (~> 6.0)
+      octokit (>= 4.0)
       terminal-table (>= 1, < 4)
     danger-gitlab (8.0.0)
       danger
@@ -471,7 +483,7 @@ GEM
       thor (>= 0.19, < 2)
     descendants_tracker (0.0.4)
       thread_safe (~> 0.3, >= 0.3.1)
-    devfile (0.0.24.pre.alpha1)
+    devfile (0.0.25.pre.alpha1)
     device_detector (1.0.0)
     devise (4.9.3)
       bcrypt (~> 3.0)
@@ -651,7 +663,7 @@ GEM
       rspec-core (~> 3.0)
       ruby-progressbar (~> 1.4)
     fuzzyurl (0.9.0)
-    gapic-common (0.18.0)
+    gapic-common (0.20.0)
       faraday (>= 1.9, < 3.a)
       faraday-retry (>= 1.0, < 3.a)
       google-protobuf (~> 3.14)
@@ -673,7 +685,7 @@ GEM
     git (1.18.0)
       addressable (~> 2.8)
       rchardet (~> 1.8)
-    gitaly (16.7.0.pre.rc1)
+    gitaly (16.9.0.pre.rc3)
       grpc (~> 1.0)
     gitlab (4.19.0)
       httparty (~> 0.20)
@@ -693,9 +705,9 @@ GEM
       fog-core (= 2.1.0)
       fog-json (~> 1.2.0)
       mime-types
-    gitlab-glfm-markdown (0.0.11)
+    gitlab-glfm-markdown (0.0.12)
       rb_sys (~> 0.9.86)
-    gitlab-labkit (0.35.0)
+    gitlab-labkit (0.35.1)
       actionpack (>= 5.0.0, < 8.0.0)
       activesupport (>= 5.0.0, < 8.0.0)
       grpc (>= 1.37)
@@ -703,7 +715,7 @@ GEM
       opentracing (~> 0.4)
       pg_query (>= 4.2.3, < 6.0)
       redis (> 3.0.0, < 6.0.0)
-    gitlab-license (2.3.0)
+    gitlab-license (2.4.0)
     gitlab-mail_room (0.0.24)
       jwt (>= 2.0)
       net-imap (>= 0.2.1)
@@ -712,7 +724,7 @@ GEM
       redis-namespace (>= 1.8.2)
     gitlab-markup (1.9.0)
     gitlab-net-dns (0.9.2)
-    gitlab-sdk (0.2.3)
+    gitlab-sdk (0.3.0)
       activesupport (>= 5.2.0)
       rake (~> 13.0)
       snowplow-tracker (~> 0.8.0)
@@ -729,14 +741,15 @@ GEM
       omniauth (>= 1.3, < 3)
       pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
       rubyntlm (~> 0.5)
-    gitlab_quality-test_tooling (1.11.0)
-      activesupport (>= 6.1, < 7.2)
+    gitlab_quality-test_tooling (1.14.2)
+      activesupport (>= 6.1, < 7.1)
       amatch (~> 0.4.1)
       gitlab (~> 4.19)
       http (~> 5.0)
       nokogiri (~> 1.10)
       parallel (>= 1, < 2)
       rainbow (>= 3, < 4)
+      rspec-parameterized (~> 1.0.0)
       table_print (= 1.5.7)
       zeitwerk (>= 2, < 3)
     globalid (1.1.0)
@@ -783,12 +796,27 @@ GEM
       google-apis-core (>= 0.9.1, < 2.a)
     google-apis-storage_v1 (0.29.0)
       google-apis-core (>= 0.11.0, < 2.a)
+    google-cloud-artifact_registry-v1 (0.11.0)
+      gapic-common (>= 0.20.0, < 2.a)
+      google-cloud-errors (~> 1.0)
+      google-cloud-location (>= 0.4, < 2.a)
+      grpc-google-iam-v1 (~> 1.1)
+    google-cloud-common (1.1.0)
+      google-protobuf (~> 3.14)
+      googleapis-common-protos-types (~> 1.2)
+    google-cloud-compute-v1 (2.6.0)
+      gapic-common (>= 0.20.0, < 2.a)
+      google-cloud-common (~> 1.0)
+      google-cloud-errors (~> 1.0)
     google-cloud-core (1.6.0)
       google-cloud-env (~> 1.0)
       google-cloud-errors (~> 1.0)
     google-cloud-env (1.6.0)
       faraday (>= 0.17.3, < 3.0)
     google-cloud-errors (1.3.0)
+    google-cloud-location (0.6.0)
+      gapic-common (>= 0.20.0, < 2.a)
+      google-cloud-errors (~> 1.0)
     google-cloud-profiler-v2 (0.4.0)
       gapic-common (>= 0.18.0, < 2.a)
       google-cloud-errors (~> 1.0)
@@ -807,10 +835,9 @@ GEM
       grpc (~> 1.27)
     googleapis-common-protos-types (1.5.0)
       google-protobuf (~> 3.14)
-    googleauth (1.3.0)
+    googleauth (1.8.1)
       faraday (>= 0.17.3, < 3.a)
       jwt (>= 1.4, < 3.0)
-      memoist (~> 0.16)
       multi_json (~> 1.11)
       os (>= 0.9, < 2.0)
       signet (>= 0.16, < 2.a)
@@ -843,13 +870,14 @@ GEM
     graphiql-rails (1.8.0)
       railties
       sprockets-rails
-    graphlient (0.5.0)
+    graphlient (0.6.0)
       faraday (>= 1.0)
       faraday_middleware
       graphql-client
     graphlyte (1.0.0)
-    graphql (2.0.27)
-    graphql-client (0.18.0)
+    graphql (2.2.5)
+      racc (~> 1.4)
+    graphql-client (0.19.0)
       activesupport (>= 3.0)
       graphql
     graphql-docs (4.0.0)
@@ -860,9 +888,13 @@ GEM
       gemoji (~> 3.0)
       graphql (~> 2.0)
       html-pipeline (~> 2.14, >= 2.14.3)
-    grpc (1.58.0)
-      google-protobuf (~> 3.23)
+    grpc (1.60.0)
+      google-protobuf (~> 3.25)
       googleapis-common-protos-types (~> 1.0)
+    grpc-google-iam-v1 (1.5.0)
+      google-protobuf (~> 3.18)
+      googleapis-common-protos (~> 1.4)
+      grpc (~> 1.41)
     gssapi (1.3.1)
       ffi (>= 1.0.1)
     guard (2.16.2)
@@ -977,7 +1009,7 @@ GEM
       activerecord
       kaminari-core (= 1.2.2)
     kaminari-core (1.2.2)
-    kas-grpc (0.3.0)
+    kas-grpc (0.4.0)
       grpc (~> 1.0)
     knapsack (1.21.1)
       rake
@@ -993,7 +1025,7 @@ GEM
     language_server-protocol (3.17.0.3)
     launchy (2.5.0)
       addressable (~> 2.7)
-    lefthook (1.5.5)
+    lefthook (1.5.6)
     letter_opener (1.7.0)
       launchy (~> 2.2)
     letter_opener_web (2.0.0)
@@ -1009,9 +1041,9 @@ GEM
       tomlrb (>= 1.3, < 2.1)
       with_env (= 1.1.0)
       xml-simple (~> 1.1.9)
-    licensee (9.16.0)
+    licensee (9.16.1)
       dotenv (~> 2.0)
-      octokit (>= 4.20, < 7.0)
+      octokit (>= 4.20, < 9.0)
       reverse_markdown (>= 1, < 3)
       rugged (>= 0.24, < 2.0)
       thor (>= 0.19, < 2.0)
@@ -1055,7 +1087,6 @@ GEM
       actionpack (>= 5.2)
       activerecord (>= 5.2)
     matrix (0.4.2)
-    memoist (0.16.2)
     memory_profiler (1.0.1)
     method_source (1.0.0)
     mime-types (3.5.1)
@@ -1124,7 +1155,7 @@ GEM
       rack (>= 1.2, < 4)
       snaky_hash (~> 2.0)
       version_gem (~> 1.1)
-    octokit (6.1.1)
+    octokit (8.0.0)
       faraday (>= 1, < 3)
       sawyer (~> 0.9)
     ohai (18.1.3)
@@ -1240,7 +1271,7 @@ GEM
     peek (1.1.0)
       railties (>= 4.0.0)
     pg (1.5.4)
-    pg_query (4.2.3)
+    pg_query (5.1.0)
       google-protobuf (>= 3.22.3)
     plist (3.7.0)
     png_quantizator (0.2.1)
@@ -1259,7 +1290,7 @@ GEM
       coderay
       parser
       unparser
-    prometheus-client-mmap (1.1.0)
+    prometheus-client-mmap (1.1.1)
       rb_sys (~> 0.9.86)
     protocol (2.0.0)
       ruby_parser (~> 3.0)
@@ -1347,9 +1378,8 @@ GEM
       ffi (>= 1.0.6)
       msgpack (>= 0.4.3)
       optimist (>= 3.0.0)
-    rbtree (0.4.6)
     rchardet (1.8.0)
-    re2 (2.6.0)
+    re2 (2.7.0)
       mini_portile2 (~> 2.8.5)
     recaptcha (5.12.3)
       json
@@ -1475,7 +1505,7 @@ GEM
     ruby-fogbugz (0.3.0)
       crack (~> 0.4)
       multipart-post (~> 2.0)
-    ruby-lsp (0.13.2)
+    ruby-lsp (0.13.3)
       language_server-protocol (~> 3.17.0)
       prism (>= 0.19.0, < 0.20)
       sorbet-runtime (>= 0.5.5685)
@@ -1497,7 +1527,8 @@ GEM
       rexml
     ruby-statistics (3.0.0)
     ruby2_keywords (0.0.5)
-    ruby_parser (3.20.3)
+    ruby_parser (3.21.0)
+      racc (~> 1.5)
       sexp_processor (~> 4.16)
     rubyntlm (0.6.3)
     rubypants (0.2.0)
@@ -1511,7 +1542,7 @@ GEM
       nokogiri (>= 1.12.0)
     sassc (2.4.0)
       ffi (~> 1.9)
-    sassc-rails (2.1.0)
+    sassc-rails (2.1.2)
       railties (>= 4.0.0)
       sassc (>= 2.0)
       sprockets (> 3.0)
@@ -1524,11 +1555,12 @@ GEM
     seed-fu (2.3.7)
       activerecord (>= 3.1)
       activesupport (>= 3.1)
-    selenium-webdriver (4.16.0)
+    selenium-webdriver (4.17.0)
+      base64 (~> 0.2)
       rexml (~> 3.2, >= 3.2.5)
       rubyzip (>= 1.2.2, < 3.0)
       websocket (~> 1.0)
-    semver_dialects (1.5.0)
+    semver_dialects (1.6.1)
       deb_version (~> 1.0.1)
       pastel (~> 0.8.0)
       thor (~> 1.3)
@@ -1543,22 +1575,16 @@ GEM
     sentry-sidekiq (5.10.0)
       sentry-ruby (~> 5.10.0)
       sidekiq (>= 3.0)
-    set (1.0.2)
-    sexp_processor (4.17.0)
+    sexp_processor (4.17.1)
     shellany (0.0.1)
     shoulda-matchers (5.1.0)
       activesupport (>= 5.2.0)
-    sidekiq (7.1.6)
-      concurrent-ruby (< 2)
-      connection_pool (>= 2.3.0)
-      rack (>= 2.2.4)
-      redis-client (>= 0.14.0)
     sidekiq-cron (1.12.0)
       fugit (~> 1.8)
       globalid (>= 1.0.1)
       sidekiq (>= 6)
     sigdump (0.2.4)
-    signet (0.17.0)
+    signet (0.18.0)
       addressable (~> 2.8)
       faraday (>= 0.17.5, < 3.a)
       jwt (>= 1.5, < 3.0)
@@ -1597,9 +1623,6 @@ GEM
       tilt (~> 2.0)
       yard (~> 0.9, >= 0.9.24)
     sorbet-runtime (0.5.11144)
-    sorted_set (1.0.3)
-      rbtree
-      set (~> 1.0)
     spamcheck (1.3.0)
       grpc (~> 1.0)
     spring (4.1.0)
@@ -1767,7 +1790,7 @@ GEM
     webfinger (1.2.0)
       activesupport
       httpclient (>= 2.4)
-    webmock (3.19.1)
+    webmock (3.20.0)
       addressable (>= 2.8.0)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
@@ -1815,8 +1838,8 @@ DEPENDENCIES
   autoprefixer-rails (= 10.2.5.1)
   awesome_print
   aws-sdk-cloudformation (~> 1)
-  aws-sdk-core (~> 3.190.2)
-  aws-sdk-s3 (~> 1.142.0)
+  aws-sdk-core (~> 3.191.1)
+  aws-sdk-s3 (~> 1.143.0)
   axe-core-rspec (~> 4.8.0)
   babosa (~> 2.0)
   base32 (~> 0.3.0)
@@ -1825,12 +1848,12 @@ DEPENDENCIES
   benchmark-ips (~> 2.11.0)
   benchmark-memory (~> 0.1)
   better_errors (~> 2.10.1)
-  bootsnap (~> 1.17.1)
+  bootsnap (~> 1.18.3)
   browser (~> 5.3.1)
   bullet (~> 7.1.2)
   bundler-audit (~> 0.9.1)
   bundler-checksum (~> 0.1.0)!
-  capybara (~> 3.39, >= 3.39.2)
+  capybara (~> 3.40)
   capybara-screenshot (~> 1.0.26)
   carrierwave (~> 1.3)
   charlock_holmes (~> 0.7.7)
@@ -1843,6 +1866,7 @@ DEPENDENCIES
   countries (~> 4.0.0)
   creole (~> 0.5.0)
   crystalball (~> 0.7.0)
+  cssbundling-rails (= 1.3.3)
   csv_builder!
   cvss-suite (~> 3.0.1)
   database_cleaner-active_record (~> 2.1.0)
@@ -1850,7 +1874,7 @@ DEPENDENCIES
   declarative_policy (~> 1.1.0)
   deprecation_toolkit (~> 1.5.1)
   derailed_benchmarks
-  devfile (~> 0.0.24.pre.alpha1)
+  devfile (~> 0.0.25.pre.alpha1)
   device_detector
   devise (~> 4.9.3)
   devise-pbkdf2-encryptable (~> 0.0.0)!
@@ -1885,17 +1909,17 @@ DEPENDENCIES
   fuubar (~> 2.2.0)
   gettext (~> 3.3)
   gettext_i18n_rails (~> 1.11.0)
-  gitaly (~> 16.7.0.pre.rc1)
+  gitaly (~> 16.9.0.pre.rc3)
   gitlab-backup-cli!
   gitlab-chronic (~> 0.10.5)
   gitlab-dangerfiles (~> 4.6.0)
   gitlab-experiment (~> 0.9.1)
   gitlab-fog-azure-rm (~> 1.8.0)
-  gitlab-glfm-markdown (~> 0.0.11)
+  gitlab-glfm-markdown (~> 0.0.12)
   gitlab-housekeeper!
   gitlab-http!
-  gitlab-labkit (~> 0.35.0)
-  gitlab-license (~> 2.3)
+  gitlab-labkit (~> 0.35.1)
+  gitlab-license (~> 2.4)
   gitlab-mail_room (~> 0.0.24)
   gitlab-markup (~> 1.9.0)
   gitlab-net-dns (~> 0.9.2)
@@ -1903,14 +1927,14 @@ DEPENDENCIES
   gitlab-rspec_flaky!
   gitlab-safe_request_store!
   gitlab-schema-validation!
-  gitlab-sdk
+  gitlab-sdk (~> 0.3.0)
   gitlab-secret_detection!
   gitlab-sidekiq-fetcher!
   gitlab-styles (~> 11.0.0)
   gitlab-utils!
   gitlab_chronic_duration (~> 0.12)
   gitlab_omniauth-ldap (~> 2.2.0)
-  gitlab_quality-test_tooling (~> 1.11.0)
+  gitlab_quality-test_tooling (~> 1.14.2)
   gon (~> 6.4.0)
   google-apis-androidpublisher_v3 (~> 0.34.0)
   google-apis-cloudbilling_v1 (~> 0.21.0)
@@ -1923,8 +1947,11 @@ DEPENDENCIES
   google-apis-serviceusage_v1 (~> 0.28.0)
   google-apis-sqladmin_v1beta4 (~> 0.41.0)
   google-apis-storage_v1 (~> 0.29)
+  google-cloud-artifact_registry-v1 (~> 0.11.0)
+  google-cloud-compute-v1 (~> 2.6.0)
   google-cloud-storage (~> 1.45.0)
-  google-protobuf (~> 3.25, >= 3.25.2)
+  google-protobuf (~> 3.25, >= 3.25.1)
+  googleauth (~> 1.8.1)
   gpgme (~> 2.0.23)
   grape (~> 2.0.0)
   grape-entity (~> 0.10.0)
@@ -1933,11 +1960,11 @@ DEPENDENCIES
   grape-swagger-entity (~> 0.5.1)
   grape_logging (~> 1.8)
   graphiql-rails (~> 1.8.0)
-  graphlient (~> 0.5.0)
+  graphlient (~> 0.6.0)
   graphlyte (~> 1.0.0)
-  graphql (~> 2.0.27)
+  graphql (~> 2.2.5)
   graphql-docs (~> 4.0.0)
-  grpc (~> 1.58.0)
+  grpc (~> 1.60.0)
   gssapi (~> 1.3.1)
   guard-rspec
   haml_lint (~> 0.53)
@@ -1960,11 +1987,11 @@ DEPENDENCIES
   jsonb_accessor (~> 1.3.10)
   jwt (~> 2.5)
   kaminari (~> 1.2.2)
-  kas-grpc (~> 0.3.0)
+  kas-grpc (~> 0.4.0)
   knapsack (~> 1.21.1)
   kramdown (~> 2.3.1)
   kubeclient (~> 4.11.0)
-  lefthook (~> 1.5.5)
+  lefthook (~> 1.5.6)
   letter_opener_web (~> 2.0.0)
   license_finder (~> 7.0)
   licensee (~> 9.16)
@@ -1989,7 +2016,7 @@ DEPENDENCIES
   net-protocol (~> 0.1.3)
   nokogiri (~> 1.16)
   oauth2 (~> 2.0)
-  octokit (~> 6.0)
+  octokit (~> 8.0)
   ohai (~> 18.1)
   oj (~> 3.13.21)
   oj-introspect (~> 0.7)
@@ -2021,10 +2048,10 @@ DEPENDENCIES
   parslet (~> 1.8)
   peek (~> 1.1)
   pg (~> 1.5.4)
-  pg_query (~> 4.2.3)
+  pg_query (~> 5.1.0)
   png_quantizator (~> 0.2.1)
   premailer-rails (~> 1.10.3)
-  prometheus-client-mmap (~> 1.1)
+  prometheus-client-mmap (~> 1.1, >= 1.1.1)
   pry-byebug
   pry-rails (~> 0.3.9)
   pry-shell (~> 0.6.4)
@@ -2040,7 +2067,7 @@ DEPENDENCIES
   rails-i18n (~> 7.0)
   rainbow (~> 3.0)
   rbtrace (~> 0.4)
-  re2 (= 2.6.0)
+  re2 (= 2.7.0)
   recaptcha (~> 5.12)
   redis (~> 4.8.0)
   redis-actionpack (~> 5.4.0)
@@ -2059,7 +2086,7 @@ DEPENDENCIES
   rspec_profiling (~> 0.0.6)
   rubocop
   ruby-fogbugz (~> 0.3.0)
-  ruby-lsp (~> 0.13.2)
+  ruby-lsp (~> 0.13.3)
   ruby-lsp-rails (~> 0.2.8)
   ruby-lsp-rspec (~> 0.1.8)
   ruby-magic (~> 0.6)
@@ -2072,14 +2099,14 @@ DEPENDENCIES
   sassc-rails (~> 2.1.0)
   sd_notify (~> 0.1.0)
   seed-fu (~> 2.3.7)
-  selenium-webdriver (~> 4.16)
-  semver_dialects (~> 1.5)
+  selenium-webdriver (~> 4.17)
+  semver_dialects (~> 1.6.1)
   sentry-rails (~> 5.10.0)
   sentry-raven (~> 3.1)
   sentry-ruby (~> 5.10.0)
   sentry-sidekiq (~> 5.10.0)
   shoulda-matchers (~> 5.1.0)
-  sidekiq (~> 7.1.6)
+  sidekiq!
   sidekiq-cron (~> 1.12.0)
   sigdump (~> 0.2.4)
   simple_po_parser (~> 1.1.6)
@@ -2119,10 +2146,10 @@ DEPENDENCIES
   vmstat (~> 2.3.0)
   warning (~> 1.3.0)
   webauthn (~> 3.0)
-  webmock (~> 3.19.1)
+  webmock (~> 3.20.0)
   webrick (~> 1.8.1)
   wikicloth (= 0.8.1)
   yajl-ruby (~> 1.4.3)
 
 BUNDLED WITH
-   2.5.4
+   2.5.5
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 4086a43e089d..06b5399a0836 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -411,10 +411,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z9f8ypvpwj3sfqh3nlnhrq7ryhrv7isqzg370fba27zpy7bv5sx";
+      sha256 = "0fy80878z21j8py03ddf1ycsndzmnmw4jkbzw1mlrglwav08yq7q";
       type = "gem";
     };
-    version = "3.190.2";
+    version = "3.191.1";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -433,10 +433,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sfpipfdmixpc0madfx1yvpwpv52fdhxfx4bmvrjxzb6ra78ikbr";
+      sha256 = "1safbxycz517m2v981z8kbmdiqx9jypl093ia0mcrskkgh4fyb3s";
       type = "gem";
     };
-    version = "1.142.0";
+    version = "1.143.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -534,6 +534,16 @@ src:
     };
     version = "0.3.2";
   };
+  base64 = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
   batch-loader = {
     groups = ["default"];
     platforms = [];
@@ -653,10 +663,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "028qif22isxa5sg5gf1322d0qjhir5rr0jpkaiwcic4lspacdcnv";
+      sha256 = "1srlq3gqirzdkhv12ljpnp5cb0f8jfrl3n8xs9iivyz2c7khvdyp";
       type = "gem";
     };
-    version = "1.17.1";
+    version = "1.18.3";
   };
   browser = {
     groups = ["default"];
@@ -730,10 +740,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "114qm5f5vhwaaw9rj1h2lcamh46zl13v1m18jiw68zl961gwmw6n";
+      sha256 = "1vxfah83j6zpw3v5hic0j70h519nvmix2hbszmjwm8cfawhagns2";
       type = "gem";
     };
-    version = "3.39.2";
+    version = "3.40.0";
   };
   capybara-screenshot = {
     dependencies = ["capybara" "launchy"];
@@ -779,15 +789,14 @@ src:
     version = "3.0.5";
   };
   character_set = {
-    dependencies = ["sorted_set"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ql0kxnpbblggyn8hx511pghpqf8xv3ng2kbybwwdi11bg1il6zp";
+      sha256 = "0l9z2pihzc11f0jpq2sx789zwpmwf5nyhsjps45zzvfs5931fwrb";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.8.0";
   };
   charlock_holmes = {
     groups = ["default"];
@@ -1043,6 +1052,17 @@ src:
     };
     version = "1.14.0";
   };
+  cssbundling-rails = {
+    dependencies = ["railties"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m8qgrh70982xfdcylrm4zgh7pxq9ps539icnc7bqh1awl8k78aa";
+      type = "gem";
+    };
+    version = "1.3.3";
+  };
   csv_builder = {
     groups = ["default"];
     platforms = [];
@@ -1068,10 +1088,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x8xwn2l7avc6h08vgrkxyb6ga7slip5x8lynswmzd0y32ngnw4h";
+      sha256 = "104x4p9rmk8frf4l858p171vjaif7mqgxspx61d26c0hfg355ra3";
       type = "gem";
     };
-    version = "9.3.1";
+    version = "9.4.2";
   };
   danger-gitlab = {
     dependencies = ["danger" "gitlab"];
@@ -1224,10 +1244,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0036nfmz7dz5jwagm4k3hshrkmm3w2473q38bhnr06dmxlkgrfvj";
+      sha256 = "1p11hv0a2s4m29vvyr7z22wjr9f4cfmdjnqidrv62rfcg9r73w0g";
       type = "gem";
     };
-    version = "0.0.24.pre.alpha1";
+    version = "0.0.25.pre.alpha1";
   };
   device_detector = {
     groups = ["default"];
@@ -2075,10 +2095,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1awn2k5b2sji74vr0xhg0v68h1y0msqpkwq5z8k31mp2ii9mmmbg";
+      sha256 = "0rlka373b2iva4dz2diz2zx7jyx617hwqvnfx2hs5xs0nh24fc5g";
       type = "gem";
     };
-    version = "0.18.0";
+    version = "0.20.0";
   };
   gemoji = {
     groups = ["default" "development" "test"];
@@ -2140,10 +2160,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xqi0f0pf7cj110b981nx95wql3i4knzvc6417ym3yvbvsxjyand";
+      sha256 = "07q9fmk4mddfn12vl3jvj80rxmhixkl99hxff7zi385rwphki8an";
       type = "gem";
     };
-    version = "16.7.0.pre.rc1";
+    version = "16.9.0.pre.rc3";
   };
   gitlab = {
     dependencies = ["httparty" "terminal-table"];
@@ -2216,13 +2236,13 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z0h4bvfvlwyfx8ia03lr9dlpy38n75v2wxh424v6fhy4z08ycab";
+      sha256 = "0mqwz2a4k9894d160k5a3mqm5g6p9rncgi4kx8w8dymbnz34bcli";
       type = "gem";
     };
-    version = "0.0.11";
+    version = "0.0.12";
   };
   gitlab-housekeeper = {
-    dependencies = ["activesupport" "httparty" "rubocop"];
+    dependencies = ["activesupport" "awesome_print" "httparty" "rubocop"];
     groups = ["development" "test"];
     platforms = [];
     source = {
@@ -2247,20 +2267,20 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ya6r3ij0fzz6p50h157bn224n7405nwak6lx80ppvil9sm0dzr6";
+      sha256 = "1m41by1hly50yq9vsz5pbrb51yryf46n9pm7wnrinaisccrinl79";
       type = "gem";
     };
-    version = "0.35.0";
+    version = "0.35.1";
   };
   gitlab-license = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ms1kf5nmclsnmd2xa9k273asmb73ivaykwrb3g7sq263j3y7jk0";
+      sha256 = "082ycgvq7j0kyqrbx8shipqk3lgz6i279caf1ljvk9h5wsqqy8zx";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.0";
   };
   gitlab-mail_room = {
     dependencies = ["jwt" "net-imap" "oauth2" "redis" "redis-namespace"];
@@ -2339,10 +2359,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mnhl888n4zfwhmfy3f1pj0k1rzjwpf16a1ic7wb22l64252g4g8";
+      sha256 = "00w9p1h3awari07vh33h65y1l1jh7sgym8fzgcp5q5aihha0y9i2";
       type = "gem";
     };
-    version = "0.2.3";
+    version = "0.3.0";
   };
   gitlab-secret_detection = {
     dependencies = ["parallel" "re2" "toml-rb"];
@@ -2408,15 +2428,15 @@ src:
     version = "2.2.0";
   };
   gitlab_quality-test_tooling = {
-    dependencies = ["activesupport" "amatch" "gitlab" "http" "nokogiri" "parallel" "rainbow" "table_print" "zeitwerk"];
+    dependencies = ["activesupport" "amatch" "gitlab" "http" "nokogiri" "parallel" "rainbow" "rspec-parameterized" "table_print" "zeitwerk"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0anhwfn9dnd8zkjwkq3qycjswfxqksfnwvl7dr6azz2zvjnxnii1";
+      sha256 = "0n7ndhxkjkz7pfdqvcp90lxxias3lz2ssabpv5a5nxayilr47qwy";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.14.2";
   };
   globalid = {
     dependencies = ["activesupport"];
@@ -2605,6 +2625,39 @@ src:
     };
     version = "0.29.0";
   };
+  google-cloud-artifact_registry-v1 = {
+    dependencies = ["gapic-common" "google-cloud-errors" "google-cloud-location" "grpc-google-iam-v1"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gkq82lsjz3yw9w819ifdqx9ixcbgydr5myy64wnczknx7fd505s";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  google-cloud-common = {
+    dependencies = ["google-protobuf" "googleapis-common-protos-types"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yxmdxx933q48397jsczsmpshr4b61izv3spnhvzxd24s67v13bk";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  google-cloud-compute-v1 = {
+    dependencies = ["gapic-common" "google-cloud-common" "google-cloud-errors"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07hly5qbdy0qddw48biw0ybi2cx13861l5i09mj2abzw7yrmjq5r";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
   google-cloud-core = {
     dependencies = ["google-cloud-env" "google-cloud-errors"];
     groups = ["default"];
@@ -2637,6 +2690,17 @@ src:
     };
     version = "1.3.0";
   };
+  google-cloud-location = {
+    dependencies = ["gapic-common" "google-cloud-errors"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1l6j0i8flfdzl9c7db990632jmn5v7bmbh1i6x0sqp3f2p59jv1q";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
   google-cloud-profiler-v2 = {
     dependencies = ["gapic-common" "google-cloud-errors"];
     groups = ["default"];
@@ -2692,15 +2756,15 @@ src:
     version = "1.5.0";
   };
   googleauth = {
-    dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
+    dependencies = ["faraday" "jwt" "multi_json" "os" "signet"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hpwgwhk0lmnknkw8kbdfxn95qqs6aagpq815l5fkw9w6mi77pai";
+      sha256 = "1ry9v23kndgx2pxq9v31l68k9lnnrcz1w4v75bkxq88jmbddljl1";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.8.1";
   };
   gpgme = {
     dependencies = ["mini_portile2"];
@@ -2796,10 +2860,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14pjw0hd9rmfc687yj1cfd8jjy8gh7k6zn6w9syvcl1f2hb98b0g";
+      sha256 = "1h652p91zdbdigb155vhdlh0lnq4ia8wlg5y5h0ibhlf9i5ndn5q";
       type = "gem";
     };
-    version = "0.5.0";
+    version = "0.6.0";
   };
   graphlyte = {
     groups = ["test"];
@@ -2812,14 +2876,15 @@ src:
     version = "1.0.0";
   };
   graphql = {
+    dependencies = ["racc"];
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dlb8hbgs7yas59pwf4k7qrczbgkvrpcjqd2f5cmjj02fxdbwn8z";
+      sha256 = "0zmw8gslwqaydxvmvan0m2rpbgxplm77kwp64bg051cvnasb9vhm";
       type = "gem";
     };
-    version = "2.0.27";
+    version = "2.2.5";
   };
   graphql-client = {
     dependencies = ["activesupport" "graphql"];
@@ -2827,10 +2892,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02r5qvfr176n051mp1c79xbpjhjqm92kk4118r0fbp131y0xralq";
+      sha256 = "1iv9d6l14h05vnhrzmm5fn2cnjb469an28c9z7c6p4bgjy0rssgy";
       type = "gem";
     };
-    version = "0.18.0";
+    version = "0.19.0";
   };
   graphql-docs = {
     dependencies = ["commonmarker" "dartsass" "escape_utils" "extended-markdown-filter" "gemoji" "graphql" "html-pipeline"];
@@ -2849,10 +2914,21 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00lx7sql179ak7rx5vg76z45y558d5wj0gldql4qjcaxjnzcryqc";
+      sha256 = "1bzkhy5yy4a8nlp89wwfw9bv4h358gsa9rvzn6i2y0z2ha5vmgqn";
       type = "gem";
     };
-    version = "1.58.0";
+    version = "1.60.0";
+  };
+  grpc-google-iam-v1 = {
+    dependencies = ["google-protobuf" "googleapis-common-protos" "grpc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kip34n9604j2cc9rkplv5ljq0n8f4aizix4yr8rginsa38md8yf";
+      type = "gem";
+    };
+    version = "1.5.0";
   };
   gssapi = {
     dependencies = ["ffi"];
@@ -3367,10 +3443,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12md9pbh0m2yfx0vy81dyn40ibdnhzm6b7kfwra66pkjwrac9pvq";
+      sha256 = "13bkqrdz1rdn23nn0zni7vdvwnm34apgi3xy42djhhxl698888dv";
       type = "gem";
     };
-    version = "0.3.0";
+    version = "0.4.0";
   };
   knapsack = {
     dependencies = ["rake"];
@@ -3442,10 +3518,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ac5r000h6rp7gdwyxr1n8hsg5b88gwbdkq87pbcjzps9li6n6nz";
+      sha256 = "1rc7fzg4rjchyv7rd6vlz35hg5n8k5625s78hj12zji0xhg1jznc";
       type = "gem";
     };
-    version = "1.5.5";
+    version = "1.5.6";
   };
   letter_opener = {
     dependencies = ["launchy"];
@@ -3496,10 +3572,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0i4hs0vbgp0w3pdddr37zhydm16af122rmr0w39v3nqrj1ir65kv";
+      sha256 = "05g5w9c4jlfhwn0hfz117s1c7hfdm5yn7cywr4mah7xr41yvbh04";
       type = "gem";
     };
-    version = "9.16.0";
+    version = "9.16.1";
   };
   listen = {
     dependencies = ["rb-fsevent" "rb-inotify"];
@@ -3648,16 +3724,6 @@ src:
     };
     version = "0.4.2";
   };
-  memoist = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0i9wpzix3sjhf6d9zw60dm4371iq8kyz7ckh2qapan2vyaim6b55";
-      type = "gem";
-    };
-    version = "0.16.2";
-  };
   memory_profiler = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -4115,10 +4181,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gxh0x910qvah2sm9fbxn8jjy3pgwskyd3gm703zf182hafll3lj";
+      sha256 = "11fhv1a43c51jkgmqf62aypf9yw74lc6ph4qmzsh2bydwwzbwqn3";
       type = "gem";
     };
-    version = "6.1.1";
+    version = "8.0.0";
   };
   ohai = {
     dependencies = ["chef-config" "chef-utils" "ffi" "ffi-yajl" "ipaddress" "mixlib-cli" "mixlib-config" "mixlib-log" "mixlib-shellout" "plist" "train-core" "wmi-lite"];
@@ -4563,10 +4629,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15ynrzqsmmbmxib8ri8n9k6z3l6rwd91j7y1mghm33nfgdf9bj8w";
+      sha256 = "0p8ljf694qvrf5875ljg6kp7gvmndy8490kasjzcq22ghryg9xxp";
       type = "gem";
     };
-    version = "4.2.3";
+    version = "5.1.0";
   };
   plist = {
     groups = ["default"];
@@ -4648,10 +4714,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19mi424kwalrzdm7cvzjx2w0rw778mxqb75y9wn20nc277nxglvb";
+      sha256 = "0vg47xx3wgg24snqc6ychb08mbcyrjmvxym9fg69cpa4xvj133fx";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   protocol = {
     dependencies = ["ruby_parser"];
@@ -4995,16 +5061,6 @@ src:
     };
     version = "0.4.14";
   };
-  rbtree = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1z0h1x7fpkzxamnvbw1nry64qd6n0nqkwprfair29z94kd3a9vhl";
-      type = "gem";
-    };
-    version = "0.4.6";
-  };
   rchardet = {
     groups = ["default" "development"];
     platforms = [];
@@ -5021,10 +5077,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sj80r3gy4sb27mrgc6pwcf2lra669p8p81axdv2p5pfm6k3mqbq";
+      sha256 = "1p0kxb1gwrsv2r38jwgsg8b5k2xx966qmrc6aajfncpzm398i79i";
       type = "gem";
     };
-    version = "2.6.0";
+    version = "2.7.0";
   };
   recaptcha = {
     dependencies = ["json"];
@@ -5525,10 +5581,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g1vdas991rv6lrjppjxjbfyzif4jxbncrcg9shgzrmibzilbnwr";
+      sha256 = "0b9aj7d1wh4s83mkfsvjgkikx83c7afyzy6k2940fx08hfrdqgb8";
       type = "gem";
     };
-    version = "0.13.2";
+    version = "0.13.3";
   };
   ruby-lsp-rails = {
     dependencies = ["actionpack" "activerecord" "railties" "ruby-lsp" "sorbet-runtime"];
@@ -5616,15 +5672,15 @@ src:
     version = "0.0.5";
   };
   ruby_parser = {
-    dependencies = ["sexp_processor"];
+    dependencies = ["racc" "sexp_processor"];
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j8w4mqhqaw53jd27cfhq1mq02d1r606x9fmrpfzz0fwjnk8j8ld";
+      sha256 = "0sy5y7w89ii5iqym7b21glcwxqg8kizxfy8a7kcxq0j65wyqjhiq";
       type = "gem";
     };
-    version = "3.20.3";
+    version = "3.21.0";
   };
   rubyntlm = {
     groups = ["default"];
@@ -5715,10 +5771,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18mgdjxdzpbw92zrllynxw7jn7yihi85j3dg7i4f6c39w1scqkbn";
+      sha256 = "1d9djmwn36a5m8a83bpycs48g8kh1n2xkyvghn7dr6zwh4wdyksz";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.1.2";
   };
   sawyer = {
     dependencies = ["addressable" "faraday"];
@@ -5753,15 +5809,15 @@ src:
     version = "2.3.7";
   };
   selenium-webdriver = {
-    dependencies = ["rexml" "rubyzip" "websocket"];
+    dependencies = ["base64" "rexml" "rubyzip" "websocket"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qy3whgdg6q5bi6mzbq5gc94rxnkasdhdx3c73z3a955krj16w13";
+      sha256 = "0g3l3invk95w1f72mpp0r4hc3vsc3070c1xd1wg76kfg2r182xnq";
       type = "gem";
     };
-    version = "4.16.0";
+    version = "4.17.0";
   };
   semver_dialects = {
     dependencies = ["deb_version" "pastel" "thor" "tty-command"];
@@ -5769,10 +5825,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bj9r98ilpgg0w0h80wydfssr7kv65y0v2afsf1azhf9mymz3000";
+      sha256 = "13jmbqzswvkq0xds2s1r6wnh78gfy2zbn35qvalhwj2qi4nmjpvf";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.6.1";
   };
   sentry-rails = {
     dependencies = ["railties" "sentry-ruby"];
@@ -5818,25 +5874,15 @@ src:
     };
     version = "5.10.0";
   };
-  set = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "00ick64s6066idlylbxhpjmxf56h1l22c8xp0mg4j8963zga9zq2";
-      type = "gem";
-    };
-    version = "1.0.2";
-  };
   sexp_processor = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vzz9mhg4kkdqf179pm30i204h7iskanxrk53j0csf0qrrs4iajd";
+      sha256 = "182x05kpdjlckh31qizws50fz7sjk86yjjfmy45z61q3f930j4ci";
       type = "gem";
     };
-    version = "4.17.0";
+    version = "4.17.1";
   };
   shellany = {
     groups = ["default" "test"];
@@ -5864,9 +5910,8 @@ src:
     groups = ["default"];
     platforms = [];
     source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "18j3g31ps6ga9nzza0z0d00qjrn810fhkhx2pqi3rvxwsmkdlnbq";
-      type = "gem";
+      path = "${src}/vendor/gems/sidekiq-7.1.6";
+      type = "path";
     };
     version = "7.1.6";
   };
@@ -5897,10 +5942,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0100rclkhagf032rg3r0gf3f4znrvvvqrimy6hpa73f21n9k2a0x";
+      sha256 = "0fzakk5y7zzii76zlkynpp1c764mzkkfg4mpj18f5pf2xp1aikb6";
       type = "gem";
     };
-    version = "0.17.0";
+    version = "0.18.0";
   };
   simple_po_parser = {
     groups = ["development" "test"];
@@ -6036,17 +6081,6 @@ src:
     };
     version = "0.5.11144";
   };
-  sorted_set = {
-    dependencies = ["rbtree" "set"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0brpwv68d7m9qbf5js4bg8bmg4v7h4ghz312jv9cnnccdvp8nasg";
-      type = "gem";
-    };
-    version = "1.0.3";
-  };
   spamcheck = {
     dependencies = ["grpc"];
     groups = ["default"];
@@ -6875,10 +6909,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vfispr7wd2p1fs9ckn1qnby1yyp4i1dl7qz8n482iw977iyxrza";
+      sha256 = "0rc3g9hhxi6v2l1cp9q3kcjd92bhmdbrb517l4v5pyzwq2nflcyc";
       type = "gem";
     };
-    version = "3.19.1";
+    version = "3.20.0";
   };
   webrick = {
     groups = ["default" "development" "test"];
diff --git a/nixpkgs/pkgs/applications/version-management/gitsign/default.nix b/nixpkgs/pkgs/applications/version-management/gitsign/default.nix
index 2d0878cf0d95..817dbaf12783 100644
--- a/nixpkgs/pkgs/applications/version-management/gitsign/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitsign/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "gitsign";
-  version = "0.8.1";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "sigstore";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+oJBpERU2WbfmS7MyBbJKrh4kzY+rgSw4uKAU1y5kR4=";
+    hash = "sha256-52Vyh2aImus9ZTb082N2FRMIsfykfQ2+AVUT2VD6lJ4=";
   };
-  vendorHash = "sha256-Z46eDqUc8Mdq9lEMx1YOuSh5zPIMQrSkbto33AmgANU=";
+  vendorHash = "sha256-fQTd7J2l7W3E5RQIr2hn2wp9CPHn8N8TpDqfbb3TFgI=";
 
   subPackages = [
     "."
diff --git a/nixpkgs/pkgs/applications/version-management/gitui/default.nix b/nixpkgs/pkgs/applications/version-management/gitui/default.nix
index d626585b97c5..4b31c2e24853 100644
--- a/nixpkgs/pkgs/applications/version-management/gitui/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitui/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gitui";
-  version = "0.25.1";
+  version = "0.25.2";
 
   src = fetchFromGitHub {
     owner = "extrawurst";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+u0XvZb42RRlQnQUZHrMXRJU+31CDy/oLYQ55tLlmUg=";
+    hash = "sha256-1sBuyY6lpxb/Vlpy6pi7YP69HZID6D97ZkVLbPEZ4Qw=";
   };
 
-  cargoHash = "sha256-3FBrJvLSuDehCy+o7valkf5LSuMkD2loD2JPQO4+3sY=";
+  cargoHash = "sha256-S8Oy5DII05430nkRJmMgZsb4fUIks2zliDea9RycH3E=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/glab/default.nix b/nixpkgs/pkgs/applications/version-management/glab/default.nix
index c44eb1706a88..b6c49f47dc56 100644
--- a/nixpkgs/pkgs/applications/version-management/glab/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/glab/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "glab";
-  version = "1.36.0";
+  version = "1.37.0";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-BS5v+R3DqkLLNZScr2PutMMrLZCI4tUK9HDN/viFYMU=";
+    hash = "sha256-H1yYjI7ct/YO44czX5J0cHc/YbhxtXJQThJcARyUEq0=";
   };
 
-  vendorHash = "sha256-x96ChhozvTrX0eBWt3peX8dpd4gyukJ28RkqcD2W/OM=";
+  vendorHash = "sha256-4CQ4NPHAs736LQxDxvKWEH9TQvIKAouJ6zVReAoZTec=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/applications/version-management/got/default.nix b/nixpkgs/pkgs/applications/version-management/got/default.nix
index 377e3a27e51f..2448e4ccffea 100644
--- a/nixpkgs/pkgs/applications/version-management/got/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/got/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "got";
-  version = "0.96";
+  version = "0.97";
 
   src = fetchurl {
     url = "https://gameoftrees.org/releases/portable/got-portable-${finalAttrs.version}.tar.gz";
-    hash = "sha256-/R7r6IJtgkuNQwoLxys/1HcXW+l3PVkjnPXphFpAFTs=";
+    hash = "sha256-4HpIlKRYUDoymCBH8GS8DDXaY0nYiVvotpBkwglOO3I=";
   };
 
   nativeBuildInputs = [ pkg-config bison ]
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
     # The configure script assumes dependencies on Darwin are installed via
     # Homebrew or MacPorts and hardcodes assumptions about the paths of
     # dependencies which fails the nixpkgs configurePhase.
-    substituteInPlace configure --replace 'xdarwin' 'xhomebrew'
+    substituteInPlace configure --replace-fail 'xdarwin' 'xhomebrew'
   '';
 
   env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.isDarwin [
@@ -49,11 +49,12 @@ stdenv.mkDerivation (finalAttrs: {
 
   installCheckPhase = ''
     runHook preInstallCheck
-    test "$($out/bin/got --version)" = "${finalAttrs.pname} ${finalAttrs.version}"
+    test "$($out/bin/got --version)" = "got ${finalAttrs.version}"
     runHook postInstallCheck
   '';
 
-  meta = with lib; {
+  meta = {
+    changelog = "https://gameoftrees.org/releases/CHANGES";
     description = "A version control system which prioritizes ease of use and simplicity over flexibility";
     longDescription = ''
       Game of Trees (Got) is a version control system which prioritizes
@@ -65,9 +66,9 @@ stdenv.mkDerivation (finalAttrs: {
       on the same repository.
     '';
     homepage = "https://gameoftrees.org";
-    changelog = "https://gameoftrees.org/releases/CHANGES";
-    license = licenses.isc;
-    platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ abbe afh ];
+    license = lib.licenses.isc;
+    maintainers = with lib.maintainers; [ abbe afh ];
+    mainProgram = "got";
+    platforms = with lib.platforms; darwin ++ linux;
   };
 })
diff --git a/nixpkgs/pkgs/applications/version-management/josh/default.nix b/nixpkgs/pkgs/applications/version-management/josh/default.nix
index 5acd1a634344..b127966176cd 100644
--- a/nixpkgs/pkgs/applications/version-management/josh/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/josh/default.nix
@@ -11,36 +11,24 @@
 , darwin
 }:
 
+let
+  # josh-ui requires javascript dependencies, haven't tried to figure it out yet
+  cargoFlags = [ "--workspace" "--exclude" "josh-ui" ];
+in
+
 rustPlatform.buildRustPackage rec {
   pname = "josh";
-  version = "23.02.14";
+  version = "23.12.04";
   JOSH_VERSION = "r${version}";
 
   src = fetchFromGitHub {
     owner = "esrlabs";
     repo = "josh";
     rev = JOSH_VERSION;
-    sha256 = "1sqa8xi5d55zshky7gicac02f67vp944hclkdsmwy0bczk9hgssr";
+    sha256 = "10fspcafqnv6if5c1h8z9pf9140jvvlrch88w62wsg4w2vhaii0v";
   };
 
-  patches = [
-    # Unreleased patch allowing compilation from the GitHub tarball download
-    (fetchpatch {
-      name = "josh-version-without-git.patch";
-      url = "https://github.com/josh-project/josh/commit/13e7565ab029206598881391db4ddc6dface692b.patch";
-      sha256 = "1l5syqj51sn7kcqvffwl6ggn5sq8wfkpviga860agghnw5dpf7ns";
-    })
-
-    # Merged upstream, fixes builds with newer rustc
-    (fetchpatch {
-      name = "josh-fix-builds-with-rust-173.patch";
-      url = "https://github.com/josh-project/josh/commit/7b8259b81a9acabb528ddebc4ab30fc712f756fb.patch";
-      sha256 = "sha256-YfrVlH6Ox05ZbmB/15HVaFlOyRTOFbYflq0edi6/X9k=";
-      includes = [ "josh-proxy/src/bin/josh-proxy.rs" ];
-    })
-  ];
-
-  cargoSha256 = "0f6cvz2s8qs53b2g6xja38m24hafqla61s4r5za0a1dyndgms7sl";
+  cargoSha256 = "1j0vl3h6f65ldg80bgryh1mz423lcrcdkn8rmajya1850pfxk3w3";
 
   nativeBuildInputs = [
     pkg-config
@@ -54,11 +42,8 @@ rustPlatform.buildRustPackage rec {
     darwin.Security
   ];
 
-  cargoBuildFlags = [
-    "-p" "josh"
-    "-p" "josh-proxy"
-    # TODO: josh-ui
-  ];
+  cargoBuildFlags = cargoFlags;
+  cargoTestFlags = cargoFlags;
 
   postInstall = ''
     wrapProgram "$out/bin/josh-proxy" --prefix PATH : "${git}/bin"
diff --git a/nixpkgs/pkgs/applications/version-management/jujutsu/default.nix b/nixpkgs/pkgs/applications/version-management/jujutsu/default.nix
index 9503c79e04d0..b6b4bd8e8e41 100644
--- a/nixpkgs/pkgs/applications/version-management/jujutsu/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/jujutsu/default.nix
@@ -11,7 +11,6 @@
 , libssh2
 , libgit2
 , zstd
-, fetchpatch
 , installShellFiles
 , nix-update-script
 , testers
@@ -20,19 +19,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jujutsu";
-  version = "0.14.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "martinvonz";
     repo = "jj";
     rev = "v${version}";
-    hash = "sha256-xnGnervyXPfZyQTYsPu09fj+QvbEZ6rDJ4fYHBeF/RY=";
+    hash = "sha256-yppQIffjpyQ2nqhiZbV2pSMQJx8srmHjAk+UClCQfRw=";
   };
 
-  cargoHash = "sha256-wuZ0zthaemzyDn5J2au2L2k0QJnzbrCRjSBIPivEbnQ=";
+  cargoHash = "sha256-2BmKC8DaOdD/THchImmGqplhDrHQHEMyWORWnE2ygSM=";
 
   cargoBuildFlags = [ "--bin" "jj" ]; # don't install the fake editors
-  useNextest = true; # nextest is the upstream integration framework
+  useNextest = false; # nextest is the upstream integration framework, but is problematic for test skipping
   ZSTD_SYS_USE_PKG_CONFIG = "1";    # disable vendored zlib
   LIBSSH2_SYS_USE_PKG_CONFIG = "1"; # disable vendored libssh2
 
@@ -63,6 +62,11 @@ rustPlatform.buildRustPackage rec {
       --zsh <($out/bin/jj util completion zsh)
   '';
 
+  checkFlags = [
+    # signing tests spin up an ssh-agent and do git checkouts
+    "--skip=test_ssh_signing"
+  ];
+
   passthru = {
     updateScript = nix-update-script { };
     tests = {
diff --git a/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix b/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix
index 83ee7de71955..e8eac58e73f6 100644
--- a/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/monotone-viz/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Monotone ancestry visualiser";
+    mainProgram = "monotone-viz";
     license = lib.licenses.gpl2Plus ;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/applications/version-management/p4/default.nix b/nixpkgs/pkgs/applications/version-management/p4/default.nix
index 188c5bbe2206..695e596e8c85 100644
--- a/nixpkgs/pkgs/applications/version-management/p4/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/p4/default.nix
@@ -4,10 +4,7 @@
 , lib
 , emptyDirectory
 , linkFarm
-, symlinkJoin
 , jam
-, libcxx
-, libcxxabi
 , openssl
 , xcbuild
 , CoreServices
@@ -33,10 +30,6 @@ let
       # cone-based Git sparse checkout, either.)
       { name = "contrib"; path = "${src}/contrib"; }
     ];
-  libcxxUnified = symlinkJoin {
-    inherit (libcxx) name;
-    paths = [ libcxx libcxxabi ];
-  };
 in
 stdenv.mkDerivation rec {
   pname = "p4";
@@ -70,7 +63,7 @@ stdenv.mkDerivation rec {
     ++ lib.optionals stdenv.isDarwin [
       "-sOSVER=1013"
       "-sMACOSX_SDK=${emptyDirectory}"
-      "-sLIBC++DIR=${libcxxUnified}/lib"
+      "-sLIBC++DIR=${lib.getLib stdenv.cc.libcxx}/lib"
     ];
 
   CCFLAGS =
diff --git a/nixpkgs/pkgs/applications/version-management/radicle-upstream/default.nix b/nixpkgs/pkgs/applications/version-management/radicle-upstream/default.nix
index 51365d0c4a31..97fec6257dd1 100644
--- a/nixpkgs/pkgs/applications/version-management/radicle-upstream/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/radicle-upstream/default.nix
@@ -77,6 +77,7 @@ let
     maintainers = with maintainers; [ d-xo ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    broken = stdenv.isLinux; # last successful build 2023-04-11
   };
 in
 if stdenv.isDarwin
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/pages.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/pages.nix
index b0eee5683c58..54b202756309 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/pages.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/pages.nix
@@ -30,6 +30,7 @@ buildGoModule (rec {
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/pages.sr.ht";
     description = "Web hosting service for the sr.ht network";
+    mainProgram = "pages.sr.ht";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ eadwu christoph-heiss ];
   };
diff --git a/nixpkgs/pkgs/applications/version-management/topgit/default.nix b/nixpkgs/pkgs/applications/version-management/topgit/default.nix
index 86e0d1b3c809..0a5dd908c663 100644
--- a/nixpkgs/pkgs/applications/version-management/topgit/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/topgit/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "TopGit manages large amount of interdependent topic branches";
+    mainProgram = "tg";
     homepage = "https://github.com/mackyle/topgit";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/video/anilibria-winmaclinux/default.nix b/nixpkgs/pkgs/applications/video/anilibria-winmaclinux/default.nix
index ee6c34965200..d35947be850b 100644
--- a/nixpkgs/pkgs/applications/video/anilibria-winmaclinux/default.nix
+++ b/nixpkgs/pkgs/applications/video/anilibria-winmaclinux/default.nix
@@ -16,16 +16,16 @@
 
 mkDerivation rec {
   pname = "anilibria-winmaclinux";
-  version = "1.2.14";
+  version = "1.2.15";
 
   src = fetchFromGitHub {
     owner = "anilibria";
     repo = "anilibria-winmaclinux";
-    rev = "d941607f078c72fca104ee1e7916cc0ddcc0acf5";
-    sha256 = "sha256-G4KlYAjOT1UV29vcX7Q8dMTj0BX0rsJcLtK2MQag5nU=";
+    rev = version;
+    sha256 = "sha256-pfM3o4H3XJ4ZE0FXVR1k8pc7lr7SOQjKEMWuG9YkvvI=";
   };
 
-  sourceRoot = "source/src";
+  sourceRoot = "${src.name}/src";
 
   qmakeFlags = [ "PREFIX=${placeholder "out"}" "CONFIG+=unixvlc" ];
 
diff --git a/nixpkgs/pkgs/applications/video/cinelerra/default.nix b/nixpkgs/pkgs/applications/video/cinelerra/default.nix
index 972a68e04f03..6bad50d9e453 100644
--- a/nixpkgs/pkgs/applications/video/cinelerra/default.nix
+++ b/nixpkgs/pkgs/applications/video/cinelerra/default.nix
@@ -44,13 +44,13 @@
 
 stdenv.mkDerivation {
   pname = "cinelerra-cv";
-  version = "unstable-2023-01-29";
+  version = "2.3-unstable-2024-03-20";
 
   src = fetchFromGitHub {
     owner = "cinelerra-cv-team";
     repo = "cinelerra-cv";
-    rev = "bb00ac6b70fcf3cf419348b56f9b264bc01c1a89";
-    sha256 = "11965kb3d7xcvlcf8p7jlzk9swk5i78x7wja4s3043wlzmqmwv0q";
+    rev = "18a693425f78f7c4c68b5a342efce3e8db2a30dc";
+    hash = "sha256-+47Xa63GoKiQzEXbxmKUwJLDIFUnzc/FfxRPXCCxzpE=";
   };
 
   preConfigure = ''
@@ -107,7 +107,10 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Professional video editing and compositing environment (community version)";
     homepage = "http://cinelerra-cv.wikidot.com/";
+    mainProgram = "cinelerracv";
     maintainers = with maintainers; [ marcweber ];
     license = licenses.gpl2Only;
+    # https://github.com/cinelerra-cv-team/cinelerra-cv/issues/3
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/davinci-resolve/default.nix b/nixpkgs/pkgs/applications/video/davinci-resolve/default.nix
index e92065486918..7caf12ee76d8 100644
--- a/nixpkgs/pkgs/applications/video/davinci-resolve/default.nix
+++ b/nixpkgs/pkgs/applications/video/davinci-resolve/default.nix
@@ -31,7 +31,7 @@ let
   davinci = (
     stdenv.mkDerivation rec {
       pname = "davinci-resolve${lib.optionalString studioVariant "-studio"}";
-      version = "18.6.5";
+      version = "18.6.6";
 
       nativeBuildInputs = [
         (appimage-run.override { buildFHSEnv = buildFHSEnvChroot; } )
@@ -52,8 +52,8 @@ let
           outputHashAlgo = "sha256";
           outputHash =
             if studioVariant
-            then "sha256-Ua5R0G4okBpz9SyyA2zn6nVflY9AlWch7Kx6PrW/nMg="
-            else "sha256-oCK7w5jB7h4PSKg2IJwriyAVi/kj4TurloBcfDAe6BQ=";
+            then "sha256-9iTdIjHH8uoXlVr6miyqmHuzbbpbqdJPEbPGycsccoI="
+            else "sha256-WrIQ1FHm65MOGb5HfFl2WzXYJRlqktuZdrtzcjWp1gI=";
 
           impureEnvVars = lib.fetchers.proxyImpureEnvVars;
 
@@ -258,7 +258,7 @@ buildFHSEnv {
     description = "Professional video editing, color, effects and audio post-processing";
     homepage = "https://www.blackmagicdesign.com/products/davinciresolve";
     license = licenses.unfree;
-    maintainers = with maintainers; [ jshcmpbll orivej ];
+    maintainers = with maintainers; [ amarshall jshcmpbll orivej ];
     platforms = [ "x86_64-linux" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     mainProgram = "davinci-resolve";
diff --git a/nixpkgs/pkgs/applications/video/electronplayer/electronplayer.nix b/nixpkgs/pkgs/applications/video/electronplayer/electronplayer.nix
index 15f5b60a09a6..270d5543c993 100644
--- a/nixpkgs/pkgs/applications/video/electronplayer/electronplayer.nix
+++ b/nixpkgs/pkgs/applications/video/electronplayer/electronplayer.nix
@@ -25,6 +25,7 @@ in appimageTools.wrapType2 {
 
   meta = with lib; {
     description = "An electron based web video services player";
+    mainProgram = "electronplayer";
     homepage = "https://github.com/oscartbeaumont/ElectronPlayer";
     license = licenses.mit;
     maintainers = with maintainers; [ extends ];
diff --git a/nixpkgs/pkgs/applications/video/gnome-mplayer/default.nix b/nixpkgs/pkgs/applications/video/gnome-mplayer/default.nix
index bab41b11bee9..09ed7efaf0c0 100644
--- a/nixpkgs/pkgs/applications/video/gnome-mplayer/default.nix
+++ b/nixpkgs/pkgs/applications/video/gnome-mplayer/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Gnome MPlayer, a simple GUI for MPlayer";
+    mainProgram = "gnome-mplayer";
     homepage = "https://sites.google.com/site/kdekorte2/gnomemplayer";
     license = licenses.gpl2;
     maintainers = with maintainers; [];
diff --git a/nixpkgs/pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix b/nixpkgs/pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix
index cc3a5033bd11..86bfebad3860 100644
--- a/nixpkgs/pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix
+++ b/nixpkgs/pkgs/applications/video/gpu-screen-recorder/gpu-screen-recorder-gtk.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "GTK frontend for gpu-screen-recorder.";
+    mainProgram = "gpu-screen-recorder-gtk";
     homepage = "https://git.dec05eba.com/gpu-screen-recorder-gtk/about/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ babbaj ];
diff --git a/nixpkgs/pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix b/nixpkgs/pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix
index 49afbf8507b1..cb85df276412 100644
--- a/nixpkgs/pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix
+++ b/nixpkgs/pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix
@@ -10,13 +10,13 @@ in
 buildKodiBinaryAddon rec {
   pname = "inputstream-adaptive";
   namespace = "inputstream.adaptive";
-  version = "20.3.16";
+  version = "20.3.18";
 
   src = fetchFromGitHub {
     owner = "xbmc";
     repo = "inputstream.adaptive";
     rev = "${version}-${rel}";
-    sha256 = "sha256-1OY+3pvpVW8rkj7HL84IECyHpAmWsUQ9mTzuGesH+jI=";
+    sha256 = "sha256-cjlUKrus4Dv48dCk6AlOgY2iZYTwT39tj2u7aq1P104=";
   };
 
   extraCMakeFlags = [
diff --git a/nixpkgs/pkgs/applications/video/kodi/addons/jellycon/default.nix b/nixpkgs/pkgs/applications/video/kodi/addons/jellycon/default.nix
new file mode 100644
index 000000000000..88e9504f8d19
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/kodi/addons/jellycon/default.nix
@@ -0,0 +1,55 @@
+{ lib, addonDir, buildKodiAddon, fetchFromGitHub, kodi, requests, dateutil, six, kodi-six, signals, websocket }:
+let
+  python = kodi.pythonPackages.python.withPackages (p: with p; [ pyyaml ]);
+in
+buildKodiAddon rec {
+  pname = "jellycon";
+  namespace = "plugin.video.jellycon";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "jellyfin";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-60my7Y60KV5WWALQiamnmAJZJi82cV21rIGYPiV7T+A=";
+  };
+
+  nativeBuildInputs = [
+    python
+  ];
+
+  prePatch = ''
+    # ZIP does not support timestamps before 1980 - https://bugs.python.org/issue34097
+    substituteInPlace build.py \
+      --replace "with zipfile.ZipFile(f'{target}/{archive_name}', 'w') as z:" "with zipfile.ZipFile(f'{target}/{archive_name}', 'w', strict_timestamps=False) as z:"
+  '';
+
+  buildPhase = ''
+    ${python}/bin/python3 build.py --version=py3
+  '';
+
+  postInstall = ''
+    mv /build/source/addon.xml $out${addonDir}/${namespace}/
+  '';
+
+  propagatedBuildInputs = [
+    requests
+    dateutil
+    six
+    kodi-six
+    signals
+    websocket
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/jellyfin/jellycon";
+    description = "A lightweight Kodi add-on for Jellyfin";
+    longDescription = ''
+      JellyCon is a lightweight Kodi add-on that lets you browse and play media
+      files directly from your Jellyfin server within the Kodi interface. It can
+      easily switch between multiple user accounts at will.
+    '';
+    license = licenses.gpl2Only;
+    maintainers = teams.kodi.members;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi/addons/orftvthek/default.nix b/nixpkgs/pkgs/applications/video/kodi/addons/orftvthek/default.nix
index 634347be4826..4a6b4480b050 100644
--- a/nixpkgs/pkgs/applications/video/kodi/addons/orftvthek/default.nix
+++ b/nixpkgs/pkgs/applications/video/kodi/addons/orftvthek/default.nix
@@ -3,13 +3,13 @@
 buildKodiAddon rec {
   pname = "orftvthek";
   namespace = "plugin.video.orftvthek";
-  version = "0.12.6";
+  version = "0.12.9";
 
   src = fetchFromGitHub {
     owner = "s0faking";
     repo = namespace;
     rev = version;
-    sha256 = "sha256-r18vQ+2TSeflwByEAX33vIZG5qIGneraf5rLBugl5BU=";
+    sha256 = "sha256-bqGY9PPukn5/HJa3OqU5NM+ReeDJdVn60jXh1+2Qef8=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/kodi/addons/youtube/default.nix b/nixpkgs/pkgs/applications/video/kodi/addons/youtube/default.nix
index 83afc51053ba..eecfd54433dd 100644
--- a/nixpkgs/pkgs/applications/video/kodi/addons/youtube/default.nix
+++ b/nixpkgs/pkgs/applications/video/kodi/addons/youtube/default.nix
@@ -3,13 +3,13 @@
 buildKodiAddon rec {
   pname = "youtube";
   namespace = "plugin.video.youtube";
-  version = "7.0.3.2";
+  version = "7.0.4";
 
   src = fetchFromGitHub {
     owner = "anxdpanic";
     repo = "plugin.video.youtube";
     rev = "v${version}";
-    hash = "sha256-gJ7RGB0pSG/iLdpmXHpQOoQTisXnMl1Mgd0KYFgg2qI=";
+    hash = "sha256-vBDFxsbYemJKxWa7De++UB0E4t1Eo0PW6Glbw6+FK1w=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/media-downloader/default.nix b/nixpkgs/pkgs/applications/video/media-downloader/default.nix
index b0a40aaa8a34..8a9f287c0c21 100644
--- a/nixpkgs/pkgs/applications/video/media-downloader/default.nix
+++ b/nixpkgs/pkgs/applications/video/media-downloader/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "media-downloader";
-  version = "4.3.1";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     owner = "mhogomchungu";
     repo = "media-downloader";
     rev = finalAttrs.version;
-    hash = "sha256-+vPGfPncb8f5c9OiBmpMvvDh3X6ZMHPbyngcDfrP9qQ=";
+    hash = "sha256-/W0SkKe9rcwf8HBIEcdJCPdZEnx9eh+twBu9wa6Sq30=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix b/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
index b6d79695f5d3..2802ed8a5b96 100644
--- a/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
@@ -49,13 +49,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mkvtoolnix";
-  version = "82.0";
+  version = "83.0";
 
   src = fetchFromGitLab {
     owner = "mbunkus";
     repo = "mkvtoolnix";
     rev = "release-${version}";
-    hash = "sha256-3WULzEkjMH4PUETJeKmDKn9PdanWf581O2mI/IqN8YM=";
+    hash = "sha256-MHi3ewxCn560vpVfOucV34CNj/95U2OFd6bxAjtMBoc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/mpv/scripts/mpvacious.nix b/nixpkgs/pkgs/applications/video/mpv/scripts/mpvacious.nix
index d6c5389b3277..ec4e25b88fb7 100644
--- a/nixpkgs/pkgs/applications/video/mpv/scripts/mpvacious.nix
+++ b/nixpkgs/pkgs/applications/video/mpv/scripts/mpvacious.nix
@@ -9,13 +9,13 @@
 
 buildLua rec {
   pname = "mpvacious";
-  version = "0.26";
+  version = "0.27";
 
   src = fetchFromGitHub {
     owner = "Ajatt-Tools";
     repo = "mpvacious";
     rev = "v${version}";
-    sha256 = "sha256-QPLJC6SxocvOPeY6qI8q+EyXNGVef3J/Z38W0/rzFCg=";
+    sha256 = "sha256-pn6hNEhOzKiU+zQJKj/rF0GLXaEe+XBpHp0RlzsNIio=";
   };
   passthru.updateScript = gitUpdater {
     rev-prefix = "v";
diff --git a/nixpkgs/pkgs/applications/video/mpv/scripts/visualizer.nix b/nixpkgs/pkgs/applications/video/mpv/scripts/visualizer.nix
index bf412bdbf28f..d387ac7b9ec7 100644
--- a/nixpkgs/pkgs/applications/video/mpv/scripts/visualizer.nix
+++ b/nixpkgs/pkgs/applications/video/mpv/scripts/visualizer.nix
@@ -6,13 +6,13 @@
 }:
 buildLua {
   pname = "visualizer";
-  version = "unstable-2023-08-13";
+  version = "unstable-2024-03-10";
 
   src = fetchFromGitHub {
     owner = "mfcc64";
     repo = "mpv-scripts";
-    rev = "7dbbfb283508714b73ead2a57b6939da1d139bd3";
-    sha256 = "zzB4uBc1M2Gdr/JKY2uk8MY0hmQl1XeomkfTzuM45oE=";
+    rev = "b4246984ba6dc6820adef5c8bbf793af85c9ab8e";
+    sha256 = "ZNUzw4OW7z+yGTxim7CCWJdWmihDFOQAQk3bC5Ijcbs=";
   };
   passthru.updateScript = unstableGitUpdater {};
 
diff --git a/nixpkgs/pkgs/applications/video/mythtv/default.nix b/nixpkgs/pkgs/applications/video/mythtv/default.nix
index deea5c1cb493..fba7eb16839e 100644
--- a/nixpkgs/pkgs/applications/video/mythtv/default.nix
+++ b/nixpkgs/pkgs/applications/video/mythtv/default.nix
@@ -8,34 +8,18 @@
 
 mkDerivation rec {
   pname = "mythtv";
-  version = "32.0";
+  version = "34.0";
 
   src = fetchFromGitHub {
     owner = "MythTV";
     repo = "mythtv";
     rev = "v${version}";
-    sha256 = "0i4fs3rbk1jggh62wflpa2l03na9i1ihpz2vsdic9vfahqqjxff1";
+    hash = "sha256-6/TEoyYIRq6pufYzGOmO5DB05JuDo9lqRAYT5N5M/L4=";
   };
 
   patches = [
     # Disable sourcing /etc/os-release
     ./dont-source-os-release.patch
-
-    # Fix QMake variable substitution syntax - MythTV/mythtv#550
-    (fetchpatch {
-      name = "fix-qmake-var-syntax.patch";
-      url = "https://github.com/MythTV/mythtv/commit/a8da7f7e7ec069164adbef65a8104adc9bb52e36.patch";
-      stripLen = 1;
-      hash = "sha256-JfRME00YNNjl6SKs1HBa0wBa/lR/Rt3zbQtWhsC36JM=";
-    })
-
-    # Bachport the build against binutils-2.41
-    (fetchpatch {
-      name = "binutils-2.41.patch";
-      url = "https://github.com/MythTV/mythtv/commit/f9f9bba62ee2743c816cb2b9634b6b4397e5e2e3.patch";
-      stripLen = 1;
-      hash = "sha256-IcXgBtfqPZ42inYFe7l8mWvKUV13S/YEQAHcOFaDivI=";
-    })
   ];
 
   setSourceRoot = "sourceRoot=$(echo */mythtv)";
diff --git a/nixpkgs/pkgs/applications/video/mythtv/dont-source-os-release.patch b/nixpkgs/pkgs/applications/video/mythtv/dont-source-os-release.patch
index fb4dc686af6a..0ef27450d634 100644
--- a/nixpkgs/pkgs/applications/video/mythtv/dont-source-os-release.patch
+++ b/nixpkgs/pkgs/applications/video/mythtv/dont-source-os-release.patch
@@ -1,6 +1,6 @@
 --- a/configure
 +++ b/configure
-@@ -5894,9 +5894,9 @@ else
+@@ -5451,9 +5451,9 @@ else
      die "ERROR: cannot find soundtouch 1.8.0 or later."
  fi
  
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/default.nix b/nixpkgs/pkgs/applications/video/obs-studio/default.nix
index 29bb90a9dd8d..fee1addf0e6d 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/default.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/default.nix
@@ -53,6 +53,7 @@
 , libdatachannel
 , libvpl
 , qrcodegencpp
+, nix-update-script
 }:
 
 let
@@ -61,13 +62,13 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "obs-studio";
-  version = "30.0.2";
+  version = "30.1.0";
 
   src = fetchFromGitHub {
     owner = "obsproject";
     repo = finalAttrs.pname;
     rev = finalAttrs.version;
-    sha256 = "sha256-8pX1kqibrtDIaE1+/Pey1A5bu6MwFTXLrBOah4rsF+4=";
+    sha256 = "sha256-9rf3UGazEL5Obd6tqDwM5LOC6D1X6HNzs5sn5z1tOCA=";
     fetchSubmodules = true;
   };
 
@@ -76,25 +77,6 @@ stdenv.mkDerivation (finalAttrs: {
     ./Enable-file-access-and-universal-access-for-file-URL.patch
     ./fix-nix-plugin-path.patch
 
-    # Backport ffmpeg 6.1 / GCC 13 build fixes
-    # FIXME: remove in next release
-    (fetchpatch {
-      url = "https://github.com/obsproject/obs-studio/commit/cd784644f5e82b9988043f229c19603289c6d32c.patch";
-      hash = "sha256-S4JE5kgr4x3uMHY2GRh0GBJpb7o/wYZb/v0CDITFNnQ=";
-    })
-    (fetchpatch {
-      url = "https://github.com/obsproject/obs-studio/commit/758b47d4ed9a25b8d64ad481d8d039990b9e57c9.patch";
-      hash = "sha256-jYpjwhx6e+dhN3kzbd6FcdjQ+WhIX0/BOu9PSkt+2yI=";
-    })
-    (fetchpatch {
-      url = "https://github.com/obsproject/obs-studio/commit/4b5be75c7e4b8cee908ed4a02fe0078285b4e8c9.patch";
-      hash = "sha256-tuOevhyxchwG42ilrplbiWoiDAKaY4HgzShlvp4VSQI=";
-    })
-    (fetchpatch {
-      url = "https://github.com/obsproject/obs-studio/commit/6e080a68067b27fe5463f0f4eee7df690451f3d7.patch";
-      hash = "sha256-nbn/q3uszoHaDvaW8Et1MS1sgQzMsJRmjGSMHzUxV70=";
-    })
-
     # Fix libobs.pc for plugins on non-x86 systems
     (fetchpatch {
       name = "fix-arm64-cmake.patch";
@@ -175,6 +157,10 @@ stdenv.mkDerivation (finalAttrs: {
     (lib.cmakeBool "ENABLE_PIPEWIRE" pipewireSupport)
   ];
 
+  env.NIX_CFLAGS_COMPILE = toString [
+    "-Wno-error=sign-compare" # https://github.com/obsproject/obs-studio/issues/10200
+  ];
+
   dontWrapGApps = true;
   preFixup = let
     wrapperLibraries = [
@@ -202,6 +188,8 @@ stdenv.mkDerivation (finalAttrs: {
     ln -s ${libcef}/lib/* $out/lib/obs-plugins/
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     description = "Free and open source software for video recording and live streaming";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix b/nixpkgs/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix
index b776981522d0..ff4ba78ea950 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/plugins/advanced-scene-switcher/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "advanced-scene-switcher";
-  version = "1.24.2";
+  version = "1.25.3";
 
   src = fetchFromGitHub {
     owner = "WarmUpTill";
     repo = "SceneSwitcher";
     rev = version;
-    hash = "sha256-J5Qcs2eoKMeO1O/MCsR5wfmfbtndRaZmHrbleEZqqOo=";
+    hash = "sha256-cVMeFAliP0srvnhJQkOhZB2hrald8RHFhBXwdGIu2uo=";
   };
 
   nativeBuildInputs = [
@@ -61,11 +61,7 @@ stdenv.mkDerivation rec {
     chmod -R +w $sourceRoot/deps/libremidi
   '';
 
-  postInstall = ''
-    mkdir $out/lib $out/share
-    mv $out/obs-plugins/64bit $out/lib/obs-plugins
-    mv $out/data $out/share/obs
-  '';
+  env.NIX_CFLAGS_COMPILE = "-Wno-error=stringop-overflow";
 
   meta = with lib; {
     description = "An automated scene switcher for OBS Studio";
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-gstreamer.nix b/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-gstreamer.nix
index e58220bce7e8..c34f821d7c6a 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-gstreamer.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-gstreamer.nix
@@ -49,6 +49,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/fzwoch/obs-gstreamer";
     maintainers = with maintainers; [ ahuzik pedrohlc ];
     license = licenses.gpl2Plus;
-    platforms = [ "x86_64-linux" "i686-linux" ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix b/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix
index 3068718b08f0..a56c18479fd1 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-move-transition.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "obs-move-transition";
-  version = "2.10.0";
+  version = "2.11.0";
 
   src = fetchFromGitHub {
     owner = "exeldro";
     repo = "obs-move-transition";
     rev = version;
-    sha256 = "sha256-HMhIGOslAtk5npunRZkOcFQZDSIB7c8qcFW3l9kgkzo=";
+    sha256 = "sha256-kQIDOjux+8d9V4VCxDtKuWpBKPjdB50WmOPYmzxOCTU=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-replay-source.nix b/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-replay-source.nix
index c3987ab33ff0..42682dd14614 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-replay-source.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-replay-source.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "obs-replay-source";
-  version = "1.6.13";
+  version = "1.6.13-unstable-2024-02-03";
 
   src = fetchFromGitHub {
     owner = "exeldro";
     repo = "obs-replay-source";
-    rev = finalAttrs.version;
-    sha256 = "sha256-i64rpIVnUplA9AKZtR3xeByeawca7B00kGmEcKi7DWQ=";
+    rev = "6590fde1c8e4f8c733016646a8165d52e28d094b";
+    hash = "sha256-foIzWNlU72FWXZVWR8TEiqJJMfl1vWYDTyhV6thYJbA=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-shaderfilter.nix b/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-shaderfilter.nix
index 3f037d916aa2..deebf1af7b84 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-shaderfilter.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/plugins/obs-shaderfilter.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "obs-shaderfilter";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "exeldro";
     repo = "obs-shaderfilter";
     rev = version;
-    sha256 = "sha256-3xMCMsjnEF5aNKBNMhSMAgKuaDnNP+3+uN1u76+Te+8=";
+    sha256 = "sha256-J7tCEIB9zQ0zZFl1eSuEARd+KqpNClHfYx3wcLawFeM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/video/pipe-viewer/default.nix b/nixpkgs/pkgs/applications/video/pipe-viewer/default.nix
index 536b904fd858..5d3256931f12 100644
--- a/nixpkgs/pkgs/applications/video/pipe-viewer/default.nix
+++ b/nixpkgs/pkgs/applications/video/pipe-viewer/default.nix
@@ -38,13 +38,13 @@ let
 in
 buildPerlModule rec {
   pname = "pipe-viewer";
-  version = "0.4.9";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "trizen";
     repo = "pipe-viewer";
     rev = version;
-    hash = "sha256-7l8exCC9robe1hKnQAaIVfnn8L+FuwTOkxaxlwJmpe0=";
+    hash = "sha256-tNIAGvv3dCPd7MA27yd2AHMSgs+1D2uiJJTQgTsEVNU=";
   };
 
   nativeBuildInputs = [ makeWrapper ]
diff --git a/nixpkgs/pkgs/applications/video/pyca/default.nix b/nixpkgs/pkgs/applications/video/pyca/default.nix
index 73b6e606118a..88ae19893653 100644
--- a/nixpkgs/pkgs/applications/video/pyca/default.nix
+++ b/nixpkgs/pkgs/applications/video/pyca/default.nix
@@ -74,6 +74,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "A fully functional Opencast capture agent written in Python";
+    mainProgram = "pyca";
     homepage = "https://github.com/opencast/pyCA";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ pmiddend ];
diff --git a/nixpkgs/pkgs/applications/video/qmplay2/default.nix b/nixpkgs/pkgs/applications/video/qmplay2/default.nix
index b6b577790cfb..4c31c97d5b1d 100644
--- a/nixpkgs/pkgs/applications/video/qmplay2/default.nix
+++ b/nixpkgs/pkgs/applications/video/qmplay2/default.nix
@@ -26,14 +26,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "qmplay2";
-  version = "23.10.22";
+  version = "24.03.16";
 
   src = fetchFromGitHub {
     owner = "zaps166";
     repo = "QMPlay2";
     rev = finalAttrs.version;
     fetchSubmodules = true;
-    hash = "sha256-yDymUXuILgT4AFTt302GniPi/WNwrTCOuOfdUiKOIyk=";
+    hash = "sha256-yIBQBRdmaY7qaBirANxMqfm5vn3T4usokJUxwSYUHjQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/rtabmap/default.nix b/nixpkgs/pkgs/applications/video/rtabmap/default.nix
index 200fab274339..1147d1ef1d94 100644
--- a/nixpkgs/pkgs/applications/video/rtabmap/default.nix
+++ b/nixpkgs/pkgs/applications/video/rtabmap/default.nix
@@ -27,32 +27,20 @@
 
 stdenv.mkDerivation rec {
   pname = "rtabmap";
-  version = "0.21.0";
+  version = "0.21.4";
 
   src = fetchFromGitHub {
     owner = "introlab";
     repo = "rtabmap";
     rev = "refs/tags/${version}";
-    hash = "sha256-1xb8O3VrErldid2OgAUMG28mSUO7QBUsPuSz8p03tSI";
+    hash = "sha256-HrIATYRuhFfTlO4oTRZo7CM30LFVyatZJON31Fe4HTQ=";
   };
 
-  patches = [
-    # Fix build with g2o 20230806
-    (fetchpatch {
-      url = "https://github.com/introlab/rtabmap/commit/85cc6fe3c742855ad16c8442895e12dbb10b6e8b.patch";
-      hash = "sha256-P6GkYKCNwe9dgZdgF/oEhgjA3bJnwXFWJCPoyIknQCo=";
-    })
-    # Fix typo in previous patch
-    (fetchpatch {
-      url = "https://github.com/introlab/rtabmap/commit/c4e94bcdc31b859c1049724dbb7671e4597d86de.patch";
-      hash = "sha256-1btkV4/y+bnF3xEVqlUy/9F6BoANeTOEJjZLmRzG3iA=";
-    })
-  ];
-
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook wrapGAppsHook ];
   buildInputs = [
     ## Required
     opencv
+    opencv.cxxdev
     pcl
     liblapack
     xorg.libSM
diff --git a/nixpkgs/pkgs/applications/video/shotcut/default.nix b/nixpkgs/pkgs/applications/video/shotcut/default.nix
index ca3c0599a626..8678c456b07f 100644
--- a/nixpkgs/pkgs/applications/video/shotcut/default.nix
+++ b/nixpkgs/pkgs/applications/video/shotcut/default.nix
@@ -16,17 +16,18 @@
 , qtmultimedia
 , qtcharts
 , cmake
+, Cocoa
 , gitUpdater
 }:
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "shotcut";
-  version = "24.02.19";
+  version = "24.02.29";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "shotcut";
-    rev = "v${version}";
-    hash = "sha256-fjm2gqbuLKj6YyAZGgbfWUd+JOM9/Fhvpfz0E+TaqY0=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-PHpVquqC0MT7WNoWcdB9WTz4ZiSK4/f4oD5PH1gWBnw=";
   };
 
   nativeBuildInputs = [ pkg-config cmake wrapQtAppsHook ];
@@ -41,11 +42,13 @@ stdenv.mkDerivation rec {
     qttools
     qtmultimedia
     qtcharts
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    Cocoa
   ];
 
   env.NIX_CFLAGS_COMPILE = "-DSHOTCUT_NOUPGRADE";
   cmakeFlags = [
-    "-DSHOTCUT_VERSION=${version}"
+    "-DSHOTCUT_VERSION=${finalAttrs.version}"
   ];
 
   patches = [
@@ -55,9 +58,15 @@ stdenv.mkDerivation rec {
   qtWrapperArgs = [
     "--set FREI0R_PATH ${frei0r}/lib/frei0r-1"
     "--set LADSPA_PATH ${ladspaPlugins}/lib/ladspa"
-    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [jack1 SDL2]}"
+    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([SDL2] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [jack1])}"
   ];
 
+  postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    mkdir $out/Applications $out/bin
+    mv $out/Shotcut.app $out/Applications/Shotcut.app
+    ln -s $out/Applications/Shotcut.app/Contents/MacOS/Shotcut $out/bin/shotcut
+  '';
+
   passthru.updateScript = gitUpdater {
     rev-prefix = "v";
   };
@@ -76,7 +85,7 @@ stdenv.mkDerivation rec {
     homepage = "https://shotcut.org";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ goibhniu woffs peti ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     mainProgram = "shotcut";
   };
-}
+})
diff --git a/nixpkgs/pkgs/applications/video/streamlink/default.nix b/nixpkgs/pkgs/applications/video/streamlink/default.nix
index 63e94fa600c6..c71e712625c2 100644
--- a/nixpkgs/pkgs/applications/video/streamlink/default.nix
+++ b/nixpkgs/pkgs/applications/video/streamlink/default.nix
@@ -1,19 +1,31 @@
 { lib
 , python3Packages
 , fetchPypi
+, substituteAll
 , ffmpeg
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "streamlink";
-  version = "6.6.2";
-  format = "pyproject";
+  version = "6.7.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0UF8fFmG3BQ7xxHIqZ97iEsQ0lg/RLHD2t6n3wp15NU=";
+    hash = "sha256-kjrDJ/QCccWxRLEQ0virAdm0TLxN5PmtO/Zs+4Nc1MM=";
   };
 
+  patches = [
+    (substituteAll {
+      src = ./ffmpeg-path.patch;
+      ffmpeg = lib.getExe ffmpeg;
+    })
+  ];
+
+  nativeBuildInputs = with python3Packages; [
+    setuptools
+  ];
+
   nativeCheckInputs = with python3Packages; [
     pytestCheckHook
     mock
@@ -23,7 +35,12 @@ python3Packages.buildPythonApplication rec {
     pytest-trio
   ];
 
-  propagatedBuildInputs = (with python3Packages; [
+  disabledTests = [
+    # requires ffmpeg to be in PATH
+    "test_no_cache"
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
     certifi
     isodate
     lxml
@@ -36,8 +53,6 @@ python3Packages.buildPythonApplication rec {
     typing-extensions
     urllib3
     websocket-client
-  ]) ++ [
-    ffmpeg
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/video/streamlink/ffmpeg-path.patch b/nixpkgs/pkgs/applications/video/streamlink/ffmpeg-path.patch
new file mode 100644
index 000000000000..6108c53dcf0b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/streamlink/ffmpeg-path.patch
@@ -0,0 +1,13 @@
+diff --git a/src/streamlink/stream/ffmpegmux.py b/src/streamlink/stream/ffmpegmux.py
+index 258b314a..c493e010 100644
+--- a/src/streamlink/stream/ffmpegmux.py
++++ b/src/streamlink/stream/ffmpegmux.py
+@@ -80,7 +80,7 @@ class MuxedStream(Stream, Generic[TSubstreams]):
+ 
+ 
+ class FFMPEGMuxer(StreamIO):
+-    __commands__: ClassVar[List[str]] = ["ffmpeg"]
++    __commands__: ClassVar[List[str]] = ["@ffmpeg@"]
+ 
+     DEFAULT_OUTPUT_FORMAT = "matroska"
+     DEFAULT_VIDEO_CODEC = "copy"
diff --git a/nixpkgs/pkgs/applications/video/stremio/default.nix b/nixpkgs/pkgs/applications/video/stremio/default.nix
index 03ccb4b9f066..a967a872cd99 100644
--- a/nixpkgs/pkgs/applications/video/stremio/default.nix
+++ b/nixpkgs/pkgs/applications/video/stremio/default.nix
@@ -1,5 +1,14 @@
-{ lib, stdenv, fetchurl, fetchFromGitHub, qmake, wrapQtAppsHook
-, mpv, qtwebengine, qtwebchannel, nodejs
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchurl
+, ffmpeg
+, mpv
+, nodejs
+, qmake
+, qtwebchannel
+, qtwebengine
+, wrapQtAppsHook
 }:
 
 stdenv.mkDerivation rec {
@@ -30,6 +39,8 @@ stdenv.mkDerivation rec {
     install -Dm 644 images/stremio_window.png $out/share/pixmaps/smartcode-stremio.png
     ln -s ${nodejs}/bin/node $out/opt/stremio/node
     ln -s $server $out/opt/stremio/server.js
+    wrapProgram $out/bin/stremio \
+      --suffix PATH ":" ${lib.makeBinPath [ ffmpeg ]}
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/video/vdr/markad/default.nix b/nixpkgs/pkgs/applications/video/vdr/markad/default.nix
index c0672821558b..28dad0200270 100644
--- a/nixpkgs/pkgs/applications/video/vdr/markad/default.nix
+++ b/nixpkgs/pkgs/applications/video/vdr/markad/default.nix
@@ -19,12 +19,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "vdr-markad";
-  version = "3.4.6";
+  version = "3.4.13";
 
   src = fetchFromGitHub {
     repo = "vdr-plugin-markad";
     owner = "kfb77";
-    sha256 = "sha256-fixkalZAPz0iO1SmshsO0vYc2sksH2lrStsSOEcdZ1g=";
+    sha256 = "sha256-pDnziIWX6deBXuVIN7w6F6TdYDCcEO6MSaUIMB63uAg=";
     rev = "V${version}";
   };
 
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Plugin for VDR that marks advertisements";
+    mainProgram = "markad";
     maintainers = [ maintainers.ck3d ];
     license = licenses.gpl2;
     inherit (vdr.meta) platforms;
diff --git a/nixpkgs/pkgs/applications/video/vdr/nopacity/default.nix b/nixpkgs/pkgs/applications/video/vdr/nopacity/default.nix
index e0173ab6c8ae..c413206b8257 100644
--- a/nixpkgs/pkgs/applications/video/vdr/nopacity/default.nix
+++ b/nixpkgs/pkgs/applications/video/vdr/nopacity/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, fetchFromGitLab, vdr, graphicsmagick }:
 stdenv.mkDerivation rec {
   pname = "vdr-skin-nopacity";
-  version = "1.1.16";
+  version = "1.1.17";
 
   src = fetchFromGitLab {
     repo = "SkinNopacity";
     owner = "kamel5";
-    sha256 = "sha256-5TTilBKlNsFBm5BaCoRV1LzZgpad2lOIQGyk94jGYls=";
+    hash = "sha256-QJKlh5my7e+H5R4E0fCWB/PtwIAXCXw4drQEQzhzfag=";
     rev = version;
   };
 
diff --git a/nixpkgs/pkgs/applications/video/vdr/plugins.nix b/nixpkgs/pkgs/applications/video/vdr/plugins.nix
index 92d9128543f0..4063f4108fa0 100644
--- a/nixpkgs/pkgs/applications/video/vdr/plugins.nix
+++ b/nixpkgs/pkgs/applications/video/vdr/plugins.nix
@@ -99,6 +99,7 @@ in {
     meta = with lib; {
       inherit (src.meta) homepage;
       description = "Searchtimer and replacement of the VDR program menu";
+      mainProgram = "createcats";
       maintainers = [ maintainers.ck3d ];
       license = licenses.gpl2;
       inherit (vdr.meta) platforms;
diff --git a/nixpkgs/pkgs/applications/video/vdr/softhddevice/default.nix b/nixpkgs/pkgs/applications/video/vdr/softhddevice/default.nix
index 4d2504f5e5e6..23c6433f9ebb 100644
--- a/nixpkgs/pkgs/applications/video/vdr/softhddevice/default.nix
+++ b/nixpkgs/pkgs/applications/video/vdr/softhddevice/default.nix
@@ -14,12 +14,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "vdr-softhddevice";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchFromGitHub {
     owner = "ua0lnj";
     repo = "vdr-plugin-softhddevice";
-    sha256 = "sha256-d/Cl0sE4laDdjMhd3xTHcY4OT5tWWCFCvLsNF157+zw=";
+    sha256 = "sha256-y6b0nOf597uxS9zDh0NQOwLN81nk4U7lHK2CalyVi8s=";
     rev = "v${version}";
   };
 
diff --git a/nixpkgs/pkgs/applications/video/youtube-tui/default.nix b/nixpkgs/pkgs/applications/video/youtube-tui/default.nix
index bfa1039d5d33..63e9f51304ed 100644
--- a/nixpkgs/pkgs/applications/video/youtube-tui/default.nix
+++ b/nixpkgs/pkgs/applications/video/youtube-tui/default.nix
@@ -6,6 +6,7 @@
 , xorg
 , stdenv
 , python3
+, makeBinaryWrapper
 , libsixel
 , mpv
 , CoreFoundation
@@ -19,7 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   src = fetchFromGitHub {
     owner = "Siriusmart";
-    repo = pname;
+    repo = "youtube-tui";
     rev = "v${version}";
     hash = "sha256-FOiK3yQcQuwdCEjBtRPW4iBd+8uNsvZ6l5tclHVzL+M=";
   };
@@ -34,6 +35,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [
     pkg-config
     python3
+    makeBinaryWrapper
   ];
 
   buildInputs = [
@@ -47,6 +49,12 @@ rustPlatform.buildRustPackage rec {
     AppKit
   ];
 
+  # sixel-sys is dynamically linked to libsixel
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    wrapProgram $out/bin/youtube-tui \
+      --prefix DYLD_LIBRARY_PATH : "${lib.makeLibraryPath [libsixel]}"
+  '';
+
   meta = with lib; {
     description = "An aesthetically pleasing YouTube TUI written in Rust";
     homepage = "https://siriusmart.github.io/youtube-tui";
diff --git a/nixpkgs/pkgs/applications/virtualization/containerd/default.nix b/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
index 9c194c45b991..acac16093aff 100644
--- a/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
@@ -11,13 +11,13 @@
 
 buildGoModule rec {
   pname = "containerd";
-  version = "1.7.13";
+  version = "1.7.14";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = "containerd";
     rev = "v${version}";
-    hash = "sha256-y3CYDZbA2QjIn1vyq/p1F1pAVxQHi/0a6hGWZCRWzyk=";
+    hash = "sha256-okTz2UCF5LxOdtLDBy1pN2to6WHi+I0jtR67sn7Qrbk=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/applications/virtualization/crosvm/default.nix b/nixpkgs/pkgs/applications/virtualization/crosvm/default.nix
index 3e70bd390e16..ed9aa2116b51 100644
--- a/nixpkgs/pkgs/applications/virtualization/crosvm/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/crosvm/default.nix
@@ -5,18 +5,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "crosvm";
-  version = "121.3";
+  version = "122.1";
 
   src = fetchgit {
     url = "https://chromium.googlesource.com/chromiumos/platform/crosvm";
-    rev = "1e7125327a29b7b7a0593caf339d382728c55cf6";
-    sha256 = "Rjs46TtOhFZxqnEyqa4IyrRs7HnDZ/DJZ9DPEe7Oux0=";
+    rev = "562d81eb28a49ed6e0d771a430c21a458cdd33f9";
+    sha256 = "l5sIUInOhhkn3ernQLIEwEpRCyICDH/1k4C/aidy1/I=";
     fetchSubmodules = true;
   };
 
   separateDebugInfo = true;
 
-  cargoHash = "sha256-7nfeg/q8baLvB0CoRWKU60TRfLAaRkeRxGojPvKpOLs=";
+  cargoHash = "sha256-2MaRfQCAjW560sdAPqdWymClwY1U5QjIMzknHry+9zs=";
 
   nativeBuildInputs = [
     pkg-config protobuf python3 rustPlatform.bindgenHook wayland-scanner
@@ -30,9 +30,10 @@ rustPlatform.buildRustPackage rec {
     patchShebangs third_party/minijail/tools/*.py
   '';
 
+  CROSVM_USE_SYSTEM_MINIGBM = true;
   CROSVM_USE_SYSTEM_VIRGLRENDERER = true;
 
-  buildFeatures = [ "default" "virgl_renderer" "virgl_renderer_next" ];
+  buildFeatures = [ "virgl_renderer" ];
 
   passthru.updateScript = ./update.py;
 
diff --git a/nixpkgs/pkgs/applications/virtualization/docker/buildx.nix b/nixpkgs/pkgs/applications/virtualization/docker/buildx.nix
index 000bb6ee4bcd..de13fcf5ea1e 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker/buildx.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker/buildx.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-buildx";
-  version = "0.13.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "buildx";
     rev = "v${version}";
-    hash = "sha256-R4+MVC8G4wNwjZtBnLFq+TBiesUYACg9c5y2CUcqHHQ=";
+    hash = "sha256-mesFwYgDCZ44/EJ31mzx9yLeMyV2bXpxaNSx6L3BQG0=";
   };
 
   doCheck = false;
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Docker CLI plugin for extended build capabilities with BuildKit";
+    mainProgram = "docker-buildx";
     homepage = "https://github.com/docker/buildx";
     license = licenses.asl20;
     maintainers = with maintainers; [ ivan-babrou developer-guy ];
diff --git a/nixpkgs/pkgs/applications/virtualization/docker/compose.nix b/nixpkgs/pkgs/applications/virtualization/docker/compose.nix
index e3f0ec1b97bd..f1aecbf50adc 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker/compose.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker/compose.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-compose";
-  version = "2.24.6";
+  version = "2.26.0";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "compose";
     rev = "v${version}";
-    hash = "sha256-CrQM9fTXGI3uGAk2yk/+enBr9LuMhNFLFBYHT78lNWc=";
+    hash = "sha256-hOBWtvls4rRYPMTvkTRkEAftzQB6SG1bv9vasK54d/4=";
   };
 
   postPatch = ''
@@ -16,7 +16,7 @@ buildGoModule rec {
     rm -rf e2e/
   '';
 
-  vendorHash = "sha256-0YZ36fouuVjj12a7d9F8OkJAmtLIHo0bZhcmOYO5Ki4=";
+  vendorHash = "sha256-uyGGzfsfjk0mUoJ/0Sm89Mus2fQS3HZGBAQ48xMecwU=";
 
   ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ];
 
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Docker CLI plugin to define and run multi-container applications with Docker";
+    mainProgram = "docker-compose";
     homepage = "https://github.com/docker/compose";
     license = licenses.asl20;
     maintainers = with maintainers; [ babariviere ];
diff --git a/nixpkgs/pkgs/applications/virtualization/docker/compose_1.nix b/nixpkgs/pkgs/applications/virtualization/docker/compose_1.nix
index 54e0d737bf2d..f19d015e9e30 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker/compose_1.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker/compose_1.nix
@@ -42,6 +42,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://docs.docker.com/compose/";
     description = "Multi-container orchestration for Docker";
+    mainProgram = "docker-compose";
     license = licenses.asl20;
     maintainers = with maintainers; [ Frostman ];
   };
diff --git a/nixpkgs/pkgs/applications/virtualization/docker/default.nix b/nixpkgs/pkgs/applications/virtualization/docker/default.nix
index 9b6bb0a48be3..a82a00fd5412 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker/default.nix
@@ -279,20 +279,6 @@ rec {
 
   # Get revisions from
   # https://github.com/moby/moby/tree/${version}/hack/dockerfile/install/*
-  docker_20_10 = callPackage dockerGen rec {
-    version = "20.10.26";
-    cliRev = "v${version}";
-    cliHash = "sha256-EPhsng0kLnweVbC8ZnH0NK1/yHlYSA5Sred4rWJX/Gs=";
-    mobyRev = "v${version}";
-    mobyHash = "sha256-IJ7m2mQnsLiom0EuZLpuLY6fYEko7rEy35igJv1AY04=";
-    runcRev = "v1.1.8";
-    runcHash = "sha256-rDJYEc64KW4Qa3Eg2oUjJqIKrg6THb5hxQFFbvb9Zp4=";
-    containerdRev = "v1.6.22";
-    containerdHash = "sha256-In7OkK3xm7Cz3H1jzG9b4tsZbmo44QCq8pNU+PPy8dY=";
-    tiniRev = "v0.19.0";
-    tiniHash = "sha256-ZDKu/8yE5G0RYFJdhgmCdN3obJNyRWv6K/Gd17zc1sI=";
-  };
-
   docker_24 = callPackage dockerGen rec {
     version = "24.0.5";
     cliRev = "v${version}";
diff --git a/nixpkgs/pkgs/applications/virtualization/docker/gc.nix b/nixpkgs/pkgs/applications/virtualization/docker/gc.nix
index 0736516ee7d2..7d45427627fa 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker/gc.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker/gc.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Docker garbage collection of containers and images";
+    mainProgram = "docker-gc";
     license = licenses.asl20;
     homepage = "https://github.com/spotify/docker-gc";
     maintainers = with maintainers; [offline];
diff --git a/nixpkgs/pkgs/applications/virtualization/docker/proxy.nix b/nixpkgs/pkgs/applications/virtualization/docker/proxy.nix
index 6038a129e2a1..e4f543524764 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker/proxy.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker/proxy.nix
@@ -19,6 +19,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "Docker proxy binary to forward traffic between host and containers";
+    mainProgram = "docker-proxy";
     license = licenses.asl20;
     homepage = "https://github.com/docker/libnetwork";
     maintainers = with maintainers; [vdemeester];
diff --git a/nixpkgs/pkgs/applications/virtualization/docker/sbom.nix b/nixpkgs/pkgs/applications/virtualization/docker/sbom.nix
index 7314eb2029fd..9ab81509b694 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker/sbom.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker/sbom.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Plugin for Docker CLI to support SBOM creation using Syft";
+    mainProgram = "docker-sbom";
     homepage = "https://github.com/docker/sbom-cli-plugin";
     license = licenses.asl20;
     maintainers = with maintainers; [ raboof ];
diff --git a/nixpkgs/pkgs/applications/virtualization/imgcrypt/default.nix b/nixpkgs/pkgs/applications/virtualization/imgcrypt/default.nix
index 25adabdba0a6..bb703e3a0ac6 100644
--- a/nixpkgs/pkgs/applications/virtualization/imgcrypt/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/imgcrypt/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "imgcrypt";
-  version = "1.1.9";
+  version = "1.1.10";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-EStyi6RDK1G6kuaDGumZaHB4OrSrhhx/F5GsLe0amyA=";
+    hash = "sha256-81jfoWHYYenGQFcQI9kk8uPnv6FcyOtcJjpo1ykdtOI=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/applications/virtualization/lima/bin.nix b/nixpkgs/pkgs/applications/virtualization/lima/bin.nix
index e02d41f4ddc3..d9d89dfee112 100644
--- a/nixpkgs/pkgs/applications/virtualization/lima/bin.nix
+++ b/nixpkgs/pkgs/applications/virtualization/lima/bin.nix
@@ -9,31 +9,31 @@
 }:
 
 let
-  version = "0.20.1";
+  version = "0.20.2";
 
   dist = {
     aarch64-darwin = rec {
       archSuffix = "Darwin-arm64";
       url = "https://github.com/lima-vm/lima/releases/download/v${version}/lima-${version}-${archSuffix}.tar.gz";
-      sha256 = "a561a457d3620965e017fc750805dd2fb99db1c21b2f14e8f044dfaa042de76f";
+      sha256 = "f250bed8a20b705f913e382b545641082f278f44687409f4b897d6430df4d735";
     };
 
     x86_64-darwin = rec {
       archSuffix = "Darwin-x86_64";
       url = "https://github.com/lima-vm/lima/releases/download/v${version}/lima-${version}-${archSuffix}.tar.gz";
-      sha256 = "c57d2b317e5488c96b642b05146146a5ec94d0407cccba0f31401f52824d404d";
+      sha256 = "bec9933254ed80827a6fd38eabe1234b538bdb783f4656a94e120bcaa5689d37";
     };
 
     aarch64-linux = rec {
       archSuffix = "Linux-aarch64";
       url = "https://github.com/lima-vm/lima/releases/download/v${version}/lima-${version}-${archSuffix}.tar.gz";
-      sha256 = "1d93b5fc0bde1369fce3029c917934ef57514fa23a715f8fb7fb333c1db9ec41";
+      sha256 = "0b839459aa3adde059577f7d9c3ed1bb4720dbdad798e4ffe00af5d86afa556e";
     };
 
     x86_64-linux = rec {
       archSuffix = "Linux-x86_64";
       url = "https://github.com/lima-vm/lima/releases/download/v${version}/lima-${version}-${archSuffix}.tar.gz";
-      sha256 = "e7093ca1889d2dab436d9f0e6b53d65336f75cf8ebd54f583085eca462a1fc4b";
+      sha256 = "f9af6bd42e48a803fc1aeb5214bdf511582a56701a1c058ce4e66d871db65dd8";
     };
   };
 in
diff --git a/nixpkgs/pkgs/applications/virtualization/lima/default.nix b/nixpkgs/pkgs/applications/virtualization/lima/default.nix
index ae6e6d19ee79..a74027650960 100644
--- a/nixpkgs/pkgs/applications/virtualization/lima/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/lima/default.nix
@@ -11,13 +11,13 @@
 
 buildGoModule rec {
   pname = "lima";
-  version = "0.20.1";
+  version = "0.20.2";
 
   src = fetchFromGitHub {
     owner = "lima-vm";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-MeTFATaAGRSaUXmC1fv9/gMFWafvkteKVJS6MHaqt8A=";
+    sha256 = "sha256-xFiCGuCUJUnWN5DBfwjhBgntDfod4CWpXqJ3dbrDUSQ=";
   };
 
   vendorHash = "sha256-wd7YiEo4Gy2kHF7aCRoNGlbOQUxqQnKqP3znzMqS2PI=";
diff --git a/nixpkgs/pkgs/applications/virtualization/podman-tui/default.nix b/nixpkgs/pkgs/applications/virtualization/podman-tui/default.nix
index f48a4394f7b3..d6d80461c674 100644
--- a/nixpkgs/pkgs/applications/virtualization/podman-tui/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/podman-tui/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "podman-tui";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "podman-tui";
     rev = "v${version}";
-    hash = "sha256-nPSUpGLSuIZMzgvmZtCZ3nqT5b1+0VkCmzPnUMLYkss=";
+    hash = "sha256-T2hiCRoZqdbcB36Tpy597j7Hc1yeR2MijQbuheENfuA=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/applications/virtualization/podman/default.nix b/nixpkgs/pkgs/applications/virtualization/podman/default.nix
index 30a259d12540..b3ea9bd94a92 100644
--- a/nixpkgs/pkgs/applications/virtualization/podman/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/podman/default.nix
@@ -155,5 +155,6 @@ buildGoModule rec {
     changelog = "https://github.com/containers/podman/blob/v${version}/RELEASE_NOTES.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ marsam ] ++ teams.podman.members;
+    mainProgram = "podman";
   };
 }
diff --git a/nixpkgs/pkgs/applications/virtualization/rvvm/default.nix b/nixpkgs/pkgs/applications/virtualization/rvvm/default.nix
index b6eaea8d7597..718446d1ce1f 100644
--- a/nixpkgs/pkgs/applications/virtualization/rvvm/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/rvvm/default.nix
@@ -1,21 +1,45 @@
-{ lib, stdenv, fetchFromGitHub, SDL_compat, libX11, libXext }:
+{ lib
+, stdenv
+, fetchFromGitHub
+
+, SDL2
+
+, libX11
+, libXext
+
+, guiBackend ? "sdl"
+
+, enableSDL ? guiBackend == "sdl"
+, enableX11 ? guiBackend == "x11"
+}:
+
+assert lib.assertMsg (builtins.elem guiBackend ["sdl" "x11" "none"]) "Unsupported GUI backend";
+assert lib.assertMsg (!(enableSDL && enableX11)) "RVVM can have only one GUI backend at a time";
+assert lib.assertMsg (stdenv.isDarwin -> !enableX11) "macOS supports only SDL GUI backend";
 
 stdenv.mkDerivation rec {
   pname = "rvvm";
-  version = "0.5";
+  version = "0.6";
 
   src = fetchFromGitHub {
     owner = "LekKit";
     repo = "RVVM";
     rev = "v${version}";
-    sha256 = "sha256-1wAKijRYB0FGBe4cSHUynkO4ePVG4QvVIgSoWzNbqtE=";
+    sha256 = "sha256-5nSlKyWDAx0EeKFzzwP5+99XuJz9BHXEF1WNkRMLa9U=";
   };
 
-  buildInputs = if stdenv.isDarwin then [ SDL_compat ] else [ libX11 libXext ];
+  buildInputs = []
+    ++ lib.optionals enableSDL [ SDL2 ]
+    ++ lib.optionals enableX11 [ libX11 libXext ];
+
+  enableParallelBuilding = true;
 
   buildFlags = [ "all" "lib" ];
 
   makeFlags = [ "PREFIX=$(out)" ]
+    ++ lib.optional enableSDL "USE_SDL=2" # Use SDL2 instead of SDL1
+    ++ lib.optional (!enableSDL && !enableX11) "USE_FB=0"
+
     # work around https://github.com/NixOS/nixpkgs/issues/19098
     ++ lib.optional (stdenv.cc.isClang && stdenv.isDarwin) "CFLAGS=-fno-lto";
 
@@ -24,7 +48,7 @@ stdenv.mkDerivation rec {
     description = "The RISC-V Virtual Machine";
     license = with licenses; [ gpl3 /* or */ mpl20 ];
     platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ kamillaova ];
     mainProgram = "rvvm";
   };
 }
diff --git a/nixpkgs/pkgs/applications/virtualization/singularity/generic.nix b/nixpkgs/pkgs/applications/virtualization/singularity/generic.nix
index 85992e2abce9..d16b88adece3 100644
--- a/nixpkgs/pkgs/applications/virtualization/singularity/generic.nix
+++ b/nixpkgs/pkgs/applications/virtualization/singularity/generic.nix
@@ -300,7 +300,7 @@ in
             let
               unwrapped = writeShellScriptBin "apptainer-cuda-saxpy"
                 ''
-                  ${lib.getExe finalAttrs.finalPackage} exec --nv $@ ${finalAttrs.passthru.tests.image-saxpy} saxpy
+                  ${lib.getExe finalAttrs.finalPackage} exec --nv $@ ${finalAttrs.passthru.gpuChecks.image-saxpy} saxpy
                 '';
             in
             runCommand "run-apptainer-cuda-saxpy"
diff --git a/nixpkgs/pkgs/applications/virtualization/singularity/packages.nix b/nixpkgs/pkgs/applications/virtualization/singularity/packages.nix
index 6d71d1abe16e..efa77b4209f3 100644
--- a/nixpkgs/pkgs/applications/virtualization/singularity/packages.nix
+++ b/nixpkgs/pkgs/applications/virtualization/singularity/packages.nix
@@ -7,20 +7,20 @@ let
   apptainer = callPackage
     (import ./generic.nix rec {
       pname = "apptainer";
-      version = "1.2.5";
+      version = "1.3.0";
       projectName = "apptainer";
 
       src = fetchFromGitHub {
         owner = "apptainer";
         repo = "apptainer";
         rev = "refs/tags/v${version}";
-        hash = "sha256-1XuqyNXyYrmIfqp8450z8+qET15hKVfj2v2iN9QPmDk=";
+        hash = "sha256-YqPPTs7cIiMbOc8jOwr8KgUBVu2pTPlSL0Vvw/1n4co=";
       };
 
       # Update by running
       # nix-prefetch -E "{ sha256 }: ((import ./. { }).apptainer.override { vendorHash = sha256; }).goModules"
       # at the root directory of the Nixpkgs repository
-      vendorHash = "sha256-Y0gOqg+WGgssXGEYHc9IFwiIpkb3hetlQI89vseAQPc=";
+      vendorHash = "sha256-lWo6ic3Tdv1UInA5MtEaAgiheCin2JSh4nmheUooENY=";
 
       extraDescription = " (previously known as Singularity)";
       extraMeta.homepage = "https://apptainer.org";
@@ -38,20 +38,20 @@ let
   singularity = callPackage
     (import ./generic.nix rec {
       pname = "singularity-ce";
-      version = "4.1.1";
+      version = "4.1.2";
       projectName = "singularity";
 
       src = fetchFromGitHub {
         owner = "sylabs";
         repo = "singularity";
         rev = "refs/tags/v${version}";
-        hash = "sha256-BKuo+W75wsK8HFB+5CtKPqR4nDw167pAAiuISOjML7k=";
+        hash = "sha256-/KTDdkCMkZ5hO+VYHzw9vB8FDWxg7PS1yb2waRJQngY=";
       };
 
       # Update by running
       # nix-prefetch -E "{ sha256 }: ((import ./. { }).singularity.override { vendorHash = sha256; }).goModules"
       # at the root directory of the Nixpkgs repository
-      vendorHash = "sha256-Hg32YtXUFQI7OslW3E3QpxCiypwaK8BDAl3YAM6kMnw=";
+      vendorHash = "sha256-4Nxj2PzZmFdvouWKyXLFDk8iuRhFuvyPW/+VRTw75Zw=";
 
       # Do not build conmon and squashfuse from the Git submodule sources,
       # Use Nixpkgs provided version
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix b/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
index f226a32596d3..df2094c3b1fc 100644
--- a/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
@@ -281,7 +281,7 @@ in stdenv.mkDerivation {
     ];
     license = licenses.gpl2;
     homepage = "https://www.virtualbox.org/";
-    maintainers = with maintainers; [ sander ];
+    maintainers = with maintainers; [ sander friedrichaltheide ];
     platforms = [ "x86_64-linux" ];
     mainProgram = "VirtualBox";
   };
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix b/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix
index 1831d42a129e..fad5aa6e10fb 100644
--- a/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix
@@ -19,7 +19,7 @@ fetchurl rec {
     description = "Oracle Extension pack for VirtualBox";
     license = licenses.virtualbox-puel;
     homepage = "https://www.virtualbox.org/";
-    maintainers = with maintainers; [ sander ];
+    maintainers = with maintainers; [ sander friedrichaltheide ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index 6f9e3cab4f59..a1c2c8d09e24 100644
--- a/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -118,8 +118,8 @@ in stdenv.mkDerivation rec {
     #ln -s $out/lib/VBoxOGL.so $out/lib/dri/vboxvideo_dri.so
 
     # Install desktop file
-    mkdir -p $out/share/autostart
-    cp -v other/vboxclient.desktop $out/share/autostart
+    mkdir -p $out/etc/xdg/autostart
+    cp -v other/vboxclient.desktop $out/etc/xdg/autostart
 
     # Install Xorg drivers
     mkdir -p $out/lib/xorg/modules/{drivers,input}
@@ -146,7 +146,7 @@ in stdenv.mkDerivation rec {
     '';
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = "GPL";
-    maintainers = [ lib.maintainers.sander ];
+    maintainers = [ lib.maintainers.sander lib.maintainers.friedrichaltheide ];
     platforms = [ "i686-linux" "x86_64-linux" ];
     broken = stdenv.hostPlatform.is32bit && (kernel.kernelAtLeast "5.10");
   };
diff --git a/nixpkgs/pkgs/applications/virtualization/vmware-workstation/default.nix b/nixpkgs/pkgs/applications/virtualization/vmware-workstation/default.nix
index 8fe79b6e237c..93da1b1f6805 100644
--- a/nixpkgs/pkgs/applications/virtualization/vmware-workstation/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/vmware-workstation/default.nix
@@ -32,14 +32,14 @@
 
 let
   # macOS - versions
-  fusionVersion = "13.0.2";
-  fusionBuild = "21581413";
-  unlockerVersion = "3.0.4";
+  fusionVersion = "13.5.1";
+  fusionBuild = "23298085";
+  unlockerVersion = "3.0.5";
 
   # macOS - ISOs
   darwinIsoSrc = fetchurl {
     url = "https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/${fusionVersion}/${fusionBuild}/universal/core/com.vmware.fusion.zip.tar";
-    sha256 = "sha256-8IaEQn1+e+WtjRX9Aopbi6tVTNt9RVyGrpaARtVH6j0=";
+    sha256 = "sha256-bn6hoicby2YVj1pZTBzBhabNhKefzVQTm5vIrdTO2K4=";
   };
 
   # macOS - Unlocker
@@ -47,7 +47,7 @@ let
     owner = "paolo-projects";
     repo = "unlocker";
     rev = "${unlockerVersion}";
-    sha256 = "sha256-kpvrRiiygfjQni8z+ju9mPBVqy2gs08Wj4cHxE9eorQ=";
+    sha256 = "sha256-JSEW1gqQuLGRkathlwZU/TnG6dL/xWKW4//SfE+kO0A=";
   };
 
   gdbm3 = gdbm.overrideAttrs (old: rec {
@@ -71,8 +71,8 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "vmware-workstation";
-  version = "17.0.2";
-  build = "21581411";
+  version = "17.5.1";
+  build = "23298084";
 
   buildInputs = [
     libxslt
@@ -101,7 +101,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://download3.vmware.com/software/WKST-${builtins.replaceStrings ["."] [""] version}-LX/VMware-Workstation-Full-${version}-${build}.x86_64.bundle";
-    sha256 = "sha256-9ONh+uvL4YGNGxbpPX1mWO8P4oKPUpwzTsKKBJNxHMc=";
+    sha256 = "sha256-qmC3zvKoes77z3x6UkLHsJ17kQrL1a/rxe9mF+UMdJY=";
   };
 
   unpackPhase = ''
@@ -255,18 +255,16 @@ stdenv.mkDerivation rec {
     unpacked="unpacked/vmware-network-editor"
     cp -r $unpacked/lib $out/lib/vmware/
 
-    ## VMware Tools + Virtual Printer
-    echo "Installing VMware Tools + Virtual Printer"
+    ## VMware Tools
+    echo "Installing VMware Tools"
     mkdir -p $out/lib/vmware/isoimages/
-    cp unpacked/vmware-tools-linuxPreGlibc25/linuxPreGlibc25.iso \
-       unpacked/vmware-tools-windows/windows.iso \
-       unpacked/vmware-tools-winPreVista/winPreVista.iso \
-       unpacked/vmware-virtual-printer/VirtualPrinter-Linux.iso \
-       unpacked/vmware-virtual-printer/VirtualPrinter-Windows.iso \
-       unpacked/vmware-tools-winPre2k/winPre2k.iso \
-       unpacked/vmware-tools-linux/linux.iso \
+    cp unpacked/vmware-tools-linux/linux.iso \
+       unpacked/vmware-tools-linuxPreGlibc25/linuxPreGlibc25.iso \
        unpacked/vmware-tools-netware/netware.iso \
        unpacked/vmware-tools-solaris/solaris.iso \
+       unpacked/vmware-tools-winPre2k/winPre2k.iso \
+       unpacked/vmware-tools-winPreVista/winPreVista.iso \
+       unpacked/vmware-tools-windows/windows.iso \
        $out/lib/vmware/isoimages/
 
     ${lib.optionalString enableMacOSGuests ''
@@ -281,17 +279,10 @@ stdenv.mkDerivation rec {
     echo "Installing VMware Player Application"
     unpacked="unpacked/vmware-player-app"
     cp -r $unpacked/lib/* $out/lib/vmware/
-    cp -r $unpacked/etc/* $out/etc/
     cp -r $unpacked/share/* $out/share/
     cp -r $unpacked/bin/* $out/bin/
     cp -r $unpacked/doc/* $out/share/doc/ # Licences
 
-    mkdir -p $out/etc/thnuclnt
-    cp -r $unpacked/extras/.thnumod $out/etc/thnuclnt/
-
-    mkdir -p $out/lib/cups/filter
-    cp -r $unpacked/extras/thnucups $out/lib/cups/filter/
-
     for target in "vmplayer" "vmware-enter-serial" "vmware-setup-helper" "licenseTool" "vmware-mount" "vmware-fuseUI" "vmware-app-control" "vmware-zenity"
     do
       ln -s $out/lib/vmware/bin/appLoader $out/lib/vmware/bin/$target
@@ -395,6 +386,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ cawilliamson deinferno ];
+    maintainers = with maintainers; [ cawilliamson deinferno vifino ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/window-managers/dwl/default.nix b/nixpkgs/pkgs/applications/window-managers/dwl/default.nix
index 0af274265bff..68815952b17f 100644
--- a/nixpkgs/pkgs/applications/window-managers/dwl/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/dwl/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchFromGitHub
+, fetchFromGitea
 , installShellFiles
 , libX11
 , libinput
@@ -24,8 +24,9 @@ stdenv.mkDerivation (finalAttrs: {
   pname = "dwl";
   version = "0.5";
 
-  src = fetchFromGitHub {
-    owner = "djpohly";
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "dwl";
     repo = "dwl";
     rev = "v${finalAttrs.version}";
     hash = "sha256-U/vqGE1dJKgEGTfPMw02z5KJbZLWY1vwDJWnJxT8urM=";
diff --git a/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix b/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix
index a0dbb3660d31..017a1ab0fe95 100644
--- a/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/evilwm/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evilwm";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchurl {
     url = "http://www.6809.org.uk/evilwm/evilwm-${version}.tar.gz";
-    sha256 = "sha256-QhLW2QywBbLMiIFLyFN3NrSVCrWCZLu2W4gHrGO9xLk=";
+    sha256 = "sha256-1ZRbILEskdskEvrA29o/ucPsjeu44bEJg4mSsrG75dQ=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/default.nix b/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
index 3db57a6b8dd2..a9d1764eaf1f 100644
--- a/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/default.nix
@@ -8,6 +8,7 @@
 , binutils
 , cairo
 , git
+, hyprcursor
 , hyprland-protocols
 , hyprlang
 , jq
@@ -22,11 +23,11 @@
 , pciutils
 , systemd
 , tomlplusplus
-, udis86
+, udis86-hyprland
 , wayland
 , wayland-protocols
 , wayland-scanner
-, wlroots
+, wlroots-hyprland
 , xcbutilwm
 , xwayland
 , debug ? false
@@ -42,15 +43,19 @@
 assert lib.assertMsg (!nvidiaPatches) "The option `nvidiaPatches` has been removed.";
 assert lib.assertMsg (!enableNvidiaPatches) "The option `enableNvidiaPatches` has been removed.";
 assert lib.assertMsg (!hidpiXWayland) "The option `hidpiXWayland` has been removed. Please refer https://wiki.hyprland.org/Configuring/XWayland";
+
+let
+  wlr = wlroots-hyprland.override { inherit enableXWayland; };
+in
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprland" + lib.optionalString debug "-debug";
-  version = "0.36.0";
+  version = "0.37.1";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    hash = "sha256-oZe4k6jtO/0govmERGcbeyvE9EfTvXY5bnyIs6AsL9U=";
+    hash = "sha256-W+34KhCnqscRXN/IkvuJMiVx0Fa64RcYn8H4sZjzceI=";
   };
 
   patches = [
@@ -68,7 +73,7 @@ stdenv.mkDerivation (finalAttrs: {
       --replace "@HASH@" '${finalAttrs.src.rev}' \
       --replace "@BRANCH@" "" \
       --replace "@MESSAGE@" "" \
-      --replace "@DATE@" "2024-02-05" \
+      --replace "@DATE@" "2024-03-16" \
       --replace "@TAG@" "" \
       --replace "@DIRTY@" ""
   '';
@@ -92,6 +97,7 @@ stdenv.mkDerivation (finalAttrs: {
     [
       cairo
       git
+      hyprcursor
       hyprland-protocols
       hyprlang
       libGL
@@ -99,13 +105,13 @@ stdenv.mkDerivation (finalAttrs: {
       libinput
       libxkbcommon
       mesa
-      udis86
+      udis86-hyprland
       wayland
       wayland-protocols
       pango
       pciutils
       tomlplusplus
-      wlroots
+      wlr
     ]
     ++ lib.optionals stdenv.hostPlatform.isMusl [ libexecinfo ]
     ++ lib.optionals enableXWayland [ libxcb xcbutilwm xwayland ]
@@ -125,7 +131,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   postInstall = ''
-    ln -s ${wlroots}/include/wlr $dev/include/hyprland/wlroots
+    ln -s ${wlr}/include/wlr $dev/include/hyprland/wlroots
     ${lib.optionalString wrapRuntimeDeps ''
       wrapProgram $out/bin/Hyprland \
         --suffix PATH : ${lib.makeBinPath [binutils pciutils stdenv.cc]}
@@ -135,11 +141,11 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.providedSessions = [ "hyprland" ];
 
   meta = with lib; {
-    homepage = "https://github.com/vaxerski/Hyprland";
+    homepage = "https://github.com/hyprwm/Hyprland";
     description = "A dynamic tiling Wayland compositor that doesn't sacrifice on its looks";
     license = licenses.bsd3;
     maintainers = with maintainers; [ wozeparrot fufexan ];
     mainProgram = "Hyprland";
-    platforms = wlroots.meta.platforms;
+    platforms = wlr.meta.platforms;
   };
 })
diff --git a/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix b/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix
index 4992e18b6bee..ddbd6d9fb4db 100644
--- a/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix
+++ b/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/plugins.nix
@@ -22,15 +22,15 @@ let
 
   plugins = {
     hy3 = { fetchFromGitHub, cmake, hyprland }:
-      mkHyprlandPlugin hyprland rec {
+      mkHyprlandPlugin hyprland {
         pluginName = "hy3";
-        version = "unstable-2024-02-23";
+        version = "0.36.0-unstable-2024-03-06";
 
         src = fetchFromGitHub {
           owner = "outfoxxed";
           repo = "hy3";
-          rev = "029a2001361d2a4cbbe7447968dee5d1b1880298";
-          hash = "sha256-8LKCXwNU6wA8o6O7s9T2sLWbYNHaI1tYU4YMjHkNLZQ=";
+          rev = "a392bfd13caf865ccf6b9df6917b67cc3a054b82";
+          hash = "sha256-QuapQR9DJI9+vt7xqULYIXx2QCCX1I/YB50c+7ReexU=";
         };
 
         nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix b/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix
index 5c42eff6fc8c..d5be9f276cf2 100644
--- a/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix
+++ b/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprland/wlroots.nix
@@ -1,16 +1,18 @@
 { fetchFromGitLab
 , wlroots
+, enableXWayland ? true
 }:
 wlroots.overrideAttrs
   (old: {
+    inherit enableXWayland;
     version = "0.18.0-dev";
 
     src = fetchFromGitLab {
       domain = "gitlab.freedesktop.org";
       owner = "wlroots";
       repo = "wlroots";
-      rev = "0cb091f1a2d345f37d2ee445f4ffd04f7f4ec9e5";
-      hash = "sha256-Mz6hCtommq7RQfcPnxLINigO4RYSNt23HeJHC6mVmWI=";
+      rev = "50eae512d9cecbf0b3b1898bb1f0b40fa05fe19b";
+      hash = "sha256-wXWIJLd4F2JZeMaihWVDW/yYXCLEC8OpeNJZg9a9ly8=";
     };
 
     patches = [ ]; # don't inherit old.patches
diff --git a/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprshade/default.nix b/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprshade/default.nix
index f76a8063388d..229f53ed3de8 100644
--- a/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprshade/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/hyprwm/hyprshade/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "hyprshade";
-  version = "3.1.0";
+  version = "3.2.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "loqusion";
     repo = "hyprshade";
     rev = "refs/tags/${version}";
-    hash = "sha256-bH+QXvZ+Yaogcp/MYJopiAUvM/imNrSo+cotTzzdlV8=";
+    hash = "sha256-MlbNE9n//Qb6OJc3DMkOpnPtoodfV8JlG/I5rOfWMtQ=";
   };
 
   nativeBuildInputs = [
@@ -27,6 +27,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/loqusion/hyprshade";
     description = "Hyprland shade configuration tool";
+    mainProgram = "hyprshade";
     license = licenses.mit;
     maintainers = with maintainers; [ willswats ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix b/nixpkgs/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix
index 6c1d99fbb0c7..2825ef3a6563 100644
--- a/nixpkgs/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation (self: {
   meta = with lib; {
     homepage = "https://github.com/hyprwm/xdg-desktop-portal-hyprland";
     description = "xdg-desktop-portal backend for Hyprland";
+    mainProgram = "hyprland-share-picker";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fufexan ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/altlayout.nix b/nixpkgs/pkgs/applications/window-managers/i3/altlayout.nix
index 91f663907a0a..f6f1ecf20c1a 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/altlayout.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/altlayout.nix
@@ -18,6 +18,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     maintainers = with maintainers; [ magnetophon ];
     description = "Helps you handle more efficiently your screen real estate in i3wm by auto-splitting windows on their longest side";
+    mainProgram = "i3altlayout";
     homepage = "https://github.com/deadc0de6/i3altlayout";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/auto-layout.nix b/nixpkgs/pkgs/applications/window-managers/i3/auto-layout.nix
index dfc0974834f4..bfcb35a870c9 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/auto-layout.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/auto-layout.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Automatic, optimal tiling for i3wm";
+    mainProgram = "i3-auto-layout";
     homepage = "https://github.com/chmln/i3-auto-layout";
     license = licenses.mit;
     maintainers = with maintainers; [ mephistophiles perstark ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix b/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix
index deb0c99c313a..657e8d2dca1c 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/blocks-gaps.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A flexible scheduler for your i3bar blocks -- this is a fork to use with i3-gaps";
+    mainProgram = "i3blocks";
     homepage = "https://github.com/Airblader/i3blocks-gaps";
     license = licenses.gpl3;
     maintainers = with maintainers; [ carlsverre ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/blocks.nix b/nixpkgs/pkgs/applications/window-managers/i3/blocks.nix
index 1574c587743b..e8f628fb4dc9 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/blocks.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/blocks.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "A flexible scheduler for your i3bar blocks";
+    mainProgram = "i3blocks";
     homepage = "https://github.com/vivien/i3blocks";
     license = licenses.gpl3;
     platforms = with platforms; freebsd ++ linux;
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/cycle-focus.nix b/nixpkgs/pkgs/applications/window-managers/i3/cycle-focus.nix
index 180b074118ca..7927985460e2 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/cycle-focus.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/cycle-focus.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "A simple tool to cyclically switch between the windows on the active workspace";
+    mainProgram = "i3-cycle-focus";
     homepage = "https://github.com/TheDoctor314/i3-cycle-focus";
     license = licenses.unlicense;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/default.nix b/nixpkgs/pkgs/applications/window-managers/i3/default.nix
index 9d21716bc704..d7f1bc2176a8 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
     description = "A tiling window manager";
     homepage    = "https://i3wm.org";
     maintainers = with maintainers; [ modulistic fpletz ];
+    mainProgram = "i3";
     license     = licenses.bsd3;
     platforms   = platforms.all;
 
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/easyfocus.nix b/nixpkgs/pkgs/applications/window-managers/i3/easyfocus.nix
index a2ee445eaf12..a1f0895bff6d 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/easyfocus.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/easyfocus.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Focus and select windows in i3";
+    mainProgram = "i3-easyfocus";
     homepage = "https://github.com/cornerman/i3-easyfocus";
     maintainers = with maintainers; [teto];
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/i3-ratiosplit.nix b/nixpkgs/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
index fbd584f2baa9..0903ceb3185a 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/i3-ratiosplit.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Resize newly created windows";
+    mainProgram = "i3-ratiosplit";
     homepage = "https://github.com/333fred/i3-ratiosplit";
     license = licenses.mit;
     maintainers = with maintainers; [ svrana ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/i3-resurrect.nix b/nixpkgs/pkgs/applications/window-managers/i3/i3-resurrect.nix
index a84d97504bbb..c5fedfbe36e7 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/i3-resurrect.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/i3-resurrect.nix
@@ -15,6 +15,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/JonnyHaystack/i3-resurrect";
     description = "A simple but flexible solution to saving and restoring i3 workspaces";
+    mainProgram = "i3-resurrect";
     license = licenses.gpl3;
     platforms= platforms.linux;
     maintainers = with maintainers; [ magnetophon ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/kitti3.nix b/nixpkgs/pkgs/applications/window-managers/i3/kitti3.nix
index 63e1224a316b..3068baee5d99 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/kitti3.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/kitti3.nix
@@ -34,6 +34,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/LandingEllipse/kitti3";
     description = "Kitty drop-down service for sway & i3wm";
+    mainProgram = "kitti3";
     license = licenses.bsd3;
     maintainers = with maintainers; [ Enzime ];
   };
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/layout-manager.nix b/nixpkgs/pkgs/applications/window-managers/i3/layout-manager.nix
index 8fd0364bb58c..b2a3adb98f90 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/layout-manager.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/layout-manager.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/klaxalk/i3-layout-manager";
     description = "Saving, loading and managing layouts for i3wm";
+    mainProgram = "layout_manager";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/lock.nix b/nixpkgs/pkgs/applications/window-managers/i3/lock.nix
index b7cca2b66376..41096a70a68d 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/lock.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/lock.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "i3lock";
-  version = "2.14.1";
+  version = "2.15";
 
   src = fetchFromGitHub {
     owner = "i3";
     repo = "i3lock";
     rev = version;
-    sha256 = "sha256-cC908c47fkU6msLqZSxpEbKxO1/PatH81QeuCzBSZGw=";
+    sha256 = "sha256-OyV6GSLnNV3GUqrfs3OBnIaBvicH2PXgeY4acOk5dR4=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/wk-switch.nix b/nixpkgs/pkgs/applications/window-managers/i3/wk-switch.nix
index e077254b70f4..fadcfe9908da 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/wk-switch.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/wk-switch.nix
@@ -24,6 +24,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "XMonad-like workspace switching for i3 and sway";
+    mainProgram = "i3-wk-switch";
     maintainers = with maintainers; [ synthetica ];
     platforms = platforms.linux;
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix b/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix
index 8b45c7f8a1d9..af90b968bd04 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/wmfocus.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Visually focus windows by label";
+    mainProgram = "wmfocus";
     homepage = "https://github.com/svenstaro/wmfocus";
     license = licenses.mit;
     maintainers = with maintainers; [ synthetica ];
diff --git a/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix b/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix
index 8d009a3458b3..80439f945fdc 100644
--- a/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix
+++ b/nixpkgs/pkgs/applications/window-managers/lemonbar/xft.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A lightweight xcb based bar with XFT-support";
+    mainProgram = "lemonbar";
     homepage = "https://github.com/drscream/lemonbar-xft";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/window-managers/miriway/default.nix b/nixpkgs/pkgs/applications/window-managers/miriway/default.nix
index b8528a374125..4c73135c54a4 100644
--- a/nixpkgs/pkgs/applications/window-managers/miriway/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/miriway/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "miriway";
-  version = "unstable-2024-02-14";
+  version = "unstable-2024-03-15";
 
   src = fetchFromGitHub {
     owner = "Miriway";
     repo = "Miriway";
-    rev = "ad4d311269dc25789f7412211ddddad383d9700c";
-    hash = "sha256-kPrsyrAHvwrktBFITuhpFKyjmedv04ONFhuxiBDlAJA=";
+    rev = "dcc44916d0b25dd06d792947c837cf4cd8c24925";
+    hash = "sha256-LnqhIVmC5F+FAIcYW+oT4t2ovRWeoV4zHpvbNhiY7Kw=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/applications/window-managers/owl/default.nix b/nixpkgs/pkgs/applications/window-managers/owl/default.nix
index fa9ea8e8b6a1..d3f018eb1202 100644
--- a/nixpkgs/pkgs/applications/window-managers/owl/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/owl/default.nix
@@ -1,5 +1,5 @@
 { lib
-, stdenv
+, clangStdenv
 , fetchFromGitHub
 , gnustep
 , libxkbcommon
@@ -12,9 +12,10 @@
 assert wayland.withLibraries;
 
 let
-  mkDerivation = if stdenv.isDarwin then stdenv.mkDerivation else gnustep.gsmakeDerivation;
+  stdenv = clangStdenv;
 in
-mkDerivation {
+
+stdenv.mkDerivation {
   pname = "owl-compositor";
   version = "unstable-2021-11-10";
 
@@ -43,6 +44,7 @@ mkDerivation {
     darwin.bootstrap_cmds
   ] ++ lib.optionals (!stdenv.isDarwin) [
     gnustep.make
+    gnustep.wrapGNUstepAppsHook
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/window-managers/phosh/default.nix b/nixpkgs/pkgs/applications/window-managers/phosh/default.nix
index 5a6ca17caf69..3cdc2ee41db8 100644
--- a/nixpkgs/pkgs/applications/window-managers/phosh/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/phosh/default.nix
@@ -36,12 +36,12 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "phosh";
-  version = "0.36.0";
+  version = "0.37.0";
 
   src = fetchurl {
     # Release tarball which includes subprojects gvc and libcall-ui
     url = with finalAttrs; "https://sources.phosh.mobi/releases/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-rhhvVCOqw/jqNSpo9Hlrcgh4Bxnoud/Z3yAq4n/ixIQ=";
+    hash = "sha256-kmZX2pPOYSh2hiMrRLH6744Q8rHHhE9jmG+SksepUYk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix b/nixpkgs/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix
index 71d051159de1..8e85597cc7d3 100644
--- a/nixpkgs/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix
+++ b/nixpkgs/pkgs/applications/window-managers/phosh/phosh-mobile-settings.nix
@@ -20,12 +20,12 @@
 
 stdenv.mkDerivation rec {
   pname = "phosh-mobile-settings";
-  version = "0.36.0";
+  version = "0.37.0";
 
   src = fetchurl {
     # This tarball includes the meson wrapped subproject 'gmobile'.
     url = "https://sources.phosh.mobi/releases/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-rktrEBRjOUWGb0Qfcyr03dSxpU2XnC0xHb07x8qc9JU=";
+    hash = "sha256-HW3wM/lb8pvr+eDoeqa0iHXiKhBQ8ybBIy0wwHPsrOg=";
   };
 
   nativeBuildInputs = [
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A settings app for mobile specific things";
+    mainProgram = "phosh-mobile-settings";
     homepage = "https://gitlab.gnome.org/World/Phosh/phosh-mobile-settings";
     changelog = "https://gitlab.gnome.org/World/Phosh/phosh-mobile-settings/-/blob/v${version}/debian/changelog";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/applications/window-managers/wayfire/firedecor.nix b/nixpkgs/pkgs/applications/window-managers/wayfire/firedecor.nix
new file mode 100644
index 000000000000..ce42f6fc6886
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/wayfire/firedecor.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, boost
+, cairo
+, glib
+, libGL
+, libinput
+, librsvg
+, libxkbcommon
+, pango
+, udev
+, wayfire
+, wayland
+, wf-config
+, xcbutilwm
+, mate
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "firedecor";
+  version = "2023-10-23";
+
+  src = fetchFromGitHub {
+    owner = "mntmn";
+    repo = "Firedecor";
+    rev = finalAttrs.version;
+    hash = "sha256-7or8HkmIZnLpXEZzUhJ3u8SIPfIQFgn32Ju/5OzK06Y=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    boost
+    cairo
+    glib
+    libGL
+    libinput
+    librsvg
+    libxkbcommon
+    pango
+    udev
+    wayfire
+    wayland
+    wf-config
+    xcbutilwm
+  ];
+
+  postPatch = ''
+    substituteInPlace src/firedecor-theme.cpp \
+      --replace-fail "/usr/share" "/run/current-system/sw/share"
+  '';
+
+  env = {
+    PKG_CONFIG_WAYFIRE_PLUGINDIR = "${placeholder "out"}/lib/wayfire";
+    PKG_CONFIG_WAYFIRE_METADATADIR = "${placeholder "out"}/share/wayfire/metadata";
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/mntmn/Firedecor";
+    description = "Advanced window decoration plugin for the Wayfire window manager";
+    license = licenses.mit;
+    inherit (mate.mate-wayland-session.meta) maintainers;
+    inherit (wayfire.meta) platforms;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/window-managers/wayfire/plugins.nix b/nixpkgs/pkgs/applications/window-managers/wayfire/plugins.nix
index 86f522cdd68d..b8af85aafd0d 100644
--- a/nixpkgs/pkgs/applications/window-managers/wayfire/plugins.nix
+++ b/nixpkgs/pkgs/applications/window-managers/wayfire/plugins.nix
@@ -4,6 +4,7 @@ lib.makeScope pkgs.newScope (self:
   let
     inherit (self) callPackage;
   in {
+    firedecor = callPackage ./firedecor.nix { };
     wayfire-plugins-extra = callPackage ./wayfire-plugins-extra.nix { };
     wcm = callPackage ./wcm.nix { };
     wf-shell = callPackage ./wf-shell.nix { };
diff --git a/nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix b/nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix
index 229a87234924..b71e667b31ad 100644
--- a/nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix
+++ b/nixpkgs/pkgs/applications/window-managers/wayfire/wf-shell.nix
@@ -16,14 +16,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "wf-shell";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "WayfireWM";
     repo = "wf-shell";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-K5g9DfFlqZyPHDUswx3vtzh0D9ogOQ1p87ZrqyH35vs=";
+    hash = "sha256-/ajFPIk8VJnlu2DzvSyGD3bC4r/pxALTkZeLNvs9dTw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/window-managers/weston/default.nix b/nixpkgs/pkgs/applications/window-managers/weston/default.nix
index 34532411888c..b4472425324e 100644
--- a/nixpkgs/pkgs/applications/window-managers/weston/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/weston/default.nix
@@ -26,6 +26,13 @@ stdenv.mkDerivation rec {
     hash = "sha256-Uv8dSqI5Si5BbIWjOLYnzpf6cdQ+t2L9Sq8UXTb8eVo=";
   };
 
+  postPatch = ''
+    # raise neatvnc version bound to 0.8.0
+    # https://gitlab.freedesktop.org/wayland/weston/-/issues/890
+    substituteInPlace libweston/backend-vnc/meson.build \
+      --replace-fail "'neatvnc', version: ['>= 0.7.0', '< 0.8.0']" "'neatvnc', version: ['>= 0.7.0', '<= 0.8.0']"
+  '';
+
   depsBuildBuild = [ pkg-config ];
   nativeBuildInputs = [ meson ninja pkg-config python3 wayland-scanner ];
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/window-managers/xmonad/xmonadctl.nix b/nixpkgs/pkgs/applications/window-managers/xmonad/xmonadctl.nix
index e0c452340456..f7dfe1354025 100644
--- a/nixpkgs/pkgs/applications/window-managers/xmonad/xmonadctl.nix
+++ b/nixpkgs/pkgs/applications/window-managers/xmonad/xmonadctl.nix
@@ -17,6 +17,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     platforms = platforms.unix;
     description = "Send commands to a running instance of xmonad";
+    mainProgram = "xmonadctl";
     homepage = "https://github.com/xmonad/xmonad-contrib";
     license = licenses.bsd3;
     maintainers = [ maintainers.ajgrf ];
diff --git a/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix b/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
index 66027485ee71..1a32f365bab2 100644
--- a/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
+++ b/nixpkgs/pkgs/build-support/bintools-wrapper/default.nix
@@ -325,6 +325,12 @@ stdenv.mkDerivation {
       hardening_unsupported_flags+=" relro bindnow"
     ''
 
+    + optionalString (libc != null && targetPlatform.isAvr) ''
+      for isa in avr5 avr3 avr4 avr6 avr25 avr31 avr35 avr51 avrxmega2 avrxmega4 avrxmega5 avrxmega6 avrxmega7 tiny-stack; do
+        echo "-L${getLib libc}/avr/lib/$isa" >> $out/nix-support/libc-cflags
+      done
+    ''
+
     + optionalString stdenv.targetPlatform.isDarwin ''
       echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/libc-ldflags
     ''
diff --git a/nixpkgs/pkgs/build-support/cc-wrapper/default.nix b/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
index d788076dda51..569f6875e1fb 100644
--- a/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
+++ b/nixpkgs/pkgs/build-support/cc-wrapper/default.nix
@@ -53,33 +53,54 @@
 , gccForLibs ? if useCcForLibs then cc else null
 , fortify-headers ? null
 , includeFortifyHeaders ? null
-}:
 
-with lib;
+# https://github.com/NixOS/nixpkgs/issues/295322
+# should -march flag be used
+, disableMarch ? false
+}:
 
 assert nativeTools -> !propagateDoc && nativePrefix != "";
-assert !nativeTools ->
-  cc != null && coreutils != null && gnugrep != null;
+assert !nativeTools -> cc != null && coreutils != null && gnugrep != null;
 assert !(nativeLibc && noLibc);
 assert (noLibc || nativeLibc) == (libc == null);
 
 let
-  stdenv = stdenvNoCC;
+  inherit (lib)
+    attrByPath
+    concatMapStrings
+    concatStringsSep
+    escapeShellArg
+    getBin
+    getDev
+    getLib
+    getName
+    getVersion
+    mapAttrsToList
+    optional
+    optionalAttrs
+    optionals
+    optionalString
+    removePrefix
+    replaceStrings
+    toList
+    versionAtLeast
+    ;
+
   inherit (stdenv) hostPlatform targetPlatform;
 
+  stdenv = stdenvNoCC;
+
   includeFortifyHeaders' = if includeFortifyHeaders != null
     then includeFortifyHeaders
     else (targetPlatform.libc == "musl" && isGNU);
 
   # Prefix for binaries. Customarily ends with a dash separator.
   #
-  # TODO(@Ericson2314) Make unconditional, or optional but always true by
-  # default.
-  targetPrefix = lib.optionalString (targetPlatform != hostPlatform)
-                                           (targetPlatform.config + "-");
+  # TODO(@Ericson2314) Make unconditional, or optional but always true by default.
+  targetPrefix = optionalString (targetPlatform != hostPlatform) (targetPlatform.config + "-");
 
-  ccVersion = lib.getVersion cc;
-  ccName = lib.removePrefix targetPrefix (lib.getName cc);
+  ccVersion = getVersion cc;
+  ccName = removePrefix targetPrefix (getName cc);
 
   libc_bin = optionalString (libc != null) (getBin libc);
   libc_dev = optionalString (libc != null) (getDev libc);
@@ -98,7 +119,7 @@ let
   suffixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config;
 
   expand-response-params =
-    lib.optionalString ((buildPackages.stdenv.hasCC or false) && buildPackages.stdenv.cc != "/dev/null") (import ../expand-response-params { inherit (buildPackages) stdenv; });
+    optionalString ((buildPackages.stdenv.hasCC or false) && buildPackages.stdenv.cc != "/dev/null") (import ../expand-response-params { inherit (buildPackages) stdenv; });
 
   useGccForLibs = useCcForLibs
     && libcxx == null
@@ -111,7 +132,7 @@ let
     + optionalString (targetPlatform != hostPlatform) "/${targetPlatform.config}";
 
   # Analogously to cc_solib and gccForLibs_solib
-  libcxx_solib = "${lib.getLib libcxx}/lib";
+  libcxx_solib = "${getLib libcxx}/lib";
 
   # The following two functions, `isGccArchSupported` and
   # `isGccTuneSupported`, only handle those situations where a flag
@@ -407,9 +428,9 @@ stdenv.mkDerivation {
 
   setupHooks = [
     ../setup-hooks/role.bash
-  ] ++ lib.optional (cc.langC or true) ./setup-hook.sh
-    ++ lib.optional (cc.langFortran or false) ./fortran-hook.sh
-    ++ lib.optional (targetPlatform.isWindows) (stdenv.mkDerivation {
+  ] ++ optional (cc.langC or true) ./setup-hook.sh
+    ++ optional (cc.langFortran or false) ./fortran-hook.sh
+    ++ optional (targetPlatform.isWindows) (stdenv.mkDerivation {
       name = "win-dll-hook.sh";
       dontUnpack = true;
       installPhase = ''
@@ -476,7 +497,7 @@ stdenv.mkDerivation {
     # when building e.g. firefox), lld is able to find libgcc_s.so
     + concatMapStrings (libgcc: ''
       echo "-L${libgcc}/lib" >> $out/nix-support/cc-ldflags
-    '') (lib.toList (gccForLibs.libgcc or [])))
+    '') (toList (gccForLibs.libgcc or [])))
 
     ##
     ## General libc support
@@ -542,9 +563,12 @@ stdenv.mkDerivation {
       done
     ''
     + optionalString (libcxx.isLLVM or false) ''
-      echo "-isystem ${lib.getDev libcxx}/include/c++/v1" >> $out/nix-support/libcxx-cxxflags
-      echo "-isystem ${lib.getDev libcxx.cxxabi}/include/c++/v1" >> $out/nix-support/libcxx-cxxflags
+      echo "-isystem ${getDev libcxx}/include/c++/v1" >> $out/nix-support/libcxx-cxxflags
       echo "-stdlib=libc++" >> $out/nix-support/libcxx-ldflags
+    ''
+    # can remove once LLVM9 and LLVM11 are dropped from nixpkgs
+    + optionalString (libcxx.isLLVM or false && lib.versionOlder (lib.getVersion libcxx) "12" && libcxx ? cxxabi.libName) ''
+      echo "-isystem ${lib.getDev libcxx.cxxabi}/include/c++/v1" >> $out/nix-support/libcxx-cxxflags
       echo "-l${libcxx.cxxabi.libName}" >> $out/nix-support/libcxx-ldflags
     ''
 
@@ -593,7 +617,7 @@ stdenv.mkDerivation {
     ## Hardening support
     ##
     + ''
-      export hardening_unsupported_flags="${builtins.concatStringsSep " " ccHardeningUnsupportedFlags}"
+      export hardening_unsupported_flags="${concatStringsSep " " ccHardeningUnsupportedFlags}"
     ''
 
     # Machine flags. These are necessary to support
@@ -609,7 +633,7 @@ stdenv.mkDerivation {
 
     # TODO: aarch64-darwin has mcpu incompatible with gcc
     + optionalString ((targetPlatform ? gcc.arch) && !isClang && !(stdenv.isDarwin && stdenv.isAarch64) &&
-                      isGccArchSupported targetPlatform.gcc.arch) ''
+                      isGccArchSupported targetPlatform.gcc.arch && !disableMarch) ''
       echo "-march=${targetPlatform.gcc.arch}" >> $out/nix-support/cc-cflags-before
     ''
 
@@ -668,6 +692,12 @@ stdenv.mkDerivation {
       hardening_unsupported_flags+=" stackprotector"
     ''
 
+    + optionalString (libc != null && targetPlatform.isAvr) ''
+      for isa in avr5 avr3 avr4 avr6 avr25 avr31 avr35 avr51 avrxmega2 avrxmega4 avrxmega5 avrxmega6 avrxmega7 tiny-stack; do
+        echo "-B${getLib libc}/avr/lib/$isa" >> $out/nix-support/libc-crt1-cflags
+      done
+    ''
+
     + optionalString stdenv.targetPlatform.isDarwin ''
         echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/cc-cflags
     ''
@@ -698,9 +728,9 @@ stdenv.mkDerivation {
     ##
     + optionalString isClang ''
       # Escape twice: once for this script, once for the one it gets substituted into.
-      export march=${lib.escapeShellArg
-        (lib.optionalString (targetPlatform ? gcc.arch)
-          (lib.escapeShellArg "-march=${targetPlatform.gcc.arch}"))}
+      export march=${escapeShellArg
+        (optionalString (targetPlatform ? gcc.arch && !disableMarch)
+          (escapeShellArg "-march=${targetPlatform.gcc.arch}"))}
       export defaultTarget=${targetPlatform.config}
       substituteAll ${./add-clang-cc-cflags-before.sh} $out/nix-support/add-local-cc-cflags-before.sh
     ''
@@ -709,8 +739,8 @@ stdenv.mkDerivation {
     ## Extra custom steps
     ##
     + extraBuildCommands
-    + lib.strings.concatStringsSep "; "
-      (lib.attrsets.mapAttrsToList
+    + concatStringsSep "; "
+      (mapAttrsToList
         (name: value: "echo ${toString value} >> $out/nix-support/${name}")
         nixSupport);
 
@@ -733,11 +763,9 @@ stdenv.mkDerivation {
   };
 
   meta =
-    let cc_ = lib.optionalAttrs (cc != null) cc; in
-    (lib.optionalAttrs (cc_ ? meta) (removeAttrs cc.meta ["priority"])) //
-    { description =
-        lib.attrByPath ["meta" "description"] "System C compiler" cc_
-        + " (wrapper script)";
+    let cc_ = optionalAttrs (cc != null) cc; in
+    (optionalAttrs (cc_ ? meta) (removeAttrs cc.meta ["priority"])) //
+    { description = attrByPath ["meta" "description"] "System C compiler" cc_ + " (wrapper script)";
       priority = 10;
       mainProgram = if name != "" then name else ccName;
   };
diff --git a/nixpkgs/pkgs/build-support/deterministic-uname/default.nix b/nixpkgs/pkgs/build-support/deterministic-uname/default.nix
index 164136c937b9..6d150557aa9d 100644
--- a/nixpkgs/pkgs/build-support/deterministic-uname/default.nix
+++ b/nixpkgs/pkgs/build-support/deterministic-uname/default.nix
@@ -39,6 +39,7 @@ substituteAll {
 
   meta = with lib; {
     description = "Print certain system information (hardcoded with lib/system values)";
+    mainProgram = "uname";
     longDescription = ''
       This package provides a replacement for `uname` whose output depends only
       on `stdenv.buildPlatform`.  It is meant to be used from within derivations.
diff --git a/nixpkgs/pkgs/build-support/docker/default.nix b/nixpkgs/pkgs/build-support/docker/default.nix
index 0583f522bda3..6b8a03932f5b 100644
--- a/nixpkgs/pkgs/build-support/docker/default.nix
+++ b/nixpkgs/pkgs/build-support/docker/default.nix
@@ -29,7 +29,7 @@
 , tarsum
 , util-linux
 , vmTools
-, writeReferencesToFile
+, writeClosure
 , writeScript
 , writeShellScriptBin
 , writeText
@@ -523,7 +523,7 @@ rec {
     runCommand "${baseNameOf name}.tar${compress.ext}"
       {
         inherit (stream) imageName;
-        passthru = { inherit (stream) imageTag; };
+        passthru = { inherit (stream) imageTag; inherit stream; };
         nativeBuildInputs = compress.nativeInputs;
       } "${stream} | ${compress.compress} > $out"
   );
@@ -630,7 +630,7 @@ rec {
           imageName = lib.toLower name;
           imageTag = lib.optionalString (tag != null) tag;
           inherit fromImage baseJson;
-          layerClosure = writeReferencesToFile layer;
+          layerClosure = writeClosure [ layer ];
           passthru.buildArgs = args;
           passthru.layer = layer;
           passthru.imageTag =
@@ -1200,6 +1200,7 @@ rec {
 
           # Root certificates for internet access
           SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+          NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
 
           # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/build/local-derivation-goal.cc#L1027-L1030
           # PATH = "/path-not-set";
diff --git a/nixpkgs/pkgs/build-support/docker/nix-prefetch-docker.nix b/nixpkgs/pkgs/build-support/docker/nix-prefetch-docker.nix
index 61e917461ed9..18accd135c04 100644
--- a/nixpkgs/pkgs/build-support/docker/nix-prefetch-docker.nix
+++ b/nixpkgs/pkgs/build-support/docker/nix-prefetch-docker.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Script used to obtain source hashes for dockerTools.pullImage";
+    mainProgram = "nix-prefetch-docker";
     maintainers = with maintainers; [ offline ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/build-support/docker/tarsum.nix b/nixpkgs/pkgs/build-support/docker/tarsum.nix
index 734c6b3d5aeb..f62a8d49389a 100644
--- a/nixpkgs/pkgs/build-support/docker/tarsum.nix
+++ b/nixpkgs/pkgs/build-support/docker/tarsum.nix
@@ -39,4 +39,5 @@ stdenv.mkDerivation {
   };
 
   meta.platforms = go.meta.platforms;
+  meta.mainProgram = "tarsum";
 }
diff --git a/nixpkgs/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh b/nixpkgs/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh
index def59954e480..c8e2c0c298ec 100755
--- a/nixpkgs/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh
+++ b/nixpkgs/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh
@@ -52,6 +52,7 @@ for package in *; do
     fi
 
     used_source="$(jq -r '.source' "$version"/.nupkg.metadata)"
+    found=false
 
     if [[ -d "$used_source" ]]; then
         continue
@@ -80,7 +81,7 @@ for package in *; do
       fi
     done
 
-    if ! ${found-false}; then
+    if [[ $found = false ]]; then
       echo "couldn't find $package $version" >&2
       exit 1
     fi
diff --git a/nixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git b/nixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git
index a3ea0297673d..7ac3dec91f7f 100755
--- a/nixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/nixpkgs/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -120,7 +120,7 @@ init_remote(){
         git config remote.origin.partialclonefilter "blob:none"
         echo "$sparseCheckout" | git sparse-checkout set --stdin ${nonConeMode:+--no-cone}
     fi
-    ( [ -n "$http_proxy" ] && clean_git config http.proxy "$http_proxy" ) || true
+    ( [ -n "$http_proxy" ] && clean_git config --global http.proxy "$http_proxy" ) || true
 }
 
 # Return the reference of an hash if it exists on the remote repository.
diff --git a/nixpkgs/pkgs/build-support/fetchnextcloudapp/default.nix b/nixpkgs/pkgs/build-support/fetchnextcloudapp/default.nix
index 0ec64bbe1df6..059003df903d 100644
--- a/nixpkgs/pkgs/build-support/fetchnextcloudapp/default.nix
+++ b/nixpkgs/pkgs/build-support/fetchnextcloudapp/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchzip, applyPatches, lib, ... }:
 { url
-, sha256
+, hash ? ""
+, sha256 ? ""
 , appName ? null
 , appVersion ? null
 , license
@@ -11,7 +12,7 @@
 applyPatches ({
   inherit patches;
   src = fetchzip {
-    inherit url sha256;
+    inherit url hash sha256;
     postFetch = ''
       pushd $out &>/dev/null
       if [ ! -f ./appinfo/info.xml ]; then
diff --git a/nixpkgs/pkgs/build-support/java/canonicalize-jar.nix b/nixpkgs/pkgs/build-support/java/canonicalize-jar.nix
deleted file mode 100644
index 1edd9a6e0d20..000000000000
--- a/nixpkgs/pkgs/build-support/java/canonicalize-jar.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ substituteAll, unzip, zip }:
-
-substituteAll {
-  name = "canonicalize-jar";
-  src = ./canonicalize-jar.sh;
-
-  unzip = "${unzip}/bin/unzip";
-  zip = "${zip}/bin/zip";
-}
diff --git a/nixpkgs/pkgs/build-support/java/canonicalize-jar.sh b/nixpkgs/pkgs/build-support/java/canonicalize-jar.sh
deleted file mode 100644
index af010bcd2b26..000000000000
--- a/nixpkgs/pkgs/build-support/java/canonicalize-jar.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-# Canonicalize the manifest & repack with deterministic timestamps.
-canonicalizeJar() {
-    local input='' outer=''
-    input="$(realpath -sm -- "$1")"
-    outer="$(pwd)"
-    # -qq: even quieter
-    @unzip@ -qq "$input" -d "$input-tmp"
-    canonicalizeJarManifest "$input-tmp/META-INF/MANIFEST.MF"
-    # Sets all timestamps to Jan 1 1980, the earliest mtime zips support.
-    find -- "$input-tmp" -exec touch -t 198001010000.00 {} +
-    rm "$input"
-    pushd "$input-tmp" 2>/dev/null
-    # -q|--quiet, -r|--recurse-paths
-    # -o|--latest-time: canonicalizes overall archive mtime
-    # -X|--no-extra: don't store platform-specific extra file attribute fields
-    @zip@ -qroX "$outer/tmp-out.jar" . 2> /dev/null
-    popd 2>/dev/null
-    rm -rf "$input-tmp"
-    mv "$outer/tmp-out.jar" "$input"
-}
-
-# See also the Java specification's JAR requirements:
-# https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#Notes_on_Manifest_and_Signature_Files
-canonicalizeJarManifest() {
-    local input=''
-    input="$(realpath -sm -- "$1")"
-    (head -n 1 "$input" && tail -n +2 "$input" | sort | grep -v '^\s*$') > "$input-tmp"
-    mv "$input-tmp" "$input"
-}
diff --git a/nixpkgs/pkgs/build-support/kernel/make-initrd-ng-tool.nix b/nixpkgs/pkgs/build-support/kernel/make-initrd-ng-tool.nix
index b1fbee92b32e..5e08c091c054 100644
--- a/nixpkgs/pkgs/build-support/kernel/make-initrd-ng-tool.nix
+++ b/nixpkgs/pkgs/build-support/kernel/make-initrd-ng-tool.nix
@@ -11,6 +11,7 @@ rustPlatform.buildRustPackage {
 
   meta = {
     description = "Tool for copying binaries and their dependencies";
+    mainProgram = "make-initrd-ng";
     maintainers = with lib.maintainers; [ das_j elvishjerricco k900 lheckemann ];
     license = lib.licenses.mit;
   };
diff --git a/nixpkgs/pkgs/build-support/lib/cmake.nix b/nixpkgs/pkgs/build-support/lib/cmake.nix
new file mode 100644
index 000000000000..eff7bbca61a2
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/lib/cmake.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib }:
+
+let
+  inherit (lib) findFirst isString optional optionals;
+
+  makeCMakeFlags = { cmakeFlags ? [], ... }:
+    cmakeFlags
+    ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) ([
+      "-DCMAKE_SYSTEM_NAME=${findFirst isString "Generic" (optional (!stdenv.hostPlatform.isRedox) stdenv.hostPlatform.uname.system)}"
+    ] ++ optionals (stdenv.hostPlatform.uname.processor != null) [
+      "-DCMAKE_SYSTEM_PROCESSOR=${stdenv.hostPlatform.uname.processor}"
+    ] ++ optionals (stdenv.hostPlatform.uname.release != null) [
+      "-DCMAKE_SYSTEM_VERSION=${stdenv.hostPlatform.uname.release}"
+    ] ++ optionals (stdenv.hostPlatform.isDarwin) [
+      "-DCMAKE_OSX_ARCHITECTURES=${stdenv.hostPlatform.darwinArch}"
+    ] ++ optionals (stdenv.buildPlatform.uname.system != null) [
+      "-DCMAKE_HOST_SYSTEM_NAME=${stdenv.buildPlatform.uname.system}"
+    ] ++ optionals (stdenv.buildPlatform.uname.processor != null) [
+      "-DCMAKE_HOST_SYSTEM_PROCESSOR=${stdenv.buildPlatform.uname.processor}"
+    ] ++ optionals (stdenv.buildPlatform.uname.release != null) [
+      "-DCMAKE_HOST_SYSTEM_VERSION=${stdenv.buildPlatform.uname.release}"
+    ] ++ optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+      "-DCMAKE_CROSSCOMPILING_EMULATOR=env"
+    ] ++ optionals stdenv.hostPlatform.isStatic [
+      "-DCMAKE_LINK_SEARCH_START_STATIC=ON"
+    ]);
+in
+{
+  inherit makeCMakeFlags;
+}
diff --git a/nixpkgs/pkgs/build-support/lib/meson.nix b/nixpkgs/pkgs/build-support/lib/meson.nix
new file mode 100644
index 000000000000..395b573f8587
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/lib/meson.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib }:
+
+let
+  inherit (lib) boolToString optionals;
+
+  # See https://mesonbuild.com/Reference-tables.html#cpu-families
+  cpuFamily = platform: with platform;
+    /**/ if isAarch32 then "arm"
+    else if isx86_32  then "x86"
+    else platform.uname.processor;
+
+  makeMesonFlags = { mesonFlags ? [], ... }:
+    let
+      crossFile = builtins.toFile "cross-file.conf" ''
+        [properties]
+        bindgen_clang_arguments = ['-target', '${stdenv.targetPlatform.config}']
+        needs_exe_wrapper = ${boolToString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform)}
+
+        [host_machine]
+        system = '${stdenv.targetPlatform.parsed.kernel.name}'
+        cpu_family = '${cpuFamily stdenv.targetPlatform}'
+        cpu = '${stdenv.targetPlatform.parsed.cpu.name}'
+        endian = ${if stdenv.targetPlatform.isLittleEndian then "'little'" else "'big'"}
+
+        [binaries]
+        llvm-config = 'llvm-config-native'
+        rust = ['rustc', '--target', '${stdenv.targetPlatform.rust.rustcTargetSpec}']
+      '';
+      crossFlags = optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "--cross-file=${crossFile}" ];
+    in crossFlags ++ mesonFlags;
+
+in
+{
+  inherit makeMesonFlags;
+}
diff --git a/nixpkgs/pkgs/build-support/libredirect/test.c b/nixpkgs/pkgs/build-support/libredirect/test.c
index 20b27759f019..e5685fcb31b7 100644
--- a/nixpkgs/pkgs/build-support/libredirect/test.c
+++ b/nixpkgs/pkgs/build-support/libredirect/test.c
@@ -74,7 +74,7 @@ int main(int argc, char *argv[])
     FILE *testfp;
     int testfd;
     struct stat testsb;
-#ifndef __APPLE__
+#ifdef __GLIBC__
     struct stat64 testsb64;
 #endif
 #if defined(__linux__) && defined(STATX_TYPE)
@@ -93,11 +93,11 @@ int main(int argc, char *argv[])
     assert(access(TESTPATH, X_OK) == 0);
 
     assert(stat(TESTPATH, &testsb) != -1);
-#ifndef __APPLE__
+#ifdef __GLIBC__
     assert(stat64(TESTPATH, &testsb64) != -1);
 #endif
     assert(fstatat(123, TESTPATH, &testsb, 0) != -1);
-#ifndef __APPLE__
+#ifdef __GLIBC__
     assert(fstatat64(123, TESTPATH, &testsb64, 0) != -1);
 #endif
 #if defined(__linux__) && defined(STATX_TYPE)
diff --git a/nixpkgs/pkgs/build-support/node/build-npm-package/hooks/npm-install-hook.sh b/nixpkgs/pkgs/build-support/node/build-npm-package/hooks/npm-install-hook.sh
index 56e3a883b99a..750ed421789f 100644
--- a/nixpkgs/pkgs/build-support/node/build-npm-package/hooks/npm-install-hook.sh
+++ b/nixpkgs/pkgs/build-support/node/build-npm-package/hooks/npm-install-hook.sh
@@ -12,7 +12,7 @@ npmInstallHook() {
         local dest="$packageOut/$(dirname "$file")"
         mkdir -p "$dest"
         cp "${npmWorkspace-.}/$file" "$dest"
-    done < <(@jq@ --raw-output '.[0].files | map(.path) | join("\n")' <<< "$(npm_config_cache="$HOME/.npm" npm pack --json --dry-run --loglevel=warn --no-foreground-scripts ${npmWorkspace+--workspace=$npmWorkspace} $npmPackFlags "${npmPackFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}")")
+    done < <(@jq@ --raw-output '.[0].files | map(.path | select(. | startswith("node_modules/") | not)) | join("\n")' <<< "$(npm_config_cache="$HOME/.npm" npm pack --json --dry-run --loglevel=warn --no-foreground-scripts ${npmWorkspace+--workspace=$npmWorkspace} $npmPackFlags "${npmPackFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}")")
 
     # Based on code from Python's buildPythonPackage wrap.sh script, for
     # supporting both the case when makeWrapperArgs is an array and a
diff --git a/nixpkgs/pkgs/build-support/node/fetch-npm-deps/default.nix b/nixpkgs/pkgs/build-support/node/fetch-npm-deps/default.nix
index 725f9ba3bb01..373d63cc59b8 100644
--- a/nixpkgs/pkgs/build-support/node/fetch-npm-deps/default.nix
+++ b/nixpkgs/pkgs/build-support/node/fetch-npm-deps/default.nix
@@ -141,6 +141,7 @@
 
     meta = with lib; {
       description = "Prefetch dependencies from npm (for use with `fetchNpmDeps`)";
+      mainProgram = "prefetch-npm-deps";
       maintainers = with maintainers; [ lilyinstarlight winter ];
       license = licenses.mit;
     };
diff --git a/nixpkgs/pkgs/build-support/oci-tools/default.nix b/nixpkgs/pkgs/build-support/oci-tools/default.nix
index 67e081522d64..1f5507f2eb75 100644
--- a/nixpkgs/pkgs/build-support/oci-tools/default.nix
+++ b/nixpkgs/pkgs/build-support/oci-tools/default.nix
@@ -1,4 +1,4 @@
-{ lib, writeText, runCommand, writeReferencesToFile }:
+{ lib, writeText, runCommand, writeClosure }:
 
 {
   buildContainer =
@@ -72,7 +72,7 @@
       set -o pipefail
       mkdir -p $out/rootfs/{dev,proc,sys}
       cp ${config} $out/config.json
-      xargs tar c < ${writeReferencesToFile args} | tar -xC $out/rootfs/
+      xargs tar c < ${writeClosure args} | tar -xC $out/rootfs/
     '';
 }
 
diff --git a/nixpkgs/pkgs/build-support/php/hooks/php-script-utils.bash b/nixpkgs/pkgs/build-support/php/hooks/php-script-utils.bash
index 9b5978865634..bba0242e65d1 100644
--- a/nixpkgs/pkgs/build-support/php/hooks/php-script-utils.bash
+++ b/nixpkgs/pkgs/build-support/php/hooks/php-script-utils.bash
@@ -21,6 +21,10 @@ checkComposerValidate() {
             echo -e '\e[31mThe validation of the composer.json failed.\e[0m'
             echo -e '\e[31mMake sure that the file composer.json is valid.\e[0m'
             echo
+            echo -e '\e[31mTo address the issue efficiently, follow one of these steps:\e[0m'
+            echo -e '\e[31m  1. File an issue in the project'\''s issue tracker with detailed information, and apply any available remote patches as a temporary solution '\('with fetchpatch'\)'.\e[0m'
+            echo -e '\e[31m  2. If an immediate fix is needed or if reporting upstream isn'\''t suitable, develop a temporary local patch.\e[0m'
+            echo
             exit 1
         else
             echo
@@ -29,6 +33,10 @@ checkComposerValidate() {
             echo -e '\e[33mThe validation of the composer.json failed.\e[0m'
             echo -e '\e[33mMake sure that the file composer.json is valid.\e[0m'
             echo
+            echo -e '\e[33mTo address the issue efficiently, follow one of these steps:\e[0m'
+            echo -e '\e[33m  1. File an issue in the project'\''s issue tracker with detailed information, and apply any available remote patches as a temporary solution with '\('with fetchpatch'\)'.\e[0m'
+            echo -e '\e[33m  2. If an immediate fix is needed or if reporting upstream isn'\''t suitable, develop a temporary local patch.\e[0m'
+            echo
             echo -e '\e[33mThis check is not blocking, but it is recommended to fix the issue.\e[0m'
             echo
         fi
@@ -42,6 +50,12 @@ checkComposerValidate() {
             echo -e '\e[31mThe validation of the composer.json and composer.lock failed.\e[0m'
             echo -e '\e[31mMake sure that the file composer.lock is consistent with composer.json.\e[0m'
             echo
+            echo -e '\e[31mThis often indicates an issue with the upstream project, which can typically be resolved by reporting the issue to the relevant project maintainers.\e[0m'
+            echo
+            echo -e '\e[31mTo address the issue efficiently, follow one of these steps:\e[0m'
+            echo -e '\e[31m  1. File an issue in the project'\''s issue tracker with detailed information '\('run '\''composer update --lock --no-install'\'' to fix the issue'\)', and apply any available remote patches as a temporary solution with '\('with fetchpatch'\)'.\e[0m'
+            echo -e '\e[31m  2. If an immediate fix is needed or if reporting upstream isn'\''t suitable, develop a temporary local patch.\e[0m'
+            echo
             exit 1
         else
             echo
@@ -50,6 +64,12 @@ checkComposerValidate() {
             echo -e '\e[33mThe validation of the composer.json and composer.lock failed.\e[0m'
             echo -e '\e[33mMake sure that the file composer.lock is consistent with composer.json.\e[0m'
             echo
+            echo -e '\e[33mThis often indicates an issue with the upstream project, which can typically be resolved by reporting the issue to the relevant project maintainers.\e[0m'
+            echo
+            echo -e '\e[33mTo address the issue efficiently, follow one of these steps:\e[0m'
+            echo -e '\e[33m  1. File an issue in the project'\''s issue tracker with detailed information '\('run '\''composer update --lock --no-install'\'' to fix the issue'\)', and apply any available remote patches as a temporary solution with '\('with fetchpatch'\)'.\e[0m'
+            echo -e '\e[33m  2. If an immediate fix is needed or if reporting upstream isn'\''t suitable, develop a temporary local patch.\e[0m'
+            echo
             echo -e '\e[33mThis check is not blocking, but it is recommended to fix the issue.\e[0m'
             echo
         fi
diff --git a/nixpkgs/pkgs/build-support/references-by-popularity/closure-graph.py b/nixpkgs/pkgs/build-support/references-by-popularity/closure-graph.py
index 579f3b041fa8..4f8efd42ed81 100644
--- a/nixpkgs/pkgs/build-support/references-by-popularity/closure-graph.py
+++ b/nixpkgs/pkgs/build-support/references-by-popularity/closure-graph.py
@@ -8,8 +8,8 @@
 # and how deep in the tree they live. Equally-"popular" paths are then
 # sorted by name.
 #
-# The existing writeReferencesToFile prints the paths in a simple
-# ascii-based sorting of the paths.
+# The existing writeClosure prints the paths in a simple ascii-based
+# sorting of the paths.
 #
 # Sorting the paths by graph improves the chances that the difference
 # between two builds appear near the end of the list, instead of near
diff --git a/nixpkgs/pkgs/build-support/remove-references-to/default.nix b/nixpkgs/pkgs/build-support/remove-references-to/default.nix
index f022611ef913..1277cdb04fd7 100644
--- a/nixpkgs/pkgs/build-support/remove-references-to/default.nix
+++ b/nixpkgs/pkgs/build-support/remove-references-to/default.nix
@@ -32,4 +32,5 @@ stdenv.mkDerivation {
   inherit (builtins) storeDir;
   shell = lib.getBin shell + (shell.shellPath or "");
   signingUtils = if darwinCodeSign then signingUtils else null;
+  meta.mainProgram = "remove-references-to";
 }
diff --git a/nixpkgs/pkgs/build-support/setup-hooks/canonicalize-jars.sh b/nixpkgs/pkgs/build-support/setup-hooks/canonicalize-jars.sh
deleted file mode 100644
index 5137bfc94b01..000000000000
--- a/nixpkgs/pkgs/build-support/setup-hooks/canonicalize-jars.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-# This setup hook causes the fixup phase to repack all JAR files in a
-# canonical & deterministic fashion, e.g. resetting mtimes (like with normal
-# store files) and avoiding impure metadata.
-
-fixupOutputHooks+=('if [ -z "$dontCanonicalizeJars" -a -e "$prefix" ]; then canonicalizeJarsIn "$prefix"; fi')
-
-canonicalizeJarsIn() {
-  local dir="$1"
-  echo "canonicalizing jars in $dir"
-  dir="$(realpath -sm -- "$dir")"
-  while IFS= read -rd '' f; do
-    canonicalizeJar "$f"
-  done < <(find -- "$dir" -type f -name '*.jar' -print0)
-}
-
-source @canonicalize_jar@
diff --git a/nixpkgs/pkgs/build-support/setup-hooks/strip-java-archives.sh b/nixpkgs/pkgs/build-support/setup-hooks/strip-java-archives.sh
new file mode 100644
index 000000000000..22322468f76d
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/setup-hooks/strip-java-archives.sh
@@ -0,0 +1,16 @@
+# This setup hook makes the fixup phase to repack all java archives in a
+# deterministic fashion. The most important change being done is the resetting
+# of the modification times of the archive entries
+
+fixupOutputHooks+=('stripJavaArchivesIn $prefix')
+
+stripJavaArchivesIn() {
+    local dir="$1"
+    echo "stripping java archives in $dir"
+    find $dir -type f -regextype posix-egrep -regex ".*\.(jar|war|hpi|apk)$" -print0 |
+    while IFS= read -rd '' f; do
+        echo "stripping java archive $f"
+        strip-nondeterminism --type jar "$f"
+    done
+}
+
diff --git a/nixpkgs/pkgs/build-support/singularity-tools/default.nix b/nixpkgs/pkgs/build-support/singularity-tools/default.nix
index 8d7ad9e742a1..c9e53a4cb706 100644
--- a/nixpkgs/pkgs/build-support/singularity-tools/default.nix
+++ b/nixpkgs/pkgs/build-support/singularity-tools/default.nix
@@ -4,7 +4,7 @@
 , storeDir ? builtins.storeDir
 , writeScript
 , singularity
-, writeReferencesToFile
+, writeClosure
 , bash
 , vmTools
 , gawk
@@ -50,18 +50,13 @@ rec {
     }:
     let
       projectName = singularity.projectName or "singularity";
-      layer = mkLayer {
-        inherit name;
-        contents = contents ++ [ bash runScriptFile ];
-        inherit projectName;
-      };
       runAsRootFile = shellScript "run-as-root.sh" runAsRoot;
       runScriptFile = shellScript "run-script.sh" runScript;
       result = vmTools.runInLinuxVM (
         runCommand "${projectName}-image-${name}.img"
           {
             buildInputs = [ singularity e2fsprogs util-linux gawk ];
-            layerClosure = writeReferencesToFile layer;
+            layerClosure = writeClosure contents;
             preVM = vmTools.createEmptyImage {
               size = diskSize;
               fullName = "${projectName}-run-disk";
diff --git a/nixpkgs/pkgs/build-support/snap/default.nix b/nixpkgs/pkgs/build-support/snap/default.nix
deleted file mode 100644
index ba5271868911..000000000000
--- a/nixpkgs/pkgs/build-support/snap/default.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-{ callPackage, hello }:
-{
-  makeSnap = callPackage ./make-snap.nix { };
-}
diff --git a/nixpkgs/pkgs/build-support/snap/make-snap.nix b/nixpkgs/pkgs/build-support/snap/make-snap.nix
deleted file mode 100644
index cef7500bcbaf..000000000000
--- a/nixpkgs/pkgs/build-support/snap/make-snap.nix
+++ /dev/null
@@ -1,84 +0,0 @@
-{
-  runCommand, squashfsTools, closureInfo, lib, jq, writeText
-}:
-
-{
-  # The meta parameter is the contents of the `snap.yaml`, NOT the
-  # `snapcraft.yaml`.
-  #
-  # - `snap.yaml` is what is inside of the final Snap,
-  # - `snapcraft.yaml` is used by `snapcraft` to build snaps
-  #
-  # Since we skip the `snapcraft` tool, we skip the `snapcraft.yaml`
-  # file. For more information:
-  #
-  #   https://docs.snapcraft.io/snap-format
-  #
-  # Note: unsquashfs'ing an existing snap from the store can be helpful
-  # for determining what you you're missing.
-  #
-  meta
-}: let
-    snap_yaml = let
-      # Validate the snap's meta contains a name.
-      # Also: automatically set the `base` parameter and the layout for
-      # the `/nix` bind.
-      validate = { name, ... } @ args:
-        args // {
-          # Combine the provided arguments with the required options.
-
-          # base: built from https://github.com/NixOS/snapd-nix-base
-          # and published as The NixOS Foundation on the Snapcraft store.
-          base = "nix-base";
-          layout = (args.layout or {}) // {
-            # Bind mount the Snap's root nix directory to `/nix` in the
-            # execution environment's filesystem namespace.
-            "/nix".bind = "$SNAP/nix";
-          };
-        };
-    in writeText "snap.yaml"
-      (builtins.toJSON (validate meta));
-
-  # These are specifically required by snapd, so don't change them
-  # unless you've verified snapcraft / snapd can handle them. Best bet
-  # is to just mirror this list against how snapcraft creates images.
-  # from: https://github.com/snapcore/snapcraft/blob/b88e378148134383ffecf3658e3a940b67c9bcc9/snapcraft/internal/lifecycle/_packer.py#L96-L98
-  mksquashfs_args = [
-    "-noappend" "-comp" "xz" "-no-xattrs" "-no-fragments"
-
-    # Note: We want -all-root every time, since all the files are
-    # owned by root anyway. This is true for Nix, but not true for
-    # other builds.
-    # from: https://github.com/snapcore/snapcraft/blob/b88e378148134383ffecf3658e3a940b67c9bcc9/snapcraft/internal/lifecycle/_packer.py#L100
-    "-all-root"
-  ];
-
-in runCommand "squashfs.img" {
-  nativeBuildInputs = [ squashfsTools jq ];
-
-  closureInfo = closureInfo {
-    rootPaths = [ snap_yaml ];
-  };
-} ''
-  root=$PWD/root
-  mkdir $root
-
-  (
-    # Put the snap.yaml in to `/meta/snap.yaml`, setting the version
-    # to the hash part of the store path
-    mkdir $root/meta
-    version=$(echo $out | cut -d/ -f4 | cut -d- -f1)
-    cat ${snap_yaml} | jq  ". + { version: \"$version\" }" \
-      > $root/meta/snap.yaml
-  )
-
-  (
-    # Copy the store closure in to the root
-    mkdir -p $root/nix/store
-    cat $closureInfo/store-paths | xargs -I{} cp -r {} $root/nix/store/
-  )
-
-  # Generate the squashfs image.
-  mksquashfs $root $out \
-    ${lib.concatStringsSep " " mksquashfs_args}
-''
diff --git a/nixpkgs/pkgs/build-support/trivial-builders/default.nix b/nixpkgs/pkgs/build-support/trivial-builders/default.nix
index cecf3f5eae84..d7438923a54b 100644
--- a/nixpkgs/pkgs/build-support/trivial-builders/default.nix
+++ b/nixpkgs/pkgs/build-support/trivial-builders/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, stdenvNoCC, lndir, runtimeShell, shellcheck-minimal }:
+{ lib, config, stdenv, stdenvNoCC, jq, lndir, runtimeShell, shellcheck-minimal }:
 
 let
   inherit (lib)
@@ -9,55 +9,24 @@ in
 
 rec {
 
-  /*
-    Run the shell command `buildCommand` to produce a store path named `name`.
-
-    The attributes in `env` are added to the environment prior to running the command.
-    Environment variables set by `stdenv.mkDerivation` take precedence.
-
-    By default `runCommand` runs in a stdenv with no compiler environment.
-    `runCommandCC` uses the default stdenv, `pkgs.stdenv`.
-
-    Example:
-
-    ```nix
-    runCommand "name" {envVariable = true;} ''echo hello > $out'';
-    ```
-
-    ```nix
-    runCommandCC "name" {} ''gcc -o myfile myfile.c; cp myfile $out'';
-    ```
-
-    The `*Local` variants force a derivation to be built locally,
-    it is not substituted.
-
-    This is intended for very cheap commands (<1s execution time).
-    It saves on the network roundrip and can speed up a build.
-
-    It is the same as adding the special fields
-
-    ```nix
-    {
-      preferLocalBuild = true;
-      allowSubstitutes = false;
-    }
-    ```
-
-    to a derivation’s attributes.
-  */
+  # Docs in doc/build-helpers/trivial-build-helpers.chapter.md
+  # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-runCommand
   runCommand = name: env: runCommandWith {
     stdenv = stdenvNoCC;
     runLocal = false;
     inherit name;
     derivationArgs = env;
   };
+  # Docs in doc/build-helpers/trivial-build-helpers.chapter.md
+  # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-runCommandLocal
   runCommandLocal = name: env: runCommandWith {
     stdenv = stdenvNoCC;
     runLocal = true;
     inherit name;
     derivationArgs = env;
   };
-
+  # Docs in doc/build-helpers/trivial-build-helpers.chapter.md
+  # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-runCommandCC
   runCommandCC = name: env: runCommandWith {
     stdenv = stdenv;
     runLocal = false;
@@ -67,6 +36,7 @@ rec {
   # `runCommandCCLocal` left out on purpose.
   # We shouldn’t force the user to have a cc in scope.
 
+  # TODO: Move documentation for runCommandWith to the Nixpkgs manual
   /*
     Generalized version of the `runCommand`-variants
     which does customized behavior via a single
@@ -112,47 +82,18 @@ rec {
       // builtins.removeAttrs derivationArgs [ "passAsFile" ]);
 
 
-  /*
-    Writes a text file to the nix store.
-    The contents of text is added to the file in the store.
-
-    Example:
-
-
-    # Writes my-file to /nix/store/<store path>
-    writeTextFile {
-      name = "my-file";
-      text = ''
-        Contents of File
-      '';
-    }
-
-
-    See also the `writeText` helper function below.
-
-
-    # Writes executable my-file to /nix/store/<store path>/bin/my-file
-    writeTextFile {
-      name = "my-file";
-      text = ''
-        Contents of File
-      '';
-      executable = true;
-      destination = "/bin/my-file";
-    }
-
-
-   */
+  # Docs in doc/build-helpers/trivial-build-helpers.chapter.md
+  # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeTextFile
   writeTextFile =
-    { name # the name of the derivation
+    { name
     , text
-    , executable ? false # run chmod +x ?
-    , destination ? ""   # relative path appended to $out eg "/bin/foo"
-    , checkPhase ? ""    # syntax checks, e.g. for scripts
+    , executable ? false
+    , destination ? ""
+    , checkPhase ? ""
     , meta ? { }
     , allowSubstitutes ? false
     , preferLocalBuild ? true
-    , derivationArgs ? { } # Extra arguments to pass to `stdenv.mkDerivation`
+    , derivationArgs ? { }
     }:
     let
       matches = builtins.match "/bin/([^/]+)" destination;
@@ -240,8 +181,9 @@ rec {
       meta.mainProgram = name;
     };
 
+  # TODO: move parameter documentation to the Nixpkgs manual
   # See doc/build-helpers/trivial-build-helpers.chapter.md
-  # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing
+  # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeShellApplication
   writeShellApplication =
     {
       /*
@@ -357,6 +299,7 @@ rec {
     };
 
   # Create a C binary
+  # TODO: add to writers? pkgs/build-support/writers
   writeCBin = pname: code:
     runCommandCC pname
       {
@@ -377,7 +320,9 @@ rec {
         $CC -x c code.c -o "$n"
       '';
 
-
+  # TODO: deduplicate with documentation in doc/build-helpers/trivial-build-helpers.chapter.md
+  #       see also https://github.com/NixOS/nixpkgs/pull/249721
+  # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-concatText
   /* concat a list of files to the nix store.
     The contents of files are added to the file in the store.
 
@@ -426,7 +371,9 @@ rec {
         eval "$checkPhase"
       '';
 
-
+  # TODO: deduplicate with documentation in doc/build-helpers/trivial-build-helpers.chapter.md
+  #       see also https://github.com/NixOS/nixpkgs/pull/249721
+  # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-concatText
   /*
     Writes a text file to nix store with no optional parameters available.
 
@@ -440,6 +387,9 @@ rec {
   */
   concatText = name: files: concatTextFile { inherit name files; };
 
+  # TODO: deduplicate with documentation in doc/build-helpers/trivial-build-helpers.chapter.md
+  #       see also https://github.com/NixOS/nixpkgs/pull/249721
+  # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-concatText
   /*
     Writes a text file to nix store with and mark it as executable.
 
@@ -452,6 +402,10 @@ rec {
 
 
   /*
+    TODO: Deduplicate this documentation.
+    More docs in doc/build-helpers/trivial-build-helpers.chapter.md
+    See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-symlinkJoin
+
     Create a forest of symlinks to the files in `paths`.
 
     This creates a single derivation that replicates the directory structure
@@ -528,6 +482,7 @@ rec {
         ${postBuild}
       '';
 
+  # TODO: move linkFarm docs to the Nixpkgs manual
   /*
     Quickly create a set of symlinks to derivations.
 
@@ -584,6 +539,7 @@ rec {
       ${lib.concatStrings linkCommands}
     '';
 
+  # TODO: move linkFarmFromDrvs docs to the Nixpkgs manual
   /*
     Easily create a linkFarm from a set of derivations.
 
@@ -609,6 +565,7 @@ rec {
     let mkEntryFromDrv = drv: { name = drv.name; path = drv; };
     in linkFarm name (map mkEntryFromDrv drvs);
 
+  # TODO: move onlyBin docs to the Nixpkgs manual
   /*
     Produce a derivation that links to the target derivation's `/bin`,
     and *only* `/bin`.
@@ -623,7 +580,8 @@ rec {
   '';
 
 
-  # docs in doc/builders/special/makesetuphook.section.md
+  # Docs in doc/builders/special/makesetuphook.section.md
+  # See https://nixos.org/manual/nixpkgs/unstable/#sec-pkgs.makeSetupHook
   makeSetupHook =
     { name ? lib.warn "calling makeSetupHook without passing a name is deprecated." "hook"
     , deps ? [ ]
@@ -665,27 +623,28 @@ rec {
       '');
 
 
-  # Write the references (i.e. the runtime dependencies in the Nix store) of `path` to a file.
+  # Docs in doc/build-helpers/trivial-build-helpers.chapter.md
+  # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeReferencesToFile
+  # TODO: Convert to throw after Nixpkgs 24.05 branch-off.
+  writeReferencesToFile = (if config.allowAliases then lib.warn else throw)
+    "writeReferencesToFile is deprecated in favour of writeClosure"
+    (path: writeClosure [ path ]);
 
-  writeReferencesToFile = path: runCommand "runtime-deps"
+  # Docs in doc/build-helpers/trivial-build-helpers.chapter.md
+  # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeClosure
+  writeClosure = paths: runCommand "runtime-deps"
     {
-      exportReferencesGraph = [ "graph" path ];
+      # Get the cleaner exportReferencesGraph interface
+      __structuredAttrs = true;
+      exportReferencesGraph.graph = paths;
+      nativeBuildInputs = [ jq ];
     }
     ''
-      touch $out
-      while read path; do
-        echo $path >> $out
-        read dummy
-        read nrRefs
-        for ((i = 0; i < nrRefs; i++)); do read ref; done
-      done < graph
+      jq -r ".graph | map(.path) | sort | .[]" "$NIX_ATTRS_JSON_FILE" > "$out"
     '';
 
-  /*
-    Write the set of references to a file, that is, their immediate dependencies.
-
-    This produces the equivalent of `nix-store -q --references`.
-   */
+  # Docs in doc/build-helpers/trivial-build-helpers.chapter.md
+  # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeDirectReferencesToFile
   writeDirectReferencesToFile = path: runCommand "runtime-references"
     {
       exportReferencesGraph = [ "graph" path ];
@@ -710,7 +669,7 @@ rec {
       sort ./references >$out
     '';
 
-
+  # TODO: move writeStringReferencesToFile docs to the Nixpkgs manual
   /*
     Extract a string's references to derivations and paths (its
     context) and write them to a text file, removing the input string
@@ -793,21 +752,8 @@ rec {
       writeDirectReferencesToFile (writeText "string-file" string);
 
 
-  /* Print an error message if the file with the specified name and
-    hash doesn't exist in the Nix store. This function should only
-    be used by non-redistributable software with an unfree license
-    that we need to require the user to download manually. It produces
-    packages that cannot be built automatically.
-
-    Example:
-
-    requireFile {
-      name = "my-file";
-      url = "http://example.com/download/";
-      sha256 = "ffffffffffffffffffffffffffffffffffffffffffffffffffff";
-    }
-
-   */
+  # Docs in doc/build-helpers/fetchers.chapter.md
+  # See https://nixos.org/manual/nixpkgs/unstable/#requirefile
   requireFile =
     { name ? null
     , sha256 ? null
@@ -863,6 +809,7 @@ rec {
       };
 
 
+  # TODO: move copyPathToStore docs to the Nixpkgs manual
   /*
     Copy a path to the Nix store.
     Nix automatically copies files to the store before stringifying paths.
@@ -872,11 +819,13 @@ rec {
   copyPathToStore = builtins.filterSource (p: t: true);
 
 
+  # TODO: move copyPathsToStore docs to the Nixpkgs manual
   /*
     Copy a list of paths to the Nix store.
   */
   copyPathsToStore = builtins.map copyPathToStore;
 
+  # TODO: move applyPatches docs to the Nixpkgs manual
   /* Applies a list of patches to a source directory.
 
     Example:
@@ -922,6 +871,7 @@ rec {
       // (optionalAttrs (src?meta) { inherit (src) meta; })
       // (removeAttrs args [ "src" "name" "patches" "prePatch" "postPatch" ]));
 
+  # TODO: move docs to Nixpkgs manual
   /* An immutable file in the store with a length of 0 bytes. */
   emptyFile = runCommand "empty-file"
     {
@@ -931,6 +881,7 @@ rec {
       preferLocalBuild = true;
     } "touch $out";
 
+  # TODO: move docs to Nixpkgs manual
   /* An immutable empty directory in the store. */
   emptyDirectory = runCommand "empty-directory"
     {
diff --git a/nixpkgs/pkgs/build-support/trivial-builders/test/default.nix b/nixpkgs/pkgs/build-support/trivial-builders/test/default.nix
index 59dbba3f1841..f41372d922bb 100644
--- a/nixpkgs/pkgs/build-support/trivial-builders/test/default.nix
+++ b/nixpkgs/pkgs/build-support/trivial-builders/test/default.nix
@@ -26,6 +26,9 @@ recurseIntoAttrs {
     then references
     else {};
   writeCBin = callPackage ./writeCBin.nix {};
+  writeClosure-union = callPackage ./writeClosure-union.nix {
+    inherit (references) samples;
+  };
   writeShellApplication = callPackage ./writeShellApplication.nix {};
   writeScriptBin = callPackage ./writeScriptBin.nix {};
   writeShellScript = callPackage ./write-shell-script.nix {};
diff --git a/nixpkgs/pkgs/build-support/trivial-builders/test/references/default.nix b/nixpkgs/pkgs/build-support/trivial-builders/test/references/default.nix
index 3e21c905321e..928cc1d9461f 100644
--- a/nixpkgs/pkgs/build-support/trivial-builders/test/references/default.nix
+++ b/nixpkgs/pkgs/build-support/trivial-builders/test/references/default.nix
@@ -12,7 +12,7 @@
 , cleanSamples ? lib.filterAttrs (n: lib.isStringLike)
   # Test targets
 , writeDirectReferencesToFile
-, writeReferencesToFile
+, writeClosure
 }:
 
 # -------------------------------------------------------------------------- #
@@ -46,8 +46,9 @@ let
   samplesToString = attrs:
     lib.concatMapStringsSep " " (name: "[${name}]=${lib.escapeShellArg "${attrs.${name}}"}") (builtins.attrNames attrs);
 
-  references = lib.mapAttrs (n: v: writeReferencesToFile v) samples;
+  closures = lib.mapAttrs (n: v: writeClosure [ v ]) samples;
   directReferences = lib.mapAttrs (n: v: writeDirectReferencesToFile v) samples;
+  collectiveClosure = writeClosure (lib.attrValues samples);
 
   testScriptBin = stdenvNoCC.mkDerivation (finalAttrs: {
     name = "references-test";
@@ -61,8 +62,9 @@ let
       mkdir -p "$out/bin"
       substitute "$src" "$out/bin/${finalAttrs.meta.mainProgram}" \
         --replace "@SAMPLES@" ${lib.escapeShellArg (samplesToString samples)} \
-        --replace "@REFERENCES@" ${lib.escapeShellArg (samplesToString references)} \
-        --replace "@DIRECT_REFS@" ${lib.escapeShellArg (samplesToString directReferences)}
+        --replace "@CLOSURES@" ${lib.escapeShellArg (samplesToString closures)} \
+        --replace "@DIRECT_REFS@" ${lib.escapeShellArg (samplesToString directReferences)} \
+        --replace "@COLLECTIVE_CLOSURE@" ${lib.escapeShellArg collectiveClosure}
       runHook postInstall
       chmod +x "$out/bin/${finalAttrs.meta.mainProgram}"
     '';
@@ -79,8 +81,9 @@ let
 
     passthru = {
       inherit
+        collectiveClosure
         directReferences
-        references
+        closures
         samples
         ;
     };
@@ -109,8 +112,9 @@ testers.nixosTest {
     '';
   passthru = {
     inherit
+      collectiveClosure
       directReferences
-      references
+      closures
       samples
       testScriptBin
       ;
diff --git a/nixpkgs/pkgs/build-support/trivial-builders/test/references/references-test.sh b/nixpkgs/pkgs/build-support/trivial-builders/test/references/references-test.sh
index 1b8f8e1504ec..92e4467287ed 100755
--- a/nixpkgs/pkgs/build-support/trivial-builders/test/references/references-test.sh
+++ b/nixpkgs/pkgs/build-support/trivial-builders/test/references/references-test.sh
@@ -33,16 +33,17 @@ set -euo pipefail
 
 cd "$(dirname "${BASH_SOURCE[0]}")"  # nixpkgs root
 
-  # Injected by Nix (to avoid evaluating in a derivation)
-  # turn them into arrays
-  # shellcheck disable=SC2206 # deliberately unquoted
+  # Inject the path to compare from the Nix expression
+
+  # Associative Arrays
   declare -A samples=( @SAMPLES@ )
-  # shellcheck disable=SC2206 # deliberately unquoted
   declare -A directRefs=( @DIRECT_REFS@ )
-  # shellcheck disable=SC2206 # deliberately unquoted
-  declare -A references=( @REFERENCES@ )
+  declare -A closures=( @CLOSURES@ )
+
+  # Path string
+  collectiveClosure=@COLLECTIVE_CLOSURE@
 
-echo >&2 Testing direct references...
+echo >&2 Testing direct closures...
 for i in "${!samples[@]}"; do
   echo >&2 Checking "$i" "${samples[$i]}" "${directRefs[$i]}"
   diff -U3 \
@@ -52,10 +53,16 @@ done
 
 echo >&2 Testing closure...
 for i in "${!samples[@]}"; do
-  echo >&2 Checking "$i" "${samples[$i]}" "${references[$i]}"
+  echo >&2 Checking "$i" "${samples[$i]}" "${closures[$i]}"
   diff -U3 \
-    <(sort <"${references[$i]}") \
+    <(sort <"${closures[$i]}") \
     <(nix-store -q --requisites "${samples[$i]}" | sort)
 done
 
+echo >&2 Testing mixed closures...
+echo >&2 Checking all samples "(${samples[*]})" "$collectiveClosure"
+diff -U3 \
+  <(sort <"$collectiveClosure") \
+  <(nix-store -q --requisites "${samples[@]}" | sort)
+
 echo 'OK!'
diff --git a/nixpkgs/pkgs/build-support/trivial-builders/test/writeClosure-union.nix b/nixpkgs/pkgs/build-support/trivial-builders/test/writeClosure-union.nix
new file mode 100644
index 000000000000..92a2bf9f0988
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/trivial-builders/test/writeClosure-union.nix
@@ -0,0 +1,23 @@
+{ lib
+, runCommandLocal
+  # Test targets
+, writeClosure
+, samples
+}:
+runCommandLocal "test-trivial-builders-writeClosure-union" {
+  __structuredAttrs = true;
+  closures = lib.mapAttrs (n: v: writeClosure [ v ]) samples;
+  collectiveClosure = writeClosure (lib.attrValues samples);
+  inherit samples;
+  meta.maintainers = with lib.maintainers; [
+    ShamrockLee
+  ];
+} ''
+  set -eu -o pipefail
+  echo >&2 Testing mixed closures...
+  echo >&2 Checking all samples "(''${samples[*]})" "$collectiveClosure"
+  diff -U3 \
+    <(sort <"$collectiveClosure") \
+    <(cat "''${closures[@]}" | sort | uniq)
+  touch "$out"
+''
diff --git a/nixpkgs/pkgs/build-support/writers/data.nix b/nixpkgs/pkgs/build-support/writers/data.nix
index 02f08b9ca0b6..315150378e69 100644
--- a/nixpkgs/pkgs/build-support/writers/data.nix
+++ b/nixpkgs/pkgs/build-support/writers/data.nix
@@ -30,7 +30,7 @@ in
     ```
   */
   makeDataWriter = lib.warn "pkgs.writers.makeDataWriter is deprecated. Use pkgs.writeTextFile." ({ input ? lib.id, output ? "cp $inputPath $out" }: nameOrPath: data:
-    assert lib.or (types.path.check nameOrPath) (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null);
+    assert (types.path.check nameOrPath) || (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null);
     let
       name = last (builtins.split "/" nameOrPath);
     in
diff --git a/nixpkgs/pkgs/build-support/writers/scripts.nix b/nixpkgs/pkgs/build-support/writers/scripts.nix
index 8a23e5dd4a66..1dd25c500719 100644
--- a/nixpkgs/pkgs/build-support/writers/scripts.nix
+++ b/nixpkgs/pkgs/build-support/writers/scripts.nix
@@ -19,8 +19,8 @@ rec {
   #   writeBash = makeScriptWriter { interpreter = "${pkgs.bash}/bin/bash"; }
   #   makeScriptWriter { interpreter = "${pkgs.dash}/bin/dash"; } "hello" "echo hello world"
   makeScriptWriter = { interpreter, check ? "" }: nameOrPath: content:
-    assert lib.or (types.path.check nameOrPath) (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null);
-    assert lib.or (types.path.check content) (types.str.check content);
+    assert (types.path.check nameOrPath) || (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null);
+    assert (types.path.check content) || (types.str.check content);
     let
       name = last (builtins.split "/" nameOrPath);
     in
@@ -82,8 +82,8 @@ rec {
   # Examples:
   #   writeSimpleC = makeBinWriter { compileScript = name: "gcc -o $out $contentPath"; }
   makeBinWriter = { compileScript, strip ? true }: nameOrPath: content:
-    assert lib.or (types.path.check nameOrPath) (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null);
-    assert lib.or (types.path.check content) (types.str.check content);
+    assert (types.path.check nameOrPath) || (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null);
+    assert (types.path.check content) || (types.str.check content);
     let
       name = last (builtins.split "/" nameOrPath);
     in
diff --git a/nixpkgs/pkgs/development/libraries/a52dec/default.nix b/nixpkgs/pkgs/by-name/a5/a52dec/package.nix
index fdb309c634da..048b96787a79 100644
--- a/nixpkgs/pkgs/development/libraries/a52dec/default.nix
+++ b/nixpkgs/pkgs/by-name/a5/a52dec/package.nix
@@ -1,23 +1,31 @@
-{ lib, stdenv, fetchurl }:
+{
+  lib,
+  stdenv,
+  fetchFromGitLab,
+  autoreconfHook,
+}:
 
 stdenv.mkDerivation rec {
   pname = "a52dec";
-  version = "0.7.4";
+  version = "0.8.0";
 
-  src = fetchurl {
-    url = "https://liba52.sourceforge.io/files/${pname}-${version}.tar.gz";
-    sha256 = "oh1ySrOzkzMwGUNTaH34LEdbXfuZdRPu9MJd5shl7DM=";
+  src = fetchFromGitLab {
+    domain = "git.adelielinux.org";
+    owner = "community";
+    repo = "a52dec";
+    rev = "v${version}";
+    hash = "sha256-Z4riiwetJkhQYa+AD8qOiwB1+cuLbOyN/g7D8HM8Pkw=";
   };
 
+  nativeBuildInputs = [ autoreconfHook ];
+
   configureFlags = [
     "--enable-shared"
     # Define inline as __attribute__ ((__always_inline__))
     "ac_cv_c_inline=yes"
   ];
 
-  makeFlags = [
-    "AR=${stdenv.cc.targetPrefix}ar"
-  ];
+  makeFlags = [ "AR=${stdenv.cc.targetPrefix}ar" ];
 
   # fails 1 out of 1 tests with "BAD GLOBAL SYMBOLS" on i686
   # which can also be fixed with
@@ -28,7 +36,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "ATSC A/52 stream decoder";
     homepage = "https://liba52.sourceforge.io/";
-    platforms = platforms.unix;
     license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ wegank ];
+    mainProgram = "a52dec";
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/by-name/aa/aaaaxy/package.nix b/nixpkgs/pkgs/by-name/aa/aaaaxy/package.nix
index dd0b57a69176..3145758f50d6 100644
--- a/nixpkgs/pkgs/by-name/aa/aaaaxy/package.nix
+++ b/nixpkgs/pkgs/by-name/aa/aaaaxy/package.nix
@@ -114,6 +114,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A nonlinear 2D puzzle platformer taking place in impossible spaces";
+    mainProgram = "aaaaxy";
     homepage = "https://divverent.github.io/aaaaxy/";
     license = licenses.asl20;
     maintainers = with maintainers; [ Luflosi ];
diff --git a/nixpkgs/pkgs/by-name/ad/ad-miner/package.nix b/nixpkgs/pkgs/by-name/ad/ad-miner/package.nix
index 79c01a99ed95..43170f87474e 100644
--- a/nixpkgs/pkgs/by-name/ad/ad-miner/package.nix
+++ b/nixpkgs/pkgs/by-name/ad/ad-miner/package.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ad-miner";
-  version = "1.1.0";
+  version = "1.2.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Mazars-Tech";
     repo = "AD_Miner";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eAcnGS0HLrTqc/WVKNNwYA89GK233QZj4Gfggt4S8R8=";
+    hash = "sha256-o1RXuyX2dV0fQwXEeTgmeMYKXiKAqrl+fV8zi1J16Ic=";
   };
 
   # All requirements are pinned
diff --git a/nixpkgs/pkgs/by-name/ad/adafruit-nrfutil/package.nix b/nixpkgs/pkgs/by-name/ad/adafruit-nrfutil/package.nix
index a521154aa253..dbf90df66026 100644
--- a/nixpkgs/pkgs/by-name/ad/adafruit-nrfutil/package.nix
+++ b/nixpkgs/pkgs/by-name/ad/adafruit-nrfutil/package.nix
@@ -53,6 +53,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/adafruit/Adafruit_nRF52_nrfutil";
     description = "Modified version of Nordic's nrfutil 0.5.x for use with the Adafruit Feather nRF52";
+    mainProgram = "adafruit-nrfutil";
     license = licenses.bsd3;
     maintainers = with maintainers; [ stargate01 ];
   };
diff --git a/nixpkgs/pkgs/by-name/ad/adidnsdump/package.nix b/nixpkgs/pkgs/by-name/ad/adidnsdump/package.nix
new file mode 100644
index 000000000000..dc2268d892d9
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ad/adidnsdump/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "adidnsdump";
+  version = "1.3.1-unstable-2023-12-13";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "dirkjanm";
+    repo = "adidnsdump";
+    rev = "8bbb4b05b2d1b792f3c77ce0a4a762ab9e08727d";
+    hash = "sha256-dIbnUyV3gdWHHoyzD0ME2fXlMoiQkdrqQ7qQ6Ab6qs0=";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    impacket
+    ldap3
+  ];
+
+  pythonImportsCheck = [
+    "adidnsdump"
+  ];
+
+  meta = with lib; {
+    description = "Active Directory Integrated DNS dumping by any authenticated user";
+    homepage = "https://github.com/dirkjanm/adidnsdump";
+    changelog = "https://github.com/dirkjanm/adidnsdump/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "adidnsdump";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ai/airlift/package.nix b/nixpkgs/pkgs/by-name/ai/airlift/package.nix
index 9ab35cc2a462..5c1027d8537f 100644
--- a/nixpkgs/pkgs/by-name/ai/airlift/package.nix
+++ b/nixpkgs/pkgs/by-name/ai/airlift/package.nix
@@ -10,11 +10,11 @@ python3.pkgs.buildPythonApplication rec {
 
   pname = "airlift";
   pyproject = true;
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-1LE3fpfX4NExJdUdSjt4BXvxQTLJ8zrRkGHkxo/6Pb8=";
+    hash = "sha256-EAt3xxr9jtMaOugAV+ySjhorO8SrhBn00PZ84ZG80oI=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/by-name/ai/airscan/package.nix b/nixpkgs/pkgs/by-name/ai/airscan/package.nix
index 0859a6c21be8..e6001b44f3ef 100644
--- a/nixpkgs/pkgs/by-name/ai/airscan/package.nix
+++ b/nixpkgs/pkgs/by-name/ai/airscan/package.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Package to scan paper documents using the Apple AirScan (eSCL) protocol";
+    mainProgram = "airscan1";
     homepage = "https://github.com/stapelberg/airscan";
     changelog = "https://github.com/stapelberg/airscan/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/by-name/al/alephone-apotheosis-x/package.nix b/nixpkgs/pkgs/by-name/al/alephone-apotheosis-x/package.nix
index 16bed9fad97e..566b98f9e856 100644
--- a/nixpkgs/pkgs/by-name/al/alephone-apotheosis-x/package.nix
+++ b/nixpkgs/pkgs/by-name/al/alephone-apotheosis-x/package.nix
@@ -1,4 +1,4 @@
-{ alephone, requireFile }:
+{ lib, alephone, requireFile }:
 
 alephone.makeWrapper rec {
   pname = "apotheosis-x";
@@ -16,5 +16,6 @@ alephone.makeWrapper rec {
   meta = {
     description = "Total conversion for Marathon Infinity running on the Aleph One engine";
     homepage = "https://simplici7y.com/items/apotheosis-x-5";
+    license = lib.licenses.unfree;
   };
 }
diff --git a/nixpkgs/pkgs/by-name/al/alephone/package.nix b/nixpkgs/pkgs/by-name/al/alephone/package.nix
index 44349b7621e5..5ee1ef50a76b 100644
--- a/nixpkgs/pkgs/by-name/al/alephone/package.nix
+++ b/nixpkgs/pkgs/by-name/al/alephone/package.nix
@@ -84,6 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     description =
       "Aleph One is the open source continuation of Bungie’s Marathon 2 game engine";
+    mainProgram = "alephone";
     homepage = "https://alephone.lhowon.org/";
     license = [ lib.licenses.gpl3 ];
     maintainers = with lib.maintainers; [ ehmry ];
diff --git a/nixpkgs/pkgs/by-name/al/alsa-lib-with-plugins/package.nix b/nixpkgs/pkgs/by-name/al/alsa-lib-with-plugins/package.nix
index 4388884f75a6..63ffa5550c44 100644
--- a/nixpkgs/pkgs/by-name/al/alsa-lib-with-plugins/package.nix
+++ b/nixpkgs/pkgs/by-name/al/alsa-lib-with-plugins/package.nix
@@ -12,6 +12,7 @@ in
 runCommand "${alsa-lib.pname}-${alsa-lib.version}" {
   meta = with lib; {
     description = "wrapper to ease access to ALSA plugins";
+    mainProgram = "aserver";
     platforms = platforms.linux;
     maintainers = with maintainers; [ gm6k ];
   };
diff --git a/nixpkgs/pkgs/by-name/al/alsa-lib/package.nix b/nixpkgs/pkgs/by-name/al/alsa-lib/package.nix
index f22f68d19cf8..50f40cd0686c 100644
--- a/nixpkgs/pkgs/by-name/al/alsa-lib/package.nix
+++ b/nixpkgs/pkgs/by-name/al/alsa-lib/package.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "http://www.alsa-project.org/";
     description = "ALSA, the Advanced Linux Sound Architecture libraries";
+    mainProgram = "aserver";
 
     longDescription = ''
       The Advanced Linux Sound Architecture (ALSA) provides audio and
diff --git a/nixpkgs/pkgs/by-name/al/alsa-oss/package.nix b/nixpkgs/pkgs/by-name/al/alsa-oss/package.nix
index f600b52c5f3a..71c53580c286 100644
--- a/nixpkgs/pkgs/by-name/al/alsa-oss/package.nix
+++ b/nixpkgs/pkgs/by-name/al/alsa-oss/package.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.alsa-project.org/";
     description = "ALSA, the Advanced Linux Sound Architecture alsa-oss emulation";
+    mainProgram = "aoss";
 
     longDescription = ''
       The Advanced Linux Sound Architecture (ALSA) provides audio and
diff --git a/nixpkgs/pkgs/by-name/al/alt-tab-macos/package.nix b/nixpkgs/pkgs/by-name/al/alt-tab-macos/package.nix
index d63dd91c05db..98b2d3da2d25 100644
--- a/nixpkgs/pkgs/by-name/al/alt-tab-macos/package.nix
+++ b/nixpkgs/pkgs/by-name/al/alt-tab-macos/package.nix
@@ -6,11 +6,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "alt-tab-macos";
-  version = "6.61.0";
+  version = "6.66.0";
 
   src = fetchurl {
     url = "https://github.com/lwouis/alt-tab-macos/releases/download/v${finalAttrs.version}/AltTab-${finalAttrs.version}.zip";
-    hash = "sha256-crmeYVeSmu5avNSd3dCbEeGnuqonh1HC5NnEOz8OB2U=";
+    hash = "sha256-mQ4tS9htL+X4lXqSe3L+mnwgVnHb3Zxyz6dgzmYHY9w=";
   };
 
   sourceRoot = ".";
diff --git a/nixpkgs/pkgs/by-name/am/amazon-ssm-agent/package.nix b/nixpkgs/pkgs/by-name/am/amazon-ssm-agent/package.nix
index 147c811701e0..a4b76495c2ed 100644
--- a/nixpkgs/pkgs/by-name/am/amazon-ssm-agent/package.nix
+++ b/nixpkgs/pkgs/by-name/am/amazon-ssm-agent/package.nix
@@ -42,13 +42,13 @@ let
 in
 buildGoModule rec {
   pname = "amazon-ssm-agent";
-  version = "3.3.40.0";
+  version = "3.3.131.0";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "amazon-ssm-agent";
     rev = "refs/tags/${version}";
-    hash = "sha256-o1THIj0QAafqhbFoZKVZXWiAEcaYB+xP5Y2e45D/6Xg=";
+    hash = "sha256-fYFY5HQcArSDdh1qtIo4OzeLt+mIlbwlSr4O1py3MAk=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix b/nixpkgs/pkgs/by-name/am/amfora/package.nix
index 7fd29f1a3942..340a7d906650 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix
+++ b/nixpkgs/pkgs/by-name/am/amfora/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "amfora";
-  version = "1.9.2";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "makeworld-the-better-one";
     repo = "amfora";
     rev = "v${version}";
-    sha256 = "sha256-93xNzYPoy8VsbY2JyvDXt4J/gIbI2wzrCD83JUaP150=";
+    sha256 = "sha256-KOuKgxH3n4rdF+oj/TwEcRqX1sn4A9e23FNwQMhMVO4=";
   };
 
-  vendorHash = "sha256-XtiGj2Tr6sSBduIjBspeZpYaSTd6x6EVf3VEVMXDAD0=";
+  vendorHash = "sha256-T/hnlQMDOZV+QGl7xp29sBGfb4VXcXqN6PDoBFdpp4M=";
 
   postInstall = lib.optionalString (!stdenv.isDarwin) ''
     sed -i "s:amfora:$out/bin/amfora:" amfora.desktop
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A fancy terminal browser for the Gemini protocol";
+    mainProgram = "amfora";
     homepage = "https://github.com/makeworld-the-better-one/amfora";
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ deifactor ];
diff --git a/nixpkgs/pkgs/by-name/am/amphetype/package.nix b/nixpkgs/pkgs/by-name/am/amphetype/package.nix
index 0b47515c3dfe..1db7bb9a9e66 100644
--- a/nixpkgs/pkgs/by-name/am/amphetype/package.nix
+++ b/nixpkgs/pkgs/by-name/am/amphetype/package.nix
@@ -38,6 +38,7 @@ in python3Packages.buildPythonApplication {
 
   meta = with lib; {
     inherit description;
+    mainProgram = "amphetype";
     homepage = "https://gitlab.com/franksh/amphetype";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ rycee ];
diff --git a/nixpkgs/pkgs/by-name/an/anytype/package.nix b/nixpkgs/pkgs/by-name/an/anytype/package.nix
index d65c2f38e676..85f9135f2c20 100644
--- a/nixpkgs/pkgs/by-name/an/anytype/package.nix
+++ b/nixpkgs/pkgs/by-name/an/anytype/package.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "anytype";
-  version = "0.38.0";
+  version = "0.39.0";
   name = "Anytype-${version}";
   src = fetchurl {
     url = "https://github.com/anyproto/anytype-ts/releases/download/v${version}/${name}.AppImage";
     name = "Anytype-${version}.AppImage";
-    hash = "sha256-tcAOj7omrhyyG8elnAvbj/FtYaYOBeBkclpPHhSoass=";
+    hash = "sha256-Sgrgwp8yZGMLq25tHuoQquNjHTEbRPmFqzpMHnjq7oI=";
   };
   appimageContents = appimageTools.extractType2 { inherit name src; };
 in appimageTools.wrapType2 {
diff --git a/nixpkgs/pkgs/by-name/ap/apt/package.nix b/nixpkgs/pkgs/by-name/ap/apt/package.nix
index d58644b935d8..230e82e28a74 100644
--- a/nixpkgs/pkgs/by-name/ap/apt/package.nix
+++ b/nixpkgs/pkgs/by-name/ap/apt/package.nix
@@ -33,11 +33,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "apt";
-  version = "2.7.13";
+  version = "2.7.14";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/a/apt/apt_${finalAttrs.version}.tar.xz";
-    hash = "sha256-xCq1XpHXvuX8v3/4w1hHFMusqgNl8JHn5gT3+Ek8fjU=";
+    hash = "sha256-egF4PwW32Q82rqeHHMBnV0ma6K3pM0l6rrbFCCdOc1g=";
   };
 
   # cycle detection; lib can't be split
diff --git a/nixpkgs/pkgs/by-name/ar/arrpc/package.nix b/nixpkgs/pkgs/by-name/ar/arrpc/package.nix
index b103718bb357..aefee98b0eac 100644
--- a/nixpkgs/pkgs/by-name/ar/arrpc/package.nix
+++ b/nixpkgs/pkgs/by-name/ar/arrpc/package.nix
@@ -3,15 +3,15 @@
 , fetchFromGitHub
 }: buildNpmPackage rec {
   pname = "arrpc";
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = "OpenAsar";
     repo = "arrpc";
     # Release commits are not tagged
     # release: 3.3.0
-    rev = "c6e23e7eb733ad396d3eebc328404cc656fed581";
-    hash = "sha256-OeEFNbmGp5SWVdJJwXZUkkNrei9jyuPc+4E960l8VRA=";
+    rev = "b4796fffe3bf1b1361cc4781024349f7a4f9400e";
+    hash = "sha256-iEfV85tRl2KyjodoaSxVHiqweBpLeiCAYWc8+afl/sA=";
   };
 
   npmDepsHash = "sha256-YlSUGncpY0MyTiCfZcPsfcNx3fR+SCtkOFWbjOPLUzk=";
diff --git a/nixpkgs/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix b/nixpkgs/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix
index bb0b1c6c4034..bae622f00fd2 100644
--- a/nixpkgs/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix
+++ b/nixpkgs/pkgs/by-name/ar/arxiv-latex-cleaner/package.nix
@@ -5,13 +5,13 @@
 }:
 python3Packages.buildPythonApplication rec {
   pname = "arxiv-latex-cleaner";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchFromGitHub {
     owner = "google-research";
     repo = "arxiv-latex-cleaner";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Dr0GyivoPjQwVYzvN1JIWhuLz60TQtz4MBB8n1hm6Lo=";
+    hash = "sha256-Yxp8XtlISVZfEjCEJ/EXsIGMCHDPOwPcjkJxECeXvYk=";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -30,6 +30,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/google-research/arxiv-latex-cleaner";
     description = "Easily clean the LaTeX code of your paper to submit to arXiv";
+    mainProgram = "arxiv_latex_cleaner";
     license = licenses.asl20;
     maintainers = with maintainers; [ arkivm ];
   };
diff --git a/nixpkgs/pkgs/by-name/as/asciiquarium-transparent/package.nix b/nixpkgs/pkgs/by-name/as/asciiquarium-transparent/package.nix
index 2472d5015daf..b0b476e12bd9 100644
--- a/nixpkgs/pkgs/by-name/as/asciiquarium-transparent/package.nix
+++ b/nixpkgs/pkgs/by-name/as/asciiquarium-transparent/package.nix
@@ -3,32 +3,35 @@
   stdenv,
   fetchFromGitHub,
   makeWrapper,
-  perlPackages,
+  perl,
 }:
-stdenv.mkDerivation {
+stdenv.mkDerivation (finalAttrs: {
   pname = "asciiquarium-transparent";
-  version = "unstable-2023-02-19";
+  version = "1.3";
+
   src = fetchFromGitHub {
     owner = "nothub";
     repo = "asciiquarium";
-    rev = "653cd99a611080c776d18fc7991ae5dd924c72ce";
-    hash = "sha256-72LRFydbObFDXJllmlRjr5O8qjDqtlp3JunE3kwb5aU=";
+    rev = "${finalAttrs.version}";
+    hash = "sha256-zQyVIfwmhF3WsCeIZLwjDufvKzAfjLxaK2s7WTedqCg=";
   };
-  nativeBuildInputs = [makeWrapper];
-  buildInputs = [perlPackages.perl];
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl ];
   installPhase = ''
     runHook preInstall
-    mkdir -p $out/bin
-    cp asciiquarium $out/bin/asciiquarium
-    wrapProgram $out/bin/asciiquarium --set PERL5LIB ${perlPackages.makeFullPerlPath [perlPackages.TermAnimation]}
+    install -Dm555 asciiquarium -t $out/bin
+    wrapProgram $out/bin/asciiquarium \
+      --set PERL5LIB ${with perl.pkgs; makeFullPerlPath [ TermAnimation ]}
     runHook postInstall
   '';
-  meta = with lib; {
+
+  meta = {
     description = "An aquarium/sea animation in ASCII art (with option of transparent background)";
-    mainProgram = "asciiquarium";
     homepage = "https://github.com/nothub/asciiquarium";
-    license = with licenses; [gpl2Only];
-    platforms = platforms.unix;
-    maintainers = with maintainers; [quantenzitrone];
+    license = lib.licenses.gpl2Only;
+    mainProgram = "asciiquarium";
+    maintainers = with lib.maintainers; [ quantenzitrone ];
+    platforms = perl.meta.platforms;
   };
-}
+})
diff --git a/nixpkgs/pkgs/applications/networking/asn/default.nix b/nixpkgs/pkgs/by-name/as/asn/package.nix
index 6a8ec939cb33..6a8ec939cb33 100644
--- a/nixpkgs/pkgs/applications/networking/asn/default.nix
+++ b/nixpkgs/pkgs/by-name/as/asn/package.nix
diff --git a/nixpkgs/pkgs/by-name/as/ast-grep/package.nix b/nixpkgs/pkgs/by-name/as/ast-grep/package.nix
index 9a80ef6751f2..3334e7128bd4 100644
--- a/nixpkgs/pkgs/by-name/as/ast-grep/package.nix
+++ b/nixpkgs/pkgs/by-name/as/ast-grep/package.nix
@@ -2,31 +2,36 @@
 , rustPlatform
 , fetchFromGitHub
 , stdenv
+, installShellFiles
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "ast-grep";
-  version = "0.19.3";
+  version = "0.19.4";
 
   src = fetchFromGitHub {
     owner = "ast-grep";
     repo = "ast-grep";
     rev = version;
-    hash = "sha256-nqKDBRH2/YsSmirxJ84BgUTLfgPzZ/EQxqy6Fa7Mfxs=";
+    hash = "sha256-hKqj3LVu/3ndGoZQYyH1yCm5vF0/Ck5bkTKjLIkcUys=";
   };
 
-  cargoHash = "sha256-48ZVbRJkpMO+kJE5Kz96McjXhMtu4TzzjfyYdggNWkQ=";
+  cargoHash = "sha256-Fli97ANWHZvvBC6hImymELkpBqqrAOm006LROj3R3sM=";
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
+  nativeBuildInputs = [ installShellFiles ];
 
   # error: linker `aarch64-linux-gnu-gcc` not found
   postPatch = ''
     rm .cargo/config.toml
   '';
 
+  postInstall = ''
+    installShellCompletion --cmd sg \
+      --bash <($out/bin/sg completions bash) \
+      --fish <($out/bin/sg completions fish) \
+      --zsh <($out/bin/sg completions zsh)
+  '';
+
   checkFlags = [
     # disable flaky test
     "--skip=test::test_load_parser_mac"
diff --git a/nixpkgs/pkgs/by-name/at/ataripp/package.nix b/nixpkgs/pkgs/by-name/at/ataripp/package.nix
index 86dc7b0bc0f4..303a7c47c4d2 100644
--- a/nixpkgs/pkgs/by-name/at/ataripp/package.nix
+++ b/nixpkgs/pkgs/by-name/at/ataripp/package.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "http://www.xl-project.com/";
     description = "An enhanced, cycle-accurated Atari emulator";
+    mainProgram = "atari++";
     longDescription = ''
       The Atari++ Emulator is a Unix based emulator of the Atari eight bit
       computers, namely the Atari 400 and 800, the Atari 400XL, 800XL and 130XE,
diff --git a/nixpkgs/pkgs/by-name/at/atuin/package.nix b/nixpkgs/pkgs/by-name/at/atuin/package.nix
index 7f4321233125..3b8f6db5d6f2 100644
--- a/nixpkgs/pkgs/by-name/at/atuin/package.nix
+++ b/nixpkgs/pkgs/by-name/at/atuin/package.nix
@@ -10,20 +10,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "atuin";
-  version = "18.0.2";
+  version = "18.1.0";
 
   src = fetchFromGitHub {
     owner = "atuinsh";
     repo = "atuin";
     rev = "v${version}";
-    hash = "sha256-1ZNp6e2ZjVRU0w9m8YDWOHApu8vRYlcg6MJw03ZV49M=";
+    hash = "sha256-ddj8vHFTRBzeueSvY9kS1ZIcAID8k3MXrQkUVt04rQg=";
   };
 
   # TODO: unify this to one hash because updater do not support this
   cargoHash =
     if stdenv.isLinux
-    then "sha256-1yGv6Tmp7QhxIu3GNyRzK1i9Ghcil30+e8gTvyeKiZs="
-    else "sha256-+QdtQuXTk7Aw7xwelVDp/0T7FAYOnhDqSjazGemzSLw=";
+    then "sha256-LKHBXm9ZThX96JjxJb8d7cRdhWL1t/3aG3Qq1TYBC74="
+    else "sha256-RSkC062XB5zy3lmI0OQhJfJ6FqFWXhpMPNIIqbrrlso=";
 
   # atuin's default features include 'check-updates', which do not make sense
   # for distribution builds. List all other default features.
@@ -36,9 +36,9 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [
     libiconv
-    darwin.apple_sdk.frameworks.AppKit
-    darwin.apple_sdk.frameworks.Security
-    darwin.apple_sdk.frameworks.SystemConfiguration
+    darwin.apple_sdk_11_0.frameworks.AppKit
+    darwin.apple_sdk_11_0.frameworks.Security
+    darwin.apple_sdk_11_0.frameworks.SystemConfiguration
   ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/by-name/au/audiness/package.nix b/nixpkgs/pkgs/by-name/au/audiness/package.nix
index 28ab75b6dd79..1909d5411e62 100644
--- a/nixpkgs/pkgs/by-name/au/audiness/package.nix
+++ b/nixpkgs/pkgs/by-name/au/audiness/package.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "audiness";
-  version = "0.3.0";
+  version = "0.3.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "audiusGmbH";
     repo = "audiness";
     rev = "refs/tags/${version}";
-    hash = "sha256-PkzYsfEhwrMoB+a2eJMmt/PRCbjASQRm38reA8PP4aI=";
+    hash = "sha256-r+xWwXRKuTp5ifUUlF1K6BIVWh67hNLMBKBB7wnLLAM=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/nixpkgs/pkgs/by-name/au/audio-sharing/package.nix b/nixpkgs/pkgs/by-name/au/audio-sharing/package.nix
index f65ffbc434de..4fbf8a54036f 100644
--- a/nixpkgs/pkgs/by-name/au/audio-sharing/package.nix
+++ b/nixpkgs/pkgs/by-name/au/audio-sharing/package.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/World/AudioSharing";
     description = "Automatically share the current audio playback in the form of an RTSP stream";
+    mainProgram = "audio-sharing";
     maintainers = with maintainers; [ benediktbroich ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/au/audiobookshelf/source.json b/nixpkgs/pkgs/by-name/au/audiobookshelf/source.json
index 7dced826db6d..115584aa553f 100644
--- a/nixpkgs/pkgs/by-name/au/audiobookshelf/source.json
+++ b/nixpkgs/pkgs/by-name/au/audiobookshelf/source.json
@@ -1,9 +1,9 @@
 {
   "owner": "advplyr",
   "repo": "audiobookshelf",
-  "rev": "85fecbd1b9fc424d8bfd1b63cbae45b8b23a7d34",
-  "hash": "sha256-GWaaoVa1UJptbYAZ99LbrzfKEksSqK0GSsl3Vh2xKKs=",
-  "version": "2.8.0",
-  "depsHash": "sha256-vznd+ZKn0nx0Q7/lsMfWRUZUsK2LtxQor/3C4fQc0Ss=",
-  "clientDepsHash": "sha256-oqINZO4v5WeRRiLQnnChrnK8VeIzLg1MRhG/gEjkv58="
+  "rev": "166454ef43e3cdb42c644cdccdacddd3a880cd89",
+  "hash": "sha256-QrGzlSGK7WDlRemS13CmHdg563HFv9QhOpCF+XRxXsg=",
+  "version": "2.8.1",
+  "depsHash": "sha256-CzlwpgSgsQZGuRWTA/IkCyaryCSurH74WR5Rhm5faEk=",
+  "clientDepsHash": "sha256-s7/Rlj3DrYjUkxAN82bTpWe+D4HdVOc1mrqKgqcJuI4="
 }
diff --git a/nixpkgs/pkgs/by-name/au/audion/package.nix b/nixpkgs/pkgs/by-name/au/audion/package.nix
new file mode 100644
index 000000000000..0f9b05c527ac
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/au/audion/package.nix
@@ -0,0 +1,27 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "audion";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "audiusGmbH";
+    repo = "audion";
+    rev = "refs/tags/${version}";
+    hash = "sha256-j8sQCeHpxrpzyY75DypWI9z+JBWq7aaaXPnZh7ksRjc=";
+  };
+
+  cargoHash = "sha256-/x2gjLz73uPY+ouQOxLN2ViET+V/s9jgkgw97yzVj24=";
+
+  meta = with lib; {
+    description = "Ping the host continuously and write results to a file";
+    homepage = "https://github.com/audiusGmbH/audion";
+    changelog = "https://github.com/audiusGmbH/audion/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "audion";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/au/authentik/ldap.nix b/nixpkgs/pkgs/by-name/au/authentik/ldap.nix
index 1745e5556d3c..bff1c1584bbb 100644
--- a/nixpkgs/pkgs/by-name/au/authentik/ldap.nix
+++ b/nixpkgs/pkgs/by-name/au/authentik/ldap.nix
@@ -4,7 +4,7 @@ buildGoModule {
   pname = "authentik-ldap-outpost";
   inherit (authentik) version src;
 
-  vendorHash = "sha256-74rSuZrO5c7mjhHh0iQlJEkOslsFrcDb1aRXXC4RsUM=";
+  vendorHash = "sha256-UIJBCTq7AJGUDIlZtJaWCovyxlMPzj2BCJQqthybEz4=";
 
   CGO_ENABLED = 0;
 
diff --git a/nixpkgs/pkgs/by-name/au/authentik/package.nix b/nixpkgs/pkgs/by-name/au/authentik/package.nix
index 454a994e314b..9f8299e985ce 100644
--- a/nixpkgs/pkgs/by-name/au/authentik/package.nix
+++ b/nixpkgs/pkgs/by-name/au/authentik/package.nix
@@ -11,13 +11,13 @@
 , makeWrapper }:
 
 let
-  version = "2023.10.7";
+  version = "2024.2.2";
 
   src = fetchFromGitHub {
     owner = "goauthentik";
     repo = "authentik";
     rev = "version/${version}";
-    hash = "sha256-+1IdXRt28UZ2KTa0zsmjneNUOcutP99UUwqcYyVyqTI=";
+    hash = "sha256-2B1RgKY5tpDBdzguEyWqzg15w5x/dLS2ffjbnxbpINs=";
   };
 
   meta = with lib; {
@@ -32,7 +32,7 @@ let
   website = buildNpmPackage {
     pname = "authentik-website";
     inherit version src meta;
-    npmDepsHash = "sha256-4dgFxEvMnp+35nSQNsEchtN1qoS5X2KzEbLPvMnyR+k=";
+    npmDepsHash = "sha256-paACBXG7hEQSLekxCvxNns2Tg9rN3DUgz6o3A/lAhA8=";
 
     NODE_ENV = "production";
     NODE_OPTIONS = "--openssl-legacy-provider";
@@ -82,7 +82,7 @@ let
       ln -s ${src}/website $out/
       ln -s ${clientapi} $out/web/node_modules/@goauthentik/api
     '';
-    npmDepsHash = "sha256-5aCKlArtoEijGqeYiY3zoV0Qo7/Xt5hSXbmy2uYZpok=";
+    npmDepsHash = "sha256-Xtzs91m+qu7jTwr0tMeS74gjlZs4vufGGlplPVf9yew=";
 
     postPatch = ''
       cd web
@@ -105,26 +105,68 @@ let
   python = python3.override {
     self = python;
     packageOverrides = final: prev: {
+      django-tenants = prev.buildPythonPackage rec {
+        pname = "django-tenants";
+        version = "unstable-2024-01-11";
+        src = fetchFromGitHub {
+          owner = "rissson";
+          repo = pname;
+          rev = "a7f37c53f62f355a00142473ff1e3451bb794eca";
+          hash = "sha256-YBT0kcCfETXZe0j7/f1YipNIuRrcppRVh1ecFS3cvNo=";
+        };
+        format = "setuptools";
+        doCheck = false; # Tests require postgres
+
+        propagatedBuildInputs = with prev; [
+          django
+          psycopg
+          gunicorn
+        ];
+      };
+
+      tenant-schemas-celery = prev.buildPythonPackage rec {
+        pname = "tenant-schemas-celery";
+        version = "2.2.0";
+        src = fetchFromGitHub {
+          owner = "maciej-gol";
+          repo = pname;
+          rev = version;
+          hash = "sha256-OpIJobjWZE5GQGnHADioeoJo3A6DAKh0HdO10k4rsX4=";
+        };
+        format = "setuptools";
+        doCheck = false;
+
+        propagatedBuildInputs = with prev; [
+          freezegun
+          more-itertools
+          psycopg2
+        ];
+      };
+
       authentik-django = prev.buildPythonPackage {
         pname = "authentik-django";
         inherit version src meta;
         pyproject = true;
 
         postPatch = ''
+          rm lifecycle/system_migrations/tenant_files.py
           substituteInPlace authentik/root/settings.py \
             --replace-fail 'Path(__file__).absolute().parent.parent.parent' "\"$out\""
           substituteInPlace authentik/lib/default.yml \
-            --replace-fail '/blueprints' "$out/blueprints"
+            --replace-fail '/blueprints' "$out/blueprints" \
+            --replace-fail './media' '/var/lib/authentik/media'
           substituteInPlace pyproject.toml \
             --replace-fail 'dumb-init = "*"' "" \
-            --replace-fail 'djangorestframework-guardian' 'djangorestframework-guardian2'
+            --replace-fail 'djangorestframework-guardian' 'djangorestframework-guardian2' \
+            --replace-fail 'version = "4.9.4"' 'version = "*"' \
+            --replace-fail 'version = "<2"' 'version = "*"'
           substituteInPlace authentik/stages/email/utils.py \
             --replace-fail 'web/' '${webui}/'
         '';
 
         nativeBuildInputs = [ prev.poetry-core ];
 
-        propagatedBuildInputs = with prev; [
+        propagatedBuildInputs = with final; [
           argon2-cffi
           celery
           channels
@@ -140,6 +182,8 @@ let
           django-model-utils
           django-prometheus
           django-redis
+          django-storages
+          django-tenants
           djangorestframework
           djangorestframework-guardian2
           docker
@@ -153,6 +197,7 @@ let
           kubernetes
           ldap3
           lxml
+          jsonpatch
           opencontainers
           packaging
           paramiko
@@ -164,8 +209,10 @@ let
           pyyaml
           requests-oauthlib
           sentry-sdk
+          service-identity
           structlog
           swagger-spec-validator
+          tenant-schemas-celery
           twilio
           twisted
           ua-parser
@@ -178,7 +225,6 @@ let
           wsproto
           xmlsec
           zxcvbn
-          jsonpatch
         ] ++ [
           codespell
         ];
@@ -212,7 +258,7 @@ let
 
     CGO_ENABLED = 0;
 
-    vendorHash = "sha256-74rSuZrO5c7mjhHh0iQlJEkOslsFrcDb1aRXXC4RsUM=";
+    vendorHash = "sha256-UIJBCTq7AJGUDIlZtJaWCovyxlMPzj2BCJQqthybEz4=";
 
     postInstall = ''
       mv $out/bin/server $out/bin/authentik
diff --git a/nixpkgs/pkgs/by-name/au/autobloody/package.nix b/nixpkgs/pkgs/by-name/au/autobloody/package.nix
new file mode 100644
index 000000000000..c55689350211
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/au/autobloody/package.nix
@@ -0,0 +1,46 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "autobloody";
+  version = "0.1.8";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "CravateRouge";
+    repo = "autobloody";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-0MwhdT9GYLcrdZSqszx1DC9lyz8K61lJZZCzeFfWB0E=";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    hatchling
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    bloodyad
+    neo4j
+  ];
+
+  # Tests require a test file which is not available in the current release
+  doCheck = false;
+
+  nativeCheckInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "autobloody"
+  ];
+
+  meta = with lib; {
+    description = "Tool to automatically exploit Active Directory privilege escalation paths";
+    homepage = "https://github.com/CravateRouge/autobloody";
+    changelog = "https://github.com/CravateRouge/autobloody/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "autobloody";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ba/backlight-auto/package.nix b/nixpkgs/pkgs/by-name/ba/backlight-auto/package.nix
index 5115ae229673..26869b5a20dd 100644
--- a/nixpkgs/pkgs/by-name/ba/backlight-auto/package.nix
+++ b/nixpkgs/pkgs/by-name/ba/backlight-auto/package.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Automatically set screen brightness with a webcam";
+    mainProgram = "backlight-auto";
     homepage = "https://len.falken.directory/backlight-auto.html";
     license = licenses.mit;
     maintainers = [ maintainers.lf- ];
diff --git a/nixpkgs/pkgs/by-name/ba/baresip/package.nix b/nixpkgs/pkgs/by-name/ba/baresip/package.nix
index 390c54e764f9..f63227c3292b 100644
--- a/nixpkgs/pkgs/by-name/ba/baresip/package.nix
+++ b/nixpkgs/pkgs/by-name/ba/baresip/package.nix
@@ -27,13 +27,13 @@
 , dbusSupport ? true
 }:
 stdenv.mkDerivation rec {
-  version = "3.9.0";
+  version = "3.10.1";
   pname = "baresip";
   src = fetchFromGitHub {
     owner = "baresip";
     repo = "baresip";
     rev = "v${version}";
-    hash = "sha256-AJCm823Fyu1n3gWw6wUfakM6YWwMtzQ84M0OKXZ4ThI=";
+    hash = "sha256-0huZP1hopHaN5R1Hki6YutpvoASfIHzHMl/Y4czHHMo=";
   };
   prePatch = lib.optionalString (!dbusSupport) ''
     substituteInPlace cmake/modules.cmake --replace 'list(APPEND MODULES ctrl_dbus)' ""
diff --git a/nixpkgs/pkgs/games/lgames/barrage/default.nix b/nixpkgs/pkgs/by-name/ba/barrage/package.nix
index 822ec04f1d45..a606d4f3dfdf 100644
--- a/nixpkgs/pkgs/games/lgames/barrage/default.nix
+++ b/nixpkgs/pkgs/by-name/ba/barrage/package.nix
@@ -1,16 +1,16 @@
 { lib
-, stdenv
-, fetchurl
 , SDL
 , SDL_mixer
+, fetchurl
+, stdenv
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "barrage";
   version = "1.0.7";
 
   src = fetchurl {
-    url = "mirror://sourceforge/lgames/${pname}-${version}.tar.gz";
+    url = "mirror://sourceforge/lgames/barrage-${finalAttrs.version}.tar.gz";
     hash = "sha256-cGYrG7A4Ffh51KyR+UpeWu7A40eqxI8g4LefBIs18kg=";
   };
 
@@ -21,12 +21,13 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
-  meta = with lib; {
+  meta = {
     homepage = "https://lgames.sourceforge.io/Barrage/";
     description = "A destructive action game";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ AndersonTorres ];
+    license = with lib.licenses; [ gpl2Plus ];
+    mainProgram = "barrage";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
     inherit (SDL.meta) platforms;
     broken = stdenv.isDarwin;
   };
-}
+})
diff --git a/nixpkgs/pkgs/by-name/ba/base16-shell-preview/package.nix b/nixpkgs/pkgs/by-name/ba/base16-shell-preview/package.nix
index bd1c8508023d..e047c7e88b21 100644
--- a/nixpkgs/pkgs/by-name/ba/base16-shell-preview/package.nix
+++ b/nixpkgs/pkgs/by-name/ba/base16-shell-preview/package.nix
@@ -23,6 +23,7 @@ python3Packages.buildPythonApplication {
   meta = {
     homepage = "https://github.com/nvllsvm/base16-shell-preview";
     description = "Browse and preview Base16 Shell themes in your terminal";
+    mainProgram = "base16-shell-preview";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ AndersonTorres ];
   };
diff --git a/nixpkgs/pkgs/by-name/be/bepass/package.nix b/nixpkgs/pkgs/by-name/be/bepass/package.nix
new file mode 100644
index 000000000000..9e74015f8d4c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/be/bepass/package.nix
@@ -0,0 +1,61 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, enableGUI ? false # upstream working in progress
+, pkg-config
+, glfw
+, xorg
+, libXcursor
+, libXrandr
+, libXinerama
+, xinput
+, libXi
+, libXxf86vm
+}:
+buildGoModule rec{
+  pname = "bepass";
+  version = "1.6.2";
+
+  src = fetchFromGitHub {
+    owner = "bepass-org";
+    repo = "bepass";
+    rev = "v${version}";
+    hash = "sha256-ruOhPWNs1WWM3r6X+6ch0HoDCu/a+IkBQiCr0Wh6yS8=";
+  };
+
+  vendorHash = "sha256-SiggDy6vc19yIw15g45yjl8gscE91zUoR6woECbAtR0=";
+
+  subPackages = [
+    "cmd/cli"
+  ];
+  proxyVendor = true;
+  nativeBuildInputs = lib.optionals enableGUI [ pkg-config ];
+  buildInputs = lib.optionals enableGUI [
+    glfw
+    xorg.libXft
+    libXcursor
+    libXrandr
+    libXinerama
+    libXi
+    xinput
+    libXxf86vm
+  ];
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  postInstall = ''
+    mv $out/bin/cli $out/bin/bepass
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/bepass-org/bepass";
+    description = "A simple DPI bypass tool written in go";
+    license = licenses.mit;
+    mainProgram = "bepass";
+    maintainers = with maintainers; [ oluceps ];
+    broken = enableGUI;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/be/betula/package.nix b/nixpkgs/pkgs/by-name/be/betula/package.nix
index b6ed66a4e690..1e2740095023 100644
--- a/nixpkgs/pkgs/by-name/be/betula/package.nix
+++ b/nixpkgs/pkgs/by-name/be/betula/package.nix
@@ -20,6 +20,7 @@
 
   meta = with lib; {
     description = "Single-user self-hosted bookmarking software";
+    mainProgram = "betula";
     homepage = "https://betula.mycorrhiza.wiki/";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ GoldsteinE ];
diff --git a/nixpkgs/pkgs/by-name/bi/bicep/deps.nix b/nixpkgs/pkgs/by-name/bi/bicep/deps.nix
new file mode 100644
index 000000000000..78b0b2c1b727
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bi/bicep/deps.nix
@@ -0,0 +1,318 @@
+# This file was automatically generated by passthru.fetch-deps.
+# Please dont edit it manually, your changes might get overwritten!
+
+{ fetchNuGet }: [
+  (fetchNuGet { pname = "Azure.Bicep.Internal.RoslynAnalyzers"; version = "0.1.38"; sha256 = "1b13vbl0y851nr7rfhyxc0djihxfr7xv010f9zvvbibyz5wqis7v"; })
+  (fetchNuGet { pname = "Azure.Bicep.Types"; version = "0.5.6"; sha256 = "0kzyy21jvhc6gy24w9sfb6ic0pg22j8y6s23q8ls0i15qf3rng77"; })
+  (fetchNuGet { pname = "Azure.Bicep.Types.Az"; version = "0.2.677"; sha256 = "1wgng31pfm272yipigjz24ky2qfrq7mfj9fx0wbyr3q8g6cascnp"; })
+  (fetchNuGet { pname = "Azure.Bicep.Types.K8s"; version = "0.1.626"; sha256 = "1c07igq6jqxkg9iln452fnng2n6ddd0008vb5lgbzdpgp1amz2ji"; })
+  (fetchNuGet { pname = "Azure.Containers.ContainerRegistry"; version = "1.1.1"; sha256 = "0hn6mq1bffcq7d5w4rj4ffdxb3grvymzrpyl1qrbxksqpfbd0bh4"; })
+  (fetchNuGet { pname = "Azure.Core"; version = "1.36.0"; sha256 = "14lsc6zik7s5by3gp86pf77wh58fcqrjy2xhx5p03gmhdn6iz2cn"; })
+  (fetchNuGet { pname = "Azure.Deployments.Core"; version = "1.0.1158"; sha256 = "07bjwmal3qy23axa9g0gsc5qdajypvbpys15k8y05gnflz85rqzy"; })
+  (fetchNuGet { pname = "Azure.Deployments.Expression"; version = "1.0.1158"; sha256 = "1kn515apm33fmrdz8v9y8ac2w83cbbvf74w2grrl1aimg5n4qjsb"; })
+  (fetchNuGet { pname = "Azure.Deployments.Internal.GenerateNotice"; version = "0.1.38"; sha256 = "00jzm0c1ch24mh50hqmzs2jxda929zg1j1dgnhs5gbsyk7zjlvrd"; })
+  (fetchNuGet { pname = "Azure.Deployments.Templates"; version = "1.0.1158"; sha256 = "1zww735mbw1jswd3l8m7y48giqkcxn9v1fy9g6kp3c4dr97519wq"; })
+  (fetchNuGet { pname = "Azure.Identity"; version = "1.10.4"; sha256 = "0w345hzp43wbs5f5qk1y7wmyp11cayphnycpflil5ayvvz2jjfn2"; })
+  (fetchNuGet { pname = "Azure.ResourceManager"; version = "1.9.0"; sha256 = "143rv7rq16q4b4fhh3yjjc5r4g226jhpl6ngwvr69kbbxhw0n618"; })
+  (fetchNuGet { pname = "Azure.ResourceManager.Resources"; version = "1.7.0"; sha256 = "1hjbb607fxb26c7bxx1lc3v50hxmv446klg7c1k89a7wkiqgvmh9"; })
+  (fetchNuGet { pname = "coverlet.collector"; version = "6.0.1"; sha256 = "12xiib5p8f4aj9gz0jn6s96lsa172qi92j46rrb39sidh0mbbdil"; })
+  (fetchNuGet { pname = "FluentAssertions"; version = "6.12.0"; sha256 = "04fhn67930zv3i0d8xbrbw5vwz99c83bbvgdwqiir55vw5xlys9c"; })
+  (fetchNuGet { pname = "IPNetwork2"; version = "2.6.598"; sha256 = "03nxkiwy1bxgpv5n1lfd06grdyjc10a3k9gyc04rhzysjsswiy0l"; })
+  (fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.3.0"; sha256 = "0vp4mpn6gfckn8grzjm1jxlbqiq2fglm2rk9wq787adw7rxs8k7w"; })
+  (fetchNuGet { pname = "Json.More.Net"; version = "1.8.0"; sha256 = "1jlcmgn3pw4jzk9ys6jhkbigfdn9rrrb0wb2v0yxi5wv82arviq5"; })
+  (fetchNuGet { pname = "Json.More.Net"; version = "1.9.2"; sha256 = "1w5xascr03iv7830vdrlpxjrxiabypaqkkcij118lfm41pqhw8b7"; })
+  (fetchNuGet { pname = "JsonPatch.Net"; version = "2.1.0"; sha256 = "0ckz04108p7j8gzqs61bkvlbxfbqvbr19aykmkbbw44inr9azxai"; })
+  (fetchNuGet { pname = "JsonPath.Net"; version = "0.7.0"; sha256 = "0lv9w9m8327hyjzqbl2mwv61zsimc8b114nc67jwv0lm9v29skm0"; })
+  (fetchNuGet { pname = "JsonPointer.Net"; version = "3.0.1"; sha256 = "109q63pdsxdiy4rwj4qm1rj1cadxhksw3ik1frsrn2clkpj4lwks"; })
+  (fetchNuGet { pname = "MessagePack"; version = "2.5.108"; sha256 = "0cnaz28lhrdmavnxjkakl9q8p2yv8mricvp1b0wxdfnz8v41gwzs"; })
+  (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.5.108"; sha256 = "0nb1fx8dwl7304kw0bc375bvlhb7pg351l4cl3vqqd7d8zqjwx5v"; })
+  (fetchNuGet { pname = "Microsoft.ApplicationInsights"; version = "2.21.0"; sha256 = "1q034jbqkxb8lddkd0ijp0wp0ymnnf3bg2mjpay027zv7jswnc4x"; })
+  (fetchNuGet { pname = "Microsoft.Automata.SRM"; version = "1.2.2"; sha256 = "0329j527pk3scfap9pjx8vi9n3g49wj1ydp98qb8ymrfm0m72mbi"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.1"; sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "5.0.0"; sha256 = "0cp5jbax2mf6xr3dqiljzlwi05fv6n9a35z337s92jcljiq674kf"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "7.0.0"; sha256 = "1waiggh3g1cclc81gmjrqbh128kwfjky3z79ma4bd2ms9pa3gvfm"; })
+  (fetchNuGet { pname = "Microsoft.Build.Tasks.Git"; version = "8.0.0"; sha256 = "0055f69q3hbagqp8gl3nk0vfn4qyqyxsxyy7pd0g7wm3z28byzmx"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; version = "3.3.4"; sha256 = "1vzrni7n94f17bzc13lrvcxvgspx9s25ap1p005z6i1ikx6wgx30"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.9.0"; sha256 = "1gljgi69k0fz8vy8bn6xlyxabj6q4vls2zza9wz7ng6ix3irm89r"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+  (fetchNuGet { pname = "Microsoft.Diagnostics.Tracing.EventRegister"; version = "1.1.28"; sha256 = "1lh0ifj9xndiqspmnj7x9lcz2c7kdhyjgcmk5wz2yn8gimg0xy03"; })
+  (fetchNuGet { pname = "Microsoft.Diagnostics.Tracing.TraceEvent"; version = "3.1.3"; sha256 = "1bappkn6vzaaq5yw9fzhds2gz557bhgmxvh38ifw6l39jkar2lii"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "8.0.0"; sha256 = "080kab87qgq2kh0ijry5kfdiq9afyzb8s0k3jqi5zbbi540yq4zl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "8.0.0"; sha256 = "1jlpa4ggl1gr5fs7fdcw04li3y3iy05w3klr9lrrlc7v8w76kq71"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "8.0.0"; sha256 = "1m0gawiz8f5hc3li9vd5psddlygwgkiw13d7div87kmkf4idza8r"; })
+  (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 = "8.0.0"; sha256 = "0i7qziz0iqmbk8zzln7kx9vd0lbx1x3va0yi3j1bgkjir13h78ps"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "8.0.0"; sha256 = "1zw0bpp5742jzx03wvqc8csnvsbgdqi0ls9jfc5i2vd3cl8b74pg"; })
+  (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.Logging"; version = "8.0.0"; sha256 = "0nppj34nmq25gnrg0wh1q22y4wdqbih4ax493f226azv8mkp9s1i"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "8.0.0"; sha256 = "1klcqhg3hk55hb6vmjiq2wgqidsl81aldw0li2z98lrwx26msrr6"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.ObjectPool"; version = "5.0.10"; sha256 = "07fk669pjydkcg6bxxv7aj548fzab4yb7ba8370d719lgi9y425l"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.0"; sha256 = "0p50qn6zhinzyhq9sy5svnmqqwhw2jajs2pbjh9sah504wjvhscz"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "8.0.0"; sha256 = "0aldaz5aapngchgdr7dax9jw5wy7k7hmjgjpfgfv1wfif27jlkqm"; })
+  (fetchNuGet { pname = "Microsoft.Graph.Bicep.Types"; version = "0.1.3-preview"; sha256 = "0y910m1gw4sn41qskhxf9lwhvqlg9wnpyj2frzj7nbgyxwdljrqk"; })
+  (fetchNuGet { pname = "Microsoft.Identity.Client"; version = "4.56.0"; sha256 = "0rwyj8qagx93ys67a8k878ib3zdcrjb3jrl0aif3i8a0knwpsxxx"; })
+  (fetchNuGet { pname = "Microsoft.Identity.Client.Extensions.Msal"; version = "4.56.0"; sha256 = "1pcq46kfk3b1yyqr1rlk7sxd69xg0l9hrmard5nvqd7kh287l08m"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.22.0"; sha256 = "06495i2i9cabys4s0dkaz0rby8k47gy627v9ivp7aa3k6xmypviz"; })
+  (fetchNuGet { pname = "Microsoft.NET.StringTools"; version = "17.4.0"; sha256 = "1smx30nq22plrn2mw4wb5vfgxk6hyx12b60c4wabmpnr81lq3nzv"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.9.0"; sha256 = "1lls1fly2gr1n9n1xyl9k33l2v4pwfmylyzkq8v4v5ldnwkl1zdb"; })
+  (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 = "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.PowerPlatform.ResourceStack"; version = "6.0.0.1485"; sha256 = "1dszc9fhg9xpp96gx5djg2azxvfb36551malysdgxvd2r23vvfwh"; })
+  (fetchNuGet { pname = "Microsoft.SourceLink.Common"; version = "8.0.0"; sha256 = "0xrr8yd34ij7dqnyddkp2awfmf9qn3c89xmw2f3npaa4wnajmx81"; })
+  (fetchNuGet { pname = "Microsoft.SourceLink.GitHub"; version = "8.0.0"; sha256 = "1gdx7n45wwia3yvang3ls92sk3wrymqcx9p349j8wba2lyjf9m44"; })
+  (fetchNuGet { pname = "Microsoft.Testing.Extensions.Telemetry"; version = "1.0.2"; sha256 = "00psv2mvynd2bz8xnzvqvb32qr33glqxg4ni5j91b93k84yjy5ma"; })
+  (fetchNuGet { pname = "Microsoft.Testing.Extensions.TrxReport.Abstractions"; version = "1.0.2"; sha256 = "09yn3hi9npgi8rs2vyfyzcl8vbfa1lqcl6lgpymw5d7lg0hc511w"; })
+  (fetchNuGet { pname = "Microsoft.Testing.Extensions.VSTestBridge"; version = "1.0.2"; sha256 = "0c65fsc23xxw648xh83sjcmrn9hvs9q58l5lb36wflvaajbsjf2r"; })
+  (fetchNuGet { pname = "Microsoft.Testing.Platform"; version = "1.0.2"; sha256 = "0bq46f4v2r4nzwly7g0dsakyc1lcql9nh85sp59d1fwzaknf1n94"; })
+  (fetchNuGet { pname = "Microsoft.Testing.Platform.MSBuild"; version = "1.0.2"; sha256 = "1vjqrpqjx3z1irqgy0ckmkgyvrzqqqcikxs36q6gadyj643ra1c5"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.5.0"; sha256 = "0qkjyf3ky6xpjg5is2sdsawm99ka7fzgid2bvpglwmmawqgm8gls"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.9.0"; sha256 = "1kgsl9w9fganbm9wvlkqgk0ag9hfi58z88rkfybc6kvg78bx89ca"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.9.0"; sha256 = "19ffh31a1jxzn8j69m1vnk5hyfz3dbxmflq77b8x82zybiilh5nl"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading"; version = "17.7.35"; sha256 = "1sr2ydgl6clnpf7axjhnffx3z2jz1zhnxfiizsv1prl26r3y52f9"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading.Analyzers"; version = "17.9.28"; sha256 = "0g64zn1wk96v9rj04rkcg7jwklaihj317gsdfswqg33yrcn4z5ig"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Validation"; version = "17.6.11"; sha256 = "0qx4nzsx28galgzzjkgf541254d433dgxcaf7y2y1qyyxgsfjj1f"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.7.0"; sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry.AccessControl"; version = "6.0.0"; sha256 = "1c1x47c6p21l6l84kw8wvsdhnd7ifrrrl8in0bnkaq7y1va4fvsn"; })
+  (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.1"; sha256 = "1map729br97ny6mqkaw5qsg55yjbfz2hskvy56qz8rf7p1bjhky2"; })
+  (fetchNuGet { pname = "Microsoft.Windows.Compatibility"; version = "6.0.7"; sha256 = "1b01dg77mw2ih3dy5sajjvqd89zv4yjqffmb8gs7dpzwnncin91d"; })
+  (fetchNuGet { pname = "MSTest.TestAdapter"; version = "3.2.2"; sha256 = "14nrxg1cd3lzaxw7zz8z91168sgnsf1xxnrpdy7wkd6ggk22hi19"; })
+  (fetchNuGet { pname = "MSTest.TestFramework"; version = "3.2.2"; sha256 = "0igdrjr300bqz5lnibf9vl8pkaky1l27f889gza3a9xs83mpd06p"; })
+  (fetchNuGet { pname = "Nerdbank.GitVersioning"; version = "3.6.133"; sha256 = "1cdw8krvsnx0n34f7fm5hiiy7bs6h3asvncqcikc0g46l50w2j80"; })
+  (fetchNuGet { pname = "Nerdbank.Streams"; version = "2.10.69"; sha256 = "1klsyly7k1xhbhrpq2s2iwdlmw3xyvh51rcakfazwxkv2hm5fj3b"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.11.0"; sha256 = "0wv26gq39hfqw9md32amr5771s73f5zn1z9vs4y77cgynxr73s4z"; })
+  (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
+  (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"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
+  (fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
+  (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.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+  (fetchNuGet { pname = "runtime.linux-arm.runtime.native.System.IO.Ports"; version = "6.0.0"; sha256 = "0mazvx8npn10vh0k1pvck8ijz4pin7h9mjrvdydim4bmnn4iwgdc"; })
+  (fetchNuGet { pname = "runtime.linux-arm64.runtime.native.System.IO.Ports"; version = "6.0.0"; sha256 = "0yrcswvz1xyv17gy39gxpn2cr9ynnlnbm9112nqzkj58s6gk2iyj"; })
+  (fetchNuGet { pname = "runtime.linux-x64.runtime.native.System.IO.Ports"; version = "6.0.0"; sha256 = "0ss8fzqnvxps1ybfy70fj4vs2w78mizg4sxdriw8bvcdcfsv0rg2"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.Data.SqlClient.sni"; version = "4.7.0"; sha256 = "1b84b8rkwwwgvx1hh5r6icd975rl1ry3bc1xb87br2d8k433wgbj"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Ports"; version = "6.0.0"; sha256 = "0nl8z42aiqfz0v4h1lx84jz312n1f01rlr2kzd7yfiv7p7i1dl3w"; })
+  (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.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+  (fetchNuGet { pname = "runtime.osx-arm64.runtime.native.System.IO.Ports"; version = "6.0.0"; sha256 = "114swwc99lg4zjzywfcfxvbxynrlh9pvgl1wpihf88jbs2mjicw5"; })
+  (fetchNuGet { pname = "runtime.osx-x64.runtime.native.System.IO.Ports"; version = "6.0.0"; sha256 = "1kwip1pj1xaqrlkf5flkk30zn2lg4821g64nfj1glpjjcj49b3wv"; })
+  (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.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+  (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
+  (fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
+  (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.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
+  (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 = "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni"; version = "4.4.0"; sha256 = "07byf1iyqb7jkb17sp0mmjk46fwq6fx8mlpzywxl7qk09sma44gk"; })
+  (fetchNuGet { pname = "runtime.win-x64.runtime.native.System.Data.SqlClient.sni"; version = "4.4.0"; sha256 = "0167s4mpq8bzk3y11pylnynzjr2nc84w96al9x4l8yrf34ccm18y"; })
+  (fetchNuGet { pname = "runtime.win-x86.runtime.native.System.Data.SqlClient.sni"; version = "4.4.0"; sha256 = "0k3rkfrlm9jjz56dra61jgxinb8zsqlqzik2sjwz7f8v6z6ddycc"; })
+  (fetchNuGet { pname = "Sarif.Sdk"; version = "4.4.0"; sha256 = "0860mqyzcckvfg1air1pva5v9npzq6d2cn8bds8zqxg06jxq9gvy"; })
+  (fetchNuGet { pname = "SharpYaml"; version = "2.1.0"; sha256 = "05qrppbhfyikv94vnzpb7x1y6yd3znkr8pc0vsmdgca6z6jsy2lq"; })
+  (fetchNuGet { pname = "StreamJsonRpc"; version = "2.17.8"; sha256 = "187zkhi7a81idma7gw072xxsikmvadkxszl48qzffsqzjz8y2wxb"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.CodeDom"; version = "6.0.0"; sha256 = "1i55cxp8ycc03dmxx4n22qi6jkwfl23cgffb95izq7bjar8avxxq"; })
+  (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 = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.6.0"; sha256 = "1pbxzdz3pwqyybzv5ff2b7nrc281bhg7hq34w0fn1w3qfgrbwyw2"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; sha256 = "1n9122cy6v3qhsisc9lzwa1m1j62b8pi2678nsmnlyvfpk0zdagm"; })
+  (fetchNuGet { pname = "System.ComponentModel.Composition"; version = "6.0.0"; sha256 = "16zfx5mivkkykp76krw8x68izmjf79ldfmn26k9x3m55lmp9i77c"; })
+  (fetchNuGet { pname = "System.ComponentModel.Composition.Registration"; version = "6.0.0"; sha256 = "1lv5b42lssrkzbk2fz9phmdgwmqzi2n3yg3rl081q661nij3vv1l"; })
+  (fetchNuGet { pname = "System.Configuration.ConfigurationManager"; version = "4.4.0"; sha256 = "1hjgmz47v5229cbzd2pwz2h0dkq78lb2wp9grx8qr72pb5i0dk7v"; })
+  (fetchNuGet { pname = "System.Configuration.ConfigurationManager"; version = "6.0.1"; sha256 = "1d6cx49fzycbl2fam8d1j3491sqx6mh7qkb5ddrawr00x74hgzak"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
+  (fetchNuGet { pname = "System.Data.Odbc"; version = "6.0.1"; sha256 = "12g9fzx6y5gb1bb5lyfxin1d5snw69pdwv481x13m6qhkfhk3lx4"; })
+  (fetchNuGet { pname = "System.Data.OleDb"; version = "6.0.0"; sha256 = "0cbf6qw7k13rjrk5zfd158yri023ryaifd6fz5cbqgwdg4vpnvpz"; })
+  (fetchNuGet { pname = "System.Data.SqlClient"; version = "4.8.5"; sha256 = "17g5snnjf4fy67ayqj8vqa4vz916njffahbc365z37l5v0w7g92a"; })
+  (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 = "5.0.0"; sha256 = "0phd2qizshjvglhzws1jd0cq4m54gscz4ychzr3x6wbgl4vvfrga"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "6.0.1"; sha256 = "17h8bkcv0vf9a7gp9ajkd107zid98wql5kzlzwrjm5nm92nk0bsy"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "7.0.2"; sha256 = "1h97ikph775gya93qsjjaka87qcygbyh1064rh1hnfcnp5xv0ipi"; })
+  (fetchNuGet { pname = "System.Diagnostics.EventLog"; version = "6.0.0"; sha256 = "08y1x2d5w2hnhkh9r1998pjc7r4qp0rmzax062abha85s11chifd"; })
+  (fetchNuGet { pname = "System.Diagnostics.PerformanceCounter"; version = "6.0.1"; sha256 = "17p5vwbgrycsrvv9a9ksxbiziy75x4s25dw71fnbw1ci5kpp8yz7"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.DirectoryServices"; version = "6.0.1"; sha256 = "17abibzqmr4amxpnbpv198qzdpb5mafn655ayisfc4mmhmyks39a"; })
+  (fetchNuGet { pname = "System.DirectoryServices.AccountManagement"; version = "6.0.0"; sha256 = "1hvmasf4zsjpds0q8j8k5n61lr6mqhi37bsz1m65r6fs5kx5jrfn"; })
+  (fetchNuGet { pname = "System.DirectoryServices.Protocols"; version = "6.0.2"; sha256 = "0zy5ga8ys72bmw65zikg4qv4cizx9mcns3mc0dddi6657mpzp2pv"; })
+  (fetchNuGet { pname = "System.Drawing.Common"; version = "6.0.0"; sha256 = "02n8rzm58dac2np8b3xw8ychbvylja4nh6938l5k2fhyn40imlgz"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
+  (fetchNuGet { pname = "System.Formats.Asn1"; version = "6.0.0"; sha256 = "1vvr7hs4qzjqb37r0w1mxq7xql2b17la63jwvmgv65s1hj00g8r9"; })
+  (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.Abstractions"; version = "20.0.15"; sha256 = "0lj2y0fpns0dgw9wfsx804qsm9i9g01hrdsws3pmlwzrin73ghyg"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.AccessControl"; version = "5.0.0"; sha256 = "0ixl68plva0fsj3byv76bai7vkin86s6wyzr8vcav3szl862blvk"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+  (fetchNuGet { pname = "System.IO.Packaging"; version = "6.0.0"; sha256 = "112nq0k2jc4vh71rifqqmpjxkaanxfapk7g8947jkfgq3lmfmaac"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "7.0.0"; sha256 = "1ila2vgi1w435j7g2y7ykp2pdbh9c5a02vm85vql89az93b7qvav"; })
+  (fetchNuGet { pname = "System.IO.Ports"; version = "6.0.0"; sha256 = "0b0gvn7b2xsy2b0wwa170jzm5cwy3xxwpyqm21m4cbpc0ckri802"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
+  (fetchNuGet { pname = "System.Management"; version = "6.0.2"; sha256 = "190bxmg0y5dmzh0yv9gzh8k6safdz20gqaifpnl8v7yw3z5wcpgj"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
+  (fetchNuGet { pname = "System.Memory.Data"; version = "1.0.2"; sha256 = "1p8qdg0gzxhjvabryc3xws2629pj8w5zz2iqh86kw8sh0rann9ay"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
+  (fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+  (fetchNuGet { pname = "System.Private.ServiceModel"; version = "4.9.0"; sha256 = "117vxa0pfgg6xfdxfpza4296ay7sqiaynyvfbsai43yrkh0lmch1"; })
+  (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.Context"; version = "6.0.0"; sha256 = "1vy3b143429amaa0501xjgdszvpdygkrs5rkivnrkl69f67dad5j"; })
+  (fetchNuGet { pname = "System.Reflection.DispatchProxy"; version = "4.7.1"; sha256 = "10yh3q2i71gcw7c0dfz9qxql2vlvnqjav1hyf1q9rpbvdbgsabrs"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.7.0"; sha256 = "0mbjfajmafkca47zr8v36brvknzks5a7pgb49kfq2d188pyv6iap"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
+  (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.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+  (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.Caching"; version = "6.0.0"; sha256 = "0wh98a77cby4i3h2mar241k01105x661kh03vlyd399shxkfk60a"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
+  (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.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "6.0.0"; sha256 = "0a678bzj8yxxiffyzy60z2w1nczzpi8v97igr4ip3byd2q89dv58"; })
+  (fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
+  (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.Pkcs"; version = "6.0.4"; sha256 = "0hh5h38pnxmlrnvs72f2hzzpz4b2caiiv6xf8y7fzdg84r3imvfr"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.4.0"; sha256 = "1q8ljvqhasyynp94a1d7jknk946m20lkwy2c3wa8zw2pc517fbj6"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.7.0"; sha256 = "1s1sh8k10s0apa09c5m2lkavi3ys90y657whg2smb3y8mpkfr5vm"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "6.0.0"; sha256 = "05kd3a8w7658hjxq9vvszxip30a479fjmfq4bq1r95nrsvs4hbss"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Xml"; version = "6.0.1"; sha256 = "15d0np1njvy2ywf0qzdqyjk5sjs4zbfxg917jrvlbfwrqpqxb5dj"; })
+  (fetchNuGet { pname = "System.Security.Permissions"; version = "6.0.0"; sha256 = "0jsl4xdrkqi11iwmisi1r2f2qn5pbvl79mzq877gndw6ans2zhzw"; })
+  (fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.7.0"; sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
+  (fetchNuGet { pname = "System.ServiceModel.Duplex"; version = "4.9.0"; sha256 = "0jwbpcpgxv5zar3raypgvfnwvn4bv3n212cbcgyj7r0xj33c1kqi"; })
+  (fetchNuGet { pname = "System.ServiceModel.Http"; version = "4.9.0"; sha256 = "1nxch0m50yvp0dxckl65802086bncs010lnx816196m2kc4bpc5p"; })
+  (fetchNuGet { pname = "System.ServiceModel.NetTcp"; version = "4.9.0"; sha256 = "06l7ffkxf6nj3x8dm5b42ansqq3nm17xpzrrmp0905602dr3z8zg"; })
+  (fetchNuGet { pname = "System.ServiceModel.Primitives"; version = "4.9.0"; sha256 = "1lzl69ar18fn4iqya2ymm9kdv54d4mi0hcdnyvyxjq3bnhnb22qf"; })
+  (fetchNuGet { pname = "System.ServiceModel.Security"; version = "4.9.0"; sha256 = "0ai2h31hrz1js3k8q0lh1y87757la300slqp3g7544kil5wcbmpw"; })
+  (fetchNuGet { pname = "System.ServiceModel.Syndication"; version = "6.0.0"; sha256 = "1xk1dh5nd5h6fhrkys9r9na6kww7v4fsg4ianaibjkl9f0a1w929"; })
+  (fetchNuGet { pname = "System.ServiceProcess.ServiceController"; version = "6.0.1"; sha256 = "15nvnflqfrz2fsclcwgaq8r532x2fbv1ds3rck95l8psb7pgx1v5"; })
+  (fetchNuGet { pname = "System.Speech"; version = "6.0.0"; sha256 = "1g7b077189x9xy4l9yrh2yfnhc83mk6aj7b0v64xdqsrsqv1z16v"; })
+  (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.Encoding.CodePages"; version = "8.0.0"; sha256 = "1lgdd78cik4qyvp2fggaa0kzxasw6kc9a6cjqw46siagrm0qnc3y"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "4.7.2"; sha256 = "0ap286ykazrl42if59bxhzv81safdfrrmfqr3112siwyajx4wih9"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "6.0.0"; sha256 = "06n9ql3fmhpjl32g3492sj181zjml5dlcc5l76xq2h38c4f87sai"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "7.0.0"; sha256 = "1151hbyrcf8kyg1jz8k9awpbic98lwz9x129rg7zk1wrs6vjlpxl"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "8.0.0"; sha256 = "1wbypkx0m8dgpsaqgyywz4z760xblnwalb241d5qv9kx8m128i11"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "4.7.2"; sha256 = "10xj1pw2dgd42anikvj9qm23ccssrcp7dpznpj4j7xjp1ikhy3y4"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "6.0.2"; sha256 = "1lz6gx1r4if8sbx6yp9h0mi0g9ffr40x0cg518l0z2aiqgil3fk0"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "7.0.3"; sha256 = "0zjrnc9lshagm6kdb9bdh45dmlnkpwcpyssa896sda93ngbmj8k9"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "8.0.0"; sha256 = "134savxw0sq7s448jnzw17bxcijsi1v38mirpbb6zfxmqlf04msw"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "8.0.2"; sha256 = "1pi1dkypmn34qqspvwfcp1fx78v0nh78dpdyj4rcaa2qch40y15r"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.AccessControl"; version = "6.0.0"; sha256 = "1f036x8994yqz13a1cx6vvzd2bqzwy4mchn1pgfsybaw1xa10jk6"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "7.0.0"; sha256 = "0ham9l8xrmlq2qwin53n82iz1wanci2h695i3cq83jcw4n28qdr9"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
+  (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
+  (fetchNuGet { pname = "System.Web.Services.Description"; version = "4.9.0"; sha256 = "08f9ksj826nz4pfw1bw7xg811x99yyj871nfmvav6yxfkx9faqkh"; })
+  (fetchNuGet { pname = "System.Windows.Extensions"; version = "6.0.0"; sha256 = "1wy9pq9vn1bqg5qnv53iqrbx04yzdmjw4x5yyi09y3459vaa1sip"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions"; version = "20.0.15"; sha256 = "14ivs6f91frvnygxg1qb7f7a96a3nazncj2sx4gsv1y22wmwizn4"; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions.Wrappers"; version = "20.0.15"; sha256 = "0avsf5bwjq4ymjmri917w610xzv6l300fxq3h7xhfprs25crby3k"; })
+  (fetchNuGet { pname = "WindowsAzure.Storage"; version = "9.3.3"; sha256 = "14b0b0nj85yvyn0h8ghr3kj6di2nkbzjxc2q98f1wcr0151xvdfx"; })
+]
diff --git a/nixpkgs/pkgs/by-name/bi/bicep/package.nix b/nixpkgs/pkgs/by-name/bi/bicep/package.nix
new file mode 100644
index 000000000000..d91ffd7e5c6c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bi/bicep/package.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, buildDotnetModule
+, fetchFromGitHub
+, dotnetCorePackages
+, mono
+}:
+
+buildDotnetModule rec {
+  pname = "bicep";
+  version = "0.26.54";
+
+  src = fetchFromGitHub {
+    owner = "Azure";
+    repo = "bicep";
+    rev = "v${version}";
+    hash = "sha256-Obu9I2FzuYBD466DE9VZnjTHSRX+qeKqTiIJ2433DQc=";
+  };
+
+  projectFile = "src/Bicep.Cli/Bicep.Cli.csproj";
+
+  nugetDeps = ./deps.nix;
+
+  dotnet-sdk = dotnetCorePackages.sdk_8_0;
+
+  dotnet-runtime = dotnetCorePackages.runtime_8_0;
+
+  doCheck = !(stdenv.isDarwin && stdenv.isAarch64); # mono is not available on aarch64-darwin
+
+  nativeCheckInputs = [ mono ];
+
+  testProjectFile = "src/Bicep.Cli.UnitTests/Bicep.Cli.UnitTests.csproj";
+
+  passthru.updateScript = ./updater.sh;
+
+  meta = {
+    broken = stdenv.isDarwin;
+    description = "Domain Specific Language (DSL) for deploying Azure resources declaratively";
+    homepage = "https://github.com/Azure/bicep/";
+    changelog = "https://github.com/Azure/bicep/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ khaneliman ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/bi/bicep/updater.sh b/nixpkgs/pkgs/by-name/bi/bicep/updater.sh
new file mode 100755
index 000000000000..dc45cc135746
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bi/bicep/updater.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=./. -i bash -p curl jq common-updater-scripts
+
+set -eo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+new_version="$(curl -s "https://api.github.com/repos/azure/bicep/releases?per_page=1" | jq -r '.[0].name')"
+old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./package.nix)"
+
+if [[ "$new_version" == "$old_version" ]]; then
+  echo "Already up to date!"
+  exit 0
+fi
+
+cd ../../../..
+update-source-version bicep "${new_version//v}"
+nix-build -A bicep.fetch-deps --no-out-link
diff --git a/nixpkgs/pkgs/by-name/bi/binsort/package.nix b/nixpkgs/pkgs/by-name/bi/binsort/package.nix
index edb41c642268..b1100dabad8c 100644
--- a/nixpkgs/pkgs/by-name/bi/binsort/package.nix
+++ b/nixpkgs/pkgs/by-name/bi/binsort/package.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Sort files by binary similarity";
+    mainProgram = "binsort";
     homepage = "http://neoscientists.org/~tmueller/binsort/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ numinit ];
diff --git a/nixpkgs/pkgs/by-name/bi/bitbake-language-server/package.nix b/nixpkgs/pkgs/by-name/bi/bitbake-language-server/package.nix
index 68b536d1319c..e73c78124ac2 100644
--- a/nixpkgs/pkgs/by-name/bi/bitbake-language-server/package.nix
+++ b/nixpkgs/pkgs/by-name/bi/bitbake-language-server/package.nix
@@ -30,6 +30,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Language server for bitbake";
+    mainProgram = "bitbake-language-server";
     homepage = "https://github.com/Freed-Wu/bitbake-language-server";
     changelog = "https://github.com/Freed-Wu/bitbake-language-server/releases/tag/v${version}";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/by-name/bi/bitwarden-cli/package.nix b/nixpkgs/pkgs/by-name/bi/bitwarden-cli/package.nix
index 68abb6385319..287d8e1a0e0a 100644
--- a/nixpkgs/pkgs/by-name/bi/bitwarden-cli/package.nix
+++ b/nixpkgs/pkgs/by-name/bi/bitwarden-cli/package.nix
@@ -10,18 +10,18 @@
 
 buildNpmPackage rec {
   pname = "bitwarden-cli";
-  version = "2024.2.0";
+  version = "2024.2.1";
 
   src = fetchFromGitHub {
     owner = "bitwarden";
     repo = "clients";
     rev = "cli-v${version}";
-    hash = "sha256-nCjcwe+7Riml/J0hAVv/t6/oHIDPhwFD5A3iQ/LNR5Y=";
+    hash = "sha256-g9enDEIdVj9R3xkx5qllf7aTDa6F+MvozhwbJn9w/VY=";
   };
 
   nodejs = nodejs_18;
 
-  npmDepsHash = "sha256-GJl9pVwFWEg9yku9IXLcu2XMJZz+ZoQOxCf1TrW715Y=";
+  npmDepsHash = "sha256-fkoI8a8iVMWxtXAj5zNg2xwK/ZPyRZGPo7rnxHpKV7k=";
 
   nativeBuildInputs = [
     python3
diff --git a/nixpkgs/pkgs/by-name/bi/bitwarden-desktop/electron-builder-package-lock.patch b/nixpkgs/pkgs/by-name/bi/bitwarden-desktop/electron-builder-package-lock.patch
new file mode 100644
index 000000000000..7a31b4a06076
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bi/bitwarden-desktop/electron-builder-package-lock.patch
@@ -0,0 +1,28 @@
+From 0629bb5b90e54491263e371bc5594e9f97ba0af4 Mon Sep 17 00:00:00 2001
+From: Andrew Marshall <andrew@johnandrewmarshall.com>
+Date: Tue, 12 Mar 2024 11:48:15 -0400
+Subject: [PATCH] Fix using unlocked dependencies in electron-builder
+
+electron-builder will perform its "installing production dependencies"
+step using this package.json, and without the package-lock.json, NPM
+will try to fetch package metadata to install the latest, unlocked
+dependencies.
+---
+ apps/desktop/webpack.main.js | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/apps/desktop/webpack.main.js b/apps/desktop/webpack.main.js
+index 9d683457d9..0ad707956e 100644
+--- a/apps/desktop/webpack.main.js
++++ b/apps/desktop/webpack.main.js
+@@ -70,6 +70,7 @@ const main = {
+     new CopyWebpackPlugin({
+       patterns: [
+         "./src/package.json",
++        "./src/package-lock.json",
+         { from: "./src/images", to: "images" },
+         { from: "./src/locales", to: "locales" },
+       ],
+-- 
+2.43.2
+
diff --git a/nixpkgs/pkgs/by-name/bi/bitwarden-desktop/package.nix b/nixpkgs/pkgs/by-name/bi/bitwarden-desktop/package.nix
index c2d3f04db7d5..b43a7ed27b21 100644
--- a/nixpkgs/pkgs/by-name/bi/bitwarden-desktop/package.nix
+++ b/nixpkgs/pkgs/by-name/bi/bitwarden-desktop/package.nix
@@ -5,7 +5,6 @@
 , dbus
 , electron_28
 , fetchFromGitHub
-, fetchpatch2
 , glib
 , gnome
 , gtk3
@@ -30,28 +29,38 @@ let
   electron = electron_28;
 in buildNpmPackage rec {
   pname = "bitwarden-desktop";
-  version = "2024.2.0";
+  version = "2024.3.0";
 
   src = fetchFromGitHub {
     owner = "bitwarden";
     repo = "clients";
     rev = "desktop-v${version}";
-    hash = "sha256-nCjcwe+7Riml/J0hAVv/t6/oHIDPhwFD5A3iQ/LNR5Y=";
+    hash = "sha256-XEZB95GnfSy/wtTWpF8KlUQwyephUZmSLtbOwbcvd7g=";
   };
 
   patches = [
-    (fetchpatch2 {
-      url = "https://github.com/bitwarden/clients/commit/746bf0a4745423b9e70c2c54dcf76a95ffb62e11.patch";
-      hash = "sha256-P9MTsiNbAb2kKo/PasIm9kGm0lQjuVUxAJ3Fh1DfpzY=";
-    })
+    ./electron-builder-package-lock.patch
   ];
 
+  # The nested package-lock.json from upstream is out-of-date, so copy the
+  # lock metadata from the root package-lock.json.
+  postPatch = ''
+    cat {,apps/desktop/src/}package-lock.json \
+      | ${lib.getExe jq} -s '
+        .[1].packages."".dependencies.argon2 = .[0].packages."".dependencies.argon2
+          | .[0].packages."" = .[1].packages.""
+          | .[1].packages = .[0].packages
+          | .[1]
+        ' \
+      | ${moreutils}/bin/sponge apps/desktop/src/package-lock.json
+  '';
+
   nodejs = nodejs_18;
 
   makeCacheWritable = true;
   npmFlags = [ "--legacy-peer-deps" ];
   npmWorkspace = "apps/desktop";
-  npmDepsHash = "sha256-GJl9pVwFWEg9yku9IXLcu2XMJZz+ZoQOxCf1TrW715Y=";
+  npmDepsHash = "sha256-EpZXA+GkmHl5eqwIPTGHJZqrpr6k8gXneJG+GXumlkc=";
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "${pname}-${version}";
@@ -67,7 +76,7 @@ in buildNpmPackage rec {
       patches;
     patchFlags = [ "-p4" ];
     sourceRoot = "${src.name}/${cargoRoot}";
-    hash = "sha256-LjwtOmIJlwtOiy36Y0pP+jJEwfmCGTN4RhqgmD3Yj6E=";
+    hash = "sha256-qAqEFlUzT28fw6kLB8d7U8yXWevAU+q03zjN2xWsGyI=";
   };
   cargoRoot = "apps/desktop/desktop_native";
 
diff --git a/nixpkgs/pkgs/by-name/bl/blockbench/package.nix b/nixpkgs/pkgs/by-name/bl/blockbench/package.nix
new file mode 100644
index 000000000000..fb19793583c4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bl/blockbench/package.nix
@@ -0,0 +1,87 @@
+{ lib
+, stdenv
+, buildNpmPackage
+, fetchFromGitHub
+, imagemagick
+, makeWrapper
+, makeDesktopItem
+, copyDesktopItems
+, electron_28
+}:
+
+let
+  electron = electron_28;
+in
+buildNpmPackage rec {
+  pname = "blockbench";
+  version = "4.9.4";
+
+  src = fetchFromGitHub {
+    owner = "JannisX11";
+    repo = "blockbench";
+    rev = "v${version}";
+    hash = "sha256-z4hr1pQh7Jp/DB8+pxwuHvi4gvTHHVn0yrruwnXm2iM=";
+  };
+
+  nativeBuildInputs = [
+    imagemagick # for icon resizing
+    makeWrapper
+    copyDesktopItems
+  ];
+
+  npmDepsHash = "sha256-onfz+J77jNIgdc7ALiyoXt1CdTyX/C7+bKwtpJm+H+I=";
+
+  env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
+
+  npmBuildScript = "bundle";
+
+  postBuild = ''
+    npm exec electron-builder -- \
+        --dir \
+        -c.electronDist=${electron}/libexec/electron \
+        -c.electronVersion=${electron.version}
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/blockbench
+    cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/blockbench
+
+    for size in 16 32 48 64 128 256 512; do
+      mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
+      convert -resize "$size"x"$size" icon.png $out/share/icons/hicolor/"$size"x"$size"/apps/blockbench.png
+    done
+
+    makeWrapper ${lib.getExe electron} $out/bin/blockbench \
+        --add-flags $out/share/blockbench/resources/app.asar \
+        --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
+        --inherit-argv0
+
+    runHook postInstall
+  '';
+
+  # based on desktop file found in the published AppImage archive
+  desktopItems = [
+    (makeDesktopItem {
+      name = "blockbench";
+      exec = "blockbench %U";
+      icon = "blockbench";
+      desktopName = "Blockbench";
+      comment = meta.description;
+      categories = [ "3DGraphics" ];
+      startupWMClass = "Blockbench";
+      terminal = false;
+    })
+  ];
+
+  meta = {
+    changelog = "https://github.com/JannisX11/blockbench/releases/tag/${src.rev}";
+    description = "Low-poly 3D modeling and animation software";
+    homepage = "https://blockbench.net/";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "blockbench";
+    maintainers = with lib.maintainers; [ ckie tomasajt ];
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/bo/bochs/package.nix b/nixpkgs/pkgs/by-name/bo/bochs/package.nix
index 803d6ae2852e..eb3c51430b54 100644
--- a/nixpkgs/pkgs/by-name/bo/bochs/package.nix
+++ b/nixpkgs/pkgs/by-name/bo/bochs/package.nix
@@ -25,11 +25,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "bochs";
-  version = "2.7";
+  version = "2.8";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/bochs/bochs/${finalAttrs.version}/bochs-${finalAttrs.version}.tar.gz";
-    hash = "sha256-oBCrG/3HKsWgjS4kEs1HHA/r1mrx2TSbwNeWh53lsXo=";
+    hash = "sha256-qFsTr/fYQR96nzVrpsM7X13B+7EH61AYzCOmJjnaAFk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/boehm-gc/default.nix b/nixpkgs/pkgs/by-name/bo/boehmgc/package.nix
index 6da88ee8258f..4402b3af57bf 100644
--- a/nixpkgs/pkgs/development/libraries/boehm-gc/default.nix
+++ b/nixpkgs/pkgs/by-name/bo/boehmgc/package.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   passthru.tests = nixVersions;
 
-  meta = with lib; {
+  meta = {
     homepage = "https://hboehm.info/gc/";
     description = "The Boehm-Demers-Weiser conservative garbage collector for C and C++";
     longDescription = ''
@@ -76,10 +76,9 @@ stdenv.mkDerivation (finalAttrs: {
       Alternatively, the garbage collector may be used as a leak detector for
       C or C++ programs, though that is not its primary goal.
     '';
-    # non-copyleft, X11-style license
     changelog = "https://github.com/ivmai/bdwgc/blob/v${finalAttrs.version}/ChangeLog";
-    license = "https://hboehm.info/gc/license.txt";
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.all;
+    license = "https://hboehm.info/gc/license.txt"; # non-copyleft, X11-style license
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.all;
   };
 })
diff --git a/nixpkgs/pkgs/by-name/bo/boogie/package.nix b/nixpkgs/pkgs/by-name/bo/boogie/package.nix
index 495f538726df..8a21f7b16d78 100644
--- a/nixpkgs/pkgs/by-name/bo/boogie/package.nix
+++ b/nixpkgs/pkgs/by-name/bo/boogie/package.nix
@@ -2,13 +2,13 @@
 
 buildDotnetModule rec {
   pname = "Boogie";
-  version = "3.1.1";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "boogie-org";
     repo = "boogie";
     rev = "v${version}";
-    sha256 = "sha256-k3+8VlE6dRx3t+qhheHsRl+MBcnh/M1cRgfks5eLvck=";
+    sha256 = "sha256-L70xKxLgJwpEt8e3HHJRSmDW+oq8nL6MjZaqgjUGDps=";
   };
 
   projectFile = [ "Source/Boogie.sln" ];
diff --git a/nixpkgs/pkgs/by-name/bo/boxbuddy/package.nix b/nixpkgs/pkgs/by-name/bo/boxbuddy/package.nix
new file mode 100644
index 000000000000..7885d551a5a2
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bo/boxbuddy/package.nix
@@ -0,0 +1,61 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, wrapGAppsHook4
+, libadwaita
+, distrobox
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "boxbuddy";
+  version = "2.1.4";
+
+  src = fetchFromGitHub {
+    owner = "Dvlv";
+    repo = "BoxBuddyRS";
+    rev = version;
+    hash = "sha256-954jMFWSIDDqtMitgc8456SMcQLzi6LhLbVvOC45fxQ=";
+  };
+
+  cargoHash = "sha256-08d0mPSGYySxw2uq16MNOu2Y39kjqyfZ8rJ2yTOL3/w=";
+
+  # The software assumes it is installed either in flatpak or in the home directory
+  # so the xdg data path needs to be patched here
+  postPatch = ''
+    substituteInPlace src/utils.rs \
+      --replace-fail '{data_home}/locale' "$out/share/locale" \
+      --replace-fail '{data_home}/icons/boxbuddy/{}' "$out/share/icons/boxbuddy/{}"
+  '';
+
+  nativeBuildInputs = [
+    pkg-config
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    libadwaita
+  ];
+
+  postInstall = ''
+    cp icons/* ./
+    XDG_DATA_HOME=$out/share INSTALL_DIR=$out ./scripts/install.sh
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix PATH : ${lib.makeBinPath [ distrobox ]}
+    )
+  '';
+
+  doCheck = false; # No checks defined
+
+  meta = with lib; {
+    description = "An unofficial GUI for managing your Distroboxes, written with GTK4 + Libadwaita";
+    homepage = "https://dvlv.github.io/BoxBuddyRS";
+    license = licenses.mit;
+    mainProgram = "boxbuddy-rs";
+    maintainers = with maintainers; [ aleksana ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/bp/bpftop/package.nix b/nixpkgs/pkgs/by-name/bp/bpftop/package.nix
index 7a87f202a65e..db954a57e069 100644
--- a/nixpkgs/pkgs/by-name/bp/bpftop/package.nix
+++ b/nixpkgs/pkgs/by-name/bp/bpftop/package.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bpftop";
-  version = "0.2.3";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "Netflix";
     repo = "bpftop";
     rev = "v${version}";
-    hash = "sha256-mtif1VRlDL1LsJQ3NQmBEaHTxrt2qMbZAFCEhtm/CtI=";
+    hash = "sha256-5MrfnKbrL8VoQBhtIcNmbkUfdjBXhTUW3d0GypvCuY8=";
   };
 
-  cargoHash = "sha256-N3pmet7OkIaI3EnzHfqe5P24RHabNUArEB1cKUYM5rA=";
+  cargoHash = "sha256-OjbsnhAY9KrGWgTDb3cxa1NIbdY2eaWlDXINC15Qk98=";
 
   buildInputs = [
     elfutils
diff --git a/nixpkgs/pkgs/by-name/br/bruno/package.nix b/nixpkgs/pkgs/by-name/br/bruno/package.nix
index 15bbceb35d22..9c4069b41bc8 100644
--- a/nixpkgs/pkgs/by-name/br/bruno/package.nix
+++ b/nixpkgs/pkgs/by-name/br/bruno/package.nix
@@ -14,24 +14,34 @@
 , cairo
 , pango
 , npm-lockfile-fix
+, overrideSDK
+, darwin
 }:
 
-buildNpmPackage rec {
+let
+  # fix for: https://github.com/NixOS/nixpkgs/issues/272156
+  buildNpmPackage' =
+    buildNpmPackage.override {
+      stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+    };
+in
+buildNpmPackage' rec {
   pname = "bruno";
-  version = "1.6.1";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "usebruno";
     repo = "bruno";
     rev = "v${version}";
-    hash = "sha256-Vf4UHN13eE9W4rekOEGAWIP3x79cVH3vI9sxuIscv8c=";
+    hash = "sha256-Urskhzs00OEucoR17NDXNtnrcXk9h75E806Re0HvYyw=";
 
     postFetch = ''
       ${lib.getExe npm-lockfile-fix} $out/package-lock.json
     '';
   };
 
-  npmDepsHash = "sha256-pfV9omdJiozJ9VotTImfM/DRsBPNGAEzmSdj3/C//4A=";
+  npmDepsHash = "sha256-48xzx7dTalceXzjFBHIkkUS83pqP/OQ0L2tnMESpHII=";
+  npmFlags = [ "--legacy-peer-deps" ];
 
   nativeBuildInputs = [
     (writeShellScriptBin "phantomjs" "echo 2.1.1")
@@ -45,6 +55,8 @@ buildNpmPackage rec {
     pixman
     cairo
     pango
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk_11_0.frameworks.CoreText
   ];
 
   desktopItems = [
@@ -68,6 +80,7 @@ buildNpmPackage rec {
 
   dontNpmBuild = true;
   postBuild = ''
+    npm run build --workspace=packages/bruno-common
     npm run build --workspace=packages/bruno-graphql-docs
     npm run build --workspace=packages/bruno-app
     npm run build --workspace=packages/bruno-query
diff --git a/nixpkgs/pkgs/by-name/bu/bullshit/package.nix b/nixpkgs/pkgs/by-name/bu/bullshit/package.nix
index 64f50f1d2b30..c32123eb1451 100644
--- a/nixpkgs/pkgs/by-name/bu/bullshit/package.nix
+++ b/nixpkgs/pkgs/by-name/bu/bullshit/package.nix
@@ -35,6 +35,7 @@ stdenvNoCC.mkDerivation {
 
   meta = with lib; {
     description = "A nonsense phrase generator";
+    mainProgram = "bullshit";
     homepage = "https://github.com/fceschmidt/bullshit-arch";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ krloer ];
diff --git a/nixpkgs/pkgs/by-name/bu/butler/package.nix b/nixpkgs/pkgs/by-name/bu/butler/package.nix
index cbd6b8aef936..29407276aba6 100644
--- a/nixpkgs/pkgs/by-name/bu/butler/package.nix
+++ b/nixpkgs/pkgs/by-name/bu/butler/package.nix
@@ -36,6 +36,12 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
+    # butler cannot be build with Go >=1.21
+    # See https://github.com/itchio/butler/issues/256
+    # and https://github.com/itchio/dmcunrar-go/issues/1
+    # The dependency causing the issue is marked as 'no maintainence intended'.
+    # Last butler release is from 05/2021.
+    broken = true;
     description = "Command-line itch.io helper";
     homepage = "https://github.com/itchio/butler";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/by-name/c2/c2fmzq/package.nix b/nixpkgs/pkgs/by-name/c2/c2fmzq/package.nix
index 42069150d468..1efd3dd52ca2 100644
--- a/nixpkgs/pkgs/by-name/c2/c2fmzq/package.nix
+++ b/nixpkgs/pkgs/by-name/c2/c2fmzq/package.nix
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   ldflags = [ "-s" "-w" ];
 
-  sourceRoot = "source/c2FmZQ";
+  sourceRoot = "${src.name}/c2FmZQ";
 
   vendorHash = "sha256-cTXSFwWGHV2QJM4mX/Z+ZxCXKwr+59lEPvJa/PTA1wU=";
 
diff --git a/nixpkgs/pkgs/by-name/c2/c2nim/package.nix b/nixpkgs/pkgs/by-name/c2/c2nim/package.nix
index 2212cb5879ed..1cc603b59bc8 100644
--- a/nixpkgs/pkgs/by-name/c2/c2nim/package.nix
+++ b/nixpkgs/pkgs/by-name/c2/c2nim/package.nix
@@ -11,6 +11,7 @@ buildNimPackage (finalAttrs: {
   };
   meta = finalAttrs.src.meta // {
     description = "Tool to translate Ansi C code to Nim";
+    mainProgram = "c2nim";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.ehmry ];
   };
diff --git a/nixpkgs/pkgs/by-name/ca/caido/package.nix b/nixpkgs/pkgs/by-name/ca/caido/package.nix
index f7da4eaef797..9c930f0afc6c 100644
--- a/nixpkgs/pkgs/by-name/ca/caido/package.nix
+++ b/nixpkgs/pkgs/by-name/ca/caido/package.nix
@@ -6,10 +6,10 @@
 
 let
   pname = "caido";
-  version = "0.29.2";
+  version = "0.33.0";
   src = fetchurl {
-    url = "https://storage.googleapis.com/caido-releases/v${version}/caido-desktop-linux-v${version}-e0f8102b.AppImage";
-    hash = "sha256-4PgQK52LAX1zacmoUK0muIhrvFDF7anQ6sx35I+ErVs=";
+    url = "https://storage.googleapis.com/caido-releases/v${version}/caido-desktop-v${version}-linux-x86_64.AppImage";
+    hash = "sha256-MUQ1tVcIpLrC2RKsWDqv8MBGaHfh56OxIC/ARArQjiU=";
   };
   appimageContents = appimageTools.extractType2 { inherit pname src version; };
 
@@ -21,8 +21,6 @@ in appimageTools.wrapType2 {
   extraInstallCommands = ''
     mv $out/bin/${pname}-${version} $out/bin/${pname}
     install -m 444 -D ${appimageContents}/caido.desktop -t $out/share/applications
-    substituteInPlace $out/share/applications/caido.desktop \
-      --replace 'Exec=AppRun' 'Exec=${pname}'
     install -m 444 -D ${appimageContents}/caido.png \
       $out/share/icons/hicolor/512x512/apps/caido.png
     source "${makeWrapper}/nix-support/setup-hook"
diff --git a/nixpkgs/pkgs/by-name/ca/capslock/package.nix b/nixpkgs/pkgs/by-name/ca/capslock/package.nix
new file mode 100644
index 000000000000..87da681fe958
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ca/capslock/package.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "capslock";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "capslock";
+    rev = "v${version}";
+    hash = "sha256-mGrq43YCjF137c5ynQxL7IXDCUbnbBLv5E0tw/boObE=";
+  };
+
+  vendorHash = "sha256-WTbHcVARbz7cvAY7IZnACTrN5h9NXWXfxxEWq4hssOM=";
+
+  subPackages = [
+    "cmd/capslock"
+  ];
+
+  CGO_ENABLED = "0";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  meta = with lib; {
+    description = "Capability analysis CLI for Go packages that informs users of which privileged operations a given package can access";
+    homepage = "https://github.com/google/capslock";
+    license = licenses.bsd3;
+    mainProgram = "capslock";
+    maintainers = with maintainers; [ katexochen ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ca/cargo-bump/package.nix b/nixpkgs/pkgs/by-name/ca/cargo-bump/package.nix
index 76f21c1ca027..f5ff8e08f574 100644
--- a/nixpkgs/pkgs/by-name/ca/cargo-bump/package.nix
+++ b/nixpkgs/pkgs/by-name/ca/cargo-bump/package.nix
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Increments the version number of the current project.";
+    mainProgram = "cargo-bump";
     homepage = "https://github.com/wraithan/cargo-bump";
     license = with licenses; [ isc ];
     maintainers = with maintainers; [ cafkafk ];
diff --git a/nixpkgs/pkgs/by-name/ca/cargo-pgo/package.nix b/nixpkgs/pkgs/by-name/ca/cargo-pgo/package.nix
new file mode 100644
index 000000000000..1850fb2d85d6
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ca/cargo-pgo/package.nix
@@ -0,0 +1,29 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-pgo";
+  version = "0.2.6";
+
+  src = fetchFromGitHub {
+    owner = "kobzol";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-u3kWYPLJYarwwudRpeBdJglP9kNbLRTYgEvZT2pBBoY=";
+  };
+
+  cargoHash = "sha256-Peicupa2vFDzPCH0OQYk7plkWIn82o45oGutOyMlI2s=";
+
+  # Integration tests do not run in Nix build environment due to needing to
+  # create and build Cargo workspaces.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Cargo subcommand for optimizing Rust binaries/libraries with PGO and BOLT";
+    homepage = "https://github.com/kobzol/cargo-pgo";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ dannixon ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ca/cargo-rdme/package.nix b/nixpkgs/pkgs/by-name/ca/cargo-rdme/package.nix
index 7cc47e22a641..3ee82740c3c8 100644
--- a/nixpkgs/pkgs/by-name/ca/cargo-rdme/package.nix
+++ b/nixpkgs/pkgs/by-name/ca/cargo-rdme/package.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo command to create the README.md from your crate's documentation";
+    mainProgram = "cargo-rdme";
     homepage = "https://github.com/orium/cargo-rdme";
     changelog = "https://github.com/orium/cargo-rdme/blob/v${version}/release-notes.md";
     license = with licenses; [ mpl20 ];
diff --git a/nixpkgs/pkgs/by-name/ca/cargo-swift/package.nix b/nixpkgs/pkgs/by-name/ca/cargo-swift/package.nix
index d8135f2ca4f6..cc9cc989e0b3 100644
--- a/nixpkgs/pkgs/by-name/ca/cargo-swift/package.nix
+++ b/nixpkgs/pkgs/by-name/ca/cargo-swift/package.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A cargo plugin to easily build Swift packages from Rust code";
+    mainProgram = "cargo-swift";
     homepage = "https://github.com/antoniusnaumann/cargo-swift";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ elliot ];
diff --git a/nixpkgs/pkgs/by-name/ca/cargo-typify/package.nix b/nixpkgs/pkgs/by-name/ca/cargo-typify/package.nix
index 6d62df94c517..6693776c04ed 100644
--- a/nixpkgs/pkgs/by-name/ca/cargo-typify/package.nix
+++ b/nixpkgs/pkgs/by-name/ca/cargo-typify/package.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "JSON Schema to Rust type converter";
+    mainProgram = "cargo-typify";
     homepage = "https://github.com/oxidecomputer/typify";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ david-r-cox ];
diff --git a/nixpkgs/pkgs/by-name/ca/cargo-vibe/package.nix b/nixpkgs/pkgs/by-name/ca/cargo-vibe/package.nix
index f884dd817c1d..4caaa823264b 100644
--- a/nixpkgs/pkgs/by-name/ca/cargo-vibe/package.nix
+++ b/nixpkgs/pkgs/by-name/ca/cargo-vibe/package.nix
@@ -33,6 +33,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo x Buttplug.io";
+    mainProgram = "cargo-vibe";
     homepage = "https://github.com/shadlock0133/cargo-vibe";
     license = licenses.mit;
     maintainers = with maintainers; [ _999eagle ];
diff --git a/nixpkgs/pkgs/by-name/ca/cargo-wizard/package.nix b/nixpkgs/pkgs/by-name/ca/cargo-wizard/package.nix
new file mode 100644
index 000000000000..69f106795239
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ca/cargo-wizard/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, stdenv
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-wizard";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "kobzol";
+    repo = "cargo-wizard";
+    rev = "v${version}";
+    hash = "sha256-oFPSgjXZ+Kq59tV/7s6WPF6FHXENoZv8D245yyT0E9E=";
+  };
+
+  cargoHash = "sha256-wUMdWGUJR9dJ4XRlDFAvHwxCzLSb3WdRhrXt0kr2+Fc=";
+
+  preCheck = ''
+    export PATH=$PATH:$PWD/target/${stdenv.hostPlatform.rust.rustcTarget}/$cargoBuildType
+  '';
+
+  meta = with lib; {
+    description = "Cargo subcommand for configuring Cargo profile for best performance";
+    homepage = "https://github.com/kobzol/cargo-wizard";
+    changelog = "https://github.com/kobzol/cargo-wizard/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kranzes ];
+    mainProgram = "cargo-wizard";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ca/cargo-xwin/package.nix b/nixpkgs/pkgs/by-name/ca/cargo-xwin/package.nix
index b361b2a808ac..5a5cfb00fac0 100644
--- a/nixpkgs/pkgs/by-name/ca/cargo-xwin/package.nix
+++ b/nixpkgs/pkgs/by-name/ca/cargo-xwin/package.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cross compile Cargo project to Windows MSVC target with ease";
+    mainProgram = "cargo-xwin";
     homepage = "https://github.com/rust-cross/cargo-xwin";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ shivaraj-bh ];
diff --git a/nixpkgs/pkgs/by-name/cb/cbtemulator/package.nix b/nixpkgs/pkgs/by-name/cb/cbtemulator/package.nix
new file mode 100644
index 000000000000..d3b3e02cfe74
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cb/cbtemulator/package.nix
@@ -0,0 +1,67 @@
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+, runCommand
+, cbtemulator
+, google-cloud-bigtable-tool
+}:
+
+buildGoModule rec {
+  pname = "cbtemulator";
+  version = "1.22.0";
+
+  # There's a go.{mod,sum} in the root and in the "bigtable" subdir.
+  # We only ever use things in that subdir.
+  src = (fetchFromGitHub {
+    owner = "googleapis";
+    repo = "google-cloud-go";
+    rev = "bigtable/v${version}";
+    hash = "sha256-eOi4QFthnmZb5ry/5L7wzr4Fy1pF/H07BzxOnXtmSu4=";
+  }) + "/bigtable";
+
+  vendorHash = "sha256-7M7YZfl0usjN9hLGozqJV2bGh+M1ec4PZRGYUhEckpY=";
+  subPackages = [ "cmd/emulator" ];
+
+  postInstall = ''
+    mv $out/bin/emulator $out/bin/cbtemulator
+  '';
+
+  passthru = {
+    # Sets up a table and family, then inserts, and ensures it gets back the value.
+    tests.smoketest = runCommand "cbtemulator-smoketest"
+      {
+        nativeBuildInputs = [ google-cloud-bigtable-tool ];
+      } ''
+      # Start the emulator
+      ${lib.getExe cbtemulator} &
+      EMULATOR_PID=$!
+
+      cleanup() {
+        kill $EMULATOR_PID
+      }
+
+      trap cleanup EXIT
+
+      export BIGTABLE_EMULATOR_HOST=localhost:9000
+
+      cbt -instance instance-1 -project project-1 createtable table-1
+      cbt -instance instance-1 -project project-1 createfamily table-1 cf1
+      cbt -instance instance-1 -project project-1 ls table-1
+      cbt -instance instance-1 -project project-1 set table-1 key1 cf1:c1=value1
+
+      cbt -instance instance-1 -project project-1 read table-1 | grep -q value1
+
+      touch $out;
+    '';
+  };
+
+  meta = with lib; {
+    description = "In-memory Google Cloud Bigtable server";
+    homepage = "https://github.com/googleapis/google-cloud-go/blob/bigtable/v1.22.0/bigtable/cmd/emulator/cbtemulator.go";
+    license = licenses.asl20;
+    maintainers = [ maintainers.flokli ];
+    mainProgram = "cbtemulator";
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/cd/cdk/package.nix b/nixpkgs/pkgs/by-name/cd/cdk/package.nix
index 410e341cf0fc..9848f293a011 100644
--- a/nixpkgs/pkgs/by-name/cd/cdk/package.nix
+++ b/nixpkgs/pkgs/by-name/cd/cdk/package.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Curses development kit";
+    mainProgram = "cdk5-config";
     homepage = "https://invisible-island.net/cdk/";
     changelog = "https://invisible-island.net/cdk/CHANGES.html";
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/by-name/ce/centrifugo/package.nix b/nixpkgs/pkgs/by-name/ce/centrifugo/package.nix
index 8691b76b2d6d..1ad075da67d7 100644
--- a/nixpkgs/pkgs/by-name/ce/centrifugo/package.nix
+++ b/nixpkgs/pkgs/by-name/ce/centrifugo/package.nix
@@ -14,16 +14,16 @@ let
 in
 buildGoModule rec {
   pname = "centrifugo";
-  version = "5.2.2";
+  version = "5.3.0";
 
   src = fetchFromGitHub {
     owner = "centrifugal";
     repo = "centrifugo";
     rev = "v${version}";
-    hash = "sha256-jBXg4/Uw5pFk1aCNpmHkXeUYrFwZqwtg0zYQ5zkp5QI=";
+    hash = "sha256-QA10JOy/EDzmLgQKnnPOYL5GpxfYjYmtA394JZjdrAo=";
   };
 
-  vendorHash = "sha256-s04XSTs1ISfhezvz8RfcXPlx8cstHXdRBFPIEZlKI7k=";
+  vendorHash = "sha256-fomEiAWIr9Mp0E1kdZlVVSrs2yw3ydMXSmjN/31RzCA=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/by-name/ce/cert-viewer/package.nix b/nixpkgs/pkgs/by-name/ce/cert-viewer/package.nix
new file mode 100644
index 000000000000..6fcead475a36
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ce/cert-viewer/package.nix
@@ -0,0 +1,26 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+
+buildGoModule rec {
+  pname = "cert-viewer";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "mgit-at";
+    repo = "cert-viewer";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-q4FLKH0ZA/79zLo7dt+CSOjfKyygTiQKSuungQTtue0=";
+  };
+
+  vendorHash = "sha256-55zDUAe5s+03/OnDcK1DqmMUpFO2sBaVjEk6vbrHgzY=";
+
+  meta = {
+    description = "Admin tool to view and inspect multiple x509 Certificates";
+    homepage = "https://github.com/mgit-at/cert-viewer";
+    license = lib.licenses.apsl20;
+    maintainers = [ lib.maintainers.mkg20001 ];
+    mainProgram = "cert-viewer";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ce/certi/package.nix b/nixpkgs/pkgs/by-name/ce/certi/package.nix
new file mode 100644
index 000000000000..90e929114b4d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ce/certi/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "certi";
+  version = "0.1.0-unstable-2023-01-27";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "zer1t0";
+    repo = "certi";
+    # https://github.com/zer1t0/certi/issues/6
+    rev = "6cfa656c6c0fcbbe9b9bce847b052c881202354e";
+    hash = "sha256-6j/Lwq68qyfEAo5MRibgdomrCO4KEd/DlAEwB+Z52Hc=";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    cryptography
+    impacket
+  ];
+
+  pythonImportsCheck = [
+    "certilib"
+  ];
+
+  meta = with lib; {
+    description = "ADCS abuser";
+    homepage = "https://github.com/zer1t0/certi";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "certi";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ce/certificate-ripper/package.nix b/nixpkgs/pkgs/by-name/ce/certificate-ripper/package.nix
index 0b03b395789f..439d8079d764 100644
--- a/nixpkgs/pkgs/by-name/ce/certificate-ripper/package.nix
+++ b/nixpkgs/pkgs/by-name/ce/certificate-ripper/package.nix
@@ -6,7 +6,7 @@
 
 let
   pname = "certificate-ripper";
-  version = "2.2.0";
+  version = "2.3.0";
 
   jar = maven.buildMavenPackage {
     pname = "${pname}-jar";
@@ -16,15 +16,20 @@ let
       owner = "Hakky54";
       repo = "certificate-ripper";
       rev = version;
-      hash = "sha256-snavZVLY8sHinLnG6k61eSQlR9sb8+k5tRHqu4kzQKM=";
+      hash = "sha256-q/UhKLFAre3YUH2W7e+SH4kRM0GIZAUyNJFDm02eL+8=";
     };
 
     patches = [
-      ./make-deterministic.patch
+      ./pin-default-maven-plguin-versions.patch
       ./fix-test-temp-dir-path.patch
     ];
 
-    mvnHash = "sha256-ahw9VVlvBPlWChcJzXFna55kxqVeJMmdaLtwWcJ+qSA=";
+    mvnHash = "sha256-/iy7DXBAyq8TIpvrd2WAQh+9OApfxCWo1NoGwbzbq7s=";
+
+    mvnParameters = lib.escapeShellArgs [
+      "-Dproject.build.outputTimestamp=1980-01-01T00:00:02Z" # make timestamp deterministic
+      "-Dtest=!PemExportCommandShould#resolveRootCaOnlyWhenEnabled" # disable test using network
+    ];
 
     installPhase = ''
       install -Dm644 target/crip.jar $out
diff --git a/nixpkgs/pkgs/by-name/ce/certificate-ripper/make-deterministic.patch b/nixpkgs/pkgs/by-name/ce/certificate-ripper/pin-default-maven-plguin-versions.patch
index b9e7aa1d0a1e..bce8fab057a7 100644
--- a/nixpkgs/pkgs/by-name/ce/certificate-ripper/make-deterministic.patch
+++ b/nixpkgs/pkgs/by-name/ce/certificate-ripper/pin-default-maven-plguin-versions.patch
@@ -2,15 +2,7 @@ diff --git a/pom.xml b/pom.xml
 index dd0075d..46ac184 100644
 --- a/pom.xml
 +++ b/pom.xml
-@@ -46,6 +46,7 @@
-         <version.license-maven-plugin>4.2.rc3</version.license-maven-plugin>
-         <license.git.copyrightYears>2021</license.git.copyrightYears>
-         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-+        <project.build.outputTimestamp>1980-01-01T00:00:02Z</project.build.outputTimestamp>
-     </properties>
- 
-     <scm>
-@@ -103,6 +104,55 @@
+@@ -103,6 +103,55 @@
  
      <build>
          <plugins>
diff --git a/nixpkgs/pkgs/by-name/ce/certmgr/package.nix b/nixpkgs/pkgs/by-name/ce/certmgr/package.nix
index 7b7ccbf34d68..e5579125a2ca 100644
--- a/nixpkgs/pkgs/by-name/ce/certmgr/package.nix
+++ b/nixpkgs/pkgs/by-name/ce/certmgr/package.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://cfssl.org/";
     description = "Cloudflare's automated certificate management using a CFSSL CA";
+    mainProgram = "certmgr";
     platforms = platforms.linux;
     license = licenses.bsd2;
     maintainers = with maintainers; [ johanot srhb ];
diff --git a/nixpkgs/pkgs/by-name/ch/ch341eeprom/package.nix b/nixpkgs/pkgs/by-name/ch/ch341eeprom/package.nix
new file mode 100644
index 000000000000..d98a23ce910c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ch/ch341eeprom/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, libusb1
+,
+}:
+stdenv.mkDerivation {
+  pname = "ch341eeprom";
+  version = "0-unstable-2021-01-05";
+
+  src = fetchFromGitHub {
+    owner = "command-tab";
+    repo = "ch341eeprom";
+    rev = "d5b2fba35a33a1cddd7a3e920e1df933f21ba9b0";
+    hash = "sha256-QUl5ErOfEfDhk1fF+BNu6n0Bake3IagNfn4I43b6Uns=";
+  };
+
+  buildInputs = [ libusb1 ];
+
+  dontConfigure = true;
+
+  makeFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 -T ch341eeprom $out/bin/ch341eeprom
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A libusb based programming tool for 24Cxx serial EEPROMs using the WinChipHead CH341A IC";
+    homepage = "https://github.com/command-tab/ch341eeprom";
+    license = licenses.gpl3;
+    platforms = platforms.darwin ++ platforms.linux;
+    mainProgram = "ch341eeprom";
+    maintainers = with maintainers; [ xokdvium ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ch/chawan/mancha-augment-path.diff b/nixpkgs/pkgs/by-name/ch/chawan/mancha-augment-path.diff
new file mode 100644
index 000000000000..cbe4f6aed80e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ch/chawan/mancha-augment-path.diff
@@ -0,0 +1,15 @@
+Add the -m option to man's command line to augment the list of paths
+searched by man. The string "OUT" must be substituted with chawan's $out
+path after patching.
+The required -m option is only available in the mandoc implementation.
+--- a/adapter/protocol/man
++++ b/adapter/protocol/man
+@@ -75,7 +75,7 @@ EOF
+ 
+   $section =~ s:([^-\w\200-\377.,])::g;
+   $man =~ s:([^-\w\200-\377.,])::g;
+-  open(F, "GROFF_NO_SGR=1 MAN_KEEP_FORMATTING=1 $MAN $section $man 2> /dev/null |");
++  open(F, "GROFF_NO_SGR=1 MAN_KEEP_FORMATTING=1 $MAN -m OUT/share/man $section $man 2> /dev/null |");
+ }
+ 
+ $ok = 0;
diff --git a/nixpkgs/pkgs/by-name/ch/chawan/package.nix b/nixpkgs/pkgs/by-name/ch/chawan/package.nix
new file mode 100644
index 000000000000..4a52e998fc7c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ch/chawan/package.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+, makeBinaryWrapper
+, curlMinimal
+, mandoc
+, ncurses
+, nim
+, pandoc
+, perl
+, pkg-config
+, zlib
+}:
+
+stdenv.mkDerivation {
+  pname = "chawan";
+  version = "0-unstable-2024-03-01";
+
+  src = fetchFromSourcehut {
+    owner = "~bptato";
+    repo = "chawan";
+    rev = "87ba9a87be15abbe06837f1519cfb76f4bf759f3";
+    hash = "sha256-Xs+Mxe5/uoxPMf4FuelpO+bRJ1KdfASVI7rWqtboJZw=";
+    fetchSubmodules = true;
+  };
+
+  patches = [
+    # Include chawan's man pages in mancha's search path
+    ./mancha-augment-path.diff
+  ];
+
+  env.NIX_CFLAGS_COMPILE = toString (
+    lib.optional stdenv.cc.isClang "-Wno-error=implicit-function-declaration"
+  );
+
+  buildInputs = [ curlMinimal ncurses perl zlib ];
+  nativeBuildInputs = [
+    makeBinaryWrapper
+    nim
+    pandoc
+    pkg-config
+  ];
+
+  postPatch = ''
+    substituteInPlace adapter/protocol/man \
+      --replace-fail "OUT" $out
+  '';
+
+  buildFlags = [ "all" "manpage" ];
+  installFlags = [
+    "DESTDIR=$(out)"
+    "PREFIX=/"
+  ];
+
+  postInstall =
+  let
+    makeWrapperArgs = ''
+      --set MANCHA_CHA $out/bin/cha \
+      --set MANCHA_MAN ${mandoc}/bin/man
+    '';
+  in
+  ''
+    wrapProgram $out/bin/cha ${makeWrapperArgs}
+    wrapProgram $out/bin/mancha ${makeWrapperArgs}
+  '';
+
+  meta = {
+    description = "Lightweight and featureful terminal web browser";
+    homepage = "https://sr.ht/~bptato/chawan/";
+    license = lib.licenses.publicDomain;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ jtbx ];
+    mainProgram = "cha";
+    broken = stdenv.isDarwin; # pending PR #292043
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ch/chess-clock/package.nix b/nixpkgs/pkgs/by-name/ch/chess-clock/package.nix
index f8fc0f9baa9a..9e36fc97d00a 100644
--- a/nixpkgs/pkgs/by-name/ch/chess-clock/package.nix
+++ b/nixpkgs/pkgs/by-name/ch/chess-clock/package.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Time games of over-the-board chess";
+    mainProgram = "chess-clock";
     homepage = "https://gitlab.gnome.org/World/chess-clock";
     changelog = "https://gitlab.gnome.org/World/chess-clock/-/releases/v${version}";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/by-name/ch/chromatic/package.nix b/nixpkgs/pkgs/by-name/ch/chromatic/package.nix
index 7eaae7818543..0598bababaa6 100644
--- a/nixpkgs/pkgs/by-name/ch/chromatic/package.nix
+++ b/nixpkgs/pkgs/by-name/ch/chromatic/package.nix
@@ -26,10 +26,17 @@ stdenv.mkDerivation rec {
     hash = "sha256-E3v3UoQumBBYDOiXMfCRh5J7bfUCkettHth7SAresCE=";
   };
 
+  patches = [
+    # solve error[E0310]: the parameter type `T` may not live long enough
+    # in rust-serialize crate
+    ./rustc_serialize_update.patch
+  ];
+
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-M3UMeGkLf57/I/9BIkyiMpOvjbKQJrOk+axf05vRoW0=";
+    patches = [ ./rustc_serialize_update.patch ];
+    hash = "sha256-1Zb0J2tO/gIifDymmoXxZf6RNV8foE9QiQqZcrHrWzE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/by-name/ch/chromatic/rustc_serialize_update.patch b/nixpkgs/pkgs/by-name/ch/chromatic/rustc_serialize_update.patch
new file mode 100644
index 000000000000..fa56db4d5399
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ch/chromatic/rustc_serialize_update.patch
@@ -0,0 +1,16 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index ab2add4..7740629 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1031,9 +1031,9 @@ checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+ 
+ [[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 = "rustc_version"
diff --git a/nixpkgs/pkgs/by-name/ci/cidr-merger/package.nix b/nixpkgs/pkgs/by-name/ci/cidr-merger/package.nix
index 3d0612071609..def8f4080933 100644
--- a/nixpkgs/pkgs/by-name/ci/cidr-merger/package.nix
+++ b/nixpkgs/pkgs/by-name/ci/cidr-merger/package.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A simple command line tool to merge ip/ip cidr/ip range, supports IPv4/IPv6";
+    mainProgram = "cidr-merger";
     homepage = "https://github.com/zhanhb/cidr-merger";
     license = licenses.mit;
     maintainers = with maintainers; [ cyounkins ];
diff --git a/nixpkgs/pkgs/by-name/ci/cimg/package.nix b/nixpkgs/pkgs/by-name/ci/cimg/package.nix
index 3763fcc90912..1f2bb7f10a77 100644
--- a/nixpkgs/pkgs/by-name/ci/cimg/package.nix
+++ b/nixpkgs/pkgs/by-name/ci/cimg/package.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "cimg";
-  version = "3.3.4";
+  version = "3.3.5";
 
   src = fetchFromGitHub {
     owner = "GreycLab";
     repo = "CImg";
     rev = "v.${finalAttrs.version}";
-    hash = "sha256-qo/k5NpTqu+o2WUEOThozuBJVPMMy8OvIMo2DfJUE8g=";
+    hash = "sha256-QdQhMEY6Zl3qdvRIeDv/12TL4HMrNJSAQ66vQymOrBU=";
   };
 
   outputs = [ "out" "doc" ];
diff --git a/nixpkgs/pkgs/by-name/ci/circom/package.nix b/nixpkgs/pkgs/by-name/ci/circom/package.nix
index 4601704293d4..f142a7fc234a 100644
--- a/nixpkgs/pkgs/by-name/ci/circom/package.nix
+++ b/nixpkgs/pkgs/by-name/ci/circom/package.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "zkSnark circuit compiler";
+    mainProgram = "circom";
     homepage = "https://github.com/iden3/circom";
     changelog = "https://github.com/iden3/circom/blob/${src.rev}/RELEASES.md";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/by-name/ci/ciscoPacketTracer8/package.nix b/nixpkgs/pkgs/by-name/ci/ciscoPacketTracer8/package.nix
index 5784c156e956..9dbd32c31b3f 100644
--- a/nixpkgs/pkgs/by-name/ci/ciscoPacketTracer8/package.nix
+++ b/nixpkgs/pkgs/by-name/ci/ciscoPacketTracer8/package.nix
@@ -29,19 +29,25 @@
 
 let
   hashes = {
-    "8.2.0" = "1b19885d59f6130ee55414fb02e211a1773460689db38bfd1ac7f0d45117ed16";
-    "8.2.1" = "1fh79r4fnh9gjxjh39gcp4j7npgs5hh3qhrhx74x8x546an3i0s2";
+    "8.2.0" = "sha256-GxmIXVn2Ew7lVBT7AuIRoXc0YGids4v9Gsfw1FEX7RY=";
+    "8.2.1" = "sha256-QoM4rDKkdNTJ6TBDPCAs+l17JLnspQFlly9B60hOB7o=";
+    "8.2.2" = "sha256-bNK4iR35LSyti2/cR0gPwIneCFxPP+leuA1UUKKn9y0=";
+  };
+  names = {
+    "8.2.0" = "CiscoPacketTracer_820_Ubuntu_64bit.deb";
+    "8.2.1" = "CiscoPacketTracer_821_Ubuntu_64bit.deb";
+    "8.2.2" = "CiscoPacketTracer822_amd64_signed.deb";
   };
 in
 
 stdenvNoCC.mkDerivation rec {
   pname = "ciscoPacketTracer8";
 
-  version = "8.2.1";
+  version = "8.2.2";
 
   src = requireFile {
-    name = "CiscoPacketTracer_${builtins.replaceStrings ["."] [""] version}_Ubuntu_64bit.deb";
-    sha256 = hashes.${version};
+    name = names.${version};
+    hash = hashes.${version};
     url = "https://www.netacad.com";
   };
 
@@ -114,5 +120,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.unfree;
     maintainers = with maintainers; [ lucasew ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "packettracer8";
   };
 }
diff --git a/nixpkgs/pkgs/by-name/cl/clamtk/package.nix b/nixpkgs/pkgs/by-name/cl/clamtk/package.nix
index 3c85528a6e63..b34850c92599 100644
--- a/nixpkgs/pkgs/by-name/cl/clamtk/package.nix
+++ b/nixpkgs/pkgs/by-name/cl/clamtk/package.nix
@@ -67,6 +67,7 @@ perlPackages.buildPerlPackage rec {
     description = ''
       Easy to use, lightweight front-end for ClamAV (Clam Antivirus).
     '';
+    mainProgram = "clamtk";
     license = licenses.gpl1Plus;
     homepage = "https://github.com/dave-theunsub/clamtk";
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/cl/clangbuildanalyzer/package.nix b/nixpkgs/pkgs/by-name/cl/clangbuildanalyzer/package.nix
new file mode 100644
index 000000000000..21b67fcf44c4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cl/clangbuildanalyzer/package.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, cmake, fetchFromGitHub }:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "clangbuildanalyzer";
+  version = "1.5.0";
+
+  src = fetchFromGitHub {
+    owner = "aras-p";
+    repo = "ClangBuildAnalyzer";
+    rev = "v${finalAttrs.version}";
+    sha256 = "sha256-kmgdk634zM0W0OoRoP/RzepArSipa5bNqdVgdZO9gxo=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  meta = {
+    description = "Tool for analyzing Clang's -ftime-trace files";
+    homepage = "https://github.com/aras-p/ClangBuildAnalyzer";
+    maintainers = with lib.maintainers; [ lf- ];
+    license = lib.licenses.unlicense;
+    platforms = lib.platforms.unix;
+    mainProgram = "ClangBuildAnalyzer";
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/cl/clash-meta/package.nix b/nixpkgs/pkgs/by-name/cl/clash-meta/package.nix
index 5ebb461a595b..552a8729e861 100644
--- a/nixpkgs/pkgs/by-name/cl/clash-meta/package.nix
+++ b/nixpkgs/pkgs/by-name/cl/clash-meta/package.nix
@@ -1,45 +1,13 @@
-{ lib
-, fetchFromGitHub
-, buildGoModule
-}:
+{ mihomo }:
 
-buildGoModule rec {
+mihomo.overrideAttrs (finalAttrs: previousAttrs: {
   pname = "clash-meta";
-  version = "1.18.1";
-
-  src = fetchFromGitHub {
-    owner = "MetaCubeX";
-    repo = "mihomo";
-    rev = "v${version}";
-    hash = "sha256-ezOkDrpytZQdc+Txe4eUyuWY6oipn9jIrmu7aO8lNlQ=";
-  };
-
-  vendorHash = "sha256-tvPR5kAta4MlMTwjfxwVOacRr2nVpfalbN08mfxml64=";
-
-  excludedPackages = [ "./test" ];
-
-  ldflags = [
-    "-s"
-    "-w"
-    "-X github.com/metacubex/mihomo/constant.Version=${version}"
-  ];
-
-  tags = [
-    "with_gvisor"
-  ];
-
-  # network required
-  doCheck = false;
 
   postInstall = ''
-    mv $out/bin/mihomo $out/bin/clash-meta
+    mv $out/bin/${previousAttrs.meta.mainProgram} $out/bin/${finalAttrs.meta.mainProgram}
   '';
 
-  meta = with lib; {
-    description = "A rule-based tunnel in Go. Present named mihomo";
-    homepage = "https://github.com/MetaCubeX/mihomo";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ oluceps ];
+  meta = previousAttrs.meta // {
     mainProgram = "clash-meta";
   };
-}
+})
diff --git a/nixpkgs/pkgs/by-name/cl/clash-nyanpasu/package.nix b/nixpkgs/pkgs/by-name/cl/clash-nyanpasu/package.nix
new file mode 100644
index 000000000000..90da8892b094
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cl/clash-nyanpasu/package.nix
@@ -0,0 +1,23 @@
+{ lib
+, clash-verge
+, mihomo
+, fetchurl
+}:
+
+(clash-verge.override {
+  clash-meta = mihomo;
+}).overrideAttrs (old: rec {
+  pname = "clash-nyanpasu";
+  version = "1.4.5";
+
+  src = fetchurl {
+    url = "https://github.com/keiko233/clash-nyanpasu/releases/download/v${version}/clash-nyanpasu_${version}_amd64.deb";
+    hash = "sha256-cxaq7Rndf0ytEaqc7CGQix5SOAdsTOoTj1Jlhjr5wEA=";
+  };
+
+  meta = old.meta // (with lib; {
+    homepage = "https://github.com/keiko233/clash-nyanpasu";
+    maintainers = with maintainers; [ Guanran928 ];
+    mainProgram = "clash-nyanpasu";
+  });
+})
diff --git a/nixpkgs/pkgs/by-name/cl/clash-verge-rev/package.nix b/nixpkgs/pkgs/by-name/cl/clash-verge-rev/package.nix
new file mode 100644
index 000000000000..576a994c1e73
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cl/clash-verge-rev/package.nix
@@ -0,0 +1,19 @@
+{ lib
+, clash-verge
+, fetchurl
+}:
+
+clash-verge.overrideAttrs (old: rec {
+  pname = "clash-verge-rev";
+  version = "1.5.10";
+
+  src = fetchurl {
+    url = "https://github.com/clash-verge-rev/clash-verge-rev/releases/download/v${version}/clash-verge_${version}_amd64.deb";
+    hash = "sha256-xv6xKAjpHL4eyFEcgiuHZQi3EDhYkzGHAKbcKm4rIGk=";
+  };
+
+  meta = old.meta // (with lib; {
+    homepage = "https://github.com/clash-verge-rev/clash-verge-rev";
+    maintainers = with maintainers; [ Guanran928 ];
+  });
+})
diff --git a/nixpkgs/pkgs/applications/networking/clash-verge/default.nix b/nixpkgs/pkgs/by-name/cl/clash-verge/package.nix
index f83583283d4f..1a8d6a99198e 100644
--- a/nixpkgs/pkgs/applications/networking/clash-verge/default.nix
+++ b/nixpkgs/pkgs/by-name/cl/clash-verge/package.nix
@@ -9,6 +9,7 @@
 , webkitgtk
 , udev
 , libayatana-appindicator
+, nix-update-script
 }:
 
 stdenv.mkDerivation rec {
@@ -42,15 +43,17 @@ stdenv.mkDerivation rec {
 
     mkdir -p $out/bin
     mv usr/* $out
-    rm $out/bin/{clash,clash-meta}
 
     runHook postInstall
   '';
 
   postFixup = ''
-    ln -s ${lib.getExe clash-meta} $out/bin/clash-meta
+    rm -f $out/bin/clash
+    ln -sf ${lib.getExe clash-meta} $out/bin/${clash-meta.meta.mainProgram}
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     description = "A Clash GUI based on tauri";
     homepage = "https://github.com/zzzgydi/clash-verge";
diff --git a/nixpkgs/pkgs/by-name/cl/clipse/package.nix b/nixpkgs/pkgs/by-name/cl/clipse/package.nix
new file mode 100644
index 000000000000..af4b96385d16
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cl/clipse/package.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "clipse";
+  version = "0.0.6";
+
+  src = fetchFromGitHub {
+    owner = "savedra1";
+    repo = "clipse";
+    rev = "v${version}";
+    hash = "sha256-DLvYTPlLkp98zCzmbeL68B7mHl7RY3ee9rL30vYm5Ow=";
+  };
+
+  vendorHash = "sha256-GIUEx4h3xvLySjBAQKajby2cdH8ioHkv8aPskHN0V+w=";
+
+  meta = {
+    description = "Useful clipboard manager TUI for Unix";
+    homepage = "https://github.com/savedra1/clipse";
+    license = lib.licenses.mit;
+    mainProgram = "clipse";
+    maintainers = [ lib.maintainers.savedra1 ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/cl/clzip/package.nix b/nixpkgs/pkgs/by-name/cl/clzip/package.nix
index 19ec4347a1e7..d2e17c5e14a0 100644
--- a/nixpkgs/pkgs/by-name/cl/clzip/package.nix
+++ b/nixpkgs/pkgs/by-name/cl/clzip/package.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://www.nongnu.org/lzip/clzip.html";
     description = "C language version of lzip";
+    mainProgram = "clzip";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/by-name/cn/cntb/package.nix b/nixpkgs/pkgs/by-name/cn/cntb/package.nix
index 98364e8f9a88..24b319308919 100644
--- a/nixpkgs/pkgs/by-name/cn/cntb/package.nix
+++ b/nixpkgs/pkgs/by-name/cn/cntb/package.nix
@@ -18,6 +18,7 @@
 
   meta = with lib; {
     description = "CLI tool for managing your products from Contabo like VPS and VDS";
+    mainProgram = "cntb";
     homepage = "https://github.com/contabo/cntb";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ aciceri ];
diff --git a/nixpkgs/pkgs/by-name/co/cockpit/package.nix b/nixpkgs/pkgs/by-name/co/cockpit/package.nix
index b5cee2033ddd..db977bafe822 100644
--- a/nixpkgs/pkgs/by-name/co/cockpit/package.nix
+++ b/nixpkgs/pkgs/by-name/co/cockpit/package.nix
@@ -44,13 +44,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "cockpit";
-  version = "311";
+  version = "313";
 
   src = fetchFromGitHub {
     owner = "cockpit-project";
     repo = "cockpit";
     rev = "refs/tags/${version}";
-    hash = "sha256-RsOLYvwLu0eNmSZJoCi1dcB2a3JqMbus/gOyL74kCB4=";
+    hash = "sha256-k/JbvotOcVs2OXwGOrnjY0xYRRgvk61p0o7VQTTPqz4=";
     fetchSubmodules = true;
   };
 
@@ -217,6 +217,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Web-based graphical interface for servers";
+    mainProgram = "cockpit-bridge";
     homepage = "https://cockpit-project.org/";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ lucasew ];
diff --git a/nixpkgs/pkgs/by-name/co/codeium/package.nix b/nixpkgs/pkgs/by-name/co/codeium/package.nix
index c0b8565d146b..28343e1b3cfc 100644
--- a/nixpkgs/pkgs/by-name/co/codeium/package.nix
+++ b/nixpkgs/pkgs/by-name/co/codeium/package.nix
@@ -13,10 +13,10 @@ let
   }.${system} or throwSystem;
 
   hash = {
-    x86_64-linux = "sha256-/heSkG7TtDHzNfvXblR6A5y+c12EmuQ8XZGDRqIEvtg=";
-    aarch64-linux = "sha256-WkpcNwWS0e5NURfHloV4xjIGSRPfP0RRflq98NY16AY=";
-    x86_64-darwin = "sha256-nXPaangEVRZf/dEt+i0AWOyT66jGIcRaN4ZO3k/VMh4=";
-    aarch64-darwin = "sha256-hs2lLy9thrp414+oQSf9euwNuU06UggLQ/EuMg/lrc0=";
+    x86_64-linux = "sha256-5rvLkJ0sFRgIekGVxk/r1gxheJHIKYsWqvtukqh+YTI=";
+    aarch64-linux = "sha256-19jKB71ZLkDqrsuacFb2JLBniOEyMediJBfLCP5Ss7o=";
+    x86_64-darwin = "sha256-DVuBMNhdQUcz29aidzkBQfHNk/ttOg0WrmUAuu6MG7A=";
+    aarch64-darwin = "sha256-lf/kBZFVYbE9GMkPPM/5MrMyavywCJF+FO54RTnup8g=";
   }.${system} or throwSystem;
 
   bin = "$out/bin/codeium_language_server";
@@ -24,7 +24,7 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "codeium";
-  version = "1.8.5";
+  version = "1.8.13";
   src = fetchurl {
     name = "${finalAttrs.pname}-${finalAttrs.version}.gz";
     url = "https://github.com/Exafunction/codeium/releases/download/language-server-v${finalAttrs.version}/language_server_${plat}.gz";
diff --git a/nixpkgs/pkgs/by-name/co/commitmsgfmt/package.nix b/nixpkgs/pkgs/by-name/co/commitmsgfmt/package.nix
index 45ee60ff0b3b..508ce1f98312 100644
--- a/nixpkgs/pkgs/by-name/co/commitmsgfmt/package.nix
+++ b/nixpkgs/pkgs/by-name/co/commitmsgfmt/package.nix
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.com/mkjeldsen/commitmsgfmt";
     changelog = "https://gitlab.com/mkjeldsen/commitmsgfmt/-/raw/v${version}/CHANGELOG.md";
     description = "Formats commit messages better than fmt(1) and Vim";
+    mainProgram = "commitmsgfmt";
     license = licenses.asl20;
     maintainers = with maintainers; [ mmlb ];
   };
diff --git a/nixpkgs/pkgs/by-name/co/connman-gtk/package.nix b/nixpkgs/pkgs/by-name/co/connman-gtk/package.nix
index c75254a27b15..46dce2aa2930 100644
--- a/nixpkgs/pkgs/by-name/co/connman-gtk/package.nix
+++ b/nixpkgs/pkgs/by-name/co/connman-gtk/package.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GTK GUI for Connman";
+    mainProgram = "connman-gtk";
     homepage = "https://github.com/jgke/connman-gtk";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/co/connman-ncurses/package.nix b/nixpkgs/pkgs/by-name/co/connman-ncurses/package.nix
index 9d638c48000a..53b488159823 100644
--- a/nixpkgs/pkgs/by-name/co/connman-ncurses/package.nix
+++ b/nixpkgs/pkgs/by-name/co/connman-ncurses/package.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Simple ncurses UI for connman";
+    mainProgram = "connman_ncurses";
     homepage = "https://github.com/eurogiciel-oss/connman-json-client";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/co/connman-notify/package.nix b/nixpkgs/pkgs/by-name/co/connman-notify/package.nix
index cbf500913038..c8df6bc89352 100644
--- a/nixpkgs/pkgs/by-name/co/connman-notify/package.nix
+++ b/nixpkgs/pkgs/by-name/co/connman-notify/package.nix
@@ -28,6 +28,7 @@ python3Packages.buildPythonApplication {
 
   meta = with lib; {
     description = "Desktop notification integration for connman";
+    mainProgram = "connman-notify";
     homepage = "https://gitlab.com/wavexx/connman-notify";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/co/connman_dmenu/package.nix b/nixpkgs/pkgs/by-name/co/connman_dmenu/package.nix
index 86e5a62fb8de..0a193493b71a 100644
--- a/nixpkgs/pkgs/by-name/co/connman_dmenu/package.nix
+++ b/nixpkgs/pkgs/by-name/co/connman_dmenu/package.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "A dmenu wrapper for connmann";
+    mainProgram = "connman_dmenu";
     homepage = "https://github.com/march-linux/connman_dmenu";
     license = lib.licenses.free;
     maintainers = [ lib.maintainers.magnetophon ];
diff --git a/nixpkgs/pkgs/by-name/co/convco/package.nix b/nixpkgs/pkgs/by-name/co/convco/package.nix
index 5a2319139e69..2883cb56e2cf 100644
--- a/nixpkgs/pkgs/by-name/co/convco/package.nix
+++ b/nixpkgs/pkgs/by-name/co/convco/package.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "convco";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "convco";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-x01fkicoAH8NaJJqIF5jjbZ53TitnXBCdKEbr8xVCyE=";
+    hash = "sha256-b05RO6x5hnxG6gepRTK4CDlnLqMdp8hl4KL+InzBH70=";
   };
 
-  cargoHash = "sha256-j2xuaAkycWp5sCAmVJLYfqH1ZGxIGU/a/97WpGyQcvU=";
+  cargoHash = "sha256-pdnH/9Tda6PXf70W76mg5vVE2rzOI+M61UR+HMtgXC0=";
 
   nativeBuildInputs = [ cmake pkg-config ];
 
@@ -28,6 +28,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A Conventional commit cli";
+    mainProgram = "convco";
     homepage = "https://github.com/convco/convco";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ hoverbear cafkafk ];
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-applibrary/Cargo.lock b/nixpkgs/pkgs/by-name/co/cosmic-applibrary/Cargo.lock
index aac1e5fa7736..a481c9a5d943 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-applibrary/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/co/cosmic-applibrary/Cargo.lock
@@ -4,28 +4,31 @@ version = 3
 
 [[package]]
 name = "accesskit"
-version = "0.11.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.12.2"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 
 [[package]]
 name = "accesskit_consumer"
-version = "0.15.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.17.0"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
 ]
 
 [[package]]
 name = "accesskit_unix"
-version = "0.4.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.7.1"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
  "accesskit_consumer",
- "async-channel 1.9.0",
+ "async-channel",
+ "async-executor",
+ "async-task",
  "atspi",
  "futures-lite 1.13.0",
- "log",
+ "futures-util",
+ "once_cell",
  "serde",
  "zbus",
 ]
@@ -47,17 +50,6 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "ahash"
-version = "0.7.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
-dependencies = [
- "getrandom",
- "once_cell",
- "version_check",
-]
-
-[[package]]
-name = "ahash"
 version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
@@ -106,9 +98,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.5"
+version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6"
+checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -120,9 +112,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.4"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
@@ -208,9 +200,9 @@ dependencies = [
 
 [[package]]
 name = "ashpd"
-version = "0.6.7"
+version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c018490e423efb6f032ef575f873ea57b61d44bec763cfe027b8e8852a027cf"
+checksum = "4ac22eda5891cc086690cb6fa10121c0390de0e3b04eb269f2d766b00d3f2d81"
 dependencies = [
  "enumflags2",
  "futures-channel",
@@ -239,24 +231,13 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
-dependencies = [
- "concurrent-queue",
- "event-listener 2.5.3",
- "futures-core",
-]
-
-[[package]]
-name = "async-channel"
-version = "2.1.1"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
 dependencies = [
  "concurrent-queue",
- "event-listener 4.0.2",
- "event-listener-strategy",
+ "event-listener 5.0.0",
+ "event-listener-strategy 0.5.0",
  "futures-core",
  "pin-project-lite",
 ]
@@ -267,11 +248,11 @@ version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
 dependencies = [
- "async-lock 3.2.0",
+ "async-lock 3.3.0",
  "async-task",
  "concurrent-queue",
  "fastrand 2.0.1",
- "futures-lite 2.1.0",
+ "futures-lite 2.2.0",
  "slab",
 ]
 
@@ -309,18 +290,18 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.2.2"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7"
+checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
 dependencies = [
- "async-lock 3.2.0",
+ "async-lock 3.3.0",
  "cfg-if",
  "concurrent-queue",
  "futures-io",
- "futures-lite 2.1.0",
+ "futures-lite 2.2.0",
  "parking",
- "polling 3.3.1",
- "rustix 0.38.28",
+ "polling 3.4.0",
+ "rustix 0.38.31",
  "slab",
  "tracing",
  "windows-sys 0.52.0",
@@ -337,12 +318,12 @@ dependencies = [
 
 [[package]]
 name = "async-lock"
-version = "3.2.0"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
 dependencies = [
- "event-listener 4.0.2",
- "event-listener-strategy",
+ "event-listener 4.0.3",
+ "event-listener-strategy 0.4.0",
  "pin-project-lite",
 ]
 
@@ -359,7 +340,7 @@ dependencies = [
  "cfg-if",
  "event-listener 3.1.0",
  "futures-lite 1.13.0",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "windows-sys 0.48.0",
 ]
 
@@ -371,7 +352,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -380,13 +361,13 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io 2.2.2",
+ "async-io 2.3.1",
  "async-lock 2.8.0",
  "atomic-waker",
  "cfg-if",
  "futures-core",
  "futures-io",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "signal-hook-registry",
  "slab",
  "windows-sys 0.48.0",
@@ -394,9 +375,9 @@ dependencies = [
 
 [[package]]
 name = "async-task"
-version = "4.6.0"
+version = "4.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46"
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
 
 [[package]]
 name = "async-trait"
@@ -406,7 +387,19 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "atk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
 ]
 
 [[package]]
@@ -420,36 +413,57 @@ name = "atomicwrites"
 version = "0.4.2"
 source = "git+https://github.com/jackpot51/rust-atomicwrites#043ab4859d53ffd3d55334685303d8df39c9f768"
 dependencies = [
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "tempfile",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "atspi"
-version = "0.10.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "674e7a3376837b2e7d12d34d58ac47073c491dc3bf6f71a7adaf687d4d817faa"
+checksum = "6059f350ab6f593ea00727b334265c4dfc7fd442ee32d264794bd9bdc68e87ca"
+dependencies = [
+ "atspi-common",
+ "atspi-connection",
+ "atspi-proxies",
+]
+
+[[package]]
+name = "atspi-common"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92af95f966d2431f962bc632c2e68eda7777330158bf640c4af4249349b2cdf5"
 dependencies = [
- "async-recursion",
- "async-trait",
- "atspi-macros",
  "enumflags2",
- "futures-lite 1.13.0",
  "serde",
- "tracing",
+ "static_assertions",
  "zbus",
  "zbus_names",
+ "zvariant",
 ]
 
 [[package]]
-name = "atspi-macros"
-version = "0.2.0"
+name = "atspi-connection"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fb4870a32c0eaa17e35bca0e6b16020635157121fb7d45593d242c295bc768"
+checksum = "a0c65e7d70f86d4c0e3b2d585d9bf3f979f0b19d635a336725a88d279f76b939"
 dependencies = [
- "quote",
- "syn 1.0.109",
+ "atspi-common",
+ "atspi-proxies",
+ "futures-lite 1.13.0",
+ "zbus",
+]
+
+[[package]]
+name = "atspi-proxies"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6495661273703e7a229356dcbe8c8f38223d697aacfaf0e13590a9ac9977bb52"
+dependencies = [
+ "atspi-common",
+ "serde",
+ "zbus",
 ]
 
 [[package]]
@@ -475,9 +489,9 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.21.5"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "bit-set"
@@ -508,9 +522,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 dependencies = [
  "serde",
 ]
@@ -536,12 +550,12 @@ version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
- "async-channel 2.1.1",
- "async-lock 3.2.0",
+ "async-channel",
+ "async-lock 3.3.0",
  "async-task",
  "fastrand 2.0.1",
  "futures-io",
- "futures-lite 2.1.0",
+ "futures-lite 2.2.0",
  "piper",
  "tracing",
 ]
@@ -554,9 +568,9 @@ checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.0"
+version = "1.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
 dependencies = [
  "bytemuck_derive",
 ]
@@ -569,7 +583,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -585,15 +599,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
+name = "cairo-sys-rs"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
 name = "calloop"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b50b5a44d59a98c55a9eeb518f39bf7499ba19fd98ee7d22618687f3f10adbf"
+checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "log",
- "polling 3.3.1",
- "rustix 0.38.28",
+ "polling 3.4.0",
+ "rustix 0.38.31",
  "slab",
  "thiserror",
 ]
@@ -605,9 +629,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
 dependencies = [
  "calloop",
- "rustix 0.38.28",
- "wayland-backend 0.3.2",
- "wayland-client 0.31.1",
+ "rustix 0.38.31",
+ "wayland-backend 0.3.3",
+ "wayland-client 0.31.2",
 ]
 
 [[package]]
@@ -620,6 +644,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "cfg-expr"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
 name = "cfg-if"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -632,10 +666,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77e53693616d3075149f4ead59bdeecd204ac6b8192d8969757601b74bddf00f"
+
+[[package]]
 name = "clap"
-version = "4.4.12"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcfab8ba68f3668e89f6ff60f5b205cea56aa7b769451a59f34b8682f51c056d"
+checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -643,33 +683,33 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.12"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9"
+checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99"
 dependencies = [
  "anstream",
  "anstyle",
  "clap_lex",
- "strsim",
+ "strsim 0.11.0",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.4.7"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "cocoa"
@@ -724,10 +764,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
-name = "com-rs"
-version = "0.2.1"
+name = "com"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e17887fd17353b65b1b2ef1c526c83e26cd72e74f598a8dc1bee13a48f3d9f6"
+dependencies = [
+ "com_macros",
+]
+
+[[package]]
+name = "com_macros"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642"
+checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5"
+dependencies = [
+ "com_macros_support",
+ "proc-macro2",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "com_macros_support"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
 
 [[package]]
 name = "concurrent-queue"
@@ -739,6 +804,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "const-random"
+version = "0.1.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a"
+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 = "core-foundation"
 version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -802,6 +887,7 @@ dependencies = [
  "rust-embed",
  "serde",
  "shlex",
+ "switcheroo-control",
  "tokio",
  "url",
  "xdg",
@@ -811,17 +897,17 @@ dependencies = [
 [[package]]
 name = "cosmic-client-toolkit"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/cosmic-protocols?rev=c1b6516#c1b651630c2b71cd8dfd2eb4ab47ede9dbd63840"
+source = "git+https://github.com/pop-os/cosmic-protocols?rev=e65fa5e#e65fa5e2bb47e51656221657049bd3f88ae9dae5"
 dependencies = [
  "cosmic-protocols",
  "smithay-client-toolkit 0.18.0",
- "wayland-client 0.31.1",
+ "wayland-client 0.31.2",
 ]
 
 [[package]]
 name = "cosmic-config"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "atomicwrites",
  "cosmic-config-derive",
@@ -829,17 +915,19 @@ dependencies = [
  "dirs 5.0.1",
  "futures-util",
  "iced_futures",
+ "known-folders",
  "notify",
  "once_cell",
  "ron",
  "serde",
+ "xdg",
  "zbus",
 ]
 
 [[package]]
 name = "cosmic-config-derive"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "quote",
  "syn 1.0.109",
@@ -848,13 +936,13 @@ dependencies = [
 [[package]]
 name = "cosmic-protocols"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/cosmic-protocols?rev=c1b6516#c1b651630c2b71cd8dfd2eb4ab47ede9dbd63840"
+source = "git+https://github.com/pop-os/cosmic-protocols?rev=e65fa5e#e65fa5e2bb47e51656221657049bd3f88ae9dae5"
 dependencies = [
- "bitflags 2.4.1",
- "wayland-backend 0.3.2",
- "wayland-client 0.31.1",
- "wayland-protocols 0.31.0",
- "wayland-scanner 0.31.0",
+ "bitflags 2.4.2",
+ "wayland-backend 0.3.3",
+ "wayland-client 0.31.2",
+ "wayland-protocols 0.31.2",
+ "wayland-scanner 0.31.1",
  "wayland-server",
 ]
 
@@ -868,10 +956,10 @@ dependencies = [
 
 [[package]]
 name = "cosmic-text"
-version = "0.10.0"
-source = "git+https://github.com/pop-os/cosmic-text.git?branch=refactor#6abf336e6df08771d80232b2d6853269be34ee28"
+version = "0.11.1"
+source = "git+https://github.com/pop-os/cosmic-text.git#cb447ea8c6717d558994575b93a00baa549d01f8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "fontdb",
  "libm",
  "log",
@@ -881,6 +969,7 @@ dependencies = [
  "self_cell 1.0.3",
  "swash",
  "sys-locale",
+ "ttf-parser",
  "unicode-bidi",
  "unicode-linebreak",
  "unicode-script",
@@ -890,7 +979,7 @@ dependencies = [
 [[package]]
 name = "cosmic-theme"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "almost",
  "cosmic-config",
@@ -903,9 +992,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -921,44 +1010,37 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.10"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2"
+checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.4"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.17"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.18"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crunchy"
@@ -999,7 +1081,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
 dependencies = [
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1022,20 +1104,19 @@ checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
 
 [[package]]
 name = "d3d12"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libloading 0.8.1",
  "winapi",
 ]
 
 [[package]]
 name = "darling"
-version = "0.20.3"
+version = "0.20.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+checksum = "fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8"
 dependencies = [
  "darling_core",
  "darling_macro",
@@ -1043,27 +1124,27 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.20.3"
+version = "0.20.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
+checksum = "04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim",
- "syn 2.0.46",
+ "strsim 0.10.0",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.20.3"
+version = "0.20.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
+checksum = "1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1073,7 +1154,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
  "cfg-if",
- "hashbrown 0.14.3",
+ "hashbrown",
  "lock_api",
  "once_cell",
  "parking_lot_core 0.9.9",
@@ -1105,7 +1186,7 @@ dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1129,15 +1210,6 @@ dependencies = [
 
 [[package]]
 name = "dirs"
-version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
-dependencies = [
- "dirs-sys 0.3.7",
-]
-
-[[package]]
-name = "dirs"
 version = "5.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
@@ -1169,6 +1241,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "dispatch"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
+
+[[package]]
 name = "displaydoc"
 version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1176,7 +1254,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1190,9 +1268,12 @@ dependencies = [
 
 [[package]]
 name = "dlv-list"
-version = "0.3.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
+checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
+dependencies = [
+ "const-random",
+]
 
 [[package]]
 name = "downcast-rs"
@@ -1202,25 +1283,25 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
 [[package]]
 name = "drm"
-version = "0.10.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fb1b703ffbc7ebd216eba7900008049a56ace55580ecb2ee7fa801e8d8be87"
+checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bytemuck",
  "drm-ffi",
  "drm-fourcc",
- "nix 0.27.1",
+ "rustix 0.38.31",
 ]
 
 [[package]]
 name = "drm-ffi"
-version = "0.6.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba7d1c19c4b6270e89d59fb27dc6d02a317c658a8a54e54781e1db9b5947595d"
+checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6"
 dependencies = [
  "drm-sys",
- "nix 0.27.1",
+ "rustix 0.38.31",
 ]
 
 [[package]]
@@ -1231,9 +1312,13 @@ checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4"
 
 [[package]]
 name = "drm-sys"
-version = "0.5.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a4f1c0468062a56cd5705f1e3b5409eb286d5596a2028ec8e947595d7e715ae"
+checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176"
+dependencies = [
+ "libc",
+ "linux-raw-sys 0.6.4",
+]
 
 [[package]]
 name = "either"
@@ -1270,14 +1355,14 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "env_logger"
-version = "0.10.1"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -1340,9 +1425,20 @@ dependencies = [
 
 [[package]]
 name = "event-listener"
-version = "4.0.2"
+version = "4.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "218a870470cce1469024e9fb66b901aa983929d81304a1cdb299f28118e550d5"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "5.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b72557800024fabbaa2449dd4bf24e37b93702d457a4d4f2b0dd1f0f039f20c1"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -1355,18 +1451,28 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
 dependencies = [
- "event-listener 4.0.2",
+ "event-listener 4.0.3",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+dependencies = [
+ "event-listener 5.0.0",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "exr"
-version = "1.6.4"
+version = "1.72.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "279d3efcc55e19917fff7ab3ddd6c14afb6a90881a0078465196fe2f99d08c56"
+checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4"
 dependencies = [
  "bit_field",
- "flume 0.10.14",
+ "flume",
  "half",
  "lebe",
  "miniz_oxide",
@@ -1398,9 +1504,9 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "209098dd6dfc4445aa6111f0e98653ac323eaa4dfd212c9ca3931bf9955c31bd"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
@@ -1497,26 +1603,10 @@ dependencies = [
 
 [[package]]
 name = "flume"
-version = "0.10.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
-dependencies = [
- "futures-core",
- "futures-sink",
- "nanorand",
- "pin-project",
- "spin",
-]
-
-[[package]]
-name = "flume"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
 dependencies = [
- "futures-core",
- "futures-sink",
- "nanorand",
  "spin",
 ]
 
@@ -1527,23 +1617,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
+name = "font-types"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bd7f3ea17572640b606b35df42cfb6ecdf003704b062580e59918692190b73d"
+
+[[package]]
 name = "fontconfig-parser"
-version = "0.5.3"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "674e258f4b5d2dcd63888c01c68413c51f565e8af99d2f7701c7b81d79ef41c4"
+checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d"
 dependencies = [
- "roxmltree 0.18.1",
+ "roxmltree",
 ]
 
 [[package]]
 name = "fontdb"
-version = "0.16.0"
+version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98b88c54a38407f7352dd2c4238830115a6377741098ffd1f997c813d0e088a6"
+checksum = "3890d0893c8253d3eb98337af18b3e1a10a9b2958f2a164b53a93fb3a3049e72"
 dependencies = [
  "fontconfig-parser",
  "log",
- "memmap2 0.9.3",
+ "memmap2 0.9.4",
  "slotmap",
  "tinyvec",
  "ttf-parser",
@@ -1567,7 +1663,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1610,11 +1706,11 @@ dependencies = [
 
 [[package]]
 name = "freedesktop-icons"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9d46a9ae065c46efb83854bb10315de6d333bb6f4526ebe320c004dab7857e"
+checksum = "b5339cbd60b2ff6b95ef212ab96bc80bf1a9dff2821b9966c417cdfae2808796"
 dependencies = [
- "dirs 4.0.0",
+ "dirs 5.0.1",
  "once_cell",
  "rust-ini",
  "thiserror",
@@ -1696,9 +1792,9 @@ dependencies = [
 
 [[package]]
 name = "futures-lite"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143"
+checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
 dependencies = [
  "fastrand 2.0.1",
  "futures-core",
@@ -1715,7 +1811,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1749,6 +1845,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "gdk-pixbuf-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gdk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
 name = "generic-array"
 version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1760,25 +1886,23 @@ dependencies = [
 
 [[package]]
 name = "gethostname"
-version = "0.3.0"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177"
+checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
 dependencies = [
  "libc",
- "winapi",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
- "js-sys",
  "libc",
  "wasi",
- "wasm-bindgen",
 ]
 
 [[package]]
@@ -1818,6 +1942,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
+name = "gio-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "winapi",
+]
+
+[[package]]
 name = "gl_generator"
 version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1835,6 +1972,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945"
 
 [[package]]
+name = "glib-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
 name = "glob"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1842,9 +1989,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "glow"
-version = "0.13.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "886c2a30b160c4c6fec8f987430c26b526b7988ca71f664e6a699ddf6f9601e4"
+checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1"
 dependencies = [
  "js-sys",
  "slotmap",
@@ -1863,8 +2010,8 @@ dependencies = [
 
 [[package]]
 name = "glyphon"
-version = "0.3.0"
-source = "git+https://github.com/jackpot51/glyphon.git?branch=refactor#c28dc99c86b6b598633e6623096b21632f266976"
+version = "0.5.0"
+source = "git+https://github.com/pop-os/glyphon.git?tag=v0.5.0#1b0646ff8f74da92d3be704dfc2257d7f4d7eed8"
 dependencies = [
  "cosmic-text",
  "etagere",
@@ -1873,12 +2020,23 @@ dependencies = [
 ]
 
 [[package]]
+name = "gobject-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
 name = "gpu-alloc"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "gpu-alloc-types",
 ]
 
@@ -1888,16 +2046,15 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
 name = "gpu-allocator"
-version = "0.23.0"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40fe17c8a05d60c38c0a4e5a3c802f2f1ceb66b76c67d96ffb34bef0475a7fad"
+checksum = "6f56f6318968d03c18e1bcf4857ff88c61157e9da8e47c5f29055d60e1228884"
 dependencies = [
- "backtrace",
  "log",
  "presser",
  "thiserror",
@@ -1911,9 +2068,9 @@ version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "gpu-descriptor-types",
- "hashbrown 0.14.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -1922,7 +2079,7 @@ version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
@@ -1932,6 +2089,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1df00eed8d1f0db937f6be10e46e8072b0671accb504cf0f959c5c52c679f5b9"
 
 [[package]]
+name = "gtk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722"
+dependencies = [
+ "atk-sys",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
 name = "guillotiere"
 version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1953,33 +2128,24 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-dependencies = [
- "ahash 0.7.7",
-]
-
-[[package]]
-name = "hashbrown"
 version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.8.7",
+ "ahash",
  "allocator-api2",
 ]
 
 [[package]]
 name = "hassle-rs"
-version = "0.10.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0"
+checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890"
 dependencies = [
- "bitflags 1.3.2",
- "com-rs",
+ "bitflags 2.4.2",
+ "com",
  "libc",
- "libloading 0.7.4",
+ "libloading 0.8.1",
  "thiserror",
  "widestring",
  "winapi",
@@ -1993,9 +2159,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3"
 
 [[package]]
 name = "hex"
@@ -2025,7 +2191,7 @@ dependencies = [
  "serde",
  "serde_derive",
  "thiserror",
- "toml 0.8.8",
+ "toml 0.8.10",
  "unic-langid",
 ]
 
@@ -2067,8 +2233,8 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "strsim",
- "syn 2.0.46",
+ "strsim 0.10.0",
+ "syn 2.0.48",
  "unic-langid",
 ]
 
@@ -2082,13 +2248,13 @@ dependencies = [
  "i18n-config",
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "iced"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "iced_accessibility",
  "iced_core",
@@ -2103,7 +2269,7 @@ dependencies = [
 [[package]]
 name = "iced_accessibility"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "accesskit",
  "accesskit_unix",
@@ -2112,25 +2278,26 @@ dependencies = [
 [[package]]
 name = "iced_core"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "bitflags 1.3.2",
  "iced_accessibility",
- "instant",
  "log",
  "num-traits",
  "palette",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "serde",
  "smithay-client-toolkit 0.18.0",
+ "smol_str",
  "thiserror",
+ "web-time",
  "xxhash-rust",
 ]
 
 [[package]]
 name = "iced_futures"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "futures",
  "iced_core",
@@ -2143,7 +2310,7 @@ dependencies = [
 [[package]]
 name = "iced_graphics"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2151,12 +2318,13 @@ dependencies = [
  "glam",
  "half",
  "iced_core",
+ "iced_futures",
  "image",
  "kamadak-exif",
  "log",
  "lyon_path",
  "once_cell",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "rustc-hash",
  "thiserror",
  "unicode-segmentation",
@@ -2166,20 +2334,19 @@ dependencies = [
 [[package]]
 name = "iced_renderer"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "iced_graphics",
  "iced_tiny_skia",
  "iced_wgpu",
  "log",
- "raw-window-handle",
  "thiserror",
 ]
 
 [[package]]
 name = "iced_runtime"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "iced_accessibility",
  "iced_core",
@@ -2191,7 +2358,7 @@ dependencies = [
 [[package]]
 name = "iced_sctk"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "enum-repr",
  "float-cmp",
@@ -2200,22 +2367,24 @@ dependencies = [
  "iced_graphics",
  "iced_runtime",
  "iced_style",
- "itertools 0.10.5",
+ "itertools 0.12.1",
  "lazy_static",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "smithay-client-toolkit 0.18.0",
  "smithay-clipboard",
  "thiserror",
  "tracing",
- "wayland-backend 0.3.2",
- "wayland-protocols 0.31.0",
+ "wayland-backend 0.3.3",
+ "wayland-protocols 0.31.2",
+ "xkbcommon",
+ "xkbcommon-dl",
  "xkeysym",
 ]
 
 [[package]]
 name = "iced_style"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "iced_core",
  "once_cell",
@@ -2225,14 +2394,13 @@ dependencies = [
 [[package]]
 name = "iced_tiny_skia"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "bytemuck",
  "cosmic-text",
  "iced_graphics",
  "kurbo",
  "log",
- "raw-window-handle",
  "resvg",
  "rustc-hash",
  "softbuffer",
@@ -2243,7 +2411,7 @@ dependencies = [
 [[package]]
 name = "iced_wgpu"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2255,7 +2423,6 @@ dependencies = [
  "log",
  "lyon",
  "once_cell",
- "raw-window-handle",
  "resvg",
  "wgpu",
 ]
@@ -2263,7 +2430,7 @@ dependencies = [
 [[package]]
 name = "iced_widget"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "iced_renderer",
  "iced_runtime",
@@ -2293,9 +2460,9 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.7"
+version = "0.24.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
+checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
 dependencies = [
  "bytemuck",
  "byteorder",
@@ -2303,7 +2470,6 @@ dependencies = [
  "exr",
  "gif",
  "jpeg-decoder",
- "num-rational",
  "num-traits",
  "png",
  "qoi",
@@ -2318,12 +2484,12 @@ checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284"
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -2393,47 +2559,47 @@ checksum = "5a611371471e98973dbcab4e0ec66c31a10bc356eeb4d54a0e05eac8158fe38c"
 
 [[package]]
 name = "is-terminal"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
+checksum = "fe8f25ce1159c7740ff0b9b2f5cdf4a8428742ba7c112b9f20f22cd5219c7dab"
 dependencies = [
  "hermit-abi",
- "rustix 0.38.28",
+ "libc",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "itertools"
-version = "0.10.5"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itertools"
-version = "0.11.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 dependencies = [
  "rayon",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.66"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -2465,6 +2631,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
 
 [[package]]
+name = "known-folders"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4397c789f2709d23cfcb703b316e0766a8d4b17db2d47b0ab096ef6047cae1d8"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "kqueue"
 version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2507,14 +2682,14 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
 
 [[package]]
 name = "libc"
-version = "0.2.151"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libcosmic"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic/#481cd5a0cdb86661417918bebe8ca2029bc752ab"
+source = "git+https://github.com/pop-os/libcosmic/#5738ac20559ff3c327fd9bcf3bcf323281a4c504"
 dependencies = [
  "apply",
  "ashpd",
@@ -2525,6 +2700,7 @@ dependencies = [
  "css-color",
  "derive_setters",
  "fraction",
+ "freedesktop-desktop-entry",
  "freedesktop-icons",
  "iced",
  "iced_core",
@@ -2534,11 +2710,15 @@ dependencies = [
  "iced_sctk",
  "iced_style",
  "iced_tiny_skia",
+ "iced_wgpu",
  "iced_widget",
  "lazy_static",
+ "nix 0.27.1",
  "palette",
+ "rfd",
  "ron",
  "serde",
+ "shlex",
  "slotmap",
  "taffy",
  "thiserror",
@@ -2581,7 +2761,7 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -2594,9 +2774,15 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.12"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0b5399f6804fbab912acbd8878ed3532d506b7c951b8f9f164ef90fef39e3f4"
 
 [[package]]
 name = "locale_config"
@@ -2629,11 +2815,11 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "lru"
-version = "0.11.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21"
+checksum = "db2c024b41519440580066ba82aab04092b333e09066a5eb86c7c4890df31f22"
 dependencies = [
- "hashbrown 0.14.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -2723,9 +2909,9 @@ dependencies = [
 
 [[package]]
 name = "memmap2"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
 dependencies = [
  "libc",
 ]
@@ -2763,7 +2949,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "block",
  "core-graphics-types",
  "foreign-types",
@@ -2774,9 +2960,9 @@ dependencies = [
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -2802,12 +2988,12 @@ checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b"
 
 [[package]]
 name = "naga"
-version = "0.14.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae585df4b6514cf8842ac0f1ab4992edc975892704835b549cf818dc0191249e"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
+ "arrayvec",
  "bit-set",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "codespan-reporting",
  "hexf-parse",
  "indexmap",
@@ -2821,15 +3007,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "nanorand"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
 name = "nix"
 version = "0.24.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2860,7 +3037,7 @@ version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cfg-if",
  "libc",
 ]
@@ -2871,7 +3048,7 @@ version = "6.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "crossbeam-channel",
  "filetime",
  "fsevent-sys",
@@ -2911,28 +3088,27 @@ dependencies = [
 
 [[package]]
 name = "num-complex"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
 dependencies = [
  "num-traits",
 ]
 
 [[package]]
 name = "num-integer"
-version = "0.1.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
 [[package]]
 name = "num-iter"
-version = "0.1.43"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -2953,9 +3129,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
  "libm",
@@ -3033,12 +3209,12 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
 
 [[package]]
 name = "ordered-multimap"
-version = "0.4.3"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a"
+checksum = "a4d6a8c22fc714f0c2373e6091bf6f5e9b37b1bc0b1184874b7e0a4e303d318f"
 dependencies = [
  "dlv-list",
- "hashbrown 0.12.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -3072,14 +3248,14 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "palette"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2e2f34147767aa758aa649415b50a69eeb46a67f9dc7db8011eeb3d84b351dc"
+checksum = "3d38e6e5ca1612e2081cc31188f08c3cba630ce4ba44709a153f1a0f38d678f2"
 dependencies = [
  "approx",
  "fast-srgb8",
@@ -3090,13 +3266,25 @@ dependencies = [
 
 [[package]]
 name = "palette_derive"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7db010ec5ff3d4385e4f133916faacd9dad0f6a09394c92d825b3aed310fa0a"
+checksum = "e05d1c929301fee6830dafa764341118829b2535c216b0571e3821ecac5c885b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
 ]
 
 [[package]]
@@ -3195,7 +3383,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3214,26 +3402,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
 
 [[package]]
-name = "pin-project"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.46",
-]
-
-[[package]]
 name = "pin-project-lite"
 version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3258,15 +3426,15 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "png"
-version = "0.17.10"
+version = "0.17.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
+checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -3293,14 +3461,14 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.3.1"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e"
+checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
  "pin-project-lite",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "tracing",
  "windows-sys 0.52.0",
 ]
@@ -3363,18 +3531,18 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.74"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "profiling"
-version = "1.0.13"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d135ede8821cf6376eb7a64148901e1690b788c11ae94dc297ae917dbc91dc0e"
+checksum = "0f0f7f43585c34e4fdd7497d746bc32e14458cf11c69341cc0587b1d825dde42"
 
 [[package]]
 name = "qoi"
@@ -3396,9 +3564,9 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.30.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
 ]
@@ -3450,9 +3618,9 @@ checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab"
 
 [[package]]
 name = "rangemap"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "977b1e897f9d764566891689e642653e5ed90c6895106acd005eb4c1d0203991"
+checksum = "795915a3930a5d6bafd9053d37602fea3e61be2e5d4d788983a8ba9654c1c6f2"
 
 [[package]]
 name = "raw-window-handle"
@@ -3461,10 +3629,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
 
 [[package]]
+name = "raw-window-handle"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
+
+[[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -3472,9 +3646,9 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
@@ -3487,6 +3661,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
 
 [[package]]
+name = "read-fonts"
+version = "0.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d70252c718fb23d41771a4f927e924700edefc2a91ecd52a2ee6f2461d4e6b64"
+dependencies = [
+ "font-types",
+]
+
+[[package]]
 name = "redox_syscall"
 version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3517,9 +3700,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -3529,9 +3712,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -3568,6 +3751,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "rfd"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0d8ab342bcc5436e04d3a4c1e09e17d74958bfaddf8d5fad6f85607df0f994f"
+dependencies = [
+ "ashpd",
+ "block",
+ "dispatch",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "js-sys",
+ "log",
+ "objc",
+ "objc-foundation",
+ "objc_id",
+ "raw-window-handle 0.5.2",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "rgb"
 version = "0.8.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3583,22 +3790,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
 dependencies = [
  "base64",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "serde",
  "serde_derive",
 ]
 
 [[package]]
 name = "roxmltree"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "862340e351ce1b271a378ec53f304a5558f7db87f3769dc655a8f6ecbb68b302"
-dependencies = [
- "xmlparser",
-]
-
-[[package]]
-name = "roxmltree"
 version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
@@ -3623,7 +3821,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rust-embed-utils",
- "syn 2.0.46",
+ "syn 2.0.48",
  "walkdir",
 ]
 
@@ -3639,9 +3837,9 @@ dependencies = [
 
 [[package]]
 name = "rust-ini"
-version = "0.18.0"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
+checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a"
 dependencies = [
  "cfg-if",
  "ordered-multimap",
@@ -3675,14 +3873,14 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.28"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
  "libc",
- "linux-raw-sys 0.4.12",
+ "linux-raw-sys 0.4.13",
  "windows-sys 0.52.0",
 ]
 
@@ -3692,7 +3890,7 @@ version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f0ae5692c5beaad6a9e22830deeed7874eae8a4e3ba4076fb48e12c56856222c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bytemuck",
  "libm",
  "smallvec",
@@ -3741,22 +3939,22 @@ checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
 
 [[package]]
 name = "serde"
-version = "1.0.194"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.194"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3767,7 +3965,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3803,9 +4001,9 @@ dependencies = [
 
 [[package]]
 name = "shlex"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "signal-hook-registry"
@@ -3857,9 +4055,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "smithay-client-toolkit"
@@ -3884,24 +4082,24 @@ name = "smithay-client-toolkit"
 version = "0.18.0"
 source = "git+https://github.com/smithay/client-toolkit?rev=2e9bf9f#2e9bf9f31698851ca373e5f1e7ba3e6e804e4db1"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bytemuck",
  "calloop",
  "calloop-wayland-source",
  "cursor-icon",
  "libc",
  "log",
- "memmap2 0.9.3",
+ "memmap2 0.9.4",
  "pkg-config",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "thiserror",
- "wayland-backend 0.3.2",
- "wayland-client 0.31.1",
+ "wayland-backend 0.3.3",
+ "wayland-client 0.31.2",
  "wayland-csd-frame",
- "wayland-cursor 0.31.0",
- "wayland-protocols 0.31.0",
+ "wayland-cursor 0.31.1",
+ "wayland-protocols 0.31.2",
  "wayland-protocols-wlr",
- "wayland-scanner 0.31.0",
+ "wayland-scanner 0.31.1",
  "xkbcommon",
  "xkeysym",
 ]
@@ -3917,6 +4115,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "smol_str"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6845563ada680337a52d43bb0b29f396f2d911616f6573012645b9e3d048a49"
+dependencies = [
+ "serde",
+]
+
+[[package]]
 name = "socket2"
 version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3938,12 +4145,12 @@ dependencies = [
 
 [[package]]
 name = "softbuffer"
-version = "0.3.3"
-source = "git+https://github.com/pop-os/softbuffer?tag=v0.3-cosmic#6f0371ccece51d124c6c5d37082189df0dc5f9ba"
+version = "0.4.1"
+source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#0bb85989353f0d17deb593dedb00ee4392a871e7"
 dependencies = [
  "as-raw-xcb-connection",
  "bytemuck",
- "cfg_aliases",
+ "cfg_aliases 0.2.0",
  "cocoa",
  "core-graphics",
  "drm",
@@ -3951,18 +4158,18 @@ dependencies = [
  "foreign-types",
  "js-sys",
  "log",
- "memmap2 0.9.3",
+ "memmap2 0.9.4",
  "objc",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "redox_syscall 0.4.1",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "tiny-xlib",
  "wasm-bindgen",
- "wayland-backend 0.3.2",
- "wayland-client 0.31.1",
+ "wayland-backend 0.3.3",
+ "wayland-client 0.31.2",
  "wayland-sys 0.31.1",
  "web-sys",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
  "x11rb",
 ]
 
@@ -3977,12 +4184,11 @@ dependencies = [
 
 [[package]]
 name = "spirv"
-version = "0.2.0+1.5.4"
+version = "0.3.0+sdk-1.3.268.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
+checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844"
 dependencies = [
- "bitflags 1.3.2",
- "num-traits",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
@@ -4007,6 +4213,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
 name = "svg_fmt"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4024,15 +4236,24 @@ dependencies = [
 
 [[package]]
 name = "swash"
-version = "0.1.8"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b7c73c813353c347272919aa1af2885068b05e625e5532b43049e4f641ae77f"
+checksum = "d06ff4664af8923625604261c645f5c4cc610cc83c84bec74b50d76237089de7"
 dependencies = [
+ "read-fonts",
  "yazi",
  "zeno",
 ]
 
 [[package]]
+name = "switcheroo-control"
+version = "0.1.0"
+source = "git+https://github.com/pop-os/dbus-settings-bindings#5dea929b730460f883935357a1a8fb9736f36f95"
+dependencies = [
+ "zbus",
+]
+
+[[package]]
 name = "syn"
 version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4045,9 +4266,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.46"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4064,6 +4285,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "system-deps"
+version = "6.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+dependencies = [
+ "cfg-expr",
+ "heck",
+ "pkg-config",
+ "toml 0.8.10",
+ "version-compare",
+]
+
+[[package]]
 name = "taffy"
 version = "0.3.11"
 source = "git+https://github.com/DioxusLabs/taffy?rev=7781c70#7781c70241f7f572130c13106f2a869a9cf80885"
@@ -4075,6 +4309,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "target-lexicon"
+version = "0.12.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
+
+[[package]]
 name = "temp-dir"
 version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4082,22 +4322,21 @@ checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6"
 
 [[package]]
 name = "tempfile"
-version = "3.9.0"
+version = "3.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
+checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
 dependencies = [
  "cfg-if",
  "fastrand 2.0.1",
- "redox_syscall 0.4.1",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
@@ -4119,14 +4358,14 @@ checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "tiff"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211"
+checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
 dependencies = [
  "flate2",
  "jpeg-decoder",
@@ -4134,10 +4373,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
 name = "tiny-skia"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6a067b809476893fce6a254cf285850ff69c847e6cfbade6a20b655b6c7e80d"
+checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
 dependencies = [
  "arrayref",
  "arrayvec",
@@ -4150,9 +4398,9 @@ dependencies = [
 
 [[package]]
 name = "tiny-skia-path"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de35e8a90052baaaf61f171680ac2f8e925a1e43ea9d2e3a00514772250e541"
+checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
 dependencies = [
  "arrayref",
  "bytemuck",
@@ -4197,9 +4445,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.35.1"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
  "backtrace",
  "bytes",
@@ -4224,14 +4472,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.21.0",
+ "toml_edit 0.22.4",
 ]
 
 [[package]]
@@ -4256,9 +4504,9 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.21.0"
+version = "0.22.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951"
 dependencies = [
  "indexmap",
  "serde",
@@ -4286,7 +4534,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4351,9 +4599,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.14"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-bidi-mirroring"
@@ -4390,9 +4638,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-properties"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7f91c8b21fbbaa18853c3d0801c78f4fc94cdb976699bb03e832e75f7fd22f0"
+checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
 
 [[package]]
 name = "unicode-script"
@@ -4402,9 +4650,9 @@ checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc"
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-vo"
@@ -4462,7 +4710,7 @@ dependencies = [
  "imagesize",
  "kurbo",
  "log",
- "roxmltree 0.19.0",
+ "roxmltree",
  "simplecss",
  "siphasher",
  "svgtypes",
@@ -4504,6 +4752,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
+name = "version-compare"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+
+[[package]]
 name = "version_check"
 version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4533,9 +4787,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -4543,24 +4797,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.39"
+version = "0.4.41"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
+checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -4570,9 +4824,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -4580,22 +4834,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
+checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
 
 [[package]]
 name = "wasm-timer"
@@ -4629,13 +4883,13 @@ dependencies = [
 
 [[package]]
 name = "wayland-backend"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19152ddd73f45f024ed4534d9ca2594e0ef252c1847695255dae47f34df9fbe4"
+checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
 dependencies = [
  "cc",
  "downcast-rs",
- "nix 0.26.4",
+ "rustix 0.38.31",
  "scoped-tls",
  "smallvec",
  "wayland-sys 0.31.1",
@@ -4671,14 +4925,14 @@ dependencies = [
 
 [[package]]
 name = "wayland-client"
-version = "0.31.1"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3"
+checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
 dependencies = [
- "bitflags 2.4.1",
- "nix 0.26.4",
- "wayland-backend 0.3.2",
- "wayland-scanner 0.31.0",
+ "bitflags 2.4.2",
+ "rustix 0.38.31",
+ "wayland-backend 0.3.3",
+ "wayland-scanner 0.31.1",
 ]
 
 [[package]]
@@ -4699,9 +4953,9 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cursor-icon",
- "wayland-backend 0.3.2",
+ "wayland-backend 0.3.3",
 ]
 
 [[package]]
@@ -4717,12 +4971,12 @@ dependencies = [
 
 [[package]]
 name = "wayland-cursor"
-version = "0.31.0"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a44aa20ae986659d6c77d64d808a046996a932aa763913864dc40c359ef7ad5b"
+checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
 dependencies = [
- "nix 0.26.4",
- "wayland-client 0.31.1",
+ "rustix 0.38.31",
+ "wayland-client 0.31.2",
  "xcursor",
 ]
 
@@ -4752,14 +5006,14 @@ dependencies = [
 
 [[package]]
 name = "wayland-protocols"
-version = "0.31.0"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e253d7107ba913923dc253967f35e8561a3c65f914543e46843c88ddd729e21c"
+checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
- "bitflags 2.4.1",
- "wayland-backend 0.3.2",
- "wayland-client 0.31.1",
- "wayland-scanner 0.31.0",
+ "bitflags 2.4.2",
+ "wayland-backend 0.3.3",
+ "wayland-client 0.31.2",
+ "wayland-scanner 0.31.1",
  "wayland-server",
 ]
 
@@ -4769,11 +5023,11 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
 dependencies = [
- "bitflags 2.4.1",
- "wayland-backend 0.3.2",
- "wayland-client 0.31.1",
- "wayland-protocols 0.31.0",
- "wayland-scanner 0.31.0",
+ "bitflags 2.4.2",
+ "wayland-backend 0.3.3",
+ "wayland-client 0.31.2",
+ "wayland-protocols 0.31.2",
+ "wayland-scanner 0.31.1",
 ]
 
 [[package]]
@@ -4800,27 +5054,27 @@ dependencies = [
 
 [[package]]
 name = "wayland-scanner"
-version = "0.31.0"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c"
+checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
 dependencies = [
  "proc-macro2",
- "quick-xml 0.30.0",
+ "quick-xml 0.31.0",
  "quote",
 ]
 
 [[package]]
 name = "wayland-server"
-version = "0.31.0"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f3f0c52a445936ca1184c98f1a69cf4ad9c9130788884531ef04428468cb1ce"
+checksum = "00e6e4d5c285bc24ba4ed2d5a4bd4febd5fd904451f465973225c8e99772fdb7"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "downcast-rs",
  "io-lifetimes 2.0.3",
- "nix 0.26.4",
- "wayland-backend 0.3.2",
- "wayland-scanner 0.31.0",
+ "rustix 0.38.31",
+ "wayland-backend 0.3.3",
+ "wayland-scanner 0.31.1",
 ]
 
 [[package]]
@@ -4859,9 +5113,19 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.68"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web-time"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -4869,25 +5133,24 @@ dependencies = [
 
 [[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "wgpu"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30e7d227c9f961f2061c26f4cb0fbd4df0ef37e056edd0931783599d6c94ef24"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "arrayvec",
  "cfg-if",
- "flume 0.11.0",
+ "cfg_aliases 0.1.1",
  "js-sys",
  "log",
  "naga",
  "parking_lot 0.12.1",
  "profiling",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "smallvec",
  "static_assertions",
  "wasm-bindgen",
@@ -4900,19 +5163,21 @@ dependencies = [
 
 [[package]]
 name = "wgpu-core"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef91c1d62d1e9e81c79e600131a258edf75c9531cbdbde09c44a011a47312726"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "arrayvec",
  "bit-vec",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
+ "cfg_aliases 0.1.1",
  "codespan-reporting",
+ "indexmap",
  "log",
  "naga",
+ "once_cell",
  "parking_lot 0.12.1",
  "profiling",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "rustc-hash",
  "smallvec",
  "thiserror",
@@ -4923,16 +5188,16 @@ dependencies = [
 
 [[package]]
 name = "wgpu-hal"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b84ecc802da3eb67b4cf3dd9ea6fe45bbb47ef13e6c49c5c3240868a9cc6cdd9"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "android_system_properties",
  "arrayvec",
  "ash",
  "bit-set",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "block",
+ "cfg_aliases 0.1.1",
  "core-graphics-types",
  "d3d12",
  "glow",
@@ -4953,7 +5218,7 @@ dependencies = [
  "parking_lot 0.12.1",
  "profiling",
  "range-alloc",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "renderdoc-sys",
  "rustc-hash",
  "smallvec",
@@ -4966,11 +5231,10 @@ dependencies = [
 
 [[package]]
 name = "wgpu-types"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d5ed5f0edf0de351fe311c53304986315ce866f394a2e6df0c4b3c70774bcdd"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "js-sys",
  "web-sys",
 ]
@@ -5007,15 +5271,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "winapi-wsapoll"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "winapi-x86_64-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5023,21 +5278,21 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows"
-version = "0.51.1"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
  "windows-core",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
 name = "windows-core"
-version = "0.51.1"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.48.5",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -5174,38 +5429,33 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
 name = "winnow"
-version = "0.5.32"
+version = "0.5.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8434aeec7b290e8da5c3f0d628cb0eac6cabcb31d14bb74f779a08109a5914d6"
+checksum = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "x11rb"
-version = "0.12.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a"
+checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a"
 dependencies = [
  "as-raw-xcb-connection",
  "gethostname",
  "libc",
- "libloading 0.7.4",
- "nix 0.26.4",
+ "libloading 0.8.1",
  "once_cell",
- "winapi",
- "winapi-wsapoll",
+ "rustix 0.38.31",
  "x11rb-protocol",
 ]
 
 [[package]]
 name = "x11rb-protocol"
-version = "0.12.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc"
-dependencies = [
- "nix 0.26.4",
-]
+checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34"
 
 [[package]]
 name = "xcursor"
@@ -5221,11 +5471,11 @@ checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
 
 [[package]]
 name = "xdg-home"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd"
+checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
 dependencies = [
- "nix 0.26.4",
+ "libc",
  "winapi",
 ]
 
@@ -5241,6 +5491,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "xkbcommon-dl"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6924668544c48c0133152e7eec86d644a056ca3d09275eb8d5cdb9855f9d8699"
+dependencies = [
+ "bitflags 2.4.2",
+ "dlib",
+ "log",
+ "once_cell",
+ "xkeysym",
+]
+
+[[package]]
 name = "xkeysym"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5256,12 +5519,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
 
 [[package]]
-name = "xmlparser"
-version = "0.13.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
-
-[[package]]
 name = "xmlwriter"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5281,9 +5538,9 @@ checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1"
 
 [[package]]
 name = "zbus"
-version = "3.14.1"
+version = "3.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948"
+checksum = "c45d06ae3b0f9ba1fb2671268b975557d8f5a84bb5ec6e43964f87e763d8bca8"
 dependencies = [
  "async-broadcast",
  "async-executor",
@@ -5323,9 +5580,9 @@ dependencies = [
 
 [[package]]
 name = "zbus_macros"
-version = "3.14.1"
+version = "3.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d"
+checksum = "b4a1ba45ed0ad344b85a2bb5a1fe9830aed23d67812ea39a586e7d0136439c7d"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
@@ -5369,7 +5626,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.46",
+ "syn 2.0.48",
 ]
 
 [[package]]
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-applibrary/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-applibrary/package.nix
index 94b263ed2bd7..6402cd1d30bc 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-applibrary/package.nix
+++ b/nixpkgs/pkgs/by-name/co/cosmic-applibrary/package.nix
@@ -8,36 +8,44 @@
 , libxkbcommon
 , wayland
 }:
-
 rustPlatform.buildRustPackage rec {
   pname = "cosmic-applibrary";
-  version = "unstable-2024-01-03";
+  version = "0-unstable-2024-02-09";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = pname;
-    rev = "889cb6078c05cdf3eb94f19f64db552fa2be32dc";
-    hash = "sha256-qLAFSHA7YdOWr7ZmLCkQ+aGWb2schANfgdD2BxsrvaE=";
+    rev = "e214e9867876c96b24568d8a45aaca2936269d9b";
+    hash = "sha256-fZxDRktiHHmj7X3e5VyJJMO081auOpSMSsBnJdhhtR8=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "accesskit-0.11.0" = "sha256-xVhe6adUb8VmwIKKjHxwCwOo5Y1p3Or3ylcJJdLDrrE=";
+      "accesskit-0.12.2" = "sha256-ksaYMGT/oug7isQY8/1WD97XDUsX2ShBdabUzxWffYw=";
       "atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
-      "cosmic-config-0.1.0" = "sha256-WM08/jnB2kAf77FE+0xpBJcVGOHOCcUorifQ/5LXav0=";
-      "cosmic-client-toolkit-0.1.0" = "sha256-AEgvF7i/OWPdEMi8WUaAg99igBwE/AexhAXHxyeJMdc=";
-      "glyphon-0.3.0" = "sha256-JGkNIfj1HjOF8kGxqJPNq/JO+NhZD6XrZ4KmkXEP6Xc=";
+      "cosmic-config-0.1.0" = "sha256-ETNVJ4y7EraAlU9XEZGNNPdyWt1WIURr1dSH6hQ0Pos=";
+      "cosmic-client-toolkit-0.1.0" = "sha256-vj7Wm1uJ5ULvGNEwKznNhujCZQiuntsWMyKQbIVaO/Q=";
+      "cosmic-settings-daemon-0.1.0" = "sha256-z/dvRyc3Zc1fAQh2HKk6NI6QSDpNqarqslwszjU+0nc=";
+      "glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
       "smithay-client-toolkit-0.18.0" = "sha256-2WbDKlSGiyVmi7blNBr2Aih9FfF2dq/bny57hoA4BrE=";
-      "softbuffer-0.3.3" = "sha256-eKYFVr6C1+X6ulidHIu9SP591rJxStxwL9uMiqnXx4k=";
+      "softbuffer-0.4.1" = "sha256-CACVCnyFgefkpDlll6IeaPWB8a3gbF6BW8MnlkytV8o=";
+      "switcheroo-control-0.1.0" = "sha256-ztZ5HD1hEOvsUSn94ZbbJ6SY9Jbsm8iGHR70GuAnEaQ=";
       "taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI=";
-      "cosmic-settings-daemon-0.1.0" = "sha256-z/dvRyc3Zc1fAQh2HKk6NI6QSDpNqarqslwszjU+0nc=";
-      "cosmic-text-0.10.0" = "sha256-C2FHJBESbiyL2BhLb6T+wI9EX+xCyp02Kk6cI46EfDs=";
+      "cosmic-text-0.11.1" = "sha256-lyBl0VAzcKBqLeCPrA28VW6O0MWXazJg1b11YuBR65U=";
+      "d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
     };
   };
 
-  nativeBuildInputs = [ just pkg-config makeBinaryWrapper ];
-  buildInputs = [ libxkbcommon wayland ];
+  nativeBuildInputs = [
+    just
+    pkg-config
+    makeBinaryWrapper
+  ];
+  buildInputs = [
+    libxkbcommon
+    wayland
+  ];
 
   dontUseJustBuild = true;
 
@@ -56,7 +64,7 @@ rustPlatform.buildRustPackage rec {
 
   postInstall = ''
     wrapProgram $out/bin/cosmic-app-library \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [wayland]}"
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ wayland ]}"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-comp/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-comp/package.nix
index bd7d147cfeb0..50f30dcd85f8 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-comp/package.nix
+++ b/nixpkgs/pkgs/by-name/co/cosmic-comp/package.nix
@@ -83,6 +83,7 @@ rustPlatform.buildRustPackage {
   meta = with lib; {
     homepage = "https://github.com/pop-os/cosmic-comp";
     description = "Compositor for the COSMIC Desktop Environment";
+    mainProgram = "cosmic-comp";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ qyliss nyanbinary ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-edit/Cargo.lock b/nixpkgs/pkgs/by-name/co/cosmic-edit/Cargo.lock
index fbfce7d41330..5e0658ab3e8a 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-edit/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/co/cosmic-edit/Cargo.lock
@@ -20,66 +20,71 @@ checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
 
 [[package]]
 name = "accesskit"
-version = "0.11.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.12.2"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 
 [[package]]
 name = "accesskit_consumer"
-version = "0.15.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.17.0"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
 ]
 
 [[package]]
 name = "accesskit_macos"
-version = "0.7.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.11.0"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
  "accesskit_consumer",
- "objc2",
+ "icrate 0.1.0",
+ "objc2 0.5.0",
  "once_cell",
 ]
 
 [[package]]
 name = "accesskit_unix"
-version = "0.4.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.7.1"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
  "accesskit_consumer",
- "async-channel 1.9.0",
+ "async-channel",
+ "async-executor",
+ "async-task",
  "atspi",
  "futures-lite 1.13.0",
- "log",
+ "futures-util",
+ "once_cell",
  "serde",
  "zbus",
 ]
 
 [[package]]
 name = "accesskit_windows"
-version = "0.14.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.16.0"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
  "accesskit_consumer",
- "arrayvec 0.7.4",
  "once_cell",
  "paste",
- "windows 0.44.0",
+ "static_assertions",
+ "windows 0.48.0",
 ]
 
 [[package]]
 name = "accesskit_winit"
-version = "0.13.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.18.1"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
  "accesskit_macos",
  "accesskit_unix",
  "accesskit_windows",
- "winit 0.28.6",
+ "raw-window-handle 0.6.0",
+ "winit 0.29.10",
 ]
 
 [[package]]
@@ -105,22 +110,12 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
 
 [[package]]
 name = "ahash"
-version = "0.7.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
-dependencies = [
- "getrandom",
- "once_cell",
- "version_check",
-]
-
-[[package]]
-name = "ahash"
-version = "0.8.7"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b"
 dependencies = [
  "cfg-if 1.0.0",
+ "getrandom",
  "once_cell",
  "version_check",
  "zerocopy",
@@ -168,20 +163,23 @@ dependencies = [
 
 [[package]]
 name = "android-activity"
-version = "0.4.3"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0"
+checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289"
 dependencies = [
  "android-properties",
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "cc",
+ "cesu8",
+ "jni",
  "jni-sys",
  "libc",
  "log",
- "ndk 0.7.0",
+ "ndk 0.8.0",
  "ndk-context",
- "ndk-sys 0.4.1+23.1.7779620",
- "num_enum 0.6.1",
+ "ndk-sys 0.5.0+25.2.9519653",
+ "num_enum 0.7.2",
+ "thiserror",
 ]
 
 [[package]]
@@ -206,12 +204,66 @@ dependencies = [
 ]
 
 [[package]]
+name = "anstream"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "any_ascii"
 version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "70033777eb8b5124a81a1889416543dddef2de240019b674c81285a2635a7e1e"
 
 [[package]]
+name = "anyhow"
+version = "1.0.80"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+
+[[package]]
 name = "apply"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -295,24 +347,13 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
-dependencies = [
- "concurrent-queue",
- "event-listener 2.5.3",
- "futures-core",
-]
-
-[[package]]
-name = "async-channel"
-version = "2.1.1"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
 dependencies = [
  "concurrent-queue",
- "event-listener 4.0.3",
- "event-listener-strategy",
+ "event-listener 5.1.0",
+ "event-listener-strategy 0.5.0",
  "futures-core",
  "pin-project-lite",
 ]
@@ -365,9 +406,9 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb41eb19024a91746eba0773aa5e16036045bbf45733766661099e182ea6a744"
+checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
 dependencies = [
  "async-lock 3.3.0",
  "cfg-if 1.0.0",
@@ -375,8 +416,8 @@ dependencies = [
  "futures-io",
  "futures-lite 2.2.0",
  "parking",
- "polling 3.3.2",
- "rustix 0.38.30",
+ "polling 3.5.0",
+ "rustix 0.38.31",
  "slab",
  "tracing",
  "windows-sys 0.52.0",
@@ -398,7 +439,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
 dependencies = [
  "event-listener 4.0.3",
- "event-listener-strategy",
+ "event-listener-strategy 0.4.0",
  "pin-project-lite",
 ]
 
@@ -415,7 +456,7 @@ dependencies = [
  "cfg-if 1.0.0",
  "event-listener 3.1.0",
  "futures-lite 1.13.0",
- "rustix 0.38.30",
+ "rustix 0.38.31",
  "windows-sys 0.48.0",
 ]
 
@@ -427,7 +468,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -436,13 +477,13 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io 2.3.0",
+ "async-io 2.3.1",
  "async-lock 2.8.0",
  "atomic-waker",
  "cfg-if 1.0.0",
  "futures-core",
  "futures-io",
- "rustix 0.38.30",
+ "rustix 0.38.31",
  "signal-hook-registry",
  "slab",
  "windows-sys 0.48.0",
@@ -462,7 +503,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -488,36 +529,57 @@ name = "atomicwrites"
 version = "0.4.2"
 source = "git+https://github.com/jackpot51/rust-atomicwrites#043ab4859d53ffd3d55334685303d8df39c9f768"
 dependencies = [
- "rustix 0.38.30",
+ "rustix 0.38.31",
  "tempfile",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "atspi"
-version = "0.10.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "674e7a3376837b2e7d12d34d58ac47073c491dc3bf6f71a7adaf687d4d817faa"
+checksum = "6059f350ab6f593ea00727b334265c4dfc7fd442ee32d264794bd9bdc68e87ca"
+dependencies = [
+ "atspi-common",
+ "atspi-connection",
+ "atspi-proxies",
+]
+
+[[package]]
+name = "atspi-common"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92af95f966d2431f962bc632c2e68eda7777330158bf640c4af4249349b2cdf5"
 dependencies = [
- "async-recursion",
- "async-trait",
- "atspi-macros",
  "enumflags2",
- "futures-lite 1.13.0",
  "serde",
- "tracing",
+ "static_assertions",
  "zbus",
  "zbus_names",
+ "zvariant",
 ]
 
 [[package]]
-name = "atspi-macros"
-version = "0.2.0"
+name = "atspi-connection"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fb4870a32c0eaa17e35bca0e6b16020635157121fb7d45593d242c295bc768"
+checksum = "a0c65e7d70f86d4c0e3b2d585d9bf3f979f0b19d635a336725a88d279f76b939"
 dependencies = [
- "quote",
- "syn 1.0.109",
+ "atspi-common",
+ "atspi-proxies",
+ "futures-lite 1.13.0",
+ "zbus",
+]
+
+[[package]]
+name = "atspi-proxies"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6495661273703e7a229356dcbe8c8f38223d697aacfaf0e13590a9ac9977bb52"
+dependencies = [
+ "atspi-common",
+ "serde",
+ "zbus",
 ]
 
 [[package]]
@@ -536,7 +598,7 @@ dependencies = [
  "cc",
  "cfg-if 1.0.0",
  "libc",
- "miniz_oxide 0.7.1",
+ "miniz_oxide 0.7.2",
  "object",
  "rustc-demangle",
 ]
@@ -609,21 +671,31 @@ dependencies = [
 
 [[package]]
 name = "block-sys"
-version = "0.1.0-beta.1"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146"
+checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7"
 dependencies = [
  "objc-sys",
 ]
 
 [[package]]
 name = "block2"
-version = "0.2.0-alpha.6"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68"
+dependencies = [
+ "block-sys",
+ "objc2 0.4.1",
+]
+
+[[package]]
+name = "block2"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42"
+checksum = "e58aa60e59d8dbfcc36138f5f18be5f24394d33b38b24f7fd0b1caa33095f22f"
 dependencies = [
  "block-sys",
- "objc2-encode",
+ "objc2 0.5.0",
 ]
 
 [[package]]
@@ -632,7 +704,7 @@ version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
- "async-channel 2.1.1",
+ "async-channel",
  "async-lock 3.3.0",
  "async-task",
  "fastrand 2.0.1",
@@ -644,9 +716,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.9.0"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
 dependencies = [
  "memchr",
  "regex-automata",
@@ -655,9 +727,9 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b"
 
 [[package]]
 name = "bytecount"
@@ -667,9 +739,9 @@ checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.0"
+version = "1.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
 dependencies = [
  "bytemuck_derive",
 ]
@@ -682,7 +754,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -719,33 +791,50 @@ dependencies = [
 
 [[package]]
 name = "calloop"
-version = "0.10.6"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8"
+checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "log",
- "nix 0.25.1",
- "slotmap",
+ "polling 3.5.0",
+ "rustix 0.38.31",
+ "slab",
  "thiserror",
- "vec_map",
+]
+
+[[package]]
+name = "calloop-wayland-source"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
+dependencies = [
+ "calloop 0.12.4",
+ "rustix 0.38.31",
+ "wayland-backend",
+ "wayland-client 0.31.2",
 ]
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.88"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc"
 dependencies = [
- "jobserver",
  "libc",
 ]
 
 [[package]]
+name = "cesu8"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
+
+[[package]]
 name = "cfg-expr"
-version = "0.15.6"
+version = "0.15.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6100bc57b6209840798d95cb2775684849d332f7bd788db2a8c8caf7ef82a41a"
+checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -770,28 +859,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77e53693616d3075149f4ead59bdeecd204ac6b8192d8969757601b74bddf00f"
+
+[[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
+ "pure-rust-locales",
  "wasm-bindgen",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.3",
 ]
 
 [[package]]
 name = "clipboard-win"
-version = "4.5.0"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
+checksum = "12f9a0700e0127ba15d1d52dd742097f821cd9c65939303a44d970465040a297"
 dependencies = [
  "error-code",
- "str-buf",
- "winapi",
 ]
 
 [[package]]
@@ -807,21 +901,21 @@ dependencies = [
 
 [[package]]
 name = "clipboard_wayland"
-version = "0.2.0"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f6364a9f7a66f2ac1a1a098aa1c7f6b686f2496c6ac5e5c0d773445df912747"
+checksum = "003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8"
 dependencies = [
  "smithay-clipboard",
 ]
 
 [[package]]
 name = "clipboard_x11"
-version = "0.4.0"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "983a7010836ecd04dde2c6d27a0cb56ec5d21572177e782bdcb24a600124e921"
+checksum = "4274ea815e013e0f9f04a2633423e14194e408a0576c943ce3d14ca56c50031c"
 dependencies = [
  "thiserror",
- "x11rb 0.9.0",
+ "x11rb",
 ]
 
 [[package]]
@@ -887,10 +981,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
-name = "com-rs"
-version = "0.2.1"
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "com"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e17887fd17353b65b1b2ef1c526c83e26cd72e74f598a8dc1bee13a48f3d9f6"
+dependencies = [
+ "com_macros",
+]
+
+[[package]]
+name = "com_macros"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5"
+dependencies = [
+ "com_macros_support",
+ "proc-macro2",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "com_macros_support"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "combine"
+version = "4.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642"
+checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+dependencies = [
+ "bytes",
+ "memchr",
+]
 
 [[package]]
 name = "concurrent-queue"
@@ -902,6 +1037,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "const-random"
+version = "0.1.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a"
+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 = "core-foundation"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -998,22 +1153,24 @@ dependencies = [
 [[package]]
 name = "cosmic-config"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "atomicwrites",
  "cosmic-config-derive",
- "dirs 5.0.1",
+ "dirs",
  "iced_futures",
+ "known-folders",
  "notify",
  "once_cell",
  "ron",
  "serde",
+ "xdg",
 ]
 
 [[package]]
 name = "cosmic-config-derive"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "quote",
  "syn 1.0.109",
@@ -1023,9 +1180,11 @@ dependencies = [
 name = "cosmic-edit"
 version = "0.1.0"
 dependencies = [
+ "cosmic-files",
  "cosmic-syntax-theme",
  "cosmic-text",
- "env_logger",
+ "dirs",
+ "env_logger 0.10.2",
  "fork",
  "grep",
  "i18n-embed",
@@ -1035,30 +1194,59 @@ dependencies = [
  "libcosmic",
  "log",
  "notify",
+ "open",
  "patch",
- "rfd",
  "rust-embed",
  "serde",
+ "smol_str",
  "syntect",
  "systemicons",
  "tokio",
  "two-face",
+ "vergen",
+]
+
+[[package]]
+name = "cosmic-files"
+version = "0.1.0"
+source = "git+https://github.com/pop-os/cosmic-files.git#8ab15027a521713850384fa87666bb9974f2666b"
+dependencies = [
+ "chrono",
+ "dirs",
+ "env_logger 0.11.2",
+ "fork",
+ "i18n-embed",
+ "i18n-embed-fl",
+ "image 0.24.9",
+ "lexical-sort",
+ "libcosmic",
+ "log",
+ "mime_guess",
+ "notify",
+ "once_cell",
+ "paste",
+ "rust-embed",
+ "serde",
+ "smol_str",
+ "systemicons",
+ "tokio",
+ "trash",
 ]
 
 [[package]]
 name = "cosmic-syntax-theme"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/cosmic-syntax-theme#3221bb4e22c17df5d14380a600b2ffe7eb753b25"
+source = "git+https://github.com/pop-os/cosmic-syntax-theme.git#b1e1eb0234568911e59888f092dfc779c609b499"
 dependencies = [
  "handlebars",
  "serde",
- "toml 0.8.8",
+ "toml 0.8.10",
 ]
 
 [[package]]
 name = "cosmic-text"
-version = "0.10.0"
-source = "git+https://github.com/pop-os/cosmic-text#8457e68d984c465f7c5306424a73aa162aff32f2"
+version = "0.11.2"
+source = "git+https://github.com/pop-os/cosmic-text.git#2766961af621b9235616e186046f6d14a2f5fbc0"
 dependencies = [
  "bitflags 2.4.2",
  "cosmic_undo_2",
@@ -1083,7 +1271,7 @@ dependencies = [
 [[package]]
 name = "cosmic-theme"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "almost",
  "cosmic-config",
@@ -1116,9 +1304,9 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if 1.0.0",
 ]
@@ -1197,9 +1385,9 @@ dependencies = [
 
 [[package]]
 name = "css-color"
-version = "0.2.5"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d101c65424c856131a3cb818da2ddde03500dc3656972269cdf79f018ef77eb4"
+checksum = "42aaeae719fd78ce501d77c6cdf01f7e96f26bcd5617a4903a1c2b97e388543a"
 
 [[package]]
 name = "csscolorparser"
@@ -1213,12 +1401,12 @@ dependencies = [
 
 [[package]]
 name = "ctor"
-version = "0.2.6"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
+checksum = "ad291aa74992b9b7a7e88c38acbbf6ad7e107f1d90ee8775b7bc1fc3394f485c"
 dependencies = [
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1228,10 +1416,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
 
 [[package]]
-name = "d3d12"
-version = "0.7.0"
+name = "cursor-icon"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20"
+checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
+
+[[package]]
+name = "d3d12"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "bitflags 2.4.2",
  "libloading 0.8.1",
@@ -1250,12 +1443,12 @@ dependencies = [
 
 [[package]]
 name = "darling"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
 dependencies = [
- "darling_core 0.20.3",
- "darling_macro 0.20.3",
+ "darling_core 0.20.8",
+ "darling_macro 0.20.8",
 ]
 
 [[package]]
@@ -1274,16 +1467,16 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
  "strsim 0.10.0",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1299,13 +1492,13 @@ dependencies = [
 
 [[package]]
 name = "darling_macro"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
 dependencies = [
- "darling_core 0.20.3",
+ "darling_core 0.20.8",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1315,7 +1508,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
  "cfg-if 1.0.0",
- "hashbrown 0.14.3",
+ "hashbrown",
  "lock_api",
  "once_cell",
  "parking_lot_core 0.9.9",
@@ -1363,10 +1556,10 @@ version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4e8ef033054e131169b8f0f9a7af8f5533a9436fadf3c500ed547f730f07090d"
 dependencies = [
- "darling 0.20.3",
+ "darling 0.20.8",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1381,20 +1574,11 @@ dependencies = [
 
 [[package]]
 name = "dirs"
-version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
-dependencies = [
- "dirs-sys 0.3.7",
-]
-
-[[package]]
-name = "dirs"
 version = "5.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
 dependencies = [
- "dirs-sys 0.4.1",
+ "dirs-sys",
 ]
 
 [[package]]
@@ -1409,17 +1593,6 @@ dependencies = [
 
 [[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"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
@@ -1455,7 +1628,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1478,9 +1651,12 @@ dependencies = [
 
 [[package]]
 name = "dlv-list"
-version = "0.3.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
+checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
+dependencies = [
+ "const-random",
+]
 
 [[package]]
 name = "downcast-rs"
@@ -1490,25 +1666,25 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
 [[package]]
 name = "drm"
-version = "0.10.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fb1b703ffbc7ebd216eba7900008049a56ace55580ecb2ee7fa801e8d8be87"
+checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde"
 dependencies = [
  "bitflags 2.4.2",
  "bytemuck",
  "drm-ffi",
  "drm-fourcc",
- "nix 0.27.1",
+ "rustix 0.38.31",
 ]
 
 [[package]]
 name = "drm-ffi"
-version = "0.6.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba7d1c19c4b6270e89d59fb27dc6d02a317c658a8a54e54781e1db9b5947595d"
+checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6"
 dependencies = [
  "drm-sys",
- "nix 0.27.1",
+ "rustix 0.38.31",
 ]
 
 [[package]]
@@ -1519,15 +1695,19 @@ checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4"
 
 [[package]]
 name = "drm-sys"
-version = "0.5.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a4f1c0468062a56cd5705f1e3b5409eb286d5596a2028ec8e947595d7e715ae"
+checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176"
+dependencies = [
+ "libc",
+ "linux-raw-sys 0.6.4",
+]
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "encoding_rs"
@@ -1549,9 +1729,9 @@ dependencies = [
 
 [[package]]
 name = "enumflags2"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
 dependencies = [
  "enumflags2_derive",
  "serde",
@@ -1559,20 +1739,30 @@ dependencies = [
 
 [[package]]
 name = "enumflags2_derive"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "env_filter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+dependencies = [
+ "log",
+ "regex",
 ]
 
 [[package]]
 name = "env_logger"
-version = "0.10.1"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -1582,6 +1772,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "env_logger"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c012a26a7f605efc424dd53697843a72be7dc86ad2d01f7814337794a12231d"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
+]
+
+[[package]]
 name = "equivalent"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1599,13 +1802,9 @@ dependencies = [
 
 [[package]]
 name = "error-code"
-version = "2.3.1"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
-dependencies = [
- "libc",
- "str-buf",
-]
+checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b"
 
 [[package]]
 name = "etagere"
@@ -1655,6 +1854,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "event-listener"
+version = "5.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7ad6fd685ce13acd6d9541a30f6db6567a7a24c9ffd4ba2955d29e3f22c8b27"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "event-listener-strategy"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1665,16 +1875,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "event-listener-strategy"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+dependencies = [
+ "event-listener 5.1.0",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "exr"
-version = "1.6.4"
+version = "1.72.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "279d3efcc55e19917fff7ab3ddd6c14afb6a90881a0078465196fe2f99d08c56"
+checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4"
 dependencies = [
  "bit_field",
- "flume 0.10.14",
+ "flume",
  "half",
  "lebe",
- "miniz_oxide 0.7.1",
+ "miniz_oxide 0.7.2",
  "rayon-core",
  "smallvec",
  "zune-inflate",
@@ -1738,7 +1958,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
- "miniz_oxide 0.7.1",
+ "miniz_oxide 0.7.2",
 ]
 
 [[package]]
@@ -1799,26 +2019,10 @@ dependencies = [
 
 [[package]]
 name = "flume"
-version = "0.10.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
-dependencies = [
- "futures-core",
- "futures-sink",
- "nanorand",
- "pin-project",
- "spin",
-]
-
-[[package]]
-name = "flume"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
 dependencies = [
- "futures-core",
- "futures-sink",
- "nanorand",
  "spin",
 ]
 
@@ -1829,23 +2033,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
+name = "font-types"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bd7f3ea17572640b606b35df42cfb6ecdf003704b062580e59918692190b73d"
+
+[[package]]
 name = "fontconfig-parser"
-version = "0.5.3"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "674e258f4b5d2dcd63888c01c68413c51f565e8af99d2f7701c7b81d79ef41c4"
+checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d"
 dependencies = [
- "roxmltree 0.18.1",
+ "roxmltree",
 ]
 
 [[package]]
 name = "fontdb"
-version = "0.16.0"
+version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98b88c54a38407f7352dd2c4238830115a6377741098ffd1f997c813d0e088a6"
+checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3"
 dependencies = [
  "fontconfig-parser",
  "log",
- "memmap2 0.9.3",
+ "memmap2 0.9.4",
  "slotmap",
  "tinyvec",
  "ttf-parser 0.20.0",
@@ -1878,7 +2088,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1895,9 +2105,9 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
 
 [[package]]
 name = "fork"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf2ca97a59201425e7ee4d197c9c4fea282fe87a97d666a580bda889b95b8e88"
+checksum = "60e74d3423998a57e9d906e49252fb79eb4a04d5cdfe188fb1b7ff9fc076a8ed"
 dependencies = [
  "libc",
 ]
@@ -1923,11 +2133,11 @@ dependencies = [
 
 [[package]]
 name = "freedesktop-icons"
-version = "0.2.4"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9d46a9ae065c46efb83854bb10315de6d333bb6f4526ebe320c004dab7857e"
+checksum = "a8ef34245e0540c9a3ce7a28340b98d2c12b75da0d446da4e8224923fcaa0c16"
 dependencies = [
- "dirs 4.0.0",
+ "dirs",
  "once_cell",
  "rust-ini",
  "thiserror",
@@ -2028,7 +2238,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -2103,22 +2313,12 @@ dependencies = [
 
 [[package]]
 name = "gethostname"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "gethostname"
-version = "0.3.0"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177"
+checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
 dependencies = [
  "libc",
- "winapi",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -2128,10 +2328,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if 1.0.0",
- "js-sys",
  "libc",
  "wasi",
- "wasm-bindgen",
 ]
 
 [[package]]
@@ -2155,6 +2353,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "gif"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
+dependencies = [
+ "color_quant",
+ "weezl",
+]
+
+[[package]]
 name = "gimli"
 version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2216,7 +2424,7 @@ dependencies = [
  "bstr",
  "log",
  "regex-automata",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
@@ -2242,8 +2450,8 @@ dependencies = [
 
 [[package]]
 name = "glyphon"
-version = "0.4.1"
-source = "git+https://github.com/jackpot51/glyphon.git#abb70c0fda8cf1a5dfc314c1c778103d7ba951e6"
+version = "0.5.0"
+source = "git+https://github.com/pop-os/glyphon.git?tag=v0.5.0#1b0646ff8f74da92d3be704dfc2257d7f4d7eed8"
 dependencies = [
  "cosmic-text",
  "etagere",
@@ -2283,16 +2491,15 @@ dependencies = [
 
 [[package]]
 name = "gpu-allocator"
-version = "0.23.0"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40fe17c8a05d60c38c0a4e5a3c802f2f1ceb66b76c67d96ffb34bef0475a7fad"
+checksum = "6f56f6318968d03c18e1bcf4857ff88c61157e9da8e47c5f29055d60e1228884"
 dependencies = [
- "backtrace",
  "log",
  "presser",
  "thiserror",
  "winapi",
- "windows 0.51.1",
+ "windows 0.52.0",
 ]
 
 [[package]]
@@ -2303,7 +2510,7 @@ checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
 dependencies = [
  "bitflags 2.4.2",
  "gpu-descriptor-types",
- "hashbrown 0.14.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -2376,7 +2583,7 @@ dependencies = [
  "grep-matcher",
  "log",
  "regex-automata",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
@@ -2391,7 +2598,7 @@ dependencies = [
  "grep-matcher",
  "log",
  "memchr",
- "memmap2 0.9.3",
+ "memmap2 0.9.4",
 ]
 
 [[package]]
@@ -2430,9 +2637,9 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "2.3.1"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
 dependencies = [
  "cfg-if 1.0.0",
  "crunchy",
@@ -2454,33 +2661,24 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-dependencies = [
- "ahash 0.7.7",
-]
-
-[[package]]
-name = "hashbrown"
 version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.8.7",
+ "ahash",
  "allocator-api2",
 ]
 
 [[package]]
 name = "hassle-rs"
-version = "0.10.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0"
+checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890"
 dependencies = [
- "bitflags 1.3.2",
- "com-rs",
+ "bitflags 2.4.2",
+ "com",
  "libc",
- "libloading 0.7.4",
+ "libloading 0.8.1",
  "thiserror",
  "widestring",
  "winapi",
@@ -2494,9 +2692,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.4"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
+checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60"
 
 [[package]]
 name = "hex"
@@ -2526,7 +2724,7 @@ dependencies = [
  "serde",
  "serde_derive",
  "thiserror",
- "toml 0.8.8",
+ "toml 0.8.10",
  "unic-langid",
 ]
 
@@ -2569,7 +2767,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim 0.10.0",
- "syn 2.0.48",
+ "syn 2.0.51",
  "unic-langid",
 ]
 
@@ -2583,21 +2781,21 @@ dependencies = [
  "i18n-config",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.59"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys 0.8.6",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows-core 0.52.0",
+ "windows-core",
 ]
 
 [[package]]
@@ -2612,7 +2810,7 @@ dependencies = [
 [[package]]
 name = "iced"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "iced_accessibility",
  "iced_core",
@@ -2620,14 +2818,14 @@ dependencies = [
  "iced_renderer",
  "iced_widget",
  "iced_winit",
- "image 0.24.8",
+ "image 0.24.9",
  "thiserror",
 ]
 
 [[package]]
 name = "iced_accessibility"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "accesskit",
  "accesskit_winit",
@@ -2636,23 +2834,24 @@ dependencies = [
 [[package]]
 name = "iced_core"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "bitflags 1.3.2",
- "instant",
  "log",
  "num-traits",
  "palette",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "serde",
+ "smol_str",
  "thiserror",
+ "web-time",
  "xxhash-rust",
 ]
 
 [[package]]
 name = "iced_futures"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "futures",
  "iced_core",
@@ -2665,7 +2864,7 @@ dependencies = [
 [[package]]
 name = "iced_graphics"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2673,12 +2872,13 @@ dependencies = [
  "glam",
  "half",
  "iced_core",
- "image 0.24.8",
+ "iced_futures",
+ "image 0.24.9",
  "kamadak-exif",
  "log",
  "lyon_path",
  "once_cell",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "rustc-hash",
  "thiserror",
  "unicode-segmentation",
@@ -2688,20 +2888,19 @@ dependencies = [
 [[package]]
 name = "iced_renderer"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "iced_graphics",
  "iced_tiny_skia",
  "iced_wgpu",
  "log",
- "raw-window-handle 0.5.2",
  "thiserror",
 ]
 
 [[package]]
 name = "iced_runtime"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "iced_core",
  "iced_futures",
@@ -2711,7 +2910,7 @@ dependencies = [
 [[package]]
 name = "iced_style"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "iced_core",
  "once_cell",
@@ -2721,25 +2920,24 @@ dependencies = [
 [[package]]
 name = "iced_tiny_skia"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "bytemuck",
  "cosmic-text",
  "iced_graphics",
  "kurbo",
  "log",
- "raw-window-handle 0.5.2",
  "resvg",
  "rustc-hash",
  "softbuffer",
- "tiny-skia 0.11.3",
+ "tiny-skia",
  "xxhash-rust",
 ]
 
 [[package]]
 name = "iced_wgpu"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2751,7 +2949,6 @@ dependencies = [
  "log",
  "lyon",
  "once_cell",
- "raw-window-handle 0.5.2",
  "resvg",
  "wgpu",
 ]
@@ -2759,7 +2956,7 @@ dependencies = [
 [[package]]
 name = "iced_widget"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "iced_renderer",
  "iced_runtime",
@@ -2773,7 +2970,7 @@ dependencies = [
 [[package]]
 name = "iced_winit"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "iced_graphics",
  "iced_runtime",
@@ -2784,7 +2981,28 @@ dependencies = [
  "web-sys",
  "winapi",
  "window_clipboard",
- "winit 0.28.6",
+ "winit 0.29.10",
+]
+
+[[package]]
+name = "icrate"
+version = "0.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319"
+dependencies = [
+ "block2 0.3.0",
+ "dispatch",
+ "objc2 0.4.1",
+]
+
+[[package]]
+name = "icrate"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e286f4b975ac6c054971a0600a9b76438b332edace54bff79c71c9d3adfc9772"
+dependencies = [
+ "block2 0.4.0",
+ "objc2 0.5.0",
 ]
 
 [[package]]
@@ -2840,18 +3058,18 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.8"
+version = "0.24.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
  "exr",
- "gif 0.12.0",
+ "gif 0.13.1",
  "jpeg-decoder 0.3.1",
  "num-traits",
- "png 0.17.11",
+ "png 0.17.13",
  "qoi",
  "tiff 0.9.1",
 ]
@@ -2864,12 +3082,12 @@ checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284"
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -2899,9 +3117,6 @@ 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]]
@@ -2935,36 +3150,62 @@ dependencies = [
 ]
 
 [[package]]
+name = "is-docker"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
 name = "is-terminal"
-version = "0.4.10"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
  "hermit-abi",
- "rustix 0.38.30",
+ "libc",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
+name = "is-wsl"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
+dependencies = [
+ "is-docker",
+ "once_cell",
+]
+
+[[package]]
 name = "itoa"
 version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
-name = "jni-sys"
-version = "0.3.0"
+name = "jni"
+version = "0.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
+dependencies = [
+ "cesu8",
+ "cfg-if 1.0.0",
+ "combine",
+ "jni-sys",
+ "log",
+ "thiserror",
+ "walkdir",
+ "windows-sys 0.45.0",
+]
 
 [[package]]
-name = "jobserver"
-version = "0.1.27"
+name = "jni-sys"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
-dependencies = [
- "libc",
-]
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
 name = "jpeg-decoder"
@@ -2986,9 +3227,9 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.67"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
+checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -3020,6 +3261,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
 
 [[package]]
+name = "known-folders"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4397c789f2709d23cfcb703b316e0766a8d4b17db2d47b0ab096ef6047cae1d8"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "kqueue"
 version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3084,14 +3334,14 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.152"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libcosmic"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#4e18199444aecbc60f25a12e8adb91926aa5e653"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "apply",
  "ashpd",
@@ -3113,6 +3363,7 @@ dependencies = [
  "iced_winit",
  "lazy_static",
  "palette",
+ "rfd",
  "slotmap",
  "taffy",
  "thiserror",
@@ -3209,6 +3460,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
+name = "linux-raw-sys"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0b5399f6804fbab912acbd8878ed3532d506b7c951b8f9f164ef90fef39e3f4"
+
+[[package]]
 name = "locale_config"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3239,11 +3496,11 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "lru"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7"
+checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
 dependencies = [
- "hashbrown 0.14.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -3324,33 +3581,15 @@ dependencies = [
 
 [[package]]
 name = "memmap2"
-version = "0.5.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "memmap2"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
 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 = "memoffset"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
@@ -3389,6 +3628,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
+name = "mime_guess"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
 name = "minimal-lexical"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3415,9 +3664,9 @@ dependencies = [
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -3471,9 +3720,9 @@ dependencies = [
 
 [[package]]
 name = "modit"
-version = "0.1.3"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52e146555580584c3ae3e07a079d0a4499ddff20ede0cc3c039578789e43ef0c"
+checksum = "fa21838a18a88208e85015452ef542b4fb5ce0be3dc635331df56874af16c13c"
 dependencies = [
  "log",
 ]
@@ -3486,10 +3735,10 @@ checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b"
 
 [[package]]
 name = "naga"
-version = "0.14.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae585df4b6514cf8842ac0f1ab4992edc975892704835b549cf818dc0191249e"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
+ "arrayvec 0.7.4",
  "bit-set",
  "bitflags 2.4.2",
  "codespan-reporting",
@@ -3505,15 +3754,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "nanorand"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
 name = "ndk"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3527,15 +3767,16 @@ dependencies = [
 
 [[package]]
 name = "ndk"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
+checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "jni-sys",
- "ndk-sys 0.4.1+23.1.7779620",
- "num_enum 0.5.11",
- "raw-window-handle 0.5.2",
+ "log",
+ "ndk-sys 0.5.0+25.2.9519653",
+ "num_enum 0.7.2",
+ "raw-window-handle 0.6.0",
  "thiserror",
 ]
 
@@ -3580,9 +3821,9 @@ checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121"
 
 [[package]]
 name = "ndk-sys"
-version = "0.4.1+23.1.7779620"
+version = "0.5.0+25.2.9519653"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3"
+checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691"
 dependencies = [
  "jni-sys",
 ]
@@ -3613,44 +3854,6 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.22.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf"
-dependencies = [
- "bitflags 1.3.2",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "memoffset 0.6.5",
-]
-
-[[package]]
-name = "nix"
-version = "0.24.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
-dependencies = [
- "bitflags 1.3.2",
- "cfg-if 1.0.0",
- "libc",
- "memoffset 0.6.5",
-]
-
-[[package]]
-name = "nix"
-version = "0.25.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
-dependencies = [
- "autocfg",
- "bitflags 1.3.2",
- "cfg-if 1.0.0",
- "libc",
- "memoffset 0.6.5",
-]
-
-[[package]]
-name = "nix"
 version = "0.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
@@ -3662,17 +3865,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "nix"
-version = "0.27.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
-dependencies = [
- "bitflags 2.4.2",
- "cfg-if 1.0.0",
- "libc",
-]
-
-[[package]]
 name = "nom"
 version = "5.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3759,28 +3951,33 @@ dependencies = [
 
 [[package]]
 name = "num-complex"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
 dependencies = [
  "num-traits",
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
 name = "num-integer"
-version = "0.1.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
 [[package]]
 name = "num-iter"
-version = "0.1.43"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -3812,9 +4009,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
  "libm",
@@ -3841,11 +4038,11 @@ dependencies = [
 
 [[package]]
 name = "num_enum"
-version = "0.6.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1"
+checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845"
 dependencies = [
- "num_enum_derive 0.6.1",
+ "num_enum_derive 0.7.2",
 ]
 
 [[package]]
@@ -3862,14 +4059,23 @@ dependencies = [
 
 [[package]]
 name = "num_enum_derive"
-version = "0.6.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6"
+checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
 dependencies = [
- "proc-macro-crate 1.3.1",
+ "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "num_threads"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
+dependencies = [
+ "libc",
 ]
 
 [[package]]
@@ -3895,31 +4101,43 @@ dependencies = [
 
 [[package]]
 name = "objc-sys"
-version = "0.2.0-beta.2"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7"
+checksum = "c7c71324e4180d0899963fc83d9d241ac39e699609fc1025a850aadac8257459"
 
 [[package]]
 name = "objc2"
-version = "0.3.0-beta.3.patch-leaks.3"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468"
+checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d"
 dependencies = [
- "block2",
  "objc-sys",
- "objc2-encode",
+ "objc2-encode 3.0.0",
 ]
 
 [[package]]
-name = "objc2-encode"
-version = "2.0.0-pre.2"
+name = "objc2"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512"
+checksum = "9a9c7f0d511a4ce26b078183179dca908171cfc69f88986fe36c5138e1834476"
 dependencies = [
  "objc-sys",
+ "objc2-encode 4.0.0",
 ]
 
 [[package]]
+name = "objc2-encode"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666"
+
+[[package]]
+name = "objc2-encode"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ff06a6505cde0766484f38d8479ac8e6d31c66fbc2d5492f65ca8c091456379"
+
+[[package]]
 name = "objc_exception"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3975,6 +4193,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "open"
+version = "5.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eedff767bc49d336bff300224f73307ae36963c843e38dc9312a22171b012cbc"
+dependencies = [
+ "is-wsl",
+ "libc",
+ "pathdiff",
+]
+
+[[package]]
 name = "option-ext"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3991,12 +4220,12 @@ dependencies = [
 
 [[package]]
 name = "ordered-multimap"
-version = "0.4.3"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a"
+checksum = "a4d6a8c22fc714f0c2373e6091bf6f5e9b37b1bc0b1184874b7e0a4e303d318f"
 dependencies = [
  "dlv-list",
- "hashbrown 0.12.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -4030,7 +4259,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -4053,9 +4282,9 @@ dependencies = [
 
 [[package]]
 name = "palette"
-version = "0.7.3"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2e2f34147767aa758aa649415b50a69eeb46a67f9dc7db8011eeb3d84b351dc"
+checksum = "ebfc23a4b76642983d57e4ad00bb4504eb30a8ce3c70f4aee1f725610e36d97a"
 dependencies = [
  "approx",
  "fast-srgb8",
@@ -4066,13 +4295,13 @@ dependencies = [
 
 [[package]]
 name = "palette_derive"
-version = "0.7.3"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7db010ec5ff3d4385e4f133916faacd9dad0f6a09394c92d825b3aed310fa0a"
+checksum = "e8890702dbec0bad9116041ae586f84805b13eecd1d8b1df27c29998a9969d6d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -4159,6 +4388,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
 name = "percent-encoding"
 version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4166,9 +4401,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pest"
-version = "2.7.6"
+version = "2.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f200d8d83c44a45b21764d1916299752ca035d15ecd46faca3e9a2a2bf6ad06"
+checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546"
 dependencies = [
  "memchr",
  "thiserror",
@@ -4177,9 +4412,9 @@ dependencies = [
 
 [[package]]
 name = "pest_derive"
-version = "2.7.6"
+version = "2.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcd6ab1236bbdb3a49027e920e693192ebfe8913f6d60e294de57463a493cfde"
+checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809"
 dependencies = [
  "pest",
  "pest_generator",
@@ -4187,22 +4422,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.6"
+version = "2.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a31940305ffc96863a735bef7c7994a00b325a7138fdbc5bda0f1a0476d3275"
+checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.6"
+version = "2.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7ff62f5259e53b78d1af898941cdcdccfae7385cf7d793a6e55de5d05bb4b7d"
+checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a"
 dependencies = [
  "once_cell",
  "pest",
@@ -4239,7 +4474,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -4258,26 +4493,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
 
 [[package]]
-name = "pin-project"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
-]
-
-[[package]]
 name = "pin-project-lite"
 version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4302,9 +4517,9 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "plist"
@@ -4315,7 +4530,7 @@ dependencies = [
  "base64",
  "indexmap",
  "line-wrap",
- "quick-xml 0.31.0",
+ "quick-xml",
  "serde",
  "time",
 ]
@@ -4334,15 +4549,15 @@ dependencies = [
 
 [[package]]
 name = "png"
-version = "0.17.11"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
  "fdeflate",
  "flate2",
- "miniz_oxide 0.7.1",
+ "miniz_oxide 0.7.2",
 ]
 
 [[package]]
@@ -4363,14 +4578,14 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.3.2"
+version = "3.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "545c980a3880efd47b2e262f6a4bb6daad6555cf3367aa9c4e52895f69537a41"
+checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
 dependencies = [
  "cfg-if 1.0.0",
  "concurrent-queue",
  "pin-project-lite",
- "rustix 0.38.30",
+ "rustix 0.38.31",
  "tracing",
  "windows-sys 0.52.0",
 ]
@@ -4413,6 +4628,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit 0.21.1",
+]
+
+[[package]]
 name = "proc-macro-error"
 version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4438,18 +4662,24 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.76"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "profiling"
-version = "1.0.13"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d135ede8821cf6376eb7a64148901e1690b788c11ae94dc297ae917dbc91dc0e"
+checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58"
+
+[[package]]
+name = "pure-rust-locales"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1190fd18ae6ce9e137184f207593877e70f39b015040156b1e05081cdfe3733a"
 
 [[package]]
 name = "qoi"
@@ -4462,15 +4692,6 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.30.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "quick-xml"
 version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
@@ -4525,9 +4746,9 @@ checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab"
 
 [[package]]
 name = "rangemap"
-version = "1.4.0"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "977b1e897f9d764566891689e642653e5ed90c6895106acd005eb4c1d0203991"
+checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684"
 
 [[package]]
 name = "raw-window-handle"
@@ -4555,6 +4776,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
 
 [[package]]
+name = "raw-window-handle"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
+
+[[package]]
 name = "rayon"
 version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4581,6 +4808,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
 
 [[package]]
+name = "read-fonts"
+version = "0.15.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ea23eedb4d938031b6d4343222444608727a6aa68ec355e13588d9947ffe92"
+dependencies = [
+ "font-types",
+]
+
+[[package]]
 name = "redox_syscall"
 version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4620,35 +4856,29 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
  "regex-automata",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
-
-[[package]]
-name = "regex-syntax"
 version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
@@ -4669,19 +4899,20 @@ dependencies = [
  "jpeg-decoder 0.3.1",
  "log",
  "pico-args",
- "png 0.17.11",
+ "png 0.17.13",
  "rgb",
  "svgtypes",
- "tiny-skia 0.11.3",
+ "tiny-skia",
  "usvg",
 ]
 
 [[package]]
 name = "rfd"
-version = "0.12.1"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c9e7b57df6e8472152674607f6cc68aa14a748a3157a857a94f516e11aeacc2"
+checksum = "c0d8ab342bcc5436e04d3a4c1e09e17d74958bfaddf8d5fad6f85607df0f994f"
 dependencies = [
+ "ashpd",
  "block",
  "dispatch",
  "glib-sys",
@@ -4722,24 +4953,15 @@ dependencies = [
 
 [[package]]
 name = "roxmltree"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "862340e351ce1b271a378ec53f304a5558f7db87f3769dc655a8f6ecbb68b302"
-dependencies = [
- "xmlparser",
-]
-
-[[package]]
-name = "roxmltree"
 version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
 
 [[package]]
 name = "rust-embed"
-version = "8.2.0"
+version = "8.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a82c0bbc10308ed323529fd3c1dce8badda635aa319a5ff0e6466f33b8101e3f"
+checksum = "fb78f46d0066053d16d4ca7b898e9343bc3530f71c61d5ad84cd404ada068745"
 dependencies = [
  "rust-embed-impl",
  "rust-embed-utils",
@@ -4748,22 +4970,22 @@ dependencies = [
 
 [[package]]
 name = "rust-embed-impl"
-version = "8.2.0"
+version = "8.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6227c01b1783cdfee1bcf844eb44594cd16ec71c35305bf1c9fb5aade2735e16"
+checksum = "b91ac2a3c6c0520a3fb3dd89321177c3c692937c4eb21893378219da10c44fc8"
 dependencies = [
  "proc-macro2",
  "quote",
  "rust-embed-utils",
- "syn 2.0.48",
+ "syn 2.0.51",
  "walkdir",
 ]
 
 [[package]]
 name = "rust-embed-utils"
-version = "8.2.0"
+version = "8.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cb0a25bfbb2d4b4402179c2cf030387d9990857ce08a32592c6238db9fa8665"
+checksum = "86f69089032567ffff4eada41c573fc43ff466c7db7c5688b2e7969584345581"
 dependencies = [
  "sha2",
  "walkdir",
@@ -4771,9 +4993,9 @@ dependencies = [
 
 [[package]]
 name = "rust-ini"
-version = "0.18.0"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
+checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a"
 dependencies = [
  "cfg-if 1.0.0",
  "ordered-multimap",
@@ -4816,9 +5038,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.30"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
  "bitflags 2.4.2",
  "errno",
@@ -4838,6 +5060,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
 name = "rustybuzz"
 version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4856,9 +5084,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "safemem"
@@ -4895,14 +5123,15 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sctk-adwaita"
-version = "0.5.4"
-source = "git+https://github.com/pop-os/sctk-adwaita?branch=wayland-resize#da85380dfb8f0c13aed51c5bddaad0ba3654cb1f"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82b2eaf3a5b264a521b988b2e73042e742df700c4f962cde845d1541adb46550"
 dependencies = [
  "ab_glyph",
  "log",
- "memmap2 0.5.10",
- "smithay-client-toolkit 0.16.1",
- "tiny-skia 0.8.4",
+ "memmap2 0.9.4",
+ "smithay-client-toolkit 0.18.1",
+ "tiny-skia",
 ]
 
 [[package]]
@@ -4937,29 +5166,29 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
 
 [[package]]
 name = "serde"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.111"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -4974,7 +5203,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -5058,9 +5287,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.12.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2593d31f82ead8df961d8bd23a64c2ccf2eb5dd34b0a34bfb4dd54011c72009e"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "smithay-client-toolkit"
@@ -5083,30 +5312,47 @@ dependencies = [
 
 [[package]]
 name = "smithay-client-toolkit"
-version = "0.16.1"
-source = "git+https://github.com/pop-os/client-toolkit?branch=wayland-resize#515820fc86cf8cb3ac8d087dc6c87852767627ca"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
 dependencies = [
- "bitflags 1.3.2",
- "calloop 0.10.6",
- "dlib 0.5.2",
- "lazy_static",
+ "bitflags 2.4.2",
+ "calloop 0.12.4",
+ "calloop-wayland-source",
+ "cursor-icon",
+ "libc",
  "log",
- "memmap2 0.5.10",
- "nix 0.24.3",
- "pkg-config",
- "wayland-client 0.29.5",
- "wayland-cursor 0.29.5",
- "wayland-protocols 0.29.5",
+ "memmap2 0.9.4",
+ "rustix 0.38.31",
+ "thiserror",
+ "wayland-backend",
+ "wayland-client 0.31.2",
+ "wayland-csd-frame",
+ "wayland-cursor 0.31.1",
+ "wayland-protocols 0.31.2",
+ "wayland-protocols-wlr",
+ "wayland-scanner 0.31.1",
+ "xkeysym",
 ]
 
 [[package]]
 name = "smithay-clipboard"
-version = "0.6.6"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c091e7354ea8059d6ad99eace06dd13ddeedbb0ac72d40a9a6e7ff790525882d"
+dependencies = [
+ "libc",
+ "smithay-client-toolkit 0.18.1",
+ "wayland-backend",
+]
+
+[[package]]
+name = "smol_str"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8"
+checksum = "e6845563ada680337a52d43bb0b29f396f2d911616f6573012645b9e3d048a49"
 dependencies = [
- "smithay-client-toolkit 0.16.1",
- "wayland-client 0.29.5",
+ "serde",
 ]
 
 [[package]]
@@ -5121,22 +5367,22 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "softbuffer"
-version = "0.3.3"
-source = "git+https://github.com/pop-os/softbuffer?tag=v0.3-cosmic#6f0371ccece51d124c6c5d37082189df0dc5f9ba"
+version = "0.4.1"
+source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#6e75b1ad7e98397d37cb187886d05969bc480995"
 dependencies = [
  "as-raw-xcb-connection",
  "bytemuck",
- "cfg_aliases",
+ "cfg_aliases 0.2.0",
  "cocoa 0.25.0",
  "core-graphics 0.23.1",
  "drm",
@@ -5144,19 +5390,19 @@ dependencies = [
  "foreign-types 0.5.0",
  "js-sys",
  "log",
- "memmap2 0.9.3",
+ "memmap2 0.9.4",
  "objc",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "redox_syscall 0.4.1",
- "rustix 0.38.30",
+ "rustix 0.38.31",
  "tiny-xlib",
  "wasm-bindgen",
  "wayland-backend",
- "wayland-client 0.31.1",
+ "wayland-client 0.31.2",
  "wayland-sys 0.31.1",
  "web-sys",
- "windows-sys 0.48.0",
- "x11rb 0.12.0",
+ "windows-sys 0.52.0",
+ "x11rb",
 ]
 
 [[package]]
@@ -5170,12 +5416,11 @@ dependencies = [
 
 [[package]]
 name = "spirv"
-version = "0.2.0+1.5.4"
+version = "0.3.0+sdk-1.3.268.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
+checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844"
 dependencies = [
- "bitflags 1.3.2",
- "num-traits",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
@@ -5185,12 +5430,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
-name = "str-buf"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
-
-[[package]]
 name = "strict-num"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5229,10 +5468,11 @@ dependencies = [
 
 [[package]]
 name = "swash"
-version = "0.1.8"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b7c73c813353c347272919aa1af2885068b05e625e5532b43049e4f641ae77f"
+checksum = "d06ff4664af8923625604261c645f5c4cc610cc83c84bec74b50d76237089de7"
 dependencies = [
+ "read-fonts",
  "yazi",
  "zeno",
 ]
@@ -5250,9 +5490,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.51"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5261,9 +5501,9 @@ dependencies = [
 
 [[package]]
 name = "syntect"
-version = "5.1.0"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91"
+checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1"
 dependencies = [
  "bincode",
  "bitflags 1.3.2",
@@ -5272,8 +5512,9 @@ dependencies = [
  "once_cell",
  "onig",
  "plist",
- "regex-syntax 0.7.5",
+ "regex-syntax",
  "serde",
+ "serde_derive",
  "serde_json",
  "thiserror",
  "walkdir",
@@ -5298,7 +5539,7 @@ dependencies = [
  "cfg-expr",
  "heck",
  "pkg-config",
- "toml 0.8.8",
+ "toml 0.8.10",
  "version-compare",
 ]
 
@@ -5330,20 +5571,19 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.13"
+version = "0.12.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "tempfile"
-version = "3.9.0"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if 1.0.0",
  "fastrand 2.0.1",
- "redox_syscall 0.4.1",
- "rustix 0.38.30",
+ "rustix 0.38.31",
  "windows-sys 0.52.0",
 ]
 
@@ -5358,22 +5598,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -5400,12 +5640,15 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.31"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
  "deranged",
  "itoa",
+ "libc",
+ "num-conv",
+ "num_threads",
  "powerfmt",
  "serde",
  "time-core",
@@ -5420,58 +5663,43 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
 [[package]]
-name = "tiny-skia"
-version = "0.8.4"
+name = "tiny-keccak"
+version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
 dependencies = [
- "arrayref",
- "arrayvec 0.7.4",
- "bytemuck",
- "cfg-if 1.0.0",
- "png 0.17.11",
- "tiny-skia-path 0.8.4",
+ "crunchy",
 ]
 
 [[package]]
 name = "tiny-skia"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6a067b809476893fce6a254cf285850ff69c847e6cfbade6a20b655b6c7e80d"
+checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
 dependencies = [
  "arrayref",
  "arrayvec 0.7.4",
  "bytemuck",
  "cfg-if 1.0.0",
  "log",
- "png 0.17.11",
- "tiny-skia-path 0.11.3",
+ "png 0.17.13",
+ "tiny-skia-path",
 ]
 
 [[package]]
 name = "tiny-skia-path"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c"
-dependencies = [
- "arrayref",
- "bytemuck",
- "strict-num",
-]
-
-[[package]]
-name = "tiny-skia-path"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de35e8a90052baaaf61f171680ac2f8e925a1e43ea9d2e3a00514772250e541"
+checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
 dependencies = [
  "arrayref",
  "bytemuck",
@@ -5516,9 +5744,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.35.1"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
  "backtrace",
  "bytes",
@@ -5527,7 +5755,7 @@ dependencies = [
  "num_cpus",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "tracing",
  "windows-sys 0.48.0",
 ]
@@ -5543,14 +5771,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.21.0",
+ "toml_edit 0.22.6",
 ]
 
 [[package]]
@@ -5570,20 +5798,31 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
  "indexmap",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.40",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.21.0"
+version = "0.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.2",
 ]
 
 [[package]]
@@ -5605,7 +5844,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -5618,6 +5857,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "trash"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c658458d46d9d5a153a3b5cdd88d8579ad50d4fb85d53961e4526c8fc7c55a57"
+dependencies = [
+ "chrono",
+ "libc",
+ "log",
+ "objc",
+ "once_cell",
+ "scopeguard",
+ "url",
+ "windows 0.44.0",
+]
+
+[[package]]
 name = "ttf-parser"
 version = "0.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5732,30 +5987,30 @@ checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-properties"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7f91c8b21fbbaa18853c3d0801c78f4fc94cdb976699bb03e832e75f7fd22f0"
+checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
 
 [[package]]
 name = "unicode-script"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc"
+checksum = "ad8d71f5726e5f285a935e9fe8edfd53f0491eb6e9a5774097fdabee7cd8c9cd"
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-vo"
@@ -5813,7 +6068,7 @@ dependencies = [
  "imagesize",
  "kurbo",
  "log",
- "roxmltree 0.19.0",
+ "roxmltree",
  "simplecss",
  "siphasher",
  "svgtypes",
@@ -5845,14 +6100,26 @@ dependencies = [
  "rctree",
  "strict-num",
  "svgtypes",
- "tiny-skia-path 0.11.3",
+ "tiny-skia-path",
 ]
 
 [[package]]
-name = "vec_map"
-version = "0.8.2"
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "vergen"
+version = "8.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+checksum = "e27d6bdd219887a9eadd19e1c34f32e47fa332301184935c6d9bca26f3cca525"
+dependencies = [
+ "anyhow",
+ "cfg-if 1.0.0",
+ "rustversion",
+ "time",
+]
 
 [[package]]
 name = "version-compare"
@@ -5890,9 +6157,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.90"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
+checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
 dependencies = [
  "cfg-if 1.0.0",
  "wasm-bindgen-macro",
@@ -5900,24 +6167,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.90"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
+checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.40"
+version = "0.4.41"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
+checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
 dependencies = [
  "cfg-if 1.0.0",
  "js-sys",
@@ -5927,9 +6194,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.90"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
+checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -5937,22 +6204,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.90"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
+checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.90"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
+checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
 
 [[package]]
 name = "wasm-timer"
@@ -5971,13 +6238,13 @@ dependencies = [
 
 [[package]]
 name = "wayland-backend"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19152ddd73f45f024ed4534d9ca2594e0ef252c1847695255dae47f34df9fbe4"
+checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
 dependencies = [
  "cc",
  "downcast-rs",
- "nix 0.26.4",
+ "rustix 0.38.31",
  "scoped-tls",
  "smallvec",
  "wayland-sys 0.31.1",
@@ -5994,37 +6261,21 @@ dependencies = [
  "libc",
  "nix 0.20.0",
  "scoped-tls",
- "wayland-commons 0.28.6",
+ "wayland-commons",
  "wayland-scanner 0.28.6",
  "wayland-sys 0.28.6",
 ]
 
 [[package]]
 name = "wayland-client"
-version = "0.29.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715"
-dependencies = [
- "bitflags 1.3.2",
- "downcast-rs",
- "libc",
- "nix 0.24.3",
- "scoped-tls",
- "wayland-commons 0.29.5",
- "wayland-scanner 0.29.5",
- "wayland-sys 0.29.5",
-]
-
-[[package]]
-name = "wayland-client"
-version = "0.31.1"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3"
+checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
 dependencies = [
  "bitflags 2.4.2",
- "nix 0.26.4",
+ "rustix 0.38.31",
  "wayland-backend",
- "wayland-scanner 0.31.0",
+ "wayland-scanner 0.31.1",
 ]
 
 [[package]]
@@ -6040,15 +6291,14 @@ dependencies = [
 ]
 
 [[package]]
-name = "wayland-commons"
-version = "0.29.5"
+name = "wayland-csd-frame"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902"
+checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
 dependencies = [
- "nix 0.24.3",
- "once_cell",
- "smallvec",
- "wayland-sys 0.29.5",
+ "bitflags 2.4.2",
+ "cursor-icon",
+ "wayland-backend",
 ]
 
 [[package]]
@@ -6064,12 +6314,12 @@ dependencies = [
 
 [[package]]
 name = "wayland-cursor"
-version = "0.29.5"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661"
+checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
 dependencies = [
- "nix 0.24.3",
- "wayland-client 0.29.5",
+ "rustix 0.38.31",
+ "wayland-client 0.31.2",
  "xcursor",
 ]
 
@@ -6081,38 +6331,53 @@ checksum = "286620ea4d803bacf61fa087a4242ee316693099ee5a140796aaba02b29f861f"
 dependencies = [
  "bitflags 1.3.2",
  "wayland-client 0.28.6",
- "wayland-commons 0.28.6",
+ "wayland-commons",
  "wayland-scanner 0.28.6",
 ]
 
 [[package]]
 name = "wayland-protocols"
-version = "0.29.5"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6"
+checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
- "bitflags 1.3.2",
- "wayland-client 0.29.5",
- "wayland-commons 0.29.5",
- "wayland-scanner 0.29.5",
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client 0.31.2",
+ "wayland-scanner 0.31.1",
 ]
 
 [[package]]
-name = "wayland-scanner"
-version = "0.28.6"
+name = "wayland-protocols-plasma"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce923eb2deb61de332d1f356ec7b6bf37094dc5573952e1c8936db03b54c03f1"
+checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479"
 dependencies = [
- "proc-macro2",
- "quote",
- "xml-rs",
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client 0.31.2",
+ "wayland-protocols 0.31.2",
+ "wayland-scanner 0.31.1",
+]
+
+[[package]]
+name = "wayland-protocols-wlr"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
+dependencies = [
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client 0.31.2",
+ "wayland-protocols 0.31.2",
+ "wayland-scanner 0.31.1",
 ]
 
 [[package]]
 name = "wayland-scanner"
-version = "0.29.5"
+version = "0.28.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
+checksum = "ce923eb2deb61de332d1f356ec7b6bf37094dc5573952e1c8936db03b54c03f1"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -6121,12 +6386,12 @@ dependencies = [
 
 [[package]]
 name = "wayland-scanner"
-version = "0.31.0"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c"
+checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
 dependencies = [
  "proc-macro2",
- "quick-xml 0.30.0",
+ "quick-xml",
  "quote",
 ]
 
@@ -6143,17 +6408,6 @@ dependencies = [
 
 [[package]]
 name = "wayland-sys"
-version = "0.29.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4"
-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"
@@ -6166,9 +6420,19 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.68"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web-time"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -6176,25 +6440,24 @@ dependencies = [
 
 [[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "wgpu"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30e7d227c9f961f2061c26f4cb0fbd4df0ef37e056edd0931783599d6c94ef24"
+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",
- "flume 0.11.0",
+ "cfg_aliases 0.1.1",
  "js-sys",
  "log",
  "naga",
  "parking_lot 0.12.1",
  "profiling",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "smallvec",
  "static_assertions",
  "wasm-bindgen",
@@ -6207,19 +6470,21 @@ dependencies = [
 
 [[package]]
 name = "wgpu-core"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef91c1d62d1e9e81c79e600131a258edf75c9531cbdbde09c44a011a47312726"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "arrayvec 0.7.4",
  "bit-vec",
  "bitflags 2.4.2",
+ "cfg_aliases 0.1.1",
  "codespan-reporting",
+ "indexmap",
  "log",
  "naga",
+ "once_cell",
  "parking_lot 0.12.1",
  "profiling",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "rustc-hash",
  "smallvec",
  "thiserror",
@@ -6230,9 +6495,8 @@ dependencies = [
 
 [[package]]
 name = "wgpu-hal"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b84ecc802da3eb67b4cf3dd9ea6fe45bbb47ef13e6c49c5c3240868a9cc6cdd9"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "android_system_properties",
  "arrayvec 0.7.4",
@@ -6240,6 +6504,7 @@ dependencies = [
  "bit-set",
  "bitflags 2.4.2",
  "block",
+ "cfg_aliases 0.1.1",
  "core-graphics-types",
  "d3d12",
  "glow",
@@ -6260,7 +6525,7 @@ dependencies = [
  "parking_lot 0.12.1",
  "profiling",
  "range-alloc",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "renderdoc-sys",
  "rustc-hash",
  "smallvec",
@@ -6273,9 +6538,8 @@ dependencies = [
 
 [[package]]
 name = "wgpu-types"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d5ed5f0edf0de351fe311c53304986315ce866f394a2e6df0c4b3c70774bcdd"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "bitflags 2.4.2",
  "js-sys",
@@ -6314,15 +6578,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "winapi-wsapoll"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "winapi-x86_64-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6330,15 +6585,15 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "window_clipboard"
-version = "0.3.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63287c9c4396ccf5346d035a9b0fcaead9e18377637f5eaa78b7ac65c873ff7d"
+checksum = "f6d692d46038c433f9daee7ad8757e002a4248c20b0a3fbc991d99521d3bcb6d"
 dependencies = [
  "clipboard-win",
  "clipboard_macos",
  "clipboard_wayland",
  "clipboard_x11",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "thiserror",
 ]
 
@@ -6348,28 +6603,28 @@ version = "0.44.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b"
 dependencies = [
- "windows-implement",
- "windows-interface",
  "windows-targets 0.42.2",
 ]
 
 [[package]]
 name = "windows"
-version = "0.51.1"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
 dependencies = [
- "windows-core 0.51.1",
+ "windows-implement",
+ "windows-interface",
  "windows-targets 0.48.5",
 ]
 
 [[package]]
-name = "windows-core"
-version = "0.51.1"
+name = "windows"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
- "windows-targets 0.48.5",
+ "windows-core",
+ "windows-targets 0.52.3",
 ]
 
 [[package]]
@@ -6378,14 +6633,14 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.3",
 ]
 
 [[package]]
 name = "windows-implement"
-version = "0.44.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ce87ca8e3417b02dc2a8a22769306658670ec92d78f1bd420d6310a67c245c6"
+checksum = "5e2ee588991b9e7e6c8338edf3333fbe4da35dc72092643958ebb43f0ab2c49c"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -6394,9 +6649,9 @@ dependencies = [
 
 [[package]]
 name = "windows-interface"
-version = "0.44.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "853f69a591ecd4f810d29f17e902d40e349fb05b0b11fff63b08b826bfe39c7f"
+checksum = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -6427,7 +6682,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.3",
 ]
 
 [[package]]
@@ -6462,17 +6717,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.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",
 ]
 
 [[package]]
@@ -6489,9 +6744,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -6507,9 +6762,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -6525,9 +6780,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -6543,9 +6798,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -6561,9 +6816,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -6579,9 +6834,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -6597,9 +6852,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6"
 
 [[package]]
 name = "winit"
@@ -6635,43 +6890,65 @@ dependencies = [
 
 [[package]]
 name = "winit"
-version = "0.28.6"
-source = "git+https://github.com/pop-os/winit.git?branch=master#c6ad672264b2e320cd15a531f67e133d9ecd39bf"
+version = "0.29.10"
+source = "git+https://github.com/pop-os/winit.git?branch=winit-0.29#bdc66109acc85c912264c9e4b864520345bdb45f"
 dependencies = [
+ "ahash",
  "android-activity",
- "bitflags 1.3.2",
- "cfg_aliases",
+ "atomic-waker",
+ "bitflags 2.4.2",
+ "bytemuck",
+ "calloop 0.12.4",
+ "cfg_aliases 0.1.1",
  "core-foundation 0.9.4",
- "core-graphics 0.22.3",
- "dispatch",
- "instant",
+ "core-graphics 0.23.1",
+ "cursor-icon",
+ "icrate 0.0.4",
+ "js-sys",
  "libc",
  "log",
- "mio 0.8.10",
- "ndk 0.7.0",
- "objc2",
+ "memmap2 0.9.4",
+ "ndk 0.8.0",
+ "ndk-sys 0.5.0+25.2.9519653",
+ "objc2 0.4.1",
  "once_cell",
  "orbclient",
  "percent-encoding",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "redox_syscall 0.3.5",
+ "rustix 0.38.31",
  "sctk-adwaita",
- "smithay-client-toolkit 0.16.1",
+ "smithay-client-toolkit 0.18.1",
+ "smol_str",
+ "unicode-segmentation",
  "wasm-bindgen",
- "wayland-client 0.29.5",
- "wayland-commons 0.29.5",
- "wayland-protocols 0.29.5",
- "wayland-scanner 0.29.5",
+ "wasm-bindgen-futures",
+ "wayland-backend",
+ "wayland-client 0.31.2",
+ "wayland-protocols 0.31.2",
+ "wayland-protocols-plasma",
  "web-sys",
- "windows-sys 0.45.0",
+ "web-time",
+ "windows-sys 0.48.0",
  "x11-dl",
+ "x11rb",
+ "xkbcommon-dl",
 ]
 
 [[package]]
 name = "winnow"
-version = "0.5.34"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a4191c47f15cc3ec71fcb4913cb83d58def65dd3787610213c649283b5ce178"
 dependencies = [
  "memchr",
 ]
@@ -6689,41 +6966,24 @@ dependencies = [
 
 [[package]]
 name = "x11rb"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e99be55648b3ae2a52342f9a870c0e138709a3493261ce9b469afe6e4df6d8a"
-dependencies = [
- "gethostname 0.2.3",
- "nix 0.22.3",
- "winapi",
- "winapi-wsapoll",
-]
-
-[[package]]
-name = "x11rb"
-version = "0.12.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a"
+checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a"
 dependencies = [
  "as-raw-xcb-connection",
- "gethostname 0.3.0",
+ "gethostname",
  "libc",
- "libloading 0.7.4",
- "nix 0.26.4",
+ "libloading 0.8.1",
  "once_cell",
- "winapi",
- "winapi-wsapoll",
+ "rustix 0.38.31",
  "x11rb-protocol",
 ]
 
 [[package]]
 name = "x11rb-protocol"
-version = "0.12.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc"
-dependencies = [
- "nix 0.26.4",
-]
+checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34"
 
 [[package]]
 name = "xcursor"
@@ -6739,11 +6999,11 @@ checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
 
 [[package]]
 name = "xdg-home"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd"
+checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
 dependencies = [
- "nix 0.26.4",
+ "libc",
  "winapi",
 ]
 
@@ -6761,16 +7021,29 @@ dependencies = [
 ]
 
 [[package]]
-name = "xml-rs"
-version = "0.8.19"
+name = "xkbcommon-dl"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
+checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
+dependencies = [
+ "bitflags 2.4.2",
+ "dlib 0.5.2",
+ "log",
+ "once_cell",
+ "xkeysym",
+]
+
+[[package]]
+name = "xkeysym"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621"
 
 [[package]]
-name = "xmlparser"
-version = "0.13.6"
+name = "xml-rs"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
+checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
 
 [[package]]
 name = "xmlwriter"
@@ -6780,9 +7053,9 @@ checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9"
 
 [[package]]
 name = "xxhash-rust"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61"
+checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03"
 
 [[package]]
 name = "yaml-rust"
@@ -6801,9 +7074,9 @@ checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1"
 
 [[package]]
 name = "zbus"
-version = "3.14.1"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948"
+checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6"
 dependencies = [
  "async-broadcast",
  "async-executor",
@@ -6843,9 +7116,9 @@ dependencies = [
 
 [[package]]
 name = "zbus_macros"
-version = "3.14.1"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d"
+checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5"
 dependencies = [
  "proc-macro-crate 1.3.1",
  "proc-macro2",
@@ -6889,7 +7162,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -6903,9 +7176,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c"
+checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db"
 dependencies = [
  "byteorder",
  "enumflags2",
@@ -6918,9 +7191,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant_derive"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
+checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9"
 dependencies = [
  "proc-macro-crate 1.3.1",
  "proc-macro2",
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-edit/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-edit/package.nix
index 60020d46df45..155b812b42d9 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-edit/package.nix
+++ b/nixpkgs/pkgs/by-name/co/cosmic-edit/package.nix
@@ -6,8 +6,6 @@
   cmake,
   makeBinaryWrapper,
   cosmic-icons,
-  glib,
-  gtk3,
   just,
   pkg-config,
   libglvnd,
@@ -23,33 +21,38 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cosmic-edit";
-  version = "0-unstable-2024-01-19";
+  version = "unstable-2024-02-28";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = pname;
-    rev = "b97eb0603bf6c7e168fc6e17aa779af1f105b9ee";
-    hash = "sha256-oprqM3QTewC/L/KOQ4uT81dPLqjP+Kp+wxgkY8l1Nc8=";
+    rev = "536a66eff9c032afd76b60be6a9067a14ed38ab1";
+    hash = "sha256-UsZBxeamw8VuHtHrVtTwHhPPG+SMBrGY5taw+da/Ll0=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "accesskit-0.11.0" = "sha256-xVhe6adUb8VmwIKKjHxwCwOo5Y1p3Or3ylcJJdLDrrE=";
+      "accesskit-0.12.2" = "sha256-ksaYMGT/oug7isQY8/1WD97XDUsX2ShBdabUzxWffYw=";
       "atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
-      "cosmic-config-0.1.0" = "sha256-PR6u2DT+HneMSFszfg0sZK7oLwsOX4YtpUP88KWHy68=";
-      "cosmic-syntax-theme-0.1.0" = "sha256-9Vf2s5Ry2hco80EbXOuVLwvOWygRiuaRD4tTImWooSg=";
-      "cosmic-text-0.10.0" = "sha256-WxT0LPXu17jb0XpuCu2PjlGTV1a0K1HMhl6WpciKMkM=";
-      "glyphon-0.4.1" = "sha256-mwJXi63LTBIVFrFcywr/NeOJKfMjQaQkNl3CSdEgrZc=";
-      "sctk-adwaita-0.5.4" = "sha256-yK0F2w/0nxyKrSiHZbx7+aPNY2vlFs7s8nu/COp2KqQ=";
-      "softbuffer-0.3.3" = "sha256-eKYFVr6C1+X6ulidHIu9SP591rJxStxwL9uMiqnXx4k=";
-      "smithay-client-toolkit-0.16.1" = "sha256-z7EZThbh7YmKzAACv181zaEZmWxTrMkFRzP0nfsHK6c=";
+      "cosmic-config-0.1.0" = "sha256-Zyi95zcBAohM1WBropLzJczSIfNNNBK2odB4AmW4h5I=";
+      "cosmic-files-0.1.0" = "sha256-64An0MPgnFgyVlWmtBGBs+IV2z+4vmEY2uRPetZM4/M=";
+      "cosmic-syntax-theme-0.1.0" = "sha256-BNb9wrryD5FJImboD3TTdPRIfiBqPpItqwGdT1ZiNng=";
+      "cosmic-text-0.11.2" = "sha256-Y9i5stMYpx+iqn4y5DJm1O1+3UIGp0/fSsnNq3Zloug=";
+      "d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
+      "glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
+      "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.28.6" = "sha256-FhW6d2XnXCGJUMoT9EMQew9/OPXiehy/JraeCiVd76M=";
+      "winit-0.29.10" = "sha256-ScTII2AzK3SC8MVeASZ9jhVWsEaGrSQ2BnApTxgfxK4=";
     };
   };
 
+  # 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_SHA = src.rev;
+
   postPatch = ''
     substituteInPlace justfile --replace '#!/usr/bin/env' "#!$(command -v env)"
   '';
@@ -57,13 +60,12 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ just pkg-config makeBinaryWrapper ];
   buildInputs = [
     libxkbcommon
-    glib
-    gtk3
     xorg.libX11
     libinput
     libglvnd
     fontconfig
     freetype
+    mesa
     wayland
     vulkan-loader
   ];
@@ -94,13 +96,14 @@ rustPlatform.buildRustPackage rec {
     wrapProgram "$out/bin/${pname}" \
       --suffix XDG_DATA_DIRS : "${cosmic-icons}/share" \
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [
-        xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr vulkan-loader mesa.drivers
+        xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr vulkan-loader libxkbcommon mesa.drivers wayland
       ]}
   '';
 
   meta = with lib; {
     homepage = "https://github.com/pop-os/cosmic-edit";
     description = "Text Editor for the COSMIC Desktop Environment";
+    mainProgram = "cosmic-edit";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ahoneybun nyanbinary ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-files/Cargo.lock b/nixpkgs/pkgs/by-name/co/cosmic-files/Cargo.lock
index 4eaf5071f33e..95151198a829 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-files/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/co/cosmic-files/Cargo.lock
@@ -20,66 +20,71 @@ checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
 
 [[package]]
 name = "accesskit"
-version = "0.11.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.12.2"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 
 [[package]]
 name = "accesskit_consumer"
-version = "0.15.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.17.0"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
 ]
 
 [[package]]
 name = "accesskit_macos"
-version = "0.7.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.11.0"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
  "accesskit_consumer",
- "objc2",
+ "icrate 0.1.0",
+ "objc2 0.5.0",
  "once_cell",
 ]
 
 [[package]]
 name = "accesskit_unix"
-version = "0.4.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.7.1"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
  "accesskit_consumer",
- "async-channel 1.9.0",
+ "async-channel",
+ "async-executor",
+ "async-task",
  "atspi",
  "futures-lite 1.13.0",
- "log",
+ "futures-util",
+ "once_cell",
  "serde",
  "zbus",
 ]
 
 [[package]]
 name = "accesskit_windows"
-version = "0.14.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.16.0"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
  "accesskit_consumer",
- "arrayvec 0.7.4",
  "once_cell",
  "paste",
- "windows 0.44.0",
+ "static_assertions",
+ "windows 0.48.0",
 ]
 
 [[package]]
 name = "accesskit_winit"
-version = "0.13.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.18.1"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
  "accesskit_macos",
  "accesskit_unix",
  "accesskit_windows",
- "winit 0.28.6",
+ "raw-window-handle 0.6.0",
+ "winit 0.29.10",
 ]
 
 [[package]]
@@ -105,22 +110,12 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
 
 [[package]]
 name = "ahash"
-version = "0.7.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
-dependencies = [
- "getrandom",
- "once_cell",
- "version_check",
-]
-
-[[package]]
-name = "ahash"
-version = "0.8.7"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b"
 dependencies = [
  "cfg-if 1.0.0",
+ "getrandom",
  "once_cell",
  "version_check",
  "zerocopy",
@@ -168,20 +163,23 @@ dependencies = [
 
 [[package]]
 name = "android-activity"
-version = "0.4.3"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0"
+checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289"
 dependencies = [
  "android-properties",
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "cc",
+ "cesu8",
+ "jni",
  "jni-sys",
  "libc",
  "log",
- "ndk 0.7.0",
+ "ndk 0.8.0",
  "ndk-context",
- "ndk-sys 0.4.1+23.1.7779620",
- "num_enum 0.6.1",
+ "ndk-sys 0.5.0+25.2.9519653",
+ "num_enum 0.7.2",
+ "thiserror",
 ]
 
 [[package]]
@@ -206,12 +204,66 @@ dependencies = [
 ]
 
 [[package]]
+name = "anstream"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "any_ascii"
 version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "70033777eb8b5124a81a1889416543dddef2de240019b674c81285a2635a7e1e"
 
 [[package]]
+name = "anyhow"
+version = "1.0.80"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+
+[[package]]
 name = "apply"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -295,24 +347,13 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
-dependencies = [
- "concurrent-queue",
- "event-listener 2.5.3",
- "futures-core",
-]
-
-[[package]]
-name = "async-channel"
-version = "2.1.1"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
 dependencies = [
  "concurrent-queue",
- "event-listener 4.0.3",
- "event-listener-strategy",
+ "event-listener 5.1.0",
+ "event-listener-strategy 0.5.0",
  "futures-core",
  "pin-project-lite",
 ]
@@ -365,9 +406,9 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.2.2"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7"
+checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
 dependencies = [
  "async-lock 3.3.0",
  "cfg-if 1.0.0",
@@ -375,8 +416,8 @@ dependencies = [
  "futures-io",
  "futures-lite 2.2.0",
  "parking",
- "polling 3.3.1",
- "rustix 0.38.28",
+ "polling 3.5.0",
+ "rustix 0.38.31",
  "slab",
  "tracing",
  "windows-sys 0.52.0",
@@ -398,7 +439,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
 dependencies = [
  "event-listener 4.0.3",
- "event-listener-strategy",
+ "event-listener-strategy 0.4.0",
  "pin-project-lite",
 ]
 
@@ -415,7 +456,7 @@ dependencies = [
  "cfg-if 1.0.0",
  "event-listener 3.1.0",
  "futures-lite 1.13.0",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "windows-sys 0.48.0",
 ]
 
@@ -427,7 +468,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -436,13 +477,13 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io 2.2.2",
+ "async-io 2.3.1",
  "async-lock 2.8.0",
  "atomic-waker",
  "cfg-if 1.0.0",
  "futures-core",
  "futures-io",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "signal-hook-registry",
  "slab",
  "windows-sys 0.48.0",
@@ -462,7 +503,19 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "atk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
 ]
 
 [[package]]
@@ -476,36 +529,57 @@ name = "atomicwrites"
 version = "0.4.2"
 source = "git+https://github.com/jackpot51/rust-atomicwrites#043ab4859d53ffd3d55334685303d8df39c9f768"
 dependencies = [
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "tempfile",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "atspi"
-version = "0.10.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "674e7a3376837b2e7d12d34d58ac47073c491dc3bf6f71a7adaf687d4d817faa"
+checksum = "6059f350ab6f593ea00727b334265c4dfc7fd442ee32d264794bd9bdc68e87ca"
+dependencies = [
+ "atspi-common",
+ "atspi-connection",
+ "atspi-proxies",
+]
+
+[[package]]
+name = "atspi-common"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92af95f966d2431f962bc632c2e68eda7777330158bf640c4af4249349b2cdf5"
 dependencies = [
- "async-recursion",
- "async-trait",
- "atspi-macros",
  "enumflags2",
- "futures-lite 1.13.0",
  "serde",
- "tracing",
+ "static_assertions",
  "zbus",
  "zbus_names",
+ "zvariant",
 ]
 
 [[package]]
-name = "atspi-macros"
-version = "0.2.0"
+name = "atspi-connection"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fb4870a32c0eaa17e35bca0e6b16020635157121fb7d45593d242c295bc768"
+checksum = "a0c65e7d70f86d4c0e3b2d585d9bf3f979f0b19d635a336725a88d279f76b939"
 dependencies = [
- "quote",
- "syn 1.0.109",
+ "atspi-common",
+ "atspi-proxies",
+ "futures-lite 1.13.0",
+ "zbus",
+]
+
+[[package]]
+name = "atspi-proxies"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6495661273703e7a229356dcbe8c8f38223d697aacfaf0e13590a9ac9977bb52"
+dependencies = [
+ "atspi-common",
+ "serde",
+ "zbus",
 ]
 
 [[package]]
@@ -524,7 +598,7 @@ dependencies = [
  "cc",
  "cfg-if 1.0.0",
  "libc",
- "miniz_oxide 0.7.1",
+ "miniz_oxide 0.7.2",
  "object",
  "rustc-demangle",
 ]
@@ -564,9 +638,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 dependencies = [
  "serde",
 ]
@@ -588,21 +662,31 @@ dependencies = [
 
 [[package]]
 name = "block-sys"
-version = "0.1.0-beta.1"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146"
+checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7"
 dependencies = [
  "objc-sys",
 ]
 
 [[package]]
 name = "block2"
-version = "0.2.0-alpha.6"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42"
+checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68"
 dependencies = [
  "block-sys",
- "objc2-encode",
+ "objc2 0.4.1",
+]
+
+[[package]]
+name = "block2"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e58aa60e59d8dbfcc36138f5f18be5f24394d33b38b24f7fd0b1caa33095f22f"
+dependencies = [
+ "block-sys",
+ "objc2 0.5.0",
 ]
 
 [[package]]
@@ -611,7 +695,7 @@ version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
- "async-channel 2.1.1",
+ "async-channel",
  "async-lock 3.3.0",
  "async-task",
  "fastrand 2.0.1",
@@ -623,15 +707,15 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.0"
+version = "1.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
 dependencies = [
  "bytemuck_derive",
 ]
@@ -644,7 +728,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -660,6 +744,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
+name = "cairo-sys-rs"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
 name = "calloop"
 version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -671,29 +765,56 @@ dependencies = [
 
 [[package]]
 name = "calloop"
-version = "0.10.6"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8"
+checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "log",
- "nix 0.25.1",
- "slotmap",
+ "polling 3.5.0",
+ "rustix 0.38.31",
+ "slab",
  "thiserror",
- "vec_map",
+]
+
+[[package]]
+name = "calloop-wayland-source"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
+dependencies = [
+ "calloop 0.12.4",
+ "rustix 0.38.31",
+ "wayland-backend",
+ "wayland-client 0.31.2",
 ]
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.88"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc"
 dependencies = [
- "jobserver",
  "libc",
 ]
 
 [[package]]
+name = "cesu8"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
 name = "cfg-if"
 version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -712,10 +833,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77e53693616d3075149f4ead59bdeecd204ac6b8192d8969757601b74bddf00f"
+
+[[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
@@ -723,18 +850,16 @@ dependencies = [
  "num-traits",
  "pure-rust-locales",
  "wasm-bindgen",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.3",
 ]
 
 [[package]]
 name = "clipboard-win"
-version = "4.5.0"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
+checksum = "12f9a0700e0127ba15d1d52dd742097f821cd9c65939303a44d970465040a297"
 dependencies = [
  "error-code",
- "str-buf",
- "winapi",
 ]
 
 [[package]]
@@ -750,21 +875,21 @@ dependencies = [
 
 [[package]]
 name = "clipboard_wayland"
-version = "0.2.0"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f6364a9f7a66f2ac1a1a098aa1c7f6b686f2496c6ac5e5c0d773445df912747"
+checksum = "003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8"
 dependencies = [
  "smithay-clipboard",
 ]
 
 [[package]]
 name = "clipboard_x11"
-version = "0.4.0"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "983a7010836ecd04dde2c6d27a0cb56ec5d21572177e782bdcb24a600124e921"
+checksum = "4274ea815e013e0f9f04a2633423e14194e408a0576c943ce3d14ca56c50031c"
 dependencies = [
  "thiserror",
- "x11rb 0.9.0",
+ "x11rb",
 ]
 
 [[package]]
@@ -830,10 +955,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
-name = "com-rs"
-version = "0.2.1"
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "com"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e17887fd17353b65b1b2ef1c526c83e26cd72e74f598a8dc1bee13a48f3d9f6"
+dependencies = [
+ "com_macros",
+]
+
+[[package]]
+name = "com_macros"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5"
+dependencies = [
+ "com_macros_support",
+ "proc-macro2",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "com_macros_support"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "combine"
+version = "4.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642"
+checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+dependencies = [
+ "bytes",
+ "memchr",
+]
 
 [[package]]
 name = "concurrent-queue"
@@ -845,6 +1011,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "const-random"
+version = "0.1.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a"
+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 = "core-foundation"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -941,22 +1127,24 @@ dependencies = [
 [[package]]
 name = "cosmic-config"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "atomicwrites",
  "cosmic-config-derive",
- "dirs 5.0.1",
+ "dirs",
  "iced_futures",
+ "known-folders",
  "notify",
  "once_cell",
  "ron",
  "serde",
+ "xdg",
 ]
 
 [[package]]
 name = "cosmic-config-derive"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "quote",
  "syn 1.0.109",
@@ -967,28 +1155,38 @@ name = "cosmic-files"
 version = "0.1.0"
 dependencies = [
  "chrono",
- "dirs 5.0.1",
+ "dirs",
  "env_logger",
+ "fastrand 2.0.1",
  "fork",
  "i18n-embed",
  "i18n-embed-fl",
- "lazy_static",
+ "image 0.24.9",
  "lexical-sort",
  "libcosmic",
  "log",
+ "mime_guess",
+ "notify",
+ "once_cell",
+ "open",
+ "paste",
  "rust-embed",
  "serde",
+ "smol_str",
  "systemicons",
+ "tempfile",
+ "test-log",
  "tokio",
  "trash",
+ "vergen",
 ]
 
 [[package]]
 name = "cosmic-text"
-version = "0.10.0"
-source = "git+https://github.com/pop-os/cosmic-text.git?branch=refactor#dd4c4cbbe2d5ed5046054b5361a6eeead50e0bb0"
+version = "0.11.2"
+source = "git+https://github.com/pop-os/cosmic-text.git#2766961af621b9235616e186046f6d14a2f5fbc0"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "fontdb",
  "libm",
  "log",
@@ -998,6 +1196,7 @@ dependencies = [
  "self_cell 1.0.3",
  "swash",
  "sys-locale",
+ "ttf-parser 0.20.0",
  "unicode-bidi",
  "unicode-linebreak",
  "unicode-script",
@@ -1007,7 +1206,7 @@ dependencies = [
 [[package]]
 name = "cosmic-theme"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "almost",
  "cosmic-config",
@@ -1029,9 +1228,9 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if 1.0.0",
 ]
@@ -1110,9 +1309,9 @@ dependencies = [
 
 [[package]]
 name = "css-color"
-version = "0.2.5"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d101c65424c856131a3cb818da2ddde03500dc3656972269cdf79f018ef77eb4"
+checksum = "42aaeae719fd78ce501d77c6cdf01f7e96f26bcd5617a4903a1c2b97e388543a"
 
 [[package]]
 name = "csscolorparser"
@@ -1126,12 +1325,12 @@ dependencies = [
 
 [[package]]
 name = "ctor"
-version = "0.2.6"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
+checksum = "ad291aa74992b9b7a7e88c38acbbf6ad7e107f1d90ee8775b7bc1fc3394f485c"
 dependencies = [
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1141,12 +1340,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
 
 [[package]]
-name = "d3d12"
-version = "0.7.0"
+name = "cursor-icon"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20"
+checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
+
+[[package]]
+name = "d3d12"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libloading 0.8.1",
  "winapi",
 ]
@@ -1163,12 +1367,12 @@ dependencies = [
 
 [[package]]
 name = "darling"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
 dependencies = [
- "darling_core 0.20.3",
- "darling_macro 0.20.3",
+ "darling_core 0.20.8",
+ "darling_macro 0.20.8",
 ]
 
 [[package]]
@@ -1187,16 +1391,16 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
  "strsim 0.10.0",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1212,13 +1416,13 @@ dependencies = [
 
 [[package]]
 name = "darling_macro"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
 dependencies = [
- "darling_core 0.20.3",
+ "darling_core 0.20.8",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1228,7 +1432,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
  "cfg-if 1.0.0",
- "hashbrown 0.14.3",
+ "hashbrown",
  "lock_api",
  "once_cell",
  "parking_lot_core 0.9.9",
@@ -1251,6 +1455,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
+
+[[package]]
 name = "derivative"
 version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1267,10 +1480,10 @@ version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4e8ef033054e131169b8f0f9a7af8f5533a9436fadf3c500ed547f730f07090d"
 dependencies = [
- "darling 0.20.3",
+ "darling 0.20.8",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1285,20 +1498,11 @@ dependencies = [
 
 [[package]]
 name = "dirs"
-version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
-dependencies = [
- "dirs-sys 0.3.7",
-]
-
-[[package]]
-name = "dirs"
 version = "5.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
 dependencies = [
- "dirs-sys 0.4.1",
+ "dirs-sys",
 ]
 
 [[package]]
@@ -1313,17 +1517,6 @@ dependencies = [
 
 [[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"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
@@ -1359,7 +1552,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1382,9 +1575,12 @@ dependencies = [
 
 [[package]]
 name = "dlv-list"
-version = "0.3.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
+checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
+dependencies = [
+ "const-random",
+]
 
 [[package]]
 name = "downcast-rs"
@@ -1394,25 +1590,25 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
 [[package]]
 name = "drm"
-version = "0.10.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fb1b703ffbc7ebd216eba7900008049a56ace55580ecb2ee7fa801e8d8be87"
+checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bytemuck",
  "drm-ffi",
  "drm-fourcc",
- "nix 0.27.1",
+ "rustix 0.38.31",
 ]
 
 [[package]]
 name = "drm-ffi"
-version = "0.6.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba7d1c19c4b6270e89d59fb27dc6d02a317c658a8a54e54781e1db9b5947595d"
+checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6"
 dependencies = [
  "drm-sys",
- "nix 0.27.1",
+ "rustix 0.38.31",
 ]
 
 [[package]]
@@ -1423,21 +1619,25 @@ checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4"
 
 [[package]]
 name = "drm-sys"
-version = "0.5.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a4f1c0468062a56cd5705f1e3b5409eb286d5596a2028ec8e947595d7e715ae"
+checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176"
+dependencies = [
+ "libc",
+ "linux-raw-sys 0.6.4",
+]
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "enumflags2"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
 dependencies = [
  "enumflags2_derive",
  "serde",
@@ -1445,26 +1645,36 @@ dependencies = [
 
 [[package]]
 name = "enumflags2_derive"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "env_filter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+dependencies = [
+ "log",
+ "regex",
 ]
 
 [[package]]
 name = "env_logger"
-version = "0.10.1"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
+checksum = "6c012a26a7f605efc424dd53697843a72be7dc86ad2d01f7814337794a12231d"
 dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
  "humantime",
- "is-terminal",
  "log",
- "regex",
- "termcolor",
 ]
 
 [[package]]
@@ -1485,13 +1695,9 @@ dependencies = [
 
 [[package]]
 name = "error-code"
-version = "2.3.1"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
-dependencies = [
- "libc",
- "str-buf",
-]
+checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b"
 
 [[package]]
 name = "etagere"
@@ -1541,6 +1747,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "event-listener"
+version = "5.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7ad6fd685ce13acd6d9541a30f6db6567a7a24c9ffd4ba2955d29e3f22c8b27"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "event-listener-strategy"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1551,16 +1768,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "event-listener-strategy"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+dependencies = [
+ "event-listener 5.1.0",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "exr"
-version = "1.6.4"
+version = "1.72.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "279d3efcc55e19917fff7ab3ddd6c14afb6a90881a0078465196fe2f99d08c56"
+checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4"
 dependencies = [
  "bit_field",
- "flume 0.10.14",
+ "flume",
  "half",
  "lebe",
- "miniz_oxide 0.7.1",
+ "miniz_oxide 0.7.2",
  "rayon-core",
  "smallvec",
  "zune-inflate",
@@ -1589,9 +1816,9 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "209098dd6dfc4445aa6111f0e98653ac323eaa4dfd212c9ca3931bf9955c31bd"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
@@ -1624,7 +1851,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
- "miniz_oxide 0.7.1",
+ "miniz_oxide 0.7.2",
 ]
 
 [[package]]
@@ -1685,26 +1912,10 @@ dependencies = [
 
 [[package]]
 name = "flume"
-version = "0.10.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
-dependencies = [
- "futures-core",
- "futures-sink",
- "nanorand",
- "pin-project",
- "spin",
-]
-
-[[package]]
-name = "flume"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
 dependencies = [
- "futures-core",
- "futures-sink",
- "nanorand",
  "spin",
 ]
 
@@ -1715,23 +1926,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
+name = "font-types"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bd7f3ea17572640b606b35df42cfb6ecdf003704b062580e59918692190b73d"
+
+[[package]]
 name = "fontconfig-parser"
-version = "0.5.3"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "674e258f4b5d2dcd63888c01c68413c51f565e8af99d2f7701c7b81d79ef41c4"
+checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d"
 dependencies = [
- "roxmltree 0.18.1",
+ "roxmltree",
 ]
 
 [[package]]
 name = "fontdb"
-version = "0.16.0"
+version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98b88c54a38407f7352dd2c4238830115a6377741098ffd1f997c813d0e088a6"
+checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3"
 dependencies = [
  "fontconfig-parser",
  "log",
- "memmap2 0.9.3",
+ "memmap2 0.9.4",
  "slotmap",
  "tinyvec",
  "ttf-parser 0.20.0",
@@ -1764,7 +1981,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1781,9 +1998,9 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
 
 [[package]]
 name = "fork"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf2ca97a59201425e7ee4d197c9c4fea282fe87a97d666a580bda889b95b8e88"
+checksum = "60e74d3423998a57e9d906e49252fb79eb4a04d5cdfe188fb1b7ff9fc076a8ed"
 dependencies = [
  "libc",
 ]
@@ -1809,11 +2026,11 @@ dependencies = [
 
 [[package]]
 name = "freedesktop-icons"
-version = "0.2.4"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9d46a9ae065c46efb83854bb10315de6d333bb6f4526ebe320c004dab7857e"
+checksum = "a8ef34245e0540c9a3ce7a28340b98d2c12b75da0d446da4e8224923fcaa0c16"
 dependencies = [
- "dirs 4.0.0",
+ "dirs",
  "once_cell",
  "rust-ini",
  "thiserror",
@@ -1914,7 +2131,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1948,33 +2165,53 @@ dependencies = [
 ]
 
 [[package]]
-name = "generic-array"
-version = "0.14.7"
+name = "gdk-pixbuf-sys"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
 dependencies = [
- "typenum",
- "version_check",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
 ]
 
 [[package]]
-name = "gethostname"
-version = "0.2.3"
+name = "gdk-sys"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
+checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2"
 dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
  "libc",
- "winapi",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
 ]
 
 [[package]]
 name = "gethostname"
-version = "0.3.0"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177"
+checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
 dependencies = [
  "libc",
- "winapi",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -1984,10 +2221,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if 1.0.0",
- "js-sys",
  "libc",
  "wasi",
- "wasm-bindgen",
 ]
 
 [[package]]
@@ -2011,12 +2246,35 @@ dependencies = [
 ]
 
 [[package]]
+name = "gif"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
+dependencies = [
+ "color_quant",
+ "weezl",
+]
+
+[[package]]
 name = "gimli"
 version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
+name = "gio-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "winapi",
+]
+
+[[package]]
 name = "gl_generator"
 version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2034,6 +2292,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945"
 
 [[package]]
+name = "glib-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
 name = "glob"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2041,9 +2309,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "glow"
-version = "0.13.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "886c2a30b160c4c6fec8f987430c26b526b7988ca71f664e6a699ddf6f9601e4"
+checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1"
 dependencies = [
  "js-sys",
  "slotmap",
@@ -2062,8 +2330,8 @@ dependencies = [
 
 [[package]]
 name = "glyphon"
-version = "0.3.0"
-source = "git+https://github.com/jackpot51/glyphon.git?branch=refactor#c28dc99c86b6b598633e6623096b21632f266976"
+version = "0.5.0"
+source = "git+https://github.com/pop-os/glyphon.git?tag=v0.5.0#1b0646ff8f74da92d3be704dfc2257d7f4d7eed8"
 dependencies = [
  "cosmic-text",
  "etagere",
@@ -2072,12 +2340,23 @@ dependencies = [
 ]
 
 [[package]]
+name = "gobject-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
 name = "gpu-alloc"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "gpu-alloc-types",
 ]
 
@@ -2087,21 +2366,20 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
 name = "gpu-allocator"
-version = "0.23.0"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40fe17c8a05d60c38c0a4e5a3c802f2f1ceb66b76c67d96ffb34bef0475a7fad"
+checksum = "6f56f6318968d03c18e1bcf4857ff88c61157e9da8e47c5f29055d60e1228884"
 dependencies = [
- "backtrace",
  "log",
  "presser",
  "thiserror",
  "winapi",
- "windows 0.51.1",
+ "windows 0.52.0",
 ]
 
 [[package]]
@@ -2110,9 +2388,9 @@ version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "gpu-descriptor-types",
- "hashbrown 0.14.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -2121,7 +2399,7 @@ version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
@@ -2131,6 +2409,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1df00eed8d1f0db937f6be10e46e8072b0671accb504cf0f959c5c52c679f5b9"
 
 [[package]]
+name = "gtk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722"
+dependencies = [
+ "atk-sys",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
 name = "guillotiere"
 version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2142,9 +2438,9 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "2.3.1"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
 dependencies = [
  "cfg-if 1.0.0",
  "crunchy",
@@ -2152,33 +2448,24 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-dependencies = [
- "ahash 0.7.7",
-]
-
-[[package]]
-name = "hashbrown"
 version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.8.7",
+ "ahash",
  "allocator-api2",
 ]
 
 [[package]]
 name = "hassle-rs"
-version = "0.10.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0"
+checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890"
 dependencies = [
- "bitflags 1.3.2",
- "com-rs",
+ "bitflags 2.4.2",
+ "com",
  "libc",
- "libloading 0.7.4",
+ "libloading 0.8.1",
  "thiserror",
  "widestring",
  "winapi",
@@ -2192,9 +2479,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60"
 
 [[package]]
 name = "hex"
@@ -2224,15 +2511,15 @@ dependencies = [
  "serde",
  "serde_derive",
  "thiserror",
- "toml 0.8.8",
+ "toml 0.8.10",
  "unic-langid",
 ]
 
 [[package]]
 name = "i18n-embed"
-version = "0.13.9"
+version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92a86226a7a16632de6723449ee5fe70bac5af718bc642ee9ca2f0f6e14fa1fa"
+checksum = "94205d95764f5bb9db9ea98fa77f89653365ca748e27161f5bbea2ffd50e459c"
 dependencies = [
  "arc-swap",
  "fluent",
@@ -2252,9 +2539,9 @@ dependencies = [
 
 [[package]]
 name = "i18n-embed-fl"
-version = "0.6.7"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d26a3d3569737dfaac7fc1c4078e6af07471c3060b8e570bcd83cdd5f4685395"
+checksum = "9fc1f8715195dffc4caddcf1cf3128da15fe5d8a137606ea8856c9300047d5a2"
 dependencies = [
  "dashmap",
  "find-crate",
@@ -2267,7 +2554,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "strsim 0.10.0",
- "syn 2.0.48",
+ "syn 2.0.51",
  "unic-langid",
 ]
 
@@ -2281,21 +2568,21 @@ dependencies = [
  "i18n-config",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.59"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys 0.8.6",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows-core 0.52.0",
+ "windows-core",
 ]
 
 [[package]]
@@ -2310,7 +2597,7 @@ dependencies = [
 [[package]]
 name = "iced"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "iced_accessibility",
  "iced_core",
@@ -2318,14 +2605,14 @@ dependencies = [
  "iced_renderer",
  "iced_widget",
  "iced_winit",
- "image 0.24.7",
+ "image 0.24.9",
  "thiserror",
 ]
 
 [[package]]
 name = "iced_accessibility"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "accesskit",
  "accesskit_winit",
@@ -2334,23 +2621,24 @@ dependencies = [
 [[package]]
 name = "iced_core"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "bitflags 1.3.2",
- "instant",
  "log",
  "num-traits",
  "palette",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "serde",
+ "smol_str",
  "thiserror",
+ "web-time",
  "xxhash-rust",
 ]
 
 [[package]]
 name = "iced_futures"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "futures",
  "iced_core",
@@ -2363,7 +2651,7 @@ dependencies = [
 [[package]]
 name = "iced_graphics"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2371,12 +2659,13 @@ dependencies = [
  "glam",
  "half",
  "iced_core",
- "image 0.24.7",
+ "iced_futures",
+ "image 0.24.9",
  "kamadak-exif",
  "log",
  "lyon_path",
  "once_cell",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "rustc-hash",
  "thiserror",
  "unicode-segmentation",
@@ -2386,20 +2675,19 @@ dependencies = [
 [[package]]
 name = "iced_renderer"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "iced_graphics",
  "iced_tiny_skia",
  "iced_wgpu",
  "log",
- "raw-window-handle 0.5.2",
  "thiserror",
 ]
 
 [[package]]
 name = "iced_runtime"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "iced_core",
  "iced_futures",
@@ -2409,7 +2697,7 @@ dependencies = [
 [[package]]
 name = "iced_style"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "iced_core",
  "once_cell",
@@ -2419,25 +2707,24 @@ dependencies = [
 [[package]]
 name = "iced_tiny_skia"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "bytemuck",
  "cosmic-text",
  "iced_graphics",
  "kurbo",
  "log",
- "raw-window-handle 0.5.2",
  "resvg",
  "rustc-hash",
  "softbuffer",
- "tiny-skia 0.11.3",
+ "tiny-skia",
  "xxhash-rust",
 ]
 
 [[package]]
 name = "iced_wgpu"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2449,7 +2736,6 @@ dependencies = [
  "log",
  "lyon",
  "once_cell",
- "raw-window-handle 0.5.2",
  "resvg",
  "wgpu",
 ]
@@ -2457,7 +2743,7 @@ dependencies = [
 [[package]]
 name = "iced_widget"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "iced_renderer",
  "iced_runtime",
@@ -2471,7 +2757,7 @@ dependencies = [
 [[package]]
 name = "iced_winit"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "iced_graphics",
  "iced_runtime",
@@ -2482,7 +2768,28 @@ dependencies = [
  "web-sys",
  "winapi",
  "window_clipboard",
- "winit 0.28.6",
+ "winit 0.29.10",
+]
+
+[[package]]
+name = "icrate"
+version = "0.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319"
+dependencies = [
+ "block2 0.3.0",
+ "dispatch",
+ "objc2 0.4.1",
+]
+
+[[package]]
+name = "icrate"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e286f4b975ac6c054971a0600a9b76438b332edace54bff79c71c9d3adfc9772"
+dependencies = [
+ "block2 0.4.0",
+ "objc2 0.5.0",
 ]
 
 [[package]]
@@ -2522,21 +2829,20 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.7"
+version = "0.24.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
  "exr",
- "gif 0.12.0",
- "jpeg-decoder 0.3.0",
- "num-rational 0.4.1",
+ "gif 0.13.1",
+ "jpeg-decoder 0.3.1",
  "num-traits",
- "png 0.17.10",
+ "png 0.17.13",
  "qoi",
- "tiff 0.9.0",
+ "tiff 0.9.1",
 ]
 
 [[package]]
@@ -2547,12 +2853,12 @@ checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284"
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -2582,9 +2888,6 @@ 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]]
@@ -2618,32 +2921,53 @@ dependencies = [
 ]
 
 [[package]]
-name = "is-terminal"
-version = "0.4.10"
+name = "is-docker"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
+checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
 dependencies = [
- "hermit-abi",
- "rustix 0.38.28",
- "windows-sys 0.52.0",
+ "once_cell",
 ]
 
 [[package]]
-name = "jni-sys"
-version = "0.3.0"
+name = "is-wsl"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
+dependencies = [
+ "is-docker",
+ "once_cell",
+]
 
 [[package]]
-name = "jobserver"
-version = "0.1.27"
+name = "itoa"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+[[package]]
+name = "jni"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
 dependencies = [
- "libc",
+ "cesu8",
+ "cfg-if 1.0.0",
+ "combine",
+ "jni-sys",
+ "log",
+ "thiserror",
+ "walkdir",
+ "windows-sys 0.45.0",
 ]
 
 [[package]]
+name = "jni-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+
+[[package]]
 name = "jpeg-decoder"
 version = "0.1.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2654,18 +2978,18 @@ dependencies = [
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 dependencies = [
  "rayon",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.66"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -2697,6 +3021,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
 
 [[package]]
+name = "known-folders"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4397c789f2709d23cfcb703b316e0766a8d4b17db2d47b0ab096ef6047cae1d8"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "kqueue"
 version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2761,14 +3094,14 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.152"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libcosmic"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#9fb3d874e18ce36fadea931e16488fdbf28d3d02"
+source = "git+https://github.com/pop-os/libcosmic.git#7c3145828e780c6f6e9487f3f30486e5c44b4b2e"
 dependencies = [
  "apply",
  "ashpd",
@@ -2790,6 +3123,7 @@ dependencies = [
  "iced_winit",
  "lazy_static",
  "palette",
+ "rfd",
  "slotmap",
  "taffy",
  "thiserror",
@@ -2842,7 +3176,7 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -2853,7 +3187,7 @@ version = "0.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -2866,9 +3200,15 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.12"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0b5399f6804fbab912acbd8878ed3532d506b7c951b8f9f164ef90fef39e3f4"
 
 [[package]]
 name = "locale_config"
@@ -2901,11 +3241,11 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "lru"
-version = "0.11.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21"
+checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
 dependencies = [
- "hashbrown 0.14.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -2986,33 +3326,15 @@ dependencies = [
 
 [[package]]
 name = "memmap2"
-version = "0.5.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "memmap2"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
 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 = "memoffset"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
@@ -3035,7 +3357,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "block",
  "core-graphics-types",
  "foreign-types 0.5.0",
@@ -3051,6 +3373,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
+name = "mime_guess"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
 name = "miniz_oxide"
 version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3071,9 +3403,9 @@ dependencies = [
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -3133,12 +3465,12 @@ checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b"
 
 [[package]]
 name = "naga"
-version = "0.14.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae585df4b6514cf8842ac0f1ab4992edc975892704835b549cf818dc0191249e"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
+ "arrayvec 0.7.4",
  "bit-set",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "codespan-reporting",
  "hexf-parse",
  "indexmap",
@@ -3152,15 +3484,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "nanorand"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
 name = "ndk"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3174,15 +3497,16 @@ dependencies = [
 
 [[package]]
 name = "ndk"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
+checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "jni-sys",
- "ndk-sys 0.4.1+23.1.7779620",
- "num_enum 0.5.11",
- "raw-window-handle 0.5.2",
+ "log",
+ "ndk-sys 0.5.0+25.2.9519653",
+ "num_enum 0.7.2",
+ "raw-window-handle 0.6.0",
  "thiserror",
 ]
 
@@ -3227,9 +3551,9 @@ checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121"
 
 [[package]]
 name = "ndk-sys"
-version = "0.4.1+23.1.7779620"
+version = "0.5.0+25.2.9519653"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3"
+checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691"
 dependencies = [
  "jni-sys",
 ]
@@ -3260,44 +3584,6 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.22.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf"
-dependencies = [
- "bitflags 1.3.2",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "memoffset 0.6.5",
-]
-
-[[package]]
-name = "nix"
-version = "0.24.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
-dependencies = [
- "bitflags 1.3.2",
- "cfg-if 1.0.0",
- "libc",
- "memoffset 0.6.5",
-]
-
-[[package]]
-name = "nix"
-version = "0.25.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
-dependencies = [
- "autocfg",
- "bitflags 1.3.2",
- "cfg-if 1.0.0",
- "libc",
- "memoffset 0.6.5",
-]
-
-[[package]]
-name = "nix"
 version = "0.26.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
@@ -3309,17 +3595,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "nix"
-version = "0.27.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
-dependencies = [
- "bitflags 2.4.1",
- "cfg-if 1.0.0",
- "libc",
-]
-
-[[package]]
 name = "nom"
 version = "5.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3336,7 +3611,7 @@ version = "6.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "crossbeam-channel",
  "filetime",
  "fsevent-sys",
@@ -3385,28 +3660,33 @@ dependencies = [
 
 [[package]]
 name = "num-complex"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
 dependencies = [
  "num-traits",
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
 name = "num-integer"
-version = "0.1.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
 [[package]]
 name = "num-iter"
-version = "0.1.43"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -3438,9 +3718,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
  "libm",
@@ -3467,11 +3747,11 @@ dependencies = [
 
 [[package]]
 name = "num_enum"
-version = "0.6.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1"
+checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845"
 dependencies = [
- "num_enum_derive 0.6.1",
+ "num_enum_derive 0.7.2",
 ]
 
 [[package]]
@@ -3488,14 +3768,23 @@ dependencies = [
 
 [[package]]
 name = "num_enum_derive"
-version = "0.6.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6"
+checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
 dependencies = [
- "proc-macro-crate 1.3.1",
+ "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "num_threads"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
+dependencies = [
+ "libc",
 ]
 
 [[package]]
@@ -3521,31 +3810,43 @@ dependencies = [
 
 [[package]]
 name = "objc-sys"
-version = "0.2.0-beta.2"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7"
+checksum = "c7c71324e4180d0899963fc83d9d241ac39e699609fc1025a850aadac8257459"
 
 [[package]]
 name = "objc2"
-version = "0.3.0-beta.3.patch-leaks.3"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468"
+checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d"
 dependencies = [
- "block2",
  "objc-sys",
- "objc2-encode",
+ "objc2-encode 3.0.0",
 ]
 
 [[package]]
-name = "objc2-encode"
-version = "2.0.0-pre.2"
+name = "objc2"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512"
+checksum = "9a9c7f0d511a4ce26b078183179dca908171cfc69f88986fe36c5138e1834476"
 dependencies = [
  "objc-sys",
+ "objc2-encode 4.0.0",
 ]
 
 [[package]]
+name = "objc2-encode"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666"
+
+[[package]]
+name = "objc2-encode"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ff06a6505cde0766484f38d8479ac8e6d31c66fbc2d5492f65ca8c091456379"
+
+[[package]]
 name = "objc_exception"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3579,6 +3880,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
+name = "open"
+version = "5.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eedff767bc49d336bff300224f73307ae36963c843e38dc9312a22171b012cbc"
+dependencies = [
+ "is-wsl",
+ "libc",
+ "pathdiff",
+]
+
+[[package]]
 name = "option-ext"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3595,12 +3907,12 @@ dependencies = [
 
 [[package]]
 name = "ordered-multimap"
-version = "0.4.3"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a"
+checksum = "a4d6a8c22fc714f0c2373e6091bf6f5e9b37b1bc0b1184874b7e0a4e303d318f"
 dependencies = [
  "dlv-list",
- "hashbrown 0.12.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -3634,7 +3946,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -3657,9 +3969,9 @@ dependencies = [
 
 [[package]]
 name = "palette"
-version = "0.7.3"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2e2f34147767aa758aa649415b50a69eeb46a67f9dc7db8011eeb3d84b351dc"
+checksum = "ebfc23a4b76642983d57e4ad00bb4504eb30a8ce3c70f4aee1f725610e36d97a"
 dependencies = [
  "approx",
  "fast-srgb8",
@@ -3670,13 +3982,25 @@ dependencies = [
 
 [[package]]
 name = "palette_derive"
-version = "0.7.3"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7db010ec5ff3d4385e4f133916faacd9dad0f6a09394c92d825b3aed310fa0a"
+checksum = "e8890702dbec0bad9116041ae586f84805b13eecd1d8b1df27c29998a9969d6d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
 ]
 
 [[package]]
@@ -3740,6 +4064,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
 name = "percent-encoding"
 version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3775,7 +4105,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -3794,26 +4124,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
 
 [[package]]
-name = "pin-project"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
-]
-
-[[package]]
 name = "pin-project-lite"
 version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3838,9 +4148,9 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "png"
@@ -3856,15 +4166,15 @@ dependencies = [
 
 [[package]]
 name = "png"
-version = "0.17.10"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
  "fdeflate",
  "flate2",
- "miniz_oxide 0.7.1",
+ "miniz_oxide 0.7.2",
 ]
 
 [[package]]
@@ -3885,19 +4195,25 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.3.1"
+version = "3.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e"
+checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
 dependencies = [
  "cfg-if 1.0.0",
  "concurrent-queue",
  "pin-project-lite",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "tracing",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3929,6 +4245,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit 0.21.1",
+]
+
+[[package]]
 name = "proc-macro-error"
 version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3954,24 +4279,24 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.76"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "profiling"
-version = "1.0.13"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d135ede8821cf6376eb7a64148901e1690b788c11ae94dc297ae917dbc91dc0e"
+checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58"
 
 [[package]]
 name = "pure-rust-locales"
-version = "0.7.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed02a829e62dc2715ceb8afb4f80e298148e1345749ceb369540fe0eb3368432"
+checksum = "1190fd18ae6ce9e137184f207593877e70f39b015040156b1e05081cdfe3733a"
 
 [[package]]
 name = "qoi"
@@ -3984,9 +4309,9 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.30.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
 ]
@@ -4038,9 +4363,9 @@ checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab"
 
 [[package]]
 name = "rangemap"
-version = "1.4.0"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "977b1e897f9d764566891689e642653e5ed90c6895106acd005eb4c1d0203991"
+checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684"
 
 [[package]]
 name = "raw-window-handle"
@@ -4068,10 +4393,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
 
 [[package]]
+name = "raw-window-handle"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
+
+[[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -4079,9 +4410,9 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
@@ -4094,6 +4425,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
 
 [[package]]
+name = "read-fonts"
+version = "0.15.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ea23eedb4d938031b6d4343222444608727a6aa68ec355e13588d9947ffe92"
+dependencies = [
+ "font-types",
+]
+
+[[package]]
 name = "redox_syscall"
 version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4133,9 +4473,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -4145,9 +4485,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -4173,17 +4513,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cadccb3d99a9efb8e5e00c16fbb732cbe400db2ec7fc004697ee7d97d86cf1f4"
 dependencies = [
  "gif 0.12.0",
- "jpeg-decoder 0.3.0",
+ "jpeg-decoder 0.3.1",
  "log",
  "pico-args",
- "png 0.17.10",
+ "png 0.17.13",
  "rgb",
  "svgtypes",
- "tiny-skia 0.11.3",
+ "tiny-skia",
  "usvg",
 ]
 
 [[package]]
+name = "rfd"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0d8ab342bcc5436e04d3a4c1e09e17d74958bfaddf8d5fad6f85607df0f994f"
+dependencies = [
+ "ashpd",
+ "block",
+ "dispatch",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "js-sys",
+ "log",
+ "objc",
+ "objc-foundation",
+ "objc_id",
+ "raw-window-handle 0.5.2",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "rgb"
 version = "0.8.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4199,31 +4563,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
 dependencies = [
  "base64",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "serde",
  "serde_derive",
 ]
 
 [[package]]
 name = "roxmltree"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "862340e351ce1b271a378ec53f304a5558f7db87f3769dc655a8f6ecbb68b302"
-dependencies = [
- "xmlparser",
-]
-
-[[package]]
-name = "roxmltree"
 version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
 
 [[package]]
 name = "rust-embed"
-version = "6.8.1"
+version = "8.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a36224c3276f8c4ebc8c20f158eca7ca4359c8db89991c4925132aaaf6702661"
+checksum = "fb78f46d0066053d16d4ca7b898e9343bc3530f71c61d5ad84cd404ada068745"
 dependencies = [
  "rust-embed-impl",
  "rust-embed-utils",
@@ -4232,22 +4587,22 @@ dependencies = [
 
 [[package]]
 name = "rust-embed-impl"
-version = "6.8.1"
+version = "8.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49b94b81e5b2c284684141a2fb9e2a31be90638caf040bf9afbc5a0416afe1ac"
+checksum = "b91ac2a3c6c0520a3fb3dd89321177c3c692937c4eb21893378219da10c44fc8"
 dependencies = [
  "proc-macro2",
  "quote",
  "rust-embed-utils",
- "syn 2.0.48",
+ "syn 2.0.51",
  "walkdir",
 ]
 
 [[package]]
 name = "rust-embed-utils"
-version = "7.8.1"
+version = "8.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d38ff6bf570dc3bb7100fce9f7b60c33fa71d80e88da3f2580df4ff2bdded74"
+checksum = "86f69089032567ffff4eada41c573fc43ff466c7db7c5688b2e7969584345581"
 dependencies = [
  "sha2",
  "walkdir",
@@ -4255,9 +4610,9 @@ dependencies = [
 
 [[package]]
 name = "rust-ini"
-version = "0.18.0"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
+checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a"
 dependencies = [
  "cfg-if 1.0.0",
  "ordered-multimap",
@@ -4291,14 +4646,14 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.28"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
  "libc",
- "linux-raw-sys 0.4.12",
+ "linux-raw-sys 0.4.13",
  "windows-sys 0.52.0",
 ]
 
@@ -4313,12 +4668,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
 name = "rustybuzz"
 version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f0ae5692c5beaad6a9e22830deeed7874eae8a4e3ba4076fb48e12c56856222c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bytemuck",
  "libm",
  "smallvec",
@@ -4331,9 +4692,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "same-file"
@@ -4364,14 +4725,15 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sctk-adwaita"
-version = "0.5.4"
-source = "git+https://github.com/pop-os/sctk-adwaita?branch=wayland-resize#da85380dfb8f0c13aed51c5bddaad0ba3654cb1f"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82b2eaf3a5b264a521b988b2e73042e742df700c4f962cde845d1541adb46550"
 dependencies = [
  "ab_glyph",
  "log",
- "memmap2 0.5.10",
- "smithay-client-toolkit 0.16.1",
- "tiny-skia 0.8.4",
+ "memmap2 0.9.4",
+ "smithay-client-toolkit 0.18.1",
+ "tiny-skia",
 ]
 
 [[package]]
@@ -4391,22 +4753,22 @@ checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
 
 [[package]]
 name = "serde"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -4417,7 +4779,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -4501,9 +4863,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "smithay-client-toolkit"
@@ -4526,30 +4888,47 @@ dependencies = [
 
 [[package]]
 name = "smithay-client-toolkit"
-version = "0.16.1"
-source = "git+https://github.com/pop-os/client-toolkit?branch=wayland-resize#515820fc86cf8cb3ac8d087dc6c87852767627ca"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
 dependencies = [
- "bitflags 1.3.2",
- "calloop 0.10.6",
- "dlib 0.5.2",
- "lazy_static",
+ "bitflags 2.4.2",
+ "calloop 0.12.4",
+ "calloop-wayland-source",
+ "cursor-icon",
+ "libc",
  "log",
- "memmap2 0.5.10",
- "nix 0.24.3",
- "pkg-config",
- "wayland-client 0.29.5",
- "wayland-cursor 0.29.5",
- "wayland-protocols 0.29.5",
+ "memmap2 0.9.4",
+ "rustix 0.38.31",
+ "thiserror",
+ "wayland-backend",
+ "wayland-client 0.31.2",
+ "wayland-csd-frame",
+ "wayland-cursor 0.31.1",
+ "wayland-protocols 0.31.2",
+ "wayland-protocols-wlr",
+ "wayland-scanner 0.31.1",
+ "xkeysym",
 ]
 
 [[package]]
 name = "smithay-clipboard"
-version = "0.6.6"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8"
+checksum = "c091e7354ea8059d6ad99eace06dd13ddeedbb0ac72d40a9a6e7ff790525882d"
 dependencies = [
- "smithay-client-toolkit 0.16.1",
- "wayland-client 0.29.5",
+ "libc",
+ "smithay-client-toolkit 0.18.1",
+ "wayland-backend",
+]
+
+[[package]]
+name = "smol_str"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6845563ada680337a52d43bb0b29f396f2d911616f6573012645b9e3d048a49"
+dependencies = [
+ "serde",
 ]
 
 [[package]]
@@ -4564,22 +4943,22 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "softbuffer"
-version = "0.3.3"
-source = "git+https://github.com/pop-os/softbuffer?tag=v0.3-cosmic#6f0371ccece51d124c6c5d37082189df0dc5f9ba"
+version = "0.4.1"
+source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#6e75b1ad7e98397d37cb187886d05969bc480995"
 dependencies = [
  "as-raw-xcb-connection",
  "bytemuck",
- "cfg_aliases",
+ "cfg_aliases 0.2.0",
  "cocoa 0.25.0",
  "core-graphics 0.23.1",
  "drm",
@@ -4587,19 +4966,19 @@ dependencies = [
  "foreign-types 0.5.0",
  "js-sys",
  "log",
- "memmap2 0.9.3",
+ "memmap2 0.9.4",
  "objc",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "redox_syscall 0.4.1",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "tiny-xlib",
  "wasm-bindgen",
  "wayland-backend",
- "wayland-client 0.31.1",
+ "wayland-client 0.31.2",
  "wayland-sys 0.31.1",
  "web-sys",
- "windows-sys 0.48.0",
- "x11rb 0.12.0",
+ "windows-sys 0.52.0",
+ "x11rb",
 ]
 
 [[package]]
@@ -4613,12 +4992,11 @@ dependencies = [
 
 [[package]]
 name = "spirv"
-version = "0.2.0+1.5.4"
+version = "0.3.0+sdk-1.3.268.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
+checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844"
 dependencies = [
- "bitflags 1.3.2",
- "num-traits",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
@@ -4628,12 +5006,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
-name = "str-buf"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
-
-[[package]]
 name = "strict-num"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4672,10 +5044,11 @@ dependencies = [
 
 [[package]]
 name = "swash"
-version = "0.1.8"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b7c73c813353c347272919aa1af2885068b05e625e5532b43049e4f641ae77f"
+checksum = "d06ff4664af8923625604261c645f5c4cc610cc83c84bec74b50d76237089de7"
 dependencies = [
+ "read-fonts",
  "yazi",
  "zeno",
 ]
@@ -4693,9 +5066,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.51"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4712,6 +5085,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "system-deps"
+version = "6.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+dependencies = [
+ "cfg-expr",
+ "heck",
+ "pkg-config",
+ "toml 0.8.10",
+ "version-compare",
+]
+
+[[package]]
 name = "systemicons"
 version = "0.7.0"
 source = "git+https://github.com/jackpot51/systemicons#501887629ebf3f9b9d3384383da62d352af3fbd7"
@@ -4738,15 +5124,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[package]]
 name = "tempfile"
-version = "3.9.0"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if 1.0.0",
  "fastrand 2.0.1",
- "redox_syscall 0.4.1",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "windows-sys 0.52.0",
 ]
 
@@ -4760,23 +5151,44 @@ dependencies = [
 ]
 
 [[package]]
+name = "test-log"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b319995299c65d522680decf80f2c108d85b861d81dfe340a10d16cee29d9e6"
+dependencies = [
+ "env_logger",
+ "test-log-macros",
+]
+
+[[package]]
+name = "test-log-macros"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8f546451eaa38373f549093fe9fd05e7d2bade739e2ddf834b9968621d60107"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.51",
+]
+
+[[package]]
 name = "thiserror"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -4792,60 +5204,77 @@ dependencies = [
 
 [[package]]
 name = "tiff"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211"
+checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
 dependencies = [
  "flate2",
- "jpeg-decoder 0.3.0",
+ "jpeg-decoder 0.3.1",
  "weezl",
 ]
 
 [[package]]
-name = "tiny-skia"
-version = "0.8.4"
+name = "time"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
- "arrayref",
- "arrayvec 0.7.4",
- "bytemuck",
- "cfg-if 1.0.0",
- "png 0.17.10",
- "tiny-skia-path 0.8.4",
+ "deranged",
+ "itoa",
+ "libc",
+ "num-conv",
+ "num_threads",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
 ]
 
 [[package]]
-name = "tiny-skia"
-version = "0.11.3"
+name = "time-core"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "time-macros"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6a067b809476893fce6a254cf285850ff69c847e6cfbade6a20b655b6c7e80d"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
- "arrayref",
- "arrayvec 0.7.4",
- "bytemuck",
- "cfg-if 1.0.0",
- "log",
- "png 0.17.10",
- "tiny-skia-path 0.11.3",
+ "num-conv",
+ "time-core",
 ]
 
 [[package]]
-name = "tiny-skia-path"
-version = "0.8.4"
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "tiny-skia"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c"
+checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
 dependencies = [
  "arrayref",
+ "arrayvec 0.7.4",
  "bytemuck",
- "strict-num",
+ "cfg-if 1.0.0",
+ "log",
+ "png 0.17.13",
+ "tiny-skia-path",
 ]
 
 [[package]]
 name = "tiny-skia-path"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de35e8a90052baaaf61f171680ac2f8e925a1e43ea9d2e3a00514772250e541"
+checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
 dependencies = [
  "arrayref",
  "bytemuck",
@@ -4890,9 +5319,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.35.1"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
  "backtrace",
  "bytes",
@@ -4901,7 +5330,7 @@ dependencies = [
  "num_cpus",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "tracing",
  "windows-sys 0.48.0",
 ]
@@ -4917,14 +5346,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.21.0",
+ "toml_edit 0.22.6",
 ]
 
 [[package]]
@@ -4944,20 +5373,31 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
  "indexmap",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.40",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.21.0"
+version = "0.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.2",
 ]
 
 [[package]]
@@ -4979,7 +5419,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -4993,9 +5433,9 @@ dependencies = [
 
 [[package]]
 name = "trash"
-version = "3.2.0"
+version = "3.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e7b1a28f9550f43ac27987f2144d7798520c6dee6a7eb1dedfe3131e3c257e3"
+checksum = "c658458d46d9d5a153a3b5cdd88d8579ad50d4fb85d53961e4526c8fc7c55a57"
 dependencies = [
  "chrono",
  "libc",
@@ -5075,9 +5515,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.14"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-bidi-mirroring"
@@ -5105,30 +5545,30 @@ checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-properties"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7f91c8b21fbbaa18853c3d0801c78f4fc94cdb976699bb03e832e75f7fd22f0"
+checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
 
 [[package]]
 name = "unicode-script"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc"
+checksum = "ad8d71f5726e5f285a935e9fe8edfd53f0491eb6e9a5774097fdabee7cd8c9cd"
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-vo"
@@ -5186,7 +5626,7 @@ dependencies = [
  "imagesize",
  "kurbo",
  "log",
- "roxmltree 0.19.0",
+ "roxmltree",
  "simplecss",
  "siphasher",
  "svgtypes",
@@ -5218,14 +5658,32 @@ dependencies = [
  "rctree",
  "strict-num",
  "svgtypes",
- "tiny-skia-path 0.11.3",
+ "tiny-skia-path",
 ]
 
 [[package]]
-name = "vec_map"
-version = "0.8.2"
+name = "utf8parse"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "vergen"
+version = "8.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e27d6bdd219887a9eadd19e1c34f32e47fa332301184935c6d9bca26f3cca525"
+dependencies = [
+ "anyhow",
+ "cfg-if 1.0.0",
+ "rustversion",
+ "time",
+]
+
+[[package]]
+name = "version-compare"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
 
 [[package]]
 name = "version_check"
@@ -5257,9 +5715,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
 dependencies = [
  "cfg-if 1.0.0",
  "wasm-bindgen-macro",
@@ -5267,24 +5725,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.39"
+version = "0.4.41"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
+checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
 dependencies = [
  "cfg-if 1.0.0",
  "js-sys",
@@ -5294,9 +5752,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -5304,22 +5762,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
+checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
 
 [[package]]
 name = "wasm-timer"
@@ -5338,13 +5796,13 @@ dependencies = [
 
 [[package]]
 name = "wayland-backend"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19152ddd73f45f024ed4534d9ca2594e0ef252c1847695255dae47f34df9fbe4"
+checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
 dependencies = [
  "cc",
  "downcast-rs",
- "nix 0.26.4",
+ "rustix 0.38.31",
  "scoped-tls",
  "smallvec",
  "wayland-sys 0.31.1",
@@ -5361,37 +5819,21 @@ dependencies = [
  "libc",
  "nix 0.20.0",
  "scoped-tls",
- "wayland-commons 0.28.6",
+ "wayland-commons",
  "wayland-scanner 0.28.6",
  "wayland-sys 0.28.6",
 ]
 
 [[package]]
 name = "wayland-client"
-version = "0.29.5"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715"
+checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
 dependencies = [
- "bitflags 1.3.2",
- "downcast-rs",
- "libc",
- "nix 0.24.3",
- "scoped-tls",
- "wayland-commons 0.29.5",
- "wayland-scanner 0.29.5",
- "wayland-sys 0.29.5",
-]
-
-[[package]]
-name = "wayland-client"
-version = "0.31.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3"
-dependencies = [
- "bitflags 2.4.1",
- "nix 0.26.4",
+ "bitflags 2.4.2",
+ "rustix 0.38.31",
  "wayland-backend",
- "wayland-scanner 0.31.0",
+ "wayland-scanner 0.31.1",
 ]
 
 [[package]]
@@ -5407,15 +5849,14 @@ dependencies = [
 ]
 
 [[package]]
-name = "wayland-commons"
-version = "0.29.5"
+name = "wayland-csd-frame"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902"
+checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
 dependencies = [
- "nix 0.24.3",
- "once_cell",
- "smallvec",
- "wayland-sys 0.29.5",
+ "bitflags 2.4.2",
+ "cursor-icon",
+ "wayland-backend",
 ]
 
 [[package]]
@@ -5431,12 +5872,12 @@ dependencies = [
 
 [[package]]
 name = "wayland-cursor"
-version = "0.29.5"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661"
+checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
 dependencies = [
- "nix 0.24.3",
- "wayland-client 0.29.5",
+ "rustix 0.38.31",
+ "wayland-client 0.31.2",
  "xcursor",
 ]
 
@@ -5448,38 +5889,53 @@ checksum = "286620ea4d803bacf61fa087a4242ee316693099ee5a140796aaba02b29f861f"
 dependencies = [
  "bitflags 1.3.2",
  "wayland-client 0.28.6",
- "wayland-commons 0.28.6",
+ "wayland-commons",
  "wayland-scanner 0.28.6",
 ]
 
 [[package]]
 name = "wayland-protocols"
-version = "0.29.5"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6"
+checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
- "bitflags 1.3.2",
- "wayland-client 0.29.5",
- "wayland-commons 0.29.5",
- "wayland-scanner 0.29.5",
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client 0.31.2",
+ "wayland-scanner 0.31.1",
 ]
 
 [[package]]
-name = "wayland-scanner"
-version = "0.28.6"
+name = "wayland-protocols-plasma"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce923eb2deb61de332d1f356ec7b6bf37094dc5573952e1c8936db03b54c03f1"
+checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479"
 dependencies = [
- "proc-macro2",
- "quote",
- "xml-rs",
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client 0.31.2",
+ "wayland-protocols 0.31.2",
+ "wayland-scanner 0.31.1",
+]
+
+[[package]]
+name = "wayland-protocols-wlr"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
+dependencies = [
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client 0.31.2",
+ "wayland-protocols 0.31.2",
+ "wayland-scanner 0.31.1",
 ]
 
 [[package]]
 name = "wayland-scanner"
-version = "0.29.5"
+version = "0.28.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
+checksum = "ce923eb2deb61de332d1f356ec7b6bf37094dc5573952e1c8936db03b54c03f1"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5488,9 +5944,9 @@ dependencies = [
 
 [[package]]
 name = "wayland-scanner"
-version = "0.31.0"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c"
+checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
 dependencies = [
  "proc-macro2",
  "quick-xml",
@@ -5510,17 +5966,6 @@ dependencies = [
 
 [[package]]
 name = "wayland-sys"
-version = "0.29.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4"
-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"
@@ -5533,9 +5978,19 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web-time"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -5543,25 +5998,24 @@ dependencies = [
 
 [[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "wgpu"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30e7d227c9f961f2061c26f4cb0fbd4df0ef37e056edd0931783599d6c94ef24"
+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",
- "flume 0.11.0",
+ "cfg_aliases 0.1.1",
  "js-sys",
  "log",
  "naga",
  "parking_lot 0.12.1",
  "profiling",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "smallvec",
  "static_assertions",
  "wasm-bindgen",
@@ -5574,19 +6028,21 @@ dependencies = [
 
 [[package]]
 name = "wgpu-core"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef91c1d62d1e9e81c79e600131a258edf75c9531cbdbde09c44a011a47312726"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "arrayvec 0.7.4",
  "bit-vec",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
+ "cfg_aliases 0.1.1",
  "codespan-reporting",
+ "indexmap",
  "log",
  "naga",
+ "once_cell",
  "parking_lot 0.12.1",
  "profiling",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "rustc-hash",
  "smallvec",
  "thiserror",
@@ -5597,16 +6053,16 @@ dependencies = [
 
 [[package]]
 name = "wgpu-hal"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b84ecc802da3eb67b4cf3dd9ea6fe45bbb47ef13e6c49c5c3240868a9cc6cdd9"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "android_system_properties",
  "arrayvec 0.7.4",
  "ash",
  "bit-set",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "block",
+ "cfg_aliases 0.1.1",
  "core-graphics-types",
  "d3d12",
  "glow",
@@ -5627,7 +6083,7 @@ dependencies = [
  "parking_lot 0.12.1",
  "profiling",
  "range-alloc",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "renderdoc-sys",
  "rustc-hash",
  "smallvec",
@@ -5640,11 +6096,10 @@ dependencies = [
 
 [[package]]
 name = "wgpu-types"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d5ed5f0edf0de351fe311c53304986315ce866f394a2e6df0c4b3c70774bcdd"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "js-sys",
  "web-sys",
 ]
@@ -5681,15 +6136,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "winapi-wsapoll"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "winapi-x86_64-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5697,15 +6143,15 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "window_clipboard"
-version = "0.3.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63287c9c4396ccf5346d035a9b0fcaead9e18377637f5eaa78b7ac65c873ff7d"
+checksum = "f6d692d46038c433f9daee7ad8757e002a4248c20b0a3fbc991d99521d3bcb6d"
 dependencies = [
  "clipboard-win",
  "clipboard_macos",
  "clipboard_wayland",
  "clipboard_x11",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "thiserror",
 ]
 
@@ -5715,28 +6161,28 @@ version = "0.44.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b"
 dependencies = [
- "windows-implement",
- "windows-interface",
  "windows-targets 0.42.2",
 ]
 
 [[package]]
 name = "windows"
-version = "0.51.1"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
 dependencies = [
- "windows-core 0.51.1",
+ "windows-implement",
+ "windows-interface",
  "windows-targets 0.48.5",
 ]
 
 [[package]]
-name = "windows-core"
-version = "0.51.1"
+name = "windows"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
- "windows-targets 0.48.5",
+ "windows-core",
+ "windows-targets 0.52.3",
 ]
 
 [[package]]
@@ -5745,14 +6191,14 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.3",
 ]
 
 [[package]]
 name = "windows-implement"
-version = "0.44.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ce87ca8e3417b02dc2a8a22769306658670ec92d78f1bd420d6310a67c245c6"
+checksum = "5e2ee588991b9e7e6c8338edf3333fbe4da35dc72092643958ebb43f0ab2c49c"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5761,9 +6207,9 @@ dependencies = [
 
 [[package]]
 name = "windows-interface"
-version = "0.44.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "853f69a591ecd4f810d29f17e902d40e349fb05b0b11fff63b08b826bfe39c7f"
+checksum = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5794,7 +6240,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.3",
 ]
 
 [[package]]
@@ -5829,17 +6275,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.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",
 ]
 
 [[package]]
@@ -5856,9 +6302,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -5874,9 +6320,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -5892,9 +6338,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -5910,9 +6356,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -5928,9 +6374,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -5946,9 +6392,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -5964,9 +6410,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6"
 
 [[package]]
 name = "winit"
@@ -6002,43 +6448,65 @@ dependencies = [
 
 [[package]]
 name = "winit"
-version = "0.28.6"
-source = "git+https://github.com/pop-os/winit.git?branch=master#c6ad672264b2e320cd15a531f67e133d9ecd39bf"
+version = "0.29.10"
+source = "git+https://github.com/pop-os/winit.git?branch=winit-0.29#bdc66109acc85c912264c9e4b864520345bdb45f"
 dependencies = [
+ "ahash",
  "android-activity",
- "bitflags 1.3.2",
- "cfg_aliases",
+ "atomic-waker",
+ "bitflags 2.4.2",
+ "bytemuck",
+ "calloop 0.12.4",
+ "cfg_aliases 0.1.1",
  "core-foundation 0.9.4",
- "core-graphics 0.22.3",
- "dispatch",
- "instant",
+ "core-graphics 0.23.1",
+ "cursor-icon",
+ "icrate 0.0.4",
+ "js-sys",
  "libc",
  "log",
- "mio 0.8.10",
- "ndk 0.7.0",
- "objc2",
+ "memmap2 0.9.4",
+ "ndk 0.8.0",
+ "ndk-sys 0.5.0+25.2.9519653",
+ "objc2 0.4.1",
  "once_cell",
  "orbclient",
  "percent-encoding",
- "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.0",
  "redox_syscall 0.3.5",
+ "rustix 0.38.31",
  "sctk-adwaita",
- "smithay-client-toolkit 0.16.1",
+ "smithay-client-toolkit 0.18.1",
+ "smol_str",
+ "unicode-segmentation",
  "wasm-bindgen",
- "wayland-client 0.29.5",
- "wayland-commons 0.29.5",
- "wayland-protocols 0.29.5",
- "wayland-scanner 0.29.5",
+ "wasm-bindgen-futures",
+ "wayland-backend",
+ "wayland-client 0.31.2",
+ "wayland-protocols 0.31.2",
+ "wayland-protocols-plasma",
  "web-sys",
- "windows-sys 0.45.0",
+ "web-time",
+ "windows-sys 0.48.0",
  "x11-dl",
+ "x11rb",
+ "xkbcommon-dl",
 ]
 
 [[package]]
 name = "winnow"
-version = "0.5.34"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a4191c47f15cc3ec71fcb4913cb83d58def65dd3787610213c649283b5ce178"
 dependencies = [
  "memchr",
 ]
@@ -6056,41 +6524,24 @@ dependencies = [
 
 [[package]]
 name = "x11rb"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e99be55648b3ae2a52342f9a870c0e138709a3493261ce9b469afe6e4df6d8a"
-dependencies = [
- "gethostname 0.2.3",
- "nix 0.22.3",
- "winapi",
- "winapi-wsapoll",
-]
-
-[[package]]
-name = "x11rb"
-version = "0.12.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a"
+checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a"
 dependencies = [
  "as-raw-xcb-connection",
- "gethostname 0.3.0",
+ "gethostname",
  "libc",
- "libloading 0.7.4",
- "nix 0.26.4",
+ "libloading 0.8.1",
  "once_cell",
- "winapi",
- "winapi-wsapoll",
+ "rustix 0.38.31",
  "x11rb-protocol",
 ]
 
 [[package]]
 name = "x11rb-protocol"
-version = "0.12.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc"
-dependencies = [
- "nix 0.26.4",
-]
+checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34"
 
 [[package]]
 name = "xcursor"
@@ -6106,11 +6557,11 @@ checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
 
 [[package]]
 name = "xdg-home"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd"
+checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
 dependencies = [
- "nix 0.26.4",
+ "libc",
  "winapi",
 ]
 
@@ -6128,16 +6579,29 @@ dependencies = [
 ]
 
 [[package]]
-name = "xml-rs"
-version = "0.8.19"
+name = "xkbcommon-dl"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
+checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
+dependencies = [
+ "bitflags 2.4.2",
+ "dlib 0.5.2",
+ "log",
+ "once_cell",
+ "xkeysym",
+]
 
 [[package]]
-name = "xmlparser"
-version = "0.13.6"
+name = "xkeysym"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
+checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621"
+
+[[package]]
+name = "xml-rs"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
 
 [[package]]
 name = "xmlwriter"
@@ -6147,9 +6611,9 @@ checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9"
 
 [[package]]
 name = "xxhash-rust"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61"
+checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03"
 
 [[package]]
 name = "yazi"
@@ -6159,9 +6623,9 @@ checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1"
 
 [[package]]
 name = "zbus"
-version = "3.14.1"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948"
+checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6"
 dependencies = [
  "async-broadcast",
  "async-executor",
@@ -6201,9 +6665,9 @@ dependencies = [
 
 [[package]]
 name = "zbus_macros"
-version = "3.14.1"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d"
+checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5"
 dependencies = [
  "proc-macro-crate 1.3.1",
  "proc-macro2",
@@ -6247,7 +6711,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -6261,9 +6725,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c"
+checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db"
 dependencies = [
  "byteorder",
  "enumflags2",
@@ -6276,9 +6740,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant_derive"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
+checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9"
 dependencies = [
  "proc-macro-crate 1.3.1",
  "proc-macro2",
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-files/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-files/package.nix
index 8751fee772e5..26897de2cd88 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-files/package.nix
+++ b/nixpkgs/pkgs/by-name/co/cosmic-files/package.nix
@@ -13,32 +13,36 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cosmic-files";
-  version = "unstable-2024-01-12";
+  version = "unstable-2024-02-28";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = pname;
-    rev = "467414217903d96f71f5566d8359831000dfede1";
-    hash = "sha256-cfIlTHm1lnASjwHnrlLFJd01jT8D1P5XGLXYaJiF8pA=";
+    rev = "6123108f3ae3c7074264184952f0a53e49a981d5";
+    hash = "sha256-BeqpoLIZbR5Dg7OGYGQMFWBLdD96n4t7fX8Ju9/h5JU=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "accesskit-0.11.0" = "sha256-xVhe6adUb8VmwIKKjHxwCwOo5Y1p3Or3ylcJJdLDrrE=";
+      "accesskit-0.12.2" = "sha256-ksaYMGT/oug7isQY8/1WD97XDUsX2ShBdabUzxWffYw=";
       "atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
-      "cosmic-config-0.1.0" = "sha256-+kcul4iOillcWPK+aD3Z2rMfmVb+i2p5ckKRhc1gdDw=";
-      "cosmic-text-0.10.0" = "sha256-PHz5jUecK889E88Y20XUe2adTUO8ElnoV7IIcaohMUw=";
-      "glyphon-0.3.0" = "sha256-JGkNIfj1HjOF8kGxqJPNq/JO+NhZD6XrZ4KmkXEP6Xc=";
-      "sctk-adwaita-0.5.4" = "sha256-yK0F2w/0nxyKrSiHZbx7+aPNY2vlFs7s8nu/COp2KqQ=";
-      "softbuffer-0.3.3" = "sha256-eKYFVr6C1+X6ulidHIu9SP591rJxStxwL9uMiqnXx4k=";
-      "smithay-client-toolkit-0.16.1" = "sha256-z7EZThbh7YmKzAACv181zaEZmWxTrMkFRzP0nfsHK6c=";
+      "cosmic-config-0.1.0" = "sha256-eaG/HCwlKqSfEp6GEPeBS63j5WHq4qdYTNHqnW2zeeE=";
+      "cosmic-text-0.11.2" = "sha256-Y9i5stMYpx+iqn4y5DJm1O1+3UIGp0/fSsnNq3Zloug=";
+      "d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
+      "glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
+      "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.28.6" = "sha256-FhW6d2XnXCGJUMoT9EMQew9/OPXiehy/JraeCiVd76M=";
+      "winit-0.29.10" = "sha256-ScTII2AzK3SC8MVeASZ9jhVWsEaGrSQ2BnApTxgfxK4=";
     };
   };
 
+  # 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_SHA = src.rev;
+
   postPatch = ''
     substituteInPlace justfile --replace '#!/usr/bin/env' "#!$(command -v env)"
   '';
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-greeter/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-greeter/package.nix
index 754c181d9ff0..103eec88c217 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-greeter/package.nix
+++ b/nixpkgs/pkgs/by-name/co/cosmic-greeter/package.nix
@@ -51,6 +51,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://github.com/pop-os/cosmic-greeter";
     description = "Greeter for the COSMIC Desktop Environment";
+    mainProgram = "cosmic-greeter";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ nyanbinary ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-launcher/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-launcher/package.nix
index 8d5b65bd8c4b..6fcdd0373641 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-launcher/package.nix
+++ b/nixpkgs/pkgs/by-name/co/cosmic-launcher/package.nix
@@ -66,6 +66,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://github.com/pop-os/cosmic-launcher";
     description = "Launcher for the COSMIC Desktop Environment";
+    mainProgram = "cosmic-launcher";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ nyanbinary ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-notifications/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-notifications/package.nix
index 3faf12c39e02..2bf02f2245d3 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-notifications/package.nix
+++ b/nixpkgs/pkgs/by-name/co/cosmic-notifications/package.nix
@@ -66,6 +66,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://github.com/pop-os/cosmic-notifications";
     description = "Notifications for the COSMIC Desktop Environment";
+    mainProgram = "cosmic-notifications";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ nyanbinary ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-osd/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-osd/package.nix
index b71333fe0f94..f42f68e8c801 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-osd/package.nix
+++ b/nixpkgs/pkgs/by-name/co/cosmic-osd/package.nix
@@ -38,6 +38,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://github.com/pop-os/cosmic-osd";
     description = "OSD for the COSMIC Desktop Environment";
+    mainProgram = "cosmic-osd";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ nyanbinary ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-panel/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-panel/package.nix
index 7c8c31f511d4..8847307fa41f 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-panel/package.nix
+++ b/nixpkgs/pkgs/by-name/co/cosmic-panel/package.nix
@@ -55,6 +55,7 @@ rustPlatform.buildRustPackage {
   meta = with lib; {
     homepage = "https://github.com/pop-os/cosmic-panel";
     description = "Panel for the COSMIC Desktop Environment";
+    mainProgram = "cosmic-panel";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ qyliss nyanbinary ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-settings-daemon/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-settings-daemon/package.nix
index 6046b55e3bc8..8b0c9819ab4e 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-settings-daemon/package.nix
+++ b/nixpkgs/pkgs/by-name/co/cosmic-settings-daemon/package.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://github.com/pop-os/cosmic-settings-daemon";
     description = "Settings Daemon for the COSMIC Desktop Environment";
+    mainProgram = "cosmic-settings-daemon";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ nyanbinary ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-settings/Cargo.lock b/nixpkgs/pkgs/by-name/co/cosmic-settings/Cargo.lock
index 2f078222ba0b..794466d88628 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-settings/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/co/cosmic-settings/Cargo.lock
@@ -4,28 +4,31 @@ version = 3
 
 [[package]]
 name = "accesskit"
-version = "0.11.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.12.2"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 
 [[package]]
 name = "accesskit_consumer"
-version = "0.15.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.17.0"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
 ]
 
 [[package]]
 name = "accesskit_unix"
-version = "0.4.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.7.1"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
  "accesskit_consumer",
- "async-channel 1.9.0",
+ "async-channel",
+ "async-executor",
+ "async-task",
  "atspi",
  "futures-lite 1.13.0",
- "log",
+ "futures-util",
+ "once_cell",
  "serde",
  "zbus",
 ]
@@ -47,9 +50,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "ahash"
-version = "0.7.7"
+version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
 dependencies = [
  "getrandom",
  "once_cell",
@@ -58,9 +61,9 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.8.6"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
+checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -106,9 +109,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.5"
+version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6"
+checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -120,9 +123,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.4"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
@@ -154,9 +157,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
 
 [[package]]
 name = "apply"
@@ -193,9 +196,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
 
 [[package]]
 name = "as-raw-xcb-connection"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d5f312b0a56c5cdf967c0aeb67f6289603354951683bc97ddc595ab974ba9aa"
+checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b"
 
 [[package]]
 name = "ash"
@@ -208,9 +211,9 @@ dependencies = [
 
 [[package]]
 name = "ashpd"
-version = "0.6.7"
+version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c018490e423efb6f032ef575f873ea57b61d44bec763cfe027b8e8852a027cf"
+checksum = "4ac22eda5891cc086690cb6fa10121c0390de0e3b04eb269f2d766b00d3f2d81"
 dependencies = [
  "enumflags2",
  "futures-channel",
@@ -239,24 +242,13 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
-dependencies = [
- "concurrent-queue",
- "event-listener 2.5.3",
- "futures-core",
-]
-
-[[package]]
-name = "async-channel"
-version = "2.1.1"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
 dependencies = [
  "concurrent-queue",
- "event-listener 4.0.0",
- "event-listener-strategy",
+ "event-listener 5.0.0",
+ "event-listener-strategy 0.5.0",
  "futures-core",
  "pin-project-lite",
 ]
@@ -267,11 +259,11 @@ version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
 dependencies = [
- "async-lock 3.2.0",
+ "async-lock 3.3.0",
  "async-task",
  "concurrent-queue",
  "fastrand 2.0.1",
- "futures-lite 2.1.0",
+ "futures-lite 2.2.0",
  "slab",
 ]
 
@@ -309,18 +301,18 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.2.2"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7"
+checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
 dependencies = [
- "async-lock 3.2.0",
+ "async-lock 3.3.0",
  "cfg-if",
  "concurrent-queue",
  "futures-io",
- "futures-lite 2.1.0",
+ "futures-lite 2.2.0",
  "parking",
- "polling 3.3.1",
- "rustix 0.38.28",
+ "polling 3.4.0",
+ "rustix 0.38.31",
  "slab",
  "tracing",
  "windows-sys 0.52.0",
@@ -337,12 +329,12 @@ dependencies = [
 
 [[package]]
 name = "async-lock"
-version = "3.2.0"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
 dependencies = [
- "event-listener 4.0.0",
- "event-listener-strategy",
+ "event-listener 4.0.3",
+ "event-listener-strategy 0.4.0",
  "pin-project-lite",
 ]
 
@@ -359,7 +351,7 @@ dependencies = [
  "cfg-if",
  "event-listener 3.1.0",
  "futures-lite 1.13.0",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "windows-sys 0.48.0",
 ]
 
@@ -371,7 +363,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -380,13 +372,13 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io 2.2.2",
+ "async-io 2.3.1",
  "async-lock 2.8.0",
  "atomic-waker",
  "cfg-if",
  "futures-core",
  "futures-io",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "signal-hook-registry",
  "slab",
  "windows-sys 0.48.0",
@@ -394,19 +386,31 @@ dependencies = [
 
 [[package]]
 name = "async-task"
-version = "4.5.0"
+version = "4.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1"
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
 
 [[package]]
 name = "async-trait"
-version = "0.1.74"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "atk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
 ]
 
 [[package]]
@@ -420,36 +424,57 @@ name = "atomicwrites"
 version = "0.4.2"
 source = "git+https://github.com/jackpot51/rust-atomicwrites#043ab4859d53ffd3d55334685303d8df39c9f768"
 dependencies = [
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "tempfile",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "atspi"
-version = "0.10.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "674e7a3376837b2e7d12d34d58ac47073c491dc3bf6f71a7adaf687d4d817faa"
+checksum = "6059f350ab6f593ea00727b334265c4dfc7fd442ee32d264794bd9bdc68e87ca"
+dependencies = [
+ "atspi-common",
+ "atspi-connection",
+ "atspi-proxies",
+]
+
+[[package]]
+name = "atspi-common"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92af95f966d2431f962bc632c2e68eda7777330158bf640c4af4249349b2cdf5"
 dependencies = [
- "async-recursion",
- "async-trait",
- "atspi-macros",
  "enumflags2",
- "futures-lite 1.13.0",
  "serde",
- "tracing",
+ "static_assertions",
  "zbus",
  "zbus_names",
+ "zvariant",
 ]
 
 [[package]]
-name = "atspi-macros"
-version = "0.2.0"
+name = "atspi-connection"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fb4870a32c0eaa17e35bca0e6b16020635157121fb7d45593d242c295bc768"
+checksum = "a0c65e7d70f86d4c0e3b2d585d9bf3f979f0b19d635a336725a88d279f76b939"
 dependencies = [
- "quote",
- "syn 1.0.109",
+ "atspi-common",
+ "atspi-proxies",
+ "futures-lite 1.13.0",
+ "zbus",
+]
+
+[[package]]
+name = "atspi-proxies"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6495661273703e7a229356dcbe8c8f38223d697aacfaf0e13590a9ac9977bb52"
+dependencies = [
+ "atspi-common",
+ "serde",
+ "zbus",
 ]
 
 [[package]]
@@ -475,9 +500,9 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.21.5"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "bit-set"
@@ -508,14 +533,26 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 dependencies = [
  "serde",
 ]
 
 [[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
+[[package]]
 name = "block"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -536,17 +573,41 @@ version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
- "async-channel 2.1.1",
- "async-lock 3.2.0",
+ "async-channel",
+ "async-lock 3.3.0",
  "async-task",
  "fastrand 2.0.1",
  "futures-io",
- "futures-lite 2.1.0",
+ "futures-lite 2.2.0",
  "piper",
  "tracing",
 ]
 
 [[package]]
+name = "borsh"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f58b559fd6448c6e2fd0adb5720cd98a2506594cafa4737ff98c396f3e82f667"
+dependencies = [
+ "borsh-derive",
+ "cfg_aliases 0.1.1",
+]
+
+[[package]]
+name = "borsh-derive"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7aadb5b6ccbd078890f6d7003694e33816e6b784358f18e15e7e6d9f065a57cd"
+dependencies = [
+ "once_cell",
+ "proc-macro-crate 3.1.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+ "syn_derive",
+]
+
+[[package]]
 name = "bumpalo"
 version = "3.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -554,18 +615,42 @@ checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
 
 [[package]]
 name = "byte-unit"
-version = "4.0.19"
+version = "5.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da78b32057b8fdfc352504708feeba7216dcd65a2c9ab02978cbd288d1279b6c"
+checksum = "33ac19bdf0b2665407c39d82dbc937e951e7e2001609f0fb32edd0af45a2d63e"
 dependencies = [
+ "rust_decimal",
+ "serde",
  "utf8-width",
 ]
 
 [[package]]
+name = "bytecheck"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
+dependencies = [
+ "bytecheck_derive",
+ "ptr_meta",
+ "simdutf8",
+]
+
+[[package]]
+name = "bytecheck_derive"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
 name = "bytemuck"
-version = "1.14.0"
+version = "1.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
 dependencies = [
  "bytemuck_derive",
 ]
@@ -578,7 +663,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -594,6 +679,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
+name = "cairo-sys-rs"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
 name = "calendrical_calculations"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -605,14 +700,14 @@ dependencies = [
 
 [[package]]
 name = "calloop"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b50b5a44d59a98c55a9eeb518f39bf7499ba19fd98ee7d22618687f3f10adbf"
+checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "log",
- "polling 3.3.1",
- "rustix 0.38.28",
+ "polling 3.4.0",
+ "rustix 0.38.31",
  "slab",
  "thiserror",
 ]
@@ -624,9 +719,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
 dependencies = [
  "calloop",
- "rustix 0.38.28",
- "wayland-backend 0.3.2",
- "wayland-client 0.31.1",
+ "rustix 0.38.31",
+ "wayland-backend 0.3.3",
+ "wayland-client 0.31.2",
 ]
 
 [[package]]
@@ -650,6 +745,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "cfg-expr"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
 name = "cfg-if"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -662,10 +767,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77e53693616d3075149f4ead59bdeecd204ac6b8192d8969757601b74bddf00f"
+
+[[package]]
 name = "clap"
-version = "4.4.11"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2"
+checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -673,33 +784,33 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.11"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb"
+checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99"
 dependencies = [
  "anstream",
  "anstyle",
  "clap_lex",
- "strsim",
+ "strsim 0.11.0",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.4.7"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "cocoa"
@@ -790,10 +901,35 @@ dependencies = [
 ]
 
 [[package]]
-name = "com-rs"
-version = "0.2.1"
+name = "com"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e17887fd17353b65b1b2ef1c526c83e26cd72e74f598a8dc1bee13a48f3d9f6"
+dependencies = [
+ "com_macros",
+]
+
+[[package]]
+name = "com_macros"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5"
+dependencies = [
+ "com_macros_support",
+ "proc-macro2",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "com_macros_support"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642"
+checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
 
 [[package]]
 name = "concat-in-place"
@@ -811,6 +947,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "const-random"
+version = "0.1.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a"
+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 = "const_format"
 version = "0.2.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -882,7 +1038,7 @@ dependencies = [
 [[package]]
 name = "cosmic-bg-config"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/cosmic-bg#6a6fe4e387e46c2e159df56a9768220a6269ccf4"
+source = "git+https://github.com/pop-os/cosmic-bg#a1f0552187a9e9c436b392908b76866dea482345"
 dependencies = [
  "colorgrad",
  "cosmic-config",
@@ -896,18 +1052,19 @@ dependencies = [
 [[package]]
 name = "cosmic-client-toolkit"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/cosmic-protocols?rev=c1b6516#c1b651630c2b71cd8dfd2eb4ab47ede9dbd63840"
+source = "git+https://github.com/pop-os/cosmic-protocols?rev=e65fa5e#e65fa5e2bb47e51656221657049bd3f88ae9dae5"
 dependencies = [
  "cosmic-protocols",
  "smithay-client-toolkit 0.18.0",
- "wayland-client 0.31.1",
+ "wayland-client 0.31.2",
 ]
 
 [[package]]
 name = "cosmic-comp-config"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/cosmic-comp#a8b401b11df3b05336358f1bc7b4ee06f9ef53b5"
+source = "git+https://github.com/pop-os/cosmic-comp#d1aac380fff5447a14fa1fc1023ea1078c0226a4"
 dependencies = [
+ "cosmic-config",
  "input",
  "serde",
 ]
@@ -915,22 +1072,25 @@ dependencies = [
 [[package]]
 name = "cosmic-config"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "atomicwrites",
  "calloop",
  "cosmic-config-derive",
  "dirs 5.0.1",
  "iced_futures",
+ "known-folders",
  "notify",
+ "once_cell",
  "ron",
  "serde",
+ "xdg",
 ]
 
 [[package]]
 name = "cosmic-config-derive"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "quote",
  "syn 1.0.109",
@@ -939,12 +1099,13 @@ dependencies = [
 [[package]]
 name = "cosmic-panel-config"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/cosmic-panel#7c9c9245bce034beefc8efb71fc086ca14337517"
+source = "git+https://github.com/pop-os/cosmic-panel#47d5a704652860be3dff3787ee17bc88e007ff6d"
 dependencies = [
  "anyhow",
  "cosmic-config",
  "ron",
  "serde",
+ "smithay-client-toolkit 0.18.0",
  "tracing",
  "wayland-protocols-wlr",
  "xdg-shell-wrapper-config",
@@ -953,42 +1114,56 @@ dependencies = [
 [[package]]
 name = "cosmic-protocols"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/cosmic-protocols?rev=c1b6516#c1b651630c2b71cd8dfd2eb4ab47ede9dbd63840"
+source = "git+https://github.com/pop-os/cosmic-protocols?rev=e65fa5e#e65fa5e2bb47e51656221657049bd3f88ae9dae5"
 dependencies = [
- "bitflags 2.4.1",
- "wayland-backend 0.3.2",
- "wayland-client 0.31.1",
- "wayland-protocols 0.31.0",
- "wayland-scanner 0.31.0",
+ "bitflags 2.4.2",
+ "wayland-backend 0.3.3",
+ "wayland-client 0.31.2",
+ "wayland-protocols 0.31.2",
+ "wayland-scanner 0.31.1",
  "wayland-server",
 ]
 
 [[package]]
+name = "cosmic-randr-shell"
+version = "0.1.0"
+source = "git+https://github.com/pop-os/cosmic-randr#88c570cf8b88beae1cf4f3e2d412cc64ec49cd7c"
+dependencies = [
+ "kdl",
+ "slotmap",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
 name = "cosmic-settings"
 version = "0.1.0"
 dependencies = [
  "anyhow",
  "apply",
  "ashpd",
- "async-channel 1.9.0",
+ "async-channel",
  "clap",
  "color-eyre",
  "cosmic-comp-config",
  "cosmic-panel-config",
- "cosmic-settings-desktop",
+ "cosmic-randr-shell",
  "cosmic-settings-page",
  "cosmic-settings-system",
  "cosmic-settings-time",
+ "cosmic-settings-wallpaper",
  "derivative",
  "derive_setters",
  "dirs 5.0.1",
  "downcast-rs",
  "freedesktop-desktop-entry",
+ "futures-lite 2.2.0",
  "generator",
  "i18n-embed",
  "i18n-embed-fl",
  "image",
- "itertools 0.11.0",
+ "itertools",
+ "itoa",
  "libcosmic",
  "log",
  "notify",
@@ -1006,24 +1181,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "cosmic-settings-desktop"
-version = "0.1.0"
-dependencies = [
- "cosmic-bg-config",
- "cosmic-config",
- "dirs 5.0.1",
- "freedesktop-icons",
- "futures-lite 1.13.0",
- "image",
- "infer",
- "rayon",
- "smithay-client-toolkit 0.18.0",
- "tokio",
- "tracing",
- "wayland-client 0.31.1",
-]
-
-[[package]]
 name = "cosmic-settings-page"
 version = "0.1.0"
 dependencies = [
@@ -1060,20 +1217,38 @@ dependencies = [
 ]
 
 [[package]]
+name = "cosmic-settings-wallpaper"
+version = "0.1.0"
+dependencies = [
+ "cosmic-bg-config",
+ "cosmic-config",
+ "cosmic-randr-shell",
+ "dirs 5.0.1",
+ "freedesktop-icons",
+ "futures-lite 2.2.0",
+ "image",
+ "infer",
+ "rayon",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
 name = "cosmic-text"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75acbfb314aeb4f5210d379af45ed1ec2c98c7f1790bf57b8a4c562ac0c51b71"
+version = "0.11.2"
+source = "git+https://github.com/pop-os/cosmic-text.git#85821731285bf88d712dce8e7410453d908bc038"
 dependencies = [
+ "bitflags 2.4.2",
  "fontdb",
  "libm",
  "log",
  "rangemap",
  "rustc-hash",
- "rustybuzz 0.11.0",
- "self_cell 1.0.2",
+ "rustybuzz",
+ "self_cell 1.0.3",
  "swash",
  "sys-locale",
+ "ttf-parser",
  "unicode-bidi",
  "unicode-linebreak",
  "unicode-script",
@@ -1083,7 +1258,7 @@ dependencies = [
 [[package]]
 name = "cosmic-theme"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "almost",
  "cosmic-config",
@@ -1096,63 +1271,55 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.9"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5"
+checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.4"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.16"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset 0.9.0",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.17"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crunchy"
@@ -1193,7 +1360,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
 dependencies = [
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1204,20 +1371,19 @@ checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
 
 [[package]]
 name = "d3d12"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libloading 0.8.1",
  "winapi",
 ]
 
 [[package]]
 name = "darling"
-version = "0.20.3"
+version = "0.20.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+checksum = "fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8"
 dependencies = [
  "darling_core",
  "darling_macro",
@@ -1225,27 +1391,27 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.20.3"
+version = "0.20.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
+checksum = "04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim",
- "syn 2.0.41",
+ "strsim 0.10.0",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.20.3"
+version = "0.20.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
+checksum = "1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1287,7 +1453,7 @@ dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1311,15 +1477,6 @@ dependencies = [
 
 [[package]]
 name = "dirs"
-version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
-dependencies = [
- "dirs-sys 0.3.7",
-]
-
-[[package]]
-name = "dirs"
 version = "5.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
@@ -1351,6 +1508,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "dispatch"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
+
+[[package]]
 name = "displaydoc"
 version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1358,7 +1521,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1372,9 +1535,12 @@ dependencies = [
 
 [[package]]
 name = "dlv-list"
-version = "0.3.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
+checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
+dependencies = [
+ "const-random",
+]
 
 [[package]]
 name = "downcast-rs"
@@ -1384,25 +1550,25 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
 [[package]]
 name = "drm"
-version = "0.10.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fb1b703ffbc7ebd216eba7900008049a56ace55580ecb2ee7fa801e8d8be87"
+checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bytemuck",
  "drm-ffi",
  "drm-fourcc",
- "nix 0.27.1",
+ "rustix 0.38.31",
 ]
 
 [[package]]
 name = "drm-ffi"
-version = "0.6.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba7d1c19c4b6270e89d59fb27dc6d02a317c658a8a54e54781e1db9b5947595d"
+checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6"
 dependencies = [
  "drm-sys",
- "nix 0.27.1",
+ "rustix 0.38.31",
 ]
 
 [[package]]
@@ -1413,15 +1579,19 @@ checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4"
 
 [[package]]
 name = "drm-sys"
-version = "0.5.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a4f1c0468062a56cd5705f1e3b5409eb286d5596a2028ec8e947595d7e715ae"
+checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176"
+dependencies = [
+ "libc",
+ "linux-raw-sys 0.6.4",
+]
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "enum-repr"
@@ -1436,9 +1606,9 @@ dependencies = [
 
 [[package]]
 name = "enumflags2"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
 dependencies = [
  "enumflags2_derive",
  "serde",
@@ -1446,13 +1616,13 @@ dependencies = [
 
 [[package]]
 name = "enumflags2_derive"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1509,9 +1679,20 @@ dependencies = [
 
 [[package]]
 name = "event-listener"
-version = "4.0.0"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "5.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae"
+checksum = "b72557800024fabbaa2449dd4bf24e37b93702d457a4d4f2b0dd1f0f039f20c1"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -1524,18 +1705,28 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
 dependencies = [
- "event-listener 4.0.0",
+ "event-listener 4.0.3",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+dependencies = [
+ "event-listener 5.0.0",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "exr"
-version = "1.6.4"
+version = "1.72.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "279d3efcc55e19917fff7ab3ddd6c14afb6a90881a0078465196fe2f99d08c56"
+checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4"
 dependencies = [
  "bit_field",
- "flume 0.10.14",
+ "flume",
  "half",
  "lebe",
  "miniz_oxide",
@@ -1546,9 +1737,9 @@ dependencies = [
 
 [[package]]
 name = "eyre"
-version = "0.6.11"
+version = "0.6.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6267a1fa6f59179ea4afc8e50fd8612a3cc60bc858f786ff877a4a8cb042799"
+checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec"
 dependencies = [
  "indenter",
  "once_cell",
@@ -1577,9 +1768,9 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.1"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
@@ -1676,26 +1867,10 @@ dependencies = [
 
 [[package]]
 name = "flume"
-version = "0.10.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
-dependencies = [
- "futures-core",
- "futures-sink",
- "nanorand",
- "pin-project",
- "spin",
-]
-
-[[package]]
-name = "flume"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
 dependencies = [
- "futures-core",
- "futures-sink",
- "nanorand",
  "spin",
 ]
 
@@ -1706,26 +1881,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
+name = "font-types"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bd7f3ea17572640b606b35df42cfb6ecdf003704b062580e59918692190b73d"
+
+[[package]]
 name = "fontconfig-parser"
-version = "0.5.3"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "674e258f4b5d2dcd63888c01c68413c51f565e8af99d2f7701c7b81d79ef41c4"
+checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d"
 dependencies = [
  "roxmltree",
 ]
 
 [[package]]
 name = "fontdb"
-version = "0.15.0"
+version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "020e203f177c0fb250fb19455a252e838d2bbbce1f80f25ecc42402aafa8cd38"
+checksum = "3890d0893c8253d3eb98337af18b3e1a10a9b2958f2a164b53a93fb3a3049e72"
 dependencies = [
  "fontconfig-parser",
  "log",
- "memmap2 0.8.0",
+ "memmap2 0.9.4",
  "slotmap",
  "tinyvec",
- "ttf-parser 0.19.2",
+ "ttf-parser",
 ]
 
 [[package]]
@@ -1746,7 +1927,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1789,11 +1970,11 @@ dependencies = [
 
 [[package]]
 name = "freedesktop-icons"
-version = "0.2.4"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9d46a9ae065c46efb83854bb10315de6d333bb6f4526ebe320c004dab7857e"
+checksum = "a8ef34245e0540c9a3ce7a28340b98d2c12b75da0d446da4e8224923fcaa0c16"
 dependencies = [
- "dirs 4.0.0",
+ "dirs 5.0.1",
  "once_cell",
  "rust-ini",
  "thiserror",
@@ -1810,10 +1991,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
+[[package]]
 name = "futures"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1826,9 +2013,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -1836,15 +2023,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -1854,9 +2041,9 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
@@ -1875,9 +2062,9 @@ dependencies = [
 
 [[package]]
 name = "futures-lite"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143"
+checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
 dependencies = [
  "fastrand 2.0.1",
  "futures-core",
@@ -1888,32 +2075,32 @@ dependencies = [
 
 [[package]]
 name = "futures-macro"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1928,6 +2115,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "gdk-pixbuf-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gdk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
 name = "generator"
 version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1952,25 +2169,23 @@ dependencies = [
 
 [[package]]
 name = "gethostname"
-version = "0.3.0"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177"
+checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
 dependencies = [
  "libc",
- "winapi",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
- "js-sys",
  "libc",
  "wasi",
- "wasm-bindgen",
 ]
 
 [[package]]
@@ -2010,6 +2225,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
+name = "gio-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "winapi",
+]
+
+[[package]]
 name = "gl_generator"
 version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2027,10 +2255,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945"
 
 [[package]]
+name = "glib-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
 name = "glow"
-version = "0.13.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "886c2a30b160c4c6fec8f987430c26b526b7988ca71f664e6a699ddf6f9601e4"
+checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1"
 dependencies = [
  "js-sys",
  "slotmap",
@@ -2049,8 +2287,8 @@ dependencies = [
 
 [[package]]
 name = "glyphon"
-version = "0.3.0"
-source = "git+https://github.com/grovesNL/glyphon.git?rev=2caa9fc5e5923c1d827d177c3619cab7e9885b85#2caa9fc5e5923c1d827d177c3619cab7e9885b85"
+version = "0.5.0"
+source = "git+https://github.com/pop-os/glyphon.git?tag=v0.5.0#1b0646ff8f74da92d3be704dfc2257d7f4d7eed8"
 dependencies = [
  "cosmic-text",
  "etagere",
@@ -2059,12 +2297,23 @@ dependencies = [
 ]
 
 [[package]]
+name = "gobject-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
 name = "gpu-alloc"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "gpu-alloc-types",
 ]
 
@@ -2074,21 +2323,20 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
 name = "gpu-allocator"
-version = "0.23.0"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40fe17c8a05d60c38c0a4e5a3c802f2f1ceb66b76c67d96ffb34bef0475a7fad"
+checksum = "6f56f6318968d03c18e1bcf4857ff88c61157e9da8e47c5f29055d60e1228884"
 dependencies = [
- "backtrace",
  "log",
  "presser",
  "thiserror",
  "winapi",
- "windows 0.51.1",
+ "windows 0.52.0",
 ]
 
 [[package]]
@@ -2097,7 +2345,7 @@ version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "gpu-descriptor-types",
  "hashbrown 0.14.3",
 ]
@@ -2108,7 +2356,7 @@ version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
@@ -2118,6 +2366,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1df00eed8d1f0db937f6be10e46e8072b0671accb504cf0f959c5c52c679f5b9"
 
 [[package]]
+name = "gtk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722"
+dependencies = [
+ "atk-sys",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
 name = "guillotiere"
 version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2143,7 +2409,7 @@ version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 dependencies = [
- "ahash 0.7.7",
+ "ahash 0.7.8",
 ]
 
 [[package]]
@@ -2152,20 +2418,20 @@ version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.8.6",
+ "ahash 0.8.8",
  "allocator-api2",
 ]
 
 [[package]]
 name = "hassle-rs"
-version = "0.10.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0"
+checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890"
 dependencies = [
- "bitflags 1.3.2",
- "com-rs",
+ "bitflags 2.4.2",
+ "com",
  "libc",
- "libloading 0.7.4",
+ "libloading 0.8.1",
  "thiserror",
  "widestring",
  "winapi",
@@ -2179,9 +2445,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
 
 [[package]]
 name = "hex"
@@ -2205,15 +2471,15 @@ dependencies = [
  "serde",
  "serde_derive",
  "thiserror",
- "toml 0.8.8",
+ "toml 0.8.10",
  "unic-langid",
 ]
 
 [[package]]
 name = "i18n-embed"
-version = "0.13.9"
+version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92a86226a7a16632de6723449ee5fe70bac5af718bc642ee9ca2f0f6e14fa1fa"
+checksum = "94205d95764f5bb9db9ea98fa77f89653365ca748e27161f5bbea2ffd50e459c"
 dependencies = [
  "arc-swap",
  "fluent",
@@ -2233,9 +2499,9 @@ dependencies = [
 
 [[package]]
 name = "i18n-embed-fl"
-version = "0.6.7"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d26a3d3569737dfaac7fc1c4078e6af07471c3060b8e570bcd83cdd5f4685395"
+checksum = "9fc1f8715195dffc4caddcf1cf3128da15fe5d8a137606ea8856c9300047d5a2"
 dependencies = [
  "dashmap",
  "find-crate",
@@ -2247,8 +2513,8 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "strsim",
- "syn 2.0.41",
+ "strsim 0.10.0",
+ "syn 2.0.48",
  "unic-langid",
 ]
 
@@ -2262,13 +2528,13 @@ dependencies = [
  "i18n-config",
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "iced"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "iced_accessibility",
  "iced_core",
@@ -2283,7 +2549,7 @@ dependencies = [
 [[package]]
 name = "iced_accessibility"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "accesskit",
  "accesskit_unix",
@@ -2292,25 +2558,26 @@ dependencies = [
 [[package]]
 name = "iced_core"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "bitflags 1.3.2",
  "iced_accessibility",
- "instant",
  "log",
  "num-traits",
  "palette",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "serde",
  "smithay-client-toolkit 0.18.0",
+ "smol_str",
  "thiserror",
+ "web-time",
  "xxhash-rust",
 ]
 
 [[package]]
 name = "iced_futures"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "futures",
  "iced_core",
@@ -2323,7 +2590,7 @@ dependencies = [
 [[package]]
 name = "iced_graphics"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2331,12 +2598,13 @@ dependencies = [
  "glam",
  "half",
  "iced_core",
+ "iced_futures",
  "image",
  "kamadak-exif",
  "log",
  "lyon_path",
  "once_cell",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "rustc-hash",
  "thiserror",
  "unicode-segmentation",
@@ -2346,20 +2614,19 @@ dependencies = [
 [[package]]
 name = "iced_renderer"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "iced_graphics",
  "iced_tiny_skia",
  "iced_wgpu",
  "log",
- "raw-window-handle",
  "thiserror",
 ]
 
 [[package]]
 name = "iced_runtime"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "iced_accessibility",
  "iced_core",
@@ -2371,7 +2638,7 @@ dependencies = [
 [[package]]
 name = "iced_sctk"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "enum-repr",
  "float-cmp",
@@ -2380,22 +2647,24 @@ dependencies = [
  "iced_graphics",
  "iced_runtime",
  "iced_style",
- "itertools 0.10.5",
+ "itertools",
  "lazy_static",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "smithay-client-toolkit 0.18.0",
  "smithay-clipboard",
  "thiserror",
  "tracing",
- "wayland-backend 0.3.2",
- "wayland-protocols 0.31.0",
+ "wayland-backend 0.3.3",
+ "wayland-protocols 0.31.2",
+ "xkbcommon",
+ "xkbcommon-dl",
  "xkeysym",
 ]
 
 [[package]]
 name = "iced_style"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "iced_core",
  "once_cell",
@@ -2405,14 +2674,13 @@ dependencies = [
 [[package]]
 name = "iced_tiny_skia"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "bytemuck",
  "cosmic-text",
  "iced_graphics",
  "kurbo",
  "log",
- "raw-window-handle",
  "resvg",
  "rustc-hash",
  "softbuffer",
@@ -2423,7 +2691,7 @@ dependencies = [
 [[package]]
 name = "iced_wgpu"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2435,7 +2703,6 @@ dependencies = [
  "log",
  "lyon",
  "once_cell",
- "raw-window-handle",
  "resvg",
  "wgpu",
 ]
@@ -2443,7 +2710,7 @@ dependencies = [
 [[package]]
 name = "iced_widget"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "iced_renderer",
  "iced_runtime",
@@ -2536,7 +2803,7 @@ checksum = "d2abdd3a62551e8337af119c5899e600ca0c88ec8f23a46c60ba216c803dcf1a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -2579,9 +2846,9 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.7"
+version = "0.24.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
+checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
 dependencies = [
  "bytemuck",
  "byteorder",
@@ -2589,7 +2856,6 @@ dependencies = [
  "exr",
  "gif",
  "jpeg-decoder",
- "num-rational",
  "num-traits",
  "png",
  "qoi",
@@ -2610,9 +2876,9 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -2649,11 +2915,11 @@ dependencies = [
 
 [[package]]
 name = "input"
-version = "0.8.3"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6e74cd82cedcd66db78742a8337bdc48f188c4d2c12742cbc5cd85113f0b059"
+checksum = "7911ce3db9c10c5ab4a35c49af778a5f9a827bd0f7371d9be56175d8dd2740d0"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "input-sys",
  "io-lifetimes 1.0.11",
  "libc",
@@ -2663,12 +2929,9 @@ dependencies = [
 
 [[package]]
 name = "input-sys"
-version = "1.17.0"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05f6c2a17e8aba7217660e32863af87b0febad811d4b8620ef76b386603fddc2"
-dependencies = [
- "libc",
-]
+checksum = "bd4f5b4d1c00331c5245163aacfe5f20be75b564c7112d45893d4ae038119eb0"
 
 [[package]]
 name = "instant"
@@ -2717,36 +2980,33 @@ checksum = "5a611371471e98973dbcab4e0ec66c31a10bc356eeb4d54a0e05eac8158fe38c"
 
 [[package]]
 name = "itertools"
-version = "0.10.5"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
 dependencies = [
  "either",
 ]
 
 [[package]]
-name = "itertools"
-version = "0.11.0"
+name = "itoa"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
-dependencies = [
- "either",
-]
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 dependencies = [
  "rayon",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.66"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -2761,6 +3021,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "kdl"
+version = "4.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "062c875482ccb676fd40c804a40e3824d4464c18c364547456d1c8e8e951ae47"
+dependencies = [
+ "miette",
+ "nom",
+ "thiserror",
+]
+
+[[package]]
 name = "khronos-egl"
 version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2778,6 +3049,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
 
 [[package]]
+name = "known-folders"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4397c789f2709d23cfcb703b316e0766a8d4b17db2d47b0ab096ef6047cae1d8"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "kqueue"
 version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2820,14 +3100,14 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
 
 [[package]]
 name = "libc"
-version = "0.2.151"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libcosmic"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic#d53f693a3715fdd79481d75652cbf74286f4f387"
+source = "git+https://github.com/pop-os/libcosmic#676a0906244d9ff41d32821d997df4aefa967bed"
 dependencies = [
  "apply",
  "ashpd",
@@ -2846,9 +3126,11 @@ dependencies = [
  "iced_sctk",
  "iced_style",
  "iced_tiny_skia",
+ "iced_wgpu",
  "iced_widget",
  "lazy_static",
  "palette",
+ "rfd",
  "ron",
  "serde",
  "slotmap",
@@ -2893,7 +3175,7 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -2916,9 +3198,15 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.12"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0b5399f6804fbab912acbd8878ed3532d506b7c951b8f9f164ef90fef39e3f4"
 
 [[package]]
 name = "litemap"
@@ -2957,9 +3245,9 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "lru"
-version = "0.11.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21"
+checksum = "db2c024b41519440580066ba82aab04092b333e09066a5eb86c7c4890df31f22"
 dependencies = [
  "hashbrown 0.14.3",
 ]
@@ -2986,9 +3274,9 @@ dependencies = [
 
 [[package]]
 name = "lyon_geom"
-version = "1.0.4"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74df1ff0a0147282eb10699537a03baa7d31972b58984a1d44ce0624043fe8ad"
+checksum = "edecfb8d234a2b0be031ab02ebcdd9f3b9ee418fb35e265f7a540a48d197bff9"
 dependencies = [
  "arrayvec",
  "euclid",
@@ -3007,13 +3295,13 @@ dependencies = [
 
 [[package]]
 name = "lyon_tessellation"
-version = "1.0.12"
+version = "1.0.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f5bcf02928361d18e6edb8ad3bc5b93cba8aa57e2508deb072c2d2ade8bbd0d"
+checksum = "8c7c67b5bc8123b352b2e7e742b47d1f236a13fe77619433be9568fbd888e9c0"
 dependencies = [
  "float_next_after",
  "lyon_path",
- "thiserror",
+ "num-traits",
 ]
 
 [[package]]
@@ -3027,9 +3315,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
@@ -3051,9 +3339,9 @@ dependencies = [
 
 [[package]]
 name = "memmap2"
-version = "0.9.0"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
 dependencies = [
  "libc",
 ]
@@ -3091,7 +3379,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "block",
  "core-graphics-types",
  "foreign-types",
@@ -3101,10 +3389,39 @@ dependencies = [
 ]
 
 [[package]]
+name = "miette"
+version = "5.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59bb584eaeeab6bd0226ccf3509a69d7936d148cf3d036ad350abe35e8c6856e"
+dependencies = [
+ "miette-derive",
+ "once_cell",
+ "thiserror",
+ "unicode-width",
+]
+
+[[package]]
+name = "miette-derive"
+version = "5.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -3130,12 +3447,12 @@ checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b"
 
 [[package]]
 name = "naga"
-version = "0.14.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae585df4b6514cf8842ac0f1ab4992edc975892704835b549cf818dc0191249e"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
+ "arrayvec",
  "bit-set",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "codespan-reporting",
  "hexf-parse",
  "indexmap",
@@ -3149,15 +3466,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "nanorand"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
 name = "nix"
 version = "0.24.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3182,14 +3490,13 @@ dependencies = [
 ]
 
 [[package]]
-name = "nix"
-version = "0.27.1"
+name = "nom"
+version = "7.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
 dependencies = [
- "bitflags 2.4.1",
- "cfg-if",
- "libc",
+ "memchr",
+ "minimal-lexical",
 ]
 
 [[package]]
@@ -3198,7 +3505,7 @@ version = "6.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "crossbeam-channel",
  "filetime",
  "fsevent-sys",
@@ -3257,28 +3564,27 @@ dependencies = [
 
 [[package]]
 name = "num-complex"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
 dependencies = [
  "num-traits",
 ]
 
 [[package]]
 name = "num-integer"
-version = "0.1.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
 [[package]]
 name = "num-iter"
-version = "0.1.43"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -3299,9 +3605,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
  "libm",
@@ -3358,9 +3664,9 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.32.1"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
@@ -3379,12 +3685,12 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
 
 [[package]]
 name = "ordered-multimap"
-version = "0.4.3"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a"
+checksum = "a4d6a8c22fc714f0c2373e6091bf6f5e9b37b1bc0b1184874b7e0a4e303d318f"
 dependencies = [
  "dlv-list",
- "hashbrown 0.12.3",
+ "hashbrown 0.14.3",
 ]
 
 [[package]]
@@ -3418,7 +3724,7 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3435,9 +3741,9 @@ checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
 
 [[package]]
 name = "palette"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2e2f34147767aa758aa649415b50a69eeb46a67f9dc7db8011eeb3d84b351dc"
+checksum = "3d38e6e5ca1612e2081cc31188f08c3cba630ce4ba44709a153f1a0f38d678f2"
 dependencies = [
  "approx",
  "fast-srgb8",
@@ -3448,13 +3754,25 @@ dependencies = [
 
 [[package]]
 name = "palette_derive"
-version = "0.7.3"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7db010ec5ff3d4385e4f133916faacd9dad0f6a09394c92d825b3aed310fa0a"
+checksum = "e05d1c929301fee6830dafa764341118829b2535c216b0571e3821ecac5c885b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
 ]
 
 [[package]]
@@ -3553,7 +3871,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3572,26 +3890,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
 
 [[package]]
-name = "pin-project"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.41",
-]
-
-[[package]]
 name = "pin-project-lite"
 version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3616,15 +3914,15 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "png"
-version = "0.17.10"
+version = "0.17.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
+checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -3651,14 +3949,14 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.3.1"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e"
+checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
  "pin-project-lite",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "tracing",
  "windows-sys 0.52.0",
 ]
@@ -3686,6 +3984,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit 0.21.1",
+]
+
+[[package]]
 name = "proc-macro-error"
 version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3711,18 +4018,38 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.70"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "profiling"
-version = "1.0.12"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f0f7f43585c34e4fdd7497d746bc32e14458cf11c69341cc0587b1d825dde42"
+
+[[package]]
+name = "ptr_meta"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
+dependencies = [
+ "ptr_meta_derive",
+]
+
+[[package]]
+name = "ptr_meta_derive"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1de09527cd2ea2c2d59fb6c2f8c1ab8c71709ed9d1b6d60b0e1c9fbb6fdcb33c"
+checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
 
 [[package]]
 name = "qoi"
@@ -3744,23 +4071,29 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.30.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[package]]
 name = "rand"
 version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3798,9 +4131,9 @@ checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab"
 
 [[package]]
 name = "rangemap"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "977b1e897f9d764566891689e642653e5ed90c6895106acd005eb4c1d0203991"
+checksum = "795915a3930a5d6bafd9053d37602fea3e61be2e5d4d788983a8ba9654c1c6f2"
 
 [[package]]
 name = "raw-window-handle"
@@ -3809,10 +4142,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
 
 [[package]]
+name = "raw-window-handle"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
+
+[[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -3820,9 +4159,9 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
@@ -3835,6 +4174,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
 
 [[package]]
+name = "read-fonts"
+version = "0.15.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c044ab88c43e2eae05b34a17fc13598736679fdb03d71b49fcfe114443ec8a86"
+dependencies = [
+ "font-types",
+]
+
+[[package]]
 name = "redox_syscall"
 version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3865,9 +4213,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -3877,9 +4225,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -3893,6 +4241,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
+name = "rend"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
+dependencies = [
+ "bytecheck",
+]
+
+[[package]]
 name = "renderdoc-sys"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3900,9 +4257,9 @@ checksum = "216080ab382b992234dda86873c18d4c48358f5cfcb70fd693d7f6f2131b628b"
 
 [[package]]
 name = "resvg"
-version = "0.36.0"
+version = "0.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc7980f653f9a7db31acff916a262c3b78c562919263edea29bf41a056e20497"
+checksum = "cadccb3d99a9efb8e5e00c16fbb732cbe400db2ec7fc004697ee7d97d86cf1f4"
 dependencies = [
  "gif",
  "jpeg-decoder",
@@ -3916,6 +4273,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "rfd"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0d8ab342bcc5436e04d3a4c1e09e17d74958bfaddf8d5fad6f85607df0f994f"
+dependencies = [
+ "ashpd",
+ "block",
+ "dispatch",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "js-sys",
+ "log",
+ "objc",
+ "objc-foundation",
+ "objc_id",
+ "raw-window-handle 0.5.2",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "rgb"
 version = "0.8.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3925,31 +4306,57 @@ dependencies = [
 ]
 
 [[package]]
+name = "rkyv"
+version = "0.7.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0"
+dependencies = [
+ "bitvec",
+ "bytecheck",
+ "bytes",
+ "hashbrown 0.12.3",
+ "ptr_meta",
+ "rend",
+ "rkyv_derive",
+ "seahash",
+ "tinyvec",
+ "uuid",
+]
+
+[[package]]
+name = "rkyv_derive"
+version = "0.7.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
 name = "ron"
 version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
 dependencies = [
  "base64",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "serde",
  "serde_derive",
 ]
 
 [[package]]
 name = "roxmltree"
-version = "0.18.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "862340e351ce1b271a378ec53f304a5558f7db87f3769dc655a8f6ecbb68b302"
-dependencies = [
- "xmlparser",
-]
+checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
 
 [[package]]
 name = "rust-embed"
-version = "6.8.1"
+version = "8.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a36224c3276f8c4ebc8c20f158eca7ca4359c8db89991c4925132aaaf6702661"
+checksum = "a82c0bbc10308ed323529fd3c1dce8badda635aa319a5ff0e6466f33b8101e3f"
 dependencies = [
  "rust-embed-impl",
  "rust-embed-utils",
@@ -3958,22 +4365,22 @@ dependencies = [
 
 [[package]]
 name = "rust-embed-impl"
-version = "6.8.1"
+version = "8.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49b94b81e5b2c284684141a2fb9e2a31be90638caf040bf9afbc5a0416afe1ac"
+checksum = "6227c01b1783cdfee1bcf844eb44594cd16ec71c35305bf1c9fb5aade2735e16"
 dependencies = [
  "proc-macro2",
  "quote",
  "rust-embed-utils",
- "syn 2.0.41",
+ "syn 2.0.48",
  "walkdir",
 ]
 
 [[package]]
 name = "rust-embed-utils"
-version = "7.8.1"
+version = "8.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d38ff6bf570dc3bb7100fce9f7b60c33fa71d80e88da3f2580df4ff2bdded74"
+checksum = "8cb0a25bfbb2d4b4402179c2cf030387d9990857ce08a32592c6238db9fa8665"
 dependencies = [
  "sha2",
  "walkdir",
@@ -3981,15 +4388,31 @@ dependencies = [
 
 [[package]]
 name = "rust-ini"
-version = "0.18.0"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
+checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a"
 dependencies = [
  "cfg-if",
  "ordered-multimap",
 ]
 
 [[package]]
+name = "rust_decimal"
+version = "1.34.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b39449a79f45e8da28c57c341891b69a183044b29518bb8f86dbac9df60bb7df"
+dependencies = [
+ "arrayvec",
+ "borsh",
+ "bytes",
+ "num-traits",
+ "rand",
+ "rkyv",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
 name = "rustc-demangle"
 version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4017,14 +4440,14 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.28"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
  "libc",
- "linux-raw-sys 0.4.12",
+ "linux-raw-sys 0.4.13",
  "windows-sys 0.52.0",
 ]
 
@@ -4036,14 +4459,15 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "rustybuzz"
-version = "0.10.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71cd15fef9112a1f94ac64b58d1e4628192631ad6af4dc69997f995459c874e7"
+checksum = "f0ae5692c5beaad6a9e22830deeed7874eae8a4e3ba4076fb48e12c56856222c"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "bytemuck",
+ "libm",
  "smallvec",
- "ttf-parser 0.19.2",
+ "ttf-parser",
  "unicode-bidi-mirroring",
  "unicode-ccc",
  "unicode-properties",
@@ -4051,21 +4475,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "rustybuzz"
-version = "0.11.0"
+name = "ryu"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ee8fe2a8461a0854a37101fe7a1b13998d0cfa987e43248e81d2a5f4570f6fa"
-dependencies = [
- "bitflags 1.3.2",
- "bytemuck",
- "libm",
- "smallvec",
- "ttf-parser 0.20.0",
- "unicode-bidi-mirroring",
- "unicode-ccc",
- "unicode-properties",
- "unicode-script",
-]
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "same-file"
@@ -4089,56 +4502,73 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
+name = "seahash"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
+
+[[package]]
 name = "self_cell"
 version = "0.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e14e4d63b804dc0c7ec4a1e52bcb63f02c7ac94476755aa579edac21e01f915d"
 dependencies = [
- "self_cell 1.0.2",
+ "self_cell 1.0.3",
 ]
 
 [[package]]
 name = "self_cell"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e388332cd64eb80cd595a00941baf513caffae8dce9cfd0467fc9c66397dade6"
+checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.113"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
 ]
 
 [[package]]
 name = "serde_repr"
-version = "0.1.17"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
+checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
@@ -4190,6 +4620,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
 
 [[package]]
+name = "simdutf8"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+
+[[package]]
 name = "simplecss"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4224,9 +4660,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "smithay-client-toolkit"
@@ -4249,26 +4685,26 @@ dependencies = [
 [[package]]
 name = "smithay-client-toolkit"
 version = "0.18.0"
-source = "git+https://github.com/smithay/client-toolkit//?rev=e63ab5f#e63ab5f01964bc48766fc4c3bf79cc05dc59874c"
+source = "git+https://github.com/smithay/client-toolkit/?rev=2e9bf9f#2e9bf9f31698851ca373e5f1e7ba3e6e804e4db1"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bytemuck",
  "calloop",
  "calloop-wayland-source",
  "cursor-icon",
  "libc",
  "log",
- "memmap2 0.9.0",
+ "memmap2 0.9.4",
  "pkg-config",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "thiserror",
- "wayland-backend 0.3.2",
- "wayland-client 0.31.1",
+ "wayland-backend 0.3.3",
+ "wayland-client 0.31.2",
  "wayland-csd-frame",
- "wayland-cursor 0.31.0",
- "wayland-protocols 0.31.0",
+ "wayland-cursor 0.31.1",
+ "wayland-protocols 0.31.2",
  "wayland-protocols-wlr",
- "wayland-scanner 0.31.0",
+ "wayland-scanner 0.31.1",
  "xkbcommon",
  "xkeysym",
 ]
@@ -4284,6 +4720,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "smol_str"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6845563ada680337a52d43bb0b29f396f2d911616f6573012645b9e3d048a49"
+dependencies = [
+ "serde",
+]
+
+[[package]]
 name = "socket2"
 version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4305,12 +4750,12 @@ dependencies = [
 
 [[package]]
 name = "softbuffer"
-version = "0.3.3"
-source = "git+https://github.com/pop-os/softbuffer?tag=v0.3-cosmic#6f0371ccece51d124c6c5d37082189df0dc5f9ba"
+version = "0.4.1"
+source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#6e75b1ad7e98397d37cb187886d05969bc480995"
 dependencies = [
  "as-raw-xcb-connection",
  "bytemuck",
- "cfg_aliases",
+ "cfg_aliases 0.2.0",
  "cocoa",
  "core-graphics",
  "drm",
@@ -4318,18 +4763,18 @@ dependencies = [
  "foreign-types",
  "js-sys",
  "log",
- "memmap2 0.9.0",
+ "memmap2 0.9.4",
  "objc",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "redox_syscall 0.4.1",
- "rustix 0.38.28",
+ "rustix 0.38.31",
  "tiny-xlib",
  "wasm-bindgen",
- "wayland-backend 0.3.2",
- "wayland-client 0.31.1",
+ "wayland-backend 0.3.3",
+ "wayland-client 0.31.2",
  "wayland-sys 0.31.1",
  "web-sys",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
  "x11rb",
 ]
 
@@ -4344,12 +4789,11 @@ dependencies = [
 
 [[package]]
 name = "spirv"
-version = "0.2.0+1.5.4"
+version = "0.3.0+sdk-1.3.268.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
+checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844"
 dependencies = [
- "bitflags 1.3.2",
- "num-traits",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
@@ -4371,7 +4815,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6"
 dependencies = [
  "bitflags 1.3.2",
- "cfg_aliases",
+ "cfg_aliases 0.1.1",
  "libc",
  "parking_lot 0.11.2",
  "parking_lot_core 0.8.6",
@@ -4385,7 +4829,7 @@ version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf"
 dependencies = [
- "cfg_aliases",
+ "cfg_aliases 0.1.1",
  "memchr",
  "proc-macro2",
  "quote",
@@ -4408,6 +4852,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
 name = "svg_fmt"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4415,9 +4865,9 @@ checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2"
 
 [[package]]
 name = "svgtypes"
-version = "0.12.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71499ff2d42f59d26edb21369a308ede691421f79ebc0f001e2b1fd3a7c9e52"
+checksum = "6e44e288cd960318917cbd540340968b90becc8bc81f171345d706e7a89d9d70"
 dependencies = [
  "kurbo",
  "siphasher",
@@ -4425,10 +4875,11 @@ dependencies = [
 
 [[package]]
 name = "swash"
-version = "0.1.8"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b7c73c813353c347272919aa1af2885068b05e625e5532b43049e4f641ae77f"
+checksum = "d06ff4664af8923625604261c645f5c4cc610cc83c84bec74b50d76237089de7"
 dependencies = [
+ "read-fonts",
  "yazi",
  "zeno",
 ]
@@ -4446,9 +4897,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.41"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4456,15 +4907,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "syn_derive"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b"
+dependencies = [
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "synstructure"
-version = "0.13.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06"
+checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
- "unicode-xid",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4478,9 +4940,9 @@ dependencies = [
 
 [[package]]
 name = "sysinfo"
-version = "0.29.11"
+version = "0.30.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd727fc423c2060f6c92d9534cef765c65a6ed3f428a03d7def74a8c4348e666"
+checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2"
 dependencies = [
  "cfg-if",
  "core-foundation-sys",
@@ -4488,7 +4950,20 @@ dependencies = [
  "ntapi",
  "once_cell",
  "rayon",
- "winapi",
+ "windows 0.52.0",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+dependencies = [
+ "cfg-expr",
+ "heck",
+ "pkg-config",
+ "toml 0.8.10",
+ "version-compare",
 ]
 
 [[package]]
@@ -4503,51 +4978,62 @@ dependencies = [
 ]
 
 [[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
+
+[[package]]
 name = "temp-dir"
-version = "0.1.11"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
+checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6"
 
 [[package]]
 name = "tempfile"
-version = "3.8.1"
+version = "3.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
 dependencies = [
  "cfg-if",
  "fastrand 2.0.1",
- "redox_syscall 0.4.1",
- "rustix 0.38.28",
- "windows-sys 0.48.0",
+ "rustix 0.38.31",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4562,9 +5048,9 @@ dependencies = [
 
 [[package]]
 name = "tiff"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211"
+checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
 dependencies = [
  "flate2",
  "jpeg-decoder",
@@ -4581,10 +5067,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
 name = "tiny-skia"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6a067b809476893fce6a254cf285850ff69c847e6cfbade6a20b655b6c7e80d"
+checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
 dependencies = [
  "arrayref",
  "arrayvec",
@@ -4597,9 +5092,9 @@ dependencies = [
 
 [[package]]
 name = "tiny-skia-path"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de35e8a90052baaaf61f171680ac2f8e925a1e43ea9d2e3a00514772250e541"
+checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
 dependencies = [
  "arrayref",
  "bytemuck",
@@ -4645,9 +5140,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.35.0"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
  "backtrace",
  "bytes",
@@ -4672,14 +5167,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.21.0",
+ "toml_edit 0.22.5",
 ]
 
 [[package]]
@@ -4699,20 +5194,31 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
  "indexmap",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.40",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.21.0"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "99e68c159e8f5ba8a28c4eb7b0c0c190d77bb479047ca713270048145a9ad28a"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.0",
 ]
 
 [[package]]
@@ -4734,7 +5240,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4784,12 +5290,6 @@ dependencies = [
 
 [[package]]
 name = "ttf-parser"
-version = "0.19.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1"
-
-[[package]]
-name = "ttf-parser"
 version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
@@ -4811,10 +5311,11 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "udev"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ebdbbd670373442a12fe9ef7aeb53aec4147a5a27a00bbc3ab639f08f48191a"
+checksum = "50051c6e22be28ee6f217d50014f3bc29e81c20dc66ff7ca0d5c5226e1dcc5a1"
 dependencies = [
+ "io-lifetimes 1.0.11",
  "libc",
  "libudev-sys",
  "pkg-config",
@@ -4822,10 +5323,11 @@ dependencies = [
 
 [[package]]
 name = "uds_windows"
-version = "1.0.2"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d"
+checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
 dependencies = [
+ "memoffset 0.9.0",
  "tempfile",
  "winapi",
 ]
@@ -4851,9 +5353,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.14"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-bidi-mirroring"
@@ -4890,9 +5392,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-properties"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7f91c8b21fbbaa18853c3d0801c78f4fc94cdb976699bb03e832e75f7fd22f0"
+checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
 
 [[package]]
 name = "unicode-script"
@@ -4902,9 +5404,9 @@ checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc"
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-vo"
@@ -4938,9 +5440,9 @@ dependencies = [
 
 [[package]]
 name = "usvg"
-version = "0.36.0"
+version = "0.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c51daa774fe9ee5efcf7b4fec13019b8119cda764d9a8b5b06df02bb1445c656"
+checksum = "38b0a51b72ab80ca511d126b77feeeb4fb1e972764653e61feac30adc161a756"
 dependencies = [
  "base64",
  "log",
@@ -4953,9 +5455,9 @@ dependencies = [
 
 [[package]]
 name = "usvg-parser"
-version = "0.36.0"
+version = "0.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45c88a5ffaa338f0e978ecf3d4e00d8f9f493e29bed0752e1a808a1db16afc40"
+checksum = "9bd4e3c291f45d152929a31f0f6c819245e2921bfd01e7bd91201a9af39a2bdc"
 dependencies = [
  "data-url",
  "flate2",
@@ -4971,14 +5473,14 @@ dependencies = [
 
 [[package]]
 name = "usvg-text-layout"
-version = "0.36.0"
+version = "0.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d2374378cb7a3fb8f33894e0fdb8625e1bbc4f25312db8d91f862130b541593"
+checksum = "d383a3965de199d7f96d4e11a44dd859f46e86de7f3dca9a39bf82605da0a37c"
 dependencies = [
  "fontdb",
  "kurbo",
  "log",
- "rustybuzz 0.10.0",
+ "rustybuzz",
  "unicode-bidi",
  "unicode-script",
  "unicode-vo",
@@ -4987,9 +5489,9 @@ dependencies = [
 
 [[package]]
 name = "usvg-tree"
-version = "0.36.0"
+version = "0.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6cacb0c5edeaf3e80e5afcf5b0d4004cc1d36318befc9a7c6606507e5d0f4062"
+checksum = "8ee3d202ebdb97a6215604b8f5b4d6ef9024efd623cf2e373a6416ba976ec7d3"
 dependencies = [
  "rctree",
  "strict-num",
@@ -5011,9 +5513,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.6.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 
 [[package]]
 name = "valuable"
@@ -5022,6 +5524,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
 
 [[package]]
+name = "version-compare"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+
+[[package]]
 name = "version_check"
 version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5051,9 +5559,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -5061,24 +5569,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.39"
+version = "0.4.41"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
+checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -5088,9 +5596,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -5098,22 +5606,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.89"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
+checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
 
 [[package]]
 name = "wasm-timer"
@@ -5147,13 +5655,13 @@ dependencies = [
 
 [[package]]
 name = "wayland-backend"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19152ddd73f45f024ed4534d9ca2594e0ef252c1847695255dae47f34df9fbe4"
+checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
 dependencies = [
  "cc",
  "downcast-rs",
- "nix 0.26.4",
+ "rustix 0.38.31",
  "scoped-tls",
  "smallvec",
  "wayland-sys 0.31.1",
@@ -5189,14 +5697,14 @@ dependencies = [
 
 [[package]]
 name = "wayland-client"
-version = "0.31.1"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3"
+checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
 dependencies = [
- "bitflags 2.4.1",
- "nix 0.26.4",
- "wayland-backend 0.3.2",
- "wayland-scanner 0.31.0",
+ "bitflags 2.4.2",
+ "rustix 0.38.31",
+ "wayland-backend 0.3.3",
+ "wayland-scanner 0.31.1",
 ]
 
 [[package]]
@@ -5217,9 +5725,9 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cursor-icon",
- "wayland-backend 0.3.2",
+ "wayland-backend 0.3.3",
 ]
 
 [[package]]
@@ -5235,12 +5743,12 @@ dependencies = [
 
 [[package]]
 name = "wayland-cursor"
-version = "0.31.0"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a44aa20ae986659d6c77d64d808a046996a932aa763913864dc40c359ef7ad5b"
+checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
 dependencies = [
- "nix 0.26.4",
- "wayland-client 0.31.1",
+ "rustix 0.38.31",
+ "wayland-client 0.31.2",
  "xcursor",
 ]
 
@@ -5270,14 +5778,14 @@ dependencies = [
 
 [[package]]
 name = "wayland-protocols"
-version = "0.31.0"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e253d7107ba913923dc253967f35e8561a3c65f914543e46843c88ddd729e21c"
+checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
- "bitflags 2.4.1",
- "wayland-backend 0.3.2",
- "wayland-client 0.31.1",
- "wayland-scanner 0.31.0",
+ "bitflags 2.4.2",
+ "wayland-backend 0.3.3",
+ "wayland-client 0.31.2",
+ "wayland-scanner 0.31.1",
  "wayland-server",
 ]
 
@@ -5287,11 +5795,11 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
 dependencies = [
- "bitflags 2.4.1",
- "wayland-backend 0.3.2",
- "wayland-client 0.31.1",
- "wayland-protocols 0.31.0",
- "wayland-scanner 0.31.0",
+ "bitflags 2.4.2",
+ "wayland-backend 0.3.3",
+ "wayland-client 0.31.2",
+ "wayland-protocols 0.31.2",
+ "wayland-scanner 0.31.1",
  "wayland-server",
 ]
 
@@ -5319,27 +5827,27 @@ dependencies = [
 
 [[package]]
 name = "wayland-scanner"
-version = "0.31.0"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c"
+checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
 dependencies = [
  "proc-macro2",
- "quick-xml 0.30.0",
+ "quick-xml 0.31.0",
  "quote",
 ]
 
 [[package]]
 name = "wayland-server"
-version = "0.31.0"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f3f0c52a445936ca1184c98f1a69cf4ad9c9130788884531ef04428468cb1ce"
+checksum = "00e6e4d5c285bc24ba4ed2d5a4bd4febd5fd904451f465973225c8e99772fdb7"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "downcast-rs",
  "io-lifetimes 2.0.3",
- "nix 0.26.4",
- "wayland-backend 0.3.2",
- "wayland-scanner 0.31.0",
+ "rustix 0.38.31",
+ "wayland-backend 0.3.3",
+ "wayland-scanner 0.31.1",
 ]
 
 [[package]]
@@ -5378,9 +5886,19 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web-time"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -5388,25 +5906,24 @@ dependencies = [
 
 [[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "wgpu"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30e7d227c9f961f2061c26f4cb0fbd4df0ef37e056edd0931783599d6c94ef24"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "arrayvec",
  "cfg-if",
- "flume 0.11.0",
+ "cfg_aliases 0.1.1",
  "js-sys",
  "log",
  "naga",
  "parking_lot 0.12.1",
  "profiling",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "smallvec",
  "static_assertions",
  "wasm-bindgen",
@@ -5419,19 +5936,21 @@ dependencies = [
 
 [[package]]
 name = "wgpu-core"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef91c1d62d1e9e81c79e600131a258edf75c9531cbdbde09c44a011a47312726"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "arrayvec",
  "bit-vec",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
+ "cfg_aliases 0.1.1",
  "codespan-reporting",
+ "indexmap",
  "log",
  "naga",
+ "once_cell",
  "parking_lot 0.12.1",
  "profiling",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "rustc-hash",
  "smallvec",
  "thiserror",
@@ -5442,16 +5961,16 @@ dependencies = [
 
 [[package]]
 name = "wgpu-hal"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b84ecc802da3eb67b4cf3dd9ea6fe45bbb47ef13e6c49c5c3240868a9cc6cdd9"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "android_system_properties",
  "arrayvec",
  "ash",
  "bit-set",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "block",
+ "cfg_aliases 0.1.1",
  "core-graphics-types",
  "d3d12",
  "glow",
@@ -5472,7 +5991,7 @@ dependencies = [
  "parking_lot 0.12.1",
  "profiling",
  "range-alloc",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "renderdoc-sys",
  "rustc-hash",
  "smallvec",
@@ -5485,11 +6004,10 @@ dependencies = [
 
 [[package]]
 name = "wgpu-types"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d5ed5f0edf0de351fe311c53304986315ce866f394a2e6df0c4b3c70774bcdd"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "js-sys",
  "web-sys",
 ]
@@ -5526,15 +6044,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "winapi-wsapoll"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "winapi-x86_64-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5551,21 +6060,21 @@ dependencies = [
 
 [[package]]
 name = "windows"
-version = "0.51.1"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
  "windows-core",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
 name = "windows-core"
-version = "0.51.1"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.48.5",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -5702,9 +6211,18 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
 name = "winnow"
-version = "0.5.28"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b1dbce9e90e5404c5a52ed82b1d13fc8cfbdad85033b6f57546ffd1265f8451"
 dependencies = [
  "memchr",
 ]
@@ -5716,30 +6234,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dad7bb64b8ef9c0aa27b6da38b452b0ee9fd82beaf276a87dd796fb55cbae14e"
 
 [[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
+[[package]]
 name = "x11rb"
-version = "0.12.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a"
+checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a"
 dependencies = [
  "as-raw-xcb-connection",
  "gethostname",
  "libc",
- "libloading 0.7.4",
- "nix 0.26.4",
+ "libloading 0.8.1",
  "once_cell",
- "winapi",
- "winapi-wsapoll",
+ "rustix 0.38.31",
  "x11rb-protocol",
 ]
 
 [[package]]
 name = "x11rb-protocol"
-version = "0.12.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc"
-dependencies = [
- "nix 0.26.4",
-]
+checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34"
 
 [[package]]
 name = "xcursor"
@@ -5755,18 +6277,18 @@ checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
 
 [[package]]
 name = "xdg-home"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd"
+checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
 dependencies = [
- "nix 0.26.4",
+ "libc",
  "winapi",
 ]
 
 [[package]]
 name = "xdg-shell-wrapper-config"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/xdg-shell-wrapper#f2ca1c3dee8f66c40bdc91cb39de69a62aaaf22f"
+source = "git+https://github.com/pop-os/xdg-shell-wrapper#f7e2fac29229e31c9f50884fbf910ff8ff7ab6bd"
 dependencies = [
  "serde",
  "wayland-protocols-wlr",
@@ -5784,6 +6306,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "xkbcommon-dl"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
+dependencies = [
+ "bitflags 2.4.2",
+ "dlib",
+ "log",
+ "once_cell",
+ "xkeysym",
+]
+
+[[package]]
 name = "xkeysym"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5799,12 +6334,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
 
 [[package]]
-name = "xmlparser"
-version = "0.13.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
-
-[[package]]
 name = "xmlwriter"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5812,9 +6341,9 @@ checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9"
 
 [[package]]
 name = "xxhash-rust"
-version = "0.8.7"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9828b178da53440fa9c766a3d2f73f7cf5d0ac1fe3980c1e5018d899fd19e07b"
+checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61"
 
 [[package]]
 name = "yazi"
@@ -5842,15 +6371,15 @@ checksum = "9e6936f0cce458098a201c245a11bef556c6a0181129c7034d10d76d1ec3a2b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
  "synstructure",
 ]
 
 [[package]]
 name = "zbus"
-version = "3.14.1"
+version = "3.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948"
+checksum = "c45d06ae3b0f9ba1fb2671268b975557d8f5a84bb5ec6e43964f87e763d8bca8"
 dependencies = [
  "async-broadcast",
  "async-executor",
@@ -5890,11 +6419,11 @@ dependencies = [
 
 [[package]]
 name = "zbus_macros"
-version = "3.14.1"
+version = "3.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d"
+checksum = "b4a1ba45ed0ad344b85a2bb5a1fe9830aed23d67812ea39a586e7d0136439c7d"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "regex",
@@ -5921,22 +6450,22 @@ checksum = "dd15f8e0dbb966fd9245e7498c7e9e5055d9e5c8b676b95bd67091cd11a1e697"
 
 [[package]]
 name = "zerocopy"
-version = "0.7.30"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "306dca4455518f1f31635ec308b6b3e4eb1b11758cefafc782827d0aa7acb5c7"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.30"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be912bf68235a88fbefd1b73415cb218405958d1655b2ece9035a19920bdf6ba"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5956,7 +6485,7 @@ checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
  "synstructure",
 ]
 
@@ -5990,7 +6519,7 @@ checksum = "7b4e5997cbf58990550ef1f0e5124a05e47e1ebd33a84af25739be6031a62c20"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.41",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -6023,7 +6552,7 @@ version = "3.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-settings/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-settings/package.nix
index ee7760d8ed11..793fc324a2ff 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-settings/package.nix
+++ b/nixpkgs/pkgs/by-name/co/cosmic-settings/package.nix
@@ -5,6 +5,7 @@
 , cmake
 , makeBinaryWrapper
 , cosmic-icons
+, cosmic-randr
 , just
 , pkg-config
 , libxkbcommon
@@ -14,34 +15,38 @@
 , wayland
 , expat
 , udev
+, util-linux
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cosmic-settings";
-  version = "unstable-2024-01-09";
+  version = "0-unstable-2024-02-15";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = pname;
-    rev = "f2148eed9a56ef1b5ba73db73e15486e188e01b7";
-    hash = "sha256-JUiUC/RNR1cqJouUEneHZotkN2M18vJhv+ATvGFrQxU=";
+    rev = "82ee8a693cb2e1f727aa600f62a24d5de5d685d6";
+    hash = "sha256-OGei48Eu0kBXlWwGQaRZULAOnKyrDjCXV8OuWdOmv8E=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "accesskit-0.11.0" = "sha256-xVhe6adUb8VmwIKKjHxwCwOo5Y1p3Or3ylcJJdLDrrE=";
+      "accesskit-0.12.2" = "sha256-ksaYMGT/oug7isQY8/1WD97XDUsX2ShBdabUzxWffYw=";
       "atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
-      "cosmic-bg-config-0.1.0" = "sha256-fdRFndhwISmbTqmXfekFqh+Wrtdjg3vSZut4IAQUBbA=";
-      "cosmic-comp-config-0.1.0" = "sha256-xN5VbxRO50BPU0VP1rSOkq3TS2WTiCGavJS8o05Jw50=";
-      "cosmic-config-0.1.0" = "sha256-/oAG5xu0Lnsw/CIGXrvoC3pKkj5aS0qubWIPozQDSsY=";
-      "cosmic-client-toolkit-0.1.0" = "sha256-AEgvF7i/OWPdEMi8WUaAg99igBwE/AexhAXHxyeJMdc=";
-      "cosmic-panel-config-0.1.0" = "sha256-SDqNLuj219FMqlO2devw/DD04RJfSBJLDLH/4ObRCl8=";
-      "glyphon-0.3.0" = "sha256-Uw1zbHVAjB3pUfUd8GnFUnske3Gxs+RktrbaFJfK430=";
-      "smithay-client-toolkit-0.18.0" = "sha256-9NwNrEC+csTVtmXrNQFvOgohTGUO2VCvqOME7SnDCOg=";
-      "softbuffer-0.3.3" = "sha256-eKYFVr6C1+X6ulidHIu9SP591rJxStxwL9uMiqnXx4k=";
+      "cosmic-bg-config-0.1.0" = "sha256-2P2NcgDmytvBCMbG8isfZrX+JirMwAz8qjW3BhfhebI=";
+      "cosmic-comp-config-0.1.0" = "sha256-btXMVpgf6CKSXuUeNydreibgrRvBwiljYucaoch6RKs=";
+      "cosmic-config-0.1.0" = "sha256-QDcU9kVRHJmr8yuHq5C0RahQz0xBMkmDboW9Y2Tsk5s=";
+      "cosmic-client-toolkit-0.1.0" = "sha256-vj7Wm1uJ5ULvGNEwKznNhujCZQiuntsWMyKQbIVaO/Q=";
+      "cosmic-panel-config-0.1.0" = "sha256-gPQ5BsLvhnopnnGeKbUizmgk0yhEEgSD0etX9YEWc5E=";
+      "cosmic-randr-shell-0.1.0" = "sha256-t1PM/uIM+lbBwgFsKnRiqPZnlb4dxZnN72MfnW0HU/0=";
+      "cosmic-text-0.11.2" = "sha256-EG0jERREWR4MBWKgFmE/t6SpTTQRXK76PPa7+/TAKOA=";
+      "d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
+      "glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
+      "smithay-client-toolkit-0.18.0" = "sha256-2WbDKlSGiyVmi7blNBr2Aih9FfF2dq/bny57hoA4BrE=";
+      "softbuffer-0.4.1" = "sha256-a0bUFz6O8CWRweNt/OxTvflnPYwO5nm6vsyc/WcXyNg=";
       "taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI=";
-      "xdg-shell-wrapper-config-0.1.0" = "sha256-3Dc2fU8xBVUmAs0Q1zEdcdG7vlxpBO+UIlyM/kzGcC4=";
+      "xdg-shell-wrapper-config-0.1.0" = "sha256-PfuybCDLeRcVCkVxFK2T9BnL2uJz7C4EEPDZ9cWlPqk=";
     };
   };
 
@@ -50,7 +55,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   nativeBuildInputs = [ cmake just pkg-config makeBinaryWrapper ];
-  buildInputs = [ libxkbcommon libinput fontconfig freetype wayland expat udev ];
+  buildInputs = [ libxkbcommon libinput fontconfig freetype wayland expat udev util-linux ];
 
   dontUseJustBuild = true;
 
@@ -65,7 +70,8 @@ rustPlatform.buildRustPackage rec {
 
   postInstall = ''
     wrapProgram "$out/bin/cosmic-settings" \
-      --suffix XDG_DATA_DIRS : "${cosmic-icons}/share"
+      --prefix PATH : ${lib.makeBinPath [ cosmic-randr ]} \
+      --suffix XDG_DATA_DIRS : "$out/share:${cosmic-icons}/share"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-store/Cargo.lock b/nixpkgs/pkgs/by-name/co/cosmic-store/Cargo.lock
new file mode 100644
index 000000000000..7d7e8ef1b9a3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/cosmic-store/Cargo.lock
@@ -0,0 +1,6525 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "ab_glyph"
+version = "0.2.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225"
+dependencies = [
+ "ab_glyph_rasterizer",
+ "owned_ttf_parser",
+]
+
+[[package]]
+name = "ab_glyph_rasterizer"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
+
+[[package]]
+name = "accesskit"
+version = "0.12.2"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
+
+[[package]]
+name = "accesskit_consumer"
+version = "0.17.0"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
+dependencies = [
+ "accesskit",
+]
+
+[[package]]
+name = "accesskit_macos"
+version = "0.11.0"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
+dependencies = [
+ "accesskit",
+ "accesskit_consumer",
+ "icrate 0.1.0",
+ "objc2 0.5.0",
+ "once_cell",
+]
+
+[[package]]
+name = "accesskit_unix"
+version = "0.7.1"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
+dependencies = [
+ "accesskit",
+ "accesskit_consumer",
+ "async-channel",
+ "async-executor",
+ "async-task",
+ "atspi",
+ "futures-lite 1.13.0",
+ "futures-util",
+ "once_cell",
+ "serde",
+ "zbus",
+]
+
+[[package]]
+name = "accesskit_windows"
+version = "0.16.0"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
+dependencies = [
+ "accesskit",
+ "accesskit_consumer",
+ "once_cell",
+ "paste",
+ "static_assertions",
+ "windows 0.48.0",
+]
+
+[[package]]
+name = "accesskit_winit"
+version = "0.18.1"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
+dependencies = [
+ "accesskit",
+ "accesskit_macos",
+ "accesskit_unix",
+ "accesskit_windows",
+ "raw-window-handle 0.6.0",
+ "winit",
+]
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "ahash"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
+dependencies = [
+ "cfg-if",
+ "getrandom",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "aliasable"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd"
+
+[[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
+name = "almost"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3aa2999eb46af81abb65c2d30d446778d7e613b60bbf4e174a027e80f90a3c14"
+
+[[package]]
+name = "android-activity"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289"
+dependencies = [
+ "android-properties",
+ "bitflags 2.4.2",
+ "cc",
+ "cesu8",
+ "jni",
+ "jni-sys",
+ "libc",
+ "log",
+ "ndk",
+ "ndk-context",
+ "ndk-sys",
+ "num_enum",
+ "thiserror",
+]
+
+[[package]]
+name = "android-properties"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "any_ascii"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70033777eb8b5124a81a1889416543dddef2de240019b674c81285a2635a7e1e"
+
+[[package]]
+name = "apply"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f47b57fc4521e3cae26a4d45b5227f8fadee4c345be0fefd8d5d1711afb8aeb9"
+
+[[package]]
+name = "approx"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "appstream"
+version = "0.2.2"
+source = "git+https://github.com/jackpot51/appstream.git#d174d1df122ce1828660be2648dc2a3add8b7bd3"
+dependencies = [
+ "chrono",
+ "serde",
+ "serde_derive",
+ "strum",
+ "strum_macros",
+ "thiserror",
+ "url",
+ "xmltree",
+]
+
+[[package]]
+name = "arc-swap"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f"
+
+[[package]]
+name = "arrayref"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
+
+[[package]]
+name = "arrayvec"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+
+[[package]]
+name = "as-raw-xcb-connection"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b"
+
+[[package]]
+name = "ash"
+version = "0.37.3+1.3.251"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a"
+dependencies = [
+ "libloading 0.7.4",
+]
+
+[[package]]
+name = "ashpd"
+version = "0.6.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ac22eda5891cc086690cb6fa10121c0390de0e3b04eb269f2d766b00d3f2d81"
+dependencies = [
+ "enumflags2",
+ "futures-channel",
+ "futures-util",
+ "once_cell",
+ "rand",
+ "serde",
+ "serde_repr",
+ "tokio",
+ "url",
+ "zbus",
+]
+
+[[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"
+checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
+dependencies = [
+ "event-listener 2.5.3",
+ "futures-core",
+]
+
+[[package]]
+name = "async-channel"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 5.2.0",
+ "event-listener-strategy 0.5.0",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
+dependencies = [
+ "async-lock 3.3.0",
+ "async-task",
+ "concurrent-queue",
+ "fastrand 2.0.1",
+ "futures-lite 2.2.0",
+ "slab",
+]
+
+[[package]]
+name = "async-fs"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06"
+dependencies = [
+ "async-lock 2.8.0",
+ "autocfg",
+ "blocking",
+ "futures-lite 1.13.0",
+]
+
+[[package]]
+name = "async-io"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
+dependencies = [
+ "async-lock 2.8.0",
+ "autocfg",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-lite 1.13.0",
+ "log",
+ "parking",
+ "polling 2.8.0",
+ "rustix 0.37.27",
+ "slab",
+ "socket2 0.4.10",
+ "waker-fn",
+]
+
+[[package]]
+name = "async-io"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
+dependencies = [
+ "async-lock 3.3.0",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite 2.2.0",
+ "parking",
+ "polling 3.5.0",
+ "rustix 0.38.31",
+ "slab",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "async-lock"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
+dependencies = [
+ "event-listener 2.5.3",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
+dependencies = [
+ "event-listener 4.0.3",
+ "event-listener-strategy 0.4.0",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-process"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
+dependencies = [
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-signal",
+ "blocking",
+ "cfg-if",
+ "event-listener 3.1.0",
+ "futures-lite 1.13.0",
+ "rustix 0.38.31",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "async-recursion"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
+dependencies = [
+ "async-io 2.3.1",
+ "async-lock 2.8.0",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix 0.38.31",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "async-task"
+version = "4.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
+
+[[package]]
+name = "async-trait"
+version = "0.1.77"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "atk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
+[[package]]
+name = "atomicwrites"
+version = "0.4.2"
+source = "git+https://github.com/jackpot51/rust-atomicwrites#043ab4859d53ffd3d55334685303d8df39c9f768"
+dependencies = [
+ "rustix 0.38.31",
+ "tempfile",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "atomicwrites"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc7b2dbe9169059af0f821e811180fddc971fc210c776c133c7819ccd6e478db"
+dependencies = [
+ "rustix 0.38.31",
+ "tempfile",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "atspi"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6059f350ab6f593ea00727b334265c4dfc7fd442ee32d264794bd9bdc68e87ca"
+dependencies = [
+ "atspi-common",
+ "atspi-connection",
+ "atspi-proxies",
+]
+
+[[package]]
+name = "atspi-common"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92af95f966d2431f962bc632c2e68eda7777330158bf640c4af4249349b2cdf5"
+dependencies = [
+ "enumflags2",
+ "serde",
+ "static_assertions",
+ "zbus",
+ "zbus_names",
+ "zvariant",
+]
+
+[[package]]
+name = "atspi-connection"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0c65e7d70f86d4c0e3b2d585d9bf3f979f0b19d635a336725a88d279f76b939"
+dependencies = [
+ "atspi-common",
+ "atspi-proxies",
+ "futures-lite 1.13.0",
+ "zbus",
+]
+
+[[package]]
+name = "atspi-proxies"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6495661273703e7a229356dcbe8c8f38223d697aacfaf0e13590a9ac9977bb52"
+dependencies = [
+ "atspi-common",
+ "serde",
+ "zbus",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base64"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "bit-set"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
+dependencies = [
+ "bit-vec",
+]
+
+[[package]]
+name = "bit-vec"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+
+[[package]]
+name = "bit_field"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61"
+
+[[package]]
+name = "bitcode"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8a733ab290c6e6b2859bba3e68fd1a4ca3eee0577f21ea46049a3529e500627"
+dependencies = [
+ "bitcode_derive",
+ "bytemuck",
+ "from_bytes_or_zeroed",
+ "residua-zigzag",
+ "serde",
+ "simdutf8",
+]
+
+[[package]]
+name = "bitcode_derive"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c25ffc293cbf807499083d016ce3bc0459aaa7fd624c1cc563718a2440cb38a"
+dependencies = [
+ "packagemerge",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "block-sys"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7"
+dependencies = [
+ "objc-sys",
+]
+
+[[package]]
+name = "block2"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68"
+dependencies = [
+ "block-sys",
+ "objc2 0.4.1",
+]
+
+[[package]]
+name = "block2"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e58aa60e59d8dbfcc36138f5f18be5f24394d33b38b24f7fd0b1caa33095f22f"
+dependencies = [
+ "block-sys",
+ "objc2 0.5.0",
+]
+
+[[package]]
+name = "blocking"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
+dependencies = [
+ "async-channel",
+ "async-lock 3.3.0",
+ "async-task",
+ "fastrand 2.0.1",
+ "futures-io",
+ "futures-lite 2.2.0",
+ "piper",
+ "tracing",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
+
+[[package]]
+name = "bytemuck"
+version = "1.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
+dependencies = [
+ "bytemuck_derive",
+]
+
+[[package]]
+name = "bytemuck_derive"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "calloop"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
+dependencies = [
+ "bitflags 2.4.2",
+ "log",
+ "polling 3.5.0",
+ "rustix 0.38.31",
+ "slab",
+ "thiserror",
+]
+
+[[package]]
+name = "calloop-wayland-source"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
+dependencies = [
+ "calloop",
+ "rustix 0.38.31",
+ "wayland-backend",
+ "wayland-client",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.90"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+dependencies = [
+ "jobserver",
+ "libc",
+]
+
+[[package]]
+name = "cesu8"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77e53693616d3075149f4ead59bdeecd204ac6b8192d8969757601b74bddf00f"
+
+[[package]]
+name = "chrono"
+version = "0.4.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "serde",
+ "wasm-bindgen",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "clipboard-win"
+version = "5.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12f9a0700e0127ba15d1d52dd742097f821cd9c65939303a44d970465040a297"
+dependencies = [
+ "error-code",
+]
+
+[[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.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8"
+dependencies = [
+ "smithay-clipboard",
+]
+
+[[package]]
+name = "clipboard_x11"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4274ea815e013e0f9f04a2633423e14194e408a0576c943ce3d14ca56c50031c"
+dependencies = [
+ "thiserror",
+ "x11rb",
+]
+
+[[package]]
+name = "cocoa"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c"
+dependencies = [
+ "bitflags 1.3.2",
+ "block",
+ "cocoa-foundation",
+ "core-foundation",
+ "core-graphics",
+ "foreign-types 0.5.0",
+ "libc",
+ "objc",
+]
+
+[[package]]
+name = "cocoa-foundation"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
+dependencies = [
+ "bitflags 1.3.2",
+ "block",
+ "core-foundation",
+ "core-graphics-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 = "com"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e17887fd17353b65b1b2ef1c526c83e26cd72e74f598a8dc1bee13a48f3d9f6"
+dependencies = [
+ "com_macros",
+]
+
+[[package]]
+name = "com_macros"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5"
+dependencies = [
+ "com_macros_support",
+ "proc-macro2",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "com_macros_support"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "combine"
+version = "4.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+dependencies = [
+ "bytes",
+ "memchr",
+]
+
+[[package]]
+name = "concurrent-queue"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "const-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 = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "core-graphics"
+version = "0.23.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-graphics-types",
+ "foreign-types 0.5.0",
+ "libc",
+]
+
+[[package]]
+name = "core-graphics-types"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "libc",
+]
+
+[[package]]
+name = "cosmic-config"
+version = "0.1.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "atomicwrites 0.4.2",
+ "cosmic-config-derive",
+ "dirs 5.0.1",
+ "iced_futures",
+ "known-folders",
+ "notify",
+ "once_cell",
+ "ron",
+ "serde",
+ "xdg",
+]
+
+[[package]]
+name = "cosmic-config-derive"
+version = "0.1.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "cosmic-store"
+version = "0.1.0"
+dependencies = [
+ "appstream",
+ "atomicwrites 0.4.3",
+ "bitcode",
+ "dirs 5.0.1",
+ "env_logger",
+ "flate2",
+ "freedesktop_entry_parser",
+ "i18n-embed",
+ "i18n-embed-fl",
+ "lazy_static",
+ "lexical-sort",
+ "libc",
+ "libcosmic",
+ "libflatpak",
+ "log",
+ "packagekit-zbus",
+ "paste",
+ "rayon",
+ "regex",
+ "reqwest",
+ "rust-embed",
+ "serde",
+ "serde_yaml",
+ "smol_str",
+ "sys-locale",
+ "tokio",
+ "xdg",
+]
+
+[[package]]
+name = "cosmic-text"
+version = "0.11.2"
+source = "git+https://github.com/pop-os/cosmic-text.git#a53a0b3a8c085143470a9d26ac2c2911cc479033"
+dependencies = [
+ "bitflags 2.4.2",
+ "fontdb",
+ "libm",
+ "log",
+ "rangemap",
+ "rustc-hash",
+ "rustybuzz",
+ "self_cell 1.0.3",
+ "swash",
+ "sys-locale",
+ "ttf-parser",
+ "unicode-bidi",
+ "unicode-linebreak",
+ "unicode-script",
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "cosmic-theme"
+version = "0.1.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "almost",
+ "cosmic-config",
+ "csscolorparser",
+ "lazy_static",
+ "palette",
+ "ron",
+ "serde",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "css-color"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42aaeae719fd78ce501d77c6cdf01f7e96f26bcd5617a4903a1c2b97e388543a"
+
+[[package]]
+name = "csscolorparser"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf"
+dependencies = [
+ "phf",
+ "serde",
+]
+
+[[package]]
+name = "ctor"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad291aa74992b9b7a7e88c38acbbf6ad7e107f1d90ee8775b7bc1fc3394f485c"
+dependencies = [
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "cursor-icon"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
+
+[[package]]
+name = "d3d12"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
+dependencies = [
+ "bitflags 2.4.2",
+ "libloading 0.8.3",
+ "winapi",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core 0.9.9",
+]
+
+[[package]]
+name = "data-url"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a"
+
+[[package]]
+name = "derivative"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "derive_setters"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e8ef033054e131169b8f0f9a7af8f5533a9436fadf3c500ed547f730f07090d"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+]
+
+[[package]]
+name = "dirs"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309"
+dependencies = [
+ "dirs-sys 0.3.7",
+]
+
+[[package]]
+name = "dirs"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
+dependencies = [
+ "dirs-sys 0.4.1",
+]
+
+[[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"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
+dependencies = [
+ "libc",
+ "option-ext",
+ "redox_users",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "dispatch"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
+
+[[package]]
+name = "displaydoc"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "dlib"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
+dependencies = [
+ "libloading 0.8.3",
+]
+
+[[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 = "downcast-rs"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
+
+[[package]]
+name = "drm"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde"
+dependencies = [
+ "bitflags 2.4.2",
+ "bytemuck",
+ "drm-ffi",
+ "drm-fourcc",
+ "rustix 0.38.31",
+]
+
+[[package]]
+name = "drm-ffi"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6"
+dependencies = [
+ "drm-sys",
+ "rustix 0.38.31",
+]
+
+[[package]]
+name = "drm-fourcc"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4"
+
+[[package]]
+name = "drm-sys"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176"
+dependencies = [
+ "libc",
+ "linux-raw-sys 0.6.4",
+]
+
+[[package]]
+name = "either"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "enumflags2"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
+dependencies = [
+ "enumflags2_derive",
+ "serde",
+]
+
+[[package]]
+name = "enumflags2_derive"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
+dependencies = [
+ "humantime",
+ "is-terminal",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "error-code"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b"
+
+[[package]]
+name = "etagere"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "306960881d6c46bd0dd6b7f07442a441418c08d0d3e63d8d080b0f64c6343e4e"
+dependencies = [
+ "euclid",
+ "svg_fmt",
+]
+
+[[package]]
+name = "euclid"
+version = "0.22.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f253bc5c813ca05792837a0ff4b3a580336b224512d48f7eda1d7dd9210787"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "event-listener"
+version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+
+[[package]]
+name = "event-listener"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
+version = "5.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+dependencies = [
+ "event-listener 4.0.3",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+dependencies = [
+ "event-listener 5.2.0",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "exr"
+version = "1.72.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4"
+dependencies = [
+ "bit_field",
+ "flume",
+ "half",
+ "lebe",
+ "miniz_oxide",
+ "rayon-core",
+ "smallvec",
+ "zune-inflate",
+]
+
+[[package]]
+name = "fast-srgb8"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1"
+
+[[package]]
+name = "fastrand"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "fdeflate"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
+dependencies = [
+ "simd-adler32",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.4.1",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "find-crate"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2"
+dependencies = [
+ "toml 0.5.11",
+]
+
+[[package]]
+name = "flate2"
+version = "1.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "flathub-stats"
+version = "0.1.0"
+dependencies = [
+ "bitcode",
+ "reqwest",
+ "serde",
+ "serde_json",
+ "tokio",
+]
+
+[[package]]
+name = "float-cmp"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
+
+[[package]]
+name = "float_next_after"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8"
+
+[[package]]
+name = "fluent"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61f69378194459db76abd2ce3952b790db103ceb003008d3d50d97c41ff847a7"
+dependencies = [
+ "fluent-bundle",
+ "unic-langid",
+]
+
+[[package]]
+name = "fluent-bundle"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e242c601dec9711505f6d5bbff5bedd4b61b2469f2e8bb8e57ee7c9747a87ffd"
+dependencies = [
+ "fluent-langneg",
+ "fluent-syntax",
+ "intl-memoizer",
+ "intl_pluralrules",
+ "rustc-hash",
+ "self_cell 0.10.3",
+ "smallvec",
+ "unic-langid",
+]
+
+[[package]]
+name = "fluent-langneg"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c4ad0989667548f06ccd0e306ed56b61bd4d35458d54df5ec7587c0e8ed5e94"
+dependencies = [
+ "unic-langid",
+]
+
+[[package]]
+name = "fluent-syntax"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0abed97648395c902868fee9026de96483933faa54ea3b40d652f7dfe61ca78"
+dependencies = [
+ "thiserror",
+]
+
+[[package]]
+name = "flume"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
+dependencies = [
+ "spin",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "font-types"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bd7f3ea17572640b606b35df42cfb6ecdf003704b062580e59918692190b73d"
+
+[[package]]
+name = "fontconfig-parser"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d"
+dependencies = [
+ "roxmltree",
+]
+
+[[package]]
+name = "fontdb"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3"
+dependencies = [
+ "fontconfig-parser",
+ "log",
+ "memmap2",
+ "slotmap",
+ "tinyvec",
+ "ttf-parser",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared 0.1.1",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
+dependencies = [
+ "foreign-types-macros",
+ "foreign-types-shared 0.3.1",
+]
+
+[[package]]
+name = "foreign-types-macros"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[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"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "fraction"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59a78dd758a47a7305478e0e054f9fde4e983b9f9eccda162bf7ca03b79e9d40"
+dependencies = [
+ "lazy_static",
+ "num",
+]
+
+[[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.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8ef34245e0540c9a3ce7a28340b98d2c12b75da0d446da4e8224923fcaa0c16"
+dependencies = [
+ "dirs 5.0.1",
+ "once_cell",
+ "rust-ini",
+ "thiserror",
+ "xdg",
+]
+
+[[package]]
+name = "freedesktop_entry_parser"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db9c27b72f19a99a895f8ca89e2d26e4ef31013376e56fdafef697627306c3e4"
+dependencies = [
+ "nom",
+ "thiserror",
+]
+
+[[package]]
+name = "from_bytes_or_zeroed"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d25934a78435889223e575c7b0fc36a290c5a312e7a7ae901f10587792e142a"
+
+[[package]]
+name = "fsevent-sys"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+ "num_cpus",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-lite"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
+dependencies = [
+ "fastrand 1.9.0",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite",
+ "waker-fn",
+]
+
+[[package]]
+name = "futures-lite"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
+dependencies = [
+ "fastrand 2.0.1",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "gdk-pixbuf-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gdk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "gethostname"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
+dependencies = [
+ "libc",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "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.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
+dependencies = [
+ "color_quant",
+ "weezl",
+]
+
+[[package]]
+name = "gif"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
+dependencies = [
+ "color_quant",
+ "weezl",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
+name = "gio"
+version = "0.18.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-util",
+ "gio-sys",
+ "glib",
+ "libc",
+ "once_cell",
+ "pin-project-lite",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "gio-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "winapi",
+]
+
+[[package]]
+name = "gl_generator"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"
+dependencies = [
+ "khronos_api",
+ "log",
+ "xml-rs",
+]
+
+[[package]]
+name = "glam"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945"
+
+[[package]]
+name = "glib"
+version = "0.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5"
+dependencies = [
+ "bitflags 2.4.2",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-task",
+ "futures-util",
+ "gio-sys",
+ "glib-macros",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "memchr",
+ "once_cell",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "glib-macros"
+version = "0.18.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc"
+dependencies = [
+ "heck",
+ "proc-macro-crate 2.0.2",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "glow"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1"
+dependencies = [
+ "js-sys",
+ "slotmap",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "glutin_wgl_sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead"
+dependencies = [
+ "gl_generator",
+]
+
+[[package]]
+name = "glyphon"
+version = "0.5.0"
+source = "git+https://github.com/pop-os/glyphon.git?tag=v0.5.0#1b0646ff8f74da92d3be704dfc2257d7f4d7eed8"
+dependencies = [
+ "cosmic-text",
+ "etagere",
+ "lru",
+ "wgpu",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gpu-alloc"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
+dependencies = [
+ "bitflags 2.4.2",
+ "gpu-alloc-types",
+]
+
+[[package]]
+name = "gpu-alloc-types"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
+dependencies = [
+ "bitflags 2.4.2",
+]
+
+[[package]]
+name = "gpu-allocator"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f56f6318968d03c18e1bcf4857ff88c61157e9da8e47c5f29055d60e1228884"
+dependencies = [
+ "log",
+ "presser",
+ "thiserror",
+ "winapi",
+ "windows 0.52.0",
+]
+
+[[package]]
+name = "gpu-descriptor"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
+dependencies = [
+ "bitflags 2.4.2",
+ "gpu-descriptor-types",
+ "hashbrown",
+]
+
+[[package]]
+name = "gpu-descriptor-types"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c"
+dependencies = [
+ "bitflags 2.4.2",
+]
+
+[[package]]
+name = "grid"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1df00eed8d1f0db937f6be10e46e8072b0671accb504cf0f959c5c52c679f5b9"
+
+[[package]]
+name = "gtk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722"
+dependencies = [
+ "atk-sys",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[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.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "half"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+dependencies = [
+ "ahash",
+ "allocator-api2",
+]
+
+[[package]]
+name = "hassle-rs"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890"
+dependencies = [
+ "bitflags 2.4.2",
+ "com",
+ "libc",
+ "libloading 0.8.3",
+ "thiserror",
+ "widestring",
+ "winapi",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "hexf-parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
+
+[[package]]
+name = "http"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "hyper"
+version = "0.14.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2 0.5.6",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-tls"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+dependencies = [
+ "bytes",
+ "hyper",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+]
+
+[[package]]
+name = "i18n-config"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c9ce3c48cbc21fd5b22b9331f32b5b51f6ad85d969b99e793427332e76e7640"
+dependencies = [
+ "log",
+ "serde",
+ "serde_derive",
+ "thiserror",
+ "toml 0.8.2",
+ "unic-langid",
+]
+
+[[package]]
+name = "i18n-embed"
+version = "0.13.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92a86226a7a16632de6723449ee5fe70bac5af718bc642ee9ca2f0f6e14fa1fa"
+dependencies = [
+ "arc-swap",
+ "fluent",
+ "fluent-langneg",
+ "fluent-syntax",
+ "i18n-embed-impl",
+ "intl-memoizer",
+ "lazy_static",
+ "locale_config",
+ "log",
+ "parking_lot 0.12.1",
+ "rust-embed",
+ "thiserror",
+ "unic-langid",
+ "walkdir",
+]
+
+[[package]]
+name = "i18n-embed-fl"
+version = "0.6.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d26a3d3569737dfaac7fc1c4078e6af07471c3060b8e570bcd83cdd5f4685395"
+dependencies = [
+ "dashmap",
+ "find-crate",
+ "fluent",
+ "fluent-syntax",
+ "i18n-config",
+ "i18n-embed",
+ "lazy_static",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.52",
+ "unic-langid",
+]
+
+[[package]]
+name = "i18n-embed-impl"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81093c4701672f59416582fe3145676126fd23ba5db910acad0793c1108aaa58"
+dependencies = [
+ "find-crate",
+ "i18n-config",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "iced"
+version = "0.12.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "iced_accessibility",
+ "iced_core",
+ "iced_futures",
+ "iced_renderer",
+ "iced_widget",
+ "iced_winit",
+ "image",
+ "thiserror",
+]
+
+[[package]]
+name = "iced_accessibility"
+version = "0.1.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "accesskit",
+ "accesskit_winit",
+]
+
+[[package]]
+name = "iced_core"
+version = "0.12.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "bitflags 1.3.2",
+ "log",
+ "num-traits",
+ "palette",
+ "raw-window-handle 0.6.0",
+ "serde",
+ "smol_str",
+ "thiserror",
+ "web-time",
+ "xxhash-rust",
+]
+
+[[package]]
+name = "iced_futures"
+version = "0.12.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "futures",
+ "iced_core",
+ "log",
+ "tokio",
+ "wasm-bindgen-futures",
+ "wasm-timer",
+]
+
+[[package]]
+name = "iced_graphics"
+version = "0.12.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "bitflags 1.3.2",
+ "bytemuck",
+ "cosmic-text",
+ "glam",
+ "half",
+ "iced_core",
+ "iced_futures",
+ "image",
+ "kamadak-exif",
+ "log",
+ "lyon_path",
+ "once_cell",
+ "raw-window-handle 0.6.0",
+ "rustc-hash",
+ "thiserror",
+ "unicode-segmentation",
+ "xxhash-rust",
+]
+
+[[package]]
+name = "iced_renderer"
+version = "0.12.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "iced_graphics",
+ "iced_tiny_skia",
+ "iced_wgpu",
+ "log",
+ "thiserror",
+]
+
+[[package]]
+name = "iced_runtime"
+version = "0.12.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "iced_core",
+ "iced_futures",
+ "thiserror",
+]
+
+[[package]]
+name = "iced_style"
+version = "0.12.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "iced_core",
+ "once_cell",
+ "palette",
+]
+
+[[package]]
+name = "iced_tiny_skia"
+version = "0.12.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "bytemuck",
+ "cosmic-text",
+ "iced_graphics",
+ "kurbo",
+ "log",
+ "resvg",
+ "rustc-hash",
+ "softbuffer",
+ "tiny-skia",
+ "xxhash-rust",
+]
+
+[[package]]
+name = "iced_wgpu"
+version = "0.12.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "bitflags 1.3.2",
+ "bytemuck",
+ "futures",
+ "glam",
+ "glyphon",
+ "guillotiere",
+ "iced_graphics",
+ "log",
+ "lyon",
+ "once_cell",
+ "resvg",
+ "wgpu",
+]
+
+[[package]]
+name = "iced_widget"
+version = "0.12.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "iced_renderer",
+ "iced_runtime",
+ "iced_style",
+ "num-traits",
+ "ouroboros",
+ "thiserror",
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "iced_winit"
+version = "0.12.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "iced_graphics",
+ "iced_runtime",
+ "iced_style",
+ "log",
+ "thiserror",
+ "tracing",
+ "web-sys",
+ "winapi",
+ "window_clipboard",
+ "winit",
+]
+
+[[package]]
+name = "icrate"
+version = "0.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319"
+dependencies = [
+ "block2 0.3.0",
+ "dispatch",
+ "objc2 0.4.1",
+]
+
+[[package]]
+name = "icrate"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e286f4b975ac6c054971a0600a9b76438b332edace54bff79c71c9d3adfc9772"
+dependencies = [
+ "block2 0.4.0",
+ "objc2 0.5.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.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "image"
+version = "0.24.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
+dependencies = [
+ "bytemuck",
+ "byteorder",
+ "color_quant",
+ "exr",
+ "gif 0.13.1",
+ "jpeg-decoder",
+ "num-traits",
+ "png",
+ "qoi",
+ "tiff",
+]
+
+[[package]]
+name = "imagesize"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284"
+
+[[package]]
+name = "indexmap"
+version = "2.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "inotify"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
+dependencies = [
+ "bitflags 1.3.2",
+ "inotify-sys",
+ "libc",
+]
+
+[[package]]
+name = "inotify-sys"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "intl-memoizer"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c310433e4a310918d6ed9243542a6b83ec1183df95dff8f23f87bb88a264a66f"
+dependencies = [
+ "type-map",
+ "unic-langid",
+]
+
+[[package]]
+name = "intl_pluralrules"
+version = "7.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972"
+dependencies = [
+ "unic-langid",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+
+[[package]]
+name = "is-terminal"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "itertools"
+version = "0.4.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4a9b56eb56058f43dc66e58f40a214b2ccbc9f3df51861b63d51dec7b65bc3f"
+
+[[package]]
+name = "itoa"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+[[package]]
+name = "jni"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
+dependencies = [
+ "cesu8",
+ "cfg-if",
+ "combine",
+ "jni-sys",
+ "log",
+ "thiserror",
+ "walkdir",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
+name = "jni-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
+
+[[package]]
+name = "jobserver"
+version = "0.1.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "jpeg-decoder"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
+dependencies = [
+ "rayon",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "kamadak-exif"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef4fc70d0ab7e5b6bafa30216a6b48705ea964cdfc29c050f2412295eba58077"
+dependencies = [
+ "mutate_once",
+]
+
+[[package]]
+name = "khronos-egl"
+version = "6.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76"
+dependencies = [
+ "libc",
+ "libloading 0.8.3",
+ "pkg-config",
+]
+
+[[package]]
+name = "khronos_api"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
+
+[[package]]
+name = "known-folders"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4397c789f2709d23cfcb703b316e0766a8d4b17db2d47b0ab096ef6047cae1d8"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "kqueue"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
+dependencies = [
+ "kqueue-sys",
+ "libc",
+]
+
+[[package]]
+name = "kqueue-sys"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+]
+
+[[package]]
+name = "kurbo"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b"
+dependencies = [
+ "arrayvec",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lebe"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
+
+[[package]]
+name = "lexical-sort"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c09e4591611e231daf4d4c685a66cb0410cc1e502027a20ae55f2bb9e997207a"
+dependencies = [
+ "any_ascii",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.153"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "libcosmic"
+version = "0.1.0"
+source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55"
+dependencies = [
+ "apply",
+ "ashpd 0.7.0",
+ "cosmic-config",
+ "cosmic-theme",
+ "css-color",
+ "derive_setters",
+ "fraction",
+ "freedesktop-desktop-entry",
+ "freedesktop-icons",
+ "iced",
+ "iced_core",
+ "iced_futures",
+ "iced_renderer",
+ "iced_runtime",
+ "iced_style",
+ "iced_tiny_skia",
+ "iced_wgpu",
+ "iced_widget",
+ "iced_winit",
+ "lazy_static",
+ "mime",
+ "nix 0.27.1",
+ "palette",
+ "rfd",
+ "shlex",
+ "slotmap",
+ "taffy",
+ "thiserror",
+ "tokio",
+ "tracing",
+ "unicode-segmentation",
+ "url",
+ "zbus",
+]
+
+[[package]]
+name = "libflatpak"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbb6ec6dc391ec5f06d6c4d0d901ec12746188ddf7318ebd2509fe375e28860"
+dependencies = [
+ "gio",
+ "glib",
+ "libc",
+ "libflatpak-sys",
+]
+
+[[package]]
+name = "libflatpak-sys"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "419a73222474b84d09bf11b8ebe3140611230ff5ef4c8ae51b612f8e0e3e3f40"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "libloading"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+dependencies = [
+ "cfg-if",
+ "winapi",
+]
+
+[[package]]
+name = "libloading"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
+dependencies = [
+ "cfg-if",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "libm"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
+[[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.2",
+ "libc",
+ "redox_syscall 0.4.1",
+]
+
+[[package]]
+name = "libredox"
+version = "0.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
+dependencies = [
+ "bitflags 2.4.2",
+ "libc",
+ "redox_syscall 0.4.1",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0b5399f6804fbab912acbd8878ed3532d506b7c951b8f9f164ef90fef39e3f4"
+
+[[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.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "lru"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
+dependencies = [
+ "hashbrown",
+]
+
+[[package]]
+name = "lyon"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e7f9cda98b5430809e63ca5197b06c7d191bf7e26dfc467d5a3f0290e2a74f"
+dependencies = [
+ "lyon_algorithms",
+ "lyon_tessellation",
+]
+
+[[package]]
+name = "lyon_algorithms"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3bca95f9a4955b3e4a821fbbcd5edfbd9be2a9a50bb5758173e5358bfb4c623"
+dependencies = [
+ "lyon_path",
+ "num-traits",
+]
+
+[[package]]
+name = "lyon_geom"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edecfb8d234a2b0be031ab02ebcdd9f3b9ee418fb35e265f7a540a48d197bff9"
+dependencies = [
+ "arrayvec",
+ "euclid",
+ "num-traits",
+]
+
+[[package]]
+name = "lyon_path"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca507745ba7ccbc76e5c44e7b63b1a29d2b0d6126f375806a5bbaf657c7d6c45"
+dependencies = [
+ "lyon_geom",
+ "num-traits",
+]
+
+[[package]]
+name = "lyon_tessellation"
+version = "1.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c7c67b5bc8123b352b2e7e742b47d1f236a13fe77619433be9568fbd888e9c0"
+dependencies = [
+ "float_next_after",
+ "lyon_path",
+ "num-traits",
+]
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+
+[[package]]
+name = "memmap2"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "metal"
+version = "0.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25"
+dependencies = [
+ "bitflags 2.4.2",
+ "block",
+ "core-graphics-types",
+ "foreign-types 0.5.0",
+ "log",
+ "objc",
+ "paste",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+dependencies = [
+ "adler",
+ "simd-adler32",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "mutate_once"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b"
+
+[[package]]
+name = "naga"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
+dependencies = [
+ "arrayvec",
+ "bit-set",
+ "bitflags 2.4.2",
+ "codespan-reporting",
+ "hexf-parse",
+ "indexmap",
+ "log",
+ "num-traits",
+ "rustc-hash",
+ "spirv",
+ "termcolor",
+ "thiserror",
+ "unicode-xid",
+]
+
+[[package]]
+name = "native-tls"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
+]
+
+[[package]]
+name = "ndk"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
+dependencies = [
+ "bitflags 2.4.2",
+ "jni-sys",
+ "log",
+ "ndk-sys",
+ "num_enum",
+ "raw-window-handle 0.6.0",
+ "thiserror",
+]
+
+[[package]]
+name = "ndk-context"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
+
+[[package]]
+name = "ndk-sys"
+version = "0.5.0+25.2.9519653"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691"
+dependencies = [
+ "jni-sys",
+]
+
+[[package]]
+name = "nix"
+version = "0.26.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "libc",
+ "memoffset 0.7.1",
+]
+
+[[package]]
+name = "nix"
+version = "0.27.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if",
+ "libc",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "notify"
+version = "6.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
+dependencies = [
+ "bitflags 2.4.2",
+ "crossbeam-channel",
+ "filetime",
+ "fsevent-sys",
+ "inotify",
+ "kqueue",
+ "libc",
+ "log",
+ "mio",
+ "walkdir",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "num"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af"
+dependencies = [
+ "num-bigint",
+ "num-complex",
+ "num-integer",
+ "num-iter",
+ "num-rational",
+ "num-traits",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-complex"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+dependencies = [
+ "autocfg",
+ "num-bigint",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+ "libm",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "num_enum"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845"
+dependencies = [
+ "num_enum_derive",
+]
+
+[[package]]
+name = "num_enum_derive"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
+dependencies = [
+ "proc-macro-crate 2.0.2",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[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-sys"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7c71324e4180d0899963fc83d9d241ac39e699609fc1025a850aadac8257459"
+
+[[package]]
+name = "objc2"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d"
+dependencies = [
+ "objc-sys",
+ "objc2-encode 3.0.0",
+]
+
+[[package]]
+name = "objc2"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a9c7f0d511a4ce26b078183179dca908171cfc69f88986fe36c5138e1834476"
+dependencies = [
+ "objc-sys",
+ "objc2-encode 4.0.0",
+]
+
+[[package]]
+name = "objc2-encode"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666"
+
+[[package]]
+name = "objc2-encode"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ff06a6505cde0766484f38d8479ac8e6d31c66fbc2d5492f65ca8c091456379"
+
+[[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 = "object"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "openssl"
+version = "0.10.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if",
+ "foreign-types 0.3.2",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.101"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "orbclient"
+version = "0.3.47"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166"
+dependencies = [
+ "libredox 0.0.2",
+]
+
+[[package]]
+name = "ordered-multimap"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4d6a8c22fc714f0c2373e6091bf6f5e9b37b1bc0b1184874b7e0a4e303d318f"
+dependencies = [
+ "dlv-list",
+ "hashbrown",
+]
+
+[[package]]
+name = "ordered-stream"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "ouroboros"
+version = "0.17.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2ba07320d39dfea882faa70554b4bd342a5f273ed59ba7c1c6b4c840492c954"
+dependencies = [
+ "aliasable",
+ "ouroboros_macro",
+ "static_assertions",
+]
+
+[[package]]
+name = "ouroboros_macro"
+version = "0.17.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "owned_ttf_parser"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7"
+dependencies = [
+ "ttf-parser",
+]
+
+[[package]]
+name = "packagekit-zbus"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9433dbe304f2280c5aba7ba4e4b0a01f915635c2d3d55137c420d687c3114fb3"
+dependencies = [
+ "zbus",
+]
+
+[[package]]
+name = "packagemerge"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0efcf6ee55f8f7a24333bc8d1dd0e541a6cedf903dbc07ae6479d7f8ff32ed08"
+dependencies = [
+ "itertools",
+]
+
+[[package]]
+name = "palette"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebfc23a4b76642983d57e4ad00bb4504eb30a8ce3c70f4aee1f725610e36d97a"
+dependencies = [
+ "approx",
+ "fast-srgb8",
+ "palette_derive",
+ "phf",
+ "serde",
+]
+
+[[package]]
+name = "palette_derive"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8890702dbec0bad9116041ae586f84805b13eecd1d8b1df27c29998a9969d6d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "parking"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+[[package]]
+name = "parking_lot"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+dependencies = [
+ "instant",
+ "lock_api",
+ "parking_lot_core 0.8.6",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core 0.9.9",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
+dependencies = [
+ "cfg-if",
+ "instant",
+ "libc",
+ "redox_syscall 0.2.16",
+ "smallvec",
+ "winapi",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.4.1",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_macros",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pico-args"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "piper"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+dependencies = [
+ "atomic-waker",
+ "fastrand 2.0.1",
+ "futures-io",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "png"
+version = "0.17.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
+dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+ "fdeflate",
+ "flate2",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "polling"
+version = "2.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
+dependencies = [
+ "autocfg",
+ "bitflags 1.3.2",
+ "cfg-if",
+ "concurrent-queue",
+ "libc",
+ "log",
+ "pin-project-lite",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "polling"
+version = "3.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix 0.38.31",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "presser"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa"
+
+[[package]]
+name = "proc-macro-crate"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+dependencies = [
+ "once_cell",
+ "toml_edit 0.19.15",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24"
+dependencies = [
+ "toml_datetime",
+ "toml_edit 0.20.2",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.78"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "profiling"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58"
+
+[[package]]
+name = "qoi"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "range-alloc"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab"
+
+[[package]]
+name = "rangemap"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684"
+
+[[package]]
+name = "raw-window-handle"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
+
+[[package]]
+name = "raw-window-handle"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
+
+[[package]]
+name = "rayon"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "rctree"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
+
+[[package]]
+name = "read-fonts"
+version = "0.15.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ea23eedb4d938031b6d4343222444608727a6aa68ec355e13588d9947ffe92"
+dependencies = [
+ "font-types",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+dependencies = [
+ "getrandom",
+ "libredox 0.0.1",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "renderdoc-sys"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832"
+
+[[package]]
+name = "reqwest"
+version = "0.11.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eea5a9eb898d3783f17c6407670e3592fd174cb81a10e51d4c37f49450b9946"
+dependencies = [
+ "base64",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-tls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "native-tls",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
+ "tokio",
+ "tokio-native-tls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "winreg",
+]
+
+[[package]]
+name = "residua-zigzag"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b37805477eee599a61753230f511ae94d737f69b536e468e294723ad5f1b75f"
+
+[[package]]
+name = "resvg"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cadccb3d99a9efb8e5e00c16fbb732cbe400db2ec7fc004697ee7d97d86cf1f4"
+dependencies = [
+ "gif 0.12.0",
+ "jpeg-decoder",
+ "log",
+ "pico-args",
+ "png",
+ "rgb",
+ "svgtypes",
+ "tiny-skia",
+ "usvg",
+]
+
+[[package]]
+name = "rfd"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0d8ab342bcc5436e04d3a4c1e09e17d74958bfaddf8d5fad6f85607df0f994f"
+dependencies = [
+ "ashpd 0.6.8",
+ "block",
+ "dispatch",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "js-sys",
+ "log",
+ "objc",
+ "objc-foundation",
+ "objc_id",
+ "raw-window-handle 0.5.2",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rgb"
+version = "0.8.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "ron"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
+dependencies = [
+ "base64",
+ "bitflags 2.4.2",
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "roxmltree"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
+
+[[package]]
+name = "rust-embed"
+version = "6.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a36224c3276f8c4ebc8c20f158eca7ca4359c8db89991c4925132aaaf6702661"
+dependencies = [
+ "rust-embed-impl",
+ "rust-embed-utils",
+ "walkdir",
+]
+
+[[package]]
+name = "rust-embed-impl"
+version = "6.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49b94b81e5b2c284684141a2fb9e2a31be90638caf040bf9afbc5a0416afe1ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "rust-embed-utils",
+ "syn 2.0.52",
+ "walkdir",
+]
+
+[[package]]
+name = "rust-embed-utils"
+version = "7.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d38ff6bf570dc3bb7100fce9f7b60c33fa71d80e88da3f2580df4ff2bdded74"
+dependencies = [
+ "sha2",
+ "walkdir",
+]
+
+[[package]]
+name = "rust-ini"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a"
+dependencies = [
+ "cfg-if",
+ "ordered-multimap",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustix"
+version = "0.37.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
+dependencies = [
+ "bitflags 1.3.2",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys 0.3.8",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+dependencies = [
+ "bitflags 2.4.2",
+ "errno",
+ "libc",
+ "linux-raw-sys 0.4.13",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "rustybuzz"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0ae5692c5beaad6a9e22830deeed7874eae8a4e3ba4076fb48e12c56856222c"
+dependencies = [
+ "bitflags 2.4.2",
+ "bytemuck",
+ "libm",
+ "smallvec",
+ "ttf-parser",
+ "unicode-bidi-mirroring",
+ "unicode-ccc",
+ "unicode-properties",
+ "unicode-script",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "sctk-adwaita"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82b2eaf3a5b264a521b988b2e73042e742df700c4f962cde845d1541adb46550"
+dependencies = [
+ "ab_glyph",
+ "log",
+ "memmap2",
+ "smithay-client-toolkit",
+ "tiny-skia",
+]
+
+[[package]]
+name = "security-framework"
+version = "2.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "self_cell"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e14e4d63b804dc0c7ec4a1e52bcb63f02c7ac94476755aa579edac21e01f915d"
+dependencies = [
+ "self_cell 1.0.3",
+]
+
+[[package]]
+name = "self_cell"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
+
+[[package]]
+name = "serde"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.114"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_yaml"
+version = "0.9.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f"
+dependencies = [
+ "indexmap",
+ "itoa",
+ "ryu",
+ "serde",
+ "unsafe-libyaml",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
+[[package]]
+name = "simdutf8"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+
+[[package]]
+name = "simplecss"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "slotmap"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+
+[[package]]
+name = "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",
+ "calloop-wayland-source",
+ "cursor-icon",
+ "libc",
+ "log",
+ "memmap2",
+ "rustix 0.38.31",
+ "thiserror",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-csd-frame",
+ "wayland-cursor",
+ "wayland-protocols",
+ "wayland-protocols-wlr",
+ "wayland-scanner",
+ "xkeysym",
+]
+
+[[package]]
+name = "smithay-clipboard"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c091e7354ea8059d6ad99eace06dd13ddeedbb0ac72d40a9a6e7ff790525882d"
+dependencies = [
+ "libc",
+ "smithay-client-toolkit",
+ "wayland-backend",
+]
+
+[[package]]
+name = "smol_str"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6845563ada680337a52d43bb0b29f396f2d911616f6573012645b9e3d048a49"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "socket2"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "socket2"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "softbuffer"
+version = "0.4.1"
+source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#6e75b1ad7e98397d37cb187886d05969bc480995"
+dependencies = [
+ "as-raw-xcb-connection",
+ "bytemuck",
+ "cfg_aliases 0.2.0",
+ "cocoa",
+ "core-graphics",
+ "drm",
+ "fastrand 2.0.1",
+ "foreign-types 0.5.0",
+ "js-sys",
+ "log",
+ "memmap2",
+ "objc",
+ "raw-window-handle 0.6.0",
+ "redox_syscall 0.4.1",
+ "rustix 0.38.31",
+ "tiny-xlib",
+ "wasm-bindgen",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-sys",
+ "web-sys",
+ "windows-sys 0.52.0",
+ "x11rb",
+]
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+dependencies = [
+ "lock_api",
+]
+
+[[package]]
+name = "spirv"
+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",
+]
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strict-num"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
+dependencies = [
+ "float-cmp",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "strum"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
+
+[[package]]
+name = "strum_macros"
+version = "0.24.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "svg_fmt"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f83ba502a3265efb76efb89b0a2f7782ad6f2675015d4ce37e4b547dda42b499"
+
+[[package]]
+name = "svgtypes"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e44e288cd960318917cbd540340968b90becc8bc81f171345d706e7a89d9d70"
+dependencies = [
+ "kurbo",
+ "siphasher",
+]
+
+[[package]]
+name = "swash"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d06ff4664af8923625604261c645f5c4cc610cc83c84bec74b50d76237089de7"
+dependencies = [
+ "read-fonts",
+ "yazi",
+ "zeno",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.52"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
+name = "sys-locale"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e801cf239ecd6ccd71f03d270d67dd53d13e90aab208bf4b8fe4ad957ea949b0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "system-configuration"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "658bc6ee10a9b4fcf576e9b0819d95ec16f4d2c02d39fd83ac1c8789785c4a42"
+dependencies = [
+ "bitflags 2.4.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+dependencies = [
+ "cfg-expr",
+ "heck",
+ "pkg-config",
+ "toml 0.8.2",
+ "version-compare",
+]
+
+[[package]]
+name = "taffy"
+version = "0.3.11"
+source = "git+https://github.com/DioxusLabs/taffy?rev=7781c70#7781c70241f7f572130c13106f2a869a9cf80885"
+dependencies = [
+ "arrayvec",
+ "grid",
+ "num-traits",
+ "slotmap",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[package]]
+name = "temp-dir"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6"
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if",
+ "fastrand 2.0.1",
+ "rustix 0.38.31",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "tiff"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
+dependencies = [
+ "flate2",
+ "jpeg-decoder",
+ "weezl",
+]
+
+[[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "tiny-skia"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "bytemuck",
+ "cfg-if",
+ "log",
+ "png",
+ "tiny-skia-path",
+]
+
+[[package]]
+name = "tiny-skia-path"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
+dependencies = [
+ "arrayref",
+ "bytemuck",
+ "strict-num",
+]
+
+[[package]]
+name = "tiny-xlib"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4098d49269baa034a8d1eae9bd63e9fa532148d772121dace3bcd6a6c98eb6d"
+dependencies = [
+ "as-raw-xcb-connection",
+ "ctor",
+ "libloading 0.8.3",
+ "tracing",
+]
+
+[[package]]
+name = "tinystr"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83c02bf3c538ab32ba913408224323915f4ef9a6d61c0e85d493f355921c0ece"
+dependencies = [
+ "displaydoc",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.36.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "parking_lot 0.12.1",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2 0.5.6",
+ "tokio-macros",
+ "tracing",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.20.2",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.19.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
+[[package]]
+name = "ttf-parser"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
+
+[[package]]
+name = "type-map"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6d3364c5e96cb2ad1603037ab253ddd34d7fb72a58bdddf4b7350760fc69a46"
+dependencies = [
+ "rustc-hash",
+]
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "uds_windows"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
+dependencies = [
+ "memoffset 0.9.0",
+ "tempfile",
+ "winapi",
+]
+
+[[package]]
+name = "unic-langid"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "238722e6d794ed130f91f4ea33e01fcff4f188d92337a21297892521c72df516"
+dependencies = [
+ "unic-langid-impl",
+]
+
+[[package]]
+name = "unic-langid-impl"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bd55a2063fdea4ef1f8633243a7b0524cbeef1905ae04c31a1c9b9775c55bc6"
+dependencies = [
+ "serde",
+ "tinystr",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
+[[package]]
+name = "unicode-bidi-mirroring"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694"
+
+[[package]]
+name = "unicode-ccc"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-linebreak"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-properties"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
+
+[[package]]
+name = "unicode-script"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad8d71f5726e5f285a935e9fe8edfd53f0491eb6e9a5774097fdabee7cd8c9cd"
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
+[[package]]
+name = "unicode-vo"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+
+[[package]]
+name = "unsafe-libyaml"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
+
+[[package]]
+name = "url"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "usvg"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b0a51b72ab80ca511d126b77feeeb4fb1e972764653e61feac30adc161a756"
+dependencies = [
+ "base64",
+ "log",
+ "pico-args",
+ "usvg-parser",
+ "usvg-text-layout",
+ "usvg-tree",
+ "xmlwriter",
+]
+
+[[package]]
+name = "usvg-parser"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bd4e3c291f45d152929a31f0f6c819245e2921bfd01e7bd91201a9af39a2bdc"
+dependencies = [
+ "data-url",
+ "flate2",
+ "imagesize",
+ "kurbo",
+ "log",
+ "roxmltree",
+ "simplecss",
+ "siphasher",
+ "svgtypes",
+ "usvg-tree",
+]
+
+[[package]]
+name = "usvg-text-layout"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d383a3965de199d7f96d4e11a44dd859f46e86de7f3dca9a39bf82605da0a37c"
+dependencies = [
+ "fontdb",
+ "kurbo",
+ "log",
+ "rustybuzz",
+ "unicode-bidi",
+ "unicode-script",
+ "unicode-vo",
+ "usvg-tree",
+]
+
+[[package]]
+name = "usvg-tree"
+version = "0.37.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ee3d202ebdb97a6215604b8f5b4d6ef9024efd623cf2e373a6416ba976ec7d3"
+dependencies = [
+ "rctree",
+ "strict-num",
+ "svgtypes",
+ "tiny-skia-path",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version-compare"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "waker-fn"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
+
+[[package]]
+name = "walkdir"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "want"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+
+[[package]]
+name = "wasm-timer"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
+dependencies = [
+ "futures",
+ "js-sys",
+ "parking_lot 0.11.2",
+ "pin-utils",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "wayland-backend"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
+dependencies = [
+ "cc",
+ "downcast-rs",
+ "rustix 0.38.31",
+ "scoped-tls",
+ "smallvec",
+ "wayland-sys",
+]
+
+[[package]]
+name = "wayland-client"
+version = "0.31.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
+dependencies = [
+ "bitflags 2.4.2",
+ "rustix 0.38.31",
+ "wayland-backend",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-csd-frame"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
+dependencies = [
+ "bitflags 2.4.2",
+ "cursor-icon",
+ "wayland-backend",
+]
+
+[[package]]
+name = "wayland-cursor"
+version = "0.31.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
+dependencies = [
+ "rustix 0.38.31",
+ "wayland-client",
+ "xcursor",
+]
+
+[[package]]
+name = "wayland-protocols"
+version = "0.31.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
+dependencies = [
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-protocols-plasma"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479"
+dependencies = [
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-protocols-wlr"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
+dependencies = [
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-scanner"
+version = "0.31.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
+dependencies = [
+ "proc-macro2",
+ "quick-xml",
+ "quote",
+]
+
+[[package]]
+name = "wayland-sys"
+version = "0.31.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
+dependencies = [
+ "dlib",
+ "log",
+ "once_cell",
+ "pkg-config",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web-time"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "weezl"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
+
+[[package]]
+name = "wgpu"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
+dependencies = [
+ "arrayvec",
+ "cfg-if",
+ "cfg_aliases 0.1.1",
+ "js-sys",
+ "log",
+ "naga",
+ "parking_lot 0.12.1",
+ "profiling",
+ "raw-window-handle 0.6.0",
+ "smallvec",
+ "static_assertions",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "wgpu-core",
+ "wgpu-hal",
+ "wgpu-types",
+]
+
+[[package]]
+name = "wgpu-core"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
+dependencies = [
+ "arrayvec",
+ "bit-vec",
+ "bitflags 2.4.2",
+ "cfg_aliases 0.1.1",
+ "codespan-reporting",
+ "indexmap",
+ "log",
+ "naga",
+ "once_cell",
+ "parking_lot 0.12.1",
+ "profiling",
+ "raw-window-handle 0.6.0",
+ "rustc-hash",
+ "smallvec",
+ "thiserror",
+ "web-sys",
+ "wgpu-hal",
+ "wgpu-types",
+]
+
+[[package]]
+name = "wgpu-hal"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
+dependencies = [
+ "android_system_properties",
+ "arrayvec",
+ "ash",
+ "bit-set",
+ "bitflags 2.4.2",
+ "block",
+ "cfg_aliases 0.1.1",
+ "core-graphics-types",
+ "d3d12",
+ "glow",
+ "glutin_wgl_sys",
+ "gpu-alloc",
+ "gpu-allocator",
+ "gpu-descriptor",
+ "hassle-rs",
+ "js-sys",
+ "khronos-egl",
+ "libc",
+ "libloading 0.8.3",
+ "log",
+ "metal",
+ "naga",
+ "objc",
+ "once_cell",
+ "parking_lot 0.12.1",
+ "profiling",
+ "range-alloc",
+ "raw-window-handle 0.6.0",
+ "renderdoc-sys",
+ "rustc-hash",
+ "smallvec",
+ "thiserror",
+ "wasm-bindgen",
+ "web-sys",
+ "wgpu-types",
+ "winapi",
+]
+
+[[package]]
+name = "wgpu-types"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
+dependencies = [
+ "bitflags 2.4.2",
+ "js-sys",
+ "web-sys",
+]
+
+[[package]]
+name = "widestring"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "window_clipboard"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6d692d46038c433f9daee7ad8757e002a4248c20b0a3fbc991d99521d3bcb6d"
+dependencies = [
+ "clipboard-win",
+ "clipboard_macos",
+ "clipboard_wayland",
+ "clipboard_x11",
+ "raw-window-handle 0.6.0",
+ "thiserror",
+]
+
+[[package]]
+name = "windows"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+dependencies = [
+ "windows-implement",
+ "windows-interface",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-implement"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e2ee588991b9e7e6c8338edf3333fbe4da35dc72092643958ebb43f0ab2c49c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "windows-interface"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.2",
+ "windows_aarch64_msvc 0.42.2",
+ "windows_i686_gnu 0.42.2",
+ "windows_i686_msvc 0.42.2",
+ "windows_x86_64_gnu 0.42.2",
+ "windows_x86_64_gnullvm 0.42.2",
+ "windows_x86_64_msvc 0.42.2",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
+name = "winit"
+version = "0.29.10"
+source = "git+https://github.com/pop-os/winit.git?branch=winit-0.29#bdc66109acc85c912264c9e4b864520345bdb45f"
+dependencies = [
+ "ahash",
+ "android-activity",
+ "atomic-waker",
+ "bitflags 2.4.2",
+ "bytemuck",
+ "calloop",
+ "cfg_aliases 0.1.1",
+ "core-foundation",
+ "core-graphics",
+ "cursor-icon",
+ "icrate 0.0.4",
+ "js-sys",
+ "libc",
+ "log",
+ "memmap2",
+ "ndk",
+ "ndk-sys",
+ "objc2 0.4.1",
+ "once_cell",
+ "orbclient",
+ "percent-encoding",
+ "raw-window-handle 0.6.0",
+ "redox_syscall 0.3.5",
+ "rustix 0.38.31",
+ "sctk-adwaita",
+ "smithay-client-toolkit",
+ "smol_str",
+ "unicode-segmentation",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols",
+ "wayland-protocols-plasma",
+ "web-sys",
+ "web-time",
+ "windows-sys 0.48.0",
+ "x11-dl",
+ "x11rb",
+ "xkbcommon-dl",
+]
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "x11-dl"
+version = "2.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
+dependencies = [
+ "libc",
+ "once_cell",
+ "pkg-config",
+]
+
+[[package]]
+name = "x11rb"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a"
+dependencies = [
+ "as-raw-xcb-connection",
+ "gethostname",
+ "libc",
+ "libloading 0.8.3",
+ "once_cell",
+ "rustix 0.38.31",
+ "x11rb-protocol",
+]
+
+[[package]]
+name = "x11rb-protocol"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34"
+
+[[package]]
+name = "xcursor"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911"
+
+[[package]]
+name = "xdg"
+version = "2.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
+
+[[package]]
+name = "xdg-home"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "xkbcommon-dl"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
+dependencies = [
+ "bitflags 2.4.2",
+ "dlib",
+ "log",
+ "once_cell",
+ "xkeysym",
+]
+
+[[package]]
+name = "xkeysym"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621"
+
+[[package]]
+name = "xml-rs"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
+
+[[package]]
+name = "xmltree"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb"
+dependencies = [
+ "xml-rs",
+]
+
+[[package]]
+name = "xmlwriter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9"
+
+[[package]]
+name = "xxhash-rust"
+version = "0.8.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03"
+
+[[package]]
+name = "yazi"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1"
+
+[[package]]
+name = "zbus"
+version = "3.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6"
+dependencies = [
+ "async-broadcast",
+ "async-executor",
+ "async-fs",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-process",
+ "async-recursion",
+ "async-task",
+ "async-trait",
+ "blocking",
+ "byteorder",
+ "derivative",
+ "enumflags2",
+ "event-listener 2.5.3",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "hex",
+ "nix 0.26.4",
+ "once_cell",
+ "ordered-stream",
+ "rand",
+ "serde",
+ "serde_repr",
+ "sha1",
+ "static_assertions",
+ "tokio",
+ "tracing",
+ "uds_windows",
+ "winapi",
+ "xdg-home",
+ "zbus_macros",
+ "zbus_names",
+ "zvariant",
+]
+
+[[package]]
+name = "zbus_macros"
+version = "3.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5"
+dependencies = [
+ "proc-macro-crate 1.3.1",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn 1.0.109",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zbus_names"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d"
+dependencies = [
+ "serde",
+ "static_assertions",
+ "zvariant",
+]
+
+[[package]]
+name = "zeno"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd15f8e0dbb966fd9245e7498c7e9e5055d9e5c8b676b95bd67091cd11a1e697"
+
+[[package]]
+name = "zerocopy"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "zune-inflate"
+version = "0.2.54"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02"
+dependencies = [
+ "simd-adler32",
+]
+
+[[package]]
+name = "zvariant"
+version = "3.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db"
+dependencies = [
+ "byteorder",
+ "enumflags2",
+ "libc",
+ "serde",
+ "static_assertions",
+ "url",
+ "zvariant_derive",
+]
+
+[[package]]
+name = "zvariant_derive"
+version = "3.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9"
+dependencies = [
+ "proc-macro-crate 1.3.1",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "zvariant_utils",
+]
+
+[[package]]
+name = "zvariant_utils"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-store/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-store/package.nix
new file mode 100644
index 000000000000..3fcb76c17808
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/co/cosmic-store/package.nix
@@ -0,0 +1,99 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform, appstream, makeBinaryWrapper
+, cosmic-icons, glib, just, pkg-config, libglvnd, libxkbcommon, libinput
+, fontconfig, flatpak, freetype, openssl, mesa, wayland, xorg, vulkan-loader
+, vulkan-validation-layers, }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cosmic-store";
+  version = "unstable-2024-03-13";
+  src = fetchFromGitHub {
+    owner = "pop-os";
+    repo = pname;
+    rev = "df014ea82ae0465470f5d237bfe71d2c085d29a0";
+    hash = "sha256-1Sp6/qVONK+O5FLEcsu45eEBNaVbJLptt+ByXOZYwpo=";
+    fetchSubmodules = true;
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "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=";
+      "d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
+      "glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
+      "softbuffer-0.4.1" = "sha256-a0bUFz6O8CWRweNt/OxTvflnPYwO5nm6vsyc/WcXyNg=";
+      "taffy-0.3.11" = "sha256-SCx9GEIJjWdoNVyq+RZAGn0N71qraKZxf9ZWhvyzLaI=";
+      "winit-0.29.10" = "sha256-ScTII2AzK3SC8MVeASZ9jhVWsEaGrSQ2BnApTxgfxK4=";
+    };
+  };
+
+  postPatch = ''
+    substituteInPlace justfile --replace '#!/usr/bin/env' "#!$(command -v env)"
+  '';
+
+  nativeBuildInputs = [ just pkg-config makeBinaryWrapper ];
+  buildInputs = [
+    appstream
+    glib
+    libxkbcommon
+    libinput
+    libglvnd
+    fontconfig
+    flatpak
+    freetype
+    openssl
+    xorg.libX11
+    wayland
+    vulkan-loader
+    vulkan-validation-layers
+  ];
+
+  dontUseJustBuild = true;
+
+  justFlags = [
+    "--set"
+    "prefix"
+    (placeholder "out")
+    "--set"
+    "bin-src"
+    "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-store"
+  ];
+
+  # Force linking to libEGL, which is always dlopen()ed, and to
+  # libwayland-client, which is always dlopen()ed except by the
+  # obscure winit backend.
+  RUSTFLAGS = map (a: "-C link-arg=${a}") [
+    "-Wl,--push-state,--no-as-needed"
+    "-lEGL"
+    "-lwayland-client"
+    "-Wl,--pop-state"
+  ];
+
+  # LD_LIBRARY_PATH can be removed once tiny-xlib is bumped above 0.2.2
+  postInstall = ''
+    wrapProgram "$out/bin/${pname}" \
+      --suffix XDG_DATA_DIRS : "${cosmic-icons}/share" \
+      --prefix LD_LIBRARY_PATH : ${
+        lib.makeLibraryPath [
+          xorg.libX11
+          xorg.libXcursor
+          xorg.libXi
+          xorg.libXrandr
+          libxkbcommon
+          vulkan-loader
+          mesa.drivers
+        ]
+      }
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/pop-os/cosmic-store";
+    description = "App Store for the COSMIC Desktop Environment";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ ahoneybun nyanbinary ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-term/Cargo.lock b/nixpkgs/pkgs/by-name/co/cosmic-term/Cargo.lock
index 4ad8a828cb5a..3130abd0c06a 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-term/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/co/cosmic-term/Cargo.lock
@@ -9,7 +9,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225"
 dependencies = [
  "ab_glyph_rasterizer",
- "owned_ttf_parser",
+ "owned_ttf_parser 0.20.0",
 ]
 
 [[package]]
@@ -20,66 +20,71 @@ checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
 
 [[package]]
 name = "accesskit"
-version = "0.11.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.12.2"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 
 [[package]]
 name = "accesskit_consumer"
-version = "0.15.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.17.0"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
 ]
 
 [[package]]
 name = "accesskit_macos"
-version = "0.7.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.11.0"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
  "accesskit_consumer",
- "objc2",
+ "icrate 0.1.0",
+ "objc2 0.5.0",
  "once_cell",
 ]
 
 [[package]]
 name = "accesskit_unix"
-version = "0.4.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.7.1"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
  "accesskit_consumer",
- "async-channel 1.9.0",
+ "async-channel",
+ "async-executor",
+ "async-task",
  "atspi",
  "futures-lite 1.13.0",
- "log",
+ "futures-util",
+ "once_cell",
  "serde",
  "zbus",
 ]
 
 [[package]]
 name = "accesskit_windows"
-version = "0.14.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.16.0"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
  "accesskit_consumer",
- "arrayvec",
  "once_cell",
  "paste",
- "windows 0.44.0",
+ "static_assertions",
+ "windows 0.48.0",
 ]
 
 [[package]]
 name = "accesskit_winit"
-version = "0.13.0"
-source = "git+https://github.com/wash2/accesskit.git?tag=winit-0.28#db6f2587f663eafd8f7888e8507baa3a092599b0"
+version = "0.18.1"
+source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c8264000d001499c902562422e13efa7a8"
 dependencies = [
  "accesskit",
  "accesskit_macos",
  "accesskit_unix",
  "accesskit_windows",
- "winit",
+ "raw-window-handle 0.6.0",
+ "winit 0.29.10",
 ]
 
 [[package]]
@@ -98,23 +103,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
-name = "ahash"
-version = "0.7.7"
+name = "adler32"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
-dependencies = [
- "getrandom",
- "once_cell",
- "version_check",
-]
+checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
 
 [[package]]
 name = "ahash"
-version = "0.8.7"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
+ "getrandom",
  "once_cell",
  "version_check",
  "zerocopy",
@@ -140,10 +141,10 @@ dependencies = [
  "home",
  "libc",
  "log",
- "miow",
+ "miow 0.6.0",
  "parking_lot 0.12.1",
  "piper",
- "polling 3.3.2",
+ "polling 3.4.0",
  "regex-automata",
  "rustix-openpty",
  "serde",
@@ -172,21 +173,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3aa2999eb46af81abb65c2d30d446778d7e613b60bbf4e174a027e80f90a3c14"
 
 [[package]]
+name = "andrew"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c4afb09dd642feec8408e33f92f3ffc4052946f6b20f32fb99c1f58cd4fa7cf"
+dependencies = [
+ "bitflags 1.3.2",
+ "rusttype",
+ "walkdir",
+ "xdg",
+ "xml-rs",
+]
+
+[[package]]
 name = "android-activity"
-version = "0.4.3"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0"
+checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289"
 dependencies = [
  "android-properties",
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "cc",
+ "cesu8",
+ "jni",
  "jni-sys",
  "libc",
  "log",
- "ndk",
+ "ndk 0.8.0",
  "ndk-context",
- "ndk-sys",
- "num_enum 0.6.1",
+ "ndk-sys 0.5.0+25.2.9519653",
+ "num_enum 0.7.2",
+ "thiserror",
 ]
 
 [[package]]
@@ -196,6 +213,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"
 
 [[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
 name = "android_system_properties"
 version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -205,6 +228,66 @@ dependencies = [
 ]
 
 [[package]]
+name = "anstream"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "any_ascii"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70033777eb8b5124a81a1889416543dddef2de240019b674c81285a2635a7e1e"
+
+[[package]]
+name = "anyhow"
+version = "1.0.80"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+
+[[package]]
 name = "apply"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -233,6 +316,12 @@ checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
 
 [[package]]
 name = "arrayvec"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
+
+[[package]]
+name = "arrayvec"
 version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
@@ -282,24 +371,13 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
-dependencies = [
- "concurrent-queue",
- "event-listener 2.5.3",
- "futures-core",
-]
-
-[[package]]
-name = "async-channel"
-version = "2.1.1"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
 dependencies = [
  "concurrent-queue",
- "event-listener 4.0.3",
- "event-listener-strategy",
+ "event-listener 5.1.0",
+ "event-listener-strategy 0.5.0",
  "futures-core",
  "pin-project-lite",
 ]
@@ -338,7 +416,7 @@ checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
 dependencies = [
  "async-lock 2.8.0",
  "autocfg",
- "cfg-if",
+ "cfg-if 1.0.0",
  "concurrent-queue",
  "futures-lite 1.13.0",
  "log",
@@ -352,17 +430,17 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb41eb19024a91746eba0773aa5e16036045bbf45733766661099e182ea6a744"
+checksum = "8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65"
 dependencies = [
  "async-lock 3.3.0",
- "cfg-if",
+ "cfg-if 1.0.0",
  "concurrent-queue",
  "futures-io",
  "futures-lite 2.2.0",
  "parking",
- "polling 3.3.2",
+ "polling 3.4.0",
  "rustix 0.38.28",
  "slab",
  "tracing",
@@ -385,7 +463,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
 dependencies = [
  "event-listener 4.0.3",
- "event-listener-strategy",
+ "event-listener-strategy 0.4.0",
  "pin-project-lite",
 ]
 
@@ -399,7 +477,7 @@ dependencies = [
  "async-lock 2.8.0",
  "async-signal",
  "blocking",
- "cfg-if",
+ "cfg-if 1.0.0",
  "event-listener 3.1.0",
  "futures-lite 1.13.0",
  "rustix 0.38.28",
@@ -414,7 +492,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -423,10 +501,10 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io 2.3.0",
+ "async-io 2.3.1",
  "async-lock 2.8.0",
  "atomic-waker",
- "cfg-if",
+ "cfg-if 1.0.0",
  "futures-core",
  "futures-io",
  "rustix 0.38.28",
@@ -449,7 +527,19 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "atk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
 ]
 
 [[package]]
@@ -470,29 +560,50 @@ dependencies = [
 
 [[package]]
 name = "atspi"
-version = "0.10.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "674e7a3376837b2e7d12d34d58ac47073c491dc3bf6f71a7adaf687d4d817faa"
+checksum = "6059f350ab6f593ea00727b334265c4dfc7fd442ee32d264794bd9bdc68e87ca"
+dependencies = [
+ "atspi-common",
+ "atspi-connection",
+ "atspi-proxies",
+]
+
+[[package]]
+name = "atspi-common"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92af95f966d2431f962bc632c2e68eda7777330158bf640c4af4249349b2cdf5"
 dependencies = [
- "async-recursion",
- "async-trait",
- "atspi-macros",
  "enumflags2",
- "futures-lite 1.13.0",
  "serde",
- "tracing",
+ "static_assertions",
  "zbus",
  "zbus_names",
+ "zvariant",
 ]
 
 [[package]]
-name = "atspi-macros"
-version = "0.2.0"
+name = "atspi-connection"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fb4870a32c0eaa17e35bca0e6b16020635157121fb7d45593d242c295bc768"
+checksum = "a0c65e7d70f86d4c0e3b2d585d9bf3f979f0b19d635a336725a88d279f76b939"
 dependencies = [
- "quote",
- "syn 1.0.109",
+ "atspi-common",
+ "atspi-proxies",
+ "futures-lite 1.13.0",
+ "zbus",
+]
+
+[[package]]
+name = "atspi-proxies"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6495661273703e7a229356dcbe8c8f38223d697aacfaf0e13590a9ac9977bb52"
+dependencies = [
+ "atspi-common",
+ "serde",
+ "zbus",
 ]
 
 [[package]]
@@ -509,9 +620,9 @@ checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
  "addr2line",
  "cc",
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
- "miniz_oxide",
+ "miniz_oxide 0.7.2",
  "object",
  "rustc-demangle",
 ]
@@ -575,21 +686,31 @@ dependencies = [
 
 [[package]]
 name = "block-sys"
-version = "0.1.0-beta.1"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146"
+checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7"
 dependencies = [
  "objc-sys",
 ]
 
 [[package]]
 name = "block2"
-version = "0.2.0-alpha.6"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68"
+dependencies = [
+ "block-sys",
+ "objc2 0.4.1",
+]
+
+[[package]]
+name = "block2"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42"
+checksum = "e58aa60e59d8dbfcc36138f5f18be5f24394d33b38b24f7fd0b1caa33095f22f"
 dependencies = [
  "block-sys",
- "objc2-encode",
+ "objc2 0.5.0",
 ]
 
 [[package]]
@@ -598,7 +719,7 @@ version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
- "async-channel 2.1.1",
+ "async-channel",
  "async-lock 3.3.0",
  "async-task",
  "fastrand 2.0.1",
@@ -610,15 +731,15 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.0"
+version = "1.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
 dependencies = [
  "bytemuck_derive",
 ]
@@ -631,7 +752,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -647,17 +768,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
+name = "cairo-sys-rs"
+version = "0.18.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
 name = "calloop"
-version = "0.10.6"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8"
+checksum = "0b036167e76041694579972c28cf4877b4f92da222560ddb49008937b6a6727c"
 dependencies = [
- "bitflags 1.3.2",
  "log",
- "nix 0.25.1",
- "slotmap",
- "thiserror",
- "vec_map",
+ "nix 0.18.0",
 ]
 
 [[package]]
@@ -668,7 +795,7 @@ checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
  "bitflags 2.4.2",
  "log",
- "polling 3.3.2",
+ "polling 3.4.0",
  "rustix 0.38.28",
  "slab",
  "thiserror",
@@ -683,20 +810,41 @@ dependencies = [
  "calloop 0.12.4",
  "rustix 0.38.28",
  "wayland-backend",
- "wayland-client 0.31.1",
+ "wayland-client 0.31.2",
 ]
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.88"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc"
 dependencies = [
- "jobserver",
  "libc",
 ]
 
 [[package]]
+name = "cesu8"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
+version = "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"
@@ -709,14 +857,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77e53693616d3075149f4ead59bdeecd204ac6b8192d8969757601b74bddf00f"
+
+[[package]]
+name = "chrono"
+version = "0.4.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "pure-rust-locales",
+ "wasm-bindgen",
+ "windows-targets 0.52.3",
+]
+
+[[package]]
 name = "clipboard-win"
-version = "4.5.0"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
+checksum = "12f9a0700e0127ba15d1d52dd742097f821cd9c65939303a44d970465040a297"
 dependencies = [
  "error-code",
- "str-buf",
- "winapi",
 ]
 
 [[package]]
@@ -732,21 +899,37 @@ dependencies = [
 
 [[package]]
 name = "clipboard_wayland"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8134163bd07c47ae3cc29babc42c255fdb315facc790950ae2d0e561ea6f2ec0"
+checksum = "003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8"
 dependencies = [
  "smithay-clipboard",
 ]
 
 [[package]]
 name = "clipboard_x11"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cf45b436634fee64c6d3981639b46a87eeea3c64e422643273fcefd1baef56c"
+checksum = "4274ea815e013e0f9f04a2633423e14194e408a0576c943ce3d14ca56c50031c"
 dependencies = [
  "thiserror",
- "x11rb 0.13.0",
+ "x11rb",
+]
+
+[[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]]
@@ -758,7 +941,7 @@ dependencies = [
  "bitflags 1.3.2",
  "block",
  "cocoa-foundation",
- "core-foundation",
+ "core-foundation 0.9.4",
  "core-graphics 0.23.1",
  "foreign-types 0.5.0",
  "libc",
@@ -773,7 +956,7 @@ checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7"
 dependencies = [
  "bitflags 1.3.2",
  "block",
- "core-foundation",
+ "core-foundation 0.9.4",
  "core-graphics-types",
  "libc",
  "objc",
@@ -796,10 +979,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
-name = "com-rs"
-version = "0.2.1"
+name = "colorchoice"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "com"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e17887fd17353b65b1b2ef1c526c83e26cd72e74f598a8dc1bee13a48f3d9f6"
+dependencies = [
+ "com_macros",
+]
+
+[[package]]
+name = "com_macros"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5"
+dependencies = [
+ "com_macros_support",
+ "proc-macro2",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "com_macros_support"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "combine"
+version = "4.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+dependencies = [
+ "bytes",
+ "memchr",
+]
 
 [[package]]
 name = "concurrent-queue"
@@ -811,29 +1035,77 @@ dependencies = [
 ]
 
 [[package]]
+name = "const-random"
+version = "0.1.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a"
+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 = "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",
+ "core-foundation-sys 0.8.6",
  "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",
+ "core-foundation 0.9.4",
  "core-graphics-types",
  "foreign-types 0.3.2",
  "libc",
@@ -846,7 +1118,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212"
 dependencies = [
  "bitflags 1.3.2",
- "core-foundation",
+ "core-foundation 0.9.4",
  "core-graphics-types",
  "foreign-types 0.5.0",
  "libc",
@@ -859,59 +1131,109 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
 dependencies = [
  "bitflags 1.3.2",
- "core-foundation",
+ "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",
  "libc",
+ "objc",
 ]
 
 [[package]]
 name = "cosmic-config"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "atomicwrites",
  "cosmic-config-derive",
- "dirs 5.0.1",
+ "dirs",
  "iced_futures",
+ "known-folders",
  "notify",
  "once_cell",
  "ron",
  "serde",
+ "xdg",
 ]
 
 [[package]]
 name = "cosmic-config-derive"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "quote",
  "syn 1.0.109",
 ]
 
 [[package]]
+name = "cosmic-files"
+version = "0.1.0"
+source = "git+https://github.com/pop-os/cosmic-files.git#8ab15027a521713850384fa87666bb9974f2666b"
+dependencies = [
+ "chrono",
+ "dirs",
+ "env_logger 0.11.2",
+ "fork",
+ "i18n-embed",
+ "i18n-embed-fl",
+ "image 0.24.9",
+ "lexical-sort",
+ "libcosmic",
+ "log",
+ "mime_guess",
+ "notify",
+ "once_cell",
+ "paste",
+ "rust-embed",
+ "serde",
+ "smol_str",
+ "systemicons",
+ "tokio",
+ "trash",
+]
+
+[[package]]
 name = "cosmic-term"
 version = "0.1.0"
 dependencies = [
  "alacritty_terminal",
+ "cosmic-files",
  "cosmic-text",
- "env_logger",
+ "env_logger 0.10.2",
  "fork",
+ "hex_color",
  "i18n-embed",
  "i18n-embed-fl",
  "indexmap",
  "lazy_static",
+ "lexical-sort",
  "libcosmic",
  "log",
+ "open",
  "palette",
  "paste",
+ "ron",
  "rust-embed",
  "serde",
+ "shlex",
+ "smol_str",
  "tokio",
+ "vergen",
 ]
 
 [[package]]
 name = "cosmic-text"
-version = "0.10.0"
-source = "git+https://github.com/pop-os/cosmic-text.git#db1530c4ec14bcbb290f9c971d8a6197c90e189a"
+version = "0.11.2"
+source = "git+https://github.com/pop-os/cosmic-text.git#2766961af621b9235616e186046f6d14a2f5fbc0"
 dependencies = [
  "bitflags 2.4.2",
  "fontdb",
@@ -923,7 +1245,7 @@ dependencies = [
  "self_cell 1.0.3",
  "swash",
  "sys-locale",
- "ttf-parser",
+ "ttf-parser 0.20.0",
  "unicode-bidi",
  "unicode-linebreak",
  "unicode-script",
@@ -933,7 +1255,7 @@ dependencies = [
 [[package]]
 name = "cosmic-theme"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "almost",
  "cosmic-config",
@@ -955,11 +1277,24 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+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 = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
 dependencies = [
- "cfg-if",
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-epoch",
+ "crossbeam-queue",
+ "crossbeam-utils",
 ]
 
 [[package]]
@@ -991,6 +1326,15 @@ 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"
@@ -1014,9 +1358,9 @@ dependencies = [
 
 [[package]]
 name = "css-color"
-version = "0.2.5"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d101c65424c856131a3cb818da2ddde03500dc3656972269cdf79f018ef77eb4"
+checksum = "42aaeae719fd78ce501d77c6cdf01f7e96f26bcd5617a4903a1c2b97e388543a"
 
 [[package]]
 name = "csscolorparser"
@@ -1030,15 +1374,21 @@ dependencies = [
 
 [[package]]
 name = "ctor"
-version = "0.2.6"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
+checksum = "ad291aa74992b9b7a7e88c38acbbf6ad7e107f1d90ee8775b7bc1fc3394f485c"
 dependencies = [
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[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"
@@ -1046,9 +1396,8 @@ checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
 
 [[package]]
 name = "d3d12"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "bitflags 2.4.2",
  "libloading 0.8.1",
@@ -1057,37 +1406,72 @@ dependencies = [
 
 [[package]]
 name = "darling"
-version = "0.20.3"
+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 = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
 dependencies = [
- "darling_core",
- "darling_macro",
+ "darling_core 0.20.8",
+ "darling_macro 0.20.8",
 ]
 
 [[package]]
 name = "darling_core"
-version = "0.20.3"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
+checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim",
- "syn 2.0.48",
+ "strsim 0.9.3",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.10.0",
+ "syn 2.0.51",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.20.3"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
+checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72"
 dependencies = [
- "darling_core",
+ "darling_core 0.10.2",
  "quote",
- "syn 2.0.48",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+dependencies = [
+ "darling_core 0.20.8",
+ "quote",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1096,8 +1480,8 @@ version = "5.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
- "cfg-if",
- "hashbrown 0.14.3",
+ "cfg-if 1.0.0",
+ "hashbrown",
  "lock_api",
  "once_cell",
  "parking_lot_core 0.9.9",
@@ -1110,6 +1494,25 @@ 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"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
+
+[[package]]
 name = "derivative"
 version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1126,10 +1529,10 @@ version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4e8ef033054e131169b8f0f9a7af8f5533a9436fadf3c500ed547f730f07090d"
 dependencies = [
- "darling",
+ "darling 0.20.8",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1144,43 +1547,44 @@ dependencies = [
 
 [[package]]
 name = "dirs"
-version = "4.0.0"
+version = "5.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
 dependencies = [
- "dirs-sys 0.3.7",
+ "dirs-sys",
 ]
 
 [[package]]
-name = "dirs"
-version = "5.0.1"
+name = "dirs-next"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
 dependencies = [
- "dirs-sys 0.4.1",
+ "cfg-if 1.0.0",
+ "dirs-sys-next",
 ]
 
 [[package]]
 name = "dirs-sys"
-version = "0.3.7"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
 dependencies = [
  "libc",
+ "option-ext",
  "redox_users",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "dirs-sys"
-version = "0.4.1"
+name = "dirs-sys-next"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
 dependencies = [
  "libc",
- "option-ext",
  "redox_users",
- "windows-sys 0.48.0",
+ "winapi",
 ]
 
 [[package]]
@@ -1197,7 +1601,16 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "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",
 ]
 
 [[package]]
@@ -1211,9 +1624,12 @@ dependencies = [
 
 [[package]]
 name = "dlv-list"
-version = "0.3.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
+checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
+dependencies = [
+ "const-random",
+]
 
 [[package]]
 name = "downcast-rs"
@@ -1223,25 +1639,25 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
 [[package]]
 name = "drm"
-version = "0.10.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fb1b703ffbc7ebd216eba7900008049a56ace55580ecb2ee7fa801e8d8be87"
+checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde"
 dependencies = [
  "bitflags 2.4.2",
  "bytemuck",
  "drm-ffi",
  "drm-fourcc",
- "nix 0.27.1",
+ "rustix 0.38.28",
 ]
 
 [[package]]
 name = "drm-ffi"
-version = "0.6.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba7d1c19c4b6270e89d59fb27dc6d02a317c658a8a54e54781e1db9b5947595d"
+checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6"
 dependencies = [
  "drm-sys",
- "nix 0.27.1",
+ "rustix 0.38.28",
 ]
 
 [[package]]
@@ -1252,21 +1668,25 @@ checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4"
 
 [[package]]
 name = "drm-sys"
-version = "0.5.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a4f1c0468062a56cd5705f1e3b5409eb286d5596a2028ec8e947595d7e715ae"
+checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176"
+dependencies = [
+ "libc",
+ "linux-raw-sys 0.6.4",
+]
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "enumflags2"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
 dependencies = [
  "enumflags2_derive",
  "serde",
@@ -1274,13 +1694,23 @@ dependencies = [
 
 [[package]]
 name = "enumflags2_derive"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "env_filter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+dependencies = [
+ "log",
+ "regex",
 ]
 
 [[package]]
@@ -1297,6 +1727,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "env_logger"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c012a26a7f605efc424dd53697843a72be7dc86ad2d01f7814337794a12231d"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
+ "humantime",
+ "log",
+]
+
+[[package]]
 name = "equivalent"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1314,13 +1757,9 @@ dependencies = [
 
 [[package]]
 name = "error-code"
-version = "2.3.1"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
-dependencies = [
- "libc",
- "str-buf",
-]
+checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b"
 
 [[package]]
 name = "etagere"
@@ -1370,6 +1809,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "event-listener"
+version = "5.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7ad6fd685ce13acd6d9541a30f6db6567a7a24c9ffd4ba2955d29e3f22c8b27"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "event-listener-strategy"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1380,16 +1830,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "event-listener-strategy"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+dependencies = [
+ "event-listener 5.1.0",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "exr"
-version = "1.6.4"
+version = "1.72.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "279d3efcc55e19917fff7ab3ddd6c14afb6a90881a0078465196fe2f99d08c56"
+checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4"
 dependencies = [
  "bit_field",
- "flume 0.10.14",
+ "flume",
  "half",
  "lebe",
- "miniz_oxide",
+ "miniz_oxide 0.7.2",
  "rayon-core",
  "smallvec",
  "zune-inflate",
@@ -1431,7 +1891,7 @@ version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
  "redox_syscall 0.4.1",
  "windows-sys 0.52.0",
@@ -1453,7 +1913,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
- "miniz_oxide",
+ "miniz_oxide 0.7.2",
 ]
 
 [[package]]
@@ -1514,26 +1974,10 @@ dependencies = [
 
 [[package]]
 name = "flume"
-version = "0.10.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
-dependencies = [
- "futures-core",
- "futures-sink",
- "nanorand",
- "pin-project",
- "spin",
-]
-
-[[package]]
-name = "flume"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
 dependencies = [
- "futures-core",
- "futures-sink",
- "nanorand",
  "spin",
 ]
 
@@ -1544,26 +1988,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
+name = "font-types"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bd7f3ea17572640b606b35df42cfb6ecdf003704b062580e59918692190b73d"
+
+[[package]]
 name = "fontconfig-parser"
-version = "0.5.3"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "674e258f4b5d2dcd63888c01c68413c51f565e8af99d2f7701c7b81d79ef41c4"
+checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d"
 dependencies = [
- "roxmltree 0.18.1",
+ "roxmltree",
 ]
 
 [[package]]
 name = "fontdb"
-version = "0.16.0"
+version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98b88c54a38407f7352dd2c4238830115a6377741098ffd1f997c813d0e088a6"
+checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3"
 dependencies = [
  "fontconfig-parser",
  "log",
- "memmap2 0.9.3",
+ "memmap2 0.9.4",
  "slotmap",
  "tinyvec",
- "ttf-parser",
+ "ttf-parser 0.20.0",
 ]
 
 [[package]]
@@ -1593,7 +2043,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1610,9 +2060,9 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
 
 [[package]]
 name = "fork"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf2ca97a59201425e7ee4d197c9c4fea282fe87a97d666a580bda889b95b8e88"
+checksum = "60e74d3423998a57e9d906e49252fb79eb4a04d5cdfe188fb1b7ff9fc076a8ed"
 dependencies = [
  "libc",
 ]
@@ -1638,11 +2088,11 @@ dependencies = [
 
 [[package]]
 name = "freedesktop-icons"
-version = "0.2.4"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9d46a9ae065c46efb83854bb10315de6d333bb6f4526ebe320c004dab7857e"
+checksum = "a8ef34245e0540c9a3ce7a28340b98d2c12b75da0d446da4e8224923fcaa0c16"
 dependencies = [
- "dirs 4.0.0",
+ "dirs",
  "once_cell",
  "rust-ini",
  "thiserror",
@@ -1743,7 +2193,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -1777,23 +2227,43 @@ dependencies = [
 ]
 
 [[package]]
-name = "generic-array"
-version = "0.14.7"
+name = "gdk-pixbuf-sys"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
 dependencies = [
- "typenum",
- "version_check",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
 ]
 
 [[package]]
-name = "gethostname"
-version = "0.3.0"
+name = "gdk-sys"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177"
+checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2"
 dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
  "libc",
- "winapi",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
 ]
 
 [[package]]
@@ -1812,11 +2282,19 @@ version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
- "cfg-if",
- "js-sys",
+ "cfg-if 1.0.0",
  "libc",
  "wasi",
- "wasm-bindgen",
+]
+
+[[package]]
+name = "gif"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06"
+dependencies = [
+ "color_quant",
+ "weezl",
 ]
 
 [[package]]
@@ -1830,12 +2308,35 @@ dependencies = [
 ]
 
 [[package]]
+name = "gif"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
+dependencies = [
+ "color_quant",
+ "weezl",
+]
+
+[[package]]
 name = "gimli"
 version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
+name = "gio-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "winapi",
+]
+
+[[package]]
 name = "gl_generator"
 version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1853,6 +2354,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945"
 
 [[package]]
+name = "glib-sys"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
 name = "glow"
 version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1875,8 +2392,8 @@ dependencies = [
 
 [[package]]
 name = "glyphon"
-version = "0.4.1"
-source = "git+https://github.com/jackpot51/glyphon.git#abb70c0fda8cf1a5dfc314c1c778103d7ba951e6"
+version = "0.5.0"
+source = "git+https://github.com/pop-os/glyphon.git?tag=v0.5.0#1b0646ff8f74da92d3be704dfc2257d7f4d7eed8"
 dependencies = [
  "cosmic-text",
  "etagere",
@@ -1885,6 +2402,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "gobject-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
 name = "gpu-alloc"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1905,16 +2433,15 @@ dependencies = [
 
 [[package]]
 name = "gpu-allocator"
-version = "0.23.0"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40fe17c8a05d60c38c0a4e5a3c802f2f1ceb66b76c67d96ffb34bef0475a7fad"
+checksum = "6f56f6318968d03c18e1bcf4857ff88c61157e9da8e47c5f29055d60e1228884"
 dependencies = [
- "backtrace",
  "log",
  "presser",
  "thiserror",
  "winapi",
- "windows 0.51.1",
+ "windows 0.52.0",
 ]
 
 [[package]]
@@ -1925,7 +2452,7 @@ checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
 dependencies = [
  "bitflags 2.4.2",
  "gpu-descriptor-types",
- "hashbrown 0.14.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -1944,6 +2471,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1df00eed8d1f0db937f6be10e46e8072b0671accb504cf0f959c5c52c679f5b9"
 
 [[package]]
+name = "gtk-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722"
+dependencies = [
+ "atk-sys",
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
 name = "guillotiere"
 version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1955,43 +2500,34 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "2.3.1"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "crunchy",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-dependencies = [
- "ahash 0.7.7",
-]
-
-[[package]]
-name = "hashbrown"
 version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.8.7",
+ "ahash",
  "allocator-api2",
 ]
 
 [[package]]
 name = "hassle-rs"
-version = "0.10.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0"
+checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890"
 dependencies = [
- "bitflags 1.3.2",
- "com-rs",
+ "bitflags 2.4.2",
+ "com",
  "libc",
- "libloading 0.7.4",
+ "libloading 0.8.1",
  "thiserror",
  "widestring",
  "winapi",
@@ -2005,9 +2541,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.4"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
+checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60"
 
 [[package]]
 name = "hex"
@@ -2016,6 +2552,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
+name = "hex_color"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d37f101bf4c633f7ca2e4b5e136050314503dd198e78e325ea602c327c484ef0"
+dependencies = [
+ "arrayvec 0.7.4",
+ "rand",
+ "serde",
+]
+
+[[package]]
 name = "hexf-parse"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2046,15 +2593,15 @@ dependencies = [
  "serde",
  "serde_derive",
  "thiserror",
- "toml 0.8.8",
+ "toml 0.8.10",
  "unic-langid",
 ]
 
 [[package]]
 name = "i18n-embed"
-version = "0.13.9"
+version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92a86226a7a16632de6723449ee5fe70bac5af718bc642ee9ca2f0f6e14fa1fa"
+checksum = "94205d95764f5bb9db9ea98fa77f89653365ca748e27161f5bbea2ffd50e459c"
 dependencies = [
  "arc-swap",
  "fluent",
@@ -2074,9 +2621,9 @@ dependencies = [
 
 [[package]]
 name = "i18n-embed-fl"
-version = "0.6.7"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d26a3d3569737dfaac7fc1c4078e6af07471c3060b8e570bcd83cdd5f4685395"
+checksum = "9fc1f8715195dffc4caddcf1cf3128da15fe5d8a137606ea8856c9300047d5a2"
 dependencies = [
  "dashmap",
  "find-crate",
@@ -2088,8 +2635,8 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "strsim",
- "syn 2.0.48",
+ "strsim 0.10.0",
+ "syn 2.0.51",
  "unic-langid",
 ]
 
@@ -2103,13 +2650,36 @@ dependencies = [
  "i18n-config",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys 0.8.6",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
 ]
 
 [[package]]
 name = "iced"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "iced_accessibility",
  "iced_core",
@@ -2117,14 +2687,14 @@ dependencies = [
  "iced_renderer",
  "iced_widget",
  "iced_winit",
- "image",
+ "image 0.24.9",
  "thiserror",
 ]
 
 [[package]]
 name = "iced_accessibility"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "accesskit",
  "accesskit_winit",
@@ -2133,23 +2703,24 @@ dependencies = [
 [[package]]
 name = "iced_core"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "bitflags 1.3.2",
- "instant",
  "log",
  "num-traits",
  "palette",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "serde",
+ "smol_str",
  "thiserror",
+ "web-time",
  "xxhash-rust",
 ]
 
 [[package]]
 name = "iced_futures"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "futures",
  "iced_core",
@@ -2162,7 +2733,7 @@ dependencies = [
 [[package]]
 name = "iced_graphics"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2170,12 +2741,13 @@ dependencies = [
  "glam",
  "half",
  "iced_core",
- "image",
+ "iced_futures",
+ "image 0.24.9",
  "kamadak-exif",
  "log",
  "lyon_path",
  "once_cell",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "rustc-hash",
  "thiserror",
  "unicode-segmentation",
@@ -2185,20 +2757,19 @@ dependencies = [
 [[package]]
 name = "iced_renderer"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "iced_graphics",
  "iced_tiny_skia",
  "iced_wgpu",
  "log",
- "raw-window-handle",
  "thiserror",
 ]
 
 [[package]]
 name = "iced_runtime"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "iced_core",
  "iced_futures",
@@ -2208,7 +2779,7 @@ dependencies = [
 [[package]]
 name = "iced_style"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "iced_core",
  "once_cell",
@@ -2218,25 +2789,24 @@ dependencies = [
 [[package]]
 name = "iced_tiny_skia"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "bytemuck",
  "cosmic-text",
  "iced_graphics",
  "kurbo",
  "log",
- "raw-window-handle",
  "resvg",
  "rustc-hash",
  "softbuffer",
- "tiny-skia 0.11.3",
+ "tiny-skia",
  "xxhash-rust",
 ]
 
 [[package]]
 name = "iced_wgpu"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "bitflags 1.3.2",
  "bytemuck",
@@ -2248,7 +2818,6 @@ dependencies = [
  "log",
  "lyon",
  "once_cell",
- "raw-window-handle",
  "resvg",
  "wgpu",
 ]
@@ -2256,7 +2825,7 @@ dependencies = [
 [[package]]
 name = "iced_widget"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "iced_renderer",
  "iced_runtime",
@@ -2270,7 +2839,7 @@ dependencies = [
 [[package]]
 name = "iced_winit"
 version = "0.12.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "iced_graphics",
  "iced_runtime",
@@ -2281,7 +2850,28 @@ dependencies = [
  "web-sys",
  "winapi",
  "window_clipboard",
- "winit",
+ "winit 0.29.10",
+]
+
+[[package]]
+name = "icrate"
+version = "0.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319"
+dependencies = [
+ "block2 0.3.0",
+ "dispatch",
+ "objc2 0.4.1",
+]
+
+[[package]]
+name = "icrate"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e286f4b975ac6c054971a0600a9b76438b332edace54bff79c71c9d3adfc9772"
+dependencies = [
+ "block2 0.4.0",
+ "objc2 0.5.0",
 ]
 
 [[package]]
@@ -2302,20 +2892,39 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.8"
+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 = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
  "exr",
- "gif",
- "jpeg-decoder",
+ "gif 0.13.1",
+ "jpeg-decoder 0.3.1",
  "num-traits",
- "png",
+ "png 0.17.13",
  "qoi",
- "tiff",
+ "tiff 0.9.1",
 ]
 
 [[package]]
@@ -2326,12 +2935,12 @@ checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284"
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -2360,10 +2969,7 @@ version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
 dependencies = [
- "cfg-if",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
+ "cfg-if 1.0.0",
 ]
 
 [[package]]
@@ -2397,35 +3003,70 @@ dependencies = [
 ]
 
 [[package]]
+name = "is-docker"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
 name = "is-terminal"
-version = "0.4.10"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
  "hermit-abi",
- "rustix 0.38.28",
+ "libc",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
+name = "is-wsl"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
+dependencies = [
+ "is-docker",
+ "once_cell",
+]
+
+[[package]]
 name = "itoa"
 version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
+name = "jni"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
+dependencies = [
+ "cesu8",
+ "cfg-if 1.0.0",
+ "combine",
+ "jni-sys",
+ "log",
+ "thiserror",
+ "walkdir",
+ "windows-sys 0.45.0",
+]
+
+[[package]]
 name = "jni-sys"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
-name = "jobserver"
-version = "0.1.27"
+name = "jpeg-decoder"
+version = "0.1.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
+checksum = "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
 dependencies = [
- "libc",
+ "rayon",
 ]
 
 [[package]]
@@ -2439,9 +3080,9 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.67"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
+checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -2473,6 +3114,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
 
 [[package]]
+name = "known-folders"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4397c789f2709d23cfcb703b316e0766a8d4b17db2d47b0ab096ef6047cae1d8"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "kqueue"
 version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2498,7 +3148,7 @@ version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b"
 dependencies = [
- "arrayvec",
+ "arrayvec 0.7.4",
 ]
 
 [[package]]
@@ -2514,6 +3164,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
 
 [[package]]
+name = "lexical-core"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe"
+dependencies = [
+ "arrayvec 0.5.2",
+ "bitflags 1.3.2",
+ "cfg-if 1.0.0",
+ "ryu",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-sort"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c09e4591611e231daf4d4c685a66cb0410cc1e502027a20ae55f2bb9e997207a"
+dependencies = [
+ "any_ascii",
+]
+
+[[package]]
 name = "libc"
 version = "0.2.151"
 source = "git+https://gitlab.redox-os.org/redox-os/liblibc.git?branch=redox_0.2.151#a6191c5f6f4e1a737eff83728173e2939211a6d2"
@@ -2521,7 +3193,7 @@ source = "git+https://gitlab.redox-os.org/redox-os/liblibc.git?branch=redox_0.2.
 [[package]]
 name = "libcosmic"
 version = "0.1.0"
-source = "git+https://github.com/pop-os/libcosmic.git#efe4ce2f5b514e4d553ab82c0c873dca7585c028"
+source = "git+https://github.com/pop-os/libcosmic.git#a09e76e729895690caac6ac620c212a2e3745d32"
 dependencies = [
  "apply",
  "ashpd",
@@ -2543,6 +3215,7 @@ dependencies = [
  "iced_winit",
  "lazy_static",
  "palette",
+ "rfd",
  "slotmap",
  "taffy",
  "thiserror",
@@ -2555,11 +3228,21 @@ 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",
+ "cfg-if 1.0.0",
  "winapi",
 ]
 
@@ -2569,7 +3252,7 @@ version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "windows-sys 0.48.0",
 ]
 
@@ -2614,6 +3297,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
+name = "linux-raw-sys"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0b5399f6804fbab912acbd8878ed3532d506b7c951b8f9f164ef90fef39e3f4"
+
+[[package]]
 name = "locale_config"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2644,11 +3333,11 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "lru"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7"
+checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
 dependencies = [
- "hashbrown 0.14.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -2677,7 +3366,7 @@ version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "edecfb8d234a2b0be031ab02ebcdd9f3b9ee418fb35e265f7a540a48d197bff9"
 dependencies = [
- "arrayvec",
+ "arrayvec 0.7.4",
  "euclid",
  "num-traits",
 ]
@@ -2720,33 +3409,24 @@ checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
-version = "0.5.10"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
+checksum = "d9b70ca2a6103ac8b665dc150b142ef0e4e89df640c9e6cf295d189c3caebe5a"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "memmap2"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
 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 = "memoffset"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
@@ -2779,10 +3459,45 @@ dependencies = [
 ]
 
 [[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "mime_guess"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+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 = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -2790,6 +3505,19 @@ dependencies = [
 
 [[package]]
 name = "mio"
+version = "0.7.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc"
+dependencies = [
+ "libc",
+ "log",
+ "miow 0.3.7",
+ "ntapi",
+ "winapi",
+]
+
+[[package]]
+name = "mio"
 version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
@@ -2801,6 +3529,27 @@ 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 = "miow"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2817,10 +3566,10 @@ checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b"
 
 [[package]]
 name = "naga"
-version = "0.14.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae585df4b6514cf8842ac0f1ab4992edc975892704835b549cf818dc0191249e"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
+ "arrayvec 0.7.4",
  "bit-set",
  "bitflags 2.4.2",
  "codespan-reporting",
@@ -2836,25 +3585,29 @@ dependencies = [
 ]
 
 [[package]]
-name = "nanorand"
-version = "0.7.0"
+name = "ndk"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
+checksum = "8794322172319b972f528bf90c6b467be0079f1fa82780ffb431088e741a73ab"
 dependencies = [
- "getrandom",
+ "jni-sys",
+ "ndk-sys 0.2.2",
+ "num_enum 0.5.11",
+ "thiserror",
 ]
 
 [[package]]
 name = "ndk"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0"
+checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "jni-sys",
- "ndk-sys",
- "num_enum 0.5.11",
- "raw-window-handle",
+ "log",
+ "ndk-sys 0.5.0+25.2.9519653",
+ "num_enum 0.7.2",
+ "raw-window-handle 0.6.0",
  "thiserror",
 ]
 
@@ -2865,37 +3618,69 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
 
 [[package]]
+name = "ndk-glue"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5caf0c24d51ac1c905c27d4eda4fa0635bbe0de596b8f79235e0b17a4d29385"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "ndk 0.3.0",
+ "ndk-macro",
+ "ndk-sys 0.2.2",
+]
+
+[[package]]
+name = "ndk-macro"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05d1c6307dc424d0f65b9b06e94f88248e6305726b14729fd67a5e47b2dc481d"
+dependencies = [
+ "darling 0.10.2",
+ "proc-macro-crate 0.1.5",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "ndk-sys"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121"
+
+[[package]]
 name = "ndk-sys"
-version = "0.4.1+23.1.7779620"
+version = "0.5.0+25.2.9519653"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3"
+checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691"
 dependencies = [
  "jni-sys",
 ]
 
 [[package]]
 name = "nix"
-version = "0.24.3"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
+checksum = "83450fe6a6142ddd95fb064b746083fc4ef1705fe81f64a64e1d4b39f54a1055"
 dependencies = [
  "bitflags 1.3.2",
- "cfg-if",
+ "cc",
+ "cfg-if 0.1.10",
  "libc",
- "memoffset 0.6.5",
 ]
 
 [[package]]
 name = "nix"
-version = "0.25.1"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
+checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a"
 dependencies = [
- "autocfg",
  "bitflags 1.3.2",
- "cfg-if",
+ "cc",
+ "cfg-if 1.0.0",
  "libc",
- "memoffset 0.6.5",
 ]
 
 [[package]]
@@ -2905,20 +3690,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
 dependencies = [
  "bitflags 1.3.2",
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
  "memoffset 0.7.1",
 ]
 
 [[package]]
-name = "nix"
-version = "0.27.1"
+name = "nom"
+version = "5.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b"
 dependencies = [
- "bitflags 2.4.2",
- "cfg-if",
- "libc",
+ "lexical-core",
+ "memchr",
+ "version_check",
 ]
 
 [[package]]
@@ -2935,12 +3720,21 @@ dependencies = [
  "kqueue",
  "libc",
  "log",
- "mio",
+ "mio 0.8.10",
  "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"
@@ -2950,7 +3744,7 @@ dependencies = [
  "num-complex",
  "num-integer",
  "num-iter",
- "num-rational",
+ "num-rational 0.4.1",
  "num-traits",
 ]
 
@@ -2967,28 +3761,44 @@ dependencies = [
 
 [[package]]
 name = "num-complex"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
 dependencies = [
  "num-traits",
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
 name = "num-integer"
-version = "0.1.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
 [[package]]
 name = "num-iter"
-version = "0.1.43"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -3009,9 +3819,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
  "libm",
@@ -3038,11 +3848,11 @@ dependencies = [
 
 [[package]]
 name = "num_enum"
-version = "0.6.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1"
+checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845"
 dependencies = [
- "num_enum_derive 0.6.1",
+ "num_enum_derive 0.7.2",
 ]
 
 [[package]]
@@ -3051,7 +3861,7 @@ version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -3059,14 +3869,23 @@ dependencies = [
 
 [[package]]
 name = "num_enum_derive"
-version = "0.6.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6"
+checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "num_threads"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
+dependencies = [
+ "libc",
 ]
 
 [[package]]
@@ -3092,31 +3911,43 @@ dependencies = [
 
 [[package]]
 name = "objc-sys"
-version = "0.2.0-beta.2"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7"
+checksum = "c7c71324e4180d0899963fc83d9d241ac39e699609fc1025a850aadac8257459"
 
 [[package]]
 name = "objc2"
-version = "0.3.0-beta.3.patch-leaks.3"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468"
+checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d"
 dependencies = [
- "block2",
  "objc-sys",
- "objc2-encode",
+ "objc2-encode 3.0.0",
 ]
 
 [[package]]
-name = "objc2-encode"
-version = "2.0.0-pre.2"
+name = "objc2"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512"
+checksum = "9a9c7f0d511a4ce26b078183179dca908171cfc69f88986fe36c5138e1834476"
 dependencies = [
  "objc-sys",
+ "objc2-encode 4.0.0",
 ]
 
 [[package]]
+name = "objc2-encode"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666"
+
+[[package]]
+name = "objc2-encode"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ff06a6505cde0766484f38d8479ac8e6d31c66fbc2d5492f65ca8c091456379"
+
+[[package]]
 name = "objc_exception"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3150,6 +3981,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
+name = "open"
+version = "5.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eedff767bc49d336bff300224f73307ae36963c843e38dc9312a22171b012cbc"
+dependencies = [
+ "is-wsl",
+ "libc",
+ "pathdiff",
+]
+
+[[package]]
 name = "option-ext"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3166,12 +4008,12 @@ dependencies = [
 
 [[package]]
 name = "ordered-multimap"
-version = "0.4.3"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a"
+checksum = "a4d6a8c22fc714f0c2373e6091bf6f5e9b37b1bc0b1184874b7e0a4e303d318f"
 dependencies = [
  "dlv-list",
- "hashbrown 0.12.3",
+ "hashbrown",
 ]
 
 [[package]]
@@ -3205,7 +4047,16 @@ dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "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",
 ]
 
 [[package]]
@@ -3214,14 +4065,14 @@ version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7"
 dependencies = [
- "ttf-parser",
+ "ttf-parser 0.20.0",
 ]
 
 [[package]]
 name = "palette"
-version = "0.7.3"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2e2f34147767aa758aa649415b50a69eeb46a67f9dc7db8011eeb3d84b351dc"
+checksum = "ebfc23a4b76642983d57e4ad00bb4504eb30a8ce3c70f4aee1f725610e36d97a"
 dependencies = [
  "approx",
  "fast-srgb8",
@@ -3232,13 +4083,25 @@ dependencies = [
 
 [[package]]
 name = "palette_derive"
-version = "0.7.3"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7db010ec5ff3d4385e4f133916faacd9dad0f6a09394c92d825b3aed310fa0a"
+checksum = "e8890702dbec0bad9116041ae586f84805b13eecd1d8b1df27c29998a9969d6d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
 ]
 
 [[package]]
@@ -3274,7 +4137,7 @@ version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "instant",
  "libc",
  "redox_syscall 0.2.16",
@@ -3288,7 +4151,7 @@ version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
  "redox_syscall 0.4.1",
  "smallvec",
@@ -3302,6 +4165,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
 name = "percent-encoding"
 version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3337,7 +4206,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -3356,26 +4225,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
 
 [[package]]
-name = "pin-project"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
-dependencies = [
- "pin-project-internal",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
-]
-
-[[package]]
 name = "pin-project-lite"
 version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3400,21 +4249,33 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.29"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "png"
+version = "0.16.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
+checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6"
+dependencies = [
+ "bitflags 1.3.2",
+ "crc32fast",
+ "deflate",
+ "miniz_oxide 0.3.7",
+]
 
 [[package]]
 name = "png"
-version = "0.17.11"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
  "fdeflate",
  "flate2",
- "miniz_oxide",
+ "miniz_oxide 0.7.2",
 ]
 
 [[package]]
@@ -3425,7 +4286,7 @@ checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
 dependencies = [
  "autocfg",
  "bitflags 1.3.2",
- "cfg-if",
+ "cfg-if 1.0.0",
  "concurrent-queue",
  "libc",
  "log",
@@ -3435,11 +4296,11 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.3.2"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "545c980a3880efd47b2e262f6a4bb6daad6555cf3367aa9c4e52895f69537a41"
+checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "concurrent-queue",
  "pin-project-lite",
  "rustix 0.38.28",
@@ -3448,6 +4309,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3461,6 +4328,15 @@ 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"
@@ -3470,6 +4346,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit 0.21.1",
+]
+
+[[package]]
 name = "proc-macro-error"
 version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3495,18 +4380,24 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.76"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "profiling"
-version = "1.0.13"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58"
+
+[[package]]
+name = "pure-rust-locales"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d135ede8821cf6376eb7a64148901e1690b788c11ae94dc297ae917dbc91dc0e"
+checksum = "1190fd18ae6ce9e137184f207593877e70f39b015040156b1e05081cdfe3733a"
 
 [[package]]
 name = "qoi"
@@ -3519,9 +4410,9 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.30.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
 ]
@@ -3573,9 +4464,28 @@ checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab"
 
 [[package]]
 name = "rangemap"
-version = "1.4.0"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+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 = "977b1e897f9d764566891689e642653e5ed90c6895106acd005eb4c1d0203991"
+checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41"
+dependencies = [
+ "cty",
+]
 
 [[package]]
 name = "raw-window-handle"
@@ -3584,6 +4494,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
 
 [[package]]
+name = "raw-window-handle"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
+
+[[package]]
 name = "rayon"
 version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3610,6 +4526,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
 
 [[package]]
+name = "read-fonts"
+version = "0.15.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17ea23eedb4d938031b6d4343222444608727a6aa68ec355e13588d9947ffe92"
+dependencies = [
+ "font-types",
+]
+
+[[package]]
 name = "redox_syscall"
 version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3649,9 +4574,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -3661,9 +4586,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -3688,18 +4613,42 @@ version = "0.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cadccb3d99a9efb8e5e00c16fbb732cbe400db2ec7fc004697ee7d97d86cf1f4"
 dependencies = [
- "gif",
- "jpeg-decoder",
+ "gif 0.12.0",
+ "jpeg-decoder 0.3.1",
  "log",
  "pico-args",
- "png",
+ "png 0.17.13",
  "rgb",
  "svgtypes",
- "tiny-skia 0.11.3",
+ "tiny-skia",
  "usvg",
 ]
 
 [[package]]
+name = "rfd"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0d8ab342bcc5436e04d3a4c1e09e17d74958bfaddf8d5fad6f85607df0f994f"
+dependencies = [
+ "ashpd",
+ "block",
+ "dispatch",
+ "glib-sys",
+ "gobject-sys",
+ "gtk-sys",
+ "js-sys",
+ "log",
+ "objc",
+ "objc-foundation",
+ "objc_id",
+ "raw-window-handle 0.5.2",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "rgb"
 version = "0.8.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3722,24 +4671,15 @@ dependencies = [
 
 [[package]]
 name = "roxmltree"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "862340e351ce1b271a378ec53f304a5558f7db87f3769dc655a8f6ecbb68b302"
-dependencies = [
- "xmlparser",
-]
-
-[[package]]
-name = "roxmltree"
 version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
 
 [[package]]
 name = "rust-embed"
-version = "6.8.1"
+version = "8.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a36224c3276f8c4ebc8c20f158eca7ca4359c8db89991c4925132aaaf6702661"
+checksum = "fb78f46d0066053d16d4ca7b898e9343bc3530f71c61d5ad84cd404ada068745"
 dependencies = [
  "rust-embed-impl",
  "rust-embed-utils",
@@ -3748,22 +4688,22 @@ dependencies = [
 
 [[package]]
 name = "rust-embed-impl"
-version = "6.8.1"
+version = "8.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49b94b81e5b2c284684141a2fb9e2a31be90638caf040bf9afbc5a0416afe1ac"
+checksum = "b91ac2a3c6c0520a3fb3dd89321177c3c692937c4eb21893378219da10c44fc8"
 dependencies = [
  "proc-macro2",
  "quote",
  "rust-embed-utils",
- "syn 2.0.48",
+ "syn 2.0.51",
  "walkdir",
 ]
 
 [[package]]
 name = "rust-embed-utils"
-version = "7.8.1"
+version = "8.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d38ff6bf570dc3bb7100fce9f7b60c33fa71d80e88da3f2580df4ff2bdded74"
+checksum = "86f69089032567ffff4eada41c573fc43ff466c7db7c5688b2e7969584345581"
 dependencies = [
  "sha2",
  "walkdir",
@@ -3771,11 +4711,11 @@ dependencies = [
 
 [[package]]
 name = "rust-ini"
-version = "0.18.0"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
+checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "ordered-multimap",
 ]
 
@@ -3831,6 +4771,22 @@ 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"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
 name = "rustybuzz"
 version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3840,7 +4796,7 @@ dependencies = [
  "bytemuck",
  "libm",
  "smallvec",
- "ttf-parser",
+ "ttf-parser 0.20.0",
  "unicode-bidi-mirroring",
  "unicode-ccc",
  "unicode-properties",
@@ -3848,6 +4804,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+
+[[package]]
 name = "same-file"
 version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3863,6 +4825,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
 
 [[package]]
+name = "scoped_threadpool"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
+
+[[package]]
 name = "scopeguard"
 version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3870,14 +4838,15 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sctk-adwaita"
-version = "0.5.4"
-source = "git+https://github.com/pop-os/sctk-adwaita?branch=wayland-resize#da85380dfb8f0c13aed51c5bddaad0ba3654cb1f"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82b2eaf3a5b264a521b988b2e73042e742df700c4f962cde845d1541adb46550"
 dependencies = [
  "ab_glyph",
  "log",
- "memmap2 0.5.10",
- "smithay-client-toolkit 0.16.1",
- "tiny-skia 0.8.4",
+ "memmap2 0.9.4",
+ "smithay-client-toolkit 0.18.1",
+ "tiny-skia",
 ]
 
 [[package]]
@@ -3897,22 +4866,22 @@ checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
 
 [[package]]
 name = "serde"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -3923,7 +4892,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -3941,7 +4910,7 @@ version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "cpufeatures",
  "digest",
 ]
@@ -3952,12 +4921,18 @@ version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "cpufeatures",
  "digest",
 ]
 
 [[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
 name = "signal-hook"
 version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4023,27 +4998,28 @@ checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "smithay-client-toolkit"
-version = "0.16.1"
-source = "git+https://github.com/pop-os/client-toolkit?branch=wayland-resize#515820fc86cf8cb3ac8d087dc6c87852767627ca"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4750c76fd5d3ac95fa3ed80fe667d6a3d8590a960e5b575b98eea93339a80b80"
 dependencies = [
+ "andrew",
  "bitflags 1.3.2",
- "calloop 0.10.6",
- "dlib",
+ "calloop 0.6.5",
+ "dlib 0.4.2",
  "lazy_static",
  "log",
- "memmap2 0.5.10",
- "nix 0.24.3",
- "pkg-config",
- "wayland-client 0.29.5",
- "wayland-cursor 0.29.5",
- "wayland-protocols 0.29.5",
+ "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.0"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60e3d9941fa3bacf7c2bf4b065304faa14164151254cd16ce1b1bc8fc381600f"
+checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
 dependencies = [
  "bitflags 2.4.2",
  "calloop 0.12.4",
@@ -4051,31 +5027,40 @@ dependencies = [
  "cursor-icon",
  "libc",
  "log",
- "memmap2 0.9.3",
+ "memmap2 0.9.4",
  "rustix 0.38.28",
  "thiserror",
  "wayland-backend",
- "wayland-client 0.31.1",
+ "wayland-client 0.31.2",
  "wayland-csd-frame",
- "wayland-cursor 0.31.0",
- "wayland-protocols 0.31.0",
+ "wayland-cursor 0.31.1",
+ "wayland-protocols 0.31.2",
  "wayland-protocols-wlr",
- "wayland-scanner 0.31.0",
+ "wayland-scanner 0.31.1",
  "xkeysym",
 ]
 
 [[package]]
 name = "smithay-clipboard"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bb62b280ce5a5cba847669933a0948d00904cf83845c944eae96a4738cea1a6"
+checksum = "c091e7354ea8059d6ad99eace06dd13ddeedbb0ac72d40a9a6e7ff790525882d"
 dependencies = [
  "libc",
- "smithay-client-toolkit 0.18.0",
+ "smithay-client-toolkit 0.18.1",
  "wayland-backend",
 ]
 
 [[package]]
+name = "smol_str"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6845563ada680337a52d43bb0b29f396f2d911616f6573012645b9e3d048a49"
+dependencies = [
+ "serde",
+]
+
+[[package]]
 name = "socket2"
 version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4087,42 +5072,42 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "softbuffer"
-version = "0.3.3"
-source = "git+https://github.com/pop-os/softbuffer?tag=v0.3-cosmic#6f0371ccece51d124c6c5d37082189df0dc5f9ba"
+version = "0.4.1"
+source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#6e75b1ad7e98397d37cb187886d05969bc480995"
 dependencies = [
  "as-raw-xcb-connection",
  "bytemuck",
- "cfg_aliases",
- "cocoa",
+ "cfg_aliases 0.2.0",
+ "cocoa 0.25.0",
  "core-graphics 0.23.1",
  "drm",
  "fastrand 2.0.1",
  "foreign-types 0.5.0",
  "js-sys",
  "log",
- "memmap2 0.9.3",
+ "memmap2 0.9.4",
  "objc",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "redox_syscall 0.4.1",
  "rustix 0.38.28",
  "tiny-xlib",
  "wasm-bindgen",
  "wayland-backend",
- "wayland-client 0.31.1",
+ "wayland-client 0.31.2",
  "wayland-sys 0.31.1",
  "web-sys",
- "windows-sys 0.48.0",
- "x11rb 0.12.0",
+ "windows-sys 0.52.0",
+ "x11rb",
 ]
 
 [[package]]
@@ -4136,12 +5121,11 @@ dependencies = [
 
 [[package]]
 name = "spirv"
-version = "0.2.0+1.5.4"
+version = "0.3.0+sdk-1.3.268.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
+checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844"
 dependencies = [
- "bitflags 1.3.2",
- "num-traits",
+ "bitflags 2.4.2",
 ]
 
 [[package]]
@@ -4151,12 +5135,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
-name = "str-buf"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
-
-[[package]]
 name = "strict-num"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4167,6 +5145,12 @@ dependencies = [
 
 [[package]]
 name = "strsim"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
+
+[[package]]
+name = "strsim"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
@@ -4189,10 +5173,11 @@ dependencies = [
 
 [[package]]
 name = "swash"
-version = "0.1.8"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b7c73c813353c347272919aa1af2885068b05e625e5532b43049e4f641ae77f"
+checksum = "d06ff4664af8923625604261c645f5c4cc610cc83c84bec74b50d76237089de7"
 dependencies = [
+ "read-fonts",
  "yazi",
  "zeno",
 ]
@@ -4210,9 +5195,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.51"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4229,23 +5214,57 @@ dependencies = [
 ]
 
 [[package]]
+name = "system-deps"
+version = "6.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
+dependencies = [
+ "cfg-expr",
+ "heck",
+ "pkg-config",
+ "toml 0.8.10",
+ "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"
 dependencies = [
- "arrayvec",
+ "arrayvec 0.7.4",
  "grid",
  "num-traits",
  "slotmap",
 ]
 
 [[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[package]]
 name = "tempfile"
 version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "fastrand 2.0.1",
  "redox_syscall 0.4.1",
  "rustix 0.38.28",
@@ -4263,22 +5282,33 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "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",
 ]
 
 [[package]]
@@ -4288,55 +5318,72 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
 dependencies = [
  "flate2",
- "jpeg-decoder",
+ "jpeg-decoder 0.3.1",
  "weezl",
 ]
 
 [[package]]
-name = "tiny-skia"
-version = "0.8.4"
+name = "time"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
- "arrayref",
- "arrayvec",
- "bytemuck",
- "cfg-if",
- "png",
- "tiny-skia-path 0.8.4",
+ "deranged",
+ "itoa",
+ "libc",
+ "num-conv",
+ "num_threads",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
 ]
 
 [[package]]
-name = "tiny-skia"
-version = "0.11.3"
+name = "time-core"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6a067b809476893fce6a254cf285850ff69c847e6cfbade6a20b655b6c7e80d"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "time-macros"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
- "arrayref",
- "arrayvec",
- "bytemuck",
- "cfg-if",
- "log",
- "png",
- "tiny-skia-path 0.11.3",
+ "num-conv",
+ "time-core",
 ]
 
 [[package]]
-name = "tiny-skia-path"
-version = "0.8.4"
+name = "tiny-keccak"
+version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "tiny-skia"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
 dependencies = [
  "arrayref",
+ "arrayvec 0.7.4",
  "bytemuck",
- "strict-num",
+ "cfg-if 1.0.0",
+ "log",
+ "png 0.17.13",
+ "tiny-skia-path",
 ]
 
 [[package]]
 name = "tiny-skia-path"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de35e8a90052baaaf61f171680ac2f8e925a1e43ea9d2e3a00514772250e541"
+checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
 dependencies = [
  "arrayref",
  "bytemuck",
@@ -4381,18 +5428,18 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.35.1"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
  "backtrace",
  "bytes",
  "libc",
- "mio",
+ "mio 0.8.10",
  "num_cpus",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.5",
+ "socket2 0.5.6",
  "tracing",
  "windows-sys 0.48.0",
 ]
@@ -4408,14 +5455,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.21.0",
+ "toml_edit 0.22.6",
 ]
 
 [[package]]
@@ -4435,20 +5482,31 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
  "indexmap",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.40",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.21.0"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.2",
 ]
 
 [[package]]
@@ -4470,7 +5528,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -4483,6 +5541,28 @@ dependencies = [
 ]
 
 [[package]]
+name = "trash"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c658458d46d9d5a153a3b5cdd88d8579ad50d4fb85d53961e4526c8fc7c55a57"
+dependencies = [
+ "chrono",
+ "libc",
+ "log",
+ "objc",
+ "once_cell",
+ "scopeguard",
+ "url",
+ "windows 0.44.0",
+]
+
+[[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"
@@ -4534,6 +5614,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "unicase"
+version = "2.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
 name = "unicode-bidi"
 version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4565,9 +5654,9 @@ checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
@@ -4580,15 +5669,15 @@ checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
 
 [[package]]
 name = "unicode-script"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc"
+checksum = "ad8d71f5726e5f285a935e9fe8edfd53f0491eb6e9a5774097fdabee7cd8c9cd"
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-vo"
@@ -4646,7 +5735,7 @@ dependencies = [
  "imagesize",
  "kurbo",
  "log",
- "roxmltree 0.19.0",
+ "roxmltree",
  "simplecss",
  "siphasher",
  "svgtypes",
@@ -4678,7 +5767,7 @@ dependencies = [
  "rctree",
  "strict-num",
  "svgtypes",
- "tiny-skia-path 0.11.3",
+ "tiny-skia-path",
 ]
 
 [[package]]
@@ -4688,10 +5777,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
-name = "vec_map"
-version = "0.8.2"
+name = "vergen"
+version = "8.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+checksum = "e27d6bdd219887a9eadd19e1c34f32e47fa332301184935c6d9bca26f3cca525"
+dependencies = [
+ "anyhow",
+ "cfg-if 1.0.0",
+ "rustversion",
+ "time",
+]
+
+[[package]]
+name = "version-compare"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
 
 [[package]]
 name = "version_check"
@@ -4747,36 +5848,36 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.90"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
+checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "wasm-bindgen-macro",
 ]
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.90"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
+checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.40"
+version = "0.4.41"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
+checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "js-sys",
  "wasm-bindgen",
  "web-sys",
@@ -4784,9 +5885,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.90"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
+checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -4794,22 +5895,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.90"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
+checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.90"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
+checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
 
 [[package]]
 name = "wasm-timer"
@@ -4828,13 +5929,13 @@ dependencies = [
 
 [[package]]
 name = "wayland-backend"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19152ddd73f45f024ed4534d9ca2594e0ef252c1847695255dae47f34df9fbe4"
+checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
 dependencies = [
  "cc",
  "downcast-rs",
- "nix 0.26.4",
+ "rustix 0.38.28",
  "scoped-tls",
  "smallvec",
  "wayland-sys 0.31.1",
@@ -4842,42 +5943,42 @@ dependencies = [
 
 [[package]]
 name = "wayland-client"
-version = "0.29.5"
+version = "0.28.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715"
+checksum = "e3ab332350e502f159382201394a78e3cc12d0f04db863429260164ea40e0355"
 dependencies = [
  "bitflags 1.3.2",
  "downcast-rs",
  "libc",
- "nix 0.24.3",
+ "nix 0.20.0",
  "scoped-tls",
  "wayland-commons",
- "wayland-scanner 0.29.5",
- "wayland-sys 0.29.5",
+ "wayland-scanner 0.28.6",
+ "wayland-sys 0.28.6",
 ]
 
 [[package]]
 name = "wayland-client"
-version = "0.31.1"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3"
+checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
 dependencies = [
  "bitflags 2.4.2",
- "nix 0.26.4",
+ "rustix 0.38.28",
  "wayland-backend",
- "wayland-scanner 0.31.0",
+ "wayland-scanner 0.31.1",
 ]
 
 [[package]]
 name = "wayland-commons"
-version = "0.29.5"
+version = "0.28.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902"
+checksum = "a21817947c7011bbd0a27e11b17b337bfd022e8544b071a2641232047966fbda"
 dependencies = [
- "nix 0.24.3",
+ "nix 0.20.0",
  "once_cell",
  "smallvec",
- "wayland-sys 0.29.5",
+ "wayland-sys 0.28.6",
 ]
 
 [[package]]
@@ -4893,48 +5994,61 @@ dependencies = [
 
 [[package]]
 name = "wayland-cursor"
-version = "0.29.5"
+version = "0.28.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661"
+checksum = "be610084edd1586d45e7bdd275fe345c7c1873598caa464c4fb835dee70fa65a"
 dependencies = [
- "nix 0.24.3",
- "wayland-client 0.29.5",
+ "nix 0.20.0",
+ "wayland-client 0.28.6",
  "xcursor",
 ]
 
 [[package]]
 name = "wayland-cursor"
-version = "0.31.0"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a44aa20ae986659d6c77d64d808a046996a932aa763913864dc40c359ef7ad5b"
+checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
 dependencies = [
- "nix 0.26.4",
- "wayland-client 0.31.1",
+ "rustix 0.38.28",
+ "wayland-client 0.31.2",
  "xcursor",
 ]
 
 [[package]]
 name = "wayland-protocols"
-version = "0.29.5"
+version = "0.28.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6"
+checksum = "286620ea4d803bacf61fa087a4242ee316693099ee5a140796aaba02b29f861f"
 dependencies = [
  "bitflags 1.3.2",
- "wayland-client 0.29.5",
+ "wayland-client 0.28.6",
  "wayland-commons",
- "wayland-scanner 0.29.5",
+ "wayland-scanner 0.28.6",
 ]
 
 [[package]]
 name = "wayland-protocols"
-version = "0.31.0"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e253d7107ba913923dc253967f35e8561a3c65f914543e46843c88ddd729e21c"
+checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
  "bitflags 2.4.2",
  "wayland-backend",
- "wayland-client 0.31.1",
- "wayland-scanner 0.31.0",
+ "wayland-client 0.31.2",
+ "wayland-scanner 0.31.1",
+]
+
+[[package]]
+name = "wayland-protocols-plasma"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479"
+dependencies = [
+ "bitflags 2.4.2",
+ "wayland-backend",
+ "wayland-client 0.31.2",
+ "wayland-protocols 0.31.2",
+ "wayland-scanner 0.31.1",
 ]
 
 [[package]]
@@ -4945,16 +6059,16 @@ checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
 dependencies = [
  "bitflags 2.4.2",
  "wayland-backend",
- "wayland-client 0.31.1",
- "wayland-protocols 0.31.0",
- "wayland-scanner 0.31.0",
+ "wayland-client 0.31.2",
+ "wayland-protocols 0.31.2",
+ "wayland-scanner 0.31.1",
 ]
 
 [[package]]
 name = "wayland-scanner"
-version = "0.29.5"
+version = "0.28.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
+checksum = "ce923eb2deb61de332d1f356ec7b6bf37094dc5573952e1c8936db03b54c03f1"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4963,9 +6077,9 @@ dependencies = [
 
 [[package]]
 name = "wayland-scanner"
-version = "0.31.0"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c"
+checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
 dependencies = [
  "proc-macro2",
  "quick-xml",
@@ -4974,11 +6088,11 @@ dependencies = [
 
 [[package]]
 name = "wayland-sys"
-version = "0.29.5"
+version = "0.28.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4"
+checksum = "d841fca9aed7febf9bed2e9796c49bf58d4152ceda8ac949ebe00868d8f0feb8"
 dependencies = [
- "dlib",
+ "dlib 0.5.2",
  "lazy_static",
  "pkg-config",
 ]
@@ -4989,7 +6103,7 @@ version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
 dependencies = [
- "dlib",
+ "dlib 0.5.2",
  "log",
  "once_cell",
  "pkg-config",
@@ -4997,9 +6111,19 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "web-time"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -5007,25 +6131,24 @@ dependencies = [
 
 [[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "wgpu"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30e7d227c9f961f2061c26f4cb0fbd4df0ef37e056edd0931783599d6c94ef24"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
- "arrayvec",
- "cfg-if",
- "flume 0.11.0",
+ "arrayvec 0.7.4",
+ "cfg-if 1.0.0",
+ "cfg_aliases 0.1.1",
  "js-sys",
  "log",
  "naga",
  "parking_lot 0.12.1",
  "profiling",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "smallvec",
  "static_assertions",
  "wasm-bindgen",
@@ -5038,19 +6161,21 @@ dependencies = [
 
 [[package]]
 name = "wgpu-core"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef91c1d62d1e9e81c79e600131a258edf75c9531cbdbde09c44a011a47312726"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
- "arrayvec",
+ "arrayvec 0.7.4",
  "bit-vec",
  "bitflags 2.4.2",
+ "cfg_aliases 0.1.1",
  "codespan-reporting",
+ "indexmap",
  "log",
  "naga",
+ "once_cell",
  "parking_lot 0.12.1",
  "profiling",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "rustc-hash",
  "smallvec",
  "thiserror",
@@ -5061,16 +6186,16 @@ dependencies = [
 
 [[package]]
 name = "wgpu-hal"
-version = "0.18.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b84ecc802da3eb67b4cf3dd9ea6fe45bbb47ef13e6c49c5c3240868a9cc6cdd9"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "android_system_properties",
- "arrayvec",
+ "arrayvec 0.7.4",
  "ash",
  "bit-set",
  "bitflags 2.4.2",
  "block",
+ "cfg_aliases 0.1.1",
  "core-graphics-types",
  "d3d12",
  "glow",
@@ -5091,7 +6216,7 @@ dependencies = [
  "parking_lot 0.12.1",
  "profiling",
  "range-alloc",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "renderdoc-sys",
  "rustc-hash",
  "smallvec",
@@ -5104,9 +6229,8 @@ dependencies = [
 
 [[package]]
 name = "wgpu-types"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d5ed5f0edf0de351fe311c53304986315ce866f394a2e6df0c4b3c70774bcdd"
+version = "0.19.0"
+source = "git+https://github.com/gfx-rs/wgpu?rev=20fda69#20fda698341efbdc870b8027d6d49f5bf3f36109"
 dependencies = [
  "bitflags 2.4.2",
  "js-sys",
@@ -5145,15 +6269,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "winapi-wsapoll"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "winapi-x86_64-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5161,15 +6276,15 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "window_clipboard"
-version = "0.3.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63287c9c4396ccf5346d035a9b0fcaead9e18377637f5eaa78b7ac65c873ff7d"
+checksum = "f6d692d46038c433f9daee7ad8757e002a4248c20b0a3fbc991d99521d3bcb6d"
 dependencies = [
  "clipboard-win",
  "clipboard_macos",
  "clipboard_wayland",
  "clipboard_x11",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "thiserror",
 ]
 
@@ -5179,35 +6294,44 @@ version = "0.44.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b"
 dependencies = [
+ "windows-targets 0.42.2",
+]
+
+[[package]]
+name = "windows"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+dependencies = [
  "windows-implement",
  "windows-interface",
- "windows-targets 0.42.2",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "windows"
-version = "0.51.1"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
  "windows-core",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.3",
 ]
 
 [[package]]
 name = "windows-core"
-version = "0.51.1"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.48.5",
+ "windows-targets 0.52.3",
 ]
 
 [[package]]
 name = "windows-implement"
-version = "0.44.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ce87ca8e3417b02dc2a8a22769306658670ec92d78f1bd420d6310a67c245c6"
+checksum = "5e2ee588991b9e7e6c8338edf3333fbe4da35dc72092643958ebb43f0ab2c49c"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5216,9 +6340,9 @@ dependencies = [
 
 [[package]]
 name = "windows-interface"
-version = "0.44.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "853f69a591ecd4f810d29f17e902d40e349fb05b0b11fff63b08b826bfe39c7f"
+checksum = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5249,7 +6373,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.3",
 ]
 
 [[package]]
@@ -5284,17 +6408,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.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",
 ]
 
 [[package]]
@@ -5311,9 +6435,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -5329,9 +6453,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -5347,9 +6471,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -5365,9 +6489,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -5383,9 +6507,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -5401,9 +6525,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -5419,79 +6543,116 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6"
 
 [[package]]
 name = "winit"
-version = "0.28.6"
-source = "git+https://github.com/pop-os/winit.git?branch=master#c6ad672264b2e320cd15a531f67e133d9ecd39bf"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79610794594d5e86be473ef7763f604f2159cbac8c94debd00df8fb41e86c2f8"
 dependencies = [
- "android-activity",
  "bitflags 1.3.2",
- "cfg_aliases",
- "core-foundation",
+ "cocoa 0.24.1",
+ "core-foundation 0.9.4",
  "core-graphics 0.22.3",
+ "core-video-sys",
  "dispatch",
  "instant",
+ "lazy_static",
  "libc",
  "log",
- "mio",
- "ndk",
- "objc2",
+ "mio 0.7.14",
+ "mio-misc",
+ "ndk 0.3.0",
+ "ndk-glue",
+ "ndk-sys 0.2.2",
+ "objc",
+ "parking_lot 0.11.2",
+ "percent-encoding",
+ "raw-window-handle 0.3.4",
+ "scopeguard",
+ "smithay-client-toolkit 0.12.3",
+ "wayland-client 0.28.6",
+ "winapi",
+ "x11-dl",
+]
+
+[[package]]
+name = "winit"
+version = "0.29.10"
+source = "git+https://github.com/pop-os/winit.git?branch=winit-0.29#bdc66109acc85c912264c9e4b864520345bdb45f"
+dependencies = [
+ "ahash",
+ "android-activity",
+ "atomic-waker",
+ "bitflags 2.4.2",
+ "bytemuck",
+ "calloop 0.12.4",
+ "cfg_aliases 0.1.1",
+ "core-foundation 0.9.4",
+ "core-graphics 0.23.1",
+ "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",
+ "objc2 0.4.1",
  "once_cell",
  "orbclient",
  "percent-encoding",
- "raw-window-handle",
+ "raw-window-handle 0.6.0",
  "redox_syscall 0.3.5",
+ "rustix 0.38.28",
  "sctk-adwaita",
- "smithay-client-toolkit 0.16.1",
+ "smithay-client-toolkit 0.18.1",
+ "smol_str",
+ "unicode-segmentation",
  "wasm-bindgen",
- "wayland-client 0.29.5",
- "wayland-commons",
- "wayland-protocols 0.29.5",
- "wayland-scanner 0.29.5",
+ "wasm-bindgen-futures",
+ "wayland-backend",
+ "wayland-client 0.31.2",
+ "wayland-protocols 0.31.2",
+ "wayland-protocols-plasma",
  "web-sys",
- "windows-sys 0.45.0",
+ "web-time",
+ "windows-sys 0.48.0",
  "x11-dl",
+ "x11rb",
+ "xkbcommon-dl",
 ]
 
 [[package]]
 name = "winnow"
-version = "0.5.34"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
-name = "x11-dl"
-version = "2.21.0"
+name = "winnow"
+version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
+checksum = "7a4191c47f15cc3ec71fcb4913cb83d58def65dd3787610213c649283b5ce178"
 dependencies = [
- "libc",
- "once_cell",
- "pkg-config",
+ "memchr",
 ]
 
 [[package]]
-name = "x11rb"
-version = "0.12.0"
+name = "x11-dl"
+version = "2.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a"
+checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
 dependencies = [
- "as-raw-xcb-connection",
- "gethostname 0.3.0",
  "libc",
- "libloading 0.7.4",
- "nix 0.26.4",
  "once_cell",
- "winapi",
- "winapi-wsapoll",
- "x11rb-protocol 0.12.0",
+ "pkg-config",
 ]
 
 [[package]]
@@ -5500,18 +6661,13 @@ version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a"
 dependencies = [
- "gethostname 0.4.3",
+ "as-raw-xcb-connection",
+ "gethostname",
+ "libc",
+ "libloading 0.8.1",
+ "once_cell",
  "rustix 0.38.28",
- "x11rb-protocol 0.13.0",
-]
-
-[[package]]
-name = "x11rb-protocol"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc"
-dependencies = [
- "nix 0.26.4",
+ "x11rb-protocol",
 ]
 
 [[package]]
@@ -5534,15 +6690,41 @@ checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
 
 [[package]]
 name = "xdg-home"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd"
+checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
 dependencies = [
- "nix 0.26.4",
+ "libc",
  "winapi",
 ]
 
 [[package]]
+name = "xdg-mime"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87bf7b69bb50588d70a36e467be29d3df3e8c32580276d62eded9738c1a797aa"
+dependencies = [
+ "dirs-next",
+ "glob",
+ "mime",
+ "nom",
+ "unicase",
+]
+
+[[package]]
+name = "xkbcommon-dl"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
+dependencies = [
+ "bitflags 2.4.2",
+ "dlib 0.5.2",
+ "log",
+ "once_cell",
+ "xkeysym",
+]
+
+[[package]]
 name = "xkeysym"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5555,12 +6737,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
 
 [[package]]
-name = "xmlparser"
-version = "0.13.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
-
-[[package]]
 name = "xmlwriter"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5568,9 +6744,9 @@ checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9"
 
 [[package]]
 name = "xxhash-rust"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61"
+checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03"
 
 [[package]]
 name = "yazi"
@@ -5580,9 +6756,9 @@ checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1"
 
 [[package]]
 name = "zbus"
-version = "3.14.1"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948"
+checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6"
 dependencies = [
  "async-broadcast",
  "async-executor",
@@ -5622,11 +6798,11 @@ dependencies = [
 
 [[package]]
 name = "zbus_macros"
-version = "3.14.1"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d"
+checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "regex",
@@ -5668,7 +6844,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.51",
 ]
 
 [[package]]
@@ -5682,9 +6858,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c"
+checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db"
 dependencies = [
  "byteorder",
  "enumflags2",
@@ -5697,11 +6873,11 @@ dependencies = [
 
 [[package]]
 name = "zvariant_derive"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
+checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9"
 dependencies = [
- "proc-macro-crate",
+ "proc-macro-crate 1.3.1",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-term/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-term/package.nix
index a8aba6bff62a..bbd3591e381a 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-term/package.nix
+++ b/nixpkgs/pkgs/by-name/co/cosmic-term/package.nix
@@ -19,31 +19,37 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cosmic-term";
-  version = "0-unstable-2024-01-19";
+  version = "unstable-2024-02-28";
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = pname;
-    rev = "6d519018a070e25db0cd099a2752a7add4d6b138";
-    hash = "sha256-gfvBLrhq6Bz6cQdgiLH5o8vyptOT+q3xwUYoDG6eGTY=";
+    rev = "36477e06dc6d05bd01dc08b3f20e0a6e388d6c7e";
+    hash = "sha256-VkRVfV4sC+5+/8g1FOlBjJCeR/KGb5gP0SWy5bmFo+Y=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "accesskit-0.11.0" = "sha256-xVhe6adUb8VmwIKKjHxwCwOo5Y1p3Or3ylcJJdLDrrE=";
+      "accesskit-0.12.2" = "sha256-ksaYMGT/oug7isQY8/1WD97XDUsX2ShBdabUzxWffYw=";
       "atomicwrites-0.4.2" = "sha256-QZSuGPrJXh+svMeFWqAXoqZQxLq/WfIiamqvjJNVhxA=";
-      "cosmic-config-0.1.0" = "sha256-uo4So9I/jD3LPfigyKwESUdZiK1wqm7rg9wYwyv4uKc=";
-      "cosmic-text-0.10.0" = "sha256-S0GkKUiUsSkL1CZHXhtpQy7Mf5+6fqNuu33RRtxG3mE=";
-      "glyphon-0.4.1" = "sha256-mwJXi63LTBIVFrFcywr/NeOJKfMjQaQkNl3CSdEgrZc=";
+      "cosmic-config-0.1.0" = "sha256-Zyi95zcBAohM1WBropLzJczSIfNNNBK2odB4AmW4h5I=";
+      "cosmic-files-0.1.0" = "sha256-64An0MPgnFgyVlWmtBGBs+IV2z+4vmEY2uRPetZM4/M=";
+      "cosmic-text-0.11.2" = "sha256-Y9i5stMYpx+iqn4y5DJm1O1+3UIGp0/fSsnNq3Zloug=";
+      "d3d12-0.19.0" = "sha256-usrxQXWLGJDjmIdw1LBXtBvX+CchZDvE8fHC0LjvhD4=";
+      "glyphon-0.5.0" = "sha256-j1HrbEpUBqazWqNfJhpyjWuxYAxkvbXzRKeSouUoPWg=";
       "libc-0.2.151" = "sha256-VcNTcLOnVXMlX86yeY0VDfIfKOZyyx/DO1Hbe30BsaI=";
-      "sctk-adwaita-0.5.4" = "sha256-yK0F2w/0nxyKrSiHZbx7+aPNY2vlFs7s8nu/COp2KqQ=";
-      "smithay-client-toolkit-0.16.1" = "sha256-z7EZThbh7YmKzAACv181zaEZmWxTrMkFRzP0nfsHK6c=";
-      "softbuffer-0.3.3" = "sha256-eKYFVr6C1+X6ulidHIu9SP591rJxStxwL9uMiqnXx4k=";
+      "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.28.6" = "sha256-FhW6d2XnXCGJUMoT9EMQew9/OPXiehy/JraeCiVd76M=";
+      "winit-0.29.10" = "sha256-ScTII2AzK3SC8MVeASZ9jhVWsEaGrSQ2BnApTxgfxK4=";
     };
   };
 
+  # 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_SHA = src.rev;
+
   postPatch = ''
     substituteInPlace justfile --replace '#!/usr/bin/env' "#!$(command -v env)"
   '';
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-workspaces-epoch/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-workspaces-epoch/package.nix
index 5ec477b821d3..24d5f056daf0 100644
--- a/nixpkgs/pkgs/by-name/co/cosmic-workspaces-epoch/package.nix
+++ b/nixpkgs/pkgs/by-name/co/cosmic-workspaces-epoch/package.nix
@@ -53,6 +53,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://github.com/pop-os/cosmic-workspaces-epoch";
     description = "Workspaces Epoch for the COSMIC Desktop Environment";
+    mainProgram = "cosmic-workspaces";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ nyanbinary ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/cp/cpu-x/package.nix b/nixpkgs/pkgs/by-name/cp/cpu-x/package.nix
index 8171cfc78f2b..d8db8212ba76 100644
--- a/nixpkgs/pkgs/by-name/cp/cpu-x/package.nix
+++ b/nixpkgs/pkgs/by-name/cp/cpu-x/package.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Free software that gathers information on CPU, motherboard and more";
+    mainProgram = "cpu-x";
     homepage = "https://thetumultuousunicornofdarkness.github.io/CPU-X";
     license = licenses.gpl3Plus;
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/by-name/cr/crossplane-cli/package.nix b/nixpkgs/pkgs/by-name/cr/crossplane-cli/package.nix
index b2ee0084115f..db921e806f29 100644
--- a/nixpkgs/pkgs/by-name/cr/crossplane-cli/package.nix
+++ b/nixpkgs/pkgs/by-name/cr/crossplane-cli/package.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "crossplane-cli";
-  version = "1.15.0";
+  version = "1.15.1";
 
   src = fetchFromGitHub {
     owner = "crossplane";
     repo = "crossplane";
     rev = "v${version}";
-    hash = "sha256-VwnKTeCfCgKlgh+6QO2J4r1ImAq0zlxFFdhTtC95bs0=";
+    hash = "sha256-MuPJjVM8Nxm9PLTE3+7KGwmvXJTLfNj5RCh+/kHR0GM=";
   };
 
   vendorHash = "sha256-+e3NuSCvUgZANDB9LsvlQn3h9+L1NeQeURKDZd21reo=";
diff --git a/nixpkgs/pkgs/by-name/cr/crosswords/package.nix b/nixpkgs/pkgs/by-name/cr/crosswords/package.nix
new file mode 100644
index 000000000000..997152d27c5f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cr/crosswords/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook4
+, desktop-file-utils
+, libadwaita
+, isocodes
+, json-glib
+, libipuz
+}:
+
+stdenv.mkDerivation rec {
+  pname = "crosswords";
+  version = "0.3.12";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "jrb";
+    repo = "crosswords";
+    rev = version;
+    hash = "sha256-3RL2LJdIHmDAjXaxqsE0n5UQMsuBJWEMoyAEoSBemR0=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    libadwaita
+    isocodes
+    json-glib
+    libipuz
+  ];
+
+  meta = with lib; {
+    description = "A Crossword player and editor for GNOME";
+    homepage = "https://gitlab.gnome.org/jrb/crosswords";
+    license = licenses.gpl3Plus;
+    mainProgram = "crosswords";
+    maintainers = with maintainers; [ aleksana ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/cucumber/Gemfile b/nixpkgs/pkgs/by-name/cu/cucumber/Gemfile
index f738129eca4f..f738129eca4f 100644
--- a/nixpkgs/pkgs/development/tools/cucumber/Gemfile
+++ b/nixpkgs/pkgs/by-name/cu/cucumber/Gemfile
diff --git a/nixpkgs/pkgs/by-name/cu/cucumber/Gemfile.lock b/nixpkgs/pkgs/by-name/cu/cucumber/Gemfile.lock
new file mode 100644
index 000000000000..cc2f3d54144d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cu/cucumber/Gemfile.lock
@@ -0,0 +1,45 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    bigdecimal (3.1.7)
+    builder (3.2.4)
+    cucumber (9.2.0)
+      builder (~> 3.2)
+      cucumber-ci-environment (> 9, < 11)
+      cucumber-core (> 13, < 14)
+      cucumber-cucumber-expressions (~> 17.0)
+      cucumber-gherkin (> 24, < 28)
+      cucumber-html-formatter (> 20.3, < 22)
+      cucumber-messages (> 19, < 25)
+      diff-lcs (~> 1.5)
+      mini_mime (~> 1.1)
+      multi_test (~> 1.1)
+      sys-uname (~> 1.2)
+    cucumber-ci-environment (10.0.1)
+    cucumber-core (13.0.1)
+      cucumber-gherkin (>= 27, < 28)
+      cucumber-messages (>= 20, < 23)
+      cucumber-tag-expressions (> 5, < 7)
+    cucumber-cucumber-expressions (17.0.2)
+      bigdecimal
+    cucumber-gherkin (27.0.0)
+      cucumber-messages (>= 19.1.4, < 23)
+    cucumber-html-formatter (21.3.0)
+      cucumber-messages (> 19, < 25)
+    cucumber-messages (22.0.0)
+    cucumber-tag-expressions (6.1.0)
+    diff-lcs (1.5.1)
+    ffi (1.16.3)
+    mini_mime (1.1.5)
+    multi_test (1.1.0)
+    sys-uname (1.2.3)
+      ffi (~> 1.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  cucumber
+
+BUNDLED WITH
+   2.5.6
diff --git a/nixpkgs/pkgs/development/tools/cucumber/gemset.nix b/nixpkgs/pkgs/by-name/cu/cucumber/gemset.nix
index 1f8f35f1098c..c716c0165c9c 100644
--- a/nixpkgs/pkgs/development/tools/cucumber/gemset.nix
+++ b/nixpkgs/pkgs/by-name/cu/cucumber/gemset.nix
@@ -1,4 +1,14 @@
 {
+  bigdecimal = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cq1c29zbkcxgdihqisirhcw76xc768z2zpd5vbccpq0l1lv76g7";
+      type = "gem";
+    };
+    version = "3.1.7";
+  };
   builder = {
     groups = ["default"];
     platforms = [];
@@ -15,20 +25,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gmbbj4s4cv9aifks29q9w9yjcrvihcz1i8sijplwbps7334skv1";
+      sha256 = "19qsfgahkah4k0pajxc04mjn8pig7g4n9nkcarg1nzs2612c29s8";
       type = "gem";
     };
-    version = "9.1.0";
+    version = "9.2.0";
   };
   cucumber-ci-environment = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0a11b6w6khjb7rw7ksxdw4bprmg9gfc8xdrsbgv8767ri891s4lq";
+      sha256 = "0cc6w7dqlmnp59ymi7pyspm3w4m7fn37x6b18pziv62wr373yvmv";
       type = "gem";
     };
-    version = "9.2.0";
+    version = "10.0.1";
   };
   cucumber-core = {
     dependencies = ["cucumber-gherkin" "cucumber-messages" "cucumber-tag-expressions"];
@@ -36,20 +46,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ylxpganbvlzcd4picmgbs060cf0nlpkjc7lqxndyr6xaz2g99y2";
+      sha256 = "1jf5ngxfc1q2y7l2nci3p91gp253aqdhkhazkz0yxq72n6zrszvm";
       type = "gem";
     };
-    version = "12.0.0";
+    version = "13.0.1";
   };
   cucumber-cucumber-expressions = {
+    dependencies = ["bigdecimal"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xyvg7l2y9b9gh682z47zcf1na179n8j7bwfyahp79w8s047660b";
+      sha256 = "0wsczwaqws1hbkirjhl0lh5s5xhc7cpmj2f790lkx10nr85rbpxi";
       type = "gem";
     };
-    version = "17.0.1";
+    version = "17.0.2";
   };
   cucumber-gherkin = {
     dependencies = ["cucumber-messages"];
@@ -57,10 +68,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0in9cn9pza3vylc1mlpc3ivri493ikq7f9pnsjkfr6ahagacnh4i";
+      sha256 = "063p0slf6fvigdn3jynp5pjf9b05byyyi0jhsyapy46hq4984sif";
       type = "gem";
     };
-    version = "26.2.0";
+    version = "27.0.0";
   };
   cucumber-html-formatter = {
     dependencies = ["cucumber-messages"];
@@ -68,10 +79,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1al5cafzbiqd7fhwyvs0xcpjszav0q5816x9r02v3hzri10wvp5s";
+      sha256 = "0wznhl3b8b47zff0yx69828bx33n0vc60kh6110ml0xni7lx8xw1";
       type = "gem";
     };
-    version = "20.4.0";
+    version = "21.3.0";
   };
   cucumber-messages = {
     groups = ["default"];
@@ -88,20 +99,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rmbw044fdy2756ypnqray8abfxqvwrn1jhsdafdbjwihvvsk62f";
+      sha256 = "1g0fl6v1677q71nkaib2g3p03jdzrwgfanpi96srb1743qd54bk1";
       type = "gem";
     };
-    version = "5.0.6";
+    version = "6.1.0";
   };
   diff-lcs = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rwvjahnp7cpmracd8x732rjgnilqv2sx7d1gfrysslc3h039fa9";
+      sha256 = "1znxccz83m4xgpd239nyqxlifdb7m8rlfayk6s259186nkgj6ci7";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.5.1";
   };
   ffi = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/development/tools/cucumber/default.nix b/nixpkgs/pkgs/by-name/cu/cucumber/package.nix
index a7da4ab7d046..a7da4ab7d046 100644
--- a/nixpkgs/pkgs/development/tools/cucumber/default.nix
+++ b/nixpkgs/pkgs/by-name/cu/cucumber/package.nix
diff --git a/nixpkgs/pkgs/by-name/cu/cups-printers/package.nix b/nixpkgs/pkgs/by-name/cu/cups-printers/package.nix
new file mode 100644
index 000000000000..9b5e336316e0
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/cu/cups-printers/package.nix
@@ -0,0 +1,48 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "cups-printers";
+  version = "1.0.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "audiusGmbH";
+    repo = "cups-printers";
+    rev = "refs/tags/${version}";
+    hash = "sha256-HTR9t9ElQmCzJfdWyu+JQ8xBfDNpXl8XtNsJxGSfBXk=";
+  };
+
+  pythonRelaxDeps = [
+    "validators"
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pycups
+    typer
+    validators
+  ] ++ typer.optional-dependencies.all;
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "cups_printers"
+  ];
+
+  meta = with lib; {
+    description = "Tool for interacting with a CUPS server";
+    homepage = "https://github.com/audiusGmbH/cups-printers";
+    changelog = "https://github.com/audiusGmbH/cups-printers/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "cups-printers";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/cy/cyanrip/package.nix b/nixpkgs/pkgs/by-name/cy/cyanrip/package.nix
index 9626224b4f99..e1f1ae1648af 100644
--- a/nixpkgs/pkgs/by-name/cy/cyanrip/package.nix
+++ b/nixpkgs/pkgs/by-name/cy/cyanrip/package.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://github.com/cyanreg/cyanrip";
     description = "Bule-ish CD ripper";
+    mainProgram = "cyanrip";
     license = licenses.lgpl21Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.zane ];
diff --git a/nixpkgs/pkgs/by-name/da/dark-mode-notify/package.nix b/nixpkgs/pkgs/by-name/da/dark-mode-notify/package.nix
index 777400e8057c..51ecb1d38397 100644
--- a/nixpkgs/pkgs/by-name/da/dark-mode-notify/package.nix
+++ b/nixpkgs/pkgs/by-name/da/dark-mode-notify/package.nix
@@ -3,10 +3,13 @@
 , stdenv
 , swift
 , swiftpm
+, swiftPackages
 , darwin
 }:
 
-stdenv.mkDerivation (final: {
+# Use the same stdenv, including clang, as Swift itself
+# Fixes build issues, see https://github.com/NixOS/nixpkgs/pull/296082 and https://github.com/NixOS/nixpkgs/issues/295322
+swiftPackages.stdenv.mkDerivation (final: {
   pname = "dark-mode-notify";
   version = "unstable-2022-07-18";
 
diff --git a/nixpkgs/pkgs/by-name/dd/ddsmt/package.nix b/nixpkgs/pkgs/by-name/dd/ddsmt/package.nix
new file mode 100644
index 000000000000..417824673142
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/dd/ddsmt/package.nix
@@ -0,0 +1,35 @@
+{ lib
+, python3Packages
+, fetchPypi
+}:
+
+let
+  version = "2.0.3";
+in
+python3Packages.buildPythonApplication {
+  pname = "ddsmt";
+  inherit version;
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit version;
+    pname = "ddSMT";
+    hash = "sha256-nmhEG4sUmgpgRUduVTtwDLGPJVKx+dEaPb+KjFRwV2Q=";
+  };
+
+  nativeBuildInputs = with python3Packages; [
+    setuptools
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    gprof2dot
+    progressbar
+  ];
+
+  meta = {
+    description = "A delta debugger for SMT benchmarks in SMT-LIB v2";
+    homepage = "https://ddsmt.readthedocs.io/";
+    license = with lib.licenses; [ gpl3Plus ];
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/de/dep-scan/package.nix b/nixpkgs/pkgs/by-name/de/dep-scan/package.nix
index 48ba5c4c51ae..67f88409d99e 100644
--- a/nixpkgs/pkgs/by-name/de/dep-scan/package.nix
+++ b/nixpkgs/pkgs/by-name/de/dep-scan/package.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "dep-scan";
-  version = "5.0.2";
+  version = "5.2.12";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "owasp-dep-scan";
     repo = "dep-scan";
     rev = "refs/tags/v${version}";
-    hash = "sha256-qiJyGBGxznNF4LNG9fbmjG7wX0odhrUO2LxOWABtLQA=";
+    hash = "sha256-UoppQAokiWBcgTcSmwfoqrDKt/QHYd2NBR3CpNOqI4k=";
   };
 
   postPatch = ''
@@ -26,9 +26,11 @@ python3.pkgs.buildPythonApplication rec {
 
   propagatedBuildInputs = with python3.pkgs; [
     appthreat-vulnerability-db
+    cvss
     defusedxml
     jinja2
     oras
+    packageurl-python
     pdfkit
     pygithub
     pyyaml
diff --git a/nixpkgs/pkgs/by-name/de/dependabot-cli/package.nix b/nixpkgs/pkgs/by-name/de/dependabot-cli/package.nix
index 3cd9b537d515..b5b8eadad45b 100644
--- a/nixpkgs/pkgs/by-name/de/dependabot-cli/package.nix
+++ b/nixpkgs/pkgs/by-name/de/dependabot-cli/package.nix
@@ -55,6 +55,7 @@ buildGoModule {
   meta = with lib; {
     changelog = "https://github.com/dependabot/cli/releases/tag/v${version}";
     description = "A tool for testing and debugging Dependabot update jobs";
+    mainProgram = "dependabot";
     homepage = "https://github.com/dependabot/cli";
     license = licenses.mit;
     maintainers = with maintainers; [ l0b0 ];
diff --git a/nixpkgs/pkgs/by-name/de/deskreen/package.nix b/nixpkgs/pkgs/by-name/de/deskreen/package.nix
index 746f813f2ea0..98f735703e1b 100644
--- a/nixpkgs/pkgs/by-name/de/deskreen/package.nix
+++ b/nixpkgs/pkgs/by-name/de/deskreen/package.nix
@@ -36,7 +36,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   meta = {
     description = "Turn any device into a secondary screen for your computer";
     homepage = "https://deskreen.com";
-    license = lib.licenses.agpl3;
+    license = lib.licenses.agpl3Only;
     mainProgram = "deskreen";
     maintainers = with lib.maintainers; [ leo248 drupol ];
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/de/devenv/Cargo.lock b/nixpkgs/pkgs/by-name/de/devenv/Cargo.lock
new file mode 100644
index 000000000000..c7c39688f5c7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/de/devenv/Cargo.lock
@@ -0,0 +1,2126 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "ansiterm"
+version = "0.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ab587f5395da16dd2e6939adf53dede583221b320cadfb94e02b5b7b9bf24cc"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "anstream"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "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 = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "backtrace-ext"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "537beee3be4a18fb023b570f80e3ae28003db9167a751266b259926e25539d50"
+dependencies = [
+ "backtrace",
+]
+
+[[package]]
+name = "base64"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+
+[[package]]
+name = "bumpalo"
+version = "3.15.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "castaway"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a17ed5635fc8536268e5d4de1e22e81ac34419e5f052d4d51f4e01dcc263fcc"
+dependencies = [
+ "rustversion",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.88"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc"
+
+[[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 = "3.2.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
+dependencies = [
+ "atty",
+ "bitflags 1.3.2",
+ "clap_derive 3.2.25",
+ "clap_lex 0.2.4",
+ "indexmap 1.9.3",
+ "once_cell",
+ "strsim 0.10.0",
+ "termcolor",
+ "textwrap",
+]
+
+[[package]]
+name = "clap"
+version = "4.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da"
+dependencies = [
+ "clap_builder",
+ "clap_derive 4.5.0",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex 0.7.0",
+ "strsim 0.11.0",
+]
+
+[[package]]
+name = "clap_derive"
+version = "3.2.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
+[[package]]
+name = "cli-table"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adfbb116d9e2c4be7011360d0c0bee565712c11e969c9609b25b619366dc379d"
+dependencies = [
+ "cli-table-derive",
+ "csv",
+ "termcolor",
+ "unicode-width",
+]
+
+[[package]]
+name = "cli-table-derive"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2af3bfb9da627b0a6c467624fb7963921433774ed435493b5c08a3053e829ad4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "compact_str"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f"
+dependencies = [
+ "castaway",
+ "cfg-if",
+ "itoa",
+ "ryu",
+ "static_assertions",
+]
+
+[[package]]
+name = "convert_case"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "csv"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
+dependencies = [
+ "csv-core",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "csv-core"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.10.0",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "devenv"
+version = "1.0.1"
+dependencies = [
+ "ansiterm",
+ "clap 4.5.1",
+ "cli-table",
+ "dotlock",
+ "fs2",
+ "include_dir",
+ "indoc",
+ "miette",
+ "nix",
+ "regex",
+ "reqwest",
+ "schematic",
+ "serde",
+ "serde_json",
+ "serde_yaml",
+ "tempdir",
+ "tracing",
+ "which",
+ "whoami",
+ "xdg",
+]
+
+[[package]]
+name = "devenv-run-tests"
+version = "0.1.0"
+dependencies = [
+ "clap 3.2.25",
+]
+
+[[package]]
+name = "dirs"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
+dependencies = [
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
+dependencies = [
+ "libc",
+ "option-ext",
+ "redox_users",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "dotlock"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30c541575b952e53113caddb5be24869705052591b534ea11a81a3d4743416a3"
+dependencies = [
+ "tempfile",
+]
+
+[[package]]
+name = "dyn-clone"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
+
+[[package]]
+name = "either"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "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-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-sink"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-core",
+ "futures-io",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "garde"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5fa8fb3ffe035745c6194540b2064b2fe275f32367fbb4eb026024b7921e2e5"
+dependencies = [
+ "compact_str",
+ "garde_derive",
+ "once_cell",
+ "regex",
+ "smallvec",
+]
+
+[[package]]
+name = "garde_derive"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9cf62650515830c41553b72bd49ec20fb120226f9277c7f2847f071cf998325b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
+name = "h2"
+version = "0.3.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap 2.2.3",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "http"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
+[[package]]
+name = "hyper"
+version = "0.14.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-tls"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+dependencies = [
+ "bytes",
+ "hyper",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "include_dir"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e"
+dependencies = [
+ "include_dir_macros",
+]
+
+[[package]]
+name = "include_dir_macros"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+dependencies = [
+ "autocfg",
+ "hashbrown 0.12.3",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
+ "serde",
+]
+
+[[package]]
+name = "indoc"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
+
+[[package]]
+name = "ipnet"
+version = "2.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+
+[[package]]
+name = "is_ci"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45"
+
+[[package]]
+name = "itoa"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+[[package]]
+name = "js-sys"
+version = "0.3.68"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.153"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "libredox"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
+dependencies = [
+ "bitflags 2.4.2",
+ "libc",
+ "redox_syscall",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "log"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+
+[[package]]
+name = "markdown"
+version = "1.0.0-alpha.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b0f0025e8c0d89b84d6dc63e859475e40e8e82ab1a08be0a93ad5731513a508"
+dependencies = [
+ "unicode-id",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+
+[[package]]
+name = "miette"
+version = "7.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baed61d13cc3723ee6dbed730a82bfacedc60a85d81da2d77e9c3e8ebc0b504a"
+dependencies = [
+ "backtrace",
+ "backtrace-ext",
+ "miette-derive",
+ "owo-colors",
+ "supports-color",
+ "supports-hyperlinks",
+ "supports-unicode",
+ "terminal_size",
+ "textwrap",
+ "thiserror",
+ "unicode-width",
+]
+
+[[package]]
+name = "miette-derive"
+version = "7.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f301c3f54f98abc6c212ee722f5e5c62e472a334415840669e356f04850051ec"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+dependencies = [
+ "libc",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "native-tls"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
+]
+
+[[package]]
+name = "object"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "openssl"
+version = "0.10.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.101"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
+
+[[package]]
+name = "owo-colors"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f"
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.78"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.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_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 = "rdrand"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
+dependencies = [
+ "getrandom",
+ "libredox",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.11.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78bf93c4af7a8bb7d879d51cebe797356ff10ae8516ace542b5182d9dcac10b2"
+dependencies = [
+ "base64",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-tls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "native-tls",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
+ "tokio",
+ "tokio-native-tls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "winreg",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustix"
+version = "0.38.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+dependencies = [
+ "bitflags 2.4.2",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+
+[[package]]
+name = "schannel"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "schemars"
+version = "0.8.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29"
+dependencies = [
+ "dyn-clone",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "schematic"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "709e1f0b0a3db267a98da09c89a7818e307cc8daea841e1079eb5f5a02591d54"
+dependencies = [
+ "garde",
+ "indexmap 2.2.3",
+ "markdown",
+ "miette",
+ "reqwest",
+ "schemars",
+ "schematic_macros",
+ "schematic_types",
+ "serde",
+ "serde_json",
+ "serde_path_to_error",
+ "serde_yaml",
+ "starbase_styles",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "schematic_macros"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31af7347544d97d00870a5865d2077dac07c069a5290c26215ddd1138b302590"
+dependencies = [
+ "convert_case",
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "schematic_types"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f3adfbe1c90a6a9643433e490ef1605c6a99f93be37e4c83fe5149fca9698c6"
+
+[[package]]
+name = "security-framework"
+version = "2.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.114"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+dependencies = [
+ "indexmap 2.2.3",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_path_to_error"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c"
+dependencies = [
+ "itoa",
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_yaml"
+version = "0.9.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f"
+dependencies = [
+ "indexmap 2.2.3",
+ "itoa",
+ "ryu",
+ "serde",
+ "unsafe-libyaml",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+
+[[package]]
+name = "smawk"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
+
+[[package]]
+name = "socket2"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "starbase_styles"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e06fa37c027e48ef341787d8c3d26cfbe8507aa4e2e8c61fcba82fe931bb598"
+dependencies = [
+ "dirs",
+ "owo-colors",
+ "supports-color",
+]
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
+name = "supports-color"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9829b314621dfc575df4e409e79f9d6a66a3bd707ab73f23cb4aa3a854ac854f"
+dependencies = [
+ "is_ci",
+]
+
+[[package]]
+name = "supports-hyperlinks"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c0a1e5168041f5f3ff68ff7d95dcb9c8749df29f6e7e89ada40dd4c9de404ee"
+
+[[package]]
+name = "supports-unicode"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.51"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
+name = "system-configuration"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "tempdir"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
+dependencies = [
+ "rand",
+ "remove_dir_all",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "terminal_size"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
+dependencies = [
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
+dependencies = [
+ "smawk",
+ "unicode-linebreak",
+ "unicode-width",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.36.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "pin-project-lite",
+ "socket2",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.51",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
+[[package]]
+name = "unicode-id"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1b6def86329695390197b82c1e244a54a131ceb66c996f2088a3876e2ae083f"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-linebreak"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "unsafe-libyaml"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
+
+[[package]]
+name = "url"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "want"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasite"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.51",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.51",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
+
+[[package]]
+name = "web-sys"
+version = "0.3.68"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "which"
+version = "6.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fa5e0c10bf77f44aac573e498d1a82d5fbd5e91f6fc0a99e7be4b38e85e101c"
+dependencies = [
+ "either",
+ "home",
+ "once_cell",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "whoami"
+version = "1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44ab49fad634e88f55bf8f9bb3abd2f27d7204172a112c7c9987e01c1c94ea9"
+dependencies = [
+ "redox_syscall",
+ "wasite",
+ "web-sys",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.3",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f"
+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",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6"
+
+[[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "xdg"
+version = "2.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
diff --git a/nixpkgs/pkgs/by-name/de/devenv/package.nix b/nixpkgs/pkgs/by-name/de/devenv/package.nix
new file mode 100644
index 000000000000..17755df44b31
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/de/devenv/package.nix
@@ -0,0 +1,62 @@
+{ stdenv
+, lib
+, openssl
+, darwin
+, libgit2
+, makeWrapper
+, nix
+, pkg-config
+, rustPlatform
+, cachix
+, fetchFromGitHub
+}:
+
+let
+  devenv_nix = nix.overrideAttrs (old: {
+    version = "2.21-devenv";
+    src = fetchFromGitHub {
+      owner = "domenkozar";
+      repo = "nix";
+      rev = "c5bbf14ecbd692eeabf4184cc8d50f79c2446549";
+      hash = "sha256-zvCqeUO2GLOm7jnU23G4EzTZR7eylcJN+HJ5svjmubI=";
+    };
+    buildInputs = old.buildInputs ++ [ libgit2 ];
+    doCheck = false;
+    doInstallCheck = false;
+  });
+
+  version = "1.0.1";
+in rustPlatform.buildRustPackage {
+  pname = "devenv";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "cachix";
+    repo = "devenv";
+    rev = "v${version}";
+    hash = "sha256-9LnGe0KWqXj18IV+A1panzXQuTamrH/QcasaqnuqiE0=";
+  };
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+  };
+
+  nativeBuildInputs = [ makeWrapper pkg-config ];
+
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.SystemConfiguration
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/devenv --set DEVENV_NIX ${devenv_nix} --prefix PATH ":" "$out/bin:${cachix}/bin"
+  '';
+
+  meta = {
+    changelog = "https://github.com/cachix/devenv/releases/tag/v${version}";
+    description = "Fast, Declarative, Reproducible, and Composable Developer Environments";
+    homepage = "https://github.com/cachix/devenv";
+    license = lib.licenses.asl20;
+    mainProgram = "devenv";
+    maintainers = with lib.maintainers; [ domenkozar drupol ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/digikam/default.nix b/nixpkgs/pkgs/by-name/di/digikam/package.nix
index 8bc94f9c2b23..01659a65173e 100644
--- a/nixpkgs/pkgs/applications/graphics/digikam/default.nix
+++ b/nixpkgs/pkgs/by-name/di/digikam/package.nix
@@ -1,25 +1,9 @@
-{ mkDerivation, config, lib, fetchpatch, fetchurl, cmake, doxygen, extra-cmake-modules, wrapGAppsHook
+{ stdenv, config, lib, fetchurl, cmake, doxygen, extra-cmake-modules, wrapGAppsHook
 
 # For `digitaglinktree`
 , perl, sqlite
 
-, qtbase
-, qtxmlpatterns
-, qtsvg
-, qtwebengine
-, qtnetworkauth
-
-, akonadi-contacts
-, kcalendarcore
-, kconfigwidgets
-, kcoreaddons
-, kdoctools
-, kfilemetadata
-, knotifications
-, knotifyconfig
-, ktextwidgets
-, kwidgetsaddons
-, kxmlgui
+, libsForQt5
 
 , bison
 , boost
@@ -32,17 +16,13 @@
 , lcms2
 , lensfun
 , libgphoto2
-, libkipi
-, libksane
 , liblqr1
-, libqtav
 , libusb1
-, marble
+, libheif
 , libGL
 , libGLU
 , opencv
 , pcre
-, threadweaver
 , x265
 , jasper
 
@@ -51,35 +31,29 @@
 , hugin
 , gnumake
 
-, breeze-icons
-, oxygen
-
 , cudaSupport ? config.cudaSupport
 , cudaPackages ? {}
 }:
 
-mkDerivation rec {
+stdenv.mkDerivation rec {
   pname   = "digikam";
-  version = "8.1.0";
+  version = "8.2.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${version}/digiKam-${version}.tar.xz";
-    hash = "sha256-BQPANORF/0JPGKZxXAp6eb5KXgyCs+vEYaIc7DdFpbM=";
+    hash = "sha256-L3/LVZsSPtnsrlpa729FYO7l9JIG2dF0beyatsj7OL8=";
   };
 
-  # Fix build against exiv2 0.28.1
-  patches = [
-    (fetchpatch {
-      url = "https://invent.kde.org/graphics/digikam/-/commit/f5ea91a7f6c1926815ec68f3e0176d6c15b83051.patch";
-      hash = "sha256-5g2NaKKNKVfgW3dTO/IP/H/nZ0YAIOmdPAumy3NEaNg=";
-    })
-  ];
+  strictDeps = true;
+
+  depsBuildBuild = [ cmake ];
 
   nativeBuildInputs = [
     cmake
     doxygen
     extra-cmake-modules
-    kdoctools
+    libsForQt5.kdoctools
+    libsForQt5.wrapQtAppsHook
     wrapGAppsHook
   ] ++ lib.optionals cudaSupport (with cudaPackages; [
     cuda_nvcc
@@ -97,10 +71,8 @@ mkDerivation rec {
     lcms2
     lensfun
     libgphoto2
-    libkipi
-    libksane
+    libheif
     liblqr1
-    libqtav
     libusb1
     libGL
     libGLU
@@ -108,6 +80,10 @@ mkDerivation rec {
     pcre
     x265
     jasper
+  ] ++ (with libsForQt5; [
+    libkipi
+    libksane
+    libqtav
 
     qtbase
     qtxmlpatterns
@@ -130,7 +106,7 @@ mkDerivation rec {
     marble
     oxygen
     threadweaver
-  ] ++ lib.optionals cudaSupport (with cudaPackages; [
+  ]) ++ lib.optionals cudaSupport (with cudaPackages; [
     cuda_cudart
   ]);
 
@@ -140,7 +116,7 @@ mkDerivation rec {
     "-DENABLE_MEDIAPLAYER=1"
     "-DENABLE_QWEBENGINE=on"
     "-DENABLE_APPSTYLES=on"
-    "-DCMAKE_CXX_FLAGS=-I${libksane}/include/KF5" # fix `#include <ksane_version.h>`
+    "-DCMAKE_CXX_FLAGS=-I${libsForQt5.libksane}/include/KF5" # fix `#include <ksane_version.h>`
   ];
 
   dontWrapGApps = true;
@@ -148,7 +124,7 @@ mkDerivation rec {
   preFixup = ''
     qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
     qtWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [ gnumake hugin enblend-enfuse ]})
-    qtWrapperArgs+=(--suffix DK_PLUGIN_PATH : ${placeholder "out"}/${qtbase.qtPluginPrefix}/${pname})
+    qtWrapperArgs+=(--suffix DK_PLUGIN_PATH : ${placeholder "out"}/${libsForQt5.qtbase.qtPluginPrefix}/${pname})
     substituteInPlace $out/bin/digitaglinktree \
       --replace "/usr/bin/perl" "${perl}/bin/perl" \
       --replace "/usr/bin/sqlite3" "${sqlite}/bin/sqlite3"
diff --git a/nixpkgs/pkgs/by-name/di/discordchatexporter-cli/deps.nix b/nixpkgs/pkgs/by-name/di/discordchatexporter-cli/deps.nix
new file mode 100644
index 000000000000..c75966de85c3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/di/discordchatexporter-cli/deps.nix
@@ -0,0 +1,23 @@
+# This file was automatically generated by passthru.fetch-deps.
+# Please dont edit it manually, your changes might get overwritten!
+
+{ fetchNuGet }: [
+  (fetchNuGet { pname = "AdvancedStringBuilder"; version = "0.1.0"; sha256 = "1lpv5sggdxza0bmcqmzf5r4i340f0m7nr5073lac18naj5697q5g"; })
+  (fetchNuGet { pname = "AngleSharp"; version = "1.0.7"; sha256 = "1f0sb4jknw7f9mhg4f5khk1q257mn97b9qyy017jjljhqyxp449f"; })
+  (fetchNuGet { pname = "AsyncKeyedLock"; version = "6.2.4"; sha256 = "1sizwdkj7ysk7nvdrnnnvl67r4smyq45k6ih4si38kxm27sqwhjw"; })
+  (fetchNuGet { pname = "CliFx"; version = "2.3.5"; sha256 = "0rlbv93ssw0d8kvhnvrz2f06ka66gz4gbz1va2q135dab99cmrin"; })
+  (fetchNuGet { pname = "CSharpier.MsBuild"; version = "0.26.7"; sha256 = "1pa96gci9nwav1g93vxq4mc0h1bjasax9j6giya1ms6rdmqxxlyn"; })
+  (fetchNuGet { pname = "Deorcify"; version = "1.0.2"; sha256 = "0nwxyrl4rd5x621i2hs5fl3w7fxpm13lkdssxr9fd5042px2gqbm"; })
+  (fetchNuGet { pname = "DotnetRuntimeBootstrapper"; version = "2.5.2"; sha256 = "0j3z9wdhn6d4np0cjxv2wb5n9blm9frgbxs1p6zdafbxr98qzb73"; })
+  (fetchNuGet { pname = "Gress"; version = "2.1.1"; sha256 = "1svz1flhyl26h3xjch0acjjinympgf6bhj5vpb188njfih3ip4ck"; })
+  (fetchNuGet { pname = "JsonExtensions"; version = "1.2.0"; sha256 = "0g54hibabbqqfhxjlnxwv1rxagpali5agvnpymp2w3dk8h6q66xy"; })
+  (fetchNuGet { pname = "Polly"; version = "8.2.0"; sha256 = "0gxdi4sf60vpxsb258v592ykkq9a3dq2awayp99yy9djys8bglks"; })
+  (fetchNuGet { pname = "Polly.Core"; version = "8.2.0"; sha256 = "00b4jbyiyslqvswy4j2lfw0rl0gq8m4v5fj2asb96i6l224bs7d3"; })
+  (fetchNuGet { pname = "RazorBlade"; version = "0.5.0"; sha256 = "11s68yqvpp65yam954f281vw9pmb2c5mxnk0n5j6xv1xylng4x5b"; })
+  (fetchNuGet { pname = "Spectre.Console"; version = "0.48.0"; sha256 = "0v3zijim9k5lcmhn0ajlsix0japvx3c20r9b7x7f7gvraa8w3gl6"; })
+  (fetchNuGet { pname = "Superpower"; version = "3.0.0"; sha256 = "0p6riay4732j1fahc081dzgs9q4z3n2fpxrin4zfpj6q2226dhz4"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "8.0.0"; sha256 = "1lgdd78cik4qyvp2fggaa0kzxasw6kc9a6cjqw46siagrm0qnc3y"; })
+  (fetchNuGet { pname = "WebMarkupMin.Core"; version = "2.14.0"; sha256 = "0c41zw1bwz6ybxagq5vr26cx7najd17rrdbqjpn8mabynq380ayr"; })
+  (fetchNuGet { pname = "YoutubeExplode"; version = "6.3.10"; sha256 = "0b3n8mfxa4l7bfk0c1s7yfw4m1kvnm2r5pqfvr6s20gjq3wzfih5"; })
+]
diff --git a/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/default.nix b/nixpkgs/pkgs/by-name/di/discordchatexporter-cli/package.nix
index 518113e0b217..9f3d709fd166 100644
--- a/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/default.nix
+++ b/nixpkgs/pkgs/by-name/di/discordchatexporter-cli/package.nix
@@ -8,19 +8,19 @@
 
 buildDotnetModule rec {
   pname = "discordchatexporter-cli";
-  version = "2.41.2";
+  version = "2.42.8";
 
   src = fetchFromGitHub {
     owner = "tyrrrz";
     repo = "discordchatexporter";
     rev = version;
-    hash = "sha256-8ETEIZXIo7Tx6Vb9Id/E/8IklpcvO9OpcrYD+mHRX3o=";
+    hash = "sha256-54NTeIs0a8hd2xKQkAxwfyGwEPUlSSXXvDamGLfa9ls=";
   };
 
   projectFile = "DiscordChatExporter.Cli/DiscordChatExporter.Cli.csproj";
   nugetDeps = ./deps.nix;
-  dotnet-sdk = dotnetCorePackages.sdk_7_0;
-  dotnet-runtime = dotnetCorePackages.runtime_7_0;
+  dotnet-sdk = dotnetCorePackages.sdk_8_0;
+  dotnet-runtime = dotnetCorePackages.runtime_8_0;
 
   postFixup = ''
     ln -s $out/bin/DiscordChatExporter.Cli $out/bin/discordchatexporter-cli
diff --git a/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/updater.sh b/nixpkgs/pkgs/by-name/di/discordchatexporter-cli/updater.sh
index cc81761b93d9..d61235ef5c6f 100755
--- a/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/updater.sh
+++ b/nixpkgs/pkgs/by-name/di/discordchatexporter-cli/updater.sh
@@ -4,7 +4,7 @@ set -eo pipefail
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
 new_version="$(curl -s "https://api.github.com/repos/tyrrrz/DiscordChatExporter/releases?per_page=1" | jq -r '.[0].name')"
-old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
+old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./package.nix)"
 if [[ "$new_version" == "$old_version" ]]; then
   echo "Up to date"
   exit 0
diff --git a/nixpkgs/pkgs/by-name/di/disko/package.nix b/nixpkgs/pkgs/by-name/di/disko/package.nix
index 8dd1b1313f9a..0d03005736a5 100644
--- a/nixpkgs/pkgs/by-name/di/disko/package.nix
+++ b/nixpkgs/pkgs/by-name/di/disko/package.nix
@@ -9,12 +9,12 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   name = "disko";
-  version = "1.4.0";
+  version = "1.4.1";
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "disko";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-71S/64RbyADT6FUVJq4WLiNbmcxFvgMsSihf/C2Hgno=";
+    hash = "sha256-HeWFrRuHpnAiPmIr26OKl2g142HuGerwoO/XtW53pcI=";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ bash ];
diff --git a/nixpkgs/pkgs/applications/graphics/displaycal/default.nix b/nixpkgs/pkgs/by-name/di/displaycal/package.nix
index 0eef148398cb..a48355fbb825 100644
--- a/nixpkgs/pkgs/applications/graphics/displaycal/default.nix
+++ b/nixpkgs/pkgs/by-name/di/displaycal/package.nix
@@ -10,13 +10,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "displaycal";
-  version = "3.9.11";
+  version = "3.9.12";
   format = "setuptools";
 
   src = fetchPypi {
     pname = "DisplayCAL";
     inherit version;
-    hash = "sha256-zAZW2eMjwRYevlz8KEzTxzGO8vx5AydfY3vGTapNo1c=";
+    hash = "sha256-0NZ+fr3ilnyWE6+Xa8xqpccNe7WVvvQfQEYvdQ8rf/Q=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/gtkcord4/default.nix b/nixpkgs/pkgs/by-name/di/dissent/package.nix
index e75e27e7d792..efcb1b946ce0 100644
--- a/nixpkgs/pkgs/applications/audio/gtkcord4/default.nix
+++ b/nixpkgs/pkgs/by-name/di/dissent/package.nix
@@ -17,14 +17,14 @@
 }:
 
 buildGoModule rec {
-  pname = "gtkcord4";
-  version = "0.0.19";
+  pname = "dissent";
+  version = "0.0.22";
 
   src = fetchFromGitHub {
     owner = "diamondburned";
-    repo = pname;
+    repo = "dissent";
     rev = "v${version}";
-    hash = "sha256-TOrAUTYS4J4W1wZvP1TxZf5Nel29YCPoWPN7GYNomkc=";
+    hash = "sha256-HNNTF/a+sLFp+HCxltYRuDssoLnIhzEXuDLKTPxWzeM=";
   };
 
   nativeBuildInputs = [
@@ -52,17 +52,17 @@ buildGoModule rec {
   ];
 
   postInstall = ''
-    install -D -m 444 -t $out/share/applications nix/so.libdb.gtkcord4.desktop
-    install -D -m 444 internal/icons/hicolor/scalable/apps/logo.svg $out/share/icons/hicolor/scalable/apps/gtkcord4.svg
+    install -D -m 444 -t $out/share/applications nix/so.libdb.dissent.desktop
+    install -D -m 444 internal/icons/hicolor/scalable/apps/so.libdb.dissent.svg $out/share/icons/hicolor/scalable/apps/so.libdb.dissent.svg
   '';
 
-  vendorHash = "sha256-dJm+v7/2+TQWoU7G1uOpie6KN5W0JqfLU4mF8mghV4A=";
+  vendorHash = "sha256-mwY1M81EWfbF/gYXQl5bcEXxN9N1npD+GgUSMc7gy90=";
 
   meta = with lib; {
-    description = "GTK4 Discord client in Go, attempt #4";
-    homepage = "https://github.com/diamondburned/gtkcord4";
+    description = "GTK4 Discord client in Go, attempt #4 (formerly gtkcord4)";
+    homepage = "https://github.com/diamondburned/dissent";
     license = licenses.gpl3Only;
-    mainProgram = "gtkcord4";
+    mainProgram = "dissent";
     maintainers = with maintainers; [ hmenke urandom aleksana ];
   };
 }
diff --git a/nixpkgs/pkgs/by-name/dj/djent/package.nix b/nixpkgs/pkgs/by-name/dj/djent/package.nix
index 3559410fbd29..06cff41ec358 100644
--- a/nixpkgs/pkgs/by-name/dj/djent/package.nix
+++ b/nixpkgs/pkgs/by-name/dj/djent/package.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
       A reimplementation of the Fourmilab/John Walker random number test program
       ent with several improvements
     '';
+    mainProgram = "djent";
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.all;
     maintainers = with lib.maintainers; [ orichter thillux ];
diff --git a/nixpkgs/pkgs/by-name/dm/dmarc-report-converter/package.nix b/nixpkgs/pkgs/by-name/dm/dmarc-report-converter/package.nix
index 54c19d90d0d1..5fff732e84fc 100644
--- a/nixpkgs/pkgs/by-name/dm/dmarc-report-converter/package.nix
+++ b/nixpkgs/pkgs/by-name/dm/dmarc-report-converter/package.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "dmarc-report-converter";
-  version = "0.6.5";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "tierpod";
     repo = "dmarc-report-converter";
     rev = "v${version}";
-    hash = "sha256-4rAQhZmqYldilCKomBfuyqS0vcUg5yS4nqp84XSjam4=";
+    hash = "sha256-cP96tiBpMFNEHuIF0sovi+Q4yW8wMUqr138RyMOFoho=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/by-name/dm/dmenu-bluetooth/package.nix b/nixpkgs/pkgs/by-name/dm/dmenu-bluetooth/package.nix
index 63a46f1e6e50..64d853229022 100644
--- a/nixpkgs/pkgs/by-name/dm/dmenu-bluetooth/package.nix
+++ b/nixpkgs/pkgs/by-name/dm/dmenu-bluetooth/package.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "A script that generates a dmenu menu that uses bluetoothctl to connect to bluetooth devices and display status info";
+    mainProgram = "dmenu-bluetooth";
     homepage = "https://github.com/Layerex/dmenu-bluetooth";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ ludovicopiero ];
diff --git a/nixpkgs/pkgs/by-name/do/docfd/package.nix b/nixpkgs/pkgs/by-name/do/docfd/package.nix
index 41d4f3cbf543..8baa36826a70 100644
--- a/nixpkgs/pkgs/by-name/do/docfd/package.nix
+++ b/nixpkgs/pkgs/by-name/do/docfd/package.nix
@@ -1,8 +1,13 @@
-{ lib, ocamlPackages, fetchFromGitHub, python3, dune_3, makeWrapper, poppler_utils, fzf }:
+{ lib
+, ocamlPackages
+, fetchFromGitHub
+, python3
+, dune_3
+}:
 
 ocamlPackages.buildDunePackage rec {
   pname = "docfd";
-  version = "2.2.0";
+  version = "3.0.0";
 
   minimalOCamlVersion = "5.1";
 
@@ -10,27 +15,37 @@ ocamlPackages.buildDunePackage rec {
     owner = "darrenldl";
     repo = "docfd";
     rev = version;
-    hash = "sha256-v6V9+/Ra19Xy6nCLe/ODJ1uVBwNkQO4lKcxcr2pmxIY=";
+    hash = "sha256-pJ5LlOfC+9NRfY7ng9LAxEnjr+mtJmhRNTo9Im6Lkbo=";
   };
 
-  nativeBuildInputs = [ python3 dune_3 makeWrapper ];
-  buildInputs = with ocamlPackages; [ oseq spelll notty nottui lwd cmdliner domainslib digestif yojson eio_main containers-data timedesc ];
-
-  postInstall = ''
-  # docfd needs pdftotext from popler_utils to allow pdf search
-  # also fzf for "docfd ?" usage
-  wrapProgram $out/bin/docfd --prefix PATH : "${lib.makeBinPath [ poppler_utils fzf ]}"
-  '';
+  nativeBuildInputs = [ python3 dune_3 ];
+  buildInputs = with ocamlPackages; [
+    cmdliner
+    containers-data
+    digestif
+    domainslib
+    eio_main
+    lwd
+    nottui
+    notty
+    ocolor
+    oseq
+    spelll
+    timedesc
+    yojson
+  ];
 
   meta = with lib; {
     description = "TUI multiline fuzzy document finder";
     longDescription = ''
-      TUI multiline fuzzy document finder.
-      Think interactive grep for both text files and PDFs, but word/token based
-      instead of regex and line based, so you can search across lines easily.
-      Docfd aims to provide good UX via integration with common text editors
-      and PDF viewers, so you can jump directly to a search result with a
-      single key press.
+      Think interactive grep for both text and other document files, but
+      word/token based instead of regex and line based, so you can search
+      across lines easily. Aims to provide good UX via integration with
+      common text editors and other file viewers.
+      Optional dependencies:
+        fzf - for fuzzy file picker with "docfd ?".
+        poppler_utils - for pdf search.
+        pandoc - for .epub, .odt, .docx, .fb2, .ipynb, .html, & .htm files.
     '';
     homepage = "https://github.com/darrenldl/docfd";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/by-name/do/doggo/package.nix b/nixpkgs/pkgs/by-name/do/doggo/package.nix
index cdd19bc37b90..2fe817010bf3 100644
--- a/nixpkgs/pkgs/by-name/do/doggo/package.nix
+++ b/nixpkgs/pkgs/by-name/do/doggo/package.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/mr-karan/doggo";
     description = "Command-line DNS Client for Humans. Written in Golang";
+    mainProgram = "doggo";
     longDescription = ''
       doggo is a modern command-line DNS client (like dig) written in Golang.
       It outputs information in a neat concise manner and supports protocols like DoH, DoT, DoQ, and DNSCrypt as well
diff --git a/nixpkgs/pkgs/by-name/do/donpapi/package.nix b/nixpkgs/pkgs/by-name/do/donpapi/package.nix
new file mode 100644
index 000000000000..1271d67d398f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/do/donpapi/package.nix
@@ -0,0 +1,53 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "donpapi";
+  version = "1.2.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "login-securite";
+    repo = "DonPAPI";
+    rev = "refs/tags/V${version}";
+    hash = "sha256-60aGnsr36X3mf91nH9ud0xyLBqKgzZ4ALucrLGpAuzQ=";
+  };
+
+  pythonRelaxDeps = [
+    "cryptography"
+    "impacket"
+    "pyasn1"
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    cryptography
+    impacket
+    lnkparse3
+    pyasn1
+    pyjwt
+    setuptools
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "donpapi"
+  ];
+
+  meta = with lib; {
+    description = "Tool for dumping DPAPI credentials remotely";
+    homepage = "https://github.com/login-securite/DonPAPI";
+    changelog = "https://github.com/login-securite/DonPAPI/releases/tag/V${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "donpapi";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/do/dotbot/package.nix b/nixpkgs/pkgs/by-name/do/dotbot/package.nix
index a2b979f67139..77d98148434b 100644
--- a/nixpkgs/pkgs/by-name/do/dotbot/package.nix
+++ b/nixpkgs/pkgs/by-name/do/dotbot/package.nix
@@ -27,6 +27,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A tool that bootstraps your dotfiles";
+    mainProgram = "dotbot";
     longDescription = ''
       Dotbot is designed to be lightweight and self-contained, with no external
       dependencies and no installation required. Dotbot can also be a drop-in
diff --git a/nixpkgs/pkgs/by-name/do/doublecmd/package.nix b/nixpkgs/pkgs/by-name/do/doublecmd/package.nix
index 36f5d82e3267..2b8c27fc8470 100644
--- a/nixpkgs/pkgs/by-name/do/doublecmd/package.nix
+++ b/nixpkgs/pkgs/by-name/do/doublecmd/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "doublecmd";
-  version = "1.1.10";
+  version = "1.1.11";
 
   src = fetchFromGitHub {
     owner = "doublecmd";
     repo = "doublecmd";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-vRB4qUws3kqCf7gp8Lzt8e9p68FaAfQyFHj4oJS9QtI=";
+    hash = "sha256-8kxaJp9mSJ6fHOgVD5iFjecUU0Kt10KCAVSYMQt+bSw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/by-name/ds/dsda-doom/package.nix b/nixpkgs/pkgs/by-name/ds/dsda-doom/package.nix
index cedf7c0524f5..c45c0ff37988 100644
--- a/nixpkgs/pkgs/by-name/ds/dsda-doom/package.nix
+++ b/nixpkgs/pkgs/by-name/ds/dsda-doom/package.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/kraflab/dsda-doom";
     description = "An advanced Doom source port with a focus on speedrunning, successor of PrBoom+";
+    mainProgram = "dsda-doom";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.Gliczy ];
diff --git a/nixpkgs/pkgs/by-name/ds/dsda-launcher/package.nix b/nixpkgs/pkgs/by-name/ds/dsda-launcher/package.nix
index 8a83fb43a6f5..8e73ae10e74f 100644
--- a/nixpkgs/pkgs/by-name/ds/dsda-launcher/package.nix
+++ b/nixpkgs/pkgs/by-name/ds/dsda-launcher/package.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Pedro-Beirao/dsda-launcher";
     description = "This is a launcher GUI for the dsda-doom source port";
+    mainProgram = "dsda-launcher";
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = [ maintainers.Gliczy ];
diff --git a/nixpkgs/pkgs/by-name/dx/dxvk/package.nix b/nixpkgs/pkgs/by-name/dx/dxvk/package.nix
index 88b7e5b104fb..d3639215057f 100644
--- a/nixpkgs/pkgs/by-name/dx/dxvk/package.nix
+++ b/nixpkgs/pkgs/by-name/dx/dxvk/package.nix
@@ -43,6 +43,7 @@ stdenvNoCC.mkDerivation (finalAttrs:
 
     meta = {
       description = "Setup script for DXVK";
+      mainProgram = "setup_dxvk.sh";
       homepage = "https://github.com/doitsujin/dxvk";
       changelog = "https://github.com/doitsujin/dxvk/releases";
       maintainers = [ lib.maintainers.reckenrode ];
diff --git a/nixpkgs/pkgs/by-name/dy/dynamodb-local/package.nix b/nixpkgs/pkgs/by-name/dy/dynamodb-local/package.nix
index 59fb07457824..b22a5c2fd8c7 100644
--- a/nixpkgs/pkgs/by-name/dy/dynamodb-local/package.nix
+++ b/nixpkgs/pkgs/by-name/dy/dynamodb-local/package.nix
@@ -25,11 +25,11 @@ let
 in
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "dynamodb-local";
-  version = "2.2.1";
+  version = "2.3.0";
 
   src = fetchurl {
-    url = "https://d1ni2b6xgvw0s0.cloudfront.net/v2.x/dynamodb_local_2024-01-04.tar.gz";
-    hash = "sha256-CbZ9Z9A70JoHu4G6It+7WycaEtzuwjVJ2YrOK+37zYA=";
+    url = "https://d1ni2b6xgvw0s0.cloudfront.net/v2.x/dynamodb_local_2024-03-14.tar.gz";
+    hash = "sha256-BmLbmT63CaETgu1a/Tcf0KyF+Xwol67yKVwSMa9fJbw=";
   };
 
   sourceRoot = ".";
diff --git a/nixpkgs/pkgs/by-name/ec/ecc/package.nix b/nixpkgs/pkgs/by-name/ec/ecc/package.nix
index b79fa4bd18c8..40597fe0fd99 100644
--- a/nixpkgs/pkgs/by-name/ec/ecc/package.nix
+++ b/nixpkgs/pkgs/by-name/ec/ecc/package.nix
@@ -117,6 +117,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://eunomia.dev";
     description = "the eBPF compile toolchain for eunomia-bpf";
+    mainProgram = "ecc-rs";
     maintainers = with maintainers; [ oluceps ];
     platforms = platforms.linux;
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/by-name/ei/eigenlayer/package.nix b/nixpkgs/pkgs/by-name/ei/eigenlayer/package.nix
index e6af77a07f70..2438d4896912 100644
--- a/nixpkgs/pkgs/by-name/ei/eigenlayer/package.nix
+++ b/nixpkgs/pkgs/by-name/ei/eigenlayer/package.nix
@@ -6,16 +6,16 @@
 }:
 buildGoModule rec {
   pname = "eigenlayer";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "Layr-Labs";
     repo = "eigenlayer-cli";
     rev = "v${version}";
-    hash = "sha256-cr3ltNmJj8GoQLADivekLU2hV7xWk4KR2Gej0rcaVTA=";
+    hash = "sha256-v2d6+jxEYXgJjZOFRc+teQWq161v4FLO+KjYq96XwTs=";
   };
 
-  vendorHash = "sha256-VcXjYiJ9nwSCQJvQd7UYduZKJISRfoEXjziiX6Z3w6Q=";
+  vendorHash = "sha256-pJYs9jD3EmmXlkPO6gkuB2FYsgX9Yn6S6QYb2dQ1fY4=";
 
   ldflags = ["-s" "-w"];
   subPackages = ["cmd/eigenlayer"];
diff --git a/nixpkgs/pkgs/by-name/ei/eiwd/package.nix b/nixpkgs/pkgs/by-name/ei/eiwd/package.nix
index 0e1e5d6d58d8..738ba347cf9c 100644
--- a/nixpkgs/pkgs/by-name/ei/eiwd/package.nix
+++ b/nixpkgs/pkgs/by-name/ei/eiwd/package.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "eiwd";
-  version = "2.14-1";
+  version = "2.16-1";
 
   src = fetchFromGitHub {
     owner = "illiliti";
     repo = "eiwd";
     rev = finalAttrs.version;
-    hash = "sha256-9d7XDA98qMA6Myeik2Tpj0x6yd5VQozt+FHl0U3da50=";
+    hash = "sha256-TQA9aVdXGX2hje7lRQ8T9QDpSTYGpB5cIDlNYsUg/dM=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/by-name/ek/eksctl/package.nix b/nixpkgs/pkgs/by-name/ek/eksctl/package.nix
index 5d01ac999406..76082342338c 100644
--- a/nixpkgs/pkgs/by-name/ek/eksctl/package.nix
+++ b/nixpkgs/pkgs/by-name/ek/eksctl/package.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.173.0";
+  version = "0.175.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    hash = "sha256-PVBt+AoYd8fMYHzBpgQ261TGlkmyooN7UKX9ooXaRYA=";
+    hash = "sha256-Cz6zOQumkhxyMkkOJbzOUUB15godryDC8Uwid33+8TU=";
   };
 
-  vendorHash = "sha256-5bHZt+Oze7JiaY0dKjoMNDdU6wzMphgZ3W3NveRKGy0=";
+  vendorHash = "sha256-wdH4+s9SU2WgIy7bJ4YrT53URvHC4vw7RZpllT2DfV8=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/by-name/el/elf2nucleus/package.nix b/nixpkgs/pkgs/by-name/el/elf2nucleus/package.nix
index c6cafbfc4578..08ec2e8f0a23 100644
--- a/nixpkgs/pkgs/by-name/el/elf2nucleus/package.nix
+++ b/nixpkgs/pkgs/by-name/el/elf2nucleus/package.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Integrate micronucleus into the cargo buildsystem, flash an AVR firmware from an elf file";
+    mainProgram = "elf2nucleus";
     homepage = "https://github.com/kpcyrd/elf2nucleus";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.marble ];
diff --git a/nixpkgs/pkgs/by-name/el/elvish/package.nix b/nixpkgs/pkgs/by-name/el/elvish/package.nix
index bd3e746377a3..4363657fcced 100644
--- a/nixpkgs/pkgs/by-name/el/elvish/package.nix
+++ b/nixpkgs/pkgs/by-name/el/elvish/package.nix
@@ -42,6 +42,7 @@ buildGoModule {
   meta = {
     homepage = "https://elv.sh/";
     description = "A friendly and expressive command shell";
+    mainProgram = "elvish";
     longDescription = ''
       Elvish is a friendly interactive shell and an expressive programming
       language. It runs on Linux, BSDs, macOS and Windows. Despite its pre-1.0
diff --git a/nixpkgs/pkgs/by-name/en/encled/package.nix b/nixpkgs/pkgs/by-name/en/encled/package.nix
index 3b4817bfab8e..f75b75cd6a02 100644
--- a/nixpkgs/pkgs/by-name/en/encled/package.nix
+++ b/nixpkgs/pkgs/by-name/en/encled/package.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Control fault/locate indicators in disk slots in enclosures";
+    mainProgram = "encled";
     homepage = "https://github.com/amarao/sdled";
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.lheckemann ];
diff --git a/nixpkgs/pkgs/by-name/en/engage/package.nix b/nixpkgs/pkgs/by-name/en/engage/package.nix
index ccfc963ab665..b873b81155ac 100644
--- a/nixpkgs/pkgs/by-name/en/engage/package.nix
+++ b/nixpkgs/pkgs/by-name/en/engage/package.nix
@@ -38,6 +38,7 @@ rustPlatform.buildRustPackage {
 
   meta = {
     description = "A task runner with DAG-based parallelism";
+    mainProgram = "engage";
     homepage = "https://or.computer.surgery/charles/engage";
     changelog = "https://or.computer.surgery/charles/engage/-/blob/v${version}/CHANGELOG.md";
     license = with lib.licenses; [ asl20 mit ];
diff --git a/nixpkgs/pkgs/by-name/en/envio/package.nix b/nixpkgs/pkgs/by-name/en/envio/package.nix
index 51b656eccbbb..0424bcf4e9bd 100644
--- a/nixpkgs/pkgs/by-name/en/envio/package.nix
+++ b/nixpkgs/pkgs/by-name/en/envio/package.nix
@@ -40,6 +40,7 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://envio-cli.github.io/home";
     changelog   = "https://github.com/envio-cli/envio/blob/${version}/CHANGELOG.md";
     description = "Modern and secure CLI tool for managing environment variables";
+    mainProgram = "envio";
     longDescription = ''
       Envio is a command-line tool that simplifies the management of
       environment variables across multiple profiles. It allows users to easily
diff --git a/nixpkgs/pkgs/games/etlegacy/default.nix b/nixpkgs/pkgs/by-name/et/etlegacy/package.nix
index befbbc5ed291..5dcdc3765a44 100644
--- a/nixpkgs/pkgs/games/etlegacy/default.nix
+++ b/nixpkgs/pkgs/by-name/et/etlegacy/package.nix
@@ -15,7 +15,7 @@
 , libogg
 , libpng
 , libtheora
-, lua
+, lua5_4
 , minizip
 , openal
 , SDL2
@@ -23,7 +23,7 @@
 , zlib
 }:
 let
-  version = "2.81.1";
+  version = "2.82.0";
 
   fetchAsset = { asset, hash }: fetchurl {
     url = "https://mirror.etlegacy.com/etmain/${asset}";
@@ -63,7 +63,7 @@ stdenv.mkDerivation {
     owner = "etlegacy";
     repo = "etlegacy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CGXtc51vaId/SHbD34ZeT0gPsrl7p2DEw/Kp+GBZIaA="; # 2.81.1
+    hash = "sha256-yNVVEa+3+Swm3hgwm9cSLV0K88E37TgVVjh1uUl8O2o=";
   };
 
   nativeBuildInputs = [
@@ -83,7 +83,7 @@ stdenv.mkDerivation {
     libogg
     libpng
     libtheora
-    lua
+    lua5_4
     minizip
     openal
     SDL2
diff --git a/nixpkgs/pkgs/by-name/ex/extractpdfmark/package.nix b/nixpkgs/pkgs/by-name/ex/extractpdfmark/package.nix
new file mode 100644
index 000000000000..9b95e6e101ed
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ex/extractpdfmark/package.nix
@@ -0,0 +1,39 @@
+{ autoreconfHook
+, fetchFromGitHub
+, ghostscript
+, lib
+, pkg-config
+, poppler
+, stdenv
+, texlive
+}:
+
+stdenv.mkDerivation rec {
+  pname = "extractpdfmark";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "trueroad";
+    repo = "extractpdfmark";
+    rev = "v${version}";
+    hash = "sha256-pNc/SWAtQWMbB2+lIQkJdBYSZ97iJXK71mS59qQa7Hs=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ ghostscript poppler texlive.combined.scheme-minimal ];
+
+  postPatch = ''
+    touch config.rpath
+  '';
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/trueroad/extractpdfmark";
+    description = "Extract page mode and named destinations as PDFmark from PDF";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.samueltardieu ];
+    platforms = platforms.all;
+    mainProgram = "extractpdfmark";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ez/eza/package.nix b/nixpkgs/pkgs/by-name/ez/eza/package.nix
index 5e0423a4ac9b..76064b122cbc 100644
--- a/nixpkgs/pkgs/by-name/ez/eza/package.nix
+++ b/nixpkgs/pkgs/by-name/ez/eza/package.nix
@@ -17,16 +17,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "eza";
-  version = "0.18.6";
+  version = "0.18.8";
 
   src = fetchFromGitHub {
     owner = "eza-community";
     repo = "eza";
     rev = "v${version}";
-    hash = "sha256-xdMoOGOHbGNRouVbJewQ1bWJbd7nusq3H7mXDC4AIXU=";
+    hash = "sha256-VKBiISHZmSqLf/76svKHqmQtsj+Trz41GhCJxgGY76Y=";
   };
 
-  cargoHash = "sha256-IM1dxTaFa5kq94pn6QQrUGg6fZWhBZsf4ZND42BPVag=";
+  cargoHash = "sha256-xFLnd0Pw3AtA4Nrg5rlqJj0fYOZ2xeNtS5vnAMWk4sc=";
 
   nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
   buildInputs = [ zlib ]
diff --git a/nixpkgs/pkgs/by-name/fa/fanbox-dl/package.nix b/nixpkgs/pkgs/by-name/fa/fanbox-dl/package.nix
index 753c31b0e5c7..1ed77441237f 100644
--- a/nixpkgs/pkgs/by-name/fa/fanbox-dl/package.nix
+++ b/nixpkgs/pkgs/by-name/fa/fanbox-dl/package.nix
@@ -2,22 +2,23 @@
 
 buildGoModule rec {
   pname = "fanbox-dl";
-  version = "0.19.2";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "hareku";
     repo = "fanbox-dl";
     rev = "v${version}";
-    hash = "sha256-puFFby6+e5FDWduETtI5Iflq9E65vJkg2gRdcUxpRKk=";
+    hash = "sha256-OC0buWQlb9sb4SXokOpeUHcQKMLeYN3ZVQGXtoiIMVM=";
   };
 
-  vendorHash = "sha256-o1DFHwSpHtbuU8BFcrk18hPRJJkeoPkYnybIz22Blfk=";
+  vendorHash = "sha256-qsdFfAgA72T3iOZRJdteo6T92lGi3yzcKcxj837YnG4=";
 
   # pings websites during testing
   doCheck = false;
 
   meta = with lib; {
     description = "Pixiv FANBOX Downloader";
+    mainProgram = "fanbox-dl";
     homepage = "https://github.com/hareku/fanbox-dl";
     license = licenses.mit;
     maintainers = [ maintainers.moni ];
diff --git a/nixpkgs/pkgs/by-name/fa/fangfrisch/package.nix b/nixpkgs/pkgs/by-name/fa/fangfrisch/package.nix
index 500794ff4c16..9ee116133873 100644
--- a/nixpkgs/pkgs/by-name/fa/fangfrisch/package.nix
+++ b/nixpkgs/pkgs/by-name/fa/fangfrisch/package.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 }:
 let
-  version = "1.8.1";
+  version = "1.9.0";
 in
 python3.pkgs.buildPythonApplication {
   pname = "fangfrisch";
@@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication {
     owner = "rseichter";
     repo = "fangfrisch";
     rev = "refs/tags/${version}";
-    hash = "sha256-j5IUAMDXndLttQZQV3SZXdDka8bKDcwbotY2Nop3izc=";
+    hash = "sha256-B2fVXVYzrtWMh/WjgFBOqrq8Jt+jqudbtpY/w4rJG08=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/by-name/fa/fast-float/package.nix b/nixpkgs/pkgs/by-name/fa/fast-float/package.nix
index 7afc65b35e1e..3ed19d0a5e67 100644
--- a/nixpkgs/pkgs/by-name/fa/fast-float/package.nix
+++ b/nixpkgs/pkgs/by-name/fa/fast-float/package.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fast-float";
-  version = "6.1.0";
+  version = "6.1.1";
 
   src = fetchFromGitHub {
     owner = "fastfloat";
     repo = "fast_float";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-17GFUHm9FQAf3egqcQwQWqEgs2vH8K17GH2V1/DP8S0=";
+    hash = "sha256-acaTUI+SWKSgmyJ+J4PzR5U7UtunbRiVuf5OsTf1Hko=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/by-name/fe/feather/package.nix b/nixpkgs/pkgs/by-name/fe/feather/package.nix
index 67b0770d65c7..de680e74caf2 100644
--- a/nixpkgs/pkgs/by-name/fe/feather/package.nix
+++ b/nixpkgs/pkgs/by-name/fe/feather/package.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "feather";
-  version = "2.6.3";
+  version = "2.6.4";
 
   src = fetchFromGitHub {
     owner = "feather-wallet";
     repo = "feather";
     rev = finalAttrs.version;
-    hash = "sha256-pQnaJbKznK1i8wn7t8ZnxLVu1LV/D47krxZZ0j6Mw6g=";
+    hash = "sha256-NFFIpHyie8jABfmiJP38VbPFjZgaNc+i5JcpbRr+mBU=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/by-name/fi/figurine/package.nix b/nixpkgs/pkgs/by-name/fi/figurine/package.nix
index ec6470de63d6..5c1fa255565b 100644
--- a/nixpkgs/pkgs/by-name/fi/figurine/package.nix
+++ b/nixpkgs/pkgs/by-name/fi/figurine/package.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/arsham/figurine";
     description = "Print your name in style";
+    mainProgram = "figurine";
     license = licenses.asl20;
     maintainers = with maintainers; [ ironicbadger ];
   };
diff --git a/nixpkgs/pkgs/by-name/fi/files-cli/package.nix b/nixpkgs/pkgs/by-name/fi/files-cli/package.nix
index 67919148083f..89b7854bc4f5 100644
--- a/nixpkgs/pkgs/by-name/fi/files-cli/package.nix
+++ b/nixpkgs/pkgs/by-name/fi/files-cli/package.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "files-cli";
-  version = "2.12.40";
+  version = "2.12.44";
 
   src = fetchFromGitHub {
     repo = "files-cli";
     owner = "files-com";
     rev = "v${version}";
-    hash = "sha256-dtHmBpszacoKHOg5PXrIQ2oPPCk1zzhvxAWULzxm3C4=";
+    hash = "sha256-6Y+MJCPDa64vCbg7aIqWuT6HaIFf36g++7STIVKj6GU=";
   };
 
-  vendorHash = "sha256-yaDc2o0vzgb0KDn3dGiXxPjEXyPNcCCQ+bEu/X1Cs3Q=";
+  vendorHash = "sha256-gP41EI5rZuiGzPkzWOGB69o57YSVYIvpDaKHAHtFaHM=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/by-name/fi/firewalk/package.nix b/nixpkgs/pkgs/by-name/fi/firewalk/package.nix
index 8909a61062c7..13497d99c443 100644
--- a/nixpkgs/pkgs/by-name/fi/firewalk/package.nix
+++ b/nixpkgs/pkgs/by-name/fi/firewalk/package.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Gateway ACL scanner";
+    mainProgram = "firewalk";
     homepage = "http://packetfactory.openwall.net/projects/firewalk/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ tochiaha ];
diff --git a/nixpkgs/pkgs/by-name/fi/fitsverify/package.nix b/nixpkgs/pkgs/by-name/fi/fitsverify/package.nix
index 35184352819a..b755e71616f8 100644
--- a/nixpkgs/pkgs/by-name/fi/fitsverify/package.nix
+++ b/nixpkgs/pkgs/by-name/fi/fitsverify/package.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "FITS File Format-Verification Tool";
+    mainProgram = "fitsverify";
     longDescription = ''
       Fitsverify is a computer program that rigorously checks whether a FITS
       (Flexible Image Transport System) data file conforms to all the
diff --git a/nixpkgs/pkgs/by-name/fl/flarectl/package.nix b/nixpkgs/pkgs/by-name/fl/flarectl/package.nix
index aedf03584372..a907ce7ae5c7 100644
--- a/nixpkgs/pkgs/by-name/fl/flarectl/package.nix
+++ b/nixpkgs/pkgs/by-name/fl/flarectl/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "flarectl";
-  version = "0.89.0";
+  version = "0.91.0";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cloudflare-go";
     rev = "v${version}";
-    hash = "sha256-BXG9pKkgSSlBNiWiDOWL6D/DSC2iVzVCktL4xyi6/Ao=";
+    hash = "sha256-T9Xv7EDQfaGOIryvH8TVxrOcIrJWUEsnZ7PpU9Lmv3Y=";
   };
 
-  vendorHash = "sha256-AxBvmDB3mfgkv7U+BzR0Khdgx1hrDI61CSxr45pRZqg=";
+  vendorHash = "sha256-F1fwzzBg60E7B9iPV0gziGB3WE1tcZ/6nMpnEyTjV1g=";
 
   subPackages = [ "cmd/flarectl" ];
 
diff --git a/nixpkgs/pkgs/by-name/fl/flatter/package.nix b/nixpkgs/pkgs/by-name/fl/flatter/package.nix
index 8f7cd7e65791..bd8d5605edaa 100644
--- a/nixpkgs/pkgs/by-name/fl/flatter/package.nix
+++ b/nixpkgs/pkgs/by-name/fl/flatter/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation {
   pname = "flatter";
-  version = "0-unstable-2023-08-10";
+  version = "0-unstable-2024-03-04";
 
   src = fetchFromGitHub {
     owner = "keeganryan";
     repo = "flatter";
-    rev = "500e31df6b7308e8101b2a4a9cc816bf8f483417";
-    hash = "sha256-STYx7cXvkcF+KqrG32pN16HWfEScc0zxkmOmfv43zIw=";
+    rev = "c2ed0ee94b6d281df7bcbce31ca275197ef9a562";
+    hash = "sha256-1Pjn0lANXaMOqlwwdOx6X/7jtAvfa2ZWa0nDfS3T5XU=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/by-name/fl/fleng/package.nix b/nixpkgs/pkgs/by-name/fl/fleng/package.nix
index 3f825bde28cc..e7010f3882bd 100644
--- a/nixpkgs/pkgs/by-name/fl/fleng/package.nix
+++ b/nixpkgs/pkgs/by-name/fl/fleng/package.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fleng";
-  version = "19";
+  version = "20";
 
   src = fetchurl {
     url = "http://www.call-with-current-continuation.org/fleng/fleng-${finalAttrs.version}.tgz";
-    hash = "sha256-xYMNGS3avZ9JsR8kJlSHz+C2XsLmhsDO/KTr5JquRK8=";
+    hash = "sha256-kkouDNbdVGE7vskmu8kISA/RHIGed5vLY/ch4qgew3g=";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/by-name/fl/flet-client-flutter/package.nix b/nixpkgs/pkgs/by-name/fl/flet-client-flutter/package.nix
new file mode 100644
index 000000000000..ed2c1b26be3a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fl/flet-client-flutter/package.nix
@@ -0,0 +1,64 @@
+{ lib
+, fetchFromGitHub
+, pkg-config
+, flutter
+, gst_all_1
+, libunwind
+, makeWrapper
+, mimalloc
+, orc
+, nix-update-script
+, mpv-unwrapped
+, libplacebo
+}:
+
+flutter.buildFlutterApplication rec {
+  pname = "flet-client-flutter";
+  version = "0.21.1";
+
+  src = fetchFromGitHub {
+    owner = "flet-dev";
+    repo = "flet";
+    rev = "v${version}";
+    hash = "sha256-7zAcjek4iZRsNRVA85KBtU7PGbnLDZjnEO8Q5xwBiwM=";
+  };
+
+  sourceRoot = "${src.name}/client";
+
+  cmakeFlags = [
+    "-DMIMALLOC_LIB=${mimalloc}/lib/mimalloc.o"
+  ];
+
+  pubspecLock = lib.importJSON ./pubspec.lock.json;
+
+  nativeBuildInputs = [
+    makeWrapper
+    mimalloc
+    pkg-config
+  ];
+
+  buildInputs = [
+    mpv-unwrapped
+    gst_all_1.gst-libav
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-vaapi
+    gst_all_1.gstreamer
+    libunwind
+    orc
+    mimalloc
+  ]
+    ++ mpv-unwrapped.buildInputs
+    ++ libplacebo.buildInputs
+  ;
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "A framework that enables you to easily build realtime web, mobile, and desktop apps in Python. The frontend part";
+    homepage = "https://flet.dev/";
+    changelog = "https://github.com/flet-dev/flet/releases/tag/v${version}";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ heyimnova lucasew ];
+    mainProgram = "flet";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/fl/flet-client-flutter/pubspec.lock.json b/nixpkgs/pkgs/by-name/fl/flet-client-flutter/pubspec.lock.json
new file mode 100644
index 000000000000..a0743aec8a77
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fl/flet-client-flutter/pubspec.lock.json
@@ -0,0 +1,1524 @@
+{
+  "packages": {
+    "archive": {
+      "dependency": "transitive",
+      "description": {
+        "name": "archive",
+        "sha256": "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.4.10"
+    },
+    "args": {
+      "dependency": "transitive",
+      "description": {
+        "name": "args",
+        "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.4.2"
+    },
+    "async": {
+      "dependency": "transitive",
+      "description": {
+        "name": "async",
+        "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.11.0"
+    },
+    "audioplayers": {
+      "dependency": "transitive",
+      "description": {
+        "name": "audioplayers",
+        "sha256": "c05c6147124cd63e725e861335a8b4d57300b80e6e92cea7c145c739223bbaef",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "5.2.1"
+    },
+    "audioplayers_android": {
+      "dependency": "transitive",
+      "description": {
+        "name": "audioplayers_android",
+        "sha256": "b00e1a0e11365d88576320ec2d8c192bc21f1afb6c0e5995d1c57ae63156acb5",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.0.3"
+    },
+    "audioplayers_darwin": {
+      "dependency": "transitive",
+      "description": {
+        "name": "audioplayers_darwin",
+        "sha256": "3034e99a6df8d101da0f5082dcca0a2a99db62ab1d4ddb3277bed3f6f81afe08",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "5.0.2"
+    },
+    "audioplayers_linux": {
+      "dependency": "transitive",
+      "description": {
+        "name": "audioplayers_linux",
+        "sha256": "60787e73fefc4d2e0b9c02c69885402177e818e4e27ef087074cf27c02246c9e",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.1.0"
+    },
+    "audioplayers_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "audioplayers_platform_interface",
+        "sha256": "365c547f1bb9e77d94dd1687903a668d8f7ac3409e48e6e6a3668a1ac2982adb",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "6.1.0"
+    },
+    "audioplayers_web": {
+      "dependency": "transitive",
+      "description": {
+        "name": "audioplayers_web",
+        "sha256": "22cd0173e54d92bd9b2c80b1204eb1eb159ece87475ab58c9788a70ec43c2a62",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.1.0"
+    },
+    "audioplayers_windows": {
+      "dependency": "transitive",
+      "description": {
+        "name": "audioplayers_windows",
+        "sha256": "9536812c9103563644ada2ef45ae523806b0745f7a78e89d1b5fb1951de90e1a",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.1.0"
+    },
+    "boolean_selector": {
+      "dependency": "transitive",
+      "description": {
+        "name": "boolean_selector",
+        "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.1"
+    },
+    "characters": {
+      "dependency": "transitive",
+      "description": {
+        "name": "characters",
+        "sha256": "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.3.0"
+    },
+    "checked_yaml": {
+      "dependency": "transitive",
+      "description": {
+        "name": "checked_yaml",
+        "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.3"
+    },
+    "cli_util": {
+      "dependency": "transitive",
+      "description": {
+        "name": "cli_util",
+        "sha256": "c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.4.1"
+    },
+    "clock": {
+      "dependency": "transitive",
+      "description": {
+        "name": "clock",
+        "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.1.1"
+    },
+    "collection": {
+      "dependency": "transitive",
+      "description": {
+        "name": "collection",
+        "sha256": "ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.18.0"
+    },
+    "convert": {
+      "dependency": "transitive",
+      "description": {
+        "name": "convert",
+        "sha256": "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.1.1"
+    },
+    "crypto": {
+      "dependency": "transitive",
+      "description": {
+        "name": "crypto",
+        "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.0.3"
+    },
+    "cupertino_icons": {
+      "dependency": "direct main",
+      "description": {
+        "name": "cupertino_icons",
+        "sha256": "d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.6"
+    },
+    "dbus": {
+      "dependency": "transitive",
+      "description": {
+        "name": "dbus",
+        "sha256": "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.7.10"
+    },
+    "equatable": {
+      "dependency": "transitive",
+      "description": {
+        "name": "equatable",
+        "sha256": "c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.5"
+    },
+    "fake_async": {
+      "dependency": "transitive",
+      "description": {
+        "name": "fake_async",
+        "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.3.1"
+    },
+    "ffi": {
+      "dependency": "transitive",
+      "description": {
+        "name": "ffi",
+        "sha256": "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.2"
+    },
+    "file": {
+      "dependency": "transitive",
+      "description": {
+        "name": "file",
+        "sha256": "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "7.0.0"
+    },
+    "file_picker": {
+      "dependency": "transitive",
+      "description": {
+        "name": "file_picker",
+        "sha256": "4e42aacde3b993c5947467ab640882c56947d9d27342a5b6f2895b23956954a6",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "6.1.1"
+    },
+    "fixnum": {
+      "dependency": "transitive",
+      "description": {
+        "name": "fixnum",
+        "sha256": "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.1.0"
+    },
+    "fl_chart": {
+      "dependency": "transitive",
+      "description": {
+        "name": "fl_chart",
+        "sha256": "5a74434cc83bf64346efb562f1a06eefaf1bcb530dc3d96a104f631a1eff8d79",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.65.0"
+    },
+    "flet": {
+      "dependency": "direct main",
+      "description": {
+        "path": "../packages/flet",
+        "relative": true
+      },
+      "source": "path",
+      "version": "0.21.1"
+    },
+    "flet_audio": {
+      "dependency": "direct main",
+      "description": {
+        "path": "../packages/flet_audio",
+        "relative": true
+      },
+      "source": "path",
+      "version": "0.21.1"
+    },
+    "flet_audio_recorder": {
+      "dependency": "direct main",
+      "description": {
+        "path": "../packages/flet_audio_recorder",
+        "relative": true
+      },
+      "source": "path",
+      "version": "0.21.1"
+    },
+    "flet_lottie": {
+      "dependency": "direct main",
+      "description": {
+        "path": "../packages/flet_lottie",
+        "relative": true
+      },
+      "source": "path",
+      "version": "0.21.1"
+    },
+    "flet_video": {
+      "dependency": "direct main",
+      "description": {
+        "path": "../packages/flet_video",
+        "relative": true
+      },
+      "source": "path",
+      "version": "0.21.1"
+    },
+    "flet_webview": {
+      "dependency": "direct main",
+      "description": {
+        "path": "../packages/flet_webview",
+        "relative": true
+      },
+      "source": "path",
+      "version": "0.21.1"
+    },
+    "flutter": {
+      "dependency": "direct main",
+      "description": "flutter",
+      "source": "sdk",
+      "version": "0.0.0"
+    },
+    "flutter_driver": {
+      "dependency": "transitive",
+      "description": "flutter",
+      "source": "sdk",
+      "version": "0.0.0"
+    },
+    "flutter_highlight": {
+      "dependency": "transitive",
+      "description": {
+        "name": "flutter_highlight",
+        "sha256": "7b96333867aa07e122e245c033b8ad622e4e3a42a1a2372cbb098a2541d8782c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.7.0"
+    },
+    "flutter_launcher_icons": {
+      "dependency": "direct dev",
+      "description": {
+        "name": "flutter_launcher_icons",
+        "sha256": "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.13.1"
+    },
+    "flutter_lints": {
+      "dependency": "direct dev",
+      "description": {
+        "name": "flutter_lints",
+        "sha256": "b543301ad291598523947dc534aaddc5aaad597b709d2426d3a0e0d44c5cb493",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.4"
+    },
+    "flutter_markdown": {
+      "dependency": "transitive",
+      "description": {
+        "name": "flutter_markdown",
+        "sha256": "21b085a1c185e46701373866144ced56cfb7a0c33f63c916bb8fe2d0c1491278",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.6.19"
+    },
+    "flutter_plugin_android_lifecycle": {
+      "dependency": "transitive",
+      "description": {
+        "name": "flutter_plugin_android_lifecycle",
+        "sha256": "b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.17"
+    },
+    "flutter_redux": {
+      "dependency": "transitive",
+      "description": {
+        "name": "flutter_redux",
+        "sha256": "3b20be9e08d0038e1452fbfa1fdb1ea0a7c3738c997734530b3c6d0bb5fcdbdc",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.10.0"
+    },
+    "flutter_svg": {
+      "dependency": "transitive",
+      "description": {
+        "name": "flutter_svg",
+        "sha256": "d39e7f95621fc84376bc0f7d504f05c3a41488c562f4a8ad410569127507402c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.9"
+    },
+    "flutter_test": {
+      "dependency": "direct dev",
+      "description": "flutter",
+      "source": "sdk",
+      "version": "0.0.0"
+    },
+    "flutter_web_plugins": {
+      "dependency": "transitive",
+      "description": "flutter",
+      "source": "sdk",
+      "version": "0.0.0"
+    },
+    "fuchsia_remote_debug_protocol": {
+      "dependency": "transitive",
+      "description": "flutter",
+      "source": "sdk",
+      "version": "0.0.0"
+    },
+    "highlight": {
+      "dependency": "transitive",
+      "description": {
+        "name": "highlight",
+        "sha256": "5353a83ffe3e3eca7df0abfb72dcf3fa66cc56b953728e7113ad4ad88497cf21",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.7.0"
+    },
+    "http": {
+      "dependency": "transitive",
+      "description": {
+        "name": "http",
+        "sha256": "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.2.1"
+    },
+    "http_parser": {
+      "dependency": "transitive",
+      "description": {
+        "name": "http_parser",
+        "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.0.2"
+    },
+    "image": {
+      "dependency": "transitive",
+      "description": {
+        "name": "image",
+        "sha256": "4c68bfd5ae83e700b5204c1e74451e7bf3cf750e6843c6e158289cf56bda018e",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.1.7"
+    },
+    "integration_test": {
+      "dependency": "direct main",
+      "description": "flutter",
+      "source": "sdk",
+      "version": "0.0.0"
+    },
+    "js": {
+      "dependency": "transitive",
+      "description": {
+        "name": "js",
+        "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.6.7"
+    },
+    "json_annotation": {
+      "dependency": "transitive",
+      "description": {
+        "name": "json_annotation",
+        "sha256": "b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.8.1"
+    },
+    "leak_tracker": {
+      "dependency": "transitive",
+      "description": {
+        "name": "leak_tracker",
+        "sha256": "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "10.0.0"
+    },
+    "leak_tracker_flutter_testing": {
+      "dependency": "transitive",
+      "description": {
+        "name": "leak_tracker_flutter_testing",
+        "sha256": "b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.1"
+    },
+    "leak_tracker_testing": {
+      "dependency": "transitive",
+      "description": {
+        "name": "leak_tracker_testing",
+        "sha256": "a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.1"
+    },
+    "lints": {
+      "dependency": "transitive",
+      "description": {
+        "name": "lints",
+        "sha256": "a2c3d198cb5ea2e179926622d433331d8b58374ab8f29cdda6e863bd62fd369c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.1"
+    },
+    "logging": {
+      "dependency": "transitive",
+      "description": {
+        "name": "logging",
+        "sha256": "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.2.0"
+    },
+    "lottie": {
+      "dependency": "transitive",
+      "description": {
+        "name": "lottie",
+        "sha256": "1f0ce68112072d66ea271a9841994fa8d16442e23d8cf8996c9fa74174e58b4e",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.0.0"
+    },
+    "markdown": {
+      "dependency": "transitive",
+      "description": {
+        "name": "markdown",
+        "sha256": "1b134d9f8ff2da15cb298efe6cd8b7d2a78958c1b00384ebcbdf13fe340a6c90",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "7.2.1"
+    },
+    "matcher": {
+      "dependency": "transitive",
+      "description": {
+        "name": "matcher",
+        "sha256": "d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.12.16+1"
+    },
+    "material_color_utilities": {
+      "dependency": "transitive",
+      "description": {
+        "name": "material_color_utilities",
+        "sha256": "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.8.0"
+    },
+    "media_kit": {
+      "dependency": "transitive",
+      "description": {
+        "name": "media_kit",
+        "sha256": "3289062540e3b8b9746e5c50d95bd78a9289826b7227e253dff806d002b9e67a",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.1.10+1"
+    },
+    "media_kit_libs_android_video": {
+      "dependency": "transitive",
+      "description": {
+        "name": "media_kit_libs_android_video",
+        "sha256": "9dd8012572e4aff47516e55f2597998f0a378e3d588d0fad0ca1f11a53ae090c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.3.6"
+    },
+    "media_kit_libs_ios_video": {
+      "dependency": "transitive",
+      "description": {
+        "name": "media_kit_libs_ios_video",
+        "sha256": "b5382994eb37a4564c368386c154ad70ba0cc78dacdd3fb0cd9f30db6d837991",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.1.4"
+    },
+    "media_kit_libs_linux": {
+      "dependency": "transitive",
+      "description": {
+        "name": "media_kit_libs_linux",
+        "sha256": "e186891c31daa6bedab4d74dcdb4e8adfccc7d786bfed6ad81fe24a3b3010310",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.1.3"
+    },
+    "media_kit_libs_macos_video": {
+      "dependency": "transitive",
+      "description": {
+        "name": "media_kit_libs_macos_video",
+        "sha256": "f26aa1452b665df288e360393758f84b911f70ffb3878032e1aabba23aa1032d",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.1.4"
+    },
+    "media_kit_libs_video": {
+      "dependency": "transitive",
+      "description": {
+        "name": "media_kit_libs_video",
+        "sha256": "3688e0c31482074578652bf038ce6301a5d21e1eda6b54fc3117ffeb4bdba067",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.4"
+    },
+    "media_kit_libs_windows_video": {
+      "dependency": "transitive",
+      "description": {
+        "name": "media_kit_libs_windows_video",
+        "sha256": "7bace5f35d9afcc7f9b5cdadb7541d2191a66bb3fc71bfa11c1395b3360f6122",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.9"
+    },
+    "media_kit_native_event_loop": {
+      "dependency": "transitive",
+      "description": {
+        "name": "media_kit_native_event_loop",
+        "sha256": "a605cf185499d14d58935b8784955a92a4bf0ff4e19a23de3d17a9106303930e",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.8"
+    },
+    "media_kit_video": {
+      "dependency": "transitive",
+      "description": {
+        "name": "media_kit_video",
+        "sha256": "c048d11a19e379aebbe810647636e3fc6d18374637e2ae12def4ff8a4b99a882",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.2.4"
+    },
+    "meta": {
+      "dependency": "transitive",
+      "description": {
+        "name": "meta",
+        "sha256": "d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.11.0"
+    },
+    "package_info_plus": {
+      "dependency": "transitive",
+      "description": {
+        "name": "package_info_plus",
+        "sha256": "7e76fad405b3e4016cd39d08f455a4eb5199723cf594cd1b8916d47140d93017",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.2.0"
+    },
+    "package_info_plus_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "package_info_plus_platform_interface",
+        "sha256": "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.1"
+    },
+    "path": {
+      "dependency": "transitive",
+      "description": {
+        "name": "path",
+        "sha256": "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.9.0"
+    },
+    "path_parsing": {
+      "dependency": "transitive",
+      "description": {
+        "name": "path_parsing",
+        "sha256": "e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.1"
+    },
+    "path_provider": {
+      "dependency": "transitive",
+      "description": {
+        "name": "path_provider",
+        "sha256": "b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.2"
+    },
+    "path_provider_android": {
+      "dependency": "transitive",
+      "description": {
+        "name": "path_provider_android",
+        "sha256": "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.2.2"
+    },
+    "path_provider_foundation": {
+      "dependency": "transitive",
+      "description": {
+        "name": "path_provider_foundation",
+        "sha256": "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.3.2"
+    },
+    "path_provider_linux": {
+      "dependency": "transitive",
+      "description": {
+        "name": "path_provider_linux",
+        "sha256": "f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.2.1"
+    },
+    "path_provider_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "path_provider_platform_interface",
+        "sha256": "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.2"
+    },
+    "path_provider_windows": {
+      "dependency": "transitive",
+      "description": {
+        "name": "path_provider_windows",
+        "sha256": "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.2.1"
+    },
+    "petitparser": {
+      "dependency": "transitive",
+      "description": {
+        "name": "petitparser",
+        "sha256": "c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "6.0.2"
+    },
+    "platform": {
+      "dependency": "transitive",
+      "description": {
+        "name": "platform",
+        "sha256": "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.1.4"
+    },
+    "plugin_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "plugin_platform_interface",
+        "sha256": "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.8"
+    },
+    "pointycastle": {
+      "dependency": "transitive",
+      "description": {
+        "name": "pointycastle",
+        "sha256": "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.7.4"
+    },
+    "process": {
+      "dependency": "transitive",
+      "description": {
+        "name": "process",
+        "sha256": "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "5.0.2"
+    },
+    "record": {
+      "dependency": "transitive",
+      "description": {
+        "name": "record",
+        "sha256": "5c8e12c692a4800b33f5f8b6c821ea083b12bfdbd031b36ba9322c40a4eeecc9",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "5.0.4"
+    },
+    "record_android": {
+      "dependency": "transitive",
+      "description": {
+        "name": "record_android",
+        "sha256": "805ecaa232a671aff2ee9ec4730ef6addb97c548d2db6b1fbd5197f1d4f47a5a",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.4"
+    },
+    "record_darwin": {
+      "dependency": "transitive",
+      "description": {
+        "name": "record_darwin",
+        "sha256": "ee8cb1bb1712d7ce38140ecabe70e5c286c02f05296d66043bee865ace7eb1b9",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.1"
+    },
+    "record_linux": {
+      "dependency": "transitive",
+      "description": {
+        "name": "record_linux",
+        "sha256": "7d0e70cd51635128fe9d37d89bafd6011d7cbba9af8dc323079ae60f23546aef",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.7.1"
+    },
+    "record_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "record_platform_interface",
+        "sha256": "3a4b56e94ecd2a0b2b43eb1fa6f94c5b8484334f5d38ef43959c4bf97fb374cf",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.2"
+    },
+    "record_web": {
+      "dependency": "transitive",
+      "description": {
+        "name": "record_web",
+        "sha256": "24847cdbcf999f7a5762170792f622ac844858766becd0f2370ec8ae22f7526e",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.5"
+    },
+    "record_windows": {
+      "dependency": "transitive",
+      "description": {
+        "name": "record_windows",
+        "sha256": "39998b3ea7d8d28b04159d82220e6e5e32a7c357c6fb2794f5736beea272f6c3",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.2"
+    },
+    "redux": {
+      "dependency": "transitive",
+      "description": {
+        "name": "redux",
+        "sha256": "1e86ed5b1a9a717922d0a0ca41f9bf49c1a587d50050e9426fc65b14e85ec4d7",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "5.0.0"
+    },
+    "safe_local_storage": {
+      "dependency": "transitive",
+      "description": {
+        "name": "safe_local_storage",
+        "sha256": "ede4eb6cb7d88a116b3d3bf1df70790b9e2038bc37cb19112e381217c74d9440",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.2"
+    },
+    "screen_brightness": {
+      "dependency": "transitive",
+      "description": {
+        "name": "screen_brightness",
+        "sha256": "ed8da4a4511e79422fc1aa88138e920e4008cd312b72cdaa15ccb426c0faaedd",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.2.2+1"
+    },
+    "screen_brightness_android": {
+      "dependency": "transitive",
+      "description": {
+        "name": "screen_brightness_android",
+        "sha256": "3df10961e3a9e968a5e076fe27e7f4741fa8a1d3950bdeb48cf121ed529d0caf",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.1.0+2"
+    },
+    "screen_brightness_ios": {
+      "dependency": "transitive",
+      "description": {
+        "name": "screen_brightness_ios",
+        "sha256": "99adc3ca5490b8294284aad5fcc87f061ad685050e03cf45d3d018fe398fd9a2",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.1.0"
+    },
+    "screen_brightness_macos": {
+      "dependency": "transitive",
+      "description": {
+        "name": "screen_brightness_macos",
+        "sha256": "64b34e7e3f4900d7687c8e8fb514246845a73ecec05ab53483ed025bd4a899fd",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.1.0+1"
+    },
+    "screen_brightness_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "screen_brightness_platform_interface",
+        "sha256": "b211d07f0c96637a15fb06f6168617e18030d5d74ad03795dd8547a52717c171",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.1.0"
+    },
+    "screen_brightness_windows": {
+      "dependency": "transitive",
+      "description": {
+        "name": "screen_brightness_windows",
+        "sha256": "9261bf33d0fc2707d8cf16339ce25768100a65e70af0fcabaf032fc12408ba86",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.1.3"
+    },
+    "screen_retriever": {
+      "dependency": "transitive",
+      "description": {
+        "name": "screen_retriever",
+        "sha256": "6ee02c8a1158e6dae7ca430da79436e3b1c9563c8cf02f524af997c201ac2b90",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.1.9"
+    },
+    "sensors_plus": {
+      "dependency": "transitive",
+      "description": {
+        "name": "sensors_plus",
+        "sha256": "8e7fa79b4940442bb595bfc0ee9da4af5a22a0fe6ebacc74998245ee9496a82d",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.0.2"
+    },
+    "sensors_plus_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "sensors_plus_platform_interface",
+        "sha256": "bc472d6cfd622acb4f020e726433ee31788b038056691ba433fec80e448a094f",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.2.0"
+    },
+    "shared_preferences": {
+      "dependency": "transitive",
+      "description": {
+        "name": "shared_preferences",
+        "sha256": "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.2.2"
+    },
+    "shared_preferences_android": {
+      "dependency": "transitive",
+      "description": {
+        "name": "shared_preferences_android",
+        "sha256": "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.2.1"
+    },
+    "shared_preferences_foundation": {
+      "dependency": "transitive",
+      "description": {
+        "name": "shared_preferences_foundation",
+        "sha256": "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.3.5"
+    },
+    "shared_preferences_linux": {
+      "dependency": "transitive",
+      "description": {
+        "name": "shared_preferences_linux",
+        "sha256": "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.3.2"
+    },
+    "shared_preferences_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "shared_preferences_platform_interface",
+        "sha256": "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.3.2"
+    },
+    "shared_preferences_web": {
+      "dependency": "transitive",
+      "description": {
+        "name": "shared_preferences_web",
+        "sha256": "d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.2.1"
+    },
+    "shared_preferences_windows": {
+      "dependency": "transitive",
+      "description": {
+        "name": "shared_preferences_windows",
+        "sha256": "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.3.2"
+    },
+    "sky_engine": {
+      "dependency": "transitive",
+      "description": "flutter",
+      "source": "sdk",
+      "version": "0.0.99"
+    },
+    "source_span": {
+      "dependency": "transitive",
+      "description": {
+        "name": "source_span",
+        "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.10.0"
+    },
+    "sprintf": {
+      "dependency": "transitive",
+      "description": {
+        "name": "sprintf",
+        "sha256": "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "7.0.0"
+    },
+    "stack_trace": {
+      "dependency": "transitive",
+      "description": {
+        "name": "stack_trace",
+        "sha256": "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.11.1"
+    },
+    "stream_channel": {
+      "dependency": "transitive",
+      "description": {
+        "name": "stream_channel",
+        "sha256": "ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.2"
+    },
+    "string_scanner": {
+      "dependency": "transitive",
+      "description": {
+        "name": "string_scanner",
+        "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.2.0"
+    },
+    "sync_http": {
+      "dependency": "transitive",
+      "description": {
+        "name": "sync_http",
+        "sha256": "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.3.1"
+    },
+    "synchronized": {
+      "dependency": "transitive",
+      "description": {
+        "name": "synchronized",
+        "sha256": "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.1.0+1"
+    },
+    "term_glyph": {
+      "dependency": "transitive",
+      "description": {
+        "name": "term_glyph",
+        "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.2.1"
+    },
+    "test_api": {
+      "dependency": "transitive",
+      "description": {
+        "name": "test_api",
+        "sha256": "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.6.1"
+    },
+    "typed_data": {
+      "dependency": "transitive",
+      "description": {
+        "name": "typed_data",
+        "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.3.2"
+    },
+    "universal_platform": {
+      "dependency": "transitive",
+      "description": {
+        "name": "universal_platform",
+        "sha256": "d315be0f6641898b280ffa34e2ddb14f3d12b1a37882557869646e0cc363d0cc",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.0+1"
+    },
+    "uri_parser": {
+      "dependency": "transitive",
+      "description": {
+        "name": "uri_parser",
+        "sha256": "6543c9fd86d2862fac55d800a43e67c0dcd1a41677cb69c2f8edfe73bbcf1835",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.2"
+    },
+    "url_launcher": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher",
+        "sha256": "c512655380d241a337521703af62d2c122bf7b77a46ff7dd750092aa9433499c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "6.2.4"
+    },
+    "url_launcher_android": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher_android",
+        "sha256": "d4ed0711849dd8e33eb2dd69c25db0d0d3fdc37e0a62e629fe32f57a22db2745",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "6.3.0"
+    },
+    "url_launcher_ios": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher_ios",
+        "sha256": "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "6.2.4"
+    },
+    "url_launcher_linux": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher_linux",
+        "sha256": "ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.1.1"
+    },
+    "url_launcher_macos": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher_macos",
+        "sha256": "b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.1.0"
+    },
+    "url_launcher_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher_platform_interface",
+        "sha256": "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.3.2"
+    },
+    "url_launcher_web": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher_web",
+        "sha256": "7fd2f55fe86cea2897b963e864dc01a7eb0719ecc65fcef4c1cc3d686d718bb2",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.2.0"
+    },
+    "url_launcher_windows": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher_windows",
+        "sha256": "ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.1.1"
+    },
+    "url_strategy": {
+      "dependency": "direct main",
+      "description": {
+        "name": "url_strategy",
+        "sha256": "42b68b42a9864c4d710401add17ad06e28f1c1d5500c93b98c431f6b0ea4ab87",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.2.0"
+    },
+    "uuid": {
+      "dependency": "transitive",
+      "description": {
+        "name": "uuid",
+        "sha256": "cd210a09f7c18cbe5a02511718e0334de6559871052c90a90c0cca46a4aa81c8",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.3.3"
+    },
+    "vector_graphics": {
+      "dependency": "transitive",
+      "description": {
+        "name": "vector_graphics",
+        "sha256": "4ac59808bbfca6da38c99f415ff2d3a5d7ca0a6b4809c71d9cf30fba5daf9752",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.1.10+1"
+    },
+    "vector_graphics_codec": {
+      "dependency": "transitive",
+      "description": {
+        "name": "vector_graphics_codec",
+        "sha256": "f3247e7ab0ec77dc759263e68394990edc608fb2b480b80db8aa86ed09279e33",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.1.10+1"
+    },
+    "vector_graphics_compiler": {
+      "dependency": "transitive",
+      "description": {
+        "name": "vector_graphics_compiler",
+        "sha256": "18489bdd8850de3dd7ca8a34e0c446f719ec63e2bab2e7a8cc66a9028dd76c5a",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.1.10+1"
+    },
+    "vector_math": {
+      "dependency": "transitive",
+      "description": {
+        "name": "vector_math",
+        "sha256": "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.4"
+    },
+    "vm_service": {
+      "dependency": "transitive",
+      "description": {
+        "name": "vm_service",
+        "sha256": "b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "13.0.0"
+    },
+    "volume_controller": {
+      "dependency": "transitive",
+      "description": {
+        "name": "volume_controller",
+        "sha256": "189bdc7a554f476b412e4c8b2f474562b09d74bc458c23667356bce3ca1d48c9",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.7"
+    },
+    "wakelock_plus": {
+      "dependency": "transitive",
+      "description": {
+        "name": "wakelock_plus",
+        "sha256": "f268ca2116db22e57577fb99d52515a24bdc1d570f12ac18bb762361d43b043d",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.1.4"
+    },
+    "wakelock_plus_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "wakelock_plus_platform_interface",
+        "sha256": "40fabed5da06caff0796dc638e1f07ee395fb18801fbff3255a2372db2d80385",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.1.0"
+    },
+    "web": {
+      "dependency": "transitive",
+      "description": {
+        "name": "web",
+        "sha256": "1d9158c616048c38f712a6646e317a3426da10e884447626167240d45209cbad",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.5.0"
+    },
+    "web_socket_channel": {
+      "dependency": "transitive",
+      "description": {
+        "name": "web_socket_channel",
+        "sha256": "1d8e795e2a8b3730c41b8a98a2dff2e0fb57ae6f0764a1c46ec5915387d257b2",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.4.4"
+    },
+    "webdriver": {
+      "dependency": "transitive",
+      "description": {
+        "name": "webdriver",
+        "sha256": "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.0.3"
+    },
+    "webview_flutter": {
+      "dependency": "transitive",
+      "description": {
+        "name": "webview_flutter",
+        "sha256": "25e1b6e839e8cbfbd708abc6f85ed09d1727e24e08e08c6b8590d7c65c9a8932",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.7.0"
+    },
+    "webview_flutter_android": {
+      "dependency": "transitive",
+      "description": {
+        "name": "webview_flutter_android",
+        "sha256": "3e5f4e9d818086b0d01a66fb1ff9cc72ab0cc58c71980e3d3661c5685ea0efb0",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.15.0"
+    },
+    "webview_flutter_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "webview_flutter_platform_interface",
+        "sha256": "d937581d6e558908d7ae3dc1989c4f87b786891ab47bb9df7de548a151779d8d",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.10.0"
+    },
+    "webview_flutter_wkwebview": {
+      "dependency": "transitive",
+      "description": {
+        "name": "webview_flutter_wkwebview",
+        "sha256": "9bf168bccdf179ce90450b5f37e36fe263f591c9338828d6bf09b6f8d0f57f86",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.12.0"
+    },
+    "win32": {
+      "dependency": "transitive",
+      "description": {
+        "name": "win32",
+        "sha256": "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "5.2.0"
+    },
+    "window_manager": {
+      "dependency": "transitive",
+      "description": {
+        "name": "window_manager",
+        "sha256": "b3c895bdf936c77b83c5254bec2e6b3f066710c1f89c38b20b8acc382b525494",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.3.8"
+    },
+    "window_to_front": {
+      "dependency": "transitive",
+      "description": {
+        "name": "window_to_front",
+        "sha256": "7aef379752b7190c10479e12b5fd7c0b9d92adc96817d9e96c59937929512aee",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.0.3"
+    },
+    "xdg_directories": {
+      "dependency": "transitive",
+      "description": {
+        "name": "xdg_directories",
+        "sha256": "faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.4"
+    },
+    "xml": {
+      "dependency": "transitive",
+      "description": {
+        "name": "xml",
+        "sha256": "b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "6.5.0"
+    },
+    "yaml": {
+      "dependency": "transitive",
+      "description": {
+        "name": "yaml",
+        "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.1.2"
+    }
+  },
+  "sdks": {
+    "dart": ">=3.3.0 <4.0.0",
+    "flutter": ">=3.16.6"
+  }
+}
diff --git a/nixpkgs/pkgs/by-name/fo/folio/package.nix b/nixpkgs/pkgs/by-name/fo/folio/package.nix
new file mode 100644
index 000000000000..08030d25def2
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fo/folio/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, vala
+, blueprint-compiler
+, wrapGAppsHook4
+, desktop-file-utils
+, libadwaita
+, libgee
+, gtksourceview5
+}:
+
+stdenv.mkDerivation rec {
+  pname = "folio";
+  version = "24.08";
+
+  src = fetchFromGitHub {
+    owner = "toolstack";
+    repo = "Folio";
+    rev = version;
+    hash = "sha256-IwcLz5b2aEVUE0YS3qZ3238ksucQFpPl3eQGIjQo+pA=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    vala
+    blueprint-compiler
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    libadwaita
+    libgee
+    gtksourceview5
+  ];
+
+  meta = with lib; {
+    description = "A beautiful markdown note-taking app for GNOME (forked from Paper)";
+    homepage = "https://github.com/toolstack/Folio";
+    license = licenses.gpl3Only;
+    mainProgram = "com.toolstack.Folio";
+    maintainers = with maintainers; [ aleksana ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/fo/foonathan-memory/package.nix b/nixpkgs/pkgs/by-name/fo/foonathan-memory/package.nix
index 66177fabc22a..7e2141ef042c 100644
--- a/nixpkgs/pkgs/by-name/fo/foonathan-memory/package.nix
+++ b/nixpkgs/pkgs/by-name/fo/foonathan-memory/package.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/foonathan/memory";
     changelog = "https://github.com/foonathan/memory/releases/tag/${finalAttrs.src.rev}";
     description = "STL compatible C++ memory allocator library";
+    mainProgram = "nodesize_dbg";
 
     longDescription = ''
       The C++ STL allocator model has various flaws. For example, they are
diff --git a/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix b/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix
index 423a1dd1f2e5..90d10fc87f40 100644
--- a/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix
+++ b/nixpkgs/pkgs/by-name/fr/frankenphp/package.nix
@@ -35,7 +35,7 @@ in buildGoModule rec {
     hash = "sha256-tQ35GZuw7Ag1YfmOUarVY45yk4yugNLJetEV4m2w3GE=";
   };
 
-  sourceRoot = "source/caddy";
+  sourceRoot = "${src.name}/caddy";
 
   # frankenphp requires C code that would be removed with `go mod tidy`
   # https://github.com/golang/go/issues/26366
diff --git a/nixpkgs/pkgs/by-name/fr/free42/package.nix b/nixpkgs/pkgs/by-name/fr/free42/package.nix
index a552921153d3..415f6f6f8b9d 100644
--- a/nixpkgs/pkgs/by-name/fr/free42/package.nix
+++ b/nixpkgs/pkgs/by-name/fr/free42/package.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "free42";
-  version = "3.1.4";
+  version = "3.1.5";
 
   src = fetchFromGitHub {
     owner = "thomasokken";
     repo = "free42";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-XAYi4CBOx5KkqJyz6WkPlWC+bfbEReyaSv9SRCe6TDw=";
+    hash = "sha256-YFTmEyOd/r8Pbj+PzD+VYkkB0gqDJ4wteLBTdwa1qcE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/freecad/0001-NIXOS-don-t-ignore-PYTHONPATH.patch b/nixpkgs/pkgs/by-name/fr/freecad/0001-NIXOS-don-t-ignore-PYTHONPATH.patch
index 27e5fb81b8d0..27e5fb81b8d0 100644
--- a/nixpkgs/pkgs/applications/graphics/freecad/0001-NIXOS-don-t-ignore-PYTHONPATH.patch
+++ b/nixpkgs/pkgs/by-name/fr/freecad/0001-NIXOS-don-t-ignore-PYTHONPATH.patch
diff --git a/nixpkgs/pkgs/applications/graphics/freecad/default.nix b/nixpkgs/pkgs/by-name/fr/freecad/package.nix
index 1ef114c9c496..436d94bd0f98 100644
--- a/nixpkgs/pkgs/applications/graphics/freecad/default.nix
+++ b/nixpkgs/pkgs/by-name/fr/freecad/package.nix
@@ -1,14 +1,10 @@
 { lib
-, fmt
-, stdenv
-, fetchFromGitHub
 , cmake
-, doxygen
-, ninja
-, gitpython
-, boost
 , coin3d
+, doxygen
 , eigen
+, fetchFromGitHub
+, fmt
 , freecad  # for passthru.tests
 , gfortran
 , gts
@@ -17,38 +13,48 @@
 , libXmu
 , libf2c
 , libredwg
+, libsForQt5
 , libspnav
-, matplotlib
 , medfile
 , mpi
+, ninja
 , ode
 , opencascade-occt
-, pivy
 , pkg-config
-, ply
-, pycollada
-, pyside2
-, pyside2-tools
-, python
-, pyyaml
-, qtbase
-, qttools
-, qtwebengine
-, qtx11extras
-, qtxmlpatterns
+, python3Packages
 , runCommand  # for passthru.tests
-, scipy
-, shiboken2
-, soqt
 , spaceNavSupport ? stdenv.isLinux
+, stdenv
 , swig
 , vtk
-, wrapQtAppsHook
 , wrapGAppsHook
 , xercesc
 , zlib
 }:
 
+let
+  boost = python3Packages.boost;
+  inherit (libsForQt5)
+    qtbase
+    qttools
+    qtwebengine
+    qtx11extras
+    qtxmlpatterns
+    soqt
+    wrapQtAppsHook;
+  inherit (python3Packages)
+    gitpython
+    matplotlib
+    pivy
+    ply
+    pycollada
+    pyside2
+    pyside2-tools
+    python
+    pyyaml
+    scipy
+    shiboken2;
+in
 stdenv.mkDerivation (finalAttrs: {
   pname = "freecad";
   version = "0.21.2";
diff --git a/nixpkgs/pkgs/by-name/fr/frequest/package.nix b/nixpkgs/pkgs/by-name/fr/frequest/package.nix
new file mode 100644
index 000000000000..cd157115ecfa
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/fr/frequest/package.nix
@@ -0,0 +1,60 @@
+{ lib, stdenv, fetchFromGitHub, qt5 }:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "frequest";
+  version = "1.2a";
+
+  srcs = [
+    (fetchFromGitHub {
+      owner = "fabiobento512";
+      name = "frequest";
+      repo = "FRequest";
+      rev = "v${finalAttrs.version}";
+      hash = "sha256-fdn3MK5GWBOhJjpMtRaytO9EsVzz6KJknDhqWtAyXCc=";
+    })
+    # The application depends on hard-coded relative paths to ../CommonLibs and ../CommonUtils.
+    # See https://github.com/fabiobento512/FRequest/wiki/Building-FRequest for more info.
+    # Upstream provides no tags for these dependencies, use latest commit on their `master` branch.
+    # Changing the name of these srcs will break the build.
+    (fetchFromGitHub {
+      owner = "fabiobento512";
+      name = "CommonLibs";
+      repo = "CommonLibs";
+      rev = "d3906931bb06ddf4194ff711a59e1dcff80fa82f";
+      hash = "sha256-iLJJ95yJ+VjNPuk8fNEDvYBI0db0rcfJF12a9azGv1Y=";
+    })
+    (fetchFromGitHub {
+      owner = "fabiobento512";
+      name = "CommonUtils";
+      repo = "CommonUtils";
+      rev = "53970984f6538d78350be1b9426032bcb5bcf818";
+      hash = "sha256-nRv9DriSOuAiWhy+KkOVNEz5oSgNNNJZqk8sNwgbx8U=";
+    })
+  ];
+  sourceRoot = "frequest";
+
+  buildInputs = [
+    qt5.qtbase
+  ];
+
+  nativeBuildInputs = [
+    qt5.wrapQtAppsHook
+    qt5.qmake
+  ];
+
+  # Without this, nothing gets installed in $out.
+  postInstall = ''
+    install -D FRequest $out/bin/FRequest
+    install -D LinuxAppImageDeployment/frequest.desktop $out/share/applications/frequest.desktop
+    install -D LinuxAppImageDeployment/frequest_icon.png $out/share/icons/hicolor/128x128/apps/frequest_icon.png
+  '';
+
+  meta = {
+    description = "A fast, lightweight and opensource desktop application to make HTTP(s) requests";
+    homepage = "https://fabiobento512.github.io/FRequest";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ eliandoran ];
+    platforms = lib.platforms.linux;
+    mainProgram = "frequest";
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/fr/fretboard/package.nix b/nixpkgs/pkgs/by-name/fr/fretboard/package.nix
index 093ad1ac8d67..fa772d61867f 100644
--- a/nixpkgs/pkgs/by-name/fr/fretboard/package.nix
+++ b/nixpkgs/pkgs/by-name/fr/fretboard/package.nix
@@ -1,6 +1,7 @@
 { lib
 , blueprint-compiler
 , cargo
+, darwin
 , desktop-file-utils
 , fetchFromGitHub
 , glib
@@ -17,19 +18,19 @@
 
 stdenv.mkDerivation rec {
   pname = "fretboard";
-  version = "5.3";
+  version = "5.4";
 
   src = fetchFromGitHub {
     owner = "bragefuglseth";
-    repo = pname;
+    repo = "fretboard";
     rev = "v${version}";
-    hash = "sha256-wwq4Xq6IVLF2hICk9HfCpfxpWer8PNWywD8p3wQdp6U=";
+    hash = "sha256-GqnwAB7hmg2QLwSWqrZtTp6+FybK8/v4GZx/lMi0dGY=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-H/dAKaYHxRmldny8EoasrcDROZhLo5UbHPAoMicDehA=";
+    hash = "sha256-sGvb1+HKIqNSgCV9UzkCrkGrpjA34Pe9eq2/w3K/w/E=";
   };
 
   nativeBuildInputs = [
@@ -48,8 +49,14 @@ stdenv.mkDerivation rec {
     glib
     gtk4
     libadwaita
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Foundation
   ];
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-error=incompatible-function-pointer-types"
+  ]);
+
   meta = with lib; {
     description = "Look up guitar chords";
     homepage = "https://github.com/bragefuglseth/fretboard";
@@ -57,6 +64,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ michaelgrahamevans ];
     mainProgram = "fretboard";
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/by-name/fr/fritz-exporter/console-script.patch b/nixpkgs/pkgs/by-name/fr/fritz-exporter/console-script.patch
deleted file mode 100644
index e13e78f2d184..000000000000
--- a/nixpkgs/pkgs/by-name/fr/fritz-exporter/console-script.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/pyproject.toml b/pyproject.toml
-index ffad1a4..e7551da 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -44,6 +44,9 @@ coverage = ">=6.4.4,<8.0.0"
- pytest-cov = ">=3,<5"
- ruff = "^0.1.7"
- 
-+[tool.poetry.scripts]
-+fritzexporter = "fritzexporter.__main__:main"
-+
- [build-system]
- requires = ["poetry-core"]
- build-backend = "poetry.core.masonry.api"
diff --git a/nixpkgs/pkgs/by-name/fr/fritz-exporter/package.nix b/nixpkgs/pkgs/by-name/fr/fritz-exporter/package.nix
index 3306802b840f..d79b74eb9a2b 100644
--- a/nixpkgs/pkgs/by-name/fr/fritz-exporter/package.nix
+++ b/nixpkgs/pkgs/by-name/fr/fritz-exporter/package.nix
@@ -5,21 +5,16 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "fritz-exporter";
-  version = "2.3.1";
+  version = "2.5.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pdreker";
     repo = "fritz_exporter";
     rev = "fritzexporter-v${version}";
-    hash = "sha256-Dv/2Og1OJV7canZ8Y5Pai5gPRUvcRDYmSGoD2pnAkSs=";
+    hash = "sha256-x5WCVDIKdreQCmVpiWbmVBNo42P5kSxX9dLMBKfZTWc=";
   };
 
-  patches = [
-    # https://github.com/pdreker/fritz_exporter/pull/282
-    ./console-script.patch
-  ];
-
   postPatch = ''
     # don't test coverage
     sed -i "/^addopts/d" pyproject.toml
@@ -31,6 +26,7 @@ python3.pkgs.buildPythonApplication rec {
 
   propagatedBuildInputs = with python3.pkgs; [
     attrs
+    defusedxml
     fritzconnection
     prometheus-client
     pyyaml
diff --git a/nixpkgs/pkgs/applications/emulators/fs-uae/launcher.nix b/nixpkgs/pkgs/by-name/fs/fsuae-launcher/package.nix
index 51349182832a..da6eb5ed35b8 100644
--- a/nixpkgs/pkgs/applications/emulators/fs-uae/launcher.nix
+++ b/nixpkgs/pkgs/by-name/fs/fsuae-launcher/package.nix
@@ -1,33 +1,35 @@
 { lib
-, stdenv
 , fetchurl
-, gettext
-, python3
-, wrapQtAppsHook
 , fsuae
+, gettext
+, python3Packages
+, stdenv
+, libsForQt5
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fs-uae-launcher";
-  version = "3.1.68";
+  version = "3.1.70";
 
   src = fetchurl {
     url = "https://fs-uae.net/files/FS-UAE-Launcher/Stable/${finalAttrs.version}/fs-uae-launcher-${finalAttrs.version}.tar.xz";
-    hash = "sha256-42EERC2yeODx0HPbwr4vmpN80z6WSWi3WzJMOT+OwDA=";
+    hash = "sha256-yvJ8sa44V13SEUJ6C9SgS+N2ZFH5+20TTL2ICY9A36c=";
   };
 
   nativeBuildInputs = [
     gettext
-    python3
-    wrapQtAppsHook
+    python3Packages.python
+    libsForQt5.wrapQtAppsHook
   ];
 
-  buildInputs = with python3.pkgs; [
+  buildInputs = with python3Packages; [
     pyqt5
     requests
     setuptools
   ];
 
+  strictDeps = true;
+
   makeFlags = [ "prefix=$(out)" ];
 
   dontWrapQtApps = true;
@@ -47,8 +49,9 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://fs-uae.net";
     description = "Graphical front-end for the FS-UAE emulator";
     license = lib.licenses.gpl2Plus;
+    mainProgram = "fs-uae-launcher";
     maintainers = with lib.maintainers; [ sander AndersonTorres ];
-    platforms = [ "i686-linux" "x86_64-linux" ];
+    platforms = with lib.systems.inspect;
+      patternLogicalAnd patterns.isx86 patterns.isLinux;
   };
 })
-
diff --git a/nixpkgs/pkgs/applications/emulators/fs-uae/default.nix b/nixpkgs/pkgs/by-name/fs/fsuae/package.nix
index 8f22a86283ed..9d8beaad4114 100644
--- a/nixpkgs/pkgs/applications/emulators/fs-uae/default.nix
+++ b/nixpkgs/pkgs/by-name/fs/fsuae/package.nix
@@ -1,8 +1,7 @@
 { lib
-, stdenv
-, fetchFromGitHub
 , SDL2
 , autoreconfHook
+, fetchFromGitHub
 , freetype
 , gettext
 , glib
@@ -13,6 +12,8 @@
 , lua
 , openal
 , pkg-config
+, strip-nondeterminism
+, stdenv
 , zip
 , zlib
 }:
@@ -31,6 +32,8 @@ stdenv.mkDerivation (finalAttrs:{
   nativeBuildInputs = [
     autoreconfHook
     pkg-config
+    strip-nondeterminism
+    zip
   ];
 
   buildInputs = [
@@ -44,10 +47,16 @@ stdenv.mkDerivation (finalAttrs:{
     libmpeg2
     lua
     openal
-    zip
     zlib
   ];
 
+  strictDeps = true;
+
+  # Make sure that the build timestamp is not included in the archive
+  postFixup = ''
+    strip-nondeterminism --type zip $out/share/fs-uae/fs-uae.dat
+  '';
+
   meta = {
     homepage = "https://fs-uae.net";
     description = "An accurate, customizable Amiga Emulator";
@@ -58,7 +67,9 @@ stdenv.mkDerivation (finalAttrs:{
       Amigas.
     '';
     license = lib.licenses.gpl2Plus;
+    mainProgram = "fs-uae";
     maintainers = with lib.maintainers; [ AndersonTorres ];
-    platforms = [ "i686-linux" "x86_64-linux" ];
+    platforms = with lib.systems.inspect;
+      patternLogicalAnd patterns.isx86 patterns.isLinux;
   };
 })
diff --git a/nixpkgs/pkgs/by-name/fw/fwupd/package.nix b/nixpkgs/pkgs/by-name/fw/fwupd/package.nix
index e87ebdc04d6f..6de468ab47b5 100644
--- a/nixpkgs/pkgs/by-name/fw/fwupd/package.nix
+++ b/nixpkgs/pkgs/by-name/fw/fwupd/package.nix
@@ -120,7 +120,7 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "fwupd";
-  version = "1.9.14";
+  version = "1.9.15";
 
   # libfwupd goes to lib
   # daemon, plug-ins and libfwupdplugin go to out
@@ -131,7 +131,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "fwupd";
     repo = "fwupd";
     rev = finalAttrs.version;
-    hash = "sha256-pG4pRksHw8p8rz99UnLURP+ROE+P+ySt4IlfmyRc1CQ=";
+    hash = "sha256-w0egw5FKNAOnIYjp2RUx74taivnClQmRfhaFHdKOGZc=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/by-name/fy/fypp/package.nix b/nixpkgs/pkgs/by-name/fy/fypp/package.nix
index 7785b67eda26..fe6cd3267bbb 100644
--- a/nixpkgs/pkgs/by-name/fy/fypp/package.nix
+++ b/nixpkgs/pkgs/by-name/fy/fypp/package.nix
@@ -16,6 +16,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Python powered Fortran preprocessor";
+    mainProgram = "fypp";
     homepage = "https://github.com/aradi/fypp";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.sheepforce ];
diff --git a/nixpkgs/pkgs/by-name/g3/g3kb-switch/package.nix b/nixpkgs/pkgs/by-name/g3/g3kb-switch/package.nix
new file mode 100644
index 000000000000..91994eb36624
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/g3/g3kb-switch/package.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, cmake
+, pkg-config
+, glib
+, fetchFromGitHub
+}:
+stdenv.mkDerivation rec {
+  pname = "g3kb-switch";
+  version = "1.4";
+  src = fetchFromGitHub {
+    owner = "lyokha";
+    repo = "g3kb-switch";
+    rev = version;
+    sha256 = "sha256-mcZduHcteZ+nS0YEZG5DfmpA8xrnLhwxumq6hLuLPIs=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+  buildInputs = [
+    glib
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/lyokha/g3kb-switch";
+    description = "CLI keyboard layout switcher for GNOME Shell";
+    mainProgram = "g3kb-switch";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ Freed-Wu ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ga/gamja/package.nix b/nixpkgs/pkgs/by-name/ga/gamja/package.nix
new file mode 100644
index 000000000000..d72934038a8a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ga/gamja/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  fetchFromSourcehut,
+  buildNpmPackage,
+  writeText,
+  # https://git.sr.ht/~emersion/gamja/tree/master/doc/config-file.md
+  gamjaConfig ? null,
+}:
+buildNpmPackage rec {
+  pname = "gamja";
+  version = "1.0.0-beta.9";
+
+  src = fetchFromSourcehut {
+    owner = "~emersion";
+    repo = "gamja";
+    rev = "v${version}";
+    hash = "sha256-09rCj9oMzldRrxMGH4rUnQ6wugfhfmJP3rHET5b+NC8=";
+  };
+
+  npmDepsHash = "sha256-LxShwZacCctKAfMNCUMyrSaI1hIVN80Wseq/d8WITkc=";
+
+  installPhase = ''
+    runHook preInstall
+
+    cp -r dist $out
+    ${lib.optionalString (gamjaConfig != null) "cp ${writeText "gamja-config" (builtins.toJSON gamjaConfig)} $out/config.json"}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A simple IRC web client";
+    homepage = "https://git.sr.ht/~emersion/gamja";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [motiejus apfelkuchen6];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ga/gash/package.nix b/nixpkgs/pkgs/by-name/ga/gash/package.nix
index 49dca7962907..cd6136dbc90f 100644
--- a/nixpkgs/pkgs/by-name/ga/gash/package.nix
+++ b/nixpkgs/pkgs/by-name/ga/gash/package.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "POSIX-compatible shell written in Guile Scheme";
+    mainProgram = "gash";
     homepage = "https://savannah.nongnu.org/projects/gash/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ wegank ];
diff --git a/nixpkgs/pkgs/by-name/ga/gatus/package.nix b/nixpkgs/pkgs/by-name/ga/gatus/package.nix
index bfd1f2c9685d..311d0ff8ce63 100644
--- a/nixpkgs/pkgs/by-name/ga/gatus/package.nix
+++ b/nixpkgs/pkgs/by-name/ga/gatus/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gatus";
-  version = "5.7.0";
+  version = "5.8.0";
 
   src = fetchFromGitHub {
     owner = "TwiN";
     repo = "gatus";
     rev = "v${version}";
-    hash = "sha256-GG5p2sAIameGo6IFt3IBwFuLfVFRbfHjrQrG6Ei9odA=";
+    hash = "sha256-FFnrtdJiN7B27sJXzoGsbPKX3NeuHOtA34WQrw6pvEI=";
   };
 
-  vendorHash = "sha256-VYHBqVFXX7fUuW2UqPOlbRDEfcysYvjSlfm0UJ2mMGM=";
+  vendorHash = "sha256-VICVo7XYeHs/43knHA4CMSgHloyYSjOFe1TUb4u+egE=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/by-name/gc/gcs/package.nix b/nixpkgs/pkgs/by-name/gc/gcs/package.nix
index 3ded7802d674..406db2018624 100644
--- a/nixpkgs/pkgs/by-name/gc/gcs/package.nix
+++ b/nixpkgs/pkgs/by-name/gc/gcs/package.nix
@@ -59,11 +59,6 @@ buildGoModule rec {
   flags = [ "-a -trimpath" ];
   ldflags = [ "-s" "-w" "-X github.com/richardwilkes/toolbox/cmdline.AppVersion=${version}" ];
 
-  # Workaround for https://github.com/NixOS/nixpkgs/issues/166205
-  env = lib.optionalAttrs (stdenv.cc.libcxx != null) {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   installPhase = ''
     runHook preInstall
     install -Dm755 $GOPATH/bin/gcs -t $out/bin
diff --git a/nixpkgs/pkgs/by-name/ge/gerbolyze/package.nix b/nixpkgs/pkgs/by-name/ge/gerbolyze/package.nix
index ce177e6aa03b..0e61a64dd94b 100644
--- a/nixpkgs/pkgs/by-name/ge/gerbolyze/package.nix
+++ b/nixpkgs/pkgs/by-name/ge/gerbolyze/package.nix
@@ -37,7 +37,7 @@ let
     meta = with lib; {
       description = "svg-flatten SVG downconverter";
       homepage = "https://github.com/jaseg/gerbolyze";
-      license = with licenses; [ agpl3 ];
+      license = with licenses; [ agpl3Plus ];
       maintainers = with maintainers; [ wulfsta ];
       mainProgram = "svg-flatten";
       platforms = platforms.linux;
@@ -84,7 +84,7 @@ in python3Packages.buildPythonApplication rec {
   meta = with lib; {
     description = "Directly render SVG overlays into Gerber and Excellon files";
     homepage = "https://github.com/jaseg/gerbolyze";
-    license = with licenses; [ agpl3 ];
+    license = with licenses; [ agpl3Plus ];
     maintainers = with maintainers; [ wulfsta ];
     mainProgram = "gerbolyze";
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/ge/get-google-fonts/package.nix b/nixpkgs/pkgs/by-name/ge/get-google-fonts/package.nix
index 64c4197e8761..0939c43443e3 100644
--- a/nixpkgs/pkgs/by-name/ge/get-google-fonts/package.nix
+++ b/nixpkgs/pkgs/by-name/ge/get-google-fonts/package.nix
@@ -30,6 +30,7 @@ buildNpmPackage {
 
   meta = with lib; {
     description = "Downloads and adapts Google fonts to working offline";
+    mainProgram = "get-google-fonts";
     homepage = "https://github.com/MrMaxie/get-google-fonts";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
diff --git a/nixpkgs/pkgs/by-name/ge/geticons/package.nix b/nixpkgs/pkgs/by-name/ge/geticons/package.nix
index f3afda0f136d..5d8d7d2d1df8 100644
--- a/nixpkgs/pkgs/by-name/ge/geticons/package.nix
+++ b/nixpkgs/pkgs/by-name/ge/geticons/package.nix
@@ -20,6 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "CLI utility to get icons for apps on your system or other generic icons by name";
+    mainProgram = "geticons";
     homepage = "https://git.sr.ht/~zethra/geticons";
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ Madouura ];
diff --git a/nixpkgs/pkgs/by-name/gg/gg/package.nix b/nixpkgs/pkgs/by-name/gg/gg/package.nix
new file mode 100644
index 000000000000..c07dd9bc99d5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gg/gg/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
+buildGoModule rec{
+  pname = "gg";
+  version = "0.2.18";
+
+  src = fetchFromGitHub {
+    owner = "mzz2017";
+    repo = "gg";
+    rev = "v${version}";
+    hash = "sha256-07fP3dVFs4MZrFOH/8/4e3LHjFGZd7pNu6J3LBOWAd8=";
+  };
+
+  vendorHash = "sha256-fnM4ycqDyruCdCA1Cr4Ki48xeQiTG4l5dLVuAafEm14=";
+
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installShellCompletion --cmd gg \
+    --bash completion/bash/gg \
+    --fish completion/fish/gg.fish \
+    --zsh completion/zsh/_gg
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/mzz2017/gg";
+    description = "Command-line tool for one-click proxy in your research and development";
+    license = licenses.agpl3Only;
+    mainProgram = "gg";
+    maintainers = with maintainers; [ oluceps ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gh/gh-copilot/package.nix b/nixpkgs/pkgs/by-name/gh/gh-copilot/package.nix
new file mode 100644
index 000000000000..1059e58cbeb2
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gh/gh-copilot/package.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, lib
+, fetchurl
+}:
+let
+  inherit (stdenv.hostPlatform) system;
+  throwSystem = throw "Unsupported system: ${system}";
+
+  systemToPlatform = {
+    "x86_64-linux" = {
+      name = "linux-amd64";
+      hash = "sha256-uEG9wvoUyX54rcsZI2dgSfEy9d/FMfjf4+kn5wJoojY=";
+    };
+    "aarch64-linux" = {
+      name = "linux-arm64";
+      hash = "sha256-r0Vo9lZygIEQeSqPv1ix/NK347wqoCkaIL635qeP5ok=";
+    };
+    "x86_64-darwin" = {
+      name = "darwin-amd64";
+      hash = "sha256-Hu7A/M5JvwFaA5AmO1WO65D7KD3dYTGnNb0A5CqAPH0=";
+    };
+    "aarch64-darwin" = {
+      name = "darwin-arm64";
+      hash = "sha256-d6db1YOmo7If/2PTkgScsTaMqZZNZl6OL/qpgYfCa3s=";
+    };
+  };
+  platform = systemToPlatform.${system} or throwSystem;
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "gh-copilot";
+  version = "1.0.1";
+
+  src = fetchurl {
+    name = "gh-copilot";
+    url = "https://github.com/github/gh-copilot/releases/download/v${finalAttrs.version}/${platform.name}";
+    hash = platform.hash;
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -m755 -D $src $out/bin/gh-copilot
+
+    runHook postInstall
+  '';
+
+  meta = {
+    changelog = "https://github.com/github/gh-copilot/releases/tag/v${finalAttrs.version}";
+    description = "Ask for assistance right in your terminal.";
+    homepage = "https://github.com/github/gh-copilot";
+    license = lib.licenses.unfree;
+    mainProgram = "gh-copilot";
+    maintainers = with lib.maintainers; [ perchun ];
+    platforms = lib.attrNames systemToPlatform;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/gh/ghunt/package.nix b/nixpkgs/pkgs/by-name/gh/ghunt/package.nix
index ddd139f38907..337104efa42b 100644
--- a/nixpkgs/pkgs/by-name/gh/ghunt/package.nix
+++ b/nixpkgs/pkgs/by-name/gh/ghunt/package.nix
@@ -49,6 +49,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Offensive Google framework";
+    mainProgram = "ghunt";
     homepage = "https://github.com/mxrch/ghunt";
     changelog = "https://github.com/mxrch/GHunt/releases/tag/v${version}";
     license = licenses.agpl3Only;
diff --git a/nixpkgs/pkgs/by-name/gi/git-agecrypt/package.nix b/nixpkgs/pkgs/by-name/gi/git-agecrypt/package.nix
new file mode 100644
index 000000000000..146134463fe5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gi/git-agecrypt/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, darwin
+, libgit2
+, git
+, pkg-config
+, zlib
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "git-agecrypt";
+  version = "unstable-2024-03-11";
+
+  src = fetchFromGitHub {
+    owner = "vlaci";
+    repo = "git-agecrypt";
+    rev = "126be86c515466c5878a60561f754a9ab4af6ee8";
+    hash = "sha256-cmnBW/691mmLHq8tWpD3+zwCf7Wph5fcVdSxQGxqd1k=";
+  };
+
+  cargoHash = "sha256-FmlJeWMIIyTsg3TTLUia14et+aTgFCTkOr1J5dp0SGY=";
+
+  nativeBuildInputs = [ pkg-config git ];
+
+  buildInputs = [ libgit2 zlib ]
+    ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
+
+
+  meta = with lib; {
+    description = "Alternative to git-crypt using age instead of GPG.";
+    homepage = "https://github.com/vlaci/git-agecrypt";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ kuznetsss ];
+    mainProgram = "git-agecrypt";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gi/git-instafix/package.nix b/nixpkgs/pkgs/by-name/gi/git-instafix/package.nix
new file mode 100644
index 000000000000..b44411570091
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gi/git-instafix/package.nix
@@ -0,0 +1,43 @@
+{ git
+, lib
+, libgit2
+, makeWrapper
+, rustPlatform
+, stdenv
+, fetchFromGitHub
+}:
+let
+  inherit
+    (lib)
+    licenses
+    maintainers
+    ;
+
+  version = "0.2.1";
+in
+rustPlatform.buildRustPackage {
+  pname = "git-instafix";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "quodlibetor";
+    repo = "git-instafix";
+    rev = "v${version}";
+    hash = "sha256-rWHiaZji3GECsiMqvEGC/tF+K29ZLlY6+TCNxtixHQo=";
+  };
+
+  cargoHash = "sha256-t5vlr3YxjRPqMHwPqVjWul4RdSg0hiTWUQxcJmGKiTQ=";
+
+  buildInputs = [ libgit2 ];
+  nativeCheckInputs = [ git ];
+
+  meta = {
+    description = "Quickly fix up an old commit using your currently-staged changes";
+    mainProgram = "git-instafix";
+    homepage = "https://github.com/quodlibetor/git-instafix";
+    license = with licenses; [ mit asl20 ];
+    maintainers = with maintainers; [ mightyiam ];
+    changelog = "https://github.com/quodlibetor/git-instafix/releases/tag/v${version}";
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gi/git-releaser/package.nix b/nixpkgs/pkgs/by-name/gi/git-releaser/package.nix
index 8e88862bf02e..10cf95a2ec7e 100644
--- a/nixpkgs/pkgs/by-name/gi/git-releaser/package.nix
+++ b/nixpkgs/pkgs/by-name/gi/git-releaser/package.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "git-releaser";
-  version = "0.1.3";
+  version = "0.1.7";
 
   src = fetchFromGitHub {
     owner = "git-releaser";
     repo = "git-releaser";
     rev = "refs/tags/v${version}";
-    hash = "sha256-27xUsqFuAu02jYLi3LiTnVjifqZIr39lPwMfJea7a4A=";
+    hash = "sha256-bXW2/FpZnYV/zZ/DlaW2pUe2RUHLElPwqHm/J5gKJZI=";
   };
 
-  vendorHash = "sha256-uKS7MwCak/CjnMjzFKqYypBVZFl+3hD1xVaOPvQV9E0=";
+  vendorHash = "sha256-RROA+nvdZnGfkUuB+ksUWGG16E8tqdyMQss2z/XWGd8=";
 
   ldflags = [ "-X main.version=${version}" ];
 
diff --git a/nixpkgs/pkgs/by-name/gi/gitlab-ci-local/package.nix b/nixpkgs/pkgs/by-name/gi/gitlab-ci-local/package.nix
index fdb21f92fac7..40466b99d2da 100644
--- a/nixpkgs/pkgs/by-name/gi/gitlab-ci-local/package.nix
+++ b/nixpkgs/pkgs/by-name/gi/gitlab-ci-local/package.nix
@@ -6,16 +6,16 @@
 
 buildNpmPackage rec {
   pname = "gitlab-ci-local";
-  version = "4.46.1";
+  version = "4.47.0";
 
   src = fetchFromGitHub {
     owner = "firecow";
     repo = "gitlab-ci-local";
     rev = version;
-    hash = "sha256-0NUmsbuzs004w9ETj4e4nO+sDvYHQh9SwJoRc3+r+j8=";
+    hash = "sha256-AMqifAdC4aPra/KfM0Z8L1mF6+lA0dv9tt/cXSd3Ov4=";
   };
 
-  npmDepsHash = "sha256-zCBNUKmLluVCDoPHuKy9KMKCGL8FqopFhKq7QCAUe4U=";
+  npmDepsHash = "sha256-GVqGA4aMfA08j/+fy+DA6udi52lmfDeAkE59d9CMAqg=";
 
   postPatch = ''
     # remove cleanup which runs git commands
@@ -27,6 +27,7 @@ buildNpmPackage rec {
 
   meta = with lib;{
     description = "Run gitlab pipelines locally as shell executor or docker executor";
+    mainProgram = "gitlab-ci-local";
     longDescription = ''
       Tired of pushing to test your .gitlab-ci.yml?
       Run gitlab pipelines locally as shell executor or docker executor.
diff --git a/nixpkgs/pkgs/by-name/gi/gitu/package.nix b/nixpkgs/pkgs/by-name/gi/gitu/package.nix
new file mode 100644
index 000000000000..c990d82bd1ce
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gi/gitu/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, libgit2
+, openssl
+, zlib
+, stdenv
+, darwin
+, git
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "gitu";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "altsem";
+    repo = "gitu";
+    rev = "v${version}";
+    hash = "sha256-L5i+CkU4J/qLJ2zk9QJ6KCuF4qOzKidWSzVOVvRNG20=";
+  };
+
+  cargoHash = "sha256-g65nbBhBZe6q5A2OQaWuiM6RRjxL6qom9ht8m+BmROk=";
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    libgit2
+    openssl
+    zlib
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  nativeCheckInputs = [
+    git
+  ];
+
+  meta = with lib; {
+    description = "A TUI Git client inspired by Magit";
+    homepage = "https://github.com/altsem/gitu";
+    changelog = "https://github.com/altsem/gitu/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ evanrichter ];
+    mainProgram = "gitu";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gl/glasskube/package.nix b/nixpkgs/pkgs/by-name/gl/glasskube/package.nix
new file mode 100644
index 000000000000..e9130bb321da
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gl/glasskube/package.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, nix-update-script
+, installShellFiles
+}:
+
+buildGoModule rec {
+  pname = "glasskube";
+  version = "0.0.4";
+
+  src = fetchFromGitHub {
+    owner = "glasskube";
+    repo = "glasskube";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-+5SinF85bU113C9B025DM83v8ApaXqLV4n1P9zZP3ns=";
+  };
+
+  vendorHash = "sha256-DBqO2EyB1TydsdK2GWJoFGGgTS+E62GogysPX4WtzYU=";
+
+  CGO_ENABLED = 0;
+
+  ldflags = [ "-s" "-w" "-X github.com/glasskube/glasskube/internal/config.Version=${version}" "-X github.com/glasskube/glasskube/internal/config.Commit=${src.rev}" ];
+
+  subPackages = [ "cmd/${pname}" "cmd/package-operator" ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    # Completions
+    installShellCompletion --cmd glasskube \
+      --bash <($out/bin/glasskube completion bash) \
+      --fish <($out/bin/glasskube completion fish) \
+      --zsh <($out/bin/glasskube completion zsh)
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "The missing Package Manager for Kubernetes featuring a GUI and a CLI";
+    homepage = "https://github.com/glasskube/glasskube";
+    changelog = "https://github.com/glasskube/glasskube/releases/tag/v${version}";
+    maintainers = with maintainers; [ jakuzure ];
+    license = licenses.asl20;
+    mainProgram = "glasskube";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/gl/glide-media-player/package.nix b/nixpkgs/pkgs/by-name/gl/glide-media-player/package.nix
index 62839033383c..4ccb8197eca5 100644
--- a/nixpkgs/pkgs/by-name/gl/glide-media-player/package.nix
+++ b/nixpkgs/pkgs/by-name/gl/glide-media-player/package.nix
@@ -14,7 +14,6 @@
 , gst_all_1
 , glib-networking
 , darwin
-, libsoup_3
 }:
 
 stdenv.mkDerivation rec {
@@ -69,12 +68,6 @@ stdenv.mkDerivation rec {
     darwin.apple_sdk_11_0.frameworks.IOKit
   ];
 
-  # FIXME: gst-plugins-good missing libsoup breaks streaming
-  # (https://github.com/nixos/nixpkgs/issues/271960)
-  preFixup = ''
-    gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libsoup_3 ]}")
-  '';
-
   meta = with lib; {
     description = "Linux/macOS media player based on GStreamer and GTK";
     homepage = "https://philn.github.io/glide";
diff --git a/nixpkgs/pkgs/by-name/gm/gmetronome/package.nix b/nixpkgs/pkgs/by-name/gm/gmetronome/package.nix
new file mode 100644
index 000000000000..64d0c19a966c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gm/gmetronome/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, pkg-config
+, autoreconfHook
+, wrapGAppsHook
+, gtkmm3
+, libpulseaudio
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gmetronome";
+  version = "0.3.3";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "dqpb";
+    repo = "gmetronome";
+    rev = version;
+    hash = "sha256-ilFO1HwleWIQ51Bkzck1sm1Yu3ugqkvZrpxPOYzXydM=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    autoreconfHook
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtkmm3
+    libpulseaudio
+  ];
+
+  meta = with lib; {
+    description = "A free software metronome and tempo measurement tool";
+    homepage = "https://gitlab.gnome.org/dqpb/gmetronome";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ aleksana ];
+    mainProgram = "gmetronome";
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/graphics/gmic-qt/default.nix b/nixpkgs/pkgs/by-name/gm/gmic-qt/package.nix
index a67479e4ffd5..48e4d24ef4c3 100644
--- a/nixpkgs/pkgs/tools/graphics/gmic-qt/default.nix
+++ b/nixpkgs/pkgs/by-name/gm/gmic-qt/package.nix
@@ -1,10 +1,9 @@
 { lib
-, stdenv
-, fetchzip
 , cimg
 , cmake
 , coreutils
 , curl
+, fetchzip
 , fftw
 , gimp
 , gimpPlugins
@@ -14,14 +13,13 @@
 , graphicsmagick
 , libjpeg
 , libpng
+, libsForQt5
 , libtiff
 , ninja
 , nix-update
 , openexr
 , pkg-config
-, qtbase
-, qttools
-, wrapQtAppsHook
+, stdenv
 , writeShellScript
 , zlib
 , variant ? "standalone"
@@ -38,6 +36,7 @@ let
     };
 
     standalone = {
+      extraDeps = []; # Just to keep uniformity and avoid test-for-null
       description = "Versatile front-end to the image processing framework G'MIC";
     };
   };
@@ -49,42 +48,41 @@ assert lib.assertMsg
   "gmic-qt variant \"${variant}\" is not supported. Please use one of ${lib.concatStringsSep ", " (builtins.attrNames variants)}.";
 
 assert lib.assertMsg
-  (builtins.all (d: d != null) variants.${variant}.extraDeps or [])
+  (builtins.all (d: d != null) variants.${variant}.extraDeps)
   "gmic-qt variant \"${variant}\" is missing one of its dependencies.";
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gmic-qt${lib.optionalString (variant != "standalone") "-${variant}"}";
-  version = "3.3.3";
+  version = "3.3.5";
 
   src = fetchzip {
     url = "https://gmic.eu/files/source/gmic_${finalAttrs.version}.tar.gz";
-    hash = "sha256-LkWQ3fSHJSaXztX+soGZ+pl3MnXNgw6tV09356bAfYY=";
+    hash = "sha256-71i8vk9XR6Q8SSEWvGXMcAOIE6DoIVJkylS4SiZLUBY=";
   };
 
+  sourceRoot = "${finalAttrs.src.name}/gmic-qt";
+
   nativeBuildInputs = [
     cmake
-    pkg-config
+    libsForQt5.wrapQtAppsHook
     ninja
-    wrapQtAppsHook
+    pkg-config
   ];
 
   buildInputs = [
-    gmic
-    qtbase
-    qttools
+    curl
     fftw
-    zlib
+    gmic
+    graphicsmagick
     libjpeg
-    libtiff
     libpng
+    libtiff
     openexr
-    graphicsmagick
-    curl
-  ] ++ variants.${variant}.extraDeps or [];
-
-  preConfigure = ''
-    cd gmic-qt
-  '';
+    zlib
+  ] ++ (with libsForQt5; [
+    qtbase
+    qttools
+  ]) ++ variants.${variant}.extraDeps;
 
   postPatch = ''
     patchShebangs \
@@ -93,9 +91,9 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   cmakeFlags = [
-    (lib.cmakeFeature "GMIC_QT_HOST" (if variant == "standalone" then "none" else variant))
-    (lib.cmakeBool "ENABLE_SYSTEM_GMIC" true)
     (lib.cmakeBool "ENABLE_DYNAMIC_LINKING" true)
+    (lib.cmakeBool "ENABLE_SYSTEM_GMIC" true)
+    (lib.cmakeFeature "GMIC_QT_HOST" (if variant == "standalone" then "none" else variant))
   ];
 
   postFixup = lib.optionalString (variant == "gimp") ''
@@ -105,8 +103,8 @@ stdenv.mkDerivation (finalAttrs: {
 
   passthru = {
     tests = {
+      # They need to be update in lockstep.
       gimp-plugin = gimpPlugins.gmic;
-      # Needs to update them all in lockstep.
       inherit cimg gmic;
     };
 
@@ -134,10 +132,7 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (variants.${variant}) description;
     license = lib.licenses.gpl3Plus;
     mainProgram = "gmic_qt";
-    maintainers = [
-      lib.maintainers.AndersonTorres
-      lib.maintainers.lilyinstarlight
-    ];
+    maintainers = with lib.maintainers; [ AndersonTorres lilyinstarlight ];
     platforms = lib.platforms.unix;
   };
 })
diff --git a/nixpkgs/pkgs/by-name/gm/gmic/package.nix b/nixpkgs/pkgs/by-name/gm/gmic/package.nix
index d505faa8f4b6..70c5a29d737f 100644
--- a/nixpkgs/pkgs/by-name/gm/gmic/package.nix
+++ b/nixpkgs/pkgs/by-name/gm/gmic/package.nix
@@ -26,7 +26,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gmic";
-  version = "3.3.1";
+  version = "3.3.5";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
@@ -34,15 +34,15 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "GreycLab";
     repo = "gmic";
     rev = "v.${finalAttrs.version}";
-    hash = "sha256-HagGabJ1jkg5SkMlr0Y5rGFw64jPW8QLuR0I2idM1N0=";
+    hash = "sha256-881+o6Wz4yNf92JNNLQn9x44SSjXAp/cZLkBGCfM6DY=";
   };
 
   # TODO: build this from source
-  # Reference: src/Makefile, directive gmic_stdlib.h
+  # Reference: src/Makefile, directive gmic_stdlib_community.h
   gmic_stdlib = fetchurl {
-    name = "gmic_stdlib.h";
-    url = "http://gmic.eu/gmic_stdlib${lib.replaceStrings ["."] [""] finalAttrs.version}.h";
-    hash = "sha256-7JzFU4HvAtC5Nz5vusKCnJ8VMuKfSi1yFmjj0Hh+vA4=";
+    name = "gmic_stdlib_community.h";
+    url = "http://gmic.eu/gmic_stdlib_community${lib.replaceStrings ["."] [""] finalAttrs.version}.h";
+    hash = "sha256-UZzCAs+x9dVMeaeEvPgyVZ5S6UO0yhJWVMgBvBiW2ME=";
   };
 
   nativeBuildInputs = [
@@ -71,10 +71,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   postPatch = ''
-    cp -r ${finalAttrs.gmic_stdlib} src/gmic_stdlib.h
-
-    # CMake build files were moved to subdirectory.
-    mv resources/CMakeLists.txt resources/cmake .
+    cp -r ${finalAttrs.gmic_stdlib} src/gmic_stdlib_community.h
   ''
   + lib.optionalString stdenv.isDarwin ''
     substituteInPlace CMakeLists.txt \
@@ -114,6 +111,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://gmic.eu/";
     description = "Open and full-featured framework for image processing";
+    mainProgram = "gmic";
     license = lib.licenses.cecill21;
     maintainers = [
       lib.maintainers.AndersonTorres
diff --git a/nixpkgs/pkgs/by-name/gn/gnome-graphs/package.nix b/nixpkgs/pkgs/by-name/gn/gnome-graphs/package.nix
new file mode 100644
index 000000000000..fb8f5bc1ae43
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/gn/gnome-graphs/package.nix
@@ -0,0 +1,71 @@
+{ lib
+, python3Packages
+, fetchFromGitLab
+, meson
+, ninja
+, vala
+, pkg-config
+, gobject-introspection
+, blueprint-compiler
+, wrapGAppsHook4
+, desktop-file-utils
+, shared-mime-info
+, libadwaita
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "gnome-graphs";
+  version = "1.7.2";
+  pyproject = false;
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = "Graphs";
+    rev = "v${version}";
+    hash = "sha256-CgCLOkKrMEN0Jnib5NZyVa+s3ico2ANt0ALGa4we3Ak=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    vala
+    pkg-config
+    gobject-introspection
+    blueprint-compiler
+    wrapGAppsHook4
+    desktop-file-utils
+    shared-mime-info
+  ];
+
+  buildInputs = [
+    libadwaita
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    pygobject3
+    numpy
+    numexpr
+    sympy
+    scipy
+    matplotlib
+  ];
+
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=(
+      "''${gappsWrapperArgs[@]}"
+      --prefix LD_LIBRARY_PATH : $out/lib
+    )
+  '';
+
+  meta = with lib; {
+    description = "A simple, yet powerful tool that allows you to plot and manipulate your data with ease";
+    homepage = "https://apps.gnome.org/Graphs";
+    license = licenses.gpl3Plus;
+    mainProgram = "graphs";
+    maintainers = with maintainers; [ aleksana ];
+    platforms = platforms.linux; # locale.bindtextdomain only available on linux
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/go/go-camo/package.nix b/nixpkgs/pkgs/by-name/go/go-camo/package.nix
index 19523f903be0..4080f17577df 100644
--- a/nixpkgs/pkgs/by-name/go/go-camo/package.nix
+++ b/nixpkgs/pkgs/by-name/go/go-camo/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-camo";
-  version = "2.4.9";
+  version = "2.4.10";
 
   src = fetchFromGitHub {
     owner = "cactus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-d2W7XI/4MKyn9PgIYUJKew/WWA9z5Ut78bsk6Z5Qfxk=";
+    sha256 = "sha256-cWML306a4mI1O99Mf58reGBNEqot9lG+i3mgU9jVhuk=";
   };
 
-  vendorHash = "sha256-BGQ+2i3HQCKOSUTl2+xaQqQQE7MCtmJ1IHL2ZRz5whk=";
+  vendorHash = "sha256-Xj9bPxv3/GarNdNSCiMbZo2/brSkLQ1nlZtFMxlpWT4=";
 
   ldflags = [ "-s" "-w" "-X=main.ServerVersion=${version}" ];
 
diff --git a/nixpkgs/pkgs/tools/networking/godns/default.nix b/nixpkgs/pkgs/by-name/go/godns/package.nix
index a41d1993270b..0e5e155523d6 100644
--- a/nixpkgs/pkgs/tools/networking/godns/default.nix
+++ b/nixpkgs/pkgs/by-name/go/godns/package.nix
@@ -1,25 +1,50 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
+, nodejs
+, npmHooks
+, fetchNpmDeps
 , nix-update-script
 }:
 
 buildGoModule rec {
   pname = "godns";
-  version = "3.0.7";
+  version = "3.1.5";
 
   src = fetchFromGitHub {
     owner = "TimothyYe";
     repo = "godns";
     rev = "refs/tags/v${version}";
-    hash = "sha256-7zgvrEVt8xg54NijcqnXoZcXetzOu9h3Ucw7w03YagU=";
+    hash = "sha256-kdClyeU0hR0ymVLn9xe/kYVJE/9P/hAz/5UwRAQ2KCU=";
   };
 
-  vendorHash = "sha256-veDrGB6gjUa8G/UyKzEgH2ItGGEPlXDePahq2XP2nAo=";
+  vendorHash = "sha256-kSREFNIGH0MXiyKMp1LmrLkhKBhovvNRz46LTXT2XME=";
+  npmDeps = fetchNpmDeps {
+    src = "${src}/web";
+    hash = "sha256-2yeqLly0guU/kpX+yH/QOoDGzyJTxkTaCt8EleJhybU=";
+  };
+
+  npmRoot = "web";
+  nativeBuildInputs = [
+    nodejs
+    npmHooks.npmConfigHook
+  ];
+
+  overrideModAttrs = oldAttrs: {
+    # Do not add `npmConfigHook` to `goModules`
+    nativeBuildInputs = lib.remove npmHooks.npmConfigHook oldAttrs.nativeBuildInputs;
+    # Do not run `preBuild` when building `goModules`
+    preBuild = null;
+  };
 
   # Some tests require internet access, broken in sandbox
   doCheck = false;
 
+  preBuild = ''
+    npm --prefix="$npmRoot" run build
+    go generate ./...
+  '';
+
   ldflags = [
     "-s"
     "-w"
diff --git a/nixpkgs/pkgs/by-name/go/goldwarden/package.nix b/nixpkgs/pkgs/by-name/go/goldwarden/package.nix
index b972ebe1bcc8..35b18ab1e51c 100644
--- a/nixpkgs/pkgs/by-name/go/goldwarden/package.nix
+++ b/nixpkgs/pkgs/by-name/go/goldwarden/package.nix
@@ -4,7 +4,7 @@
 , makeBinaryWrapper
 , libfido2
 , dbus
-, pinentry
+, pinentry-gnome3
 , nix-update-script
 }:
 
@@ -29,7 +29,7 @@ buildGoModule rec {
 
   postInstall = ''
     wrapProgram $out/bin/goldwarden \
-      --suffix PATH : ${lib.makeBinPath [dbus pinentry]}
+      --suffix PATH : ${lib.makeBinPath [dbus pinentry-gnome3]}
 
     install -Dm644 $src/resources/com.quexten.goldwarden.policy -t $out/share/polkit-1/actions
   '';
diff --git a/nixpkgs/pkgs/by-name/go/gosmore/package.nix b/nixpkgs/pkgs/by-name/go/gosmore/package.nix
index 2bc778ff9cb2..daa5553d0c0a 100644
--- a/nixpkgs/pkgs/by-name/go/gosmore/package.nix
+++ b/nixpkgs/pkgs/by-name/go/gosmore/package.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Open Street Map viewer";
+    mainProgram = "gosmore";
     homepage = "https://sourceforge.net/projects/gosmore/";
     maintainers = with maintainers; [
       raskin
diff --git a/nixpkgs/pkgs/by-name/gp/gpt4all/package.nix b/nixpkgs/pkgs/by-name/gp/gpt4all/package.nix
index 452295b7c361..83705d390637 100644
--- a/nixpkgs/pkgs/by-name/gp/gpt4all/package.nix
+++ b/nixpkgs/pkgs/by-name/gp/gpt4all/package.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gpt4all";
-  version = "2.7.2";
+  version = "2.7.3";
 
   src = fetchFromGitHub {
     fetchSubmodules = true;
-    hash = "sha256-casGjHiVZXec+9HGIH5fcpfWgLfsGCM5pEBINXJgMY8=";
+    hash = "sha256-hIfeADP3tiooGZr/OMVFIkOAniMWXj9AsVzMPlVbucE=";
     owner = "nomic-ai";
     repo = "gpt4all";
     rev = "v${finalAttrs.version}";
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   postPatch = ''
     substituteInPlace CMakeLists.txt \
-      --replace 'set(CMAKE_INSTALL_PREFIX ''${CMAKE_BINARY_DIR}/install)' ""
+      --replace-fail 'set(CMAKE_INSTALL_PREFIX ''${CMAKE_BINARY_DIR}/install)' ""
   '';
 
   nativeBuildInputs = [
@@ -59,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
     install -m 444 -D $src/gpt4all-chat/flatpak-manifest/io.gpt4all.gpt4all.desktop $out/share/applications/io.gpt4all.gpt4all.desktop
     install -m 444 -D $src/gpt4all-chat/icons/logo.svg $out/share/icons/hicolor/scalable/apps/io.gpt4all.gpt4all.svg
     substituteInPlace $out/share/applications/io.gpt4all.gpt4all.desktop \
-      --replace 'Exec=chat' 'Exec=${finalAttrs.meta.mainProgram}'
+      --replace-fail 'Exec=chat' 'Exec=${finalAttrs.meta.mainProgram}'
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/by-name/gr/grun/package.nix b/nixpkgs/pkgs/by-name/gr/grun/package.nix
index aef41add611d..54b6a5715ddb 100644
--- a/nixpkgs/pkgs/by-name/gr/grun/package.nix
+++ b/nixpkgs/pkgs/by-name/gr/grun/package.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "An application launcher written in C and using GTK for the interface";
+    mainProgram = "grun";
     homepage = "https://github.com/lrgc/grun";
     platforms = lib.platforms.linux;
     license = with lib.licenses; [ gpl2Only ];
diff --git a/nixpkgs/pkgs/by-name/gt/gtimelog/package.nix b/nixpkgs/pkgs/by-name/gt/gtimelog/package.nix
index 05a0c7e3dd99..138575132945 100644
--- a/nixpkgs/pkgs/by-name/gt/gtimelog/package.nix
+++ b/nixpkgs/pkgs/by-name/gt/gtimelog/package.nix
@@ -45,6 +45,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A time tracking app";
+    mainProgram = "gtimelog";
     longDescription = ''
       GTimeLog is a small time tracking application for GNOME.
       It's main goal is to be as unintrusive as possible.
diff --git a/nixpkgs/pkgs/by-name/ha/handlr-regex/package.nix b/nixpkgs/pkgs/by-name/ha/handlr-regex/package.nix
index 253f821647a7..a3d5b886874b 100644
--- a/nixpkgs/pkgs/by-name/ha/handlr-regex/package.nix
+++ b/nixpkgs/pkgs/by-name/ha/handlr-regex/package.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "handlr-regex";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "Anomalocaridid";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ndFe5GlSWVUPdGRRWuImcLtcuOMoMXMyGGIa+CXfCug=";
+    hash = "sha256-RCMTRf/mrLCDrmJSAofTgCHKK4GogkdGXnN4lFFQMA8=";
   };
 
-  cargoHash = "sha256-lCClE8U4188q5rWEEkUt0peLEmYvLoE7vJ6Q9uB5HWg=";
+  cargoHash = "sha256-GHRryBeofZQbVTyOwMwYKVAymui8VvsUQhiwGu0+HEE=";
 
   nativeBuildInputs = [ installShellFiles shared-mime-info ];
   buildInputs = [ libiconv ];
diff --git a/nixpkgs/pkgs/by-name/ha/haunt/package.nix b/nixpkgs/pkgs/by-name/ha/haunt/package.nix
index 989fce392b28..d15fd5e95726 100644
--- a/nixpkgs/pkgs/by-name/ha/haunt/package.nix
+++ b/nixpkgs/pkgs/by-name/ha/haunt/package.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://dthompson.us/projects/haunt.html";
     description = "Guile-based static site generator";
+    mainProgram = "haunt";
     longDescription = ''
       Haunt is a simple, functional, hackable static site generator that gives
       authors the ability to treat websites as Scheme programs.
diff --git a/nixpkgs/pkgs/by-name/hd/hdrop/package.nix b/nixpkgs/pkgs/by-name/hd/hdrop/package.nix
index 2fcea6d600c1..23f9070a3125 100755
--- a/nixpkgs/pkgs/by-name/hd/hdrop/package.nix
+++ b/nixpkgs/pkgs/by-name/hd/hdrop/package.nix
@@ -9,17 +9,18 @@
 , libnotify
 , withHyprland ? true
 , hyprland
+, gawk
 }:
 
 stdenvNoCC.mkDerivation rec {
   pname = "hdrop";
-  version = "0.4.4";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "Schweber";
     repo = "hdrop";
     rev = "v${version}";
-    hash = "sha256-eLOu7xmFphTxCtyyXdM9VkNcUpefefuZMAQtOV4FVtU=";
+    hash = "sha256-iginpMlgANSPWgFxNC2TYMjf2NKSSzzrjIN8lIsAvX8=";
   };
 
   nativeBuildInputs = [
@@ -36,6 +37,7 @@ stdenvNoCC.mkDerivation rec {
         util-linux
         jq
         libnotify
+        gawk
       ]
       ++ lib.optional withHyprland hyprland)}"
   '';
@@ -44,7 +46,7 @@ stdenvNoCC.mkDerivation rec {
     description = "Emulate 'tdrop' in Hyprland (run, show and hide specific programs per keybind)";
     homepage = "https://github.com/Schweber/hdrop";
     changelog = "https://github.com/Schweber/hdrop/releases/tag/v${version}";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ Schweber ];
     mainProgram = "hdrop";
diff --git a/nixpkgs/pkgs/by-name/he/hekatomb/package.nix b/nixpkgs/pkgs/by-name/he/hekatomb/package.nix
new file mode 100644
index 000000000000..1d9df3a03215
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/he/hekatomb/package.nix
@@ -0,0 +1,49 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "hekatomb";
+  version = "1.5.14-unstable-2024-02-14";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "ProcessusT";
+    repo = "HEKATOMB";
+    rev = "8cd372fd5d93e8b43c2cbe2ab2cada635f00e9dd";
+    hash = "sha256-2juP2SuCfY4z2J27BlodrsP+29BjGxKDIDOW0mmwCPY=";
+  };
+
+  pythonRelaxDeps = [
+    "impacket"
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    chardet
+    dnspython
+    impacket
+    ldap3
+    pycryptodomex
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "hekatomb"
+  ];
+
+  meta = with lib; {
+    description = "Tool to connect to LDAP directory to retrieve informations";
+    homepage = "https://github.com/ProcessusT/HEKATOMB";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "hekatomb";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/he/helix-gpt/package.nix b/nixpkgs/pkgs/by-name/he/helix-gpt/package.nix
index 6e77d5e8a8d4..d95c9689f1f7 100644
--- a/nixpkgs/pkgs/by-name/he/helix-gpt/package.nix
+++ b/nixpkgs/pkgs/by-name/he/helix-gpt/package.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/leona/helix-gpt";
     description = "Code completion LSP for Helix with support for Copilot + OpenAI";
+    mainProgram = "helix-gpt";
     maintainers = with maintainers; [ happysalada ];
     license = with licenses; [ mit ];
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
diff --git a/nixpkgs/pkgs/by-name/he/helix-gpt/pin.json b/nixpkgs/pkgs/by-name/he/helix-gpt/pin.json
index d79aad46aba1..2b116278fe23 100644
--- a/nixpkgs/pkgs/by-name/he/helix-gpt/pin.json
+++ b/nixpkgs/pkgs/by-name/he/helix-gpt/pin.json
@@ -1,7 +1,7 @@
 {
-  "version": "0.28",
-  "srcHash": "sha256-vOXY8B5CRCEQX/NnBVNwmyRKSeDSliurClRPiJIAD3Y=",
+  "version": "0.31",
+  "srcHash": "sha256-wDVeX1tHw9pTxYLRkr8BJlF5XIee0/e0f5hzes4ui/o=",
   "x86_64-linux": "sha256-h6wGkOfSbB8Rwm7eFvcowDdH1RdS6eFaxgf+SdYvYt8=",
-  "x86_64-darwin": "sha256-lkURZs6nQpsZ7SGX+eLoBEXa9VdTQP795iHAGYyRaVs=",
-  "aarch64-darwin": "sha256-lkURZs6nQpsZ7SGX+eLoBEXa9VdTQP795iHAGYyRaVs="
+  "x86_64-darwin": "sha256-Sjt/JkyPRCzRpAqJOmBKCBAGWSeV7RYOOokCLYCqg+8=",
+  "aarch64-darwin": "sha256-Sjt/JkyPRCzRpAqJOmBKCBAGWSeV7RYOOokCLYCqg+8="
 }
diff --git a/nixpkgs/pkgs/by-name/he/hermitcli/package.nix b/nixpkgs/pkgs/by-name/he/hermitcli/package.nix
new file mode 100644
index 000000000000..02437daec92e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/he/hermitcli/package.nix
@@ -0,0 +1,34 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+
+buildGoModule rec {
+  pname = "hermit";
+  version = "0.38.2";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "cashapp";
+    repo = "hermit";
+    hash = "sha256-cBVTIpY85lrKJ1bX1mIlUW1oWEHgg8wjdUh+0FHUp80=";
+  };
+
+  vendorHash = "sha256-W8n7WA1gHx73jHF69apoKnDCIKlbWkj5f1wVITt7F+M=";
+
+  subPackages = [ "cmd/hermit" ];
+
+  ldflags = [
+    "-X main.version=${version}"
+    "-X main.channel=stable"
+  ];
+
+  meta = with lib; {
+    homepage = "https://cashapp.github.io/hermit";
+    description = "Manages isolated, self-bootstrapping sets of tools in software projects.";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cbrewster ];
+    platforms = platforms.unix;
+    mainProgram = "hermit";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/hi/hifiscan/package.nix b/nixpkgs/pkgs/by-name/hi/hifiscan/package.nix
new file mode 100644
index 000000000000..fbaea667f9ae
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/hi/hifiscan/package.nix
@@ -0,0 +1,28 @@
+{ lib
+, python3Packages
+, fetchPypi
+}:
+let
+  pname = "hifiscan";
+  version = "1.5.2";
+  hash = "sha256-8eystqjNdDP2X9beogRcsa+Wqu50uMHZv59jdc5GjUc=";
+in
+  python3Packages.buildPythonApplication {
+    inherit pname version;
+
+    pythonPath = with python3Packages; [ eventkit numpy sounddevice pyqt6 pyqt6-sip pyqtgraph ];
+
+    dontUseSetuptoolsCheck = true;
+
+    src = fetchPypi {
+      inherit pname version hash;
+    };
+
+    meta = with lib; {
+      homepage = "https://github.com/erdewit/HiFiScan";
+      description = "Optimize the audio quality of your loudspeakers";
+      license = licenses.bsd2;
+      maintainers = with maintainers; [ cab404 ];
+      mainProgram = "hifiscan";
+    };
+  }
diff --git a/nixpkgs/pkgs/by-name/hi/highs/package.nix b/nixpkgs/pkgs/by-name/hi/highs/package.nix
new file mode 100644
index 000000000000..4023d3e52afb
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/hi/highs/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, clang
+, cmake
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "highs";
+  version = "1.7.0";
+
+  src = fetchFromGitHub {
+    owner = "ERGO-Code";
+    repo = "HiGHS";
+    rev = "v${finalAttrs.version}";
+    sha256 = "sha256-2dYKXckZ+npj1rA2mmBRuRcGI1YNcaiITSMjE2/TA2g=";
+  };
+
+  strictDeps = true;
+
+  outputs = [ "out" ];
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    "$out/bin/highs" --version
+  '';
+
+  nativeBuildInputs = [ clang cmake ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/ERGO-Code/HiGHS";
+    description = "Linear optimization software";
+    license = licenses.mit;
+    platforms = platforms.all;
+    mainProgram = "highs";
+    maintainers = with maintainers; [ silky ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ho/home-manager/package.nix b/nixpkgs/pkgs/by-name/ho/home-manager/package.nix
index 8a534f72bf63..f58be650c845 100644
--- a/nixpkgs/pkgs/by-name/ho/home-manager/package.nix
+++ b/nixpkgs/pkgs/by-name/ho/home-manager/package.nix
@@ -16,14 +16,14 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "home-manager";
-  version = "0-unstable-2024-03-06";
+  version = "unstable-2024-03-19";
 
   src = fetchFromGitHub {
     name = "home-manager-source";
     owner = "nix-community";
     repo = "home-manager";
-    rev = "cf111d1a849ddfc38e9155be029519b0e2329615";
-    hash = "sha256-+lM4J4JoJeiN8V+3WSWndPHj1pJ9Jc1UMikGbXLqCTk=";
+    rev = "022464438a85450abb23d93b91aa82e0addd71fb";
+    hash = "sha256-2bNMraoRB4pdw/HtxgYTFeMhEekBZeQ53/a8xkqpbZc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/by-name/ho/hoppscotch/package.nix b/nixpkgs/pkgs/by-name/ho/hoppscotch/package.nix
index 3e6bf1ac190c..e7d1dbdc274b 100644
--- a/nixpkgs/pkgs/by-name/ho/hoppscotch/package.nix
+++ b/nixpkgs/pkgs/by-name/ho/hoppscotch/package.nix
@@ -27,6 +27,7 @@ let
 
   meta = {
     description = "Open source API development ecosystem";
+    mainProgram = "hoppscotch";
     homepage = "https://hoppscotch.com";
     changelog = "https://github.com/hoppscotch/hoppscotch/releases/tag/${version}";
     platforms = [ "aarch64-darwin" "x86_64-darwin" "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/by-name/hu/hugo/package.nix b/nixpkgs/pkgs/by-name/hu/hugo/package.nix
index 9033ad5c5bf5..32832da0a6f2 100644
--- a/nixpkgs/pkgs/by-name/hu/hugo/package.nix
+++ b/nixpkgs/pkgs/by-name/hu/hugo/package.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.123.7";
+  version = "0.124.0";
 
   src = fetchFromGitHub {
     owner = "gohugoio";
     repo = "hugo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uUE694xbu508vny/sbxndGlsFXnBz45fLhieuK4sX/c=";
+    hash = "sha256-LLjIKkNtrnnpIUjdJZJlrsyP4O634/B+cyn8DEYfRdk=";
   };
 
-  vendorHash = "sha256-V7YRrC+6fOIjXOu7E0kIOZZt++4oFLPhmHeWmOVU3Xw=";
+  vendorHash = "sha256-LQLrbFJUW3X4F6L7JxQJRmkQFvuFraHJRBoGLt/ObSg=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/by-name/hy/hyprcursor/package.nix b/nixpkgs/pkgs/by-name/hy/hyprcursor/package.nix
new file mode 100644
index 000000000000..37add539a530
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/hy/hyprcursor/package.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, cairo
+, hyprlang
+, librsvg
+, libzip
+, nix-update-script
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hyprcursor";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "hyprwm";
+    repo = "hyprcursor";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-m5I69a5t+xXxNMQrFuzKgPR6nrFiWDEDnEqlVwTy4C4=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    cairo
+    hyprlang
+    librsvg
+    libzip
+  ];
+
+  outputs = [
+    "out"
+    "dev"
+    "lib"
+  ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    homepage = "https://github.com/hyprwm/hyprcursor";
+    description = "The hyprland cursor format, library and utilities";
+    changelog = "https://github.com/hyprwm/hyprcursor/releases/tag/v${finalAttrs.version}";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ iynaix ];
+    mainProgram = "hyprcursor-util";
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/misc/hyprdim/default.nix b/nixpkgs/pkgs/by-name/hy/hyprdim/package.nix
index 10938330196a..ee0df4f9fc03 100644
--- a/nixpkgs/pkgs/applications/misc/hyprdim/default.nix
+++ b/nixpkgs/pkgs/by-name/hy/hyprdim/package.nix
@@ -1,8 +1,9 @@
-{ lib
-, rustPlatform
-, fetchFromGitHub
-, installShellFiles
-, nix-update-script
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  installShellFiles,
+  nix-update-script,
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -18,17 +19,15 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-hgcGzRLB1L3yxJjw1ECDJPmbl1W+2OS4KDojclyVYrc=";
 
-  nativeBuildInputs = [
-    installShellFiles
-  ];
+  nativeBuildInputs = [ installShellFiles ];
 
   postInstall = ''
     installManPage target/man/hyprdim.1
 
     installShellCompletion --cmd hyprdim \
-      --bash <(cat target/completions/hyprdim.bash) \
-      --fish <(cat target/completions/hyprdim.fish) \
-      --zsh <(cat target/completions/_hyprdim)
+      --bash target/completions/hyprdim.bash \
+      --fish target/completions/hyprdim.fish \
+      --zsh target/completions/_hyprdim
   '';
 
   passthru.updateScript = nix-update-script { };
diff --git a/nixpkgs/pkgs/by-name/hy/hyprlang/package.nix b/nixpkgs/pkgs/by-name/hy/hyprlang/package.nix
index 6dc2c4fecbcc..9a4c26583bde 100644
--- a/nixpkgs/pkgs/by-name/hy/hyprlang/package.nix
+++ b/nixpkgs/pkgs/by-name/hy/hyprlang/package.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprlang";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "hyprlang";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-upV2PWOoQ5hKbeuMwiJ4RJUa1JDVqzxdr5LL7YJJ/f4=";
+    hash = "sha256-bR4o3mynoTa1Wi4ZTjbnsZ6iqVcPGriXp56bZh5UFTk=";
   };
 
   nativeBuildInputs = [
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://github.com/hyprwm/hyprlang";
     description = "The official implementation library for the hypr config language";
-    license = licenses.gpl3Plus;
+    license = licenses.lgpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ iogamaster fufexan ];
   };
diff --git a/nixpkgs/pkgs/by-name/hy/hyprlock/package.nix b/nixpkgs/pkgs/by-name/hy/hyprlock/package.nix
index 5872e860474c..5bac39c63d49 100644
--- a/nixpkgs/pkgs/by-name/hy/hyprlock/package.nix
+++ b/nixpkgs/pkgs/by-name/hy/hyprlock/package.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprlock";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "hyprlock";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-SX3VRcewkqeAIY6ptgfk9+C6KB9aCEUOacb2pKl3kO0=";
+    hash = "sha256-1p6Y/8+ETaz7GQ8wsXLUTrk2dD0YN9ySOfwjRp2TSG4=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/applications/misc/hyprnome/default.nix b/nixpkgs/pkgs/by-name/hy/hyprnome/package.nix
index d8d6ba70c8f7..691ebc574a43 100644
--- a/nixpkgs/pkgs/applications/misc/hyprnome/default.nix
+++ b/nixpkgs/pkgs/by-name/hy/hyprnome/package.nix
@@ -1,8 +1,9 @@
-{ lib
-, rustPlatform
-, fetchFromGitHub
-, installShellFiles
-, nix-update-script
+{
+  lib,
+  rustPlatform,
+  fetchFromGitHub,
+  installShellFiles,
+  nix-update-script,
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -18,17 +19,15 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-DpbRs97sr5wpJSrYF99ZiQ0SZOZdoQjfaLhKIAU95HA=";
 
-  nativeBuildInputs = [
-    installShellFiles
-  ];
+  nativeBuildInputs = [ installShellFiles ];
 
   postInstall = ''
     installManPage target/man/hyprnome.1
 
     installShellCompletion --cmd hyprnome \
-      --bash <(cat target/completions/hyprnome.bash) \
-      --fish <(cat target/completions/hyprnome.fish) \
-      --zsh <(cat target/completions/_hyprnome)
+      --bash target/completions/hyprnome.bash \
+      --fish target/completions/hyprnome.fish \
+      --zsh target/completions/_hyprnome
   '';
 
   passthru.updateScript = nix-update-script { };
diff --git a/nixpkgs/pkgs/by-name/id/idb-companion/package.nix b/nixpkgs/pkgs/by-name/id/idb-companion/package.nix
new file mode 100644
index 000000000000..f133373acfa6
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/id/idb-companion/package.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "idb-companion";
+  version = "1.1.8";
+
+  src = fetchurl {
+    url = "https://github.com/facebook/idb/releases/download/v${finalAttrs.version}/idb-companion.universal.tar.gz";
+    hash = "sha256-O3LMappbGiKhiCBahAkNOilDR6hGGA79dVzxo8hI4+c=";
+  };
+
+  sourceRoot = "idb-companion.universal";
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -r . $out/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A powerful command line tool for automating iOS simulators and devices";
+    homepage = "https://github.com/facebook/idb";
+    license = licenses.mit;
+    platforms = platforms.darwin;
+    mainProgram = "idb_companion";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    maintainers = with maintainers; [ siddarthkay ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/if/ifrextractor-rs/package.nix b/nixpkgs/pkgs/by-name/if/ifrextractor-rs/package.nix
index 48ab01d352fa..2d525771d85f 100644
--- a/nixpkgs/pkgs/by-name/if/ifrextractor-rs/package.nix
+++ b/nixpkgs/pkgs/by-name/if/ifrextractor-rs/package.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Rust utility to extract UEFI IFR data into human-readable text";
+    mainProgram = "ifrextractor";
     homepage = "https://github.com/LongSoft/IFRExtractor-RS";
     license = licenses.bsd2;
     maintainers = with maintainers; [ jiegec ];
diff --git a/nixpkgs/pkgs/by-name/ig/igir/package.nix b/nixpkgs/pkgs/by-name/ig/igir/package.nix
index fcd25d1a9481..892b18414630 100644
--- a/nixpkgs/pkgs/by-name/ig/igir/package.nix
+++ b/nixpkgs/pkgs/by-name/ig/igir/package.nix
@@ -10,16 +10,16 @@
 
 buildNpmPackage rec {
   pname = "igir";
-  version = "2.5.0";
+  version = "2.5.2";
 
   src = fetchFromGitHub {
     owner = "emmercm";
     repo = "igir";
     rev = "v${version}";
-    hash = "sha256-7gK3NTjirlaraUWGixDdeQrCip9W3X/18mbzXYOizRs=";
+    hash = "sha256-z70oPKUTVKWQ/BME2ourQZWNmFYRTvSRs+2mKVfoIh8=";
   };
 
-  npmDepsHash = "sha256-2X0zCCHKFps3fN5X7rnOdD//D7RU9m4V9cyr3CgoXOE=";
+  npmDepsHash = "sha256-lTqAUtUv0WmS/TUkPZQyCOYhY5BFz4ZCXqJN5I6l/cI=";
 
   # I have no clue why I have to do this
   postPatch = ''
@@ -36,6 +36,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     description = "A video game ROM collection manager to help filter, sort, patch, archive, and report on collections on any OS";
+    mainProgram = "igir";
     homepage = "https://igir.io";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ TheBrainScrambler ];
diff --git a/nixpkgs/pkgs/by-name/ig/ignite-cli/package.nix b/nixpkgs/pkgs/by-name/ig/ignite-cli/package.nix
index 8ee9e6f57d04..b48af94d7fb8 100644
--- a/nixpkgs/pkgs/by-name/ig/ignite-cli/package.nix
+++ b/nixpkgs/pkgs/by-name/ig/ignite-cli/package.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "ignite-cli";
-  version = "28.2.0";
+  version = "28.3.0";
 
   src = fetchFromGitHub {
     repo = "cli";
     owner = "ignite";
     rev = "v${version}";
-    hash = "sha256-FRujRghSPSc2fq2Eiv4Hco4RIcv3D4zNI82NEhCGFhM=";
+    hash = "sha256-VLbVXZRKunvqM2gZlFrRdpIG558w6WFIRa/XHZwqA7s=";
   };
 
-  vendorHash = "sha256-cH6zwkRMvUjYb6yh/6S/e4ky8f4GvhCAOnCJMfDTmrE=";
+  vendorHash = "sha256-pT9WQuoA1LfeA2MO1giuO2hfwydiWqjyYXdSbqfHdhs=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/by-name/im/immersed-vr/darwin.nix b/nixpkgs/pkgs/by-name/im/immersed-vr/darwin.nix
new file mode 100644
index 000000000000..c43d92ccfda1
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/im/immersed-vr/darwin.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, pname
+, version
+, src
+, meta
+, undmg
+}:
+
+stdenv.mkDerivation {
+  inherit pname version src meta;
+
+  nativeBuildInputs = [ undmg ];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/Applications
+    cp -r *.app $out/Applications
+
+    runHook postInstall
+  '';
+
+  # Immersed is notarized.
+  dontFixup = true;
+}
diff --git a/nixpkgs/pkgs/by-name/im/immersed-vr/linux.nix b/nixpkgs/pkgs/by-name/im/immersed-vr/linux.nix
new file mode 100644
index 000000000000..fa4332e9146c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/im/immersed-vr/linux.nix
@@ -0,0 +1,14 @@
+{ pname
+, version
+, src
+, meta
+, appimageTools
+}:
+appimageTools.wrapType2 rec {
+  inherit pname version src meta;
+  name = "${pname}-${version}";
+
+  extraInstallCommands = ''
+    mv $out/bin/{${name},${pname}}
+  '';
+}
diff --git a/nixpkgs/pkgs/by-name/im/immersed-vr/package.nix b/nixpkgs/pkgs/by-name/im/immersed-vr/package.nix
index 985c7cc38b4c..f9968e4485c3 100644
--- a/nixpkgs/pkgs/by-name/im/immersed-vr/package.nix
+++ b/nixpkgs/pkgs/by-name/im/immersed-vr/package.nix
@@ -1,27 +1,36 @@
 { lib
 , appimageTools
+, callPackage
 , fetchurl
+, stdenv
 }:
-appimageTools.wrapType2 rec {
+let
   pname = "immersed-vr";
   version = "9.10";
-  name = "${pname}-${version}";
 
-  src = fetchurl {
-    url = "https://web.archive.org/web/20240210075929/https://static.immersed.com/dl/Immersed-x86_64.AppImage";
-    hash = "sha256-Mx8UnV4fZSebj9ah650ZqsL/EIJpM6jl8tYmXJZiJpA=";
+  sources = rec {
+    x86_64-linux = {
+      url = "https://web.archive.org/web/20240210075929/https://static.immersed.com/dl/Immersed-x86_64.AppImage";
+      hash = "sha256-Mx8UnV4fZSebj9ah650ZqsL/EIJpM6jl8tYmXJZiJpA=";
+    };
+    x86_64-darwin = {
+      url = "https://web.archive.org/web/20240210075929/https://static.immersed.com/dl/Immersed.dmg";
+      hash = "sha256-CR2KylovlS7zerZIEScnadm4+ENNhib5QnS6z5Ihv1Y=";
+    };
+    aarch64-darwin = x86_64-darwin;
   };
 
-  extraInstallCommands = ''
-    mv $out/bin/{${name},${pname}}
-  '';
+  src = fetchurl (sources.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"));
 
   meta = with lib; {
     description = "A VR coworking platform";
     homepage = "https://immersed.com";
     license = licenses.unfree;
     maintainers = with maintainers; [ haruki7049 ];
-    platforms = [ "x86_64-linux" ];
+    platforms = builtins.attrNames sources;
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
   };
-}
+
+in if stdenv.isDarwin
+then callPackage ./darwin.nix { inherit pname version src meta; }
+else callPackage ./linux.nix { inherit pname version src meta; }
diff --git a/nixpkgs/pkgs/by-name/im/impression/package.nix b/nixpkgs/pkgs/by-name/im/impression/package.nix
index 5d20c2e5a570..dea3d287468f 100644
--- a/nixpkgs/pkgs/by-name/im/impression/package.nix
+++ b/nixpkgs/pkgs/by-name/im/impression/package.nix
@@ -20,21 +20,21 @@
 , pango
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "impression";
-  version = "3.0.1";
+  version = "3.1.0";
 
   src = fetchFromGitLab {
     owner = "adhami3310";
     repo = "Impression";
-    rev = "v${version}";
-    hash = "sha256-xxPclDjHdXWo43cwvSuF9MpNlMTJANNXScLY1mkQTqY=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-5hBpe8D3DVXP6Hq5L4OUL9rCml0MoLdK7uZzbIIkNh0=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
-    inherit src;
-    name = "${pname}-${version}";
-    hash = "sha256-LDYckpKwNvkIdpPijTRIZPNfb4d9MZzxVFdSXarhFl0=";
+    inherit (finalAttrs) src;
+    name = "${finalAttrs.pname}-${finalAttrs.version}";
+    hash = "sha256-lbpbggf4DEjpXJ52aM7qNd01XCEY3xj8dKGMfCZ9i3A=";
   };
 
   nativeBuildInputs = [
@@ -68,4 +68,4 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ dotlambda ];
     platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/nixpkgs/pkgs/by-name/in/incus/ui.nix b/nixpkgs/pkgs/by-name/in/incus/ui.nix
index 2aefb2c640f9..705d715f0cfd 100644
--- a/nixpkgs/pkgs/by-name/in/incus/ui.nix
+++ b/nixpkgs/pkgs/by-name/in/incus/ui.nix
@@ -1,26 +1,87 @@
-{ lxd
+{ lib
+, stdenv
 , fetchFromGitHub
+, fetchYarnDeps
+, nodejs
+, prefetch-yarn-deps
+, yarn
+, nixosTests
 , git
 }:
 
-lxd.ui.overrideAttrs(prev: rec {
+stdenv.mkDerivation rec {
   pname = "incus-ui";
+  version = "0.6";
+
+  src = fetchFromGitHub {
+    owner = "canonical";
+    repo = "lxd-ui";
+    rev = "refs/tags/${version}";
+    hash = "sha256-3Ts6lKyzpMDVATCKD1fFIGTskWzWpQUT9S8cPFnlEOs=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${src}/yarn.lock";
+    hash = "sha256-0pyxwMGGqogEe1w3sail8NUDHtxLQZU9Wg8E6rQNy4o=";
+  };
 
   zabbly = fetchFromGitHub {
     owner = "zabbly";
     repo = "incus";
-    rev = "8bbe23f42beedd845bd95069c06f4d0c85e450b6";
-    hash = "sha256-X0I8vrhvg5mLGAY8oEU/nr2pvDJ8ZqLUSY9WBqwmolE=";
+    rev = "3eabc1960e99e7e515916e3ea7068a412a8c420b";
+    hash = "sha256-Kw53Qjurc6WPswB38v6wuRhuuGE34uYxNoAKH4UmTBE=";
   };
 
-  nativeBuildInputs = prev.nativeBuildInputs ++ [
-    git
-  ];
-
   patchPhase = ''
-    for p in $zabbly/patches/ui-canonical*; do
+    for p in $zabbly/patches/ui-canonical*patch; do
       echo "applying patch $p"
       git apply -p1 "$p"
     done
+    sed -i -f "$zabbly/patches/ui-canonical-renames.sed" src/*/*.ts* src/*/*/*.ts* src/*/*/*/*.ts*
   '';
-})
+
+  nativeBuildInputs = [
+    nodejs
+    prefetch-yarn-deps
+    yarn
+    git
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    cp -r build/ui/ $out
+
+    runHook postInstall
+  '';
+
+  passthru.tests.default = nixosTests.incus.ui;
+
+  meta = {
+    description = "Web user interface for Incus, based on LXD webui";
+    homepage = "https://github.com/canonical/lxd-ui";
+    license = lib.licenses.gpl3;
+    maintainers = lib.teams.lxc.members;
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/in/indiepass-desktop/package.nix b/nixpkgs/pkgs/by-name/in/indiepass-desktop/package.nix
deleted file mode 100644
index b028755fa67a..000000000000
--- a/nixpkgs/pkgs/by-name/in/indiepass-desktop/package.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ lib
-, buildNpmPackage
-, fetchFromGitHub
-, makeDesktopItem
-, copyDesktopItems
-, makeWrapper
-, electron
-}:
-
-buildNpmPackage rec {
-  pname = "indiepass-desktop";
-  version = "1.4.0-unstable-2023-05-19";
-
-  src = fetchFromGitHub {
-    owner = "indiepass";
-    repo = "indiepass-desktop";
-    rev = "751660324d6bfc6f95af08bf9bc92e892841f2b2";
-    hash = "sha256-cQqL8eNb23NFMWrK9xh6bZcr0EoYbyJiid+xXQRPqMk=";
-  };
-
-  npmDepsHash = "sha256-gp77eDxturBib0JRNVNSd+nDxQyVTJVKEj4ydB7eICE=";
-
-  env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
-
-  dontNpmBuild = true;
-
-  desktopItems = [
-    (makeDesktopItem {
-      name = pname;
-      exec = "indiepass";
-      icon = "indiepass";
-      comment = meta.description;
-      desktopName = "Indiepass";
-      genericName = "Feed Reader";
-    })
-  ];
-
-  nativeBuildInputs = [
-    copyDesktopItems
-    makeWrapper
-  ];
-
-  postInstall = ''
-    install -Dm 644 $out/lib/node_modules/indiepass/images/icon.png $out/share/pixmaps/indiepass.png
-
-    makeWrapper ${electron}/bin/electron $out/bin/indiepass \
-      --add-flags $out/lib/node_modules/indiepass/main.js
-  '';
-
-  meta = with lib; {
-    description = "IndieWeb app with extensions for sharing to/reading from micropub endpoints";
-    homepage = "https://github.com/IndiePass/indiepass-desktop";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ wolfangaukang ];
-    mainProgram = "indiepass";
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/nixpkgs/pkgs/by-name/in/intiface-central/package.nix b/nixpkgs/pkgs/by-name/in/intiface-central/package.nix
index 889ef7a874d0..180d4feefc66 100644
--- a/nixpkgs/pkgs/by-name/in/intiface-central/package.nix
+++ b/nixpkgs/pkgs/by-name/in/intiface-central/package.nix
@@ -27,7 +27,7 @@ flutter.buildFlutterApplication rec {
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "${pname}-${version}-cargo-deps";
     inherit src;
-    sourceRoot = "source/intiface-engine-flutter-bridge";
+    sourceRoot = "${src.name}/intiface-engine-flutter-bridge";
     hash = "sha256-0sCHa3rMaLYaUG3E3fmsLi0dSdb9vGyv7qNR3JQkXuU=";
   };
   cargoRoot = "intiface-engine-flutter-bridge";
diff --git a/nixpkgs/pkgs/by-name/in/intune-portal/package.nix b/nixpkgs/pkgs/by-name/in/intune-portal/package.nix
index 8b6667867627..6e60df8bde46 100644
--- a/nixpkgs/pkgs/by-name/in/intune-portal/package.nix
+++ b/nixpkgs/pkgs/by-name/in/intune-portal/package.nix
@@ -23,11 +23,11 @@
 }:
 stdenv.mkDerivation rec {
   pname = "intune-portal";
-  version = "1.2401.21-jammy";
+  version = "1.2402.12-jammy";
 
   src = fetchurl {
     url = "https://packages.microsoft.com/ubuntu/22.04/prod/pool/main/i/${pname}/${pname}_${version}_amd64.deb";
-    hash = "sha256-BIPTVhOBzaKzZR0WhQOX2W8kDg64UWOgIVvgaw2Gckc=";
+    hash = "sha256-S5+Ddm13OJ4eQTQ9Q8OgsCqnpM6GxuZ1hEycZCy6//g=";
   };
 
   nativeBuildInputs = [ dpkg ];
diff --git a/nixpkgs/pkgs/by-name/in/invidtui/package.nix b/nixpkgs/pkgs/by-name/in/invidtui/package.nix
index 378280bf95f3..d141398a2f9d 100644
--- a/nixpkgs/pkgs/by-name/in/invidtui/package.nix
+++ b/nixpkgs/pkgs/by-name/in/invidtui/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "invidtui";
-  version = "0.4.2";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "darkhz";
     repo = "invidtui";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/HsoV8HdMffD7dzRblSSBMv7kBPRpxUarM5WZoYVxvQ=";
+    hash = "sha256-nNJ2bjrHRIzcPs+jbZpgaHBxSWRzSRIsT6xx9EsbISg=";
   };
 
-  vendorHash = "sha256-T/muFaQQp/joOCehNZQc5CWmyGakoRaGAsO2mTOODJA=";
+  vendorHash = "sha256-C7O2GJuEdO8geRPfHx1Sq6ZveDE/u65JBx/Egh3cnK4=";
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/by-name/ip/iplan/package.nix b/nixpkgs/pkgs/by-name/ip/iplan/package.nix
new file mode 100644
index 000000000000..c58a23d88ec1
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ip/iplan/package.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cargo
+, meson
+, ninja
+, pkg-config
+, rustPlatform
+, rustc
+, wrapGAppsHook4
+, desktop-file-utils
+, libadwaita
+}:
+
+stdenv.mkDerivation rec {
+  pname = "iplan";
+  version = "1.9.2";
+
+  src = fetchFromGitHub {
+    owner = "iman-salmani";
+    repo = "iplan";
+    rev = "v${version}";
+    hash = "sha256-BIoxaE8c3HmvPjgj4wcZK9YFTZ0wr9338AIdYEoAiqs=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-p8ETWWvjtP9f/lc347ORPqTai5p/TWQCCMRe+c0FyFk=";
+  };
+
+  nativeBuildInputs = [
+    cargo
+    meson
+    ninja
+    pkg-config
+    rustPlatform.cargoSetupHook
+    rustc
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    libadwaita
+  ];
+
+  meta = with lib; {
+    description = "Your plan for improving personal life and workflow";
+    homepage = "https://github.com/iman-salmani/iplan";
+    license = licenses.gpl3Plus;
+    mainProgram = "iplan";
+    maintainers = with maintainers; [ aleksana ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ja/jackass/package.nix b/nixpkgs/pkgs/by-name/ja/jackass/package.nix
new file mode 100644
index 000000000000..700ba4254091
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ja/jackass/package.nix
@@ -0,0 +1,66 @@
+{ lib, stdenv, fetchFromGitHub, fetchzip, pkg-config, wine64, enableJackAssWine64 ? false }:
+
+let
+  # equal to vst-sdk in ../oxefmsynth/default.nix
+  vst-sdk = stdenv.mkDerivation (finalAttrs: {
+    name = "vstsdk3610_11_06_2018_build_37";
+    src = fetchzip {
+      url = "https://web.archive.org/web/20181016150224if_/https://download.steinberg.net/sdk_downloads/${finalAttrs.name}.zip";
+      hash = "sha256-cjYakxnqSDqSZ32FPK3OUhDpslOlavHh5SAVpng0QTU=";
+    };
+    installPhase = ''
+      runHook preInstall
+      cp -r . $out
+      runHook postInstall
+    '';
+  });
+
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "jackass";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "falkTX";
+    repo = "JackAss";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-6mqG4H6iGvDbGnmMeP/vcvSnvUGClZUl06XpKovt50E=";
+  };
+
+  postPatch = ''
+    cp -r ${vst-sdk}/VST2_SDK/{public.sdk,pluginterfaces} vstsdk2.4
+  '';
+
+  nativeBuildInputs = [ pkg-config ] ++ lib.optionals enableJackAssWine64 [ wine64 ];
+
+  makeFlags = [ "linux" ] ++ lib.optionals enableJackAssWine64 [ "wine64" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install_dir="$out/lib/vst"
+    mkdir -p $install_dir
+    for file in JackAss.so JackAssWine64.dll; do
+      if test -f "$file"; then
+        cp $file $install_dir
+      fi
+    done
+
+    runHook postInstall
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "JackAss is a VST plugin that provides JACK-MIDI support for VST hosts.";
+    longDescription = ''
+      Simply load the plugin in your favourite host to get a JACK-MIDI port.
+      Optionally includes a special Wine build for running in Wine
+      applications. Set enableJackAssWine64 to true to enable this output.
+    '';
+    homepage = "https://github.com/falkTX/JackAss";
+    maintainers = with maintainers; [ PowerUser64 ];
+    license = with licenses; [ mit unfree ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ja/jan/package.nix b/nixpkgs/pkgs/by-name/ja/jan/package.nix
index 44296231986f..76daa73b20e6 100644
--- a/nixpkgs/pkgs/by-name/ja/jan/package.nix
+++ b/nixpkgs/pkgs/by-name/ja/jan/package.nix
@@ -5,10 +5,10 @@
 
 let
   pname = "jan";
-  version = "0.4.7";
+  version = "0.4.9";
   src = fetchurl {
     url = "https://github.com/janhq/jan/releases/download/v${version}/jan-linux-x86_64-${version}.AppImage";
-    hash = "sha256-Mn7rIBEf46JbNof8h3z66TGdGKnb0FGMJc46JncA0KM=";
+    hash = "sha256-6XnDrr+AkZH69zXf0OKdi8R6LoRWWMZNqWilZhLGynk=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
diff --git a/nixpkgs/pkgs/by-name/ja/jankyborders/package.nix b/nixpkgs/pkgs/by-name/ja/jankyborders/package.nix
new file mode 100644
index 000000000000..51ce3ded630e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ja/jankyborders/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, fetchFromGitHub
+, pkg-config
+, pkgs
+, overrideSDK
+, darwin
+, testers
+}:
+let
+  stdenv = overrideSDK pkgs.stdenv "11.0";
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "JankyBorders";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "FelixKratz";
+    repo = "JankyBorders";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-DX1d228UCOI+JU+RxenhiGyn3AiqpsGe0aCtr091szs=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = with darwin.apple_sdk.frameworks; [
+    AppKit
+    ApplicationServices
+    CoreFoundation
+    CoreGraphics
+    SkyLight
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp ./bin/borders $out/bin/borders
+
+    runHook postInstall
+  '';
+
+  passthru.tests.version = testers.testVersion {
+    package = finalAttrs.finalPackage;
+    version = "borders-v${finalAttrs.version}";
+  };
+
+  meta = {
+    description = "JankyBorders is a lightweight tool designed to add colored borders to user windows on macOS 14.0+";
+    longDescription = "It enhances the user experience by visually highlighting the currently focused window without relying on the accessibility API, thereby being faster than comparable tools.";
+    homepage = "https://github.com/FelixKratz/JankyBorders";
+    license = lib.licenses.gpl3;
+    mainProgram = "borders";
+    maintainers = with lib.maintainers; [ khaneliman ];
+    platforms = lib.platforms.darwin;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ja/jasp-desktop/package.nix b/nixpkgs/pkgs/by-name/ja/jasp-desktop/package.nix
index 395b980da880..208589e45695 100644
--- a/nixpkgs/pkgs/by-name/ja/jasp-desktop/package.nix
+++ b/nixpkgs/pkgs/by-name/ja/jasp-desktop/package.nix
@@ -110,7 +110,7 @@ stdenv.mkDerivation {
     changelog = "https://jasp-stats.org/release-notes";
     description = "A complete statistical package for both Bayesian and Frequentist statistical methods";
     homepage = "https://github.com/jasp-stats/jasp-desktop";
-    license = lib.licenses.agpl3;
+    license = lib.licenses.agpl3Plus;
     mainProgram = "JASP";
     maintainers = with lib.maintainers; [ tomasajt ];
     # JASP's cmake build steps are really different on Darwin
diff --git a/nixpkgs/pkgs/by-name/ja/jasper/package.nix b/nixpkgs/pkgs/by-name/ja/jasper/package.nix
index 88665973596a..e399268a202c 100644
--- a/nixpkgs/pkgs/by-name/ja/jasper/package.nix
+++ b/nixpkgs/pkgs/by-name/ja/jasper/package.nix
@@ -14,19 +14,16 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "jasper";
-  version = "4.2.1";
+  version = "4.2.2";
 
   src = fetchFromGitHub {
     owner = "jasper-software";
     repo = "jasper";
     rev = "version-${finalAttrs.version}";
-    hash = "sha256-SE3zB+8zZuuT+W6QYTuQhM+dBgYuFzYK4a7QaquGB60=";
+    hash = "sha256-dcE9Cc+L/nLp/JCvYuGLRnkxL1i3dLIB9cSILWaZWn4=";
   };
 
-  # Splitting outputs going bad on Darwin
-  outputs = if stdenv.isDarwin
-            then [ "out" ]
-            else [ "out" "dev" "doc" "lib" "man" ];
+  outputs = [ "out" "dev" "doc" "lib" "man" ];
 
   nativeBuildInputs = [
     cmake
diff --git a/nixpkgs/pkgs/by-name/ji/jigmo/package.nix b/nixpkgs/pkgs/by-name/ji/jigmo/package.nix
new file mode 100644
index 000000000000..18c84916dbf5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ji/jigmo/package.nix
@@ -0,0 +1,27 @@
+{ lib, stdenvNoCC, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "jigmo";
+  version = "20230816";
+
+  src = fetchzip {
+    url = "https://kamichikoichi.github.io/jigmo/Jigmo-${version}.zip";
+    hash = "sha256-wBec7IiUneqCEyY704Wi6F6WG0Z1KK7gBGcJhRjrRDc=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 *.ttf -t $out/share/fonts/truetype/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Japanese Kanji font set which is the official successor to Hanazono Mincho";
+    homepage = "https://kamichikoichi.github.io/jigmo/";
+    license = licenses.cc0;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/jn/jnv/package.nix b/nixpkgs/pkgs/by-name/jn/jnv/package.nix
new file mode 100644
index 000000000000..bb81b8b70bff
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/jn/jnv/package.nix
@@ -0,0 +1,35 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, autoconf
+, automake
+, libtool
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "jnv";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "ynqa";
+    repo = "jnv";
+    rev = "v${version}";
+    hash = "sha256-22aoK1s8DhKttGGR9ouNDIWhYCv6dghT/jfAC0VX8Sw=";
+  };
+
+  cargoHash = "sha256-CmupwWwopXpnPm8R17JVfAoGt4QEos5I+3qumDKEyM8=";
+
+  nativeBuildInputs = [
+    autoconf
+    automake
+    libtool
+    rustPlatform.bindgenHook
+  ];
+
+  meta = with lib; {
+    description = "Interactive JSON filter using jq";
+    mainProgram = "jnv";
+    homepage = "https://github.com/ynqa/jnv";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ nealfennimore nshalman ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/jo/jogl/package.nix b/nixpkgs/pkgs/by-name/jo/jogl/package.nix
index 3919ee1e0e0f..5157fe679771 100644
--- a/nixpkgs/pkgs/by-name/jo/jogl/package.nix
+++ b/nixpkgs/pkgs/by-name/jo/jogl/package.nix
@@ -5,6 +5,7 @@
 , jdk11
 , git
 , xmlstarlet
+, stripJavaArchivesHook
 , xcbuild
 , udev
 , xorg
@@ -42,13 +43,6 @@ stdenv.mkDerivation {
     substituteInPlace gluegen/src/java/com/jogamp/common/util/IOUtil.java \
       --replace-fail '#!/bin/true' '#!${coreutils}/bin/true'
   ''
-  # set timestamp of files in jar to a fixed point in time
-  + ''
-    xmlstarlet ed --inplace \
-      --append //jar --type attr -n modificationtime --value 1980-01-01T00:00Z \
-      gluegen/make/{build.xml,gluegen-cpptasks-base.xml} \
-      jogl/make/{build.xml,build-nativewindow.xml,build-jogl.xml}
-  ''
   # prevent looking for native libraries in /usr/lib
   + ''
     substituteInPlace jogl/make/build-*.xml \
@@ -72,6 +66,7 @@ stdenv.mkDerivation {
     jdk11
     git
     xmlstarlet
+    stripJavaArchivesHook
   ] ++ lib.optionals stdenv.isDarwin [
     xcbuild
   ];
diff --git a/nixpkgs/pkgs/applications/file-managers/joshuto/default.nix b/nixpkgs/pkgs/by-name/jo/joshuto/package.nix
index f2bb67292306..08f5429fbb5c 100644
--- a/nixpkgs/pkgs/applications/file-managers/joshuto/default.nix
+++ b/nixpkgs/pkgs/by-name/jo/joshuto/package.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "joshuto";
-  version = "0.9.6";
+  version = "0.9.8";
 
   src = fetchFromGitHub {
     owner = "kamiyaa";
     repo = "joshuto";
     rev = "v${version}";
-    hash = "sha256-d2r8xPGnH/299wjEijilgqy3u/xJgtRmwzJdHt0sA+o=";
+    hash = "sha256-8OvaL6HqsJjBAbksR4EpC/ZgvdBSKlB37PP77p3T3PY=";
   };
 
-  cargoHash = "sha256-amgqoL7NYfl3WzTtgvDoBX46rsL9248rbCis6MHVQhE=";
+  cargoHash = "sha256-zGqOmebD7kZAsWunWSB2NFOSg0cu8aM1dyhEIQz1j4I=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/development/tools/just/default.nix b/nixpkgs/pkgs/by-name/ju/just/package.nix
index 4123ef3157dc..c613853ef3d9 100644
--- a/nixpkgs/pkgs/development/tools/just/default.nix
+++ b/nixpkgs/pkgs/by-name/ju/just/package.nix
@@ -11,17 +11,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "just";
-  version = "1.25.0";
+  version = "1.25.2";
   outputs = [ "out" "man" "doc" ];
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-ymFBR40lY1ZX6vLH6KDX0a9mI9eOuOJY4bjp2UBubG4=";
+    hash = "sha256-w7tHLjIFnlvyuTw5yG6zxJtQ7oDNdKRXHIRKY638vTo=";
   };
 
-  cargoHash = "sha256-B10p57SZSzccs53/OtqFuftHJSxaHRpa+cHODqBo8t4=";
+  cargoHash = "sha256-VL2uNbEtqOv3xmLukhdCmo3lrfx5yFwOAMGwgBlgAVw=";
 
   nativeBuildInputs = [ installShellFiles mdbook ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
diff --git a/nixpkgs/pkgs/development/tools/just/setup-hook.sh b/nixpkgs/pkgs/by-name/ju/just/setup-hook.sh
index 0ffcfc187ebf..0ffcfc187ebf 100644
--- a/nixpkgs/pkgs/development/tools/just/setup-hook.sh
+++ b/nixpkgs/pkgs/by-name/ju/just/setup-hook.sh
diff --git a/nixpkgs/pkgs/by-name/ju/justbuild/package.nix b/nixpkgs/pkgs/by-name/ju/justbuild/package.nix
index 0f2098aa148d..42510b0ade0b 100644
--- a/nixpkgs/pkgs/by-name/ju/justbuild/package.nix
+++ b/nixpkgs/pkgs/by-name/ju/justbuild/package.nix
@@ -170,7 +170,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
+    broken = true; # last successful build 2024-01-26
     description = "a generic build tool";
     homepage = "https://github.com/just-buildsystem/justbuild";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/by-name/ka/kana/package.nix b/nixpkgs/pkgs/by-name/ka/kana/package.nix
new file mode 100644
index 000000000000..3fc7e8d3c257
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ka/kana/package.nix
@@ -0,0 +1,74 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, rustPlatform
+, meson
+, ninja
+, pkg-config
+, rustc
+, cargo
+, wrapGAppsHook4
+, desktop-file-utils
+, libadwaita
+, gst_all_1
+, darwin
+}:
+
+stdenv.mkDerivation rec {
+  pname = "kana";
+  version = "1.4";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "fkinoshita";
+    repo = "Kana";
+    rev = "v${version}";
+    hash = "sha256-/Ri723ub8LMlhbPObC83bay63JuWIQpgxAT5UUYuwZI=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "kana-${version}";
+    hash = "sha256-Z7DpPe8/Tt8AcLjCwKbwzQTsLe6YvWBCG7DlDkkklew=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    rustPlatform.cargoSetupHook
+    rustc
+    cargo
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    libadwaita
+  ] ++ (with gst_all_1; [
+    gstreamer
+    gst-plugins-base
+    gst-plugins-bad
+    gst-plugins-good
+  ]) ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Foundation
+  ];
+
+  # Workaround for the gettext-sys issue
+  # https://github.com/Koka/gettext-rs/issues/114
+  env.NIX_CFLAGS_COMPILE = lib.optionalString
+    (
+      stdenv.cc.isClang &&
+      lib.versionAtLeast stdenv.cc.version "16"
+    )
+    "-Wno-error=incompatible-function-pointer-types";
+
+  meta = with lib; {
+    description = "Learn Japanese hiragana and katakana characters";
+    homepage = "https://gitlab.gnome.org/fkinoshita/kana";
+    license = licenses.gpl3Plus;
+    mainProgram = "kana";
+    maintainers = with maintainers; [ aleksana ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ka/kanagawa-gtk-theme/package.nix b/nixpkgs/pkgs/by-name/ka/kanagawa-gtk-theme/package.nix
new file mode 100644
index 000000000000..bf714e0f301f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ka/kanagawa-gtk-theme/package.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gtk3
+, gtk-engine-murrine
+}:
+stdenvNoCC.mkDerivation {
+  pname = "kanagawa-gtk-theme";
+  version = "0-unstable-2023-07-03";
+
+  src = fetchFromGitHub {
+    owner = "Fausto-Korpsvart";
+    repo = "Kanagawa-GKT-Theme";
+    rev = "35936a1e3bbd329339991b29725fc1f67f192c1e";
+    hash = "sha256-BZRmjVas8q6zsYbXFk4bCk5Ec/3liy9PQ8fqFGHAXe0=";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/themes
+    cp -a themes/* $out/share/themes
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A GTK theme with the Kanagawa colour palette";
+    homepage = "https://github.com/Fausto-Korpsvart/Kanagawa-GKT-Theme";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ iynaix ];
+    platforms = gtk3.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ka/kanagawa-icon-theme/package.nix b/nixpkgs/pkgs/by-name/ka/kanagawa-icon-theme/package.nix
new file mode 100644
index 000000000000..b2d2517ae630
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ka/kanagawa-icon-theme/package.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenvNoCC
+, fetchFromGitHub
+, gtk3
+, hicolor-icon-theme
+}:
+stdenvNoCC.mkDerivation {
+  pname = "kanagawa-icon-theme";
+  version = "0-unstable-2023-07-03";
+
+  src = fetchFromGitHub {
+    owner = "Fausto-Korpsvart";
+    repo = "Kanagawa-GKT-Theme";
+    rev = "35936a1e3bbd329339991b29725fc1f67f192c1e";
+    hash = "sha256-BZRmjVas8q6zsYbXFk4bCk5Ec/3liy9PQ8fqFGHAXe0=";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons
+    cp -a icons/* $out/share/icons
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache -f $theme
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "An icon theme for the Kanagawa colour palette";
+    homepage = "https://github.com/Fausto-Korpsvart/Kanagawa-GKT-Theme";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ iynaix ];
+    platforms = gtk3.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ke/kernel-hardening-checker/package.nix b/nixpkgs/pkgs/by-name/ke/kernel-hardening-checker/package.nix
new file mode 100644
index 000000000000..ef202db574dd
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ke/kernel-hardening-checker/package.nix
@@ -0,0 +1,25 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "kernel-hardening-checker";
+  version = "0.6.6";
+
+  src = fetchFromGitHub {
+    owner = "a13xp0p0v";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-xpVazB9G0cdc0GglGpna80EWHZXfTd5mc5mTvvvoPfE=";
+  };
+
+  meta = with lib; {
+    description = "A tool for checking the security hardening options of the Linux kernel";
+    homepage = "https://github.com/a13xp0p0v/kernel-hardening-checker";
+    license = licenses.gpl3Only;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ erdnaxe ];
+    mainProgram = "kernel-hardening-checker";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ki/kikit/default.nix b/nixpkgs/pkgs/by-name/ki/kikit/default.nix
index e34f12652ede..e8356fd0a0ff 100644
--- a/nixpkgs/pkgs/by-name/ki/kikit/default.nix
+++ b/nixpkgs/pkgs/by-name/ki/kikit/default.nix
@@ -10,6 +10,7 @@
 , numpy
 , click
 , markdown2
+, openscad
 , pytestCheckHook
 , commentjson
 , wxpython
@@ -23,7 +24,7 @@ let
 in
 buildPythonApplication rec {
   pname = "kikit";
-  version = "1.4.0";
+  version = "1.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -32,7 +33,7 @@ buildPythonApplication rec {
     owner = "yaqwsx";
     repo = "KiKit";
     rev = "refs/tags/v${version}";
-    hash = "sha256-88/1bL3MtawR/8P8U1jHatMbq+JxF1qb+plH3rYh1qU=";
+    hash = "sha256-f8FB6EEy9Ch4LcMKd9PADXV9QrSb7e22Ui86G6AnQKE=";
   };
 
   propagatedBuildInputs = [
@@ -40,6 +41,9 @@ buildPythonApplication rec {
     numpy
     click
     markdown2
+    # OpenSCAD is an optional dependency (see
+    # https://github.com/yaqwsx/KiKit/blob/v1.5.0/docs/installation/intro.md#optional-dependencies).
+    openscad
     commentjson
     # https://github.com/yaqwsx/KiKit/issues/575
     wxpython
diff --git a/nixpkgs/pkgs/by-name/km/kminion/package.nix b/nixpkgs/pkgs/by-name/km/kminion/package.nix
new file mode 100644
index 000000000000..04f66333e43c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/km/kminion/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, buildGoModule
+}:
+
+buildGoModule rec {
+  pname = "kafka-minion";
+  version = "2.2.7";
+
+  src = fetchFromGitHub {
+    owner = "redpanda-data";
+    repo = "kminion";
+    rev = "0c90d4301ed4600d1aaf3345b6f16587d2f282fc";
+    hash = "sha256-CWjX46Sfc9Xj+R7+CZeMuTY0iUStzyZXI4FotwqR44M=";
+  };
+
+  vendorHash = "sha256-6yfQVoY/bHMA4s0IN5ltnQdHWnE3kIKza36uEcGa11U=";
+
+  doCheck = false;
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with lib; {
+    description = "KMinion is a feature-rich Prometheus exporter for Apache Kafka written in Go";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ cafkafk ];
+    mainProgram = "kminion";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/km/kminion/update.sh b/nixpkgs/pkgs/by-name/km/kminion/update.sh
new file mode 100644
index 000000000000..38173cd69ffc
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/km/kminion/update.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p nix-update
+
+nix-update kminion
diff --git a/nixpkgs/pkgs/applications/video/kooha/default.nix b/nixpkgs/pkgs/by-name/ko/kooha/package.nix
index bda712cac113..bc9fdf70d9e5 100644
--- a/nixpkgs/pkgs/applications/video/kooha/default.nix
+++ b/nixpkgs/pkgs/by-name/ko/kooha/package.nix
@@ -22,19 +22,19 @@
 
 stdenv.mkDerivation rec {
   pname = "kooha";
-  version = "2.2.3";
+  version = "2.2.4";
 
   src = fetchFromGitHub {
     owner = "SeaDve";
     repo = "Kooha";
     rev = "v${version}";
-    hash = "sha256-vLgBuP0DncBIb05R3484WozS+Nl+S7YBJUYek2CkJkQ=";
+    hash = "sha256-D/+tsIfcXrlwwL6vSLRsiAp7wMVtIgzjNNd2uk+9bco=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-NPh603/5yZDUdTegAzFvjRn5tuzyrcNzbbKQr6NxXso=";
+    hash = "sha256-iDyhK2k2RB7CvtW+91isVzIFOl2/Loh+Bvneu4TGfn0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/by-name/kr/krbjack/package.nix b/nixpkgs/pkgs/by-name/kr/krbjack/package.nix
new file mode 100644
index 000000000000..59a58f289b00
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/kr/krbjack/package.nix
@@ -0,0 +1,48 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "krbjack";
+  version = "0-unstable-2024-02-08";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "almandin";
+    repo = "krbjack";
+    rev = "0abaf7039c11fe735120c44a9420a311b42f7551";
+    hash = "sha256-rvK0I8WlXqJtau9f+6ximfzYCjX21dPIyDN56IMI0gE=";
+  };
+
+  pythonRelaxDeps = [
+    "impacket"
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    colorama
+    dnspython
+    impacket
+    scapy
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "krbjack"
+  ];
+
+  meta = with lib; {
+    description = "Kerberos AP-REQ hijacking tool with DNS unsecure updates abuse";
+    homepage = "https://github.com/almandin/krbjack";
+    license = licenses.beerware;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "krbjack";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ku/kubectl-neat/package.nix b/nixpkgs/pkgs/by-name/ku/kubectl-neat/package.nix
index c0ce31abb926..82ba45377ac4 100644
--- a/nixpkgs/pkgs/by-name/ku/kubectl-neat/package.nix
+++ b/nixpkgs/pkgs/by-name/ku/kubectl-neat/package.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Clean up Kubernetes yaml and json output to make it readable";
+    mainProgram = "kubectl-neat";
     homepage = "https://github.com/itaysk/kubectl-neat";
     changelog = "https://github.com/itaysk/kubectl-neat/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/by-name/ku/kubectl-validate/package.nix b/nixpkgs/pkgs/by-name/ku/kubectl-validate/package.nix
index 13ca4998c58d..f01b05b18b21 100644
--- a/nixpkgs/pkgs/by-name/ku/kubectl-validate/package.nix
+++ b/nixpkgs/pkgs/by-name/ku/kubectl-validate/package.nix
@@ -4,7 +4,7 @@
 , nix-update-script
 }:
 let
-  version = "0.0.1";
+  version = "0.0.3";
 in
 buildGoModule {
   inherit version;
@@ -14,7 +14,7 @@ buildGoModule {
     owner = "kubernetes-sigs";
     repo = "kubectl-validate";
     rev = "v${version}";
-    hash = "sha256-0lwN+3Cy7O9kX9dh8PjxmvdyKSZhBxcxy+b+ZtuDZaw=";
+    hash = "sha256-k2+2QIPjNw6C/Do1WhPN39VZhZX4PZ6ZsKDKGJ9E5QA=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/by-name/ky/kyverno-chainsaw/package.nix b/nixpkgs/pkgs/by-name/ky/kyverno-chainsaw/package.nix
new file mode 100644
index 000000000000..0853481fe1ed
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ky/kyverno-chainsaw/package.nix
@@ -0,0 +1,38 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kyverno-chainsaw";
+  version = "0.1.9";
+
+  src = fetchFromGitHub {
+    owner = "kyverno";
+    repo = "chainsaw";
+    rev = "v${version}";
+    hash = "sha256-qn5EjddLVRhN90SICa39A28giXQ24Ol1nfbxNH5TXhc=";
+  };
+
+  vendorHash = "sha256-R9qaG19Vp+1a7AL0q8Cl1jN89cbXzLwbnN163WMWAEw=";
+
+  ldflags = [
+    "-s" "-w"
+    "-X github.com/kyverno/chainsaw/pkg/version.BuildVersion=v${version}"
+    "-X github.com/kyverno/chainsaw/pkg/version.BuildHash=${version}"
+    "-X github.com/kyverno/chainsaw/pkg/version.BuildTime=1970-01-01_00:00:00"
+  ];
+
+  doCheck = false; # requires running kubernetes
+
+  meta = {
+    changelog = "https://github.com/kyverno/chainsaw/releases/tag/v${version}";
+    description = "Declarative approach to test Kubernetes operators and controllers";
+    homepage = "https://kyverno.github.io/chainsaw/";
+    license = lib.licenses.asl20;
+    longDescription = ''
+      Chainsaw is meant to test Kubernetes operators work as expected by running a sequence of test steps for:
+      * Creating resources
+      * Asserting operators react (or not) the way they should
+    '';
+    mainProgram = "chainsaw";
+    maintainers = with lib.maintainers; [ Sanskarzz ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/la/labelife-label-printer/package.nix b/nixpkgs/pkgs/by-name/la/labelife-label-printer/package.nix
new file mode 100644
index 000000000000..fb73aa24d572
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/la/labelife-label-printer/package.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenv
+, fetchurl
+, cups
+, autoPatchelfHook
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "labelife-label-printer";
+  version = "1.2.1";
+
+  arch =
+    if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64"
+    else if stdenv.hostPlatform.system == "i686-linux" then "i386"
+      else throw "Unsupported system: ${stdenv.hostPlatform.system}";
+
+  src = fetchurl {
+    url = "https://oss.saas.aimocloud.com/saas/Lablife/bag/LabelPrinter-${finalAttrs.version}.tar.gz";
+    hash = "sha256-twnIFMBMyEM3xGlsuk3763C3emz3mgpEnlfvnL0XRWw=";
+  };
+
+  nativeBuildInputs = [ autoPatchelfHook ];
+  buildInputs = [ cups ];
+
+  installPhase =
+  ''
+    runHook preInstall
+    # Install the CUPS filter with executable permissions
+    install -Dm755 ./${finalAttrs.arch}/rastertolabeltspl $out/lib/cups/filter/rastertolabeltspl
+
+    # Install all PPD files with read and write permissions for owner, and read for group and others
+    for ppd in ./ppds/*.ppd; do
+      install -Dm644 $ppd $out/share/cups/model/label/$(basename $ppd)
+    done
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "CUPS driver for several Labelife-compatible thermal label printers";
+    downloadPage = "https://labelife.net/#/chart";
+    homepage = "https://labelife.net";
+    license = lib.licenses.unfree;
+    longDescription = ''
+    Supported printer models include:
+    - D520 & D520BT
+    - PM-201
+    - PM-241 & PM-241-BT
+    - PM-246 & PM-246S
+
+    Brands using Labelife drivers include:
+    - Phomemo
+    - Itari
+    - Omezizy
+    - Aimo
+    '';
+    maintainers = with lib.maintainers; [ daniel-fahey ];
+    platforms = with lib; [ "i686-linux" "x86_64-linux" ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/la/labwc-menu-generator/package.nix b/nixpkgs/pkgs/by-name/la/labwc-menu-generator/package.nix
index 331936ea5373..1d84dbd4eeb9 100644
--- a/nixpkgs/pkgs/by-name/la/labwc-menu-generator/package.nix
+++ b/nixpkgs/pkgs/by-name/la/labwc-menu-generator/package.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "labwc-menu-generator";
-  version = "unstable-2023-10-31";
+  version = "unstable-2024-03-12";
 
   src = fetchFromGitHub {
     owner = "labwc";
     repo = "labwc-menu-generator";
-    rev = "d7c81071f8b121ef83da32ae3fa16155d1a2ced9";
-    hash = "sha256-gZ0TuSVJwcKW4orawSmRQvoCfrpb8yLXlv81qCR86MU=";
+    rev = "85a014db7214103c14c2bfbb5fc09a349ad64992";
+    hash = "sha256-nt/K00cr1dKEk547J/6w1j6O3WSgGqVt1+Jdw95K28s=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/by-name/la/lacus/package.nix b/nixpkgs/pkgs/by-name/la/lacus/package.nix
new file mode 100644
index 000000000000..1bef9b506093
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/la/lacus/package.nix
@@ -0,0 +1,39 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "lacus";
+  version = "1.8.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "ail-project";
+    repo = "lacus";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-3sgTt3SsasltChCqHAWyujtUvoLwHWZzfWwlfnJA+zE=";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    flask-restx
+    gunicorn
+    lacuscore
+    psutil
+    redis
+    rich
+    werkzeug
+  ];
+
+  meta = with lib; {
+    description = "Capturing system using playwright";
+    homepage = "https://github.com/ail-project/lacus";
+    changelog = "https://github.com/ail-project/lacus/releases/tag/v${version}";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/la/lan-mouse/Cargo.lock b/nixpkgs/pkgs/by-name/la/lan-mouse/Cargo.lock
index dcdc87b3df30..a348b139f449 100644
--- a/nixpkgs/pkgs/by-name/la/lan-mouse/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/la/lan-mouse/Cargo.lock
@@ -19,18 +19,18 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "anstream"
-version = "0.6.5"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -42,9 +42,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.4"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
@@ -76,9 +76,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.76"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
 
 [[package]]
 name = "arraydeque"
@@ -97,14 +97,13 @@ dependencies = [
 
 [[package]]
 name = "ashpd"
-version = "0.6.7"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c018490e423efb6f032ef575f873ea57b61d44bec763cfe027b8e8852a027cf"
+checksum = "dd884d7c72877a94102c3715f3b1cd09ff4fac28221add3e57cfbe25c236d093"
 dependencies = [
  "enumflags2",
  "futures-channel",
  "futures-util",
- "once_cell",
  "rand",
  "serde",
  "serde_repr",
@@ -115,61 +114,43 @@ dependencies = [
 
 [[package]]
 name = "async-broadcast"
-version = "0.5.1"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
+checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb"
 dependencies = [
- "event-listener 2.5.3",
+ "event-listener 5.2.0",
+ "event-listener-strategy 0.5.0",
  "futures-core",
+ "pin-project-lite",
 ]
 
 [[package]]
 name = "async-channel"
-version = "2.1.1"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
 dependencies = [
  "concurrent-queue",
- "event-listener 4.0.1",
- "event-listener-strategy",
+ "event-listener 5.2.0",
+ "event-listener-strategy 0.5.0",
  "futures-core",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "async-io"
-version = "1.13.0"
+version = "2.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
+checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884"
 dependencies = [
- "async-lock 2.8.0",
- "autocfg",
- "cfg-if",
- "concurrent-queue",
- "futures-lite 1.13.0",
- "log",
- "parking",
- "polling 2.8.0",
- "rustix 0.37.27",
- "slab",
- "socket2 0.4.10",
- "waker-fn",
-]
-
-[[package]]
-name = "async-io"
-version = "2.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7"
-dependencies = [
- "async-lock 3.2.0",
+ "async-lock 3.3.0",
  "cfg-if",
  "concurrent-queue",
  "futures-io",
- "futures-lite 2.1.0",
+ "futures-lite",
  "parking",
- "polling 3.3.1",
- "rustix 0.38.28",
+ "polling",
+ "rustix",
  "slab",
  "tracing",
  "windows-sys 0.52.0",
@@ -186,41 +167,42 @@ dependencies = [
 
 [[package]]
 name = "async-lock"
-version = "3.2.0"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c"
+checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
 dependencies = [
- "event-listener 4.0.1",
- "event-listener-strategy",
+ "event-listener 4.0.3",
+ "event-listener-strategy 0.4.0",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "async-process"
-version = "1.8.1"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
+checksum = "451e3cf68011bd56771c79db04a9e333095ab6349f7e47592b788e9b98720cc8"
 dependencies = [
- "async-io 1.13.0",
- "async-lock 2.8.0",
+ "async-channel",
+ "async-io",
+ "async-lock 3.3.0",
  "async-signal",
  "blocking",
  "cfg-if",
- "event-listener 3.1.0",
- "futures-lite 1.13.0",
- "rustix 0.38.28",
- "windows-sys 0.48.0",
+ "event-listener 5.2.0",
+ "futures-lite",
+ "rustix",
+ "windows-sys 0.52.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.42",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -229,13 +211,13 @@ version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "async-io 2.2.2",
+ "async-io",
  "async-lock 2.8.0",
  "atomic-waker",
  "cfg-if",
  "futures-core",
  "futures-io",
- "rustix 0.38.28",
+ "rustix",
  "signal-hook-registry",
  "slab",
  "windows-sys 0.48.0",
@@ -243,19 +225,19 @@ dependencies = [
 
 [[package]]
 name = "async-task"
-version = "4.6.0"
+version = "4.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46"
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
 
 [[package]]
 name = "async-trait"
-version = "0.1.75"
+version = "0.1.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98"
+checksum = "461abc97219de0eaaf81fe3ef974a540158f3d079c2ab200f891f1a2ef201e85"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -293,9 +275,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "block-buffer"
@@ -313,22 +295,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
  "async-channel",
- "async-lock 3.2.0",
+ "async-lock 3.3.0",
  "async-task",
- "fastrand 2.0.1",
+ "fastrand",
  "futures-io",
- "futures-lite 2.1.0",
+ "futures-lite",
  "piper",
  "tracing",
 ]
 
 [[package]]
-name = "byteorder"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
-
-[[package]]
 name = "bytes"
 version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -336,23 +312,22 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "cairo-rs"
-version = "0.18.3"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f33613627f0dea6a731b0605101fad59ba4f193a52c96c4687728d822605a8a1"
+checksum = "2650f66005301bd33cc486dec076e1293c4cecf768bc7ba9bf5d2b1be339b99c"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "cairo-sys-rs",
  "glib",
  "libc",
- "once_cell",
  "thiserror",
 ]
 
 [[package]]
 name = "cairo-sys-rs"
-version = "0.18.2"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
+checksum = "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64"
 dependencies = [
  "glib-sys",
  "libc",
@@ -361,18 +336,15 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 
 [[package]]
 name = "cfg-expr"
-version = "0.15.5"
+version = "0.15.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3"
+checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -385,10 +357,16 @@ 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 = "4.4.11"
+version = "4.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2"
+checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -396,9 +374,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.11"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
  "anstream",
  "anstyle",
@@ -408,21 +386,21 @@ dependencies = [
 
 [[package]]
 name = "clap_derive"
-version = "4.4.7"
+version = "4.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f"
 dependencies = [
- "heck 0.4.1",
+ "heck 0.5.0",
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "colorchoice"
@@ -481,21 +459,18 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.17"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crypto-common"
@@ -550,6 +525,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
 [[package]]
+name = "endi"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf"
+
+[[package]]
 name = "enum-as-inner"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -558,14 +539,14 @@ dependencies = [
  "heck 0.4.1",
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "enumflags2"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
 dependencies = [
  "enumflags2_derive",
  "serde",
@@ -573,26 +554,36 @@ dependencies = [
 
 [[package]]
 name = "enumflags2_derive"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.53",
+]
+
+[[package]]
+name = "env_filter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+dependencies = [
+ "log",
+ "regex",
 ]
 
 [[package]]
 name = "env_logger"
-version = "0.10.1"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
 dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
  "humantime",
- "is-terminal",
  "log",
- "regex",
- "termcolor",
 ]
 
 [[package]]
@@ -619,9 +610,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
 name = "event-listener"
-version = "3.1.0"
+version = "4.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -630,9 +621,9 @@ dependencies = [
 
 [[package]]
 name = "event-listener"
-version = "4.0.1"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84f2cdcf274580f2d63697192d744727b3198894b1bf02923643bf59e2c26712"
+checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -645,17 +636,18 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
 dependencies = [
- "event-listener 4.0.1",
+ "event-listener 4.0.3",
  "pin-project-lite",
 ]
 
 [[package]]
-name = "fastrand"
-version = "1.9.0"
+name = "event-listener-strategy"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
 dependencies = [
- "instant",
+ "event-listener 5.2.0",
+ "pin-project-lite",
 ]
 
 [[package]]
@@ -670,7 +662,7 @@ version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
 dependencies = [
- "memoffset 0.9.0",
+ "memoffset",
  "rustc_version",
 ]
 
@@ -692,7 +684,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -712,9 +704,9 @@ dependencies = [
 
 [[package]]
 name = "futures"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -727,9 +719,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -737,15 +729,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -754,63 +746,51 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
-version = "1.13.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
 dependencies = [
- "fastrand 1.9.0",
+ "fastrand",
  "futures-core",
  "futures-io",
- "memchr",
  "parking",
  "pin-project-lite",
- "waker-fn",
-]
-
-[[package]]
-name = "futures-lite"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143"
-dependencies = [
- "futures-core",
- "pin-project-lite",
 ]
 
 [[package]]
 name = "futures-macro"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -826,22 +806,21 @@ dependencies = [
 
 [[package]]
 name = "gdk-pixbuf"
-version = "0.18.3"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "446f32b74d22c33b7b258d4af4ffde53c2bf96ca2e29abdf1a785fe59bd6c82c"
+checksum = "f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92"
 dependencies = [
  "gdk-pixbuf-sys",
  "gio",
  "glib",
  "libc",
- "once_cell",
 ]
 
 [[package]]
 name = "gdk-pixbuf-sys"
-version = "0.18.0"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
+checksum = "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96"
 dependencies = [
  "gio-sys",
  "glib-sys",
@@ -852,9 +831,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4"
-version = "0.7.3"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7edb019ad581f8ecf8ea8e4baa6df7c483a95b5a59be3140be6a9c3b0c632af6"
+checksum = "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b"
 dependencies = [
  "cairo-rs",
  "gdk-pixbuf",
@@ -867,9 +846,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4-sys"
-version = "0.7.2"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbab43f332a3cf1df9974da690b5bb0e26720ed09a228178ce52175372dcfef0"
+checksum = "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -894,9 +873,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -911,9 +890,9 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "gio"
-version = "0.18.4"
+version = "0.19.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
+checksum = "c64947d08d7fbb03bf8ad1f25a8ac6cf4329bc772c9b7e5abe7bf9493c81194f"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -922,7 +901,6 @@ dependencies = [
  "gio-sys",
  "glib",
  "libc",
- "once_cell",
  "pin-project-lite",
  "smallvec",
  "thiserror",
@@ -930,24 +908,24 @@ dependencies = [
 
 [[package]]
 name = "gio-sys"
-version = "0.18.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
+checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4"
 dependencies = [
  "glib-sys",
  "gobject-sys",
  "libc",
  "system-deps",
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "glib"
-version = "0.18.4"
+version = "0.19.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "951bbd7fdc5c044ede9f05170f05a3ae9479239c3afdfe2d22d537a3add15c4e"
+checksum = "01e191cc1af1f35b9699213107068cd3fe05d9816275ac118dc785a0dd8faebf"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "futures-channel",
  "futures-core",
  "futures-executor",
@@ -959,36 +937,37 @@ dependencies = [
  "gobject-sys",
  "libc",
  "memchr",
- "once_cell",
  "smallvec",
  "thiserror",
 ]
 
 [[package]]
 name = "glib-build-tools"
-version = "0.18.0"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3431c56f463443cba9bc3600248bc6d680cb614c2ee1cdd39dab5415bd12ac5c"
+checksum = "108f374fff60efd14b0d70d8916e7213aed18d7dd071ba3e9334ed2dac1dc86a"
+dependencies = [
+ "gio",
+]
 
 [[package]]
 name = "glib-macros"
-version = "0.18.3"
+version = "0.19.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72793962ceece3863c2965d7f10c8786323b17c7adea75a515809fa20ab799a5"
+checksum = "9972bb91643d589c889654693a4f1d07697fdcb5d104b5c44fb68649ba1bf68d"
 dependencies = [
- "heck 0.4.1",
- "proc-macro-crate 2.0.1",
- "proc-macro-error",
+ "heck 0.5.0",
+ "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "glib-sys"
-version = "0.18.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
+checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4"
 dependencies = [
  "libc",
  "system-deps",
@@ -996,9 +975,9 @@ dependencies = [
 
 [[package]]
 name = "gobject-sys"
-version = "0.18.0"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
+checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979"
 dependencies = [
  "glib-sys",
  "libc",
@@ -1007,9 +986,9 @@ dependencies = [
 
 [[package]]
 name = "graphene-rs"
-version = "0.18.1"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401"
+checksum = "99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91"
 dependencies = [
  "glib",
  "graphene-sys",
@@ -1018,9 +997,9 @@ dependencies = [
 
 [[package]]
 name = "graphene-sys"
-version = "0.18.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc4144cee8fc8788f2a9b73dc5f1d4e1189d1f95305c4cb7bd9c1af1cfa31f59"
+checksum = "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0"
 dependencies = [
  "glib-sys",
  "libc",
@@ -1030,9 +1009,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4"
-version = "0.7.3"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d958e351d2f210309b32d081c832d7de0aca0b077aa10d88336c6379bd01f7e"
+checksum = "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e"
 dependencies = [
  "cairo-rs",
  "gdk4",
@@ -1045,9 +1024,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4-sys"
-version = "0.7.3"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12bd9e3effea989f020e8f1ff3fa3b8c63ba93d43b899c11a118868853a56d55"
+checksum = "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738"
 dependencies = [
  "cairo-sys-rs",
  "gdk4-sys",
@@ -1061,9 +1040,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4"
-version = "0.7.3"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aeb51aa3e9728575a053e1f43543cd9992ac2477e1b186ad824fd4adfb70842"
+checksum = "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83"
 dependencies = [
  "cairo-rs",
  "field-offset",
@@ -1082,12 +1061,12 @@ dependencies = [
 
 [[package]]
 name = "gtk4-macros"
-version = "0.7.2"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f"
+checksum = "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567"
 dependencies = [
  "anyhow",
- "proc-macro-crate 1.3.1",
+ "proc-macro-crate",
  "proc-macro-error",
  "proc-macro2",
  "quote",
@@ -1096,9 +1075,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4-sys"
-version = "0.7.3"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54d8c4aa23638ce9faa2caf7e2a27d4a1295af2155c8e8d28c4d4eeca7a65eb8"
+checksum = "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -1135,10 +1114,16 @@ 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.3"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -1185,41 +1170,21 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
  "hashbrown",
 ]
 
 [[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi",
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "ipconfig"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
 dependencies = [
- "socket2 0.5.5",
+ "socket2",
  "widestring",
  "windows-sys 0.48.0",
  "winreg",
@@ -1232,17 +1197,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
-name = "is-terminal"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
-dependencies = [
- "hermit-abi",
- "rustix 0.38.28",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "itoa"
 version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1274,7 +1228,7 @@ dependencies = [
 
 [[package]]
 name = "lan-mouse"
-version = "0.6.0"
+version = "0.7.3"
 dependencies = [
  "anyhow",
  "ashpd",
@@ -1292,6 +1246,7 @@ dependencies = [
  "libc",
  "log",
  "memmap",
+ "once_cell",
  "reis",
  "serde",
  "serde_json",
@@ -1303,15 +1258,15 @@ dependencies = [
  "wayland-protocols",
  "wayland-protocols-misc",
  "wayland-protocols-wlr",
- "winapi",
+ "windows",
  "x11",
 ]
 
 [[package]]
 name = "libadwaita"
-version = "0.5.3"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fe7e70c06507ed10a16cda707f358fbe60fe0dc237498f78c686ade92fd979c"
+checksum = "91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9"
 dependencies = [
  "gdk-pixbuf",
  "gdk4",
@@ -1325,9 +1280,9 @@ dependencies = [
 
 [[package]]
 name = "libadwaita-sys"
-version = "0.5.3"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e10aaa38de1d53374f90deeb4535209adc40cc5dba37f9704724169bceec69a"
+checksum = "23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8"
 dependencies = [
  "gdk4-sys",
  "gio-sys",
@@ -1341,18 +1296,18 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.151"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[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",
- "windows-sys 0.48.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -1363,15 +1318,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.3.8"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.4.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lock_api"
@@ -1385,9 +1334,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-cache"
@@ -1406,9 +1355,9 @@ checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap"
@@ -1422,15 +1371,6 @@ dependencies = [
 
 [[package]]
 name = "memoffset"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "memoffset"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
@@ -1440,18 +1380,18 @@ dependencies = [
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
 ]
 
 [[package]]
 name = "mio"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "wasi",
@@ -1460,14 +1400,15 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.26.4"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
  "cfg-if",
+ "cfg_aliases",
  "libc",
- "memoffset 0.7.1",
+ "memoffset",
 ]
 
 [[package]]
@@ -1488,9 +1429,9 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.32.1"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
@@ -1513,22 +1454,21 @@ dependencies = [
 
 [[package]]
 name = "pango"
-version = "0.18.3"
+version = "0.19.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
+checksum = "b1264d13deb823cc652f26cfe59afb1ec4b9db2a5bd27c41b738c879cc1bfaa1"
 dependencies = [
  "gio",
  "glib",
  "libc",
- "once_cell",
  "pango-sys",
 ]
 
 [[package]]
 name = "pango-sys"
-version = "0.18.0"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
+checksum = "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1590,42 +1530,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
 dependencies = [
  "atomic-waker",
- "fastrand 2.0.1",
+ "fastrand",
  "futures-io",
 ]
 
 [[package]]
 name = "pkg-config"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "polling"
-version = "2.8.0"
+version = "3.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
+checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
 dependencies = [
- "autocfg",
- "bitflags 1.3.2",
  "cfg-if",
  "concurrent-queue",
- "libc",
- "log",
  "pin-project-lite",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "polling"
-version = "3.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e"
-dependencies = [
- "cfg-if",
- "concurrent-queue",
- "pin-project-lite",
- "rustix 0.38.28",
+ "rustix",
  "tracing",
  "windows-sys 0.52.0",
 ]
@@ -1638,22 +1562,11 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "proc-macro-crate"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
-dependencies = [
- "once_cell",
- "toml_edit 0.19.15",
-]
-
-[[package]]
-name = "proc-macro-crate"
-version = "2.0.1"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
 dependencies = [
- "toml_datetime",
- "toml_edit 0.20.2",
+ "toml_edit 0.21.1",
 ]
 
 [[package]]
@@ -1682,9 +1595,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.70"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
@@ -1697,18 +1610,18 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quick-xml"
-version = "0.30.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -1754,9 +1667,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1766,9 +1679,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1783,11 +1696,12 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reis"
-version = "0.1.0"
-source = "git+https://github.com/ids1024/reis#c836d229245f19e46b42ed9a09cc446baf49f942"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "635de3608f72e8d067f8972f9401619ac7a3f34a0a17340fa0e3f9db57e067a3"
 dependencies = [
  "futures",
- "rustix 0.38.28",
+ "rustix",
  "tokio",
 ]
 
@@ -1818,36 +1732,22 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.37.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
-dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.3.8",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "rustix"
-version = "0.38.28"
+version = "0.38.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
+checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "errno",
  "libc",
- "linux-raw-sys 0.4.12",
+ "linux-raw-sys",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "ryu"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "scoped-tls"
@@ -1863,35 +1763,35 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "semver"
-version = "1.0.20"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.108"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -1900,13 +1800,13 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.17"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
+checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -1949,28 +1849,18 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "socket2"
-version = "0.4.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1981,9 +1871,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
 name = "strsim"
-version = "0.10.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
 
 [[package]]
 name = "syn"
@@ -1998,9 +1888,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.42"
+version = "2.0.53"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b7d0a2c048d661a1a59fcd7355baa232f7ed34e0ee4df2eef3c1c1c0d3852d8"
+checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2009,12 +1899,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 0.4.1",
+ "heck 0.5.0",
  "pkg-config",
  "toml",
  "version-compare",
@@ -2022,50 +1912,40 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.12"
+version = "0.12.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "tempfile"
-version = "3.8.1"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
- "fastrand 2.0.1",
- "redox_syscall",
- "rustix 0.38.28",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
-dependencies = [
- "winapi-util",
+ "fastrand",
+ "rustix",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.51"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.51"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -2085,9 +1965,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.35.1"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
  "backtrace",
  "bytes",
@@ -2096,7 +1976,7 @@ dependencies = [
  "num_cpus",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.5",
+ "socket2",
  "tokio-macros",
  "tracing",
  "windows-sys 0.48.0",
@@ -2110,52 +1990,52 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.53",
 ]
 
 [[package]]
 name = "toml"
-version = "0.8.2"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.20.2",
+ "toml_edit 0.22.9",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.19.15"
+version = "0.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
 dependencies = [
  "indexmap",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.40",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.20.2"
+version = "0.22.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
+checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.5",
 ]
 
 [[package]]
@@ -2177,7 +2057,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.42",
+ "syn 2.0.53",
 ]
 
 [[package]]
@@ -2247,16 +2127,16 @@ version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
 dependencies = [
- "memoffset 0.9.0",
+ "memoffset",
  "tempfile",
  "winapi",
 ]
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.14"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
@@ -2266,18 +2146,18 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "url"
@@ -2299,9 +2179,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[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"
@@ -2310,12 +2190,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
-name = "waker-fn"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
-
-[[package]]
 name = "wasi"
 version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2323,13 +2197,13 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wayland-backend"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19152ddd73f45f024ed4534d9ca2594e0ef252c1847695255dae47f34df9fbe4"
+checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
 dependencies = [
  "cc",
  "downcast-rs",
- "nix",
+ "rustix",
  "scoped-tls",
  "smallvec",
  "wayland-sys",
@@ -2337,23 +2211,23 @@ dependencies = [
 
 [[package]]
 name = "wayland-client"
-version = "0.31.1"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3"
+checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
 dependencies = [
- "bitflags 2.4.1",
- "nix",
+ "bitflags 2.5.0",
+ "rustix",
  "wayland-backend",
  "wayland-scanner",
 ]
 
 [[package]]
 name = "wayland-protocols"
-version = "0.31.0"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e253d7107ba913923dc253967f35e8561a3c65f914543e46843c88ddd729e21c"
+checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "wayland-backend",
  "wayland-client",
  "wayland-scanner",
@@ -2365,7 +2239,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bfa5933740b200188c9b4c38601b8212e8c154d7de0d2cb171944e137a77de1e"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "wayland-backend",
  "wayland-client",
  "wayland-protocols",
@@ -2378,7 +2252,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.5.0",
  "wayland-backend",
  "wayland-client",
  "wayland-protocols",
@@ -2387,9 +2261,9 @@ dependencies = [
 
 [[package]]
 name = "wayland-scanner"
-version = "0.31.0"
+version = "0.31.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c"
+checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
 dependencies = [
  "proc-macro2",
  "quick-xml",
@@ -2430,19 +2304,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
-name = "winapi-util"
-version = "0.1.6"
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.54.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49"
 dependencies = [
- "winapi",
+ "windows-core",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
+name = "windows-core"
+version = "0.54.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65"
+dependencies = [
+ "windows-result",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd19df78e5168dfb0aedc343d1d1b8d422ab2db6756d2dc3fef75035402a3f64"
+dependencies = [
+ "windows-targets 0.52.4",
+]
 
 [[package]]
 name = "windows-sys"
@@ -2459,7 +2353,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -2479,17 +2373,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -2500,9 +2394,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -2512,9 +2406,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -2524,9 +2418,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -2536,9 +2430,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -2548,9 +2442,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -2560,9 +2454,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -2572,15 +2466,24 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
 name = "winnow"
-version = "0.5.30"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b5c3db89721d50d0e2a673f5043fc4722f76dcc352d7b1ab8b8288bed4ed2c5"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
@@ -2607,34 +2510,32 @@ dependencies = [
 
 [[package]]
 name = "xdg-home"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd"
+checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e"
 dependencies = [
- "nix",
+ "libc",
  "winapi",
 ]
 
 [[package]]
 name = "zbus"
-version = "3.14.1"
+version = "4.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948"
+checksum = "c9ff46f2a25abd690ed072054733e0bc3157e3d4c45f41bd183dce09c2ff8ab9"
 dependencies = [
  "async-broadcast",
  "async-process",
  "async-recursion",
  "async-trait",
- "byteorder",
  "derivative",
  "enumflags2",
- "event-listener 2.5.3",
+ "event-listener 5.2.0",
  "futures-core",
  "futures-sink",
  "futures-util",
  "hex",
  "nix",
- "once_cell",
  "ordered-stream",
  "rand",
  "serde",
@@ -2644,7 +2545,7 @@ dependencies = [
  "tokio",
  "tracing",
  "uds_windows",
- "winapi",
+ "windows-sys 0.52.0",
  "xdg-home",
  "zbus_macros",
  "zbus_names",
@@ -2653,11 +2554,11 @@ dependencies = [
 
 [[package]]
 name = "zbus_macros"
-version = "3.14.1"
+version = "4.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d"
+checksum = "4e0e3852c93dcdb49c9462afe67a2a468f7bd464150d866e861eaf06208633e0"
 dependencies = [
- "proc-macro-crate 1.3.1",
+ "proc-macro-crate",
  "proc-macro2",
  "quote",
  "regex",
@@ -2667,9 +2568,9 @@ dependencies = [
 
 [[package]]
 name = "zbus_names"
-version = "2.6.0"
+version = "3.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9"
+checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c"
 dependencies = [
  "serde",
  "static_assertions",
@@ -2678,13 +2579,12 @@ dependencies = [
 
 [[package]]
 name = "zvariant"
-version = "3.15.0"
+version = "4.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c"
+checksum = "2c1b3ca6db667bfada0f1ebfc94b2b1759ba25472ee5373d4551bb892616389a"
 dependencies = [
- "byteorder",
+ "endi",
  "enumflags2",
- "libc",
  "serde",
  "static_assertions",
  "url",
@@ -2693,11 +2593,11 @@ dependencies = [
 
 [[package]]
 name = "zvariant_derive"
-version = "3.15.0"
+version = "4.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
+checksum = "b7a4b236063316163b69039f77ce3117accb41a09567fd24c168e43491e521bc"
 dependencies = [
- "proc-macro-crate 1.3.1",
+ "proc-macro-crate",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -2706,9 +2606,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant_utils"
-version = "1.0.1"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200"
+checksum = "00bedb16a193cc12451873fee2a1bc6550225acece0e36f333e68326c73c8172"
 dependencies = [
  "proc-macro2",
  "quote",
diff --git a/nixpkgs/pkgs/by-name/la/lan-mouse/package.nix b/nixpkgs/pkgs/by-name/la/lan-mouse/package.nix
index 7bcc3cd16853..b5f8e7d35163 100644
--- a/nixpkgs/pkgs/by-name/la/lan-mouse/package.nix
+++ b/nixpkgs/pkgs/by-name/la/lan-mouse/package.nix
@@ -14,13 +14,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lan-mouse";
-  version = "0.6.0";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "feschber";
     repo = "lan-mouse";
     rev = "v${version}";
-    hash = "sha256-98n0Y9oL/ll90NKHJC/25wkav9K+eVqrO7PlrJMoGmY=";
+    hash = "sha256-W4TCA8umcr2hCIc50GFdvDVZaJGSNRNi7iDe8DJ5PHs=";
   };
 
   nativeBuildInputs = [
@@ -40,9 +40,6 @@ rustPlatform.buildRustPackage rec {
 
   cargoLock = {
     lockFile = ./Cargo.lock;
-    outputHashes = {
-      "reis-0.1.0" = "sha256-sRZqm6QdmgqfkTjEENV8erQd+0RL5z1+qjdmY18W3bA=";
-    };
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/by-name/la/lanzaboote-tool/package.nix b/nixpkgs/pkgs/by-name/la/lanzaboote-tool/package.nix
index 919ab7d68f2c..05ea3e4391eb 100644
--- a/nixpkgs/pkgs/by-name/la/lanzaboote-tool/package.nix
+++ b/nixpkgs/pkgs/by-name/la/lanzaboote-tool/package.nix
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
     hash = "sha256-Fb5TeRTdvUlo/5Yi2d+FC8a6KoRLk2h1VE0/peMhWPs=";
   };
 
-  sourceRoot = "source/rust/tool";
+  sourceRoot = "${src.name}/rust/tool";
   cargoHash = "sha256-g4WzqfH6DZVUuNb0jV3MFdm3h7zy2bQ6d3agrXesWgc=";
 
   env.TEST_SYSTEMD = systemd;
diff --git a/nixpkgs/pkgs/by-name/la/lazymc/Cargo.lock b/nixpkgs/pkgs/by-name/la/lazymc/Cargo.lock
index b604ac700665..00cdf22820ab 100644
--- a/nixpkgs/pkgs/by-name/la/lazymc/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/la/lazymc/Cargo.lock
@@ -3,6 +3,15 @@
 version = 3
 
 [[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
 name = "adler"
 version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -10,14 +19,20 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.20"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
 name = "android_system_properties"
 version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -27,150 +42,85 @@ dependencies = [
 ]
 
 [[package]]
-name = "anyhow"
-version = "1.0.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"
-
-[[package]]
-name = "async-channel"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833"
-dependencies = [
- "concurrent-queue",
- "event-listener",
- "futures-core",
-]
-
-[[package]]
-name = "async-executor"
-version = "1.5.0"
+name = "anstream"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
- "async-lock",
- "async-task",
- "concurrent-queue",
- "fastrand",
- "futures-lite",
- "slab",
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
 ]
 
 [[package]]
-name = "async-global-executor"
-version = "2.3.1"
+name = "anstyle"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776"
-dependencies = [
- "async-channel",
- "async-executor",
- "async-io",
- "async-lock",
- "blocking",
- "futures-lite",
- "once_cell",
-]
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
-name = "async-io"
-version = "1.12.0"
+name = "anstyle-parse"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
 dependencies = [
- "async-lock",
- "autocfg 1.1.0",
- "concurrent-queue",
- "futures-lite",
- "libc",
- "log",
- "parking",
- "polling",
- "slab",
- "socket2",
- "waker-fn",
- "windows-sys 0.42.0",
+ "utf8parse",
 ]
 
 [[package]]
-name = "async-lock"
-version = "2.6.0"
+name = "anstyle-query"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
 dependencies = [
- "event-listener",
- "futures-lite",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "async-std"
-version = "1.12.0"
+name = "anstyle-wincon"
+version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
 dependencies = [
- "async-channel",
- "async-global-executor",
- "async-io",
- "async-lock",
- "crossbeam-utils",
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-lite",
- "gloo-timers",
- "kv-log-macro",
- "log",
- "memchr",
- "once_cell",
- "pin-project-lite",
- "pin-utils",
- "slab",
- "wasm-bindgen-futures",
+ "anstyle",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "async-task"
-version = "4.3.0"
+name = "anyhow"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
 
 [[package]]
-name = "atomic-waker"
+name = "autocfg"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "debc29dde2e69f9e47506b525f639ed42300fc014a3e007832592448fa8e4599"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
-name = "atty"
-version = "0.2.14"
+name = "backtrace"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
- "hermit-abi 0.1.19",
+ "addr2line",
+ "cc",
+ "cfg-if 1.0.0",
  "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "autocfg"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78"
-dependencies = [
- "autocfg 1.1.0",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
 ]
 
 [[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
 name = "base64"
-version = "0.21.0"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
 
 [[package]]
 name = "bitflags"
@@ -179,51 +129,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
-name = "block-buffer"
-version = "0.10.3"
+name = "bitflags"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
-dependencies = [
- "generic-array",
-]
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
-name = "blocking"
-version = "1.3.0"
+name = "block-buffer"
+version = "0.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
 dependencies = [
- "async-channel",
- "async-lock",
- "async-task",
- "atomic-waker",
- "fastrand",
- "futures-lite",
+ "generic-array",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.12.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 
 [[package]]
 name = "cesu8"
@@ -244,104 +186,81 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
 name = "chrono"
-version = "0.4.23"
+version = "0.4.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
 dependencies = [
+ "android-tzdata",
  "iana-time-zone",
  "js-sys",
- "num-integer",
  "num-traits",
- "time",
  "wasm-bindgen",
- "winapi 0.3.9",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
 name = "clap"
-version = "4.1.4"
+version = "4.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f13b9c79b5d1dd500d20ef541215a6423c75829ef43117e1b4d17fd8af0b5d76"
+checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813"
 dependencies = [
- "bitflags",
- "clap_lex",
- "is-terminal",
- "once_cell",
- "strsim",
- "termcolor",
- "unicase",
- "unicode-width",
+ "clap_builder",
 ]
 
 [[package]]
-name = "clap_lex"
-version = "0.3.1"
+name = "clap_builder"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
- "os_str_bytes",
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim 0.11.0",
+ "unicase",
+ "unicode-width",
 ]
 
 [[package]]
-name = "cloudabi"
-version = "0.0.3"
+name = "clap_lex"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-dependencies = [
- "bitflags",
-]
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
-name = "codespan-reporting"
-version = "0.11.1"
+name = "colorchoice"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
-dependencies = [
- "termcolor",
- "unicode-width",
-]
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
 name = "colored"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd"
-dependencies = [
- "atty",
- "lazy_static",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "concurrent-queue"
 version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c278839b831783b70278b14df4d45e1beb1aad306c07bb796637de9a0e323e8e"
+checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
 dependencies = [
- "crossbeam-utils",
+ "lazy_static",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.3"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[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 = "crossbeam-utils"
-version = "0.8.14"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if 1.0.0",
 ]
@@ -357,64 +276,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "ctor"
-version = "0.1.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
-dependencies = [
- "quote",
- "syn",
-]
-
-[[package]]
-name = "cxx"
-version = "1.0.90"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90d59d9acd2a682b4e40605a242f6670eaa58c5957471cbf85e8aa6a0b97a5e8"
-dependencies = [
- "cc",
- "cxxbridge-flags",
- "cxxbridge-macro",
- "link-cplusplus",
-]
-
-[[package]]
-name = "cxx-build"
-version = "1.0.90"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebfa40bda659dd5c864e65f4c9a2b0aff19bea56b017b9b77c73d3766a453a38"
-dependencies = [
- "cc",
- "codespan-reporting",
- "once_cell",
- "proc-macro2",
- "quote",
- "scratch",
- "syn",
-]
-
-[[package]]
-name = "cxxbridge-flags"
-version = "1.0.90"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "457ce6757c5c70dc6ecdbda6925b958aae7f959bda7d8fb9bde889e34a09dc03"
-
-[[package]]
-name = "cxxbridge-macro"
-version = "1.0.90"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebf883b7aacd7b2aeb2a7b338648ee19f57c140d4ee8e52c68979c6b2f7f2263"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
 name = "darling"
-version = "0.14.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0808e1bd8671fb44a113a14e13497557533369847788fa2ae912b6ebfce9fa8"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
 dependencies = [
  "darling_core",
  "darling_macro",
@@ -422,65 +287,65 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.14.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "001d80444f28e193f30c2f293455da62dcf9a6b29918a4253152ae2b1de592cb"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim",
- "syn",
+ "strsim 0.10.0",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.14.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b36230598a2d5de7ec1c6f51f72d8a99a9208daff41de2084d06e3fd3ea56685"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
 dependencies = [
  "darling_core",
  "quote",
- "syn",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "derive_builder"
-version = "0.12.0"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8"
+checksum = "0350b5cb0331628a5916d6c5c0b72e97393b8b6b03b47a9284f4e7f5a405ffd7"
 dependencies = [
  "derive_builder_macro",
 ]
 
 [[package]]
 name = "derive_builder_core"
-version = "0.12.0"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f"
+checksum = "d48cda787f839151732d396ac69e3473923d54312c070ee21e9effcaa8ca0b1d"
 dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "derive_builder_macro"
-version = "0.12.0"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e"
+checksum = "206868b8242f27cecce124c19fd88157fbd0dd334df2587f36417bafbc85097b"
 dependencies = [
  "derive_builder_core",
- "syn",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "digest"
-version = "0.10.6"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
  "block-buffer",
  "crypto-common",
@@ -500,18 +365,24 @@ checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f"
 
 [[package]]
 name = "env_logger"
-version = "0.7.1"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
 dependencies = [
- "atty",
  "humantime",
+ "is-terminal",
  "log",
  "regex",
  "termcolor",
 ]
 
 [[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
 name = "err-derive"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -521,63 +392,27 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn",
+ "syn 1.0.109",
  "synstructure",
 ]
 
 [[package]]
-name = "errno"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "event-listener"
-version = "2.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
-
-[[package]]
-name = "fastrand"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
-dependencies = [
- "instant",
-]
-
-[[package]]
 name = "filetime"
-version = "0.2.20"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if 1.0.0",
  "libc",
  "redox_syscall",
- "windows-sys 0.45.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "flate2"
-version = "1.0.25"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -595,7 +430,7 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "fsevent-sys",
 ]
 
@@ -609,18 +444,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "fuchsia-cprng"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-
-[[package]]
 name = "fuchsia-zircon"
 version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "fuchsia-zircon-sys",
 ]
 
@@ -632,9 +461,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
 
 [[package]]
 name = "futures"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e2792b0ff0340399d58445b88fd9770e3489eff258a4cbc1523418f12abf84"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -647,9 +476,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -657,15 +486,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -674,42 +503,27 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531"
-
-[[package]]
-name = "futures-lite"
-version = "1.12.0"
+version = "0.3.30"
 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",
-]
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-sink"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.26"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -724,9 +538,9 @@ dependencies = [
 
 [[package]]
 name = "generic-array"
-version = "0.14.6"
+version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 dependencies = [
  "typenum",
  "version_check",
@@ -734,82 +548,60 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.8"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if 1.0.0",
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "gloo-timers"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c"
-dependencies = [
- "futures-channel",
- "futures-core",
- "js-sys",
- "wasm-bindgen",
+ "wasi",
 ]
 
 [[package]]
-name = "hermit-abi"
-version = "0.1.19"
+name = "gimli"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
-name = "hermit-abi"
-version = "0.2.6"
+name = "hashbrown"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.1"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "humantime"
-version = "1.3.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
-dependencies = [
- "quick-error",
-]
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.53"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "winapi 0.3.9",
+ "windows-core",
 ]
 
 [[package]]
 name = "iana-time-zone-haiku"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
 dependencies = [
- "cxx",
- "cxx-build",
+ "cc",
 ]
 
 [[package]]
@@ -819,12 +611,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
+name = "indexmap"
+version = "2.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
 name = "inotify"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "inotify-sys",
  "libc",
 ]
@@ -839,25 +641,6 @@ dependencies = [
 ]
 
 [[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",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3"
-dependencies = [
- "libc",
- "windows-sys 0.45.0",
-]
-
-[[package]]
 name = "iovec"
 version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -868,27 +651,26 @@ dependencies = [
 
 [[package]]
 name = "is-terminal"
-version = "0.4.3"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22e18b0a45d56fe973d6db23972bf5bc46f988a4a2385deac9cc29572f09daef"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
- "hermit-abi 0.3.1",
- "io-lifetimes",
- "rustix",
- "windows-sys 0.45.0",
+ "hermit-abi",
+ "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.5"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "js-sys"
-version = "0.3.61"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -904,15 +686,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "kv-log-macro"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
-dependencies = [
- "log",
-]
-
-[[package]]
 name = "lazy_static"
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -926,10 +699,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "lazymc"
-version = "0.2.10"
+version = "0.2.11"
 dependencies = [
  "anyhow",
- "async-std",
  "base64",
  "bytes",
  "chrono",
@@ -949,7 +721,7 @@ dependencies = [
  "pretty_env_logger",
  "proxy-protocol",
  "quartz_nbt",
- "rand 0.8.5",
+ "rand",
  "rcon",
  "serde",
  "serde_json",
@@ -964,18 +736,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.139"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
-
-[[package]]
-name = "link-cplusplus"
-version = "1.0.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
-dependencies = [
- "cc",
-]
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "linked-hash-map"
@@ -984,55 +747,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
-name = "linux-raw-sys"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
-
-[[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if 1.0.0",
- "value-bag",
-]
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "md-5"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
 dependencies = [
+ "cfg-if 1.0.0",
  "digest",
 ]
 
 [[package]]
-name = "md5"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e6bcd6433cff03a4bfc3d9834d504467db1f1cf6d0ea765d37d330249ed629d"
-
-[[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "memoffset"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
-dependencies = [
- "autocfg 1.1.0",
-]
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "minecraft-protocol"
 version = "0.1.0"
-source = "git+https://github.com/timvisee/rust-minecraft-protocol?rev=edfdf87#edfdf876c0c21be02afdd885e3400983f3137ec9"
+source = "git+https://github.com/timvisee/rust-minecraft-protocol?rev=4f93bb3#4f93bb3438d25fd23410d7c30964971e59cfb327"
 dependencies = [
  "byteorder",
  "minecraft-protocol-derive",
@@ -1045,18 +784,18 @@ dependencies = [
 [[package]]
 name = "minecraft-protocol-derive"
 version = "0.0.0"
-source = "git+https://github.com/timvisee/rust-minecraft-protocol?rev=edfdf87#edfdf876c0c21be02afdd885e3400983f3137ec9"
+source = "git+https://github.com/timvisee/rust-minecraft-protocol?rev=4f93bb3#4f93bb3438d25fd23410d7c30964971e59cfb327"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
 name = "miniz_oxide"
-version = "0.6.2"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
 ]
@@ -1082,14 +821,13 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.6"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
- "log",
- "wasi 0.11.0+wasi-snapshot-preview1",
- "windows-sys 0.45.0",
+ "wasi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -1129,9 +867,9 @@ dependencies = [
 
 [[package]]
 name = "net2"
-version = "0.2.38"
+version = "0.2.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631"
+checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac"
 dependencies = [
  "cfg-if 0.1.10",
  "libc",
@@ -1140,16 +878,14 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.26.2"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
 dependencies = [
- "bitflags",
+ "bitflags 2.4.2",
  "cfg-if 1.0.0",
+ "cfg_aliases",
  "libc",
- "memoffset",
- "pin-utils",
- "static_assertions",
 ]
 
 [[package]]
@@ -1158,7 +894,7 @@ version = "4.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ae03c8c853dba7bfd23e571ff0cff7bc9dceb40a4cd684cd1681824183f45257"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
  "filetime",
  "fsevent",
  "fsevent-sys",
@@ -1171,57 +907,44 @@ dependencies = [
 ]
 
 [[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg 1.1.0",
- "num-traits",
-]
-
-[[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
- "autocfg 1.1.0",
+ "autocfg",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.15.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.2.6",
+ "hermit-abi",
  "libc",
 ]
 
 [[package]]
-name = "once_cell"
-version = "1.17.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
-
-[[package]]
-name = "os_str_bytes"
-version = "6.4.1"
+name = "object"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
-name = "parking"
-version = "2.0.0"
+name = "once_cell"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.9"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -1230,20 +953,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
-name = "polling"
-version = "2.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6"
-dependencies = [
- "autocfg 1.1.0",
- "cfg-if 1.0.0",
- "libc",
- "log",
- "wepoll-ffi",
- "windows-sys 0.42.0",
-]
-
-[[package]]
 name = "ppv-lite86"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1251,9 +960,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "pretty_env_logger"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d"
+checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c"
 dependencies = [
  "env_logger",
  "log",
@@ -1268,7 +977,7 @@ dependencies = [
  "proc-macro-error-attr",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
  "version_check",
 ]
 
@@ -1285,9 +994,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.51"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
@@ -1304,9 +1013,9 @@ dependencies = [
 
 [[package]]
 name = "quartz_nbt"
-version = "0.2.6"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "348031720b71761481d77969dcb3c89ab06f04132ee1503aca1bd9313eef5e67"
+checksum = "72ae154b7a8bb706ea9712d29dc3b6817ec38d6e665038bb6acd38fe98e3e1d9"
 dependencies = [
  "anyhow",
  "byteorder",
@@ -1323,62 +1032,27 @@ checksum = "289baa0c8a4d1f840d2de528a7f8c29e0e9af48b3018172b3edad4f716e8daed"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
-name = "quick-error"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-
-[[package]]
 name = "quote"
-version = "1.0.23"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
 name = "rand"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-dependencies = [
- "autocfg 0.1.8",
- "libc",
- "rand_chacha 0.1.1",
- "rand_core 0.4.2",
- "rand_hc",
- "rand_isaac",
- "rand_jitter",
- "rand_os",
- "rand_pcg",
- "rand_xorshift",
- "winapi 0.3.9",
-]
-
-[[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.4",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
-dependencies = [
- "autocfg 0.1.8",
- "rand_core 0.3.1",
+ "rand_chacha",
+ "rand_core",
 ]
 
 [[package]]
@@ -1388,26 +1062,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
 dependencies = [
  "ppv-lite86",
- "rand_core 0.6.4",
-]
-
-[[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",
+ "rand_core",
 ]
 
 [[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.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
@@ -1416,101 +1075,41 @@ dependencies = [
 ]
 
 [[package]]
-name = "rand_hc"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
-dependencies = [
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "rand_isaac"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
-dependencies = [
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "rand_jitter"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
-dependencies = [
- "libc",
- "rand_core 0.4.2",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "rand_os"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
-dependencies = [
- "cloudabi",
- "fuchsia-cprng",
- "libc",
- "rand_core 0.4.2",
- "rdrand",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "rand_pcg"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
-dependencies = [
- "autocfg 0.1.8",
- "rand_core 0.4.2",
-]
-
-[[package]]
-name = "rand_xorshift"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
-dependencies = [
- "rand_core 0.3.1",
-]
-
-[[package]]
 name = "rcon"
-version = "0.5.2"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b7fdd146f86bd90fa2d4cf83a28b45f058e90bcf11ed0cce134e757928771e6"
+checksum = "618babf41c041e7d6f4baf27f6d92434be58c1eb637edac7f9af7900f247417b"
 dependencies = [
- "async-std",
- "bytes",
  "err-derive",
+ "tokio",
 ]
 
 [[package]]
-name = "rdrand"
-version = "0.4.0"
+name = "redox_syscall"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
- "rand_core 0.3.1",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
-name = "redox_syscall"
-version = "0.2.16"
+name = "regex"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
- "bitflags",
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
 ]
 
 [[package]]
-name = "regex"
-version = "1.7.1"
+name = "regex-automata"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1519,35 +1118,27 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.28"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
-name = "rustix"
-version = "0.36.8"
+name = "rustc-demangle"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43abb88211988493c1abb44a70efa56ff0ce98f233b7b276146f1f3f7ba9644"
-dependencies = [
- "bitflags",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys",
- "windows-sys 0.45.0",
-]
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
 
 [[package]]
 name = "rustversion"
-version = "1.0.11"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.12"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "same-file"
@@ -1559,36 +1150,30 @@ dependencies = [
 ]
 
 [[package]]
-name = "scratch"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2"
-
-[[package]]
 name = "serde"
-version = "1.0.152"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.152"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.93"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -1596,10 +1181,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
 name = "shlex"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "signal-hook-registry"
@@ -1612,11 +1206,11 @@ dependencies = [
 
 [[package]]
 name = "slab"
-version = "0.4.7"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
- "autocfg 1.1.0",
+ "autocfg",
 ]
 
 [[package]]
@@ -1637,36 +1231,47 @@ checksum = "1508efa03c362e23817f96cde18abed596a25219a8b2c66e8db33c03543d315b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
 ]
 
 [[package]]
 name = "socket2"
-version = "0.4.7"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "winapi 0.3.9",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "static_assertions"
-version = "1.1.0"
+name = "strsim"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "strsim"
-version = "0.10.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
 
 [[package]]
 name = "syn"
-version = "1.0.107"
+version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.52"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1681,115 +1286,128 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 1.0.109",
  "unicode-xid",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.2.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.38"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.38"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
-]
-
-[[package]]
-name = "time"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
-dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi 0.3.9",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "tokio"
-version = "1.25.0"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
- "autocfg 1.1.0",
+ "backtrace",
  "bytes",
  "libc",
- "memchr",
- "mio 0.8.6",
+ "mio 0.8.11",
  "num_cpus",
  "pin-project-lite",
  "signal-hook-registry",
  "socket2",
  "tokio-macros",
- "windows-sys 0.42.0",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "1.8.2"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "toml"
-version = "0.5.11"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+checksum = "af06656561d28735e9c1cd63dfd57132c8155426aa6af24f36a00a351f88c48e"
 dependencies = [
  "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18769cd1cec395d70860ceb4d932812a0b4d06b1a4bb336745a4d21b9496e992"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
 ]
 
 [[package]]
 name = "typenum"
-version = "1.16.0"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "unicase"
-version = "2.6.0"
+version = "2.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
 dependencies = [
  "version_check",
 ]
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.6"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "unicode-xid"
@@ -1798,31 +1416,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
 
 [[package]]
-name = "uuid"
-version = "0.7.4"
+name = "utf8parse"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
-dependencies = [
- "md5",
- "rand 0.6.5",
- "serde",
-]
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
-name = "value-bag"
-version = "1.0.0-alpha.9"
+name = "uuid"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 dependencies = [
- "ctor",
- "version_check",
+ "getrandom",
+ "md-5",
+ "serde",
 ]
 
 [[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"
@@ -1831,39 +1445,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[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"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
- "winapi 0.3.9",
  "winapi-util",
 ]
 
 [[package]]
 name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-
-[[package]]
-name = "wasi"
 version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.84"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if 1.0.0",
  "wasm-bindgen-macro",
@@ -1871,36 +1472,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.84"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.52",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
-name = "wasm-bindgen-futures"
-version = "0.4.34"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
-dependencies = [
- "cfg-if 1.0.0",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.84"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -1908,41 +1497,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.84"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.52",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.84"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
-
-[[package]]
-name = "web-sys"
-version = "0.3.61"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "wepoll-ffi"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
-dependencies = [
- "cc",
-]
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "winapi"
@@ -1974,9 +1544,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi 0.3.9",
 ]
@@ -1988,85 +1558,154 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[package]]
 name = "windows-sys"
-version = "0.42.0"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "windows-sys"
-version = "0.45.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.1"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.1"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.1"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
+name = "winnow"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
 name = "ws2_32-sys"
diff --git a/nixpkgs/pkgs/by-name/la/lazymc/package.nix b/nixpkgs/pkgs/by-name/la/lazymc/package.nix
index ea79235245f3..9202d32b2e8a 100644
--- a/nixpkgs/pkgs/by-name/la/lazymc/package.nix
+++ b/nixpkgs/pkgs/by-name/la/lazymc/package.nix
@@ -9,19 +9,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lazymc";
-  version = "0.2.10";
+  version = "0.2.11";
 
   src = fetchFromGitHub {
     owner = "timvisee";
     repo = "lazymc";
     rev = "v${version}";
-    hash = "sha256-IObLjxuMJDjZ3M6M1DaPvmoRqAydbLKdpTQ3Vs+B9Oo=";
+    hash = "sha256-uMjM3w78qWnB/sNXRcxl30KJRm0I3BPEOr5IRU8FI0s=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "minecraft-protocol-0.1.0" = "sha256-vSFS1yVxTBSpx/ZhzA3EjcZyOWHbmoGARl0eMn1fJ+4=";
+      "minecraft-protocol-0.1.0" = "sha256-3eDMj8+Ug46WOl3zRqNxUa+SZr2qlhyi8OSewLu+gI8=";
     };
   };
 
diff --git a/nixpkgs/pkgs/by-name/lb/lbreakout2/package.nix b/nixpkgs/pkgs/by-name/lb/lbreakout2/package.nix
new file mode 100644
index 000000000000..bd88ac2a21f2
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/lb/lbreakout2/package.nix
@@ -0,0 +1,49 @@
+{ lib
+, SDL
+, SDL_mixer
+, fetchpatch
+, fetchurl
+, libintl
+, libpng
+, stdenv
+, zlib
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "lbreakout2";
+  version = "2.6.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/lgames/lbreakout2-${finalAttrs.version}.tar.gz";
+    hash = "sha256-kQTWF1VT2jRC3GpfxAemaeL1r/Pu3F0wQJ6wA7enjW8=";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://sources.debian.org/data/main/l/lbreakout2/2.6.5-2/debian/patches/sdl_fix_pauses.patch";
+      hash = "sha256-ycsuxfokpOblLky42MwtJowdEp7v5dZRMFIR4id4ZBI=";
+    })
+  ];
+
+  buildInputs = [
+    SDL
+    SDL_mixer
+    libintl
+    libpng
+    zlib
+  ];
+
+  # With fortify it crashes at runtime:
+  #   *** buffer overflow detected ***: terminated
+  #   Aborted (core dumped)
+  hardeningDisable = [ "fortify" ];
+
+  meta = {
+    homepage = "http://lgames.sourceforge.net/LBreakout2/";
+    description = "Breakout clone from the LGames series";
+    license = with lib.licenses; [ gpl2Plus ];
+    mainProgram = "lbreakout2";
+    maintainers = with lib.maintainers; [ AndersonTorres ciil ];
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/nixpkgs/pkgs/games/lgames/lbreakouthd/default.nix b/nixpkgs/pkgs/by-name/lb/lbreakouthd/package.nix
index 64be757c35ad..0160d7e2033b 100644
--- a/nixpkgs/pkgs/games/lgames/lbreakouthd/default.nix
+++ b/nixpkgs/pkgs/by-name/lb/lbreakouthd/package.nix
@@ -1,11 +1,11 @@
 { lib
-, stdenv
-, fetchurl
-, directoryListingUpdater
 , SDL2
 , SDL2_image
 , SDL2_mixer
 , SDL2_ttf
+, directoryListingUpdater
+, fetchurl
+, stdenv
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -36,6 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://lgames.sourceforge.io/LBreakoutHD/";
     description = "A widescreen Breakout clone";
     license = lib.licenses.gpl2Plus;
+    mainProgram = "lbreakouthd";
     maintainers = with lib.maintainers; [ AndersonTorres ];
     inherit (SDL2.meta) platforms;
     broken = stdenv.isDarwin;
diff --git a/nixpkgs/pkgs/by-name/le/ledger/package.nix b/nixpkgs/pkgs/by-name/le/ledger/package.nix
index 2e8336660be7..89a614247ff9 100644
--- a/nixpkgs/pkgs/by-name/le/ledger/package.nix
+++ b/nixpkgs/pkgs/by-name/le/ledger/package.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A double-entry accounting system with a command-line reporting interface";
+    mainProgram = "ledger";
     homepage = "https://www.ledger-cli.org/";
     changelog = "https://github.com/ledger/ledger/raw/v${version}/NEWS.md";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/by-name/le/lefthook/package.nix b/nixpkgs/pkgs/by-name/le/lefthook/package.nix
index 5c10e70ea407..8f396aed7486 100644
--- a/nixpkgs/pkgs/by-name/le/lefthook/package.nix
+++ b/nixpkgs/pkgs/by-name/le/lefthook/package.nix
@@ -6,7 +6,7 @@
 
 let
   pname = "lefthook";
-  version = "1.6.5";
+  version = "1.6.7";
 in
 buildGoModule {
   inherit pname version;
@@ -15,10 +15,10 @@ buildGoModule {
     owner = "evilmartians";
     repo = "lefthook";
     rev = "v${version}";
-    hash = "sha256-C76yQ9F4QSywGdihDbNh8KwSL2U+rUjb8VpWRByxzVk=";
+    hash = "sha256-4nbAT4g5tnq0bL7i9PsUKbSGoeaWHdApARYE4oWuwNk=";
   };
 
-  vendorHash = "sha256-yWT7IX1n8CQSyXAzoncyYHzvYvIr8WzolyvC8/Cuhlo=";
+  vendorHash = "sha256-b+1Y75CG4ayDmnhYfPwpzMFrHCPmZ0FMbMsLiToac5c=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/by-name/le/lemminx/package.nix b/nixpkgs/pkgs/by-name/le/lemminx/package.nix
index df946d3b4dea..e4c17d6e2daf 100644
--- a/nixpkgs/pkgs/by-name/le/lemminx/package.nix
+++ b/nixpkgs/pkgs/by-name/le/lemminx/package.nix
@@ -98,6 +98,7 @@ maven.buildMavenPackage rec {
 
   meta = with lib; {
     description = "XML Language Server";
+    mainProgram = "lemminx";
     homepage = "https://github.com/eclipse/lemminx";
     license = licenses.epl20;
     maintainers = with maintainers; [ tricktron ];
diff --git a/nixpkgs/pkgs/by-name/li/liana/package.nix b/nixpkgs/pkgs/by-name/li/liana/package.nix
index 043c35770955..8082161ce930 100644
--- a/nixpkgs/pkgs/by-name/li/liana/package.nix
+++ b/nixpkgs/pkgs/by-name/li/liana/package.nix
@@ -61,7 +61,7 @@ rustPlatform.buildRustPackage rec {
     systemd
   ];
 
-  sourceRoot = "source/gui";
+  sourceRoot = "${src.name}/gui";
 
   postInstall = ''
     install -Dm0644 ./ui/static/logos/liana-app-icon.svg $out/share/icons/hicolor/scalable/apps/liana.svg
diff --git a/nixpkgs/pkgs/by-name/li/libbgcode/package.nix b/nixpkgs/pkgs/by-name/li/libbgcode/package.nix
index 6a28df1dce61..c2ddb4f6ddf4 100644
--- a/nixpkgs/pkgs/by-name/li/libbgcode/package.nix
+++ b/nixpkgs/pkgs/by-name/li/libbgcode/package.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/prusa3d/libbgcode";
     description = "Prusa Block & Binary G-code reader / writer / converter";
+    mainProgram = "bgcode";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ lach ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/by-name/li/libcpuid/package.nix b/nixpkgs/pkgs/by-name/li/libcpuid/package.nix
index 56df13aabd2a..7e63d25a53f3 100644
--- a/nixpkgs/pkgs/by-name/li/libcpuid/package.nix
+++ b/nixpkgs/pkgs/by-name/li/libcpuid/package.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://libcpuid.sourceforge.net/";
     description = "A small C library for x86 CPU detection and feature extraction";
+    mainProgram = "cpuid_tool";
     changelog = "https://raw.githubusercontent.com/anrieff/libcpuid/master/ChangeLog";
     license = licenses.bsd2;
     maintainers = with maintainers; [ orivej artuuge ];
diff --git a/nixpkgs/pkgs/by-name/li/libipuz/package.nix b/nixpkgs/pkgs/by-name/li/libipuz/package.nix
new file mode 100644
index 000000000000..5cc94ca9a657
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/libipuz/package.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, glib
+, json-glib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libipuz";
+  version = "0.4.5";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "jrb";
+    repo = "libipuz";
+    rev = version;
+    hash = "sha256-psC2cFqSTlToCtCxwosXyJbmX/96AEI0xqzXtlc/HQE=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    glib
+  ];
+
+  buildInputs = [
+    glib
+    json-glib
+  ];
+
+  meta = with lib; {
+    description = "Library for parsing .ipuz puzzle files";
+    homepage = "https://gitlab.gnome.org/jrb/libipuz";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ aleksana ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/li/librum/package.nix b/nixpkgs/pkgs/by-name/li/librum/package.nix
new file mode 100644
index 000000000000..81cd81d68019
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/librum/package.nix
@@ -0,0 +1,68 @@
+{ lib
+, mupdf
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, cmake
+, qt6
+, desktopToDarwinBundle
+}:
+
+let
+  mupdf-cxx = mupdf.override { enableCxx = true; };
+in
+stdenv.mkDerivation rec {
+  pname = "librum";
+  version = "0.12.1";
+
+  src = fetchFromGitHub {
+    owner = "Librum-Reader";
+    repo = "Librum";
+    rev = "v.${version}";
+    fetchSubmodules = true;
+    hash = "sha256-/QxTWlTMoXykPe3z+mmn6eaGRJDu2IX8BJPcXi1gUqQ=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./use_mupdf_in_nixpkgs.patch;
+      nixMupdfLibPath = "${mupdf-cxx.out}/lib";
+      nixMupdfIncludePath = "${mupdf-cxx.dev}/include";
+    })
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    qt6.qttools
+    qt6.wrapQtAppsHook
+  ] ++ lib.optionals stdenv.isDarwin [
+    desktopToDarwinBundle
+  ];
+
+  buildInputs = [
+    qt6.qtbase
+    qt6.qtsvg
+  ] ++ lib.optionals stdenv.isLinux [
+    qt6.qtwayland
+  ];
+
+  meta = with lib; {
+    description = "An application designed to make reading enjoyable and straightforward";
+    longDescription = ''
+      Librum is an application designed to make reading enjoyable
+      and straightforward for everyone. It's not just an e-book
+      reader. With Librum, you can manage your own online library
+      and access it from any device anytime, anywhere. It has
+      features like note-taking, AI tooling, and highlighting,
+      while offering customization to make it as personal as you
+      want! Librum also provides free access to over 70,000 books
+      and personal reading statistics while being free and
+      completely open source.
+    '';
+    homepage = "https://librumreader.com";
+    license = licenses.gpl3Plus;
+    mainProgram = "librum";
+    maintainers = with maintainers; [ aleksana oluceps ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/li/librum/use_mupdf_in_nixpkgs.patch b/nixpkgs/pkgs/by-name/li/librum/use_mupdf_in_nixpkgs.patch
new file mode 100644
index 000000000000..0458279b7d68
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/li/librum/use_mupdf_in_nixpkgs.patch
@@ -0,0 +1,109 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 191ff732..de46f35b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -71,7 +71,7 @@ endif()
+ 
+ # Dependencies
+ add_subdirectory(libs/rapidfuzz-cpp)
+-
++include_directories(@nixMupdfIncludePath@)
+ 
+ # Build
+ add_subdirectory(src/)
+diff --git a/src/application/CMakeLists.txt b/src/application/CMakeLists.txt
+index bf122a66..64415be3 100644
+--- a/src/application/CMakeLists.txt
++++ b/src/application/CMakeLists.txt
+@@ -102,10 +102,9 @@ if(ANDROID)
+ endif()
+ 
+ if(UNIX)
+-    set(MUPDF_OUTPUT_DIR "${PROJECT_SOURCE_DIR}/libs/mupdf/build/$<IF:$<CONFIG:Debug>,shared-debug,shared-release>")
++    set(MUPDF_OUTPUT_DIR "@nixMupdfLibPath@")
+     set(MUPDF_OUTPUT "${MUPDF_OUTPUT_DIR}/libmupdfcpp.so")
+     set(MUPDF_OUTPUT "${MUPDF_OUTPUT_DIR}/libmupdfcpp.so" PARENT_SCOPE)
+-    set(MUPDF_BUILD_COMMAND ./scripts/mupdfwrap.py ${VENV_OPTION} -d build/$<IF:$<CONFIG:Debug>,shared-debug,shared-release> -b --m-target libs ${EXTRA_MAKE_AGRS} -j 0 m01)
+ elseif(WIN32)
+     set(MUPDF_OUTPUT_DIR "${PROJECT_SOURCE_DIR}/libs/mupdf/platform/win32/x64/$<IF:$<CONFIG:Debug>,Debug,Release>")
+     set(MUPDF_OUTPUT "${MUPDF_OUTPUT_DIR}/mupdfcpp64.lib" PARENT_SCOPE)
+@@ -113,8 +112,6 @@ elseif(WIN32)
+     set(MUPDF_BUILD_COMMAND python scripts/mupdfwrap.py ${VENV_OPTION} -d build/$<IF:$<CONFIG:Debug>,shared-debug,shared-release> -b -j 0 m01)
+ endif()
+ 
+-message("MuPdf build command: " ${MUPDF_BUILD_COMMAND})
+-
+ 
+ set(CC_COMMAND "${CMAKE_C_COMPILER}")
+ set(CXX_COMMAND "${CMAKE_CXX_COMPILER}")
+@@ -135,18 +132,6 @@ else()
+ endif()
+ 
+ 
+-add_custom_target(mupdf
+-   COMMAND ${CMAKE_COMMAND} -E env
+-        ${ANDROID_COMPILERS}
+-        "USE_SYSTEM_LIBJPEG=${USE_SYSTEM_LIBJPEG_VALUE}"
+-        "USE_SONAME=no"
+-        ${MUPDF_BUILD_COMMAND}
+-   BYPRODUCTS ${MUPDF_OUTPUT}
+-   WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/libs/mupdf
+-   COMMENT "Building mupdf (This takes a while) ..."
+-)
+-
+-
+ #Copy the mupdf dlls to the build directory for windows
+ if(WIN32)
+     add_custom_command(
+@@ -168,8 +153,6 @@ add_library(application
+                     interfaces/utility/i_book_getter.hpp
+ )
+ 
+-add_dependencies(application mupdf) # Ensure the mupdf target is built before the application target
+-
+ target_compile_definitions(application PRIVATE APPLICATION_LIBRARY)
+ 
+ target_include_directories(application
+@@ -188,12 +171,6 @@ target_include_directories(application
+                     ${CMAKE_CURRENT_SOURCE_DIR}/core/utils
+ )
+ 
+-# Make sure to ignore warnings from mupdf by adding it as a system include directory
+-target_include_directories(application SYSTEM PUBLIC
+-                    ${PROJECT_SOURCE_DIR}/libs/mupdf/platform/c++/include
+-                    ${PROJECT_SOURCE_DIR}/libs/mupdf/include
+-)
+-
+ target_compile_definitions(application
+                 PRIVATE
+                     $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>
+@@ -236,29 +213,10 @@ if(LINUX)
+     install(TARGETS application
+             DESTINATION lib
+             )
+-    
+-    # Install mupdf's shared libraries
+-    install(FILES ${MUPDF_OUTPUT_DIR}/libmupdfcpp.so
+-                  ${MUPDF_OUTPUT_DIR}/libmupdf.so
+-            DESTINATION lib)
+-
+-    # Install links with correct permissions
+-    if(EXISTS "${MUPDF_OUTPUT_DIR}/libmupdfcpp.so.24.0")
+-        install(FILES ${MUPDF_OUTPUT_DIR}/libmupdfcpp.so.24.0
+-                      ${MUPDF_OUTPUT_DIR}/libmupdf.so.24.0
+-                PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
+-                            GROUP_READ GROUP_EXECUTE
+-                            WORLD_READ WORLD_EXECUTE
+-                DESTINATION lib)
+-    endif()
+ 
+ elseif(APPLE)
+     install(TARGETS application
+             DESTINATION lib
+             )
+     
+-    # Install mupdf's shared libraries
+-    install(FILES ${MUPDF_OUTPUT_DIR}/libmupdfcpp.so
+-                  ${MUPDF_OUTPUT_DIR}/libmupdf.dylib
+-            DESTINATION lib)
+ endif()
diff --git a/nixpkgs/pkgs/by-name/li/libsignal-ffi/Cargo.lock b/nixpkgs/pkgs/by-name/li/libsignal-ffi/Cargo.lock
index 06d583b5e13a..3f48ef1121a3 100644
--- a/nixpkgs/pkgs/by-name/li/libsignal-ffi/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/li/libsignal-ffi/Cargo.lock
@@ -100,9 +100,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
 
 [[package]]
 name = "anstream"
-version = "0.6.7"
+version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba"
+checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -154,9 +154,9 @@ checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
 
 [[package]]
 name = "argon2"
-version = "0.5.2"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ba4cac0a46bc1d2912652a751c47f2a9f3a7fe89bcae2275d418f5270402f9"
+checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072"
 dependencies = [
  "base64ct",
  "blake2",
@@ -204,6 +204,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "assert_cmd"
+version = "2.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00ad3f3a942eee60335ab4342358c161ee296829e0d16ff42fc1d6cb07815467"
+dependencies = [
+ "anstyle",
+ "bstr",
+ "doc-comment",
+ "predicates",
+ "predicates-core",
+ "predicates-tree",
+ "wait-timeout",
+]
+
+[[package]]
 name = "assert_matches"
 version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -211,9 +226,9 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
 
 [[package]]
 name = "async-compression"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5"
+checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c"
 dependencies = [
  "flate2",
  "futures-core",
@@ -238,7 +253,7 @@ name = "attest"
 version = "0.1.0"
 dependencies = [
  "asn1",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "boring",
  "chacha20poly1305",
  "chrono",
@@ -311,7 +326,7 @@ version = "0.66.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cexpr",
  "clang-sys",
  "lazy_static",
@@ -348,9 +363,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
 name = "bitstream-io"
@@ -390,7 +405,7 @@ name = "boring"
 version = "3.1.0"
 source = "git+https://github.com/signalapp/boring?branch=libsignal#8245063ae6eb97d909982b89fad45bb7f0a2a1a0"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "boring-sys",
  "foreign-types",
  "libc",
@@ -409,6 +424,35 @@ dependencies = [
 ]
 
 [[package]]
+name = "breakpad-symbols"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9898874a43aed8d3ee52d223ba232424e9da1f9af0e6a2cfa49b506b4ad99616"
+dependencies = [
+ "async-trait",
+ "cachemap2",
+ "circular",
+ "debugid",
+ "futures-util",
+ "minidump-common",
+ "nom",
+ "range-map",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "bstr"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
+dependencies = [
+ "memchr",
+ "regex-automata",
+ "serde",
+]
+
+[[package]]
 name = "bumpalo"
 version = "3.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -433,6 +477,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
+name = "cachemap2"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7bba2f68a9fefca870fed897de7c655f9d5c1eaf1cd9517db96c9a3861f648b"
+
+[[package]]
 name = "cast"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -504,9 +554,9 @@ dependencies = [
 
 [[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "41daef31d7a747c5c847246f36de49ced6f7403b4cdabc807a97b5cc184cda7a"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
@@ -514,7 +564,7 @@ dependencies = [
  "num-traits",
  "serde",
  "wasm-bindgen",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -556,6 +606,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "circular"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0fc239e0f6cb375d2402d48afb92f76f5404fd1df208a41930ec81eda078bea"
+
+[[package]]
 name = "clang-sys"
 version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -563,14 +619,14 @@ checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
 dependencies = [
  "glob",
  "libc",
- "libloading 0.8.1",
+ "libloading",
 ]
 
 [[package]]
 name = "clap"
-version = "4.4.16"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58e54881c004cec7895b0068a0a954cd5d62da01aef83fa35b1e594497bf5445"
+checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -587,9 +643,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.16"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59cb82d7f531603d2fd1f507441cdd35184fa81beff7bd489570de7f773460bb"
+checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
 dependencies = [
  "anstream",
  "anstyle",
@@ -641,6 +697,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "const-str"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aca749d3d3f5b87a0d6100509879f9cf486ab510803a4a4e1001da1ff61c2bd6"
+
+[[package]]
 name = "convert_case"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -831,6 +893,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
 
 [[package]]
+name = "debugid"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
+dependencies = [
+ "uuid",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
+
+[[package]]
 name = "derive-where"
 version = "1.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -895,6 +975,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "difflib"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
+
+[[package]]
 name = "digest"
 version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -906,6 +992,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "dir-test"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "786d8143e44a15668bec3989643621c8cdcbbc53387dec04c2c0801c0d07c2db"
+dependencies = [
+ "dir-test-macros",
+]
+
+[[package]]
+name = "dir-test-macros"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07ff4ea493e7938a68a1b71386e0328b96d4f2a17bd4dad7706a7493eb03fd27"
+dependencies = [
+ "glob",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
 name = "displaydoc"
 version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -917,6 +1024,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "doc-comment"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+
+[[package]]
 name = "downcast-rs"
 version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -972,9 +1085,9 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.10.1"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -1220,9 +1333,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "h2"
-version = "0.3.23"
+version = "0.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b553656127a00601c8ae5590fcfdc118e4083a7924b6cf4ffc1ea4b99dc429d7"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
 dependencies = [
  "bytes",
  "fnv",
@@ -1239,9 +1352,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "991910e35c615d8cab86b5ab04be67e6ad24d2bf5f4f11fdbbed26da999bbeab"
+checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943"
 dependencies = [
  "bytes",
  "fnv",
@@ -1315,9 +1428,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
 
 [[package]]
 name = "hex"
@@ -1445,7 +1558,7 @@ dependencies = [
  "futures-channel",
  "futures-core",
  "futures-util",
- "h2 0.3.23",
+ "h2 0.3.24",
  "http 0.2.11",
  "http-body 0.4.6",
  "httparse",
@@ -1468,7 +1581,7 @@ dependencies = [
  "bytes",
  "futures-channel",
  "futures-util",
- "h2 0.4.1",
+ "h2 0.4.2",
  "http 1.0.0",
  "http-body 1.0.0",
  "httparse",
@@ -1577,6 +1690,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "itertools"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
+dependencies = [
+ "either",
+]
+
+[[package]]
 name = "itoa"
 version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1642,16 +1764,6 @@ checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
 
 [[package]]
 name = "libloading"
-version = "0.6.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883"
-dependencies = [
- "cfg-if",
- "winapi",
-]
-
-[[package]]
-name = "libloading"
 version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
@@ -1673,21 +1785,30 @@ dependencies = [
  "aes-gcm-siv",
  "async-trait",
  "attest",
+ "base64",
  "bincode",
  "bytemuck",
+ "cfg-if",
+ "derive-where",
  "device-transfer",
  "futures-util",
+ "hex",
  "hkdf",
  "hmac",
+ "http 1.0.0",
  "jni",
  "libsignal-bridge-macros",
+ "libsignal-message-backup",
  "libsignal-net",
  "libsignal-protocol",
+ "libsignal-svr3",
  "linkme",
  "log",
+ "mediasan-common",
  "neon",
  "nonzero_ext",
  "num_enum",
+ "once_cell",
  "partial-default",
  "paste",
  "rand",
@@ -1701,7 +1822,9 @@ dependencies = [
  "signal-pin",
  "static_assertions",
  "subtle",
+ "test-case",
  "tokio",
+ "tokio-boring",
  "usernames",
  "uuid",
  "zkgroup",
@@ -1714,7 +1837,7 @@ dependencies = [
  "heck 0.3.3",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
  "syn-mid",
 ]
 
@@ -1730,7 +1853,7 @@ dependencies = [
 
 [[package]]
 name = "libsignal-ffi"
-version = "0.39.2"
+version = "0.41.0"
 dependencies = [
  "async-trait",
  "attest",
@@ -1738,6 +1861,7 @@ dependencies = [
  "device-transfer",
  "futures-util",
  "libsignal-bridge",
+ "libsignal-net",
  "libsignal-protocol",
  "log",
  "log-panics",
@@ -1751,7 +1875,7 @@ dependencies = [
 
 [[package]]
 name = "libsignal-jni"
-version = "0.39.2"
+version = "0.41.0"
 dependencies = [
  "async-trait",
  "cfg-if",
@@ -1772,27 +1896,37 @@ dependencies = [
  "aes",
  "array-concat",
  "arrayvec",
+ "assert_cmd",
  "assert_matches",
  "async-compression",
  "cbc",
  "clap",
  "clap-stdin",
  "derive-where",
+ "dir-test",
  "displaydoc",
  "futures",
  "hex",
  "hex-literal",
  "hkdf",
  "hmac",
+ "libsignal-message-backup",
+ "libsignal-message-backup-macros",
  "libsignal-protocol",
  "log",
+ "mediasan-common",
+ "num_enum",
  "protobuf",
  "protobuf-codegen",
+ "protobuf-json-mapping",
+ "serde_json",
  "sha2",
  "signal-crypto",
+ "strum",
  "subtle",
  "test-case",
  "test-log",
+ "testing_logger",
  "thiserror",
  "usernames",
  "uuid",
@@ -1800,6 +1934,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "libsignal-message-backup-macros"
+version = "0.1.0"
+dependencies = [
+ "heck 0.3.3",
+ "lazy_static",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+ "test-case",
+]
+
+[[package]]
 name = "libsignal-net"
 version = "0.1.0"
 dependencies = [
@@ -1811,6 +1957,7 @@ dependencies = [
  "boring",
  "bytes",
  "clap",
+ "const-str",
  "derive-where",
  "displaydoc",
  "env_logger",
@@ -1822,13 +1969,18 @@ dependencies = [
  "http 1.0.0",
  "http-body-util",
  "hyper 1.1.0",
+ "itertools 0.12.0",
  "lazy_static",
  "libsignal-core",
  "libsignal-svr3",
  "log",
+ "nonzero_ext",
  "pin-project-lite",
+ "proptest",
+ "proptest-state-machine",
  "prost",
  "prost-build",
+ "rand",
  "rand_core",
  "rustls-native-certs",
  "serde",
@@ -1849,14 +2001,18 @@ dependencies = [
 
 [[package]]
 name = "libsignal-node"
-version = "0.39.2"
+version = "0.41.0"
 dependencies = [
  "async-trait",
  "cmake",
+ "futures",
  "libsignal-bridge",
  "libsignal-protocol",
  "log",
  "log-panics",
+ "minidump",
+ "minidump-processor",
+ "minidump-unwind",
  "neon",
  "rand",
  "signal-neon-futures",
@@ -1883,7 +2039,7 @@ dependencies = [
  "hkdf",
  "hmac",
  "indexmap 2.1.0",
- "itertools 0.10.5",
+ "itertools 0.12.0",
  "libsignal-core",
  "log",
  "num_enum",
@@ -1908,6 +2064,7 @@ dependencies = [
 name = "libsignal-svr3"
 version = "0.1.0"
 dependencies = [
+ "assert_matches",
  "attest",
  "base64",
  "bytemuck",
@@ -1918,10 +2075,12 @@ dependencies = [
  "hex-literal",
  "hkdf",
  "http 1.0.0",
+ "nonzero_ext",
  "prost",
  "prost-build",
  "rand_core",
  "sha2",
+ "strum_macros",
  "subtle",
  "test-case",
  "tokio",
@@ -1949,9 +2108,9 @@ dependencies = [
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.12"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lock_api"
@@ -1998,6 +2157,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
+name = "memmap2"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "mime"
 version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2014,6 +2182,75 @@ dependencies = [
 ]
 
 [[package]]
+name = "minidump"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "626b6878ac52f6a1e04c9e7eb42ce577dfadf7316b8d3fa5ab1c1abefc2c156b"
+dependencies = [
+ "debugid",
+ "encoding_rs",
+ "memmap2",
+ "minidump-common",
+ "num-traits",
+ "procfs-core",
+ "range-map",
+ "scroll",
+ "thiserror",
+ "time",
+ "tracing",
+ "uuid",
+]
+
+[[package]]
+name = "minidump-common"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74b1a2187f9aea1134ed3cf96b3827283aabc67dc95ed502e7072b515a1c770c"
+dependencies = [
+ "bitflags 2.4.2",
+ "debugid",
+ "num-derive",
+ "num-traits",
+ "range-map",
+ "scroll",
+ "smart-default",
+]
+
+[[package]]
+name = "minidump-processor"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb61b2d7298004e47225563c0ede9a3ee2889351e1c931bbc42996411a9e4bc4"
+dependencies = [
+ "async-trait",
+ "breakpad-symbols",
+ "debugid",
+ "futures-util",
+ "minidump",
+ "minidump-common",
+ "minidump-unwind",
+ "scroll",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "minidump-unwind"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1951b9dfa82b5e0d22a8e08bebcb8d98f85bb07851a52f18246b7d7dc9a4a53c"
+dependencies = [
+ "async-trait",
+ "breakpad-symbols",
+ "minidump",
+ "minidump-common",
+ "scroll",
+ "tracing",
+]
+
+[[package]]
 name = "minimal-lexical"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2097,46 +2334,30 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
 
 [[package]]
 name = "neon"
-version = "0.10.1"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28e15415261d880aed48122e917a45e87bb82cf0260bb6db48bbab44b7464373"
+checksum = "7d75440242411c87dc39847b0e33e961ec1f10326a9d8ecf9c1ea64a3b3c13dc"
 dependencies = [
- "neon-build",
+ "libloading",
  "neon-macros",
- "neon-runtime",
- "semver 0.9.0",
+ "once_cell",
+ "semver",
+ "send_wrapper",
  "smallvec",
 ]
 
 [[package]]
-name = "neon-build"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bac98a702e71804af3dacfde41edde4a16076a7bbe889ae61e56e18c5b1c811"
-
-[[package]]
 name = "neon-macros"
-version = "0.10.1"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7288eac8b54af7913c60e0eb0e2a7683020dffa342ab3fd15e28f035ba897cf"
+checksum = "c6813fde79b646e47e7ad75f480aa80ef76a5d9599e2717407961531169ee38b"
 dependencies = [
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
  "syn-mid",
 ]
 
 [[package]]
-name = "neon-runtime"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4676720fa8bb32c64c3d9f49c47a47289239ec46b4bdb66d0913cc512cb0daca"
-dependencies = [
- "cfg-if",
- "libloading 0.6.7",
- "smallvec",
-]
-
-[[package]]
 name = "nom"
 version = "7.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2153,6 +2374,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21"
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
+name = "num-derive"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "num-integer"
 version = "0.1.45"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2388,9 +2626,11 @@ dependencies = [
 name = "poksho"
 version = "0.7.0"
 dependencies = [
+ "criterion",
  "curve25519-dalek",
  "hex",
  "hmac",
+ "rand",
  "sha2",
  "subtle",
 ]
@@ -2419,6 +2659,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2469,6 +2715,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "94e851c7654eed9e68d7d27164c454961a616cf8c203d500607ef22c737b51bb"
 
 [[package]]
+name = "predicates"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8"
+dependencies = [
+ "anstyle",
+ "difflib",
+ "predicates-core",
+]
+
+[[package]]
+name = "predicates-core"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
+
+[[package]]
+name = "predicates-tree"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
+dependencies = [
+ "predicates-core",
+ "termtree",
+]
+
+[[package]]
 name = "prettyplease"
 version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2490,14 +2763,25 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.76"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
+name = "procfs-core"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29"
+dependencies = [
+ "bitflags 2.4.2",
+ "chrono",
+ "hex",
+]
+
+[[package]]
 name = "proptest"
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2505,7 +2789,7 @@ checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
 dependencies = [
  "bit-set",
  "bit-vec",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "lazy_static",
  "num-traits",
  "rand",
@@ -2518,6 +2802,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "proptest-state-machine"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b52a714915de2d16a5289616d2265a934780f50a9dd30359322b687403fa2ac2"
+dependencies = [
+ "proptest",
+]
+
+[[package]]
 name = "prost"
 version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2598,6 +2891,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "protobuf-json-mapping"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "523039a90666b229b5260fb91c20686ef309b9d1b1fc3cacb283a0895753ec44"
+dependencies = [
+ "protobuf",
+ "protobuf-support",
+ "thiserror",
+]
+
+[[package]]
 name = "protobuf-parse"
 version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2677,10 +2981,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "range-map"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12a5a2d6c7039059af621472a4389be1215a816df61aa4d531cfe85264aee95f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -2688,9 +3001,9 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
@@ -2707,9 +3020,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2719,9 +3032,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2766,16 +3079,16 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
 dependencies = [
- "semver 1.0.21",
+ "semver",
 ]
 
 [[package]]
 name = "rustix"
-version = "0.38.28"
+version = "0.38.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
+checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
  "libc",
  "linux-raw-sys",
@@ -2826,6 +3139,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
 name = "rusty-fork"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2874,6 +3193,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
+name = "scroll"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6"
+dependencies = [
+ "scroll_derive",
+]
+
+[[package]]
+name = "scroll_derive"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "sct"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2908,24 +3247,15 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-dependencies = [
- "semver-parser",
-]
-
-[[package]]
-name = "semver"
 version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
 
 [[package]]
-name = "semver-parser"
-version = "0.7.0"
+name = "send_wrapper"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73"
 
 [[package]]
 name = "serde"
@@ -2982,6 +3312,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "sha1_smol"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
+
+[[package]]
 name = "sha2"
 version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2994,9 +3330,9 @@ dependencies = [
 
 [[package]]
 name = "shlex"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "signal-crypto"
@@ -3084,15 +3420,26 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+
+[[package]]
+name = "smart-default"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
 
 [[package]]
 name = "snow"
-version = "0.9.4"
+version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58021967fd0a5eeeb23b08df6cc244a4d4a5b4aec1d27c9e02fad1a58b4cd74e"
+checksum = "2e87c18a6608909007e75a60e04d03eda77b601c94de1c74d9a9dc2c04ab789a"
 dependencies = [
  "aes-gcm",
  "blake2",
@@ -3133,6 +3480,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strum"
+version = "0.26.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.26.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "subtle"
 version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3162,13 +3531,13 @@ dependencies = [
 
 [[package]]
 name = "syn-mid"
-version = "0.5.4"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fea305d57546cc8cd04feb14b62ec84bf17f50e3f7b12560d7bfa9265f39d9ed"
+checksum = "b5dc35bb08dd1ca3dfb09dce91fd2d13294d6711c88897d9a9d60acf39bce049"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3194,6 +3563,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "termtree"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
+
+[[package]]
 name = "test-case"
 version = "3.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3248,6 +3623,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "testing_logger"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d92b727cb45d33ae956f7f46b966b25f1bc712092aeef9dba5ac798fc89f720"
+dependencies = [
+ "log",
+]
+
+[[package]]
 name = "thiserror"
 version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3268,6 +3652,37 @@ dependencies = [
 ]
 
 [[package]]
+name = "time"
+version = "0.3.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+dependencies = [
+ "deranged",
+ "itoa",
+ "num-conv",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "time-macros"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
+[[package]]
 name = "tinytemplate"
 version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3422,10 +3837,22 @@ checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
  "log",
  "pin-project-lite",
+ "tracing-attributes",
  "tracing-core",
 ]
 
 [[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "tracing-core"
 version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3501,9 +3928,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.14"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
@@ -3590,9 +4017,12 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.6.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+dependencies = [
+ "sha1_smol",
+]
 
 [[package]]
 name = "variant_count"
@@ -3747,7 +4177,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "66b5563fa963cea48af3e95b65b475bee688e78c04715dfe8c2eef6f812996d3"
 dependencies = [
  "assert_matches",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "bitstream-io",
  "bytes",
  "derive_builder",
@@ -4055,6 +4485,7 @@ name = "zkcredential"
 version = "0.1.0"
 dependencies = [
  "bincode",
+ "cfg-if",
  "criterion",
  "curve25519-dalek",
  "derive-where",
@@ -4064,7 +4495,9 @@ dependencies = [
  "lazy_static",
  "partial-default",
  "poksho",
+ "rayon",
  "serde",
+ "sha2",
  "subtle",
 ]
 
diff --git a/nixpkgs/pkgs/by-name/li/libsignal-ffi/package.nix b/nixpkgs/pkgs/by-name/li/libsignal-ffi/package.nix
index b6faa11f8482..ffee3ff05e7c 100644
--- a/nixpkgs/pkgs/by-name/li/libsignal-ffi/package.nix
+++ b/nixpkgs/pkgs/by-name/li/libsignal-ffi/package.nix
@@ -12,13 +12,13 @@ rustPlatform.buildRustPackage rec {
   pname = "libsignal-ffi";
   # must match the version used in mautrix-signal
   # see https://github.com/mautrix/signal/issues/401
-  version = "0.39.2";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "signalapp";
     repo = "libsignal";
     rev = "v${version}";
-    hash = "sha256-MKmkqfUhXOHUlP3jSNKsplT9kP0ERj3rmTrLLU3T2no=";
+    hash = "sha256-U/Wy7nzRQJLdc/dGmYR418Nt1KV70HbcgnDHmYxKytg=";
   };
 
   nativeBuildInputs = [ protobuf ] ++ lib.optionals stdenv.isDarwin [ xcodebuild ];
diff --git a/nixpkgs/pkgs/development/libraries/libyang/default.nix b/nixpkgs/pkgs/by-name/li/libyang/package.nix
index d220bcee1e6e..6e3e3d841e64 100644
--- a/nixpkgs/pkgs/development/libraries/libyang/default.nix
+++ b/nixpkgs/pkgs/by-name/li/libyang/package.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libyang";
-  version = "2.1.128";
+  version = "2.1.148";
 
   src = fetchFromGitHub {
     owner = "CESNET";
     repo = "libyang";
     rev = "v${version}";
-    sha256 = "sha256-qwEHGUizjsWQZSwQkh7Clevd1OQfj1mse7Q8YiRCMyQ=";
+    hash = "sha256-uYZJo8lUv6tq0MRRJvbTS/8t1eZNGqcMb5k5sVCwMJM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/by-name/li/linien-gui/package.nix b/nixpkgs/pkgs/by-name/li/linien-gui/package.nix
index ba6f6d6b5893..dd9ca7e4ca58 100644
--- a/nixpkgs/pkgs/by-name/li/linien-gui/package.nix
+++ b/nixpkgs/pkgs/by-name/li/linien-gui/package.nix
@@ -9,7 +9,7 @@ python3.pkgs.buildPythonApplication rec {
 
   inherit (python3.pkgs.linien-common) src version;
 
-  sourceRoot = "source/linien-gui";
+  sourceRoot = "${src.name}/linien-gui";
 
   nativeBuildInputs = with python3.pkgs; [
     setuptools
@@ -40,6 +40,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Graphical user interface of the Linien spectroscopy lock application";
+    mainProgram = "linien";
     homepage = "https://github.com/linien-org/linien/tree/develop/linien-gui";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fsagbuya doronbehar ];
diff --git a/nixpkgs/pkgs/by-name/li/listmonk/package.nix b/nixpkgs/pkgs/by-name/li/listmonk/package.nix
index 3ac3522a861e..0a111224161e 100644
--- a/nixpkgs/pkgs/by-name/li/listmonk/package.nix
+++ b/nixpkgs/pkgs/by-name/li/listmonk/package.nix
@@ -48,9 +48,10 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard.";
+    mainProgram = "listmonk";
     homepage = "https://github.com/knadh/listmonk";
     changelog = "https://github.com/knadh/listmonk/releases/tag/v${version}";
     maintainers = with maintainers; [ raitobezarius ];
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
   };
 }
diff --git a/nixpkgs/pkgs/by-name/li/littlefs-fuse/package.nix b/nixpkgs/pkgs/by-name/li/littlefs-fuse/package.nix
index feb566a822a2..00eba357e04e 100644
--- a/nixpkgs/pkgs/by-name/li/littlefs-fuse/package.nix
+++ b/nixpkgs/pkgs/by-name/li/littlefs-fuse/package.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "littlefs-fuse";
-  version = "2.7.5";
+  version = "2.7.6";
   src = fetchFromGitHub {
     owner = "littlefs-project";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-sSnk1iQV5aHcOPqVKbigWqojrZKlJK5CcrVlwilT2mE=";
+    hash = "sha256-iN6Ny1H7CyBzBRJyYKbXuzkap7+u+6tVkXo7Vnp1WV8=";
   };
   buildInputs = [ fuse ];
   installPhase = ''
diff --git a/nixpkgs/pkgs/by-name/li/live555/package.nix b/nixpkgs/pkgs/by-name/li/live555/package.nix
index 4630cf13da2a..5051944cab1e 100644
--- a/nixpkgs/pkgs/by-name/li/live555/package.nix
+++ b/nixpkgs/pkgs/by-name/li/live555/package.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "live555";
-  version = "2024.02.28";
+  version = "2024.03.08";
 
   src = fetchurl {
     urls = [
@@ -18,7 +18,7 @@ stdenv.mkDerivation (finalAttrs: {
       "https://download.videolan.org/contrib/live555/live.${finalAttrs.version}.tar.gz"
       "mirror://sourceforge/slackbuildsdirectlinks/live.${finalAttrs.version}.tar.gz"
     ];
-    hash = "sha256-5WjtkdqoofZIijunfomcEeWj6l4CUK9HRoYAle2jSx8=";
+    hash = "sha256-wWUC4EbxxfK+OxXiyNbNMGObVMZOqb+8jTG078pnDeU=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/by-name/li/livekit-cli/package.nix b/nixpkgs/pkgs/by-name/li/livekit-cli/package.nix
index a4ecebcde30c..75682ea71b4b 100644
--- a/nixpkgs/pkgs/by-name/li/livekit-cli/package.nix
+++ b/nixpkgs/pkgs/by-name/li/livekit-cli/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "livekit-cli";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "livekit";
     repo = "livekit-cli";
     rev = "v${version}";
-    hash = "sha256-u6tqrh2Au4XL590EqD3WInQbN6H6GzRoaA3Uke94Y60=";
+    hash = "sha256-/H7Xn/nUumKf62qV6kt2PBbvIt67IwA1dt+hj8mbE30=";
   };
 
-  vendorHash = "sha256-PCZNFt08Ad+pjKrl7KZy7jUhu/fWO3raoQM0abCpaGs=";
+  vendorHash = "sha256-yO2Qr6H5sZGLMHiue5IVHkF1IDsZZh48s6KNpXR+nzA=";
 
   subPackages = [ "cmd/livekit-cli" ];
 
diff --git a/nixpkgs/pkgs/by-name/ll/llama-cpp/package.nix b/nixpkgs/pkgs/by-name/ll/llama-cpp/package.nix
index 7da6c5c305a1..43ff55742ca1 100644
--- a/nixpkgs/pkgs/by-name/ll/llama-cpp/package.nix
+++ b/nixpkgs/pkgs/by-name/ll/llama-cpp/package.nix
@@ -69,13 +69,13 @@ let
 in
 effectiveStdenv.mkDerivation (finalAttrs: {
   pname = "llama-cpp";
-  version = "2346";
+  version = "2481";
 
   src = fetchFromGitHub {
     owner = "ggerganov";
     repo = "llama.cpp";
     rev = "refs/tags/b${finalAttrs.version}";
-    hash = "sha256-s937fAOUjid2H+6OQEMicdkFQVqPJ37GR+DMrCV1ky4=";
+    hash = "sha256-40GSZZEnjM9L9KVVKdSKtBoSRy996l98ORM4NeltsSM=";
   };
 
   postPatch = ''
@@ -86,10 +86,7 @@ effectiveStdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [ cmake ninja pkg-config git ]
     ++ optionals cudaSupport [
     cudaPackages.cuda_nvcc
-
-    # TODO: Replace with autoAddDriverRunpath
-    # once https://github.com/NixOS/nixpkgs/pull/275241 has been merged
-    cudaPackages.autoAddOpenGLRunpathHook
+    cudaPackages.autoAddDriverRunpath
   ];
 
   buildInputs = optionals effectiveStdenv.isDarwin darwinBuildInputs
diff --git a/nixpkgs/pkgs/by-name/ln/lngen/package.nix b/nixpkgs/pkgs/by-name/ln/lngen/package.nix
index 1b06a5b1966b..d84e3556cd5e 100644
--- a/nixpkgs/pkgs/by-name/ln/lngen/package.nix
+++ b/nixpkgs/pkgs/by-name/ln/lngen/package.nix
@@ -20,4 +20,5 @@ haskellPackages.mkDerivation {
   description = "Tool for generating Locally Nameless definitions and proofs in Coq, working together with Ott";
   maintainers = with lib.maintainers; [ chen ];
   license = lib.licenses.mit;
+  mainProgram = "lngen";
 }
diff --git a/nixpkgs/pkgs/by-name/lo/local-ai/package.nix b/nixpkgs/pkgs/by-name/lo/local-ai/package.nix
new file mode 100644
index 000000000000..a5b5b82b139b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/lo/local-ai/package.nix
@@ -0,0 +1,311 @@
+{ stdenv
+, lib
+, fetchpatch
+, fetchFromGitHub
+, ncurses
+, protobuf
+, grpc
+, openssl
+  # needed for audio-to-text
+, ffmpeg
+, cmake
+, buildGoModule
+, makeWrapper
+, runCommand
+, testers
+
+  # apply feature parameter names according to
+  # https://github.com/NixOS/rfcs/pull/169
+
+, with_tinydream ? false
+
+, with_openblas ? false
+, openblas
+, pkg-config
+
+, with_cublas ? false
+, cudaPackages
+
+, with_clblas ? false
+, clblast
+, ocl-icd
+, opencl-headers
+
+, with_stablediffusion ? false
+, opencv
+
+, with_tts ? false
+, onnxruntime
+, sonic
+, spdlog
+, fmt
+}:
+let
+  go-llama-ggml = fetchFromGitHub {
+    owner = "go-skynet";
+    repo = "go-llama.cpp";
+    rev = "2b57a8ae43e4699d3dc5d1496a1ccd42922993be";
+    hash = "sha256-D6SEg5pPcswGyKAmF4QTJP6/Y1vjRr7m7REguag+too=";
+    fetchSubmodules = true;
+  };
+
+  # possible improvement: use Nix package llama-cpp
+  llama_cpp = fetchFromGitHub {
+    owner = "ggerganov";
+    repo = "llama.cpp";
+    rev = "d01b3c4c32357567f3531d4e6ceffc5d23e87583";
+    hash = "sha256-7eaQV+XTCXdrJlo7y21q5j/8ecVwuTMJScRTATcF6oM=";
+    fetchSubmodules = true;
+  };
+
+  llama_cpp' = runCommand "llama_cpp_src" { } ''
+    cp -r --no-preserve=mode,ownership ${llama_cpp} $out
+    sed -i $out/CMakeLists.txt \
+      -e 's;pkg_check_modules(DepBLAS REQUIRED openblas);pkg_check_modules(DepBLAS REQUIRED openblas64);'
+  '';
+
+  gpt4all = fetchFromGitHub {
+    owner = "nomic-ai";
+    repo = "gpt4all";
+    rev = "27a8b020c36b0df8f8b82a252d261cda47cf44b8";
+    hash = "sha256-djq1eK6ncvhkO3MNDgasDBUY/7WWcmZt/GJsHAulLdI=";
+    fetchSubmodules = true;
+  };
+
+  go-piper = fetchFromGitHub {
+    owner = "mudler";
+    repo = "go-piper";
+    rev = "9d0100873a7dbb0824dfea40e8cec70a1b110759";
+    hash = "sha256-Yv9LQkWwGpYdOS0FvtP0vZ0tRyBAx27sdmziBR4U4n8=";
+    fetchSubmodules = true;
+  };
+
+  go-rwkv = fetchFromGitHub {
+    owner = "donomii";
+    repo = "go-rwkv.cpp";
+    rev = "661e7ae26d442f5cfebd2a0881b44e8c55949ec6";
+    hash = "sha256-byTNZQSnt7qpBMng3ANJmpISh3GJiz+F15UqfXaz6nQ=";
+    fetchSubmodules = true;
+  };
+
+  whisper = fetchFromGitHub {
+    owner = "ggerganov";
+    repo = "whisper.cpp";
+    rev = "a56f435fd475afd7edf02bfbf9f8c77f527198c2";
+    hash = "sha256-ozTnxEuftAQQr5v/kwg5EKHuKF21d9ETIyvXcvr0Qos=";
+    fetchSubmodules = true;
+  };
+
+  go-bert = fetchFromGitHub {
+    owner = "go-skynet";
+    repo = "go-bert.cpp";
+    rev = "6abe312cded14042f6b7c3cd8edf082713334a4d";
+    hash = "sha256-lh9cvXc032Eq31kysxFOkRd0zPjsCznRl0tzg9P2ygo=";
+    fetchSubmodules = true;
+  };
+
+  go-stable-diffusion = stdenv.mkDerivation {
+    pname = "go_stable_diffusion";
+    version = "unstable";
+    src = fetchFromGitHub {
+      owner = "mudler";
+      repo = "go-stable-diffusion";
+      rev = "362df9da29f882dbf09ade61972d16a1f53c3485";
+      hash = "sha256-A5KvMZOviPsIpPHxM8cacT+qE2x1iFJAbPsRs4sLijY=";
+      fetchSubmodules = true;
+    };
+    buildFlags = [ "libstablediffusion.a" ];
+    dontUseCmakeConfigure = true;
+    nativeBuildInputs = [ cmake ];
+    buildInputs = [ opencv ];
+    env.NIX_CFLAGS_COMPILE = " -isystem ${opencv}/include/opencv4";
+    installPhase = ''
+      install -Dt $out libstablediffusion.a Makefile go.mod *.go stablediffusion.h
+    '';
+  };
+
+  go-tiny-dream = fetchFromGitHub {
+    owner = "M0Rf30";
+    repo = "go-tiny-dream";
+    rev = "772a9c0d9aaf768290e63cca3c904fe69faf677a";
+    hash = "sha256-r+wzFIjaI6cxAm/eXN3q8LRZZz+lE5EA4lCTk5+ZnIY=";
+    fetchSubmodules = true;
+  };
+
+  go-tiny-dream' = runCommand "go_tiny_dream_src" { } ''
+    cp -r --no-preserve=mode,ownership ${go-tiny-dream} $out
+    sed -i $out/Makefile \
+      -e 's;lib/libncnn;lib64/libncnn;g'
+  '';
+
+  GO_TAGS = lib.optional with_tinydream "tinydream"
+    ++ lib.optional with_tts "tts"
+    ++ lib.optional with_stablediffusion "stablediffusion";
+
+  buildEnv =
+    if with_cublas then
+    # It's necessary to consistently use backendStdenv when building with CUDA support,
+    # otherwise we get libstdc++ errors downstream.
+      buildGoModule.override { stdenv = cudaPackages.backendStdenv; }
+    else
+      buildGoModule;
+
+  self = buildEnv rec {
+    pname = "local-ai";
+    version = "2.10.1";
+
+    src = fetchFromGitHub {
+      owner = "go-skynet";
+      repo = "LocalAI";
+      rev = "v${version}";
+      hash = "sha256-135s1Gw8mfOIx4kXlw2pYrD3ewwajUtnz3sPY/CtoLw=";
+    };
+
+    vendorHash = "sha256-UCeG0TKS+VBW8D87VmxTHS2tCAf0ADEYTJayaSiua6s=";
+
+    # Workaround for
+    # `cc1plus: error: '-Wformat-security' ignored without '-Wformat' [-Werror=format-security]`
+    # when building jtreg
+    env.NIX_CFLAGS_COMPILE = "-Wformat";
+
+    postPatch =
+      let
+        cp = "cp -r --no-preserve=mode,ownership";
+      in
+      ''
+        sed -i Makefile \
+          -e 's;git clone.*go-llama-ggml$;${cp} ${go-llama-ggml} sources/go-llama-ggml;' \
+          -e 's;git clone.*gpt4all$;${cp} ${gpt4all} sources/gpt4all;' \
+          -e 's;git clone.*go-piper$;${cp} ${go-piper} sources/go-piper;' \
+          -e 's;git clone.*go-rwkv$;${cp} ${go-rwkv} sources/go-rwkv;' \
+          -e 's;git clone.*whisper\.cpp$;${cp} ${whisper} sources/whisper\.cpp;' \
+          -e 's;git clone.*go-bert$;${cp} ${go-bert} sources/go-bert;' \
+          -e 's;git clone.*diffusion$;${cp} ${if with_stablediffusion then go-stable-diffusion else go-stable-diffusion.src} sources/go-stable-diffusion;' \
+          -e 's;git clone.*go-tiny-dream$;${cp} ${go-tiny-dream'} sources/go-tiny-dream;' \
+          -e 's, && git checkout.*,,g' \
+          -e '/mod download/ d' \
+
+        sed -i backend/cpp/llama/Makefile \
+          -e 's;git clone.*llama\.cpp$;${cp} ${llama_cpp'} llama\.cpp;' \
+          -e 's, && git checkout.*,,g' \
+
+      ''
+    ;
+
+    modBuildPhase = ''
+      mkdir sources
+      make prepare-sources
+      go mod tidy -v
+    '';
+
+    proxyVendor = true;
+
+    buildPhase =
+      let
+        buildType =
+          assert (lib.count lib.id [ with_openblas with_cublas with_clblas ]) <= 1;
+          if with_openblas then "openblas"
+          else if with_cublas then "cublas"
+          else if with_clblas then "clblas"
+          else "";
+
+        buildFlags = [
+          "VERSION=v${version}"
+          "BUILD_TYPE=${buildType}"
+          "GO_TAGS=\"${builtins.concatStringsSep " " GO_TAGS}\""
+        ]
+        ++ lib.optional with_cublas "CUDA_LIBPATH=${cudaPackages.cuda_cudart}/lib";
+      in
+      ''
+        mkdir sources
+        make ${builtins.concatStringsSep " " buildFlags} build
+      '';
+
+    installPhase = ''
+      install -Dt $out/bin ${pname}
+    '';
+
+    buildInputs = [
+      protobuf # provides also abseil_cpp as propagated build input
+      grpc
+      openssl
+    ]
+    ++ lib.optionals with_stablediffusion
+      [ opencv ]
+    ++ lib.optionals with_tts
+      [ sonic spdlog fmt onnxruntime ]
+    ++ lib.optionals with_cublas
+      [ cudaPackages.cudatoolkit cudaPackages.cuda_cudart ]
+    ++ lib.optionals with_openblas
+      [ openblas.dev ]
+    ++ lib.optionals with_clblas
+      [ clblast ocl-icd opencl-headers ]
+    ;
+
+    # patching rpath with patchelf doens't work. The execuable
+    # raises an segmentation fault
+    postFixup = ''
+      wrapProgram $out/bin/${pname} \
+    '' + lib.optionalString with_cublas ''
+      --prefix LD_LIBRARY_PATH : "${cudaPackages.libcublas}/lib:${cudaPackages.cuda_cudart}/lib:/run/opengl-driver/lib" \
+    '' + lib.optionalString with_clblas ''
+      --prefix LD_LIBRARY_PATH : "${clblast}/lib:${ocl-icd}/lib" \
+    '' + lib.optionalString with_openblas ''
+      --prefix LD_LIBRARY_PATH : "${openblas}/lib" \
+    '' + ''
+      --prefix PATH : "${ffmpeg}/bin"
+    '';
+
+    nativeBuildInputs = [
+      ncurses
+      cmake
+      makeWrapper
+    ]
+    ++ lib.optional with_openblas pkg-config
+    ++ lib.optional with_cublas cudaPackages.cuda_nvcc
+    ;
+
+    passthru.features = {
+      inherit
+        with_cublas with_openblas with_tts with_stablediffusion
+        with_tinydream with_clblas;
+    };
+
+    passthru.tests = {
+      version = testers.testVersion {
+        package = self;
+        version = "v" + version;
+      };
+      health =
+        let
+          port = "8080";
+        in
+        testers.runNixOSTest {
+          name = pname + "-health";
+          nodes.machine = {
+            systemd.services.local-ai = {
+              wantedBy = [ "multi-user.target" ];
+              serviceConfig.ExecStart = "${self}/bin/local-ai --localai-config-dir . --address :${port}";
+            };
+          };
+          testScript = ''
+            machine.wait_for_open_port(${port})
+            machine.succeed("curl -f http://localhost:${port}/readyz")
+          '';
+        };
+    };
+
+    meta = with lib; {
+      description = "OpenAI alternative to run local LLMs, image and audio generation";
+      homepage = "https://localai.io";
+      license = licenses.mit;
+      maintainers = with maintainers; [ onny ck3d ];
+      platforms = platforms.linux;
+      broken =
+        # TODO: provide onnxruntime in the right way
+        with_tts
+        || (with_tinydream && (lib.lessThan self.stdenv.cc.version "13"));
+    };
+  };
+in
+self
diff --git a/nixpkgs/pkgs/by-name/lo/logiops/package.nix b/nixpkgs/pkgs/by-name/lo/logiops/package.nix
index e8cb020a32c5..fea73c79268b 100644
--- a/nixpkgs/pkgs/by-name/lo/logiops/package.nix
+++ b/nixpkgs/pkgs/by-name/lo/logiops/package.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation (oldAttrs: {
 
   meta = with lib; {
     description = "Unofficial userspace driver for HID++ Logitech devices";
+    mainProgram = "logid";
     homepage = "https://github.com/PixlOne/logiops";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ckie ];
diff --git a/nixpkgs/pkgs/by-name/lo/logiops_0_2_3/package.nix b/nixpkgs/pkgs/by-name/lo/logiops_0_2_3/package.nix
index 71283a406214..f2a9c5be1589 100644
--- a/nixpkgs/pkgs/by-name/lo/logiops_0_2_3/package.nix
+++ b/nixpkgs/pkgs/by-name/lo/logiops_0_2_3/package.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Unofficial userspace driver for HID++ Logitech devices";
+    mainProgram = "logid";
     homepage = "https://github.com/PixlOne/logiops";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ckie ];
diff --git a/nixpkgs/pkgs/by-name/lo/loksh/package.nix b/nixpkgs/pkgs/by-name/lo/loksh/package.nix
index 4ba926aa2f53..01143fae7b52 100644
--- a/nixpkgs/pkgs/by-name/lo/loksh/package.nix
+++ b/nixpkgs/pkgs/by-name/lo/loksh/package.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://github.com/dimkr/loksh";
     description = "Linux port of OpenBSD's ksh";
+    mainProgram = "loksh";
     longDescription = ''
       loksh is a Linux port of OpenBSD's ksh.
 
diff --git a/nixpkgs/pkgs/by-name/lo/loramon/package.nix b/nixpkgs/pkgs/by-name/lo/loramon/package.nix
index 9d0161dff2cd..9665026ff511 100644
--- a/nixpkgs/pkgs/by-name/lo/loramon/package.nix
+++ b/nixpkgs/pkgs/by-name/lo/loramon/package.nix
@@ -25,6 +25,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "LoRa packet sniffer for RNode hardware";
+    mainProgram = "loramon";
     homepage = "https://github.com/markqvist/LoRaMon";
     changelog = "https://github.com/markqvist/LoRaMon/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/games/lgames/lpairs2/default.nix b/nixpkgs/pkgs/by-name/lp/lpairs2/package.nix
index 7993fd0657da..a7ecd6c0f3c9 100644
--- a/nixpkgs/pkgs/games/lgames/lpairs2/default.nix
+++ b/nixpkgs/pkgs/by-name/lp/lpairs2/package.nix
@@ -1,19 +1,19 @@
 { lib
-, stdenv
-, fetchurl
 , SDL2
 , SDL2_image
 , SDL2_mixer
 , SDL2_ttf
 , directoryListingUpdater
+, fetchurl
+, stdenv
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "lpairs2";
   version = "2.3";
 
   src = fetchurl {
-    url = "mirror://sourceforge/lgames/${pname}-${version}.tar.gz";
+    url = "mirror://sourceforge/lgames/lpairs2-${finalAttrs.version}.tar.gz";
     hash = "sha256-gw1BNkcztyTuoXRdx5+TBZNJEJNrLCfEUCQ1JzROogA=";
   };
 
@@ -25,17 +25,18 @@ stdenv.mkDerivation rec {
   ];
 
   passthru.updateScript = directoryListingUpdater {
-    inherit pname version;
+    inherit (finalAttrs) pname version;
     url = "https://lgames.sourceforge.io/LPairs/";
     extraRegex = "(?!.*-win(32|64)).*";
   };
 
-  meta = with lib; {
-    broken = stdenv.isDarwin;
+  meta = {
     homepage = "http://lgames.sourceforge.net/LPairs/";
     description = "Matching the pairs - a typical Memory Game";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.unix;
+    license = with lib.licenses; [ gpl2Plus ];
+    mainProgram = "lpairs2";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+    broken = stdenv.isDarwin;
   };
-}
+})
diff --git a/nixpkgs/pkgs/by-name/lp/lprint/package.nix b/nixpkgs/pkgs/by-name/lp/lprint/package.nix
new file mode 100644
index 000000000000..26167ccb0d6c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/lp/lprint/package.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchFromGitHub
+, pappl
+, cups
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lprint";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "michaelrsweet";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-1OOLGQ8S4oRNSJanX/AzJ+g5F+jYnE/+o+ie5ucY22U=";
+  };
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    pappl
+    cups
+  ];
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/lprint --help
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "LPrint implements printing for a variety of common label and receipt printers connected via network or USB.";
+    mainProgram = "lprint";
+    homepage = "https://github.com/michaelrsweet/lprint";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ChlorideCull ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/lu/lubelogger/package.nix b/nixpkgs/pkgs/by-name/lu/lubelogger/package.nix
index 4b1af375edb1..1b8501fc1129 100644
--- a/nixpkgs/pkgs/by-name/lu/lubelogger/package.nix
+++ b/nixpkgs/pkgs/by-name/lu/lubelogger/package.nix
@@ -6,13 +6,13 @@
 
 buildDotnetModule rec {
   pname = "lubelogger";
-  version = "1.2.5";
+  version = "1.2.8";
 
   src = fetchFromGitHub {
     owner = "hargata";
     repo = "lubelog";
     rev = "v${version}";
-    hash = "sha256-wMsIcmHNNpgfYtQNQX8D7umdAGnlv0v5PIcI4Q5mRos=";
+    hash = "sha256-22I4OJZLeFLstGZF1fY/s8Y5tPgGJpJR/sPZpkHvUmY=";
   };
 
   projectFile = "CarCareTracker.sln";
diff --git a/nixpkgs/pkgs/by-name/lu/lunacy/package.nix b/nixpkgs/pkgs/by-name/lu/lunacy/package.nix
new file mode 100644
index 000000000000..feb03529d133
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/lu/lunacy/package.nix
@@ -0,0 +1,114 @@
+{ stdenv
+, lib
+, fetchurl
+, dpkg
+, autoPatchelfHook
+, zlib
+, libgcc
+, fontconfig
+, libX11
+, lttng-ust
+, icu
+, libICE
+, libSM
+, libXcursor
+, openssl
+, imagemagick
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "lunacy";
+  version = "9.5.0";
+
+  src = fetchurl {
+    url = "https://lcdn.icons8.com/setup/Lunacy_${finalAttrs.version}.deb";
+    hash = "sha256-dG2xLoqRQJsaR7v00iN46GP4jB8WVrxayn2CSQLCUlQ=";
+  };
+
+  unpackCmd = ''
+    mkdir -p root
+    dpkg-deb -x $src root
+  '';
+
+  buildInputs = [
+    zlib
+    libgcc
+    stdenv.cc.cc
+    lttng-ust
+    fontconfig.lib
+
+    # Runtime deps
+    libICE
+    libSM
+    libX11
+    libXcursor
+  ];
+
+  nativeBuildInputs = [
+    dpkg
+    autoPatchelfHook
+  ];
+
+  # adds to the RPATHS of all shared objects (exe and libs)
+  appendRunpaths = map (pkg: (lib.getLib pkg) + "/lib") [
+    icu
+    openssl
+    stdenv.cc.libc
+    stdenv.cc.cc
+  ] ++ [
+    # technically, this should be in runtimeDependencies but will not work as
+    # "lib" is appended to all elements in the array
+    "${placeholder "out"}/lib/lunacy"
+  ];
+
+  # will add to the RPATH of executable only
+  runtimeDependencies = [
+    libICE
+    libSM
+    libX11
+    libXcursor
+  ];
+
+  dontBuild = true;
+  dontStrip = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/lib";
+    cp -R "opt/icons8/lunacy" "$out/lib"
+    cp -R "usr/share" "$out/share"
+
+    # Prepare the desktop icon, the upstream icon is 200x200 but the hicolor theme does not
+    # support this resolution. Nearest sizes are 192x192 and 256x256.
+    ${imagemagick}/bin/convert "opt/icons8/lunacy/Assets/LunacyLogo.png" -resize 192x192 lunacy.png
+    install -D lunacy.png "$out/share/icons/hicolor/192x192/apps/${finalAttrs.pname}.png"
+
+    runHook postInstall
+  '';
+
+  postInstall = ''
+    substituteInPlace $out/share/applications/lunacy.desktop \
+      --replace "Exec=/opt/icons8/lunacy/Lunacy" "Exec=${finalAttrs.pname}" \
+      --replace "Icon=/opt/icons8/lunacy/Assets/LunacyLogo.png" "Icon=${finalAttrs.pname}"
+  '';
+
+  postFixup = ''
+    mkdir $out/bin
+
+    # Fixes runtime error regarding missing libSkiaSharp.so (which is in the same directory as the binary).
+    ln -s "$out/lib/lunacy/Lunacy" "$out/bin/${finalAttrs.pname}"
+  '';
+
+  meta = with lib; {
+    description = "Free design software that keeps your flow with AI tools and built-in graphics";
+    homepage = "https://icons8.com/lunacy";
+    changelog = "https://lunacy.docs.icons8.com/release-notes/";
+    license = licenses.unfree;
+    maintainers = [ maintainers.eliandoran ];
+    platforms = platforms.linux;
+    sourceProvenance = [ sourceTypes.binaryBytecode ];
+    mainProgram = "lunacy";
+  };
+
+})
diff --git a/nixpkgs/pkgs/by-name/lu/lutgen/package.nix b/nixpkgs/pkgs/by-name/lu/lutgen/package.nix
index c74896b88ac8..78779051349e 100644
--- a/nixpkgs/pkgs/by-name/lu/lutgen/package.nix
+++ b/nixpkgs/pkgs/by-name/lu/lutgen/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lutgen";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "ozwaldorf";
     repo = "lutgen-rs";
     rev = "v${version}";
-    hash = "sha256-tKSPk0V11pnKFV4E08H4CUnjw9nAonTRI6W3mGipd9I=";
+    hash = "sha256-O2995+DLiCRDM/+oPTOBiM0L1x0jmbLTlR48+5IfOQw=";
   };
 
-  cargoHash = "sha256-DiorrgTH9lIdmaZL7451uCXj9X7M6eHf4MQc85MpU7s=";
+  cargoHash = "sha256-ys4c/YUJJikDEUJjzagZBB+kSy+EFf+PqQdK/h+3gWU=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/by-name/lz/lzsa/package.nix b/nixpkgs/pkgs/by-name/lz/lzsa/package.nix
index e0ddc158706e..a8b1b5e05f66 100644
--- a/nixpkgs/pkgs/by-name/lz/lzsa/package.nix
+++ b/nixpkgs/pkgs/by-name/lz/lzsa/package.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://github.com/emmanuel-marty/lzsa";
     description = "Byte-aligned, efficient lossless packer that is optimized for fast decompression on 8-bit micros";
+    mainProgram = "lzsa";
     license = with lib.licenses; [ cc0 ];
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/by-name/ma/maloader/package.nix b/nixpkgs/pkgs/by-name/ma/maloader/package.nix
new file mode 100644
index 000000000000..bb0f744f37b6
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ma/maloader/package.nix
@@ -0,0 +1,63 @@
+{
+  lib,
+  llvmPackages,
+  fetchFromGitHub,
+  opencflite,
+  libuuid,
+  zlib,
+}:
+
+let
+  stdenv = llvmPackages.libcxxStdenv;
+in
+stdenv.mkDerivation {
+  pname = "maloader";
+  version = "0-unstable-2018-05-02";
+
+  src = fetchFromGitHub {
+    owner = "shinh";
+    repo = "maloader";
+    rev = "464a90fdfd06a54c9da5d1a3725ed6229c0d3d60";
+    hash = "sha256-0N3+tr8XUsn3WhJNsPVknumBrfMgDawTEXVRkIs/IV8=";
+  };
+
+  postPatch = ''
+    substituteInPlace ld-mac.cc \
+      --replace-fail 'loadLibMac(mypath)' 'loadLibMac("${placeholder "out"}/lib/")' \
+      --replace-fail 'libCoreFoundation.so' '${opencflite}/lib/libCoreFoundation.so'
+    substituteInPlace libmac/stack_protector-obsd.c \
+      --replace-fail 'sys/sysctl.h' 'linux/sysctl.h'
+  '';
+
+  buildInputs = [
+    libuuid
+    zlib
+  ];
+
+  buildFlags = [
+    "USE_LIBCXX=1"
+    "release"
+  ];
+
+  env.NIX_CFLAGS_COMPILE = "-Wno-error=unused-command-line-argument";
+
+  installPhase = ''
+    runHook preInstall
+
+    install -vD libmac.so "$out/lib/libmac.so"
+
+    for bin in extract macho2elf ld-mac; do
+      install -vD "$bin" "$out/bin/$bin"
+    done
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Mach-O loader for Linux";
+    homepage = "https://github.com/shinh/maloader";
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ wegank ];
+    inherit (opencflite.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ma/mariadb-connector-java/package.nix b/nixpkgs/pkgs/by-name/ma/mariadb-connector-java/package.nix
index 28d7631e396a..b0a805a717e3 100644
--- a/nixpkgs/pkgs/by-name/ma/mariadb-connector-java/package.nix
+++ b/nixpkgs/pkgs/by-name/ma/mariadb-connector-java/package.nix
@@ -6,16 +6,16 @@
 
 maven.buildMavenPackage rec {
   pname = "mariadb-connector-java";
-  version = "3.3.0";
+  version = "3.3.3";
 
   src = fetchFromGitHub {
     owner = "mariadb-corporation";
     repo = "mariadb-connector-j";
     rev = "refs/tags/${version}";
-    hash = "sha256-JuMm01ihgVoKpe8wyuUIDyzSxMODRg7dQpTCyVA/K10=";
+    hash = "sha256-fvqVHjLYLO6reIkQ+SQMEXOw88MDZyNV7T8w0uFgnPg=";
   };
 
-  mvnHash = "sha256-Px4Qxb1tTvRKZum1xfe0mdX+EyimnyyfzrydiaDaYRo=";
+  mvnHash = "sha256-7O+G5HT6mtp12zWL3Gn12KPVUwp3GMaWGvXX6Sg1+6k=";
 
   # Disable tests because they require networking
   mvnParameters = "-DskipTests";
@@ -32,7 +32,7 @@ maven.buildMavenPackage rec {
     description = "MariaDB Connector/J is used to connect applications developed in Java to MariaDB and MySQL databases";
     homepage = "https://mariadb.com/kb/en/about-mariadb-connector-j/";
     changelog = "https://mariadb.com/kb/en/mariadb-connector-j-release-notes/";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ anthonyroussel ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/by-name/ma/matrix-hook/package.nix b/nixpkgs/pkgs/by-name/ma/matrix-hook/package.nix
index ed9093da9957..c492217f00c3 100644
--- a/nixpkgs/pkgs/by-name/ma/matrix-hook/package.nix
+++ b/nixpkgs/pkgs/by-name/ma/matrix-hook/package.nix
@@ -16,6 +16,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A simple webhook for matrix";
+    mainProgram = "matrix-hook";
     homepage = "https://github.com/pinpox/matrix-hook";
     license = licenses.gpl3;
     maintainers = with maintainers; [ pinpox mic92 zowoq ];
diff --git a/nixpkgs/pkgs/by-name/mb/mbpoll/package.nix b/nixpkgs/pkgs/by-name/mb/mbpoll/package.nix
new file mode 100644
index 000000000000..eecc8922e472
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/mb/mbpoll/package.nix
@@ -0,0 +1,30 @@
+{ lib
+, stdenv
+, cmake
+, pkg-config
+, fetchFromGitHub
+, libmodbus
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "mbpoll";
+  version = "1.5.2";
+
+  src = fetchFromGitHub {
+    owner = "epsilonrt";
+    repo = "mbpoll";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-rO3j/p7MABlxcwRAZm26u7wgODGFTtetSDhPWPzTuEA=";
+  };
+
+  buildInputs = [ libmodbus ];
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  meta = with lib; {
+    description = "Command line utility to communicate with ModBus slave (RTU or TCP)";
+    homepage = "https://epsilonrt.fr";
+    license = licenses.gpl3;
+    mainProgram = "mbpoll";
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/mc/mcap-cli/package.nix b/nixpkgs/pkgs/by-name/mc/mcap-cli/package.nix
index 78f1b3bebc4e..81853d252efa 100644
--- a/nixpkgs/pkgs/by-name/mc/mcap-cli/package.nix
+++ b/nixpkgs/pkgs/by-name/mc/mcap-cli/package.nix
@@ -1,6 +1,7 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, nix-update-script
+}:
 let
-  version = "0.0.38";
+  version = "0.0.42";
 in
 buildGoModule {
 
@@ -12,7 +13,7 @@ buildGoModule {
     repo = "mcap";
     owner = "foxglove";
     rev = "releases/mcap-cli/v${version}";
-    hash = "sha256-mwKWf0kJ3uMx1cLUac+AqXgQ1Af3tLDOCTFKgq8FtHE=";
+    hash = "sha256-9fjzMUMWn5j8AJJq+tK+Hq0o8d3HpacitJZ5CfLiaLw=";
   };
 
   vendorHash = "sha256-Gl0zLBTWscKGtVOS6rPRL/r8KHYHpZwoUDbEyCL4Ijk=";
@@ -34,11 +35,16 @@ buildGoModule {
     "-skip=TestCat|TestInfo"
   ];
 
+  passthru = {
+    updateScript = nix-update-script { };
+  };
+
   meta = with lib; {
     description = "MCAP CLI tool to inspect and fix MCAP files";
     homepage = "https://github.com/foxglove/mcap";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ squalus therishidesai ];
+    mainProgram = "mcap";
   };
 
 }
diff --git a/nixpkgs/pkgs/by-name/mc/mcomix/package.nix b/nixpkgs/pkgs/by-name/mc/mcomix/package.nix
index bf087c94a0d8..170386de3e4c 100644
--- a/nixpkgs/pkgs/by-name/mc/mcomix/package.nix
+++ b/nixpkgs/pkgs/by-name/mc/mcomix/package.nix
@@ -68,6 +68,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Comic book reader and image viewer";
+    mainProgram = "mcomix";
     longDescription = ''
       User-friendly, customizable image viewer, specifically designed to handle
       comic books and manga supporting a variety of container formats
diff --git a/nixpkgs/pkgs/by-name/me/med/package.nix b/nixpkgs/pkgs/by-name/me/med/package.nix
new file mode 100644
index 000000000000..5edc2e3201bd
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/me/med/package.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, qt6, fetchFromGitHub, cmake, pkg-config, jsoncpp, readline }:
+
+stdenv.mkDerivation rec {
+  pname = "med";
+  version = "3.10.1";
+
+  src = fetchFromGitHub {
+    owner = "allencch";
+    repo = "med";
+    rev = version;
+    sha256 = "sha256-m2lVRSNaklB0Xfqgtyc0lNWXfTD8wTWsE06eGv4FOBE=";
+  };
+
+  nativeBuildInputs = [ qt6.wrapQtAppsHook cmake pkg-config ];
+  buildInputs = [ qt6.qtbase qt6.qttools qt6.qtwayland jsoncpp readline ];
+
+  postPatch = ''
+    find . -type f -exec sed -i "s|/opt/med|$out/share/med|g" {} +
+  '';
+
+  meta = with lib; {
+    description = "GUI game memory scanner and editor";
+    homepage = "https://github.com/allencch/med";
+    changelog = "https://github.com/allencch/med/releases/tag/${version}";
+    maintainers = with maintainers; [ zebreus ];
+    platforms = platforms.linux;
+    license = licenses.bsd3;
+    mainProgram = "med";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/me/mercure/package.nix b/nixpkgs/pkgs/by-name/me/mercure/package.nix
index f489155b4c25..bd4bdd231a2b 100644
--- a/nixpkgs/pkgs/by-name/me/mercure/package.nix
+++ b/nixpkgs/pkgs/by-name/me/mercure/package.nix
@@ -8,18 +8,18 @@
 
 buildGoModule rec {
   pname = "mercure";
-  version = "0.15.9";
+  version = "0.15.10";
 
   src = fetchFromGitHub {
     owner = "dunglas";
     repo = "mercure";
     rev = "v${version}";
-    hash = "sha256-4Y+yZSZrBDLPbQXaOCSKk/EY20Ka8CS4ivUg1TEaqXo=";
+    hash = "sha256-ot4Gb2Zg4VaF/ip9cLJYP69WGmKw/+WQSf20o1aQtpM=";
   };
 
-  sourceRoot = "source/caddy";
+  sourceRoot = "${src.name}/caddy";
 
-  vendorHash = "sha256-N0RmvhBlTiWmBb4TzLmaThD9jVkKgcIO9vPWxJAvLRQ=";
+  vendorHash = "sha256-K+9LQ9wI0ltZI7N2mshiDsjEMc2FzenqSGP00fEWuMQ=";
 
   subPackages = [ "mercure" ];
   excludedPackages = [ "../cmd/mercure" ];
diff --git a/nixpkgs/pkgs/by-name/me/meson/package.nix b/nixpkgs/pkgs/by-name/me/meson/package.nix
index 4bf3a3a7d551..04064b4255c6 100644
--- a/nixpkgs/pkgs/by-name/me/meson/package.nix
+++ b/nixpkgs/pkgs/by-name/me/meson/package.nix
@@ -141,6 +141,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = {
     homepage = "https://mesonbuild.com";
     description = "An open source, fast and friendly build system made in Python";
+    mainProgram = "meson";
     longDescription = ''
       Meson is an open source build system meant to be both extremely fast, and,
       even more importantly, as user friendly as possible.
diff --git a/nixpkgs/pkgs/by-name/me/metronome/package.nix b/nixpkgs/pkgs/by-name/me/metronome/package.nix
new file mode 100644
index 000000000000..f21a941a9e37
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/me/metronome/package.nix
@@ -0,0 +1,78 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, rustPlatform
+, rustc
+, cargo
+, wrapGAppsHook4
+, desktop-file-utils
+, libadwaita
+, gst_all_1
+, darwin
+}:
+
+stdenv.mkDerivation rec {
+  pname = "metronome";
+  version = "1.3.0";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = "metronome";
+    rev = version;
+    hash = "sha256-Sn2Ua/XxPnJjcQvWeOPkphl+BE7/BdOrUIpf+tLt20U=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "metronome-${version}";
+    hash = "sha256-HYO/IY5yGW8JLBxD/SZz16GFnwvv77kFl/x+QXhV+V0=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    rustPlatform.cargoSetupHook
+    rustc
+    cargo
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    libadwaita
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-bad
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Foundation
+  ];
+
+  # Workaround for the gettext-sys issue
+  # https://github.com/Koka/gettext-rs/issues/114
+  env.NIX_CFLAGS_COMPILE = lib.optionalString
+    (
+      stdenv.cc.isClang &&
+      lib.versionAtLeast stdenv.cc.version "16"
+    )
+    "-Wno-error=incompatible-function-pointer-types";
+
+  meta = with lib; {
+    description = "Keep the tempo";
+    longDescription = ''
+      Metronome beats the rhythm for you, you simply
+      need to tell it the required time signature and
+      beats per minutes. You can also tap to let the
+      application guess the required beats per minute.
+    '';
+    homepage = "https://gitlab.gnome.org/World/metronome";
+    license = licenses.gpl3Plus;
+    mainProgram = "metronome";
+    maintainers = with maintainers; [ aleksana ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/me/mev-boost/package.nix b/nixpkgs/pkgs/by-name/me/mev-boost/package.nix
index a68b9f1c85ab..842c6b3b2a54 100644
--- a/nixpkgs/pkgs/by-name/me/mev-boost/package.nix
+++ b/nixpkgs/pkgs/by-name/me/mev-boost/package.nix
@@ -6,12 +6,12 @@
 
 buildGoModule rec {
   pname = "mev-boost";
-  version = "1.7";
+  version = "1.7.1";
   src = fetchFromGitHub {
       owner = "flashbots";
       repo = "mev-boost";
       rev = "v${version}";
-      hash = "sha256-Z5B+PRYb6eWssgyaXpXoHOVRoMZoSAwun7s6Fh1DrfM=";
+      hash = "sha256-4Vxs1Jo7rkw9l0pXfi+J7YmzQawt7tc19I1MdHQgjBA=";
   };
 
   vendorHash = "sha256-yfWDGVfgCfsmzI5oxEmhHXKCUAHe6wWTkaMkBN5kQMw=";
diff --git a/nixpkgs/pkgs/by-name/mf/mfoc-hardnested/package.nix b/nixpkgs/pkgs/by-name/mf/mfoc-hardnested/package.nix
index 550d3a5c4667..672db4d21c1a 100644
--- a/nixpkgs/pkgs/by-name/mf/mfoc-hardnested/package.nix
+++ b/nixpkgs/pkgs/by-name/mf/mfoc-hardnested/package.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A fork of mfoc integrating hardnested code from the proxmark";
+    mainProgram = "mfoc-hardnested";
     license = licenses.gpl2;
     homepage = "https://github.com/nfc-tools/mfoc-hardnested";
     maintainers = with maintainers; [ azuwis ];
diff --git a/nixpkgs/pkgs/by-name/mi/mihomo/package.nix b/nixpkgs/pkgs/by-name/mi/mihomo/package.nix
new file mode 100644
index 000000000000..4dfa46544ca6
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/mi/mihomo/package.nix
@@ -0,0 +1,47 @@
+{ lib
+, fetchFromGitHub
+, buildGoModule
+, nixosTests
+}:
+
+buildGoModule rec {
+  pname = "mihomo";
+  version = "1.18.1";
+
+  src = fetchFromGitHub {
+    owner = "MetaCubeX";
+    repo = "mihomo";
+    rev = "v${version}";
+    hash = "sha256-ezOkDrpytZQdc+Txe4eUyuWY6oipn9jIrmu7aO8lNlQ=";
+  };
+
+  vendorHash = "sha256-tvPR5kAta4MlMTwjfxwVOacRr2nVpfalbN08mfxml64=";
+
+  excludedPackages = [ "./test" ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/metacubex/mihomo/constant.Version=${version}"
+  ];
+
+  tags = [
+    "with_gvisor"
+  ];
+
+  # network required
+  doCheck = false;
+
+
+  passthru.tests = {
+    mihomo = nixosTests.mihomo;
+  };
+
+  meta = with lib; {
+    description = "A rule-based tunnel in Go";
+    homepage = "https://github.com/MetaCubeX/mihomo";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ oluceps ];
+    mainProgram = "mihomo";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/mi/minijinja/package.nix b/nixpkgs/pkgs/by-name/mi/minijinja/package.nix
index 6f005cf411a6..7f1b547c6549 100644
--- a/nixpkgs/pkgs/by-name/mi/minijinja/package.nix
+++ b/nixpkgs/pkgs/by-name/mi/minijinja/package.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "minijinja";
-  version = "1.0.12";
+  version = "1.0.13";
 
   src = fetchFromGitHub {
     owner = "mitsuhiko";
     repo = "minijinja";
     rev = version;
-    hash = "sha256-v5YTPcUiCUQvTURqgKepdOjKZ5rFLr+mF7X+s5GvxdM=";
+    hash = "sha256-VVd90j8ZOubtHX15jMGAIA3LF4tg4SzFxO046QVwDjc=";
   };
 
-  cargoHash = "sha256-OhfrlT2DZU3ahH9PKqpEK8f34J2E6zNUai3hYBPg7v4=";
+  cargoHash = "sha256-f9hXH0c8vVpexYyuQuS0D8jzEqJSrHOwp/FropTKTJg=";
 
   # The tests relies on the presence of network connection
   doCheck = false;
diff --git a/nixpkgs/pkgs/by-name/mk/mkalias/package.nix b/nixpkgs/pkgs/by-name/mk/mkalias/package.nix
new file mode 100644
index 000000000000..507ce73827e8
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/mk/mkalias/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, darwin
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "mkalias";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "vs49688";
+    repo = "mkalias";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-L6bgCJ0fdiWmtlgTzDmTenTMP74UFUEqiDmE1+gg3zw=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    darwin.apple_sdk.frameworks.Foundation
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D mkalias $out/bin/mkalias
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Quick'n'dirty tool to make APFS aliases";
+    homepage = "https://github.com/vs49688/mkalias";
+    license = lib.licenses.mit;
+    mainProgram = "mkalias";
+    maintainers = with lib.maintainers; [ zane emilytrau ];
+    platforms = lib.platforms.darwin;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/mk/mksh/package.nix b/nixpkgs/pkgs/by-name/mk/mksh/package.nix
index 27cee1d4e226..2572e378ddf4 100644
--- a/nixpkgs/pkgs/by-name/mk/mksh/package.nix
+++ b/nixpkgs/pkgs/by-name/mk/mksh/package.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "http://www.mirbsd.org/mksh.htm";
     description = "MirBSD Korn Shell";
+    mainProgram = "mksh";
     longDescription = ''
       The MirBSD Korn Shell is a DFSG-free and OSD-compliant (and OSI
       approved) successor to pdksh, developed as part of the MirOS
diff --git a/nixpkgs/pkgs/by-name/mo/monophony/package.nix b/nixpkgs/pkgs/by-name/mo/monophony/package.nix
index 1924267126a5..64b86b292171 100644
--- a/nixpkgs/pkgs/by-name/mo/monophony/package.nix
+++ b/nixpkgs/pkgs/by-name/mo/monophony/package.nix
@@ -6,7 +6,6 @@
 , gobject-introspection
 , yt-dlp
 , libadwaita
-, libsoup_3
 , glib-networking
 , nix-update-script
 }:
@@ -15,7 +14,7 @@ python3Packages.buildPythonApplication rec {
   version = "2.7.0";
   format = "other";
 
-  sourceRoot = "source/source";
+  sourceRoot = "${src.name}/source";
   src = fetchFromGitLab {
     owner = "zehkira";
     repo = "monophony";
@@ -38,7 +37,6 @@ python3Packages.buildPythonApplication rec {
   buildInputs = [
     libadwaita
     # needed for gstreamer https
-    libsoup_3
     glib-networking
   ] ++ (with gst_all_1; [
     gst-plugins-base
@@ -53,8 +51,6 @@ python3Packages.buildPythonApplication rec {
     gappsWrapperArgs+=(
       --prefix PYTHONPATH : "$program_PYTHONPATH"
       --prefix PATH : "${lib.makeBinPath [yt-dlp]}"
-      # needed for gstreamer https
-      --prefix LD_LIBRARY_PATH : "${lib.getLib libsoup_3}/lib"
     )
   '';
 
diff --git a/nixpkgs/pkgs/by-name/mo/mosdepth/package.nix b/nixpkgs/pkgs/by-name/mo/mosdepth/package.nix
index 7c74901bc6ff..dbe5bc87726c 100644
--- a/nixpkgs/pkgs/by-name/mo/mosdepth/package.nix
+++ b/nixpkgs/pkgs/by-name/mo/mosdepth/package.nix
@@ -2,7 +2,7 @@
 
 buildNimPackage (finalAttrs: {
   pname = "mosdepth";
-  version = "0.3.6";
+  version = "0.3.7";
 
   requiredNimVersion = 1;
 
@@ -10,7 +10,7 @@ buildNimPackage (finalAttrs: {
     owner = "brentp";
     repo = "mosdepth";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-7N42S3xfQRkrBmoLf0DsbLMpVULAFpHm5JugDMDzAgU=";
+    sha256 = "sha256-VyEZNY/P3BfJ3PCRn7R+37XH4gfc9JEOFB0WmrSxpIc=";
   };
 
   lockFile = ./lock.json;
@@ -25,6 +25,7 @@ buildNimPackage (finalAttrs: {
 
   meta = with lib; {
     description = "fast BAM/CRAM depth calculation for WGS, exome, or targeted sequencing";
+    mainProgram = "mosdepth";
     license = licenses.mit;
     homepage = "https://github.com/brentp/mosdepth";
     maintainers = with maintainers; [ jbedo ];
diff --git a/nixpkgs/pkgs/by-name/mo/mountpoint-s3/package.nix b/nixpkgs/pkgs/by-name/mo/mountpoint-s3/package.nix
index 194cf2249e52..3bd0527c2983 100644
--- a/nixpkgs/pkgs/by-name/mo/mountpoint-s3/package.nix
+++ b/nixpkgs/pkgs/by-name/mo/mountpoint-s3/package.nix
@@ -8,17 +8,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mountpoint-s3";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "mountpoint-s3";
     rev = "v${version}";
-    hash = "sha256-V9d3rAb1rbso69RUMgwZdqfchgcDUlFU2LFjCk59uew=";
+    hash = "sha256-DsxcQ/FEVcrzPyv9LgssNut4XnbU3mPKbuBwQKLiRLA=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-9cdz1G4mKyg4TfsL+laoB6+6rqEgk8A3VkTjejETAKo=";
+  cargoHash = "sha256-UOQRdSQ/whlOTZL2vaNiIcKB+Zgpk8tbinWBRWPyllc=";
 
   # thread 'main' panicked at cargo-auditable/src/collect_audit_data.rs:77:9:
   # cargo metadata failure: error: none of the selected packages contains these features: libfuse3
@@ -52,7 +52,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://github.com/awslabs/mountpoint-s3";
     description = "A simple, high-throughput file client for mounting an Amazon S3 bucket as a local file system.";
-    license = licenses.amazonsl;
+    license = licenses.asl20;
     maintainers = with maintainers; [ lblasc ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/by-name/mo/move-mount-beneath/package.nix b/nixpkgs/pkgs/by-name/mo/move-mount-beneath/package.nix
index 2e2e058eec97..be04c80a1b70 100644
--- a/nixpkgs/pkgs/by-name/mo/move-mount-beneath/package.nix
+++ b/nixpkgs/pkgs/by-name/mo/move-mount-beneath/package.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Toy binary to illustrate adding a mount beneath an existing mount";
+    mainProgram = "move-mount";
     homepage = "https://github.com/brauner/move-mount-beneath";
     license = lib.licenses.mit0;
     maintainers = with lib.maintainers; [ nikstur ];
diff --git a/nixpkgs/pkgs/by-name/mo/movim/package.nix b/nixpkgs/pkgs/by-name/mo/movim/package.nix
index 985a7808b644..600af837b107 100644
--- a/nixpkgs/pkgs/by-name/mo/movim/package.nix
+++ b/nixpkgs/pkgs/by-name/mo/movim/package.nix
@@ -1,6 +1,7 @@
 { lib
 , fetchFromGitHub
 , php
+, phpCfg ? null
 , withPgsql ? true # “strongly recommended†according to docs
 , withMysql ? false
 }:
@@ -16,14 +17,16 @@ php.buildComposerProject (finalAttrs: {
     hash = "sha256-9MBe2IRYxvUuCc5m7ajvIlBU7YVm4A3RABlOOIjpKoM=";
   };
 
-  php = php.buildEnv {
+  php = php.buildEnv ({
     extensions = ({ all, enabled }:
       enabled
-      ++ (with all; [ curl dom gd imagick mbstring ])
-      ++ lib.optional withPgsql all.pgsql
-      ++ lib.optional withMysql all.mysqli
+        ++ (with all; [ curl dom gd imagick mbstring pdo simplexml ])
+        ++ lib.optionals withPgsql (with all; [ pdo_pgsql pgsql ])
+        ++ lib.optionals withMysql (with all; [ mysqli mysqlnd pdo_mysql ])
     );
-  };
+  } // lib.optionalAttrs (phpCfg != null) {
+    extraConfig = phpCfg;
+  });
 
   # no listed license
   # pinned commonmark
@@ -34,7 +37,7 @@ php.buildComposerProject (finalAttrs: {
   meta = {
     description = "a federated blogging & chat platform that acts as a web front end for the XMPP protocol";
     homepage = "https://movim.eu";
-    license = lib.licenses.agpl3;
+    license = lib.licenses.agpl3Plus;
     maintainers = with lib.maintainers; [ toastal ];
   };
 })
diff --git a/nixpkgs/pkgs/by-name/ms/mscompress/package.nix b/nixpkgs/pkgs/by-name/ms/mscompress/package.nix
new file mode 100644
index 000000000000..e6bc49feb187
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ms/mscompress/package.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, autoreconfHook
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "mscompress";
+  version = "0.4";
+
+  src = fetchFromGitHub {
+    owner = "stapelberg";
+    repo = "mscompress";
+    rev = finalAttrs.version;
+    hash = "sha256-Urq8CzVfO9tdEUrEya+bUzoNjZQ2TO7OB+h2MTAGwEI=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    install -Dm444 -t $out/share/doc/mscompress ChangeLog README TODO
+  '';
+
+  meta = with lib; {
+    description = ''Microsoft "compress.exe/expand.exe" compatible (de)compressor'';
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms = platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/ms/msolve/package.nix b/nixpkgs/pkgs/by-name/ms/msolve/package.nix
index 3a8fe18b063c..cf06aba55595 100644
--- a/nixpkgs/pkgs/by-name/ms/msolve/package.nix
+++ b/nixpkgs/pkgs/by-name/ms/msolve/package.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Library for polynomial system solving through algebraic methods";
+    mainProgram = "msolve";
     homepage = "https://msolve.lip6.fr";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ wegank ];
diff --git a/nixpkgs/pkgs/by-name/my/mycelium/Cargo.lock b/nixpkgs/pkgs/by-name/my/mycelium/Cargo.lock
index 8979931acce8..311901f8a242 100644
--- a/nixpkgs/pkgs/by-name/my/mycelium/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/my/mycelium/Cargo.lock
@@ -146,18 +146,19 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "axum"
-version = "0.6.20"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
+checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e"
 dependencies = [
  "async-trait",
  "axum-core",
- "bitflags 1.3.2",
  "bytes",
  "futures-util",
- "http",
- "http-body",
- "hyper",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.2.0",
+ "hyper-util",
  "itoa",
  "matchit",
  "memchr",
@@ -178,17 +179,20 @@ dependencies = [
 
 [[package]]
 name = "axum-core"
-version = "0.3.4"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
+checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3"
 dependencies = [
  "async-trait",
  "bytes",
  "futures-util",
- "http",
- "http-body",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
  "mime",
+ "pin-project-lite",
  "rustversion",
+ "sync_wrapper",
  "tower-layer",
  "tower-service",
 ]
@@ -311,6 +315,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
 name = "cipher"
 version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -504,9 +514,9 @@ dependencies = [
 
 [[package]]
 name = "etherparse"
-version = "0.13.0"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "827292ea592108849932ad8e30218f8b1f21c0dfd0696698a18b5d0aed62d990"
+checksum = "24890603eb4b43aa788f02261ce21714449033e3e2ab93692f0ab18480c3c9b1"
 dependencies = [
  "arrayvec",
 ]
@@ -691,7 +701,26 @@ dependencies = [
  "futures-core",
  "futures-sink",
  "futures-util",
- "http",
+ "http 0.2.11",
+ "indexmap",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 1.1.0",
  "indexmap",
  "slab",
  "tokio",
@@ -729,13 +758,47 @@ dependencies = [
 ]
 
 [[package]]
+name = "http"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
 name = "http-body"
 version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
- "http",
+ "http 0.2.11",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-body"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+dependencies = [
+ "bytes",
+ "http 1.1.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.0",
  "pin-project-lite",
 ]
 
@@ -767,9 +830,9 @@ dependencies = [
  "futures-channel",
  "futures-core",
  "futures-util",
- "h2",
- "http",
- "http-body",
+ "h2 0.3.24",
+ "http 0.2.11",
+ "http-body 0.4.6",
  "httparse",
  "httpdate",
  "itoa",
@@ -782,17 +845,39 @@ dependencies = [
 ]
 
 [[package]]
-name = "hyper-rustls"
-version = "0.24.2"
+name = "hyper"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
+checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a"
 dependencies = [
+ "bytes",
+ "futures-channel",
  "futures-util",
- "http",
- "hyper",
- "rustls",
+ "h2 0.4.2",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "smallvec",
+ "tokio",
+]
+
+[[package]]
+name = "hyper-util"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "hyper 1.2.0",
+ "pin-project-lite",
+ "socket2",
  "tokio",
- "tokio-rustls",
 ]
 
 [[package]]
@@ -886,9 +971,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.152"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libloading"
@@ -908,9 +993,9 @@ checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[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 = "loom"
@@ -972,9 +1057,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "wasi",
@@ -983,7 +1068,7 @@ dependencies = [
 
 [[package]]
 name = "mycelium"
-version = "0.4.2"
+version = "0.4.3"
 dependencies = [
  "aes-gcm",
  "axum",
@@ -1002,7 +1087,7 @@ dependencies = [
  "libc",
  "log",
  "network-interface",
- "nix 0.27.1",
+ "nix 0.28.0",
  "pretty_env_logger",
  "quinn",
  "rand",
@@ -1119,6 +1204,18 @@ dependencies = [
  "bitflags 2.4.2",
  "cfg-if",
  "libc",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
  "memoffset",
 ]
 
@@ -1360,9 +1457,9 @@ dependencies = [
 
 [[package]]
 name = "rcgen"
-version = "0.12.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d918c80c5a4c7560db726763020bd16db179e4d5b828078842274a443addb5d"
+checksum = "48406db8ac1f3cbc7dcdb56ec355343817958a356ff430259bb07baf7607e1e1"
 dependencies = [
  "pem",
  "ring 0.17.7",
@@ -1425,11 +1522,10 @@ dependencies = [
  "encoding_rs",
  "futures-core",
  "futures-util",
- "h2",
- "http",
- "http-body",
- "hyper",
- "hyper-rustls",
+ "h2 0.3.24",
+ "http 0.2.11",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
  "ipnet",
  "js-sys",
  "log",
@@ -1437,20 +1533,16 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls",
- "rustls-pemfile",
  "serde",
  "serde_json",
  "serde_urlencoded",
  "system-configuration",
  "tokio",
- "tokio-rustls",
  "tower-service",
  "url",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
- "webpki-roots",
  "winreg",
 ]
 
@@ -1541,22 +1633,12 @@ version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
- "log",
  "ring 0.17.7",
  "rustls-webpki",
  "sct",
 ]
 
 [[package]]
-name = "rustls-pemfile"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
-dependencies = [
- "base64",
-]
-
-[[package]]
 name = "rustls-webpki"
 version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1602,18 +1684,18 @@ checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
 
 [[package]]
 name = "serde"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1622,9 +1704,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.111"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -1880,16 +1962,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "tokio-rustls"
-version = "0.24.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
-dependencies = [
- "rustls",
- "tokio",
-]
-
-[[package]]
 name = "tokio-stream"
 version = "0.1.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1929,9 +2001,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.7.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
+checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -1950,9 +2022,9 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.19.15"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
 dependencies = [
  "indexmap",
  "serde",
@@ -2242,12 +2314,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "webpki-roots"
-version = "0.25.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
-
-[[package]]
 name = "winapi"
 version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2459,9 +2525,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
 name = "winnow"
-version = "0.5.34"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
@@ -2504,9 +2570,9 @@ dependencies = [
 
 [[package]]
 name = "x25519-dalek"
-version = "2.0.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96"
+checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277"
 dependencies = [
  "curve25519-dalek",
  "rand_core",
diff --git a/nixpkgs/pkgs/by-name/my/mycelium/package.nix b/nixpkgs/pkgs/by-name/my/mycelium/package.nix
index d5b66705d15a..b3aee2f9ff3e 100644
--- a/nixpkgs/pkgs/by-name/my/mycelium/package.nix
+++ b/nixpkgs/pkgs/by-name/my/mycelium/package.nix
@@ -7,13 +7,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mycelium";
-  version = "0.4.2";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = "threefoldtech";
     repo = "mycelium";
     rev = "v${version}";
-    hash = "sha256-VWrWg9UpBSug0cvY/zuzGFI6Y0CRFcrh1Cy4mbYtg9Q=";
+    hash = "sha256-bA3ci+vqXBCPBaxMvfUdFcqdaZbAw/+r5UbH/as/fnc=";
   };
 
   cargoLock = {
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/threefoldtech/mycelium";
     changelog = "https://github.com/threefoldtech/mycelium/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
-    maintainers = with maintainers; [ matthewcroughan ];
+    maintainers = with maintainers; [ flokli matthewcroughan ];
     mainProgram = "mycelium";
   };
 }
diff --git a/nixpkgs/pkgs/by-name/my/mystmd/package.nix b/nixpkgs/pkgs/by-name/my/mystmd/package.nix
index b37fb95b5f14..dbd213453ce6 100644
--- a/nixpkgs/pkgs/by-name/my/mystmd/package.nix
+++ b/nixpkgs/pkgs/by-name/my/mystmd/package.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "mystmd";
-  version = "1.1.45";
+  version = "1.1.47";
 
   src = fetchFromGitHub {
     owner = "executablebooks";
     repo = "mystmd";
     rev = "mystmd@${version}";
-    hash = "sha256-qHlgAc1ddSVevH/82QCVXjIlht/RMcypTUcY+A/gRRg=";
+    hash = "sha256-gF3IGkdMM4pbtHOVnhk35nxPBLqUSc/IzrXvg+duQa4=";
   };
 
-  npmDepsHash = "sha256-yEeATMpSEr20MJdzq8HWSSjRBd+rHEq2oMVOnKymWhY=";
+  npmDepsHash = "sha256-63QS+vnIwkdMES2UrWvHeytWp5NuEf5uKpHA0m1XTHU=";
 
   dontNpmInstall = true;
 
diff --git a/nixpkgs/pkgs/by-name/n2/n2/package.nix b/nixpkgs/pkgs/by-name/n2/n2/package.nix
index dd35f134d8a1..4e88285c3e0f 100644
--- a/nixpkgs/pkgs/by-name/n2/n2/package.nix
+++ b/nixpkgs/pkgs/by-name/n2/n2/package.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage {
   meta = with lib; {
     homepage = "https://github.com/evmar/n2";
     description = "A ninja compatible build system";
+    mainProgram = "n2";
     license = licenses.asl20;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/by-name/na/namespace-cli/package.nix b/nixpkgs/pkgs/by-name/na/namespace-cli/package.nix
index 008f6e7a470c..446cadd65a5c 100644
--- a/nixpkgs/pkgs/by-name/na/namespace-cli/package.nix
+++ b/nixpkgs/pkgs/by-name/na/namespace-cli/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "namespace-cli";
-  version = "0.0.346";
+  version = "0.0.351";
 
   src = fetchFromGitHub {
     owner = "namespacelabs";
     repo = "foundation";
     rev = "v${version}";
-    hash = "sha256-lxzRvgB8FL85gMEQ579kG8c9jHeLkMg8KFz6iXyjMP4=";
+    hash = "sha256-DN/YHPb2/bPzE/EgkuCN0hat8UnwV+6fpay7t4Utlv8=";
   };
 
   vendorHash = "sha256-a/e+xPOD9BDSlKknmfcX2tTMyIUrzKxqtUpFXcFIDSE=";
diff --git a/nixpkgs/pkgs/by-name/na/narsil/package.nix b/nixpkgs/pkgs/by-name/na/narsil/package.nix
index ac00cf482055..9e6d3ba1dc02 100644
--- a/nixpkgs/pkgs/by-name/na/narsil/package.nix
+++ b/nixpkgs/pkgs/by-name/na/narsil/package.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/NickMcConnell/NarSil/";
     description = "Unofficial rewrite of Sil, a roguelike influenced by Angband";
+    mainProgram = "narsil";
     longDescription = ''
       NarSil attempts to be an almost-faithful recreation of Sil 1.3.0,
       but based on the codebase of modern Angband.
diff --git a/nixpkgs/pkgs/by-name/na/nawk/package.nix b/nixpkgs/pkgs/by-name/na/nawk/package.nix
index 0e0b84784c99..2ad1e2c9c3cd 100644
--- a/nixpkgs/pkgs/by-name/na/nawk/package.nix
+++ b/nixpkgs/pkgs/by-name/na/nawk/package.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "nawk";
-  version = "20230911";
+  version = "20240311";
 
   src = fetchFromGitHub {
     owner = "onetrueawk";
     repo = "awk";
-    rev = "2ndEdition";
-    hash = "sha256-9SxeYsTFrsJ+Cg43QjQihi2Ij0qdJvTnyGGhUHJHjuU=";
+    rev = finalAttrs.version;
+    hash = "sha256-4iAQR8djhhp5Yn4H1IdzotQLY0d/Gz/vNQPfAUNQV0A=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/nixpkgs/pkgs/by-name/nb/nbtscan/package.nix b/nixpkgs/pkgs/by-name/nb/nbtscan/package.nix
index 27194abcf5ce..9d9e0b3afbe6 100644
--- a/nixpkgs/pkgs/by-name/nb/nbtscan/package.nix
+++ b/nixpkgs/pkgs/by-name/nb/nbtscan/package.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Scan networks searching for NetBIOS information";
+    mainProgram = "nbtscan";
     homepage = "https://github.com/resurrecting-open-source-projects/nbtscan";
     maintainers = with maintainers; [ d3vil0p3r ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/by-name/nc/nc4nix/package.nix b/nixpkgs/pkgs/by-name/nc/nc4nix/package.nix
index 4593e82f24ae..4269d235ea26 100644
--- a/nixpkgs/pkgs/by-name/nc/nc4nix/package.nix
+++ b/nixpkgs/pkgs/by-name/nc/nc4nix/package.nix
@@ -18,6 +18,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "Packaging helper for Nextcloud apps";
+    mainProgram = "nc4nix";
     homepage = "https://github.com/helsinki-systems/nc4nix";
     license = licenses.mit;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/by-name/nd/ndstrim/package.nix b/nixpkgs/pkgs/by-name/nd/ndstrim/package.nix
new file mode 100644
index 000000000000..403bd831a76b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/nd/ndstrim/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, fetchFromGitHub
+, fetchpatch
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ndstrim";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "Nemris";
+    repo = "ndstrim";
+    rev = "v${version}";
+    hash = "sha256-KgtejBbFg6+klc8OpCs1CIb+7uVPCtP0/EM671vxauk=";
+  };
+
+  patches = [
+    # https://github.com/Nemris/ndstrim/pull/1
+    (fetchpatch {
+      name = "update-cargo-lock.patch";
+      url = "https://github.com/Nemris/ndstrim/commit/8147bb31a8fb5765f33562957a61cb6ddbe65513.patch";
+      hash = "sha256-HsCc5un9dg0gRkRjwxtjms0cugqWhcTthGfcF50EgYA=";
+    })
+  ];
+
+  cargoHash = "sha256-k5SlsIWHEZaYwk5cmLb1QMs3lk0VGGwiGd1TSQJC3Ss=";
+
+  # TODO: remove this after upstream merge above patch.
+  # Without the workaround below the build results in the following error:
+  # Validating consistency between /build/source/Cargo.lock and /build/ndstrim-0.2.1-vendor.tar.gz/Cargo.lock
+  # <hash>
+  # < version = "0.2.1"
+  # ---
+  # > version = "0.1.0"
+  #
+  # ERROR: cargoHash or cargoSha256 is out of date
+  postPatch = ''
+    cargoSetupPostPatchHook() { true; }
+  '';
+
+  meta = with lib; {
+    description = "Trim the excess padding found in Nintendo DS(i) ROMs";
+    homepage = "https://github.com/Nemris/ndstrim";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ thiagokokada ];
+    mainProgram = "ndstrim";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ne/netclient/package.nix b/nixpkgs/pkgs/by-name/ne/netclient/package.nix
index 2a914d03ca8e..dc00b6856cab 100644
--- a/nixpkgs/pkgs/by-name/ne/netclient/package.nix
+++ b/nixpkgs/pkgs/by-name/ne/netclient/package.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Automated WireGuard® Management Client";
+    mainProgram = "netclient";
     homepage = "https://netmaker.io";
     changelog = "https://github.com/gravitl/netclient/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock b/nixpkgs/pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock
index 4049079e10a9..8bf817242459 100644
--- a/nixpkgs/pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/ne/netease-cloud-music-gtk/Cargo.lock
@@ -33,10 +33,58 @@ dependencies = [
 ]
 
 [[package]]
+name = "anstream"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "anyhow"
-version = "1.0.79"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
 
 [[package]]
 name = "async-broadcast"
@@ -61,13 +109,13 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "2.1.1"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
 dependencies = [
  "concurrent-queue",
- "event-listener 4.0.3",
- "event-listener-strategy",
+ "event-listener 5.2.0",
+ "event-listener-strategy 0.5.0",
  "futures-core",
  "pin-project-lite",
 ]
@@ -114,15 +162,15 @@ dependencies = [
  "polling 2.8.0",
  "rustix 0.37.27",
  "slab",
- "socket2",
+ "socket2 0.4.10",
  "waker-fn",
 ]
 
 [[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",
@@ -130,7 +178,7 @@ dependencies = [
  "futures-io",
  "futures-lite 2.2.0",
  "parking",
- "polling 3.4.0",
+ "polling 3.5.0",
  "rustix 0.38.31",
  "slab",
  "tracing",
@@ -153,7 +201,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b"
 dependencies = [
  "event-listener 4.0.3",
- "event-listener-strategy",
+ "event-listener-strategy 0.4.0",
  "pin-project-lite",
 ]
 
@@ -182,7 +230,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -191,7 +239,7 @@ 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",
@@ -217,7 +265,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -240,9 +288,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "base64"
-version = "0.21.7"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
 
 [[package]]
 name = "bitflags"
@@ -277,7 +325,7 @@ version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
- "async-channel 2.1.1",
+ "async-channel 2.2.0",
  "async-lock 3.3.0",
  "async-task",
  "fastrand 2.0.1",
@@ -289,15 +337,15 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.2"
+version = "1.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea31d69bda4949c1c1562c1e6f042a1caefac98cdc8a298260a2ff41c1e2d42b"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
 
 [[package]]
 name = "byteorder"
@@ -313,23 +361,22 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "cairo-rs"
-version = "0.18.5"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2"
+checksum = "2650f66005301bd33cc486dec076e1293c4cecf768bc7ba9bf5d2b1be339b99c"
 dependencies = [
  "bitflags 2.4.2",
  "cairo-sys-rs",
  "glib",
  "libc",
- "once_cell",
  "thiserror",
 ]
 
 [[package]]
 name = "cairo-sys-rs"
-version = "0.18.2"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
+checksum = "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64"
 dependencies = [
  "glib-sys",
  "libc",
@@ -344,18 +391,15 @@ checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 
 [[package]]
 name = "cfg-expr"
-version = "0.15.6"
+version = "0.15.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6100bc57b6209840798d95cb2775684849d332f7bd788db2a8c8caf7ef82a41a"
+checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -369,16 +413,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.33"
+version = "0.4.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
  "wasm-bindgen",
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -388,6 +432,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
 name = "concurrent-queue"
 version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -398,9 +448,9 @@ dependencies = [
 
 [[package]]
 name = "cookie"
-version = "0.17.0"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24"
+checksum = "3cd91cf61412820176e137621345ee43b3f4423e589e7ae4e50d601d93e35ef8"
 dependencies = [
  "percent-encoding",
  "time",
@@ -409,12 +459,12 @@ dependencies = [
 
 [[package]]
 name = "cookie_store"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "387461abbc748185c3a6e1673d826918b450b87ff22639429c694619a83b6cf6"
+checksum = "4934e6b7e8419148b6ef56950d277af8561060b56afd59e2aadf98b59fce6baa"
 dependencies = [
  "cookie",
- "idna 0.3.0",
+ "idna 0.5.0",
  "log",
  "publicsuffix",
  "serde",
@@ -441,9 +491,9 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
@@ -466,24 +516,24 @@ dependencies = [
 
 [[package]]
 name = "curl"
-version = "0.4.44"
+version = "0.4.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22"
+checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6"
 dependencies = [
  "curl-sys",
  "libc",
  "openssl-probe",
  "openssl-sys",
  "schannel",
- "socket2",
- "winapi",
+ "socket2 0.5.6",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "curl-sys"
-version = "0.4.71+curl-8.6.0"
+version = "0.4.72+curl-8.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7b12a7ab780395666cb576203dc3ed6e01513754939a600b85196ccf5356bc5"
+checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea"
 dependencies = [
  "cc",
  "libc",
@@ -492,7 +542,7 @@ dependencies = [
  "openssl-sys",
  "pkg-config",
  "vcpkg",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -527,9 +577,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "encoding_rs"
@@ -542,9 +592,9 @@ dependencies = [
 
 [[package]]
 name = "enumflags2"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
 dependencies = [
  "enumflags2_derive",
  "serde",
@@ -552,26 +602,36 @@ dependencies = [
 
 [[package]]
 name = "enumflags2_derive"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "env_filter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+dependencies = [
+ "log",
+ "regex",
 ]
 
 [[package]]
 name = "env_logger"
-version = "0.10.2"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
 dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
  "humantime",
- "is-terminal",
  "log",
- "regex",
- "termcolor",
 ]
 
 [[package]]
@@ -619,6 +679,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "event-listener"
+version = "5.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "event-listener-strategy"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -629,6 +700,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "event-listener-strategy"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+dependencies = [
+ "event-listener 5.2.0",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "fastrand"
 version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -770,7 +851,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -804,22 +885,21 @@ dependencies = [
 
 [[package]]
 name = "gdk-pixbuf"
-version = "0.18.5"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec"
+checksum = "f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92"
 dependencies = [
  "gdk-pixbuf-sys",
  "gio",
  "glib",
  "libc",
- "once_cell",
 ]
 
 [[package]]
 name = "gdk-pixbuf-sys"
-version = "0.18.0"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
+checksum = "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96"
 dependencies = [
  "gio-sys",
  "glib-sys",
@@ -830,9 +910,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4"
-version = "0.7.3"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7edb019ad581f8ecf8ea8e4baa6df7c483a95b5a59be3140be6a9c3b0c632af6"
+checksum = "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b"
 dependencies = [
  "cairo-rs",
  "gdk-pixbuf",
@@ -845,9 +925,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4-sys"
-version = "0.7.2"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbab43f332a3cf1df9974da690b5bb0e26720ed09a228178ce52175372dcfef0"
+checksum = "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -903,9 +983,9 @@ dependencies = [
 
 [[package]]
 name = "gio"
-version = "0.18.4"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
+checksum = "2eae10b27b6dd27e22ed0d812c6387deba295e6fc004a8b379e459b663b05a02"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -914,7 +994,6 @@ dependencies = [
  "gio-sys",
  "glib",
  "libc",
- "once_cell",
  "pin-project-lite",
  "smallvec",
  "thiserror",
@@ -922,22 +1001,22 @@ dependencies = [
 
 [[package]]
 name = "gio-sys"
-version = "0.18.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
+checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4"
 dependencies = [
  "glib-sys",
  "gobject-sys",
  "libc",
  "system-deps",
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "glib"
-version = "0.18.5"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5"
+checksum = "ab9e86540b5d8402e905ad4ce7d6aa544092131ab564f3102175af176b90a053"
 dependencies = [
  "bitflags 2.4.2",
  "futures-channel",
@@ -951,30 +1030,28 @@ dependencies = [
  "gobject-sys",
  "libc",
  "memchr",
- "once_cell",
  "smallvec",
  "thiserror",
 ]
 
 [[package]]
 name = "glib-macros"
-version = "0.18.5"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc"
+checksum = "0f5897ca27a83e4cdc7b4666850bade0a2e73e17689aabafcc9acddad9d823b8"
 dependencies = [
  "heck",
- "proc-macro-crate 2.0.2",
- "proc-macro-error",
+ "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "glib-sys"
-version = "0.18.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
+checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4"
 dependencies = [
  "libc",
  "system-deps",
@@ -982,9 +1059,9 @@ dependencies = [
 
 [[package]]
 name = "gobject-sys"
-version = "0.18.0"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
+checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979"
 dependencies = [
  "glib-sys",
  "libc",
@@ -993,9 +1070,9 @@ dependencies = [
 
 [[package]]
 name = "graphene-rs"
-version = "0.18.1"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401"
+checksum = "99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91"
 dependencies = [
  "glib",
  "graphene-sys",
@@ -1004,9 +1081,9 @@ dependencies = [
 
 [[package]]
 name = "graphene-sys"
-version = "0.18.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc4144cee8fc8788f2a9b73dc5f1d4e1189d1f95305c4cb7bd9c1af1cfa31f59"
+checksum = "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0"
 dependencies = [
  "glib-sys",
  "libc",
@@ -1016,9 +1093,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4"
-version = "0.7.3"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d958e351d2f210309b32d081c832d7de0aca0b077aa10d88336c6379bd01f7e"
+checksum = "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e"
 dependencies = [
  "cairo-rs",
  "gdk4",
@@ -1031,9 +1108,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4-sys"
-version = "0.7.3"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12bd9e3effea989f020e8f1ff3fa3b8c63ba93d43b899c11a118868853a56d55"
+checksum = "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738"
 dependencies = [
  "cairo-sys-rs",
  "gdk4-sys",
@@ -1047,9 +1124,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer"
-version = "0.21.3"
+version = "0.22.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de95703f4c8e79f4f4e42279cf1ab0e5a46b7ece4a9dfcd16424164af7be9055"
+checksum = "48a5e10c539f8b594c50f6cd1bd1cd07785e06d701a077bff397ad211bc92e88"
 dependencies = [
  "cfg-if",
  "futures-channel",
@@ -1062,19 +1139,19 @@ dependencies = [
  "muldiv",
  "num-integer",
  "num-rational",
+ "once_cell",
  "option-operations",
  "paste",
  "pin-project-lite",
- "pretty-hex",
  "smallvec",
  "thiserror",
 ]
 
 [[package]]
 name = "gstreamer-base"
-version = "0.21.2"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb150b6904a49052237fede7cc2e6479df6ced5043d95e6af8134bc141a3167f"
+checksum = "514c71195b53c7eced4842b66ca9149833e41cf6a1d949e45e2ca4a4fa929850"
 dependencies = [
  "atomic_refcell",
  "cfg-if",
@@ -1086,9 +1163,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-base-sys"
-version = "0.21.1"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4ca701f9078fe115b29b24c80910b577f9cb5b039182f050dbadf5933594b64"
+checksum = "286591e0f85bbda1adf9bab6f21d015acd9ca0a4d4acb61da65e3d0487e23c4e"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1099,9 +1176,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-play"
-version = "0.21.2"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad2efa4c3f92fa5d5e51e95c83f3b847c9ad16e3498a65beaf721d324187f04a"
+checksum = "04cd4315d97f8f38a6a6fdaad27d51cc67fd132785816091ad9985e197d2c052"
 dependencies = [
  "glib",
  "gstreamer",
@@ -1112,9 +1189,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-play-sys"
-version = "0.21.0"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cc41f9524b98e49da474696abd8fc026b0accfea7fd754e5be09107cb96038f"
+checksum = "19def7b12d3a53c520ad661b8f4501ae04158627e4a9fc49cc30c4ea04522cbf"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1126,9 +1203,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-sys"
-version = "0.21.2"
+version = "0.22.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "564cda782b3e6eed1b81cb4798a06794db56440fb05b422505be689f34ce3bc4"
+checksum = "d5ddf526b3bf90ea627224c804f00b8bcb0452e3b447978b4d5092f8e8ff5918"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1138,9 +1215,9 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-video"
-version = "0.21.2"
+version = "0.22.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e85b2a4d1d3b7a98ae03806c3ed5c2db89d6b37a5f138780b48de015d68715e5"
+checksum = "5ab3f4045ddb92bf2b469f5db8825d4f5eb46e4beff661fc97f50bb4e2b2c626"
 dependencies = [
  "cfg-if",
  "futures-channel",
@@ -1149,14 +1226,15 @@ dependencies = [
  "gstreamer-base",
  "gstreamer-video-sys",
  "libc",
+ "once_cell",
  "thiserror",
 ]
 
 [[package]]
 name = "gstreamer-video-sys"
-version = "0.21.2"
+version = "0.22.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0302318d98e6b054501e485b6bb4ee20225823218f4a8660c182f115a33b16ee"
+checksum = "c1ea7996ba44fbbf563aeeda96e24259efc9f06b407854d837ee58e260d7ba78"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1168,9 +1246,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4"
-version = "0.7.3"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aeb51aa3e9728575a053e1f43543cd9992ac2477e1b186ad824fd4adfb70842"
+checksum = "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83"
 dependencies = [
  "cairo-rs",
  "field-offset",
@@ -1189,12 +1267,12 @@ dependencies = [
 
 [[package]]
 name = "gtk4-macros"
-version = "0.7.2"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f"
+checksum = "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567"
 dependencies = [
  "anyhow",
- "proc-macro-crate 1.3.1",
+ "proc-macro-crate 3.1.0",
  "proc-macro-error",
  "proc-macro2",
  "quote",
@@ -1203,9 +1281,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4-sys"
-version = "0.7.3"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54d8c4aa23638ce9faa2caf7e2a27d4a1295af2155c8e8d28c4d4eeca7a65eb8"
+checksum = "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -1234,9 +1312,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.5"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -1255,9 +1333,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
 dependencies = [
  "bytes",
  "fnv",
@@ -1321,9 +1399,9 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.8"
+version = "0.24.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
@@ -1334,9 +1412,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.2"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -1363,17 +1441,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "is-terminal"
-version = "0.4.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
-dependencies = [
- "hermit-abi",
- "rustix 0.38.31",
- "windows-sys 0.52.0",
-]
-
-[[package]]
 name = "isahc"
 version = "1.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1418,9 +1485,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[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",
 ]
@@ -1433,9 +1500,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libadwaita"
-version = "0.5.3"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fe7e70c06507ed10a16cda707f358fbe60fe0dc237498f78c686ade92fd979c"
+checksum = "91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9"
 dependencies = [
  "gdk-pixbuf",
  "gdk4",
@@ -1449,9 +1516,9 @@ dependencies = [
 
 [[package]]
 name = "libadwaita-sys"
-version = "0.5.3"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e10aaa38de1d53374f90deeb4535209adc40cc5dba37f9704724169bceec69a"
+checksum = "23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8"
 dependencies = [
  "gdk4-sys",
  "gio-sys",
@@ -1518,9 +1585,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 = "malloc_buf"
@@ -1573,9 +1640,9 @@ dependencies = [
 
 [[package]]
 name = "mpris-server"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf2cdb2dfbe7063acc7fccb9e28d6dc0bc87fec7b343b6d09771a37970e98233"
+checksum = "ca665e9b0f892e42d7ad9ee6076adaf5de762497640816c67fb6406aca946d40"
 dependencies = [
  "async-trait",
  "futures-channel",
@@ -1592,8 +1659,8 @@ checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0"
 
 [[package]]
 name = "netease-cloud-music-api"
-version = "1.3.0"
-source = "git+https://github.com/gmg137/netease-cloud-music-api.git?tag=1.3.0#ac6b43d8dcdf2454b4538ac508ecf1df043896ad"
+version = "1.3.1"
+source = "git+https://gitee.com/gmg137/netease-cloud-music-api.git?tag=1.3.1#fa13ca1fb89a97fff0bab58493ec353e4200ecd2"
 dependencies = [
  "anyhow",
  "base64",
@@ -1610,9 +1677,10 @@ dependencies = [
 
 [[package]]
 name = "netease-cloud-music-gtk4"
-version = "2.3.0"
+version = "2.3.1"
 dependencies = [
  "anyhow",
+ "async-channel 2.2.0",
  "chrono",
  "cookie_store",
  "env_logger",
@@ -1708,15 +1776,15 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "openssl"
-version = "0.10.63"
+version = "0.10.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
 dependencies = [
  "bitflags 2.4.2",
  "cfg-if",
@@ -1735,7 +1803,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1746,9 +1814,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.99"
+version = "0.9.101"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
+checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
 dependencies = [
  "cc",
  "libc",
@@ -1777,22 +1845,21 @@ dependencies = [
 
 [[package]]
 name = "pango"
-version = "0.18.3"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
+checksum = "7809e8af4df8d024a066106b72ca6bc7253a484ae3867041a96103ef8a13188d"
 dependencies = [
  "gio",
  "glib",
  "libc",
- "once_cell",
  "pango-sys",
 ]
 
 [[package]]
 name = "pango-sys"
-version = "0.18.0"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
+checksum = "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -1820,22 +1887,22 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pin-project"
-version = "1.1.4"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.4"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1863,15 +1930,15 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "png"
-version = "0.17.11"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -1898,9 +1965,9 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.4.0"
+version = "3.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14"
+checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
@@ -1923,12 +1990,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
-name = "pretty-hex"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbc83ee4a840062f368f9096d80077a9841ec117e17e7f700df81958f1451254"
-
-[[package]]
 name = "proc-macro-crate"
 version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1940,12 +2001,11 @@ dependencies = [
 
 [[package]]
 name = "proc-macro-crate"
-version = "2.0.2"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
 dependencies = [
- "toml_datetime",
- "toml_edit 0.20.2",
+ "toml_edit 0.21.1",
 ]
 
 [[package]]
@@ -2067,9 +2127,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",
@@ -2120,9 +2180,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "schannel"
@@ -2135,35 +2195,35 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.21"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 
 [[package]]
 name = "serde"
-version = "1.0.196"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.196"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.113"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -2178,7 +2238,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2253,6 +2313,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "socket2"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "static_assertions"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2271,9 +2341,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2295,9 +2365,9 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.13"
+version = "0.12.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "temp-dir"
@@ -2307,9 +2377,9 @@ checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6"
 
 [[package]]
 name = "tempfile"
-version = "3.10.0"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand 2.0.1",
@@ -2318,32 +2388,23 @@ dependencies = [
 ]
 
 [[package]]
-name = "termcolor"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
 name = "thiserror"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2394,21 +2455,21 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "toml"
-version = "0.8.2"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d"
+checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.20.2",
+ "toml_edit 0.22.6",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
 ]
@@ -2421,20 +2482,31 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
  "indexmap",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.40",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.20.2"
+version = "0.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.5",
 ]
 
 [[package]]
@@ -2457,7 +2529,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2510,9 +2582,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
@@ -2541,6 +2613,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3"
 
 [[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
 name = "vcpkg"
 version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2572,9 +2650,9 @@ 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",
  "wasm-bindgen-macro",
@@ -2582,24 +2660,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
  "wasm-bindgen-shared",
 ]
 
 [[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",
@@ -2607,22 +2685,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.48",
+ "syn 2.0.52",
  "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 = "winapi"
@@ -2641,15 +2719,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
-name = "winapi-util"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "winapi-x86_64-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2661,7 +2730,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -2679,7 +2748,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -2699,17 +2768,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -2720,9 +2789,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -2732,9 +2801,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -2744,9 +2813,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -2756,9 +2825,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -2768,9 +2837,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -2780,9 +2849,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -2792,15 +2861,24 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
 name = "winnow"
-version = "0.5.39"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
@@ -2817,9 +2895,9 @@ dependencies = [
 
 [[package]]
 name = "zbus"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c45d06ae3b0f9ba1fb2671268b975557d8f5a84bb5ec6e43964f87e763d8bca8"
+checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6"
 dependencies = [
  "async-broadcast",
  "async-executor",
@@ -2858,9 +2936,9 @@ dependencies = [
 
 [[package]]
 name = "zbus_macros"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4a1ba45ed0ad344b85a2bb5a1fe9830aed23d67812ea39a586e7d0136439c7d"
+checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5"
 dependencies = [
  "proc-macro-crate 1.3.1",
  "proc-macro2",
@@ -2872,9 +2950,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",
@@ -2883,9 +2961,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c"
+checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db"
 dependencies = [
  "byteorder",
  "enumflags2",
@@ -2897,9 +2975,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant_derive"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
+checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9"
 dependencies = [
  "proc-macro-crate 1.3.1",
  "proc-macro2",
diff --git a/nixpkgs/pkgs/by-name/ne/netease-cloud-music-gtk/package.nix b/nixpkgs/pkgs/by-name/ne/netease-cloud-music-gtk/package.nix
index 966e13600eca..c8dc77a6c274 100644
--- a/nixpkgs/pkgs/by-name/ne/netease-cloud-music-gtk/package.nix
+++ b/nixpkgs/pkgs/by-name/ne/netease-cloud-music-gtk/package.nix
@@ -18,24 +18,23 @@
 , libadwaita
 , glib-networking
 , gst_all_1
-, libsoup_3
 }:
 
 stdenv.mkDerivation rec {
   pname = "netease-cloud-music-gtk";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "gmg137";
-    repo = pname;
+    repo = "netease-cloud-music-gtk";
     rev = version;
-    hash = "sha256-/HvP82QqN+dWb5XJelsayeo4sz/pVvCKQ9RKQJv7PAI=";
+    hash = "sha256-75zovq7Q370L+bRczTCCC34G2w8xeMMUK5EUTfKAc+w=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "netease-cloud-music-api-1.3.0" = "sha256-SzMu+klhcLi+jDYc9RZUWrBph5TjfddV0STHaijuQ8Q=";
+      "netease-cloud-music-api-1.3.1" = "sha256-ZIc5zj9ZtLBYlZqBR7iUW+KmD71M+OYDiv0dkZrpFos=";
     };
   };
 
@@ -71,12 +70,6 @@ stdenv.mkDerivation rec {
     gst-plugins-ugly
   ]);
 
-  # FIXME: gst-plugins-good missing libsoup breaks streaming
-  # (https://github.com/nixos/nixpkgs/issues/271960)
-  preFixup = ''
-    gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libsoup_3 ]}")
-  '';
-
   meta = with lib; {
     description = "A Rust + GTK based netease cloud music player";
     homepage = "https://github.com/gmg137/netease-cloud-music-gtk";
diff --git a/nixpkgs/pkgs/by-name/ne/netproxrc/package.nix b/nixpkgs/pkgs/by-name/ne/netproxrc/package.nix
index 4f3de9cc073f..93f965e40c6a 100644
--- a/nixpkgs/pkgs/by-name/ne/netproxrc/package.nix
+++ b/nixpkgs/pkgs/by-name/ne/netproxrc/package.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A HTTP proxy injecting credentials from a .netrc file";
+    mainProgram = "netproxrc";
     homepage = "https://github.com/timbertson/netproxrc";
     license = licenses.mit;
     maintainers = with maintainers; [ timbertson ];
diff --git a/nixpkgs/pkgs/by-name/ne/netscanner/package.nix b/nixpkgs/pkgs/by-name/ne/netscanner/package.nix
new file mode 100644
index 000000000000..1e2beb336ad3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ne/netscanner/package.nix
@@ -0,0 +1,38 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, makeWrapper
+, iw
+}:
+let
+  pname = "netscanner";
+  version = "0.4.1";
+in
+rustPlatform.buildRustPackage {
+  inherit pname version;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  src = fetchFromGitHub {
+    owner = "Chleba";
+    repo = "netscanner";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-E9WQpWqXWIhY1cq/5hqBbNBffe/nFLBelnFPW0tS5Ng=";
+  };
+
+  cargoHash = "sha256-G2ePiVmHyZ7a4gn7ZGg5y4lhfbWoWGh4+fG9pMHZueg=";
+
+  postFixup = ''
+    wrapProgram $out/bin/netscanner \
+      --prefix PATH : "${lib.makeBinPath [iw]}"
+  '';
+
+  meta = {
+    description = "Network scanner with features like WiFi scanning, packetdump and more";
+    homepage = "https://github.com/Chleba/netscanner";
+    changelog = "https://github.com/Chleba/netscanner/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ NotAShelf ];
+    mainProgram = "netscanner";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/nh/nh/package.nix b/nixpkgs/pkgs/by-name/nh/nh/package.nix
index 028f8d057bea..83cc94ae2ff4 100644
--- a/nixpkgs/pkgs/by-name/nh/nh/package.nix
+++ b/nixpkgs/pkgs/by-name/nh/nh/package.nix
@@ -7,15 +7,11 @@
 , fetchFromGitHub
 , nix-update-script
 , nvd
-, use-nom ? true
-, nix-output-monitor ? null
+, nix-output-monitor
 }:
-
-assert use-nom -> nix-output-monitor != null;
-
 let
-  version = "3.5.3";
-  runtimeDeps = [ nvd ] ++ lib.optionals use-nom [ nix-output-monitor ];
+  version = "3.5.7";
+  runtimeDeps = [ nvd nix-output-monitor ];
 in
 rustPlatform.buildRustPackage {
   inherit version;
@@ -25,7 +21,7 @@ rustPlatform.buildRustPackage {
     owner = "viperML";
     repo = "nh";
     rev = "refs/tags/v${version}";
-    hash = "sha256-37BcFt67NZj4YQ9kqm69O+OJkgt+TXWTu53bvJvOtn8=";
+    hash = "sha256-gpvOzL+7PP22juK6yI01EiGUEVVo4lHGXCs5OmCAX+s=";
   };
 
   strictDeps = true;
@@ -48,11 +44,10 @@ rustPlatform.buildRustPackage {
 
   postFixup = ''
     wrapProgram $out/bin/nh \
-      --prefix PATH : ${lib.makeBinPath runtimeDeps} \
-      ${lib.optionalString use-nom "--set-default NH_NOM 1"}
+      --prefix PATH : ${lib.makeBinPath runtimeDeps}
   '';
 
-  cargoHash = "sha256-uRibycYznqzdf8QVX6bHfq3J3Imu8KnWCL0ZS1w4KFk=";
+  cargoHash = "sha256-DcYvovD2Qx4ybpV7YckwYvy8hsoq50YGZI8fl2BXFLI=";
 
   passthru.updateScript = nix-update-script { };
 
diff --git a/nixpkgs/pkgs/by-name/ni/nickel/Cargo.lock b/nixpkgs/pkgs/by-name/ni/nickel/Cargo.lock
index 5c08dbc00fda..69c9bddd619e 100644
--- a/nixpkgs/pkgs/by-name/ni/nickel/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/ni/nickel/Cargo.lock
@@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "ahash"
-version = "0.8.7"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if",
  "getrandom",
@@ -56,9 +56,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.11"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -70,9 +70,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.4"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
@@ -104,9 +104,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.79"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
 
 [[package]]
 name = "arrayvec"
@@ -131,9 +131,9 @@ dependencies = [
 
 [[package]]
 name = "assert_cmd"
-version = "2.0.13"
+version = "2.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00ad3f3a942eee60335ab4342358c161ee296829e0d16ff42fc1d6cb07815467"
+checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8"
 dependencies = [
  "anstyle",
  "bstr",
@@ -151,6 +151,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
 
 [[package]]
+name = "async-stream"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
+dependencies = [
+ "async-stream-impl",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-stream-impl"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
+dependencies = [
+ "proc-macro2 1.0.78",
+ "quote 1.0.35",
+ "syn 2.0.52",
+]
+
+[[package]]
 name = "atty"
 version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -184,12 +206,6 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "base64"
 version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
@@ -247,9 +263,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.9.0"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
 dependencies = [
  "memchr",
  "regex-automata",
@@ -258,15 +274,21 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.1"
+version = "1.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed2490600f404f2b94c167e31d3ed1d5f3c225a0f3b80230053b3e0b7b962bd9"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "cast"
@@ -276,12 +298,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 
 [[package]]
 name = "cfg-if"
@@ -330,9 +349,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.18"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
+checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -340,36 +359,36 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.18"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
  "anstream",
  "anstyle",
- "clap_lex 0.6.0",
- "strsim",
+ "clap_lex 0.7.0",
+ "strsim 0.11.0",
  "terminal_size",
 ]
 
 [[package]]
 name = "clap_complete"
-version = "4.4.9"
+version = "4.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df631ae429f6613fcd3a7c1adbdb65f637271e561b03680adaa6573015dfb106"
+checksum = "885e4d7d5af40bfb99ae6f9433e292feac98d452dcb3ec3d25dfe7552b77da8c"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.2",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.4.7"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
 dependencies = [
  "heck",
  "proc-macro2 1.0.78",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -383,9 +402,9 @@ dependencies = [
 
 [[package]]
 name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "clipboard-win"
@@ -409,17 +428,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "codespan-lsp"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc4159b76af02757139baf42c0c971c6dc155330999fbfd8eddb29b97fb2db68"
-dependencies = [
- "codespan-reporting",
- "lsp-types",
- "url",
-]
-
-[[package]]
 name = "codespan-reporting"
 version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -442,7 +450,7 @@ version = "0.17.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0c5a805f31fb098b1611170028501077ceb8c9e78f5345530f4fdefae9b61119"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.2",
  "entities",
  "memchr",
  "once_cell",
@@ -502,9 +510,9 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
@@ -560,9 +568,9 @@ dependencies = [
 
 [[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",
 ]
@@ -665,9 +673,9 @@ dependencies = [
 
 [[package]]
 name = "cxx"
-version = "1.0.115"
+version = "1.0.119"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de00f15a6fa069c99b88c5c78c4541d0e7899a33b86f7480e23df2431fce0bc"
+checksum = "635179be18797d7e10edb9cd06c859580237750c7351f39ed9b298bfc17544ad"
 dependencies = [
  "cc",
  "cxxbridge-flags",
@@ -677,9 +685,9 @@ dependencies = [
 
 [[package]]
 name = "cxx-build"
-version = "1.0.115"
+version = "1.0.119"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a71e1e631fa2f2f5f92e8b0d860a00c198c6771623a6cefcc863e3554f0d8d6"
+checksum = "9324397d262f63ef77eb795d900c0d682a34a43ac0932bec049ed73055d52f63"
 dependencies = [
  "cc",
  "codespan-reporting",
@@ -687,24 +695,24 @@ dependencies = [
  "proc-macro2 1.0.78",
  "quote 1.0.35",
  "scratch",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "cxxbridge-flags"
-version = "1.0.115"
+version = "1.0.119"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3fed61d56ba497c4efef9144dfdbaa25aa58f2f6b3a7cf441d4591c583745c"
+checksum = "a87ff7342ffaa54b7c61618e0ce2bbcf827eba6d55b923b83d82551acbbecfe5"
 
 [[package]]
 name = "cxxbridge-macro"
-version = "1.0.115"
+version = "1.0.119"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8908e380a8efd42150c017b0cfa31509fc49b6d47f7cb6b33e93ffb8f4e3661e"
+checksum = "70b5b86cf65fa0626d85720619d80b288013477a91a0389fa8bc716bf4903ad1"
 dependencies = [
  "proc-macro2 1.0.78",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -740,9 +748,9 @@ dependencies = [
 
 [[package]]
 name = "deunicode"
-version = "1.4.2"
+version = "1.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ae2a35373c5c74340b79ae6780b498b2b183915ec5dacf263aac5a099bf485a"
+checksum = "b6e854126756c496b8c81dec88f9a706b15b875c5849d4097a3854476b9fdf94"
 
 [[package]]
 name = "diff"
@@ -815,21 +823,9 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
-
-[[package]]
-name = "embed-doc-image"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af36f591236d9d822425cb6896595658fa558fcebf5ee8accac1d4b92c47166e"
-dependencies = [
- "base64 0.13.1",
- "proc-macro2 1.0.78",
- "quote 1.0.35",
- "syn 1.0.109",
-]
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "ena"
@@ -1023,7 +1019,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2 1.0.78",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1100,7 +1096,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0"
 dependencies = [
  "proc-macro2 1.0.78",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1111,9 +1107,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "half"
-version = "2.3.1"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
 dependencies = [
  "cfg-if",
  "crunchy",
@@ -1139,6 +1135,9 @@ name = "hashbrown"
 version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+dependencies = [
+ "ahash",
+]
 
 [[package]]
 name = "heck"
@@ -1157,9 +1156,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.4"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "humantime"
@@ -1190,9 +1189,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -1217,7 +1216,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "321f0f839cd44a4686e9504b0a62b4d69a50b62072144c71c68f5873c167b8d9"
 dependencies = [
  "ahash",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "is-terminal",
  "itoa",
  "log",
@@ -1230,9 +1229,9 @@ dependencies = [
 
 [[package]]
 name = "insta"
-version = "1.34.0"
+version = "1.36.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc"
+checksum = "0a7c22c4d34ef4788c351e971c52bfdfe7ea2766f8c5466bc175dd46e52ac22e"
 dependencies = [
  "console",
  "lazy_static",
@@ -1243,13 +1242,32 @@ dependencies = [
 ]
 
 [[package]]
+name = "ipc-channel"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ab3a34c91b7e84a72643bd75d1bac3afd241f78f9859fe0b5e5b2a6a75732c2"
+dependencies = [
+ "bincode",
+ "crossbeam-channel",
+ "fnv",
+ "lazy_static",
+ "libc",
+ "mio",
+ "rand",
+ "serde",
+ "tempfile",
+ "uuid",
+ "windows",
+]
+
+[[package]]
 name = "is-terminal"
-version = "0.4.10"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
- "hermit-abi 0.3.4",
- "rustix",
+ "hermit-abi 0.3.9",
+ "libc",
  "windows-sys 0.52.0",
 ]
 
@@ -1279,9 +1297,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "js-sys"
-version = "0.3.61"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1325,9 +1343,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.152"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "libm"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 
 [[package]]
 name = "libredox"
@@ -1382,9 +1406,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 = "logos"
@@ -1429,9 +1453,9 @@ dependencies = [
 
 [[package]]
 name = "lsp-server"
-version = "0.6.0"
+version = "0.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f70570c1c29cf6654029b8fe201a5507c153f0d85be6f234d471d756bc36775a"
+checksum = "248f65b78f6db5d8e1b1604b4098a28b43d21a8eb1deeca22b1c421b276c7095"
 dependencies = [
  "crossbeam-channel",
  "log",
@@ -1441,9 +1465,9 @@ dependencies = [
 
 [[package]]
 name = "lsp-types"
-version = "0.88.0"
+version = "0.95.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8e8e042772e4e10b3785822f63c82399d0dd233825de44d2596f7fa86e023e0"
+checksum = "158c1911354ef73e8fe42da6b10c0484cb65c7f1007f28022e847706c1ab6984"
 dependencies = [
  "bitflags 1.3.2",
  "serde",
@@ -1463,42 +1487,58 @@ dependencies = [
 
 [[package]]
 name = "malachite"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "220cb36c52aa6eff45559df497abe0e2a4c1209f92279a746a399f622d7b95c7"
+checksum = "53ff327de42075f680ba15c5cb3c417687eb7241ce2063a91d0186ce5c5e77ee"
 dependencies = [
  "malachite-base",
+ "malachite-float",
  "malachite-nz",
  "malachite-q",
 ]
 
 [[package]]
 name = "malachite-base"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6538136c5daf04126d6be4899f7fe4879b7f8de896dd1b4210fe6de5b94f2555"
+checksum = "e960ee0e7e1b8eec9229f5b20d6b191762574225144ea638eb961d065c97b55d"
 dependencies = [
+ "hashbrown 0.14.3",
  "itertools 0.11.0",
+ "libm",
  "ryu",
 ]
 
 [[package]]
+name = "malachite-float"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd21e0e005798917fb37c87ef9b0787e3ad490b378df987b78dfa44669b895fe"
+dependencies = [
+ "itertools 0.11.0",
+ "malachite-base",
+ "malachite-nz",
+ "malachite-q",
+ "serde",
+]
+
+[[package]]
 name = "malachite-nz"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f0b05577b7a3f09433106460b10304f97fc572f0baabf6640e6cb1e23f5fc52"
+checksum = "770aaf1a4d59a82ed3d8644eb66aff7492a6dd7476def275a922d04d77ca8e57"
 dependencies = [
- "embed-doc-image",
  "itertools 0.11.0",
+ "libm",
  "malachite-base",
  "serde",
 ]
 
 [[package]]
 name = "malachite-q"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1cfdb4016292e6acd832eaee261175f3af8bbee62afeefe4420ebce4c440cb5"
+checksum = "33a9dfca114f6b582595990ccfc287cace633aa95f890ade5b1fc099b7175d3b"
 dependencies = [
  "itertools 0.11.0",
  "malachite-base",
@@ -1559,7 +1599,7 @@ checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f"
 dependencies = [
  "proc-macro2 1.0.78",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1592,18 +1632,18 @@ dependencies = [
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
 ]
 
 [[package]]
 name = "mio"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "log",
@@ -1628,9 +1668,9 @@ dependencies = [
 
 [[package]]
 name = "nickel-lang-cli"
-version = "1.4.1"
+version = "1.5.0"
 dependencies = [
- "clap 4.4.18",
+ "clap 4.5.2",
  "clap_complete",
  "directories",
  "git-version",
@@ -1646,11 +1686,11 @@ dependencies = [
 
 [[package]]
 name = "nickel-lang-core"
-version = "0.5.0"
+version = "0.6.0"
 dependencies = [
  "ansi_term",
  "assert_matches",
- "clap 4.4.18",
+ "clap 4.5.2",
  "codespan",
  "codespan-reporting",
  "comrak",
@@ -1686,11 +1726,11 @@ dependencies = [
  "similar",
  "simple-counter",
  "strip-ansi-escapes",
- "strsim",
+ "strsim 0.10.0",
  "termimad",
  "test-generator",
  "toml",
- "topiary",
+ "topiary-core",
  "topiary-queries",
  "tree-sitter-nickel",
  "typed-arena",
@@ -1701,21 +1741,23 @@ dependencies = [
 
 [[package]]
 name = "nickel-lang-lsp"
-version = "1.4.1"
+version = "1.5.0"
 dependencies = [
  "anyhow",
  "assert_cmd",
  "assert_matches",
- "clap 4.4.18",
+ "bincode",
+ "clap 4.5.2",
  "codespan",
- "codespan-lsp",
  "codespan-reporting",
  "criterion",
+ "crossbeam",
  "csv",
  "derive_more",
  "env_logger",
  "glob",
  "insta",
+ "ipc-channel",
  "lalrpop",
  "lalrpop-util",
  "lazy_static",
@@ -1746,7 +1788,7 @@ dependencies = [
 
 [[package]]
 name = "nickel-wasm-repl"
-version = "0.5.0"
+version = "0.6.0"
 dependencies = [
  "nickel-lang-core",
 ]
@@ -1763,6 +1805,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
 name = "num-format"
 version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1774,9 +1822,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
 ]
@@ -1787,7 +1835,7 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.4",
+ "hermit-abi 0.3.9",
  "libc",
 ]
 
@@ -1894,7 +1942,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
 ]
 
 [[package]]
@@ -1920,9 +1968,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "plist"
@@ -1930,8 +1978,8 @@ version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
 dependencies = [
- "base64 0.21.7",
- "indexmap 2.1.0",
+ "base64",
+ "indexmap 2.2.5",
  "line-wrap",
  "quick-xml 0.31.0",
  "serde",
@@ -2001,6 +2049,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
 name = "precomputed-hash"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2085,7 +2139,7 @@ dependencies = [
 
 [[package]]
 name = "pyckel"
-version = "1.4.1"
+version = "1.5.0"
 dependencies = [
  "codespan-reporting",
  "nickel-lang-core",
@@ -2216,6 +2270,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
 name = "raw-cpuid"
 version = "10.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2226,9 +2310,9 @@ dependencies = [
 
 [[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",
@@ -2278,9 +2362,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",
@@ -2295,12 +2379,6 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
-
-[[package]]
-name = "regex-syntax"
 version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
@@ -2331,9 +2409,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.30"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
  "bitflags 2.4.2",
  "errno",
@@ -2384,9 +2462,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "safemem"
@@ -2417,15 +2495,15 @@ checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152"
 
 [[package]]
 name = "semver"
-version = "1.0.21"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 
 [[package]]
 name = "serde"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
@@ -2443,20 +2521,20 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2 1.0.78",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.111"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -2471,7 +2549,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2 1.0.78",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2485,11 +2563,11 @@ dependencies = [
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.30"
+version = "0.9.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38"
+checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "itoa",
  "ryu",
  "serde",
@@ -2574,9 +2652,9 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
 
 [[package]]
 name = "sketches-ddsketch"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68a406c1882ed7f29cd5e248c9848a80e7cb6ae0fea82346d2746f2f941c07e1"
+checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c"
 
 [[package]]
 name = "slab"
@@ -2650,6 +2728,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
 name = "symbolic-common"
 version = "10.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2696,9 +2780,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
  "proc-macro2 1.0.78",
  "quote 1.0.35",
@@ -2707,9 +2791,9 @@ dependencies = [
 
 [[package]]
 name = "syntect"
-version = "5.1.0"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91"
+checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1"
 dependencies = [
  "bincode",
  "bitflags 1.3.2",
@@ -2719,8 +2803,9 @@ dependencies = [
  "once_cell",
  "onig",
  "plist",
- "regex-syntax 0.7.5",
+ "regex-syntax 0.8.2",
  "serde",
+ "serde_derive",
  "serde_json",
  "thiserror",
  "walkdir",
@@ -2729,19 +2814,18 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.13"
+version = "0.12.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "tempfile"
-version = "3.9.0"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand",
- "redox_syscall",
  "rustix",
  "windows-sys 0.52.0",
 ]
@@ -2810,38 +2894,39 @@ dependencies = [
 
 [[package]]
 name = "textwrap"
-version = "0.16.0"
+version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
 
 [[package]]
 name = "thiserror"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2 1.0.78",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.31"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
  "deranged",
  "itoa",
+ "num-conv",
  "powerfmt",
  "serde",
  "time-core",
@@ -2856,10 +2941,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
@@ -2899,9 +2985,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.35.1"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
  "backtrace",
  "pin-project-lite",
@@ -2916,7 +3002,31 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2 1.0.78",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "tokio-stream"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-test"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89b3cbabd3ae862100094ae433e1def582cf86451b4e9bf83aa7ac1d8a7d719"
+dependencies = [
+ "async-stream",
+ "bytes",
+ "futures-core",
+ "tokio",
+ "tokio-stream",
 ]
 
 [[package]]
@@ -2946,7 +3056,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -2954,32 +3064,21 @@ dependencies = [
 ]
 
 [[package]]
-name = "topiary"
+name = "topiary-core"
 version = "0.3.0"
-source = "git+https://github.com/tweag/topiary.git?rev=9ae9ef49c2fa968d15107b817864ff6627e0983e#9ae9ef49c2fa968d15107b817864ff6627e0983e"
+source = "git+https://github.com/tweag/topiary.git?rev=614abf5d1a5cc3118c9687e18dc1c70a00c3e686#614abf5d1a5cc3118c9687e18dc1c70a00c3e686"
 dependencies = [
- "clap 4.4.18",
  "futures",
  "itertools 0.11.0",
  "log",
  "pretty_assertions",
  "prettydiff",
- "regex",
  "serde",
  "serde_json",
  "tokio",
- "toml",
- "tree-sitter-bash",
- "tree-sitter-facade",
- "tree-sitter-json",
- "tree-sitter-nickel",
- "tree-sitter-ocaml",
- "tree-sitter-ocamllex",
- "tree-sitter-query",
- "tree-sitter-rust",
- "tree-sitter-toml",
- "unescape",
- "web-tree-sitter-sys",
+ "tokio-test",
+ "topiary-tree-sitter-facade",
+ "topiary-web-tree-sitter-sys",
 ]
 
 [[package]]
@@ -2988,43 +3087,36 @@ version = "0.3.0"
 source = "git+https://github.com/tweag/topiary.git?rev=9ae9ef49c2fa968d15107b817864ff6627e0983e#9ae9ef49c2fa968d15107b817864ff6627e0983e"
 
 [[package]]
-name = "tree-sitter"
-version = "0.20.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e747b1f9b7b931ed39a548c1fae149101497de3c1fc8d9e18c62c1a66c683d3d"
-dependencies = [
- "cc",
- "regex",
-]
-
-[[package]]
-name = "tree-sitter-bash"
-version = "0.20.4"
-source = "git+https://github.com/tree-sitter/tree-sitter-bash#f7239f638d3dc16762563a9027faeee518ce1bd9"
+name = "topiary-tree-sitter-facade"
+version = "0.3.0"
+source = "git+https://github.com/tweag/topiary.git?rev=614abf5d1a5cc3118c9687e18dc1c70a00c3e686#614abf5d1a5cc3118c9687e18dc1c70a00c3e686"
 dependencies = [
- "cc",
+ "js-sys",
+ "topiary-web-tree-sitter-sys",
  "tree-sitter",
+ "wasm-bindgen",
+ "web-sys",
 ]
 
 [[package]]
-name = "tree-sitter-facade"
-version = "0.9.3"
-source = "git+https://github.com/tweag/tree-sitter-facade.git#1b290e795e700a57d8bd303f98a9715ab1c4f598"
+name = "topiary-web-tree-sitter-sys"
+version = "0.3.0"
+source = "git+https://github.com/tweag/topiary.git?rev=614abf5d1a5cc3118c9687e18dc1c70a00c3e686#614abf5d1a5cc3118c9687e18dc1c70a00c3e686"
 dependencies = [
  "js-sys",
- "tree-sitter",
  "wasm-bindgen",
+ "wasm-bindgen-futures",
  "web-sys",
- "web-tree-sitter-sys",
 ]
 
 [[package]]
-name = "tree-sitter-json"
-version = "0.20.1"
-source = "git+https://github.com/tree-sitter/tree-sitter-json.git#3fef30de8aee74600f25ec2e319b62a1a870d51e"
+name = "tree-sitter"
+version = "0.20.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e747b1f9b7b931ed39a548c1fae149101497de3c1fc8d9e18c62c1a66c683d3d"
 dependencies = [
  "cc",
- "tree-sitter",
+ "regex",
 ]
 
 [[package]]
@@ -3037,51 +3129,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "tree-sitter-ocaml"
-version = "0.20.4"
-source = "git+https://github.com/tree-sitter/tree-sitter-ocaml.git#4abfdc1c7af2c6c77a370aee974627be1c285b3b"
-dependencies = [
- "cc",
- "tree-sitter",
-]
-
-[[package]]
-name = "tree-sitter-ocamllex"
-version = "0.20.2"
-source = "git+https://github.com/314eter/tree-sitter-ocamllex.git#4b9898ccbf198602bb0dec9cd67cc1d2c0a4fad2"
-dependencies = [
- "cc",
- "tree-sitter",
-]
-
-[[package]]
-name = "tree-sitter-query"
-version = "0.1.0"
-source = "git+https://github.com/nvim-treesitter/tree-sitter-query#3a9808b22742d5bd906ef5d1a562f2f1ae57406d"
-dependencies = [
- "cc",
- "tree-sitter",
-]
-
-[[package]]
-name = "tree-sitter-rust"
-version = "0.20.4"
-source = "git+https://github.com/tree-sitter/tree-sitter-rust.git#e0e8b6de6e4aa354749c794f5f36a906dcccda74"
-dependencies = [
- "cc",
- "tree-sitter",
-]
-
-[[package]]
-name = "tree-sitter-toml"
-version = "0.5.1"
-source = "git+https://github.com/tree-sitter/tree-sitter-toml.git#342d9be207c2dba869b9967124c679b5e6fd0ebe"
-dependencies = [
- "cc",
- "tree-sitter",
-]
-
-[[package]]
 name = "typed-arena"
 version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3094,12 +3141,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
-name = "unescape"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e"
-
-[[package]]
 name = "unicode-bidi"
 version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3113,18 +3154,18 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-width"
@@ -3185,6 +3226,9 @@ name = "uuid"
 version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+dependencies = [
+ "getrandom",
+]
 
 [[package]]
 name = "version_check"
@@ -3229,9 +3273,9 @@ dependencies = [
 
 [[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",
@@ -3245,9 +3289,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
 dependencies = [
  "cfg-if",
  "serde",
@@ -3257,24 +3301,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2 1.0.78",
  "quote 1.0.35",
- "syn 1.0.109",
+ "syn 2.0.52",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.34"
+version = "0.4.41"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454"
+checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -3284,9 +3328,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
 dependencies = [
  "quote 1.0.35",
  "wasm-bindgen-macro-support",
@@ -3294,42 +3338,31 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
 dependencies = [
  "proc-macro2 1.0.78",
  "quote 1.0.35",
- "syn 1.0.109",
+ "syn 2.0.52",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.84"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
 
 [[package]]
 name = "web-sys"
-version = "0.3.61"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "web-tree-sitter-sys"
-version = "1.3.0"
-source = "git+https://github.com/tweag/web-tree-sitter-sys#9e9755b9ab59055092de4717ba0bafe6483f4e5c"
+checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
 ]
 
 [[package]]
@@ -3364,6 +3397,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
+name = "windows"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
 name = "windows-sys"
 version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3378,7 +3420,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -3398,17 +3440,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -3419,9 +3461,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -3431,9 +3473,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -3443,9 +3485,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -3455,9 +3497,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -3467,9 +3509,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -3479,9 +3521,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -3491,15 +3533,15 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "winnow"
-version = "0.5.34"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
 dependencies = [
  "memchr",
 ]
@@ -3542,5 +3584,5 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2 1.0.78",
  "quote 1.0.35",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
diff --git a/nixpkgs/pkgs/by-name/ni/nickel/package.nix b/nixpkgs/pkgs/by-name/ni/nickel/package.nix
index 76ba075b5a04..8ba97749bef8 100644
--- a/nixpkgs/pkgs/by-name/ni/nickel/package.nix
+++ b/nixpkgs/pkgs/by-name/ni/nickel/package.nix
@@ -8,39 +8,26 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nickel";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "tweag";
     repo = "nickel";
     rev = "refs/tags/${version}";
-    hash = "sha256-VltrIGo4jXV6lDIqj+hTQQ46PJH1v9CVFOZopyi9tbM=";
+    hash = "sha256-tb0nIBj/5nb0WbkceL7Rt1Rs0Qjy5/2leSOofF4zhTY=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "topiary-0.3.0" = "sha256-1leQLRohX0iDiOOO96ETM2L3yOElW8OwR5IcrsoxfOo=";
-      "tree-sitter-bash-0.20.4" = "sha256-+Mpks0FyQLl26TX63J6WhaAl/QDUR1k9wSUY5SFwL+w=";
-      "tree-sitter-facade-0.9.3" = "sha256-M/npshnHJkU70pP3I4WMXp3onlCSWM5mMIqXP45zcUs=";
-      "tree-sitter-json-0.20.1" = "sha256-Msnct7JzPBIR9+PIBZCJTRdVMUzhaDTKkl3JaDUKAgo=";
+      "topiary-core-0.3.0" = "sha256-2oVdtBcH1hF+p3PixBOljHXvGX2YCoRzA/vlBDvN7fE=";
+      "topiary-queries-0.3.0" = "sha256-1leQLRohX0iDiOOO96ETM2L3yOElW8OwR5IcrsoxfOo=";
       "tree-sitter-nickel-0.1.0" = "sha256-HyHdameEgET5UXKMgw7EJvZsJxToc9Qz26XHvc5qmU0=";
-      "tree-sitter-ocaml-0.20.4" = "sha256-ycmjIKfrsVSVHmPP3HCxfk5wcBIF/JFH8OnU8mY1Cc8=";
-      "tree-sitter-ocamllex-0.20.2" = "sha256-YhmEE7I7UF83qMuldHqc/fD/no/7YuZd6CaAIaZ1now=";
-      "tree-sitter-query-0.1.0" = "sha256-5N7FT0HTK3xzzhAlk3wBOB9xlEpKSNIfakgFnsxEi18=";
-      "tree-sitter-rust-0.20.4" = "sha256-egTxBuliboYbl+5N6Jdt960EMLByVmLqSmQLps3rEok=";
-      "tree-sitter-toml-0.5.1" = "sha256-5nLNBxFeOGE+gzbwpcrTVnuL1jLUA0ZLBVw2QrOLsDQ=";
-      "web-tree-sitter-sys-1.3.0" = "sha256-9rKB0rt0y9TD/HLRoB9LjEP9nO4kSWR9ylbbOXo2+2M=";
     };
   };
 
   cargoBuildFlags = [ "-p nickel-lang-cli" "-p nickel-lang-lsp" ];
 
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   nativeBuildInputs = [
     python3
   ];
diff --git a/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix b/nixpkgs/pkgs/by-name/ni/nicotine-plus/package.nix
index 40b8252b47c0..dad01456ba73 100644
--- a/nixpkgs/pkgs/applications/networking/soulseek/nicotine-plus/default.nix
+++ b/nixpkgs/pkgs/by-name/ni/nicotine-plus/package.nix
@@ -1,11 +1,10 @@
 { lib
-, stdenv
 , fetchFromGitHub
-, wrapGAppsHook
+, wrapGAppsHook4
 , gdk-pixbuf
 , gettext
 , gobject-introspection
-, gtk3
+, gtk4
 , python3Packages
 }:
 
@@ -17,15 +16,15 @@ python3Packages.buildPythonApplication rec {
     owner = "nicotine-plus";
     repo = "nicotine-plus";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-dl4fTa+CXsycC+hhSkIzQQxrSkBDPsdrmKdrHPakGig=";
+    hash = "sha256-dl4fTa+CXsycC+hhSkIzQQxrSkBDPsdrmKdrHPakGig=";
   };
 
-  nativeBuildInputs = [ gettext wrapGAppsHook gobject-introspection ];
+  nativeBuildInputs = [ gettext wrapGAppsHook4 gobject-introspection ];
 
   propagatedBuildInputs = [
     gdk-pixbuf
     gobject-introspection
-    gtk3
+    gtk4
     python3Packages.pygobject3
   ];
 
@@ -35,14 +34,13 @@ python3Packages.buildPythonApplication rec {
 
   preFixup = ''
     gappsWrapperArgs+=(
-      --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}"
+      --prefix XDG_DATA_DIRS : "${gtk4}/share/gsettings-schemas/${gtk4.name}"
     )
   '';
 
   doCheck = false;
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "A graphical client for the SoulSeek peer-to-peer system";
     longDescription = ''
       Nicotine+ aims to be a pleasant, free and open source (FOSS) alternative
diff --git a/nixpkgs/pkgs/by-name/ni/nim-atlas/package.nix b/nixpkgs/pkgs/by-name/ni/nim-atlas/package.nix
index 70b36698a72b..7f01fab5876d 100644
--- a/nixpkgs/pkgs/by-name/ni/nim-atlas/package.nix
+++ b/nixpkgs/pkgs/by-name/ni/nim-atlas/package.nix
@@ -16,6 +16,7 @@ buildNimPackage (final: prev: {
   doCheck = false; # tests will clone repos
   meta = final.src.meta // {
     description = "Nim package cloner";
+    mainProgram = "atlas";
     license = [ lib.licenses.mit ];
   };
 })
diff --git a/nixpkgs/pkgs/by-name/ni/nim_builder/package.nix b/nixpkgs/pkgs/by-name/ni/nim_builder/package.nix
index 34da4dfa61a0..50fa519b7a92 100644
--- a/nixpkgs/pkgs/by-name/ni/nim_builder/package.nix
+++ b/nixpkgs/pkgs/by-name/ni/nim_builder/package.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation {
   '';
   meta = {
     description = "Internal Nixpkgs utility for buildNimPackage.";
+    mainProgram = "nim_builder";
     maintainers = [ lib.maintainers.ehmry ];
   };
 }
diff --git a/nixpkgs/pkgs/by-name/ni/nimdow/package.nix b/nixpkgs/pkgs/by-name/ni/nimdow/package.nix
index a77fb05298b7..7a5542c2c05f 100644
--- a/nixpkgs/pkgs/by-name/ni/nimdow/package.nix
+++ b/nixpkgs/pkgs/by-name/ni/nimdow/package.nix
@@ -1,4 +1,4 @@
-{ lib, buildNimPackage, fetchFromGitHub, testers }:
+{ lib, buildNimPackage, fetchFromGitHub, nixosTests, testers }:
 
 buildNimPackage (finalAttrs: {
   pname = "nimdow";
@@ -25,14 +25,18 @@ buildNimPackage (finalAttrs: {
     substituteInPlace src/nimdowpkg/config/configloader.nim --replace "/usr/share/nimdow" "$out/share/nimdow"
   '';
 
-  passthru.tests.version = testers.testVersion {
-    package = finalAttrs.finalPackage;
-    version = "v${finalAttrs.version}";
+  passthru.tests = {
+    nimdow = nixosTests.nimdow;
+    version = testers.testVersion {
+      package = finalAttrs.finalPackage;
+      version = "v${finalAttrs.version}";
+    };
   };
 
   meta = with lib;
     finalAttrs.src.meta // {
       description = "Nim based tiling window manager";
+      platforms = platforms.linux;
       license = [ licenses.gpl2 ];
       maintainers = [ maintainers.marcusramberg ];
       mainProgram = "nimdow";
diff --git a/nixpkgs/pkgs/by-name/ni/nimmm/package.nix b/nixpkgs/pkgs/by-name/ni/nimmm/package.nix
index be3e01b7dcae..266c29883a8d 100644
--- a/nixpkgs/pkgs/by-name/ni/nimmm/package.nix
+++ b/nixpkgs/pkgs/by-name/ni/nimmm/package.nix
@@ -17,6 +17,7 @@ buildNimPackage (finalAttrs: {
 
   meta = {
     description = "Terminal file manager written in Nim";
+    mainProgram = "nimmm";
     homepage = "https://github.com/joachimschmidt557/nimmm";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/ni/niri/Cargo.lock b/nixpkgs/pkgs/by-name/ni/niri/Cargo.lock
index a44b513cfcbb..209a91c01f86 100644
--- a/nixpkgs/pkgs/by-name/ni/niri/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/ni/niri/Cargo.lock
@@ -10,9 +10,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "ahash"
-version = "0.8.7"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if",
  "getrandom",
@@ -75,9 +75,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.11"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -123,9 +123,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.79"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
 
 [[package]]
 name = "appendlist"
@@ -171,7 +171,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
 dependencies = [
  "concurrent-queue",
- "event-listener 5.0.0",
+ "event-listener 5.2.0",
  "event-listener-strategy 0.5.0",
  "futures-core",
  "pin-project-lite",
@@ -235,7 +235,7 @@ dependencies = [
  "futures-io",
  "futures-lite 2.2.0",
  "parking",
- "polling 3.4.0",
+ "polling 3.5.0",
  "rustix 0.38.31",
  "slab",
  "tracing",
@@ -287,7 +287,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -322,7 +322,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -361,7 +361,7 @@ dependencies = [
  "regex",
  "rustc-hash",
  "shlex",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -443,9 +443,9 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytemuck"
@@ -464,7 +464,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -481,9 +481,9 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "cairo-rs"
-version = "0.19.1"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc1c415b7088381c53c575420899c34c9e6312df5ac5defd05614210e9fd6e1b"
+checksum = "2650f66005301bd33cc486dec076e1293c4cecf768bc7ba9bf5d2b1be339b99c"
 dependencies = [
  "bitflags 2.4.2",
  "cairo-sys-rs",
@@ -494,9 +494,9 @@ dependencies = [
 
 [[package]]
 name = "cairo-sys-rs"
-version = "0.19.1"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75b6a5fefce2eadb8333e3c604ac964ba6573ec4f28bdd17f67032c4a2831831"
+checksum = "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64"
 dependencies = [
  "glib-sys",
  "libc",
@@ -509,11 +509,25 @@ version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
+ "bitflags 2.4.2",
+ "log",
+ "polling 3.5.0",
+ "rustix 0.38.31",
+ "slab",
+ "thiserror",
+]
+
+[[package]]
+name = "calloop"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec"
+dependencies = [
  "async-task",
  "bitflags 2.4.2",
  "futures-io",
  "log",
- "polling 3.4.0",
+ "polling 3.5.0",
  "rustix 0.38.31",
  "slab",
  "thiserror",
@@ -525,7 +539,7 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
 dependencies = [
- "calloop",
+ "calloop 0.12.4",
  "rustix 0.38.31",
  "wayland-backend",
  "wayland-client",
@@ -533,9 +547,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 dependencies = [
  "jobserver",
  "libc",
@@ -639,7 +653,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -739,9 +753,9 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
@@ -763,6 +777,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "csscolorparser"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf"
+dependencies = [
+ "phf",
+]
+
+[[package]]
 name = "cursor-icon"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -914,9 +937,9 @@ checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "enumflags2"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
 dependencies = [
  "enumflags2_derive",
  "serde",
@@ -924,13 +947,13 @@ dependencies = [
 
 [[package]]
 name = "enumflags2_derive"
-version = "0.7.8"
+version = "0.7.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -979,9 +1002,9 @@ dependencies = [
 
 [[package]]
 name = "event-listener"
-version = "5.0.0"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b72557800024fabbaa2449dd4bf24e37b93702d457a4d4f2b0dd1f0f039f20c1"
+checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -1004,7 +1027,7 @@ version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
 dependencies = [
- "event-listener 5.0.0",
+ "event-listener 5.2.0",
  "pin-project-lite",
 ]
 
@@ -1076,7 +1099,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1162,7 +1185,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1196,9 +1219,9 @@ dependencies = [
 
 [[package]]
 name = "gbm"
-version = "0.14.1"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f177420f6650dcd50042121adf7ff7ab265abdaf4862fe2624066e36e3a9ef34"
+checksum = "313702b30cdeb83ddc72bc14dcee67803cd0ae2d12282ea06e368c25a900c844"
 dependencies = [
  "bitflags 1.3.2",
  "drm",
@@ -1220,9 +1243,9 @@ dependencies = [
 
 [[package]]
 name = "gdk-pixbuf"
-version = "0.19.0"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c311c47800051b87de1335e8792774d7cec551c91a0a3d109ab21d76b36f208f"
+checksum = "f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92"
 dependencies = [
  "gdk-pixbuf-sys",
  "gio",
@@ -1245,9 +1268,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6771942f85a2beaa220c64739395e4401b9fab4a52aba9b503fa1e6ed4d4d806"
+checksum = "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b"
 dependencies = [
  "cairo-rs",
  "gdk-pixbuf",
@@ -1260,9 +1283,9 @@ dependencies = [
 
 [[package]]
 name = "gdk4-sys"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1eb95854fab65072023a7814434f003db571d6e45c287c0b0c540c1c78bdf6ae"
+checksum = "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -1321,9 +1344,9 @@ dependencies = [
 
 [[package]]
 name = "gio"
-version = "0.19.0"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3d1aaa2d926710a27f3b35822806b1513b393b71174dd2601c9d02fdab0cb82"
+checksum = "2eae10b27b6dd27e22ed0d812c6387deba295e6fc004a8b379e459b663b05a02"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1367,7 +1390,7 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1382,10 +1405,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "glam"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3"
+
+[[package]]
 name = "glib"
-version = "0.19.0"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "170ee82b9b44b3b5fd1cf4971d6cf0eadec38303bb84c7bcc4e6b95a18934e71"
+checksum = "ab9e86540b5d8402e905ad4ce7d6aa544092131ab564f3102175af176b90a053"
 dependencies = [
  "bitflags 2.4.2",
  "futures-channel",
@@ -1405,15 +1434,15 @@ dependencies = [
 
 [[package]]
 name = "glib-macros"
-version = "0.19.0"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ff52fff7e4d1bb8598ae744e9bb90c8c76271712483c3f0ce931bee9814de85"
+checksum = "0f5897ca27a83e4cdc7b4666850bade0a2e73e17689aabafcc9acddad9d823b8"
 dependencies = [
  "heck",
  "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1445,9 +1474,9 @@ dependencies = [
 
 [[package]]
 name = "graphene-rs"
-version = "0.19.0"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "147827e4f506f8073ac3ec5b28cc2255bdf3abc30f5b4e101a80506eebe11d2c"
+checksum = "99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91"
 dependencies = [
  "glib",
  "graphene-sys",
@@ -1468,9 +1497,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e8ce8dee0fd87a11002214b1204ff18c9272fbd530408f0884a0f9b25dc31de"
+checksum = "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e"
 dependencies = [
  "cairo-rs",
  "gdk4",
@@ -1483,9 +1512,9 @@ dependencies = [
 
 [[package]]
 name = "gsk4-sys"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2660a652da5b662d43924df19ba40d73f015ed427329ef51d2b1360a4e0dc0e4"
+checksum = "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738"
 dependencies = [
  "cairo-sys-rs",
  "gdk4-sys",
@@ -1499,9 +1528,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d26ffa3ec6316ccaa1df62d3e7f5bae1637c0acbb43f250fabef38319f73c64"
+checksum = "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83"
 dependencies = [
  "cairo-rs",
  "field-offset",
@@ -1520,9 +1549,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4-macros"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8b86439e9896f6f3f47c3d8077c5c8205174078760afdabd9098a8e9e937d97"
+checksum = "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567"
 dependencies = [
  "anyhow",
  "proc-macro-crate 3.1.0",
@@ -1534,9 +1563,9 @@ dependencies = [
 
 [[package]]
 name = "gtk4-sys"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2abc0a6d356d59a3806021829ce6ed3e70bba3509b41a535fedcb09fae13fbc0"
+checksum = "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -1572,9 +1601,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.5"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -1605,9 +1634,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.2"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -1707,9 +1736,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",
 ]
@@ -1808,12 +1837,12 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[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",
- "windows-sys 0.48.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -1922,9 +1951,9 @@ checksum = "f0b5399f6804fbab912acbd8878ed3532d506b7c951b8f9f164ef90fef39e3f4"
 
 [[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 = "loom"
@@ -2032,7 +2061,7 @@ checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2083,18 +2112,19 @@ dependencies = [
 
 [[package]]
 name = "niri"
-version = "0.1.2"
+version = "0.1.3"
 dependencies = [
  "anyhow",
  "arrayvec",
  "async-channel",
  "async-io 1.13.0",
  "bitflags 2.4.2",
- "calloop",
+ "calloop 0.13.0",
  "clap",
  "directories",
  "futures-util",
  "git-version",
+ "glam",
  "input",
  "keyframe",
  "libc",
@@ -2125,9 +2155,10 @@ dependencies = [
 
 [[package]]
 name = "niri-config"
-version = "0.1.2"
+version = "0.1.3"
 dependencies = [
  "bitflags 2.4.2",
+ "csscolorparser",
  "knuffel",
  "miette",
  "niri-ipc",
@@ -2139,7 +2170,7 @@ dependencies = [
 
 [[package]]
 name = "niri-ipc"
-version = "0.1.2"
+version = "0.1.3"
 dependencies = [
  "clap",
  "serde",
@@ -2147,7 +2178,7 @@ dependencies = [
 
 [[package]]
 name = "niri-visual-tests"
-version = "0.1.2"
+version = "0.1.3"
 dependencies = [
  "anyhow",
  "gtk4",
@@ -2249,7 +2280,7 @@ dependencies = [
  "proc-macro-crate 3.1.0",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2342,9 +2373,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
 
 [[package]]
 name = "pango"
-version = "0.19.0"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78d7f779b957728c74fd1a060dfa6d89a0bea792ebc50cc2da80e4e87282d69e"
+checksum = "7809e8af4df8d024a066106b72ca6bc7253a484ae3867041a96103ef8a13188d"
 dependencies = [
  "gio",
  "glib",
@@ -2366,9 +2397,9 @@ dependencies = [
 
 [[package]]
 name = "pangocairo"
-version = "0.19.1"
+version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9615c6294903a6ea26fa63984b18e51275354d1fa91bbde68eeb7fa3ab61a72f"
+checksum = "6620c77967c62c7a84c6ca15ab855e8eecb248beb8ee43bc0eeaadd39123f687"
 dependencies = [
  "cairo-rs",
  "glib",
@@ -2409,6 +2440,48 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_macros",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
 name = "pin-project-lite"
 version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2479,15 +2552,15 @@ checksum = "a1a0483e89e81d7915defe83c51f23f6800594d64f6f4a21253ce87fd8444ada"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "png"
-version = "0.17.11"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -2514,9 +2587,9 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.4.0"
+version = "3.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14"
+checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
@@ -2598,9 +2671,9 @@ dependencies = [
 
 [[package]]
 name = "profiling"
-version = "1.0.14"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f0f7f43585c34e4fdd7497d746bc32e14458cf11c69341cc0587b1d825dde42"
+checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58"
 dependencies = [
  "profiling-procmacros",
  "tracy-client",
@@ -2608,12 +2681,12 @@ dependencies = [
 
 [[package]]
 name = "profiling-procmacros"
-version = "1.0.14"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce97fecd27bc49296e5e20518b5a1bb54a14f7d5fe6228bc9686ee2a74915cc8"
+checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd"
 dependencies = [
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2762,7 +2835,7 @@ checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.4.5",
+ "regex-automata 0.4.6",
  "regex-syntax 0.8.2",
 ]
 
@@ -2777,9 +2850,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",
@@ -2860,9 +2933,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "same-file"
@@ -2893,35 +2966,35 @@ checksum = "621e3680f3e07db4c9c2c3fb07c6223ab2fab2e54bd3c04c3ae037990f428c32"
 
 [[package]]
 name = "semver"
-version = "1.0.21"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 
 [[package]]
 name = "serde"
-version = "1.0.196"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.196"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.113"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -2936,7 +3009,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2990,6 +3063,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
 
 [[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
 name = "slab"
 version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3007,11 +3086,11 @@ checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 [[package]]
 name = "smithay"
 version = "0.3.0"
-source = "git+https://github.com/Smithay/smithay.git#832dee8586d783d4c60a162ef8aabca2ba7fd499"
+source = "git+https://github.com/Smithay/smithay.git#8287457195cf6a495331f65f5e0119f931ff7e79"
 dependencies = [
  "appendlist",
  "bitflags 2.4.2",
- "calloop",
+ "calloop 0.13.0",
  "cc",
  "cgmath",
  "cursor-icon",
@@ -3058,7 +3137,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
 dependencies = [
  "bitflags 2.4.2",
- "calloop",
+ "calloop 0.12.4",
  "calloop-wayland-source",
  "cursor-icon",
  "libc",
@@ -3079,7 +3158,7 @@ dependencies = [
 [[package]]
 name = "smithay-drm-extras"
 version = "0.1.0"
-source = "git+https://github.com/Smithay/smithay.git#832dee8586d783d4c60a162ef8aabca2ba7fd499"
+source = "git+https://github.com/Smithay/smithay.git#8287457195cf6a495331f65f5e0119f931ff7e79"
 dependencies = [
  "drm",
  "edid-rs",
@@ -3129,9 +3208,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3153,9 +3232,9 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.13"
+version = "0.12.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "tauri-winrt-notification"
@@ -3169,9 +3248,9 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.10.0"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand 2.0.1",
@@ -3181,29 +3260,29 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -3252,7 +3331,7 @@ dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.4",
+ "toml_edit 0.22.6",
 ]
 
 [[package]]
@@ -3272,7 +3351,7 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
  "indexmap",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.40",
 ]
 
 [[package]]
@@ -3283,20 +3362,20 @@ checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
 dependencies = [
  "indexmap",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.40",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.22.4"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951"
+checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.5",
 ]
 
 [[package]]
@@ -3318,7 +3397,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3362,9 +3441,9 @@ dependencies = [
 
 [[package]]
 name = "tracy-client"
-version = "0.16.5"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "307e6b7030112fe9640fdd87988a40795549ba75c355f59485d14e6b444d2987"
+checksum = "59fb931a64ff88984f86d3e9bcd1ae8843aa7fe44dd0f8097527bc172351741d"
 dependencies = [
  "loom",
  "once_cell",
@@ -3429,9 +3508,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
@@ -3500,9 +3579,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",
@@ -3516,9 +3595,9 @@ 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",
  "wasm-bindgen-macro",
@@ -3526,24 +3605,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
  "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",
  "js-sys",
@@ -3553,9 +3632,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",
@@ -3563,22 +3642,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.48",
+ "syn 2.0.52",
  "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 = "wayland-backend"
@@ -3732,9 +3811,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",
@@ -3833,7 +3912,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -3868,17 +3947,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -3895,9 +3974,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -3913,9 +3992,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -3931,9 +4010,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -3949,9 +4028,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -3967,9 +4046,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -3985,9 +4064,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -4003,22 +4082,22 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "winit"
-version = "0.29.10"
+version = "0.29.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c824f11941eeae66ec71111cc2674373c772f482b58939bb4066b642aa2ffcf"
+checksum = "a7a3db69ffbe53a9babec7804da7a90f21020fcce1f2f5e5291e2311245b993d"
 dependencies = [
  "ahash",
  "android-activity",
  "atomic-waker",
  "bitflags 2.4.2",
  "bytemuck",
- "calloop",
+ "calloop 0.12.4",
  "cfg_aliases",
  "core-foundation",
  "core-graphics",
@@ -4056,9 +4135,18 @@ dependencies = [
 
 [[package]]
 name = "winnow"
-version = "0.5.39"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
@@ -4124,9 +4212,9 @@ dependencies = [
 
 [[package]]
 name = "xkbcommon-dl"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6924668544c48c0133152e7eec86d644a056ca3d09275eb8d5cdb9855f9d8699"
+checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
 dependencies = [
  "bitflags 2.4.2",
  "dlib",
@@ -4173,9 +4261,9 @@ dependencies = [
 
 [[package]]
 name = "zbus"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c45d06ae3b0f9ba1fb2671268b975557d8f5a84bb5ec6e43964f87e763d8bca8"
+checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6"
 dependencies = [
  "async-broadcast",
  "async-executor",
@@ -4214,9 +4302,9 @@ dependencies = [
 
 [[package]]
 name = "zbus_macros"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4a1ba45ed0ad344b85a2bb5a1fe9830aed23d67812ea39a586e7d0136439c7d"
+checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5"
 dependencies = [
  "proc-macro-crate 1.3.1",
  "proc-macro2",
@@ -4228,9 +4316,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",
@@ -4254,14 +4342,14 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "zvariant"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c"
+checksum = "4eef2be88ba09b358d3b58aca6e41cd853631d44787f319a1383ca83424fb2db"
 dependencies = [
  "byteorder",
  "enumflags2",
@@ -4273,9 +4361,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant_derive"
-version = "3.15.0"
+version = "3.15.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
+checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9"
 dependencies = [
  "proc-macro-crate 1.3.1",
  "proc-macro2",
diff --git a/nixpkgs/pkgs/by-name/ni/niri/package.nix b/nixpkgs/pkgs/by-name/ni/niri/package.nix
index f704155fe70d..e198d0585d2f 100644
--- a/nixpkgs/pkgs/by-name/ni/niri/package.nix
+++ b/nixpkgs/pkgs/by-name/ni/niri/package.nix
@@ -16,23 +16,32 @@
 , libclang
 , autoPatchelfHook
 , clang
+, fetchpatch
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "niri";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "YaLTeR";
     repo = "niri";
     rev = "v${version}";
-    hash = "sha256-vO6ak5rT6ntBC20vYC36zcEcHv7Cki9y8A+c7ThfsUg=";
+    hash = "sha256-VTtXEfxc3OCdtdYiEdtftOQ7gDJNb679Yw8v1Lu3lhY=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "revert-viewporter.patch";
+      url = "https://github.com/YaLTeR/niri/commit/40cec34aa4a7f99ab12b30cba1a0ee83a706a413.patch";
+      hash = "sha256-3fg8v0eotfjUQY6EVFEPK5BBIBrr6vQpXbjDcsw2E8Q=";
+    })
+  ];
+
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "smithay-0.3.0" = "sha256-ZEWamojE5ZRlhPVv/DK2Mj+QIz7zudw9+AxFD7Onr9Q=";
+      "smithay-0.3.0" = "sha256-sXdixfPLAUIIVK+PhqRuMZ7XKNJIGkWNlH8nBzXlxCU=";
     };
   };
 
@@ -66,25 +75,24 @@ rustPlatform.buildRustPackage rec {
 
   passthru.providedSessions = ["niri"];
 
-  postInstall = ''
-    mkdir -p $out/share/{systemd/user,wayland-sessions,xdg-desktop-portal}
-
-    cp ./resources/niri-session $out/bin/niri-session
-    cp ./resources/niri.service $out/share/systemd/user/niri.service
-    cp ./resources/niri-shutdown.target $out/share/systemd/user/niri-shutdown.target
-    cp ./resources/niri.desktop $out/share/wayland-sessions/niri.desktop
-    cp ./resources/niri-portals.conf $out/share/xdg-desktop-portal/niri-portals.conf
+  postPatch = ''
+    patchShebangs ./resources/niri-session
+    substituteInPlace ./resources/niri.service \
+      --replace-fail '/usr/bin' "$out/bin"
   '';
 
-  postFixup = ''
-    sed -i "s#/usr#$out#" $out/share/systemd/user/niri.service
+  postInstall = ''
+    install -Dm0755 ./resources/niri-session -t $out/bin
+    install -Dm0644 resources/niri.desktop -t $out/share/wayland-sessions
+    install -Dm0644 resources/niri-portals.conf -t $out/share/xdg-desktop-portal
+    install -Dm0644 resources/niri{-shutdown.target,.service} -t $out/share/systemd/user
   '';
 
   meta = with lib; {
     description = "A scrollable-tiling Wayland compositor";
     homepage = "https://github.com/YaLTeR/niri";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ iogamaster ];
+    maintainers = with maintainers; [ iogamaster foo-dogsquared sodiboo ];
     mainProgram = "niri";
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/by-name/ni/nix-snapshotter/package.nix b/nixpkgs/pkgs/by-name/ni/nix-snapshotter/package.nix
new file mode 100644
index 000000000000..3ea3116ebf0d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ni/nix-snapshotter/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildGoModule
+, callPackage
+, fetchFromGitHub
+}:
+
+let
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "pdtpartners";
+    repo = "nix-snapshotter";
+    rev = "v${version}";
+    hash = "sha256-hQ2b9Yx8g8okVWGo/iuvY2sR6FWI8iKp74m4gdXeueI=";
+  };
+
+  nix-snapshotter-lib = callPackage "${src}/package.nix" {};
+
+in buildGoModule {
+  pname = "nix-snapshotter";
+  inherit version src;
+  vendorHash = "sha256-QBLePOnfsr6I19ddyZNSFDih6mCaZ/NV2Qz1B1pSHxs=";
+  passthru = { inherit (nix-snapshotter-lib) buildImage; };
+
+  meta = {
+    description = "Brings native understanding of Nix packages to containerd";
+    homepage    = "https://github.com/pdtpartners/nix-snapshotter";
+    license     = lib.licenses.mit;
+    platforms   = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ elpdt852 ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ni/nixfmt-rfc-style/package.nix b/nixpkgs/pkgs/by-name/ni/nixfmt-rfc-style/package.nix
index a11e2d29ff69..90e6dbf2e25d 100644
--- a/nixpkgs/pkgs/by-name/ni/nixfmt-rfc-style/package.nix
+++ b/nixpkgs/pkgs/by-name/ni/nixfmt-rfc-style/package.nix
@@ -4,6 +4,7 @@
   lib,
   runCommand,
   nixfmt-rfc-style,
+  fetchpatch,
 }:
 let
   inherit (haskell.lib.compose) overrideCabal justStaticExecutables;
@@ -13,6 +14,13 @@ let
 
     passthru.updateScript = ./update.sh;
 
+    patches = [
+      (fetchpatch {
+        url = "https://github.com/serokell/nixfmt/commit/ca9c8975ed671112fdfce94f2e9e2ad3de480c9a.patch";
+        hash = "sha256-UOSAYahSKBsqPMVcQJ3H26Eg2xpPAsNOjYMI6g+WTYU=";
+      })
+    ];
+
     maintainers = lib.teams.formatter.members;
 
     # These tests can be run with the following command.
diff --git a/nixpkgs/pkgs/by-name/ni/nixops-dns/deps.nix b/nixpkgs/pkgs/by-name/ni/nixops-dns/deps.nix
deleted file mode 100644
index 7da38f83e7fe..000000000000
--- a/nixpkgs/pkgs/by-name/ni/nixops-dns/deps.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/mattn/go-sqlite3";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-sqlite3";
-      rev = "b4142c444a8941d0d92b0b7103a24df9cd815e42";
-      sha256 = "0xq2y4am8dz9w9aaq24s1npg1sn8pf2gn4nki73ylz2fpjwq9vla";
-    };
-  }
-  {
-    goPackagePath = "github.com/miekg/dns";
-    fetch = {
-      type = "git";
-      url = "https://github.com/miekg/dns";
-      rev = "75229eecb7af00b2736e93b779a78429dcb19472";
-      sha256 = "1vsjy07kkyx11iz4qsihhykac3ddq3ywdgv6bwrv407504f7x6wl";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/by-name/ni/nixops-dns/package.nix b/nixpkgs/pkgs/by-name/ni/nixops-dns/package.nix
index cf633a65ca53..f1a6cacfe121 100644
--- a/nixpkgs/pkgs/by-name/ni/nixops-dns/package.nix
+++ b/nixpkgs/pkgs/by-name/ni/nixops-dns/package.nix
@@ -1,24 +1,26 @@
 { lib
-, buildGoPackage
+, buildGoModule
 , fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "nixops-dns";
-  version = "1.0";
-
-  goDeps = ./deps.nix;
-  goPackagePath = "github.com/kamilchm/nixops-dns";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
-    owner = "kamilchm";
+    owner = "museoa";
     repo = "nixops-dns";
     rev = "v${version}";
-    sha256 = "1fyqwk2knrv40zpf71a56bjyaycr3p6fzrqq7gaan056ydy83cai";
+    hash = "sha256-d3vVm6YeQTOAE5HFSKI01L9ZqfbQKrdoLsMwHP5HulE=";
   };
 
+  vendorHash = "sha256-3DVNjvW0AAdogpTi3GMnn92FqqOUWNdQvRBityyKwcI=";
+
+  ldflags = [ "-s" "-w" ];
+
   meta = with lib; {
-    homepage = "https://github.com/kamilchm/nixops-dns/";
+    homepage = "https://github.com/museoa/nixops-dns";
     description = "DNS server for resolving NixOps machines";
+    mainProgram = "nixops-dns";
     license = licenses.mit;
     maintainers = with maintainers; [ kamilchm sorki ];
   };
diff --git a/nixpkgs/pkgs/by-name/ni/nixos-anywhere/package.nix b/nixpkgs/pkgs/by-name/ni/nixos-anywhere/package.nix
index e8b7790ab1c8..197a320d4c62 100644
--- a/nixpkgs/pkgs/by-name/ni/nixos-anywhere/package.nix
+++ b/nixpkgs/pkgs/by-name/ni/nixos-anywhere/package.nix
@@ -28,12 +28,12 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "nixos-anywhere";
-  version = "1.1.1";
+  version = "1.1.2";
   src = fetchFromGitHub {
     owner = "numtide";
     repo = "nixos-anywhere";
     rev = finalAttrs.version;
-    hash = "sha256-GN0G3g3QEzb2ZG3zSzbRaRBsmQsWJu81CZy9mIofRZ0=";
+    hash = "sha256-JzgZnHQ4Bknh1ebE4iMVzR3cWZG+8k7MRy0X7cNSnBE=";
   };
   nativeBuildInputs = [ makeWrapper ];
   installPhase = ''
diff --git a/nixpkgs/pkgs/by-name/nl/nls/package.nix b/nixpkgs/pkgs/by-name/nl/nls/package.nix
index d060207f7af3..136920367da2 100644
--- a/nixpkgs/pkgs/by-name/nl/nls/package.nix
+++ b/nixpkgs/pkgs/by-name/nl/nls/package.nix
@@ -12,6 +12,7 @@ symlinkJoin {
   meta = {
     inherit (nickel.meta) homepage changelog license maintainers;
     description = "A language server for the Nickel programming language";
+    mainProgram = "nls";
     longDescription = ''
       The Nickel Language Server (NLS) is a language server for the Nickel
       programming language. NLS offers error messages, type hints, and
diff --git a/nixpkgs/pkgs/by-name/no/node-hp-scan-to/package.nix b/nixpkgs/pkgs/by-name/no/node-hp-scan-to/package.nix
new file mode 100644
index 000000000000..b6a5eced5f46
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/no/node-hp-scan-to/package.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchYarnDeps
+, makeWrapper
+, nodejs
+, prefetch-yarn-deps
+, yarn
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "node-hp-scan-to";
+  version = "1.4.2";
+
+  src = fetchFromGitHub {
+    owner = "manuc66";
+    repo = "node-hp-scan-to";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-/aoR2ccDYTkdmcj4k2zf8VJydQufZ2ucqyZ1OH9jRt0=";
+  };
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/yarn.lock";
+    hash = "sha256-Mhlw/3js35TOVDADsPScE9kfv9rmF+u1LzDmKkzunM0=";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+    nodejs
+    prefetch-yarn-deps
+    yarn
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror $offlineCache
+    fixup-yarn-lock yarn.lock
+    yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
+    patchShebangs node_modules
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn --offline build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    yarn --offline --production install
+
+    mkdir -p "$out/lib/node_modules/node-hp-scan-to"
+    cp -r dist node_modules package.json "$out/lib/node_modules/node-hp-scan-to"
+
+    makeWrapper "${nodejs}/bin/node" "$out/bin/node-hp-scan-to" \
+      --add-flags "$out/lib/node_modules/node-hp-scan-to/dist/index.js"
+
+    runHook postInstall
+  '';
+
+  meta = {
+    changelog = "https://github.com/manuc66/node-hp-scan-to/releases/tag/${finalAttrs.src.rev}";
+    description = "Allow to send scan from device to computer for some HP All-in-One Printers";
+    homepage = "https://github.com/manuc66/node-hp-scan-to";
+    license = lib.licenses.mit;
+    mainProgram = "node-hp-scan-to";
+    maintainers = with lib.maintainers; [ jonas-w ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/no/nom/package.nix b/nixpkgs/pkgs/by-name/no/nom/package.nix
index 2dce6de227a1..192a231f11d5 100644
--- a/nixpkgs/pkgs/by-name/no/nom/package.nix
+++ b/nixpkgs/pkgs/by-name/no/nom/package.nix
@@ -4,13 +4,13 @@
 }:
 buildGoModule rec {
   pname = "nom";
-  version = "2.1.3";
+  version = "2.1.4";
 
   src = fetchFromGitHub {
     owner = "guyfedwards";
     repo = "nom";
     rev = "v${version}";
-    hash = "sha256-PBhwIyGzWbXRTmp+IvFPqae4cbb6l6nIYcFheYkHlFI=";
+    hash = "sha256-W0vfYAEQYixbnOQhA59sj2uSAcbqoS/OMiB3TfXsv/Y=";
   };
 
   vendorHash = "sha256-fP6yxfIQoVaBC9hYcrCyo3YP3ntEVDbDTwKMO9TdyDI=";
diff --git a/nixpkgs/pkgs/by-name/no/nomacs/package.nix b/nixpkgs/pkgs/by-name/no/nomacs/package.nix
index 5f4ee57ed94f..138e4ead7fcd 100644
--- a/nixpkgs/pkgs/by-name/no/nomacs/package.nix
+++ b/nixpkgs/pkgs/by-name/no/nomacs/package.nix
@@ -22,10 +22,9 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-jHr7J0X1v2n/ZK0y3b/XPDISk7e08VWS6nicJU4fKKY=";
   };
 
-  # Because some unknown reason split outputs is breaking on Darwin
-  outputs = if stdenv.isDarwin
-            then [ "out" ]
-            else [ "out" "man" ];
+  outputs = [ "out" ]
+    # man pages are not installed on Darwin, see cmake/{Mac,Unix}BuildTarget.cmake
+    ++ lib.optionals (!stdenv.isDarwin) [ "man" ];
 
   sourceRoot = "${finalAttrs.src.name}/ImageLounge";
 
@@ -58,7 +57,8 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   postInstall = lib.optionalString stdenv.isDarwin ''
-    mkdir -p $out/lib
+    mkdir -p $out/{Applications,lib}
+    mv $out/nomacs.app $out/Applications/nomacs.app
     mv $out/libnomacsCore.dylib $out/lib/libnomacsCore.dylib
   '';
 
diff --git a/nixpkgs/pkgs/by-name/no/normaliz/package.nix b/nixpkgs/pkgs/by-name/no/normaliz/package.nix
new file mode 100644
index 000000000000..be30696ab8fd
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/no/normaliz/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, gmpxx
+, flint
+, arb
+, nauty
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "normaliz";
+  version = "3.10.1";
+
+  src = fetchFromGitHub {
+    owner = "normaliz";
+    repo = "normaliz";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-nnSauTlS5R6wbaoGxR6HFacFYm5r4DAhoP9IVe4ajdc=";
+  };
+
+  buildInputs = [
+    gmpxx
+    flint
+    arb
+    nauty
+  ];
+
+  outputs = [ "out" "lib" "dev" ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
+
+  meta = with lib; {
+    homepage = "https://www.normaliz.uni-osnabrueck.de/";
+    description = "An open source tool for computations in affine monoids, vector configurations, lattice polytopes, and rational cones";
+    maintainers = with maintainers; [ yannickulrich ];
+    platforms = with platforms; unix ++ windows;
+    license = licenses.gpl3Plus;
+    mainProgram = "normaliz";
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/nr/nrpl/package.nix b/nixpkgs/pkgs/by-name/nr/nrpl/package.nix
index 31ed20246e67..c75fe1d5a512 100644
--- a/nixpkgs/pkgs/by-name/nr/nrpl/package.nix
+++ b/nixpkgs/pkgs/by-name/nr/nrpl/package.nix
@@ -31,6 +31,7 @@ buildNimPackage {
 
   meta = with lib; {
     description = "REPL for the Nim programming language";
+    mainProgram = "nrpl";
     homepage = "https://github.com/wheineman/nrpl";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/by-name/ns/nsxiv/package.nix b/nixpkgs/pkgs/by-name/ns/nsxiv/package.nix
index 4e3229b77d2e..ba267571a900 100644
--- a/nixpkgs/pkgs/by-name/ns/nsxiv/package.nix
+++ b/nixpkgs/pkgs/by-name/ns/nsxiv/package.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://nsxiv.codeberg.page/";
     description = "New Suckless X Image Viewer";
+    mainProgram = "nsxiv";
     longDescription = ''
       nsxiv is a fork of now unmaintained sxiv with the purpose of being a
       drop-in replacement of sxiv, maintaining it and adding simple, sensible
diff --git a/nixpkgs/pkgs/by-name/nu/nuget/package.nix b/nixpkgs/pkgs/by-name/nu/nuget/package.nix
index 6bf41690a2ea..664dd7b4e390 100644
--- a/nixpkgs/pkgs/by-name/nu/nuget/package.nix
+++ b/nixpkgs/pkgs/by-name/nu/nuget/package.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation (attrs: {
 
   meta = with lib; {
     description = "A package manager for the .NET platform";
+    mainProgram = "nuget";
     homepage = "https://www.mono-project.com/";
     longDescription = ''
       NuGet is the package manager for the .NET platform.
diff --git a/nixpkgs/pkgs/by-name/nu/numbat/package.nix b/nixpkgs/pkgs/by-name/nu/numbat/package.nix
index d07753b3ffe8..26e0c6f61d5c 100644
--- a/nixpkgs/pkgs/by-name/nu/numbat/package.nix
+++ b/nixpkgs/pkgs/by-name/nu/numbat/package.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "numbat";
-  version = "1.10.1";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = "numbat";
     rev = "v${version}";
-    hash = "sha256-/jt1+21yem0q/dlc7z89MRaVrnllb9QLSQUo2f/9q8o=";
+    hash = "sha256-/XUDtyOk//J4S9NoRP/s5s6URkdzePhW7UQ4FxDgmhs=";
   };
 
-  cargoHash = "sha256-8AA0LTw/9kd6yDme4N3/ANVkS67eoLrJviNhdqUftXM=";
+  cargoHash = "sha256-uM4LmD78ZHAzx5purTO+MUstaSrR+j2LuSDUBI2tl3s=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
diff --git a/nixpkgs/pkgs/by-name/nv/nvidia-container-toolkit/package.nix b/nixpkgs/pkgs/by-name/nv/nvidia-container-toolkit/package.nix
index a584be35e7b2..ba76e4de97e4 100644
--- a/nixpkgs/pkgs/by-name/nv/nvidia-container-toolkit/package.nix
+++ b/nixpkgs/pkgs/by-name/nv/nvidia-container-toolkit/package.nix
@@ -87,7 +87,7 @@ buildGoModule rec {
   ];
 
   nativeBuildInputs = [
-    cudaPackages.autoAddOpenGLRunpathHook
+    cudaPackages.autoAddDriverRunpath
     makeWrapper
   ];
 
diff --git a/nixpkgs/pkgs/by-name/oa/oauth2ms/package.nix b/nixpkgs/pkgs/by-name/oa/oauth2ms/package.nix
index b32ea14d3a9f..0a4787bacd7d 100644
--- a/nixpkgs/pkgs/by-name/oa/oauth2ms/package.nix
+++ b/nixpkgs/pkgs/by-name/oa/oauth2ms/package.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/harishkrupo/oauth2ms";
     description = "XOAUTH2 compatible Office365 token fetcher";
+    mainProgram = "oauth2ms";
     platforms = platforms.all;
     license = licenses.asl20;
     maintainers = with maintainers; [ wentasah ];
diff --git a/nixpkgs/pkgs/by-name/ob/obs-cmd/package.nix b/nixpkgs/pkgs/by-name/ob/obs-cmd/package.nix
new file mode 100644
index 000000000000..71fe89fb7b3e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ob/obs-cmd/package.nix
@@ -0,0 +1,26 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "obs-cmd";
+  version = "0.17.4";
+
+  src = fetchFromGitHub {
+    owner = "grigio";
+    repo = "obs-cmd";
+    rev = "v${version}";
+    hash = "sha256-HCvIMIQZKzIkpYL9F9oM4xiE/gOeI+7dMj9QmhetHm4=";
+  };
+
+  cargoHash = "sha256-AQRjZH3WhZXU6NhDSCv4/HWz5un1nFtuzWPYSJA9XaE=";
+
+  meta = with lib; {
+    description = "Minimal CLI to control OBS Studio via obs-websocket";
+    homepage = "https://github.com/grigio/obs-cmd";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ianmjones ];
+    mainProgram = "obs-cmd";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/oc/octorpki/package.nix b/nixpkgs/pkgs/by-name/oc/octorpki/package.nix
deleted file mode 100644
index 87a8498d28a6..000000000000
--- a/nixpkgs/pkgs/by-name/oc/octorpki/package.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ lib
-, buildGoModule
-, fetchFromGitHub
-, fetchpatch
-}:
-
-buildGoModule rec {
-  pname = "octorpki";
-  version = "1.5.10";
-
-  src = fetchFromGitHub {
-    owner = "cloudflare";
-    repo = "cfrpki";
-    rev = "v${version}";
-    hash = "sha256-eqIAauwFh1Zbv3Jkk8plz1OR3ZW8fs0ugNwwTnSHSFM=";
-  };
-
-  patches = [
-    # https://github.com/cloudflare/cfrpki/pull/150
-    (fetchpatch {
-      url = "https://github.com/cloudflare/cfrpki/commit/fd0c4e95b880c463430c91ce1f86205b9309399b.patch";
-      hash = "sha256-cJ0mWkjtGvgTIH5eEum8h2Gy2PqR+nPto+mj5m/I/d4=";
-    })
-  ];
-
-  ldflags = [
-    "-X main.version=v${version}"
-    "-X main.talpath=${placeholder "out"}/share/tals"
-  ];
-
-  subPackages = [
-    "cmd/octorpki"
-  ];
-
-  postInstall = ''
-    mkdir -p $out/share
-    cp -R cmd/octorpki/tals $out/share/tals
-  '';
-
-  vendorHash = null;
-
-  meta = with lib; {
-    homepage = "https://github.com/cloudflare/cfrpki#octorpki";
-    changelog = "https://github.com/cloudflare/cfrpki/releases/tag/v${version}";
-    description = "A software used to download RPKI (RFC 6480) certificates and validate them";
-    license = licenses.bsd3;
-    platforms = platforms.all;
-    maintainers = teams.wdz.members;
-  };
-}
diff --git a/nixpkgs/pkgs/by-name/oe/oelint-adv/package.nix b/nixpkgs/pkgs/by-name/oe/oelint-adv/package.nix
index 32215b708f98..69686695b05e 100644
--- a/nixpkgs/pkgs/by-name/oe/oelint-adv/package.nix
+++ b/nixpkgs/pkgs/by-name/oe/oelint-adv/package.nix
@@ -6,13 +6,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "oelint-adv";
-  version = "4.4.1";
+  version = "4.4.5";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "oelint_adv";
-    hash = "sha256-Yv0GCz0vZTVrnFjHFIl4XF/jbVD4DJ4J6V6+X5IllJ8=";
+    hash = "sha256-NRTfWHtItwjZi3O26MzH8GtetCkj7egZa3OArs+Q2SY=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -32,6 +32,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Advanced bitbake-recipe linter";
+    mainProgram = "oelint-adv";
     homepage = "https://github.com/priv-kweihmann/oelint-adv";
     changelog = "https://github.com/priv-kweihmann/oelint-adv/releases/tag/v${version}";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/by-name/oi/oil/package.nix b/nixpkgs/pkgs/by-name/oi/oil/package.nix
index 58e52dac3f0d..c6ba73d1ef8e 100644
--- a/nixpkgs/pkgs/by-name/oi/oil/package.nix
+++ b/nixpkgs/pkgs/by-name/oi/oil/package.nix
@@ -7,40 +7,24 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "oil";
-  version = "0.20.0";
+  version = "0.21.0";
 
   src = fetchurl {
-    url = "https://www.oilshell.org/download/oils-for-unix-${version}.tar.gz";
-    hash = "sha256-d4BIRj8bPyd7awZyJPlZYBwr+o82IKGh4y4/urOYOxc=";
+    url = "https://www.oilshell.org/download/oil-${version}.tar.xz";
+    hash = "sha256-eoImAByJFtAEaPYn02XerR/0+dXO8IdhnTEDCMKmlJI=";
   };
 
   postPatch = ''
-    patchShebangs _build
+    patchShebangs build
   '';
 
   preInstall = ''
     mkdir -p $out/bin
   '';
 
-  buildPhase = ''
-    runHook preBuild
-
-    _build/oils.sh
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    ./install
-
-    runHook postInstall
-  '';
-
   strictDeps = true;
   buildInputs = lib.optional withReadline readline;
-  # As of 0.19.0 the build generates an error on MacOS (using clang version 16.0.6 in the builder),
+  # As of 0.20.0 the build generates an error on MacOS (using clang version 16.0.6 in the builder),
   # whereas running it outside of Nix with clang version 15.0.0 generates just a warning. The shell seems to
   # work just fine though, so we disable the error here.
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=incompatible-function-pointer-types";
@@ -55,7 +39,7 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   meta = {
-    description = "A new unix shell";
+    description = "A new unix shell - Python version";
     homepage = "https://www.oilshell.org/";
 
     license = with lib.licenses; [
@@ -64,7 +48,7 @@ stdenv.mkDerivation rec {
     ];
 
     platforms = lib.platforms.all;
-    maintainers = with lib.maintainers; [ lheckemann alva mkg20001 ];
+    maintainers = with lib.maintainers; [ lheckemann alva melkor333 ];
     changelog = "https://www.oilshell.org/release/${version}/changelog.html";
   };
 
diff --git a/nixpkgs/pkgs/by-name/oi/oil-python/package.nix b/nixpkgs/pkgs/by-name/oi/oils-for-unix/package.nix
index 0c5cf044e09a..f477d66d8a07 100644
--- a/nixpkgs/pkgs/by-name/oi/oil-python/package.nix
+++ b/nixpkgs/pkgs/by-name/oi/oils-for-unix/package.nix
@@ -6,25 +6,41 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  pname = "oil";
-  version = "0.20.0";
+  pname = "oils-for-unix";
+  version = "0.21.0";
 
   src = fetchurl {
-    url = "https://www.oilshell.org/download/oil-${version}.tar.xz";
-    hash = "sha256-QrhfUru6Sju44W8j/DlMQwK8/ZY48GfwHDfSPy7kSaA=";
+    url = "https://www.oilshell.org/download/oils-for-unix-${version}.tar.gz";
+    hash = "sha256-g8uEK68J9BsCHEvJGDgsKUmsuR1MvChEC9A00Y2sZU4=";
   };
 
   postPatch = ''
-    patchShebangs build
+    patchShebangs _build
   '';
 
   preInstall = ''
     mkdir -p $out/bin
   '';
 
+  buildPhase = ''
+    runHook preBuild
+
+    _build/oils.sh
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    ./install
+
+    runHook postInstall
+  '';
+
   strictDeps = true;
   buildInputs = lib.optional withReadline readline;
-  # As of 0.20.0 the build generates an error on MacOS (using clang version 16.0.6 in the builder),
+  # As of 0.19.0 the build generates an error on MacOS (using clang version 16.0.6 in the builder),
   # whereas running it outside of Nix with clang version 15.0.0 generates just a warning. The shell seems to
   # work just fine though, so we disable the error here.
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=incompatible-function-pointer-types";
@@ -39,16 +55,13 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   meta = {
-    description = "A new unix shell - Old python build";
+    description = "A Unix shell with JSON-compatible structured data. It's our upgrade path from bash to a better language and runtime.";
     homepage = "https://www.oilshell.org/";
 
-    license = with lib.licenses; [
-      psfl # Includes a portion of the python interpreter and standard library
-      asl20 # Licence for Oil itself
-    ];
+    license = lib.licenses.asl20;
 
     platforms = lib.platforms.all;
-    maintainers = with lib.maintainers; [ lheckemann alva ];
+    maintainers = with lib.maintainers; [ lheckemann alva mkg20001 melkor333 ];
     changelog = "https://www.oilshell.org/release/${version}/changelog.html";
   };
 
diff --git a/nixpkgs/pkgs/by-name/ol/olvid/package.nix b/nixpkgs/pkgs/by-name/ol/olvid/package.nix
new file mode 100644
index 000000000000..1aaf472fef5a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ol/olvid/package.nix
@@ -0,0 +1,108 @@
+{ stdenv
+, lib
+, fetchurl
+, zlib
+, libXext
+, libX11
+, libXrender
+, libXtst
+, libXi
+, freetype
+, alsa-lib
+, jdk21
+, openjfx21
+, autoPatchelfHook
+, makeBinaryWrapper
+, wrapGAppsHook
+}:
+
+let
+  repo = "olvid";
+
+  javafxModules = [ "swing" "controls" "media" "fxml" "graphics" "base" ];
+
+  classpath =
+    lib.concatMap (mod: [
+      "${openjfx21}/modules_src/javafx.${mod}/module-info.java"
+      "${openjfx21}/modules/javafx.${mod}"
+      "${openjfx21}/modules_libs/javafx.${mod}"
+    ]) javafxModules ++
+    [ "$out/share/${repo}/*" ];
+
+  jvmArgs = [
+    "-cp" (lib.concatStringsSep ":" classpath)
+    "-Djpackage.app-version=$version"
+    "-Dolvid.sqlcipher=true"
+    "-Dolvid.dev=false"
+    "-Dolvid.packaged=true"
+    "-Dolvid.multiuser=false"
+    "-Dolvid.debug=false"
+    "-Dolvid.version=$version"
+    "-Djava.net.useSystemProxies=true"
+    "-Djava.library.path=$out/lib/"
+    "-Xss8M"
+    "-XX:+ShowCodeDetailsInExceptionMessages"
+    "--add-opens=java.desktop/java.awt=ALL-UNNAMED"
+    "--add-opens=java.desktop/java.awt.geom=ALL-UNNAMED"
+    "--add-opens=java.desktop/sun.awt.geom=ALL-UNNAMED"
+    "--add-opens=java.base/java.util=ALL-UNNAMED"
+    "--add-opens=java.desktop/javax.swing=ALL-UNNAMED"
+    "--add-opens=java.desktop/sun.awt.shell=ALL-UNNAMED"
+  ];
+in
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "olvid";
+  version = "1.5.0";
+
+  dontUnpack = true;
+  dontWrapGApps = true;
+
+  src = fetchurl {
+    url = "https://static.olvid.io/linux/${repo}-${finalAttrs.version}.tar.gz";
+    hash = "sha256-iiMc9mM+uUVeS1i1gzXMZaMwSChdz7vNrL9uqJlR8NU=";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    makeBinaryWrapper
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    zlib
+    libXext
+    libX11
+    libXrender
+    libXtst
+    libXi
+    freetype
+    alsa-lib
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -dm755 "$out/share/${repo}"
+    tar -xf "$src" -C "$out/share/${repo}" --wildcards --strip-components 3 olvid/lib/app/'*.jar'
+
+    install -dm755 "$out/lib"
+    tar -xf "$src" -C "$out/lib" --strip-components 4 olvid/lib/runtime/lib/
+
+    install -dm755 "$out/bin"
+    makeBinaryWrapper ${jdk21}/bin/java $out/bin/${repo} \
+      "''${gappsWrapperArgs[@]}" \
+      --add-flags "${lib.concatStringsSep " " jvmArgs} io.olvid.windows.messenger.start_up.Launcher"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "The secure french messenger";
+    homepage = "https://www.olvid.io";
+    license = licenses.agpl3Only;
+    mainProgram = "olvid";
+    maintainers = with maintainers; [ rookeur ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/on/onedrivegui/package.nix b/nixpkgs/pkgs/by-name/on/onedrivegui/package.nix
index f9d1fca67539..f0a7eb7b7594 100644
--- a/nixpkgs/pkgs/by-name/on/onedrivegui/package.nix
+++ b/nixpkgs/pkgs/by-name/on/onedrivegui/package.nix
@@ -80,6 +80,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/bpozdena/OneDriveGUI";
     description = "A simple GUI for Linux OneDrive Client, with multi-account support";
+    mainProgram = "onedrivegui";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ chewblacka ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/on/onlyoffice-bin_latest/package.nix b/nixpkgs/pkgs/by-name/on/onlyoffice-bin_latest/package.nix
index b73d179e341d..4f3aaea95f24 100644
--- a/nixpkgs/pkgs/by-name/on/onlyoffice-bin_latest/package.nix
+++ b/nixpkgs/pkgs/by-name/on/onlyoffice-bin_latest/package.nix
@@ -187,6 +187,7 @@ buildFHSEnv {
 
   meta = with lib; {
     description = "Office suite that combines text, spreadsheet and presentation editors allowing to create, view and edit local documents";
+    mainProgram = "onlyoffice-desktopeditors";
     longDescription = ''
       This version is broken on wlroots environments (e.g. Hyprland, Sway).
       If you are using one of these environments, please use `onlyoffice-bin` instead.
diff --git a/nixpkgs/pkgs/by-name/op/opcua-commander/package.nix b/nixpkgs/pkgs/by-name/op/opcua-commander/package.nix
new file mode 100644
index 000000000000..aecae5070ed8
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/op/opcua-commander/package.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+, typescript
+, esbuild
+, makeWrapper
+, nodejs
+}:
+buildNpmPackage rec {
+  pname = "opcua-commander";
+  version = "0.37.0";
+
+  src = fetchFromGitHub {
+    owner = "node-opcua";
+    repo = "opcua-commander";
+    rev = version;
+    hash = "sha256-wQXSSNinY85Ti+D/zklYP2N8IP3OsN9xQNJuuQr4kVU=";
+  };
+
+  npmDepsHash = "sha256-Ux1X/3sam9WHrTfqoWv1r9p3pJOs6BaeFsxHizAvjXA=";
+  nativeBuildInputs = [ esbuild typescript makeWrapper ];
+
+  postPatch = ''
+    substituteInPlace package.json \
+      --replace-warn "npx -y esbuild" "esbuild"
+  '';
+
+  # We need to add `nodejs` to PATH for `opcua-commander` to properly work
+  # when connected to an OPC-UA server.
+  # Test it with:
+  # ./opcua-commander -e opc.tcp://opcuademo.sterfive.com:26543
+  postFixup = ''
+    wrapProgram $out/bin/opcua-commander \
+      --prefix PATH : "${lib.makeBinPath [nodejs]}"
+  '';
+
+  meta = with lib; {
+    description = "A opcua client with blessed (ncurses)";
+    homepage = "https://github.com/node-opcua/opcua-commander";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonboh ];
+    mainProgram = "opcua-commander";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/op/open-scq30/package.nix b/nixpkgs/pkgs/by-name/op/open-scq30/package.nix
index 04d9b036d385..12b709282f6c 100644
--- a/nixpkgs/pkgs/by-name/op/open-scq30/package.nix
+++ b/nixpkgs/pkgs/by-name/op/open-scq30/package.nix
@@ -18,13 +18,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "open-scq30";
-  version = "1.10.6";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "Oppzippy";
     repo = "OpenSCQ30";
     rev = "v${version}";
-    hash = "sha256-qYWLf0ns4YSq+yAspVTMvKQi861iUMJar2wjqm+BV/0=";
+    hash = "sha256-yls7F6ou0TsoY6CDi694fJrq30Y3B6d96T1VWl47K0w=";
   };
 
   nativeBuildInputs = [
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
     darwin.apple_sdk.frameworks.Foundation
   ];
 
-  cargoHash = "sha256-BQLNm+yyimBh7WomrccdQ2lvrQzCNXf4MEa1LlPhck0=";
+  cargoHash = "sha256-VxweKzXNWOrBrzLzId8D6O0tZG8bI7HjhD+GJ3vRyhk=";
 
   INSTALL_PREFIX = placeholder "out";
 
diff --git a/nixpkgs/pkgs/by-name/op/openapi-tui/package.nix b/nixpkgs/pkgs/by-name/op/openapi-tui/package.nix
new file mode 100644
index 000000000000..fdbc0b6cb1d3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/op/openapi-tui/package.nix
@@ -0,0 +1,28 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "openapi-tui";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "zaghaghi";
+    repo = "openapi-tui";
+    rev = version;
+    hash = "sha256-flxQ5+nLacQAkrxJafw9D3iXYTFpHcmTshEySmFJ0Cc=";
+  };
+
+  cargoHash = "sha256-vfEDbUrIXc498QnMJJlMGyTUDvlHgquB5GpWTe7yCvM=";
+
+  meta = with lib; {
+    description = "Terminal UI to list, browse and run APIs defined with openapi spec";
+    homepage = "https://github.com/zaghaghi/openapi-tui";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthiasbeyer ];
+    mainProgram = "openapi-tui";
+  };
+}
+
diff --git a/nixpkgs/pkgs/by-name/op/opencflite/package.nix b/nixpkgs/pkgs/by-name/op/opencflite/package.nix
new file mode 100644
index 000000000000..0da9e52e81d6
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/op/opencflite/package.nix
@@ -0,0 +1,43 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  pkg-config,
+  icu,
+  libkqueue,
+  libuuid,
+  tzdata,
+  zlib,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "opencflite";
+  version = "635.21.8";
+
+  src = fetchFromGitHub {
+    owner = "gerickson";
+    repo = "opencflite";
+    rev = "opencflite-${version}";
+    hash = "sha256-ijyj4SFYQ0wZAFM2ehNnR9+yu5yDTSVW3VBycBT9l+A=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [
+    icu
+    libkqueue
+    libuuid
+    tzdata
+    zlib
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Cross platform port of the macOS CoreFoundation";
+    homepage = "https://github.com/gerickson/opencflite";
+    license = lib.licenses.apsl20;
+    maintainers = with lib.maintainers; [ wegank ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/opencomposite/helper.nix b/nixpkgs/pkgs/by-name/op/opencomposite-helper/package.nix
index f19f5e868139..f19f5e868139 100644
--- a/nixpkgs/pkgs/development/libraries/opencomposite/helper.nix
+++ b/nixpkgs/pkgs/by-name/op/opencomposite-helper/package.nix
diff --git a/nixpkgs/pkgs/development/libraries/opencomposite/default.nix b/nixpkgs/pkgs/by-name/op/opencomposite/package.nix
index fc1b6e631964..dff4e5988cda 100644
--- a/nixpkgs/pkgs/development/libraries/opencomposite/default.nix
+++ b/nixpkgs/pkgs/by-name/op/opencomposite/package.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation {
   pname = "opencomposite";
-  version = "unstable-2024-02-16";
+  version = "unstable-2024-03-04";
 
   src = fetchFromGitLab {
     owner = "znixian";
     repo = "OpenOVR";
-    rev = "737bbedd29343bc2f808804e2b24302390a07655";
-    hash = "sha256-azb7T0d0YMQRc0Slq1tzNj6bOmCzfHW3ciY9lN+RTao=";
+    rev = "1bfdf67358add5f573efedbec1fa65d18b790e0e";
+    hash = "sha256-qF5oMI9B5a1oE2gQb/scbom/39Efccja0pTPHHaHMA8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/by-name/op/opengist/package.nix b/nixpkgs/pkgs/by-name/op/opengist/package.nix
index fb9efcd7b076..053c088a6990 100644
--- a/nixpkgs/pkgs/by-name/op/opengist/package.nix
+++ b/nixpkgs/pkgs/by-name/op/opengist/package.nix
@@ -62,6 +62,7 @@ buildGoModule {
 
   meta = {
     description = "Self-hosted pastebin powered by Git";
+    mainProgram = "opengist";
     homepage = "https://github.com/thomiceli/opengist";
     license = lib.licenses.agpl3Only;
     maintainers = with lib.maintainers; [ lf- ];
diff --git a/nixpkgs/pkgs/by-name/op/opengv/package.nix b/nixpkgs/pkgs/by-name/op/opengv/package.nix
new file mode 100644
index 000000000000..ffe10a4d732b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/op/opengv/package.nix
@@ -0,0 +1,45 @@
+{ lib
+, stdenv
+, eigen
+, fetchFromGitHub
+, cmake
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "opengv";
+  version = "0-unstable-2020-08-06";
+
+  src = fetchFromGitHub {
+    owner = "laurentkneip";
+    repo = "opengv";
+    rev = "91f4b19c73450833a40e463ad3648aae80b3a7f3";
+    hash = "sha256-LfnylJ9NCHlqjT76Tgku4NwxULJ+WDAcJQ2lDKGWSI4=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    eigen
+  ];
+
+  cmakeFlakes = [
+    (lib.cmakeFeature "CMAKE_BUILD_TYPE" "Release")
+  ];
+
+  meta = {
+    description = "A collection of computer vision methods for solving geometric vision problems";
+    homepage = "https://github.com/laurentkneip/opengv";
+    license = lib.licenses.bsd2;
+    longDescription = ''OpenGV is a collection of computer vision methods for solving
+        geometric vision problems. It contains absolute-pose, relative-pose,
+        triangulation, and point-cloud alignment methods for the calibrated
+        case. All problems can be solved with central or non-central cameras,
+        and embedded into a random sample consensus or nonlinear optimization
+        context. Matlab and Python interfaces are implemented as well. The link
+        to the above pages also shows links to precompiled Matlab mex-libraries.
+        Please consult the documentation for more information.'';
+    maintainers = [ lib.maintainers.locochoco ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/op/openscad-unstable/package.nix b/nixpkgs/pkgs/by-name/op/openscad-unstable/package.nix
index cd14fb525c36..05aaf2dee012 100644
--- a/nixpkgs/pkgs/by-name/op/openscad-unstable/package.nix
+++ b/nixpkgs/pkgs/by-name/op/openscad-unstable/package.nix
@@ -15,25 +15,27 @@
 , flex
 , fontconfig
 , freetype
+, ghostscript
 , glib
 , glm
 , gmp
 , harfbuzz
 , hidapi
 , lib3mf
-, libGL
 , libGLU
 , libICE
 , libSM
 , libsForQt5
 , libspnav
 , libzip
+, mesa
 , mpfr
 , python3
 , tbb_2021_8
 , wayland
 , wayland-protocols
 , wrapGAppsHook
+, xorg
 }:
 let
   # get cccl from source to avoid license issues
@@ -79,24 +81,25 @@ in
 # clang consume much less RAM than GCC
 clangStdenv.mkDerivation rec {
   pname = "openscad-unstable";
-  version = "2024-02-18";
+  version = "2024-03-10";
   src = fetchFromGitHub {
     owner = "openscad";
     repo = "openscad";
-    rev = "f5688998760d6b85d7b280300388448c162edc42";
-    hash = "sha256-rQnih7Am7NvlrTwIGAN4QbZCcziFm6YOOT27wmjcY8A=";
+    rev = "db167b1df31fbd8a2101cf3a13dac148b0c2165d";
+    hash = "sha256-i2ZGYsNfMLDi3wRd/lohs9BuO2KuQ/7kJIXGtV65OQU=";
     fetchSubmodules = true;
   };
+  patches = [ ./test.diff ];
   nativeBuildInputs = [
-    pkg-config
-    cmake
-    ninja
+    (python3.withPackages (ps: with ps; [ numpy pillow ]))
     bison
+    cmake
     flex
-    python3
     libsForQt5.qt5.wrapQtAppsHook
     llvmPackages.bintools
     wrapGAppsHook
+    ninja
+    pkg-config
   ];
   buildInputs = with libsForQt5; with qt5; [
     # manifold dependencies
@@ -112,6 +115,7 @@ clangStdenv.mkDerivation rec {
     eigen
     fontconfig
     freetype
+    ghostscript
     glib
     gmp
     harfbuzz
@@ -124,7 +128,15 @@ clangStdenv.mkDerivation rec {
     qtbase
     qtmultimedia
   ]
-  ++ lib.optionals clangStdenv.isLinux [ libICE libSM libGLU libGL wayland wayland-protocols qtwayland ]
+  ++ lib.optionals clangStdenv.isLinux [
+    xorg.libXdmcp
+    libICE
+    libSM
+    wayland
+    wayland-protocols
+    qtwayland
+    libGLU
+  ]
   ++ lib.optional clangStdenv.isDarwin qtmacextras
   ;
   cmakeFlags = [
@@ -133,11 +145,18 @@ clangStdenv.mkDerivation rec {
     "-DUSE_BUILTIN_OPENCSG=ON" # bundled latest opencsg
     "-DOPENSCAD_VERSION=\"${builtins.replaceStrings ["-"] ["."] version}\""
     "-DCMAKE_UNITY_BUILD=ON" # faster build
-    "-DENABLE_TESTS=OFF" # tests do not work for now
     # IPO
     "-DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld"
     "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON"
   ];
+  doCheck = true;
+  checkPhase = ''
+    # for running mesa llvmpipe
+    export __EGL_VENDOR_LIBRARY_FILENAMES=${mesa.drivers}/share/glvnd/egl_vendor.d/50_mesa.json
+    export LIBGL_DRIVERS_PATH=${mesa.drivers}/lib:${mesa.drivers}/lib/dri
+    # some fontconfig issues cause pdf output to have wrong font
+    ctest -j$NIX_BUILD_CORES -E pdfexporttest.\*
+  '';
   meta = with lib; {
     description = "3D parametric model compiler (unstable)";
     longDescription = ''
diff --git a/nixpkgs/pkgs/by-name/op/openscad-unstable/test.diff b/nixpkgs/pkgs/by-name/op/openscad-unstable/test.diff
new file mode 100644
index 000000000000..23b3983daddd
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/op/openscad-unstable/test.diff
@@ -0,0 +1,42 @@
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 5c1b40af4..917451dee 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -59,13 +59,14 @@ if(USE_IMAGE_COMPARE_PY)
+ 
+   # Since msys2 on Windows prefers bin/ over Scripts, we need to look for the actual folder to determine
+   # how to utilize the venv
+-  find_path(VENV_BIN_PATH activate PATHS "${VENV_DIR}/bin" "${VENV_DIR}/Scripts" NO_DEFAULT_PATH NO_CACHE)
+-  if(WIN32)
+-    set(IMAGE_COMPARE_EXE "${VENV_BIN_PATH}/python.exe")
+-  else()
+-    set(IMAGE_COMPARE_EXE "${VENV_BIN_PATH}/python")
+-  endif()
+-  if(EXISTS "${IMAGE_COMPARE_EXE}")
++  # find_path(VENV_BIN_PATH activate PATHS "${VENV_DIR}/bin" "${VENV_DIR}/Scripts" NO_DEFAULT_PATH NO_CACHE)
++  # if(WIN32)
++  #   set(IMAGE_COMPARE_EXE "${VENV_BIN_PATH}/python.exe")
++  # else()
++  #   set(IMAGE_COMPARE_EXE "${VENV_BIN_PATH}/python")
++  # endif()
++  set(IMAGE_COMPARE_EXE "python3")
++  # if(EXISTS "${IMAGE_COMPARE_EXE}")
+     message(STATUS "venv found, testing libraries")
+     execute_process(
+       COMMAND "${IMAGE_COMPARE_EXE}" "${CCSD}/image_compare.py" "--status"
+@@ -77,10 +78,10 @@ if(USE_IMAGE_COMPARE_PY)
+       message(STATUS "venv libraries complete")
+       set(BUILD_VENV FALSE)
+     endif()
+-  else()
+-    message(STATUS "venv not found")
+-    set(BUILD_VENV TRUE)
+-  endif()
++  # else()
++  #   message(STATUS "venv not found")
++  #   set(BUILD_VENV TRUE)
++  # endif()
+   if(BUILD_VENV)
+     message(STATUS "Setting up testing venv for image comparison")
+     execute_process(
+
diff --git a/nixpkgs/pkgs/by-name/op/opensnitch-ui/package.nix b/nixpkgs/pkgs/by-name/op/opensnitch-ui/package.nix
index c8aef3a05123..a22767daacdc 100644
--- a/nixpkgs/pkgs/by-name/op/opensnitch-ui/package.nix
+++ b/nixpkgs/pkgs/by-name/op/opensnitch-ui/package.nix
@@ -67,6 +67,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "An application firewall";
+    mainProgram = "opensnitch-ui";
     homepage = "https://github.com/evilsocket/opensnitch/wiki";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/by-name/op/opensnitch/package.nix b/nixpkgs/pkgs/by-name/op/opensnitch/package.nix
index 1ba7f6e65dc4..df8647bdeb05 100644
--- a/nixpkgs/pkgs/by-name/op/opensnitch/package.nix
+++ b/nixpkgs/pkgs/by-name/op/opensnitch/package.nix
@@ -92,6 +92,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An application firewall";
+    mainProgram = "opensnitchd";
     homepage = "https://github.com/evilsocket/opensnitch/wiki";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/by-name/op/openttd-ttf/package.nix b/nixpkgs/pkgs/by-name/op/openttd-ttf/package.nix
index 6c9f71999588..d647e1a3c74a 100644
--- a/nixpkgs/pkgs/by-name/op/openttd-ttf/package.nix
+++ b/nixpkgs/pkgs/by-name/op/openttd-ttf/package.nix
@@ -6,13 +6,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "openttd-ttf";
-  version = "0.5";
+  version = "0.6";
 
   src = fetchFromGitHub {
     owner = "zephyris";
     repo = "openttd-ttf";
     rev = "refs/tags/${finalAttrs.version}";
-    hash = "sha256-GjtfwM268i3bUAX8Pw5/Og9029AuD1OZuJ2VIlFTogY=";
+    hash = "sha256-Nr3oLiCEdpUhB/IczCEoLM8kb1hGDH/d6WYWRbjgOi8=";
   };
 
   nativeBuildInputs = [
@@ -25,6 +25,9 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   postPatch = ''
     chmod a+x build.sh
+    # Test requires openttd source and an additional python module, doesn't seem worth it
+    substituteInPlace build.sh \
+      --replace-fail "python3 checkOpenTTDStrings.py ../openttd/src/lang" ""
     patchShebangs --build build.sh
   '';
 
diff --git a/nixpkgs/pkgs/by-name/op/opshin/package.nix b/nixpkgs/pkgs/by-name/op/opshin/package.nix
new file mode 100644
index 000000000000..12fd3671cfee
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/op/opshin/package.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "opshin";
+  version = "0.20.0";
+
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "OpShin";
+    repo = "opshin";
+    rev = version;
+    hash = "sha256-fJlPeVAuEf80FVxdXnaKASLmjMEgz6ysXenUY72+sos=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    setuptools
+    poetry-core
+    uplc
+    pluthon
+    pycardano
+    frozenlist2
+    astunparse
+    ordered-set
+  ];
+
+  meta = with lib; {
+    description = "A simple pythonic programming language for Smart Contracts on Cardano";
+    homepage = "https://opshin.dev";
+    license = licenses.mit;
+    maintainers = with maintainers; [ t4ccer ];
+    mainProgram = "opshin";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/owmods-cli/default.nix b/nixpkgs/pkgs/by-name/ow/owmods-cli/package.nix
index 44a711dfeec1..19961f193e2a 100644
--- a/nixpkgs/pkgs/applications/misc/owmods-cli/default.nix
+++ b/nixpkgs/pkgs/by-name/ow/owmods-cli/package.nix
@@ -6,34 +6,40 @@
 , pkg-config
 , installShellFiles
 , zstd
+, libsoup_3
+, makeWrapper
+, mono
+, wrapWithMono ? true
 , openssl
-, Security
+, darwin
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "owmods-cli";
-  version = "0.12.2";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "ow-mods";
     repo = "ow-mod-man";
     rev = "cli_v${version}";
-    hash = "sha256-AfqpLL3cGZLKW5/BE6SaBe4S8GzYM2GKUZU8mFH5uX4=";
+    hash = "sha256-JCPuKGO0pbhQaNmZUcZ95EZbXubrjZnw0qJmKCGuAoQ=";
   };
 
-  cargoHash = "sha256-PhdfpiUgeOB13ROgzPBYM+sBLGMP+RtV9j9ebo8PpJU=";
+  cargoHash = "sha256-dTEEpjonvFYFv16e0eS71B4OMiYueYSfcs8gmSYeHPc=";
 
   nativeBuildInputs = [
     pkg-config
     installShellFiles
-  ];
+  ] ++ lib.optional wrapWithMono makeWrapper;
 
   buildInputs = [
     zstd
+    libsoup_3
   ] ++ lib.optionals stdenv.isLinux [
     openssl
   ] ++ lib.optionals stdenv.isDarwin [
-    Security
+    darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
   env = {
@@ -44,9 +50,11 @@ rustPlatform.buildRustPackage rec {
 
   postInstall = ''
     cargo xtask dist_cli
-    installManPage man/man*/*
+    installManPage dist/cli/man/*
     installShellCompletion --cmd owmods \
-      dist/cli/completions/owmods.{bash,fish,zsh}
+    dist/cli/completions/owmods.{bash,fish,zsh}
+    '' + lib.optionalString wrapWithMono ''
+    wrapProgram $out/bin/${meta.mainProgram} --prefix PATH : '${mono}/bin'
   '';
 
   passthru.updateScript = nix-update-script {};
@@ -58,6 +66,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/ow-mods/ow-mod-man/releases/tag/cli_v${version}";
     mainProgram = "owmods";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ locochoco ];
+    maintainers = with maintainers; [ bwc9876 spoonbaker locochoco ];
   };
 }
diff --git a/nixpkgs/pkgs/by-name/pa/pacu/package.nix b/nixpkgs/pkgs/by-name/pa/pacu/package.nix
new file mode 100644
index 000000000000..91122b15a79d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pa/pacu/package.nix
@@ -0,0 +1,85 @@
+{ lib
+, awscli
+, fetchFromGitHub
+, python3
+}:
+
+
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+      sqlalchemy = super.sqlalchemy_1_4;
+    };
+  };
+in python.pkgs.buildPythonApplication rec {
+  pname = "pacu";
+  version = "1.5.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "RhinoSecurityLabs";
+    repo = "pacu";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-Ty++jNJTk8YKy6Sl6xj1Xs25ZxJCeF9m/iwdA2fRXnI=";
+  };
+
+  pythonRelaxDeps = [
+    "dsnap"
+    "sqlalchemy-utils"
+    "sqlalchemy"
+    "urllib3"
+  ];
+
+  nativeBuildInputs = with python.pkgs; [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = [
+    awscli
+  ] ++ (with python.pkgs; [
+    awscli
+    boto3
+    botocore
+    chalice
+    dsnap
+    jq
+    policyuniverse
+    pycognito
+    pyyaml
+    qrcode
+    requests
+    sqlalchemy
+    sqlalchemy-utils
+    toml
+    typing-extensions
+    urllib3
+  ]);
+
+  nativeCheckInputs = with python.pkgs; [
+    moto
+    pytestCheckHook
+  ];
+
+  postBuild = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  pythonImportsCheck = [
+    "pacu"
+  ];
+
+  disabledTests = [
+    # sqlalchemy.exc.ArgumentError: Textual SQL expression
+    #"test_migrations"
+  ];
+
+  meta = with lib; {
+    description = "AWS exploitation framework";
+    homepage = "https://github.com/RhinoSecurityLabs/pacu";
+    changelog = "https://github.com/RhinoSecurityLabs/pacu/releases/tag/v${version}";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "pacu";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pa/passes/package.nix b/nixpkgs/pkgs/by-name/pa/passes/package.nix
index 39a502038b52..e7abf9d95f00 100644
--- a/nixpkgs/pkgs/by-name/pa/passes/package.nix
+++ b/nixpkgs/pkgs/by-name/pa/passes/package.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A digital pass manager";
+    mainProgram = "passes";
     homepage = "https://github.com/pablo-s/passes";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fgaz ];
diff --git a/nixpkgs/pkgs/by-name/pa/payme/package.nix b/nixpkgs/pkgs/by-name/pa/payme/package.nix
new file mode 100644
index 000000000000..5465274e1863
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pa/payme/package.nix
@@ -0,0 +1,39 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "payme";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "jovandeginste";
+    repo = "payme";
+    rev = "v${version}";
+    hash = "sha256-2gZgmYgLaJQRQ+3VOUDnMm5QBjfKyxyutVf9NrbGO3g=";
+    leaveDotGit = true;
+    postFetch = ''
+      cd "$out"
+      git rev-parse HEAD > $out/COMMIT
+      find "$out" -name .git -print0 | xargs -0 rm -rf
+    '';
+  };
+
+  vendorHash = null;
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.gitRefName=${src.rev}"
+  ];
+
+  preBuild = ''
+    ldflags+=" -X main.gitCommit=$(cat COMMIT)"
+  '';
+
+  meta = {
+    description = "QR code generator (ASCII & PNG) for SEPA payments";
+    mainProgram = "payme";
+    homepage = "https://github.com/jovandeginste/payme";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ cimm ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pd/pdfannots2json/package.nix b/nixpkgs/pkgs/by-name/pd/pdfannots2json/package.nix
index 01c30fe1fb52..9d32f9a7c92c 100644
--- a/nixpkgs/pkgs/by-name/pd/pdfannots2json/package.nix
+++ b/nixpkgs/pkgs/by-name/pd/pdfannots2json/package.nix
@@ -18,8 +18,9 @@ in
 
     meta = with lib; {
       homepage = "https://github.com/mgmeyers/pdfannots2json";
-      license = licenses.agpl3;
+      license = licenses.agpl3Only;
       description = "A tool to convert PDF annotations to JSON";
+      mainProgram = "pdfannots2json";
       maintainers = with maintainers; [ _0nyr ];
     };
   }
diff --git a/nixpkgs/pkgs/by-name/pd/pdpmake/package.nix b/nixpkgs/pkgs/by-name/pd/pdpmake/package.nix
new file mode 100644
index 000000000000..808de7bb755d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pd/pdpmake/package.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub }:
+stdenv.mkDerivation rec {
+  pname = "pdpmake";
+  version = "1.4.1";
+
+  src = fetchFromGitHub {
+    owner = "rmyorston";
+    repo = "pdpmake";
+    rev = version;
+    hash = "sha256-N9MT+3nE8To0ktNTPT9tDHkKRrn4XsTYiTeYdBk9VtI=";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  doCheck = true;
+  checkTarget = "test";
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/rmyorston/pdpmake";
+    description = "Public domain POSIX make";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ eownerdead ];
+    mainProgram = "pdpmake";
+    platforms = platforms.all;
+    badPlatforms = platforms.darwin; # Requires `uimensat`
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pe/peergos/package.nix b/nixpkgs/pkgs/by-name/pe/peergos/package.nix
index d51f0504bd49..f91c8ea78618 100644
--- a/nixpkgs/pkgs/by-name/pe/peergos/package.nix
+++ b/nixpkgs/pkgs/by-name/pe/peergos/package.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A p2p, secure file storage, social network and application protocol";
+    mainProgram = "peergos";
     homepage = "https://peergos.org/";
     # peergos have agpt3 license, peergos-web-ui have gpl3, both are used
     license = [ licenses.agpl3Only licenses.gpl3Only ];
diff --git a/nixpkgs/pkgs/by-name/pe/perf_data_converter/package.nix b/nixpkgs/pkgs/by-name/pe/perf_data_converter/package.nix
new file mode 100644
index 000000000000..18b6704877ec
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pe/perf_data_converter/package.nix
@@ -0,0 +1,63 @@
+{
+  lib,
+  stdenv,
+  buildBazelPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  bazel_6,
+  jdk,
+  elfutils,
+  libcap,
+}:
+
+buildBazelPackage rec {
+  pname = "perf_data_converter";
+  version = "0-unstable-2024-03-12";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "perf_data_converter";
+    rev = "e1cfe1e7e5d8cf3b728a166bf02d4227c82801eb";
+    hash = "sha256-Y3tBLH2jf1f28o6RK2inq9FulKc66qcqwKmxYdFC5tA=";
+  };
+
+  bazel = bazel_6;
+  bazelFlags = [
+    "--java_runtime_version=local_jdk"
+    "--tool_java_runtime_version=local_jdk"
+  ];
+
+  fetchAttrs = {
+    sha256 = "sha256-IauQ4zEn9YHppLgW+4XjPv4N5IZlEkp//tE/Dy7k28s=";
+  };
+
+  nativeBuildInputs = [ jdk ];
+
+  buildInputs = [
+    elfutils
+    libcap
+  ];
+
+  removeRulesCC = false;
+
+  bazelBuildFlags = [ "-c opt" ];
+  bazelTargets = [ "src:perf_to_profile" ];
+
+  bazelTestTargets = [ "src:all" ];
+
+  buildAttrs = {
+    installPhase = ''
+      runHook preInstall
+      install -Dm555 -t "$out/bin" bazel-bin/src/perf_to_profile
+      runHook postInstall
+    '';
+  };
+
+  meta = with lib; {
+    description = "Tool to convert Linux perf files to the profile.proto format used by pprof";
+    homepage = "https://github.com/google/perf_data_converter";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ hzeller ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pe/pest/composer.lock b/nixpkgs/pkgs/by-name/pe/pest/composer.lock
index 78fe5a55d1bd..b6d04a35b1e9 100644
--- a/nixpkgs/pkgs/by-name/pe/pest/composer.lock
+++ b/nixpkgs/pkgs/by-name/pe/pest/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "393fa917247bc6e80a22f6f93d4871ea",
+    "content-hash": "3334c385a76e74a9e5a3cc6af8daed8e",
     "packages": [
         {
             "name": "brianium/paratest",
@@ -281,16 +281,16 @@
         },
         {
             "name": "jean85/pretty-package-versions",
-            "version": "2.0.5",
+            "version": "2.0.6",
             "source": {
                 "type": "git",
                 "url": "https://github.com/Jean85/pretty-package-versions.git",
-                "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af"
+                "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af",
-                "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af",
+                "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/f9fdd29ad8e6d024f52678b570e5593759b550b4",
+                "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4",
                 "shasum": ""
             },
             "require": {
@@ -298,9 +298,9 @@
                 "php": "^7.1|^8.0"
             },
             "require-dev": {
-                "friendsofphp/php-cs-fixer": "^2.17",
+                "friendsofphp/php-cs-fixer": "^3.2",
                 "jean85/composer-provided-replaced-stub-package": "^1.0",
-                "phpstan/phpstan": "^0.12.66",
+                "phpstan/phpstan": "^1.4",
                 "phpunit/phpunit": "^7.5|^8.5|^9.4",
                 "vimeo/psalm": "^4.3"
             },
@@ -334,9 +334,9 @@
             ],
             "support": {
                 "issues": "https://github.com/Jean85/pretty-package-versions/issues",
-                "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5"
+                "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.6"
             },
-            "time": "2021-10-08T21:21:46+00:00"
+            "time": "2024-03-08T09:58:59+00:00"
         },
         {
             "name": "myclabs/deep-copy",
@@ -399,25 +399,27 @@
         },
         {
             "name": "nikic/php-parser",
-            "version": "v4.18.0",
+            "version": "v5.0.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/nikic/PHP-Parser.git",
-                "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999"
+                "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999",
-                "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999",
+                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13",
+                "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13",
                 "shasum": ""
             },
             "require": {
+                "ext-ctype": "*",
+                "ext-json": "*",
                 "ext-tokenizer": "*",
-                "php": ">=7.0"
+                "php": ">=7.4"
             },
             "require-dev": {
                 "ircmaxell/php-yacc": "^0.0.7",
-                "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+                "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
             },
             "bin": [
                 "bin/php-parse"
@@ -425,7 +427,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "4.9-dev"
+                    "dev-master": "5.0-dev"
                 }
             },
             "autoload": {
@@ -449,43 +451,43 @@
             ],
             "support": {
                 "issues": "https://github.com/nikic/PHP-Parser/issues",
-                "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0"
+                "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2"
             },
-            "time": "2023-12-10T21:03:43+00:00"
+            "time": "2024-03-05T20:51:40+00:00"
         },
         {
             "name": "nunomaduro/collision",
-            "version": "v8.1.0",
+            "version": "v8.1.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/nunomaduro/collision.git",
-                "reference": "0d655ffbf3edf9b366e0eea5ab9c7871e0ab3357"
+                "reference": "13e5d538b95a744d85f447a321ce10adb28e9af9"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/nunomaduro/collision/zipball/0d655ffbf3edf9b366e0eea5ab9c7871e0ab3357",
-                "reference": "0d655ffbf3edf9b366e0eea5ab9c7871e0ab3357",
+                "url": "https://api.github.com/repos/nunomaduro/collision/zipball/13e5d538b95a744d85f447a321ce10adb28e9af9",
+                "reference": "13e5d538b95a744d85f447a321ce10adb28e9af9",
                 "shasum": ""
             },
             "require": {
                 "filp/whoops": "^2.15.4",
-                "nunomaduro/termwind": "^2.0.0",
+                "nunomaduro/termwind": "^2.0.1",
                 "php": "^8.2.0",
-                "symfony/console": "^7.0.2"
+                "symfony/console": "^7.0.4"
             },
             "conflict": {
                 "laravel/framework": "<11.0.0 || >=12.0.0",
                 "phpunit/phpunit": "<10.5.1 || >=12.0.0"
             },
             "require-dev": {
-                "larastan/larastan": "^2.8.1",
+                "larastan/larastan": "^2.9.2",
                 "laravel/framework": "^11.0.0",
-                "laravel/pint": "^1.13.8",
-                "laravel/sail": "^1.27.0",
+                "laravel/pint": "^1.14.0",
+                "laravel/sail": "^1.28.2",
                 "laravel/sanctum": "^4.0.0",
                 "laravel/tinker": "^2.9.0",
                 "orchestra/testbench-core": "^9.0.0",
-                "pestphp/pest": "^2.31.0 || ^3.0.0",
+                "pestphp/pest": "^2.34.1 || ^3.0.0",
                 "sebastian/environment": "^6.0.1 || ^7.0.0"
             },
             "type": "library",
@@ -548,36 +550,36 @@
                     "type": "patreon"
                 }
             ],
-            "time": "2024-01-12T13:38:24+00:00"
+            "time": "2024-03-06T16:20:09+00:00"
         },
         {
             "name": "nunomaduro/termwind",
-            "version": "v2.0.0",
+            "version": "v2.0.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/nunomaduro/termwind.git",
-                "reference": "e534f661e09b712e51971e2cf0f662f83116d5ad"
+                "reference": "58c4c58cf23df7f498daeb97092e34f5259feb6a"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/e534f661e09b712e51971e2cf0f662f83116d5ad",
-                "reference": "e534f661e09b712e51971e2cf0f662f83116d5ad",
+                "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/58c4c58cf23df7f498daeb97092e34f5259feb6a",
+                "reference": "58c4c58cf23df7f498daeb97092e34f5259feb6a",
                 "shasum": ""
             },
             "require": {
                 "ext-mbstring": "*",
                 "php": "^8.2",
-                "symfony/console": "^7.0.1"
+                "symfony/console": "^7.0.4"
             },
             "require-dev": {
-                "ergebnis/phpstan-rules": "^2.1.0",
+                "ergebnis/phpstan-rules": "^2.2.0",
                 "illuminate/console": "^11.0.0",
-                "laravel/pint": "^1.13.7",
-                "mockery/mockery": "^1.6.6",
-                "pestphp/pest": "^2.28.0",
-                "phpstan/phpstan": "^1.10.48",
+                "laravel/pint": "^1.14.0",
+                "mockery/mockery": "^1.6.7",
+                "pestphp/pest": "^2.34.1",
+                "phpstan/phpstan": "^1.10.59",
                 "phpstan/phpstan-strict-rules": "^1.5.2",
-                "symfony/var-dumper": "^7.0.0",
+                "symfony/var-dumper": "^7.0.4",
                 "thecodingmachine/phpstan-strict-rules": "^1.0.0"
             },
             "type": "library",
@@ -620,7 +622,7 @@
             ],
             "support": {
                 "issues": "https://github.com/nunomaduro/termwind/issues",
-                "source": "https://github.com/nunomaduro/termwind/tree/v2.0.0"
+                "source": "https://github.com/nunomaduro/termwind/tree/v2.0.1"
             },
             "funding": [
                 {
@@ -636,7 +638,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2023-12-08T16:23:40+00:00"
+            "time": "2024-03-06T16:17:14+00:00"
         },
         {
             "name": "pestphp/pest-plugin",
@@ -1114,16 +1116,16 @@
         },
         {
             "name": "phpunit/php-code-coverage",
-            "version": "10.1.12",
+            "version": "10.1.14",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
-                "reference": "842f72662d6b9edda84c4b6f13885fd9cd53dc63"
+                "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/842f72662d6b9edda84c4b6f13885fd9cd53dc63",
-                "reference": "842f72662d6b9edda84c4b6f13885fd9cd53dc63",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
+                "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
                 "shasum": ""
             },
             "require": {
@@ -1180,7 +1182,7 @@
             "support": {
                 "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
                 "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
-                "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.12"
+                "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14"
             },
             "funding": [
                 {
@@ -1188,7 +1190,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2024-03-02T07:22:05+00:00"
+            "time": "2024-03-12T15:33:41+00:00"
         },
         {
             "name": "phpunit/php-file-iterator",
@@ -1435,16 +1437,16 @@
         },
         {
             "name": "phpunit/phpunit",
-            "version": "10.5.11",
+            "version": "10.5.13",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "0d968f6323deb3dbfeba5bfd4929b9415eb7a9a4"
+                "reference": "20a63fc1c6db29b15da3bd02d4b6cf59900088a7"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0d968f6323deb3dbfeba5bfd4929b9415eb7a9a4",
-                "reference": "0d968f6323deb3dbfeba5bfd4929b9415eb7a9a4",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/20a63fc1c6db29b15da3bd02d4b6cf59900088a7",
+                "reference": "20a63fc1c6db29b15da3bd02d4b6cf59900088a7",
                 "shasum": ""
             },
             "require": {
@@ -1516,7 +1518,7 @@
             "support": {
                 "issues": "https://github.com/sebastianbergmann/phpunit/issues",
                 "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
-                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.11"
+                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.13"
             },
             "funding": [
                 {
@@ -1532,7 +1534,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-02-25T14:05:00+00:00"
+            "time": "2024-03-12T15:37:41+00:00"
         },
         {
             "name": "psr/container",
@@ -3712,22 +3714,22 @@
         },
         {
             "name": "pestphp/pest-plugin-type-coverage",
-            "version": "v2.8.0",
+            "version": "v2.8.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/pestphp/pest-plugin-type-coverage.git",
-                "reference": "cfb7436391d38b7bfd755549a3a5b190c39ffd24"
+                "reference": "4be0cf0faca7d207c5d97af8ab68a450ebf8da24"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/pestphp/pest-plugin-type-coverage/zipball/cfb7436391d38b7bfd755549a3a5b190c39ffd24",
-                "reference": "cfb7436391d38b7bfd755549a3a5b190c39ffd24",
+                "url": "https://api.github.com/repos/pestphp/pest-plugin-type-coverage/zipball/4be0cf0faca7d207c5d97af8ab68a450ebf8da24",
+                "reference": "4be0cf0faca7d207c5d97af8ab68a450ebf8da24",
                 "shasum": ""
             },
             "require": {
                 "pestphp/pest-plugin": "^2.1.1",
                 "php": "^8.1",
-                "phpstan/phpstan": "^1.10.55",
+                "phpstan/phpstan": "^1.10.60",
                 "tomasvotruba/type-coverage": "^0.2.1"
             },
             "require-dev": {
@@ -3765,7 +3767,7 @@
             ],
             "support": {
                 "issues": "https://github.com/pestphp/pest-plugin-type-coverage/issues",
-                "source": "https://github.com/pestphp/pest-plugin-type-coverage/tree/v2.8.0"
+                "source": "https://github.com/pestphp/pest-plugin-type-coverage/tree/v2.8.1"
             },
             "funding": [
                 {
@@ -3781,20 +3783,20 @@
                     "type": "patreon"
                 }
             ],
-            "time": "2024-01-10T12:07:51+00:00"
+            "time": "2024-03-08T09:48:04+00:00"
         },
         {
             "name": "phpstan/phpstan",
-            "version": "1.10.59",
+            "version": "1.10.62",
             "source": {
                 "type": "git",
                 "url": "https://github.com/phpstan/phpstan.git",
-                "reference": "e607609388d3a6d418a50a49f7940e8086798281"
+                "reference": "cd5c8a1660ed3540b211407c77abf4af193a6af9"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e607609388d3a6d418a50a49f7940e8086798281",
-                "reference": "e607609388d3a6d418a50a49f7940e8086798281",
+                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cd5c8a1660ed3540b211407c77abf4af193a6af9",
+                "reference": "cd5c8a1660ed3540b211407c77abf4af193a6af9",
                 "shasum": ""
             },
             "require": {
@@ -3843,7 +3845,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2024-02-20T13:59:13+00:00"
+            "time": "2024-03-13T12:27:20+00:00"
         },
         {
             "name": "phpstan/phpstan-strict-rules",
@@ -4109,21 +4111,20 @@
         },
         {
             "name": "symplify/phpstan-rules",
-            "version": "12.4.8",
+            "version": "12.4.9",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symplify/phpstan-rules.git",
-                "reference": "393656aaf9fd09d9dc40d658c57ef222dd1f082d"
+                "reference": "14b2f776414109648ddc1680a6bab0c0641e4d3a"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symplify/phpstan-rules/zipball/393656aaf9fd09d9dc40d658c57ef222dd1f082d",
-                "reference": "393656aaf9fd09d9dc40d658c57ef222dd1f082d",
+                "url": "https://api.github.com/repos/symplify/phpstan-rules/zipball/14b2f776414109648ddc1680a6bab0c0641e4d3a",
+                "reference": "14b2f776414109648ddc1680a6bab0c0641e4d3a",
                 "shasum": ""
             },
             "require": {
-                "nette/utils": "^3.2 || ^4.0",
-                "nikic/php-parser": "^4.17.1",
+                "nette/utils": "^3.2.9 || ^4.0",
                 "php": "^7.2|^8.0",
                 "phpstan/phpstan": "^1.10.30",
                 "webmozart/assert": "^1.11"
@@ -4148,7 +4149,7 @@
             "description": "Set of Symplify rules for PHPStan",
             "support": {
                 "issues": "https://github.com/symplify/phpstan-rules/issues",
-                "source": "https://github.com/symplify/phpstan-rules/tree/12.4.8"
+                "source": "https://github.com/symplify/phpstan-rules/tree/12.4.9"
             },
             "funding": [
                 {
@@ -4160,7 +4161,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2024-02-09T21:23:31+00:00"
+            "time": "2024-03-05T15:24:56+00:00"
         },
         {
             "name": "thecodingmachine/phpstan-strict-rules",
@@ -4219,16 +4220,16 @@
         },
         {
             "name": "tomasvotruba/type-coverage",
-            "version": "0.2.1",
+            "version": "0.2.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/TomasVotruba/type-coverage.git",
-                "reference": "a152ac431b2312ec173f3093a628ff988b7ed10f"
+                "reference": "47f75151c3b3c4e040e0c68d9bba47597bf5ad6f"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/TomasVotruba/type-coverage/zipball/a152ac431b2312ec173f3093a628ff988b7ed10f",
-                "reference": "a152ac431b2312ec173f3093a628ff988b7ed10f",
+                "url": "https://api.github.com/repos/TomasVotruba/type-coverage/zipball/47f75151c3b3c4e040e0c68d9bba47597bf5ad6f",
+                "reference": "47f75151c3b3c4e040e0c68d9bba47597bf5ad6f",
                 "shasum": ""
             },
             "require": {
@@ -4260,7 +4261,7 @@
             ],
             "support": {
                 "issues": "https://github.com/TomasVotruba/type-coverage/issues",
-                "source": "https://github.com/TomasVotruba/type-coverage/tree/0.2.1"
+                "source": "https://github.com/TomasVotruba/type-coverage/tree/0.2.4"
             },
             "funding": [
                 {
@@ -4272,7 +4273,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2023-08-27T10:33:51+00:00"
+            "time": "2024-03-15T11:34:50+00:00"
         }
     ],
     "aliases": [],
diff --git a/nixpkgs/pkgs/by-name/pe/pest/package.nix b/nixpkgs/pkgs/by-name/pe/pest/package.nix
index 6f01bb3587d1..652245af56a8 100644
--- a/nixpkgs/pkgs/by-name/pe/pest/package.nix
+++ b/nixpkgs/pkgs/by-name/pe/pest/package.nix
@@ -2,17 +2,18 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "pest";
-  version = "2.34.1";
+  version = "2.34.4";
 
   src = fetchFromGitHub {
     owner = "pestphp";
     repo = "pest";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-499DHFrPcWl6TwycZidGzLqLztmVkgC3jzHZV69p7kE=";
+    hash = "sha256-/Ygm/jb08t+0EG4KHM2utAavka28VzmjVU/uXODMFvI=";
   };
 
   composerLock = ./composer.lock;
-  vendorHash = "sha256-Ofz8v3gUuZryN5z6CBfxm+UQ8z0aTkkum1am5x1LicA=";
+
+  vendorHash = "sha256-RDTmNfXD8Lk50i7dY09JNUgg8hcEM0dtwJnh8UpHgQ4=";
 
   meta = {
     changelog = "https://github.com/pestphp/pest/releases/tag/v${finalAttrs.version}";
diff --git a/nixpkgs/pkgs/by-name/pg/pg-dump-anon/package.nix b/nixpkgs/pkgs/by-name/pg/pg-dump-anon/package.nix
new file mode 100644
index 000000000000..fedcf9f40b6a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pg/pg-dump-anon/package.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitLab, buildGoModule, nixosTests, postgresql, makeWrapper }:
+
+buildGoModule rec {
+  pname = "pg-dump-anon";
+  version = "1.3.1";
+  src = fetchFromGitLab {
+    owner = "dalibo";
+    repo = "postgresql_anonymizer";
+    rev = version;
+    hash = "sha256-Z5Oz/cIYDxFUZwQijRk4xAOUdOK0LWR+px8WOcs+Rs0=";
+  };
+
+  sourceRoot = "${src.name}/pg_dump_anon";
+
+  vendorHash = "sha256-CwU1zoIayxvfnGL9kPdummPJiV+ECfSz4+q6gZGb8pw=";
+
+  passthru.tests = { inherit (nixosTests) pg_anonymizer; };
+
+  nativeBuildInputs = [ makeWrapper ];
+  postInstall = ''
+    wrapProgram $out/bin/pg_dump_anon \
+      --prefix PATH : ${lib.makeBinPath [ postgresql ]}
+  '';
+
+  meta = with lib; {
+    description = "Export databases with data being anonymized with the anonymizer extension";
+    homepage = "https://postgresql-anonymizer.readthedocs.io/en/stable/";
+    maintainers = teams.flyingcircus.members;
+    license = licenses.postgresql;
+    mainProgram = "pg_dump_anon";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pi/pianotrans/package.nix b/nixpkgs/pkgs/by-name/pi/pianotrans/package.nix
index 1c493bc87c68..d36fffb0c990 100644
--- a/nixpkgs/pkgs/by-name/pi/pianotrans/package.nix
+++ b/nixpkgs/pkgs/by-name/pi/pianotrans/package.nix
@@ -32,6 +32,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Simple GUI for ByteDance's Piano Transcription with Pedals";
+    mainProgram = "pianotrans";
     homepage = "https://github.com/azuwis/pianotrans";
     license = licenses.mit;
     maintainers = with maintainers; [ azuwis ];
diff --git a/nixpkgs/pkgs/by-name/pl/plasticity/package.nix b/nixpkgs/pkgs/by-name/pl/plasticity/package.nix
new file mode 100644
index 000000000000..563cff99bb68
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pl/plasticity/package.nix
@@ -0,0 +1,128 @@
+{ alsa-lib
+, at-spi2-atk
+, autoPatchelfHook
+, cairo
+, cups
+, dbus
+, desktop-file-utils
+, expat
+, fetchurl
+, gdk-pixbuf
+, gtk3
+, gvfs
+, hicolor-icon-theme
+, lib
+, libdrm
+, libglvnd
+, libnotify
+, libsForQt5
+, libxkbcommon
+, mesa
+, nspr
+, nss
+, openssl
+, pango
+, rpmextract
+, stdenv
+, systemd
+, trash-cli
+, vulkan-loader
+, wrapGAppsHook
+, xdg-utils
+, xorg
+}:
+stdenv.mkDerivation rec  {
+  pname = "plasticity";
+  version = "1.4.15";
+
+  src = fetchurl {
+    url = "https://github.com/nkallen/plasticity/releases/download/v${version}/Plasticity-${version}-1.x86_64.rpm";
+    hash = "sha256-wiUpDsfGVkhyjoXVpxaw3fqpo1aAfi0AkkvlkAZxTYI=";
+  };
+
+  passthru.updateScript = ./update.sh;
+
+  nativeBuildInputs = [ wrapGAppsHook autoPatchelfHook rpmextract mesa ];
+
+  buildInputs = [
+    alsa-lib
+    at-spi2-atk
+    cairo
+    cups
+    dbus
+    desktop-file-utils
+    expat
+    gdk-pixbuf
+    gtk3
+    gvfs
+    hicolor-icon-theme
+    libdrm
+    libnotify
+    libsForQt5.kde-cli-tools
+    libxkbcommon
+    nspr
+    nss
+    openssl
+    pango
+    stdenv.cc.cc.lib
+    trash-cli
+    xdg-utils
+  ];
+
+  runtimeDependencies = [
+    systemd
+    libglvnd
+    vulkan-loader #may help with nvidia users
+    xorg.libX11
+    xorg.libxcb
+    xorg.libXcomposite
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXrandr
+    xorg.libXtst
+  ];
+
+  dontUnpack = true;
+
+  # can't find anything on the internet about these files, no clue what they do
+  autoPatchelfIgnoreMissingDeps = [
+    "ACCAMERA.tx"
+    "AcMPolygonObj15.tx"
+    "ATEXT.tx"
+    "ISM.tx"
+    "RText.tx"
+    "SCENEOE.tx"
+    "TD_DbEntities.tx"
+    "TD_DbIO.tx"
+    "WipeOut.tx"
+   ];
+
+installPhase = ''
+  runHook preInstall
+
+  mkdir $out
+  cd $out
+  rpmextract $src
+  mv $out/usr/* $out
+  rm -r $out/usr
+
+  runHook postInstall
+'';
+
+  #--use-gl=egl for it to use hardware rendering it seems. Otherwise there are terrible framerates
+  postInstall = ''
+    substituteInPlace share/applications/Plasticity.desktop \
+      --replace-fail 'Exec=Plasticity %U' "Exec=Plasticity --use-gl=egl %U"
+  '';
+
+  meta = with lib; {
+    description = "CAD for artists";
+    homepage = "https://www.plasticity.xyz";
+    license = licenses.unfree;
+    mainProgram = "Plasticity";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    maintainers = with maintainers; [ imadnyc ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pl/plasticity/update.sh b/nixpkgs/pkgs/by-name/pl/plasticity/update.sh
new file mode 100755
index 000000000000..8980f632e3ee
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pl/plasticity/update.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq common-updater-scripts
+#shellcheck shell=bash
+
+set -eu -o pipefail
+
+version=$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
+    curl -s https://api.github.com/repos/nkallen/plasticity/releases/latest | jq -e -r ".tag_name | .[1:]")
+old_version=$(nix-instantiate --eval -A plasticity.version | jq -e -r)
+
+if [[ $version == "$old_version" ]]; then
+    echo "New version same as old version, nothing to do." >&2
+    exit 0
+fi
+
+update-source-version plasticity "$version"
+
diff --git a/nixpkgs/pkgs/by-name/pl/plumber/package.nix b/nixpkgs/pkgs/by-name/pl/plumber/package.nix
index 4c1f02149712..760eea36573a 100644
--- a/nixpkgs/pkgs/by-name/pl/plumber/package.nix
+++ b/nixpkgs/pkgs/by-name/pl/plumber/package.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "plumber";
-  version = "2.5.4";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "streamdal";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-6nPH+HQtpFJ4MAtblFWjaQjDSKtpIxW9tGt2o1ICtos=";
+    hash = "sha256-H1tyMedYKj1bePNcaEWYP3njHw57cJ0jgxwC7zDXQvk=";
   };
 
   vendorHash = null;
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A CLI devtool for interacting with data in message systems like Kafka, RabbitMQ, GCP PubSub and more";
+    mainProgram = "plumber";
     homepage = "https://github.com/streamdal/plumber";
     license = licenses.mit;
     maintainers = with maintainers; [ svrana ];
diff --git a/nixpkgs/pkgs/by-name/pn/pnpm-shell-completion/package.nix b/nixpkgs/pkgs/by-name/pn/pnpm-shell-completion/package.nix
new file mode 100644
index 000000000000..b789a1024a72
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pn/pnpm-shell-completion/package.nix
@@ -0,0 +1,36 @@
+{
+  rustPlatform,
+  fetchFromGitHub,
+  lib,
+  installShellFiles,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "pnpm-shell-completion";
+  version = "0.5.3";
+
+  src = fetchFromGitHub {
+    owner = "g-plane";
+    repo = "pnpm-shell-completion";
+    rev = "v${version}";
+    hash = "sha256-UKuAUN1uGNy/1Fm4vXaTWBClHgda+Vns9C4ugfHm+0s=";
+  };
+
+  cargoHash = "sha256-Kf28hQ5PUHeH5ZSRSRdfHljlqIYU8MN0zQsyT0Sa2+4=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installShellCompletion --cmd pnpm \
+      --fish pnpm.fish \
+      --zsh pnpm-shell-completion.plugin.zsh
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/g-plane/pnpm-shell-completion";
+    description = "Complete your pnpm command fastly";
+    license = licenses.mit;
+    maintainers = with maintainers; [ donovanglover ];
+    mainProgram = "pnpm-shell-completion";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pq/pqiv/package.nix b/nixpkgs/pkgs/by-name/pq/pqiv/package.nix
index d3bb3efcf606..ec621a56dca3 100644
--- a/nixpkgs/pkgs/by-name/pq/pqiv/package.nix
+++ b/nixpkgs/pkgs/by-name/pq/pqiv/package.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pqiv";
-  version = "2.13";
+  version = "2.13.1";
 
   src = fetchFromGitHub {
     owner = "phillipberndt";
     repo = "pqiv";
     rev = finalAttrs.version;
-    hash = "sha256-Jlc6sd9lRWUC1/2GZnJ0EmVRHxCXP8dTZNZEhJBS7oQ=";
+    hash = "sha256-Op+N4zzq7MazjFvx5VisjsRXbIqLtWPv4hdVjmS7lPY=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/by-name/pr/pre2k/package.nix b/nixpkgs/pkgs/by-name/pr/pre2k/package.nix
new file mode 100644
index 000000000000..4865269b5565
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pre2k/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "pre2k";
+  version = "3.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "garrettfoster13";
+    repo = "pre2k";
+    rev = "refs/tags/${version}";
+    hash = "sha256-z1ttuRos7x/zdWiYYozxWzRarFExd4W5rUYAEiUMugU=";
+  };
+
+  pythonRelaxDeps = [
+    "impacket"
+    "pyasn1"
+    "rich"
+    "typer"
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    impacket
+    ldap3
+    pyasn1
+    rich
+    typer
+  ];
+
+  pythonImportsCheck = [
+    "pre2k"
+  ];
+
+  meta = with lib; {
+    description = "Tool to query for the existence of pre-windows 2000 computer objects";
+    homepage = "https://github.com/garrettfoster13/pre2k";
+    changelog = "https://github.com/garrettfoster13/pre2k/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "pre2k";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pr/pretalx/package.nix b/nixpkgs/pkgs/by-name/pr/pretalx/package.nix
index a4bf9fc9b5ef..bea6f3cc41c4 100644
--- a/nixpkgs/pkgs/by-name/pr/pretalx/package.nix
+++ b/nixpkgs/pkgs/by-name/pr/pretalx/package.nix
@@ -27,18 +27,20 @@ let
     };
   };
 
-  version = "2023.1.3";
+  version = "2024.1.0";
 
   src = fetchFromGitHub {
     owner = "pretalx";
     repo = "pretalx";
     rev = "v${version}";
-    hash = "sha256-YxmkjfftNrInIcSkK21wJXiEU6hbdDa1Od8p+HiLprs=";
+    hash = "sha256-rFOlovybaEZnv5wBx6Dv8bVkP1D+CgYAKRXuNb6hLKQ=";
   };
 
   meta = with lib; {
     description = "Conference planning tool: CfP, scheduling, speaker management";
+    mainProgram = "pretalx-manage";
     homepage = "https://github.com/pretalx/pretalx";
+    changelog = "https://docs.pretalx.org/en/latest/changelog.html";
     license = licenses.asl20;
     maintainers = teams.c3d2.members;
     platforms = platforms.linux;
@@ -50,7 +52,7 @@ let
 
     sourceRoot = "${src.name}/src/pretalx/frontend/schedule-editor";
 
-    npmDepsHash = "sha256-4cnBHZ8WpHgp/bbsYYbdtrhuD6ffUAZq9ZjoLpWGfRg=";
+    npmDepsHash = "sha256-B9R3Nn4tURNxzeyLDHscqHxYOQK9AcmDnyNq3k5WQQs=";
 
     npmBuildScript = "build";
 
@@ -72,22 +74,19 @@ python.pkgs.buildPythonApplication rec {
       --replace 'subprocess.check_call(["npm", "run", "build"], cwd=frontend_dir, env=env)' ""
 
     substituteInPlace src/setup.cfg \
-      --replace "--cov=./" ""
+      --replace "--cov=./ --cov-report=" ""
   '';
 
   nativeBuildInputs = [
     gettext
-    python.pkgs.pythonRelaxDepsHook
-  ];
+  ] ++ (with python.pkgs; [
+    pythonRelaxDepsHook
+    setuptools
+  ]);
 
   pythonRelaxDeps = [
-    "bleach"
-    "cssutils"
-    "django-filter"
-    "django-formtools"
-    "libsass"
-    "markdown"
-    "pillow"
+    "django-csp"
+    "python-dateutil"
   ];
 
   propagatedBuildInputs = with python.pkgs; [
@@ -174,6 +173,7 @@ python.pkgs.buildPythonApplication rec {
   nativeCheckInputs = with python.pkgs; [
     faker
     freezegun
+    jsonschema
     pytest-django
     pytest-mock
     pytest-xdist
@@ -185,9 +185,16 @@ python.pkgs.buildPythonApplication rec {
     # tries to run npm run i18n:extract
     "test_common_custom_makemessages_does_not_blow_up"
     # Expected to perform X queries or less but Y were done
+    "test_can_see_schedule"
     "test_schedule_export_public"
     "test_schedule_frab_json_export"
+    "test_schedule_frab_xcal_export"
     "test_schedule_frab_xml_export"
+    "test_schedule_frab_xml_export_control_char"
+    "test_schedule_page_text_list"
+    "test_schedule_page_text_table"
+    "test_schedule_page_text_wrong_format"
+    "test_versioned_schedule_page"
   ];
 
   passthru = {
diff --git a/nixpkgs/pkgs/by-name/pr/pretix/language-build.patch b/nixpkgs/pkgs/by-name/pr/pretix/language-build.patch
new file mode 100644
index 000000000000..b4043b95446d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pretix/language-build.patch
@@ -0,0 +1,12 @@
+diff --git a/src/pretix/_build_settings.py b/src/pretix/_build_settings.py
+index d1ea73b84..9e13cdc87 100644
+--- a/src/pretix/_build_settings.py
++++ b/src/pretix/_build_settings.py
+@@ -49,6 +49,7 @@ HAS_MEMCACHED = False
+ HAS_CELERY = False
+ HAS_GEOIP = False
+ SENTRY_ENABLED = False
++LANGUAGES = ALL_LANGUAGES
+ 
+ for entry_point in entry_points(group='pretix.plugin'):
+     INSTALLED_APPS.append(entry_point.module) # noqa: F405
diff --git a/nixpkgs/pkgs/by-name/pr/pretix/package.nix b/nixpkgs/pkgs/by-name/pr/pretix/package.nix
new file mode 100644
index 000000000000..7b238ff6f8e4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pretix/package.nix
@@ -0,0 +1,270 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+, fetchPypi
+, fetchpatch2
+, nodejs
+, python3
+, gettext
+, nixosTests
+, plugins ? [ ]
+}:
+
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+      django = super.django_4;
+
+      stripe = super.stripe.overridePythonAttrs rec {
+        version = "7.9.0";
+
+        src = fetchPypi {
+          pname = "stripe";
+          inherit version;
+          hash = "sha256-hOXkMINaSwzU/SpXzjhTJp0ds0OREc2mtu11LjSc9KE=";
+        };
+      };
+
+      pretix-plugin-build = self.callPackage ./plugin-build.nix { };
+    };
+  };
+
+  pname = "pretix";
+  version = "2024.2.0";
+
+  src = fetchFromGitHub {
+    owner = "pretix";
+    repo = "pretix";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-emtF5dDXEXN8GIucHbjF+m9Vkg1Jj6nmQdHhBOkXMAs=";
+  };
+
+  npmDeps = buildNpmPackage {
+    pname = "pretix-node-modules";
+    inherit version src;
+
+    sourceRoot = "${src.name}/src/pretix/static/npm_dir";
+    npmDepsHash = "sha256-kE13dcTdWZZNHPMcHEiK0a2dEcu3Z3/q815YhaVkLbQ=";
+
+    dontBuild = true;
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir $out
+      cp -R node_modules $out/
+
+      runHook postInstall
+    '';
+  };
+in
+python.pkgs.buildPythonApplication rec {
+  inherit pname version src;
+  pyproject = true;
+
+  patches = [
+    # Discover pretix.plugin entrypoints during build and add them into
+    # INSTALLED_APPS, so that their static files are collected.
+    ./plugin-build.patch
+
+    # Configure django-statici18n to compile all available languages at
+    # build time.
+    ./language-build.patch
+
+    (fetchpatch2 {
+      # Allow customization of cache and log directory
+      # https://github.com/pretix/pretix/pull/3997
+      name = "pretix-directory-customization.patch";
+      url = "https://github.com/pretix/pretix/commit/e151d1d1f08917e547df49da0779b36bb73b7294.patch";
+      hash = "sha256-lO5eCKSqUaCwSm7rouMTFMwauWl9Tz/Yf0JE/IO+bnI=";
+    })
+  ];
+
+  postPatch = ''
+    NODE_PREFIX=src/pretix/static.dist/node_prefix
+    mkdir -p $NODE_PREFIX
+    cp -R ${npmDeps}/node_modules $NODE_PREFIX/
+    chmod -R u+w $NODE_PREFIX/
+
+    # unused
+    sed -i "/setuptools-rust/d" pyproject.toml
+
+    substituteInPlace pyproject.toml \
+      --replace-fail phonenumberslite phonenumbers \
+      --replace-fail psycopg2-binary psycopg2 \
+      --replace-fail vat_moss_forked==2020.3.20.0.11.0 vat-moss \
+      --replace-fail "bleach==5.0.*" bleach \
+      --replace-fail "dnspython==2.5.*" dnspython \
+      --replace-fail "importlib_metadata==7.*" importlib_metadata \
+      --replace-fail "protobuf==4.25.*" protobuf \
+      --replace-fail "pycryptodome==3.20.*" pycryptodome \
+      --replace-fail "pypdf==3.9.*" pypdf \
+      --replace-fail "python-dateutil==2.8.*" python-dateutil \
+      --replace-fail "sentry-sdk==1.40.*" sentry-sdk \
+      --replace-fail "stripe==7.9.*" stripe
+  '';
+
+  build-system = with python.pkgs; [
+    gettext
+    nodejs
+    pythonRelaxDepsHook
+    setuptools
+    tomli
+  ];
+
+  dependencies = with python.pkgs; [
+    arabic-reshaper
+    babel
+    beautifulsoup4
+    bleach
+    celery
+    chardet
+    cryptography
+    css-inline
+    defusedcsv
+    dj-static
+    django
+    django-bootstrap3
+    django-compressor
+    django-countries
+    django-filter
+    django-formset-js-improved
+    django-formtools
+    django-hierarkey
+    django-hijack
+    django-i18nfield
+    django-libsass
+    django-localflavor
+    django-markup
+    django-oauth-toolkit
+    django-otp
+    django-phonenumber-field
+    django-redis
+    django-scopes
+    django-statici18n
+    djangorestframework
+    dnspython
+    drf-ujson2
+    geoip2
+    importlib-metadata
+    isoweek
+    jsonschema
+    kombu
+    libsass
+    lxml
+    markdown
+    mt-940
+    oauthlib
+    openpyxl
+    packaging
+    paypalrestsdk
+    paypal-checkout-serversdk
+    pyjwt
+    phonenumbers
+    pillow
+    pretix-plugin-build
+    protobuf
+    psycopg2
+    pycountry
+    pycparser
+    pycryptodome
+    pypdf
+    python-bidi
+    python-dateutil
+    pytz
+    pytz-deprecation-shim
+    pyuca
+    qrcode
+    redis
+    reportlab
+    requests
+    sentry-sdk
+    sepaxml
+    slimit
+    static3
+    stripe
+    text-unidecode
+    tlds
+    tqdm
+    vat-moss
+    vobject
+    webauthn
+    zeep
+  ] ++ plugins;
+
+  optional-dependencies = with python.pkgs; {
+    memcached = [
+      pylibmc
+    ];
+  };
+
+  postInstall = ''
+    mkdir -p $out/bin
+    cp ./src/manage.py $out/bin/pretix-manage
+
+    # Trim packages size
+    rm -rfv $out/${python.sitePackages}/pretix/static.dist/node_prefix
+  '';
+
+  dontStrip = true; # no binaries
+
+  nativeCheckInputs = with python.pkgs; [
+    pytestCheckHook
+    pytest-xdist
+    pytest-mock
+    pytest-django
+    pytest-asyncio
+    pytest-rerunfailures
+    freezegun
+    fakeredis
+    responses
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
+
+  pytestFlagsArray = [
+    "--reruns" "3"
+
+    # tests fail when run before 4:30am
+    # https://github.com/pretix/pretix/pull/3987
+    "--deselect=src/tests/base/test_orders.py::PaymentReminderTests::test_sent_days"
+    "--deselect=src/tests/plugins/sendmail/test_rules.py::test_sendmail_rule_specified_subevent"
+  ];
+
+  preCheck = ''
+    export PYTHONPATH=$(pwd)/src:$PYTHONPATH
+    export DJANGO_SETTINGS_MODULE=tests.settings
+  '';
+
+  passthru = {
+    inherit
+      npmDeps
+      python
+    ;
+    plugins = lib.recurseIntoAttrs
+      (python.pkgs.callPackage ./plugins {
+        inherit (python.pkgs) callPackage;
+      }
+    );
+    tests = {
+      inherit (nixosTests) pretix;
+    };
+  };
+
+  meta = with lib; {
+    description = "Ticketing software that cares about your event—all the way";
+    homepage = "https://github.com/pretix/pretix";
+    license = with licenses; [
+      agpl3Only
+      # 3rd party components below src/pretix/static
+      bsd2
+      isc
+      mit
+      ofl # fontawesome
+      unlicense
+      # all other files below src/pretix/static and src/pretix/locale and aux scripts
+      asl20
+    ];
+    maintainers = with maintainers; [ hexa ];
+    mainProgram = "pretix-manage";
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pr/pretix/plugin-build.nix b/nixpkgs/pkgs/by-name/pr/pretix/plugin-build.nix
new file mode 100644
index 000000000000..307ff4114eb7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pretix/plugin-build.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  django,
+  gettext,
+}:
+
+buildPythonPackage rec {
+  pname = "pretix-plugin-build";
+  version = "1.0.1";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-iLbqcCAbeK4PyLXiebpdE27rt6bOP7eXczIG2bdvvYo=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    django
+    gettext
+  ];
+
+  doCheck = false; # no tests
+
+  meta = with lib; {
+    description = "";
+    homepage = "https://github.com/pretix/pretix-plugin-build";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pr/pretix/plugin-build.patch b/nixpkgs/pkgs/by-name/pr/pretix/plugin-build.patch
new file mode 100644
index 000000000000..aa935ed28148
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pretix/plugin-build.patch
@@ -0,0 +1,20 @@
+diff --git a/src/pretix/_build_settings.py b/src/pretix/_build_settings.py
+index c03f56a1a..d1ea73b84 100644
+--- a/src/pretix/_build_settings.py
++++ b/src/pretix/_build_settings.py
+@@ -24,6 +24,8 @@
+ This file contains settings that we need at wheel require time. All settings that we only need at runtime are set
+ in settings.py.
+ """
++from importlib_metadata import entry_points
++
+ from ._base_settings import *  # NOQA
+ 
+ ENTROPY = {
+@@ -47,3 +49,6 @@ HAS_MEMCACHED = False
+ HAS_CELERY = False
+ HAS_GEOIP = False
+ SENTRY_ENABLED = False
++
++for entry_point in entry_points(group='pretix.plugin'):
++    INSTALLED_APPS.append(entry_point.module) # noqa: F405
diff --git a/nixpkgs/pkgs/by-name/pr/pretix/plugins/default.nix b/nixpkgs/pkgs/by-name/pr/pretix/plugins/default.nix
new file mode 100644
index 000000000000..70e643705c00
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pretix/plugins/default.nix
@@ -0,0 +1,13 @@
+{ callPackage
+, ...
+}:
+
+{
+  pages = callPackage ./pages.nix { };
+
+  passbook = callPackage ./passbook.nix { };
+
+  reluctant-stripe = callPackage ./reluctant-stripe.nix { };
+
+  stretchgoals = callPackage ./stretchgoals.nix { };
+}
diff --git a/nixpkgs/pkgs/by-name/pr/pretix/plugins/pages.nix b/nixpkgs/pkgs/by-name/pr/pretix/plugins/pages.nix
new file mode 100644
index 000000000000..91f8ef032f77
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pretix/plugins/pages.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pretix-plugin-build
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "pretix-pages";
+  version = "1.6.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "pretix";
+    repo = "pretix-pages";
+    rev = "v${version}";
+    hash = "sha256-cO5tAiOifLpqFEQwYgrGoByUecpzvue8YmChpPwm+y0=";
+  };
+
+  build-system = [
+    pretix-plugin-build
+    setuptools
+  ];
+
+  doCheck = false; # no tests
+
+  pythonImportsCheck = [
+    "pretix_pages"
+  ];
+
+  meta = with lib; {
+    description = "Plugin to add static pages to your pretix event";
+    homepage = "https://github.com/pretix/pretix-pages";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pr/pretix/plugins/passbook-openssl.patch b/nixpkgs/pkgs/by-name/pr/pretix/plugins/passbook-openssl.patch
new file mode 100644
index 000000000000..44c0d56886af
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pretix/plugins/passbook-openssl.patch
@@ -0,0 +1,33 @@
+diff --git a/pretix_passbook/apps.py b/pretix_passbook/apps.py
+index e34eee1..a7ad382 100644
+--- a/pretix_passbook/apps.py
++++ b/pretix_passbook/apps.py
+@@ -22,15 +22,6 @@ class PassbookApp(AppConfig):
+     def ready(self):
+         from . import signals  # NOQA
+ 
+-    @cached_property
+-    def compatibility_errors(self):
+-        import shutil
+-
+-        errs = []
+-        if not shutil.which("openssl"):
+-            errs.append("The OpenSSL binary is not installed or not in the PATH.")
+-        return errs
+-
+     @cached_property
+     def compatibility_warnings(self):
+         errs = []
+diff --git a/pretix_passbook/forms.py b/pretix_passbook/forms.py
+index 2a38604..aec38de 100644
+--- a/pretix_passbook/forms.py
++++ b/pretix_passbook/forms.py
+@@ -41,7 +41,7 @@ class CertificateFileField(forms.FileField):
+                 return SimpleUploadedFile("cert.pem", content, "text/plain")
+ 
+             openssl_cmd = [
+-                "openssl",
++                "@openssl@",
+                 "x509",
+                 "-inform",
+                 "DER",
diff --git a/nixpkgs/pkgs/by-name/pr/pretix/plugins/passbook.nix b/nixpkgs/pkgs/by-name/pr/pretix/plugins/passbook.nix
new file mode 100644
index 000000000000..b7d380aa681d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pretix/plugins/passbook.nix
@@ -0,0 +1,59 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, substituteAll
+
+# build-system
+, pretix-plugin-build
+, setuptools
+
+# runtime
+, openssl
+
+# dependencies
+, googlemaps
+, wallet-py3k
+}:
+
+buildPythonPackage rec {
+  pname = "pretix-passbook";
+  version = "1.13.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "pretix";
+    repo = "pretix-passbook";
+    rev = "v${version}";
+    hash = "sha256-bp64wCEMon05JhOaDr/cVbqUxc+7ndcsSuSesxJt8GE=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./passbook-openssl.patch;
+      openssl = lib.getExe openssl;
+    })
+  ];
+
+  build-system = [
+    pretix-plugin-build
+    setuptools
+  ];
+
+  dependencies = [
+    googlemaps
+    wallet-py3k
+  ];
+
+  doCheck = false; # no tests
+
+  pythonImportsCheck = [
+    "pretix_passbook"
+  ];
+
+  meta = with lib; {
+    description = "Support for Apple Wallet/Passbook files in pretix";
+    homepage = "https://github.com/pretix/pretix-passbook";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pr/pretix/plugins/reluctant-stripe.nix b/nixpkgs/pkgs/by-name/pr/pretix/plugins/reluctant-stripe.nix
new file mode 100644
index 000000000000..40ab96a36bca
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pretix/plugins/reluctant-stripe.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pretix-plugin-build
+, setuptools
+}:
+
+buildPythonPackage {
+  pname = "pretix-reluctant-stripe";
+  version = "unstable-2023-08-03";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "metarheinmain";
+    repo = "pretix-reluctant-stripe";
+    rev = "ae2d770442553e5fc00815ff4521a8fd2c113fd9";
+    hash = "sha256-bw9aDMxl4/uar5KHjj+wwkYkaGMRxHWY/c1N75bxu0o=";
+  };
+
+  build-system = [
+    pretix-plugin-build
+    setuptools
+  ];
+
+  doCheck = false; # no tests
+
+  pythonImportsCheck = [
+    "pretix_reluctant_stripe"
+  ];
+
+  meta = with lib; {
+    description = "Nudge users to not use Stripe as a payment provider";
+    homepage = "https://github.com/metarheinmain/pretix-reluctant-stripe";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/pr/pretix/plugins/stretchgoals.nix b/nixpkgs/pkgs/by-name/pr/pretix/plugins/stretchgoals.nix
new file mode 100644
index 000000000000..4d1cb8d02e84
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/pretix/plugins/stretchgoals.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pretix-plugin-build
+, setuptools
+}:
+
+buildPythonPackage {
+  pname = "pretix-avgchart";
+  version = "unstable-2023-11-27";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "rixx";
+    repo = "pretix-avgchart";
+    rev = "219816c7ec523a5c23778523b2616ac0c835cb3a";
+    hash = "sha256-1V/0PUvStgQeBQ0v6GoofAgyPmWs3RD+v5ekmAO9vFU=";
+  };
+
+  build-system = [
+    pretix-plugin-build
+    setuptools
+  ];
+
+  doCheck = false; # no tests
+
+  pythonImportsCheck = [
+    "pretix_stretchgoals"
+  ];
+
+  meta = with lib; {
+    description = "Display the average ticket sales price over time";
+    homepage = "https://github.com/rixx/pretix-avgchart";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/primecount/default.nix b/nixpkgs/pkgs/by-name/pr/primecount/package.nix
index c3e2565989ed..791acca6ae5d 100644
--- a/nixpkgs/pkgs/applications/science/math/primecount/default.nix
+++ b/nixpkgs/pkgs/by-name/pr/primecount/package.nix
@@ -1,21 +1,23 @@
 { lib
-, stdenv
-, fetchFromGitHub
 , cmake
+, fetchFromGitHub
 , primesieve
+, stdenv
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "primecount";
   version = "7.10";
 
   src = fetchFromGitHub {
     owner = "kimwalisch";
     repo = "primecount";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     hash = "sha256-z7sHGR6zZSTV1PbL0WPGHf52CYQ572KC1yznCuIEJbQ=";
   };
 
+  outputs = [ "out" "dev" "lib" "man" ];
+
   nativeBuildInputs = [
     cmake
   ];
@@ -24,17 +26,18 @@ stdenv.mkDerivation rec {
     primesieve
   ];
 
+  strictDeps = true;
+
   cmakeFlags = [
-    "-DBUILD_LIBPRIMESIEVE=ON"
-    "-DBUILD_PRIMECOUNT=ON"
-    "-DBUILD_SHARED_LIBS=ON"
-    "-DBUILD_STATIC_LIBS=OFF"
-    "-DBUILD_TESTS=ON"
+    (lib.cmakeBool "BUILD_LIBPRIMESIEVE" true)
+    (lib.cmakeBool "BUILD_PRIMECOUNT" true)
+    (lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
+    (lib.cmakeBool "BUILD_STATIC_LIBS" stdenv.hostPlatform.isStatic)
+    (lib.cmakeBool "BUILD_TESTS" true)
   ];
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/kimwalisch/primecount";
-    changelog = "https://github.com/kimwalisch/primecount/blob/v${version}/ChangeLog";
     description = "Fast prime counting function implementations";
     longDescription = ''
       primecount is a command-line program and C/C++ library that counts the
@@ -50,7 +53,9 @@ stdenv.mkDerivation rec {
       of CPU cores. primecount has already been used to compute several prime
       counting function world records.
     '';
-    license = licenses.bsd2;
+    changelog = "https://github.com/kimwalisch/primecount/blob/${finalAttrs.src.rev}/ChangeLog";
+    license = lib.licenses.bsd2;
+    mainProgram = "primecount";
     inherit (primesieve.meta) maintainers platforms;
   };
-}
+})
diff --git a/nixpkgs/pkgs/applications/science/math/primesieve/default.nix b/nixpkgs/pkgs/by-name/pr/primesieve/package.nix
index 8ca3f1393a76..470b62111b3f 100644
--- a/nixpkgs/pkgs/applications/science/math/primesieve/default.nix
+++ b/nixpkgs/pkgs/by-name/pr/primesieve/package.nix
@@ -1,25 +1,35 @@
 { lib
-, stdenv
-, fetchFromGitHub
 , cmake
+, fetchFromGitHub
+, stdenv
+, primecount
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "primesieve";
-  version = "12.0";
+  version = "12.1";
 
   src = fetchFromGitHub {
     owner = "kimwalisch";
     repo = "primesieve";
-    rev = "v${version}";
-    hash = "sha256-xmOq18falvT8PKhJPwWm/aeOMf7I3ywR+h5OkTM3G6s=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-AHl2GfZ1oJ8ZyjJzvg10AqN7TA7HFZ+qa6N2v51Qa78=";
   };
 
+  outputs = [ "out" "dev" "lib" "man" ];
+
   nativeBuildInputs = [ cmake ];
 
-  meta = with lib; {
+  strictDeps = true;
+
+  passthru = {
+    tests = {
+      inherit primecount; # dependent
+    };
+  };
+
+  meta = {
     homepage = "https://primesieve.org/";
-    changelog = "https://github.com/kimwalisch/primesieve/blob/v${version}/ChangeLog";
     description = "Fast C/C++ prime number generator";
     longDescription = ''
       primesieve is a command-line program and C/C++ library for quickly
@@ -29,9 +39,11 @@ stdenv.mkDerivation rec {
       CPU cores whenever possible i.e. if sequential ordering is not
       required. primesieve can generate primes and prime k-tuplets up to 264.
     '';
-    license = licenses.bsd2;
-    maintainers = teams.sage.members ++
-      (with maintainers; [ abbradar AndersonTorres ]);
-    platforms = platforms.unix;
+    changelog = "https://github.com/kimwalisch/primesieve/blob/${finalAttrs.src.rev}/ChangeLog";
+    license = lib.licenses.bsd2;
+    mainProgram = "primesieve";
+    maintainers = lib.teams.sage.members ++
+      (with lib.maintainers; [ abbradar AndersonTorres ]);
+    platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/nixpkgs/pkgs/by-name/pr/promptfoo/package.nix b/nixpkgs/pkgs/by-name/pr/promptfoo/package.nix
index 4be98d738fcc..e834a9c95b4c 100644
--- a/nixpkgs/pkgs/by-name/pr/promptfoo/package.nix
+++ b/nixpkgs/pkgs/by-name/pr/promptfoo/package.nix
@@ -5,21 +5,22 @@
 
 buildNpmPackage rec {
   pname = "promptfoo";
-  version = "0.43.1";
+  version = "0.48.0";
 
   src = fetchFromGitHub {
     owner = "promptfoo";
     repo = "promptfoo";
     rev = "${version}";
-    hash = "sha256-659cVRw++71zd0hzyz/dF9VgoChDXPDvHwgSmIyjnNw=";
+    hash = "sha256-PFOwCjkkJncutYHTqoM21y4uh6X5LQiTSK+onzLT+uc=";
   };
 
-  npmDepsHash = "sha256-606CKRMFPdawiqpvzYizwgfQ6Y4YbZngBuQb3fhtpd0=";
+  npmDepsHash = "sha256-Popm602xNKYZV4Q6sXFhHu978V8sCf5ujPPgJmlUzvc=";
 
   dontNpmBuild = true;
 
   meta = with lib; {
     description = "Test your prompts, models, RAGs. Evaluate and compare LLM outputs, catch regressions, and improve prompt quality.";
+    mainProgram = "promptfoo";
     homepage = "https://www.promptfoo.dev/";
     changelog = "https://github.com/promptfoo/promptfoo/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/by-name/pr/protoc-gen-js/package.nix b/nixpkgs/pkgs/by-name/pr/protoc-gen-js/package.nix
index 21cd426388f8..e9e8207b3cc9 100644
--- a/nixpkgs/pkgs/by-name/pr/protoc-gen-js/package.nix
+++ b/nixpkgs/pkgs/by-name/pr/protoc-gen-js/package.nix
@@ -28,6 +28,7 @@ buildBazelPackage rec {
 
   meta = with lib; {
     description = "Protobuf plugin for generating JavaScript code";
+    mainProgram = "protoc-gen-js";
     homepage = "https://github.com/protocolbuffers/protobuf-javascript";
     platforms = platforms.linux ++ platforms.darwin;
     license = with licenses; [ asl20 bsd3 ];
diff --git a/nixpkgs/pkgs/by-name/pr/proton-ge-bin/package.nix b/nixpkgs/pkgs/by-name/pr/proton-ge-bin/package.nix
new file mode 100644
index 000000000000..68e147ca4f9c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/proton-ge-bin/package.nix
@@ -0,0 +1,57 @@
+{ lib
+, stdenvNoCC
+, fetchzip
+, writeScript
+}:
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "proton-ge-bin";
+  version = "GE-Proton9-1";
+
+  src = fetchzip {
+    url = "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${finalAttrs.version}/${finalAttrs.version}.tar.gz";
+    hash = "sha256-odpzRlzW7MJGRcorRNo784Rh97ssViO70/1azHRggf0=";
+  };
+
+  outputs = [ "out" "steamcompattool" ];
+
+  buildCommand = ''
+    runHook preBuild
+
+    # Make it impossible to add to an environment. You should use the appropriate NixOS option.
+    # Also leave some breadcrumbs in the file.
+    echo "${finalAttrs.pname} should not be installed into environments. Please use programs.steam.extraCompatPackages instead." > $out
+
+    ln -s $src $steamcompattool
+
+    runHook postBuild
+  '';
+
+  /*
+    We use the created releases, and not the tags, for the update script as nix-update loads releases.atom
+    that contains both. Sometimes upstream pushes the tags but the Github releases don't get created due to
+    CI errors. Last time this happened was on 8-33, where a tag was created but no releases were created.
+    As of 2024-03-13, there have been no announcements indicating that the CI has been fixed, and thus
+    we avoid nix-update-script and use our own update script instead.
+    See: <https://github.com/NixOS/nixpkgs/pull/294532#issuecomment-1987359650>
+  */
+  passthru.updateScript = writeScript "update-proton-ge" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p curl jq common-updater-scripts
+    repo="https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases"
+    version="$(curl -sL "$repo" | jq 'map(select(.prerelease == false)) | .[0].tag_name' --raw-output)"
+    update-source-version proton-ge-bin "$version"
+  '';
+
+  meta = {
+    description = ''
+      Compatibility tool for Steam Play based on Wine and additional components.
+
+      (This is intended for use in the `programs.steam.extraCompatPackages` option only.)
+    '';
+    homepage = "https://github.com/GloriousEggroll/proton-ge-custom";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ NotAShelf shawn8901 ];
+    platforms = [ "x86_64-linux" ];
+    sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/pr/protonmail-bridge-gui/package.nix b/nixpkgs/pkgs/by-name/pr/protonmail-bridge-gui/package.nix
new file mode 100644
index 000000000000..2b15e67908d4
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/protonmail-bridge-gui/package.nix
@@ -0,0 +1,113 @@
+{ lib
+, stdenv
+, pkg-config
+, libsecret
+, cmake
+, ninja
+, qt6
+, grpc
+, protobuf
+, zlib
+, gtest
+, sentry-native
+, protonmail-bridge
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "protonmail-bridge-gui";
+
+  inherit (protonmail-bridge) version src;
+
+  patches = [
+    # Use `gtest` from Nixpkgs to allow an offline build
+    ./use-nix-googletest.patch
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    ninja
+    qt6.qtbase
+    qt6.qtdeclarative
+    qt6.qtwayland
+    qt6.qtsvg
+    qt6.wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    libsecret
+    grpc
+    protobuf
+    zlib
+    gtest
+    sentry-native
+  ];
+
+  sourceRoot = "${finalAttrs.src.name}/internal/frontend/bridge-gui";
+
+  postPatch = ''
+    # Bypass `vcpkg` by deleting lines that `include` BridgeSetup.cmake
+    find . -type f -name "CMakeLists.txt" -exec sed -i "/BridgeSetup\\.cmake/d" {} \;
+
+    # Use the available ICU version
+    sed -i "s/libicu\(i18n\|uc\|data\)\.so\.56/libicu\1.so/g" bridge-gui/DeployLinux.cmake
+
+    # Create a Desktop Entry that uses a `protonmail-bridge-gui` binary without upstream's launcher
+    sed "s/^\(Icon\|Exec\)=.*$/\1=protonmail-bridge-gui/" ../../../dist/proton-bridge.desktop > proton-bridge-gui.desktop
+
+    # Also update `StartupWMClass` to match the GUI binary's `wmclass` (Wayland app id)
+    sed -i "s/^\(StartupWMClass=\)Proton Mail Bridge$/\1ch.proton.bridge-gui/" proton-bridge-gui.desktop
+
+    # Don't build `bridge-gui-tester`
+    sed -i "/add_subdirectory(bridge-gui-tester)/d" CMakeLists.txt
+  '';
+
+  preConfigure = ''
+    cmakeFlagsArray+=(
+      "-DCMAKE_BUILD_TYPE=Release"
+      "-DBRIDGE_APP_FULL_NAME=Proton Mail Bridge"
+      "-DBRIDGE_VENDOR=Proton AG"
+      "-DBRIDGE_REVISION=${finalAttrs.src.rev}"
+      "-DBRIDGE_TAG=${finalAttrs.version}"
+      "-DBRIDGE_BUILD_ENV=Nix"
+      "-DBRIDGE_APP_VERSION=${finalAttrs.version}"
+    )
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    # Install the GUI binary
+    install -Dm755 bridge-gui/bridge-gui $out/lib/bridge-gui
+
+    # Symlink the backend binary from the protonmail-bridge (CLI) package
+    ln -s ${protonmail-bridge}/bin/protonmail-bridge $out/lib/bridge
+
+    # Symlink the GUI binary
+    mkdir -p $out/bin
+    ln -s $out/lib/bridge-gui $out/bin/protonmail-bridge-gui
+
+    # Install desktop assets
+    install -Dm644 ../proton-bridge-gui.desktop -t $out/share/applications
+    install -Dm644 ../../../../dist/bridge.svg $out/share/icons/hicolor/scalable/apps/protonmail-bridge-gui.svg
+
+    runHook postInstall
+  '';
+
+  meta = {
+    changelog = "https://github.com/ProtonMail/proton-bridge/blob/${finalAttrs.src.rev}/Changelog.md";
+    description = "Qt-based GUI to use your ProtonMail account with your local e-mail client";
+    downloadPage = "https://github.com/ProtonMail/proton-bridge/releases";
+    homepage = "https://github.com/ProtonMail/proton-bridge";
+    license = lib.licenses.gpl3Plus;
+    longDescription = ''
+      Provides a GUI application that runs in the background and seamlessly encrypts
+      and decrypts your mail as it enters and leaves your computer.
+
+      To work, use secret-service freedesktop.org API (e.g. Gnome keyring) or pass.
+    '';
+    mainProgram = "protonmail-bridge-gui";
+    maintainers = with lib.maintainers; [ daniel-fahey ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/pr/protonmail-bridge-gui/use-nix-googletest.patch b/nixpkgs/pkgs/by-name/pr/protonmail-bridge-gui/use-nix-googletest.patch
new file mode 100644
index 000000000000..fc1ad2b3ab16
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/pr/protonmail-bridge-gui/use-nix-googletest.patch
@@ -0,0 +1,23 @@
+diff --git a/bridgepp/CMakeLists.txt b/bridgepp/CMakeLists.txt
+index f4a0a553..02d631dc 100644
+--- a/bridgepp/CMakeLists.txt
++++ b/bridgepp/CMakeLists.txt
+@@ -172,16 +172,8 @@ if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
+     cmake_policy(SET CMP0135 NEW) # avoid warning DOWNLOAD_EXTRACT_TIMESTAMP
+ endif ()
+ 
+-include(FetchContent)
+-FetchContent_Declare(
+-    googletest
+-    URL https://github.com/google/googletest/archive/b796f7d44681514f58a683a3a71ff17c94edb0c1.zip
+-)
+-
+-# For Windows: Prevent overriding the parent project's compiler/linker settings
+-set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+-
+-FetchContent_MakeAvailable(googletest)
++# Use find_package to use the gtest package provided by Nix
++find_package(GTest REQUIRED)
+ 
+ enable_testing()
+ 
diff --git a/nixpkgs/pkgs/by-name/pr/prox/package.nix b/nixpkgs/pkgs/by-name/pr/prox/package.nix
index 7c49551423f7..6f432de3ec72 100644
--- a/nixpkgs/pkgs/by-name/pr/prox/package.nix
+++ b/nixpkgs/pkgs/by-name/pr/prox/package.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/fgrosse/prox";
     description = "A process runner for Procfile-based applications ";
+    mainProgram = "prox";
     license = licenses.bsd2;
     maintainers = with maintainers; [ lucperkins ];
   };
diff --git a/nixpkgs/pkgs/by-name/pt/ptcollab/package.nix b/nixpkgs/pkgs/by-name/pt/ptcollab/package.nix
index f03d89e7c490..d2db8def2ab8 100644
--- a/nixpkgs/pkgs/by-name/pt/ptcollab/package.nix
+++ b/nixpkgs/pkgs/by-name/pt/ptcollab/package.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Experimental pxtone editor where you can collaborate with friends";
+    mainProgram = "ptcollab";
     homepage = "https://yuxshao.github.io/ptcollab/";
     changelog = "https://github.com/yuxshao/ptcollab/releases/tag/v${finalAttrs.version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/by-name/pu/pupdate/add-runtime-identifier.patch b/nixpkgs/pkgs/by-name/pu/pupdate/add-runtime-identifier.patch
index c70aaad58966..e42677b62572 100644
--- a/nixpkgs/pkgs/by-name/pu/pupdate/add-runtime-identifier.patch
+++ b/nixpkgs/pkgs/by-name/pu/pupdate/add-runtime-identifier.patch
@@ -1,6 +1,6 @@
-From f56083d95304752c45cc569fe42c3b0d7a2430bd Mon Sep 17 00:00:00 2001
+From 84d8c110882fe23bdd05d9007225b71d4395bbaa Mon Sep 17 00:00:00 2001
 From: Philipp Rintz <git@rintz.net>
-Date: Wed, 24 Jan 2024 22:11:50 +0100
+Date: Sun, 3 Mar 2024 18:05:40 +0100
 Subject: [PATCH] uncommited
 
 ---
@@ -8,17 +8,16 @@ Subject: [PATCH] uncommited
  1 file changed, 1 insertion(+)
 
 diff --git a/pupdate.csproj b/pupdate.csproj
-index a6f59a8..0563137 100644
+index 04fe5e0..962682f 100644
 --- a/pupdate.csproj
 +++ b/pupdate.csproj
 @@ -12,6 +12,7 @@
      <Authors>Matt Pannella</Authors>
      <Product>Pupdate</Product>
-     <RepositoryUrl>https://github.com/mattpannella/pocket-updater-utility</RepositoryUrl>
+     <RepositoryUrl>https://github.com/mattpannella/pupdate</RepositoryUrl>
 +    <RuntimeIdentifier>@RuntimeIdentifier@</RuntimeIdentifier>
+     <RootNamespace>Pannella</RootNamespace>
    </PropertyGroup>
    <ItemGroup>
-     <PackageReference Include="CommandLineParser" Version="2.9.1" />
 -- 
-2.40.1
-
+2.42.0
diff --git a/nixpkgs/pkgs/by-name/pu/pupdate/deps.nix b/nixpkgs/pkgs/by-name/pu/pupdate/deps.nix
index eea7ea49accb..ddbc8888d1b5 100644
--- a/nixpkgs/pkgs/by-name/pu/pupdate/deps.nix
+++ b/nixpkgs/pkgs/by-name/pu/pupdate/deps.nix
@@ -7,4 +7,5 @@
   (fetchNuGet { pname = "Crc32.NET"; version = "1.2.0"; sha256 = "0qaj3192k1vfji87zf50rhydn5mrzyzybrs2k4v7ap29k8i0vi5h"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; })
 ]
diff --git a/nixpkgs/pkgs/by-name/pu/pupdate/package.nix b/nixpkgs/pkgs/by-name/pu/pupdate/package.nix
index 54a979fa6bb1..b9671c7bc930 100644
--- a/nixpkgs/pkgs/by-name/pu/pupdate/package.nix
+++ b/nixpkgs/pkgs/by-name/pu/pupdate/package.nix
@@ -12,13 +12,13 @@
 
 buildDotnetModule rec {
   pname = "pupdate";
-  version = "3.2.1";
+  version = "3.9.0";
 
   src = fetchFromGitHub {
     owner = "mattpannella";
     repo = "${pname}";
     rev = "${version}";
-    hash = "sha256-jAZozcCHgKFTPCRktajrI77iH/GBbzhWa+QKZz1w62Y=";
+    hash = "sha256-T37zIYtfnoNJ/aHMfqKIx/zj6mqmY/3sN3LmxJglxHM=";
   };
 
   buildInputs = [
@@ -43,11 +43,11 @@ buildDotnetModule rec {
   executables = [ "pupdate" ];
 
   dotnetFlags = [
-    "-p:PackageRuntime=${dotnetCorePackages.systemToDotnetRid stdenv.hostPlatform.system}"
+    "-p:PackageRuntime=${dotnetCorePackages.systemToDotnetRid stdenv.hostPlatform.system} -p:TrimMode=partial"
   ];
 
-  dotnet-sdk = dotnetCorePackages.sdk_6_0;
-  dotnet-runtime = dotnetCorePackages.runtime_6_0;
+  dotnet-sdk = dotnetCorePackages.sdk_7_0;
+  dotnet-runtime = dotnetCorePackages.runtime_7_0;
 
   passthru = {
     updateScript = nix-update-script { };
diff --git a/nixpkgs/pkgs/by-name/py/pyp/package.nix b/nixpkgs/pkgs/by-name/py/pyp/package.nix
index 1ba4629220db..08f3fdc63d49 100644
--- a/nixpkgs/pkgs/by-name/py/pyp/package.nix
+++ b/nixpkgs/pkgs/by-name/py/pyp/package.nix
@@ -1,51 +1,60 @@
 { lib
-, fetchFromGitHub
-, python3
 , bc
+, fetchFromGitHub
 , jq
+, python3
 }:
 
 let
-  version = "1.1.0";
-in python3.pkgs.buildPythonApplication {
-  pname = "pyp";
-  inherit version;
-  format = "pyproject";
-
-  src = fetchFromGitHub {
-    owner = "hauntsaninja";
-    repo = "pyp";
-    rev = "v${version}";
-    hash = "sha256-A1Ip41kxH17BakHEWEuymfa24eBEl5FIHAWL+iZFM4I=";
-  };
+  pythonPackages = python3.pkgs;
+  finalAttrs = {
+    pname = "pyp";
+    version = "1.2.0";
+
+    src = fetchFromGitHub {
+      owner = "hauntsaninja";
+      repo = "pyp";
+      rev = "refs/tags/v${finalAttrs.version}";
+      hash = "sha256-hnEgqWOIVj2ugOhd2aS9IulfkVnrlkhwOtrgH4qQqO8=";
+    };
+
+    pyproject = true;
+
+    build-system = with pythonPackages; [
+      flit-core
+    ];
+
+    nativeCheckInputs = (with pythonPackages; [
+      pytestCheckHook
+    ]) ++ [
+      bc
+      jq
+    ];
+
+    pythonImportsCheck = [
+      "pyp"
+    ];
+
+    # without this, the tests fail because they are unable to find the pyp tool
+    # itself...
+    preCheck = ''
+      _OLD_PATH_=$PATH
+      PATH=$out/bin:$PATH
+   '';
+
+    # And a cleanup!
+    postCheck = ''
+      PATH=$_OLD_PATH_
+    '';
 
-  nativeBuildInputs = [
-    python3.pkgs.flit-core
-  ];
-
-  nativeCheckInputs = [
-    python3.pkgs.pytestCheckHook
-    bc
-    jq
-  ];
-
-  # without this, the tests fail because they are unable to find the pyp tool
-  # itself...
-  preCheck = ''
-     _OLD_PATH_=$PATH
-     PATH=$out/bin:$PATH
-  '';
-
-  # And a cleanup
-  postCheck = ''
-    PATH=$_OLD_PATH_
-  '';
-
-  meta = {
-    homepage = "https://github.com/hauntsaninja/pyp";
-    description = "Easily run Python at the shell";
-    changelog = "https://github.com/hauntsaninja/pyp/blob/${version}/CHANGELOG.md";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ AndersonTorres ];
+    meta = {
+      homepage = "https://github.com/hauntsaninja/pyp";
+      description = "Easily run Python at the shell";
+      changelog = "https://github.com/hauntsaninja/pyp/blob/${finalAttrs.version}/CHANGELOG.md";
+      license = with lib.licenses; [ mit ];
+      mainProgram = "pyp";
+      maintainers = with lib.maintainers; [ rmcgibbo AndersonTorres ];
+    };
   };
-}
+in
+pythonPackages.buildPythonPackage finalAttrs
diff --git a/nixpkgs/pkgs/by-name/py/pyprland/package.nix b/nixpkgs/pkgs/by-name/py/pyprland/package.nix
index efb35780b89b..c7c8c9cf33b7 100644
--- a/nixpkgs/pkgs/by-name/py/pyprland/package.nix
+++ b/nixpkgs/pkgs/by-name/py/pyprland/package.nix
@@ -2,7 +2,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pyprland";
-  version = "2.0.5";
+  version = "2.0.9";
   format = "pyproject";
 
   disabled = python3Packages.pythonOlder "3.10";
@@ -11,7 +11,7 @@ python3Packages.buildPythonApplication rec {
     owner = "hyprland-community";
     repo = "pyprland";
     rev = "refs/tags/${version}";
-    hash = "sha256-VaNJ6hSdcH23Vk7JJpmNV6Qxb7gK5xWK6WHdeyfjUvQ=";
+    hash = "sha256-dfE4KQguLp9DEWOuCtNDw8TA3sK9vEqU4VqAVlVaUvw=";
   };
 
   nativeBuildInputs = with python3Packages; [ poetry-core ];
diff --git a/nixpkgs/pkgs/by-name/qa/qadwaitadecorations/package.nix b/nixpkgs/pkgs/by-name/qa/qadwaitadecorations/package.nix
index def921a3f6d0..1949373f2d1c 100644
--- a/nixpkgs/pkgs/by-name/qa/qadwaitadecorations/package.nix
+++ b/nixpkgs/pkgs/by-name/qa/qadwaitadecorations/package.nix
@@ -19,13 +19,13 @@ let
 
 in stdenv.mkDerivation (finalAttrs: {
   pname = "qadwaitadecorations";
-  version = "0.1.4";
+  version = "0.1.5";
 
   src = fetchFromGitHub {
     owner = "FedoraQt";
     repo = "QAdwaitaDecorations";
     rev = finalAttrs.version;
-    hash = "sha256-vG6nK+9hUX0ZxNFz5ZA/EC1rSFTGl5rDTBlsraRlrTU=";
+    hash = "sha256-aqjm93tmBfDkmce1WG5xx8MCDCvo6AOrRHArj/+Ko9E=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/qdirstat/default.nix b/nixpkgs/pkgs/by-name/qd/qdirstat/package.nix
index dc112d2d6935..e933cafc2e80 100644
--- a/nixpkgs/pkgs/applications/misc/qdirstat/default.nix
+++ b/nixpkgs/pkgs/by-name/qd/qdirstat/package.nix
@@ -1,23 +1,26 @@
-{ lib, fetchFromGitHub, qmake
-, coreutils, xdg-utils, bash
-, makeWrapper, perlPackages, mkDerivation }:
-
-let
+{
+  lib,
+  fetchFromGitHub,
+  libsForQt5,
+  coreutils,
+  xdg-utils,
+  bash,
+  makeWrapper,
+  perlPackages,
+}:
+
+libsForQt5.mkDerivation rec {
   pname = "qdirstat";
   version = "1.9";
 
   src = fetchFromGitHub {
     owner = "shundhammer";
-    repo = pname;
+    repo = "qdirstat";
     rev = version;
-    sha256 = "sha256-pwdmltHDNwUMx1FNOoiXl5Pna0zlKqahmicBCN6UVSU=";
+    hash = "sha256-pwdmltHDNwUMx1FNOoiXl5Pna0zlKqahmicBCN6UVSU=";
   };
-in
-
-mkDerivation {
-  inherit pname version src;
 
-  nativeBuildInputs = [ qmake makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ] ++ (with libsForQt5; [ qmake ]);
 
   buildInputs = [ perlPackages.perl ];
 
@@ -49,9 +52,9 @@ mkDerivation {
 
   meta = with lib; {
     description = "Graphical disk usage analyzer";
-    homepage = src.meta.homepage;
+    homepage = "https://github.com/shundhammer/qdirstat";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ donovanglover ];
     platforms = platforms.linux;
     mainProgram = "qdirstat";
   };
diff --git a/nixpkgs/pkgs/by-name/qg/qgrep/package.nix b/nixpkgs/pkgs/by-name/qg/qgrep/package.nix
index 57f7d0088d65..57c3d20db283 100644
--- a/nixpkgs/pkgs/by-name/qg/qgrep/package.nix
+++ b/nixpkgs/pkgs/by-name/qg/qgrep/package.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fast regular expression grep for source code with incremental index updates";
+    mainProgram = "qgrep";
     homepage = "https://github.com/zeux/qgrep";
     license = licenses.mit;
     maintainers = [ maintainers.yrashk ];
diff --git a/nixpkgs/pkgs/by-name/qr/qrtool/package.nix b/nixpkgs/pkgs/by-name/qr/qrtool/package.nix
index 4cee9724b3d7..274804829962 100644
--- a/nixpkgs/pkgs/by-name/qr/qrtool/package.nix
+++ b/nixpkgs/pkgs/by-name/qr/qrtool/package.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "qrtool";
-  version = "0.10.5";
+  version = "0.10.6";
 
   src = fetchFromGitHub {
     owner = "sorairolake";
     repo = "qrtool";
     rev = "v${version}";
-    sha256 = "sha256-XYoa5AueI0AYH5Lw7CmzeK9RkNy8WXbAAePAGkcwzWw=";
+    sha256 = "sha256-uniYvYFrwlYfTPpg4lKa2GLURdLHDRFfym8FjrKfSL4=";
   };
 
-  cargoHash = "sha256-s68OCW2KS1ADTp8rWaUOGXCrl+Qapyf9FcLVhSF4QMg=";
+  cargoHash = "sha256-f0ufdFGrOIHFrDLz3rwNSl3AlM6um0r9bQzfn0Syd1M=";
 
   nativeBuildInputs = [ asciidoctor installShellFiles ];
 
diff --git a/nixpkgs/pkgs/by-name/qu/quickjs-ng/package.nix b/nixpkgs/pkgs/by-name/qu/quickjs-ng/package.nix
index 13e728b4b66b..88b46c8377f2 100644
--- a/nixpkgs/pkgs/by-name/qu/quickjs-ng/package.nix
+++ b/nixpkgs/pkgs/by-name/qu/quickjs-ng/package.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "quickjs-ng";
-  version = "0.3.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "quickjs-ng";
     repo = "quickjs";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-4nFc9xdxrfRWeOY9VNQAI4Ph7G1GMnw06XZiO6xA72o=";
+    hash = "sha256-mo+YBhaCqGRWfVRvZCD0iB2pd/DsHsfWGFeFxwwyxPk=";
   };
 
   outputs = [ "bin" "out" "dev" "doc" "info" ];
diff --git a/nixpkgs/pkgs/by-name/qu/quicktype/package.nix b/nixpkgs/pkgs/by-name/qu/quicktype/package.nix
index c6dc593d061c..fb4a801af6bd 100644
--- a/nixpkgs/pkgs/by-name/qu/quicktype/package.nix
+++ b/nixpkgs/pkgs/by-name/qu/quicktype/package.nix
@@ -2,13 +2,13 @@
 
 buildNpmPackage rec {
   pname = "quicktype";
-  version = "23.0.104"; # version from https://npm.im/quicktype
+  version = "23.0.105"; # version from https://npm.im/quicktype
 
   src = fetchFromGitHub {
     owner = "glideapps";
     repo = "quicktype";
-    rev = "916cd94a9d4fdeab870b6a12f42ad43ebaedf314"; # version not tagged
-    hash = "sha256-PI9YgFVy7Mlln9+7IAU9vzyvK606PuAJ32st3NDwXIw=";
+    rev = "0b5924db1d3858d6f4abe5923cce53b2f4e581aa"; # version not tagged
+    hash = "sha256-JqpTnIhxLxLECqW8DjG1Oig/HOs9PpwmjdfhwE8sJAA=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/by-name/rd/rdwatool/package.nix b/nixpkgs/pkgs/by-name/rd/rdwatool/package.nix
new file mode 100644
index 000000000000..49459eb39a9e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/rd/rdwatool/package.nix
@@ -0,0 +1,49 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "rdwatool";
+  version = "1.2-unstable-2023-11-27";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "p0dalirius";
+    repo = "RDWAtool";
+    rev = "60b7816f06d155bd3d218b76b69d9419b8a82dbe";
+    hash = "sha256-0mjnZiF8DxVbI8Lr12b7jzn+x+mn6Mel8LaIy8heEdI=";
+  };
+
+  pythonRelaxDeps = [
+    "urllib3"
+  ];
+
+  pythonRemoveDeps = [
+    "bs4"
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    pythonRelaxDepsHook
+    setuptools
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    beautifulsoup4
+    requests
+    urllib3
+    xlsxwriter
+  ];
+
+  pythonImportsCheck = [
+    "rdwatool"
+  ];
+
+  meta = with lib; {
+    description = "Tool to extract information from a Microsoft Remote Desktop Web Access (RDWA) application";
+    homepage = "https://github.com/p0dalirius/RDWAtool";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "rdwatool";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/re/redlib/package.nix b/nixpkgs/pkgs/by-name/re/redlib/package.nix
new file mode 100644
index 000000000000..c3778b9cd0fa
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/re/redlib/package.nix
@@ -0,0 +1,61 @@
+{ lib
+, stdenv
+, cacert
+, nixosTests
+, rustPlatform
+, fetchFromGitHub
+, darwin
+}:
+rustPlatform.buildRustPackage rec {
+  pname = "redlib";
+  version = "0.31.0";
+
+  src = fetchFromGitHub {
+    owner = "redlib-org";
+    repo = "redlib";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-d3Jjs/a2EgdqRBTjXKwDDRnU6orb7RQGl1CVz9b9SdI=";
+  };
+
+  cargoHash = "sha256-2MugS0/MO85lQvDbiFwnsX4LYdk7TACDFR8OOLEFGUQ=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  checkFlags = [
+    # All these test try to connect to Reddit.
+    "--skip=test_fetching_subreddit_quarantined"
+    "--skip=test_fetching_nsfw_subreddit"
+    "--skip=test_fetching_ws"
+
+    "--skip=test_obfuscated_share_link"
+    "--skip=test_share_link_strip_json"
+
+    "--skip=test_localization_popular"
+    "--skip=test_fetching_subreddit"
+    "--skip=test_fetching_user"
+
+    # These try to connect to the oauth client
+    "--skip=test_oauth_client"
+    "--skip=test_oauth_client_refresh"
+    "--skip=test_oauth_token_exists"
+  ];
+
+  env = {
+    SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+  };
+
+  passthru.tests = {
+    inherit (nixosTests) redlib;
+  };
+
+  meta = {
+    changelog = "https://github.com/redlib-org/redlib/releases/tag/v${version}";
+    description = "Private front-end for Reddit (Continued fork of Libreddit)";
+    homepage = "https://github.com/redlib-org/redlib";
+    license = lib.licenses.agpl3Only;
+    mainProgram = "redlib";
+    maintainers = with lib.maintainers; [ soispha ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/re/regols/package.nix b/nixpkgs/pkgs/by-name/re/regols/package.nix
index 3b62c387d40f..64515e5ed72e 100644
--- a/nixpkgs/pkgs/by-name/re/regols/package.nix
+++ b/nixpkgs/pkgs/by-name/re/regols/package.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "OPA Rego language server";
+    mainProgram = "regols";
     homepage = "https://github.com/kitagry/regols";
     license = licenses.mit;
     maintainers = with maintainers; [ alias-dev ];
diff --git a/nixpkgs/pkgs/by-name/re/ren-find/package.nix b/nixpkgs/pkgs/by-name/re/ren-find/package.nix
new file mode 100644
index 000000000000..caddd17ae1d5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/re/ren-find/package.nix
@@ -0,0 +1,26 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ren-find";
+  version = "0-unstable-2024-01-11";
+
+  src = fetchFromGitHub {
+    owner = "robenkleene";
+    repo = "ren-find";
+    rev = "50c40172e354caffee48932266edd7c7a76a20f";
+    hash = "sha256-zVIt6Xp+Mvym6gySvHIZJt1QgzKVP/wbTGTubWk6kzI=";
+  };
+
+  cargoHash = "sha256-pUy8850v4m9P5OuL15qxmDDQYYyae9HFXRbg3b4f3Lw=";
+
+  meta = with lib; {
+    description = "A command-line utility that takes find-formatted lines and batch renames them.";
+    homepage = "https://github.com/robenkleene/ren-find";
+    license = licenses.mit;
+    maintainers = with maintainers; [ philiptaron ];
+    mainProgram = "ren";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/re/renode-dts2repl/package.nix b/nixpkgs/pkgs/by-name/re/renode-dts2repl/package.nix
index b6af65fa0b38..1ec43b01d89a 100644
--- a/nixpkgs/pkgs/by-name/re/renode-dts2repl/package.nix
+++ b/nixpkgs/pkgs/by-name/re/renode-dts2repl/package.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication {
   pname = "renode-dts2repl";
-  version = "unstable-2024-02-29";
+  version = "unstable-2024-03-22";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "antmicro";
     repo = "dts2repl";
-    rev = "a53f2f01039a462bdd7322d1fb315edd95033b6d";
-    hash = "sha256-DsHNS9pZu3ZWM3teG3pUi0EM+8znmCPTSGuzGmJ4IgU=";
+    rev = "b5c2d03cce95c2488d80ce5214131fba8d119fec";
+    hash = "sha256-q8Q5Lx2CQIjdL/LBRaYXvQl1MFw3Bh0RbnGHJgMnXyA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/by-name/re/renode-unstable/package.nix b/nixpkgs/pkgs/by-name/re/renode-unstable/package.nix
index cf31a1208b22..15fbcdc11fdc 100644
--- a/nixpkgs/pkgs/by-name/re/renode-unstable/package.nix
+++ b/nixpkgs/pkgs/by-name/re/renode-unstable/package.nix
@@ -7,10 +7,10 @@
   inherit buildUnstable;
 }).overrideAttrs (finalAttrs: _: {
   pname = "renode-unstable";
-  version = "1.14.0+20240305gitcec51e561";
+  version = "1.15.0+20240320git97be875a3";
 
   src = fetchurl {
     url = "https://builds.renode.io/renode-${finalAttrs.version}.linux-portable.tar.gz";
-    hash = "sha256-dXT4C/s7Aygqhq0U6MiPsQL8ZvjPfTzKYuhA6aRQKlI=";
+    hash = "sha256-+1tOZ44fg/Z4n4gjPylRQlRE7KnL0AGcODlue/HLb3I=";
   };
 })
diff --git a/nixpkgs/pkgs/by-name/re/renode/package.nix b/nixpkgs/pkgs/by-name/re/renode/package.nix
index 33646daac8c5..7ea55e0fff98 100644
--- a/nixpkgs/pkgs/by-name/re/renode/package.nix
+++ b/nixpkgs/pkgs/by-name/re/renode/package.nix
@@ -23,11 +23,11 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "renode";
-  version = "1.14.0";
+  version = "1.15.0";
 
   src = fetchurl {
-    url = "https://builds.renode.io/renode-${finalAttrs.version}.linux-portable.tar.gz";
-    hash = "sha256-1wfVHtCYc99ACz8m2XEg1R0nIDh9xP4ffV/vxeeEHxE=";
+    url = "https://github.com/renode/renode/releases/download/v${finalAttrs.version}/renode-${finalAttrs.version}.linux-portable.tar.gz";
+    hash = "sha256-w3HKYctW1LmiAse/27Y1Gmz9hDprQ1CK7+TXIexCrkg=";
   };
 
   nativeBuildInputs = [
@@ -95,7 +95,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Virtual development framework for complex embedded systems";
-    homepage = "https://renode.org";
+    homepage = "https://renode.io";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ otavio ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/by-name/re/rep-grep/package.nix b/nixpkgs/pkgs/by-name/re/rep-grep/package.nix
new file mode 100644
index 000000000000..1869938cb55b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/re/rep-grep/package.nix
@@ -0,0 +1,26 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rep-grep";
+  version = "0-unstable-2024-02-06";
+
+  src = fetchFromGitHub {
+    owner = "robenkleene";
+    repo = "rep-grep";
+    rev = "10510d47e392cb9d30a861c69f702fd194b3fa88";
+    hash = "sha256-/dH+mNtNHaYFndVhoqmz4Sc3HeemoQt1HGD98mb9Qhw=";
+  };
+
+  cargoHash = "sha256-ch+RMLc+xogL0gkrnw+n+bmUVIcixdPTaNPHPuJ0/EI=";
+
+  meta = with lib; {
+    description = "A command-line utility that takes grep-formatted lines and performs a find-and-replace on them.";
+    homepage = "https://github.com/robenkleene/rep-grep";
+    license = licenses.mit;
+    maintainers = with maintainers; [ philiptaron ];
+    mainProgram = "rep";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/re/reproxy/package.nix b/nixpkgs/pkgs/by-name/re/reproxy/package.nix
new file mode 100644
index 000000000000..f90ad1246cf8
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/re/reproxy/package.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "reproxy";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "umputun";
+    repo = "reproxy";
+    rev = "v${version}";
+    hash = "sha256-/ydpqi7O4z41YxYb/RngPWk/79h3MIxAopzqIDMgw1g=";
+  };
+
+  vendorHash = null;
+
+  ldflags = [
+    "-s" "-w" "-X main.revision=${version}"
+  ];
+
+  checkFlags = [
+    # Requires network access or fluky
+    "-skip=^Test(_MainWithPlugin|_MainWithSSL|_Main|Http_matchHandler|Http_withBasicAuth|File_Events|File_Events_BusyListener)$"
+  ];
+
+  postInstall = ''
+    mv $out/bin/{app,reproxy}
+  '';
+
+  meta = with lib; {
+    description = "Simple edge server / reverse proxy";
+    homepage = "https://reproxy.io/";
+    changelog = "https://github.com/umputun/reproxy/releases/tag/${src.rev}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sikmir ];
+    mainProgram = "reproxy";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/re/resonance/package.nix b/nixpkgs/pkgs/by-name/re/resonance/package.nix
new file mode 100644
index 000000000000..fe7be58060a3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/re/resonance/package.nix
@@ -0,0 +1,83 @@
+{ lib
+, cargo
+, dbus
+, desktop-file-utils
+, fetchFromGitHub
+, glib
+, gst_all_1
+, gtk4
+, libadwaita
+, libxml2
+, meson
+, ninja
+, nix-update-script
+, openssl
+, pkg-config
+, python3
+, python3Packages
+, rustPlatform
+, rustc
+, sqlite
+, stdenv
+, wrapGAppsHook4
+}:
+stdenv.mkDerivation (finalAttrs: {
+  pname = "resonance";
+  version = "0-unstable-2023-06-06";
+
+  src = fetchFromGitHub {
+    owner = "nate-xyz";
+    repo = "resonance";
+    rev = "97826093e22418c0efdb4e61cc75d981bb82c120";
+    hash = "sha256-DgNUjb8+2WTw91OGgFf97YL6lnODtkftYAP/c05RUPI=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    src = finalAttrs.src;
+    hash = "sha256-/v3OokClOk95GOzidBHRkUG7kjHQm35yPeC1n3PzcyM=";
+  };
+
+  nativeBuildInputs = [
+    cargo
+    desktop-file-utils
+    meson
+    ninja
+    pkg-config
+    python3
+    rustPlatform.cargoSetupHook
+    rustc
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    dbus
+    glib
+    gtk4
+    libadwaita
+    libxml2
+    openssl
+    sqlite
+  ] ++ (with gst_all_1; [
+    gst-libav
+    gst-plugins-bad
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-ugly
+    gstreamer
+  ]);
+
+  preFixup = ''
+    gappsWrapperArgs+=(--prefix PYTHONPATH : ${python3.pkgs.makePythonPath (with python3Packages; [ tqdm mutagen loguru ])})
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = with lib; {
+    description = "Intuitive GTK4/LibAdwaita music player";
+    homepage = "https://github.com/nate-xyz/resonance";
+    license = licenses.gpl3Plus;
+    mainProgram = "resonance";
+    maintainers = with maintainers; [ Guanran928 ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/misc/retool/default.nix b/nixpkgs/pkgs/by-name/re/retool/package.nix
index 8d7811120979..18a982176d9c 100644
--- a/nixpkgs/pkgs/applications/misc/retool/default.nix
+++ b/nixpkgs/pkgs/by-name/re/retool/package.nix
@@ -7,30 +7,25 @@
 
 python3.pkgs.buildPythonApplication {
   pname = "retool";
-  version = "unstable-2023-08-24";
+  version = "2.02.2-unstable-2024-03-17";
 
-  format = "pyproject";
+  pyproject = true;
   disabled = python3.pkgs.pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "unexpectedpanda";
     repo = "retool";
-    rev =  "d8acdb960d35b5a6b01d7dc66b7e40b3ec451301";
-    hash = "sha256-6y/7RR7O2xYKXdxaFtkRfnSlwygp/LRDUozUJo6ue7s=";
+    rev = "30d547c7d04b8cbf7710b2037388bf18a00a0c22";
+    hash = "sha256-5Tmi3eVJh9STP9A0dDNPDs4SlIWHw8sk+g1GgpnmqeE=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
-    poetry-core
-    pythonRelaxDepsHook
+    hatchling
     qt6.wrapQtAppsHook
   ];
 
   pythonRelaxDeps = true;
 
-  # ERROR: Could not find a version that satisfies the requirement PySide6 (from retool) (from versions: none)
-  # ERROR: No matching distribution found for PySide6
-  pythonRemoveDeps = [ "PySide6" ];
-
   buildInputs = [
     qt6.qtbase
   ] ++
@@ -40,11 +35,12 @@ python3.pkgs.buildPythonApplication {
 
   propagatedBuildInputs = with python3.pkgs; [
     alive-progress
+    darkdetect
     lxml
     psutil
-    validators
     pyside6
     strictyaml
+    validators
   ];
 
   # Upstream has no tests
diff --git a/nixpkgs/pkgs/by-name/ri/ricochet-refresh/package.nix b/nixpkgs/pkgs/by-name/ri/ricochet-refresh/package.nix
index c90c6aabbd92..384932ed7c85 100644
--- a/nixpkgs/pkgs/by-name/ri/ricochet-refresh/package.nix
+++ b/nixpkgs/pkgs/by-name/ri/ricochet-refresh/package.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Secure chat without DNS or WebPKI";
+    mainProgram = "ricochet-refresh";
     longDescription = ''
       Ricochet Refresh is a peer-to-peer messenger app that uses Tor
       to connect clients.
diff --git a/nixpkgs/pkgs/by-name/ri/ripunzip/package.nix b/nixpkgs/pkgs/by-name/ri/ripunzip/package.nix
index 3dcdf976fcaa..1942b61f5fb8 100644
--- a/nixpkgs/pkgs/by-name/ri/ripunzip/package.nix
+++ b/nixpkgs/pkgs/by-name/ri/ripunzip/package.nix
@@ -41,6 +41,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool to unzip files in parallel";
+    mainProgram = "ripunzip";
     homepage = "https://github.com/google/ripunzip";
     license = with lib.licenses; [ mit asl20 ];
     maintainers = [ maintainers.lesuisse ];
diff --git a/nixpkgs/pkgs/by-name/rk/rkbin/package.nix b/nixpkgs/pkgs/by-name/rk/rkbin/package.nix
new file mode 100644
index 000000000000..9ccff94a4e4b
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/rk/rkbin/package.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, rkbin
+}:
+
+stdenv.mkDerivation {
+  pname = "rkbin";
+  version = "unstable-2024.02.22";
+
+  src = fetchFromGitHub {
+    owner = "rockchip-linux";
+    repo = "rkbin";
+    rev = "a2a0b89b6c8c612dca5ed9ed8a68db8a07f68bc0";
+    hash = "sha256-U/jeUsV7bhqMw3BljmO6SI07NCDAd/+sEp3dZnyXeeA=";
+  };
+
+  installPhase = ''
+    mkdir $out
+    mv bin doc $out/
+  '';
+
+  passthru = {
+    BL31_RK3568 = "${rkbin}/bin/rk35/rk3568_bl31_v1.44.elf";
+    TPL_RK3568 = "${rkbin}/bin/rk35/rk3568_ddr_1056MHz_v1.21.bin";
+    TPL_RK3588 = "${rkbin}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.16.bin";
+  };
+
+  meta = with lib; {
+    description = "Rockchip proprietary bootloader blobs";
+    homepage = "https://github.com/rockchip-linux/rkbin";
+    license = licenses.unfreeRedistributable;
+    maintainers = with maintainers; [ thefossguy ];
+    platforms = [ "aarch64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/rofimoji/default.nix b/nixpkgs/pkgs/by-name/ro/rofimoji/package.nix
index f620bb7bd832..56730c975fd7 100644
--- a/nixpkgs/pkgs/applications/misc/rofimoji/default.nix
+++ b/nixpkgs/pkgs/by-name/ro/rofimoji/package.nix
@@ -1,13 +1,11 @@
-{ buildPythonApplication
+{ lib
+, python3Packages
 , fetchFromGitHub
-, lib
-, python3
 , installShellFiles
 
 , waylandSupport ? true
 , x11Support ? true
 
-, configargparse
 , rofi
 , wl-clipboard
 , wtype
@@ -15,28 +13,28 @@
 , xsel
 }:
 
-buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "rofimoji";
-  version = "6.1.0";
-  format = "pyproject";
+  version = "6.2.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "fdw";
     repo = "rofimoji";
-    rev = "refs/tags/${version}";
-    sha256 = "sha256-eyzdTMLW9nk0x74T/AhvoVSrxXugc1HgNJy8EB5BApE=";
+    rev = version;
+    hash = "sha256-9P9hXBEfq6sqCvb2SfPBNadEoXAdWF3cmcKGEOK+EHE=";
   };
 
   nativeBuildInputs = [
-    python3.pkgs.poetry-core
+    python3Packages.poetry-core
     installShellFiles
   ];
 
   # `rofi` and the `waylandSupport` and `x11Support` dependencies
   # contain binaries needed at runtime.
-  propagatedBuildInputs = with lib; [ configargparse rofi ]
-    ++ optionals waylandSupport [ wl-clipboard wtype ]
-    ++ optionals x11Support [ xdotool xsel ];
+  propagatedBuildInputs = [ python3Packages.configargparse rofi ]
+    ++ lib.optionals waylandSupport [ wl-clipboard wtype ]
+    ++ lib.optionals x11Support [ xdotool xsel ];
 
   # The 'extractors' sub-module is used for development
   # and has additional dependencies.
@@ -50,7 +48,9 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "A simple emoji and character picker for rofi";
+    mainProgram = "rofimoji";
     homepage = "https://github.com/fdw/rofimoji";
+    changelog = "https://github.com/fdw/rofimoji/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ justinlovinger ];
diff --git a/nixpkgs/pkgs/by-name/ro/route-graph/package.nix b/nixpkgs/pkgs/by-name/ro/route-graph/package.nix
new file mode 100644
index 000000000000..7b5e20451a98
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ro/route-graph/package.nix
@@ -0,0 +1,51 @@
+{ lib
+, fetchFromGitHub
+, graphviz
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "route-graph";
+  version = "0.2.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "audiusGmbH";
+    repo = "route-graph";
+    rev = "refs/tags/${version}";
+    hash = "sha256-OOXLmHxWre5t4tysDXV23PTkyUG6Zcpanw0fVCOLFTM=";
+  };
+
+  pythonRelaxDeps = [
+    "typing-extensions"
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = [
+    graphviz
+  ] ++ (with python3.pkgs; [
+    scapy
+    typer
+    typing-extensions
+  ] ++ typer.optional-dependencies.all);
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "route_graph"
+  ];
+
+  meta = with lib; {
+    description = "CLI tool for creating graphs of routes";
+    homepage = "https://github.com/audiusGmbH/route-graph";
+    changelog = "https://github.com/audiusGmbH/route-graph/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "route-graph";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ro/roxterm/package.nix b/nixpkgs/pkgs/by-name/ro/roxterm/package.nix
index 8a978e98b6d4..8b4f2e79c2be 100644
--- a/nixpkgs/pkgs/by-name/ro/roxterm/package.nix
+++ b/nixpkgs/pkgs/by-name/ro/roxterm/package.nix
@@ -31,13 +31,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "roxterm";
-  version = "3.15.0";
+  version = "3.14.3";
 
   src = fetchFromGitHub {
     owner = "realh";
     repo = "roxterm";
     rev = finalAttrs.version;
-    hash = "sha256-mmfnpZTCsLJ4EPxsKZXeHBZnpvc2n1TCEPmiIHmnxKc=";
+    hash = "sha256-NSOGq3rN+9X4WA8Q0gMbZ9spO/dbZkzeo4zEno/Kgcs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/by-name/rs/rs-tftpd/package.nix b/nixpkgs/pkgs/by-name/rs/rs-tftpd/package.nix
new file mode 100644
index 000000000000..43b010913ea8
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/rs/rs-tftpd/package.nix
@@ -0,0 +1,26 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rs-tftpd";
+  version = "0.2.12";
+
+  src = fetchFromGitHub {
+    owner = "altugbakan";
+    repo = "rs-tftpd";
+    rev = version;
+    hash = "sha256-H67lXwX+4guHpdq0yTHe6tl1NxC41saNrM9g+yH5otk=";
+  };
+
+  cargoHash = "sha256-B5kduRuX9Lcdd31yj4PsDo8fyy0nabtmsiAXvc8RlYo=";
+
+  meta = with lib; {
+    description = "TFTP Server Daemon implemented in Rust";
+    homepage = "https://github.com/altugbakan/rs-tftpd";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthewcroughan ];
+    mainProgram = "tftpd";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/rs/rs/package.nix b/nixpkgs/pkgs/by-name/rs/rs/package.nix
index 141d72dfe077..1b369eec9b34 100644
--- a/nixpkgs/pkgs/by-name/rs/rs/package.nix
+++ b/nixpkgs/pkgs/by-name/rs/rs/package.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.mirbsd.org/htman/i386/man1/rs.htm";
     description = "Reshape a data array from standard input";
+    mainProgram = "rs";
     longDescription = ''
       rs reads the standard input, interpreting each line as a row of blank-
       separated entries in an array, transforms the array according to the op-
diff --git a/nixpkgs/pkgs/by-name/rs/rsgain/package.nix b/nixpkgs/pkgs/by-name/rs/rsgain/package.nix
index adb2be57332c..b759b50892d5 100644
--- a/nixpkgs/pkgs/by-name/rs/rsgain/package.nix
+++ b/nixpkgs/pkgs/by-name/rs/rsgain/package.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
     meta = with lib; {
       description = "A simple, but powerful ReplayGain 2.0 tagging utility";
+      mainProgram = "rsgain";
       homepage = "https://github.com/complexlogic/rsgain";
       changelog = "https://github.com/complexlogic/rsgain/blob/v${version}/CHANGELOG";
       license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/by-name/rs/rspamd-trainer/package.nix b/nixpkgs/pkgs/by-name/rs/rspamd-trainer/package.nix
index 0479b8f07da4..49dd46d29564 100644
--- a/nixpkgs/pkgs/by-name/rs/rspamd-trainer/package.nix
+++ b/nixpkgs/pkgs/by-name/rs/rspamd-trainer/package.nix
@@ -53,6 +53,7 @@ python3Packages.buildPythonApplication {
   meta = {
     homepage = "https://gitlab.com/onlime/rspamd-trainer";
     description = "Grabs messages from a spam mailbox via IMAP and feeds them to Rspamd for training";
+    mainProgram = "rspamd-trainer";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ onny ];
   };
diff --git a/nixpkgs/pkgs/by-name/rs/rst2html5/package.nix b/nixpkgs/pkgs/by-name/rs/rst2html5/package.nix
index 61b75130fe1b..82def912da99 100644
--- a/nixpkgs/pkgs/by-name/rs/rst2html5/package.nix
+++ b/nixpkgs/pkgs/by-name/rs/rst2html5/package.nix
@@ -19,6 +19,7 @@ python3Packages.buildPythonPackage rec {
   meta = with lib;{
     homepage = "https://rst2html5.readthedocs.io/en/latest/";
     description = "Converts ReSTructuredText to (X)HTML5";
+    mainProgram = "rst2html5";
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
   };
diff --git a/nixpkgs/pkgs/by-name/ru/rustdesk-flutter/package.nix b/nixpkgs/pkgs/by-name/ru/rustdesk-flutter/package.nix
index dc24dad68e47..2c82eade26da 100644
--- a/nixpkgs/pkgs/by-name/ru/rustdesk-flutter/package.nix
+++ b/nixpkgs/pkgs/by-name/ru/rustdesk-flutter/package.nix
@@ -39,7 +39,7 @@
 
   sharedLibraryExt = rustc.stdenv.hostPlatform.extensions.sharedLibrary;
 
-in flutter316.buildFlutterApplication {
+in flutter316.buildFlutterApplication rec {
   pname = "rustdesk";
   version = "1.2.3-unstable-2024-02-11";
   src = fetchFromGitHub {
@@ -52,7 +52,7 @@ in flutter316.buildFlutterApplication {
   strictDeps = true;
 
   # Configure the Flutter/Dart build
-  sourceRoot = "source/flutter";
+  sourceRoot = "${src.name}/flutter";
   # curl https://raw.githubusercontent.com/rustdesk/rustdesk/16db977fd81e14af62ec5ac7760a7661a5c24be8/flutter/pubspec.lock | yq
   pubspecLock = lib.importJSON ./pubspec.lock.json;
   gitHashes = {
diff --git a/nixpkgs/pkgs/by-name/ru/rusti-cal/package.nix b/nixpkgs/pkgs/by-name/ru/rusti-cal/package.nix
index 3dd368e19257..97b5e107314d 100644
--- a/nixpkgs/pkgs/by-name/ru/rusti-cal/package.nix
+++ b/nixpkgs/pkgs/by-name/ru/rusti-cal/package.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Minimal command line calendar, similar to cal";
+    mainProgram = "rusti-cal";
     homepage = "https://github.com/arthurhenrique/rusti-cal";
     license = [ licenses.mit ];
     maintainers = [ maintainers.detegr ];
diff --git a/nixpkgs/pkgs/by-name/rw/rwpspread/package.nix b/nixpkgs/pkgs/by-name/rw/rwpspread/package.nix
index 040404404ea8..e9cded71c368 100644
--- a/nixpkgs/pkgs/by-name/rw/rwpspread/package.nix
+++ b/nixpkgs/pkgs/by-name/rw/rwpspread/package.nix
@@ -8,29 +8,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rwpspread";
-  version = "0.2.1";
+  version = "0.2.4";
 
   src = fetchFromGitHub {
     owner = "0xk1f0";
     repo = "rwpspread";
     rev = "v${version}";
-    hash = "sha256-I9zZtk+Byn2DBMvhRVUBJ5O8fzzy1uSTniMUDXi07ho=";
+    hash = "sha256-ACYELJU7Y4Xv+abQ/Vgo3xaP+jbO43K/CBE2yuEddko=";
   };
+  cargoHash = "sha256-ZNWDUOEhh36YjbGZpljyXsL0g7iW6GheLi2WxCj4w+s=";
 
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "smithay-client-toolkit-0.18.0" = "sha256-7s5XPmIflUw2qrKRAZUz30cybYKvzD5Hu4ViDpzGC3s=";
-    };
-  };
-
-  nativeBuildInputs = [
-    pkg-config
-  ];
+  nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [
-    libxkbcommon
-  ];
+  buildInputs = [ libxkbcommon ];
 
   passthru.updateScript = nix-update-script { };
 
diff --git a/nixpkgs/pkgs/by-name/ry/ryujinx/deps.nix b/nixpkgs/pkgs/by-name/ry/ryujinx/deps.nix
index e6af72142fbb..04b6bab6647d 100644
--- a/nixpkgs/pkgs/by-name/ry/ryujinx/deps.nix
+++ b/nixpkgs/pkgs/by-name/ry/ryujinx/deps.nix
@@ -2,28 +2,28 @@
 # Please dont edit it manually, your changes might get overwritten!
 
 { fetchNuGet }: [
-  (fetchNuGet { pname = "Avalonia"; version = "11.0.7"; sha256 = "1rh7c4ia0n7v8kd5kspj15sh49hc5gy3fcnm7nb2xsarv9gvmwcg"; })
+  (fetchNuGet { pname = "Avalonia"; version = "11.0.10"; sha256 = "0mvsc6fg8qbvdqkdkia61jkprb3yhvvgvq6s8hgd09v6lzjsbq8n"; })
   (fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2023020321"; sha256 = "1az4s1g22ipak9a3xfh55z2h3rm6lpqh7svbpw6ag4ysrgsjjsjd"; })
   (fetchNuGet { pname = "Avalonia.BuildServices"; version = "0.0.29"; sha256 = "05mm7f0jssih3gbzqfgjnfq5cnqa85ihsg0z1897ciihv8qd3waq"; })
+  (fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.10"; sha256 = "0s2wn7sf0dsa861gh6ghfgf881p6bvyahfpl583rcnsi6ci2hjhv"; })
   (fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.4"; sha256 = "1sqdcaknqazq4mw2x1jb6pfmfnyhpkd4xh6fl4ld85qikzzj7796"; })
-  (fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.7"; sha256 = "1386lhzkc5mal70imw3vxfkbz7z94njylg662ymr2m3hhwz34w3l"; })
-  (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "11.0.7"; sha256 = "080w1k4mia6kkl9lw5hl03n75xrkd2rlh5901jrpk11jyy36w00s"; })
+  (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "11.0.10"; sha256 = "13g5sac0ba8dy1pn21j2g4fin57x1vs1pl07gzgv53bl8nz1xznj"; })
   (fetchNuGet { pname = "Avalonia.Controls.ItemsRepeater"; version = "11.0.4"; sha256 = "1p7mz33a6dn6ghvwajxdghq15mn5f6isvvqzxcjbnhh3m5c1zhrz"; })
-  (fetchNuGet { pname = "Avalonia.Desktop"; version = "11.0.7"; sha256 = "0z5jypzqxh83r1pzvl1k7x1wxhnr3f0knp4wr0fkcgj97k2bnjy1"; })
-  (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "11.0.7"; sha256 = "1n9bdmbc9m0r7x7iqkin4b8c6pdf19lbsvl258ncymhln6j8y0xw"; })
-  (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "11.0.7"; sha256 = "0xd3gmgh2rd1krd1q7yh3vrqggxap23fgfph2vfkfg3cxgyyfcml"; })
-  (fetchNuGet { pname = "Avalonia.Markup.Xaml.Loader"; version = "11.0.7"; sha256 = "1k5zfwhjkqbk2jb2h5gbvf85q3shz411hgf5xa80yi5wxw1d2nr6"; })
-  (fetchNuGet { pname = "Avalonia.Native"; version = "11.0.7"; sha256 = "164zyd1aaa42xryci82km2fznzmjag9s1f3i8yjyg2ip5agkh289"; })
+  (fetchNuGet { pname = "Avalonia.Desktop"; version = "11.0.10"; sha256 = "0s27ajknbrymnchv66rybrs3snzh825iy0nqby72yk726znp52vw"; })
+  (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "11.0.10"; sha256 = "1c7hv9ypvn1ncg6cmzn2cs0nkax0y0pnbx1h1asjzn8rnbwcvnca"; })
+  (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "11.0.10"; sha256 = "18f9vpsxfaak4qpqvcz9rdygx3k8dhzb64iqlhva88nhahwlwlxr"; })
+  (fetchNuGet { pname = "Avalonia.Markup.Xaml.Loader"; version = "11.0.10"; sha256 = "0vlvysxi2qdg3na604jivzs68ldry1i43lmxxa3lhh7q9pqqpzjy"; })
+  (fetchNuGet { pname = "Avalonia.Native"; version = "11.0.10"; sha256 = "06pihfddbvdw1s3rs6v183ljch1bsxym80fclfqrh3npa3ag9n1z"; })
+  (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.10"; sha256 = "0p75z6k4ivzhdn9y9gwqsqmja7x03d4mxaicbccjbnz06irybnxa"; })
   (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.4"; sha256 = "096436hhg45v02pp4f43mf00xn6blx7x66sb8fq5j4jn7479fynp"; })
-  (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.7"; sha256 = "0a5a1wz9ka1r7ch0c2b5nvnsgm49kdhlj16rvrvhdz30qf9m671n"; })
   (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.0"; sha256 = "1ra1kd0kkblppr5zy7rzdbwllggrzvp9lkxblf9mg3y8rnp6fk83"; })
+  (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.10"; sha256 = "0w45j4ypqnwmsh3byzaghn43ycfkfnn8415i5lw2q5ip7vp3a9fm"; })
   (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.4"; sha256 = "1ysmq4f8bxabpq3nhcrrvgwvxb9z7gx9565bvdyksdhsq16wyxym"; })
-  (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.7"; sha256 = "1v3g13a447k5dmd0n26aibjwxawx3vqn8g2jmwpw533rx1f509h5"; })
-  (fetchNuGet { pname = "Avalonia.Svg"; version = "11.0.0.13"; sha256 = "1cf2y8bhb5xcpkrzbkfw1lr8iwz99p0lv34sh51xd9inx0rnvm4g"; })
-  (fetchNuGet { pname = "Avalonia.Svg.Skia"; version = "11.0.0.13"; sha256 = "0hbc1m5lv8l9fflz8z46f9pwrrd4hisn8qp38944388r9ay0v4ip"; })
-  (fetchNuGet { pname = "Avalonia.Themes.Simple"; version = "11.0.7"; sha256 = "0ggrsir3zskg22as65f3i93f4dmhqm5lqq0irb1rqi8dfficsmzx"; })
-  (fetchNuGet { pname = "Avalonia.Win32"; version = "11.0.7"; sha256 = "0zbh1cd8zykc5rrannz6i9pyiiygm041db3nrpzyi43xsknnhl7r"; })
-  (fetchNuGet { pname = "Avalonia.X11"; version = "11.0.7"; sha256 = "03skfjxw2xpynl8j2gjpb4v1v642qw1qnx9lcq9whgmlj03yz9nc"; })
+  (fetchNuGet { pname = "Avalonia.Svg"; version = "11.0.0.16"; sha256 = "12bk984wylqyyl3fcgxg640pqf6bjbqfkgp1fldrprncca0fx80k"; })
+  (fetchNuGet { pname = "Avalonia.Svg.Skia"; version = "11.0.0.16"; sha256 = "1yd9zf1vbfci52f6yyig8ar2w8wpwiafbf65ah11qqrm32rwd7z6"; })
+  (fetchNuGet { pname = "Avalonia.Themes.Simple"; version = "11.0.10"; sha256 = "0vssdz6rng0k85qsv2xn6x0dldaalnnx718n7plwxg3j1pddr1z7"; })
+  (fetchNuGet { pname = "Avalonia.Win32"; version = "11.0.10"; sha256 = "1gh3fad9ya56qwzhk7590bdzkky76yx1jjj60rqr013b97qbd3gs"; })
+  (fetchNuGet { pname = "Avalonia.X11"; version = "11.0.10"; sha256 = "1x09mp8q3mrj5fijqk7qp5qivrysqnbc2bkj2ssvawb9rjy6497w"; })
   (fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
   (fetchNuGet { pname = "Concentus"; version = "1.1.7"; sha256 = "0y5z444wrbhlmsqpy2sxmajl1fbf74843lvgj3y6vz260dn2q0l0"; })
   (fetchNuGet { pname = "DiscordRichPresence"; version = "1.2.1.24"; sha256 = "0maw0yd6xgwy0cgk593z3zva0r5j267zpdmmpq8avj3zbna6n4x1"; })
@@ -48,9 +48,9 @@
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.0.0"; sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.4"; sha256 = "0wd6v57p53ahz5z9zg4iyzmy3src7rlsncyqpcag02jjj1yx6g58"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.8.0"; sha256 = "12n7rvr39bzkf2maw7zplw8rwpxpxss4ich3bb2pw770rx4nyvyw"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.8.0"; sha256 = "0gmbxn91h4r23fhzpl1dh56cpva4sg2h659kdbdazayrajfj50fw"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.9.2"; sha256 = "097lb4acla3x0m2s0w47f6321q3k2phnhpbh338d79an4b5ffks1"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.8.0"; sha256 = "1kmry65csvfn72zzc16vj1nfbfwam28wcmlrk3m5rzb8ydbzgylb"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.8.0"; sha256 = "0idaksbib90zgi8xlycmdzk77dlxichspp23wpnfrzfxkdfafqrj"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.9.2"; sha256 = "002llvcwkaqnpzsipp9s20piw61i89spamr0wlxrvss41zh90klg"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.8.0"; sha256 = "0w0yx0lpg54iw5jazqk46h48gx43ij32gwac8iywdj6kxfxm03vw"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.8.0"; sha256 = "0hjgxcsj5zy27lqk0986m59n5dbplx2vjjla2lsvg4bwg8qa7bpk"; })
   (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.9.0"; sha256 = "1gljgi69k0fz8vy8bn6xlyxabj6q4vls2zza9wz7ng6ix3irm89r"; })
@@ -58,23 +58,23 @@
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
   (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "3.1.6"; sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "6.0.0"; sha256 = "08c4fh1n8vsish1vh7h73mva34g0as4ph29s4lvps7kmjb4z64nl"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.3.0"; sha256 = "1x183b0gz1vcfiljggrn30g6jvixlwks0lfpl4hl9nnjbpg0fdvq"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.3.0"; sha256 = "03nnqmz0w42wiqgf5y0wkn6w0n3m93q8ihqmrrz7rdh85v06f999"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.3.0"; sha256 = "1b24pf0ippwbdjc3k1wzr13lr1zqlcbymi2hpvfmxmk4i6vzn4mv"; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.3.0"; sha256 = "1qdcqcnczaqfd0cii3bcymbc7rvkypm25idxgx7hfc81h9ysh79h"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.4.0"; sha256 = "138jyzwap55a8wgg26zwzm0lifc3im1cs65cjgrpw3b13szfqd5g"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.4.0"; sha256 = "0dv05mh0g3g39plza0qlsaak52z1drkansh65nhfjwhj968v7rr1"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.4.0"; sha256 = "16r0qyxbn7gibwpgprlxra5c183ps3njrxp5si28k50jhyjm7rxf"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.4.0"; sha256 = "056dg7iwgdp4kmw87rq7yzp5a2l02krssxdpga4rxrkj21iranm9"; })
   (fetchNuGet { pname = "Microsoft.IO.RecyclableMemoryStream"; version = "3.0.0"; sha256 = "1zl39k27r4zq75r1x1zr1yl4nzxpkxdnnv6dwd4qp0xr22my85aq"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.9.0"; sha256 = "1lls1fly2gr1n9n1xyl9k33l2v4pwfmylyzkq8v4v5ldnwkl1zdb"; })
   (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 = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; })
+  (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.TestPlatform.ObjectModel"; version = "17.9.0"; sha256 = "1kgsl9w9fganbm9wvlkqgk0ag9hfi58z88rkfybc6kvg78bx89ca"; })
   (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.9.0"; sha256 = "19ffh31a1jxzn8j69m1vnk5hyfz3dbxmflq77b8x82zybiilh5nl"; })
   (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; })
-  (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "8.0.0"; sha256 = "05392f41ijgn17y8pbjcx535l1k09krnq3xdp60kyq568sn6xk2i"; })
   (fetchNuGet { pname = "MsgPack.Cli"; version = "1.0.1"; sha256 = "1dk2bs3g16lsxcjjm7gfx6jxa4667wccw94jlh2ql7y7smvh9z8r"; })
   (fetchNuGet { pname = "NetCoreServer"; version = "8.0.7"; sha256 = "171mn5b56ikkjvsx3hvgmh3lga9c2ja31as0hnfr3040rdrj4ij5"; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; })
@@ -145,14 +145,14 @@
   (fetchNuGet { pname = "securifybv.ShellLink"; version = "0.1.0"; sha256 = "1v52d01590m8y06bybis6hlg296wk3y7ilqyh01ram62v5wrjvq2"; })
   (fetchNuGet { pname = "shaderc.net"; version = "0.1.0"; sha256 = "0f35s9h0vj9f1rx9bssj66hibc3j9bzrb4wgb5q2jwkf5xncxbpq"; })
   (fetchNuGet { pname = "SharpZipLib"; version = "1.4.2"; sha256 = "0ijrzz2szxjmv2cipk7rpmg14dfaigdkg7xabjvb38ih56m9a27y"; })
-  (fetchNuGet { pname = "ShimSkiaSharp"; version = "1.0.0.13"; sha256 = "1bkpx7zk5vh2rymam165kkqky2768nasgzqcil8kxzryqd853af4"; })
+  (fetchNuGet { pname = "ShimSkiaSharp"; version = "1.0.0.16"; sha256 = "0af7qhv5mxmynh08snqb345n0ykc9mywqgqlb6lng1f001n9038z"; })
   (fetchNuGet { pname = "Silk.NET.Core"; version = "2.16.0"; sha256 = "1mkqc2aicvknmpyfry2v7jjxh3apaxa6dmk1vfbwxnkysl417x0k"; })
   (fetchNuGet { pname = "Silk.NET.Vulkan"; version = "2.16.0"; sha256 = "0sg5mxv7ga5pq6wc0lz52j07fxrcfmb0an30r4cxsxk66298z2wy"; })
   (fetchNuGet { pname = "Silk.NET.Vulkan.Extensions.EXT"; version = "2.16.0"; sha256 = "05918f6fl8byla2m7qjp7dvxww2rbpj2sqd4xq26rl885fmddfvf"; })
   (fetchNuGet { pname = "Silk.NET.Vulkan.Extensions.KHR"; version = "2.16.0"; sha256 = "1j4wsv7kjgjkmf2vlm5jjnqkdh265rkz5s1hx42i0f4bmdaz2kj1"; })
-  (fetchNuGet { pname = "SixLabors.Fonts"; version = "1.0.0-beta0013"; sha256 = "0r0aw8xxd32rwcawawcz6asiyggz02hnzg5hvz8gimq8hvwx1wql"; })
-  (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "1.0.4"; sha256 = "0fmgn414my76gjgp89qlc210a0lqvnvkvk2fcwnpwxdhqpfvyilr"; })
-  (fetchNuGet { pname = "SixLabors.ImageSharp.Drawing"; version = "1.0.0-beta11"; sha256 = "0hl0rs3kr1zdnx3gdssxgli6fyvmwzcfp99f4db71s0i8j8b2bp5"; })
+  (fetchNuGet { pname = "SixLabors.Fonts"; version = "1.0.0"; sha256 = "1lsc789fqsnh3jx5w0g5k2n1wlww58zyzrcf5rs3wx2fjrqi084k"; })
+  (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "2.1.7"; sha256 = "07rd8vbd23ynhpz4y81b8fqnbn5q5q7rvcdwcky3nzngdg3vgw08"; })
+  (fetchNuGet { pname = "SixLabors.ImageSharp.Drawing"; version = "1.0.0"; sha256 = "0gh6xzw0jhjxf2slky11sdj0s8mp5dmps5k0rlx4krm68xb98zr0"; })
   (fetchNuGet { pname = "SkiaSharp"; version = "2.88.3"; sha256 = "1yq694myq2rhfp2hwwpyzcg1pzpxcp7j72wib8p9pw9dfj7008sv"; })
   (fetchNuGet { pname = "SkiaSharp"; version = "2.88.6"; sha256 = "0xs11zjw9ha68maw3l825kfwlrid43qwy0mswljxhpjh0y1k6k6b"; })
   (fetchNuGet { pname = "SkiaSharp"; version = "2.88.7"; sha256 = "0f6wbk9dnjiffb9ycjachy1m9zw3pai2m503nym07qgb0izxm792"; })
@@ -168,9 +168,9 @@
   (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.6"; sha256 = "1w2mwcwkqvrg4x4ybc4674xnkqwh1n2ihg520gqgpnqfc11ghc4n"; })
   (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.7"; sha256 = "119mlbh5hmlis7vb111s95dwg5p1anm2hmv7cm6fz7gy18473d7v"; })
   (fetchNuGet { pname = "SPB"; version = "0.0.4-build32"; sha256 = "0fk803f4llcc7g111g7wdn6fwqjrlyr64p97lv9xannbk9bxnk0r"; })
-  (fetchNuGet { pname = "Svg.Custom"; version = "1.0.0.13"; sha256 = "040w8xqjfyda8742387y0jq1bgs3m57id7qdgiwchv4860v7s97s"; })
-  (fetchNuGet { pname = "Svg.Model"; version = "1.0.0.13"; sha256 = "06ppak6gxyiq716zjf919zanl7kb2jwg5d8rhxf9f6fnyd5mjaiv"; })
-  (fetchNuGet { pname = "Svg.Skia"; version = "1.0.0.13"; sha256 = "0kr2hlrds1w38pilbq17jnc8xy37b7zis2m1sg6vqrsqp9blhlb7"; })
+  (fetchNuGet { pname = "Svg.Custom"; version = "1.0.0.16"; sha256 = "1xm30503b8921dn1mvpbhfx4g88hk0mq20zrp41bykhwcfmircqg"; })
+  (fetchNuGet { pname = "Svg.Model"; version = "1.0.0.16"; sha256 = "0nd0ibjc2l50rd9xx2lh1zsfva6qp97zk6gl5iv2ds72dm669smz"; })
+  (fetchNuGet { pname = "Svg.Skia"; version = "1.0.0.16"; sha256 = "1msyivfdkjdiiw1ngfmplk1wwcv1glkfsx7qvfn4wsgahc775wzr"; })
   (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
@@ -181,7 +181,7 @@
   (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
   (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
   (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
-  (fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; sha256 = "1n9122cy6v3qhsisc9lzwa1m1j62b8pi2678nsmnlyvfpk0zdagm"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "8.0.0"; sha256 = "0z53a42zjd59zdkszcm7pvij4ri5xbb8jly9hzaad9khlf69bcqp"; })
   (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
   (fetchNuGet { pname = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
   (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
@@ -189,7 +189,6 @@
   (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.0.0"; sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m"; })
   (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
   (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
-  (fetchNuGet { pname = "System.Drawing.Common"; version = "8.0.2"; sha256 = "03rlk7wrx7469psz6f1qb8n5kb3s04ykzs2pn9ycia1sgj7vhi1z"; })
   (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
@@ -233,7 +232,7 @@
   (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
   (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
   (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; })
-  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "7.0.0"; sha256 = "1wilasn2qmj870h2bhw348lspamm7pbinpb4m89icg113510l00v"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "8.0.0"; sha256 = "10a8vm0c3n5cili5nix6bdmiaxr69qisvk356pb81f2s8bgq40bm"; })
   (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"; })
@@ -242,7 +241,6 @@
   (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.7.0"; sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
@@ -269,7 +267,8 @@
   (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 = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; })
-  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "7.0.0"; sha256 = "0sn6hxdjm7bw3xgsmg041ccchsa4sp02aa27cislw3x61dbr68kq"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "8.0.0"; sha256 = "1lgdd78cik4qyvp2fggaa0kzxasw6kc9a6cjqw46siagrm0qnc3y"; })
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "6.0.0"; sha256 = "06n9ql3fmhpjl32g3492sj181zjml5dlcc5l76xq2h38c4f87sai"; })
   (fetchNuGet { pname = "System.Text.Json"; version = "6.0.0"; sha256 = "1si2my1g0q0qv1hiqnji4xh9wd05qavxnzj9dwgs23iqvgjky0gl"; })
diff --git a/nixpkgs/pkgs/by-name/ry/ryujinx/package.nix b/nixpkgs/pkgs/by-name/ry/ryujinx/package.nix
index 9628ab9c6f3a..410afb7c837c 100644
--- a/nixpkgs/pkgs/by-name/ry/ryujinx/package.nix
+++ b/nixpkgs/pkgs/by-name/ry/ryujinx/package.nix
@@ -25,13 +25,13 @@
 
 buildDotnetModule rec {
   pname = "ryujinx";
-  version = "1.1.1217"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
+  version = "1.1.1239"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
 
   src = fetchFromGitHub {
     owner = "Ryujinx";
     repo = "Ryujinx";
-    rev = "bc4d99a0786dbcbfde62d3bdeb98ed3d12c94852";
-    sha256 = "00qvwhl18f09lgs94b66kzxyf0pbhwdkcyrsc7vjyv5dl88f5120";
+    rev = "d26ef2eec309a7a7b30b103c245044d1cdc08add";
+    sha256 = "0kdhxkgnnzhvmwlnzb5d0xx2f240y5h0vc1fhwiqk2cvwly5nd6y";
   };
 
   dotnet-sdk = dotnetCorePackages.sdk_8_0;
@@ -94,11 +94,12 @@ buildDotnetModule rec {
     pushd ${src}/distribution/linux
 
     install -D ./Ryujinx.desktop $out/share/applications/Ryujinx.desktop
+    install -D ./Ryujinx.sh $out/bin/Ryujinx.sh
     install -D ./mime/Ryujinx.xml $out/share/mime/packages/Ryujinx.xml
     install -D ../misc/Logo.svg $out/share/icons/hicolor/scalable/apps/Ryujinx.svg
 
     substituteInPlace $out/share/applications/Ryujinx.desktop \
-      --replace "Ryujinx %f" "$out/bin/Ryujinx %f"
+      --replace "Ryujinx.sh %f" "$out/bin/Ryujinx.sh %f"
 
     ln -s $out/bin/Ryujinx $out/bin/ryujinx
 
diff --git a/nixpkgs/pkgs/by-name/s3/s3proxy/package.nix b/nixpkgs/pkgs/by-name/s3/s3proxy/package.nix
index 91f39747774b..b2fd1b03a5ab 100644
--- a/nixpkgs/pkgs/by-name/s3/s3proxy/package.nix
+++ b/nixpkgs/pkgs/by-name/s3/s3proxy/package.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , fetchFromGitHub
 , jre
 , makeWrapper
@@ -20,6 +21,8 @@ maven.buildMavenPackage {
     hash = "sha256-GhZPvo8wlXInHwg8rSmpwMMkZVw5SMpnZyKqFUYLbrE=";
   };
 
+  mvnParameters = lib.optionalString stdenv.isDarwin "-DskipTests";
+
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
@@ -31,6 +34,7 @@ maven.buildMavenPackage {
 
   meta = with lib; {
     description = "Access other storage backends via the S3 API";
+    mainProgram = "s3proxy";
     homepage = "https://github.com/gaul/s3proxy";
     changelog = "https://github.com/gaul/s3proxy/releases/tag/s3proxy-${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/applications/gis/saga/default.nix b/nixpkgs/pkgs/by-name/sa/saga/package.nix
index 817fa7b86f24..3e9497b699da 100644
--- a/nixpkgs/pkgs/applications/gis/saga/default.nix
+++ b/nixpkgs/pkgs/by-name/sa/saga/package.nix
@@ -9,7 +9,7 @@
 , gdal
 , wxGTK32
 , proj
-, dxflib
+, libsForQt5
 , curl
 , libiodbc
 , xz
@@ -17,7 +17,7 @@
 , opencv
 , vigra
 , postgresql
-, Cocoa
+, darwin
 , unixODBC
 , poppler
 , hdf5
@@ -31,11 +31,11 @@
 
 stdenv.mkDerivation rec {
   pname = "saga";
-  version = "9.3.1";
+  version = "9.3.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/saga-gis/saga-${version}.tar.gz";
-    sha256 = "sha256-QrpEbb8zN003Afnu9UZUanWE0lIiy95POSWd1jB8EtA=";
+    sha256 = "sha256-741O6C7amxSnOOTledF0izmVhiT79tFI4+EOtpNqP2Q=";
   };
 
   sourceRoot = "saga-${version}/saga-gis";
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     curl
-    dxflib
+    libsForQt5.dxflib
     fftw
     libsvm
     hdf5
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
   # See https://groups.google.com/forum/#!topic/nix-devel/h_vSzEJAPXs
   # for why the have additional buildInputs on darwin
   ++ lib.optionals stdenv.isDarwin [
-    Cocoa
+    darwin.apple_sdk.frameworks.Cocoa
     unixODBC
     poppler
     netcdf
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
   ];
 
   cmakeFlags = [
-    "-DOpenMP_SUPPORT=${if stdenv.isDarwin then "OFF" else "ON"}"
+    (lib.cmakeBool "OpenMP_SUPPORT" (!stdenv.isDarwin))
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/by-name/sa/salmon/fetch-pufferfish.patch b/nixpkgs/pkgs/by-name/sa/salmon/fetch-pufferfish.patch
index 7010a1a69fac..a8682426fcc4 100644
--- a/nixpkgs/pkgs/by-name/sa/salmon/fetch-pufferfish.patch
+++ b/nixpkgs/pkgs/by-name/sa/salmon/fetch-pufferfish.patch
@@ -1,5 +1,5 @@
 diff --git a/scripts/fetchPufferfish.sh b/scripts/fetchPufferfish.sh
-index bf2574e0..42582806 100755
+index 95e30053..8866767c 100755
 --- a/scripts/fetchPufferfish.sh
 +++ b/scripts/fetchPufferfish.sh
 @@ -11,10 +11,6 @@ CURR_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
@@ -17,11 +17,11 @@ index bf2574e0..42582806 100755
      rm -fr ${INSTALL_DIR}/src/pufferfish
  fi
  
--SVER=salmon-v1.10.2
+-SVER=salmon-v1.10.3
 -#SVER=develop
 -#SVER=sketch-mode
 -
--EXPECTED_SHA256=f225b74833f71dcf767a565345224357fb091f90ce79717abc836814d9ccd101
+-EXPECTED_SHA256=52b6699de0d33814b73edb3455175568c2330d8014be017dce7b564e54134860 
 -
 -mkdir -p ${EXTERNAL_DIR}
 -curl -k -L https://github.com/COMBINE-lab/pufferfish/archive/${SVER}.zip -o ${EXTERNAL_DIR}/pufferfish.zip
diff --git a/nixpkgs/pkgs/by-name/sa/salmon/package.nix b/nixpkgs/pkgs/by-name/sa/salmon/package.nix
index e4442e96fd6f..5d65e2698a42 100644
--- a/nixpkgs/pkgs/by-name/sa/salmon/package.nix
+++ b/nixpkgs/pkgs/by-name/sa/salmon/package.nix
@@ -20,20 +20,20 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "salmon";
-  version = "1.10.2";
+  version = "1.10.3";
 
   pufferFishSrc = fetchFromGitHub {
     owner = "COMBINE-lab";
     repo = "pufferfish";
     rev = "salmon-v${finalAttrs.version}";
-    hash = "sha256-JKbUFBEsqnENl4vFqve1FCd4TI3n9bRi2RNHC8QGQGc=";
+    hash = "sha256-g4pfNuc620WQ7UDv8PQHVbbTVt78aGVqcHHMszmBIkA=";
   };
 
   src = fetchFromGitHub {
     owner = "COMBINE-lab";
     repo = "salmon";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-kwqoUmVCqjr/xRxJjQKaFjjCQW+MFASHJ2f9OiAumNU=";
+    hash = "sha256-HGcDqu0XzgrU3erHavigXCoj3VKk82ixMLY10Kk9MW4=";
   };
 
   patches = [
@@ -63,6 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     description =
       "Tool for quantifying the expression of transcripts using RNA-seq data";
+    mainProgram = "salmon";
     longDescription = ''
       Salmon is a tool for quantifying the expression of transcripts
       using RNA-seq data. Salmon uses new algorithms (specifically,
diff --git a/nixpkgs/pkgs/by-name/sa/samrewritten/package.nix b/nixpkgs/pkgs/by-name/sa/samrewritten/package.nix
index de0c4e985727..f90c31395f73 100644
--- a/nixpkgs/pkgs/by-name/sa/samrewritten/package.nix
+++ b/nixpkgs/pkgs/by-name/sa/samrewritten/package.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Steam Achievement Manager For Linux. Rewritten in C++";
+    mainProgram = "samrewritten";
     homepage = "https://github.com/PaulCombal/SamRewritten";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ ludovicopiero ];
diff --git a/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix b/nixpkgs/pkgs/by-name/sa/sarasa-gothic/package.nix
index 35f098442c22..6184bbda5a7e 100644
--- a/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
+++ b/nixpkgs/pkgs/by-name/sa/sarasa-gothic/package.nix
@@ -1,19 +1,24 @@
-{ lib, stdenvNoCC, fetchurl, p7zip }:
-
-stdenvNoCC.mkDerivation rec {
+{
+  lib,
+  stdenvNoCC,
+  fetchurl,
+  unzip,
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "sarasa-gothic";
-  version = "1.0.5";
+  version = "1.0.7";
 
   src = fetchurl {
     # Use the 'ttc' files here for a smaller closure size.
     # (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.)
-    url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/Sarasa-TTC-${version}.7z";
-    hash = "sha256-OPoX6GNCilA8Lj9kLO6RHapU7mpZTiNa/8LL72TG1Wk=";
+    url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${finalAttrs.version}/Sarasa-TTC-${finalAttrs.version}.zip";
+    hash = "sha256-R0mVOKYlxSk3s6zPG/h9ddKUZX+WJp47QCulFUO97YI=";
   };
 
   sourceRoot = ".";
 
-  nativeBuildInputs = [ p7zip ];
+  nativeBuildInputs = [ unzip ];
 
   installPhase = ''
     runHook preInstall
@@ -24,11 +29,14 @@ stdenvNoCC.mkDerivation rec {
     runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
     description = "A CJK programming font based on Iosevka and Source Han Sans";
     homepage = "https://github.com/be5invis/Sarasa-Gothic";
-    license = licenses.ofl;
-    maintainers = [ maintainers.ChengCat ];
-    platforms = platforms.all;
+    license = lib.licenses.ofl;
+    maintainers = with lib.maintainers; [
+      ChengCat
+      wegank
+    ];
+    platforms = lib.platforms.all;
   };
-}
+})
diff --git a/nixpkgs/pkgs/by-name/sa/satty/package.nix b/nixpkgs/pkgs/by-name/sa/satty/package.nix
index bcb3e37433df..31e860de8440 100644
--- a/nixpkgs/pkgs/by-name/sa/satty/package.nix
+++ b/nixpkgs/pkgs/by-name/sa/satty/package.nix
@@ -3,12 +3,12 @@
 , fetchFromGitHub
 , pkg-config
 , wrapGAppsHook4
-, cairo
 , gdk-pixbuf
 , glib
 , gtk4
 , libadwaita
-, pango
+, libepoxy
+, libGL
 , copyDesktopItems
 , installShellFiles
 }:
@@ -16,16 +16,16 @@
 rustPlatform.buildRustPackage rec {
 
   pname = "satty";
-  version = "0.10.0";
+  version = "0.11.3";
 
   src = fetchFromGitHub {
     owner = "gabm";
     repo = "Satty";
     rev = "v${version}";
-    hash = "sha256-aE0hQla/FwUAUSVodfQz3s8hdYF6tQSIHl6p5gEtONU=";
+    hash = "sha256-TKpotVVjXWm2uue4a4QEqVH/qHKSsegL2MNcsnk0CHw=";
   };
 
-  cargoHash = "sha256-vARrc49+T813uCzIlB1tSS3eNyNeeCvC+G+LFYAsYx8=";
+  cargoHash = "sha256-0AyzjKkTNZwGCT73Xo5AY7rPJwQ9GgAxtMf6lJnrTSA=";
 
   nativeBuildInputs = [
     copyDesktopItems
@@ -35,12 +35,12 @@ rustPlatform.buildRustPackage rec {
   ];
 
   buildInputs = [
-    cairo
     gdk-pixbuf
     glib
     gtk4
     libadwaita
-    pango
+    libepoxy
+    libGL
   ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/by-name/sc/scalingo/package.nix b/nixpkgs/pkgs/by-name/sc/scalingo/package.nix
index 5115a84f2671..38f1a8691c51 100644
--- a/nixpkgs/pkgs/by-name/sc/scalingo/package.nix
+++ b/nixpkgs/pkgs/by-name/sc/scalingo/package.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "scalingo";
-  version = "1.30.1";
+  version = "1.31.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "cli";
     rev = version;
-    hash = "sha256-Dzm1f7iNVCzbSogYfjDIHJ2UbPnP1F9nF9QASe/H3TU=";
+    hash = "sha256-Y162BHTlerTbsRJ1KhT82iBMv+jI7Rq+h8JfBIV0uIs=";
   };
 
   vendorHash = null;
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command line client for the Scalingo PaaS";
+    mainProgram = "scalingo";
     homepage = "https://doc.scalingo.com/platform/cli/start";
     changelog = "https://github.com/Scalingo/cli/blob/master/CHANGELOG.md";
     license = licenses.bsdOriginal;
diff --git a/nixpkgs/pkgs/by-name/sc/scout/package.nix b/nixpkgs/pkgs/by-name/sc/scout/package.nix
index 30f3a9fce3c4..4c1a80ff109b 100644
--- a/nixpkgs/pkgs/by-name/sc/scout/package.nix
+++ b/nixpkgs/pkgs/by-name/sc/scout/package.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Lightweight URL fuzzer and spider: Discover a web server's undisclosed files, directories and VHOSTs";
+    mainProgram = "scout";
     homepage = "https://github.com/liamg/scout";
     platforms = platforms.unix;
     license = licenses.unlicense;
diff --git a/nixpkgs/pkgs/by-name/sc/screentest/package.nix b/nixpkgs/pkgs/by-name/sc/screentest/package.nix
index d64f3300256f..8efba0354e5f 100644
--- a/nixpkgs/pkgs/by-name/sc/screentest/package.nix
+++ b/nixpkgs/pkgs/by-name/sc/screentest/package.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A simple screen testing tool";
+    mainProgram = "screentest";
     homepage = "https://github.com/TobiX/screentest";
     changelog = "https://github.com/TobiX/screentest/blob/${finalAttrs.src.rev}/NEWS";
     license = licenses.gpl2Only;
diff --git a/nixpkgs/pkgs/by-name/sc/scrutiny-collector/package.nix b/nixpkgs/pkgs/by-name/sc/scrutiny-collector/package.nix
index 0fc1835bfa52..984a52b21405 100644
--- a/nixpkgs/pkgs/by-name/sc/scrutiny-collector/package.nix
+++ b/nixpkgs/pkgs/by-name/sc/scrutiny-collector/package.nix
@@ -4,9 +4,10 @@
 , smartmontools
 , nixosTests
 , lib
+, nix-update-script
 }:
 let
-  version = "0.7.3";
+  version = "0.8.0";
 in
 buildGoModule rec {
   inherit version;
@@ -16,7 +17,7 @@ buildGoModule rec {
     owner = "AnalogJ";
     repo = "scrutiny";
     rev = "refs/tags/v${version}";
-    hash = "sha256-S7GW8z6EWB+5vntKew0+EDVqhun+Ae2//15dSIlfoSs=";
+    hash = "sha256-ysjE2nn1WwhEiFIvJ5cRCJQf9mECTgiGUyenwf3mKTA=";
   };
 
   subPackages = "collector/cmd/collector-metrics";
@@ -41,6 +42,7 @@ buildGoModule rec {
   '';
 
   passthru.tests.scrutiny-collector = nixosTests.scrutiny;
+  passthru.updateScript = nix-update-script { };
 
   meta = {
     description = "Hard disk metrics collector for Scrutiny.";
diff --git a/nixpkgs/pkgs/by-name/sc/scrutiny/package.nix b/nixpkgs/pkgs/by-name/sc/scrutiny/package.nix
index 0abe624af53d..34712b96e431 100644
--- a/nixpkgs/pkgs/by-name/sc/scrutiny/package.nix
+++ b/nixpkgs/pkgs/by-name/sc/scrutiny/package.nix
@@ -3,16 +3,17 @@
 , fetchFromGitHub
 , nixosTests
 , lib
+, nix-update-script
 }:
 let
   pname = "scrutiny";
-  version = "0.7.3";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "AnalogJ";
     repo = "scrutiny";
     rev = "refs/tags/v${version}";
-    hash = "sha256-S7GW8z6EWB+5vntKew0+EDVqhun+Ae2//15dSIlfoSs=";
+    hash = "sha256-ysjE2nn1WwhEiFIvJ5cRCJQf9mECTgiGUyenwf3mKTA=";
   };
 
   frontend = buildNpmPackage {
@@ -35,6 +36,8 @@ let
       cp -r dist/* $out
       runHook postInstall
     '';
+
+    passthru.updatescript = nix-update-script { };
   };
 in
 buildGoModule rec {
@@ -56,6 +59,7 @@ buildGoModule rec {
   '';
 
   passthru.tests.scrutiny = nixosTests.scrutiny;
+  passthru.updatescript = nix-update-script { };
 
   meta = {
     description = "Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds.";
diff --git a/nixpkgs/pkgs/by-name/se/seabird/package.nix b/nixpkgs/pkgs/by-name/se/seabird/package.nix
new file mode 100644
index 000000000000..2727b040674c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/se/seabird/package.nix
@@ -0,0 +1,66 @@
+{ lib
+, buildGo122Module
+, copyDesktopItems
+, fetchFromGitHub
+, pkg-config
+, wrapGAppsHook4
+, gobject-introspection
+, gtk4
+, gtksourceview5
+, libadwaita
+, libxml2
+, vte-gtk4
+}:
+
+buildGo122Module rec {
+  pname = "seabird";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "getseabird";
+    repo = "seabird";
+    rev = "v${version}";
+    hash = "sha256-wrZLWDTgcUS8snCqc5rInqitAkrsStL8zmc8vjl4ApQ=";
+  };
+
+  vendorHash = "sha256-z9l6g5NkAErRQo8oiqwKG9ssm8K2S+eSZBD0w4kO3kc=";
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    libxml2
+    pkg-config
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    gtk4
+    gtksourceview5
+    libadwaita
+    vte-gtk4
+  ];
+
+  ldflags = [ "-s" "-w" ];
+
+  postPatch = ''
+    substituteInPlace main.go --replace-fail 'version = "dev"' 'version = "${version}"'
+  '';
+
+  preBuild = ''
+    go generate internal/icon/icon.go
+  '';
+
+  postInstall = ''
+    install -Dm644 internal/icon/seabird.svg $out/share/pixmaps/dev.skynomads.Seabird.svg
+  '';
+
+  desktopItems = [ "dev.skynomads.Seabird.desktop" ];
+
+  meta = with lib; {
+    description = "Native Kubernetes desktop client";
+    homepage = "https://getseabird.github.io";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ nicolas-goudry ];
+    mainProgram = "seabird";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/se/searxng/package.nix b/nixpkgs/pkgs/by-name/se/searxng/package.nix
index 6f541d8a3b38..2fdf2e8b9284 100644
--- a/nixpkgs/pkgs/by-name/se/searxng/package.nix
+++ b/nixpkgs/pkgs/by-name/se/searxng/package.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.toPythonModule (python3.pkgs.buildPythonApplication rec {
   pname = "searxng";
-  version = "0-unstable-2024-02-24";
+  version = "0-unstable-2024-03-08";
 
   src = fetchFromGitHub {
     owner = "searxng";
     repo = "searxng";
-    rev = "d72fa99bd0a4d702a55188b07919ce5a764b1d6c";
-    hash = "sha256-1A7dyWrF63fSSvWP+2HrCS6H8o/4CUlqiP0KANVZHUA=";
+    rev = "9c08a0cdddae7ceafbe5e00ce94cf7f1d36c97e0";
+    hash = "sha256-0qlOpJqpOmseIeIafd0NLd2lF5whu18QxmwOua8dKzg=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/by-name/se/segger-jlink/package.nix b/nixpkgs/pkgs/by-name/se/segger-jlink/package.nix
index cfec869a04ca..074f687f35f0 100755
--- a/nixpkgs/pkgs/by-name/se/segger-jlink/package.nix
+++ b/nixpkgs/pkgs/by-name/se/segger-jlink/package.nix
@@ -15,25 +15,25 @@ let
   supported = {
     x86_64-linux = {
       name = "x86_64";
-      hash = "sha256-WGEDvB6TJ8Y2Xl1VUB1JWVMK54OevvPoVGris3I27t4=";
+      hash = "sha256-CELUteYzy0oMxDonOot+DR5MgGjSRwLgRCbJRAaS/EY=";
     };
     i686-linux = {
       name = "i386";
-      hash = "sha256-BOQ4yExDRGKuUvsPUUswElrps0SpXcDCHxy2tmGbV/I=";
+      hash = "sha256-lw3gqgCjmASkelj5lPDnltRJ1Cb+318QjrbirQ6oRFI=";
     };
     aarch64-linux = {
       name = "arm64";
-      hash = "sha256-ZWzaWCUgV4x5Fbz+jphj771kIyLyeoRZKjgf8rmbFxQ=";
+      hash = "sha256-yq/L9k+22OWhwnAROJlsyYd/AH5SHJD231y6xd83N6g=";
     };
     armv7l-linux = {
       name = "arm";
-      hash = "sha256-Qjb5P1XH/CoiLP9iqWyEX0YHUjDIuSdw5ej1bE61T48=";
+      hash = "sha256-FAnzZzz3tgSxgX5n3CUrCbD5lfub91cDkjdD/lVaf0g=";
     };
   };
 
   platform = supported.${stdenv.system} or (throw "unsupported platform ${stdenv.system}");
 
-  version = "794a";
+  version = "794l";
 
   url = "https://www.segger.com/downloads/jlink/JLink_Linux_V${version}_${platform.name}.tgz";
 
diff --git a/nixpkgs/pkgs/by-name/se/selenium-manager/package.nix b/nixpkgs/pkgs/by-name/se/selenium-manager/package.nix
new file mode 100644
index 000000000000..d3703ba66993
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/se/selenium-manager/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, darwin
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "selenium-manager";
+  version = "4.18.1";
+
+  src = fetchFromGitHub {
+    owner = "SeleniumHQ";
+    repo = "selenium";
+    rev = "selenium-${version}";
+    hash = "sha256-1C9Epsk9rFlShxHGGzbWl6smrMzPn2h3yCWlzUIMpY8=";
+  };
+
+  sourceRoot = "${src.name}/rust";
+
+  cargoHash = "sha256-BystESOFIitw3ER2K1TPOf5luOBvKXFuqc/unL93yRY=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.SystemConfiguration
+  ];
+
+  # TODO: enable tests
+  # The test suite depends on a number of browsers and network requests,
+  # check the Gentoo package for inspiration
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A browser automation framework and ecosystem";
+    homepage = "https://github.com/SeleniumHQ/selenium";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ];
+    mainProgram = "selenium-manager";
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/se/sesh/package.nix b/nixpkgs/pkgs/by-name/se/sesh/package.nix
new file mode 100644
index 000000000000..ccfc53274e2c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/se/sesh/package.nix
@@ -0,0 +1,29 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildGoModule,
+}:
+buildGoModule rec {
+  pname = "sesh";
+  version = "0.15.0";
+
+  src = fetchFromGitHub {
+    owner = "joshmedeski";
+    repo = "sesh";
+    rev = "v${version}";
+    hash = "sha256-vV1b0YhDBt/dJJCrxvVV/FIuOIleTg4mI496n4/Y/Hk=";
+  };
+
+  vendorHash = "sha256-zt1/gE4bVj+3yr9n0kT2FMYMEmiooy3k1lQ77rN6sTk=";
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = {
+    description = "Smart session manager for the terminal";
+    homepage = "https://github.com/joshmedeski/sesh";
+    changelog = "https://github.com/joshmedeski/sesh/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ gwg313 ];
+    mainProgram = "sesh";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/sh/shittier/package.nix b/nixpkgs/pkgs/by-name/sh/shittier/package.nix
index e9316063c3bc..2ba1bd3d0f94 100644
--- a/nixpkgs/pkgs/by-name/sh/shittier/package.nix
+++ b/nixpkgs/pkgs/by-name/sh/shittier/package.nix
@@ -21,6 +21,7 @@ buildNpmPackage rec {
 
   meta = {
     description = "Unconventional code formatting tool for JavaScript";
+    mainProgram = "shittier";
     homepage = "https://github.com/rohitdhas/shittier";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ totoroot ];
diff --git a/nixpkgs/pkgs/by-name/sh/shopware-cli/package.nix b/nixpkgs/pkgs/by-name/sh/shopware-cli/package.nix
index 1a7f3d826d7e..8504a28a22a9 100644
--- a/nixpkgs/pkgs/by-name/sh/shopware-cli/package.nix
+++ b/nixpkgs/pkgs/by-name/sh/shopware-cli/package.nix
@@ -9,18 +9,18 @@
 
 buildGoModule rec {
   pname = "shopware-cli";
-  version = "0.4.28";
+  version = "0.4.29";
   src = fetchFromGitHub {
     repo = "shopware-cli";
     owner = "FriendsOfShopware";
     rev = version;
-    hash = "sha256-zj/PusNQtJsbwKi9USZUL/7Zy5IM5mHOz7fYkBYfD2Q=";
+    hash = "sha256-gAn/AkubIwcNBrqBWggVXEmqXuXxjt1xZop0dQ291pA=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
   nativeCheckInputs = [ git dart-sass ];
 
-  vendorHash = "sha256-h3XYXI9Lnfxrnm9U0u6ixDUGK6QBJU/GKVlODw+swy8=";
+  vendorHash = "sha256-S7M7B4jtAe1jD6W5q2UewgwG++ecE46Rrp2Qt6kCDeQ=";
 
   postInstall = ''
     export HOME="$(mktemp -d)"
@@ -43,6 +43,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command line tool for Shopware 6";
+    mainProgram = "shopware-cli";
     homepage = "https://github.com/FriendsOfShopware/shopware-cli";
     changelog = "https://github.com/FriendsOfShopware/shopware-cli/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/by-name/si/signal-export/package.nix b/nixpkgs/pkgs/by-name/si/signal-export/package.nix
index 1ec9762d62bc..3f9f9fa54ead 100644
--- a/nixpkgs/pkgs/by-name/si/signal-export/package.nix
+++ b/nixpkgs/pkgs/by-name/si/signal-export/package.nix
@@ -6,12 +6,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "signal-export";
-  version = "1.8.1";
+  version = "1.8.2";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-v4civFGu+CLRTGicQAMSei+k6Iyz0GAznTLEr7ylx24=";
+    sha256 = "sha256-Hm0BVF2RUsxDacsAB3MJtk1t9FYmBPjeb5JzwaLkZ14=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/nixpkgs/pkgs/by-name/si/signaturepdf/package.nix b/nixpkgs/pkgs/by-name/si/signaturepdf/package.nix
index 34eaab9213ed..dfac73d89950 100644
--- a/nixpkgs/pkgs/by-name/si/signaturepdf/package.nix
+++ b/nixpkgs/pkgs/by-name/si/signaturepdf/package.nix
@@ -48,10 +48,11 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Web software for signing PDFs and also organize pages, edit metadata and compress pdf";
+    mainProgram = "signaturepdf";
     homepage = "https://pdf.24eme.fr/";
     changelog =
       "https://github.com/24eme/signaturepdf/releases/tag/v${version}";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ DamienCassou ];
   };
diff --git a/nixpkgs/pkgs/by-name/si/simde/package.nix b/nixpkgs/pkgs/by-name/si/simde/package.nix
index c79cbf38f7cd..a16d804054fb 100644
--- a/nixpkgs/pkgs/by-name/si/simde/package.nix
+++ b/nixpkgs/pkgs/by-name/si/simde/package.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "simde";
-  version = "0.7.6";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "simd-everywhere";
     repo = "simde";
     rev = "v${version}";
-    hash = "sha256-pj+zaD5o9XYkTavezcQFzM6ao0IdQP1zjP9L4vcCyEY=";
+    hash = "sha256-hQtSxO8Uld6LT6V1ZhR6tbshTK1QTGgyQ99o3jOIbQk=";
   };
 
   nativeBuildInputs = [ meson ninja ];
diff --git a/nixpkgs/pkgs/by-name/si/simdutf/package.nix b/nixpkgs/pkgs/by-name/si/simdutf/package.nix
index 615f6af85da4..6c447b2d6b1f 100644
--- a/nixpkgs/pkgs/by-name/si/simdutf/package.nix
+++ b/nixpkgs/pkgs/by-name/si/simdutf/package.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "simdutf";
-  version = "4.0.9";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "simdutf";
     repo = "simdutf";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-LRMnjiO/J+DaSIBksrudjnkoEZtVG/RmW9S6w1gAB60=";
+    hash = "sha256-ZCpLSMmgZSLAlVKzXFsaENnZwQAeKbNfKkj241PM26c=";
   };
 
   # Fix build on darwin
diff --git a/nixpkgs/pkgs/by-name/si/simplex-chat-desktop/package.nix b/nixpkgs/pkgs/by-name/si/simplex-chat-desktop/package.nix
index 4332e6467005..1868e2669cdb 100644
--- a/nixpkgs/pkgs/by-name/si/simplex-chat-desktop/package.nix
+++ b/nixpkgs/pkgs/by-name/si/simplex-chat-desktop/package.nix
@@ -38,6 +38,7 @@ in appimageTools.wrapType2 {
 
   meta = with lib; {
     description = "Desktop application for SimpleX Chat";
+    mainProgram = "simplex-chat-desktop";
     homepage = "https://simplex.chat";
     changelog = "https://github.com/simplex-chat/simplex-chat/releases/tag/v${version}";
     license = licenses.agpl3Only;
diff --git a/nixpkgs/pkgs/servers/slimserver/default.nix b/nixpkgs/pkgs/by-name/sl/slimserver/package.nix
index 1703c03dee26..94b13c99e9dc 100644
--- a/nixpkgs/pkgs/servers/slimserver/default.nix
+++ b/nixpkgs/pkgs/by-name/sl/slimserver/package.nix
@@ -6,7 +6,7 @@
 , makeWrapper
 , monkeysAudio
 , nixosTests
-, perl538Packages
+, perlPackages
 , sox
 , stdenv
 , wavpack
@@ -15,20 +15,18 @@
 }:
 
 let
-  perlPackages = perl538Packages;
-
   binPath = lib.makeBinPath ([ lame flac faad2 sox wavpack ] ++ (lib.optional stdenv.isLinux monkeysAudio));
   libPath = lib.makeLibraryPath [ zlib stdenv.cc.cc.lib ];
 in
 perlPackages.buildPerlPackage rec {
   pname = "slimserver";
-  version = "8.4.0";
+  version = "8.5.0";
 
   src = fetchFromGitHub {
-    owner = "Logitech";
+    owner = "LMS-Community";
     repo = "slimserver";
     rev = version;
-    hash = "sha256-92mKchgAWRIrNOeK/zXUYRqIAk6THdtz1zQe3fg2kE0=";
+    hash = "sha256-yDJVqZ0+qVm4r/wmQK/hf9uRJaN56WQMO28RE59mNNI=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -58,7 +56,7 @@ perlPackages.buildPerlPackage rec {
     DataURIEncode
     DBDSQLite
     DBI
-    # DBIxClass # https://github.com/Logitech/slimserver/issues/138
+    # DBIxClass # https://github.com/LMS-Community/slimserver/issues/138
     DigestSHA1
     EncodeDetect
     EV
@@ -144,16 +142,20 @@ perlPackages.buildPerlPackage rec {
 
   outputs = [ "out" ];
 
-  passthru.tests = {
-    inherit (nixosTests) slimserver;
+  passthru = {
+    tests = {
+      inherit (nixosTests) slimserver;
+    };
+
+    updateScript = ./update.nu;
   };
 
   meta = with lib; {
-    homepage = "https://github.com/Logitech/slimserver";
-    changelog = "https://github.com/Logitech/slimserver/blob/${version}/Changelog${lib.versions.major version}.html";
+    homepage = "https://github.com/LMS-Community/slimserver";
+    changelog = "https://github.com/LMS-Community/slimserver/blob/${version}/Changelog${lib.versions.major version}.html";
     description = "Server for Logitech Squeezebox players. This server is also called Logitech Media Server";
     # the firmware is not under a free license, so we do not include firmware in the default package
-    # https://github.com/Logitech/slimserver/blob/public/8.3/License.txt
+    # https://github.com/LMS-Community/slimserver/blob/public/8.3/License.txt
     license = if enableUnfreeFirmware then licenses.unfree else licenses.gpl2Only;
     mainProgram = "slimserver";
     maintainers = with maintainers; [ adamcstephens jecaro ];
diff --git a/nixpkgs/pkgs/by-name/sl/slimserver/update.nu b/nixpkgs/pkgs/by-name/sl/slimserver/update.nu
new file mode 100755
index 000000000000..556ed236bb68
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sl/slimserver/update.nu
@@ -0,0 +1,14 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i nu -p nushell common-updater-scripts
+
+# get latest tag, but drop versions 10.0 tags since they are 10+ years old
+let latest_tag = list-git-tags --url=https://github.com/LMS-Community/slimserver | lines | find --invert 10.0 | sort --natural | last
+
+let current_version = nix eval --raw -f default.nix slimserver | str trim
+
+if $latest_tag != $current_version {
+  update-source-version slimserver $latest_tag $"--file=(pwd)/pkgs/by-name/sl/slimserver/package.nix"
+  {before: $current_version, after: $latest_tag}
+} else {
+  "No new version"
+}
diff --git a/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix b/nixpkgs/pkgs/by-name/sm/smartgithg/package.nix
index 693505b20305..4693511951a1 100644
--- a/nixpkgs/pkgs/applications/version-management/smartgithg/default.nix
+++ b/nixpkgs/pkgs/by-name/sm/smartgithg/package.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchurl
 , makeDesktopItem
-, openjdk19
+, openjdk21
 , gtk3
 , glib
 , gnome
@@ -11,15 +11,15 @@
 , which
 }:
 let
-  jre = openjdk19;
+  jre = openjdk21;
 in
 stdenv.mkDerivation rec {
   pname = "smartgithg";
-  version = "23.1.1";
+  version = "23.1.2";
 
   src = fetchurl {
     url = "https://www.syntevo.com/downloads/smartgit/smartgit-linux-${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.gz";
-    sha256 = "sha256-LXB+OymApJjL4bgOZ8Vfd193jZHVbQ6G2zmrHNE/OJk=";
+    hash = "sha256-gXfHmRPUhs8s7IQIhN0vQyx8NpLrS28ufNNYOMA4AXw=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/by-name/sm/smlfut/package.nix b/nixpkgs/pkgs/by-name/sm/smlfut/package.nix
index b3d60ce133d1..7caafc4db345 100644
--- a/nixpkgs/pkgs/by-name/sm/smlfut/package.nix
+++ b/nixpkgs/pkgs/by-name/sm/smlfut/package.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "smlfut";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "diku-dk";
     repo = "smlfut";
     rev = "v${version}";
-    hash = "sha256-bPqvHExAoOCd6Z2/rfKd6kHeYxu/jNDz5qTklqJtlzI=";
+    hash = "sha256-Oj5+UNtV2GKB2GNsSFKePVpa1msSZwwJI/YElwBSH98=";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/by-name/sm/smuview/package.nix b/nixpkgs/pkgs/by-name/sm/smuview/package.nix
index 7c67e012cd14..e2825cdb783f 100644
--- a/nixpkgs/pkgs/by-name/sm/smuview/package.nix
+++ b/nixpkgs/pkgs/by-name/sm/smuview/package.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Qt based source measure unit GUI for sigrok";
+    mainProgram = "smuview";
     longDescription = "SmuView is a GUI for sigrok that supports power supplies, electronic loads and all sorts of measurement devices like multimeters, LCR meters and so on";
     homepage = "https://github.com/knarfS/smuview";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/by-name/sn/snekim/package.nix b/nixpkgs/pkgs/by-name/sn/snekim/package.nix
index e041c1f0e314..d5e80a3c75fe 100644
--- a/nixpkgs/pkgs/by-name/sn/snekim/package.nix
+++ b/nixpkgs/pkgs/by-name/sn/snekim/package.nix
@@ -25,6 +25,7 @@ buildNimPackage (finalAttrs: {
   meta = {
     homepage = "https://codeberg.org/annaaurora/snekim";
     description = "A simple implementation of the classic snake game";
+    mainProgram = "snekim";
     license = lib.licenses.lgpl3Only;
     maintainers = [ lib.maintainers.annaaurora ];
   };
diff --git a/nixpkgs/pkgs/servers/web-apps/snipe-it/default.nix b/nixpkgs/pkgs/by-name/sn/snipe-it/package.nix
index 33fedd334a9e..b8a9639b1a8d 100644
--- a/nixpkgs/pkgs/servers/web-apps/snipe-it/default.nix
+++ b/nixpkgs/pkgs/by-name/sn/snipe-it/package.nix
@@ -8,16 +8,16 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "snipe-it";
-  version = "6.2.2";
+  version = "6.3.3";
 
   src = fetchFromGitHub {
     owner = "snipe";
     repo = "snipe-it";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-EU+teGxo7YZkD7kNXk9jRyARpzWz5OMRmaWqQ6eMKYY=";
+    hash = "sha256-ePE55mK8woopNuRXox51I0sJGBmjF6XDfjE+k+ncoJ0=";
   };
 
-  vendorHash = "sha256-JcBcrETbjGJFlG1dH/XXqmb9MlKr0ICdnEx7/61Z5io=";
+  vendorHash = "sha256-wO+hKttiI7T7C+4oSl8G0I4pQEfZpXjYspUhoaaLrAQ=";
 
   postInstall = ''
     snipe_it_out="$out/share/php/snipe-it"
diff --git a/nixpkgs/pkgs/by-name/sn/snippetexpanderx/package.nix b/nixpkgs/pkgs/by-name/sn/snippetexpanderx/package.nix
index 3c91adbbbc0c..bb7ad94f51c9 100644
--- a/nixpkgs/pkgs/by-name/sn/snippetexpanderx/package.nix
+++ b/nixpkgs/pkgs/by-name/sn/snippetexpanderx/package.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   pname = "snippetexpanderx";
 
-  sourceRoot = "source/cmd/snippetexpanderx";
+  sourceRoot = "${src.name}/cmd/snippetexpanderx";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/by-name/so/sophus/package.nix b/nixpkgs/pkgs/by-name/so/sophus/package.nix
new file mode 100644
index 000000000000..e748e864d0ce
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/so/sophus/package.nix
@@ -0,0 +1,41 @@
+{ lib
+, stdenv
+, eigen
+, fmt
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "sophus";
+  version = "1.22.10";
+
+  src = fetchFromGitHub {
+    owner = "strasdat";
+    repo = "Sophus";
+    rev = finalAttrs.version;
+    hash = "sha256-TNuUoL9r1s+kGE4tCOGFGTDv1sLaHJDUKa6c9x41Z7w=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    eigen
+    fmt
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "BUILD_SOPHUS_TESTS" false)
+    (lib.cmakeBool "BUILD_SOPHUS_EXAMPLES" false)
+  ];
+
+  meta = {
+    description = "C++ implementation of Lie Groups using Eigen";
+    homepage = "https://github.com/strasdat/Sophus";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ locochoco acowley ];
+    platforms = lib.platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/tools/typesetting/soupault/default.nix b/nixpkgs/pkgs/by-name/so/soupault/package.nix
index 82ea1e6f5979..639af4136729 100644
--- a/nixpkgs/pkgs/tools/typesetting/soupault/default.nix
+++ b/nixpkgs/pkgs/by-name/so/soupault/package.nix
@@ -1,5 +1,5 @@
 { lib
-, fetchFromGitea
+, fetchzip
 , ocamlPackages
 , soupault
 , testers
@@ -8,19 +8,19 @@
 let
   pname = "soupault";
 
-  version = "4.8.0";
+  version = "4.9.0";
 in
 ocamlPackages.buildDunePackage {
   inherit pname version;
 
   minimalOCamlVersion = "4.13";
 
-  src = fetchFromGitea {
-    domain = "codeberg.org";
-    owner = "PataphysicalSociety";
-    repo = pname;
-    rev = version;
-    hash = "sha256-/QpT0zgrfMgRKjHyLHugaAlICpPkqaQ7f8fFAL0P02Y=";
+  src = fetchzip {
+    urls = [
+      "https://github.com/PataphysicalSociety/soupault/archive/${version}.tar.gz"
+      "https://codeberg.org/PataphysicalSociety/soupault/archive/${version}.tar.gz"
+    ];
+    hash = "sha256-vGTJUbAeYs/EYFykNSmCc4c9G66/Lz3BsUYnZQ8feFo=";
   };
 
   buildInputs = with ocamlPackages; [
diff --git a/nixpkgs/pkgs/by-name/sp/spade/Cargo.lock b/nixpkgs/pkgs/by-name/sp/spade/Cargo.lock
index cb63ead6b4b1..0a236b50a51d 100644
--- a/nixpkgs/pkgs/by-name/sp/spade/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/sp/spade/Cargo.lock
@@ -95,7 +95,7 @@ version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 dependencies = [
- "hermit-abi 0.1.19",
+ "hermit-abi",
  "libc",
  "winapi",
 ]
@@ -203,7 +203,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn",
 ]
 
 [[package]]
@@ -276,11 +276,10 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
 name = "colored"
-version = "2.0.4"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
+checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
 dependencies = [
- "is-terminal",
  "lazy_static",
  "windows-sys 0.48.0",
 ]
@@ -321,7 +320,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "scratch",
- "syn 2.0.38",
+ "syn",
 ]
 
 [[package]]
@@ -338,18 +337,18 @@ checksum = "587663dd5fb3d10932c8aecfe7c844db1bcf0aee93eeab08fac13dc1212c2e7f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn",
 ]
 
 [[package]]
-name = "derivative"
-version = "2.2.0"
+name = "derive-where"
+version = "1.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
+checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn",
 ]
 
 [[package]]
@@ -371,16 +370,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
 
 [[package]]
-name = "errno"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
-dependencies = [
- "libc",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "eyre"
 version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -424,12 +413,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "hermit-abi"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
-
-[[package]]
 name = "indenter"
 version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -437,12 +420,6 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
 
 [[package]]
 name = "indoc"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
-
-[[package]]
-name = "indoc"
 version = "2.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
@@ -461,21 +438,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "is-terminal"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
-dependencies = [
- "hermit-abi 0.3.3",
- "rustix",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "itertools"
-version = "0.10.5"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
 dependencies = [
  "either",
 ]
@@ -514,19 +480,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
-name = "linux-raw-sys"
-version = "0.4.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
-
-[[package]]
 name = "local-impl"
-version = "0.1.0"
-source = "git+https://gitlab.com/sornas/local-impl#09293b492c653d78bb2f5fd64187e0c68ea51733"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e36d656622c9ac5c84be07696931c71e483d27daf86914d7011d0fa6370418b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn",
 ]
 
 [[package]]
@@ -565,7 +526,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "regex-syntax 0.6.29",
- "syn 2.0.38",
+ "syn",
 ]
 
 [[package]]
@@ -600,9 +561,9 @@ checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
 
 [[package]]
 name = "memoffset"
-version = "0.8.0"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
 dependencies = [
  "autocfg",
 ]
@@ -797,30 +758,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "proc-macro-error"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-dependencies = [
- "proc-macro-error-attr",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-dependencies = [
- "proc-macro2",
- "quote",
- "version_check",
-]
-
-[[package]]
 name = "proc-macro2"
 version = "1.0.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -831,27 +768,27 @@ dependencies = [
 
 [[package]]
 name = "pyo3"
-version = "0.18.3"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3b1ac5b3731ba34fdaa9785f8d74d17448cd18f30cf19e0c7e7b1fdb5272109"
+checksum = "9a89dc7a5850d0e983be1ec2a463a171d20990487c3cfcd68b5363f1ee3d6fe0"
 dependencies = [
  "cfg-if",
  "eyre",
- "indoc 1.0.9",
+ "indoc",
  "libc",
  "memoffset",
  "parking_lot",
  "pyo3-build-config",
  "pyo3-ffi",
  "pyo3-macros",
- "unindent 0.1.11",
+ "unindent",
 ]
 
 [[package]]
 name = "pyo3-build-config"
-version = "0.18.3"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cb946f5ac61bb61a5014924910d936ebd2b23b705f7a4a3c40b05c720b079a3"
+checksum = "07426f0d8fe5a601f26293f300afd1a7b1ed5e78b2a705870c5f30893c5163be"
 dependencies = [
  "once_cell",
  "target-lexicon",
@@ -859,9 +796,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-ffi"
-version = "0.18.3"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd4d7c5337821916ea2a1d21d1092e8443cf34879e53a0ac653fbb98f44ff65c"
+checksum = "dbb7dec17e17766b46bca4f1a4215a85006b4c2ecde122076c562dd058da6cf1"
 dependencies = [
  "libc",
  "pyo3-build-config",
@@ -869,25 +806,26 @@ dependencies = [
 
 [[package]]
 name = "pyo3-macros"
-version = "0.18.3"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9d39c55dab3fc5a4b25bbd1ac10a2da452c4aca13bb450f22818a002e29648d"
+checksum = "05f738b4e40d50b5711957f142878cfa0f28e054aa0ebdfc3fd137a843f74ed3"
 dependencies = [
  "proc-macro2",
  "pyo3-macros-backend",
  "quote",
- "syn 1.0.109",
+ "syn",
 ]
 
 [[package]]
 name = "pyo3-macros-backend"
-version = "0.18.3"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97daff08a4c48320587b5224cc98d609e3c27b6d437315bd40b605c98eeb5918"
+checksum = "0fc910d4851847827daf9d6cdd4a823fbdaab5b8818325c5e97a86da79e8881f"
 dependencies = [
+ "heck",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn",
 ]
 
 [[package]]
@@ -971,19 +909,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
 
 [[package]]
-name = "rustix"
-version = "0.38.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3"
-dependencies = [
- "bitflags 2.4.1",
- "errno",
- "libc",
- "linux-raw-sys",
- "windows-sys 0.48.0",
-]
-
-[[package]]
 name = "ryu"
 version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1018,7 +943,7 @@ checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn",
 ]
 
 [[package]]
@@ -1055,7 +980,7 @@ checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
 
 [[package]]
 name = "spade"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "atty",
  "clap",
@@ -1063,7 +988,7 @@ dependencies = [
  "codespan-reporting 0.12.0",
  "color-eyre",
  "colored",
- "indoc 2.0.4",
+ "indoc",
  "itertools",
  "logos",
  "pretty_assertions",
@@ -1082,7 +1007,6 @@ dependencies = [
  "spade-typeinference",
  "spade-types",
  "spade-wordlength-inference",
- "thiserror",
  "tracing",
  "tracing-subscriber",
  "tracing-tree",
@@ -1090,7 +1014,7 @@ dependencies = [
 
 [[package]]
 name = "spade-ast"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "num",
  "spade-common",
@@ -1098,7 +1022,7 @@ dependencies = [
 
 [[package]]
 name = "spade-ast-lowering"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "itertools",
  "local-impl",
@@ -1116,7 +1040,7 @@ dependencies = [
 
 [[package]]
 name = "spade-common"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "codespan",
  "codespan-reporting 0.12.0",
@@ -1142,12 +1066,13 @@ dependencies = [
 
 [[package]]
 name = "spade-diagnostics"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "codespan",
  "codespan-reporting 0.12.0",
  "colored",
  "insta",
+ "itertools",
  "local-impl",
  "logos",
  "spade-ast",
@@ -1159,7 +1084,7 @@ dependencies = [
 
 [[package]]
 name = "spade-hir"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "codespan-reporting 0.12.0",
  "colored",
@@ -1177,12 +1102,12 @@ dependencies = [
 
 [[package]]
 name = "spade-hir-lowering"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "codespan",
  "codespan-reporting 0.12.0",
  "colored",
- "indoc 2.0.4",
+ "indoc",
  "itertools",
  "local-impl",
  "num",
@@ -1192,6 +1117,7 @@ dependencies = [
  "spade-common",
  "spade-diagnostics",
  "spade-hir",
+ "spade-macros",
  "spade-mir",
  "spade-typeinference",
  "spade-types",
@@ -1202,24 +1128,23 @@ dependencies = [
 
 [[package]]
 name = "spade-macros"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
- "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn",
  "trybuild",
 ]
 
 [[package]]
 name = "spade-mir"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "codespan",
  "codespan-reporting 0.12.0",
  "colored",
- "derivative",
- "indoc 2.0.4",
+ "derive-where",
+ "indoc",
  "itertools",
  "logos",
  "nesty",
@@ -1234,10 +1159,9 @@ dependencies = [
 
 [[package]]
 name = "spade-parser"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "codespan",
- "codespan-reporting 0.12.0",
  "colored",
  "itertools",
  "local-impl",
@@ -1253,7 +1177,7 @@ dependencies = [
 
 [[package]]
 name = "spade-python"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "codespan-reporting 0.12.0",
  "color-eyre",
@@ -1282,7 +1206,7 @@ dependencies = [
 
 [[package]]
 name = "spade-simulation-ext"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "codespan-reporting 0.12.0",
  "color-eyre",
@@ -1310,11 +1234,11 @@ dependencies = [
 
 [[package]]
 name = "spade-tests"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "codespan-reporting 0.12.0",
  "colored",
- "indoc 2.0.4",
+ "indoc",
  "insta",
  "logos",
  "pretty_assertions",
@@ -1333,12 +1257,12 @@ dependencies = [
  "tracing",
  "tracing-subscriber",
  "tracing-tree",
- "unindent 0.2.3",
+ "unindent",
 ]
 
 [[package]]
 name = "spade-typeinference"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "assert_matches",
  "codespan",
@@ -1361,7 +1285,7 @@ dependencies = [
 
 [[package]]
 name = "spade-types"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "num",
  "serde",
@@ -1370,7 +1294,7 @@ dependencies = [
 
 [[package]]
 name = "spade-wordlength-inference"
-version = "0.6.0"
+version = "0.7.0"
 dependencies = [
  "codespan",
  "codespan-reporting 0.12.0",
@@ -1398,17 +1322,6 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "syn"
-version = "1.0.109"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
 version = "2.0.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
@@ -1456,7 +1369,7 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn",
 ]
 
 [[package]]
@@ -1488,7 +1401,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn",
 ]
 
 [[package]]
@@ -1581,12 +1494,6 @@ checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "unindent"
-version = "0.1.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
-
-[[package]]
-name = "unindent"
 version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
@@ -1629,12 +1536,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
 name = "winapi"
 version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/nixpkgs/pkgs/by-name/sp/spade/package.nix b/nixpkgs/pkgs/by-name/sp/spade/package.nix
index 55a6088bad61..9248568deae2 100644
--- a/nixpkgs/pkgs/by-name/sp/spade/package.nix
+++ b/nixpkgs/pkgs/by-name/sp/spade/package.nix
@@ -6,13 +6,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "spade";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitLab {
     owner = "spade-lang";
     repo = "spade";
     rev = "v${version}";
-    hash = "sha256-MNMKUhXVBhSn91uTVCuxozJ2BVFQAX/YdnCPOztGQyM=";
+    hash = "sha256-oJfOgWobjt+DAVdP465E8iLMJCdqhs0vzJJFgRqVAP8=";
     # only needed for vatch, which contains test data
     fetchSubmodules = true;
   };
@@ -21,7 +21,6 @@ rustPlatform.buildRustPackage rec {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "codespan-0.12.0" = "sha256-3F2006BR3hyhxcUTaQiOjzTEuRECKJKjIDyXonS/lrE=";
-      "local-impl-0.1.0" = "sha256-w6kQ4wM/ZQJmOqmAAq9FFDzyt9xHOY14av5dsSIFRU0=";
       "tracing-tree-0.2.0" = "sha256-/JNeAKjAXmKPh0et8958yS7joORDbid9dhFB0VUAhZc=";
     };
   };
diff --git a/nixpkgs/pkgs/by-name/sp/speakersafetyd/package.nix b/nixpkgs/pkgs/by-name/sp/speakersafetyd/package.nix
index 4351ae55176e..aa44ad62c02b 100644
--- a/nixpkgs/pkgs/by-name/sp/speakersafetyd/package.nix
+++ b/nixpkgs/pkgs/by-name/sp/speakersafetyd/package.nix
@@ -39,6 +39,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A userspace daemon written in Rust that implements an analogue of the Texas Instruments Smart Amp speaker protection model";
+    mainProgram = "speakersafetyd";
     homepage = "https://github.com/AsahiLinux/speakersafetyd";
     maintainers = with maintainers; [ yuka ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/by-name/sp/spfft/package.nix b/nixpkgs/pkgs/by-name/sp/spfft/package.nix
index 832b9d75a5f8..f7e8b3742581 100644
--- a/nixpkgs/pkgs/by-name/sp/spfft/package.nix
+++ b/nixpkgs/pkgs/by-name/sp/spfft/package.nix
@@ -22,13 +22,13 @@ assert builtins.elem gpuBackend [ "none" "cuda" "rocm" ];
 
 stdenv.mkDerivation rec {
   pname = "SpFFT";
-  version = "1.0.6";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "eth-cscs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-70fPbIYbW50CoMdRS93hZKSbMEIQvZGFNE+eiRvuw0o=";
+    hash = "sha256-hZdB/QcjL8rjvR1YZS+CHe5U5zxedpfDq6msMih4Elc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/by-name/sp/spice-autorandr/package.nix b/nixpkgs/pkgs/by-name/sp/spice-autorandr/package.nix
index e79f4cb18bd9..1291a0f612d7 100644
--- a/nixpkgs/pkgs/by-name/sp/spice-autorandr/package.nix
+++ b/nixpkgs/pkgs/by-name/sp/spice-autorandr/package.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation  {
 
   meta = {
     description = "Automatically adjust the client window resolution in Linux KVM guests using the SPICE driver.";
+    mainProgram = "spice-autorandr";
     longDescription = ''
       Some desktop environments update the display resolution automatically,
       this package is only useful when running without a DE or with a DE that
diff --git a/nixpkgs/pkgs/by-name/sp/spicetify-cli/package.nix b/nixpkgs/pkgs/by-name/sp/spicetify-cli/package.nix
index a593c87c3d46..c1e79f9d6d86 100644
--- a/nixpkgs/pkgs/by-name/sp/spicetify-cli/package.nix
+++ b/nixpkgs/pkgs/by-name/sp/spicetify-cli/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "spicetify-cli";
-  version = "2.33.2";
+  version = "2.34.1";
 
   src = fetchFromGitHub {
     owner = "spicetify";
     repo = "spicetify-cli";
     rev = "v${version}";
-    hash = "sha256-GCeauokKzIbWwYrUopvvKEV7OBdoCfzFjHj0YxSuW3U=";
+    hash = "sha256-tVB0dkxp19EpUXN7X2rnnRlYuSc7Ja7sokmN9tNvY2k=";
   };
 
-  vendorHash = "sha256-9rYShpUVI3KSY6UgGmoXo899NkUezkAAkTgFPdq094E=";
+  vendorHash = "sha256-axE1SY+UW5oddyhOiktq+vNfhw2/SFX4ut4Hivg6TYQ=";
 
   ldflags = [
     "-s -w"
diff --git a/nixpkgs/pkgs/by-name/sp/spigot/package.nix b/nixpkgs/pkgs/by-name/sp/spigot/package.nix
index 421af163cd4f..9515a573b713 100644
--- a/nixpkgs/pkgs/by-name/sp/spigot/package.nix
+++ b/nixpkgs/pkgs/by-name/sp/spigot/package.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://www.chiark.greenend.org.uk/~sgtatham/spigot/";
     description = "A command-line exact real calculator";
+    mainProgram = "spigot";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/by-name/sp/spotube/package.nix b/nixpkgs/pkgs/by-name/sp/spotube/package.nix
index 8b0a057daec8..57411c32068f 100644
--- a/nixpkgs/pkgs/by-name/sp/spotube/package.nix
+++ b/nixpkgs/pkgs/by-name/sp/spotube/package.nix
@@ -4,6 +4,7 @@
 
 , autoPatchelfHook
 , dpkg
+, makeBinaryWrapper
 , makeWrapper
 , undmg
 , wrapGAppsHook
@@ -17,7 +18,7 @@
 
 let
   pname = "spotube";
-  version = "3.4.1";
+  version = "3.5.0";
 
   meta = {
     description = "An open source, cross-platform Spotify client compatible across multiple platforms";
@@ -46,18 +47,18 @@ let
 
     src = fetchArtifact {
       filename = "Spotube-macos-universal.dmg";
-      hash = "sha256-VobLCxsmE5kGIlDDa3v5xIHkw2x2YV14fgHHcDb+bLo=";
+      hash = "sha256-omXhiH/hVxFef03GqmpYf65SfdLjLyeMyuAWuvSpYiI=";
     };
 
     sourceRoot = ".";
 
-    nativeBuildInputs = [ undmg ];
+    nativeBuildInputs = [ undmg makeBinaryWrapper ];
 
     installPhase = ''
       runHook preInstall
       mkdir -p $out/Applications $out/bin
       cp -r spotube.app $out/Applications
-      ln -s $out/Applications/spotube.app/Contents/MacOS/spotube $out/bin/spotube
+      makeBinaryWrapper $out/Applications/spotube.app/Contents/MacOS/spotube $out/bin/spotube
       runHook postInstall
     '';
   };
@@ -67,7 +68,7 @@ let
 
     src = fetchArtifact {
       filename = "Spotube-linux-x86_64.deb";
-      hash = "sha256-NEGhzNz0E8jK2NPmigzoPAvYcU7zN9YHikuXHpzWfx0=";
+      hash = "sha256-Rea4GvxdkUfZF8lCBzI9UrD9Iz9D5vq9oxYBn5bahZE=";
     };
 
     nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/by-name/sr/srb2kart/package.nix b/nixpkgs/pkgs/by-name/sr/srb2kart/package.nix
new file mode 100644
index 000000000000..9601d99263ac
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/sr/srb2kart/package.nix
@@ -0,0 +1,106 @@
+{ lib
+, stdenv
+, fetchzip
+, fetchFromGitHub
+, cmake
+, curl
+, nasm
+, game-music-emu
+, libpng
+, SDL2
+, SDL2_mixer
+, zlib
+, makeWrapper
+, makeDesktopItem
+, copyDesktopItems
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "srb2kart";
+  version = "1.6";
+
+  src = fetchFromGitHub {
+    owner = "STJr";
+    repo = "Kart-Public";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-5sIHdeenWZjczyYM2q+F8Y1SyLqL+y77yxYDUM3dVA0=";
+  };
+
+  assets = stdenv.mkDerivation {
+    pname = "srb2kart-data";
+    version = finalAttrs.version;
+
+    src = fetchzip {
+      url = "https://github.com/STJr/Kart-Public/releases/download/v${finalAttrs.version}/AssetsLinuxOnly.zip";
+      hash = "sha256-yaVdsQUnyobjSbmemeBEyu35GeZCX1ylTRcjcbDuIu4=";
+      stripRoot = false;
+    };
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/share/srb2kart
+      cp -r * $out/share/srb2kart
+
+      runHook postInstall
+    '';
+  };
+
+  nativeBuildInputs = [
+    cmake
+    nasm
+    makeWrapper
+    copyDesktopItems
+  ];
+
+  buildInputs = [
+    curl
+    game-music-emu
+    libpng
+    SDL2
+    SDL2_mixer
+    zlib
+  ];
+
+  cmakeFlags = [
+    "-DSRB2_ASSET_DIRECTORY=${finalAttrs.assets}/share/srb2kart"
+    "-DGME_INCLUDE_DIR=${game-music-emu}/include"
+    "-DSDL2_MIXER_INCLUDE_DIR=${lib.getDev SDL2_mixer}/include/SDL2"
+    "-DSDL2_INCLUDE_DIR=${lib.getDev SDL2}/include/SDL2"
+  ];
+
+  desktopItems = [
+    (makeDesktopItem rec {
+      name = "Sonic Robo Blast 2 Kart";
+      exec = finalAttrs.pname;
+      icon = finalAttrs.pname;
+      comment = "Kart racing mod based on SRB2";
+      desktopName = name;
+      genericName = name;
+      startupWMClass = ".srb2kart-wrapped";
+      categories = [ "Game" ];
+    })
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 ../srb2.png $out/share/pixmaps/srb2kart.png
+    install -Dm644 ../srb2.png $out/share/icons/srb2kart.png
+    install -Dm755 bin/srb2kart $out/bin/srb2kart
+
+    wrapProgram $out/bin/srb2kart \
+      --set SRB2WADDIR "${finalAttrs.assets}/share/srb2kart"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "SRB2Kart is a classic styled kart racer";
+    homepage = "https://mb.srb2.org/threads/srb2kart.25868/";
+    platforms = platforms.linux;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ viric donovanglover ];
+    mainProgram = "srb2kart";
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/sr/srm-cuarzo/package.nix b/nixpkgs/pkgs/by-name/sr/srm-cuarzo/package.nix
index 71aeb8e31601..1f636e8aaeeb 100644
--- a/nixpkgs/pkgs/by-name/sr/srm-cuarzo/package.nix
+++ b/nixpkgs/pkgs/by-name/sr/srm-cuarzo/package.nix
@@ -14,9 +14,9 @@
 }:
 stdenv.mkDerivation (self: {
   pname = "srm-cuarzo";
-  version = "0.5.3-1";
+  version = "0.5.5-1";
   rev = "v${self.version}";
-  hash = "sha256-KRp+rTpiUbOmUPE9vASwTF+c8TDveFnAEqptcGO5luc=";
+  hash = "sha256-4aeKzvhfVmimz4Df7wnyZESAZa7RMjYUqbhFhqPJ59o=";
 
   src = fetchFromGitHub {
     inherit (self) rev hash;
diff --git a/nixpkgs/pkgs/by-name/ss/ssh-openpgp-auth/daemon.nix b/nixpkgs/pkgs/by-name/ss/ssh-openpgp-auth/daemon.nix
new file mode 100644
index 000000000000..d25b12ef6a64
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ss/ssh-openpgp-auth/daemon.nix
@@ -0,0 +1,14 @@
+# Ideally, this file would have been placed in
+# pkgs/by-name/ss/sshd-openpgp-auth/package.nix, but since `./generic.nix` is
+# outside of the directory, the nixpkgs-check-by-name test will fail the CI. So
+# we call this file in all-packages.nix like in the old days.
+{ callPackage }:
+
+callPackage ./generic.nix {
+  pname = "sshd-openpgp-auth";
+  version = "0.3.0";
+  srcHash = "sha256-IV0Nhdqyn12HDOp1jaKz3sKTI3ktFd5b6qybCLWt27I=";
+  cargoHash = "sha256-/+lZkVMeFUMRD7NQ/MHDU5f3rkKDx1kDv5tjA41RExc=";
+  metaDescription =
+    "Command-line tool for creating and managing OpenPGP based trust anchors for SSH host keys";
+}
diff --git a/nixpkgs/pkgs/by-name/ss/ssh-openpgp-auth/generic.nix b/nixpkgs/pkgs/by-name/ss/ssh-openpgp-auth/generic.nix
new file mode 100644
index 000000000000..5fadd5798ae8
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ss/ssh-openpgp-auth/generic.nix
@@ -0,0 +1,82 @@
+# This file is based upon upstream's package.nix shared among both
+# "ssh-openpgp-auth" and "sshd-openpgpg-auth"
+{ lib
+, rustPlatform
+, fetchFromGitea
+, pkg-config
+, just
+, rust-script
+, installShellFiles
+, bzip2
+, nettle
+, openssl
+, sqlite
+, stdenv
+, darwin
+, openssh
+# Arguments not supplied by callPackage
+, pname , version , srcHash , cargoHash, metaDescription
+}:
+
+rustPlatform.buildRustPackage {
+  inherit pname version;
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "wiktor";
+    repo = "ssh-openpgp-auth";
+    # See also: https://codeberg.org/wiktor/ssh-openpgp-auth/pulls/92#issuecomment-1635274
+    rev = "${pname}/${version}";
+    hash = srcHash;
+  };
+  buildAndTestSubdir = pname;
+  inherit cargoHash;
+
+  nativeBuildInputs = [
+    pkg-config
+    rustPlatform.bindgenHook
+    just
+    rust-script
+    installShellFiles
+  ];
+  # Otherwise just's build, check and install phases take precedence over
+  # buildRustPackage's phases.
+  dontUseJustBuild = true;
+  dontUseJustCheck = true;
+  dontUseJustInstall = true;
+
+  postInstall = ''
+    export HOME=$(mktemp -d)
+    just generate manpages ${pname} $out/share/man/man1
+    just generate shell_completions ${pname} shell_completions
+    installShellCompletion --cmd ${pname} \
+      --bash shell_completions/${pname}.bash \
+      --fish shell_completions/${pname}.fish \
+      --zsh  shell_completions/_${pname}
+  '';
+
+
+  buildInputs = [
+    nettle
+    openssl
+    sqlite
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk_11_0.frameworks.CoreFoundation
+    darwin.apple_sdk_11_0.frameworks.IOKit
+    darwin.apple_sdk_11_0.frameworks.Security
+    darwin.apple_sdk_11_0.frameworks.SystemConfiguration
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    openssh
+  ];
+
+  meta = with lib; {
+    description = metaDescription;
+    homepage = "https://codeberg.org/wiktor/ssh-openpgp-auth";
+    license = with licenses; [ mit /* or */ asl20 ];
+    maintainers = with maintainers; [ doronbehar ];
+    mainProgram = pname;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ss/ssh-openpgp-auth/package.nix b/nixpkgs/pkgs/by-name/ss/ssh-openpgp-auth/package.nix
new file mode 100644
index 000000000000..53509cc0d05c
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ss/ssh-openpgp-auth/package.nix
@@ -0,0 +1,10 @@
+{ callPackage }:
+
+callPackage ./generic.nix {
+  pname = "ssh-openpgp-auth";
+  version = "0.2.2";
+  srcHash = "sha256-5ew6jT6Zr54QYaWFQIGYXd8sqC3yHHZjPfoaCossm8o=";
+  cargoHash = "sha256-/k/XAp7PHIJaJWf4Oa1JC1mMSR5pyeM4SSPCcr77cAg=";
+  metaDescription =
+    "Command-line tool that provides client-side functionality to transparently verify the identity of remote SSH hosts";
+}
diff --git a/nixpkgs/pkgs/by-name/ss/sslstrip/package.nix b/nixpkgs/pkgs/by-name/ss/sslstrip/package.nix
new file mode 100644
index 000000000000..c9ad3406667f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ss/sslstrip/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "sslstrip";
+  version = "2.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "L1ghtn1ng";
+    repo = "sslstrip";
+    rev = "refs/tags/${version}";
+    hash = "sha256-iPWpbRmAUf0Yf5MDlpln1JLBxMIdmr/Ggk2ZGeQzm8s=";
+  };
+
+  postPatch = ''
+    # https://github.com/L1ghtn1ng/sslstrip/pull/58
+    substituteInPlace setup.py \
+      --replace-fail "README" "README.md"
+  '';
+
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    cryptography
+    pyopenssl
+    service-identity
+    twisted
+  ];
+
+  # Project has no test
+  doCheck= false;
+
+  pythonImportsCheck = [
+    "sslstrip"
+  ];
+
+  meta = with lib; {
+    description = "Tool for exploiting SSL stripping attacks";
+    homepage = "https://github.com/L1ghtn1ng/sslstrip";
+    changelog = "https://github.com/L1ghtn1ng/sslstrip/releases/tag/${version}";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "sslstrip";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ss/sssnake/package.nix b/nixpkgs/pkgs/by-name/ss/sssnake/package.nix
index d50d624781b0..98b774bf4f8c 100644
--- a/nixpkgs/pkgs/by-name/ss/sssnake/package.nix
+++ b/nixpkgs/pkgs/by-name/ss/sssnake/package.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   ];
   meta = with lib; {
     description = "Cli snake game that plays itself";
+    mainProgram = "sssnake";
     homepage = "https://github.com/angeljumbo/sssnake";
     license = with licenses; [mit];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/compilers/stanc/default.nix b/nixpkgs/pkgs/by-name/st/stanc/package.nix
index 66671823d866..e5e6f79eb8cd 100644
--- a/nixpkgs/pkgs/development/compilers/stanc/default.nix
+++ b/nixpkgs/pkgs/by-name/st/stanc/package.nix
@@ -1,6 +1,7 @@
-{ lib
-, fetchFromGitHub
-, ocamlPackages
+{
+  lib,
+  fetchFromGitHub,
+  ocamlPackages,
 }:
 
 ocamlPackages.buildDunePackage rec {
@@ -17,15 +18,8 @@ ocamlPackages.buildDunePackage rec {
     hash = "sha256-ixZCix3oLZhzs08JbmbNCO0lhAu1Jf+KnpHNKlU/FaA=";
   };
 
-  # Error: This expression has type [ `Use_Sys_unix ]
-  postPatch = ''
-    substituteInPlace test/integration/run_bin_on_args.ml \
-      --replace "if Sys.file_exists (to_windows path) then to_windows cmd else cmd" "cmd"
-  '';
+  nativeBuildInputs = with ocamlPackages; [ menhir ];
 
-  nativeBuildInputs = with ocamlPackages; [
-    menhir
-  ];
   buildInputs = with ocamlPackages; [
     core_unix
     menhirLib
diff --git a/nixpkgs/pkgs/by-name/st/stormlib/package.nix b/nixpkgs/pkgs/by-name/st/stormlib/package.nix
index d55b93ca48ca..cfa218c34e1e 100644
--- a/nixpkgs/pkgs/by-name/st/stormlib/package.nix
+++ b/nixpkgs/pkgs/by-name/st/stormlib/package.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/ladislav-zezula/StormLib";
     license = licenses.mit;
     description = "An open-source project that can work with Blizzard MPQ archives";
+    mainProgram = "storm_test";
     platforms = platforms.all;
     maintainers = with maintainers; [ aanderse karolchmist ];
   };
diff --git a/nixpkgs/pkgs/applications/science/engineering/strictdoc/default.nix b/nixpkgs/pkgs/by-name/st/strictdoc/package.nix
index 5097a936caaa..18bc6db8c215 100644
--- a/nixpkgs/pkgs/applications/science/engineering/strictdoc/default.nix
+++ b/nixpkgs/pkgs/by-name/st/strictdoc/package.nix
@@ -1,75 +1,76 @@
 { lib
-, fetchFromGitHub
 , python3
+, fetchFromGitHub
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "strictdoc";
-  version = "0.0.40";
+  version = "0.0.49";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "strictdoc-project";
     repo = "strictdoc";
-    rev = "refs/tags/${version}";
-    hash = "sha256-kZ8qVhroSPSGAcgUFZb1vRI6JoFyjeg/0qYosbRnwyc=";
+    rev = version;
+    hash = "sha256-WtDplupXBtq39oKyo31p5NgXMWtbWgxtpnKn4qCJz3I=";
   };
 
-  pythonRelaxDeps = true;
-
-  nativeBuildInputs = with python3.pkgs; [
-    hatchling
-    pythonRelaxDepsHook
+  nativeBuildInputs = [
+    python3.pkgs.hatchling
+    python3.pkgs.pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
     beautifulsoup4
-    datauri
     docutils
     fastapi
+    graphviz
     html5lib
     jinja2
     lxml
-    markupsafe
     pybtex
     pygments
+    datauri
     python-multipart
-    reqif
     selenium
-    setuptools
+    requests
     spdx-tools
+    webdriver-manager
+    reqif
+    setuptools
     textx
     toml
     uvicorn
-    webdriver-manager
     websockets
     xlrd
     xlsxwriter
-  ] ++ uvicorn.optional-dependencies.standard;
-
-  nativeCheckInputs = with python3.pkgs; [
-    httpx
-    pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "strictdoc"
-  ];
+  passthru.optional-dependencies = with python3.pkgs; {
+    development = [
+      invoke
+      tox
+    ];
+    nuitka = [
+      nuitka
+      ordered-set
+    ];
+  };
 
-  disabledTests = [
-    # fixture 'fs' not found
-    "test_001_load_from_files"
+  pythonRelaxDeps = [
+    "python-datauri"
+    "xlsxwriter"
+    "lxml"
   ];
 
-  disabledTestPaths = [
-    "tests/end2end/"
-  ];
+  pythonImportsCheck = [ "strictdoc" ];
 
   meta = with lib; {
-    description = "Software requirements specification tool";
+    description = "Software for technical documentation and requirements management";
     homepage = "https://github.com/strictdoc-project/strictdoc";
-    changelog = "https://github.com/strictdoc-project/strictdoc/releases/tag/${version}";
+    changelog = "https://github.com/strictdoc-project/strictdoc/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ yuu ];
+    mainProgram = "strictdoc";
   };
 }
diff --git a/nixpkgs/pkgs/servers/nosql/surrealdb/default.nix b/nixpkgs/pkgs/by-name/su/surrealdb/package.nix
index ce1ed67d2046..f5c8fecc1b09 100644
--- a/nixpkgs/pkgs/servers/nosql/surrealdb/default.nix
+++ b/nixpkgs/pkgs/by-name/su/surrealdb/package.nix
@@ -7,22 +7,22 @@
 , rocksdb
 , testers
 , surrealdb
-, SystemConfiguration
+, darwin
 , protobuf
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "surrealdb";
-  version = "1.2.1";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "surrealdb";
     repo = "surrealdb";
     rev = "v${version}";
-    hash = "sha256-ICQvAyBV+7cyHiwwiPEaoGT/W/pM4yiSpqByzkByRK4=";
+    hash = "sha256-dnfgU7nTX3vvqN9Mox6USRfpFdEI/dAOKIVZ2Jd4t9o=";
   };
 
-  cargoHash = "sha256-a9ZRr6U7mKCk2uaXJmCJMaCQxJ9adbRLMRUpJrsookk=";
+  cargoHash = "sha256-B+x+xEcwHqoYMolAuMQzSiO/QA1FiBGO3eis9kgN1S4=";
 
   # error: linker `aarch64-linux-gnu-gcc` not found
   postPatch = ''
@@ -41,13 +41,19 @@ rustPlatform.buildRustPackage rec {
   ];
 
   buildInputs = [ openssl ]
-    ++ lib.optionals stdenv.isDarwin [ SystemConfiguration ];
+    ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.SystemConfiguration ];
+
+  doCheck = false;
 
   checkFlags = [
     # flaky
     "--skip=ws_integration::none::merge"
+    # requires docker
+    "--skip=database_upgrade"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   passthru.tests.version = testers.testVersion {
     package = surrealdb;
     command = "surreal version";
diff --git a/nixpkgs/pkgs/by-name/su/suwayomi-server/package.nix b/nixpkgs/pkgs/by-name/su/suwayomi-server/package.nix
index 01b6df8dafdf..e924d0ea1f7b 100644
--- a/nixpkgs/pkgs/by-name/su/suwayomi-server/package.nix
+++ b/nixpkgs/pkgs/by-name/su/suwayomi-server/package.nix
@@ -12,12 +12,12 @@ in
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "suwayomi-server";
-  version = "0.7.0";
-  revision = 1197;
+  version = "1.0.0";
+  revision = 1498;
 
   src = fetchurl {
-    url = "https://github.com/Suwayomi/Suwayomi-Server/releases/download/v${finalAttrs.version}/Tachidesk-Server-v${finalAttrs.version}-r${toString finalAttrs.revision}.jar";
-    hash = "sha256-4DO1WiBCu/8ypFgJdBmEwQXQ1xaWAlbt8N5TELomVVA=";
+    url = "https://github.com/Suwayomi/Suwayomi-Server/releases/download/v${finalAttrs.version}/Suwayomi-Server-v${finalAttrs.version}-r${toString finalAttrs.revision}.jar";
+    hash = "sha256-CskVYc+byfn3mNzbOX1fCXPpjihtWpoRGBpXDY378c0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/by-name/sv/svix-server/package.nix b/nixpkgs/pkgs/by-name/sv/svix-server/package.nix
index e7de972488e2..7ccdf1f6b3f2 100644
--- a/nixpkgs/pkgs/by-name/sv/svix-server/package.nix
+++ b/nixpkgs/pkgs/by-name/sv/svix-server/package.nix
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
     hash = "sha256-6758ej7bTvwZPWifl239rQMazM8uw+Y4+3EbjE8XsTg=";
   };
 
-  sourceRoot = "source/server";
+  sourceRoot = "${src.name}/server";
 
   cargoLock = {
     lockFile = ./Cargo.lock;
diff --git a/nixpkgs/pkgs/by-name/sw/sway-assign-cgroups/package.nix b/nixpkgs/pkgs/by-name/sw/sway-assign-cgroups/package.nix
index c420a32cf37b..83602655a669 100644
--- a/nixpkgs/pkgs/by-name/sw/sway-assign-cgroups/package.nix
+++ b/nixpkgs/pkgs/by-name/sw/sway-assign-cgroups/package.nix
@@ -25,6 +25,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Place GUI applications into systemd scopes for systemd-oomd compatibility.";
+    mainProgram = "assign-cgroups.py";
     longDescription = ''
       Automatically assign a dedicated systemd scope to the GUI applications
       launched in the same cgroup as the compositor. This could be helpful for
diff --git a/nixpkgs/pkgs/by-name/sw/swaycons/package.nix b/nixpkgs/pkgs/by-name/sw/swaycons/package.nix
index 33e5ab3666d4..9716f8708795 100644
--- a/nixpkgs/pkgs/by-name/sw/swaycons/package.nix
+++ b/nixpkgs/pkgs/by-name/sw/swaycons/package.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Window Icons in Sway with Nerd Fonts!";
+    mainProgram = "swaycons";
     homepage = "https://github.com/ActuallyAllie/swaycons";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/sw/swayws/package.nix b/nixpkgs/pkgs/by-name/sw/swayws/package.nix
index 999581153ac9..a216e9efba71 100644
--- a/nixpkgs/pkgs/by-name/sw/swayws/package.nix
+++ b/nixpkgs/pkgs/by-name/sw/swayws/package.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A sway workspace tool which allows easy moving of workspaces to and from outputs";
+    mainProgram = "swayws";
     homepage = "https://gitlab.com/w0lff/swayws";
     license = licenses.mit;
     maintainers = [ maintainers.atila ];
diff --git a/nixpkgs/pkgs/by-name/sw/swaywsr/package.nix b/nixpkgs/pkgs/by-name/sw/swaywsr/package.nix
index 23a82bd2df08..5926e605b750 100644
--- a/nixpkgs/pkgs/by-name/sw/swaywsr/package.nix
+++ b/nixpkgs/pkgs/by-name/sw/swaywsr/package.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Automatically change sway workspace names based on their contents";
+    mainProgram = "swaywsr";
     longDescription = ''
       Automatically sets the workspace names to match the windows on the workspace.
       The chosen name for a workspace is a composite of the app_id or WM_CLASS X11
diff --git a/nixpkgs/pkgs/by-name/sw/switcheroo/package.nix b/nixpkgs/pkgs/by-name/sw/switcheroo/package.nix
index 4c41d6739824..9d2327f4095a 100644
--- a/nixpkgs/pkgs/by-name/sw/switcheroo/package.nix
+++ b/nixpkgs/pkgs/by-name/sw/switcheroo/package.nix
@@ -1,6 +1,7 @@
 { lib
 , blueprint-compiler
 , cargo
+, darwin
 , desktop-file-utils
 , fetchFromGitLab
 , glib
@@ -17,19 +18,19 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "switcheroo";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchFromGitLab {
     owner = "adhami3310";
     repo = "Switcheroo";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-3JlI0Co3yuD6fKaKlmz1Vg0epXABO+7cRvm6/PgbGUE=";
+    hash = "sha256-hopN2ynksaYoNYjXrh7plmhfmGYyqqK75GOtbsE95ZY=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     src = finalAttrs.src;
     name = "switcheroo-${finalAttrs.version}";
-    hash = "sha256-wC57VTJGiN2hDL2Z9fFw5H9c3Txqh30AHfR9o2DbcSk=";
+    hash = "sha256-wN6MsiOgYFgzDzdGei0ptRbG+h+xMJiFfzCcg6Xtryw=";
   };
 
   nativeBuildInputs = [
@@ -48,8 +49,19 @@ stdenv.mkDerivation (finalAttrs: {
     glib
     gtk4
     libadwaita
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Foundation
   ];
 
+  # Workaround for the gettext-sys issue
+  # https://github.com/Koka/gettext-rs/issues/114
+  env.NIX_CFLAGS_COMPILE = lib.optionalString
+    (
+      stdenv.cc.isClang &&
+      lib.versionAtLeast stdenv.cc.version "16"
+    )
+    "-Wno-error=incompatible-function-pointer-types";
+
   meta = with lib; {
     changelog = "https://gitlab.com/adhami3310/Switcheroo/-/releases/v${finalAttrs.version}";
     description = "An app for converting images between different formats";
@@ -57,6 +69,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl3Plus;
     mainProgram = "switcheroo";
     maintainers = with maintainers; [ michaelgrahamevans ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 })
diff --git a/nixpkgs/pkgs/tools/wayland/swww/default.nix b/nixpkgs/pkgs/by-name/sw/swww/package.nix
index 9973e6b2fb69..cf9b878a506d 100644
--- a/nixpkgs/pkgs/tools/wayland/swww/default.nix
+++ b/nixpkgs/pkgs/by-name/sw/swww/package.nix
@@ -14,12 +14,12 @@ rustPlatform.buildRustPackage rec {
 
   src = fetchFromGitHub {
     owner = "LGFae";
-    repo = pname;
+    repo = "swww";
     rev = "refs/tags/v${version}";
     hash = "sha256-n7YdUmIZGu7W7cX6OvVW+wbkKjFvont4hEAhZXYDQd8=";
   };
 
-  cargoSha256 = "sha256-lZC71M3lbsI+itMydAp5VCz0cpSHo/FpkQFC1NlN4DU=";
+  cargoHash = "sha256-lZC71M3lbsI+itMydAp5VCz0cpSHo/FpkQFC1NlN4DU=";
 
   buildInputs = [
     lz4
@@ -42,9 +42,9 @@ rustPlatform.buildRustPackage rec {
     done
 
     installShellCompletion --cmd swww \
-      --bash <(cat completions/swww.bash) \
-      --fish <(cat completions/swww.fish) \
-      --zsh <(cat completions/_swww)
+      --bash completions/swww.bash \
+      --fish completions/swww.fish \
+      --zsh completions/_swww
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/by-name/sy/symbolicator/package.nix b/nixpkgs/pkgs/by-name/sy/symbolicator/package.nix
index ebec2b81a6d8..20ee664e2cd1 100644
--- a/nixpkgs/pkgs/by-name/sy/symbolicator/package.nix
+++ b/nixpkgs/pkgs/by-name/sy/symbolicator/package.nix
@@ -47,9 +47,6 @@ rustPlatform.buildRustPackage rec {
     SYMBOLICATOR_GIT_VERSION = src.rev;
     SYMBOLICATOR_RELEASE = version;
     ZSTD_SYS_USE_PKG_CONFIG = true;
-  } // lib.optionalAttrs stdenv.cc.isClang {
-    # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
   };
 
   # tests require network access
diff --git a/nixpkgs/pkgs/by-name/sy/symfony-cli/package.nix b/nixpkgs/pkgs/by-name/sy/symfony-cli/package.nix
index e316ae832231..a9133d6742f4 100644
--- a/nixpkgs/pkgs/by-name/sy/symfony-cli/package.nix
+++ b/nixpkgs/pkgs/by-name/sy/symfony-cli/package.nix
@@ -10,14 +10,14 @@
 
 buildGoModule rec {
   pname = "symfony-cli";
-  version = "5.8.8";
-  vendorHash = "sha256-ACK0JCaS1MOCgUi2DMEjIcKf/nMCcrdDyIdioBZv7qw=";
+  version = "5.8.13";
+  vendorHash = "sha256-OBXurPjyB2/JCQBna+tk0p3+n8gPoNLXCppXkII3ZUc=";
 
   src = fetchFromGitHub {
     owner = "symfony-cli";
     repo = "symfony-cli";
     rev = "v${version}";
-    hash = "sha256-GdmFRGyp4s5G5RTEFKjcrY/OpaEVCgRhNVJbY1F8vk0=";
+    hash = "sha256-5fxvC+5XclHnPKZE0jt6fuWxa16uaxLH/PchlFQH7NI=";
   };
 
   ldflags = [
diff --git a/nixpkgs/pkgs/by-name/sy/syn2mas/package.nix b/nixpkgs/pkgs/by-name/sy/syn2mas/package.nix
index 6a147a2d647e..75fefef93689 100644
--- a/nixpkgs/pkgs/by-name/sy/syn2mas/package.nix
+++ b/nixpkgs/pkgs/by-name/sy/syn2mas/package.nix
@@ -14,7 +14,7 @@ buildNpmPackage rec {
     hash = "sha256-DPGigs6DifTRa7VQVHgizZ3BUy3FPX3YhZi++yoBFBA=";
   };
 
-  sourceRoot = "source/tools/syn2mas";
+  sourceRoot = "${src.name}/tools/syn2mas";
 
   npmDepsHash = "sha256-HvBFuRyP1APg5V+yhvlODAJ02MEkdpuLfNjWB/UT2vg=";
 
diff --git a/nixpkgs/pkgs/servers/syncstorage-rs/Cargo.lock b/nixpkgs/pkgs/by-name/sy/syncstorage-rs/Cargo.lock
index 059eca302cc5..976088819edb 100644
--- a/nixpkgs/pkgs/servers/syncstorage-rs/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/sy/syncstorage-rs/Cargo.lock
@@ -4,234 +4,152 @@ version = 3
 
 [[package]]
 name = "actix-codec"
-version = "0.3.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78d1833b3838dbe990df0f1f87baf640cf6146e898166afe401839d1b001e570"
+checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a"
 dependencies = [
- "bitflags 1.3.2",
- "bytes 0.5.6",
+ "bitflags 2.4.2",
+ "bytes",
  "futures-core",
  "futures-sink",
- "log",
- "pin-project 0.4.30",
- "tokio 0.2.25",
- "tokio-util 0.3.1",
-]
-
-[[package]]
-name = "actix-connect"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "177837a10863f15ba8d3ae3ec12fac1099099529ed20083a27fdfe247381d0dc"
-dependencies = [
- "actix-codec",
- "actix-rt",
- "actix-service",
- "actix-utils",
- "derive_more",
- "either",
- "futures-util",
- "http",
- "log",
- "trust-dns-proto",
- "trust-dns-resolver",
+ "memchr",
+ "pin-project-lite",
+ "tokio",
+ "tokio-util",
+ "tracing",
 ]
 
 [[package]]
 name = "actix-cors"
-version = "0.5.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36b133d8026a9f209a9aeeeacd028e7451bcca975f592881b305d37983f303d7"
+checksum = "0346d8c1f762b41b458ed3145eea914966bb9ad20b9be0d6d463b20d45586370"
 dependencies = [
+ "actix-utils",
  "actix-web",
  "derive_more",
  "futures-util",
  "log",
  "once_cell",
- "tinyvec",
+ "smallvec",
 ]
 
 [[package]]
 name = "actix-http"
-version = "2.2.2"
+version = "3.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2be6b66b62a794a8e6d366ac9415bb7d475ffd1e9f4671f38c1d8a8a5df950b3"
+checksum = "d223b13fd481fc0d1f83bb12659ae774d9e3601814c68a0bc539731698cca743"
 dependencies = [
  "actix-codec",
- "actix-connect",
  "actix-rt",
  "actix-service",
- "actix-threadpool",
  "actix-utils",
- "base64 0.13.1",
- "bitflags 1.3.2",
+ "ahash",
+ "base64",
+ "bitflags 2.4.2",
  "brotli",
- "bytes 0.5.6",
- "cookie",
- "copyless",
+ "bytes",
+ "bytestring",
  "derive_more",
- "either",
  "encoding_rs",
  "flate2",
- "futures-channel",
  "futures-core",
- "futures-util",
- "fxhash",
- "h2 0.2.7",
+ "h2",
  "http",
  "httparse",
- "indexmap",
- "itoa 0.4.8",
+ "httpdate",
+ "itoa",
  "language-tags",
- "lazy_static",
- "log",
+ "local-channel",
  "mime",
- "percent-encoding 2.3.0",
- "pin-project 1.1.3",
- "rand 0.7.3",
- "regex",
- "serde 1.0.189",
- "serde_json",
- "serde_urlencoded",
- "sha-1",
- "slab",
- "time 0.2.27",
+ "percent-encoding 2.3.1",
+ "pin-project-lite",
+ "rand",
+ "sha1",
+ "smallvec",
+ "tokio",
+ "tokio-util",
+ "tracing",
+ "zstd",
 ]
 
 [[package]]
 name = "actix-macros"
-version = "0.1.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4ca8ce00b267af8ccebbd647de0d61e0674b6e61185cc7a592ff88772bed655"
+checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb"
 dependencies = [
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "actix-router"
-version = "0.2.7"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ad299af73649e1fc893e333ccf86f377751eb95ff875d095131574c6f43452c"
+checksum = "d22475596539443685426b6bdadb926ad0ecaefdfc5fb05e5e3441f15463c511"
 dependencies = [
  "bytestring",
  "http",
- "log",
  "regex",
- "serde 1.0.189",
+ "serde 1.0.196",
+ "tracing",
 ]
 
 [[package]]
 name = "actix-rt"
-version = "1.1.1"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143fcc2912e0d1de2bcf4e2f720d2a60c28652ab4179685a1ee159e0fb3db227"
+checksum = "28f32d40287d3f402ae0028a9d54bef51af15c8769492826a69d28f81893151d"
 dependencies = [
  "actix-macros",
- "actix-threadpool",
- "copyless",
- "futures-channel",
- "futures-util",
- "smallvec",
- "tokio 0.2.25",
+ "futures-core",
+ "tokio",
 ]
 
 [[package]]
 name = "actix-server"
-version = "1.0.4"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45407e6e672ca24784baa667c5d32ef109ccdd8d5e0b5ebb9ef8a67f4dfb708e"
+checksum = "3eb13e7eef0423ea6eab0e59f6c72e7cb46d33691ad56a726b3cd07ddec2c2d4"
 dependencies = [
- "actix-codec",
  "actix-rt",
  "actix-service",
  "actix-utils",
- "futures-channel",
+ "futures-core",
  "futures-util",
- "log",
- "mio 0.6.23",
- "mio-uds",
- "num_cpus",
- "slab",
- "socket2 0.3.19",
+ "mio",
+ "socket2",
+ "tokio",
+ "tracing",
 ]
 
 [[package]]
 name = "actix-service"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0052435d581b5be835d11f4eb3bce417c8af18d87ddf8ace99f8e67e595882bb"
-dependencies = [
- "futures-util",
- "pin-project 0.4.30",
-]
-
-[[package]]
-name = "actix-testing"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47239ca38799ab74ee6a8a94d1ce857014b2ac36f242f70f3f75a66f691e791c"
-dependencies = [
- "actix-macros",
- "actix-rt",
- "actix-server",
- "actix-service",
- "log",
- "socket2 0.3.19",
-]
-
-[[package]]
-name = "actix-threadpool"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d209f04d002854b9afd3743032a27b066158817965bf5d036824d19ac2cc0e30"
-dependencies = [
- "derive_more",
- "futures-channel",
- "lazy_static",
- "log",
- "num_cpus",
- "parking_lot 0.11.2",
- "threadpool",
-]
-
-[[package]]
-name = "actix-tls"
-version = "2.0.0"
+version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24789b7d7361cf5503a504ebe1c10806896f61e96eca9a7350e23001aca715fb"
+checksum = "3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a"
 dependencies = [
- "actix-codec",
- "actix-service",
- "actix-utils",
- "futures-util",
+ "futures-core",
+ "paste",
+ "pin-project-lite",
 ]
 
 [[package]]
 name = "actix-utils"
-version = "2.0.0"
+version = "3.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e9022dec56632d1d7979e59af14f0597a28a830a9c1c7fec8b2327eb9f16b5a"
+checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8"
 dependencies = [
- "actix-codec",
- "actix-rt",
- "actix-service",
- "bitflags 1.3.2",
- "bytes 0.5.6",
- "either",
- "futures-channel",
- "futures-sink",
- "futures-util",
- "log",
- "pin-project 0.4.30",
- "slab",
+ "local-waker",
+ "pin-project-lite",
 ]
 
 [[package]]
 name = "actix-web"
-version = "3.3.3"
+version = "4.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6534a126df581caf443ba2751cab42092c89b3f1d06a9d829b1e17edfe3e277"
+checksum = "43a6556ddebb638c2358714d853257ed226ece6023ef9364f23f0c70737ea984"
 dependencies = [
  "actix-codec",
  "actix-http",
@@ -240,41 +158,43 @@ dependencies = [
  "actix-rt",
  "actix-server",
  "actix-service",
- "actix-testing",
- "actix-threadpool",
- "actix-tls",
  "actix-utils",
  "actix-web-codegen",
- "awc",
- "bytes 0.5.6",
+ "ahash",
+ "bytes",
+ "bytestring",
+ "cfg-if",
+ "cookie",
  "derive_more",
  "encoding_rs",
- "futures-channel",
  "futures-core",
  "futures-util",
- "fxhash",
+ "itoa",
+ "language-tags",
  "log",
  "mime",
- "pin-project 1.1.3",
+ "once_cell",
+ "pin-project-lite",
  "regex",
- "serde 1.0.189",
+ "serde 1.0.196",
  "serde_json",
  "serde_urlencoded",
- "socket2 0.3.19",
- "time 0.2.27",
- "tinyvec",
- "url 2.4.1",
+ "smallvec",
+ "socket2",
+ "time",
+ "url 2.5.0",
 ]
 
 [[package]]
 name = "actix-web-codegen"
-version = "0.4.0"
+version = "4.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad26f77093333e0e7c6ffe54ebe3582d908a104e448723eec6d43d08b07143fb"
+checksum = "eb1f50ebbb30eca122b188319a4398b3f7bb4a8cdf50ecfb73bfc6a3c3ce54f5"
 dependencies = [
+ "actix-router",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -293,6 +213,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
+name = "ahash"
+version = "0.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff"
+dependencies = [
+ "cfg-if",
+ "getrandom",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
 name = "aho-corasick"
 version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -337,14 +270,14 @@ version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
 dependencies = [
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
 
 [[package]]
 name = "arc-swap"
@@ -364,19 +297,19 @@ version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"
 dependencies = [
- "serde 1.0.189",
+ "serde 1.0.196",
  "serde_json",
 ]
 
 [[package]]
 name = "async-trait"
-version = "0.1.74"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -387,7 +320,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 dependencies = [
  "hermit-abi 0.1.19",
  "libc",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
@@ -397,30 +330,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
-name = "awc"
-version = "2.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b381e490e7b0cfc37ebc54079b0413d8093ef43d14a4e4747083f7fa47a9e691"
-dependencies = [
- "actix-codec",
- "actix-http",
- "actix-rt",
- "actix-service",
- "base64 0.13.1",
- "bytes 0.5.6",
- "cfg-if 1.0.0",
- "derive_more",
- "futures-core",
- "log",
- "mime",
- "percent-encoding 2.3.0",
- "rand 0.7.3",
- "serde 1.0.189",
- "serde_json",
- "serde_urlencoded",
-]
-
-[[package]]
 name = "backtrace"
 version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -428,7 +337,7 @@ checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
  "addr2line",
  "cc",
- "cfg-if 1.0.0",
+ "cfg-if",
  "libc",
  "miniz_oxide",
  "object",
@@ -436,28 +345,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "base-x"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270"
-
-[[package]]
 name = "base64"
-version = "0.12.3"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
-
-[[package]]
-name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "base64"
-version = "0.21.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "bindgen"
@@ -490,18 +381,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
-
-[[package]]
-name = "block-buffer"
-version = "0.9.0"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
-dependencies = [
- "generic-array",
-]
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
 name = "block-buffer"
@@ -514,9 +396,9 @@ dependencies = [
 
 [[package]]
 name = "boringssl-src"
-version = "0.5.2+6195bf8"
+version = "0.6.0+e46383f"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab565ccc5e276ea82a2013dd08bf2c999866b06daf1d4f30fee419c4aaec6d5"
+checksum = "5edec42197c014d84ea2396589f0da14b2257f63f319442b5e8475a077b90457"
 dependencies = [
  "cmake",
 ]
@@ -534,9 +416,9 @@ dependencies = [
 
 [[package]]
 name = "brotli-decompressor"
-version = "2.5.0"
+version = "2.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da74e2b81409b1b743f8f0c62cc6254afefb8b8e50bbfe3735550f7aeefa3448"
+checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -556,23 +438,17 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
-
-[[package]]
-name = "bytes"
 version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "bytestring"
-version = "1.3.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "238e4886760d98c4f899360c834fa93e62cf7f721ac3c2da375cbdf4b8679aae"
+checksum = "74d80203ea6b29df88012294f62733de21cfeab47f17b41af3a38bc30a03ee72"
 dependencies = [
- "bytes 1.5.0",
+ "bytes",
 ]
 
 [[package]]
@@ -590,6 +466,7 @@ version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
+ "jobserver",
  "libc",
 ]
 
@@ -604,35 +481,29 @@ 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"
 
 [[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
- "num-traits 0.2.17",
+ "num-traits 0.2.18",
  "wasm-bindgen",
- "windows-targets",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
 name = "clang-sys"
-version = "1.6.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
+checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
 dependencies = [
  "glob",
  "libc",
@@ -665,13 +536,12 @@ dependencies = [
 
 [[package]]
 name = "colored"
-version = "2.0.4"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6"
+checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
 dependencies = [
- "is-terminal",
  "lazy_static",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -682,7 +552,7 @@ checksum = "19b076e143e1d9538dde65da30f8481c2a6c44040edb8e02b9bf1351edb92ce3"
 dependencies = [
  "lazy_static",
  "nom 5.1.3",
- "serde 1.0.189",
+ "serde 1.0.196",
 ]
 
 [[package]]
@@ -694,7 +564,7 @@ dependencies = [
  "lazy_static",
  "nom 5.1.3",
  "rust-ini",
- "serde 1.0.189",
+ "serde 1.0.196",
  "serde-hjson",
  "serde_json",
  "toml",
@@ -702,12 +572,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "const_fn"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935"
-
-[[package]]
 name = "convert_case"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -715,26 +579,20 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
 
 [[package]]
 name = "cookie"
-version = "0.14.4"
+version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951"
+checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb"
 dependencies = [
- "percent-encoding 2.3.0",
- "time 0.2.27",
+ "percent-encoding 2.3.1",
+ "time",
  "version_check",
 ]
 
 [[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.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -742,68 +600,51 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
 dependencies = [
- "cfg-if 1.0.0",
- "crossbeam-utils 0.8.16",
+ "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-queue"
-version = "0.2.3"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
 dependencies = [
- "cfg-if 0.1.10",
- "crossbeam-utils 0.7.2",
- "maybe-uninit",
+ "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.7.2"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
-dependencies = [
- "autocfg",
- "cfg-if 0.1.10",
- "lazy_static",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if 1.0.0",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crypto-common"
@@ -817,24 +658,24 @@ dependencies = [
 
 [[package]]
 name = "curl"
-version = "0.4.44"
+version = "0.4.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22"
+checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6"
 dependencies = [
  "curl-sys",
  "libc",
  "openssl-probe",
  "openssl-sys",
  "schannel",
- "socket2 0.4.9",
- "winapi 0.3.9",
+ "socket2",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "curl-sys"
-version = "0.4.68+curl-8.4.0"
+version = "0.4.72+curl-8.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4a0d18d88360e374b16b2273c832b5e57258ffc1d4aa4f96b108e0738d5752f"
+checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea"
 dependencies = [
  "cc",
  "libc",
@@ -842,20 +683,20 @@ dependencies = [
  "openssl-sys",
  "pkg-config",
  "vcpkg",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "deadpool"
-version = "0.5.2"
-source = "git+https://github.com/mozilla-services/deadpool?branch=deadpool-v0.5.2-issue92#ede2a1f1fa22a7266cf4681edd2b988dfd333af9"
+version = "0.7.0"
+source = "git+https://github.com/mozilla-services/deadpool?tag=deadpool-v0.7.0#4e041037f758186e62021021e130926d5302ebe8"
 dependencies = [
  "async-trait",
  "config 0.10.1",
  "crossbeam-queue",
  "num_cpus",
- "serde 1.0.189",
- "tokio 0.2.25",
+ "serde 1.0.196",
+ "tokio",
 ]
 
 [[package]]
@@ -864,15 +705,15 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
 dependencies = [
- "serde 1.0.189",
- "uuid 1.5.0",
+ "serde 1.0.196",
+ "uuid",
 ]
 
 [[package]]
 name = "deranged"
-version = "0.3.9"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
  "powerfmt",
 ]
@@ -886,7 +727,7 @@ dependencies = [
  "convert_case",
  "proc-macro2",
  "quote",
- "rustc_version 0.4.0",
+ "rustc_version",
  "syn 1.0.109",
 ]
 
@@ -942,20 +783,11 @@ checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
 
 [[package]]
 name = "digest"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "digest"
 version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
- "block-buffer 0.10.4",
+ "block-buffer",
  "crypto-common",
  "subtle",
 ]
@@ -966,7 +798,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",
 ]
 
@@ -978,16 +810,10 @@ checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
 dependencies = [
  "libc",
  "redox_users",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
-name = "discard"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
-
-[[package]]
 name = "docopt"
 version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -995,21 +821,21 @@ checksum = "7f3f119846c823f9eafcf953a8f6ffb6ed69bf6240883261a7f13b634579a51f"
 dependencies = [
  "lazy_static",
  "regex",
- "serde 1.0.189",
+ "serde 1.0.196",
  "strsim 0.10.0",
 ]
 
 [[package]]
 name = "dyn-clone"
-version = "1.0.14"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23d2f3407d9a573d666de4b5bdf10569d73ca9478087346697dcbae6244bfbcd"
+checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "encoding_rs"
@@ -1017,19 +843,7 @@ version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
 dependencies = [
- "cfg-if 1.0.0",
-]
-
-[[package]]
-name = "enum-as-inner"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "570d109b813e904becc80d8d5da38376818a143348413f7149f1340fe04754d4"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
+ "cfg-if",
 ]
 
 [[package]]
@@ -1047,9 +861,9 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.10.0"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -1059,31 +873,31 @@ dependencies = [
 ]
 
 [[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
 name = "erased-serde"
 version = "0.3.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c"
 dependencies = [
- "serde 1.0.189",
+ "serde 1.0.196",
 ]
 
 [[package]]
 name = "errno"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
  "libc",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "fastrand"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
-
-[[package]]
 name = "findshlibs"
 version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1092,7 +906,7 @@ dependencies = [
  "cc",
  "lazy_static",
  "libc",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
@@ -1112,46 +926,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
 name = "form_urlencoded"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
-dependencies = [
- "percent-encoding 2.3.0",
-]
-
-[[package]]
-name = "fuchsia-zircon"
-version = "0.3.3"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
- "bitflags 1.3.2",
- "fuchsia-zircon-sys",
+ "percent-encoding 2.3.1",
 ]
 
 [[package]]
-name = "fuchsia-zircon-sys"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-
-[[package]]
 name = "futures"
 version = "0.1.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1159,9 +942,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
 
 [[package]]
 name = "futures"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1174,9 +957,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -1184,15 +967,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -1201,38 +984,38 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures 0.1.31",
  "futures-channel",
@@ -1242,21 +1025,12 @@ dependencies = [
  "futures-sink",
  "futures-task",
  "memchr",
- "pin-project-lite 0.2.13",
+ "pin-project-lite",
  "pin-utils",
  "slab",
 ]
 
 [[package]]
-name = "fxhash"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
 name = "generic-array"
 version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1268,31 +1042,22 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.1.16"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
- "cfg-if 1.0.0",
- "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
-dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
+ "js-sys",
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
+ "wasm-bindgen",
 ]
 
 [[package]]
 name = "gimli"
-version = "0.28.0"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "glob"
@@ -1302,35 +1067,35 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "google-cloud-rust-raw"
-version = "0.15.0"
+version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbabcfb0bcc5e3222191c3f0fba962b0cbf4242d2effe2a865090eee492ffc9c"
+checksum = "864a48916c62ddbd1dc289be6d041d8ca61160c9c6169298e5cf3da11baf8370"
 dependencies = [
- "futures 0.3.28",
+ "futures 0.3.30",
  "grpcio",
  "protobuf",
 ]
 
 [[package]]
 name = "grpcio"
-version = "0.12.1"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "609832ca501baeb662dc81932fda9ed83f5d058f4b899a807ba222ce696f430a"
+checksum = "9e398946b5721d72478eb647260a1b7c1d5f70f0de35399846c3913bd369a33e"
 dependencies = [
  "futures-executor",
  "futures-util",
  "grpcio-sys",
  "libc",
  "log",
- "parking_lot 0.12.1",
+ "parking_lot",
  "protobuf",
 ]
 
 [[package]]
 name = "grpcio-sys"
-version = "0.12.1+1.46.5-patched"
+version = "0.13.0+1.56.2-patched"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf625d1803b6f44203f0428ddace847fb4994def5c803fc8a7a2f18fb3daec62"
+checksum = "b3dae9132320ae1b03ea55b5ddc88ca72a31fb85fa631a241a40157f5feffe43"
 dependencies = [
  "bindgen",
  "boringssl-src",
@@ -1344,11 +1109,11 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.2.7"
+version = "0.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
 dependencies = [
- "bytes 0.5.6",
+ "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
@@ -1356,50 +1121,30 @@ dependencies = [
  "http",
  "indexmap",
  "slab",
- "tokio 0.2.25",
- "tokio-util 0.3.1",
- "tracing",
- "tracing-futures",
-]
-
-[[package]]
-name = "h2"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
-dependencies = [
- "bytes 1.5.0",
- "fnv",
- "futures-core",
- "futures-sink",
- "futures-util",
- "http",
- "indexmap",
- "slab",
- "tokio 1.33.0",
- "tokio-util 0.7.9",
+ "tokio",
+ "tokio-util",
  "tracing",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "hawk"
-version = "3.2.1"
+version = "5.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7539c8d8699bae53238aacd3f93cfb0bcaef77b85dc963902b9367c5d7a84c48"
+checksum = "2ba86b7cbed4f24e509c720688eaf4963eac20d9341689bf69bcf5ee5e0f1cd2"
 dependencies = [
  "anyhow",
- "base64 0.12.3",
+ "base64",
  "log",
  "once_cell",
  "ring",
  "thiserror",
- "url 2.4.1",
+ "url 2.5.0",
 ]
 
 [[package]]
@@ -1419,9 +1164,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
 
 [[package]]
 name = "hex"
@@ -1431,9 +1176,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
 name = "hkdf"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
 dependencies = [
  "hmac",
 ]
@@ -1444,16 +1189,16 @@ version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
 dependencies = [
- "digest 0.10.7",
+ "digest",
 ]
 
 [[package]]
 name = "home"
-version = "0.5.5"
+version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
 dependencies = [
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1464,39 +1209,29 @@ checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
 dependencies = [
  "libc",
  "match_cfg",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
 dependencies = [
- "bytes 1.5.0",
+ "bytes",
  "fnv",
- "itoa 1.0.9",
-]
-
-[[package]]
-name = "http-body"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b"
-dependencies = [
- "bytes 0.5.6",
- "http",
+ "itoa",
 ]
 
 [[package]]
 name = "http-body"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
- "bytes 1.5.0",
+ "bytes",
  "http",
- "pin-project-lite 0.2.13",
+ "pin-project-lite",
 ]
 
 [[package]]
@@ -1507,12 +1242,6 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
 
 [[package]]
 name = "httpdate"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47"
-
-[[package]]
-name = "httpdate"
 version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
@@ -1525,47 +1254,23 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "hyper"
-version = "0.13.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb"
-dependencies = [
- "bytes 0.5.6",
- "futures-channel",
- "futures-core",
- "futures-util",
- "h2 0.2.7",
- "http",
- "http-body 0.3.1",
- "httparse",
- "httpdate 0.3.2",
- "itoa 0.4.8",
- "pin-project 1.1.3",
- "socket2 0.3.19",
- "tokio 0.2.25",
- "tower-service",
- "tracing",
- "want",
-]
-
-[[package]]
-name = "hyper"
-version = "0.14.27"
+version = "0.14.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
 dependencies = [
- "bytes 1.5.0",
+ "bytes",
  "futures-channel",
  "futures-core",
  "futures-util",
- "h2 0.3.21",
+ "h2",
  "http",
- "http-body 0.4.5",
+ "http-body",
  "httparse",
- "httpdate 1.0.3",
- "itoa 1.0.9",
- "pin-project-lite 0.2.13",
- "socket2 0.4.9",
- "tokio 1.33.0",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
  "tower-service",
  "tracing",
  "want",
@@ -1573,51 +1278,23 @@ dependencies = [
 
 [[package]]
 name = "hyper-rustls"
-version = "0.21.0"
+version = "0.24.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37743cc83e8ee85eacfce90f2f4102030d9ff0a95244098d781e9bee4a90abb6"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
- "bytes 0.5.6",
  "futures-util",
- "hyper 0.13.10",
- "log",
+ "http",
+ "hyper",
  "rustls",
- "tokio 0.2.25",
+ "tokio",
  "tokio-rustls",
- "webpki",
-]
-
-[[package]]
-name = "hyper-tls"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed"
-dependencies = [
- "bytes 0.5.6",
- "hyper 0.13.10",
- "native-tls",
- "tokio 0.2.25",
- "tokio-tls",
-]
-
-[[package]]
-name = "hyper-tls"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
-dependencies = [
- "bytes 1.5.0",
- "hyper 0.14.27",
- "native-tls",
- "tokio 1.33.0",
- "tokio-native-tls",
 ]
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.58"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -1649,20 +1326,19 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.2.3"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
 dependencies = [
- "matches",
  "unicode-bidi",
  "unicode-normalization",
 ]
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -1676,120 +1352,79 @@ checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
 
 [[package]]
 name = "indexmap"
-version = "1.9.3"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
 dependencies = [
- "autocfg",
+ "equivalent",
  "hashbrown",
 ]
 
 [[package]]
 name = "indoc"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8"
-dependencies = [
- "indoc-impl",
- "proc-macro-hack",
-]
-
-[[package]]
-name = "indoc-impl"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0"
-dependencies = [
- "proc-macro-hack",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "unindent",
-]
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if 1.0.0",
-]
-
-[[package]]
-name = "iovec"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "ipconfig"
-version = "0.2.2"
+version = "2.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7"
-dependencies = [
- "socket2 0.3.19",
- "widestring",
- "winapi 0.3.9",
- "winreg 0.6.2",
-]
+checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
 
 [[package]]
 name = "ipnet"
-version = "2.8.0"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "is-terminal"
-version = "0.4.9"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
- "hermit-abi 0.3.3",
- "rustix",
- "windows-sys",
+ "hermit-abi 0.3.6",
+ "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "itoa"
-version = "0.4.8"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
-name = "itoa"
-version = "1.0.9"
+name = "jobserver"
+version = "0.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
-name = "kernel32-sys"
-version = "0.2.2"
+name = "jsonwebtoken"
+version = "9.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+checksum = "5c7ea04a7c5c055c175f189b6dc6ba036fd62306b58c66c9f6389036c503a3f4"
 dependencies = [
- "winapi 0.2.8",
- "winapi-build",
+ "base64",
+ "js-sys",
+ "ring",
+ "serde 1.0.196",
+ "serde_json",
 ]
 
 [[package]]
 name = "language-tags"
-version = "0.2.2"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
+checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
 
 [[package]]
 name = "lazy_static"
@@ -1811,32 +1446,43 @@ checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe"
 dependencies = [
  "arrayvec",
  "bitflags 1.3.2",
- "cfg-if 1.0.0",
+ "cfg-if",
  "ryu",
  "static_assertions",
 ]
 
 [[package]]
 name = "libc"
-version = "0.2.149"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libloading"
-version = "0.7.4"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "libredox"
+version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "cfg-if 1.0.0",
- "winapi 0.3.9",
+ "bitflags 2.4.2",
+ "libc",
+ "redox_syscall",
 ]
 
 [[package]]
 name = "libz-sys"
-version = "1.1.12"
+version = "1.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
+checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
 dependencies = [
  "cc",
  "libc",
@@ -1852,9 +1498,26 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.10"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "local-channel"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6cbc85e69b8df4b8bb8b89ec634e7189099cea8927a276b7384ce5488e53ec8"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "local-waker",
+]
+
+[[package]]
+name = "local-waker"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487"
 
 [[package]]
 name = "lock_api"
@@ -1873,15 +1536,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
-name = "lru-cache"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
-dependencies = [
- "linked-hash-map",
-]
-
-[[package]]
 name = "match_cfg"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1894,16 +1548,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
 
 [[package]]
-name = "maybe-uninit"
-version = "2.0.0"
+name = "memchr"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
-name = "memchr"
-version = "2.6.4"
+name = "memoffset"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
 
 [[package]]
 name = "migrations_internals"
@@ -1933,16 +1590,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
-name = "mime_guess"
-version = "2.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
-dependencies = [
- "mime",
- "unicase",
-]
-
-[[package]]
 name = "minimal-lexical"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1950,64 +1597,23 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
 ]
 
 [[package]]
 name = "mio"
-version = "0.6.23"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
- "cfg-if 0.1.10",
- "fuchsia-zircon",
- "fuchsia-zircon-sys",
- "iovec",
- "kernel32-sys",
  "libc",
  "log",
- "miow",
- "net2",
- "slab",
- "winapi 0.2.8",
-]
-
-[[package]]
-name = "mio"
-version = "0.8.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
-dependencies = [
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
- "windows-sys",
-]
-
-[[package]]
-name = "mio-uds"
-version = "0.6.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
-dependencies = [
- "iovec",
- "libc",
- "mio 0.6.23",
-]
-
-[[package]]
-name = "miow"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
-dependencies = [
- "kernel32-sys",
- "net2",
- "winapi 0.2.8",
- "ws2_32-sys",
+ "wasi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2022,7 +1628,7 @@ dependencies = [
  "httparse",
  "lazy_static",
  "log",
- "rand 0.8.5",
+ "rand",
  "regex",
  "serde_json",
  "serde_urlencoded",
@@ -2039,35 +1645,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "native-tls"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
-dependencies = [
- "lazy_static",
- "libc",
- "log",
- "openssl",
- "openssl-probe",
- "openssl-sys",
- "schannel",
- "security-framework",
- "security-framework-sys",
- "tempfile",
-]
-
-[[package]]
-name = "net2"
-version = "0.2.39"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac"
-dependencies = [
- "cfg-if 0.1.10",
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
 name = "nom"
 version = "5.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2089,19 +1666,25 @@ dependencies = [
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
 name = "num-traits"
 version = "0.1.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
 dependencies = [
- "num-traits 0.2.17",
+ "num-traits 0.2.18",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
 ]
@@ -2112,7 +1695,7 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.3",
+ "hermit-abi 0.3.6",
  "libc",
 ]
 
@@ -2127,50 +1710,18 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.32.1"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
-
-[[package]]
-name = "opaque-debug"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
-
-[[package]]
-name = "openssl"
-version = "0.10.57"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c"
-dependencies = [
- "bitflags 2.4.1",
- "cfg-if 1.0.0",
- "foreign-types",
- "libc",
- "once_cell",
- "openssl-macros",
- "openssl-sys",
-]
-
-[[package]]
-name = "openssl-macros"
-version = "0.1.1"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.38",
-]
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "openssl-probe"
@@ -2180,9 +1731,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.93"
+version = "0.9.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d"
+checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
 dependencies = [
  "cc",
  "libc",
@@ -2197,19 +1748,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e"
 dependencies = [
  "log",
- "serde 1.0.189",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "parking_lot"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
-dependencies = [
- "instant",
- "lock_api",
- "parking_lot_core 0.8.6",
+ "serde 1.0.196",
+ "winapi",
 ]
 
 [[package]]
@@ -2219,21 +1759,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
 dependencies = [
  "lock_api",
- "parking_lot_core 0.9.9",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.8.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc"
-dependencies = [
- "cfg-if 1.0.0",
- "instant",
- "libc",
- "redox_syscall 0.2.16",
- "smallvec",
- "winapi 0.3.9",
+ "parking_lot_core",
 ]
 
 [[package]]
@@ -2242,31 +1768,18 @@ 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",
+ "redox_syscall",
  "smallvec",
- "windows-targets",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "paste"
-version = "0.1.18"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
-dependencies = [
- "paste-impl",
- "proc-macro-hack",
-]
-
-[[package]]
-name = "paste-impl"
-version = "0.1.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
-dependencies = [
- "proc-macro-hack",
-]
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
 name = "peeking_take_while"
@@ -2282,55 +1795,9 @@ checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
-
-[[package]]
-name = "pin-project"
-version = "0.4.30"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ef0f924a5ee7ea9cbcea77529dba45f8a9ba9f622419fe3386ca581a3ae9d5a"
-dependencies = [
- "pin-project-internal 0.4.30",
-]
-
-[[package]]
-name = "pin-project"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
-dependencies = [
- "pin-project-internal 1.1.3",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "0.4.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "851c8d0ce9bebe43790dedfc86614c23494ac9f423dd618d3a61fc693eafe61e"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "pin-project-internal"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.38",
-]
-
-[[package]]
-name = "pin-project-lite"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pin-project-lite"
@@ -2346,9 +1813,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
 
 [[package]]
 name = "powerfmt"
@@ -2387,16 +1854,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "proc-macro-hack"
-version = "0.5.20+deprecated"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
-
-[[package]]
 name = "proc-macro2"
-version = "1.0.69"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
@@ -2409,63 +1870,70 @@ checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94"
 
 [[package]]
 name = "pyo3"
-version = "0.14.5"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35100f9347670a566a67aa623369293703322bb9db77d99d7df7313b575ae0c8"
+checksum = "9a89dc7a5850d0e983be1ec2a463a171d20990487c3cfcd68b5363f1ee3d6fe0"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "indoc",
  "libc",
- "parking_lot 0.11.2",
- "paste",
+ "memoffset",
+ "parking_lot",
  "pyo3-build-config",
+ "pyo3-ffi",
  "pyo3-macros",
  "unindent",
 ]
 
 [[package]]
 name = "pyo3-build-config"
-version = "0.14.5"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d12961738cacbd7f91b7c43bc25cfeeaa2698ad07a04b3be0aa88b950865738f"
+checksum = "07426f0d8fe5a601f26293f300afd1a7b1ed5e78b2a705870c5f30893c5163be"
 dependencies = [
  "once_cell",
+ "target-lexicon",
+]
+
+[[package]]
+name = "pyo3-ffi"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbb7dec17e17766b46bca4f1a4215a85006b4c2ecde122076c562dd058da6cf1"
+dependencies = [
+ "libc",
+ "pyo3-build-config",
 ]
 
 [[package]]
 name = "pyo3-macros"
-version = "0.14.5"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc0bc5215d704824dfddddc03f93cb572e1155c68b6761c37005e1c288808ea8"
+checksum = "05f738b4e40d50b5711957f142878cfa0f28e054aa0ebdfc3fd137a843f74ed3"
 dependencies = [
+ "proc-macro2",
  "pyo3-macros-backend",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "pyo3-macros-backend"
-version = "0.14.5"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71623fc593224afaab918aa3afcaf86ed2f43d34f6afde7f3922608f253240df"
+checksum = "0fc910d4851847827daf9d6cdd4a823fbdaab5b8818325c5e97a86da79e8881f"
 dependencies = [
+ "heck",
  "proc-macro2",
- "pyo3-build-config",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
-name = "quick-error"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-
-[[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -2477,42 +1945,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93"
 dependencies = [
  "log",
- "parking_lot 0.12.1",
+ "parking_lot",
  "scheduled-thread-pool",
 ]
 
 [[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",
-]
-
-[[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.4",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
+ "rand_chacha",
+ "rand_core",
 ]
 
 [[package]]
@@ -2522,16 +1967,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
 dependencies = [
  "ppv-lite86",
- "rand_core 0.6.4",
-]
-
-[[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",
+ "rand_core",
 ]
 
 [[package]]
@@ -2540,34 +1976,7 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.10",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-dependencies = [
- "bitflags 1.3.2",
+ "getrandom",
 ]
 
 [[package]]
@@ -2581,20 +1990,20 @@ dependencies = [
 
 [[package]]
 name = "redox_users"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
- "getrandom 0.2.10",
- "redox_syscall 0.2.16",
+ "getrandom",
+ "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2604,9 +2013,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2621,105 +2030,57 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
-version = "0.10.10"
+version = "0.11.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0718f81a8e14c4dbb3b34cf23dc6aaf9ab8a0dfec160c534b3dbca1aaa21f47c"
+checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
 dependencies = [
- "base64 0.13.1",
- "bytes 0.5.6",
+ "base64",
+ "bytes",
  "encoding_rs",
  "futures-core",
  "futures-util",
+ "h2",
  "http",
- "http-body 0.3.1",
- "hyper 0.13.10",
+ "http-body",
+ "hyper",
  "hyper-rustls",
- "hyper-tls 0.4.3",
- "ipnet",
- "js-sys",
- "lazy_static",
- "log",
- "mime",
- "mime_guess",
- "native-tls",
- "percent-encoding 2.3.0",
- "pin-project-lite 0.2.13",
- "rustls",
- "serde 1.0.189",
- "serde_json",
- "serde_urlencoded",
- "tokio 0.2.25",
- "tokio-rustls",
- "tokio-tls",
- "url 2.4.1",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
- "webpki-roots",
- "winreg 0.7.0",
-]
-
-[[package]]
-name = "reqwest"
-version = "0.11.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
-dependencies = [
- "base64 0.21.4",
- "bytes 1.5.0",
- "encoding_rs",
- "futures-core",
- "futures-util",
- "h2 0.3.21",
- "http",
- "http-body 0.4.5",
- "hyper 0.14.27",
- "hyper-tls 0.5.0",
  "ipnet",
  "js-sys",
  "log",
  "mime",
- "native-tls",
  "once_cell",
- "percent-encoding 2.3.0",
- "pin-project-lite 0.2.13",
- "serde 1.0.189",
+ "percent-encoding 2.3.1",
+ "pin-project-lite",
+ "rustls",
+ "rustls-pemfile",
+ "serde 1.0.196",
  "serde_json",
  "serde_urlencoded",
+ "sync_wrapper",
  "system-configuration",
- "tokio 1.33.0",
- "tokio-native-tls",
+ "tokio",
+ "tokio-rustls",
  "tower-service",
- "url 2.4.1",
+ "url 2.5.0",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
- "winreg 0.50.0",
-]
-
-[[package]]
-name = "resolv-conf"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00"
-dependencies = [
- "hostname",
- "quick-error",
+ "webpki-roots",
+ "winreg",
 ]
 
 [[package]]
 name = "ring"
-version = "0.16.20"
+version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
 dependencies = [
  "cc",
+ "getrandom",
  "libc",
- "once_cell",
  "spin",
  "untrusted",
- "web-sys",
- "winapi 0.3.9",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2742,46 +2103,55 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustc_version"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-dependencies = [
- "semver 0.9.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.20",
+ "semver",
 ]
 
 [[package]]
 name = "rustix"
-version = "0.38.19"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "745ecfa778e66b2b63c88a61cb36e0eea109e803b0b86bf9879fbc77c70e86ed"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
  "libc",
  "linux-raw-sys",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.18.1"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
- "base64 0.12.3",
  "log",
  "ring",
+ "rustls-webpki",
  "sct",
- "webpki",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+dependencies = [
+ "ring",
+ "untrusted",
 ]
 
 [[package]]
@@ -2792,9 +2162,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "same-file"
@@ -2807,11 +2177,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2820,7 +2190,7 @@ version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19"
 dependencies = [
- "parking_lot 0.12.1",
+ "parking_lot",
 ]
 
 [[package]]
@@ -2831,83 +2201,40 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sct"
-version = "0.6.1"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
  "ring",
  "untrusted",
 ]
 
 [[package]]
-name = "security-framework"
-version = "2.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
-dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
- "core-foundation-sys",
- "libc",
- "security-framework-sys",
-]
-
-[[package]]
-name = "security-framework-sys"
-version = "2.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "semver"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-dependencies = [
- "semver-parser",
-]
-
-[[package]]
 name = "semver"
-version = "1.0.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
-
-[[package]]
-name = "semver-parser"
-version = "0.7.0"
+version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
 
 [[package]]
 name = "sentry"
-version = "0.31.7"
+version = "0.31.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0097a48cd1999d983909f07cb03b15241c5af29e5e679379efac1c06296abecc"
+checksum = "6ce4b57f1b521f674df7a1d200be8ff5d74e3712020ee25b553146657b5377d5"
 dependencies = [
  "curl",
- "httpdate 1.0.3",
- "native-tls",
- "reqwest 0.11.22",
+ "httpdate",
  "sentry-backtrace",
  "sentry-contexts",
  "sentry-core",
  "sentry-debug-images",
- "sentry-panic",
  "sentry-tracing",
- "tokio 1.33.0",
- "ureq",
 ]
 
 [[package]]
 name = "sentry-backtrace"
-version = "0.31.7"
+version = "0.31.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18a7b80fa1dd6830a348d38a8d3a9761179047757b7dca29aef82db0118b9670"
+checksum = "58cc8d4e04a73de8f718dc703943666d03f25d3e9e4d0fb271ca0b8c76dfa00e"
 dependencies = [
  "backtrace",
  "once_cell",
@@ -2917,36 +2244,36 @@ dependencies = [
 
 [[package]]
 name = "sentry-contexts"
-version = "0.31.7"
+version = "0.31.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7615dc588930f1fd2e721774f25844ae93add2dbe2d3c2f995ce5049af898147"
+checksum = "6436c1bad22cdeb02179ea8ef116ffc217797c028927def303bc593d9320c0d1"
 dependencies = [
  "hostname",
  "libc",
  "os_info",
- "rustc_version 0.4.0",
+ "rustc_version",
  "sentry-core",
  "uname",
 ]
 
 [[package]]
 name = "sentry-core"
-version = "0.31.7"
+version = "0.31.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f51264e4013ed9b16558cce43917b983fa38170de2ca480349ceb57d71d6053"
+checksum = "901f761681f97db3db836ef9e094acdd8756c40215326c194201941947164ef1"
 dependencies = [
  "once_cell",
- "rand 0.8.5",
+ "rand",
  "sentry-types",
- "serde 1.0.189",
+ "serde 1.0.196",
  "serde_json",
 ]
 
 [[package]]
 name = "sentry-debug-images"
-version = "0.31.7"
+version = "0.31.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fe6180fa564d40bb942c9f0084ffb5de691c7357ead6a2b7a3154fae9e401dd"
+checksum = "afdb263e73d22f39946f6022ed455b7561b22ff5553aca9be3c6a047fa39c328"
 dependencies = [
  "findshlibs",
  "once_cell",
@@ -2954,20 +2281,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "sentry-panic"
-version = "0.31.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "323160213bba549f9737317b152af116af35c0410f4468772ee9b606d3d6e0fa"
-dependencies = [
- "sentry-backtrace",
- "sentry-core",
-]
-
-[[package]]
 name = "sentry-tracing"
-version = "0.31.7"
+version = "0.31.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38033822128e73f7b6ca74c1631cef8868890c6cb4008a291cf73530f87b4eac"
+checksum = "82eabcab0a047040befd44599a1da73d3adb228ff53b5ed9795ae04535577704"
 dependencies = [
  "sentry-backtrace",
  "sentry-core",
@@ -2977,19 +2294,19 @@ dependencies = [
 
 [[package]]
 name = "sentry-types"
-version = "0.31.7"
+version = "0.31.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e663b3eb62ddfc023c9cf5432daf5f1a4f6acb1df4d78dd80b740b32dd1a740"
+checksum = "da956cca56e0101998c8688bc65ce1a96f00673a0e58e663664023d4c7911e82"
 dependencies = [
  "debugid",
  "hex",
- "rand 0.8.5",
- "serde 1.0.189",
+ "rand",
+ "serde 1.0.196",
  "serde_json",
  "thiserror",
- "time 0.3.30",
- "url 2.4.1",
- "uuid 1.5.0",
+ "time",
+ "url 2.5.0",
+ "uuid",
 ]
 
 [[package]]
@@ -3000,9 +2317,9 @@ checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8"
 
 [[package]]
 name = "serde"
-version = "1.0.189"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
 dependencies = [
  "serde_derive",
 ]
@@ -3021,24 +2338,24 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.189"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.107"
+version = "1.0.113"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
 dependencies = [
- "itoa 1.0.9",
+ "itoa",
  "ryu",
- "serde 1.0.189",
+ "serde 1.0.196",
 ]
 
 [[package]]
@@ -3048,55 +2365,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
 dependencies = [
  "form_urlencoded",
- "itoa 1.0.9",
+ "itoa",
  "ryu",
- "serde 1.0.189",
-]
-
-[[package]]
-name = "sha-1"
-version = "0.9.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6"
-dependencies = [
- "block-buffer 0.9.0",
- "cfg-if 1.0.0",
- "cpufeatures",
- "digest 0.9.0",
- "opaque-debug",
+ "serde 1.0.196",
 ]
 
 [[package]]
 name = "sha1"
-version = "0.6.1"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
- "sha1_smol",
+ "cfg-if",
+ "cpufeatures",
+ "digest",
 ]
 
 [[package]]
-name = "sha1_smol"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
-
-[[package]]
 name = "sha2"
 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 0.10.7",
+ "digest",
 ]
 
 [[package]]
 name = "shlex"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "signal-hook-registry"
@@ -3159,7 +2459,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f400f1c5db96f1f52065e8931ca0c524cceb029f7537c9e6d5424488ca137ca0"
 dependencies = [
  "chrono",
- "serde 1.0.189",
+ "serde 1.0.196",
  "serde_json",
  "slog",
 ]
@@ -3196,60 +2496,30 @@ dependencies = [
  "slog",
  "term",
  "thread_local",
- "time 0.3.30",
+ "time",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a"
-
-[[package]]
-name = "socket2"
-version = "0.3.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"
-dependencies = [
- "cfg-if 1.0.0",
- "libc",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "socket2"
-version = "0.4.9"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
-dependencies = [
- "libc",
- "winapi 0.3.9",
-]
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "socket2"
-version = "0.5.4"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
 dependencies = [
  "libc",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "standback"
-version = "0.2.17"
+version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff"
-dependencies = [
- "version_check",
-]
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
 
 [[package]]
 name = "static_assertions"
@@ -3258,55 +2528,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 
 [[package]]
-name = "stdweb"
-version = "0.4.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
-dependencies = [
- "discard",
- "rustc_version 0.2.3",
- "stdweb-derive",
- "stdweb-internal-macros",
- "stdweb-internal-runtime",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "stdweb-derive"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
-dependencies = [
- "proc-macro2",
- "quote",
- "serde 1.0.189",
- "serde_derive",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "stdweb-internal-macros"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
-dependencies = [
- "base-x",
- "proc-macro2",
- "quote",
- "serde 1.0.189",
- "serde_derive",
- "serde_json",
- "sha1",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "stdweb-internal-runtime"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
-
-[[package]]
 name = "strsim"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3337,9 +2558,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.38"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3347,8 +2568,14 @@ dependencies = [
 ]
 
 [[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
 name = "syncserver"
-version = "0.14.1"
+version = "0.15.1"
 dependencies = [
  "actix-cors",
  "actix-http",
@@ -3356,25 +2583,23 @@ dependencies = [
  "actix-web",
  "async-trait",
  "backtrace",
- "base64 0.21.4",
+ "base64",
  "cadence",
  "chrono",
  "docopt",
  "dyn-clone",
- "env_logger 0.10.0",
- "futures 0.3.28",
+ "futures 0.3.30",
  "hawk",
  "hex",
  "hmac",
  "hostname",
  "lazy_static",
  "mime",
- "rand 0.8.5",
+ "rand",
  "regex",
- "reqwest 0.10.10",
  "sentry",
  "sentry-backtrace",
- "serde 1.0.189",
+ "serde 1.0.196",
  "serde_derive",
  "serde_json",
  "sha2",
@@ -3391,12 +2616,12 @@ dependencies = [
  "syncstorage-db",
  "syncstorage-settings",
  "thiserror",
- "time 0.3.30",
+ "time",
  "tokenserver-auth",
  "tokenserver-common",
  "tokenserver-db",
  "tokenserver-settings",
- "tokio 0.2.25",
+ "tokio",
  "urlencoding",
  "validator",
  "validator_derive",
@@ -3405,13 +2630,13 @@ dependencies = [
 
 [[package]]
 name = "syncserver-common"
-version = "0.14.1"
+version = "0.15.1"
 dependencies = [
  "actix-web",
  "cadence",
- "futures 0.3.28",
+ "futures 0.3.30",
  "hkdf",
- "serde 1.0.189",
+ "serde 1.0.196",
  "serde_json",
  "sha2",
  "slog",
@@ -3420,13 +2645,13 @@ dependencies = [
 
 [[package]]
 name = "syncserver-db-common"
-version = "0.14.1"
+version = "0.15.1"
 dependencies = [
  "backtrace",
  "deadpool",
  "diesel",
  "diesel_migrations",
- "futures 0.3.28",
+ "futures 0.3.30",
  "http",
  "syncserver-common",
  "thiserror",
@@ -3434,30 +2659,30 @@ dependencies = [
 
 [[package]]
 name = "syncserver-settings"
-version = "0.14.1"
+version = "0.15.1"
 dependencies = [
  "config 0.11.0",
  "num_cpus",
- "serde 1.0.189",
+ "serde 1.0.196",
  "slog-scope",
  "syncserver-common",
  "syncstorage-settings",
  "tokenserver-settings",
- "url 2.4.1",
+ "url 2.5.0",
 ]
 
 [[package]]
 name = "syncstorage-db"
-version = "0.14.1"
+version = "0.15.1"
 dependencies = [
  "async-trait",
  "cadence",
- "env_logger 0.10.0",
- "futures 0.3.28",
+ "env_logger 0.10.2",
+ "futures 0.3.30",
  "hostname",
  "lazy_static",
  "log",
- "rand 0.8.5",
+ "rand",
  "slog-scope",
  "syncserver-common",
  "syncserver-db-common",
@@ -3466,22 +2691,22 @@ dependencies = [
  "syncstorage-mysql",
  "syncstorage-settings",
  "syncstorage-spanner",
- "tokio 0.2.25",
+ "tokio",
 ]
 
 [[package]]
 name = "syncstorage-db-common"
-version = "0.14.1"
+version = "0.15.1"
 dependencies = [
  "async-trait",
  "backtrace",
  "chrono",
  "diesel",
  "diesel_migrations",
- "futures 0.3.28",
+ "futures 0.3.30",
  "http",
  "lazy_static",
- "serde 1.0.189",
+ "serde 1.0.196",
  "serde_json",
  "syncserver-common",
  "syncserver-db-common",
@@ -3490,16 +2715,16 @@ dependencies = [
 
 [[package]]
 name = "syncstorage-mysql"
-version = "0.14.1"
+version = "0.15.1"
 dependencies = [
  "async-trait",
  "backtrace",
- "base64 0.21.4",
+ "base64",
  "diesel",
  "diesel_logger",
  "diesel_migrations",
- "env_logger 0.10.0",
- "futures 0.3.28",
+ "env_logger 0.10.2",
+ "futures 0.3.30",
  "http",
  "slog-scope",
  "syncserver-common",
@@ -3508,30 +2733,30 @@ dependencies = [
  "syncstorage-db-common",
  "syncstorage-settings",
  "thiserror",
- "url 2.4.1",
+ "url 2.5.0",
 ]
 
 [[package]]
 name = "syncstorage-settings"
-version = "0.14.1"
+version = "0.15.1"
 dependencies = [
- "rand 0.8.5",
- "serde 1.0.189",
+ "rand",
+ "serde 1.0.196",
  "syncserver-common",
- "time 0.3.30",
+ "time",
 ]
 
 [[package]]
 name = "syncstorage-spanner"
-version = "0.14.1"
+version = "0.15.1"
 dependencies = [
  "async-trait",
  "backtrace",
  "cadence",
  "deadpool",
- "env_logger 0.10.0",
+ "env_logger 0.10.2",
  "form_urlencoded",
- "futures 0.3.28",
+ "futures 0.3.30",
  "google-cloud-rust-raw",
  "grpcio",
  "http",
@@ -3543,9 +2768,9 @@ dependencies = [
  "syncstorage-db-common",
  "syncstorage-settings",
  "thiserror",
- "tokio 0.2.25",
- "url 2.4.1",
- "uuid 0.8.2",
+ "tokio",
+ "url 2.5.0",
+ "uuid",
 ]
 
 [[package]]
@@ -3576,17 +2801,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60"
 
 [[package]]
-name = "tempfile"
-version = "3.8.0"
+name = "target-lexicon"
+version = "0.12.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
-dependencies = [
- "cfg-if 1.0.0",
- "fastrand",
- "redox_syscall 0.3.5",
- "rustix",
- "windows-sys",
-]
+checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
 
 [[package]]
 name = "term"
@@ -3596,14 +2814,14 @@ checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f"
 dependencies = [
  "dirs-next",
  "rustversion",
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.3.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
@@ -3619,22 +2837,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.49"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.49"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3643,48 +2861,25 @@ version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "once_cell",
 ]
 
 [[package]]
-name = "threadpool"
-version = "1.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
-dependencies = [
- "num_cpus",
-]
-
-[[package]]
-name = "time"
-version = "0.2.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242"
-dependencies = [
- "const_fn",
- "libc",
- "standback",
- "stdweb",
- "time-macros 0.1.1",
- "version_check",
- "winapi 0.3.9",
-]
-
-[[package]]
 name = "time"
-version = "0.3.30"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
  "deranged",
- "itoa 1.0.9",
+ "itoa",
  "libc",
+ "num-conv",
  "num_threads",
  "powerfmt",
- "serde 1.0.189",
+ "serde 1.0.196",
  "time-core",
- "time-macros 0.2.15",
+ "time-macros",
 ]
 
 [[package]]
@@ -3695,37 +2890,15 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1"
-dependencies = [
- "proc-macro-hack",
- "time-macros-impl",
-]
-
-[[package]]
-name = "time-macros"
-version = "0.2.15"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
 [[package]]
-name = "time-macros-impl"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f"
-dependencies = [
- "proc-macro-hack",
- "proc-macro2",
- "quote",
- "standback",
- "syn 1.0.109",
-]
-
-[[package]]
 name = "tinyvec"
 version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3742,29 +2915,39 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokenserver-auth"
-version = "0.14.1"
+version = "0.15.1"
 dependencies = [
  "async-trait",
+ "base64",
  "dyn-clone",
- "futures 0.3.28",
+ "futures 0.3.30",
+ "hex",
+ "hkdf",
+ "hmac",
+ "jsonwebtoken",
  "mockito",
  "pyo3",
- "reqwest 0.10.10",
- "serde 1.0.189",
+ "reqwest",
+ "ring",
+ "serde 1.0.196",
  "serde_json",
+ "sha2",
+ "slog-scope",
  "syncserver-common",
+ "thiserror",
  "tokenserver-common",
  "tokenserver-settings",
- "tokio 0.2.25",
+ "tokio",
 ]
 
 [[package]]
 name = "tokenserver-common"
-version = "0.14.1"
+version = "0.15.1"
 dependencies = [
  "actix-web",
  "backtrace",
- "serde 1.0.189",
+ "jsonwebtoken",
+ "serde 1.0.196",
  "serde_json",
  "syncserver-common",
  "thiserror",
@@ -3772,17 +2955,17 @@ dependencies = [
 
 [[package]]
 name = "tokenserver-db"
-version = "0.14.1"
+version = "0.15.1"
 dependencies = [
  "async-trait",
  "backtrace",
  "diesel",
  "diesel_logger",
  "diesel_migrations",
- "env_logger 0.10.0",
- "futures 0.3.28",
+ "env_logger 0.10.2",
+ "futures 0.3.30",
  "http",
- "serde 1.0.189",
+ "serde 1.0.196",
  "serde_derive",
  "serde_json",
  "slog-scope",
@@ -3792,123 +2975,68 @@ dependencies = [
  "thiserror",
  "tokenserver-common",
  "tokenserver-settings",
- "tokio 0.2.25",
+ "tokio",
 ]
 
 [[package]]
 name = "tokenserver-settings"
-version = "0.14.1"
+version = "0.15.1"
 dependencies = [
- "serde 1.0.189",
+ "jsonwebtoken",
+ "serde 1.0.196",
  "tokenserver-common",
 ]
 
 [[package]]
 name = "tokio"
-version = "0.2.25"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
- "bytes 0.5.6",
- "fnv",
- "futures-core",
- "iovec",
- "lazy_static",
+ "backtrace",
+ "bytes",
  "libc",
- "memchr",
- "mio 0.6.23",
- "mio-uds",
- "pin-project-lite 0.1.12",
+ "mio",
+ "parking_lot",
+ "pin-project-lite",
  "signal-hook-registry",
- "slab",
+ "socket2",
  "tokio-macros",
- "winapi 0.3.9",
-]
-
-[[package]]
-name = "tokio"
-version = "1.33.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653"
-dependencies = [
- "backtrace",
- "bytes 1.5.0",
- "libc",
- "mio 0.8.8",
- "num_cpus",
- "pin-project-lite 0.2.13",
- "socket2 0.5.4",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "0.2.6"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "tokio-native-tls"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
-dependencies = [
- "native-tls",
- "tokio 1.33.0",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "tokio-rustls"
-version = "0.14.1"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
 dependencies = [
- "futures-core",
  "rustls",
- "tokio 0.2.25",
- "webpki",
-]
-
-[[package]]
-name = "tokio-tls"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343"
-dependencies = [
- "native-tls",
- "tokio 0.2.25",
-]
-
-[[package]]
-name = "tokio-util"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499"
-dependencies = [
- "bytes 0.5.6",
- "futures-core",
- "futures-sink",
- "log",
- "pin-project-lite 0.1.12",
- "tokio 0.2.25",
+ "tokio",
 ]
 
 [[package]]
 name = "tokio-util"
-version = "0.7.9"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
 dependencies = [
- "bytes 1.5.0",
+ "bytes",
  "futures-core",
  "futures-sink",
- "pin-project-lite 0.2.13",
- "tokio 1.33.0",
+ "pin-project-lite",
+ "tokio",
  "tracing",
 ]
 
@@ -3918,7 +3046,7 @@ version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
 dependencies = [
- "serde 1.0.189",
+ "serde 1.0.196",
 ]
 
 [[package]]
@@ -3929,12 +3057,12 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
 
 [[package]]
 name = "tracing"
-version = "0.1.39"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee2ef2af84856a50c1d430afce2fdded0a4ec7eda868db86409b4543df0797f9"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
  "log",
- "pin-project-lite 0.2.13",
+ "pin-project-lite",
  "tracing-core",
 ]
 
@@ -3949,68 +3077,19 @@ dependencies = [
 ]
 
 [[package]]
-name = "tracing-futures"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
-dependencies = [
- "pin-project 1.1.3",
- "tracing",
-]
-
-[[package]]
 name = "tracing-subscriber"
-version = "0.3.17"
+version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
 dependencies = [
  "tracing-core",
 ]
 
 [[package]]
-name = "trust-dns-proto"
-version = "0.19.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cad71a0c0d68ab9941d2fb6e82f8fb2e86d9945b94e1661dd0aaea2b88215a9"
-dependencies = [
- "async-trait",
- "cfg-if 1.0.0",
- "enum-as-inner",
- "futures 0.3.28",
- "idna 0.2.3",
- "lazy_static",
- "log",
- "rand 0.7.3",
- "smallvec",
- "thiserror",
- "tokio 0.2.25",
- "url 2.4.1",
-]
-
-[[package]]
-name = "trust-dns-resolver"
-version = "0.19.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "710f593b371175db53a26d0b38ed2978fafb9e9e8d3868b1acd753ea18df0ceb"
-dependencies = [
- "cfg-if 0.1.10",
- "futures 0.3.28",
- "ipconfig",
- "lazy_static",
- "log",
- "lru-cache",
- "resolv-conf",
- "smallvec",
- "thiserror",
- "tokio 0.2.25",
- "trust-dns-proto",
-]
-
-[[package]]
 name = "try-lock"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "typenum"
@@ -4028,19 +3107,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "unicase"
-version = "2.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
-dependencies = [
- "version_check",
-]
-
-[[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
@@ -4065,28 +3135,15 @@ checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "unindent"
-version = "0.1.11"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
+checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
 
 [[package]]
 name = "untrusted"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
-
-[[package]]
-name = "ureq"
-version = "2.8.0"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5ccd538d4a604753ebc2f17cd9946e89b77bf87f6a8e2309667c6f2e87855e3"
-dependencies = [
- "base64 0.21.4",
- "log",
- "native-tls",
- "once_cell",
- "url 2.4.1",
-]
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
@@ -4101,14 +3158,14 @@ dependencies = [
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
- "idna 0.4.0",
- "percent-encoding 2.3.0",
- "serde 1.0.189",
+ "idna 0.5.0",
+ "percent-encoding 2.3.1",
+ "serde 1.0.196",
 ]
 
 [[package]]
@@ -4119,21 +3176,12 @@ checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
 
 [[package]]
 name = "uuid"
-version = "0.8.2"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 dependencies = [
- "getrandom 0.2.10",
- "serde 1.0.189",
-]
-
-[[package]]
-name = "uuid"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc"
-dependencies = [
- "serde 1.0.189",
+ "getrandom",
+ "serde 1.0.196",
 ]
 
 [[package]]
@@ -4145,10 +3193,10 @@ dependencies = [
  "idna 0.4.0",
  "lazy_static",
  "regex",
- "serde 1.0.189",
+ "serde 1.0.196",
  "serde_derive",
  "serde_json",
- "url 2.4.1",
+ "url 2.5.0",
 ]
 
 [[package]]
@@ -4222,50 +3270,42 @@ dependencies = [
 
 [[package]]
 name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "wasi"
 version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
 dependencies = [
- "cfg-if 1.0.0",
- "serde 1.0.189",
- "serde_json",
+ "cfg-if",
  "wasm-bindgen-macro",
 ]
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.37"
+version = "0.4.41"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
 dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
  "js-sys",
  "wasm-bindgen",
  "web-sys",
@@ -4273,9 +3313,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -4283,51 +3323,38 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.38",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
 ]
 
 [[package]]
-name = "webpki"
-version = "0.21.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
 name = "webpki-roots"
-version = "0.20.0"
+version = "0.25.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f20dea7535251981a9670857150d571846545088359b28e4951d350bdaf179f"
-dependencies = [
- "webpki",
-]
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
 
 [[package]]
 name = "which"
@@ -4342,18 +3369,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "widestring"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c"
-
-[[package]]
-name = "winapi"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-
-[[package]]
 name = "winapi"
 version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4364,12 +3379,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "winapi-build"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-
-[[package]]
 name = "winapi-i686-pc-windows-gnu"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4381,7 +3390,7 @@ version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
- "winapi 0.3.9",
+ "winapi",
 ]
 
 [[package]]
@@ -4392,11 +3401,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows-core"
-version = "0.51.1"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -4405,7 +3414,16 @@ version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -4414,13 +3432,28 @@ version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
 ]
 
 [[package]]
@@ -4430,94 +3463,156 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+
+[[package]]
 name = "windows_aarch64_msvc"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+
+[[package]]
 name = "windows_i686_gnu"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
+name = "windows_i686_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+
+[[package]]
 name = "windows_i686_msvc"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+
+[[package]]
 name = "windows_x86_64_gnu"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+
+[[package]]
 name = "windows_x86_64_gnullvm"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+
+[[package]]
 name = "windows_x86_64_msvc"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+
+[[package]]
 name = "winreg"
-version = "0.6.2"
+version = "0.50.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
 dependencies = [
- "winapi 0.3.9",
+ "cfg-if",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "winreg"
-version = "0.7.0"
+name = "woothee"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "896174c6a4779d4d7d4523dd27aef7d46609eda2497e370f6c998325c6bf6971"
+dependencies = [
+ "lazy_static",
+ "regex",
+]
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
 dependencies = [
- "winapi 0.3.9",
+ "linked-hash-map",
 ]
 
 [[package]]
-name = "winreg"
-version = "0.50.0"
+name = "zerocopy"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
 dependencies = [
- "cfg-if 1.0.0",
- "windows-sys",
+ "zerocopy-derive",
 ]
 
 [[package]]
-name = "woothee"
+name = "zerocopy-derive"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "zstd"
 version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "896174c6a4779d4d7d4523dd27aef7d46609eda2497e370f6c998325c6bf6971"
+checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110"
 dependencies = [
- "lazy_static",
- "regex",
+ "zstd-safe",
 ]
 
 [[package]]
-name = "ws2_32-sys"
-version = "0.2.1"
+name = "zstd-safe"
+version = "7.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e"
 dependencies = [
- "winapi 0.2.8",
- "winapi-build",
+ "zstd-sys",
 ]
 
 [[package]]
-name = "yaml-rust"
-version = "0.4.5"
+name = "zstd-sys"
+version = "2.0.9+zstd.1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
 dependencies = [
- "linked-hash-map",
+ "cc",
+ "pkg-config",
 ]
diff --git a/nixpkgs/pkgs/servers/syncstorage-rs/default.nix b/nixpkgs/pkgs/by-name/sy/syncstorage-rs/package.nix
index 96b1945df51f..097ada49f33c 100644
--- a/nixpkgs/pkgs/servers/syncstorage-rs/default.nix
+++ b/nixpkgs/pkgs/by-name/sy/syncstorage-rs/package.nix
@@ -20,13 +20,13 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "syncstorage-rs";
-  version = "0.14.1";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "mozilla-services";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-7lIFHK0XSOtfDEy6N9jcPGOd5Por5i1CBdDZQBiHm8c=";
+    hash = "sha256-uQaiBxK+dV/AgMlKbFUvHV7bUUGX6gpypImCat7H4S8=";
   };
 
   nativeBuildInputs = [
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "deadpool-0.5.2" = "sha256-V3v03t8XWA6rA8RaNunq2kh2U+6Lc2C2moKdaF2bmEc=";
+      "deadpool-0.7.0" = "sha256-yQwn45EuzmPBwuT+iLJ/LLWAkBkW2vF+GLswdbpFVAY=";
     };
   };
 
diff --git a/nixpkgs/pkgs/servers/geospatial/t-rex/default.nix b/nixpkgs/pkgs/by-name/t-/t-rex/package.nix
index c96d8a8247f5..f26592e052d0 100644
--- a/nixpkgs/pkgs/servers/geospatial/t-rex/default.nix
+++ b/nixpkgs/pkgs/by-name/t-/t-rex/package.nix
@@ -1,21 +1,22 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, gdal, openssl, Security }:
+{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, gdal, openssl, darwin }:
 
 rustPlatform.buildRustPackage rec {
   pname = "t-rex";
-  version = "0.14.3";
+  version = "0.15.0-alpha3";
 
   src = fetchFromGitHub {
     owner = "t-rex-tileserver";
-    repo = pname;
+    repo = "t-rex";
     rev = "v${version}";
-    hash = "sha256-LUVk5li2cl/LKbhKOh6Bbwav0GEuI/vUbDPLn7NSRIs=";
+    hash = "sha256-oZZrR86/acoyMX3vC1JGrpc8G+DEuplqfEAnaP+TBGU=";
   };
 
-  cargoHash = "sha256-I4QmjTTKUp9iugEwzM0xCcNLvF5ozeBdYmbi8sytY88=";
+  cargoHash = "sha256-nxq4mX2Sy6Hyi8tA2CQsQwISB/kau4DEkAgIm4SvGns=";
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
 
-  buildInputs = [ gdal openssl ] ++ lib.optional stdenv.isDarwin Security;
+  buildInputs = [ gdal openssl ]
+    ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
 
   meta = with lib; {
     description = "Vector tile server specialized on publishing MVT tiles";
@@ -25,6 +26,5 @@ rustPlatform.buildRustPackage rec {
     maintainers = teams.geospatial.members;
     mainProgram = "t_rex";
     platforms = platforms.unix;
-    broken = true;  # https://github.com/t-rex-tileserver/t-rex/issues/302
   };
 }
diff --git a/nixpkgs/pkgs/by-name/ta/tabby/package.nix b/nixpkgs/pkgs/by-name/ta/tabby/package.nix
index fa52d372ab9a..e1d216f44b7b 100644
--- a/nixpkgs/pkgs/by-name/ta/tabby/package.nix
+++ b/nixpkgs/pkgs/by-name/ta/tabby/package.nix
@@ -97,8 +97,6 @@ let
   cudaBuildInputs = [ llamaccpPackage ];
   rocmBuildInputs = [ llamaccpPackage ];
 
-  LLAMA_CPP_LIB = "${llamaccpPackage.outPath}/lib";
-
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -139,7 +137,7 @@ rustPlatform.buildRustPackage {
   ] ++ optionals enableCuda [
     # TODO: Replace with autoAddDriverRunpath
     # once https://github.com/NixOS/nixpkgs/pull/275241 has been merged
-    cudaPackages.autoAddOpenGLRunpathHook
+    cudaPackages.autoAddDriverRunpath
   ];
 
   buildInputs = [ openssl ]
@@ -148,11 +146,7 @@ rustPlatform.buildRustPackage {
   ++ optionals enableRocm rocmBuildInputs
   ;
 
-  env = lib.mergeAttrsList [
-    { inherit LLAMA_CPP_LIB; }
-    # Work around https://github.com/NixOS/nixpkgs/issues/166205
-    (lib.optionalAttrs stdenv.cc.isClang { NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}"; })
-  ];
+  env.LLAMA_CPP_LIB = "${lib.getLib llamaccpPackage}/lib";
   patches = [ ./0001-nix-build-use-nix-native-llama-cpp-package.patch ];
 
   # Fails with:
diff --git a/nixpkgs/pkgs/by-name/ta/tana/package.nix b/nixpkgs/pkgs/by-name/ta/tana/package.nix
new file mode 100644
index 000000000000..0034f72725c6
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ta/tana/package.nix
@@ -0,0 +1,111 @@
+{ libX11
+, libxcb
+, libXcomposite
+, libXdamage
+, libXext
+, libXfixes
+, libXrandr
+, stdenv
+, lib
+, alsa-lib
+, at-spi2-atk
+, atkmm
+, cairo
+, cups
+, dbus
+, expat
+, glib
+, gtk3
+, libdrm
+, libglvnd
+, libxkbcommon
+, mesa
+, nspr
+, nss
+, pango
+, systemd
+, fetchurl
+, autoPatchelfHook
+, dpkg
+}:
+let
+  glLibs = [ libglvnd mesa ];
+  libs = [
+    alsa-lib
+    atkmm
+    at-spi2-atk
+    cairo
+    cups
+    dbus
+    expat
+    glib
+    gtk3
+    libdrm
+    libX11
+    libxcb
+    libXcomposite
+    libXdamage
+    libXext
+    libXfixes
+    libxkbcommon
+    libXrandr
+    nspr
+    nss
+    pango
+  ];
+  buildInputs = glLibs ++ libs;
+  runpathPackages = glLibs ++ [ stdenv.cc.cc stdenv.cc.libc ];
+  version = "1.0.15";
+in
+stdenv.mkDerivation {
+  pname = "tana";
+  inherit version buildInputs;
+
+  src = fetchurl {
+    url = "https://github.com/tanainc/tana-desktop-releases/releases/download/v${version}/tana_${version}_amd64.deb";
+    hash = "sha256-94AyAwNFN5FCol97US1Pv8IN1+WMRA3St9kL2w+9FJU=";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+  ];
+
+  appendRunpaths = map (pkg: "${lib.getLib pkg}/lib") runpathPackages ++ [ "${placeholder "out"}/lib/tana" ];
+
+  # Needed for Zygote
+  runtimeDependencies = [
+    systemd
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out
+    cp -r usr/* $out
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    substituteInPlace $out/share/applications/tana.desktop \
+      --replace "Exec=tana" "Exec=$out/bin/tana" \
+      --replace "Name=tana" "Name=Tana"
+  '';
+
+  meta = with lib; {
+    description = "Tana is an intelligent all-in-one workspace";
+    longDescription = ''
+      At its core, Tana is an outline editor which can be extended to
+      cover multiple use-cases and different workflows.
+      For individuals, it supports GTD, P.A.R.A., Zettelkasten note-taking
+      out of the box. Teams can leverage the powerful project management
+      views, like Kanban.
+      To complete all, a powerful AI system is integrated to help with most
+      of the tasks.
+    '';
+    homepage = "https://tana.inc";
+    license = licenses.unfree;
+    maintainers = [ maintainers.massimogengarelli ];
+    platforms = platforms.linux;
+    mainProgram = "tana";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/tc/tcsh/package.nix b/nixpkgs/pkgs/by-name/tc/tcsh/package.nix
index 4fa358fbb7c3..abc58430f2e6 100644
--- a/nixpkgs/pkgs/by-name/tc/tcsh/package.nix
+++ b/nixpkgs/pkgs/by-name/tc/tcsh/package.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tcsh";
-  version = "6.24.10";
+  version = "6.24.11";
 
   src = fetchurl {
     url = "mirror://tcsh/tcsh-${finalAttrs.version}.tar.gz";
-    hash = "sha256-E0dcD763QTnTPteTvwD/u7KsLcn7HURGekEHYKujZmQ=";
+    hash = "sha256-tae2J6uz7y6NOoabtnXQ6SfYUHBER6Gyx3lGwNMkeZ0=";
   };
 
   strictDeps = true;
@@ -31,6 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://www.tcsh.org/";
     description = "An enhanced version of the Berkeley UNIX C shell (csh)";
+    mainProgram = "tcsh";
     longDescription = ''
       tcsh is an enhanced but completely compatible version of the Berkeley UNIX
       C shell, csh. It is a command language interpreter usable both as an
diff --git a/nixpkgs/pkgs/by-name/te/technitium-dns-server/package.nix b/nixpkgs/pkgs/by-name/te/technitium-dns-server/package.nix
new file mode 100644
index 000000000000..774326ae9d1f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/te/technitium-dns-server/package.nix
@@ -0,0 +1,47 @@
+{
+  lib,
+  stdenvNoCC,
+  fetchurl,
+  makeWrapper,
+  dotnet-sdk_8,
+}:
+stdenvNoCC.mkDerivation rec {
+  pname = "technitium-dns-server";
+  version = "12.1";
+
+  src = fetchurl {
+    url = "https://download.technitium.com/dns/archive/${version}/DnsServerPortable.tar.gz";
+    hash = "sha256-G0M2xuYBZA3XXXaPs4pLrJmzAMbVJhiqISAvuCw3iZo=";
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,share/${pname}-${version}}
+    cp -r * $out/share/${pname}-${version}/.
+    rm $out/share/${pname}-${version}/start.{sh,bat}
+    rm $out/share/${pname}-${version}/DnsServerApp.exe
+    rm $out/share/${pname}-${version}/env-vars
+    # Remove systemd.service in favor of a separate module (including firewall configuration).
+    rm $out/share/${pname}-${version}/systemd.service
+
+    makeWrapper "${dotnet-sdk_8}/bin/dotnet" $out/bin/technitium-dns-server \
+      --add-flags "$out/share/${pname}-${version}/DnsServerApp.dll"
+
+    runHook postInstall
+  '';
+
+  meta = {
+    changelog = "https://github.com/TechnitiumSoftware/DnsServer/blob/master/CHANGELOG.md";
+    description = "Authorative and Recursive DNS server for Privacy and Security";
+    homepage = "https://github.com/TechnitiumSoftware/DnsServer";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "technitium-dns-server";
+    maintainers = with lib.maintainers; [ fabianrig ];
+    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/te/tenki/package.nix b/nixpkgs/pkgs/by-name/te/tenki/package.nix
index e00d27eca21c..35ee53a41376 100644
--- a/nixpkgs/pkgs/by-name/te/tenki/package.nix
+++ b/nixpkgs/pkgs/by-name/te/tenki/package.nix
@@ -4,16 +4,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "tenki";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "ckaznable";
     repo = "tenki";
     rev = "v${version}";
-    hash = "sha256-64yNMO+Tm8APF2NnygQuub4z7kCxxf+T1urgA4Qs104=";
+    hash = "sha256-X/GnOgxwBhkrdhUmEhyxdgk5ElayMOAmtDxR2cqRJc8=";
   };
 
-  cargoHash = "sha256-R6Bfk3kW8721Q++dSY4u7AbUukBT0PODfFXsXuugWdk=";
+  cargoHash = "sha256-rmMUVZwNouUvFFPgZfbR4sgtig5zx1WC3bxnfPPT3yQ=";
 
   meta = with lib; {
     description = "tty-clock with weather effect";
diff --git a/nixpkgs/pkgs/by-name/te/tenv/package.nix b/nixpkgs/pkgs/by-name/te/tenv/package.nix
new file mode 100644
index 000000000000..f33bc31e683f
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/te/tenv/package.nix
@@ -0,0 +1,46 @@
+{ buildGoModule, fetchFromGitHub, installShellFiles, lib, tenv, testers }:
+
+buildGoModule rec {
+  pname = "tenv";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "tofuutils";
+    repo = "tenv";
+    rev = "v${version}";
+    hash = "sha256-yLNdBwKF6Jts661P+YZhFGNr71TG7Scb6RGvFxTLqYQ=";
+  };
+
+  vendorHash = "sha256-GGWiP1rIDF6qxST2ZmnKNkgbS+15hxaCs1d1+UEiYgU=";
+
+  # Tests disabled for requiring network access to release.hashicorp.com
+  doCheck = false;
+
+  ldflags = [
+    "-s" "-w"
+    "-X main.version=v${version}"
+  ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installShellCompletion --cmd tenv \
+      --zsh <($out/bin/tenv completion zsh) \
+      --bash <($out/bin/tenv completion bash) \
+      --fish <($out/bin/tenv completion fish)
+  '';
+
+  passthru.tests.version = testers.testVersion {
+    command = "HOME=$TMPDIR tenv --version";
+    package = tenv;
+    version = "v${version}";
+  };
+
+  meta = {
+    changelog = "https://github.com/tofuutils/tenv/releases/tag/v${version}";
+    description = "A version manager for OpenTofu, Terraform and Terragrunt written in Go";
+    homepage = "https://github.com/tofuutils/tenv";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ rmgpinto ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/tgpt/default.nix b/nixpkgs/pkgs/by-name/tg/tgpt/package.nix
index cf100e5d33fd..d63ff34c21d3 100644
--- a/nixpkgs/pkgs/tools/misc/tgpt/default.nix
+++ b/nixpkgs/pkgs/by-name/tg/tgpt/package.nix
@@ -5,22 +5,27 @@
 
 buildGoModule rec {
   pname = "tgpt";
-  version = "2.0.4";
+  version = "2.7.2";
 
   src = fetchFromGitHub {
     owner = "aandrew-me";
     repo = "tgpt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+5hNcemVVuCX1FCL6U9SoJ/Jsef9exQXQFCdPj8qhCk=";
+    hash = "sha256-FbnweHiKfxqFegZnRlvdVbTmH4ImjddVOBlbGRT/SGw=";
   };
 
-  vendorHash = "sha256-HXpSoihk0s218DVCHe9VCGLBggWY8I25sw2qSaiUz4I=";
+  vendorHash = "sha256-docq/r6yyMPsuUyFbtCMaYfEVL0gLmyTy4PbrAemR00=";
 
   ldflags = [
     "-s"
     "-w"
   ];
 
+  preCheck = ''
+    # Remove test which need network access
+    rm providers/koboldai/koboldai_test.go
+  '';
+
   meta = with lib; {
     description = "ChatGPT in terminal without needing API keys";
     homepage = "https://github.com/aandrew-me/tgpt";
diff --git a/nixpkgs/pkgs/by-name/ti/tigerbeetle/package.nix b/nixpkgs/pkgs/by-name/ti/tigerbeetle/package.nix
index dff6b847fd12..80bc95123362 100644
--- a/nixpkgs/pkgs/by-name/ti/tigerbeetle/package.nix
+++ b/nixpkgs/pkgs/by-name/ti/tigerbeetle/package.nix
@@ -14,21 +14,22 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "tigerbeetle";
-  version = "0.14.183";
+  version = "0.15.3";
 
   src = fetchFromGitHub {
     owner = "tigerbeetle";
     repo = "tigerbeetle";
     rev = "refs/tags/${finalAttrs.version}";
-    hash = "sha256-vyxuzSTwaXrQKVErxiwxjOQWUnHQMEl+PQGd/HU+noc=";
+    hash = "sha256-3+uCMoOnyvI//ltEaqTIXytUxxgJrfMnFly11WCh66Q=";
   };
 
+  env.TIGERBEETLE_RELEASE = finalAttrs.version;
+
   nativeBuildInputs = [ custom_zig_hook ];
 
   zigBuildFlags = [
     "-Drelease"
     "-Dgit-commit=0000000000000000000000000000000000000000"
-    "-Dversion=${finalAttrs.version}"
   ];
 
   passthru = {
diff --git a/nixpkgs/pkgs/by-name/ti/tilda/package.nix b/nixpkgs/pkgs/by-name/ti/tilda/package.nix
index 000088efa5c0..cda946d04ecf 100644
--- a/nixpkgs/pkgs/by-name/ti/tilda/package.nix
+++ b/nixpkgs/pkgs/by-name/ti/tilda/package.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://github.com/lanoxx/tilda/";
     description = "A Gtk based drop down terminal for Linux and Unix";
+    mainProgram = "tilda";
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.AndersonTorres ];
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/applications/misc/tilemaker/default.nix b/nixpkgs/pkgs/by-name/ti/tilemaker/package.nix
index af4944ea8ba1..6a06e17f1fdd 100644
--- a/nixpkgs/pkgs/applications/misc/tilemaker/default.nix
+++ b/nixpkgs/pkgs/by-name/ti/tilemaker/package.nix
@@ -1,5 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, buildPackages, cmake, installShellFiles
-, boost, lua, protobuf, rapidjson, shapelib, sqlite, zlib, testers }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, buildPackages
+, cmake
+, installShellFiles
+, boost
+, lua
+, protobuf_21
+, rapidjson
+, shapelib
+, sqlite
+, zlib
+, testers
+}:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tilemaker";
@@ -13,23 +26,26 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   postPatch = ''
-    substituteInPlace src/tilemaker.cpp \
-      --replace "config.json" "$out/share/tilemaker/config-openmaptiles.json" \
-      --replace "process.lua" "$out/share/tilemaker/process-openmaptiles.lua"
+    substituteInPlace src/options_parser.cpp \
+      --replace-fail "config.json" "$out/share/tilemaker/config-openmaptiles.json" \
+      --replace-fail "process.lua" "$out/share/tilemaker/process-openmaptiles.lua"
+    substituteInPlace server/server.cpp \
+      --replace-fail "default_value(\"static\")" "default_value(\"$out/share/tilemaker/static\")"
   '';
 
   nativeBuildInputs = [ cmake installShellFiles ];
 
-  buildInputs = [ boost lua protobuf rapidjson shapelib sqlite zlib ];
+  buildInputs = [ boost lua protobuf_21 rapidjson shapelib sqlite zlib ];
 
   cmakeFlags = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
-    "-DPROTOBUF_PROTOC_EXECUTABLE=${buildPackages.protobuf}/bin/protoc";
+    (lib.cmakeFeature "PROTOBUF_PROTOC_EXECUTABLE" "${buildPackages.protobuf}/bin/protoc");
 
   env.NIX_CFLAGS_COMPILE = toString [ "-DTM_VERSION=${finalAttrs.version}" ];
 
   postInstall = ''
     installManPage ../docs/man/tilemaker.1
-    install -Dm644 ../resources/* -t $out/share/tilemaker
+    install -Dm644 ../resources/*.{json,lua} -t $out/share/tilemaker
+    cp -r ../server/static $out/share/tilemaker
   '';
 
   passthru.tests.version = testers.testVersion {
@@ -44,5 +60,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.free; # FTWPL
     maintainers = with maintainers; [ sikmir ];
     platforms = platforms.unix;
+    mainProgram = "tilemaker";
   };
 })
diff --git a/nixpkgs/pkgs/by-name/ti/tippecanoe/package.nix b/nixpkgs/pkgs/by-name/ti/tippecanoe/package.nix
index 056391f5119e..07fd64f96831 100644
--- a/nixpkgs/pkgs/by-name/ti/tippecanoe/package.nix
+++ b/nixpkgs/pkgs/by-name/ti/tippecanoe/package.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tippecanoe";
-  version = "2.49.0";
+  version = "2.52.0";
 
   src = fetchFromGitHub {
     owner = "felt";
     repo = "tippecanoe";
     rev = finalAttrs.version;
-    hash = "sha256-Wu6TSld/mxCb4CFXf2oIZpDvX/j3Ujm7Vli4kp04u7c=";
+    hash = "sha256-EXutd+uaMtvs+fWmDIIzuVC8Q+Eo439TEYiMfo+Inco=";
   };
 
   buildInputs = [ sqlite zlib ];
diff --git a/nixpkgs/pkgs/by-name/to/torrentstream/package.nix b/nixpkgs/pkgs/by-name/to/torrentstream/package.nix
index 44a92c7d850a..b59c17dd59c6 100644
--- a/nixpkgs/pkgs/by-name/to/torrentstream/package.nix
+++ b/nixpkgs/pkgs/by-name/to/torrentstream/package.nix
@@ -16,7 +16,7 @@ buildDotnetModule rec {
     hash = "sha256-41zlzrQ+YGY2wEvq4Su/lp6lOmGW4u0F37ub2a3z+7o=";
   };
 
-  sourceRoot = "source/src";
+  sourceRoot = "${src.name}/src";
 
   projectFile = "TorrentStream.sln";
   nugetDeps = ./deps.nix;
diff --git a/nixpkgs/pkgs/by-name/tp/tpnote/package.nix b/nixpkgs/pkgs/by-name/tp/tpnote/package.nix
new file mode 100644
index 000000000000..b1b61f0c8f5d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/tp/tpnote/package.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, rustPlatform
+, cmake
+, pkg-config
+, oniguruma
+, darwin
+, installShellFiles
+, tpnote
+, testers
+}:
+
+
+rustPlatform.buildRustPackage rec {
+  pname = "tpnote";
+  version = "1.23.10";
+
+  src = fetchFromGitHub {
+    owner = "getreu";
+    repo = "tp-note";
+    rev = "v${version}";
+    hash = "sha256-HOCd5N8oS8N+9alR3cG7IEghvhvcc8A+O24L6FD1F38=";
+  };
+
+  cargoHash = "sha256-hI9vzPLcMaFSQpPgIf39UsWDpdHAmQ56D8pSWZ/R1aI=";
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    installShellFiles
+  ];
+  buildInputs = [
+    oniguruma
+  ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+     AppKit
+     CoreServices
+     SystemConfiguration
+  ]);
+
+  RUSTONIG_SYSTEM_LIBONIG = true;
+
+  passthru.tests.version = testers.testVersion { package = tpnote; };
+
+  # The `tpnote` crate has no unit tests. All tests are in `tpnote-lib`.
+  checkType = "debug";
+  cargoTestFlags = "--package tpnote-lib";
+  doCheck = true;
+
+  meta = {
+    changelog = "https://github.com/getreu/tp-note/releases/tag/v${version}";
+    description = "Markup enhanced granular note-taking";
+    homepage = "https://blog.getreu.net/projects/tp-note/";
+    license = lib.licenses.mit;
+    mainProgram = "tpnote";
+    maintainers = with lib.maintainers; [ getreu ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/tr/treedome/Cargo.lock b/nixpkgs/pkgs/by-name/tr/treedome/Cargo.lock
index 7d0c30b1026a..b4d9b1d5a7fc 100644
--- a/nixpkgs/pkgs/by-name/tr/treedome/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/tr/treedome/Cargo.lock
@@ -29,9 +29,9 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.8.7"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if",
  "getrandom 0.2.12",
@@ -87,9 +87,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.79"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
 
 [[package]]
 name = "arrayvec"
@@ -105,7 +105,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -143,9 +143,9 @@ dependencies = [
 
 [[package]]
 name = "atomic-write-file"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436"
+checksum = "a8204db279bf648d64fe845bd8840f78b39c8132ed4d6a4194c3b10d4b4cfb0b"
 dependencies = [
  "nix",
  "rand 0.8.5",
@@ -258,9 +258,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.9.0"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
 dependencies = [
  "memchr",
  "serde",
@@ -268,15 +268,15 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.1"
+version = "1.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed2490600f404f2b94c167e31d3ed1d5f3c225a0f3b80230053b3e0b7b962bd9"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
 
 [[package]]
 name = "byteorder"
@@ -326,12 +326,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 
 [[package]]
 name = "cesu8"
@@ -361,9 +358,9 @@ dependencies = [
 
 [[package]]
 name = "cfg-expr"
-version = "0.15.6"
+version = "0.15.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6100bc57b6209840798d95cb2775684849d332f7bd788db2a8c8caf7ef82a41a"
+checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -376,6 +373,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
 name = "chacha20"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -401,15 +404,15 @@ dependencies = [
 
 [[package]]
 name = "chrono"
-version = "0.4.33"
+version = "0.4.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "num-traits",
  "serde",
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -574,18 +577,18 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
 
 [[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",
 ]
@@ -665,17 +668,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
 dependencies = [
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "ctor"
-version = "0.2.6"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
+checksum = "ad291aa74992b9b7a7e88c38acbbf6ad7e107f1d90ee8775b7bc1fc3394f485c"
 dependencies = [
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -690,12 +693,12 @@ dependencies = [
 
 [[package]]
 name = "darling"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
 dependencies = [
- "darling_core 0.20.3",
- "darling_macro 0.20.3",
+ "darling_core 0.20.8",
+ "darling_macro 0.20.8",
 ]
 
 [[package]]
@@ -714,16 +717,16 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -739,13 +742,13 @@ dependencies = [
 
 [[package]]
 name = "darling_macro"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
 dependencies = [
- "darling_core 0.20.3",
+ "darling_core 0.20.8",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -894,23 +897,23 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "embed-resource"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bde55e389bea6a966bd467ad1ad7da0ae14546a5bc794d16d1e55e7fca44881"
+checksum = "c6985554d0688b687c5cb73898a34fbe3ad6c24c58c238a4d91d5e840670ee9d"
 dependencies = [
  "cc",
  "memchr",
  "rustc_version",
- "toml 0.8.8",
+ "toml 0.8.10",
  "vswhom",
  "winreg",
 ]
@@ -991,7 +994,7 @@ checksum = "ce8cd46a041ad005ab9c71263f9a0ff5b529eac0fe4cc9b4a20f4f0765d8cf4b"
 dependencies = [
  "execute-command-tokens",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1190,7 +1193,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1468,7 +1471,7 @@ dependencies = [
  "aho-corasick",
  "bstr",
  "log",
- "regex-automata 0.4.5",
+ "regex-automata 0.4.6",
  "regex-syntax 0.8.2",
 ]
 
@@ -1540,9 +1543,9 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "2.3.1"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
 dependencies = [
  "cfg-if",
  "crunchy",
@@ -1593,9 +1596,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.4"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -1646,9 +1649,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
 dependencies = [
  "bytes",
  "fnv",
@@ -1663,9 +1666,9 @@ checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573"
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.59"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -1720,7 +1723,7 @@ dependencies = [
  "globset",
  "log",
  "memchr",
- "regex-automata 0.4.5",
+ "regex-automata 0.4.6",
  "same-file",
  "walkdir",
  "winapi-util",
@@ -1728,9 +1731,9 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.8"
+version = "0.24.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
@@ -1751,9 +1754,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -1798,9 +1801,9 @@ dependencies = [
 
 [[package]]
 name = "itertools"
-version = "0.12.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
 dependencies = [
  "either",
 ]
@@ -1862,9 +1865,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
 name = "js-sys"
-version = "0.3.67"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1905,9 +1908,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.152"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libm"
@@ -1964,9 +1967,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 = "loom"
@@ -2060,9 +2063,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -2070,9 +2073,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "wasi 0.11.0+wasi-snapshot-preview1",
@@ -2115,12 +2118,13 @@ checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
 
 [[package]]
 name = "nix"
-version = "0.27.1"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
 dependencies = [
  "bitflags 2.4.2",
  "cfg-if",
+ "cfg_aliases",
  "libc",
 ]
 
@@ -2168,20 +2172,25 @@ dependencies = [
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
 name = "num-integer"
-version = "0.1.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
 [[package]]
 name = "num-iter"
-version = "0.1.43"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -2190,9 +2199,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
  "libm",
@@ -2230,6 +2239,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "num_threads"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "objc"
 version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2285,9 +2303,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "opaque-debug"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
 
 [[package]]
 name = "open"
@@ -2516,7 +2534,7 @@ dependencies = [
  "phf_shared 0.11.2",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2581,9 +2599,9 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "plist"
@@ -2592,7 +2610,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
 dependencies = [
  "base64 0.21.7",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "line-wrap",
  "quick-xml",
  "serde",
@@ -2601,9 +2619,9 @@ dependencies = [
 
 [[package]]
 name = "png"
-version = "0.17.11"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -2803,9 +2821,9 @@ checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
 
 [[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",
@@ -2849,7 +2867,7 @@ checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.4.5",
+ "regex-automata 0.4.6",
  "regex-syntax 0.8.2",
 ]
 
@@ -2864,9 +2882,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",
@@ -2946,9 +2964,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.30"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
  "bitflags 2.4.2",
  "errno",
@@ -2965,9 +2983,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "safemem"
@@ -3039,39 +3057,40 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.21"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde"
-version = "1.0.196"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.196"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.112"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d1bd37ce2324cf3bf85e5a25f96eb4baf0d5aa6eba43e7ae8958870c4ec48ed"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
+ "indexmap 2.2.5",
  "itoa 1.0.10",
  "ryu",
  "serde",
@@ -3085,7 +3104,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3099,16 +3118,17 @@ dependencies = [
 
 [[package]]
 name = "serde_with"
-version = "3.5.1"
+version = "3.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5c9fdb6b00a489875b22efd4b78fe2b363b72265cc5f6eb2e2b9ee270e6140c"
+checksum = "15d167997bd841ec232f5b2b8e0e26606df2e7caa4c31b95ea9ca52b200bd270"
 dependencies = [
  "base64 0.21.7",
  "chrono",
  "hex",
  "indexmap 1.9.3",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "serde",
+ "serde_derive",
  "serde_json",
  "serde_with_macros",
  "time",
@@ -3116,14 +3136,14 @@ dependencies = [
 
 [[package]]
 name = "serde_with_macros"
-version = "3.5.1"
+version = "3.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbff351eb4b33600a2e138dfa0b10b65a238ea8ff8fb2387c422c5022a3e8298"
+checksum = "865f9743393e638991566a8b7a479043c2c8da94a33e0a31f18214c9cae0a64d"
 dependencies = [
- "darling 0.20.3",
+ "darling 0.20.8",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3148,7 +3168,7 @@ checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3253,12 +3273,12 @@ checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3320,7 +3340,7 @@ version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c"
 dependencies = [
- "itertools 0.12.0",
+ "itertools 0.12.1",
  "nom",
  "unicode_categories",
 ]
@@ -3360,7 +3380,7 @@ dependencies = [
  "futures-util",
  "hashlink",
  "hex",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "log",
  "memchr",
  "once_cell",
@@ -3607,9 +3627,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3648,10 +3668,10 @@ version = "6.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331"
 dependencies = [
- "cfg-expr 0.15.6",
+ "cfg-expr 0.15.7",
  "heck 0.4.1",
  "pkg-config",
- "toml 0.8.8",
+ "toml 0.8.10",
  "version-compare 0.1.1",
 ]
 
@@ -3726,19 +3746,20 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.13"
+version = "0.12.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "tauri"
-version = "1.5.4"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd27c04b9543776a972c86ccf70660b517ecabbeced9fb58d8b961a13ad129af"
+checksum = "f078117725e36d55d29fafcbb4b1e909073807ca328ae8deb8c0b3843aac0fed"
 dependencies = [
  "anyhow",
  "cocoa",
  "dirs-next",
+ "dunce",
  "embed_plist",
  "encoding_rs",
  "flate2",
@@ -3862,9 +3883,9 @@ dependencies = [
 
 [[package]]
 name = "tauri-runtime-wry"
-version = "0.14.3"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6cae61fbc731f690a4899681c9052dde6d05b159b44563ace8186fc1bfb7d158"
+checksum = "067c56fc153b3caf406d7cd6de4486c80d1d66c0f414f39e94cb2f5543f6445f"
 dependencies = [
  "cocoa",
  "gtk",
@@ -3882,9 +3903,9 @@ dependencies = [
 
 [[package]]
 name = "tauri-utils"
-version = "1.5.2"
+version = "1.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ece74810b1d3d44f29f732a7ae09a63183d63949bbdd59c61f8ed2a1b70150db"
+checksum = "75ad0bbb31fccd1f4c56275d0a5c3abdf1f59999f72cb4ef8b79b4ed42082a21"
 dependencies = [
  "brotli",
  "ctor",
@@ -3922,13 +3943,12 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.9.0"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand",
- "redox_syscall",
  "rustix",
  "windows-sys 0.52.0",
 ]
@@ -3952,29 +3972,29 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
 
 [[package]]
 name = "thiserror"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -3982,12 +4002,15 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.31"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
  "deranged",
  "itoa 1.0.10",
+ "libc",
+ "num-conv",
+ "num_threads",
  "powerfmt",
  "serde",
  "time-core",
@@ -4002,10 +4025,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
@@ -4036,9 +4060,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.35.1"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
  "backtrace",
  "bytes",
@@ -4084,14 +4108,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.21.0",
+ "toml_edit 0.22.6",
 ]
 
 [[package]]
@@ -4109,24 +4133,24 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.40",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.21.0"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.5",
 ]
 
 [[package]]
@@ -4149,7 +4173,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -4193,9 +4217,9 @@ dependencies = [
 
 [[package]]
 name = "treediff"
-version = "4.0.2"
+version = "4.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52984d277bdf2a751072b5df30ec0377febdb02f7696d64c2d7d54630bac4303"
+checksum = "4d127780145176e2b5d16611cc25a900150e86e9fd79d3bde6ff3a37359c9cb5"
 dependencies = [
  "serde_json",
 ]
@@ -4224,6 +4248,7 @@ dependencies = [
  "tracing",
  "tracing-subscriber",
  "uuid",
+ "vergen",
  "zxcvbn",
 ]
 
@@ -4247,18 +4272,18 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode_categories"
@@ -4328,6 +4353,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
 
 [[package]]
+name = "vergen"
+version = "8.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e27d6bdd219887a9eadd19e1c34f32e47fa332301184935c6d9bca26f3cca525"
+dependencies = [
+ "anyhow",
+ "cfg-if",
+ "rustversion",
+ "time",
+]
+
+[[package]]
 name = "version-compare"
 version = "0.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4388,9 +4425,9 @@ dependencies = [
 
 [[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",
@@ -4409,10 +4446,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
+name = "wasite"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
+
+[[package]]
 name = "wasm-bindgen"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -4420,24 +4463,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.40"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -4447,9 +4490,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -4457,28 +4500,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "web-sys"
-version = "0.3.67"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -4571,9 +4614,13 @@ dependencies = [
 
 [[package]]
 name = "whoami"
-version = "1.4.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50"
+checksum = "0fec781d48b41f8163426ed18e8fc2864c12937df9ce54c88ede7bd47270893e"
+dependencies = [
+ "redox_syscall",
+ "wasite",
+]
 
 [[package]]
 name = "winapi"
@@ -4658,7 +4705,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -4716,7 +4763,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -4751,17 +4798,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -4776,7 +4823,7 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -4793,9 +4840,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -4823,9 +4870,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -4853,9 +4900,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -4883,9 +4930,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -4913,9 +4960,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -4931,9 +4978,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -4961,24 +5008,33 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
 name = "winnow"
-version = "0.5.35"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1931d78a9c73861da0134f453bb1f790ce49b2e30eba8410b4b79bac72b46a2d"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "winreg"
-version = "0.51.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "937f3df7948156640f46aacef17a70db0de5917bda9c92b0f751f3a955b588fc"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
 dependencies = [
  "cfg-if",
  "windows-sys 0.48.0",
@@ -5071,7 +5127,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
diff --git a/nixpkgs/pkgs/by-name/tr/treedome/package.json b/nixpkgs/pkgs/by-name/tr/treedome/package.json
index f0b05551614e..bc56e53d0266 100644
--- a/nixpkgs/pkgs/by-name/tr/treedome/package.json
+++ b/nixpkgs/pkgs/by-name/tr/treedome/package.json
@@ -12,6 +12,7 @@
     "prettier-format": "prettier --config .prettierrc 'src/**/*.ts*' --write"
   },
   "dependencies": {
+    "@column-resizer/react": "^1.3.0",
     "@emotion/react": "^11.11.1",
     "@emotion/styled": "^11.11.0",
     "@fontsource/noto-sans": "^5.0.8",
diff --git a/nixpkgs/pkgs/by-name/tr/treedome/package.nix b/nixpkgs/pkgs/by-name/tr/treedome/package.nix
index 98c2a5e7e1cd..a7752abf0fd6 100644
--- a/nixpkgs/pkgs/by-name/tr/treedome/package.nix
+++ b/nixpkgs/pkgs/by-name/tr/treedome/package.nix
@@ -19,12 +19,12 @@
 
 let
   pname = "treedome";
-  version = "0.4.2";
+  version = "0.4.3";
 
   src = fetchgit {
     url = "https://codeberg.org/solver-orgz/treedome";
     rev = version;
-    hash = "sha256-Ypc5+HXmpyMjJDQCyxYwauozaf4HkjcbpDZNGVGPW7o=";
+    hash = "sha256-FBzRsBoV3wnt2nu5WMnaTnBNC51jG120E0Orm55KhBg=";
     fetchLFS = true;
   };
 
@@ -34,7 +34,7 @@ let
 
     offlineCache = fetchYarnDeps {
       yarnLock = "${src}/yarn.lock";
-      hash = "sha256-nUOKN/0BTibRI66Do+iQUFy8NKkcaxFKr5AOtK3K13Q=";
+      hash = "sha256-CrD/n8z5fJKkBKEcvpRHJaqXBt1gbON7VsuLb2JGu1A=";
     };
 
     packageJSON = ./package.json;
@@ -77,6 +77,10 @@ rustPlatform.buildRustPackage {
     };
   };
 
+  env = {
+    VERGEN_GIT_DESCRIBE = version;
+  };
+
   preConfigure = ''
     mkdir -p dist
     cp -R ${frontend-build}/dist/** dist
@@ -135,9 +139,9 @@ rustPlatform.buildRustPackage {
   '';
 
   meta = with lib; {
-    description = "A local-first, encrypted, note taking application with tree-like structures, all written and saved in markdown";
+    description = "A local-first, encrypted, note taking application organized in tree-like structures";
     homepage = " https://codeberg.org/solver-orgz/treedome";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     platforms = [ "x86_64-linux" ];
     mainProgram = "treedome";
     maintainers = with maintainers; [ tengkuizdihar ];
diff --git a/nixpkgs/pkgs/by-name/tr/trexio/package.nix b/nixpkgs/pkgs/by-name/tr/trexio/package.nix
new file mode 100644
index 000000000000..2e61c9f41ea5
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/tr/trexio/package.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, gfortran
+, hdf5
+, python3
+, emacs
+, swig
+}:
+
+stdenv.mkDerivation rec {
+  pname = "trexio";
+  version = "2.4.2";
+
+  src = fetchFromGitHub {
+    owner = "TREX-CoE";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-SE5cylLThpwDWyAcQZgawcdYGc/8iiIwL6EyQ+hOIYY=";
+  };
+
+  postPatch = ''
+    patchShebangs tools/*
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    gfortran
+    emacs
+    swig
+    python3
+  ];
+
+  buildInputs = [
+    hdf5
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "File format and library for the storage of quantum chemical wave functions";
+    homepage = "https://trex-coe.github.io/trexio/";
+    downloadPage = "https://github.com/TREX-CoE/trexio";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sheepforce ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/tr/tridactyl-native/package.nix b/nixpkgs/pkgs/by-name/tr/tridactyl-native/package.nix
index af5cbe191126..e8f9394c896d 100644
--- a/nixpkgs/pkgs/by-name/tr/tridactyl-native/package.nix
+++ b/nixpkgs/pkgs/by-name/tr/tridactyl-native/package.nix
@@ -22,6 +22,7 @@ buildNimPackage {
   meta = with lib; {
     description =
       "Native messenger for Tridactyl, a vim-like Firefox webextension";
+    mainProgram = "native_main";
     homepage = "https://github.com/tridactyl/native_messenger";
     license = licenses.bsd2;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/by-name/tr/trunk-ng/package.nix b/nixpkgs/pkgs/by-name/tr/trunk-ng/package.nix
index 6ef55446de55..2759b8f4f921 100644
--- a/nixpkgs/pkgs/by-name/tr/trunk-ng/package.nix
+++ b/nixpkgs/pkgs/by-name/tr/trunk-ng/package.nix
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://github.com/ctron/trunk";
     description = "Build, bundle & ship your Rust WASM application to the web";
+    mainProgram = "trunk-ng";
     maintainers = with maintainers; [ ctron ];
     license = with licenses; [ asl20 ];
   };
diff --git a/nixpkgs/pkgs/by-name/tu/tup/package.nix b/nixpkgs/pkgs/by-name/tu/tup/package.nix
index 902508129cb2..269ee96f1a73 100644
--- a/nixpkgs/pkgs/by-name/tu/tup/package.nix
+++ b/nixpkgs/pkgs/by-name/tu/tup/package.nix
@@ -58,6 +58,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A fast, file-based build system";
+    mainProgram = "tup";
     longDescription = ''
       Tup is a file-based build system for Linux, OSX, and Windows. It inputs a list
       of file changes and a directed acyclic graph (DAG), then processes the DAG to
diff --git a/nixpkgs/pkgs/by-name/tx/txr/package.nix b/nixpkgs/pkgs/by-name/tx/txr/package.nix
index 1293ab53b4cf..c4ef407a975c 100644
--- a/nixpkgs/pkgs/by-name/tx/txr/package.nix
+++ b/nixpkgs/pkgs/by-name/tx/txr/package.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "txr";
-  version = "293";
+  version = "294";
 
   src = fetchurl {
     url = "https://www.kylheku.com/cgit/txr/snapshot/txr-${finalAttrs.version}.tar.bz2";
-    hash = "sha256-b8Ia5zMvmPl681rTyhgI0AQ8TIU4TE5768/Oln42+lw=";
+    hash = "sha256-QdkN4FwobGRPQNQGcHC62Wi5hwQqsgyLo9etYYEfqDc=";
   };
 
   buildInputs = [ libffi ];
diff --git a/nixpkgs/pkgs/by-name/ty/typos-lsp/package.nix b/nixpkgs/pkgs/by-name/ty/typos-lsp/package.nix
index 30aeb9e21493..b8ab8a97aac8 100644
--- a/nixpkgs/pkgs/by-name/ty/typos-lsp/package.nix
+++ b/nixpkgs/pkgs/by-name/ty/typos-lsp/package.nix
@@ -4,16 +4,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "typos-lsp";
-  version = "0.1.14";
+  version = "0.1.15";
 
   src = fetchFromGitHub {
     owner = "tekumara";
     repo = "typos-lsp";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eEBGas7RykUbeJDNEUGzW0i6MpocjgJhrMsCU+UrBVM=";
+    hash = "sha256-8mCK/NKik1zf6hqJN4pflDbtFALckHR/8AQborbOoHs=";
   };
 
-  cargoHash = "sha256-u9PW7HH+VUp1rIxtaOvTB3GYRPEkcbyCdI/HWsCRAU0=";
+  cargoHash = "sha256-aL7arYAiTpz9jy7Kh8u7OJmPMjayX4JiKoa7u8K0UiE=";
 
   # fix for compilation on aarch64
   # see https://github.com/NixOS/nixpkgs/issues/145726
diff --git a/nixpkgs/pkgs/by-name/ty/typst-preview/Cargo.lock b/nixpkgs/pkgs/by-name/ty/typst-preview/Cargo.lock
index 9cbb837c3305..be0ad75dc45a 100644
--- a/nixpkgs/pkgs/by-name/ty/typst-preview/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/ty/typst-preview/Cargo.lock
@@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "ahash"
-version = "0.7.7"
+version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
 dependencies = [
  "getrandom",
  "once_cell",
@@ -54,9 +54,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.11"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -68,9 +68,9 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.4"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
@@ -102,9 +102,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.79"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
 
 [[package]]
 name = "append-only-vec"
@@ -185,24 +185,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
+name = "base64"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
+
+[[package]]
 name = "base64-serde"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ba368df5de76a5bea49aaf0cf1b39ccfbbef176924d1ba5db3e4135216cbe3c7"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "serde",
 ]
 
 [[package]]
 name = "biblatex"
-version = "0.9.1"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a3638fc10f65e552d53318e042cefa542418633451163228fcbfb1a58a0ca85"
+checksum = "27fe7285040d0227cd8b5395e1c4783f44f0b673eca5a657f4432ae401f2b7b8"
 dependencies = [
  "numerals",
  "paste",
- "strum",
+ "strum 0.26.1",
  "unicode-normalization",
  "unscanny",
 ]
@@ -239,9 +245,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 dependencies = [
  "serde",
 ]
@@ -269,15 +275,15 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytecheck"
-version = "0.6.11"
+version = "0.6.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627"
+checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
 dependencies = [
  "bytecheck_derive",
  "ptr_meta",
@@ -286,9 +292,9 @@ dependencies = [
 
 [[package]]
 name = "bytecheck_derive"
-version = "0.6.11"
+version = "0.6.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61"
+checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -297,9 +303,9 @@ dependencies = [
 
 [[package]]
 name = "bytemuck"
-version = "1.14.0"
+version = "1.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
 
 [[package]]
 name = "byteorder"
@@ -314,10 +320,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
+name = "camino"
+version = "1.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo-platform"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo_metadata"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
+dependencies = [
+ "camino",
+ "cargo-platform",
+ "semver",
+ "serde",
+ "serde_json",
+ "thiserror",
+]
+
+[[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 dependencies = [
  "jobserver",
  "libc",
@@ -349,22 +387,22 @@ checksum = "7588475145507237ded760e52bf2f1085495245502033756d28ea72ade0e498b"
 
 [[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "num-traits",
  "serde",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
 name = "ciborium"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
 dependencies = [
  "ciborium-io",
  "ciborium-ll",
@@ -373,15 +411,15 @@ dependencies = [
 
 [[package]]
 name = "ciborium-io"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
 
 [[package]]
 name = "ciborium-ll"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
 dependencies = [
  "ciborium-io",
  "half",
@@ -389,19 +427,19 @@ dependencies = [
 
 [[package]]
 name = "citationberg"
-version = "0.1.1"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c15a0bf8014b266d11f20451dc9202d8d26180ffd8b094d73ecbe74d821f01fb"
+checksum = "82108f2b676c954076d2e5044f19a6a03887b24bd42804f322e0650d13035899"
 dependencies = [
- "quick-xml 0.28.2",
+ "quick-xml",
  "serde",
 ]
 
 [[package]]
 name = "clap"
-version = "4.4.16"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58e54881c004cec7895b0068a0a954cd5d62da01aef83fa35b1e594497bf5445"
+checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -409,48 +447,48 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.16"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59cb82d7f531603d2fd1f507441cdd35184fa81beff7bd489570de7f773460bb"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
  "anstream",
  "anstyle",
  "clap_lex",
- "strsim",
+ "strsim 0.11.0",
 ]
 
 [[package]]
 name = "clap_complete"
-version = "4.4.6"
+version = "4.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97aeaa95557bd02f23fbb662f981670c3d20c5a26e69f7354b28f57092437fcd"
+checksum = "885e4d7d5af40bfb99ae6f9433e292feac98d452dcb3ec3d25dfe7552b77da8c"
 dependencies = [
  "clap",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.4.7"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "clap_mangen"
-version = "0.2.17"
+version = "0.2.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a7c2b01e5e779c19f46a94bbd398f33ae63b0f78c07108351fb4536845bb7fd"
+checksum = "e1dd95b5ebb5c1c54581dd6346f3ed6a79a3eef95dd372fc2ac13d535535300e"
 dependencies = [
  "clap",
  "roff",
@@ -497,23 +535,25 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
 name = "comemo"
-version = "0.3.1"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf5705468fa80602ee6a5f9318306e6c428bffd53e43209a78bc05e6e667c6f4"
+checksum = "df6916408a724339aa77b18214233355f3eb04c42eb895e5f8909215bd8a7a91"
 dependencies = [
  "comemo-macros",
+ "once_cell",
+ "parking_lot",
  "siphasher 1.0.0",
 ]
 
 [[package]]
 name = "comemo-macros"
-version = "0.3.1"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54af6ac68ada2d161fa9cc1ab52676228e340866d094d6542107e74b82acc095"
+checksum = "c8936e42f9b4f5bdfaf23700609ac1f11cb03ad4c1ec128a4ee4fd0903e228db"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -552,18 +592,18 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
 
 [[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",
 ]
@@ -603,6 +643,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
 name = "crypto-common"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -645,12 +691,12 @@ dependencies = [
 
 [[package]]
 name = "darling"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
 dependencies = [
- "darling_core 0.20.3",
- "darling_macro 0.20.3",
+ "darling_core 0.20.8",
+ "darling_macro 0.20.8",
 ]
 
 [[package]]
@@ -663,22 +709,22 @@ dependencies = [
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim",
+ "strsim 0.10.0",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "darling_core"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
- "strsim",
- "syn 2.0.48",
+ "strsim 0.10.0",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -694,13 +740,13 @@ dependencies = [
 
 [[package]]
 name = "darling_macro"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
 dependencies = [
- "darling_core 0.20.3",
+ "darling_core 0.20.8",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -808,7 +854,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -825,18 +871,18 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
 [[package]]
 name = "ecow"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ea5e3f9cda726431da9d1a8d5a29785d544b31e98e1ca7a210906244002e02"
+checksum = "dba31a30727c42ff5e60468d695c7f21e43a6db2808b7195adcab908fbd9f794"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "elsa"
@@ -879,7 +925,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -894,9 +940,9 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.11.1"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05e7cf40684ae96ade6232ed84582f40ce0a66efcd43a5117aef610534f8e0b8"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
 dependencies = [
  "anstream",
  "anstyle",
@@ -945,9 +991,9 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "209098dd6dfc4445aa6111f0e98653ac323eaa4dfd212c9ca3931bf9955c31bd"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
@@ -997,22 +1043,22 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "fontconfig-parser"
-version = "0.5.3"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "674e258f4b5d2dcd63888c01c68413c51f565e8af99d2f7701c7b81d79ef41c4"
+checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d"
 dependencies = [
  "roxmltree",
 ]
 
 [[package]]
 name = "fontdb"
-version = "0.15.0"
+version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "020e203f177c0fb250fb19455a252e838d2bbbce1f80f25ecc42402aafa8cd38"
+checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3"
 dependencies = [
  "fontconfig-parser",
  "log",
- "memmap2 0.8.0",
+ "memmap2",
  "slotmap",
  "tinyvec",
  "ttf-parser",
@@ -1119,7 +1165,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1184,9 +1230,9 @@ dependencies = [
 
 [[package]]
 name = "gif"
-version = "0.12.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
+checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
 dependencies = [
  "color_quant",
  "weezl",
@@ -1200,11 +1246,11 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "git2"
-version = "0.18.1"
+version = "0.18.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbf97ba92db08df386e10c8ede66a2a0369bd277090afd8710e19e38de9ec0cd"
+checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "libgit2-sys",
  "log",
@@ -1213,17 +1259,17 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.23"
+version = "0.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b553656127a00601c8ae5590fcfdc118e4083a7924b6cf4ffc1ea4b99dc429d7"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
 dependencies = [
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
  "futures-util",
- "http 0.2.11",
- "indexmap 2.1.0",
+ "http 0.2.12",
+ "indexmap 2.2.5",
  "slab",
  "tokio",
  "tokio-util",
@@ -1232,9 +1278,13 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "1.8.2"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+]
 
 [[package]]
 name = "hashbrown"
@@ -1253,14 +1303,14 @@ checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "hayagriva"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9f97c07366b7f686741521ca63cc14baf18cea53c39b0c09873cd1d4a1b2b8c"
+checksum = "cc2e670de5191df083ddd112cd253049f8213277ccf0c15e18a8bf10e6c666cc"
 dependencies = [
  "biblatex",
  "ciborium",
  "citationberg",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "numerals",
  "paste",
  "serde",
@@ -1280,9 +1330,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -1292,9 +1342,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
 name = "http"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
 dependencies = [
  "bytes",
  "fnv",
@@ -1303,9 +1353,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
 dependencies = [
  "bytes",
  "fnv",
@@ -1319,7 +1369,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
- "http 0.2.11",
+ "http 0.2.12",
  "pin-project-lite",
 ]
 
@@ -1352,7 +1402,7 @@ dependencies = [
  "futures-core",
  "futures-util",
  "h2",
- "http 0.2.11",
+ "http 0.2.12",
  "http-body",
  "httparse",
  "httpdate",
@@ -1372,7 +1422,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
  "futures-util",
- "http 0.2.11",
+ "http 0.2.12",
  "hyper",
  "rustls",
  "tokio",
@@ -1394,15 +1444,15 @@ dependencies = [
 
 [[package]]
 name = "hypher"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94bf16dd62ea2bec617a6f8a3e1ba03107311783069a647787ac689d1f35321e"
+checksum = "3b24ad5637230df201ab1034d593f1d09bf7f2a9274f2e8897638078579f4265"
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.59"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -1543,7 +1593,7 @@ checksum = "d2abdd3a62551e8337af119c5899e600ca0c88ec8f23a46c60ba216c803dcf1a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1586,17 +1636,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "if_chain"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
+
+[[package]]
 name = "image"
-version = "0.24.7"
+version = "0.24.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
  "gif",
  "jpeg-decoder",
- "num-rational",
  "num-traits",
  "png",
 ]
@@ -1620,9 +1675,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -1668,9 +1723,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
 dependencies = [
  "cfg-if",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
 ]
 
 [[package]]
@@ -1715,29 +1767,38 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jobserver"
-version = "0.1.27"
+version = "0.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 
 [[package]]
 name = "js-sys"
-version = "0.3.67"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
+name = "kamadak-exif"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef4fc70d0ab7e5b6bafa30216a6b48705ea964cdfc29c050f2412295eba58077"
+dependencies = [
+ "mutate_once",
+]
+
+[[package]]
 name = "kqueue"
 version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1774,15 +1835,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.152"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libgit2-sys"
-version = "0.16.1+1.7.1"
+version = "0.16.2+1.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2a2bb3680b094add03bb3732ec520ece34da31a8cd2d633d1389d0f0fb60d0c"
+checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8"
 dependencies = [
  "cc",
  "libc",
@@ -1802,16 +1863,16 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall",
 ]
 
 [[package]]
 name = "libz-sys"
-version = "1.1.14"
+version = "1.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "295c17e837573c8c821dbaeb3cceb3d745ad082f7572191409e69cbc1b3fd050"
+checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
 dependencies = [
  "cc",
  "libc",
@@ -1836,9 +1897,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.12"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lipsum"
@@ -1871,9 +1932,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 = "memchr"
@@ -1883,15 +1944,6 @@ checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "memmap2"
 version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
@@ -1917,9 +1969,9 @@ dependencies = [
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -1927,9 +1979,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "log",
@@ -1938,6 +1990,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "mutate_once"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b"
+
+[[package]]
 name = "native-tls"
 version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1967,7 +2025,7 @@ version = "6.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "crossbeam-channel",
  "filetime",
  "fsevent-sys",
@@ -1992,31 +2050,25 @@ dependencies = [
 ]
 
 [[package]]
-name = "num-integer"
-version = "0.1.45"
+name = "num-conv"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
 
 [[package]]
-name = "num-rational"
-version = "0.4.1"
+name = "num-integer"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
- "num-integer",
  "num-traits",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
 ]
@@ -2033,9 +2085,9 @@ dependencies = [
 
 [[package]]
 name = "num_threads"
-version = "0.1.6"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
 dependencies = [
  "libc",
 ]
@@ -2063,9 +2115,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "open"
-version = "5.0.1"
+version = "5.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90878fb664448b54c4e592455ad02831e23a3f7e157374a8b95654731aac7349"
+checksum = "449f0ff855d85ddbf1edd5b646d65249ead3f5e422aaa86b7d2d0b049b103e32"
 dependencies = [
  "is-wsl",
  "libc",
@@ -2074,11 +2126,11 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.62"
+version = "0.10.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -2095,7 +2147,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2106,9 +2158,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.98"
+version = "0.9.101"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7"
+checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
 dependencies = [
  "cc",
  "libc",
@@ -2124,9 +2176,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
 
 [[package]]
 name = "palette"
-version = "0.7.3"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2e2f34147767aa758aa649415b50a69eeb46a67f9dc7db8011eeb3d84b351dc"
+checksum = "ebfc23a4b76642983d57e4ad00bb4504eb30a8ce3c70f4aee1f725610e36d97a"
 dependencies = [
  "approx",
  "fast-srgb8",
@@ -2136,13 +2188,13 @@ dependencies = [
 
 [[package]]
 name = "palette_derive"
-version = "0.7.3"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7db010ec5ff3d4385e4f133916faacd9dad0f6a09394c92d825b3aed310fa0a"
+checksum = "e8890702dbec0bad9116041ae586f84805b13eecd1d8b1df27c29998a9969d6d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2193,6 +2245,48 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_macros",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher 0.3.11",
+]
+
+[[package]]
 name = "pico-args"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2200,22 +2294,22 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
 
 [[package]]
 name = "pin-project"
-version = "1.1.4"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.4"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2232,9 +2326,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "plist"
@@ -2242,19 +2336,19 @@ version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
 dependencies = [
- "base64",
- "indexmap 2.1.0",
+ "base64 0.21.7",
+ "indexmap 2.2.5",
  "line-wrap",
- "quick-xml 0.31.0",
+ "quick-xml",
  "serde",
  "time",
 ]
 
 [[package]]
 name = "png"
-version = "0.17.10"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -2264,6 +2358,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "portable-atomic"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[package]]
 name = "postcard"
 version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2288,9 +2388,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.76"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
@@ -2325,14 +2425,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "quick-xml"
-version = "0.28.2"
+name = "qcms"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
-dependencies = [
- "memchr",
- "serde",
-]
+checksum = "edecfcd5d755a5e5d98e24cf43113e7cdaec5a070edd0f6b250c03a573da30fa"
 
 [[package]]
 name = "quick-xml"
@@ -2341,6 +2437,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
+ "serde",
 ]
 
 [[package]]
@@ -2390,9 +2487,9 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
 dependencies = [
  "either",
  "rayon-core",
@@ -2400,21 +2497,15 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
 ]
 
 [[package]]
-name = "rctree"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
-
-[[package]]
 name = "redox_syscall"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2435,62 +2526,79 @@ dependencies = [
 ]
 
 [[package]]
+name = "reflexo"
+version = "0.4.2-rc8"
+source = "git+https://github.com/Myriad-Dreamin/typst.ts?rev=c8ff53382c2afa67582465c6e7e0fd78603e4341#c8ff53382c2afa67582465c6e7e0fd78603e4341"
+dependencies = [
+ "base64 0.22.0",
+ "bitvec",
+ "comemo",
+ "dashmap",
+ "ecow",
+ "fxhash",
+ "once_cell",
+ "parking_lot",
+ "path-clean",
+ "rkyv",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "serde_with",
+ "siphasher 1.0.0",
+ "tiny-skia-path",
+]
+
+[[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
  "regex-automata",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
-
-[[package]]
-name = "regex-syntax"
 version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "rend"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2571463863a6bd50c32f94402933f03457a3fbaf697a707c5be741e459f08fd"
+checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
 dependencies = [
  "bytecheck",
 ]
 
 [[package]]
 name = "reqwest"
-version = "0.11.23"
+version = "0.11.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41"
+checksum = "0eea5a9eb898d3783f17c6407670e3592fd174cb81a10e51d4c37f49450b9946"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "bytes",
  "encoding_rs",
  "futures-core",
  "futures-util",
  "h2",
- "http 0.2.11",
+ "http 0.2.12",
  "http-body",
  "hyper",
  "hyper-rustls",
@@ -2509,6 +2617,7 @@ dependencies = [
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "sync_wrapper",
  "system-configuration",
  "tokio",
  "tokio-native-tls",
@@ -2524,23 +2633,24 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.17.7"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
 dependencies = [
  "cc",
+ "cfg-if",
  "getrandom",
  "libc",
  "spin",
  "untrusted",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rkyv"
-version = "0.7.43"
+version = "0.7.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "527a97cdfef66f65998b5f3b637c26f5a5ec09cc52a3f9932313ac645f4190f5"
+checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0"
 dependencies = [
  "bitvec",
  "bytecheck",
@@ -2556,9 +2666,9 @@ dependencies = [
 
 [[package]]
 name = "rkyv_derive"
-version = "0.7.43"
+version = "0.7.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5c462a1328c8e67e4d6dbad1eb0355dd43e8ab432c6e227a43657f16ade5033"
+checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2573,12 +2683,9 @@ checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
 
 [[package]]
 name = "roxmltree"
-version = "0.18.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "862340e351ce1b271a378ec53f304a5558f7db87f3769dc655a8f6ecbb68b302"
-dependencies = [
- "xmlparser",
-]
+checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
 
 [[package]]
 name = "rustc-demangle"
@@ -2603,11 +2710,11 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.30"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
  "libc",
  "linux-raw-sys",
@@ -2632,7 +2739,7 @@ version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
- "base64",
+ "base64 0.21.7",
 ]
 
 [[package]]
@@ -2653,11 +2760,11 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "rustybuzz"
-version = "0.10.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71cd15fef9112a1f94ac64b58d1e4628192631ad6af4dc69997f995459c874e7"
+checksum = "f0ae5692c5beaad6a9e22830deeed7874eae8a4e3ba4076fb48e12c56856222c"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "bytemuck",
  "smallvec",
  "ttf-parser",
@@ -2669,9 +2776,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "safemem"
@@ -2744,35 +2851,38 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.21"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+dependencies = [
+ "serde",
+]
 
 [[package]]
 name = "serde"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.195"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.111"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -2787,7 +2897,7 @@ checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2813,16 +2923,17 @@ dependencies = [
 
 [[package]]
 name = "serde_with"
-version = "3.4.0"
+version = "3.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23"
+checksum = "15d167997bd841ec232f5b2b8e0e26606df2e7caa4c31b95ea9ca52b200bd270"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "chrono",
  "hex",
  "indexmap 1.9.3",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "serde",
+ "serde_derive",
  "serde_json",
  "serde_with_macros",
  "time",
@@ -2830,23 +2941,23 @@ dependencies = [
 
 [[package]]
 name = "serde_with_macros"
-version = "3.4.0"
+version = "3.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788"
+checksum = "865f9743393e638991566a8b7a479043c2c8da94a33e0a31f18214c9cae0a64d"
 dependencies = [
- "darling 0.20.3",
+ "darling 0.20.8",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.30"
+version = "0.9.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38"
+checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "itoa",
  "ryu",
  "serde",
@@ -2937,18 +3048,18 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2998,12 +3109,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "strsim"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+[[package]]
 name = "strum"
 version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
 dependencies = [
- "strum_macros",
+ "strum_macros 0.25.3",
+]
+
+[[package]]
+name = "strum"
+version = "0.26.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f"
+dependencies = [
+ "strum_macros 0.26.1",
 ]
 
 [[package]]
@@ -3016,14 +3142,27 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.48",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.26.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "svgtypes"
-version = "0.12.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71499ff2d42f59d26edb21369a308ede691421f79ebc0f001e2b1fd3a7c9e52"
+checksum = "6e44e288cd960318917cbd540340968b90becc8bc81f171345d706e7a89d9d70"
 dependencies = [
  "kurbo",
  "siphasher 0.3.11",
@@ -3042,9 +3181,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3052,22 +3191,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
 name = "synstructure"
-version = "0.13.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06"
+checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
- "unicode-xid",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "syntect"
-version = "5.1.0"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91"
+checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1"
 dependencies = [
  "bincode",
  "bitflags 1.3.2",
@@ -3076,8 +3220,9 @@ dependencies = [
  "fnv",
  "once_cell",
  "plist",
- "regex-syntax 0.7.5",
+ "regex-syntax",
  "serde",
+ "serde_derive",
  "serde_json",
  "thiserror",
  "walkdir",
@@ -3086,20 +3231,20 @@ dependencies = [
 
 [[package]]
 name = "system-configuration"
-version = "0.5.1"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+checksum = "658bc6ee10a9b4fcf576e9b0819d95ec16f4d2c02d39fd83ac1c8789785c4a42"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "core-foundation",
  "system-configuration-sys",
 ]
 
 [[package]]
 name = "system-configuration-sys"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -3124,13 +3269,12 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.9.0"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand",
- "redox_syscall",
  "rustix",
  "windows-sys 0.52.0",
 ]
@@ -3146,33 +3290,34 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.31"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
  "deranged",
  "itoa",
  "libc",
+ "num-conv",
  "num_threads",
  "powerfmt",
  "serde",
@@ -3188,18 +3333,19 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.16"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
 [[package]]
 name = "tiny-skia"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6a067b809476893fce6a254cf285850ff69c847e6cfbade6a20b655b6c7e80d"
+checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
 dependencies = [
  "arrayref",
  "arrayvec",
@@ -3212,9 +3358,9 @@ dependencies = [
 
 [[package]]
 name = "tiny-skia-path"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de35e8a90052baaaf61f171680ac2f8e925a1e43ea9d2e3a00514772250e541"
+checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
 dependencies = [
  "arrayref",
  "bytemuck",
@@ -3249,9 +3395,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.35.1"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
  "backtrace",
  "bytes",
@@ -3274,7 +3420,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3325,9 +3471,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -3346,11 +3492,11 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.21.0"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -3382,7 +3528,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3402,9 +3548,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "ttf-parser"
-version = "0.19.2"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1"
+checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
 
 [[package]]
 name = "tungstenite"
@@ -3415,7 +3561,7 @@ dependencies = [
  "byteorder",
  "bytes",
  "data-encoding",
- "http 1.0.0",
+ "http 1.1.0",
  "httparse",
  "log",
  "rand",
@@ -3426,6 +3572,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "two-face"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37bed2135b2459c7eefba72c906d374697eb15949c205f2f124e3636a46b5eeb"
+dependencies = [
+ "once_cell",
+ "serde",
+ "syntect",
+]
+
+[[package]]
 name = "typed-arena"
 version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3440,10 +3597,10 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 [[package]]
 name = "typst"
 version = "0.10.0"
-source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=typst.ts-v0.10.0-half#cce5dc159ff7275573765143767b705ec2eb8616"
+source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=typst.ts-v0.11.0-2#48820fe69b8061bd949847afc343bf160d05c924"
 dependencies = [
  "az",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "chinese-number",
  "ciborium",
  "comemo",
@@ -3457,13 +3614,19 @@ dependencies = [
  "icu_provider_adapters",
  "icu_provider_blob",
  "icu_segmenter",
+ "if_chain",
  "image",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
+ "kamadak-exif",
  "kurbo",
  "lipsum",
  "log",
  "once_cell",
  "palette",
+ "phf",
+ "png",
+ "portable-atomic",
+ "qcms",
  "rayon",
  "regex",
  "roxmltree",
@@ -3477,11 +3640,13 @@ dependencies = [
  "syntect",
  "time",
  "toml",
- "tracing",
  "ttf-parser",
+ "two-face",
  "typed-arena",
+ "typst-assets 0.10.0",
  "typst-macros",
  "typst-syntax",
+ "typst-timing",
  "unicode-bidi",
  "unicode-math-class",
  "unicode-script",
@@ -3491,64 +3656,68 @@ dependencies = [
 ]
 
 [[package]]
+name = "typst-assets"
+version = "0.10.0"
+source = "git+https://github.com/typst/typst-assets?rev=4d1211a#4d1211ab5ba8a02992a7362000e6dd422d44dd68"
+
+[[package]]
+name = "typst-assets"
+version = "0.11.0-rc1"
+source = "git+https://github.com/typst/typst-assets?tag=v0.11.0-rc1#0ef66188759fc7035be57d9608ccb1ecfd3ef796"
+
+[[package]]
 name = "typst-macros"
 version = "0.10.0"
-source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=typst.ts-v0.10.0-half#cce5dc159ff7275573765143767b705ec2eb8616"
+source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=typst.ts-v0.11.0-2#48820fe69b8061bd949847afc343bf160d05c924"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "typst-preview"
-version = "0.10.8"
+version = "0.10.10"
 dependencies = [
  "anyhow",
  "await-tree",
- "chrono",
  "clap",
  "clap_complete",
  "clap_mangen",
- "codespan-reporting",
  "comemo",
- "dirs",
  "elsa",
  "env_logger",
  "futures",
  "hyper",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "log",
- "memmap2 0.9.4",
+ "memmap2",
  "notify",
  "once_cell",
  "open",
- "same-file",
  "serde",
  "serde_json",
- "siphasher 1.0.0",
  "tiny-skia",
  "tokio",
  "tokio-tungstenite",
  "typst",
+ "typst-assets 0.11.0-rc1",
  "typst-ts-compiler",
  "typst-ts-core",
  "typst-ts-svg-exporter",
  "vergen",
- "walkdir",
 ]
 
 [[package]]
 name = "typst-syntax"
 version = "0.10.0"
-source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=typst.ts-v0.10.0-half#cce5dc159ff7275573765143767b705ec2eb8616"
+source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=typst.ts-v0.11.0-2#48820fe69b8061bd949847afc343bf160d05c924"
 dependencies = [
  "comemo",
  "ecow",
  "once_cell",
  "serde",
- "tracing",
  "unicode-ident",
  "unicode-math-class",
  "unicode-script",
@@ -3557,12 +3726,23 @@ dependencies = [
 ]
 
 [[package]]
+name = "typst-timing"
+version = "0.10.0"
+source = "git+https://github.com/Myriad-Dreamin/typst.git?branch=typst.ts-v0.11.0-2#48820fe69b8061bd949847afc343bf160d05c924"
+dependencies = [
+ "parking_lot",
+ "serde",
+ "serde_json",
+ "typst-syntax",
+]
+
+[[package]]
 name = "typst-ts-compiler"
-version = "0.4.2-rc6"
-source = "git+https://github.com/Myriad-Dreamin/typst.ts?rev=98e3d3a42877b195f87223060882d55fd5aaa04a#98e3d3a42877b195f87223060882d55fd5aaa04a"
+version = "0.4.2-rc8"
+source = "git+https://github.com/Myriad-Dreamin/typst.ts?rev=c8ff53382c2afa67582465c6e7e0fd78603e4341#c8ff53382c2afa67582465c6e7e0fd78603e4341"
 dependencies = [
  "append-only-vec",
- "base64",
+ "base64 0.22.0",
  "chrono",
  "codespan-reporting",
  "comemo",
@@ -3572,7 +3752,7 @@ dependencies = [
  "fontdb",
  "fst",
  "hex",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "instant",
  "log",
  "nohash-hasher",
@@ -3585,7 +3765,7 @@ dependencies = [
  "serde",
  "serde_json",
  "sha2",
- "strum",
+ "strum 0.25.0",
  "tar",
  "tokio",
  "typst",
@@ -3596,10 +3776,10 @@ dependencies = [
 
 [[package]]
 name = "typst-ts-core"
-version = "0.4.2-rc6"
-source = "git+https://github.com/Myriad-Dreamin/typst.ts?rev=98e3d3a42877b195f87223060882d55fd5aaa04a#98e3d3a42877b195f87223060882d55fd5aaa04a"
+version = "0.4.2-rc8"
+source = "git+https://github.com/Myriad-Dreamin/typst.ts?rev=c8ff53382c2afa67582465c6e7e0fd78603e4341#c8ff53382c2afa67582465c6e7e0fd78603e4341"
 dependencies = [
- "base64",
+ "base64 0.22.0",
  "base64-serde",
  "bitvec",
  "byteorder",
@@ -3616,7 +3796,7 @@ dependencies = [
  "parking_lot",
  "path-clean",
  "rayon",
- "rkyv",
+ "reflexo",
  "rustc-hash",
  "serde",
  "serde_json",
@@ -3633,10 +3813,10 @@ dependencies = [
 
 [[package]]
 name = "typst-ts-svg-exporter"
-version = "0.4.2-rc6"
-source = "git+https://github.com/Myriad-Dreamin/typst.ts?rev=98e3d3a42877b195f87223060882d55fd5aaa04a#98e3d3a42877b195f87223060882d55fd5aaa04a"
+version = "0.4.2-rc8"
+source = "git+https://github.com/Myriad-Dreamin/typst.ts?rev=c8ff53382c2afa67582465c6e7e0fd78603e4341#c8ff53382c2afa67582465c6e7e0fd78603e4341"
 dependencies = [
- "base64",
+ "base64 0.22.0",
  "comemo",
  "log",
  "once_cell",
@@ -3677,9 +3857,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.14"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-bidi-mirroring"
@@ -3707,30 +3887,30 @@ checksum = "7d246cf599d5fae3c8d56e04b20eb519adb89a8af8d0b0fbcded369aa3647d65"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-properties"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7f91c8b21fbbaa18853c3d0801c78f4fc94cdb976699bb03e832e75f7fd22f0"
+checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
 
 [[package]]
 name = "unicode-script"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc"
+checksum = "ad8d71f5726e5f285a935e9fe8edfd53f0491eb6e9a5774097fdabee7cd8c9cd"
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-vo"
@@ -3745,12 +3925,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
-name = "unicode-xid"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-
-[[package]]
 name = "unsafe-libyaml"
 version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3782,11 +3956,11 @@ dependencies = [
 
 [[package]]
 name = "usvg"
-version = "0.36.0"
+version = "0.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c51daa774fe9ee5efcf7b4fec13019b8119cda764d9a8b5b06df02bb1445c656"
+checksum = "377f62b4a3c173de8654c1aa80ab1dac1154e6f13a779a9943e53780120d1625"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "log",
  "pico-args",
  "usvg-parser",
@@ -3797,9 +3971,9 @@ dependencies = [
 
 [[package]]
 name = "usvg-parser"
-version = "0.36.0"
+version = "0.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45c88a5ffaa338f0e978ecf3d4e00d8f9f493e29bed0752e1a808a1db16afc40"
+checksum = "351a05e6f2023d6b4e946f734240a3927aefdcf930d7d42587a2c8a8869814b0"
 dependencies = [
  "data-url",
  "flate2",
@@ -3815,9 +3989,9 @@ dependencies = [
 
 [[package]]
 name = "usvg-text-layout"
-version = "0.36.0"
+version = "0.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d2374378cb7a3fb8f33894e0fdb8625e1bbc4f25312db8d91f862130b541593"
+checksum = "8c41888b9d5cf431fe852eaf9d047bbde83251b98f1749c2f08b1071e6db46e2"
 dependencies = [
  "fontdb",
  "kurbo",
@@ -3831,11 +4005,10 @@ dependencies = [
 
 [[package]]
 name = "usvg-tree"
-version = "0.36.0"
+version = "0.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6cacb0c5edeaf3e80e5afcf5b0d4004cc1d36318befc9a7c6606507e5d0f4062"
+checksum = "18863e0404ed153d6e56362c5b1146db9f4f262a3244e3cf2dbe7d8a85909f05"
 dependencies = [
- "rctree",
  "strict-num",
  "svgtypes",
  "tiny-skia-path",
@@ -3861,9 +4034,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.6.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 
 [[package]]
 name = "vcpkg"
@@ -3873,12 +4046,15 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
 
 [[package]]
 name = "vergen"
-version = "8.2.7"
+version = "8.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2066fbfd3bfbadab28cab8bae840c9e74917bc6deeef2ed0781f2eb2fdfafdb"
+checksum = "e27d6bdd219887a9eadd19e1c34f32e47fa332301184935c6d9bca26f3cca525"
 dependencies = [
  "anyhow",
+ "cargo_metadata",
+ "cfg-if",
  "git2",
+ "regex",
  "rustc_version",
  "rustversion",
  "time",
@@ -3892,9 +4068,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[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",
@@ -3926,9 +4102,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -3936,24 +4112,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.40"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -3963,9 +4139,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -3973,28 +4149,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "wasmi"
-version = "0.31.1"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acfc1e384a36ca532d070a315925887247f3c7e23567e23e0ac9b1c5d6b8bf76"
+checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7"
 dependencies = [
  "smallvec",
  "spin",
@@ -4005,9 +4181,9 @@ dependencies = [
 
 [[package]]
 name = "wasmi_arena"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468"
+checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073"
 
 [[package]]
 name = "wasmi_core"
@@ -4038,9 +4214,9 @@ checksum = "323f4da9523e9a669e1eaf9c6e763892769b1d38c623913647bfdc1532fe4549"
 
 [[package]]
 name = "web-sys"
-version = "0.3.67"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -4048,15 +4224,15 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.25.3"
+version = "0.25.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
 
 [[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "winapi"
@@ -4095,7 +4271,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -4113,7 +4289,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -4133,17 +4309,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -4154,9 +4330,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -4166,9 +4342,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -4178,9 +4354,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -4190,9 +4366,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -4202,9 +4378,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -4214,9 +4390,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -4226,15 +4402,15 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "winnow"
-version = "0.5.34"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
@@ -4266,9 +4442,9 @@ dependencies = [
 
 [[package]]
 name = "xattr"
-version = "1.2.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "914566e6413e7fa959cc394fb30e563ba80f3541fbd40816d4c05a0fc3f2a0f1"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
 dependencies = [
  "libc",
  "linux-raw-sys",
@@ -4316,7 +4492,7 @@ checksum = "9e6936f0cce458098a201c245a11bef556c6a0181129c7034d10d76d1ec3a2b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
  "synstructure",
 ]
 
@@ -4337,7 +4513,7 @@ checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
  "synstructure",
 ]
 
@@ -4373,5 +4549,5 @@ checksum = "7b4e5997cbf58990550ef1f0e5124a05e47e1ebd33a84af25739be6031a62c20"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
diff --git a/nixpkgs/pkgs/by-name/ty/typst-preview/dom.json b/nixpkgs/pkgs/by-name/ty/typst-preview/dom.json
index 38dfe78a9640..a0ee5f809290 100644
--- a/nixpkgs/pkgs/by-name/ty/typst-preview/dom.json
+++ b/nixpkgs/pkgs/by-name/ty/typst-preview/dom.json
@@ -9,15 +9,16 @@
     "preview": "vite preview",
     "test": "vitest",
     "coverage": "vitest run --coverage",
-    "link:local": "yarn link @myriaddreamin/typst.ts @myriaddreamin/typst-ts-renderer"
+    "link:local": "yarn link @myriaddreamin/typst.ts @myriaddreamin/typst-ts-renderer",
+    "unlink:local": "yarn unlink @myriaddreamin/typst.ts @myriaddreamin/typst-ts-renderer"
   },
   "peerDependencies": {
-    "@myriaddreamin/typst-ts-renderer": "0.4.2-rc6",
-    "@myriaddreamin/typst.ts": "0.4.2-rc6"
+    "@myriaddreamin/typst-ts-renderer": "0.4.2-rc9",
+    "@myriaddreamin/typst.ts": "0.4.2-rc9"
   },
   "devDependencies": {
-    "@myriaddreamin/typst-ts-renderer": "0.4.2-rc6",
-    "@myriaddreamin/typst.ts": "0.4.2-rc6",
+    "@myriaddreamin/typst-ts-renderer": "0.4.2-rc9",
+    "@myriaddreamin/typst.ts": "0.4.2-rc9",
     "typescript": "^5.0.2",
     "vite": "^4.3.9",
     "vite-plugin-singlefile": "^0.13.5",
diff --git a/nixpkgs/pkgs/by-name/ty/typst-preview/frontend.json b/nixpkgs/pkgs/by-name/ty/typst-preview/frontend.json
index 4338a9c1b03c..66163cb7920f 100644
--- a/nixpkgs/pkgs/by-name/ty/typst-preview/frontend.json
+++ b/nixpkgs/pkgs/by-name/ty/typst-preview/frontend.json
@@ -9,11 +9,12 @@
     "preview": "vite preview",
     "test": "vitest",
     "coverage": "vitest run --coverage",
-    "link:local": "yarn link @myriaddreamin/typst.ts @myriaddreamin/typst-ts-renderer"
+    "link:local": "yarn link @myriaddreamin/typst.ts @myriaddreamin/typst-ts-renderer",
+    "unlink:local": "yarn unlink @myriaddreamin/typst.ts @myriaddreamin/typst-ts-renderer"
   },
   "dependencies": {
-    "@myriaddreamin/typst-ts-renderer": "0.4.2-rc6",
-    "@myriaddreamin/typst.ts": "0.4.2-rc6",
+    "@myriaddreamin/typst-ts-renderer": "0.4.2-rc9",
+    "@myriaddreamin/typst.ts": "0.4.2-rc9",
     "typst-dom": "file:../typst-dom",
     "rxjs": "^7.8.1"
   },
diff --git a/nixpkgs/pkgs/by-name/ty/typst-preview/package.nix b/nixpkgs/pkgs/by-name/ty/typst-preview/package.nix
index 68eae7b47f69..35a9d501fbab 100644
--- a/nixpkgs/pkgs/by-name/ty/typst-preview/package.nix
+++ b/nixpkgs/pkgs/by-name/ty/typst-preview/package.nix
@@ -14,13 +14,13 @@
 let
   # Keep the vscode "mgt19937.typst-preview" extension in sync when updating
   # this package at pkgs/applications/editors/vscode/extensions/default.nix
-  version = "0.10.8";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "Enter-tainer";
     repo = "typst-preview";
     rev = "v${version}";
-    hash = "sha256-n3lrJpCe/+THYepiiWIlTEMSMZPX7Qiucbg1ouU1ZEs=";
+    hash = "sha256-etFP1CuRSE6Sy19+dlF6FUQhuqJrJ53v7LZFrTyA+q0=";
     fetchSubmodules = true;
 
     postFetch = ''
@@ -41,7 +41,7 @@ let
 
     offlineCache = fetchYarnDeps {
       yarnLock = "${domSrc}/yarn.lock";
-      hash = "sha256-+xn2SmpYdAb1nZkTOURqR5teu3dx2AKaiGoa9AmPA7o=";
+      hash = "sha256-aDs+2n6sL4MTizRuYqkwfYrx/lK3ll9u4NoN0zPyWco=";
     };
 
     buildPhase = ''
@@ -67,7 +67,7 @@ let
 
     offlineCache = fetchYarnDeps {
       yarnLock = "${frontendSrc}/yarn.lock";
-      hash = "sha256-o8zWMLt6WqYWhcC7rqSeue6TxN20lYIjGqMxLApy5l0=";
+      hash = "sha256-gkjtDi7ZR3aKn1ZRJEkFc3IdhbmF1GyYoGiIniOsPBo=";
     };
 
     packageResolutions = { inherit typst-dom; };
@@ -92,13 +92,7 @@ rustPlatform.buildRustPackage {
   pname = "typst-preview";
   inherit version src;
 
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "typst-0.10.0" = "sha256-/Oy4KigXu1E/S9myd+eigqlNvk5x+Ld9gTL9dtpoyqk=";
-      "typst-ts-compiler-0.4.2-rc6" = "sha256-mDQDxqXp38+Omt7D7kO2cUAVzG+h3JOs4tBdrbHH/lA=";
-    };
-  };
+  cargoHash = "sha256-f9oTeUMbXjkCHLsiMng9gME9QGRWgBi1WAwoeBCeT6I=";
 
   nativeBuildInputs = [
     pkg-config
@@ -118,6 +112,7 @@ rustPlatform.buildRustPackage {
   prePatch = ''
     mkdir -p addons/vscode/out/frontend
     cp -R ${frontend}/* addons/vscode/out/frontend/
+    cp -R ${frontend}/index.html ./src/index.html
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/by-name/ty/typst/Cargo.lock b/nixpkgs/pkgs/by-name/ty/typst/Cargo.lock
index b5a869b62793..e054eacee948 100644
--- a/nixpkgs/pkgs/by-name/ty/typst/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/ty/typst/Cargo.lock
@@ -9,19 +9,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
-name = "ahash"
-version = "0.8.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
-dependencies = [
- "cfg-if",
- "getrandom",
- "once_cell",
- "version_check",
- "zerocopy",
-]
-
-[[package]]
 name = "aho-corasick"
 version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -47,9 +34,9 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.4"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -61,36 +48,36 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.4"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.0"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
 dependencies = [
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.1"
+version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
 dependencies = [
  "anstyle",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -103,6 +90,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "arbitrary"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
+
+[[package]]
 name = "arrayref"
 version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -128,15 +121,21 @@ checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973"
 
 [[package]]
 name = "base64"
-version = "0.21.5"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "base64"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
 
 [[package]]
 name = "biblatex"
-version = "0.9.0"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88be3c837773ba281f5fd6674c1c82565c62726abe3d76707da6fb9d434cc392"
+checksum = "27fe7285040d0227cd8b5395e1c4783f44f0b673eca5a657f4432ae401f2b7b8"
 dependencies = [
  "numerals",
  "paste",
@@ -177,9 +176,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 dependencies = [
  "serde",
 ]
@@ -198,15 +197,15 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.0"
+version = "1.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
 
 [[package]]
 name = "byteorder"
@@ -216,10 +215,11 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 dependencies = [
+ "jobserver",
  "libc",
 ]
 
@@ -231,9 +231,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chinese-number"
-version = "0.7.3"
+version = "0.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9cec9efb10b00914876c7e7b1fdaec572b888443b4046cd11ba91eb8c5a1ccb"
+checksum = "49fccaef6346f6d6a741908d3b79fe97c2debe2fbb5eb3a7d00ff5981b52bb6c"
 dependencies = [
  "chinese-variant",
  "enum-ordinalize",
@@ -243,27 +243,27 @@ dependencies = [
 
 [[package]]
 name = "chinese-variant"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17df2e16b0704fc5413214165d1bfdd619f18b1044d5991d5c5351b05fee852e"
+checksum = "7588475145507237ded760e52bf2f1085495245502033756d28ea72ade0e498b"
 
 [[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "num-traits",
- "windows-targets",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
 name = "ciborium"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
 dependencies = [
  "ciborium-io",
  "ciborium-ll",
@@ -272,15 +272,15 @@ dependencies = [
 
 [[package]]
 name = "ciborium-io"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
 
 [[package]]
 name = "ciborium-ll"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
 dependencies = [
  "ciborium-io",
  "half",
@@ -288,19 +288,19 @@ dependencies = [
 
 [[package]]
 name = "citationberg"
-version = "0.1.1"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c15a0bf8014b266d11f20451dc9202d8d26180ffd8b094d73ecbe74d821f01fb"
+checksum = "82108f2b676c954076d2e5044f19a6a03887b24bd42804f322e0650d13035899"
 dependencies = [
- "quick-xml 0.28.2",
+ "quick-xml",
  "serde",
 ]
 
 [[package]]
 name = "clap"
-version = "4.4.8"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64"
+checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -308,9 +308,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.8"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
  "anstream",
  "anstyle",
@@ -320,36 +320,36 @@ dependencies = [
 
 [[package]]
 name = "clap_complete"
-version = "4.4.4"
+version = "4.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bffe91f06a11b4b9420f62103854e90867812cd5d01557f853c5ee8e791b12ae"
+checksum = "885e4d7d5af40bfb99ae6f9433e292feac98d452dcb3ec3d25dfe7552b77da8c"
 dependencies = [
  "clap",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "4.4.7"
+version = "4.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
+checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "clap_mangen"
-version = "0.2.15"
+version = "0.2.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3be86020147691e1d2ef58f75346a3d4d94807bfc473e377d52f09f0f7d77f7"
+checksum = "e1dd95b5ebb5c1c54581dd6346f3ed6a79a3eef95dd372fc2ac13d535535300e"
 dependencies = [
  "clap",
  "roff",
@@ -385,30 +385,42 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
 name = "comemo"
-version = "0.3.1"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf5705468fa80602ee6a5f9318306e6c428bffd53e43209a78bc05e6e667c6f4"
+checksum = "df6916408a724339aa77b18214233355f3eb04c42eb895e5f8909215bd8a7a91"
 dependencies = [
  "comemo-macros",
+ "once_cell",
+ "parking_lot",
  "siphasher 1.0.0",
 ]
 
 [[package]]
 name = "comemo-macros"
-version = "0.3.1"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54af6ac68ada2d161fa9cc1ab52676228e340866d094d6542107e74b82acc095"
+checksum = "c8936e42f9b4f5bdfaf23700609ac1f11cb03ad4c1ec128a4ee4fd0903e228db"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
 ]
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "core_maths"
@@ -421,55 +433,52 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.15"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
 
 [[package]]
 name = "csv"
@@ -493,25 +502,21 @@ dependencies = [
 ]
 
 [[package]]
-name = "dashmap"
-version = "5.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
-dependencies = [
- "cfg-if",
- "hashbrown 0.14.3",
- "lock_api",
- "once_cell",
- "parking_lot_core",
-]
-
-[[package]]
 name = "data-url"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a"
 
 [[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
+
+[[package]]
 name = "dirs"
 version = "5.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -529,7 +534,7 @@ dependencies = [
  "libc",
  "option-ext",
  "redox_users",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -540,7 +545,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
@@ -551,18 +556,18 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
 [[package]]
 name = "ecow"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ea5e3f9cda726431da9d1a8d5a29785d544b31e98e1ca7a210906244002e02"
+checksum = "dba31a30727c42ff5e60468d695c7f21e43a6db2808b7195adcab908fbd9f794"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "embedded-io"
@@ -572,24 +577,22 @@ checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced"
 
 [[package]]
 name = "enum-ordinalize"
-version = "3.1.15"
+version = "4.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bf1fa3f06bbff1ea5b1a9c7b14aa992a39657db60a2759457328d7e058f49ee"
+checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5"
 dependencies = [
- "num-bigint",
- "num-traits",
- "proc-macro2",
- "quote",
- "syn 2.0.39",
+ "enum-ordinalize-derive",
 ]
 
 [[package]]
-name = "env_logger"
-version = "0.10.1"
+name = "enum-ordinalize-derive"
+version = "4.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
+checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff"
 dependencies = [
- "log",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
@@ -610,12 +613,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.7"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
  "libc",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -651,23 +654,23 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.1"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
 
 [[package]]
 name = "filetime"
-version = "0.2.22"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.3.5",
- "windows-sys",
+ "redox_syscall",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -694,18 +697,18 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "fontconfig-parser"
-version = "0.5.3"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "674e258f4b5d2dcd63888c01c68413c51f565e8af99d2f7701c7b81d79ef41c4"
+checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d"
 dependencies = [
  "roxmltree",
 ]
 
 [[package]]
 name = "fontdb"
-version = "0.15.0"
+version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "020e203f177c0fb250fb19455a252e838d2bbbce1f80f25ecc42402aafa8cd38"
+checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3"
 dependencies = [
  "fontconfig-parser",
  "log",
@@ -716,6 +719,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
 name = "form_urlencoded"
 version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -725,6 +743,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "fs_extra"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
+
+[[package]]
 name = "fsevent-sys"
 version = "4.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -750,9 +774,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -770,10 +794,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "gif"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
+dependencies = [
+ "color_quant",
+ "weezl",
+]
+
+[[package]]
 name = "half"
-version = "1.8.2"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+]
 
 [[package]]
 name = "hashbrown"
@@ -789,18 +827,18 @@ checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "hayagriva"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9f97c07366b7f686741521ca63cc14baf18cea53c39b0c09873cd1d4a1b2b8c"
+checksum = "cc2e670de5191df083ddd112cd253049f8213277ccf0c15e18a8bf10e6c666cc"
 dependencies = [
  "biblatex",
  "ciborium",
  "citationberg",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "numerals",
  "paste",
  "serde",
- "serde_yaml 0.9.27",
+ "serde_yaml 0.9.32",
  "thiserror",
  "unic-langid",
  "unicode-segmentation",
@@ -815,30 +853,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
-name = "hermit-abi"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
-
-[[package]]
 name = "hypher"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94bf16dd62ea2bec617a6f8a3e1ba03107311783069a647787ac689d1f35321e"
-
-[[package]]
-name = "iai"
-version = "0.1.1"
-source = "git+https://github.com/typst/iai?rev=3f0f927#3f0f92736408ebce6545808b98e0cb2aea89b7dd"
-dependencies = [
- "cfg-if",
-]
+checksum = "3b24ad5637230df201ab1034d593f1d09bf7f2a9274f2e8897638078579f4265"
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.58"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -979,7 +1003,7 @@ checksum = "d2abdd3a62551e8337af119c5899e600ca0c88ec8f23a46c60ba216c803dcf1a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
@@ -1023,16 +1047,15 @@ checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
 
 [[package]]
 name = "image"
-version = "0.24.7"
+version = "0.24.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
- "gif",
+ "gif 0.13.1",
  "jpeg-decoder",
- "num-rational",
  "num-traits",
  "png",
 ]
@@ -1044,25 +1067,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284"
 
 [[package]]
-name = "include_dir"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e"
-dependencies = [
- "include_dir_macros",
-]
-
-[[package]]
-name = "include_dir_macros"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f"
-dependencies = [
- "proc-macro2",
- "quote",
-]
-
-[[package]]
 name = "indexmap"
 version = "1.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1074,9 +1078,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -1091,29 +1095,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590"
 
 [[package]]
-name = "inferno"
-version = "0.11.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "321f0f839cd44a4686e9504b0a62b4d69a50b62072144c71c68f5873c167b8d9"
-dependencies = [
- "ahash",
- "clap",
- "crossbeam-channel",
- "crossbeam-utils",
- "dashmap",
- "env_logger",
- "indexmap 2.1.0",
- "is-terminal",
- "itoa",
- "log",
- "num-format",
- "once_cell",
- "quick-xml 0.26.0",
- "rgb",
- "str_stack",
-]
-
-[[package]]
 name = "inotify"
 version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1152,17 +1133,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "is-terminal"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
-dependencies = [
- "hermit-abi",
- "rustix",
- "windows-sys",
-]
-
-[[package]]
 name = "is-wsl"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1174,26 +1144,44 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+[[package]]
+name = "jobserver"
+version = "0.1.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 
 [[package]]
 name = "js-sys"
-version = "0.3.66"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
+name = "kamadak-exif"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef4fc70d0ab7e5b6bafa30216a6b48705ea964cdfc29c050f2412295eba58077"
+dependencies = [
+ "mutate_once",
+]
+
+[[package]]
 name = "kqueue"
 version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1230,29 +1218,40 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.150"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libdeflate-sys"
-version = "1.19.0"
+version = "1.19.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67921a7f85100c1559efc3d1c7c472091b7da05f304b4bbd5356f075e97f1cc2"
+checksum = "cc9caa76c8cc6ee8c4efcf8f4514a812ebcad3aa7d3b548efe4d26da1203f177"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "libdeflater"
-version = "1.19.0"
+version = "1.19.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a31b22f662350ec294b13859f935aea772ba7b2bc8776269f4a5627308eab7d"
+checksum = "265a985bd31e5f22e2b2ac107cbed44c6ccf40ae236e46963cd00dd213e4bd03"
 dependencies = [
  "libdeflate-sys",
 ]
 
 [[package]]
+name = "libfuzzer-sys"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a96cfd5557eb82f2b83fed4955246c988d331975a002961b07c81584d107e7f7"
+dependencies = [
+ "arbitrary",
+ "cc",
+ "once_cell",
+]
+
+[[package]]
 name = "libm"
 version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1264,9 +1263,9 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
- "redox_syscall 0.4.1",
+ "redox_syscall",
 ]
 
 [[package]]
@@ -1286,9 +1285,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.11"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lipsum"
@@ -1321,9 +1320,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 = "lzma-sys"
@@ -1338,33 +1337,24 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
-version = "0.8.0"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
 dependencies = [
  "libc",
 ]
 
 [[package]]
-name = "memoffset"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -1372,14 +1362,38 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.9"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "log",
  "wasi",
- "windows-sys",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "mutate_once"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b"
+
+[[package]]
+name = "native-tls"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
 ]
 
 [[package]]
@@ -1388,7 +1402,7 @@ version = "6.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "crossbeam-channel",
  "filetime",
  "fsevent-sys",
@@ -1398,17 +1412,7 @@ dependencies = [
  "log",
  "mio",
  "walkdir",
- "windows-sys",
-]
-
-[[package]]
-name = "nu-ansi-term"
-version = "0.46.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
-dependencies = [
- "overload",
- "winapi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -1423,41 +1427,25 @@ dependencies = [
 ]
 
 [[package]]
-name = "num-format"
-version = "0.4.4"
+name = "num-conv"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3"
-dependencies = [
- "arrayvec",
- "itoa",
-]
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
 
 [[package]]
 name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.4.1"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
- "num-integer",
  "num-traits",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
 ]
@@ -1470,15 +1458,15 @@ checksum = "e25be21376a772d15f97ae789845340a9651d3c4246ff5ebb6a2b35f9c37bd31"
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "open"
-version = "5.0.1"
+version = "5.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90878fb664448b54c4e592455ad02831e23a3f7e157374a8b95654731aac7349"
+checksum = "68b3fbb0d52bf0cbb5225ba3d2c303aa136031d43abff98284332a9981ecddec"
 dependencies = [
  "is-wsl",
  "libc",
@@ -1486,16 +1474,64 @@ dependencies = [
 ]
 
 [[package]]
-name = "option-ext"
-version = "0.2.0"
+name = "openssl"
+version = "0.10.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
 
 [[package]]
-name = "overload"
+name = "openssl-macros"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-src"
+version = "300.2.3+3.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.101"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
+dependencies = [
+ "cc",
+ "libc",
+ "openssl-src",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
 
 [[package]]
 name = "oxipng"
@@ -1506,7 +1542,7 @@ dependencies = [
  "bitvec",
  "crossbeam-channel",
  "filetime",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "libdeflater",
  "log",
  "rayon",
@@ -1518,9 +1554,9 @@ dependencies = [
 
 [[package]]
 name = "palette"
-version = "0.7.3"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2e2f34147767aa758aa649415b50a69eeb46a67f9dc7db8011eeb3d84b351dc"
+checksum = "ebfc23a4b76642983d57e4ad00bb4504eb30a8ce3c70f4aee1f725610e36d97a"
 dependencies = [
  "approx",
  "fast-srgb8",
@@ -1530,13 +1566,23 @@ dependencies = [
 
 [[package]]
 name = "palette_derive"
-version = "0.7.3"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7db010ec5ff3d4385e4f133916faacd9dad0f6a09394c92d825b3aed310fa0a"
+checksum = "e8890702dbec0bad9116041ae586f84805b13eecd1d8b1df27c29998a9969d6d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
 ]
 
 [[package]]
@@ -1547,9 +1593,9 @@ checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.4.1",
+ "redox_syscall",
  "smallvec",
- "windows-targets",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -1588,27 +1634,31 @@ version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
 dependencies = [
+ "phf_macros",
  "phf_shared",
 ]
 
 [[package]]
-name = "phf_codegen"
+name = "phf_generator"
 version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
 dependencies = [
- "phf_generator",
  "phf_shared",
+ "rand",
 ]
 
 [[package]]
-name = "phf_generator"
+name = "phf_macros"
 version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
 dependencies = [
+ "phf_generator",
  "phf_shared",
- "rand",
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
@@ -1627,45 +1677,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
 
 [[package]]
-name = "pin-project-lite"
-version = "0.2.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
-
-[[package]]
 name = "pixglyph"
-version = "0.2.0"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f67591f21f6668e63c1cd85adab066ac8a92bc7b962668dd8042197a6e4b8f8f"
+checksum = "e2e0f8ad4c197db38125b880c3c44544788665c7d5f4c42f5a35da44bca1a712"
 dependencies = [
  "ttf-parser",
 ]
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "plist"
-version = "1.5.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a4a0cfc5fb21a09dc6af4bf834cf10d4a32fccd9e2ea468c4b1751a097487aa"
+checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
 dependencies = [
- "base64",
- "indexmap 1.9.3",
+ "base64 0.21.7",
+ "indexmap 2.2.5",
  "line-wrap",
- "quick-xml 0.30.0",
+ "quick-xml",
  "serde",
  "time",
 ]
 
 [[package]]
 name = "png"
-version = "0.17.10"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -1675,6 +1719,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "portable-atomic"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[package]]
 name = "postcard"
 version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1686,6 +1736,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1693,9 +1749,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.70"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
@@ -1711,49 +1767,37 @@ dependencies = [
 
 [[package]]
 name = "pulldown-cmark"
-version = "0.9.3"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998"
+checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "getopts",
  "memchr",
  "unicase",
 ]
 
 [[package]]
-name = "quick-xml"
-version = "0.26.0"
+name = "qcms"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f50b1c63b38611e7d4d7f68b82d3ad0cc71a2ad2e7f61fc10f1328d917c93cd"
-dependencies = [
- "memchr",
-]
+checksum = "edecfcd5d755a5e5d98e24cf43113e7cdaec5a070edd0f6b250c03a573da30fa"
 
 [[package]]
 name = "quick-xml"
-version = "0.28.2"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
  "serde",
 ]
 
 [[package]]
-name = "quick-xml"
-version = "0.30.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
-dependencies = [
- "memchr",
-]
-
-[[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -1770,8 +1814,6 @@ version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 dependencies = [
- "libc",
- "rand_chacha",
  "rand_core",
 ]
 
@@ -1790,15 +1832,12 @@ name = "rand_core"
 version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-dependencies = [
- "getrandom",
-]
 
 [[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
 dependencies = [
  "either",
  "rayon-core",
@@ -1806,30 +1845,15 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
 ]
 
 [[package]]
-name = "rctree"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
-
-[[package]]
-name = "redox_syscall"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
 name = "redox_syscall"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1851,46 +1875,40 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
  "regex-automata",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
-
-[[package]]
-name = "regex-syntax"
 version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "resvg"
-version = "0.36.0"
+version = "0.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc7980f653f9a7db31acff916a262c3b78c562919263edea29bf41a056e20497"
+checksum = "5c34501046959e06470ba62a2dc7f31c15f94ac250d842a45f9e012f4ee40c1e"
 dependencies = [
- "gif",
+ "gif 0.12.0",
  "jpeg-decoder",
  "log",
  "pico-args",
@@ -1911,20 +1929,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "ring"
-version = "0.17.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b"
-dependencies = [
- "cc",
- "getrandom",
- "libc",
- "spin",
- "untrusted",
- "windows-sys",
-]
-
-[[package]]
 name = "roff"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1932,12 +1936,9 @@ checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
 
 [[package]]
 name = "roxmltree"
-version = "0.18.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "862340e351ce1b271a378ec53f304a5558f7db87f3769dc655a8f6ecbb68b302"
-dependencies = [
- "xmlparser",
-]
+checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
 
 [[package]]
 name = "rustc-hash"
@@ -1956,46 +1957,15 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.25"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
  "libc",
  "linux-raw-sys",
- "windows-sys",
-]
-
-[[package]]
-name = "rustls"
-version = "0.21.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
-dependencies = [
- "log",
- "ring",
- "rustls-webpki",
- "sct",
-]
-
-[[package]]
-name = "rustls-pemfile"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
-dependencies = [
- "base64",
-]
-
-[[package]]
-name = "rustls-webpki"
-version = "0.101.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
-dependencies = [
- "ring",
- "untrusted",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2006,11 +1976,11 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "rustybuzz"
-version = "0.10.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71cd15fef9112a1f94ac64b58d1e4628192631ad6af4dc69997f995459c874e7"
+checksum = "f0ae5692c5beaad6a9e22830deeed7874eae8a4e3ba4076fb48e12c56856222c"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "bytemuck",
  "smallvec",
  "ttf-parser",
@@ -2022,9 +1992,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "safemem"
@@ -2042,19 +2012,41 @@ dependencies = [
 ]
 
 [[package]]
+name = "schannel"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "scopeguard"
 version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
-name = "sct"
-version = "0.7.1"
+name = "security-framework"
+version = "2.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
 dependencies = [
- "ring",
- "untrusted",
+ "core-foundation-sys",
+ "libc",
 ]
 
 [[package]]
@@ -2065,40 +2057,40 @@ checksum = "525db198616b2bcd0f245daf7bfd8130222f7ee6af9ff9984c19a61bf1160c55"
 dependencies = [
  "fastrand 1.9.0",
  "tempfile",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "semver"
-version = "1.0.20"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.108"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -2107,9 +2099,9 @@ dependencies = [
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
@@ -2128,11 +2120,11 @@ dependencies = [
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.27"
+version = "0.9.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c"
+checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "itoa",
  "ryu",
  "serde",
@@ -2140,15 +2132,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "sharded-slab"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
-dependencies = [
- "lazy_static",
-]
-
-[[package]]
 name = "simd-adler32"
 version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2177,18 +2160,18 @@ checksum = "54ac45299ccbd390721be55b412d41931911f654fa99e2cb8bfb57184b2061fe"
 
 [[package]]
 name = "slotmap"
-version = "1.0.6"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342"
+checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a"
 dependencies = [
  "version_check",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "spin"
@@ -2216,12 +2199,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "str_stack"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9091b6114800a5f2141aee1d1b9d6ca3592ac062dc5decb3764ec5895a47b4eb"
-
-[[package]]
 name = "strict-num"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2232,30 +2209,30 @@ dependencies = [
 
 [[package]]
 name = "strsim"
-version = "0.10.0"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
 
 [[package]]
 name = "strum"
-version = "0.24.1"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
+checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f"
 dependencies = [
  "strum_macros",
 ]
 
 [[package]]
 name = "strum_macros"
-version = "0.24.3"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
+checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 1.0.109",
+ "syn",
 ]
 
 [[package]]
@@ -2266,22 +2243,24 @@ checksum = "09eab8a83bff89ba2200bd4c59be45c7c787f988431b936099a5a266c957f2f9"
 
 [[package]]
 name = "svg2pdf"
-version = "0.9.1"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a81da66842e426278f20062cd249779565e13f9ab4bfe0ac9e94eb476bc3a0f3"
+checksum = "ba36b330062be8497fd96597227a757b621b86c4d24d164b06e4522b52b3693e"
 dependencies = [
  "image",
  "miniz_oxide",
  "once_cell",
  "pdf-writer",
+ "resvg",
+ "tiny-skia",
  "usvg",
 ]
 
 [[package]]
 name = "svgtypes"
-version = "0.12.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71499ff2d42f59d26edb21369a308ede691421f79ebc0f001e2b1fd3a7c9e52"
+checksum = "6e44e288cd960318917cbd540340968b90becc8bc81f171345d706e7a89d9d70"
 dependencies = [
  "kurbo",
  "siphasher 0.3.11",
@@ -2289,20 +2268,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "1.0.109"
+version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.39"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2311,21 +2279,20 @@ dependencies = [
 
 [[package]]
 name = "synstructure"
-version = "0.13.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06"
+checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
- "unicode-xid",
+ "syn",
 ]
 
 [[package]]
 name = "syntect"
-version = "5.1.0"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91"
+checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1"
 dependencies = [
  "bincode",
  "bitflags 1.3.2",
@@ -2334,8 +2301,9 @@ dependencies = [
  "fnv",
  "once_cell",
  "plist",
- "regex-syntax 0.7.5",
+ "regex-syntax",
  "serde",
+ "serde_derive",
  "serde_json",
  "thiserror",
  "walkdir",
@@ -2361,63 +2329,55 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.8.1"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand 2.0.1",
- "redox_syscall 0.4.1",
  "rustix",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
-]
-
-[[package]]
-name = "thread_local"
-version = "1.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
-dependencies = [
- "cfg-if",
- "once_cell",
+ "syn",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.20"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
+ "deranged",
  "itoa",
+ "num-conv",
+ "powerfmt",
  "serde",
  "time-core",
  "time-macros",
@@ -2425,24 +2385,25 @@ dependencies = [
 
 [[package]]
 name = "time-core"
-version = "0.1.0"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.8"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
 [[package]]
 name = "tiny-skia"
-version = "0.11.2"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b72a92a05db376db09fe6d50b7948d106011761c05a6a45e23e17ee9b556222"
+checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
 dependencies = [
  "arrayref",
  "arrayvec",
@@ -2455,9 +2416,9 @@ dependencies = [
 
 [[package]]
 name = "tiny-skia-path"
-version = "0.11.2"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ac3865b9708fc7e1961a65c3a4fa55e984272f33092d3c859929f887fceb647"
+checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
 dependencies = [
  "arrayref",
  "bytemuck",
@@ -2492,9 +2453,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -2513,11 +2474,11 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.21.0"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
 dependencies = [
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -2525,90 +2486,23 @@ dependencies = [
 ]
 
 [[package]]
-name = "tracing"
-version = "0.1.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
-dependencies = [
- "pin-project-lite",
- "tracing-attributes",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-attributes"
-version = "0.1.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.39",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
-dependencies = [
- "once_cell",
- "valuable",
-]
-
-[[package]]
-name = "tracing-error"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e"
-dependencies = [
- "tracing",
- "tracing-subscriber",
-]
-
-[[package]]
-name = "tracing-flame"
-version = "0.2.0"
+name = "ttf-parser"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bae117ee14789185e129aaee5d93750abe67fdc5a9a62650452bfe4e122a3a9"
-dependencies = [
- "lazy_static",
- "tracing",
- "tracing-subscriber",
-]
+checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
 
 [[package]]
-name = "tracing-log"
-version = "0.2.0"
+name = "two-face"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+checksum = "37bed2135b2459c7eefba72c906d374697eb15949c205f2f124e3636a46b5eeb"
 dependencies = [
- "log",
  "once_cell",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-subscriber"
-version = "0.3.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
-dependencies = [
- "nu-ansi-term",
- "sharded-slab",
- "smallvec",
- "thread_local",
- "tracing-core",
- "tracing-log",
+ "serde",
+ "syntect",
 ]
 
 [[package]]
-name = "ttf-parser"
-version = "0.19.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1"
-
-[[package]]
 name = "typed-arena"
 version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2616,10 +2510,10 @@ checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
 
 [[package]]
 name = "typst"
-version = "0.10.0"
+version = "0.11.0"
 dependencies = [
  "az",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "chinese-number",
  "ciborium",
  "comemo",
@@ -2633,31 +2527,40 @@ dependencies = [
  "icu_provider_adapters",
  "icu_provider_blob",
  "icu_segmenter",
+ "if_chain",
  "image",
- "indexmap 2.1.0",
+ "indexmap 2.2.5",
+ "kamadak-exif",
  "kurbo",
  "lipsum",
  "log",
  "once_cell",
  "palette",
+ "phf",
+ "png",
+ "portable-atomic",
+ "qcms",
  "rayon",
  "regex",
  "roxmltree",
  "rustybuzz",
  "serde",
  "serde_json",
- "serde_yaml 0.9.27",
+ "serde_yaml 0.9.32",
  "siphasher 1.0.0",
  "smallvec",
  "stacker",
  "syntect",
  "time",
  "toml",
- "tracing",
  "ttf-parser",
+ "two-face",
  "typed-arena",
+ "typst-assets",
+ "typst-dev-assets",
  "typst-macros",
  "typst-syntax",
+ "typst-timing",
  "unicode-bidi",
  "unicode-math-class",
  "unicode-script",
@@ -2667,8 +2570,14 @@ dependencies = [
 ]
 
 [[package]]
+name = "typst-assets"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f13f85360328da54847dd7fefaf272dfa5b6d1fdeb53f32938924c39bf5b2c6c"
+
+[[package]]
 name = "typst-cli"
-version = "0.10.0"
+version = "0.11.0"
 dependencies = [
  "chrono",
  "clap",
@@ -2681,58 +2590,79 @@ dependencies = [
  "env_proxy",
  "flate2",
  "fontdb",
- "inferno",
+ "fs_extra",
+ "native-tls",
  "notify",
  "once_cell",
  "open",
+ "openssl",
+ "parking_lot",
  "pathdiff",
- "rustls",
- "rustls-pemfile",
+ "rayon",
  "same-file",
  "self-replace",
  "semver",
  "serde",
  "serde_json",
- "serde_yaml 0.9.27",
- "siphasher 1.0.0",
+ "serde_yaml 0.9.32",
  "tar",
  "tempfile",
- "tracing",
- "tracing-error",
- "tracing-flame",
- "tracing-subscriber",
+ "toml",
  "typst",
+ "typst-assets",
+ "typst-macros",
  "typst-pdf",
  "typst-render",
  "typst-svg",
+ "typst-timing",
  "ureq",
  "xz2",
  "zip",
 ]
 
 [[package]]
+name = "typst-dev-assets"
+version = "0.11.0"
+source = "git+https://github.com/typst/typst-dev-assets?tag=v0.11.0#e0ef7ad46f28a440c41bc8e78563ace86cc02678"
+
+[[package]]
 name = "typst-docs"
-version = "0.10.0"
+version = "0.11.0"
 dependencies = [
+ "clap",
  "comemo",
  "ecow",
  "heck",
- "include_dir",
  "once_cell",
  "pulldown-cmark",
  "serde",
- "serde_yaml 0.9.27",
+ "serde_json",
+ "serde_yaml 0.9.32",
  "syntect",
  "typed-arena",
  "typst",
- "unicode_names2",
+ "typst-assets",
+ "typst-dev-assets",
+ "typst-render",
  "unscanny",
  "yaml-front-matter",
 ]
 
 [[package]]
+name = "typst-fuzz"
+version = "0.11.0"
+dependencies = [
+ "comemo",
+ "libfuzzer-sys",
+ "typst",
+ "typst-assets",
+ "typst-render",
+ "typst-syntax",
+]
+
+[[package]]
 name = "typst-ide"
-version = "0.10.0"
+version = "0.11.0"
 dependencies = [
  "comemo",
  "ecow",
@@ -2745,19 +2675,19 @@ dependencies = [
 
 [[package]]
 name = "typst-macros"
-version = "0.10.0"
+version = "0.11.0"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
 name = "typst-pdf"
-version = "0.10.0"
+version = "0.11.0"
 dependencies = [
- "base64",
+ "base64 0.22.0",
  "bytemuck",
  "comemo",
  "ecow",
@@ -2767,9 +2697,11 @@ dependencies = [
  "pdf-writer",
  "subsetter",
  "svg2pdf",
- "tracing",
  "ttf-parser",
  "typst",
+ "typst-assets",
+ "typst-macros",
+ "typst-timing",
  "unicode-properties",
  "unscanny",
  "xmp-writer",
@@ -2777,7 +2709,7 @@ dependencies = [
 
 [[package]]
 name = "typst-render"
-version = "0.10.0"
+version = "0.11.0"
 dependencies = [
  "bytemuck",
  "comemo",
@@ -2789,33 +2721,35 @@ dependencies = [
  "tiny-skia",
  "ttf-parser",
  "typst",
+ "typst-macros",
+ "typst-timing",
  "usvg",
 ]
 
 [[package]]
 name = "typst-svg"
-version = "0.10.0"
+version = "0.11.0"
 dependencies = [
- "base64",
+ "base64 0.22.0",
  "comemo",
  "ecow",
  "flate2",
- "tracing",
  "ttf-parser",
  "typst",
+ "typst-macros",
+ "typst-timing",
  "xmlparser",
  "xmlwriter",
 ]
 
 [[package]]
 name = "typst-syntax"
-version = "0.10.0"
+version = "0.11.0"
 dependencies = [
  "comemo",
  "ecow",
  "once_cell",
  "serde",
- "tracing",
  "unicode-ident",
  "unicode-math-class",
  "unicode-script",
@@ -2825,18 +2759,20 @@ dependencies = [
 
 [[package]]
 name = "typst-tests"
-version = "0.10.0"
+version = "0.11.0"
 dependencies = [
  "clap",
  "comemo",
  "ecow",
- "iai",
  "once_cell",
  "oxipng",
  "rayon",
  "tiny-skia",
  "ttf-parser",
  "typst",
+ "typst-assets",
+ "typst-dev-assets",
+ "typst-ide",
  "typst-pdf",
  "typst-render",
  "typst-svg",
@@ -2845,19 +2781,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "typst-timing"
+version = "0.11.0"
+dependencies = [
+ "parking_lot",
+ "serde",
+ "serde_json",
+ "typst-syntax",
+]
+
+[[package]]
 name = "unic-langid"
-version = "0.9.1"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "398f9ad7239db44fd0f80fe068d12ff22d78354080332a5077dc6f52f14dcf2f"
+checksum = "238722e6d794ed130f91f4ea33e01fcff4f188d92337a21297892521c72df516"
 dependencies = [
  "unic-langid-impl",
 ]
 
 [[package]]
 name = "unic-langid-impl"
-version = "0.9.1"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e35bfd2f2b8796545b55d7d3fd3e89a0613f68a0d1c8bc28cb7ff96b411a35ff"
+checksum = "4bd55a2063fdea4ef1f8633243a7b0524cbeef1905ae04c31a1c9b9775c55bc6"
 dependencies = [
  "serde",
  "tinystr",
@@ -2874,9 +2820,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-bidi-mirroring"
@@ -2904,30 +2850,30 @@ checksum = "7d246cf599d5fae3c8d56e04b20eb519adb89a8af8d0b0fbcded369aa3647d65"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-properties"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7f91c8b21fbbaa18853c3d0801c78f4fc94cdb976699bb03e832e75f7fd22f0"
+checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
 
 [[package]]
 name = "unicode-script"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc"
+checksum = "ad8d71f5726e5f285a935e9fe8edfd53f0491eb6e9a5774097fdabee7cd8c9cd"
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-vo"
@@ -2942,39 +2888,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
-name = "unicode-xid"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-
-[[package]]
-name = "unicode_names2"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d5506ae2c3c1ccbdf468e52fc5ef536c2ccd981f01273a4cb81aa61021f3a5f"
-dependencies = [
- "phf",
- "unicode_names2_generator",
-]
-
-[[package]]
-name = "unicode_names2_generator"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6dfc680313e95bc6637fa278cd7a22390c3c2cd7b8b2bd28755bc6c0fc811e7"
-dependencies = [
- "getopts",
- "log",
- "phf_codegen",
- "rand",
- "time",
-]
-
-[[package]]
 name = "unsafe-libyaml"
-version = "0.2.9"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa"
+checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b"
 
 [[package]]
 name = "unscanny"
@@ -2983,27 +2900,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47"
 
 [[package]]
-name = "untrusted"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
-
-[[package]]
 name = "ureq"
-version = "2.9.1"
+version = "2.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97"
+checksum = "11f214ce18d8b2cbe84ed3aa6486ed3f5b285cf8d8fbdbce9f3f767a724adc35"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "flate2",
  "log",
+ "native-tls",
  "once_cell",
- "rustls",
- "rustls-webpki",
  "serde",
  "serde_json",
  "url",
- "webpki-roots",
 ]
 
 [[package]]
@@ -3020,11 +2929,11 @@ dependencies = [
 
 [[package]]
 name = "usvg"
-version = "0.36.0"
+version = "0.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c51daa774fe9ee5efcf7b4fec13019b8119cda764d9a8b5b06df02bb1445c656"
+checksum = "377f62b4a3c173de8654c1aa80ab1dac1154e6f13a779a9943e53780120d1625"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "log",
  "pico-args",
  "usvg-parser",
@@ -3035,9 +2944,9 @@ dependencies = [
 
 [[package]]
 name = "usvg-parser"
-version = "0.36.0"
+version = "0.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45c88a5ffaa338f0e978ecf3d4e00d8f9f493e29bed0752e1a808a1db16afc40"
+checksum = "351a05e6f2023d6b4e946f734240a3927aefdcf930d7d42587a2c8a8869814b0"
 dependencies = [
  "data-url",
  "flate2",
@@ -3053,9 +2962,9 @@ dependencies = [
 
 [[package]]
 name = "usvg-text-layout"
-version = "0.36.0"
+version = "0.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d2374378cb7a3fb8f33894e0fdb8625e1bbc4f25312db8d91f862130b541593"
+checksum = "8c41888b9d5cf431fe852eaf9d047bbde83251b98f1749c2f08b1071e6db46e2"
 dependencies = [
  "fontdb",
  "kurbo",
@@ -3069,11 +2978,10 @@ dependencies = [
 
 [[package]]
 name = "usvg-tree"
-version = "0.36.0"
+version = "0.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6cacb0c5edeaf3e80e5afcf5b0d4004cc1d36318befc9a7c6606507e5d0f4062"
+checksum = "18863e0404ed153d6e56362c5b1146db9f4f262a3244e3cf2dbe7d8a85909f05"
 dependencies = [
- "rctree",
  "strict-num",
  "svgtypes",
  "tiny-skia-path",
@@ -3081,9 +2989,9 @@ dependencies = [
 
 [[package]]
 name = "utf8_iter"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a8922555b9500e3d865caed19330172cd67cbf82203f1a3311d8c305cc9f33"
+checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
 
 [[package]]
 name = "utf8parse"
@@ -3092,10 +3000,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
-name = "valuable"
-version = "0.1.0"
+name = "vcpkg"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
 
 [[package]]
 name = "version_check"
@@ -3105,9 +3013,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[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",
@@ -3121,9 +3029,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -3131,24 +3039,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -3156,28 +3064,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "wasmi"
-version = "0.31.0"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f341edb80021141d4ae6468cbeefc50798716a347d4085c3811900049ea8945"
+checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7"
 dependencies = [
  "smallvec",
  "spin",
@@ -3188,9 +3096,9 @@ dependencies = [
 
 [[package]]
 name = "wasmi_arena"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468"
+checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073"
 
 [[package]]
 name = "wasmi_core"
@@ -3214,16 +3122,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "webpki-roots"
-version = "0.25.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
-
-[[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "winapi"
@@ -3258,11 +3160,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows-core"
-version = "0.51.1"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -3271,7 +3173,16 @@ version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -3280,13 +3191,28 @@ version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -3296,46 +3222,88 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+
+[[package]]
 name = "windows_aarch64_msvc"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+
+[[package]]
 name = "windows_i686_gnu"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
+name = "windows_i686_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+
+[[package]]
 name = "windows_i686_msvc"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
+name = "windows_i686_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+
+[[package]]
 name = "windows_x86_64_gnu"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[package]]
 name = "windows_x86_64_gnullvm"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[package]]
 name = "windows_x86_64_msvc"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
 name = "winnow"
-version = "0.5.19"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
@@ -3357,11 +3325,13 @@ dependencies = [
 
 [[package]]
 name = "xattr"
-version = "1.0.1"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
 dependencies = [
  "libc",
+ "linux-raw-sys",
+ "rustix",
 ]
 
 [[package]]
@@ -3430,31 +3400,11 @@ checksum = "9e6936f0cce458098a201c245a11bef556c6a0181129c7034d10d76d1ec3a2b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
  "synstructure",
 ]
 
 [[package]]
-name = "zerocopy"
-version = "0.7.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0"
-dependencies = [
- "zerocopy-derive",
-]
-
-[[package]]
-name = "zerocopy-derive"
-version = "0.7.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.39",
-]
-
-[[package]]
 name = "zerofrom"
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3471,7 +3421,7 @@ checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
  "synstructure",
 ]
 
@@ -3507,7 +3457,7 @@ checksum = "7b4e5997cbf58990550ef1f0e5124a05e47e1ebd33a84af25739be6031a62c20"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
diff --git a/nixpkgs/pkgs/by-name/ty/typst/package.nix b/nixpkgs/pkgs/by-name/ty/typst/package.nix
index 24d333f669cc..e470a7f4ce61 100644
--- a/nixpkgs/pkgs/by-name/ty/typst/package.nix
+++ b/nixpkgs/pkgs/by-name/ty/typst/package.nix
@@ -2,38 +2,48 @@
 , rustPlatform
 , fetchFromGitHub
 , installShellFiles
+, pkg-config
+, openssl
+, xz
 , stdenv
 , darwin
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "typst";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "typst";
     repo = "typst";
     rev = "v${version}";
-    hash = "sha256-qiskc0G/ZdLRZjTicoKIOztRFem59TM4ki23Rl55y9s=";
+    hash = "sha256-RbkirnVrhYT/OuZSdJWMOvQXAeBmsFICsCrezyT6ukA=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "iai-0.1.1" = "sha256-EdNzCPht5chg7uF9O8CtPWR/bzSYyfYIXNdLltqdlR0=";
+      "typst-dev-assets-0.11.0" = "sha256-wTmux3GsUIU+PX6SO9rrQHr3korPFBeP/Z8byC97KUI=";
     };
   };
 
   nativeBuildInputs = [
     installShellFiles
+    pkg-config
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
+  buildInputs = [
+    openssl
+    xz
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.CoreFoundation
     darwin.apple_sdk.frameworks.CoreServices
+    darwin.apple_sdk.frameworks.Security
   ];
 
   env = {
     GEN_ARTIFACTS = "artifacts";
+    OPENSSL_NO_VENDOR = true;
   };
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/tools/typesetting/typstfmt/Cargo.lock b/nixpkgs/pkgs/by-name/ty/typstfmt/Cargo.lock
index ecfb8d4030f5..41ecc6fece65 100644
--- a/nixpkgs/pkgs/tools/typesetting/typstfmt/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/ty/typstfmt/Cargo.lock
@@ -19,9 +19,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
 name = "bstr"
@@ -36,9 +36,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.8.0"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
 dependencies = [
  "memchr",
  "serde",
@@ -85,9 +85,9 @@ dependencies = [
 
 [[package]]
 name = "console"
-version = "0.15.7"
+version = "0.15.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
 dependencies = [
  "encode_unicode",
  "lazy_static",
@@ -117,18 +117,18 @@ dependencies = [
 
 [[package]]
 name = "ecow"
-version = "0.1.2"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d1990d053cf6edf3f030682dba3b0eb65ef01fabb2686072765d8a17d6728e8"
+checksum = "e6ea5e3f9cda726431da9d1a8d5a29785d544b31e98e1ca7a210906244002e02"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "encode_unicode"
@@ -144,9 +144,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -171,9 +171,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
 dependencies = [
  "aho-corasick",
- "bstr 1.8.0",
+ "bstr 1.9.1",
  "log",
- "regex-automata 0.4.3",
+ "regex-automata 0.4.5",
  "regex-syntax",
 ]
 
@@ -185,9 +185,9 @@ checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -195,9 +195,9 @@ dependencies = [
 
 [[package]]
 name = "insta"
-version = "1.34.0"
+version = "1.35.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc"
+checksum = "7c985c1bef99cf13c58fade470483d81a2bfe846ebde60ed28cc2dddec2df9e2"
 dependencies = [
  "console",
  "lazy_static",
@@ -229,9 +229,9 @@ checksum = "baff4b617f7df3d896f97fe922b64817f6cd9a756bb81d40f8883f2f66dcb401"
 
 [[package]]
 name = "libc"
-version = "0.2.150"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libredox"
@@ -239,7 +239,7 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall",
 ]
@@ -258,9 +258,9 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "nu-ansi-term"
@@ -274,9 +274,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "overload"
@@ -292,18 +292,18 @@ checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.70"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -330,13 +330,13 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.4.3",
+ "regex-automata 0.4.5",
  "regex-syntax",
 ]
 
@@ -348,9 +348,9 @@ checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -374,18 +374,18 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -394,9 +394,9 @@ dependencies = [
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
@@ -412,9 +412,9 @@ dependencies = [
 
 [[package]]
 name = "similar"
-version = "2.3.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597"
+checksum = "32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21"
 dependencies = [
  "bstr 0.2.17",
  "unicode-segmentation",
@@ -438,15 +438,15 @@ checksum = "54ac45299ccbd390721be55b412d41931911f654fa99e2cb8bfb57184b2061fe"
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "syn"
-version = "2.0.39"
+version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -455,18 +455,18 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -475,9 +475,9 @@ dependencies = [
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -585,8 +585,8 @@ dependencies = [
 
 [[package]]
 name = "typst-syntax"
-version = "0.7.0"
-source = "git+https://github.com/typst/typst.git?tag=v0.7.0#da8367e189b02918a8fe1a98fd3059fd11a82cd9"
+version = "0.10.0"
+source = "git+https://github.com/typst/typst.git?tag=v0.10.0#70ca0d257bb4ba927f63260e20443f244e0bb58c"
 dependencies = [
  "comemo",
  "ecow",
@@ -595,26 +595,20 @@ dependencies = [
  "tracing",
  "unicode-ident",
  "unicode-math-class",
+ "unicode-script",
  "unicode-segmentation",
  "unscanny",
 ]
 
 [[package]]
 name = "typstfmt"
-version = "0.2.7"
+version = "0.2.9"
 dependencies = [
  "confy",
- "lexopt",
- "typstfmt_lib",
-]
-
-[[package]]
-name = "typstfmt_lib"
-version = "0.2.7"
-dependencies = [
  "globmatch",
  "insta",
  "itertools",
+ "lexopt",
  "regex",
  "serde",
  "similar-asserts",
@@ -622,7 +616,7 @@ dependencies = [
  "tracing",
  "tracing-subscriber",
  "typst-syntax",
- "unicode-segmentation",
+ "unicode-width",
 ]
 
 [[package]]
@@ -638,10 +632,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7d246cf599d5fae3c8d56e04b20eb519adb89a8af8d0b0fbcded369aa3647d65"
 
 [[package]]
+name = "unicode-script"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad8d71f5726e5f285a935e9fe8edfd53f0491eb6e9a5774097fdabee7cd8c9cd"
+
+[[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "unscanny"
@@ -704,18 +710,18 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows-sys"
-version = "0.45.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
  "windows-targets",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.42.2"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
@@ -728,51 +734,51 @@ dependencies = [
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.42.2"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.42.2"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.42.2"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.42.2"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.42.2"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.42.2"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.42.2"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "winnow"
-version = "0.5.25"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e87b8dfbe3baffbe687eef2e164e32286eff31a5ee16463ce03d991643ec94"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
 dependencies = [
  "memchr",
 ]
diff --git a/nixpkgs/pkgs/tools/typesetting/typstfmt/default.nix b/nixpkgs/pkgs/by-name/ty/typstfmt/package.nix
index 2305998e94a2..25816151d583 100644
--- a/nixpkgs/pkgs/tools/typesetting/typstfmt/default.nix
+++ b/nixpkgs/pkgs/by-name/ty/typstfmt/package.nix
@@ -1,29 +1,32 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "typstfmt";
-  version = "0.2.7";
+  version = "0.2.9";
 
   src = fetchFromGitHub {
     owner = "astrale-sharp";
     repo = "typstfmt";
     rev = version;
-    hash = "sha256-LBYsTCjZ+U+lgd7Z3H1sBcWwseoHsuepPd66bWgfvhI=";
+    hash = "sha256-bSjUr6tHQrmni/YmApHrvY2cVz3xf1VKfg35BJjuOZM=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "typst-syntax-0.7.0" = "sha256-yrtOmlFAKOqAmhCP7n0HQCOQpU3DWyms5foCdUb9QTg=";
+      "typst-syntax-0.10.0" = "sha256-qiskc0G/ZdLRZjTicoKIOztRFem59TM4ki23Rl55y9s=";
     };
   };
 
-  meta = with lib; {
+  meta = {
+    changelog = "https://github.com/astrale-sharp/typstfmt/blob/${src.rev}/CHANGELOG.md";
     description = "A formatter for the Typst language";
     homepage = "https://github.com/astrale-sharp/typstfmt";
-    changelog = "https://github.com/astrale-sharp/typstfmt/blob/${src.rev}/CHANGELOG.md";
-    license = licenses.mit;
-    maintainers = with maintainers; [ figsoda geri1701 ];
+    license = lib.licenses.mit;
     mainProgram = "typstfmt";
+    maintainers = with lib.maintainers; [ figsoda geri1701 ];
   };
 }
diff --git a/nixpkgs/pkgs/by-name/uc/uclibc-ng/package.nix b/nixpkgs/pkgs/by-name/uc/uclibc-ng/package.nix
index b1d4a6474e21..f1e6c36e24a8 100644
--- a/nixpkgs/pkgs/by-name/uc/uclibc-ng/package.nix
+++ b/nixpkgs/pkgs/by-name/uc/uclibc-ng/package.nix
@@ -58,11 +58,11 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "uclibc-ng";
-  version = "1.0.44";
+  version = "1.0.45";
 
   src = fetchurl {
     url = "https://downloads.uclibc-ng.org/releases/${finalAttrs.version}/uClibc-ng-${finalAttrs.version}.tar.xz";
-    sha256 = "sha256-ffnZh5VYJzgvHCQA2lE0Vr7Ltvhovf03c3Jl8cvuyZQ=";
+    sha256 = "sha256-wvTGtuGdfJwiaZKjdG79erkyBARjwV7gvI9BMrV3esQ=";
   };
 
   # 'ftw' needed to build acl, a coreutils dependency
diff --git a/nixpkgs/pkgs/by-name/ud/udebug/package.nix b/nixpkgs/pkgs/by-name/ud/udebug/package.nix
index f3233d8baca8..d52b713418a6 100644
--- a/nixpkgs/pkgs/by-name/ud/udebug/package.nix
+++ b/nixpkgs/pkgs/by-name/ud/udebug/package.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "OpenWrt debugging helper library/service";
+    mainProgram = "udebugd";
     homepage = "https://git.openwrt.org/?p=project/udebug.git;a=summary";
     license = licenses.free;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/unciv/default.nix b/nixpkgs/pkgs/by-name/un/unciv/package.nix
index 703ee9b18b9f..0e2f80f09d96 100644
--- a/nixpkgs/pkgs/games/unciv/default.nix
+++ b/nixpkgs/pkgs/by-name/un/unciv/package.nix
@@ -27,11 +27,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "unciv";
-  version = "4.10.15";
+  version = "4.10.19";
 
   src = fetchurl {
     url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar";
-    hash = "sha256-SikrApaaGCAQc6ncqI4vRfXSgG/hgfO1wn5B5fj+W6Y=";
+    hash = "sha256-f9fg2Clz9CjoC8xzCguJ2A3Aczom+KjEyIlMJC2oS/o=";
   };
 
   dontUnpack = true;
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An open-source Android/Desktop remake of Civ V";
+    mainProgram = "unciv";
     homepage = "https://github.com/yairm210/Unciv";
     maintainers = with maintainers; [ tex ];
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/nixpkgs/pkgs/by-name/un/unl0kr/package.nix b/nixpkgs/pkgs/by-name/un/unl0kr/package.nix
index fa72e2af5c18..345a07ea9291 100644
--- a/nixpkgs/pkgs/by-name/un/unl0kr/package.nix
+++ b/nixpkgs/pkgs/by-name/un/unl0kr/package.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Framebuffer-based disk unlocker for the initramfs based on LVGL";
+    mainProgram = "unl0kr";
     homepage = "https://gitlab.com/cherrypicker/unl0kr";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ tomfitzhenry ];
diff --git a/nixpkgs/pkgs/by-name/un/unrar-free/package.nix b/nixpkgs/pkgs/by-name/un/unrar-free/package.nix
index 8c34f3f0aa81..ca6b7f7e526e 100644
--- a/nixpkgs/pkgs/by-name/un/unrar-free/package.nix
+++ b/nixpkgs/pkgs/by-name/un/unrar-free/package.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "unrar-free";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitLab {
     owner = "bgermann";
     repo = "unrar-free";
     rev = finalAttrs.version;
-    hash = "sha256-ONLc/mJt13Lfd61qraCAB9jOPzdPxoYLzq69llRf+BU=";
+    hash = "sha256-hVUEvlaVx2Ai1lYXU6hwiLToEMhCPWlSIh1WrbYKmco=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/tools/archivers/unrar/default.nix b/nixpkgs/pkgs/by-name/un/unrar/package.nix
index 8b4f46088b2d..ea97195c2ae3 100644
--- a/nixpkgs/pkgs/tools/archivers/unrar/default.nix
+++ b/nixpkgs/pkgs/by-name/un/unrar/package.nix
@@ -5,12 +5,12 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "unrar";
-  version = "6.2.12";
+  version = "7.0.7";
 
   src = fetchzip {
     url = "https://www.rarlab.com/rar/unrarsrc-${finalAttrs.version}.tar.gz";
     stripRoot = false;
-    hash = "sha256-VAL3o9JGmkAcEssa/P/SL9nyxnigb7dX9YZBHrG9f0A=";
+    hash = "sha256-S7BMywydetDh1GINcK3k3fN9ciDoKTCAe/1tkgykoAQ=";
   };
 
   sourceRoot = finalAttrs.src.name;
diff --git a/nixpkgs/pkgs/tools/archivers/unrar/setup-hook.sh b/nixpkgs/pkgs/by-name/un/unrar/setup-hook.sh
index 41d6a5cd217b..41d6a5cd217b 100644
--- a/nixpkgs/pkgs/tools/archivers/unrar/setup-hook.sh
+++ b/nixpkgs/pkgs/by-name/un/unrar/setup-hook.sh
diff --git a/nixpkgs/pkgs/by-name/un/unrar_6/package.nix b/nixpkgs/pkgs/by-name/un/unrar_6/package.nix
new file mode 100644
index 000000000000..5f2248ce847e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/un/unrar_6/package.nix
@@ -0,0 +1,15 @@
+{ unrar
+, fetchzip
+}:
+
+unrar.overrideAttrs (finalAttrs: _: {
+  version = "6.2.12";
+
+  src = fetchzip {
+    url = "https://www.rarlab.com/rar/unrarsrc-${finalAttrs.version}.tar.gz";
+    stripRoot = false;
+    hash = "sha256-VAL3o9JGmkAcEssa/P/SL9nyxnigb7dX9YZBHrG9f0A=";
+  };
+
+  sourceRoot = finalAttrs.src.name;
+})
diff --git a/nixpkgs/pkgs/by-name/un/unsilence/package.nix b/nixpkgs/pkgs/by-name/un/unsilence/package.nix
index a8c9ef1d9c95..c82fe04616b6 100644
--- a/nixpkgs/pkgs/by-name/un/unsilence/package.nix
+++ b/nixpkgs/pkgs/by-name/un/unsilence/package.nix
@@ -37,6 +37,7 @@ python3Packages.buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/lagmoellertim/unsilence";
     description = "Console Interface and Library to remove silent parts of a media file";
+    mainProgram = "unsilence";
     license = licenses.mit;
     maintainers = with maintainers; [ esau79p ];
   };
diff --git a/nixpkgs/pkgs/by-name/up/upiano/package.nix b/nixpkgs/pkgs/by-name/up/upiano/package.nix
index d13ff18bd425..351e80f0b6d0 100644
--- a/nixpkgs/pkgs/by-name/up/upiano/package.nix
+++ b/nixpkgs/pkgs/by-name/up/upiano/package.nix
@@ -6,19 +6,24 @@
 python3.pkgs.buildPythonApplication rec {
   pname = "upiano";
   version = "0.1.2";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "eliasdorneles";
     repo = "upiano";
-    rev = "v${version}";
+    rev = "refs/tags/v${version}";
     hash = "sha256-5WhflvUCjzW4ZJ+PLUTMbKcUnQa3ChkDjl0R5YvjBWk=";
     forceFetchGit = true;
     fetchLFS = true;
   };
 
-  nativeBuildInputs = [
-    python3.pkgs.poetry-core
+  pythonRelaxDeps = [
+    "textual"
+  ];
+
+  nativeBuildInputs = with python3.pkgs; [
+    poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -26,7 +31,9 @@ python3.pkgs.buildPythonApplication rec {
     textual
   ];
 
-  pythonImportsCheck = [ "upiano" ];
+  pythonImportsCheck = [
+    "upiano"
+  ];
 
   meta = with lib; {
     description = "A Piano in your terminal";
diff --git a/nixpkgs/pkgs/by-name/us/usql/package.nix b/nixpkgs/pkgs/by-name/us/usql/package.nix
index 7c0b093dfffc..21a5bc99e67b 100644
--- a/nixpkgs/pkgs/by-name/us/usql/package.nix
+++ b/nixpkgs/pkgs/by-name/us/usql/package.nix
@@ -50,11 +50,6 @@ buildGoModule rec {
     "no_adodb"
   ];
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   ldflags = [
     "-s"
     "-w"
diff --git a/nixpkgs/pkgs/by-name/uv/uv/Cargo.lock b/nixpkgs/pkgs/by-name/uv/uv/Cargo.lock
index cbab9d550a88..c9f0be4d721f 100644
--- a/nixpkgs/pkgs/by-name/uv/uv/Cargo.lock
+++ b/nixpkgs/pkgs/by-name/uv/uv/Cargo.lock
@@ -123,15 +123,15 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.80"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
 
 [[package]]
 name = "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"
@@ -146,6 +146,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
 
 [[package]]
+name = "assert-json-diff"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"
+dependencies = [
+ "serde",
+ "serde_json",
+]
+
+[[package]]
 name = "assert_cmd"
 version = "2.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -211,7 +221,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -222,7 +232,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -266,6 +276,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
+name = "backoff"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
+dependencies = [
+ "futures-core",
+ "getrandom",
+ "instant",
+ "pin-project-lite",
+ "rand",
+ "tokio",
+]
+
+[[package]]
 name = "backtrace"
 version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -372,20 +396,20 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.9.0"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
 dependencies = [
  "memchr",
- "regex-automata 0.4.5",
+ "regex-automata 0.4.6",
  "serde",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytecheck"
@@ -476,9 +500,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 dependencies = [
  "jobserver",
  "libc",
@@ -491,6 +515,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
 name = "charset"
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -502,9 +532,9 @@ dependencies = [
 
 [[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",
@@ -512,7 +542,7 @@ dependencies = [
  "num-traits",
  "serde",
  "wasm-bindgen",
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -544,9 +574,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.5.0"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f"
+checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -554,9 +584,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.5.0"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
  "anstream",
  "anstyle",
@@ -614,7 +644,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -804,9 +834,9 @@ dependencies = [
 
 [[package]]
 name = "ctrlc"
-version = "3.4.2"
+version = "3.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b467862cc8610ca6fc9a1532d7777cee0804e678ab45410897b9396495994a0b"
+checksum = "672465ae37dc1bc6380a6547a8883d5dd397b0f1faaad4f265726cc7042a5345"
 dependencies = [
  "nix",
  "windows-sys 0.52.0",
@@ -838,6 +868,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5"
 
 [[package]]
+name = "deadpool"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb84100978c1c7b37f09ed3ce3e5f843af02c2a2c431bae5b19230dad2c1b490"
+dependencies = [
+ "async-trait",
+ "deadpool-runtime",
+ "num_cpus",
+ "tokio",
+]
+
+[[package]]
+name = "deadpool-runtime"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "63dfa964fe2a66f3fde91fc70b267fe193d822c7e603e2a675a49a7f46ad3f49"
+
+[[package]]
 name = "deranged"
 version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -915,6 +963,7 @@ version = "0.0.1"
 dependencies = [
  "anyhow",
  "cache-key",
+ "chrono",
  "data-encoding",
  "distribution-filename",
  "fs-err",
@@ -973,6 +1022,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "encoding_rs_io"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cc3c5651fb62ab8aa3103998dade57efdd028544bd300516baa31840c252a83"
+dependencies = [
+ "encoding_rs",
+]
+
+[[package]]
 name = "equivalent"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1193,7 +1251,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1295,7 +1353,7 @@ dependencies = [
  "aho-corasick",
  "bstr",
  "log",
- "regex-automata 0.4.5",
+ "regex-automata 0.4.6",
  "regex-syntax 0.8.2",
 ]
 
@@ -1311,29 +1369,37 @@ dependencies = [
 ]
 
 [[package]]
-name = "goblin"
-version = "0.8.0"
+name = "h2"
+version = "0.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb07a4ffed2093b118a525b1d8f5204ae274faed5604537caf7135d0f18d9887"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
 dependencies = [
- "log",
- "plain",
- "scroll",
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 0.2.12",
+ "indexmap 2.2.5",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
 ]
 
 [[package]]
 name = "h2"
-version = "0.3.24"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943"
 dependencies = [
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
  "futures-util",
- "http",
- "indexmap 2.2.3",
+ "http 1.1.0",
+ "indexmap 2.2.5",
  "slab",
  "tokio",
  "tokio-util",
@@ -1342,9 +1408,9 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "2.3.1"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
 dependencies = [
  "cfg-if",
  "crunchy",
@@ -1373,9 +1439,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.6"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -1422,13 +1488,47 @@ dependencies = [
 ]
 
 [[package]]
+name = "http"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
 name = "http-body"
 version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
- "http",
+ "http 0.2.12",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-body"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+dependencies = [
+ "bytes",
+ "http 1.1.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "http 1.1.0",
+ "http-body 1.0.0",
  "pin-project-lite",
 ]
 
@@ -1460,9 +1560,9 @@ dependencies = [
  "futures-channel",
  "futures-core",
  "futures-util",
- "h2",
- "http",
- "http-body",
+ "h2 0.3.24",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "httparse",
  "httpdate",
  "itoa",
@@ -1475,20 +1575,57 @@ dependencies = [
 ]
 
 [[package]]
+name = "hyper"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "h2 0.4.2",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "smallvec",
+ "tokio",
+ "want",
+]
+
+[[package]]
 name = "hyper-rustls"
 version = "0.24.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
  "futures-util",
- "http",
- "hyper",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "rustls",
  "tokio",
  "tokio-rustls",
 ]
 
 [[package]]
+name = "hyper-util"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "hyper 1.2.0",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+]
+
+[[package]]
 name = "iana-time-zone"
 version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1499,7 +1636,7 @@ dependencies = [
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows-core",
+ "windows-core 0.52.0",
 ]
 
 [[package]]
@@ -1531,7 +1668,7 @@ dependencies = [
  "globset",
  "log",
  "memchr",
- "regex-automata 0.4.5",
+ "regex-automata 0.4.6",
  "same-file",
  "walkdir",
  "winapi-util",
@@ -1555,9 +1692,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.3"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -1614,9 +1751,8 @@ dependencies = [
  "once_cell",
  "pathdiff",
  "pep440_rs",
- "platform-host",
  "platform-info",
- "plist",
+ "platform-tags",
  "pypi-types",
  "reflink-copy",
  "regex",
@@ -1711,9 +1847,9 @@ checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 
 [[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",
 ]
@@ -1946,7 +2082,7 @@ checksum = "71e622f2a0dd84cbca79bc6c3c33f4fd7dc69faf992216516aacc1d136102800"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1986,9 +2122,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "wasi",
@@ -2015,12 +2151,13 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.27.1"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
 dependencies = [
  "bitflags 2.4.2",
  "cfg-if",
+ "cfg_aliases",
  "libc",
 ]
 
@@ -2126,9 +2263,9 @@ dependencies = [
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.99"
+version = "0.9.101"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
+checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
 dependencies = [
  "cc",
  "libc",
@@ -2144,6 +2281,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
 
 [[package]]
+name = "os_info"
+version = "3.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e"
+dependencies = [
+ "log",
+ "winapi",
+]
+
+[[package]]
 name = "overload"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2179,6 +2326,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core 0.9.9",
+]
+
+[[package]]
 name = "parking_lot_core"
 version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2269,7 +2426,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
 ]
 
 [[package]]
@@ -2280,22 +2437,22 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
 
 [[package]]
 name = "pin-project"
-version = "1.1.4"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.4"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2317,28 +2474,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
-name = "plain"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
-
-[[package]]
-name = "platform-host"
-version = "0.0.1"
-dependencies = [
- "fs-err",
- "goblin",
- "once_cell",
- "platform-info",
- "plist",
- "regex",
- "serde",
- "target-lexicon",
- "thiserror",
- "tracing",
-]
-
-[[package]]
 name = "platform-info"
 version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2352,8 +2487,9 @@ dependencies = [
 name = "platform-tags"
 version = "0.0.1"
 dependencies = [
- "platform-host",
+ "insta",
  "rustc-hash",
+ "serde",
  "thiserror",
 ]
 
@@ -2364,7 +2500,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
 dependencies = [
  "base64 0.21.7",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "line-wrap",
  "quick-xml",
  "serde",
@@ -2373,9 +2509,9 @@ dependencies = [
 
 [[package]]
 name = "png"
-version = "0.17.11"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f6c3c3e617595665b8ea2ff95a86066be38fb121ff920a9c0eb282abcd1da5a"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -2453,9 +2589,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",
 ]
@@ -2483,9 +2619,9 @@ dependencies = [
 [[package]]
 name = "pubgrub"
 version = "0.2.1"
-source = "git+https://github.com/zanieb/pubgrub?rev=332f02b0e436ca8449c7ef5e15b992dd5f35908b#332f02b0e436ca8449c7ef5e15b992dd5f35908b"
+source = "git+https://github.com/astral-sh/pubgrub?rev=addbaf184891d66a2dfd93d241a66d13bfe5de86#addbaf184891d66a2dfd93d241a66d13bfe5de86"
 dependencies = [
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "log",
  "priority-queue",
  "rustc-hash",
@@ -2502,7 +2638,7 @@ dependencies = [
  "indoc",
  "libc",
  "memoffset",
- "parking_lot",
+ "parking_lot 0.12.1",
  "portable-atomic",
  "pyo3-build-config",
  "pyo3-ffi",
@@ -2550,7 +2686,7 @@ dependencies = [
  "proc-macro2",
  "pyo3-macros-backend",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2563,7 +2699,7 @@ dependencies = [
  "proc-macro2",
  "pyo3-build-config",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -2595,7 +2731,7 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3b80f889b6d413c3f8963a2c7db03f95dd6e1d85e1074137cb2013ea2faa8898"
 dependencies = [
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "pep440_rs",
  "pep508_rs",
  "serde",
@@ -2664,9 +2800,9 @@ dependencies = [
 
 [[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",
@@ -2728,9 +2864,9 @@ dependencies = [
 
 [[package]]
 name = "reflink-copy"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "767be24c0da52e7448d495b8d162506a9aa125426651d547d545d6c2b4b65b62"
+checksum = "52b1349400e2ffd64a9fb5ed9008e33c0b8ef86bd5bae8f73080839c7082f1d5"
 dependencies = [
  "cfg-if",
  "rustix",
@@ -2745,7 +2881,7 @@ checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.4.5",
+ "regex-automata 0.4.6",
  "regex-syntax 0.8.2",
 ]
 
@@ -2760,9 +2896,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",
@@ -2806,7 +2942,6 @@ dependencies = [
  "pep508_rs",
  "regex",
  "reqwest",
- "reqwest-middleware",
  "serde",
  "serde_json",
  "tempfile",
@@ -2824,9 +2959,9 @@ dependencies = [
 
 [[package]]
 name = "reqwest"
-version = "0.11.24"
+version = "0.11.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
+checksum = "78bf93c4af7a8bb7d879d51cebe797356ff10ae8516ace542b5182d9dcac10b2"
 dependencies = [
  "async-compression",
  "base64 0.21.7",
@@ -2834,10 +2969,10 @@ dependencies = [
  "encoding_rs",
  "futures-core",
  "futures-util",
- "h2",
- "http",
- "http-body",
- "hyper",
+ "h2 0.3.24",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
  "hyper-rustls",
  "ipnet",
  "js-sys",
@@ -2864,6 +2999,7 @@ dependencies = [
  "wasm-bindgen-futures",
  "wasm-streams",
  "web-sys",
+ "webpki-roots",
  "winreg",
 ]
 
@@ -2875,7 +3011,7 @@ checksum = "88a3e86aa6053e59030e7ce2d2a3b258dd08fc2d337d52f73f6cb480f5858690"
 dependencies = [
  "anyhow",
  "async-trait",
- "http",
+ "http 0.2.12",
  "reqwest",
  "serde",
  "task-local-extensions",
@@ -2883,16 +3019,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "reqwest-netrc"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eca0c58cd4b2978f9697dea94302e772399f559cd175356eb631cb6daaa0b6db"
-dependencies = [
- "reqwest-middleware",
- "rust-netrc",
-]
-
-[[package]]
 name = "reqwest-retry"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2903,9 +3029,9 @@ dependencies = [
  "chrono",
  "futures",
  "getrandom",
- "http",
- "hyper",
- "parking_lot",
+ "http 0.2.12",
+ "hyper 0.14.28",
+ "parking_lot 0.11.2",
  "reqwest",
  "reqwest-middleware",
  "retry-policies",
@@ -2956,16 +3082,17 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.17.7"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
 dependencies = [
  "cc",
+ "cfg-if",
  "getrandom",
  "libc",
  "spin",
  "untrusted",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3142,9 +3269,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "safemem"
@@ -3177,26 +3304,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
-name = "scroll"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6"
-dependencies = [
- "scroll_derive",
-]
-
-[[package]]
-name = "scroll_derive"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.48",
-]
-
-[[package]]
 name = "sct"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3252,7 +3359,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3389,12 +3496,12 @@ checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3447,9 +3554,9 @@ checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2"
 
 [[package]]
 name = "svg"
-version = "0.15.0"
+version = "0.15.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2198f991cd549041203080de947415bae45220eab7253c220b87e3188d19f21a"
+checksum = "683eed9bd9a2b078f92f87d166db38292e8114ab16d4cf23787ad4eecd1bb6e5"
 
 [[package]]
 name = "svgfilters"
@@ -3494,9 +3601,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3510,6 +3617,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
 
 [[package]]
+name = "sys-info"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b3a0d0aba8bf96a0e1ddfdc352fc53b3df7f39318c71854910c3c4b024ae52c"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
 name = "system-configuration"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3559,9 +3676,9 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.10.0"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand",
@@ -3603,7 +3720,7 @@ dependencies = [
  "cfg-if",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3614,7 +3731,7 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
  "test-case-core",
 ]
 
@@ -3640,29 +3757,29 @@ 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.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -3801,7 +3918,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3858,9 +3975,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "af06656561d28735e9c1cd63dfd57132c8155426aa6af24f36a00a351f88c48e"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -3879,11 +3996,11 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.5"
+version = "0.22.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99e68c159e8f5ba8a28c4eb7b0c0c190d77bb479047ca713270048145a9ad28a"
+checksum = "18769cd1cec395d70860ceb4d932812a0b4d06b1a4bb336745a4d21b9496e992"
 dependencies = [
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -3916,7 +4033,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3971,6 +4088,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "tracing-serde"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1"
+dependencies = [
+ "serde",
+ "tracing-core",
+]
+
+[[package]]
 name = "tracing-subscriber"
 version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3980,12 +4107,15 @@ dependencies = [
  "nu-ansi-term 0.46.0",
  "once_cell",
  "regex",
+ "serde",
+ "serde_json",
  "sharded-slab",
  "smallvec",
  "thread_local",
  "tracing",
  "tracing-core",
  "tracing-log",
+ "tracing-serde",
 ]
 
 [[package]]
@@ -4065,18 +4195,18 @@ checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-script"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc"
+checksum = "ad8d71f5726e5f285a935e9fe8edfd53f0491eb6e9a5774097fdabee7cd8c9cd"
 
 [[package]]
 name = "unicode-vo"
@@ -4179,13 +4309,14 @@ checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 
 [[package]]
 name = "uv"
-version = "0.1.16"
+version = "0.1.22"
 dependencies = [
  "anstream",
  "anyhow",
  "assert_cmd",
  "assert_fs",
  "base64 0.21.7",
+ "byteorder",
  "chrono",
  "clap",
  "clap_complete_command",
@@ -4198,7 +4329,7 @@ dependencies = [
  "flate2",
  "fs-err",
  "futures",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "indicatif",
  "indoc",
  "insta",
@@ -4209,7 +4340,6 @@ dependencies = [
  "owo-colors 4.0.0",
  "pep440_rs",
  "pep508_rs",
- "platform-host",
  "platform-tags",
  "predicates",
  "pubgrub",
@@ -4233,6 +4363,7 @@ dependencies = [
  "tracing-tree",
  "unicode-width",
  "url",
+ "uv-auth",
  "uv-build",
  "uv-cache",
  "uv-client",
@@ -4254,8 +4385,20 @@ dependencies = [
 name = "uv-auth"
 version = "0.0.1"
 dependencies = [
+ "async-trait",
+ "base64 0.21.7",
+ "clap",
+ "once_cell",
+ "reqwest",
+ "reqwest-middleware",
+ "rust-netrc",
+ "task-local-extensions",
+ "tempfile",
+ "thiserror",
+ "tokio",
  "tracing",
  "url",
+ "wiremock",
 ]
 
 [[package]]
@@ -4269,8 +4412,8 @@ dependencies = [
  "insta",
  "itertools 0.12.1",
  "once_cell",
+ "pep440_rs",
  "pep508_rs",
- "platform-host",
  "pypi-types",
  "pyproject-toml",
  "regex",
@@ -4282,7 +4425,6 @@ dependencies = [
  "tokio",
  "toml",
  "tracing",
- "uv-extract",
  "uv-fs",
  "uv-interpreter",
  "uv-traits",
@@ -4325,24 +4467,28 @@ dependencies = [
  "fs-err",
  "futures",
  "html-escape",
- "http",
- "hyper",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "insta",
  "install-wheel-rs",
+ "os_info",
  "pep440_rs",
  "pep508_rs",
  "platform-tags",
+ "plist",
  "pypi-types",
  "reqwest",
  "reqwest-middleware",
- "reqwest-netrc",
  "reqwest-retry",
  "rkyv",
  "rmp-serde",
  "rustc-hash",
+ "rustls",
+ "rustls-native-certs",
  "serde",
  "serde_json",
  "sha2",
+ "sys-info",
  "task-local-extensions",
  "tempfile",
  "thiserror",
@@ -4355,9 +4501,11 @@ dependencies = [
  "uv-auth",
  "uv-cache",
  "uv-fs",
+ "uv-interpreter",
  "uv-normalize",
  "uv-version",
  "uv-warnings",
+ "webpki-roots",
 ]
 
 [[package]]
@@ -4380,7 +4528,6 @@ dependencies = [
  "pep440_rs",
  "pep508_rs",
  "petgraph",
- "platform-host",
  "platform-tags",
  "poloto",
  "pypi-types",
@@ -4422,7 +4569,6 @@ dependencies = [
  "futures",
  "itertools 0.12.1",
  "pep508_rs",
- "platform-host",
  "platform-tags",
  "pypi-types",
  "rustc-hash",
@@ -4499,11 +4645,14 @@ dependencies = [
 name = "uv-fs"
 version = "0.0.1"
 dependencies = [
+ "backoff",
  "dunce",
+ "encoding_rs_io",
  "fs-err",
  "fs2",
  "junction",
  "tempfile",
+ "tokio",
  "tracing",
  "urlencoding",
  "uv-warnings",
@@ -4589,7 +4738,6 @@ dependencies = [
  "once_cell",
  "pep440_rs",
  "pep508_rs",
- "platform-host",
  "platform-tags",
  "pypi-types",
  "regex",
@@ -4631,7 +4779,7 @@ dependencies = [
  "either",
  "fs-err",
  "futures",
- "indexmap 2.2.3",
+ "indexmap 2.2.5",
  "insta",
  "install-wheel-rs",
  "itertools 0.12.1",
@@ -4641,7 +4789,6 @@ dependencies = [
  "pep440_rs",
  "pep508_rs",
  "petgraph",
- "platform-host",
  "platform-tags",
  "pubgrub",
  "pypi-types",
@@ -4688,7 +4835,7 @@ dependencies = [
 
 [[package]]
 name = "uv-version"
-version = "0.1.16"
+version = "0.1.22"
 
 [[package]]
 name = "uv-virtualenv"
@@ -4700,7 +4847,7 @@ dependencies = [
  "directories",
  "fs-err",
  "pathdiff",
- "platform-host",
+ "platform-tags",
  "pypi-types",
  "serde",
  "serde_json",
@@ -4786,9 +4933,9 @@ dependencies = [
 
 [[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",
@@ -4811,9 +4958,9 @@ 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",
  "wasm-bindgen-macro",
@@ -4821,24 +4968,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
  "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",
  "js-sys",
@@ -4848,9 +4995,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",
@@ -4858,22 +5005,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.48",
+ "syn 2.0.52",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.91"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "wasm-streams"
@@ -4896,7 +5043,7 @@ checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f"
 dependencies = [
  "futures",
  "js-sys",
- "parking_lot",
+ "parking_lot 0.11.2",
  "pin-utils",
  "wasm-bindgen",
  "wasm-bindgen-futures",
@@ -4905,15 +5052,21 @@ 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",
 ]
 
 [[package]]
+name = "webpki-roots"
+version = "0.25.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
+
+[[package]]
 name = "weezl"
 version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4965,12 +5118,12 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows"
-version = "0.52.0"
+version = "0.54.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49"
 dependencies = [
- "windows-core",
- "windows-targets 0.52.0",
+ "windows-core 0.54.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -4979,7 +5132,26 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.54.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65"
+dependencies = [
+ "windows-result",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd19df78e5168dfb0aedc343d1d1b8d422ab2db6756d2dc3fef75035402a3f64"
+dependencies = [
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -4997,7 +5169,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -5017,17 +5189,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -5038,9 +5210,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -5050,9 +5222,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -5062,9 +5234,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -5074,9 +5246,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -5086,9 +5258,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -5098,9 +5270,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -5110,15 +5282,15 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "winnow"
-version = "0.6.1"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d90f4e0f530c4c69f62b80d839e9ef3855edc9cba471a160c4d692deed62b401"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
@@ -5134,6 +5306,30 @@ dependencies = [
 ]
 
 [[package]]
+name = "wiremock"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec874e1eef0df2dcac546057fe5e29186f09c378181cd7b635b4b7bcc98e9d81"
+dependencies = [
+ "assert-json-diff",
+ "async-trait",
+ "base64 0.21.7",
+ "deadpool",
+ "futures",
+ "http 1.1.0",
+ "http-body-util",
+ "hyper 1.2.0",
+ "hyper-util",
+ "log",
+ "once_cell",
+ "regex",
+ "serde",
+ "serde_json",
+ "tokio",
+ "url",
+]
+
+[[package]]
 name = "wyz"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/nixpkgs/pkgs/by-name/uv/uv/package.nix b/nixpkgs/pkgs/by-name/uv/uv/package.nix
index aec7d7dc3716..322a47bb761f 100644
--- a/nixpkgs/pkgs/by-name/uv/uv/package.nix
+++ b/nixpkgs/pkgs/by-name/uv/uv/package.nix
@@ -6,24 +6,25 @@
 , pkg-config
 , rustPlatform
 , stdenv
+, nix-update-script
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "uv";
-  version = "0.1.16";
+  version = "0.1.22";
 
   src = fetchFromGitHub {
     owner = "astral-sh";
     repo = "uv";
     rev = version;
-    hash = "sha256-CvaYXtgd8eqzPNoXukjPwaoT/QOlUVKYNzD8Db6on9Q=";
+    hash = "sha256-AbixSkwyhj3eBMLvGlodpz7XE3ln0IokNMdu5SOZjOE=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "async_zip-0.0.16" = "sha256-M94ceTCtyQc1AtPXYrVGplShQhItqZZa/x5qLiL+gs0=";
-      "pubgrub-0.2.1" = "sha256-1teDXUkXPbL7LZAYrlm2w5CEyb8g0bDqNhg5Jn0/puc=";
+      "pubgrub-0.2.1" = "sha256-Pn60v5tfpGrssCeuaUcxw5eJ1g8Dk/+un0s8+k4abpo=";
     };
   };
 
@@ -47,6 +48,8 @@ rustPlatform.buildRustPackage rec {
     OPENSSL_NO_VENDOR = true;
   };
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     description = "An extremely fast Python package installer and resolver, written in Rust";
     homepage = "https://github.com/astral-sh/uv";
diff --git a/nixpkgs/pkgs/by-name/uw/uwhoisd/package.nix b/nixpkgs/pkgs/by-name/uw/uwhoisd/package.nix
new file mode 100644
index 000000000000..2fb31c23669d
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/uw/uwhoisd/package.nix
@@ -0,0 +1,45 @@
+{ lib
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "uwhoisd";
+  version = "0.1.0-unstable-2024-02-24";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Lookyloo";
+    repo = "uwhoisd";
+    rev = "31ce5e83b8fcf200098fd5120d9c856f3f80e3f7";
+    hash = "sha256-lnPGKF9pJ2NFIsx4HFdRip6R+vGVr9TYzvU89iwBc5g=";
+  };
+
+  pythonRelaxDeps = [
+    "beautifulsoup4"
+    "tornado"
+  ];
+
+  build-system = with python3.pkgs; [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    beautifulsoup4
+    publicsuffix2
+    redis
+    tornado
+  ] ++ redis.optional-dependencies.hiredis;
+
+  # Project has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Universal WHOIS proxy server";
+    homepage = "https://github.com/Lookyloo/uwhoisd";
+    changelog = "https://github.com/Lookyloo/uwhoisd/blob/${version}/ChangeLog";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/ux/uxn/package.nix b/nixpkgs/pkgs/by-name/ux/uxn/package.nix
index 2dc429a126bd..2ce14ff19f80 100644
--- a/nixpkgs/pkgs/by-name/ux/uxn/package.nix
+++ b/nixpkgs/pkgs/by-name/ux/uxn/package.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "uxn";
-  version = "1.0-unstable-2024-02-15";
+  version = "unstable-2024-03-18";
 
   src = fetchFromSourcehut {
     owner = "~rabbits";
     repo = "uxn";
-    rev = "c37d2cd75c855d0932a93cd8fdadd1db00b05e48";
-    hash = "sha256-O8XN0+ixo2xMXtJkEoJAqrKZ1M4s4YoHSxKWGOUyl1k=";
+    rev = "250aecc920a6f12d2d5479a5230a31630dac2a1e";
+    hash = "sha256-nhKlcuhXkrhecRwVIuSf+jOmFbX0NMhmmc5pj6MCNdQ=";
   };
 
   outputs = [ "out" "projects" ];
diff --git a/nixpkgs/pkgs/by-name/va/varia/package.nix b/nixpkgs/pkgs/by-name/va/varia/package.nix
new file mode 100644
index 000000000000..d0ee4574b1e7
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/va/varia/package.nix
@@ -0,0 +1,68 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+, aria2
+, meson
+, ninja
+, pkg-config
+, gobject-introspection
+, wrapGAppsHook4
+, desktop-file-utils
+, libadwaita
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "varia";
+  version = "2024.2.29-2";
+  pyproject = false;
+
+  src = fetchFromGitHub {
+    owner = "giantpinkrobots";
+    repo = "varia";
+    rev = "v${version}";
+    hash = "sha256-PDI+URSop95e0bkSkE/9xV5Ezwj3vRmDA4Qyr1n8mCw=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/varia-py.in \
+      --replace-fail 'aria2cexec = sys.argv[1]' 'aria2cexec = "${lib.getExe aria2}"'
+  '';
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gobject-introspection
+    wrapGAppsHook4
+    desktop-file-utils
+  ];
+
+  buildInputs = [
+    libadwaita
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    pygobject3
+    aria2p
+  ];
+
+  postInstall = ''
+    rm $out/bin/varia
+    mv $out/bin/varia-py.py $out/bin/varia
+  '';
+
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  meta = with lib; {
+    description = "A simple download manager based on aria2 and libadwaita";
+    homepage = "https://giantpinkrobots.github.io/varia";
+    license = licenses.mpl20;
+    mainProgram = "varia";
+    maintainers = with maintainers; [ aleksana ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/vc/vcpkg-tool/package.nix b/nixpkgs/pkgs/by-name/vc/vcpkg-tool/package.nix
index b96667bfbb55..801c9d9c7bbd 100644
--- a/nixpkgs/pkgs/by-name/vc/vcpkg-tool/package.nix
+++ b/nixpkgs/pkgs/by-name/vc/vcpkg-tool/package.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Components of microsoft/vcpkg's binary";
+    mainProgram = "vcpkg";
     homepage = "https://github.com/microsoft/vcpkg-tool";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ guekka gracicot ];
diff --git a/nixpkgs/pkgs/by-name/vc/vcpkg/package.nix b/nixpkgs/pkgs/by-name/vc/vcpkg/package.nix
index e6642b1ba3a7..940bed58feb7 100644
--- a/nixpkgs/pkgs/by-name/vc/vcpkg/package.nix
+++ b/nixpkgs/pkgs/by-name/vc/vcpkg/package.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "vcpkg";
-  version = "2024.02.14";
+  version = "2024.03.19";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "vcpkg";
     rev = finalAttrs.version;
-    hash = "sha256-qYRNf2NMvYkxq7CRbJIqC7HAhznTNK7zW6JCsP4+v6M=";
+    hash = "sha256-861r4XsXCyxUVDlSrekZ+g17td+idUN8qJmmTZNDzow=";
   };
 
   installPhase = let
@@ -43,6 +43,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = {
     description = "C++ Library Manager";
+    mainProgram = "vcpkg";
     homepage = "https://vcpkg.io/";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ guekka gracicot ];
diff --git a/nixpkgs/pkgs/by-name/vi/victoriametrics/package.nix b/nixpkgs/pkgs/by-name/vi/victoriametrics/package.nix
index f441e03d8371..ad76b67df1bd 100644
--- a/nixpkgs/pkgs/by-name/vi/victoriametrics/package.nix
+++ b/nixpkgs/pkgs/by-name/vi/victoriametrics/package.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
     "app/vlstorage"
     "app/vmagent"
     "app/vmalert-tool"
+    "app/vmalert"
     "app/vmauth"
     "app/vmctl"
     "app/vminsert"
diff --git a/nixpkgs/pkgs/by-name/vi/vieb/package.nix b/nixpkgs/pkgs/by-name/vi/vieb/package.nix
index 0c8afad3fb00..f49cea3c13c7 100644
--- a/nixpkgs/pkgs/by-name/vi/vieb/package.nix
+++ b/nixpkgs/pkgs/by-name/vi/vieb/package.nix
@@ -56,6 +56,7 @@ buildNpmPackage rec {
     homepage = "https://vieb.dev/";
     changelog = "https://github.com/Jelmerro/Vieb/releases/tag/${version}";
     description = "Vim Inspired Electron Browser";
+    mainProgram = "vieb";
     maintainers = with maintainers; [ gebner tejing ];
     platforms = platforms.unix;
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/by-name/vi/vim-language-server/package.json b/nixpkgs/pkgs/by-name/vi/vim-language-server/package.json
new file mode 100644
index 000000000000..bbc996c8302a
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/vi/vim-language-server/package.json
@@ -0,0 +1,49 @@
+{
+  "name": "vim-language-server",
+  "version": "2.3.1",
+  "description": "vim language server",
+  "keywords": [
+    "viml",
+    "vim",
+    "lsp",
+    "language",
+    "server",
+    "autocomplete"
+  ],
+  "main": "./out/index.js",
+  "repository": "https://github.com/iamcco/vim-language-server",
+  "author": "iamcco <ooiss@qq.com>",
+  "license": "MIT",
+  "scripts": {
+    "build-docs": "rm ./src/docs/builtin-docs.json && ./bin/build-docs.js",
+    "build": "rm -rf ./out && webpack",
+    "watch": "webpack -w",
+    "test": "mocha test/src/**/*.ts --require ts-node/register",
+    "lint": "tslint -c tslint.json --format verbose {.,test}/src/**/*.ts src/index.ts",
+    "fix": "tslint -c tslint.json --fix {.,test}/src/**/*.ts src/index.ts"
+  },
+  "bin": {
+    "vim-language-server": "./bin/index.js"
+  },
+  "devDependencies": {
+    "@types/mocha": "^7.0.2",
+    "@types/node": "^11.13.6",
+    "chai": "^4.2.0",
+    "chai-as-promised": "^7.1.1",
+    "fast-glob": "^3.2.4",
+    "findup": "^0.1.5",
+    "mocha": "^7.1.2",
+    "rxjs": "^6.6.7",
+    "rxjs-operators": "^1.1.3",
+    "shvl": "^2.0.0",
+    "ts-loader": "^8.1.0",
+    "ts-node": "^9.1.1",
+    "tslint": "^6.1.3",
+    "typescript": "^4.2.3",
+    "vscode-languageserver": "^7.0.0",
+    "vscode-languageserver-textdocument": "^1.0.1",
+    "vscode-uri": "^3.0.2",
+    "webpack": "^5.30.0",
+    "webpack-cli": "^4.6.0"
+  }
+}
diff --git a/nixpkgs/pkgs/by-name/vi/vim-language-server/package.nix b/nixpkgs/pkgs/by-name/vi/vim-language-server/package.nix
new file mode 100644
index 000000000000..5e085d0f6d71
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/vi/vim-language-server/package.nix
@@ -0,0 +1,43 @@
+{ lib
+, mkYarnPackage
+, fetchFromGitHub
+, fetchYarnDeps
+}:
+
+mkYarnPackage rec {
+  pname = "vim-language-server";
+  version = "2.3.1";
+
+  src = fetchFromGitHub {
+    owner = "iamcco";
+    repo = "vim-language-server";
+    rev = "v${version}";
+    hash = "sha256-NfBKNCTvCMIJrSiTlCG+LtVoMBMdCc3rzpDb9Vp2CGM=";
+  };
+
+  packageJSON = ./package.json;
+  offlineCache = fetchYarnDeps {
+    yarnLock = src + "/yarn.lock";
+    hash = "sha256-mo8urQaWIHu33+r0Y7mL9mJ/aSe/5CihuIetTeDHEUQ=";
+  };
+
+  buildPhase = ''
+    runHook preBuild
+
+    export HOME=$(mktemp -d)
+    # https://stackoverflow.com/a/69699772/4935114
+    env NODE_OPTIONS=--openssl-legacy-provider yarn --offline build
+
+    runHook postBuild
+  '';
+
+  doDist = false;
+
+  meta = with lib; {
+    description = "VImScript language server, LSP for vim script";
+    homepage = "https://github.com/iamcco/vim-language-server";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+    mainProgram = "vim-language-server";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/vl/vlc-bin/package.nix b/nixpkgs/pkgs/by-name/vl/vlc-bin/package.nix
new file mode 100644
index 000000000000..d986353a2bda
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/vl/vlc-bin/package.nix
@@ -0,0 +1,61 @@
+{ lib
+, fetchurl
+, makeWrapper
+, stdenv
+, undmg
+, variant ?
+  if (stdenv.isDarwin && stdenv.isAarch64)
+  then "arm64"
+  else if (stdenv.isDarwin && stdenv.isx86_64)
+  then "intel64"
+  else "universal" # not reachable by normal means
+}:
+
+assert builtins.elem variant [ "arm64" "intel64" "universal" ];
+stdenv.mkDerivation (finalAttrs: {
+  pname = "vlc-bin-${variant}";
+  version = "3.0.20";
+
+  src = fetchurl {
+    url = "http://get.videolan.org/vlc/${finalAttrs.version}/macosx/vlc-${finalAttrs.version}-${variant}.dmg";
+    hash = {
+      "arm64" = "sha256-XV8O5S2BmCpiL0AhkopktHBalVRJniDDPQusIlkLEY4=";
+      "intel64" = "sha256-pNwUQfyrjiuQxil0zlOZu4isv2xw1U8hxhWNn7H7onk=";
+      "universal" = "sha256-IqGPOWzMmHbGDV+0QxFslv19BC2J1Z5Qzcuja/Od1Us=";
+    }.${variant};
+  };
+
+  sourceRoot = ".";
+
+  nativeBuildInputs = [
+    makeWrapper
+    undmg
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/Applications $out/bin
+    cp -r "VLC.app" $out/Applications
+    makeWrapper "$out/Applications/VLC.app/Contents/MacOS/VLC" "$out/bin/vlc"
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Cross-platform media player and streaming server; precompiled binary for MacOS, repacked from official website";
+    homepage = "https://www.videolan.org/vlc/";
+    downloadPage = "https://www.videolan.org/vlc/download-macosx.html";
+    license = lib.licenses.lgpl21Plus;
+    mainProgram = "vlc";
+    maintainers = with lib.maintainers; [ pcasaretto ];
+    platforms = lib.systems.inspect.patternLogicalAnd
+      (lib.systems.inspect.patterns.isDarwin)
+      (({
+        "arm64" = lib.systems.inspect.patterns.isAarch64;
+        "intel64" = lib.systems.inspect.patterns.isx86_64;
+        "universal" = lib.systems.inspect.patterns.isDarwin;
+      }).${variant});
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+  };
+})
diff --git a/nixpkgs/pkgs/by-name/wa/warp-terminal/update.sh b/nixpkgs/pkgs/by-name/wa/warp-terminal/update.sh
index d60e0f1f5aa9..2c9c69dc0cec 100755
--- a/nixpkgs/pkgs/by-name/wa/warp-terminal/update.sh
+++ b/nixpkgs/pkgs/by-name/wa/warp-terminal/update.sh
@@ -1,20 +1,22 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl jq moreutils nix-prefetch
+#!nix-shell -i bash -p cacert curl jq nix moreutils --pure
 #shellcheck shell=bash
 set -eu -o pipefail
 
-dirname="$(dirname "$0")"
+cd "$(dirname "$0")"
+nixpkgs=../../../../.
 
 err() {
     echo "$*" >&2
+    exit 1
 }
 
 json_get() {
-    jq -r "$1" < "$dirname/versions.json"
+    jq -r "$1" < "./versions.json"
 }
 
 json_set() {
-    jq --arg x "$2" "$1 = \$x" < "$dirname/versions.json" | sponge "$dirname/versions.json"
+    jq --arg x "$2" "$1 = \$x" < "./versions.json" | sponge "./versions.json"
 }
 
 resolve_url() {
@@ -31,7 +33,6 @@ resolve_url() {
             ;;
         *)
             err "Unexpected download type: $1"
-            exit 1
             ;;
     esac
     url="https://app.warp.dev/download?package=${pkg}"
@@ -40,7 +41,7 @@ resolve_url() {
         url=$(curl -s -o /dev/null -w '%{redirect_url}' "${url}")
         [[ ${url} != *.${sfx} ]] || break
     done
-    ((i < max_redirects)) || { err "too many redirects"; exit 1; }
+    ((i < max_redirects)) || { err "too many redirects"; }
     echo "${url}"
 }
 
@@ -48,13 +49,27 @@ get_version() {
     echo "$1" | grep -oP -m 1 '(?<=/v)[\d.\w]+(?=/)'
 }
 
+# nix-prefect-url seems to be uncompressing the archive then taking the hash
+# so just get the hash from fetchurl
+sri_get() {
+    local ouput sri
+    output=$(nix-build  --expr \
+        "with import $nixpkgs {};
+         fetchurl {
+           url = \"$1\";
+         }" 2>&1 || true)
+    sri=$(echo "$output" | awk '/^\s+got:\s+/{ print $2 }')
+    [[ -z "$sri" ]] && err "$output"
+    echo "$sri"
+}
+
+
 for sys in darwin linux; do
     url=$(resolve_url ${sys})
     version=$(get_version "${url}")
-    if [[ ${version} != "$(json_get ".${sys}.version")" ]];
-        then
-            sri=$(nix hash to-sri --type sha256 "$(nix-prefetch-url --type sha256 "${url}")")
-            json_set ".${sys}.version" "${version}"
-            json_set ".${sys}.hash" "${sri}"
+    if [[ ${version} != "$(json_get ".${sys}.version")" ]]; then
+        sri=$(sri_get "${url}")
+        json_set ".${sys}.version" "${version}"
+        json_set ".${sys}.hash" "${sri}"
     fi
 done
diff --git a/nixpkgs/pkgs/by-name/wa/warp-terminal/versions.json b/nixpkgs/pkgs/by-name/wa/warp-terminal/versions.json
index 99fdfa65c73f..154c7ffdeccc 100644
--- a/nixpkgs/pkgs/by-name/wa/warp-terminal/versions.json
+++ b/nixpkgs/pkgs/by-name/wa/warp-terminal/versions.json
@@ -1,10 +1,10 @@
 {
-  "darwin" : {
-    "hash" : "sha256-tFtoD8URMFfJ3HRkyKStuDStFkoRIV97y9kV4pbDPro=",
-    "version" : "0.2024.02.20.08.01.stable_01"
+  "darwin": {
+    "hash": "sha256-aOw/c6Y+4x6kwxcwnajHh92ZZDeaM/Y1df76HgUjVn8=",
+    "version": "0.2024.03.19.08.01.stable_01"
   },
-  "linux" : {
-    "hash" : "sha256-L8alnqSE4crrDozRfPaAAMkLc+5+8d9XBKd5ddsxmD0=",
-    "version" : "0.2024.02.20.08.01.stable_01"
+  "linux": {
+    "hash": "sha256-efnYh48xcLneeotH9iSY0xQRgMXI/erM6F2fIH38yjY=",
+    "version": "0.2024.03.19.08.01.stable_01"
   }
 }
diff --git a/nixpkgs/pkgs/by-name/wa/waycheck/package.nix b/nixpkgs/pkgs/by-name/wa/waycheck/package.nix
index cb78db2d6e38..ddbd67e88220 100644
--- a/nixpkgs/pkgs/by-name/wa/waycheck/package.nix
+++ b/nixpkgs/pkgs/by-name/wa/waycheck/package.nix
@@ -47,12 +47,12 @@ stdenv.mkDerivation (finalAttrs: {
       --replace "update-desktop-database -q" "update-desktop-database $out/share/applications"
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Simple GUI that displays the protocols implemented by a Wayland compositor";
     homepage = "https://gitlab.freedesktop.org/serebit/waycheck";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ julienmalka federicoschonborn ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ julienmalka federicoschonborn ];
     mainProgram = "waycheck";
-    platforms = platforms.linux;
+    platforms = lib.platforms.linux;
   };
 })
diff --git a/nixpkgs/pkgs/by-name/wa/wayland-logout/package.nix b/nixpkgs/pkgs/by-name/wa/wayland-logout/package.nix
index 22e197a4987a..272b3dfbe06f 100644
--- a/nixpkgs/pkgs/by-name/wa/wayland-logout/package.nix
+++ b/nixpkgs/pkgs/by-name/wa/wayland-logout/package.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
     description = ''
       A utility designed to kill a single instance of a wayland compositor
     '';
+    mainProgram = "wayland-logout";
     homepage = "https://github.com/soreau/wayland-logout";
     maintainers = with maintainers; [quantenzitrone];
     license = with licenses; [mit];
diff --git a/nixpkgs/pkgs/by-name/we/websecprobe/package.nix b/nixpkgs/pkgs/by-name/we/websecprobe/package.nix
index 544d56f0114b..aecc77881557 100644
--- a/nixpkgs/pkgs/by-name/we/websecprobe/package.nix
+++ b/nixpkgs/pkgs/by-name/we/websecprobe/package.nix
@@ -5,20 +5,20 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "websecprobe";
-  version = "0.0.11";
+  version = "0.0.12";
   pyproject = true;
 
   src = fetchPypi {
     pname = "WebSecProbe";
     inherit version;
-    hash = "sha256-OKbKz3HSTtwyx/JNUtLJBTaHQcxkUWroMg9/msVWgk4=";
+    hash = "sha256-RX4tc6JaUVaNx8nidn8eMcbsmbcSY+VZbup6c6P7oOs=";
   };
 
-  nativeBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
     setuptools
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     requests
     tabulate
   ];
@@ -34,6 +34,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     description = "Web Security Assessment Tool";
     homepage = "https://github.com/spyboy-productions/WebSecProbe/";
+    changelog = "https://github.com/spyboy-productions/WebSecProbe/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
     mainProgram = "websecprobe";
diff --git a/nixpkgs/pkgs/by-name/wh/whistle/package.nix b/nixpkgs/pkgs/by-name/wh/whistle/package.nix
index 3963889583ec..9f1adad1ef72 100644
--- a/nixpkgs/pkgs/by-name/wh/whistle/package.nix
+++ b/nixpkgs/pkgs/by-name/wh/whistle/package.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "whistle";
-  version = "2.9.65";
+  version = "2.9.66";
 
   src = fetchFromGitHub {
     owner = "avwo";
     repo = "whistle";
     rev = "v${version}";
-    hash = "sha256-vF81Nt0gx3k7b6VO6aBpeUSnZ8Op91dYOGZRO9cdleM=";
+    hash = "sha256-bKHpbTdKFbeQGPl2HFcXi6y27s0JylyUXKg9oAcuSXo=";
   };
 
-  npmDepsHash = "sha256-LzetbeIqfcFbLzie4GXkNOGLTdwqYMnwZ236V5R2TNc=";
+  npmDepsHash = "sha256-34KrqF534igGsLfOUxJN5dhtj2rrKGbkUUWr6p7V/Go=";
 
   dontNpmBuild = true;
 
diff --git a/nixpkgs/pkgs/by-name/wi/wit-bindgen/package.nix b/nixpkgs/pkgs/by-name/wi/wit-bindgen/package.nix
index 09a77b54dda2..5d6127e9c596 100644
--- a/nixpkgs/pkgs/by-name/wi/wit-bindgen/package.nix
+++ b/nixpkgs/pkgs/by-name/wi/wit-bindgen/package.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wit-bindgen";
-  version = "0.21.0";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = "wit-bindgen";
     rev = "v${version}";
-    hash = "sha256-rSPxvEZf4bnQfLNCmyZV7oOuhG/hRAcDs1zPmfovJ8o=";
+    hash = "sha256-qPFw2ecnyZA3TV95AbJFWnWhV8zHQ/bq+MDRduVNl6s=";
   };
 
-  cargoHash = "sha256-oHSsbGLz8OcAfLeNA1yqVVRHa0ZkE8UoJn795t8xxGs=";
+  cargoHash = "sha256-BN425+tKgIvx+RvIedRCPig3kpbHrxrFdQe99voNkVc=";
 
   # Some tests fail because they need network access to install the `wasm32-unknown-unknown` target.
   # However, GitHub Actions ensures a proper build.
diff --git a/nixpkgs/pkgs/by-name/wl/wl-clipboard-rs/package.nix b/nixpkgs/pkgs/by-name/wl/wl-clipboard-rs/package.nix
index 4fab6ae6574e..509845a637ee 100644
--- a/nixpkgs/pkgs/by-name/wl/wl-clipboard-rs/package.nix
+++ b/nixpkgs/pkgs/by-name/wl/wl-clipboard-rs/package.nix
@@ -6,18 +6,18 @@
 , withNativeLibs ? false
 }:
 
-rustPlatform.buildRustPackage {
+rustPlatform.buildRustPackage rec {
   pname = "wl-clipboard-rs";
-  version = "0.8.0-unstable-2023-11-27";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "YaLTeR";
     repo = "wl-clipboard-rs";
-    rev = "be851408e0f91edffdc2f1a76805035847f9f8a9";
-    hash = "sha256-OfLn7izG1KSUjdd2gO4aaSCDlcaWoFiFmgwwhR1hRsQ=";
+    rev = "v${version}";
+    hash = "sha256-tNmpGBg21IuhKEzY15O2MKVpMB+eCjvRVwVUahADuJU=";
   };
 
-  cargoHash = "sha256-rYFCPyWTUhyrEcoRM8I+iX7IaY/6i1tBVjhs47m3XY8=";
+  cargoHash = "sha256-0Ix+fF1QO1KU8FIOb8EV4iYXe4S69sZOxCdxYccL8m0=";
 
   cargoBuildFlags = [
     "--package=wl-clipboard-rs"
@@ -47,14 +47,13 @@ rustPlatform.buildRustPackage {
     "--skip=tests::copy::copy_test"
   ];
 
-  meta = {
+  meta = with lib; {
     description = "Command-line copy/paste utilities for Wayland, written in Rust";
     homepage = "https://github.com/YaLTeR/wl-clipboard-rs";
-    # TODO: add `${version}` once we switch to tagged release
-    changelog = "https://github.com/YaLTeR/wl-clipboard-rs/blob/master/CHANGELOG.md";
-    platforms = lib.platforms.linux;
-    license = with lib.licenses; [ asl20 mit ];
+    changelog = "https://github.com/YaLTeR/wl-clipboard-rs/blob/v${version}/CHANGELOG.md";
+    platforms = platforms.linux;
+    license = with licenses; [ asl20 mit ];
     mainProgram = "wl-clip";
-    maintainers = with lib.maintainers; [ thiagokokada ];
+    maintainers = with maintainers; [ thiagokokada donovanglover ];
   };
 }
diff --git a/nixpkgs/pkgs/by-name/wl/wl-gammarelay-rs/Cargo.lock b/nixpkgs/pkgs/by-name/wl/wl-gammarelay-rs/Cargo.lock
new file mode 100644
index 000000000000..0df34b9852a9
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/wl/wl-gammarelay-rs/Cargo.lock
@@ -0,0 +1,359 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anyhow"
+version = "1.0.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bitflags"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+
+[[package]]
+name = "bytemuck"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
+
+[[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 = "4.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
+dependencies = [
+ "anstyle",
+ "clap_lex",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "indexmap"
+version = "2.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.153"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "memchr"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+
+[[package]]
+name = "memmap2"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
+ "memoffset",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rustbus"
+version = "0.19.3"
+source = "git+https://github.com/KillingSpark/rustbus?rev=5875f1f#5875f1fefc054ed4e2d91641f59a55b9eaee5be9"
+dependencies = [
+ "nix",
+ "rustbus_derive",
+ "thiserror",
+]
+
+[[package]]
+name = "rustbus-service"
+version = "0.1.0"
+source = "git+https://github.com/MaxVerevkin/rustbus-service?rev=1bd3aef#1bd3aef5fe2a646685c8e640c0f67a645eeaf41d"
+dependencies = [
+ "rustbus",
+ "rustbus-service-macros",
+]
+
+[[package]]
+name = "rustbus-service-macros"
+version = "0.1.0"
+source = "git+https://github.com/MaxVerevkin/rustbus-service?rev=1bd3aef#1bd3aef5fe2a646685c8e640c0f67a645eeaf41d"
+dependencies = [
+ "proc-macro-crate",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "rustbus_derive"
+version = "0.6.0"
+source = "git+https://github.com/KillingSpark/rustbus?rev=5875f1f#5875f1fefc054ed4e2d91641f59a55b9eaee5be9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "shmemfdrs2"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70a05cf957f811e44f99c629e6d34025429912ffb2333f2960372669e670f54c"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.53"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+
+[[package]]
+name = "toml_edit"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "wayrs-client"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae384b841a260a5d86f471b21c22639a6fd41fe37c407be72a6d714fd3433bae"
+dependencies = [
+ "nix",
+ "thiserror",
+ "wayrs-scanner",
+]
+
+[[package]]
+name = "wayrs-proto-parser"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1406ebeb6ba4a201745a92c221eca3dcec5b404fcbe948acf8a166b323582fa9"
+dependencies = [
+ "quick-xml",
+ "thiserror",
+]
+
+[[package]]
+name = "wayrs-protocols"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b37562eeb522e6cbc9fb9e4e96a8622e10d0f31fec780ed5c12c1fc15d127a47"
+dependencies = [
+ "wayrs-client",
+]
+
+[[package]]
+name = "wayrs-scanner"
+version = "0.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e387d47549e37bd2a6f03973a77578bb003f661559a096c9274b5b9bcd78bf1f"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wayrs-proto-parser",
+]
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "wl-gammarelay-rs"
+version = "0.4.1"
+dependencies = [
+ "anyhow",
+ "bytemuck",
+ "clap",
+ "libc",
+ "memmap2",
+ "rustbus-service",
+ "shmemfdrs2",
+ "wayrs-client",
+ "wayrs-protocols",
+]
diff --git a/nixpkgs/pkgs/by-name/wl/wl-gammarelay-rs/package.nix b/nixpkgs/pkgs/by-name/wl/wl-gammarelay-rs/package.nix
index b406e1466408..4edc2506a08e 100644
--- a/nixpkgs/pkgs/by-name/wl/wl-gammarelay-rs/package.nix
+++ b/nixpkgs/pkgs/by-name/wl/wl-gammarelay-rs/package.nix
@@ -5,23 +5,29 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "wl-gammarelay-rs";
-  version = "0.3.2";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "MaxVerevkin";
     repo = "wl-gammarelay-rs";
     rev = "v${version}";
-    hash = "sha256-md6e9nRCs6TZarwFD3/GQEoJSIhtdq++rIZTP7Vl0wQ=";
+    hash = "sha256-36u2s+Yv+0/lZErHonVvzyBuZ2xES2MGMG4PRjaM74k=";
   };
 
-  cargoHash = "sha256-TDP5RC7B7/ldpK22WsmXd6fSl2rHtvG0hP9NYzoEVYo=";
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "rustbus-0.19.3" = "sha256-Eq3qCsjiNKe3Vdpx7a3J1icPGQmKfCyz1wcgCyztH64=";
+      "rustbus-service-0.1.0" = "sha256-9yuIPqOecTqP0zsFqSue4hL7ZEF9MQpTF1gCJpKV6nk=";
+    };
+  };
 
   meta = {
     description = "A simple program that provides DBus interface to control display temperature and brightness under wayland without flickering";
     homepage = "https://github.com/MaxVerevkin/wl-gammarelay-rs";
     license = lib.licenses.gpl3Plus;
     mainProgram = "wl-gammarelay-rs";
-    maintainers = with lib.maintainers; [quantenzitrone];
+    maintainers = with lib.maintainers; [ quantenzitrone ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/by-name/wo/worker/package.nix b/nixpkgs/pkgs/by-name/wo/worker/package.nix
index 9ffa65245cdf..4070cf2ad4e5 100644
--- a/nixpkgs/pkgs/by-name/wo/worker/package.nix
+++ b/nixpkgs/pkgs/by-name/wo/worker/package.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "worker";
-  version = "5.0.1";
+  version = "5.0.2";
 
   src = fetchurl {
     url = "http://www.boomerangsworld.de/cms/worker/downloads/worker-${finalAttrs.version}.tar.gz";
-    hash = "sha256-7bnJ7w7ejK5VDkna52jCtHKD8iiNOdXCpU0wx7RtkxA=";
+    hash = "sha256-k4HgIXuy0q72pHhGU+AuIwCUNMH/icasEXWIFc/w5Mo=";
   };
 
   buildInputs = [ libX11 ];
diff --git a/nixpkgs/pkgs/by-name/wp/wp-cli/package.nix b/nixpkgs/pkgs/by-name/wp/wp-cli/package.nix
index 396930d858e8..e9653a3b8abf 100644
--- a/nixpkgs/pkgs/by-name/wp/wp-cli/package.nix
+++ b/nixpkgs/pkgs/by-name/wp/wp-cli/package.nix
@@ -9,7 +9,7 @@
 }:
 
 let
-  version = "2.9.0";
+  version = "2.10.0";
 
   completion = fetchurl {
     url = "https://raw.githubusercontent.com/wp-cli/wp-cli/v${version}/utils/wp-completion.bash";
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "https://github.com/wp-cli/wp-cli/releases/download/v${version}/wp-cli-${version}.phar";
-    hash = "sha256-r2t8zCHtCQfLUE21oFnw4SAReQWmAXv91Ddc7jyT2GQ=";
+    hash = "sha256-TGqTzsrn9JnKSB+nptbUKZyLkyFOXlMI4mdw2/02Md8=";
   };
 
   dontUnpack = true;
@@ -72,6 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "A command line interface for WordPress";
     homepage = "https://wp-cli.org";
+    changelog = "https://github.com/wp-cli/wp-cli/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/by-name/ws/wslu/package.nix b/nixpkgs/pkgs/by-name/ws/wslu/package.nix
index 422b8e76efb6..b45d566b0f85 100644
--- a/nixpkgs/pkgs/by-name/ws/wslu/package.nix
+++ b/nixpkgs/pkgs/by-name/ws/wslu/package.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wslu";
-  version = "4.1.1";
+  version = "4.1.2";
 
   src = fetchFromGitHub {
     owner = "wslutilities";
     repo = "wslu";
     rev = "v${version}";
-    hash = "sha256-yhugh836BoSISbTu19ubLOrz5X31Opu5QtCR0DXrbWc=";
+    hash = "sha256-rmNGKayg8Y872yICilveMpDFBLkDZ6Ox8rqtWrK2om8=";
   };
 
   nativeBuildInputs = [ copyDesktopItems ];
diff --git a/nixpkgs/pkgs/by-name/wt/wtfis/package.nix b/nixpkgs/pkgs/by-name/wt/wtfis/package.nix
index 0a9ae5bd0bd3..56d302208d9c 100644
--- a/nixpkgs/pkgs/by-name/wt/wtfis/package.nix
+++ b/nixpkgs/pkgs/by-name/wt/wtfis/package.nix
@@ -41,6 +41,7 @@ in python3.pkgs.buildPythonApplication {
   meta = {
     homepage = "https://github.com/pirxthepilot/wtfis";
     description = "Passive hostname, domain and IP lookup tool for non-robots";
+    mainProgram = "wtfis";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.AndersonTorres ];
   };
diff --git a/nixpkgs/pkgs/by-name/x5/x509-limbo/package.nix b/nixpkgs/pkgs/by-name/x5/x509-limbo/package.nix
new file mode 100644
index 000000000000..2cb4625e04fa
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/x5/x509-limbo/package.nix
@@ -0,0 +1,49 @@
+{ lib
+, fetchFromGitHub
+, python3
+, x509-limbo
+}:
+
+python3.pkgs.buildPythonPackage {
+  pname = "x509-limbo";
+  version = "unstable-2024-03-13";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "C2SP";
+    repo = "x509-limbo";
+    rev = "a04fb05cf132e1405f71c12616cf0aead829909a";
+    hash = "sha256-TA4ciHkXg/RKzcIs2bwpx7CxsQDyQMG636Rr74xPsBA=";
+  };
+
+  dependencies = with python3.pkgs; [
+    flit-core
+
+    requests
+    pydantic
+    jinja2
+    cryptography
+    pyopenssl
+    pyyaml
+    certvalidator
+    certifi
+  ];
+
+  postInstall = ''
+    mkdir -p $out/share
+    cp limbo.json $out/share/
+
+    wrapProgram $out/bin/limbo \
+      --append-flags "--limbo $out/share/limbo.json"
+  '';
+
+  meta = with lib; {
+    homepage = "https://x509-limbo.com/";
+    description = "A suite of testvectors for X.509 certificate path validation and tools for building them ";
+    mainProgram = "limbo";
+
+    license = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ baloo ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/xa/xarcan/package.nix b/nixpkgs/pkgs/by-name/xa/xarcan/package.nix
index fb43766e7207..2f10a984aa37 100644
--- a/nixpkgs/pkgs/by-name/xa/xarcan/package.nix
+++ b/nixpkgs/pkgs/by-name/xa/xarcan/package.nix
@@ -107,6 +107,7 @@ stdenv.mkDerivation (finalPackages: {
   meta =  {
     homepage = "https://github.com/letoram/letoram";
     description = "Patched Xserver that bridges connections to Arcan";
+    mainProgram = "Xarcan";
     longDescription = ''
       xarcan is a patched X server with a KDrive backend that uses the
       arcan-shmif to map Xlib/Xcb/X clients to a running arcan instance. It
diff --git a/nixpkgs/pkgs/by-name/xd/xdg-desktop-portal-shana/package.nix b/nixpkgs/pkgs/by-name/xd/xdg-desktop-portal-shana/package.nix
index b5e7aa0c3c01..a70ad3496364 100644
--- a/nixpkgs/pkgs/by-name/xd/xdg-desktop-portal-shana/package.nix
+++ b/nixpkgs/pkgs/by-name/xd/xdg-desktop-portal-shana/package.nix
@@ -8,13 +8,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "xdg-desktop-portal-shana";
-  version = "0.3.9";
+  version = "0.3.11";
 
   src = fetchFromGitHub {
     owner = "Decodetalkers";
     repo = "xdg-desktop-portal-shana";
     rev = "v${version}";
-    sha256 = "cgiWlZbM0C47CisR/KlSV0xqfeKgM41QaQihjqSy9CU=";
+    sha256 = "sha256-bUskzFDd4qjH4Isp6vAJHe5qzgCLudQbkh+JNNTSMu8=";
   };
 
   nativeBuildInputs = [
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   mesonBuildType = "release";
 
-  cargoHash = "sha256-uDM4a7AB0753c/H1nfic/LjWrLmjEvi/p2S/tLIDXaQ=";
+  cargoHash = "sha256-FzEdQePDnSCuMDqbz0ZUywDzNfbiOwottSrE+eWL9to=";
 
   meta = with lib; {
     description = "A filechooser portal backend for any desktop environment";
diff --git a/nixpkgs/pkgs/by-name/xd/xdg-terminal-exec/package.nix b/nixpkgs/pkgs/by-name/xd/xdg-terminal-exec/package.nix
index 1dd07bd22396..461b7f58ee33 100644
--- a/nixpkgs/pkgs/by-name/xd/xdg-terminal-exec/package.nix
+++ b/nixpkgs/pkgs/by-name/xd/xdg-terminal-exec/package.nix
@@ -2,16 +2,17 @@
   lib,
   stdenvNoCC,
   fetchFromGitHub,
+  dash,
 }:
-stdenvNoCC.mkDerivation {
+stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "xdg-terminal-exec";
-  version = "unstable-2023-12-08";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "Vladimir-csp";
     repo = "xdg-terminal-exec";
-    rev = "04f37d4337b6ce157d4a7338dd600a32deb43a28";
-    hash = "sha256-QIPdF+/dMUEVcz5j9o+wQ4dnw2yWwz7slnLdMNETkGs=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-uLUHvSjxIjmy0ejqLfliB6gHFRwyTWNH1RL5kTXebUM=";
   };
 
   dontBuild = true;
@@ -21,6 +22,12 @@ stdenvNoCC.mkDerivation {
     runHook postInstall
   '';
 
+  dontPatchShebangs = true;
+  postFixup = ''
+    substituteInPlace $out/bin/xdg-terminal-exec \
+      --replace-fail '#!/bin/sh' '#!${lib.getExe dash}'
+  '';
+
   meta = {
     description = "Proposal for XDG terminal execution utility";
     homepage = "https://github.com/Vladimir-csp/xdg-terminal-exec";
@@ -29,4 +36,4 @@ stdenvNoCC.mkDerivation {
     maintainers = with lib.maintainers; [quantenzitrone];
     platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/nixpkgs/pkgs/tools/X11/xdg-user-dirs/default.nix b/nixpkgs/pkgs/by-name/xd/xdg-user-dirs/package.nix
index f988f3cfe975..f1d4e97bc7da 100644
--- a/nixpkgs/pkgs/tools/X11/xdg-user-dirs/default.nix
+++ b/nixpkgs/pkgs/by-name/xd/xdg-user-dirs/package.nix
@@ -1,17 +1,30 @@
-{ lib, stdenv, fetchurl, libxslt, docbook_xsl, gettext, libiconv, makeWrapper }:
+{
+  lib,
+  stdenv,
+  fetchurl,
+  libxslt,
+  docbook_xsl,
+  gettext,
+  libiconv,
+  makeWrapper,
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "xdg-user-dirs";
   version = "0.18";
 
   src = fetchurl {
-    url = "https://user-dirs.freedesktop.org/releases/xdg-user-dirs-${version}.tar.gz";
-    sha256 = "sha256-7G8G10lc26N6cyA5+bXhV4vLKWV2/eDaQO2y9SIg3zw=";
+    url = "https://user-dirs.freedesktop.org/releases/xdg-user-dirs-${finalAttrs.version}.tar.gz";
+    hash = "sha256-7G8G10lc26N6cyA5+bXhV4vLKWV2/eDaQO2y9SIg3zw=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
-  nativeBuildInputs = [ makeWrapper libxslt docbook_xsl ] ++ lib.optionals stdenv.isDarwin [ gettext ];
+  nativeBuildInputs = [
+    makeWrapper
+    libxslt
+    docbook_xsl
+  ] ++ lib.optionals stdenv.isDarwin [ gettext ];
 
   preFixup = ''
     # fallback values need to be last
@@ -23,7 +36,8 @@ stdenv.mkDerivation rec {
     homepage = "http://freedesktop.org/wiki/Software/xdg-user-dirs";
     description = "A tool to help manage well known user directories like the desktop folder and the music folder";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ donovanglover ];
     platforms = platforms.unix;
+    mainProgram = "xdg-user-dirs-update";
   };
-}
+})
diff --git a/nixpkgs/pkgs/by-name/xe/xeol/package.nix b/nixpkgs/pkgs/by-name/xe/xeol/package.nix
new file mode 100644
index 000000000000..dfbfd2c12587
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/xe/xeol/package.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "xeol";
+  version = "0.9.13";
+
+  src = fetchFromGitHub {
+    owner = "xeol-io";
+    repo = "xeol";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ZBj/0/270Eo5iE6ZMcLH+CygoYW6/gXfGBldfdlGZOg=";
+  };
+
+  vendorHash = "sha256-fGOta+IsX/McUkQGOvf9ZlnCD1falDJSeU+AX359Zpw=";
+
+  subPackages = [
+    "cmd/xeol/"
+  ];
+
+  ldflags = [
+    "-w"
+    "-s"
+    "-X=main.version=${version}"
+    "-X=main.gitCommit=${src.rev}"
+    "-X=main.buildDate=1970-01-01T00:00:00Z"
+    "-X=main.gitDescription=${src.rev}"
+  ];
+
+  meta = with lib; {
+    description = "Scanner for end-of-life (EOL) software and dependencies in container images, filesystems, and SBOMs";
+    homepage = "https://github.com/xeol-io/xeol";
+    changelog = "https://github.com/xeol-io/xeol/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "xeol";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/xf/xfs-undelete/package.nix b/nixpkgs/pkgs/by-name/xf/xfs-undelete/package.nix
index d5da9d01fc3b..cc333fb3ec2b 100644
--- a/nixpkgs/pkgs/by-name/xf/xfs-undelete/package.nix
+++ b/nixpkgs/pkgs/by-name/xf/xfs-undelete/package.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "An undelete tool for the XFS filesystem";
+    mainProgram = "xfs_undelete";
     homepage = "https://github.com/ianka/xfs_undelete";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/by-name/xi/xiu/package.nix b/nixpkgs/pkgs/by-name/xi/xiu/package.nix
index 294fac1dc861..a7551bd24332 100644
--- a/nixpkgs/pkgs/by-name/xi/xiu/package.nix
+++ b/nixpkgs/pkgs/by-name/xi/xiu/package.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "xiu";
-  version = "0.12.4";
+  version = "0.12.5";
 
   src = fetchFromGitHub {
     owner = "harlanc";
     repo = "xiu";
     rev = "v${version}";
-    hash = "sha256-tXZCWbqwt3v20rvfre/gAUzs8i78FpbNd5qAGNOX5VE=";
+    hash = "sha256-JST8nxsT+w524VzNeIW38Oct/n7VJ/nvrmgks2Vff30=";
   };
 
-  cargoHash = "sha256-6nWnw31A27VWJe8JGM+S05sqcZwQRrb1aanamv6ITZ4=";
+  cargoHash = "sha256-te60gZdDmbgOF6rLDAnvDx6vUbmCz3pC/wbu/iXgxAw=";
 
   nativeBuildInputs = [
     cmake
diff --git a/nixpkgs/pkgs/by-name/xo/xonsh/unwrapped.nix b/nixpkgs/pkgs/by-name/xo/xonsh/unwrapped.nix
index fcc46c5b6770..b0115dc247c4 100644
--- a/nixpkgs/pkgs/by-name/xo/xonsh/unwrapped.nix
+++ b/nixpkgs/pkgs/by-name/xo/xonsh/unwrapped.nix
@@ -9,7 +9,7 @@
 
 let
   pname = "xonsh";
-  version = "0.14.4";
+  version = "0.15.1";
 in
 python3.pkgs.buildPythonApplication {
   inherit pname version;
@@ -21,7 +21,7 @@ python3.pkgs.buildPythonApplication {
     owner = "xonsh";
     repo = "xonsh";
     rev = "refs/tags/${version}";
-    hash = "sha256-7qOEc4RSdOO059LietKnrxY7cy9MfgmfJjdqZZ5ENLU=";
+    hash = "sha256-mHOCkUGiSSPmkIQ4tgRZIaCTLgnx39SMwug5EIx/jrU=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
@@ -90,6 +90,8 @@ python3.pkgs.buildPythonApplication {
     export HOME=$TMPDIR
   '';
 
+  dontWrapPythonPrograms = true;
+
   passthru = {
     shellPath = "/bin/xonsh";
     python = python3; # To the wrapper
diff --git a/nixpkgs/pkgs/by-name/xp/xplr/package.nix b/nixpkgs/pkgs/by-name/xp/xplr/package.nix
index 0d4750bf7e08..8d23449c18c6 100644
--- a/nixpkgs/pkgs/by-name/xp/xplr/package.nix
+++ b/nixpkgs/pkgs/by-name/xp/xplr/package.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "xplr";
-  version = "0.21.5";
+  version = "0.21.7";
 
   src = fetchFromGitHub {
     owner = "sayanarijit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Ofr9xJH/wVlBJ1n1MMecSP8SltYwjdhb7tmkTsOMoX8=";
+    sha256 = "sha256-ZitwO/XfNrlTFNepQ5Wyk1A7cwlNm6+26nPHdZ8Wh3c=";
   };
 
-  cargoHash = "sha256-1wzqWGp0qPn2sQ1v0+6NAxvIxqCIVuN0WwpNddj71Xc=";
+  cargoHash = "sha256-mfSVjm0s/tLjjygwu8TuKn92mFM3Ui6TEHkIzS0eEOA=";
 
   # fixes `thread 'main' panicked at 'cannot find strip'` on x86_64-darwin
   env = lib.optionalAttrs (stdenv.isx86_64 && stdenv.isDarwin) {
@@ -39,6 +39,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A hackable, minimal, fast TUI file explorer";
+    mainProgram = "xplr";
     homepage = "https://xplr.dev";
     changelog = "https://github.com/sayanarijit/xplr/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/by-name/xs/xsct/package.nix b/nixpkgs/pkgs/by-name/xs/xsct/package.nix
index 6bec80b6b965..8e384f8ef978 100644
--- a/nixpkgs/pkgs/by-name/xs/xsct/package.nix
+++ b/nixpkgs/pkgs/by-name/xs/xsct/package.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Set color temperature of screen";
+    mainProgram = "xsct";
     homepage = "https://github.com/faf0/sct";
     license = licenses.unlicense;
     maintainers = with maintainers; [ OPNA2608 ];
diff --git a/nixpkgs/pkgs/by-name/ya/yamlscript/package.nix b/nixpkgs/pkgs/by-name/ya/yamlscript/package.nix
index ab541bb496b3..b91ba98953ef 100644
--- a/nixpkgs/pkgs/by-name/ya/yamlscript/package.nix
+++ b/nixpkgs/pkgs/by-name/ya/yamlscript/package.nix
@@ -2,11 +2,11 @@
 
 buildGraalvmNativeImage rec {
   pname = "yamlscript";
-  version = "0.1.39";
+  version = "0.1.46";
 
   src = fetchurl {
     url = "https://github.com/yaml/yamlscript/releases/download/${version}/yamlscript.cli-${version}-standalone.jar";
-    hash = "sha256-P64Ekkn8yIuct+dl4dVYDRhMmKFieIa75r0rJbTvfhg=";
+    hash = "sha256-eHmHliWud2ONK3lHYpLlJ1+KhvH5vuD+x5kC54ZMfWk=";
   };
 
   executable = "ys";
diff --git a/nixpkgs/pkgs/by-name/ya/yazi-unwrapped/package.nix b/nixpkgs/pkgs/by-name/ya/yazi-unwrapped/package.nix
index 4c2d1065fad6..275f2cdf888a 100644
--- a/nixpkgs/pkgs/by-name/ya/yazi-unwrapped/package.nix
+++ b/nixpkgs/pkgs/by-name/ya/yazi-unwrapped/package.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "yazi";
-  version = "0.2.3";
+  version = "0.2.4";
 
   src = fetchFromGitHub {
     owner = "sxyazi";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-2AiaJs6xY8hsB1DBxpPwdZtc8IZvsoCGWBOFVMf4dvk=";
+    hash = "sha256-c8fWWCOVBqQVdQch9BniCaJPrVEOCv35lLH8/hMIbvE=";
   };
 
-  cargoHash = "sha256-fRUmXv27sHYz8z0cc795JCPLHDQGgTV4wAWAtQ/pbg4=";
+  cargoHash = "sha256-VeDyO+KCD3Axse4iPIoRxIvoAn3L33e2ObBZFV/REeg=";
 
   env.YAZI_GEN_COMPLETIONS = true;
 
@@ -29,9 +29,9 @@ rustPlatform.buildRustPackage rec {
 
   postInstall = ''
     installShellCompletion --cmd yazi \
-      --bash ./yazi-config/completions/yazi.bash \
-      --fish ./yazi-config/completions/yazi.fish \
-      --zsh  ./yazi-config/completions/_yazi
+      --bash ./yazi-boot/completions/yazi.bash \
+      --fish ./yazi-boot/completions/yazi.fish \
+      --zsh  ./yazi-boot/completions/_yazi
   '';
 
   passthru.updateScript = nix-update-script { };
diff --git a/nixpkgs/pkgs/by-name/yo/youtrack/package.nix b/nixpkgs/pkgs/by-name/yo/youtrack/package.nix
index a3897a2a5de9..73a7537498b4 100644
--- a/nixpkgs/pkgs/by-name/yo/youtrack/package.nix
+++ b/nixpkgs/pkgs/by-name/yo/youtrack/package.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "youtrack";
-  version = "2023.3.24329";
+  version = "2024.1.26888";
 
   src = fetchzip {
     url = "https://download.jetbrains.com/charisma/youtrack-${finalAttrs.version}.zip";
-    hash = "sha256-YIqRTCON8S/emj2AChrxhY4dfwtCnXtbiAQCTQ9k54Q=";
+    hash = "sha256-RSqxL7w0Pd4MPpXx6FpZrxQkhhlZXwgy26eQIniE5FY=";
   };
 
   nativeBuildInputs = [ makeBinaryWrapper ];
diff --git a/nixpkgs/pkgs/by-name/yt/yt-dlg/package.nix b/nixpkgs/pkgs/by-name/yt/yt-dlg/package.nix
new file mode 100644
index 000000000000..c24df3604ddc
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/yt/yt-dlg/package.nix
@@ -0,0 +1,50 @@
+{
+  lib,
+  python3,
+  fetchFromGitHub,
+  fetchPypi
+}:
+let
+  python3Packages =
+    (python3.override {
+      packageOverrides = final: prev: {
+        wxpython = prev.wxpython.overrideAttrs rec {
+          version = "4.2.0";
+          src = fetchPypi {
+            pname = "wxPython";
+            inherit version;
+            hash = "sha256-ZjzrxFCdfl0RNRiGX+J093+VQ0xdV7w4btWNZc7thsc=";
+          };
+        };
+      };
+    }).pkgs;
+in
+python3Packages.buildPythonApplication rec {
+  pname = "yt-dlg";
+  version = "1.8.5";
+
+  src = fetchFromGitHub {
+    owner = "oleksis";
+    repo = "youtube-dl-gui";
+    rev = "v${version}";
+    hash = "sha256-W1ZlArmM+Ro5MF/rB88me/PD79dJA4v188mPbMd8Kow=";
+  };
+
+  pyproject = true;
+  build-system = with python3Packages; [
+    setuptools
+    wheel
+  ];
+  dependencies = with python3Packages; [
+    pypubsub
+    wxpython
+  ];
+
+  meta = {
+    description = "A cross platform front-end GUI of the popular youtube-dl written in wxPython.";
+    homepage = "https://oleksis.github.io/youtube-dl-gui";
+    license = lib.licenses.unlicense;
+    mainProgram = "yt-dlg";
+    maintainers = with lib.maintainers; [ quantenzitrone ];
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/yt/ytdownloader/config-dir.patch b/nixpkgs/pkgs/by-name/yt/ytdownloader/config-dir.patch
new file mode 100644
index 000000000000..eb3684a24887
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/yt/ytdownloader/config-dir.patch
@@ -0,0 +1,18 @@
+--- a/main.js
++++ b/main.js
+@@ -13,6 +13,15 @@
+ const fs = require("fs");
+ const path = require("path");
+ autoUpdater.autoDownload = false;
++
++// Set the config directory to XDG_CONFIG_HOME/ytdownloader
++const xdgConfigHome = process.env.XDG_CONFIG_HOME;
++let configDir = app.getPath('home') + "/.config/ytdownloader";
++if (xdgConfigHome) {
++	configDir = xdgConfigHome + "/ytdownloader";
++}
++app.setPath ('userData', configDir);
++
+ /**@type {BrowserWindow} */
+ let win = null;
+ let secondaryWindow = null;
diff --git a/nixpkgs/pkgs/by-name/yt/ytdownloader/package.nix b/nixpkgs/pkgs/by-name/yt/ytdownloader/package.nix
new file mode 100644
index 000000000000..9a607c16e4aa
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/yt/ytdownloader/package.nix
@@ -0,0 +1,70 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+, makeWrapper
+, ffmpeg
+, yt-dlp
+, makeDesktopItem
+, electron
+}:
+
+buildNpmPackage rec {
+  pname = "ytDownloader";
+  version = "3.17.3";
+
+  src = fetchFromGitHub {
+    owner = "aandrew-me";
+    repo = "ytDownloader";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-aqQGOqPLKKTBjWjL3KyRD4paBGCQLhCBjXwVVhoHDSk=";
+  };
+
+  npmDepsHash = "sha256-lhFyiWy9dgnxxaElavzqA4YpRm7cVC23pvL5Kwve58E=";
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ffmpeg yt-dlp ];
+
+  desktopItem = makeDesktopItem {
+    name = "ytDownloader";
+    exec = "ytdownloader %U";
+    icon = "ytdownloader";
+    desktopName = "ytDownloader";
+    comment = "A modern GUI video and audio downloader";
+    categories = [ "Utility" ];
+    startupWMClass = "ytDownloader";
+  };
+
+  ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
+
+  dontNpmBuild = true;
+
+  # Patch config dir to ~/.config/ytdownloader
+  # Otherwise it stores config in ~/.config/Electron
+  patches = [ ./config-dir.patch ];
+
+  # Replace hardcoded ffmpeg and ytdlp paths
+  # Also stop it from downloading ytdlp
+  postPatch = ''
+    substituteInPlace src/renderer.js \
+      --replace-fail $\{__dirname}/../ffmpeg '${lib.getExe ffmpeg}' \
+      --replace-fail 'path.join(os.homedir(), ".ytDownloader", "ytdlp")' '`${lib.getExe yt-dlp}`' \
+      --replace-fail '!!localStorage.getItem("fullYtdlpBinPresent")' 'true'
+  '';
+
+  postInstall = ''
+    makeWrapper ${electron}/bin/electron $out/bin/ytdownloader \
+        --add-flags $out/lib/node_modules/ytdownloader/main.js
+
+    install -Dm444 assets/images/icon.png $out/share/pixmaps/ytdownloader.png
+    install -Dm444 "${desktopItem}/share/applications/"* -t $out/share/applications
+  '';
+
+  meta = {
+    description = "A modern GUI video and audio downloader";
+    homepage = "https://github.com/aandrew-me/ytDownloader";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ chewblacka ];
+    platforms = lib.platforms.all;
+    mainProgram = "ytdownloader";
+  };
+}
diff --git a/nixpkgs/pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix b/nixpkgs/pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix
index 97aeb25d36c9..d80e98f83271 100644
--- a/nixpkgs/pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix
+++ b/nixpkgs/pkgs/by-name/za/zabbix-agent2-plugin-postgresql/package.nix
@@ -13,6 +13,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Required tool for Zabbix agent integrated PostgreSQL monitoring";
+    mainProgram = "postgresql";
     homepage = "https://www.zabbix.com/integrations/postgresql";
     license = licenses.asl20;
     maintainers = with maintainers; [ gador ];
diff --git a/nixpkgs/pkgs/by-name/zc/zcfan/package.nix b/nixpkgs/pkgs/by-name/zc/zcfan/package.nix
index c6bb42c286fb..7fd6eea7a5b2 100644
--- a/nixpkgs/pkgs/by-name/zc/zcfan/package.nix
+++ b/nixpkgs/pkgs/by-name/zc/zcfan/package.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A zero-configuration fan daemon for ThinkPads";
+    mainProgram = "zcfan";
     homepage = "https://github.com/cdown/zcfan";
     changelog = "https://github.com/cdown/zcfan/tags/${finalAttrs.version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/by-name/ze/zesarux/package.nix b/nixpkgs/pkgs/by-name/ze/zesarux/package.nix
index 915bfe3905cf..096f4bf2b0ec 100644
--- a/nixpkgs/pkgs/by-name/ze/zesarux/package.nix
+++ b/nixpkgs/pkgs/by-name/ze/zesarux/package.nix
@@ -75,6 +75,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://github.com/chernandezba/zesarux";
     description = "ZX Second-Emulator And Released for UniX";
+    mainProgram = "zesarux";
     license = with lib.licenses; [ gpl3Plus ];
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/by-name/zi/zigpy-cli/package.nix b/nixpkgs/pkgs/by-name/zi/zigpy-cli/package.nix
index f0ddf387354b..a1b86b3b8830 100644
--- a/nixpkgs/pkgs/by-name/zi/zigpy-cli/package.nix
+++ b/nixpkgs/pkgs/by-name/zi/zigpy-cli/package.nix
@@ -51,6 +51,7 @@ python3.pkgs.buildPythonPackage rec {
 
   meta = with lib; {
     description = "Command line interface for zigpy";
+    mainProgram = "zigpy";
     homepage = "https://github.com/zigpy/zigpy-cli";
     changelog = "https://github.com/zigpy/zigpy/releases/tag/v${version}";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/by-name/zi/zircolite/package.nix b/nixpkgs/pkgs/by-name/zi/zircolite/package.nix
index 799f2002963c..13583df1b912 100644
--- a/nixpkgs/pkgs/by-name/zi/zircolite/package.nix
+++ b/nixpkgs/pkgs/by-name/zi/zircolite/package.nix
@@ -52,6 +52,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "SIGMA-based detection tool for EVTX, Auditd, Sysmon and other logs";
+    mainProgram = "zircolite";
     homepage = "https://github.com/wagga40/Zircolite";
     changelog = "https://github.com/wagga40/Zircolite/releases/tag/${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/by-name/zo/zola/package.nix b/nixpkgs/pkgs/by-name/zo/zola/package.nix
index df32093d3ef3..8d0cb6722ef8 100644
--- a/nixpkgs/pkgs/by-name/zo/zola/package.nix
+++ b/nixpkgs/pkgs/by-name/zo/zola/package.nix
@@ -47,6 +47,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A fast static site generator with everything built-in";
+    mainProgram = "zola";
     homepage = "https://www.getzola.org/";
     changelog = "https://github.com/getzola/zola/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/by-name/zp/zpaqfranz/package.nix b/nixpkgs/pkgs/by-name/zp/zpaqfranz/package.nix
index 9719eb7dc81d..158dbade94e7 100644
--- a/nixpkgs/pkgs/by-name/zp/zpaqfranz/package.nix
+++ b/nixpkgs/pkgs/by-name/zp/zpaqfranz/package.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://github.com/fcorbelli/zpaqfranz";
     description = "Advanced multiversioned deduplicating archiver, with HW acceleration, encryption and paranoid-level tests";
+    mainProgram = "zpaqfranz";
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/tools/compression/zsync/default.nix b/nixpkgs/pkgs/by-name/zs/zsync/package.nix
index 0de21cb9c736..94aa7acce2e0 100644
--- a/nixpkgs/pkgs/tools/compression/zsync/default.nix
+++ b/nixpkgs/pkgs/by-name/zs/zsync/package.nix
@@ -9,6 +9,12 @@ stdenv.mkDerivation rec {
     sha256 = "1wjslvfy76szf0mgg2i9y9q30858xyjn6v2acc24zal76d1m778b";
   };
 
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    # Suppress error "call to undeclared library function 'strcasecmp'" during compilation.
+    # The function is found by the linker correctly, so this doesn't introduce any issues.
+    NIX_CFLAGS_COMPILE = " -Wno-implicit-function-declaration";
+  };
+
   makeFlags = [ "AR=${stdenv.cc.bintools.targetPrefix}ar" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix b/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
index bfe64459f46b..30382918c6d0 100644
--- a/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
+++ b/nixpkgs/pkgs/data/documentation/gnome-user-docs/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-user-docs";
-  version = "45.1";
+  version = "45.5";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-user-docs/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "L5DGgntfFgXfLt++orNChwMAqamBvDktyWIU2WfzrfE=";
+    sha256 = "sha256-dBZ/z0KgTZ5dPMEw0nvCA9h7aFzmBqhGdN8k4f9xnlQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/documentation/zeal/default.nix b/nixpkgs/pkgs/data/documentation/zeal/default.nix
index 18f4d1319739..3dd2f1c02c94 100644
--- a/nixpkgs/pkgs/data/documentation/zeal/default.nix
+++ b/nixpkgs/pkgs/data/documentation/zeal/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
     changelog = "https://github.com/zealdocs/zeal/releases";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ peterhoeg AndersonTorres ];
+    mainProgram = "zeal";
     inherit (qtbase.meta) platforms;
   };
 })
diff --git a/nixpkgs/pkgs/data/fonts/0xproto/default.nix b/nixpkgs/pkgs/data/fonts/0xproto/default.nix
index 98571ba7a580..ee43ede57da4 100644
--- a/nixpkgs/pkgs/data/fonts/0xproto/default.nix
+++ b/nixpkgs/pkgs/data/fonts/0xproto/default.nix
@@ -4,14 +4,14 @@
 }:
 stdenvNoCC.mkDerivation rec {
   pname = "0xproto";
-  version = "1.602";
+  version = "1.603";
 
   src = let
     underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
   in
     fetchzip {
       url = "https://github.com/0xType/0xProto/releases/download/${version}/0xProto_${underscoreVersion}.zip";
-      hash = "sha256-hcPvaC4Tyq9nLuq5RP8UzJOEGYJusRlRo2Ov4JI2IZI=";
+      hash = "sha256-20KqPX6BKlyX+R3zrhDMz3p9Vwgd4RlRe2qhJpic6W4=";
     };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix b/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix
index 9839295653d1..6dfad42d2086 100644
--- a/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix
+++ b/nixpkgs/pkgs/data/fonts/babelstone-han/default.nix
@@ -23,7 +23,7 @@ stdenvNoCC.mkDerivation {
     description = "Unicode CJK font with over 36000 Han characters";
     homepage = "https://www.babelstone.co.uk/Fonts/Han.html";
 
-    license = licenses.free;
+    license = licenses.arphicpl;
     platforms = platforms.all;
     maintainers = with maintainers; [ emily ];
   };
diff --git a/nixpkgs/pkgs/data/fonts/bront/default.nix b/nixpkgs/pkgs/data/fonts/bront/default.nix
index d21c820f127b..36e6adb380df 100644
--- a/nixpkgs/pkgs/data/fonts/bront/default.nix
+++ b/nixpkgs/pkgs/data/fonts/bront/default.nix
@@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation {
     description = "Bront Fonts";
     longDescription = "Ubuntu Mono Bront and DejaVu Sans Mono Bront fonts.";
     homepage = "https://github.com/chrismwendt/bront";
-    license = licenses.free;
+    license = with licenses; [ bitstreamVera ufl ];
     platforms = platforms.all;
     maintainers = [ maintainers.grburst ];
   };
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/bin.nix b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
index 4b0f78e298ab..8c1d28cfda88 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
+++ b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
@@ -1,20 +1,26 @@
-{ stdenv, lib, fetchurl, iosevka, unzip
+{ stdenv
+, lib
+, fetchurl
+, iosevka
+, unzip
 , variant ? ""
 }:
 
 let
-  name = if lib.hasPrefix "sgr" variant then variant
-    else "iosevka" + lib.optionalString (variant != "") "-" + variant;
+  name =
+    if lib.hasPrefix "SGr-" variant then variant
+    else "Iosevka" + variant;
 
   variantHashes = import ./variants.nix;
-  validVariants = map (lib.removePrefix "iosevka-")
-    (builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ]));
-in stdenv.mkDerivation rec {
+  validVariants = map (lib.removePrefix "Iosevka")
+    (builtins.attrNames (builtins.removeAttrs variantHashes [ "Iosevka" ]));
+in
+stdenv.mkDerivation rec {
   pname = "${name}-bin";
-  version = "27.3.5";
+  version = "29.0.1";
 
   src = fetchurl {
-    url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip";
+    url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/PkgTTC-${name}-${version}.zip";
     sha256 = variantHashes.${name} or (throw ''
       No such variant "${variant}" for package iosevka-bin.
       Valid variants are: ${lib.concatStringsSep ", " validVariants}.
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/comfy.nix b/nixpkgs/pkgs/data/fonts/iosevka/comfy.nix
index fb788b287635..63dfca58d544 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/comfy.nix
+++ b/nixpkgs/pkgs/data/fonts/iosevka/comfy.nix
@@ -4,21 +4,21 @@ let
   sets = [
     # Family                  | Shapes | Spacing | Style      | Ligatures |
     # ------------------------+--------+---------+------------+-----------|
-    "comfy"                   # Sans   | Compact | Monospaced | Yes       |
-    "comfy-fixed"             # Sans   | Compact | Monospaced | No        |
-    "comfy-duo"               # Sans   | Compact | Duospaced  | Yes       |
+    "comfy" #                 | Sans   | Compact | Monospaced | Yes       |
+    "comfy-fixed" #           | Sans   | Compact | Monospaced | No        |
+    "comfy-duo" #             | Sans   | Compact | Duospaced  | Yes       |
     # ------------------------+--------+---------+------------+-----------|
-    "comfy-motion"            # Slab   | Compact | Monospaced | Yes       |
-    "comfy-motion-fixed"      # Slab   | Compact | Monospaced | No        |
-    "comfy-motion-duo"        # Slab   | Compact | Duospaced  | Yes       |
+    "comfy-motion" #          | Slab   | Compact | Monospaced | Yes       |
+    "comfy-motion-fixed" #    | Slab   | Compact | Monospaced | No        |
+    "comfy-motion-duo" #      | Slab   | Compact | Duospaced  | Yes       |
     # ------------------------+--------+---------+------------+-----------|
-    "comfy-wide"              # Sans   | Wide    | Monospaced | Yes       |
-    "comfy-wide-fixed"        # Sans   | Wide    | Monospaced | No        |
-    "comfy-wide-duo"          # Sans   | Wide    | Duospaced  | Yes       |
+    "comfy-wide" #            | Sans   | Wide    | Monospaced | Yes       |
+    "comfy-wide-fixed" #      | Sans   | Wide    | Monospaced | No        |
+    "comfy-wide-duo" #        | Sans   | Wide    | Duospaced  | Yes       |
     # ------------------------+--------+---------+------------+-----------|
-    "comfy-wide-motion"       # Slab   | Wide    | Monospaced | Yes       |
+    "comfy-wide-motion" #     | Slab   | Wide    | Monospaced | Yes       |
     "comfy-wide-motion-fixed" # Slab   | Wide    | Monospaced | No        |
-    "comfy-wide-motion-duo"   # Slab   | Wide    | Duospaced  | Yes       |
+    "comfy-wide-motion-duo" # | Slab   | Wide    | Duospaced  | Yes       |
   ];
   version = "1.4.0";
   src = fetchFromGitHub {
@@ -34,6 +34,7 @@ let
       inherit set privateBuildPlan;
       buildNpmPackage = args: superBuildNpmPackage
         (args // {
+          pname = "iosevka-${set}";
           inherit version;
 
           src = fetchFromGitHub {
@@ -45,6 +46,14 @@ let
 
           npmDepsHash = "sha256-c+ltdh5e3+idclYfqp0Xh9IUwoj7XYP1uzJG6+a5gFU=";
 
+          installPhase = ''
+            runHook preInstall
+            fontdir="$out/share/fonts/truetype"
+            install -d "$fontdir"
+            install "dist/$pname/ttf"/* "$fontdir"
+            runHook postInstall
+          '';
+
           meta = with lib; {
             inherit (src.meta) homepage;
             description = ''
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/default.nix b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
index 6993a1641de5..c379fe7ebb3b 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/default.nix
+++ b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
@@ -54,17 +54,17 @@ assert (privateBuildPlan != null) -> set != null;
 assert (extraParameters != null) -> set != null;
 
 buildNpmPackage rec {
-  pname = if set != null then "iosevka-${set}" else "iosevka";
-  version = "27.3.5";
+  pname = "Iosevka${toString set}";
+  version = "28.1.0";
 
   src = fetchFromGitHub {
     owner = "be5invis";
     repo = "iosevka";
     rev = "v${version}";
-    hash = "sha256-dqXr/MVOuEmAMueaRWsnzY9MabhnyBRtLR9IDVLN79I=";
+    hash = "sha256-cYnGJ7Z0PDRZtC/vz8hX/+mqk7iVkajFTfNGgRW+edQ=";
   };
 
-  npmDepsHash = "sha256-bux8aFBP1Pi5pAQY1jkNTqD2Ny2j+QQs+QRaXWJj6xg=";
+  npmDepsHash = "sha256-bzQ7dc7UiC++0DxnQHusu6Ym7rd7GgeA6bGSnnla1nk=";
 
   nativeBuildInputs = [
     remarshal
@@ -88,23 +88,23 @@ buildNpmPackage rec {
     ) [ "buildPlan" ];
 
   configurePhase = ''
-    runHook preConfigure
-    ${lib.optionalString (builtins.isAttrs privateBuildPlan) ''
-      remarshal -i "$buildPlanPath" -o private-build-plans.toml -if json -of toml
-    ''}
-    ${lib.optionalString (builtins.isString privateBuildPlan
-      && (!lib.hasPrefix builtins.storeDir privateBuildPlan)) ''
-        cp "$buildPlanPath" private-build-plans.toml
+      runHook preConfigure
+      ${lib.optionalString (builtins.isAttrs privateBuildPlan) ''
+        remarshal -i "$buildPlanPath" -o private-build-plans.toml -if json -of toml
       ''}
-    ${lib.optionalString (builtins.isString privateBuildPlan
-      && (lib.hasPrefix builtins.storeDir privateBuildPlan)) ''
-        cp "$buildPlan" private-build-plans.toml
+      ${lib.optionalString (builtins.isString privateBuildPlan
+    && (!lib.hasPrefix builtins.storeDir privateBuildPlan)) ''
+          cp "$buildPlanPath" private-build-plans.toml
+        ''}
+      ${lib.optionalString (builtins.isString privateBuildPlan
+    && (lib.hasPrefix builtins.storeDir privateBuildPlan)) ''
+          cp "$buildPlan" private-build-plans.toml
+        ''}
+      ${lib.optionalString (extraParameters != null) ''
+        echo -e "\n" >> params/parameters.toml
+        cat "$extraParametersPath" >> params/parameters.toml
       ''}
-    ${lib.optionalString (extraParameters != null) ''
-      echo -e "\n" >> params/parameters.toml
-      cat "$extraParametersPath" >> params/parameters.toml
-    ''}
-    runHook postConfigure
+      runHook postConfigure
   '';
 
   buildPhase = ''
@@ -118,7 +118,7 @@ buildNpmPackage rec {
     runHook preInstall
     fontdir="$out/share/fonts/truetype"
     install -d "$fontdir"
-    install "dist/$pname/ttf"/* "$fontdir"
+    install "dist/$pname/TTF"/* "$fontdir"
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/update-bin.sh b/nixpkgs/pkgs/data/fonts/iosevka/update-bin.sh
index 68f93f1f26e6..bfa50e1a6e52 100755
--- a/nixpkgs/pkgs/data/fonts/iosevka/update-bin.sh
+++ b/nixpkgs/pkgs/data/fonts/iosevka/update-bin.sh
@@ -19,9 +19,9 @@ sed -i "s/$oldVersion/$version/" bin.nix
 {
     echo '# This file was autogenerated. DO NOT EDIT!'
     echo '{'
-    for asset in $(echo "$release" | jq -r '.assets[].name | select(startswith("ttc"))'); do
+    for asset in $(echo "$release" | jq -r '.assets[].name | select(startswith("PkgTTC"))'); do
         printf '  %s = "%s";\n' \
-            $(echo "$asset" | sed -r "s/^ttc-(.*)-$version.zip$/\1/") \
+            $(echo "$asset" | sed -r "s/^PkgTTC-(.*)-$version.zip$/\1/") \
             $(nix-prefetch-url "https://github.com/be5invis/Iosevka/releases/download/v$version/$asset")
     done
     echo '}'
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/variants.nix b/nixpkgs/pkgs/data/fonts/iosevka/variants.nix
index 5e71e08b78da..0ebf09f82621 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/variants.nix
+++ b/nixpkgs/pkgs/data/fonts/iosevka/variants.nix
@@ -1,95 +1,93 @@
 # This file was autogenerated. DO NOT EDIT!
 {
-  iosevka = "0s37z4yml026pmaj6gpc603mry34hlzg67b0v9rblb90rx7xqlii";
-  iosevka-aile = "1vpn9mg48xy4jmbs804zmisaj1mnvwv5b9c0iy6mrwkd5m7gcqfb";
-  iosevka-curly = "138wwgn03cx0lkgs2mbydiyggjmbmy3iz4wgn17sbp5d7m7g0sp3";
-  iosevka-curly-slab = "024miwl9y57rxmc4hnyjk0j861wapyfy4jpg5q61jjh6nji3qwrk";
-  iosevka-etoile = "0gcdpzi6riy6x9qcjzmvb2kcdh209d8zbbc78b95ymgyndzwp3k2";
-  iosevka-slab = "1gny1az6lrg24dx9qrrpbrq85mkn6684970gbvl8wjh1pmkv2w14";
-  iosevka-ss01 = "06kw96biyyp35cc4x5pr3bf08f72020nvwcz12wk0qms02rz37s0";
-  iosevka-ss02 = "0yd18n2vrxbpf4kccad5q0cr24j04grz57l2jpgr3j3qiwz53zn1";
-  iosevka-ss03 = "01203jgpx8hsxs2jq5py8404y1cz95m5bsdzgya3nhyfslix7dxz";
-  iosevka-ss04 = "1c2xs689fqzzvbv72wb7pfwx687hrl8vzvakjbl317qpzmlrlbkr";
-  iosevka-ss05 = "0whfsl9ma1590zmks0r7lywc0sfy6mq74p8mhkmds6h35nri9djj";
-  iosevka-ss06 = "065lqb0w4cvhk7jadic2xn4pdq0rrg4f4b0gpc5z0xa2fsvw4rir";
-  iosevka-ss07 = "0bhl2p0zrzdn9vhl5ndfdzd7658qsaci41l6vpcsl5x9np3ii2jg";
-  iosevka-ss08 = "1ka2ii29v4aqqiwfbjcwsqsj2gpa46mpnv7d11rgn49n4j0isk1p";
-  iosevka-ss09 = "08n44fjsas94d7q1x9az58z5p786gxh8665yyhvhjzh76pzrkbwj";
-  iosevka-ss10 = "136pvfw6lab3vwzrx45cqkh1n6r8srahd9jbi9li02r19m78qp6f";
-  iosevka-ss11 = "0wgnzq1vfibxgb50dcwjsvf20jvjvhp1xwsbh1zpqqsh1kr89bln";
-  iosevka-ss12 = "0ql1xhjk2alrvyryvjaw54z9gnh4gi58nhskrhnkz4mdlr7a6xr3";
-  iosevka-ss13 = "0ivk20l8y2g0s7729wjc4h9bdqvjn859ij8vaccl12ql58i2phhb";
-  iosevka-ss14 = "0ib2ynpk7lcisbmcrrd2wlia7rh243zq1hys6ln2r3gd75m6hvbq";
-  iosevka-ss15 = "0yp0n7d5wwwykmzlc41fywc1mx06khp3xiy6gad9bng7mavpx91c";
-  iosevka-ss16 = "0gm0b50zhc2hc6l3qpl4q3jk8rcr9bh8y0i65xcv3bm456753l4v";
-  iosevka-ss17 = "0yf244n7161zk1csxnb7zx2c95q79jibplvczqfh2k8as3r4xw07";
-  iosevka-ss18 = "1886h5dzswspd0j3hs0d6m271qqsfp3zkihyp9acpf2v4r56nmmn";
-  sgr-iosevka = "1kl1wkgda764qqyyk14s0gfb2qavsfvc9zbr30z7zdkcqxk383gd";
-  sgr-iosevka-aile = "115ynw0dysf9473j6jami7yf79i6rlhm7a019fxlfcqnm2k3zz5r";
-  sgr-iosevka-curly = "010g7cgd3r8dw48mfdmcqzymqn8mqn5xnnvinvilahxq0qaj2s4w";
-  sgr-iosevka-curly-slab = "1fk67ay7bs1s1qajlrib06n0y1ii1fjlxdqrj2dvzlji8ac35hqc";
-  sgr-iosevka-etoile = "1gf696k4f4hh1yh664d361x0n65sh6q0i3n8as5id2vpzcjbn83w";
-  sgr-iosevka-fixed = "12v438imi2891b4ra3c48imd0n429aa889myhkglrky1bfxwwpw2";
-  sgr-iosevka-fixed-curly = "1v4vv48an8l9a5diavxap328d3qd6iy6hbwkkn64db2vxwmkdml7";
-  sgr-iosevka-fixed-curly-slab = "0xbz45qkd9paghrdx4s1gxgnn872fmywmr7il0v5yir81wys1z97";
-  sgr-iosevka-fixed-slab = "1w7qsg6a2g27izbmqshly2bnsbwdf2rhymvnq30vqgb2f1a6rlwq";
-  sgr-iosevka-fixed-ss01 = "1f4fi4h3fl7c3b0maj2l9df4yfs4pqj9rq5f7kk9kl2jnk0zq6yy";
-  sgr-iosevka-fixed-ss02 = "18q603zbi1dk1z8n215z2kyi3rcxik6m6cffihml0f1sb39rh3r7";
-  sgr-iosevka-fixed-ss03 = "05xs1z82ck01f9x3vhc74ajbgj9ms14bbmbcz0cf18sx03hpyz84";
-  sgr-iosevka-fixed-ss04 = "00rb7580xppnvjph6az2ldhgagahvivirzax2pf3fxd5an08zmla";
-  sgr-iosevka-fixed-ss05 = "1smjnzjhkxkb9m79d8ynp30846zggb88z7qxd2q58iadq8narx2q";
-  sgr-iosevka-fixed-ss06 = "0wqd4pyv66axwsnicbpzidghvh3cx2lyzjmj66734rqz8slsrjb6";
-  sgr-iosevka-fixed-ss07 = "1xbs7mjvl8mvi4jhmxnfadvvgpyvyh7y4yqn8vhgbcxp84fzgy3j";
-  sgr-iosevka-fixed-ss08 = "0x2kkfffhapj4vnfpdv49zr4wrf02sw6467qrky9sf9phkwa40vh";
-  sgr-iosevka-fixed-ss09 = "0z436cps3rb8kfm7pxjjs8p3bjwrg86p549nd6fvgp67p05xx38r";
-  sgr-iosevka-fixed-ss10 = "0qpjdgzqb5yadp4bz26kmwjdmpaak7s2mj9km2g565bci096cri4";
-  sgr-iosevka-fixed-ss11 = "1i306ai7drhca8ammi6dz8j6v68mjyxwc35zzg801shgy8a00scd";
-  sgr-iosevka-fixed-ss12 = "0aza67vz3mrq9ah5pm7lyahdbh0dhzzp8v4hy5slmy8a766ha9gm";
-  sgr-iosevka-fixed-ss13 = "022nrapzv1s2a5davh1bpqgm46r04fbns5x6z3826ydsrwkapfs7";
-  sgr-iosevka-fixed-ss14 = "023f8j5rzivmqg61larm5kjyb7sd8prqilzd99xp1b97zi4iy0kg";
-  sgr-iosevka-fixed-ss15 = "0xb85wsfha7z0krlnb1nhzqd4cva13dvrp8kpfpnmmz1alpvgx0x";
-  sgr-iosevka-fixed-ss16 = "0n3chagxlypxsj1zb2r6z3vjfix15pc3nc8sx5cc9j4inb7v5z5v";
-  sgr-iosevka-fixed-ss17 = "0kzk2llpwi9plbn3jw203chr8ahpq6kbv9b4i9maf3ljvgdy7nyc";
-  sgr-iosevka-fixed-ss18 = "1mzv3zkxrd1lsri1niiqvlkpzhxy9m0gr3ygxzrrfj3f6p6wzq87";
-  sgr-iosevka-slab = "1fsl0qsvmfhxjc6y5g8d90x39mz5hzw55xfnwzjjifls6igc8kd4";
-  sgr-iosevka-ss01 = "0z18akfqsgr6qcqrcrrwpfdswzk8if9cdhahqgjnkw90qm4m6pyq";
-  sgr-iosevka-ss02 = "0x0bc72y835xlz9k2xbbpgccrgswkg7w1hia86x6d91kgj7whmg4";
-  sgr-iosevka-ss03 = "0v56qc9aj2k1vs7wxnni21hflady4n5qi05gysp193n7j440l3ci";
-  sgr-iosevka-ss04 = "0nidrw3pjcn5fz2a6ysvdkqah31rzgnsg4z7p804h9cnqwl2b2m4";
-  sgr-iosevka-ss05 = "0khphs4d28sas5i31kbbj2zv0b45vc0p05d9kyg3azl4hl72ic41";
-  sgr-iosevka-ss06 = "0qmr33qv890jqygz6gllh1g0fvvxyjmla0hb02zcgljrccwq7jyd";
-  sgr-iosevka-ss07 = "09952mnal5mdz5fqfg4ayidvxcc8sfwv7d127vdzxhawg60ikkss";
-  sgr-iosevka-ss08 = "1ymf7j5jx2jdh6n910d89k71m95hg05dp6g6mvv0c7m4yf5wd7m3";
-  sgr-iosevka-ss09 = "0gh7rx8fzbx61jba34kcwlazxg7ar4y6vp1h6aysn30fv7q9p7rp";
-  sgr-iosevka-ss10 = "0i72r3xllg8am12n700zylc1a8nc4xnj5zxhfhvlk1czdhv7dln6";
-  sgr-iosevka-ss11 = "0hs8b9fmjwxbl08652zfkgdmq0dds43jsr2qd3npmg6cg2xdiz2n";
-  sgr-iosevka-ss12 = "0crs18k93v2xsry8fmf07wfpl3n7ixdn2sy7xls4ijk5wk0nd6vr";
-  sgr-iosevka-ss13 = "1fg883qjpqpcxwh9bwc88nzihisr212q1fdrrzy8q3p9vy322j5j";
-  sgr-iosevka-ss14 = "1ix85cr0prgfrxckzgf2xdnh9zv6d8v2f4lf6syq0rax2wpdxdk7";
-  sgr-iosevka-ss15 = "098fjkjlgnzmw4wgr2d7vx627xiq7n19rc2x5f6qhqcfxcvayf0f";
-  sgr-iosevka-ss16 = "0ibfr10h6gxnimpq0bbp2n61a4y4rdkwa5x6m8hlxndxi801zy8j";
-  sgr-iosevka-ss17 = "11zx7lpp8xy67x35a6089s3fq0i1yqfdkckxnp2f32szv67midp0";
-  sgr-iosevka-ss18 = "1zdfk1a9sixn7as75sjf7sgh3qhhhs819305i9aw93dy4ghvc4zc";
-  sgr-iosevka-term = "091rkh4abm90hakq78w7r3ks9kcyx7kpcfvvcx8ydq7qammc2064";
-  sgr-iosevka-term-curly = "0kqxraz8jl7w97yf4x9jp7rkbkxjj85yghw0f70g3idxmzk2n4fh";
-  sgr-iosevka-term-curly-slab = "1q10n7wckzv1y9dq0b3jj61h39mcjhkga310pm8r0mjh59jsqxxk";
-  sgr-iosevka-term-slab = "1pzd5gzz7s1gawvvqnh8gfc6cm5c56ajvkc6c3fnjycl1v9fr3fg";
-  sgr-iosevka-term-ss01 = "0za9kwg389znql9jycs02xnmn9wi9c9ganwlqrsmazgcg6cxksds";
-  sgr-iosevka-term-ss02 = "0qli57cva503qvxqx86lrl6mjmbq9n0i04198vzjs5ad151iqk2a";
-  sgr-iosevka-term-ss03 = "0yfp4a6m9dl67kc8wa4skzrlkh1ysh0a0ndv3gvknaidzpqyigwh";
-  sgr-iosevka-term-ss04 = "1b8yvv3i66d0j4z8fh94q97hqgw404pf1z57p7kx31nlgs0p26kq";
-  sgr-iosevka-term-ss05 = "1x6adciw3irh6xsxjlw668l0cz094zin1p4f83allc2bkphq3f9w";
-  sgr-iosevka-term-ss06 = "1z73jak1ffc1mdnfh3j1z33b8sj5bbh5s86mn7ki5fy5wvq65sih";
-  sgr-iosevka-term-ss07 = "1f028x2m39xphvx265qzh3mrirj3rkwv9jmr5q4qdpvpk7xnbra9";
-  sgr-iosevka-term-ss08 = "1i0k7k21fmnb0s5ri840a45ycxmm9dz2zw59n4sxivyv70fhhsfc";
-  sgr-iosevka-term-ss09 = "1qn891rqxha2sr9w2h885xx4fnyc9scjqqp148dpsnn32cg7bqpr";
-  sgr-iosevka-term-ss10 = "02a1nxcv4q6s6kvlxrq7b9xdym2j7in40pkw05df8wqmlqzmgv2b";
-  sgr-iosevka-term-ss11 = "0fwjn4a5p65q5rdbb9wb979ff4k5r2ifh2x99jhj0xhwpy8dza1i";
-  sgr-iosevka-term-ss12 = "1ycga16psqw4jh6gzxji6sbvhlq6488hkkqwsh1h860gjql0ckm6";
-  sgr-iosevka-term-ss13 = "1f715vxs5j5ham5ihpxzq36ykn2nm2f62gg8s3yzsyp9s58sndmd";
-  sgr-iosevka-term-ss14 = "1l2s2naa77xv1dwng6lw0zccbndaln8viamsgmbrqjwfdisbrlzw";
-  sgr-iosevka-term-ss15 = "1wmkpilp06633rdaf5dzbw48srikh5a8jvk8prcwka4flrs5crnq";
-  sgr-iosevka-term-ss16 = "0ccxfk87qp4lr3g67lzbphw6rknvc78h66bbpq5smk0diad8q3nc";
-  sgr-iosevka-term-ss17 = "1hm0m9gr8pwbp34fsg9dxcmawn2czmx908gajv4miq4wg0ivsz8k";
-  sgr-iosevka-term-ss18 = "1ylbvygxdn3f2crkrywhj0jc15hdpwh08f925xxygq3vrshd22r6";
+  Iosevka = "1nahnfmivrwdy64xk4lkm8lb3zhj3q6prb8fhwkz0fw9jrl90qd4";
+  IosevkaAile = "1vk1bimj83yfzn8p0ww0mcw65r7s7d0nhx1s01wvpjdszq5z01g1";
+  IosevkaCurly = "13z9a6szvvl2jp0l47j9mad1bhxwps17r5awkj4i17lpwnh2j09g";
+  IosevkaCurlySlab = "1z7m6317a2bkdxv59as3zhhzh2wx39nmpw3nhgnx2rg23hl1ykih";
+  IosevkaEtoile = "0zj6bvvpmdfh3p6agn1jlb2pc6701fqgql2dp1lpivlrb85k2d5l";
+  IosevkaSlab = "1cvv8fc3a3rgslh9zy6lsbpijapsqx3cqckncbjyv9y10n4lff7p";
+  IosevkaSS01 = "0lxnjv3z794hd9y7rxzgi6kz7dcmgr6605s73bxj2k2zwjaj25ca";
+  IosevkaSS02 = "0axhww5zmj4rdif5hp3rqx6k4jb4kypcw2ixzq9dw4p2kjffnhkc";
+  IosevkaSS03 = "0iamdny07rlzc621w5q1pkmdiw50fcfkg8xp21syw78g07ip492j";
+  IosevkaSS04 = "0zxwaqbdsj9agp30ign1fvb80y33lirfhi5bsc003dc7g3s250xg";
+  IosevkaSS05 = "1is00nvqvnam87hy6vdd36jmsznsphqn81cs3dia68q2bh6v73gk";
+  IosevkaSS06 = "077fyfzkg8mhjazwa9fjf9gnh7ifdqxg2ycnzxdyma0dn3222wx2";
+  IosevkaSS07 = "19idgw1aq440hk704b729zgxrsgxc7yi57s8wgjclmf7bbdx22mx";
+  IosevkaSS08 = "0r2jdljp4arc4j2xa3av17rg3fzhjh5w1y54idzzhv0wxkhq6jpv";
+  IosevkaSS09 = "0dr50svi8p7ndhch7v9m17fck5yha2xbf11aqi5dnx823xnp0gzk";
+  IosevkaSS10 = "17gzdnyy0zlzysmbl4gwk0mamk1qj3gnhhx0ka3wacpykcgm2q7q";
+  IosevkaSS11 = "1cksgn1a923n70mwd9npmlgnz4mxm5jscf0svh9058v3grzkqw9s";
+  IosevkaSS12 = "11dj6r3vlfa695p0g21rmyh6ilvkp2286x1379r1r2a1l7s265sy";
+  IosevkaSS13 = "0wlkpaix8zh7sxvwi6sp7qyrziylaa0h0s4981yap9pc3wgp6d9h";
+  IosevkaSS14 = "1znw5762hl4g7zwz7360akrnyzk5cvfl3y6sa82ljwv1a2fdhfm0";
+  IosevkaSS15 = "09srcc7zi5b5is75mh2d8r9p10dnmd1yd78vmykwngdlxyhsphwp";
+  IosevkaSS16 = "1jmq4qkvld2g0d4j83zfby0qccv0wnfpqnx269dxcp5pw9nkq6d6";
+  IosevkaSS17 = "0yrjxj8fshpycv87hpqx0f71z8g79r0qb3r6kw8gk8mqviiifp88";
+  IosevkaSS18 = "0nx2pfgrgxhii2mv5zya51dwmlyk448p2kgxn52g79yj57f63ycl";
+  SGr-Iosevka = "0rgpswnkb87rkfqh7jzd8z7jqj6l5prrnx5hpsbd55091qw29yfw";
+  SGr-IosevkaCurly = "0h5ny3vqy5il9542zkr5hxgrq5qx4ky0g67m4nf5whyi2n1b7i2v";
+  SGr-IosevkaCurlySlab = "179vll8ywfpxzadwm4w7x70aav7na33dii4mjhx6dxmdbw9mwxjq";
+  SGr-IosevkaFixed = "0pvxc8na5hvdgddwgkr3vsn8mr0j06z8vy3519fdjq9mianvf0h9";
+  SGr-IosevkaFixedCurly = "0y58azsbq9zw1fxmdi36z939ss8mz099iipg0wynmsyckvla8ida";
+  SGr-IosevkaFixedCurlySlab = "1mkh496pp8fggsqlriz7125lcnh0vjm81csipsrpq55c17hkdqwg";
+  SGr-IosevkaFixedSlab = "1ss0j0x4c8wi4swjgl7hain5qh9dnvldhgki8n0azmi1qrxv2isx";
+  SGr-IosevkaFixedSS01 = "1xvrzib1srnp4v5mxrp8vi38lap53jf402hgipmfmdac3zhzybzw";
+  SGr-IosevkaFixedSS02 = "0bd66z5h8vzmm16s54kf4n694cqxsvniwhd1vp25wifkspq2giij";
+  SGr-IosevkaFixedSS03 = "08dx6b58mjq3fy2dnvw68vb12pq7rsplrrxhz3fygx6nv2mc7rnn";
+  SGr-IosevkaFixedSS04 = "0nj66p91kldzwzvaq2nwsmdc4v2qv2b3rwvcv8ffk23sacy7bci6";
+  SGr-IosevkaFixedSS05 = "19n22pfqfz8b80hbw8sj0l0f19g1yi737wgxg82s221w2zrzjgri";
+  SGr-IosevkaFixedSS06 = "1m65l05qrv2in9idbx53ialg8wkrszb3y516cy39n8f7ish5rdhl";
+  SGr-IosevkaFixedSS07 = "1fyphdwa352nnzvbighgxjmg31dfrswfwx2akq56v1jbssk5vpfa";
+  SGr-IosevkaFixedSS08 = "0b0l1p62nxc5k46wqz8dih2b4gn96b5mgpnqr6m5nhb8n1ygwqik";
+  SGr-IosevkaFixedSS09 = "1in2wg4c3ggvi3r8x7fcd4jm1qsh10ppng025m8n57j9ziz0a3s9";
+  SGr-IosevkaFixedSS10 = "0m7arqxzb368pz1ns05szk159ir07h5yy9x436csjg8cnqsdw426";
+  SGr-IosevkaFixedSS11 = "0vz1lasrhqwkpfawvy0p5ygcr9xkg3am9xc7xmnfspvydjmf8s5l";
+  SGr-IosevkaFixedSS12 = "052yjy84jika9r6w1ivh6l13h9300rydaraxjhp6shgmdknd3qhn";
+  SGr-IosevkaFixedSS13 = "09qs91m4bc9dl4bipz0sfpmd5b0vly6ql01zvbn5n4kwh4591l53";
+  SGr-IosevkaFixedSS14 = "1x6jwx9daivf7mgjip9n3klprmvqm2s2dhg2alcbcmk9xk45ldzv";
+  SGr-IosevkaFixedSS15 = "0p6d53zk7agpjsrjx97dm5xk5j45xx4ynq034r61hdm9dagh9p9w";
+  SGr-IosevkaFixedSS16 = "1n4w7p4a8plq0fw5hvsq601z6zcrx1793s8snczxfy8sd1ggw68h";
+  SGr-IosevkaFixedSS17 = "0paiwkkar6lzlggilds5z4qq7mw7qhcj8syn0hpyfivx1jh5zp0x";
+  SGr-IosevkaFixedSS18 = "0ghxl8zxpwz3sg89kx8s1qhrv5r7hcp77dv2k6wihfdqbi507pp6";
+  SGr-IosevkaSlab = "10d6miynr4ywjni5x306bkyimvrf8nxr9nq3khnfrm64al5kv8ly";
+  SGr-IosevkaSS01 = "19467salb40flls3fijskx6g9jjbw7kzni9fikr1141hd6rp7a9d";
+  SGr-IosevkaSS02 = "0vqyxrk3v48l6l1z5lvhqq56xff1v6pjr5q6n5nn8jlf22jmrdx3";
+  SGr-IosevkaSS03 = "1y39rdg4rap3l55ga2kjp7dxr4bi3g3n3mhm1f3s15xmjx9wh3hr";
+  SGr-IosevkaSS04 = "1igx2d1fh328w7jr8nz24kdh5jdr8gdp2hwmh5rg09jw400v9pph";
+  SGr-IosevkaSS05 = "0a7yw1nig9j64jhs9dmm26367f4b8d3kz55x2r0nny20l309iwc7";
+  SGr-IosevkaSS06 = "1diq8s859lh02pv2g6gq3d8f2wva0vh7mim3rygd5p6nhsz1z0ya";
+  SGr-IosevkaSS07 = "0y9kwms1qfnpdzzrsxrmla1vhvxldz7bj0162k9kfphmg49kdzp6";
+  SGr-IosevkaSS08 = "0zlgvck0c5rnkc6v0zfxl2bj2py1mvahag9f9x4z537b2f71miwb";
+  SGr-IosevkaSS09 = "0aqr55cyik59d807xwn4xbalq3hkj85wphxb713qcdqxh0fx14m3";
+  SGr-IosevkaSS10 = "0racfcw376s4z3kpb928d9kif6gqgcqyj6m0mpbwgap5fxjq227b";
+  SGr-IosevkaSS11 = "0pirg5pvmbs3c630x6fh685rnmqam7nciyvv00280fal8pn2q90d";
+  SGr-IosevkaSS12 = "0hm1jjsmi1chmvq4yf7fy2xsj2zvqxwhip0cn3ndhk35zi0y31dk";
+  SGr-IosevkaSS13 = "180pq16ax9inx454ar5biwfwi4n6h1zivg55czm50pb444a7lm6f";
+  SGr-IosevkaSS14 = "120cmw9s8cpjbdkvrl9cqy52pv5pxx1cy9ngbanhrma6pfssfq27";
+  SGr-IosevkaSS15 = "10x25vcpknig8bdd0iqb7i1s18l2m3r72kdmnxf227ba1gy4rizn";
+  SGr-IosevkaSS16 = "0jm07z7sgvr07zrzk51irxlnv8r1frsc5ay4yks3qh3gbphc35bb";
+  SGr-IosevkaSS17 = "103n3cy3vfcb7yirj78x0q73prw5c5hx2493daqy6qvhwb52xm4g";
+  SGr-IosevkaSS18 = "1grgq4147nh0g4d0dvcmmwz1xmhar4gdjv8rgng2z8fc4sbvlvjf";
+  SGr-IosevkaTerm = "0i356wmzxlii2wc15va2m4sl56lg099xyixjkcc5w2p57dycljl5";
+  SGr-IosevkaTermCurly = "1mna0m08wi2gmbmj2gdnk4z1pqvyvrbig2wrna104mcc121slnmg";
+  SGr-IosevkaTermCurlySlab = "06gy71wg5nkdx6nk1l97ag100if5fy44bc4bnj4v0whnd6a4rgvj";
+  SGr-IosevkaTermSlab = "1w2508a24rf21vaiy15pb0flk3gb7am8iv7x0px9bljpng9pnanr";
+  SGr-IosevkaTermSS01 = "1gnmr32n3z8hm8xjcix9bkip1hpp4fdhzqvvw5iwaa259xz1x6pf";
+  SGr-IosevkaTermSS02 = "19a88y4kpfxqw9fgy0yx6mv48mx5hmpijpc9bswn79lfxdhv2kc9";
+  SGr-IosevkaTermSS03 = "13y1i1gfzgf0p5x75kf61j4ya9gmphjw6wj5j6a3fx5nxg2856pi";
+  SGr-IosevkaTermSS04 = "1q1p6gj2wx1pp9s46rw08nrdpm87xgx67vmi2dllkf20azs264vp";
+  SGr-IosevkaTermSS05 = "1kkz5sb8i9fsj27zd4nvlvnfc6scq00nmw5vc7r700jn0aqzlhyb";
+  SGr-IosevkaTermSS06 = "1wbc1y2l8lqg0qcsf8iq0w6nglhsgns8dmvf94ay2mzwmq2acw1i";
+  SGr-IosevkaTermSS07 = "1s9wsmqlliy1rf7gj15p4z8vmlhyxq7c2w8hyqf5az97rqprx6ir";
+  SGr-IosevkaTermSS08 = "17cjrwnladjnmch73l55p8bhdnbpr2jk8r6ssrs3pr1pi4xiv5i2";
+  SGr-IosevkaTermSS09 = "16fy6pwh8qlnl1knp429rhvcx26ldcb0vri614cv87fwm7vvykql";
+  SGr-IosevkaTermSS10 = "0vg3qqhbc308m90h7cy1av62zy5a34rzl60kba3d1skq1mf9zwlm";
+  SGr-IosevkaTermSS11 = "08k73y8nrdzjn23fbpc5qn9gff8zvb65yb6hcrj359p0dxwx0r24";
+  SGr-IosevkaTermSS12 = "10vlww4by76a2yvczimhv5y8wcxl6ir5sal8qcfbkz11ml2fp5q6";
+  SGr-IosevkaTermSS13 = "1a62vdsdk5c42gi34gi345dqqirn7rqdpfj0chc3394wjdx3g1bl";
+  SGr-IosevkaTermSS14 = "0aq251sw84l8phys73589ky4xymbdglnn1ff07a6k862r3c1bzz0";
+  SGr-IosevkaTermSS15 = "0mslmw4ywgdfhz1xgpa2ybhxpa423l2f8dwgxz6ngmbrl8sbqcr9";
+  SGr-IosevkaTermSS16 = "1sr2sm1i6isivd3qgirxhgscf54sqw2cm5p7zhj9jqnmgsvvm1p2";
+  SGr-IosevkaTermSS17 = "00x3h0pp0q0hrqhy5mf0smf6gf5hxn19yvk6cnlsbkgfhgw5swh9";
+  SGr-IosevkaTermSS18 = "0nv7pqwwfwgrdam0f2104x8p4v1b4lvxqv1pzab32l1s61iw7jsz";
 }
diff --git a/nixpkgs/pkgs/data/fonts/junicode/default.nix b/nixpkgs/pkgs/data/fonts/junicode/default.nix
index 29a158838458..1bc12ad70abb 100644
--- a/nixpkgs/pkgs/data/fonts/junicode/default.nix
+++ b/nixpkgs/pkgs/data/fonts/junicode/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenvNoCC, fetchzip }:
+{ lib, stdenvNoCC, fetchzip, texlive, callPackage }:
 
 stdenvNoCC.mkDerivation rec {
   pname = "junicode";
@@ -9,7 +9,17 @@ stdenvNoCC.mkDerivation rec {
     hash = "sha256-oOKg85Yz5/2/pvwjVqeQXE8xE7X+QJvPYwYN+E18oEc=";
   };
 
-  outputs = [ "out" "doc" ];
+  outputs = [ "out" "doc" "tex" ];
+
+  patches = [ ./tex-font-path.patch ];
+
+  postPatch = ''
+    substituteInPlace TeX/junicode.sty \
+      --replace '@@@opentype_path@@@' "$out/share/fonts/opentype/" \
+      --replace '@@@truetype_path@@@' "$out/share/fonts/truetype/"
+    substituteInPlace TeX/junicodevf.sty \
+      --replace '@@@truetype_path@@@' "$out/share/fonts/truetype/"
+  '';
 
   installPhase = ''
     runHook preInstall
@@ -20,9 +30,18 @@ stdenvNoCC.mkDerivation rec {
 
     install -Dm 444 -t $doc/share/doc/${pname}-${version} docs/*.pdf
 
+    install -Dm 444 -t $tex/tex/latex/junicode TeX/junicode.sty
+    install -Dm 444 -t $tex/tex/latex/junicodevf TeX/junicodevf.{sty,lua}
+
     runHook postInstall
   '';
 
+  passthru = {
+    tlDeps = with texlive; [ xkeyval fontspec ];
+
+    tests = callPackage ./tests.nix { };
+  };
+
   meta = {
     homepage = "https://github.com/psb1558/Junicode-font";
     description = "A Unicode font for medievalists";
diff --git a/nixpkgs/pkgs/data/fonts/junicode/test-vf.tex b/nixpkgs/pkgs/data/fonts/junicode/test-vf.tex
new file mode 100644
index 000000000000..a23437b40efd
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/junicode/test-vf.tex
@@ -0,0 +1,46 @@
+\documentclass{article}
+
+\usepackage{junicodevf}
+
+\begin{document}
+\begin{enumerate}
+\item {\jBold Bold}
+\item {\jBoldItalic BoldItalic}
+\item {\jCond Cond}
+\item {\jCondItalic CondItalic}
+\item {\jCondLight CondLight}
+\item {\jCondLightItalic CondLightItalic}
+\item {\jCondMedium CondMedium}
+\item {\jCondMediumItalic CondMediumItalic}
+\item {\jExp Exp}
+\item {\jExpItalic ExpItalic}
+\item {\jExpBold ExpBold}
+\item {\jExpBoldItalic ExpBoldItalic}
+\item {\jExpMedium ExpMedium}
+\item {\jExpMediumItalic ExpMediumItalic}
+\item {\jExpSmbold ExpSmbold}
+\item {\jExpSmboldItalic ExpSmboldItalic}
+\item {\jItalic Italic}
+\item {\jLight Light}
+\item {\jLightItalic LightItalic}
+\item {\jMedium Medium}
+\item {\jMediumItalic MediumItalic}
+\item {\jRegular Regular}
+\item {\jSmbold Smbold}
+\item {\jSmboldItalic SmboldItalic}
+\item {\jSmCond SmCond}
+\item {\jSmCondItalic SmCondItalic}
+\item {\jSmCondLight SmCondLight}
+\item {\jSmCondLightItalic SmCondLightItalic}
+\item {\jSmCondMedium SmCondMedium}
+\item {\jSmCondMediumItalic SmCondMediumItalic}
+\item {\jSmExp SmExp}
+\item {\jSmExpItalic SmExpItalic}
+\item {\jSmExpBold SmExpBold}
+\item {\jSmExpBoldItalic SmExpBoldItalic}
+\item {\jSmExpMedium SmExpMedium}
+\item {\jSmExpMediumItalic SmExpMediumItalic}
+\item {\jSmExpSmbold SmExpSmbold}
+\item {\jSmExpSmboldItalic SmExpSmboldItalic}
+\end{enumerate}
+\end{document}
diff --git a/nixpkgs/pkgs/data/fonts/junicode/test.tex b/nixpkgs/pkgs/data/fonts/junicode/test.tex
new file mode 100644
index 000000000000..d82f40f1279f
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/junicode/test.tex
@@ -0,0 +1,46 @@
+\documentclass{article}
+
+\usepackage[fonttype=@fonttype@]{junicode}
+
+\begin{document}
+\begin{enumerate}
+\item {\jBold Bold}
+\item {\jBoldItalic BoldItalic}
+\item {\jCond Cond}
+\item {\jCondItalic CondItalic}
+\item {\jCondLight CondLight}
+\item {\jCondLightItalic CondLightItalic}
+\item {\jCondMedium CondMedium}
+\item {\jCondMediumItalic CondMediumItalic}
+\item {\jExp Exp}
+\item {\jExpItalic ExpItalic}
+\item {\jExpBold ExpBold}
+\item {\jExpBoldItalic ExpBoldItalic}
+\item {\jExpMedium ExpMedium}
+\item {\jExpMediumItalic ExpMediumItalic}
+\item {\jExpSmBold ExpSmBold}
+\item {\jExpSmBoldItalic ExpSmBoldItalic}
+\item {\jItalic Italic}
+\item {\jLight Light}
+\item {\jLightItalic LightItalic}
+\item {\jMedium Medium}
+\item {\jMediumItalic MediumItalic}
+\item {\jRegular Regular}
+\item {\jSmBold SmBold}
+\item {\jSmBoldItalic SmBoldItalic}
+\item {\jSmCond SmCond}
+\item {\jSmCondItalic SmCondItalic}
+\item {\jSmCondLight SmCondLight}
+\item {\jSmCondLightItalic SmCondLightItalic}
+\item {\jSmCondMedium SmCondMedium}
+\item {\jSmCondMediumItalic SmCondMediumItalic}
+\item {\jSmExp SmExp}
+\item {\jSmExpItalic SmExpItalic}
+\item {\jSmExpBold SmExpBold}
+\item {\jSmExpBoldItalic SmExpBoldItalic}
+\item {\jSmExpMedium SmExpMedium}
+\item {\jSmExpMediumItalic SmExpMediumItalic}
+\item {\jSmExpSmBold SmExpSmBold}
+\item {\jSmExpSmBoldItalic SmExpSmBoldItalic}
+\end{enumerate}
+\end{document}
diff --git a/nixpkgs/pkgs/data/fonts/junicode/tests.nix b/nixpkgs/pkgs/data/fonts/junicode/tests.nix
new file mode 100644
index 000000000000..fda7de31670e
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/junicode/tests.nix
@@ -0,0 +1,35 @@
+{ lib, runCommand, junicode, texliveBasic }:
+let
+  texliveWithJunicode = texliveBasic.withPackages (p: [ p.xetex junicode ]);
+
+  texTest = { package, tex, fonttype, file }:
+    lib.attrsets.nameValuePair "${package}-${tex}-${fonttype}" (
+      runCommand "${package}-test-${tex}-${fonttype}.pdf"
+        {
+          nativeBuildInputs = [ texliveWithJunicode ];
+          inherit tex fonttype file;
+        } ''
+        substituteAll $file test.tex
+        HOME=$PWD $tex test.tex
+        cp test.pdf $out
+      '');
+in
+builtins.listToAttrs (
+  map
+    texTest
+    (lib.attrsets.cartesianProductOfSets {
+      tex = [ "xelatex" "lualatex" ];
+      fonttype = [ "ttf" "otf" ];
+      package = [ "junicode" ];
+      file = [ ./test.tex ];
+    })
+  ++
+  [
+    (texTest {
+      package = "junicodevf";
+      fonttype = "ttf";
+      tex = "lualatex";
+      file = ./test-vf.tex;
+    })
+  ]
+)
diff --git a/nixpkgs/pkgs/data/fonts/junicode/tex-font-path.patch b/nixpkgs/pkgs/data/fonts/junicode/tex-font-path.patch
new file mode 100644
index 000000000000..13b311b39ce6
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/junicode/tex-font-path.patch
@@ -0,0 +1,166 @@
+Upstream style file relies on font files being present on the system
+globally.  This is not quite how Nix usually does thing, so this patch
+changes the style file to instead look fonts up in hardcoded
+locations, which are later patched up to refer to the package outputs,
+thus ensuring the style always uses the fonts packaged with it.
+
+diff --git a/TeX/junicode.sty b/TeX/junicode.sty
+index 83bd45d..8fe671c 100644
+--- a/TeX/junicode.sty
++++ b/TeX/junicode.sty
+@@ -208,7 +208,14 @@
+ 
+ \RequirePackage{fontspec}
+ \defaultfontfeatures{Ligatures=TeX, Extension=.\junicode@fonttype}
+-\defaultfontfeatures{Ligatures=TeX}
++
++\def\junicode@fonttype@otf{otf}
++
++\ifx\junicode@fonttype\junicode@fonttype@otf
++  \def\junicode@fontpath{@@@opentype_path@@@}
++\else
++  \def\junicode@fontpath{@@@truetype_path@@@}
++\fi
+ 
+ \ifxetex
+ \typeout{\junicode@regstylename}
+@@ -219,6 +226,7 @@
+    ItalicFont =        *-\junicode@italstylename,
+    BoldFont =          *-\junicode@boldstylename,
+    BoldItalicFont =    *-\junicode@boldstylename Italic,
++   Path =              \junicode@fontpath,
+   ]{Junicode}
+ \fi
+ \ifluatex
+@@ -230,6 +238,7 @@
+    ItalicFont =        *-\junicode@italstylename,
+    BoldFont =          *-\junicode@boldstylename,
+    BoldItalicFont =    *-\junicode@boldstylename Italic,
++   Path =              \junicode@fontpath,
+   ]{Junicode}
+ \fi
+ 
+@@ -242,6 +251,7 @@
+         #3
+         Numbers =           {\junicode@figurealign,\junicode@figurestyle},
+         SmallCapsFeatures = {Letters=SmallCaps},
++        Path =              \junicode@fontpath,
+     ]
+ }
+ \fi
+@@ -252,6 +262,7 @@
+         #3
+         Numbers =           {\junicode@figurealign,\junicode@figurestyle},
+         SmallCapsFeatures = {Letters=SmallCaps},
++        Path =              \junicode@fontpath,
+     ]
+ }
+ \fi
+diff --git a/TeX/junicodevf.lua b/TeX/junicodevf.lua
+index 7148668..acebe82 100644
+--- a/TeX/junicodevf.lua
++++ b/TeX/junicodevf.lua
+@@ -148,7 +148,7 @@ function mkfontcommands()
+          romfontcmd = "jRegular"
+          italfontcmd = "jItalic"
+       end
+-      tex.print("\\junicodevf@newfont{\\" .. romfontcmd .. "}{JunicodeVF}{\\" .. defcmd .. "}{\\" .. defsizecmd .. "}")
++      tex.print("\\junicodevf@newfont{\\" .. romfontcmd .. "}{JunicodeVF-Roman}{\\" .. defcmd .. "}{\\" .. defsizecmd .. "}")
+       tex.print("\\junicodevf@newfont{\\" .. italfontcmd .. "}{JunicodeVF-Italic}{\\" .. defcmd .. "}{\\" .. defsizecmd .. "}")
+    end
+ end
+diff --git a/TeX/junicodevf.sty b/TeX/junicodevf.sty
+index c01ccaf..07a99ad 100644
+--- a/TeX/junicodevf.sty
++++ b/TeX/junicodevf.sty
+@@ -168,11 +168,13 @@ mkwidthcommands(wdindex, adjustment)}}
+ 
+ % DECLARE THE FONTS
+ 
+-\setmainfont{Junicode VF}[
+-    ItalicFont =         {*-Italic},
+-    BoldFont =           {*},
+-    BoldItalicFont =     {*-Italic},
++\setmainfont{JunicodeVF-Roman}[
++    ItalicFont =         {JunicodeVF-Italic},
++    BoldFont =           {JunicodeVF-Roman},
++    BoldItalicFont =     {JunicodeVF-Italic},
+     Renderer =           HarfBuzz,
++    Extension =          .ttf,
++    Path =               @@@truetype_path@@@,
+     Numbers =            {\junicodevf@figurealign,\junicodevf@figurestyle},
+     \MainDef,
+     UprightFeatures =    {\MainRegDef
+@@ -188,6 +190,8 @@ mkwidthcommands(wdindex, adjustment)}}
+ \newcommand*{\junicodevf@newfont}[4]{
+     \setfontface#1{#2}[
+         Renderer =          HarfBuzz,
++        Extension =          .ttf,
++        Path =               @@@truetype_path@@@,
+         Numbers =           {\junicodevf@figurealign,\junicodevf@figurestyle},
+         SmallCapsFont =     {*},
+         SmallCapsFeatures = {Letters=SmallCaps},
+@@ -200,43 +204,59 @@ mkwidthcommands(wdindex, adjustment)}}
+ 
+ % ENLARGED FACES
+ 
+-\setfontface\EnlargedOne{JunicodeVF}[
++\setfontface\EnlargedOne{JunicodeVF-Roman}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLAOneSizeDef
+ ]
+ 
+ \setfontface\EnlargedOneItalic{JunicodeVF-Italic}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLAOneSizeDef
+ ]
+ 
+-\setfontface\EnlargedTwo{JunicodeVF}[
++\setfontface\EnlargedTwo{JunicodeVF-Roman}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLATwoSizeDef
+ ]
+ 
+ \setfontface\EnlargedTwoItalic{JunicodeVF-Italic}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLATwoSizeDef
+ ]
+ 
+-\setfontface\EnlargedThree{JunicodeVF}[
++\setfontface\EnlargedThree{JunicodeVF-Roman}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLAThreeSizeDef
+ ]
+ 
+ \setfontface\EnlargedThreeItalic{JunicodeVF-Italic}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLAThreeSizeDef
+ ]
+ 
+-\setfontface\EnlargedFour{JunicodeVF}[
++\setfontface\EnlargedFour{JunicodeVF-Roman}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLAFourSizeDef
+ ]
+ 
+ \setfontface\EnlargedFourItalic{JunicodeVF-Italic}[
+     Renderer = HarfBuzz,
++    Extension = .ttf,
++    Path = @@@truetype_path@@@,
+     \ENLAFourSizeDef
+ ]
+ 
diff --git a/nixpkgs/pkgs/data/fonts/lxgw-neoxihei/default.nix b/nixpkgs/pkgs/data/fonts/lxgw-neoxihei/default.nix
index 34450f55cbdf..3832ba8d510b 100644
--- a/nixpkgs/pkgs/data/fonts/lxgw-neoxihei/default.nix
+++ b/nixpkgs/pkgs/data/fonts/lxgw-neoxihei/default.nix
@@ -5,11 +5,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "lxgw-neoxihei";
-  version = "1.120";
+  version = "1.120.1";
 
   src = fetchurl {
     url = "https://github.com/lxgw/LxgwNeoXiHei/releases/download/v${version}/LXGWNeoXiHei.ttf";
-    hash = "sha256-rQ+gbmUYr+iWm5WCUSqb+8+aMD5JZUsbPXZ0Nio2cl8=";
+    hash = "sha256-shzJ5y2mjvodtSHct9gm+09CludxUpR38qi9zvewjaQ=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/data/fonts/openmoji/build.patch b/nixpkgs/pkgs/data/fonts/openmoji/build.patch
new file mode 100644
index 000000000000..ddc9b554caf0
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/openmoji/build.patch
@@ -0,0 +1,77 @@
+diff --git a/helpers/generate-fonts-runner.sh b/helpers/generate-fonts-runner.sh
+index 21267e50f..873b5c664 100755
+--- a/helpers/generate-fonts-runner.sh
++++ b/helpers/generate-fonts-runner.sh
+@@ -25,10 +25,10 @@ mkdir -p "$build_dir"
+ 
+ # Change these to enable/disable formats
+ # Remember to update font/README.md accordingly
+-methods_black=(glyf)
+-methods_color=(cbdt glyf_colr_0 glyf_colr_1 sbix picosvgz untouchedsvgz)
++#methods_black=(glyf)
++#methods_color=(cbdt glyf_colr_0 glyf_colr_1 sbix picosvgz untouchedsvgz)
+ 
+-saturations=(black color)
++#saturations=(black color)
+ for saturation in "${saturations[@]}"; do
+     case "$saturation" in
+     black)
+@@ -43,6 +43,7 @@ for saturation in "${saturations[@]}"; do
+     mkdir -p "$build_dir/$saturation"
+ 
+     for method in "${methods[@]}"; do
++        if [ -z "$method" ]; then continue; fi
+         cat >"$build_dir/$saturation/OpenMoji-$saturation-$method.toml" <<-EOF
+ output_file = "$build_dir/$saturation/OpenMoji-$saturation-$method.ttf"
+ color_format = "$method"
+@@ -55,10 +56,7 @@ default = 400
+ 
+ [master.regular]
+ style_name = "Regular"
+-
+-# To quickly check build reverse comments below
+-srcs = ["/mnt/$saturation/svg/*.svg"]
+-# srcs = ["/mnt/$saturation/svg/1F923.svg", "/mnt/$saturation/svg/1F1E9-1F1F0.svg"]
++srcs = ["$(pwd)/$saturation/svg/*.svg"]
+ 
+ [master.regular.position]
+ wght = 400
+@@ -71,7 +69,7 @@ EOF
+     for method in "${methods[@]}"; do
+         # Generate XML for font
+         sed "s/Color/${saturation^}/;" \
+-            /mnt/data/OpenMoji-Color.ttx \
++            data/OpenMoji-Color.ttx \
+             > "$build_dir/$saturation/OpenMoji-$saturation-$method.ttx"
+ 
+         # Add version to XML
+@@ -89,25 +87,21 @@ EOF
+ 
+         # Compress with WOFF2
+         woff2_compress "$build_dir/fonts/OpenMoji-$saturation-$method/OpenMoji-$saturation-$method.ttf"
+-
+-        # Generate font demo
+-        /mnt/helpers/generate-font-demo.js "OpenMoji-$saturation-$method.woff2" "$build_dir/fonts/OpenMoji-$saturation-$method"
+     done
+ done
+ 
+-for colr_version in 0 1; do
++for colr_version in "${maximumColorVersions[@]}"; do
++    if [ -z "$colr_version" ]; then continue; fi
+     # Make TTF with both COLR and SVG font data in it
+     mkdir -p "$build_dir/fonts/OpenMoji-color-colr${colr_version}_svg"
+ 
+-    maximum_color \
++    maximum_color --build_dir="$build_dir/color" \
+         "$build_dir/fonts/OpenMoji-color-glyf_colr_${colr_version}/OpenMoji-color-glyf_colr_${colr_version}.ttf"\
+         --output_file "$build_dir/fonts/OpenMoji-color-colr${colr_version}_svg/OpenMoji-color-colr${colr_version}_svg.ttf"
+ 
+     woff2_compress "$build_dir/fonts/OpenMoji-color-colr${colr_version}_svg/OpenMoji-color-colr${colr_version}_svg.ttf"
+ 
+-    /mnt/helpers/generate-font-demo.js\
+-        "OpenMoji-color-colr${colr_version}_svg.woff2"\
+-        "$build_dir/fonts/OpenMoji-color-colr${colr_version}_svg"
++    rm -rf "$build_dir/fonts/OpenMoji-color-glyf_colr_${colr_version}"
+ done
+ 
+ echo "Done building fonts!"
diff --git a/nixpkgs/pkgs/data/fonts/openmoji/default.nix b/nixpkgs/pkgs/data/fonts/openmoji/default.nix
index fd0d8882059c..3f19bbe91f33 100644
--- a/nixpkgs/pkgs/data/fonts/openmoji/default.nix
+++ b/nixpkgs/pkgs/data/fonts/openmoji/default.nix
@@ -1,93 +1,85 @@
 { lib
-, stdenv
+, stdenvNoCC
 , fetchFromGitHub
-, fetchpatch
-, scfbuild
-, fontforge
-, node-glob
-, libuninameslist
-, nodejs
-, nodePackages
+, nanoemoji
 , python3Packages
-, variant ? "color" # "color" or "black"
+, woff2
+, xmlstarlet
+  # available color formats: ["cbdt" "glyf_colr_0" "glyf_colr_1" "sbix" "picosvgz" "untouchedsvgz"]
+  # available black formats: ["glyf"]
+, fontFormats ? [ "glyf" "cbdt" "glyf_colr_0" "glyf_colr_1" ]
+  # when at least one of the glyf_colr_0/1 formats is specified, whether to build maximum color fonts
+  # "none" to not build any, "svg" to build colr+svg, "bitmap" to build cbdt+colr+svg fonts
+, buildMaximumColorFonts ? "bitmap"
 }:
-
 let
-  filename = builtins.replaceStrings
-    [ "color"              "black"              ]
-    [ "OpenMoji-Color.ttf" "OpenMoji-Black.ttf" ]
-    variant;
+  # all available methods
+  methods = {
+    black = [ "glyf" ];
+    color = [ "cbdt" "glyf_colr_0" "glyf_colr_1" "sbix" "picosvgz" "untouchedsvgz" ];
+  };
+in
 
-  # With newer fontforge the build hangs, see
-  # https://github.com/NixOS/nixpkgs/issues/167869
-  # Patches etc taken from
-  # https://github.com/NixOS/nixpkgs/commit/69da642a5a9bb433138ba1b13c8d56fb5bb6ec05
-  fontforge-20201107 = fontforge.overrideAttrs (old: rec {
-    version = "20201107";
-    src = fetchFromGitHub {
-      owner = "fontforge";
-      repo = "fontforge";
-      rev = version;
-      sha256 = "sha256-Rl/5lbXaPgIndANaD0IakaDus6T53FjiBb45FIuGrvc=";
-    };
-    patches = [
-      (fetchpatch {
-        url = "https://salsa.debian.org/fonts-team/fontforge/raw/76bffe6ccf8ab20a0c81476a80a87ad245e2fd1c/debian/patches/0001-add-extra-cmake-install-rules.patch";
-        sha256 = "u3D9od2xLECNEHhZ+8dkuv9818tPkdP6y/Tvd9CADJg=";
-      })
-      (fetchpatch {
-        url = "https://github.com/fontforge/fontforge/commit/69e263b2aff29ad22f97f13935cfa97a1eabf207.patch";
-        sha256 = "06yyf90605aq6ppfiz83mqkdmnaq5418axp9jgsjyjq78b00xb29";
-      })
-    ];
-    buildInputs = old.buildInputs ++ [ libuninameslist ];
-  });
-  scfbuild-with-fontforge-20201107 = scfbuild.override (old: {
-    fontforge = fontforge-20201107;
-  });
+assert lib.asserts.assertEachOneOf "fontFormats" fontFormats (methods.black ++ methods.color);
+assert lib.asserts.assertOneOf "buildMaximumColorFonts" buildMaximumColorFonts [ "none" "bitmap" "svg" ];
 
-in stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "openmoji";
-  version = "14.0.0";
+  version = "15.0.0";
 
   src = fetchFromGitHub {
     owner = "hfg-gmuend";
     repo = pname;
     rev = version;
-    sha256 = "sha256-XnSRSlWXOMeSaO6dKaOloRg3+sWS4BSaro4bPqOyKmE=";
+    hash = "sha256-659ONkHU45Z2789ay0yLero9j5nFWhslpJad++4oNN8=";
   };
 
+  patches = [
+    # fix paths and variables for nix build and skip generating font demos
+    ./build.patch
+  ];
+
   nativeBuildInputs = [
-    scfbuild-with-fontforge-20201107
-    nodejs
-    node-glob
-    nodePackages.lodash
+    nanoemoji
+    python3Packages.fonttools
+    woff2
+    xmlstarlet
   ];
 
-  postPatch = ''
-    # this is API change in glob >9
-    substituteInPlace helpers/generate-font-glyphs.js \
-      --replace "require('glob').sync" "require('glob').globSync"
+  methods_black = builtins.filter (m: builtins.elem m fontFormats) methods.black;
+  methods_color = builtins.filter (m: builtins.elem m fontFormats) methods.color;
+  saturations = lib.optional (methods_black != [ ]) "black" ++ lib.optional (methods_color != [ ]) "color";
+  maximumColorVersions = lib.optionals (buildMaximumColorFonts != "none") (
+    lib.optional (builtins.elem "glyf_colr_0" fontFormats) "0"
+    ++ lib.optional (builtins.elem "glyf_colr_1" fontFormats) "1"
+  );
+
+  postPatch = lib.optionalString (buildMaximumColorFonts == "bitmap") ''
+    substituteInPlace helpers/generate-fonts-runner.sh \
+      --replace 'maximum_color' 'maximum_color --bitmaps'
   '';
 
   buildPhase = ''
     runHook preBuild
 
-    node helpers/generate-font-glyphs.js
-
-    cd font
-    scfbuild -c scfbuild-${variant}.yml
+    bash helpers/generate-fonts-runner.sh "$(pwd)/build" "${version}"
 
     runHook postBuild
   '';
 
   installPhase = ''
-    install -Dm644 ${filename} $out/share/fonts/truetype/${filename}
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype $out/share/fonts/woff2
+    cp build/fonts/*/*.ttf $out/share/fonts/truetype/
+    cp build/fonts/*/*.woff2 $out/share/fonts/woff2/
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     license = licenses.cc-by-sa-40;
-    maintainers = with maintainers; [ fgaz ];
+    maintainers = with maintainers; [ _999eagle fgaz ];
     platforms = platforms.all;
     homepage = "https://openmoji.org/";
     downloadPage = "https://github.com/hfg-gmuend/openmoji/releases";
diff --git a/nixpkgs/pkgs/data/fonts/sketchybar-app-font/default.nix b/nixpkgs/pkgs/data/fonts/sketchybar-app-font/default.nix
index a172f2da4b4b..cd9af9a9c5f4 100644
--- a/nixpkgs/pkgs/data/fonts/sketchybar-app-font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/sketchybar-app-font/default.nix
@@ -5,11 +5,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "sketchybar-app-font";
-  version = "2.0.5";
+  version = "2.0.12";
 
   src = fetchurl {
     url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/sketchybar-app-font.ttf";
-    hash = "sha256-nfJVICpaw1Q1jChc3feY39vjtS/fLJ3FKVGqOKhyzwA=";
+    hash = "sha256-qACf4eWDeubBmJV0ApWidp2ESLREi5qiLliWCXoMBKY=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/data/fonts/sudo/default.nix b/nixpkgs/pkgs/data/fonts/sudo/default.nix
index ff8f0ab312ce..5678855ab80a 100644
--- a/nixpkgs/pkgs/data/fonts/sudo/default.nix
+++ b/nixpkgs/pkgs/data/fonts/sudo/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "sudo-font";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchzip {
     url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
-    hash = "sha256-acHeaA8WIkGNrjErbLCkkUpkIZvLbgaV+pvr56ku5tw=";
+    hash = "sha256-8ucMeKbnrYtk2/ZeYxzp8MA4Ss952/opD8GpB01Ze/I=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/data/fonts/unifont/default.nix b/nixpkgs/pkgs/data/fonts/unifont/default.nix
index 7f2e9a1b158b..0868abcdd58c 100644
--- a/nixpkgs/pkgs/data/fonts/unifont/default.nix
+++ b/nixpkgs/pkgs/data/fonts/unifont/default.nix
@@ -4,16 +4,16 @@
 
 stdenv.mkDerivation rec {
   pname = "unifont";
-  version = "15.1.04";
+  version = "15.1.05";
 
   otf = fetchurl {
     url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.otf";
-    hash = "sha256-J8g8ojXDq5nV013zXXi1rEAYQhpCh7G06mV7IpmZbTg=";
+    hash = "sha256-e2K1CsuxhmidwwxEbOQ2e4fXlInpkHuDJV+fvg3PueE=";
   };
 
   pcf = fetchurl {
     url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.pcf.gz";
-    hash = "sha256-XHKP8xx+GvhFYBW03Sambpd2gclKvQUz1JAjIlb59OI=";
+    hash = "sha256-zpc9Z4XXvma/tXRYOvAAQIpjyYS+1XPiaLZF4xYPTbw=";
   };
 
   nativeBuildInputs = [ libfaketime xorg.fonttosfnt xorg.mkfontscale ];
diff --git a/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
index 69eef5754d62..8433d58795be 100644
--- a/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-xfce-icon-theme";
-  version = "0.18";
+  version = "0.19";
 
   src = fetchFromGitHub {
     owner = "shimmerproject";
     repo = "elementary-xfce";
     rev = "v${version}";
-    sha256 = "sha256-OgQtqBrYKDgU4mhXLFO8YwiPv2lKqGSdZnfKCd9ri4g=";
+    sha256 = "sha256-exrPxJ6S3xV1EJ61KW1MqCcOSzPY9zOycuSh8I9Gdns=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
index 328937488088..5422eaac8073 100644
--- a/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "numix-icon-theme-circle";
-  version = "24.02.05";
+  version = "24.03.12";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "sha256-XootwpvdYrg3tBsMKssTuTiLPPMaFb7N401XeT889EM=";
+    sha256 = "sha256-WWgppmMIXa7AtMu8Tu3TOt4JvsAkpufZva1reE+UaWg=";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
index 477d7acef72a..3294508a1c66 100644
--- a/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "numix-icon-theme-square";
-  version = "24.02.05";
+  version = "24.03.12";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "sha256-IYfyoDoBQOFLGRS6v487GLAdUSJUuscLIUwi65ilu90=";
+    sha256 = "sha256-dMPbu23e8ZCDZCYpbfoRwbtDMcy/+IImjGV17Sb5DBk=";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/nixpkgs/pkgs/data/misc/clash-geoip/default.nix b/nixpkgs/pkgs/data/misc/clash-geoip/default.nix
index 1ad3226080a4..0ec9663cbac3 100644
--- a/nixpkgs/pkgs/data/misc/clash-geoip/default.nix
+++ b/nixpkgs/pkgs/data/misc/clash-geoip/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "clash-geoip";
-  version = "20240212";
+  version = "20240312";
 
   src = fetchurl {
     url = "https://github.com/Dreamacro/maxmind-geoip/releases/download/${version}/Country.mmdb";
-    sha256 = "sha256-cNVEWdIRo2Z2FluZIR0O5o3Aso4tDcVyHAG3DkNmpSQ=";
+    sha256 = "sha256-h6nrlzFBRrvL+hUOnpWi/aixKDOlRoTV4zQYIHGslIY=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix b/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix
deleted file mode 100644
index caf470c51152..000000000000
--- a/nixpkgs/pkgs/data/misc/conway_polynomials/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ lib, stdenv
-, fetchurl
-, python3
-}:
-
-stdenv.mkDerivation rec {
-  pname = "conway_polynomials";
-  version = "0.5";
-
-  src = fetchurl {
-    url = "mirror://sageupstream/conway_polynomials/conway_polynomials-${version}.tar.bz2";
-    sha256 = "05zb1ly9x2bbscqv0jgc45g48xx77mfs7qdbqhn4ihmihn57iwnq";
-  };
-
-  # Script that creates the "database" (nested python array) and pickles it
-  spkg-install = fetchurl {
-    url = "https://raw.githubusercontent.com/sagemath/sage/9.2/build/pkgs/conway_polynomials/spkg-install.py";
-    sha256 = "1bwnqasnyv793hxg29viing4dnliz29grkhldsirq19d509yk1fs";
-  };
-
-  installPhase = ''
-    # directory layout as spkg-install.py expects
-    dir="$PWD"
-    cd ..
-    ln -s "$dir" "src"
-
-    # environment spkg-install.py expects
-    mkdir -p "$out/share"
-    export SAGE_SHARE="$out/share"
-    export PYTHONPATH=$PWD
-
-    ${python3.interpreter} ${spkg-install}
-  '';
-
-  meta = with lib; {
-    description = "Contains a small database of Conway polynomials";
-    license = licenses.gpl2;
-    platforms = platforms.all;
-    maintainers = teams.sage.members;
-  };
-}
diff --git a/nixpkgs/pkgs/data/misc/hackage/pin.json b/nixpkgs/pkgs/data/misc/hackage/pin.json
index e9b32370af55..b82a5ca0e378 100644
--- a/nixpkgs/pkgs/data/misc/hackage/pin.json
+++ b/nixpkgs/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
 {
-  "commit": "d77837f979c4b15fe0eb25cdf8a0463773434c9d",
-  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/d77837f979c4b15fe0eb25cdf8a0463773434c9d.tar.gz",
-  "sha256": "01ihv1nwp0qqhwll5icl19ij5sb1nvhpnwgvwpcr319rn3b704km",
-  "msg": "Update from Hackage at 2023-12-17T16:07:47Z"
+  "commit": "c947711834678a5466dcca9367676bc61ed0a991",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/c947711834678a5466dcca9367676bc61ed0a991.tar.gz",
+  "sha256": "1slm1b6s8hk7x5rlr9fmsipkj8g6jsbvf5lfr2zzz8msfr5z8j8c",
+  "msg": "Update from Hackage at 2024-02-12T23:23:22Z"
 }
diff --git a/nixpkgs/pkgs/data/misc/papirus-folders/default.nix b/nixpkgs/pkgs/data/misc/papirus-folders/default.nix
index a44a382c4b40..b701742a9f46 100644
--- a/nixpkgs/pkgs/data/misc/papirus-folders/default.nix
+++ b/nixpkgs/pkgs/data/misc/papirus-folders/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A tool to change papirus icon theme color";
+    mainProgram = "papirus-folders";
     longDescription = ''
       papirus-folders is a bash script that allows changing the color of
       folders in Papirus icon theme and its forks (which based on version 20171007 and newer).
diff --git a/nixpkgs/pkgs/data/misc/sing-geosite/default.nix b/nixpkgs/pkgs/data/misc/sing-geosite/default.nix
index 900e5ef86c8f..ac521f3ec280 100644
--- a/nixpkgs/pkgs/data/misc/sing-geosite/default.nix
+++ b/nixpkgs/pkgs/data/misc/sing-geosite/default.nix
@@ -1,5 +1,5 @@
 { lib
-, buildGo120Module
+, buildGoModule
 , fetchFromGitHub
 , substituteAll
 , v2ray-domain-list-community
@@ -11,18 +11,18 @@ let
     geosite_data = "${v2ray-domain-list-community}/share/v2ray/geosite.dat";
   };
 in
-buildGo120Module {
+buildGoModule {
   pname = "sing-geosite";
   inherit (v2ray-domain-list-community) version;
 
   src = fetchFromGitHub {
     owner = "SagerNet";
     repo = "sing-geosite";
-    rev = "4a32d56c1705f77668beb5828df0b0a051efdeb9";
-    hash = "sha256-P/EBcwJI2G9327BNi84R+q6BABx9DEKpN6ETTp8Q4NU=";
+    rev = "bbd9f11bb9245463bf9d5614b74014fe5803b989";
+    hash = "sha256-UQChYKgN5JZk+KZ2c5Ffh/rQi6/TVeFQkbH6mpLx4x8=";
   };
 
-  vendorHash = "sha256-uQOmUXT2wd40DwwTCMnFFKd47eu+BPBDjiCGtUNFoKY=";
+  vendorHash = "sha256-C6idJDUp6AFe50tQ+4mmZsxuOKH8JSeC1p7XVRZ224E=";
 
   patchPhase = ''
     sed -i -e '/func main()/,/^}/d' -e '/"io"/a "io/ioutil"' main.go
diff --git a/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix b/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix
index 1533cd089228..5d6895da7125 100644
--- a/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix
+++ b/nixpkgs/pkgs/data/misc/v2ray-domain-list-community/default.nix
@@ -3,12 +3,12 @@
 let
   generator = pkgsBuildBuild.buildGoModule rec {
     pname = "v2ray-domain-list-community";
-    version = "20240221053250";
+    version = "20240310062737";
     src = fetchFromGitHub {
       owner = "v2fly";
       repo = "domain-list-community";
       rev = version;
-      hash = "sha256-oPffStUx2CD4gfSNIYqCzLLj+IAhm3aGQknRsrauD+k=";
+      hash = "sha256-KJSa5qDNGokNin0M2BppRks1qyMg19o+EOxu5OsCeOg=";
     };
     vendorHash = "sha256-azvMUi8eLNoNofRa2X4SKTTiMd6aOyO6H/rOiKjkpIY=";
     meta = with lib; {
diff --git a/nixpkgs/pkgs/data/misc/v2ray-geoip/default.nix b/nixpkgs/pkgs/data/misc/v2ray-geoip/default.nix
index fb9064a437d1..94631881fb07 100644
--- a/nixpkgs/pkgs/data/misc/v2ray-geoip/default.nix
+++ b/nixpkgs/pkgs/data/misc/v2ray-geoip/default.nix
@@ -1,5 +1,6 @@
 { lib
 , stdenvNoCC
+, fetchpatch
 , fetchFromGitHub
 , pkgsBuildBuild
 , jq
@@ -8,18 +9,18 @@
 }:
 
 let
-  generator = pkgsBuildBuild.buildGo120Module {
+  generator = pkgsBuildBuild.buildGoModule rec {
     pname = "v2ray-geoip";
-    version = "unstable-2023-10-11";
+    version = "202403140037";
 
     src = fetchFromGitHub {
       owner = "v2fly";
       repo = "geoip";
-      rev = "3182dda7b38c900f28505b91a44b09ec486e6f36";
-      hash = "sha256-KSRgof78jScwnUeMtryj34J0mBsM/x9hFE4H9WtZUuM=";
+      rev = version;
+      hash = "sha256-nqobjgeDvD5RYvCVVd14XC/tb/+SVfvdQUFZ3gfeDrI=";
     };
 
-    vendorHash = "sha256-rlRazevKnWy/Ig143s8TZgV3JlQMlHID9rnncLYhQDc=";
+    vendorHash = "sha256-cuKcrYAzjIt6Z4wYg5R6JeL413NDwTub2fZndXEKdTo=";
 
     meta = with lib; {
       description = "GeoIP for V2Ray";
diff --git a/nixpkgs/pkgs/data/misc/xorg-rgb/default.nix b/nixpkgs/pkgs/data/misc/xorg-rgb/default.nix
index 646f4ae491b0..d9d78b153649 100644
--- a/nixpkgs/pkgs/data/misc/xorg-rgb/default.nix
+++ b/nixpkgs/pkgs/data/misc/xorg-rgb/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "X11 colorname to RGB mapping database";
+    mainProgram = "showrgb";
     license = licenses.mit;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/data/themes/adw-gtk3/default.nix b/nixpkgs/pkgs/data/themes/adw-gtk3/default.nix
index db4fa114110f..b00e71a5f16c 100644
--- a/nixpkgs/pkgs/data/themes/adw-gtk3/default.nix
+++ b/nixpkgs/pkgs/data/themes/adw-gtk3/default.nix
@@ -9,13 +9,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "adw-gtk3";
-  version = "5.2";
+  version = "5.3";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-S6Yo67DTyRzS9uz/6g87SRmfPIBmAKfy4c23M5aENNg=";
+    sha256 = "sha256-DpJLX9PJX1Q8dDOx7YOXQzgNECsKp5uGiCVTX6iSlbI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/themes/alacritty-theme/default.nix b/nixpkgs/pkgs/data/themes/alacritty-theme/default.nix
index d5fbc03b6301..b24f27f326dc 100644
--- a/nixpkgs/pkgs/data/themes/alacritty-theme/default.nix
+++ b/nixpkgs/pkgs/data/themes/alacritty-theme/default.nix
@@ -6,13 +6,13 @@
 
 stdenvNoCC.mkDerivation (self: {
   name = "alacritty-theme";
-  version = "unstable-2024-02-28";
+  version = "unstable-2024-03-06";
 
   src = fetchFromGitHub {
     owner = "alacritty";
     repo = "alacritty-theme";
-    rev = "4aefb7c079721474078b28bbf9f582b592749ca6";
-    hash = "sha256-+35S6eQkxLBuS/fDKD5bglQDIuz2xeEc5KSaK6k7IjI=";
+    rev = "cb786242b6f5e00a57e2f541e7bf1115f3950650";
+    hash = "sha256-fZJ0F4zJy6HOwWtZGm5yN4WfeFNJnW/UJhoQSZ0Bpxk=";
   };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/data/themes/andromeda-gtk-theme/default.nix b/nixpkgs/pkgs/data/themes/andromeda-gtk-theme/default.nix
new file mode 100644
index 000000000000..9372d611c57f
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/andromeda-gtk-theme/default.nix
@@ -0,0 +1,61 @@
+{ lib, stdenvNoCC, fetchFromGitHub, gtk-engine-murrine }:
+
+stdenvNoCC.mkDerivation {
+  pname = "andromeda-gtk-theme";
+  version = "0-unstable-2024-03-04";
+
+  srcs = [
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = "Andromeda-gtk";
+      rev = "250751a546dd0fa2e67eef86d957fbf993b61dfe";
+      hash = "sha256-exr9j/jW2P9cBhKUPQy3AtK5Vgav5vOyWInXUyVhBk0=";
+      name = "Andromeda";
+    })
+
+    (fetchFromGitHub {
+      owner = "EliverLara";
+      repo = "Andromeda-gtk";
+      rev = "11a6194d19cb846447db048455a5e782ec830ae1";
+      hash = "sha256-Yy3mih0nyA+ahLqj2D99EKqtmWYJRsvQMkmlLfUPcqQ=";
+      name = "Andromeda-standard-buttons";
+    })
+  ];
+
+  sourceRoot = ".";
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/themes
+    cp -a Andromeda* $out/share/themes
+
+    # remove uneeded files, which are not distributed in https://www.gnome-look.org/p/2039961/
+    rm -rf $out/share/themes/*/.gitignore
+    rm -rf $out/share/themes/*/Art
+    rm -rf $out/share/themes/*/LICENSE
+    rm -rf $out/share/themes/*/README.md
+    rm -rf $out/share/themes/*/{package.json,package-lock.json,Gulpfile.js}
+    rm -rf $out/share/themes/*/src
+    rm -rf $out/share/themes/*/cinnamon/*.scss
+    rm -rf $out/share/themes/*/gnome-shell/{earlier-versions,extensions,*.scss}
+    rm -rf $out/share/themes/*/gtk-2.0/{assets.svg,assets.txt,links.fish,render-assets.sh}
+    rm -rf $out/share/themes/*/gtk-3.0/{apps,widgets,*.scss}
+    rm -rf $out/share/themes/*/gtk-4.0/{apps,widgets,*.scss}
+    rm -rf $out/share/themes/*/xfwm4/{assets,render_assets.fish}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "An elegant dark theme for gnome, mate, budgie, cinnamon, xfce";
+    homepage = "https://github.com/EliverLara/Andromeda-gtk";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ jakedevs ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/catppuccin-kde/default.nix b/nixpkgs/pkgs/data/themes/catppuccin-kde/default.nix
index 8dac978a64dc..b4ce9ed5d39f 100644
--- a/nixpkgs/pkgs/data/themes/catppuccin-kde/default.nix
+++ b/nixpkgs/pkgs/data/themes/catppuccin-kde/default.nix
@@ -21,19 +21,19 @@ in
 
 stdenvNoCC.mkDerivation rec {
   pname = "kde";
-  version = "0.2.4";
+  version = "0.2.6";
 
   src = fetchFromGitHub {
     owner = "catppuccin";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-w77lzeSisx/PPxctMJKIdRJenq0s8HwR8gLmgNh4SH8=";
+    hash = "sha256-pfG0L4eSXLYLZM8Mhla4yalpEro74S9kc0sOmQtnG3w=";
   };
 
   patches = [
     (fetchpatch {
-      url = "https://github.com/michaelBelsanti/catppuccin-kde/commit/81a8edb3c24bd6af896c92b5051e09af97d69c51.patch";
-      hash = "sha256-cb4/dQ52T+H8UqXEgExblmnMfxwO0Y1BrjMCay/EAkI=";
+      url = "https://github.com/GiggleSquid/catppuccin-kde/commit/f0291c17d2e4711b0d0aac00e3dbb94ee89b4a82.patch";
+      hash = "sha256-iD+mEX2LRFmrCwLr3VAs6kzcTuZ231TKDn+U188iOss=";
     })
   ];
 
@@ -57,6 +57,6 @@ stdenvNoCC.mkDerivation rec {
     description = "Soothing pastel theme for KDE";
     homepage = "https://github.com/catppuccin/kde";
     license = licenses.mit;
-    maintainers = with maintainers; [ michaelBelsanti ];
+    maintainers = with maintainers; [ michaelBelsanti gigglesquid ];
   };
 }
diff --git a/nixpkgs/pkgs/data/themes/catppuccin/default.nix b/nixpkgs/pkgs/data/themes/catppuccin/default.nix
index 25794c9e67d7..accc06f48c2f 100644
--- a/nixpkgs/pkgs/data/themes/catppuccin/default.nix
+++ b/nixpkgs/pkgs/data/themes/catppuccin/default.nix
@@ -1,5 +1,5 @@
 let
-  validThemes = [ "bat" "bottom" "btop" "grub" "hyprland" "k9s" "kvantum" "lazygit" "plymouth" "qt5ct" "refind" "rofi" "starship" "waybar" ];
+  validThemes = [ "bat" "bottom" "btop" "grub" "hyprland" "k9s" "kvantum" "lazygit" "plymouth" "qt5ct" "refind" "rofi" "starship" "thunderbird" "waybar" ];
 in
 { fetchFromGitHub
 , lib
@@ -20,8 +20,8 @@ let
       name = "bat";
       owner = "catppuccin";
       repo = "bat";
-      rev = "ba4d16880d63e656acced2b7d4e034e4a93f74b1";
-      hash = "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw=";
+      rev = "2bafe4454d8db28491e9087ff3a1382c336e7d27";
+      hash = "sha256-yHt3oIjUnljARaihalcWSNldtaJfVDfmfiecYfbzGs0=";
     };
 
     bottom = fetchFromGitHub {
@@ -60,8 +60,8 @@ let
       name = "k9s";
       owner = "catppuccin";
       repo = "k9s";
-      rev = "516f44dd1a6680357cb30d96f7e656b653aa5059";
-      hash = "sha256-PtBJRBNbLkj7D2ko7ebpEjbfK9Ywjs7zbE+Y8FQVEfA=";
+      rev = "590a762110ad4b6ceff274265f2fe174c576ce96";
+      hash = "sha256-EBDciL3F6xVFXvND+5duT+OiVDWKkFMWbOOSruQ0lus=";
     };
 
     kvantum = fetchFromGitHub {
@@ -76,16 +76,16 @@ let
       name = "lazygit";
       owner = "catppuccin";
       repo = "lazygit";
-      rev = "0543c28e8af1a935f8c512ad9451facbcc17d8a8";
-      hash = "sha256-OVihY5E+elPKag2H4RyWiSv+MdIqHtfGNM3/1u2ik6U=";
+      rev = "v2.0.0";
+      hash = "sha256-gM0HplHhcpvtpmIVdlX/p59h0v+ihKEidS1imqPYlBg=";
     };
 
     plymouth = fetchFromGitHub {
       name = "plymouth";
       owner = "catppuccin";
       repo = "plymouth";
-      rev = "d4105cf336599653783c34c4a2d6ca8c93f9281c";
-      hash = "sha256-quBSH8hx3gD7y1JNWAKQdTk3CmO4t1kVo4cOGbeWlNE=";
+      rev = "67759fbe15eb9490d096ef8014d9f92fc5748fe7";
+      hash = "sha256-IzoyVOi44Uay7DTfzR9RdRLSjORsdBM4pPrgeXk5YMI=";
     };
 
     qt5ct = fetchFromGitHub {
@@ -120,6 +120,14 @@ let
       hash = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0=";
     };
 
+    thunderbird = fetchFromGitHub {
+      name = "thunderbird";
+      owner = "catppuccin";
+      repo = "thunderbird";
+      rev = "d61882ad9fd35909a75da6bb95fca38db552135c";
+      hash = "sha256-wn8//8lHScbbB1nEiDY8DphnLUMKZBFMc1GPaTRjTOY=";
+    };
+
     waybar = fetchFromGitHub {
       name = "waybar";
       owner = "catppuccin";
@@ -135,7 +143,7 @@ lib.checkListOfEnum "${pname}: themes" validThemes themeList
 
 stdenvNoCC.mkDerivation {
   inherit pname;
-  version = "unstable-2023-10-09";
+  version = "unstable-2024-03-12";
 
   srcs = selectedSources;
 
@@ -154,7 +162,7 @@ stdenvNoCC.mkDerivation {
 
   '' + lib.optionalString (lib.elem "bat" themeList) ''
     mkdir -p $out/bat
-    cp "${sources.bat}/Catppuccin-${variant}.tmTheme" "$out/bat/"
+    cp "${sources.bat}/themes/Catppuccin "$capitalizedVariant".tmTheme" "$out/bat/"
 
   '' + lib.optionalString (lib.elem "btop" themeList) ''
     mkdir -p $out/btop
@@ -174,7 +182,8 @@ stdenvNoCC.mkDerivation {
 
   '' + lib.optionalString (lib.elem "k9s" themeList) ''
     mkdir -p $out/k9s
-    cp "${sources.k9s}/dist/${variant}.yml" "$out/k9s/"
+    cp "${sources.k9s}/dist/catppuccin-${variant}.yaml" "$out/k9s/"
+    cp "${sources.k9s}/dist/catppuccin-${variant}-transparent.yaml" "$out/k9s/"
 
   '' + lib.optionalString (lib.elem "kvantum" themeList) ''
     mkdir -p $out/share/Kvantum
@@ -182,8 +191,8 @@ stdenvNoCC.mkDerivation {
 
   '' + lib.optionalString (lib.elem "lazygit" themeList) ''
     mkdir -p $out/lazygit/{themes,themes-mergable}
-    cp "${sources.lazygit}/themes/${variant}/${variant}-${accent}.yml" "$out/lazygit/themes/"
-    cp "${sources.lazygit}/themes-mergable/${variant}/${variant}-${accent}.yml" "$out/lazygit/themes-mergable/"
+    cp "${sources.lazygit}/themes/${variant}/${accent}.yml" "$out/lazygit/themes/"
+    cp "${sources.lazygit}/themes-mergable/${variant}/${accent}.yml" "$out/lazygit/themes-mergable/"
 
   '' + lib.optionalString (lib.elem "plymouth" themeList) ''
     mkdir -p $out/share/plymouth/themes/catppuccin-${variant}
@@ -207,6 +216,10 @@ stdenvNoCC.mkDerivation {
     mkdir -p $out/starship
     cp ${sources.starship}/palettes/${variant}.toml $out/starship/
 
+  '' + lib.optionalString (lib.elem "thunderbird" themeList) ''
+    mkdir -p $out/thunderbird
+    cp ${sources.thunderbird}/themes/${variant}/${variant}-${accent}.xpi $out/thunderbird/
+
   '' + lib.optionalString (lib.elem "waybar" themeList) ''
     mkdir -p $out/waybar
     cp ${sources.waybar}/${variant}.css $out/waybar/
diff --git a/nixpkgs/pkgs/data/themes/dracula-theme/default.nix b/nixpkgs/pkgs/data/themes/dracula-theme/default.nix
index d7e51b17dbc2..cfc3689d7cc3 100644
--- a/nixpkgs/pkgs/data/themes/dracula-theme/default.nix
+++ b/nixpkgs/pkgs/data/themes/dracula-theme/default.nix
@@ -2,7 +2,7 @@
 
 let
   themeName = "Dracula";
-  version = "unstable-2024-03-02";
+  version = "unstable-2024-03-13";
 in
 stdenvNoCC.mkDerivation {
   pname = "dracula-theme";
@@ -11,8 +11,8 @@ stdenvNoCC.mkDerivation {
   src = fetchFromGitHub {
     owner = "dracula";
     repo = "gtk";
-    rev = "9eb561508e481d77f2d39fbb3a6b2949e990aa4f";
-    hash = "sha256-jsi6nMblqKDPIF10hIqubuOiaYDO+SuHGfb5yncRRHE=";
+    rev = "573f88083ae759f480860552f66e9951077bc428";
+    hash = "sha256-BQPlKcsfhpVTtVrwS9yVpIkujF6vM/ToIDmy9X60Mhs=";
   };
 
   propagatedUserEnvPkgs = [
diff --git a/nixpkgs/pkgs/data/themes/lightly-boehs/default.nix b/nixpkgs/pkgs/data/themes/lightly-boehs/default.nix
index 10c30a431e7c..c8a1b010fc22 100644
--- a/nixpkgs/pkgs/data/themes/lightly-boehs/default.nix
+++ b/nixpkgs/pkgs/data/themes/lightly-boehs/default.nix
@@ -34,6 +34,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A fork of the Lightly breeze theme style that aims to be visually modern and minimalistic";
+    mainProgram = "lightly-settings5";
     homepage = "https://github.com/boehs/Lightly";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.hikari ];
diff --git a/nixpkgs/pkgs/data/themes/lightly-qt/default.nix b/nixpkgs/pkgs/data/themes/lightly-qt/default.nix
index 7b653d952424..99e7e4eb59ef 100644
--- a/nixpkgs/pkgs/data/themes/lightly-qt/default.nix
+++ b/nixpkgs/pkgs/data/themes/lightly-qt/default.nix
@@ -34,6 +34,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A fork of breeze theme style that aims to be visually modern and minimalistic";
+    mainProgram = "lightly-settings5";
     homepage = "https://github.com/Luwx/Lightly";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.pwoelfel ];
diff --git a/nixpkgs/pkgs/data/themes/where-is-my-sddm-theme/default.nix b/nixpkgs/pkgs/data/themes/where-is-my-sddm-theme/default.nix
index 64fc67b30026..5fbf6e130051 100644
--- a/nixpkgs/pkgs/data/themes/where-is-my-sddm-theme/default.nix
+++ b/nixpkgs/pkgs/data/themes/where-is-my-sddm-theme/default.nix
@@ -23,13 +23,13 @@ in
 
 stdenvNoCC.mkDerivation rec {
   pname = "where-is-my-sddm-theme";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "stepanzubkov";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-EK0bB2dRXNtDKFiyf+nMoDq9XK2f3PFwoNbQDZamB3Y=";
+    hash = "sha256-yj056ys+bDJ6snDW/clNyEQlkUPHE4A1pdwT76fItDI=";
   };
 
   propagatedUserEnvPkgs = [ qtgraphicaleffects ];
diff --git a/nixpkgs/pkgs/desktops/budgie/budgie-backgrounds/default.nix b/nixpkgs/pkgs/desktops/budgie/budgie-backgrounds/default.nix
index fc51474af340..230e4fd97e98 100644
--- a/nixpkgs/pkgs/desktops/budgie/budgie-backgrounds/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/budgie-backgrounds/default.nix
@@ -7,14 +7,14 @@
 , ninja
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "budgie-backgrounds";
   version = "3.0";
 
   src = fetchFromGitHub {
     owner = "BuddiesOfBudgie";
     repo = "budgie-backgrounds";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     hash = "sha256-2E6+WDLIAwqiiPMJw+tLDCT3CnpboH4X0cB87zw/hBQ=";
   };
 
@@ -25,11 +25,11 @@ stdenv.mkDerivation rec {
     ninja
   ];
 
-  meta = with lib; {
+  meta = {
     description = "The default background set for the Budgie Desktop";
     homepage = "https://github.com/BuddiesOfBudgie/budgie-backgrounds";
-    platforms = platforms.linux;
-    maintainers = [ maintainers.federicoschonborn ];
-    license = licenses.cc0;
+    platforms = lib.platforms.linux;
+    maintainers = lib.teams.budgie.members;
+    license = lib.licenses.cc0;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/budgie/budgie-control-center/default.nix b/nixpkgs/pkgs/desktops/budgie/budgie-control-center/default.nix
index 1b3994911508..aea55e66256c 100644
--- a/nixpkgs/pkgs/desktops/budgie/budgie-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/budgie-control-center/default.nix
@@ -56,14 +56,14 @@
 , enableSshSocket ? false
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "budgie-control-center";
   version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "BuddiesOfBudgie";
-    repo = pname;
-    rev = "v${version}";
+    repo = "budgie-control-center";
+    rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
     sha256 = "sha256-W5PF7BPdQdg/7xJ4J+fEnuDdpoG/lyhX56RDnX2DXoY=";
   };
@@ -167,12 +167,12 @@ stdenv.mkDerivation rec {
 
   separateDebugInfo = true;
 
-  meta = with lib; {
+  meta = {
     description = "A fork of GNOME Control Center for the Budgie 10 Series";
     homepage = "https://github.com/BuddiesOfBudgie/budgie-control-center";
     mainProgram = "budgie-control-center";
-    platforms = platforms.linux;
-    maintainers = [ maintainers.federicoschonborn ];
-    license = licenses.gpl2Plus;
+    platforms = lib.platforms.linux;
+    maintainers = lib.teams.budgie.members;
+    license = lib.licenses.gpl2Plus;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/budgie/budgie-desktop-view/default.nix b/nixpkgs/pkgs/desktops/budgie/budgie-desktop-view/default.nix
index 2614db09c87f..99d90b8ab888 100644
--- a/nixpkgs/pkgs/desktops/budgie/budgie-desktop-view/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/budgie-desktop-view/default.nix
@@ -44,6 +44,6 @@ stdenv.mkDerivation (finalAttrs: {
     mainProgram = "org.buddiesofbudgie.budgie-desktop-view";
     license = lib.licenses.asl20;
     platforms = lib.platforms.linux;
-    maintainers = with lib.maintainers; [ federicoschonborn ];
+    maintainers = lib.teams.budgie.members;
   };
 })
diff --git a/nixpkgs/pkgs/desktops/budgie/budgie-desktop/default.nix b/nixpkgs/pkgs/desktops/budgie/budgie-desktop/default.nix
index 7dc23cf10f50..71e69a5223e4 100644
--- a/nixpkgs/pkgs/desktops/budgie/budgie-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/budgie-desktop/default.nix
@@ -72,13 +72,14 @@ stdenv.mkDerivation (finalAttrs: {
     gnome.mutter
     gnome.zenity
     graphene
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
     gtk3
     ibus
     libcanberra-gtk3
     libgee
     libGL
     libnotify
-    libpeas
     libpulseaudio
     libuuid
     libwnck
@@ -88,10 +89,12 @@ stdenv.mkDerivation (finalAttrs: {
     sassc
     upower
     xfce.libxfce4windowing
-  ] ++ (with gst_all_1; [
-    gstreamer
-    gst-plugins-base
-  ]);
+  ];
+
+  propagatedBuildInputs = [
+    # budgie-1.0.pc, budgie-raven-plugin-1.0.pc
+    libpeas
+  ];
 
   passthru.providedSessions = [
     "budgie-desktop"
@@ -102,6 +105,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/BuddiesOfBudgie/budgie-desktop";
     license = with lib.licenses; [ gpl2Plus lgpl21Plus cc-by-sa-30 ];
     platforms = lib.platforms.linux;
-    maintainers = with lib.maintainers; [ federicoschonborn ];
+    maintainers = lib.teams.budgie.members;
   };
 })
diff --git a/nixpkgs/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix b/nixpkgs/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix
index bd9e1b6024ef..d853a584a7a4 100644
--- a/nixpkgs/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/budgie-gsettings-overrides/default.nix
@@ -5,7 +5,6 @@
 , glib
 , gsettings-desktop-schemas
 , gnome
-, mate
 , nixos-artwork
 , nixos-background-light ? nixos-artwork.wallpapers.nineish
 , nixos-background-dark ? nixos-artwork.wallpapers.nineish-dark-gray
@@ -54,7 +53,6 @@ let
     [org.buddiesofbudgie.budgie-desktop-view:Budgie]
     show=true
     show-active-mounts=true
-    terminal="${mate.mate-terminal}/bin/mate-terminal"
 
     ${extraGSettingsOverrides}
   '';
diff --git a/nixpkgs/pkgs/desktops/budgie/budgie-screensaver/default.nix b/nixpkgs/pkgs/desktops/budgie/budgie-screensaver/default.nix
index ef7a0f3d762c..68c253a2a1c6 100644
--- a/nixpkgs/pkgs/desktops/budgie/budgie-screensaver/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/budgie-screensaver/default.nix
@@ -17,14 +17,14 @@
 , xorg
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "budgie-screensaver";
   version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "BuddiesOfBudgie";
-    repo = pname;
-    rev = "v${version}";
+    repo = "budgie-screensaver";
+    rev = "v${finalAttrs.version}";
     sha256 = "sha256-N8x9hdbaMDisTbQPJedNO4UMLnCn+Q2hhm4udJZgQlc=";
   };
 
@@ -50,12 +50,12 @@ stdenv.mkDerivation rec {
 
   env.NIX_CFLAGS_COMPILE = "-D_POSIX_C_SOURCE";
 
-  meta = with lib; {
+  meta = {
     description = "A fork of old GNOME Screensaver for purposes of providing an authentication prompt on wake";
     homepage = "https://github.com/BuddiesOfBudgie/budgie-screensaver";
     mainProgram = "budgie-screensaver";
-    platforms = platforms.linux;
-    maintainers = [ maintainers.federicoschonborn ];
-    license = licenses.gpl2Only;
+    platforms = lib.platforms.linux;
+    maintainers = lib.teams.budgie.members;
+    license = lib.licenses.gpl2Only;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/budgie/budgie-session/default.nix b/nixpkgs/pkgs/desktops/budgie/budgie-session/default.nix
index 70b49080cb68..90185f85b1f0 100644
--- a/nixpkgs/pkgs/desktops/budgie/budgie-session/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/budgie-session/default.nix
@@ -95,7 +95,7 @@ stdenv.mkDerivation (finalAttrs: {
     description = "Session manager for Budgie";
     homepage = "https://github.com/BuddiesOfBudgie/budgie-session";
     license = lib.licenses.gpl2Plus;
-    maintainers = with lib.maintainers; [federicoschonborn];
+    maintainers = lib.teams.budgie.members;
     platforms = lib.platforms.linux;
   };
 })
diff --git a/nixpkgs/pkgs/desktops/budgie/default.nix b/nixpkgs/pkgs/desktops/budgie/default.nix
index 031ec9cd51a0..52f47d00bdeb 100644
--- a/nixpkgs/pkgs/desktops/budgie/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/default.nix
@@ -1,6 +1,8 @@
-{ lib, pkgs }:
+{ lib, newScope }:
 
-lib.makeScope pkgs.newScope (self: with self; {
+lib.makeScope newScope (self: let
+  inherit (self) callPackage;
+in {
   budgie-backgrounds = callPackage ./budgie-backgrounds { };
   budgie-control-center = callPackage ./budgie-control-center { };
   budgie-desktop = callPackage ./budgie-desktop { };
diff --git a/nixpkgs/pkgs/desktops/budgie/magpie/default.nix b/nixpkgs/pkgs/desktops/budgie/magpie/default.nix
index 827948d24401..f900e82a9ce1 100644
--- a/nixpkgs/pkgs/desktops/budgie/magpie/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/magpie/default.nix
@@ -156,11 +156,11 @@ stdenv.mkDerivation (finalAttrs: {
     };
   };
 
-  meta = with lib; {
+  meta = {
     description = "Softish fork of Mutter 43.x";
     homepage = "https://github.com/BuddiesOfBudgie/magpie";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ federicoschonborn ];
-    platforms = platforms.linux;
+    license = lib.licenses.gpl2Plus;
+    maintainers = lib.teams.budgie.members;
+    platforms = lib.platforms.linux;
   };
 })
diff --git a/nixpkgs/pkgs/desktops/budgie/plugins/budgie-analogue-clock-applet/default.nix b/nixpkgs/pkgs/desktops/budgie/plugins/budgie-analogue-clock-applet/default.nix
index c443cb72dd49..3792a19f99e9 100644
--- a/nixpkgs/pkgs/desktops/budgie/plugins/budgie-analogue-clock-applet/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/plugins/budgie-analogue-clock-applet/default.nix
@@ -10,14 +10,14 @@
 , libpeas
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "budgie-analogue-clock-applet";
   version = "2.0";
 
   src = fetchFromGitHub {
     owner = "samlane-ma";
     repo = "analogue-clock-applet";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     hash = "sha256-yId5bbdmELinBmZ5eISa5hQSYkeZCkix2FJ287GdcCs=";
   };
 
@@ -34,11 +34,11 @@ stdenv.mkDerivation rec {
     libpeas
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Analogue Clock Applet for the Budgie desktop";
     homepage = "https://github.com/samlane-ma/analogue-clock-applet";
-    license = licenses.gpl3Plus;
-    maintainers = [ maintainers.federicoschonborn ];
-    platforms = platforms.linux;
+    license = lib.licenses.gpl3Plus;
+    maintainers = lib.teams.budgie.members;
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/budgie/plugins/budgie-media-player-applet/default.nix b/nixpkgs/pkgs/desktops/budgie/plugins/budgie-media-player-applet/default.nix
index ae3a44f22fd0..38b3888c74f6 100644
--- a/nixpkgs/pkgs/desktops/budgie/plugins/budgie-media-player-applet/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/plugins/budgie-media-player-applet/default.nix
@@ -7,15 +7,15 @@
 , python3Packages
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation (finalAttrs: {
   pname = "budgie-media-player-applet";
-  version = "1.0.0-unstable-2023-12-31";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "zalesyc";
     repo = "budgie-media-player-applet";
-    rev = "24500be1e0a1f92968df80f8befdf896723ba8ee";
-    hash = "sha256-jQgkE6vv8PIcB0MJgfsQvzMRkkMU51Gqefoa2G6YJCw=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-E4aD7/SJNvWe6B3iX8fUZeZj14+uxjn0s+30BhU0dxE=";
   };
 
   nativeBuildInputs = [
@@ -31,8 +31,8 @@ stdenv.mkDerivation {
   ];
 
   postPatch = ''
-    substituteInPlace meson.build --replace "/usr" "$out"
-    substituteInPlace meson_post_install.py --replace '"/", "usr"' "\"$out\""
+    substituteInPlace meson.build --replace-fail "/usr" "$out"
+    substituteInPlace meson_post_install.py --replace-fail '"/", "usr"' "\"$out\""
   '';
 
   postFixup = ''
@@ -45,6 +45,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/zalesyc/budgie-media-player-applet";
     license = lib.licenses.gpl3Plus;
     platforms = lib.platforms.linux;
-    maintainers = with lib.maintainers; [ federicoschonborn ];
+    maintainers = lib.teams.budgie.members;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/budgie/plugins/budgie-user-indicator-redux/default.nix b/nixpkgs/pkgs/desktops/budgie/plugins/budgie-user-indicator-redux/default.nix
index 0d031dbaeb5a..273f87d51dbd 100644
--- a/nixpkgs/pkgs/desktops/budgie/plugins/budgie-user-indicator-redux/default.nix
+++ b/nixpkgs/pkgs/desktops/budgie/plugins/budgie-user-indicator-redux/default.nix
@@ -14,15 +14,15 @@
 , vala
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "budgie-user-indicator-redux";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "EbonJaeger";
     repo = "budgie-user-indicator-redux";
-    rev = "v${version}";
-    hash = "sha256-HGfcNlkIQD9nNzHm97LpNz3smYwDhxu4EArPo6msahI=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-X9b4H4PnrYGb/T7Sg9iXQeNDLoO1l0VCdbOCGUAgwC4=";
   };
 
   nativeBuildInputs = [
@@ -42,12 +42,12 @@ stdenv.mkDerivation rec {
     sassc
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Manage your user session from the Budgie panel";
     homepage = "https://github.com/EbonJaeger/budgie-user-indicator-redux";
-    changelog = "https://github.com/EbonJaeger/budgie-user-indicator-redux/blob/${src.rev}/CHANGELOG.md";
-    license = licenses.gpl2Plus;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.federicoschonborn ];
+    changelog = "https://github.com/EbonJaeger/budgie-user-indicator-redux/blob/${finalAttrs.src.rev}/CHANGELOG.md";
+    license = lib.licenses.gpl2Plus;
+    platforms = lib.platforms.linux;
+    maintainers = lib.teams.budgie.members;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix b/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix
index 2d34ffbc1a18..21cd43601924 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/bulky/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Bulk rename app";
+    mainProgram = "bulky";
     homepage = "https://github.com/linuxmint/bulky";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
index bf13651d1746..e0aee4bde640 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
@@ -99,6 +99,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/linuxmint/cinnamon-control-center";
     description = "A collection of configuration plugins used in cinnamon-settings";
+    mainProgram = "cinnamon-control-center";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = teams.cinnamon.members;
diff --git a/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix b/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
index 893ddf065333..f00a92ddc6d4 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
@@ -115,6 +115,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/linuxmint/muffin";
     description = "The window management library for the Cinnamon desktop (libmuffin) and its sample WM binary (muffin)";
+    mainProgram = "muffin";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = teams.cinnamon.members;
diff --git a/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix b/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
index 7b124c7987da..fe61e9701d9c 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
@@ -67,6 +67,13 @@ stdenv.mkDerivation rec {
     "--localedir=${cinnamon-translations}/share/locale"
   ];
 
+  postInstall = ''
+    # This fixes open as root and handles nemo-with-extensions well.
+    # https://github.com/NixOS/nixpkgs/issues/297570
+    substituteInPlace $out/share/polkit-1/actions/org.nemo.root.policy \
+      --replace-fail "$out/bin/nemo" "/run/current-system/sw/bin/nemo"
+  '';
+
   preFixup = ''
     # Used for some non-fd.o icons (e.g. xapp-text-case-symbolic)
     gappsWrapperArgs+=(
diff --git a/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix b/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix
index 219a0216437d..d1272f431389 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/pix/default.nix
@@ -95,6 +95,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A generic image viewer from Linux Mint";
+    mainProgram = "pix";
     homepage = "https://github.com/linuxmint/pix";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/cinnamon/xviewer/default.nix b/nixpkgs/pkgs/desktops/cinnamon/xviewer/default.nix
index 5a2bb2264d29..47e4e331da8b 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/xviewer/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/xviewer/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A generic image viewer from Linux Mint";
+    mainProgram = "xviewer";
     homepage = "https://github.com/linuxmint/xviewer";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-calculator/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-calculator/default.nix
index c8915e3f354c..fa5c80d4a071 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-calculator/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-calculator/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An easy to use calculator for ordinary users";
+    mainProgram = "deepin-calculator";
     homepage = "https://github.com/linuxdeepin/deepin-calculator";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/0001-fix-build-on-new-dtk.diff b/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/0001-fix-build-on-new-dtk.diff
new file mode 100644
index 000000000000..237d5798ecc8
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/0001-fix-build-on-new-dtk.diff
@@ -0,0 +1,20 @@
+diff --git a/src/source/common/ddesktopservicesthread.h b/src/source/common/ddesktopservicesthread.h
+index 49313744..456a5e96 100644
+--- a/src/source/common/ddesktopservicesthread.h
++++ b/src/source/common/ddesktopservicesthread.h
+@@ -8,10 +8,14 @@
+ 
+ #include <QThread>
+ 
++#include <dtkwidget_global.h>
++#include <dtkgui_global.h>
+ #include <DDesktopServices>
+ #include <QDebug>
+ #include <QFileInfo>
++
+ DWIDGET_USE_NAMESPACE
++DGUI_USE_NAMESPACE
+ 
+ // 文管打开文件目录线程
+ class DDesktopServicesThread : public QThread
+
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
index 393c51e4ac64..60a02851b95a 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-compressor/default.nix
@@ -20,20 +20,24 @@
 
 stdenv.mkDerivation rec {
   pname = "deepin-compressor";
-  version = "5.12.23";
+  version = "5.12.24";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-8qfpNM2rci4subdodxfJZLP3OvAxXl7QRl4MHGr15nA=";
+    hash = "sha256-XNhG28VZifQrl3TZfx/OHnsAOo0eKrhGKDk+OjOYD8k=";
   };
 
+  patches = [
+    ./0001-fix-build-on-new-dtk.diff
+  ];
+
   postPatch = ''
     substituteInPlace src/source/common/pluginmanager.cpp \
-      --replace "/usr/lib/" "$out/lib/"
+      --replace-fail "/usr/lib/" "$out/lib/"
     substituteInPlace src/desktop/deepin-compressor.desktop \
-      --replace "/usr" "$out"
+      --replace-fail "/usr" "$out"
   '';
 
   nativeBuildInputs = [
@@ -61,10 +65,16 @@ stdenv.mkDerivation rec {
     "-DUSE_TEST=OFF"
   ];
 
+  # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
+  qtWrapperArgs = [
+    "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
+  ];
+
   strictDeps = true;
 
   meta = with lib; {
     description = "A fast and lightweight application for creating and extracting archives";
+    mainProgram = "deepin-compressor";
     homepage = "https://github.com/linuxdeepin/deepin-compressor";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-draw/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-draw/default.nix
index c07ca9e0b880..980c7b3d1934 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-draw/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-draw/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Lightweight drawing tool for users to freely draw and simply edit images";
+    mainProgram = "deepin-draw";
     homepage = "https://github.com/linuxdeepin/deepin-draw";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-editor/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-editor/default.nix
index 6c02844c0ad5..c0cfc4465e1a 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-editor/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-editor/default.nix
@@ -16,17 +16,18 @@
 , libchardet
 , libuchardet
 , libiconv
+, gitUpdater
 }:
 
 stdenv.mkDerivation rec {
   pname = "deepin-editor";
-  version = "6.0.15";
+  version = "6.0.16";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-17loD7FNy5PwSxIyXk313yiMxO10rOeP94q08tm76gw=";
+    hash = "sha256-55hRXHP02MJWt+JUDCDKv4Boq0IwNW1itGw9rtCZrao=";
   };
 
   nativeBuildInputs = [
@@ -54,6 +55,8 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [ "-DVERSION=${version}" ];
 
+  passthru.updateScript = gitUpdater { };
+
   meta = with lib; {
     description = "A desktop text editor that supports common text editing features";
     homepage = "https://github.com/linuxdeepin/deepin-editor";
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix
index 7794d5b50d0b..d9f810c95184 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-movie-reborn/default.nix
@@ -123,6 +123,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Full-featured video player supporting playing local and streaming media in multiple video formats";
+    mainProgram = "deepin-movie";
     homepage = "https://github.com/linuxdeepin/deepin-movie-reborn";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-music/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-music/default.nix
index 64e5ee857745..e5cbca387efb 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-music/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-music/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Awesome music player with brilliant and tweakful UI Deepin-UI based";
+    mainProgram = "deepin-music";
     homepage = "https://github.com/linuxdeepin/deepin-music";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-picker/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-picker/default.nix
index cafd235fc9f4..cbb3d8e66a74 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-picker/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-picker/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Color picker application";
+    mainProgram = "deepin-picker";
     homepage = "https://github.com/linuxdeepin/deepin-picker";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-reader/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-reader/default.nix
index 0d95349bf56e..39045e0e2a61 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-reader/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-reader/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple memo software with texts and voice recordings";
+    mainProgram = "deepin-reader";
     homepage = "https://github.com/linuxdeepin/deepin-reader";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-screen-recorder/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-screen-recorder/default.nix
index a0f83e7eb438..c035a217171e 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-screen-recorder/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-screen-recorder/default.nix
@@ -78,6 +78,9 @@ stdenv.mkDerivation rec {
     gst-plugins-good
   ]);
 
+  # Fix build failure on dtk 5.6.20
+  env.NIX_CFLAGS_COMPILE = "-std=c++14";
+
   # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
   qtWrapperArgs = [
     "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix
index 544e8e32b249..daadb5a863d3 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-screensaver/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A screensaver service developed by deepin";
+    mainProgram = "deepin-screensaver";
     homepage = "https://github.com/linuxdeepin/deepin-screensaver";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-shortcut-viewer/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-shortcut-viewer/default.nix
index a9e1f8d7e977..fc0fd4eab8e1 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-shortcut-viewer/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-shortcut-viewer/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Deepin Shortcut Viewer";
+    mainProgram = "deepin-shortcut-viewer";
     homepage = "https://github.com/linuxdeepin/deepin-shortcut-viewer";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix
index 581eb1fa3580..52492275e98c 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-system-monitor/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "deepin-system-monitor";
-  version = "6.0.9";
+  version = "6.0.13";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-ompsCTPmmF7S0UHNNU0YDQiTdvcFglpEoS4o+XMZ7jg=";
+    hash = "sha256-QwZPvEOYypSmbe3deqLRsI3VL/CgVc+Ql3JlsMZ9MqY=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-terminal/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-terminal/default.nix
index 7356d6342c4d..5142b8d354ee 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-terminal/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "deepin-terminal";
-  version = "6.0.9";
+  version = "6.0.12";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-QdODR4zmbMuzSVy6eJhwJHNPXkAn6oCLHq+YZEOmtIU=";
+    hash = "sha256-VAF6Dn9cGmipQhAKhEOLd7lJyYWySOJ+rehc9L8pfL0=";
   };
 
   cmakeFlags = [ "-DVERSION=${version}" ];
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Terminal emulator with workspace, multiple windows, remote management, quake mode and other features";
+    mainProgram = "deepin-terminal";
     homepage = "https://github.com/linuxdeepin/deepin-terminal";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/apps/deepin-voice-note/default.nix b/nixpkgs/pkgs/desktops/deepin/apps/deepin-voice-note/default.nix
index 13124f82b7aa..766d4962fc70 100644
--- a/nixpkgs/pkgs/desktops/deepin/apps/deepin-voice-note/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/apps/deepin-voice-note/default.nix
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple memo software with texts and voice recordings";
+    mainProgram = "deepin-voice-note";
     homepage = "https://github.com/linuxdeepin/deepin-voice-note";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/artwork/dde-account-faces/default.nix b/nixpkgs/pkgs/desktops/deepin/artwork/dde-account-faces/default.nix
index 63db25d8dbc8..b635b721a012 100644
--- a/nixpkgs/pkgs/desktops/deepin/artwork/dde-account-faces/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/artwork/dde-account-faces/default.nix
@@ -5,13 +5,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "dde-account-faces";
-  version = "1.0.15";
+  version = "1.0.16";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-/eTGy+9fcYmGrh09RdCIZ2Cn12gTaGtg4Tluv25n5r0=";
+    hash = "sha256-PtbEsFQl6M5Ouadxy9CTVh1Bmmect83NODO4Ks+ckKU=";
   };
 
   makeFlags = [ "PREFIX=${placeholder "out"}/var" ];
diff --git a/nixpkgs/pkgs/desktops/deepin/artwork/deepin-icon-theme/default.nix b/nixpkgs/pkgs/desktops/deepin/artwork/deepin-icon-theme/default.nix
index 95e715e4d375..5260df0ece63 100644
--- a/nixpkgs/pkgs/desktops/deepin/artwork/deepin-icon-theme/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/artwork/deepin-icon-theme/default.nix
@@ -8,13 +8,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "deepin-icon-theme";
-  version = "2023.11.28";
+  version = "2024.01.31";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-kCWJAmJa0VmhnuegE+acj82Ojl4Z5D8g7/q2PzppJwg=";
+    hash = "sha256-08maujG5Tibsv9N+5olOeD8MrXTRiZh0OQm0bg8t+Cc=";
   };
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-app-services/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-app-services/default.nix
index 4c27ced09d56..64713d08b11f 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-app-services/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-app-services/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dde-app-services";
-  version = "1.0.23";
+  version = "1.0.25";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-INxbRDpG3MqPW6IMTqEagDCGo7vwxkR6D1+lcWdjO3w=";
+    hash = "sha256-/lHiSUOTD8nC0WDLAHAFzm1YC0WjSS5W5JNC0cjeVEo=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/default.nix
index fef56b3978f7..01fd610099c7 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dde-appearance";
-  version = "1.1.6";
+  version = "1.1.25";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-7oRbydLXw8yRzi9L1GH/q0cjMY/DLyWbj4RUSyNpVNM=";
+    hash = "sha256-H9TvWF6Q0lX4GF4mQ71E3SUqWbhH7dzHIlScovbN7lM=";
   };
 
   patches = [
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
     substituteInPlace src/service/modules/api/themethumb.cpp \
       --replace "/usr/lib/deepin-api" "/run/current-system/sw/lib/deepin-api"
 
-    substituteInPlace src/service/dbus/deepinwmfaker.cpp \
+    substituteInPlace fakewm/dbus/deepinwmfaker.cpp \
       --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon"
 
     substituteInPlace src/service/modules/api/locale.cpp \
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff b/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff
index 14fb527c7ef4..3ed997dc0cc5 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-appearance/fix-custom-wallpapers-path.diff
@@ -11,10 +11,10 @@ index b612e6e..371f966 100644
              "serial": 0,
              "flags": [],
              "name": "Background_Uris",
-diff --git a/src/service/dbus/deepinwmfaker.cpp b/src/service/dbus/deepinwmfaker.cpp
+diff --git a/fakewm/dbus/deepinwmfaker.cpp b/fakewm/dbus/deepinwmfaker.cpp
 index 5d455fa..40ec608 100644
---- a/src/service/dbus/deepinwmfaker.cpp
-+++ b/src/service/dbus/deepinwmfaker.cpp
+--- a/fakewm/dbus/deepinwmfaker.cpp
++++ b/fakewm/dbus/deepinwmfaker.cpp
 @@ -54,13 +54,13 @@ Q_GLOBAL_STATIC_WITH_ARGS(QGSettings, _gsettings_dde_zone, ("com.deepin.dde.zone
  
  #define KWinDBusCompositorInterface "org.kde.kwin.Compositing"
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-application-manager/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-application-manager/default.nix
index 0949bc6e4993..b386d0bbeabf 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-application-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-application-manager/default.nix
@@ -1,42 +1,36 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , pkg-config
 , wrapQtAppsHook
 , qtbase
-, dtkwidget
-, dde-polkit-agent
-, gsettings-qt
-, libcap
-, jemalloc
-, xorg
-, iconv
 }:
 
 stdenv.mkDerivation rec {
   pname = "dde-application-manager";
-  version = "1.0.19";
+  version = "1.1.8";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-1P265xqlL/wML66nKdfTgkRx6MCpLwrt5rXu+CyeShU=";
+    hash = "sha256-ImyXSyQWMFLvmtx9mBxrr4/IFOgOH1BW650mbiwFh5U=";
   };
 
-  # remove this patch after next release
-  postPatch = ''
-    substituteInPlace src/modules/mimeapp/mime_app.cpp src/modules/launcher/common.h src/service/main.cpp \
-      misc/dconf/com.deepin.dde.appearance.json \
-      --replace "/usr/share" "/run/current-system/sw/share"
-
-    substituteInPlace src/lib/dlocale.cpp --replace "/usr/share/locale/locale.alias" "${iconv}/share/locale/locale.alias"
-
-    for file in $(grep -rl "/usr/bin"); do
-      substituteInPlace $file --replace "/usr/bin/" "/run/current-system/sw/bin/"
-    done
-  '';
+  patches = [
+    (fetchpatch {
+      name = "set-more-scale-envs-to-application.patch";
+      url = "https://github.com/linuxdeepin/dde-application-manager/commit/a1f8ad276d88c81249dd3468779862186a180238.patch";
+      hash = "sha256-/iKg6NZZomNEKYsZCZP1IfNr7ZAXiA9RVBnyf+M/f4w=";
+    })
+    (fetchpatch {
+      name = "support-execSearchPath-to-prevent-systemd-from-finding-binaries.patch";
+      url = "https://github.com/linuxdeepin/dde-application-manager/commit/2eaca7c6b8b841d571e9d3510f9f14c321cd976e.patch";
+      hash = "sha256-GWUIv4NIBLQpnY4GcjLShMjiXAfPi3zKdol3whchC/Y=";
+    })
+  ];
 
   nativeBuildInputs = [
     cmake
@@ -46,16 +40,11 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     qtbase
-    dtkwidget
-    gsettings-qt
-    libcap
-    jemalloc
-    xorg.libXdmcp
-    xorg.libXres
   ];
 
   meta = with lib; {
     description = "Application manager for DDE";
+    mainProgram = "dde-application-manager";
     homepage = "https://github.com/linuxdeepin/dde-application-manager";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-calendar/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-calendar/default.nix
index a9a3af0adee1..b244898566e9 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-calendar/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-calendar/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dde-calendar";
-  version = "5.11.1";
+  version = "5.12.1";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-EQcB+a0dK2c6NdvGFbyp65a8nN2PmOpZLWx61UDOTJg=";
+    hash = "sha256-p+KtObh2JT7aPcDCi0jmaNmLqB1aU3IvAiYrGmhErcI=";
   };
 
   patches = [
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Calendar for Deepin Desktop Environment";
+    mainProgram = "dde-calendar";
     homepage = "https://github.com/linuxdeepin/dde-calendar";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix
index f397e9ca2837..cbfbb34f33ce 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-control-center/default.nix
@@ -17,19 +17,20 @@
 , polkit-qt
 , libxcrypt
 , librsvg
+, gtest
 , runtimeShell
 , dbus
 }:
 
 stdenv.mkDerivation rec {
   pname = "dde-control-center";
-  version = "6.0.28";
+  version = "6.0.44";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-kgQ4ySiYtaklOqER56QtKD9lk1CnRSEAU4QPHycl9eI=";
+    hash = "sha256-NN2CSIYByxeTZraK48lAsQSJYAOTDHzKT1FOa+VWMo0=";
   };
 
   postPatch = ''
@@ -57,6 +58,7 @@ stdenv.mkDerivation rec {
     polkit-qt
     libxcrypt
     librsvg
+    gtest
   ];
 
   cmakeFlags = [
@@ -89,6 +91,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Control panel of Deepin Desktop Environment";
+    mainProgram = "dde-control-center";
     homepage = "https://github.com/linuxdeepin/dde-control-center";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix
index 5ea7da4ed201..9c827e96a745 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-dock/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dde-dock";
-  version = "6.0.22";
+  version = "6.0.35";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-fhc2faiPH35ZKw6SCoGTz+6mgxabNpCFQeY2p68Ba5w=";
+    hash = "sha256-ATC/Ze6GyjT92eCgAt9g2FIQbXLVHUMuXuAslNnbkCE=";
   };
 
   postPatch = ''
@@ -81,6 +81,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Deepin desktop-environment - dock module";
+    mainProgram = "dde-dock";
     homepage = "https://github.com/linuxdeepin/dde-dock";
     platforms = platforms.linux;
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/default.nix
index a197980c8d74..552fa748d51f 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , runtimeShell
 , dtkwidget
 , qt5integration
@@ -44,13 +43,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dde-file-manager";
-  version = "6.0.31";
+  version = "6.0.40";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-mc2HcoLrwMXKU8w34KUEh62ZfEIfbJLVzz4JGnUE5EM=";
+    hash = "sha256-fvxP6wle4hezt9nEDpTgK+xB4J5XIC0mP5jWCmkjJPA=";
   };
 
   nativeBuildInputs = [
@@ -63,13 +62,7 @@ stdenv.mkDerivation rec {
   dontWrapGApps = true;
 
   patches = [
-    ./use_v23_dbus_interface.diff
-
-    (fetchpatch {
-      name = "use-pkgconfig-to-check-mount.patch";
-      url = "https://github.com/linuxdeepin/dde-file-manager/commit/b6c210057d991591df45b80607a614e7a57a9dc0.patch";
-      hash = "sha256-k0ZYlOVN3hHs1qvvRaJ3i6okOhDE+DoUKGs9AhSFBGU=";
-    })
+    ./patch_check_v23_interface.diff
   ];
 
   postPatch = ''
@@ -132,6 +125,8 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DVERSION=${version}"
+    "-DNIX_DEEPIN_VERSION=23"
+    "-DSYSTEMD_USER_UNIT_DIR=${placeholder "out"}/lib/systemd/user"
   ];
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/use_v23_dbus_interface.diff b/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/patch_check_v23_interface.diff
index 5a42ecd4a1f5..c41306f59031 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/use_v23_dbus_interface.diff
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-file-manager/patch_check_v23_interface.diff
@@ -1,13 +1,13 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e93d3ad..94e3eca 100644
+index 8a8cfb079..34092aa57 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -30,7 +30,7 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+@@ -31,7 +31,7 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
  endif()
  
  #Indentify the version
 -if (${DEEPIN_OS_VERSION} MATCHES "23")
-+if (TRUE)
++if (${NIX_DEEPIN_VERSION} MATCHES "23")
      add_definitions(-DCOMPILE_ON_V23)
      set(COMPLIE_ON_V23 TRUE)
      message("COMPILE ON v23")
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-launchpad/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-launchpad/default.nix
index a6104d61c922..3e3b15f3a250 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-launchpad/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-launchpad/default.nix
@@ -15,15 +15,20 @@
 
 stdenv.mkDerivation rec {
   pname = "dde-launchpad";
-  version = "0.3.0";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-8m0DjQYih3hB/n2VHuJgUYBe8tpGwBU0NdkLxr1OsFc=";
+    hash = "sha256-az8BC3n44NGpATNu3Exjn3H7Rumx/YqDXztEGqCpAbY=";
   };
 
+  postPatch = ''
+    substituteInPlace desktopintegration.cpp \
+      --replace "AppStreamQt/pool.h" "AppStreamQt5/pool.h"
+  '';
+
   nativeBuildInputs = [
     cmake
     qttools
@@ -50,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The 'launcher' or 'start menu' component for DDE";
+    mainProgram = "dde-launchpad";
     homepage = "https://github.com/linuxdeepin/dde-launchpad";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-network-core/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-network-core/default.nix
index 24d46698765e..f9d97f735a62 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-network-core/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-network-core/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dde-network-core";
-  version = "2.0.15";
+  version = "2.0.21";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-AMuWEz3Eyw0tG0srLWpqS7MO7Z4ZzIay4z59cZQZU0o=";
+    hash = "sha256-xuPEh0o62seyxlW+MKGgv/DdheYibSI1K0RJAjxraCw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-session-shell/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-session-shell/default.nix
index 48479c6893ea..b30840f74ff3 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-session-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-session-shell/default.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dde-session-shell";
-  version = "6.0.10";
+  version = "6.0.17";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-h4X3RZe7+CxVeFmk/7+7K4d/2D1+jhECKQaxl4TsuvM=";
+    hash = "sha256-X/aBMxrYeCT3I9ynV8cPzS23H44fHLkpkztewnfTNxA=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-session-ui/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-session-ui/default.nix
index a732589d7ea1..190ad0bbc704 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-session-ui/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-session-ui/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dde-session-ui";
-  version = "6.0.10";
+  version = "6.0.16";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-JwktVbwWdfqURhZuEFdB5oaKMsBZu5DekpZ2WGpcL4Q=";
+    hash = "sha256-hxunGK7DxRuAbmi6PtylHCBajV3b1qbFVA+AiuOCcN0=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-session/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-session/default.nix
index 72ae99f8c843..0e919c144d46 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-session/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-session/default.nix
@@ -15,16 +15,19 @@
 
 stdenv.mkDerivation rec {
   pname = "dde-session";
-  version = "1.1.9";
+  version = "1.2.5";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-CyHvvNALXe4fOMjD48By/iaU6/xNUhH9yG19Ob3bHy0=";
+    hash = "sha256-YYGRjVbVFyzmRhYu6sDtxzghocgM7Myr3K77AqWQk3E=";
   };
 
   postPatch = ''
+    substituteInPlace misc/CMakeLists.txt \
+      --replace "/etc" "$out/etc"
+
     # Avoid using absolute path to distinguish applications
     substituteInPlace src/dde-session/impl/sessionmanager.cpp \
       --replace 'file.readAll().startsWith("/usr/bin/dde-lock")' 'file.readAll().contains("dde-lock")' \
diff --git a/nixpkgs/pkgs/desktops/deepin/core/dde-widgets/default.nix b/nixpkgs/pkgs/desktops/deepin/core/dde-widgets/default.nix
index 975cb978e7a7..f7455a92e0b7 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/dde-widgets/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/dde-widgets/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dde-widgets";
-  version = "6.0.14";
+  version = "6.0.19";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-bmhT7UhMXtC5wlRtwlVnGjoq8rUQcDSk4rGQ0Xrz9ZI=";
+    hash = "sha256-oB0lyfmxBSwqjXO+etYdc+DghZVSBU+LXYqK1WS5DaU=";
   };
 
   nativeBuildInputs = [
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Desktop widgets service/implementation for DDE";
+    mainProgram = "dde-widgets";
     homepage = "https://github.com/linuxdeepin/dde-widgets";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/default.nix b/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/default.nix
index 03e40357317c..a46088a63dd6 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/deepin-kwin/default.nix
@@ -36,13 +36,13 @@
 
 stdenv.mkDerivation rec {
   pname = "deepin-kwin";
-  version = "5.25.11";
+  version = "5.25.17";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-J92T1hsRmmtkjF9OPsrikRtd7bQSEG88UOYu+BHUSx0=";
+    hash = "sha256-Zi6SNNiwty16b3cCMK52zrXqglq8TqK2x8smSD504+o=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/deepin/core/deepin-service-manager/default.nix b/nixpkgs/pkgs/desktops/deepin/core/deepin-service-manager/default.nix
index 3d657ef33869..a11f7717b646 100644
--- a/nixpkgs/pkgs/desktops/deepin/core/deepin-service-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/core/deepin-service-manager/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Manage DBus service on Deepin";
+    mainProgram = "deepin-service-manager";
     homepage = "https://github.com/linuxdeepin/deepin-service-manager";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/default.nix b/nixpkgs/pkgs/desktops/deepin/default.nix
index 0361a13142cb..2edf1359bee9 100644
--- a/nixpkgs/pkgs/desktops/deepin/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/default.nix
@@ -1,4 +1,4 @@
-{ lib, pkgs, config, libsForQt5 }:
+{ lib, pkgs, config, libsForQt5, qt6Packages }:
 let
   packages = self:
   let
@@ -28,7 +28,7 @@ let
     deepin-kwin = callPackage ./core/deepin-kwin { };
     dde-appearance = callPackage ./core/dde-appearance { };
     dde-app-services = callPackage ./core/dde-app-services { };
-    dde-application-manager = callPackage ./core/dde-application-manager { };
+    dde-application-manager = qt6Packages.callPackage ./core/dde-application-manager { };
     dde-control-center = callPackage ./core/dde-control-center { };
     dde-calendar = callPackage ./core/dde-calendar { };
     dde-clipboard = callPackage ./core/dde-clipboard { };
diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/default.nix
index 11aa986124b2..d86c36976302 100644
--- a/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-api/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , buildGoModule
 , pkg-config
 , deepin-gettext-tools
@@ -21,40 +20,32 @@
 
 buildGoModule rec {
   pname = "dde-api";
-  version = "6.0.7";
+  version = "6.0.9";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-kdf1CoZUyda6bOTW0WJTgaXYhocrjRU9ptj7i+k8aaQ=";
+    hash = "sha256-ht5IaXi4nz0/U1zqp4JTiDkQ3NB69q24MgWfu45SpoY=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "modify_PKGBUILD_to_support_OBS.patch";
-      url = "https://github.com/linuxdeepin/dde-api/commit/1399522d032c6c649db79a33348cdb1a233bc23a.patch";
-      hash = "sha256-kSHnYaOxIvv7lAJnvxpSwyRDPyDxpAq9x+gJcBdU3T8=";
-    })
-  ];
-
-  vendorHash = "sha256-4Yscw3QjWG1rlju6sMRHGn3dSe65b1nx10B3KeyAzBM=";
+  vendorHash = "sha256-zrtUsCF2+301DKwgWectw+UbOehOp8h8u/IMf09XQ8Q=";
 
   postPatch = ''
     substituteInPlace misc/systemd/system/deepin-shutdown-sound.service \
-      --replace "/usr/bin/true" "${coreutils}/bin/true"
+      --replace-fail "/usr/bin/true" "${coreutils}/bin/true"
 
     substituteInPlace sound-theme-player/main.go \
-      --replace "/usr/sbin/alsactl" "alsactl"
+      --replace-fail "/usr/sbin/alsactl" "alsactl"
 
     substituteInPlace misc/{scripts/deepin-boot-sound.sh,systemd/system/deepin-login-sound.service} \
-     --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send"
+      --replace-fail "/usr/bin/dbus-send" "${dbus}/bin/dbus-send"
 
     substituteInPlace lunar-calendar/huangli.go adjust-grub-theme/main.go \
-      --replace "/usr/share/dde-api" "$out/share/dde-api"
+      --replace-fail "/usr/share/dde-api" "$out/share/dde-api"
 
     substituteInPlace themes/{theme.go,settings.go} \
-      --replace "/usr/share" "/run/current-system/sw/share"
+      --replace-fail "/usr/share" "/run/current-system/sw/share"
 
     for file in $(grep "/usr/lib/deepin-api" * -nR |awk -F: '{print $1}')
     do
@@ -107,6 +98,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Dbus interfaces used for screen zone detecting, thumbnail generating, sound playing, etc";
+    mainProgram = "dde-open";
     homepage = "https://github.com/linuxdeepin/dde-api";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/default.nix
index 0f322505be2f..b79f1fe472d1 100644
--- a/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/go-package/dde-daemon/default.nix
@@ -38,16 +38,16 @@
 
 buildGoModule rec {
   pname = "dde-daemon";
-  version = "6.0.22";
+  version = "6.0.34";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-D7s6wWZeZHYl/aP/0qLYNn+lZEwGJAjFNbO0whKymck=";
+    hash = "sha256-NIFgv6EUSnCqSdPttx6wrr7K1nRV/JIZJy9uS7uu0Sc=";
   };
 
-  vendorHash = "sha256-U+G5CELpor34RgFzHpxfvJ/jBfWfE4ShjY2b2Z61BhE=";
+  vendorHash = "sha256-F39QGxY0aD+hHWguHosSrSzcB/ahYbnFW9vVtS5oUnU=";
 
   patches = [
     ./0001-dont-set-PATH.diff
@@ -70,10 +70,11 @@ buildGoModule rec {
       --replace "/usr/share/X11/xkb" "${xkeyboard_config}/share/X11/xkb"
 
     substituteInPlace bin/dde-system-daemon/wallpaper.go accounts1/user.go \
-     --replace "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers"
+      --replace "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers"
 
     substituteInPlace timedate1/zoneinfo/zone.go \
-     --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
+      --replace "/usr/share/dde" "$out/share/dde" \
+      --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
 
     substituteInPlace accounts1/image_blur.go grub2/modify_manger.go \
       --replace "/usr/lib/deepin-api" "/run/current-system/sw/lib/deepin-api"
diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix
index f745c8d942be..d01c45c654d2 100644
--- a/nixpkgs/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/go-package/deepin-pw-check/default.nix
@@ -62,6 +62,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to verify the validity of the password";
+    mainProgram = "pwd-conf-update";
     homepage = "https://github.com/linuxdeepin/deepin-pw-check";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/go-dbus-factory/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/go-dbus-factory/default.nix
index 4c12dce491d7..eed8208367b0 100644
--- a/nixpkgs/pkgs/desktops/deepin/go-package/go-dbus-factory/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/go-package/go-dbus-factory/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "go-dbus-factory";
-  version = "1.10.23";
+  version = "2.0.8";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-6u9Bpoa80j/K1MipncfM378/qmSSMZAlx88jE4hHYBk=";
+    sha256 = "sha256-yzmr61wrBfZi+CuXFhtvOk7EaFtE8y3QyVwwgEDqwKY=";
   };
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix
index eecdbeb990ba..45c486d606d3 100644
--- a/nixpkgs/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/go-package/go-gir-generator/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Generate static golang bindings for GObject";
+    mainProgram = "gir-generator";
     homepage = "https://github.com/linuxdeepin/go-gir-generator";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/startdde/0001-avoid-use-hardcode-path.patch b/nixpkgs/pkgs/desktops/deepin/go-package/startdde/0001-avoid-use-hardcode-path.patch
deleted file mode 100644
index 69e4c8aba56d..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/go-package/startdde/0001-avoid-use-hardcode-path.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff --git a/misc/auto_launch/chinese.json b/misc/auto_launch/chinese.json
-index 14b8bff..2b2c412 100644
---- a/misc/auto_launch/chinese.json
-+++ b/misc/auto_launch/chinese.json
-@@ -3,7 +3,7 @@
-     "Priority": 9,
-     "Group": [
-       {
--        "Command": "/usr/bin/dde-file-manager",
-+        "Command": "dde-file-manager",
-         "Wait": false,
-         "Args": [
-           "-d"
-@@ -25,7 +25,7 @@
-     "Priority": 7,
-     "Group": [
-       {
--        "Command": "/usr/bin/dde-shutdown",
-+        "Command": "dde-shutdown",
-         "Wait": false,
-         "Args": [
-           "-d"
-diff --git a/session.go b/session.go
-index da76626..bf9a2c4 100644
---- a/session.go
-+++ b/session.go
-@@ -14,6 +14,7 @@ import (
- 	"sync"
- 	"syscall"
- 	"time"
-+	"strings"
- 
- 	"github.com/adrg/xdg"
- 	"github.com/godbus/dbus/v5"
-@@ -85,7 +86,7 @@ type SessionManager struct {
- }
- 
- const (
--	cmdShutdown      = "/usr/bin/dde-shutdown"
-+	cmdShutdown      = "dde-shutdown"
- 	lockFrontDest    = "org.deepin.dde.LockFront1"
- 	lockFrontIfc     = lockFrontDest
- 	lockFrontObjPath = "/org/deepin/dde/LockFront1"
-@@ -458,7 +459,7 @@ func (m *SessionManager) SetLocked(sender dbus.Sender, value bool) *dbus.Error {
- 		return dbusutil.ToError(err)
- 	}
- 
--	if exe == "/usr/bin/dde-lock" {
-+	if strings.Contains(exe, "dde-lock") {
- 		m.setLocked(value)
- 		return nil
- 	}
-@@ -478,7 +479,7 @@ func (m *SessionManager) SetLocked(sender dbus.Sender, value bool) *dbus.Error {
- 		return dbusutil.ToError(fmt.Errorf("desktop file %q is invalid", desktopFile))
- 	}
- 	exe = info.GetExecutable()
--	if exe != "/usr/bin/dde-lock" {
-+	if strings.Contains(exe, "dde-lock") {
- 		return dbusutil.ToError(fmt.Errorf("exe %q of desktop file %q is invalid", exe, desktopFile))
- 	}
- 
diff --git a/nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix b/nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix
index 8ad13e1156d7..2408410b2f08 100644
--- a/nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/go-package/startdde/default.nix
@@ -19,29 +19,25 @@
 
 buildGoModule rec {
   pname = "startdde";
-  version = "6.0.10";
+  version = "6.0.13";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-B2B8QlA1Ps/ybVzionngtwDwTLd7H02RKJwcXymGlJM=";
+    hash = "sha256-sftPQq4cSyCTuvVtvjT8YJDLQOpSbmnXEVzFwFFaU4U=";
   };
 
-  patches = [
-    ./0001-avoid-use-hardcode-path.patch
-  ];
-
-  vendorHash = "sha256-5BEOazAygYL1N+CaGAbUwdpHZ1EiHr6yNW27/bXNdZg=";
+  vendorHash = "sha256-Y81p3yPQayXbvyUI7N6PvFDO3hSU3SL0AuUKxvZkZNE=";
 
   postPatch = ''
-    substituteInPlace display/manager.go session.go \
+    substituteInPlace display/manager.go \
       --replace "/bin/bash" "${runtimeShell}"
 
     substituteInPlace misc/systemd_task/dde-display-task-refresh-brightness.service \
        --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send"
 
-    substituteInPlace display/manager.go utils.go session.go \
+    substituteInPlace display/manager.go \
       --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon"
 
     substituteInPlace misc/lightdm.conf --replace "/usr" "$out"
diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkcommon/default.nix b/nixpkgs/pkgs/desktops/deepin/library/dtkcommon/default.nix
index b3aa4481c9b8..1a55d6855ec9 100644
--- a/nixpkgs/pkgs/desktops/deepin/library/dtkcommon/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/library/dtkcommon/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dtkcommon";
-  version = "5.6.17";
+  version = "5.6.21";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-mquBuF+Gzq5txxCczeS+gI8LshdKnK5WnpOCytNki+w=";
+    hash = "sha256-wRTzgvtmbGJJaIwi1f5m98K2o6g7yZdnKYR1nsDDwk8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkcore/default.nix b/nixpkgs/pkgs/desktops/deepin/library/dtkcore/default.nix
index f13715535e09..ba921fd6eef7 100644
--- a/nixpkgs/pkgs/desktops/deepin/library/dtkcore/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/library/dtkcore/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dtkcore";
-  version = "5.6.17";
+  version = "5.6.22";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-/MGSvT8tPn+KqqlM6FY2iFsArmAkYMW5Q3Sl4g4zvH0=";
+    hash = "sha256-W8uLNWC8bYzrKrX/hq9p1h66dWrxp4Vt+/27zDJeAS4=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkdeclarative/default.nix b/nixpkgs/pkgs/desktops/deepin/library/dtkdeclarative/default.nix
index 511a3950842e..32e499ad242a 100644
--- a/nixpkgs/pkgs/desktops/deepin/library/dtkdeclarative/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/library/dtkdeclarative/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dtkdeclarative";
-  version = "5.6.17";
+  version = "5.6.24";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-P0F6GidGp+CkNplKnLiaYVtcxs6N66gGIx6UcplEt08=";
+    hash = "sha256-bGy8e+JAyHiAwWvO5Xz1TubHUDP4i4nWUR4h5/appM0=";
   };
 
   patches = [
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A widget development toolkit based on QtQuick/QtQml";
+    mainProgram = "dtk-exhibition";
     homepage = "https://github.com/linuxdeepin/dtkdeclarative";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkgui/default.nix b/nixpkgs/pkgs/desktops/deepin/library/dtkgui/default.nix
index 0094f5a305f8..9066a3298574 100644
--- a/nixpkgs/pkgs/desktops/deepin/library/dtkgui/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/library/dtkgui/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , pkg-config
 , cmake
 , qttools
@@ -16,24 +15,18 @@
 
 stdenv.mkDerivation rec {
   pname = "dtkgui";
-  version = "5.6.17";
+  version = "5.6.22";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-ssCVMFCE1vhucYMxXkEZV5YlFxT1JdYGqrzILhWX1XI=";
+    hash = "sha256-h3DFG6FaJXP9o9u8R31MtX3Z1+P3DrNDT8Xbd8tlI4Y=";
   };
 
   patches = [
     ./fix-pkgconfig-path.patch
     ./fix-pri-path.patch
-
-    (fetchpatch {
-      name = "fix_svg_with_filter_attribute_rendering_exception.patch";
-      url = "https://github.com/linuxdeepin/dtkgui/commit/f2c9327eb4989ab8ea96af7560c67d1cada794de.patch";
-      hash = "sha256-lfg09tgS4vPuYachRbHdaMYKWdZZ0lP0Hxakkr9JKGs=";
-    })
   ];
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/deepin/library/dtkwidget/default.nix b/nixpkgs/pkgs/desktops/deepin/library/dtkwidget/default.nix
index b646baa48c3c..59c1ae7be856 100644
--- a/nixpkgs/pkgs/desktops/deepin/library/dtkwidget/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/library/dtkwidget/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dtkwidget";
-  version = "5.6.17";
+  version = "5.6.22";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-oFmM0e7ht3lCL50pwS/v/BLFmT2jymQaUZ4SmLdxvMo=";
+    hash = "sha256-szy1gPm+PsiUXGvo5QuXKYMVPCcaqVX47iu48WXOjWU=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/deepin/library/image-editor/default.nix b/nixpkgs/pkgs/desktops/deepin/library/image-editor/default.nix
index e969c2137ef1..4a9c35b1aece 100644
--- a/nixpkgs/pkgs/desktops/deepin/library/image-editor/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/library/image-editor/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "image-editor";
-  version = "1.0.35";
+  version = "1.0.41";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-Xr4tueipQbRHyKLStTWeUcVbX7Baiz0YooaaVk65Y+U=";
+    hash = "sha256-9V9B0YSUTWv/4IbTRtKJSVrZx6j8jqJxIIR9TwUZ0U0=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/desktops/deepin/library/qt5integration/default.nix b/nixpkgs/pkgs/desktops/deepin/library/qt5integration/default.nix
index f5962e7760e4..e8e3b4d8e146 100644
--- a/nixpkgs/pkgs/desktops/deepin/library/qt5integration/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/library/qt5integration/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qt5integration";
-  version = "5.6.17";
+  version = "5.6.20";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-8ag/cFkjp5u/0/71xKR6z6dXp2NGRIYNNbzzEmgsDmc=";
+    hash = "sha256-cmvscSIu3LOTKuMs/+JUdJAvQ7OB4o1k+LqfRxNefZU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix b/nixpkgs/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix
index 87d570ac011e..11a342e217fc 100644
--- a/nixpkgs/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , extra-cmake-modules
 , pkg-config
@@ -18,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qt5platform-plugins";
-  version = "5.6.16";
+  version = "5.6.22";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-1/biT8wR44+sdOMhBW/8KMUSBDK/UxuEqsyjTZyjBT4=";
+    hash = "sha256-0XQ4s6xpFHoG6SC8RE8WVnbHH7qNeOYkhrYUkDEH8Dc=";
   };
 
   nativeBuildInputs = [
@@ -45,14 +44,6 @@ stdenv.mkDerivation rec {
     qtwayland
   ];
 
-  patches = [
-    (fetchpatch {
-      name = "use-ECM-to-help-dwayland-find-wayland.patch";
-      url = "https://github.com/linuxdeepin/qt5platform-plugins/commit/d7f6230716a0ff5ce34fc7d292ec0af5bbac30e4.patch";
-      hash = "sha256-RY2+QBR3OjUGBX4Y9oVvIRY90IH9rTOCg8dCddkB2WE=";
-    })
-  ];
-
   cmakeFlags = [
     "-DINSTALL_PATH=${placeholder "out"}/${qtbase.qtPluginPrefix}/platforms"
     "-DQT_XCB_PRIVATE_HEADERS=${qtbase.src}/src/plugins/platforms/xcb"
diff --git a/nixpkgs/pkgs/desktops/deepin/library/util-dfm/default.nix b/nixpkgs/pkgs/desktops/deepin/library/util-dfm/default.nix
index 0d9bda407861..e7576f7169f8 100644
--- a/nixpkgs/pkgs/desktops/deepin/library/util-dfm/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/library/util-dfm/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "util-dfm";
-  version = "1.2.16";
+  version = "1.2.21";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-o5ubfCpgAHJXqihGyapq7Dj9eQlw2q6VoER/e37tM6w=";
+    hash = "sha256-EqNca3heIUUV5joMskpriCY+7NwjUc/vmQwomDkru80=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix b/nixpkgs/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix
index 50fa2c6e72e7..ae1120032450 100644
--- a/nixpkgs/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/misc/deepin-desktop-base/default.nix
@@ -5,13 +5,13 @@
 }:
 stdenvNoCC.mkDerivation rec {
   pname = "deepin-desktop-base";
-  version = "2023.09.05";
+  version = "2024.01.03";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-Gqp56TbkuTOI3aT7UmRuYBjUwRiOoIUHiRf0DaY0yew=";
+    hash = "sha256-45qR1LCnA8ZSrWykqNvvm7Dxbi5pQnAuFy6nZJrzyi0=";
   };
 
   makeFlags = [ "DESTDIR=${placeholder "out"}" ];
diff --git a/nixpkgs/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix b/nixpkgs/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix
index 7bc12672472d..f090c6feefa8 100644
--- a/nixpkgs/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix
+++ b/nixpkgs/pkgs/desktops/deepin/tools/dde-device-formatter/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple graphical interface for creating file system in a block device";
+    mainProgram = "dde-device-formatter";
     homepage = "https://github.com/linuxdeepin/dde-device-formatter";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/enlightenment/econnman/default.nix b/nixpkgs/pkgs/desktops/enlightenment/econnman/default.nix
index 228957de4ad1..c71f28576055 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/econnman/default.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/econnman/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A user interface for the connman network connection manager";
+    mainProgram = "econnman-bin";
     homepage = "https://enlightenment.org/";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/enlightenment/ecrire/default.nix b/nixpkgs/pkgs/desktops/enlightenment/ecrire/default.nix
index 25238ca59ab7..3f511c3a79d0 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/ecrire/default.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/ecrire/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "EFL simple text editor";
+    mainProgram = "ecrire";
     homepage = "https://www.enlightenment.org/";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/enlightenment/ephoto/default.nix b/nixpkgs/pkgs/desktops/enlightenment/ephoto/default.nix
index c7681bfe0e47..1fff72fdb7bd 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/ephoto/default.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/ephoto/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Image viewer and editor written using the Enlightenment Foundation Libraries";
+    mainProgram = "ephoto";
     homepage = "https://www.smhouston.us/ephoto/";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/enlightenment/evisum/default.nix b/nixpkgs/pkgs/desktops/enlightenment/evisum/default.nix
index 438b68902813..af38f526f5ad 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/evisum/default.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/evisum/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "System and process monitor written with EFL";
+    mainProgram = "evisum";
     homepage = "https://www.enlightenment.org";
     license = with licenses; [ isc ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/enlightenment/rage/default.nix b/nixpkgs/pkgs/desktops/enlightenment/rage/default.nix
index 814887491438..2ed7384ca0e0 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/rage/default.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/rage/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Video and audio player along the lines of mplayer";
+    mainProgram = "rage";
     homepage = "https://enlightenment.org/";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/expidus/calculator/default.nix b/nixpkgs/pkgs/desktops/expidus/calculator/default.nix
new file mode 100644
index 000000000000..fb2ab188922a
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/expidus/calculator/default.nix
@@ -0,0 +1,50 @@
+{ lib, flutter, fetchFromGitHub }:
+flutter.buildFlutterApplication rec {
+  pname = "expidus-calculator";
+  version = "0.1.1-alpha";
+
+  src = fetchFromGitHub {
+    owner = "ExpidusOS";
+    repo = "calculator";
+    rev = version;
+    hash = "sha256-O3LHp10Fo3PW3zoN7mFSQEKh+AAaR+IqkRtc6nQrIZE=";
+  };
+
+  flutterBuildFlags = [
+    "--dart-define=COMMIT_HASH=a5d8f54404b9994f83beb367a1cd11e04a6420cb"
+  ];
+
+  pubspecLock = lib.importJSON ./pubspec.lock.json;
+
+  gitHashes = {
+    libtokyo = "sha256-T0+vyfSfijLv7MvM+zt3bkVpb3aVrlDnse2xyNMp9GU=";
+    libtokyo_flutter = "sha256-T0+vyfSfijLv7MvM+zt3bkVpb3aVrlDnse2xyNMp9GU=";
+  };
+
+  postInstall = ''
+    rm $out/bin/calculator
+    ln -s $out/app/calculator $out/bin/expidus-calculator
+
+    mkdir -p $out/share/applications
+    mv $out/app/data/com.expidusos.calculator.desktop $out/share/applications
+
+    mkdir -p $out/share/icons
+    mv $out/app/data/com.expidusos.calculator.png $out/share/icons
+
+    mkdir -p $out/share/metainfo
+    mv $out/app/data/com.expidusos.calculator.metainfo.xml $out/share/metainfo
+
+    substituteInPlace "$out/share/applications/com.expidusos.calculator.desktop" \
+      --replace "Exec=calculator" "Exec=$out/bin/expidus-calculator" \
+      --replace "Icon=com.expidusos.calculator" "Icon=$out/share/icons/com.expidusos.calculator.png"
+  '';
+
+  meta = with lib; {
+    description = "ExpidusOS Calculator";
+    homepage = "https://expidusos.com";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ RossComputerGuy ];
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
+    mainProgram = "expidus-calculator";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/expidus/calculator/pubspec.lock.json b/nixpkgs/pkgs/desktops/expidus/calculator/pubspec.lock.json
new file mode 100644
index 000000000000..a2e6f2e46776
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/expidus/calculator/pubspec.lock.json
@@ -0,0 +1,790 @@
+{
+  "packages": {
+    "args": {
+      "dependency": "transitive",
+      "description": {
+        "name": "args",
+        "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.4.2"
+    },
+    "async": {
+      "dependency": "transitive",
+      "description": {
+        "name": "async",
+        "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.11.0"
+    },
+    "bitsdojo_window": {
+      "dependency": "direct main",
+      "description": {
+        "name": "bitsdojo_window",
+        "sha256": "1118bc1cd16e6f358431ca4473af57cc1b287d2ceab46dfab6d59a9463160622",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.1.5"
+    },
+    "bitsdojo_window_linux": {
+      "dependency": "transitive",
+      "description": {
+        "name": "bitsdojo_window_linux",
+        "sha256": "d3804a30315fcbb43b28acc86d1180ce0be22c0c738ad2da9e5ade4d8dbd9655",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.1.3"
+    },
+    "bitsdojo_window_macos": {
+      "dependency": "transitive",
+      "description": {
+        "name": "bitsdojo_window_macos",
+        "sha256": "d2a9886c74516c5b84c1dd65ab8ee5d1c52055b265ebf0e7d664dee28366b521",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.1.3"
+    },
+    "bitsdojo_window_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "bitsdojo_window_platform_interface",
+        "sha256": "65daa015a0c6dba749bdd35a0f092e7a8ba8b0766aa0480eb3ef808086f6e27c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.1.2"
+    },
+    "bitsdojo_window_windows": {
+      "dependency": "transitive",
+      "description": {
+        "name": "bitsdojo_window_windows",
+        "sha256": "8766a40aac84a6d7bdcaa716b24997e028fc9a9a1800495fc031721fd5a22ed0",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.1.5"
+    },
+    "boolean_selector": {
+      "dependency": "transitive",
+      "description": {
+        "name": "boolean_selector",
+        "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.1"
+    },
+    "characters": {
+      "dependency": "transitive",
+      "description": {
+        "name": "characters",
+        "sha256": "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.3.0"
+    },
+    "clock": {
+      "dependency": "transitive",
+      "description": {
+        "name": "clock",
+        "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.1.1"
+    },
+    "collection": {
+      "dependency": "transitive",
+      "description": {
+        "name": "collection",
+        "sha256": "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.17.1"
+    },
+    "crypto": {
+      "dependency": "transitive",
+      "description": {
+        "name": "crypto",
+        "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.0.3"
+    },
+    "fake_async": {
+      "dependency": "transitive",
+      "description": {
+        "name": "fake_async",
+        "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.3.1"
+    },
+    "ffi": {
+      "dependency": "transitive",
+      "description": {
+        "name": "ffi",
+        "sha256": "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.0"
+    },
+    "file": {
+      "dependency": "transitive",
+      "description": {
+        "name": "file",
+        "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "6.1.4"
+    },
+    "filesize": {
+      "dependency": "transitive",
+      "description": {
+        "name": "filesize",
+        "sha256": "f53df1f27ff60e466eefcd9df239e02d4722d5e2debee92a87dfd99ac66de2af",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.1"
+    },
+    "flutter": {
+      "dependency": "direct main",
+      "description": "flutter",
+      "source": "sdk",
+      "version": "0.0.0"
+    },
+    "flutter_adaptive_scaffold": {
+      "dependency": "direct main",
+      "description": {
+        "name": "flutter_adaptive_scaffold",
+        "sha256": "3e78be8b9c95b1c9832b2f8ec4a845adac205c4bb5e7bd3fb204b07990229167",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.1.7+1"
+    },
+    "flutter_lints": {
+      "dependency": "direct dev",
+      "description": {
+        "name": "flutter_lints",
+        "sha256": "a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.3"
+    },
+    "flutter_localizations": {
+      "dependency": "direct main",
+      "description": "flutter",
+      "source": "sdk",
+      "version": "0.0.0"
+    },
+    "flutter_markdown": {
+      "dependency": "direct main",
+      "description": {
+        "name": "flutter_markdown",
+        "sha256": "d4a1cb250c4e059586af0235f32e02882860a508e189b61f2b31b8810c1e1330",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.6.17+2"
+    },
+    "flutter_test": {
+      "dependency": "direct dev",
+      "description": "flutter",
+      "source": "sdk",
+      "version": "0.0.0"
+    },
+    "flutter_web_plugins": {
+      "dependency": "transitive",
+      "description": "flutter",
+      "source": "sdk",
+      "version": "0.0.0"
+    },
+    "http": {
+      "dependency": "transitive",
+      "description": {
+        "name": "http",
+        "sha256": "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.13.6"
+    },
+    "http_parser": {
+      "dependency": "transitive",
+      "description": {
+        "name": "http_parser",
+        "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.0.2"
+    },
+    "intl": {
+      "dependency": "transitive",
+      "description": {
+        "name": "intl",
+        "sha256": "a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.18.0"
+    },
+    "js": {
+      "dependency": "transitive",
+      "description": {
+        "name": "js",
+        "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.6.7"
+    },
+    "libtokyo": {
+      "dependency": "direct main",
+      "description": {
+        "path": "packages/libtokyo",
+        "ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7",
+        "resolved-ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7",
+        "url": "https://github.com/ExpidusOS/libtokyo.git"
+      },
+      "source": "git",
+      "version": "0.1.0"
+    },
+    "libtokyo_flutter": {
+      "dependency": "direct main",
+      "description": {
+        "path": "packages/libtokyo_flutter",
+        "ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7",
+        "resolved-ref": "f48d528ebfc22fe827fe9f2d1965be1d339ccfb7",
+        "url": "https://github.com/ExpidusOS/libtokyo.git"
+      },
+      "source": "git",
+      "version": "0.1.0"
+    },
+    "lints": {
+      "dependency": "transitive",
+      "description": {
+        "name": "lints",
+        "sha256": "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.1"
+    },
+    "markdown": {
+      "dependency": "direct main",
+      "description": {
+        "name": "markdown",
+        "sha256": "acf35edccc0463a9d7384e437c015a3535772e09714cf60e07eeef3a15870dcd",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "7.1.1"
+    },
+    "matcher": {
+      "dependency": "transitive",
+      "description": {
+        "name": "matcher",
+        "sha256": "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.12.15"
+    },
+    "material_color_utilities": {
+      "dependency": "transitive",
+      "description": {
+        "name": "material_color_utilities",
+        "sha256": "d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.2.0"
+    },
+    "material_theme_builder": {
+      "dependency": "transitive",
+      "description": {
+        "name": "material_theme_builder",
+        "sha256": "380ab70835e01f4ee0c37904eebae9e36ed37b5cf8ed40d67412ea3244a2afd6",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.4"
+    },
+    "math_expressions": {
+      "dependency": "direct main",
+      "description": {
+        "name": "math_expressions",
+        "sha256": "3576593617c3870d75728a751f6ec6e606706d44e363f088ac394b5a28a98064",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.4.0"
+    },
+    "meta": {
+      "dependency": "transitive",
+      "description": {
+        "name": "meta",
+        "sha256": "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.9.1"
+    },
+    "nested": {
+      "dependency": "transitive",
+      "description": {
+        "name": "nested",
+        "sha256": "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.0"
+    },
+    "package_info_plus": {
+      "dependency": "direct main",
+      "description": {
+        "name": "package_info_plus",
+        "sha256": "10259b111176fba5c505b102e3a5b022b51dd97e30522e906d6922c745584745",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.1.2"
+    },
+    "package_info_plus_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "package_info_plus_platform_interface",
+        "sha256": "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.1"
+    },
+    "path": {
+      "dependency": "transitive",
+      "description": {
+        "name": "path",
+        "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.8.3"
+    },
+    "path_provider_linux": {
+      "dependency": "transitive",
+      "description": {
+        "name": "path_provider_linux",
+        "sha256": "f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.2.1"
+    },
+    "path_provider_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "path_provider_platform_interface",
+        "sha256": "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.1"
+    },
+    "path_provider_windows": {
+      "dependency": "transitive",
+      "description": {
+        "name": "path_provider_windows",
+        "sha256": "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.2.1"
+    },
+    "platform": {
+      "dependency": "transitive",
+      "description": {
+        "name": "platform",
+        "sha256": "ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.1.2"
+    },
+    "plugin_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "plugin_platform_interface",
+        "sha256": "da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.6"
+    },
+    "provider": {
+      "dependency": "direct main",
+      "description": {
+        "name": "provider",
+        "sha256": "cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "6.0.5"
+    },
+    "pub_semver": {
+      "dependency": "direct main",
+      "description": {
+        "name": "pub_semver",
+        "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.4"
+    },
+    "pubspec": {
+      "dependency": "direct main",
+      "description": {
+        "name": "pubspec",
+        "sha256": "f534a50a2b4d48dc3bc0ec147c8bd7c304280fff23b153f3f11803c4d49d927e",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.3.0"
+    },
+    "quiver": {
+      "dependency": "transitive",
+      "description": {
+        "name": "quiver",
+        "sha256": "b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.2.1"
+    },
+    "sentry": {
+      "dependency": "transitive",
+      "description": {
+        "name": "sentry",
+        "sha256": "39c23342fc96105da449914f7774139a17a0ca8a4e70d9ad5200171f7e47d6ba",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "7.9.0"
+    },
+    "sentry_flutter": {
+      "dependency": "direct main",
+      "description": {
+        "name": "sentry_flutter",
+        "sha256": "ff68ab31918690da004a42e20204242a3ad9ad57da7e2712da8487060ac9767f",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "7.9.0"
+    },
+    "shared_preferences": {
+      "dependency": "direct main",
+      "description": {
+        "name": "shared_preferences",
+        "sha256": "b7f41bad7e521d205998772545de63ff4e6c97714775902c199353f8bf1511ac",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.2.1"
+    },
+    "shared_preferences_android": {
+      "dependency": "transitive",
+      "description": {
+        "name": "shared_preferences_android",
+        "sha256": "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.2.1"
+    },
+    "shared_preferences_foundation": {
+      "dependency": "transitive",
+      "description": {
+        "name": "shared_preferences_foundation",
+        "sha256": "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.3.4"
+    },
+    "shared_preferences_linux": {
+      "dependency": "transitive",
+      "description": {
+        "name": "shared_preferences_linux",
+        "sha256": "c2eb5bf57a2fe9ad6988121609e47d3e07bb3bdca5b6f8444e4cf302428a128a",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.3.1"
+    },
+    "shared_preferences_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "shared_preferences_platform_interface",
+        "sha256": "d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.3.1"
+    },
+    "shared_preferences_web": {
+      "dependency": "transitive",
+      "description": {
+        "name": "shared_preferences_web",
+        "sha256": "d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.2.1"
+    },
+    "shared_preferences_windows": {
+      "dependency": "transitive",
+      "description": {
+        "name": "shared_preferences_windows",
+        "sha256": "f763a101313bd3be87edffe0560037500967de9c394a714cd598d945517f694f",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.3.1"
+    },
+    "sky_engine": {
+      "dependency": "transitive",
+      "description": "flutter",
+      "source": "sdk",
+      "version": "0.0.99"
+    },
+    "source_span": {
+      "dependency": "transitive",
+      "description": {
+        "name": "source_span",
+        "sha256": "dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.9.1"
+    },
+    "stack_trace": {
+      "dependency": "transitive",
+      "description": {
+        "name": "stack_trace",
+        "sha256": "c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.11.0"
+    },
+    "stream_channel": {
+      "dependency": "transitive",
+      "description": {
+        "name": "stream_channel",
+        "sha256": "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.1"
+    },
+    "string_scanner": {
+      "dependency": "transitive",
+      "description": {
+        "name": "string_scanner",
+        "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.2.0"
+    },
+    "term_glyph": {
+      "dependency": "transitive",
+      "description": {
+        "name": "term_glyph",
+        "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.2.1"
+    },
+    "test_api": {
+      "dependency": "transitive",
+      "description": {
+        "name": "test_api",
+        "sha256": "eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "0.5.1"
+    },
+    "typed_data": {
+      "dependency": "transitive",
+      "description": {
+        "name": "typed_data",
+        "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.3.2"
+    },
+    "uri": {
+      "dependency": "transitive",
+      "description": {
+        "name": "uri",
+        "sha256": "889eea21e953187c6099802b7b4cf5219ba8f3518f604a1033064d45b1b8268a",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.0"
+    },
+    "url_launcher": {
+      "dependency": "direct main",
+      "description": {
+        "name": "url_launcher",
+        "sha256": "47e208a6711459d813ba18af120d9663c20bdf6985d6ad39fe165d2538378d27",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "6.1.14"
+    },
+    "url_launcher_android": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher_android",
+        "sha256": "b04af59516ab45762b2ca6da40fa830d72d0f6045cd97744450b73493fa76330",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "6.1.0"
+    },
+    "url_launcher_ios": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher_ios",
+        "sha256": "7c65021d5dee51813d652357bc65b8dd4a6177082a9966bc8ba6ee477baa795f",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "6.1.5"
+    },
+    "url_launcher_linux": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher_linux",
+        "sha256": "b651aad005e0cb06a01dbd84b428a301916dc75f0e7ea6165f80057fee2d8e8e",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.0.6"
+    },
+    "url_launcher_macos": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher_macos",
+        "sha256": "b55486791f666e62e0e8ff825e58a023fd6b1f71c49926483f1128d3bbd8fe88",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.0.7"
+    },
+    "url_launcher_platform_interface": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher_platform_interface",
+        "sha256": "95465b39f83bfe95fcb9d174829d6476216f2d548b79c38ab2506e0458787618",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.5"
+    },
+    "url_launcher_web": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher_web",
+        "sha256": "ba140138558fcc3eead51a1c42e92a9fb074a1b1149ed3c73e66035b2ccd94f2",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.0.19"
+    },
+    "url_launcher_windows": {
+      "dependency": "transitive",
+      "description": {
+        "name": "url_launcher_windows",
+        "sha256": "95fef3129dc7cfaba2bc3d5ba2e16063bb561fc6d78e63eee16162bc70029069",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.0.8"
+    },
+    "uuid": {
+      "dependency": "transitive",
+      "description": {
+        "name": "uuid",
+        "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.0.7"
+    },
+    "vector_math": {
+      "dependency": "transitive",
+      "description": {
+        "name": "vector_math",
+        "sha256": "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.4"
+    },
+    "win32": {
+      "dependency": "transitive",
+      "description": {
+        "name": "win32",
+        "sha256": "a6f0236dbda0f63aa9a25ad1ff9a9d8a4eaaa5012da0dc59d21afdb1dc361ca4",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.1.4"
+    },
+    "xdg_directories": {
+      "dependency": "transitive",
+      "description": {
+        "name": "xdg_directories",
+        "sha256": "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "1.0.3"
+    },
+    "yaml": {
+      "dependency": "transitive",
+      "description": {
+        "name": "yaml",
+        "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "3.1.2"
+    }
+  },
+  "sdks": {
+    "dart": ">=3.0.5 <4.0.0",
+    "flutter": ">=3.10.0"
+  }
+}
diff --git a/nixpkgs/pkgs/desktops/expidus/default.nix b/nixpkgs/pkgs/desktops/expidus/default.nix
index 770050ba2878..0ee812c03975 100644
--- a/nixpkgs/pkgs/desktops/expidus/default.nix
+++ b/nixpkgs/pkgs/desktops/expidus/default.nix
@@ -1,4 +1,5 @@
 { callPackage }:
 {
+  calculator = callPackage ./calculator {};
   file-manager = callPackage ./file-manager {};
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-2/platform/libIDL/default.nix b/nixpkgs/pkgs/desktops/gnome-2/platform/libIDL/default.nix
index c8c40de9d44c..81f8e6d08e17 100644
--- a/nixpkgs/pkgs/desktops/gnome-2/platform/libIDL/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-2/platform/libIDL/default.nix
@@ -20,4 +20,5 @@ stdenv.mkDerivation rec {
     # the result was always ll https://lists.openembedded.org/g/openembedded-core/topic/85775262?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3A%2C%2C%2C0%2C0%2C0%2C85775262
     "libIDL_cv_long_long_format=ll"
   ];
+  meta.mainProgram = "libIDL-config-2";
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix b/nixpkgs/pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix
index 80ea3d02d939..5f21e59a4c52 100644
--- a/nixpkgs/pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-2/platform/libart_lgpl/default.nix
@@ -7,4 +7,5 @@ stdenv.mkDerivation rec {
     url = "mirror://gnome/sources/libart_lgpl/${lib.versions.majorMinor version}/libart_lgpl-${version}.tar.bz2";
     sha256 = "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx";
   };
+  meta.mainProgram = "libart2-config";
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-2/platform/libgnome/default.nix b/nixpkgs/pkgs/desktops/gnome-2/platform/libgnome/default.nix
index 56145980a5d2..c265b2ea6993 100644
--- a/nixpkgs/pkgs/desktops/gnome-2/platform/libgnome/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-2/platform/libgnome/default.nix
@@ -20,4 +20,5 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config intltool ];
   buildInputs = [ popt zlib GConf gnome_vfs libcanberra-gtk2 libtool ];
   propagatedBuildInputs = [ glib libbonobo libogg ];
+  meta.mainProgram = "gnome-open";
 }
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/accerciser/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/accerciser/default.nix
index 4e88c2779f2d..e486a3b283f1 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/accerciser/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/accerciser/default.nix
@@ -70,6 +70,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Accerciser";
     description = "Interactive Python accessibility explorer";
+    mainProgram = "accerciser";
     maintainers = teams.gnome.members;
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix
index 8d041b551143..ce5d841c9dd8 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/cheese/default.nix
@@ -100,6 +100,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Cheese";
     description = "Take photos and videos with your webcam, with fun graphical effects";
+    mainProgram = "cheese";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix
index 787f5c4f446e..b2abd36af212 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/ghex/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Ghex";
     description = "Hex editor for GNOME desktop environment";
+    mainProgram = "ghex";
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
index cac407d971af..24b889fb58c3 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
@@ -129,6 +129,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple GNOME 3 application to access remote or virtual systems";
+    mainProgram = "gnome-boxes";
     homepage = "https://wiki.gnome.org/Apps/Boxes";
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
index 410c631583e2..78829cfd74e2 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Calendar";
     description = "Simple and beautiful calendar application for GNOME";
+    mainProgram = "gnome-calendar";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-characters/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-characters/default.nix
index 8283d001132c..570bdccafd82 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-characters/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-characters/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Characters";
     description = "Simple utility application to find and insert unusual characters";
+    mainProgram = "gnome-characters";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-clocks/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-clocks/default.nix
index be7896f6b11a..3e719ef12218 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-clocks/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-clocks/default.nix
@@ -75,6 +75,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Clocks";
     description = "Clock application designed for GNOME 3";
+    mainProgram = "gnome-clocks";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix
index fcc8a67bb0c9..933c80a9ffe9 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-connections/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/connections";
     description = "A remote desktop client for the GNOME desktop environment";
+    mainProgram = "gnome-connections";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-logs/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-logs/default.nix
index dc55df0e175e..e2dc57d67088 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-logs/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-logs/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Logs";
     description = "A log viewer for the systemd journal";
+    mainProgram = "gnome-logs";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix
index 5021ccab4e0b..730a98e192df 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-maps/default.nix
@@ -28,11 +28,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-maps";
-  version = "45.4";
+  version = "45.5";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-maps/${lib.versions.major finalAttrs.version}/gnome-maps-${finalAttrs.version}.tar.xz";
-    hash = "sha256-3RV6vqKpGJuOL6jiHh9WV9Z06dJ+8fpj1la/TPCoYLc=";
+    hash = "sha256-HCD14Q3OaEre+ylhUmJmoiTmxGwW+gO5VK/6Czobt0A=";
   };
 
   doCheck = true;
@@ -92,6 +92,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Maps";
     description = "A map application for GNOME 3";
+    mainProgram = "gnome-maps";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix
index 823d90a49af6..5275e6e9de6a 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-music/default.nix
@@ -104,6 +104,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Music";
     description = "Music player and management application for the GNOME desktop environment";
+    mainProgram = "gnome-music";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-nettool/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-nettool/default.nix
index b738aa87666f..761d55a4036c 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-nettool/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-nettool/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-nettool";
     description = "A collection of networking tools";
+    mainProgram = "gnome-nettool";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-notes/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-notes/default.nix
index 0ecd1e2ef6fd..86d7253ae560 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-notes/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-notes/default.nix
@@ -90,6 +90,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Note editor designed to remain simple to use";
+    mainProgram = "bijiben";
     homepage = "https://wiki.gnome.org/Apps/Notes";
     license = licenses.gpl3;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix
index eb0070344bd7..3797f9df6f9b 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-power-manager";
     description = "View battery and power statistics provided by UPower";
+    mainProgram = "gnome-power-statistics";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix
index c8d455ae216a..81bec81cb41e 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple and modern sound recorder";
+    mainProgram = "gnome-sound-recorder";
     homepage = "https://wiki.gnome.org/Apps/SoundRecorder";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
index 72ccdffd374a..3dd7b2f4decb 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-text-editor";
     description = "A Text Editor for GNOME";
+    mainProgram = "gnome-text-editor";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/gnome-weather/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/gnome-weather/default.nix
index acee41048704..c4b5743cb516 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/gnome-weather/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/gnome-weather/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Weather";
     description = "Access current weather conditions and forecasts";
+    mainProgram = "gnome-weather";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/polari/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/polari/default.nix
index 6ab83b064b32..31ad6c94a6a9 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/polari/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/polari/default.nix
@@ -92,6 +92,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Polari";
     description = "IRC chat client designed to integrate with the GNOME desktop";
+    mainProgram = "polari";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/seahorse/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/seahorse/default.nix
index 1207d7969610..c3c1aa020ad2 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/seahorse/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/seahorse/default.nix
@@ -107,6 +107,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Seahorse";
     description = "Application for managing encryption keys and passwords in the GnomeKeyring";
+    mainProgram = "seahorse";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/apps/vinagre/default.nix b/nixpkgs/pkgs/desktops/gnome/apps/vinagre/default.nix
index f8d20291a1fa..5ef01e04fce5 100644
--- a/nixpkgs/pkgs/desktops/gnome/apps/vinagre/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/apps/vinagre/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Remote desktop viewer for GNOME";
+    mainProgram = "vinagre";
     homepage = "https://wiki.gnome.org/Apps/Vinagre";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/baobab/default.nix b/nixpkgs/pkgs/desktops/gnome/core/baobab/default.nix
index b459677a3e36..aad394c2d960 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/baobab/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/baobab/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical application to analyse disk usage in any GNOME environment";
+    mainProgram = "baobab";
     homepage = "https://wiki.gnome.org/Apps/DiskUsageAnalyzer";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/caribou/default.nix b/nixpkgs/pkgs/desktops/gnome/core/caribou/default.nix
index 2afb65d528e1..a0d6623b597e 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/caribou/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/caribou/default.nix
@@ -61,6 +61,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An input assistive technology intended for switch and pointer users";
+    mainProgram = "caribou-preferences";
     homepage = "https://wiki.gnome.org/Projects/Caribou";
     license = licenses.lgpl21;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/dconf-editor/default.nix b/nixpkgs/pkgs/desktops/gnome/core/dconf-editor/default.nix
index 4da661748c95..4189063c1419 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/dconf-editor/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/dconf-editor/default.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GSettings editor for GNOME";
+    mainProgram = "dconf-editor";
     homepage = "https://wiki.gnome.org/Apps/DconfEditor";
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/eog/default.nix b/nixpkgs/pkgs/desktops/gnome/core/eog/default.nix
index 0fab995beca8..6790c764a82d 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/eog/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/eog/default.nix
@@ -31,13 +31,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eog";
-  version = "45.2";
+  version = "45.3";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-2UzDnYLIDO5ygbgqzkLIIll2rV0MPvmVx+Aw9rqyIZw=";
+    sha256 = "sha256-hlD2YtSSHYOnkE9rucokW69zX3F7R/rFs38NkOXokag=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/epiphany/default.nix b/nixpkgs/pkgs/desktops/gnome/core/epiphany/default.nix
index 871ee8dcaf08..efac41be7ce5 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/epiphany/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/epiphany/default.nix
@@ -36,11 +36,11 @@
 
 stdenv.mkDerivation rec {
   pname = "epiphany";
-  version = "45.2";
+  version = "45.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "eccUYL/+/M715nvj+1/KZXhT6CFstiY5nSuVDOAyDdw=";
+    sha256 = "bDAum91mKQyw4m9ihDzUxDWklVq9u08VHwfcgEldZzA=";
   };
 
   nativeBuildInputs = [
@@ -101,6 +101,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Epiphany";
     description = "WebKit based web browser for GNOME";
+    mainProgram = "epiphany";
     maintainers = teams.gnome.members ++ teams.pantheon.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix
index 38bb96980dca..9389127e578c 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix
@@ -90,6 +90,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en";
     description = "Application that let you manage Bluetooth in the GNOME destkop";
+    mainProgram = "bluetooth-sendto";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
index 6482ba231f77..b9701f3d5e11 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-bluetooth";
     description = "Application that lets you manage Bluetooth in the GNOME desktop";
+    mainProgram = "bluetooth-sendto";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-contacts/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-contacts/default.nix
index 5f938a1fb79b..9e41193c03c5 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-contacts/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-contacts/default.nix
@@ -27,11 +27,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-contacts";
-  version = "45.0";
+  version = "45.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-contacts/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "vR/fKm9kzdnyq7/tB+ZPKmmuNTb3T0gZjMN7rZ/NlD4=";
+    sha256 = "gj9WCe7NkMQk3T5khXKHvBMh+23+KJJKR0/w6azyG3U=";
   };
 
   nativeBuildInputs = [
@@ -73,6 +73,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Contacts";
     description = "GNOME’s integrated address book";
+    mainProgram = "gnome-contacts";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix
index 1bbdc1f8df7b..eafbc79545f3 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-control-center/default.nix
@@ -208,6 +208,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Utilities to configure the GNOME desktop";
+    mainProgram = "gnome-control-center";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-dictionary/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-dictionary/default.nix
index ebd9b58fd96a..d5dfce9f7ed0 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-dictionary/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-dictionary/default.nix
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Dictionary";
     description = "Dictionary is the GNOME application to look up definitions";
+    mainProgram = "gnome-dictionary";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
index 9b2f0876d7f5..58fbbc0cfc1f 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
@@ -77,6 +77,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Projects/Mutter/RemoteDesktop";
     description = "GNOME Remote Desktop server";
+    mainProgram = "grdctl";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-screenshot/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
index 3904f1443f7d..0a345fe0d8c9 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
@@ -75,6 +75,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-screenshot";
     description = "Utility used in the GNOME desktop environment for taking screenshots";
+    mainProgram = "gnome-screenshot";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
index 93103100a064..aa74bec26696 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-shell/default.nix
@@ -67,13 +67,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-shell";
-  version = "45.4";
+  version = "45.5";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell/${lib.versions.major finalAttrs.version}/gnome-shell-${finalAttrs.version}.tar.xz";
-    sha256 = "W/6jeeEgscfyN/PsNprSfvXC9ZMMffFjs5J4LYWCCQ0=";
+    sha256 = "sha256-vVw9PQKNRyM+QgUiPwrAKsmpc7aZvCd0OQlNQaeNarA=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
index 34b3ac609882..f45f643cb57d 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -129,6 +129,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Software store that lets you install and update applications and system extensions";
+    mainProgram = "gnome-software";
     homepage = "https://wiki.gnome.org/Apps/Software";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
index 60de20502b37..eef86a460371 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
@@ -72,6 +72,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/SystemMonitor";
     description = "System Monitor shows you what programs are running and how much processor time, memory, and disk space are being used";
+    mainProgram = "gnome-system-monitor";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix
index bc524bc800db..92d1a7a37ecf 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-terminal/default.nix
@@ -95,6 +95,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The GNOME Terminal Emulator";
+    mainProgram = "gnome-terminal";
     homepage = "https://wiki.gnome.org/Apps/Terminal";
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gnome-tour/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gnome-tour/default.nix
index 9ded6a332654..c6d58c480581 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gnome-tour/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gnome-tour/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/gnome-tour";
     description = "GNOME Greeter & Tour";
+    mainProgram = "gnome-tour";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/gucharmap/default.nix b/nixpkgs/pkgs/desktops/gnome/core/gucharmap/default.nix
index 91bea357d251..83706f36ab4b 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/gucharmap/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/gucharmap/default.nix
@@ -105,6 +105,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GNOME Character Map, based on the Unicode Character Database";
+    mainProgram = "gucharmap";
     homepage = "https://wiki.gnome.org/Apps/Gucharmap";
     license = licenses.gpl3;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/mutter/43/default.nix b/nixpkgs/pkgs/desktops/gnome/core/mutter/43/default.nix
index e565603ae576..63110d9d90d3 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/mutter/43/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/43/default.nix
@@ -185,6 +185,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A window manager for GNOME";
+    mainProgram = "mutter";
     homepage = "https://gitlab.gnome.org/GNOME/mutter";
     license = licenses.gpl2Plus;
     maintainers = teams.pantheon.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix b/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix
index e5d1cda681db..570d954766a0 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/mutter/default.nix
@@ -67,13 +67,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mutter";
-  version = "45.4";
+  version = "45.5";
 
   outputs = [ "out" "dev" "man" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/mutter/${lib.versions.major finalAttrs.version}/mutter-${finalAttrs.version}.tar.xz";
-    sha256 = "kRQIN74VWC8sdTvmYauOQtrVXUobDwZQvQssk/Ar16s=";
+    sha256 = "sha256-UcMyS4qXX5luWsaTqzhWPElubxQubNM1e0lQ0lAzSHQ=";
   };
 
   mesonFlags = [
@@ -201,6 +201,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A window manager for GNOME";
+    mainProgram = "mutter";
     homepage = "https://gitlab.gnome.org/GNOME/mutter";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix b/nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix
index 9d7e60eed64d..3aea02678a83 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/simple-scan/default.nix
@@ -72,6 +72,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple scanning utility";
+    mainProgram = "simple-scan";
     longDescription = ''
       A really easy way to scan both documents and photos. You can crop out the
       bad parts of a photo and rotate it if it is the wrong way round. You can
diff --git a/nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix b/nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix
index 5c54f03d7d53..0765b7af0be7 100644
--- a/nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/core/sushi/default.nix
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://en.wikipedia.org/wiki/Sushi_(software)";
     description = "A quick previewer for Nautilus";
+    mainProgram = "sushi";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/default.nix b/nixpkgs/pkgs/desktops/gnome/default.nix
index 0659e1fa5660..022021ea6cf7 100644
--- a/nixpkgs/pkgs/desktops/gnome/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/default.nix
@@ -184,8 +184,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
 #### Dev http://ftp.gnome.org/pub/GNOME/devtools/
 
-  anjuta = callPackage ./devtools/anjuta { };
-
   devhelp = callPackage ./devtools/devhelp { };
 
 #### Games
@@ -262,4 +260,7 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   gedit = throw "The ‘gnome.gedit’ alias was removed. Please use ‘pkgs.gedit’ directly."; # converted to throw on 2023-12-27
   gnome-todo = throw "The ‘gnome.gnome-todo’ alias was removed. Please use ‘pkgs.endeavour’ directly."; # converted to throw on 2023-12-27
+
+#### Removals
+  anjuta = throw "`anjuta` was removed after not being maintained upstream and losing control of its official domain."; # 2024-01-16
 }
diff --git a/nixpkgs/pkgs/desktops/gnome/devtools/anjuta/default.nix b/nixpkgs/pkgs/desktops/gnome/devtools/anjuta/default.nix
deleted file mode 100644
index 5b841557b6b2..000000000000
--- a/nixpkgs/pkgs/desktops/gnome/devtools/anjuta/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ lib, stdenv, fetchurl, pkg-config, gnome, gtk3, gjs, flex, bison, libxml2, intltool,
-  gdl, libgda, gtksourceview, gsettings-desktop-schemas,
-  itstool, python3, ncurses, makeWrapper }:
-
-stdenv.mkDerivation rec {
-  pname = "anjuta";
-  version = "3.34.0";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/anjuta/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "13ql7axw6zz387s7pa1m7wmh7qps3x7fk53h9832vq1yxlq33aa2";
-  };
-
-  passthru = {
-    updateScript = gnome.updateScript { packageName = "anjuta"; attrPath = "gnome.anjuta"; };
-  };
-
-  enableParallelBuilding = true;
-
-  nativeBuildInputs = [
-    pkg-config intltool itstool python3 makeWrapper
-    # Required by python3
-    ncurses
-  ];
-  buildInputs = [
-    flex bison gtk3 libxml2 gjs gdl
-    libgda gtksourceview
-    gsettings-desktop-schemas
-  ];
-
-  preFixup = ''
-    wrapProgram $out/bin/anjuta \
-      --prefix XDG_DATA_DIRS : \
-        "$GSETTINGS_SCHEMAS_PATH"
-  '';
-
-  meta = with lib; {
-    description = "Software development studio";
-    homepage = "http://anjuta.org/";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/gnome/devtools/devhelp/default.nix b/nixpkgs/pkgs/desktops/gnome/devtools/devhelp/default.nix
index 55330921e267..6a1bbde4f4c2 100644
--- a/nixpkgs/pkgs/desktops/gnome/devtools/devhelp/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/devtools/devhelp/default.nix
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "API documentation browser for GNOME";
+    mainProgram = "devhelp";
     homepage = "https://wiki.gnome.org/Apps/Devhelp";
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/default.nix
index bfb5f4ff33e6..89f5edb5f7bf 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/default.nix
@@ -81,6 +81,7 @@ in rec {
       arc-menu = gnomeExtensions.arcmenu; # added 2021-02-14
       disable-unredirect = gnomeExtensions.disable-unredirect-fullscreen-windows; # added 2021-11-20
 
+      icon-hider = throw "gnomeExtensions.icon-hider was removed on 2024-03-15. The extension has not received any updates since 2020/3.34.";
       nohotcorner = throw "gnomeExtensions.nohotcorner removed since 2019-10-09: Since 3.34, it is a part of GNOME Shell configurable through GNOME Tweaks.";
       mediaplayer = throw "gnomeExtensions.mediaplayer deprecated since 2019-09-23: retired upstream https://github.com/JasonLG1979/gnome-shell-extensions-mediaplayer/blob/master/README.md";
       remove-dropdown-arrows = throw "gnomeExtensions.remove-dropdown-arrows removed since 2021-05-25: The extensions has not seen an update sine GNOME 3.34. Furthermore, the functionality it provides is obsolete as of GNOME 40.";
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json b/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json
index 25747774408b..a983f620cdc4 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/extensions.json
@@ -25,7 +25,7 @@
     "44": {"version": "47", "sha256": "0him9afr50fqgp8mdq5nbdsq4igqvwn7k3grvxzixb4y68514b5a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiUGFuZWxfRmF2b3JpdGVzQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNDcKfQ=="},
     "45": {"version": "49", "sha256": "0ayp2h0bimj0b4341rclsfszli77yh5i2gjrp16avs1m8zrqyll1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJQYW5lbF9GYXZvcml0ZXNAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}
   }}
-, {"uuid": "apps-menu@gnome-shell-extensions.gcampax.github.com", "name": "Applications Menu", "pname": "applications-menu", "description": "Add a category-based menu for applications.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/6/applications-menu/", "shell_version_map": {
+, {"uuid": "apps-menu@gnome-shell-extensions.gcampax.github.com", "name": "Apps Menu", "pname": "applications-menu", "description": "Add a category-based menu for apps.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/6/applications-menu/", "shell_version_map": {
     "38": {"version": "46", "sha256": "1l5fliypxq3s3b6crv7rc6nl741m7hw48dwl0g7vi3yxyw0vyc0x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJhcHBzLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="},
     "40": {"version": "48", "sha256": "0whi4ir3hvz6gby57331hv0a80ssz1b746pj79v43cm15djlsbhv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiYXBwcy1tZW51QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ4Cn0="},
     "41": {"version": "50", "sha256": "1x71mysa80n5nlfk79xgcz6k40qmw02g78pqjsvdinxsqlxi9ak6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hcHBzLW1lbnUiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwcy1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImFwcHMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MAp9"},
@@ -113,7 +113,7 @@
     "42": {"version": "52", "sha256": "0j3mva9qzsz3nvww9d99ig5z4nr9g339lirmavfzry9yf8l29cwz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nVGlsZS9nVGlsZSIsCiAgInV1aWQiOiAiZ1RpbGVAdmlib3UiLAogICJ2ZXJzaW9uIjogNTIKfQ=="},
     "43": {"version": "52", "sha256": "0j3mva9qzsz3nvww9d99ig5z4nr9g339lirmavfzry9yf8l29cwz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nVGlsZS9nVGlsZSIsCiAgInV1aWQiOiAiZ1RpbGVAdmlib3UiLAogICJ2ZXJzaW9uIjogNTIKfQ=="},
     "44": {"version": "52", "sha256": "0j3mva9qzsz3nvww9d99ig5z4nr9g339lirmavfzry9yf8l29cwz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nVGlsZS9nVGlsZSIsCiAgInV1aWQiOiAiZ1RpbGVAdmlib3UiLAogICJ2ZXJzaW9uIjogNTIKfQ=="},
-    "45": {"version": "56", "sha256": "1gjbx9fpssqh0rpnanpnv0bwikzixmg5prvg2gl260vvqf234874", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dUaWxlIiwKICAidXVpZCI6ICJnVGlsZUB2aWJvdSIsCiAgInZlcnNpb24iOiA1Ngp9"}
+    "45": {"version": "58", "sha256": "0j9sjxcy9jjqw2a0crdqvyfn6bs1463w51w6lkwcn63nkr7yh8ns", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dUaWxlIiwKICAidXVpZCI6ICJnVGlsZUB2aWJvdSIsCiAgInZlcnNpb24iOiA1OAp9"}
   }}
 , {"uuid": "lockkeys@vaina.lt", "name": "Lock Keys", "pname": "lock-keys", "description": "Numlock & Capslock status on the panel.", "link": "https://extensions.gnome.org/extension/36/lock-keys/", "shell_version_map": {
     "38": {"version": "52", "sha256": "02190kcp0c1mzlxf4ax0shk7r6zh9adynidxnjdhbkwl9knxalra", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsLiBHbm9tZSB2ZXJzaW9uIDMuMzAgYW5kIGVhcmxpZXIgdXNlcnMgcGxlYXNlIGluc3RhbGwgNDQgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZG93bmxvYWQtZXh0ZW5zaW9uL2xvY2trZXlzJTQwdmFpbmEubHQuc2hlbGwtZXh0ZW5zaW9uLnppcD92ZXJzaW9uX3RhZz0yNjIyOSAiLAogICJuYW1lIjogIkxvY2sgS2V5cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSwgUmFwaGFcdTAwZWJsIFJvY2hldCwgTHVpeiBOaWNrZWwsIEplc3NlLCBEdVx1MDE2MWFuIEthemlrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYXp5c21hc3Rlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbG9ja2tleXMiLAogICJ1dWlkIjogImxvY2trZXlzQHZhaW5hLmx0IiwKICAidmVyc2lvbiI6IDUyCn0="},
@@ -163,7 +163,7 @@
     "42": {"version": "55", "sha256": "16ff2fbv8vf9cgzrxy85vis9a5bgbkn1lb21brpxsf9gs5kk4v8k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RtbzYwL0NvdmVyZmxvd0FsdFRhYiIsCiAgInV1aWQiOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAidmVyc2lvbiI6IDU1Cn0="},
     "43": {"version": "61", "sha256": "0bnwwvq73hn0p5qy2h9n7zq8wpna7wf3mx94i1p2mxkl4l2mv6f9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RtbzYwL0NvdmVyZmxvd0FsdFRhYiIsCiAgInV1aWQiOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAidmVyc2lvbiI6IDYxCn0="},
     "44": {"version": "65", "sha256": "04ydnd74kyc38l0k4sc20g42c17p0k79gd5iknivwz7i6xx6hbx2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNjUKfQ=="},
-    "45": {"version": "70", "sha256": "067ymybcy917py070cickd15gw6z7c35shhyipbiya7wkalrl2wj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiZHNoZWVsZXIiLAogICAgImxpYmVyYXBheSI6ICJkc2hlZWxlciIsCiAgICAicGF5cGFsIjogIkRhbmllbFNoZWVsZXIiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAibmFtZSI6ICJDb3ZlcmZsb3cgQWx0LVRhYiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb3ZlcmZsb3dhbHR0YWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNzAKfQ=="}
+    "45": {"version": "71", "sha256": "0agf21qyk576aa212w42hcn9vhpbsrjisrby0mfnw22giah9sf28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiZHNoZWVsZXIiLAogICAgImxpYmVyYXBheSI6ICJkc2hlZWxlciIsCiAgICAicGF5cGFsIjogIkRhbmllbFNoZWVsZXIiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAibmFtZSI6ICJDb3ZlcmZsb3cgQWx0LVRhYiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb3ZlcmZsb3dhbHR0YWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNzEKfQ=="}
   }}
 , {"uuid": "netspeed@hedayaty.gmail.com", "name": "NetSpeed", "pname": "netspeed", "description": "Displays Internet Speed", "link": "https://extensions.gnome.org/extension/104/netspeed/", "shell_version_map": {
     "40": {"version": "34", "sha256": "04137rwnnf2mbp228wl9qjcix6i7757cqsdamabdrjwclg147vql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIEludGVybmV0IFNwZWVkIiwKICAibmFtZSI6ICJOZXRTcGVlZCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJoZWRheWF0eUBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlZGF5YXR5L05ldFNwZWVkIiwKICAidXVpZCI6ICJuZXRzcGVlZEBoZWRheWF0eS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
@@ -238,7 +238,8 @@
     "41": {"version": "13", "sha256": "1zacmlidmkf1jys1cvwpx4yqkjj6hp0bdpw83gnmg7rmgnyls39d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIE15dGhUViBzdGF0dXMgKGZyZWUgc3BhY2UgYW5kIHVwY29taW5nIHJlY29yZGluZ3MpIiwKICAibmFtZSI6ICJNeXRoVFYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZueHdlYi9nbm9tZS1zaGVsbC1teXRodHYiLAogICJ1dWlkIjogIm15dGh0di1mbnhAZm54d2ViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "42": {"version": "13", "sha256": "1zacmlidmkf1jys1cvwpx4yqkjj6hp0bdpw83gnmg7rmgnyls39d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIE15dGhUViBzdGF0dXMgKGZyZWUgc3BhY2UgYW5kIHVwY29taW5nIHJlY29yZGluZ3MpIiwKICAibmFtZSI6ICJNeXRoVFYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZueHdlYi9nbm9tZS1zaGVsbC1teXRodHYiLAogICJ1dWlkIjogIm15dGh0di1mbnhAZm54d2ViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "43": {"version": "15", "sha256": "0njr30dqvlgjgw1p97sf99xg2x4p3jz8a91d2pi7xgaan8lyixin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIE15dGhUViBzdGF0dXMgKGZyZWUgc3BhY2UgYW5kIHVwY29taW5nIHJlY29yZGluZ3MpIiwKICAibmFtZSI6ICJNeXRoVFYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZueHdlYi9nbm9tZS1zaGVsbC1teXRodHYiLAogICJ1dWlkIjogIm15dGh0di1mbnhAZm54d2ViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
-    "44": {"version": "15", "sha256": "0njr30dqvlgjgw1p97sf99xg2x4p3jz8a91d2pi7xgaan8lyixin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIE15dGhUViBzdGF0dXMgKGZyZWUgc3BhY2UgYW5kIHVwY29taW5nIHJlY29yZGluZ3MpIiwKICAibmFtZSI6ICJNeXRoVFYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZueHdlYi9nbm9tZS1zaGVsbC1teXRodHYiLAogICJ1dWlkIjogIm15dGh0di1mbnhAZm54d2ViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}
+    "44": {"version": "15", "sha256": "0njr30dqvlgjgw1p97sf99xg2x4p3jz8a91d2pi7xgaan8lyixin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIE15dGhUViBzdGF0dXMgKGZyZWUgc3BhY2UgYW5kIHVwY29taW5nIHJlY29yZGluZ3MpIiwKICAibmFtZSI6ICJNeXRoVFYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZueHdlYi9nbm9tZS1zaGVsbC1teXRodHYiLAogICJ1dWlkIjogIm15dGh0di1mbnhAZm54d2ViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
+    "45": {"version": "16", "sha256": "04y5ib7nz3jhhl3y7f28zbm01yaxkas1rjvqn2q9zsyqkq38s849", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIE15dGhUViBzdGF0dXMgKGZyZWUgc3BhY2UgYW5kIHVwY29taW5nIHJlY29yZGluZ3MpIiwKICAibmFtZSI6ICJNeXRoVFYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZm54d2ViL2dub21lLXNoZWxsLW15dGh0diIsCiAgInV1aWQiOiAibXl0aHR2LWZueEBmbnh3ZWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}
   }}
 , {"uuid": "middleclickclose@paolo.tranquilli.gmail.com", "name": "Quick Close in Overview", "pname": "middle-click-to-close-in-overview", "description": "Close windows with a button click (the middle one by default) when in overview mode", "link": "https://extensions.gnome.org/extension/352/middle-click-to-close-in-overview/", "shell_version_map": {
     "38": {"version": "17", "sha256": "1nv6cjyiz1i7fddh21h0zmrvzfi3y70y1f0xsv2zd0rfg6rf0r77", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHdpbmRvd3Mgd2l0aCBhIGJ1dHRvbiBjbGljayAodGhlIG1pZGRsZSBvbmUgYnkgZGVmYXVsdCkgd2hlbiBpbiBvdmVydmlldyBtb2RlIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJRdWljayBDbG9zZSBpbiBPdmVydmlldyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiUGFvbG8gVHJhbnF1aWxsaSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWlkZGxlY2xpY2tjbG9zZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3A5MXBhdWwvbWlkZGxlY2xpY2tjbG9zZSIsCiAgInV1aWQiOiAibWlkZGxlY2xpY2tjbG9zZUBwYW9sby50cmFucXVpbGxpLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNwp9"},
@@ -323,7 +324,7 @@
     "41": {"version": "25", "sha256": "0nxn93jxagzld6x0rxi56q1y8lcjzh2p82jhxli90cg940w38jj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWlhZC9nbm9tZS1oZGF0ZSIsCiAgInV1aWQiOiAiaGRhdGVAaGF0dWwuaW5mbyIsCiAgInZlcnNpb24iOiAyNQp9"},
     "42": {"version": "25", "sha256": "0nxn93jxagzld6x0rxi56q1y8lcjzh2p82jhxli90cg940w38jj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWlhZC9nbm9tZS1oZGF0ZSIsCiAgInV1aWQiOiAiaGRhdGVAaGF0dWwuaW5mbyIsCiAgInZlcnNpb24iOiAyNQp9"},
     "43": {"version": "25", "sha256": "0nxn93jxagzld6x0rxi56q1y8lcjzh2p82jhxli90cg940w38jj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWlhZC9nbm9tZS1oZGF0ZSIsCiAgInV1aWQiOiAiaGRhdGVAaGF0dWwuaW5mbyIsCiAgInZlcnNpb24iOiAyNQp9"},
-    "45": {"version": "27", "sha256": "1vxjml6kms07vyavn00ng8vbim782dsyrgbxwni32brvib0fi914", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLWhkYXRlIiwKICAibmFtZSI6ICJHbm9tZSBIRGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWlhZC9nbm9tZS1oZGF0ZSIsCiAgInV1aWQiOiAiaGRhdGVAaGF0dWwuaW5mbyIsCiAgInZlcnNpb24iOiAyNwp9"}
+    "45": {"version": "28", "sha256": "1wgc073mal2diar7my0lnh3gfp19879738bz7cahypai5blq12vj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLWhkYXRlIiwKICAibmFtZSI6ICJHbm9tZSBIRGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWlhZC9nbm9tZS1oZGF0ZSIsCiAgInV1aWQiOiAiaGRhdGVAaGF0dWwuaW5mbyIsCiAgInZlcnNpb24iOiAyOAp9"}
   }}
 , {"uuid": "todo.txt@bart.libert.gmail.com", "name": "Todo.txt", "pname": "todotxt", "description": "A Gnome shell interface for todo.txt. \n\nTodo.txt is a future-proof syntax for tasks (not made by me), for more info: http://todotxt.com/\n\nSome examples:\nTask: Basic task\n(A) Task: High priority task\nTask @project +context: Task is part of project and has a certain context\nx 2013-08-22 Task: Task was completed on the 22nd of August\n\nFor more info about the syntax: https://github.com/ginatrapani/todo.txt-cli/wiki/The-Todo.txt-Format\n\nQuick start:\nWhen you first enable the extension, chances are high you'll see a [X] in your top panel. If you click the [X], you will be able to choose between creating the necessary files automatically or selecting your own existing files to be used with the extension.\n\nPlease use the issue tracker on the homepage to report bugs and/or file feature requests, this makes tracking easier for me. Thanks!\n\nSee the included CHANGELOG.md for info about changes between different versions, or see it online: https://gitlab.com/todo.txt-gnome-shell-extension/todo-txt-gnome-shell-extension/-/blob/master/CHANGELOG.md", "link": "https://extensions.gnome.org/extension/570/todotxt/", "shell_version_map": {
     "38": {"version": "33", "sha256": "1b0482ibbsvi4bhkl6a8gr0kv63cnbgaim02ysi0plqg4bcirxk2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgIm5hbWUiOiAiVG9kby50eHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS90b2RvLnR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24vdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2RvLnR4dEBiYXJ0LmxpYmVydC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="},
@@ -343,7 +344,7 @@
     "42": {"version": "41", "sha256": "071m9z08bipyjfbvzyd00cdd0qrjz8ix6p2rjkqcjqgv102hldb7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9hdXRvaGlkZS1iYXR0ZXJ5IiwKICAidXVpZCI6ICJhdXRvaGlkZS1iYXR0ZXJ5QHNpdG5pay5ydSIsCiAgInZlcnNpb24iOiA0MQp9"},
     "43": {"version": "41", "sha256": "071m9z08bipyjfbvzyd00cdd0qrjz8ix6p2rjkqcjqgv102hldb7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9hdXRvaGlkZS1iYXR0ZXJ5IiwKICAidXVpZCI6ICJhdXRvaGlkZS1iYXR0ZXJ5QHNpdG5pay5ydSIsCiAgInZlcnNpb24iOiA0MQp9"},
     "44": {"version": "41", "sha256": "071m9z08bipyjfbvzyd00cdd0qrjz8ix6p2rjkqcjqgv102hldb7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9hdXRvaGlkZS1iYXR0ZXJ5IiwKICAidXVpZCI6ICJhdXRvaGlkZS1iYXR0ZXJ5QHNpdG5pay5ydSIsCiAgInZlcnNpb24iOiA0MQp9"},
-    "45": {"version": "45", "sha256": "0kb47vx9nnbkkbcwgs6l9y21wlh1a3030kshwb6xrhy2iy390p0j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImFpIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImF1dG9oaWRlLWJhdHRlcnkiLAogICJuYW1lIjogIkF1dG9oaWRlIEJhdHRlcnkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXV0b2hpZGUtYmF0dGVyeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9hdXRvaGlkZS1iYXR0ZXJ5IiwKICAidXVpZCI6ICJhdXRvaGlkZS1iYXR0ZXJ5QHNpdG5pay5ydSIsCiAgInZlcnNpb24iOiA0NQp9"}
+    "45": {"version": "46", "sha256": "19rhp40wdskf513ki5sm16pa1ka7fhcqsxk1gq4ngsfirbfc8lh1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImFpIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImF1dG9oaWRlLWJhdHRlcnkiLAogICJuYW1lIjogIkF1dG9oaWRlIEJhdHRlcnkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXV0b2hpZGUtYmF0dGVyeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWkvYXV0b2hpZGUtYmF0dGVyeSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtYmF0dGVyeUBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogNDYKfQ=="}
   }}
 , {"uuid": "launch-new-instance@gnome-shell-extensions.gcampax.github.com", "name": "Launch new instance", "pname": "launch-new-instance", "description": "Always launch a new instance when clicking in the dash or the application view.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/600/launch-new-instance/", "shell_version_map": {
     "38": {"version": "29", "sha256": "0qb1ajjwm076zxsd314n7f5vl72ih7j4h9y84bqwb9cxa53mp4g4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJMYXVuY2ggbmV3IGluc3RhbmNlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsYXVuY2gtbmV3LWluc3RhbmNlQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI5Cn0="},
@@ -586,6 +587,14 @@
     "38": {"version": "20", "sha256": "15n816y34qlc7va72q75ngzw1my3n5j7xhg9a6dc0g8q4dd0g2r9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1haWwgaW5kaWNhdG9yIChHTWFpbCwgSU1BUCwgUE9QKSBmb3IgR05PTUUuXG5cblBsZWFzZSBub3RlIHRoYXQgdGhpcyBleHRlbnNpb24gcmVxdWlyZXMgdGhlIG1haWxuYWcgZGFlbW9uLlxuSW5zdGFsbCBpdCBmcm9tIHlvdXIgZGlzdHJvcyBwYWNrYWdlIHJlcG9zaXRvcmllcyBvciBnZXQgaXQgaGVyZTpcbmh0dHBzOi8vZ2l0aHViLmNvbS9wdWxiL21haWxuYWdcblxuUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoaXMgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGRvZXMgbm90IHN1cHBvcnQgYXZhdGFycyAoYXMgc2hvd24gaW4gdGhlIHNjcmVlbnNob3QpLlxuSWYgeW91IGxpa2UgdG8gaGF2ZSBhdmF0YXIgc3VwcG9ydCBpbnN0YWxsIHRoaXMgZXh0ZW5zaW9uIGZyb20geW91ciBkaXN0cm9zIHBhY2thZ2UgcmVwb3NpdG9yaWVzIG9yIGdldCBhIHBhY2thZ2UgZnJvbSBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbFxuXG5JTVBPUlRBTlQ6XG5JIGRvIG5vdCBnZXQgbm90aWZpY2F0aW9ucyBmb3IgdXNlciBjb21tZW50cy4gUGxlYXNlIGFsd2F5cyByZXBvcnQgYnVncyBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbC9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJtYWlsbmFnLWdub21lLXNoZWxsIiwKICAibmFtZSI6ICJNYWlsbmFnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1haWxuYWciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibWFpbG5hZ0BwdWxiLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="},
     "40": {"version": "21", "sha256": "060lmc6jacjv1p4a6n7c3l0kmfskq012pgrf2gar0kf49lqrp665", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1haWwgaW5kaWNhdG9yIChHTWFpbCwgSU1BUCwgUE9QKSBmb3IgR05PTUUuXG5cblBsZWFzZSBub3RlIHRoYXQgdGhpcyBleHRlbnNpb24gcmVxdWlyZXMgdGhlIG1haWxuYWcgZGFlbW9uLlxuSW5zdGFsbCBpdCBmcm9tIHlvdXIgZGlzdHJvcyBwYWNrYWdlIHJlcG9zaXRvcmllcyBvciBnZXQgaXQgaGVyZTpcbmh0dHBzOi8vZ2l0aHViLmNvbS9wdWxiL21haWxuYWdcblxuUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoaXMgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGRvZXMgbm90IHN1cHBvcnQgYXZhdGFycyAoYXMgc2hvd24gaW4gdGhlIHNjcmVlbnNob3QpLlxuSWYgeW91IGxpa2UgdG8gaGF2ZSBhdmF0YXIgc3VwcG9ydCBpbnN0YWxsIHRoaXMgZXh0ZW5zaW9uIGZyb20geW91ciBkaXN0cm9zIHBhY2thZ2UgcmVwb3NpdG9yaWVzIG9yIGdldCBhIHBhY2thZ2UgZnJvbSBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbFxuXG5JTVBPUlRBTlQ6XG5JIGRvIG5vdCBnZXQgbm90aWZpY2F0aW9ucyBmb3IgdXNlciBjb21tZW50cy4gUGxlYXNlIGFsd2F5cyByZXBvcnQgYnVncyBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbC9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJtYWlsbmFnLWdub21lLXNoZWxsIiwKICAibmFtZSI6ICJNYWlsbmFnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1haWxuYWciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm1haWxuYWdAcHVsYi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}
   }}
+, {"uuid": "workspace-isolated-dash@n-yuki", "name": "Workspace Isolated Dash", "pname": "workspace-isolated-dash", "description": "Isolate workspaces, making the Overview and App Switcher look and behave as if the active workspace is the only workspace (except the workspace switcher).\nThis means it will only show an app icon in the dash if the application has a window on the active workspace (unless they are favourited), activating an application will try open a new window if there are no existing windows on the active workspace, and the overview will only display app icons as 'running' if the application has a window on the active workspace.", "link": "https://extensions.gnome.org/extension/887/workspace-isolated-dash/", "shell_version_map": {
+    "38": {"version": "17", "sha256": "0n50lq6fmziamzyxbamwbq2mykl0ni86pkqmjhmwsssiavdr4w5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzb2xhdGUgd29ya3NwYWNlcywgbWFraW5nIHRoZSBPdmVydmlldyBhbmQgQXBwIFN3aXRjaGVyIGxvb2sgYW5kIGJlaGF2ZSBhcyBpZiB0aGUgYWN0aXZlIHdvcmtzcGFjZSBpcyB0aGUgb25seSB3b3Jrc3BhY2UgKGV4Y2VwdCB0aGUgd29ya3NwYWNlIHN3aXRjaGVyKS5cblRoaXMgbWVhbnMgaXQgd2lsbCBvbmx5IHNob3cgYW4gYXBwIGljb24gaW4gdGhlIGRhc2ggaWYgdGhlIGFwcGxpY2F0aW9uIGhhcyBhIHdpbmRvdyBvbiB0aGUgYWN0aXZlIHdvcmtzcGFjZSAodW5sZXNzIHRoZXkgYXJlIGZhdm91cml0ZWQpLCBhY3RpdmF0aW5nIGFuIGFwcGxpY2F0aW9uIHdpbGwgdHJ5IG9wZW4gYSBuZXcgd2luZG93IGlmIHRoZXJlIGFyZSBubyBleGlzdGluZyB3aW5kb3dzIG9uIHRoZSBhY3RpdmUgd29ya3NwYWNlLCBhbmQgdGhlIG92ZXJ2aWV3IHdpbGwgb25seSBkaXNwbGF5IGFwcCBpY29ucyBhcyAncnVubmluZycgaWYgdGhlIGFwcGxpY2F0aW9uIGhhcyBhIHdpbmRvdyBvbiB0aGUgYWN0aXZlIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBJc29sYXRlZCBEYXNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm4teXVraS53b3Jrc3BhY2UtaXNvbGF0ZWQtZGFzaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTi1ZdWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi13b3Jrc3BhY2UtaXNvbGF0ZWQtZGFzaCIsCiAgInV1aWQiOiAid29ya3NwYWNlLWlzb2xhdGVkLWRhc2hAbi15dWtpIiwKICAidmVyc2lvbiI6IDE3Cn0="},
+    "40": {"version": "17", "sha256": "0n50lq6fmziamzyxbamwbq2mykl0ni86pkqmjhmwsssiavdr4w5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzb2xhdGUgd29ya3NwYWNlcywgbWFraW5nIHRoZSBPdmVydmlldyBhbmQgQXBwIFN3aXRjaGVyIGxvb2sgYW5kIGJlaGF2ZSBhcyBpZiB0aGUgYWN0aXZlIHdvcmtzcGFjZSBpcyB0aGUgb25seSB3b3Jrc3BhY2UgKGV4Y2VwdCB0aGUgd29ya3NwYWNlIHN3aXRjaGVyKS5cblRoaXMgbWVhbnMgaXQgd2lsbCBvbmx5IHNob3cgYW4gYXBwIGljb24gaW4gdGhlIGRhc2ggaWYgdGhlIGFwcGxpY2F0aW9uIGhhcyBhIHdpbmRvdyBvbiB0aGUgYWN0aXZlIHdvcmtzcGFjZSAodW5sZXNzIHRoZXkgYXJlIGZhdm91cml0ZWQpLCBhY3RpdmF0aW5nIGFuIGFwcGxpY2F0aW9uIHdpbGwgdHJ5IG9wZW4gYSBuZXcgd2luZG93IGlmIHRoZXJlIGFyZSBubyBleGlzdGluZyB3aW5kb3dzIG9uIHRoZSBhY3RpdmUgd29ya3NwYWNlLCBhbmQgdGhlIG92ZXJ2aWV3IHdpbGwgb25seSBkaXNwbGF5IGFwcCBpY29ucyBhcyAncnVubmluZycgaWYgdGhlIGFwcGxpY2F0aW9uIGhhcyBhIHdpbmRvdyBvbiB0aGUgYWN0aXZlIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBJc29sYXRlZCBEYXNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm4teXVraS53b3Jrc3BhY2UtaXNvbGF0ZWQtZGFzaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTi1ZdWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi13b3Jrc3BhY2UtaXNvbGF0ZWQtZGFzaCIsCiAgInV1aWQiOiAid29ya3NwYWNlLWlzb2xhdGVkLWRhc2hAbi15dWtpIiwKICAidmVyc2lvbiI6IDE3Cn0="},
+    "41": {"version": "17", "sha256": "0n50lq6fmziamzyxbamwbq2mykl0ni86pkqmjhmwsssiavdr4w5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzb2xhdGUgd29ya3NwYWNlcywgbWFraW5nIHRoZSBPdmVydmlldyBhbmQgQXBwIFN3aXRjaGVyIGxvb2sgYW5kIGJlaGF2ZSBhcyBpZiB0aGUgYWN0aXZlIHdvcmtzcGFjZSBpcyB0aGUgb25seSB3b3Jrc3BhY2UgKGV4Y2VwdCB0aGUgd29ya3NwYWNlIHN3aXRjaGVyKS5cblRoaXMgbWVhbnMgaXQgd2lsbCBvbmx5IHNob3cgYW4gYXBwIGljb24gaW4gdGhlIGRhc2ggaWYgdGhlIGFwcGxpY2F0aW9uIGhhcyBhIHdpbmRvdyBvbiB0aGUgYWN0aXZlIHdvcmtzcGFjZSAodW5sZXNzIHRoZXkgYXJlIGZhdm91cml0ZWQpLCBhY3RpdmF0aW5nIGFuIGFwcGxpY2F0aW9uIHdpbGwgdHJ5IG9wZW4gYSBuZXcgd2luZG93IGlmIHRoZXJlIGFyZSBubyBleGlzdGluZyB3aW5kb3dzIG9uIHRoZSBhY3RpdmUgd29ya3NwYWNlLCBhbmQgdGhlIG92ZXJ2aWV3IHdpbGwgb25seSBkaXNwbGF5IGFwcCBpY29ucyBhcyAncnVubmluZycgaWYgdGhlIGFwcGxpY2F0aW9uIGhhcyBhIHdpbmRvdyBvbiB0aGUgYWN0aXZlIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBJc29sYXRlZCBEYXNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm4teXVraS53b3Jrc3BhY2UtaXNvbGF0ZWQtZGFzaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTi1ZdWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi13b3Jrc3BhY2UtaXNvbGF0ZWQtZGFzaCIsCiAgInV1aWQiOiAid29ya3NwYWNlLWlzb2xhdGVkLWRhc2hAbi15dWtpIiwKICAidmVyc2lvbiI6IDE3Cn0="},
+    "42": {"version": "17", "sha256": "0n50lq6fmziamzyxbamwbq2mykl0ni86pkqmjhmwsssiavdr4w5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzb2xhdGUgd29ya3NwYWNlcywgbWFraW5nIHRoZSBPdmVydmlldyBhbmQgQXBwIFN3aXRjaGVyIGxvb2sgYW5kIGJlaGF2ZSBhcyBpZiB0aGUgYWN0aXZlIHdvcmtzcGFjZSBpcyB0aGUgb25seSB3b3Jrc3BhY2UgKGV4Y2VwdCB0aGUgd29ya3NwYWNlIHN3aXRjaGVyKS5cblRoaXMgbWVhbnMgaXQgd2lsbCBvbmx5IHNob3cgYW4gYXBwIGljb24gaW4gdGhlIGRhc2ggaWYgdGhlIGFwcGxpY2F0aW9uIGhhcyBhIHdpbmRvdyBvbiB0aGUgYWN0aXZlIHdvcmtzcGFjZSAodW5sZXNzIHRoZXkgYXJlIGZhdm91cml0ZWQpLCBhY3RpdmF0aW5nIGFuIGFwcGxpY2F0aW9uIHdpbGwgdHJ5IG9wZW4gYSBuZXcgd2luZG93IGlmIHRoZXJlIGFyZSBubyBleGlzdGluZyB3aW5kb3dzIG9uIHRoZSBhY3RpdmUgd29ya3NwYWNlLCBhbmQgdGhlIG92ZXJ2aWV3IHdpbGwgb25seSBkaXNwbGF5IGFwcCBpY29ucyBhcyAncnVubmluZycgaWYgdGhlIGFwcGxpY2F0aW9uIGhhcyBhIHdpbmRvdyBvbiB0aGUgYWN0aXZlIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBJc29sYXRlZCBEYXNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm4teXVraS53b3Jrc3BhY2UtaXNvbGF0ZWQtZGFzaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTi1ZdWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi13b3Jrc3BhY2UtaXNvbGF0ZWQtZGFzaCIsCiAgInV1aWQiOiAid29ya3NwYWNlLWlzb2xhdGVkLWRhc2hAbi15dWtpIiwKICAidmVyc2lvbiI6IDE3Cn0="},
+    "43": {"version": "17", "sha256": "0n50lq6fmziamzyxbamwbq2mykl0ni86pkqmjhmwsssiavdr4w5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzb2xhdGUgd29ya3NwYWNlcywgbWFraW5nIHRoZSBPdmVydmlldyBhbmQgQXBwIFN3aXRjaGVyIGxvb2sgYW5kIGJlaGF2ZSBhcyBpZiB0aGUgYWN0aXZlIHdvcmtzcGFjZSBpcyB0aGUgb25seSB3b3Jrc3BhY2UgKGV4Y2VwdCB0aGUgd29ya3NwYWNlIHN3aXRjaGVyKS5cblRoaXMgbWVhbnMgaXQgd2lsbCBvbmx5IHNob3cgYW4gYXBwIGljb24gaW4gdGhlIGRhc2ggaWYgdGhlIGFwcGxpY2F0aW9uIGhhcyBhIHdpbmRvdyBvbiB0aGUgYWN0aXZlIHdvcmtzcGFjZSAodW5sZXNzIHRoZXkgYXJlIGZhdm91cml0ZWQpLCBhY3RpdmF0aW5nIGFuIGFwcGxpY2F0aW9uIHdpbGwgdHJ5IG9wZW4gYSBuZXcgd2luZG93IGlmIHRoZXJlIGFyZSBubyBleGlzdGluZyB3aW5kb3dzIG9uIHRoZSBhY3RpdmUgd29ya3NwYWNlLCBhbmQgdGhlIG92ZXJ2aWV3IHdpbGwgb25seSBkaXNwbGF5IGFwcCBpY29ucyBhcyAncnVubmluZycgaWYgdGhlIGFwcGxpY2F0aW9uIGhhcyBhIHdpbmRvdyBvbiB0aGUgYWN0aXZlIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBJc29sYXRlZCBEYXNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm4teXVraS53b3Jrc3BhY2UtaXNvbGF0ZWQtZGFzaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTi1ZdWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi13b3Jrc3BhY2UtaXNvbGF0ZWQtZGFzaCIsCiAgInV1aWQiOiAid29ya3NwYWNlLWlzb2xhdGVkLWRhc2hAbi15dWtpIiwKICAidmVyc2lvbiI6IDE3Cn0="},
+    "44": {"version": "17", "sha256": "0n50lq6fmziamzyxbamwbq2mykl0ni86pkqmjhmwsssiavdr4w5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzb2xhdGUgd29ya3NwYWNlcywgbWFraW5nIHRoZSBPdmVydmlldyBhbmQgQXBwIFN3aXRjaGVyIGxvb2sgYW5kIGJlaGF2ZSBhcyBpZiB0aGUgYWN0aXZlIHdvcmtzcGFjZSBpcyB0aGUgb25seSB3b3Jrc3BhY2UgKGV4Y2VwdCB0aGUgd29ya3NwYWNlIHN3aXRjaGVyKS5cblRoaXMgbWVhbnMgaXQgd2lsbCBvbmx5IHNob3cgYW4gYXBwIGljb24gaW4gdGhlIGRhc2ggaWYgdGhlIGFwcGxpY2F0aW9uIGhhcyBhIHdpbmRvdyBvbiB0aGUgYWN0aXZlIHdvcmtzcGFjZSAodW5sZXNzIHRoZXkgYXJlIGZhdm91cml0ZWQpLCBhY3RpdmF0aW5nIGFuIGFwcGxpY2F0aW9uIHdpbGwgdHJ5IG9wZW4gYSBuZXcgd2luZG93IGlmIHRoZXJlIGFyZSBubyBleGlzdGluZyB3aW5kb3dzIG9uIHRoZSBhY3RpdmUgd29ya3NwYWNlLCBhbmQgdGhlIG92ZXJ2aWV3IHdpbGwgb25seSBkaXNwbGF5IGFwcCBpY29ucyBhcyAncnVubmluZycgaWYgdGhlIGFwcGxpY2F0aW9uIGhhcyBhIHdpbmRvdyBvbiB0aGUgYWN0aXZlIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBJc29sYXRlZCBEYXNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm4teXVraS53b3Jrc3BhY2UtaXNvbGF0ZWQtZGFzaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTi1ZdWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi13b3Jrc3BhY2UtaXNvbGF0ZWQtZGFzaCIsCiAgInV1aWQiOiAid29ya3NwYWNlLWlzb2xhdGVkLWRhc2hAbi15dWtpIiwKICAidmVyc2lvbiI6IDE3Cn0="}
+  }}
 , {"uuid": "mmod-panel@mmogp.com", "name": "MMOD Panel", "pname": "mmod-panel", "description": "Upgrades the Topbar in Gnome3, creating a customizable panel and providing options for fine-tuning your Desktop Experience.\n\nFeatures include:\nâ–¸ Set comfort levels to provide theme support and fine-tune the overall look and feel of the panel.\nâ–¸ Set the location/position of the panel (bottom by default).\nâ–¸ Add a button to the panel in place of the activities link, using an icon of your preference.\nâ–¸ Auto-hide the panel when not active/in-focus (makes use of pressure/gesture for showing the panel).\nâ–¸ Display and manage your favorites/running apps directly on the panel.\nâ–¸ Move the date menu to the aggregate/tray area.\nâ–¸ Access and manage your extension preferences directly from the aggregate menu.\nâ–¸ Customize behavior of the overview and panel(hot-corners/animations/effects) to suit your preferences.\nâ–¸ More to come soon!\n\nThis project is loosely based on the Panel Settings extension:\nhttps://github.com/eddiefullmetal/gnome-shell-extensions/tree/master/panelSettings%40eddiefullmetal.gr\n\nSadly, Panel Settings has not seen any maintenance in years, though this is why I decided to create MMOD Panel.\n\nI also took inspiration from the following Gnome extensions: System-Monitor, Taskbar, and DashToDock.\n\nFor those of you who are wondering, the theme used in the screen shot is the Zukitwo-Dark-Shell Shell Theme; \neverything else is default Gnome on Debian Buster. However, the author of the aforementioned shell theme has \nchanged the name for various reasons to Ciliora-Prima-Shell - which can be found here:\n\n  http://gnome-look.org/content/show.php?content=165096\n\nFor Gnome-Shell: 3.10, 3.12, 3.12.2, 3.14, 3.14.4, 3.16, 3.16.2, 3.18, 3.20, 3.22, 3.24, 3.26, 3.26.2, 3.28, 3.30, 3.32, 3.34, 3.35, 3.35.91, 3.36, 3.36.3, 3.36.4, 3.36.6, 3.38, 3.38.2, 40.0, 40.5, 41.0 (since version 12.0.0) f\nRik <rik@mmod.co>\n\nGerman Translation(s) for MMOD-Panel courtesy of Jonius Zeidler <jonatan_zeidler@gmx.de>\n\nSource Repository: https://gitlab.com/mmod/mmod-panel/\n", "link": "https://extensions.gnome.org/extension/898/mmod-panel/", "shell_version_map": {
     "38": {"version": "12", "sha256": "00sr6dcn7z5a8p9zq2xvvdac828m8f0akz3skb9sb9v8jay0m0hr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZ3JhZGVzIHRoZSBUb3BiYXIgaW4gR25vbWUzLCBjcmVhdGluZyBhIGN1c3RvbWl6YWJsZSBwYW5lbCBhbmQgcHJvdmlkaW5nIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nIHlvdXIgRGVza3RvcCBFeHBlcmllbmNlLlxuXG5GZWF0dXJlcyBpbmNsdWRlOlxuXHUyNWI4IFNldCBjb21mb3J0IGxldmVscyB0byBwcm92aWRlIHRoZW1lIHN1cHBvcnQgYW5kIGZpbmUtdHVuZSB0aGUgb3ZlcmFsbCBsb29rIGFuZCBmZWVsIG9mIHRoZSBwYW5lbC5cblx1MjViOCBTZXQgdGhlIGxvY2F0aW9uL3Bvc2l0aW9uIG9mIHRoZSBwYW5lbCAoYm90dG9tIGJ5IGRlZmF1bHQpLlxuXHUyNWI4IEFkZCBhIGJ1dHRvbiB0byB0aGUgcGFuZWwgaW4gcGxhY2Ugb2YgdGhlIGFjdGl2aXRpZXMgbGluaywgdXNpbmcgYW4gaWNvbiBvZiB5b3VyIHByZWZlcmVuY2UuXG5cdTI1YjggQXV0by1oaWRlIHRoZSBwYW5lbCB3aGVuIG5vdCBhY3RpdmUvaW4tZm9jdXMgKG1ha2VzIHVzZSBvZiBwcmVzc3VyZS9nZXN0dXJlIGZvciBzaG93aW5nIHRoZSBwYW5lbCkuXG5cdTI1YjggRGlzcGxheSBhbmQgbWFuYWdlIHlvdXIgZmF2b3JpdGVzL3J1bm5pbmcgYXBwcyBkaXJlY3RseSBvbiB0aGUgcGFuZWwuXG5cdTI1YjggTW92ZSB0aGUgZGF0ZSBtZW51IHRvIHRoZSBhZ2dyZWdhdGUvdHJheSBhcmVhLlxuXHUyNWI4IEFjY2VzcyBhbmQgbWFuYWdlIHlvdXIgZXh0ZW5zaW9uIHByZWZlcmVuY2VzIGRpcmVjdGx5IGZyb20gdGhlIGFnZ3JlZ2F0ZSBtZW51LlxuXHUyNWI4IEN1c3RvbWl6ZSBiZWhhdmlvciBvZiB0aGUgb3ZlcnZpZXcgYW5kIHBhbmVsKGhvdC1jb3JuZXJzL2FuaW1hdGlvbnMvZWZmZWN0cykgdG8gc3VpdCB5b3VyIHByZWZlcmVuY2VzLlxuXHUyNWI4IE1vcmUgdG8gY29tZSBzb29uIVxuXG5UaGlzIHByb2plY3QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGUgUGFuZWwgU2V0dGluZ3MgZXh0ZW5zaW9uOlxuaHR0cHM6Ly9naXRodWIuY29tL2VkZGllZnVsbG1ldGFsL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdHJlZS9tYXN0ZXIvcGFuZWxTZXR0aW5ncyU0MGVkZGllZnVsbG1ldGFsLmdyXG5cblNhZGx5LCBQYW5lbCBTZXR0aW5ncyBoYXMgbm90IHNlZW4gYW55IG1haW50ZW5hbmNlIGluIHllYXJzLCB0aG91Z2ggdGhpcyBpcyB3aHkgSSBkZWNpZGVkIHRvIGNyZWF0ZSBNTU9EIFBhbmVsLlxuXG5JIGFsc28gdG9vayBpbnNwaXJhdGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgR25vbWUgZXh0ZW5zaW9uczogU3lzdGVtLU1vbml0b3IsIFRhc2tiYXIsIGFuZCBEYXNoVG9Eb2NrLlxuXG5Gb3IgdGhvc2Ugb2YgeW91IHdobyBhcmUgd29uZGVyaW5nLCB0aGUgdGhlbWUgdXNlZCBpbiB0aGUgc2NyZWVuIHNob3QgaXMgdGhlIFp1a2l0d28tRGFyay1TaGVsbCBTaGVsbCBUaGVtZTsgXG5ldmVyeXRoaW5nIGVsc2UgaXMgZGVmYXVsdCBHbm9tZSBvbiBEZWJpYW4gQnVzdGVyLiBIb3dldmVyLCB0aGUgYXV0aG9yIG9mIHRoZSBhZm9yZW1lbnRpb25lZCBzaGVsbCB0aGVtZSBoYXMgXG5jaGFuZ2VkIHRoZSBuYW1lIGZvciB2YXJpb3VzIHJlYXNvbnMgdG8gQ2lsaW9yYS1QcmltYS1TaGVsbCAtIHdoaWNoIGNhbiBiZSBmb3VuZCBoZXJlOlxuXG4gIGh0dHA6Ly9nbm9tZS1sb29rLm9yZy9jb250ZW50L3Nob3cucGhwP2NvbnRlbnQ9MTY1MDk2XG5cbkZvciBHbm9tZS1TaGVsbDogMy4xMCwgMy4xMiwgMy4xMi4yLCAzLjE0LCAzLjE0LjQsIDMuMTYsIDMuMTYuMiwgMy4xOCwgMy4yMCwgMy4yMiwgMy4yNCwgMy4yNiwgMy4yNi4yLCAzLjI4LCAzLjMwLCAzLjMyLCAzLjM0LCAzLjM1LCAzLjM1LjkxLCAzLjM2LCAzLjM2LjMsIDMuMzYuNCwgMy4zNi42LCAzLjM4LCAzLjM4LjIsIDQwLjAsIDQwLjUsIDQxLjAgKHNpbmNlIHZlcnNpb24gMTIuMC4wKSBmXG5SaWsgPHJpa0BtbW9kLmNvPlxuXG5HZXJtYW4gVHJhbnNsYXRpb24ocykgZm9yIE1NT0QtUGFuZWwgY291cnRlc3kgb2YgSm9uaXVzIFplaWRsZXIgPGpvbmF0YW5femVpZGxlckBnbXguZGU+XG5cblNvdXJjZSBSZXBvc2l0b3J5OiBodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsL1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibW1vZC1wYW5lbCIsCiAgIm5hbWUiOiAiTU1PRCBQYW5lbCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJyaWtAbW1vZC5jbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi4zIiwKICAgICIzLjM2LjQiLAogICAgIjMuMzYuNiIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0MC41IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsLyIsCiAgInV1aWQiOiAibW1vZC1wYW5lbEBtbW9ncC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
     "40": {"version": "12", "sha256": "00sr6dcn7z5a8p9zq2xvvdac828m8f0akz3skb9sb9v8jay0m0hr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZ3JhZGVzIHRoZSBUb3BiYXIgaW4gR25vbWUzLCBjcmVhdGluZyBhIGN1c3RvbWl6YWJsZSBwYW5lbCBhbmQgcHJvdmlkaW5nIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nIHlvdXIgRGVza3RvcCBFeHBlcmllbmNlLlxuXG5GZWF0dXJlcyBpbmNsdWRlOlxuXHUyNWI4IFNldCBjb21mb3J0IGxldmVscyB0byBwcm92aWRlIHRoZW1lIHN1cHBvcnQgYW5kIGZpbmUtdHVuZSB0aGUgb3ZlcmFsbCBsb29rIGFuZCBmZWVsIG9mIHRoZSBwYW5lbC5cblx1MjViOCBTZXQgdGhlIGxvY2F0aW9uL3Bvc2l0aW9uIG9mIHRoZSBwYW5lbCAoYm90dG9tIGJ5IGRlZmF1bHQpLlxuXHUyNWI4IEFkZCBhIGJ1dHRvbiB0byB0aGUgcGFuZWwgaW4gcGxhY2Ugb2YgdGhlIGFjdGl2aXRpZXMgbGluaywgdXNpbmcgYW4gaWNvbiBvZiB5b3VyIHByZWZlcmVuY2UuXG5cdTI1YjggQXV0by1oaWRlIHRoZSBwYW5lbCB3aGVuIG5vdCBhY3RpdmUvaW4tZm9jdXMgKG1ha2VzIHVzZSBvZiBwcmVzc3VyZS9nZXN0dXJlIGZvciBzaG93aW5nIHRoZSBwYW5lbCkuXG5cdTI1YjggRGlzcGxheSBhbmQgbWFuYWdlIHlvdXIgZmF2b3JpdGVzL3J1bm5pbmcgYXBwcyBkaXJlY3RseSBvbiB0aGUgcGFuZWwuXG5cdTI1YjggTW92ZSB0aGUgZGF0ZSBtZW51IHRvIHRoZSBhZ2dyZWdhdGUvdHJheSBhcmVhLlxuXHUyNWI4IEFjY2VzcyBhbmQgbWFuYWdlIHlvdXIgZXh0ZW5zaW9uIHByZWZlcmVuY2VzIGRpcmVjdGx5IGZyb20gdGhlIGFnZ3JlZ2F0ZSBtZW51LlxuXHUyNWI4IEN1c3RvbWl6ZSBiZWhhdmlvciBvZiB0aGUgb3ZlcnZpZXcgYW5kIHBhbmVsKGhvdC1jb3JuZXJzL2FuaW1hdGlvbnMvZWZmZWN0cykgdG8gc3VpdCB5b3VyIHByZWZlcmVuY2VzLlxuXHUyNWI4IE1vcmUgdG8gY29tZSBzb29uIVxuXG5UaGlzIHByb2plY3QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGUgUGFuZWwgU2V0dGluZ3MgZXh0ZW5zaW9uOlxuaHR0cHM6Ly9naXRodWIuY29tL2VkZGllZnVsbG1ldGFsL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdHJlZS9tYXN0ZXIvcGFuZWxTZXR0aW5ncyU0MGVkZGllZnVsbG1ldGFsLmdyXG5cblNhZGx5LCBQYW5lbCBTZXR0aW5ncyBoYXMgbm90IHNlZW4gYW55IG1haW50ZW5hbmNlIGluIHllYXJzLCB0aG91Z2ggdGhpcyBpcyB3aHkgSSBkZWNpZGVkIHRvIGNyZWF0ZSBNTU9EIFBhbmVsLlxuXG5JIGFsc28gdG9vayBpbnNwaXJhdGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgR25vbWUgZXh0ZW5zaW9uczogU3lzdGVtLU1vbml0b3IsIFRhc2tiYXIsIGFuZCBEYXNoVG9Eb2NrLlxuXG5Gb3IgdGhvc2Ugb2YgeW91IHdobyBhcmUgd29uZGVyaW5nLCB0aGUgdGhlbWUgdXNlZCBpbiB0aGUgc2NyZWVuIHNob3QgaXMgdGhlIFp1a2l0d28tRGFyay1TaGVsbCBTaGVsbCBUaGVtZTsgXG5ldmVyeXRoaW5nIGVsc2UgaXMgZGVmYXVsdCBHbm9tZSBvbiBEZWJpYW4gQnVzdGVyLiBIb3dldmVyLCB0aGUgYXV0aG9yIG9mIHRoZSBhZm9yZW1lbnRpb25lZCBzaGVsbCB0aGVtZSBoYXMgXG5jaGFuZ2VkIHRoZSBuYW1lIGZvciB2YXJpb3VzIHJlYXNvbnMgdG8gQ2lsaW9yYS1QcmltYS1TaGVsbCAtIHdoaWNoIGNhbiBiZSBmb3VuZCBoZXJlOlxuXG4gIGh0dHA6Ly9nbm9tZS1sb29rLm9yZy9jb250ZW50L3Nob3cucGhwP2NvbnRlbnQ9MTY1MDk2XG5cbkZvciBHbm9tZS1TaGVsbDogMy4xMCwgMy4xMiwgMy4xMi4yLCAzLjE0LCAzLjE0LjQsIDMuMTYsIDMuMTYuMiwgMy4xOCwgMy4yMCwgMy4yMiwgMy4yNCwgMy4yNiwgMy4yNi4yLCAzLjI4LCAzLjMwLCAzLjMyLCAzLjM0LCAzLjM1LCAzLjM1LjkxLCAzLjM2LCAzLjM2LjMsIDMuMzYuNCwgMy4zNi42LCAzLjM4LCAzLjM4LjIsIDQwLjAsIDQwLjUsIDQxLjAgKHNpbmNlIHZlcnNpb24gMTIuMC4wKSBmXG5SaWsgPHJpa0BtbW9kLmNvPlxuXG5HZXJtYW4gVHJhbnNsYXRpb24ocykgZm9yIE1NT0QtUGFuZWwgY291cnRlc3kgb2YgSm9uaXVzIFplaWRsZXIgPGpvbmF0YW5femVpZGxlckBnbXguZGU+XG5cblNvdXJjZSBSZXBvc2l0b3J5OiBodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsL1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibW1vZC1wYW5lbCIsCiAgIm5hbWUiOiAiTU1PRCBQYW5lbCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJyaWtAbW1vZC5jbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi4zIiwKICAgICIzLjM2LjQiLAogICAgIjMuMzYuNiIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0MC41IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsLyIsCiAgInV1aWQiOiAibW1vZC1wYW5lbEBtbW9ncC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
@@ -689,7 +698,7 @@
     "42": {"version": "17", "sha256": "18dx4zwj3ldcwqw3z1f8x4z2q9g7vp53cl7v6lw4dvz9kv47swbi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDE3Cn0="},
     "43": {"version": "17", "sha256": "18dx4zwj3ldcwqw3z1f8x4z2q9g7vp53cl7v6lw4dvz9kv47swbi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDE3Cn0="},
     "44": {"version": "17", "sha256": "18dx4zwj3ldcwqw3z1f8x4z2q9g7vp53cl7v6lw4dvz9kv47swbi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDE3Cn0="},
-    "45": {"version": "20", "sha256": "1kvh8f6xfx4wpinkcshwsvcwp491ikj05bcvabcny2z8y7im3iw7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zbmVldHNoZXIvS2V5Ym9hcmQtTW9kaWZpZXJzLVN0YXR1cyIsCiAgInV1aWQiOiAia2V5Ym9hcmRfbW9kaWZpZXJzX3N0YXR1c0BzbmVldHNoZXIiLAogICJ2ZXJzaW9uIjogMjAKfQ=="}
+    "45": {"version": "21", "sha256": "0qfq1s2i0c6h8n7f2n8ir5aa6xdp90afkmaspnpsxvlsm0qnx8x1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDIxCn0="}
   }}
 , {"uuid": "thinkpadthermal@moonlight.drive.vk.gmail.com", "name": "ThinkPad Thermal", "pname": "thinkpad-thermal", "description": "ThinkPad thermal monitor, display ThinkPad thermal and fan status using /proc/acpi/ibm/thermal and /proc/acpi/ibm/fan.", "link": "https://extensions.gnome.org/extension/986/thinkpad-thermal/", "shell_version_map": {
     "42": {"version": "17", "sha256": "0q8ah8ms6iv24fyl684hbivbnw5d9k4as991zng9k9ywsjlpp40d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaW5rUGFkIHRoZXJtYWwgbW9uaXRvciwgZGlzcGxheSBUaGlua1BhZCB0aGVybWFsIGFuZCBmYW4gc3RhdHVzIHVzaW5nIC9wcm9jL2FjcGkvaWJtL3RoZXJtYWwgYW5kIC9wcm9jL2FjcGkvaWJtL2Zhbi4iLAogICJuYW1lIjogIlRoaW5rUGFkIFRoZXJtYWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mbXVqYWtpdHovdGhpbmtwYWQtdGhlcm1hbCIsCiAgInV1aWQiOiAidGhpbmtwYWR0aGVybWFsQG1vb25saWdodC5kcml2ZS52ay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
@@ -763,13 +772,14 @@
     "43": {"version": "26", "sha256": "0qvhpajqnq7cbpkiwlaxp16r1amfv0kk4l98gcj5082vjpp2w9g7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2t3aGlzcGVyZXIiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlRhc2tXaGlzcGVyZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFza3doaXNwZXJlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy90YXNrd2hpc3BlcmVyIiwKICAidXVpZCI6ICJ0YXNrd2hpc3BlcmVyLWV4dGVuc2lvbkBpbmZpbmljb2RlLmRlIiwKICAidmVyc2lvbiI6IDI2Cn0="},
     "44": {"version": "26", "sha256": "0qvhpajqnq7cbpkiwlaxp16r1amfv0kk4l98gcj5082vjpp2w9g7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2t3aGlzcGVyZXIiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlRhc2tXaGlzcGVyZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFza3doaXNwZXJlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy90YXNrd2hpc3BlcmVyIiwKICAidXVpZCI6ICJ0YXNrd2hpc3BlcmVyLWV4dGVuc2lvbkBpbmZpbmljb2RlLmRlIiwKICAidmVyc2lvbiI6IDI2Cn0="}
   }}
-, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Fetch a random wallpaper from an online source and set it as a desktop background. \nThe desktop background can be updated periodically or manually.\n\nFeatures:\nMany different online sources with filters:\n        - Unsplash (https://unsplash.com/)\n        - Wallhaven (https://wallhaven.cc/)\n        - Reddit (https://reddit.com)\n        - Basically any JSON API/File (see Examples on GitHub)\nHistory of previous images\nSet lock screen image\nAutomatic renewal (Auto-Fetching)", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {
+, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Load new desktop wallpapers from various online sources with ease!\n\nFeatures:\nVarious configurable wallpaper sources\n--> Unsplash\n--> Wallhaven\n--> Reddit\n--> Basically any JSON API/File (Examples)\n----> Chromecast Images\n----> NASA Picture of the day\n----> Bing Picture of the day\n----> Google Earth View\n--> Local folders\n--> Static URLs\nMultiple sources to create a pool of sources\nHistory of previous images\n--> Save your favourite wallpaper\n--> Add images to a block list\nSet the lock screen background\nTimer based renewal (Auto-Fetching)\n--> Load a new wallpaper on startup\n--> Pause the timer when desired\nSupport for multiple monitors using third party tools\n--> Hydra Paper\n--> Superpaper\nExecute a custom command after every new wallpaper\n", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {
     "38": {"version": "22", "sha256": "1mnc7k1816r0q8c95y36ryzl9cni6zms5xm587wmdmy4xi92i8ic", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNC41IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDIyCn0="},
     "40": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "41": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "42": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "43": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
-    "44": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="}
+    "44": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
+    "45": {"version": "34", "sha256": "1k0g1yyw0vk5n6c9qfa955bv1s9zlvca013i1p6iq9xn7y5alkjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgbmV3IGRlc2t0b3Agd2FsbHBhcGVycyBmcm9tIHZhcmlvdXMgb25saW5lIHNvdXJjZXMgd2l0aCBlYXNlISIsCiAgImlzc3VlLXVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzL2lzc3VlcyIsCiAgIm5hbWUiOiAiUmFuZG9tIFdhbGxwYXBlciIsCiAgInNlbWFudGljLXZlcnNpb24iOiAiMy4wLjEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UuaWZsb3cucmFuZG9td2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDM0Cn0="}
   }}
 , {"uuid": "gse-haguichi-indicator@ztefn.github.com", "name": "Haguichi Indicator", "pname": "haguichi-indicator", "description": "Lets you control Haguichi directly from the system status area in GNOME Shell.", "link": "https://extensions.gnome.org/extension/1045/haguichi-indicator/", "shell_version_map": {
     "38": {"version": "23", "sha256": "0gffarks0z70gdiz8jlgivv2lzxbr0hwbljjhs1xbffx45rla3g5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAienRlZm4iCiAgfSwKICAibmFtZSI6ICJIYWd1aWNoaSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3p0ZWZuL2dzZS1oYWd1aWNoaS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImdzZS1oYWd1aWNoaS1pbmRpY2F0b3JAenRlZm4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
@@ -823,9 +833,9 @@
     "45": {"version": "19", "sha256": "1z583a2g6sdj1srkq3idzmdc7dvhddpd6ynw7z2kyy0rz4xkk3d6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFwaGFlbFJvY2hldC9hcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgInV1aWQiOiAiYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXBAUmFwaGFlbFJvY2hldCIsCiAgInZlcnNpb24iOiAxOQp9"}
   }}
 , {"uuid": "TwitchLive_Panel@extensions.maweki.de", "name": "TwitchLive Panel", "pname": "twitchlive-panel", "description": "A panel showing whether your favorite Twitch.tv streamers are streaming.\n\nCycles through the online streamers if multiples are configured. Click on the panel and then on streamer's name to launch the stream with a custom command (your browser or some other application).\n\nNeeds curl and mogrify to fully support streamer logos.", "link": "https://extensions.gnome.org/extension/1078/twitchlive-panel/", "shell_version_map": {
-    "40": {"version": "39", "sha256": "0asq0rvcwl9rqa4l4c4qsjybpm1p0lyj2p6cz75lqrp0rfgzsvfb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0d2l0Y2hsaXZlIiwKICAibmFtZSI6ICJUd2l0Y2hMaXZlIFBhbmVsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnR3aXRjaGxpdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzkKfQ=="},
-    "41": {"version": "39", "sha256": "0asq0rvcwl9rqa4l4c4qsjybpm1p0lyj2p6cz75lqrp0rfgzsvfb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0d2l0Y2hsaXZlIiwKICAibmFtZSI6ICJUd2l0Y2hMaXZlIFBhbmVsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnR3aXRjaGxpdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzkKfQ=="},
-    "42": {"version": "39", "sha256": "0asq0rvcwl9rqa4l4c4qsjybpm1p0lyj2p6cz75lqrp0rfgzsvfb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0d2l0Y2hsaXZlIiwKICAibmFtZSI6ICJUd2l0Y2hMaXZlIFBhbmVsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnR3aXRjaGxpdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzkKfQ=="},
+    "40": {"version": "44", "sha256": "0shgh7lb1h8cwzj1h6ia26dqk4yimx3zqb0vgz4sdak8h55x8486", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0d2l0Y2hsaXZlIiwKICAibmFtZSI6ICJUd2l0Y2hMaXZlIFBhbmVsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnR3aXRjaGxpdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogNDQKfQ=="},
+    "41": {"version": "44", "sha256": "0shgh7lb1h8cwzj1h6ia26dqk4yimx3zqb0vgz4sdak8h55x8486", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0d2l0Y2hsaXZlIiwKICAibmFtZSI6ICJUd2l0Y2hMaXZlIFBhbmVsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnR3aXRjaGxpdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogNDQKfQ=="},
+    "42": {"version": "44", "sha256": "0shgh7lb1h8cwzj1h6ia26dqk4yimx3zqb0vgz4sdak8h55x8486", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0d2l0Y2hsaXZlIiwKICAibmFtZSI6ICJUd2l0Y2hMaXZlIFBhbmVsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnR3aXRjaGxpdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogNDQKfQ=="},
     "43": {"version": "40", "sha256": "1sywzqy85dmv72iakvhpbpagj2vh6svgxjyx9amlc3a8ajhvws33", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0d2l0Y2hsaXZlIiwKICAibmFtZSI6ICJUd2l0Y2hMaXZlIFBhbmVsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnR3aXRjaGxpdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWF3ZWtpL3R3aXRjaGxpdmUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJUd2l0Y2hMaXZlX1BhbmVsQGV4dGVuc2lvbnMubWF3ZWtpLmRlIiwKICAidmVyc2lvbiI6IDQwCn0="},
     "44": {"version": "42", "sha256": "0r2bml13j0hc9r4cdwb9f6nfvj143wadc9n4n3fbdgypcb35a639", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0d2l0Y2hsaXZlIiwKICAibmFtZSI6ICJUd2l0Y2hMaXZlIFBhbmVsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnR3aXRjaGxpdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWF3ZWtpL3R3aXRjaGxpdmUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJUd2l0Y2hMaXZlX1BhbmVsQGV4dGVuc2lvbnMubWF3ZWtpLmRlIiwKICAidmVyc2lvbiI6IDQyCn0="},
     "45": {"version": "43", "sha256": "1022fvkqwfk0sz9nhval83aqjzk8k7zikc8adqqlrq4li09phhwn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0d2l0Y2hsaXZlIiwKICAibmFtZSI6ICJUd2l0Y2hMaXZlIFBhbmVsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnR3aXRjaGxpdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWF3ZWtpL3R3aXRjaGxpdmUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJUd2l0Y2hMaXZlX1BhbmVsQGV4dGVuc2lvbnMubWF3ZWtpLmRlIiwKICAidmVyc2lvbiI6IDQzCn0="}
@@ -943,7 +953,7 @@
     "42": {"version": "15", "sha256": "0bhq1ns7pbrdxkclg2q213hfy0633171zfj17jhxxv70qpkskpbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2hvd3MgYSBwb3AtdXAgb2YgdXNlZnVsIGtleWJvYXJkIHNob3J0Y3V0cyB3aGVuIEN0cmwgKyBBbHQgKyBTdXBlciArIFMgaXMgcHJlc3NlZCIsCiAgImdldHRleHQtZG9tYWluIjogIlNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiU2hvcnRjdXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3J0Y3V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcGFkZGF0cmFwcGVyL3Nob3J0Y3V0cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlNob3J0Y3V0c0BreWxlLmFpbXMuYWMuemEiLAogICJ2ZXJzaW9uIjogMTUKfQ=="},
     "43": {"version": "15", "sha256": "0bhq1ns7pbrdxkclg2q213hfy0633171zfj17jhxxv70qpkskpbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2hvd3MgYSBwb3AtdXAgb2YgdXNlZnVsIGtleWJvYXJkIHNob3J0Y3V0cyB3aGVuIEN0cmwgKyBBbHQgKyBTdXBlciArIFMgaXMgcHJlc3NlZCIsCiAgImdldHRleHQtZG9tYWluIjogIlNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiU2hvcnRjdXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3J0Y3V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcGFkZGF0cmFwcGVyL3Nob3J0Y3V0cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlNob3J0Y3V0c0BreWxlLmFpbXMuYWMuemEiLAogICJ2ZXJzaW9uIjogMTUKfQ=="},
     "44": {"version": "15", "sha256": "0bhq1ns7pbrdxkclg2q213hfy0633171zfj17jhxxv70qpkskpbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2hvd3MgYSBwb3AtdXAgb2YgdXNlZnVsIGtleWJvYXJkIHNob3J0Y3V0cyB3aGVuIEN0cmwgKyBBbHQgKyBTdXBlciArIFMgaXMgcHJlc3NlZCIsCiAgImdldHRleHQtZG9tYWluIjogIlNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiU2hvcnRjdXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3J0Y3V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcGFkZGF0cmFwcGVyL3Nob3J0Y3V0cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlNob3J0Y3V0c0BreWxlLmFpbXMuYWMuemEiLAogICJ2ZXJzaW9uIjogMTUKfQ=="},
-    "45": {"version": "24", "sha256": "0205rzr0gsv684m2mvkrnjjd3qpww5mxacc7mx2x0xqlbzl8mk8g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2hvd3MgYSBwb3AtdXAgb2YgdXNlZnVsIGtleWJvYXJkIHNob3J0Y3V0cyB3aGVuIEN0cmwgKyBBbHQgKyBTdXBlciArIFMgaXMgcHJlc3NlZCAoaG90a2V5IGNhbiBiZSBjaGFuZ2VkIGluIHNldHRpbmdzKSIsCiAgImdldHRleHQtZG9tYWluIjogIlNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiU2hvcnRjdXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3J0Y3V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9wYWRkYXRyYXBwZXIvc2hvcnRjdXRzLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2hvcnRjdXRzQGt5bGUuYWltcy5hYy56YSIsCiAgInZlcnNpb24iOiAyNCwKICAidmVyc2lvbi1uYW1lIjogIjQ1LjAiCn0="}
+    "45": {"version": "25", "sha256": "19db7wp7jrwyb7z7ghic4aa6nmk160h21gx9bgq7s119c8dyxpjq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2hvd3MgYSBwb3AtdXAgb2YgdXNlZnVsIGtleWJvYXJkIHNob3J0Y3V0cyB3aGVuIEN0cmwgKyBBbHQgKyBTdXBlciArIFMgaXMgcHJlc3NlZCAoaG90a2V5IGNhbiBiZSBjaGFuZ2VkIGluIHNldHRpbmdzKSIsCiAgImdldHRleHQtZG9tYWluIjogIlNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiU2hvcnRjdXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3J0Y3V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcGFkZGF0cmFwcGVyL3Nob3J0Y3V0cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlNob3J0Y3V0c0BreWxlLmFpbXMuYWMuemEiLAogICJ2ZXJzaW9uIjogMjUsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4wIgp9"}
   }}
 , {"uuid": "sensory-perception@HarlemSquirrel.github.io", "name": "Sensory Perception", "pname": "sensory-perception", "description": "Requires lm-sensors (or lm_sensors). Shows CPU temperature, disk temperature, video card temperature, voltage and fan RPM.", "link": "https://extensions.gnome.org/extension/1145/sensory-perception/", "shell_version_map": {
     "38": {"version": "13", "sha256": "16wc49khyk5arsis8kzpjgl6nl8gccc2y5sspq8rwnab22jnzwjh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcXVpcmVzIGxtLXNlbnNvcnMgKG9yIGxtX3NlbnNvcnMpLiBTaG93cyBDUFUgdGVtcGVyYXR1cmUsIGRpc2sgdGVtcGVyYXR1cmUsIHZpZGVvIGNhcmQgdGVtcGVyYXR1cmUsIHZvbHRhZ2UgYW5kIGZhbiBSUE0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2Vuc29yeS1wZXJjZXB0aW9uIiwKICAibmFtZSI6ICJTZW5zb3J5IFBlcmNlcHRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSGFybGVtU3F1aXJyZWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNlbnNvcnktcGVyY2VwdGlvbiIsCiAgInV1aWQiOiAic2Vuc29yeS1wZXJjZXB0aW9uQEhhcmxlbVNxdWlycmVsLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMwp9"},
@@ -1259,14 +1269,14 @@
 , {"uuid": "files-view@argonauta.framagit.org", "name": "Files View", "pname": "files-view", "description": "", "link": "https://extensions.gnome.org/extension/1395/files-view/", "shell_version_map": {
     "38": {"version": "11", "sha256": "0367kzrpzbx1b2l1m68n2pmazlsy4207a1anvyr2n1a4xpq3vwb0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiIsCiAgImdldHRleHQtZG9tYWluIjogImZpbGVzLXZpZXciLAogICJuYW1lIjogIkZpbGVzIFZpZXciLAogICJyZWNlbnRseS1vcGVuLXBlcnNpc3RlbnQtZmlsZW5hbWUiOiAicmVjZW50bHktb3Blbi1mb2xkZXJzLWZpbGVzLXZpZXctZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLmpzb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZmlsZXMtdmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJmaWxlcy12aWV3QGFyZ29uYXV0YS5mcmFtYWdpdC5vcmciLAogICJ2ZXJzaW9uIjogMTEKfQ=="}
   }}
-, {"uuid": "bluetooth-quick-connect@bjarosze.gmail.com", "name": "Bluetooth Quick Connect", "pname": "bluetooth-quick-connect", "description": "This extension allows paired Bluetooth devices to be connected and disconnected via the GNOME system menu, Shows battery status and more.\n", "link": "https://extensions.gnome.org/extension/1401/bluetooth-quick-connect/", "shell_version_map": {
+, {"uuid": "bluetooth-quick-connect@bjarosze.gmail.com", "name": "Bluetooth Quick Connect", "pname": "bluetooth-quick-connect", "description": "This extension allows paired Bluetooth devices to be connected and disconnected via the GNOME system menu, Shows battery status and more.", "link": "https://extensions.gnome.org/extension/1401/bluetooth-quick-connect/", "shell_version_map": {
     "38": {"version": "16", "sha256": "1fkx12xx1m8pchyfvq0vmyd21m79s9s0jw4ackqg1nqcpwyqd1c3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmphcm9zemUvZ25vbWUtYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogImJsdWV0b290aC1xdWljay1jb25uZWN0QGJqYXJvc3plLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"},
     "40": {"version": "34", "sha256": "0yv1igdh95s70jrqz3y6p0135a2yzzsjvqm2l2lg81qkfms6jk3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JqYXJvc3plL2dub21lLWJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAidXVpZCI6ICJibHVldG9vdGgtcXVpY2stY29ubmVjdEBiamFyb3N6ZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
     "41": {"version": "34", "sha256": "0yv1igdh95s70jrqz3y6p0135a2yzzsjvqm2l2lg81qkfms6jk3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JqYXJvc3plL2dub21lLWJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAidXVpZCI6ICJibHVldG9vdGgtcXVpY2stY29ubmVjdEBiamFyb3N6ZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
     "42": {"version": "34", "sha256": "0yv1igdh95s70jrqz3y6p0135a2yzzsjvqm2l2lg81qkfms6jk3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JqYXJvc3plL2dub21lLWJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAidXVpZCI6ICJibHVldG9vdGgtcXVpY2stY29ubmVjdEBiamFyb3N6ZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
     "43": {"version": "34", "sha256": "0yv1igdh95s70jrqz3y6p0135a2yzzsjvqm2l2lg81qkfms6jk3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JqYXJvc3plL2dub21lLWJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAidXVpZCI6ICJibHVldG9vdGgtcXVpY2stY29ubmVjdEBiamFyb3N6ZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
     "44": {"version": "37", "sha256": "0ydch21gzvndvbr7hlhps4l6gcncd6whdswf8rj23axl4q1smx4w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHRvIGNvbm5lY3QgdG8gcGFpcmVkIGRldmljZXMgZnJvbSBnbm9tZSBjb250cm9sIHBhbmVsLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JqYXJvc3plL2dub21lLWJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAidXVpZCI6ICJibHVldG9vdGgtcXVpY2stY29ubmVjdEBiamFyb3N6ZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
-    "45": {"version": "43", "sha256": "197kr6xpbphrfy0aqy6hd04hxypxiz4mrkg7anqf3x1s17036fmv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBwYWlyZWQgQmx1ZXRvb3RoIGRldmljZXMgdG8gYmUgY29ubmVjdGVkIGFuZCBkaXNjb25uZWN0ZWQgdmlhIHRoZSBHTk9NRSBzeXN0ZW0gbWVudSwgU2hvd3MgYmF0dGVyeSBzdGF0dXMgYW5kIG1vcmUuXG4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogIkJsYW5rUGFydGljbGUiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0V4dGVuc2lvbnMtVmFsaGFsbGEvZ25vbWUtYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogImJsdWV0b290aC1xdWljay1jb25uZWN0QGJqYXJvc3plLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"}
+    "45": {"version": "46", "sha256": "0bx665r2yihfxm322rxmh9x00cylxk7aji0idavqny3gp8xs6dvf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBwYWlyZWQgQmx1ZXRvb3RoIGRldmljZXMgdG8gYmUgY29ubmVjdGVkIGFuZCBkaXNjb25uZWN0ZWQgdmlhIHRoZSBHTk9NRSBzeXN0ZW0gbWVudSwgU2hvd3MgYmF0dGVyeSBzdGF0dXMgYW5kIG1vcmUuXG4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogIkJsYW5rUGFydGljbGUiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJuYW1lIjogIkJsdWV0b290aCBRdWljayBDb25uZWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aC1xdWljay1jb25uZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0V4dGVuc2lvbnMtVmFsaGFsbGEvZ25vbWUtYmx1ZXRvb3RoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogImJsdWV0b290aC1xdWljay1jb25uZWN0QGJqYXJvc3plLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0Ngp9"}
   }}
 , {"uuid": "syspeek-gs@gs.eros2.info", "name": "SysPeek-GS", "pname": "syspeek-gs", "description": "Minimalistic CPU load monitor widget inspired by SysPeek indicator", "link": "https://extensions.gnome.org/extension/1409/syspeek-gs/", "shell_version_map": {
     "38": {"version": "12", "sha256": "0bdspqf9vyhfv9rcj1xz9jkswh4gy3laj2vhnfsl64skfp2c8qsl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltYWxpc3RpYyBDUFUgbG9hZCBtb25pdG9yIHdpZGdldCBpbnNwaXJlZCBieSBTeXNQZWVrIGluZGljYXRvciIsCiAgIm5hbWUiOiAiU3lzUGVlay1HUyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXVnZW5lLXJvbS9zeXNwZWVrLWdzIiwKICAidXVpZCI6ICJzeXNwZWVrLWdzQGdzLmVyb3MyLmluZm8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
@@ -1335,7 +1345,7 @@
     "42": {"version": "23", "sha256": "08pl7m0z4mpsg3556r282wyld61h3bzilfakzbmnqv18zf4xlfwz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
     "43": {"version": "23", "sha256": "08pl7m0z4mpsg3556r282wyld61h3bzilfakzbmnqv18zf4xlfwz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
     "44": {"version": "23", "sha256": "08pl7m0z4mpsg3556r282wyld61h3bzilfakzbmnqv18zf4xlfwz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
-    "45": {"version": "25", "sha256": "138zkwzzicviss3b29w7a8y9f1bhpb0dm3q2finvlkvx1cknjhw8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Z2Ym9nZGFub3Y4Ny9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3ViZWNvbmZpZyIsCiAgInV1aWQiOiAia3ViZV9jb25maWdAdnZib2dkYW5vdjg3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}
+    "45": {"version": "26", "sha256": "182vyrmn0l46g0m3gx0rv1ki19birsabng4chvv8ma1j0rnr1phi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Z2Ym9nZGFub3Y4Ny9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3ViZWNvbmZpZyIsCiAgInV1aWQiOiAia3ViZV9jb25maWdAdnZib2dkYW5vdjg3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNgp9"}
   }}
 , {"uuid": "microphone-loopback@atareao.es", "name": "Microphone Loopback", "pname": "microphone-loopback", "description": "This extension enables hear microphone on headphones or speakers", "link": "https://extensions.gnome.org/extension/1443/microphone-loopback/", "shell_version_map": {
     "40": {"version": "5", "sha256": "1s9sh3afa3d7vbjlna6c7yls7kglwrxy6j5hns1ql4nprkdx8nb1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGVuYWJsZXMgaGVhciBtaWNyb3Bob25lIG9uIGhlYWRwaG9uZXMgb3Igc3BlYWtlcnMiLAogICJleHRlbnNpb24taWQiOiAibWljcm9waG9uZS1sb29wYmFja0BhdGFyZWFvLmVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWljcm9waG9uZS1sb29wYmFja0BhdGFyZWFvLmVzIiwKICAiaWNvbiI6ICJtaWNyb3Bob25lLWxvb3BiYWNrIiwKICAibmFtZSI6ICJNaWNyb3Bob25lIExvb3BiYWNrIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1pY3JvcGhvbmUtbG9vcGJhY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdGFyZWFvL21pY3JvcGhvbmUtbG9vcGJhY2siLAogICJ1dWlkIjogIm1pY3JvcGhvbmUtbG9vcGJhY2tAYXRhcmVhby5lcyIsCiAgInZlcnNpb24iOiA1Cn0="},
@@ -1374,7 +1384,7 @@
     "42": {"version": "61", "sha256": "137piq92wc23imcwqg5jyra1yfvj5xhm3iy7ls3djni76xkcfghf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb3JlY29kaW5nL1ZpdGFscyIsCiAgInV1aWQiOiAiVml0YWxzQENvcmVDb2RpbmcuY29tIiwKICAidmVyc2lvbiI6IDYxCn0="},
     "43": {"version": "61", "sha256": "137piq92wc23imcwqg5jyra1yfvj5xhm3iy7ls3djni76xkcfghf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb3JlY29kaW5nL1ZpdGFscyIsCiAgInV1aWQiOiAiVml0YWxzQENvcmVDb2RpbmcuY29tIiwKICAidmVyc2lvbiI6IDYxCn0="},
     "44": {"version": "61", "sha256": "137piq92wc23imcwqg5jyra1yfvj5xhm3iy7ls3djni76xkcfghf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb3JlY29kaW5nL1ZpdGFscyIsCiAgInV1aWQiOiAiVml0YWxzQENvcmVDb2RpbmcuY29tIiwKICAidmVyc2lvbiI6IDYxCn0="},
-    "45": {"version": "63", "sha256": "1ssjrcsq6pymh9q4qdi7zqpq3m16wgs2yj8nkv97pksbg1jfmza1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvcmVjb2RpbmcvVml0YWxzIiwKICAidXVpZCI6ICJWaXRhbHNAQ29yZUNvZGluZy5jb20iLAogICJ2ZXJzaW9uIjogNjMKfQ=="}
+    "45": {"version": "65", "sha256": "01w9z5razx4ss49pjnsdxfkzq9xd61rvg5vjkw7w2mwdq0jwzknk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb3JlY29kaW5nL1ZpdGFscyIsCiAgInV1aWQiOiAiVml0YWxzQENvcmVDb2RpbmcuY29tIiwKICAidmVyc2lvbiI6IDY1Cn0="}
   }}
 , {"uuid": "panel-date-format@keiii.github.com", "name": "Panel Date Format", "pname": "panel-date-format", "description": "Allows to customize the date format on the panel.", "link": "https://extensions.gnome.org/extension/1462/panel-date-format/", "shell_version_map": {
     "40": {"version": "11", "sha256": "1l6kaq9lpxyyj81iqqxwdpa4mwdsndx744zmgr69vklz4lkyznj4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBjdXN0b21pemUgdGhlIGRhdGUgZm9ybWF0IG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIlBhbmVsIERhdGUgRm9ybWF0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhbmVsLWRhdGUtZm9ybWF0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9LRUlJSS9nbm9tZS1zaGVsbC1wYW5lbC1kYXRlLWZvcm1hdCIsCiAgInV1aWQiOiAicGFuZWwtZGF0ZS1mb3JtYXRAa2VpaWkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"},
@@ -1519,7 +1529,8 @@
     "41": {"version": "55", "sha256": "0mmrz2zqf1jpdgsw6bi7l733jx74myd8v785g1gdqk34wynz1fxd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMiLAogICJ1dWlkIjogIndvcmtzZXRzQGJsaXBrLnh5eiIsCiAgInZlcnNpb24iOiA1NQp9"},
     "42": {"version": "60", "sha256": "1f79yi0g8pdnxpbfq098xi52shg5qn1s8gy5yi83i38brz3dv4bp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "43": {"version": "60", "sha256": "1f79yi0g8pdnxpbfq098xi52shg5qn1s8gy5yi83i38brz3dv4bp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
-    "44": {"version": "60", "sha256": "1f79yi0g8pdnxpbfq098xi52shg5qn1s8gy5yi83i38brz3dv4bp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNjAKfQ=="}
+    "44": {"version": "60", "sha256": "1f79yi0g8pdnxpbfq098xi52shg5qn1s8gy5yi83i38brz3dv4bp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
+    "45": {"version": "65", "sha256": "0mrbflk2pwlwinm2xn3zgs6afs0rp0i3vqkl3fh19i4m0dxjm815", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL0N1c3RvbWlzZWQtV29ya3NwYWNlcyIsCiAgInV1aWQiOiAid29ya3NldHNAYmxpcGsueHl6IiwKICAidmVyc2lvbiI6IDY1Cn0="}
   }}
 , {"uuid": "NordVPN_Connect@poilrouge.fr", "name": "NordVPN Connect", "pname": "nordvpn-connect", "description": "Unofficial Gnome-Shell Extension to provide a GUI for the official NordVPN CLI Tool.", "link": "https://extensions.gnome.org/extension/1595/nordvpn-connect/", "shell_version_map": {
     "38": {"version": "15", "sha256": "0xccvy3kqgglhcjhixlxi65sa49lbm896lra2sks65arkx3fh63k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgR25vbWUtU2hlbGwgRXh0ZW5zaW9uIHRvIHByb3ZpZGUgYSBHVUkgZm9yIHRoZSBvZmZpY2lhbCBOb3JkVlBOIENMSSBUb29sLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtbnZwbmNvbm5lY3QiLAogICJuYW1lIjogIk5vcmRWUE4gQ29ubmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udnBuY29ubmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsZXhQb2lscm91Z2UvTm9yZFZQTi1jb25uZWN0IiwKICAidXVpZCI6ICJOb3JkVlBOX0Nvbm5lY3RAcG9pbHJvdWdlLmZyIiwKICAidmVyc2lvbiI6IDE1Cn0="},
@@ -2093,7 +2104,7 @@
     "42": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
     "43": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
     "44": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
-    "45": {"version": "30", "sha256": "1bm2xqmj4hbygwwzzd782nx5vwy8d1lw1msmi4p3542w3kwq31jb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMzAsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4wIgp9"}
+    "45": {"version": "31", "sha256": "08vgzh2ph0i4xy57qyz233qdiiskhnr9y37x1s2dxkgg1ra8x8xf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvbWVzc2FnaW5nbWVudSIsCiAgInV1aWQiOiAibWVzc2FnaW5nbWVudUBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDMxLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMCIKfQ=="}
   }}
 , {"uuid": "SettingsCenter@lauinger-clan.de", "name": "SettingsCenter", "pname": "settingscenter", "description": "Settings Center is a customizable drop-down menu for quickly launching frequently used apps in Gnome:Shell via the quicksettings. Originally created by XES.\n\nSettings shortcuts : gnome-tweak-tool, dconf-editor, gconf-editor, gnome-session-properties, gnome-shell-extension-prefs, seahorse and nvidia-settings. You can add your own\n\nOriginal source : http://svn.xesnet.fr/gnomeextensions", "link": "https://extensions.gnome.org/extension/2899/settingscenter/", "shell_version_map": {
     "38": {"version": "2", "sha256": "0sywdlmfgy4k5bkxmawcb7b8100g8wnpndmwvdzjq51xv5605gcs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSBxdWlja3NldHRpbmdzLiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyIsCiAgImxvY2FsZSI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2V0dGluZ3NDZW50ZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiWGVzLCBsMzAwbHZsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjQiLAogICAgIjMuNiIsCiAgICAiMy41LjQiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyCn0="},
@@ -2102,7 +2113,7 @@
     "42": {"version": "11", "sha256": "17na0a5bm4qkh1lcch9frpmlxn44kg7d4lx96lmpx8v0zp4v0c2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSBxdWlja3NldHRpbmdzLiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyIsCiAgImxvY2FsZSI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2V0dGluZ3NDZW50ZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiWGVzLCBsMzAwbHZsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLlNldHRpbmdzQ2VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L1hFUy1TZXR0aW5ncy1DZW50ZXItRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJTZXR0aW5nc0NlbnRlckBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDExCn0="},
     "43": {"version": "22", "sha256": "0vpnp0w7h33p5as86a03i5sg6clfd61q7f4p40ab16i4fsyy0dyn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSBxdWlja3NldHRpbmdzLiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyIsCiAgImdldHRleHQtZG9tYWluIjogIlNldHRpbmdzQ2VudGVyIiwKICAibmFtZSI6ICJTZXR0aW5nc0NlbnRlciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJYZXMsIGwzMDBsdmwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuU2V0dGluZ3NDZW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyMgp9"},
     "44": {"version": "22", "sha256": "0vpnp0w7h33p5as86a03i5sg6clfd61q7f4p40ab16i4fsyy0dyn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSBxdWlja3NldHRpbmdzLiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyIsCiAgImdldHRleHQtZG9tYWluIjogIlNldHRpbmdzQ2VudGVyIiwKICAibmFtZSI6ICJTZXR0aW5nc0NlbnRlciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJYZXMsIGwzMDBsdmwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuU2V0dGluZ3NDZW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyMgp9"},
-    "45": {"version": "26", "sha256": "16bh59fn02z5hq1svg2678479d0d600jq91k4y6xigzax1n7phvy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSBxdWlja3NldHRpbmdzLiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiQ2hyaXNMYXVpbmdlcjc3IiwKICAgICJwYXlwYWwiOiAiQ2hyaXNMYXVpbmdlciIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTZXR0aW5nc0NlbnRlciIsCiAgIm5hbWUiOiAiU2V0dGluZ3NDZW50ZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiWGVzLCBsMzAwbHZsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLlNldHRpbmdzQ2VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyNiwKICAidmVyc2lvbi1uYW1lIjogIjQ1LjAiCn0="}
+    "45": {"version": "27", "sha256": "1cpdrvqf66vvahwnmxrwk58kvc3wknb872v79xh6m1x7awxk0idj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSBxdWlja3NldHRpbmdzLiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiQ2hyaXNMYXVpbmdlcjc3IiwKICAgICJwYXlwYWwiOiAiQ2hyaXNMYXVpbmdlciIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTZXR0aW5nc0NlbnRlciIsCiAgIm5hbWUiOiAiU2V0dGluZ3NDZW50ZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiWGVzLCBsMzAwbHZsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLlNldHRpbmdzQ2VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvWEVTLVNldHRpbmdzLUNlbnRlci1FeHRlbnNpb24iLAogICJ1dWlkIjogIlNldHRpbmdzQ2VudGVyQGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4wIgp9"}
   }}
 , {"uuid": "auto-mute-toggle@garotosopa.github.io", "name": "Auto-mute toggle", "pname": "auto-mute-toggle", "description": "Toggle whether to auto-mute speakers when headphones are plugged in.", "link": "https://extensions.gnome.org/extension/2905/auto-mute-toggle/", "shell_version_map": {
     "40": {"version": "6", "sha256": "1lyh51gvsh9ydip77vjj8rigjiah97lh8gp91jcpqblwx69fs3dk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB3aGV0aGVyIHRvIGF1dG8tbXV0ZSBzcGVha2VycyB3aGVuIGhlYWRwaG9uZXMgYXJlIHBsdWdnZWQgaW4uIiwKICAibmFtZSI6ICJBdXRvLW11dGUgdG9nZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dhcm90b3NvcGEvZ3NlLWF1dG8tbXV0ZS10b2dnbGUiLAogICJ1dWlkIjogImF1dG8tbXV0ZS10b2dnbGVAZ2Fyb3Rvc29wYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNgp9"}
@@ -2201,7 +2212,7 @@
     "42": {"version": "55", "sha256": "0fwxj41ka95mxrjy3xbywqxm0fp00irypkwcg316pyy9cva4rk01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLCBvY2Nhc2lvbmFsbHkgaW5jbHVkaW5nIHBhdGNoZXMgdGhhdCBoYXZlbid0IHlldCBtZXJnZWQgdXBzdHJlYW0uXG5cblRoaXMgaXMgcHJlZmVyYWJsZSBmb3IgdXNlcnMgb24gYmxlZWRpbmcgZWRnZSBkaXN0cmlidXRpb25zIHRoYXQgcHJlZmVyIG5vdCB0byB3YWl0IGZvciBhIHN0YWJsZSByZWxlYXNlIGZyb20gdGhlIG1haW4gcmVwby4gT2YgY291cnNlLCBzaW5jZSB3ZSdyZSByZWxlYXNpbmcgZGlyZWN0bHkgZnJvbSBtYXN0ZXIgc29tZSBpbnN0YWJpbGl0eSBpcyBpbmV2aXRhYmxlLlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgcmVzdGFydGluZyBHbm9tZSBTaGVsbCB3aXRoIEFsdC1GMiB0aGVuICdyJy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="},
     "43": {"version": "55", "sha256": "0fwxj41ka95mxrjy3xbywqxm0fp00irypkwcg316pyy9cva4rk01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLCBvY2Nhc2lvbmFsbHkgaW5jbHVkaW5nIHBhdGNoZXMgdGhhdCBoYXZlbid0IHlldCBtZXJnZWQgdXBzdHJlYW0uXG5cblRoaXMgaXMgcHJlZmVyYWJsZSBmb3IgdXNlcnMgb24gYmxlZWRpbmcgZWRnZSBkaXN0cmlidXRpb25zIHRoYXQgcHJlZmVyIG5vdCB0byB3YWl0IGZvciBhIHN0YWJsZSByZWxlYXNlIGZyb20gdGhlIG1haW4gcmVwby4gT2YgY291cnNlLCBzaW5jZSB3ZSdyZSByZWxlYXNpbmcgZGlyZWN0bHkgZnJvbSBtYXN0ZXIgc29tZSBpbnN0YWJpbGl0eSBpcyBpbmV2aXRhYmxlLlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgcmVzdGFydGluZyBHbm9tZSBTaGVsbCB3aXRoIEFsdC1GMiB0aGVuICdyJy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="},
     "44": {"version": "55", "sha256": "0fwxj41ka95mxrjy3xbywqxm0fp00irypkwcg316pyy9cva4rk01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLCBvY2Nhc2lvbmFsbHkgaW5jbHVkaW5nIHBhdGNoZXMgdGhhdCBoYXZlbid0IHlldCBtZXJnZWQgdXBzdHJlYW0uXG5cblRoaXMgaXMgcHJlZmVyYWJsZSBmb3IgdXNlcnMgb24gYmxlZWRpbmcgZWRnZSBkaXN0cmlidXRpb25zIHRoYXQgcHJlZmVyIG5vdCB0byB3YWl0IGZvciBhIHN0YWJsZSByZWxlYXNlIGZyb20gdGhlIG1haW4gcmVwby4gT2YgY291cnNlLCBzaW5jZSB3ZSdyZSByZWxlYXNpbmcgZGlyZWN0bHkgZnJvbSBtYXN0ZXIgc29tZSBpbnN0YWJpbGl0eSBpcyBpbmV2aXRhYmxlLlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgcmVzdGFydGluZyBHbm9tZSBTaGVsbCB3aXRoIEFsdC1GMiB0aGVuICdyJy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="},
-    "45": {"version": "64", "sha256": "1sx2jrwclqx8jsn60bj9gi0xllnwvrix9jc5wfx4qzv210is5g1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgaXMgYSBmb3JrIG9mIHRoZSBzZWVtaW5nbHkgYWJhbmRvbmVkIHBhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0LlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgbG9nZ2luZyBvdXQgYW5kIGxvZ2dpbmcgYmFjayBpbiAodGhpcyBpcyBhIGtub3duIGlzc3VlIHRoYXQgaXMgYmVpbmcgd29ya2VkIG9uKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZ2FsZ3MvZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0IiwKICAidXVpZCI6ICJzeXN0ZW0tbW9uaXRvci1uZXh0QHBhcmFkb3h4eC56ZXJvLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA2NAp9"}
+    "45": {"version": "65", "sha256": "0jzvq51p0y9rjq40fqz59l95r7bpsa0yp3yy5xmgssncimy4r5vx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgaXMgYSBmb3JrIG9mIHRoZSBzZWVtaW5nbHkgYWJhbmRvbmVkIHBhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0LlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgbG9nZ2luZyBvdXQgYW5kIGxvZ2dpbmcgYmFjayBpbiAodGhpcyBpcyBhIGtub3duIGlzc3VlIHRoYXQgaXMgYmVpbmcgd29ya2VkIG9uKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZ2FsZ3MvZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0IiwKICAidXVpZCI6ICJzeXN0ZW0tbW9uaXRvci1uZXh0QHBhcmFkb3h4eC56ZXJvLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA2NQp9"}
   }}
 , {"uuid": "user-theme-x@tuberry.github.io", "name": "User Theme X", "pname": "user-themes-x", "description": "Customizable user-theme with user stylesheet and dark theme auto-switch based on the Night Light\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3019/user-themes-x/", "shell_version_map": {
     "38": {"version": "21", "sha256": "0qiahmg2nmrnlyablyava1488rvy0r2rq8pyv932lsx6vrn9gh6m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJleHRlbnNpb24taWQiOiAidXNlci10aGVtZS14IiwKICAiZ2V0dGV4dC1kb21haW4iOiAidXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3VzZXItdGhlbWUteCIsCiAgInV1aWQiOiAidXNlci10aGVtZS14QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIxCn0="},
@@ -2282,7 +2293,7 @@
     "42": {"version": "47", "sha256": "04h957nzzvblk8zxiyanzyw02czdk459ljq1kkkhgk929cqsc0b3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImF1bmV0eCIsCiAgICAia29maSI6ICJhdW5ldHgiCiAgfSwKICAibmFtZSI6ICJCbHVyIG15IFNoZWxsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJtZUBhdW5ldHguZGV2IgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ibHVyLW15LXNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiA0Nwp9"},
     "43": {"version": "47", "sha256": "04h957nzzvblk8zxiyanzyw02czdk459ljq1kkkhgk929cqsc0b3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImF1bmV0eCIsCiAgICAia29maSI6ICJhdW5ldHgiCiAgfSwKICAibmFtZSI6ICJCbHVyIG15IFNoZWxsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJtZUBhdW5ldHguZGV2IgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ibHVyLW15LXNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiA0Nwp9"},
     "44": {"version": "47", "sha256": "04h957nzzvblk8zxiyanzyw02czdk459ljq1kkkhgk929cqsc0b3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImF1bmV0eCIsCiAgICAia29maSI6ICJhdW5ldHgiCiAgfSwKICAibmFtZSI6ICJCbHVyIG15IFNoZWxsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJtZUBhdW5ldHguZGV2IgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ibHVyLW15LXNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiA0Nwp9"},
-    "45": {"version": "54", "sha256": "15zr0l4p447r92rplwgkl05pywmpryxydv3brfmrlv3rm45zbgh1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImF1bmV0eCIsCiAgICAia29maSI6ICJhdW5ldHgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ci1teS1zaGVsbCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWVAYXVuZXR4LmRldiIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmx1ci1teS1zaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJsdXItbXktc2hlbGwiLAogICJ1dWlkIjogImJsdXItbXktc2hlbGxAYXVuZXR4IiwKICAidmVyc2lvbiI6IDU0Cn0="}
+    "45": {"version": "55", "sha256": "10ia4dadk10aj3xdrgqrrzpphwdrwb1880lsncains5z901nmixz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImF1bmV0eCIsCiAgICAia29maSI6ICJhdW5ldHgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmx1ci1teS1zaGVsbCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWVAYXVuZXR4LmRldiIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmx1ci1teS1zaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJsdXItbXktc2hlbGwiLAogICJ1dWlkIjogImJsdXItbXktc2hlbGxAYXVuZXR4IiwKICAidmVyc2lvbiI6IDU1Cn0="}
   }}
 , {"uuid": "escape-overview@raelgc", "name": "ESCape Overview", "pname": "escape-overview", "description": "Close the Overview with a single ESC press when searchbox is empty.\n\nThe default gnome-shell behaviour is, during first ESC press, clean the searchbox, then second ESC press get back to Activities overview and then third ESC press will finally close the overview.", "link": "https://extensions.gnome.org/extension/3204/escape-overview/", "shell_version_map": {
     "38": {"version": "5", "sha256": "12jycfdlywlc2gf7hcpa1draqsy8jgb2dgr8sihh2f97b31dk1nh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhZWxnYy9lc2NhcGUtb3ZlcnZpZXciLAogICJ1dWlkIjogImVzY2FwZS1vdmVydmlld0ByYWVsZ2MiLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -2338,7 +2349,7 @@
     "42": {"version": "10", "sha256": "1x76p06ni4byl469hk0y3l5dkg2ad4khn5h02pgbyqxkfhf2y1il", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Ub21taW1vbi9hZGQtdG8tZGVza3RvcCIsCiAgInV1aWQiOiAiYWRkLXRvLWRlc2t0b3BAdG9tbWltb24uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "43": {"version": "10", "sha256": "1x76p06ni4byl469hk0y3l5dkg2ad4khn5h02pgbyqxkfhf2y1il", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Ub21taW1vbi9hZGQtdG8tZGVza3RvcCIsCiAgInV1aWQiOiAiYWRkLXRvLWRlc2t0b3BAdG9tbWltb24uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "44": {"version": "10", "sha256": "1x76p06ni4byl469hk0y3l5dkg2ad4khn5h02pgbyqxkfhf2y1il", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Ub21taW1vbi9hZGQtdG8tZGVza3RvcCIsCiAgInV1aWQiOiAiYWRkLXRvLWRlc2t0b3BAdG9tbWltb24uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
-    "45": {"version": "11", "sha256": "0rzfkibi6ymgg4h33aba2w1fphkh90h8ka56wa3g1slas4my0jll", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgImdldHRleHQtZG9tYWluIjogImFkZC10by1kZXNrdG9wIiwKICAibmFtZSI6ICJBZGQgdG8gRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Ub21taW1vbi9hZGQtdG8tZGVza3RvcCIsCiAgInV1aWQiOiAiYWRkLXRvLWRlc2t0b3BAdG9tbWltb24uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}
+    "45": {"version": "12", "sha256": "1gc8cdjckf662fnd1c1q4p1iva5wphk4b4hwji9hf7hjbh8c9rqf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgImdldHRleHQtZG9tYWluIjogImFkZC10by1kZXNrdG9wIiwKICAibmFtZSI6ICJBZGQgdG8gRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2LmJldGEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Ub21taW1vbi9hZGQtdG8tZGVza3RvcCIsCiAgInV1aWQiOiAiYWRkLXRvLWRlc2t0b3BAdG9tbWltb24uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}
   }}
 , {"uuid": "wifi-power-management-toggle@rthery", "name": "Wi-Fi Power Management Toggle", "pname": "wi-fi-power-management-toggle", "description": "Add a toggle to limit Wi-Fi power consumption (when supported by the card) in Gnome System Menu.", "link": "https://extensions.gnome.org/extension/3258/wi-fi-power-management-toggle/", "shell_version_map": {
     "38": {"version": "3", "sha256": "0w3w0wx6pdwr0ya69dkhjv10m0csjv2gsab98f57ycn8vi4zd7n5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBsaW1pdCBXaS1GaSBwb3dlciBjb25zdW1wdGlvbiAod2hlbiBzdXBwb3J0ZWQgYnkgdGhlIGNhcmQpIGluIEdub21lIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiV2ktRmkgUG93ZXIgTWFuYWdlbWVudCBUb2dnbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9ydGhlcnkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZmktcG93ZXItbWFuYWdlbWVudC10b2dnbGUiLAogICJ1dWlkIjogIndpZmktcG93ZXItbWFuYWdlbWVudC10b2dnbGVAcnRoZXJ5IiwKICAidmVyc2lvbiI6IDMKfQ=="},
@@ -2412,7 +2423,7 @@
     "42": {"version": "22", "sha256": "1y0gx662rhs32bjng5i5w3f6bkgc7i71rxki9qav4rp69fpnqnxg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiBPbmNlIGluc3RhbGxlZCwgcHJlc3MgQ3RybCtTcGFjZSB0byBvcGVuIHRoZSBkZWZhdWx0IG1lbnUuIE9wZW4gdGhlIHByZWZlcmVuY2VzIGRpYWxvZyBmb3IgYW4gaW50ZXJhY3RpdmUgdHV0b3JpYWwgYW5kIGZvciBjcmVhdGluZyBjdXN0b20gbWVudXMhIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJzY2huZWVnYW5zIiwKICAgICJrb2ZpIjogInNjaG5lZWdhbnMiLAogICAgInBheXBhbCI6ICJzaW1vbnNjaG5lZWdhbnMiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmx5cGllIiwKICAibmFtZSI6ICJGbHktUGllIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZseXBpZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9GbHktUGllIiwKICAidXVpZCI6ICJmbHlwaWVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="},
     "43": {"version": "22", "sha256": "1y0gx662rhs32bjng5i5w3f6bkgc7i71rxki9qav4rp69fpnqnxg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiBPbmNlIGluc3RhbGxlZCwgcHJlc3MgQ3RybCtTcGFjZSB0byBvcGVuIHRoZSBkZWZhdWx0IG1lbnUuIE9wZW4gdGhlIHByZWZlcmVuY2VzIGRpYWxvZyBmb3IgYW4gaW50ZXJhY3RpdmUgdHV0b3JpYWwgYW5kIGZvciBjcmVhdGluZyBjdXN0b20gbWVudXMhIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJzY2huZWVnYW5zIiwKICAgICJrb2ZpIjogInNjaG5lZWdhbnMiLAogICAgInBheXBhbCI6ICJzaW1vbnNjaG5lZWdhbnMiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmx5cGllIiwKICAibmFtZSI6ICJGbHktUGllIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZseXBpZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9GbHktUGllIiwKICAidXVpZCI6ICJmbHlwaWVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="},
     "44": {"version": "22", "sha256": "1y0gx662rhs32bjng5i5w3f6bkgc7i71rxki9qav4rp69fpnqnxg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiBPbmNlIGluc3RhbGxlZCwgcHJlc3MgQ3RybCtTcGFjZSB0byBvcGVuIHRoZSBkZWZhdWx0IG1lbnUuIE9wZW4gdGhlIHByZWZlcmVuY2VzIGRpYWxvZyBmb3IgYW4gaW50ZXJhY3RpdmUgdHV0b3JpYWwgYW5kIGZvciBjcmVhdGluZyBjdXN0b20gbWVudXMhIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJzY2huZWVnYW5zIiwKICAgICJrb2ZpIjogInNjaG5lZWdhbnMiLAogICAgInBheXBhbCI6ICJzaW1vbnNjaG5lZWdhbnMiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmx5cGllIiwKICAibmFtZSI6ICJGbHktUGllIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZseXBpZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9GbHktUGllIiwKICAidXVpZCI6ICJmbHlwaWVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="},
-    "45": {"version": "24", "sha256": "0sx46wyyi74l07q39qfmsv27n4is96v68fjgjxjp1hngvcmnq6rp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiBPbmNlIGluc3RhbGxlZCwgcHJlc3MgQ3RybCtTcGFjZSB0byBvcGVuIHRoZSBkZWZhdWx0IG1lbnUuIE9wZW4gdGhlIHByZWZlcmVuY2VzIGRpYWxvZyBmb3IgYW4gaW50ZXJhY3RpdmUgdHV0b3JpYWwgYW5kIGZvciBjcmVhdGluZyBjdXN0b20gbWVudXMhIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJzY2huZWVnYW5zIiwKICAgICJrb2ZpIjogInNjaG5lZWdhbnMiLAogICAgInBheXBhbCI6ICJzaW1vbnNjaG5lZWdhbnMiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmx5cGllIiwKICAibmFtZSI6ICJGbHktUGllIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZseXBpZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0ZseS1QaWUiLAogICJ1dWlkIjogImZseXBpZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="}
+    "45": {"version": "25", "sha256": "1rsdic4g09ab0jmdzj0p941pfpc3qazk7swb01vdiq1fcflpkyp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiBPbmNlIGluc3RhbGxlZCwgcHJlc3MgQ3RybCtTcGFjZSB0byBvcGVuIHRoZSBkZWZhdWx0IG1lbnUuIE9wZW4gdGhlIHByZWZlcmVuY2VzIGRpYWxvZyBmb3IgYW4gaW50ZXJhY3RpdmUgdHV0b3JpYWwgYW5kIGZvciBjcmVhdGluZyBjdXN0b20gbWVudXMhIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJzY2huZWVnYW5zIiwKICAgICJrb2ZpIjogInNjaG5lZWdhbnMiLAogICAgInBheXBhbCI6ICJzaW1vbnNjaG5lZWdhbnMiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmx5cGllIiwKICAibmFtZSI6ICJGbHktUGllIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZseXBpZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9GbHktUGllIiwKICAidXVpZCI6ICJmbHlwaWVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI1Cn0="}
   }}
 , {"uuid": "jiggle@jeffchannell.com", "name": "Jiggle", "pname": "jiggle", "description": "Jiggle is a Gnome Shell extension that highlights the cursor position when the mouse is moved rapidly.", "link": "https://extensions.gnome.org/extension/3438/jiggle/", "shell_version_map": {
     "38": {"version": "8", "sha256": "0f5zwvcqz648sn11nl49r0ki6zy5c2hp4imgba0dlc02fags7pxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkppZ2dsZSBpcyBhIEdub21lIFNoZWxsIGV4dGVuc2lvbiB0aGF0IGhpZ2hsaWdodHMgdGhlIGN1cnNvciBwb3NpdGlvbiB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZlZCByYXBpZGx5LiIsCiAgIm5hbWUiOiAiSmlnZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjMiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plZmZjaGFubmVsbC9qaWdnbGUiLAogICJ1dWlkIjogImppZ2dsZUBqZWZmY2hhbm5lbGwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="},
@@ -2552,7 +2563,7 @@
     "42": {"version": "48", "sha256": "0y7pbng3jvvpwnjbajh4qs5n9rlb42w5q4cm2is7s9znwc4n73zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"},
     "43": {"version": "48", "sha256": "0y7pbng3jvvpwnjbajh4qs5n9rlb42w5q4cm2is7s9znwc4n73zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"},
     "44": {"version": "48", "sha256": "0y7pbng3jvvpwnjbajh4qs5n9rlb42w5q4cm2is7s9znwc4n73zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"},
-    "45": {"version": "52", "sha256": "1ngfmnp0q7c3636sjhmp5zz8n4yv748z9ihkgcyg96231zhv0ks8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUiLAogICJ1dWlkIjogImFyY21lbnVAYXJjbWVudS5jb20iLAogICJ2ZXJzaW9uIjogNTIKfQ=="}
+    "45": {"version": "55", "sha256": "0ggjf5avagpcrgljjkna2l662j78gfjh4maqkmfq4z1kj0vawliq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDU1LAogICJ2ZXJzaW9uLW5hbWUiOiAiNTUiCn0="}
   }}
 , {"uuid": "fixedimelist@alynx.one", "name": "Fixed IME List", "pname": "fixed-ime-list", "description": "Make the IME list in fixed sequence instead of MRU.", "link": "https://extensions.gnome.org/extension/3663/fixed-ime-list/", "shell_version_map": {
     "38": {"version": "7", "sha256": "18z9h0fcq6w3kmcc5v8swjn18nc9hkck54jfzyv2697py6cd83kf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIElNRSBsaXN0IGluIGZpeGVkIHNlcXVlbmNlIGluc3RlYWQgb2YgTVJVLiIsCiAgIm5hbWUiOiAiRml4ZWQgSU1FIExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWx5bnhaaG91L2dub21lLXNoZWxsLWV4dGVuc2lvbi1maXhlZC1pbWUtbGlzdC8iLAogICJ1dWlkIjogImZpeGVkaW1lbGlzdEBhbHlueC5vbmUiLAogICJ2ZXJzaW9uIjogNwp9"},
@@ -2634,7 +2645,7 @@
     "42": {"version": "30", "sha256": "1hzvimbdr6bd0a9ysynf5hsqlbkfnsgyqlphhnfgxa03wl6q8fk9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMwCn0="},
     "43": {"version": "30", "sha256": "1hzvimbdr6bd0a9ysynf5hsqlbkfnsgyqlphhnfgxa03wl6q8fk9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMwCn0="},
     "44": {"version": "30", "sha256": "1hzvimbdr6bd0a9ysynf5hsqlbkfnsgyqlphhnfgxa03wl6q8fk9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "45": {"version": "33", "sha256": "1lz6jbrh3qr3h5vgwarxzifa4743503hkpkw81lc8wzzypi9npq3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJ2Y2hsdW0iLAogICAgInBheXBhbCI6ICJ2Y2hsdW0iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiaHVlLWxpZ2h0cyIsCiAgIm5hbWUiOiAiSHVlIExpZ2h0cyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHVlLWxpZ2h0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vaHVlLWxpZ2h0cyIsCiAgInV1aWQiOiAiaHVlLWxpZ2h0c0BjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}
+    "45": {"version": "35", "sha256": "0dl6zrr8nwrdycf9djn9dc4nznhp26iwcwhafw7ivkg0msz6a6gf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJ2Y2hsdW0iLAogICAgInBheXBhbCI6ICJ2Y2hsdW0iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiaHVlLWxpZ2h0cyIsCiAgIm5hbWUiOiAiSHVlIExpZ2h0cyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHVlLWxpZ2h0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM1Cn0="}
   }}
 , {"uuid": "compiz-alike-magic-lamp-effect@hermes83.github.com", "name": "Compiz alike magic lamp effect", "pname": "compiz-alike-magic-lamp-effect", "description": "Magic lamp effect inspired by the Compiz ones\n\nNB:\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)", "link": "https://extensions.gnome.org/extension/3740/compiz-alike-magic-lamp-effect/", "shell_version_map": {
     "38": {"version": "17", "sha256": "0mv8glz3bxxs6gqms282ji8l375alqbwfszd6y7j0q6x9qhl6bz4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2UtbWFnaWMtbGFtcC1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS1tYWdpYy1sYW1wLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="},
@@ -2671,12 +2682,12 @@
   }}
 , {"uuid": "ddterm@amezin.github.com", "name": "ddterm", "pname": "ddterm", "description": "Another drop down terminal extension for GNOME Shell. With tabs. Works on Wayland natively", "link": "https://extensions.gnome.org/extension/3780/ddterm/", "shell_version_map": {
     "38": {"version": "43", "sha256": "1g5266vxl5k6m2fi86jsjpnlf2dd7vzp243y6bxrmipj7m602vlx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kZHRlcm0vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQzCn0="},
-    "40": {"version": "47", "sha256": "0bz53q342q7zk2wbj3v32nafk09l6s2lpslrlpaxw208pi0z00ip", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGR0ZXJtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"},
-    "41": {"version": "47", "sha256": "0bz53q342q7zk2wbj3v32nafk09l6s2lpslrlpaxw208pi0z00ip", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGR0ZXJtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"},
-    "42": {"version": "47", "sha256": "0bz53q342q7zk2wbj3v32nafk09l6s2lpslrlpaxw208pi0z00ip", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGR0ZXJtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"},
-    "43": {"version": "47", "sha256": "0bz53q342q7zk2wbj3v32nafk09l6s2lpslrlpaxw208pi0z00ip", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGR0ZXJtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"},
-    "44": {"version": "47", "sha256": "0bz53q342q7zk2wbj3v32nafk09l6s2lpslrlpaxw208pi0z00ip", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGR0ZXJtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"},
-    "45": {"version": "50", "sha256": "0hjb2fzz4s681f5g9hg95c3bqx6cfhvhvdagph0zb24qf19vyicw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kZHRlcm0vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUwCn0="}
+    "40": {"version": "52", "sha256": "1krvwgyhm0arlxlkympc7flim5q3kcrsrf1mv7wi1d0p3y5xydby", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGR0ZXJtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Mgp9"},
+    "41": {"version": "52", "sha256": "1krvwgyhm0arlxlkympc7flim5q3kcrsrf1mv7wi1d0p3y5xydby", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGR0ZXJtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Mgp9"},
+    "42": {"version": "52", "sha256": "1krvwgyhm0arlxlkympc7flim5q3kcrsrf1mv7wi1d0p3y5xydby", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGR0ZXJtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Mgp9"},
+    "43": {"version": "52", "sha256": "1krvwgyhm0arlxlkympc7flim5q3kcrsrf1mv7wi1d0p3y5xydby", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGR0ZXJtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Mgp9"},
+    "44": {"version": "52", "sha256": "1krvwgyhm0arlxlkympc7flim5q3kcrsrf1mv7wi1d0p3y5xydby", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGR0ZXJtL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZHRlcm0iLAogICJ1dWlkIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Mgp9"},
+    "45": {"version": "51", "sha256": "1kddk47ywgnnw6q91sxss7vkymbljp9a8c8qh8rxayxdhvw9p4l6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgImdldHRleHQtZG9tYWluIjogImRkdGVybUBhbWV6aW4uZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kZHRlcm0vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUxCn0="}
   }}
 , {"uuid": "favorites-only-dash@nahuelwexd.github.io", "name": "Favorites-only Dash", "pname": "favorites-only-dash", "description": "Show only favorite apps on Dash", "link": "https://extensions.gnome.org/extension/3789/favorites-only-dash/", "shell_version_map": {
     "38": {"version": "1", "sha256": "110h019563j33gksaq5fs0z71sz1mslq1sbsmhk9mj3qggd9vs65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgb25seSBmYXZvcml0ZSBhcHBzIG9uIERhc2giLAogICJuYW1lIjogIkZhdm9yaXRlcy1vbmx5IERhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZmF2b3JpdGVzLW9ubHktZGFzaEBuYWh1ZWx3ZXhkLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxCn0="}
@@ -3022,14 +3033,16 @@
     "41": {"version": "5", "sha256": "0w4xsa52l9fgf7bihq9gvr4lxvhn28d7jcdr9wb54zx8sf8gbflc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ZlcnlDcmF6eURvZy9nbm9tZS1kaXNhYmxlLWdlc3R1cmVzIiwKICAidXVpZCI6ICJkaXNhYmxlLWdlc3R1cmVzLTIwMjFAdmVyeWNyYXp5ZG9nLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "42": {"version": "5", "sha256": "0w4xsa52l9fgf7bihq9gvr4lxvhn28d7jcdr9wb54zx8sf8gbflc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ZlcnlDcmF6eURvZy9nbm9tZS1kaXNhYmxlLWdlc3R1cmVzIiwKICAidXVpZCI6ICJkaXNhYmxlLWdlc3R1cmVzLTIwMjFAdmVyeWNyYXp5ZG9nLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "43": {"version": "5", "sha256": "0w4xsa52l9fgf7bihq9gvr4lxvhn28d7jcdr9wb54zx8sf8gbflc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ZlcnlDcmF6eURvZy9nbm9tZS1kaXNhYmxlLWdlc3R1cmVzIiwKICAidXVpZCI6ICJkaXNhYmxlLWdlc3R1cmVzLTIwMjFAdmVyeWNyYXp5ZG9nLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "44": {"version": "5", "sha256": "0w4xsa52l9fgf7bihq9gvr4lxvhn28d7jcdr9wb54zx8sf8gbflc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ZlcnlDcmF6eURvZy9nbm9tZS1kaXNhYmxlLWdlc3R1cmVzIiwKICAidXVpZCI6ICJkaXNhYmxlLWdlc3R1cmVzLTIwMjFAdmVyeWNyYXp5ZG9nLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}
+    "44": {"version": "5", "sha256": "0w4xsa52l9fgf7bihq9gvr4lxvhn28d7jcdr9wb54zx8sf8gbflc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ZlcnlDcmF6eURvZy9nbm9tZS1kaXNhYmxlLWdlc3R1cmVzIiwKICAidXVpZCI6ICJkaXNhYmxlLWdlc3R1cmVzLTIwMjFAdmVyeWNyYXp5ZG9nLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
+    "45": {"version": "7", "sha256": "1mzqrwn9x4m0hliv3gr1dj2ybl1cnnwnjxsm1168cwdxk55cvlbd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVmVyeUNyYXp5RG9nL2dub21lLWRpc2FibGUtZ2VzdHVyZXMiLAogICJ1dWlkIjogImRpc2FibGUtZ2VzdHVyZXMtMjAyMUB2ZXJ5Y3Jhenlkb2cuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}
   }}
 , {"uuid": "pi-hole@fnxweb.com", "name": "pi-hole", "pname": "pi-hole", "description": "Status and basic controls of local Pi-Hole", "link": "https://extensions.gnome.org/extension/4051/pi-hole/", "shell_version_map": {
     "38": {"version": "1", "sha256": "0m19lv8zfhh8vqn0ln4a8g4g4hw9p6h98gb656vb0hblp5gsycfm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZueHdlYi9nbm9tZS1zaGVsbC1waS1ob2xlIiwKICAidXVpZCI6ICJwaS1ob2xlQGZueHdlYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"},
     "41": {"version": "5", "sha256": "1dqa2bpigmycq6nsr04p8n91aj8pmzw5vn0d2za112mizzmb7xpc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZm54d2ViL2dub21lLXNoZWxsLXBpLWhvbGUiLAogICJ1dWlkIjogInBpLWhvbGVAZm54d2ViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "42": {"version": "5", "sha256": "1dqa2bpigmycq6nsr04p8n91aj8pmzw5vn0d2za112mizzmb7xpc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZm54d2ViL2dub21lLXNoZWxsLXBpLWhvbGUiLAogICJ1dWlkIjogInBpLWhvbGVAZm54d2ViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "43": {"version": "6", "sha256": "0zk6hm4ynhy7cbnq225wymhw8na1n7rzpni6gyp6wr420mpidn6i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mbnh3ZWIvZ25vbWUtc2hlbGwtcGktaG9sZSIsCiAgInV1aWQiOiAicGktaG9sZUBmbnh3ZWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
-    "44": {"version": "8", "sha256": "1p2na9h7wd8r3g7yyz9qm42ivakmbzinmfnk2r3ch3kdsg6p9dw7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mbnh3ZWIvZ25vbWUtc2hlbGwtcGktaG9sZSIsCiAgInV1aWQiOiAicGktaG9sZUBmbnh3ZWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}
+    "44": {"version": "8", "sha256": "1p2na9h7wd8r3g7yyz9qm42ivakmbzinmfnk2r3ch3kdsg6p9dw7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mbnh3ZWIvZ25vbWUtc2hlbGwtcGktaG9sZSIsCiAgInV1aWQiOiAicGktaG9sZUBmbnh3ZWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="},
+    "45": {"version": "11", "sha256": "0c71jaqv42n4hw1xbzvn1fy9hhzl0kxx42jai2a35nqqhkjir01h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mbnh3ZWIvZ25vbWUtc2hlbGwtcGktaG9sZSIsCiAgInV1aWQiOiAicGktaG9sZUBmbnh3ZWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}
   }}
 , {"uuid": "miniCal3@mtharpe", "name": "Minimalist Calendar 3", "pname": "minimalist-calendar-3", "description": "Remove event list and clock/calendar app buttons from the calendar window. This is just an updated version of v2 by breiq", "link": "https://extensions.gnome.org/extension/4052/minimalist-calendar-3/", "shell_version_map": {
     "38": {"version": "4", "sha256": "1g52av962qcq9rrw91h6d7xqgh61wkn87srr3vffclkmkgmns5xq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQyLjEiLAogICAgIjQyLjIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdGhhcnBlL2dub21lLW1pbkNhbDMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJtaW5pQ2FsM0BtdGhhcnBlIiwKICAidmVyc2lvbiI6IDQKfQ=="},
@@ -3293,12 +3306,12 @@
     "40": {"version": "1", "sha256": "1awjnic8zca2f6viah2l4ai0pyfdyisxna9ys1zzpya11rwj6jk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBhbGxvd3MgeW91IGRvIGhhdmUgaW5kZXBlbmRlbnQgYXBwIHN3aXRjaGVyIChhbHQtdGFiKSBmb3IgZWFjaCB3b3Jrc3BhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJpdmF0ZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiUHJpdmF0ZSBTd2l0Y2hlciIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YXRlLXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIiwKICAidXVpZCI6ICJwcml2YXRlLXN3aXRjaGVyQGR6aWJhbi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}
   }}
 , {"uuid": "colosseum@sereneblue", "name": "Colosseum", "pname": "colosseum", "description": "View live scores for your favorite sports teams.", "link": "https://extensions.gnome.org/extension/4207/colosseum/", "shell_version_map": {
-    "40": {"version": "27", "sha256": "1v75z39zndyhi7klsqf6vbk486nc1pzs8rj82s0llzjkw31kr3kq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDI3Cn0="},
-    "41": {"version": "27", "sha256": "1v75z39zndyhi7klsqf6vbk486nc1pzs8rj82s0llzjkw31kr3kq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDI3Cn0="},
-    "42": {"version": "27", "sha256": "1v75z39zndyhi7klsqf6vbk486nc1pzs8rj82s0llzjkw31kr3kq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDI3Cn0="},
-    "43": {"version": "27", "sha256": "1v75z39zndyhi7klsqf6vbk486nc1pzs8rj82s0llzjkw31kr3kq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDI3Cn0="},
-    "44": {"version": "27", "sha256": "1v75z39zndyhi7klsqf6vbk486nc1pzs8rj82s0llzjkw31kr3kq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDI3Cn0="},
-    "45": {"version": "25", "sha256": "18xcak2wwhjgzs21lq7dihmhh6vhcxi2b7wcwwam81wp6lwswkvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbG9zc2V1bSIsCiAgInV1aWQiOiAiY29sb3NzZXVtQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}
+    "40": {"version": "31", "sha256": "1c7753fyqqh8x3hnfahpqjwiqil8kirxcfkmm7z39pl7iairs0zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMxCn0="},
+    "41": {"version": "31", "sha256": "1c7753fyqqh8x3hnfahpqjwiqil8kirxcfkmm7z39pl7iairs0zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMxCn0="},
+    "42": {"version": "31", "sha256": "1c7753fyqqh8x3hnfahpqjwiqil8kirxcfkmm7z39pl7iairs0zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMxCn0="},
+    "43": {"version": "31", "sha256": "1c7753fyqqh8x3hnfahpqjwiqil8kirxcfkmm7z39pl7iairs0zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMxCn0="},
+    "44": {"version": "31", "sha256": "1c7753fyqqh8x3hnfahpqjwiqil8kirxcfkmm7z39pl7iairs0zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMxCn0="},
+    "45": {"version": "30", "sha256": "0bzj3b6v25s20wizyfgginzb4r8spj8hq6x5kp34paqq10ncjys2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="}
   }}
 , {"uuid": "gnome-plat-workspace@stonegate.me", "name": "Gnome 40 Flat Workspace", "pname": "gnome-40-plat-workspace", "description": "Remove shadow for workspace background in gnome 40.\nSource code https://github.com/stonega/gnome-extension-flat-workspace", "link": "https://extensions.gnome.org/extension/4215/gnome-40-plat-workspace/", "shell_version_map": {
     "40": {"version": "3", "sha256": "0ly2dab9c0l7w1axnqs7xk2szd5jm2ifgniz2snw5mwkr5pw76nb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBzaGFkb3cgZm9yIHdvcmtzcGFjZSBiYWNrZ3JvdW5kIGluIGdub21lIDQwLlxuU291cmNlIGNvZGUgaHR0cHM6Ly9naXRodWIuY29tL3N0b25lZ2EvZ25vbWUtZXh0ZW5zaW9uLWZsYXQtd29ya3NwYWNlIiwKICAibmFtZSI6ICJHbm9tZSA0MCBGbGF0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1wbGF0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZ25vbWUtcGxhdC13b3Jrc3BhY2VAc3RvbmVnYXRlLm1lIiwKICAidmVyc2lvbiI6IDMKfQ=="}
@@ -3322,7 +3335,7 @@
     "42": {"version": "14", "sha256": "0i6qcfiv2q80161mm0fyb8xmfsc6pcjwsy1jagnxbzihqr6xpd2j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNob3dzIHRoZSBiYXR0ZXJ5IG9mIHRoZSB3aXJlbGVzcyBrZXlib2FyZHMsIG1pY2UsIGFuZCBnYW1lIGNvbnRyb2xsZXJzIGluIHBlcmNlbnRhZ2VzIGFuZCBjb2xvcnMuIE11bHRpcGxlIGRldmljZXMgYXJlIHN1cHBvcnRlZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlbGVzcy1oaWQiLAogICJuYW1lIjogIldpcmVsZXNzIEhJRCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2lyZWxlc3MtaGlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vd2lyZWxlc3MtaGlkIiwKICAidXVpZCI6ICJ3aXJlbGVzcy1oaWRAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="},
     "43": {"version": "14", "sha256": "0i6qcfiv2q80161mm0fyb8xmfsc6pcjwsy1jagnxbzihqr6xpd2j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNob3dzIHRoZSBiYXR0ZXJ5IG9mIHRoZSB3aXJlbGVzcyBrZXlib2FyZHMsIG1pY2UsIGFuZCBnYW1lIGNvbnRyb2xsZXJzIGluIHBlcmNlbnRhZ2VzIGFuZCBjb2xvcnMuIE11bHRpcGxlIGRldmljZXMgYXJlIHN1cHBvcnRlZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlbGVzcy1oaWQiLAogICJuYW1lIjogIldpcmVsZXNzIEhJRCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2lyZWxlc3MtaGlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vd2lyZWxlc3MtaGlkIiwKICAidXVpZCI6ICJ3aXJlbGVzcy1oaWRAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="},
     "44": {"version": "14", "sha256": "0i6qcfiv2q80161mm0fyb8xmfsc6pcjwsy1jagnxbzihqr6xpd2j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNob3dzIHRoZSBiYXR0ZXJ5IG9mIHRoZSB3aXJlbGVzcyBrZXlib2FyZHMsIG1pY2UsIGFuZCBnYW1lIGNvbnRyb2xsZXJzIGluIHBlcmNlbnRhZ2VzIGFuZCBjb2xvcnMuIE11bHRpcGxlIGRldmljZXMgYXJlIHN1cHBvcnRlZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlbGVzcy1oaWQiLAogICJuYW1lIjogIldpcmVsZXNzIEhJRCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2lyZWxlc3MtaGlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vd2lyZWxlc3MtaGlkIiwKICAidXVpZCI6ICJ3aXJlbGVzcy1oaWRAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="},
-    "45": {"version": "16", "sha256": "1axrwjzh9anynb1kqgfyg5iwdi3racs1z01yns90pbhfsh68v2vf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNob3dzIHRoZSBiYXR0ZXJ5IG9mIHRoZSB3aXJlbGVzcyBrZXlib2FyZHMsIG1pY2UsIGFuZCBnYW1lIGNvbnRyb2xsZXJzIGluIHBlcmNlbnRhZ2VzIGFuZCBjb2xvcnMuIE11bHRpcGxlIGRldmljZXMgYXJlIHN1cHBvcnRlZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlbGVzcy1oaWQiLAogICJuYW1lIjogIldpcmVsZXNzIEhJRCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2lyZWxlc3MtaGlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZjaGx1bS93aXJlbGVzcy1oaWQiLAogICJ1dWlkIjogIndpcmVsZXNzLWhpZEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}
+    "45": {"version": "17", "sha256": "07i480z5srfgzbn13vg4adxgd1k5rk2dnnd7fkpk8s8m779nzqvd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNob3dzIHRoZSBiYXR0ZXJ5IG9mIHRoZSB3aXJlbGVzcyBrZXlib2FyZHMsIG1pY2UsIGFuZCBnYW1lIGNvbnRyb2xsZXJzIGluIHBlcmNlbnRhZ2VzIGFuZCBjb2xvcnMuIE11bHRpcGxlIGRldmljZXMgYXJlIHN1cHBvcnRlZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlbGVzcy1oaWQiLAogICJuYW1lIjogIldpcmVsZXNzIEhJRCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJjaGx1bXNreXZhY2xhdkBnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2lyZWxlc3MtaGlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vd2lyZWxlc3MtaGlkIiwKICAidXVpZCI6ICJ3aXJlbGVzcy1oaWRAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="}
   }}
 , {"uuid": "better-osd@hllvc", "name": "Better OSD - Gnome 40", "pname": "better-osd-gnome-40", "description": "Customize your OSD popups. Move, resize, set delay and transparency!", "link": "https://extensions.gnome.org/extension/4231/better-osd-gnome-40/", "shell_version_map": {
     "40": {"version": "6", "sha256": "0945xh7a607x3f9796gi3l5zylqa8gj1pnw44hcaak5sc6zpahgv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIE9TRCBwb3B1cHMuIE1vdmUsIHJlc2l6ZSwgc2V0IGRlbGF5IGFuZCB0cmFuc3BhcmVuY3khIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmV0dGVyLW9zZCIsCiAgIm5hbWUiOiAiQmV0dGVyIE9TRCAtIEdub21lIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQxLjEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9obGx2Yy9iZXR0ZXItb3NkIiwKICAidXVpZCI6ICJiZXR0ZXItb3NkQGhsbHZjIiwKICAidmVyc2lvbiI6IDYKfQ=="},
@@ -3388,7 +3401,7 @@
     "42": {"version": "32", "sha256": "1dvpl7va3gcv323i7l12jidbfmy93in1d1vr5aj6568m0gh7lxk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInN0dWFydGhheWh1cnN0IiwKICAgICJwYXlwYWwiOiAic3R1YXJ0YWhheWh1cnN0IgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJuYW1lIjogIkFscGhhYmV0aWNhbCBBcHAgR3JpZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHBoYWJldGljYWwtYXBwLWdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L2FscGhhYmV0aWNhbC1ncmlkLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQWxwaGFiZXRpY2FsQXBwR3JpZEBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiAzMgp9"},
     "43": {"version": "32", "sha256": "1dvpl7va3gcv323i7l12jidbfmy93in1d1vr5aj6568m0gh7lxk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInN0dWFydGhheWh1cnN0IiwKICAgICJwYXlwYWwiOiAic3R1YXJ0YWhheWh1cnN0IgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJuYW1lIjogIkFscGhhYmV0aWNhbCBBcHAgR3JpZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHBoYWJldGljYWwtYXBwLWdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L2FscGhhYmV0aWNhbC1ncmlkLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQWxwaGFiZXRpY2FsQXBwR3JpZEBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiAzMgp9"},
     "44": {"version": "32", "sha256": "1dvpl7va3gcv323i7l12jidbfmy93in1d1vr5aj6568m0gh7lxk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInN0dWFydGhheWh1cnN0IiwKICAgICJwYXlwYWwiOiAic3R1YXJ0YWhheWh1cnN0IgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJuYW1lIjogIkFscGhhYmV0aWNhbCBBcHAgR3JpZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHBoYWJldGljYWwtYXBwLWdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L2FscGhhYmV0aWNhbC1ncmlkLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQWxwaGFiZXRpY2FsQXBwR3JpZEBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiAzMgp9"},
-    "45": {"version": "38", "sha256": "0785gzgglwlx6kmcnixm625dnhg0nzryznf111zhx9bhlq2n8695", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInN0dWFydGhheWh1cnN0IiwKICAgICJwYXlwYWwiOiAic3R1YXJ0YWhheWh1cnN0IgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJuYW1lIjogIkFscGhhYmV0aWNhbCBBcHAgR3JpZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHBoYWJldGljYWwtYXBwLWdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvYWxwaGFiZXRpY2FsLWdyaWQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDM4Cn0="}
+    "45": {"version": "39", "sha256": "1rp3czq2ggmr71mwpn0dir0zmnycwridgxvpx8xz45r8h0ra4ynv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInN0dWFydGhheWh1cnN0IiwKICAgICJwYXlwYWwiOiAic3R1YXJ0YWhheWh1cnN0IgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJuYW1lIjogIkFscGhhYmV0aWNhbCBBcHAgR3JpZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHBoYWJldGljYWwtYXBwLWdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L2FscGhhYmV0aWNhbC1ncmlkLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQWxwaGFiZXRpY2FsQXBwR3JpZEBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiAzOQp9"}
   }}
 , {"uuid": "tofumenu@tofu", "name": "Tofu Menu", "pname": "tofu-menu", "description": "Quick access menu for the GNOME panel with options that help ease the workflow for newcomers and power users alike.\n\nhttps://github.com/tofutech/tofumenu", "link": "https://extensions.gnome.org/extension/4272/tofu-menu/", "shell_version_map": {
     "40": {"version": "2", "sha256": "05ndbjvvz0v1y8iq6ngqylz4z1ld6q5ibhkr5dh24wqc4wiky30v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyBtZW51IGZvciB0aGUgR05PTUUgcGFuZWwgd2l0aCBvcHRpb25zIHRoYXQgaGVscCBlYXNlIHRoZSB3b3JrZmxvdyBmb3IgbmV3Y29tZXJzIGFuZCBwb3dlciB1c2VycyBhbGlrZS5cblxuaHR0cHM6Ly9naXRodWIuY29tL3RvZnV0ZWNoL3RvZnVtZW51IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmVkb3JhLW1lbnUiLAogICJuYW1lIjogIlRvZnUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcudG9mdS5mZWRvcmEtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidG9mdW1lbnVAdG9mdSIsCiAgInZlcnNpb24iOiAyCn0="}
@@ -3678,7 +3691,7 @@
     "42": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
     "43": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
     "44": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
-    "45": {"version": "28", "sha256": "1jpkn14hxpk0zr2364fri48izsvfzmrvfg2ii5xy7m57nz6c3mp3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXJ5YW4yMC9Mb2dvbWVudSIsCiAgInV1aWQiOiAibG9nb21lbnVAYXJ5YW5fayIsCiAgInZlcnNpb24iOiAyOCwKICAidmVyc2lvbi1uYW1lIjogIjIyLjIiCn0="}
+    "45": {"version": "29", "sha256": "06ws3pv2yw9vb2qc97b7pd622a7dvamflvd19pr5633wsagd8sza", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjksCiAgInZlcnNpb24tbmFtZSI6ICIyMi40Igp9"}
   }}
 , {"uuid": "rog-manager@rog", "name": "Rog Asus Manager", "pname": "rog-asus-manager", "description": "Asus ROG manager", "link": "https://extensions.gnome.org/extension/4452/rog-asus-manager/", "shell_version_map": {
     "38": {"version": "4", "sha256": "194k3qzjd05rki20ww0nv8001aiyp4ih9abv82g64058x8rmnff5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdXMgUk9HIG1hbmFnZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyb2ctbWFuYWdlciIsCiAgIm5hbWUiOiAiUm9nIEFzdXMgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yb2dtYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlamFuZHJvLW1vdXJhcy9yb2ctbWFuYWdlciIsCiAgInV1aWQiOiAicm9nLW1hbmFnZXJAcm9nIiwKICAidmVyc2lvbiI6IDQKfQ=="}
@@ -3769,7 +3782,7 @@
     "42": {"version": "18", "sha256": "0dsr7437fnbgyz3mhdqgjz4c6cs69c4zlx18z4ibqbfjib47z1mn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBwcml2YWN5IHNldHRpbmdzIHRvZ2dsZXMgdG8gdGhlIEdOT01FIHN5c3RlbSBtZW51IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJzdHVhcnRoYXlodXJzdCIsCiAgICAicGF5cGFsIjogInN0dWFydGFoYXlodXJzdCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBRdWljayBTZXR0aW5ncyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YWN5LW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3ByaXZhY3ktbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlByaXZhY3lNZW51QHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDE4Cn0="},
     "43": {"version": "18", "sha256": "0dsr7437fnbgyz3mhdqgjz4c6cs69c4zlx18z4ibqbfjib47z1mn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBwcml2YWN5IHNldHRpbmdzIHRvZ2dsZXMgdG8gdGhlIEdOT01FIHN5c3RlbSBtZW51IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJzdHVhcnRoYXlodXJzdCIsCiAgICAicGF5cGFsIjogInN0dWFydGFoYXlodXJzdCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBRdWljayBTZXR0aW5ncyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YWN5LW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3ByaXZhY3ktbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlByaXZhY3lNZW51QHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDE4Cn0="},
     "44": {"version": "18", "sha256": "0dsr7437fnbgyz3mhdqgjz4c6cs69c4zlx18z4ibqbfjib47z1mn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBwcml2YWN5IHNldHRpbmdzIHRvZ2dsZXMgdG8gdGhlIEdOT01FIHN5c3RlbSBtZW51IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJzdHVhcnRoYXlodXJzdCIsCiAgICAicGF5cGFsIjogInN0dWFydGFoYXlodXJzdCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBRdWljayBTZXR0aW5ncyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YWN5LW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3ByaXZhY3ktbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlByaXZhY3lNZW51QHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDE4Cn0="},
-    "45": {"version": "23", "sha256": "08x0hm9lvz5x5g7ppz2g6m8fr2ksxxphcf7by8y9qn25pqmkk5p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBwcml2YWN5IHNldHRpbmdzIHRvZ2dsZXMgdG8gdGhlIEdOT01FIHN5c3RlbSBtZW51XG5OT1RFOiBUaGlzIG9ubHkgcHJvdmlkZXMgcXVpY2sgYWNjZXNzIHRvIHNldHRpbmdzLCBpdCBkb2Vzbid0IGRpcmVjdGx5IGFjY2VzcyBoYXJkd2FyZSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic3R1YXJ0aGF5aHVyc3QiLAogICAgInBheXBhbCI6ICJzdHVhcnRhaGF5aHVyc3QiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiUHJpdmFjeU1lbnVAc3R1YXJ0aGF5aHVyc3QiLAogICJuYW1lIjogIlByaXZhY3kgUXVpY2sgU2V0dGluZ3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpdmFjeS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0dWFydGhheWh1cnN0L3ByaXZhY3ktbWVudS1leHRlbnNpb24iLAogICJ1dWlkIjogIlByaXZhY3lNZW51QHN0dWFydGhheWh1cnN0IiwKICAidmVyc2lvbiI6IDIzCn0="}
+    "45": {"version": "24", "sha256": "1w3p959rv31mv44pzjsnbai8jj2s3ldjr7366mvfpgkfw4n4fi7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBwcml2YWN5IHNldHRpbmdzIHRvZ2dsZXMgdG8gdGhlIEdOT01FIHN5c3RlbSBtZW51XG5OT1RFOiBUaGlzIG9ubHkgcHJvdmlkZXMgcXVpY2sgYWNjZXNzIHRvIHNldHRpbmdzLCBpdCBkb2Vzbid0IGRpcmVjdGx5IGFjY2VzcyBoYXJkd2FyZSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic3R1YXJ0aGF5aHVyc3QiLAogICAgInBheXBhbCI6ICJzdHVhcnRhaGF5aHVyc3QiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiUHJpdmFjeU1lbnVAc3R1YXJ0aGF5aHVyc3QiLAogICJuYW1lIjogIlByaXZhY3kgUXVpY2sgU2V0dGluZ3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpdmFjeS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9wcml2YWN5LW1lbnUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiAyNAp9"}
   }}
 , {"uuid": "hide-panel-lite@fthx", "name": "Hide Panel Lite", "pname": "hide-panel-light-version-without-hot-corner", "description": "Hide top panel except in overview.\n\nFor those who don't need a hot corner (e.g. running GNOME 40+ with three fingers gestures). Very very light extension. No options, no bugs. ;-)", "link": "https://extensions.gnome.org/extension/4496/hide-panel-light-version-without-hot-corner/", "shell_version_map": {
     "38": {"version": "2", "sha256": "13kwd7sh0w34881wwaqvv0mchd7ym7av5s658jcrq2n8n2zma4xi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgTGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbC1saXRlIiwKICAidXVpZCI6ICJoaWRlLXBhbmVsLWxpdGVAZnRoeCIsCiAgInZlcnNpb24iOiAyCn0="},
@@ -3843,7 +3856,7 @@
     "42": {"version": "27", "sha256": "0mh69mrrnc59njmzm1l4rcznw4ixcp8y4d5k9m7ckkk861lm0k1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2x1bmRhbC90YWN0aWxlIiwKICAidXVpZCI6ICJ0YWN0aWxlQGx1bmRhbC5pbyIsCiAgInZlcnNpb24iOiAyNwp9"},
     "43": {"version": "27", "sha256": "0mh69mrrnc59njmzm1l4rcznw4ixcp8y4d5k9m7ckkk861lm0k1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2x1bmRhbC90YWN0aWxlIiwKICAidXVpZCI6ICJ0YWN0aWxlQGx1bmRhbC5pbyIsCiAgInZlcnNpb24iOiAyNwp9"},
     "44": {"version": "27", "sha256": "0mh69mrrnc59njmzm1l4rcznw4ixcp8y4d5k9m7ckkk861lm0k1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2x1bmRhbC90YWN0aWxlIiwKICAidXVpZCI6ICJ0YWN0aWxlQGx1bmRhbC5pbyIsCiAgInZlcnNpb24iOiAyNwp9"},
-    "45": {"version": "29", "sha256": "14v87hfr00n05hz32rzmkmas2mcakmjmg03j6k3j172dnk1i3b7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbHVuZGFsL3RhY3RpbGUiLAogICJ1dWlkIjogInRhY3RpbGVAbHVuZGFsLmlvIiwKICAidmVyc2lvbiI6IDI5Cn0="}
+    "45": {"version": "30", "sha256": "06ys92waii3id1fxl4c3v17335h06l938a69vmdhx2p354y4r1aq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbHVuZGFsL3RhY3RpbGUiLAogICJ1dWlkIjogInRhY3RpbGVAbHVuZGFsLmlvIiwKICAidmVyc2lvbiI6IDMwCn0="}
   }}
 , {"uuid": "killapp@adam.gadmz", "name": "Kill App", "pname": "kill-app", "description": "Force quit or kill application", "link": "https://extensions.gnome.org/extension/4551/kill-app/", "shell_version_map": {
     "38": {"version": "5", "sha256": "1d768xi63z8917p0m67wdy5vmv514yq6p3m84qyzk5lv084h5x0y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiRm9yY2UgcXVpdCBvciBraWxsIGFwcGxpY2F0aW9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbGxhcHAiLAogICJuYW1lIjogIktpbGwgQXBwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZHVvbmdnaWFraGFuaGIvS2lsbGFwcF9HTk9NRV9FeHRlbnNpb24iLAogICJ1dWlkIjogImtpbGxhcHBAYWRhbS5nYWRteiIsCiAgInZlcnNpb24iOiA1Cn0="},
@@ -3913,7 +3926,7 @@
     "43": {"version": "8", "sha256": "0js5z8slr8h68bzmivh4fca2hznd6k8lbmqkmikm4v848c2gd79b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cbiBJdCBpcyBhIGZvcmsgb2YgSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9JbnRlcm5ldFNwZWVkTW9uaXRvciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1vbml0b3JAUmlzaHUiLAogICJ2ZXJzaW9uIjogOAp9"},
     "44": {"version": "8", "sha256": "0js5z8slr8h68bzmivh4fca2hznd6k8lbmqkmikm4v848c2gd79b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cbiBJdCBpcyBhIGZvcmsgb2YgSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9JbnRlcm5ldFNwZWVkTW9uaXRvciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1vbml0b3JAUmlzaHUiLAogICJ2ZXJzaW9uIjogOAp9"}
   }}
-, {"uuid": "simulate-switching-workspaces-on-active-monitor@micheledaros.com", "name": "Switch workspaces on active monitor", "pname": "switch-workspaces-on-active-monitor", "description": "Simulates switching the workspace on the active monitor only. Ctrl+Alt+q switches to the previous workspace, Ctrl+Alt+a switches to the next", "link": "https://extensions.gnome.org/extension/4586/switch-workspaces-on-active-monitor/", "shell_version_map": {
+, {"uuid": "simulate-switching-workspaces-on-active-monitor@micheledaros.com", "name": "Switch workspaces on active monitor", "pname": "switch-workspaces-on-active-monitor", "description": "Simulates switching the workspace on the active monitor only.", "link": "https://extensions.gnome.org/extension/4586/switch-workspaces-on-active-monitor/", "shell_version_map": {
     "38": {"version": "10", "sha256": "18cs5lix4bws201vqbcrgv0icc57njqp85f66k75sqlai7jqxawf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXVsYXRlcyBzd2l0Y2hpbmcgdGhlIHdvcmtzcGFjZSBvbiB0aGUgYWN0aXZlIG1vbml0b3Igb25seS4gQ3RybCtBbHQrcSBzd2l0Y2hlcyB0byB0aGUgcHJldmlvdXMgd29ya3NwYWNlLCBDdHJsK0FsdCthIHN3aXRjaGVzIHRvIHRoZSBuZXh0IiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyBvbiBhY3RpdmUgbW9uaXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiZGFyb3NtaWNAZ21haWwuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taWNoZWxlZGFyb3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yIiwKICAidXVpZCI6ICJzaW11bGF0ZS1zd2l0Y2hpbmctd29ya3NwYWNlcy1vbi1hY3RpdmUtbW9uaXRvckBtaWNoZWxlZGFyb3MuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="},
     "40": {"version": "10", "sha256": "18cs5lix4bws201vqbcrgv0icc57njqp85f66k75sqlai7jqxawf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXVsYXRlcyBzd2l0Y2hpbmcgdGhlIHdvcmtzcGFjZSBvbiB0aGUgYWN0aXZlIG1vbml0b3Igb25seS4gQ3RybCtBbHQrcSBzd2l0Y2hlcyB0byB0aGUgcHJldmlvdXMgd29ya3NwYWNlLCBDdHJsK0FsdCthIHN3aXRjaGVzIHRvIHRoZSBuZXh0IiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyBvbiBhY3RpdmUgbW9uaXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiZGFyb3NtaWNAZ21haWwuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taWNoZWxlZGFyb3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yIiwKICAidXVpZCI6ICJzaW11bGF0ZS1zd2l0Y2hpbmctd29ya3NwYWNlcy1vbi1hY3RpdmUtbW9uaXRvckBtaWNoZWxlZGFyb3MuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="},
     "41": {"version": "10", "sha256": "18cs5lix4bws201vqbcrgv0icc57njqp85f66k75sqlai7jqxawf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXVsYXRlcyBzd2l0Y2hpbmcgdGhlIHdvcmtzcGFjZSBvbiB0aGUgYWN0aXZlIG1vbml0b3Igb25seS4gQ3RybCtBbHQrcSBzd2l0Y2hlcyB0byB0aGUgcHJldmlvdXMgd29ya3NwYWNlLCBDdHJsK0FsdCthIHN3aXRjaGVzIHRvIHRoZSBuZXh0IiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyBvbiBhY3RpdmUgbW9uaXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiZGFyb3NtaWNAZ21haWwuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taWNoZWxlZGFyb3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yIiwKICAidXVpZCI6ICJzaW11bGF0ZS1zd2l0Y2hpbmctd29ya3NwYWNlcy1vbi1hY3RpdmUtbW9uaXRvckBtaWNoZWxlZGFyb3MuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="},
@@ -3938,7 +3951,8 @@
     "41": {"version": "12", "sha256": "1yl96vx8mi60avp710fqwkd8c51d47ddc3vkdwq5l73frib22gg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZSBhbmQgbGV0cyB5b3UgdHVybiBvZmYgdGhlIGFubm95aW5nIFwiQmx1ZXRvb3RoIGdldHMgdHVybmVkIG9uIHdoZW4gSSBkaXNhYmxlIGFpcnBsYW5lIG1vZGVcIiBiZWhhdmlvdXIuIiwKICAibmFtZSI6ICJTYW5lIEFpcnBsYW5lIE1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hLaXBwaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2FuZS1haXJwbGFuZS1tb2RlIiwKICAidXVpZCI6ICJzYW5lLWFpcnBsYW5lLW1vZGVAa2lwcGkiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
     "42": {"version": "12", "sha256": "1yl96vx8mi60avp710fqwkd8c51d47ddc3vkdwq5l73frib22gg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZSBhbmQgbGV0cyB5b3UgdHVybiBvZmYgdGhlIGFubm95aW5nIFwiQmx1ZXRvb3RoIGdldHMgdHVybmVkIG9uIHdoZW4gSSBkaXNhYmxlIGFpcnBsYW5lIG1vZGVcIiBiZWhhdmlvdXIuIiwKICAibmFtZSI6ICJTYW5lIEFpcnBsYW5lIE1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hLaXBwaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2FuZS1haXJwbGFuZS1tb2RlIiwKICAidXVpZCI6ICJzYW5lLWFpcnBsYW5lLW1vZGVAa2lwcGkiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
     "43": {"version": "12", "sha256": "1yl96vx8mi60avp710fqwkd8c51d47ddc3vkdwq5l73frib22gg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZSBhbmQgbGV0cyB5b3UgdHVybiBvZmYgdGhlIGFubm95aW5nIFwiQmx1ZXRvb3RoIGdldHMgdHVybmVkIG9uIHdoZW4gSSBkaXNhYmxlIGFpcnBsYW5lIG1vZGVcIiBiZWhhdmlvdXIuIiwKICAibmFtZSI6ICJTYW5lIEFpcnBsYW5lIE1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hLaXBwaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2FuZS1haXJwbGFuZS1tb2RlIiwKICAidXVpZCI6ICJzYW5lLWFpcnBsYW5lLW1vZGVAa2lwcGkiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "44": {"version": "12", "sha256": "1yl96vx8mi60avp710fqwkd8c51d47ddc3vkdwq5l73frib22gg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZSBhbmQgbGV0cyB5b3UgdHVybiBvZmYgdGhlIGFubm95aW5nIFwiQmx1ZXRvb3RoIGdldHMgdHVybmVkIG9uIHdoZW4gSSBkaXNhYmxlIGFpcnBsYW5lIG1vZGVcIiBiZWhhdmlvdXIuIiwKICAibmFtZSI6ICJTYW5lIEFpcnBsYW5lIE1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hLaXBwaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2FuZS1haXJwbGFuZS1tb2RlIiwKICAidXVpZCI6ICJzYW5lLWFpcnBsYW5lLW1vZGVAa2lwcGkiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}
+    "44": {"version": "12", "sha256": "1yl96vx8mi60avp710fqwkd8c51d47ddc3vkdwq5l73frib22gg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZSBhbmQgbGV0cyB5b3UgdHVybiBvZmYgdGhlIGFubm95aW5nIFwiQmx1ZXRvb3RoIGdldHMgdHVybmVkIG9uIHdoZW4gSSBkaXNhYmxlIGFpcnBsYW5lIG1vZGVcIiBiZWhhdmlvdXIuIiwKICAibmFtZSI6ICJTYW5lIEFpcnBsYW5lIE1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hLaXBwaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2FuZS1haXJwbGFuZS1tb2RlIiwKICAidXVpZCI6ICJzYW5lLWFpcnBsYW5lLW1vZGVAa2lwcGkiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "45": {"version": "13", "sha256": "0fciqv67rfahdhq3qi58lgng5d12s5vabipqqzlz19zkljh5hgr2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZSBhbmQgbGV0cyB5b3UgdHVybiBvZmYgdGhlIGFubm95aW5nIFwiQmx1ZXRvb3RoIGdldHMgdHVybmVkIG9uIHdoZW4gSSBkaXNhYmxlIGFpcnBsYW5lIG1vZGVcIiBiZWhhdmlvdXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2FuZS1haXJwbGFuZS1tb2RlIiwKICAibmFtZSI6ICJTYW5lIEFpcnBsYW5lIE1vZGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2FuZS1haXJwbGFuZS1tb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FudGlLaXBwaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2FuZS1haXJwbGFuZS1tb2RlIiwKICAidXVpZCI6ICJzYW5lLWFpcnBsYW5lLW1vZGVAa2lwcGkiLAogICJ2ZXJzaW9uIjogMTMsCiAgInZlcnNpb24tbmFtZSI6ICIyLjAuMCIKfQ=="}
   }}
 , {"uuid": "undecorate@tabdeveloper.com", "name": "Undecorate Window for Wayland", "pname": "undecorate-window-for-wayland", "description": "Adds undecorate option to window menu to toggle window decoration.", "link": "https://extensions.gnome.org/extension/4606/undecorate-window-for-wayland/", "shell_version_map": {
     "40": {"version": "4", "sha256": "11a93rd1vnnfhlqlb0j9ninx6ziqbbfbpqhi319zlx185358vfq0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdW5kZWNvcmF0ZSBvcHRpb24gdG8gd2luZG93IG1lbnUgdG8gdG9nZ2xlIHdpbmRvdyBkZWNvcmF0aW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11bmRlY29yYXRlIiwKICAibmFtZSI6ICJVbmRlY29yYXRlIFdpbmRvdyBmb3IgV2F5bGFuZCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iLAogICAgInRpbUB0YWJkZXZlbG9wZXIuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bmRlY29yYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90YnJhbnllbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tdW5kZWNvcmF0ZSIsCiAgInV1aWQiOiAidW5kZWNvcmF0ZUB0YWJkZXZlbG9wZXIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="},
@@ -3990,7 +4004,8 @@
     "41": {"version": "11", "sha256": "0ai3fz37ij5k6s5mjhh9934bmwxs2m3fnir26sjrdsk5b3pgrygz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBjbGFzc2ljIHRpdGxlIGJhciBvZiBtYXhpbWl6ZWQgWC5Pcmcgd2luZG93cyIsCiAgIm5hbWUiOiAiTm8gVGl0bGViYXIgV2hlbiBNYXhpbWl6ZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlY2RvdG5pbmphL25vLXRpdGxlYmFyLXdoZW4tbWF4aW1pemVkIiwKICAidXVpZCI6ICJuby10aXRsZWJhci13aGVuLW1heGltaXplZEBhbGVjLm5pbmphIiwKICAidmVyc2lvbiI6IDExCn0="},
     "42": {"version": "11", "sha256": "0ai3fz37ij5k6s5mjhh9934bmwxs2m3fnir26sjrdsk5b3pgrygz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBjbGFzc2ljIHRpdGxlIGJhciBvZiBtYXhpbWl6ZWQgWC5Pcmcgd2luZG93cyIsCiAgIm5hbWUiOiAiTm8gVGl0bGViYXIgV2hlbiBNYXhpbWl6ZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlY2RvdG5pbmphL25vLXRpdGxlYmFyLXdoZW4tbWF4aW1pemVkIiwKICAidXVpZCI6ICJuby10aXRsZWJhci13aGVuLW1heGltaXplZEBhbGVjLm5pbmphIiwKICAidmVyc2lvbiI6IDExCn0="},
     "43": {"version": "11", "sha256": "0ai3fz37ij5k6s5mjhh9934bmwxs2m3fnir26sjrdsk5b3pgrygz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBjbGFzc2ljIHRpdGxlIGJhciBvZiBtYXhpbWl6ZWQgWC5Pcmcgd2luZG93cyIsCiAgIm5hbWUiOiAiTm8gVGl0bGViYXIgV2hlbiBNYXhpbWl6ZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlY2RvdG5pbmphL25vLXRpdGxlYmFyLXdoZW4tbWF4aW1pemVkIiwKICAidXVpZCI6ICJuby10aXRsZWJhci13aGVuLW1heGltaXplZEBhbGVjLm5pbmphIiwKICAidmVyc2lvbiI6IDExCn0="},
-    "44": {"version": "11", "sha256": "0ai3fz37ij5k6s5mjhh9934bmwxs2m3fnir26sjrdsk5b3pgrygz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBjbGFzc2ljIHRpdGxlIGJhciBvZiBtYXhpbWl6ZWQgWC5Pcmcgd2luZG93cyIsCiAgIm5hbWUiOiAiTm8gVGl0bGViYXIgV2hlbiBNYXhpbWl6ZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlY2RvdG5pbmphL25vLXRpdGxlYmFyLXdoZW4tbWF4aW1pemVkIiwKICAidXVpZCI6ICJuby10aXRsZWJhci13aGVuLW1heGltaXplZEBhbGVjLm5pbmphIiwKICAidmVyc2lvbiI6IDExCn0="}
+    "44": {"version": "11", "sha256": "0ai3fz37ij5k6s5mjhh9934bmwxs2m3fnir26sjrdsk5b3pgrygz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBjbGFzc2ljIHRpdGxlIGJhciBvZiBtYXhpbWl6ZWQgWC5Pcmcgd2luZG93cyIsCiAgIm5hbWUiOiAiTm8gVGl0bGViYXIgV2hlbiBNYXhpbWl6ZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlY2RvdG5pbmphL25vLXRpdGxlYmFyLXdoZW4tbWF4aW1pemVkIiwKICAidXVpZCI6ICJuby10aXRsZWJhci13aGVuLW1heGltaXplZEBhbGVjLm5pbmphIiwKICAidmVyc2lvbiI6IDExCn0="},
+    "45": {"version": "14", "sha256": "07q32416kk7iilq2ifkll6ql583bavmcy68n9vcxlxxkakv0xfn4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBjbGFzc2ljIHRpdGxlIGJhciBvZiBtYXhpbWl6ZWQgWC5Pcmcgd2luZG93cyIsCiAgIm5hbWUiOiAiTm8gVGl0bGViYXIgV2hlbiBNYXhpbWl6ZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlY2RvdG5pbmphL25vLXRpdGxlYmFyLXdoZW4tbWF4aW1pemVkIiwKICAidXVpZCI6ICJuby10aXRsZWJhci13aGVuLW1heGltaXplZEBhbGVjLm5pbmphIiwKICAidmVyc2lvbiI6IDE0Cn0="}
   }}
 , {"uuid": "cryptowatch@d0x2f.github.com", "name": "CryptoWatch", "pname": "cryptowatch", "description": "Display live crypto portfolio balances.", "link": "https://extensions.gnome.org/extension/4633/cryptowatch/", "shell_version_map": {
     "40": {"version": "10", "sha256": "1q980xnrarcvzfpvdkn1pwz436k296g7l9d813zrl40hq7dwjzh3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbGl2ZSBjcnlwdG8gcG9ydGZvbGlvIGJhbGFuY2VzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJjcnlwdG93YXRjaCIsCiAgImdldHRleHQtZG9tYWluIjogImNyeXB0b3dhdGNoIiwKICAibmFtZSI6ICJDcnlwdG9XYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jcnlwdG93YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kMHgyZi9DcnlwdG9XYXRjaCIsCiAgInV1aWQiOiAiY3J5cHRvd2F0Y2hAZDB4MmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
@@ -4011,10 +4026,10 @@
 , {"uuid": "desktop-cube@schneegans.github.com", "name": "Desktop Cube", "pname": "desktop-cube", "description": "Indulge in nostalgia with useless 3D effects.", "link": "https://extensions.gnome.org/extension/4648/desktop-cube/", "shell_version_map": {
     "40": {"version": "13", "sha256": "027jz7h07340ayqvzji8l33x2y7jxrzf64wr4gvh16dbgw1229fa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0Rlc2t0b3AtQ3ViZSIsCiAgInV1aWQiOiAiZGVza3RvcC1jdWJlQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "41": {"version": "13", "sha256": "027jz7h07340ayqvzji8l33x2y7jxrzf64wr4gvh16dbgw1229fa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0Rlc2t0b3AtQ3ViZSIsCiAgInV1aWQiOiAiZGVza3RvcC1jdWJlQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
-    "42": {"version": "21", "sha256": "1p0gk3gqc7vc85q8vdn8pibn2bdx1kb0frg323y5x1v7gwg63vg9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRGVza3RvcC1DdWJlIiwKICAidXVpZCI6ICJkZXNrdG9wLWN1YmVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="},
-    "43": {"version": "21", "sha256": "1p0gk3gqc7vc85q8vdn8pibn2bdx1kb0frg323y5x1v7gwg63vg9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRGVza3RvcC1DdWJlIiwKICAidXVpZCI6ICJkZXNrdG9wLWN1YmVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="},
-    "44": {"version": "21", "sha256": "1p0gk3gqc7vc85q8vdn8pibn2bdx1kb0frg323y5x1v7gwg63vg9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRGVza3RvcC1DdWJlIiwKICAidXVpZCI6ICJkZXNrdG9wLWN1YmVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="},
-    "45": {"version": "20", "sha256": "021bsg5xfzdp9rnw0fgzb7p1x4pnli8m2rgs1lqb3cqagphxa9qn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TY2huZWVnYW5zL0Rlc2t0b3AtQ3ViZSIsCiAgInV1aWQiOiAiZGVza3RvcC1jdWJlQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}
+    "42": {"version": "23", "sha256": "02kgp6ihg8gkkhxprxd7m9i186i0l3sy954lp6s3aq23v2ya0yn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRGVza3RvcC1DdWJlIiwKICAidXVpZCI6ICJkZXNrdG9wLWN1YmVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="},
+    "43": {"version": "23", "sha256": "02kgp6ihg8gkkhxprxd7m9i186i0l3sy954lp6s3aq23v2ya0yn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRGVza3RvcC1DdWJlIiwKICAidXVpZCI6ICJkZXNrdG9wLWN1YmVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="},
+    "44": {"version": "23", "sha256": "02kgp6ihg8gkkhxprxd7m9i186i0l3sy954lp6s3aq23v2ya0yn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRGVza3RvcC1DdWJlIiwKICAidXVpZCI6ICJkZXNrdG9wLWN1YmVAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="},
+    "45": {"version": "22", "sha256": "08hlrhm82y69wbdyms1xmp1sk4kq7jpk46kkqjj2y674484wc9m3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2NobmVlZ2FucyIsCiAgICAia29maSI6ICJzY2huZWVnYW5zIiwKICAgICJwYXlwYWwiOiAic2ltb25zY2huZWVnYW5zIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9EZXNrdG9wLUN1YmUiLAogICJ1dWlkIjogImRlc2t0b3AtY3ViZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}
   }}
 , {"uuid": "notification-banner-reloaded@marcinjakubowski.github.com", "name": "Notification Banner Reloaded", "pname": "notification-banner-reloaded", "description": "Configure notification banner position and animation to your liking.\nVersion 9: Gnome 45 changes by mannjani@github\nVersion 10: mannjani@github added a test button inside prefs", "link": "https://extensions.gnome.org/extension/4651/notification-banner-reloaded/", "shell_version_map": {
     "40": {"version": "8", "sha256": "1g0aa6xclyfbcaa4rccv5cgqmc6jr41yz821wvpa2rww64djl0jb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBub3RpZmljYXRpb24gYmFubmVyIHBvc2l0aW9uIGFuZCBhbmltYXRpb24gdG8geW91ciBsaWtpbmciLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBCYW5uZXIgUmVsb2FkZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90aWZpY2F0aW9uLWJhbm5lci1yZWxvYWRlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFrdWJvd3NraS9ub3RpZmljYXRpb24tcG9zaXRpb24tcmVsb2FkZWQiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi1iYW5uZXItcmVsb2FkZWRAbWFyY2luamFrdWJvd3NraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="},
@@ -4080,13 +4095,13 @@
     "41": {"version": "3", "sha256": "1dcy5kw5797wjjdg85hc16vh82c3xjs2xdn3m573rqs3fjayy507", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiBUaGlzIGV4dGVuc2lvbiBpcyBvbmx5IHRlc3RlZCB3aXRoIEdub21lIDQwKy4gRGlkbnQgdGVzdCBpdCB5ZXQgd2l0aCBvbGRlciB2ZXJzaW9ucy4iLAogICJuYW1lIjogIlNlcnZlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5TZXJ2ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJTZXJ2ZXJAc3Zlbi5rcmFtZXIiLAogICJ2ZXJzaW9uIjogMwp9"}
   }}
 , {"uuid": "burn-my-windows@schneegans.github.com", "name": "Burn My Windows", "pname": "burn-my-windows", "description": "Disintegrate your windows with style.", "link": "https://extensions.gnome.org/extension/4679/burn-my-windows/", "shell_version_map": {
-    "38": {"version": "40", "sha256": "18q7m8bh19dsacs5ziwgb70afvi2gppvymhq4l8m0ihppdzfa3xv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvQnVybi1NeS1XaW5kb3dzIiwKICAidXVpZCI6ICJidXJuLW15LXdpbmRvd3NAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQwCn0="},
-    "40": {"version": "40", "sha256": "18q7m8bh19dsacs5ziwgb70afvi2gppvymhq4l8m0ihppdzfa3xv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvQnVybi1NeS1XaW5kb3dzIiwKICAidXVpZCI6ICJidXJuLW15LXdpbmRvd3NAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQwCn0="},
-    "41": {"version": "40", "sha256": "18q7m8bh19dsacs5ziwgb70afvi2gppvymhq4l8m0ihppdzfa3xv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvQnVybi1NeS1XaW5kb3dzIiwKICAidXVpZCI6ICJidXJuLW15LXdpbmRvd3NAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQwCn0="},
-    "42": {"version": "40", "sha256": "18q7m8bh19dsacs5ziwgb70afvi2gppvymhq4l8m0ihppdzfa3xv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvQnVybi1NeS1XaW5kb3dzIiwKICAidXVpZCI6ICJidXJuLW15LXdpbmRvd3NAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQwCn0="},
-    "43": {"version": "40", "sha256": "18q7m8bh19dsacs5ziwgb70afvi2gppvymhq4l8m0ihppdzfa3xv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvQnVybi1NeS1XaW5kb3dzIiwKICAidXVpZCI6ICJidXJuLW15LXdpbmRvd3NAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQwCn0="},
-    "44": {"version": "40", "sha256": "18q7m8bh19dsacs5ziwgb70afvi2gppvymhq4l8m0ihppdzfa3xv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvQnVybi1NeS1XaW5kb3dzIiwKICAidXVpZCI6ICJidXJuLW15LXdpbmRvd3NAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQwCn0="},
-    "45": {"version": "39", "sha256": "0agrb9h78i5q45np8940830abz6fr93la2j804rpfcqx6f5cdlqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9CdXJuLU15LVdpbmRvd3MiLAogICJ1dWlkIjogImJ1cm4tbXktd2luZG93c0BzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzkKfQ=="}
+    "38": {"version": "42", "sha256": "1xyfpgdnl2fhvx0pw4f53h54smw6lj7w6pmxdp93wpz1h0mjh0ym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvQnVybi1NeS1XaW5kb3dzIiwKICAidXVpZCI6ICJidXJuLW15LXdpbmRvd3NAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQyCn0="},
+    "40": {"version": "42", "sha256": "1xyfpgdnl2fhvx0pw4f53h54smw6lj7w6pmxdp93wpz1h0mjh0ym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvQnVybi1NeS1XaW5kb3dzIiwKICAidXVpZCI6ICJidXJuLW15LXdpbmRvd3NAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQyCn0="},
+    "41": {"version": "42", "sha256": "1xyfpgdnl2fhvx0pw4f53h54smw6lj7w6pmxdp93wpz1h0mjh0ym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvQnVybi1NeS1XaW5kb3dzIiwKICAidXVpZCI6ICJidXJuLW15LXdpbmRvd3NAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQyCn0="},
+    "42": {"version": "42", "sha256": "1xyfpgdnl2fhvx0pw4f53h54smw6lj7w6pmxdp93wpz1h0mjh0ym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvQnVybi1NeS1XaW5kb3dzIiwKICAidXVpZCI6ICJidXJuLW15LXdpbmRvd3NAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQyCn0="},
+    "43": {"version": "42", "sha256": "1xyfpgdnl2fhvx0pw4f53h54smw6lj7w6pmxdp93wpz1h0mjh0ym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvQnVybi1NeS1XaW5kb3dzIiwKICAidXVpZCI6ICJidXJuLW15LXdpbmRvd3NAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQyCn0="},
+    "44": {"version": "42", "sha256": "1xyfpgdnl2fhvx0pw4f53h54smw6lj7w6pmxdp93wpz1h0mjh0ym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvQnVybi1NeS1XaW5kb3dzIiwKICAidXVpZCI6ICJidXJuLW15LXdpbmRvd3NAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQyCn0="},
+    "45": {"version": "41", "sha256": "0sbdsxs0i8yasrrzqyyc69jjc2f67ilkhqgvcmmy4cb7k1dm7idh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIHdpbmRvd3Mgd2l0aCBzdHlsZS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogInNjaG5lZWdhbnMiLAogICAgImtvZmkiOiAic2NobmVlZ2FucyIsCiAgICAicGF5cGFsIjogInNpbW9uc2NobmVlZ2FucyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJidXJuLW15LXdpbmRvd3MiLAogICJuYW1lIjogIkJ1cm4gTXkgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5idXJuLW15LXdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvQnVybi1NeS1XaW5kb3dzIiwKICAidXVpZCI6ICJidXJuLW15LXdpbmRvd3NAc2NobmVlZ2Fucy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQxCn0="}
   }}
 , {"uuid": "babar-lite@fthx", "name": "BaBar Lite", "pname": "babar-task-bar-lite-for-gnome-40", "description": "NOT MAINTAINED ANYMORE\nPLEASE USE:\nhttps://extensions.gnome.org/extension/6556/task-up/ (Babar-like)\nOR\nhttps://extensions.gnome.org/extension/5143/dashbar/ (Dash-like)\n\nTask bar. App grid, favorites, workspaces and tasks in panel. Light extension.\n\n Replace 'Activities' button by all current workspaces and apps buttons. Switch workspace/app or toggle overview by clicking on these buttons. Drag and drop favorite, task, dash item or app grid item to any workspace (you cannot reorder tasks inside a workspace). Change 'Places' label to an icon. No settings, use BaBar classic for that.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.", "link": "https://extensions.gnome.org/extension/4681/babar-task-bar-lite-for-gnome-40/", "shell_version_map": {
     "40": {"version": "2", "sha256": "163g6mabkcmf05ja4bpj7kkc0c7rs4hsf5xyfm2z4npiscjha8n7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuVGFzayBiYXIuIEFwcCBncmlkLCBmYXZvcml0ZXMsIHdvcmtzcGFjZXMgYW5kIHRhc2tzIGluIHBhbmVsLiBMaWdodCBleHRlbnNpb24uXG5cbiBSZXBsYWNlICdBY3Rpdml0aWVzJyBidXR0b24gYnkgYWxsIGN1cnJlbnQgd29ya3NwYWNlcyBhbmQgYXBwcyBidXR0b25zLiBTd2l0Y2ggd29ya3NwYWNlL2FwcCBvciB0b2dnbGUgb3ZlcnZpZXcgYnkgY2xpY2tpbmcgb24gdGhlc2UgYnV0dG9ucy4gRHJhZyBhbmQgZHJvcCBmYXZvcml0ZSwgdGFzaywgZGFzaCBpdGVtIG9yIGFwcCBncmlkIGl0ZW0gdG8gYW55IHdvcmtzcGFjZSAoeW91IGNhbm5vdCByZW9yZGVyIHRhc2tzIGluc2lkZSBhIHdvcmtzcGFjZSkuIENoYW5nZSAnUGxhY2VzJyBsYWJlbCB0byBhbiBpY29uLiBObyBzZXR0aW5ncywgdXNlIEJhQmFyIGNsYXNzaWMgZm9yIHRoYXQuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJCYUJhciBMaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9iYWJhci1saXRlIiwKICAidXVpZCI6ICJiYWJhci1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMgp9"},
@@ -4099,14 +4114,15 @@
     "41": {"version": "12", "sha256": "12fdmnjsmr83q7qcl3nlmvgsw43jalnmcc9ffb8811l11gl0fxnm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvciBhZXN0aGV0aWMgcHVycG9zZXMgYWRkcyB1c2VsZXNzIGdhcHMgYXJvdW5kIHRpbGVkIGFuZCBtYXhpbWl6ZWQgd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogInVzZWxlc3MtZ2FwcyIsCiAgIm5hbWUiOiAiVXNlbGVzcyBHYXBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZWxlc3MtZ2FwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlwbWlwL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtdXNlbGVzcy1nYXBzIiwKICAidXVpZCI6ICJ1c2VsZXNzLWdhcHNAcGltc25lbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
     "42": {"version": "12", "sha256": "12fdmnjsmr83q7qcl3nlmvgsw43jalnmcc9ffb8811l11gl0fxnm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvciBhZXN0aGV0aWMgcHVycG9zZXMgYWRkcyB1c2VsZXNzIGdhcHMgYXJvdW5kIHRpbGVkIGFuZCBtYXhpbWl6ZWQgd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogInVzZWxlc3MtZ2FwcyIsCiAgIm5hbWUiOiAiVXNlbGVzcyBHYXBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZWxlc3MtZ2FwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlwbWlwL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtdXNlbGVzcy1nYXBzIiwKICAidXVpZCI6ICJ1c2VsZXNzLWdhcHNAcGltc25lbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
     "43": {"version": "12", "sha256": "12fdmnjsmr83q7qcl3nlmvgsw43jalnmcc9ffb8811l11gl0fxnm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvciBhZXN0aGV0aWMgcHVycG9zZXMgYWRkcyB1c2VsZXNzIGdhcHMgYXJvdW5kIHRpbGVkIGFuZCBtYXhpbWl6ZWQgd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogInVzZWxlc3MtZ2FwcyIsCiAgIm5hbWUiOiAiVXNlbGVzcyBHYXBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZWxlc3MtZ2FwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlwbWlwL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtdXNlbGVzcy1nYXBzIiwKICAidXVpZCI6ICJ1c2VsZXNzLWdhcHNAcGltc25lbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "44": {"version": "12", "sha256": "12fdmnjsmr83q7qcl3nlmvgsw43jalnmcc9ffb8811l11gl0fxnm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvciBhZXN0aGV0aWMgcHVycG9zZXMgYWRkcyB1c2VsZXNzIGdhcHMgYXJvdW5kIHRpbGVkIGFuZCBtYXhpbWl6ZWQgd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogInVzZWxlc3MtZ2FwcyIsCiAgIm5hbWUiOiAiVXNlbGVzcyBHYXBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZWxlc3MtZ2FwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlwbWlwL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtdXNlbGVzcy1nYXBzIiwKICAidXVpZCI6ICJ1c2VsZXNzLWdhcHNAcGltc25lbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}
+    "44": {"version": "12", "sha256": "12fdmnjsmr83q7qcl3nlmvgsw43jalnmcc9ffb8811l11gl0fxnm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvciBhZXN0aGV0aWMgcHVycG9zZXMgYWRkcyB1c2VsZXNzIGdhcHMgYXJvdW5kIHRpbGVkIGFuZCBtYXhpbWl6ZWQgd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogInVzZWxlc3MtZ2FwcyIsCiAgIm5hbWUiOiAiVXNlbGVzcyBHYXBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZWxlc3MtZ2FwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlwbWlwL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtdXNlbGVzcy1nYXBzIiwKICAidXVpZCI6ICJ1c2VsZXNzLWdhcHNAcGltc25lbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "45": {"version": "16", "sha256": "1rhvhapp81phvmdnwfg1393c2932qfi9i2jpynbd6v4hcv0qg52q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvciBhZXN0aGV0aWMgcHVycG9zZXMgYWRkcyB1c2VsZXNzIGdhcHMgYXJvdW5kIHRpbGVkIGFuZCBtYXhpbWl6ZWQgd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogInVzZWxlc3MtZ2FwcyIsCiAgIm5hbWUiOiAiVXNlbGVzcyBHYXBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZWxlc3MtZ2FwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taXBtaXAvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy11c2VsZXNzLWdhcHMiLAogICJ1dWlkIjogInVzZWxlc3MtZ2Fwc0BwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}
   }}
 , {"uuid": "serverstatus@footeware.ca", "name": "Server Status Indicator", "pname": "server-status-indicator", "description": "Indicator displaying status of entered web server urls, green for up, red for down.", "link": "https://extensions.gnome.org/extension/4687/server-status-indicator/", "shell_version_map": {
     "40": {"version": "8", "sha256": "1mm2b6fwx58yvcq8fkxrkcb5bcm4ak8al5jw0939mwr8fjhgd13s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRvciBkaXNwbGF5aW5nIHN0YXR1cyBvZiBlbnRlcmVkIHdlYiBzZXJ2ZXIgdXJscywgZ3JlZW4gZm9yIHVwLCByZWQgZm9yIGRvd24uIiwKICAibmFtZSI6ICJTZXJ2ZXIgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zZXJ2ZXJzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NyYWlnRm9vdGUvY2EuZm9vdGV3YXJlLmdub21lc2hlbGwuc2VydmVyc3RhdHVzLmdpdCIsCiAgInV1aWQiOiAic2VydmVyc3RhdHVzQGZvb3Rld2FyZS5jYSIsCiAgInZlcnNpb24iOiA4Cn0="},
     "42": {"version": "8", "sha256": "1mm2b6fwx58yvcq8fkxrkcb5bcm4ak8al5jw0939mwr8fjhgd13s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRvciBkaXNwbGF5aW5nIHN0YXR1cyBvZiBlbnRlcmVkIHdlYiBzZXJ2ZXIgdXJscywgZ3JlZW4gZm9yIHVwLCByZWQgZm9yIGRvd24uIiwKICAibmFtZSI6ICJTZXJ2ZXIgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zZXJ2ZXJzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NyYWlnRm9vdGUvY2EuZm9vdGV3YXJlLmdub21lc2hlbGwuc2VydmVyc3RhdHVzLmdpdCIsCiAgInV1aWQiOiAic2VydmVyc3RhdHVzQGZvb3Rld2FyZS5jYSIsCiAgInZlcnNpb24iOiA4Cn0="},
     "43": {"version": "12", "sha256": "137wbizi57gpdp5dk38mxsi82ndrh11axj6h34spwyag000rlili", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRvciBkaXNwbGF5aW5nIHN0YXR1cyBvZiBlbnRlcmVkIHdlYiBzZXJ2ZXIgdXJscywgZ3JlZW4gZm9yIHVwLCByZWQgZm9yIGRvd24uIiwKICAibmFtZSI6ICJTZXJ2ZXIgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zZXJ2ZXJzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NyYWlnRm9vdGUvY2EuZm9vdGV3YXJlLmdub21lc2hlbGwuc2VydmVyc3RhdHVzLmdpdCIsCiAgInV1aWQiOiAic2VydmVyc3RhdHVzQGZvb3Rld2FyZS5jYSIsCiAgInZlcnNpb24iOiAxMgp9"},
     "44": {"version": "12", "sha256": "137wbizi57gpdp5dk38mxsi82ndrh11axj6h34spwyag000rlili", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRvciBkaXNwbGF5aW5nIHN0YXR1cyBvZiBlbnRlcmVkIHdlYiBzZXJ2ZXIgdXJscywgZ3JlZW4gZm9yIHVwLCByZWQgZm9yIGRvd24uIiwKICAibmFtZSI6ICJTZXJ2ZXIgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zZXJ2ZXJzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NyYWlnRm9vdGUvY2EuZm9vdGV3YXJlLmdub21lc2hlbGwuc2VydmVyc3RhdHVzLmdpdCIsCiAgInV1aWQiOiAic2VydmVyc3RhdHVzQGZvb3Rld2FyZS5jYSIsCiAgInZlcnNpb24iOiAxMgp9"},
-    "45": {"version": "22", "sha256": "1hxilmlzdz75i2c0ihwxz0hxd2n3z1bkpij97939q4wpzjl8kvbl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRvciBkaXNwbGF5aW5nIHN0YXR1cyBvZiBlbnRlcmVkIHdlYiBzZXJ2ZXIgdXJscywgZ3JlZW4gZm9yIHVwLCByZWQgZm9yIGRvd24uIiwKICAibmFtZSI6ICJTZXJ2ZXIgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zZXJ2ZXJzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ3JhaWdGb290ZS9jYS5mb290ZXdhcmUuZ25vbWVzaGVsbC5zZXJ2ZXJzdGF0dXMuZ2l0IiwKICAidXVpZCI6ICJzZXJ2ZXJzdGF0dXNAZm9vdGV3YXJlLmNhIiwKICAidmVyc2lvbiI6IDIyCn0="}
+    "45": {"version": "23", "sha256": "1lbfs3xfsmijyfdxmjy0vw9iy96z97cwx3c9n85jnxf4rcvj5yg7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRvciBkaXNwbGF5aW5nIHN0YXR1cyBvZiBlbnRlcmVkIHdlYiBzZXJ2ZXIgdXJscywgZ3JlZW4gZm9yIHVwLCByZWQgZm9yIGRvd24uIiwKICAibmFtZSI6ICJTZXJ2ZXIgU3RhdHVzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zZXJ2ZXJzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NyYWlnRm9vdGUvY2EuZm9vdGV3YXJlLmdub21lc2hlbGwuc2VydmVyc3RhdHVzLmdpdCIsCiAgInV1aWQiOiAic2VydmVyc3RhdHVzQGZvb3Rld2FyZS5jYSIsCiAgInZlcnNpb24iOiAyMwp9"}
   }}
 , {"uuid": "focus-follows-workspace@christopher.luebbemeier.gmail.com", "name": "Focus Follows Workspace", "pname": "focus-follows-workspace", "description": "Focus the primary monitor after switching workspaces via keyboard", "link": "https://extensions.gnome.org/extension/4688/focus-follows-workspace/", "shell_version_map": {
     "41": {"version": "7", "sha256": "0bi73fpvkfj3y6f440fw5xv1294szhisa2qyzz4rwh7n4n49xhqf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvY3VzIHRoZSBwcmltYXJ5IG1vbml0b3IgYWZ0ZXIgc3dpdGNoaW5nIHdvcmtzcGFjZXMgdmlhIGtleWJvYXJkIiwKICAibmFtZSI6ICJGb2N1cyBGb2xsb3dzIFdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL2ZvY3VzLWZvbGxvd3Mtd29ya3NwYWNlIiwKICAidXVpZCI6ICJmb2N1cy1mb2xsb3dzLXdvcmtzcGFjZUBjaHJpc3RvcGhlci5sdWViYmVtZWllci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"},
@@ -4141,7 +4157,8 @@
     "41": {"version": "9", "sha256": "06vgjcbmsg0xvrrrffafzdlj85w8fpqbin2xixk38p2w6skrh6fx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hsaWdodHMgdGhlIGZvY3Vzc2VkIHdpbmRvdyB3aXRoIGEgdGVtcG9yYXJ5IGJvcmRlciIsCiAgImdldHRleHQtZG9tYWluIjogImhpZ2hsaWdoLWZvY3VzIiwKICAibmFtZSI6ICJIaWdobGlnaHQgRm9jdXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlnaGxpZ2h0LWZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taXBtaXAvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1oaWdobGlnaHQtZm9jdXMiLAogICJ1dWlkIjogImhpZ2hsaWdodC1mb2N1c0BwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
     "42": {"version": "9", "sha256": "06vgjcbmsg0xvrrrffafzdlj85w8fpqbin2xixk38p2w6skrh6fx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hsaWdodHMgdGhlIGZvY3Vzc2VkIHdpbmRvdyB3aXRoIGEgdGVtcG9yYXJ5IGJvcmRlciIsCiAgImdldHRleHQtZG9tYWluIjogImhpZ2hsaWdoLWZvY3VzIiwKICAibmFtZSI6ICJIaWdobGlnaHQgRm9jdXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlnaGxpZ2h0LWZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taXBtaXAvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1oaWdobGlnaHQtZm9jdXMiLAogICJ1dWlkIjogImhpZ2hsaWdodC1mb2N1c0BwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
     "43": {"version": "9", "sha256": "06vgjcbmsg0xvrrrffafzdlj85w8fpqbin2xixk38p2w6skrh6fx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hsaWdodHMgdGhlIGZvY3Vzc2VkIHdpbmRvdyB3aXRoIGEgdGVtcG9yYXJ5IGJvcmRlciIsCiAgImdldHRleHQtZG9tYWluIjogImhpZ2hsaWdoLWZvY3VzIiwKICAibmFtZSI6ICJIaWdobGlnaHQgRm9jdXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlnaGxpZ2h0LWZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taXBtaXAvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1oaWdobGlnaHQtZm9jdXMiLAogICJ1dWlkIjogImhpZ2hsaWdodC1mb2N1c0BwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
-    "44": {"version": "9", "sha256": "06vgjcbmsg0xvrrrffafzdlj85w8fpqbin2xixk38p2w6skrh6fx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hsaWdodHMgdGhlIGZvY3Vzc2VkIHdpbmRvdyB3aXRoIGEgdGVtcG9yYXJ5IGJvcmRlciIsCiAgImdldHRleHQtZG9tYWluIjogImhpZ2hsaWdoLWZvY3VzIiwKICAibmFtZSI6ICJIaWdobGlnaHQgRm9jdXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlnaGxpZ2h0LWZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taXBtaXAvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1oaWdobGlnaHQtZm9jdXMiLAogICJ1dWlkIjogImhpZ2hsaWdodC1mb2N1c0BwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}
+    "44": {"version": "9", "sha256": "06vgjcbmsg0xvrrrffafzdlj85w8fpqbin2xixk38p2w6skrh6fx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hsaWdodHMgdGhlIGZvY3Vzc2VkIHdpbmRvdyB3aXRoIGEgdGVtcG9yYXJ5IGJvcmRlciIsCiAgImdldHRleHQtZG9tYWluIjogImhpZ2hsaWdoLWZvY3VzIiwKICAibmFtZSI6ICJIaWdobGlnaHQgRm9jdXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlnaGxpZ2h0LWZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taXBtaXAvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1oaWdobGlnaHQtZm9jdXMiLAogICJ1dWlkIjogImhpZ2hsaWdodC1mb2N1c0BwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
+    "45": {"version": "11", "sha256": "184vx3axv8sgjkg240y4mwa2lv4syydmxm299gz9xg748siv1kks", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hsaWdodHMgdGhlIGZvY3Vzc2VkIHdpbmRvdyB3aXRoIGEgdGVtcG9yYXJ5IGJvcmRlciIsCiAgImdldHRleHQtZG9tYWluIjogImhpZ2hsaWdoLWZvY3VzIiwKICAibmFtZSI6ICJIaWdobGlnaHQgRm9jdXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlnaGxpZ2h0LWZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pcG1pcC9nbm9tZS1zaGVsbC1leHRlbnNpb25zLWhpZ2hsaWdodC1mb2N1cyIsCiAgInV1aWQiOiAiaGlnaGxpZ2h0LWZvY3VzQHBpbXNuZWwuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}
   }}
 , {"uuid": "awesome-tiles@velitasali.com", "name": "Awesome Tiles", "pname": "awesome-tiles", "description": "Tile windows using keyboard shortcuts.", "link": "https://extensions.gnome.org/extension/4702/awesome-tiles/", "shell_version_map": {
     "40": {"version": "10", "sha256": "1q1y7ldiay5frw52fhfz7fs3jx3f23jkcir8ilji2hmkj64p0vkh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyB1c2luZyBrZXlib2FyZCBzaG9ydGN1dHMuIiwKICAibmFtZSI6ICJBd2Vzb21lIFRpbGVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF3ZXNvbWUtdGlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZlbGl0YXNhbGkvZ25vbWUtYXdlc29tZS10aWxlcy1leHRlbnNpb24iLAogICJ1dWlkIjogImF3ZXNvbWUtdGlsZXNAdmVsaXRhc2FsaS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
@@ -4325,12 +4342,13 @@
     "43": {"version": "25", "sha256": "1halrjfj7xahask8saqgijnirkyg8ch03wa3j89f0zfvwjdcbxpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQWx0ICsgTW91c2UgY29udHJvbCB3aW5kb3dcbkRldGFpbGVkIGluc3RydWN0aW9ucyBhcmUgb24gdGhlIGhvbWUgcGFnZSBhbmQgaW4gY29uZmlnIGludGVyZmFjZS4gXG5EaXNhYmxlIGRlc2t0b3AgQmFja2dyb3VuZE1lbnUsIERpc2FibGUgUGFuZWwgZHJhZ01vZGUuIFxuQWRkIGEgZ2FwIGF0IHJpZ2h0IHNjcmVlbiBlZGdlLiBcbkFkZCBUb3AtTGVmdCBhbmQgVG9wLVJpZ2h0IGNvcm5lciBhcyBob3QgY29uZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx0LW1vdXNlIiwKICAibmFtZSI6ICJBbHQgTW91c2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx0LW1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3MtYWx0LW1vdXNlIiwKICAidXVpZCI6ICJhbHQtbW91c2VAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"},
     "44": {"version": "25", "sha256": "1halrjfj7xahask8saqgijnirkyg8ch03wa3j89f0zfvwjdcbxpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQWx0ICsgTW91c2UgY29udHJvbCB3aW5kb3dcbkRldGFpbGVkIGluc3RydWN0aW9ucyBhcmUgb24gdGhlIGhvbWUgcGFnZSBhbmQgaW4gY29uZmlnIGludGVyZmFjZS4gXG5EaXNhYmxlIGRlc2t0b3AgQmFja2dyb3VuZE1lbnUsIERpc2FibGUgUGFuZWwgZHJhZ01vZGUuIFxuQWRkIGEgZ2FwIGF0IHJpZ2h0IHNjcmVlbiBlZGdlLiBcbkFkZCBUb3AtTGVmdCBhbmQgVG9wLVJpZ2h0IGNvcm5lciBhcyBob3QgY29uZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx0LW1vdXNlIiwKICAibmFtZSI6ICJBbHQgTW91c2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx0LW1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3MtYWx0LW1vdXNlIiwKICAidXVpZCI6ICJhbHQtbW91c2VAZWV4cHNzLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}
   }}
-, {"uuid": "workspace-switcher-manager@G-dH.github.com", "name": "Workspace Switcher Manager", "pname": "workspace-switcher-manager", "description": "Make the workspace switcher popup useful! Customize your workspace switcher behavior and the content, dimensions, position, orientation and colors of its popup indicator.\n\n- all GNOME workspace related options in one place\n- adds ws switcher Wraparoud and Ignore Last (empty) Workspace options\n- allows to disable or customize switcher popup\n- allows adding content to the workspace switcher popup - Workspace Name, Current Application Name, Workspace Index\n- ws switcher popup appearance customization includes position on screen, timings, size, colors , orientation", "link": "https://extensions.gnome.org/extension/4788/workspace-switcher-manager/", "shell_version_map": {
+, {"uuid": "workspace-switcher-manager@G-dH.github.com", "name": "WSM (Workspace Switcher Manager)", "pname": "workspace-switcher-manager", "description": "Make the workspace switcher popup useful! Customize your workspace switcher behavior and the content, dimensions, position, orientation and colors of its popup indicator.\n\n- all GNOME workspace related options in one place\n- adds ws switcher Wraparoud and Ignore Last (empty) Workspace options\n- allows to disable or customize switcher popup\n- allows adding content to the workspace switcher popup - Workspace Name, Current Application Name, Workspace Index\n- ws switcher popup appearance customization includes position on screen, timings, size, colors , orientation", "link": "https://extensions.gnome.org/extension/4788/workspace-switcher-manager/", "shell_version_map": {
     "38": {"version": "9", "sha256": "1pd5a520rfnf4hcpdqxq7z5c7691qh07685as6s9ssvfdzhxxf61", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgYXQgb25lIHBsYWNlXG4tIGFsbG93cyB0byBzd2l0Y2ggd29ya3NwYWNlcyBvcmllbnRhdGlvbiB0byBob3Jpem9udGFsIG9yIHZlcnRpY2FsXG4tIGFkZHMgd29ya3NwYWNlIHN3aXRjaGVyICdXcmFwYXJvdWQnIGFuZCAnSWdub3JlIExhc3QgKGVtcHR5KSBXb3Jrc3BhY2UnIG9wdGlvbnNcbi0gYWxsb3dzIHRvIGRpc2FibGUgb3IgY3VzdG9taXplIHN3aXRjaGVyIHBvcHVwXG4tIGFsbG93cyBhZGRpbmcgY29udGVudCB0byB0aGUgd29ya3NwYWNlIHN3aXRjaGVyIHBvcHVwIC0gV29ya3NwYWNlIE5hbWUsIEN1cnJlbnQgQXBwbGljYXRpb24gTmFtZSwgV29ya3NwYWNlIEluZGV4XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbi5cblxuUGxlYXNlLCByZXBvcnQgYnVncyBvbiB0aGUgR2l0SHViIHBhZ2UgbGlua2VkIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"},
     "40": {"version": "9", "sha256": "1pd5a520rfnf4hcpdqxq7z5c7691qh07685as6s9ssvfdzhxxf61", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgYXQgb25lIHBsYWNlXG4tIGFsbG93cyB0byBzd2l0Y2ggd29ya3NwYWNlcyBvcmllbnRhdGlvbiB0byBob3Jpem9udGFsIG9yIHZlcnRpY2FsXG4tIGFkZHMgd29ya3NwYWNlIHN3aXRjaGVyICdXcmFwYXJvdWQnIGFuZCAnSWdub3JlIExhc3QgKGVtcHR5KSBXb3Jrc3BhY2UnIG9wdGlvbnNcbi0gYWxsb3dzIHRvIGRpc2FibGUgb3IgY3VzdG9taXplIHN3aXRjaGVyIHBvcHVwXG4tIGFsbG93cyBhZGRpbmcgY29udGVudCB0byB0aGUgd29ya3NwYWNlIHN3aXRjaGVyIHBvcHVwIC0gV29ya3NwYWNlIE5hbWUsIEN1cnJlbnQgQXBwbGljYXRpb24gTmFtZSwgV29ya3NwYWNlIEluZGV4XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbi5cblxuUGxlYXNlLCByZXBvcnQgYnVncyBvbiB0aGUgR2l0SHViIHBhZ2UgbGlua2VkIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"},
     "41": {"version": "9", "sha256": "1pd5a520rfnf4hcpdqxq7z5c7691qh07685as6s9ssvfdzhxxf61", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgYXQgb25lIHBsYWNlXG4tIGFsbG93cyB0byBzd2l0Y2ggd29ya3NwYWNlcyBvcmllbnRhdGlvbiB0byBob3Jpem9udGFsIG9yIHZlcnRpY2FsXG4tIGFkZHMgd29ya3NwYWNlIHN3aXRjaGVyICdXcmFwYXJvdWQnIGFuZCAnSWdub3JlIExhc3QgKGVtcHR5KSBXb3Jrc3BhY2UnIG9wdGlvbnNcbi0gYWxsb3dzIHRvIGRpc2FibGUgb3IgY3VzdG9taXplIHN3aXRjaGVyIHBvcHVwXG4tIGFsbG93cyBhZGRpbmcgY29udGVudCB0byB0aGUgd29ya3NwYWNlIHN3aXRjaGVyIHBvcHVwIC0gV29ya3NwYWNlIE5hbWUsIEN1cnJlbnQgQXBwbGljYXRpb24gTmFtZSwgV29ya3NwYWNlIEluZGV4XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbi5cblxuUGxlYXNlLCByZXBvcnQgYnVncyBvbiB0aGUgR2l0SHViIHBhZ2UgbGlua2VkIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"},
-    "42": {"version": "9", "sha256": "1pd5a520rfnf4hcpdqxq7z5c7691qh07685as6s9ssvfdzhxxf61", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgYXQgb25lIHBsYWNlXG4tIGFsbG93cyB0byBzd2l0Y2ggd29ya3NwYWNlcyBvcmllbnRhdGlvbiB0byBob3Jpem9udGFsIG9yIHZlcnRpY2FsXG4tIGFkZHMgd29ya3NwYWNlIHN3aXRjaGVyICdXcmFwYXJvdWQnIGFuZCAnSWdub3JlIExhc3QgKGVtcHR5KSBXb3Jrc3BhY2UnIG9wdGlvbnNcbi0gYWxsb3dzIHRvIGRpc2FibGUgb3IgY3VzdG9taXplIHN3aXRjaGVyIHBvcHVwXG4tIGFsbG93cyBhZGRpbmcgY29udGVudCB0byB0aGUgd29ya3NwYWNlIHN3aXRjaGVyIHBvcHVwIC0gV29ya3NwYWNlIE5hbWUsIEN1cnJlbnQgQXBwbGljYXRpb24gTmFtZSwgV29ya3NwYWNlIEluZGV4XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbi5cblxuUGxlYXNlLCByZXBvcnQgYnVncyBvbiB0aGUgR2l0SHViIHBhZ2UgbGlua2VkIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"},
-    "43": {"version": "9", "sha256": "1pd5a520rfnf4hcpdqxq7z5c7691qh07685as6s9ssvfdzhxxf61", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgYXQgb25lIHBsYWNlXG4tIGFsbG93cyB0byBzd2l0Y2ggd29ya3NwYWNlcyBvcmllbnRhdGlvbiB0byBob3Jpem9udGFsIG9yIHZlcnRpY2FsXG4tIGFkZHMgd29ya3NwYWNlIHN3aXRjaGVyICdXcmFwYXJvdWQnIGFuZCAnSWdub3JlIExhc3QgKGVtcHR5KSBXb3Jrc3BhY2UnIG9wdGlvbnNcbi0gYWxsb3dzIHRvIGRpc2FibGUgb3IgY3VzdG9taXplIHN3aXRjaGVyIHBvcHVwXG4tIGFsbG93cyBhZGRpbmcgY29udGVudCB0byB0aGUgd29ya3NwYWNlIHN3aXRjaGVyIHBvcHVwIC0gV29ya3NwYWNlIE5hbWUsIEN1cnJlbnQgQXBwbGljYXRpb24gTmFtZSwgV29ya3NwYWNlIEluZGV4XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbi5cblxuUGxlYXNlLCByZXBvcnQgYnVncyBvbiB0aGUgR2l0SHViIHBhZ2UgbGlua2VkIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"},
+    "42": {"version": "13", "sha256": "0kx6q83x540w4drv07rivbbz8liv8n1mi4vaygi330hqannsy6ds", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIFN3aXRjaGVyIE1hbmFnZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTMsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xIgp9"},
+    "43": {"version": "13", "sha256": "0kx6q83x540w4drv07rivbbz8liv8n1mi4vaygi330hqannsy6ds", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIFN3aXRjaGVyIE1hbmFnZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTMsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xIgp9"},
+    "44": {"version": "13", "sha256": "0kx6q83x540w4drv07rivbbz8liv8n1mi4vaygi330hqannsy6ds", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIFN3aXRjaGVyIE1hbmFnZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3dvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlckBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTMsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xIgp9"},
     "45": {"version": "12", "sha256": "15548k8jk4mkchp869fxbdnw7wpxfsq8sphgx3cf2b7dyw3rx1v6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZ2VvcmdkaCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIFN3aXRjaGVyIE1hbmFnZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMiwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjEiCn0="}
   }}
 , {"uuid": "compare@eexpss.gmail.com", "name": "Compare or Open", "pname": "compare-filedir-from-clip", "description": "Copy/Select two Dirs/Files from anywhere such as `nautilus` or `gnome-terminal`, and then compare them (use `meld`) or open with Ctrl-O or open with context-menu.", "link": "https://extensions.gnome.org/extension/4789/compare-filedir-from-clip/", "shell_version_map": {
@@ -4343,7 +4361,7 @@
     "42": {"version": "8", "sha256": "0ldkfawgpdzzicr7ja1v1lyjg38pw0mh2i91gm3bdf9wxln4d6j7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBlbmFibGUvZGlzYWJsZSBDUFUgZnJlcXVlbmN5IGJvb3N0IGluIEdub21lIFBvd2VyIFByb2ZpbGVzIG1lbnUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnJlcS1ib29zdC1zd2l0Y2hAbWV0YWwwMzMyNiIsCiAgIm5hbWUiOiAiRnJlcXVlbmN5IEJvb3N0IFN3aXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVxLWJvb3N0LXN3aXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tZXRhbDAzMzI2L2dub21lLWZyZXF1ZW5jeS1ib29zdC1zd2l0Y2giLAogICJ1dWlkIjogImZyZXEtYm9vc3Qtc3dpdGNoQG1ldGFsMDMzMjYiLAogICJ2ZXJzaW9uIjogOAp9"},
     "43": {"version": "9", "sha256": "0fj1bc209l2zz8cwllxm5nadd0hmvikf9d1ydfwc25l201czl68m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBlbmFibGUvZGlzYWJsZSBDUFUgZnJlcXVlbmN5IGJvb3N0IGluIEdub21lIFBvd2VyIFByb2ZpbGVzIG1lbnUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnJlcS1ib29zdC1zd2l0Y2hAbWV0YWwwMzMyNiIsCiAgIm5hbWUiOiAiRnJlcXVlbmN5IEJvb3N0IFN3aXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVxLWJvb3N0LXN3aXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tZXRhbDAzMzI2L2dub21lLWZyZXF1ZW5jeS1ib29zdC1zd2l0Y2giLAogICJ1dWlkIjogImZyZXEtYm9vc3Qtc3dpdGNoQG1ldGFsMDMzMjYiLAogICJ2ZXJzaW9uIjogOQp9"},
     "44": {"version": "12", "sha256": "14kxvp230ls2g657yl4zxnsz1f3rn9m20ykrmqmvsjkhcmgkkq30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBlbmFibGUvZGlzYWJsZSBDUFUgZnJlcXVlbmN5IGJvb3N0IGluIEdub21lIFBvd2VyIFByb2ZpbGVzIG1lbnUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnJlcS1ib29zdC1zd2l0Y2hAbWV0YWwwMzMyNiIsCiAgIm5hbWUiOiAiRnJlcXVlbmN5IEJvb3N0IFN3aXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVxLWJvb3N0LXN3aXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tZXRhbDAzMzI2L2dub21lLWZyZXF1ZW5jeS1ib29zdC1zd2l0Y2giLAogICJ1dWlkIjogImZyZXEtYm9vc3Qtc3dpdGNoQG1ldGFsMDMzMjYiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "45": {"version": "15", "sha256": "1mv1sn1sl749yvjal3f53913x3sxrrnini4f6dj3cxgkb4kswd17", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBlbmFibGUvZGlzYWJsZSBDUFUgZnJlcXVlbmN5IGJvb3N0IGluIEdub21lIFF1aWNrIFNldHRpbmdzIG1lbnUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnJlcS1ib29zdC1zd2l0Y2hAbWV0YWwwMzMyNiIsCiAgIm5hbWUiOiAiRnJlcXVlbmN5IEJvb3N0IFN3aXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVxLWJvb3N0LXN3aXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tZXRhbDAzMzI2L2dub21lLWZyZXF1ZW5jeS1ib29zdC1zd2l0Y2giLAogICJ1dWlkIjogImZyZXEtYm9vc3Qtc3dpdGNoQG1ldGFsMDMzMjYiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}
+    "45": {"version": "19", "sha256": "08dy68x4g4i84lkns2hnbrax4y7d8m8z6k9qqhb120wjkz7x03vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBlbmFibGUvZGlzYWJsZSBDUFUgZnJlcXVlbmN5IGJvb3N0IGluIEdub21lIFF1aWNrIFNldHRpbmdzIG1lbnUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnJlcS1ib29zdC1zd2l0Y2hAbWV0YWwwMzMyNiIsCiAgIm5hbWUiOiAiRnJlcXVlbmN5IEJvb3N0IFN3aXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVxLWJvb3N0LXN3aXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tZXRhbDAzMzI2L2dub21lLWZyZXF1ZW5jeS1ib29zdC1zd2l0Y2giLAogICJ1dWlkIjogImZyZXEtYm9vc3Qtc3dpdGNoQG1ldGFsMDMzMjYiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}
   }}
 , {"uuid": "pop-launcher-super-key@ManeLippert", "name": "Pop Launcher Super-Key", "pname": "pop-launcher-super-key", "description": "Fork of Pop COSMIC: Binds Pop Launcher on Super-Key when Pop COSMIC Extension is disabled. \n\nSince Pop!_OS moves to its own desktop enviroment (COSMIC DE) and I left linux behind me this extension will not get continued. If someone is willing to port the extension to Gnome 45, get in touch with me on the repository page on GitHub.\n\nIf you want to change the support manually, modify '~/.local/share/gnome-shell/extensions/pop-launcher-super-key@ManeLippert/metadata.json' under 'shell-version' add the desired version (e.g '44' for GNOME 44).", "link": "https://extensions.gnome.org/extension/4797/pop-launcher-super-key/", "shell_version_map": {
     "38": {"version": "10", "sha256": "05qdfqiscminv560finl4qy6747n9r1n54h1yx7k648wwxb31s9s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2YgUG9wIENPU01JQzogQmluZHMgUG9wIExhdW5jaGVyIG9uIFN1cGVyLUtleSB3aGVuIFBvcCBDT1NNSUMgRXh0ZW5zaW9uIGlzIGRpc2FibGVkLiBcblxuU2luY2UgUG9wIV9PUyBtb3ZlcyB0byBpdHMgb3duIGRlc2t0b3AgZW52aXJvbWVudCAoQ09TTUlDIERFKSBhbmQgSSBsZWZ0IGxpbnV4IGJlaGluZCBtZSB0aGlzIGV4dGVuc2lvbiB3aWxsIG5vdCBnZXQgY29udGludWVkLiBcblxuSWYgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBzdXBwb3J0IG1hbnVhbGx5LCBtb2RpZnkgJ34vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvcG9wLWxhdW5jaGVyLXN1cGVyLWtleUBNYW5lTGlwcGVydC9tZXRhZGF0YS5qc29uJyB1bmRlciAnc2hlbGwtdmVyc2lvbicgYWRkIHRoZSBkZXNpcmVkIHZlcnNpb24gKGUuZyAnNDQnIGZvciBHTk9NRSA0NCkuIiwKICAibmFtZSI6ICJQb3AgTGF1bmNoZXIgU3VwZXItS2V5IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJTeXN0ZW03NiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3AtbGF1bmNoZXItc3VwZXIta2V5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYW5lTGlwcGVydC9wb3AtbGF1bmNoZXItc3VwZXIta2V5IiwKICAidXVpZCI6ICJwb3AtbGF1bmNoZXItc3VwZXIta2V5QE1hbmVMaXBwZXJ0IiwKICAidmVyc2lvbiI6IDEwCn0="},
@@ -4358,7 +4376,7 @@
     "42": {"version": "13", "sha256": "07l1vgv9zhyh8q2h0gnn69x7h8gfn8x9q34p9lab7w08s4zn2rnb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL21hcmNvc2RhbHZhcmV6L3RoaW5rcGFkLWJhdHRlcnktdGhyZXNob2xkLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAidmVyc2lvbiI6IDEzCn0="},
     "43": {"version": "34", "sha256": "0ii1pxbnfjjli8jj0fq1g1rlhzpbn1j9088jp0sjrxvdlrmksdzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWFyY29zZGFsdmFyZXovdGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZEBtYXJjb3NkYWx2YXJlei5vcmciLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
     "44": {"version": "34", "sha256": "0ii1pxbnfjjli8jj0fq1g1rlhzpbn1j9088jp0sjrxvdlrmksdzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWFyY29zZGFsdmFyZXovdGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZEBtYXJjb3NkYWx2YXJlei5vcmciLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
-    "45": {"version": "42", "sha256": "11l1pwh77l8d3f1yajh86y0hx97vw5d36aa4r725854hj0rqz941", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tYXJjb3NkYWx2YXJlei90aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZC1leHRlbnNpb24iLAogICJ1dWlkIjogInRoaW5rcGFkLWJhdHRlcnktdGhyZXNob2xkQG1hcmNvc2RhbHZhcmV6Lm9yZyIsCiAgInZlcnNpb24iOiA0Mgp9"}
+    "45": {"version": "43", "sha256": "1hk6l2w1n56n406inl7q9phlggpsxy6sgqsqw7j9nm76snkhd582", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tYXJjb3NkYWx2YXJlei90aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZC1leHRlbnNpb24iLAogICJ1dWlkIjogInRoaW5rcGFkLWJhdHRlcnktdGhyZXNob2xkQG1hcmNvc2RhbHZhcmV6Lm9yZyIsCiAgInZlcnNpb24iOiA0Mwp9"}
   }}
 , {"uuid": "lock-screen-message@advendradeswanta.gitlab.com", "name": "Lock Screen Message", "pname": "lock-screen-message", "description": "Simple extension that let's you add your message to the lock screen (unlockDialog)", "link": "https://extensions.gnome.org/extension/4801/lock-screen-message/", "shell_version_map": {
     "40": {"version": "3", "sha256": "0hkr6gm7kr69fc4zjb8rddwj75jpbpvqz4wpkfl659wjn4980s3c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBsZXQncyB5b3UgYWRkIHlvdXIgbWVzc2FnZSB0byB0aGUgbG9jayBzY3JlZW4gKHVubG9ja0RpYWxvZykiLAogICJuYW1lIjogIkxvY2sgU2NyZWVuIE1lc3NhZ2UiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVzZXIiLAogICAgInVubG9jay1kaWFsb2ciCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxvY2stc2NyZWVuLW1lc3NhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BZHZlbmRyYURlc3dhbnRhL2xvY2stc2NyZWVuLW1lc3NhZ2UiLAogICJ1dWlkIjogImxvY2stc2NyZWVuLW1lc3NhZ2VAYWR2ZW5kcmFkZXN3YW50YS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="},
@@ -4533,7 +4551,7 @@
     "41": {"version": "3", "sha256": "1cp0gyj8kms59p9l5wn2z0p4g9rfyn79wxv806gllqmwql6xrm4x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJpZ2h0IGNsaWNrIGF0IHRvcCBsZWZ0IGNvcm5lciB0byBicmluZyB1cCBhcHBzIG1lbnUuIiwKICAibmFtZSI6ICJVc2FibGUgT3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVjaHRpZnMvdXNhYmxlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJ1c2FibGUtb3ZlcnZpZXdAbWVjaHRpZnMiLAogICJ2ZXJzaW9uIjogMwp9"},
     "42": {"version": "3", "sha256": "1cp0gyj8kms59p9l5wn2z0p4g9rfyn79wxv806gllqmwql6xrm4x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJpZ2h0IGNsaWNrIGF0IHRvcCBsZWZ0IGNvcm5lciB0byBicmluZyB1cCBhcHBzIG1lbnUuIiwKICAibmFtZSI6ICJVc2FibGUgT3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVjaHRpZnMvdXNhYmxlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJ1c2FibGUtb3ZlcnZpZXdAbWVjaHRpZnMiLAogICJ2ZXJzaW9uIjogMwp9"},
     "43": {"version": "3", "sha256": "1cp0gyj8kms59p9l5wn2z0p4g9rfyn79wxv806gllqmwql6xrm4x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJpZ2h0IGNsaWNrIGF0IHRvcCBsZWZ0IGNvcm5lciB0byBicmluZyB1cCBhcHBzIG1lbnUuIiwKICAibmFtZSI6ICJVc2FibGUgT3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVjaHRpZnMvdXNhYmxlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJ1c2FibGUtb3ZlcnZpZXdAbWVjaHRpZnMiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "45": {"version": "4", "sha256": "1vf8pq29sx1pfjs79j34il654sp93id9p6110qlx5yskg65qcmq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJpZ2h0IGNsaWNrIGF0IHRvcCBsZWZ0IGNvcm5lciB0byBicmluZyB1cCBhcHBzIG1lbnUuIiwKICAibmFtZSI6ICJVc2FibGUgT3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVjaHRpZnMvdXNhYmxlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJ1c2FibGUtb3ZlcnZpZXdAbWVjaHRpZnMiLAogICJ2ZXJzaW9uIjogNAp9"}
+    "45": {"version": "6", "sha256": "0hg06924jh6aqma2dlnfnj7hrrxlzwf9njrxbxr473ddqp4sxi76", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJpZ2h0IGNsaWNrIGF0IHRvcCBsZWZ0IGNvcm5lciB0byBicmluZyB1cCBhcHBzIG1lbnUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVzYWJsZS1vdmVydmlldyIsCiAgIm5hbWUiOiAiVXNhYmxlIE92ZXJ2aWV3IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzYWJsZS1vdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVjaHRpZnMvdXNhYmxlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJ1c2FibGUtb3ZlcnZpZXdAbWVjaHRpZnMiLAogICJ2ZXJzaW9uIjogNgp9"}
   }}
 , {"uuid": "overview-clicking@mechtifs", "name": "Overview Clicking", "pname": "overview-clicking", "description": "Close the overview or show up application grid by left/right clicking empty space. Forked from click-to-close-overview@l3nn4rt.github.io.", "link": "https://extensions.gnome.org/extension/4898/overview-clicking/", "shell_version_map": {
     "40": {"version": "1", "sha256": "10f08rn9m66ynrs5jsgxg4qzrimcjdslgs36s8fgcblr5r31kw8i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBvciBzaG93IHVwIGFwcGxpY2F0aW9uIGdyaWQgYnkgbGVmdC9yaWdodCBjbGlja2luZyBlbXB0eSBzcGFjZS4gRm9ya2VkIGZyb20gY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8uIiwKICAibmFtZSI6ICJPdmVydmlldyBDbGlja2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21lY2h0aWZzL292ZXJ2aWV3LWNsaWNraW5nIiwKICAidXVpZCI6ICJvdmVydmlldy1jbGlja2luZ0BtZWNodGlmcyIsCiAgInZlcnNpb24iOiAxCn0="},
@@ -4583,14 +4601,14 @@
     "43": {"version": "10", "sha256": "12hnxf90z6vc4clr2h9sp3zy764fda3rqrnzry00l1waydzcw83d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiMjIG1vbml0b3IgZ2l0IGRpcmVjdG9yeSBmb3IgY2hhbmdlcy5cbj4gV29ya2luZyB3aXRoIGEgbG90IG9mIGdpdCBkaXJlY3RvcmllcywgSSBhbHdheXMgZm9yZ290IGNvbW1pdC5cbiMjIyBQYW5lbCBJY29uXG4tIE1vdXNlIDIsIGZvcmNlIHJlZnJlc2ggKHJlLXJlYWQgY29uZmlnIGZpbGUsIGNoZWNrIGdpdCBkaXJzLCByZWZyZXNoIG1lbnUpLlxuLSBNb3VzZSAzLCBvcGVuIGNvbmZpZ2ZpbGUuIGNvbmZpZyBmaWxlIGlzIGB+Ly5jb25maWcvZ2l0LW1vbml0b3IuanNvbmAuXG4jIyMgTWVudSBJdGVtXG4tIERpcmVjdG9yeSBhbmQgRmlsZXM6IE1vdXNlIDEsIG9wZW5lZCB3aXRoIGBnaXQgZGlmZnRvb2xgLCBlZyBgbWVsZGAuIE1vdXNlIDMsIHN5c3RlbSBvcGVuLiIsCiAgIm5hbWUiOiAiR2l0IE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLWdpdCIsCiAgInV1aWQiOiAiZ2l0QGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "44": {"version": "10", "sha256": "12hnxf90z6vc4clr2h9sp3zy764fda3rqrnzry00l1waydzcw83d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiMjIG1vbml0b3IgZ2l0IGRpcmVjdG9yeSBmb3IgY2hhbmdlcy5cbj4gV29ya2luZyB3aXRoIGEgbG90IG9mIGdpdCBkaXJlY3RvcmllcywgSSBhbHdheXMgZm9yZ290IGNvbW1pdC5cbiMjIyBQYW5lbCBJY29uXG4tIE1vdXNlIDIsIGZvcmNlIHJlZnJlc2ggKHJlLXJlYWQgY29uZmlnIGZpbGUsIGNoZWNrIGdpdCBkaXJzLCByZWZyZXNoIG1lbnUpLlxuLSBNb3VzZSAzLCBvcGVuIGNvbmZpZ2ZpbGUuIGNvbmZpZyBmaWxlIGlzIGB+Ly5jb25maWcvZ2l0LW1vbml0b3IuanNvbmAuXG4jIyMgTWVudSBJdGVtXG4tIERpcmVjdG9yeSBhbmQgRmlsZXM6IE1vdXNlIDEsIG9wZW5lZCB3aXRoIGBnaXQgZGlmZnRvb2xgLCBlZyBgbWVsZGAuIE1vdXNlIDMsIHN5c3RlbSBvcGVuLiIsCiAgIm5hbWUiOiAiR2l0IE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLWdpdCIsCiAgInV1aWQiOiAiZ2l0QGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}
   }}
-, {"uuid": "mprisLabel@moon-0xff.github.com", "name": "Media Label and Controls (Mpris Label)", "pname": "mpris-label", "description": "Display a label in your panel with the song/title/album/artist information available from an mpris compatible player. You can also control the player, raise/lower its volume, customize the label, and a lot more! This extension works with Spotify, Vlc, Rhythmbox, Firefox, Chromium, and (probably) any MPRIS compatible player.", "link": "https://extensions.gnome.org/extension/4928/mpris-label/", "shell_version_map": {
+, {"uuid": "mprisLabel@moon-0xff.github.com", "name": "Media Label and Controls (Mpris Label)", "pname": "mpris-label", "description": "Display a label in your panel with the song/title/album/artist information available from an mpris compatible player. You can also control the player, raise/lower its volume, customize the label, and a lot more! This extension works with Spotify, Vlc, Rhythmbox, Firefox, Chromium, and (probably) any MPRIS compatible player.\n\nThe newest update (for GNOME 43,44 and 45):\n- Solves various problems triggered by an empty `Identity` field on a player\n- Allows binding the action 'Next/Prev track' to scroll up/down\n- Allows different font colors for the label text\nNote: Version 26 for GNOME 45 users already included the `Identity` fixes", "link": "https://extensions.gnome.org/extension/4928/mpris-label/", "shell_version_map": {
     "38": {"version": "18", "sha256": "1wbmzrkx8vjnr4jdgrqp2i3i7qs0dqb8nww15vh4q91f99f89cp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW4geW91ciBwYW5lbCB0aGUgKHNvbmcpdGl0bGUsIGFsYnVtIGFuZC9vciBhcnRpc3QgbmFtZSBhdmFpbGFibGUgZnJvbSBhbiBtcHJpcyBjb21wYXRpYmxlIG1lZGlhIHBsYXllciwgc3VjaCBhcyBTcG90aWZ5LCBWbGMsIFJoeXRobWJveCwgRmlyZWZveCwgQ2hyb21pdW0gYW5kIG1hbnkgbW9yZS4gTG90cyBvZiBmZWF0dXJlcyBhbmQgdmVyeSBjdXN0b21pemFibGUhIiwKICAibmFtZSI6ICJNcHJpcyBMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTW9vbi0weGZmL2dub21lLW1wcmlzLWxhYmVsIiwKICAidXVpZCI6ICJtcHJpc0xhYmVsQG1vb24tMHhmZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="},
     "40": {"version": "18", "sha256": "1wbmzrkx8vjnr4jdgrqp2i3i7qs0dqb8nww15vh4q91f99f89cp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW4geW91ciBwYW5lbCB0aGUgKHNvbmcpdGl0bGUsIGFsYnVtIGFuZC9vciBhcnRpc3QgbmFtZSBhdmFpbGFibGUgZnJvbSBhbiBtcHJpcyBjb21wYXRpYmxlIG1lZGlhIHBsYXllciwgc3VjaCBhcyBTcG90aWZ5LCBWbGMsIFJoeXRobWJveCwgRmlyZWZveCwgQ2hyb21pdW0gYW5kIG1hbnkgbW9yZS4gTG90cyBvZiBmZWF0dXJlcyBhbmQgdmVyeSBjdXN0b21pemFibGUhIiwKICAibmFtZSI6ICJNcHJpcyBMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTW9vbi0weGZmL2dub21lLW1wcmlzLWxhYmVsIiwKICAidXVpZCI6ICJtcHJpc0xhYmVsQG1vb24tMHhmZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="},
     "41": {"version": "18", "sha256": "1wbmzrkx8vjnr4jdgrqp2i3i7qs0dqb8nww15vh4q91f99f89cp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW4geW91ciBwYW5lbCB0aGUgKHNvbmcpdGl0bGUsIGFsYnVtIGFuZC9vciBhcnRpc3QgbmFtZSBhdmFpbGFibGUgZnJvbSBhbiBtcHJpcyBjb21wYXRpYmxlIG1lZGlhIHBsYXllciwgc3VjaCBhcyBTcG90aWZ5LCBWbGMsIFJoeXRobWJveCwgRmlyZWZveCwgQ2hyb21pdW0gYW5kIG1hbnkgbW9yZS4gTG90cyBvZiBmZWF0dXJlcyBhbmQgdmVyeSBjdXN0b21pemFibGUhIiwKICAibmFtZSI6ICJNcHJpcyBMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTW9vbi0weGZmL2dub21lLW1wcmlzLWxhYmVsIiwKICAidXVpZCI6ICJtcHJpc0xhYmVsQG1vb24tMHhmZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="},
     "42": {"version": "18", "sha256": "1wbmzrkx8vjnr4jdgrqp2i3i7qs0dqb8nww15vh4q91f99f89cp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW4geW91ciBwYW5lbCB0aGUgKHNvbmcpdGl0bGUsIGFsYnVtIGFuZC9vciBhcnRpc3QgbmFtZSBhdmFpbGFibGUgZnJvbSBhbiBtcHJpcyBjb21wYXRpYmxlIG1lZGlhIHBsYXllciwgc3VjaCBhcyBTcG90aWZ5LCBWbGMsIFJoeXRobWJveCwgRmlyZWZveCwgQ2hyb21pdW0gYW5kIG1hbnkgbW9yZS4gTG90cyBvZiBmZWF0dXJlcyBhbmQgdmVyeSBjdXN0b21pemFibGUhIiwKICAibmFtZSI6ICJNcHJpcyBMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTW9vbi0weGZmL2dub21lLW1wcmlzLWxhYmVsIiwKICAidXVpZCI6ICJtcHJpc0xhYmVsQG1vb24tMHhmZi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="},
-    "43": {"version": "25", "sha256": "1di9ai4sldx56x0mvrllpca8iyg54wszvpbh3kykdsr5b8jg0h83", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBsYWJlbCBpbiB5b3VyIHBhbmVsIHdpdGggdGhlIHNvbmcvdGl0bGUvYWxidW0vYXJ0aXN0IGluZm9ybWF0aW9uIGF2YWlsYWJsZSBmcm9tIGFuIG1wcmlzIGNvbXBhdGlibGUgcGxheWVyLiBZb3UgY2FuIGFsc28gY29udHJvbCB0aGUgcGxheWVyLCByYWlzZS9sb3dlciBpdHMgdm9sdW1lLCBjdXN0b21pemUgdGhlIGxhYmVsLCBhbmQgYSBsb3QgbW9yZSEgVGhpcyBleHRlbnNpb24gd29ya3Mgd2l0aCBTcG90aWZ5LCBWbGMsIFJoeXRobWJveCwgRmlyZWZveCwgQ2hyb21pdW0sIGFuZCAocHJvYmFibHkpIGFueSBNUFJJUyBjb21wYXRpYmxlIHBsYXllci4iLAogICJuYW1lIjogIk1lZGlhIExhYmVsIGFuZCBDb250cm9scyAoTXByaXMgTGFiZWwpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Nb29uLTB4ZmYvZ25vbWUtbXByaXMtbGFiZWwiLAogICJ1dWlkIjogIm1wcmlzTGFiZWxAbW9vbi0weGZmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="},
-    "44": {"version": "25", "sha256": "1di9ai4sldx56x0mvrllpca8iyg54wszvpbh3kykdsr5b8jg0h83", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBsYWJlbCBpbiB5b3VyIHBhbmVsIHdpdGggdGhlIHNvbmcvdGl0bGUvYWxidW0vYXJ0aXN0IGluZm9ybWF0aW9uIGF2YWlsYWJsZSBmcm9tIGFuIG1wcmlzIGNvbXBhdGlibGUgcGxheWVyLiBZb3UgY2FuIGFsc28gY29udHJvbCB0aGUgcGxheWVyLCByYWlzZS9sb3dlciBpdHMgdm9sdW1lLCBjdXN0b21pemUgdGhlIGxhYmVsLCBhbmQgYSBsb3QgbW9yZSEgVGhpcyBleHRlbnNpb24gd29ya3Mgd2l0aCBTcG90aWZ5LCBWbGMsIFJoeXRobWJveCwgRmlyZWZveCwgQ2hyb21pdW0sIGFuZCAocHJvYmFibHkpIGFueSBNUFJJUyBjb21wYXRpYmxlIHBsYXllci4iLAogICJuYW1lIjogIk1lZGlhIExhYmVsIGFuZCBDb250cm9scyAoTXByaXMgTGFiZWwpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Nb29uLTB4ZmYvZ25vbWUtbXByaXMtbGFiZWwiLAogICJ1dWlkIjogIm1wcmlzTGFiZWxAbW9vbi0weGZmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="},
-    "45": {"version": "26", "sha256": "06gpycpr3wfyxvhfnbnxhbf01z14c7wvrfwn1rdz4mn822dyq8dn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBsYWJlbCBpbiB5b3VyIHBhbmVsIHdpdGggdGhlIHNvbmcvdGl0bGUvYWxidW0vYXJ0aXN0IGluZm9ybWF0aW9uIGF2YWlsYWJsZSBmcm9tIGFuIG1wcmlzIGNvbXBhdGlibGUgcGxheWVyLiBZb3UgY2FuIGFsc28gY29udHJvbCB0aGUgcGxheWVyLCByYWlzZS9sb3dlciBpdHMgdm9sdW1lLCBjdXN0b21pemUgdGhlIGxhYmVsLCBhbmQgYSBsb3QgbW9yZSEgVGhpcyBleHRlbnNpb24gd29ya3Mgd2l0aCBTcG90aWZ5LCBWbGMsIFJoeXRobWJveCwgRmlyZWZveCwgQ2hyb21pdW0sIGFuZCAocHJvYmFibHkpIGFueSBNUFJJUyBjb21wYXRpYmxlIHBsYXllci4iLAogICJuYW1lIjogIk1lZGlhIExhYmVsIGFuZCBDb250cm9scyAoTXByaXMgTGFiZWwpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1wcmlzLWxhYmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01vb24tMHhmZi9nbm9tZS1tcHJpcy1sYWJlbCIsCiAgInV1aWQiOiAibXByaXNMYWJlbEBtb29uLTB4ZmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNgp9"}
+    "43": {"version": "27", "sha256": "0q93cphymsxqzhli6v7gd0kh90n4kmkhihd3ms5nl7amacs0a0bg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBsYWJlbCBpbiB5b3VyIHBhbmVsIHdpdGggdGhlIHNvbmcvdGl0bGUvYWxidW0vYXJ0aXN0IGluZm9ybWF0aW9uIGF2YWlsYWJsZSBmcm9tIGFuIG1wcmlzIGNvbXBhdGlibGUgcGxheWVyLiBZb3UgY2FuIGFsc28gY29udHJvbCB0aGUgcGxheWVyLCByYWlzZS9sb3dlciBpdHMgdm9sdW1lLCBjdXN0b21pemUgdGhlIGxhYmVsLCBhbmQgYSBsb3QgbW9yZSEgVGhpcyBleHRlbnNpb24gd29ya3Mgd2l0aCBTcG90aWZ5LCBWbGMsIFJoeXRobWJveCwgRmlyZWZveCwgQ2hyb21pdW0sIGFuZCAocHJvYmFibHkpIGFueSBNUFJJUyBjb21wYXRpYmxlIHBsYXllci4iLAogICJuYW1lIjogIk1lZGlhIExhYmVsIGFuZCBDb250cm9scyAoTXByaXMgTGFiZWwpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1wcmlzLWxhYmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Nb29uLTB4ZmYvZ25vbWUtbXByaXMtbGFiZWwiLAogICJ1dWlkIjogIm1wcmlzTGFiZWxAbW9vbi0weGZmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
+    "44": {"version": "27", "sha256": "0q93cphymsxqzhli6v7gd0kh90n4kmkhihd3ms5nl7amacs0a0bg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBsYWJlbCBpbiB5b3VyIHBhbmVsIHdpdGggdGhlIHNvbmcvdGl0bGUvYWxidW0vYXJ0aXN0IGluZm9ybWF0aW9uIGF2YWlsYWJsZSBmcm9tIGFuIG1wcmlzIGNvbXBhdGlibGUgcGxheWVyLiBZb3UgY2FuIGFsc28gY29udHJvbCB0aGUgcGxheWVyLCByYWlzZS9sb3dlciBpdHMgdm9sdW1lLCBjdXN0b21pemUgdGhlIGxhYmVsLCBhbmQgYSBsb3QgbW9yZSEgVGhpcyBleHRlbnNpb24gd29ya3Mgd2l0aCBTcG90aWZ5LCBWbGMsIFJoeXRobWJveCwgRmlyZWZveCwgQ2hyb21pdW0sIGFuZCAocHJvYmFibHkpIGFueSBNUFJJUyBjb21wYXRpYmxlIHBsYXllci4iLAogICJuYW1lIjogIk1lZGlhIExhYmVsIGFuZCBDb250cm9scyAoTXByaXMgTGFiZWwpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1wcmlzLWxhYmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Nb29uLTB4ZmYvZ25vbWUtbXByaXMtbGFiZWwiLAogICJ1dWlkIjogIm1wcmlzTGFiZWxAbW9vbi0weGZmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
+    "45": {"version": "28", "sha256": "11gzrrk7hswd8h588jylxn5wxxxniwpmp6lgpxd2vaff0sab8l98", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBsYWJlbCBpbiB5b3VyIHBhbmVsIHdpdGggdGhlIHNvbmcvdGl0bGUvYWxidW0vYXJ0aXN0IGluZm9ybWF0aW9uIGF2YWlsYWJsZSBmcm9tIGFuIG1wcmlzIGNvbXBhdGlibGUgcGxheWVyLiBZb3UgY2FuIGFsc28gY29udHJvbCB0aGUgcGxheWVyLCByYWlzZS9sb3dlciBpdHMgdm9sdW1lLCBjdXN0b21pemUgdGhlIGxhYmVsLCBhbmQgYSBsb3QgbW9yZSEgVGhpcyBleHRlbnNpb24gd29ya3Mgd2l0aCBTcG90aWZ5LCBWbGMsIFJoeXRobWJveCwgRmlyZWZveCwgQ2hyb21pdW0sIGFuZCAocHJvYmFibHkpIGFueSBNUFJJUyBjb21wYXRpYmxlIHBsYXllci4iLAogICJuYW1lIjogIk1lZGlhIExhYmVsIGFuZCBDb250cm9scyAoTXByaXMgTGFiZWwpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1wcmlzLWxhYmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01vb24tMHhmZi9nbm9tZS1tcHJpcy1sYWJlbCIsCiAgInV1aWQiOiAibXByaXNMYWJlbEBtb29uLTB4ZmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyOAp9"}
   }}
 , {"uuid": "captivate@rensoliemans.nl", "name": "Captivate", "pname": "captivate", "description": "Activate your CapsLock button.\nUsing gnome-tweaks, remap your CapsLock to a Menu key, and then this extension works perfectly. Alternatively, choose a different key in the extension settings.\n\nDon't forget to log out and in again if you're updating the extension manually.", "link": "https://extensions.gnome.org/extension/4932/captivate/", "shell_version_map": {
     "40": {"version": "6", "sha256": "1lpaq3pbhg0c90xbvhwi9hz8m5nzvfgw14g61wg7f8fc17a7s77i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjdGl2YXRlIHlvdXIgQ2Fwc0xvY2sgYnV0dG9uLlxuVXNpbmcgZ25vbWUtdHdlYWtzLCByZW1hcCB5b3VyIENhcHNMb2NrIHRvIGEgTWVudSBrZXksIGFuZCB0aGVuIHRoaXMgZXh0ZW5zaW9uIHdvcmtzIHBlcmZlY3RseS4gQWx0ZXJuYXRpdmVseSwgY2hvb3NlIGEgZGlmZmVyZW50IGtleSBpbiB0aGUgZXh0ZW5zaW9uIHNldHRpbmdzLlxuXG5Eb24ndCBmb3JnZXQgdG8gbG9nIG91dCBhbmQgaW4gYWdhaW4gaWYgeW91J3JlIHVwZGF0aW5nIHRoZSBleHRlbnNpb24gbWFudWFsbHkuIiwKICAibmFtZSI6ICJDYXB0aXZhdGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2FwdGl2YXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmVuc29saWVtYW5zL2NhcHRpdmF0ZSIsCiAgInV1aWQiOiAiY2FwdGl2YXRlQHJlbnNvbGllbWFucy5ubCIsCiAgInZlcnNpb24iOiA2Cn0="},
@@ -4608,21 +4626,21 @@
     "42": {"version": "18", "sha256": "0mklxqybxnlw8jpfljyg2hapw8zgi732162ris96li0440a8h616", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BbmRyZXdaYWVjaC9henRhc2tiYXIiLAogICJ1dWlkIjogImF6dGFza2JhckBhenRhc2tiYXIuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"},
     "43": {"version": "18", "sha256": "0mklxqybxnlw8jpfljyg2hapw8zgi732162ris96li0440a8h616", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BbmRyZXdaYWVjaC9henRhc2tiYXIiLAogICJ1dWlkIjogImF6dGFza2JhckBhenRhc2tiYXIuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"},
     "44": {"version": "18", "sha256": "0mklxqybxnlw8jpfljyg2hapw8zgi732162ris96li0440a8h616", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BbmRyZXdaYWVjaC9henRhc2tiYXIiLAogICJ1dWlkIjogImF6dGFza2JhckBhenRhc2tiYXIuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"},
-    "45": {"version": "21", "sha256": "0hncdwy1swn85jyyvf0kxmlmbwvxq9z9hqbqhg974r8wrkyk4ymv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQW5kcmV3WmFlY2gvYXp0YXNrYmFyIiwKICAidXVpZCI6ICJhenRhc2tiYXJAYXp0YXNrYmFyLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="}
+    "45": {"version": "22", "sha256": "1zcb26wb96xif8swywgb9f9nkvbgmgl2hiy0bbj19xwfdbvjdvp2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}
   }}
 , {"uuid": "netSpeedMonitor@nidyran.github.io", "name": "Network Speed Tracker", "pname": "net-speed-monitor", "description": "Network Speed Tracker \nUsage instructions:\n1 - Right-click to easily switch between available network sources.\n2 - Left-click to toggle display modes.\n3 - Middle-click to adjust the refresh rate.", "link": "https://extensions.gnome.org/extension/4947/net-speed-monitor/", "shell_version_map": {
     "38": {"version": "5", "sha256": "1zvp8zx82kqbf9ck55csgcysld3z1gr3cigkl5y73s5rvqj3ks5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHRyYWNraW5nIGFuZCBtb25pdG9yaW5nIG5ldHdvcmsgc3BlZWQuIFxuVGhlcmUgYXJlIGZpdmUgbW9kZXM6IFxuMSAtIGRvd25sb2FkIHNwZWVkIG9ubHkuIFxuMiAtIHVwbG9hZCBzcGVlZCBvbmx5LiBcbjMgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHRvZ2V0aGVyLiBcbjQgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHN1bW1lZC4gXG41IC0gdG90YWwgZGF0YSB1c2FnZSBcblRvIHN3aXRjaCBiZXR3ZWVuIG1vZGVzLCB1c2UgbGVmdCBtb3VzZSBjbGljay4gXG5UbyBzd2l0Y2ggYmV0d2VlbiBhdmFpbGFibGUgc291cmNlcywgdXNlIHJpZ2h0IG1vdXNlIGNsaWNrLiBcblRvIGNoYW5nZSByZWZyZXNoIHRpbWUgMjAwIC0gMTAwMCB1c2UgbWlkZGxlIG1vdXNlIGNsaWNrLiBcblRoZSBmaXJzdCBzb3VyY2Ugd2l0aCB1c2FnZSBoaWdoZXIgdGhhbiB6ZXJvIHdpbGwgYmUgcGlja2VkIGJ5IGRlZmF1bHQuIFxuVGhlIGV4dGVuc2lvbiB3aWxsIHBpY2sgdGhlIGZpcnN0IHNvdXJjZSBieSBkZWZhdWx0LCBhbmQgaWYgbm8gdHJhZmZpYyBpcyBlc3RhYmxpc2hlZCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBvbmUgYW5kIHNvIG9uXG5UaGUgc291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rIGJlbG93LCB1cGRhdGUgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIiwKICAibmFtZSI6ICJuZXQgc3BlZWQgbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmlkeXJhbi9uZXRTcGVlZE1vbml0b3IvIiwKICAidXVpZCI6ICJuZXRTcGVlZE1vbml0b3JAbmlkeXJhbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"},
     "40": {"version": "5", "sha256": "1zvp8zx82kqbf9ck55csgcysld3z1gr3cigkl5y73s5rvqj3ks5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHRyYWNraW5nIGFuZCBtb25pdG9yaW5nIG5ldHdvcmsgc3BlZWQuIFxuVGhlcmUgYXJlIGZpdmUgbW9kZXM6IFxuMSAtIGRvd25sb2FkIHNwZWVkIG9ubHkuIFxuMiAtIHVwbG9hZCBzcGVlZCBvbmx5LiBcbjMgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHRvZ2V0aGVyLiBcbjQgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHN1bW1lZC4gXG41IC0gdG90YWwgZGF0YSB1c2FnZSBcblRvIHN3aXRjaCBiZXR3ZWVuIG1vZGVzLCB1c2UgbGVmdCBtb3VzZSBjbGljay4gXG5UbyBzd2l0Y2ggYmV0d2VlbiBhdmFpbGFibGUgc291cmNlcywgdXNlIHJpZ2h0IG1vdXNlIGNsaWNrLiBcblRvIGNoYW5nZSByZWZyZXNoIHRpbWUgMjAwIC0gMTAwMCB1c2UgbWlkZGxlIG1vdXNlIGNsaWNrLiBcblRoZSBmaXJzdCBzb3VyY2Ugd2l0aCB1c2FnZSBoaWdoZXIgdGhhbiB6ZXJvIHdpbGwgYmUgcGlja2VkIGJ5IGRlZmF1bHQuIFxuVGhlIGV4dGVuc2lvbiB3aWxsIHBpY2sgdGhlIGZpcnN0IHNvdXJjZSBieSBkZWZhdWx0LCBhbmQgaWYgbm8gdHJhZmZpYyBpcyBlc3RhYmxpc2hlZCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBvbmUgYW5kIHNvIG9uXG5UaGUgc291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rIGJlbG93LCB1cGRhdGUgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIiwKICAibmFtZSI6ICJuZXQgc3BlZWQgbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmlkeXJhbi9uZXRTcGVlZE1vbml0b3IvIiwKICAidXVpZCI6ICJuZXRTcGVlZE1vbml0b3JAbmlkeXJhbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"},
     "41": {"version": "5", "sha256": "1zvp8zx82kqbf9ck55csgcysld3z1gr3cigkl5y73s5rvqj3ks5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHRyYWNraW5nIGFuZCBtb25pdG9yaW5nIG5ldHdvcmsgc3BlZWQuIFxuVGhlcmUgYXJlIGZpdmUgbW9kZXM6IFxuMSAtIGRvd25sb2FkIHNwZWVkIG9ubHkuIFxuMiAtIHVwbG9hZCBzcGVlZCBvbmx5LiBcbjMgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHRvZ2V0aGVyLiBcbjQgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHN1bW1lZC4gXG41IC0gdG90YWwgZGF0YSB1c2FnZSBcblRvIHN3aXRjaCBiZXR3ZWVuIG1vZGVzLCB1c2UgbGVmdCBtb3VzZSBjbGljay4gXG5UbyBzd2l0Y2ggYmV0d2VlbiBhdmFpbGFibGUgc291cmNlcywgdXNlIHJpZ2h0IG1vdXNlIGNsaWNrLiBcblRvIGNoYW5nZSByZWZyZXNoIHRpbWUgMjAwIC0gMTAwMCB1c2UgbWlkZGxlIG1vdXNlIGNsaWNrLiBcblRoZSBmaXJzdCBzb3VyY2Ugd2l0aCB1c2FnZSBoaWdoZXIgdGhhbiB6ZXJvIHdpbGwgYmUgcGlja2VkIGJ5IGRlZmF1bHQuIFxuVGhlIGV4dGVuc2lvbiB3aWxsIHBpY2sgdGhlIGZpcnN0IHNvdXJjZSBieSBkZWZhdWx0LCBhbmQgaWYgbm8gdHJhZmZpYyBpcyBlc3RhYmxpc2hlZCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBvbmUgYW5kIHNvIG9uXG5UaGUgc291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rIGJlbG93LCB1cGRhdGUgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIiwKICAibmFtZSI6ICJuZXQgc3BlZWQgbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmlkeXJhbi9uZXRTcGVlZE1vbml0b3IvIiwKICAidXVpZCI6ICJuZXRTcGVlZE1vbml0b3JAbmlkeXJhbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}
   }}
-, {"uuid": "gradienttopbar@pshow.org", "name": "Gradient Top Bar", "pname": "gradient-top-bar", "description": "Makes GNOME's panel's background gradient. You can edit the colour scheme from the extension's settings in Gnome 45.", "link": "https://extensions.gnome.org/extension/4955/gradient-top-bar/", "shell_version_map": {
+, {"uuid": "gradienttopbar@pshow.org", "name": "Gradient Top Bar", "pname": "gradient-top-bar", "description": "Makes GNOME's panel's background gradient. You can edit the colour scheme from the extension's settings in Gnome 45 and above.", "link": "https://extensions.gnome.org/extension/4955/gradient-top-bar/", "shell_version_map": {
     "38": {"version": "4", "sha256": "004m77f5hkg9bq9lk2cf79x9va7np37q7yv474bwg165v7a0s8v1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gWW91IGNhbiBlZGl0IHRoZSBjb2xvdXIgc2NoZW1lIGZyb20gdGhlIGV4dGVuc2lvbidzIHNldHRpbmdzLiIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="},
     "40": {"version": "4", "sha256": "004m77f5hkg9bq9lk2cf79x9va7np37q7yv474bwg165v7a0s8v1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gWW91IGNhbiBlZGl0IHRoZSBjb2xvdXIgc2NoZW1lIGZyb20gdGhlIGV4dGVuc2lvbidzIHNldHRpbmdzLiIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="},
     "41": {"version": "4", "sha256": "004m77f5hkg9bq9lk2cf79x9va7np37q7yv474bwg165v7a0s8v1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gWW91IGNhbiBlZGl0IHRoZSBjb2xvdXIgc2NoZW1lIGZyb20gdGhlIGV4dGVuc2lvbidzIHNldHRpbmdzLiIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="},
     "42": {"version": "4", "sha256": "004m77f5hkg9bq9lk2cf79x9va7np37q7yv474bwg165v7a0s8v1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gWW91IGNhbiBlZGl0IHRoZSBjb2xvdXIgc2NoZW1lIGZyb20gdGhlIGV4dGVuc2lvbidzIHNldHRpbmdzLiIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="},
     "43": {"version": "11", "sha256": "0nb4jcxhx994kgmsv0aksrjwxnw58bjw0hsijkg6bb8idm32s1pp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gWW91IGNhbiBlZGl0IHRoZSBjb2xvdXIgc2NoZW1lIGZyb20gdGhlIGV4dGVuc2lvbidzIHNldHRpbmdzLiIsCiAgImdldHRleHQtZG9tYWluIjogIm9yZy5wc2hvdy5ncmFkaWVudHRvcGJhciIsCiAgImhhc1ByZWZzIjogdHJ1ZSwKICAiaWNvbiI6ICIuL2Fzc2V0cy9sb2dvLnBuZyIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcmcucHNob3cuZ3JhZGllbnR0b3BiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BldGFyLXYvZ3JhZGllbnR0b3BiYXIiLAogICJ1dWlkIjogImdyYWRpZW50dG9wYmFyQHBzaG93Lm9yZyIsCiAgInZlcnNpb24iOiAxMQp9"},
     "44": {"version": "11", "sha256": "0nb4jcxhx994kgmsv0aksrjwxnw58bjw0hsijkg6bb8idm32s1pp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gWW91IGNhbiBlZGl0IHRoZSBjb2xvdXIgc2NoZW1lIGZyb20gdGhlIGV4dGVuc2lvbidzIHNldHRpbmdzLiIsCiAgImdldHRleHQtZG9tYWluIjogIm9yZy5wc2hvdy5ncmFkaWVudHRvcGJhciIsCiAgImhhc1ByZWZzIjogdHJ1ZSwKICAiaWNvbiI6ICIuL2Fzc2V0cy9sb2dvLnBuZyIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcmcucHNob3cuZ3JhZGllbnR0b3BiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BldGFyLXYvZ3JhZGllbnR0b3BiYXIiLAogICJ1dWlkIjogImdyYWRpZW50dG9wYmFyQHBzaG93Lm9yZyIsCiAgInZlcnNpb24iOiAxMQp9"},
-    "45": {"version": "18", "sha256": "0q263vhm4cpgrydc6ab8i6yp573i1ywvzjqxpg8pyg9737lyw5vi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgcGFuZWwncyBiYWNrZ3JvdW5kIGdyYWRpZW50LiBZb3UgY2FuIGVkaXQgdGhlIGNvbG91ciBzY2hlbWUgZnJvbSB0aGUgZXh0ZW5zaW9uJ3Mgc2V0dGluZ3MgaW4gR25vbWUgNDUuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJwZXRhci12IiwKICAgICJwYXlwYWwiOiAicGV0YXJ2NzMiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAib3JnLnBzaG93LmdyYWRpZW50dG9wYmFyIiwKICAiaGFzUHJlZnMiOiB0cnVlLAogICJpY29uIjogIi4vYXNzZXRzL2xvZ28ucG5nIiwKICAibmFtZSI6ICJHcmFkaWVudCBUb3AgQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9yZy5wc2hvdy5ncmFkaWVudHRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZXRhci12L2dyYWRpZW50dG9wYmFyIiwKICAidXVpZCI6ICJncmFkaWVudHRvcGJhckBwc2hvdy5vcmciLAogICJ2ZXJzaW9uIjogMTgKfQ=="}
+    "45": {"version": "19", "sha256": "0afh1cjy27srrdbr9b7lj1d25a06w1sixy3j14lw251rp461dvnx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgcGFuZWwncyBiYWNrZ3JvdW5kIGdyYWRpZW50LiBZb3UgY2FuIGVkaXQgdGhlIGNvbG91ciBzY2hlbWUgZnJvbSB0aGUgZXh0ZW5zaW9uJ3Mgc2V0dGluZ3MgaW4gR25vbWUgNDUuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJwZXRhci12IiwKICAgICJwYXlwYWwiOiAicGV0YXJ2NzMiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAib3JnLnBzaG93LmdyYWRpZW50dG9wYmFyIiwKICAiaGFzUHJlZnMiOiB0cnVlLAogICJpY29uIjogIi4vYXNzZXRzL2xvZ28ucG5nIiwKICAibmFtZSI6ICJHcmFkaWVudCBUb3AgQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9yZy5wc2hvdy5ncmFkaWVudHRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDE5Cn0="}
   }}
 , {"uuid": "note@eexpss.gmail.com", "name": "note", "pname": "note", "description": "Add selected text to Note.\n- Notes automatic recognition and sort as 'Directory' 'Command' 'Clipboard'.\n- 'Directory': Mouse 1/2/3 act as 'Open in Files/Open in termianl/Paste dir'. It can be used as a temporary bookmark. And any click will change the working diretory in real time.\n- 'Command': Mouse 1/3 as 'Excute command in Terminal/Paste cmd'.\n- 'Clipboard': Mouse act as 'Paste to Clipboard(PRIMARY)'.\n- Terminal support kgx(new gnome-console) and gnome-terminal.", "link": "https://extensions.gnome.org/extension/4962/note/", "shell_version_map": {
     "42": {"version": "7", "sha256": "1niwlhls41l92g0bcllp4y4bdhn7k310514xkd36rn61pqz9b7q6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBzZWxlY3RlZCB0ZXh0IHRvIE5vdGUuXG4tIE5vdGVzIGF1dG9tYXRpYyByZWNvZ25pdGlvbiBhbmQgc29ydCBhcyAnRGlyZWN0b3J5JyAnQ29tbWFuZCcgJ0NsaXBib2FyZCcuXG4tICdEaXJlY3RvcnknOiBNb3VzZSAxLzIvMyBhY3QgYXMgJ09wZW4gaW4gRmlsZXMvT3BlbiBpbiB0ZXJtaWFubC9QYXN0ZSBkaXInLiBJdCBjYW4gYmUgdXNlZCBhcyBhIHRlbXBvcmFyeSBib29rbWFyay4gQW5kIGFueSBjbGljayB3aWxsIGNoYW5nZSB0aGUgd29ya2luZyBkaXJldG9yeSBpbiByZWFsIHRpbWUuXG4tICdDb21tYW5kJzogTW91c2UgMS8zIGFzICdFeGN1dGUgY29tbWFuZCBpbiBUZXJtaW5hbC9QYXN0ZSBjbWQnLlxuLSAnQ2xpcGJvYXJkJzogTW91c2UgYWN0IGFzICdQYXN0ZSB0byBDbGlwYm9hcmQoUFJJTUFSWSknLlxuLSBUZXJtaW5hbCBzdXBwb3J0IGtneChuZXcgZ25vbWUtY29uc29sZSkgYW5kIGdub21lLXRlcm1pbmFsLiIsCiAgImdldHRleHQtZG9tYWluIjogIm5vdGUiLAogICJuYW1lIjogIm5vdGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy1ub3RlIiwKICAidXVpZCI6ICJub3RlQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}
@@ -4684,7 +4702,7 @@
     "42": {"version": "34", "sha256": "1f1mlyh4588ajnnxavxfhkwh2qds1zrcmskv1dxi0si0k8dsyzg4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vZGFzaDJkb2NrLWxpdGUiLAogICJ1dWlkIjogImRhc2gyZG9jay1saXRlQGljZWRtYW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzNAp9"},
     "43": {"version": "34", "sha256": "1f1mlyh4588ajnnxavxfhkwh2qds1zrcmskv1dxi0si0k8dsyzg4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vZGFzaDJkb2NrLWxpdGUiLAogICJ1dWlkIjogImRhc2gyZG9jay1saXRlQGljZWRtYW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzNAp9"},
     "44": {"version": "34", "sha256": "1f1mlyh4588ajnnxavxfhkwh2qds1zrcmskv1dxi0si0k8dsyzg4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vZGFzaDJkb2NrLWxpdGUiLAogICJ1dWlkIjogImRhc2gyZG9jay1saXRlQGljZWRtYW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzNAp9"},
-    "45": {"version": "38", "sha256": "0kcg6jhfjdbx3gqbk9s00y8l35by132almyv6wkp39n44vhdvzv2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL2Rhc2gyZG9jay1saXRlIiwKICAidXVpZCI6ICJkYXNoMmRvY2stbGl0ZUBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzgKfQ=="}
+    "45": {"version": "43", "sha256": "1z7w5h5j3y6ygbs76an2d103f9sa3f0w638ddc7hicxxddlbgldz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vZGFzaDJkb2NrLWxpdGUiLAogICJ1dWlkIjogImRhc2gyZG9jay1saXRlQGljZWRtYW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"}
   }}
 , {"uuid": "animate@eexpss.gmail.com", "name": "animate", "pname": "animate", "description": "Animated small man run through the screen. Scroll mouse can change deferent character. You can use your PNG characters instead of the original ones.", "link": "https://extensions.gnome.org/extension/4995/animate/", "shell_version_map": {
     "40": {"version": "4", "sha256": "1p110wz7wdr51z2fsn6z72lcnln13h8lfbw9a00hs9qb0y71qf5q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGVkIHNtYWxsIG1hbiBydW4gdGhyb3VnaCB0aGUgc2NyZWVuLiBTY3JvbGwgbW91c2UgY2FuIGNoYW5nZSBkZWZlcmVudCBjaGFyYWN0ZXIuIFlvdSBjYW4gdXNlIHlvdXIgUE5HIGNoYXJhY3RlcnMgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgb25lcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhbmltYXRlIiwKICAibmFtZSI6ICJhbmltYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3MtYW5pbWF0ZSIsCiAgInV1aWQiOiAiYW5pbWF0ZUBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="},
@@ -4798,7 +4816,7 @@
     "42": {"version": "11", "sha256": "0vcg42shlmm9v59qqyy5i8nqsh8gfasc67156k92f619yhav298y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhIHNpbmdsZSB0YXNrIG9yIGdvYWwgaW4geW91ciBtZW51IGJhciIsCiAgIm5hbWUiOiAiT25lIFRoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW50ZWhlbWVyc29uL29uZS10aGluZyIsCiAgInV1aWQiOiAib25lLXRoaW5nQGdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "43": {"version": "11", "sha256": "0vcg42shlmm9v59qqyy5i8nqsh8gfasc67156k92f619yhav298y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhIHNpbmdsZSB0YXNrIG9yIGdvYWwgaW4geW91ciBtZW51IGJhciIsCiAgIm5hbWUiOiAiT25lIFRoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW50ZWhlbWVyc29uL29uZS10aGluZyIsCiAgInV1aWQiOiAib25lLXRoaW5nQGdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "44": {"version": "11", "sha256": "0vcg42shlmm9v59qqyy5i8nqsh8gfasc67156k92f619yhav298y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhIHNpbmdsZSB0YXNrIG9yIGdvYWwgaW4geW91ciBtZW51IGJhciIsCiAgIm5hbWUiOiAiT25lIFRoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW50ZWhlbWVyc29uL29uZS10aGluZyIsCiAgInV1aWQiOiAib25lLXRoaW5nQGdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
-    "45": {"version": "13", "sha256": "1vbxmg87zch88gxn87ymhjha2mvsyq0z8qlahxn4vz9r85kx8zrk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhIHNpbmdsZSB0YXNrIG9yIGdvYWwgaW4geW91ciBtZW51IGJhciIsCiAgIm5hbWUiOiAiT25lIFRoaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9uZS10aGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW50ZWhlbWVyc29uL29uZS10aGluZyIsCiAgInV1aWQiOiAib25lLXRoaW5nQGdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}
+    "45": {"version": "16", "sha256": "1jl74kymqhx691zayc0jqnaka0z99d5sfrrpggygp09cqf5yl8qr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhIHNpbmdsZSB0YXNrIG9yIGdvYWwgaW4geW91ciBtZW51IGJhciIsCiAgIm5hbWUiOiAiT25lIFRoaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9uZS10aGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW50ZWhlbWVyc29uL29uZS10aGluZyIsCiAgInV1aWQiOiAib25lLXRoaW5nQGdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}
   }}
 , {"uuid": "vpn-toggler@rheddes.nl", "name": "VPN Toggler", "pname": "vpn-toggler", "description": "A forked version of (https://extensions.gnome.org/extension/4061/custom-vpn-toggler/).\n VPN Toggler (and indicator) allows to see the status of a VPN (with its icon), see IP address associated and permit to start and stop VPN (from a menu).\n\nThis plugin required an additional script to interact with VPN. \nAn example for Open VPN is available on extension repository. \nFollow the link to Extension Web Site and see README.", "link": "https://extensions.gnome.org/extension/5075/vpn-toggler/", "shell_version_map": {
     "42": {"version": "5", "sha256": "0z1jfgkhw6b20s3zmq2iydbs8a4cigbn8qw2kwxwplapg176lrlj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZm9ya2VkIHZlcnNpb24gb2YgKGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzQwNjEvY3VzdG9tLXZwbi10b2dnbGVyLykuXG4gVlBOIFRvZ2dsZXIgKGFuZCBpbmRpY2F0b3IpIGFsbG93cyB0byBzZWUgdGhlIHN0YXR1cyBvZiBhIFZQTiAod2l0aCBpdHMgaWNvbiksIHNlZSBJUCBhZGRyZXNzIGFzc29jaWF0ZWQgYW5kIHBlcm1pdCB0byBzdGFydCBhbmQgc3RvcCBWUE4gKGZyb20gYSBtZW51KS5cblxuVGhpcyBwbHVnaW4gcmVxdWlyZWQgYW4gYWRkaXRpb25hbCBzY3JpcHQgdG8gaW50ZXJhY3Qgd2l0aCBWUE4uIFxuQW4gZXhhbXBsZSBmb3IgT3BlbiBWUE4gaXMgYXZhaWxhYmxlIG9uIGV4dGVuc2lvbiByZXBvc2l0b3J5LiBcbkZvbGxvdyB0aGUgbGluayB0byBFeHRlbnNpb24gV2ViIFNpdGUgYW5kIHNlZSBSRUFETUUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidnBuLXRvZ2dsZXJAcmhlZGRlcy5ubCIsCiAgIm5hbWUiOiAiVlBOIFRvZ2dsZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudnBuLXRvZ2dsZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SaGVkZGVzL3Zwbi10b2dnbGVyIiwKICAidXVpZCI6ICJ2cG4tdG9nZ2xlckByaGVkZGVzLm5sIiwKICAidmVyc2lvbiI6IDUKfQ=="},
@@ -4856,7 +4874,7 @@
     "42": {"version": "21", "sha256": "06hfl07q9v6r6igys09c2bk7r1jdv588nl6m1br382fl8b6g5bgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
     "43": {"version": "21", "sha256": "06hfl07q9v6r6igys09c2bk7r1jdv588nl6m1br382fl8b6g5bgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
     "44": {"version": "21", "sha256": "06hfl07q9v6r6igys09c2bk7r1jdv588nl6m1br382fl8b6g5bgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
-    "45": {"version": "29", "sha256": "06mgm7faff87p8fi1fhqmybffmjig0h6b28ngynlxhh7ca5d485b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgImdldHRleHQtZG9tYWluIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9zdGlja21hbl8weDAwL2dub21lX3NoZWxsX2V4dGVuc2lvbl9kb2NrZXIiLAogICJ1dWlkIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgInZlcnNpb24iOiAyOQp9"}
+    "45": {"version": "31", "sha256": "02vkhxs5nm0jap716gbqzyyznmldy87lfgbn512x448y5h8v9fgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgImdldHRleHQtZG9tYWluIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMzEKfQ=="}
   }}
 , {"uuid": "reboottouefi@ubaygd.com", "name": "RebootToUEFI", "pname": "reboottouefi", "description": "Reboot system into UEFI", "link": "https://extensions.gnome.org/extension/5105/reboottouefi/", "shell_version_map": {
     "42": {"version": "14", "sha256": "1yqp2hhmcymzjyq3shwh1cld423iah9s8s3caqmjrln7vjh4syrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAibGljZW5zZSI6ICJHUEx2MyIsCiAgIm5hbWUiOiAiUmVib290VG9VRUZJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVWJheUdEL3JlYm9vdHRvdWVmaSIsCiAgInV1aWQiOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
@@ -4922,7 +4940,7 @@
     "42": {"version": "7", "sha256": "0ws6q5hdgygqp9x2jrhjklidyvc7miqs4h34fll7d1947scqw6lv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNsb2NrIHRvIHRoZSBkZXNrdG9wISIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImF6Y2xvY2siLAogICJuYW1lIjogIkRlc2t0b3AgQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXpjbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6Y2xvY2siLAogICJ1dWlkIjogImF6Y2xvY2tAYXpjbG9jay5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "43": {"version": "7", "sha256": "0ws6q5hdgygqp9x2jrhjklidyvc7miqs4h34fll7d1947scqw6lv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNsb2NrIHRvIHRoZSBkZXNrdG9wISIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImF6Y2xvY2siLAogICJuYW1lIjogIkRlc2t0b3AgQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXpjbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6Y2xvY2siLAogICJ1dWlkIjogImF6Y2xvY2tAYXpjbG9jay5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "44": {"version": "7", "sha256": "0ws6q5hdgygqp9x2jrhjklidyvc7miqs4h34fll7d1947scqw6lv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNsb2NrIHRvIHRoZSBkZXNrdG9wISIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImF6Y2xvY2siLAogICJuYW1lIjogIkRlc2t0b3AgQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXpjbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6Y2xvY2siLAogICJ1dWlkIjogImF6Y2xvY2tAYXpjbG9jay5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
-    "45": {"version": "10", "sha256": "1y5wk8jjb260x18fqks4yybwn4gdfdl4jqm4m72l3amx062m3vbv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNsb2NrIHRvIHRoZSBkZXNrdG9wISIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImF6Y2xvY2siLAogICJuYW1lIjogIkRlc2t0b3AgQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXpjbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BbmRyZXdaYWVjaC9hemNsb2NrIiwKICAidXVpZCI6ICJhemNsb2NrQGF6Y2xvY2suZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}
+    "45": {"version": "11", "sha256": "1wgzgs9ch93kh1xgb2j8ahbrklkgfwnfg6ridjxbw0hld6znxsqy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNsb2NrIHRvIHRoZSBkZXNrdG9wISIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImF6Y2xvY2siLAogICJuYW1lIjogIkRlc2t0b3AgQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXpjbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQW5kcmV3WmFlY2gvYXpjbG9jayIsCiAgInV1aWQiOiAiYXpjbG9ja0BhemNsb2NrLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}
   }}
 , {"uuid": "since-indicator@atareao.es", "name": "Since Indicator", "pname": "since-indicator", "description": "A simple menubar app for GNOME Shell that tracks how long you've been using your computer uninterruptedly", "link": "https://extensions.gnome.org/extension/5158/since-indicator/", "shell_version_map": {
     "40": {"version": "4", "sha256": "009g178nkrpwhmvwwaamch3mjby03fiby7qvr0d5mp1dfrzsk3c5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dG9yIjogIkxvcmVuem8gQ2FyYm9uZWxsIiwKICAiY29weXJpZ2h0IjogIjIwMjIiLAogICJkZXNjcmlwdGlvbiI6ICJBIHNpbXBsZSBtZW51YmFyIGFwcCBmb3IgR05PTUUgU2hlbGwgdGhhdCB0cmFja3MgaG93IGxvbmcgeW91J3ZlIGJlZW4gdXNpbmcgeW91ciBjb21wdXRlciB1bmludGVycnVwdGVkbHkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzaW5jZS1pbmRpY2F0b3JAYXRhcmVhby5lcyIsCiAgImljb24iOiAic2luY2UtaW5kaWNhdG9yIiwKICAibmFtZSI6ICJTaW5jZSBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2luY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vd3d3LmF0YXJlYW8uZXMvYXBsaWNhY2lvbi9zaW5jZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogInNpbmNlLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAidmVyc2lvbiI6IDQKfQ=="},
@@ -4947,9 +4965,9 @@
     "42": {"version": "10", "sha256": "0ca4nlss4j5rmq8xaqvjxxacdhb1vlmydqp4cal77mgzk79q63nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kaWxpYS91cG93ZXItYmF0dGVyeSIsCiAgInV1aWQiOiAidXBvd2VyLWJhdHRlcnlAY29kaWxpYS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "43": {"version": "10", "sha256": "0ca4nlss4j5rmq8xaqvjxxacdhb1vlmydqp4cal77mgzk79q63nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kaWxpYS91cG93ZXItYmF0dGVyeSIsCiAgInV1aWQiOiAidXBvd2VyLWJhdHRlcnlAY29kaWxpYS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "44": {"version": "10", "sha256": "0ca4nlss4j5rmq8xaqvjxxacdhb1vlmydqp4cal77mgzk79q63nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kaWxpYS91cG93ZXItYmF0dGVyeSIsCiAgInV1aWQiOiAidXBvd2VyLWJhdHRlcnlAY29kaWxpYS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
-    "45": {"version": "14", "sha256": "0z9aivrmzix5x0c09i6n2qdvs4xilf2cbjlvl0a7942h6nikqqrm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvZGlsaWEvdXBvd2VyLWJhdHRlcnkiLAogICJ1dWlkIjogInVwb3dlci1iYXR0ZXJ5QGNvZGlsaWEuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="}
+    "45": {"version": "15", "sha256": "1zcssp721cj5lal8a6x054qnyx45949vjkkd1disjs09z4p99xpc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvZGlsaWEvdXBvd2VyLWJhdHRlcnkiLAogICJ1dWlkIjogInVwb3dlci1iYXR0ZXJ5QGNvZGlsaWEuY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}
   }}
-, {"uuid": "vertical-workspaces@G-dH.github.com", "name": "V-Shell (Vertical Workspaces)", "pname": "vertical-workspaces", "description": "Customize your GNOME Shell UX to fit your workflow, whether you like horizontally or vertically stacked workspaces.\n\nDear users, the reliability and stability of this extension is my priority, but V-Shell is an extension to default GNOME Shell and cannot be compatible with all available extensions. If you encounter any problem, first check for conflicts with other extensions and then open an issue on the Github page linked below.\n\nV-Shell includes many workarounds to survive conflicts and work with Dash to Dock / Ubuntu Dock extensions and other popular extensions, but issues may occur. The patched Dash to Dock for V-Shell is already available in my GitHub repository.\n\nAny feedback is greatly appreciated!\n\nV-Shell features:\n- vertical or horizontal orientation of workspaces\n- customize the overview layout, dimensions and contents\n- alternative overview modes with static workspace preview that reduces unnecessary movement on the screen\n- 4 predefined profiles with different layout and behavior that can be overwritten by your settings\n- wallpaper background with adjustable blur effect in the overview\n- dash icon size, content, icon click and scroll behavior\n- app grid dimensions, icons size, contents and behavior\n- active icons in the folder preview\n- close workspace button on workspace thumbnail\n- main panel position and visibility\n- hot corner/edge position and behavior\n- notifications, OSD and workspace switcher popup position\n- custom window attention handler behavior\n- improved app search provider with custom icon size\n- window search provider for quick navigation between windows\n- recent files search provider\n- extensions search provider\n- static background in the workspace switcher animation outside of the overview\n- independent workspace switching for each monitor (workaround)\n- workspace switcher popup appears even when switching workspace with a gesture\n- workspace isolated Dash\n- fixes (works around) several upstream bugs (known and reported)\n- modular structure of the V-Shell allows you to disable modules that you don't need or conflict with other extension that you like better for the task", "link": "https://extensions.gnome.org/extension/5177/vertical-workspaces/", "shell_version_map": {
+, {"uuid": "vertical-workspaces@G-dH.github.com", "name": "V-Shell (Vertical Workspaces)", "pname": "vertical-workspaces", "description": "Customize your GNOME Shell UX to fit your workflow, whether you like horizontally or vertically stacked workspaces. Originally Vertical Workspaces.\n\nDear users, the reliability and stability of this extension is my priority, but V-Shell is an extension to default GNOME Shell and cannot be compatible with all available extensions. If you encounter any problem, first check for conflicts with other extensions and then open an issue on the Github page linked below.\n\nV-Shell includes many workarounds to survive conflicts and work with Dash to Dock / Ubuntu Dock extensions and other popular extensions, but issues may occur. The patched Dash to Dock for V-Shell is already available in my GitHub repository.\n\nAny feedback is greatly appreciated!\n\nV-Shell features:\n- vertical or horizontal orientation of workspaces\n- customize the overview layout, dimensions and contents\n- alternative overview modes with static workspace preview that reduces unnecessary movement on the screen\n- 4 predefined profiles with different layout and behavior that can be overwritten by your settings\n- wallpaper background with adjustable blur effect in the overview\n- dash icon size, content, icon click and scroll behavior\n- app grid dimensions, icon size, contents and behavior\n- active icons in the folder preview\n- close workspace button on workspace thumbnail\n- main panel position and visibility\n- hot corner/edge position and behavior\n- notifications, OSD and workspace switcher popup position\n- custom window attention handler behavior\n- improved app search provider with custom icon size\n- window search provider for quick navigation between windows\n- recent files search provider\n- extensions search provider\n- static background in the workspace switcher animation outside of the overview\n- independent workspace switching for each monitor (workaround)\n- workspace switcher popup appears even when switching workspace with a gesture\n- workspace isolated Dash\n- fixes (works around) several upstream bugs (known and reported)\n- modular structure of the V-Shell allows you to disable modules that you don't need or conflict with other extension that you like better for the task", "link": "https://extensions.gnome.org/extension/5177/vertical-workspaces/", "shell_version_map": {
     "42": {"version": "53", "sha256": "14jva97bd3shc3skz348pw41h9slxrkz6zd7s3x9snf4rv5xj59r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
     "43": {"version": "53", "sha256": "14jva97bd3shc3skz348pw41h9slxrkz6zd7s3x9snf4rv5xj59r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
     "44": {"version": "53", "sha256": "14jva97bd3shc3skz348pw41h9slxrkz6zd7s3x9snf4rv5xj59r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
@@ -4973,7 +4991,7 @@
     "42": {"version": "4", "sha256": "02zh6hqv3l7r9m4im864hjpyhjsyblvvclinl817q6vmbbniq5f2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2YgUG9wIExhdW5jaGVyIFN1cGVyLUtleTogQmluZCB0aGUgU3VwZXItS2V5IHRvIGEgY3VzdG9tIGFjdGlvbiIsCiAgIm5hbWUiOiAiU3VwZXIgS2V5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN1cGVyLWtleSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvbW1pbW9uIiwKICAidXVpZCI6ICJzdXBlci1rZXlAdG9tbWltb24uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="},
     "43": {"version": "4", "sha256": "02zh6hqv3l7r9m4im864hjpyhjsyblvvclinl817q6vmbbniq5f2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2YgUG9wIExhdW5jaGVyIFN1cGVyLUtleTogQmluZCB0aGUgU3VwZXItS2V5IHRvIGEgY3VzdG9tIGFjdGlvbiIsCiAgIm5hbWUiOiAiU3VwZXIgS2V5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN1cGVyLWtleSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvbW1pbW9uIiwKICAidXVpZCI6ICJzdXBlci1rZXlAdG9tbWltb24uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="},
     "44": {"version": "4", "sha256": "02zh6hqv3l7r9m4im864hjpyhjsyblvvclinl817q6vmbbniq5f2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2YgUG9wIExhdW5jaGVyIFN1cGVyLUtleTogQmluZCB0aGUgU3VwZXItS2V5IHRvIGEgY3VzdG9tIGFjdGlvbiIsCiAgIm5hbWUiOiAiU3VwZXIgS2V5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN1cGVyLWtleSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvbW1pbW9uIiwKICAidXVpZCI6ICJzdXBlci1rZXlAdG9tbWltb24uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="},
-    "45": {"version": "5", "sha256": "0rsp5aiq1glxw7gs1dsbdsahrdvl2giq8q4p5y5bxfhlldy21c2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2YgUG9wIExhdW5jaGVyIFN1cGVyLUtleTogQmluZCB0aGUgU3VwZXItS2V5IHRvIGEgY3VzdG9tIGFjdGlvbiIsCiAgIm5hbWUiOiAiU3VwZXIgS2V5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN1cGVyLWtleSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21taW1vbiIsCiAgInV1aWQiOiAic3VwZXIta2V5QHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}
+    "45": {"version": "6", "sha256": "0baab2h9bd6qqwpcciwvk6j93aifpmnwlz03xp4ryib13hkwpsx7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2YgUG9wIExhdW5jaGVyIFN1cGVyLUtleTogQmluZCB0aGUgU3VwZXItS2V5IHRvIGEgY3VzdG9tIGFjdGlvbiIsCiAgIm5hbWUiOiAiU3VwZXIgS2V5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN1cGVyLWtleSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2LmJldGEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21taW1vbiIsCiAgInV1aWQiOiAic3VwZXIta2V5QHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}
   }}
 , {"uuid": "quick-google-meet@gmail.com", "name": "Quick Google Meet", "pname": "quick-google-meet", "description": "Quick open your personal google meet conference. This extension is not affiliated with Google", "link": "https://extensions.gnome.org/extension/5189/quick-google-meet/", "shell_version_map": {
     "42": {"version": "2", "sha256": "17c0yrnwfanfp8jmmzwk87si5g93bchp7rhf6k2srf788pcbiifr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIG9wZW4geW91ciBwZXJzb25hbCBnb29nbGUgbWVldCBjb25mZXJlbmNlLiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCB3aXRoIEdvb2dsZSIsCiAgIm5hbWUiOiAiUXVpY2sgR29vZ2xlIE1lZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWlzY2VsbGlhbi9xdWljay1nb29nbGUtbWVldCIsCiAgInV1aWQiOiAicXVpY2stZ29vZ2xlLW1lZXRAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}
@@ -5258,7 +5276,7 @@
     "42": {"version": "10", "sha256": "0sga40ixfj8wcxm66wm2rvcyzgbdfzl7ji8hjwqa0hx1s125nv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZmlxcmNvZGUiLAogICJuYW1lIjogIldpZmkgUVIgQ29kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAidXVpZCI6ICJ3aWZpcXJjb2RlQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "43": {"version": "10", "sha256": "0sga40ixfj8wcxm66wm2rvcyzgbdfzl7ji8hjwqa0hx1s125nv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZmlxcmNvZGUiLAogICJuYW1lIjogIldpZmkgUVIgQ29kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAidXVpZCI6ICJ3aWZpcXJjb2RlQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "44": {"version": "10", "sha256": "0sga40ixfj8wcxm66wm2rvcyzgbdfzl7ji8hjwqa0hx1s125nv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZmlxcmNvZGUiLAogICJuYW1lIjogIldpZmkgUVIgQ29kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAidXVpZCI6ICJ3aWZpcXJjb2RlQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiAxMAp9"},
-    "45": {"version": "13", "sha256": "1dr9drh55xnd2nsl97pbwclf8slx0adcf95vvc7l263d9llcir33", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAibmFtZSI6ICJXaWZpIFFSIENvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAidXVpZCI6ICJ3aWZpcXJjb2RlQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiAxMwp9"}
+    "45": {"version": "14", "sha256": "167lllr4fy8xl8fdc3sn3b2gl66n4qmmxdd5wj6ra061cp1kz3ky", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAibmFtZSI6ICJXaWZpIFFSIENvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaXFyY29kZSIsCiAgInV1aWQiOiAid2lmaXFyY29kZUBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}
   }}
 , {"uuid": "eos-desktop@endlessm.com", "name": "Endless Desktop", "pname": "endless-desktop", "description": "Endless OS signature desktop", "link": "https://extensions.gnome.org/extension/5419/endless-desktop/", "shell_version_map": {
     "41": {"version": "2", "sha256": "07wg7nab34bvhqnlfdni622c5r3pvlq04dly8spk53nxdwvisckr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuZGxlc3MgT1Mgc2lnbmF0dXJlIGRlc2t0b3AiLAogICJuYW1lIjogIkVuZGxlc3MgRGVza3RvcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJjb20uZW5kbGVzc20uZGVza3RvcC1leHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VuZGxlc3NtL2Vvcy1kZXNrdG9wLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZW9zLWRlc2t0b3BAZW5kbGVzc20uY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
@@ -5320,7 +5338,7 @@
     "42": {"version": "17", "sha256": "054k5q694ssm937qfxximg2qh5zx4m2qzcffdxjm4xd39qn4bi85", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vc2VhcmNoLWxpZ2h0IiwKICAidXVpZCI6ICJzZWFyY2gtbGlnaHRAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="},
     "43": {"version": "17", "sha256": "054k5q694ssm937qfxximg2qh5zx4m2qzcffdxjm4xd39qn4bi85", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vc2VhcmNoLWxpZ2h0IiwKICAidXVpZCI6ICJzZWFyY2gtbGlnaHRAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="},
     "44": {"version": "17", "sha256": "054k5q694ssm937qfxximg2qh5zx4m2qzcffdxjm4xd39qn4bi85", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vc2VhcmNoLWxpZ2h0IiwKICAidXVpZCI6ICJzZWFyY2gtbGlnaHRAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="},
-    "45": {"version": "19", "sha256": "038pg46kyjy1rxrv59h01rqsrn3nzkba24pjjajjpf9zvn88di9n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL3NlYXJjaC1saWdodCIsCiAgInV1aWQiOiAic2VhcmNoLWxpZ2h0QGljZWRtYW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}
+    "45": {"version": "20", "sha256": "1hy73br84dp9gz37jvnqyf680g2xn3gj4fbj03bddrzgbwq6hpj8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL3NlYXJjaC1saWdodCIsCiAgInV1aWQiOiAic2VhcmNoLWxpZ2h0QGljZWRtYW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}
   }}
 , {"uuid": "ibus-switcher@kevinhwang91.github.com", "name": "IBus Switcher", "pname": "ibus-switcher", "description": "Use d-bus to switch ibus source", "link": "https://extensions.gnome.org/extension/5497/ibus-switcher/", "shell_version_map": {
     "45": {"version": "3", "sha256": "0cdbqrla0n3a82q1nvlyxx1a521c4xgc8b1rawc7qrbp6yjasi85", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBkLWJ1cyB0byBzd2l0Y2ggaWJ1cyBzb3VyY2UiLAogICJuYW1lIjogIklCdXMgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2V2aW5od2FuZzkxL2dub21lLXNoZWxsLWlidXMtc3dpdGNoZXIiLAogICJ1dWlkIjogImlidXMtc3dpdGNoZXJAa2V2aW5od2FuZzkxLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}
@@ -5354,7 +5372,7 @@
 , {"uuid": "nano-lights@chlumskyvaclav.gmail.com", "name": "Nano Lights", "pname": "nano-lights", "description": "This extension controls Nanoleaf shapes and possibly others Nanoleaf devices on your local (wifi) network. If you are experiencing an error on the upgrade, please log out and log in again.", "link": "https://extensions.gnome.org/extension/5519/nano-lights/", "shell_version_map": {
     "43": {"version": "4", "sha256": "0w0092hhra27d59842xgc6r01v4sfbl5p1ipvf3gbq6pam9955b0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIE5hbm9sZWFmIHNoYXBlcyBhbmQgcG9zc2libHkgb3RoZXJzIE5hbm9sZWFmIGRldmljZXMgb24geW91ciBsb2NhbCAod2lmaSkgbmV0d29yay4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgYW4gZXJyb3Igb24gdGhlIHVwZ3JhZGUsIHBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmFuby1saWdodHMiLAogICJuYW1lIjogIk5hbm8gTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25hbm8tbGlnaHRzIiwKICAidXVpZCI6ICJuYW5vLWxpZ2h0c0BjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "44": {"version": "4", "sha256": "0w0092hhra27d59842xgc6r01v4sfbl5p1ipvf3gbq6pam9955b0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIE5hbm9sZWFmIHNoYXBlcyBhbmQgcG9zc2libHkgb3RoZXJzIE5hbm9sZWFmIGRldmljZXMgb24geW91ciBsb2NhbCAod2lmaSkgbmV0d29yay4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgYW4gZXJyb3Igb24gdGhlIHVwZ3JhZGUsIHBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmFuby1saWdodHMiLAogICJuYW1lIjogIk5hbm8gTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25hbm8tbGlnaHRzIiwKICAidXVpZCI6ICJuYW5vLWxpZ2h0c0BjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
-    "45": {"version": "6", "sha256": "0imm4icqlv2clvj8jvj4pb4rbk2rcsidr5gzwsg8zjzzmf4xlphk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIE5hbm9sZWFmIHNoYXBlcyBhbmQgcG9zc2libHkgb3RoZXJzIE5hbm9sZWFmIGRldmljZXMgb24geW91ciBsb2NhbCAod2lmaSkgbmV0d29yay4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgYW4gZXJyb3Igb24gdGhlIHVwZ3JhZGUsIHBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmFuby1saWdodHMiLAogICJuYW1lIjogIk5hbm8gTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYW5vLWxpZ2h0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vbmFuby1saWdodHMiLAogICJ1dWlkIjogIm5hbm8tbGlnaHRzQGNobHVtc2t5dmFjbGF2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}
+    "45": {"version": "7", "sha256": "1ayij5spshhnj711dhppv4ql2gzpck5f9dsq9y8qybz7h15r0nj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIE5hbm9sZWFmIHNoYXBlcyBhbmQgcG9zc2libHkgb3RoZXJzIE5hbm9sZWFmIGRldmljZXMgb24geW91ciBsb2NhbCAod2lmaSkgbmV0d29yay4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgYW4gZXJyb3Igb24gdGhlIHVwZ3JhZGUsIHBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmFuby1saWdodHMiLAogICJuYW1lIjogIk5hbm8gTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYW5vLWxpZ2h0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25hbm8tbGlnaHRzIiwKICAidXVpZCI6ICJuYW5vLWxpZ2h0c0BjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
 , {"uuid": "just-another-search-bar@xelad0m", "name": "Just Another Search Bar", "pname": "just-another-search-bar", "description": "Simple GNOME Shell extension for performing search queries\nfrom desktop. Some search engines are added as examples, you can add your own,\nincluding local search tools with suitable CLI", "link": "https://extensions.gnome.org/extension/5522/just-another-search-bar/", "shell_version_map": {
     "43": {"version": "9", "sha256": "1p934bgds2d5sg4a7hqrdlm9l9psrg2bjfasv0h1k46nj0dpryzs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgIm5hbWUiOiAiSnVzdCBBbm90aGVyIFNlYXJjaCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLXNoZWxsLmV4dGVuc2lvbnMuanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbGFkMG0vanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJ1dWlkIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyQHhlbGFkMG0iLAogICJ2ZXJzaW9uIjogOQp9"},
@@ -5551,10 +5569,10 @@
     "44": {"version": "4", "sha256": "0jszkq48sac8i7pgdgyfcyyqpc4jq3shaj0ghm9hwahs9qd040h3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWluaW1hbCBjbGlwYm9hcmQgaW5kaWNhdG9yIGZvciB0aGUgZ25vbWUgc2hlbGwiLAogICJuYW1lIjogIkNsaXBib2FyZCBJbmRpY2F0b3IiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkRpZWcwSnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RpZWcwSnMvZ25vbWUtY2xpcGJvYXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWluZGljYXRvckBEaWVnMEpzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0Cn0="}
   }}
 , {"uuid": "Battery-Health-Charging@maniacx.github.com", "name": "Battery Health Charging", "pname": "battery-health-charging", "description": "Set battery charging threshold / charging limit / charging mode\nBattery Health Charging: An extension to maximize the battery life of laptops by setting their charging threshold or modes.\n\nCompatible with\n- Asus\n- LG\n- Samsung\n- Sony\n- Huawei\n- Toshiba\n- System76\n- Lenovo (Ideapad, Legion)\n- Thinkpad\n- Panasonic\n- Acer (dependencies: kernel module)\n- MSI (dependencies: kernel module)\n- Tuxedo (dependencies: kernel module)\n- Slimbook (dependencies: kernel module)\n- Tuxedo IntelQC71 (dependencies: kernel module)\n- XMG IntelQC71 (dependencies: kernel module)\n- Eluktronics IntelQC71 (dependencies: kernel module)\n- Purism Librem (dependencies: kernel module)\n- Gigabyte Aero/Aorus (dependencies: kernel module)\n- Dell (dependencies: custom package libsmbios)\n- Dell (dependencies: custom package Dell Command Center)\n- Apple Macbook Intel-series chip (dependencies: kernel module)\n- Apple Macbook M-series chip (dependencies: custom kernel)\n- Razer (dependencies: custom package razer-cli)\n- Framework (dependencies: kernel module)\n\nNot all models are comaptible. Please read about the compatibility and dependencies of your device on github link below.\n\nhttps://maniacx.github.io/Battery-Health-Charging/", "link": "https://extensions.gnome.org/extension/5724/battery-health-charging/", "shell_version_map": {
-    "42": {"version": "50", "sha256": "0dnmlhhy0dzwgb9snz6gc3m5p5avij3f73m2645n0bx917p3az2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hbmlhY3gvQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmciLAogICJ1dWlkIjogIkJhdHRlcnktSGVhbHRoLUNoYXJnaW5nQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MAp9"},
-    "43": {"version": "50", "sha256": "0dnmlhhy0dzwgb9snz6gc3m5p5avij3f73m2645n0bx917p3az2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hbmlhY3gvQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmciLAogICJ1dWlkIjogIkJhdHRlcnktSGVhbHRoLUNoYXJnaW5nQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MAp9"},
-    "44": {"version": "50", "sha256": "0dnmlhhy0dzwgb9snz6gc3m5p5avij3f73m2645n0bx917p3az2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hbmlhY3gvQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmciLAogICJ1dWlkIjogIkJhdHRlcnktSGVhbHRoLUNoYXJnaW5nQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MAp9"},
-    "45": {"version": "51", "sha256": "153r65965xrqwxf65qrnkijix5x5cl78wp1l60jvv9kb3yj616a1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInV1aWQiOiAiQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmdAbWFuaWFjeC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUxCn0="}
+    "42": {"version": "59", "sha256": "01c1a7k20cnwi18sklvwzsbmdlqfjaph3np2gs7syjy087cff4j6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hbmlhY3gvQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmciLAogICJ1dWlkIjogIkJhdHRlcnktSGVhbHRoLUNoYXJnaW5nQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1OQp9"},
+    "43": {"version": "59", "sha256": "01c1a7k20cnwi18sklvwzsbmdlqfjaph3np2gs7syjy087cff4j6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hbmlhY3gvQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmciLAogICJ1dWlkIjogIkJhdHRlcnktSGVhbHRoLUNoYXJnaW5nQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1OQp9"},
+    "44": {"version": "59", "sha256": "01c1a7k20cnwi18sklvwzsbmdlqfjaph3np2gs7syjy087cff4j6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hbmlhY3gvQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmciLAogICJ1dWlkIjogIkJhdHRlcnktSGVhbHRoLUNoYXJnaW5nQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1OQp9"},
+    "45": {"version": "60", "sha256": "07h72vpc949z50fhhkn86mq2qcdibgl5263wi29l136260nsiv9p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBiYXR0ZXJ5IGNoYXJnaW5nIHRocmVzaG9sZCAvIGNoYXJnaW5nIGxpbWl0IC8gY2hhcmdpbmcgbW9kZVxuQmF0dGVyeSBIZWFsdGggQ2hhcmdpbmc6IEFuIGV4dGVuc2lvbiB0byBtYXhpbWl6ZSB0aGUgYmF0dGVyeSBsaWZlIG9mIGxhcHRvcHMgYnkgc2V0dGluZyB0aGVpciBjaGFyZ2luZyB0aHJlc2hvbGQgb3IgbW9kZXMuXG5cbkNvbXBhdGlibGUgd2l0aFxuLSBBc3VzXG4tIExHXG4tIFNhbXN1bmdcbi0gU29ueVxuLSBIdWF3ZWlcbi0gVG9zaGliYVxuLSBTeXN0ZW03NlxuLSBMZW5vdm8gKElkZWFwYWQsIExlZ2lvbilcbi0gVGhpbmtwYWRcbi0gUGFuYXNvbmljXG4tIEFjZXIgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gTVNJIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFR1eGVkbyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBTbGltYm9vayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBUdXhlZG8gSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFhNRyBJbnRlbFFDNzEgKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gRWx1a3Ryb25pY3MgSW50ZWxRQzcxIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIFB1cmlzbSBMaWJyZW0gKGRlcGVuZGVuY2llczoga2VybmVsIG1vZHVsZSlcbi0gR2lnYWJ5dGUgQWVyby9Bb3J1cyAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuLSBEZWxsIChkZXBlbmRlbmNpZXM6IGN1c3RvbSBwYWNrYWdlIGxpYnNtYmlvcylcbi0gRGVsbCAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSBEZWxsIENvbW1hbmQgQ2VudGVyKVxuLSBBcHBsZSBNYWNib29rIEludGVsLXNlcmllcyBjaGlwIChkZXBlbmRlbmNpZXM6IGtlcm5lbCBtb2R1bGUpXG4tIEFwcGxlIE1hY2Jvb2sgTS1zZXJpZXMgY2hpcCAoZGVwZW5kZW5jaWVzOiBjdXN0b20ga2VybmVsKVxuLSBSYXplciAoZGVwZW5kZW5jaWVzOiBjdXN0b20gcGFja2FnZSByYXplci1jbGkpXG4tIEZyYW1ld29yayAoZGVwZW5kZW5jaWVzOiBrZXJuZWwgbW9kdWxlKVxuXG5Ob3QgYWxsIG1vZGVscyBhcmUgY29tYXB0aWJsZS4gUGxlYXNlIHJlYWQgYWJvdXQgdGhlIGNvbXBhdGliaWxpdHkgYW5kIGRlcGVuZGVuY2llcyBvZiB5b3VyIGRldmljZSBvbiBnaXRodWIgbGluayBiZWxvdy5cblxuaHR0cHM6Ly9tYW5pYWN4LmdpdGh1Yi5pby9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZy8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJCYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZ0BtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkJhdHRlcnkgSGVhbHRoIENoYXJnaW5nIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9CYXR0ZXJ5LUhlYWx0aC1DaGFyZ2luZyIsCiAgInV1aWQiOiAiQmF0dGVyeS1IZWFsdGgtQ2hhcmdpbmdAbWFuaWFjeC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYwCn0="}
   }}
 , {"uuid": "oneclickbios@sao.studio", "name": "One-Click BIOS", "pname": "one-click-bios", "description": "Restart into firmware settings directly from OS\n\nHold Shift and click the power menu button to trigger restart into firmware settings.\n\nAny suggestion is appreciated on GitHub!", "link": "https://extensions.gnome.org/extension/5733/one-click-bios/", "shell_version_map": {
     "43": {"version": "5", "sha256": "07r9vspq35s632j0pzywrhb8islb9fq49dv0a1s6yvp23d7bzni7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RhcnQgaW50byBmaXJtd2FyZSBzZXR0aW5ncyBkaXJlY3RseSBmcm9tIE9TXG5cbkhvbGQgU2hpZnQgYW5kIGNsaWNrIHRoZSBwb3dlciBtZW51IGJ1dHRvbiB0byB0cmlnZ2VyIHJlc3RhcnQgaW50byBmaXJtd2FyZSBzZXR0aW5ncy5cblxuQW55IHN1Z2dlc3Rpb24gaXMgYXBwcmVjaWF0ZWQgb24gR2l0SHViISIsCiAgIm5hbWUiOiAiT25lLUNsaWNrIEJJT1MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbTFuaWNydXNoZXIvb25lLWNsaWNrLWJpb3MiLAogICJ1dWlkIjogIm9uZWNsaWNrYmlvc0BzYW8uc3R1ZGlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}
@@ -5663,7 +5681,7 @@
     "42": {"version": "6", "sha256": "1mdyigd5dn324ivb5bgypiq4gibjsbzm0rkcml9hi699a609736k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiA2Cn0="},
     "43": {"version": "15", "sha256": "04as61msjqq359r1qm0d7dw7df2bcngx67pmwva8flyvzi62iavi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLUhlYWRzZXRDb250cm9sIiwKICAidXVpZCI6ICJIZWFkc2V0Q29udHJvbEBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDE1Cn0="},
     "44": {"version": "23", "sha256": "00clk8w8p1sxsqpmwsmlgki2vvx9cjlvnzsrn9j69n1img4vbiwh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9nbm9tZS1zaGVsbC1leHRlbnNpb24tSGVhZHNldENvbnRyb2wiLAogICJ1dWlkIjogIkhlYWRzZXRDb250cm9sQGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
-    "45": {"version": "25", "sha256": "0wanclwsflg1p64sj5v6gq6hajq02qjgx3jc9pszyk8sgl60p64d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLUhlYWRzZXRDb250cm9sIiwKICAidXVpZCI6ICJIZWFkc2V0Q29udHJvbEBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDI1LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDUuMCIKfQ=="}
+    "45": {"version": "27", "sha256": "0cjadripkp234a0qps382yqjg4a2mpgrsz8j2pc9j571mg8ypj4h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyNywKICAidmVyc2lvbi1uYW1lIjogIjQ2LjEiCn0="}
   }}
 , {"uuid": "true-color-window-invert@lynet101", "name": "True Color Window Invert", "pname": "true-color-invert", "description": "Inverts the color of individual windows so they are hue-preserved.\nDefault shortcut is Super+I (Fork from JackKenney, due to 2+ years of inactivity)\n\n!!!IMPORTANT!!!\nDue to changes in personal and professional life, developer lynet_101 will no longer be able to maintain this project, and the extension, as a result, is from December the 5th 2023 orphaned\n\npatch notes v3:\nFixed an issue where windows would occasionally disappear upon inversion\n\nAbout Gnome 45:\nThere will be made an effort to port this extension to gnome 45, but gnome has decided to revamp large parts of the framework used for these sorts of extensions, and as I'm a solo developer, don't expect it to be ported immediately .\n\nI apologize for any inconvenience this may cause ;(", "link": "https://extensions.gnome.org/extension/5829/true-color-invert/", "shell_version_map": {
     "38": {"version": "3", "sha256": "01hsx7mrd0z8fy797x3xn8jqjjw8a34dxj4vvf9w43zdixj5i6z4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludmVydHMgdGhlIGNvbG9yIG9mIGluZGl2aWR1YWwgd2luZG93cyBzbyB0aGV5IGFyZSBodWUtcHJlc2VydmVkLlxuRGVmYXVsdCBzaG9ydGN1dCBpcyBTdXBlcitJIChGb3JrIGZyb20gSmFja0tlbm5leSwgZHVlIHRvIDIrIHllYXJzIG9mIGluYWN0aXZpdHlcblxucGF0Y2ggbm90ZXMgdjM6XG5GaXhlZCBhbiBpc3N1ZSB3aGVyZSB3aW5kb3dzIHdvdWxkIG9jY2FzaW9uYWxseSBkaXNhcHBlYXIgdXBvbiBpbnZlcnNpb25cblxuTm90ZXM6XG5BcyB0aGlzIGlzIGEgZmFpcmx5IG5ldyBhZG9wdGlvbiwgb2YgYSBmYWlybHkgb2xkIHByb2plY3QsIGV4cGVjdCBmcmVxdWVudCB1cGRhdGVzIGFuZCBidWcgcGF0Y2hlcyBpbiB0aGUgYmVnaW5uaW5nLiB0aGFuayB5b3UgZm9yIHVuZGVyc3RhbmRpbmciLAogICJuYW1lIjogIlRydWUgQ29sb3IgV2luZG93IEludmVydCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cnVlLWNvbG9yLXdpbmRvdy1pbnZlcnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0x5bmV0MTAxL2dub21lLXRydWUtY29sb3ItaW52ZXJ0IiwKICAidXVpZCI6ICJ0cnVlLWNvbG9yLXdpbmRvdy1pbnZlcnRAbHluZXQxMDEiLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -5749,7 +5767,7 @@
     "44": {"version": "8", "sha256": "09ybjnfgf4pnyj4q9xck5cs5yi0mwin47d3mbq55m25mk8sd8grm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgY2FwdHVyZSB0ZXh0IHNuaXBwZXRzIGFuZCBpZGVhcywgdGhlbiBjb252ZXJ0IHRoZW0gdG8gdGFza3Mgb3IgZXZlbnRzIiwKICAibmFtZSI6ICJRdWljayBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JyYWluc3Rvcm10cm9vcGVyL3F1aWNrdGV4dCIsCiAgInV1aWQiOiAicXVpY2t0ZXh0QGJyYWluc3Rvcm10cm9vcGVyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "45": {"version": "12", "sha256": "0g9vyxvjsn0wbkmwdnj1dx1qja6ny98hq6yc05yj3kr13nh3ynx3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgY2FwdHVyZSB0ZXh0IHNuaXBwZXRzIGFuZCBpZGVhcywgdGhlbiBjb252ZXJ0IHRoZW0gdG8gdGFza3Mgb3IgZXZlbnRzIiwKICAibmFtZSI6ICJRdWljayBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JyYWluc3Rvcm10cm9vcGVyL3F1aWNrdGV4dCIsCiAgInV1aWQiOiAicXVpY2t0ZXh0QGJyYWluc3Rvcm10cm9vcGVyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"}
   }}
-, {"uuid": "app-hider@lynith.dev", "name": "App Hider", "pname": "app-hider", "description": "Hide apps in GNOME's app menu", "link": "https://extensions.gnome.org/extension/5895/app-hider/", "shell_version_map": {
+, {"uuid": "app-hider@lynith.dev", "name": "App Hider", "pname": "app-hider", "description": "Hide apps in GNOME's app menu or global search.", "link": "https://extensions.gnome.org/extension/5895/app-hider/", "shell_version_map": {
     "42": {"version": "18", "sha256": "1cqwwynvnqpgzip4v1r52yl66x8rqd15xyjabplb9i19dibwh67a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYXBwcyBpbiBHTk9NRSdzIGFwcCBtZW51IiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAibHluaXRoIgogIH0sCiAgIm5hbWUiOiAiQXBwIEhpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFwcC1oaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0x5bml0aERldi9nbm9tZS1hcHAtaGlkZXIiLAogICJ1dWlkIjogImFwcC1oaWRlckBseW5pdGguZGV2IiwKICAidmVyc2lvbiI6IDE4Cn0="},
     "43": {"version": "18", "sha256": "1cqwwynvnqpgzip4v1r52yl66x8rqd15xyjabplb9i19dibwh67a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYXBwcyBpbiBHTk9NRSdzIGFwcCBtZW51IiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAibHluaXRoIgogIH0sCiAgIm5hbWUiOiAiQXBwIEhpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFwcC1oaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0x5bml0aERldi9nbm9tZS1hcHAtaGlkZXIiLAogICJ1dWlkIjogImFwcC1oaWRlckBseW5pdGguZGV2IiwKICAidmVyc2lvbiI6IDE4Cn0="},
     "44": {"version": "18", "sha256": "1cqwwynvnqpgzip4v1r52yl66x8rqd15xyjabplb9i19dibwh67a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYXBwcyBpbiBHTk9NRSdzIGFwcCBtZW51IiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAibHluaXRoIgogIH0sCiAgIm5hbWUiOiAiQXBwIEhpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFwcC1oaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0x5bml0aERldi9nbm9tZS1hcHAtaGlkZXIiLAogICJ1dWlkIjogImFwcC1oaWRlckBseW5pdGguZGV2IiwKICAidmVyc2lvbiI6IDE4Cn0="},
@@ -5789,7 +5807,7 @@
     "41": {"version": "7", "sha256": "1xd634cql2xakn62yqdml3s4r6x347138i7a20dn9r3qgmsi87s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "42": {"version": "7", "sha256": "1xd634cql2xakn62yqdml3s4r6x347138i7a20dn9r3qgmsi87s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "43": {"version": "7", "sha256": "1xd634cql2xakn62yqdml3s4r6x347138i7a20dn9r3qgmsi87s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDcKfQ=="},
-    "44": {"version": "7", "sha256": "1xd634cql2xakn62yqdml3s4r6x347138i7a20dn9r3qgmsi87s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDcKfQ=="},
+    "44": {"version": "12", "sha256": "1nl24nrqz03lccl63ixi5w033n8q779kcmq8l1nsk0jjr8sz605c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29yYml0Y29ycmVjdG9uL2xvZ28tYWN0aXZpdGllcyIsCiAgInV1aWQiOiAibG9nb2FjdGl2aXRpZXNAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
     "45": {"version": "11", "sha256": "07zvxm2dhjbzw8g2bs0d8ajig3nvh10sf3n8kygn8gaxrx8dxdkf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW4gaWNvbiBpbnN0ZWFkIG9mIHRoZSBsYWJlbCIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiaG93YmVhIgogIH0sCiAgIm5hbWUiOiAiTG9nbyBBY3Rpdml0aWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxvZ29hY3Rpdml0aWVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9sb2dvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImxvZ29hY3Rpdml0aWVzQGdpdGh1Yi5jb20ub3JiaXRjb3JyZWN0aW9uIiwKICAidmVyc2lvbiI6IDExCn0="}
   }}
 , {"uuid": "forbiden-multi-touch-gesture@touch-easy.com", "name": "forbiden-multi-touch", "pname": "forbiden-multi-touch", "description": "forbiden multi-touch-gesture", "link": "https://extensions.gnome.org/extension/5931/forbiden-multi-touch/", "shell_version_map": {
@@ -5802,9 +5820,9 @@
     "44": {"version": "1", "sha256": "1jfy70wvx6qaaqkar37bsqyk5xshm3z69apdrmddznjq0am4m75l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR1BVIHByb2ZpbGUgc3dpdGNoZXIgZGVzaWduZWQgdG8gd29yayB3aXRoIE52aWRpYSBQUklNRSAocHJpbWUtc2VsZWN0KS4iLAogICJuYW1lIjogIlBSSU1FIEdQVSBQcm9maWxlIFNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZXhpc3B1cnNsYW5lL1BSSU1FLUdQVS1Qcm9maWxlLVNlbGVjdG9yLmdpdCIsCiAgInV1aWQiOiAiUFJJTUVfR1BVX3Byb2ZpbGVfc2VsZWN0b3JAYWxleGlzcHVyc2xhbmUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}
   }}
 , {"uuid": "quick-settings-audio-panel@rayzeq.github.io", "name": "Quick Settings Audio Panel", "pname": "quick-settings-audio-panel", "description": "Create a new panel containing volumes and media control in the quick settings", "link": "https://extensions.gnome.org/extension/5940/quick-settings-audio-panel/", "shell_version_map": {
-    "43": {"version": "36", "sha256": "11qg2qszr3c4360nns0k8zp4yzma104dqhz6fxjah4l06dd4ajp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDM2Cn0="},
-    "44": {"version": "36", "sha256": "11qg2qszr3c4360nns0k8zp4yzma104dqhz6fxjah4l06dd4ajp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDM2Cn0="},
-    "45": {"version": "35", "sha256": "1mwvx43x35dpf55z5ap7x342wsd7f3i1y7dv32vldq5ykkp4kga6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDM1Cn0="}
+    "43": {"version": "45", "sha256": "00d8j387483znvsigd0cjm8kgzb7z4paipavpdilmdv5k14iv0wn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ1Cn0="},
+    "44": {"version": "45", "sha256": "00d8j387483znvsigd0cjm8kgzb7z4paipavpdilmdv5k14iv0wn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ1Cn0="},
+    "45": {"version": "44", "sha256": "0xkwz2mkchvy2mym5a05p4b3wdzpv14kvcgwyywzxwmlmxxcxg74", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ0Cn0="}
   }}
 , {"uuid": "soft-brightness-plus@joelkitching.com", "name": "Soft Brightness Plus", "pname": "soft-brightness-plus", "description": "Add or override the brightness slider to change the brightness via an alpha layer (and optionally stop using or cooperate with the exising backlight, if present).\nEither internal, external or all monitors can be dimmed.\nSee the GitHub page for details.\n\nNote that this extension will keep running on the lock screen, as you'd also want the brightness setting to apply to the lock screen as well. Please report on GitHub if this gives you any trouble.\n\nThis extension is a fork of the original 'Soft brightness' extension, and maintains support for new GNOME releases.", "link": "https://extensions.gnome.org/extension/5943/soft-brightness-plus/", "shell_version_map": {
     "38": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -5839,13 +5857,13 @@
     "44": {"version": "10", "sha256": "0v3cg0la8hr52pwpaxpaa4jkv5b2jw101dva78gvnqc04k4hgf7g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgU2hlbGwgZXh0ZW5zaW9uIHRoYXQgYWxsb3dzIHlvdSB0byBoaWRlIHNlbGVjdGVkIG91dHB1dC9pbnB1dCBkZXZpY2VzIGZyb20gdGhlIFF1aWNrIFNldHRpbmdzIGF1ZGlvIGRldmljZXMgcGFuZWwuXG5UaGFua3MgdG8gaXQsIHlvdXIgUXVpY2sgU2V0dGluZ3MgcGFuZWwgd2lsbCBsaXN0IG9ubHkgdGhvc2UgZGV2aWNlcyB0aGF0IHlvdSBhY3R1YWxseSB1c2UgbWFraW5nIGl0IGVhc2llciB0byBxdWlja2x5IHN3aXRjaCBiZXR3ZWVuIHRoZW0uXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiBkb2VzIG5vdCBwbGF5IHdlbGwgd2l0aCB0aGUgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNTk0MC9xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbC8gZXh0ZW5zaW9uLiBJdHMgb3B0aW9uIHRvXCJBbHdheXMgc2hvdyBtaWNyb3Bob25lIHZvbHVtZSBzbGlkZXJcIiBtaWdodCBub3Qgd29yayB3aGVuIFF1aWNrIFNldHRpbmdzIEF1ZGlvIERldmljZXMgSGlkZXIgaXMgZW5hYmxlZC4gQSB3b3JrYXJvdW5kIGNvdWxkIGJlIHRvIGluc3RhbGwgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNTQ0Ni9xdWljay1zZXR0aW5ncy10d2Vha2VyLywgd2hpY2ggaGFzIGEgc2ltaWxhciBmdW5jdGluYWxpdHkgdW5kZXIgdGhlIHRvZ2dsZSBcIkFsd2F5cyBzaG93IGlucHV0XCIgdW5kZXIgXCJJbnB1dC9PdXRwdXRcIiB0YWIuXG5cbkNoZWNrIG91dCB0aGUgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjAwMC9xdWljay1zZXR0aW5ncy1hdWRpby1kZXZpY2VzLXJlbmFtZXIvIGlmIHlvdSdkIHJhdGhlciB3YW50IHRvIHJlbmFtZSBzb21lIGRldmljZSB0aGFuIGhpZGUgaXQuIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBEZXZpY2VzIEhpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJjaW5qYWhuL2dub21lLXF1aWNrc2V0dGluZ3MtYXVkaW8tZGV2aWNlcy1oaWRlci1leHRlbnNpb24iLAogICJ1dWlkIjogInF1aWNrc2V0dGluZ3MtYXVkaW8tZGV2aWNlcy1oaWRlckBtYXJjaW5qYWhuLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "45": {"version": "12", "sha256": "13pjpn6kvz4ml07j7b0029kx6jaqd62qsyaywk4p69y2xakx279k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgU2hlbGwgZXh0ZW5zaW9uIHRoYXQgYWxsb3dzIHlvdSB0byBoaWRlIHNlbGVjdGVkIG91dHB1dC9pbnB1dCBkZXZpY2VzIGZyb20gdGhlIFF1aWNrIFNldHRpbmdzIGF1ZGlvIGRldmljZXMgcGFuZWwuXG5UaGFua3MgdG8gaXQsIHlvdXIgUXVpY2sgU2V0dGluZ3MgcGFuZWwgd2lsbCBsaXN0IG9ubHkgdGhvc2UgZGV2aWNlcyB0aGF0IHlvdSBhY3R1YWxseSB1c2UgbWFraW5nIGl0IGVhc2llciB0byBxdWlja2x5IHN3aXRjaCBiZXR3ZWVuIHRoZW0uXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiBkb2VzIG5vdCBwbGF5IHdlbGwgd2l0aCB0aGUgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNTk0MC9xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbC8gZXh0ZW5zaW9uLiBJdHMgb3B0aW9uIHRvXCJBbHdheXMgc2hvdyBtaWNyb3Bob25lIHZvbHVtZSBzbGlkZXJcIiBtaWdodCBub3Qgd29yayB3aGVuIFF1aWNrIFNldHRpbmdzIEF1ZGlvIERldmljZXMgSGlkZXIgaXMgZW5hYmxlZC4gQSB3b3JrYXJvdW5kIGNvdWxkIGJlIHRvIGluc3RhbGwgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNTQ0Ni9xdWljay1zZXR0aW5ncy10d2Vha2VyLywgd2hpY2ggaGFzIGEgc2ltaWxhciBmdW5jdGluYWxpdHkgdW5kZXIgdGhlIHRvZ2dsZSBcIkFsd2F5cyBzaG93IGlucHV0XCIgdW5kZXIgXCJJbnB1dC9PdXRwdXRcIiB0YWIuXG5cbkNoZWNrIG91dCB0aGUgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjAwMC9xdWljay1zZXR0aW5ncy1hdWRpby1kZXZpY2VzLXJlbmFtZXIvIGlmIHlvdSdkIHJhdGhlciB3YW50IHRvIHJlbmFtZSBzb21lIGRldmljZSB0aGFuIGhpZGUgaXQuIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBEZXZpY2VzIEhpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmphaG4vZ25vbWUtcXVpY2tzZXR0aW5ncy1hdWRpby1kZXZpY2VzLWhpZGVyLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicXVpY2tzZXR0aW5ncy1hdWRpby1kZXZpY2VzLWhpZGVyQG1hcmNpbmphaG4uY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}
   }}
-, {"uuid": "workspaces-by-open-apps@favo02.github.com", "name": "Workspaces indicator by open apps", "pname": "workspaces-indicator-by-open-apps", "description": "Display a simple workspace indicator showing icons of apps open in it.\n\nFeatures:\n\n- Show a simple indicator to display workspaces and apps open in it\n- Support for drag and drop: change an application workspace just dragging its icon\n- Right/Left click to focus application, Middle click to close\n- Workspaces scrolling: change active workspace scrolling hover the indicator\n- Support for multiple monitor (for both static and dynamic workspaces)\n- Rename workspaces directly from the extension (activate in settings)\n\nCustomization:\n\n- Indicator position\n- Scroll direction (normal or inverse)\n- Activate/deactivate 'middle click to close app'\n- Activate/deactivate 'workspace indicator'\n- Activate/deactivate 'app indicator'\n- Customize indicator color\n- Activate/deactivate 'round borders'\n- Show/Hide workspaces names\n- Show/Hide empty workspaces\n- Customize apps on all workspaces text indicator\n- Desaturate all icons\n- No effect/Reduce opacity/Desaturate for both minimized and inactive apps\n- Limit icons per workspace\n- Group icons of same application", "link": "https://extensions.gnome.org/extension/5967/workspaces-indicator-by-open-apps/", "shell_version_map": {
-    "40": {"version": "11", "sha256": "15k910zwrq45fxp0vpbghsmkc63k664vc9i20n0v37797l0wkaid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GYXZvMDIvd29ya3NwYWNlcy1ieS1vcGVuLWFwcHMiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtYnktb3Blbi1hcHBzQGZhdm8wMi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
-    "41": {"version": "11", "sha256": "15k910zwrq45fxp0vpbghsmkc63k664vc9i20n0v37797l0wkaid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GYXZvMDIvd29ya3NwYWNlcy1ieS1vcGVuLWFwcHMiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtYnktb3Blbi1hcHBzQGZhdm8wMi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
-    "42": {"version": "11", "sha256": "15k910zwrq45fxp0vpbghsmkc63k664vc9i20n0v37797l0wkaid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GYXZvMDIvd29ya3NwYWNlcy1ieS1vcGVuLWFwcHMiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtYnktb3Blbi1hcHBzQGZhdm8wMi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
-    "43": {"version": "11", "sha256": "15k910zwrq45fxp0vpbghsmkc63k664vc9i20n0v37797l0wkaid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GYXZvMDIvd29ya3NwYWNlcy1ieS1vcGVuLWFwcHMiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtYnktb3Blbi1hcHBzQGZhdm8wMi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
-    "44": {"version": "11", "sha256": "15k910zwrq45fxp0vpbghsmkc63k664vc9i20n0v37797l0wkaid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GYXZvMDIvd29ya3NwYWNlcy1ieS1vcGVuLWFwcHMiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtYnktb3Blbi1hcHBzQGZhdm8wMi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
-    "45": {"version": "12", "sha256": "1mkixa6xb2bl8hygf7m8q910ixhaqa0jrcg2dvnhbxg05166h0fz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZXMtaW5kaWNhdG9yLWJ5LW9wZW4tYXBwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GYXZvMDIvd29ya3NwYWNlcy1ieS1vcGVuLWFwcHMiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtYnktb3Blbi1hcHBzQGZhdm8wMi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}
+, {"uuid": "workspaces-by-open-apps@favo02.github.com", "name": "Workspaces indicator by open apps", "pname": "workspaces-indicator-by-open-apps", "description": "Display a simple workspace indicator showing icons of apps open in it.\n\nFeatures:\n\n- Show a simple indicator to display workspaces and apps open in it\n- Support for drag and drop: change an application workspace just dragging its icon\n- Right/Left click to focus/minimize application, Middle click to close\n- Workspaces scrolling: change active workspace scrolling hover the indicator\n- Support for multiple monitor (for both static and dynamic workspaces)\n- Rename workspaces directly from the extension (activate in settings)\n- Hide/show GNOME default workspace indicator (former activities button)\n\nCustomization:\n\n- Indicator position\n- Mouse scroll direction (normal or inverse)\n- Activate/deactivate 'middle click to close app'\n- Activate/deactivate 'click on active workspace to overview'\n- Activate/deactivate 'click on focused application to minimize'\n- Activate/deactivate 'workspace indicator'\n- Activate/deactivate 'app indicator'\n- Customize indicator color\n- Activate/deactivate 'round borders'\n- Show/Hide workspaces names\n- Show/Hide empty workspaces\n- Customize apps on all workspaces text indicator\n- Desaturate all icons\n- No effect/Reduce opacity/Desaturate for both minimized and inactive apps\n- Limit icons per workspace\n- Group icons of same application\n- Ignore applications (with regex)", "link": "https://extensions.gnome.org/extension/5967/workspaces-indicator-by-open-apps/", "shell_version_map": {
+    "40": {"version": "8", "sha256": "1iimby4wglgyrfx20la0kp9wdnfz3y6868n2044qvda2fbwxdx5c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuVXNhZ2UgYW5kIGN1c3RvbWl6YXRpb246XG4tIFN1cHBvcnQgZm9yIGRyYWcgYW5kIGRyb3A6IGNoYW5nZSBhbiBhcHBsaWNhdGlvbiB3b3Jrc3BhY2UganVzdCBkcmFnZ2luZyBpdHMgaWNvblxuLSBSaWdodC9MZWZ0IGNsaWNrIHRvIGZvY3VzIGFwcGxpY2F0aW9uLCBNaWRkbGUgY2xpY2sgdG8gY2xvc2Vcbi0gV29ya3NwYWNlcyBzY3JvbGxpbmc6IGNoYW5nZSBhY3RpdmUgd29ya3NwYWNlIHNjcm9sbGluZyBob3ZlciB0aGUgaW5kaWNhdG9yXG4tIFRvZ2dsZSBhcHBsaWNhdGlvbiBpY29ucyBkZXNhdHVyYXRpb25cbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgaW5kZXggbGFiZWxcbi0gU2hvdy9IaWRlIGFjdGl2ZSB3b3Jrc3BhY2UgYW5kIGZvY3VzZWQgYXBwIGluZGljYXRvclxuLSBDaGFuZ2UgaW5kaWNhdG9yIHN0eWxlIGFuZCBjb2xvclxuLSBTdXBwb3J0IGZvciBtdWx0aXBsZSBtb25pdG9yIChmb3IgYm90aCBzdGF0aWMgYW5kIGR5bmFtaWMgd29ya3NwYWNlcylcbi0gW05FVyFdIEhpZGUgZW1wdHkgd29ya3NwYWNlc1xuLSBbTkVXIV0gUmVuYW1lIHdvcmtzcGFjZXMgZGlyZWN0bHkgZnJvbSB0aGUgZXh0ZW5zaW9uIChzd2l0Y2ggd29ya3NwYWNlIHRvIGFwcGx5IG5ldyBuYW1lKVxuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIGluZGljYXRvciBieSBvcGVuIGFwcHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Zhdm8wMi93b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwcyIsCiAgInV1aWQiOiAid29ya3NwYWNlcy1ieS1vcGVuLWFwcHNAZmF2bzAyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOAp9"},
+    "41": {"version": "8", "sha256": "1iimby4wglgyrfx20la0kp9wdnfz3y6868n2044qvda2fbwxdx5c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuVXNhZ2UgYW5kIGN1c3RvbWl6YXRpb246XG4tIFN1cHBvcnQgZm9yIGRyYWcgYW5kIGRyb3A6IGNoYW5nZSBhbiBhcHBsaWNhdGlvbiB3b3Jrc3BhY2UganVzdCBkcmFnZ2luZyBpdHMgaWNvblxuLSBSaWdodC9MZWZ0IGNsaWNrIHRvIGZvY3VzIGFwcGxpY2F0aW9uLCBNaWRkbGUgY2xpY2sgdG8gY2xvc2Vcbi0gV29ya3NwYWNlcyBzY3JvbGxpbmc6IGNoYW5nZSBhY3RpdmUgd29ya3NwYWNlIHNjcm9sbGluZyBob3ZlciB0aGUgaW5kaWNhdG9yXG4tIFRvZ2dsZSBhcHBsaWNhdGlvbiBpY29ucyBkZXNhdHVyYXRpb25cbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgaW5kZXggbGFiZWxcbi0gU2hvdy9IaWRlIGFjdGl2ZSB3b3Jrc3BhY2UgYW5kIGZvY3VzZWQgYXBwIGluZGljYXRvclxuLSBDaGFuZ2UgaW5kaWNhdG9yIHN0eWxlIGFuZCBjb2xvclxuLSBTdXBwb3J0IGZvciBtdWx0aXBsZSBtb25pdG9yIChmb3IgYm90aCBzdGF0aWMgYW5kIGR5bmFtaWMgd29ya3NwYWNlcylcbi0gW05FVyFdIEhpZGUgZW1wdHkgd29ya3NwYWNlc1xuLSBbTkVXIV0gUmVuYW1lIHdvcmtzcGFjZXMgZGlyZWN0bHkgZnJvbSB0aGUgZXh0ZW5zaW9uIChzd2l0Y2ggd29ya3NwYWNlIHRvIGFwcGx5IG5ldyBuYW1lKVxuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIGluZGljYXRvciBieSBvcGVuIGFwcHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Zhdm8wMi93b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwcyIsCiAgInV1aWQiOiAid29ya3NwYWNlcy1ieS1vcGVuLWFwcHNAZmF2bzAyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOAp9"},
+    "42": {"version": "13", "sha256": "1qmwvsv7g5lh7yri6m8c3r18zhvr6bh2wcchlgydyzfdkdsvjpid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
+    "43": {"version": "13", "sha256": "1qmwvsv7g5lh7yri6m8c3r18zhvr6bh2wcchlgydyzfdkdsvjpid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
+    "44": {"version": "13", "sha256": "1qmwvsv7g5lh7yri6m8c3r18zhvr6bh2wcchlgydyzfdkdsvjpid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
+    "45": {"version": "14", "sha256": "1grasnfra2ni3mkdib6sr9h8rj23x5fdly99c03i49vsw05qd614", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMvbWluaW1pemUgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciBfKGZvciBib3RoIHN0YXRpYyBhbmQgZHluYW1pYyB3b3Jrc3BhY2VzKV9cbi0gUmVuYW1lIHdvcmtzcGFjZXMgZGlyZWN0bHkgZnJvbSB0aGUgZXh0ZW5zaW9uIF8oYWN0aXZhdGUgaW4gc2V0dGluZ3MpX1xuLSBIaWRlL3Nob3cgR05PTUUgZGVmYXVsdCB3b3Jrc3BhY2UgaW5kaWNhdG9yIChmb3JtZXIgYWN0aXZpdGllcyBidXR0b24pXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIE1vdXNlIHNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdjbGljayBvbiBhY3RpdmUgd29ya3NwYWNlIHRvIG92ZXJ2aWV3J1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdjbGljayBvbiBmb2N1c2VkIGFwcGxpY2F0aW9uIHRvIG1pbmltaXplJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbi0gSWdub3JlIGFwcGxpY2F0aW9ucyAod2l0aCByZWdleCkiLAogICJuYW1lIjogIldvcmtzcGFjZXMgaW5kaWNhdG9yIGJ5IG9wZW4gYXBwcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2VzLWluZGljYXRvci1ieS1vcGVuLWFwcHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}
   }}
 , {"uuid": "fshyperlinks@nuclear.polygon", "name": "FS Hyperlinks", "pname": "fs-hyperlinks", "description": "Select a path to jump there (When Ctrl is down)\nAlt+J to open file or directory with default app (when its path is in clipboard)", "link": "https://extensions.gnome.org/extension/5970/fs-hyperlinks/", "shell_version_map": {
     "38": {"version": "5", "sha256": "0q6gsl75vivslv9yw8ik5pfapdz4ivvr9bmai2pjy2ls7cw9zf9k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIHBhdGggdG8ganVtcCB0aGVyZSAoV2hlbiBDdHJsIGlzIGRvd24pXG5BbHQrSiB0byBvcGVuIGZpbGUgb3IgZGlyZWN0b3J5IHdpdGggZGVmYXVsdCBhcHAgKHdoZW4gaXRzIHBhdGggaXMgaW4gY2xpcGJvYXJkKSIsCiAgIm5hbWUiOiAiRlMgSHlwZXJsaW5rcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbnVjbGVhcnBvbHlnb24vZnNfaHlwZXJsaW5rc19nbm9tZV9leHRlbnNpb24iLAogICJ1dWlkIjogImZzaHlwZXJsaW5rc0BudWNsZWFyLnBvbHlnb24iLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -5861,7 +5879,7 @@
     "42": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
     "43": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
     "44": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
-    "45": {"version": "121", "sha256": "00dcyyi9gmn2bz87f30fh1j5xsh4g4pvvp6v1lfm1l781d8gjrqx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMjEKfQ=="}
+    "45": {"version": "125", "sha256": "0knil479fizsnafm6vmslh9mwm987y09s9jaxs1qcq2hhr391l3w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMjUKfQ=="}
   }}
 , {"uuid": "dim-completed-calendar-events@marcinjahn.com", "name": "Dim Completed Calendar Events", "pname": "dim-completed-calendar-events", "description": "Dim completed events in the top panel menu to easily distinguish between upcoming and past events. You can also highlight events that are ongoing.", "link": "https://extensions.gnome.org/extension/5979/dim-completed-calendar-events/", "shell_version_map": {
     "44": {"version": "3", "sha256": "0dpyrhdc70f77wv8hx7d6xnpxx13c2qfp7dbx716mqq90raij39f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSBjb21wbGV0ZWQgZXZlbnRzIGluIHRoZSB0b3AgcGFuZWwgbWVudSB0byBlYXNpbHkgZGlzdGluZ3Vpc2ggYmV0d2VlbiB1cGNvbWluZyBhbmQgcGFzdCBldmVudHMuIFlvdSBjYW4gYWxzbyBoaWdobGlnaHQgZXZlbnRzIHRoYXQgYXJlIG9uZ29pbmcuIiwKICAibmFtZSI6ICJEaW0gQ29tcGxldGVkIENhbGVuZGFyIEV2ZW50cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJjaW5qYWhuL2dub21lLWRpbS1jb21wbGV0ZWQtY2FsZW5kYXItZXZlbnRzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZGltLWNvbXBsZXRlZC1jYWxlbmRhci1ldmVudHNAbWFyY2luamFobi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -5888,6 +5906,11 @@
     "44": {"version": "1", "sha256": "0prm3afmr0jfixycfldc4xy0pgqsa0ybxm68nwhmn7dpj77yivcz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQnVmZmVyc29sdmUvVXBwZXJjYXNlLUxhbmd1YWdlLUluZGljYXRvciIsCiAgInV1aWQiOiAidXBwZXJjYXNlLWxhbmd1YWdlLWluZGljYXRvckBidWZmZXJzb2x2ZSIsCiAgInZlcnNpb24iOiAxCn0="},
     "45": {"version": "2", "sha256": "0iwxqjmbacf8xhhz0ijcpfg9d7cg78s77q6rh1lgp38nswnkz6hj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CdWZmZXJzb2x2ZS9VcHBlcmNhc2UtTGFuZ3VhZ2UtSW5kaWNhdG9yIiwKICAidXVpZCI6ICJ1cHBlcmNhc2UtbGFuZ3VhZ2UtaW5kaWNhdG9yQGJ1ZmZlcnNvbHZlIiwKICAidmVyc2lvbiI6IDIKfQ=="}
   }}
+, {"uuid": "my-hijri-date-extension@ameen-sha", "name": "Hijri Date Extension", "pname": "hijri-date-extension", "description": "Display the Hijri date in the top panel.", "link": "https://extensions.gnome.org/extension/5995/hijri-date-extension/", "shell_version_map": {
+    "38": {"version": "5", "sha256": "1zzw95f1643y5g0xfcip0d7kpgpjkdm1dz2ai3k3y1qlg3jjgl4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIEhpanJpIGRhdGUgaW4gdGhlIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIkhpanJpIERhdGUgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BbWVlbi1TaGEtQ2hlZXJhbmdhbi9IaWpyaS1EYXRlLUdub21lLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAibXktaGlqcmktZGF0ZS1leHRlbnNpb25AYW1lZW4tc2hhIiwKICAidmVyc2lvbiI6IDUKfQ=="},
+    "40": {"version": "5", "sha256": "1zzw95f1643y5g0xfcip0d7kpgpjkdm1dz2ai3k3y1qlg3jjgl4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIEhpanJpIGRhdGUgaW4gdGhlIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIkhpanJpIERhdGUgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BbWVlbi1TaGEtQ2hlZXJhbmdhbi9IaWpyaS1EYXRlLUdub21lLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAibXktaGlqcmktZGF0ZS1leHRlbnNpb25AYW1lZW4tc2hhIiwKICAidmVyc2lvbiI6IDUKfQ=="},
+    "42": {"version": "5", "sha256": "1zzw95f1643y5g0xfcip0d7kpgpjkdm1dz2ai3k3y1qlg3jjgl4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIEhpanJpIGRhdGUgaW4gdGhlIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIkhpanJpIERhdGUgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BbWVlbi1TaGEtQ2hlZXJhbmdhbi9IaWpyaS1EYXRlLUdub21lLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAibXktaGlqcmktZGF0ZS1leHRlbnNpb25AYW1lZW4tc2hhIiwKICAidmVyc2lvbiI6IDUKfQ=="}
+  }}
 , {"uuid": "quicksettings-audio-devices-renamer@marcinjahn.com", "name": "Quick Settings Audio Devices Renamer", "pname": "quick-settings-audio-devices-renamer", "description": "It lets you change the names of your audio devices in the Quick Settings Audio Panel. This works for both speakers and microphones. It's useful when you need to switch quickly between different audio devices and their default names aren't very clear or they're a bit too explicit. This extension makes it easy to customize devices names so that, e.g. \"Speaker - Family 17h/19h HD Audio Controller\" could become just \"Laptop Speakers\". Emojis are supported as well!\n\nCheck out the https://extensions.gnome.org/extension/5964/quick-settings-audio-devices-hider/ if some device should rather be hidden than renamed", "link": "https://extensions.gnome.org/extension/6000/quick-settings-audio-devices-renamer/", "shell_version_map": {
     "44": {"version": "2", "sha256": "1gnlzgxm67iyc41vqs2scc991b3df57b9z2mfg914c5d83a2nl94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0IGxldHMgeW91IGNoYW5nZSB0aGUgbmFtZXMgb2YgeW91ciBhdWRpbyBkZXZpY2VzIGluIHRoZSBRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbC4gVGhpcyB3b3JrcyBmb3IgYm90aCBzcGVha2VycyBhbmQgbWljcm9waG9uZXMuIEl0J3MgdXNlZnVsIHdoZW4geW91IG5lZWQgdG8gc3dpdGNoIHF1aWNrbHkgYmV0d2VlbiBkaWZmZXJlbnQgYXVkaW8gZGV2aWNlcyBhbmQgdGhlaXIgZGVmYXVsdCBuYW1lcyBhcmVuJ3QgdmVyeSBjbGVhciBvciB0aGV5J3JlIGEgYml0IHRvbyBleHBsaWNpdC4gVGhpcyBleHRlbnNpb24gbWFrZXMgaXQgZWFzeSB0byBjdXN0b21pemUgZGV2aWNlcyBuYW1lcyBzbyB0aGF0LCBlLmcuIFwiU3BlYWtlciAtIEZhbWlseSAxN2gvMTloIEhEIEF1ZGlvIENvbnRyb2xsZXJcIiBjb3VsZCBiZWNvbWUganVzdCBcIkxhcHRvcCBTcGVha2Vyc1wiLiBFbW9qaXMgYXJlIHN1cHBvcnRlZCBhcyB3ZWxsIVxuXG5DaGVjayBvdXQgdGhlIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzU5NjQvcXVpY2stc2V0dGluZ3MtYXVkaW8tZGV2aWNlcy1oaWRlci8gaWYgc29tZSBkZXZpY2Ugc2hvdWxkIHJhdGhlciBiZSBoaWRkZW4gdGhhbiByZW5hbWVkIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBEZXZpY2VzIFJlbmFtZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFobi9nbm9tZS1xdWlja3NldHRpbmdzLWF1ZGlvLWRldmljZXMtcmVuYW1lci1leHRlbnNpb24iLAogICJ1dWlkIjogInF1aWNrc2V0dGluZ3MtYXVkaW8tZGV2aWNlcy1yZW5hbWVyQG1hcmNpbmphaG4uY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
     "45": {"version": "3", "sha256": "1dwbkk655a4zsd13pniprpl660qmn3mgw3zw967qzg9pr6jfi0fk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0IGxldHMgeW91IGNoYW5nZSB0aGUgbmFtZXMgb2YgeW91ciBhdWRpbyBkZXZpY2VzIGluIHRoZSBRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbC4gVGhpcyB3b3JrcyBmb3IgYm90aCBzcGVha2VycyBhbmQgbWljcm9waG9uZXMuIEl0J3MgdXNlZnVsIHdoZW4geW91IG5lZWQgdG8gc3dpdGNoIHF1aWNrbHkgYmV0d2VlbiBkaWZmZXJlbnQgYXVkaW8gZGV2aWNlcyBhbmQgdGhlaXIgZGVmYXVsdCBuYW1lcyBhcmVuJ3QgdmVyeSBjbGVhciBvciB0aGV5J3JlIGEgYml0IHRvbyBleHBsaWNpdC4gVGhpcyBleHRlbnNpb24gbWFrZXMgaXQgZWFzeSB0byBjdXN0b21pemUgZGV2aWNlcyBuYW1lcyBzbyB0aGF0LCBlLmcuIFwiU3BlYWtlciAtIEZhbWlseSAxN2gvMTloIEhEIEF1ZGlvIENvbnRyb2xsZXJcIiBjb3VsZCBiZWNvbWUganVzdCBcIkxhcHRvcCBTcGVha2Vyc1wiLiBFbW9qaXMgYXJlIHN1cHBvcnRlZCBhcyB3ZWxsIVxuXG5DaGVjayBvdXQgdGhlIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzU5NjQvcXVpY2stc2V0dGluZ3MtYXVkaW8tZGV2aWNlcy1oaWRlci8gaWYgc29tZSBkZXZpY2Ugc2hvdWxkIHJhdGhlciBiZSBoaWRkZW4gdGhhbiByZW5hbWVkIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBEZXZpY2VzIFJlbmFtZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFobi9nbm9tZS1xdWlja3NldHRpbmdzLWF1ZGlvLWRldmljZXMtcmVuYW1lci1leHRlbnNpb24iLAogICJ1dWlkIjogInF1aWNrc2V0dGluZ3MtYXVkaW8tZGV2aWNlcy1yZW5hbWVyQG1hcmNpbmphaG4uY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}
@@ -5895,7 +5918,8 @@
 , {"uuid": "cronomix@zagortenay333", "name": "Cronomix", "pname": "cronomix", "description": "All-in-one timer, stopwatch, pomodoro, alarms and todos", "link": "https://extensions.gnome.org/extension/6003/cronomix/", "shell_version_map": {
     "42": {"version": "6", "sha256": "10izaph3dg2dcqrzk4ffw10fdv41gvrggidnb236zc89437pp91j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbC1pbi1vbmUgdGltZXIsIHN0b3B3YXRjaCwgcG9tb2Rvcm8sIGFsYXJtcyBhbmQgdG9kb3MiLAogICJuYW1lIjogIkNyb25vbWl4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy9jcm9ub21peCIsCiAgInV1aWQiOiAiY3Jvbm9taXhAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiA2Cn0="},
     "43": {"version": "6", "sha256": "10izaph3dg2dcqrzk4ffw10fdv41gvrggidnb236zc89437pp91j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbC1pbi1vbmUgdGltZXIsIHN0b3B3YXRjaCwgcG9tb2Rvcm8sIGFsYXJtcyBhbmQgdG9kb3MiLAogICJuYW1lIjogIkNyb25vbWl4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy9jcm9ub21peCIsCiAgInV1aWQiOiAiY3Jvbm9taXhAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiA2Cn0="},
-    "44": {"version": "6", "sha256": "10izaph3dg2dcqrzk4ffw10fdv41gvrggidnb236zc89437pp91j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbC1pbi1vbmUgdGltZXIsIHN0b3B3YXRjaCwgcG9tb2Rvcm8sIGFsYXJtcyBhbmQgdG9kb3MiLAogICJuYW1lIjogIkNyb25vbWl4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy9jcm9ub21peCIsCiAgInV1aWQiOiAiY3Jvbm9taXhAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiA2Cn0="}
+    "44": {"version": "6", "sha256": "10izaph3dg2dcqrzk4ffw10fdv41gvrggidnb236zc89437pp91j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbC1pbi1vbmUgdGltZXIsIHN0b3B3YXRjaCwgcG9tb2Rvcm8sIGFsYXJtcyBhbmQgdG9kb3MiLAogICJuYW1lIjogIkNyb25vbWl4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy9jcm9ub21peCIsCiAgInV1aWQiOiAiY3Jvbm9taXhAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiA2Cn0="},
+    "45": {"version": "8", "sha256": "1ki0m31jm9j642nrz7njkhqr1bv8yrqgi6nbfql0zxphdrbsa8mc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbC1pbi1vbmUgdGltZXIsIHN0b3B3YXRjaCwgcG9tb2Rvcm8sIGFsYXJtcyBhbmQgdG9kb3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjcm9ub21peCIsCiAgIm5hbWUiOiAiQ3Jvbm9taXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy9jcm9ub21peCIsCiAgInV1aWQiOiAiY3Jvbm9taXhAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiA4Cn0="}
   }}
 , {"uuid": "switchlayoutaltshift@seriyyy95.com", "name": "SwitchLayoutAltShift", "pname": "switchlayoutaltshift", "description": "Allows to switch input source using Alt+Shift", "link": "https://extensions.gnome.org/extension/6006/switchlayoutaltshift/", "shell_version_map": {
     "42": {"version": "2", "sha256": "0c1v3kw5kg7gk81hr1xjpj9h4xk0yz02b35dfd906ap0x62sq4wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBzd2l0Y2ggaW5wdXQgc291cmNlIHVzaW5nIEFsdCtTaGlmdCIsCiAgIm5hbWUiOiAiU3dpdGNoTGF5b3V0QWx0U2hpZnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3dpdGNobGF5b3V0YWx0c2hpZnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZXJpeXl5OTUvc3dpdGNobGF5b3V0YWx0c2hpZnQuZ2l0IiwKICAidXVpZCI6ICJzd2l0Y2hsYXlvdXRhbHRzaGlmdEBzZXJpeXl5OTUuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
@@ -5928,9 +5952,9 @@
     "44": {"version": "4", "sha256": "157ih6nyg5v0jwia5jqyai8y8012afgcy8h08vfg3qms0qij14bv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdm9sdW1lIG9mIG11bHRpcGxlIHNvdW5kIGludGVyZmFjZXMiLAogICJuYW1lIjogIkFkdmFuY2VkIFZvbHVtZSBDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyeGpvaG5zb24vYWR2YW5jZWR2b2x1bWVjb250cm9sIiwKICAidXVpZCI6ICJhZHZhbmNlZHZvbHVtZWNvbnRyb2xAbWFyay5qb2huc29uLnVidW50dS5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}
   }}
 , {"uuid": "systemd-status@ne0sight.github.io", "name": "Systemd Status", "pname": "systemd-status", "description": "Show systemd system state", "link": "https://extensions.gnome.org/extension/6045/systemd-status/", "shell_version_map": {
-    "43": {"version": "2", "sha256": "0fqip97f3cnhn79vjy8krblxsj53i7hs5y6k6sr0zfv1d3wia8lz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uRTBzSWdoVC9zeXN0ZW1kLXN0YXR1cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInN5c3RlbWQtc3RhdHVzQG5lMHNpZ2h0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="},
-    "44": {"version": "2", "sha256": "0fqip97f3cnhn79vjy8krblxsj53i7hs5y6k6sr0zfv1d3wia8lz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uRTBzSWdoVC9zeXN0ZW1kLXN0YXR1cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInN5c3RlbWQtc3RhdHVzQG5lMHNpZ2h0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="},
-    "45": {"version": "4", "sha256": "0zwgr1prhwwqpxjc5chnvslkqdfm9m9238v7v18bkfzx221s8n4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25FMHNJZ2hUL3N5c3RlbWQtc3RhdHVzLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3lzdGVtZC1zdGF0dXNAbmUwc2lnaHQuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQKfQ=="}
+    "43": {"version": "5", "sha256": "103f6rn0py6ivrxhgmr11bxqj7lnd15w8f4pl1k88a11r2gkpqb8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uRTBzSWdoVC9zeXN0ZW1kLXN0YXR1cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInN5c3RlbWQtc3RhdHVzQG5lMHNpZ2h0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="},
+    "44": {"version": "5", "sha256": "103f6rn0py6ivrxhgmr11bxqj7lnd15w8f4pl1k88a11r2gkpqb8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uRTBzSWdoVC9zeXN0ZW1kLXN0YXR1cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInN5c3RlbWQtc3RhdHVzQG5lMHNpZ2h0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="},
+    "45": {"version": "6", "sha256": "0mwsyg2df835cww9hmp86mz5ncxlggiw746r0kyl3xa6pqyxpfrx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25FMHNJZ2hUL3N5c3RlbWQtc3RhdHVzLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3lzdGVtZC1zdGF0dXNAbmUwc2lnaHQuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}
   }}
 , {"uuid": "peek-top-bar-on-fullscreen@marcinjahn.com", "name": "Peek Top Bar on Fullscreen", "pname": "peek-top-bar-on-fullscreen", "description": "Show the top bar (panel) on demand while having full screen content on (like a YouTube video). Just hover the mouse cursor to the top of the screen, and the panel will show up. This way, you can quickly check the time, or swich some toggles. This is similar to what macOS offers for full screen apps.\n\nOn Wayland, to hide the top bar, you need to click the primary mouse button somewhere outside of the bar. On X11, just take the cursor away from the bar.\nThis extension is incompatible with Blur My Shell extension.", "link": "https://extensions.gnome.org/extension/6048/peek-top-bar-on-fullscreen/", "shell_version_map": {
     "43": {"version": "8", "sha256": "1p196by16zmgsy5af1jsgrm38p6vrrzh1pn2nbar6zw25pldsn8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5PbiBXYXlsYW5kLCB0byBoaWRlIHRoZSB0b3AgYmFyLCB5b3UgbmVlZCB0byBjbGljayB0aGUgcHJpbWFyeSBtb3VzZSBidXR0b24gc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGJhci4gT24gWDExLCBqdXN0IHRha2UgdGhlIGN1cnNvciBhd2F5IGZyb20gdGhlIGJhci5cblRoaXMgZXh0ZW5zaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIEJsdXIgTXkgU2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUGVlayBUb3AgQmFyIG9uIEZ1bGxzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmphaG4vZ25vbWUtcGVlay10b3AtYmFyLW9uLWZ1bGxzY3JlZW4tZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbkBtYXJjaW5qYWhuLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
@@ -5945,7 +5969,7 @@
   }}
 , {"uuid": "happy-appy-hotkey@jqno.nl", "name": "Happy Appy Hotkey", "pname": "happy-appy-hotkey", "description": "Assign hotkeys to applications to give them focus or launch them\n\nFeatures:\n- Assign a hotkey to an app to:\n-- Give it focus if it's already running, or\n-- Launch it if it's not.\n- Assign a hotkey to cycle through all the apps that don't have a hotkey\n- Supports Wayland", "link": "https://extensions.gnome.org/extension/6057/happy-appy-hotkey/", "shell_version_map": {
     "44": {"version": "3", "sha256": "0fg9967jwsp24pphv1bdiz6fns2kslrg3dx4xq4q894aiwxzagrv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzc2lnbiBob3RrZXlzIHRvIGFwcGxpY2F0aW9ucyB0byBnaXZlIHRoZW0gZm9jdXMgb3IgbGF1bmNoIHRoZW1cblxuRmVhdHVyZXM6XG4tIEFzc2lnbiBhIGhvdGtleSB0byBhbiBhcHAgdG86XG4tLSBHaXZlIGl0IGZvY3VzIGlmIGl0J3MgYWxyZWFkeSBydW5uaW5nLCBvclxuLS0gTGF1bmNoIGl0IGlmIGl0J3Mgbm90LlxuLSBBc3NpZ24gYSBob3RrZXkgdG8gY3ljbGUgdGhyb3VnaCBhbGwgdGhlIGFwcHMgdGhhdCBkb24ndCBoYXZlIGEgaG90a2V5XG4tIFN1cHBvcnRzIFdheWxhbmQiLAogICJuYW1lIjogIkhhcHB5IEFwcHkgSG90a2V5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pxbm8vZ25vbWUtaGFwcHktYXBweS1ob3RrZXkvIiwKICAidXVpZCI6ICJoYXBweS1hcHB5LWhvdGtleUBqcW5vLm5sIiwKICAidmVyc2lvbiI6IDMKfQ=="},
-    "45": {"version": "5", "sha256": "0k6g2vqgg6y81p58c4m6dwsmy4hiakqini2m4zy5p87wpxfpc87s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzc2lnbiBob3RrZXlzIHRvIGFwcGxpY2F0aW9ucyB0byBnaXZlIHRoZW0gZm9jdXMgb3IgbGF1bmNoIHRoZW1cblxuRmVhdHVyZXM6XG4tIEFzc2lnbiBhIGhvdGtleSB0byBhbiBhcHAgdG86XG4tLSBHaXZlIGl0IGZvY3VzIGlmIGl0J3MgYWxyZWFkeSBydW5uaW5nLCBvclxuLS0gTGF1bmNoIGl0IGlmIGl0J3Mgbm90LlxuLSBBc3NpZ24gYSBob3RrZXkgdG8gY3ljbGUgdGhyb3VnaCBhbGwgdGhlIGFwcHMgdGhhdCBkb24ndCBoYXZlIGEgaG90a2V5XG4tIFN1cHBvcnRzIFdheWxhbmQiLAogICJuYW1lIjogIkhhcHB5IEFwcHkgSG90a2V5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pxbm8vZ25vbWUtaGFwcHktYXBweS1ob3RrZXkvIiwKICAidXVpZCI6ICJoYXBweS1hcHB5LWhvdGtleUBqcW5vLm5sIiwKICAidmVyc2lvbiI6IDUKfQ=="}
+    "45": {"version": "6", "sha256": "0jnlyswviwg9bab8y8vss7rgyz499119yhzjinqq6qh1v7wc6b9r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzc2lnbiBob3RrZXlzIHRvIGFwcGxpY2F0aW9ucyB0byBnaXZlIHRoZW0gZm9jdXMgb3IgbGF1bmNoIHRoZW1cblxuRmVhdHVyZXM6XG4tIEFzc2lnbiBhIGhvdGtleSB0byBhbiBhcHAgdG86XG4tLSBHaXZlIGl0IGZvY3VzIGlmIGl0J3MgYWxyZWFkeSBydW5uaW5nLCBvclxuLS0gTGF1bmNoIGl0IGlmIGl0J3Mgbm90LlxuLSBBc3NpZ24gYSBob3RrZXkgdG8gY3ljbGUgdGhyb3VnaCBhbGwgdGhlIGFwcHMgdGhhdCBkb24ndCBoYXZlIGEgaG90a2V5XG4tIFN1cHBvcnRzIFdheWxhbmQiLAogICJuYW1lIjogIkhhcHB5IEFwcHkgSG90a2V5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pxbm8vZ25vbWUtaGFwcHktYXBweS1ob3RrZXkvIiwKICAidXVpZCI6ICJoYXBweS1hcHB5LWhvdGtleUBqcW5vLm5sIiwKICAidmVyc2lvbiI6IDYKfQ=="}
   }}
 , {"uuid": "window-switcher@tbepdb", "name": "WindowSwitcher", "pname": "windowswitcher", "description": "One windows circle with Alt+tab. Another one with Super+tab(in my case instant messangers).", "link": "https://extensions.gnome.org/extension/6060/windowswitcher/", "shell_version_map": {
     "42": {"version": "2", "sha256": "1lgs3mr9384az7ybjbxpxz4dndwypz98awyg1qz8k7sfl631w3n7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbXVsdGlwbGUgd2luZG93IGJhc2VkIHN3aXRjaGVycy4iLAogICJleHRlbnNpb24taWQiOiAid2luZG93LXN3aXRjaGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiV2luZG93U3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGJlcGRiL3dpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAid2luZG93LXN3aXRjaGVyQHRiZXBkYiIsCiAgInZlcnNpb24iOiAyCn0="},
@@ -6000,17 +6024,17 @@
     "44": {"version": "4", "sha256": "1nzzsm6ai8b0l8c5xvx83cspm4gzx1n6wfdrbik3g7xam06hr861", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgcGFzdGUgRW1vamlzIGZyb20gdGhlIFNtaWxlIGVtb2ppIHBpY2tlciIsCiAgIm5hbWUiOiAiU21pbGUgLSBjb21wbGVtZW50YXJ5IGV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pam9ydXMvc21pbGUtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzbWlsZS1leHRlbnNpb25AbWlqb3J1cy5pdCIsCiAgInZlcnNpb24iOiA0Cn0="},
     "45": {"version": "7", "sha256": "1fjcwgifggnckk0p7mskpgaz3wm71nz4qgcc1f1jqynwdbidds7l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgcGFzdGUgRW1vamlzIGZyb20gdGhlIFNtaWxlIGVtb2ppIHBpY2tlciIsCiAgIm5hbWUiOiAiU21pbGUgLSBjb21wbGVtZW50YXJ5IGV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taWpvcnVzL3NtaWxlLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic21pbGUtZXh0ZW5zaW9uQG1pam9ydXMuaXQiLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
-, {"uuid": "paperwm@paperwm.github.com", "name": "PaperWM", "pname": "paperwm", "description": "Tiling window manager with a twist!\n\n PaperWM is a Gnome Shell extension which provides scrollable tiling of windows and per monitor workspaces. It's inspired by paper notebooks and tiling window managers.\n\nPlease see our github page to report issues, understand features, and learn how to configure PaperWM to your liking.", "link": "https://extensions.gnome.org/extension/6099/paperwm/", "shell_version_map": {
+, {"uuid": "paperwm@paperwm.github.com", "name": "PaperWM", "pname": "paperwm", "description": "Tiling window manager with a twist!\n\nPaperWM is a Gnome Shell extension which provides scrollable tiling of windows and per monitor workspaces. It's inspired by paper notebooks and tiling window managers.\n\nPlease see our github page to report issues, understand features, and learn how to configure PaperWM to your liking.", "link": "https://extensions.gnome.org/extension/6099/paperwm/", "shell_version_map": {
     "42": {"version": "71", "sha256": "1w626hadaskid3dn39ab4nm9d3sky852rjng4vy4l62a46xvrn7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNzEsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNy4wIgp9"},
     "43": {"version": "71", "sha256": "1w626hadaskid3dn39ab4nm9d3sky852rjng4vy4l62a46xvrn7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNzEsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNy4wIgp9"},
     "44": {"version": "71", "sha256": "1w626hadaskid3dn39ab4nm9d3sky852rjng4vy4l62a46xvrn7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNzEsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNy4wIgp9"},
-    "45": {"version": "75", "sha256": "1sj9g9l5x8a7qf7dzy5l0db9va29k9lj1s5z94gwadcy4b3xhnyw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXBlcndtL1BhcGVyV00iLAogICJ1dWlkIjogInBhcGVyd21AcGFwZXJ3bS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDc1LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDUuOS4xIgp9"}
+    "45": {"version": "79", "sha256": "0mwd9dwqmi0jbg61fx3r7sxzdw25kvnvxccl5y98w1dxx33x0bqj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImpheXRhYWxhIgogIH0sCiAgIm5hbWUiOiAiUGFwZXJXTSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wYXBlcndtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNzksCiAgInZlcnNpb24tbmFtZSI6ICI0NS4xMS4wIgp9"}
   }}
-, {"uuid": "lightshell@dikasp.gitlab", "name": "Light Shell", "pname": "light-shell", "description": "an alternative full light style theme for GNOME Shell", "link": "https://extensions.gnome.org/extension/6102/light-shell/", "shell_version_map": {
+, {"uuid": "lightshell@dikasp.gitlab", "name": "Light Shell", "pname": "light-shell", "description": "the missing full light style gnome shell theme you had been looking for :D\n\nNOTE: later release are merged and continue within Luminus extension. brings various improvement and dark mode integration.\n\nvisit my gitlab to report issue, feature, or just have a look on some nice light style desktop screenshots.", "link": "https://extensions.gnome.org/extension/6102/light-shell/", "shell_version_map": {
     "42": {"version": "11", "sha256": "0fqshl06w2amy8d3gw2car4rab6zqpi79dg5dr05d5swggq1vm8n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGx5IGZ1bGwgbGlnaHQgdGhlbWUgaW50byBkZWZhdWx0IGdub21lIHNoZWxsLCBpbmNsdWRpbmcgbGlnaHQgb3ZlcnZpZXcuIiwKICAibmFtZSI6ICJMaWdodCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2xpZ2h0LXNoZWxsIiwKICAidXVpZCI6ICJsaWdodHNoZWxsQGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "43": {"version": "10", "sha256": "09hyrcg6y1269z7fzix72g09kvvdmy40z57m8yvib8hvl9wxarfc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGx5IGZ1bGwgbGlnaHQgdGhlbWUgaW50byBkZWZhdWx0IGdub21lIHNoZWxsLCBpbmNsdWRpbmcgbGlnaHQgb3ZlcnZpZXcuIiwKICAibmFtZSI6ICJMaWdodCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2xpZ2h0LXNoZWxsIiwKICAidXVpZCI6ICJsaWdodHNoZWxsQGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "44": {"version": "13", "sha256": "0c8prbldkrylv1mkkmkcj606sllksvdan57bf11yw1abwgqy7idm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGx5IGZ1bGwgbGlnaHQgdGhlbWUgaW50byBkZWZhdWx0IEdOT01FIFNoZWxsLCBpbmNsdWRpbmcgbGlnaHQgb3ZlcnZpZXciLAogICJuYW1lIjogIkxpZ2h0IFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Rpa2FzZXR5YXByYXlvZ2kvbGlnaHQtc2hlbGwiLAogICJ1dWlkIjogImxpZ2h0c2hlbGxAZGlrYXNwLmdpdGxhYiIsCiAgInZlcnNpb24iOiAxMwp9"},
-    "45": {"version": "23", "sha256": "1yrqbmkbf9x61y3v9kz3hwgq21vyq4490c2hc61njmydh39b6gca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBmdWxsIGxpZ2h0IHN0eWxlIEdOT01FIFNoZWxsIHRoZW1lIHlvdSBoYWQgYmVlbiBsb29raW5nIGZvci4iLAogICJuYW1lIjogIkxpZ2h0IFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Rpa2FzZXR5YXByYXlvZ2kvbGlnaHQtc2hlbGwiLAogICJ1dWlkIjogImxpZ2h0c2hlbGxAZGlrYXNwLmdpdGxhYiIsCiAgInZlcnNpb24iOiAyMwp9"}
+    "45": {"version": "24", "sha256": "1kg12n5gaxgdypv13dv6l7h0na72n0myc46c3yzzs9wsfyrhcfpg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVEU6IGxhdGVyIHJlbGVhc2UgYXJlIG1lcmdlZCBhbmQgY29udGludWUgd2l0aGluIEx1bWludXMgZXh0ZW5zaW9uLiBicmluZ3MgdmFyaW91cyBpbXByb3ZlbWVudCBhbmQgZGFyayBtb2RlIGludGVncmF0aW9uLiIsCiAgIm5hbWUiOiAiTGlnaHQgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9saWdodC1zaGVsbCIsCiAgInV1aWQiOiAibGlnaHRzaGVsbEBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDI0Cn0="}
   }}
 , {"uuid": "input-source-binder@mifishe.github.com", "name": "Input Source Binder", "pname": "input-source-binder", "description": "Binds shortcuts to input sources (up to 5). Alt+Shift+1 - the first input source, Alt+Shift+2 - the second one and etc.", "link": "https://extensions.gnome.org/extension/6105/input-source-binder/", "shell_version_map": {
     "44": {"version": "3", "sha256": "1gfbwy1nhmk311n5s7464sv0p1lb71wpbx8fp9jb0rarmw2vrshl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJpbmRzIHNob3J0Y3V0cyB0byBpbnB1dCBzb3VyY2VzICh1cCB0byA1KS4gQWx0K1NoaWZ0KzEgLSB0aGUgZmlyc3QgaW5wdXQgc291cmNlLCBBbHQrU2hpZnQrMiAtIHRoZSBzZWNvbmQgb25lIGFuZCBldGMuIiwKICAibmFtZSI6ICJJbnB1dCBTb3VyY2UgQmluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmlucHV0LXNvdXJjZS1iaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlmaXNoZS9nbm9tZS1pbnB1dC1zb3VyY2UtYmluZGVyIiwKICAidXVpZCI6ICJpbnB1dC1zb3VyY2UtYmluZGVyQG1pZmlzaGUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}
@@ -6031,9 +6055,9 @@
 , {"uuid": "lightshellubuntu@dikasp.gitlab", "name": "Light Shell Ubuntu", "pname": "light-shell-ubuntu", "description": "Unofficial Light Shell theme port for use with Ubuntu's default GNOME Shell.\n\nCurrently unmaintained! visit my gitlab for simple tutorial on making your own custom Light Shell with accent color and more.", "link": "https://extensions.gnome.org/extension/6118/light-shell-ubuntu/", "shell_version_map": {
     "44": {"version": "4", "sha256": "1fhw7fqnaqyc8zkshrs6kwjzzqni289lq83gg70yrmib452w7b6d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1cnJlbnRseSB1bm1haW50YWluZWQhIHZpc2l0IG15IGdpdGxhYiBmb3Igc2ltcGxlIHR1dG9yaWFsIG9uIG1ha2luZyB5b3VyIG93biBjdXN0b20gTGlnaHQgU2hlbGwgd2l0aCBhY2NlbnQgY29sb3IgYW5kIG1vcmUuIiwKICAibmFtZSI6ICJMaWdodCBTaGVsbCBVYnVudHUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9saWdodC1zaGVsbCIsCiAgInV1aWQiOiAibGlnaHRzaGVsbHVidW50dUBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
-, {"uuid": "blurmylightshell@dikasp.gitlab", "name": "Blur my Light Shell", "pname": "blur-my-light-shell", "description": "Light Shell theme port for use with Blur my Shell extension", "link": "https://extensions.gnome.org/extension/6121/blur-my-light-shell/", "shell_version_map": {
+, {"uuid": "blurmylightshell@dikasp.gitlab", "name": "Blur my Light Shell", "pname": "blur-my-light-shell", "description": "Light Shell version for use with Blur my Shell extension.\n\nNOTE: later release are merged and continue within Luminus extension. brings various improvement and dark mode integration.\n\nvisit my gitlab to report issue, feature, or just have a look on some nice light style desktop screenshots :D", "link": "https://extensions.gnome.org/extension/6121/blur-my-light-shell/", "shell_version_map": {
     "44": {"version": "4", "sha256": "19rh1137rqdlyfj309kdy21ry9dyl5apr5h2qwylf6wg7m1qa5pw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0IHNoZWxsIHBvcnQgZm9yIHVzZSB3aXRoIGJsdXIgbXkgc2hlbGwgZXh0ZW5zaW9uIChubyBuZWVkIHRvIGN1c3RvbWl6ZSBhbnl0aGluZywganVzdCBoaXQgYmx1ciBteSBzaGVsbCByZXNldCBwcmVmZXJlbmNlcyBidXR0b24gYW5kIGVuam95KS4iLAogICJuYW1lIjogIkJsdXIgbXkgTGlnaHQgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9saWdodC1zaGVsbCIsCiAgInV1aWQiOiAiYmx1cm15bGlnaHRzaGVsbEBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDQKfQ=="},
-    "45": {"version": "10", "sha256": "0w2aw78q3pi53qhydrnzwx538s1cnfahji4rls40kpy9z7w120hk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0IFNoZWxsIHRoZW1lIHBvcnQgZm9yIHVzZSB3aXRoIEJsdXIgbXkgU2hlbGwgZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJCbHVyIG15IExpZ2h0IFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Rpa2FzZXR5YXByYXlvZ2kvbGlnaHQtc2hlbGwiLAogICJ1dWlkIjogImJsdXJteWxpZ2h0c2hlbGxAZGlrYXNwLmdpdGxhYiIsCiAgInZlcnNpb24iOiAxMAp9"}
+    "45": {"version": "11", "sha256": "0x2asdav5b2jd9b4rngcq26yrv39kgvlyhscr8h4h284xd4k11gm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVEU6IGxhdGVyIHJlbGVhc2UgYXJlIG1lcmdlZCBhbmQgY29udGludWUgd2l0aGluIEx1bWludXMgZXh0ZW5zaW9uLiBicmluZ3MgdmFyaW91cyBpbXByb3ZlbWVudCBhbmQgZGFyayBtb2RlIGludGVncmF0aW9uLiIsCiAgIm5hbWUiOiAiQmx1ciBteSBMaWdodCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2xpZ2h0LXNoZWxsIiwKICAidXVpZCI6ICJibHVybXlsaWdodHNoZWxsQGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}
   }}
 , {"uuid": "maximize-lonely-window@MrShuster", "name": "Maximize Lonely Window", "pname": "only-window-maximize", "description": "a gnome extension in which maximizes the only window in a workspace\n\nI work with workspaces, and I want to focus on my work as much as possible and not get distracted with window managment.\n\nThis extension makes it so that if for example there are 2 windows in a workspace and you close one of them, the one that's left will become maximized. if a window is the single window in a workspace, why not make it maximized? makes sense to me.\n\nnovember 1: updated the extension to support multiple monitors", "link": "https://extensions.gnome.org/extension/6127/only-window-maximize/", "shell_version_map": {
     "44": {"version": "2", "sha256": "08bhz358pg7wqmz2a2grhrchjpsqpl8n6fpj6x1y0xljyipksqbp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1heGltaXplIHRoZSBvbmx5IHdpbmRvdyBpbiBhIHdvcmtzcGFjZSIsCiAgIm5hbWUiOiAiTWF4aW1pemUgTG9uZWx5IFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NclNodXN0ZXIvbWF4aW1pemVfbG9uZWx5X3dpbmRvdy8iLAogICJ1dWlkIjogIm1heGltaXplLWxvbmVseS13aW5kb3dATXJTaHVzdGVyIiwKICAidmVyc2lvbiI6IDIKfQ=="},
@@ -6095,11 +6119,16 @@
     "44": {"version": "3", "sha256": "0xj7q0c41586crm855f939s3m9nvcbkdxk6jf9spiy5sjw2b5yca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR1BVIHByb2ZpbGUgc3dpdGNoZXIgZGVzaWduZWQgdG8gd29yayB3aXRoIFBSSU1FIChwcmltZS1zZWxlY3QpLiBGb3JrIG9mIFBSSU1FIEdQVSBQcm9maWxlIFNlbGVjdG9yIiwKICAibmFtZSI6ICJQUklNRSBIZWxwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWi1SYXktRW50ZXJ0YWlubWVudC9QUklNRS1IZWxwZXIiLAogICJ1dWlkIjogIlBSSU1FX0hlbHBlckB6LXJheS5kZSIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
 , {"uuid": "usd-try-gshell@arifesat.github.com", "name": "USD-TRY", "pname": "usd-try", "description": "USD (US Dollar) converted to TRY (Turkish Lira). Updates are received every 30 seconds.\n\nIt is a fork of Dollar-PKR. This extension uses economia.awesomeapi.com.br", "link": "https://extensions.gnome.org/extension/6192/usd-try/", "shell_version_map": {
+    "38": {"version": "8", "sha256": "0g1bcs897k5qyw5qpxmd0w7kb64jqkddk70xqznlvbcycy7x59nh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyaWZlc2F0L1VTRC1UUlktR1NoZWxsIiwKICAidXVpZCI6ICJ1c2QtdHJ5LWdzaGVsbEBhcmlmZXNhdC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="},
+    "40": {"version": "8", "sha256": "0g1bcs897k5qyw5qpxmd0w7kb64jqkddk70xqznlvbcycy7x59nh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyaWZlc2F0L1VTRC1UUlktR1NoZWxsIiwKICAidXVpZCI6ICJ1c2QtdHJ5LWdzaGVsbEBhcmlmZXNhdC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="},
+    "41": {"version": "8", "sha256": "0g1bcs897k5qyw5qpxmd0w7kb64jqkddk70xqznlvbcycy7x59nh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyaWZlc2F0L1VTRC1UUlktR1NoZWxsIiwKICAidXVpZCI6ICJ1c2QtdHJ5LWdzaGVsbEBhcmlmZXNhdC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="},
+    "42": {"version": "8", "sha256": "0g1bcs897k5qyw5qpxmd0w7kb64jqkddk70xqznlvbcycy7x59nh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyaWZlc2F0L1VTRC1UUlktR1NoZWxsIiwKICAidXVpZCI6ICJ1c2QtdHJ5LWdzaGVsbEBhcmlmZXNhdC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="},
     "43": {"version": "4", "sha256": "03dajywpcvvhxcwz8jv1yq230iznh30i2lbxs01gpijl4gir7rhy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJpZmVzYXQvVVNELVRSWS1HU2hlbGwiLAogICJ1dWlkIjogInVzZC10cnktZ3NoZWxsQGFyaWZlc2F0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "44": {"version": "4", "sha256": "03dajywpcvvhxcwz8jv1yq230iznh30i2lbxs01gpijl4gir7rhy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJpZmVzYXQvVVNELVRSWS1HU2hlbGwiLAogICJ1dWlkIjogInVzZC10cnktZ3NoZWxsQGFyaWZlc2F0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "45": {"version": "7", "sha256": "0045lld30k30425scg2f686isnh2sqvwq41n62p9jc2lx4kvh5kg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVTRCAoVVMgRG9sbGFyKSBjb252ZXJ0ZWQgdG8gVFJZIChUdXJraXNoIExpcmEpLiBVcGRhdGVzIGFyZSByZWNlaXZlZCBldmVyeSAzMCBzZWNvbmRzLlxuXG5JdCBpcyBhIGZvcmsgb2YgRG9sbGFyLVBLUi4gVGhpcyBleHRlbnNpb24gdXNlcyBlY29ub21pYS5hd2Vzb21lYXBpLmNvbS5iciIsCiAgIm5hbWUiOiAiVVNELVRSWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmlmZXNhdC9VU0QtVFJZLUdTaGVsbCIsCiAgInV1aWQiOiAidXNkLXRyeS1nc2hlbGxAYXJpZmVzYXQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
 , {"uuid": "hide-dock-in-overview@roslax", "name": "Hide the dock in overview", "pname": "hide-the-dock-in-overview", "description": "hides the dock in overview mode", "link": "https://extensions.gnome.org/extension/6195/hide-the-dock-in-overview/", "shell_version_map": {
+    "43": {"version": "7", "sha256": "1qfjnfgx6vdq1xp5f6j7jf818993xpa2h4lg9y4dnfndclh0yazl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJoaWRlLWRvY2staW4tb3ZlcnZpZXdAcm9zbGF4IiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "44": {"version": "3", "sha256": "12f1qrc9hahjrqxvdviqz99pkgzs75f9k6qnnz4fh9v61bqwi31d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3L3RyZWUvbWFpbiIsCiAgInV1aWQiOiAiaGlkZS1kb2NrLWluLW92ZXJ2aWV3QHJvc2xheCIsCiAgInZlcnNpb24iOiAzCn0="},
     "45": {"version": "6", "sha256": "07bpr6xfpcbyx1braaada0n257fcgyisfpif42c6w9cann6ffq6m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJoaWRlLWRvY2staW4tb3ZlcnZpZXdAcm9zbGF4IiwKICAidmVyc2lvbiI6IDYKfQ=="}
   }}
@@ -6109,7 +6138,7 @@
 , {"uuid": "transmission-daemon-ng@glerro.pm.me", "name": "Transmission Daemon Indicator NG", "pname": "transmission-daemon-indicator-ng", "description": "Monitor and control transmission-daemon or transmission-gtk.\nThe extension use the Transmission RPC protocol for interacting with it.\n\nFragments 2.0 user also can use this extension because it is a frontend for transmission-daemon.\n\nThis extension is only for Gnome Shell version major or equal to 43 because it use libsoup3.", "link": "https://extensions.gnome.org/extension/6204/transmission-daemon-indicator-ng/", "shell_version_map": {
     "43": {"version": "5", "sha256": "1g4dxrw7d9yik2y86l66nm50p7glyym6x0ff005kxmd42cl7dv9y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vbml0b3IgYW5kIGNvbnRyb2wgdHJhbnNtaXNzaW9uLWRhZW1vbiBvciB0cmFuc21pc3Npb24tZ3RrLlxuVGhlIGV4dGVuc2lvbiB1c2UgdGhlIFRyYW5zbWlzc2lvbiBSUEMgcHJvdG9jb2wgZm9yIGludGVyYWN0aW5nIHdpdGggaXQuXG5cbkZyYWdtZW50cyAyLjAgdXNlciBhbHNvIGNhbiB1c2UgdGhpcyBleHRlbnNpb24gYmVjYXVzZSBpdCBpcyBhIGZyb250ZW5kIGZvciB0cmFuc21pc3Npb24tZGFlbW9uLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBvbmx5IGZvciBHbm9tZSBTaGVsbCB2ZXJzaW9uIG1ham9yIG9yIGVxdWFsIHRvIDQzIGJlY2F1c2UgaXQgdXNlIGxpYnNvdXAzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImdsZXJybyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNtaXNzaW9uLWRhZW1vbi1uZyIsCiAgIm5hbWUiOiAiVHJhbnNtaXNzaW9uIERhZW1vbiBJbmRpY2F0b3IgTkciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudHJhbnNtaXNzaW9uLWRhZW1vbi1uZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc21pc3Npb24tZGFlbW9uLW5nIiwKICAidXVpZCI6ICJ0cmFuc21pc3Npb24tZGFlbW9uLW5nQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "44": {"version": "5", "sha256": "1g4dxrw7d9yik2y86l66nm50p7glyym6x0ff005kxmd42cl7dv9y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vbml0b3IgYW5kIGNvbnRyb2wgdHJhbnNtaXNzaW9uLWRhZW1vbiBvciB0cmFuc21pc3Npb24tZ3RrLlxuVGhlIGV4dGVuc2lvbiB1c2UgdGhlIFRyYW5zbWlzc2lvbiBSUEMgcHJvdG9jb2wgZm9yIGludGVyYWN0aW5nIHdpdGggaXQuXG5cbkZyYWdtZW50cyAyLjAgdXNlciBhbHNvIGNhbiB1c2UgdGhpcyBleHRlbnNpb24gYmVjYXVzZSBpdCBpcyBhIGZyb250ZW5kIGZvciB0cmFuc21pc3Npb24tZGFlbW9uLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBvbmx5IGZvciBHbm9tZSBTaGVsbCB2ZXJzaW9uIG1ham9yIG9yIGVxdWFsIHRvIDQzIGJlY2F1c2UgaXQgdXNlIGxpYnNvdXAzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImdsZXJybyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNtaXNzaW9uLWRhZW1vbi1uZyIsCiAgIm5hbWUiOiAiVHJhbnNtaXNzaW9uIERhZW1vbiBJbmRpY2F0b3IgTkciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudHJhbnNtaXNzaW9uLWRhZW1vbi1uZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc21pc3Npb24tZGFlbW9uLW5nIiwKICAidXVpZCI6ICJ0cmFuc21pc3Npb24tZGFlbW9uLW5nQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "45": {"version": "6", "sha256": "0y3kbraz4xp004pxxakb9ihr0m9w50l0nijk00lw0hwin8l38vn8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vbml0b3IgYW5kIGNvbnRyb2wgdHJhbnNtaXNzaW9uLWRhZW1vbiBvciB0cmFuc21pc3Npb24tZ3RrLlxuVGhlIGV4dGVuc2lvbiB1c2UgdGhlIFRyYW5zbWlzc2lvbiBSUEMgcHJvdG9jb2wgZm9yIGludGVyYWN0aW5nIHdpdGggaXQuXG5cbkZyYWdtZW50cyAyLjAgdXNlciBhbHNvIGNhbiB1c2UgdGhpcyBleHRlbnNpb24gYmVjYXVzZSBpdCBpcyBhIGZyb250ZW5kIGZvciB0cmFuc21pc3Npb24tZGFlbW9uLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBvbmx5IGZvciBHbm9tZSBTaGVsbCB2ZXJzaW9uIG1ham9yIG9yIGVxdWFsIHRvIDQzIGJlY2F1c2UgaXQgdXNlIGxpYnNvdXAzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImdsZXJybyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNtaXNzaW9uLWRhZW1vbi1uZyIsCiAgIm5hbWUiOiAiVHJhbnNtaXNzaW9uIERhZW1vbiBJbmRpY2F0b3IgTkciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudHJhbnNtaXNzaW9uLWRhZW1vbi1uZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9nbGVycm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zbWlzc2lvbi1kYWVtb24tbmciLAogICJ1dWlkIjogInRyYW5zbWlzc2lvbi1kYWVtb24tbmdAZ2xlcnJvLnBtLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+    "45": {"version": "7", "sha256": "0yn838z4y3ycf8ydcnc4a1w4abjp1sss0sjpka7kkmqx6vms13hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vbml0b3IgYW5kIGNvbnRyb2wgdHJhbnNtaXNzaW9uLWRhZW1vbiBvciB0cmFuc21pc3Npb24tZ3RrLlxuVGhlIGV4dGVuc2lvbiB1c2UgdGhlIFRyYW5zbWlzc2lvbiBSUEMgcHJvdG9jb2wgZm9yIGludGVyYWN0aW5nIHdpdGggaXQuXG5cbkZyYWdtZW50cyAyLjAgdXNlciBhbHNvIGNhbiB1c2UgdGhpcyBleHRlbnNpb24gYmVjYXVzZSBpdCBpcyBhIGZyb250ZW5kIGZvciB0cmFuc21pc3Npb24tZGFlbW9uLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBvbmx5IGZvciBHbm9tZSBTaGVsbCB2ZXJzaW9uIG1ham9yIG9yIGVxdWFsIHRvIDQzIGJlY2F1c2UgaXQgdXNlIGxpYnNvdXAzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImdsZXJybyIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNtaXNzaW9uLWRhZW1vbi1uZyIsCiAgIm5hbWUiOiAiVHJhbnNtaXNzaW9uIERhZW1vbiBJbmRpY2F0b3IgTkciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudHJhbnNtaXNzaW9uLWRhZW1vbi1uZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc21pc3Npb24tZGFlbW9uLW5nIiwKICAidXVpZCI6ICJ0cmFuc21pc3Npb24tZGFlbW9uLW5nQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
 , {"uuid": "seasonal-clock@johanbove.info", "name": "Seasonal Clock", "pname": "seasonal-clock", "description": "Displays the current Seasonal Clock hour in the Gnome panel", "link": "https://extensions.gnome.org/extension/6210/seasonal-clock/", "shell_version_map": {
     "43": {"version": "2", "sha256": "1kmxrmszrxg4fsvw4qy2npkxfbmqq0s1fki4a7gby7m0d589fa0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBjdXJyZW50IFNlYXNvbmFsIENsb2NrIGhvdXIgaW4gdGhlIEdub21lIHBhbmVsIiwKICAibmFtZSI6ICJTZWFzb25hbCBDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9oYW5ib3ZlL3NlYXNvbmFsY2xvY2stZ25vbWUiLAogICJ1dWlkIjogInNlYXNvbmFsLWNsb2NrQGpvaGFuYm92ZS5pbmZvIiwKICAidmVyc2lvbiI6IDIKfQ=="},
@@ -6151,7 +6180,7 @@
     "45": {"version": "16", "sha256": "08s99nph5zz34g8aaf8r7fh4a8w9mg6lv67cx0ravyfnb6anmc90", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVtb2ppIGNvcHkgaXMgYSB2ZXJzYXRpbGUgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHNpbXBsaWZ5IGVtb2ppIHNlbGVjdGlvbiBhbmQgY2xpcGJvYXJkIG1hbmFnZW1lbnQuXG5cbkl0IGlzIGEgZm9yayBvZiBFbW9qaSBTZWxlY3Rvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlbW9qaS1jb3B5IiwKICAibmFtZSI6ICJFbW9qaSBDb3B5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmVtb2ppLWNvcHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmVsaXBlZnRuL2Vtb2ppLWNvcHkiLAogICJ1dWlkIjogImVtb2ppLWNvcHlAZmVsaXBlZnRuIiwKICAidmVyc2lvbiI6IDE2Cn0="}
   }}
 , {"uuid": "notification-icons@muhammad_ans.github", "name": "Top Panel Notification Icons Revived", "pname": "top-panel-notification-icons-revived", "description": "Displays notifications icon in top panel", "link": "https://extensions.gnome.org/extension/6248/top-panel-notification-icons-revived/", "shell_version_map": {
-    "45": {"version": "4", "sha256": "0s5bk169l1c7xhvrc07g1y6wjdzsgb3bylc1b3r38kjazdbyr3zp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIG5vdGlmaWNhdGlvbnMgaWNvbiBpbiB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBOb3RpZmljYXRpb24gSWNvbnMgUmV2aXZlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24taWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXVoYW1tYWQtYW5zL25vdGlmaWNhdGlvbi1pY29ucyIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLWljb25zQG11aGFtbWFkX2Fucy5naXRodWIiLAogICJ2ZXJzaW9uIjogNAp9"}
+    "45": {"version": "5", "sha256": "19pkkzvkzbr6wwyd405757fjbikk65q4lvvxa82bbnpggkb6nns4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIG5vdGlmaWNhdGlvbnMgaWNvbiBpbiB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBOb3RpZmljYXRpb24gSWNvbnMgUmV2aXZlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3RpZmljYXRpb24taWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL211aGFtbWFkLWFucy9ub3RpZmljYXRpb24taWNvbnMiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi1pY29uc0BtdWhhbW1hZF9hbnMuZ2l0aHViIiwKICAidmVyc2lvbiI6IDUKfQ=="}
   }}
 , {"uuid": "huanghaohhoa@163.com", "name": "Application Tabs", "pname": "application-tabs", "description": "Panel will include a different window tab for the same application that is currently launched.\n1. You can see the application window intuitively\n2. Click tab to jump to the corresponding window immediately\n3. Click the Close button to close the window", "link": "https://extensions.gnome.org/extension/6254/application-tabs/", "shell_version_map": {
     "45": {"version": "14", "sha256": "0jc3sfwhb8l3gk1nf06ryqzahsjidjzw486cmzbbzdxnbqnn210f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBhbmVsIHdpbGwgaW5jbHVkZSBhIGRpZmZlcmVudCB3aW5kb3cgdGFiIGZvciB0aGUgc2FtZSBhcHBsaWNhdGlvbiB0aGF0IGlzIGN1cnJlbnRseSBsYXVuY2hlZC5cbjEuIFlvdSBjYW4gc2VlIHRoZSBhcHBsaWNhdGlvbiB3aW5kb3cgaW50dWl0aXZlbHlcbjIuIENsaWNrIHRhYiB0byBqdW1wIHRvIHRoZSBjb3JyZXNwb25kaW5nIHdpbmRvdyBpbW1lZGlhdGVseVxuMy4gQ2xpY2sgdGhlIENsb3NlIGJ1dHRvbiB0byBjbG9zZSB0aGUgd2luZG93IiwKICAibmFtZSI6ICJBcHBsaWNhdGlvbiBUYWJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFwcF90YWJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hob2FvL2FwcF90YWJzIiwKICAidXVpZCI6ICJodWFuZ2hhb2hob2FAMTYzLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}
@@ -6178,12 +6207,12 @@
 , {"uuid": "battery-usage-wattmeter@halfmexicanhalfamazing.gmail.com", "name": "Battery Usage Wattmeter", "pname": "battery-usage-wattmeter", "description": " Shows charging/discharging consumption (+/-) in Watt next to battery percentage level.\nDefault sync reload set to 4 seconds.\nNo consumption info when battery is full.\nFork of https://github.com/wennaspeedy/batt_consumption_wattmetter", "link": "https://extensions.gnome.org/extension/6278/battery-usage-wattmeter/", "shell_version_map": {
     "43": {"version": "2", "sha256": "06kg17qp07wlpsa5gcl5ah8av6dx8cp2df87xkm39rkj58whf2fp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiBTaG93cyBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRGVmYXVsdCBzeW5jIHJlbG9hZCBzZXQgdG8gNCBzZWNvbmRzLlxuTm8gY29uc3VtcHRpb24gaW5mbyB3aGVuIGJhdHRlcnkgaXMgZnVsbC5cbkZvcmsgb2YgaHR0cHM6Ly9naXRodWIuY29tL3dlbm5hc3BlZWR5L2JhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlciIsCiAgIm5hbWUiOiAiQmF0dGVyeSBVc2FnZSBXYXR0bWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhbGZtZXhpY2FuL2JhdHRlcnktdXNhZ2Utd2F0dG1ldGVyLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYmF0dGVyeS11c2FnZS13YXR0bWV0ZXJAaGFsZm1leGljYW5oYWxmYW1hemluZy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"},
     "44": {"version": "2", "sha256": "06kg17qp07wlpsa5gcl5ah8av6dx8cp2df87xkm39rkj58whf2fp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiBTaG93cyBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRGVmYXVsdCBzeW5jIHJlbG9hZCBzZXQgdG8gNCBzZWNvbmRzLlxuTm8gY29uc3VtcHRpb24gaW5mbyB3aGVuIGJhdHRlcnkgaXMgZnVsbC5cbkZvcmsgb2YgaHR0cHM6Ly9naXRodWIuY29tL3dlbm5hc3BlZWR5L2JhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlciIsCiAgIm5hbWUiOiAiQmF0dGVyeSBVc2FnZSBXYXR0bWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhbGZtZXhpY2FuL2JhdHRlcnktdXNhZ2Utd2F0dG1ldGVyLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYmF0dGVyeS11c2FnZS13YXR0bWV0ZXJAaGFsZm1leGljYW5oYWxmYW1hemluZy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"},
-    "45": {"version": "8", "sha256": "0wryrm43fphdzfqg2crbwa4xzr2697x517yhvsrx97hmflmsnh52", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiBTaG93cyBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRGVmYXVsdCBzeW5jIHJlbG9hZCBzZXQgdG8gNCBzZWNvbmRzLlxuTm8gY29uc3VtcHRpb24gaW5mbyB3aGVuIGJhdHRlcnkgaXMgZnVsbC5cbkZvcmsgb2YgaHR0cHM6Ly9naXRodWIuY29tL3dlbm5hc3BlZWR5L2JhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlciIsCiAgIm5hbWUiOiAiQmF0dGVyeSBVc2FnZSBXYXR0bWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFsZm1leGljYW4vYmF0dGVyeS11c2FnZS13YXR0bWV0ZXItZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJiYXR0ZXJ5LXVzYWdlLXdhdHRtZXRlckBoYWxmbWV4aWNhbmhhbGZhbWF6aW5nLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}
+    "45": {"version": "12", "sha256": "0zrbz33pc3ill8qam7ww13g045xhjfynnzj7mwfxn0kb7y48wpbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiBTaG93cyBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRGVmYXVsdCBzeW5jIHJlbG9hZCBzZXQgdG8gNCBzZWNvbmRzLlxuTm8gY29uc3VtcHRpb24gaW5mbyB3aGVuIGJhdHRlcnkgaXMgZnVsbC5cbkZvcmsgb2YgaHR0cHM6Ly9naXRodWIuY29tL3dlbm5hc3BlZWR5L2JhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlciIsCiAgIm5hbWUiOiAiQmF0dGVyeSBVc2FnZSBXYXR0bWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFsZm1leGljYW4vYmF0dGVyeS11c2FnZS13YXR0bWV0ZXItZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJiYXR0ZXJ5LXVzYWdlLXdhdHRtZXRlckBoYWxmbWV4aWNhbmhhbGZhbWF6aW5nLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}
   }}
-, {"uuid": "azwallpaper@azwallpaper.gitlab.com", "name": "Wallpaper Slideshow", "pname": "wallpaper-slideshow", "description": "Wallpaper slideshow extension.\n\nWhen first installing, make sure to set your slideshow directory in the settings.\n\nRight click on your desktop for easy access to Wallpaper Slideshow settings or to jump to the next background in queue.\n\nThe extension will detect all images in the user defined slideshow directory, randomize the order, and start a slideshow at an interval of your choice. Any file changes, additions, or deletions in the directory will be detected and the slideshow queue will update accordingly.\n\nSlideshow queue is preserved upon shutdown and will pick up from where it left off.\n\nOptionally downloads BING wallpaper of the day. If enabled, the extension will attempt to download the BING wallpaper of the day every 12 hours.", "link": "https://extensions.gnome.org/extension/6281/wallpaper-slideshow/", "shell_version_map": {
+, {"uuid": "azwallpaper@azwallpaper.gitlab.com", "name": "Wallpaper Slideshow", "pname": "wallpaper-slideshow", "description": "Wallpaper slideshow extension. Optionally downloads BING wallpaper of the day.\n\nWhen first installing, make sure to set your slideshow directory in the settings.\n\nRight click on your desktop for easy access to Wallpaper Slideshow settings or to jump to the next background in queue.\n\nThe extension will detect all images in the user defined slideshow directory, randomize the order, and start a slideshow at an interval of your choice. Any file changes, additions, or deletions in the directory will be detected and the slideshow queue will update accordingly.\n\nSlideshow queue is preserved upon shutdown and will pick up from where it left off.", "link": "https://extensions.gnome.org/extension/6281/wallpaper-slideshow/", "shell_version_map": {
     "43": {"version": "7", "sha256": "0d07s6pv96aibcp26gdhg1rif5pfcw7078q1kckris0vihjyw27p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBzbGlkZXNob3cgZXh0ZW5zaW9uIGZvciBHTk9NRS4gT3B0aW9uYWxseSBkb3dubG9hZHMgQklORyB3YWxscGFwZXIgb2YgdGhlIGRheS5cbiBBdXRvbWF0aWNhbGx5IGNoYW5nZXMgdGhlIHdhbGxwYXBlciAoYmFja2dyb3VuZCkgYXQgYSB1c2VyIGRlZmluZWQgaW50ZXJ2YWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp3YWxscGFwZXIiLAogICJuYW1lIjogIldhbGxwYXBlciBTbGlkZXNob3ciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXp3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6d2FsbHBhcGVyIiwKICAidXVpZCI6ICJhendhbGxwYXBlckBhendhbGxwYXBlci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "44": {"version": "7", "sha256": "0d07s6pv96aibcp26gdhg1rif5pfcw7078q1kckris0vihjyw27p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBzbGlkZXNob3cgZXh0ZW5zaW9uIGZvciBHTk9NRS4gT3B0aW9uYWxseSBkb3dubG9hZHMgQklORyB3YWxscGFwZXIgb2YgdGhlIGRheS5cbiBBdXRvbWF0aWNhbGx5IGNoYW5nZXMgdGhlIHdhbGxwYXBlciAoYmFja2dyb3VuZCkgYXQgYSB1c2VyIGRlZmluZWQgaW50ZXJ2YWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp3YWxscGFwZXIiLAogICJuYW1lIjogIldhbGxwYXBlciBTbGlkZXNob3ciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXp3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6d2FsbHBhcGVyIiwKICAidXVpZCI6ICJhendhbGxwYXBlckBhendhbGxwYXBlci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
-    "45": {"version": "6", "sha256": "1fw7jc4h7lcjkd5py1pm49a1fflbmdynvjhzwsfwmfff86smzw4z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBzbGlkZXNob3cgZXh0ZW5zaW9uIGZvciBHTk9NRS4gT3B0aW9uYWxseSBkb3dubG9hZHMgQklORyB3YWxscGFwZXIgb2YgdGhlIGRheS5cbiBBdXRvbWF0aWNhbGx5IGNoYW5nZXMgdGhlIHdhbGxwYXBlciAoYmFja2dyb3VuZCkgYXQgYSB1c2VyIGRlZmluZWQgaW50ZXJ2YWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp3YWxscGFwZXIiLAogICJuYW1lIjogIldhbGxwYXBlciBTbGlkZXNob3ciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXp3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQW5kcmV3WmFlY2gvYXp3YWxscGFwZXIiLAogICJ1dWlkIjogImF6d2FsbHBhcGVyQGF6d2FsbHBhcGVyLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}
+    "45": {"version": "8", "sha256": "13hzijdx6gkmqwx8hmap3s9sw3pdrhk2g4nam31aiabal84ghjmh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBzbGlkZXNob3cgZXh0ZW5zaW9uIGZvciBHTk9NRS4gT3B0aW9uYWxseSBkb3dubG9hZHMgQklORyB3YWxscGFwZXIgb2YgdGhlIGRheS5cbiBBdXRvbWF0aWNhbGx5IGNoYW5nZXMgdGhlIHdhbGxwYXBlciAoYmFja2dyb3VuZCkgYXQgYSB1c2VyIGRlZmluZWQgaW50ZXJ2YWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp3YWxscGFwZXIiLAogICJuYW1lIjogIldhbGxwYXBlciBTbGlkZXNob3ciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXp3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6d2FsbHBhcGVyIiwKICAidXVpZCI6ICJhendhbGxwYXBlckBhendhbGxwYXBlci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}
   }}
 , {"uuid": "energy-rate-indicator@kaetowjj.gmail.com", "name": "Energy Rate Indicator", "pname": "energy-rate-indicator", "description": "Displays the current energy rate in the top bar.", "link": "https://extensions.gnome.org/extension/6290/energy-rate-indicator/", "shell_version_map": {
     "44": {"version": "7", "sha256": "0nyvjh579s4kicwcpxzd5n5xbn2v87p87hzbhmv771llvzhsgz1l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBjdXJyZW50IGVuZXJneSByYXRlIGluIHRoZSB0b3AgYmFyLiIsCiAgIm5hbWUiOiAiRW5lcmd5IFJhdGUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thZXRvd2pqL0dub21lLUV4dGVuc2lvbi1FbmVyZ3ktUmF0ZS1JbmRpY2F0b3IiLAogICJ1dWlkIjogImVuZXJneS1yYXRlLWluZGljYXRvckBrYWV0b3dqai5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}
@@ -6210,7 +6239,7 @@
     "42": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
     "43": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
     "44": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "45": {"version": "11", "sha256": "1dci1d4lnrd5dl1zr52ss5yw466jvc4v0hv8rawysfn9a913kqva", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGVwaGFuZS0xMy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInV1aWQiOiAiZGltLWJhY2tncm91bmQtd2luZG93c0BzdGVwaGFuZS0xMy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}
+    "45": {"version": "13", "sha256": "1379nq1hpzzqcw5gzcbzkg73r2g7kr389bwpd3ka1q3bxs64y7ha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGVwaGFuZS0xMy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInV1aWQiOiAiZGltLWJhY2tncm91bmQtd2luZG93c0BzdGVwaGFuZS0xMy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}
   }}
 , {"uuid": "hide-gnome-power-icon@siren15.github.com", "name": "Hide power button icon", "pname": "hide-power-button-icon", "description": "Hide the power icon in the quick settings area of the Gnome panel.", "link": "https://extensions.gnome.org/extension/6319/hide-power-button-icon/", "shell_version_map": {
     "44": {"version": "2", "sha256": "05x5rz1485fw6id3s18hman0clw7j5q8ff5w71ca49lkcwr5y323", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIHBvd2VyIGljb24gaW4gdGhlIHF1aWNrIHNldHRpbmdzIGFyZWEgb2YgdGhlIEdub21lIHBhbmVsLiIsCiAgIm5hbWUiOiAiSGlkZSBwb3dlciBidXR0b24gaWNvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaXJlbjE1L2hpZGUtZ25vbWUtcG93ZXItaWNvbiIsCiAgInV1aWQiOiAiaGlkZS1nbm9tZS1wb3dlci1pY29uQHNpcmVuMTUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}
@@ -6276,8 +6305,8 @@
 , {"uuid": "perma-clip@susannedev.com", "name": "Perma Clip", "pname": "perma-clip", "description": "Add up to 10 strings to clipboard permanently. Useful for quickly pasting passwords.", "link": "https://extensions.gnome.org/extension/6388/perma-clip/", "shell_version_map": {
     "42": {"version": "3", "sha256": "01pb072dy77h0047hkbnsmdsfmzcwp7mjyglp66g1yvgliawlv09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB1cCB0byAxMCBzdHJpbmdzIHRvIGNsaXBib2FyZCBwZXJtYW5lbnRseS4gVXNlZnVsIGZvciBxdWlja2x5IHBhc3RpbmcgcGFzc3dvcmRzLiIsCiAgIm5hbWUiOiAiUGVybWEgQ2xpcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wZXJtYS1jbGlwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RoZUdyZWdzdGVyMTExMS9wZXJtYS1jbGlwIiwKICAidXVpZCI6ICJwZXJtYS1jbGlwQHN1c2FubmVkZXYuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
-, {"uuid": "simple-workspaces-bar@null-git", "name": "Simple Workspaces Bar", "pname": "simple-workspaces-bar", "description": "Replace 'Activities' button by all current workspaces buttons. Switch workspace or toggle overview by clicking on these buttons.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.\n\nThis is a GNOME 45 compatible fork of https://extensions.gnome.org/extension/3851/workspaces-bar/", "link": "https://extensions.gnome.org/extension/6394/simple-workspaces-bar/", "shell_version_map": {
-    "45": {"version": "2", "sha256": "18n2v9k82sa20kp75vdmw7kq1jzl3qcbkn6k7zab49isw970n8rr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cblRoaXMgaXMgYSBHTk9NRSA0NSBjb21wYXRpYmxlIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzg1MS93b3Jrc3BhY2VzLWJhci8iLAogICJuYW1lIjogIlNpbXBsZSBXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9udWxsLWdpdC9zaW1wbGUtd29ya3NwYWNlcy1iYXIiLAogICJ1dWlkIjogInNpbXBsZS13b3Jrc3BhY2VzLWJhckBudWxsLWdpdCIsCiAgInZlcnNpb24iOiAyCn0="}
+, {"uuid": "simple-workspaces-bar@null-git", "name": "Simple Workspaces Bar", "pname": "simple-workspaces-bar", "description": "Replace 'Activities' button by all current workspaces buttons. Switch workspace or toggle overview by clicking on these buttons.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.\n\nThis is a GNOME 45+ compatible fork of https://extensions.gnome.org/extension/3851/workspaces-bar/", "link": "https://extensions.gnome.org/extension/6394/simple-workspaces-bar/", "shell_version_map": {
+    "45": {"version": "3", "sha256": "0g7ldnm718kf9qy25ssls1b5gx2rv1hq0cwig5cxsgxmirvfjfgq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cblRoaXMgaXMgYSBHTk9NRSA0NSBjb21wYXRpYmxlIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzg1MS93b3Jrc3BhY2VzLWJhci8iLAogICJuYW1lIjogIlNpbXBsZSBXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbnVsbC1naXQvc2ltcGxlLXdvcmtzcGFjZXMtYmFyIiwKICAidXVpZCI6ICJzaW1wbGUtd29ya3NwYWNlcy1iYXJAbnVsbC1naXQiLAogICJ2ZXJzaW9uIjogMwp9"}
   }}
 , {"uuid": "speedinator@liam.moe", "name": "Speedinator", "pname": "speedinator", "description": "Control the speed of gnome-shell animations", "link": "https://extensions.gnome.org/extension/6397/speedinator/", "shell_version_map": {
     "45": {"version": "4", "sha256": "1207ylsqwy47a9x47qg5wzycpbzljx71ps74dl7fjygsb2gik1ml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIHNwZWVkIG9mIGdub21lLXNoZWxsIGFuaW1hdGlvbnMiLAogICJuYW1lIjogIlNwZWVkaW5hdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1vZS5saWFtLnNwZWVkaW5hdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RlaHNxdWlkZ2Uvc3BlZWRpbmF0b3IiLAogICJ1dWlkIjogInNwZWVkaW5hdG9yQGxpYW0ubW9lIiwKICAidmVyc2lvbiI6IDQKfQ=="}
@@ -6318,13 +6347,13 @@
 , {"uuid": "hideclock@kevinbburns.com", "name": "Hide That Clock", "pname": "hide-that-clock", "description": "Simply hides the clock from the panel.", "link": "https://extensions.gnome.org/extension/6439/hide-that-clock/", "shell_version_map": {
     "45": {"version": "2", "sha256": "1ggbh9j95pji6g43mf4859i2sgwfzps2pkmkghgp950mkal71ajl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBoaWRlcyB0aGUgY2xvY2sgZnJvbSB0aGUgcGFuZWwuIiwKICAibmFtZSI6ICJIaWRlIFRoYXQgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2V2aW5iYnVybnMvR25vbWVIaWRlQ2xvY2siLAogICJ1dWlkIjogImhpZGVjbG9ja0BrZXZpbmJidXJucy5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}
   }}
-, {"uuid": "panel-free@fthx", "name": "Panel Free", "pname": "panel-free", "description": "Hide top panel. Panel appears only in overview.\n\n Pro tip: you can stil access to panel's items, just click when your mouse cursor is at the top.", "link": "https://extensions.gnome.org/extension/6454/panel-free/", "shell_version_map": {
-    "45": {"version": "5", "sha256": "0vccagnrwppbzn05qn70hjab3rcz0kq2lhvkx1mf2xf3xxqz6718", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsLiBQYW5lbCBhcHBlYXJzIG9ubHkgaW4gb3ZlcnZpZXcuXG5cbiBQcm8gdGlwOiB5b3UgY2FuIHN0aWwgYWNjZXNzIHRvIHBhbmVsJ3MgaXRlbXMsIGp1c3QgY2xpY2sgd2hlbiB5b3VyIG1vdXNlIGN1cnNvciBpcyBhdCB0aGUgdG9wLiIsCiAgIm5hbWUiOiAiUGFuZWwgRnJlZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3BhbmVsLWZyZWUiLAogICJ1dWlkIjogInBhbmVsLWZyZWVAZnRoeCIsCiAgInZlcnNpb24iOiA1Cn0="}
+, {"uuid": "panel-free@fthx", "name": "Panel Free", "pname": "panel-free", "description": "Hide top panel. Panel appears only in overview.", "link": "https://extensions.gnome.org/extension/6454/panel-free/", "shell_version_map": {
+    "45": {"version": "6", "sha256": "1nzy84vrb71f1v7z6bqwfj6dm6nkg2a6a658vmdz79vmsrljidgz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsLiBQYW5lbCBhcHBlYXJzIG9ubHkgaW4gb3ZlcnZpZXcuIiwKICAibmFtZSI6ICJQYW5lbCBGcmVlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvcGFuZWwtZnJlZSIsCiAgInV1aWQiOiAicGFuZWwtZnJlZUBmdGh4IiwKICAidmVyc2lvbiI6IDYKfQ=="}
   }}
 , {"uuid": "VividShade@mozo64.github.io", "name": "VividShade: Multi-Monitor RGB Dimming Control", "pname": "vividshade-multi-monitor-rgb-dimming-control", "description": "Multimonitor dimming overlay with RGB regulation: extension adds a button with a light bulb icon to your panel. Clicking this button reveals individual sliders for each connected monitor, allowing you to adjust the dimming level. Additionally, you can toggle the color of the dimming effect and customize it using RGB sliders located at the bottom of the menu. \n\nTested with Ubuntu 22.04.3 LTS and GNOME Shell 42.9. \n\nIt is a fork of Dim Desktop 70.", "link": "https://extensions.gnome.org/extension/6463/vividshade-multi-monitor-rgb-dimming-control/", "shell_version_map": {
     "42": {"version": "1", "sha256": "0lw047iqjzmsnz19wajr73n1zprgh8r4mhh9srjkhm65k5h4gfs5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bHRpbW9uaXRvciBkaW1taW5nIG92ZXJsYXkgd2l0aCBSR0IgcmVndWxhdGlvbjogZXh0ZW5zaW9uIGFkZHMgYSBidXR0b24gd2l0aCBhIGxpZ2h0IGJ1bGIgaWNvbiB0byB5b3VyIHBhbmVsLiBDbGlja2luZyB0aGlzIGJ1dHRvbiByZXZlYWxzIGluZGl2aWR1YWwgc2xpZGVycyBmb3IgZWFjaCBjb25uZWN0ZWQgbW9uaXRvciwgYWxsb3dpbmcgeW91IHRvIGFkanVzdCB0aGUgZGltbWluZyBsZXZlbC4gQWRkaXRpb25hbGx5LCB5b3UgY2FuIHRvZ2dsZSB0aGUgY29sb3Igb2YgdGhlIGRpbW1pbmcgZWZmZWN0IGFuZCBjdXN0b21pemUgaXQgdXNpbmcgUkdCIHNsaWRlcnMgbG9jYXRlZCBhdCB0aGUgYm90dG9tIG9mIHRoZSBtZW51LiBcblxuVGVzdGVkIHdpdGggVWJ1bnR1IDIyLjA0LjMgTFRTIGFuZCBHTk9NRSBTaGVsbCA0Mi45LiBcblxuSXQgaXMgYSBmb3JrIG9mIERpbSBEZXNrdG9wIDcwLiIsCiAgIm5hbWUiOiAiVml2aWRTaGFkZTogTXVsdGktTW9uaXRvciBSR0IgRGltbWluZyBDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21vem82NC9WaXZpZFNoYWRlIiwKICAidXVpZCI6ICJWaXZpZFNoYWRlQG1vem82NC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}
   }}
-, {"uuid": "picture-of-the-day@swsnr.de", "name": "Picture of the Day", "pname": "picture-of-the-day", "description": "Get a picture of the day as desktop background.\n\nSupports the following sources:\n\n* NASA Astronomy Picture of the Day (APOD) from https://apod.nasa.gov/apod/astropix.html\n* NASA Earth Observatory Image of the Day from https://earthobservatory.nasa.gov/topic/image-of-the-day\n* Bing from https://www.bing.com\n* Wikimedia from https://commons.wikimedia.org/wiki/Main_Page\n", "link": "https://extensions.gnome.org/extension/6469/picture-of-the-day/", "shell_version_map": {
+, {"uuid": "picture-of-the-day@swsnr.de", "name": "Picture of the Day", "pname": "picture-of-the-day", "description": "Get a picture of the day as desktop background or wallpaper.\n\nSupports the following sources: NASA Astronomy Picture of the Day (APOD), NASA Earth Observatory Image of the Day, Bing, and Wikimedia Featured Image.", "link": "https://extensions.gnome.org/extension/6469/picture-of-the-day/", "shell_version_map": {
     "45": {"version": "20", "sha256": "0fsx12ngzhhzrhrabd5r6d10yyf5x7gg3manm6b09hb1xqwrl7cv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBhIHBpY3R1cmUgb2YgdGhlIGRheSBhcyBkZXNrdG9wIGJhY2tncm91bmQuXG5cblN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgc291cmNlczpcblxuKiBOQVNBIEFzdHJvbm9teSBQaWN0dXJlIG9mIHRoZSBEYXkgKEFQT0QpIGZyb20gaHR0cHM6Ly9hcG9kLm5hc2EuZ292L2Fwb2QvYXN0cm9waXguaHRtbFxuKiBOQVNBIEVhcnRoIE9ic2VydmF0b3J5IEltYWdlIG9mIHRoZSBEYXkgZnJvbSBodHRwczovL2VhcnRob2JzZXJ2YXRvcnkubmFzYS5nb3YvdG9waWMvaW1hZ2Utb2YtdGhlLWRheVxuKiBCaW5nIGZyb20gaHR0cHM6Ly93d3cuYmluZy5jb21cbiogV2lraW1lZGlhIGZyb20gaHR0cHM6Ly9jb21tb25zLndpa2ltZWRpYS5vcmcvd2lraS9NYWluX1BhZ2VcbiIsCiAgImdldHRleHQtZG9tYWluIjogInBpY3R1cmUtb2YtdGhlLWRheUBzd3Nuci5kZSIsCiAgIm5hbWUiOiAiUGljdHVyZSBvZiB0aGUgRGF5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3c25yLXBpY3R1cmUtb2YtdGhlLWRheSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zd3Nuci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGljdHVyZS1vZi10aGUtZGF5IiwKICAidXVpZCI6ICJwaWN0dXJlLW9mLXRoZS1kYXlAc3dzbnIuZGUiLAogICJ2ZXJzaW9uIjogMjAsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4xMyIKfQ=="}
   }}
 , {"uuid": "overviewnow@thesola.io", "name": "Overview Flick", "pname": "overview-flick", "description": "Flick from the right to get the Overview.\n\nThis extension was revived to GNOME 45 from the original, https://extensions.gnome.org/extension/1088/overview-now/\n\nOriginal description:\n\nThis is my first extension. Thanks, GNOME!. Based on \"Slide for Keyboard\", https://extensions.gnome.org/extension/993/slide-for-keyboard/\n\nWhy did I do this? Well, if you do a gesture with your thumb, on your touchscreen, from the right to the center, you'll get the Overview. If you do that, your thumb will be placed in the Desktop selector, so you will be able to move between desktops with your thumb. Perfect! This is also easier to trigger than the default GNOME gesture (three fingers closing).", "link": "https://extensions.gnome.org/extension/6478/overview-flick/", "shell_version_map": {
@@ -6336,8 +6365,8 @@
 , {"uuid": "lockscreen@lfarkas.org", "name": "Lock Screen Button on Panel", "pname": "lock-screen", "description": "Add lock icon to the panel and lock the screen instead of using ctrl-alt-l (fork of https://github.com/sramkrishna/gnome3-extensions)", "link": "https://extensions.gnome.org/extension/6487/lock-screen/", "shell_version_map": {
     "45": {"version": "4", "sha256": "1nbq5rsg854d9ivi9j8ngcf91skblj7p8p4i955bv3kmxixxiwyc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsb2NrIGljb24gdG8gdGhlIHBhbmVsIGFuZCBsb2NrIHRoZSBzY3JlZW4gaW5zdGVhZCBvZiB1c2luZyBjdHJsLWFsdC1sIChmb3JrIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9zcmFta3Jpc2huYS9nbm9tZTMtZXh0ZW5zaW9ucykiLAogICJuYW1lIjogIkxvY2sgU2NyZWVuIEJ1dHRvbiBvbiBQYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sZmFya2FzL2dub21lMy1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsb2Nrc2NyZWVuQGxmYXJrYXMub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
-, {"uuid": "overviewhover@mattdavis90", "name": "Overview Hover", "pname": "overview-hover", "description": "Hover over a window in overview mode to make it active", "link": "https://extensions.gnome.org/extension/6490/overview-hover/", "shell_version_map": {
-    "45": {"version": "2", "sha256": "1afvwrhnihih06gvqaj6qdkngqzs36l3w7bwsnw8mzj7hvifs0fg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdmVyIG92ZXIgYSB3aW5kb3cgaW4gb3ZlcnZpZXcgbW9kZSB0byBtYWtlIGl0IGFjdGl2ZSIsCiAgIm5hbWUiOiAiT3ZlcnZpZXcgSG92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWF0dGRhdmlzOTAvb3ZlcnZpZXctaG92ZXIiLAogICJ1dWlkIjogIm92ZXJ2aWV3aG92ZXJAbWF0dGRhdmlzOTAiLAogICJ2ZXJzaW9uIjogMgp9"}
+, {"uuid": "overviewhover@mattdavis90", "name": "Overview Hover", "pname": "overview-hover", "description": "An extension that aims to simulate the MacOS Mission Control experience.\n\nMain Features\n* Hover a window preview in Gnome Shell's overview to bring that window into focus\n* Window focus won't change until you move your mouse\n* Window focus will revert if your mouse leaves a preview\n* Window focus doesn't change until you begin leaving overview\n\nPlease report issue on Github. Thanks", "link": "https://extensions.gnome.org/extension/6490/overview-hover/", "shell_version_map": {
+    "45": {"version": "3", "sha256": "1mkpwzykp0gc9za22bbs1k16nr0k83wj44hwzsgfjcm37smh96k1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdmVyIG92ZXIgYSB3aW5kb3cgaW4gb3ZlcnZpZXcgbW9kZSB0byBtYWtlIGl0IGFjdGl2ZSIsCiAgIm5hbWUiOiAiT3ZlcnZpZXcgSG92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWF0dGRhdmlzOTAvb3ZlcnZpZXctaG92ZXIiLAogICJ1dWlkIjogIm92ZXJ2aWV3aG92ZXJAbWF0dGRhdmlzOTAiLAogICJ2ZXJzaW9uIjogMwp9"}
   }}
 , {"uuid": "onedrive@client.onedrive.com", "name": "Onedrive Client", "pname": "onedrive", "description": "Show and Control Onedrive Client", "link": "https://extensions.gnome.org/extension/6493/onedrive/", "shell_version_map": {
     "45": {"version": "5", "sha256": "1pjlj22hrr1aks3wy9sxm4lpd7lk38f0jhzdz5vxsb0gg8707925", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW5kIENvbnRyb2wgT25lZHJpdmUgQ2xpZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib25lZHJpdmVAY2xpZW50Lm9uZWRyaXZlLmNvbSIsCiAgIm5hbWUiOiAiT25lZHJpdmUgQ2xpZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R2bWFzdGVyZngvT25lZHJpdmUtR25vbWUtU2hlbGwtNDUiLAogICJ1dWlkIjogIm9uZWRyaXZlQGNsaWVudC5vbmVkcml2ZS5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}
@@ -6361,10 +6390,10 @@
 , {"uuid": "todo-list@speedflyer689.github.com", "name": "Todo list", "pname": "todo-list", "description": "Adds a todo list to the notification panel", "link": "https://extensions.gnome.org/extension/6526/todo-list/", "shell_version_map": {
     "38": {"version": "3", "sha256": "06hqbrk894bi0acilq4vg5a3h3gjmkmi1jv7vmaws0bn7gzqafjx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSB0b2RvIGxpc3QgdG8gdGhlIG5vdGlmaWNhdGlvbiBwYW5lbCIsCiAgIm5hbWUiOiAiVG9kbyBsaXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU3BlZWRmbHllcjY4OS9Hbm9tZS1Ub2RvLUxpc3QiLAogICJ1dWlkIjogInRvZG8tbGlzdEBzcGVlZGZseWVyNjg5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}
   }}
-, {"uuid": "logowidget@github.com.howbea", "name": "Desktop Logo", "pname": "logo-widget", "description": "Add a logo to the desktop. \n This is a fork of Background Logo extension \n https://extensions.gnome.org/extension/889/background-logo/", "link": "https://extensions.gnome.org/extension/6529/logo-widget/", "shell_version_map": {
+, {"uuid": "logowidget@github.com.howbea", "name": "Logo Widget", "pname": "logo-widget", "description": "Add a logo to the desktop. This is a fork of Background Logo extension \n https://extensions.gnome.org/extension/889/background-logo/ \n https://pagure.io/background-logo-extension", "link": "https://extensions.gnome.org/extension/6529/logo-widget/", "shell_version_map": {
     "42": {"version": "10", "sha256": "05xba9h9d1939fgc05xizc0ds0c014ycmwg2ax461pgjy218xfkb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "43": {"version": "10", "sha256": "05xba9h9d1939fgc05xizc0ds0c014ycmwg2ax461pgjy218xfkb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
-    "44": {"version": "10", "sha256": "05xba9h9d1939fgc05xizc0ds0c014ycmwg2ax461pgjy218xfkb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
+    "44": {"version": "13", "sha256": "0qzqk7rfcgyi9hx1yjpmx05bgb9x7bscmbw5r31119pl4q7syn9p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL2xvZ28td2lkZ2V0IiwKICAidXVpZCI6ICJsb2dvd2lkZ2V0QGdpdGh1Yi5jb20uaG93YmVhIiwKICAidmVyc2lvbiI6IDEzCn0="},
     "45": {"version": "12", "sha256": "1zykpyzm7s19db4g2kl3p9nlywzag3rg1331mjq6vscsky2y5iy9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFxuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImhvd2JlYSIKICB9LAogICJuYW1lIjogIkRlc2t0b3AgTG9nbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLXdpZGdldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}
   }}
 , {"uuid": "azan@a7medkhalaf", "name": "xAzanTimes", "pname": "xazantimes", "description": "Azan is an Islamic prayer times extension for Gnome Shell.\nIt's a fork of the extension by faissaloo.\n\nFeatures\n- List compulsory prayer times\n- Optionally display Imsak, Sunrise, Sunset and Midnight\n- Show remaining time for the upcoming prayer.\n- Show current date in Hijri calendar.\n- Display a notification when it's time for prayer.\n- Automatic Geoclue2 location detection\n- Show times in 24 hour and 12 hour formats\n- Hijri date adjusment\n- Iqamah option", "link": "https://extensions.gnome.org/extension/6538/xazantimes/", "shell_version_map": {
@@ -6386,10 +6415,10 @@
     "45": {"version": "2", "sha256": "0plh54aqh27kzp2rnbmsf4rqgr1mdx4nl16fg0ijnhfg700yvl45", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBELUJ1cyBpbnRlcmZhY2UgZm9yIGNoYW5naW5nIGlucHV0IHNvdXJjZXMgdmlhIGNvbW1hbmQiLAogICJuYW1lIjogIklucHV0IHNvdXJjZSBELUJ1cyBpbnRlcmZhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVycnNjaGVyLW9mLXNsZWVwaW5nL2dub21lLWlucHV0LXNvdXJjZS1kYnVzLWludGVyZmFjZSIsCiAgInV1aWQiOiAiaW5wdXQtc291cmNlLWRidXMtaW50ZXJmYWNlQHJhaWRlbl9mdW1vIiwKICAidmVyc2lvbiI6IDIKfQ=="}
   }}
 , {"uuid": "rectangle@acristoffers.me", "name": "Rectangle", "pname": "rectangle", "description": "Magnet/Rectangle like manual tiling", "link": "https://extensions.gnome.org/extension/6553/rectangle/", "shell_version_map": {
-    "42": {"version": "9", "sha256": "0m5hzgihyy2ws5wmqxmzfp59cljqkcyga1i5pnfkqzl28dpnpkbs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiA5Cn0="},
-    "43": {"version": "9", "sha256": "0m5hzgihyy2ws5wmqxmzfp59cljqkcyga1i5pnfkqzl28dpnpkbs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiA5Cn0="},
-    "44": {"version": "9", "sha256": "0m5hzgihyy2ws5wmqxmzfp59cljqkcyga1i5pnfkqzl28dpnpkbs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiA5Cn0="},
-    "45": {"version": "11", "sha256": "1mldn4fgkn0fl6ccjyj8ka9hsqyf0wwrkym7zlfr7gd9a1jd7a16", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FjcmlzdG9mZmVycy9nbm9tZS1yZWN0YW5nbGUiLAogICJ1dWlkIjogInJlY3RhbmdsZUBhY3Jpc3RvZmZlcnMubWUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}
+    "42": {"version": "12", "sha256": "0zmy1v8jgydk6dp6a3rgq6c7yjn2whb3hxwbkxy2063qb9c2vmv4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiAxMgp9"},
+    "43": {"version": "12", "sha256": "0zmy1v8jgydk6dp6a3rgq6c7yjn2whb3hxwbkxy2063qb9c2vmv4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiAxMgp9"},
+    "44": {"version": "12", "sha256": "0zmy1v8jgydk6dp6a3rgq6c7yjn2whb3hxwbkxy2063qb9c2vmv4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWNyaXN0b2ZmZXJzL2dub21lLXJlY3RhbmdsZSIsCiAgInV1aWQiOiAicmVjdGFuZ2xlQGFjcmlzdG9mZmVycy5tZSIsCiAgInZlcnNpb24iOiAxMgp9"},
+    "45": {"version": "15", "sha256": "16m25a8648ihwjl1xwsx4zq9080lbmj3rcm5rz90rc4y8d2lw9jw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25ldC9SZWN0YW5nbGUgbGlrZSBtYW51YWwgdGlsaW5nIiwKICAibmFtZSI6ICJSZWN0YW5nbGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjdGFuZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FjcmlzdG9mZmVycy9nbm9tZS1yZWN0YW5nbGUiLAogICJ1dWlkIjogInJlY3RhbmdsZUBhY3Jpc3RvZmZlcnMubWUiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}
   }}
 , {"uuid": "task-up@fthx", "name": "Task Up", "pname": "task-up", "description": "Task bar. Handles multiple workspaces. Very light extension.\n\n Complete rewrite of BaBar task bar extension, light code only has 300 lines.\n\n Some settings.", "link": "https://extensions.gnome.org/extension/6556/task-up/", "shell_version_map": {
     "45": {"version": "31", "sha256": "0yycjk6lyr81l9vixggy8bkchr0lbghln8i144m9py0003yw1jxr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBIYW5kbGVzIG11bHRpcGxlIHdvcmtzcGFjZXMuIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLlxuXG4gQ29tcGxldGUgcmV3cml0ZSBvZiBCYUJhciB0YXNrIGJhciBleHRlbnNpb24sIGxpZ2h0IGNvZGUgb25seSBoYXMgMzAwIGxpbmVzLlxuXG4gU29tZSBzZXR0aW5ncy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJUYXNrIFVwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2stdXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC90YXNrLXVwIiwKICAidXVpZCI6ICJ0YXNrLXVwQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}
@@ -6403,16 +6432,16 @@
     "45": {"version": "2", "sha256": "056x6bg3z8vqrknyqgr8hfgd8x04nj626jxw30p3qszvazajr8bj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgUmVnaW9uL0xhbmd1YWdlIFRyYXkgVG8gUXVpY2sgU2V0dGluZ3MiLAogICJuYW1lIjogInhMYW5ndWFnZVRyYXkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYTdtZWRraGFsYWYvTGFuZ1RyYXkiLAogICJ1dWlkIjogImxhbmdUcmF5QGE3bWVka2hhbGFmIiwKICAidmVyc2lvbiI6IDIKfQ=="}
   }}
 , {"uuid": "simplebreakreminder@castillodel.com", "name": "Simple Break Reminder", "pname": "simple-break-reminder", "description": "It's important to remember to take a break", "link": "https://extensions.gnome.org/extension/6568/simple-break-reminder/", "shell_version_map": {
-    "45": {"version": "2", "sha256": "07014vqkcxhrndwywbprxkngvvyn0fvwpq7iaky04m8zb88jhk4l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0J3MgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRvIHRha2UgYSBicmVhayIsCiAgIm5hbWUiOiAiU2ltcGxlIEJyZWFrIFJlbWluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZWJyZWFrcmVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2FzdGlsbG9EZWwvc2ltcGxlYnJlYWtyZW1pbmRlciIsCiAgInV1aWQiOiAic2ltcGxlYnJlYWtyZW1pbmRlckBjYXN0aWxsb2RlbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}
+    "45": {"version": "5", "sha256": "07924cprg9bw7has2w6fhizfslzr9cdrjk2am198s4cs7f234i60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0J3MgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRvIHRha2UgYSBicmVhayIsCiAgIm5hbWUiOiAiU2ltcGxlIEJyZWFrIFJlbWluZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZWJyZWFrcmVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2FzdGlsbG9EZWwvc2ltcGxlYnJlYWtyZW1pbmRlciIsCiAgInV1aWQiOiAic2ltcGxlYnJlYWtyZW1pbmRlckBjYXN0aWxsb2RlbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}
   }}
 , {"uuid": "OnTheTop@fablevi.github.io", "name": "On The Top", "pname": "on-the-top", "description": "Always on top button in the top bar", "link": "https://extensions.gnome.org/extension/6571/on-the-top/", "shell_version_map": {
-    "45": {"version": "10", "sha256": "1k2kfclz145xmiby6lc5f4fylqwh0w5mdc4nv4vd4c6ynzpj8rga", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBvbiB0b3AgYnV0dG9uIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogInNob3ctRGJ1dHRvbiIsCiAgImdldHRleHQtZG9tYWluIjogInNob3ctRGJ1dHRvbiIsCiAgIm5hbWUiOiAiT24gVGhlIFRvcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vbi10aGUtdG9wIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZhYmxldmkvT25UaGVUb3AtZmFibGV2aS5naXRodWIuaW8iLAogICJ1dWlkIjogIk9uVGhlVG9wQGZhYmxldmkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "45": {"version": "13", "sha256": "0ag6q2fhhzp5fzfcg2fqc7kyscqzk0q0yx85aqs9swcm19b267ar", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBvbiB0b3AgYnV0dG9uIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogIk9uVGhlVG9wIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiT25UaGVUb3AiLAogICJuYW1lIjogIk9uIFRoZSBUb3AiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub24tdGhlLXRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmFibGV2aS9PblRoZVRvcCIsCiAgInV1aWQiOiAiT25UaGVUb3BAZmFibGV2aS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}
   }}
-, {"uuid": "openbar@neuromorph", "name": "Open Bar", "pname": "open-bar", "description": "Top Bar ( Top Panel ) customization / styling. Open the Top Bar and let the colors 🹠flow.\n\nUpdate (v10/v11) (also btn.child fix in v13/v14) : \n** Please click on 'Apply Menu Styles' (or change some setting) once you upgrade the extension. This will refresh the stylesheet as per your saved settings.\n- Apply style to notification popups\n- Candy-bar palette for panel buttons\n- Menu secondary color override to allow selecting custom (high contrast) colors within the menu\n- Fixes for screencast/ remote sharing/ battery indicators and DND toggle switch etc.\n\nFeedback / suggestions are welcome.\n\nCustomize:\n- Bar Type: Fixed, Floating or Islands / Trilands\n- Bar position, height, margin, paddings\n- Bar foreground color, font\n- Bar background color, transparency, gradient, shadow, highlights\n- Shape rectangular to pill, border width, color, neon glow\n- Menu customizations: foreground, background colors, transparency, border, shadow,  active/selection, hover colors\netc.\n\n* Includes a custom color palette in each color button popup. The palette is auto-generated from the desktop background.\n\nIf the panel/menu isn't looking right, you need to tweak some settings. There are a lot of knobs to allow for differnt setups/tastes. It can also make it a bit overwhelming if you are not familiar with css styles but with some experimentation it will become a lot easier. Here are brief notes:\n- BG/FG color: Background or Foreground colors. Foreground is typically text and icons.\n- Alpha: Transparency for the color. 0 is transparent while 1 is opaque.\n- Panel BG will affect the bar while Tri/Islands BG will affect the individual indicator buttons/combos (in Trilands/Islands mode).\n- Gradient goes from Start color to End color. If you want a single color fading, select same color for both with differnt Alphas. e.g. Setting end color alpha to 0 will form a gradient from Start color to transparent.\n- Highlight color: It is the background color upon hover or focus. You can choose to highlight with border instead.\n- Vertical padding: Controls size of highlights in Mainland/Floating. Also controls size of Islands/Trilands. Increase height if padding squeezes the text.\n- Panel Shadow: a downward shadow for the panel bar. Shadow Spread controls both shadow trasparency and spread together.\n- Border: \n    = Width controls thickness (grows inwards for Islands). Adjust bar height accordingly, after setting border width.  \n    = Radius will control the shape from rectangle at radius 0 to Pill at radius close to bar height. \n    = Neon glow: adds a neon-light like glow to the border. You need dark, relatively opaque background with bright/neon colored, relatively opaque border. Neon will override Panel shadow in Mainland and Floating mode.\n - Menus: \n    = FG/BG, border, highlight are similar to above but for menus.\n    = Selected/active color is for menu items that are active e.g. Today's day in Calendar or WiFi in Quick Settings or even an active menu item with opened submenu. \n    = Shadow applies to the panel menu. Use white/bright color in dark theme and black/dark color in light theme for the effect to show and help with contrast. Using same color as menu border is also a good idea. Use the Alphas for both border and shadow to increase or reduce their effect.\n    = Once enabled, menu settings now also apply as soon as changed. You need to press 'Apply Menu Styles' button to enable the menu style. 'Reset Menu Styles' button will remove all menu styles and revert to your default theme.\n\nLastly, be a tiny bit gentler with the sliders in the settings as they modify the stylesheet behind the scene for every update.", "link": "https://extensions.gnome.org/extension/6580/open-bar/", "shell_version_map": {
-    "42": {"version": "13", "sha256": "1jr879g164jmvv88zmcssmiqdykrdbaagpg6scap4srs4mq9lg98", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAxMwp9"},
-    "43": {"version": "13", "sha256": "1jr879g164jmvv88zmcssmiqdykrdbaagpg6scap4srs4mq9lg98", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAxMwp9"},
-    "44": {"version": "13", "sha256": "1jr879g164jmvv88zmcssmiqdykrdbaagpg6scap4srs4mq9lg98", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAxMwp9"},
-    "45": {"version": "14", "sha256": "05jxag81i6krwxzhi2jqg26rk4armnxys9r64q47s74k59s61yrh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmV1cm9tb3JwaC9vcGVuYmFyIiwKICAidXVpZCI6ICJvcGVuYmFyQG5ldXJvbW9ycGgiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}
+, {"uuid": "openbar@neuromorph", "name": "Open Bar", "pname": "open-bar", "description": "Top Bar ( Top Panel ) customization / styling. Open the Top Bar and let the colors 🹠flow.\n\n**Please report on Github if something is broken due to an update or if you have any suggestions/feedback.\n\nUpdate ( v17/v18 ):\n-  Auto-theming options \n-  Import, export theme settings to file.\n-  Window-Max Bar: Change Bar props when a window is maximized\n-  More settings in Menus: Menu panel and buttons radius, slider tweaks\n\nAuto Theming:\n- Note: If you want to save your current settings, please use Export Settings option before applying Auto-theme. You can import it back whenever needed.\n- Please select Bar properties esp. type of bar before applying a theme. If you change Bar type later, apply theme again.\n- There are three theme options: 'Color', 'Dark', 'Light' and two variations for each: 'Default', 'Alt'.  Try all combinations to see what you prefer for your desktop background.\n- There are more settings in Auto-Theme. You can select if you want the secondary menu BG color to be derived from BG or auto-selected from palette. Also, you can specify any preferred accent color or let the theme choose from the background. \n- Since it is one size fit all solution, 'No Free Lunch' theorem applies. Not all options will work for all backgrounds, so the additional knobs above will help you select the desired one. One of the combinations should work for you at least with little bit tweaking if needed.\n- Once theme is applied, you can further tweak any of the manual settings, as usual, to finetune the theme. \n- There is an option for Auto-refreshing theme when background changes. This will overwrite current theme with newly generated one when background is changed.  \n[ Note: changing the background by right clicking an image file (instead of from settings) may not get detected in newer Gnome. ]\n\nCustomize:\n- Bar Type: Fixed, Floating or Islands / Trilands\n- Bar position, height, margin, paddings\n- Bar foreground color, font\n- Bar background color, transparency, gradient, shadow, highlights, candybar \n- Shape rectangular to pill, border width, color, neon glow\n- Menu customizations: foreground, background colors, transparency, border, shadow,  active/selection, hover colors\netc.\n- Apply to notification popups\n- Includes a custom color palette, under the default palette, in each color button popup. The palette is auto-generated from the desktop background.\n\n\nIf the panel/menu isn't looking right, you need to tweak some settings. There are a lot of knobs to allow for differnt setups/tastes. It can also make it a bit overwhelming if you are not familiar with css styles but with some experimentation it will become a lot easier. Here are brief notes:\n- BG/FG color: Background or Foreground colors. Foreground is typically text and icons.\n- Alpha: Transparency for the color. 0 is transparent while 1 is opaque.\n- Panel BG will affect the bar while Tri/Islands BG will affect the individual indicator buttons/combos (in Trilands/Islands mode).\n- Gradient goes from Start color to End color. If you want a single color fading, select same color for both with differnt Alphas. e.g. Setting end color alpha to 0 will form a gradient from Start color to transparent.\n- Highlight color: It is the background color upon hover or focus. You can choose to highlight with border instead.\n- Vertical padding: Controls size of highlights in Mainland/Floating. Also controls size of Islands/Trilands. Increase height if padding squeezes the text.\n- Panel Shadow: a downward shadow for the panel bar. Shadow Spread controls both shadow trasparency and spread together.\n- Border: \n    = Width controls thickness (grows inwards for Islands). Adjust bar height accordingly, after setting border width.  \n    = Radius will control the shape from rectangle at radius 0 to Pill at radius close to bar height. \n    = Neon glow: adds a neon-light like glow to the border. You need dark, relatively opaque background with bright/neon colored, relatively opaque border. Neon will override Panel shadow in Mainland and Floating mode.\n - Menus: \n    = FG/BG, border, highlight are similar to above but for menus.\n    = Selected/active color is for menu items that are active e.g. Today's day in Calendar or WiFi in Quick Settings or even an active menu item with opened submenu. \n    = Shadow applies to the panel menu. Use white/bright color in dark theme and black/dark color in light theme for the effect to show and help with contrast. Using same color as menu border is also a good idea. Use the Alphas for both border and shadow to increase or reduce their effect.\n    = Once enabled, menu settings now also apply as soon as changed. You need to press 'Apply Menu Styles' button to enable the menu style. 'Reset Menu Styles' button will remove all menu styles and revert to your default theme.\n\nLastly, be a tiny bit gentler with the sliders in the settings as they modify the stylesheet behind the scene for every update.", "link": "https://extensions.gnome.org/extension/6580/open-bar/", "shell_version_map": {
+    "42": {"version": "17", "sha256": "13nx2bg5hh12fcvr7n5d0vm9i74gmc2dyaqsmwfy5053kil9v57i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAxNwp9"},
+    "43": {"version": "17", "sha256": "13nx2bg5hh12fcvr7n5d0vm9i74gmc2dyaqsmwfy5053kil9v57i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAxNwp9"},
+    "44": {"version": "17", "sha256": "13nx2bg5hh12fcvr7n5d0vm9i74gmc2dyaqsmwfy5053kil9v57i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAxNwp9"},
+    "45": {"version": "18", "sha256": "1rcq6k2mpwfaxj8grihkv27af33d11s6kdrk15ws7ca44a7vrqfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmV1cm9tb3JwaC9vcGVuYmFyIiwKICAidXVpZCI6ICJvcGVuYmFyQG5ldXJvbW9ycGgiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}
   }}
 , {"uuid": "auto-power-profile@dmy3k.github.io", "name": "Auto Power Profile", "pname": "auto-power-profile", "description": "Automatically switch between power profiles based on power supply and battery status.", "link": "https://extensions.gnome.org/extension/6583/auto-power-profile/", "shell_version_map": {
     "45": {"version": "3", "sha256": "11y3snf4vslf6z27bp11b3mwa6b4fwcq268lhcrq7zmjgdij79hf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgc3dpdGNoIGJldHdlZW4gcG93ZXIgcHJvZmlsZXMgYmFzZWQgb24gcG93ZXIgc3VwcGx5IGFuZCBiYXR0ZXJ5IHN0YXR1cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvLXBvd2VyLXByb2ZpbGUiLAogICJuYW1lIjogIkF1dG8gUG93ZXIgUHJvZmlsZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvLXBvd2VyLXByb2ZpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG15M2svYXV0by1wb3dlci1wcm9maWxlIiwKICAidXVpZCI6ICJhdXRvLXBvd2VyLXByb2ZpbGVAZG15M2suZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}
@@ -6460,8 +6489,8 @@
     "41": {"version": "6", "sha256": "0mj2l700cj47hpsg62y1rc7z10ycsbkmd3c9fv5xy2rnlsrpv5in", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgJiBIaWRlIGljb25zIGZyb20gdGhlIHRvcCBwYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1pY29uaGlkZXJ1cGRhdGVkIiwKICAibmFtZSI6ICJJY29uIEhpZGVyIFVwZGF0ZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWNvbi1oaWRlci11cGRhdGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHgzNThoY2wvbGludXhpY29uaGlkZXJ1cGRhdGVkIiwKICAidXVpZCI6ICJpY29uLWhpZGVyLXVwZGF0ZWRAbHgzNThoY2wuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
     "42": {"version": "6", "sha256": "0mj2l700cj47hpsg62y1rc7z10ycsbkmd3c9fv5xy2rnlsrpv5in", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgJiBIaWRlIGljb25zIGZyb20gdGhlIHRvcCBwYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1pY29uaGlkZXJ1cGRhdGVkIiwKICAibmFtZSI6ICJJY29uIEhpZGVyIFVwZGF0ZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWNvbi1oaWRlci11cGRhdGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHgzNThoY2wvbGludXhpY29uaGlkZXJ1cGRhdGVkIiwKICAidXVpZCI6ICJpY29uLWhpZGVyLXVwZGF0ZWRAbHgzNThoY2wuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}
   }}
-, {"uuid": "openweather-extension@penguin-teal.github.io", "name": "OpenWeather Refined", "pname": "openweather", "description": "Display weather for the current or a specified location. Fork of OpenWeather.\nWeather data is provided by OpenWeatherMap.org.\nIf location is set to \"My Location,\" location is provided by infoip.io.", "link": "https://extensions.gnome.org/extension/6655/openweather/", "shell_version_map": {
-    "45": {"version": "7", "sha256": "1fkfabfnq1q0hqlx4768lwqsp0q576z3pig24hdbnkx7rhgmm523", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgbG9jYXRpb24gaXMgcHJvdmlkZWQgYnkgaW5mb2lwLmlvLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMjgucjMuZzUzYjg1ZjciLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Blbmd1aW4tdGVhbC9nbm9tZS1vcGVud2VhdGhlciIsCiAgInV1aWQiOiAib3BlbndlYXRoZXItZXh0ZW5zaW9uQHBlbmd1aW4tdGVhbC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNywKICAidmVyc2lvbi1uYW1lIjogIjEyOCIKfQ=="}
+, {"uuid": "openweather-extension@penguin-teal.github.io", "name": "OpenWeather Refined", "pname": "openweather", "description": "Display weather for the current or a specified location. Fork of OpenWeather.\nWeather data is provided by OpenWeatherMap.org.\nIf location is set to \"My Location,\" which is the case by default on laptops, this extension will use location services and Nominatim (from openstreetmap.org), or infoip.io if that failed.", "link": "https://extensions.gnome.org/extension/6655/openweather/", "shell_version_map": {
+    "45": {"version": "9", "sha256": "13q1mricrid2avmb77xhlck282b4rap7liba6fs8iq76d7r87y58", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgd2hpY2ggaXMgdGhlIGNhc2UgYnkgZGVmYXVsdCBvbiBsYXB0b3BzLCB0aGlzIGV4dGVuc2lvbiB3aWxsIHVzZSBsb2NhdGlvbiBzZXJ2aWNlcyBhbmQgTm9taW5hdGltIChmcm9tIG9wZW5zdHJlZXRtYXAub3JnKSwgb3IgaW5mb2lwLmlvIGlmIHRoYXQgZmFpbGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMzAucjEuZzAzM2M2ODIiLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Blbmd1aW4tdGVhbC9nbm9tZS1vcGVud2VhdGhlciIsCiAgInV1aWQiOiAib3BlbndlYXRoZXItZXh0ZW5zaW9uQHBlbmd1aW4tdGVhbC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogOSwKICAidmVyc2lvbi1uYW1lIjogIjEzMCIKfQ=="}
   }}
 , {"uuid": "wallhub@sakithb.github.io", "name": "Wallhub", "pname": "wallhub", "description": "Manage wallpapers with ease", "link": "https://extensions.gnome.org/extension/6661/wallhub/", "shell_version_map": {
     "45": {"version": "5", "sha256": "1m7n8pv2hfjfw3ffmwhmb8khmrymqij0n6p1lgr93cxqm9myj0qx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB3YWxscGFwZXJzIHdpdGggZWFzZSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2FraXRoYiIsCiAgICAia29maSI6ICJzYWtpdGhiIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIndhbGxodWJAc2FraXRoYi5naXRodWIuaW8iLAogICJuYW1lIjogIldhbGxodWIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2FsbGh1YiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zYWtpdGhiL3dhbGxodWIiLAogICJ1dWlkIjogIndhbGxodWJAc2FraXRoYi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNSwKICAidmVyc2lvbi1uYW1lIjogIjEuMS4yIgp9"}
@@ -6470,10 +6499,10 @@
     "45": {"version": "3", "sha256": "0c2xlbrhjczmdqbwr8a1xnibdvhgaq23fd58g2hcw8nmp4jw0sdf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVhc2lseSBtb25pdG9yIGFuZCBtYW5hZ2UgeW91ciBtb3VudGVkIHJlbW92YWJsZSBkcml2ZXMsIGRpc3BsYXlpbmcgc2l6ZXMgYW5kIGhpZ2hsaWdodGluZyB0aGUgbW91bnQgd2l0aCB0aGUgbGVhc3QgdXNlZCBzcGFjZSBpbiB0aGUgdG9wIGJhci5Gb3JrZWQgYW5kIE1vZGlmaWVkIGV4dGVuc2l2ZWx5IGZyb20gUmVtb3ZhYmxlIERyaXZlIE1lbnUgYnkgZm11ZWxsbmVyIiwKICAibmFtZSI6ICJNb3VudCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kaGFyaWhhcmFuLTA1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1tb3VudC1tZXRlciIsCiAgInV1aWQiOiAibW91bnRNZXRlckBkaGFyaWhhcmFuMjYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
 , {"uuid": "Bluetooth-Battery-Meter@maniacx.github.com", "name": "Bluetooth Battery Meter", "pname": "bluetooth-battery-meter", "description": "A Gnome extension featuring indicator icons in system tray, serving as meter for Bluetooth device battery levels and providing detailed battery levels via icon/text in the Bluetooth quick settings menu.\n\nNote:\nCertain Bluetooth devices do not report battery level until Bluez's experimental features are enabled in system. Check Readme for details.", "link": "https://extensions.gnome.org/extension/6670/bluetooth-battery-meter/", "shell_version_map": {
-    "42": {"version": "9", "sha256": "1qq6ni213dmcgp0s0la8k09l982mzivvs33vkvz9qpiiwlwmhh9m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZlYXR1cmluZyBpbmRpY2F0b3IgaWNvbnMgaW4gc3lzdGVtIHRyYXksIHNlcnZpbmcgYXMgbWV0ZXIgZm9yIEJsdWV0b290aCBkZXZpY2UgYmF0dGVyeSBsZXZlbHMgYW5kIHByb3ZpZGluZyBkZXRhaWxlZCBiYXR0ZXJ5IGxldmVscyB2aWEgaWNvbi90ZXh0IGluIHRoZSBCbHVldG9vdGggcXVpY2sgc2V0dGluZ3MgbWVudS5cblxuTm90ZTpcbkNlcnRhaW4gQmx1ZXRvb3RoIGRldmljZXMgZG8gbm90IHJlcG9ydCBiYXR0ZXJ5IGxldmVsIHVudGlsIEJsdWV6J3MgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkIGluIHN5c3RlbS4gQ2hlY2sgUmVhZG1lIGZvciBkZXRhaWxzLiIsCiAgImdldHRleHQtZG9tYWluIjogIkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIEJhdHRlcnkgTWV0ZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9CbHVldG9vdGgtQmF0dGVyeS1NZXRlciIsCiAgInV1aWQiOiAiQmx1ZXRvb3RoLUJhdHRlcnktTWV0ZXJAbWFuaWFjeC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
-    "43": {"version": "9", "sha256": "1qq6ni213dmcgp0s0la8k09l982mzivvs33vkvz9qpiiwlwmhh9m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZlYXR1cmluZyBpbmRpY2F0b3IgaWNvbnMgaW4gc3lzdGVtIHRyYXksIHNlcnZpbmcgYXMgbWV0ZXIgZm9yIEJsdWV0b290aCBkZXZpY2UgYmF0dGVyeSBsZXZlbHMgYW5kIHByb3ZpZGluZyBkZXRhaWxlZCBiYXR0ZXJ5IGxldmVscyB2aWEgaWNvbi90ZXh0IGluIHRoZSBCbHVldG9vdGggcXVpY2sgc2V0dGluZ3MgbWVudS5cblxuTm90ZTpcbkNlcnRhaW4gQmx1ZXRvb3RoIGRldmljZXMgZG8gbm90IHJlcG9ydCBiYXR0ZXJ5IGxldmVsIHVudGlsIEJsdWV6J3MgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkIGluIHN5c3RlbS4gQ2hlY2sgUmVhZG1lIGZvciBkZXRhaWxzLiIsCiAgImdldHRleHQtZG9tYWluIjogIkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIEJhdHRlcnkgTWV0ZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9CbHVldG9vdGgtQmF0dGVyeS1NZXRlciIsCiAgInV1aWQiOiAiQmx1ZXRvb3RoLUJhdHRlcnktTWV0ZXJAbWFuaWFjeC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
-    "44": {"version": "9", "sha256": "1qq6ni213dmcgp0s0la8k09l982mzivvs33vkvz9qpiiwlwmhh9m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZlYXR1cmluZyBpbmRpY2F0b3IgaWNvbnMgaW4gc3lzdGVtIHRyYXksIHNlcnZpbmcgYXMgbWV0ZXIgZm9yIEJsdWV0b290aCBkZXZpY2UgYmF0dGVyeSBsZXZlbHMgYW5kIHByb3ZpZGluZyBkZXRhaWxlZCBiYXR0ZXJ5IGxldmVscyB2aWEgaWNvbi90ZXh0IGluIHRoZSBCbHVldG9vdGggcXVpY2sgc2V0dGluZ3MgbWVudS5cblxuTm90ZTpcbkNlcnRhaW4gQmx1ZXRvb3RoIGRldmljZXMgZG8gbm90IHJlcG9ydCBiYXR0ZXJ5IGxldmVsIHVudGlsIEJsdWV6J3MgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkIGluIHN5c3RlbS4gQ2hlY2sgUmVhZG1lIGZvciBkZXRhaWxzLiIsCiAgImdldHRleHQtZG9tYWluIjogIkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIEJhdHRlcnkgTWV0ZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9CbHVldG9vdGgtQmF0dGVyeS1NZXRlciIsCiAgInV1aWQiOiAiQmx1ZXRvb3RoLUJhdHRlcnktTWV0ZXJAbWFuaWFjeC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
-    "45": {"version": "10", "sha256": "1mxcg8plgsyr6n7k9m1q2nbif3fpxiyj0ld9r22mmif1hmvnqwww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZlYXR1cmluZyBpbmRpY2F0b3IgaWNvbnMgaW4gc3lzdGVtIHRyYXksIHNlcnZpbmcgYXMgbWV0ZXIgZm9yIEJsdWV0b290aCBkZXZpY2UgYmF0dGVyeSBsZXZlbHMgYW5kIHByb3ZpZGluZyBkZXRhaWxlZCBiYXR0ZXJ5IGxldmVscyB2aWEgaWNvbi90ZXh0IGluIHRoZSBCbHVldG9vdGggcXVpY2sgc2V0dGluZ3MgbWVudS5cblxuTm90ZTpcbkNlcnRhaW4gQmx1ZXRvb3RoIGRldmljZXMgZG8gbm90IHJlcG9ydCBiYXR0ZXJ5IGxldmVsIHVudGlsIEJsdWV6J3MgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkIGluIHN5c3RlbS4gQ2hlY2sgUmVhZG1lIGZvciBkZXRhaWxzLiIsCiAgImdldHRleHQtZG9tYWluIjogIkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIEJhdHRlcnkgTWV0ZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW5pYWN4L0JsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAidXVpZCI6ICJCbHVldG9vdGgtQmF0dGVyeS1NZXRlckBtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}
+    "42": {"version": "13", "sha256": "0whvcy54fjq6alvc1q6xs0lis44g1k3sv3ygfpv4559wss6m8c1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZlYXR1cmluZyBpbmRpY2F0b3IgaWNvbnMgaW4gc3lzdGVtIHRyYXksIHNlcnZpbmcgYXMgbWV0ZXIgZm9yIEJsdWV0b290aCBkZXZpY2UgYmF0dGVyeSBsZXZlbHMgYW5kIHByb3ZpZGluZyBkZXRhaWxlZCBiYXR0ZXJ5IGxldmVscyB2aWEgaWNvbi90ZXh0IGluIHRoZSBCbHVldG9vdGggcXVpY2sgc2V0dGluZ3MgbWVudS5cblxuTm90ZTpcbkNlcnRhaW4gQmx1ZXRvb3RoIGRldmljZXMgZG8gbm90IHJlcG9ydCBiYXR0ZXJ5IGxldmVsIHVudGlsIEJsdWV6J3MgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkIGluIHN5c3RlbS4gQ2hlY2sgUmVhZG1lIGZvciBkZXRhaWxzLiIsCiAgImdldHRleHQtZG9tYWluIjogIkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIEJhdHRlcnkgTWV0ZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9CbHVldG9vdGgtQmF0dGVyeS1NZXRlciIsCiAgInV1aWQiOiAiQmx1ZXRvb3RoLUJhdHRlcnktTWV0ZXJAbWFuaWFjeC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="},
+    "43": {"version": "13", "sha256": "0whvcy54fjq6alvc1q6xs0lis44g1k3sv3ygfpv4559wss6m8c1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZlYXR1cmluZyBpbmRpY2F0b3IgaWNvbnMgaW4gc3lzdGVtIHRyYXksIHNlcnZpbmcgYXMgbWV0ZXIgZm9yIEJsdWV0b290aCBkZXZpY2UgYmF0dGVyeSBsZXZlbHMgYW5kIHByb3ZpZGluZyBkZXRhaWxlZCBiYXR0ZXJ5IGxldmVscyB2aWEgaWNvbi90ZXh0IGluIHRoZSBCbHVldG9vdGggcXVpY2sgc2V0dGluZ3MgbWVudS5cblxuTm90ZTpcbkNlcnRhaW4gQmx1ZXRvb3RoIGRldmljZXMgZG8gbm90IHJlcG9ydCBiYXR0ZXJ5IGxldmVsIHVudGlsIEJsdWV6J3MgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkIGluIHN5c3RlbS4gQ2hlY2sgUmVhZG1lIGZvciBkZXRhaWxzLiIsCiAgImdldHRleHQtZG9tYWluIjogIkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIEJhdHRlcnkgTWV0ZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9CbHVldG9vdGgtQmF0dGVyeS1NZXRlciIsCiAgInV1aWQiOiAiQmx1ZXRvb3RoLUJhdHRlcnktTWV0ZXJAbWFuaWFjeC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="},
+    "44": {"version": "13", "sha256": "0whvcy54fjq6alvc1q6xs0lis44g1k3sv3ygfpv4559wss6m8c1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZlYXR1cmluZyBpbmRpY2F0b3IgaWNvbnMgaW4gc3lzdGVtIHRyYXksIHNlcnZpbmcgYXMgbWV0ZXIgZm9yIEJsdWV0b290aCBkZXZpY2UgYmF0dGVyeSBsZXZlbHMgYW5kIHByb3ZpZGluZyBkZXRhaWxlZCBiYXR0ZXJ5IGxldmVscyB2aWEgaWNvbi90ZXh0IGluIHRoZSBCbHVldG9vdGggcXVpY2sgc2V0dGluZ3MgbWVudS5cblxuTm90ZTpcbkNlcnRhaW4gQmx1ZXRvb3RoIGRldmljZXMgZG8gbm90IHJlcG9ydCBiYXR0ZXJ5IGxldmVsIHVudGlsIEJsdWV6J3MgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkIGluIHN5c3RlbS4gQ2hlY2sgUmVhZG1lIGZvciBkZXRhaWxzLiIsCiAgImdldHRleHQtZG9tYWluIjogIkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIEJhdHRlcnkgTWV0ZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9CbHVldG9vdGgtQmF0dGVyeS1NZXRlciIsCiAgInV1aWQiOiAiQmx1ZXRvb3RoLUJhdHRlcnktTWV0ZXJAbWFuaWFjeC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="},
+    "45": {"version": "14", "sha256": "1l86hrcr5fasz63bvyqh9lgnrnwf3czc89krv1ka4z2bn22vzpx4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZlYXR1cmluZyBpbmRpY2F0b3IgaWNvbnMgaW4gc3lzdGVtIHRyYXksIHNlcnZpbmcgYXMgbWV0ZXIgZm9yIEJsdWV0b290aCBkZXZpY2UgYmF0dGVyeSBsZXZlbHMgYW5kIHByb3ZpZGluZyBkZXRhaWxlZCBiYXR0ZXJ5IGxldmVscyB2aWEgaWNvbi90ZXh0IGluIHRoZSBCbHVldG9vdGggcXVpY2sgc2V0dGluZ3MgbWVudS5cblxuTm90ZTpcbkNlcnRhaW4gQmx1ZXRvb3RoIGRldmljZXMgZG8gbm90IHJlcG9ydCBiYXR0ZXJ5IGxldmVsIHVudGlsIEJsdWV6J3MgZXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBlbmFibGVkIGluIHN5c3RlbS4gQ2hlY2sgUmVhZG1lIGZvciBkZXRhaWxzLiIsCiAgImdldHRleHQtZG9tYWluIjogIkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIEJhdHRlcnkgTWV0ZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW5pYWN4L0JsdWV0b290aC1CYXR0ZXJ5LU1ldGVyIiwKICAidXVpZCI6ICJCbHVldG9vdGgtQmF0dGVyeS1NZXRlckBtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}
   }}
 , {"uuid": "xwayland-indicator@swsnr.de", "name": "XWayland Indicator", "pname": "xwayland-indicator", "description": "Indicate whether the focused window uses XWayland.", "link": "https://extensions.gnome.org/extension/6676/xwayland-indicator/", "shell_version_map": {
     "45": {"version": "1", "sha256": "1y86189fhiw44625pkb6aj2gy0im4jdflsh8f9h4x9pc72hnfqmm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlIHdoZXRoZXIgdGhlIGZvY3VzZWQgd2luZG93IHVzZXMgWFdheWxhbmQuIiwKICAibmFtZSI6ICJYV2F5bGFuZCBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3dzbnIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXh3YXlsYW5kIiwKICAidXVpZCI6ICJ4d2F5bGFuZC1pbmRpY2F0b3JAc3dzbnIuZGUiLAogICJ2ZXJzaW9uIjogMSwKICAidmVyc2lvbi1uYW1lIjogIjQ1LjEiCn0="}
@@ -6481,8 +6510,8 @@
 , {"uuid": "power-profile@fthx", "name": "Power profile indicator", "pname": "power-profile-indicator", "description": "Add current power profile in panel's system icons. Very light extension.", "link": "https://extensions.gnome.org/extension/6679/power-profile-indicator/", "shell_version_map": {
     "45": {"version": "2", "sha256": "19rdih8km5qh4fz5imvyb1wcnpl0d4nnccb05k58b1vlfsfm6ahl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBjdXJyZW50IHBvd2VyIHByb2ZpbGUgaW4gcGFuZWwncyBzeXN0ZW0gaWNvbnMuIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUG93ZXIgcHJvZmlsZSBpbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9wb3dlci1wcm9maWxlIiwKICAidXVpZCI6ICJwb3dlci1wcm9maWxlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMgp9"}
   }}
-, {"uuid": "monitor@astraext.github.io", "name": "Astra Monitor", "pname": "astra-monitor", "description": "Astra Monitor is a cutting-edge, fully customizable, and performance-focused monitoring extension for GNOME's top bar. It's an all-in-one solution for those seeking to keep a close eye on their system's performance metrics like CPU, GPU, RAM, disk usage, network statistics, and sensor readings.", "link": "https://extensions.gnome.org/extension/6682/astra-monitor/", "shell_version_map": {
-    "45": {"version": "13", "sha256": "11b0jlngpxplfjzynl68b0rqfin7lkv4glnnd64m4zl56kwfri9p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgbW9uaXRvcmluZyBleHRlbnNpb24gZm9yIEdOT01FJ3MgdG9wIGJhci4gSXQncyBhbiBhbGwtaW4tb25lIHNvbHV0aW9uIGZvciB0aG9zZSBzZWVraW5nIHRvIGtlZXAgYSBjbG9zZSBleWUgb24gdGhlaXIgc3lzdGVtJ3MgcGVyZm9ybWFuY2UgbWV0cmljcyBsaWtlIENQVSwgR1BVLCBSQU0sIGRpc2sgdXNhZ2UsIG5ldHdvcmsgc3RhdGlzdGljcywgYW5kIHNlbnNvciByZWFkaW5ncy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImFzdHJhLmV4dCIsCiAgICAicGF0cmVvbiI6ICJBc3RyYUV4dCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJtb25pdG9yQGFzdHJhZXh0LmdpdGh1Yi5pbyIsCiAgImxpY2Vuc2UiOiAiR1BMLTMuMC1vci1sYXRlciIsCiAgIm5hbWUiOiAiQXN0cmEgTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hc3RyYS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Bc3RyYUV4dC9hc3RyYS1tb25pdG9yIiwKICAidXVpZCI6ICJtb25pdG9yQGFzdHJhZXh0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMywKICAidmVyc2lvbi1uYW1lIjogIjkiCn0="}
+, {"uuid": "monitor@astraext.github.io", "name": "Astra Monitor", "pname": "astra-monitor", "description": "Astra Monitor is a cutting-edge, fully customizable, and performance-focused system monitoring extension for GNOME's top bar. It's an all-in-one solution for those seeking to keep a close eye on their system's performance metrics like CPU, GPU, RAM, disk usage, network statistics, and sensor readings.", "link": "https://extensions.gnome.org/extension/6682/astra-monitor/", "shell_version_map": {
+    "45": {"version": "20", "sha256": "1d4s73adlh5wblyxyzcrb0s24l1m8kw9sh6ijkk00xca2kpwr401", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgc3lzdGVtIG1vbml0b3JpbmcgZXh0ZW5zaW9uIGZvciBHTk9NRSdzIHRvcCBiYXIuIEl0J3MgYW4gYWxsLWluLW9uZSBzb2x1dGlvbiBmb3IgdGhvc2Ugc2Vla2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlIG1ldHJpY3MgbGlrZSBDUFUsIEdQVSwgUkFNLCBkaXNrIHVzYWdlLCBuZXR3b3JrIHN0YXRpc3RpY3MsIGFuZCBzZW5zb3IgcmVhZGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJhc3RyYS5leHQiLAogICAgInBhdHJlb24iOiAiQXN0cmFFeHQiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJsaWNlbnNlIjogIkdQTC0zLjAtb3ItbGF0ZXIiLAogICJuYW1lIjogIkFzdHJhIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXN0cmEtbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXN0cmFFeHQvYXN0cmEtbW9uaXRvciIsCiAgInV1aWQiOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMjAsCiAgInZlcnNpb24tbmFtZSI6ICIxMyIKfQ=="}
   }}
 , {"uuid": "collector-pip@mijorus.it", "name": "Collector - complementary extension", "pname": "collector-complementary-extension", "description": "Allows the Collector window to stay always on top", "link": "https://extensions.gnome.org/extension/6685/collector-complementary-extension/", "shell_version_map": {
     "45": {"version": "1", "sha256": "0ndzxkw8rxjb3nxwyi4znhyq7j2p4yb6vj9gxfdz9hl2kcbsn1k7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0aGUgQ29sbGVjdG9yIHdpbmRvdyB0byBzdGF5IGFsd2F5cyBvbiB0b3AiLAogICJuYW1lIjogIkNvbGxlY3RvciAtIGNvbXBsZW1lbnRhcnkgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pam9ydXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbGxlY3RvciIsCiAgInV1aWQiOiAiY29sbGVjdG9yLXBpcEBtaWpvcnVzLml0IiwKICAidmVyc2lvbiI6IDEKfQ=="}
@@ -6518,7 +6547,7 @@
 , {"uuid": "hide-cursor@elcste.com", "name": "Hide Cursor", "pname": "hide-cursor", "description": "Hide the mouse cursor on inactivity.\n\nFor use on Wayland, since unclutter, unclutter-xfixes and xbanish only work on X11.\n\nNote: This initial version has a hardcoded 5 second timeout. I'd like to add settings to support configuring this value, but I have no definite plans. Collaboration appreciated! (I'd also accept a contribution adding support for hiding the cursor while typing, but I don't have plans for this myself.)", "link": "https://extensions.gnome.org/extension/6727/hide-cursor/", "shell_version_map": {
     "45": {"version": "1", "sha256": "0a20d0f82r26cww79xlaiqmlfh1sqxnqa001pynp4b1wqwq9sdwl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIG1vdXNlIGN1cnNvciBvbiBpbmFjdGl2aXR5LlxuXG5Gb3IgdXNlIG9uIFdheWxhbmQsIHNpbmNlIHVuY2x1dHRlciwgdW5jbHV0dGVyLXhmaXhlcyBhbmQgeGJhbmlzaCBvbmx5IHdvcmsgb24gWDExLlxuXG5Ob3RlOiBUaGlzIGluaXRpYWwgdmVyc2lvbiBoYXMgYSBoYXJkY29kZWQgNSBzZWNvbmQgdGltZW91dC4gSSdkIGxpa2UgdG8gYWRkIHNldHRpbmdzIHRvIHN1cHBvcnQgY29uZmlndXJpbmcgdGhpcyB2YWx1ZSwgYnV0IEkgaGF2ZSBubyBkZWZpbml0ZSBwbGFucy4gQ29sbGFib3JhdGlvbiBhcHByZWNpYXRlZCEgKEknZCBhbHNvIGFjY2VwdCBhIGNvbnRyaWJ1dGlvbiBhZGRpbmcgc3VwcG9ydCBmb3IgaGlkaW5nIHRoZSBjdXJzb3Igd2hpbGUgdHlwaW5nLCBidXQgSSBkb24ndCBoYXZlIHBsYW5zIGZvciB0aGlzIG15c2VsZi4pIiwKICAibmFtZSI6ICJIaWRlIEN1cnNvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbGNzdGUvaGlkZS1jdXJzb3IiLAogICJ1dWlkIjogImhpZGUtY3Vyc29yQGVsY3N0ZS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}
   }}
-, {"uuid": "windows-search-provider@G-dH.github.com", "name": "WSP (Windows Search Provider)", "pname": "wsp-windows-search-provider", "description": "Search and control windows from the Activities overview\n\n- Supports GNOME Shell 42 - 46\n- Open windows can be added to the top of the global search results\n- Adding a customizable prefix in front of the search pattern allows you to display an isolated search view with a complete list of open windows\n- Strict, Fuzzy and RegExp search methods\n- Close and move windows between workspaces\n- Close and move commands can be added at the end of the search pattern\n- Sorting options for the complete list of open windows\n\nVisit the Homepage linked below for more information and instructions.", "link": "https://extensions.gnome.org/extension/6730/wsp-windows-search-provider/", "shell_version_map": {
+, {"uuid": "windows-search-provider@G-dH.github.com", "name": "WSP (Windows Search Provider)", "pname": "wsp-windows-search-provider", "description": "Search and control windows from the Activities overview\n\n- Supports GNOME Shell 42 - 46\n- Open windows can be added to the top of the global search results\n- Adding a customizable prefix in front of the search pattern allows you to display an isolated search view with a complete list of open windows\n- Strict, Fuzzy and RegExp search methods\n- Close and move windows between workspaces using mouse or commands\n- Sorting options for the complete list of open windows\n\nVisit the Homepage linked below for more information and instructions.", "link": "https://extensions.gnome.org/extension/6730/wsp-windows-search-provider/", "shell_version_map": {
     "42": {"version": "12", "sha256": "1l9d6ldrsvackp8pv6qmdjwdxq0p99y6kl00fzm465hggn334mpl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBhbmQgY29udHJvbCB3aW5kb3dzIGZyb20gdGhlIEFjdGl2aXRpZXMgb3ZlcnZpZXciLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAid2luZG93cy1zZWFyY2gtcHJvdmlkZXIiLAogICJuYW1lIjogIldTUCAoV2luZG93cyBTZWFyY2ggUHJvdmlkZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd3Mtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC93aW5kb3dzLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAid2luZG93cy1zZWFyY2gtcHJvdmlkZXJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuNSIKfQ=="},
     "43": {"version": "12", "sha256": "1l9d6ldrsvackp8pv6qmdjwdxq0p99y6kl00fzm465hggn334mpl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBhbmQgY29udHJvbCB3aW5kb3dzIGZyb20gdGhlIEFjdGl2aXRpZXMgb3ZlcnZpZXciLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAid2luZG93cy1zZWFyY2gtcHJvdmlkZXIiLAogICJuYW1lIjogIldTUCAoV2luZG93cyBTZWFyY2ggUHJvdmlkZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd3Mtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC93aW5kb3dzLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAid2luZG93cy1zZWFyY2gtcHJvdmlkZXJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuNSIKfQ=="},
     "44": {"version": "12", "sha256": "1l9d6ldrsvackp8pv6qmdjwdxq0p99y6kl00fzm465hggn334mpl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBhbmQgY29udHJvbCB3aW5kb3dzIGZyb20gdGhlIEFjdGl2aXRpZXMgb3ZlcnZpZXciLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAid2luZG93cy1zZWFyY2gtcHJvdmlkZXIiLAogICJuYW1lIjogIldTUCAoV2luZG93cyBTZWFyY2ggUHJvdmlkZXIpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd3Mtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC93aW5kb3dzLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAid2luZG93cy1zZWFyY2gtcHJvdmlkZXJARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEyLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuNSIKfQ=="},
@@ -6527,7 +6556,69 @@
 , {"uuid": "CrazyInternetSpeedMeter@larryw3i_at_163.com", "name": "Crazy Internet Speed Meter", "pname": "crazy-internet-speed-meter", "description": "Simple and minimal internet speed meter extension for the Gnome Shell", "link": "https://extensions.gnome.org/extension/6733/crazy-internet-speed-meter/", "shell_version_map": {
     "45": {"version": "10", "sha256": "1xkgsnl4akp2x8ls4sf4prn26p1x3sc3lrg16f0l6i1sab4bk85q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkNyYXp5SW50ZXJuZXRTcGVlZE1ldGVyQGxhcnJ5dzNpX2F0XzE2My5jb20iLAogICJuYW1lIjogIkNyYXp5IEludGVybmV0IFNwZWVkIE1ldGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkNyYXp5SW50ZXJuZXRTcGVlZE1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2xhcnJ5d2VpL2NyYXp5aW50ZXJuZXRzcGVlZG1ldGVyIiwKICAidXVpZCI6ICJDcmF6eUludGVybmV0U3BlZWRNZXRlckBsYXJyeXczaV9hdF8xNjMuY29tIiwKICAidmVyc2lvbiI6IDEwLAogICJ2ZXJzaW9uLW5hbWUiOiAiMjAyNDAyMDIuMTYzOCIKfQ=="}
   }}
-, {"uuid": "inhibitionindicator@monyxie.github.io", "name": "Inhibition Indicator", "pname": "inhibition-indicator", "description": "Indicates whether the system is being prevented from going into sleep by programs.", "link": "https://extensions.gnome.org/extension/6736/inhibition-indicator/", "shell_version_map": {
-    "45": {"version": "2", "sha256": "02i755d3g4rn267pnsa4jbjfgywsqv9xqzcb3kpc1zlam34fjf2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB3aGV0aGVyIHRoZSBzeXN0ZW0gaXMgYmVpbmcgcHJldmVudGVkIGZyb20gZ29pbmcgaW50byBzbGVlcCBieSBwcm9ncmFtcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpbmhpYml0aW9uaW5kaWNhdG9yQG1vbnl4aWUuZ2l0aHViLmlvIiwKICAibmFtZSI6ICJJbmhpYml0aW9uIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tb255eGllL2luaGliaXRpb25pbmRpY2F0b3IiLAogICJ1dWlkIjogImluaGliaXRpb25pbmRpY2F0b3JAbW9ueXhpZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMgp9"}
+, {"uuid": "inhibitionindicator@monyxie.github.io", "name": "Inhibition Indicator", "pname": "inhibition-indicator", "description": "Indicates whether the system is prevented from sleeping by programs.", "link": "https://extensions.gnome.org/extension/6736/inhibition-indicator/", "shell_version_map": {
+    "45": {"version": "3", "sha256": "166mpf7ds1x1f57g30kywqcvaadcg9grxp2cfgckknwp72fbyqcy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB3aGV0aGVyIHRoZSBzeXN0ZW0gaXMgcHJldmVudGVkIGZyb20gc2xlZXBpbmcgYnkgcHJvZ3JhbXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaW5oaWJpdGlvbmluZGljYXRvckBtb255eGllLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiSW5oaWJpdGlvbiBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW5oaWJpdGlvbmluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tb255eGllL2luaGliaXRpb25pbmRpY2F0b3IiLAogICJ1dWlkIjogImluaGliaXRpb25pbmRpY2F0b3JAbW9ueXhpZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}
+  }}
+, {"uuid": "blurt@quantiusbenignus.local", "name": "Blurt", "pname": "blurt", "description": "Input text from speech anywhere with the middle mouse button.\n\nHigh-quality offline (multilingual) speech recognition based on whisper.cpp\nSpeech is recorded on a key combination, then transcribed (almost instantly) and sent to the clipboard when (adjustable) silence is detected (indicated on top bar).\nThe back-end tool wsi and whisper.cpp must be both preinstalled. \nFull setup instructions at https://github.com/QuantiusBenignus/blurt", "link": "https://extensions.gnome.org/extension/6742/blurt/", "shell_version_map": {
+    "42": {"version": "2", "sha256": "0d844a9vj9hr7sv4ipylha3j2nnhjvw9gm9zyk371xa2sdjd3kph", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IHRleHQgYW55d2hlcmUgZnJvbSBzcGVlY2ggd2l0aCB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiIsCiAgIm5hbWUiOiAiQmx1cnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmx1cnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9RdWFudGl1c0JlbmlnbnVzL2JsdXJ0IiwKICAidXVpZCI6ICJibHVydEBxdWFudGl1c2JlbmlnbnVzLmxvY2FsIiwKICAidmVyc2lvbiI6IDIKfQ=="},
+    "43": {"version": "2", "sha256": "0d844a9vj9hr7sv4ipylha3j2nnhjvw9gm9zyk371xa2sdjd3kph", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IHRleHQgYW55d2hlcmUgZnJvbSBzcGVlY2ggd2l0aCB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiIsCiAgIm5hbWUiOiAiQmx1cnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmx1cnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9RdWFudGl1c0JlbmlnbnVzL2JsdXJ0IiwKICAidXVpZCI6ICJibHVydEBxdWFudGl1c2JlbmlnbnVzLmxvY2FsIiwKICAidmVyc2lvbiI6IDIKfQ=="},
+    "44": {"version": "2", "sha256": "0d844a9vj9hr7sv4ipylha3j2nnhjvw9gm9zyk371xa2sdjd3kph", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IHRleHQgYW55d2hlcmUgZnJvbSBzcGVlY2ggd2l0aCB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiIsCiAgIm5hbWUiOiAiQmx1cnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmx1cnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9RdWFudGl1c0JlbmlnbnVzL2JsdXJ0IiwKICAidXVpZCI6ICJibHVydEBxdWFudGl1c2JlbmlnbnVzLmxvY2FsIiwKICAidmVyc2lvbiI6IDIKfQ=="},
+    "45": {"version": "5", "sha256": "10ajsindzad9azjfipnq2hzm2s5xliivkvxc9xckxv4hwhi4haks", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IHRleHQgZnJvbSBzcGVlY2ggYW55d2hlcmUgd2l0aCB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiIsCiAgIm5hbWUiOiAiQmx1cnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmx1cnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUXVhbnRpdXNCZW5pZ251cy9ibHVydCIsCiAgInV1aWQiOiAiYmx1cnRAcXVhbnRpdXNiZW5pZ251cy5sb2NhbCIsCiAgInZlcnNpb24iOiA1Cn0="}
+  }}
+, {"uuid": "luminus-shell@dikasp.gitlab", "name": "Luminus Shell", "pname": "luminus-shell", "description": "Brings full light style integration into default gnome-shell.", "link": "https://extensions.gnome.org/extension/6744/luminus-shell/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "05qkb9ycrgbcf5iy71x6n3zf56wmx1iib101f5h307ig3a4mnlc1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBmdWxsIGxpZ2h0IHN0eWxlIGludGVncmF0aW9uIGludG8gZGVmYXVsdCBnbm9tZS1zaGVsbC4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImRpa2FzcCIKICB9LAogICJuYW1lIjogIkx1bWludXMgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9sdW1pbnVzLXByb2plY3QiLAogICJ1dWlkIjogImx1bWludXMtc2hlbGxAZGlrYXNwLmdpdGxhYiIsCiAgInZlcnNpb24iOiAyLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDUuMiIKfQ=="}
+  }}
+, {"uuid": "luminus-shell-y@dikasp.gitlab", "name": "Luminus Shell Y", "pname": "luminus-shell-y", "description": "Brings full light style integration into Blur my Shell extension.", "link": "https://extensions.gnome.org/extension/6747/luminus-shell-y/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "16wgh92pn6i94hcxykyy09km75xk6mmnsvbr0c571mhad928a5b2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBmdWxsIGxpZ2h0IHN0eWxlIGludGVncmF0aW9uIGludG8gQmx1ciBteSBTaGVsbCBleHRlbnNpb24uIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJkaWthc3AiCiAgfSwKICAibmFtZSI6ICJMdW1pbnVzIFNoZWxsIFkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9sdW1pbnVzLXByb2plY3QiLAogICJ1dWlkIjogImx1bWludXMtc2hlbGwteUBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDIsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4yIgp9"}
+  }}
+, {"uuid": "luminus-desktop@dikasp.gitlab", "name": "Luminus Desktop", "pname": "luminus-desktop", "description": "Brings global light mode integration into gnome-shell and GTK apps.", "link": "https://extensions.gnome.org/extension/6750/luminus-desktop/", "shell_version_map": {
+    "45": {"version": "3", "sha256": "1ai9rzr0lx8myy6cqfsm4cck5l1v5yq8fwfil0rawpnzlbr6rmgk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBnbG9iYWwgZnVsbCBsaWdodCBzdHlsZSBpbnRlZ3JhdGlvbiBpbnRvIGdub21lLXNoZWxsIGFuZCBHVEsgYXBwcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImRpa2FzcCIKICB9LAogICJuYW1lIjogIkx1bWludXMgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2x1bWludXMtcHJvamVjdCIsCiAgInV1aWQiOiAibHVtaW51cy1kZXNrdG9wQGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMywKICAidmVyc2lvbi1uYW1lIjogIjQ1LjIiCn0="}
+  }}
+, {"uuid": "slacker@hedgie.tech", "name": "Slacker", "pname": "slacker", "description": "Improve Slack web or pwa notifications", "link": "https://extensions.gnome.org/extension/6756/slacker/", "shell_version_map": {
+    "45": {"version": "1", "sha256": "1kyfdrxfiwnqjvjjsvyvpsd64dlcqvl685add8zawb46xmmbigz0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgU2xhY2sgd2ViIG9yIHB3YSBub3RpZmljYXRpb25zIiwKICAibmFtZSI6ICJTbGFja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNsYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVkZ2llaW5zb2Nrcy9nbm9tZS1leHRlbnNpb24tc2xhY2tlciIsCiAgInV1aWQiOiAic2xhY2tlckBoZWRnaWUudGVjaCIsCiAgInZlcnNpb24iOiAxCn0="}
+  }}
+, {"uuid": "mypubip@snirt", "name": "MyPubIP", "pname": "mypubip", "description": "A simple extension that let the user to view and copy the public IPv4 and IPv6 address, by using ipify.org services.", "link": "https://extensions.gnome.org/extension/6765/mypubip/", "shell_version_map": {
+    "45": {"version": "4", "sha256": "0rn93gvq94md34l36y11lrccxj7hpi8v9vidaw3d70hj00f7s3la", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGV4dGVuc2lvbiB0aGF0IGxldCB0aGUgdXNlciB0byB2aWV3IGFuZCBjb3B5IHRoZSBwdWJsaWMgSVB2NCBhbmQgSVB2NiBhZGRyZXNzLCBieSB1c2luZyBpcGlmeS5vcmcgc2VydmljZXMuIiwKICAibmFtZSI6ICJNeVB1YklQIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NuaXJ0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1teXB1YmlwIiwKICAidXVpZCI6ICJteXB1YmlwQHNuaXJ0IiwKICAidmVyc2lvbiI6IDQKfQ=="}
+  }}
+, {"uuid": "lomotion@lorens.com", "name": "Lomotion", "pname": "lomotion", "description": "Lomotion extension lets you switch and manage Gnome's workspaces seamlessly\n\nHow ?\n\t- Switch to the previous workspace with[CapsLock + A] and the next with [CapsLock + S]\n\t- Move the current window to the previous workspace with [CapsLock + D] or the next with [CapsLock + F]\n\t- Switch between windows in the current workspace [CapsLock + E]\n\t- Show workspaces overview hit [CapsLock] once\n\t- Show applications hit [CapsLock] twice\n\nWhy ?!\n\t- One-handed control, manage your workspaces with just one hand, boosting your efficiency and focus.\n\t- Enjoy immersive fullscreen applications without worrying about switching workspaces.\n\t- intutive, simple and fast.\n\nTip\n\t- For applications with tabs like Visual Studio Code, web browsers, and many others, you can use keyboard shortcuts to switch between tabs, you can set switch to previous tab [CapsLock + Q] and the next with [CapsLock + W]", "link": "https://extensions.gnome.org/extension/6768/lomotion/", "shell_version_map": {
+    "45": {"version": "1", "sha256": "0vgpfgl8rycc8wklaih53sl5fpc7ybic1jhfj7na2cnya5f9k1x8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvbW90aW9uIGV4dGVuc2lvbiBsZXRzIHlvdSBzd2l0Y2ggYW5kIG1hbmFnZSBHbm9tZSdzIHdvcmtzcGFjZXMgc2VhbWxlc3NseVxuXG5Ib3cgP1xuXHQtIFN3aXRjaCB0byB0aGUgcHJldmlvdXMgd29ya3NwYWNlIHdpdGhbQ2Fwc0xvY2sgKyBBXSBhbmQgdGhlIG5leHQgd2l0aCBbQ2Fwc0xvY2sgKyBTXVxuXHQtIE1vdmUgdGhlIGN1cnJlbnQgd2luZG93IHRvIHRoZSBwcmV2aW91cyB3b3Jrc3BhY2Ugd2l0aCBbQ2Fwc0xvY2sgKyBEXSBvciB0aGUgbmV4dCB3aXRoIFtDYXBzTG9jayArIEZdXG5cdC0gU3dpdGNoIGJldHdlZW4gd2luZG93cyBpbiB0aGUgY3VycmVudCB3b3Jrc3BhY2UgW0NhcHNMb2NrICsgRV1cblx0LSBTaG93IHdvcmtzcGFjZXMgb3ZlcnZpZXcgaGl0IFtDYXBzTG9ja10gb25jZVxuXHQtIFNob3cgYXBwbGljYXRpb25zIGhpdCBbQ2Fwc0xvY2tdIHR3aWNlXG5cbldoeSA/IVxuXHQtIE9uZS1oYW5kZWQgY29udHJvbCwgbWFuYWdlIHlvdXIgd29ya3NwYWNlcyB3aXRoIGp1c3Qgb25lIGhhbmQsIGJvb3N0aW5nIHlvdXIgZWZmaWNpZW5jeSBhbmQgZm9jdXMuXG5cdC0gRW5qb3kgaW1tZXJzaXZlIGZ1bGxzY3JlZW4gYXBwbGljYXRpb25zIHdpdGhvdXQgd29ycnlpbmcgYWJvdXQgc3dpdGNoaW5nIHdvcmtzcGFjZXMuXG5cdC0gaW50dXRpdmUsIHNpbXBsZSBhbmQgZmFzdC5cblxuVGlwXG5cdC0gRm9yIGFwcGxpY2F0aW9ucyB3aXRoIHRhYnMgbGlrZSBWaXN1YWwgU3R1ZGlvIENvZGUsIHdlYiBicm93c2VycywgYW5kIG1hbnkgb3RoZXJzLCB5b3UgY2FuIHVzZSBrZXlib2FyZCBzaG9ydGN1dHMgdG8gc3dpdGNoIGJldHdlZW4gdGFicywgeW91IGNhbiBzZXQgc3dpdGNoIHRvIHByZXZpb3VzIHRhYiBbQ2Fwc0xvY2sgKyBRXSBhbmQgdGhlIG5leHQgd2l0aCBbQ2Fwc0xvY2sgKyBXXSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAibG9yZW5zIgogIH0sCiAgIm5hbWUiOiAiTG9tb3Rpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbG9yZW5zLW9zbWFuLWRldi9sb21vdGlvbiIsCiAgInV1aWQiOiAibG9tb3Rpb25AbG9yZW5zLmNvbSIsCiAgInZlcnNpb24iOiAxLAogICJ2ZXJzaW9uLW5hbWUiOiAiMSIKfQ=="}
+  }}
+, {"uuid": "HideItems@fablevi.github.io", "name": "Hide Items", "pname": "hide-items", "description": "Hide everything on the right box exept this button and Settings window", "link": "https://extensions.gnome.org/extension/6771/hide-items/", "shell_version_map": {
+    "45": {"version": "6", "sha256": "1ckl0g1w1f8fzqciifc91a474n1vncdvdbxjasam9621l1k6mz6w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgZXZlcnl0aGluZyBvbiB0aGUgcmlnaHQgYm94IGV4ZXB0IHRoaXMgYnV0dG9uIGFuZCBTZXR0aW5ncyB3aW5kb3ciLAogICJleHRlbnNpb24taWQiOiAiSGlkZUl0ZW1zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGlkZUl0ZW1zIiwKICAibmFtZSI6ICJIaWRlIEl0ZW1zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhpZGVJdGVtcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmFibGV2aS9IaWRlSXRlbXMiLAogICJ1dWlkIjogIkhpZGVJdGVtc0BmYWJsZXZpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}
+  }}
+, {"uuid": "signalshell@github.com.howbea", "name": "Signal Shell", "pname": "signal-shell", "description": "Load -dark, -light and -high-contrast stylesheets from ~/.config/gnome-shell", "link": "https://extensions.gnome.org/extension/6774/signal-shell/", "shell_version_map": {
+    "40": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
+    "41": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
+    "42": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
+    "43": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
+    "44": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"}
+  }}
+, {"uuid": "crypto-tracker@gongorgojo.com", "name": "Simple Crypto Tracker", "pname": "crypto-trackergongorgojocom", "description": "This is a simple Gnome-Shell extension designed to track cryptocurrency prices.\n\nSupported pairs include:\n- BTC/USD\n- BTC/EUR\n- ETH/USD\n- ETH/EUR  \n\nThe extension refreshes prices every 5 minutes using the CoinGecko API to retrieve data.", "link": "https://extensions.gnome.org/extension/6777/crypto-trackergongorgojocom/", "shell_version_map": {
+    "42": {"version": "3", "sha256": "1hbgfnflra98l31rm0vb6x6h69x6621nyyfdr653kp8f4gi4711z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBzaW1wbGUgR25vbWUtU2hlbGwgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHRyYWNrIGNyeXB0b2N1cnJlbmN5IHByaWNlcy5cblxuU3VwcG9ydGVkIHBhaXJzIGluY2x1ZGU6XG4tIEJUQy9VU0Rcbi0gQlRDL0VVUlxuLSBFVEgvVVNEXG4tIEVUSC9FVVIgIFxuXG5UaGUgZXh0ZW5zaW9uIHJlZnJlc2hlcyBwcmljZXMgZXZlcnkgNSBtaW51dGVzIHVzaW5nIHRoZSBDb2luR2Vja28gQVBJIHRvIHJldHJpZXZlIGRhdGEuIiwKICAibmFtZSI6ICJTaW1wbGUgQ3J5cHRvIFRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Hb256YWxvR29yZ29qby9Hbm9tZS1TaGVsbC1DcnlwdG8tVHJhY2tlciIsCiAgInV1aWQiOiAiY3J5cHRvLXRyYWNrZXJAZ29uZ29yZ29qby5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
+    "43": {"version": "3", "sha256": "1hbgfnflra98l31rm0vb6x6h69x6621nyyfdr653kp8f4gi4711z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBzaW1wbGUgR25vbWUtU2hlbGwgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHRyYWNrIGNyeXB0b2N1cnJlbmN5IHByaWNlcy5cblxuU3VwcG9ydGVkIHBhaXJzIGluY2x1ZGU6XG4tIEJUQy9VU0Rcbi0gQlRDL0VVUlxuLSBFVEgvVVNEXG4tIEVUSC9FVVIgIFxuXG5UaGUgZXh0ZW5zaW9uIHJlZnJlc2hlcyBwcmljZXMgZXZlcnkgNSBtaW51dGVzIHVzaW5nIHRoZSBDb2luR2Vja28gQVBJIHRvIHJldHJpZXZlIGRhdGEuIiwKICAibmFtZSI6ICJTaW1wbGUgQ3J5cHRvIFRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Hb256YWxvR29yZ29qby9Hbm9tZS1TaGVsbC1DcnlwdG8tVHJhY2tlciIsCiAgInV1aWQiOiAiY3J5cHRvLXRyYWNrZXJAZ29uZ29yZ29qby5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
+    "44": {"version": "3", "sha256": "1hbgfnflra98l31rm0vb6x6h69x6621nyyfdr653kp8f4gi4711z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBzaW1wbGUgR25vbWUtU2hlbGwgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHRyYWNrIGNyeXB0b2N1cnJlbmN5IHByaWNlcy5cblxuU3VwcG9ydGVkIHBhaXJzIGluY2x1ZGU6XG4tIEJUQy9VU0Rcbi0gQlRDL0VVUlxuLSBFVEgvVVNEXG4tIEVUSC9FVVIgIFxuXG5UaGUgZXh0ZW5zaW9uIHJlZnJlc2hlcyBwcmljZXMgZXZlcnkgNSBtaW51dGVzIHVzaW5nIHRoZSBDb2luR2Vja28gQVBJIHRvIHJldHJpZXZlIGRhdGEuIiwKICAibmFtZSI6ICJTaW1wbGUgQ3J5cHRvIFRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Hb256YWxvR29yZ29qby9Hbm9tZS1TaGVsbC1DcnlwdG8tVHJhY2tlciIsCiAgInV1aWQiOiAiY3J5cHRvLXRyYWNrZXJAZ29uZ29yZ29qby5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}
+  }}
+, {"uuid": "Airpod-Battery-Monitor@maniacx.github.com", "name": "Airpod Battery Monitor", "pname": "airpod-battery-monitor", "description": "A Gnome extension for monitoring battery level of AirPods and Beats Bluetooth headset\n\nNote: This extension is not compatible with Bluetooth configurations in BR/EDR-only mode. Dual mode is required. Please refer to the Readme documentation for more information.\n\nhttps://maniacx.github.io/Airpod-Battery-Monitor/", "link": "https://extensions.gnome.org/extension/6778/airpod-battery-monitor/", "shell_version_map": {
+    "43": {"version": "9", "sha256": "00ypq3n2hfx0qf5ggv1fmx19kijyla771jy0gwcdm77nzwhs5y3r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGJhdHRlcnkgbGV2ZWwgb2YgQWlyUG9kcyBhbmQgQmVhdHMgQmx1ZXRvb3RoIGhlYWRzZXRcblxuTm90ZTogVGhpcyBleHRlbnNpb24gaXMgbm90IGNvbXBhdGlibGUgd2l0aCBCbHVldG9vdGggY29uZmlndXJhdGlvbnMgaW4gQlIvRURSLW9ubHkgbW9kZS4gRHVhbCBtb2RlIGlzIHJlcXVpcmVkLiBQbGVhc2UgcmVmZXIgdG8gdGhlIFJlYWRtZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuXG5odHRwczovL21hbmlhY3guZ2l0aHViLmlvL0FpcnBvZC1CYXR0ZXJ5LU1vbml0b3IvIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiQWlycG9kLUJhdHRlcnktTW9uaXRvckBtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkFpcnBvZCBCYXR0ZXJ5IE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuQWlycG9kLUJhdHRlcnktTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9BaXJwb2QtQmF0dGVyeS1Nb25pdG9yIiwKICAidXVpZCI6ICJBaXJwb2QtQmF0dGVyeS1Nb25pdG9yQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
+    "44": {"version": "9", "sha256": "00ypq3n2hfx0qf5ggv1fmx19kijyla771jy0gwcdm77nzwhs5y3r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGJhdHRlcnkgbGV2ZWwgb2YgQWlyUG9kcyBhbmQgQmVhdHMgQmx1ZXRvb3RoIGhlYWRzZXRcblxuTm90ZTogVGhpcyBleHRlbnNpb24gaXMgbm90IGNvbXBhdGlibGUgd2l0aCBCbHVldG9vdGggY29uZmlndXJhdGlvbnMgaW4gQlIvRURSLW9ubHkgbW9kZS4gRHVhbCBtb2RlIGlzIHJlcXVpcmVkLiBQbGVhc2UgcmVmZXIgdG8gdGhlIFJlYWRtZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuXG5odHRwczovL21hbmlhY3guZ2l0aHViLmlvL0FpcnBvZC1CYXR0ZXJ5LU1vbml0b3IvIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiQWlycG9kLUJhdHRlcnktTW9uaXRvckBtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkFpcnBvZCBCYXR0ZXJ5IE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuQWlycG9kLUJhdHRlcnktTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9BaXJwb2QtQmF0dGVyeS1Nb25pdG9yIiwKICAidXVpZCI6ICJBaXJwb2QtQmF0dGVyeS1Nb25pdG9yQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
+    "45": {"version": "10", "sha256": "04bfpwhvkz55yilaw96dbkppn4i0h08x7v3wa4wplmhdlpslrah1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGJhdHRlcnkgbGV2ZWwgb2YgQWlyUG9kcyBhbmQgQmVhdHMgQmx1ZXRvb3RoIGhlYWRzZXRcblxuTm90ZTogVGhpcyBleHRlbnNpb24gaXMgbm90IGNvbXBhdGlibGUgd2l0aCBCbHVldG9vdGggY29uZmlndXJhdGlvbnMgaW4gQlIvRURSLW9ubHkgbW9kZS4gRHVhbCBtb2RlIGlzIHJlcXVpcmVkLiBQbGVhc2UgcmVmZXIgdG8gdGhlIFJlYWRtZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuXG5odHRwczovL21hbmlhY3guZ2l0aHViLmlvL0FpcnBvZC1CYXR0ZXJ5LU1vbml0b3IvIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiQWlycG9kLUJhdHRlcnktTW9uaXRvckBtYW5pYWN4LmdpdGh1Yi5jb20iLAogICJuYW1lIjogIkFpcnBvZCBCYXR0ZXJ5IE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuQWlycG9kLUJhdHRlcnktTW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFuaWFjeC9BaXJwb2QtQmF0dGVyeS1Nb25pdG9yIiwKICAidXVpZCI6ICJBaXJwb2QtQmF0dGVyeS1Nb25pdG9yQG1hbmlhY3guZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}
+  }}
+, {"uuid": "night-light-slider-updated@vilsbeg.codeberg.org", "name": "Night Light Slider Updated", "pname": "night-light-slider-updated", "description": "Kiyui's Night Light Slider updated for GNOME 45. A GNOME extension to manage the built-in night light temperature. Original implementation: https://codeberg.org/vilsbeg/night-light-slider-updated/", "link": "https://extensions.gnome.org/extension/6781/night-light-slider-updated/", "shell_version_map": {
+    "45": {"version": "9", "sha256": "1c88dzp9k5krd5b4569s9c4aas86djzqwahdif5kaymi7x8cp9rs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpeXVpJ3MgTmlnaHQgTGlnaHQgU2xpZGVyIHVwZGF0ZWQgZm9yIEdOT01FIDQ1LiBBIEdOT01FIGV4dGVuc2lvbiB0byBtYW5hZ2UgdGhlIGJ1aWx0LWluIG5pZ2h0IGxpZ2h0IHRlbXBlcmF0dXJlLiBPcmlnaW5hbCBpbXBsZW1lbnRhdGlvbjogaHR0cHM6Ly9jb2RlYmVyZy5vcmcvdmlsc2JlZy9uaWdodC1saWdodC1zbGlkZXItdXBkYXRlZC8iLAogICJuYW1lIjogIk5pZ2h0IExpZ2h0IFNsaWRlciBVcGRhdGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5pZ2h0bGlnaHRzbGlkZXJ1cGRhdGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vY29kZWJlcmcub3JnL3ZpbHNiZWcvbmlnaHQtbGlnaHQtc2xpZGVyLXVwZGF0ZWQiLAogICJ1dWlkIjogIm5pZ2h0LWxpZ2h0LXNsaWRlci11cGRhdGVkQHZpbHNiZWcuY29kZWJlcmcub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="}
+  }}
+, {"uuid": "wiggle@mechtifs", "name": "Wiggle", "pname": "wiggle", "description": "Wiggle is a GNOME 45+ port/fix for Jiggle. Wiggle magnifies the cursor when the mouse is moved rapidly.", "link": "https://extensions.gnome.org/extension/6784/wiggle/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "14vi9cd9qm6f6z1krhh6s4l8z0121aayf1jmkgaj6i52i7559cmw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpZ2dsZSBpcyBhIEdOT01FIFNoZWxsIGV4dGVuc2lvbiB0aGF0IG1hZ25pZmllcyB0aGUgY3Vyc29yIHdoZW4gdGhlIG1vdXNlIGlzIG1vdmVkIHJhcGlkbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZ2dsZSIsCiAgIm5hbWUiOiAiV2lnZ2xlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWNodGlmcy93aWdnbGUiLAogICJ1dWlkIjogIndpZ2dsZUBtZWNodGlmcyIsCiAgInZlcnNpb24iOiAyCn0="}
+  }}
+, {"uuid": "favorite-apps@venovar.tr", "name": "Favorite Apps Menu on Top Bar Panel", "pname": "show-favorite-apps", "description": "This extension adds a favorite applications menu panel to top bar", "link": "https://extensions.gnome.org/extension/6787/show-favorite-apps/", "shell_version_map": {
+    "45": {"version": "5", "sha256": "1cg40w8qg419dqividgp95gvl3z2szdpbnv7mzh3vbfknqxk8wvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSBmYXZvcml0ZSBhcHBsaWNhdGlvbnMgcGFuZWwgdG8gdG9wIGJhciIsCiAgIm5hbWUiOiAiRmF2b3JpdGUgQXBwcyBvbiBUb3AgQmFyIFBhbmVsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZlbmZhdmFwcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmciLAogICJ1dWlkIjogImZhdm9yaXRlLWFwcHNAdmVub3Zhci50ciIsCiAgInZlcnNpb24iOiA1Cn0="}
+  }}
+, {"uuid": "better-end-session-dialog@popov895.ukr.net", "name": "Better End Session Dialog", "pname": "better-end-session-dialog", "description": "Show logout/reboot/shutdown together in the end session dialog", "link": "https://extensions.gnome.org/extension/6796/better-end-session-dialog/", "shell_version_map": {
+    "42": {"version": "5", "sha256": "0gik40cndh35hjjdifz4p04cj74p4k3g2lhvp7q27v19jlzjimxh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbG9nb3V0L3JlYm9vdC9zaHV0ZG93biB0b2dldGhlciBpbiB0aGUgZW5kIHNlc3Npb24gZGlhbG9nIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJCZXR0ZXIgRW5kIFNlc3Npb24gRGlhbG9nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9wb3Y4OTUvYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZyIsCiAgInV1aWQiOiAiYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZ0Bwb3Bvdjg5NS51a3IubmV0IiwKICAidmVyc2lvbiI6IDUKfQ=="},
+    "43": {"version": "5", "sha256": "0gik40cndh35hjjdifz4p04cj74p4k3g2lhvp7q27v19jlzjimxh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbG9nb3V0L3JlYm9vdC9zaHV0ZG93biB0b2dldGhlciBpbiB0aGUgZW5kIHNlc3Npb24gZGlhbG9nIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJCZXR0ZXIgRW5kIFNlc3Npb24gRGlhbG9nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9wb3Y4OTUvYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZyIsCiAgInV1aWQiOiAiYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZ0Bwb3Bvdjg5NS51a3IubmV0IiwKICAidmVyc2lvbiI6IDUKfQ=="},
+    "44": {"version": "5", "sha256": "0gik40cndh35hjjdifz4p04cj74p4k3g2lhvp7q27v19jlzjimxh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbG9nb3V0L3JlYm9vdC9zaHV0ZG93biB0b2dldGhlciBpbiB0aGUgZW5kIHNlc3Npb24gZGlhbG9nIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJCZXR0ZXIgRW5kIFNlc3Npb24gRGlhbG9nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9wb3Y4OTUvYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZyIsCiAgInV1aWQiOiAiYmV0dGVyLWVuZC1zZXNzaW9uLWRpYWxvZ0Bwb3Bvdjg5NS51a3IubmV0IiwKICAidmVyc2lvbiI6IDUKfQ=="},
+    "45": {"version": "6", "sha256": "03j73jipsf4sldkg98bns2hwydcrx3qvv1pa8d8jn8a5v6fm4vaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbG9nb3V0L3JlYm9vdC9zaHV0ZG93biB0b2dldGhlciBpbiB0aGUgZW5kIHNlc3Npb24gZGlhbG9nIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJwb3Bvdjg5NWEiCiAgfSwKICAibmFtZSI6ICJCZXR0ZXIgRW5kIFNlc3Npb24gRGlhbG9nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BvcG92ODk1L2JldHRlci1lbmQtc2Vzc2lvbi1kaWFsb2ciLAogICJ1dWlkIjogImJldHRlci1lbmQtc2Vzc2lvbi1kaWFsb2dAcG9wb3Y4OTUudWtyLm5ldCIsCiAgInZlcnNpb24iOiA2Cn0="}
+  }}
+, {"uuid": "layout-hotkeys@max.post.space.gmail.com", "name": "Layout Hotkeys", "pname": "layout-hotkeys", "description": "Add hotkeys to switch layouts directly via Shift + Alt + [1-9].", "link": "https://extensions.gnome.org/extension/6804/layout-hotkeys/", "shell_version_map": {
+    "45": {"version": "1", "sha256": "1w85nx17ggalvjd1lrj2dkhc1xkmvc1jv45vb2cvxvxpb7c4ji3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBob3RrZXlzIHRvIHN3aXRjaCBsYXlvdXRzIGRpcmVjdGx5IHZpYSBTaGlmdCArIEFsdCArIFsxLTldLiIsCiAgIm5hbWUiOiAiTGF5b3V0IEhvdGtleXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubGF5b3V0LWhvdGtleXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTXJEdm9yYWsvbGF5b3V0LWhvdGtleXMiLAogICJ1dWlkIjogImxheW91dC1ob3RrZXlzQG1heC5wb3N0LnNwYWNlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}
   }}
 ]
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix b/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
index c0dc65bb3fa6..376a4a09bad8 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
@@ -6,7 +6,6 @@
   "drop-down-terminal@gs-extensions.zzrough.org" = callPackage ./drop-down-terminal { };
   "EasyScreenCast@iacopodeenosee.gmail.com" = callPackage ./EasyScreenCast { };
   "gsconnect@andyholmes.github.io" = callPackage ./gsconnect { };
-  "icon-hider@kalnitsky.org" = callPackage ./icon-hider { };
   "impatience@gfxmonk.net" = callPackage ./impatience { };
   "no-title-bar@jonaspoehler.de" = callPackage ./no-title-bar { };
   "pidgin@muffinmad" = callPackage ./pidgin-im-integration { };
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/unite/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/unite/default.nix
index ef975ffddf45..36913e3d4e57 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/unite/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/unite/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-unite";
-  version = "77";
+  version = "78";
 
   src = fetchFromGitHub {
     owner = "hardpixel";
     repo = "unite-shell";
     rev = "v${version}";
-    hash = "sha256-5PClGWOxqwTVaqBySu5I+qavaV1vcKHUvoYJ3Qgcq2o=";
+    hash = "sha256-4fOCgStMPzUg2QxYeX6tU/WUaGOn1YUyheZp6YNeODA=";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/valent/default.nix b/nixpkgs/pkgs/desktops/gnome/extensions/valent/default.nix
index 7bb529b743bb..e9b5c14f14b2 100644
--- a/nixpkgs/pkgs/desktops/gnome/extensions/valent/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/extensions/valent/default.nix
@@ -26,12 +26,12 @@ stdenv.mkDerivation rec {
     extensionPortalSlug = "valent";
   };
 
-  meta = with lib; {
+  meta = {
     description = "GNOME Shell integration for Valent";
     homepage = "https://valent.andyholmes.ca/";
     changelog = "https://github.com/andyholmes/gnome-shell-extension-valent/blob/${src.rev}/CHANGELOG.md";
-    license = licenses.gpl3Plus;
-    maintainers = [ maintainers.federicoschonborn ];
-    platforms = platforms.linux;
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ federicoschonborn ];
+    platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome/games/aisleriot/default.nix b/nixpkgs/pkgs/desktops/gnome/games/aisleriot/default.nix
index a56d9e4569b1..e0a372272781 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/aisleriot/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/aisleriot/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Aisleriot";
     description = "A collection of patience games written in guile scheme";
+    mainProgram = "sol";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/atomix/default.nix b/nixpkgs/pkgs/desktops/gnome/games/atomix/default.nix
index 0d43c8e2ee7d..2e72d4300970 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/atomix/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/atomix/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Puzzle game where you move atoms to build a molecule";
+    mainProgram = "atomix";
     homepage = "https://wiki.gnome.org/Apps/Atomix";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/five-or-more/default.nix b/nixpkgs/pkgs/desktops/gnome/games/five-or-more/default.nix
index 2b264442eab1..749f0de9ac36 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/five-or-more/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/five-or-more/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Five_or_more";
     description = "Remove colored balls from the board by forming lines";
+    mainProgram = "five-or-more";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/four-in-a-row/default.nix b/nixpkgs/pkgs/desktops/gnome/games/four-in-a-row/default.nix
index a85da0499215..cc866abde224 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/four-in-a-row/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/four-in-a-row/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Four-in-a-row";
     description = "Make lines of the same color to win";
+    mainProgram = "four-in-a-row";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-2048/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-2048/default.nix
index 137521c8bba3..563d298883ca 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/gnome-2048/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-2048/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/2048";
     description = "Obtain the 2048 tile";
+    mainProgram = "gnome-2048";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-chess/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-chess/default.nix
index 43b4628d2bb6..41599e6cf0fe 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/gnome-chess/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-chess/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Chess";
     description = "Play the classic two-player boardgame of chess";
+    mainProgram = "gnome-chess";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-klotski/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-klotski/default.nix
index bdfa9f8ed8f7..8545fefaa539 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/gnome-klotski/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-klotski/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Klotski";
     description = "Slide blocks to solve the puzzle";
+    mainProgram = "gnome-klotski";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-mahjongg/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-mahjongg/default.nix
index 4ca1a535f186..381af6c0d2a6 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/gnome-mahjongg/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-mahjongg/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Mahjongg";
     description = "Disassemble a pile of tiles by removing matching pairs";
+    mainProgram = "gnome-mahjongg";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-mines/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-mines/default.nix
index 4640c5842493..7594b94c7aa7 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/gnome-mines/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-mines/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Mines";
     description = "Clear hidden mines from a minefield";
+    mainProgram = "gnome-mines";
     maintainers = teams.gnome.members;
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-nibbles/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-nibbles/default.nix
index cf7a0038c145..c0a9e3d2692a 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/gnome-nibbles/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-nibbles/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Guide a worm around a maze";
+    mainProgram = "gnome-nibbles";
     homepage = "https://wiki.gnome.org/Apps/Nibbles";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-robots/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-robots/default.nix
index e8b5d48efca1..75f86f2c8842 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/gnome-robots/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-robots/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Robots";
     description = "Avoid the robots and make them crash into each other";
+    mainProgram = "gnome-robots";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-sudoku/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-sudoku/default.nix
index 36378775c69d..8cd6201b16d7 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/gnome-sudoku/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-sudoku/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Sudoku";
     description = "Test your logic skills in this number grid puzzle";
+    mainProgram = "gnome-sudoku";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-taquin/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-taquin/default.nix
index e982f83f3ff7..b2c65ecb6c2d 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/gnome-taquin/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-taquin/default.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Taquin";
     description = "Move tiles so that they reach their places";
+    mainProgram = "gnome-taquin";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/gnome-tetravex/default.nix b/nixpkgs/pkgs/desktops/gnome/games/gnome-tetravex/default.nix
index 46e512ad316a..3527f8b54115 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/gnome-tetravex/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/gnome-tetravex/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Tetravex";
     description = "Complete the puzzle by matching numbered tiles";
+    mainProgram = "gnome-tetravex";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/hitori/default.nix b/nixpkgs/pkgs/desktops/gnome/games/hitori/default.nix
index e416a7f0343f..d22ded0e5bf4 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/hitori/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/hitori/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Hitori";
     description = "GTK application to generate and let you play games of Hitori";
+    mainProgram = "hitori";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/iagno/default.nix b/nixpkgs/pkgs/desktops/gnome/games/iagno/default.nix
index eb27430be4e9..e409b04c0a9a 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/iagno/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/iagno/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Iagno";
     description = "Computer version of the game Reversi, more popularly called Othello";
+    mainProgram = "iagno";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/lightsoff/default.nix b/nixpkgs/pkgs/desktops/gnome/games/lightsoff/default.nix
index fa9eb5d20812..52b2cec7e105 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/lightsoff/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/lightsoff/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Lightsoff";
     description = "Puzzle game, where the objective is to turn off all of the tiles on the board";
+    mainProgram = "lightsoff";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/quadrapassel/default.nix b/nixpkgs/pkgs/desktops/gnome/games/quadrapassel/default.nix
index 956f9f842d3d..c3a883306bd5 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/quadrapassel/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/quadrapassel/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Classic falling-block game, Tetris";
+    mainProgram = "quadrapassel";
     homepage = "https://wiki.gnome.org/Apps/Quadrapassel";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/swell-foop/default.nix b/nixpkgs/pkgs/desktops/gnome/games/swell-foop/default.nix
index 61d3e2c0bb67..98a01140fd8e 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/swell-foop/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/swell-foop/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Swell%20Foop";
     description = "Puzzle game, previously known as Same GNOME";
+    mainProgram = "swell-foop";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/games/tali/default.nix b/nixpkgs/pkgs/desktops/gnome/games/tali/default.nix
index f5c1e83ee4d0..baac54eab9c1 100644
--- a/nixpkgs/pkgs/desktops/gnome/games/tali/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/games/tali/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Tali";
     description = "Sort of poker with dice and less money";
+    mainProgram = "tali";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/gnome/misc/gitg/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gitg/default.nix
index e2d008a8697e..d454a2605893 100644
--- a/nixpkgs/pkgs/desktops/gnome/misc/gitg/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gitg/default.nix
@@ -98,6 +98,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Gitg";
     description = "GNOME GUI client to view git repositories";
+    mainProgram = "gitg";
     maintainers = with maintainers; [ domenkozar ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/misc/gnome-applets/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gnome-applets/default.nix
index f59bce79728e..194ad991c5b3 100644
--- a/nixpkgs/pkgs/desktops/gnome/misc/gnome-applets/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gnome-applets/default.nix
@@ -72,6 +72,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Applets for use with the GNOME panel";
+    mainProgram = "cpufreq-selector";
     homepage = "https://wiki.gnome.org/Projects/GnomeApplets";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/misc/gnome-extensions-cli/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gnome-extensions-cli/default.nix
index 78ff97b1ae1f..03f5075a791f 100644
--- a/nixpkgs/pkgs/desktops/gnome/misc/gnome-extensions-cli/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gnome-extensions-cli/default.nix
@@ -1,41 +1,47 @@
 { lib
 , fetchPypi
 , buildPythonApplication
+, pythonRelaxDepsHook
 , poetry-core
 , colorama
-, more-itertools
 , packaging
 , pydantic
 , requests
 , pygobject3
+, tqdm
 , gobject-introspection
 , wrapGAppsNoGuiHook
 }:
 
 buildPythonApplication rec {
   pname = "gnome-extensions-cli";
-  version = "0.9.5";
+  version = "0.10.1";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "gnome_extensions_cli";
     inherit version;
-    hash = "sha256-4eRVmG5lqK8ql9WpvXsf18znOt7kDSnpQnLfy73doy4=";
+    hash = "sha256-yAoo3NjNtTZSHmbLKzW2X7Cy2smLNp8/9vo+OPGxlVY=";
   };
 
   nativeBuildInputs = [
     gobject-introspection
     poetry-core
     wrapGAppsNoGuiHook
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "more-itertools"
   ];
 
   propagatedBuildInputs = [
     colorama
-    more-itertools
     packaging
     pydantic
     requests
     pygobject3
+    tqdm
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/desktops/gnome/misc/gnome-flashback/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
index f1930830938c..baf25a27b948 100644
--- a/nixpkgs/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
@@ -184,6 +184,7 @@ let
 
     meta = with lib; {
       description = "GNOME 2.x-like session for GNOME 3";
+      mainProgram = "gnome-flashback";
       homepage = "https://wiki.gnome.org/Projects/GnomeFlashback";
       license = licenses.gpl2;
       maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/misc/gnome-panel/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gnome-panel/default.nix
index 3e84f442d6a3..4d988de173a2 100644
--- a/nixpkgs/pkgs/desktops/gnome/misc/gnome-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gnome-panel/default.nix
@@ -99,6 +99,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Component of Gnome Flashback that provides panels and default applets for the desktop";
+    mainProgram = "gnome-panel";
     homepage = "https://wiki.gnome.org/Projects/GnomePanel";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
index 54c0a89d30a8..8489198b2315 100644
--- a/nixpkgs/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
@@ -82,6 +82,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Tweaks";
     description = "A tool to customize advanced GNOME 3 options";
+    mainProgram = "gnome-tweaks";
     maintainers = teams.gnome.members;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/gnome/misc/gpaste/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/gpaste/default.nix
index 2f66d742f969..e98c861f1267 100644
--- a/nixpkgs/pkgs/desktops/gnome/misc/gpaste/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/gpaste/default.nix
@@ -82,6 +82,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Keruspe/GPaste";
     description = "Clipboard management system with GNOME 3 integration";
+    mainProgram = "gpaste-client";
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/desktops/gnome/misc/pomodoro/default.nix b/nixpkgs/pkgs/desktops/gnome/misc/pomodoro/default.nix
index ab1513305197..9a1697c2332b 100644
--- a/nixpkgs/pkgs/desktops/gnome/misc/pomodoro/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome/misc/pomodoro/default.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gnomepomodoro.org/";
     description = "Time management utility for GNOME based on the pomodoro technique";
+    mainProgram = "gnome-pomodoro";
     longDescription = ''
       This GNOME utility helps to manage time according to Pomodoro Technique.
       It intends to improve productivity and focus by taking short breaks.
diff --git a/nixpkgs/pkgs/desktops/gnustep/back/default.nix b/nixpkgs/pkgs/desktops/gnustep/back/default.nix
index 867c82881c1a..fc3bc9bed928 100644
--- a/nixpkgs/pkgs/desktops/gnustep/back/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/back/default.nix
@@ -1,7 +1,11 @@
-{ gsmakeDerivation
+{ lib
+, stdenv
+, make
+, wrapGNUstepAppsHook
 , cairo
 , fetchzip
-, base, gui
+, base
+, gui
 , fontconfig
 , freetype
 , pkg-config
@@ -9,18 +13,24 @@
 , libXmu
 }:
 
-gsmakeDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnustep-back";
   version = "0.30.0";
 
   src = fetchzip {
-    url = "ftp://ftp.gnustep.org/pub/gnustep/core/${pname}-${version}.tar.gz";
+    url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-${finalAttrs.version}.tar.gz";
     sha256 = "sha256-HD4PLdkE573nPWqFwffUmcHw8VYIl5rLiPKWrbnwpCI=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ make pkg-config wrapGNUstepAppsHook ];
   buildInputs = [ cairo base gui fontconfig freetype libXft libXmu ];
+
   meta = {
     description = "A generic backend for GNUstep";
+    mainProgram = "gpbs";
+    homepage = "https://gnustep.github.io/";
+    license = lib.licenses.lgpl2Plus;
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/gnustep/base/default.nix b/nixpkgs/pkgs/desktops/gnustep/base/default.nix
index 3803a88ce191..acda20c817d6 100644
--- a/nixpkgs/pkgs/desktops/gnustep/base/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/base/default.nix
@@ -1,26 +1,40 @@
-{ aspell, audiofile
-, gsmakeDerivation
+{ lib
+, stdenv
+, aspell
+, audiofile
+, make
+, wrapGNUstepAppsHook
 , cups
 , fetchzip
 , fetchpatch
-, gmp, gnutls
-, libffi, binutils-unwrapped
-, libjpeg, libtiff, libpng, giflib
-, libxml2, libxslt, libiconv
-, libobjc, libgcrypt
+, gmp
+, gnutls
+, libffi
+, binutils-unwrapped
+, libjpeg
+, libtiff
+, libpng
+, giflib
+, libxml2
+, libxslt
+, libiconv
+, libobjc
+, libgcrypt
 , icu
-, pkg-config, portaudio
+, pkg-config
+, portaudio
 , libiberty
 }:
-gsmakeDerivation rec {
+
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnustep-base";
   version = "1.29.0";
   src = fetchzip {
-    url = "ftp://ftp.gnustep.org/pub/gnustep/core/${pname}-${version}.tar.gz";
+    url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-${finalAttrs.version}.tar.gz";
     hash = "sha256-4fjdsLBsYEDxLOFrq17dKii2sLKvOaFCu0cw3qQtM5U=";
   };
   outputs = [ "out" "dev" "lib" ];
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config make wrapGNUstepAppsHook ];
   propagatedBuildInputs = [
     aspell audiofile
     cups
@@ -55,7 +69,11 @@ gsmakeDerivation rec {
   ];
 
   meta = {
+    changelog = "https://github.com/gnustep/libs-base/releases/tag/base-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
     description = "An implementation of AppKit and Foundation libraries of OPENSTEP and Cocoa";
-    changelog = "https://github.com/gnustep/libs-base/releases/tag/base-${builtins.replaceStrings [ "." ] [ "_" ] version}";
+    homepage = "https://gnustep.github.io/";
+    license = lib.licenses.lgpl2Plus;
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/gnustep/default.nix b/nixpkgs/pkgs/desktops/gnustep/default.nix
index d337512dceca..53040ace672d 100644
--- a/nixpkgs/pkgs/desktops/gnustep/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/default.nix
@@ -5,18 +5,21 @@
 let
   callPackage = newScope self;
 
-  self = rec {
+  self = {
     stdenv = llvmPackages.stdenv;
 
-    gsmakeDerivation = callPackage ./make/gsmakeDerivation.nix {};
-    gorm = callPackage ./gorm {};
-    projectcenter = callPackage ./projectcenter {};
-    system_preferences = callPackage ./systempreferences {};
-    libobjc = callPackage ./libobjc2 {};
+    wrapGNUstepAppsHook = callPackage ./wrapGNUstepAppsHook.nix {};
+
     make = callPackage ./make {};
+
+    libobjc = callPackage ./libobjc2 {};
+    base = callPackage ./base {};
     back = callPackage ./back {};
-    base = callPackage ./base { };
     gui = callPackage ./gui {};
+
+    gorm = callPackage ./gorm {};
+    projectcenter = callPackage ./projectcenter {};
+    system_preferences = callPackage ./systempreferences {};
     gworkspace = callPackage ./gworkspace {};
   };
 
diff --git a/nixpkgs/pkgs/desktops/gnustep/gorm/default.nix b/nixpkgs/pkgs/desktops/gnustep/gorm/default.nix
index 0897ceefdba6..f48600263447 100644
--- a/nixpkgs/pkgs/desktops/gnustep/gorm/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/gorm/default.nix
@@ -1,15 +1,31 @@
-{ fetchzip, base, back, gsmakeDerivation, gui }:
-gsmakeDerivation rec {
+{ lib
+, stdenv
+, fetchzip
+, base
+, back
+, make
+, wrapGNUstepAppsHook
+, gui
+}:
+
+stdenv.mkDerivation (finalAttrs: {
   pname = "gorm";
   version = "1.3.1";
 
   src = fetchzip {
-    url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/gorm-${version}.tar.gz";
+    url = "ftp://ftp.gnustep.org/pub/gnustep/dev-apps/gorm-${finalAttrs.version}.tar.gz";
     sha256 = "sha256-W+NgbvLjt1PpDiauhzWFaU1/CUhmDACQz+GoyRUyWB8=";
   };
+
+  nativeBuildInputs = [ make wrapGNUstepAppsHook ];
   buildInputs = [ base back gui ];
 
   meta = {
     description = "Graphical Object Relationship Modeller is an easy-to-use interface designer for GNUstep";
+    homepage = "https://gnustep.github.io/";
+    license = lib.licenses.lgpl2Plus;
+    mainProgram = "Gorm";
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/gnustep/gui/default.nix b/nixpkgs/pkgs/desktops/gnustep/gui/default.nix
index 962d6eef7fde..448f4c60136a 100644
--- a/nixpkgs/pkgs/desktops/gnustep/gui/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/gui/default.nix
@@ -1,19 +1,32 @@
-{ gsmakeDerivation, fetchzip, base }:
+{ lib
+, stdenv
+, make
+, wrapGNUstepAppsHook
+, fetchzip
+, base
+}:
 
-gsmakeDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   version = "0.30.0";
   pname = "gnustep-gui";
 
   src = fetchzip {
-    url = "ftp://ftp.gnustep.org/pub/gnustep/core/${pname}-${version}.tar.gz";
+    url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-${finalAttrs.version}.tar.gz";
     sha256 = "sha256-24hL4TeIY6izlhQUcxKI0nXITysAPfRrncRqsDm2zNk=";
   };
+
+  nativeBuildInputs = [ make wrapGNUstepAppsHook ];
   buildInputs = [ base ];
+
   patches = [
     ./fixup-all.patch
   ];
   meta = {
+    changelog = "https://github.com/gnustep/libs-gui/releases/tag/gui-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
     description = "A GUI class library of GNUstep";
-    changelog = "https://github.com/gnustep/libs-gui/releases/tag/gui-${builtins.replaceStrings [ "." ] [ "_" ] version}";
+    homepage = "https://gnustep.github.io/";
+    license = lib.licenses.lgpl2Plus;
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/gnustep/gworkspace/default.nix b/nixpkgs/pkgs/desktops/gnustep/gworkspace/default.nix
index cdc6612d1c06..d2343dfb0113 100644
--- a/nixpkgs/pkgs/desktops/gnustep/gworkspace/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/gworkspace/default.nix
@@ -1,22 +1,36 @@
-{ back, base, gui, gsmakeDerivation
+{ lib
+, stdenv
+, back
+, base
+, gui
+, make
+, wrapGNUstepAppsHook
 , fetchurl
 , system_preferences
 }:
-let
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "gworkspace";
   version = "1.0.0";
-in
-gsmakeDerivation {
-  name = "gworkspace-${version}";
+
   src = fetchurl {
-    url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/gworkspace-${version}.tar.gz";
+    url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/gworkspace-${finalAttrs.version}.tar.gz";
     sha256 = "sha256-M7dV7RVatw8gdYHQlRi5wNBd6MGT9GqW04R/DoKNu6I=";
   };
+
   # additional dependencies:
   # - PDFKit framework from http://gap.nongnu.org/
   # - TODO: to --enable-gwmetadata, need libDBKit as well as sqlite!
+  nativeBuildInputs = [ make wrapGNUstepAppsHook ];
   buildInputs = [ back base gui system_preferences ];
   configureFlags = [ "--with-inotify" ];
+
   meta = {
     description = "A workspace manager for GNUstep";
+    homepage = "https://gnustep.github.io/";
+    license = lib.licenses.lgpl2Plus;
+    mainProgram = "GWorkspace";
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/gnustep/libobjc2/default.nix b/nixpkgs/pkgs/desktops/gnustep/libobjc2/default.nix
index b44e60ce233d..2e487fddf431 100644
--- a/nixpkgs/pkgs/desktops/gnustep/libobjc2/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/libobjc2/default.nix
@@ -1,13 +1,17 @@
-{ stdenv, lib, fetchFromGitHub, cmake }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libobjc2";
   version = "2.1";
 
   src = fetchFromGitHub {
     owner = "gnustep";
     repo = "libobjc2";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     hash = "sha256-iDOVEDnTAfg9r3/kdHp7hzX2oIjO1ovaqgrlIV7V68M=";
     fetchSubmodules = true;
   };
@@ -19,9 +23,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Objective-C runtime for use with GNUstep";
-    homepage = "http://gnustep.org/";
+    homepage = "https://gnustep.github.io/";
     license = licenses.mit;
-    maintainers = with maintainers; [ ashalkhakov matthewbauer ];
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
     platforms = platforms.unix;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/gnustep/make/builder.sh b/nixpkgs/pkgs/desktops/gnustep/make/builder.sh
deleted file mode 100644
index 79ead3f7b729..000000000000
--- a/nixpkgs/pkgs/desktops/gnustep/make/builder.sh
+++ /dev/null
@@ -1,127 +0,0 @@
-if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
-source $stdenv/setup
-
-providedPreConfigure="$preConfigure";
-
-preConfigure() {
-    eval "$providedPreConfigure"
-
-    . $GNUSTEP_MAKEFILES/GNUstep.sh
-}
-
-wrapGSMake() {
-    local program="$1"
-    local config="$2"
-    local wrapped="$(dirname $program)/.$(basename $program)-wrapped"
-
-    mv "$program" "$wrapped"
-
-    cat > "$program"<<EOF
-#! $SHELL -e
-
-export GNUSTEP_CONFIG_FILE="$config"
-
-exec "$wrapped" "\$@"
-EOF
-    chmod +x "$program"
-}
-
-postInstall() {
-    local conf="$out/share/.GNUstep.conf"
-
-    mkdir -p "$out/share"
-    touch $conf
-
-    # add the current package to the paths
-    local tmp="$out/lib/GNUstep/Applications"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_APPS" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
-    fi
-    tmp="$out/lib/GNUstep/Applications"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
-    fi
-    tmp="$out/lib/GNUstep/WebApplications"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_WEB_APPS" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
-    fi
-    tmp="$out/bin"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
-    fi
-    tmp="$out/sbin"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
-    fi
-    tmp="$out/lib/GNUstep"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARY" in *"${tmp}"*) false;; *) true;; esac; then
-            addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
-    fi
-    tmp="$out/include"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_HEADERS" in *"${tmp}"*) false;; *) true;; esac; then
-            if [ -z "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
-                export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
-            else
-                export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
-            fi
-    fi
-    tmp="$out/lib"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARIES" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
-    fi
-    tmp="$out/share/GNUstep/Documentation"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
-    fi
-    tmp="$out/share/man"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_MAN" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
-    fi
-    tmp="$out/share/info"
-    if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_INFO" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
-    fi
-
-    # write the config file
-    echo GNUSTEP_MAKEFILES=$GNUSTEP_MAKEFILES >> $conf
-    if [ -n "$NIX_GNUSTEP_SYSTEM_APPS" ]; then
-        echo NIX_GNUSTEP_SYSTEM_APPS="$NIX_GNUSTEP_SYSTEM_APPS"
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" ]; then
-        echo NIX_GNUSTEP_SYSTEM_ADMIN_APPS="$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_WEB_APPS" ]; then
-        echo NIX_GNUSTEP_SYSTEM_WEB_APPS="$NIX_GNUSTEP_SYSTEM_WEB_APPS" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_TOOLS" ]; then
-        echo NIX_GNUSTEP_SYSTEM_TOOLS="$NIX_GNUSTEP_SYSTEM_TOOLS" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" ]; then
-        echo NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS="$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_LIBRARY" ]; then
-        echo NIX_GNUSTEP_SYSTEM_LIBRARY="$NIX_GNUSTEP_SYSTEM_LIBRARY" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
-        echo NIX_GNUSTEP_SYSTEM_HEADERS="$NIX_GNUSTEP_SYSTEM_HEADERS" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_LIBRARIES" ]; then
-        echo NIX_GNUSTEP_SYSTEM_LIBRARIES="$NIX_GNUSTEP_SYSTEM_LIBRARIES" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_DOC" ]; then
-        echo NIX_GNUSTEP_SYSTEM_DOC="$NIX_GNUSTEP_SYSTEM_DOC" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_DOC_MAN" ]; then
-        echo NIX_GNUSTEP_SYSTEM_DOC_MAN="$NIX_GNUSTEP_SYSTEM_DOC_MAN" >> $conf
-    fi
-    if [ -n "$NIX_GNUSTEP_SYSTEM_DOC_INFO" ]; then
-        echo NIX_GNUSTEP_SYSTEM_DOC_INFO="$NIX_GNUSTEP_SYSTEM_DOC_INFO" >> $conf
-    fi
-
-    for i in $out/bin/*; do
-        echo "wrapping $(basename $i)"
-        wrapGSMake "$i" "$out/share/.GNUstep.conf"
-    done
-}
-
-genericBuild
diff --git a/nixpkgs/pkgs/desktops/gnustep/make/default.nix b/nixpkgs/pkgs/desktops/gnustep/make/default.nix
index f9b4ae553c85..290e3004497f 100644
--- a/nixpkgs/pkgs/desktops/gnustep/make/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/make/default.nix
@@ -1,11 +1,16 @@
-{ lib, stdenv, fetchurl, clang, which, libobjc }:
+{ lib
+, stdenv
+, fetchurl
+, which
+, libobjc
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnustep-make";
   version = "2.9.1";
 
   src = fetchurl {
-    url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-${version}.tar.gz";
+    url = "ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-${finalAttrs.version}.tar.gz";
     sha256 = "sha256-w9bnDPFWsn59HtJQHFffP5bidIjOLzUbk+R5xYwB6uc=";
   };
 
@@ -22,17 +27,19 @@ stdenv.mkDerivation rec {
     "GNUSTEP_INSTALLATION_DOMAIN=SYSTEM"
   ];
 
-  nativeBuildInputs = [ clang which ];
   buildInputs = [ libobjc ];
 
+  propagatedBuildInputs = [ which ];
+
   patches = [ ./fixup-paths.patch ];
   setupHook = ./setup-hook.sh;
+
   meta = {
+    changelog = "https://github.com/gnustep/tools-make/releases/tag/make-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
     description = "A build manager for GNUstep";
-    homepage = "http://gnustep.org/";
-    changelog = "https://github.com/gnustep/tools-make/releases/tag/make-${builtins.replaceStrings [ "." ] [ "_" ] version}";
+    homepage = "https://gnustep.github.io/";
     license = lib.licenses.lgpl2Plus;
-    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer ];
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
     platforms = lib.platforms.unix;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/gnustep/make/gsmakeDerivation.nix b/nixpkgs/pkgs/desktops/gnustep/make/gsmakeDerivation.nix
deleted file mode 100644
index 04cfcc1ca343..000000000000
--- a/nixpkgs/pkgs/desktops/gnustep/make/gsmakeDerivation.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ lib, stdenv, make, makeWrapper, which }:
-{ nativeBuildInputs ? [], ...} @ args:
-stdenv.mkDerivation (args // {
-  nativeBuildInputs = [ makeWrapper make which ] ++ nativeBuildInputs;
-
-  builder = ./builder.sh;
-  setupHook = ./setup-hook.sh;
-
-  GNUSTEP_MAKEFILES = "${make}/share/GNUstep/Makefiles";
-
-  meta = {
-    homepage = "http://gnustep.org/";
-
-    license = lib.licenses.lgpl2Plus;
-
-    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer ];
-    platforms = lib.platforms.linux;
-  } // (lib.optionalAttrs (builtins.hasAttr "meta" args) args.meta);
-})
diff --git a/nixpkgs/pkgs/desktops/gnustep/make/setup-hook.sh b/nixpkgs/pkgs/desktops/gnustep/make/setup-hook.sh
index 83adfefc10cd..0bfbd35f45f5 100644
--- a/nixpkgs/pkgs/desktops/gnustep/make/setup-hook.sh
+++ b/nixpkgs/pkgs/desktops/gnustep/make/setup-hook.sh
@@ -20,62 +20,52 @@ addGnustepInstallFlags() {
 
 preInstallPhases+=" addGnustepInstallFlags"
 
-addEnvVars() {
+addGNUstepEnvVars() {
     local filename
 
+    gsAddToSearchPath() {
+        if [[ -d "$2" && "${!1-}" != *"$2"* ]]; then
+            addToSearchPath "$1" "$2"
+        fi
+    }
+
+    gsAddToIncludeSearchPath() {
+        local -n ref="$1"
+
+        # NOTE: contrary to the one in wrapGNUstepAppsHook, use -e here instead of -d since it's also used for the makefiles
+        if [[ -e "$2" && "${ref-}" != *"$2"* ]]; then
+            if [[ "${ref-}" != "" ]]; then
+                ref+=" "
+            fi
+
+            ref+="$2"
+        fi
+    }
+
     for filename in $1/share/GNUstep/Makefiles/Additional/*.make ; do
-    if case "${NIX_GNUSTEP_MAKEFILES_ADDITIONAL-}" in *"{$filename}"*) false;; *) true;; esac; then
-        export NIX_GNUSTEP_MAKEFILES_ADDITIONAL+=" $filename"
-    fi
+        gsAddToIncludeSearchPath NIX_GNUSTEP_MAKEFILES_ADDITIONAL "$filename"
     done
 
-    local tmp="$1/lib/GNUstep/Applications"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
-    fi
-    tmp="$1/lib/GNUstep/Applications"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_ADMIN_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
-    fi
-    tmp="$1/lib/GNUstep/WebApplications"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_WEB_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
-    fi
-    tmp="$1/bin"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_TOOLS-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
-    fi
-    tmp="$1/sbin"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
-    fi
-    tmp="$1/lib/GNUstep"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_LIBRARY-}" in *"${tmp}"*) false;; *) true;; esac; then
-        addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
-    fi
-    tmp="$1/include"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_HEADERS-}" in *"${tmp}"*) false;; *) true;; esac; then
-        if [ -z "${NIX_GNUSTEP_SYSTEM_HEADERS-}" ]; then
-            export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
-        else
-            export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
-        fi
-    fi
-    tmp="$1/lib"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_LIBRARIES-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
-    fi
-    tmp="$1/share/GNUstep/Documentation"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
-    fi
-    tmp="$1/share/man"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC_MAN-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
-    fi
-    tmp="$1/share/info"
-    if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC_INFO-}" in *"${tmp}"*) false;; *) true;; esac; then
-    addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
-    fi
+    export NIX_GNUSTEP_MAKEFILES_ADDITIONAL
+
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$1/lib/GNUstep/Applications"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$1/lib/GNUstep/Applications"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$1/lib/GNUstep/WebApplications"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$1/bin"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$1/sbin"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$1/lib/GNUstep"
+    gsAddToIncludeSearchPath NIX_GNUSTEP_SYSTEM_HEADERS "$1/include"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$1/lib"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$1/share/GNUstep/Documentation"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$1/share/man"
+    gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$1/share/info"
+}
+addEnvHooks "$targetOffset" addGNUstepEnvVars
+
+gsmakeSetup() {
+    export GNUSTEP_MAKEFILES="$(gnustep-config --variable=GNUSTEP_MAKEFILES)"
+
+    . $GNUSTEP_MAKEFILES/GNUstep.sh
 }
-addEnvHooks "$targetOffset" addEnvVars
+
+preConfigureHooks+=(gsmakeSetup)
diff --git a/nixpkgs/pkgs/desktops/gnustep/make/wrapper.sh b/nixpkgs/pkgs/desktops/gnustep/make/wrapper.sh
deleted file mode 100644
index 1bc2e130d88d..000000000000
--- a/nixpkgs/pkgs/desktops/gnustep/make/wrapper.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-. $GNUSTEP_MAKEFILES/GNUstep.sh
-$1
diff --git a/nixpkgs/pkgs/desktops/gnustep/projectcenter/default.nix b/nixpkgs/pkgs/desktops/gnustep/projectcenter/default.nix
index b535365b25d9..89f2e769a066 100644
--- a/nixpkgs/pkgs/desktops/gnustep/projectcenter/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/projectcenter/default.nix
@@ -1,21 +1,29 @@
-{ lib, fetchFromGitHub
-, base, back, gsmakeDerivation, gui, gorm
-, gnumake, gdb
+{ lib
+, stdenv
+, fetchFromGitHub
+, make
+, wrapGNUstepAppsHook
+, base
+, back
+, gui
+, gorm
+, gnumake
+, gdb
 }:
-let
-  version = "0.7.0";
-in
-gsmakeDerivation {
+
+stdenv.mkDerivation (finalAttrs: {
   pname = "projectcenter";
-  inherit version;
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "gnustep";
     repo = "apps-projectcenter";
-    rev = "projectcenter-${lib.replaceStrings [ "." ] [ "_" ] version}";
+    rev = "projectcenter-${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
     hash = "sha256-uXT2UUvMZNc6Fqi2BUXQimbZk8b3IqXzB+A2btBOmms=";
   };
 
+  nativeBuildInputs = [ make wrapGNUstepAppsHook ];
+
   # NOTE: need a patch for ProjectCenter to help it locate some necessary tools:
   # 1. Framework/PCProjectLauncher.m, locate gdb (say among NIX_GNUSTEP_SYSTEM_TOOLS)
   # 2. Framework/PCProjectBuilder.m, locate gmake (similar)
@@ -23,5 +31,10 @@ gsmakeDerivation {
 
   meta = {
     description = "GNUstep's integrated development environment";
+    homepage = "https://gnustep.github.io/";
+    license = lib.licenses.lgpl2Plus;
+    mainProgram = "ProjectCenter";
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/gnustep/systempreferences/default.nix b/nixpkgs/pkgs/desktops/gnustep/systempreferences/default.nix
index 096520f08f36..c08ad0fc8dbc 100644
--- a/nixpkgs/pkgs/desktops/gnustep/systempreferences/default.nix
+++ b/nixpkgs/pkgs/desktops/gnustep/systempreferences/default.nix
@@ -1,17 +1,31 @@
-{ back, base, gui, gsmakeDerivation, fetchurl }:
-let
+{ lib
+, stdenv
+, fetchurl
+, make
+, wrapGNUstepAppsHook
+, back
+, base
+, gui
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "system-preferences";
   version = "1.2.0";
-in
-gsmakeDerivation {
-  name = "system_preferences-${version}";
+
   src = fetchurl {
-    url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/SystemPreferences-${version}.tar.gz";
+    url = "ftp://ftp.gnustep.org/pub/gnustep/usr-apps/SystemPreferences-${finalAttrs.version}.tar.gz";
     sha256 = "1fg7c3ihfgvl6n21rd17fs9ivx3l8ps874m80vz86n1callgs339";
   };
-#  GNUSTEP_MAKEFILES = "${gnustep_make}/share/GNUstep/Makefiles";
+
+  nativeBuildInputs = [ make wrapGNUstepAppsHook ];
   buildInputs = [ back base gui ];
-#  propagatedBuildInputs = [ gnustep_back gnustep_base gnustep_gui ];
+
   meta = {
     description = "The settings manager for the GNUstep environment and its applications";
+    homepage = "https://gnustep.github.io/";
+    license = lib.licenses.lgpl2Plus;
+    mainProgram = "SystemPreferences";
+    maintainers = with lib.maintainers; [ ashalkhakov matthewbauer dblsaiko ];
+    platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/nixpkgs/pkgs/desktops/gnustep/wrapGNUstepAppsHook.nix b/nixpkgs/pkgs/desktops/gnustep/wrapGNUstepAppsHook.nix
new file mode 100644
index 000000000000..8a2339ddeb52
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnustep/wrapGNUstepAppsHook.nix
@@ -0,0 +1,8 @@
+{makeBinaryWrapper, makeSetupHook}:
+
+makeSetupHook
+  {
+    name = "wrapGNUstepAppsHook";
+    propagatedBuildInputs = [makeBinaryWrapper];
+  }
+  ./wrapGNUstepAppsHook.sh
diff --git a/nixpkgs/pkgs/desktops/gnustep/wrapGNUstepAppsHook.sh b/nixpkgs/pkgs/desktops/gnustep/wrapGNUstepAppsHook.sh
new file mode 100644
index 000000000000..8218ff1e7746
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnustep/wrapGNUstepAppsHook.sh
@@ -0,0 +1,96 @@
+if [[ -z "${__nix_wrapGNUstepAppsHook-}" ]]; then
+    __nix_wrapGNUstepAppsHook=1 # Don't run this hook more than once.
+
+    # Inherit arguments given in mkDerivation
+    gnustepWrapperArgs=(${gnustepWrapperArgs-})
+
+    gnustepConfigVars+=(
+        GNUSTEP_MAKEFILES
+        NIX_GNUSTEP_SYSTEM_APPS
+        NIX_GNUSTEP_SYSTEM_ADMIN_APPS
+        NIX_GNUSTEP_SYSTEM_WEB_APPS
+        NIX_GNUSTEP_SYSTEM_TOOLS
+        NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS
+        NIX_GNUSTEP_SYSTEM_LIBRARY
+        NIX_GNUSTEP_SYSTEM_HEADERS
+        NIX_GNUSTEP_SYSTEM_LIBRARIES
+        NIX_GNUSTEP_SYSTEM_DOC
+        NIX_GNUSTEP_SYSTEM_DOC_MAN
+        NIX_GNUSTEP_SYSTEM_DOC_INFO
+    )
+
+    wrapGNUstepApp() {
+        wrapProgram "$1" \
+            --set GNUSTEP_CONFIG_FILE "$out/GNUstep.conf" \
+            "${gnustepWrapperArgs[@]}"
+    }
+
+    ensureGNUstepConfig() (
+        if [[ -f "$out/GNUstep.conf" ]]; then
+            return
+        fi
+
+        echo "writing GNUstep config file"
+
+        gsAddToSearchPath() {
+            if [[ -d "$2" && "${!1-}" != *"$2"* ]]; then
+                addToSearchPath "$1" "$2"
+            fi
+        }
+
+        gsAddToIncludeSearchPath() {
+            local -n ref="$1"
+
+            if [[ -d "$2" && "${ref-}" != *"$2"* ]]; then
+                if [[ "${ref-}" != "" ]]; then
+                    ref+=" "
+                fi
+
+                ref+="$2"
+            fi
+        }
+
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$out/lib/GNUstep/Applications"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$out/lib/GNUstep/Applications"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$out/lib/GNUstep/WebApplications"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$out/bin"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$out/sbin"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$out/lib/GNUstep"
+        gsAddToIncludeSearchPath NIX_GNUSTEP_SYSTEM_HEADERS "$out/include"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$out/lib"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$out/share/GNUstep/Documentation"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$out/share/man"
+        gsAddToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$out/share/info"
+
+        for var in "${gnustepConfigVars[@]}"; do
+            if [[ -n "${!var-}" ]]; then
+                printf '%s="%s"\n' "$var" "${!var}"
+            fi
+        done > "$out/GNUstep.conf"
+    )
+
+    # Note: $gnustepWrapperArgs still gets defined even if ${dontWrapGNUstepApps-} is set.
+    wrapGNUstepAppsHook() {
+        # skip this hook when requested
+        [[ -z "${dontWrapGNUstepApps-}" ]] || return 0
+
+        # guard against running multiple times (e.g. due to propagation)
+        [[ -z "$wrapGNUstepAppsHookHasRun" ]] || return 0
+        wrapGNUstepAppsHookHasRun=1
+
+        local targetDirs=("$prefix/bin")
+        echo "wrapping GNUstep applications in ${targetDirs[@]}"
+
+        for targetDir in "${targetDirs[@]}"; do
+            [[ -d "$targetDir" ]] || continue
+
+            while IFS= read -r -d '' file; do
+                ensureGNUstepConfig
+                echo "wrapping $file"
+                wrapGNUstepApp "$file"
+            done < <(find "$targetDir" ! -type d -executable -print0)
+        done
+    }
+
+    fixupOutputHooks+=(wrapGNUstepAppsHook)
+fi
diff --git a/nixpkgs/pkgs/desktops/lomiri/development/geonames/default.nix b/nixpkgs/pkgs/desktops/lomiri/development/geonames/default.nix
index 035837b1c47c..ce77bca6bc41 100644
--- a/nixpkgs/pkgs/desktops/lomiri/development/geonames/default.nix
+++ b/nixpkgs/pkgs/desktops/lomiri/development/geonames/default.nix
@@ -99,6 +99,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Parse and query the geonames database dump";
+    mainProgram = "geonames-demo";
     homepage = "https://gitlab.com/ubports/development/core/geonames";
     changelog = "https://gitlab.com/ubports/development/core/geonames/-/blob/${finalAttrs.version}/ChangeLog";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/desktops/lomiri/services/lomiri-thumbnailer/default.nix b/nixpkgs/pkgs/desktops/lomiri/services/lomiri-thumbnailer/default.nix
index 6300cc52545b..e400b73a25ab 100644
--- a/nixpkgs/pkgs/desktops/lomiri/services/lomiri-thumbnailer/default.nix
+++ b/nixpkgs/pkgs/desktops/lomiri/services/lomiri-thumbnailer/default.nix
@@ -205,6 +205,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "D-Bus service for out of process thumbnailing";
+    mainProgram = "lomiri-thumbnailer-admin";
     homepage = "https://gitlab.com/ubports/development/core/lomiri-thumbnailer";
     changelog = "https://gitlab.com/ubports/development/core/lomiri-thumbnailer/-/blob/${finalAttrs.version}/ChangeLog";
     license = with licenses; [ gpl3Only lgpl3Only ];
diff --git a/nixpkgs/pkgs/desktops/lumina/lumina-calculator/default.nix b/nixpkgs/pkgs/desktops/lumina/lumina-calculator/default.nix
index a8769e3d26ee..758bbf70d851 100644
--- a/nixpkgs/pkgs/desktops/lumina/lumina-calculator/default.nix
+++ b/nixpkgs/pkgs/desktops/lumina/lumina-calculator/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Scientific calculator for the Lumina Desktop";
+    mainProgram = "lumina-calculator";
     homepage = "https://github.com/lumina-desktop/lumina-calculator";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/lumina/lumina-pdf/default.nix b/nixpkgs/pkgs/desktops/lumina/lumina-pdf/default.nix
index 0464287b9674..cc9bd48c9de1 100644
--- a/nixpkgs/pkgs/desktops/lumina/lumina-pdf/default.nix
+++ b/nixpkgs/pkgs/desktops/lumina/lumina-pdf/default.nix
@@ -30,6 +30,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "PDF viewer for the Lumina Desktop";
+    mainProgram = "lumina-pdf";
     homepage = "https://github.com/lumina-desktop/lumina-pdf";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/lxde/core/lxappearance/default.nix b/nixpkgs/pkgs/desktops/lxde/core/lxappearance/default.nix
index 6e341681cba3..3dc93a0f3386 100644
--- a/nixpkgs/pkgs/desktops/lxde/core/lxappearance/default.nix
+++ b/nixpkgs/pkgs/desktops/lxde/core/lxappearance/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Lightweight program for configuring the theme and fonts of gtk applications";
+    mainProgram = "lxappearance";
     homepage = "https://lxde.org/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/lxde/core/lxrandr/default.nix b/nixpkgs/pkgs/desktops/lxde/core/lxrandr/default.nix
index b6358cadeadd..791540468f3a 100644
--- a/nixpkgs/pkgs/desktops/lxde/core/lxrandr/default.nix
+++ b/nixpkgs/pkgs/desktops/lxde/core/lxrandr/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Standard screen manager of LXDE";
+    mainProgram = "lxrandr";
     homepage = "https://lxde.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ rawkode ];
diff --git a/nixpkgs/pkgs/desktops/lxde/core/lxtask/default.nix b/nixpkgs/pkgs/desktops/lxde/core/lxtask/default.nix
index d2a560afd065..2daece75cbd4 100644
--- a/nixpkgs/pkgs/desktops/lxde/core/lxtask/default.nix
+++ b/nixpkgs/pkgs/desktops/lxde/core/lxtask/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.lxde.org/en/LXTask";
     description = "Lightweight and desktop independent task manager";
+    mainProgram = "lxtask";
     longDescription = ''
       LXTask is a lightweight task manager derived from xfce4 task manager
       with all xfce4 dependencies removed, some bugs fixed, and some
diff --git a/nixpkgs/pkgs/desktops/lxqt/compton-conf/default.nix b/nixpkgs/pkgs/desktops/lxqt/compton-conf/default.nix
index 4a9a878d31c7..f54fbd92bd35 100644
--- a/nixpkgs/pkgs/desktops/lxqt/compton-conf/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/compton-conf/default.nix
@@ -45,6 +45,7 @@ mkDerivation rec {
     broken = stdenv.isDarwin;
     homepage = "https://github.com/lxqt/compton-conf";
     description = "GUI configuration tool for compton X composite manager";
+    mainProgram = "compton-conf";
     license = licenses.lgpl21Plus;
     platforms = with platforms; unix;
     maintainers = teams.lxqt.members;
diff --git a/nixpkgs/pkgs/desktops/lxqt/liblxqt/default.nix b/nixpkgs/pkgs/desktops/lxqt/liblxqt/default.nix
index f7fba687bb86..8a5316d73f53 100644
--- a/nixpkgs/pkgs/desktops/lxqt/liblxqt/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/liblxqt/default.nix
@@ -54,6 +54,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Core utility library for all LXQt components";
+    mainProgram = "lxqt-backlight_backend";
     homepage = "https://github.com/lxqt/liblxqt";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/lxqt/lximage-qt/default.nix b/nixpkgs/pkgs/desktops/lxqt/lximage-qt/default.nix
index ec95c19b0c5a..2e49678f80f9 100644
--- a/nixpkgs/pkgs/desktops/lxqt/lximage-qt/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/lximage-qt/default.nix
@@ -51,6 +51,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/lximage-qt";
     description = "The image viewer and screenshot tool for lxqt";
+    mainProgram = "lximage-qt";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
     maintainers = teams.lxqt.members;
diff --git a/nixpkgs/pkgs/desktops/lxqt/lxqt-about/default.nix b/nixpkgs/pkgs/desktops/lxqt/lxqt-about/default.nix
index fd20c68ba863..e78f0ba4e233 100644
--- a/nixpkgs/pkgs/desktops/lxqt/lxqt-about/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/lxqt-about/default.nix
@@ -42,6 +42,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/lxqt-about";
     description = "Dialogue window providing information about LXQt and the system it's running on";
+    mainProgram = "lxqt-about";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = teams.lxqt.members;
diff --git a/nixpkgs/pkgs/desktops/lxqt/lxqt-archiver/default.nix b/nixpkgs/pkgs/desktops/lxqt/lxqt-archiver/default.nix
index 40cad3cb6082..0adf8a085965 100644
--- a/nixpkgs/pkgs/desktops/lxqt/lxqt-archiver/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/lxqt-archiver/default.nix
@@ -48,6 +48,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/lxqt-archiver/";
     description = "Archive tool for the LXQt desktop environment";
+    mainProgram = "lxqt-archiver";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
     maintainers = with maintainers; [ jchw ] ++ teams.lxqt.members;
diff --git a/nixpkgs/pkgs/desktops/lxqt/lxqt-build-tools/default.nix b/nixpkgs/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
index b3874abfa576..4398dd342774 100644
--- a/nixpkgs/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
@@ -63,6 +63,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/lxqt-build-tools";
     description = "Various packaging tools and scripts for LXQt applications";
+    mainProgram = "lxqt-transupdate";
     license = licenses.lgpl21Plus;
     platforms = with platforms; unix;
     maintainers = teams.lxqt.members;
diff --git a/nixpkgs/pkgs/desktops/lxqt/lxqt-panel/default.nix b/nixpkgs/pkgs/desktops/lxqt/lxqt-panel/default.nix
index 16895a1aa956..5b141e7962d5 100644
--- a/nixpkgs/pkgs/desktops/lxqt/lxqt-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/lxqt-panel/default.nix
@@ -76,6 +76,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/lxqt-panel";
     description = "The LXQt desktop panel";
+    mainProgram = "lxqt-panel";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = teams.lxqt.members;
diff --git a/nixpkgs/pkgs/desktops/lxqt/lxqt-runner/default.nix b/nixpkgs/pkgs/desktops/lxqt/lxqt-runner/default.nix
index 3d5bdf0a01b8..465a844c451f 100644
--- a/nixpkgs/pkgs/desktops/lxqt/lxqt-runner/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/lxqt-runner/default.nix
@@ -54,6 +54,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/lxqt-runner";
     description = "Tool used to launch programs quickly by typing their names";
+    mainProgram = "lxqt-runner";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = teams.lxqt.members;
diff --git a/nixpkgs/pkgs/desktops/lxqt/obconf-qt/default.nix b/nixpkgs/pkgs/desktops/lxqt/obconf-qt/default.nix
index d44077db4fcf..fc0a0ddd076d 100644
--- a/nixpkgs/pkgs/desktops/lxqt/obconf-qt/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/obconf-qt/default.nix
@@ -46,6 +46,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/obconf-qt";
     description = "The Qt port of obconf, the Openbox configuration tool";
+    mainProgram = "obconf-qt";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
     maintainers = teams.lxqt.members;
diff --git a/nixpkgs/pkgs/desktops/lxqt/pavucontrol-qt/default.nix b/nixpkgs/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
index f5b69b2e85fa..6703ed1154fc 100644
--- a/nixpkgs/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
@@ -38,6 +38,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/pavucontrol-qt";
     description = "A Pulseaudio mixer in Qt (port of pavucontrol)";
+    mainProgram = "pavucontrol-qt";
     license = licenses.gpl2Plus;
     platforms = with platforms; linux;
     maintainers = teams.lxqt.members;
diff --git a/nixpkgs/pkgs/desktops/lxqt/pcmanfm-qt/default.nix b/nixpkgs/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
index 82868794e7d2..3d8efb1e9f0a 100644
--- a/nixpkgs/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
@@ -52,6 +52,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/pcmanfm-qt";
     description = "File manager and desktop icon manager (Qt port of PCManFM and libfm)";
+    mainProgram = "pcmanfm-qt";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
     maintainers = teams.lxqt.members;
diff --git a/nixpkgs/pkgs/desktops/lxqt/qlipper/default.nix b/nixpkgs/pkgs/desktops/lxqt/qlipper/default.nix
index 91f11e8d1374..5ebb69a861c0 100644
--- a/nixpkgs/pkgs/desktops/lxqt/qlipper/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/qlipper/default.nix
@@ -31,6 +31,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Cross-platform clipboard history applet";
+    mainProgram = "qlipper";
     homepage = "https://github.com/pvanek/qlipper";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
diff --git a/nixpkgs/pkgs/desktops/lxqt/qps/default.nix b/nixpkgs/pkgs/desktops/lxqt/qps/default.nix
index 0b6b81a4e39f..f04b2e595862 100644
--- a/nixpkgs/pkgs/desktops/lxqt/qps/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/qps/default.nix
@@ -42,6 +42,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/qps";
     description = "Qt based process manager";
+    mainProgram = "qps";
     license = licenses.gpl2Plus;
     platforms = with platforms; linux; # does not build on darwin
     maintainers = teams.lxqt.members;
diff --git a/nixpkgs/pkgs/desktops/lxqt/qterminal/default.nix b/nixpkgs/pkgs/desktops/lxqt/qterminal/default.nix
index 0a1bf1f82d12..8a47980d67b7 100644
--- a/nixpkgs/pkgs/desktops/lxqt/qterminal/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/qterminal/default.nix
@@ -41,6 +41,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/qterminal";
     description = "A lightweight Qt-based terminal emulator";
+    mainProgram = "qterminal";
     license = licenses.gpl2Plus;
     platforms = with platforms; unix;
     maintainers = with maintainers; teams.lxqt.members;
diff --git a/nixpkgs/pkgs/desktops/lxqt/qtxdg-tools/default.nix b/nixpkgs/pkgs/desktops/lxqt/qtxdg-tools/default.nix
index 10476a00cf73..06374affdaac 100644
--- a/nixpkgs/pkgs/desktops/lxqt/qtxdg-tools/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/qtxdg-tools/default.nix
@@ -34,6 +34,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/qtxdg-tools";
     description = "libqtxdg user tools";
+    mainProgram = "qtxdg-mat";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = teams.lxqt.members;
diff --git a/nixpkgs/pkgs/desktops/lxqt/screengrab/default.nix b/nixpkgs/pkgs/desktops/lxqt/screengrab/default.nix
index 59513dfebfda..d2c00bebef01 100644
--- a/nixpkgs/pkgs/desktops/lxqt/screengrab/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/screengrab/default.nix
@@ -49,6 +49,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lxqt/screengrab";
     description = "Crossplatform tool for fast making screenshots";
+    mainProgram = "screengrab";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = teams.lxqt.members;
diff --git a/nixpkgs/pkgs/desktops/mate/atril/default.nix b/nixpkgs/pkgs/desktops/mate/atril/default.nix
index 29c0e1b824e9..611721da3642 100644
--- a/nixpkgs/pkgs/desktops/mate/atril/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/atril/default.nix
@@ -3,16 +3,17 @@
 , fetchurl
 , pkg-config
 , gettext
+, caja
 , gtk3
 , glib
 , libxml2
 , libarchive
 , libsecret
 , poppler
+, mate-desktop
 , itstool
 , hicolor-icon-theme
 , texlive
-, mate
 , wrapGAppsHook
 , enableEpub ? true
 , webkitgtk_4_1
@@ -28,11 +29,11 @@
 
 stdenv.mkDerivation rec {
   pname = "atril";
-  version = "1.26.2";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "wwW51fVxP0Jiau4DggkTA0IrPXGlbd1lkyzNsjx86SY=";
+    sha256 = "ztRyX26bccTqY2dr/DzDvgnSnboIqnp6uXlk4LQ1UWI=";
   };
 
   nativeBuildInputs = [
@@ -42,6 +43,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    caja
     gtk3
     glib
     itstool
@@ -49,8 +51,7 @@ stdenv.mkDerivation rec {
     libsecret
     libxml2
     poppler
-    mate.caja
-    mate.mate-desktop
+    mate-desktop
     hicolor-icon-theme
     texlive.bin.core # for synctex, used by the pdf back-end
   ]
diff --git a/nixpkgs/pkgs/desktops/mate/caja-dropbox/default.nix b/nixpkgs/pkgs/desktops/mate/caja-dropbox/default.nix
index bb19521e835c..7841d0769a36 100644
--- a/nixpkgs/pkgs/desktops/mate/caja-dropbox/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/caja-dropbox/default.nix
@@ -5,8 +5,8 @@
 , pkg-config
 , gobject-introspection
 , gdk-pixbuf
+, caja
 , gtk3
-, mate
 , python3
 , dropbox
 , mateUpdateScript
@@ -17,11 +17,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "caja-dropbox";
-  version = "1.26.0";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "16w4r0zjps12lmzwiwpb9qnmbvd0p391q97296sxa8k88b1x14wn";
+    sha256 = "t0w4qZQlS9PPfLxxK8LsdRagypQqpleFJs29aqYgGWM=";
   };
 
   patches = [
@@ -44,8 +44,8 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    caja
     gtk3
-    mate.caja
     python3
   ];
 
diff --git a/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix b/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix
index 1cbbd97cc484..d3bc563f0729 100644
--- a/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix
@@ -3,23 +3,24 @@
 , fetchurl
 , pkg-config
 , gettext
+, caja
+, glib
+, gst_all_1
 , gtk3
 , gupnp
-, mate
 , imagemagick
+, mate-desktop
 , wrapGAppsHook
 , mateUpdateScript
-, glib
-, substituteAll
 }:
 
 stdenv.mkDerivation rec {
   pname = "caja-extensions";
-  version = "1.26.1";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "WJwZ4/oQJC1iOaXMuVhVmENqVuvpTS6ypQtZUMzh1SA=";
+    sha256 = "0phsXgdAg1/icc+9WCPu6vAyka8XYyA/RwCruBCeMXU=";
   };
 
   nativeBuildInputs = [
@@ -29,31 +30,20 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    caja
+    glib
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
     gtk3
     gupnp
-    mate.caja
-    mate.mate-desktop
     imagemagick
-  ];
-
-  patches = [
-    (substituteAll {
-      src = ./hardcode-gsettings.patch;
-      caja_gsetttings_path = glib.getSchemaPath mate.caja;
-      desktop_gsetttings_path = glib.getSchemaPath mate.mate-desktop;
-    })
+    mate-desktop
   ];
 
   postPatch = ''
-    substituteInPlace open-terminal/caja-open-terminal.c --subst-var-by \
-      GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
-    substituteInPlace sendto/caja-sendto-command.c --subst-var-by \
-      GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
-    substituteInPlace wallpaper/caja-wallpaper-extension.c --subst-var-by \
-      GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
-
     for f in image-converter/caja-image-{resizer,rotator}.c; do
-      substituteInPlace $f --replace "/usr/bin/convert" "${imagemagick}/bin/convert"
+      substituteInPlace $f --replace-fail 'argv[0] = "convert"' 'argv[0] = "${imagemagick}/bin/convert"'
     done
   '';
 
@@ -65,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Set of extensions for Caja file manager";
+    mainProgram = "caja-sendto";
     homepage = "https://mate-desktop.org";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/mate/caja-extensions/hardcode-gsettings.patch b/nixpkgs/pkgs/desktops/mate/caja-extensions/hardcode-gsettings.patch
deleted file mode 100644
index f37124963d0d..000000000000
--- a/nixpkgs/pkgs/desktops/mate/caja-extensions/hardcode-gsettings.patch
+++ /dev/null
@@ -1,169 +0,0 @@
-diff --git a/open-terminal/caja-open-terminal.c b/open-terminal/caja-open-terminal.c
-index e14a9bf..691afab 100644
---- a/open-terminal/caja-open-terminal.c
-+++ b/open-terminal/caja-open-terminal.c
-@@ -135,8 +135,18 @@ desktop_opens_home_dir (void)
- {
- 	gboolean result;
- 	GSettings* settings;
--
--	settings = g_settings_new (COT_SCHEMA);
-+    GSettingsSchemaSource* schema_source;
-+    GSettingsSchema* schema;
-+
-+    schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@",
-+                                                                g_settings_schema_source_get_default(),
-+                                                                TRUE, NULL);
-+    schema = g_settings_schema_source_lookup(schema_source,
-+                                             COT_SCHEMA,
-+                                             FALSE);
-+    settings = g_settings_new_full(schema, NULL, NULL);
-+    g_settings_schema_source_unref(schema_source);
-+    g_settings_schema_unref(schema);
- 	result = g_settings_get_boolean (settings, COT_DESKTOP_KEY);
- 	g_object_unref (settings);
- 	return result;
-@@ -147,8 +157,18 @@ set_desktop_opens_home_dir (gboolean val)
- {
- 	gboolean result;
- 	GSettings* settings;
--
--	settings = g_settings_new (COT_SCHEMA);
-+    GSettingsSchemaSource* schema_source;
-+    GSettingsSchema* schema;
-+
-+    schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@",
-+                                                                g_settings_schema_source_get_default(),
-+                                                                TRUE, NULL);
-+    schema = g_settings_schema_source_lookup(schema_source,
-+                                             COT_SCHEMA,
-+                                             FALSE);
-+    settings = g_settings_new_full(schema, NULL, NULL);
-+    g_settings_schema_source_unref(schema_source);
-+    g_settings_schema_unref(schema);
- 	result = g_settings_set_boolean (settings, COT_DESKTOP_KEY, val);
- 	g_object_unref (settings);
- 	return result;
-@@ -159,8 +179,18 @@ desktop_is_home_dir (void)
- {
- 	gboolean result;
- 	GSettings* settings;
--
--	settings = g_settings_new (CAJA_SCHEMA);
-+    GSettingsSchemaSource* schema_source;
-+    GSettingsSchema* schema;
-+
-+    schema_source = g_settings_schema_source_new_from_directory("@caja_gsetttings_path@",
-+                                                                g_settings_schema_source_get_default(),
-+                                                                TRUE, NULL);
-+    schema = g_settings_schema_source_lookup(schema_source,
-+                                             CAJA_SCHEMA,
-+                                             FALSE);
-+    settings = g_settings_new_full(schema, NULL, NULL);
-+    g_settings_schema_source_unref(schema_source);
-+    g_settings_schema_unref(schema);
- 	result = g_settings_get_boolean (settings, CAJA_DESKTOP_KEY);
- 	g_object_unref (settings);
- 	return result;
-@@ -171,8 +201,18 @@ default_terminal_application (void)
- {
- 	gchar *result;
- 	GSettings* settings;
--
--	settings = g_settings_new (TERM_SCHEMA);
-+    GSettingsSchemaSource* schema_source;
-+    GSettingsSchema* schema;
-+
-+    schema_source = g_settings_schema_source_new_from_directory("@desktop_gsetttings_path@",
-+                                                                g_settings_schema_source_get_default(),
-+                                                                TRUE, NULL);
-+    schema = g_settings_schema_source_lookup(schema_source,
-+                                             TERM_SCHEMA,
-+                                             FALSE);
-+    settings = g_settings_new_full(schema, NULL, NULL);
-+    g_settings_schema_source_unref(schema_source);
-+    g_settings_schema_unref(schema);
- 	result = g_settings_get_string (settings, TERM_EXEC_KEY);
- 	g_object_unref (settings);
- 
-@@ -189,8 +229,18 @@ set_default_terminal_application (const gchar* exec)
- {
- 	gboolean result;
- 	GSettings* settings;
--
--	settings = g_settings_new (TERM_SCHEMA);
-+    GSettingsSchemaSource* schema_source;
-+    GSettingsSchema* schema;
-+
-+    schema_source = g_settings_schema_source_new_from_directory("@desktop_gsetttings_path@",
-+                                                                g_settings_schema_source_get_default(),
-+                                                                TRUE, NULL);
-+    schema = g_settings_schema_source_lookup(schema_source,
-+                                             TERM_SCHEMA,
-+                                             FALSE);
-+    settings = g_settings_new_full(schema, NULL, NULL);
-+    g_settings_schema_source_unref(schema_source);
-+    g_settings_schema_unref(schema);
- 	result = g_settings_set_string (settings, TERM_EXEC_KEY, exec);
- 	g_object_unref (settings);
- 	return result;
-diff --git a/sendto/caja-sendto-command.c b/sendto/caja-sendto-command.c
-index 8181db6..579dc81 100644
---- a/sendto/caja-sendto-command.c
-+++ b/sendto/caja-sendto-command.c
-@@ -801,6 +801,8 @@ caja_sendto_init (void)
- int main (int argc, char **argv)
- {
- 	GOptionContext *context;
-+    GSettingsSchemaSource* schema_source;
-+    GSettingsSchema* schema;
- 	GError *error = NULL;
- 
- #ifdef ENABLE_NLS
-@@ -818,7 +820,15 @@ int main (int argc, char **argv)
- 		return 1;
- 	}
- 
--	settings = g_settings_new ("org.mate.Caja.Sendto");
-+    schema_source = g_settings_schema_source_new_from_directory("@GSETTINGS_PATH@",
-+                                                                g_settings_schema_source_get_default(),
-+                                                                TRUE, NULL);
-+    schema = g_settings_schema_source_lookup(schema_source,
-+                                             "org.mate.Caja.Sendto",
-+                                             FALSE);
-+    settings = g_settings_new_full(schema, NULL, NULL);
-+    g_settings_schema_source_unref(schema_source);
-+    g_settings_schema_unref(schema);
- 	caja_sendto_init ();
- 	if (caja_sendto_plugin_init () == FALSE) {
- 		GtkWidget *error_dialog;
-diff --git a/wallpaper/caja-wallpaper-extension.c b/wallpaper/caja-wallpaper-extension.c
-index 3119e9f..4f80c88 100644
---- a/wallpaper/caja-wallpaper-extension.c
-+++ b/wallpaper/caja-wallpaper-extension.c
-@@ -47,6 +47,8 @@ set_wallpaper_callback (CajaMenuItem *item,
- {
-     GList *files;
-     GSettings *settings;
-+    GSettingsSchemaSource* schema_source;
-+    GSettingsSchema* schema;
-     CajaFileInfo *file;
-     gchar *uri;
-     gchar *filename;
-@@ -57,7 +59,15 @@ set_wallpaper_callback (CajaMenuItem *item,
-     uri = caja_file_info_get_uri (file);
-     filename = g_filename_from_uri(uri, NULL, NULL);
- 
--    settings = g_settings_new (WP_SCHEMA);
-+    schema_source = g_settings_schema_source_new_from_directory("@desktop_gsetttings_path@",
-+                                                                g_settings_schema_source_get_default(),
-+                                                                TRUE, NULL);
-+    schema = g_settings_schema_source_lookup(schema_source,
-+                                             WP_SCHEMA,
-+                                             FALSE);
-+    settings = g_settings_new_full(schema, NULL, NULL);
-+    g_settings_schema_source_unref(schema_source);
-+    g_settings_schema_unref(schema);
- 
-     g_settings_set_string (settings, WP_FILE_KEY, filename);
- 
diff --git a/nixpkgs/pkgs/desktops/mate/caja-with-extensions/default.nix b/nixpkgs/pkgs/desktops/mate/caja-with-extensions/default.nix
deleted file mode 100644
index 4de6d5d6d760..000000000000
--- a/nixpkgs/pkgs/desktops/mate/caja-with-extensions/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv
-, lib
-, makeWrapper
-, caja-extensions
-, caja
-, extensions ? [ caja-extensions ]
-, mateUpdateScript
-}:
-
-stdenv.mkDerivation {
-  pname = "${caja.pname}-with-extensions";
-  version = caja.version;
-
-  dontUnpack = true;
-
-  nativeBuildInputs = [
-    makeWrapper
-  ];
-
-  inherit caja;
-
-  installPhase = ''
-    mkdir -p $out/bin
-    makeWrapper $caja/bin/caja $out/bin/caja \
-    --set CAJA_EXTENSION_DIRS ${lib.concatMapStringsSep ":" (x: "${x.outPath}/lib/caja/extensions-2.0") extensions}
-  '';
-
-  inherit (caja.meta);
-}
diff --git a/nixpkgs/pkgs/desktops/mate/caja/default.nix b/nixpkgs/pkgs/desktops/mate/caja/default.nix
index fc5a8e93d9b9..a09cef4621a8 100644
--- a/nixpkgs/pkgs/desktops/mate/caja/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/caja/default.nix
@@ -3,24 +3,26 @@
 , fetchurl
 , pkg-config
 , gettext
+, gtk-layer-shell
 , gtk3
 , libnotify
 , libxml2
 , libexif
 , exempi
-, mate
+, mate-desktop
 , hicolor-icon-theme
+, wayland
 , wrapGAppsHook
 , mateUpdateScript
 }:
 
 stdenv.mkDerivation rec {
   pname = "caja";
-  version = "1.26.3";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "gT7fCKNvmV7DwVBBMf+K+70CH24VhmQ/5dztXnPleQ0=";
+    sha256 = "HjAUzhRVgX7C73TQnv37aDXYo3LtmhbvtZGe97ghlXo=";
   };
 
   nativeBuildInputs = [
@@ -30,13 +32,15 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    gtk-layer-shell
     gtk3
     libnotify
     libxml2
     libexif
     exempi
-    mate.mate-desktop
+    mate-desktop
     hicolor-icon-theme
+    wayland
   ];
 
   configureFlags = [ "--disable-update-mimedb" ];
diff --git a/nixpkgs/pkgs/desktops/mate/caja/with-extensions.nix b/nixpkgs/pkgs/desktops/mate/caja/with-extensions.nix
new file mode 100644
index 000000000000..b9a55b4b9209
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/caja/with-extensions.nix
@@ -0,0 +1,61 @@
+{ stdenv
+, lib
+, glib
+, wrapGAppsHook
+, xorg
+, caja
+, cajaExtensions
+, extensions ? [ ]
+, useDefaultExtensions ? true
+}:
+
+let
+  selectedExtensions = extensions ++ (lib.optionals useDefaultExtensions cajaExtensions);
+in
+stdenv.mkDerivation {
+  pname = "${caja.pname}-with-extensions";
+  version = caja.version;
+
+  src = null;
+
+  nativeBuildInputs = [
+    glib
+    wrapGAppsHook
+  ];
+
+  buildInputs = lib.forEach selectedExtensions (x: x.buildInputs) ++ selectedExtensions
+    ++ [ caja ] ++ caja.buildInputs;
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  preferLocalBuild = true;
+  allowSubstitutes = false;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    ${xorg.lndir}/bin/lndir -silent ${caja} $out
+
+    dbus_service_path="share/dbus-1/services/org.mate.freedesktop.FileManager1.service"
+    rm -f $out/share/applications/* "$out/$dbus_service_path"
+    for file in ${caja}/share/applications/*; do
+      substitute "$file" "$out/share/applications/$(basename $file)" \
+        --replace-fail "${caja}" "$out"
+    done
+    substitute "${caja}/$dbus_service_path" "$out/$dbus_service_path" \
+      --replace-fail "${caja}" "$out"
+
+    runHook postInstall
+  '';
+
+  preFixup = lib.optionalString (selectedExtensions != [ ]) ''
+    gappsWrapperArgs+=(
+      --set CAJA_EXTENSION_DIRS ${lib.concatMapStringsSep ":" (x: "${x.outPath}/lib/caja/extensions-2.0") selectedExtensions}
+    )
+  '';
+
+  inherit (caja.meta);
+}
diff --git a/nixpkgs/pkgs/desktops/mate/default.nix b/nixpkgs/pkgs/desktops/mate/default.nix
index 8604c0f5ee90..da8c8e065789 100644
--- a/nixpkgs/pkgs/desktops/mate/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/default.nix
@@ -14,7 +14,7 @@ let
     caja = callPackage ./caja { };
     caja-dropbox = callPackage ./caja-dropbox { };
     caja-extensions = callPackage ./caja-extensions { };
-    caja-with-extensions = callPackage ./caja-with-extensions { };
+    caja-with-extensions = callPackage ./caja/with-extensions.nix { };
     engrampa = callPackage ./engrampa { };
     eom = callPackage ./eom { };
     libmatekbd = callPackage ./libmatekbd { };
@@ -27,6 +27,7 @@ let
     mate-common = callPackage ./mate-common { };
     mate-control-center = callPackage ./mate-control-center { };
     mate-desktop = callPackage ./mate-desktop { };
+    mate-gsettings-overrides = callPackage ./mate-gsettings-overrides { };
     mate-icon-theme = callPackage ./mate-icon-theme { };
     mate-icon-theme-faenza = callPackage ./mate-icon-theme-faenza { };
     mate-indicator-applet = callPackage ./mate-indicator-applet { };
@@ -35,6 +36,7 @@ let
     mate-netbook = callPackage ./mate-netbook { };
     mate-notification-daemon = callPackage ./mate-notification-daemon { };
     mate-panel = callPackage ./mate-panel { };
+    mate-panel-with-applets = callPackage ./mate-panel/with-applets.nix { };
     mate-polkit = callPackage ./mate-polkit { };
     mate-power-manager = callPackage ./mate-power-manager { };
     mate-sensors-applet = callPackage ./mate-sensors-applet { };
@@ -49,12 +51,13 @@ let
     mate-user-guide = callPackage ./mate-user-guide { };
     mate-user-share = callPackage ./mate-user-share { };
     mate-utils = callPackage ./mate-utils { };
+    mate-wayland-session = callPackage ./mate-wayland-session { };
     mozo = callPackage ./mozo { };
-    pluma = callPackage ./pluma { inherit (pkgs.gnome) adwaita-icon-theme; };
+    pluma = callPackage ./pluma { };
     python-caja = callPackage ./python-caja { };
 
+    # Caja and mate-panel are managed in NixOS module.
     basePackages = [
-      caja
       libmatekbd
       libmatemixer
       libmateweather
@@ -65,7 +68,6 @@ let
       mate-icon-theme
       mate-menus
       mate-notification-daemon
-      mate-panel
       mate-polkit
       mate-session-manager
       mate-settings-daemon
@@ -75,7 +77,7 @@ let
 
     extraPackages = [
       atril
-      caja-extensions
+      caja-extensions # for caja-sendto
       engrampa
       eom
       mate-applets
@@ -86,7 +88,6 @@ let
       mate-netbook
       mate-power-manager
       mate-screensaver
-      mate-sensors-applet
       mate-system-monitor
       mate-terminal
       mate-user-guide
@@ -96,6 +97,20 @@ let
       pluma
     ];
 
+    cajaExtensions = [
+      caja-extensions
+    ];
+
+    panelApplets = [
+      mate-applets
+      mate-indicator-applet
+      mate-netbook
+      mate-notification-daemon
+      mate-media
+      mate-power-manager
+      mate-sensors-applet
+      mate-utils
+    ];
   };
 
 in lib.makeScope pkgs.newScope packages
diff --git a/nixpkgs/pkgs/desktops/mate/engrampa/default.nix b/nixpkgs/pkgs/desktops/mate/engrampa/default.nix
index 8ed6f37fc4d6..d5fb1aea2bbe 100644
--- a/nixpkgs/pkgs/desktops/mate/engrampa/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/engrampa/default.nix
@@ -5,22 +5,24 @@
 , gettext
 , itstool
 , libxml2
+, caja
 , gtk3
-, mate
 , hicolor-icon-theme
+, json-glib
+, mate-desktop
 , wrapGAppsHook
 , mateUpdateScript
-# can be defaulted to true once engrampa builds with meson (version > 1.27.0)
+# can be defaulted to true once switch to meson
 , withMagic ? stdenv.buildPlatform.canExecute stdenv.hostPlatform, file
 }:
 
 stdenv.mkDerivation rec {
   pname = "engrampa";
-  version = "1.26.2";
+  version = "1.28.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "cx9cR7UfNvyMiWUrbnfbT7K0Zjid6ZkMmFUpo9T/iEw=";
+    sha256 = "nFxMm8+LCO6qjydVONJLTJVQidWK7AMx6JwCuE2FOGo=";
   };
 
   nativeBuildInputs = [
@@ -32,10 +34,11 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    caja
     gtk3
-    mate.caja
     hicolor-icon-theme
-    mate.mate-desktop
+    json-glib
+    mate-desktop
   ] ++ lib.optionals withMagic [
     file
   ];
@@ -52,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Archive Manager for MATE";
+    mainProgram = "engrampa";
     homepage = "https://mate-desktop.org";
     license = with licenses; [ gpl2Plus lgpl2Plus fdl11Plus ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/mate/eom/default.nix b/nixpkgs/pkgs/desktops/mate/eom/default.nix
index 765d10dd9d68..98475acb3cd0 100644
--- a/nixpkgs/pkgs/desktops/mate/eom/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/eom/default.nix
@@ -13,7 +13,7 @@
 , libpeas
 , shared-mime-info
 , gtk3
-, mate
+, mate-desktop
 , hicolor-icon-theme
 , wrapGAppsHook
 , mateUpdateScript
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eom";
-  version = "1.26.1";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "tSUSKUlPfmxi4J+yEeQzCN9PB0xVG6CiM9ws1oZLmWA=";
+    sha256 = "mgHKsplaGoxyWMhl6uXxgu1HMMRGcq/cOgfkI+3VOrw=";
   };
 
   nativeBuildInputs = [
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     shared-mime-info
     gtk3
     libpeas
-    mate.mate-desktop
+    mate-desktop
     hicolor-icon-theme
   ];
 
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An image viewing and cataloging program for the MATE desktop";
+    mainProgram = "eom";
     homepage = "https://mate-desktop.org";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix b/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix
index 901d1c6bfffa..918e28f255aa 100644
--- a/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmatekbd";
-  version = "1.26.1";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "Y5ONkSUpRe7qiP2DdNEjG9g9As2WXGu6F8GF7bOXvO0=";
+    sha256 = "XS5YSDwrI9M1A9JMiPi5CijMAYnX5AAbPic6YE9v6A4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix b/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix
index 310bfb96a7d9..ebdd3eb07dda 100644
--- a/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix
@@ -7,6 +7,7 @@
 , glib
 , alsaSupport ? stdenv.isLinux
 , alsa-lib
+, udev
 , pulseaudioSupport ? config.pulseaudio or true
 , libpulseaudio
 , ossSupport ? false
@@ -15,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmatemixer";
-  version = "1.26.1";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "SWD1mmufr4KgHUpLjMJgtIaN2ZHv1Kmxe10KFaHToa4=";
+    sha256 = "XXO5Ijl/YGiOPJUw61MrzkbDDiYtsbU1L6MsQNhwoMc=";
   };
 
   nativeBuildInputs = [
@@ -29,9 +30,12 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
-  ]
-  ++ lib.optional alsaSupport alsa-lib
-  ++ lib.optional pulseaudioSupport libpulseaudio;
+  ] ++ lib.optionals alsaSupport [
+   alsa-lib
+   udev
+  ] ++ lib.optionals pulseaudioSupport [
+    libpulseaudio
+  ];
 
   configureFlags = lib.optional ossSupport "--enable-oss";
 
diff --git a/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix b/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix
index 4c7e6eb6c023..4c003c4a9873 100644
--- a/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmateweather";
-  version = "1.26.3";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "XmzSRBiEfLRazxfaW0NacTHLTsKs/2joKPNCob8T70o=";
+    sha256 = "VUNz3rWzk7nYSydd0spmyaSi0ObskgRPq4qlPjAy0rU=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/desktops/mate/marco/default.nix b/nixpkgs/pkgs/desktops/mate/marco/default.nix
index 0e71a9a86fd6..598cc51eca46 100644
--- a/nixpkgs/pkgs/desktops/mate/marco/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/marco/default.nix
@@ -14,6 +14,7 @@
 , gnome
 , glib
 , gtk3
+, mate-desktop
 , mate-settings-daemon
 , wrapGAppsHook
 , mateUpdateScript
@@ -21,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "marco";
-  version = "1.26.2";
+  version = "1.28.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "EvGiVP4QcvAwSIRxHgiaVoJ4CgEVk0Au043muUgOB6M=";
+    sha256 = "JJbl5A7pgM1oSUk6w+D4/Q3si4HGdNqNm6GaV38KwuE=";
   };
 
   nativeBuildInputs = [
@@ -45,9 +46,15 @@ stdenv.mkDerivation rec {
     libstartup_notification
     gtk3
     gnome.zenity
+    mate-desktop
     mate-settings-daemon
   ];
 
+  postPatch = ''
+    substituteInPlace src/core/util.c \
+      --replace-fail 'argvl[i++] = "zenity"' 'argvl[i++] = "${gnome.zenity}/bin/zenity"'
+  '';
+
   env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix b/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix
index dfb4e4620c51..8e358fe29ae0 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix
@@ -7,7 +7,7 @@
 , dbus-glib
 , glib
 , gtk3
-, gtksourceview3
+, gtksourceview4
 , gucharmap
 , libmateweather
 , libnl
@@ -20,7 +20,6 @@
 , polkit
 , upower
 , wirelesstools
-, mate
 , hicolor-icon-theme
 , wrapGAppsHook
 , mateUpdateScript
@@ -28,11 +27,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-applets";
-  version = "1.26.1";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "Orj2HbN23DM85MGHIsY6B/qz6OEnK34OCXrUWXsXwsI=";
+    sha256 = "G2vva9XTJvudyCj/kQ5LG5KUtGYMMR3ByQMQ/Zw1ZoY=";
   };
 
   nativeBuildInputs = [
@@ -45,7 +44,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     dbus-glib
     gtk3
-    gtksourceview3
+    gtksourceview4
     gucharmap
     hicolor-icon-theme
     libgtop
@@ -61,7 +60,7 @@ stdenv.mkDerivation rec {
     wirelesstools
   ];
 
-  configureFlags = [ "--enable-suid=no" ];
+  configureFlags = [ "--enable-suid=no" "--enable-in-process" ];
 
   env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
@@ -71,6 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Applets for use with the MATE panel";
+    mainProgram = "mate-cpufreq-selector";
     homepage = "https://mate-desktop.org";
     license = with licenses; [ gpl2Plus lgpl2Plus ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/mate/mate-backgrounds/default.nix b/nixpkgs/pkgs/desktops/mate/mate-backgrounds/default.nix
index 639f156c8ac7..0d512260d303 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-backgrounds/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-backgrounds/default.nix
@@ -1,31 +1,21 @@
 { lib
-, stdenv
+, stdenvNoCC
 , fetchurl
-, fetchpatch
 , meson
 , ninja
 , gettext
 , mateUpdateScript
 }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "mate-backgrounds";
-  version = "1.26.0";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0379hngy3ap1r5kmqvmzs9r710k2c9nal2ps3hq765df4ir15j8d";
+    sha256 = "UNGv0CSGvQesIqWmtu+jAxFI8NSKguSI2QmtVwA6aUM=";
   };
 
-  patches = [
-    # Fix build with meson 0.61, can be removed on next update.
-    # https://github.com/mate-desktop/mate-backgrounds/pull/39
-    (fetchpatch {
-      url = "https://github.com/mate-desktop/mate-backgrounds/commit/0096e237d420e6247a75a1c6940a818e309ac2a7.patch";
-      sha256 = "HEF8VWunFO+NCG18fZA7lbE2l8pc6Z3jcD+rSZ1Jsqg=";
-    })
-  ];
-
   nativeBuildInputs = [
     gettext
     meson
diff --git a/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix b/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix
index cdb743cac665..4a4d6db2a3b3 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-calc";
-  version = "1.26.0";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0mddfh9ixhh60nfgx5kcprcl9liavwqyina11q3pnpfs3n02df3y";
+    sha256 = "gEsSXR4oZLHnSvgW2psquLGUcrmvl0Q37nNVraXmKPU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-common/default.nix b/nixpkgs/pkgs/desktops/mate/mate-common/default.nix
index 0f4a1901932b..fac27474e32a 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-common/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-common/default.nix
@@ -1,16 +1,16 @@
 { lib
-, stdenv
+, stdenvNoCC
 , fetchurl
 , mateUpdateScript
 }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "mate-common";
-  version = "1.26.0";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "014wpfqpqmfkzv81paap4fz15mj1gsyvaxlrfqsp9a3yxw4f7jaf";
+    sha256 = "QrfCzuJo9x1+HBrU9pvNoOzWVXipZyIYfGt2N40mugo=";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix b/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix
index 8e2e3ea621c2..8305601204e2 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix
@@ -5,17 +5,27 @@
 , gettext
 , itstool
 , libxml2
+, accountsservice
+, caja
 , dbus-glib
 , libxklavier
 , libcanberra-gtk3
+, libgtop
+, libmatekbd
 , librsvg
-, libappindicator-gtk3
+, libayatana-appindicator
 , glib
 , desktop-file-utils
 , dconf
 , gtk3
 , polkit
-, mate
+, marco
+, mate-desktop
+, mate-menus
+, mate-panel
+, mate-settings-daemon
+, udisks2
+, systemd
 , hicolor-icon-theme
 , wrapGAppsHook
 , mateUpdateScript
@@ -23,11 +33,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-control-center";
-  version = "1.26.1";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "4F9JKjtleqVvxY989xvIyA344lNR/eTbT1I6uNtbVgg=";
+    sha256 = "6/LHBP1SSNwvmDb/KQKIae8p1QVJB8xhVzS2ODp5FLw=";
   };
 
   nativeBuildInputs = [
@@ -39,32 +49,41 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    accountsservice
     libxml2
     dbus-glib
     libxklavier
     libcanberra-gtk3
+    libgtop
+    libmatekbd
     librsvg
-    libappindicator-gtk3
+    libayatana-appindicator
     gtk3
     dconf
     polkit
     hicolor-icon-theme
-    mate.mate-desktop
-    mate.libmatekbd
-    mate.mate-menus
-    mate.mate-panel # for org.mate.panel schema, see m-c-c#678
-    mate.marco
-    mate.mate-settings-daemon
+    marco
+    mate-desktop
+    mate-menus
+    mate-panel # for org.mate.panel schema, see m-c-c#678
+    mate-settings-daemon
+    udisks2
+    systemd
   ];
 
+  postPatch = ''
+    substituteInPlace capplets/system-info/mate-system-info.c \
+      --replace-fail "/usr/bin/mate-about" "${mate-desktop}/bin/mate-about"
+  '';
+
   configureFlags = [ "--disable-update-mimedb" ];
 
   preFixup = ''
     gappsWrapperArgs+=(
       # WM keyboard shortcuts
-      --prefix XDG_DATA_DIRS : "${mate.marco}/share"
+      --prefix XDG_DATA_DIRS : "${marco}/share"
       # Desktop font, works only when passed after gtk3 schemas in the wrapper for some reason
-      --prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath mate.caja}"
+      --prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath caja}"
     )
   '';
 
diff --git a/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix b/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix
index d7c052ae3c24..4f917028bd80 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix
@@ -4,7 +4,7 @@
 , pkg-config
 , gettext
 , isocodes
-, gnome
+, libstartup_notification
 , gtk3
 , dconf
 , wrapGAppsHook
@@ -13,11 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-desktop";
-  version = "1.26.2";
+  version = "1.28.2";
+
+  outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "XtA/fFLXt+zknKHnNqp2au/rXGOeqz5oxwkMUw0CN2o=";
+    sha256 = "MrtLeSAUs5HB4biunBioK01EdlCYS0y6fSjpVWSWSqI=";
   };
 
   nativeBuildInputs = [
@@ -28,10 +30,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     dconf
-    gtk3
     isocodes
   ];
 
+  propagatedBuildInputs = [
+    gtk3
+    libstartup_notification
+  ];
+
   enableParallelBuilding = true;
 
   passthru.updateScript = mateUpdateScript { inherit pname; };
diff --git a/nixpkgs/pkgs/desktops/mate/mate-gsettings-overrides/default.nix b/nixpkgs/pkgs/desktops/mate/mate-gsettings-overrides/default.nix
new file mode 100644
index 000000000000..e9e2c3c3b0b9
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-gsettings-overrides/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, runCommand
+, gsettings-desktop-schemas
+, mate-wayland-session
+, glib
+}:
+
+let
+  gsettingsOverridePackages = [
+    gsettings-desktop-schemas
+    mate-wayland-session
+  ];
+in
+runCommand "mate-gsettings-overrides" { preferLocalBuild = true; } ''
+  data_dir="$out/share/gsettings-schemas/nixos-gsettings-overrides"
+  schema_dir="$data_dir/glib-2.0/schemas"
+  mkdir -p "$schema_dir"
+
+  ${lib.concatMapStringsSep "\n" (pkg: "cp -rf \"${glib.getSchemaPath pkg}\"/*.xml \"${glib.getSchemaPath pkg}\"/*.gschema.override \"$schema_dir\"") gsettingsOverridePackages}
+
+  chmod -R a+w "$data_dir"
+
+  ${glib.dev}/bin/glib-compile-schemas --strict "$schema_dir"
+''
diff --git a/nixpkgs/pkgs/desktops/mate/mate-icon-theme/default.nix b/nixpkgs/pkgs/desktops/mate/mate-icon-theme/default.nix
index 1f874fa6f16e..b951d929bb06 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-icon-theme/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-icon-theme/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-icon-theme";
-  version = "1.26.0";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0nha555fhhn0j5wmzmdc7bh93ckzwwdm8mwmzma5whkzslv09xa1";
+    sha256 = "lNYHkGDKXfdFQpId5O6ji30C0HVhyRk1bZXeh2+abTo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-indicator-applet/default.nix b/nixpkgs/pkgs/desktops/mate/mate-indicator-applet/default.nix
index b6445151f594..0a915625958b 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-indicator-applet/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-indicator-applet/default.nix
@@ -5,7 +5,7 @@
 , gettext
 , gtk3
 , libayatana-indicator
-, mate
+, mate-panel
 , hicolor-icon-theme
 , wrapGAppsHook
 , mateUpdateScript
@@ -13,17 +13,17 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-indicator-applet";
-  version = "1.26.0";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "144fh9f3lag2cqnmb6zxlh8k83ya8kha6rmd7r8gg3z5w3nzpyz4";
+    sha256 = "zrPXA5cKPlWNfNffCxwhceOvdSolSVrO0uIiwemtSc0=";
   };
 
   postPatch = ''
     # Find installed Unity & Ayatana (new-style) indicators
     substituteInPlace src/applet-main.c \
-      --replace '/usr/share' '/run/current-system/sw/share'
+      --replace-fail '/usr/share' '/run/current-system/sw/share'
   '';
 
   nativeBuildInputs = [
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     gtk3
     libayatana-indicator
-    mate.mate-panel
+    mate-panel
     hicolor-icon-theme
   ];
 
diff --git a/nixpkgs/pkgs/desktops/mate/mate-media/default.nix b/nixpkgs/pkgs/desktops/mate/mate-media/default.nix
index 0b5eae0172e0..4b2590088e1d 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-media/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-media/default.nix
@@ -4,32 +4,27 @@
 , pkg-config
 , gettext
 , libtool
-, libxml2
-, libcanberra-gtk3
+, gtk-layer-shell
 , gtk3
-, mate
+, libcanberra-gtk3
+, libmatemixer
+, libxml2
+, mate-desktop
+, mate-panel
+, wayland
 , wrapGAppsHook
 , mateUpdateScript
 }:
 
 stdenv.mkDerivation rec {
   pname = "mate-media";
-  version = "1.26.2";
+  version = "1.28.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "r0ZjlXTMOIUTCJyhC7FB/8Pm0awz5zDkII21dZZChQ8=";
+    sha256 = "vNwQLiL2P1XmMWbVxwjpHBE1cOajCodDRaiGCeg6mRI=";
   };
 
-  buildInputs = [
-    libxml2
-    libcanberra-gtk3
-    gtk3
-    mate.libmatemixer
-    mate.mate-panel
-    mate.mate-desktop
-  ];
-
   nativeBuildInputs = [
     pkg-config
     gettext
@@ -37,6 +32,19 @@ stdenv.mkDerivation rec {
     wrapGAppsHook
   ];
 
+  buildInputs = [
+    gtk-layer-shell
+    gtk3
+    libcanberra-gtk3
+    libmatemixer
+    libxml2
+    mate-desktop
+    mate-panel
+    wayland
+  ];
+
+  configureFlags = [ "--enable-in-process" ];
+
   enableParallelBuilding = true;
 
   passthru.updateScript = mateUpdateScript { inherit pname; };
diff --git a/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix b/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix
index 9d879340ce1e..9328147e642c 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-menus";
-  version = "1.26.1";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "RY1ZmuW2UMfSF0D5/pVMSoOL5F7WKrQOIOMG+vXdHYw=";
+    sha256 = "z0DHXH1vCq0dSWmCj8YgJcYiK8aoTwu51urX5FlwUI0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-netbook/default.nix b/nixpkgs/pkgs/desktops/mate/mate-netbook/default.nix
index 6d7af4148b4f..af4e7bebf9b3 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-netbook/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-netbook/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "MATE utilities for netbooks";
+    mainProgram = "mate-maximus";
     longDescription = ''
       MATE utilities for netbooks are an applet and a daemon to maximize
       windows and move their titles on the panel.
diff --git a/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix b/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix
index 7569a676db11..4299f98d4ccc 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix
@@ -7,6 +7,7 @@
 , libcanberra-gtk3
 , libnotify
 , libwnck
+, gtk-layer-shell
 , gtk3
 , libxml2
 , mate-desktop
@@ -17,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-notification-daemon";
-  version = "1.26.1";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "Dq6SlsSKPHH9VvGTGWH5LSnkWgRf5fGgX4PHQAwxmSQ=";
+    sha256 = "pDEDSOrYZsvLm0xGP00mXMapahp4KpQRoIsjvWXbsuA=";
   };
 
   nativeBuildInputs = [
@@ -35,11 +36,14 @@ stdenv.mkDerivation rec {
     libcanberra-gtk3
     libnotify
     libwnck
+    gtk-layer-shell
     gtk3
     mate-desktop
     mate-panel
   ];
 
+  configureFlags = [ "--enable-in-process" ];
+
   env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   enableParallelBuilding = true;
@@ -48,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Notification daemon for MATE Desktop";
+    mainProgram = "mate-notification-properties";
     homepage = "https://github.com/mate-desktop/mate-notification-daemon";
     license = with licenses; [ gpl2Plus gpl3Plus ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix b/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
index 214e1767f25b..75340bf4dc96 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
@@ -5,25 +5,31 @@
 , gettext
 , itstool
 , glib
+, gnome
+, gtk-layer-shell
+, gtk3
+, libmateweather
 , libwnck
 , librsvg
 , libxml2
 , dconf
-, gtk3
-, mate
+, mate-desktop
+, mate-menus
 , hicolor-icon-theme
+, wayland
 , gobject-introspection
 , wrapGAppsHook
+, marco
 , mateUpdateScript
 }:
 
 stdenv.mkDerivation rec {
   pname = "mate-panel";
-  version = "1.26.4";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "IHD51RVlfl3c2g2H73KXE9upy3sq0GIjvWdKIcxrPa8=";
+    sha256 = "s70EoJTQ61vX3DOA728MSdmp1SCXM9fM17RtBmogjLo=";
   };
 
   nativeBuildInputs = [
@@ -35,18 +41,29 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    glib
+    gtk-layer-shell
+    libmateweather
     libwnck
     librsvg
     libxml2
-    gtk3
     dconf
-    mate.libmateweather
-    mate.mate-desktop
-    mate.mate-menus
+    mate-desktop
+    mate-menus
     hicolor-icon-theme
+    wayland
   ];
 
+  propagatedBuildInputs = [
+    glib
+    gtk3
+    # See https://github.com/mate-desktop/mate-panel/issues/1402
+    # This is propagated for mate_panel_applet_settings_new and applet's wrapGAppsHook
+    gnome.dconf-editor
+  ];
+
+  # Needed for Wayland support.
+  configureFlags = [ "--with-in-process-applets=all" ];
+
   env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   makeFlags = [
@@ -57,7 +74,7 @@ stdenv.mkDerivation rec {
   preFixup = ''
     gappsWrapperArgs+=(
       # Workspace switcher settings, works only when passed after gtk3 schemas in the wrapper for some reason
-      --prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath mate.marco}"
+      --prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath marco}"
     )
   '';
 
diff --git a/nixpkgs/pkgs/desktops/mate/mate-panel/with-applets.nix b/nixpkgs/pkgs/desktops/mate/mate-panel/with-applets.nix
new file mode 100644
index 000000000000..e3f76645aa7c
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-panel/with-applets.nix
@@ -0,0 +1,61 @@
+{ stdenv
+, lib
+, glib
+, wrapGAppsHook
+, xorg
+, marco
+, mate-panel
+, panelApplets
+, applets ? [ ]
+, useDefaultApplets ? true
+}:
+
+let
+  selectedApplets = applets ++ (lib.optionals useDefaultApplets panelApplets);
+in
+stdenv.mkDerivation {
+  pname = "${mate-panel.pname}-with-applets";
+  version = mate-panel.version;
+
+  src = null;
+
+  paths = [ mate-panel ] ++ selectedApplets;
+  passAsFile = [ "paths" ];
+
+  nativeBuildInputs = [
+    glib
+    wrapGAppsHook
+  ];
+
+  buildInputs = lib.forEach selectedApplets (x: x.buildInputs) ++ selectedApplets
+    ++ [ mate-panel ] ++ mate-panel.buildInputs ++ mate-panel.propagatedBuildInputs;
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  preferLocalBuild = true;
+  allowSubstitutes = false;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    for i in $(cat $pathsPath); do
+      ${xorg.lndir}/bin/lndir -silent $i $out
+    done
+
+    runHook postInstall
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --set MATE_PANEL_APPLETS_DIR "$out/share/mate-panel/applets"
+      --set MATE_PANEL_EXTRA_MODULES "$out/lib/mate-panel/applets"
+      # Workspace switcher settings
+      --prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath marco}"
+    )
+  '';
+
+  inherit (mate-panel.meta);
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mate-polkit/default.nix b/nixpkgs/pkgs/desktops/mate/mate-polkit/default.nix
index 1adee4c01b0f..827a641d3967 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-polkit/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-polkit/default.nix
@@ -5,19 +5,18 @@
 , gettext
 , gtk3
 , gobject-introspection
-, libappindicator-gtk3
-, libindicator-gtk3
+, libayatana-appindicator
 , polkit
 , mateUpdateScript
 }:
 
 stdenv.mkDerivation rec {
   pname = "mate-polkit";
-  version = "1.26.1";
+  version = "1.28.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "9bewtd/FMwLEBAMkWZjrkSGvP1DnFmagmrc7slRSA1c=";
+    sha256 = "NQod0KjtaiycGDz/KiHzlCmelo/MauLoyTxWXa5gSug=";
   };
 
   nativeBuildInputs = [
@@ -28,8 +27,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gtk3
-    libappindicator-gtk3
-    libindicator-gtk3
+    libayatana-appindicator
     polkit
   ];
 
diff --git a/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix b/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix
index 1bf511d5073f..1eaff61fc1b2 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix
@@ -6,6 +6,7 @@
 , glib
 , itstool
 , libxml2
+, mate-desktop
 , mate-panel
 , libnotify
 , libcanberra-gtk3
@@ -21,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-power-manager";
-  version = "1.26.1";
+  version = "1.28.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "IM2dIu0Eur+Yu1DnGg7F14qKR2KHcjJ4+H2nbKv7EEI=";
+    sha256 = "jr3LdLYH6Ggza6moFGze+Pl7zlNcKwyzv2UMWPce7iE=";
   };
 
   nativeBuildInputs = [
@@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
     dbus-glib
     upower
     polkit
+    mate-desktop
     mate-panel
   ];
 
diff --git a/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix b/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix
index 37cf461b78a5..2d2c9bfaf952 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix
@@ -8,20 +8,22 @@
 , libXScrnSaver
 , libnotify
 , libxml2
+, mate-desktop
+, mate-menus
+, mate-panel
 , pam
 , systemd
-, mate
 , wrapGAppsHook
 , mateUpdateScript
 }:
 
 stdenv.mkDerivation rec {
   pname = "mate-screensaver";
-  version = "1.26.2";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "2pcAziQUW9VdJJJ+7P5tMdClLq6G5WOyxlBUs1al/34=";
+    sha256 = "ag8kqPhKL5XhARSrU+Y/1KymiKVf3FA+1lDgpBDj6nA=";
   };
 
   nativeBuildInputs = [
@@ -36,11 +38,11 @@ stdenv.mkDerivation rec {
     dbus-glib
     libXScrnSaver
     libnotify
+    mate-desktop
+    mate-menus
+    mate-panel
     pam
     systemd
-    mate.mate-desktop
-    mate.mate-menus
-    mate.mate-panel
   ];
 
   configureFlags = [ "--without-console-kit" ];
diff --git a/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix b/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix
index 7c5988e34503..88fc966edb56 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix
@@ -10,29 +10,26 @@
 , libatasmart
 , libnotify
 , lm_sensors
-, mate
+, mate-panel
 , hicolor-icon-theme
-, wrapGAppsHook
 , mateUpdateScript
 }:
 
 stdenv.mkDerivation rec {
   pname = "mate-sensors-applet";
-  version = "1.26.0";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0s19r30fsicqvvcnz57lv158pi35w9zn5i7h5hz59224y0zpqhsc";
+    sha256 = "1GU2ZoKvj+uGGCg8l4notw22/RfKj6lQrG9xAQIxWoE=";
   };
 
   nativeBuildInputs = [
     pkg-config
     gettext
     itstool
-    wrapGAppsHook
   ];
 
-  # maybe add nvidia-settings later on
   buildInputs = [
     gtk3
     libxml2
@@ -40,10 +37,12 @@ stdenv.mkDerivation rec {
     libatasmart
     libnotify
     lm_sensors
-    mate.mate-panel
+    mate-panel
     hicolor-icon-theme
   ];
 
+  configureFlags = [ "--enable-in-process" ];
+
   enableParallelBuilding = true;
 
   passthru.updateScript = mateUpdateScript { inherit pname; };
diff --git a/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix b/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
index 443339388f17..c8b0c94f888e 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
@@ -8,11 +8,13 @@
 , systemd
 , libSM
 , libXtst
+, glib
 , gtk3
 , libepoxy
 , polkit
 , hicolor-icon-theme
-, mate
+, mate-desktop
+, mate-screensaver
 , wrapGAppsHook
 , fetchpatch
 , mateUpdateScript
@@ -20,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-session-manager";
-  version = "1.26.1";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "W4x9ZEH9nCk8hjiCq2enSTxTzfZOqyfAlFdfQj69Qng=";
+    sha256 = "0yzkWVuh2mUpB3cgPyvIK9lzshSjoECAoe9caJkKLXs=";
   };
 
   patches = [
@@ -48,7 +50,8 @@ stdenv.mkDerivation rec {
     libSM
     libXtst
     gtk3
-    mate.mate-desktop
+    mate-desktop
+    mate-screensaver # for gsm_manager_init
     hicolor-icon-theme
     libepoxy
     polkit
@@ -56,9 +59,11 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
   postFixup = ''
     substituteInPlace $out/share/xsessions/mate.desktop \
-      --replace "Exec=mate-session" "Exec=$out/bin/mate-session"
+      --replace-fail "Exec=mate-session" "Exec=$out/bin/mate-session"
   '';
 
   passthru.providedSessions = [ "mate" ];
diff --git a/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix b/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix
index 6d245add0df3..09085ed04869 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix
@@ -4,15 +4,16 @@
 , pkg-config
 , gettext
 , glib
-, dbus-glib
 , libxklavier
 , libcanberra-gtk3
 , libnotify
+, libmatekbd
+, libmatemixer
 , nss
 , polkit
 , dconf
 , gtk3
-, mate
+, mate-desktop
 , pulseaudioSupport ? stdenv.config.pulseaudio or true
 , libpulseaudio
 , wrapGAppsHook
@@ -21,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-settings-daemon";
-  version = "1.26.1";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "aX6mW1QpIcK3ZhRSktJo0wCcwtqDFtKnhphpBV5LGFk=";
+    sha256 = "TtfNraqkyZ7//AKCuEEXA7t24HLEHEtXmJ+MW0BhGjo=";
   };
 
   nativeBuildInputs = [
@@ -35,17 +36,16 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    dbus-glib
     libxklavier
     libcanberra-gtk3
     libnotify
+    libmatekbd
+    libmatemixer
     nss
     polkit
     gtk3
     dconf
-    mate.mate-desktop
-    mate.libmatekbd
-    mate.libmatemixer
+    mate-desktop
   ] ++ lib.optional pulseaudioSupport libpulseaudio;
 
   configureFlags = lib.optional pulseaudioSupport "--enable-pulse";
diff --git a/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix b/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix
index a29cc7c18ec7..665d062dc246 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix
@@ -7,21 +7,21 @@
 , gtkmm3
 , libxml2
 , libgtop
-, libwnck
 , librsvg
 , polkit
 , systemd
 , wrapGAppsHook
+, mate-desktop
 , mateUpdateScript
 }:
 
 stdenv.mkDerivation rec {
   pname = "mate-system-monitor";
-  version = "1.26.3";
+  version = "1.28.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "WFthNBX3bucDt7XlK1WWKUKVB+A8kwVKSq3Pb5xlIkk=";
+    sha256 = "QtZj1rkPtTYevBP2VHmD1vHirHXcKuTxysbqYymWWiU=";
   };
 
   nativeBuildInputs = [
@@ -35,13 +35,16 @@ stdenv.mkDerivation rec {
     gtkmm3
     libxml2
     libgtop
-    libwnck
     librsvg
     polkit
     systemd
   ];
 
-  configureFlags = [ "--enable-systemd" ];
+  postPatch = ''
+    # This package does not provide mate-version.xml.
+    substituteInPlace src/sysinfo.cpp \
+      --replace-fail 'DATADIR "/mate-about/mate-version.xml"' '"${mate-desktop}/share/mate-about/mate-version.xml"'
+  '';
 
   enableParallelBuilding = true;
 
@@ -49,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "System monitor for the MATE desktop";
+    mainProgram = "mate-system-monitor";
     homepage = "https://mate-desktop.org";
     license = [ licenses.gpl2Plus ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix b/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix
index e2406789df43..76c002c9299d 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-terminal";
-  version = "1.26.1";
+  version = "1.28.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "fBMCBvC0eIfoySdOc/jBn65RETRXKGmnwjERt4nh4dA=";
+    sha256 = "8TXrGp4q4ieY7LLcGRT9tM/XdOa7ZcAVK+N8xslGnpI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-user-guide/default.nix b/nixpkgs/pkgs/desktops/mate/mate-user-guide/default.nix
index 5b894c40340c..7dc2e9ad4221 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-user-guide/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-user-guide/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-user-guide";
-  version = "1.26.2";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "TTK241ZKyPTqqysVSC33+XaXUN+IEavtg30KLn7jgIs=";
+    sha256 = "U+8IFPUGVEYU7WGre+UiHMjTqfFPfvlpjJD+fkYBS54=";
   };
 
   nativeBuildInputs = [
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     substituteInPlace mate-user-guide.desktop.in.in \
-      --replace "Exec=yelp" "Exec=${yelp}/bin/yelp"
+      --replace-fail "Exec=yelp" "Exec=${yelp}/bin/yelp"
   '';
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/desktops/mate/mate-user-share/default.nix b/nixpkgs/pkgs/desktops/mate/mate-user-share/default.nix
index 84204e3e34be..6156a7450fa1 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-user-share/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-user-share/default.nix
@@ -5,6 +5,7 @@
 , gettext
 , itstool
 , gtk3
+, caja
 , dbus-glib
 , libnotify
 , libxml2
@@ -21,11 +22,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mate-user-share";
-  version = "1.26.0";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1wh0b4qw5wzpl7sg44lpwjb9r6xllch3xfz8c2cchl8rcgbh2kph";
+    sha256 = "iYVgmZkXllE0jkl+8I81C4YIG5expKcwQHfurlc5rjg=";
   };
 
   nativeBuildInputs = [
@@ -38,10 +39,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gtk3
+    caja
     dbus-glib
     libnotify
     libcanberra-gtk3
-    mate.caja
     hicolor-icon-theme
     # Should mod_dnssd and apacheHttpd be runtime dependencies?
     # In gnome-user-share they are not.
@@ -67,6 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "User level public file sharing for the MATE desktop";
+    mainProgram = "mate-file-share-properties";
     homepage = "https://github.com/mate-desktop/mate-user-share";
     license = with licenses; [ gpl2Plus ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/mate/mate-utils/default.nix b/nixpkgs/pkgs/desktops/mate/mate-utils/default.nix
index cfe24a4888a0..35ce76d7c0fa 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-utils/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-utils/default.nix
@@ -1,43 +1,34 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , pkg-config
 , gettext
 , itstool
 , glib
+, gtk-layer-shell
 , gtk3
 , libxml2
 , libgtop
 , libcanberra-gtk3
 , inkscape
 , udisks2
-, mate
+, mate-desktop
+, mate-panel
 , hicolor-icon-theme
+, wayland
 , wrapGAppsHook
 , mateUpdateScript
 }:
 
 stdenv.mkDerivation rec {
   pname = "mate-utils";
-  version = "1.26.1";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "L1NHWxoJkd1ak9ndpY/KTkFvJZJTWG2UpbEQjxI3BiA=";
+    sha256 = "WESdeg0dkA/wO3jKn36Ywh6X9H/Ca+5/8cYYNPIviNM=";
   };
 
-  patches = [
-    # Hopefully helps "libxml2.treeError: xmlSetProp() failed"
-    # This patch is not part of upstream yet.
-    # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919058
-    # https://github.com/mate-desktop/mate-utils/issues/210
-    (fetchpatch {
-      url = "https://salsa.debian.org/debian-mate-team/mate-utils/-/raw/2b43d78f3fdbf0aa50716b62bcada2ef015957c6/debian/patches/1001_fix-gsearchtool-pt-help-translation.patch";
-      sha256 = "SZVpdup/bNv+3hEGQ0L13mgXyNm+wRcL53t9/Oi24wA=";
-    })
-  ];
-
   nativeBuildInputs = [
     pkg-config
     gettext
@@ -47,15 +38,28 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    gtk-layer-shell
     gtk3
     libgtop
     libcanberra-gtk3
     libxml2
     udisks2
-    mate.mate-panel
+    mate-desktop
+    mate-panel
     hicolor-icon-theme
+    wayland
   ];
 
+  postPatch = ''
+    # Workaround undefined version requirements
+    # https://github.com/mate-desktop/mate-utils/issues/361
+    substituteInPlace configure \
+      --replace-fail '>= $GTK_LAYER_SHELL_REQUIRED_VERSION' "" \
+      --replace-fail '>= $GDK_WAYLAND_REQUIRED_VERSION' ""
+  '';
+
+  configureFlags = [ "--enable-wayland" ];
+
   env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/desktops/mate/mate-wayland-session/default.nix b/nixpkgs/pkgs/desktops/mate/mate-wayland-session/default.nix
new file mode 100644
index 000000000000..b803caa7048f
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/mate/mate-wayland-session/default.nix
@@ -0,0 +1,58 @@
+{ stdenvNoCC
+, lib
+, fetchFromGitHub
+, meson
+, ninja
+, glib
+, mate-polkit
+, mate-notification-daemon
+, wayfire
+, wayfirePlugins
+, gitUpdater
+}:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "mate-wayland-session";
+  version = "1.28.3";
+
+  src = fetchFromGitHub {
+    owner = "mate-desktop";
+    repo = "mate-wayland-session";
+    rev = "v${version}";
+    hash = "sha256-sUAq2BylsvjYn8Lt+nm4yIfVhzIEefxKZYnhJnuxjs0=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    glib
+  ];
+
+  postPatch = ''
+    substituteInPlace session/mate-wayland-components.sh \
+      --replace-fail "polkit-mate-authentication-agent-1" "${mate-polkit}/libexec/polkit-mate-authentication-agent-1" \
+      --replace-fail "mate-notification-daemon" "${mate-notification-daemon}/libexec/mate-notification-daemon" \
+      --replace-fail "cat /usr/bin/blueman-applet" "command -v blueman-applet" \
+      --replace-fail "cat /usr/bin/gnome-keyring-daemon" "command -v gnome-keyring-daemon"
+
+    # Ensure wayfire.ini is writable, as this script tries to modify it later.
+    substituteInPlace session/mate-wayland.sh \
+      --replace-fail "cp /usr/share/doc/wayfire/examples/wayfire.ini" "cp --no-preserve=mode,ownership ${wayfire.src}/wayfire.ini" \
+      --replace-fail "/usr/share/doc/wayfire/examples/wayfire.ini" "${wayfire.src}/wayfire.ini" \
+      --replace-fail "/usr/lib/x86_64-linux-gnu/wayfire/libfiredecor.so" "${wayfirePlugins.firedecor}/lib/wayfire/libfiredecor.so" \
+      --replace-fail "/usr/share/doc/firedecor/firedecor.config" "$out/share/doc/firedecor/firedecor.config"
+  '';
+
+  passthru = {
+    providedSessions = [ "MATE" ];
+    updateScript = gitUpdater { rev-prefix = "v"; };
+  };
+
+  meta = with lib; {
+    description = "Wayland session using Wayfire for the MATE desktop";
+    homepage = "https://mate-desktop.org";
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    maintainers = teams.mate.members;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/mate/mozo/default.nix b/nixpkgs/pkgs/desktops/mate/mozo/default.nix
index 3b0618bc41ac..66b7048ffecf 100644
--- a/nixpkgs/pkgs/desktops/mate/mozo/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mozo/default.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , pkg-config
 , gettext
-, mate
+, mate-menus
 , gtk3
 , glib
 , wrapGAppsHook
@@ -13,14 +13,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "mozo";
-  version = "1.26.2";
+  version = "1.28.0";
 
   format = "other";
   doCheck = false;
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "RyxILg7y+xYp5h4X2qoaSH9kOSsCmEncmkCCr7OLye4=";
+    sha256 = "/piYT/1qqMNtBZS879ugPeObQtQeAHJRaAOE8870SSQ=";
   };
 
   nativeBuildInputs = [
@@ -31,7 +31,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = [
-    mate.mate-menus
+    mate-menus
     python3.pkgs.pygobject3
   ];
 
@@ -46,6 +46,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "MATE Desktop menu editor";
+    mainProgram = "mozo";
     homepage = "https://github.com/mate-desktop/mozo";
     license = with licenses; [ lgpl2Plus ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/mate/pluma/default.nix b/nixpkgs/pkgs/desktops/mate/pluma/default.nix
index ed7d54e9469b..f6bfe6eb2ba1 100644
--- a/nixpkgs/pkgs/desktops/mate/pluma/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/pluma/default.nix
@@ -9,7 +9,6 @@
 , enchant
 , libxml2
 , python3
-, adwaita-icon-theme
 , gtksourceview4
 , libpeas
 , mate-desktop
@@ -19,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pluma";
-  version = "1.26.1";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "WVns49cRjhBmWfZNIC0O0XY60Qu7ul0qzYy/ui45lPE=";
+    sha256 = "qorflYk0UJOlDjCyft5KeKJCHRcnwn9GX8h8Q1llodQ=";
   };
 
   nativeBuildInputs = [
@@ -37,7 +36,6 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    adwaita-icon-theme
     enchant
     gtksourceview4
     libpeas
@@ -62,6 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Powerful text editor for the MATE desktop";
+    mainProgram = "pluma";
     homepage = "https://mate-desktop.org";
     license = with licenses; [ gpl2Plus lgpl2Plus fdl11Plus ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/desktops/mate/python-caja/default.nix b/nixpkgs/pkgs/desktops/mate/python-caja/default.nix
index b9c58d8d9268..7f668cdde996 100644
--- a/nixpkgs/pkgs/desktops/mate/python-caja/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/python-caja/default.nix
@@ -3,19 +3,19 @@
 , fetchurl
 , pkg-config
 , gettext
+, caja
 , gtk3
-, mate
 , python3Packages
 , mateUpdateScript
 }:
 
 stdenv.mkDerivation rec {
   pname = "python-caja";
-  version = "1.26.0";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "181zcs1pi3762chm4xraqs8048jm7jzwnvgwla1v3z2nqzpp3xr1";
+    sha256 = "sFbCOdvf4z7QzIQx+zUAqTj3h7Weh19f+TV4umb2gNY=";
   };
 
   nativeBuildInputs = [
@@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    caja
     gtk3
-    mate.caja
     python3Packages.python
     python3Packages.pygobject3
   ];
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
index e1e0db005d65..7ee81df4b462 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
@@ -24,15 +24,15 @@
 
 stdenv.mkDerivation rec {
   pname = "appcenter";
-  version = "7.4.0-unstable-2023-12-04";
+  version = "7.4.0-unstable-2024-02-07";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     # Add support for AppStream 1.0.
     # https://github.com/elementary/appcenter/pull/2099
-    rev = "d93e135a0b0c9a6e0fbad18fe90d46425823a42c";
-    hash = "sha256-b7xux6MuvYZFxufQ5T7DoDNBlsJ/fDR0aUY2Hk/xJoY=";
+    rev = "fce55d9373bfb82953191b32e276a2129ffcb8c1";
+    hash = "sha256-7VYiE1RkaqN1Yg4pFUBs6k8QjoljYFDgQ9jCTLG3uyk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
index 620c64f11d80..d1d2b6533e93 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
@@ -13,6 +13,7 @@
 , elementary-default-settings
 , gnome-settings-daemon
 , runtimeShell
+, systemd
 , writeText
 , meson
 , ninja
@@ -90,13 +91,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "elementary-session-settings";
-  version = "6.0.0";
+  version = "6.0.0-unstable-2023-09-05";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "session-settings";
-    rev = version;
-    sha256 = "1faglpa7q3a4335gnd074a3lnsdspyjdnskgy4bfnf6xmwjx7kjx";
+    rev = "3476c89bbb66564a72c6495ac0c61f8f9ed7a3ec";
+    sha256 = "sha256-Z1qW6m0XDkB92ZZVKx98JOMXiBDbGpQ0cAXgWdqK27c=";
   };
 
   nativeBuildInputs = [
@@ -111,6 +112,7 @@ stdenv.mkDerivation rec {
     gnome-settings-daemon
     onboard
     orca
+    systemd
   ];
 
   mesonFlags = [
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
index 81604c472446..a1422ec18354 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Bluetooth Indicator for Wingpanel";
+    mainProgram = "io.elementary.bluetooth";
     homepage = "https://github.com/elementary/wingpanel-indicator-bluetooth";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/polonium.nix b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/polonium.nix
index 7bfe963e0e8b..10d4c7c1d98a 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/polonium.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/polonium.nix
@@ -11,16 +11,16 @@
 
 buildNpmPackage rec {
   pname = "polonium";
-  version = "0.6.0";
+  version = "1.0b1";
 
   src = fetchFromGitHub {
     owner = "zeroxoneafour";
     repo = pname;
     rev = "v" + version;
-    hash = "sha256-fZgNOcOq+owmqtplwnxeOIQpWmrga/WitCNCj89O5XA=";
+    hash = "sha256-2uthjNhQm+hkRCPXGQm2LZunTj+J0SUuUfZL0PeRd4s=";
   };
 
-  npmDepsHash = "sha256-25AtM1FweWIbFot+HUMSPYTu47/0eKNpRWSlBEL0yKk=";
+  npmDepsHash = "sha256-kaT3Uyq+/JkmebakG9xQuR4Kjo7vk6BzI1/LffOj/eo=";
 
   dontConfigure = true;
 
@@ -43,7 +43,7 @@ buildNpmPackage rec {
   '';
 
   meta = with lib; {
-    description = "Auto-tiler that uses KWin 5.27+ tiling functionality";
+    description = "Auto-tiler that uses KWin 6.0+ tiling functionality";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
     inherit (plasma-framework.meta) platforms;
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-browser-integration.nix b/nixpkgs/pkgs/desktops/plasma-5/plasma-browser-integration.nix
index 06325911a9df..c951f359c548 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-browser-integration.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-browser-integration.nix
@@ -36,6 +36,7 @@ mkDerivation {
 
   meta = {
     description = "Components necessary to integrate browsers into the Plasma Desktop";
+    mainProgram = "plasma-browser-integration-host";
     homepage = "https://community.kde.org/Plasma/Browser_Integration";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/rox/rox-filer/default.nix b/nixpkgs/pkgs/desktops/rox/rox-filer/default.nix
index 676e99b1a903..64c658d04a94 100644
--- a/nixpkgs/pkgs/desktops/rox/rox-filer/default.nix
+++ b/nixpkgs/pkgs/desktops/rox/rox-filer/default.nix
@@ -89,6 +89,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fast, lightweight, gtk2 file manager";
+    mainProgram = "rox";
     homepage = "http://rox.sourceforge.net/desktop";
     license = with licenses; [ gpl2 lgpl2 ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/desktops/surf-display/default.nix b/nixpkgs/pkgs/desktops/surf-display/default.nix
index 918f715341a1..8e06e36db464 100644
--- a/nixpkgs/pkgs/desktops/surf-display/default.nix
+++ b/nixpkgs/pkgs/desktops/surf-display/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Kiosk browser session manager based on the surf browser";
+    mainProgram = "surf-display";
     homepage = "https://code.it-zukunft-schule.de/cgit/surf-display/";
     maintainers = with maintainers; [ ];
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/catfish/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/catfish/default.nix
index 0cec370e1acc..24148731291a 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/catfish/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/catfish/default.nix
@@ -75,6 +75,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://docs.xfce.org/apps/catfish/start";
     description = "Handy file search tool";
+    mainProgram = "catfish";
     longDescription = ''
       Catfish is a handy file searching tool. The interface is
       intentionally lightweight and simple, using only GTK 3.
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix
index 393e6a8c5b24..e63053deedf6 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/gigolo/default.nix
@@ -12,6 +12,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "A frontend to easily manage connections to remote filesystems";
+    mainProgram = "gigolo";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
index 0247ed3b2dc3..f72a08729bc9 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
@@ -33,6 +33,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Simple text editor for Xfce";
+    mainProgram = "mousepad";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/orage/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/orage/default.nix
index 00c2d5f85d91..130eb8464aeb 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/orage/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/orage/default.nix
@@ -30,6 +30,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Simple calendar application for Xfce";
+    mainProgram = "orage";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix
index eeadfe793a7c..41286052db41 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/parole/default.nix
@@ -44,6 +44,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Modern simple media player";
+    mainProgram = "parole";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix
index ff12d00e4a5c..e5ee18d85da0 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/ristretto/default.nix
@@ -29,6 +29,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "A fast and lightweight picture-viewer for the Xfce desktop environment";
+    mainProgram = "ristretto";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfburn/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfburn/default.nix
index 3bd58caee9c0..d2ba14d27dff 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfburn/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfburn/default.nix
@@ -13,6 +13,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Disc burner and project creator for Xfce";
+    mainProgram = "xfburn";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
index 5b79911e0b6e..1ed27991c443 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
@@ -33,6 +33,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "A Dictionary Client for the Xfce desktop environment";
+    mainProgram = "xfce4-dict";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
index 0c1e255cdb2d..c7a1f94177e8 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
@@ -46,6 +46,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Simple notification daemon for Xfce";
+    mainProgram = "xfce4-notifyd-config";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix
index f4a2a4ef0d44..e223f8bc6663 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix
@@ -25,6 +25,7 @@ in mkXfceDerivation {
 
   meta = with lib; {
     description = "Simple application to manage Xfce panel layouts";
+    mainProgram = "xfce4-panel-profiles";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
index 50601451a8d4..4a3f85ea0ce3 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
@@ -41,6 +41,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Screenshot utility for the Xfce desktop";
+    mainProgram = "xfce4-screenshooter";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
index 5336d5ce41f3..f6dfcec8be7f 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
@@ -34,6 +34,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Easy to use task manager for Xfce";
+    mainProgram = "xfce4-taskmanager";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
index ac1d8f96ea39..a9d87d4f6847 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
@@ -44,5 +44,6 @@ mkXfceDerivation {
   meta = with lib; {
     description = "A modern terminal emulator";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
+    mainProgram = "xfce4-terminal";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix
index 9f1373d7d926..878975cebb1c 100644
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix
@@ -11,6 +11,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "A volume keys control daemon for Xfce using pulseaudio";
+    mainProgram = "xfce4-volumed-pulse";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ abbradar ] ++ teams.xfce.members;
   };
diff --git a/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix b/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix
index f5da4b604a51..862d4f8cbc94 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/libxfce4ui/default.nix
@@ -4,9 +4,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "libxfce4ui";
-  version = "4.18.5";
+  version = "4.18.6";
 
-  sha256 = "sha256-Jf+oxdUWXJJmMoJ9kIx9F+ndb2c6bNpf+JOzxpi2Lwo=";
+  sha256 = "sha256-ojmI745tKLHv26uL1qS/v6hAcLmAV/WF2NAtAhQRUkg=";
 
   nativeBuildInputs = [ gobject-introspection vala ];
   buildInputs =  [ gtk3 libstartup_notification libgtop libepoxy xfconf ];
@@ -18,6 +18,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Widgets library for Xfce";
+    mainProgram = "xfce4-about";
     license = with licenses; [ lgpl2Plus lgpl21Plus ];
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
diff --git a/nixpkgs/pkgs/desktops/xfce/core/libxfce4util/default.nix b/nixpkgs/pkgs/desktops/xfce/core/libxfce4util/default.nix
index d3cbc9f323d8..02a4b98309a3 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/libxfce4util/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/libxfce4util/default.nix
@@ -11,6 +11,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Extension library for Xfce";
+    mainProgram = "xfce4-kiosk-query";
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
diff --git a/nixpkgs/pkgs/desktops/xfce/core/libxfce4windowing/default.nix b/nixpkgs/pkgs/desktops/xfce/core/libxfce4windowing/default.nix
index 6395497fccda..621115616e5c 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/libxfce4windowing/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/libxfce4windowing/default.nix
@@ -13,6 +13,6 @@ mkXfceDerivation {
   meta = {
     description = "Windowing concept abstraction library for X11 and Wayland";
     license = lib.licenses.lgpl21Plus;
-    maintainers = with lib; [ maintainers.federicoschonborn ] ++ teams.xfce.members;
+    maintainers = lib.teams.xfce.members ++ [ lib.maintainers.federicoschonborn ];
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfconf/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfconf/default.nix
index 459044eb2a5d..45873f7ef248 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfconf/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfconf/default.nix
@@ -18,6 +18,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Simple client-server configuration storage and query system for Xfce";
+    mainProgram = "xfconf-query";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
index fbc40f190255..4a3148962efd 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://docs.xfce.org/panel-plugins/xfce4-sensors-plugin";
     description = "A panel plug-in for different sensors using acpi, lm_sensors and hddtemp";
+    mainProgram = "xfce4-sensors";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin/default.nix
index 162160e4e813..c76800fea4fc 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin/default.nix
@@ -5,6 +5,7 @@
 , intltool
 , glib
 , gtk3
+, json_c
 , libxml2
 , libsoup
 , upower
@@ -22,11 +23,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "xfce4-weather-plugin";
-  version = "0.11.1";
+  version = "0.11.2";
 
   src = fetchurl {
     url = "mirror://xfce/src/${category}/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-pFFG+aDc3JXRkcCcZK0nmuKJz4+BHEQz4I4xplaEUjk=";
+    sha256 = "sha256-ZdQK/3hjVQhYqfnStgVPJ8aaPn5xKZF4WYf5pzu6h2s=";
   };
 
   nativeBuildInputs = [
@@ -37,6 +38,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     glib
     gtk3
+    json_c
     libxml2
     libsoup
     upower
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
index 7ef0fb79ebbe..b1b068eaa55f 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
@@ -42,6 +42,7 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Alternate application launcher for Xfce";
+    mainProgram = "xfce4-popup-whiskermenu";
     maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/nixpkgs/pkgs/development/beam-modules/erlfmt/default.nix b/nixpkgs/pkgs/development/beam-modules/erlfmt/default.nix
index e7c6f21b20ff..4cf139845a20 100644
--- a/nixpkgs/pkgs/development/beam-modules/erlfmt/default.nix
+++ b/nixpkgs/pkgs/development/beam-modules/erlfmt/default.nix
@@ -13,6 +13,7 @@ rebar3Relx rec {
   meta = with lib; {
     homepage = "https://github.com/WhatsApp/erlfmt";
     description = "An automated code formatter for Erlang";
+    mainProgram = "erlfmt";
     platforms = platforms.unix;
     license = licenses.asl20;
     maintainers = with lib.maintainers; [ dlesl ];
diff --git a/nixpkgs/pkgs/development/chez-modules/chez-mit/default.nix b/nixpkgs/pkgs/development/chez-modules/chez-mit/default.nix
index 10407598fb96..677e7fc99194 100644
--- a/nixpkgs/pkgs/development/chez-modules/chez-mit/default.nix
+++ b/nixpkgs/pkgs/development/chez-modules/chez-mit/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     description = "This is a MIT/GNU Scheme compatibility library for Chez Scheme";
     homepage = "https://github.com/fedeinthemix/chez-mit/";
     maintainers = [ maintainers.jitwit ];
-    license = licenses.free;
+    license = licenses.gpl3Plus;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/chez-modules/chez-srfi/default.nix b/nixpkgs/pkgs/development/chez-modules/chez-srfi/default.nix
index 1780a1356c5c..d821e6d01556 100644
--- a/nixpkgs/pkgs/development/chez-modules/chez-srfi/default.nix
+++ b/nixpkgs/pkgs/development/chez-modules/chez-srfi/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
     description = "This package provides a collection of SRFI libraries for Chez Scheme";
     homepage = "https://github.com/fedeinthemix/chez-srfi/";
     maintainers = [ maintainers.jitwit ];
-    license = licenses.free;
+    license = licenses.x11;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/compilers/abcl/default.nix b/nixpkgs/pkgs/development/compilers/abcl/default.nix
index e36d8975e26b..317d0d92266d 100644
--- a/nixpkgs/pkgs/development/compilers/abcl/default.nix
+++ b/nixpkgs/pkgs/development/compilers/abcl/default.nix
@@ -6,7 +6,7 @@
 , jdk
 , jre
 , makeWrapper
-, canonicalize-jars-hook
+, stripJavaArchivesHook
 }:
 
 let
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
     jdk
     fakeHostname
     makeWrapper
-    canonicalize-jars-hook
+    stripJavaArchivesHook
   ];
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/compilers/acme/default.nix b/nixpkgs/pkgs/development/compilers/acme/default.nix
index 3f8110b5b5a4..cc6426a309a5 100644
--- a/nixpkgs/pkgs/development/compilers/acme/default.nix
+++ b/nixpkgs/pkgs/development/compilers/acme/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A multi-platform cross assembler for 6502/6510/65816 CPUs";
+    mainProgram = "acme";
     homepage = "https://sourceforge.net/projects/acme-crossass/";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/compilers/ante/default.nix b/nixpkgs/pkgs/development/compilers/ante/default.nix
index ebd70475d0fa..906ee0f16c2a 100644
--- a/nixpkgs/pkgs/development/compilers/ante/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ante/default.nix
@@ -52,6 +52,7 @@ rustPlatform.buildRustPackage {
   meta = with lib; {
     homepage = "https://antelang.org/";
     description = "A low-level functional language for exploring refinement types, lifetime inference, and algebraic effects";
+    mainProgram = "ante";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ehllie ];
   };
diff --git a/nixpkgs/pkgs/development/compilers/arachne-pnr/default.nix b/nixpkgs/pkgs/development/compilers/arachne-pnr/default.nix
index a08ad91c4a1c..37b7158c6284 100644
--- a/nixpkgs/pkgs/development/compilers/arachne-pnr/default.nix
+++ b/nixpkgs/pkgs/development/compilers/arachne-pnr/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Place and route tool for FPGAs";
+    mainProgram = "arachne-pnr";
     longDescription = ''
       Arachne-pnr implements the place and route step of
       the hardware compilation process for FPGAs. It
diff --git a/nixpkgs/pkgs/development/compilers/armips/default.nix b/nixpkgs/pkgs/development/compilers/armips/default.nix
index b6fbb5ef34c8..6e3a3ef4d964 100644
--- a/nixpkgs/pkgs/development/compilers/armips/default.nix
+++ b/nixpkgs/pkgs/development/compilers/armips/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Kingcom/armips";
     description = "Assembler for various ARM and MIPS platforms.";
+    mainProgram = "armips";
     license = licenses.mit;
     maintainers = with maintainers; [ marius851000 ];
   };
diff --git a/nixpkgs/pkgs/development/compilers/as31/default.nix b/nixpkgs/pkgs/development/compilers/as31/default.nix
index c76b8a03312e..9cff12dd306d 100644
--- a/nixpkgs/pkgs/development/compilers/as31/default.nix
+++ b/nixpkgs/pkgs/development/compilers/as31/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://wiki.erazor-zone.de/wiki:projects:linux:as31";
     description = "An 8031/8051 assembler";
+    mainProgram = "as31";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/compilers/avra/default.nix b/nixpkgs/pkgs/development/compilers/avra/default.nix
index f3bc33516a3f..8e2d2558c571 100644
--- a/nixpkgs/pkgs/development/compilers/avra/default.nix
+++ b/nixpkgs/pkgs/development/compilers/avra/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Assembler for the Atmel AVR microcontroller family";
+    mainProgram = "avra";
     homepage = "https://github.com/Ro5bert/avra";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/compilers/ballerina/default.nix b/nixpkgs/pkgs/development/compilers/ballerina/default.nix
index 5f2e4d88b0ce..5a58d9afd9a8 100644
--- a/nixpkgs/pkgs/development/compilers/ballerina/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ballerina/default.nix
@@ -1,6 +1,6 @@
 { ballerina, lib, writeText, runCommand, makeWrapper, fetchzip, stdenv, openjdk }:
 let
-  version = "2201.8.5";
+  version = "2201.8.6";
   codeName = "swan-lake";
 in stdenv.mkDerivation {
   pname = "ballerina";
@@ -8,7 +8,7 @@ in stdenv.mkDerivation {
 
   src = fetchzip {
     url = "https://dist.ballerina.io/downloads/${version}/ballerina-${version}-${codeName}.zip";
-    hash = "sha256-xqgLEMlc8s7qsrjz9kDBvwmfS0ytTqP4yOaet6xog8A=";
+    hash = "sha256-/oYyYziUTt4OqQfYJdDuRVy9xmMDfhpj24lbisQFfAU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -37,6 +37,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "An open-source programming language for the cloud";
+    mainProgram = "bal";
     license = licenses.asl20;
     platforms = openjdk.meta.platforms;
     maintainers = with maintainers; [ eigengrau ];
diff --git a/nixpkgs/pkgs/development/compilers/bfc/default.nix b/nixpkgs/pkgs/development/compilers/bfc/default.nix
index 2ebf02b18138..c6d351e4c191 100644
--- a/nixpkgs/pkgs/development/compilers/bfc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/bfc/default.nix
@@ -27,18 +27,14 @@ rustPlatform.buildRustPackage rec {
     zlib
   ];
 
-  env = {
-    LLVM_SYS_130_PREFIX = llvmPackages_13.llvm.dev;
-  } // lib.optionalAttrs stdenv.cc.isClang {
-    # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
+  env.LLVM_SYS_130_PREFIX = llvmPackages_13.llvm.dev;
 
   # process didn't exit successfully: <...> SIGSEGV
   doCheck = false;
 
   meta = with lib; {
     description = "An industrial-grade brainfuck compiler";
+    mainProgram = "bfc";
     homepage = "https://bfc.wilfred.me.uk";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/compilers/blueprint/default.nix b/nixpkgs/pkgs/development/compilers/blueprint/default.nix
index 856fcaa5d5ab..14a901d785fe 100644
--- a/nixpkgs/pkgs/development/compilers/blueprint/default.nix
+++ b/nixpkgs/pkgs/development/compilers/blueprint/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A markup language for GTK user interface files";
+    mainProgram = "blueprint-compiler";
     homepage = "https://gitlab.gnome.org/jwestman/blueprint-compiler";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ benediktbroich ranfdev ];
diff --git a/nixpkgs/pkgs/development/compilers/cakelisp/default.nix b/nixpkgs/pkgs/development/compilers/cakelisp/default.nix
index 422611cf2b86..9f8939708cec 100644
--- a/nixpkgs/pkgs/development/compilers/cakelisp/default.nix
+++ b/nixpkgs/pkgs/development/compilers/cakelisp/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchgit, fetchpatch, gcc, unstableGitUpdater }:
+{ lib, stdenv, fetchgit, gcc, unstableGitUpdater }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "cakelisp";
   # using unstable as it's the only version that builds against gcc-13
-  version = "0.3.0-unstable-2023-12-18";
+  version = "0.3.0-unstable-2024-02-21";
 
   src = fetchgit {
     url = "https://macoy.me/code/macoy/cakelisp";
-    rev = "866fa2806d3206cc9dd398f0e86640db5be42bd6";
-    hash = "sha256-vwMZUNy+updwk69ahA/D9LhO68eV6wH0Prq+o/i1Q/A=";
+    rev = "75ce620b265bf83c6952c0093df2b9d4f7f32a54";
+    hash = "sha256-X+tWq2QQogy4d042pcVuldc80jcClYtV09Jr91rHJl4=";
   };
 
   buildInputs = [ gcc ];
@@ -30,6 +30,8 @@ stdenv.mkDerivation rec {
     runHook postBuild
   '';
 
+  env.NIX_CFLAGS_COMPILE = "-Wno-error=format";
+
   installPhase = ''
     runHook preInstall
     install -Dm755 bin/cakelisp -t $out/bin
@@ -42,6 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A performance-oriented Lisp-like language";
+    mainProgram = "cakelisp";
     homepage = "https://macoy.me/code/macoy/cakelisp";
     license = licenses.gpl3Plus;
     platforms = platforms.darwin ++ platforms.linux;
diff --git a/nixpkgs/pkgs/development/compilers/chez/default.nix b/nixpkgs/pkgs/development/compilers/chez/default.nix
index c0448a7e6d4f..ee137a1dfb26 100644
--- a/nixpkgs/pkgs/development/compilers/chez/default.nix
+++ b/nixpkgs/pkgs/development/compilers/chez/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchurl
 , coreutils, cctools
+, darwin
 , ncurses, libiconv, libX11, libuuid, testers
 }:
 
@@ -12,7 +13,11 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-03GZASte0ZhcQGnWqH/xjl4fWi3yfkApkfr0XcTyIyw=";
   };
 
-  nativeBuildInputs = lib.optional stdenv.isDarwin cctools;
+  nativeBuildInputs = lib.optionals stdenv.isDarwin [
+    cctools
+  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+    darwin.autoSignDarwinBinariesHook
+  ];
   buildInputs = [ ncurses libiconv libX11 libuuid ];
 
   enableParallelBuilding = true;
@@ -20,10 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=format-truncation";
 
   /*
-  ** We patch out a very annoying 'feature' in ./configure, which
-  ** tries to use 'git' to update submodules.
-  **
-  ** We have to also fix a few occurrences to tools with absolute
+  ** We have to fix a few occurrences to tools with absolute
   ** paths in some helper scripts, otherwise the build will fail on
   ** NixOS or in any chroot build.
   */
diff --git a/nixpkgs/pkgs/development/compilers/chicken/4/egg2nix.nix b/nixpkgs/pkgs/development/compilers/chicken/4/egg2nix.nix
index dfbec7442ed4..e175f17e1ab7 100644
--- a/nixpkgs/pkgs/development/compilers/chicken/4/egg2nix.nix
+++ b/nixpkgs/pkgs/development/compilers/chicken/4/egg2nix.nix
@@ -20,6 +20,7 @@ eggDerivation rec {
 
   meta = {
     description = "Generate nix-expression from CHICKEN scheme eggs";
+    mainProgram = "egg2nix";
     homepage = "https://github.com/the-kenny/egg2nix";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/development/compilers/chicken/5/egg2nix.nix b/nixpkgs/pkgs/development/compilers/chicken/5/egg2nix.nix
index 62b634eb6370..3e2cc49a2669 100644
--- a/nixpkgs/pkgs/development/compilers/chicken/5/egg2nix.nix
+++ b/nixpkgs/pkgs/development/compilers/chicken/5/egg2nix.nix
@@ -21,6 +21,7 @@ eggDerivation {
 
   meta = {
     description = "Generate nix-expression from CHICKEN scheme eggs";
+    mainProgram = "egg2nix";
     homepage = "https://github.com/the-kenny/egg2nix";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/development/compilers/ciao/default.nix b/nixpkgs/pkgs/development/compilers/ciao/default.nix
index bc85f6e1009f..98c26b3e9a08 100644
--- a/nixpkgs/pkgs/development/compilers/ciao/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ciao/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "ciao";
-  version = "1.22.0-m7";
+  version = "1.23.0-m1";
   src = fetchFromGitHub {
     owner = "ciao-lang";
     repo = "ciao";
     rev = "v${version}";
-    sha256 = "sha256-5LX+NVDAtdffQeLTD4Camp5aNm0K3Cwmavh7OF5XcZU=";
+    sha256 = "sha256-JMHln0nYveEEfEr4AMyrEL9KlCDiqV53BWRNMUL8nN0=";
   };
 
   configurePhase = ''
diff --git a/nixpkgs/pkgs/development/compilers/circt/default.nix b/nixpkgs/pkgs/development/compilers/circt/default.nix
index 551a325852dd..4d1814c4a3a9 100644
--- a/nixpkgs/pkgs/development/compilers/circt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/circt/default.nix
@@ -17,12 +17,12 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "circt";
-  version = "1.67.0";
+  version = "1.70.0";
   src = fetchFromGitHub {
     owner = "llvm";
     repo = "circt";
     rev = "firtool-${version}";
-    hash = "sha256-ftKtqKIgGVqiETTsirhydjmFiozqHoMRdu+IBZc8iMI=";
+    hash = "sha256-OELkfyN0fxnQIGQxfwuRM/+DYdb+8m5wlT/H+eQNjq0=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/compilers/closure/default.nix b/nixpkgs/pkgs/development/compilers/closure/default.nix
index 39dfa67d23e4..ee560d876301 100644
--- a/nixpkgs/pkgs/development/compilers/closure/default.nix
+++ b/nixpkgs/pkgs/development/compilers/closure/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A tool for making JavaScript download and run faster";
+    mainProgram = "closure-compiler";
     homepage = "https://developers.google.com/closure/compiler/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/compilers/colm/default.nix b/nixpkgs/pkgs/development/compilers/colm/default.nix
index d7a0953a8035..b1540ff63072 100644
--- a/nixpkgs/pkgs/development/compilers/colm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/colm/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A programming language for the analysis and transformation of computer languages";
+    mainProgram = "colm";
     homepage = "http://www.colm.net/open-source/colm";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/compilers/cone/default.nix b/nixpkgs/pkgs/development/compilers/cone/default.nix
index d94432be12d3..b13ac8de868e 100644
--- a/nixpkgs/pkgs/development/compilers/cone/default.nix
+++ b/nixpkgs/pkgs/development/compilers/cone/default.nix
@@ -34,6 +34,7 @@ llvmPackages.stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Cone Programming Language";
+    mainProgram = "conec";
     homepage = "https://cone.jondgoodwin.com";
     license = licenses.mit;
     maintainers = with maintainers; [ luc65r ];
diff --git a/nixpkgs/pkgs/development/compilers/crystal/default.nix b/nixpkgs/pkgs/development/compilers/crystal/default.nix
index c9ffed829b2d..fb031eba18cb 100644
--- a/nixpkgs/pkgs/development/compilers/crystal/default.nix
+++ b/nixpkgs/pkgs/development/compilers/crystal/default.nix
@@ -152,7 +152,7 @@ let
         # Darwin links against libc++ not libstdc++. Newer versions of clang (12+) require
         # libc++abi to be linked explicitly (see https://github.com/NixOS/nixpkgs/issues/166205).
         substituteInPlace src/llvm/lib_llvm.cr \
-          --replace '@[Link("stdc++")]' '@[Link("c++", "-l${stdenv.cc.libcxx.cxxabi.libName}")]'
+          --replace '@[Link("stdc++")]' '@[Link("c++")]'
       '';
 
       # Defaults are 4
@@ -250,6 +250,7 @@ let
       meta = with lib; {
         inherit (binary.meta) platforms;
         description = "A compiled language with Ruby like syntax and type inference";
+        mainProgram = "crystal";
         homepage = "https://crystal-lang.org/";
         license = licenses.asl20;
         maintainers = with maintainers; [ david50407 manveru peterhoeg donovanglover ];
diff --git a/nixpkgs/pkgs/development/compilers/crystal2nix/default.nix b/nixpkgs/pkgs/development/compilers/crystal2nix/default.nix
index 3a53525b4771..2ba0fefd6aba 100644
--- a/nixpkgs/pkgs/development/compilers/crystal2nix/default.nix
+++ b/nixpkgs/pkgs/development/compilers/crystal2nix/default.nix
@@ -29,6 +29,7 @@ crystal.buildCrystalPackage rec {
 
   meta = with lib; {
     description = "Utility to convert Crystal's shard.lock files to a Nix file";
+    mainProgram = "crystal2nix";
     license = licenses.mit;
     maintainers = with maintainers; [ manveru peterhoeg ];
   };
diff --git a/nixpkgs/pkgs/development/compilers/dart/package-source-builders/default.nix b/nixpkgs/pkgs/development/compilers/dart/package-source-builders/default.nix
index e015d423a1ca..38d07c40ec2a 100644
--- a/nixpkgs/pkgs/development/compilers/dart/package-source-builders/default.nix
+++ b/nixpkgs/pkgs/development/compilers/dart/package-source-builders/default.nix
@@ -4,6 +4,7 @@
   flutter_secure_storage_linux = callPackage ./flutter-secure-storage-linux { };
   handy_window = callPackage ./handy-window { };
   matrix = callPackage ./matrix { };
+  media_kit_libs_linux = callPackage ./media_kit_libs_linux { };
   olm = callPackage ./olm { };
   system_tray = callPackage ./system-tray { };
 }
diff --git a/nixpkgs/pkgs/development/compilers/dart/package-source-builders/media_kit_libs_linux/default.nix b/nixpkgs/pkgs/development/compilers/dart/package-source-builders/media_kit_libs_linux/default.nix
new file mode 100644
index 000000000000..92bfc7e7fa60
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/dart/package-source-builders/media_kit_libs_linux/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+}:
+
+# Implementation notes
+
+# The patch exploits the fact that the download part is enclosed with "# ---"
+# To use this module you will need to pass the CMake variable MIMALLOC_LIB
+# example: -DMIMALLOC_LIB=${pkgs.mimalloc}/lib/mimalloc.o
+
+# Direct link for the original CMakeLists.txt: https://raw.githubusercontent.com/media-kit/media-kit/main/libs/linux/media_kit_libs_linux/linux/CMakeLists.txt
+
+{version, src, ...}:
+
+stdenv.mkDerivation {
+  pname = "media_kit_libs_linux";
+  inherit version src;
+  inherit (src) passthru;
+
+  doBuild = false;
+
+  postPatch = ''
+    awk -i inplace 'BEGIN {opened = 0}; /# --*[^$]*/ { print (opened ? "]===]" : "#[===["); opened = !opened }; {print $0}' linux/CMakeLists.txt
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out"
+    cp -r ./* "$out"
+
+    runHook postInstall
+  '';
+}
diff --git a/nixpkgs/pkgs/development/compilers/dart/sources.nix b/nixpkgs/pkgs/development/compilers/dart/sources.nix
index 5e19aba467fe..d12394c37bbc 100644
--- a/nixpkgs/pkgs/development/compilers/dart/sources.nix
+++ b/nixpkgs/pkgs/development/compilers/dart/sources.nix
@@ -1,24 +1,24 @@
-let version = "3.3.0"; in
+let version = "3.3.2"; in
 { fetchurl }: {
   versionUsed = version;
   "${version}-x86_64-darwin" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-macos-x64-release.zip";
-    sha256 = "1cwxvn7321444mkpcv1vix5bi2ianiadvrjib6z5irdj8pbwlkih";
+    sha256 = "0ii494ffj5vkxnpq3aykxmn54cw4jlf45slwlg9g1crm6j3lcwak";
   };
   "${version}-aarch64-darwin" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-macos-arm64-release.zip";
-    sha256 = "1clang815wwy6szwl1rkjzl9d6zard15d1c2p6i7xpvvk3rb6m5j";
+    sha256 = "0ffqwbmwx737hrq04rbpyxqfm86mqhfayq2i1ssjkjgqyzzrpmy7";
   };
   "${version}-aarch64-linux" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-arm64-release.zip";
-    sha256 = "00mjnzld4zbk37x7g7428by3dwpkc7nhja4p6dlhl1xj2lb4qs0r";
+    sha256 = "079jq4sp8sw8y4khw8j8l2q38149bjmn8j5yibmnzyxpwyc4ysx2";
   };
   "${version}-x86_64-linux" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-x64-release.zip";
-    sha256 = "1bdwdjjnfjrwcfg2iy76bh939kkgw25130if7fxl3jay0sj6pgry";
+    sha256 = "07ixd7qj78y6m27cv9mjlkr2kdnmld6cxc23x4dip3a02drs8990";
   };
   "${version}-i686-linux" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-ia32-release.zip";
-    sha256 = "0r9ypqd5b0l31bklm9q3g1aw9i1qyfkxr9vdn5wwfkicvqjiffs2";
+    sha256 = "1jwjiyxcr2ii4f7rlb4hsjq9hlmdhv9f41wa5camhy74x56z5fhn";
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/dictu/default.nix b/nixpkgs/pkgs/development/compilers/dictu/default.nix
index 113f9291df2c..5bce969edb8b 100644
--- a/nixpkgs/pkgs/development/compilers/dictu/default.nix
+++ b/nixpkgs/pkgs/development/compilers/dictu/default.nix
@@ -76,6 +76,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "High-level dynamically typed, multi-paradigm, interpreted programming language";
+    mainProgram = "dictu";
     homepage = "https://dictu-lang.com";
     license = licenses.mit;
     maintainers = with maintainers; [ luc65r ];
diff --git a/nixpkgs/pkgs/development/compilers/dmd/generic.nix b/nixpkgs/pkgs/development/compilers/dmd/generic.nix
index 5cf07454141b..88fabd9c83fb 100644
--- a/nixpkgs/pkgs/development/compilers/dmd/generic.nix
+++ b/nixpkgs/pkgs/development/compilers/dmd/generic.nix
@@ -216,11 +216,12 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Official reference compiler for the D language";
+    mainProgram = "dmd";
     homepage = "https://dlang.org/";
     # Everything is now Boost licensed, even the backend.
     # https://github.com/dlang/dmd/pull/6680
     license = licenses.boost;
-    maintainers = with maintainers; [ ThomasMader lionello dukc jtbx ];
+    maintainers = with maintainers; [ lionello dukc jtbx ];
     platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/dotnet/9/default.nix b/nixpkgs/pkgs/development/compilers/dotnet/9/default.nix
new file mode 100644
index 000000000000..2c7c83aaa6be
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/dotnet/9/default.nix
@@ -0,0 +1,9 @@
+{ callPackage
+, dotnetCorePackages
+}: callPackage ../dotnet.nix {
+  releaseManifestFile = ./release.json;
+  releaseInfoFile = ./release-info.json;
+  allowPrerelease = true;
+  depsFile = ./deps.nix;
+  bootstrapSdk = dotnetCorePackages.sdk_9_0;
+}
diff --git a/nixpkgs/pkgs/development/compilers/dotnet/9/deps.nix b/nixpkgs/pkgs/development/compilers/dotnet/9/deps.nix
new file mode 100644
index 000000000000..4361b1cbd89e
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/dotnet/9/deps.nix
@@ -0,0 +1,11 @@
+{ fetchNuGet }: [
+  (fetchNuGet { pname = "System.CommandLine"; sha256 = "0i343zwgcnila8pxxgsk12a284mw0jkg3m82607shdbxjrwadz8n"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/516521bf-6417-457e-9a9c-0a4bdfde03e7/nuget/v3/flat2/system.commandline/2.0.0-beta4.23307.1/system.commandline.2.0.0-beta4.23307.1.nupkg"; version = "2.0.0-beta4.23307.1"; })
+  (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.ILAsm"; sha256 = "4edcd01d72a239df9506a124544aba8e8f18757b2b5398a658a68a920f58b1c8"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.linux-arm64.microsoft.netcore.ilasm/9.0.0-alpha.1.24061.26/runtime.linux-arm64.microsoft.netcore.ilasm.9.0.0-alpha.1.24061.26.nupkg"; version = "9.0.0-alpha.1.24061.26"; })
+  (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.ILDAsm"; sha256 = "55c2b7eab77aee7c22fcd3c44c0602fb767f800337b9740c2d29be31ac92b66f"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.linux-arm64.microsoft.netcore.ildasm/9.0.0-alpha.1.24061.26/runtime.linux-arm64.microsoft.netcore.ildasm.9.0.0-alpha.1.24061.26.nupkg"; version = "9.0.0-alpha.1.24061.26"; })
+  (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.ILAsm"; sha256 = "1vbxs72aq6k6ibcjqibswm51zdj6k3vxd1gxpw1aqbk8b6vaqqwf"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.linux-x64.microsoft.netcore.ilasm/9.0.0-alpha.1.24061.26/runtime.linux-x64.microsoft.netcore.ilasm.9.0.0-alpha.1.24061.26.nupkg"; version = "9.0.0-alpha.1.24061.26"; })
+  (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.ILDAsm"; sha256 = "0qwbjv0di5rnxaik7bxlfbr14y7w24fqp9vn6x5z2v464zdz02q5"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.linux-x64.microsoft.netcore.ildasm/9.0.0-alpha.1.24061.26/runtime.linux-x64.microsoft.netcore.ildasm.9.0.0-alpha.1.24061.26.nupkg"; version = "9.0.0-alpha.1.24061.26"; })
+  (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.ILAsm"; sha256 = "8af8a1cbbe485ce344612b2482197a9ced5de567e384aea7cc0307741131990e"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.osx-arm64.microsoft.netcore.ilasm/9.0.0-alpha.1.24061.26/runtime.osx-arm64.microsoft.netcore.ilasm.9.0.0-alpha.1.24061.26.nupkg"; version = "9.0.0-alpha.1.24061.26"; })
+  (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.ILDAsm"; sha256 = "ccf1cc88a8b555e0f514d71c8d5adc60fd06ec3a7e4c7a0b0acd6d4b1b81e0f3"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.osx-arm64.microsoft.netcore.ildasm/9.0.0-alpha.1.24061.26/runtime.osx-arm64.microsoft.netcore.ildasm.9.0.0-alpha.1.24061.26.nupkg"; version = "9.0.0-alpha.1.24061.26"; })
+  (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.ILAsm"; sha256 = "8d9346877885235b4267363d323a3f15122fb3667d7fbceb7c685f68163102e0"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.osx-x64.microsoft.netcore.ilasm/9.0.0-alpha.1.24061.26/runtime.osx-x64.microsoft.netcore.ilasm.9.0.0-alpha.1.24061.26.nupkg"; version = "9.0.0-alpha.1.24061.26"; })
+  (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.ILDAsm"; sha256 = "562eb0ea029d008798e50d423c3beaa5b509886751d446ce53f676b1a0281365"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/a54510f9-4b2c-4e69-b96a-6096683aaa1f/nuget/v3/flat2/runtime.osx-x64.microsoft.netcore.ildasm/9.0.0-alpha.1.24061.26/runtime.osx-x64.microsoft.netcore.ildasm.9.0.0-alpha.1.24061.26.nupkg"; version = "9.0.0-alpha.1.24061.26"; })
+]
diff --git a/nixpkgs/pkgs/development/compilers/dotnet/9/release-info.json b/nixpkgs/pkgs/development/compilers/dotnet/9/release-info.json
new file mode 100644
index 000000000000..8e87703ce864
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/dotnet/9/release-info.json
@@ -0,0 +1,5 @@
+{
+  "tarballHash": "sha256-eLvH9Voeey9NvGy515CMGuvQIBgQoP3Abvbv0sZNkkY=",
+  "artifactsUrl": "https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.9.0.100-alpha.1.24067.1.centos.8-x64.tar.gz",
+  "artifactsHash": "sha256-qH8MYzgEk0h9GwvZLUbmIM5Fe6uIAZrwHT/p8DIdy8E="
+}
diff --git a/nixpkgs/pkgs/development/compilers/dotnet/9/release.json b/nixpkgs/pkgs/development/compilers/dotnet/9/release.json
new file mode 100644
index 000000000000..1b1042c88b88
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/dotnet/9/release.json
@@ -0,0 +1,10 @@
+{
+  "release": "9.0.0-preview.1",
+  "channel": "9.0",
+  "tag": "v9.0.0-preview.1.24080.9",
+  "sdkVersion": "9.0.100-preview.1.24101.1",
+  "runtimeVersion": "9.0.0-preview.1.24080.9",
+  "aspnetcoreRuntimeVersion": "9.0.0-preview.1.24081.5",
+  "sourceRepository": "https://github.com/dotnet/dotnet",
+  "sourceVersion": "1337fabdb46697adfbfe4a6f681fc1c2cb5d5b66"
+}
diff --git a/nixpkgs/pkgs/development/compilers/dotnet/default.nix b/nixpkgs/pkgs/development/compilers/dotnet/default.nix
index 1960488f840a..47c3e21e51a4 100644
--- a/nixpkgs/pkgs/development/compilers/dotnet/default.nix
+++ b/nixpkgs/pkgs/development/compilers/dotnet/default.nix
@@ -19,6 +19,7 @@ let
   dotnet_7_0 = import ./versions/7.0.nix buildAttrs;
   dotnet_8_0 = import ./versions/8.0.nix buildAttrs;
   dotnet_8_0_102 = import ./versions/8.0.102.nix buildAttrs;
+  dotnet_9_0 = import ./versions/9.0.nix buildAttrs;
 
   runtimeIdentifierMap = {
     "x86_64-linux" = "linux-x64";
@@ -38,6 +39,7 @@ in
   combinePackages = attrs: callPackage (import ./combine-packages.nix attrs) {};
 
   dotnet_8 = recurseIntoAttrs (callPackage ./8 { bootstrapSdk = dotnet_8_0_102.sdk_8_0; });
+  dotnet_9 = recurseIntoAttrs (callPackage ./9 {});
 } // lib.optionalAttrs config.allowAliases {
   # EOL
   sdk_2_1 = throw "Dotnet SDK 2.1 is EOL, please use 6.0 (LTS) or 7.0 (Current)";
@@ -45,4 +47,4 @@ in
   sdk_3_0 = throw "Dotnet SDK 3.0 is EOL, please use 6.0 (LTS) or 7.0 (Current)";
   sdk_3_1 = throw "Dotnet SDK 3.1 is EOL, please use 6.0 (LTS) or 7.0 (Current)";
   sdk_5_0 = throw "Dotnet SDK 5.0 is EOL, please use 6.0 (LTS) or 7.0 (Current)";
-} // dotnet_6_0 // dotnet_7_0 // dotnet_8_0
+} // dotnet_6_0 // dotnet_7_0 // dotnet_8_0 // dotnet_9_0
diff --git a/nixpkgs/pkgs/development/compilers/dotnet/update.nix b/nixpkgs/pkgs/development/compilers/dotnet/update.nix
index 89291d2461d8..29206ecbe768 100644
--- a/nixpkgs/pkgs/development/compilers/dotnet/update.nix
+++ b/nixpkgs/pkgs/development/compilers/dotnet/update.nix
@@ -50,7 +50,6 @@ in writeScript "update-dotnet-vmr.sh" ''
               .draft == false and
               (.name | startswith(".NET ${channel}")))) |
       first | (
-          .name,
           .tag_name,
           (.assets |
               .[] |
@@ -67,26 +66,29 @@ in writeScript "update-dotnet-vmr.sh" ''
       curl -fsL https://api.github.com/repos/dotnet/dotnet/releases | \
       jq -r "$query" \
   ) | (
-      read name
       read tagName
       read releaseUrl
       read sigUrl
 
-      if [[ "$name" == ".NET ${release}" ]]; then
-          >&2 echo "release is already $name"
-          exit
-      fi
-
       tmp="$(mktemp -d)"
       trap 'rm -rf "$tmp"' EXIT
 
+      cd "$tmp"
+
+      curl -fsL "$releaseUrl" -o release.json
+      release=$(jq -r .release release.json)
+
+      if [[ "$release" == "${release}" ]]; then
+          >&2 echo "release is already $release"
+          exit
+      fi
+
       tarballUrl=https://github.com/dotnet/dotnet/archive/refs/tags/$tagName.tar.gz
 
       mapfile -t prefetch < <(nix-prefetch-url --print-path "$tarballUrl")
       tarballHash=$(nix-hash --to-sri --type sha256 "''${prefetch[0]}")
       tarball=''${prefetch[1]}
 
-      cd "$tmp"
       curl -L "$sigUrl" -o release.sig
 
       export GNUPGHOME=$PWD/.gnupg
@@ -118,6 +120,6 @@ in writeScript "update-dotnet-vmr.sh" ''
               "artifactsHash": $_2,
           }' > "${toString releaseInfoFile}"
 
-      curl -fsL "$releaseUrl" -o ${toString releaseManifestFile}
+      cp release.json "${toString releaseManifestFile}"
   )
 ''
diff --git a/nixpkgs/pkgs/development/compilers/dotnet/update.sh b/nixpkgs/pkgs/development/compilers/dotnet/update.sh
index f9f198b05e2f..39ccfdf33b40 100755
--- a/nixpkgs/pkgs/development/compilers/dotnet/update.sh
+++ b/nixpkgs/pkgs/development/compilers/dotnet/update.sh
@@ -36,11 +36,11 @@ release_platform_attr () {
 
 platform_sources () {
   local release_files="$1"
-  local platforms=( \
-    "x86_64-linux   linux-x64" \
-    "aarch64-linux  linux-arm64" \
-    "x86_64-darwin  osx-x64" \
-    "aarch64-darwin osx-arm64" \
+  local platforms=(
+    "x86_64-linux   linux-x64"
+    "aarch64-linux  linux-arm64"
+    "x86_64-darwin  osx-x64"
+    "aarch64-darwin osx-arm64"
   )
 
   echo "srcs = {"
@@ -85,7 +85,7 @@ version_older () {
     cur_version=$1
     max_version=$2
     result=$(nix-instantiate -I ../../../../. \
-        --eval -E "(import <nixpkgs> {}).lib.versionOlder \"$cur_version\" \"$max_version\"")
+        --eval -E "(import ../../../../. {}).lib.versionOlder \"$cur_version\" \"$max_version\"")
     if [[ "$result" == "true" ]]; then
         return 0
     else
@@ -117,31 +117,31 @@ aspnetcore_packages () {
     # Due to this, make sure to check if new SDK versions introduce any new packages.
     # This should not happend in minor or bugfix updates, but probably happens
     # with every new major .NET release.
-    local pkgs=( \
-      "Microsoft.AspNetCore.App.Runtime.linux-arm" \
-      "Microsoft.AspNetCore.App.Runtime.linux-arm64" \
-      "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64" \
-      "Microsoft.AspNetCore.App.Runtime.linux-musl-x64" \
-      "Microsoft.AspNetCore.App.Runtime.linux-x64" \
-      "Microsoft.AspNetCore.App.Runtime.osx-x64" \
-      "Microsoft.AspNetCore.App.Runtime.win-arm64" \
-      "Microsoft.AspNetCore.App.Runtime.win-x64" \
-      "Microsoft.AspNetCore.App.Runtime.win-x86" \
+    local pkgs=(
+      "Microsoft.AspNetCore.App.Runtime.linux-arm"
+      "Microsoft.AspNetCore.App.Runtime.linux-arm64"
+      "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"
+      "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"
+      "Microsoft.AspNetCore.App.Runtime.linux-x64"
+      "Microsoft.AspNetCore.App.Runtime.osx-x64"
+      "Microsoft.AspNetCore.App.Runtime.win-arm64"
+      "Microsoft.AspNetCore.App.Runtime.win-x64"
+      "Microsoft.AspNetCore.App.Runtime.win-x86"
     )
 
     # These packages are currently broken on .NET 8
     if version_older "$version" "8"; then
-        pkgs+=( \
-            "Microsoft.AspNetCore.App.Runtime.win-arm" \
+        pkgs+=(
+            "Microsoft.AspNetCore.App.Runtime.win-arm"
         )
     fi
 
     # Packages that only apply to .NET 6 and up
     if ! version_older "$version" "6"; then
-        pkgs+=( \
-          "Microsoft.AspNetCore.App.Ref" \
-          "Microsoft.AspNetCore.App.Runtime.linux-musl-arm" \
-          "Microsoft.AspNetCore.App.Runtime.osx-arm64" \
+        pkgs+=(
+          "Microsoft.AspNetCore.App.Ref"
+          "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"
+          "Microsoft.AspNetCore.App.Runtime.osx-arm64"
         )
     fi
 
@@ -173,119 +173,128 @@ sdk_packages () {
     # Due to this, make sure to check if new SDK versions introduce any new packages.
     # This should not happend in minor or bugfix updates, but probably happens
     # with every new major .NET release.
-    local pkgs=( \
-      "Microsoft.NETCore.App.Host.linux-arm" \
-      "Microsoft.NETCore.App.Host.linux-arm64" \
-      "Microsoft.NETCore.App.Host.linux-musl-arm64" \
-      "Microsoft.NETCore.App.Host.linux-musl-x64" \
-      "Microsoft.NETCore.App.Host.linux-x64" \
-      "Microsoft.NETCore.App.Host.osx-x64" \
-      "Microsoft.NETCore.App.Host.win-arm64" \
-      "Microsoft.NETCore.App.Host.win-x64" \
-      "Microsoft.NETCore.App.Host.win-x86" \
-      "Microsoft.NETCore.App.Runtime.linux-arm" \
-      "Microsoft.NETCore.App.Runtime.linux-arm64" \
-      "Microsoft.NETCore.App.Runtime.linux-musl-arm64" \
-      "Microsoft.NETCore.App.Runtime.linux-musl-x64" \
-      "Microsoft.NETCore.App.Runtime.linux-x64" \
-      "Microsoft.NETCore.App.Runtime.osx-x64" \
-      "Microsoft.NETCore.App.Runtime.win-arm64" \
-      "Microsoft.NETCore.App.Runtime.win-x64" \
-      "Microsoft.NETCore.App.Runtime.win-x86" \
-      "Microsoft.NETCore.DotNetAppHost" \
-      "Microsoft.NETCore.DotNetHost" \
-      "Microsoft.NETCore.DotNetHostPolicy" \
-      "Microsoft.NETCore.DotNetHostResolver" \
-      "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost" \
-      "runtime.linux-arm64.Microsoft.NETCore.DotNetHost" \
-      "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy" \
-      "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver" \
-      "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost" \
-      "runtime.linux-arm.Microsoft.NETCore.DotNetHost" \
-      "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy" \
-      "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver" \
-      "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost" \
-      "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost" \
-      "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy" \
-      "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver" \
-      "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost" \
-      "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost" \
-      "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy" \
-      "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver" \
-      "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost" \
-      "runtime.linux-x64.Microsoft.NETCore.DotNetHost" \
-      "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy" \
-      "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver" \
-      "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost" \
-      "runtime.osx-x64.Microsoft.NETCore.DotNetHost" \
-      "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy" \
-      "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver" \
-      "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost" \
-      "runtime.win-arm64.Microsoft.NETCore.DotNetHost" \
-      "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy" \
-      "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver" \
-      "runtime.win-x64.Microsoft.NETCore.DotNetAppHost" \
-      "runtime.win-x64.Microsoft.NETCore.DotNetHost" \
-      "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy" \
-      "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver" \
-      "runtime.win-x86.Microsoft.NETCore.DotNetAppHost" \
-      "runtime.win-x86.Microsoft.NETCore.DotNetHost" \
-      "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy" \
-      "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver" \
-      "Microsoft.NETCore.App.Host.linux-musl-arm" \
-      "Microsoft.NETCore.App.Host.osx-arm64" \
-      "Microsoft.NETCore.App.Runtime.linux-musl-arm" \
-      "Microsoft.NETCore.App.Runtime.osx-arm64" \
-      "Microsoft.NETCore.App.Ref" \
-      "Microsoft.NETCore.App.Runtime.Mono.linux-arm" \
-      "Microsoft.NETCore.App.Runtime.Mono.linux-arm64" \
-      "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64" \
-      "Microsoft.NETCore.App.Runtime.Mono.linux-x64" \
-      "Microsoft.NETCore.App.Runtime.Mono.osx-arm64" \
-      "Microsoft.NETCore.App.Runtime.Mono.osx-x64" \
-      "Microsoft.NETCore.App.Runtime.Mono.win-x64" \
-      "Microsoft.NETCore.App.Runtime.Mono.win-x86" \
-      "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost" \
-      "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost" \
-      "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy" \
-      "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver" \
-      "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost" \
-      "runtime.osx-arm64.Microsoft.NETCore.DotNetHost" \
-      "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy" \
-      "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver" \
-      "Microsoft.NETCore.App.Crossgen2.linux-musl-arm" \
-      "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64" \
-      "Microsoft.NETCore.App.Crossgen2.linux-musl-x64" \
-      "Microsoft.NETCore.App.Crossgen2.linux-arm" \
-      "Microsoft.NETCore.App.Crossgen2.linux-arm64" \
-      "Microsoft.NETCore.App.Crossgen2.linux-x64" \
-      "Microsoft.NETCore.App.Crossgen2.osx-x64" \
+    local pkgs=(
+      "Microsoft.NETCore.App.Host.linux-arm"
+      "Microsoft.NETCore.App.Host.linux-arm64"
+      "Microsoft.NETCore.App.Host.linux-musl-arm64"
+      "Microsoft.NETCore.App.Host.linux-musl-x64"
+      "Microsoft.NETCore.App.Host.linux-x64"
+      "Microsoft.NETCore.App.Host.osx-x64"
+      "Microsoft.NETCore.App.Host.win-arm64"
+      "Microsoft.NETCore.App.Host.win-x64"
+      "Microsoft.NETCore.App.Host.win-x86"
+      "Microsoft.NETCore.App.Runtime.linux-arm"
+      "Microsoft.NETCore.App.Runtime.linux-arm64"
+      "Microsoft.NETCore.App.Runtime.linux-musl-arm64"
+      "Microsoft.NETCore.App.Runtime.linux-musl-x64"
+      "Microsoft.NETCore.App.Runtime.linux-x64"
+      "Microsoft.NETCore.App.Runtime.osx-x64"
+      "Microsoft.NETCore.App.Runtime.win-arm64"
+      "Microsoft.NETCore.App.Runtime.win-x64"
+      "Microsoft.NETCore.App.Runtime.win-x86"
+      "Microsoft.NETCore.DotNetAppHost"
+      "Microsoft.NETCore.DotNetHost"
+      "Microsoft.NETCore.DotNetHostPolicy"
+      "Microsoft.NETCore.DotNetHostResolver"
+      "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"
+      "runtime.linux-arm64.Microsoft.NETCore.DotNetHost"
+      "runtime.linux-arm64.Microsoft.NETCore.DotNetHostPolicy"
+      "runtime.linux-arm64.Microsoft.NETCore.DotNetHostResolver"
+      "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"
+      "runtime.linux-arm.Microsoft.NETCore.DotNetHost"
+      "runtime.linux-arm.Microsoft.NETCore.DotNetHostPolicy"
+      "runtime.linux-arm.Microsoft.NETCore.DotNetHostResolver"
+      "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"
+      "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHost"
+      "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostPolicy"
+      "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetHostResolver"
+      "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"
+      "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHost"
+      "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostPolicy"
+      "runtime.linux-musl-x64.Microsoft.NETCore.DotNetHostResolver"
+      "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"
+      "runtime.linux-x64.Microsoft.NETCore.DotNetHost"
+      "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy"
+      "runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver"
+      "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"
+      "runtime.osx-x64.Microsoft.NETCore.DotNetHost"
+      "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy"
+      "runtime.osx-x64.Microsoft.NETCore.DotNetHostResolver"
+      "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"
+      "runtime.win-arm64.Microsoft.NETCore.DotNetHost"
+      "runtime.win-arm64.Microsoft.NETCore.DotNetHostPolicy"
+      "runtime.win-arm64.Microsoft.NETCore.DotNetHostResolver"
+      "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"
+      "runtime.win-x64.Microsoft.NETCore.DotNetHost"
+      "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy"
+      "runtime.win-x64.Microsoft.NETCore.DotNetHostResolver"
+      "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"
+      "runtime.win-x86.Microsoft.NETCore.DotNetHost"
+      "runtime.win-x86.Microsoft.NETCore.DotNetHostPolicy"
+      "runtime.win-x86.Microsoft.NETCore.DotNetHostResolver"
+      "Microsoft.NETCore.App.Host.linux-musl-arm"
+      "Microsoft.NETCore.App.Host.osx-arm64"
+      "Microsoft.NETCore.App.Runtime.linux-musl-arm"
+      "Microsoft.NETCore.App.Runtime.osx-arm64"
+      "Microsoft.NETCore.App.Ref"
+      "Microsoft.NETCore.App.Runtime.Mono.linux-arm"
+      "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"
+      "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"
+      "Microsoft.NETCore.App.Runtime.Mono.linux-x64"
+      "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"
+      "Microsoft.NETCore.App.Runtime.Mono.osx-x64"
+      "Microsoft.NETCore.App.Runtime.Mono.win-x64"
+      "Microsoft.NETCore.App.Runtime.Mono.win-x86"
+      "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"
+      "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHost"
+      "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostPolicy"
+      "runtime.linux-musl-arm.Microsoft.NETCore.DotNetHostResolver"
+      "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"
+      "runtime.osx-arm64.Microsoft.NETCore.DotNetHost"
+      "runtime.osx-arm64.Microsoft.NETCore.DotNetHostPolicy"
+      "runtime.osx-arm64.Microsoft.NETCore.DotNetHostResolver"
+      "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"
+      "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"
+      "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"
+      "Microsoft.NETCore.App.Crossgen2.linux-arm"
+      "Microsoft.NETCore.App.Crossgen2.linux-arm64"
+      "Microsoft.NETCore.App.Crossgen2.linux-x64"
+      "Microsoft.NETCore.App.Crossgen2.osx-x64"
       "Microsoft.NETCore.App.Crossgen2.osx-arm64"
     )
 
+    # These packages were removed on .NET 9
+    if ! version_older "$version" "9"; then
+      local newpkgs=()
+      for pkg in "${pkgs[@]}"; do
+        [[ "$pkg" = *Microsoft.NETCore.DotNetHost* ]] || newpkgs+=("$pkg")
+      done
+      pkgs=("${newpkgs[@]}")
+    fi
+
     # These packages were removed on .NET 8
     if version_older "$version" "8"; then
-        pkgs+=( \
-            "Microsoft.NETCore.App.Host.win-arm" \
-            "Microsoft.NETCore.App.Runtime.win-arm" \
-            "runtime.win-arm.Microsoft.NETCore.DotNetAppHost" \
-            "runtime.win-arm.Microsoft.NETCore.DotNetHost" \
-            "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy" \
-            "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver" \
-            "Microsoft.NETCore.App.Composite" \
+        pkgs+=(
+            "Microsoft.NETCore.App.Host.win-arm"
+            "Microsoft.NETCore.App.Runtime.win-arm"
+            "runtime.win-arm.Microsoft.NETCore.DotNetAppHost"
+            "runtime.win-arm.Microsoft.NETCore.DotNetHost"
+            "runtime.win-arm.Microsoft.NETCore.DotNetHostPolicy"
+            "runtime.win-arm.Microsoft.NETCore.DotNetHostResolver"
+            "Microsoft.NETCore.App.Composite"
         )
     fi
 
     # Packages that only apply to .NET 7 and up
     if ! version_older "$version" "7"; then
-        pkgs+=( \
-          "runtime.linux-arm64.Microsoft.DotNet.ILCompiler" \
-          "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler" \
-          "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler" \
-          "runtime.linux-x64.Microsoft.DotNet.ILCompiler" \
-          "runtime.osx-x64.Microsoft.DotNet.ILCompiler" \
-          "runtime.win-arm64.Microsoft.DotNet.ILCompiler" \
-          "runtime.win-x64.Microsoft.DotNet.ILCompiler" \
+        pkgs+=(
+          "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"
+          "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"
+          "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"
+          "runtime.linux-x64.Microsoft.DotNet.ILCompiler"
+          "runtime.osx-x64.Microsoft.DotNet.ILCompiler"
+          "runtime.win-arm64.Microsoft.DotNet.ILCompiler"
+          "runtime.win-x64.Microsoft.DotNet.ILCompiler"
         )
     fi
 
@@ -359,6 +368,13 @@ Examples:
     channel_version=$(jq -r '."channel-version"' <<< "$content")
     support_phase=$(jq -r '."support-phase"' <<< "$content")
 
+    aspnetcore_sources="$(platform_sources "$aspnetcore_files")"
+    runtime_sources="$(platform_sources "$runtime_files")"
+    sdk_sources="$(platform_sources "$sdk_files")"
+
+    aspnetcore_packages="$(aspnetcore_packages "${aspnetcore_version}")"
+    sdk_packages="$(sdk_packages "${runtime_version}")"
+
     result=$(mktemp)
     trap "rm -f $result" TERM INT EXIT
 
@@ -368,20 +384,20 @@ Examples:
 {
   aspnetcore_$major_minor_underscore = buildAspNetCore {
     version = \"${aspnetcore_version}\";
-    $(platform_sources "$aspnetcore_files")
+    $aspnetcore_sources
   };
 
   runtime_$major_minor_underscore = buildNetRuntime {
     version = \"${runtime_version}\";
-    $(platform_sources "$runtime_files")
+    $runtime_sources
   };
 
   sdk_$major_minor_underscore = buildNetSdk {
     version = \"${sdk_version}\";
-    $(platform_sources "$sdk_files")
+    $sdk_sources
     packages = { fetchNuGet }: [
-$(aspnetcore_packages "${aspnetcore_version}")
-$(sdk_packages "${runtime_version}")
+$aspnetcore_packages
+$sdk_packages
     ];
   };
 }" > "${result}"
diff --git a/nixpkgs/pkgs/development/compilers/dotnet/versions/9.0.nix b/nixpkgs/pkgs/development/compilers/dotnet/versions/9.0.nix
new file mode 100644
index 000000000000..530a7f65075c
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/dotnet/versions/9.0.nix
@@ -0,0 +1,143 @@
+{ buildAspNetCore, buildNetRuntime, buildNetSdk }:
+
+# v9.0 (preview)
+{
+  aspnetcore_9_0 = buildAspNetCore {
+    version = "9.0.0-preview.1.24081.5";
+    srcs = {
+      x86_64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/14b2b268-4d58-4f7b-9708-46c5a0a5b868/3cfbd27c7e2aabc0ca70f474709a4767/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-x64.tar.gz";
+        sha512  = "29bfe0b5b72608eba97151909308a67a47dc299902a46bf1a22d67bb5f8a0c87c6f4533c0c2d4679f9440f9ccccf549c434a4280c101f7633bdbdcf049c95817";
+      };
+      aarch64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/3f2586f3-89fd-44ad-aae2-4c241f72996f/f973c7140305733792dd25b466e37606/aspnetcore-runtime-9.0.0-preview.1.24081.5-linux-arm64.tar.gz";
+        sha512  = "118967e64995d7c242738bf806928ecc52cfae3b0e0429a6951047eaf37d27bdde0adc0c6dc74e32d61b69565f7666cbfd4658396c37988e5d343debcc15bdf6";
+      };
+      x86_64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/2e9a9af2-f1dd-467a-85f3-430f5142bf0b/6ce0853ee69a127bb767270a737f6467/aspnetcore-runtime-9.0.0-preview.1.24081.5-osx-x64.tar.gz";
+        sha512  = "3ed80631a3ca0a4684a70fc0f17d46257a63cc71c7497c958accb4d329eff4a7c832a29c028b608798fbed0b82e2c5b7d5533c57dff2188d4142559b57341192";
+      };
+      aarch64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/a407f4d8-183b-45c9-8153-c889c10630b9/2388fbcc5171e20d05abeb301027df2e/aspnetcore-runtime-9.0.0-preview.1.24081.5-osx-arm64.tar.gz";
+        sha512  = "09746054c291b10bacf3fba8ad147443fd41f42b6b04d9559281bc7d919ddc56ebe7402021997f6f24b745b3292368719cc2142d0eebba76226c5603545b6743";
+      };
+    };
+  };
+
+  runtime_9_0 = buildNetRuntime {
+    version = "9.0.0-preview.1.24080.9";
+    srcs = {
+      x86_64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/5bcb417b-0de3-461c-9ce2-a9ddd5df1aff/73e36aaa7c2e381724a2adac149eb376/dotnet-runtime-9.0.0-preview.1.24080.9-linux-x64.tar.gz";
+        sha512  = "68f0b89227c8e0b3239477409708c1b0c5cc7d80afd6661dc2150946c66e2130cf560c2471609f0fd063f01ca1d8e72f74beec45ecb519cf58f1cdc434615054";
+      };
+      aarch64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/7d911f96-acdc-4f5f-b283-cae6d6439bfd/f9e1c8d283ffd1d2e40346926a9c37bc/dotnet-runtime-9.0.0-preview.1.24080.9-linux-arm64.tar.gz";
+        sha512  = "265b7bf094730be765bdaadec3215c1a7c51bff6fb18bb51cff383473e32d1ba821b6d046e0f7fa864400dc5cb68e35943057f5b6ae6e8c411375fc15fdbaf3c";
+      };
+      x86_64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/0307fdd7-b398-4e90-a88b-574d853b769b/ab8938a35b03d8308a7a16331fa65cfa/dotnet-runtime-9.0.0-preview.1.24080.9-osx-x64.tar.gz";
+        sha512  = "f644ce6ee158bd86a4aba21bdd955a3aebb0367b5af618b6e77dc85922bc790b9c33b572606a15f566b2729a90923f66a933159124e803494105a695c890b775";
+      };
+      aarch64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/079214b6-0ce6-4d6f-a0ac-9bd9072dad0f/14b558eb20224c345f78ea80f7029e11/dotnet-runtime-9.0.0-preview.1.24080.9-osx-arm64.tar.gz";
+        sha512  = "63bf6a57f61c4dcf4e0cdcedb8ff6c76cb702a95d4e0033f17b4cd2a3e800e73ab16c401fb098416404ea5716c725c175f9422250b2a8816c08eed2702cd38e5";
+      };
+    };
+  };
+
+  sdk_9_0 = buildNetSdk {
+    version = "9.0.100-preview.1.24101.2";
+    srcs = {
+      x86_64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/f51b05d4-bc43-4290-9b33-aaa212edbba6/e10559d91242409faf5c37cb529de8f3/dotnet-sdk-9.0.100-preview.1.24101.2-linux-x64.tar.gz";
+        sha512  = "e176126d9a12075d91a0ad2b4dd50021a564258742d86560bd216ac36482c763087bd8affc68fe9a8d3c46f61f864bc2c7c2e455739d21614516c4f73fd281fd";
+      };
+      aarch64-linux = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/e8743929-2c7b-4410-88f5-5f247040b498/ff454c589dc8d5dd9cb42e0950f34a69/dotnet-sdk-9.0.100-preview.1.24101.2-linux-arm64.tar.gz";
+        sha512  = "b7c29e4e4baf2d2ba7b29fc5a080df708c5a915e6fb1ce2ff93ffc8f18e7725fae5d569ab1349ef4b067d05d00886a17c8d1a95e211602db1ee5da820b5edefd";
+      };
+      x86_64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/9956af63-be37-43be-a854-01f3a95e12fe/60d97a3f4f53b33376b8df055a14cf39/dotnet-sdk-9.0.100-preview.1.24101.2-osx-x64.tar.gz";
+        sha512  = "90c6709c54c0f9f4d7100bbf9c3b8136b6468617034c23f6a60dc17092e311539d54b741e149b70f1b6a6e2c6be0aacc948d4c72abac724f47d5ea05e02a2939";
+      };
+      aarch64-darwin = {
+        url     = "https://download.visualstudio.microsoft.com/download/pr/cd991bbf-8952-4bd1-83d4-33eb1a810939/3662095e14f91f43c2b3a7e6c55666fa/dotnet-sdk-9.0.100-preview.1.24101.2-osx-arm64.tar.gz";
+        sha512  = "901835cfc277c626d38c7a2bc1a6704115d240812631cd32f4b51833b41ddcd3a4a169a1bbda42a9446eb33b2337f6a8c6410bc3d1bae557c8898d427e2fc8c1";
+      };
+    };
+    packages = { fetchNuGet }: [
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "9.0.0-preview.1.24081.5"; sha256 = "1li21dfibwmzrcnf1jlaybhrxjk3cb9vqyy700s5bqwcw69px7dh"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "9.0.0-preview.1.24081.5"; sha256 = "1gnilvb9ys76snhlv2vnv3h6xp9a6hb6pjjvlaawvl71y2cpjy4q"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm64"; version = "9.0.0-preview.1.24081.5"; sha256 = "05gvwi0i1s3rsi43cb3v8cd2pzr0qzccq8vhf4wm9rj63j0flz9y"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-x64"; version = "9.0.0-preview.1.24081.5"; sha256 = "0ivnyyjd38fwma2426bxxnbm033ai9f857n04gs73vybm3fs0f4v"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "9.0.0-preview.1.24081.5"; sha256 = "1bc5bh3qfsx4xdsmr6a6lxc58kqb7y68w12r872zfq5isz5hpq75"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "9.0.0-preview.1.24081.5"; sha256 = "1lqwczkgi972clvplj8clcdprlh5ydjsdv7343k3f1i32g8s57cq"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "9.0.0-preview.1.24081.5"; sha256 = "1z5fplrqr4k2lddjk2yzjxd398v21w2lxwb5q3hc2ll65f6grmhz"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "9.0.0-preview.1.24081.5"; sha256 = "15zl1ah878wdd4xxywj1kj110vjizmyvbnyq3fgb87cq9rl4b7fi"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "9.0.0-preview.1.24081.5"; sha256 = "0cqx20qpy35nc6hyzi8j2l96bliia5ks9dkvbjx5cykhar2bnqrl"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "9.0.0-preview.1.24081.5"; sha256 = "0nfzz7ibpmrsmzivs8ja7w8qw103bv34d69jw1704m5ha4ybca8v"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-musl-arm"; version = "9.0.0-preview.1.24081.5"; sha256 = "0a7sj4f6b9337xxdr1ckrnmar189bg8j6zx82qi6vppwsiwsgqz0"; })
+      (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "9.0.0-preview.1.24081.5"; sha256 = "06s1zpp5l3x7fxbrm78bnq26p1wfqn2282py7f26d3fn6hx692gg"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "9.0.0-preview.1.24080.9"; sha256 = "1qh7988cdbvmr7zqfwidpw8fx7hhjym1cfsyxf2hvzv7srbkhmr4"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "9.0.0-preview.1.24080.9"; sha256 = "13x14l513qhgs2dspkqkmxy6f0jr8ajsvkpm0apcs3xp2yz4p761"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm64"; version = "9.0.0-preview.1.24080.9"; sha256 = "14azy981h13ngwipn2k2nf0p09sqmv0j79xpg2nv1hrznwxvfckk"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "1qssmhwlpp0hcbml2vh2flxhmmmvnllvkgczbrv7pmq0h38r3ydl"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "1ql0prr6md6dm3dgxxyfvlw773klnlhd2hk6r73fd0s68xkd1qr2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "0a6dl6m93xx9c0yx574zx4cfyvvxaj41yw43d2g3sclsrrn4b9pp"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "9.0.0-preview.1.24080.9"; sha256 = "0962lnkfdp6bv7rv4ji5wsrcs0hjjp4yzlnf4hmz90mqd3i05w4p"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "1dxdax2z2bdwlwjm6nxiwk252d0fi9rdx0rhx7d8vam5gm336mhr"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "9.0.0-preview.1.24080.9"; sha256 = "1d9pfs06hip5d80zsmgbsfffbzmdmc29h7bl92cqf3p5hkj53zf7"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "9.0.0-preview.1.24080.9"; sha256 = "0nsdhf5pr2id2i3l7fhqn24d234isfd0kv3dr89pgfh3zprs67zd"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "9.0.0-preview.1.24080.9"; sha256 = "0nzzf2m4wy66cyp0by0594xdq090b2rzhz6f9yadf3mj3427v9lr"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm64"; version = "9.0.0-preview.1.24080.9"; sha256 = "1sk76h47fdbp2dlh9gqd89fa9gdhycsq1im6l2va30x9yj4909qa"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "0dchamrhqb4bml9p1dhq92wykm6b3swqnqax8ficnxpy0i2qd01q"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "0k235sbrrx3hyl13qvri779l20l9bl2534g8rxl5gvxicfjz25kp"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "1sn8k2isahx2vkiwb94ry4cs96f71y2q8x5p6k8zql9j1v7vqaij"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "9.0.0-preview.1.24080.9"; sha256 = "05448mdb2sqvxlfipfaj3zjc4pkn2q55jxjyynhg94v0rxssm8fx"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "1xj7hs7v76fjyr4lldipf8wslxf36a9l8g2czpsz3bjfcaydj1nb"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "9.0.0-preview.1.24080.9"; sha256 = "0g9zgql716iwh76jp9bj5h0jp935chnxv5ah0i7fa4g4k84y45ww"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.1.24080.9"; sha256 = "122nia5gmq0riqdpgrz3aqfm7yp02xn0lxpljmah682h06mynvl7"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.1.24080.9"; sha256 = "0clh5mphnai7xqb4f9r0dn23i6n4h73xf1hxi3hmxw6zjnplngpj"; })
+      (fetchNuGet { pname = "runtime.linux-arm.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.1.24080.9"; sha256 = "141ffygbqny0x6k4lkndfi2z545c2r41rlc5hjw8b2sy99rfpjny"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.1.24080.9"; sha256 = "0ddl3kgff8b3np6axnl7gyhhzwic6vhy0b5bz4a0dvapwlpjb0a6"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.1.24080.9"; sha256 = "1vmpl25sp4hrkx6hrrqnp0ifqr9w9vdim4sb5igflwggdmdyqlif"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.1.24080.9"; sha256 = "0id7j171maci60wnvy41gibl4x9fn8gl6cg787dy4a9rnn2452m6"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.1.24080.9"; sha256 = "0d0ynkczks7birpj5n3bka1fh998syci3h30wdqh68b00svqfvd2"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.1.24080.9"; sha256 = "1hbm9ng1j2gia5rpynmhyk404041bbkdc6y483n4wzyyl538b6wq"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.1.24080.9"; sha256 = "0k24rw258glp3mihxwb0r2pnp6a4bcsjb21asa9jsa1w2dsvlisf"; })
+      (fetchNuGet { pname = "runtime.win-x86.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.1.24080.9"; sha256 = "1plgpd6q1q8xifr40hv67amvmq4sl9hirh1r2i7rd2bybga301fs"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-musl-arm"; version = "9.0.0-preview.1.24080.9"; sha256 = "122wyzf8ky7h6qhaj4nhffgb51xnix9fhh1niqcli0j7n8qcx6p1"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "9.0.0-preview.1.24080.9"; sha256 = "0af0fpwv3vk0v8448kl3z13xs3063qm7901wx919qmb4a9gkw6x2"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-musl-arm"; version = "9.0.0-preview.1.24080.9"; sha256 = "06zh10z4ij5rsnnvsbixp99y5ss6jsb5yy78il5axby9kny75r0p"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "9.0.0-preview.1.24080.9"; sha256 = "0p9rnp355q9hbl88wjkx4cjkagwz87ggxnrc823qkcxxkf56wscj"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "9.0.0-preview.1.24080.9"; sha256 = "1gbb7h757ilffgg35smqa890rzz0667nml2ybdrii2a35prh537b"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm"; version = "9.0.0-preview.1.24080.9"; sha256 = "1n8q387aqj7vr7frlmwj8ikm67kamlk5fdj788cpspg4pr473g5y"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-arm64"; version = "9.0.0-preview.1.24080.9"; sha256 = "19sc62mm0abmzr55nmk32ygxfqbc2jm0xydsap714b2hgl3b4lq3"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-musl-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "0602a6qybccsyif6qd6k8xyrkwd4vw8yj12jl910vj2ba0anzhjp"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.linux-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "0fgn04vzb1821ii7d2k4zzhf0k4x4zkz01c90z0dsazjna80nyav"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"; version = "9.0.0-preview.1.24080.9"; sha256 = "0868zrfwa4lhqrq5nxc97n0i36w97ydl8k97w25d6iqlbs43pq4r"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.osx-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "0a1c9f9nwwlai7lzg331as5rnzk2wrnks9wx0azh4z4l6sag5r9v"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "1xlfqpnkkxbsw3wylvxcy406lkb3qlfn6kisa6l50zxklxw11xsv"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.Mono.win-x86"; version = "9.0.0-preview.1.24080.9"; sha256 = "1shnmvbmf0rl7ch92sf561hrwvahgiicral5m6wrhifnnzadjajv"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.1.24080.9"; sha256 = "02dq65n6kcpbkk38ic4g1rq38qfhxj7rx5aj2174qs9kq477rmsm"; })
+      (fetchNuGet { pname = "runtime.osx-arm64.Microsoft.NETCore.DotNetAppHost"; version = "9.0.0-preview.1.24080.9"; sha256 = "1xqpfdgsdzafyfds021cl1sc5bcg146gg1hn7xln68j965im02yr"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm"; version = "9.0.0-preview.1.24080.9"; sha256 = "17yp1b13l3b3arivms1b2ydg8mlysyjqnk50b2qfhp5l3i0y1sqr"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-arm64"; version = "9.0.0-preview.1.24080.9"; sha256 = "191qbl3zjwghwjlv958cdv0cslz4xkhb1k3cq7bi071zlmvs6yph"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-musl-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "05ay8n84f1f7vrhv71z6zjn7qm5vjgqn6flk9h6k4c1ld9w2nx8l"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm"; version = "9.0.0-preview.1.24080.9"; sha256 = "1a01xb92qgg0304z9z7xllnawi73b3pp2aczvchjsyj94ifx07zb"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-arm64"; version = "9.0.0-preview.1.24080.9"; sha256 = "0mjl5l56a2kdcdnjnmaaw4rw0ijfcffq7qjcva1n6fzfzw45pdpl"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.linux-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "06hdjvnmqnxi621s2fg4n60sipa5660g2hik0pnmyppcp9218n5z"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-x64"; version = "9.0.0-preview.1.24080.9"; sha256 = "0y9506n271qaqvkasmfqnk83bxgi53hzcwdn6dqlkbdh2drsq7f4"; })
+      (fetchNuGet { pname = "Microsoft.NETCore.App.Crossgen2.osx-arm64"; version = "9.0.0-preview.1.24080.9"; sha256 = "133rjr7cd18srl4d7rp3kadbwczwb8kj2z46hhim5v4zz3w3hk15"; })
+      (fetchNuGet { pname = "runtime.linux-arm64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.1.24080.9"; sha256 = "1cv4prjb7qij28j8qv5psgxjkfwhgcpkgwq56c8c1lajzabyblgw"; })
+      (fetchNuGet { pname = "runtime.linux-musl-arm64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.1.24080.9"; sha256 = "09qs0xzv91lscwarjgr089mx8sgrqhafi5r38gvr1q2brpgz13qi"; })
+      (fetchNuGet { pname = "runtime.linux-musl-x64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.1.24080.9"; sha256 = "1yby7m761232izvi60m13b2w4ar0ww4r8g9q61glgac36lqgbw0b"; })
+      (fetchNuGet { pname = "runtime.linux-x64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.1.24080.9"; sha256 = "1ms7rv2ww8cdrzr6vq5rr7ysac4znfbyp8c6sd887vy2a6g5kc9p"; })
+      (fetchNuGet { pname = "runtime.osx-x64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.1.24080.9"; sha256 = "13ra7s6hhfi8yszcf45c3wml1jhjjrh6r49linpwaz8p71rpr748"; })
+      (fetchNuGet { pname = "runtime.win-arm64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.1.24080.9"; sha256 = "13411aghpjxkip2ddq0pkg7b4gmy1qr9migfbpd2nc7287gngd72"; })
+      (fetchNuGet { pname = "runtime.win-x64.Microsoft.DotNet.ILCompiler"; version = "9.0.0-preview.1.24080.9"; sha256 = "16dw2qixs6bn16inplwc57x4kbwkd0amaqzhsrf1wsaajal4fh5q"; })
+      (fetchNuGet { pname = "Microsoft.NET.ILLink.Tasks"; version = "9.0.0-preview.1.24080.9"; sha256 = "0sxas6zxpfwrz6bvkw9jyraprksvrgm92hccispxp7yh8mjkhcr0"; })
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/dotnet/vmr.nix b/nixpkgs/pkgs/development/compilers/dotnet/vmr.nix
index 36b75c40e6c8..962c0c0844a5 100644
--- a/nixpkgs/pkgs/development/compilers/dotnet/vmr.nix
+++ b/nixpkgs/pkgs/development/compilers/dotnet/vmr.nix
@@ -187,6 +187,14 @@ in stdenv.mkDerivation rec {
     substituteInPlace \
       src/runtime/src/native/libs/CMakeLists.txt \
       --replace-fail 'add_compile_options(-Weverything)' 'add_compile_options(-Wall)'
+
+    # strip native symbols in runtime
+    # see: https://github.com/dotnet/source-build/issues/2543
+    xmlstarlet ed \
+      --inplace \
+      -s //Project -t elem -n PropertyGroup \
+      -s \$prev -t elem -n KeepNativeSymbols -v false \
+      src/runtime/Directory.Build.props
   ''
   + lib.optionalString isLinux ''
     substituteInPlace \
@@ -311,6 +319,13 @@ in stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  # dotnet cli is in the root, so we need to strip from there
+  # TODO: should we install in $out/share/dotnet?
+  stripDebugList = [ "." ];
+  # stripping dlls results in:
+  # Failed to load System.Private.CoreLib.dll (error code 0x8007000B)
+  stripExclude = [ "*.dll" ];
+
   passthru = {
     inherit releaseManifest buildRid targetRid;
     icu = _icu;
diff --git a/nixpkgs/pkgs/development/compilers/elm/default.nix b/nixpkgs/pkgs/development/compilers/elm/default.nix
index 9ae361ddf442..44e1459af84d 100644
--- a/nixpkgs/pkgs/development/compilers/elm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/elm/default.nix
@@ -36,6 +36,10 @@ let
     };
     in elmPkgs // {
       inherit elmPkgs;
+
+      ansi-wl-pprint = overrideCabal (drv: {
+        jailbreak = true;
+      }) (self.callPackage ./packages/ansi-wl-pprint.nix {});
     };
   };
 
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/ansi-wl-pprint.nix b/nixpkgs/pkgs/development/compilers/elm/packages/ansi-wl-pprint.nix
new file mode 100644
index 000000000000..392ca5ab31b1
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/ansi-wl-pprint.nix
@@ -0,0 +1,17 @@
+{ mkDerivation, ansi-terminal, base, fetchgit, lib }:
+mkDerivation {
+  pname = "ansi-wl-pprint";
+  version = "0.6.8.1";
+  src = fetchgit {
+    url = "https://github.com/ekmett/ansi-wl-pprint";
+    sha256 = "00pgxgkramz6y1bgdlm00rsh6gd6mdaqllh6riax2rc2sa35kip4";
+    rev = "d16e2f6896d76b87b72af7220c2e93ba15c53280";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [ ansi-terminal base ];
+  homepage = "http://github.com/ekmett/ansi-wl-pprint";
+  description = "The Wadler/Leijen Pretty Printer for colored ANSI terminal output";
+  license = lib.licenses.bsd3;
+}
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/elm-instrument.nix b/nixpkgs/pkgs/development/compilers/elm/packages/elm-instrument.nix
index 18f4d3aff196..02593b855077 100644
--- a/nixpkgs/pkgs/development/compilers/elm/packages/elm-instrument.nix
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/elm-instrument.nix
@@ -40,4 +40,5 @@ mkDerivation {
   homepage = "https://elm-lang.org";
   description = "Instrumentation library for Elm";
   license = lib.licenses.bsd3;
+  mainProgram = "elm-instrument";
 }
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.nix b/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.nix
index 6eb5d10cd471..5b988244cc97 100644
--- a/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.nix
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Install, upgrade and uninstall Elm dependencies";
+    mainProgram = "elm-json";
     homepage = "https://github.com/zwilias/elm-json";
     license = licenses.mit;
     maintainers = [ maintainers.turbomack ];
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/elm-test-rs.nix b/nixpkgs/pkgs/development/compilers/elm/packages/elm-test-rs.nix
index 5e2a5502b211..02f69c2d2f03 100644
--- a/nixpkgs/pkgs/development/compilers/elm/packages/elm-test-rs.nix
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/elm-test-rs.nix
@@ -23,6 +23,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Fast and portable executable to run your Elm tests";
+    mainProgram = "elm-test-rs";
     homepage = "https://github.com/mpizenberg/elm-test-rs";
     license = licenses.bsd3;
     maintainers = [ maintainers.jpagex ];
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/elm-test.nix b/nixpkgs/pkgs/development/compilers/elm/packages/elm-test.nix
index fc943a80a3fa..eca45395c3df 100644
--- a/nixpkgs/pkgs/development/compilers/elm/packages/elm-test.nix
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/elm-test.nix
@@ -25,6 +25,7 @@ buildNpmPackage rec {
   meta = {
     changelog = "https://github.com/rtfeldman/node-test-runner/blob/${src.rev}/CHANGELOG.md";
     description = "Runs elm-test suites from Node.js";
+    mainProgram = "elm-test";
     homepage = "https://github.com/rtfeldman/node-test-runner";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ turbomack ];
diff --git a/nixpkgs/pkgs/development/compilers/elm/update.sh b/nixpkgs/pkgs/development/compilers/elm/update.sh
index ecd24de46f67..4de11bd8ff5d 100755
--- a/nixpkgs/pkgs/development/compilers/elm/update.sh
+++ b/nixpkgs/pkgs/development/compilers/elm/update.sh
@@ -1,6 +1,8 @@
 #!/usr/bin/env nix-shell
 #!nix-shell -p cabal2nix elm2nix -i bash ../../..
 
+cabal2nix https://github.com/ekmett/ansi-wl-pprint --revision d16e2f6896d76b87b72af7220c2e93ba15c53280 > packages/ansi-wl-pprint.nix
+
 # We're building binaries from commit that npm installer is using since
 # November 1st release called 0.19.1-6 in npm registry.
 # These binaries are built with newer ghc version and also support Aarch64 for Linux and Darwin.
diff --git a/nixpkgs/pkgs/development/compilers/erg/default.nix b/nixpkgs/pkgs/development/compilers/erg/default.nix
index ab5458855423..0ad4320c046a 100644
--- a/nixpkgs/pkgs/development/compilers/erg/default.nix
+++ b/nixpkgs/pkgs/development/compilers/erg/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "erg";
-  version = "0.6.30";
+  version = "0.6.32";
 
   src = fetchFromGitHub {
     owner = "erg-lang";
     repo = "erg";
     rev = "v${version}";
-    hash = "sha256-lStTLDXgdaaqyzdzU1V2JnKX8jt27Z1A23fkuZU8dt0=";
+    hash = "sha256-l+I6ue824dvZ1AmSS/y+Sh43OstJ5c+8xIXvoVpMFws=";
   };
 
-  cargoHash = "sha256-MsDan3wL9RhH0uhAuq0Lg8IRBXR8a3ooEBx6n2CMAVk=";
+  cargoHash = "sha256-SRltpqTviC+Dq9pPBuLjctOXOKTYw+zVlvA9wi0iFWg=";
 
   nativeBuildInputs = [
     makeWrapper
@@ -57,6 +57,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A statically typed language that can deeply improve the Python ecosystem";
+    mainProgram = "erg";
     homepage = "https://github.com/erg-lang/erg";
     changelog = "https://github.com/erg-lang/erg/releases/tag/${src.rev}";
     license = with licenses; [ asl20 mit ];
diff --git a/nixpkgs/pkgs/development/compilers/fasmg/default.nix b/nixpkgs/pkgs/development/compilers/fasmg/default.nix
index ec915bcb04bc..b62c114c77e4 100644
--- a/nixpkgs/pkgs/development/compilers/fasmg/default.nix
+++ b/nixpkgs/pkgs/development/compilers/fasmg/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "x86(-64) macro assembler to binary, MZ, PE, COFF, and ELF";
+    mainProgram = "fasmg";
     homepage = "https://flatassembler.net";
     license = licenses.bsd3;
     maintainers = with maintainers; [ orivej luc65r ];
diff --git a/nixpkgs/pkgs/development/compilers/fbc/default.nix b/nixpkgs/pkgs/development/compilers/fbc/default.nix
index 631bf9c7bfe0..f2a223fb6b8a 100644
--- a/nixpkgs/pkgs/development/compilers/fbc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/fbc/default.nix
@@ -123,6 +123,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.freebasic.net/";
     description = "A multi-platform BASIC Compiler";
+    mainProgram = "fbc";
     longDescription = ''
       FreeBASIC is a completely free, open-source, multi-platform BASIC compiler (fbc),
       with syntax similar to (and support for) MS-QuickBASIC, that adds new features
diff --git a/nixpkgs/pkgs/development/compilers/firrtl/default.nix b/nixpkgs/pkgs/development/compilers/firrtl/default.nix
index 5a59060b6f21..54138a6d3de8 100644
--- a/nixpkgs/pkgs/development/compilers/firrtl/default.nix
+++ b/nixpkgs/pkgs/development/compilers/firrtl/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Flexible Intermediate Representation for RTL";
+    mainProgram = "firrtl";
     longDescription = ''
       Firrtl is an intermediate representation (IR) for digital circuits
       designed as a platform for writing circuit-level transformations.
diff --git a/nixpkgs/pkgs/development/compilers/flasm/default.nix b/nixpkgs/pkgs/development/compilers/flasm/default.nix
index c1d2cfedc984..e1da977b0039 100644
--- a/nixpkgs/pkgs/development/compilers/flasm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/flasm/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Assembler and disassembler for Flash (SWF) bytecode";
+    mainProgram = "flasm";
     homepage = "https://flasm.sourceforge.net/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ siraben ];
diff --git a/nixpkgs/pkgs/development/compilers/flix/default.nix b/nixpkgs/pkgs/development/compilers/flix/default.nix
index 92216dccbf89..c0f32438db14 100644
--- a/nixpkgs/pkgs/development/compilers/flix/default.nix
+++ b/nixpkgs/pkgs/development/compilers/flix/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "flix";
-  version = "0.44.0";
+  version = "0.45.0";
 
   src = fetchurl {
     url = "https://github.com/flix/flix/releases/download/v${version}/flix.jar";
-    sha256 = "sha256-osoUV05e1MCKs41j0dNIJi+0e7X+gHizgZSWicIJ678=";
+    sha256 = "sha256-h7smcfV7heJtTVXCGSlUmk1RNZ4AWFe2fPPOWLcJz/M=";
   };
 
   dontUnpack = true;
@@ -26,6 +26,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     description = "The Flix Programming Language";
+    mainProgram = "flix";
     homepage = "https://github.com/flix/flix";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/compilers/flutter/artifacts/overrides/darwin.nix b/nixpkgs/pkgs/development/compilers/flutter/artifacts/overrides/darwin.nix
index b03b14f68c8b..83257d4e34d5 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/artifacts/overrides/darwin.nix
+++ b/nixpkgs/pkgs/development/compilers/flutter/artifacts/overrides/darwin.nix
@@ -1,14 +1,12 @@
-{ darwin }:
-{
-  buildInputs ? [ ],
-  ...
+{}:
+{ buildInputs ? [ ]
+, ...
 }:
 {
   postPatch = ''
     if [ "$pname" == "flutter-tools" ]; then
-      # Remove impure references to `arch` and use arm64 instead of arm64e.
+      # Use arm64 instead of arm64e.
       substituteInPlace lib/src/ios/xcodeproj.dart \
-        --replace-fail /usr/bin/arch '${darwin.adv_cmds}/bin/arch' \
         --replace-fail arm64e arm64
     fi
   '';
diff --git a/nixpkgs/pkgs/development/compilers/flutter/flutter-tools.nix b/nixpkgs/pkgs/development/compilers/flutter/flutter-tools.nix
index 6f8d1b3c1a8f..cf35ed8cbc45 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/flutter-tools.nix
+++ b/nixpkgs/pkgs/development/compilers/flutter/flutter-tools.nix
@@ -9,7 +9,6 @@
 , flutterSrc
 , patches ? [ ]
 , pubspecLock
-, darwin
 }:
 
 buildDartApplication.override { inherit dart; } rec {
@@ -18,7 +17,7 @@ buildDartApplication.override { inherit dart; } rec {
   dartOutputType = "jit-snapshot";
 
   src = flutterSrc;
-  sourceRoot = "source/packages/flutter_tools";
+  sourceRoot = "${src.name}/packages/flutter_tools";
   postUnpack = ''chmod -R u+w "$NIX_BUILD_TOP/source"'';
 
   inherit patches;
@@ -27,10 +26,9 @@ buildDartApplication.override { inherit dart; } rec {
   postPatch = ''
     popd
   ''
-  # Remove impure references to `arch` and use arm64 instead of arm64e.
+  # Use arm64 instead of arm64e.
   + lib.optionalString stdenv.isDarwin ''
     substituteInPlace lib/src/ios/xcodeproj.dart \
-      --replace-fail /usr/bin/arch '${darwin.adv_cmds}/bin/arch' \
       --replace-fail arm64e arm64
   '';
 
diff --git a/nixpkgs/pkgs/development/compilers/flux/default.nix b/nixpkgs/pkgs/development/compilers/flux/default.nix
index 75386f21f743..bb3c0da52c61 100644
--- a/nixpkgs/pkgs/development/compilers/flux/default.nix
+++ b/nixpkgs/pkgs/development/compilers/flux/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An interface description language used by DirectFB";
+    mainProgram = "fluxcomp";
     homepage = "https://github.com/deniskropp/flux";
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/compilers/gbforth/default.nix b/nixpkgs/pkgs/development/compilers/gbforth/default.nix
index e85e621cff16..882a25cdae07 100644
--- a/nixpkgs/pkgs/development/compilers/gbforth/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gbforth/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://gbforth.org/";
     description = "A Forth-based Game Boy development kit";
+    mainProgram = "gbforth";
     longDescription = ''
       A Forth-based Game Boy development kit.
       It features a Forth-based assembler, a cross-compiler with support for
diff --git a/nixpkgs/pkgs/development/compilers/gcl/default.nix b/nixpkgs/pkgs/development/compilers/gcl/default.nix
index 8ef2cedbf076..64d36ea67a73 100644
--- a/nixpkgs/pkgs/development/compilers/gcl/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gcl/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GNU Common Lisp compiler working via GCC";
+    mainProgram = "gcl";
     maintainers = lib.teams.lisp.members;
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.10.7.nix b/nixpkgs/pkgs/development/compilers/ghc/8.10.7.nix
index c49c274c67d4..4a770d993a67 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.10.7.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.10.7.nix
@@ -103,7 +103,7 @@ let
     Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
   '' + lib.optionalString (!enableProfiledLibs) ''
-    GhcLibWays = "v dyn"
+    BUILD_PROF_LIBS = NO
   '' + lib.optionalString enableRelocatedStaticLibs ''
     GhcLibHcOpts += -fPIC
     GhcRtsHcOpts += -fPIC
diff --git a/nixpkgs/pkgs/development/compilers/ghc/9.0.2.nix b/nixpkgs/pkgs/development/compilers/ghc/9.0.2.nix
index bdfff2b795a4..175d1fe2450b 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/9.0.2.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/9.0.2.nix
@@ -105,7 +105,7 @@ let
     Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
   '' + lib.optionalString (!enableProfiledLibs) ''
-    GhcLibWays = "v dyn"
+    BUILD_PROF_LIBS = NO
   '' +
   # -fexternal-dynamic-refs apparently (because it's not clear from the documentation)
   # makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell.
diff --git a/nixpkgs/pkgs/development/compilers/ghc/9.2.5.nix b/nixpkgs/pkgs/development/compilers/ghc/9.2.5.nix
index 034a09511b2b..6c86e05ebbd4 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/9.2.5.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/9.2.5.nix
@@ -105,7 +105,7 @@ let
     Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
   '' + lib.optionalString (!enableProfiledLibs) ''
-    GhcLibWays = "v dyn"
+    BUILD_PROF_LIBS = NO
   '' +
   # -fexternal-dynamic-refs apparently (because it's not clear from the documentation)
   # makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell.
diff --git a/nixpkgs/pkgs/development/compilers/ghc/9.2.6.nix b/nixpkgs/pkgs/development/compilers/ghc/9.2.6.nix
index 83cd1e051c6a..6ff58f087f8a 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/9.2.6.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/9.2.6.nix
@@ -105,7 +105,7 @@ let
     Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
   '' + lib.optionalString (!enableProfiledLibs) ''
-    GhcLibWays = "v dyn"
+    BUILD_PROF_LIBS = NO
   '' +
   # -fexternal-dynamic-refs apparently (because it's not clear from the documentation)
   # makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell.
diff --git a/nixpkgs/pkgs/development/compilers/ghc/9.2.7.nix b/nixpkgs/pkgs/development/compilers/ghc/9.2.7.nix
index 4bf7252643de..f605bfda1981 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/9.2.7.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/9.2.7.nix
@@ -105,7 +105,7 @@ let
     Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
   '' + lib.optionalString (!enableProfiledLibs) ''
-    GhcLibWays = "v dyn"
+    BUILD_PROF_LIBS = NO
   '' +
   # -fexternal-dynamic-refs apparently (because it's not clear from the documentation)
   # makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell.
diff --git a/nixpkgs/pkgs/development/compilers/ghc/9.2.8.nix b/nixpkgs/pkgs/development/compilers/ghc/9.2.8.nix
index 0d469f733525..72cfdd242f42 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/9.2.8.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/9.2.8.nix
@@ -105,7 +105,7 @@ let
     Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
   '' + lib.optionalString (!enableProfiledLibs) ''
-    GhcLibWays = "v dyn"
+    BUILD_PROF_LIBS = NO
   '' +
   # -fexternal-dynamic-refs apparently (because it's not clear from the documentation)
   # makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell.
diff --git a/nixpkgs/pkgs/development/compilers/ghc/9.4.5.nix b/nixpkgs/pkgs/development/compilers/ghc/9.4.5.nix
index 9670d4a4fd57..298af6596e71 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/9.4.5.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/9.4.5.nix
@@ -107,7 +107,7 @@ let
     Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
   '' + lib.optionalString (!enableProfiledLibs) ''
-    GhcLibWays = "v dyn"
+    BUILD_PROF_LIBS = NO
   '' +
   # -fexternal-dynamic-refs apparently (because it's not clear from the documentation)
   # makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell.
diff --git a/nixpkgs/pkgs/development/compilers/ghc/9.4.6.nix b/nixpkgs/pkgs/development/compilers/ghc/9.4.6.nix
index f971f4e5a309..310787e477b2 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/9.4.6.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/9.4.6.nix
@@ -107,7 +107,7 @@ let
     Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
   '' + lib.optionalString (!enableProfiledLibs) ''
-    GhcLibWays = "v dyn"
+    BUILD_PROF_LIBS = NO
   '' +
   # -fexternal-dynamic-refs apparently (because it's not clear from the documentation)
   # makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell.
diff --git a/nixpkgs/pkgs/development/compilers/ghc/9.4.7.nix b/nixpkgs/pkgs/development/compilers/ghc/9.4.7.nix
index ac060dce91d0..e87f8fc3a907 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/9.4.7.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/9.4.7.nix
@@ -107,7 +107,7 @@ let
     Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
   '' + lib.optionalString (!enableProfiledLibs) ''
-    GhcLibWays = "v dyn"
+    BUILD_PROF_LIBS = NO
   '' +
   # -fexternal-dynamic-refs apparently (because it's not clear from the documentation)
   # makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell.
diff --git a/nixpkgs/pkgs/development/compilers/ghc/9.4.8.nix b/nixpkgs/pkgs/development/compilers/ghc/9.4.8.nix
index db79b72830d5..5ac2b60b1cd7 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/9.4.8.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/9.4.8.nix
@@ -107,7 +107,7 @@ let
     Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
   '' + lib.optionalString (!enableProfiledLibs) ''
-    GhcLibWays = "v dyn"
+    BUILD_PROF_LIBS = NO
   '' +
   # -fexternal-dynamic-refs apparently (because it's not clear from the documentation)
   # makes the GHC RTS able to load static libraries, which may be needed for TemplateHaskell.
diff --git a/nixpkgs/pkgs/development/compilers/ghc/9.6.3-binary.nix b/nixpkgs/pkgs/development/compilers/ghc/9.6.3-binary.nix
new file mode 100644
index 000000000000..b8ad3c1192eb
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/ghc/9.6.3-binary.nix
@@ -0,0 +1,410 @@
+{ lib, stdenv
+, fetchurl, perl, gcc
+, ncurses5
+, ncurses6, gmp, libiconv, numactl, libffi
+, llvmPackages
+, coreutils
+, targetPackages
+
+  # minimal = true; will remove files that aren't strictly necessary for
+  # regular builds and GHC bootstrapping.
+  # This is "useful" for staying within hydra's output limits for at least the
+  # aarch64-linux architecture.
+, minimal ? false
+}:
+
+# Prebuilt only does native
+assert stdenv.targetPlatform == stdenv.hostPlatform;
+
+let
+  downloadsUrl = "https://downloads.haskell.org/ghc";
+
+  # Copy sha256 from https://downloads.haskell.org/~ghc/9.6.3/SHA256SUMS
+  version = "9.6.3";
+
+  # Information about available bindists that we use in the build.
+  #
+  # # Bindist library checking
+  #
+  # The field `archSpecificLibraries` also provides a way for us get notified
+  # early when the upstream bindist changes its dependencies (e.g. because a
+  # newer Debian version is used that uses a new `ncurses` version).
+  #
+  # Usage:
+  #
+  # * You can find the `fileToCheckFor` of libraries by running `readelf -d`
+  #   on the compiler binary (`exePathForLibraryCheck`).
+  # * To skip library checking for an architecture,
+  #   set `exePathForLibraryCheck = null`.
+  # * To skip file checking for a specific arch specfic library,
+  #   set `fileToCheckFor = null`.
+  ghcBinDists = {
+    # Binary distributions for the default libc (e.g. glibc, or libSystem on Darwin)
+    # nixpkgs uses for the respective system.
+    defaultLibc = {
+      i686-linux = {
+        variantSuffix = "";
+        src = {
+          url = "${downloadsUrl}/${version}/ghc-${version}-i386-deb9-linux.tar.xz";
+          sha256 = "58be26f8b8f6b5bd8baf5c32abb03e2c4621646b2142fab10e5c7de5af5c50f8";
+        };
+        exePathForLibraryCheck = "bin/ghc";
+        archSpecificLibraries = [
+          { nixPackage = gmp; fileToCheckFor = null; }
+          # The i686-linux bindist provided by GHC HQ is currently built on Debian 9,
+          # which link it against `libtinfo.so.5` (ncurses 5).
+          # Other bindists are linked `libtinfo.so.6` (ncurses 6).
+          { nixPackage = ncurses5; fileToCheckFor = "libtinfo.so.5"; }
+        ];
+      };
+      x86_64-linux = {
+        variantSuffix = "";
+        src = {
+          url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-deb11-linux.tar.xz";
+          sha256 = "c4c0124857265926f1cf22a09d950d7ba989ff94053a4ddf3dcdab5359f4cab7";
+        };
+        exePathForLibraryCheck = "bin/ghc";
+        archSpecificLibraries = [
+          { nixPackage = gmp; fileToCheckFor = null; }
+          { nixPackage = ncurses6; fileToCheckFor = "libtinfo.so.6"; }
+        ];
+      };
+      aarch64-linux = {
+        variantSuffix = "";
+        src = {
+          url = "${downloadsUrl}/${version}/ghc-${version}-aarch64-deb10-linux.tar.xz";
+          sha256 = "03c389859319f09452081310fc13af7525063ea8930830ef76be2a14b312271e";
+        };
+        exePathForLibraryCheck = "bin/ghc";
+        archSpecificLibraries = [
+          { nixPackage = gmp; fileToCheckFor = null; }
+          { nixPackage = ncurses6; fileToCheckFor = "libtinfo.so.6"; }
+          { nixPackage = numactl; fileToCheckFor = null; }
+        ];
+      };
+      x86_64-darwin = {
+        variantSuffix = "";
+        src = {
+          url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
+          sha256 = "dde46118ab8388fb1066312c097123e93b1dcf6ae366e3370f88ea456382c9db";
+        };
+        exePathForLibraryCheck = null; # we don't have a library check for darwin yet
+        archSpecificLibraries = [
+          { nixPackage = gmp; fileToCheckFor = null; }
+          { nixPackage = ncurses6; fileToCheckFor = null; }
+          { nixPackage = libiconv; fileToCheckFor = null; }
+        ];
+      };
+      aarch64-darwin = {
+        variantSuffix = "";
+        src = {
+          url = "${downloadsUrl}/${version}/ghc-${version}-aarch64-apple-darwin.tar.xz";
+          sha256 = "e1cdf458926b2eaf52d2a8287d99a965040ff9051171f5c3b7467049cf0eb213";
+        };
+        exePathForLibraryCheck = null; # we don't have a library check for darwin yet
+        archSpecificLibraries = [
+          { nixPackage = gmp; fileToCheckFor = null; }
+          { nixPackage = ncurses6; fileToCheckFor = null; }
+          { nixPackage = libiconv; fileToCheckFor = null; }
+        ];
+      };
+    };
+    # Binary distributions for the musl libc for the respective system.
+    musl = {
+      x86_64-linux = {
+        variantSuffix = "-musl";
+        src = {
+          url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-alpine3_12-linux.tar.xz";
+          sha256 = "8f457af0aa40127049c11134c8793f64351a446e87da1f8ec256e1279b5ab61f";
+        };
+        exePathForLibraryCheck = "bin/ghc";
+        archSpecificLibraries = [
+          { nixPackage = gmp; fileToCheckFor = null; }
+          { nixPackage = ncurses6; fileToCheckFor = "libncursesw.so.6"; }
+        ];
+      };
+    };
+  };
+
+  distSetName = if stdenv.hostPlatform.isMusl then "musl" else "defaultLibc";
+
+  binDistUsed = ghcBinDists.${distSetName}.${stdenv.hostPlatform.system}
+    or (throw "cannot bootstrap GHC on this platform ('${stdenv.hostPlatform.system}' with libc '${distSetName}')");
+
+  gmpUsed = (builtins.head (
+    builtins.filter (
+      drv: lib.hasPrefix "gmp" (drv.nixPackage.name or "")
+    ) binDistUsed.archSpecificLibraries
+  )).nixPackage;
+
+  # GHC has other native backends (like PowerPC), but here only the ones
+  # we ship bindists for matter.
+  useLLVM = !(stdenv.targetPlatform.isx86
+    || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin));
+
+  libPath =
+    lib.makeLibraryPath (
+      # Add arch-specific libraries.
+      map ({ nixPackage, ... }: nixPackage) binDistUsed.archSpecificLibraries
+    );
+
+  libEnvVar = lib.optionalString stdenv.hostPlatform.isDarwin "DY"
+    + "LD_LIBRARY_PATH";
+
+  runtimeDeps = [
+    targetPackages.stdenv.cc
+    targetPackages.stdenv.cc.bintools
+    coreutils # for cat
+  ]
+  ++ lib.optionals useLLVM [
+    (lib.getBin llvmPackages.llvm)
+  ]
+  # On darwin, we need unwrapped bintools as well (for otool)
+  ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
+    targetPackages.stdenv.cc.bintools.bintools
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  inherit version;
+  pname = "ghc-binary${binDistUsed.variantSuffix}";
+
+  src = fetchurl binDistUsed.src;
+
+  nativeBuildInputs = [ perl ];
+
+  # Set LD_LIBRARY_PATH or equivalent so that the programs running as part
+  # of the bindist installer can find the libraries they expect.
+  # Cannot patchelf beforehand due to relative RPATHs that anticipate
+  # the final install location.
+  ${libEnvVar} = libPath;
+
+  postUnpack =
+    # Verify our assumptions of which `libtinfo.so` (ncurses) version is used,
+    # so that we know when ghc bindists upgrade that and we need to update the
+    # version used in `libPath`.
+    lib.optionalString
+      (binDistUsed.exePathForLibraryCheck != null)
+      # Note the `*` glob because some GHCs have a suffix when unpacked, e.g.
+      # the musl bindist has dir `ghc-VERSION-x86_64-unknown-linux/`.
+      # As a result, don't shell-quote this glob when splicing the string.
+      (let buildExeGlob = ''ghc-${version}*/"${binDistUsed.exePathForLibraryCheck}"''; in
+        lib.concatStringsSep "\n" [
+          (''
+            shopt -u nullglob
+            echo "Checking that ghc binary exists in bindist at ${buildExeGlob}"
+            if ! test -e ${buildExeGlob}; then
+              echo >&2 "GHC binary ${binDistUsed.exePathForLibraryCheck} could not be found in the bindist build directory (at ${buildExeGlob}) for arch ${stdenv.hostPlatform.system}, please check that ghcBinDists correctly reflect the bindist dependencies!"; exit 1;
+            fi
+          '')
+          (lib.concatMapStringsSep
+            "\n"
+            ({ fileToCheckFor, nixPackage }:
+              lib.optionalString (fileToCheckFor != null) ''
+                echo "Checking bindist for ${fileToCheckFor} to ensure that is still used"
+                if ! readelf -d ${buildExeGlob} | grep "${fileToCheckFor}"; then
+                  echo >&2 "File ${fileToCheckFor} could not be found in ${binDistUsed.exePathForLibraryCheck} for arch ${stdenv.hostPlatform.system}, please check that ghcBinDists correctly reflect the bindist dependencies!"; exit 1;
+                fi
+
+                echo "Checking that the nix package ${nixPackage} contains ${fileToCheckFor}"
+                if ! test -e "${lib.getLib nixPackage}/lib/${fileToCheckFor}"; then
+                  echo >&2 "Nix package ${nixPackage} did not contain ${fileToCheckFor} for arch ${stdenv.hostPlatform.system}, please check that ghcBinDists correctly reflect the bindist dependencies!"; exit 1;
+                fi
+              ''
+            )
+            binDistUsed.archSpecificLibraries
+          )
+        ])
+    # GHC has dtrace probes, which causes ld to try to open /usr/lib/libdtrace.dylib
+    # during linking
+    + lib.optionalString stdenv.isDarwin ''
+      export NIX_LDFLAGS+=" -no_dtrace_dof"
+      # not enough room in the object files for the full path to libiconv :(
+      for exe in $(find . -type f -executable); do
+        isMachO $exe || continue
+        ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
+        install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
+      done
+    ''
+
+    # We have to patch the GMP paths for the ghc-bignum package, for hadrian by
+    # modifying the package-db directly
+    + ''
+      find . -name 'ghc-bignum*.conf' \
+          -exec sed -e '/^[a-z-]*library-dirs/a \    ${lib.getLib gmpUsed}/lib' -i {} \;
+    ''
+    # Similar for iconv and libffi on darwin
+    + lib.optionalString stdenv.isDarwin ''
+      find . -name 'base*.conf' \
+          -exec sed -e '/^[a-z-]*library-dirs/a \    ${lib.getLib libiconv}/lib' -i {} \;
+
+      # To link RTS in the end we also need libffi now
+      find . -name 'rts*.conf' \
+          -exec sed -e '/^[a-z-]*library-dirs/a \    ${lib.getLib libffi}/lib' \
+                    -e 's@/Library/Developer/.*/usr/include/ffi@${lib.getDev libffi}/include@' \
+                    -i {} \;
+    '' +
+    # aarch64 does HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
+    # FFI_LIB_DIR is a good indication of places it must be needed.
+    lib.optionalString (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) ''
+      find . -name package.conf.in \
+          -exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
+    '' +
+    # Rename needed libraries and binaries, fix interpreter
+    lib.optionalString stdenv.isLinux ''
+      find . -type f -executable -exec patchelf \
+          --interpreter ${stdenv.cc.bintools.dynamicLinker} {} \;
+    '';
+
+  # fix for `configure: error: Your linker is affected by binutils #16177`
+  preConfigure = lib.optionalString
+    stdenv.targetPlatform.isAarch32
+    "LD=ld.gold";
+
+  # GHC has a patched config.sub and bindists' platforms should always work
+  dontUpdateAutotoolsGnuConfigScripts = true;
+
+  configurePlatforms = [ ];
+  configureFlags =
+    lib.optional stdenv.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"
+    # From: https://github.com/NixOS/nixpkgs/pull/43369/commits
+    ++ lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
+
+  # No building is necessary, but calling make without flags ironically
+  # calls install-strip ...
+  dontBuild = true;
+
+  # Patch scripts to include runtime dependencies in $PATH.
+  postInstall = ''
+    for i in "$out/bin/"*; do
+      test ! -h "$i" || continue
+      isScript "$i" || continue
+      sed -i -e '2i export PATH="${lib.makeBinPath runtimeDeps}:$PATH"' "$i"
+    done
+  '';
+
+  # Apparently necessary for the ghc Alpine (musl) bindist:
+  # When we strip, and then run the
+  #     patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
+  # below, running ghc (e.g. during `installCheckPhase)` gives some apparently
+  # corrupted rpath or whatever makes the loader work on nonsensical strings:
+  #     running install tests
+  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: : symbol not found
+  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: ir6zf6c9f86pfx8sr30n2vjy-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/../lib/x86_64-linux-ghc-8.10.5/libHSexceptions-0.10.4-ghc8.10.5.so: symbol not found
+  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: y/lib/ghc-8.10.5/bin/../lib/x86_64-linux-ghc-8.10.5/libHStemplate-haskell-2.16.0.0-ghc8.10.5.so: symbol not found
+  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: 8.10.5/libHStemplate-haskell-2.16.0.0-ghc8.10.5.so: symbol not found
+  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: �: symbol not found
+  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: �?: symbol not found
+  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: 64-linux-ghc-8.10.5/libHSexceptions-0.10.4-ghc8.10.5.so: symbol not found
+  # This is extremely bogus and should be investigated.
+  dontStrip = if stdenv.hostPlatform.isMusl then true else false; # `if` for explicitness
+
+  # On Linux, use patchelf to modify the executables so that they can
+  # find editline/gmp.
+  postFixup = lib.optionalString (stdenv.isLinux && !(binDistUsed.isStatic or false))
+    (if stdenv.hostPlatform.isAarch64 then
+      # Keep rpath as small as possible on aarch64 for patchelf#244.  All Elfs
+      # are 2 directories deep from $out/lib, so pooling symlinks there makes
+      # a short rpath.
+      ''
+      (cd $out/lib; ln -s ${ncurses6.out}/lib/libtinfo.so.6)
+      (cd $out/lib; ln -s ${lib.getLib gmpUsed}/lib/libgmp.so.10)
+      (cd $out/lib; ln -s ${numactl.out}/lib/libnuma.so.1)
+      for p in $(find "$out/lib" -type f -name "*\.so*"); do
+        (cd $out/lib; ln -s $p)
+      done
+
+      for p in $(find "$out/lib" -type f -executable); do
+        if isELF "$p"; then
+          echo "Patchelfing $p"
+          patchelf --set-rpath "\$ORIGIN:\$ORIGIN/../.." $p
+        fi
+      done
+      ''
+    else
+      ''
+      for p in $(find "$out" -type f -executable); do
+        if isELF "$p"; then
+          echo "Patchelfing $p"
+          patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
+        fi
+      done
+    '') + lib.optionalString stdenv.isDarwin ''
+    # not enough room in the object files for the full path to libiconv :(
+    for exe in $(find "$out" -type f -executable); do
+      isMachO $exe || continue
+      ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
+      install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
+    done
+
+    for file in $(find "$out" -name setup-config); do
+      substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
+    done
+  ''
+  # Recache package db which needs to happen for Hadrian bindists
+  # where we modify the package db before installing
+  + ''
+    package_db=("$out"/lib/ghc-*/lib/package.conf.d)
+    "$out/bin/ghc-pkg" --package-db="$package_db" recache
+  '';
+
+  # In nixpkgs, musl based builds currently enable `pie` hardening by default
+  # (see `defaultHardeningFlags` in `make-derivation.nix`).
+  # But GHC cannot currently produce outputs that are ready for `-pie` linking.
+  # Thus, disable `pie` hardening, otherwise `recompile with -fPIE` errors appear.
+  # See:
+  # * https://github.com/NixOS/nixpkgs/issues/129247
+  # * https://gitlab.haskell.org/ghc/ghc/-/issues/19580
+  hardeningDisable = lib.optional stdenv.targetPlatform.isMusl "pie";
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    # Sanity check, can ghc create executables?
+    cd $TMP
+    mkdir test-ghc; cd test-ghc
+    cat > main.hs << EOF
+      {-# LANGUAGE TemplateHaskell #-}
+      module Main where
+      main = putStrLn \$([|"yes"|])
+    EOF
+    env -i $out/bin/ghc --make main.hs || exit 1
+    echo compilation ok
+    [ $(./main) == "yes" ]
+  '';
+
+  passthru = {
+    targetPrefix = "";
+    enableShared = true;
+
+    inherit llvmPackages;
+
+    # Our Cabal compiler name
+    haskellCompilerName = "ghc-${version}";
+
+    # Normal GHC derivations expose the hadrian derivation used to build them
+    # here. In the case of bindists we just make sure that the attribute exists,
+    # as it is used for checking if a GHC derivation has been built with hadrian.
+    hadrian = null;
+  };
+
+  meta = rec {
+    homepage = "http://haskell.org/ghc";
+    description = "The Glasgow Haskell Compiler";
+    license = lib.licenses.bsd3;
+    # HACK: since we can't encode the libc / abi in platforms, we need
+    # to make the platform list dependent on the evaluation platform
+    # in order to avoid eval errors with musl which supports less
+    # platforms than the default libcs (i. e. glibc / libSystem).
+    # This is done for the benefit of Hydra, so `packagePlatforms`
+    # won't return any platforms that would cause an evaluation
+    # failure for `pkgsMusl.haskell.compiler.ghc922Binary`, as
+    # long as the evaluator runs on a platform that supports
+    # `pkgsMusl`.
+    platforms = builtins.attrNames ghcBinDists.${distSetName};
+    maintainers = lib.teams.haskell.members;
+    # packages involving hsc2hs (clock) produce libraries our
+    # ld can't link against
+    broken = stdenv.hostPlatform.isDarwin;
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/ghc/9.8.2.nix b/nixpkgs/pkgs/development/compilers/ghc/9.8.2.nix
new file mode 100644
index 000000000000..0a7b109013bf
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/ghc/9.8.2.nix
@@ -0,0 +1,4 @@
+import ./common-hadrian.nix rec {
+  version = "9.8.2";
+  sha256 = "4vt6fddGEjfSLoNlqD7dnhp30uFdBF85RTloRah3gck=";
+}
diff --git a/nixpkgs/pkgs/development/compilers/ghc/common-hadrian.nix b/nixpkgs/pkgs/development/compilers/ghc/common-hadrian.nix
index f4d2a279a678..465db3a25296 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/common-hadrian.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/common-hadrian.nix
@@ -528,6 +528,10 @@ stdenv.mkDerivation ({
     ] ++ lib.teams.haskell.members;
     timeout = 24 * 3600;
     inherit (ghc.meta) license platforms;
+    # https://github.com/NixOS/nixpkgs/issues/208959
+    broken =
+      (lib.versionAtLeast version "9.6" && lib.versionOlder version "9.8")
+      && stdenv.targetPlatform.isStatic;
   };
 
   dontStrip = targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm;
diff --git a/nixpkgs/pkgs/development/compilers/ghdl/default.nix b/nixpkgs/pkgs/development/compilers/ghdl/default.nix
index e00294cf1845..be6c3f7e98ef 100644
--- a/nixpkgs/pkgs/development/compilers/ghdl/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ghdl/default.nix
@@ -13,13 +13,13 @@ assert backend == "mcode" || backend == "llvm";
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ghdl-${backend}";
-  version = "3.0.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner  = "ghdl";
     repo   = "ghdl";
     rev    = "v${finalAttrs.version}";
-    hash   = "sha256-94RNtHbOpbC2q/Z+PsQplrLxXmpS3LXOCXyTBB+n9c4=";
+    hash   = "sha256-KQwesrj2g8cDCyiEb5j4bkM5O3fGPuXzGUOEEGw6zRI=";
   };
 
   LIBRARY_PATH = "${stdenv.cc.libc}/lib";
diff --git a/nixpkgs/pkgs/development/compilers/gleam/default.nix b/nixpkgs/pkgs/development/compilers/gleam/default.nix
index d21c4d48f33f..5dc3976025a8 100644
--- a/nixpkgs/pkgs/development/compilers/gleam/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gleam/default.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A statically typed language for the Erlang VM";
+    mainProgram = "gleam";
     homepage = "https://gleam.run/";
     license = licenses.asl20;
     maintainers = teams.beam.members;
diff --git a/nixpkgs/pkgs/development/compilers/glslang/default.nix b/nixpkgs/pkgs/development/compilers/glslang/default.nix
index 5387eb15b713..1f84487239d2 100644
--- a/nixpkgs/pkgs/development/compilers/glslang/default.nix
+++ b/nixpkgs/pkgs/development/compilers/glslang/default.nix
@@ -9,13 +9,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "glslang";
-  version = "14.0.0";
+  version = "14.1.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "glslang";
     rev = version;
-    hash = "sha256-7kIIU45pe+IF7lGltpIKSvQBmcXR+TWFvmx7ztMNrpc=";
+    hash = "sha256-trm5bR3/2w+oQppHQBB+b6l0N0sLjTk5+rRGDfnGb+8=";
   };
 
   # These get set at all-packages, keep onto them for child drvs
diff --git a/nixpkgs/pkgs/development/compilers/gmqcc/default.nix b/nixpkgs/pkgs/development/compilers/gmqcc/default.nix
index f3b25e2dbd4a..a030133fba52 100644
--- a/nixpkgs/pkgs/development/compilers/gmqcc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gmqcc/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://graphitemaster.github.io/gmqcc/";
     description = "A modern QuakeC compiler";
+    mainProgram = "gmqcc";
     longDescription = ''
       For an enduring period of time the options for a decent compiler for
       the Quake C programming language were confined to a specific compiler
diff --git a/nixpkgs/pkgs/development/compilers/go/1.20.nix b/nixpkgs/pkgs/development/compilers/go/1.20.nix
deleted file mode 100644
index 5b3cbdd4cc81..000000000000
--- a/nixpkgs/pkgs/development/compilers/go/1.20.nix
+++ /dev/null
@@ -1,189 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, tzdata
-, substituteAll
-, iana-etc
-, Security
-, Foundation
-, xcbuild
-, mailcap
-, buildPackages
-, pkgsBuildTarget
-, threadsCross
-, testers
-, skopeo
-, buildGo120Module
-}:
-
-let
-  useGccGoBootstrap = stdenv.buildPlatform.isMusl || stdenv.buildPlatform.isRiscV;
-  goBootstrap = if useGccGoBootstrap then buildPackages.gccgo12 else buildPackages.callPackage ./bootstrap117.nix { };
-
-  skopeoTest = skopeo.override { buildGoModule = buildGo120Module; };
-
-  goarch = platform: {
-    "aarch64" = "arm64";
-    "arm" = "arm";
-    "armv5tel" = "arm";
-    "armv6l" = "arm";
-    "armv7l" = "arm";
-    "i686" = "386";
-    "mips" = "mips";
-    "mips64el" = "mips64le";
-    "mipsel" = "mipsle";
-    "powerpc64le" = "ppc64le";
-    "riscv64" = "riscv64";
-    "s390x" = "s390x";
-    "x86_64" = "amd64";
-  }.${platform.parsed.cpu.name} or (throw "Unsupported system: ${platform.parsed.cpu.name}");
-
-  # We need a target compiler which is still runnable at build time,
-  # to handle the cross-building case where build != host == target
-  targetCC = pkgsBuildTarget.targetPackages.stdenv.cc;
-
-  isCross = stdenv.buildPlatform != stdenv.targetPlatform;
-in
-stdenv.mkDerivation (finalAttrs: {
-  pname = "go";
-  version = "1.20.14";
-
-  src = fetchurl {
-    url = "https://go.dev/dl/go${finalAttrs.version}.src.tar.gz";
-    hash = "sha256-Gu8yGg4+OLfpHS1+tkBAZmyr3Md9OD3jyVItDWm2f04=";
-  };
-
-  strictDeps = true;
-  buildInputs = [ ]
-    ++ lib.optionals stdenv.isLinux [ stdenv.cc.libc.out ]
-    ++ lib.optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
-
-  depsTargetTargetPropagated = lib.optionals stdenv.targetPlatform.isDarwin [ Foundation Security xcbuild ];
-
-  depsBuildTarget = lib.optional isCross targetCC;
-
-  depsTargetTarget = lib.optional stdenv.targetPlatform.isWindows threadsCross.package;
-
-  postPatch = ''
-    patchShebangs .
-  '';
-
-  patches = [
-    (substituteAll {
-      src = ./iana-etc-1.17.patch;
-      iana = iana-etc;
-    })
-    # Patch the mimetype database location which is missing on NixOS.
-    # but also allow static binaries built with NixOS to run outside nix
-    (substituteAll {
-      src = ./mailcap-1.17.patch;
-      inherit mailcap;
-    })
-    # prepend the nix path to the zoneinfo files but also leave the original value for static binaries
-    # that run outside a nix server
-    (substituteAll {
-      src = ./tzdata-1.19.patch;
-      inherit tzdata;
-    })
-    ./remove-tools-1.11.patch
-    ./go_no_vendor_checks-1.16.patch
-  ];
-
-  GOOS = stdenv.targetPlatform.parsed.kernel.name;
-  GOARCH = goarch stdenv.targetPlatform;
-  # GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
-  # Go will nevertheless build a for host system that we will copy over in
-  # the install phase.
-  GOHOSTOS = stdenv.buildPlatform.parsed.kernel.name;
-  GOHOSTARCH = goarch stdenv.buildPlatform;
-
-  # {CC,CXX}_FOR_TARGET must be only set for cross compilation case as go expect those
-  # to be different from CC/CXX
-  CC_FOR_TARGET =
-    if isCross then
-      "${targetCC}/bin/${targetCC.targetPrefix}cc"
-    else
-      null;
-  CXX_FOR_TARGET =
-    if isCross then
-      "${targetCC}/bin/${targetCC.targetPrefix}c++"
-    else
-      null;
-
-  GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]);
-  GO386 = "softfloat"; # from Arch: don't assume sse2 on i686
-  CGO_ENABLED = 1;
-
-  GOROOT_BOOTSTRAP = if useGccGoBootstrap then goBootstrap else "${goBootstrap}/share/go";
-
-  buildPhase = ''
-    runHook preBuild
-    export GOCACHE=$TMPDIR/go-cache
-    # this is compiled into the binary
-    export GOROOT_FINAL=$out/share/go
-
-    export PATH=$(pwd)/bin:$PATH
-
-    ${lib.optionalString isCross ''
-    # Independent from host/target, CC should produce code for the building system.
-    # We only set it when cross-compiling.
-    export CC=${buildPackages.stdenv.cc}/bin/cc
-    ''}
-    ulimit -a
-
-    pushd src
-    ./make.bash
-    popd
-    runHook postBuild
-  '';
-
-  preInstall = ''
-    # Contains the wrong perl shebang when cross compiling,
-    # since it is not used for anything we can deleted as well.
-    rm src/regexp/syntax/make_perl_groups.pl
-  '' + (if (stdenv.buildPlatform.system != stdenv.hostPlatform.system) then ''
-    mv bin/*_*/* bin
-    rmdir bin/*_*
-    ${lib.optionalString (!(finalAttrs.GOHOSTARCH == finalAttrs.GOARCH && finalAttrs.GOOS == finalAttrs.GOHOSTOS)) ''
-      rm -rf pkg/${finalAttrs.GOHOSTOS}_${finalAttrs.GOHOSTARCH} pkg/tool/${finalAttrs.GOHOSTOS}_${finalAttrs.GOHOSTARCH}
-    ''}
-  '' else lib.optionalString (stdenv.hostPlatform.system != stdenv.targetPlatform.system) ''
-    rm -rf bin/*_*
-    ${lib.optionalString (!(finalAttrs.GOHOSTARCH == finalAttrs.GOARCH && finalAttrs.GOOS == finalAttrs.GOHOSTOS)) ''
-      rm -rf pkg/${finalAttrs.GOOS}_${finalAttrs.GOARCH} pkg/tool/${finalAttrs.GOOS}_${finalAttrs.GOARCH}
-    ''}
-  '');
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $GOROOT_FINAL
-    cp -a bin pkg src lib misc api doc $GOROOT_FINAL
-    mkdir -p $out/bin
-    ln -s $GOROOT_FINAL/bin/* $out/bin
-    runHook postInstall
-  '';
-
-  disallowedReferences = [ goBootstrap ];
-
-  passthru = {
-    inherit goBootstrap skopeoTest;
-    tests = {
-      skopeo = testers.testVersion { package = skopeoTest; };
-      version = testers.testVersion {
-        package = finalAttrs.finalPackage;
-        command = "go version";
-        version = "go${finalAttrs.version}";
-      };
-    };
-  };
-
-  meta = with lib; {
-    changelog = "https://go.dev/doc/devel/release#go${lib.versions.majorMinor finalAttrs.version}";
-    description = "The Go Programming language";
-    homepage = "https://go.dev/";
-    license = licenses.bsd3;
-    maintainers = teams.golang.members;
-    platforms = platforms.darwin ++ platforms.linux;
-    mainProgram = "go";
-  };
-})
diff --git a/nixpkgs/pkgs/development/compilers/go/1.21.nix b/nixpkgs/pkgs/development/compilers/go/1.21.nix
index 1debcd433b9b..8250cf9515b9 100644
--- a/nixpkgs/pkgs/development/compilers/go/1.21.nix
+++ b/nixpkgs/pkgs/development/compilers/go/1.21.nix
@@ -46,11 +46,11 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "go";
-  version = "1.21.7";
+  version = "1.21.8";
 
   src = fetchurl {
     url = "https://go.dev/dl/go${finalAttrs.version}.src.tar.gz";
-    hash = "sha256-ABl6sg8zgTgyv/Yv2TzKHEKgjMaJoypmcspJWRlZv/Y=";
+    hash = "sha256-3IBs91qH4UFLW0w9y53T6cyY9M/M7EK3r2F9WmWKPEM=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/development/compilers/graalvm/community-edition/buildGraalvmProduct.nix b/nixpkgs/pkgs/development/compilers/graalvm/community-edition/buildGraalvmProduct.nix
index 579e40580802..907441ff68c4 100644
--- a/nixpkgs/pkgs/development/compilers/graalvm/community-edition/buildGraalvmProduct.nix
+++ b/nixpkgs/pkgs/development/compilers/graalvm/community-edition/buildGraalvmProduct.nix
@@ -72,5 +72,6 @@ stdenv.mkDerivation ({
   meta = ({
     inherit (graalvm-ce.meta) homepage license sourceProvenance maintainers platforms;
     description = "High-Performance Polyglot VM (Product: ${product})";
+    mainProgram = "js";
   } // (args.meta or { }));
 } // extraArgs)
diff --git a/nixpkgs/pkgs/development/compilers/graalvm/community-edition/graalpy/hashes.nix b/nixpkgs/pkgs/development/compilers/graalvm/community-edition/graalpy/hashes.nix
index 84bb1660f7b5..1d76cfdbdd80 100644
--- a/nixpkgs/pkgs/development/compilers/graalvm/community-edition/graalpy/hashes.nix
+++ b/nixpkgs/pkgs/development/compilers/graalvm/community-edition/graalpy/hashes.nix
@@ -1,22 +1,22 @@
 # Generated by update.sh script
 {
-  "version" = "23.1.2";
+  "version" = "24.0.0";
   "hashes" = {
     "aarch64-linux" = {
-      sha256 = "0ypzhi22q2d1dfl3qf3yfsaqdsrj8sksc2spa79rdqdr690li4y9";
-      url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.2/graalpy-community-23.1.2-linux-aarch64.tar.gz";
+      sha256 = "1hz56nvl7av3xvwm7bxrzyri289h6hbawxsacn4zr7nm1snjn7i0";
+      url = "https://github.com/oracle/graalpython/releases/download/graal-24.0.0/graalpy-community-24.0.0-linux-aarch64.tar.gz";
     };
     "x86_64-linux" = {
-      sha256 = "1n99hzf1sidacv4qr5j2b3dpwrc6qb71alwfkdxjqx6xv7g7nmr7";
-      url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.2/graalpy-community-23.1.2-linux-amd64.tar.gz";
+      sha256 = "1ngqwrx1bc22jm12gmwqmqjfhhccpim1pai6885vg5xqsvc94y57";
+      url = "https://github.com/oracle/graalpython/releases/download/graal-24.0.0/graalpy-community-24.0.0-linux-amd64.tar.gz";
     };
     "x86_64-darwin" = {
-      sha256 = "0g2xj5hiq8idacdm0jlg5lvvv98f38p6fjb839gfacsb25pmhkg7";
-      url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.2/graalpy-community-23.1.2-macos-amd64.tar.gz";
+      sha256 = "07bh2fgk3l7vpws91ah48dsbrvvlq8wzfq88wq6ywilbikmnp0bw";
+      url = "https://github.com/oracle/graalpython/releases/download/graal-24.0.0/graalpy-community-24.0.0-macos-amd64.tar.gz";
     };
     "aarch64-darwin" = {
-      sha256 = "0qinxqkkm9bfnzr43p3yhs3alfnl4pppca6yahsk5bp8ngyzasfj";
-      url = "https://github.com/oracle/graalpython/releases/download/graal-23.1.2/graalpy-community-23.1.2-macos-aarch64.tar.gz";
+      sha256 = "00kljb24835l51jrnzdfblbhf2psdfw3wg00rllcdhpmiji40mbz";
+      url = "https://github.com/oracle/graalpython/releases/download/graal-24.0.0/graalpy-community-24.0.0-macos-aarch64.tar.gz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/hashes.nix b/nixpkgs/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/hashes.nix
index 45028f3d544b..1ce3b864a6bf 100644
--- a/nixpkgs/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/hashes.nix
+++ b/nixpkgs/pkgs/development/compilers/graalvm/community-edition/graalvm-ce/hashes.nix
@@ -1,22 +1,22 @@
 # Generated by update.sh script
 {
-  "version" = "21.0.2";
+  "version" = "22.0.0";
   "hashes" = {
     "aarch64-linux" = {
-      sha256 = "0yndazvc4kyr9widfn8ql5vd57m4m5inqz2wcpsarw38rs8ycjx3";
-      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.2/graalvm-community-jdk-21.0.2_linux-aarch64_bin.tar.gz";
+      sha256 = "01097qag9kjjwh3q11j76bn79x80dm8h5rdd6gzwrsqhn48hx6ns";
+      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-22.0.0/graalvm-community-jdk-22.0.0_linux-aarch64_bin.tar.gz";
     };
     "x86_64-linux" = {
-      sha256 = "0j5ffszcaqv3fq159hyb611jm8w1q4n1cywmbd7vi69smad0cj5h";
-      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.2/graalvm-community-jdk-21.0.2_linux-x64_bin.tar.gz";
+      sha256 = "0mq6vdsfgas8lhz1vdiz8qya37fy7qn0078q30zpa09ila3b9vp5";
+      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-22.0.0/graalvm-community-jdk-22.0.0_linux-x64_bin.tar.gz";
     };
     "x86_64-darwin" = {
-      sha256 = "1qfrn1068idnkzd6mdpw1x17sqrj59rz9avphj8225sxlhzsk2ks";
-      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.2/graalvm-community-jdk-21.0.2_macos-x64_bin.tar.gz";
+      sha256 = "1l8h9ai7s4km8wx1x43s3barnbq7b6hzfr1mbbmiksng1d2p26v9";
+      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-22.0.0/graalvm-community-jdk-22.0.0_macos-x64_bin.tar.gz";
     };
     "aarch64-darwin" = {
-      sha256 = "1dssa3nhix7bqygdkkfp0b9myjg5f91dlgm8mf6r7qf7mj9klpji";
-      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-21.0.2/graalvm-community-jdk-21.0.2_macos-aarch64_bin.tar.gz";
+      sha256 = "11ncf4wd5asr3jz21fs0j5w49zxrsdw3j42mpcczjy2z1j813cc7";
+      url = "https://github.com/graalvm/graalvm-ce-builds/releases/download/jdk-22.0.0/graalvm-community-jdk-22.0.0_macos-aarch64_bin.tar.gz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/graalvm/community-edition/truffleruby/hashes.nix b/nixpkgs/pkgs/development/compilers/graalvm/community-edition/truffleruby/hashes.nix
index 331db1caf9b9..40e44e22954d 100644
--- a/nixpkgs/pkgs/development/compilers/graalvm/community-edition/truffleruby/hashes.nix
+++ b/nixpkgs/pkgs/development/compilers/graalvm/community-edition/truffleruby/hashes.nix
@@ -1,22 +1,22 @@
 # Generated by update.sh script
 {
-  "version" = "23.1.2";
+  "version" = "24.0.0";
   "hashes" = {
     "aarch64-linux" = {
-      sha256 = "0bmrpp88zny0hbq4hqhs4xajqr96qxj6p5nj12m7kcr8hzh2vkf3";
-      url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.2/truffleruby-community-23.1.2-linux-aarch64.tar.gz";
+      sha256 = "0nq2wnc7kb3x37m68b2ylay6c341fzv4453k150a47fnj0p4d85p";
+      url = "https://github.com/oracle/truffleruby/releases/download/graal-24.0.0/truffleruby-community-24.0.0-linux-aarch64.tar.gz";
     };
     "x86_64-linux" = {
-      sha256 = "0hrab1jrs59swpx33zg111wa4nv2215ygyckv47x6mmjibf30c86";
-      url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.2/truffleruby-community-23.1.2-linux-amd64.tar.gz";
+      sha256 = "1h8zqf9clxg3azma86gdm6yl8mif2sgmyhnvqdilap28vmj4mpns";
+      url = "https://github.com/oracle/truffleruby/releases/download/graal-24.0.0/truffleruby-community-24.0.0-linux-amd64.tar.gz";
     };
     "x86_64-darwin" = {
-      sha256 = "1y68wz6rv2vksbnhmf57zlk8smgv9954np07d8ywdls99a92217z";
-      url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.2/truffleruby-community-23.1.2-macos-amd64.tar.gz";
+      sha256 = "03c4bxdzdz5m7n1kkmzsb8x0m1h4ms6ah29p9m4wrz8pjsb8682l";
+      url = "https://github.com/oracle/truffleruby/releases/download/graal-24.0.0/truffleruby-community-24.0.0-macos-amd64.tar.gz";
     };
     "aarch64-darwin" = {
-      sha256 = "0za4ff3wlj2fgl2z3vzp2p4jf9x0fkvd98qwk1dm7lmffghfb14n";
-      url = "https://github.com/oracle/truffleruby/releases/download/graal-23.1.2/truffleruby-community-23.1.2-macos-aarch64.tar.gz";
+      sha256 = "0ph6ki66w4kqwnznbpgfd8k85xx6cgqslzy07v4sywhp9k246qld";
+      url = "https://github.com/oracle/truffleruby/releases/download/graal-24.0.0/truffleruby-community-24.0.0-macos-aarch64.tar.gz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/hvm/default.nix b/nixpkgs/pkgs/development/compilers/hvm/default.nix
index 03dcdcae6724..8342f0ee05b1 100644
--- a/nixpkgs/pkgs/development/compilers/hvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/hvm/default.nix
@@ -28,6 +28,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A pure functional compile target that is lazy, non-garbage-collected, and parallel";
+    mainProgram = "hvm";
     homepage = "https://github.com/higherorderco/hvm";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/compilers/idris2/build-idris.nix b/nixpkgs/pkgs/development/compilers/idris2/build-idris.nix
index 3ad0956e3a08..e66306c4344b 100644
--- a/nixpkgs/pkgs/development/compilers/idris2/build-idris.nix
+++ b/nixpkgs/pkgs/development/compilers/idris2/build-idris.nix
@@ -18,11 +18,13 @@
 , ... }@attrs:
 
 let
+  propagate = libs: lib.unique (lib.concatMap (nextLib: [nextLib] ++ nextLib.propagatedIdrisLibraries) libs);
   ipkgFileName = ipkgName + ".ipkg";
   idrName = "idris2-${idris2.version}";
   libSuffix = "lib/${idrName}";
+  propagatedIdrisLibraries = propagate idrisLibraries;
   libDirs =
-    (lib.makeSearchPath libSuffix idrisLibraries) +
+    (lib.makeSearchPath libSuffix propagatedIdrisLibraries) +
     ":${idris2}/${idrName}";
   supportDir = "${idris2}/${idrName}/lib";
   drvAttrs = builtins.removeAttrs attrs [
@@ -35,7 +37,7 @@ let
     inherit version;
     src = src;
     nativeBuildInputs = [ idris2 makeWrapper ] ++ attrs.nativeBuildInputs or [];
-    buildInputs = idrisLibraries ++ attrs.buildInputs or [];
+    buildInputs = propagatedIdrisLibraries ++ attrs.buildInputs or [];
 
     IDRIS2_PACKAGE_PATH = libDirs;
 
@@ -44,6 +46,10 @@ let
       idris2 --build ${ipkgFileName}
       runHook postBuild
     '';
+
+    passthru = {
+      inherit propagatedIdrisLibraries;
+    };
   };
 
 in {
diff --git a/nixpkgs/pkgs/development/compilers/idris2/idris2-lsp.nix b/nixpkgs/pkgs/development/compilers/idris2/idris2-lsp.nix
index d73f2d70d6d0..095b973cc0cb 100644
--- a/nixpkgs/pkgs/development/compilers/idris2/idris2-lsp.nix
+++ b/nixpkgs/pkgs/development/compilers/idris2/idris2-lsp.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, idris2Packages, makeWrapper }:
+{ lib, fetchFromGitHub, idris2Packages, makeWrapper }:
 
 let
   globalLibraries = let
@@ -40,5 +40,13 @@ let
       wrapProgram $out/bin/idris2-lsp \
         --suffix IDRIS2_PACKAGE_PATH ':' "${globalLibrariesPath}"
     '';
+
+    meta = with lib; {
+      description = "Language Server for Idris2";
+      mainProgram = "idris2-lsp";
+      homepage = "https://github.com/idris-community/idris2-lsp";
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ mattpolzin ];
+    };
   };
 in lspPkg.executable
diff --git a/nixpkgs/pkgs/development/compilers/idris2/idris2.nix b/nixpkgs/pkgs/development/compilers/idris2/idris2.nix
index 88c4d05703cf..421fb93cf03b 100644
--- a/nixpkgs/pkgs/development/compilers/idris2/idris2.nix
+++ b/nixpkgs/pkgs/development/compilers/idris2/idris2.nix
@@ -89,6 +89,7 @@ in stdenv.mkDerivation rec {
 
   meta = {
     description = "A purely functional programming language with first class types";
+    mainProgram = "idris2";
     homepage = "https://github.com/idris-lang/Idris2";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ fabianhjr wchresta mattpolzin ];
diff --git a/nixpkgs/pkgs/development/compilers/inform7/default.nix b/nixpkgs/pkgs/development/compilers/inform7/default.nix
index 24bc14c0b3a9..0fba6d7c4a49 100644
--- a/nixpkgs/pkgs/development/compilers/inform7/default.nix
+++ b/nixpkgs/pkgs/development/compilers/inform7/default.nix
@@ -23,6 +23,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A design system for interactive fiction";
+    mainProgram = "i7";
     homepage = "http://inform7.com/";
     license = licenses.artistic2;
     maintainers = with maintainers; [ mbbx6spp ];
diff --git a/nixpkgs/pkgs/development/compilers/inklecate/default.nix b/nixpkgs/pkgs/development/compilers/inklecate/default.nix
index ac32e2954937..fa701d8fd269 100644
--- a/nixpkgs/pkgs/development/compilers/inklecate/default.nix
+++ b/nixpkgs/pkgs/development/compilers/inklecate/default.nix
@@ -29,6 +29,7 @@ buildDotnetModule rec {
 
   meta = with lib; {
     description = "Compiler for ink, inkle's scripting language";
+    mainProgram = "inklecate";
     longDescription = ''
       Inklecate is a command-line compiler for ink, inkle's open source
       scripting language for writing interactive narrative
diff --git a/nixpkgs/pkgs/development/compilers/ispc/default.nix b/nixpkgs/pkgs/development/compilers/ispc/default.nix
index 0c710b0736a3..b7f2ad1228b7 100644
--- a/nixpkgs/pkgs/development/compilers/ispc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ispc/default.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage    = "https://ispc.github.io/";
     description = "Intel 'Single Program, Multiple Data' Compiler, a vectorised language";
+    mainProgram = "ispc";
     license     = licenses.bsd3;
     platforms   = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; # TODO: buildable on more platforms?
     maintainers = with maintainers; [ aristid thoughtpolice athas alexfmpe ];
diff --git a/nixpkgs/pkgs/development/compilers/jasmin/default.nix b/nixpkgs/pkgs/development/compilers/jasmin/default.nix
index db58f48b97bb..685e6aa9537e 100644
--- a/nixpkgs/pkgs/development/compilers/jasmin/default.nix
+++ b/nixpkgs/pkgs/development/compilers/jasmin/default.nix
@@ -5,7 +5,7 @@
 , ant
 , jdk8
 , makeWrapper
-, canonicalize-jars-hook
+, stripJavaArchivesHook
 , callPackage
 }:
 
@@ -27,7 +27,7 @@ in stdenv.mkDerivation (finalAttrs: {
     ant
     jdk
     makeWrapper
-    canonicalize-jars-hook
+    stripJavaArchivesHook
   ];
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/compilers/julia/generic.nix b/nixpkgs/pkgs/development/compilers/julia/generic.nix
index 4ab317618a41..7f690d44e163 100644
--- a/nixpkgs/pkgs/development/compilers/julia/generic.nix
+++ b/nixpkgs/pkgs/development/compilers/julia/generic.nix
@@ -83,6 +83,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "High-level performance-oriented dynamical language for technical computing";
+    mainProgram = "julia";
     homepage = "https://julialang.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ nickcao joshniemela thomasjm ];
diff --git a/nixpkgs/pkgs/development/compilers/juniper/default.nix b/nixpkgs/pkgs/development/compilers/juniper/default.nix
index ff6751104ac0..edf3e4b6374c 100644
--- a/nixpkgs/pkgs/development/compilers/juniper/default.nix
+++ b/nixpkgs/pkgs/development/compilers/juniper/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Functional reactive programming language for programming Arduino";
+    mainProgram = "juniper";
     longDescription = ''
       Juniper targets Arduino and supports many features typical of functional programming languages, including algebraic data types, tuples, records,
       pattern matching, immutable data structures, parametric polymorphic functions, and anonymous functions (lambdas).
diff --git a/nixpkgs/pkgs/development/compilers/kind2/default.nix b/nixpkgs/pkgs/development/compilers/kind2/default.nix
index 182e4cb1a0e9..95eedb80670f 100644
--- a/nixpkgs/pkgs/development/compilers/kind2/default.nix
+++ b/nixpkgs/pkgs/development/compilers/kind2/default.nix
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A functional programming language and proof assistant";
+    mainProgram = "kind2";
     homepage = "https://github.com/higherorderco/kind";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/compilers/koka/default.nix b/nixpkgs/pkgs/development/compilers/koka/default.nix
index 4057ec157eba..4dcc772ab55f 100644
--- a/nixpkgs/pkgs/development/compilers/koka/default.nix
+++ b/nixpkgs/pkgs/development/compilers/koka/default.nix
@@ -2,6 +2,7 @@
 , pkgsHostTarget
 , cmake
 , makeWrapper
+, fetchpatch
 , mkDerivation
 , fetchFromGitHub
 , alex
@@ -19,7 +20,7 @@
 , FloatingHex
 , isocline
 , lens
-, lsp
+, lsp_2_4_0_0
 , mtl
 , network
 , network-simple
@@ -64,6 +65,14 @@ mkDerivation rec {
   isLibrary = false;
   isExecutable = true;
   libraryToolDepends = [ hpack ];
+  patches = [
+    (fetchpatch {
+      name = "koka-stackage-22.patch";
+      url = "https://github.com/koka-lang/koka/commit/95f9b360544996e06d4bb33321a83a6b9605d092.patch";
+      sha256 = "1a1sv1r393wkhsnj56awsi8mqxakqdy86p7dg9i9xfv13q2g4h6x";
+      includes = [ "src/**" ];
+    })
+  ];
   executableHaskellDepends = [
     aeson
     array
@@ -77,7 +86,7 @@ mkDerivation rec {
     FloatingHex
     isocline
     lens
-    lsp
+    lsp_2_4_0_0
     mtl
     network
     network-simple
diff --git a/nixpkgs/pkgs/development/compilers/kotlin/default.nix b/nixpkgs/pkgs/development/compilers/kotlin/default.nix
index fee4889e1add..e2fc481d3bc3 100644
--- a/nixpkgs/pkgs/development/compilers/kotlin/default.nix
+++ b/nixpkgs/pkgs/development/compilers/kotlin/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kotlin";
-  version = "1.9.22";
+  version = "1.9.23";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
-    sha256 = "1rn3rabwyqqhs6xgyfwl326hrzpfpc3qqd2nzwbchck5a09r5cw8";
+    sha256 = "125yb2yzah7laf38m78pysvcd5a16b129a06rckrpylsmcx7s4wk";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/nixpkgs/pkgs/development/compilers/kotlin/native.nix b/nixpkgs/pkgs/development/compilers/kotlin/native.nix
index bc2018665ca7..a38daa96cf17 100644
--- a/nixpkgs/pkgs/development/compilers/kotlin/native.nix
+++ b/nixpkgs/pkgs/development/compilers/kotlin/native.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "kotlin-native";
-  version = "1.9.22";
+  version = "1.9.23";
 
   src = let
     getArch = {
@@ -20,9 +20,9 @@ stdenv.mkDerivation rec {
       "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-native-${arch}-${version}.tar.gz";
 
     getHash = arch: {
-      "macos-aarch64" = "1pf81rplikbp194pjrm2la101iz8vz3jv55109nipd26xghc15ca";
-      "macos-x86_64" = "1r7dmk8cc7f3iwaxamlnlcjl4mbvx443nwvsp8141a21ibrvrmx9";
-      "linux-x86_64" = "1m77qld44gbarjxm99gsdscncx4v0cf6ca3h9bdh2m7d3i4adc62";
+      "macos-aarch64" = "1v1ld4nxa77vjxiz4jw5h29s8i4ghfbmq0d01r15i75pr46md8r7";
+      "macos-x86_64" = "05ywdhagj3qzjaw5sd94sgjk89dysky7d7lfqpwvc8s35v77rv8f";
+      "linux-x86_64" = "1j2lpl1r7r30dgard6ia29n3qrsr98wb3qwpc80z4jh6k42qn6id";
     }.${arch};
   in
     fetchurl {
diff --git a/nixpkgs/pkgs/development/compilers/ldc/binary.nix b/nixpkgs/pkgs/development/compilers/ldc/binary.nix
index dd4d51c81e3a..ca7fb4f04de3 100644
--- a/nixpkgs/pkgs/development/compilers/ldc/binary.nix
+++ b/nixpkgs/pkgs/development/compilers/ldc/binary.nix
@@ -37,7 +37,7 @@ in stdenv.mkDerivation {
     homepage = "https://github.com/ldc-developers/ldc";
     # from https://github.com/ldc-developers/ldc/blob/master/LICENSE
     license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
-    maintainers = with maintainers; [ ThomasMader lionello ];
+    maintainers = with maintainers; [ lionello ];
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/ldc/generic.nix b/nixpkgs/pkgs/development/compilers/ldc/generic.nix
index 16598714410f..94a4ac8380a7 100644
--- a/nixpkgs/pkgs/development/compilers/ldc/generic.nix
+++ b/nixpkgs/pkgs/development/compilers/ldc/generic.nix
@@ -130,7 +130,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/ldc-developers/ldc";
     # from https://github.com/ldc-developers/ldc/blob/master/LICENSE
     license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
-    maintainers = with maintainers; [ ThomasMader lionello jtbx ];
+    maintainers = with maintainers; [ lionello jtbx ];
     platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/lesscpy/default.nix b/nixpkgs/pkgs/development/compilers/lesscpy/default.nix
index d85b36da8918..52372bb1edce 100644
--- a/nixpkgs/pkgs/development/compilers/lesscpy/default.nix
+++ b/nixpkgs/pkgs/development/compilers/lesscpy/default.nix
@@ -17,6 +17,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Python LESS Compiler";
+    mainProgram = "lesscpy";
     homepage    = "https://github.com/lesscpy/lesscpy";
     license     = licenses.mit;
     maintainers = with maintainers; [ s1341 ];
diff --git a/nixpkgs/pkgs/development/compilers/ligo/default.nix b/nixpkgs/pkgs/development/compilers/ligo/default.nix
index ccba9ca3a1b2..9443f7a8cc08 100644
--- a/nixpkgs/pkgs/development/compilers/ligo/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ligo/default.nix
@@ -15,30 +15,15 @@
 
 ocamlPackages.buildDunePackage rec {
   pname = "ligo";
-  version = "1.0.0";
+  version = "1.4.0";
   src = fetchFromGitLab {
     owner = "ligolang";
     repo = "ligo";
     rev = version;
-    sha256 = "sha256-tHIIA1JE7mzDIf2v9IEZt1pjVQEA89zjTsmqhzTn3Wc=";
+    sha256 = "sha256-N2RkeKJ+lEyNJwpmF5sORmOkDhNmTYRYAgvyR7Pc5EI=";
     fetchSubmodules = true;
   };
 
-  postPatch = ''
-    substituteInPlace "vendors/tezos-ligo/dune-project" \
-      --replace \
-        "(using ctypes 0.1)" \
-        "(using ctypes 0.3)" \
-      --replace \
-        "(lang dune 3.0)" \
-        "(lang dune 3.7)"
-
-    substituteInPlace "src/coq/dune" \
-      --replace \
-        "(name ligo_coq)" \
-        "(name ligo_coq)(mode vo)"
-  '';
-
   # The build picks this up for ligo --version
   LIGO_VERSION = version;
 
@@ -68,6 +53,7 @@ ocamlPackages.buildDunePackage rec {
     ocamlgraph
     bisect_ppx
     decompress
+    fileutils
     ppx_deriving
     ppx_deriving_yojson
     ppx_yojson_conv
@@ -141,6 +127,7 @@ ocamlPackages.buildDunePackage rec {
     homepage = "https://ligolang.org/";
     downloadPage = "https://ligolang.org/docs/intro/installation";
     description = "A friendly Smart Contract Language for Tezos";
+    mainProgram = "ligo";
     license = licenses.mit;
     platforms = ocamlPackages.ocaml.meta.platforms;
     broken = stdenv.isLinux && stdenv.isAarch64;
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix
deleted file mode 100644
index a31d0422f52b..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/clang/default.nix
+++ /dev/null
@@ -1,138 +0,0 @@
-{ lib, stdenv, llvm_meta, fetch, substituteAll, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3
-, buildLlvmTools
-, fixDarwinDylibNames
-, enableManpages ? false
-, enablePolly ? false
-}:
-
-let
-  self = stdenv.mkDerivation ({
-    pname = "clang";
-    inherit version;
-
-    src = fetch "clang" "12sm91qx2m79cvj75a9aazf2x8xybjbd593dv6v7rxficpq8i0ha";
-    inherit clang-tools-extra_src;
-
-    unpackPhase = ''
-      unpackFile $src
-      mv clang-* clang
-      sourceRoot=$PWD/clang
-      unpackFile ${clang-tools-extra_src}
-      mv clang-tools-extra-* $sourceRoot/tools/extra
-    '';
-
-    nativeBuildInputs = [ cmake python3 ]
-      ++ lib.optional enableManpages python3.pkgs.sphinx
-      ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
-
-    buildInputs = [ libxml2 libllvm ];
-
-    cmakeFlags = [
-      "-DCLANGD_BUILD_XPC=OFF"
-      "-DLLVM_ENABLE_RTTI=ON"
-    ] ++ lib.optionals enableManpages [
-      "-DCLANG_INCLUDE_DOCS=ON"
-      "-DLLVM_ENABLE_SPHINX=ON"
-      "-DSPHINX_OUTPUT_MAN=ON"
-      "-DSPHINX_OUTPUT_HTML=OFF"
-      "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
-    ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-      "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
-      "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen"
-    ] ++ lib.optionals enablePolly [
-      "-DWITH_POLLY=ON"
-      "-DLINK_POLLY_INTO_TOOLS=ON"
-    ];
-
-
-    patches = [
-      ./purity.patch
-      # https://reviews.llvm.org/D51899
-      ./gnu-install-dirs.patch
-      (substituteAll {
-        src = ../../common/clang/clang-11-15-LLVMgold-path.patch;
-        libllvmLibdir = "${libllvm.lib}/lib";
-      })
-    ];
-
-    postPatch = ''
-      sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
-             -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
-             lib/Driver/ToolChains/*.cpp
-    '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-      sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp
-    '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
-      substituteInPlace tools/extra/clangd/CMakeLists.txt \
-        --replace "NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB" FALSE
-    '';
-
-    outputs = [ "out" "lib" "dev" "python" ];
-
-    postInstall = ''
-      ln -sv $out/bin/clang $out/bin/cpp
-
-      # Move libclang to 'lib' output
-      moveToOutput "lib/libclang.*" "$lib"
-      moveToOutput "lib/libclang-cpp.*" "$lib"
-      substituteInPlace $out/lib/cmake/clang/ClangTargets-release.cmake \
-          --replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang." \
-          --replace "\''${_IMPORT_PREFIX}/lib/libclang-cpp." "$lib/lib/libclang-cpp."
-
-      mkdir -p $python/bin $python/share/{clang,scan-view}
-      mv $out/bin/{git-clang-format,scan-view} $python/bin
-      if [ -e $out/bin/set-xcode-analyzer ]; then
-        mv $out/bin/set-xcode-analyzer $python/bin
-      fi
-      mv $out/share/clang/*.py $python/share/clang
-      mv $out/share/scan-view/*.py $python/share/scan-view
-      rm $out/bin/c-index-test
-      patchShebangs $python/bin
-
-      mkdir -p $dev/bin
-      cp bin/clang-tblgen $dev/bin
-    '';
-
-    passthru = {
-      inherit libllvm;
-      isClang = true;
-      hardeningUnsupportedFlags = [ "fortify3" "zerocallusedregs" ];
-    };
-
-    meta = llvm_meta // {
-      homepage = "https://clang.llvm.org/";
-      description = "A C language family frontend for LLVM";
-      longDescription = ''
-        The Clang project provides a language front-end and tooling
-        infrastructure for languages in the C language family (C, C++, Objective
-        C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project.
-        It aims to deliver amazingly fast compiles, extremely useful error and
-        warning messages and to provide a platform for building great source
-        level tools. The Clang Static Analyzer and clang-tidy are tools that
-        automatically find bugs in your code, and are great examples of the sort
-        of tools that can be built using the Clang frontend as a library to
-        parse C/C++ code.
-      '';
-      mainProgram = "clang";
-    };
-  } // lib.optionalAttrs enableManpages {
-    pname = "clang-manpages";
-
-    buildPhase = ''
-      make docs-clang-man
-    '';
-
-    installPhase = ''
-      mkdir -p $out/share/man/man1
-      # Manually install clang manpage
-      cp docs/man/*.1 $out/share/man/man1/
-    '';
-
-    outputs = [ "out" ];
-
-    doCheck = false;
-
-    meta = llvm_meta // {
-      description = "man page for Clang ${version}";
-    };
-  });
-in self
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/clang/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/clang/gnu-install-dirs.patch
deleted file mode 100644
index 98ea97e05808..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/clang/gnu-install-dirs.patch
+++ /dev/null
@@ -1,235 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index bb4b801f01c8..77a8b43b22c8 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -9,6 +9,8 @@ endif()
- if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
-   project(Clang)
- 
-+  include(GNUInstallDirs)
-+
-   set(CMAKE_CXX_STANDARD 14 CACHE STRING "C++ standard to conform to")
-   set(CMAKE_CXX_STANDARD_REQUIRED YES)
-   set(CMAKE_CXX_EXTENSIONS NO)
-@@ -447,7 +449,7 @@ include_directories(BEFORE
- 
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/clang include/clang-c
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     COMPONENT clang-headers
-     FILES_MATCHING
-     PATTERN "*.def"
-@@ -457,7 +459,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-     )
- 
-   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/clang
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     COMPONENT clang-headers
-     FILES_MATCHING
-     PATTERN "CMakeFiles" EXCLUDE
-@@ -477,7 +479,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
- 
-   add_custom_target(bash-autocomplete DEPENDS utils/bash-autocomplete.sh)
-   install(PROGRAMS utils/bash-autocomplete.sh
--          DESTINATION share/clang
-+          DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-           COMPONENT bash-autocomplete)
-   if(NOT LLVM_ENABLE_IDE)
-     add_llvm_install_targets(install-bash-autocomplete
-diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
-index 704278a0e93b..d25c8d325c71 100644
---- a/cmake/modules/AddClang.cmake
-+++ b/cmake/modules/AddClang.cmake
-@@ -123,9 +123,9 @@ macro(add_clang_library name)
-         install(TARGETS ${lib}
-           COMPONENT ${lib}
-           ${export_to_clangtargets}
--          LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--          ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--          RUNTIME DESTINATION bin)
-+          LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+          RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
-         if (NOT LLVM_ENABLE_IDE)
-           add_llvm_install_targets(install-${lib}
-@@ -170,7 +170,7 @@ macro(add_clang_tool name)
- 
-     install(TARGETS ${name}
-       ${export_to_clangtargets}
--      RUNTIME DESTINATION bin
-+      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-       COMPONENT ${name})
- 
-     if(NOT LLVM_ENABLE_IDE)
-@@ -185,7 +185,7 @@ endmacro()
- macro(add_clang_symlink name dest)
-   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
-   # Always generate install targets
--  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
-+  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
- endmacro()
- 
- function(clang_target_link_libraries target type)
-diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
-index 0692fe75a441..6f201e7207d0 100644
---- a/lib/Headers/CMakeLists.txt
-+++ b/lib/Headers/CMakeLists.txt
-@@ -208,7 +208,7 @@ set_target_properties(clang-resource-headers PROPERTIES
-   FOLDER "Misc"
-   RUNTIME_OUTPUT_DIRECTORY "${output_dir}")
- 
--set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
-+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
- 
- install(
-   FILES ${files} ${generated_files}
-diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt
-index ceef4b08637c..8efad5520ca4 100644
---- a/tools/c-index-test/CMakeLists.txt
-+++ b/tools/c-index-test/CMakeLists.txt
-@@ -54,7 +54,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-     set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH
-        "@executable_path/../../lib")
-   else()
--    set(INSTALL_DESTINATION bin)
-+    set(INSTALL_DESTINATION ${CMAKE_INSTALL_BINDIR})
-   endif()
- 
-   install(TARGETS c-index-test
-diff --git a/tools/clang-format/CMakeLists.txt b/tools/clang-format/CMakeLists.txt
-index 35ecdb11253c..d77d75de0094 100644
---- a/tools/clang-format/CMakeLists.txt
-+++ b/tools/clang-format/CMakeLists.txt
-@@ -21,20 +21,20 @@ if( LLVM_LIB_FUZZING_ENGINE OR LLVM_USE_SANITIZE_COVERAGE )
- endif()
- 
- install(PROGRAMS clang-format-bbedit.applescript
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS clang-format-diff.py
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS clang-format-sublime.py
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS clang-format.el
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS clang-format.py
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-format)
- install(PROGRAMS git-clang-format
--  DESTINATION bin
-+  DESTINATION ${CMAKE_INSTALL_BINDIR}
-   COMPONENT clang-format)
-diff --git a/tools/clang-rename/CMakeLists.txt b/tools/clang-rename/CMakeLists.txt
-index cda8e29ec5b1..0134d8ccd70b 100644
---- a/tools/clang-rename/CMakeLists.txt
-+++ b/tools/clang-rename/CMakeLists.txt
-@@ -19,8 +19,8 @@ clang_target_link_libraries(clang-rename
-   )
- 
- install(PROGRAMS clang-rename.py
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-rename)
- install(PROGRAMS clang-rename.el
--  DESTINATION share/clang
-+  DESTINATION ${CMAKE_INSTALL_DATADIR}/clang
-   COMPONENT clang-rename)
-diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
-index 5cd9ac5cddc1..a197676fedbd 100644
---- a/tools/libclang/CMakeLists.txt
-+++ b/tools/libclang/CMakeLists.txt
-@@ -165,7 +165,7 @@ endif()
- if(INTERNAL_INSTALL_PREFIX)
-   set(LIBCLANG_HEADERS_INSTALL_DESTINATION "${INTERNAL_INSTALL_PREFIX}/include")
- else()
--  set(LIBCLANG_HEADERS_INSTALL_DESTINATION include)
-+  set(LIBCLANG_HEADERS_INSTALL_DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
- endif()
- 
- install(DIRECTORY ../../include/clang-c
-@@ -196,7 +196,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
-           COMPONENT
-             libclang-python-bindings
-           DESTINATION
--            "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
-+            "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
- endforeach()
- if(NOT LLVM_ENABLE_IDE)
-   add_custom_target(libclang-python-bindings)
-diff --git a/tools/scan-build/CMakeLists.txt b/tools/scan-build/CMakeLists.txt
-index ec0702d76f18..d25d982f51da 100644
---- a/tools/scan-build/CMakeLists.txt
-+++ b/tools/scan-build/CMakeLists.txt
-@@ -47,7 +47,7 @@ if(CLANG_INSTALL_SCANBUILD)
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
-     install(PROGRAMS bin/${BinFile}
--            DESTINATION bin
-+            DESTINATION ${CMAKE_INSTALL_BINDIR}
-             COMPONENT scan-build)
-   endforeach()
- 
-@@ -61,7 +61,7 @@ if(CLANG_INSTALL_SCANBUILD)
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile})
-     install(PROGRAMS libexec/${LibexecFile}
--            DESTINATION libexec
-+            DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}
-             COMPONENT scan-build)
-   endforeach()
- 
-@@ -89,7 +89,7 @@ if(CLANG_INSTALL_SCANBUILD)
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile})
-     install(FILES share/scan-build/${ShareFile}
--            DESTINATION share/scan-build
-+            DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-build
-             COMPONENT scan-build)
-   endforeach()
- 
-diff --git a/tools/scan-view/CMakeLists.txt b/tools/scan-view/CMakeLists.txt
-index 22edb974bac7..9f140a9a4538 100644
---- a/tools/scan-view/CMakeLists.txt
-+++ b/tools/scan-view/CMakeLists.txt
-@@ -22,7 +22,7 @@ if(CLANG_INSTALL_SCANVIEW)
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile})
-     install(PROGRAMS bin/${BinFile}
--            DESTINATION bin
-+            DESTINATION ${CMAKE_INSTALL_BINDIR}
-             COMPONENT scan-view)
-   endforeach()
- 
-@@ -36,7 +36,7 @@ if(CLANG_INSTALL_SCANVIEW)
-                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile})
-     list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile})
-     install(FILES share/${ShareFile}
--            DESTINATION share/scan-view
-+            DESTINATION ${CMAKE_INSTALL_DATADIR}/scan-view
-             COMPONENT scan-view)
-   endforeach()
- 
-diff --git a/utils/hmaptool/CMakeLists.txt b/utils/hmaptool/CMakeLists.txt
-index 62f2de0cb15c..6aa66825b6ec 100644
---- a/utils/hmaptool/CMakeLists.txt
-+++ b/utils/hmaptool/CMakeLists.txt
-@@ -10,7 +10,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM
- 
- list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HMAPTOOL})
- install(PROGRAMS ${CLANG_HMAPTOOL}
--        DESTINATION bin
-+        DESTINATION ${CMAKE_INSTALL_BINDIR}
-         COMPONENT hmaptool)
- 
- add_custom_target(hmaptool ALL DEPENDS ${Depends})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/clang/purity.patch b/nixpkgs/pkgs/development/compilers/llvm/11/clang/purity.patch
deleted file mode 100644
index deb230a36c5b..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/clang/purity.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001
-From: Will Dietz <w@wdtz.org>
-Date: Thu, 18 May 2017 11:56:12 -0500
-Subject: [PATCH] "purity" patch for 5.0
-
----
- lib/Driver/ToolChains/Gnu.cpp | 7 -------
- 1 file changed, 7 deletions(-)
-
-diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
-index fe3c0191bb..c6a482bece 100644
---- a/lib/Driver/ToolChains/Gnu.cpp
-+++ b/lib/Driver/ToolChains/Gnu.cpp
-@@ -487,12 +487,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
-   if (!IsStatic) {
-     if (Args.hasArg(options::OPT_rdynamic))
-       CmdArgs.push_back("-export-dynamic");
--
--    if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE) {
--      CmdArgs.push_back("-dynamic-linker");
--      CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) +
--                                           ToolChain.getDynamicLinker(Args)));
--    }
-   }
- 
-   CmdArgs.push_back("-o");
--- 
-2.11.0
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/X86-support-extension.patch b/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/X86-support-extension.patch
deleted file mode 100644
index f6f9336ad5ad..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/X86-support-extension.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt
-index 3a66dd9c3fb..7efc85d9f9f 100644
---- a/lib/builtins/CMakeLists.txt
-+++ b/lib/builtins/CMakeLists.txt
-@@ -301,6 +301,10 @@ if (NOT MSVC)
-     i386/umoddi3.S
-   )
- 
-+  set(i486_SOURCES ${i386_SOURCES})
-+  set(i586_SOURCES ${i386_SOURCES})
-+  set(i686_SOURCES ${i386_SOURCES})
-+
-   if (WIN32)
-     set(i386_SOURCES
-       ${i386_SOURCES}
-@@ -608,6 +612,7 @@ else ()
-   endif()
- 
-   foreach (arch ${BUILTIN_SUPPORTED_ARCH})
-+      message("arch: ${arch}")
-     if (CAN_TARGET_${arch})
-       # For ARM archs, exclude any VFP builtins if VFP is not supported
-       if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/armv7l.patch b/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/armv7l.patch
deleted file mode 100644
index 120cfe6feb2a..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/armv7l.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -ur compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake
---- compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake	2020-03-24 00:01:02.000000000 +0900
-+++ compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake	2020-05-10 03:42:00.883450706 +0900
-@@ -24,7 +24,7 @@
- 
- 
- set(ARM64 aarch64)
--set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
-+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l)
- set(HEXAGON hexagon)
- set(X86 i386)
- set(X86_64 x86_64)
-diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt
---- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt	2020-03-24 00:01:02.000000000 +0900
-+++ compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt	2020-05-10 03:44:49.468579650 +0900
-@@ -474,6 +474,7 @@
- set(armv7_SOURCES ${arm_SOURCES})
- set(armv7s_SOURCES ${arm_SOURCES})
- set(armv7k_SOURCES ${arm_SOURCES})
-+set(armv7l_SOURCES ${arm_SOURCES})
- set(arm64_SOURCES ${aarch64_SOURCES})
- 
- # macho_embedded archs
-@@ -595,7 +596,7 @@
-   foreach (arch ${BUILTIN_SUPPORTED_ARCH})
-     if (CAN_TARGET_${arch})
-       # For ARM archs, exclude any VFP builtins if VFP is not supported
--      if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
-+      if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em)$")
-         string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}")
-         check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP)
-         if(NOT COMPILER_RT_HAS_${arch}_VFP)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/default.nix
deleted file mode 100644
index 7fddc6e924b9..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/default.nix
+++ /dev/null
@@ -1,140 +0,0 @@
-{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, xcbuild, libllvm, libcxxabi, libxcrypt
-, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD
-}:
-
-let
-
-  useLLVM = stdenv.hostPlatform.useLLVM or false;
-  isNewDarwinBootstrap = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64;
-  bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none";
-  haveLibc = stdenv.cc.libc != null;
-  inherit (stdenv.hostPlatform) isMusl;
-
-in
-
-stdenv.mkDerivation {
-  pname = "compiler-rt" + lib.optionalString (haveLibc) "-libc";
-  inherit version;
-  src = fetch "compiler-rt" "0x1j8ngf1zj63wlnns9vlibafq48qcm72p4jpaxkmkb4qw0grwfy";
-
-  nativeBuildInputs = [ cmake python3 libllvm.dev ]
-     ++ lib.optional stdenv.isDarwin xcbuild.xcrun;
-
-  env.NIX_CFLAGS_COMPILE = toString [
-    "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
-  ];
-
-  cmakeFlags = [
-    "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON"
-    "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}"
-    "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}"
-  ] ++ lib.optionals (haveLibc && stdenv.hostPlatform.isGnu) [
-    "-DSANITIZER_COMMON_CFLAGS=-I${libxcrypt}/include"
-  ] ++ lib.optionals (useLLVM || bareMetal || isMusl || isNewDarwinBootstrap) [
-    "-DCOMPILER_RT_BUILD_SANITIZERS=OFF"
-    "-DCOMPILER_RT_BUILD_XRAY=OFF"
-    "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF"
-  ] ++ lib.optionals (useLLVM || bareMetal) [
-    "-DCOMPILER_RT_BUILD_PROFILE=OFF"
-  ] ++ lib.optionals (!haveLibc || bareMetal) [
-    "-DCMAKE_C_COMPILER_WORKS=ON"
-    "-DCMAKE_CXX_COMPILER_WORKS=ON"
-    "-DCOMPILER_RT_BAREMETAL_BUILD=ON"
-    "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}"
-  ] ++ lib.optionals (useLLVM || isNewDarwinBootstrap) [
-    "-DCOMPILER_RT_BUILD_BUILTINS=ON"
-    #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program
-    "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY"
-  ] ++ lib.optionals (bareMetal) [
-    "-DCOMPILER_RT_OS_DIR=baremetal"
-  ] ++ lib.optionals (stdenv.hostPlatform.isDarwin) [
-    "-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON"
-    "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}"
-    "-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}"
-  ];
-
-  outputs = [ "out" "dev" ];
-
-  patches = [
-    ../../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
-    ./X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
-    ./gnu-install-dirs.patch
-    # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the
-    # extra `/`.
-    ./normalize-var.patch
-    ../../common/compiler-rt/libsanitizer-no-cyclades-11.patch
-    ../../common/compiler-rt/darwin-plistbuddy-workaround.patch
-    ./armv7l.patch
-    # Fix build on armv6l
-    ../../common/compiler-rt/armv6-mcr-dmb.patch
-    ../../common/compiler-rt/armv6-sync-ops-no-thumb.patch
-    ../../common/compiler-rt/armv6-no-ldrexd-strexd.patch
-  ];
-
-  preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin ''
-    cmakeFlagsArray+=("-DCMAKE_LIPO=$(command -v ${stdenv.cc.targetPrefix}lipo)")
-  '' + lib.optionalString (!haveLibc) ''
-    cmakeFlagsArray+=("-DCMAKE_C_FLAGS=-nodefaultlibs -ffreestanding")
-  '';
-
-  # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
-  # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
-  # can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd
-  # get no binary cache for the entire platform. If you really find yourself wanting the TSAN, make this controllable by
-  # a flag and turn the flag off during the stdenv build.
-  postPatch = lib.optionalString (!stdenv.isDarwin) ''
-    substituteInPlace cmake/builtin-config-ix.cmake \
-      --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)'
-    substituteInPlace cmake/config-ix.cmake \
-      --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)'
-  '' + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace cmake/config-ix.cmake \
-      --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)'
-  '' + lib.optionalString (useLLVM) ''
-    substituteInPlace lib/builtins/int_util.c \
-      --replace "#include <stdlib.h>" ""
-    substituteInPlace lib/builtins/clear_cache.c \
-      --replace "#include <assert.h>" ""
-    substituteInPlace lib/builtins/cpu_model.c \
-      --replace "#include <assert.h>" ""
-  '';
-
-  # Hack around weird upsream RPATH bug
-  postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) ''
-    ln -s "$out/lib"/*/* "$out/lib"
-  '' + lib.optionalString (useLLVM) ''
-    ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o
-    ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o
-    ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbeginS.o
-    ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtendS.o
-    ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o
-    ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o
-  ''
-  # See https://reviews.llvm.org/D37278 for why android exception
-  + lib.optionalString (stdenv.hostPlatform.isx86_32 && !stdenv.hostPlatform.isAndroid) ''
-    for f in $out/lib/*/*builtins-i?86*; do
-      ln -s "$f" $(echo "$f" | sed -e 's/builtins-i.86/builtins-i386/')
-    done
-  '' + lib.optionalString doFakeLibgcc ''
-    ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a
-  '';
-
-  meta = llvm_meta // {
-    homepage = "https://compiler-rt.llvm.org/";
-    description = "Compiler runtime libraries";
-    longDescription = ''
-      The compiler-rt project provides highly tuned implementations of the
-      low-level code generator support routines like "__fixunsdfdi" and other
-      calls generated when a target doesn't have a short sequence of native
-      instructions to implement a core IR operation. It also provides
-      implementations of run-time libraries for dynamic testing tools such as
-      AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer.
-    '';
-    # "All of the code in the compiler-rt project is dual licensed under the MIT
-    # license and the UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-    # compiler-rt requires a Clang stdenv on 32-bit RISC-V:
-    # https://reviews.llvm.org/D43106#1019077
-    broken = stdenv.hostPlatform.isRiscV32 && !stdenv.cc.isClang;
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/gnu-install-dirs.patch
deleted file mode 100644
index 91e208829295..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/gnu-install-dirs.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index fa62814b635d..6328614d829e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -12,6 +12,7 @@ endif()
- # Check if compiler-rt is built as a standalone project.
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE_BUILD)
-   project(CompilerRT C CXX ASM)
-+  include(GNUInstallDirs)
-   set(COMPILER_RT_STANDALONE_BUILD TRUE)
-   set_property(GLOBAL PROPERTY USE_FOLDERS ON)
- endif()
-diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
-index 7c127a93dfa7..6a95a65b70a7 100644
---- a/cmake/Modules/AddCompilerRT.cmake
-+++ b/cmake/Modules/AddCompilerRT.cmake
-@@ -524,7 +524,7 @@ macro(add_compiler_rt_resource_file target_name file_name component)
-   add_custom_target(${target_name} DEPENDS ${dst_file})
-   # Install in Clang resource directory.
-   install(FILES ${file_name}
--    DESTINATION ${COMPILER_RT_INSTALL_PATH}/share
-+    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR}
-     COMPONENT ${component})
-   add_dependencies(${component} ${target_name})
- 
-@@ -541,7 +541,7 @@ macro(add_compiler_rt_script name)
-   add_custom_target(${name} DEPENDS ${dst})
-   install(FILES ${dst}
-     PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
--    DESTINATION ${COMPILER_RT_INSTALL_PATH}/bin)
-+    DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_BINDIR})
- endmacro(add_compiler_rt_script src name)
- 
- # Builds custom version of libc++ and installs it in <prefix>.
-diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake
-index be8d7e733c7a..ab256bdff26c 100644
---- a/cmake/Modules/CompilerRTDarwinUtils.cmake
-+++ b/cmake/Modules/CompilerRTDarwinUtils.cmake
-@@ -498,7 +498,7 @@ macro(darwin_add_embedded_builtin_libraries)
-     set(DARWIN_macho_embedded_LIBRARY_OUTPUT_DIR
-       ${COMPILER_RT_OUTPUT_DIR}/lib/macho_embedded)
-     set(DARWIN_macho_embedded_LIBRARY_INSTALL_DIR
--      ${COMPILER_RT_INSTALL_PATH}/lib/macho_embedded)
-+      ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/macho_embedded)
-       
-     set(CFLAGS_armv7 "-target thumbv7-apple-darwin-eabi")
-     set(CFLAGS_i386 "-march=pentium")
-diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
-index 99b9f0e4af44..c5183ffa746e 100644
---- a/cmake/Modules/CompilerRTUtils.cmake
-+++ b/cmake/Modules/CompilerRTUtils.cmake
-@@ -375,7 +375,7 @@ endfunction()
- function(get_compiler_rt_install_dir arch install_dir)
-   if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-     get_compiler_rt_target(${arch} target)
--    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/lib/${target} PARENT_SCOPE)
-+    set(${install_dir} ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${target} PARENT_SCOPE)
-   else()
-     set(${install_dir} ${COMPILER_RT_LIBRARY_INSTALL_DIR} PARENT_SCOPE)
-   endif()
-diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
-index 964dd598f102..2acaab87d349 100644
---- a/cmake/base-config-ix.cmake
-+++ b/cmake/base-config-ix.cmake
-@@ -66,11 +66,11 @@ if (LLVM_TREE_AVAILABLE)
- else()
-     # Take output dir and install path from the user.
-   set(COMPILER_RT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
--    "Path where built compiler-rt libraries should be stored.")
-+    "Path where built compiler-rt build artifacts should be stored.")
-   set(COMPILER_RT_EXEC_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin CACHE PATH
-     "Path where built compiler-rt executables should be stored.")
--  set(COMPILER_RT_INSTALL_PATH ${CMAKE_INSTALL_PREFIX} CACHE PATH
--    "Path where built compiler-rt libraries should be installed.")
-+  set(COMPILER_RT_INSTALL_PATH "" CACHE PATH
-+    "Prefix where built compiler-rt artifacts should be installed, comes before CMAKE_INSTALL_PREFIX.")
-   option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." OFF)
-   option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" OFF)
-   # Use a host compiler to compile/link tests.
-@@ -98,7 +98,7 @@ else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
-   set(COMPILER_RT_LIBRARY_OUTPUT_DIR
-     ${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
-   set(COMPILER_RT_LIBRARY_INSTALL_DIR
--    ${COMPILER_RT_INSTALL_PATH}/lib/${COMPILER_RT_OS_DIR})
-+    ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_LIBDIR}/${COMPILER_RT_OS_DIR})
- endif()
- 
- if(APPLE)
-diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
-index d47d7baeb118..507c8e5c713e 100644
---- a/include/CMakeLists.txt
-+++ b/include/CMakeLists.txt
-@@ -62,22 +62,22 @@ set_target_properties(compiler-rt-headers PROPERTIES FOLDER "Compiler-RT Misc")
- install(FILES ${SANITIZER_HEADERS}
-   COMPONENT compiler-rt-headers
-   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
--  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/sanitizer)
-+  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/sanitizer)
- # Install fuzzer headers.
- install(FILES ${FUZZER_HEADERS}
-   COMPONENT compiler-rt-headers
-   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
--  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/fuzzer)
-+  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/fuzzer)
- # Install xray headers.
- install(FILES ${XRAY_HEADERS}
-   COMPONENT compiler-rt-headers
-   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
--  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/xray)
-+  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/xray)
- # Install profile headers.
- install(FILES ${PROFILE_HEADERS}
-   COMPONENT compiler-rt-headers
-   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
--  DESTINATION ${COMPILER_RT_INSTALL_PATH}/include/profile)
-+  DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/profile)
- 
- if (NOT CMAKE_CONFIGURATION_TYPES) # don't add this for IDEs.
-   add_custom_target(install-compiler-rt-headers
-diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
-index 051215edbeb7..ecce1f52efb0 100644
---- a/lib/dfsan/CMakeLists.txt
-+++ b/lib/dfsan/CMakeLists.txt
-@@ -56,4 +56,4 @@ add_custom_command(OUTPUT ${dfsan_abilist_filename}
-                    DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
- add_dependencies(dfsan dfsan_abilist)
- install(FILES ${dfsan_abilist_filename}
--        DESTINATION ${COMPILER_RT_INSTALL_PATH}/share)
-+        DESTINATION ${COMPILER_RT_INSTALL_PATH}/${CMAKE_INSTALL_FULL_DATADIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/normalize-var.patch b/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/normalize-var.patch
deleted file mode 100644
index b9986910e516..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/compiler-rt/normalize-var.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/compiler-rt/cmake/Modules/CompilerRTUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTUtils.cmake
-index c5183ffa746e..e4e4a007335d 100644
---- a/cmake/Modules/CompilerRTUtils.cmake
-+++ b/cmake/Modules/CompilerRTUtils.cmake
-@@ -299,8 +299,9 @@ macro(load_llvm_config)
-     # Get some LLVM variables from LLVMConfig.
-     include("${LLVM_CMAKE_PATH}/LLVMConfig.cmake")
- 
--    set(LLVM_LIBRARY_OUTPUT_INTDIR
--      ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
-+    get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR
-+      ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}
-+      REALPATH)
-   endif()
- endmacro()
- 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/default.nix
deleted file mode 100644
index 3044199e2811..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/default.nix
+++ /dev/null
@@ -1,285 +0,0 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, cmake
-, preLibcCrossHeaders
-, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
-, buildLlvmTools # tools, but from the previous stage, for cross
-, targetLlvmLibraries # libraries, but from the next stage, for cross
-, targetLlvm
-# This is the default binutils, but with *this* version of LLD rather
-# than the default LLVM version's, if LLD is the choice. We use these for
-# the `useLLVM` bootstrapping below.
-, bootBintoolsNoLibc ?
-    if stdenv.targetPlatform.linker == "lld"
-    then null
-    else pkgs.bintoolsNoLibc
-, bootBintools ?
-    if stdenv.targetPlatform.linker == "lld"
-    then null
-    else pkgs.bintools
-}:
-
-let
-  release_version = "11.1.0";
-  candidate = ""; # empty or "rcN"
-  dash-candidate = lib.optionalString (candidate != "") "-${candidate}";
-  version = "${release_version}${dash-candidate}"; # differentiating these (variables) is important for RCs
-
-  fetch = name: sha256: fetchurl {
-    url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/${name}-${release_version}${candidate}.src.tar.xz";
-    inherit sha256;
-  };
-
-  clang-tools-extra_src = fetch "clang-tools-extra" "18n1w1hkv931xzq02b34wglbv6zd6sd0r5kb8piwvag7klj7qw3n";
-
-  inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta;
-
-  tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; });
-    mkExtraBuildCommands0 = cc: ''
-      rsrc="$out/resource-root"
-      mkdir "$rsrc"
-      ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc"
-      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
-    '';
-    mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
-      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
-      ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
-    '';
-
-  bintoolsNoLibc' =
-    if bootBintoolsNoLibc == null
-    then tools.bintoolsNoLibc
-    else bootBintoolsNoLibc;
-  bintools' =
-    if bootBintools == null
-    then tools.bintools
-    else bootBintools;
-
-  in {
-
-    libllvm = callPackage ./llvm {
-      inherit llvm_meta;
-    };
-
-    # `llvm` historically had the binaries.  When choosing an output explicitly,
-    # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
-    llvm = tools.libllvm;
-
-    libllvm-polly = callPackage ./llvm {
-      inherit llvm_meta;
-      enablePolly = true;
-    };
-
-    llvm-polly = tools.libllvm-polly.lib // { outputSpecified = false; };
-
-    libclang = callPackage ./clang {
-      inherit clang-tools-extra_src llvm_meta;
-    };
-
-    clang-unwrapped = tools.libclang;
-
-    clang-polly-unwrapped = callPackage ./clang {
-      inherit llvm_meta;
-      inherit clang-tools-extra_src;
-      libllvm = tools.libllvm-polly;
-      enablePolly = true;
-    };
-
-    llvm-manpages = lowPrio (tools.libllvm.override {
-      enableManpages = true;
-      python3 = pkgs.python3;  # don't use python-boot
-    });
-
-    clang-manpages = lowPrio (tools.libclang.override {
-      enableManpages = true;
-      python3 = pkgs.python3;  # don't use python-boot
-    });
-
-    # disabled until recommonmark supports sphinx 3
-    # lldb-manpages = lowPrio (tools.lldb.override {
-    #   enableManpages = true;
-    #   python3 = pkgs.python3;  # don't use python-boot
-    # });
-
-    # pick clang appropriate for package set we are targeting
-    clang =
-      /**/ if stdenv.targetPlatform.libc == null then tools.clangNoLibc
-      else if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
-      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
-      else tools.libcxxClang;
-
-    libstdcxxClang = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper.
-      libcxx = null;
-      extraPackages = [
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = mkExtraBuildCommands cc;
-    };
-
-    libcxxClang = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = targetLlvmLibraries.libcxx;
-      extraPackages = [
-        libcxx.cxxabi
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = mkExtraBuildCommands cc;
-    };
-
-    lld = callPackage ./lld {
-      inherit llvm_meta;
-    };
-
-    lldb = callPackage ../common/lldb.nix {
-      src = fetch "lldb" "1vlyg015dyng43xqb8cg2l6r9ix8klibxsajazbfnckdnh54hwxj";
-      patches = [
-        ./lldb/procfs.patch
-        ./lldb/gnu-install-dirs.patch
-      ];
-      inherit llvm_meta;
-    };
-
-    # Below, is the LLVM bootstrapping logic. It handles building a
-    # fully LLVM toolchain from scratch. No GCC toolchain should be
-    # pulled in. As a consequence, it is very quick to build different
-    # targets provided by LLVM and we can also build for what GCC
-    # doesn’t support like LLVM. Probably we should move to some other
-    # file.
-
-    bintools-unwrapped = callPackage ../common/bintools.nix { };
-
-    bintoolsNoLibc = wrapBintoolsWith {
-      bintools = tools.bintools-unwrapped;
-      libc = preLibcCrossHeaders;
-    };
-
-    bintools = wrapBintoolsWith {
-      bintools = tools.bintools-unwrapped;
-    };
-
-    clangUseLLVM = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = targetLlvmLibraries.libcxx;
-      bintools = bintools';
-      extraPackages = [
-        libcxx.cxxabi
-        targetLlvmLibraries.compiler-rt
-      ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
-        targetLlvmLibraries.libunwind
-      ];
-      extraBuildCommands = ''
-        echo "-rtlib=compiler-rt -Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags
-        echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
-      '' + lib.optionalString (!stdenv.targetPlatform.isWasm) ''
-        echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags
-        echo "-L${targetLlvmLibraries.libunwind}/lib" >> $out/nix-support/cc-ldflags
-      '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''
-        echo "-lunwind" >> $out/nix-support/cc-ldflags
-      '' + lib.optionalString stdenv.targetPlatform.isWasm ''
-        echo "-fno-exceptions" >> $out/nix-support/cc-cflags
-      '' + mkExtraBuildCommands cc;
-    };
-
-    clangNoLibcxx = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintools';
-      extraPackages = [
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = ''
-        echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
-        echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
-        echo "-nostdlib++" >> $out/nix-support/cc-cflags
-      '' + mkExtraBuildCommands cc;
-    };
-
-    clangNoLibc = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintoolsNoLibc';
-      extraPackages = [
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = ''
-        echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
-        echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
-      '' + mkExtraBuildCommands cc;
-    };
-
-    clangNoCompilerRt = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintoolsNoLibc';
-      extraPackages = [ ];
-      extraBuildCommands = ''
-        echo "-nostartfiles" >> $out/nix-support/cc-cflags
-      '' + mkExtraBuildCommands0 cc;
-    };
-
-    clangNoCompilerRtWithLibc = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintools';
-      extraPackages = [ ];
-      extraBuildCommands = mkExtraBuildCommands0 cc;
-    };
-
-  });
-
-  libraries = lib.makeExtensible (libraries: let
-    callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
-  in {
-
-    compiler-rt-libc = callPackage ./compiler-rt {
-      inherit llvm_meta;
-      stdenv = if (stdenv.hostPlatform.useLLVM or false) || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) || (stdenv.hostPlatform.isRiscV && stdenv.hostPlatform.is32bit)
-               then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
-               else stdenv;
-    };
-
-    compiler-rt-no-libc = callPackage ./compiler-rt {
-      inherit llvm_meta;
-      stdenv = if (stdenv.hostPlatform.useLLVM or false) || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
-               then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
-               else stdenv;
-    };
-
-    # N.B. condition is safe because without useLLVM both are the same.
-    compiler-rt = if stdenv.hostPlatform.isAndroid || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) || (stdenv.hostPlatform.libc == "newlib")
-      then libraries.compiler-rt-libc
-      else libraries.compiler-rt-no-libc;
-
-    stdenv = overrideCC stdenv buildLlvmTools.clang;
-
-    libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
-
-    libcxx = callPackage ./libcxx {
-      inherit llvm_meta;
-      stdenv = if (stdenv.hostPlatform.useLLVM or false) || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
-    };
-
-    libcxxabi = callPackage ./libcxxabi {
-      inherit llvm_meta;
-      stdenv = if (stdenv.hostPlatform.useLLVM or false) || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
-    };
-
-    libunwind = callPackage ./libunwind {
-      inherit llvm_meta;
-      stdenv = if (stdenv.hostPlatform.useLLVM or false) || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
-    };
-
-    openmp = callPackage ./openmp {
-      inherit llvm_meta targetLlvm;
-    };
-  });
-  noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
-
-in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/default.nix
deleted file mode 100644
index 10b8c00dd16a..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/default.nix
+++ /dev/null
@@ -1,104 +0,0 @@
-{ lib, stdenv, llvm_meta, fetch, fetchpatch, cmake, python3, llvm, fixDarwinDylibNames, version
-, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi
-, libcxxabi, libcxxrt
-, enableShared ? !stdenv.hostPlatform.isStatic
-}:
-
-assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi";
-
-stdenv.mkDerivation {
-  pname = "libcxx";
-  inherit version;
-
-  src = fetch "libcxx" "1rgqsqpgi0vkga5d7hy0iyfsqgzfz7q1xy7afdfa1snp1qjks8xv";
-
-  postUnpack = ''
-    unpackFile ${libcxxabi.src}
-    mv libcxxabi-* libcxxabi
-    unpackFile ${llvm.src}
-    mv llvm-* llvm
-  '';
-
-  outputs = [ "out" "dev" ];
-
-  patches = [
-    (fetchpatch {
-      # Backported from LLVM 12, avoids clashes with commonly used "block.h" header.
-      url = "https://github.com/llvm/llvm-project/commit/19bc9ea480b60b607a3e303f20c7a3a2ea553369.patch";
-      sha256 = "sha256-aWa66ogmPkG0xHzSfcpD0qZyZQcNKwLV44js4eiun78=";
-      stripLen = 1;
-    })
-    ./gnu-install-dirs.patch
-  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
-    ../../common/libcxx/libcxx-0001-musl-hacks.patch
-  ];
-
-  # Prevent errors like "error: 'foo' is unavailable: introduced in macOS yy.zz"
-  postPatch = ''
-    substituteInPlace include/__config \
-      --replace "#    define _LIBCPP_USE_AVAILABILITY_APPLE" ""
-  '';
-
-  preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
-    patchShebangs utils/cat_files.py
-  '';
-
-  nativeBuildInputs = [ cmake python3 ]
-    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
-
-  buildInputs = [ cxxabi ];
-
-  cmakeFlags = [
-    "-DLIBCXX_CXX_ABI=${cxxabi.pname}"
-  ] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
-    ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
-    ++ lib.optionals stdenv.hostPlatform.isWasm [
-      "-DLIBCXX_ENABLE_THREADS=OFF"
-      "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
-      "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
-    ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF"
-
-    # TODO: this is a bit of a hack to cross compile to Apple Silicon.  libcxx
-    # starting with 11 enables CMAKE_BUILD_WITH_INSTALL_NAME_DIR which requires
-    # platform setup for rpaths. In cmake, this is enabled when macos is newer
-    # than 10.5. However CMAKE_SYSTEM_VERSION is set to empty (TODO: why?)
-    # which prevents the conditional configuration, and configure fails.  The
-    # value here corresponds to `uname -r`. If stdenv.hostPlatform.release is
-    # not null, then this property will be set via mkDerivation (TODO: how can
-    # we set this?).
-    ++ lib.optional (
-      stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 &&
-      stdenv.hostPlatform != stdenv.buildPlatform
-    ) "-DCMAKE_SYSTEM_VERSION=20.1.0";
-
-  preInstall = lib.optionalString (stdenv.isDarwin) ''
-    for file in lib/*.dylib; do
-      if [ -L "$file" ]; then continue; fi
-
-      baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))
-      installName="$out/lib/$baseName"
-      abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/')
-
-      for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do
-        ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file
-      done
-    done
-  '';
-
-  passthru = {
-    isLLVM = true;
-    inherit cxxabi;
-  };
-
-  meta = llvm_meta // {
-    homepage = "https://libcxx.llvm.org/";
-    description = "C++ standard library";
-    longDescription = ''
-      libc++ is an implementation of the C++ standard library, targeting C++11,
-      C++14 and above.
-    '';
-    # "All of the code in libc++ is dual licensed under the MIT license and the
-    # UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/gnu-install-dirs.patch
deleted file mode 100644
index 2b95d6a85d8f..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/libcxx/gnu-install-dirs.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 910d04b54b6d..80ef692d83eb 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -31,6 +31,8 @@ set(CMAKE_MODULE_PATH
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXX_STANDALONE_BUILD)
-   project(libcxx CXX C)
- 
-+  include(GNUInstallDirs)
-+
-   set(PACKAGE_NAME libcxx)
-   set(PACKAGE_VERSION 11.1.0)
-   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
-@@ -418,7 +420,7 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-   set(LIBCXX_HEADER_DIR ${LLVM_BINARY_DIR})
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-   if(LIBCXX_LIBDIR_SUBDIR)
-     string(APPEND LIBCXX_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
-     string(APPEND LIBCXX_INSTALL_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
-@@ -426,11 +428,11 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
- elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
-   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
-   set(LIBCXX_HEADER_DIR  ${LLVM_BINARY_DIR})
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
- else()
-   set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
-   set(LIBCXX_HEADER_DIR  ${CMAKE_BINARY_DIR})
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
- endif()
- 
- file(MAKE_DIRECTORY "${LIBCXX_BINARY_INCLUDE_DIR}")
-diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
-index c5aa26739e36..8841c4a5252d 100644
---- a/cmake/Modules/HandleLibCXXABI.cmake
-+++ b/cmake/Modules/HandleLibCXXABI.cmake
-@@ -63,7 +63,7 @@ macro(setup_abi_lib abidefines abishared abistatic abifiles abidirs)
- 
-         if (LIBCXX_INSTALL_HEADERS)
-           install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
--            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dstdir}
-+            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}
-             COMPONENT cxx-headers
-             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-             )
-diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
-index be8141c98166..93847e5758cc 100644
---- a/include/CMakeLists.txt
-+++ b/include/CMakeLists.txt
-@@ -257,7 +257,7 @@ if (LIBCXX_INSTALL_HEADERS)
-   foreach(file ${files})
-     get_filename_component(dir ${file} DIRECTORY)
-     install(FILES ${file}
--      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir}
-+      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dir}
-       COMPONENT ${CXX_HEADER_TARGET}
-       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-     )
-@@ -265,7 +265,7 @@ if (LIBCXX_INSTALL_HEADERS)
- 
-   # Install the generated header as __config.
-   install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
--    DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1
-+    DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
-     PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-     RENAME __config
-     COMPONENT ${CXX_HEADER_TARGET})
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 2001c09761d9..5bd11ea6b400 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -344,21 +344,21 @@ if (LIBCXX_INSTALL_LIBRARY)
-     install(TARGETS cxx_shared
-       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
-       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
--      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
-+      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
-   endif()
- 
-   if (LIBCXX_INSTALL_STATIC_LIBRARY)
-     install(TARGETS cxx_static
-       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
-       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
--      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
-+      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
-   endif()
- 
-   if(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY)
-     install(TARGETS cxx_experimental
-       LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
-       ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
--      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
-+      RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
-   endif()
- 
-   # NOTE: This install command must go after the cxx install command otherwise
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/default.nix
deleted file mode 100644
index 6c8487a2eb99..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/default.nix
+++ /dev/null
@@ -1,89 +0,0 @@
-{ lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version
-, enableShared ? !stdenv.hostPlatform.isStatic
-, standalone ? stdenv.hostPlatform.useLLVM or false
-, withLibunwind ? !stdenv.isDarwin && !stdenv.hostPlatform.isWasm
-}:
-
-stdenv.mkDerivation {
-  pname = "libcxxabi";
-  inherit version;
-
-  src = fetch "libcxxabi" "1azcf31mxw59hb1x17xncnm3dyw90ylh8rqx462lvypqh3nr6c8l";
-
-  outputs = [ "out" "dev" ];
-
-  postUnpack = ''
-    unpackFile ${libcxx.src}
-    mv libcxx-* libcxx
-    unpackFile ${llvm.src}
-    mv llvm-* llvm
-  '' + lib.optionalString stdenv.isDarwin ''
-    export TRIPLE=x86_64-apple-darwin
-  '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -d libcxx -i ${../../common/libcxx/libcxx-0001-musl-hacks.patch}
-  '' + lib.optionalString stdenv.hostPlatform.isWasm ''
-    patch -p1 -d llvm -i ${../../common/libcxxabi/wasm.patch}
-  '';
-
-  patches = [
-    ../../common/libcxxabi/no-threads.patch
-    ./gnu-install-dirs.patch
-  ];
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = lib.optional withLibunwind libunwind;
-
-  cmakeFlags = lib.optionals standalone [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-  ] ++ lib.optionals (standalone && withLibunwind) [
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
-
-  preInstall = lib.optionalString stdenv.isDarwin ''
-    for file in lib/*.dylib; do
-      if [ -L "$file" ]; then continue; fi
-
-      # Fix up the install name. Preserve the basename, just replace the path.
-      installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))"
-
-      # this should be done in CMake, but having trouble figuring out
-      # the magic combination of necessary CMake variables
-      # if you fancy a try, take a look at
-      # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
-      ${stdenv.cc.targetPrefix}install_name_tool -id $installName $file
-
-      # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes
-      # libcxxabi to sometimes link against a different version of itself.
-      # Here we simply make that second reference point to ourselves.
-      for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do
-        ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file
-      done
-    done
-  '';
-
-  postInstall = ''
-    mkdir -p "$dev/include"
-    install -m 644 ../include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include"
-  '';
-
-  passthru = {
-    libName = "c++abi";
-  };
-
-  meta = llvm_meta // {
-    homepage = "https://libcxxabi.llvm.org/";
-    description = "Provides C++ standard library support";
-    longDescription = ''
-      libc++abi is a new implementation of low level support for a standard C++ library.
-    '';
-    # "All of the code in libc++abi is dual licensed under the MIT license and
-    # the UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/gnu-install-dirs.patch
deleted file mode 100644
index 10651c1255ef..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/libcxxabi/gnu-install-dirs.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 36c6b2249e2b..a93c13ccaed9 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -24,6 +24,8 @@ set(CMAKE_MODULE_PATH
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXXABI_STANDALONE_BUILD)
-   project(libcxxabi CXX C)
- 
-+  include(GNUInstallDirs)
-+
-   set(PACKAGE_NAME libcxxabi)
-   set(PACKAGE_VERSION 11.1.0)
-   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
-@@ -160,17 +162,17 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
- 
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-   if(LIBCXX_LIBDIR_SUBDIR)
-     string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
-     string(APPEND LIBCXXABI_INSTALL_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
-   endif()
- elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
-   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
- else()
-   set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX})
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
- endif()
- 
- set(LIBCXXABI_INSTALL_PREFIX "" CACHE STRING "Define libc++abi destination prefix.")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libunwind/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/libunwind/default.nix
deleted file mode 100644
index 4cd39e379601..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/libunwind/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, stdenv, llvm_meta, version, fetch, cmake, enableShared ? !stdenv.hostPlatform.isStatic
-}:
-
-stdenv.mkDerivation rec {
-  pname = "libunwind";
-  inherit version;
-
-  src = fetch pname "1vpqs2c358v8fbr1r8jmzkfqk12jllimjcfmgxga127ksq9b37nj";
-
-  patches = [
-    ./gnu-install-dirs.patch
-  ];
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [ cmake ];
-
-  cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
-
-  meta = llvm_meta // {
-    # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
-    homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
-    description = "LLVM's unwinder library";
-    longDescription = ''
-      The unwind library provides a family of _Unwind_* functions implementing
-      the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
-      I). It is a dependency of the C++ ABI library, and sometimes is a
-      dependency of other runtimes.
-    '';
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/libunwind/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/libunwind/gnu-install-dirs.patch
deleted file mode 100644
index b5b9c209278e..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/libunwind/gnu-install-dirs.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e44a103648f9..aaf1f9555d7f 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -18,6 +18,8 @@ set(CMAKE_MODULE_PATH
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBUNWIND_STANDALONE_BUILD)
-   project(libunwind LANGUAGES C CXX ASM)
- 
-+  include(GNUInstallDirs)
-+
-   # Rely on llvm-config.
-   set(CONFIG_OUTPUT)
-   if(NOT LLVM_CONFIG_PATH)
-@@ -192,17 +194,17 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION
- 
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
--  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-+  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-   if(LIBCXX_LIBDIR_SUBDIR)
-     string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
-     string(APPEND LIBUNWIND_INSTALL_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
-   endif()
- elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
-   set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
--  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
-+  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
- else()
-   set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX})
--  set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
-+  set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
- endif()
- 
- set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBUNWIND_LIBRARY_DIR})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/lld/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/lld/default.nix
deleted file mode 100644
index dbcd96a3edce..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/lld/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib, stdenv, llvm_meta
-, buildLlvmTools
-, fetch
-, cmake
-, libxml2
-, libllvm
-, version
-}:
-
-stdenv.mkDerivation rec {
-  pname = "lld";
-  inherit version;
-
-  src = fetch pname "1kk61i7z5bi9i11rzsd2b388d42if1c7a45zkaa4mk0yps67hyh1";
-
-  patches = [
-    ./gnu-install-dirs.patch
-  ];
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ libllvm libxml2 ];
-
-  cmakeFlags = [
-    "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
-  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-    "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
-  ];
-
-  # Musl's default stack size is too small for lld to be able to link Firefox.
-  LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152";
-
-  outputs = [ "out" "lib" "dev" ];
-
-  meta = llvm_meta // {
-    homepage = "https://lld.llvm.org/";
-    description = "The LLVM linker (unwrapped)";
-    longDescription = ''
-      LLD is a linker from the LLVM project that is a drop-in replacement for
-      system linkers and runs much faster than them. It also provides features
-      that are useful for toolchain developers.
-      The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and
-      WebAssembly in descending order of completeness. Internally, LLD consists
-      of several different linkers.
-    '';
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/lld/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/lld/gnu-install-dirs.patch
deleted file mode 100644
index 19cf5526aa50..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/lld/gnu-install-dirs.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 040bb2c8f6d7..f765f0096d97 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -6,6 +6,8 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
-   set(CMAKE_INCLUDE_CURRENT_DIR ON)
-   set(LLD_BUILT_STANDALONE TRUE)
- 
-+  include(GNUInstallDirs)
-+
-   find_program(LLVM_CONFIG_PATH "llvm-config" DOC "Path to llvm-config binary")
-   if(NOT LLVM_CONFIG_PATH)
-     message(FATAL_ERROR "llvm-config not found: specify LLVM_CONFIG_PATH")
-@@ -205,7 +207,7 @@ include_directories(BEFORE
- 
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN ".svn" EXCLUDE
-diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
-index 23df41312403..d62372c88de7 100644
---- a/cmake/modules/AddLLD.cmake
-+++ b/cmake/modules/AddLLD.cmake
-@@ -20,9 +20,9 @@ macro(add_lld_library name)
-     install(TARGETS ${name}
-       COMPONENT ${name}
-       ${export_to_lldtargets}
--      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--      RUNTIME DESTINATION bin)
-+      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
-     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
-       add_llvm_install_targets(install-${name}
-@@ -54,7 +54,7 @@ macro(add_lld_tool name)
- 
-     install(TARGETS ${name}
-       ${export_to_lldtargets}
--      RUNTIME DESTINATION bin
-+      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-       COMPONENT ${name})
- 
-     if(NOT CMAKE_CONFIGURATION_TYPES)
-@@ -69,5 +69,5 @@ endmacro()
- macro(add_lld_symlink name dest)
-   add_llvm_tool_symlink(${name} ${dest} ALWAYS_GENERATE)
-   # Always generate install targets
--  llvm_install_symlink(${name} ${dest} ALWAYS_GENERATE)
-+  llvm_install_symlink(${name} ${dest} ${CMAKE_INSTALL_FULL_BINDIR} ALWAYS_GENERATE)
- endmacro()
-diff --git a/tools/lld/CMakeLists.txt b/tools/lld/CMakeLists.txt
-index e6f72fcd3488..d903609e6e4f 100644
---- a/tools/lld/CMakeLists.txt
-+++ b/tools/lld/CMakeLists.txt
-@@ -21,7 +21,7 @@ target_link_libraries(lld
-   )
- 
- install(TARGETS lld
--  RUNTIME DESTINATION bin)
-+  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
- if(NOT LLD_SYMLINKS_TO_CREATE)
-   set(LLD_SYMLINKS_TO_CREATE lld-link ld.lld ld64.lld wasm-ld)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/lldb/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/lldb/gnu-install-dirs.patch
deleted file mode 100644
index fd49be395a3a..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/lldb/gnu-install-dirs.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index bf748020ea40..34103d2b5e1a 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -17,6 +17,8 @@ set(CMAKE_MODULE_PATH
- # If we are not building as part of LLVM, build LLDB as a standalone project,
- # using LLVM as an external library.
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
-+  include(GNUInstallDirs)
-+
-   project(lldb)
-   include(LLDBStandalone)
- 
-diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake
-index 4ed5c647c5d2..89f96e710d55 100644
---- a/cmake/modules/AddLLDB.cmake
-+++ b/cmake/modules/AddLLDB.cmake
-@@ -107,13 +107,13 @@ function(add_lldb_library name)
-   endif()
- 
-   if(PARAM_SHARED)
--    set(install_dest lib${LLVM_LIBDIR_SUFFIX})
-+    set(install_dest ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-     if(PARAM_INSTALL_PREFIX)
-       set(install_dest ${PARAM_INSTALL_PREFIX})
-     endif()
-     # RUNTIME is relevant for DLL platforms, FRAMEWORK for macOS
-     install(TARGETS ${name} COMPONENT ${name}
--      RUNTIME DESTINATION bin
-+      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-       LIBRARY DESTINATION ${install_dest}
-       ARCHIVE DESTINATION ${install_dest}
-       FRAMEWORK DESTINATION ${install_dest})
-diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
-index 8465cfe3b7b7..01b7eae136e2 100644
---- a/cmake/modules/LLDBConfig.cmake
-+++ b/cmake/modules/LLDBConfig.cmake
-@@ -245,7 +245,7 @@ include_directories(BEFORE
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/
-     COMPONENT lldb-headers
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN ".svn" EXCLUDE
-@@ -254,7 +254,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
- 
-   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
-     COMPONENT lldb-headers
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN ".svn" EXCLUDE
-diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt
-index efba2f74904f..e08413b1dbb1 100644
---- a/tools/intel-features/CMakeLists.txt
-+++ b/tools/intel-features/CMakeLists.txt
-@@ -65,4 +65,4 @@ if (LLDB_ENABLE_PYTHON AND LLDB_BUILD_INTEL_PT)
- endif()
- 
- install(TARGETS lldbIntelFeatures
--  LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX})
-+  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-diff --git a/cmake/modules/LLDBStandalone.cmake b/cmake/modules/LLDBStandalone.cmake
-index 752113b..010f187 100644
---- a/cmake/modules/LLDBStandalone.cmake
-+++ b/cmake/modules/LLDBStandalone.cmake
-@@ -62,7 +62,7 @@ endif()
-
- # They are used as destination of target generators.
- set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
--set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
-+set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
- if(WIN32 OR CYGWIN)
-   # DLL platform -- put DLLs into bin.
-   set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index bf74802..1c98cae 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -222,7 +222,7 @@ if (LLDB_ENABLE_PYTHON)
-   if(LLDB_BUILD_FRAMEWORK)
-     set(LLDB_PYTHON_INSTALL_PATH ${LLDB_FRAMEWORK_INSTALL_DIR}/LLDB.framework/Resources/Python)
-   else()
--    set(LLDB_PYTHON_INSTALL_PATH ${LLDB_PYTHON_RELATIVE_PATH})
-+    set(LLDB_PYTHON_INSTALL_PATH ${CMAKE_INSTALL_LIBDIR}/../${LLDB_PYTHON_RELATIVE_PATH})
-   endif()
-   if (NOT CMAKE_CFG_INTDIR STREQUAL  ".")
-     string(REPLACE ${CMAKE_CFG_INTDIR} "\$\{CMAKE_INSTALL_CONFIG_NAME\}" LLDB_PYTHON_INSTALL_PATH ${LLDB_PYTHON_INSTALL_PATH})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/lldb/procfs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/lldb/procfs.patch
deleted file mode 100644
index b075dbaeee0a..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/lldb/procfs.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/source/Plugins/Process/Linux/Procfs.h
-+++ b/source/Plugins/Process/Linux/Procfs.h
-@@ -11,21 +11,12 @@
- // sys/procfs.h on Android/Linux for all supported architectures.
- 
- #include <sys/ptrace.h>
-+#include <asm/ptrace.h>
- 
--#ifdef __ANDROID__
--#if defined(__arm64__) || defined(__aarch64__)
--typedef unsigned long elf_greg_t;
--typedef elf_greg_t
--    elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
--typedef struct user_fpsimd_state elf_fpregset_t;
--#ifndef NT_FPREGSET
--#define NT_FPREGSET NT_PRFPREG
--#endif // NT_FPREGSET
--#elif defined(__mips__)
--#ifndef NT_FPREGSET
--#define NT_FPREGSET NT_PRFPREG
--#endif // NT_FPREGSET
--#endif
--#else // __ANDROID__
-+#if !defined(__GLIBC__) && defined(__powerpc__)
-+#define pt_regs musl_pt_regs
-+#include <sys/procfs.h>
-+#undef pt_regs
-+#else
- #include <sys/procfs.h>
--#endif // __ANDROID__
-+#endif
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix
deleted file mode 100644
index 5e22d3f4af16..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/llvm/default.nix
+++ /dev/null
@@ -1,365 +0,0 @@
-{ lib, stdenv, llvm_meta
-, pkgsBuildBuild
-, fetch
-, fetchpatch
-, cmake
-, python3
-, libffi
-, enableGoldPlugin ? libbfd.hasPluginAPI
-, libbfd
-, libpfm
-, libxml2
-, ncurses
-, version
-, release_version
-, zlib
-, buildLlvmTools
-, debugVersion ? false
-, doCheck ? stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) && (!stdenv.hostPlatform.isRiscV)
-  && (stdenv.hostPlatform == stdenv.buildPlatform)
-, enableManpages ? false
-, enableSharedLibraries ? !stdenv.hostPlatform.isStatic
-# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245
-# broken for the armv7l builder
-, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch
-, enablePolly ? false # TODO should be on by default
-}:
-
-let
-  inherit (lib) optional optionals optionalString;
-
-  # Used when creating a version-suffixed symlink of libLLVM.dylib
-  shortVersion = with lib;
-    concatStringsSep "." (take 1 (splitString "." release_version));
-
-  # Ordinarily we would just the `doCheck` and `checkDeps` functionality
-  # `mkDerivation` gives us to manage our test dependencies (instead of breaking
-  # out `doCheck` as a package level attribute).
-  #
-  # Unfortunately `lit` does not forward `$PYTHONPATH` to children processes, in
-  # particular the children it uses to do feature detection.
-  #
-  # This means that python deps we add to `checkDeps` (which the python
-  # interpreter is made aware of via `$PYTHONPATH` – populated by the python
-  # setup hook) are not picked up by `lit` which causes it to skip tests.
-  #
-  # Adding `python3.withPackages (ps: [ ... ])` to `checkDeps` also doesn't work
-  # because this package is shadowed in `$PATH` by the regular `python3`
-  # package.
-  #
-  # So, we "manually" assemble one python derivation for the package to depend
-  # on, taking into account whether checks are enabled or not:
-  python = if doCheck then
-    let
-      checkDeps = ps: with ps; [ psutil ];
-    in python3.withPackages checkDeps
-  else python3;
-
-in stdenv.mkDerivation (rec {
-  pname = "llvm";
-  inherit version;
-
-  src = fetch pname "199yq3a214avcbi4kk2q0ajriifkvsr0l2dkx3a666m033ihi1ff";
-  polly_src = fetch "polly" "031r23ijhx7v93a5n33m2nc0x9xyqmx0d8xg80z7q971p6qd63sq";
-
-  unpackPhase = ''
-    unpackFile $src
-    mv llvm-${release_version}* llvm
-    sourceRoot=$PWD/llvm
-  '' + optionalString enablePolly ''
-    unpackFile $polly_src
-    mv polly-* $sourceRoot/tools/polly
-  '';
-
-  outputs = [ "out" "lib" "dev" "python" ];
-
-  nativeBuildInputs = [ cmake python ]
-    ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ];
-
-  buildInputs = [ libxml2 libffi ]
-    ++ optional enablePFM libpfm; # exegesis
-
-  propagatedBuildInputs = [ ncurses zlib ];
-
-  patches = [
-    # When cross-compiling we configure llvm-config-native with an approximation
-    # of the flags used for the normal LLVM build. To avoid the need for building
-    # a native libLLVM.so (which would fail) we force llvm-config to be linked
-    # statically against the necessary LLVM components always.
-    ../../common/llvm/llvm-config-link-static.patch
-
-    ./gnu-install-dirs.patch
-    # On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test.
-    (fetchpatch {
-      name = "uops-CMOV16rm-noreg.diff";
-      url = "https://github.com/llvm/llvm-project/commit/9e9f991ac033.diff";
-      sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi";
-      stripLen = 1;
-    })
-    # gcc-11 compat upstream patch
-    (fetchpatch {
-      url = "https://github.com/llvm/llvm-project/commit/b498303066a63a203d24f739b2d2e0e56dca70d1.patch";
-      sha256 = "sha256:0nh123kld0dgz2h941lng331dkj3wbm5lfxm375k1f569gv83hlk";
-      stripLen = 1;
-    })
-
-    # Fix invalid std::string(nullptr) for GCC 12
-    (fetchpatch {
-      name = "nvptx-gcc-12.patch";
-      url = "https://github.com/llvm/llvm-project/commit/99e64623ec9b31def9375753491cc6093c831809.patch";
-      sha256 = "0zjfjgavqzi2ypqwqnlvy6flyvdz8hi1anwv0ybwnm2zqixg7za3";
-      stripLen = 1;
-    })
-    (fetchpatch {
-      name = "dfaemitter-gcc-12.patch";
-      url = "https://github.com/llvm/llvm-project/commit/0841916e87a39e3c223c986e8da31e4a9a1432e3.patch";
-      sha256 = "1kckghvsngs51mqm82asy0s9vr19h8aqbw43a0w44mccqw6bzrwf";
-      stripLen = 1;
-    })
-
-    # Fix musl build.
-    (fetchpatch {
-      url = "https://github.com/llvm/llvm-project/commit/5cd554303ead0f8891eee3cd6d25cb07f5a7bf67.patch";
-      relative = "llvm";
-      hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA=";
-    })
-
-    # Backport gcc-13 fixes with missing includes.
-    (fetchpatch {
-      name = "signals-gcc-13.patch";
-      url = "https://github.com/llvm/llvm-project/commit/ff1681ddb303223973653f7f5f3f3435b48a1983.patch";
-      hash = "sha256-CXwYxQezTq5vdmc8Yn88BUAEly6YZ5VEIA6X3y5NNOs=";
-      stripLen = 1;
-    })
-    (fetchpatch {
-      name = "base64-gcc-13.patch";
-      url = "https://github.com/llvm/llvm-project/commit/5e9be93566f39ee6cecd579401e453eccfbe81e5.patch";
-      hash = "sha256-PAwrVrvffPd7tphpwCkYiz+67szPRzRB2TXBvKfzQ7U=";
-      stripLen = 1;
-    })
-  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
-
-  postPatch = optionalString stdenv.isDarwin ''
-    substituteInPlace cmake/modules/AddLLVM.cmake \
-      --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
-      --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
-  '' + ''
-    # FileSystem permissions tests fail with various special bits
-    substituteInPlace unittests/Support/CMakeLists.txt \
-      --replace "Path.cpp" ""
-    rm unittests/Support/Path.cpp
-  '' + optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -i ${../../common/llvm/TLI-musl.patch}
-    substituteInPlace unittests/Support/CMakeLists.txt \
-      --replace "add_subdirectory(DynamicLibrary)" ""
-    rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
-    # valgrind unhappy with musl or glibc, but fails w/musl only
-    rm test/CodeGen/AArch64/wineh4.mir
-  '' + optionalString stdenv.hostPlatform.isAarch32 ''
-    # skip failing X86 test cases on 32-bit ARM
-    rm test/DebugInfo/X86/convert-debugloc.ll
-    rm test/DebugInfo/X86/convert-inlined.ll
-    rm test/DebugInfo/X86/convert-linked.ll
-    rm test/tools/dsymutil/X86/op-convert.test
-    rm test/tools/gold/X86/split-dwarf.ll
-    rm test/tools/llvm-readobj/ELF/dependent-libraries.test
-  '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") ''
-    # Seems to require certain floating point hardware (NEON?)
-    rm test/ExecutionEngine/frem.ll
-  '' + ''
-    patchShebangs test/BugPoint/compile-custom.ll.py
-  '' + ''
-    # Tweak tests to ignore namespace part of type to support
-    # gcc-12: https://gcc.gnu.org/PR103598.
-    # The change below mangles strings like:
-    #    CHECK-NEXT: Starting llvm::Function pass manager run.
-    # to:
-    #    CHECK-NEXT: Starting {{.*}}Function pass manager run.
-    for f in \
-      test/Other/new-pass-manager.ll \
-      test/Other/new-pm-defaults.ll \
-      test/Other/new-pm-lto-defaults.ll \
-      test/Other/new-pm-thinlto-defaults.ll \
-      test/Other/pass-pipeline-parsing.ll \
-      test/Transforms/Inline/cgscc-incremental-invalidate.ll \
-      test/Transforms/Inline/clear-analyses.ll \
-      test/Transforms/LoopUnroll/unroll-loop-invalidation.ll \
-      test/Transforms/SCCP/ipsccp-preserve-analysis.ll \
-      test/Transforms/SCCP/preserve-analysis.ll \
-      test/Transforms/SROA/dead-inst.ll \
-      test/tools/gold/X86/new-pm.ll \
-      ; do
-      echo "PATCH: $f"
-      substituteInPlace $f \
-        --replace 'Starting llvm::' 'Starting {{.*}}' \
-        --replace 'Finished llvm::' 'Finished {{.*}}'
-    done
-  '';
-
-  preConfigure = ''
-    # Workaround for configure flags that need to have spaces
-    cmakeFlagsArray+=(
-      -DLLVM_LIT_ARGS='-svj''${NIX_BUILD_CORES} --no-progress-bar'
-    )
-  '';
-
-  # hacky fix: created binaries need to be run before installation
-  preBuild = ''
-    mkdir -p $out/
-    ln -sv $PWD/lib $out
-  '';
-
-  # E.g. mesa.drivers use the build-id as a cache key (see #93946):
-  LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1";
-
-  hardeningDisable = [ "trivialautovarinit" ];
-
-  cmakeBuildType = if debugVersion then "Debug" else "Release";
-
-  cmakeFlags = with stdenv; let
-    # These flags influence llvm-config's BuildVariables.inc in addition to the
-    # general build. We need to make sure these are also passed via
-    # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native
-    # will return different results from the cross llvm-config.
-    #
-    # Some flags don't need to be repassed because LLVM already does so (like
-    # CMAKE_BUILD_TYPE), others are irrelevant to the result.
-    flagsForLlvmConfig = [
-      "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
-      "-DLLVM_ENABLE_RTTI=ON"
-    ] ++ optionals enableSharedLibraries [
-      "-DLLVM_LINK_LLVM_DYLIB=ON"
-    ];
-  in flagsForLlvmConfig ++ [
-    "-DLLVM_INSTALL_UTILS=ON"  # Needed by rustc
-    "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
-    "-DLLVM_ENABLE_FFI=ON"
-    "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
-    "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
-    "-DLLVM_ENABLE_DUMP=ON"
-  ] ++ optionals stdenv.hostPlatform.isStatic [
-    # Disables building of shared libs, -fPIC is still injected by cc-wrapper
-    "-DLLVM_ENABLE_PIC=OFF"
-    "-DLLVM_BUILD_STATIC=ON"
-    # libxml2 needs to be disabled because the LLVM build system ignores its .la
-    # file and doesn't link zlib as well.
-    # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812
-    "-DLLVM_ENABLE_LIBXML2=OFF"
-    # This is a Shared Library not tied to LLVM_ENABLE_PIC
-    "-DLLVM_TOOL_REMARKS_SHLIB_BUILD=OFF"
-  ] ++ optionals enableManpages [
-    "-DLLVM_BUILD_DOCS=ON"
-    "-DLLVM_ENABLE_SPHINX=ON"
-    "-DSPHINX_OUTPUT_MAN=ON"
-    "-DSPHINX_OUTPUT_HTML=OFF"
-    "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
-  ] ++ optionals (enableGoldPlugin) [
-    "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include"
-  ] ++ optionals isDarwin [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DCAN_TARGET_i386=false"
-  ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [
-    "-DCMAKE_CROSSCOMPILING=True"
-    "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen"
-    (
-      let
-        nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc;
-        nativeBintools = nativeCC.bintools.bintools;
-        nativeToolchainFlags = [
-          "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
-          "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
-          "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
-          "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
-          "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
-        ];
-        # We need to repass the custom GNUInstallDirs values, otherwise CMake
-        # will choose them for us, leading to wrong results in llvm-config-native
-        nativeInstallFlags = [
-          "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
-          "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin"
-          "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include"
-          "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib"
-          "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec"
-        ];
-      in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list="
-      + lib.concatStringsSep ";" (lib.concatLists [
-        flagsForLlvmConfig
-        nativeToolchainFlags
-        nativeInstallFlags
-      ])
-    )
-  ];
-
-  postBuild = ''
-    rm -fR $out
-  '';
-
-  preCheck = ''
-    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib
-  '';
-
-  postInstall = ''
-    mkdir -p $python/share
-    mv $out/share/opt-viewer $python/share/opt-viewer
-    moveToOutput "bin/llvm-config*" "$dev"
-    substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
-      --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \
-      --replace "$out/bin/llvm-config" "$dev/bin/llvm-config"
-    substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \
-      --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")'
-  ''
-  + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
-    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
-    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
-  ''
-  + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
-    cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
-  '';
-
-  inherit doCheck;
-
-  checkTarget = "check-all";
-
-  requiredSystemFeatures = [ "big-parallel" ];
-  meta = llvm_meta // {
-    homepage = "https://llvm.org/";
-    description = "A collection of modular and reusable compiler and toolchain technologies";
-    longDescription = ''
-      The LLVM Project is a collection of modular and reusable compiler and
-      toolchain technologies. Despite its name, LLVM has little to do with
-      traditional virtual machines. The name "LLVM" itself is not an acronym; it
-      is the full name of the project.
-      LLVM began as a research project at the University of Illinois, with the
-      goal of providing a modern, SSA-based compilation strategy capable of
-      supporting both static and dynamic compilation of arbitrary programming
-      languages. Since then, LLVM has grown to be an umbrella project consisting
-      of a number of subprojects, many of which are being used in production by
-      a wide variety of commercial and open source projects as well as being
-      widely used in academic research. Code in the LLVM project is licensed
-      under the "Apache 2.0 License with LLVM exceptions".
-    '';
-  };
-} // lib.optionalAttrs enableManpages {
-  pname = "llvm-manpages";
-
-  buildPhase = ''
-    make docs-llvm-man
-  '';
-
-  propagatedBuildInputs = [];
-
-  installPhase = ''
-    make -C docs install
-  '';
-
-  postPatch = null;
-  postInstall = null;
-
-  outputs = [ "out" ];
-
-  doCheck = false;
-
-  meta = llvm_meta // {
-    description = "man pages for LLVM ${version}";
-  };
-})
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs-polly.patch b/nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs-polly.patch
deleted file mode 100644
index fff2d4953e94..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs-polly.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
-index 9939097f743e..8cc538da912a 100644
---- a/tools/polly/CMakeLists.txt
-+++ b/tools/polly/CMakeLists.txt
-@@ -2,7 +2,11 @@
- if (NOT DEFINED LLVM_MAIN_SRC_DIR)
-   project(Polly)
-   cmake_minimum_required(VERSION 3.4.3)
-+endif()
-+
-+include(GNUInstallDirs)
- 
-+if (NOT DEFINED LLVM_MAIN_SRC_DIR)
-   # Where is LLVM installed?
-   find_package(LLVM CONFIG REQUIRED)
-   set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
-@@ -145,14 +149,14 @@ include_directories(
- 
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN ".svn" EXCLUDE
-     )
- 
-   install(DIRECTORY ${POLLY_BINARY_DIR}/include/
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     FILES_MATCHING
-     PATTERN "*.h"
-     PATTERN "CMakeFiles" EXCLUDE
-diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
-index 211f95512717..f9e04a4844b6 100644
---- a/tools/polly/cmake/CMakeLists.txt
-+++ b/tools/polly/cmake/CMakeLists.txt
-@@ -79,18 +79,18 @@ file(GENERATE
- 
- # Generate PollyConfig.cmake for the install tree.
- unset(POLLY_EXPORTS)
--set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-+set(POLLY_INSTALL_PREFIX "")
- set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
--set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
--set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
-+set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
-+set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
- if (POLLY_BUNDLED_ISL)
-   set(POLLY_CONFIG_INCLUDE_DIRS
--    "${POLLY_INSTALL_PREFIX}/include"
--    "${POLLY_INSTALL_PREFIX}/include/polly"
-+    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
-+    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
-     )
- else()
-   set(POLLY_CONFIG_INCLUDE_DIRS
--    "${POLLY_INSTALL_PREFIX}/include"
-+    "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
-     ${ISL_INCLUDE_DIRS}
-     )
- endif()
-@@ -100,12 +100,12 @@ endif()
- foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
-   get_target_property(tgt_type ${tgt} TYPE)
-   if (tgt_type STREQUAL "EXECUTABLE")
--    set(tgt_prefix "bin/")
-+    set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
-   else()
--    set(tgt_prefix "lib/")
-+    set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
-   endif()
- 
--  set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
-+  set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
-   file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
- 
-   if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
-diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
-index 86de6f10686e..91f30891ccbe 100644
---- a/tools/polly/cmake/polly_macros.cmake
-+++ b/tools/polly/cmake/polly_macros.cmake
-@@ -44,8 +44,8 @@ macro(add_polly_library name)
-   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
-     install(TARGETS ${name}
-       EXPORT LLVMExports
--      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
-+	  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-   endif()
-   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
- endmacro(add_polly_library)
-diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
-index 1039079cb49c..28b499ae1e9e 100644
---- a/tools/polly/lib/External/CMakeLists.txt
-+++ b/tools/polly/lib/External/CMakeLists.txt
-@@ -275,7 +275,7 @@ if (POLLY_BUNDLED_ISL)
-     install(DIRECTORY
-       ${ISL_SOURCE_DIR}/include/
-       ${ISL_BINARY_DIR}/include/
--      DESTINATION include/polly
-+      DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
-       FILES_MATCHING
-       PATTERN "*.h"
-       PATTERN "CMakeFiles" EXCLUDE
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs.patch
deleted file mode 100644
index 29df98a693f0..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/llvm/gnu-install-dirs.patch
+++ /dev/null
@@ -1,417 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 247ad36d3845..815e2c4ba955 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -269,15 +269,21 @@ if (CMAKE_BUILD_TYPE AND
-   message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
- endif()
- 
-+include(GNUInstallDirs)
-+
- set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
- 
--set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
-+set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
-+    "Path for binary subdirectory (defaults to 'bin')")
- mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
- 
- set(LLVM_UTILS_INSTALL_DIR "${LLVM_TOOLS_INSTALL_DIR}" CACHE STRING
-     "Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)")
- mark_as_advanced(LLVM_UTILS_INSTALL_DIR)
- 
-+set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING
-+	"Path for CMake subdirectory (defaults to lib/cmake/llvm)" )
-+
- # They are used as destination of target generators.
- set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
- set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
-@@ -559,9 +565,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
- option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
- option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
- 
--set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
-+set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html"
-     CACHE STRING "Doxygen-generated HTML documentation install directory")
--set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
-+set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html"
-     CACHE STRING "OCamldoc-generated HTML documentation install directory")
- 
- option (LLVM_BUILD_EXTERNAL_COMPILER_RT
-@@ -1107,7 +1113,7 @@ endif()
- 
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-   install(DIRECTORY include/llvm include/llvm-c
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     COMPONENT llvm-headers
-     FILES_MATCHING
-     PATTERN "*.def"
-@@ -1119,7 +1125,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-     )
- 
-   install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c
--    DESTINATION include
-+    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-     COMPONENT llvm-headers
-     FILES_MATCHING
-     PATTERN "*.def"
-@@ -1134,13 +1140,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
- 
-   if (LLVM_INSTALL_MODULEMAPS)
-     install(DIRECTORY include/llvm include/llvm-c
--            DESTINATION include
-+            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-             COMPONENT llvm-headers
-             FILES_MATCHING
-             PATTERN "module.modulemap"
-             )
-     install(FILES include/llvm/module.install.modulemap
--            DESTINATION include/llvm
-+            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm
-             COMPONENT llvm-headers
-             RENAME "module.extern.modulemap"
-             )
-diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
-index b74adc11ade9..a5aa258cde30 100644
---- a/cmake/modules/AddLLVM.cmake
-+++ b/cmake/modules/AddLLVM.cmake
-@@ -766,9 +766,9 @@ macro(add_llvm_library name)
- 
-       install(TARGETS ${name}
-               ${export_to_llvmexports}
--              LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
--              ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
--              RUNTIME DESTINATION bin COMPONENT ${name})
-+              LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
-+              ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
-+              RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${name})
- 
-       if (NOT LLVM_ENABLE_IDE)
-         add_llvm_install_targets(install-${name}
-@@ -981,7 +981,7 @@ function(process_llvm_pass_plugins)
-           "set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})")
-       install(FILES
-           ${llvm_cmake_builddir}/LLVMConfigExtensions.cmake
--          DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
-+          DESTINATION ${LLVM_INSTALL_CMAKE_DIR}
-           COMPONENT cmake-exports)
- 
-       set(ExtensionDef "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def")
-@@ -1201,7 +1201,7 @@ macro(add_llvm_example name)
-   endif()
-   add_llvm_executable(${name} ${ARGN})
-   if( LLVM_BUILD_EXAMPLES )
--    install(TARGETS ${name} RUNTIME DESTINATION examples)
-+    install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
-   endif()
-   set_target_properties(${name} PROPERTIES FOLDER "Examples")
- endmacro(add_llvm_example name)
-@@ -1819,7 +1819,7 @@ function(llvm_install_library_symlink name dest type)
-   set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
-   set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
- 
--  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
-+  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-   if(WIN32 AND "${type}" STREQUAL "SHARED")
-     set(output_dir bin)
-   endif()
-@@ -1836,7 +1836,7 @@ function(llvm_install_library_symlink name dest type)
-   endif()
- endfunction()
- 
--function(llvm_install_symlink name dest)
-+function(llvm_install_symlink name dest output_dir)
-   cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
-   foreach(path ${CMAKE_MODULE_PATH})
-     if(EXISTS ${path}/LLVMInstallSymlink.cmake)
-@@ -1859,7 +1859,7 @@ function(llvm_install_symlink name dest)
-   set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
- 
-   install(SCRIPT ${INSTALL_SYMLINK}
--          CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
-+          CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
-           COMPONENT ${component})
- 
-   if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
-@@ -1942,7 +1942,8 @@ function(add_llvm_tool_symlink link_name target)
-     endif()
- 
-     if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
--      llvm_install_symlink(${link_name} ${target})
-+      GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR)
-+      llvm_install_symlink(${link_name} ${target} ${output_dir})
-     endif()
-   endif()
- endfunction()
-@@ -2064,9 +2065,9 @@ function(llvm_setup_rpath name)
- 
-   if (APPLE)
-     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
--    set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-+    set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-   elseif(UNIX)
--    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-+    set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
-       set_property(TARGET ${name} APPEND_STRING PROPERTY
-                    LINK_FLAGS " -Wl,-z,origin ")
-diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
-index 554046b20edf..4d1ad980641e 100644
---- a/cmake/modules/AddOCaml.cmake
-+++ b/cmake/modules/AddOCaml.cmake
-@@ -144,9 +144,9 @@ function(add_ocaml_library name)
-   endforeach()
- 
-   if( APPLE )
--    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
-+    set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
-   elseif( UNIX )
--    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
-+    set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
-   endif()
-   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
- 
-diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
-index b5babb30abcf..190b1222a9f9 100644
---- a/cmake/modules/AddSphinxTarget.cmake
-+++ b/cmake/modules/AddSphinxTarget.cmake
-@@ -84,7 +84,7 @@ function (add_sphinx_target builder project)
-         endif()
-       elseif (builder STREQUAL html)
-         string(TOUPPER "${project}" project_upper)
--        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html"
-+        set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html"
-             CACHE STRING "HTML documentation install directory for ${project}")
- 
-         # '/.' indicates: copy the contents of the directory directly into
-diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
-index 4b8879f65fe4..f01920bcc60f 100644
---- a/cmake/modules/CMakeLists.txt
-+++ b/cmake/modules/CMakeLists.txt
-@@ -1,4 +1,4 @@
--set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
-+set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
- set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
- 
- # First for users who use an installed LLVM, create the LLVMExports.cmake file.
-@@ -108,13 +108,13 @@ foreach(p ${_count})
-   set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
- get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
- endforeach(p)
--set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
-+set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
- set(LLVM_CONFIG_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
- set(LLVM_CONFIG_MAIN_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
--set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
-+set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
- set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
- set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
--set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
-+set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
- 
- # Generate a default location for lit
- if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS)
-diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
-index 09fed8085c23..aa79f192abf0 100644
---- a/cmake/modules/LLVMInstallSymlink.cmake
-+++ b/cmake/modules/LLVMInstallSymlink.cmake
-@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
-     set(LINK_OR_COPY copy)
-   endif()
- 
--  set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
-+  set(bindir "${DESTDIR}${outdir}/")
- 
-   message(STATUS "Creating ${name}")
- 
-diff --git a/docs/CMake.rst b/docs/CMake.rst
-index 1f908d3e95b1..1315e0aa40e1 100644
---- a/docs/CMake.rst
-+++ b/docs/CMake.rst
-@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
- **LLVM_LIBDIR_SUFFIX**:STRING
-   Extra suffix to append to the directory where libraries are to be
-   installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64``
--  to install libraries to ``/usr/lib64``.
-+  to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``.
- 
- **CMAKE_C_FLAGS**:STRING
-   Extra flags to use when compiling C source files.
-@@ -516,8 +516,8 @@ LLVM-specific variables
- 
- **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
-   The path to install Doxygen-generated HTML documentation to. This path can
--  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
--  `share/doc/llvm/doxygen-html`.
-+  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
-+  `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`.
- 
- **LLVM_ENABLE_SPHINX**:BOOL
-   If specified, CMake will search for the ``sphinx-build`` executable and will make
-@@ -548,13 +548,33 @@ LLVM-specific variables
- 
- **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
-   The path to install Sphinx-generated HTML documentation to. This path can
--  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
--  `share/doc/llvm/html`.
-+  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
-+  `${CMAKE_INSTALL_DOCDIR}/${project}/html`.
- 
- **LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
-   The path to install OCamldoc-generated HTML documentation to. This path can
--  either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
--  `share/doc/llvm/ocaml-html`.
-+  either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
-+  `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`.
-+
-+**CMAKE_INSTALL_BINDIR**:STRING
-+  The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `bin`.
-+
-+**CMAKE_INSTALL_LIBDIR**:STRING
-+  The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `lib`.
-+
-+**CMAKE_INSTALL_INCLUDEDIR**:STRING
-+  The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `include`.
-+
-+**CMAKE_INSTALL_DOCDIR**:STRING
-+  The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `share/doc`.
-+
-+**CMAKE_INSTALL_MANDIR**:STRING
-+  The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``.
-+  Defaults to `share/man`.
- 
- **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
-   macOS Only: If enabled CMake will generate a target named
-@@ -752,9 +772,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
- 
- This file is available in two different locations.
- 
--* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
--  ``<INSTALL_PREFIX>`` is the install prefix of an installed version of LLVM.
--  On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
-+* ``<LLVM_INSTALL_PACKAGE_DIR>LLVMConfig.cmake`` where
-+  ``<LLVM_INSTALL_PACKAGE_DIR>`` is the location where LLVM CMake modules are
-+  installed as part of an installed version of LLVM. This is typically
-+  ``cmake/llvm/`` within the lib directory. On Linux, this is typically
-+  ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
- 
- * ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
-   ``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this is only
-diff --git a/examples/Bye/CMakeLists.txt b/examples/Bye/CMakeLists.txt
-index bb96edb4b4bf..678c22fb43c8 100644
---- a/examples/Bye/CMakeLists.txt
-+++ b/examples/Bye/CMakeLists.txt
-@@ -14,6 +14,6 @@ if (NOT WIN32)
-     BUILDTREE_ONLY
-    )
- 
--  install(TARGETS ${name} RUNTIME DESTINATION examples)
-+  install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
-   set_target_properties(${name} PROPERTIES FOLDER "Examples")
- endif()
-diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt
-index b46319f24fc8..2feabd1954e4 100644
---- a/include/llvm/CMakeLists.txt
-+++ b/include/llvm/CMakeLists.txt
-@@ -5,5 +5,5 @@ add_subdirectory(Frontend)
- # If we're doing an out-of-tree build, copy a module map for generated
- # header files into the build area.
- if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
--  configure_file(module.modulemap.build module.modulemap COPYONLY)
-+  configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
- endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
-diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
-index 63cef75368b7..6295478b1f3d 100644
---- a/tools/llvm-config/BuildVariables.inc.in
-+++ b/tools/llvm-config/BuildVariables.inc.in
-@@ -23,6 +23,10 @@
- #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
- #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
- #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
-+#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@"
-+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
-+#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
-+#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@"
- #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
- #define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
- #define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index 7e74b7c90816..f185e9283f83 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -358,12 +358,26 @@ int main(int argc, char **argv) {
-         ("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
-   } else {
-     ActivePrefix = CurrentExecPrefix;
--    ActiveIncludeDir = ActivePrefix + "/include";
--    SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
--    sys::fs::make_absolute(ActivePrefix, path);
--    ActiveBinDir = std::string(path.str());
--    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
--    ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
-+    {
-+      SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR));
-+      sys::fs::make_absolute(ActivePrefix, path);
-+      ActiveIncludeDir = std::string(path.str());
-+    }
-+    {
-+      SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR));
-+      sys::fs::make_absolute(ActivePrefix, path);
-+      ActiveBinDir = std::string(path.str());
-+    }
-+    {
-+      SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX));
-+      sys::fs::make_absolute(ActivePrefix, path);
-+      ActiveLibDir = std::string(path.str());
-+    }
-+    {
-+      SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR));
-+      sys::fs::make_absolute(ActivePrefix, path);
-+      ActiveCMakeDir = std::string(path.str());
-+    }
-     ActiveIncludeOption = "-I" + ActiveIncludeDir;
-   }
- 
-diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
-index 2963f97cad88..69d66c9c9ca1 100644
---- a/tools/lto/CMakeLists.txt
-+++ b/tools/lto/CMakeLists.txt
-@@ -25,7 +25,7 @@ add_llvm_library(LTO SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES} DEPENDS
-     intrinsics_gen)
- 
- install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
--  DESTINATION include/llvm-c
-+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
-   COMPONENT LTO)
- 
- if (APPLE)
-diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt
-index ead73ec13a8f..250362021f17 100644
---- a/tools/opt-viewer/CMakeLists.txt
-+++ b/tools/opt-viewer/CMakeLists.txt
-@@ -8,7 +8,7 @@ set (files
- 
- foreach (file ${files})
-   install(PROGRAMS ${file}
--    DESTINATION share/opt-viewer
-+    DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer
-     COMPONENT opt-viewer)
- endforeach (file)
- 
-diff --git a/tools/remarks-shlib/CMakeLists.txt b/tools/remarks-shlib/CMakeLists.txt
-index e948496c603a..1f4df8a98b10 100644
---- a/tools/remarks-shlib/CMakeLists.txt
-+++ b/tools/remarks-shlib/CMakeLists.txt
-@@ -11,7 +11,7 @@ set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/Remarks.exports)
- add_llvm_library(Remarks SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES})
- 
- install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/Remarks.h
--  DESTINATION include/llvm-c
-+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
-   COMPONENT Remarks)
- 
- if (APPLE)
diff --git a/nixpkgs/pkgs/development/compilers/llvm/11/openmp/default.nix b/nixpkgs/pkgs/development/compilers/llvm/11/openmp/default.nix
deleted file mode 100644
index 6c2dd9ac9577..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/11/openmp/default.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ lib
-, stdenv
-, llvm_meta
-, fetch
-, fetchpatch
-, cmake
-, llvm
-, targetLlvm
-, perl
-, version
-}:
-
-stdenv.mkDerivation rec {
-  pname = "openmp";
-  inherit version;
-
-  src = fetch pname "0bh5cswgpc79awlq8j5i7hp355adaac7s6zaz0zwp6mkflxli1yi";
-
-  patches = [
-    # Fix compilation on aarch64-darwin, remove after the next release.
-    (fetchpatch {
-      url = "https://github.com/llvm/llvm-project/commit/7b5254223acbf2ef9cd278070c5a84ab278d7e5f.patch";
-      sha256 = "sha256-A+9/IVIoazu68FK5H5CiXcOEYe1Hpp4xTx2mIw7m8Es=";
-      stripLen = 1;
-    })
-  ];
-
-  nativeBuildInputs = [ cmake perl ];
-  buildInputs = [
-    (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm)
-  ];
-
-  meta = llvm_meta // {
-    homepage = "https://openmp.llvm.org/";
-    description = "Support for the OpenMP language";
-    longDescription = ''
-      The OpenMP subproject of LLVM contains the components required to build an
-      executable OpenMP program that are outside the compiler itself.
-      Contains the code for the runtime library against which code compiled by
-      "clang -fopenmp" must be linked before it can run and the library that
-      supports offload to target devices.
-    '';
-    # "All of the code is dual licensed under the MIT license and the UIUC
-    # License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/default.nix
index 4b2bdad454ae..e11a1b397e76 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, llvm_meta, version, fetch
-, cmake, python3, xcbuild, libllvm, linuxHeaders, libcxxabi, libxcrypt
+, cmake, python3, xcbuild, libllvm, linuxHeaders, libxcrypt
 , doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD
 }:
 
@@ -20,8 +20,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ cmake python3 libllvm.dev ]
     ++ lib.optional stdenv.isDarwin xcbuild.xcrun;
   buildInputs =
-    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders
-    ++ lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
+    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders;
 
   env.NIX_CFLAGS_COMPILE = toString [
     "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
@@ -113,6 +112,7 @@ stdenv.mkDerivation {
   meta = llvm_meta // {
     homepage = "https://compiler-rt.llvm.org/";
     description = "Compiler runtime libraries";
+    mainProgram = "hwasan_symbolize";
     longDescription = ''
       The compiler-rt project provides highly tuned implementations of the
       low-level code generator support routines like "__fixunsdfdi" and other
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/default.nix
index a38e35e91f6d..bd87dc5f34f0 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/default.nix
@@ -109,7 +109,6 @@ let
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
       extraPackages = [
-        libcxx.cxxabi
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = mkExtraBuildCommands cc;
@@ -163,7 +162,6 @@ let
       libcxx = targetLlvmLibraries.libcxx;
       bintools = bintools';
       extraPackages = [
-        libcxx.cxxabi
         targetLlvmLibraries.compiler-rt
       ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
         targetLlvmLibraries.libunwind
@@ -257,24 +255,13 @@ let
 
     libcxx = callPackage ./libcxx {
       inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
-    };
-
-    libcxxabi = callPackage ./libcxxabi {
-      inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
+      stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
     libunwind = callPackage ./libunwind {
       inherit llvm_meta;
       inherit (buildLlvmTools) llvm;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
+      stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
     openmp = callPackage ./openmp {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/default.nix
index 67e2aed35cb6..7c6174711456 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/default.nix
@@ -1,68 +1,128 @@
-{ lib, stdenv, llvm_meta, fetch, cmake, python3, llvm, fixDarwinDylibNames, version
-, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi
-, libcxxabi, libcxxrt
+{ lib, stdenv, llvm_meta
+, fetchFromGitHub, runCommand, substitute
+, cmake, lndir, ninja, python3, fixDarwinDylibNames, version
+, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else null
+, libcxxrt, libunwind
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
-assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi";
+# external cxxabi is not supported on Darwin as the build will not link libcxx
+# properly and not re-export the cxxabi symbols into libcxx
+# https://github.com/NixOS/nixpkgs/issues/166205
+# https://github.com/NixOS/nixpkgs/issues/269548
+assert cxxabi == null || !stdenv.hostPlatform.isDarwin;
+let
+  basename = "libcxx";
+  cxxabiName = "lib${if cxxabi == null then "cxxabi" else cxxabi.libName}";
+  runtimes = [ "libcxx" ] ++ lib.optional (cxxabi == null) "libcxxabi";
 
-stdenv.mkDerivation {
-  pname = "libcxx";
-  inherit version;
+  # Note: useLLVM is likely false for Darwin but true under pkgsLLVM
+  useLLVM = stdenv.hostPlatform.useLLVM or false;
 
-  src = fetch "libcxx" "05cx39ldlxchck454lgfly1xj0c7x65iyx4hqhiihrlg6p6qj854";
+  cxxabiCMakeFlags = lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    "-DLIBCXXABI_USE_COMPILER_RT=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
 
-  postUnpack = ''
-    unpackFile ${libcxxabi.src}
-    mv libcxxabi-* libcxxabi
-    unpackFile ${llvm.src}
-    mv llvm-* llvm
-  '';
+  cxxCMakeFlags = [
+    "-DLIBCXX_CXX_ABI=${cxxabiName}"
+  ] ++ lib.optionals (cxxabi != null) [
+    "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${lib.getDev cxxabi}/include"
+  ] ++ lib.optionals (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) [
+    "-DLIBCXX_HAS_MUSL_LIBC=1"
+  ] ++ lib.optionals useLLVM [
+    "-DLIBCXX_USE_COMPILER_RT=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXX_ENABLE_THREADS=OFF"
+    "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
+    "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXX_ENABLE_SHARED=OFF"
+  ];
+
+  cmakeFlags = [
+    "-DLLVM_ENABLE_RUNTIMES=${lib.concatStringsSep ";" runtimes}"
+  ] ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib,
+    # but that does not appear to be the case for example when building
+    # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc).
+    "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib"
+    "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DCMAKE_C_COMPILER_WORKS=ON"
+    "-DCMAKE_CXX_COMPILER_WORKS=ON"
+    "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
+  ] ++ cxxCMakeFlags
+    ++ lib.optionals (cxxabi == null) cxxabiCMakeFlags;
+
+in
+
+stdenv.mkDerivation rec {
+  pname = basename;
+  inherit version cmakeFlags;
+
+  src = fetchFromGitHub {
+    owner = "llvm";
+    repo = "llvm-project";
+    rev = "refs/tags/llvmorg-${version}";
+    sparseCheckout = [
+      "libcxx"
+      "libcxxabi"
+      "llvm/cmake"
+      "llvm/utils"
+      "runtimes"
+    ];
+    hash = "sha256-etxgXIdWxMTmbZ83Hsc0w6Jt5OSQSUEPVEWqLkHsNBY=";
+  };
 
   outputs = [ "out" "dev" ];
 
   patches = [
-    ./gnu-install-dirs.patch
+    (substitute {
+      src = ../../common/libcxxabi/wasm.patch;
+      replacements = [
+        "--replace-fail" "/cmake/" "/llvm/cmake/"
+      ];
+    })
   ] ++ lib.optionals stdenv.hostPlatform.isMusl [
-    ../../common/libcxx/libcxx-0001-musl-hacks.patch
+    (substitute {
+      src = ../../common/libcxx/libcxx-0001-musl-hacks.patch;
+      replacements = [
+        "--replace-fail" "/include/" "/libcxx/include/"
+      ];
+    })
   ];
 
+  postPatch = ''
+    cd runtimes
+  '';
+
   preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
     patchShebangs utils/cat_files.py
   '';
 
-  nativeBuildInputs = [ cmake python3 ]
-    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
+  nativeBuildInputs = [ cmake ninja python3 ]
+    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames
+    ++ lib.optional (cxxabi != null) lndir;
 
-  buildInputs = [ cxxabi ];
+  buildInputs = [ cxxabi ]
+    ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [ libunwind ];
 
-  cmakeFlags = [
-    "-DLIBCXX_CXX_ABI=${cxxabi.pname}"
-  ] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
-    ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
-    ++ lib.optionals stdenv.hostPlatform.isWasm [
-      "-DLIBCXX_ENABLE_THREADS=OFF"
-      "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
-      "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
-    ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
-
-  preInstall = lib.optionalString (stdenv.isDarwin) ''
-    for file in lib/*.dylib; do
-      if [ -L "$file" ]; then continue; fi
-
-      baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))
-      installName="$out/lib/$baseName"
-      abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/')
-
-      for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do
-        ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file
-      done
-    done
+  # libc++.so is a linker script which expands to multiple libraries,
+  # libc++.so.1 and libc++abi.so or the external cxxabi. ld-wrapper doesn't
+  # support linker scripts so the external cxxabi needs to be symlinked in
+  postInstall = lib.optionalString (cxxabi != null) ''
+    lndir ${lib.getDev cxxabi}/include $out/include/c++/v1
+    lndir ${lib.getLib cxxabi}/lib $out/lib
   '';
 
   passthru = {
     isLLVM = true;
-    inherit cxxabi;
   };
 
   meta = llvm_meta // {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/gnu-install-dirs.patch
deleted file mode 100644
index 1f9de00a9d56..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/12/libcxx/gnu-install-dirs.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 9bf1a02f0908..612cd4aab76c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -28,6 +28,8 @@ set(LIBCXX_BINARY_INCLUDE_DIR "${LIBCXX_BINARY_DIR}/include/c++build")
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXX_STANDALONE_BUILD)
-   project(libcxx CXX C)
- 
-+  include(GNUInstallDirs)
-+
-   set(PACKAGE_NAME libcxx)
-   set(PACKAGE_VERSION 12.0.0)
-   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
-@@ -402,7 +404,7 @@ endif ()
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-   set(LIBCXX_HEADER_DIR ${LLVM_BINARY_DIR})
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-   if(LIBCXX_LIBDIR_SUBDIR)
-     string(APPEND LIBCXX_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
-     string(APPEND LIBCXX_INSTALL_LIBRARY_DIR /${LIBCXX_LIBDIR_SUBDIR})
-@@ -410,11 +412,11 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
- elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
-   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
-   set(LIBCXX_HEADER_DIR  ${LLVM_BINARY_DIR})
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
- else()
-   set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
-   set(LIBCXX_HEADER_DIR  ${CMAKE_BINARY_DIR})
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX})
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX})
- endif()
- 
- file(MAKE_DIRECTORY "${LIBCXX_BINARY_INCLUDE_DIR}")
-diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
-index 5d2764e870e9..bb1ec5de6ca2 100644
---- a/cmake/Modules/HandleLibCXXABI.cmake
-+++ b/cmake/Modules/HandleLibCXXABI.cmake
-@@ -63,7 +63,7 @@ macro(setup_abi_lib abidefines abishared abistatic abifiles abidirs)
- 
-         if (LIBCXX_INSTALL_HEADERS)
-           install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
--            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dstdir}
-+            DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}
-             COMPONENT cxx-headers
-             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-             )
-diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
-index 29a317b8ae9a..4747263cfd1b 100644
---- a/include/CMakeLists.txt
-+++ b/include/CMakeLists.txt
-@@ -252,7 +252,7 @@ if (LIBCXX_INSTALL_HEADERS)
-   foreach(file ${files})
-     get_filename_component(dir ${file} DIRECTORY)
-     install(FILES ${file}
--      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir}
-+      DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dir}
-       COMPONENT cxx-headers
-       PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-     )
-@@ -260,7 +260,7 @@ if (LIBCXX_INSTALL_HEADERS)
- 
-   # Install the generated header as __config.
-   install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
--    DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1
-+    DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}${CMAKE_INSTALL_INCLUDEDIR}/c++/v1
-     PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-     RENAME __config
-     COMPONENT cxx-headers)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 9965104cb5b2..9b55dbb1d822 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -352,21 +352,21 @@ if (LIBCXX_INSTALL_SHARED_LIBRARY)
-   install(TARGETS cxx_shared
-     ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
-     LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
--    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
-+    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
- endif()
- 
- if (LIBCXX_INSTALL_STATIC_LIBRARY)
-   install(TARGETS cxx_static
-     ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
-     LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
--    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
-+    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
- endif()
- 
- if(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY)
-   install(TARGETS cxx_experimental
-     LIBRARY DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
-     ARCHIVE DESTINATION ${LIBCXX_INSTALL_PREFIX}${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
--    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}bin COMPONENT cxx)
-+    RUNTIME DESTINATION ${LIBCXX_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
- endif()
- 
- # NOTE: This install command must go after the cxx install command otherwise
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/default.nix
deleted file mode 100644
index 5ebb77ad3880..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/default.nix
+++ /dev/null
@@ -1,87 +0,0 @@
-{ lib, stdenv, llvm_meta, cmake, python3, fetch, libcxx, libunwind, llvm, version
-, enableShared ? !stdenv.hostPlatform.isStatic
-, standalone ? stdenv.hostPlatform.useLLVM or false
-, withLibunwind ? !stdenv.isDarwin && !stdenv.hostPlatform.isWasm
-}:
-
-stdenv.mkDerivation {
-  pname = "libcxxabi";
-  inherit version;
-
-  src = fetch "libcxxabi" "1l4idd8npbkm168d26kqn529yv3npsd8f2dm8a7iwyknj7iyivw8";
-
-  outputs = [ "out" "dev" ];
-
-  postUnpack = ''
-    unpackFile ${libcxx.src}
-    mv libcxx-* libcxx
-    unpackFile ${llvm.src}
-    mv llvm-* llvm
-  '' + lib.optionalString stdenv.isDarwin ''
-    export TRIPLE=x86_64-apple-darwin
-  '' + lib.optionalString stdenv.hostPlatform.isMusl ''
-    patch -p1 -d libcxx -i ${../../common/libcxx/libcxx-0001-musl-hacks.patch}
-  '' + lib.optionalString stdenv.hostPlatform.isWasm ''
-    patch -p1 -d llvm -i ${../../common/libcxxabi/wasm.patch}
-  '';
-
-  patches = [
-    ./gnu-install-dirs.patch
-  ];
-
-  nativeBuildInputs = [ cmake python3 ];
-  buildInputs = lib.optional withLibunwind libunwind;
-
-  cmakeFlags = lib.optionals standalone [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
-
-  preInstall = lib.optionalString stdenv.isDarwin ''
-    for file in lib/*.dylib; do
-      if [ -L "$file" ]; then continue; fi
-
-      # Fix up the install name. Preserve the basename, just replace the path.
-      installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))"
-
-      # this should be done in CMake, but having trouble figuring out
-      # the magic combination of necessary CMake variables
-      # if you fancy a try, take a look at
-      # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
-      ${stdenv.cc.targetPrefix}install_name_tool -id $installName $file
-
-      # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes
-      # libcxxabi to sometimes link against a different version of itself.
-      # Here we simply make that second reference point to ourselves.
-      for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do
-        ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file
-      done
-    done
-  '';
-
-  postInstall = ''
-    mkdir -p "$dev/include"
-    install -m 644 ../include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include"
-  '';
-
-  passthru = {
-    libName = "c++abi";
-  };
-
-  meta = llvm_meta // {
-    homepage = "https://libcxxabi.llvm.org/";
-    description = "Provides C++ standard library support";
-    longDescription = ''
-      libc++abi is a new implementation of low level support for a standard C++ library.
-    '';
-    # "All of the code in libc++abi is dual licensed under the MIT license and
-    # the UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/gnu-install-dirs.patch
deleted file mode 100644
index b49b1685940f..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/12/libcxxabi/gnu-install-dirs.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 426c855288fc..a9812a994f53 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -27,6 +27,8 @@ set(LIBCXXABI_LIBCXX_PATH "${CMAKE_CURRENT_LIST_DIR}/../libcxx" CACHE PATH
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXXABI_STANDALONE_BUILD)
-   project(libcxxabi CXX C)
- 
-+  include(GNUInstallDirs)
-+
-   set(PACKAGE_NAME libcxxabi)
-   set(PACKAGE_VERSION 11.0.0)
-   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
-@@ -180,17 +182,17 @@ set(CMAKE_MODULE_PATH
- 
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-   if(LIBCXX_LIBDIR_SUBDIR)
-     string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
-     string(APPEND LIBCXXABI_INSTALL_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
-   endif()
- elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
-   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
- else()
-   set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX})
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX})
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX})
- endif()
- 
- set(LIBCXXABI_INSTALL_PREFIX "" CACHE STRING "Define libc++abi destination prefix.")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/libunwind/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/libunwind/default.nix
index 8ed246876959..95e0962b4689 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/libunwind/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/libunwind/default.nix
@@ -9,10 +9,8 @@ stdenv.mkDerivation rec {
   src = fetch pname "192ww6n81lj2mb9pj4043z79jp3cf58a9c2qrxjwm5c3a64n1shb";
 
   postUnpack = ''
-    unpackFile ${libcxx.src}
-    mv libcxx-* libcxx
-    unpackFile ${llvm.src}
-    mv llvm-* llvm
+    ln -s ${libcxx.src}/libcxx .
+    ln -s ${libcxx.src}/llvm .
   '';
 
   patches = [
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/llvm/default.nix
index d75ce3b3b052..4745345a3f71 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/12/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/12/llvm/default.nix
@@ -184,6 +184,10 @@ in stdenv.mkDerivation (rec {
         --replace 'Starting llvm::' 'Starting {{.*}}' \
         --replace 'Finished llvm::' 'Finished {{.*}}'
     done
+  '' + ''
+    # gcc-13 fix
+    sed -i '/#include <string>/i#include <cstdint>' \
+      include/llvm/DebugInfo/Symbolize/DIPrinter.h
   '';
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/compilers/llvm/13/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/13/compiler-rt/default.nix
index b6a9c13ba943..3c83e4e58a17 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/13/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/13/compiler-rt/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, llvm_meta, version, src
-, cmake, python3, xcbuild, libllvm, linuxHeaders, libcxxabi, libxcrypt
+, cmake, python3, xcbuild, libllvm, linuxHeaders, libxcrypt
 , doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD
 }:
 
@@ -22,8 +22,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ cmake python3 libllvm.dev ]
     ++ lib.optional stdenv.isDarwin xcbuild.xcrun;
   buildInputs =
-    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders
-    ++ lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
+    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders;
 
   env.NIX_CFLAGS_COMPILE = toString [
     "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
@@ -120,6 +119,7 @@ stdenv.mkDerivation {
   meta = llvm_meta // {
     homepage = "https://compiler-rt.llvm.org/";
     description = "Compiler runtime libraries";
+    mainProgram = "hwasan_symbolize";
     longDescription = ''
       The compiler-rt project provides highly tuned implementations of the
       low-level code generator support routines like "__fixunsdfdi" and other
diff --git a/nixpkgs/pkgs/development/compilers/llvm/13/default.nix b/nixpkgs/pkgs/development/compilers/llvm/13/default.nix
index c811b24c48ef..cd96231e62c3 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/13/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/13/default.nix
@@ -137,7 +137,6 @@ in let
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
       extraPackages = [
-        libcxx.cxxabi
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = mkExtraBuildCommands cc;
@@ -203,7 +202,6 @@ in let
       libcxx = targetLlvmLibraries.libcxx;
       bintools = bintools';
       extraPackages = [
-        libcxx.cxxabi
         targetLlvmLibraries.compiler-rt
       ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
         targetLlvmLibraries.libunwind
@@ -297,28 +295,8 @@ in let
 
     libcxx = callPackage ./libcxx {
       inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else (
-                 # libcxx >= 13 does not build on gcc9
-                 if stdenv.cc.isGNU && lib.versionOlder stdenv.cc.version "10"
-                 then pkgs.gcc10Stdenv
-                 else stdenv
-               );
-    };
-
-    libcxxabi = let
-      stdenv_ = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
-      cxx-headers = callPackage ./libcxx {
-        inherit llvm_meta;
-        stdenv = stdenv_;
-        headersOnly = true;
-      };
-    in callPackage ./libcxxabi {
-      stdenv = stdenv_;
-      inherit llvm_meta cxx-headers;
+      stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
+      monorepoSrc = src;
     };
 
     libunwind = callPackage ./libunwind {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/13/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/13/libcxx/default.nix
index 2974fc80e191..b39b4f37ff1c 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/13/libcxx/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/13/libcxx/default.nix
@@ -1,80 +1,124 @@
-{ lib, stdenv, llvm_meta, src, cmake, python3, fixDarwinDylibNames, version
-, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi
-, libcxxabi, libcxxrt
+{ lib, stdenv, llvm_meta
+, monorepoSrc, runCommand, substitute
+, cmake, lndir, ninja, python3, fixDarwinDylibNames, version
+, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else null
+, libcxxrt, libunwind
 , enableShared ? !stdenv.hostPlatform.isStatic
-
-# If headersOnly is true, the resulting package would only include the headers.
-# Use this to break the circular dependency between libcxx and libcxxabi.
-#
-# Some context:
-# https://reviews.llvm.org/rG1687f2bbe2e2aaa092f942d4a97d41fad43eedfb
-, headersOnly ? false
 }:
 
-assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi";
+# external cxxabi is not supported on Darwin as the build will not link libcxx
+# properly and not re-export the cxxabi symbols into libcxx
+# https://github.com/NixOS/nixpkgs/issues/166205
+# https://github.com/NixOS/nixpkgs/issues/269548
+assert cxxabi == null || !stdenv.hostPlatform.isDarwin;
+let
+  basename = "libcxx";
+  cxxabiName = "lib${if cxxabi == null then "cxxabi" else cxxabi.libName}";
+  runtimes = [ "libcxx" ] ++ lib.optional (cxxabi == null) "libcxxabi";
+
+  # Note: useLLVM is likely false for Darwin but true under pkgsLLVM
+  useLLVM = stdenv.hostPlatform.useLLVM or false;
+
+  cxxabiCMakeFlags = lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    "-DLIBCXXABI_USE_COMPILER_RT=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
+
+  cxxCMakeFlags = [
+    "-DLIBCXX_CXX_ABI=${cxxabiName}"
+  ] ++ lib.optionals (cxxabi != null) [
+    "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${lib.getDev cxxabi}/include"
+  ] ++ lib.optionals (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) [
+    "-DLIBCXX_HAS_MUSL_LIBC=1"
+  ] ++ lib.optionals useLLVM [
+    "-DLIBCXX_USE_COMPILER_RT=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXX_ENABLE_THREADS=OFF"
+    "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
+    "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXX_ENABLE_SHARED=OFF"
+  ];
+
+  cmakeFlags = [
+    "-DLLVM_ENABLE_RUNTIMES=${lib.concatStringsSep ";" runtimes}"
+  ] ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib,
+    # but that does not appear to be the case for example when building
+    # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc).
+    "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib"
+    "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DCMAKE_C_COMPILER_WORKS=ON"
+    "-DCMAKE_CXX_COMPILER_WORKS=ON"
+    "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
+  ] ++ cxxCMakeFlags
+    ++ lib.optionals (cxxabi == null) cxxabiCMakeFlags;
+
+in
 
 stdenv.mkDerivation rec {
-  pname = if headersOnly then "cxx-headers" else "libcxx";
-  inherit version;
+  pname = basename;
+  inherit version cmakeFlags;
 
-  inherit src;
-  sourceRoot = "${src.name}/libcxx";
+  src = runCommand "${pname}-src-${version}" {} (''
+    mkdir -p "$out/llvm"
+    cp -r ${monorepoSrc}/libcxx "$out"
+    cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
+    cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
+    cp -r ${monorepoSrc}/runtimes "$out"
+  '' + lib.optionalString (cxxabi == null) ''
+    cp -r ${monorepoSrc}/libcxxabi "$out"
+  '');
 
-  outputs = [ "out" ] ++ lib.optional (!headersOnly) "dev";
+  outputs = [ "out" "dev" ];
 
   patches = [
-    ./gnu-install-dirs.patch
+    (substitute {
+      src = ../../common/libcxxabi/wasm.patch;
+      replacements = [
+        "--replace-fail" "/cmake/" "/llvm/cmake/"
+      ];
+    })
   ] ++ lib.optionals stdenv.hostPlatform.isMusl [
-    ../../common/libcxx/libcxx-0001-musl-hacks.patch
+    (substitute {
+      src = ../../common/libcxx/libcxx-0001-musl-hacks.patch;
+      replacements = [
+        "--replace-fail" "/include/" "/libcxx/include/"
+      ];
+    })
   ];
 
+  postPatch = ''
+    cd runtimes
+  '';
+
   preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
     patchShebangs utils/cat_files.py
   '';
 
-  nativeBuildInputs = [ cmake python3 ]
-    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
+  nativeBuildInputs = [ cmake ninja python3 ]
+    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames
+    ++ lib.optional (cxxabi != null) lndir;
 
-  buildInputs = lib.optionals (!headersOnly) [ cxxabi ];
+  buildInputs = [ cxxabi ]
+    ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [ libunwind ];
 
-  cmakeFlags = [ "-DLIBCXX_CXX_ABI=${cxxabi.pname}" ]
-    ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
-    ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
-    ++ lib.optionals stdenv.hostPlatform.isWasm [
-      "-DLIBCXX_ENABLE_THREADS=OFF"
-      "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
-      "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
-    ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
-
-  buildFlags = lib.optional headersOnly "generate-cxx-headers";
-  installTargets = lib.optional headersOnly "install-cxx-headers";
-
-  preInstall = lib.optionalString (stdenv.isDarwin && !headersOnly) ''
-    for file in lib/*.dylib; do
-      if [ -L "$file" ]; then continue; fi
-
-      baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))
-      installName="$out/lib/$baseName"
-      abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/')
-
-      for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do
-        ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file
-      done
-    done
-  '';
-
-  # At this point, cxxabi headers would be installed in the dev output, which
-  # prevents moveToOutput from doing its job later in the build process.
-  postInstall = lib.optionalString (!headersOnly) ''
-    mv "$dev/include/c++/v1/"* "$out/include/c++/v1/"
-    pushd "$dev"
-    rmdir -p include/c++/v1
-    popd
+  # libc++.so is a linker script which expands to multiple libraries,
+  # libc++.so.1 and libc++abi.so or the external cxxabi. ld-wrapper doesn't
+  # support linker scripts so the external cxxabi needs to be symlinked in
+  postInstall = lib.optionalString (cxxabi != null) ''
+    lndir ${lib.getDev cxxabi}/include ''${!outputDev}/include/c++/v1
+    lndir ${lib.getLib cxxabi}/lib ''${!outputLib}/lib
   '';
 
   passthru = {
     isLLVM = true;
-    inherit cxxabi;
   };
 
   meta = llvm_meta // {
@@ -84,7 +128,6 @@ stdenv.mkDerivation rec {
       libc++ is an implementation of the C++ standard library, targeting C++11,
       C++14 and above.
     '';
-
     # "All of the code in libc++ is dual licensed under the MIT license and the
     # UIUC License (a BSD-like license)":
     license = with lib.licenses; [ mit ncsa ];
diff --git a/nixpkgs/pkgs/development/compilers/llvm/13/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/13/libcxx/gnu-install-dirs.patch
deleted file mode 100644
index 744967a6ee0b..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/13/libcxx/gnu-install-dirs.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b1e25358d41a..7fe1f4d85401 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -26,6 +26,8 @@ set(LIBCXX_BINARY_INCLUDE_DIR "${LIBCXX_BINARY_DIR}/include/c++build")
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXX_STANDALONE_BUILD)
-   project(libcxx CXX C)
- 
-+  include(GNUInstallDirs)
-+
-   set(PACKAGE_NAME libcxx)
-   set(PACKAGE_VERSION 13.0.0git)
-   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
-@@ -412,7 +414,7 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})
-   set(LIBCXX_GENERATED_INCLUDE_DIR "${LLVM_BINARY_DIR}/include/c++/v1")
-   set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LLVM_BINARY_DIR}/include/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1")
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-       "Path where built libc++ libraries should be installed.")
-   set(LIBCXX_INSTALL_INCLUDE_DIR "include/c++/v1" CACHE PATH
-       "Path where target-agnostic libc++ headers should be installed.")
-@@ -426,7 +428,7 @@ elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
-   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
-   set(LIBCXX_GENERATED_INCLUDE_DIR "${LLVM_BINARY_DIR}/include/c++/v1")
-   set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LIBCXX_GENERATED_INCLUDE_DIR}")
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX} CACHE PATH
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} CACHE PATH
-       "Path where built libc++ libraries should be installed.")
-   set(LIBCXX_INSTALL_INCLUDE_DIR "include/c++/v1" CACHE PATH
-       "Path where target-agnostic libc++ headers should be installed.")
-@@ -436,7 +438,7 @@ else()
-   set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
-   set(LIBCXX_GENERATED_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include/c++/v1")
-   set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LIBCXX_GENERATED_INCLUDE_DIR}")
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX} CACHE PATH
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} CACHE PATH
-       "Path where built libc++ libraries should be installed.")
-   set(LIBCXX_INSTALL_INCLUDE_DIR "include/c++/v1" CACHE PATH
-       "Path where target-agnostic libc++ headers should be installed.")
-diff --git a/cmake/Modules/HandleLibCXXABI.cmake b/cmake/Modules/HandleLibCXXABI.cmake
-index 5a8a4a270a1a..c06bae0001aa 100644
---- a/cmake/Modules/HandleLibCXXABI.cmake
-+++ b/cmake/Modules/HandleLibCXXABI.cmake
-@@ -63,7 +63,7 @@ macro(setup_abi_lib abidefines abishared abistatic abifiles abidirs)
- 
-         if (LIBCXX_INSTALL_HEADERS)
-           install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}"
--            DESTINATION include/c++/v1/${dstdir}
-+            DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/c++/v1/${dstdir}
-             COMPONENT cxx-headers
-             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-             )
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 496429f3841e..1a0c9c0a3159 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -376,21 +376,21 @@ if (LIBCXX_INSTALL_SHARED_LIBRARY)
-   install(TARGETS cxx_shared
-     ARCHIVE DESTINATION ${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
-     LIBRARY DESTINATION ${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
--    RUNTIME DESTINATION bin COMPONENT cxx)
-+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
- endif()
- 
- if (LIBCXX_INSTALL_STATIC_LIBRARY)
-   install(TARGETS cxx_static
-     ARCHIVE DESTINATION ${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
-     LIBRARY DESTINATION ${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
--    RUNTIME DESTINATION bin COMPONENT cxx)
-+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
- endif()
- 
- if(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY)
-   install(TARGETS cxx_experimental
-     LIBRARY DESTINATION ${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
-     ARCHIVE DESTINATION ${LIBCXX_INSTALL_LIBRARY_DIR} COMPONENT cxx
--    RUNTIME DESTINATION bin COMPONENT cxx)
-+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT cxx)
- endif()
- 
- # NOTE: This install command must go after the cxx install command otherwise
diff --git a/nixpkgs/pkgs/development/compilers/llvm/13/libcxxabi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/13/libcxxabi/default.nix
deleted file mode 100644
index 50f09831e974..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/13/libcxxabi/default.nix
+++ /dev/null
@@ -1,84 +0,0 @@
-{ lib, stdenv, llvm_meta, cmake, python3, src, cxx-headers, libunwind, version
-, enableShared ? !stdenv.hostPlatform.isStatic
-, standalone ? stdenv.hostPlatform.useLLVM or false
-, withLibunwind ? !stdenv.isDarwin && !stdenv.hostPlatform.isWasm
-}:
-
-stdenv.mkDerivation rec {
-  pname = "libcxxabi";
-  inherit version;
-
-  inherit src;
-  sourceRoot = "${src.name}/${pname}";
-
-  outputs = [ "out" "dev" ];
-
-  postUnpack = lib.optionalString stdenv.isDarwin ''
-    export TRIPLE=x86_64-apple-darwin
-  '' + lib.optionalString stdenv.hostPlatform.isWasm ''
-    patch -p1 -d llvm -i ${../../common/libcxxabi/wasm.patch}
-  '';
-
-  patches = [
-    ./gnu-install-dirs.patch
-  ];
-
-  nativeBuildInputs = [ cmake python3 ];
-  buildInputs = lib.optional withLibunwind libunwind;
-
-  cmakeFlags = [
-    "-DLIBCXXABI_LIBCXX_INCLUDES=${cxx-headers}/include/c++/v1"
-  ] ++ lib.optionals standalone [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-  ] ++ lib.optionals (standalone && withLibunwind) [
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
-
-  preInstall = lib.optionalString stdenv.isDarwin ''
-    for file in lib/*.dylib; do
-      if [ -L "$file" ]; then continue; fi
-
-      # Fix up the install name. Preserve the basename, just replace the path.
-      installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))"
-
-      # this should be done in CMake, but having trouble figuring out
-      # the magic combination of necessary CMake variables
-      # if you fancy a try, take a look at
-      # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
-      ${stdenv.cc.targetPrefix}install_name_tool -id $installName $file
-
-      # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes
-      # libcxxabi to sometimes link against a different version of itself.
-      # Here we simply make that second reference point to ourselves.
-      for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do
-        ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file
-      done
-    done
-  '';
-
-  postInstall = ''
-    mkdir -p "$dev/include"
-    install -m 644 ../include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include"
-  '';
-
-  passthru = {
-    libName = "c++abi";
-  };
-
-  meta = llvm_meta // {
-    homepage = "https://libcxxabi.llvm.org/";
-    description = "Provides C++ standard library support";
-    longDescription = ''
-      libc++abi is a new implementation of low level support for a standard C++ library.
-    '';
-    # "All of the code in libc++abi is dual licensed under the MIT license and
-    # the UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/13/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/13/libcxxabi/gnu-install-dirs.patch
deleted file mode 100644
index 5d562dd59a99..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/13/libcxxabi/gnu-install-dirs.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 9fb35860d483..5739d9e8af62 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -27,6 +27,8 @@ set(LIBCXXABI_LIBCXX_PATH "${CMAKE_CURRENT_LIST_DIR}/../libcxx" CACHE PATH
- if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXXABI_STANDALONE_BUILD)
-   project(libcxxabi CXX C)
- 
-+  include(GNUInstallDirs)
-+
-   set(PACKAGE_NAME libcxxabi)
-   set(PACKAGE_VERSION 11.0.0git)
-   set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
-@@ -195,7 +197,7 @@ set(CMAKE_MODULE_PATH
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXXABI_HEADER_DIR ${LLVM_BINARY_DIR})
-   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-       "Path where built libc++abi libraries should be installed.")
-   if(LIBCXX_LIBDIR_SUBDIR)
-     string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
-@@ -204,12 +206,12 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
- elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
-   set(LIBCXXABI_HEADER_DIR ${LLVM_BINARY_DIR})
-   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH
-       "Path where built libc++abi libraries should be installed.")
- else()
-   set(LIBCXXABI_HEADER_DIR ${CMAKE_BINARY_DIR})
-   set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX})
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH
-       "Path where built libc++abi libraries should be installed.")
- endif()
- 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/14/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/14/compiler-rt/default.nix
index 1652b3a7fac0..3482ed343c5a 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/14/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/14/compiler-rt/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, llvm_meta, version
 , monorepoSrc, runCommand
-, cmake, python3, xcbuild, libllvm, linuxHeaders, libcxxabi, libxcrypt
+, cmake, python3, xcbuild, libllvm, linuxHeaders, libxcrypt
 , doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD
 }:
 
@@ -30,8 +30,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ cmake python3 libllvm.dev ]
     ++ lib.optional stdenv.isDarwin xcbuild.xcrun;
   buildInputs =
-    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders
-    ++ lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
+    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders;
 
   env.NIX_CFLAGS_COMPILE = toString [
     "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
@@ -128,6 +127,7 @@ stdenv.mkDerivation {
   meta = llvm_meta // {
     homepage = "https://compiler-rt.llvm.org/";
     description = "Compiler runtime libraries";
+    mainProgram = "hwasan_symbolize";
     longDescription = ''
       The compiler-rt project provides highly tuned implementations of the
       low-level code generator support routines like "__fixunsdfdi" and other
diff --git a/nixpkgs/pkgs/development/compilers/llvm/14/default.nix b/nixpkgs/pkgs/development/compilers/llvm/14/default.nix
index 090eec234886..66f5c7385a15 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/14/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/14/default.nix
@@ -134,7 +134,6 @@ in let
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
       extraPackages = [
-        libcxx.cxxabi
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = mkExtraBuildCommands cc;
@@ -200,7 +199,6 @@ in let
       libcxx = targetLlvmLibraries.libcxx;
       bintools = bintools';
       extraPackages = [
-        libcxx.cxxabi
         targetLlvmLibraries.compiler-rt
       ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
         targetLlvmLibraries.libunwind
@@ -296,23 +294,7 @@ in let
 
     libcxx = callPackage ./libcxx {
       inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
-    };
-
-    libcxxabi = let
-      stdenv_ = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
-      cxx-headers = callPackage ./libcxx {
-        inherit llvm_meta;
-        stdenv = stdenv_;
-        headersOnly = true;
-      };
-    in callPackage ./libcxxabi {
-      stdenv = stdenv_;
-      inherit llvm_meta cxx-headers;
+      stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
     };
 
     libunwind = callPackage ./libunwind {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/14/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/14/libcxx/default.nix
index ad9e82291cde..79eeadb1c593 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/14/libcxx/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/14/libcxx/default.nix
@@ -1,87 +1,130 @@
 { lib, stdenv, llvm_meta
-, monorepoSrc, runCommand
-, cmake, python3, fixDarwinDylibNames, version
-, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi
-, libcxxabi, libcxxrt
+, monorepoSrc, runCommand, substitute
+, cmake, lndir, ninja, python3, fixDarwinDylibNames, version
+, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else null
+, libcxxrt, libunwind
 , enableShared ? !stdenv.hostPlatform.isStatic
-
-# If headersOnly is true, the resulting package would only include the headers.
-# Use this to break the circular dependency between libcxx and libcxxabi.
-#
-# Some context:
-# https://reviews.llvm.org/rG1687f2bbe2e2aaa092f942d4a97d41fad43eedfb
-, headersOnly ? false
 }:
 
+# external cxxabi is not supported on Darwin as the build will not link libcxx
+# properly and not re-export the cxxabi symbols into libcxx
+# https://github.com/NixOS/nixpkgs/issues/166205
+# https://github.com/NixOS/nixpkgs/issues/269548
+assert cxxabi == null || !stdenv.hostPlatform.isDarwin;
 let
   basename = "libcxx";
-in
+  cxxabiName = "lib${if cxxabi == null then "cxxabi" else cxxabi.libName}";
+  runtimes = [ "libcxx" ] ++ lib.optional (cxxabi == null) "libcxxabi";
+
+  # Note: useLLVM is likely false for Darwin but true under pkgsLLVM
+  useLLVM = stdenv.hostPlatform.useLLVM or false;
+
+  cxxabiCMakeFlags = lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    "-DLIBCXXABI_USE_COMPILER_RT=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
+
+  cxxCMakeFlags = [
+    "-DLIBCXX_CXX_ABI=${cxxabiName}"
+  ] ++ lib.optionals (cxxabi != null) [
+    "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${lib.getDev cxxabi}/include"
+  ] ++ lib.optionals (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) [
+    "-DLIBCXX_HAS_MUSL_LIBC=1"
+  ] ++ lib.optionals useLLVM [
+    "-DLIBCXX_USE_COMPILER_RT=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXX_ENABLE_THREADS=OFF"
+    "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
+    "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXX_ENABLE_SHARED=OFF"
+  ];
 
-assert stdenv.isDarwin -> cxxabi.pname == "libcxxabi";
+  cmakeFlags = [
+    "-DLLVM_ENABLE_RUNTIMES=${lib.concatStringsSep ";" runtimes}"
+  ] ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib,
+    # but that does not appear to be the case for example when building
+    # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc).
+    "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib"
+    "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DCMAKE_C_COMPILER_WORKS=ON"
+    "-DCMAKE_CXX_COMPILER_WORKS=ON"
+    "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
+  ] ++ cxxCMakeFlags
+    ++ lib.optionals (cxxabi == null) cxxabiCMakeFlags;
+
+in
 
 stdenv.mkDerivation rec {
-  pname = basename + lib.optionalString headersOnly "-headers";
-  inherit version;
+  pname = basename;
+  inherit version cmakeFlags;
 
-  src = runCommand "${pname}-src-${version}" {} ''
-    mkdir -p "$out"
-    cp -r ${monorepoSrc}/cmake "$out"
-    cp -r ${monorepoSrc}/${basename} "$out"
-    mkdir -p "$out/libcxxabi"
-    cp -r ${monorepoSrc}/libcxxabi/include "$out/libcxxabi"
+  src = runCommand "${pname}-src-${version}" {} (''
     mkdir -p "$out/llvm"
+    cp -r ${monorepoSrc}/cmake "$out"
+    cp -r ${monorepoSrc}/libcxx "$out"
     cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
     cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
-  '';
-
-  sourceRoot = "${src.name}/${basename}";
+    cp -r ${monorepoSrc}/third-party "$out"
+    cp -r ${monorepoSrc}/runtimes "$out"
+  '' + lib.optionalString (cxxabi == null) ''
+    cp -r ${monorepoSrc}/libcxxabi "$out"
+  '');
 
-  outputs = [ "out" ] ++ lib.optional (!headersOnly) "dev";
+  outputs = [ "out" "dev" ];
 
   patches = [
-    ./gnu-install-dirs.patch
+    (substitute {
+      src = ../../common/libcxxabi/wasm.patch;
+      replacements = [
+        "--replace-fail" "/cmake/" "/llvm/cmake/"
+      ];
+    })
   ] ++ lib.optionals stdenv.hostPlatform.isMusl [
-    ../../common/libcxx/libcxx-0001-musl-hacks.patch
+    (substitute {
+      src = ../../common/libcxx/libcxx-0001-musl-hacks.patch;
+      replacements = [
+        "--replace-fail" "/include/" "/libcxx/include/"
+      ];
+    })
   ];
 
+  postPatch = ''
+    # fix CMake error when static and LIBCXXABI_USE_LLVM_UNWINDER=ON. aren't
+    # building unwind so don't need to depend on it
+    substituteInPlace libcxx/src/CMakeLists.txt \
+      --replace-fail "add_dependencies(cxx_static unwind)" "# add_dependencies(cxx_static unwind)"
+    cd runtimes
+  '';
+
   preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
     patchShebangs utils/cat_files.py
   '';
 
-  nativeBuildInputs = [ cmake python3 ]
-    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
-
-  buildInputs = lib.optionals (!headersOnly) [ cxxabi ];
-
-  cmakeFlags = [ "-DLIBCXX_CXX_ABI=${cxxabi.pname}" ]
-    ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
-    ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
-    ++ lib.optionals stdenv.hostPlatform.isWasm [
-      "-DLIBCXX_ENABLE_THREADS=OFF"
-      "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
-      "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
-    ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
-
-  buildFlags = lib.optional headersOnly "generate-cxx-headers";
-  installTargets = lib.optional headersOnly "install-cxx-headers";
-
-  preInstall = lib.optionalString (stdenv.isDarwin && !headersOnly) ''
-    for file in lib/*.dylib; do
-      if [ -L "$file" ]; then continue; fi
+  nativeBuildInputs = [ cmake ninja python3 ]
+    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames
+    ++ lib.optional (cxxabi != null) lndir;
 
-      baseName=$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))
-      installName="$out/lib/$baseName"
-      abiName=$(echo "$baseName" | sed -e 's/libc++/libc++abi/')
+  buildInputs = [ cxxabi ]
+    ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [ libunwind ];
 
-      for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do
-        ${stdenv.cc.targetPrefix}install_name_tool -change $other ${cxxabi}/lib/$abiName $file
-      done
-    done
+  # libc++.so is a linker script which expands to multiple libraries,
+  # libc++.so.1 and libc++abi.so or the external cxxabi. ld-wrapper doesn't
+  # support linker scripts so the external cxxabi needs to be symlinked in
+  postInstall = lib.optionalString (cxxabi != null) ''
+    lndir ${lib.getDev cxxabi}/include ''${!outputDev}/include/c++/v1
+    lndir ${lib.getLib cxxabi}/lib ''${!outputLib}/lib
   '';
 
   passthru = {
     isLLVM = true;
-    inherit cxxabi;
   };
 
   meta = llvm_meta // {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/14/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/14/libcxx/gnu-install-dirs.patch
deleted file mode 100644
index bddf55d1e605..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/14/libcxx/gnu-install-dirs.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -436,7 +436,7 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})
-   set(LIBCXX_GENERATED_INCLUDE_DIR "${LLVM_BINARY_DIR}/include/c++/v1")
-   set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LLVM_BINARY_DIR}/include/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1")
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-+  set(LIBCXX_INSTALL_LIBRARY_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}" CACHE PATH
-       "Path where built libc++ libraries should be installed.")
-   set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1" CACHE PATH
-       "Path where target-specific libc++ headers should be installed.")
-@@ -453,7 +453,7 @@ else()
-     set(LIBCXX_GENERATED_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include/c++/v1")
-   endif()
-   set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LIBCXX_GENERATED_INCLUDE_DIR}")
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX} CACHE PATH
-+  set(LIBCXX_INSTALL_LIBRARY_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" CACHE PATH
-       "Path where built libc++ libraries should be installed.")
-   set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "${LIBCXX_INSTALL_INCLUDE_DIR}" CACHE PATH
-       "Path where target-specific libc++ headers should be installed.")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/14/libcxxabi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/14/libcxxabi/default.nix
deleted file mode 100644
index 0f7cec3695d6..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/14/libcxxabi/default.nix
+++ /dev/null
@@ -1,103 +0,0 @@
-{ lib, stdenv, llvm_meta, cmake, python3
-, monorepoSrc, runCommand
-, cxx-headers, libunwind, version
-, enableShared ? !stdenv.hostPlatform.isStatic
-}:
-
-stdenv.mkDerivation rec {
-  pname = "libcxxabi";
-  inherit version;
-
-  src = runCommand "${pname}-src-${version}" {} ''
-    mkdir -p "$out"
-    cp -r ${monorepoSrc}/cmake "$out"
-    cp -r ${monorepoSrc}/${pname} "$out"
-    mkdir -p "$out/libcxx/src"
-    cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx"
-    cp -r ${monorepoSrc}/libcxx/include "$out/libcxx"
-    cp -r ${monorepoSrc}/libcxx/src/include "$out/libcxx/src"
-    mkdir -p "$out/llvm"
-    cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
-  '';
-
-  sourceRoot = "${src.name}/${pname}";
-
-  outputs = [ "out" "dev" ];
-
-  postUnpack = lib.optionalString stdenv.isDarwin ''
-    export TRIPLE=x86_64-apple-darwin
-  '' + lib.optionalString stdenv.hostPlatform.isWasm ''
-    patch -p1 -d llvm -i ${../../common/libcxxabi/wasm.patch}
-  '';
-
-  patches = [
-    ./gnu-install-dirs.patch
-  ];
-
-  nativeBuildInputs = [ cmake python3 ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isWasm) libunwind;
-
-  cmakeFlags = [
-    "-DLIBCXXABI_LIBCXX_INCLUDES=${cxx-headers}/include/c++/v1"
-  ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
-
-  installPhase = if stdenv.isDarwin
-    then ''
-      for file in lib/*.dylib; do
-        if [ -L "$file" ]; then continue; fi
-
-        # Fix up the install name. Preserve the basename, just replace the path.
-        installName="$out/lib/$(basename $(${stdenv.cc.targetPrefix}otool -D $file | tail -n 1))"
-
-        # this should be done in CMake, but having trouble figuring out
-        # the magic combination of necessary CMake variables
-        # if you fancy a try, take a look at
-        # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
-        ${stdenv.cc.targetPrefix}install_name_tool -id $installName $file
-
-        # cc-wrapper passes '-lc++abi' to all c++ link steps, but that causes
-        # libcxxabi to sometimes link against a different version of itself.
-        # Here we simply make that second reference point to ourselves.
-        for other in $(${stdenv.cc.targetPrefix}otool -L $file | awk '$1 ~ "/libc\\+\\+abi" { print $1 }'); do
-          ${stdenv.cc.targetPrefix}install_name_tool -change $other $installName $file
-        done
-      done
-
-      make install
-      install -d 755 $out/include
-      install -m 644 ../include/*.h $out/include
-    ''
-    else ''
-      install -d -m 755 $out/include $out/lib
-      install -m 644 lib/libc++abi.a $out/lib
-      install -m 644 ../include/cxxabi.h $out/include
-    '' + lib.optionalString enableShared ''
-      install -m 644 lib/libc++abi.so.1.0 $out/lib
-      ln -s libc++abi.so.1.0 $out/lib/libc++abi.so
-      ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
-    '';
-
-  passthru = {
-    libName = "c++abi";
-  };
-
-  meta = llvm_meta // {
-    homepage = "https://libcxxabi.llvm.org/";
-    description = "Provides C++ standard library support";
-    longDescription = ''
-      libc++abi is a new implementation of low level support for a standard C++ library.
-    '';
-    # "All of the code in libc++abi is dual licensed under the MIT license and
-    # the UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/14/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/14/libcxxabi/gnu-install-dirs.patch
deleted file mode 100644
index bd25c903d5bc..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/14/libcxxabi/gnu-install-dirs.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index ecbc7091864e..53ba2dbc3bd1 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -216,7 +216,7 @@ set(LIBCXXABI_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXXABI_HEADER_DIR ${LLVM_BINARY_DIR})
-   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-       "Path where built libc++abi libraries should be installed.")
-   if(LIBCXX_LIBDIR_SUBDIR)
-     string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
-@@ -230,7 +230,7 @@ else()
-     set(LIBCXXABI_HEADER_DIR ${CMAKE_BINARY_DIR})
-     set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX})
-   endif()
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH
-       "Path where built libc++abi libraries should be installed.")
- endif()
- 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/15/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/15/compiler-rt/default.nix
index fbf25786efee..d257c69cbcd0 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/15/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/15/compiler-rt/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, llvm_meta, version
 , monorepoSrc, runCommand
-, cmake, ninja, python3, xcbuild, libllvm, linuxHeaders, libcxxabi, libxcrypt
+, cmake, ninja, python3, xcbuild, libllvm, linuxHeaders, libxcrypt
 , doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD
 }:
 
@@ -30,8 +30,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ cmake ninja python3 libllvm.dev ]
     ++ lib.optional stdenv.isDarwin xcbuild.xcrun;
   buildInputs =
-    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders
-    ++ lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
+    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders;
 
   env.NIX_CFLAGS_COMPILE = toString [
     "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
@@ -127,6 +126,7 @@ stdenv.mkDerivation {
   meta = llvm_meta // {
     homepage = "https://compiler-rt.llvm.org/";
     description = "Compiler runtime libraries";
+    mainProgram = "hwasan_symbolize";
     longDescription = ''
       The compiler-rt project provides highly tuned implementations of the
       low-level code generator support routines like "__fixunsdfdi" and other
diff --git a/nixpkgs/pkgs/development/compilers/llvm/15/default.nix b/nixpkgs/pkgs/development/compilers/llvm/15/default.nix
index d9ca0819f2e0..0ccb9c449a8d 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/15/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/15/default.nix
@@ -139,7 +139,6 @@ in let
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
       extraPackages = [
-        libcxx.cxxabi
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = mkExtraBuildCommands cc;
@@ -205,7 +204,6 @@ in let
       libcxx = targetLlvmLibraries.libcxx;
       bintools = bintools';
       extraPackages = [
-        libcxx.cxxabi
         targetLlvmLibraries.compiler-rt
       ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
         targetLlvmLibraries.libunwind
@@ -309,45 +307,7 @@ in let
 
     libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
 
-    libcxxabi = let
-      # CMake will "require" a compiler capable of compiling C++ programs
-      # cxx-header's build does not actually use one so it doesn't really matter
-      # what stdenv we use here, as long as CMake is happy.
-      cxx-headers = callPackage ./libcxx {
-        inherit llvm_meta;
-        # Note that if we use the regular stdenv here we'll get cycle errors
-        # when attempting to use this compiler in the stdenv.
-        #
-        # The final stdenv pulls `cxx-headers` from the package set where
-        # hostPlatform *is* the target platform which means that `stdenv` at
-        # that point attempts to use this toolchain.
-        #
-        # So, we use `stdenv_` (the stdenv containing `clang` from this package
-        # set, defined below) to sidestep this issue.
-        #
-        # Because we only use `cxx-headers` in `libcxxabi` (which depends on the
-        # clang stdenv _anyways_), this is okay.
-        stdenv = stdenv_;
-        headersOnly = true;
-      };
-
-      # `libcxxabi` *doesn't* need a compiler with a working C++ stdlib but it
-      # *does* need a relatively modern C++ compiler (see:
-      # https://releases.llvm.org/15.0.0/projects/libcxx/docs/index.html#platform-and-compiler-support).
-      #
-      # So, we use the clang from this LLVM package set, like libc++
-      # "boostrapping builds" do:
-      # https://releases.llvm.org/15.0.0/projects/libcxx/docs/BuildingLibcxx.html#bootstrapping-build
-      #
-      # We cannot use `clangNoLibcxx` because that contains `compiler-rt` which,
-      # on macOS, depends on `libcxxabi`, thus forming a cycle.
-      stdenv_ = overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc;
-    in callPackage ./libcxxabi {
-      stdenv = stdenv_;
-      inherit llvm_meta cxx-headers;
-    };
-
-    # Like `libcxxabi` above, `libcxx` requires a fairly modern C++ compiler,
+    # `libcxx` requires a fairly modern C++ compiler,
     # so: we use the clang from this LLVM package set instead of the regular
     # stdenv's compiler.
     libcxx = callPackage ./libcxx {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/15/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/15/libcxx/default.nix
index 6a055581fffd..89181bcbdbbf 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/15/libcxx/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/15/libcxx/default.nix
@@ -1,75 +1,111 @@
 { lib, stdenv, llvm_meta
-, monorepoSrc, runCommand, fetchpatch
-, cmake, ninja, python3, fixDarwinDylibNames, version
-, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi
-, libcxxabi, libcxxrt, libunwind
+, monorepoSrc, runCommand, fetchpatch, substitute
+, cmake, lndir, ninja, python3, fixDarwinDylibNames, version
+, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else null
+, libcxxrt, libunwind
 , enableShared ? !stdenv.hostPlatform.isStatic
-
-# If headersOnly is true, the resulting package would only include the headers.
-# Use this to break the circular dependency between libcxx and libcxxabi.
-#
-# Some context:
-# https://reviews.llvm.org/rG1687f2bbe2e2aaa092f942d4a97d41fad43eedfb
-, headersOnly ? false
 }:
 
+# external cxxabi is not supported on Darwin as the build will not link libcxx
+# properly and not re-export the cxxabi symbols into libcxx
+# https://github.com/NixOS/nixpkgs/issues/166205
+# https://github.com/NixOS/nixpkgs/issues/269548
+assert cxxabi == null || !stdenv.hostPlatform.isDarwin;
 let
   basename = "libcxx";
-in
+  cxxabiName = "lib${if cxxabi == null then "cxxabi" else cxxabi.libName}";
+  runtimes = [ "libcxx" ] ++ lib.optional (cxxabi == null) "libcxxabi";
+
+  # Note: useLLVM is likely false for Darwin but true under pkgsLLVM
+  useLLVM = stdenv.hostPlatform.useLLVM or false;
+
+  cxxabiCMakeFlags = lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    "-DLIBCXXABI_USE_COMPILER_RT=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
+
+  cxxCMakeFlags = [
+    "-DLIBCXX_CXX_ABI=${cxxabiName}"
+  ] ++ lib.optionals (cxxabi != null) [
+    "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${lib.getDev cxxabi}/include"
+  ] ++ lib.optionals (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) [
+    "-DLIBCXX_HAS_MUSL_LIBC=1"
+  ] ++ lib.optionals useLLVM [
+    "-DLIBCXX_USE_COMPILER_RT=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXX_ENABLE_THREADS=OFF"
+    "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
+    "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXX_ENABLE_SHARED=OFF"
+  ];
+
+  cmakeFlags = [
+    "-DLLVM_ENABLE_RUNTIMES=${lib.concatStringsSep ";" runtimes}"
+  ] ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib,
+    # but that does not appear to be the case for example when building
+    # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc).
+    "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib"
+    "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DCMAKE_C_COMPILER_WORKS=ON"
+    "-DCMAKE_CXX_COMPILER_WORKS=ON"
+    "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
+  ] ++ cxxCMakeFlags
+    ++ lib.optionals (cxxabi == null) cxxabiCMakeFlags;
 
-assert stdenv.isDarwin -> cxxabi.libName == "c++abi";
+in
 
 stdenv.mkDerivation rec {
-  pname = basename + lib.optionalString headersOnly "-headers";
-  inherit version;
+  pname = basename;
+  inherit version cmakeFlags;
 
-  src = runCommand "${pname}-src-${version}" {} ''
-    mkdir -p "$out"
-    cp -r ${monorepoSrc}/cmake "$out"
-    cp -r ${monorepoSrc}/${basename} "$out"
-    mkdir -p "$out/libcxxabi"
-    cp -r ${monorepoSrc}/libcxxabi/include "$out/libcxxabi"
+  src = runCommand "${pname}-src-${version}" {} (''
     mkdir -p "$out/llvm"
+    cp -r ${monorepoSrc}/cmake "$out"
+    cp -r ${monorepoSrc}/libcxx "$out"
     cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
     cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
     cp -r ${monorepoSrc}/third-party "$out"
     cp -r ${monorepoSrc}/runtimes "$out"
-  '';
-
-  sourceRoot = "${src.name}/runtimes";
-
-  outputs = [ "out" ] ++ lib.optional (!headersOnly) "dev";
+  '' + lib.optionalString (cxxabi == null) ''
+    cp -r ${monorepoSrc}/libcxxabi "$out"
+  '');
 
-  prePatch = ''
-    cd ../${basename}
-    chmod -R u+w .
-  '';
+  outputs = [ "out" "dev" ];
 
   patches = [
-    ./gnu-install-dirs.patch
     # See:
     #   - https://reviews.llvm.org/D133566
     #   - https://github.com/NixOS/nixpkgs/issues/214524#issuecomment-1429146432
     # !!! Drop in LLVM 16+
     (fetchpatch {
       url = "https://github.com/llvm/llvm-project/commit/57c7bb3ec89565c68f858d316504668f9d214d59.patch";
-      hash = "sha256-AaM9A6tQ4YAw7uDqCIV4VaiUyLZv+unwcOqbakwW9/k=";
-      relative = "libcxx";
+      hash = "sha256-B07vHmSjy5BhhkGSj3e1E0XmMv5/9+mvC/k70Z29VwY=";
     })
-    # fix for https://github.com/NixOS/nixpkgs/issues/269548
-    # https://github.com/llvm/llvm-project/pull/77218
-    (fetchpatch {
-      name = "darwin-system-libcxxabi-link-flags.patch";
-      url = "https://github.com/llvm/llvm-project/commit/c5b89b29ee6e3c444a355fd1cf733ce7ab2e316a.patch";
-      hash = "sha256-LNoPg1KCoP8RWxU/AzHR52f4Dww24I9BGQJedMhFxyQ=";
-      relative = "libcxx";
+    (substitute {
+      src = ../../common/libcxxabi/wasm.patch;
+      replacements = [
+        "--replace-fail" "/cmake/" "/llvm/cmake/"
+      ];
     })
   ] ++ lib.optionals stdenv.hostPlatform.isMusl [
-    ../../common/libcxx/libcxx-0001-musl-hacks.patch
+    (substitute {
+      src = ../../common/libcxx/libcxx-0001-musl-hacks.patch;
+      replacements = [
+        "--replace-fail" "/include/" "/libcxx/include/"
+      ];
+    })
   ];
 
   postPatch = ''
-    cd ../runtimes
+    cd runtimes
   '';
 
   preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
@@ -77,52 +113,22 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ cmake ninja python3 ]
-    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
-
-  buildInputs =
-    lib.optionals (!headersOnly) [ cxxabi ]
-    ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [ libunwind ];
-
-  cmakeFlags = let
-    # See: https://libcxx.llvm.org/BuildingLibcxx.html#cmdoption-arg-libcxx-cxx-abi-string
-    libcxx_cxx_abi_opt = {
-      "c++abi" = "system-libcxxabi";
-      "cxxrt" = "libcxxrt";
-    }.${cxxabi.libName} or (throw "unknown cxxabi: ${cxxabi.libName} (${cxxabi.pname})");
-  in [
-    "-DLLVM_ENABLE_RUNTIMES=libcxx"
-    "-DLIBCXX_CXX_ABI=${if headersOnly then "none" else libcxx_cxx_abi_opt}"
-  ] ++ lib.optional (!headersOnly && cxxabi.libName == "c++abi") "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi.dev}/include/c++/v1"
-    ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
-    ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
-      "-DLIBCXX_USE_COMPILER_RT=ON"
-      # (Backport fix from 16, which has LIBCXX_ADDITIONAL_LIBRARIES, but 15
-      # does not appear to)
-      # There's precedent for this in llvm-project/libcxx/cmake/caches.
-      # In a monorepo build you might do the following in the libcxxabi build:
-      #   -DLLVM_ENABLE_PROJECTS=libcxxabi;libunwind
-      #   -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_STATIC_LIBRARY=On
-      # libcxx appears to require unwind and doesn't pull it in via other means.
-      # "-DLIBCXX_ADDITIONAL_LIBRARIES=unwind"
-      "-DCMAKE_SHARED_LINKER_FLAGS=-lunwind"
-    ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-      "-DLIBCXX_ENABLE_THREADS=OFF"
-      "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
-      "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
-    ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF"
-    # If we're only building the headers we don't actually *need* a functioning
-    # C/C++ compiler:
-    ++ lib.optionals (headersOnly) [
-      "-DCMAKE_C_COMPILER_WORKS=ON"
-      "-DCMAKE_CXX_COMPILER_WORKS=ON"
-    ];
-
-  ninjaFlags = lib.optional headersOnly "generate-cxx-headers";
-  installTargets = lib.optional headersOnly "install-cxx-headers";
+    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames
+    ++ lib.optional (cxxabi != null) lndir;
+
+  buildInputs = [ cxxabi ]
+    ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [ libunwind ];
+
+  # libc++.so is a linker script which expands to multiple libraries,
+  # libc++.so.1 and libc++abi.so or the external cxxabi. ld-wrapper doesn't
+  # support linker scripts so the external cxxabi needs to be symlinked in
+  postInstall = lib.optionalString (cxxabi != null) ''
+    lndir ${lib.getDev cxxabi}/include ''${!outputDev}/include/c++/v1
+    lndir ${lib.getLib cxxabi}/lib ''${!outputLib}/lib
+  '';
 
   passthru = {
     isLLVM = true;
-    inherit cxxabi;
   };
 
   meta = llvm_meta // {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/15/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/15/libcxx/gnu-install-dirs.patch
deleted file mode 100644
index daee5bdd0ed3..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/15/libcxx/gnu-install-dirs.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 74eff2002fc9..c935d10878bb 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -419,7 +419,7 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})
-   set(LIBCXX_GENERATED_INCLUDE_DIR "${LLVM_BINARY_DIR}/include/c++/v1")
-   set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LLVM_BINARY_DIR}/include/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1")
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-       "Path where built libc++ libraries should be installed.")
-   set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1" CACHE PATH
-       "Path where target-specific libc++ headers should be installed.")
-@@ -436,7 +436,7 @@ else()
-     set(LIBCXX_GENERATED_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include/c++/v1")
-   endif()
-   set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LIBCXX_GENERATED_INCLUDE_DIR}")
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX} CACHE PATH
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} CACHE PATH
-       "Path where built libc++ libraries should be installed.")
-   set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "${LIBCXX_INSTALL_INCLUDE_DIR}" CACHE PATH
-       "Path where target-specific libc++ headers should be installed.")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/15/libcxxabi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/15/libcxxabi/default.nix
deleted file mode 100644
index 04bfee14aa18..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/15/libcxxabi/default.nix
+++ /dev/null
@@ -1,113 +0,0 @@
-{ lib, stdenv, llvm_meta, cmake, ninja, python3
-, monorepoSrc, runCommand, fetchpatch
-, cxx-headers, libunwind, version
-, enableShared ? !stdenv.hostPlatform.isStatic
-}:
-
-stdenv.mkDerivation rec {
-  pname = "libcxxabi";
-  inherit version;
-
-  src = runCommand "${pname}-src-${version}" {} ''
-    mkdir -p "$out"
-    cp -r ${monorepoSrc}/cmake "$out"
-    cp -r ${monorepoSrc}/${pname} "$out"
-    mkdir -p "$out/libcxx/src"
-    cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx"
-    cp -r ${monorepoSrc}/libcxx/include "$out/libcxx"
-    cp -r ${monorepoSrc}/libcxx/src/include "$out/libcxx/src"
-    mkdir -p "$out/llvm"
-    cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
-    cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
-    cp -r ${monorepoSrc}/runtimes "$out"
-  '';
-
-  sourceRoot = "${src.name}/runtimes";
-
-  outputs = [ "out" "dev" ];
-
-  postUnpack = lib.optionalString stdenv.isDarwin ''
-    export TRIPLE=x86_64-apple-darwin
-  '' + lib.optionalString stdenv.hostPlatform.isWasm ''
-    patch -p1 -d llvm -i ${../../common/libcxxabi/wasm.patch}
-  '';
-
-  prePatch = ''
-    cd ../${pname}
-    chmod -R u+w .
-  '';
-
-  patches = [
-    ./gnu-install-dirs.patch
-
-    # https://reviews.llvm.org/D132298, Allow building libcxxabi alone
-    (fetchpatch {
-      url = "https://github.com/llvm/llvm-project/commit/e6a0800532bb409f6d1c62f3698bdd6994a877dc.patch";
-      sha256 = "1xyjd56m4pfwq8p3xh6i8lhkk9kq15jaml7qbhxdf87z4jjkk63a";
-      stripLen = 1;
-    })
-  ];
-
-  postPatch = ''
-    cd ../runtimes
-  '';
-
-  nativeBuildInputs = [ cmake ninja python3 ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isWasm) libunwind;
-
-  cmakeFlags = [
-    "-DLLVM_ENABLE_RUNTIMES=libcxxabi"
-    "-DLIBCXXABI_LIBCXX_INCLUDES=${cxx-headers}/include/c++/v1"
-
-    # `libcxxabi`'s build does not need a toolchain with a c++ stdlib attached
-    # (we specify the headers it should use explicitly above).
-    #
-    # CMake however checks for this anyways; this flag tells it not to. See:
-    # https://github.com/llvm/llvm-project/blob/4bd3f3759259548e159aeba5c76efb9a0864e6fa/llvm/runtimes/CMakeLists.txt#L243
-    "-DCMAKE_CXX_COMPILER_WORKS=ON"
-  ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-    # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib,
-    # but that does not appear to be the case for example when building
-    # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc).
-    "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib"
-    "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
-
-  preInstall = lib.optionalString stdenv.isDarwin ''
-    for file in lib/*.dylib; do
-      # this should be done in CMake, but having trouble figuring out
-      # the magic combination of necessary CMake variables
-      # if you fancy a try, take a look at
-      # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
-      install_name_tool -id $out/$file $file
-    done
-  '';
-
-  postInstall = ''
-    mkdir -p "$dev/include"
-    install -m 644 ../../${pname}/include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include"
-  '';
-
-  passthru = {
-    libName = "c++abi";
-  };
-
-  meta = llvm_meta // {
-    homepage = "https://libcxxabi.llvm.org/";
-    description = "Provides C++ standard library support";
-    longDescription = ''
-      libc++abi is a new implementation of low level support for a standard C++ library.
-    '';
-    # "All of the code in libc++abi is dual licensed under the MIT license and
-    # the UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/15/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/15/libcxxabi/gnu-install-dirs.patch
deleted file mode 100644
index fa587612aaf6..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/15/libcxxabi/gnu-install-dirs.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b8326d08d23a..a1e36f713161 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -187,7 +187,7 @@ set(LIBCXXABI_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXXABI_HEADER_DIR ${LLVM_BINARY_DIR})
-   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-       "Path where built libc++abi libraries should be installed.")
-   if(LIBCXX_LIBDIR_SUBDIR)
-     string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
-@@ -201,7 +201,7 @@ else()
-     set(LIBCXXABI_HEADER_DIR ${CMAKE_BINARY_DIR})
-     set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX})
-   endif()
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH
-       "Path where built libc++abi libraries should be installed.")
- endif()
- 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/16/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/16/compiler-rt/default.nix
index 0f15a9e12cde..2a15e5302b46 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/16/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/16/compiler-rt/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, llvm_meta, version
 , monorepoSrc, runCommand
-, cmake, ninja, python3, xcbuild, libllvm, linuxHeaders, libcxxabi, libxcrypt
+, cmake, ninja, python3, xcbuild, libllvm, linuxHeaders, libxcrypt
 , doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD
 }:
 
@@ -31,8 +31,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ cmake ninja python3 libllvm.dev ]
     ++ lib.optional stdenv.isDarwin xcbuild.xcrun;
   buildInputs =
-    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders
-    ++ lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
+    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders;
 
   env.NIX_CFLAGS_COMPILE = toString ([
     "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
@@ -141,6 +140,7 @@ stdenv.mkDerivation {
   meta = llvm_meta // {
     homepage = "https://compiler-rt.llvm.org/";
     description = "Compiler runtime libraries";
+    mainProgram = "hwasan_symbolize";
     longDescription = ''
       The compiler-rt project provides highly tuned implementations of the
       low-level code generator support routines like "__fixunsdfdi" and other
diff --git a/nixpkgs/pkgs/development/compilers/llvm/16/default.nix b/nixpkgs/pkgs/development/compilers/llvm/16/default.nix
index 143076c3f76e..66185071f22b 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/16/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/16/default.nix
@@ -139,7 +139,6 @@ in let
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
       extraPackages = [
-        libcxx.cxxabi
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = mkExtraBuildCommands cc;
@@ -214,7 +213,6 @@ in let
       libcxx = targetLlvmLibraries.libcxx;
       bintools = bintools';
       extraPackages = [
-        libcxx.cxxabi
         targetLlvmLibraries.compiler-rt
       ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
         targetLlvmLibraries.libunwind
@@ -324,45 +322,7 @@ in let
 
     libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
 
-    libcxxabi = let
-      # CMake will "require" a compiler capable of compiling C++ programs
-      # cxx-header's build does not actually use one so it doesn't really matter
-      # what stdenv we use here, as long as CMake is happy.
-      cxx-headers = callPackage ./libcxx {
-        inherit llvm_meta;
-        # Note that if we use the regular stdenv here we'll get cycle errors
-        # when attempting to use this compiler in the stdenv.
-        #
-        # The final stdenv pulls `cxx-headers` from the package set where
-        # hostPlatform *is* the target platform which means that `stdenv` at
-        # that point attempts to use this toolchain.
-        #
-        # So, we use `stdenv_` (the stdenv containing `clang` from this package
-        # set, defined below) to sidestep this issue.
-        #
-        # Because we only use `cxx-headers` in `libcxxabi` (which depends on the
-        # clang stdenv _anyways_), this is okay.
-        stdenv = stdenv_;
-        headersOnly = true;
-      };
-
-      # `libcxxabi` *doesn't* need a compiler with a working C++ stdlib but it
-      # *does* need a relatively modern C++ compiler (see:
-      # https://releases.llvm.org/15.0.0/projects/libcxx/docs/index.html#platform-and-compiler-support).
-      #
-      # So, we use the clang from this LLVM package set, like libc++
-      # "boostrapping builds" do:
-      # https://releases.llvm.org/15.0.0/projects/libcxx/docs/BuildingLibcxx.html#bootstrapping-build
-      #
-      # We cannot use `clangNoLibcxx` because that contains `compiler-rt` which,
-      # on macOS, depends on `libcxxabi`, thus forming a cycle.
-      stdenv_ = overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc;
-    in callPackage ./libcxxabi {
-      stdenv = stdenv_;
-      inherit llvm_meta cxx-headers;
-    };
-
-    # Like `libcxxabi` above, `libcxx` requires a fairly modern C++ compiler,
+    # `libcxx` requires a fairly modern C++ compiler,
     # so: we use the clang from this LLVM package set instead of the regular
     # stdenv's compiler.
     libcxx = callPackage ./libcxx {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/16/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/16/libcxx/default.nix
index d6c8c57c1743..146424113ec4 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/16/libcxx/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/16/libcxx/default.nix
@@ -1,115 +1,114 @@
 { lib, stdenv, llvm_meta
 , monorepoSrc, runCommand, fetchpatch
-, cmake, ninja, python3, fixDarwinDylibNames, version
-, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi
-, libcxxabi, libcxxrt, libunwind
+, cmake, lndir, ninja, python3, fixDarwinDylibNames, version
+, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else null
+, libcxxrt, libunwind
 , enableShared ? !stdenv.hostPlatform.isStatic
-
-# If headersOnly is true, the resulting package would only include the headers.
-# Use this to break the circular dependency between libcxx and libcxxabi.
-#
-# Some context:
-# https://reviews.llvm.org/rG1687f2bbe2e2aaa092f942d4a97d41fad43eedfb
-, headersOnly ? false
 }:
 
+# external cxxabi is not supported on Darwin as the build will not link libcxx
+# properly and not re-export the cxxabi symbols into libcxx
+# https://github.com/NixOS/nixpkgs/issues/166205
+# https://github.com/NixOS/nixpkgs/issues/269548
+assert cxxabi == null || !stdenv.hostPlatform.isDarwin;
 let
   basename = "libcxx";
-in
+  cxxabiName = "lib${if cxxabi == null then "cxxabi" else cxxabi.libName}";
+  runtimes = [ "libcxx" ] ++ lib.optional (cxxabi == null) "libcxxabi";
+
+  # Note: useLLVM is likely false for Darwin but true under pkgsLLVM
+  useLLVM = stdenv.hostPlatform.useLLVM or false;
+
+  cxxabiCMakeFlags = lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    "-DLIBCXXABI_USE_COMPILER_RT=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
+
+  cxxCMakeFlags = [
+    "-DLIBCXX_CXX_ABI=${cxxabiName}"
+  ] ++ lib.optionals (cxxabi != null) [
+    "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${lib.getDev cxxabi}/include"
+  ] ++ lib.optionals (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) [
+    "-DLIBCXX_HAS_MUSL_LIBC=1"
+  ] ++ lib.optionals useLLVM [
+    "-DLIBCXX_USE_COMPILER_RT=ON"
+    # There's precedent for this in llvm-project/libcxx/cmake/caches.
+    # In a monorepo build you might do the following in the libcxxabi build:
+    #   -DLLVM_ENABLE_PROJECTS=libcxxabi;libunwinder
+    #   -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_STATIC_LIBRARY=On
+    # libcxx appears to require unwind and doesn't pull it in via other means.
+    "-DLIBCXX_ADDITIONAL_LIBRARIES=unwind"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXX_ENABLE_THREADS=OFF"
+    "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
+    "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXX_ENABLE_SHARED=OFF"
+  ];
 
-assert stdenv.isDarwin -> cxxabi.libName == "c++abi";
+  cmakeFlags = [
+    "-DLLVM_ENABLE_RUNTIMES=${lib.concatStringsSep ";" runtimes}"
+  ] ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib,
+    # but that does not appear to be the case for example when building
+    # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc).
+    "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib"
+    "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DCMAKE_C_COMPILER_WORKS=ON"
+    "-DCMAKE_CXX_COMPILER_WORKS=ON"
+    "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
+  ] ++ cxxCMakeFlags
+    ++ lib.optionals (cxxabi == null) cxxabiCMakeFlags;
+
+in
 
 stdenv.mkDerivation rec {
-  pname = basename + lib.optionalString headersOnly "-headers";
-  inherit version;
+  pname = basename;
+  inherit version cmakeFlags;
 
-  src = runCommand "${pname}-src-${version}" {} ''
-    mkdir -p "$out"
-    cp -r ${monorepoSrc}/cmake "$out"
-    cp -r ${monorepoSrc}/${basename} "$out"
-    mkdir -p "$out/libcxxabi"
-    cp -r ${monorepoSrc}/libcxxabi/include "$out/libcxxabi"
+  src = runCommand "${pname}-src-${version}" {} (''
     mkdir -p "$out/llvm"
+    cp -r ${monorepoSrc}/cmake "$out"
+    cp -r ${monorepoSrc}/libcxx "$out"
     cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
     cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
     cp -r ${monorepoSrc}/third-party "$out"
     cp -r ${monorepoSrc}/runtimes "$out"
-  '';
+  '' + lib.optionalString (cxxabi == null) ''
+    cp -r ${monorepoSrc}/libcxxabi "$out"
+  '');
 
   sourceRoot = "${src.name}/runtimes";
 
-  outputs = [ "out" ] ++ lib.optional (!headersOnly) "dev";
-
-  prePatch = ''
-    cd ../${basename}
-    chmod -R u+w .
-  '';
-
-  patches = [
-    ./gnu-install-dirs.patch
-    # fix for https://github.com/NixOS/nixpkgs/issues/269548
-    # https://github.com/llvm/llvm-project/pull/77218
-    (fetchpatch {
-      name = "darwin-system-libcxxabi-link-flags.patch";
-      url = "https://github.com/llvm/llvm-project/commit/c5b89b29ee6e3c444a355fd1cf733ce7ab2e316a.patch";
-      hash = "sha256-LNoPg1KCoP8RWxU/AzHR52f4Dww24I9BGQJedMhFxyQ=";
-      relative = "libcxx";
-    })
-  ];
-
-  postPatch = ''
-    cd ../runtimes
-  '';
+  outputs = [ "out" "dev" ];
 
   preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
     patchShebangs utils/cat_files.py
   '';
 
   nativeBuildInputs = [ cmake ninja python3 ]
-    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
-
-  buildInputs =
-    lib.optionals (!headersOnly) [ cxxabi ]
-    ++ lib.optionals (stdenv.hostPlatform.useLLVM or false && !stdenv.hostPlatform.isWasm) [ libunwind ];
-
-  cmakeFlags = let
-    # See: https://libcxx.llvm.org/BuildingLibcxx.html#cmdoption-arg-libcxx-cxx-abi-string
-    libcxx_cxx_abi_opt = {
-      "c++abi" = "system-libcxxabi";
-      "cxxrt" = "libcxxrt";
-    }.${cxxabi.libName} or (throw "unknown cxxabi: ${cxxabi.libName} (${cxxabi.pname})");
-  in [
-    "-DLLVM_ENABLE_RUNTIMES=libcxx"
-    "-DLIBCXX_CXX_ABI=${if headersOnly then "none" else libcxx_cxx_abi_opt}"
-  ] ++ lib.optional (!headersOnly && cxxabi.libName == "c++abi") "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi.dev}/include/c++/v1"
-    ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
-    ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
-      "-DLIBCXX_USE_COMPILER_RT=ON"
-      # There's precedent for this in llvm-project/libcxx/cmake/caches.
-      # In a monorepo build you might do the following in the libcxxabi build:
-      #   -DLLVM_ENABLE_PROJECTS=libcxxabi;libunwinder
-      #   -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_STATIC_LIBRARY=On
-      # libcxx appears to require unwind and doesn't pull it in via other means.
-      "-DLIBCXX_ADDITIONAL_LIBRARIES=unwind"
-    ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-      "-DLIBCXX_ENABLE_THREADS=OFF"
-      "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
-      "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
-      "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
-    ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF"
-    # If we're only building the headers we don't actually *need* a functioning
-    # C/C++ compiler:
-    ++ lib.optionals (headersOnly) [
-      "-DCMAKE_C_COMPILER_WORKS=ON"
-      "-DCMAKE_CXX_COMPILER_WORKS=ON"
-    ];
-
-  ninjaFlags = lib.optional headersOnly "generate-cxx-headers";
-  installTargets = lib.optional headersOnly "install-cxx-headers";
+    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames
+    ++ lib.optional (cxxabi != null) lndir;
+
+  buildInputs = [ cxxabi ]
+    ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [ libunwind ];
+
+  # libc++.so is a linker script which expands to multiple libraries,
+  # libc++.so.1 and libc++abi.so or the external cxxabi. ld-wrapper doesn't
+  # support linker scripts so the external cxxabi needs to be symlinked in
+  postInstall = lib.optionalString (cxxabi != null) ''
+    lndir ${lib.getDev cxxabi}/include ''${!outputDev}/include/c++/v1
+    lndir ${lib.getLib cxxabi}/lib ''${!outputLib}/lib
+  '';
 
   passthru = {
     isLLVM = true;
-    inherit cxxabi;
   };
 
   meta = llvm_meta // {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/16/libcxx/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/16/libcxx/gnu-install-dirs.patch
deleted file mode 100644
index daee5bdd0ed3..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/16/libcxx/gnu-install-dirs.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 74eff2002fc9..c935d10878bb 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -419,7 +419,7 @@ if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})
-   set(LIBCXX_GENERATED_INCLUDE_DIR "${LLVM_BINARY_DIR}/include/c++/v1")
-   set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LLVM_BINARY_DIR}/include/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1")
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-       "Path where built libc++ libraries should be installed.")
-   set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1" CACHE PATH
-       "Path where target-specific libc++ headers should be installed.")
-@@ -436,7 +436,7 @@ else()
-     set(LIBCXX_GENERATED_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include/c++/v1")
-   endif()
-   set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LIBCXX_GENERATED_INCLUDE_DIR}")
--  set(LIBCXX_INSTALL_LIBRARY_DIR lib${LIBCXX_LIBDIR_SUFFIX} CACHE PATH
-+  set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXX_LIBDIR_SUFFIX} CACHE PATH
-       "Path where built libc++ libraries should be installed.")
-   set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "${LIBCXX_INSTALL_INCLUDE_DIR}" CACHE PATH
-       "Path where target-specific libc++ headers should be installed.")
diff --git a/nixpkgs/pkgs/development/compilers/llvm/16/libcxxabi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/16/libcxxabi/default.nix
deleted file mode 100644
index 90c57dc52a2d..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/16/libcxxabi/default.nix
+++ /dev/null
@@ -1,114 +0,0 @@
-{ lib, stdenv, llvm_meta, cmake, ninja, python3
-, monorepoSrc, runCommand, fetchpatch
-, cxx-headers, libunwind, version
-, enableShared ? !stdenv.hostPlatform.isStatic
-}:
-
-stdenv.mkDerivation rec {
-  pname = "libcxxabi";
-  inherit version;
-
-  src = runCommand "${pname}-src-${version}" {} ''
-    mkdir -p "$out"
-    cp -r ${monorepoSrc}/cmake "$out"
-    cp -r ${monorepoSrc}/${pname} "$out"
-    mkdir -p "$out/libcxx/src"
-    cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx"
-    cp -r ${monorepoSrc}/libcxx/include "$out/libcxx"
-    cp -r ${monorepoSrc}/libcxx/src/include "$out/libcxx/src"
-    mkdir -p "$out/llvm"
-    cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
-    cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
-    cp -r ${monorepoSrc}/runtimes "$out"
-  '';
-
-  sourceRoot = "${src.name}/runtimes";
-
-  outputs = [ "out" "dev" ];
-
-  postUnpack = lib.optionalString stdenv.isDarwin ''
-    export TRIPLE=x86_64-apple-darwin
-  '';
-
-  prePatch = ''
-    cd ../${pname}
-    chmod -R u+w .
-  '';
-
-  patches = [
-    ./gnu-install-dirs.patch
-
-    # https://reviews.llvm.org/D132298, Allow building libcxxabi alone
-    (fetchpatch {
-      url = "https://github.com/llvm/llvm-project/commit/e6a0800532bb409f6d1c62f3698bdd6994a877dc.patch";
-      sha256 = "1xyjd56m4pfwq8p3xh6i8lhkk9kq15jaml7qbhxdf87z4jjkk63a";
-      stripLen = 1;
-    })
-  ];
-
-  postPatch = ''
-    cd ../runtimes
-  '';
-
-  nativeBuildInputs = [ cmake ninja python3 ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isWasm) libunwind;
-
-  cmakeFlags = [
-    "-DLLVM_ENABLE_RUNTIMES=libcxxabi"
-    "-DLIBCXXABI_LIBCXX_INCLUDES=${cxx-headers}/include/c++/v1"
-
-    # `libcxxabi`'s build does not need a toolchain with a c++ stdlib attached
-    # (we specify the headers it should use explicitly above).
-    #
-    # CMake however checks for this anyways; this flag tells it not to. See:
-    # https://github.com/llvm/llvm-project/blob/4bd3f3759259548e159aeba5c76efb9a0864e6fa/llvm/runtimes/CMakeLists.txt#L243
-    "-DCMAKE_CXX_COMPILER_WORKS=ON"
-  ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false && !stdenv.hostPlatform.isWasm) [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-    # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib,
-    # but that does not appear to be the case for example when building
-    # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc).
-    "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib"
-    "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DCMAKE_C_COMPILER_WORKS=ON"
-    "-DCMAKE_CXX_COMPILER_WORKS=ON"
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-    "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
-
-  preInstall = lib.optionalString stdenv.isDarwin ''
-    for file in lib/*.dylib; do
-      # this should be done in CMake, but having trouble figuring out
-      # the magic combination of necessary CMake variables
-      # if you fancy a try, take a look at
-      # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
-      install_name_tool -id $out/$file $file
-    done
-  '';
-
-  postInstall = ''
-    mkdir -p "$dev/include"
-    install -m 644 ../../${pname}/include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include"
-  '';
-
-  passthru = {
-    libName = "c++abi";
-  };
-
-  meta = llvm_meta // {
-    homepage = "https://libcxxabi.llvm.org/";
-    description = "Provides C++ standard library support";
-    longDescription = ''
-      libc++abi is a new implementation of low level support for a standard C++ library.
-    '';
-    # "All of the code in libc++abi is dual licensed under the MIT license and
-    # the UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/16/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/16/libcxxabi/gnu-install-dirs.patch
deleted file mode 100644
index fa587612aaf6..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/16/libcxxabi/gnu-install-dirs.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b8326d08d23a..a1e36f713161 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -187,7 +187,7 @@ set(LIBCXXABI_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXXABI_HEADER_DIR ${LLVM_BINARY_DIR})
-   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-       "Path where built libc++abi libraries should be installed.")
-   if(LIBCXX_LIBDIR_SUBDIR)
-     string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
-@@ -201,7 +201,7 @@ else()
-     set(LIBCXXABI_HEADER_DIR ${CMAKE_BINARY_DIR})
-     set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX})
-   endif()
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH
-       "Path where built libc++abi libraries should be installed.")
- endif()
- 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/16/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/16/llvm/default.nix
index aed9c367d1ad..0a8d877ba83c 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/16/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/16/llvm/default.nix
@@ -220,6 +220,11 @@ in
       --replace "PassBuilderCallbacksTest.cpp" ""
     rm unittests/IR/PassBuilderCallbacksTest.cpp
     rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test
+
+    # Fails in the presence of anti-virus software or other intrusion-detection software that
+    # modifies the atime when run. See #284056.
+    rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test
+
     # timing-based tests are trouble
     rm utils/lit/tests/googletest-timeout.py
   '' + optionalString stdenv.hostPlatform.isMusl ''
diff --git a/nixpkgs/pkgs/development/compilers/llvm/17/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/17/compiler-rt/default.nix
index 0f15a9e12cde..2a15e5302b46 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/17/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/17/compiler-rt/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, llvm_meta, version
 , monorepoSrc, runCommand
-, cmake, ninja, python3, xcbuild, libllvm, linuxHeaders, libcxxabi, libxcrypt
+, cmake, ninja, python3, xcbuild, libllvm, linuxHeaders, libxcrypt
 , doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD
 }:
 
@@ -31,8 +31,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ cmake ninja python3 libllvm.dev ]
     ++ lib.optional stdenv.isDarwin xcbuild.xcrun;
   buildInputs =
-    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders
-    ++ lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
+    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders;
 
   env.NIX_CFLAGS_COMPILE = toString ([
     "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
@@ -141,6 +140,7 @@ stdenv.mkDerivation {
   meta = llvm_meta // {
     homepage = "https://compiler-rt.llvm.org/";
     description = "Compiler runtime libraries";
+    mainProgram = "hwasan_symbolize";
     longDescription = ''
       The compiler-rt project provides highly tuned implementations of the
       low-level code generator support routines like "__fixunsdfdi" and other
diff --git a/nixpkgs/pkgs/development/compilers/llvm/17/default.nix b/nixpkgs/pkgs/development/compilers/llvm/17/default.nix
index 60cae920945b..a9138e3c79b6 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/17/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/17/default.nix
@@ -134,7 +134,6 @@ in let
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
       extraPackages = [
-        libcxx.cxxabi
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = mkExtraBuildCommands cc;
@@ -199,7 +198,6 @@ in let
       libcxx = targetLlvmLibraries.libcxx;
       bintools = bintools';
       extraPackages = [
-        libcxx.cxxabi
         targetLlvmLibraries.compiler-rt
       ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
         targetLlvmLibraries.libunwind
@@ -308,45 +306,7 @@ in let
 
     libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
 
-    libcxxabi = let
-      # CMake will "require" a compiler capable of compiling C++ programs
-      # cxx-header's build does not actually use one so it doesn't really matter
-      # what stdenv we use here, as long as CMake is happy.
-      cxx-headers = callPackage ./libcxx {
-        inherit llvm_meta;
-        # Note that if we use the regular stdenv here we'll get cycle errors
-        # when attempting to use this compiler in the stdenv.
-        #
-        # The final stdenv pulls `cxx-headers` from the package set where
-        # hostPlatform *is* the target platform which means that `stdenv` at
-        # that point attempts to use this toolchain.
-        #
-        # So, we use `stdenv_` (the stdenv containing `clang` from this package
-        # set, defined below) to sidestep this issue.
-        #
-        # Because we only use `cxx-headers` in `libcxxabi` (which depends on the
-        # clang stdenv _anyways_), this is okay.
-        stdenv = stdenv_;
-        headersOnly = true;
-      };
-
-      # `libcxxabi` *doesn't* need a compiler with a working C++ stdlib but it
-      # *does* need a relatively modern C++ compiler (see:
-      # https://releases.llvm.org/15.0.0/projects/libcxx/docs/index.html#platform-and-compiler-support).
-      #
-      # So, we use the clang from this LLVM package set, like libc++
-      # "boostrapping builds" do:
-      # https://releases.llvm.org/15.0.0/projects/libcxx/docs/BuildingLibcxx.html#bootstrapping-build
-      #
-      # We cannot use `clangNoLibcxx` because that contains `compiler-rt` which,
-      # on macOS, depends on `libcxxabi`, thus forming a cycle.
-      stdenv_ = overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc;
-    in callPackage ./libcxxabi {
-      stdenv = stdenv_;
-      inherit llvm_meta cxx-headers;
-    };
-
-    # Like `libcxxabi` above, `libcxx` requires a fairly modern C++ compiler,
+    # `libcxx` requires a fairly modern C++ compiler,
     # so: we use the clang from this LLVM package set instead of the regular
     # stdenv's compiler.
     libcxx = callPackage ./libcxx {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/17/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/17/libcxx/default.nix
index 8f4b0cec8d40..9ee4fd180d4b 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/17/libcxx/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/17/libcxx/default.nix
@@ -1,71 +1,102 @@
 { lib, stdenv, llvm_meta
 , monorepoSrc, runCommand, fetchpatch
-, cmake, ninja, python3, fixDarwinDylibNames, version
-, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi
-, libcxxabi, libcxxrt, libunwind
+, cmake, lndir, ninja, python3, fixDarwinDylibNames, version
+, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else null
+, libcxxrt, libunwind
 , enableShared ? !stdenv.hostPlatform.isStatic
-
-# If headersOnly is true, the resulting package would only include the headers.
-# Use this to break the circular dependency between libcxx and libcxxabi.
-#
-# Some context:
-# https://reviews.llvm.org/rG1687f2bbe2e2aaa092f942d4a97d41fad43eedfb
-, headersOnly ? false
 }:
 
+# external cxxabi is not supported on Darwin as the build will not link libcxx
+# properly and not re-export the cxxabi symbols into libcxx
+# https://github.com/NixOS/nixpkgs/issues/166205
+# https://github.com/NixOS/nixpkgs/issues/269548
+assert cxxabi == null || !stdenv.hostPlatform.isDarwin;
 let
   basename = "libcxx";
-in
+  cxxabiName = "lib${if cxxabi == null then "cxxabi" else cxxabi.libName}";
+  runtimes = [ "libcxx" ] ++ lib.optional (cxxabi == null) "libcxxabi";
+
+  # Note: useLLVM is likely false for Darwin but true under pkgsLLVM
+  useLLVM = stdenv.hostPlatform.useLLVM or false;
+
+  cxxabiCMakeFlags = lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    "-DLIBCXXABI_USE_COMPILER_RT=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
+
+  cxxCMakeFlags = [
+    "-DLIBCXX_CXX_ABI=${cxxabiName}"
+  ] ++ lib.optionals (cxxabi != null) [
+    "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${lib.getDev cxxabi}/include"
+  ] ++ lib.optionals (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) [
+    "-DLIBCXX_HAS_MUSL_LIBC=1"
+  ] ++ lib.optionals useLLVM [
+    "-DLIBCXX_USE_COMPILER_RT=ON"
+    # There's precedent for this in llvm-project/libcxx/cmake/caches.
+    # In a monorepo build you might do the following in the libcxxabi build:
+    #   -DLLVM_ENABLE_PROJECTS=libcxxabi;libunwinder
+    #   -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_STATIC_LIBRARY=On
+    # libcxx appears to require unwind and doesn't pull it in via other means.
+    "-DLIBCXX_ADDITIONAL_LIBRARIES=unwind"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXX_ENABLE_THREADS=OFF"
+    "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
+    "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXX_ENABLE_SHARED=OFF"
+  ];
+
+  cmakeFlags = [
+    "-DLLVM_ENABLE_RUNTIMES=${lib.concatStringsSep ";" runtimes}"
+  ] ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib,
+    # but that does not appear to be the case for example when building
+    # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc).
+    "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib"
+    "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DCMAKE_C_COMPILER_WORKS=ON"
+    "-DCMAKE_CXX_COMPILER_WORKS=ON"
+    "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
+  ] ++ cxxCMakeFlags
+    ++ lib.optionals (cxxabi == null) cxxabiCMakeFlags;
 
-assert stdenv.isDarwin -> cxxabi.libName == "c++abi";
+in
 
 stdenv.mkDerivation rec {
-  pname = basename + lib.optionalString headersOnly "-headers";
-  inherit version;
+  pname = basename;
+  inherit version cmakeFlags;
 
-  src = runCommand "${pname}-src-${version}" {} ''
-    mkdir -p "$out"
-    cp -r ${monorepoSrc}/cmake "$out"
-    cp -r ${monorepoSrc}/${basename} "$out"
-    mkdir -p "$out/libcxxabi"
-    cp -r ${monorepoSrc}/libcxxabi/include "$out/libcxxabi"
+  src = runCommand "${pname}-src-${version}" {} (''
     mkdir -p "$out/llvm"
+    cp -r ${monorepoSrc}/cmake "$out"
+    cp -r ${monorepoSrc}/libcxx "$out"
     cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
     cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
     cp -r ${monorepoSrc}/third-party "$out"
     cp -r ${monorepoSrc}/runtimes "$out"
-  '';
-
-  sourceRoot = "${src.name}/runtimes";
-
-  outputs = [ "out" ] ++ lib.optional (!headersOnly) "dev";
+  '' + lib.optionalString (cxxabi == null) ''
+    cp -r ${monorepoSrc}/libcxxabi "$out"
+  '');
 
-  prePatch = ''
-    cd ../${basename}
-    chmod -R u+w .
-  '';
+  outputs = [ "out" "dev" ];
 
-  patches = [
-    # fix for https://github.com/NixOS/nixpkgs/issues/269548
-    # https://github.com/llvm/llvm-project/pull/77218
-    (fetchpatch {
-      name = "darwin-system-libcxxabi-link-flags.patch";
-      url = "https://github.com/llvm/llvm-project/commit/c5b89b29ee6e3c444a355fd1cf733ce7ab2e316a.patch";
-      hash = "sha256-LNoPg1KCoP8RWxU/AzHR52f4Dww24I9BGQJedMhFxyQ=";
-      relative = "libcxx";
-    })
-  ] ++ lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [
+  patches = lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [
     # https://github.com/llvm/llvm-project/issues/64226
     (fetchpatch {
       name = "0042-mbstate_t-not-defined.patch";
       url = "https://github.com/macports/macports-ports/raw/acd8acb171f1658596ed1cf25da48d5b932e2d19/lang/llvm-17/files/0042-mbstate_t-not-defined.patch";
-      relative = "libcxx";
-      hash = "sha256-fVbX99W1gQrSaMFeBkzsJmNWNy0xVSw+oFvDe4AYXL0=";
+      hash = "sha256-jo+DYA6zuSv9OH3A0bYwY5TlkWprup4OKQ7rfK1WHBI=";
     })
   ];
 
   postPatch = ''
-    cd ../runtimes
+    cd runtimes
   '';
 
   preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
@@ -73,50 +104,22 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ cmake ninja python3 ]
-    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
-
-  buildInputs =
-    lib.optionals (!headersOnly) [ cxxabi ]
-    ++ lib.optionals (stdenv.hostPlatform.useLLVM or false && !stdenv.hostPlatform.isWasm) [ libunwind ];
-
-  cmakeFlags = let
-    # See: https://libcxx.llvm.org/BuildingLibcxx.html#cmdoption-arg-libcxx-cxx-abi-string
-    libcxx_cxx_abi_opt = {
-      "c++abi" = "system-libcxxabi";
-      "cxxrt" = "libcxxrt";
-    }.${cxxabi.libName} or (throw "unknown cxxabi: ${cxxabi.libName} (${cxxabi.pname})");
-  in [
-    "-DLLVM_ENABLE_RUNTIMES=libcxx"
-    "-DLIBCXX_CXX_ABI=${if headersOnly then "none" else libcxx_cxx_abi_opt}"
-  ] ++ lib.optional (!headersOnly && cxxabi.libName == "c++abi") "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi.dev}/include/c++/v1"
-    ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
-    ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
-      "-DLIBCXX_USE_COMPILER_RT=ON"
-      # There's precedent for this in llvm-project/libcxx/cmake/caches.
-      # In a monorepo build you might do the following in the libcxxabi build:
-      #   -DLLVM_ENABLE_PROJECTS=libcxxabi;libunwinder
-      #   -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_STATIC_LIBRARY=On
-      # libcxx appears to require unwind and doesn't pull it in via other means.
-      "-DLIBCXX_ADDITIONAL_LIBRARIES=unwind"
-    ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-      "-DLIBCXX_ENABLE_THREADS=OFF"
-      "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
-      "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
-      "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
-    ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF"
-    # If we're only building the headers we don't actually *need* a functioning
-    # C/C++ compiler:
-    ++ lib.optionals (headersOnly) [
-      "-DCMAKE_C_COMPILER_WORKS=ON"
-      "-DCMAKE_CXX_COMPILER_WORKS=ON"
-    ];
-
-  ninjaFlags = lib.optional headersOnly "generate-cxx-headers";
-  installTargets = lib.optional headersOnly "install-cxx-headers";
+    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames
+    ++ lib.optional (cxxabi != null) lndir;
+
+  buildInputs = [ cxxabi ]
+    ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [ libunwind ];
+
+  # libc++.so is a linker script which expands to multiple libraries,
+  # libc++.so.1 and libc++abi.so or the external cxxabi. ld-wrapper doesn't
+  # support linker scripts so the external cxxabi needs to be symlinked in
+  postInstall = lib.optionalString (cxxabi != null) ''
+    lndir ${lib.getDev cxxabi}/include ''${!outputDev}/include/c++/v1
+    lndir ${lib.getLib cxxabi}/lib ''${!outputLib}/lib
+  '';
 
   passthru = {
     isLLVM = true;
-    inherit cxxabi;
   };
 
   meta = llvm_meta // {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/17/libcxxabi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/17/libcxxabi/default.nix
deleted file mode 100644
index 30ca99b20fd7..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/17/libcxxabi/default.nix
+++ /dev/null
@@ -1,114 +0,0 @@
-{ lib, stdenv, llvm_meta, cmake, ninja, python3
-, monorepoSrc, runCommand, fetchpatch
-, cxx-headers, libunwind, version
-, enableShared ? !stdenv.hostPlatform.isStatic
-}:
-
-stdenv.mkDerivation rec {
-  pname = "libcxxabi";
-  inherit version;
-
-  src = runCommand "${pname}-src-${version}" {} ''
-    mkdir -p "$out"
-    cp -r ${monorepoSrc}/cmake "$out"
-    cp -r ${monorepoSrc}/${pname} "$out"
-    mkdir -p "$out/libcxx/src"
-    cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx"
-    cp -r ${monorepoSrc}/libcxx/include "$out/libcxx"
-    cp -r ${monorepoSrc}/libcxx/src/include "$out/libcxx/src"
-    mkdir -p "$out/llvm"
-    cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
-    cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
-    cp -r ${monorepoSrc}/runtimes "$out"
-  '';
-
-  sourceRoot = "${src.name}/runtimes";
-
-  outputs = [ "out" "dev" ];
-
-  postUnpack = lib.optionalString stdenv.isDarwin ''
-    export TRIPLE=x86_64-apple-darwin
-  '';
-
-  prePatch = ''
-    cd ../${pname}
-    chmod -R u+w .
-  '';
-
-  patches = [
-    ./gnu-install-dirs.patch
-
-    # https://reviews.llvm.org/D132298, Allow building libcxxabi alone
-    (fetchpatch {
-      url = "https://github.com/llvm/llvm-project/commit/e6a0800532bb409f6d1c62f3698bdd6994a877dc.patch";
-      sha256 = "1xyjd56m4pfwq8p3xh6i8lhkk9kq15jaml7qbhxdf87z4jjkk63a";
-      stripLen = 1;
-    })
-  ];
-
-  postPatch = ''
-    cd ../runtimes
-  '';
-
-  nativeBuildInputs = [ cmake ninja python3 ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isWasm) libunwind;
-
-  cmakeFlags = [
-    "-DLLVM_ENABLE_RUNTIMES=libcxxabi"
-    "-DLIBCXXABI_LIBCXX_INCLUDES=${cxx-headers}/include/c++/v1"
-
-    # `libcxxabi`'s build does not need a toolchain with a c++ stdlib attached
-    # (we specify the headers it should use explicitly above).
-    #
-    # CMake however checks for this anyways; this flag tells it not to. See:
-    # https://github.com/llvm/llvm-project/blob/4bd3f3759259548e159aeba5c76efb9a0864e6fa/llvm/runtimes/CMakeLists.txt#L243
-    "-DCMAKE_CXX_COMPILER_WORKS=ON"
-  ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false && !stdenv.hostPlatform.isWasm) [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-    # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib,
-    # but that does not appear to be the case for example when building
-    # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc).
-    "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib"
-    "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DCMAKE_C_COMPILER_WORKS=ON"
-    "-DCMAKE_CXX_COMPILER_WORKS=ON"
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-    "-DUNIX=ON"
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
-
-  preInstall = lib.optionalString stdenv.isDarwin ''
-    for file in lib/*.dylib; do
-      # this should be done in CMake, but having trouble figuring out
-      # the magic combination of necessary CMake variables
-      # if you fancy a try, take a look at
-      # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
-      install_name_tool -id $out/$file $file
-    done
-  '';
-
-  postInstall = ''
-    mkdir -p "$dev/include"
-    install -m 644 ../../${pname}/include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include"
-  '';
-
-  passthru = {
-    libName = "c++abi";
-  };
-
-  meta = llvm_meta // {
-    homepage = "https://libcxxabi.llvm.org/";
-    description = "Provides C++ standard library support";
-    longDescription = ''
-      libc++abi is a new implementation of low level support for a standard C++ library.
-    '';
-    # "All of the code in libc++abi is dual licensed under the MIT license and
-    # the UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/17/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/17/libcxxabi/gnu-install-dirs.patch
deleted file mode 100644
index 51382fcefed2..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/17/libcxxabi/gnu-install-dirs.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt
-index f380fe6b6b92..a9656258c38e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -188,7 +188,7 @@ set(LIBCXXABI_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXXABI_HEADER_DIR ${LLVM_BINARY_DIR})
-   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE STRING
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-       "Path where built libc++abi libraries should be installed.")
-   if(LIBCXX_LIBDIR_SUBDIR)
-     string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
-@@ -202,7 +202,7 @@ else()
-     set(LIBCXXABI_HEADER_DIR ${CMAKE_BINARY_DIR})
-     set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX})
-   endif()
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX} CACHE STRING
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH
-       "Path where built libc++abi libraries should be installed.")
- endif()
- 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/17/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/17/llvm/default.nix
index 2c5d6aeb5cec..ec2edabe4ec5 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/17/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/17/llvm/default.nix
@@ -219,6 +219,10 @@ stdenv.mkDerivation (rec {
       --replace "PassBuilderCallbacksTest.cpp" ""
     rm unittests/IR/PassBuilderCallbacksTest.cpp
     rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test
+
+    # Fails in the presence of anti-virus software or other intrusion-detection software that
+    # modifies the atime when run. See #284056.
+    rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test
   '' + optionalString stdenv.hostPlatform.isMusl ''
     patch -p1 -i ${../../common/llvm/TLI-musl.patch}
     substituteInPlace unittests/Support/CMakeLists.txt \
diff --git a/nixpkgs/pkgs/development/compilers/llvm/common/libclc.nix b/nixpkgs/pkgs/development/compilers/llvm/common/libclc.nix
index c91930963b20..4c2081e693c1 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/common/libclc.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/common/libclc.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://libclc.llvm.org/";
     description = "Implementation of the library requirements of the OpenCL C programming language";
+    mainProgram = "prepare_builtins";
     license = licenses.mit;
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/default.nix
index 7b44a872adc4..51f4e95ef2b5 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/compiler-rt/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, llvm_meta, version
 , monorepoSrc, runCommand
-, cmake, ninja, python3, xcbuild, libllvm, linuxHeaders, libcxxabi, libxcrypt
+, cmake, ninja, python3, xcbuild, libllvm, linuxHeaders, libxcrypt
 , doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD
 }:
 
@@ -31,8 +31,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ cmake ninja python3 libllvm.dev ]
     ++ lib.optional stdenv.isDarwin xcbuild.xcrun;
   buildInputs =
-    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders
-    ++ lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
+    lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders;
 
   env.NIX_CFLAGS_COMPILE = toString ([
     "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0"
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/default.nix
index 1efaa0402fc7..6ebb2ea9fcc2 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/git/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/default.nix
@@ -1,5 +1,5 @@
-{ lowPrio, newScope, pkgs, lib, stdenv, stdenvNoCC, cmake, ninja
-, gccForLibs, preLibcCrossHeaders
+{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
+, preLibcCrossHeaders
 , libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith
 , buildLlvmTools # tools, but from the previous stage, for cross
 , targetLlvmLibraries # libraries, but from the next stage, for cross
@@ -25,7 +25,7 @@
   #   rev-version = /* human readable version; i.e. "unstable-2022-26-07" */;
   #   sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */;
   # }
-, officialRelease ? { version = "18.1.0-rc3"; sha256 = "sha256-qRzY2kTLeRxXQCSuVP592Awafm5wjVeFY60d6082mSc="; }
+, officialRelease ? { version = "18.1.0-rc4"; sha256 = "sha256-fVpwewbjoPMPslIEZ+WAtaQ+YKc0XWGl8EbP/TbQb8o="; }
   # i.e.:
   # {
   #   version = /* i.e. "15.0.0" */;
@@ -134,7 +134,6 @@ in let
       cc = tools.clang-unwrapped;
       libcxx = targetLlvmLibraries.libcxx;
       extraPackages = [
-        libcxx.cxxabi
         targetLlvmLibraries.compiler-rt
       ];
       extraBuildCommands = mkExtraBuildCommands cc;
@@ -199,7 +198,6 @@ in let
       libcxx = targetLlvmLibraries.libcxx;
       bintools = bintools';
       extraPackages = [
-        libcxx.cxxabi
         targetLlvmLibraries.compiler-rt
       ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
         targetLlvmLibraries.libunwind
@@ -274,6 +272,12 @@ in let
       nixSupport.cc-cflags = [ "-fno-exceptions" ];
     });
 
+    # Has to be in tools despite mostly being a library,
+    # because we use a native helper executable from a
+    # non-cross build in cross builds.
+    libclc = callPackage ../common/libclc.nix {
+      inherit buildLlvmTools;
+    };
   });
 
   libraries = lib.makeExtensible (libraries: let
@@ -303,45 +307,7 @@ in let
 
     libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
 
-    libcxxabi = let
-      # CMake will "require" a compiler capable of compiling C++ programs
-      # cxx-header's build does not actually use one so it doesn't really matter
-      # what stdenv we use here, as long as CMake is happy.
-      cxx-headers = callPackage ./libcxx {
-        inherit llvm_meta;
-        # Note that if we use the regular stdenv here we'll get cycle errors
-        # when attempting to use this compiler in the stdenv.
-        #
-        # The final stdenv pulls `cxx-headers` from the package set where
-        # hostPlatform *is* the target platform which means that `stdenv` at
-        # that point attempts to use this toolchain.
-        #
-        # So, we use `stdenv_` (the stdenv containing `clang` from this package
-        # set, defined below) to sidestep this issue.
-        #
-        # Because we only use `cxx-headers` in `libcxxabi` (which depends on the
-        # clang stdenv _anyways_), this is okay.
-        stdenv = stdenv_;
-        headersOnly = true;
-      };
-
-      # `libcxxabi` *doesn't* need a compiler with a working C++ stdlib but it
-      # *does* need a relatively modern C++ compiler (see:
-      # https://releases.llvm.org/15.0.0/projects/libcxx/docs/index.html#platform-and-compiler-support).
-      #
-      # So, we use the clang from this LLVM package set, like libc++
-      # "boostrapping builds" do:
-      # https://releases.llvm.org/15.0.0/projects/libcxx/docs/BuildingLibcxx.html#bootstrapping-build
-      #
-      # We cannot use `clangNoLibcxx` because that contains `compiler-rt` which,
-      # on macOS, depends on `libcxxabi`, thus forming a cycle.
-      stdenv_ = overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc;
-    in callPackage ./libcxxabi {
-      stdenv = stdenv_;
-      inherit llvm_meta cxx-headers;
-    };
-
-    # Like `libcxxabi` above, `libcxx` requires a fairly modern C++ compiler,
+    # `libcxx` requires a fairly modern C++ compiler,
     # so: we use the clang from this LLVM package set instead of the regular
     # stdenv's compiler.
     libcxx = callPackage ./libcxx {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch b/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch
index 0a2e8db07391..29942f8ed03d 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch
@@ -9,13 +9,13 @@ removes space from
 https://github.com/macports/macports-ports/raw/acd8acb171f1658596ed1cf25da48d5b932e2d19/lang/llvm-17/files/0042-mbstate_t-not-defined.patch
 so it applies cleanly
 ---
- include/__mbstate_t.h | 3 +++
+ libcxx/include/__mbstate_t.h | 3 +++
  1 file changed, 3 insertions(+)
 
-diff --git a/include/__mbstate_t.h b/include/__mbstate_t.h
+diff --git a/libcxx/include/__mbstate_t.h b/libcxx/include/__mbstate_t.h
 index bfa6d61..5f51112 100644
---- a/include/__mbstate_t.h
-+++ b/include/__mbstate_t.h
+--- a/libcxx/include/__mbstate_t.h
++++ b/libcxx/include/__mbstate_t.h
 @@ -42,6 +42,9 @@
  #elif __has_include(<bits/types/mbstate_t.h>)
  #  include <bits/types/mbstate_t.h> // works on most Unixes
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/default.nix
index 11f4c6fe5fd1..4e3404dbe194 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/libcxx/default.nix
@@ -1,57 +1,108 @@
 { lib, stdenv, llvm_meta
 , monorepoSrc, runCommand, fetchpatch
-, cmake, ninja, python3, fixDarwinDylibNames, version
-, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else libcxxabi
-, libcxxabi, libcxxrt, libunwind
+, cmake, lndir, ninja, python3, fixDarwinDylibNames, version
+, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else null
+, libcxxrt, libunwind
 , enableShared ? !stdenv.hostPlatform.isStatic
-
-# If headersOnly is true, the resulting package would only include the headers.
-# Use this to break the circular dependency between libcxx and libcxxabi.
-#
-# Some context:
-# https://reviews.llvm.org/rG1687f2bbe2e2aaa092f942d4a97d41fad43eedfb
-, headersOnly ? false
 }:
 
+# external cxxabi is not supported on Darwin as the build will not link libcxx
+# properly and not re-export the cxxabi symbols into libcxx
+# https://github.com/NixOS/nixpkgs/issues/166205
+# https://github.com/NixOS/nixpkgs/issues/269548
+assert cxxabi == null || !stdenv.hostPlatform.isDarwin;
 let
   basename = "libcxx";
-in
+  cxxabiName = "lib${if cxxabi == null then "cxxabi" else cxxabi.libName}";
+  runtimes = [ "libcxx" ] ++ lib.optional (cxxabi == null) "libcxxabi";
+
+  # Note: useLLVM is likely false for Darwin but true under pkgsLLVM
+  useLLVM = stdenv.hostPlatform.useLLVM or false;
+
+  cxxabiCMakeFlags = lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [
+    "-DLIBCXXABI_USE_COMPILER_RT=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+  ] ++ lib.optionals (lib.versionAtLeast version "18" && !(useLLVM && !stdenv.hostPlatform.isWasm)) [
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=OFF"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXXABI_ENABLE_THREADS=OFF"
+    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXXABI_ENABLE_SHARED=OFF"
+  ];
+
+  cxxCMakeFlags = [
+    "-DLIBCXX_CXX_ABI=${cxxabiName}"
+  ] ++ lib.optionals (cxxabi != null) [
+    "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${lib.getDev cxxabi}/include"
+  ] ++ lib.optionals (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) [
+    "-DLIBCXX_HAS_MUSL_LIBC=1"
+  ] ++ lib.optionals (lib.versionAtLeast version "18" && !useLLVM && stdenv.hostPlatform.libc == "glibc" && !stdenv.hostPlatform.isStatic) [
+    "-DLIBCXX_ADDITIONAL_LIBRARIES=gcc_s"
+  ] ++ lib.optionals useLLVM [
+    "-DLIBCXX_USE_COMPILER_RT=ON"
+    # There's precedent for this in llvm-project/libcxx/cmake/caches.
+    # In a monorepo build you might do the following in the libcxxabi build:
+    #   -DLLVM_ENABLE_PROJECTS=libcxxabi;libunwinder
+    #   -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_STATIC_LIBRARY=On
+    # libcxx appears to require unwind and doesn't pull it in via other means.
+    "-DLIBCXX_ADDITIONAL_LIBRARIES=unwind"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DLIBCXX_ENABLE_THREADS=OFF"
+    "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
+    "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
+  ] ++ lib.optionals (!enableShared) [
+    "-DLIBCXX_ENABLE_SHARED=OFF"
+  ];
 
-assert stdenv.isDarwin -> cxxabi.libName == "c++abi";
+  cmakeFlags = [
+    "-DLLVM_ENABLE_RUNTIMES=${lib.concatStringsSep ";" runtimes}"
+  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
+    "-DCMAKE_C_COMPILER_WORKS=ON"
+    "-DCMAKE_CXX_COMPILER_WORKS=ON"
+    "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
+  ] ++ cxxCMakeFlags
+    ++ lib.optionals (cxxabi == null) cxxabiCMakeFlags;
+
+in
 
 stdenv.mkDerivation rec {
-  pname = basename + lib.optionalString headersOnly "-headers";
-  inherit version;
+  pname = basename;
+  inherit version cmakeFlags;
 
-  src = runCommand "${pname}-src-${version}" {} ''
-    mkdir -p "$out"
-    cp -r ${monorepoSrc}/cmake "$out"
-    cp -r ${monorepoSrc}/${basename} "$out"
-    mkdir -p "$out/libcxxabi"
-    cp -r ${monorepoSrc}/libcxxabi/include "$out/libcxxabi"
+  src = runCommand "${pname}-src-${version}" {} (''
     mkdir -p "$out/llvm"
+    cp -r ${monorepoSrc}/cmake "$out"
+    cp -r ${monorepoSrc}/libcxx "$out"
     cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
     cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
     cp -r ${monorepoSrc}/third-party "$out"
     cp -r ${monorepoSrc}/runtimes "$out"
-  '';
-
-  sourceRoot = "${src.name}/runtimes";
+  '' + lib.optionalString (cxxabi == null) ''
+    cp -r ${monorepoSrc}/libcxxabi "$out"
+  '');
 
-  outputs = [ "out" ] ++ lib.optional (!headersOnly) "dev";
-
-  prePatch = ''
-    cd ../${basename}
-    chmod -R u+w .
-  '';
+  outputs = [ "out" "dev" ];
 
   patches = lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [
     # https://github.com/llvm/llvm-project/issues/64226
     ./0001-darwin-10.12-mbstate_t-fix.patch
+  ] ++ lib.optionals (cxxabi == null && lib.versionAtLeast version "18") [
+    # Allow building libcxxabi alone when using LLVM unwinder
+    (fetchpatch {
+      url = "https://github.com/llvm/llvm-project/commit/77610dd10454e87bb387040d2b51100a17ac5755.patch";
+      revert = true;
+      hash = "sha256-jFbC3vBY3nKfjknJ7UzaPyoy0iSYdD3+jUmOFeOaVcA=";
+    })
+    (fetchpatch {
+      url = "https://github.com/llvm/llvm-project/commit/48e5b5ea92674ded69b998cf35724d9012c0f57d.patch";
+      revert = true;
+      hash = "sha256-WN63L4T3GxVozPZb6kx21AgNe4rwwSUOeeryIGsvQYY=";
+    })
   ];
 
   postPatch = ''
-    cd ../runtimes
+    cd runtimes
   '';
 
   preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
@@ -59,52 +110,22 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ cmake ninja python3 ]
-    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
-
-  buildInputs =
-    lib.optionals (!headersOnly) [ cxxabi ]
-    ++ lib.optionals (stdenv.hostPlatform.useLLVM or false && !stdenv.hostPlatform.isWasm) [ libunwind ];
-
-  cmakeFlags = let
-    # See: https://libcxx.llvm.org/BuildingLibcxx.html#cmdoption-arg-libcxx-cxx-abi-string
-    libcxx_cxx_abi_opt = {
-      "c++abi" = "system-libcxxabi";
-      "cxxrt" = "libcxxrt";
-    }.${cxxabi.libName} or (throw "unknown cxxabi: ${cxxabi.libName} (${cxxabi.pname})");
-  in [
-    "-DLLVM_ENABLE_RUNTIMES=libcxx"
-    "-DLIBCXX_CXX_ABI=${if headersOnly then "none" else libcxx_cxx_abi_opt}"
-  ] ++ lib.optional (!headersOnly && cxxabi.libName == "c++abi") "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi.dev}/include/c++/v1"
-    ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
-    ++ lib.optionals (lib.versionAtLeast version "18" && !(stdenv.hostPlatform.useLLVM or false) && stdenv.hostPlatform.libc == "glibc" && !stdenv.hostPlatform.isStatic) [
-    "-DLIBCXX_ADDITIONAL_LIBRARIES=gcc_s"
-  ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
-      "-DLIBCXX_USE_COMPILER_RT=ON"
-      # There's precedent for this in llvm-project/libcxx/cmake/caches.
-      # In a monorepo build you might do the following in the libcxxabi build:
-      #   -DLLVM_ENABLE_PROJECTS=libcxxabi;libunwinder
-      #   -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_STATIC_LIBRARY=On
-      # libcxx appears to require unwind and doesn't pull it in via other means.
-      "-DLIBCXX_ADDITIONAL_LIBRARIES=unwind"
-    ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-      "-DLIBCXX_ENABLE_THREADS=OFF"
-      "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
-      "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
-      "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
-    ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF"
-    # If we're only building the headers we don't actually *need* a functioning
-    # C/C++ compiler:
-    ++ lib.optionals (headersOnly) [
-      "-DCMAKE_C_COMPILER_WORKS=ON"
-      "-DCMAKE_CXX_COMPILER_WORKS=ON"
-    ];
-
-  ninjaFlags = lib.optional headersOnly "generate-cxx-headers";
-  installTargets = lib.optional headersOnly "install-cxx-headers";
+    ++ lib.optional stdenv.isDarwin fixDarwinDylibNames
+    ++ lib.optional (cxxabi != null) lndir;
+
+  buildInputs = [ cxxabi ]
+    ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [ libunwind ];
+
+  # libc++.so is a linker script which expands to multiple libraries,
+  # libc++.so.1 and libc++abi.so or the external cxxabi. ld-wrapper doesn't
+  # support linker scripts so the external cxxabi needs to be symlinked in
+  postInstall = lib.optionalString (cxxabi != null) ''
+    lndir ${lib.getDev cxxabi}/include ''${!outputDev}/include/c++/v1
+    lndir ${lib.getLib cxxabi}/lib ''${!outputLib}/lib
+  '';
 
   passthru = {
     isLLVM = true;
-    inherit cxxabi;
   };
 
   meta = llvm_meta // {
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/default.nix
deleted file mode 100644
index 8e1979654325..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/default.nix
+++ /dev/null
@@ -1,130 +0,0 @@
-{ lib, stdenv, llvm_meta, cmake, ninja, python3
-, monorepoSrc, runCommand, fetchpatch
-, cxx-headers, libunwind, version
-, enableShared ? !stdenv.hostPlatform.isStatic
-}:
-
-stdenv.mkDerivation rec {
-  pname = "libcxxabi";
-  inherit version;
-
-  src = runCommand "${pname}-src-${version}" {} ''
-    mkdir -p "$out"
-    cp -r ${monorepoSrc}/cmake "$out"
-    cp -r ${monorepoSrc}/${pname} "$out"
-    mkdir -p "$out/libcxx/src"
-    cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx"
-    cp -r ${monorepoSrc}/libcxx/include "$out/libcxx"
-    cp -r ${monorepoSrc}/libcxx/src/include "$out/libcxx/src"
-    mkdir -p "$out/llvm"
-    cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
-    cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
-    cp -r ${monorepoSrc}/runtimes "$out"
-  '';
-
-  sourceRoot = "${src.name}/runtimes";
-
-  outputs = [ "out" "dev" ];
-
-  postUnpack = lib.optionalString stdenv.isDarwin ''
-    export TRIPLE=x86_64-apple-darwin
-  '';
-
-  prePatch = ''
-    cd ../${pname}
-    chmod -R u+w .
-  '';
-
-  patches = [
-    ./gnu-install-dirs.patch
-
-    # https://reviews.llvm.org/D132298, Allow building libcxxabi alone
-    (fetchpatch {
-      url = "https://github.com/llvm/llvm-project/commit/e6a0800532bb409f6d1c62f3698bdd6994a877dc.patch";
-      sha256 = "1xyjd56m4pfwq8p3xh6i8lhkk9kq15jaml7qbhxdf87z4jjkk63a";
-      stripLen = 1;
-    })
-  ] ++ lib.optionals (lib.versionAtLeast version "18") [
-    # Allow building libcxxabi alone when using LLVM unwinder
-    (fetchpatch {
-      url = "https://github.com/llvm/llvm-project/commit/77610dd10454e87bb387040d2b51100a17ac5755.patch";
-      stripLen = 1;
-      revert = true;
-      hash = "sha256-Jogx/cvTJ6fdyprTD1QzMIeRWcBlZZMWE/y9joOtVH0=";
-    })
-    (fetchpatch {
-      url = "https://github.com/llvm/llvm-project/commit/48e5b5ea92674ded69b998cf35724d9012c0f57d.patch";
-      stripLen = 1;
-      revert = true;
-      hash = "sha256-7VeBFjG7CnEMWn0hpBvyNOyhRfz50PnD3zyQNDhNChk=";
-    })
-  ];
-
-  postPatch = ''
-    cd ../runtimes
-  '';
-
-  nativeBuildInputs = [ cmake ninja python3 ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isWasm) libunwind;
-
-  cmakeFlags = [
-    "-DLLVM_ENABLE_RUNTIMES=libcxxabi"
-    "-DLIBCXXABI_LIBCXX_INCLUDES=${cxx-headers}/include/c++/v1"
-
-    # `libcxxabi`'s build does not need a toolchain with a c++ stdlib attached
-    # (we specify the headers it should use explicitly above).
-    #
-    # CMake however checks for this anyways; this flag tells it not to. See:
-    # https://github.com/llvm/llvm-project/blob/4bd3f3759259548e159aeba5c76efb9a0864e6fa/llvm/runtimes/CMakeLists.txt#L243
-    "-DCMAKE_CXX_COMPILER_WORKS=ON"
-  ] ++ lib.optionals (lib.versionAtLeast version "18" && !(stdenv.hostPlatform.useLLVM or false && !stdenv.hostPlatform.isWasm)) [
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=OFF"
-  ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false && !stdenv.hostPlatform.isWasm) [
-    "-DLLVM_ENABLE_LIBCXX=ON"
-    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
-    # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib,
-    # but that does not appear to be the case for example when building
-    # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc).
-    "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib"
-    "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib"
-  ] ++ lib.optionals stdenv.hostPlatform.isWasm [
-    "-DCMAKE_C_COMPILER_WORKS=ON"
-    "-DCMAKE_CXX_COMPILER_WORKS=ON"
-    "-DLIBCXXABI_ENABLE_THREADS=OFF"
-    "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF"
-    "-DUNIX=ON"
-  ] ++ lib.optionals (!enableShared) [
-    "-DLIBCXXABI_ENABLE_SHARED=OFF"
-  ];
-
-  preInstall = lib.optionalString stdenv.isDarwin ''
-    for file in lib/*.dylib; do
-      # this should be done in CMake, but having trouble figuring out
-      # the magic combination of necessary CMake variables
-      # if you fancy a try, take a look at
-      # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
-      install_name_tool -id $out/$file $file
-    done
-  '';
-
-  postInstall = ''
-    mkdir -p "$dev/include"
-    install -m 644 ../../${pname}/include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include"
-  '';
-
-  passthru = {
-    libName = "c++abi";
-  };
-
-  meta = llvm_meta // {
-    homepage = "https://libcxxabi.llvm.org/";
-    description = "Provides C++ standard library support";
-    longDescription = ''
-      libc++abi is a new implementation of low level support for a standard C++ library.
-    '';
-    # "All of the code in libc++abi is dual licensed under the MIT license and
-    # the UIUC License (a BSD-like license)":
-    license = with lib.licenses; [ mit ncsa ];
-    maintainers = llvm_meta.maintainers ++ [ lib.maintainers.vlstill ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/gnu-install-dirs.patch b/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/gnu-install-dirs.patch
deleted file mode 100644
index 51382fcefed2..000000000000
--- a/nixpkgs/pkgs/development/compilers/llvm/git/libcxxabi/gnu-install-dirs.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt
-index f380fe6b6b92..a9656258c38e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -188,7 +188,7 @@ set(LIBCXXABI_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
- if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-   set(LIBCXXABI_HEADER_DIR ${LLVM_BINARY_DIR})
-   set(LIBCXXABI_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE STRING
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
-       "Path where built libc++abi libraries should be installed.")
-   if(LIBCXX_LIBDIR_SUBDIR)
-     string(APPEND LIBCXXABI_LIBRARY_DIR /${LIBCXXABI_LIBDIR_SUBDIR})
-@@ -202,7 +202,7 @@ else()
-     set(LIBCXXABI_HEADER_DIR ${CMAKE_BINARY_DIR})
-     set(LIBCXXABI_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXXABI_LIBDIR_SUFFIX})
-   endif()
--  set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LIBCXXABI_LIBDIR_SUFFIX} CACHE STRING
-+  set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH
-       "Path where built libc++abi libraries should be installed.")
- endif()
- 
diff --git a/nixpkgs/pkgs/development/compilers/llvm/git/llvm/default.nix b/nixpkgs/pkgs/development/compilers/llvm/git/llvm/default.nix
index 6dc2b51aaf9a..b8715228ab1c 100644
--- a/nixpkgs/pkgs/development/compilers/llvm/git/llvm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/llvm/git/llvm/default.nix
@@ -223,6 +223,10 @@ stdenv.mkDerivation (rec {
       --replace "PassBuilderCallbacksTest.cpp" ""
     rm unittests/IR/PassBuilderCallbacksTest.cpp
     rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test
+
+    # Fails in the presence of anti-virus software or other intrusion-detection software that
+    # modifies the atime when run. See #284056.
+    rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test
   '' + optionalString stdenv.hostPlatform.isMusl ''
     patch -p1 -i ${../../common/llvm/TLI-musl.patch}
     substituteInPlace unittests/Support/CMakeLists.txt \
diff --git a/nixpkgs/pkgs/development/compilers/lobster/default.nix b/nixpkgs/pkgs/development/compilers/lobster/default.nix
index 02748546d5aa..131fdbfef98f 100644
--- a/nixpkgs/pkgs/development/compilers/lobster/default.nix
+++ b/nixpkgs/pkgs/development/compilers/lobster/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
     broken = stdenv.isDarwin;
     homepage = "https://strlen.com/lobster/";
     description = "The Lobster programming language";
+    mainProgram = "lobster";
     longDescription = ''
       Lobster is a programming language that tries to combine the advantages of
       very static typing and memory management with a very lightweight,
diff --git a/nixpkgs/pkgs/development/compilers/lunarml/default.nix b/nixpkgs/pkgs/development/compilers/lunarml/default.nix
index 558a4e435a41..d47801181701 100644
--- a/nixpkgs/pkgs/development/compilers/lunarml/default.nix
+++ b/nixpkgs/pkgs/development/compilers/lunarml/default.nix
@@ -49,6 +49,7 @@ stdenvNoCC.mkDerivation {
 
   meta = {
     description = "Standard ML compiler that produces Lua/JavaScript";
+    mainProgram = "lunarml";
     homepage = "https://github.com/minoki/LunarML";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ toastal ratsclub ];
diff --git a/nixpkgs/pkgs/development/compilers/manticore/default.nix b/nixpkgs/pkgs/development/compilers/manticore/default.nix
index b767ccf150a6..030e13165631 100644
--- a/nixpkgs/pkgs/development/compilers/manticore/default.nix
+++ b/nixpkgs/pkgs/development/compilers/manticore/default.nix
@@ -39,6 +39,7 @@ in stdenv.mkDerivation {
 
   meta = {
     description = "A parallel, pure variant of Standard ML";
+    mainProgram = "pmlc";
 
     longDescription = ''
       Manticore is a high-level parallel programming language aimed at
diff --git a/nixpkgs/pkgs/development/compilers/mcpp/default.nix b/nixpkgs/pkgs/development/compilers/mcpp/default.nix
index e8eb62a15f13..9db55e29ccdb 100644
--- a/nixpkgs/pkgs/development/compilers/mcpp/default.nix
+++ b/nixpkgs/pkgs/development/compilers/mcpp/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://github.com/museoa/mcpp";
     description = "Matsui's C preprocessor";
+    mainProgram = "mcpp";
     license = licenses.bsd2;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/compilers/microscheme/default.nix b/nixpkgs/pkgs/development/compilers/microscheme/default.nix
index fa65622ba0cd..c9f3a1847066 100644
--- a/nixpkgs/pkgs/development/compilers/microscheme/default.nix
+++ b/nixpkgs/pkgs/development/compilers/microscheme/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://ryansuchocki.github.io/microscheme/";
     description = "A Scheme subset for Atmel microcontrollers";
+    mainProgram = "microscheme";
     longDescription = ''
       Microscheme is a Scheme subset/variant designed for Atmel
       microcontrollers, especially as found on Arduino boards.
diff --git a/nixpkgs/pkgs/development/compilers/mint/default.nix b/nixpkgs/pkgs/development/compilers/mint/default.nix
index b1baf88c936c..3a81f17fd538 100644
--- a/nixpkgs/pkgs/development/compilers/mint/default.nix
+++ b/nixpkgs/pkgs/development/compilers/mint/default.nix
@@ -26,6 +26,7 @@ crystal.buildCrystalPackage rec {
 
   meta = with lib; {
     description = "A refreshing language for the front-end web";
+    mainProgram = "mint";
     homepage = "https://www.mint-lang.com/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ manveru ];
diff --git a/nixpkgs/pkgs/development/compilers/mrustc/default.nix b/nixpkgs/pkgs/development/compilers/mrustc/default.nix
index eae17cbce91f..1305843a7fa7 100644
--- a/nixpkgs/pkgs/development/compilers/mrustc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/mrustc/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Mutabah's Rust Compiler";
+    mainProgram = "mrustc";
     longDescription = ''
       In-progress alternative rust compiler, written in C++.
       Capable of building a fully-working copy of rustc,
diff --git a/nixpkgs/pkgs/development/compilers/mrustc/minicargo.nix b/nixpkgs/pkgs/development/compilers/mrustc/minicargo.nix
index 76d19d4d96d7..c7d5da1f9049 100644
--- a/nixpkgs/pkgs/development/compilers/mrustc/minicargo.nix
+++ b/nixpkgs/pkgs/development/compilers/mrustc/minicargo.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A minimalist builder for Rust";
+    mainProgram = "minicargo";
     longDescription = ''
       A minimalist builder for Rust, similar to Cargo but written in C++.
       Designed to work with mrustc to build Rust projects
diff --git a/nixpkgs/pkgs/development/compilers/ocaml/4.14.nix b/nixpkgs/pkgs/development/compilers/ocaml/4.14.nix
index 8ce7967853e7..e7dc4d2f5d41 100644
--- a/nixpkgs/pkgs/development/compilers/ocaml/4.14.nix
+++ b/nixpkgs/pkgs/development/compilers/ocaml/4.14.nix
@@ -1,6 +1,6 @@
 import ./generic.nix {
   major_version = "4";
   minor_version = "14";
-  patch_version = "1";
-  sha256 = "sha256-wSeXTQJCV2z0cGGyCqnIbRe+DWqpaH9uyYNd5nvnu28";
+  patch_version = "2";
+  sha256 = "sha256-eBn2hpPjKUb5M1jfRqjqb1FyImgfzG98uWIUIWz+x2Q=";
 }
diff --git a/nixpkgs/pkgs/development/compilers/odin/default.nix b/nixpkgs/pkgs/development/compilers/odin/default.nix
index e6691e2436a7..6d4ddf61da31 100644
--- a/nixpkgs/pkgs/development/compilers/odin/default.nix
+++ b/nixpkgs/pkgs/development/compilers/odin/default.nix
@@ -12,13 +12,13 @@ let
   inherit (llvmPackages) stdenv;
 in stdenv.mkDerivation rec {
   pname = "odin";
-  version = "dev-2024-02";
+  version = "dev-2024-03";
 
   src = fetchFromGitHub {
     owner = "odin-lang";
     repo = "Odin";
     rev = version;
-    hash = "sha256-v9A0+kgREXALhnvFYWtE0+H4L7CYnyje+d2W5+/ZvHA=";
+    hash = "sha256-oK5OcWAZy9NVH19oep6QU4d5qaiO0p+d9FvxDIrzFLU=";
   };
 
   nativeBuildInputs = [
@@ -71,6 +71,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A fast, concise, readable, pragmatic and open sourced programming language";
+    mainProgram = "odin";
     homepage = "https://odin-lang.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ luc65r astavie znaniye ];
diff --git a/nixpkgs/pkgs/development/compilers/open-watcom/v2.nix b/nixpkgs/pkgs/development/compilers/open-watcom/v2.nix
index 80ee2ee5e45d..37503496c917 100644
--- a/nixpkgs/pkgs/development/compilers/open-watcom/v2.nix
+++ b/nixpkgs/pkgs/development/compilers/open-watcom/v2.nix
@@ -47,9 +47,6 @@ stdenv.mkDerivation rec {
     ghostscript
   ];
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205
-  env.NIX_LDFLAGS = lib.optionalString (stdenv.cc.isClang && stdenv.cc.libcxx != null) "-l${stdenv.cc.libcxx.cxxabi.libName}";
-
   configurePhase = ''
     runHook preConfigure
 
diff --git a/nixpkgs/pkgs/development/compilers/openspin/default.nix b/nixpkgs/pkgs/development/compilers/openspin/default.nix
index abf5623b5821..5bf0ff64d354 100644
--- a/nixpkgs/pkgs/development/compilers/openspin/default.nix
+++ b/nixpkgs/pkgs/development/compilers/openspin/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Compiler for SPIN/PASM languages for Parallax Propeller MCU";
+    mainProgram = "openspin";
     homepage = "https://github.com/parallaxinc/OpenSpin";
     license = licenses.mit;
     maintainers = [ maintainers.redvers ];
diff --git a/nixpkgs/pkgs/development/compilers/opensycl/default.nix b/nixpkgs/pkgs/development/compilers/opensycl/default.nix
index c406d4c9d5c2..cdf9a5b9d22c 100644
--- a/nixpkgs/pkgs/development/compilers/opensycl/default.nix
+++ b/nixpkgs/pkgs/development/compilers/opensycl/default.nix
@@ -9,11 +9,13 @@
 , libffi
 , makeWrapper
 , config
-, rocmPackages
+, rocmPackages_5
 , rocmSupport ? config.rocmSupport
 }:
 let
   inherit (llvmPackages_15) stdenv;
+  # move to newer ROCm version once supported
+  rocmPackages = rocmPackages_5;
 in
 stdenv.mkDerivation rec {
   pname = "OpenSYCL";
diff --git a/nixpkgs/pkgs/development/compilers/ophis/default.nix b/nixpkgs/pkgs/development/compilers/ophis/default.nix
index 2ddfa849b664..0eebdce820ee 100644
--- a/nixpkgs/pkgs/development/compilers/ophis/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ophis/default.nix
@@ -16,6 +16,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "http://michaelcmartin.github.io/Ophis/";
     description = "A cross-assembler for the 6502 series of microprocessors";
+    mainProgram = "ophis";
     longDescription = ''
       Ophis is an assembler for the 6502 microprocessor - the famous chip used
       in the vast majority of the classic 8-bit computers and consoles. Its
diff --git a/nixpkgs/pkgs/development/compilers/paco/default.nix b/nixpkgs/pkgs/development/compilers/paco/default.nix
index d8014dd8e51b..195a67da023a 100644
--- a/nixpkgs/pkgs/development/compilers/paco/default.nix
+++ b/nixpkgs/pkgs/development/compilers/paco/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A simple compiled programming language";
+    mainProgram = "paco";
     homepage = "https://github.com/pacolang/paco";
     license = licenses.mit;
     maintainers = with maintainers; [ hugolgst ];
diff --git a/nixpkgs/pkgs/development/compilers/passerine/default.nix b/nixpkgs/pkgs/development/compilers/passerine/default.nix
index e5f88e586746..858356657326 100644
--- a/nixpkgs/pkgs/development/compilers/passerine/default.nix
+++ b/nixpkgs/pkgs/development/compilers/passerine/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A small extensible programming language designed for concise expression with little code";
+    mainProgram = "passerine";
     homepage = "https://www.passerine.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
diff --git a/nixpkgs/pkgs/development/compilers/pforth/default.nix b/nixpkgs/pkgs/development/compilers/pforth/default.nix
index aadc72c174e2..91efc25fc1e0 100644
--- a/nixpkgs/pkgs/development/compilers/pforth/default.nix
+++ b/nixpkgs/pkgs/development/compilers/pforth/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://www.softsynth.com/pforth/";
     description = "Portable Portable ANS-like Forth written in ANSI 'C'";
+    mainProgram = "pforth";
     changelog = "https://github.com/philburk/pforth/blob/v${finalAttrs.version}/RELEASES.md";
     license = lib.licenses.bsd0;
     maintainers = with lib.maintainers; [ AndersonTorres yrashk ];
diff --git a/nixpkgs/pkgs/development/compilers/picat/default.nix b/nixpkgs/pkgs/development/compilers/picat/default.nix
index 76d1ebdb4102..f52eed6ddf8d 100644
--- a/nixpkgs/pkgs/development/compilers/picat/default.nix
+++ b/nixpkgs/pkgs/development/compilers/picat/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Logic-based programming langage";
+    mainProgram = "picat";
     homepage    = "http://picat-lang.org/";
     license     = licenses.mpl20;
     platforms   = platforms.linux;
diff --git a/nixpkgs/pkgs/development/compilers/purescript/psc-package/default.nix b/nixpkgs/pkgs/development/compilers/purescript/psc-package/default.nix
index d291b1f3cfee..2d6631938546 100644
--- a/nixpkgs/pkgs/development/compilers/purescript/psc-package/default.nix
+++ b/nixpkgs/pkgs/development/compilers/purescript/psc-package/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A package manager for PureScript based on package sets";
+    mainProgram = "psc-package";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
     platforms = [ "x86_64-darwin" "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/development/compilers/rasm/default.nix b/nixpkgs/pkgs/development/compilers/rasm/default.nix
index 0f617d0f6618..3246e014145f 100644
--- a/nixpkgs/pkgs/development/compilers/rasm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/rasm/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.roudoudou.com/rasm/";
     description = "Z80 assembler";
+    mainProgram = "rasm";
     # use -n option to display all licenses
     license = licenses.mit; # expat version
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/compilers/rust/cargo-auditable.nix b/nixpkgs/pkgs/development/compilers/rust/cargo-auditable.nix
index b86ed5d7d4e1..34d877501c3b 100644
--- a/nixpkgs/pkgs/development/compilers/rust/cargo-auditable.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/cargo-auditable.nix
@@ -3,16 +3,16 @@
 let
   args = rec {
     pname = "cargo-auditable";
-    version = "0.6.1";
+    version = "0.6.2";
 
     src = fetchFromGitHub {
       owner = "rust-secure-code";
       repo = pname;
       rev = "v${version}";
-      sha256 = "sha256-MKMPLv8jeST0l4tq+MMPC18qfZMmBixdj6Ng19YKepU=";
+      sha256 = "sha256-ERIzx9Fveanq7/aWcB2sviTxIahvSu0sTwgpGf/aYE8=";
     };
 
-    cargoSha256 = "sha256-6/f7pNaTL+U6bI6jMakU/lfwYYxN/EM3WkKZcydsyLk=";
+    cargoHash = "sha256-4o3ctun/8VcBRuj+j0Yaawdkyn6Z6LPp+FTyhPxQWU8=";
 
     # Cargo.lock is outdated
     preConfigure = ''
@@ -21,6 +21,7 @@ let
 
     meta = with lib; {
       description = "A tool to make production Rust binaries auditable";
+      mainProgram = "cargo-auditable";
       homepage = "https://github.com/rust-secure-code/cargo-auditable";
       changelog = "https://github.com/rust-secure-code/cargo-auditable/blob/v${version}/cargo-auditable/CHANGELOG.md";
       license = with licenses; [ mit /* or */ asl20 ];
diff --git a/nixpkgs/pkgs/development/compilers/rust/cargo.nix b/nixpkgs/pkgs/development/compilers/rust/cargo.nix
index b57ad0c811c2..b0c40c5760cb 100644
--- a/nixpkgs/pkgs/development/compilers/rust/cargo.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/cargo.nix
@@ -72,6 +72,7 @@ rustPlatform.buildRustPackage.override {
   meta = with lib; {
     homepage = "https://crates.io";
     description = "Downloads your Rust project's dependencies and builds your project";
+    mainProgram = "cargo";
     maintainers = teams.rust.members;
     license = [ licenses.mit licenses.asl20 ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix b/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix
index e22cb6d594af..6ed724aae821 100644
--- a/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/make-rust-platform.nix
@@ -1,4 +1,4 @@
-{ lib, buildPackages, callPackage, cargo-auditable, stdenv, runCommand }@prev:
+{ lib, buildPackages, callPackage, callPackages, cargo-auditable, stdenv, runCommand }@prev:
 
 { rustc
 , cargo
@@ -34,7 +34,7 @@ rec {
   };
 
   # Hooks
-  inherit (callPackage ../../../build-support/rust/hooks {
+  inherit (callPackages ../../../build-support/rust/hooks {
     inherit stdenv cargo rustc;
   }) cargoBuildHook cargoCheckHook cargoInstallHook cargoNextestHook cargoSetupHook maturinBuildHook bindgenHook;
 }
diff --git a/nixpkgs/pkgs/development/compilers/sbcl/default.nix b/nixpkgs/pkgs/development/compilers/sbcl/default.nix
index e8933d045e37..2371ed651950 100644
--- a/nixpkgs/pkgs/development/compilers/sbcl/default.nix
+++ b/nixpkgs/pkgs/development/compilers/sbcl/default.nix
@@ -94,7 +94,14 @@ stdenv.mkDerivation (self: rec {
       strace
     ]
   );
-  buildInputs = lib.optionals coreCompression [ zstd ];
+  buildInputs = lib.optionals coreCompression (
+    # Declare at the point of actual use in case the caller wants to override
+    # buildInputs to sidestep this.
+    assert lib.assertMsg (!purgeNixReferences) ''
+      Cannot enable coreCompression when purging Nix references, because compression requires linking in zstd
+    '';
+    [ zstd ]
+  );
 
   patches = lib.optionals (lib.versionOlder self.version "2.4.2") [
     # Fixed in 2.4.2
@@ -139,6 +146,12 @@ stdenv.mkDerivation (self: rec {
         --replace-quiet /bin/uname "${coreutils}/bin/uname" \
         --replace-quiet /bin/sh "${stdenv.shell}"
     )
+    # Official source release tarballs will have a version.lispexpr, but if you
+    # want to override { src = ... } it might not exist. It’s required for
+    # building, so create a mock version as a backup.
+    if [[ ! -a version.lisp-expr ]]; then
+      echo '"${version}.nixos"' > version.lisp-expr
+    fi
   '';
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/development/compilers/scryer-prolog/default.nix b/nixpkgs/pkgs/development/compilers/scryer-prolog/default.nix
index a0247c265e80..02383e6b4a51 100644
--- a/nixpkgs/pkgs/development/compilers/scryer-prolog/default.nix
+++ b/nixpkgs/pkgs/development/compilers/scryer-prolog/default.nix
@@ -30,6 +30,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "A modern Prolog implementation written mostly in Rust";
+    mainProgram = "scryer-prolog";
     homepage = "https://github.com/mthom/scryer-prolog";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ malbarbo wkral ];
diff --git a/nixpkgs/pkgs/development/compilers/serpent/default.nix b/nixpkgs/pkgs/development/compilers/serpent/default.nix
index 227e8037eaee..31f6b0709da3 100644
--- a/nixpkgs/pkgs/development/compilers/serpent/default.nix
+++ b/nixpkgs/pkgs/development/compilers/serpent/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Compiler for the Serpent language for Ethereum";
+    mainProgram = "serpent";
     longDescription = ''
       Serpent is one of the high-level programming languages used to
       write Ethereum contracts. The language, as suggested by its name,
diff --git a/nixpkgs/pkgs/development/compilers/sjasmplus/default.nix b/nixpkgs/pkgs/development/compilers/sjasmplus/default.nix
index 6ef3d11c712f..61d85b95c452 100644
--- a/nixpkgs/pkgs/development/compilers/sjasmplus/default.nix
+++ b/nixpkgs/pkgs/development/compilers/sjasmplus/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://z00m128.github.io/sjasmplus/";
     description = "A Z80 assembly language cross compiler. It is based on the SjASM source code by Sjoerd Mastijn";
+    mainProgram = "sjasmplus";
     license = licenses.bsd3;
     platforms = platforms.all;
     maintainers = with maintainers; [ electrified ];
diff --git a/nixpkgs/pkgs/development/compilers/spasm-ng/default.nix b/nixpkgs/pkgs/development/compilers/spasm-ng/default.nix
index bd31719731e9..9045710dc770 100644
--- a/nixpkgs/pkgs/development/compilers/spasm-ng/default.nix
+++ b/nixpkgs/pkgs/development/compilers/spasm-ng/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage    = "https://github.com/alberthdev/spasm-ng";
     description = "Z80 assembler with extra features to support development for TI calculators";
+    mainProgram = "spasm";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ siraben ];
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/development/compilers/spirv-llvm-translator/default.nix b/nixpkgs/pkgs/development/compilers/spirv-llvm-translator/default.nix
index 88119d002808..9dde7e475171 100644
--- a/nixpkgs/pkgs/development/compilers/spirv-llvm-translator/default.nix
+++ b/nixpkgs/pkgs/development/compilers/spirv-llvm-translator/default.nix
@@ -7,7 +7,6 @@
 , llvm
 , spirv-headers
 , spirv-tools
-, disable-warnings-if-gcc13
 }:
 
 let
@@ -16,7 +15,11 @@ let
 
   # ROCm, if actively updated will always be at the latest version
   branch =
-    if llvmMajor == "17" || isROCm then rec {
+    if llvmMajor == "18" then rec {
+      version = "18.1.0";
+      rev = "v${version}";
+      hash = "sha256-64guZiuO7VpaX01wNIjV7cnjEAe6ineMdY44S6sA33k=";
+    } else if llvmMajor == "17" || isROCm then rec {
       version = "17.0.0";
       rev = "v${version}";
       hash = "sha256-Rzm5Py9IPFtS9G7kME+uSwZ/0gPGW6MlL35ZWk4LfHM=";
@@ -38,7 +41,7 @@ let
       hash = "sha256-NoIoa20+2sH41rEnr8lsMhtfesrtdPINiXtUnxYVm8s=";
     } else throw "Incompatible LLVM version.";
 in
-disable-warnings-if-gcc13 (stdenv.mkDerivation {
+stdenv.mkDerivation {
   pname = "SPIRV-LLVM-Translator";
   inherit (branch) version;
 
@@ -48,7 +51,15 @@ disable-warnings-if-gcc13 (stdenv.mkDerivation {
     inherit (branch) rev hash;
   };
 
-  patches = lib.optionals (lib.versionAtLeast llvmMajor "15") [
+  patches = lib.optionals (llvmMajor == "18") [
+    # Fixes build after SPV_INTEL_maximum_registers breaking change
+    # TODO: remove on next spirv-headers release
+    (fetchpatch {
+      url = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/d970c9126c033ebcbb7187bc705eae2e54726b74.patch";
+      revert = true;
+      hash = "sha256-71sJuGqVjTcB549eIiCO0LoqAgxkdEHCoxh8Pd/Qzz8=";
+    })
+  ] ++ lib.optionals (lib.versionAtLeast llvmMajor "15" && lib.versionOlder llvmMajor "18") [
     # Fixes build after spirv-headers breaking change
     (fetchpatch {
       url = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/0166a0fb86dc6c0e8903436bbc3a89bc3273ebc0.patch";
@@ -102,8 +113,9 @@ disable-warnings-if-gcc13 (stdenv.mkDerivation {
   meta = with lib; {
     homepage    = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator";
     description = "A tool and a library for bi-directional translation between SPIR-V and LLVM IR";
+    mainProgram = "llvm-spirv";
     license     = licenses.ncsa;
     platforms   = platforms.unix;
     maintainers = with maintainers; [ gloaming ];
   };
-})
+}
diff --git a/nixpkgs/pkgs/development/compilers/swift/compiler/default.nix b/nixpkgs/pkgs/development/compilers/swift/compiler/default.nix
index 76c2da0a656a..cef1358aed73 100644
--- a/nixpkgs/pkgs/development/compilers/swift/compiler/default.nix
+++ b/nixpkgs/pkgs/development/compilers/swift/compiler/default.nix
@@ -284,7 +284,6 @@ in stdenv.mkDerivation {
     patch -p1 -d swift -i ${./patches/swift-linux-fix-libc-paths.patch}
     patch -p1 -d swift -i ${./patches/swift-linux-fix-linking.patch}
     patch -p1 -d swift -i ${./patches/swift-darwin-libcxx-flags.patch}
-    patch -p1 -d swift -i ${./patches/swift-darwin-link-cxxabi.patch}
     patch -p1 -d swift -i ${substituteAll {
       src = ./patches/swift-darwin-plistbuddy-workaround.patch;
       inherit swiftArch;
diff --git a/nixpkgs/pkgs/development/compilers/swift/compiler/patches/swift-darwin-link-cxxabi.patch b/nixpkgs/pkgs/development/compilers/swift/compiler/patches/swift-darwin-link-cxxabi.patch
deleted file mode 100644
index dad9b3285dc1..000000000000
--- a/nixpkgs/pkgs/development/compilers/swift/compiler/patches/swift-darwin-link-cxxabi.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-This patches the stdlib backdeploy static lib to have its users link c++abi.
-Without this, later steps that try to link this fail looking for global
-new/delete operators (__Znwm/__ZdlPv).
-
---- a/stdlib/toolchain/Compatibility56/Overrides.cpp
-+++ b/stdlib/toolchain/Compatibility56/Overrides.cpp
-@@ -23,6 +23,7 @@
- using namespace swift;
- 
- __asm__ (".linker_option \"-lc++\"");
-+__asm__ (".linker_option \"-lc++abi\"");
- 
- #define OVERRIDE(name, ret, attrs, ccAttrs, namespace, typedArgs, namedArgs) \
-   Override_ ## name name;
diff --git a/nixpkgs/pkgs/development/compilers/swift/default.nix b/nixpkgs/pkgs/development/compilers/swift/default.nix
index afb8ce39dcce..c111a8d86bfa 100644
--- a/nixpkgs/pkgs/development/compilers/swift/default.nix
+++ b/nixpkgs/pkgs/development/compilers/swift/default.nix
@@ -25,9 +25,13 @@ let
     #
     # The following selects the correct Clang version, matching the version
     # used in Swift, and applies the same libc overrides as `apple_sdk.stdenv`.
-    clang = if pkgs.stdenv.isDarwin
+    clang = let
+      # https://github.com/NixOS/nixpkgs/issues/295322
+      clangNoMarch = swiftLlvmPackages.clang.override { disableMarch = true; };
+    in
+    if pkgs.stdenv.isDarwin
       then
-        swiftLlvmPackages.clang.override rec {
+        clangNoMarch.override rec {
           libc = apple_sdk.Libsystem;
           bintools = pkgs.bintools.override { inherit libc; };
           # Ensure that Swift’s internal clang uses the same libc++ and libc++abi as the
@@ -35,17 +39,9 @@ let
           # that can happen when a Swift application dynamically links different versions
           # of libc++ and libc++abi than libraries it links are using.
           inherit (llvmPackages) libcxx;
-          extraPackages = [
-            llvmPackages.libcxxabi
-            # Use the compiler-rt associated with clang, but use the libc++abi from the stdenv
-            # to avoid linking against two different versions (for the same reasons as above).
-            (swiftLlvmPackages.compiler-rt.override {
-              inherit (llvmPackages) libcxxabi;
-            })
-          ];
         }
       else
-        swiftLlvmPackages.clang;
+        clangNoMarch;
 
     # Overrides that create a useful environment for swift packages, allowing
     # packaging with `swiftPackages.callPackage`. These are similar to
diff --git a/nixpkgs/pkgs/development/compilers/swift/foundation/default.nix b/nixpkgs/pkgs/development/compilers/swift/foundation/default.nix
index b0da48c68a95..eab509c5aaa1 100644
--- a/nixpkgs/pkgs/development/compilers/swift/foundation/default.nix
+++ b/nixpkgs/pkgs/development/compilers/swift/foundation/default.nix
@@ -63,6 +63,7 @@ in stdenv.mkDerivation {
 
   meta = {
     description = "Core utilities, internationalization, and OS independence for Swift";
+    mainProgram = "plutil";
     homepage = "https://github.com/apple/swift-corelibs-foundation";
     platforms = lib.platforms.linux;
     license = lib.licenses.asl20;
diff --git a/nixpkgs/pkgs/development/compilers/swift/sourcekit-lsp/default.nix b/nixpkgs/pkgs/development/compilers/swift/sourcekit-lsp/default.nix
index caba3e3441f3..a2dd73fefa13 100644
--- a/nixpkgs/pkgs/development/compilers/swift/sourcekit-lsp/default.nix
+++ b/nixpkgs/pkgs/development/compilers/swift/sourcekit-lsp/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Language Server Protocol implementation for Swift and C-based languages";
+    mainProgram = "sourcekit-lsp";
     homepage = "https://github.com/apple/sourcekit-lsp";
     platforms = with lib.platforms; linux ++ darwin;
     license = lib.licenses.asl20;
diff --git a/nixpkgs/pkgs/development/compilers/swift/swift-docc/default.nix b/nixpkgs/pkgs/development/compilers/swift/swift-docc/default.nix
index e79487e7eded..5dec14eb475d 100644
--- a/nixpkgs/pkgs/development/compilers/swift/swift-docc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/swift/swift-docc/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Documentation compiler for Swift";
+    mainProgram = "docc";
     homepage = "https://github.com/apple/swift-docc";
     platforms = with lib.platforms; linux ++ darwin;
     license = lib.licenses.asl20;
diff --git a/nixpkgs/pkgs/development/compilers/typescript/default.nix b/nixpkgs/pkgs/development/compilers/typescript/default.nix
index 86eaf06bf5c4..9e91337da753 100644
--- a/nixpkgs/pkgs/development/compilers/typescript/default.nix
+++ b/nixpkgs/pkgs/development/compilers/typescript/default.nix
@@ -2,20 +2,20 @@
 
 buildNpmPackage rec {
   pname = "typescript";
-  version = "5.4.2";
+  version = "5.4.3";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "TypeScript";
     rev = "v${version}";
-    hash = "sha256-/iB9TEgXqiIsGSRrcADAv8UCjoOdmcyVFGj8EBccQl0=";
+    hash = "sha256-yB87R6LyuTbSbQOcRi+QOhrnUy+ra76PiCzsEvPx3ds=";
   };
 
   patches = [
     ./disable-dprint-dstBundler.patch
   ];
 
-  npmDepsHash = "sha256-UDyPWbr3FcPRHOtkVTIKXQwN5k02qlhRMbgylkWTrQI=";
+  npmDepsHash = "sha256-XlXDof0yFxEpNCZN+4ZY2BVgpbAkwdAUJcTRxIXi8eQ=";
 
   passthru.tests = {
     version = testers.testVersion {
diff --git a/nixpkgs/pkgs/development/compilers/uasm/default.nix b/nixpkgs/pkgs/development/compilers/uasm/default.nix
index 9fe0e42cb138..ba3e5b03a584 100644
--- a/nixpkgs/pkgs/development/compilers/uasm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/uasm/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.terraspace.co.uk/uasm.html";
     description = "A free MASM-compatible assembler based on JWasm";
+    mainProgram = "uasm";
     platforms = platforms.unix;
     maintainers = with maintainers; [ thiagokokada ];
     license = licenses.watcom;
diff --git a/nixpkgs/pkgs/development/compilers/urn/default.nix b/nixpkgs/pkgs/development/compilers/urn/default.nix
index 66f1bda6d5f9..87e28d9672da 100644
--- a/nixpkgs/pkgs/development/compilers/urn/default.nix
+++ b/nixpkgs/pkgs/development/compilers/urn/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://urn-lang.com";
     description = "Yet another Lisp variant which compiles to Lua";
+    mainProgram = "urn";
     license = licenses.bsd3;
     maintainers = with maintainers; [ CrazedProgrammer ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/compilers/urweb/default.nix b/nixpkgs/pkgs/development/compilers/urweb/default.nix
index b72548e753c3..2621f4bc8050 100644
--- a/nixpkgs/pkgs/development/compilers/urweb/default.nix
+++ b/nixpkgs/pkgs/development/compilers/urweb/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Advanced purely-functional web programming language";
+    mainProgram = "urweb";
     homepage    = "http://www.impredicative.com/ur/";
     license     = lib.licenses.bsd3;
     platforms   = lib.platforms.linux ++ lib.platforms.darwin;
diff --git a/nixpkgs/pkgs/development/compilers/xa/dxa.nix b/nixpkgs/pkgs/development/compilers/xa/dxa.nix
index 44e3e8fb9671..5eec63c171d2 100644
--- a/nixpkgs/pkgs/development/compilers/xa/dxa.nix
+++ b/nixpkgs/pkgs/development/compilers/xa/dxa.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://www.floodgap.com/retrotech/xa/";
     description = "Andre Fachat's open-source 6502 disassembler";
+    mainProgram = "dxa";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = with lib.platforms; unix;
diff --git a/nixpkgs/pkgs/development/compilers/zasm/default.nix b/nixpkgs/pkgs/development/compilers/zasm/default.nix
index cd15b756b36e..bd98622edf3f 100644
--- a/nixpkgs/pkgs/development/compilers/zasm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/zasm/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Z80 / 8080 / Z180 assembler (for unix-style OS)";
+    mainProgram = "zasm";
     homepage = "https://k1.spdns.de/Develop/Projects/zasm/Distributions/";
     license = licenses.bsd2;
     maintainers = [ maintainers.turbomack ];
diff --git a/nixpkgs/pkgs/development/compilers/zulu/16.nix b/nixpkgs/pkgs/development/compilers/zulu/16.nix
deleted file mode 100644
index 941a7e8d64f9..000000000000
--- a/nixpkgs/pkgs/development/compilers/zulu/16.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ callPackage
-, enableJavaFX ? false
-, ...
-}@args:
-
-callPackage ./common.nix ({
-  # Details from https://www.azul.com/downloads/?version=java-16-sts&package=jdk
-  # Note that the latest build may differ by platform
-  dists = {
-    x86_64-darwin = {
-      zuluVersion = "16.32.15";
-      jdkVersion = "16.0.2";
-      hash =
-        if enableJavaFX then "sha256-6URaSBNHQWLauO//kCuKXb4Z7AqyshWnoeJEyVRKgaY="
-        else "sha256-NXgBj/KixTknaCYbo3B+rOo11NImH5CDUIU0LhTCtMo=";
-    };
-
-    aarch64-darwin = {
-      zuluVersion = "16.32.15";
-      jdkVersion = "16.0.2";
-      hash =
-        if enableJavaFX then "sha256-QuyhIAxUY3Vv1adGihW+LIsXtpDX2taCmFsMFj9o5vs="
-        else "sha256-3bUfDcLLyahLeURFAgLAVapBZHvqtam8GHbWTA6MQog=";
-    };
-  };
-} // builtins.removeAttrs args [ "callPackage" ])
diff --git a/nixpkgs/pkgs/development/compilers/zz/default.nix b/nixpkgs/pkgs/development/compilers/zz/default.nix
index 4ec5131bf74c..ea4e33b8a903 100644
--- a/nixpkgs/pkgs/development/compilers/zz/default.nix
+++ b/nixpkgs/pkgs/development/compilers/zz/default.nix
@@ -44,6 +44,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "ZetZ a zymbolic verifier and tranzpiler to bare metal C";
+    mainProgram = "zz";
     homepage = "https://github.com/zetzit/zz";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
diff --git a/nixpkgs/pkgs/development/coq-modules/VST/default.nix b/nixpkgs/pkgs/development/coq-modules/VST/default.nix
index 178db27c6379..706d11786354 100644
--- a/nixpkgs/pkgs/development/coq-modules/VST/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/VST/default.nix
@@ -23,11 +23,13 @@ mkCoqDerivation {
   repo = "VST";
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.coq-version [
+    { case = range "8.15" "8.19"; out = "2.14"; }
     { case = range "8.15" "8.17"; out = "2.13"; }
     { case = range "8.14" "8.16"; out = "2.10"; }
     { case = range "8.13" "8.15"; out = "2.9"; }
     { case = range "8.12" "8.13"; out = "2.8"; }
   ] null;
+  release."2.14".sha256 = "sha256-NHc1ZQ2VmXZy4lK2+mtyeNz1Qr9Nhj2QLxkPhhQB7Iw=";
   release."2.13".sha256 = "sha256-i6rvP3cpayBln5KHZOpeNfraYU5h0O9uciBQ4jRH4XA=";
   release."2.12".sha256 = "sha256-4HL0U4HA5/usKNXC0Dis1UZY/Hb/LRd2IGOrqrvdWkw=";
   release."2.11.1".sha256 = "sha256-unpNstZBnRT4dIqAYOv9n1J0tWJMeRuaaa2RG1U0Xs0=";
diff --git a/nixpkgs/pkgs/development/coq-modules/Vpl/default.nix b/nixpkgs/pkgs/development/coq-modules/Vpl/default.nix
new file mode 100644
index 000000000000..8936ec61a2c8
--- /dev/null
+++ b/nixpkgs/pkgs/development/coq-modules/Vpl/default.nix
@@ -0,0 +1,17 @@
+{ lib, mkCoqDerivation, coq, version ? null }:
+
+mkCoqDerivation {
+  pname = "Vpl";
+  owner = "VERIMAG-Polyhedra";
+  inherit version;
+
+  defaultVersion = if lib.versions.range "8.8" "8.9" coq.coq-version then "0.5" else null;
+
+  release."0.5".sha256 = "sha256-mSD/xSweeK9WMxWDdX/vzN96iXo74RkufjuNvtzsP9o=";
+
+  sourceRoot = "source/coq";
+
+  meta = coq.ocamlPackages.vpl-core.meta // {
+    description = "Coq interface to VPL abstract domain of convex polyhedra";
+  };
+}
diff --git a/nixpkgs/pkgs/development/coq-modules/VplTactic/default.nix b/nixpkgs/pkgs/development/coq-modules/VplTactic/default.nix
new file mode 100644
index 000000000000..e62499eb1ac8
--- /dev/null
+++ b/nixpkgs/pkgs/development/coq-modules/VplTactic/default.nix
@@ -0,0 +1,18 @@
+{ lib, mkCoqDerivation, coq, Vpl, version ? null }:
+
+mkCoqDerivation {
+  pname = "VplTactic";
+  owner = "VERIMAG-Polyhedra";
+  defaultVersion = if lib.versions.isEq "8.9" coq.version then "0.5" else null;
+
+  release."0.5".rev = "487e3aff8446bed2c5116cefc7d71d98a06e85de";
+  release."0.5".sha256 = "sha256-4h0hyvj9R+GOgnGWQFDi0oENLZPiJoimyK1q327qvIY=";
+
+  buildInputs = [ coq.ocamlPackages.vpl-core ];
+  propagatedBuildInputs = [ Vpl ];
+  mlPlugin = true;
+
+  meta = Vpl.meta // {
+    description = "A Coq Tactic for Arithmetic (based on VPL)";
+  };
+}
diff --git a/nixpkgs/pkgs/development/coq-modules/aac-tactics/default.nix b/nixpkgs/pkgs/development/coq-modules/aac-tactics/default.nix
index 1144ca69a55b..73d14282a3ab 100644
--- a/nixpkgs/pkgs/development/coq-modules/aac-tactics/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/aac-tactics/default.nix
@@ -5,6 +5,7 @@ mkCoqDerivation {
 
   releaseRev = v: "v${v}";
 
+  release."8.19.0".sha256 = "sha256-IeCBd8gcu4bAXH5I/XIT7neQIILi+EWR6qqAA4GzQD0=";
   release."8.18.0".sha256 = "sha256-Vpe79qCyFLOdOtFFvLKR0N+MMpGD661Q01yx4gxRhZo=";
   release."8.17.0".sha256 = "sha256-c8DtD21QFDZEVyCQc7ScPZEMTmolxlT3+Db3gStofF8=";
   release."8.16.0".sha256 = "sha256-sE1w8q/60adNF9yMJQO70CEk3D8QUopvgiszdHt5Wsw=";
@@ -23,6 +24,7 @@ mkCoqDerivation {
 
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.coq-version [
+    { case = "8.19"; out = "8.19.0"; }
     { case = "8.18"; out = "8.18.0"; }
     { case = "8.17"; out = "8.17.0"; }
     { case = "8.16"; out = "8.16.0"; }
diff --git a/nixpkgs/pkgs/development/coq-modules/compcert/default.nix b/nixpkgs/pkgs/development/coq-modules/compcert/default.nix
index 00b0bf49a39e..769017d4e282 100644
--- a/nixpkgs/pkgs/development/coq-modules/compcert/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/compcert/default.nix
@@ -13,6 +13,8 @@ targets = {
   aarch64-linux = "aarch64-linux";
   x86_64-darwin = "x86_64-macos";
   aarch64-darwin = "aarch64-macos";
+  riscv32-linux = "rv32-linux";
+  riscv64-linux = "rv64-linux";
 };
 
 target = targets.${stdenv.hostPlatform.system}
@@ -27,7 +29,7 @@ compcert = mkCoqDerivation {
   releaseRev = v: "v${v}";
 
   defaultVersion =  with lib.versions; lib.switch coq.version [
-      { case = range "8.14" "8.17"; out = "3.13.1"; }
+      { case = range "8.14" "8.19"; out = "3.13.1"; }
       { case = isEq "8.13"        ; out = "3.10"; }
       { case = isEq "8.12"       ; out = "3.9"; }
       { case = range "8.8" "8.11"; out = "3.8"; }
@@ -168,12 +170,27 @@ compcert.overrideAttrs (o:
           })
         ];
       }
-      { cases = [ (isEq "8.17") (isEq "3.13") ];
+      { cases = [ (range "8.17" "8.19") (isEq "3.13") ];
         out = [
           # Support for Coq 8.17.0 & Coq 8.17.1
           (fetchpatch {
-            url = "https://github.com/AbsInt/CompCert/commit/030a0fafe6a1a315bb13c5276e0af536e4f713ce.patch";
-            hash = "sha256-iRdmgYuun1wp6chRoDy99KKmFyvY79NGWzrltyQaW1o=";
+            url = "https://github.com/AbsInt/CompCert/commit/2e04d986bdae578186e40330842878559a550402.patch";
+            hash = "sha256-2ZRAjUUSScJI8ogWFTnukCUnJdLWGvyOPyfIVlHL4ig=";
+          })
+          # Support for Coq 8.18.0
+          (fetchpatch {
+            url = "https://github.com/AbsInt/CompCert/commit/28218c5663cba36c6078ca342335d4e55c412bd7.patch";
+            hash = "sha256-aAatUMO26oZwFYGh1BXYWxbTuyOgU8BAKMGDS5796hM=";
+          })
+          # MenhirLib update
+          (fetchpatch {
+            url = "https://github.com/AbsInt/CompCert/commit/9f3d7b6eb99377ad4689cd57563c484c57baa457.patch";
+            hash = "sha256-paofdSBxP/JFoBSiO1OI+mjKRI3UCanXRh/drzYt93E=";
+          })
+          # Support for Coq 8.19.0 & Coq 8.19.1
+          (fetchpatch {
+            url = "https://github.com/AbsInt/CompCert/commit/a2e4ed62fc558d565366845f9d135bd7db5e23c4.patch";
+            hash = "sha256-ufk0bokuayLfkSvK3cK4E9iXU5eZpp9d/ETSa/zCfMg=";
           })
         ];
       }
diff --git a/nixpkgs/pkgs/development/coq-modules/coqide/default.nix b/nixpkgs/pkgs/development/coq-modules/coqide/default.nix
index a11bfb2c0db7..d2dda145f677 100644
--- a/nixpkgs/pkgs/development/coq-modules/coqide/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/coqide/default.nix
@@ -55,6 +55,7 @@ mkCoqDerivation rec {
   meta = with lib; {
     homepage = "https://coq.inria.fr";
     description = "The CoqIDE user interface for the Coq proof assistant";
+    mainProgram = "coqide";
     license = licenses.lgpl21Plus;
     maintainers = [ maintainers.Zimmi48 ];
   };
diff --git a/nixpkgs/pkgs/development/coq-modules/equations/default.nix b/nixpkgs/pkgs/development/coq-modules/equations/default.nix
index 6d02db5cea91..961b54f6a4db 100644
--- a/nixpkgs/pkgs/development/coq-modules/equations/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/equations/default.nix
@@ -6,6 +6,7 @@
   repo = "Coq-Equations";
   inherit version;
   defaultVersion = lib.switch coq.coq-version [
+    { case = "8.19"; out = "1.3+8.19"; }
     { case = "8.18"; out = "1.3+8.18"; }
     { case = "8.17"; out = "1.3+8.17"; }
     { case = "8.16"; out = "1.3+8.16"; }
@@ -60,6 +61,8 @@
     release."1.3+8.17".sha256         = "sha256-yNotSIxFkhTg3reZIchGQ7cV9WmTJ7p7hPfKGBiByDw=";
     release."1.3+8.18".rev            = "v1.3-8.18";
     release."1.3+8.18".sha256         = "sha256-8MZO9vWdr8wlAov0lBTYMnde0RuMyhaiM99zp7Zwfao=";
+    release."1.3+8.19".rev            = "v1.3-8.19";
+    release."1.3+8.19".sha256         = "sha256-roBCWfAHDww2Z2JbV5yMI3+EOfIsv3WvxEcUbBiZBsk=";
 
   mlPlugin = true;
 
diff --git a/nixpkgs/pkgs/development/coq-modules/itauto/default.nix b/nixpkgs/pkgs/development/coq-modules/itauto/default.nix
index 23bde1b1506f..b0fba6868df8 100644
--- a/nixpkgs/pkgs/development/coq-modules/itauto/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/itauto/default.nix
@@ -5,6 +5,7 @@
   owner = "fbesson";
   domain = "gitlab.inria.fr";
 
+  release."8.19.0".sha256 = "sha256-xKWCF4dYvvlJUVGCZcR2RLCG55vlGzu2GN30MeRvVD4=";
   release."8.18.0".sha256 = "sha256-4mDDnKTeYrf27uRMkydQxO7j2tfgTFXOREW474d40eo=";
   release."8.17.0".sha256 = "sha256-fgdnKchNT1Hyrq14gU8KWYnlSfg3qlsSw5A4+RoA26w=";
   release."8.16.0".sha256 = "sha256-4zAUYGlw/pBcLPv2GroIduIlvbfi1+Vy+TdY8KLCqO4=";
@@ -13,6 +14,7 @@
   release."8.13+no".sha256 = "sha256-gXoxtLcHPoyjJkt7WqvzfCMCQlh6kL2KtCGe3N6RC/A=";
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.coq-version [
+    { case = isEq "8.19"; out = "8.19.0"; }
     { case = isEq "8.18"; out = "8.18.0"; }
     { case = isEq "8.17"; out = "8.17.0"; }
     { case = isEq "8.16"; out = "8.16.0"; }
diff --git a/nixpkgs/pkgs/development/coq-modules/mathcomp-word/default.nix b/nixpkgs/pkgs/development/coq-modules/mathcomp-word/default.nix
index 52d4799eb173..0183de981226 100644
--- a/nixpkgs/pkgs/development/coq-modules/mathcomp-word/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/mathcomp-word/default.nix
@@ -18,15 +18,17 @@ mkCoqDerivation {
 
   releaseRev = v: "v${v}";
 
+  release."3.1".sha256 = "sha256-qQHis6554sG7NpCpWhT2wvelnxsrbEPVNv3fpxwxHMU=";
   release."3.0".sha256 = "sha256-xEgx5HHDOimOJbNMtIVf/KG3XBemOS9XwoCoW6btyJ4=";
+  release."2.3".sha256 = "sha256-whU1yvFFuxpwQutW41B/WBg5DrVZJW/Do/GuHtzuI3U=";
   release."2.2".sha256 = "sha256-8BB6SToCrMZTtU78t2K+aExuxk9O1lCqVQaa8wabSm8=";
   release."2.1".sha256 = "sha256-895gZzwwX8hN9UUQRhcgRlphHANka9R0PRotfmSEelA=";
   release."2.0".sha256 = "sha256-ySg3AviGGY5jXqqn1cP6lTw3aS5DhawXEwNUgj7pIjA=";
 
   inherit version;
   defaultVersion = with lib.versions; lib.switch [ coq.version mathcomp.version ] [
-    { cases = [ (range "8.16" "8.19") (isGe "2.0")          ]; out = "3.0"; }
-    { cases = [ (range "8.12" "8.19") (range "1.12" "1.19") ]; out = "2.2"; }
+    { cases = [ (range "8.16" "8.19") (isGe "2.0")          ]; out = "3.1"; }
+    { cases = [ (range "8.12" "8.19") (range "1.12" "1.19") ]; out = "2.3"; }
   ] null;
 
   propagatedBuildInputs = [ mathcomp.algebra mathcomp.ssreflect mathcomp.fingroup ];
diff --git a/nixpkgs/pkgs/development/coq-modules/vcfloat/default.nix b/nixpkgs/pkgs/development/coq-modules/vcfloat/default.nix
index 5d1805c2573f..452cc0a59e83 100644
--- a/nixpkgs/pkgs/development/coq-modules/vcfloat/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/vcfloat/default.nix
@@ -1,10 +1,10 @@
 { lib, mkCoqDerivation, coq, interval, compcert, flocq, bignums, version ? null }:
 
-with lib; mkCoqDerivation {
+let self = with lib; mkCoqDerivation {
   pname = "vcfloat";
   owner = "VeriNum";
   inherit version;
-  sourceRoot = "source/vcfloat";
+  sourceRoot = "${self.src.name}/vcfloat";
   postPatch = ''
     coq_makefile -o Makefile -f _CoqProject *.v
   '';
@@ -21,4 +21,5 @@ with lib; mkCoqDerivation {
     maintainers = with maintainers; [ quinn-dougherty ];
     license = licenses.lgpl3Plus;
   };
-}
+};
+in self
diff --git a/nixpkgs/pkgs/development/cuda-modules/cuda-samples/generic.nix b/nixpkgs/pkgs/development/cuda-modules/cuda-samples/generic.nix
index fb3d7cc99da9..3d1dac015e16 100644
--- a/nixpkgs/pkgs/development/cuda-modules/cuda-samples/generic.nix
+++ b/nixpkgs/pkgs/development/cuda-modules/cuda-samples/generic.nix
@@ -1,5 +1,5 @@
 {
-  autoAddOpenGLRunpathHook,
+  autoAddDriverRunpath,
   backendStdenv,
   cmake,
   cudatoolkit,
@@ -31,7 +31,7 @@ backendStdenv.mkDerivation (
 
     nativeBuildInputs =
       [
-        autoAddOpenGLRunpathHook
+        autoAddDriverRunpath
         pkg-config
       ]
       # CMake has to run as a native, build-time dependency for libNVVM samples.
diff --git a/nixpkgs/pkgs/development/cuda-modules/cudatoolkit/default.nix b/nixpkgs/pkgs/development/cuda-modules/cudatoolkit/default.nix
index aca0c7ad0b78..231a153bf7e6 100644
--- a/nixpkgs/pkgs/development/cuda-modules/cudatoolkit/default.nix
+++ b/nixpkgs/pkgs/development/cuda-modules/cudatoolkit/default.nix
@@ -2,7 +2,7 @@
   cudaVersion,
   runPatches ? [],
   autoPatchelfHook,
-  autoAddOpenGLRunpathHook,
+  autoAddDriverRunpath,
   addOpenGLRunpath,
   alsa-lib,
   curlMinimal,
@@ -76,7 +76,7 @@ backendStdenv.mkDerivation rec {
       rsync
       addOpenGLRunpath
       autoPatchelfHook
-      autoAddOpenGLRunpathHook
+      autoAddDriverRunpath
       markForCudatoolkitRootHook
     ]
     ++ lib.optionals (lib.versionOlder version "11") [libsForQt5.wrapQtAppsHook]
diff --git a/nixpkgs/pkgs/development/cuda-modules/generic-builders/manifest.nix b/nixpkgs/pkgs/development/cuda-modules/generic-builders/manifest.nix
index 5e837fa36b5e..4f40b7f01dc2 100644
--- a/nixpkgs/pkgs/development/cuda-modules/generic-builders/manifest.nix
+++ b/nixpkgs/pkgs/development/cuda-modules/generic-builders/manifest.nix
@@ -1,7 +1,7 @@
 {
   # General callPackage-supplied arguments
-  autoAddOpenGLRunpathHook,
-  autoAddCudaCompatRunpathHook,
+  autoAddDriverRunpath,
+  autoAddCudaCompatRunpath,
   autoPatchelfHook,
   backendStdenv,
   fetchurl,
@@ -193,16 +193,16 @@ backendStdenv.mkDerivation (
       # in typically /lib/opengl-driver by adding that
       # directory to the rpath of all ELF binaries.
       # Check e.g. with `patchelf --print-rpath path/to/my/binary
-      autoAddOpenGLRunpathHook
+      autoAddDriverRunpath
       markForCudatoolkitRootHook
     ]
-    # autoAddCudaCompatRunpathHook depends on cuda_compat and would cause
+    # autoAddCudaCompatRunpath depends on cuda_compat and would cause
     # infinite recursion if applied to `cuda_compat` itself (beside the fact
     # that it doesn't make sense in the first place)
     ++ lib.optionals (pname != "cuda_compat" && flags.isJetsonBuild) [
-      # autoAddCudaCompatRunpathHook must appear AFTER autoAddOpenGLRunpathHook.
+      # autoAddCudaCompatRunpath must appear AFTER autoAddDriverRunpath.
       # See its documentation in ./setup-hooks/extension.nix.
-      autoAddCudaCompatRunpathHook
+      autoAddCudaCompatRunpath
     ];
 
     buildInputs =
diff --git a/nixpkgs/pkgs/development/cuda-modules/nccl/default.nix b/nixpkgs/pkgs/development/cuda-modules/nccl/default.nix
index 25296c21365d..b8bdc69bba4f 100644
--- a/nixpkgs/pkgs/development/cuda-modules/nccl/default.nix
+++ b/nixpkgs/pkgs/development/cuda-modules/nccl/default.nix
@@ -12,7 +12,7 @@
 }:
 let
   inherit (cudaPackages)
-    autoAddOpenGLRunpathHook
+    autoAddDriverRunpath
     backendStdenv
     cuda_cccl
     cuda_cudart
@@ -44,7 +44,7 @@ backendStdenv.mkDerivation (
     nativeBuildInputs =
       [
         which
-        autoAddOpenGLRunpathHook
+        autoAddDriverRunpath
         python3
       ]
       ++ lib.optionals (lib.versionOlder cudaVersion "11.4") [cudatoolkit]
diff --git a/nixpkgs/pkgs/development/cuda-modules/saxpy/default.nix b/nixpkgs/pkgs/development/cuda-modules/saxpy/default.nix
index 68c60e2d8446..bc299dea006f 100644
--- a/nixpkgs/pkgs/development/cuda-modules/saxpy/default.nix
+++ b/nixpkgs/pkgs/development/cuda-modules/saxpy/default.nix
@@ -5,7 +5,7 @@
 }:
 let
   inherit (cudaPackages)
-    autoAddOpenGLRunpathHook
+    autoAddDriverRunpath
     backendStdenv
     cuda_cccl
     cuda_cudart
@@ -29,7 +29,7 @@ backendStdenv.mkDerivation {
   nativeBuildInputs =
     [
       cmake
-      autoAddOpenGLRunpathHook
+      autoAddDriverRunpath
     ]
     ++ lib.optionals (lib.versionOlder cudaVersion "11.4") [cudatoolkit]
     ++ lib.optionals (lib.versionAtLeast cudaVersion "11.4") [cuda_nvcc];
diff --git a/nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-add-cuda-compat-runpath.sh b/nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-add-cuda-compat-runpath.sh
index ae25cebaca6f..fc41024f1551 100644
--- a/nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-add-cuda-compat-runpath.sh
+++ b/nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-add-cuda-compat-runpath.sh
@@ -3,25 +3,25 @@
 # coming from the cuda_compat package by adding it to the RUNPATH.
 echo "Sourcing auto-add-cuda-compat-runpath-hook"
 
-elfHasDynamicSection() {
-    patchelf --print-rpath "$1" >& /dev/null
-}
+addCudaCompatRunpath() {
+  local libPath
+  local origRpath
+
+  if [[ $# -eq 0 ]]; then
+    echo "addCudaCompatRunpath: no library path provided" >&2
+    exit 1
+  elif [[ $# -gt 1 ]]; then
+    echo "addCudaCompatRunpath: too many arguments" >&2
+    exit 1
+  elif [[ "$1" == "" ]]; then
+    echo "addCudaCompatRunpath: empty library path" >&2
+    exit 1
+  else
+    libPath="$1"
+  fi
 
-autoAddCudaCompatRunpathPhase() (
-  local outputPaths
-  mapfile -t outputPaths < <(for o in $(getAllOutputNames); do echo "${!o}"; done)
-  find "${outputPaths[@]}" -type f -print0  | while IFS= read -rd "" f; do
-    if isELF "$f"; then
-      # patchelf returns an error on statically linked ELF files
-      if elfHasDynamicSection "$f" ; then
-        echo "autoAddCudaCompatRunpathHook: patching $f"
-        local origRpath="$(patchelf --print-rpath "$f")"
-        patchelf --set-rpath "@libcudaPath@:$origRpath" "$f"
-      elif (( "${NIX_DEBUG:-0}" >= 1 )) ; then
-        echo "autoAddCudaCompatRunpathHook: skipping a statically-linked ELF file $f"
-      fi
-    fi
-  done
-)
+  origRpath="$(patchelf --print-rpath "$libPath")"
+  patchelf --set-rpath "@libcudaPath@:$origRpath" "$libPath"
+}
 
-postFixupHooks+=(autoAddCudaCompatRunpathPhase)
+postFixupHooks+=("autoFixElfFiles addCudaCompatRunpath")
diff --git a/nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-add-driver-runpath-hook.sh b/nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-add-driver-runpath-hook.sh
new file mode 100644
index 000000000000..ecff2a032d64
--- /dev/null
+++ b/nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-add-driver-runpath-hook.sh
@@ -0,0 +1,8 @@
+# shellcheck shell=bash
+# Run addDriverRunpath on all dynamically linked ELF files
+echo "Sourcing auto-add-driver-runpath-hook"
+
+if [ -z "${dontUseAutoAddDriverRunpath-}" ]; then
+  echo "Using autoAddDriverRunpath"
+  postFixupHooks+=("autoFixElfFiles addDriverRunpath")
+fi
diff --git a/nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-add-opengl-runpath-hook.sh b/nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-add-opengl-runpath-hook.sh
deleted file mode 100644
index a6eeef7c7699..000000000000
--- a/nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-add-opengl-runpath-hook.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-# shellcheck shell=bash
-# Run addOpenGLRunpath on all dynamically linked, ELF files
-echo "Sourcing auto-add-opengl-runpath-hook"
-
-elfHasDynamicSection() {
-    patchelf --print-rpath "$1" >& /dev/null
-}
-
-autoAddOpenGLRunpathPhase() (
-  local outputPaths
-  mapfile -t outputPaths < <(for o in $(getAllOutputNames); do echo "${!o}"; done)
-  find "${outputPaths[@]}" -type f -print0  | while IFS= read -rd "" f; do
-    if isELF "$f"; then
-      # patchelf returns an error on statically linked ELF files
-      if elfHasDynamicSection "$f" ; then
-        echo "autoAddOpenGLRunpathHook: patching $f"
-        addOpenGLRunpath "$f"
-      elif (( "${NIX_DEBUG:-0}" >= 1 )) ; then
-        echo "autoAddOpenGLRunpathHook: skipping a statically-linked ELF file $f"
-      fi
-    fi
-  done
-)
-
-if [ -z "${dontUseAutoAddOpenGLRunpath-}" ]; then
-  echo "Using autoAddOpenGLRunpathPhase"
-  postFixupHooks+=(autoAddOpenGLRunpathPhase)
-fi
diff --git a/nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-fix-elf-files.sh b/nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-fix-elf-files.sh
new file mode 100644
index 000000000000..1d57dfb17a66
--- /dev/null
+++ b/nixpkgs/pkgs/development/cuda-modules/setup-hooks/auto-fix-elf-files.sh
@@ -0,0 +1,64 @@
+# shellcheck shell=bash
+# List all dynamically linked ELF files in the outputs and apply a generic fix
+# action provided as a parameter (currently used to add the CUDA or the
+# cuda_compat driver to the runpath of binaries)
+echo "Sourcing cuda/fix-elf-files.sh"
+
+# Returns the exit code of patchelf --print-rpath.
+# A return code of 0 (success) means the ELF file has a dynamic section, while
+# a non-zero return code means the ELF file is statically linked (or is not an
+# ELF file).
+elfHasDynamicSection() {
+  local libPath
+
+  if [[ $# -eq 0 ]]; then
+    echo "elfHasDynamicSection: no library path provided" >&2
+    exit 1
+  elif [[ $# -gt 1 ]]; then
+    echo "elfHasDynamicSection: too many arguments" >&2
+    exit 1
+  elif [[ "$1" == "" ]]; then
+    echo "elfHasDynamicSection: empty library path" >&2
+    exit 1
+  else
+    libPath="$1"
+    shift 1
+  fi
+
+  patchelf --print-rpath "$libPath" >& /dev/null
+  return $?
+}
+
+# Run a fix action on all dynamically linked ELF files in the outputs.
+autoFixElfFiles() {
+  local fixAction
+  local outputPaths
+
+  if [[ $# -eq 0 ]]; then
+    echo "autoFixElfFiles: no fix action provided" >&2
+    exit 1
+  elif [[ $# -gt 1 ]]; then
+    echo "autoFixElfFiles: too many arguments" >&2
+    exit 1
+  elif [[ "$1" == "" ]]; then
+    echo "autoFixElfFiles: empty fix action" >&2
+    exit 1
+  else
+    fixAction="$1"
+  fi
+
+  mapfile -t outputPaths < <(for o in $(getAllOutputNames); do echo "${!o}"; done)
+
+  find "${outputPaths[@]}" -type f -print0  | while IFS= read -rd "" f; do
+    if ! isELF "$f"; then
+      continue
+    elif elfHasDynamicSection "$f"; then
+      # patchelf returns an error on statically linked ELF files, and in
+      # practice fixing actions all involve patchelf
+      echo "autoFixElfFiles: using $fixAction to fix $f" >&2
+      $fixAction "$f"
+    elif (( "${NIX_DEBUG:-0}" >= 1 )); then
+      echo "autoFixElfFiles: skipping a statically-linked ELF file $f"
+    fi
+  done
+}
diff --git a/nixpkgs/pkgs/development/cuda-modules/setup-hooks/extension.nix b/nixpkgs/pkgs/development/cuda-modules/setup-hooks/extension.nix
index 9e352bd5b3af..ece70da52b02 100644
--- a/nixpkgs/pkgs/development/cuda-modules/setup-hooks/extension.nix
+++ b/nixpkgs/pkgs/development/cuda-modules/setup-hooks/extension.nix
@@ -1,4 +1,19 @@
 final: _: {
+  # Helper hook used in both autoAddCudaCompatRunpath and
+  # autoAddDriverRunpath that applies a generic patching action to all elf
+  # files with a dynamic linking section.
+  autoFixElfFiles =
+    final.callPackage
+      (
+        {makeSetupHook}:
+         makeSetupHook
+          {
+            name = "auto-fix-elf-files";
+          }
+          ./auto-fix-elf-files.sh
+      )
+      {};
+
   # Internal hook, used by cudatoolkit and cuda redist packages
   # to accommodate automatic CUDAToolkit_ROOT construction
   markForCudatoolkitRootHook =
@@ -32,31 +47,36 @@ final: _: {
       {}
     );
 
-  autoAddOpenGLRunpathHook =
+  autoAddDriverRunpath =
     final.callPackage
       (
-        {addOpenGLRunpath, makeSetupHook}:
+        {addDriverRunpath, autoFixElfFiles, makeSetupHook}:
         makeSetupHook
           {
             name = "auto-add-opengl-runpath-hook";
-            propagatedBuildInputs = [addOpenGLRunpath];
+            propagatedBuildInputs = [addDriverRunpath autoFixElfFiles];
           }
-          ./auto-add-opengl-runpath-hook.sh
+          ./auto-add-driver-runpath-hook.sh
       )
       {};
 
-  # autoAddCudaCompatRunpathHook hook must be added AFTER `setupCudaHook`. Both
+  # Deprecated: an alias kept for compatibility. Consider removing after 24.11
+  autoAddOpenGLRunpathHook = final.autoAddDriverRunpath;
+
+  # autoAddCudaCompatRunpath hook must be added AFTER `setupCudaHook`. Both
   # hooks prepend a path with `libcuda.so` to the `DT_RUNPATH` section of
   # patched elf files, but `cuda_compat` path must take precedence (otherwise,
   # it doesn't have any effect) and thus appear first. Meaning this hook must be
   # executed last.
-  autoAddCudaCompatRunpathHook =
+  autoAddCudaCompatRunpath =
     final.callPackage
       (
-        {makeSetupHook, cuda_compat ? null }:
+        {makeSetupHook, autoFixElfFiles, cuda_compat ? null }:
         makeSetupHook
           {
             name = "auto-add-cuda-compat-runpath-hook";
+            propagatedBuildInputs = [autoFixElfFiles];
+
             substitutions = {
               # Hotfix Ofborg evaluation
               libcudaPath = if final.flags.isJetsonBuild then "${cuda_compat}/compat" else null;
diff --git a/nixpkgs/pkgs/development/embedded/arduino/arduino-ci/default.nix b/nixpkgs/pkgs/development/embedded/arduino/arduino-ci/default.nix
index fe28a962e102..b711f814fd78 100644
--- a/nixpkgs/pkgs/development/embedded/arduino/arduino-ci/default.nix
+++ b/nixpkgs/pkgs/development/embedded/arduino/arduino-ci/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "CI for Arduino Libraries";
+    mainProgram = "arduino-ci";
     homepage = src.meta.homepage;
     license = licenses.mit;
     maintainers = with maintainers; [ ryantm ];
diff --git a/nixpkgs/pkgs/development/embedded/arduino/arduino-cli/default.nix b/nixpkgs/pkgs/development/embedded/arduino/arduino-cli/default.nix
index fcc4c84e7cba..0a15a1566fe3 100644
--- a/nixpkgs/pkgs/development/embedded/arduino/arduino-cli/default.nix
+++ b/nixpkgs/pkgs/development/embedded/arduino/arduino-cli/default.nix
@@ -4,13 +4,13 @@ let
 
   pkg = buildGoModule rec {
     pname = "arduino-cli";
-    version = "0.35.2";
+    version = "0.35.3";
 
     src = fetchFromGitHub {
       owner = "arduino";
       repo = pname;
       rev = "v${version}";
-      hash = "sha256-ctgDuWbNLMyQrxnarTbCtGXM5G+bPeS4Xa7eTbkFo0k=";
+      hash = "sha256-brWWoIOQhU/isd48VCx6tczAJnamBuOa6e/xezuHN7E=";
     };
 
     nativeBuildInputs = [
@@ -38,7 +38,7 @@ let
       ];
     in ''
       substituteInPlace Taskfile.yml \
-        --replace "go test" "go test -p $NIX_BUILD_CORES -skip '(${lib.concatStringsSep "|" skipTests})'"
+        --replace-fail "go test" "go test -p $NIX_BUILD_CORES -skip '(${lib.concatStringsSep "|" skipTests})'"
     '';
 
     doCheck = stdenv.isLinux;
@@ -53,18 +53,19 @@ let
       "-s" "-w" "-X github.com/arduino/arduino-cli/version.versionString=${version}" "-X github.com/arduino/arduino-cli/version.commit=unknown"
     ] ++ lib.optionals stdenv.isLinux [ "-extldflags '-static'" ];
 
-    postInstall = ''
+    postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
       export HOME="$(mktemp -d)"
-      for s in {bash,zsh,fish}; do
-        $out/bin/arduino-cli completion $s > completion.$s
-        installShellCompletion --cmd arduino-cli --$s completion.$s
-      done
+      installShellCompletion --cmd arduino-cli \
+        --bash <($out/bin/arduino-cli completion bash) \
+        --zsh <($out/bin/arduino-cli completion zsh) \
+        --fish <($out/bin/arduino-cli completion fish)
       unset HOME
     '';
 
     meta = with lib; {
       inherit (src.meta) homepage;
       description = "Arduino from the command line";
+      mainProgram = "arduino-cli";
       changelog = "https://github.com/arduino/arduino-cli/releases/tag/${version}";
       license = licenses.gpl3Only;
       maintainers = with maintainers; [ ryantm ];
@@ -85,6 +86,7 @@ if stdenv.isLinux then
 
     extraInstallCommands = ''
       mv $out/bin/$name $out/bin/arduino-cli
+    '' + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
       cp -r ${pkg.outPath}/share $out/share
     '';
     passthru.pureGoPkg = pkg;
diff --git a/nixpkgs/pkgs/development/embedded/arduino/arduino-core/default.nix b/nixpkgs/pkgs/development/embedded/arduino/arduino-core/default.nix
index 91c2792f9be1..e82396669787 100644
--- a/nixpkgs/pkgs/development/embedded/arduino/arduino-core/default.nix
+++ b/nixpkgs/pkgs/development/embedded/arduino/arduino-core/default.nix
@@ -242,6 +242,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Open-source electronics prototyping platform";
+    mainProgram = "arduino";
     homepage = "https://www.arduino.cc/";
     license = if withTeensyduino then licenses.unfreeRedistributable else licenses.gpl2;
     sourceProvenance = with sourceTypes; [
diff --git a/nixpkgs/pkgs/development/embedded/arduino/arduino-language-server/default.nix b/nixpkgs/pkgs/development/embedded/arduino/arduino-language-server/default.nix
index f1d71476a89a..a1d330e4b9a7 100644
--- a/nixpkgs/pkgs/development/embedded/arduino/arduino-language-server/default.nix
+++ b/nixpkgs/pkgs/development/embedded/arduino/arduino-language-server/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An Arduino Language Server based on Clangd to Arduino code autocompletion";
+    mainProgram = "arduino-language-server";
     homepage = "https://github.com/arduino/arduino-language-server";
     changelog = "https://github.com/arduino/arduino-language-server/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/embedded/arduino/arduinoOTA/default.nix b/nixpkgs/pkgs/development/embedded/arduino/arduinoOTA/default.nix
index 92da1a77f18e..a8e1b481fde1 100644
--- a/nixpkgs/pkgs/development/embedded/arduino/arduinoOTA/default.nix
+++ b/nixpkgs/pkgs/development/embedded/arduino/arduinoOTA/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/arduino/arduinoOTA";
     description = "A tool for uploading programs to Arduino boards over a network";
+    mainProgram = "arduinoOTA";
     license = licenses.gpl3;
     maintainers = with maintainers; [ poelzi ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/embedded/avrdude/default.nix b/nixpkgs/pkgs/development/embedded/avrdude/default.nix
index 99c798b5c238..3057e2be0936 100644
--- a/nixpkgs/pkgs/development/embedded/avrdude/default.nix
+++ b/nixpkgs/pkgs/development/embedded/avrdude/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Command-line tool for programming Atmel AVR microcontrollers";
+    mainProgram = "avrdude";
     longDescription = ''
       AVRDUDE (AVR Downloader/UploaDEr) is an utility to
       download/upload/manipulate the ROM and EEPROM contents of AVR
diff --git a/nixpkgs/pkgs/development/embedded/blackmagic/default.nix b/nixpkgs/pkgs/development/embedded/blackmagic/default.nix
index a422cdc54fc3..893a0c889fad 100644
--- a/nixpkgs/pkgs/development/embedded/blackmagic/default.nix
+++ b/nixpkgs/pkgs/development/embedded/blackmagic/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "In-application debugger for ARM Cortex microcontrollers";
+    mainProgram = "blackmagic";
     longDescription = ''
       The Black Magic Probe is a modern, in-application debugging tool
       for embedded microprocessors. It allows you to see what is going
diff --git a/nixpkgs/pkgs/development/embedded/cc-tool/default.nix b/nixpkgs/pkgs/development/embedded/cc-tool/default.nix
index e2a511a0e328..5d8e671b6fcd 100644
--- a/nixpkgs/pkgs/development/embedded/cc-tool/default.nix
+++ b/nixpkgs/pkgs/development/embedded/cc-tool/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Command line tool for the Texas Instruments CC Debugger";
+    mainProgram = "cc-tool";
     longDescription = ''
       cc-tool provides support for Texas Instruments CC Debugger
     '';
diff --git a/nixpkgs/pkgs/development/embedded/easypdkprog/default.nix b/nixpkgs/pkgs/development/embedded/easypdkprog/default.nix
index 92d1a550ea80..28f06db9f35d 100644
--- a/nixpkgs/pkgs/development/embedded/easypdkprog/default.nix
+++ b/nixpkgs/pkgs/development/embedded/easypdkprog/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Read, write and execute programs on PADAUK microcontroller";
+    mainProgram = "easypdkprog";
     homepage = "https://github.com/free-pdk/easy-pdk-programmer-software";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ david-sawatzke ];
diff --git a/nixpkgs/pkgs/development/embedded/elf2uf2-rs/default.nix b/nixpkgs/pkgs/development/embedded/elf2uf2-rs/default.nix
index 0516a71955f0..e02b54a8d12c 100644
--- a/nixpkgs/pkgs/development/embedded/elf2uf2-rs/default.nix
+++ b/nixpkgs/pkgs/development/embedded/elf2uf2-rs/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Convert ELF files to UF2 for USB Flashing Bootloaders";
+    mainProgram = "elf2uf2-rs";
     homepage = "https://github.com/JoNil/elf2uf2-rs";
     license = with licenses; [ bsd0 ];
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/development/embedded/fpga/apio/default.nix b/nixpkgs/pkgs/development/embedded/fpga/apio/default.nix
index 1ca1e3cd200d..47ff562958ec 100644
--- a/nixpkgs/pkgs/development/embedded/fpga/apio/default.nix
+++ b/nixpkgs/pkgs/development/embedded/fpga/apio/default.nix
@@ -73,6 +73,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Open source ecosystem for open FPGA boards";
+    mainProgram = "apio";
     homepage = "https://github.com/FPGAwars/apio";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ Luflosi ];
diff --git a/nixpkgs/pkgs/development/embedded/fpga/ecpdap/default.nix b/nixpkgs/pkgs/development/embedded/fpga/ecpdap/default.nix
index 799915b1b7f6..b2d0b0e11531 100644
--- a/nixpkgs/pkgs/development/embedded/fpga/ecpdap/default.nix
+++ b/nixpkgs/pkgs/development/embedded/fpga/ecpdap/default.nix
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool to program ECP5 FPGAs";
+    mainProgram = "ecpdap";
     longDescription = ''
       ECPDAP allows you to program ECP5 FPGAs and attached SPI flash
       using CMSIS-DAP probes in JTAG mode.
diff --git a/nixpkgs/pkgs/development/embedded/fpga/fujprog/default.nix b/nixpkgs/pkgs/development/embedded/fpga/fujprog/default.nix
index db1f42e3a266..69c23f2a71cd 100644
--- a/nixpkgs/pkgs/development/embedded/fpga/fujprog/default.nix
+++ b/nixpkgs/pkgs/development/embedded/fpga/fujprog/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "JTAG programmer for the ULX3S and ULX2S open hardware FPGA development boards";
+    mainProgram = "fujprog";
     homepage = "https://github.com/kost/fujprog";
     license = licenses.bsd2;
     maintainers = with maintainers; [ trepetti ];
diff --git a/nixpkgs/pkgs/development/embedded/fpga/openfpgaloader/default.nix b/nixpkgs/pkgs/development/embedded/fpga/openfpgaloader/default.nix
index 615000e6eec1..3ddfd9748645 100644
--- a/nixpkgs/pkgs/development/embedded/fpga/openfpgaloader/default.nix
+++ b/nixpkgs/pkgs/development/embedded/fpga/openfpgaloader/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "openfpgaloader";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "trabucayre";
     repo = "openFPGALoader";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-OiyuhDrK4w13lRmgfmMlZ+1gvRZCJxsOF6MzLy3CFpg=";
+    hash = "sha256-fe0g8+q/4r7h++7/Bk7pbOJn1CsAc+2IzXN6lqtY2vY=";
   };
 
   nativeBuildInputs = [
@@ -38,6 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Universal utility for programming FPGAs";
+    mainProgram = "openFPGALoader";
     homepage = "https://github.com/trabucayre/openFPGALoader";
     license = lib.licenses.agpl3Only;
     maintainers = with lib.maintainers; [ danderson ];
diff --git a/nixpkgs/pkgs/development/embedded/fpga/tinyprog/default.nix b/nixpkgs/pkgs/development/embedded/fpga/tinyprog/default.nix
index b242d6ebc1b4..e5a448b6fb3d 100644
--- a/nixpkgs/pkgs/development/embedded/fpga/tinyprog/default.nix
+++ b/nixpkgs/pkgs/development/embedded/fpga/tinyprog/default.nix
@@ -33,6 +33,7 @@ with python3Packages; buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/tinyfpga/TinyFPGA-Bootloader/tree/master/programmer";
     description = "Programmer for FPGA boards using the TinyFPGA USB Bootloader";
+    mainProgram = "tinyprog";
     maintainers = with maintainers; [ emily ];
     license = licenses.asl20;
   };
diff --git a/nixpkgs/pkgs/development/embedded/jtag-remote-server/default.nix b/nixpkgs/pkgs/development/embedded/jtag-remote-server/default.nix
index 4a2c9c3df3d2..7f29d1bfbeb9 100644
--- a/nixpkgs/pkgs/development/embedded/jtag-remote-server/default.nix
+++ b/nixpkgs/pkgs/development/embedded/jtag-remote-server/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Remote JTAG server for remote debugging";
+    mainProgram = "jtag-remote-server";
     homepage = "https://github.com/jiegec/jtag-remote-server";
     license = licenses.mit;
     maintainers = with maintainers; [ nickcao ];
diff --git a/nixpkgs/pkgs/development/embedded/nmrpflash/default.nix b/nixpkgs/pkgs/development/embedded/nmrpflash/default.nix
index 62dea5d4c4d8..08748c325023 100644
--- a/nixpkgs/pkgs/development/embedded/nmrpflash/default.nix
+++ b/nixpkgs/pkgs/development/embedded/nmrpflash/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Netgear Unbrick Utility";
+    mainProgram = "nmrpflash";
     homepage = "https://github.com/jclehner/nmrpflash";
     license = licenses.gpl3;
     maintainers = with maintainers; [ dadada ];
diff --git a/nixpkgs/pkgs/development/embedded/openocd/default.nix b/nixpkgs/pkgs/development/embedded/openocd/default.nix
index 39e9edc67722..5efd11c65f98 100644
--- a/nixpkgs/pkgs/development/embedded/openocd/default.nix
+++ b/nixpkgs/pkgs/development/embedded/openocd/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing";
+    mainProgram = "openocd";
     longDescription = ''
       OpenOCD provides on-chip programming and debugging support with a layered
       architecture of JTAG interface and TAP support, debug target support
diff --git a/nixpkgs/pkgs/development/embedded/stm32/stm32flash/default.nix b/nixpkgs/pkgs/development/embedded/stm32/stm32flash/default.nix
index d6e8d4598960..fd9703fed4cf 100644
--- a/nixpkgs/pkgs/development/embedded/stm32/stm32flash/default.nix
+++ b/nixpkgs/pkgs/development/embedded/stm32/stm32flash/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Open source flash program for the STM32 ARM processors using the ST bootloader";
+    mainProgram = "stm32flash";
     homepage = "https://sourceforge.net/projects/stm32flash/";
     license = lib.licenses.gpl2;
     platforms = platforms.all; # Should work on all platforms
diff --git a/nixpkgs/pkgs/development/embedded/stm8/stm8flash/default.nix b/nixpkgs/pkgs/development/embedded/stm8/stm8flash/default.nix
index 1584ee7fdf07..c2bab12246b2 100644
--- a/nixpkgs/pkgs/development/embedded/stm8/stm8flash/default.nix
+++ b/nixpkgs/pkgs/development/embedded/stm8/stm8flash/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/vdudouyt/stm8flash";
     description = "A tool for flashing STM8 MCUs via ST-LINK (V1 and V2)";
+    mainProgram = "stm8flash";
     maintainers = with maintainers; [ pkharvey ];
     license = licenses.gpl2;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/embedded/svdtools/default.nix b/nixpkgs/pkgs/development/embedded/svdtools/default.nix
index 5611c3005a1e..204d40c63e42 100644
--- a/nixpkgs/pkgs/development/embedded/svdtools/default.nix
+++ b/nixpkgs/pkgs/development/embedded/svdtools/default.nix
@@ -5,17 +5,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "svdtools";
-  version = "0.3.10";
+  version = "0.3.11";
 
   src = fetchCrate {
     inherit version pname;
-    hash = "sha256-VEGLUc8ThhD/R+K2IFGvE800euz8oF0kuekGO627rvU=";
+    hash = "sha256-LmpYsG/2oEdbAK2ePI+LYbGrVN+wC9gQS6GXNcF8XFg=";
   };
 
-  cargoHash = "sha256-T0yTGCDgRQUySUHNkoB4kqoKS/0kJWDi04ysPGO79HY=";
+  cargoHash = "sha256-qsCa+YWE9dghG8T53TSDikWh+JhQt9v7A1Gn+/t5YZs=";
 
   meta = with lib; {
     description = "Tools to handle vendor-supplied, often buggy SVD files";
+    mainProgram = "svdtools";
     homepage = "https://github.com/stm32-rs/svdtools";
     changelog = "https://github.com/stm32-rs/svdtools/blob/v${version}/CHANGELOG-rust.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/embedded/teensy-loader-cli/default.nix b/nixpkgs/pkgs/development/embedded/teensy-loader-cli/default.nix
index e8445a9955f2..cd318d7a1ca5 100644
--- a/nixpkgs/pkgs/development/embedded/teensy-loader-cli/default.nix
+++ b/nixpkgs/pkgs/development/embedded/teensy-loader-cli/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Firmware uploader for the Teensy microcontroller boards";
+    mainProgram = "teensy-loader-cli";
     homepage = "https://www.pjrc.com/teensy/";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/embedded/uisp/default.nix b/nixpkgs/pkgs/development/embedded/uisp/default.nix
index 0ae31bc24fb2..d086781fb1c4 100644
--- a/nixpkgs/pkgs/development/embedded/uisp/default.nix
+++ b/nixpkgs/pkgs/development/embedded/uisp/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Tool for AVR microcontrollers which can interface to many hardware in-system programmers";
+    mainProgram = "uisp";
     license = lib.licenses.gpl2;
     homepage = "https://savannah.nongnu.org/projects/uisp";
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/development/embedded/wch-isp/default.nix b/nixpkgs/pkgs/development/embedded/wch-isp/default.nix
index 87f241813e03..3021c875f08b 100644
--- a/nixpkgs/pkgs/development/embedded/wch-isp/default.nix
+++ b/nixpkgs/pkgs/development/embedded/wch-isp/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, libusb1 }:
+{ lib, stdenv, fetchFromSourcehut, pkg-config, libusb1 }:
 
 stdenv.mkDerivation rec {
   pname = "wch-isp";
-  version = "0.4.0";
+  version = "0.4.1";
 
-  src = fetchFromGitHub {
-    owner = "jmaselbas";
+  src = fetchFromSourcehut {
+    owner = "~jmaselbas";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-cTePTpzvWf2DdInhBxFY72aVNb0SAlCHb/tUwNqqX1U=";
+    hash = "sha256-JB7cvZPzRhYJ8T3QJkguHOzZFrLOft5rRz0F0sVav/k=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -19,8 +19,9 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Firmware programmer for WCH microcontrollers over USB";
+    mainProgram = "wch-isp";
     license = lib.licenses.gpl2Only;
-    homepage = "https://github.com/jmaselbas/wch-isp";
+    homepage = "https://git.sr.ht/~jmaselbas/wch-isp";
     maintainers = with lib.maintainers; [ lesuisse ];
     platforms = lib.platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/gnuradio-modules/ais/default.nix b/nixpkgs/pkgs/development/gnuradio-modules/ais/default.nix
index 1376fbe657a8..8155f39ee689 100644
--- a/nixpkgs/pkgs/development/gnuradio-modules/ais/default.nix
+++ b/nixpkgs/pkgs/development/gnuradio-modules/ais/default.nix
@@ -53,6 +53,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Gnuradio block for ais";
+    mainProgram = "ais_rx";
     homepage = "https://github.com/bistromath/gr-ais";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-ncurses/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-ncurses/default.nix
index a355ed44777a..e20da1d9f98c 100644
--- a/nixpkgs/pkgs/development/guile-modules/guile-ncurses/default.nix
+++ b/nixpkgs/pkgs/development/guile-modules/guile-ncurses/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.gnu.org/software/guile-ncurses/";
     description = "Scheme interface to the NCurses libraries";
+    mainProgram = "guile-ncurses-shell";
     longDescription = ''
       GNU Guile-Ncurses is a library for the Guile Scheme interpreter that
       provides functions for creating text user interfaces.  The text user
diff --git a/nixpkgs/pkgs/development/haskell-modules/cabal2nix-unstable.nix b/nixpkgs/pkgs/development/haskell-modules/cabal2nix-unstable.nix
index cd517534d649..8e7396a3fb48 100644
--- a/nixpkgs/pkgs/development/haskell-modules/cabal2nix-unstable.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/cabal2nix-unstable.nix
@@ -8,10 +8,10 @@
 }:
 mkDerivation {
   pname = "cabal2nix";
-  version = "unstable-2024-01-04";
+  version = "unstable-2024-02-05";
   src = fetchzip {
-    url = "https://github.com/NixOS/cabal2nix/archive/e394e96c51cc7a2858145e710fbedbb2cb57f6ec.tar.gz";
-    sha256 = "0rzmyx2i2z3w2ibg4rbaasq0581sa7bf8n1cih6v3j6phzgl3058";
+    url = "https://github.com/NixOS/cabal2nix/archive/173e8a5fa70dc95a1aeb0bd877bf5fee6d5e6b4a.tar.gz";
+    sha256 = "1pld7jfsjmw486ch6li1fqci1jj5p2nvfq7nrkxrmf5p2ja5528g";
   };
   postUnpack = "sourceRoot+=/cabal2nix; echo source root reset to $sourceRoot";
   isLibrary = true;
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
index 482abb918e02..ec0545a89281 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
@@ -34,8 +34,6 @@ self: super: {
       # !!! Use cself/csuper inside for the actual overrides
       cabalInstallOverlay = cself: csuper:
         {
-          # Needs to be upgraded compared to Stackage LTS 21
-          cabal-install-solver = cself.cabal-install-solver_3_10_2_1;
           # Needs to be downgraded compared to Stackage LTS 21
           resolv = cself.resolv_0_1_2_0;
         } // lib.optionalAttrs (lib.versionOlder self.ghc.version "9.6") {
@@ -52,21 +50,6 @@ self: super: {
           # process depends on directory.
           process = cself.process_1_6_18_0;
 
-          # hspec < 2.10 depends on ghc (the library) directly which in turn
-          # depends on directory, causing a dependency conflict which is practically
-          # not solvable short of recompiling GHC. Instead of adding
-          # allowInconsistentDependencies for all reverse dependencies of hspec-core,
-          # just upgrade to an hspec version without the offending dependency.
-          hspec-core = cself.hspec-core_2_11_7;
-          hspec-discover = cself.hspec-discover_2_11_7;
-          hspec = cself.hspec_2_11_7;
-
-          # hspec-discover and hspec-core depend on hspec-meta for testing which
-          # we need to avoid since it depends on ghc as well. Since hspec*_2_11*
-          # are overridden to take the versioned attributes as inputs, we need
-          # to make sure to override the versioned attribute with this fix.
-          hspec-discover_2_11_7 = dontCheck csuper.hspec-discover_2_11_7;
-
           # Prevent dependency on doctest which causes an inconsistent dependency
           # due to depending on ghc which depends on directory etc.
           vector = dontCheck csuper.vector;
@@ -94,12 +77,13 @@ self: super: {
 
   # Extensions wants the latest version of Cabal for its list of Haskell
   # language extensions.
-  extensions = super.extensions.override {
+  # 2024-01-15: jailbreak to allow hspec-hedgehog 0.1.1.0 https://github.com/kowainik/extensions/pull/92
+  extensions = doJailbreak (super.extensions.override {
     Cabal =
       if versionOlder self.ghc.version "9.6"
       then self.Cabal_3_10_2_1
       else null; # use GHC bundled version
-  };
+  });
 
   #######################################
   ### HASKELL-LANGUAGE-SERVER SECTION ###
@@ -118,26 +102,9 @@ self: super: {
     ghc-paths = lsuper.ghc-paths.override { Cabal = null; };
   }));
 
-  # hasn't bumped upper bounds
-  # test fails: "floskell-test: styles/base.md: openBinaryFile: does not exist (No such file or directory)"
-  # https://github.com/ennocramer/floskell/issues/48
-  floskell = dontCheck (doJailbreak super.floskell);
-
-  # 2023-04-03: https://github.com/haskell/haskell-language-server/issues/3546#issuecomment-1494139751
-  # There will probably be a new revision soon.
-  hls-brittany-plugin = assert super.hls-brittany-plugin.version == "1.1.0.0"; doJailbreak super.hls-brittany-plugin;
-
   # For -f-auto see cabal.project in haskell-language-server.
   ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser (disableCabalFlag "auto" super.ghc-lib-parser-ex);
 
-  hls-test-utils = doJailbreak super.hls-test-utils;
-  hls-alternate-number-format-plugin = doJailbreak super.hls-alternate-number-format-plugin;
-  hls-cabal-plugin = doJailbreak super.hls-cabal-plugin;
-  hls-call-hierarchy-plugin = doJailbreak super.hls-call-hierarchy-plugin;
-  hls-explicit-fixity-plugin = doJailbreak super.hls-explicit-fixity-plugin;
-  hls-floskell-plugin = doJailbreak super.hls-floskell-plugin;
-  hls-gadt-plugin = doJailbreak super.hls-gadt-plugin;
-
   ###########################################
   ### END HASKELL-LANGUAGE-SERVER SECTION ###
   ###########################################
@@ -177,18 +144,18 @@ self: super: {
   # https://github.com/lspitzner/czipwith/issues/5
   czipwith = doJailbreak super.czipwith;
 
-  # Deal with infinite and NaN values generated by QuickCheck-2.14.3
-  aeson = overrideCabal {
+  aeson =
     # aeson's test suite includes some tests with big numbers that fail on 32bit
     # https://github.com/haskell/aeson/issues/1060
-    doCheck = !pkgs.stdenv.hostPlatform.is32bit;
-  } (appendPatches [
-    (pkgs.fetchpatch {
-      name = "aeson-quickcheck-2.14.3-double-workaround.patch";
-      url = "https://github.com/haskell/aeson/commit/58766a1916b4980792763bab74f0c86e2a7ebf20.patch";
-      sha256 = "1jk2xyi9g6dfjsi6hvpvkpmag3ivimipwy1izpbidf3wvc9cixs3";
-    })
-  ] super.aeson);
+    dontCheckIf pkgs.stdenv.hostPlatform.is32bit
+    # Deal with infinite and NaN values generated by QuickCheck-2.14.3
+    (appendPatches [
+      (pkgs.fetchpatch {
+        name = "aeson-quickcheck-2.14.3-double-workaround.patch";
+        url = "https://github.com/haskell/aeson/commit/58766a1916b4980792763bab74f0c86e2a7ebf20.patch";
+        sha256 = "1jk2xyi9g6dfjsi6hvpvkpmag3ivimipwy1izpbidf3wvc9cixs3";
+      })
+    ] super.aeson);
 
   # 2023-06-28: Test error: https://hydra.nixos.org/build/225565149
   orbits = dontCheck super.orbits;
@@ -208,15 +175,17 @@ self: super: {
     '';
   }) super.double-conversion;
 
+  # Too strict bounds on hspec < 2.11
+  http-api-data = doJailbreak super.http-api-data;
+  tasty-discover = doJailbreak super.tasty-discover;
+
   # Allow aeson == 2.1.*
   # https://github.com/hdgarrood/aeson-better-errors/issues/23
   aeson-better-errors = doJailbreak super.aeson-better-errors;
 
   # 2023-08-09: Jailbreak because of vector < 0.13
   # 2023-11-09: don't check because of https://github.com/tweag/monad-bayes/pull/326
-  monad-bayes = dontCheck (doJailbreak (super.monad-bayes.override {
-    hspec = self.hspec_2_11_7;
-  }));
+  monad-bayes = dontCheck (doJailbreak super.monad-bayes);
 
   # Disable tests failing on odd floating point numbers generated by QuickCheck 2.14.3
   # https://github.com/haskell/statistics/issues/205
@@ -229,12 +198,34 @@ self: super: {
   # There are numerical tests on random data, that may fail occasionally
   lapack = dontCheck super.lapack;
 
+  # currently, cabal-plan seems to get not much maintenance
+  cabal-plan = doJailbreak super.cabal-plan;
+
+  # Too strict bounds on optparse-applicative
+  weeder = lib.warnIf (lib.versionAtLeast super.weeder.version "2.8.0") "jailbreak on weeder may be obsolete" doJailbreak super.weeder;
+
+  # Allow scotty < 0.21
+  # For < 0.22 add https://github.com/taffybar/taffybar/commit/71fe820d892a85e49ad2f2843eac0a59e01f3fd4
+  taffybar = appendPatches [
+    (pkgs.fetchpatch {
+      name = "taffybar-scotty-0.20.patch";
+      url = "https://github.com/taffybar/taffybar/commit/dcc4184fa63295d51b6c6efb2f97f23b13170e66.patch";
+      sha256 = "0hsn0zxpc8icabdq48jlkfn2v07xfjy4l344fnq2pbdc5apcm0fy";
+    })
+  ] super.taffybar;
+
   # fix tests failure for base≥4.15 (https://github.com/kim/leveldb-haskell/pull/41)
   leveldb-haskell = appendPatch (fetchpatch {
     url = "https://github.com/kim/leveldb-haskell/commit/f5249081f589233890ddb1945ec548ca9fb717cf.patch";
     sha256 = "14gllipl28lqry73c5dnclsskzk1bsrrgazibl4lkl8z98j2csjb";
   }) super.leveldb-haskell;
 
+  # 2024-01-08: fix tests failure for fgl >= 5.8.1 https://github.com/koalaman/shellcheck/issues/2677
+  ShellCheck = appendPatch (fetchpatch {
+    url = "https://github.com/koalaman/shellcheck/commit/c05380d518056189412e12128a8906b8ca6f6717.patch";
+    hash = "sha256-FXZQ/D7ut84Yng2/denihDM8e+q04/t2LVALFbohfT0=";
+  }) super.ShellCheck;
+
   # Arion's test suite needs a Nixpkgs, which is cumbersome to do from Nixpkgs
   # itself. For instance, pkgs.path has dirty sources and puts a huge .git in the
   # store. Testing is done upstream.
@@ -269,8 +260,24 @@ self: super: {
   ghcjs-base = null;
   ghcjs-prim = null;
 
-  # 2023-04-17: https://gitlab.haskell.org/ghc/ghc-debug/-/issues/20
-  ghc-debug-brick = doJailbreak super.ghc-debug-brick;
+  # 2024-03-10: Compatibility fixes have been applied upstream, but are unreleased.
+  ghc-debug-brick = appendPatches [
+      (fetchpatch {
+        url = "https://gitlab.haskell.org/ghc/ghc-debug/-/commit/4f195b98a8d3159bd4586af49ea8e269214a848e.patch";
+        sha256 = "sha256-ZMxDkkI365w/qtRc21k9UTcIiTjoOd/BGJgt/6C6P6A=";
+        relative = "ghc-debug-brick";
+        includes = ["ghc-debug-brick.cabal"];
+      })
+      (fetchpatch {
+        url = "https://gitlab.haskell.org/ghc/ghc-debug/-/commit/5b8f848b82ea4c5a1867b9965a973e73e5d58dad.patch";
+        sha256 = "sha256-XydmqScUuXyxqvW1HeKlKiiGFQi/MkM81RMPxmADrhw=";
+        relative = "ghc-debug-brick";
+      })
+    ] super.ghc-debug-brick;
+
+  # Test failure.  Tests also disabled in Stackage:
+  # https://github.com/jtdaugherty/brick/issues/499
+  brick = dontCheck super.brick;
 
   # Needs older QuickCheck version
   attoparsec-varword = dontCheck super.attoparsec-varword;
@@ -304,19 +311,41 @@ self: super: {
     })
   ]) super.memory;
 
-  # Waiting for the commit being fetched as a patch to get a release.
-  espial = appendPatch (fetchpatch {
-    url = "https://github.com/jonschoning/espial/commit/70375db7e245207b3572779288eade3252c4d9e3.patch";
-    sha256 = "sha256-fto8fdFbZkzn7dwCCsGw+j+5HSvEvyvU5VzYDn4F2G8=";
-    excludes = ["*.yaml" "*.lock" "*.json"];
-  }) super.espial;
+  # Depends on outdated deps hedgehog < 1.4, doctest < 0.12 for tests
+  # As well as deepseq < 1.5 (so it forbids GHC 9.8)
+  hw-fingertree = doJailbreak super.hw-fingertree;
 
-  # 2023-06-10: Too strict version bound on https://github.com/haskell/ThreadScope/issues/118
-  threadscope = doJailbreak super.threadscope;
-
-  # Overriding the version pandoc dependency uses as the latest release has version bounds
-  # defined as >= 3.1  && < 3.2, can be removed once pandoc gets bumped by Stackage.
-  patat = super.patat.override { pandoc = self.pandoc_3_1_11; };
+  # 2024-03-10: Maintainance stalled, fixes unmerged: https://github.com/haskell/ThreadScope/pull/130
+  threadscope = overrideCabal (drv: {
+    prePatch = drv.prePatch or "" + ''
+      ${pkgs.buildPackages.dos2unix}/bin/dos2unix *.cabal
+    '';
+    editedCabalFile = null;
+    revision = null;
+  })
+  (appendPatches [
+    (fetchpatch {
+      name = "loosen-bounds-1.patch";
+      url = "https://github.com/haskell/ThreadScope/commit/8f9f21449adb3af07eed539dcaf267c9c9ee987b.patch";
+      sha256 = "sha256-egKM060QplSmUeDptHXoSom1vf5KBrvNcjb2Vk59N7A=";
+    })
+    (fetchpatch {
+      name = "loosen-bounds-2.patch";
+      url = "https://github.com/haskell/ThreadScope/commit/f366a9ee455eda16cd6a4dc26f0275e2cf2b5798.patch";
+      sha256 = "sha256-DaPTK5LRbZZS1KDIr5X/eXQasqtofrCteTbUQUZPu0Q=";
+    })
+    (fetchpatch {
+      name = "loosen-bounds-3.patch";
+      url = "https://github.com/haskell/ThreadScope/commit/12819abaa2322976004b7582e598db1cf952707a.patch";
+      sha256 = "sha256-r7MVw8wwKU4R5VmcypBzhOBfTlRCISoRJtwie3+2Vb0=";
+    })
+    (fetchpatch {
+      name = "import-monad.patch";
+      url = "https://github.com/haskell/ThreadScope/commit/8846508e9769a8dfd82b3ff66259ba4d58255932.patch";
+      sha256 = "sha256-wBqDJWmqvmU1sFuw/ZlxHOb8xPhZO2RBuyYFP9bJCVI=";
+    })
+  ]
+    super.threadscope);
 
   # http2 also overridden in all-packages.nix for mailctl.
   # twain is currently only used by mailctl, so the .overrideScope shouldn't
@@ -329,6 +358,18 @@ self: super: {
   # > https://github.com/roelvandijk/numerals
   numerals = doJailbreak (dontCheck super.numerals);
 
+  # Bound on containers is too strict but jailbreak doesn't work with conditional flags
+  # https://github.com/NixOS/jailbreak-cabal/issues/24
+  containers-unicode-symbols = overrideCabal {
+    postPatch = ''
+      substituteInPlace containers-unicode-symbols.cabal \
+        --replace 'containers >= 0.5 && < 0.6.5' 'containers'
+    '';
+  } super.containers-unicode-symbols;
+
+  # Test file not included on hackage
+  numerals-base = dontCheck (doJailbreak super.numerals-base);
+
   # This test keeps being aborted because it runs too quietly for too long
   Lazy-Pbkdf2 = if pkgs.stdenv.isi686 then dontCheck super.Lazy-Pbkdf2 else super.Lazy-Pbkdf2;
 
@@ -356,16 +397,7 @@ self: super: {
         rm -r $out/doc/?ndroid*
       '';
     };
-
-    # Git annex provides a restricted login shell. Setting
-    # passthru.shellPath here allows a user's login shell to be set to
-    # `git-annex-shell` by making `shell = haskellPackages.git-annex`.
-    # https://git-annex.branchable.com/git-annex-shell/
-    passthru.shellPath = "/bin/git-annex-shell";
-  }) (super.git-annex.overrideScope (self: _: {
-    # https://github.com/haskell-pkg-janitors/unix-compat/issues/3
-    unix-compat = self.unix-compat_0_6;
-  }));
+  }) super.git-annex;
 
   # Too strict bounds on servant
   # Pending a hackage revision: https://github.com/berberman/arch-web/commit/5d08afee5b25e644f9e2e2b95380a5d4f4aa81ea#commitcomment-89230555
@@ -435,9 +467,10 @@ self: super: {
   hzk = dontCheck super.hzk;
   resolv_0_1_2_0 = doJailbreak super.resolv_0_1_2_0;
 
-  # Too strict bounds on base{,-orphans}, template-haskell
-  # https://github.com/sebastiaanvisser/fclabels/issues/44
-  fclabels = doJailbreak super.fclabels;
+  # Test suite doesn't compile with 9.6, 9.8
+  # https://github.com/sebastiaanvisser/fclabels/issues/45
+  # https://github.com/sebastiaanvisser/fclabels/issues/46
+  fclabels = dontCheck super.fclabels;
 
   # Tests require a Kafka broker running locally
   haskakafka = dontCheck super.haskakafka;
@@ -470,6 +503,10 @@ self: super: {
 
   inline-java = addBuildDepend pkgs.jdk super.inline-java;
 
+  # Too strict upper bound on unicode-transforms
+  # <https://gitlab.com/ngua/ipa-hs/-/issues/1>
+  ipa = doJailbreak super.ipa;
+
   # Upstream notified by e-mail.
   permutation = dontCheck super.permutation;
 
@@ -497,14 +534,12 @@ self: super: {
   msgpack-rpc = dontCheck super.msgpack-rpc;
   persistent-zookeeper = dontCheck super.persistent-zookeeper;
   pocket-dns = dontCheck super.pocket-dns;
-  postgresql-simple = dontCheck super.postgresql-simple;
   squeal-postgresql = dontCheck super.squeal-postgresql;
   postgrest-ws = dontCheck super.postgrest-ws;
   snowball = dontCheck super.snowball;
   sophia = dontCheck super.sophia;
   test-sandbox = dontCheck super.test-sandbox;
   texrunner = dontCheck super.texrunner;
-  users-postgresql-simple = dontCheck super.users-postgresql-simple;
   wai-middleware-hmac = dontCheck super.wai-middleware-hmac;
   xkbcommon = dontCheck super.xkbcommon;
   xmlgen = dontCheck super.xmlgen;
@@ -524,17 +559,18 @@ self: super: {
   # 2023-04-20: Restrictive bytestring bound in tests.
   storablevector = doJailbreak super.storablevector;
 
-  # 2023-04-20: Pretends to need brick 1.6 but the commit history here
-  # https://github.com/matterhorn-chat/matterhorn/commits/master/matterhorn.cabal
-  # makes very clear that 1.4 is equally fine.
-  # Generally a slightly packaging hostile bound practice.
   matterhorn = doJailbreak super.matterhorn;
 
+  # Too strict bounds on transformers and resourcet
+  # https://github.com/alphaHeavy/lzma-conduit/issues/23
+  lzma-conduit = doJailbreak super.lzma-conduit;
+
   # 2020-06-05: HACK: does not pass own build suite - `dontCheck`
-  hnix = dontCheck (super.hnix.override {
+  # 2024-01-15: too strict bound on free < 5.2
+  hnix = doJailbreak (dontCheck (super.hnix.override {
     # 2023-12-11: Needs older core due to remote
     hnix-store-core = self.hnix-store-core_0_6_1_0;
-  });
+  }));
 
 
   # Too strict bounds on algebraic-graphs
@@ -554,9 +590,6 @@ self: super: {
   # https://github.com/ekmett/structures/issues/3
   structures = dontCheck super.structures;
 
-  # Requires alex >= 3.4
-  jacinda = super.jacinda.override { alex = self.alex_3_4_0_1; };
-
   # Disable test suites to fix the build.
   acme-year = dontCheck super.acme-year;                # http://hydra.cryp.to/build/497858/log/raw
   aeson-lens = dontCheck super.aeson-lens;              # http://hydra.cryp.to/build/496769/log/raw
@@ -681,7 +714,6 @@ self: super: {
   pipes-websockets = dontCheck super.pipes-websockets;
   posix-pty = dontCheck super.posix-pty; # https://github.com/merijn/posix-pty/issues/12
   postgresql-binary = dontCheck super.postgresql-binary; # needs a running postgresql server
-  postgresql-simple-migration = dontCheck super.postgresql-simple-migration;
   powerdns = dontCheck super.powerdns; # Tests require networking and external services
   process-streaming = dontCheck super.process-streaming;
   punycode = dontCheck super.punycode;
@@ -719,6 +751,10 @@ self: super: {
   xsd = dontCheck super.xsd;
   zip-archive = dontCheck super.zip-archive;  # https://github.com/jgm/zip-archive/issues/57
 
+  # 2023-01-11: Too strict bounds on optparse-applicative
+  # https://github.com/Gabriella439/bench/issues/49
+  bench = doJailbreak super.bench;
+
   # 2023-06-26: Test failure: https://hydra.nixos.org/build/224869905
   comfort-blas = dontCheck super.comfort-blas;
 
@@ -959,6 +995,9 @@ self: super: {
   selda-json
   ;
 
+  # 2024-03-10: Getting the test suite to run requires a correctly crafted GHC_ENVIRONMENT variable.
+  graphql-client = dontCheck super.graphql-client;
+
   # Build the latest git version instead of the official release. This isn't
   # ideal, but Chris doesn't seem to make official releases any more.
   structured-haskell-mode = overrideCabal (drv: {
@@ -1057,10 +1096,17 @@ self: super: {
 
   # Djinn's last release was 2014, incompatible with Semigroup-Monoid Proposal
   # https://github.com/augustss/djinn/pull/8
-  djinn = appendPatch (fetchpatch {
-    url = "https://github.com/augustss/djinn/commit/6cb9433a137fb6b5194afe41d616bd8b62b95630.patch";
-    sha256 = "0s021y5nzrh74gfp8xpxpxm11ivzfs3jwg6mkrlyry3iy584xqil";
-  }) super.djinn;
+  djinn = overrideSrc {
+    version = "unstable-2023-11-20";
+    src = pkgs.fetchFromGitHub {
+      owner = "augustss";
+      repo = "djinn";
+      rev = "69b3fbad9f42f0b1b2c49977976b8588c967d76e";
+      hash = "sha256-ibxn6DXk4pqsOsWhi8KcrlH/THnuMWvIu5ENOn3H3So=";
+    };
+  } super.djinn;
+
+  mueval = doJailbreak super.mueval;
 
   # We cannot build this package w/o the C library from <http://www.phash.org/>.
   phash = markBroken super.phash;
@@ -1280,37 +1326,6 @@ self: super: {
   dhall-nixpkgs = self.generateOptparseApplicativeCompletions [ "dhall-to-nixpkgs" ] (doJailbreak super.dhall-nixpkgs);
   dhall-yaml = self.generateOptparseApplicativeCompletions ["dhall-to-yaml-ng" "yaml-to-dhall"] super.dhall-yaml;
 
-  crypton-connection = super.crypton-connection.override {
-    # requires tls >= 1.7
-    tls = self.tls_1_9_0;
-  };
-
-  stack =
-    lib.pipe
-      super.stack
-      [
-        (self.generateOptparseApplicativeCompletions [ "stack" ])
-
-        # stack-2.13.1 requires a bunch of the latest packages.
-        (drv: drv.overrideScope (hfinal: hprev: {
-          ansi-terminal = hfinal.ansi-terminal_1_0; # needs ansi-terminal >= 1.0
-          crypton = hfinal.crypton_0_34; # needs crypton >= 0.33
-          hedgehog = doJailbreak hprev.hedgehog; # has too strict version bound for ansi-terminal
-          hpack = hfinal.hpack_0_36_0; # needs hpack == 0.36.0
-          http-client-tls = hfinal.http-client-tls_0_3_6_3; # needs http-client-tls >= 0.3.6.2
-          http-download = hfinal.http-download_0_2_1_0; # needs http-download >= 0.2.1.0
-          optparse-applicative = hfinal.optparse-applicative_0_18_1_0; # needs optparse-applicative >= 0.18.1.0
-          pantry = hfinal.pantry_0_9_3_1; # needs pantry >= 0.9.2
-          syb = dontCheck hprev.syb; # cyclic dependencies
-          tar-conduit = hfinal.tar-conduit_0_4_0; # pantry needs tar-conduit >= 0.4.0
-          temporary = dontCheck hprev.temporary; # cyclic dependencies
-        }))
-      ];
-
-  hopenpgp-tools = super.hopenpgp-tools.override {
-    optparse-applicative = self.optparse-applicative_0_18_1_0;
-  };
-
   # musl fixes
   # dontCheck: use of non-standard strptime "%s" which musl doesn't support; only used in test
   unix-time = if pkgs.stdenv.hostPlatform.isMusl then dontCheck super.unix-time else super.unix-time;
@@ -1369,12 +1384,32 @@ self: super: {
   # https://github.com/mgajda/json-autotype/issues/25
   json-autotype = dontCheck super.json-autotype;
 
-  # Requires pg_ctl command during tests
-  beam-postgres = overrideCabal (drv: {
-    # https://github.com/NixOS/nixpkgs/issues/198495
-    doCheck = pkgs.postgresql.doCheck;
-    testToolDepends = (drv.testToolDepends or []) ++ [pkgs.postgresql];
-  }) super.beam-postgres;
+  postgresql-simple-migration = overrideCabal (drv: {
+      preCheck = ''
+        PGUSER=test
+        PGDATABASE=test
+      '';
+      testToolDepends = drv.testToolDepends or [] ++ [
+        pkgs.postgresql
+        pkgs.postgresqlTestHook
+      ];
+    }) (doJailbreak super.postgresql-simple-migration);
+
+  postgresql-simple = addTestToolDepends [
+    pkgs.postgresql
+    pkgs.postgresqlTestHook
+  ] super.postgresql-simple;
+
+  beam-postgres = lib.pipe super.beam-postgres [
+    # Requires pg_ctl command during tests
+    (addTestToolDepends [pkgs.postgresql])
+    (dontCheckIf (!pkgs.postgresql.doCheck))
+  ];
+
+  users-postgresql-simple = addTestToolDepends [
+    pkgs.postgresql
+    pkgs.postgresqlTestHook
+  ] super.users-postgresql-simple;
 
   # PortMidi needs an environment variable to have ALSA find its plugins:
   # https://github.com/NixOS/nixpkgs/issues/6860
@@ -1415,8 +1450,6 @@ self: super: {
           sed -i test/PostgreSQL/Test.hs \
             -e s^host=localhost^^
         '';
-        # https://github.com/NixOS/nixpkgs/issues/198495
-        doCheck = pkgs.postgresql.doCheck;
         # Match the test suite defaults (or hardcoded values?)
         preCheck = drv.preCheck or "" + ''
           PGUSER=esqutest
@@ -1431,7 +1464,8 @@ self: super: {
           pkgs.postgresqlTestHook
         ];
       })
-      super.esqueleto;
+      # https://github.com/NixOS/nixpkgs/issues/198495
+      (dontCheckIf (!pkgs.postgresql.doCheck) super.esqueleto);
 
   # Requires API keys to run tests
   algolia = dontCheck super.algolia;
@@ -1533,14 +1567,11 @@ self: super: {
           sed -i test/PgInit.hs \
             -e s^'host=" <> host <> "'^^
         '';
-        doCheck =
-          # https://github.com/commercialhaskell/stackage/issues/6884
-          # persistent-postgresql-2.13.5.1 needs persistent-test >= 2.13.1.3 which
-          # is incompatible with the stackage version of persistent, so the tests
-          # are disabled temporarily.
-          false
-          # https://github.com/NixOS/nixpkgs/issues/198495
-          && pkgs.postgresql.doCheck;
+        # https://github.com/commercialhaskell/stackage/issues/6884
+        # persistent-postgresql-2.13.5.1 needs persistent-test >= 2.13.1.3 which
+        # is incompatible with the stackage version of persistent, so the tests
+        # are disabled temporarily.
+        doCheck = false;
         preCheck = drv.preCheck or "" + ''
           PGDATABASE=test
           PGUSER=test
@@ -1550,7 +1581,8 @@ self: super: {
           pkgs.postgresqlTestHook
         ];
       })
-      super.persistent-postgresql;
+      # https://github.com/NixOS/nixpkgs/issues/198495
+      (dontCheckIf (!pkgs.postgresql.doCheck) super.persistent-postgresql);
 
   # Test suite requires a later version of persistent-test which depends on persistent 2.14
   # https://github.com/commercialhaskell/stackage/issues/6884
@@ -1563,20 +1595,32 @@ self: super: {
   # upstream: https://github.com/obsidiansystems/which/pull/6
   which = doJailbreak super.which;
 
-  dhall-lsp-server =
-    # 2022-09-20: We have overridden lsp to not be the stackage version.
-    # dhall-lsp-server needs the older 1.4.0.0 lsp
-    let overridden-dhall-lsp-server = super.dhall-lsp-server.override {
-          lsp = dontCheck (super.lsp_1_4_0_0.override {
-            lsp-types = super.lsp-types_1_4_0_1;
-          });
-        };
-    in appendPatch (fetchpatch {
-      # This patch can be removed once the change question is in a tracked release.
-      url = "https://github.com/dhall-lang/dhall-haskell/pull/2539/commits/5dd0f0ba2d836fea3ef499c7aed04e83269c203f.patch";
-      sha256 = "sha256-xjVuLDBptDGfTf7MVmPb0WuuFWRLpgDYX2ybbgjAjzs=";
-      relative = "dhall-lsp-server";
-    }) overridden-dhall-lsp-server;
+
+  # 2024-02-28: The Hackage version dhall-lsp-server-1.1.3 requires
+  # lsp-1.4.0.0 which is hard to build with this LTS. However, the latest
+  # git version of dhall-lsp-server works with lsp-2.1.0.0, and only
+  # needs jailbreaking to build successfully.
+  dhall-lsp-server = lib.pipe
+    (super.dhall-lsp-server.overrideScope (lself: lsuper: {
+      lsp = doJailbreak lself.lsp_2_1_0_0;  # sorted-list <0.2.2
+      lsp-types = lself.lsp-types_2_0_2_0;
+    }))
+    [
+      # Use latest main branch version of dhall-lsp-server.
+      (assert super.dhall-lsp-server.version == "1.1.3"; overrideSrc {
+        version = "unstable-2024-02-19";
+        src = pkgs.fetchFromGitHub {
+          owner = "dhall-lang";
+          repo = "dhall-haskell";
+          rev = "277d8b1b3637ba2ce125783cc1936dc9591e67a7";
+          hash = "sha256-YvL3XEltU9sdU45ULHeD3j1mPGZoO1J81MW7f2+10ok=";
+        } + "/dhall-lsp-server";
+      })
+      # New version needs an extra dependency
+      (addBuildDepend self.text-rope)
+      # bounds too strict: mtl <2.3, transformers <0.6
+      doJailbreak
+    ];
 
   # 2022-03-16: lens bound can be loosened https://github.com/ghcjs/jsaddle-dom/issues/19
   jsaddle-dom = overrideCabal (old: {
@@ -1585,28 +1629,48 @@ self: super: {
     '';
   }) (doJailbreak super.jsaddle-dom);
 
+  reflex-dom = lib.pipe super.reflex-dom [
+      (appendPatch
+        (fetchpatch {
+          name = "bump-reflex-dom-bounds.patch";
+          url = "https://github.com/reflex-frp/reflex-dom/commit/70ff88942f9d2bcd364e301c70df8702f452df38.patch";
+          sha256 = "sha256-xzk1+6CnfhEBfXdL5RUFbLRSn7knMwydmV8v2F2W5gE=";
+          relative = "reflex-dom";
+        })
+      )
+      (overrideCabal (drv: {
+        editedCabalFile = null;
+        revision = null;
+      }))
+    ];
+
   # Tests disabled and broken override needed because of missing lib chrome-test-utils: https://github.com/reflex-frp/reflex-dom/issues/392
   # 2022-03-16: Pullrequest for ghc 9 compat https://github.com/reflex-frp/reflex-dom/pull/433
-  reflex-dom-core = overrideCabal (old: {
-    postPatch = old.postPatch or "" + ''
-      sed -i 's/template-haskell.*2.17/template-haskell/' reflex-dom-core.cabal
-      sed -i 's/semialign.*1.3/semialign/' reflex-dom-core.cabal
-      sed -i 's/these.*0.9/these/' reflex-dom-core.cabal
-    '';
-    })
-    ((appendPatches [
-      (fetchpatch {
-        url = "https://github.com/reflex-frp/reflex-dom/commit/1814640a14c6c30b1b2299e74d08fb6fcaadfb94.patch";
-        sha256 = "sha256-QyX2MLd7Tk0M1s0DU0UV3szXs8ngz775i3+KI62Q3B8=";
-        relative = "reflex-dom-core";
-      })
-      (fetchpatch {
-        url = "https://github.com/reflex-frp/reflex-dom/commit/56fa8a484ccfc7d3365d07fea3caa430155dbcac.patch";
-        sha256 = "sha256-IogAYJZac17Bg99ZnnFX/7I44DAnHo2PRBWD0iVHbNA=";
-        relative = "reflex-dom-core";
-      })
-    ]
-          (doDistribute (unmarkBroken (dontCheck (doJailbreak super.reflex-dom-core))))));
+  reflex-dom-core = lib.pipe super.reflex-dom-core [
+      doDistribute
+      unmarkBroken
+      dontCheck
+      (appendPatches [
+        (fetchpatch {
+          name = "fix-th-build-order.patch";
+          url = "https://github.com/reflex-frp/reflex-dom/commit/1814640a14c6c30b1b2299e74d08fb6fcaadfb94.patch";
+          sha256 = "sha256-QyX2MLd7Tk0M1s0DU0UV3szXs8ngz775i3+KI62Q3B8=";
+          relative = "reflex-dom-core";
+        })
+        (fetchpatch {
+          name = "bump-reflex-dom-core-bounds.patch";
+          url = "https://github.com/reflex-frp/reflex-dom/commit/51cdd96dde9d65fcde326a16a797397bf62102d9.patch";
+          sha256 = "sha256-Ct8gMbXqN+6vqTwFiqnKxddAfs+YFaBocF4G7PPMzFo=";
+          relative = "reflex-dom-core";
+        })
+        (fetchpatch {
+          name = "new-mtl-compat.patch";
+          url = "https://github.com/reflex-frp/reflex-dom/commit/df95bfc0b9baf70492f20daddfe6bb180f80c413.patch";
+          sha256 = "sha256-zkLZtcnfqpfiv6zDEmkZjWHr2b7lOnZ4zujm0/pkxQg=";
+          relative = "reflex-dom-core";
+        })
+      ])
+    ];
 
   # Tests disabled because they assume to run in the whole jsaddle repo and not the hackage tarball of jsaddle-warp.
   jsaddle-warp = dontCheck super.jsaddle-warp;
@@ -1630,18 +1694,22 @@ self: super: {
     libraryToolDepends = (drv.libraryToolDepends or []) ++ [self.buildHaskellPackages.c2hs];
   }) super.libsodium;
 
-  svgcairo = appendPatches [
-    # Remove when https://github.com/gtk2hs/svgcairo/pull/12 goes in.
-    (fetchpatch {
-      url = "https://github.com/gtk2hs/svgcairo/commit/348c60b99c284557a522baaf47db69322a0a8b67.patch";
-      sha256 = "0akhq6klmykvqd5wsbdfnnl309f80ds19zgq06sh1mmggi54dnf3";
-    })
-    # Remove when https://github.com/gtk2hs/svgcairo/pull/13 goes in.
-    (fetchpatch {
-      url = "https://github.com/dalpd/svgcairo/commit/d1e0d7ae04c1edca83d5b782e464524cdda6ae85.patch";
-      sha256 = "1pq9ld9z67zsxj8vqjf82qwckcp69lvvnrjb7wsyb5jc6jaj3q0a";
-    })
-  ] super.svgcairo;
+  svgcairo = overrideCabal (drv: {
+    patches = drv.patches or [ ] ++ [
+      # Remove when https://github.com/gtk2hs/svgcairo/pull/12 goes in.
+      (fetchpatch {
+        url = "https://github.com/gtk2hs/svgcairo/commit/348c60b99c284557a522baaf47db69322a0a8b67.patch";
+        sha256 = "0akhq6klmykvqd5wsbdfnnl309f80ds19zgq06sh1mmggi54dnf3";
+      })
+      # Remove when https://github.com/gtk2hs/svgcairo/pull/13 goes in.
+      (fetchpatch {
+        url = "https://github.com/dalpd/svgcairo/commit/d1e0d7ae04c1edca83d5b782e464524cdda6ae85.patch";
+        sha256 = "1pq9ld9z67zsxj8vqjf82qwckcp69lvvnrjb7wsyb5jc6jaj3q0a";
+      })
+    ];
+    editedCabalFile = null;
+    revision = null;
+  }) super.svgcairo;
 
   # Upstream PR: https://github.com/jkff/splot/pull/9
   splot = appendPatch (fetchpatch {
@@ -1649,11 +1717,12 @@ self: super: {
     sha256 = "1c5ck2ibag2gcyag6rjivmlwdlp5k0dmr8nhk7wlkzq2vh7zgw63";
   }) super.splot;
 
-  # Fix build with newer monad-logger: https://github.com/obsidiansystems/monad-logger-extras/pull/5
+  # 2023-07-27: Fix build with newer monad-logger: https://github.com/obsidiansystems/monad-logger-extras/pull/5
+  # 2024-03-02: jailbreak for ansi-terminal <0.12, mtl <2.3
   monad-logger-extras = appendPatch (fetchpatch {
     url = "https://github.com/obsidiansystems/monad-logger-extras/commit/55d414352e740a5ecacf313732074d9b4cf2a6b3.patch";
     sha256 = "sha256-xsQbr/QIrgWR0uwDPtV0NRTbVvP0tR9bY9NMe1JzqOw=";
-  }) super.monad-logger-extras;
+  }) (doJailbreak super.monad-logger-extras);
 
   # Fails with encoding problems, likely needs locale data.
   # Test can be executed by adding which to testToolDepends and
@@ -1707,21 +1776,24 @@ self: super: {
   hasura-ekg-json = super.hasura-ekg-json.override {
     ekg-core = self.hasura-ekg-core;
   };
-  pg-client = overrideCabal (drv: {
-    librarySystemDepends = with pkgs; [ postgresql krb5.dev openssl.dev ];
-    testToolDepends = drv.testToolDepends or [] ++ [
-      pkgs.postgresql pkgs.postgresqlTestHook
+  pg-client = lib.pipe
+    (super.pg-client.override {
+      resource-pool = self.hasura-resource-pool;
+      ekg-core = self.hasura-ekg-core;
+    }) [
+      (overrideCabal (drv: {
+        librarySystemDepends = with pkgs; [ postgresql krb5.dev openssl.dev ];
+        testToolDepends = drv.testToolDepends or [] ++ [
+          pkgs.postgresql pkgs.postgresqlTestHook
+        ];
+        preCheck = drv.preCheck or "" + ''
+          # empty string means use default connection
+          export DATABASE_URL=""
+        '';
+      }))
+      # https://github.com/NixOS/nixpkgs/issues/198495
+      (dontCheckIf (!pkgs.postgresql.doCheck))
     ];
-    # https://github.com/NixOS/nixpkgs/issues/198495
-    doCheck = pkgs.postgresql.doCheck;
-    preCheck = drv.preCheck or "" + ''
-      # empty string means use default connection
-      export DATABASE_URL=""
-    '';
-  }) (super.pg-client.override {
-    resource-pool = self.hasura-resource-pool;
-    ekg-core = self.hasura-ekg-core;
-  });
 
   hcoord = overrideCabal (drv: {
     # Remove when https://github.com/danfran/hcoord/pull/8 is merged.
@@ -1735,6 +1807,15 @@ self: super: {
     doCheck = false;
   }) super.hcoord;
 
+  # Break infinite recursion via tasty
+  temporary = dontCheck super.temporary;
+
+  # Break infinite recursion via doctest-lib
+  utility-ht = dontCheck super.utility-ht;
+
+  # Break infinite recursion via optparse-applicative (alternatively, dontCheck syb)
+  prettyprinter-ansi-terminal = dontCheck super.prettyprinter-ansi-terminal;
+
   # Tests rely on `Int` being 64-bit: https://github.com/hspec/hspec/issues/431.
   # Also, we need QuickCheck-2.14.x to build the test suite, which isn't easy in LTS-16.x.
   # So let's not go there and just disable the tests altogether.
@@ -1798,9 +1879,25 @@ self: super: {
   # https://github.com/obsidiansystems/dependent-sum/issues/55
   dependent-sum = doJailbreak super.dependent-sum;
 
+  # 2024-02-03: Jailbreak because pretty much every dependency has
+  # tight bounds, and disable building the example executable because
+  # it's not compatible with Reflex 0.9 (the library itself is
+  # compatible however).
+  # https://gitlab.com/Kritzefitz/reflex-gi-gtk/-/merge_requests/16
+  reflex-gi-gtk = assert super.reflex-gi-gtk.version == "0.2.0.0";
+    overrideCabal (drv: {
+      jailbreak = true;
+      buildTarget = drv.pname;  # just the library
+    }) super.reflex-gi-gtk;
+
   # 2022-06-19: Disable checks because of https://github.com/reflex-frp/reflex/issues/475
   reflex = doJailbreak (dontCheck super.reflex);
 
+  # 2024-03-02: hspec <2.11, primitive <0.8 - https://github.com/reflex-frp/reflex-vty/pull/80
+  reflex-vty = assert super.reflex-vty.version == "0.5.2.0"; doJailbreak super.reflex-vty;
+  # 2024-03-02: vty <5.39 - https://github.com/reflex-frp/reflex-ghci/pull/33
+  reflex-ghci = assert super.reflex-ghci.version == "0.2.0.1"; doJailbreak super.reflex-ghci;
+
   # 2020-11-19: jailbreaking because of pretty-simple bound out of date
   # https://github.com/kowainik/stan/issues/408
   # Tests disabled because of: https://github.com/kowainik/stan/issues/409
@@ -1821,23 +1918,6 @@ self: super: {
   # https://github.com/biocad/servant-openapi3/issues/30
   servant-openapi3 = dontCheck super.servant-openapi3;
 
-  # Give latest hspec correct dependency versions without overrideScope
-  hspec_2_11_7 = doDistribute (super.hspec_2_11_7.override {
-    hspec-discover = self.hspec-discover_2_11_7;
-    hspec-core = self.hspec-core_2_11_7;
-  });
-  hspec-meta_2_11_7 = doDistribute (super.hspec-meta_2_11_7.override {
-    hspec-expectations = self.hspec-expectations_0_8_4;
-  });
-  hspec-discover_2_11_7 = doDistribute (super.hspec-discover_2_11_7.override {
-    hspec-meta = self.hspec-meta_2_11_7;
-  });
-  # Need to disable tests to prevent an infinite recursion if hspec-core_2_11_7
-  # is overlayed to hspec-core.
-  hspec-core_2_11_7 = doDistribute (dontCheck (super.hspec-core_2_11_7.override {
-    hspec-expectations = self.hspec-expectations_0_8_4;
-  }));
-
   # Point hspec 2.7.10 to correct dependencies
   hspec_2_7_10 = super.hspec_2_7_10.override {
     hspec-discover = self.hspec-discover_2_7_10;
@@ -1932,8 +2012,16 @@ self: super: {
     "--haddock-option=--optghc=-fno-safe-haskell"
   ] super.alg;
 
+  # Windows.normalise changed in filepath >= 1.4.100.4 which fails the equivalency
+  # test suite. This is of no great consequence for us, though.
+  # Patch solving this has been submitted to upstream by me (@sternenseemann).
+  filepath-bytestring =
+    lib.warnIf
+      (lib.versionAtLeast super.filepath-bytestring.version "1.4.100.4")
+      "filepath-bytestring override may be obsolete"
+      dontCheck super.filepath-bytestring;
+
   # Break out of overspecified constraint on QuickCheck.
-  filepath-bytestring = doJailbreak super.filepath-bytestring;
   haddock-library = doJailbreak super.haddock-library;
 
   # Test suite has overly strict bounds on tasty, jailbreaking fails.
@@ -1948,7 +2036,10 @@ self: super: {
   vivid-supercollider = dontCheck super.vivid-supercollider;
 
   # Test suite does not compile.
-  feed = dontCheck super.feed;
+  feed = overrideCabal (drv: {
+    jailbreak = lib.warnIf (lib.toInt drv.revision >= 4) "haskellPackages.feed: jailbreak can be removed" true;
+    doCheck = false;
+  }) super.feed;
 
   spacecookie = overrideCabal (old: {
     buildTools = (old.buildTools or []) ++ [ pkgs.buildPackages.installShellFiles ];
@@ -1977,50 +2068,6 @@ self: super: {
   # test suite doesn't compile anymore due to changed hunit/tasty APIs
   fullstop = dontCheck super.fullstop;
 
-  # https://github.com/jgm/pandoc/issues/7163
-  pandoc = dontCheck super.pandoc;
-
-  # Since pandoc-3, the actual `pandoc` executable is in the pandoc-cli
-  # package.  It is no longer distributed in the pandoc package itself.  So for
-  # people that want to use the `pandoc` cli tool, they must use pandoc-cli.
-  #
-  # The unfortunate thing is that LTS-21 includes no possible build plan for
-  # pandoc-cli, because pandoc-cli pandoc-lua-engine are not in LTS 21.
-  # To get pandoc-lua-engine building we need either to downgrade a ton
-  # of hslua-module-* packages from stackage or use pandoc 3.1 although
-  # LTS contains pandoc 3.0.
-  inherit (let
-    pandoc-cli-overlay = self: super: {
-      # pandoc-cli requires pandoc >= 3.1
-      pandoc = self.pandoc_3_1_11;
-
-      # pandoc depends on http-client-tls, which only starts depending
-      # on crypton-connection in http-client-tls-0.3.6.2.
-      http-client-tls = self.http-client-tls_0_3_6_3;
-
-      # pandoc depends on skylighting >= 0.14
-      skylighting = self.skylighting_0_14_1;
-      skylighting-core = self.skylighting-core_0_14_1;
-
-      # pandoc needs up to date typst
-      typst-symbols = self.typst-symbols_0_1_5;
-      # and texmath to match
-      texmath = self.texmath_0_12_8_6;
-    };
-  in {
-    pandoc-cli = super.pandoc-cli.overrideScope pandoc-cli-overlay;
-    pandoc_3_1_11 = doDistribute (super.pandoc_3_1_11.overrideScope pandoc-cli-overlay);
-    pandoc-lua-engine = super.pandoc-lua-engine.overrideScope pandoc-cli-overlay;
-  })
-    pandoc-cli
-    pandoc_3_1_11
-    pandoc-lua-engine
-    ;
-
-  # Doesn't work without typst-symbols >= 0.1.5 which conflicts with Stackage
-  # TODO(@sternenseemann): clean up with Stackage LTS 22
-  typst = dontDistribute super.typst;
-
   crypton-x509 =
     lib.pipe
       super.crypton-x509
@@ -2092,19 +2139,6 @@ self: super: {
   # 2022-12-28: Too strict version bounds on bytestring
   iconv = doJailbreak super.iconv;
 
-  # 2021-04-02: iCalendar is basically unmaintained.
-  # There is a PR for fixing the build: https://github.com/chrra/iCalendar/pull/50
-  iCalendar = appendPatches [
-    (fetchpatch {
-      url = "https://github.com/chrra/iCalendar/commit/66b408f10b2d87929ecda715109b26093c711823.patch";
-      sha256 = "sha256-MU5OHUx3L8CaX+xAmoQhAAOMxT7u9Xk1OcOaUHBwK3Y=";
-    })
-    (fetchpatch {
-      url = "https://github.com/chrra/iCalendar/commit/76f5d2e8328cb985f1ee5176e86a5cdd05a17934.patch";
-      sha256 = "sha256-Z5V8VTA5Ml9YIRANQn2aD7dljAbR9dq13N11Y3LZdoE=";
-    })
-   ] super.iCalendar;
-
   ginger = doJailbreak super.ginger;
 
   # Too strict version bounds on cryptonite
@@ -2222,14 +2256,9 @@ self: super: {
     sha256 = "sha256-AVQLvul3ufxGQyoXud05qauclNanf6kunip0oJ/9lWQ=";
   }) (dontCheck super.yi-language);
 
-  # 2022-03-22: Jailbreak for base bound: https://github.com/reflex-frp/reflex-dom/pull/433
-  reflex-dom = assert super.reflex-dom.version == "0.6.1.1"; doJailbreak super.reflex-dom;
-
   # Tests need to lookup target triple x86_64-unknown-linux
   # https://github.com/llvm-hs/llvm-hs/issues/334
-  llvm-hs = overrideCabal {
-    doCheck = pkgs.stdenv.targetPlatform.system == "x86_64-linux";
-  } super.llvm-hs;
+  llvm-hs = dontCheckIf (pkgs.stdenv.targetPlatform.system != "x86_64-linux") super.llvm-hs;
 
   # Fix build with bytestring >= 0.11 (GHC 9.2)
   # https://github.com/llvm-hs/llvm-hs/pull/389
@@ -2272,6 +2301,21 @@ self: super: {
   gi-gtk-declarative = doJailbreak super.gi-gtk-declarative;
   gi-gtk-declarative-app-simple = doJailbreak super.gi-gtk-declarative-app-simple;
 
+  gi-gtk_4 = self.gi-gtk_4_0_8;
+  gi-gtk_4_0_8 = doDistribute (super.gi-gtk_4_0_8.override {
+    gi-gdk = self.gi-gdk_4;
+  });
+  gi-gdk_4 = self.gi-gdk_4_0_7;
+  gi-gdk_4_0_7 = doDistribute super.gi-gdk_4_0_7;
+  # GSK is only used for GTK 4.
+  gi-gsk = super.gi-gsk.override {
+    gi-gdk = self.gi-gdk_4;
+  };
+  gi-adwaita = super.gi-adwaita.override {
+    gi-gdk = self.gi-gdk_4;
+    gi-gtk = self.gi-gtk_4;
+  };
+
   # Missing dependency on gi-cairo
   # https://github.com/haskell-gi/haskell-gi/pull/420
   gi-vte =
@@ -2294,6 +2338,9 @@ self: super: {
     Cabal-syntax = self.Cabal-syntax_3_10_2_0;
   }));
 
+  # Too strict bound on hspec (<2.11)
+  utf8-light = doJailbreak super.utf8-light;
+
   large-hashable = lib.pipe (super.large-hashable.override {
     # https://github.com/factisresearch/large-hashable/commit/5ec9d2c7233fc4445303564047c992b693e1155c
     utf8-light = null;
@@ -2393,8 +2440,6 @@ self: super: {
     language-docker = self.language-docker_11_0_0;
   };
 
-  nix-tree = super.nix-tree;
-
   # test suite requires stack to run, https://github.com/dino-/photoname/issues/24
   photoname = dontCheck super.photoname;
 
@@ -2544,14 +2589,33 @@ self: super: {
   # 2023-07-18: https://github.com/srid/ema/issues/156
   ema = doJailbreak super.ema;
 
+  # 2024-03-02: base <=4.18.0.0  https://github.com/srid/url-slug/pull/2
+  url-slug = doJailbreak super.url-slug;
+
   glirc = doJailbreak (super.glirc.override {
     vty = self.vty_5_35_1;
   });
 
   # Too strict bounds on text and tls
   # https://github.com/barrucadu/irc-conduit/issues/54
-  irc-conduit = doJailbreak super.irc-conduit;
-  irc-client = doJailbreak super.irc-client;
+  # Use crypton-connection instead of connection
+  # https://github.com/barrucadu/irc-conduit/pull/60 https://github.com/barrucadu/irc-client/pull/101
+  irc-conduit = appendPatch (pkgs.fetchpatch {
+    url = "https://github.com/barrucadu/irc-conduit/pull/60/commits/58f6b5ee0c23a0615e43292dbbacf40636dcd7a6.patch";
+    hash = "sha256-d08tb9iL07mBWdlZ7PCfTLVFJLgcxeGVPzJ+jOej8io=";
+  }) (doJailbreak (super.irc-conduit.override {
+    connection = self.crypton-connection;
+    x509-validation = self.crypton-x509-validation;
+  }));
+  irc-client = appendPatch (pkgs.fetchpatch {
+    url = "https://github.com/barrucadu/irc-client/pull/101/commits/0440b7e2ce943d960234c50957a55025771f567a.patch";
+    hash = "sha256-iZyZMrodgViXFCMH9y2wIJZRnjd6WhkqInAdykqTdkY=";
+  }) (doJailbreak (super.irc-client.override {
+    connection = self.crypton-connection;
+    x509 = self.crypton-x509;
+    x509-store = self.crypton-x509-store;
+    x509-validation = self.crypton-x509-validation;
+  }));
 
   # 2022-02-25: Unmaintained and to strict upper bounds
   paths = doJailbreak super.paths;
@@ -2762,9 +2826,35 @@ self: super: {
   # multiple bounds too strict
   snaplet-sqlite-simple = doJailbreak super.snaplet-sqlite-simple;
 
-  emanote = super.emanote.overrideScope (lself: lsuper: {
-    commonmark-extensions = lself.commonmark-extensions_0_2_3_2;
-  });
+  # Test failure https://gitlab.com/lysxia/ap-normalize/-/issues/2
+  ap-normalize = dontCheck super.ap-normalize;
+
+  heist-extra = doJailbreak super.heist-extra;  # base <4.18.0.0.0
+  unionmount = doJailbreak super.unionmount;  # base <4.18
+  path-tree = doJailbreak super.path-tree;  # base <4.18  https://github.com/srid/pathtree/pull/1
+  tailwind = doJailbreak super.tailwind;  # base <=4.17.0.0
+  tagtree = doJailbreak super.tagtree;  # base <=4.17  https://github.com/srid/tagtree/issues/1
+  commonmark-wikilink = doJailbreak super.commonmark-wikilink; # base <4.18.0.0.0
+
+  # 2024-03-02: Apply unreleased changes necessary for compatibility
+  # with commonmark-extensions-0.2.5.3.
+  commonmark-simple = assert super.commonmark-simple.version == "0.1.0.0";
+    appendPatches (map ({ rev, hash }: fetchpatch {
+      name = "commonmark-simple-${lib.substring 0 7 rev}.patch";
+      url = "https://github.com/srid/commonmark-simple/commit/${rev}.patch";
+      includes = [ "src/Commonmark/Simple.hs" ];
+      inherit hash;
+    }) [
+      {
+        rev = "71f5807ed4cbd8da915bf5ba04cd115b49980bcb";
+        hash = "sha256-ibDQbyTd2BoA0V+ldMOr4XYurnqk1nWzbJ15tKizHrM=";
+      }
+      {
+        rev = "fc106c94f781f6a35ef66900880edc08cbe3b034";
+        hash = "sha256-9cpgRNFWhpSuSttAvnwPiLmi1sIoDSYbp0sMwcKWgDQ=";
+      }
+    ])
+      (doJailbreak super.commonmark-simple);
 
   # Test files missing from sdist
   # https://github.com/tweag/webauthn/issues/166
@@ -2777,10 +2867,8 @@ self: super: {
   co-log-polysemy = doJailbreak super.co-log-polysemy;
   co-log-polysemy-formatting = doJailbreak super.co-log-polysemy-formatting;
 
-  # 2023-12-20: Needs newer hasql-pool package and extra dependencies
-  postgrest = lib.pipe (super.postgrest.overrideScope (lself: lsuper: {
-    hasql-pool = lself.hasql-pool_0_10_0_1;
-  })) [
+  postgrest = lib.pipe super.postgrest [
+    # 2023-12-20: New version needs extra dependencies
     (addBuildDepends [ self.extra self.fuzzyset_0_2_4 self.cache self.timeit ])
     # 2022-12-02: Too strict bounds: https://github.com/PostgREST/postgrest/issues/2580
     doJailbreak
@@ -2796,6 +2884,10 @@ self: super: {
     })
   ];
 
+  # Too strict bounds on hspec < 2.11
+  fuzzyset_0_2_4 = doJailbreak super.fuzzyset_0_2_4;
+  swagger2 = doJailbreak super.swagger2;
+
   html-charset = dontCheck super.html-charset;
 
   # true-name-0.1.0.4 has been tagged, but has not been released to Hackage.
@@ -2857,6 +2949,12 @@ self: super: {
   # The hackage source is somehow missing a file present in the repo (tests/ListStat.hs).
   sym = dontCheck super.sym;
 
+  # 2024-01-23: https://github.com/composewell/unicode-data/issues/118
+  unicode-data = dontCheck super.unicode-data;
+
+  # 2024-01-24: https://github.com/haskellari/tree-diff/issues/79
+  tree-diff = dontCheck super.tree-diff;
+
   # Too strict bounds on base, ghc-prim, primitive
   # https://github.com/kowainik/typerep-map/pull/128
   typerep-map = doJailbreak super.typerep-map;
@@ -2864,6 +2962,9 @@ self: super: {
   # Too strict bounds on base
   kewar = doJailbreak super.kewar;
 
+  # Too strict bounds on mtl, servant and servant-client
+  unleash-client-haskell = doJailbreak super.unleash-client-haskell;
+
   # Tests rely on (missing) submodule
   unleash-client-haskell-core = dontCheck super.unleash-client-haskell-core;
 
@@ -2877,25 +2978,69 @@ self: super: {
     libraryToolDepends = (drv.libraryToolDepends or []) ++ [pkgs.buildPackages.git];
   }) super.kmonad;
 
-  # Both of these need specific versions of ghc-lib-parser, the minor releases
-  # seem to be tied.
-  ghc-syntax-highlighter_0_0_10_0 = super.ghc-syntax-highlighter_0_0_10_0.overrideScope(self: super: {
-    ghc-lib-parser = self.ghc-lib-parser_9_6_3_20231121;
-  });
   ghc-syntax-highlighter_0_0_11_0 = super.ghc-syntax-highlighter_0_0_11_0.overrideScope(self: super: {
     ghc-lib-parser = self.ghc-lib-parser_9_8_1_20231121;
   });
 
+  # 2024-03-17: broken
+  vaultenv = dontDistribute super.vaultenv;
+
+  # Support base16 1.0
+  nix-serve-ng = appendPatch (fetchpatch {
+    url = "https://github.com/aristanetworks/nix-serve-ng/commit/4d9eacfcf753acbcfa0f513bec725e9017076270.patch";
+    hash = "sha256-zugyUpEq/iVkxghrvguL95+lJDEpE8MLvZivken0p24=";
+  }) super.nix-serve-ng;
+
   # Needs a matching version of ipython-kernel and a
   # ghc-syntax-highlighter compatible with a newer ghc-lib-parser it
   # transitively pulls in
   ihaskell = super.ihaskell.overrideScope (self: super: {
-    ipython-kernel = self.ipython-kernel_0_11_0_0;
     ghc-syntax-highlighter = self.ghc-syntax-highlighter_0_0_10_0;
   });
 
-  # 2024-01-01: Too strict bounds on megaparsec
-  # Fixed in 0.2.8: https://github.com/PostgREST/configurator-pg/pull/20
-  configurator-pg = doJailbreak super.configurator-pg;
+  # 2024-01-24: support optparse-applicative 0.18
+  niv = appendPatches [
+    (fetchpatch {
+      # needed for the following patch to apply
+      url = "https://github.com/nmattia/niv/commit/7b76374b2b44152bfbf41fcb60162c2ce9182e7a.patch";
+      includes = [ "src/*" ];
+      hash = "sha256-3xG+GD6fUCGgi2EgS7WUpjfn6gvc2JurJcIrnyy4ys8=";
+    })
+    (fetchpatch {
+      # Update to optparse-applicative 0.18
+      url = "https://github.com/nmattia/niv/commit/290965abaa02be33b601032d850c588a6bafb1a5.patch";
+      hash = "sha256-YxUdv4r/Fx+8YxHhqEuS9uZR1XKzVCPrLmj5+AY5GRA=";
+    })
+  ] super.niv;
+
+  inherit
+    (let
+      unbreakRepa = packageName: drv: lib.pipe drv [
+        # 2023-12-23: Apply build fixes for ghc >=9.4
+        (appendPatches (lib.optionals (lib.versionAtLeast self.ghc.version "9.4") (repaPatches.${packageName} or [])))
+        # 2023-12-23: jailbreak for base <4.17, vector <0.13
+        doJailbreak
+      ];
+      # https://github.com/haskell-repa/repa/pull/27
+      repaPatches = lib.mapAttrs (relative: hash: lib.singleton (pkgs.fetchpatch {
+        name = "repa-pr-27.patch";
+        url = "https://github.com/haskell-repa/repa/pull/27/commits/40cb2866bb4da51a8cac5e3792984744a64b016e.patch";
+        inherit relative hash;
+     })) {
+        repa = "sha256-bcSnzvCJmmSBts9UQHA2dYL0Q+wXN9Fbz5LfkrmhCo8=";
+        repa-io = "sha256-KsIN7NPWCyTpVzhR+xaBKGl8vC6rYH94llvlTawSxFk=";
+        repa-examples = "sha256-//2JG1CW1h2sKS2BSJadVAujSE3v1TfS0F8zgcNkPI8=";
+        repa-algorithms = "sha256-z/a7DpT3xJrIsif4cbciYcTSjapAtCoNNVX7PrZtc4I=";
+      };
+    in
+      lib.mapAttrs unbreakRepa super)
+    repa
+    repa-io
+    repa-examples
+    repa-algorithms
+    # The following packages aren't fixed yet, sorry:
+    #   repa-array, repa-convert, repa-eval, repa-flow,
+    #   repa-query, repa-scalar, repa-store, repa-stream
+  ;
 
 } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
index 8b4399af2076..137647da8b51 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
@@ -4,6 +4,7 @@ with haskellLib;
 
 let
   inherit (pkgs.stdenv.hostPlatform) isDarwin;
+  inherit (pkgs) lib;
 in
 
 self: super: {
@@ -58,9 +59,6 @@ self: super: {
   # their existence to callPackages, but their is no shim for lower GHC versions.
   system-cxx-std-lib = null;
 
-  # Additionally depends on OneTuple for GHC < 9.0
-  base-compat-batteries = addBuildDepend self.OneTuple super.base-compat-batteries;
-
   # For GHC < 9.4, some packages need data-array-byte as an extra dependency
   primitive = addBuildDepends [ self.data-array-byte ] super.primitive;
   hashable = addBuildDepends [
@@ -120,13 +118,6 @@ self: super: {
   # Overly-strict bounds introducted by a revision in version 0.3.2.
   text-metrics = doJailbreak super.text-metrics;
 
-  # OneTuple needs hashable (instead of ghc-prim) and foldable1-classes-compat for GHC < 9
-  OneTuple = addBuildDepends [
-    self.foldable1-classes-compat
-  ] (super.OneTuple.override {
-    ghc-prim = self.hashable;
-  });
-
   # Doesn't build with 9.0, see https://github.com/yi-editor/yi/issues/1125
   yi-core = doDistribute (markUnbroken super.yi-core);
 
@@ -170,4 +161,25 @@ self: super: {
 
   # No instance for (Show B.Builder) arising from a use of ‘print’
   http-types = dontCheck super.http-types;
+
+  # Packages which need compat library for GHC < 9.6
+  inherit
+    (lib.mapAttrs
+      (_: addBuildDepends [ self.foldable1-classes-compat ])
+      super)
+    indexed-traversable
+    these
+  ;
+  base-compat-batteries = addBuildDepends [
+    self.foldable1-classes-compat
+    self.OneTuple
+  ] super.base-compat-batteries;
+
+  # OneTuple needs hashable (instead of ghc-prim) and foldable1-classes-compat for GHC < 9
+  OneTuple = addBuildDepends [
+    self.foldable1-classes-compat
+    self.base-orphans
+  ] (super.OneTuple.override {
+    ghc-prim = self.hashable;
+  });
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
index 69eea055315a..5b17975ca8b7 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
@@ -4,6 +4,7 @@ with haskellLib;
 
 let
   inherit (pkgs.stdenv.hostPlatform) isDarwin;
+  inherit (pkgs) lib;
 in
 
 self: super: {
@@ -135,4 +136,21 @@ self: super: {
 
   # No instance for (Show B.Builder) arising from a use of ‘print’
   http-types = dontCheck super.http-types;
+
+  # Packages which need compat library for GHC < 9.6
+  inherit
+    (lib.mapAttrs
+      (_: addBuildDepends [ self.foldable1-classes-compat ])
+      super)
+    indexed-traversable
+    these
+  ;
+  base-compat-batteries = addBuildDepends [
+    self.foldable1-classes-compat
+    self.OneTuple
+  ] super.base-compat-batteries;
+  OneTuple = addBuildDepends [
+    self.foldable1-classes-compat
+    self.base-orphans
+  ] super.OneTuple;
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
index 5ffca6a50bc6..59e8d0f0894e 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
@@ -4,6 +4,7 @@ with haskellLib;
 
 let
   inherit (pkgs.stdenv.hostPlatform) isDarwin;
+  inherit (pkgs) lib;
 in
 
 self: super: {
@@ -74,14 +75,21 @@ self: super: {
 
   stylish-haskell = doJailbreak super.stylish-haskell_0_14_4_0;
 
-  haskell-language-server = disableCabalFlag "fourmolu" (super.haskell-language-server.override {
+  haskell-language-server = lib.pipe (super.haskell-language-server.override {
+    hls-ormolu-plugin = null;
+    hls-stylish-haskell-plugin = null;
     hls-fourmolu-plugin = null;
     # Not buildable if GHC > 9.2.3, so we ship no compatible GHC
     hls-stan-plugin = null;
-  });
+  }) [
+     (disableCabalFlag "fourmolu")
+     (disableCabalFlag "ormolu")
+     (disableCabalFlag "stylishHaskell")
+    ];
   # For GHC < 9.4, some packages need data-array-byte as an extra dependency
   hashable = addBuildDepends [ self.data-array-byte ] super.hashable;
   primitive = addBuildDepends [ self.data-array-byte ] super.primitive;
+  primitive-unlifted = super.primitive-unlifted_0_1_3_1;
 
   # Jailbreaks & Version Updates
   hashable-time = doJailbreak super.hashable-time;
@@ -127,4 +135,18 @@ self: super: {
 
   # Requires GHC < 9.4
   ghc-source-gen = doDistribute (unmarkBroken super.ghc-source-gen);
+
+  # Packages which need compat library for GHC < 9.6
+  inherit
+    (lib.mapAttrs
+      (_: addBuildDepends [ self.foldable1-classes-compat ])
+      super)
+    indexed-traversable
+    OneTuple
+    these
+  ;
+  base-compat-batteries = addBuildDepends [
+    self.foldable1-classes-compat
+    self.OneTuple
+  ] super.base-compat-batteries;
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix
index f4daa4648d83..653187007b31 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.4.x.nix
@@ -59,10 +59,12 @@ in {
 
   hashable-time = doJailbreak super.hashable-time;
   libmpd = doJailbreak super.libmpd;
-  lens-family-th = doJailbreak super.lens-family-th;  # template-haskell <2.19
 
   # generically needs base-orphans for 9.4 only
   base-orphans = dontCheck (doDistribute super.base-orphans);
+  generically = addBuildDepends [
+    self.base-orphans
+  ] super.generically;
 
   # the dontHaddock is due to a GHC panic. might be this bug, not sure.
   # https://gitlab.haskell.org/ghc/ghc/-/issues/21619
@@ -90,45 +92,52 @@ in {
 
   ghc-tags = self.ghc-tags_1_6;
 
+  # A given major version of ghc-exactprint only supports one version of GHC.
+  ghc-exactprint = super.ghc-exactprint_1_6_1_3;
+
   # Too strict upper bound on template-haskell
   # https://github.com/mokus0/th-extras/issues/18
   th-extras = doJailbreak super.th-extras;
 
-  # requires newer versions to work with GHC 9.4
-  servant = doJailbreak super.servant;
-  servant-server = doJailbreak super.servant-server;
-  servant-auth = doJailbreak super.servant-auth;
-  servant-auth-swagger = doJailbreak super.servant-auth-swagger;
-  servant-swagger = doJailbreak super.servant-swagger;
-  servant-client-core = doJailbreak super.servant-client-core;
-  servant-client = doJailbreak super.servant-client;
   # https://github.com/kowainik/relude/issues/436
   relude = dontCheck super.relude;
 
+  # Broken because of unix >= 2.8 for GHC >= 9.6
+  darcs = unmarkBroken (doDistribute super.darcs);
+
   inherit
     (
       let
         hls_overlay = lself: lsuper: {
-          ghc-lib-parser = lself.ghc-lib-parser_9_6_3_20231121;
-          ghc-lib-parser-ex = doDistribute lself.ghc-lib-parser-ex_9_6_0_2;
           Cabal-syntax = lself.Cabal-syntax_3_10_2_0;
         };
       in
       lib.mapAttrs (_: pkg: doDistribute (pkg.overrideScope hls_overlay)) {
         haskell-language-server = allowInconsistentDependencies super.haskell-language-server;
-        fourmolu = self.fourmolu_0_14_0_0;
-        ormolu = self.generateOptparseApplicativeCompletions [ "ormolu" ] (enableSeparateBinOutput super.ormolu_0_7_2_0);
-        hlint = super.hlint_3_6_1;
+        fourmolu = super.fourmolu;
+        ormolu = super.ormolu;
+        hlint = super.hlint;
         stylish-haskell = super.stylish-haskell;
       }
     )
     haskell-language-server
-    # HLS from 2.3 needs at least formolu 0.14.
-    # This means we need to bump a lot of other tools, too, because they all us ghc-lib-parser
-    # We do this globally to prevent inconsistent formatting or lints between hls and the command line tools.
     fourmolu
     ormolu
     hlint
     stylish-haskell
   ;
+
+  # Packages which need compat library for GHC < 9.6
+  inherit
+    (lib.mapAttrs
+      (_: addBuildDepends [ self.foldable1-classes-compat ])
+      super)
+    indexed-traversable
+    OneTuple
+    these
+  ;
+  base-compat-batteries = addBuildDepends [
+    self.foldable1-classes-compat
+    self.OneTuple
+  ] super.base-compat-batteries;
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
index 3dcf3cf81949..e46a36dea4bc 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
@@ -65,49 +65,18 @@ self: super: {
   # Version deviations from Stackage LTS
   #
 
-  doctest = doDistribute super.doctest_0_22_2;
-  http-api-data = doDistribute self.http-api-data_0_6; # allows base >= 4.18
-  some = doDistribute self.some_1_0_6;
-  th-abstraction = doDistribute self.th-abstraction_0_6_0_0;
-  th-desugar = doDistribute self.th-desugar_1_16;
-  semigroupoids = doDistribute self.semigroupoids_6_0_0_1;
-  bifunctors = doDistribute self.bifunctors_5_6_1;
-  base-compat = doDistribute self.base-compat_0_13_1;
-  base-compat-batteries = doDistribute self.base-compat-batteries_0_13_1;
-  fgl = doDistribute self.fgl_5_8_2_0;
-
-  # Because we bumped the version of th-abstraction above.^
-  aeson = doJailbreak super.aeson;
-  free = doJailbreak super.free;
-
-  # Because we bumped the version of base-compat above.^
-  cabal-plan = unmarkBroken super.cabal-plan;
-  cabal-plan-bounds = unmarkBroken super.cabal-plan-bounds;
-
-  # Requires filepath >= 1.4.100.0 <=> GHC >= 9.6
-  file-io = unmarkBroken super.file-io;
-
   # Too strict upper bound on template-haskell
   # https://github.com/mokus0/th-extras/pull/21
   th-extras = doJailbreak super.th-extras;
 
-  ghc-lib = doDistribute self.ghc-lib_9_6_3_20231121;
-  ghc-lib-parser = doDistribute self.ghc-lib-parser_9_6_3_20231121;
-  ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_6_0_2;
-
-  fourmolu = doDistribute self.fourmolu_0_14_0_0;
-  ormolu = self.generateOptparseApplicativeCompletions [ "ormolu" ] (enableSeparateBinOutput super.ormolu_0_7_2_0);
-  hlint = super.hlint_3_6_1;
-
-  # v0.1.6 forbids base >= 4.18
-  singleton-bool = doDistribute super.singleton-bool_0_1_7;
-
   #
   # Too strict bounds without upstream fix
   #
 
   # Forbids transformers >= 0.6
   quickcheck-classes-base = doJailbreak super.quickcheck-classes-base;
+  # https://github.com/Gabriella439/Haskell-Break-Library/pull/3
+  break = doJailbreak super.break;
   # Forbids mtl >= 2.3
   ChasingBottoms = doJailbreak super.ChasingBottoms;
   # Forbids base >= 4.18
@@ -136,93 +105,23 @@ self: super: {
       })
     ] (super.hourglass);
 
-
-  # Test suite doesn't compile with base-4.18 / GHC 9.6
-  # https://github.com/dreixel/syb/issues/40
-  syb = dontCheck super.syb;
-
-  # Patch 0.17.1 for support of mtl-2.3
-  xmonad-contrib = appendPatch
-    (pkgs.fetchpatch {
-      name = "xmonad-contrib-mtl-2.3.patch";
-      url = "https://github.com/xmonad/xmonad-contrib/commit/8cb789af39e93edb07f1eee39c87908e0d7c5ee5.patch";
-      sha256 = "sha256-ehCvVy0N2Udii/0K79dsRSBP7/i84yMoeyupvO8WQz4=";
-    })
-    (doJailbreak super.xmonad-contrib);
-
-  # Patch 0.12.0.1 for support of unix-2.8.0.0
-  arbtt = appendPatch
-    (pkgs.fetchpatch {
-      name = "arbtt-unix-2.8.0.0.patch";
-      url = "https://github.com/nomeata/arbtt/pull/168/commits/ddaac94395ac50e3d3cd34c133dda4a8e5a3fd6c.patch";
-      sha256 = "sha256-5Gmz23f4M+NfgduA5O+9RaPmnneAB/lAlge8MrFpJYs=";
-    })
-    super.arbtt;
-
-  # 2023-04-03: plugins disabled for hls 1.10.0.0 based on
-  #
-  haskell-language-server = super.haskell-language-server.override {
-      hls-floskell-plugin = null;
-    };
-
-  # Newer version of servant required for GHC 9.6
-  servant = self.servant_0_20_1;
-  servant-server = self.servant-server_0_20;
-  servant-client = self.servant-client_0_20;
-  servant-client-core = self.servant-client-core_0_20;
-  # Select versions compatible with servant_0_20_1
-  servant-docs = self.servant-docs_0_13;
-  servant-swagger = self.servant-swagger_1_2;
   # Jailbreaks for servant <0.20
   servant-lucid = doJailbreak super.servant-lucid;
 
-  # Jailbreak strict upper bounds: http-api-data <0.6
-  servant_0_20_1 = doJailbreak super.servant_0_20_1;
-  servant-server_0_20 = doJailbreak super.servant-server_0_20;
-  servant-client_0_20 = doJailbreak super.servant-client_0_20;
-  servant-client-core_0_20 = doJailbreak super.servant-client-core_0_20;
-  # Jailbreak strict upper bounds: doctest <0.22
-  servant-swagger_1_2 = doJailbreak super.servant-swagger_1_2;
-
   lifted-base = dontCheck super.lifted-base;
-  hw-fingertree = dontCheck super.hw-fingertree;
   hw-prim = dontCheck (doJailbreak super.hw-prim);
   stm-containers = dontCheck super.stm-containers;
   regex-tdfa = dontCheck super.regex-tdfa;
-  rebase = doJailbreak super.rebase_1_20_2;
-  rerebase = doJailbreak super.rerebase_1_20_2;
   hiedb = dontCheck super.hiedb;
   retrie = dontCheck super.retrie;
   # https://github.com/kowainik/relude/issues/436
   relude = dontCheck (doJailbreak super.relude);
 
-  ghc-exactprint = unmarkBroken (addBuildDepends (with self.ghc-exactprint.scope; [
-   HUnit Diff data-default extra fail free ghc-paths ordered-containers silently syb
-  ]) super.ghc-exactprint_1_7_0_1);
-
   inherit (pkgs.lib.mapAttrs (_: doJailbreak ) super)
     hls-cabal-plugin
-    algebraic-graphs
-    co-log-core
-    lens
-    cryptohash-sha1
-    cryptohash-md5
     ghc-trace-events
-    tasty-hspec
-    constraints-extras
-    tree-diff
-    implicit-hie-cradle
-    focus
-    hie-compat
-    dbus       # template-haskell >=2.18 && <2.20, transformers <0.6, unix <2.8
     gi-cairo-connector          # mtl <2.3
-    haskintex                   # text <2
-    lens-family-th              # template-haskell <2.19
     ghc-prof                    # base <4.18
-    profiteur                   # vector <0.13
-    mfsolve                     # mtl <2.3
-    cubicbezier                 # mtl <2.3
-    dhall                       # template-haskell <2.20
     env-guard                   # doctest <0.21
     package-version             # doctest <0.21, tasty-hedgehog <1.4
   ;
@@ -233,9 +132,35 @@ self: super: {
   # Pending text-2.0 support https://github.com/gtk2hs/gtk2hs/issues/327
   gtk = doJailbreak super.gtk;
 
+  # 2023-12-23: It needs this to build under ghc-9.6.3.
+  #   A factor of 100 is insufficent, 200 seems seems to work.
+  hip = appendConfigureFlag "--ghc-options=-fsimpl-tick-factor=200" super.hip;
+
   # Doctest comments have bogus imports.
   bsb-http-chunked = dontCheck super.bsb-http-chunked;
 
+  # This can be removed once https://github.com/typeclasses/ascii-predicates/pull/1
+  # is merged and in a release that's being tracked.
+  ascii-predicates = appendPatch
+    (pkgs.fetchpatch
+      { url = "https://github.com/typeclasses/ascii-predicates/commit/2e6d9ed45987a8566f3a77eedf7836055c076d1a.patch";
+        name = "ascii-predicates-pull-1.patch";
+        relative = "ascii-predicates";
+        sha256 = "sha256-4JguQFZNRQpjZThLrAo13jNeypvLfqFp6o7c1bnkmZo=";
+      })
+    super.ascii-predicates;
+
+  # This can be removed once https://github.com/typeclasses/ascii-numbers/pull/1
+  # is merged and in a release that's being tracked.
+  ascii-numbers = appendPatch
+    (pkgs.fetchpatch
+      { url = "https://github.com/typeclasses/ascii-numbers/commit/e9474ad91bc997891f1a46afd5d0bdf9b9f7d768.patch";
+        name = "ascii-numbers-pull-1.patch";
+        relative = "ascii-numbers";
+        sha256 = "sha256-buw1UeW57CFefEfqdDUraSyQ+H/NvCZOv6WF2ORiYQg=";
+      })
+    super.ascii-numbers;
+
   # Fix ghc-9.6.x build errors.
   libmpd = appendPatch
     # https://github.com/vimus/libmpd-haskell/pull/138
@@ -263,5 +188,8 @@ self: super: {
   # the workaround on 9.6 is to revert to the LLVM backend (which is used
   # for these sorts of situations even on 9.2 and 9.4).
   # https://gitlab.haskell.org/ghc/ghc/-/issues/23746#note_525318
-  tls = if pkgs.stdenv.hostPlatform.isAarch64 then self.forceLlvmCodegenBackend super.tls else super.tls;
+  inherit (lib.mapAttrs (_: self.forceLlvmCodegenBackend) super)
+    tls
+    mmark
+    ;
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix
index d6672c22a203..5613f36b0c95 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-9.8.x.nix
@@ -49,11 +49,12 @@ self: super: {
   unix = null;
   xhtml = null;
 
+  #
   # HLS
   # https://haskell-language-server.readthedocs.io/en/latest/support/plugin-support.html
+  #
   haskell-language-server = super.haskell-language-server.override {
     hls-class-plugin = null;
-    hls-floskell-plugin = null;
     hls-fourmolu-plugin = null;
     hls-gadt-plugin = null;
     hls-hlint-plugin = null;
@@ -65,55 +66,66 @@ self: super: {
     hls-stylish-haskell-plugin = null;
   };
 
+  #
   # Version upgrades
-  alex = doDistribute self.alex_3_4_0_1;
-  some = doDistribute self.some_1_0_6;
-  tagged = doDistribute self.tagged_0_8_8;
+  #
   th-abstraction = doDistribute self.th-abstraction_0_6_0_0;
-  hspec-core = doDistribute self.hspec-core_2_11_7;
-  hspec-meta = doDistribute self.hspec-meta_2_11_7;
-  hspec-discover = doDistribute self.hspec-discover_2_11_7;
-  hspec = doDistribute self.hspec_2_11_7;
-  hspec-expectations = doDistribute self.hspec-expectations_0_8_4;
-  bifunctors = doDistribute self.bifunctors_5_6_1;
-  free = doDistribute self.free_5_2;
-  semigroupoids = doDistribute self.semigroupoids_6_0_0_1;
-  doctest = doDistribute self.doctest_0_22_2;
   ghc-lib-parser = doDistribute self.ghc-lib-parser_9_8_1_20231121;
   ghc-lib-parser-ex = doDistribute self.ghc-lib-parser-ex_9_8_0_0;
   ghc-lib = doDistribute self.ghc-lib_9_8_1_20231121;
   megaparsec = doDistribute self.megaparsec_9_6_1;
-  tasty-hspec = doDistribute self.tasty-hspec_1_2_0_4;
-  hedgehog = doDistribute self.hedgehog_1_4;
-  rebase = doDistribute self.rebase_1_20_2;
-  rerebase = doDistribute self.rerebase_1_20_2;
   aeson = doDistribute self.aeson_2_2_1_0;
-  aeson-pretty = doDistribute self.aeson-pretty_0_8_10;
   attoparsec-aeson = doDistribute self.attoparsec-aeson_2_2_0_1;
   ormolu = doDistribute self.ormolu_0_7_3_0;
   fourmolu = doDistribute (dontCheck self.fourmolu_0_14_1_0);
+  xmonad = doDistribute self.xmonad_0_18_0;
+  hlint = doDistribute self.hlint_3_8;
 
+  #
   # Jailbreaks
+  #
+  blaze-svg = doJailbreak super.blaze-svg; # base <4.19
   commutative-semigroups = doJailbreak super.commutative-semigroups; # base < 4.19
+  diagrams-lib = doJailbreak super.diagrams-lib; # base <4.19, text <2.1
+  diagrams-postscript = doJailbreak super.diagrams-postscript;  # base <4.19, bytestring <0.12
+  diagrams-svg = doJailbreak super.diagrams-svg;  # base <4.19, text <2.1
   ghc-trace-events = doJailbreak super.ghc-trace-events; # text < 2.1, bytestring < 0.12, base < 4.19
   primitive-unlifted = doJailbreak super.primitive-unlifted; # bytestring < 0.12
+  statestack = doJailbreak super.statestack; # base < 4.19
   newtype-generics = doJailbreak super.newtype-generics; # base < 4.19
   hw-prim = doJailbreak super.hw-prim; # doctest < 0.22, ghc-prim < 0.11, hedgehog < 1.4
-  hw-fingertree = doJailbreak super.hw-fingertree; # deepseq <1.5, doctest < 0.22, hedgehog < 1.4
+  svg-builder = doJailbreak super.svg-builder; # base <4.19, bytestring <0.12, text <2.1
   # Too strict bound on base, believe it or not.
   # https://github.com/judah/terminfo/pull/55#issuecomment-1876894232
   terminfo_0_4_1_6 = doJailbreak super.terminfo_0_4_1_6;
 
+  #
   # Test suite issues
+  #
   unordered-containers = dontCheck super.unordered-containers; # ChasingBottoms doesn't support base 4.20
   lifted-base = dontCheck super.lifted-base; # doesn't compile with transformers == 0.6.*
-  # https://github.com/wz1000/HieDb/issues/64
-  hiedb = overrideCabal (drv: {
-    testFlags = drv.testFlags or [ ] ++ [
-      "--match" "!/hiedb/Command line/point-info/correctly prints type signatures/"
-    ];
-  }) super.hiedb;
+  hourglass = dontCheck super.hourglass; # umaintained, test suite doesn't compile anymore
+  bsb-http-chunked = dontCheck super.bsb-http-chunked; # umaintained, test suite doesn't compile anymore
+
+  #
+  # Other build fixes
+  #
+
+  # 2023-12-23: It needs this to build under ghc-9.6.3.
+  #   A factor of 100 is insufficent, 200 seems seems to work.
+  hip = appendConfigureFlag "--ghc-options=-fsimpl-tick-factor=200" super.hip;
+
+  # Fix build with text-2.x.
+  libmpd = appendPatch (pkgs.fetchpatch
+      { url = "https://github.com/vimus/libmpd-haskell/pull/138.patch";
+        sha256 = "Q4fA2J/Tq+WernBo+UIMdj604ILOMlIYkG4Pr046DfM=";
+      })
+    super.libmpd;
+
+  # Symbol syntax seems to have changed in 9.8, removing a seemingly redundant colon; appears to be an overspecified assertion.
+  # https://github.com/wz1000/HieDb/issues/74
+  hiedb =
+    assert super.hiedb.version == "0.5.0.1";
+    dontCheck super.hiedb;
 
-  # Unbroken due to hspec* upgrades
-  hspec-api = doDistribute (unmarkBroken super.hspec-api);
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
index 243c21b0d3b7..3d63f4c2ae13 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
@@ -44,6 +44,7 @@ broken-packages:
   - acme-schoenfinkel # failure in job https://hydra.nixos.org/build/233231988 at 2023-09-02
   - acme-strfry # failure in job https://hydra.nixos.org/build/233242092 at 2023-09-02
   - acme-stringly-typed # failure in job https://hydra.nixos.org/build/233192651 at 2023-09-02
+  - acme-strtok # failure in job https://hydra.nixos.org/build/252719190 at 2024-03-16
   - acme-this # failure in job https://hydra.nixos.org/build/233230930 at 2023-09-02
   - acme-zalgo # failure in job https://hydra.nixos.org/build/233216155 at 2023-09-02
   - acme-zero # failure in job https://hydra.nixos.org/build/233192937 at 2023-09-02
@@ -63,12 +64,14 @@ broken-packages:
   - adaptive-tuple # failure in job https://hydra.nixos.org/build/233244881 at 2023-09-02
   - adb # failure in job https://hydra.nixos.org/build/233193888 at 2023-09-02
   - addy # failure in job https://hydra.nixos.org/build/233240594 at 2023-09-02
+  - adhoc-fixtures-hspec # failure in job https://hydra.nixos.org/build/252725981 at 2024-03-16
   - adjunction # failure in job https://hydra.nixos.org/build/233237774 at 2023-09-02
   - adobe-swatch-exchange # failure in job https://hydra.nixos.org/build/233255779 at 2023-09-02
   - adp-multi # failure in job https://hydra.nixos.org/build/233256331 at 2023-09-02
   - adtrees # failure in job https://hydra.nixos.org/build/233192320 at 2023-09-02
   - AERN-Basics # failure in job https://hydra.nixos.org/build/233246999 at 2023-09-02
   - aeson-applicative # failure in job https://hydra.nixos.org/build/233213824 at 2023-09-02
+  - aeson-better-errors # failure in job https://hydra.nixos.org/build/252717339 at 2024-03-16
   - aeson-bson # failure in job https://hydra.nixos.org/build/233201964 at 2023-09-02
   - aeson-commit # failure in job https://hydra.nixos.org/build/233198515 at 2023-09-02
   - aeson-compat # failure in job https://hydra.nixos.org/build/233208257 at 2023-09-02
@@ -89,6 +92,7 @@ broken-packages:
   - aeson-modern-tojson # failure in job https://hydra.nixos.org/build/233202149 at 2023-09-02
   - aeson-options # failure in job https://hydra.nixos.org/build/233245051 at 2023-09-02
   - aeson-parsec-picky # failure in job https://hydra.nixos.org/build/233222117 at 2023-09-02
+  - aeson-possible # failure in job https://hydra.nixos.org/build/252718013 at 2024-03-16
   - aeson-prefix # failure in job https://hydra.nixos.org/build/233215656 at 2023-09-02
   - aeson-schema # failure in job https://hydra.nixos.org/build/233229960 at 2023-09-02
   - aeson-single-field # failure in job https://hydra.nixos.org/build/233247758 at 2023-09-02
@@ -122,6 +126,7 @@ broken-packages:
   - alerta # failure in job https://hydra.nixos.org/build/233203379 at 2023-09-02
   - alerts # failure in job https://hydra.nixos.org/build/233251101 at 2023-09-02
   - alex-prelude # failure in job https://hydra.nixos.org/build/233238387 at 2023-09-02
+  - al # failure in job https://hydra.nixos.org/build/252733710 at 2024-03-16
   - alfred # failure in job https://hydra.nixos.org/build/233227316 at 2023-09-02
   - alfred-margaret # failure in job https://hydra.nixos.org/build/233223038 at 2023-09-02
   - alga # failure in job https://hydra.nixos.org/build/233252723 at 2023-09-02
@@ -132,8 +137,11 @@ broken-packages:
   - algo-s # failure in job https://hydra.nixos.org/build/233221988 at 2023-09-02
   - align-affine # failure in job https://hydra.nixos.org/build/233230079 at 2023-09-02
   - align-text # failure in job https://hydra.nixos.org/build/233215779 at 2023-09-02
+  - allen # failure in job https://hydra.nixos.org/build/252715705 at 2024-03-16
+  - alloy # failure in job https://hydra.nixos.org/build/252726555 at 2024-03-16
   - ally-invest # failure in job https://hydra.nixos.org/build/233236224 at 2023-09-02
   - alpaca-netcode # failure in job https://hydra.nixos.org/build/233239392 at 2023-09-02
+  - alphachar # failure in job https://hydra.nixos.org/build/252722667 at 2024-03-16
   - alpino-tools # failure in job https://hydra.nixos.org/build/233236168 at 2023-09-02
   - alsa # failure in job https://hydra.nixos.org/build/233250059 at 2023-09-02
   - alsa-midi # failure in job https://hydra.nixos.org/build/233245836 at 2023-09-02
@@ -183,9 +191,11 @@ broken-packages:
   - aosd # failure in job https://hydra.nixos.org/build/233207331 at 2023-09-02
   - apache-md5 # failure in job https://hydra.nixos.org/build/233193946 at 2023-09-02
   - apart # failure in job https://hydra.nixos.org/build/233219668 at 2023-09-02
-  - apecs-physics # failure in job https://hydra.nixos.org/build/233212565 at 2023-09-02
+  - apecs-effectful # failure in job https://hydra.nixos.org/build/252733877 at 2024-03-16
   - api-builder # failure in job https://hydra.nixos.org/build/233205755 at 2023-09-02
+  - api-maker # failure in job https://hydra.nixos.org/build/252711269 at 2024-03-16
   - api-rpc-factom # failure in job https://hydra.nixos.org/build/233198474 at 2023-09-02
+  - api-tools # failure in job https://hydra.nixos.org/build/252720262 at 2024-03-16
   - apns-http2 # failure in job https://hydra.nixos.org/build/233248620 at 2023-09-02
   - appc # failure in job https://hydra.nixos.org/build/233200853 at 2023-09-02
   - appendful-persistent # failure in job https://hydra.nixos.org/build/233249677 at 2023-09-02
@@ -199,6 +209,7 @@ broken-packages:
   - approveapi # failure in job https://hydra.nixos.org/build/233197597 at 2023-09-02
   - approx # failure in job https://hydra.nixos.org/build/233236548 at 2023-09-02
   - ApproxFun-hs # failure in job https://hydra.nixos.org/build/233247678 at 2023-09-02
+  - app-settings # failure in job https://hydra.nixos.org/build/252726841 at 2024-03-16
   - arbb-vm # failure in job https://hydra.nixos.org/build/233252062 at 2023-09-02
   - arb-fft # failure in job https://hydra.nixos.org/build/233201190 at 2023-09-02
   - arbor-lru-cache # failure in job https://hydra.nixos.org/build/233204554 at 2023-09-02
@@ -208,6 +219,7 @@ broken-packages:
   - arbor-postgres # failure in job https://hydra.nixos.org/build/233232935 at 2023-09-02
   - arch-hs # failure in job https://hydra.nixos.org/build/233225768 at 2023-09-02
   - archiver # failure in job https://hydra.nixos.org/build/233245795 at 2023-09-02
+  - archive-tar # failure in job https://hydra.nixos.org/build/252737256 at 2024-03-16
   - archlinux # failure in job https://hydra.nixos.org/build/233202430 at 2023-09-02
   - archnews # failure in job https://hydra.nixos.org/build/233192480 at 2023-09-02
   - arena # failure in job https://hydra.nixos.org/build/233252500 at 2023-09-02
@@ -249,7 +261,9 @@ broken-packages:
   - asset-map # failure in job https://hydra.nixos.org/build/233218566 at 2023-09-02
   - assoc-list # failure in job https://hydra.nixos.org/build/233224148 at 2023-09-02
   - assoc-listlike # failure in job https://hydra.nixos.org/build/233200483 at 2023-09-02
+  - assumpta-core # failure in job https://hydra.nixos.org/build/252727584 at 2024-03-16
   - assumpta # failure in job https://hydra.nixos.org/build/233245580 at 2023-09-02
+  - astar-monad # failure in job https://hydra.nixos.org/build/252720647 at 2024-03-16
   - ast-monad # failure in job https://hydra.nixos.org/build/233192822 at 2023-09-02
   - astrds # failure in job https://hydra.nixos.org/build/233220701 at 2023-09-02
   - astro # failure in job https://hydra.nixos.org/build/233243443 at 2023-09-02
@@ -271,6 +285,7 @@ broken-packages:
   - ats-setup # failure in job https://hydra.nixos.org/build/233240435 at 2023-09-02
   - ats-storable # failure in job https://hydra.nixos.org/build/233242765 at 2023-09-02
   - attempt # failure in job https://hydra.nixos.org/build/233233073 at 2023-09-02
+  - attenuation # failure in job https://hydra.nixos.org/build/252721241 at 2024-03-16
   - attic-schedule # failure in job https://hydra.nixos.org/build/233249781 at 2023-09-02
   - AttoBencode # failure in job https://hydra.nixos.org/build/233198079 at 2023-09-02
   - atto-lisp # failure in job https://hydra.nixos.org/build/233222679 at 2023-09-02
@@ -292,14 +307,17 @@ broken-packages:
   - autom # failure in job https://hydra.nixos.org/build/234461198 at 2023-09-13
   - autonix-deps # failure in job https://hydra.nixos.org/build/233258269 at 2023-09-02
   - autopack # failure in job https://hydra.nixos.org/build/233215025 at 2023-09-02
+  - autoproc # failure in job https://hydra.nixos.org/build/252730569 at 2024-03-16
   - avatar-generator # failure in job https://hydra.nixos.org/build/233214253 at 2023-09-02
   - aviation-units # failure in job https://hydra.nixos.org/build/233245762 at 2023-09-02
   - avl-static # failure in job https://hydra.nixos.org/build/233199062 at 2023-09-02
+  - avro # failure in job https://hydra.nixos.org/build/252731168 at 2024-03-16
   - avro-piper # failure in job https://hydra.nixos.org/build/233197510 at 2023-09-02
   - avr-shake # failure in job https://hydra.nixos.org/build/233223187 at 2023-09-02
   - avwx # failure in job https://hydra.nixos.org/build/233258167 at 2023-09-02
   - awesome-prelude # failure in job https://hydra.nixos.org/build/233232761 at 2023-09-02
   - awesomium-raw # failure in job https://hydra.nixos.org/build/233241036 at 2023-09-02
+  - aws-cloudfront-signed-cookies # failure in job https://hydra.nixos.org/build/252736035 at 2024-03-16
   - aws-cloudfront-signer # failure in job https://hydra.nixos.org/build/233194723 at 2023-09-02
   - aws-easy # failure building library in job https://hydra.nixos.org/build/237244335 at 2023-10-21
   - aws-ec2 # failure in job https://hydra.nixos.org/build/233201556 at 2023-09-02
@@ -324,6 +342,7 @@ broken-packages:
   - Baggins # failure in job https://hydra.nixos.org/build/233192786 at 2023-09-02
   - bake # failure in job https://hydra.nixos.org/build/233211889 at 2023-09-02
   - Bang # failure in job https://hydra.nixos.org/build/233226846 at 2023-09-02
+  - ban-instance # failure in job https://hydra.nixos.org/build/252726701 at 2024-03-16
   - banwords # failure in job https://hydra.nixos.org/build/233229703 at 2023-09-02
   - barbies-th # failure in job https://hydra.nixos.org/build/233251598 at 2023-09-02
   - barchart # failure in job https://hydra.nixos.org/build/233216957 at 2023-09-02
@@ -347,6 +366,8 @@ broken-packages:
   - basement-cd # failure in job https://hydra.nixos.org/build/233191991 at 2023-09-02
   - basen # failure in job https://hydra.nixos.org/build/233210680 at 2023-09-02
   - basex-client # failure in job https://hydra.nixos.org/build/233214592 at 2023-09-02
+  - bash # failure in job https://hydra.nixos.org/build/252719390 at 2024-03-16
+  - basic-gps # failure in job https://hydra.nixos.org/build/252718385 at 2024-03-16
   - basics # failure in job https://hydra.nixos.org/build/236678238 at 2023-10-04
   - basic-sop # failure in job https://hydra.nixos.org/build/233253357 at 2023-09-02
   - baskell # failure in job https://hydra.nixos.org/build/233246705 at 2023-09-02
@@ -360,6 +381,7 @@ broken-packages:
   - bdo # failure in job https://hydra.nixos.org/build/233216486 at 2023-09-02
   - beamable # failure in job https://hydra.nixos.org/build/233211619 at 2023-09-02
   - beam # failure in job https://hydra.nixos.org/build/233213313 at 2023-09-02
+  - beam-migrate # failure in job https://hydra.nixos.org/build/252730758 at 2024-03-16
   - beam-mysql # failure in job https://hydra.nixos.org/build/233253237 at 2023-09-02
   - beam-newtype-field # failure in job https://hydra.nixos.org/build/233206317 at 2023-09-02
   - bech32 # failure in job https://hydra.nixos.org/build/233194823 at 2023-09-02
@@ -379,8 +401,10 @@ broken-packages:
   - betacode # failure in job https://hydra.nixos.org/build/233193221 at 2023-09-02
   - bet # failure in job https://hydra.nixos.org/build/233205655 at 2023-09-02
   - betris # failure in job https://hydra.nixos.org/build/233200110 at 2023-09-02
+  - bff-mono # failure in job https://hydra.nixos.org/build/252710505 at 2024-03-16
   - bgmax # failure in job https://hydra.nixos.org/build/233222709 at 2023-09-02
   - bgzf # failure in job https://hydra.nixos.org/build/233224580 at 2023-09-02
+  - bhoogle # failure in job https://hydra.nixos.org/build/252712137 at 2024-03-16
   - bibdb # failure in job https://hydra.nixos.org/build/233210682 at 2023-09-02
   - bidi-icu # failure in job https://hydra.nixos.org/build/233257520 at 2023-09-02
   - bidirectional # failure in job https://hydra.nixos.org/build/233239780 at 2023-09-02
@@ -437,17 +461,20 @@ broken-packages:
   - bio-sequence # failure in job https://hydra.nixos.org/build/233236140 at 2023-09-02
   - biscuit-haskell # failure in job https://hydra.nixos.org/build/233241833 at 2023-09-02
   - bisect-binary # failure in job https://hydra.nixos.org/build/233190746 at 2023-09-02
+  - bitcoin-compact-filters # failure in job https://hydra.nixos.org/build/252726935 at 2024-03-16
   - bitcoind-rpc # failure in job https://hydra.nixos.org/build/233204068 at 2023-09-02
   - bitcoin-hs # failure in job https://hydra.nixos.org/build/233251583 at 2023-09-02
   - bitcoin-keys # failure in job https://hydra.nixos.org/build/233215632 at 2023-09-02
   - bitcoin-rpc # failure in job https://hydra.nixos.org/build/233209694 at 2023-09-02
   - bitcoin-script # failure in job https://hydra.nixos.org/build/233201469 at 2023-09-02
+  - bitcoin-scripting # failure in job https://hydra.nixos.org/build/252734577 at 2024-03-16
   - bitfield # failure in job https://hydra.nixos.org/build/233235414 at 2023-09-02
   - bits-atomic # failure in job https://hydra.nixos.org/build/233236099 at 2023-09-02
   - bits-conduit # failure in job https://hydra.nixos.org/build/233236564 at 2023-09-02
   - bitset # failure in job https://hydra.nixos.org/build/233218622 at 2023-09-02
   - bits-extras # failure in job https://hydra.nixos.org/build/233217492 at 2023-09-02
   - bitspeak # failure in job https://hydra.nixos.org/build/233219582 at 2023-09-02
+  - bits-show # failure in job https://hydra.nixos.org/build/252714912 at 2024-03-16
   - bit-stream # failure in job https://hydra.nixos.org/build/233230353 at 2023-09-02
   - bitstream # failure in job https://hydra.nixos.org/build/233240888 at 2023-09-02
   - BitStringRandomMonad # failure in job https://hydra.nixos.org/build/233203519 at 2023-09-02
@@ -489,7 +516,9 @@ broken-packages:
   - boolean-like # failure in job https://hydra.nixos.org/build/233190873 at 2023-09-02
   - boolean-normal-forms # failure in job https://hydra.nixos.org/build/233220091 at 2023-09-02
   - boombox # failure in job https://hydra.nixos.org/build/233249287 at 2023-09-02
+  - boots # failure in job https://hydra.nixos.org/build/252733526 at 2024-03-16
   - boring-window-switcher # failure in job https://hydra.nixos.org/build/233252547 at 2023-09-02
+  - borsh # failure in job https://hydra.nixos.org/build/252718760 at 2024-03-16
   - bot # failure in job https://hydra.nixos.org/build/233230089 at 2023-09-02
   - botpp # failure in job https://hydra.nixos.org/build/233201674 at 2023-09-02
   - bottom # failure in job https://hydra.nixos.org/build/233225154 at 2023-09-02
@@ -503,6 +532,7 @@ broken-packages:
   - brain-bleep # failure in job https://hydra.nixos.org/build/233198839 at 2023-09-02
   - brassica # failure in job https://hydra.nixos.org/build/233224897 at 2023-09-02
   - Bravo # failure in job https://hydra.nixos.org/build/233199668 at 2023-09-02
+  - breve # failure in job https://hydra.nixos.org/build/252716215 at 2024-03-16
   - brians-brain # failure in job https://hydra.nixos.org/build/233201634 at 2023-09-02
   - brick-dropdownmenu # failure in job https://hydra.nixos.org/build/233223686 at 2023-09-02
   - brick-filetree # failure in job https://hydra.nixos.org/build/233217076 at 2023-09-02
@@ -534,6 +564,7 @@ broken-packages:
   - bugzilla # failure in job https://hydra.nixos.org/build/233223784 at 2023-09-02
   - buildable # failure in job https://hydra.nixos.org/build/233199077 at 2023-09-02
   - buildbox # failure in job https://hydra.nixos.org/build/233216315 at 2023-09-02
+  - build-env # failure in job https://hydra.nixos.org/build/252734826 at 2024-03-16
   - builder # failure in job https://hydra.nixos.org/build/233207846 at 2023-09-02
   - build # failure in job https://hydra.nixos.org/build/233195606 at 2023-09-02
   - bumper # failure in job https://hydra.nixos.org/build/233234378 at 2023-09-02
@@ -541,11 +572,12 @@ broken-packages:
   - burst-detection # failure in job https://hydra.nixos.org/build/233254074 at 2023-09-02
   - buster # failure in job https://hydra.nixos.org/build/233197502 at 2023-09-02
   - Buster # failure in job https://hydra.nixos.org/build/233214182 at 2023-09-02
+  - bustle # failure in job https://hydra.nixos.org/build/252728683 at 2024-03-16
   - butter # failure in job https://hydra.nixos.org/build/233212117 at 2023-09-02
   - buttplug-hs-core # failure in job https://hydra.nixos.org/build/233223928 at 2023-09-02
-  - bv-little # failure in job https://hydra.nixos.org/build/233253839 at 2023-09-02
   - bv-sized-lens # failure in job https://hydra.nixos.org/build/233237486 at 2023-09-02
   - byline # failure in job https://hydra.nixos.org/build/233231017 at 2023-09-02
+  - by-other-names # failure in job https://hydra.nixos.org/build/252732245 at 2024-03-16
   - bytearray-parsing # failure in job https://hydra.nixos.org/build/233244355 at 2023-09-02
   - bytepatch # failure in job https://hydra.nixos.org/build/236678340 at 2023-10-04
   - bytestring-arbitrary # failure in job https://hydra.nixos.org/build/233195013 at 2023-09-02
@@ -553,6 +585,7 @@ broken-packages:
   - bytestring-csv # failure in job https://hydra.nixos.org/build/233215194 at 2023-09-02
   - bytestring-delta # failure in job https://hydra.nixos.org/build/233207977 at 2023-09-02
   - bytestring-handle # failure in job https://hydra.nixos.org/build/233192234 at 2023-09-02
+  - bytestring-mmap # failure in job https://hydra.nixos.org/build/252733270 at 2024-03-16
   - bytestringparser # failure in job https://hydra.nixos.org/build/233227781 at 2023-09-02
   - bytestringparser-temporary # failure in job https://hydra.nixos.org/build/233226655 at 2023-09-02
   - bytestring-plain # failure in job https://hydra.nixos.org/build/233230746 at 2023-09-02
@@ -576,14 +609,17 @@ broken-packages:
   - cabal-db # failure in job https://hydra.nixos.org/build/233197235 at 2023-09-02
   - cabal-debian # failure in job https://hydra.nixos.org/build/233255267 at 2023-09-02
   - cabal-dependency-licenses # failure in job https://hydra.nixos.org/build/233249247 at 2023-09-02
+  - cabal-detailed-quickcheck # failure in job https://hydra.nixos.org/build/252734084 at 2024-03-16
   - cabal-dev # failure in job https://hydra.nixos.org/build/233227918 at 2023-09-02
   - cabal-dir # failure in job https://hydra.nixos.org/build/233194037 at 2023-09-02
   - cabal-edit # failure in job https://hydra.nixos.org/build/233244268 at 2023-09-02
   - cabal-file-th # failure in job https://hydra.nixos.org/build/233224650 at 2023-09-02
   - cabal-ghc-dynflags # failure in job https://hydra.nixos.org/build/233244580 at 2023-09-02
   - cabal-ghci # failure in job https://hydra.nixos.org/build/233239354 at 2023-09-02
+  - cabal-gild # failure in job https://hydra.nixos.org/build/252731019 at 2024-03-16
   - cabal-graphdeps # failure in job https://hydra.nixos.org/build/233221966 at 2023-09-02
   - cabalgraph # failure in job https://hydra.nixos.org/build/233241573 at 2023-09-02
+  - cabal-helper # failure in job https://hydra.nixos.org/build/252732588 at 2024-03-16
   - cabal-hoogle # failure in job https://hydra.nixos.org/build/233191666 at 2023-09-02
   - Cabal-ide-backend # failure in job https://hydra.nixos.org/build/233258880 at 2023-09-02
   - cabal-info # failure in job https://hydra.nixos.org/build/233225001 at 2023-09-02
@@ -595,7 +631,6 @@ broken-packages:
   - cabal-meta # failure in job https://hydra.nixos.org/build/233194466 at 2023-09-02
   - cabal-mon # failure in job https://hydra.nixos.org/build/233217320 at 2023-09-02
   - cabal-nirvana # failure in job https://hydra.nixos.org/build/233222083 at 2023-09-02
-  - cabal-plan # failure in job https://hydra.nixos.org/build/233223914 at 2023-09-02
   - cabal-progdeps # failure in job https://hydra.nixos.org/build/233251917 at 2023-09-02
   - cabalQuery # failure in job https://hydra.nixos.org/build/233211475 at 2023-09-02
   - CabalSearch # failure in job https://hydra.nixos.org/build/233200817 at 2023-09-02
@@ -604,6 +639,7 @@ broken-packages:
   - cabal-src # failure in job https://hydra.nixos.org/build/233229475 at 2023-09-02
   - cabal-test-quickcheck # failure in job https://hydra.nixos.org/build/233211903 at 2023-09-02
   - cabal-toolkit # failure in job https://hydra.nixos.org/build/233192328 at 2023-09-02
+  - cabal-uninstall # failure in job https://hydra.nixos.org/build/252739542 at 2024-03-16
   - cabal-upload # failure in job https://hydra.nixos.org/build/233207791 at 2023-09-02
   - cabalvchk # failure in job https://hydra.nixos.org/build/233221561 at 2023-09-02
   - cabin # failure in job https://hydra.nixos.org/build/233225287 at 2023-09-02
@@ -612,7 +648,9 @@ broken-packages:
   - cache-polysemy # failure in job https://hydra.nixos.org/build/233200602 at 2023-09-02
   - caching # failure in job https://hydra.nixos.org/build/233233548 at 2023-09-02
   - cacophony # failure in job https://hydra.nixos.org/build/233239380 at 2023-09-02
+  - caerbannog # failure in job https://hydra.nixos.org/build/252729101 at 2024-03-16
   - cafeteria-prelude # failure in job https://hydra.nixos.org/build/233254881 at 2023-09-02
+  - cairo-canvas # failure in job https://hydra.nixos.org/build/252719057 at 2024-03-16
   - cairo-core # failure in job https://hydra.nixos.org/build/233248151 at 2023-09-02
   - cake3 # failure in job https://hydra.nixos.org/build/233231662 at 2023-09-02
   - cal3d # failure in job https://hydra.nixos.org/build/233200357 at 2023-09-02
@@ -674,6 +712,7 @@ broken-packages:
   - ccast # failure in job https://hydra.nixos.org/build/233254517 at 2023-09-02
   - CC-delcont-cxe # failure in job https://hydra.nixos.org/build/233190865 at 2023-09-02
   - CC-delcont-exc # failure in job https://hydra.nixos.org/build/233236141 at 2023-09-02
+  - CC-delcont # failure in job https://hydra.nixos.org/build/252735236 at 2024-03-16
   - CC-delcont-ref # failure in job https://hydra.nixos.org/build/233229304 at 2023-09-02
   - CC-delcont-ref-tf # failure in job https://hydra.nixos.org/build/233257768 at 2023-09-02
   - cci # failure in job https://hydra.nixos.org/build/233244756 at 2023-09-02
@@ -697,6 +736,7 @@ broken-packages:
   - cgroup-rts-threads # failure in job https://hydra.nixos.org/build/233207888 at 2023-09-02
   - chalkboard # failure in job https://hydra.nixos.org/build/234453414 at 2023-09-13
   - chalmers-lava2000 # failure in job https://hydra.nixos.org/build/233239592 at 2023-09-02
+  - changelog-d # failure in job https://hydra.nixos.org/build/252716175 at 2024-03-16
   - changelogged # failure in job https://hydra.nixos.org/build/233211675 at 2023-09-02
   - character-cases # failure in job https://hydra.nixos.org/build/233197636 at 2023-09-02
   - charter # failure in job https://hydra.nixos.org/build/233237264 at 2023-09-02
@@ -704,6 +744,7 @@ broken-packages:
   - Chart-simple # failure in job https://hydra.nixos.org/build/233240919 at 2023-09-02
   - chaselev-deque # failure in job https://hydra.nixos.org/build/233237595 at 2023-09-02
   - chatty-text # failure in job https://hydra.nixos.org/build/233199498 at 2023-09-02
+  - chatty-utils # failure in job https://hydra.nixos.org/build/252710715 at 2024-03-16
   - chatwork # failure in job https://hydra.nixos.org/build/233240489 at 2023-09-02
   - cheapskate # failure in job https://hydra.nixos.org/build/233197892 at 2023-09-02
   - check-cfg-ambiguity # failure in job https://hydra.nixos.org/build/233251852 at 2023-09-02
@@ -733,6 +774,7 @@ broken-packages:
   - cipher-aes128 # failure in job https://hydra.nixos.org/build/233242645 at 2023-09-02
   - cipher-blowfish # failure in job https://hydra.nixos.org/build/233193834 at 2023-09-02
   - cipher-des # failure in job https://hydra.nixos.org/build/233232112 at 2023-09-02
+  - circle # failure in job https://hydra.nixos.org/build/252722965 at 2024-03-16
   - circlehs # failure in job https://hydra.nixos.org/build/233246591 at 2023-09-02
   - citeproc-hs # failure in job https://hydra.nixos.org/build/233254388 at 2023-09-02
   - cjk # failure in job https://hydra.nixos.org/build/233258734 at 2023-09-02
@@ -756,6 +798,7 @@ broken-packages:
   - Clean # failure in job https://hydra.nixos.org/build/233255199 at 2023-09-02
   - clean-unions # failure in job https://hydra.nixos.org/build/233237582 at 2023-09-02
   - cleff # failure in job https://hydra.nixos.org/build/233243158 at 2023-09-02
+  - clerk # failure in job https://hydra.nixos.org/build/252713517 at 2024-03-16
   - clevercss # failure in job https://hydra.nixos.org/build/233206298 at 2023-09-02
   - clexer # failure in job https://hydra.nixos.org/build/233229804 at 2023-09-02
   - cli-builder # failure in job https://hydra.nixos.org/build/233209961 at 2023-09-02
@@ -780,6 +823,7 @@ broken-packages:
   - clplug # failure in job https://hydra.nixos.org/build/233236794 at 2023-09-02
   - clr-host # failure in job https://hydra.nixos.org/build/233207709 at 2023-09-02
   - clr-typed # failure in job https://hydra.nixos.org/build/233212102 at 2023-09-02
+  - cltw # failure in job https://hydra.nixos.org/build/252735903 at 2024-03-16
   - cluss # failure in job https://hydra.nixos.org/build/233245341 at 2023-09-02
   - cmark-highlight # failure in job https://hydra.nixos.org/build/233218534 at 2023-09-02
   - cmark-patterns # failure in job https://hydra.nixos.org/build/233192983 at 2023-09-02
@@ -801,11 +845,13 @@ broken-packages:
   - codecov-haskell # failure in job https://hydra.nixos.org/build/233256758 at 2023-09-02
   - codeforces-cli # failure in job https://hydra.nixos.org/build/233210719 at 2023-09-02
   - codepad # failure in job https://hydra.nixos.org/build/233197730 at 2023-09-02
+  - codeworld-api # failure in job https://hydra.nixos.org/build/252720413 at 2024-03-16
   - codex # failure in job https://hydra.nixos.org/build/233212311 at 2023-09-02
   - codo-notation # failure in job https://hydra.nixos.org/build/233202566 at 2023-09-02
   - coercible-utils # failure in job https://hydra.nixos.org/build/233230462 at 2023-09-02
   - coinbase-pro # failure in job https://hydra.nixos.org/build/233245350 at 2023-09-02
   - coin # failure in job https://hydra.nixos.org/build/233198975 at 2023-09-02
+  - coinor-clp # failure in job https://hydra.nixos.org/build/252724287 at 2024-03-16
   - colchis # failure in job https://hydra.nixos.org/build/233207690 at 2023-09-02
   - collada-output # failure in job https://hydra.nixos.org/build/233192394 at 2023-09-02
   - collapse-util # failure in job https://hydra.nixos.org/build/233238818 at 2023-09-02
@@ -816,6 +862,7 @@ broken-packages:
   - co-log-sys # failure in job https://hydra.nixos.org/build/233206587 at 2023-09-02
   - colonnade # failure in job https://hydra.nixos.org/build/233248956 at 2023-09-02
   - colorless # failure in job https://hydra.nixos.org/build/233220728 at 2023-09-02
+  - colour-text # failure in job https://hydra.nixos.org/build/252712609 at 2024-03-16
   - coltrane # failure in job https://hydra.nixos.org/build/233216437 at 2023-09-02
   - comark-syntax # failure in job https://hydra.nixos.org/build/233243043 at 2023-09-02
   - combinat-compat # failure in job https://hydra.nixos.org/build/233201337 at 2023-09-02
@@ -828,7 +875,7 @@ broken-packages:
   - Command # failure in job https://hydra.nixos.org/build/233249718 at 2023-09-02
   - Commando # failure in job https://hydra.nixos.org/build/233248911 at 2023-09-02
   - commodities # failure in job https://hydra.nixos.org/build/233239851 at 2023-09-02
-  - commonmark-simple # failure in job https://hydra.nixos.org/build/245703574 at 2024-01-07
+  - comonad-extras # failure in job https://hydra.nixos.org/build/252715520 at 2024-03-16
   - Compactable # failure in job https://hydra.nixos.org/build/233227285 at 2023-09-02
   - compactable # failure in job https://hydra.nixos.org/build/233228106 at 2023-09-02
   - compact-list # failure in job https://hydra.nixos.org/build/233241961 at 2023-09-02
@@ -876,6 +923,7 @@ broken-packages:
   - conductive-base # failure in job https://hydra.nixos.org/build/233234746 at 2023-09-02
   - conduit-audio-lame # failure in job https://hydra.nixos.org/build/233253987 at 2023-09-02
   - conduit-audio-samplerate # failure in job https://hydra.nixos.org/build/233208457 at 2023-09-02
+  - conduit-audio-sndfile # failure in job https://hydra.nixos.org/build/252728043 at 2024-03-16
   - conduit-connection # failure in job https://hydra.nixos.org/build/233232646 at 2023-09-02
   - conduit-find # failure in job https://hydra.nixos.org/build/233259909 at 2023-09-02
   - conduit-iconv # failure in job https://hydra.nixos.org/build/233246555 at 2023-09-02
@@ -899,12 +947,14 @@ broken-packages:
   - conjure # failure in job https://hydra.nixos.org/build/233220494 at 2023-09-02
   - conkin # failure in job https://hydra.nixos.org/build/233246485 at 2023-09-02
   - conlogger # failure in job https://hydra.nixos.org/build/233193354 at 2023-09-02
+  - connection # failure in job https://hydra.nixos.org/build/252717790 at 2024-03-16
   - connection-pool # failure in job https://hydra.nixos.org/build/233199817 at 2023-09-02
   - connections # failure in job https://hydra.nixos.org/build/233193445 at 2023-09-02
   - connection-string # failure in job https://hydra.nixos.org/build/233205032 at 2023-09-02
   - Conscript # failure in job https://hydra.nixos.org/build/233216349 at 2023-09-02
   - consistent # failure in job https://hydra.nixos.org/build/233210122 at 2023-09-02
   - console-program # failure in job https://hydra.nixos.org/build/233207490 at 2023-09-02
+  - console-style # failure in job https://hydra.nixos.org/build/252730000 at 2024-03-16
   - constable # failure in job https://hydra.nixos.org/build/233256456 at 2023-09-02
   - const # failure in job https://hydra.nixos.org/build/233227000 at 2023-09-02
   - const-math-ghc-plugin # failure in job https://hydra.nixos.org/build/233198147 at 2023-09-02
@@ -920,7 +970,6 @@ broken-packages:
   - consul-haskell # failure in job https://hydra.nixos.org/build/233195306 at 2023-09-02
   - Consumer # failure in job https://hydra.nixos.org/build/233227840 at 2023-09-02
   - containers-benchmark # failure in job https://hydra.nixos.org/build/233244707 at 2023-09-02
-  - containers-unicode-symbols # failure in job https://hydra.nixos.org/build/233206693 at 2023-09-02
   - containers-verified # failure in job https://hydra.nixos.org/build/233228855 at 2023-09-02
   - ContArrow # failure in job https://hydra.nixos.org/build/233215540 at 2023-09-02
   - ContextAlgebra # failure in job https://hydra.nixos.org/build/233197054 at 2023-09-02
@@ -946,6 +995,7 @@ broken-packages:
   - corebot-bliki # failure in job https://hydra.nixos.org/build/233241143 at 2023-09-02
   - core-compiler # failure in job https://hydra.nixos.org/build/233250303 at 2023-09-02
   - CoreDump # failure in job https://hydra.nixos.org/build/233247860 at 2023-09-02
+  - core-effect-effectful # failure in job https://hydra.nixos.org/build/252723824 at 2024-03-16
   - CoreErlang # failure in job https://hydra.nixos.org/build/233199110 at 2023-09-02
   - core # failure in job https://hydra.nixos.org/build/233253971 at 2023-09-02
   - core-haskell # failure in job https://hydra.nixos.org/build/233222588 at 2023-09-02
@@ -964,7 +1014,9 @@ broken-packages:
   - cozo-hs # failure in job https://hydra.nixos.org/build/241432654 at 2023-11-19
   - cparsing # failure in job https://hydra.nixos.org/build/233192377 at 2023-09-02
   - cpio-conduit # failure in job https://hydra.nixos.org/build/233220518 at 2023-09-02
+  - CPL # failure in job https://hydra.nixos.org/build/252731771 at 2024-03-16
   - cplusplus-th # failure in job https://hydra.nixos.org/build/233204461 at 2023-09-02
+  - cps-except # failure in job https://hydra.nixos.org/build/252711064 at 2024-03-16
   - cpuperf # failure in job https://hydra.nixos.org/build/233252964 at 2023-09-02
   - cpython # failure in job https://hydra.nixos.org/build/233255188 at 2023-09-02
   - cql-io # failure in job https://hydra.nixos.org/build/233245286 at 2023-09-02
@@ -987,6 +1039,7 @@ broken-packages:
   - criterion-compare # failure in job https://hydra.nixos.org/build/233257858 at 2023-09-02
   - criterion-plus # failure in job https://hydra.nixos.org/build/233194095 at 2023-09-02
   - criterion-to-html # failure in job https://hydra.nixos.org/build/233209983 at 2023-09-02
+  - criu-rpc-types # failure in job https://hydra.nixos.org/build/252715844 at 2024-03-16
   - crjdt-haskell # failure in job https://hydra.nixos.org/build/233199652 at 2023-09-02
   - crockford # failure in job https://hydra.nixos.org/build/233210759 at 2023-09-02
   - crocodile # failure in job https://hydra.nixos.org/build/233222277 at 2023-09-02
@@ -996,16 +1049,20 @@ broken-packages:
   - crypto-cipher-benchmarks # failure in job https://hydra.nixos.org/build/233195297 at 2023-09-02
   - cryptocompare # failure in job https://hydra.nixos.org/build/233192898 at 2023-09-02
   - cryptoconditions # failure in job https://hydra.nixos.org/build/233211816 at 2023-09-02
+  - crypto-enigma # failure in job https://hydra.nixos.org/build/252722224 at 2024-03-16
+  - Crypto # failure in job https://hydra.nixos.org/build/252738609 at 2024-03-16
   - cryptoids-types # failure in job https://hydra.nixos.org/build/233242596 at 2023-09-02
   - crypto-keys-ssh # failure in job https://hydra.nixos.org/build/233222227 at 2023-09-02
   - crypto-multihash # failure in job https://hydra.nixos.org/build/233220770 at 2023-09-02
   - crypto-numbers # failure in job https://hydra.nixos.org/build/233225721 at 2023-09-02
   - crypto-pubkey-openssh # failure in job https://hydra.nixos.org/build/233207007 at 2023-09-02
   - crypto-random-effect # failure in job https://hydra.nixos.org/build/233236324 at 2023-09-02
+  - crypto-random # failure in job https://hydra.nixos.org/build/252715261 at 2024-03-16
   - crypto-simple # failure in job https://hydra.nixos.org/build/233192703 at 2023-09-02
   - cryptsy-api # failure in job https://hydra.nixos.org/build/233195814 at 2023-09-02
   - csa # failure in job https://hydra.nixos.org/build/233233907 at 2023-09-02
   - cse-ghc-plugin # failure in job https://hydra.nixos.org/build/233251963 at 2023-09-02
+  - csg # failure in job https://hydra.nixos.org/build/252719752 at 2024-03-16
   - CSPM-Frontend # failure in job https://hydra.nixos.org/build/233219295 at 2023-09-02
   - cspretty # failure in job https://hydra.nixos.org/build/233246796 at 2023-09-02
   - css-easings # failure in job https://hydra.nixos.org/build/233203513 at 2023-09-02
@@ -1013,13 +1070,16 @@ broken-packages:
   - css-selectors # failure in job https://hydra.nixos.org/build/233247710 at 2023-09-02
   - css-simple # failure in job https://hydra.nixos.org/build/233220768 at 2023-09-02
   - C-structs # failure in job https://hydra.nixos.org/build/233247498 at 2023-09-02
+  - csv-conduit # failure in job https://hydra.nixos.org/build/252718484 at 2024-03-16
   - csv-nptools # failure in job https://hydra.nixos.org/build/233215773 at 2023-09-02
   - csv-sip # failure in job https://hydra.nixos.org/build/233211292 at 2023-09-02
   - ctemplate # failure in job https://hydra.nixos.org/build/233257909 at 2023-09-02
   - ctkl # failure in job https://hydra.nixos.org/build/233219516 at 2023-09-02
+  - cubical # failure in job https://hydra.nixos.org/build/246186233 at 2024-01-13
   - cuboid # failure in job https://hydra.nixos.org/build/234462220 at 2023-09-13
   - cuckoo # failure in job https://hydra.nixos.org/build/233210915 at 2023-09-02
   - cuckoo-filter # failure in job https://hydra.nixos.org/build/233226484 at 2023-09-02
+  - cudd # failure in job https://hydra.nixos.org/build/252716117 at 2024-03-16
   - curl-aeson # failure in job https://hydra.nixos.org/build/233210106 at 2023-09-02
   - curl-runnings # failure in job https://hydra.nixos.org/build/233258680 at 2023-09-02
   - curly-expander # failure in job https://hydra.nixos.org/build/233250838 at 2023-09-02
@@ -1031,10 +1091,13 @@ broken-packages:
   - curryrs # failure in job https://hydra.nixos.org/build/233250943 at 2023-09-02
   - cursedcsv # failure in job https://hydra.nixos.org/build/233253732 at 2023-09-02
   - curves # failure in job https://hydra.nixos.org/build/233237354 at 2023-09-02
+  - custom-interpolation # failure in job https://hydra.nixos.org/build/252711669 at 2024-03-16
   - custom-prelude # failure in job https://hydra.nixos.org/build/233216882 at 2023-09-02
   - cut-the-crap # failure in job https://hydra.nixos.org/build/233238478 at 2023-09-02
   - CV # failure in job https://hydra.nixos.org/build/233223571 at 2023-09-02
+  - d10 # failure in job https://hydra.nixos.org/build/252720183 at 2024-03-16
   - d3js # failure in job https://hydra.nixos.org/build/233251474 at 2023-09-02
+  - daemonize-doublefork # failure in job https://hydra.nixos.org/build/252714429 at 2024-03-16
   - dag # failure in job https://hydra.nixos.org/build/233220719 at 2023-09-02
   - DAG-Tournament # failure in job https://hydra.nixos.org/build/233218747 at 2023-09-02
   - dahdit # failure in job https://hydra.nixos.org/build/233245113 at 2023-09-02
@@ -1046,6 +1109,7 @@ broken-packages:
   - darcs2dot # failure in job https://hydra.nixos.org/build/233209236 at 2023-09-02
   - darcs-buildpackage # failure in job https://hydra.nixos.org/build/233213566 at 2023-09-02
   - darcs-cabalized # failure in job https://hydra.nixos.org/build/233234765 at 2023-09-02
+  - darcs # doesn't support unix >= 2.8, 2024-01-13
   - darcs-graph # failure in job https://hydra.nixos.org/build/233245230 at 2023-09-02
   - darcs-monitor # failure in job https://hydra.nixos.org/build/233249455 at 2023-09-02
   - darkplaces-rcon # failure in job https://hydra.nixos.org/build/233247609 at 2023-09-02
@@ -1061,6 +1125,7 @@ broken-packages:
   - database-study # failure in job https://hydra.nixos.org/build/233222466 at 2023-09-02
   - data-check # failure in job https://hydra.nixos.org/build/233210384 at 2023-09-02
   - data-combinator-gen # failure in job https://hydra.nixos.org/build/233193769 at 2023-09-02
+  - data-compat # failure in job https://hydra.nixos.org/build/252715428 at 2024-03-16
   - data-concurrent-queue # failure in job https://hydra.nixos.org/build/233252841 at 2023-09-02
   - data-construction # failure in job https://hydra.nixos.org/build/233251464 at 2023-09-02
   - data-constructors # failure in job https://hydra.nixos.org/build/233241097 at 2023-09-02
@@ -1070,6 +1135,7 @@ broken-packages:
   - data-diverse-lens # failure in job https://hydra.nixos.org/build/233221672 at 2023-09-02
   - datadog # failure in job https://hydra.nixos.org/build/233191124 at 2023-09-02
   - data-easy # failure in job https://hydra.nixos.org/build/233250802 at 2023-09-02
+  - data-elevator # failure in job https://hydra.nixos.org/build/252730351 at 2024-03-16
   - data-embed # failure in job https://hydra.nixos.org/build/233201230 at 2023-09-02
   - data-emoticons # failure in job https://hydra.nixos.org/build/233255035 at 2023-09-02
   - data-filepath # failure in job https://hydra.nixos.org/build/233243231 at 2023-09-02
@@ -1152,6 +1218,7 @@ broken-packages:
   - deepseq-instances # failure in job https://hydra.nixos.org/build/233236748 at 2023-09-02
   - deepseq-magic # failure in job https://hydra.nixos.org/build/233228993 at 2023-09-02
   - deepseq-th # failure in job https://hydra.nixos.org/build/233233106 at 2023-09-02
+  - defaultable-map # failure in job https://hydra.nixos.org/build/252731762 at 2024-03-16
   - definitive-base # failure in job https://hydra.nixos.org/build/233255489 at 2023-09-02
   - defun-bool # failure in job https://hydra.nixos.org/build/245696015 at 2024-01-07
   - deiko-config # failure in job https://hydra.nixos.org/build/233210895 at 2023-09-02
@@ -1162,6 +1229,7 @@ broken-packages:
   - denominate # failure in job https://hydra.nixos.org/build/233214619 at 2023-09-02
   - dense # failure in job https://hydra.nixos.org/build/233205807 at 2023-09-02
   - dense-int-set # failure in job https://hydra.nixos.org/build/233214797 at 2023-09-02
+  - dependency # failure in job https://hydra.nixos.org/build/252727325 at 2024-03-16
   - dependent-hashmap # failure in job https://hydra.nixos.org/build/233202881 at 2023-09-02
   - dependent-monoidal-map # failure in job https://hydra.nixos.org/build/233212829 at 2023-09-02
   - dep-t # failure in job https://hydra.nixos.org/build/233217847 at 2023-09-02
@@ -1171,11 +1239,14 @@ broken-packages:
   - derive-enumerable # failure in job https://hydra.nixos.org/build/233254290 at 2023-09-02
   - derive # failure in job https://hydra.nixos.org/build/233209166 at 2023-09-02
   - derive-gadt # failure in job https://hydra.nixos.org/build/233220430 at 2023-09-02
+  - derive-has-field # failure in job https://hydra.nixos.org/build/252735604 at 2024-03-16
   - deriveJsonNoPrefix # failure in job https://hydra.nixos.org/build/233242453 at 2023-09-02
   - derive-lifted-instances # failure in job https://hydra.nixos.org/build/233194868 at 2023-09-02
   - derive-monoid # failure in job https://hydra.nixos.org/build/233205670 at 2023-09-02
   - derive-trie # failure in job https://hydra.nixos.org/build/233207961 at 2023-09-02
+  - deriving-openapi3 # failure in job https://hydra.nixos.org/build/252718489 at 2024-03-16
   - derp-lib # failure in job https://hydra.nixos.org/build/233199053 at 2023-09-02
+  - derulo # failure in job https://hydra.nixos.org/build/252725148 at 2024-03-16
   - describe # failure in job https://hydra.nixos.org/build/233207296 at 2023-09-02
   - descriptive # failure building library in job https://hydra.nixos.org/build/237623359 at 2023-10-21
   - desktop-portal # failure in job https://hydra.nixos.org/build/233241462 at 2023-09-02
@@ -1200,6 +1271,7 @@ broken-packages:
   - dia-base # failure in job https://hydra.nixos.org/build/233230896 at 2023-09-02
   - diagnose # failure in job https://hydra.nixos.org/build/233231767 at 2023-09-02
   - diagrams-boolean # failure in job https://hydra.nixos.org/build/233202036 at 2023-09-02
+  - diagrams-gi-cairo # failure in job https://hydra.nixos.org/build/252724017 at 2024-03-16
   - diagrams-pdf # failure in job https://hydra.nixos.org/build/233197864 at 2023-09-02
   - diagrams-qrcode # failure in job https://hydra.nixos.org/build/233229542 at 2023-09-02
   - diagrams-rubiks-cube # failure in job https://hydra.nixos.org/build/233213426 at 2023-09-02
@@ -1220,7 +1292,9 @@ broken-packages:
   - digestive-bootstrap # failure in job https://hydra.nixos.org/build/233208165 at 2023-09-02
   - digestive-functors-aeson # failure in job https://hydra.nixos.org/build/233207417 at 2023-09-02
   - digestive-functors-happstack # failure in job https://hydra.nixos.org/build/233222641 at 2023-09-02
+  - digestive-functors-heist # failure in job https://hydra.nixos.org/build/252718667 at 2024-03-16
   - digestive-functors-lucid # failure in job https://hydra.nixos.org/build/233209397 at 2023-09-02
+  - digestive-functors-scotty # failure in job https://hydra.nixos.org/build/252719811 at 2024-03-16
   - digestive-functors-snap # failure in job https://hydra.nixos.org/build/233238117 at 2023-09-02
   - digest-pure # failure in job https://hydra.nixos.org/build/233194135 at 2023-09-02
   - DigitalOcean # failure in job https://hydra.nixos.org/build/233231291 at 2023-09-02
@@ -1228,6 +1302,7 @@ broken-packages:
   - digit # failure in job https://hydra.nixos.org/build/237241758 at 2023-10-21
   - dijkstra-simple # failure in job https://hydra.nixos.org/build/233218373 at 2023-09-02
   - DimensionalHash # failure in job https://hydra.nixos.org/build/233230945 at 2023-09-02
+  - dino # failure in job https://hydra.nixos.org/build/252725815 at 2024-03-16
   - diophantine # failure in job https://hydra.nixos.org/build/233229215 at 2023-09-02
   - diplomacy # failure in job https://hydra.nixos.org/build/233207895 at 2023-09-02
   - direct-binary-files # failure in job https://hydra.nixos.org/build/233246387 at 2023-09-02
@@ -1246,6 +1321,7 @@ broken-packages:
   - disjoint-containers # failure in job https://hydra.nixos.org/build/233219391 at 2023-09-02
   - disjoint-set # failure in job https://hydra.nixos.org/build/233201934 at 2023-09-02
   - disjoint-set-stateful # failure in job https://hydra.nixos.org/build/233253300 at 2023-09-02
+  - disk-bytes # failure in job https://hydra.nixos.org/build/252722796 at 2024-03-16
   - diskhash # failure in job https://hydra.nixos.org/build/233230362 at 2023-09-02
   - disposable # timeout
   - distance # failure in job https://hydra.nixos.org/build/233255082 at 2023-09-02
@@ -1281,6 +1357,7 @@ broken-packages:
   - domaindriven-core # failure in job https://hydra.nixos.org/build/233234739 at 2023-09-02
   - domain-optics # failure in job https://hydra.nixos.org/build/233255232 at 2023-09-02
   - dom-events # failure in job https://hydra.nixos.org/build/233231199 at 2023-09-02
+  - dominion # failure in job https://hydra.nixos.org/build/252714022 at 2024-03-16
   - dom-parser # failure in job https://hydra.nixos.org/build/233235797 at 2023-09-02
   - domplate # failure in job https://hydra.nixos.org/build/233241400 at 2023-09-02
   - dom-selector # failure in job https://hydra.nixos.org/build/233212663 at 2023-09-02
@@ -1291,6 +1368,8 @@ broken-packages:
   - dot-linker # failure in job https://hydra.nixos.org/build/233237512 at 2023-09-02
   - doublezip # failure in job https://hydra.nixos.org/build/233219270 at 2023-09-02
   - doublify-toolkit # failure in job https://hydra.nixos.org/build/233223302 at 2023-09-02
+  - dovin # failure in job https://hydra.nixos.org/build/252714139 at 2024-03-16
+  - downhill # failure in job https://hydra.nixos.org/build/252719666 at 2024-03-16
   - downloader # failure in job https://hydra.nixos.org/build/233195131 at 2023-09-02
   - dozenal # failure in job https://hydra.nixos.org/build/233255439 at 2023-09-02
   - dozens # failure in job https://hydra.nixos.org/build/233200638 at 2023-09-02
@@ -1306,11 +1385,13 @@ broken-packages:
   - DrIFT-cabalized # failure in job https://hydra.nixos.org/build/233221273 at 2023-09-02
   - drifter-postgresql # failure in job https://hydra.nixos.org/build/233248442 at 2023-09-02
   - DrIFT # failure in job https://hydra.nixos.org/build/233220463 at 2023-09-02
+  - driving-classes-plugin # failure in job https://hydra.nixos.org/build/252724273 at 2024-03-16
   - drmaa # failure in job https://hydra.nixos.org/build/233241074 at 2023-09-02
   - drone # failure in job https://hydra.nixos.org/build/233207037 at 2023-09-02
   - dropbox # failure in job https://hydra.nixos.org/build/233598046 at 2023-09-02
   - dsc # failure in job https://hydra.nixos.org/build/233243851 at 2023-09-02
   - ds-kanren # failure in job https://hydra.nixos.org/build/233216074 at 2023-09-02
+  - dsmc # failure in job https://hydra.nixos.org/build/252711940 at 2024-03-16
   - dson # failure in job https://hydra.nixos.org/build/233210971 at 2023-09-02
   - dson-parsec # failure in job https://hydra.nixos.org/build/233236453 at 2023-09-02
   - dstring # failure in job https://hydra.nixos.org/build/233238408 at 2023-09-02
@@ -1318,12 +1399,15 @@ broken-packages:
   - DTC # failure in job https://hydra.nixos.org/build/233252009 at 2023-09-02
   - dtd-text # failure in job https://hydra.nixos.org/build/233203050 at 2023-09-02
   - dtw # failure in job https://hydra.nixos.org/build/233198932 at 2023-09-02
+  - dual # failure in job https://hydra.nixos.org/build/252724683 at 2024-03-16
   - dual-game # failure in job https://hydra.nixos.org/build/234439752 at 2023-09-13
   - dualizer # failure in job https://hydra.nixos.org/build/233237592 at 2023-09-02
   - duckling # failure in job https://hydra.nixos.org/build/233247880 at 2023-09-02
   - duet # failure in job https://hydra.nixos.org/build/233219004 at 2023-09-02
+  - dumb-cas # failure in job https://hydra.nixos.org/build/252730634 at 2024-03-16
   - dump-core # failure in job https://hydra.nixos.org/build/233244428 at 2023-09-02
   - dunai-core # failure in job https://hydra.nixos.org/build/233255804 at 2023-09-02
+  - dunai # failure in job https://hydra.nixos.org/build/252732304 at 2024-03-16
   - Dung # failure in job https://hydra.nixos.org/build/233206343 at 2023-09-02
   - dupIO # failure in job https://hydra.nixos.org/build/236688265 at 2023-10-04
   - duplo # failure in job https://hydra.nixos.org/build/233237341 at 2023-09-02
@@ -1336,6 +1420,7 @@ broken-packages:
   - dwarf # failure in job https://hydra.nixos.org/build/233244074 at 2023-09-02
   - dyckword # failure in job https://hydra.nixos.org/build/233256385 at 2023-09-02
   - dyna-brick # failure in job https://hydra.nixos.org/build/233193254 at 2023-09-02
+  - dynamic-graph # failure in job https://hydra.nixos.org/build/252718318 at 2024-03-16
   - dynamic-graphs # failure in job https://hydra.nixos.org/build/233210231 at 2023-09-02
   - dynamic-mvector # failure in job https://hydra.nixos.org/build/233252826 at 2023-09-02
   - dynamic-object # failure in job https://hydra.nixos.org/build/233216605 at 2023-09-02
@@ -1347,6 +1432,7 @@ broken-packages:
   - dywapitchtrack # failure in job https://hydra.nixos.org/build/233195810 at 2023-09-02
   - dzen-dhall # failure in job https://hydra.nixos.org/build/233245800 at 2023-09-02
   - dzen-utils # failure in job https://hydra.nixos.org/build/233217831 at 2023-09-02
+  - e11y # failure in job https://hydra.nixos.org/build/252717308 at 2024-03-16
   - each # failure in job https://hydra.nixos.org/build/233259543 at 2023-09-02
   - eager-sockets # failure in job https://hydra.nixos.org/build/233212504 at 2023-09-02
   - earclipper # failure in job https://hydra.nixos.org/build/233212721 at 2023-09-02
@@ -1357,6 +1443,7 @@ broken-packages:
   - easy-bitcoin # failure in job https://hydra.nixos.org/build/233201882 at 2023-09-02
   - easyjson # failure in job https://hydra.nixos.org/build/233199317 at 2023-09-02
   - easyplot # failure in job https://hydra.nixos.org/build/233213312 at 2023-09-02
+  - easyrender # failure in job https://hydra.nixos.org/build/252710524 at 2024-03-16
   - easytest # failure in job https://hydra.nixos.org/build/233209710 at 2023-09-02
   - ebeats # failure in job https://hydra.nixos.org/build/233235039 at 2023-09-02
   - ebnf-bff # failure in job https://hydra.nixos.org/build/233221694 at 2023-09-02
@@ -1387,6 +1474,8 @@ broken-packages:
   - eigen # failure in job https://hydra.nixos.org/build/233204115 at 2023-09-02
   - Eight-Ball-Pool-Hack-Cheats # failure in job https://hydra.nixos.org/build/233211937 at 2023-09-02
   - eio # failure in job https://hydra.nixos.org/build/233256103 at 2023-09-02
+  - either-both # failure in job https://hydra.nixos.org/build/252717090 at 2024-03-16
+  - either-list-functions # failure in job https://hydra.nixos.org/build/252717276 at 2024-03-16
   - EitherT # failure in job https://hydra.nixos.org/build/233217056 at 2023-09-02
   - either-unwrap # failure in job https://hydra.nixos.org/build/233254495 at 2023-09-02
   - ejdb2-binding # failure in job https://hydra.nixos.org/build/233253666 at 2023-09-02
@@ -1403,6 +1492,7 @@ broken-packages:
   - elevator # failure in job https://hydra.nixos.org/build/233213794 at 2023-09-02
   - elision # failure in job https://hydra.nixos.org/build/233218969 at 2023-09-02
   - elm-export-persistent # failure in job https://hydra.nixos.org/build/233248910 at 2023-09-02
+  - elminator # failure in job https://hydra.nixos.org/build/252729949 at 2024-03-16
   - elm-websocket # failure in job https://hydra.nixos.org/build/233192201 at 2023-09-02
   - elocrypt # failure in job https://hydra.nixos.org/build/233229627 at 2023-09-02
   - ema-generics # failure in job https://hydra.nixos.org/build/233200038 at 2023-09-02
@@ -1416,6 +1506,7 @@ broken-packages:
   - Empty # failure in job https://hydra.nixos.org/build/233228745 at 2023-09-02
   - empty-monad # failure in job https://hydra.nixos.org/build/233259244 at 2023-09-02
   - enchant # failure in job https://hydra.nixos.org/build/233196992 at 2023-09-02
+  - Encode # failure in job https://hydra.nixos.org/build/252712962 at 2024-03-16
   - encode-string # failure in job https://hydra.nixos.org/build/233251833 at 2023-09-02
   - encoding # failure in job https://hydra.nixos.org/build/233216476 at 2023-09-02
   - encoding-io # failure in job https://hydra.nixos.org/build/233208714 at 2023-09-02
@@ -1435,20 +1526,25 @@ broken-packages:
   - env-parser # failure in job https://hydra.nixos.org/build/233237933 at 2023-09-02
   - envstatus # failure in job https://hydra.nixos.org/build/233257940 at 2023-09-02
   - envy-extensible # failure in job https://hydra.nixos.org/build/233229313 at 2023-09-02
+  - eo-phi-normalizer # failure in job https://hydra.nixos.org/build/252736993 at 2024-03-16
   - epanet-haskell # failure in job https://hydra.nixos.org/build/233197331 at 2023-09-02
   - epass # failure in job https://hydra.nixos.org/build/233194117 at 2023-09-02
   - epic # failure in job https://hydra.nixos.org/build/233204921 at 2023-09-02
   - epi-sim # failure in job https://hydra.nixos.org/build/233246076 at 2023-09-02
   - epoll # failure in job https://hydra.nixos.org/build/233247564 at 2023-09-02
+  - eprocess # failure in job https://hydra.nixos.org/build/252722826 at 2024-03-16
   - epubname # failure in job https://hydra.nixos.org/build/233198937 at 2023-09-02
+  - epub-tools # failure in job https://hydra.nixos.org/build/252717848 at 2024-03-16
   - Eq # failure in job https://hydra.nixos.org/build/233200216 at 2023-09-02
   - EqualitySolver # failure in job https://hydra.nixos.org/build/233190999 at 2023-09-02
   - equational-reasoning-induction # failure in job https://hydra.nixos.org/build/233235280 at 2023-09-02
   - equeue # failure in job https://hydra.nixos.org/build/233237274 at 2023-09-02
   - erd # failure in job https://hydra.nixos.org/build/233215438 at 2023-09-02
+  - erebos # failure in job https://hydra.nixos.org/build/252716136 at 2024-03-16
   - erlang # failure in job https://hydra.nixos.org/build/233195837 at 2023-09-02
   - erlang-ffi # failure in job https://hydra.nixos.org/build/233233314 at 2023-09-02
   - eros # failure in job https://hydra.nixos.org/build/233247983 at 2023-09-02
+  - errno # failure in job https://hydra.nixos.org/build/252725782 at 2024-03-16
   - error-context # failure in job https://hydra.nixos.org/build/233245027 at 2023-09-02
   - error-continuations # failure in job https://hydra.nixos.org/build/233232357 at 2023-09-02
   - error-list # failure in job https://hydra.nixos.org/build/233237173 at 2023-09-02
@@ -1467,16 +1563,20 @@ broken-packages:
   - Etage # failure in job https://hydra.nixos.org/build/233219527 at 2023-09-02
   - etcd # failure in job https://hydra.nixos.org/build/233196041 at 2023-09-02
   - etc # failure in job https://hydra.nixos.org/build/233199192 at 2023-09-02
+  - ethereum-analyzer-deps # failure in job https://hydra.nixos.org/build/252732846 at 2024-03-16
   - ethereum-rlp # failure in job https://hydra.nixos.org/build/233236392 at 2023-09-02
   - eurofxref # failure in job https://hydra.nixos.org/build/233230942 at 2023-09-02
   - evdev # failure in job https://hydra.nixos.org/build/236692293 at 2023-10-04
   - eve-cli # failure in job https://hydra.nixos.org/build/233254555 at 2023-09-02
   - eved # failure in job https://hydra.nixos.org/build/233194319 at 2023-09-02
+  - eve # failure in job https://hydra.nixos.org/build/252715362 at 2024-03-16
   - event-driven # failure in job https://hydra.nixos.org/build/233233946 at 2023-09-02
   - event # failure in job https://hydra.nixos.org/build/233209756 at 2023-09-02
   - eventsource-api # failure in job https://hydra.nixos.org/build/233243220 at 2023-09-02
   - eventsourced # failure in job https://hydra.nixos.org/build/233192731 at 2023-09-02
   - eventstore # failure in job https://hydra.nixos.org/build/233202734 at 2023-09-02
+  - eventuo11y-dsl # failure in job https://hydra.nixos.org/build/252711345 at 2024-03-16
+  - eventuo11y # failure in job https://hydra.nixos.org/build/252711747 at 2024-03-16
   - evoke # failure in job https://hydra.nixos.org/build/233213948 at 2023-09-02
   - EVP # failure in job https://hydra.nixos.org/build/237241792 at 2023-10-21
   - ewe # failure in job https://hydra.nixos.org/build/233217228 at 2023-09-02
@@ -1486,7 +1586,9 @@ broken-packages:
   - exceptional # failure in job https://hydra.nixos.org/build/233214345 at 2023-09-02
   - exceptionfree-readfile # failure in job https://hydra.nixos.org/build/233222995 at 2023-09-02
   - exception-monads-fd # failure in job https://hydra.nixos.org/build/233224946 at 2023-09-02
+  - exception-monads-tf # failure in job https://hydra.nixos.org/build/252739085 at 2024-03-16
   - exception-via # failure in job https://hydra.nixos.org/build/233197670 at 2023-09-02
+  - exceptiot # failure in job https://hydra.nixos.org/build/252711579 at 2024-03-16
   - exchangerates # failure in job https://hydra.nixos.org/build/233230944 at 2023-09-02
   - execs # failure in job https://hydra.nixos.org/build/233210274 at 2023-09-02
   - executor # failure in job https://hydra.nixos.org/build/233250118 at 2023-09-02
@@ -1500,6 +1602,7 @@ broken-packages:
   - exists # failure in job https://hydra.nixos.org/build/233243541 at 2023-09-02
   - exitcode # failure in job https://hydra.nixos.org/build/233238454 at 2023-09-02
   - exp-cache # failure in job https://hydra.nixos.org/build/233220561 at 2023-09-02
+  - experimenter # failure in job https://hydra.nixos.org/build/252726011 at 2024-03-16
   - exp-extended # failure in job https://hydra.nixos.org/build/233236139 at 2023-09-02
   - explain # failure in job https://hydra.nixos.org/build/233207210 at 2023-09-02
   - explicit-constraint-lens # failure in job https://hydra.nixos.org/build/233230188 at 2023-09-02
@@ -1529,21 +1632,29 @@ broken-packages:
   - factory # failure in job https://hydra.nixos.org/build/233222084 at 2023-09-02
   - facts # failure in job https://hydra.nixos.org/build/233194410 at 2023-09-02
   - Facts # failure in job https://hydra.nixos.org/build/233224533 at 2023-09-02
+  - fad # failure in job https://hydra.nixos.org/build/252716941 at 2024-03-16
   - fadno-braids # failure in job https://hydra.nixos.org/build/233246763 at 2023-09-02
   - fadno-xml # failure in job https://hydra.nixos.org/build/233228192 at 2023-09-02
+  - failable # failure in job https://hydra.nixos.org/build/252731566 at 2024-03-16
   - failable-list # failure in job https://hydra.nixos.org/build/233198924 at 2023-09-02
   - failure-detector # failure in job https://hydra.nixos.org/build/233244451 at 2023-09-02
+  - failure # failure in job https://hydra.nixos.org/build/252738855 at 2024-03-16
   - fake # failure in job https://hydra.nixos.org/build/233199052 at 2023-09-02
   - fake-type # failure in job https://hydra.nixos.org/build/233197081 at 2023-09-02
   - faktory # failure in job https://hydra.nixos.org/build/233240158 at 2023-09-02
   - f-algebra-gen # failure in job https://hydra.nixos.org/build/233194303 at 2023-09-02
+  - falling-turnip # failure in job https://hydra.nixos.org/build/252737877 at 2024-03-16
   - fastbayes # failure in job https://hydra.nixos.org/build/233223718 at 2023-09-02
   - fast-combinatorics # failure in job https://hydra.nixos.org/build/233250615 at 2023-09-02
+  - fast-downward # failure in job https://hydra.nixos.org/build/252721794 at 2024-03-16
   - fastedit # failure in job https://hydra.nixos.org/build/233213468 at 2023-09-02
+  - faster-megaparsec # failure in job https://hydra.nixos.org/build/252713238 at 2024-03-16
   - fastly # failure in job https://hydra.nixos.org/build/233213136 at 2023-09-02
+  - fastmemo # failure in job https://hydra.nixos.org/build/252739389 at 2024-03-16
   - fast-nats # failure in job https://hydra.nixos.org/build/233238596 at 2023-09-02
   - fastpbkdf2 # failure in job https://hydra.nixos.org/build/233218574 at 2023-09-02
   - FastPush # failure in job https://hydra.nixos.org/build/233224507 at 2023-09-02
+  - fastsum # failure in job https://hydra.nixos.org/build/252716407 at 2024-03-16
   - fast-tagsoup-utf8-only # failure in job https://hydra.nixos.org/build/233202322 at 2023-09-02
   - FastxPipe # failure in job https://hydra.nixos.org/build/233232889 at 2023-09-02
   - fathead-util # failure in job https://hydra.nixos.org/build/233255882 at 2023-09-02
@@ -1553,6 +1664,7 @@ broken-packages:
   - fcache # failure in job https://hydra.nixos.org/build/233258505 at 2023-09-02
   - fca # failure in job https://hydra.nixos.org/build/233205050 at 2023-09-02
   - fcf-composite # failure in job https://hydra.nixos.org/build/233252957 at 2023-09-02
+  - fcf-containers # failure in job https://hydra.nixos.org/build/252729702 at 2024-03-16
   - fcf-graphs # failure in job https://hydra.nixos.org/build/233254885 at 2023-09-02
   - fcg # failure in job https://hydra.nixos.org/build/233228656 at 2023-09-02
   - fckeditor # failure in job https://hydra.nixos.org/build/233226949 at 2023-09-02
@@ -1565,6 +1677,7 @@ broken-packages:
   - feed-cli # failure in job https://hydra.nixos.org/build/233234086 at 2023-09-02
   - feed-collect # failure in job https://hydra.nixos.org/build/233203100 at 2023-09-02
   - feed-crawl # failure in job https://hydra.nixos.org/build/233227566 at 2023-09-02
+  - fei-cocoapi # failure in job https://hydra.nixos.org/build/252726625 at 2024-03-16
   - fenfire # failure in job https://hydra.nixos.org/build/233254038 at 2023-09-02
   - fernet # failure in job https://hydra.nixos.org/build/233228830 at 2023-09-02
   - FerryCore # failure in job https://hydra.nixos.org/build/233198667 at 2023-09-02
@@ -1585,12 +1698,12 @@ broken-packages:
   - file-command-qq # failure in job https://hydra.nixos.org/build/233205913 at 2023-09-02
   - filediff # failure in job https://hydra.nixos.org/build/233256056 at 2023-09-02
   - file-embed-poly # failure in job https://hydra.nixos.org/build/233252504 at 2023-09-02
-  - file-io # failure in job https://hydra.nixos.org/build/233192040 at 2023-09-02
   - file-location # failure in job https://hydra.nixos.org/build/233202456 at 2023-09-02
   - FileManipCompat # failure in job https://hydra.nixos.org/build/233254887 at 2023-09-02
   - FileManip # failure in job https://hydra.nixos.org/build/233237292 at 2023-09-02
   - fileneglect # failure in job https://hydra.nixos.org/build/233209920 at 2023-09-02
   - filepather # failure in job https://hydra.nixos.org/build/237242258 at 2023-10-21
+  - FilePather # failure in job https://hydra.nixos.org/build/252715750 at 2024-03-16
   - Files # failure in job https://hydra.nixos.org/build/233207543 at 2023-09-02
   - filesystem-conduit # failure in job https://hydra.nixos.org/build/233239975 at 2023-09-02
   - FileSystem # failure in job https://hydra.nixos.org/build/233230289 at 2023-09-02
@@ -1605,9 +1718,11 @@ broken-packages:
   - fingertree-tf # failure in job https://hydra.nixos.org/build/233259910 at 2023-09-02
   - finite # failure in job https://hydra.nixos.org/build/233226313 at 2023-09-02
   - finite-fields # failure in job https://hydra.nixos.org/build/233191530 at 2023-09-02
+  - finito # failure in job https://hydra.nixos.org/build/252721862 at 2024-03-16
   - firefly-example # failure in job https://hydra.nixos.org/build/233259350 at 2023-09-02
   - first-and-last # failure in job https://hydra.nixos.org/build/233256888 at 2023-09-02
   - first-class-instances # failure in job https://hydra.nixos.org/build/233207181 at 2023-09-02
+  - first-class-patterns # failure in job https://hydra.nixos.org/build/252739352 at 2024-03-16
   - FirstPrelude # failure in job https://hydra.nixos.org/build/233256065 at 2023-09-02
   - fit # failure in job https://hydra.nixos.org/build/233239893 at 2023-09-02
   - fitsio # failure in job https://hydra.nixos.org/build/233246119 at 2023-09-02
@@ -1629,15 +1744,19 @@ broken-packages:
   - flaccuraterip # failure in job https://hydra.nixos.org/build/233255839 at 2023-09-02
   - flamethrower # failure in job https://hydra.nixos.org/build/233258696 at 2023-09-02
   - flamingra # failure in job https://hydra.nixos.org/build/233242907 at 2023-09-02
+  - flatbuffers # failure in job https://hydra.nixos.org/build/252718245 at 2024-03-16
   - flat-maybe # failure in job https://hydra.nixos.org/build/233197544 at 2023-09-02
   - flat-mcmc # failure in job https://hydra.nixos.org/build/233234404 at 2023-09-02
   - flay # failure in job https://hydra.nixos.org/build/233235511 at 2023-09-02
   - flexible-time # failure in job https://hydra.nixos.org/build/233208099 at 2023-09-02
   - flickr # failure in job https://hydra.nixos.org/build/233212718 at 2023-09-02
+  - flink-statefulfun # failure in job https://hydra.nixos.org/build/252724456 at 2024-03-16
   - Flint2 # failure in updateAutotoolsGnuConfigScriptsPhase in job https://hydra.nixos.org/build/239246414 at 2023-11-10
+  - float128 # failure in job https://hydra.nixos.org/build/252733549 at 2024-03-16
   - float-binstring # failure in job https://hydra.nixos.org/build/233203257 at 2023-09-02
   - floating-bits # failure in job https://hydra.nixos.org/build/233223171 at 2023-09-02
   - flock # failure in job https://hydra.nixos.org/build/233245164 at 2023-09-02
+  - flow2dot # failure in job https://hydra.nixos.org/build/252733511 at 2024-03-16
   - flowdock-api # failure in job https://hydra.nixos.org/build/233215251 at 2023-09-02
   - flowdock # failure in job https://hydra.nixos.org/build/233206736 at 2023-09-02
   - flowdock-rest # failure in job https://hydra.nixos.org/build/233240090 at 2023-09-02
@@ -1651,12 +1770,15 @@ broken-packages:
   - flux-monoid # failure in job https://hydra.nixos.org/build/233202845 at 2023-09-02
   - fmark # failure in job https://hydra.nixos.org/build/233196159 at 2023-09-02
   - FModExRaw # failure in job https://hydra.nixos.org/build/233259032 at 2023-09-02
+  - fn-extra # failure in job https://hydra.nixos.org/build/252737996 at 2024-03-16
   - fold-debounce-conduit # failure in job https://hydra.nixos.org/build/233195249 at 2023-09-02
+  - foldl-exceptions # failure in job https://hydra.nixos.org/build/252719821 at 2024-03-16
   - foldl-incremental # failure in job https://hydra.nixos.org/build/233201921 at 2023-09-02
   - foldl-statistics # failure in job https://hydra.nixos.org/build/233243724 at 2023-09-02
   - foldl-transduce # failure in job https://hydra.nixos.org/build/233192486 at 2023-09-02
   - folds-common # failure in job https://hydra.nixos.org/build/233237316 at 2023-09-02
   - follow # failure in job https://hydra.nixos.org/build/233255423 at 2023-09-02
+  - follow-file # failure in job https://hydra.nixos.org/build/252732901 at 2024-03-16
   - fontconfig-pure # failure in job https://hydra.nixos.org/build/233254573 at 2023-09-02
   - font-opengl-basic4x6 # failure in job https://hydra.nixos.org/build/233200978 at 2023-09-02
   - forbidden-fruit # failure in job https://hydra.nixos.org/build/233258954 at 2023-09-02
@@ -1688,8 +1810,11 @@ broken-packages:
   - Frames-beam # failure in job https://hydra.nixos.org/build/241429730 at 2023-11-19
   - Frames-streamly # failure in job https://hydra.nixos.org/build/241420906 at 2023-11-19
   - franchise # failure in job https://hydra.nixos.org/build/233256790 at 2023-09-02
+  - franz # failure in job https://hydra.nixos.org/build/252725109 at 2024-03-16
   - fraxl # failure in job https://hydra.nixos.org/build/233219345 at 2023-09-02
   - freddy # failure in job https://hydra.nixos.org/build/233208999 at 2023-09-02
+  - free-algebras # failure in job https://hydra.nixos.org/build/252728477 at 2024-03-16
+  - free-applicative-t # failure in job https://hydra.nixos.org/build/252715728 at 2024-03-16
   - free-concurrent # failure in job https://hydra.nixos.org/build/233257070 at 2023-09-02
   - f-ree-hack-cheats-free-v-bucks-generator # failure in job https://hydra.nixos.org/build/233225159 at 2023-09-02
   - free-http # failure in job https://hydra.nixos.org/build/233227362 at 2023-09-02
@@ -1700,12 +1825,14 @@ broken-packages:
   - freesect # failure in job https://hydra.nixos.org/build/233218671 at 2023-09-02
   - freesound # failure in job https://hydra.nixos.org/build/233240464 at 2023-09-02
   - free-theorems-counterexamples # failure in job https://hydra.nixos.org/build/233231989 at 2023-09-02
+  - free-theorems # failure in job https://hydra.nixos.org/build/252725016 at 2024-03-16
   - free-theorems-seq # failure in job https://hydra.nixos.org/build/233207326 at 2023-09-02
   - free-theorems-webui # failure in job https://hydra.nixos.org/build/233255034 at 2023-09-02
   - FreeTypeGL # failure in job https://hydra.nixos.org/build/233212222 at 2023-09-02
   - freetype-simple # failure in job https://hydra.nixos.org/build/233249707 at 2023-09-02
   - free-v-bucks-generator-no-survey # failure in job https://hydra.nixos.org/build/233208419 at 2023-09-02
   - free-v-bucks-generator-ps4-no-survey # failure in job https://hydra.nixos.org/build/233190747 at 2023-09-02
+  - fregel # failure in job https://hydra.nixos.org/build/252734327 at 2024-03-16
   - freq # failure in job https://hydra.nixos.org/build/233247154 at 2023-09-02
   - fresh # failure in job https://hydra.nixos.org/build/233196569 at 2023-09-02
   - fresnel # failure in job https://hydra.nixos.org/build/233214198 at 2023-09-02
@@ -1730,10 +1857,12 @@ broken-packages:
   - ftp-client # failure in job https://hydra.nixos.org/build/233227664 at 2023-09-02
   - ftp-conduit # failure in job https://hydra.nixos.org/build/233244330 at 2023-09-02
   - ftphs # failure in job https://hydra.nixos.org/build/233215550 at 2023-09-02
+  - FULE # failure in job https://hydra.nixos.org/build/252719910 at 2024-03-16
   - full-sessions # failure in job https://hydra.nixos.org/build/233254332 at 2023-09-02
   - funbot-client # failure in job https://hydra.nixos.org/build/233255739 at 2023-09-02
   - funcons-values # failure in job https://hydra.nixos.org/build/233194179 at 2023-09-02
   - function-instances-algebra # failure in job https://hydra.nixos.org/build/233202209 at 2023-09-02
+  - functor-combinators # failure in job https://hydra.nixos.org/build/252714438 at 2024-03-16
   - functor-friends # failure in job https://hydra.nixos.org/build/233208108 at 2023-09-02
   - functor-infix # failure in job https://hydra.nixos.org/build/233228794 at 2023-09-02
   - functorm # failure in job https://hydra.nixos.org/build/233212335 at 2023-09-02
@@ -1743,6 +1872,7 @@ broken-packages:
   - funpat # failure in job https://hydra.nixos.org/build/233222123 at 2023-09-02
   - funspection # failure in job https://hydra.nixos.org/build/233227352 at 2023-09-02
   - fused-effects-exceptions # failure in job https://hydra.nixos.org/build/233203744 at 2023-09-02
+  - fused-effects # failure in job https://hydra.nixos.org/build/252724943 at 2024-03-16
   - fused-effects-mwc-random # failure in job https://hydra.nixos.org/build/233253228 at 2023-09-02
   - fused-effects-resumable # failure in job https://hydra.nixos.org/build/233242479 at 2023-09-02
   - fused-effects-th # failure in job https://hydra.nixos.org/build/233192186 at 2023-09-02
@@ -1752,28 +1882,35 @@ broken-packages:
   - future # failure in job https://hydra.nixos.org/build/233224844 at 2023-09-02
   - futures # failure in job https://hydra.nixos.org/build/233230206 at 2023-09-02
   - fuzzyfind # failure in job https://hydra.nixos.org/build/233206269 at 2023-09-02
+  - fuzzy-parse # failure in job https://hydra.nixos.org/build/252728734 at 2024-03-16
+  - fuzzy-time-gen # failure in job https://hydra.nixos.org/build/252737793 at 2024-03-16
   - fuzzy-timings # failure in job https://hydra.nixos.org/build/233235765 at 2023-09-02
   - fvars # failure in job https://hydra.nixos.org/build/234461649 at 2023-09-13
   - fwgl # failure in job https://hydra.nixos.org/build/233246210 at 2023-09-02
   - g4ip # failure in job https://hydra.nixos.org/build/233248315 at 2023-09-02
+  - gambler # failure in job https://hydra.nixos.org/build/252732701 at 2024-03-16
   - gameclock # failure in job https://hydra.nixos.org/build/233234964 at 2023-09-02
   - game-probability # failure in job https://hydra.nixos.org/build/233191255 at 2023-09-02
   - gamgee # failure in job https://hydra.nixos.org/build/233249846 at 2023-09-02
   - Gamgine # failure in job https://hydra.nixos.org/build/233242510 at 2023-09-02
+  - gang-of-threads # failure in job https://hydra.nixos.org/build/252716251 at 2024-03-16
   - Ganymede # failure in job https://hydra.nixos.org/build/233248892 at 2023-09-02
   - garepinoh # failure in job https://hydra.nixos.org/build/233238111 at 2023-09-02
   - gargoyle # failure in job https://hydra.nixos.org/build/233196445 at 2023-09-02
   - gas # failure in job https://hydra.nixos.org/build/233233966 at 2023-09-02
+  - gasp # failure in job https://hydra.nixos.org/build/252731457 at 2024-03-16
   - gather # failure in job https://hydra.nixos.org/build/233208848 at 2023-09-02
   - gc-monitoring-wai # failure in job https://hydra.nixos.org/build/233209449 at 2023-09-02
   - gconf # failure in job https://hydra.nixos.org/build/233259023 at 2023-09-02
   - gdiff-th # failure in job https://hydra.nixos.org/build/233215065 at 2023-09-02
+  - gearhash # failure in job https://hydra.nixos.org/build/252728216 at 2024-03-16
   - gelatin # failure in job https://hydra.nixos.org/build/233249394 at 2023-09-02
   - gemcap # failure in job https://hydra.nixos.org/build/233202506 at 2023-09-02
+  - gemini-server # failure in job https://hydra.nixos.org/build/252717988 at 2024-03-16
+  - gemmula-altera # failure in job https://hydra.nixos.org/build/252721416 at 2024-03-16
   - gemstone # failure in job https://hydra.nixos.org/build/233202246 at 2023-09-02
   - gender # failure in job https://hydra.nixos.org/build/233235712 at 2023-09-02
   - genders # failure in job https://hydra.nixos.org/build/233238566 at 2023-09-02
-  - general-allocate # failure in job https://hydra.nixos.org/build/233214648 at 2023-09-02
   - general-prelude # failure in job https://hydra.nixos.org/build/233248628 at 2023-09-02
   - GeneralTicTacToe # failure in job https://hydra.nixos.org/build/233207939 at 2023-09-02
   - generator # failure in job https://hydra.nixos.org/build/233213384 at 2023-09-02
@@ -1793,16 +1930,19 @@ broken-packages:
   - generic-pretty # failure in job https://hydra.nixos.org/build/233205583 at 2023-09-02
   - generic-pretty-instances # failure in job https://hydra.nixos.org/build/233243114 at 2023-09-02
   - generic-records # failure in job https://hydra.nixos.org/build/233237235 at 2023-09-02
+  - generics-eot # failure in job https://hydra.nixos.org/build/252717610 at 2024-03-16
   - genericserialize # failure in job https://hydra.nixos.org/build/233253092 at 2023-09-02
   - generic-server # failure in job https://hydra.nixos.org/build/233259385 at 2023-09-02
   - generics-mrsop # failure in job https://hydra.nixos.org/build/233233310 at 2023-09-02
   - generic-storable # failure in job https://hydra.nixos.org/build/233213225 at 2023-09-02
   - generic-tree # failure in job https://hydra.nixos.org/build/233219539 at 2023-09-02
+  - generic-trie # failure in job https://hydra.nixos.org/build/252733076 at 2024-03-16
   - generic-xmlpickler # failure in job https://hydra.nixos.org/build/233246507 at 2023-09-02
   - genetics # failure in job https://hydra.nixos.org/build/233219599 at 2023-09-02
   - genifunctors # failure in job https://hydra.nixos.org/build/233255126 at 2023-09-02
   - gen-imports # failure in job https://hydra.nixos.org/build/233216588 at 2023-09-02
   - geniplate # failure in job https://hydra.nixos.org/build/233233607 at 2023-09-02
+  - geniplate-mirror # failure in job https://hydra.nixos.org/build/252731252 at 2024-03-16
   - gen-passwd # failure in job https://hydra.nixos.org/build/233224836 at 2023-09-02
   - genprog # failure in job https://hydra.nixos.org/build/233198970 at 2023-09-02
   - gentlemark # failure in job https://hydra.nixos.org/build/233202158 at 2023-09-02
@@ -1837,12 +1977,12 @@ broken-packages:
   - ghc-gc-hook # failure in job https://hydra.nixos.org/build/233195053 at 2023-09-02
   - ghc-generic-instances # failure in job https://hydra.nixos.org/build/233259298 at 2023-09-02
   - ghc-hotswap # failure in job https://hydra.nixos.org/build/233220146 at 2023-09-02
-  - ghcide-test-utils # failure in job https://hydra.nixos.org/build/233209491 at 2023-09-02
   - ghci-diagrams # failure in job https://hydra.nixos.org/build/233194407 at 2023-09-02
   - ghci-haskeline # failure in job https://hydra.nixos.org/build/233216940 at 2023-09-02
   - ghci-history-parser # failure in job https://hydra.nixos.org/build/233204448 at 2023-09-02
   - ghci-lib # failure in job https://hydra.nixos.org/build/233216644 at 2023-09-02
   - ghci-ng # failure in job https://hydra.nixos.org/build/233229533 at 2023-09-02
+  - ghcitui # failure in job https://hydra.nixos.org/build/252737339 at 2024-03-16
   - ghcjs-base-stub # timeout
   - ghcjs-dom-jsffi # failure in job https://hydra.nixos.org/build/233215225 at 2023-09-02
   - ghcjs-fetch # timeout
@@ -1858,21 +1998,20 @@ broken-packages:
   - ghc-plugin-non-empty # failure in job https://hydra.nixos.org/build/233229023 at 2023-09-02
   - ghc-proofs # failure in job https://hydra.nixos.org/build/233230633 at 2023-09-02
   - ghc-simple # failure in job https://hydra.nixos.org/build/233201423 at 2023-09-02
-  - ghc-source-gen # failure in job https://hydra.nixos.org/build/233223566 at 2023-09-02
   - ghc-srcspan-plugin # failure in job https://hydra.nixos.org/build/233231564 at 2023-09-02
   - ghc-syb # failure in job https://hydra.nixos.org/build/233236783 at 2023-09-02
   - ghc-syb-utils # failure in job https://hydra.nixos.org/build/233229196 at 2023-09-02
+  - ghc-symbol # failure in job https://hydra.nixos.org/build/252710738 at 2024-03-16
+  - ghc-tags # failure in job https://hydra.nixos.org/build/252730131 at 2024-03-16
   - ghc-tags-plugin # failure in job https://hydra.nixos.org/build/233229916 at 2023-09-02
   - ghc-time-alloc-prof # failure in job https://hydra.nixos.org/build/233242289 at 2023-09-02
   - ghc-usage # failure in job https://hydra.nixos.org/build/233199565 at 2023-09-02
   - gh-labeler # failure in job https://hydra.nixos.org/build/233233139 at 2023-09-02
-  - gi-adwaita # failure in compileBuildDriverPhase in job https://hydra.nixos.org/build/239685049 at 2023-11-10
   - giak # failure in job https://hydra.nixos.org/build/233242229 at 2023-09-02
   - gi-clutter # failure in job https://hydra.nixos.org/build/233252753 at 2023-09-02
   - gi-coglpango # failure in job https://hydra.nixos.org/build/233194401 at 2023-09-02
   - Gifcurry # failure in job https://hydra.nixos.org/build/233200204 at 2023-09-02
   - gi-gio-hs-list-model # failure in job https://hydra.nixos.org/build/233241640 at 2023-09-02
-  - gi-gsk # failure in compileBuildDriverPhase in job https://hydra.nixos.org/build/239849990 at 2023-11-10
   - gi-gsttag # failure in job https://hydra.nixos.org/build/233197576 at 2023-09-02
   - gi-gtk-declarative # failure in job https://hydra.nixos.org/build/233217494 at 2023-09-02
   - gi-gtksheet # failure in job https://hydra.nixos.org/build/233211386 at 2023-09-02
@@ -1907,11 +2046,13 @@ broken-packages:
   - git-vogue # failure in job https://hydra.nixos.org/build/233249420 at 2023-09-02
   - gi-webkitwebprocessextension # failure in job https://hydra.nixos.org/build/233227647 at 2023-09-02
   - glade # failure in job https://hydra.nixos.org/build/233229566 at 2023-09-02
+  - glambda # failure in job https://hydra.nixos.org/build/252728236 at 2024-03-16
   - glapp # failure in job https://hydra.nixos.org/build/233213499 at 2023-09-02
   - glaze # failure in job https://hydra.nixos.org/build/233210047 at 2023-09-02
   - Gleam # failure in job https://hydra.nixos.org/build/233228018 at 2023-09-02
   - GLFW-b-demo # failure in job https://hydra.nixos.org/build/233230505 at 2023-09-02
   - GLFW # failure in job https://hydra.nixos.org/build/233234389 at 2023-09-02
+  - glib-stopgap # needs https://github.com/YoshikuniJujo/glib-stopgap/pull/1 to be merged
   - glicko # failure in job https://hydra.nixos.org/build/233200868 at 2023-09-02
   - glider-nlp # failure in job https://hydra.nixos.org/build/233229600 at 2023-09-02
   - gli # failure in job https://hydra.nixos.org/build/233210279 at 2023-09-02
@@ -1920,12 +2061,14 @@ broken-packages:
   - glob-posix # failure in job https://hydra.nixos.org/build/233253059 at 2023-09-02
   - GlomeTrace # failure in job https://hydra.nixos.org/build/233211872 at 2023-09-02
   - gloss-banana # failure in job https://hydra.nixos.org/build/234464253 at 2023-09-13
+  - gloss-examples # failure in job https://hydra.nixos.org/build/252718124 at 2024-03-16
   - gloss-export # failure in job https://hydra.nixos.org/build/234444988 at 2023-09-13
   - gloss-game # failure in job https://hydra.nixos.org/build/234460935 at 2023-09-13
   - glsl # failure in job https://hydra.nixos.org/build/233224139 at 2023-09-02
   - gltf-codec # failure in job https://hydra.nixos.org/build/233205342 at 2023-09-02
   - glue # failure in job https://hydra.nixos.org/build/233233587 at 2023-09-02
   - g-npm # failure in job https://hydra.nixos.org/build/233215965 at 2023-09-02
+  - gnutls # failure in job https://hydra.nixos.org/build/252734570 at 2024-03-16
   - goa # failure in job https://hydra.nixos.org/build/233193916 at 2023-09-02
   - goal-core # failure in job https://hydra.nixos.org/build/233242261 at 2023-09-02
   - goatee # failure in job https://hydra.nixos.org/build/233220875 at 2023-09-02
@@ -1933,6 +2076,7 @@ broken-packages:
   - godot-haskell # failure in job https://hydra.nixos.org/build/233213405 at 2023-09-02
   - godot-megaparsec # failure in job https://hydra.nixos.org/build/233252882 at 2023-09-02
   - gofer-prelude # failure in job https://hydra.nixos.org/build/233237015 at 2023-09-02
+  - goggles-gcs # failure in job https://hydra.nixos.org/build/252711128 at 2024-03-16
   - gogol-core # failure in job https://hydra.nixos.org/build/233245807 at 2023-09-02
   - gooey # failure in job https://hydra.nixos.org/build/233192207 at 2023-09-02
   - google-cloud # failure in job https://hydra.nixos.org/build/233218503 at 2023-09-02
@@ -1958,6 +2102,7 @@ broken-packages:
   - GPipe # failure in job https://hydra.nixos.org/build/233202480 at 2023-09-02
   - gpmf # failure in job https://hydra.nixos.org/build/233245964 at 2023-09-02
   - gpx-conduit # failure in job https://hydra.nixos.org/build/233245487 at 2023-09-02
+  - grab # failure in job https://hydra.nixos.org/build/252727759 at 2024-03-16
   - graceful # failure in job https://hydra.nixos.org/build/233199650 at 2023-09-02
   - grafana # failure in job https://hydra.nixos.org/build/233206262 at 2023-09-02
   - Grafos # failure in job https://hydra.nixos.org/build/233201494 at 2023-09-02
@@ -1996,6 +2141,7 @@ broken-packages:
   - GroteTrap # failure in job https://hydra.nixos.org/build/233203176 at 2023-09-02
   - groundhog # failure in job https://hydra.nixos.org/build/233199269 at 2023-09-02
   - grouped-list # failure in job https://hydra.nixos.org/build/233240891 at 2023-09-02
+  - groups-generic # failure in job https://hydra.nixos.org/build/252733900 at 2024-03-16
   - group-theory # failure in job https://hydra.nixos.org/build/233235833 at 2023-09-02
   - group-with # failure in job https://hydra.nixos.org/build/233196589 at 2023-09-02
   - growable-vector # failure in job https://hydra.nixos.org/build/233253891 at 2023-09-02
@@ -2031,6 +2177,7 @@ broken-packages:
   - hackage-mirror # failure in job https://hydra.nixos.org/build/233240852 at 2023-09-02
   - hackage-processing # failure in job https://hydra.nixos.org/build/233243914 at 2023-09-02
   - hackage-proxy # failure in job https://hydra.nixos.org/build/233221269 at 2023-09-02
+  - hackage-repo-tool # failure in job https://hydra.nixos.org/build/252731529 at 2024-03-16
   - hackager # failure in job https://hydra.nixos.org/build/233247230 at 2023-09-02
   - hackage-server # failure in job https://hydra.nixos.org/build/233254343 at 2023-09-02
   - hackage-whatsnew # failure in job https://hydra.nixos.org/build/233194915 at 2023-09-02
@@ -2075,7 +2222,6 @@ broken-packages:
   - hakyll-shortcode # failure in job https://hydra.nixos.org/build/233240216 at 2023-09-02
   - hakyll-typescript # failure in job https://hydra.nixos.org/build/233218630 at 2023-09-02
   - HaLeX # failure in job https://hydra.nixos.org/build/233233225 at 2023-09-02
-  - hal # failure in job https://hydra.nixos.org/build/233243847 at 2023-09-02
   - halfs # failure in job https://hydra.nixos.org/build/233235337 at 2023-09-02
   - halide-haskell # failure in job https://hydra.nixos.org/build/233244282 at 2023-09-02
   - halipeto # failure in job https://hydra.nixos.org/build/233223245 at 2023-09-02
@@ -2092,6 +2238,7 @@ broken-packages:
   - handsy # failure in job https://hydra.nixos.org/build/233192732 at 2023-09-02
   - HangmanAscii # failure in job https://hydra.nixos.org/build/233192660 at 2023-09-02
   - Hangman # failure in job https://hydra.nixos.org/build/233257262 at 2023-09-02
+  - hangman # failure in job https://hydra.nixos.org/build/252718314 at 2024-03-16
   - hannahci # failure in job https://hydra.nixos.org/build/233201493 at 2023-09-02
   - hans # failure in job https://hydra.nixos.org/build/233214027 at 2023-09-02
   - hanspell # failure in job https://hydra.nixos.org/build/233238153 at 2023-09-02
@@ -2104,6 +2251,7 @@ broken-packages:
   - happstack-clientsession # failure in job https://hydra.nixos.org/build/233224969 at 2023-09-02
   - happstack # failure in job https://hydra.nixos.org/build/233196813 at 2023-09-02
   - happstack-hamlet # failure in job https://hydra.nixos.org/build/233227835 at 2023-09-02
+  - happstack-heist # failure in job https://hydra.nixos.org/build/252723609 at 2024-03-16
   - happstack-hstringtemplate # failure in job https://hydra.nixos.org/build/233201171 at 2023-09-02
   - happstack-lite # failure in job https://hydra.nixos.org/build/233196392 at 2023-09-02
   - happstack-monad-peel # failure in job https://hydra.nixos.org/build/233247282 at 2023-09-02
@@ -2113,6 +2261,7 @@ broken-packages:
   - HAppS-Util # failure in job https://hydra.nixos.org/build/233237912 at 2023-09-02
   - happybara # failure in job https://hydra.nixos.org/build/233236198 at 2023-09-02
   - happybara-webkit-server # failure in job https://hydra.nixos.org/build/233247667 at 2023-09-02
+  - happy-hour # failure in job https://hydra.nixos.org/build/252732958 at 2024-03-16
   - HappyTree # failure in job https://hydra.nixos.org/build/233249720 at 2023-09-02
   - hapstone # failure in job https://hydra.nixos.org/build/233190701 at 2023-09-02
   - HaPy # failure in job https://hydra.nixos.org/build/233256693 at 2023-09-02
@@ -2123,6 +2272,7 @@ broken-packages:
   - HARM # failure in job https://hydra.nixos.org/build/233232650 at 2023-09-02
   - HarmTrace-Base # failure in job https://hydra.nixos.org/build/233213843 at 2023-09-02
   - haroonga # failure in job https://hydra.nixos.org/build/233226376 at 2023-09-02
+  - harp # failure in job https://hydra.nixos.org/build/252730015 at 2024-03-16
   - harpy # failure in job https://hydra.nixos.org/build/233225779 at 2023-09-02
   - harvest-api # failure in job https://hydra.nixos.org/build/233213054 at 2023-09-02
   - hasbolt-extras # failure in job https://hydra.nixos.org/build/233211734 at 2023-09-02
@@ -2133,8 +2283,11 @@ broken-packages:
   - has # failure in job https://hydra.nixos.org/build/233193689 at 2023-09-02
   - hashable-extras # failure in job https://hydra.nixos.org/build/233191748 at 2023-09-02
   - hashable-generics # failure in job https://hydra.nixos.org/build/233209175 at 2023-09-02
+  - hashable-orphans # failure in job https://hydra.nixos.org/build/252738804 at 2024-03-16
   - hashabler # failure in job https://hydra.nixos.org/build/233236154 at 2023-09-02
+  - hashable-time # failure in job https://hydra.nixos.org/build/252733552 at 2024-03-16
   - hashed-storage # failure in job https://hydra.nixos.org/build/233193382 at 2023-09-02
+  - hasherize # failure in job https://hydra.nixos.org/build/252712987 at 2024-03-16
   - hash # failure in job https://hydra.nixos.org/build/233219137 at 2023-09-02
   - hashring # failure in job https://hydra.nixos.org/build/233231092 at 2023-09-02
   - hashtables-plus # failure in job https://hydra.nixos.org/build/233234463 at 2023-09-02
@@ -2161,6 +2314,7 @@ broken-packages:
   - haskelldb # failure in job https://hydra.nixos.org/build/233248300 at 2023-09-02
   - haskelldb-wx # failure in job https://hydra.nixos.org/build/233197525 at 2023-09-02
   - haskell-disque # failure in job https://hydra.nixos.org/build/233226200 at 2023-09-02
+  - haskell-docs-cli # failure in job https://hydra.nixos.org/build/252718877 at 2024-03-16
   - HaskellForMaths # failure in job https://hydra.nixos.org/build/233237608 at 2023-09-02
   - haskell-formatter # failure in job https://hydra.nixos.org/build/233237167 at 2023-09-02
   - haskell-generate # failure in job https://hydra.nixos.org/build/233197927 at 2023-09-02
@@ -2209,7 +2363,6 @@ broken-packages:
   - hask # failure in job https://hydra.nixos.org/build/233215974 at 2023-09-02
   - haskheap # failure in job https://hydra.nixos.org/build/233231657 at 2023-09-02
   - haskhol-core # failure in job https://hydra.nixos.org/build/233232550 at 2023-09-02
-  - haskintex # failure in job https://hydra.nixos.org/build/233238166 at 2023-09-02
   - haskmon # failure in job https://hydra.nixos.org/build/233228390 at 2023-09-02
   - haskoin # failure in job https://hydra.nixos.org/build/233201668 at 2023-09-02
   - haskoin-store # failure in job https://hydra.nixos.org/build/238048371 at 2023-10-21
@@ -2229,6 +2382,7 @@ broken-packages:
   - hasql-backend # failure in job https://hydra.nixos.org/build/233255310 at 2023-09-02
   - hasql-class # failure in job https://hydra.nixos.org/build/233191053 at 2023-09-02
   - hasql-cursor-transaction # failure in job https://hydra.nixos.org/build/233240886 at 2023-09-02
+  - hasql-effectful # failure in job https://hydra.nixos.org/build/252721674 at 2024-03-16
   - hasql-explain-tests # failure in job https://hydra.nixos.org/build/233247034 at 2023-09-02
   - hasql-generic # failure in job https://hydra.nixos.org/build/233204654 at 2023-09-02
   - hasql-resource-pool # failure in job https://hydra.nixos.org/build/233217667 at 2023-09-02
@@ -2299,20 +2453,23 @@ broken-packages:
   - heckle # failure in job https://hydra.nixos.org/build/233228954 at 2023-09-02
   - heddit # failure in job https://hydra.nixos.org/build/233229058 at 2023-09-02
   - hedgehog-checkers # failure in job https://hydra.nixos.org/build/233229405 at 2023-09-02
+  - hedgehog-fakedata # failure in job https://hydra.nixos.org/build/252721345 at 2024-03-16
   - hedgehog-generic # failure in job https://hydra.nixos.org/build/233204695 at 2023-09-02
   - hedgehog-gen # failure in updateAutotoolsGnuConfigScriptsPhase in job https://hydra.nixos.org/build/237243271 at 2023-10-21
   - hedgehog-golden # failure in job https://hydra.nixos.org/build/233219619 at 2023-09-02
   - hedgehog-lens # failure in job https://hydra.nixos.org/build/233251825 at 2023-09-02
+  - hedgehog-optics # failure in job https://hydra.nixos.org/build/252734832 at 2024-03-16
   - hedgehog-servant # failure in job https://hydra.nixos.org/build/233258223 at 2023-09-02
   - hedis-config # failure in job https://hydra.nixos.org/build/233198326 at 2023-09-02
+  - hedis-monadic # failure in job https://hydra.nixos.org/build/252738915 at 2024-03-16
   - hedis-namespace # failure in job https://hydra.nixos.org/build/233256546 at 2023-09-02
   - hedis-simple # failure in job https://hydra.nixos.org/build/233231466 at 2023-09-02
   - hedis-tags # failure in job https://hydra.nixos.org/build/233246456 at 2023-09-02
   - hedra # failure in job https://hydra.nixos.org/build/233217122 at 2023-09-02
   - heidi # failure in job https://hydra.nixos.org/build/233199241 at 2023-09-02
   - hein # failure in job https://hydra.nixos.org/build/233241797 at 2023-09-02
+  - heist-async # failure in job https://hydra.nixos.org/build/252736889 at 2024-03-16
   - heist-emanote # failure in job https://hydra.nixos.org/build/233242732 at 2023-09-02
-  - heist # failure in job https://hydra.nixos.org/build/233217810 at 2023-09-02
   - helisp # failure in job https://hydra.nixos.org/build/233221194 at 2023-09-02
   - helix # failure in job https://hydra.nixos.org/build/233254335 at 2023-09-02
   - helm # failure in job https://hydra.nixos.org/build/233251620 at 2023-09-02
@@ -2344,6 +2501,7 @@ broken-packages:
   - hexstring # failure in job https://hydra.nixos.org/build/233193009 at 2023-09-02
   - hext # failure in job https://hydra.nixos.org/build/233221345 at 2023-09-02
   - hextra # failure in job https://hydra.nixos.org/build/233238071 at 2023-09-02
+  - hextream # failure in job https://hydra.nixos.org/build/252712270 at 2024-03-16
   - heyefi # failure in job https://hydra.nixos.org/build/233221712 at 2023-09-02
   - heyting-algebras # failure in job https://hydra.nixos.org/build/233259836 at 2023-09-02
   - hF2 # failure in job https://hydra.nixos.org/build/233208978 at 2023-09-02
@@ -2386,15 +2544,21 @@ broken-packages:
   - hierarchy # failure in job https://hydra.nixos.org/build/233203253 at 2023-09-02
   - hiernotify # failure in job https://hydra.nixos.org/build/233223185 at 2023-09-02
   - hifi # failure in job https://hydra.nixos.org/build/233192325 at 2023-09-02
+  - higgledy # failure in job https://hydra.nixos.org/build/252718176 at 2024-03-16
   - higher-leveldb # failure in job https://hydra.nixos.org/build/233237992 at 2023-09-02
   - higherorder # failure in job https://hydra.nixos.org/build/233201392 at 2023-09-02
   - highjson # failure in job https://hydra.nixos.org/build/233221080 at 2023-09-02
+  - highlighter # failure in job https://hydra.nixos.org/build/252735594 at 2024-03-16
+  - highlighting-kate # failure in job https://hydra.nixos.org/build/252739418 at 2024-03-16
   - highlight-versions # failure in job https://hydra.nixos.org/build/233240502 at 2023-09-02
+  - highs-lp # failure in job https://hydra.nixos.org/build/252734029 at 2024-03-16
   - highWaterMark # failure in job https://hydra.nixos.org/build/233244731 at 2023-09-02
   - hills # failure in job https://hydra.nixos.org/build/233215201 at 2023-09-02
   - himg # failure in job https://hydra.nixos.org/build/233213810 at 2023-09-02
   - hindley-milner # failure in job https://hydra.nixos.org/build/233195252 at 2023-09-02
   - hindley-milner-type-check # failure in job https://hydra.nixos.org/build/233216545 at 2023-09-02
+  - hinotify-bytestring # failure in job https://hydra.nixos.org/build/252716847 at 2024-03-16
+  - hinotify-conduit # failure in job https://hydra.nixos.org/build/252710760 at 2024-03-16
   - hinquire # failure in job https://hydra.nixos.org/build/233235549 at 2023-09-02
   - hinstaller # failure in job https://hydra.nixos.org/build/233244650 at 2023-09-02
   - hinterface # failure in job https://hydra.nixos.org/build/233250383 at 2023-09-02
@@ -2402,7 +2566,9 @@ broken-packages:
   - hint-server # failure in job https://hydra.nixos.org/build/233240346 at 2023-09-02
   - hipchat-hs # failure in job https://hydra.nixos.org/build/233198550 at 2023-09-02
   - Hipmunk # failure in job https://hydra.nixos.org/build/233259272 at 2023-09-02
+  - hips # failure in job https://hydra.nixos.org/build/252728413 at 2024-03-16
   - hipsql-api # failure in job https://hydra.nixos.org/build/233222961 at 2023-09-02
+  - hipsql-monad # failure in job https://hydra.nixos.org/build/252731820 at 2024-03-16
   - hircules # failure in job https://hydra.nixos.org/build/233221393 at 2023-09-02
   - Hish # failure in job https://hydra.nixos.org/build/233226443 at 2023-09-02
   - hissmetrics # failure in job https://hydra.nixos.org/build/233206890 at 2023-09-02
@@ -2420,6 +2586,7 @@ broken-packages:
   - hkd-lens # failure in job https://hydra.nixos.org/build/233242120 at 2023-09-02
   - hkd-records # failure in job https://hydra.nixos.org/build/233234491 at 2023-09-02
   - hkt # failure in job https://hydra.nixos.org/build/233244808 at 2023-09-02
+  - hlatex # failure in job https://hydra.nixos.org/build/252732433 at 2024-03-16
   - hlbfgsb # failure in job https://hydra.nixos.org/build/233260021 at 2023-09-02
   - hleap # failure in job https://hydra.nixos.org/build/233229908 at 2023-09-02
   - hledger-chart # failure in job https://hydra.nixos.org/build/233205387 at 2023-09-02
@@ -2438,6 +2605,7 @@ broken-packages:
   - hlogger # failure in job https://hydra.nixos.org/build/233197314 at 2023-09-02
   - HLogger # failure in job https://hydra.nixos.org/build/233247351 at 2023-09-02
   - hlongurl # failure in job https://hydra.nixos.org/build/233227204 at 2023-09-02
+  - hlrdb-core # failure in job https://hydra.nixos.org/build/252728012 at 2024-03-16
   - hls-brittany-plugin # failure in job https://hydra.nixos.org/build/233201998 at 2023-09-02
   - hls-haddock-comments-plugin # failure in job https://hydra.nixos.org/build/233233944 at 2023-09-02
   - hls-refine-imports-plugin # failure in job https://hydra.nixos.org/build/233211155 at 2023-09-02
@@ -2445,6 +2613,7 @@ broken-packages:
   - hls-tactics-plugin # failure in job https://hydra.nixos.org/build/233238907 at 2023-09-02
   - hlwm # failure in job https://hydra.nixos.org/build/233235119 at 2023-09-02
   - hly # failure in job https://hydra.nixos.org/build/233206910 at 2023-09-02
+  - HMarkov # failure in job https://hydra.nixos.org/build/252712651 at 2024-03-16
   - hmarkup # failure in job https://hydra.nixos.org/build/233234817 at 2023-09-02
   - hmatrix-banded # failure in job https://hydra.nixos.org/build/233244249 at 2023-09-02
   - hmatrix-mmap # failure in job https://hydra.nixos.org/build/233233046 at 2023-09-02
@@ -2463,6 +2632,7 @@ broken-packages:
   - hmp3 # failure in job https://hydra.nixos.org/build/233240864 at 2023-09-02
   - Hmpf # failure in job https://hydra.nixos.org/build/233212948 at 2023-09-02
   - hmumps # failure in job https://hydra.nixos.org/build/233209336 at 2023-09-02
+  - hnetcdf # failure in job https://hydra.nixos.org/build/252727915 at 2024-03-16
   - hnn # failure in job https://hydra.nixos.org/build/233253882 at 2023-09-02
   - hnock # failure in job https://hydra.nixos.org/build/233247419 at 2023-09-02
   - hnop # failure in job https://hydra.nixos.org/build/233214340 at 2023-09-02
@@ -2482,6 +2652,7 @@ broken-packages:
   - hogg # failure in job https://hydra.nixos.org/build/233257874 at 2023-09-02
   - hoggl # failure in job https://hydra.nixos.org/build/233194252 at 2023-09-02
   - hois # failure in job https://hydra.nixos.org/build/233250712 at 2023-09-02
+  - hoist-error # failure in job https://hydra.nixos.org/build/252731498 at 2024-03-16
   - hold-em # failure in job https://hydra.nixos.org/build/233236968 at 2023-09-02
   - hole # failure in job https://hydra.nixos.org/build/233226698 at 2023-09-02
   - holmes # failure in job https://hydra.nixos.org/build/233257690 at 2023-09-02
@@ -2501,6 +2672,7 @@ broken-packages:
   - hopencc # failure in job https://hydra.nixos.org/build/233192954 at 2023-09-02
   - hopencl # failure in job https://hydra.nixos.org/build/233249443 at 2023-09-02
   - HOpenCV # failure in job https://hydra.nixos.org/build/233255422 at 2023-09-02
+  - hopenpgp-tools # failure in job https://hydra.nixos.org/build/252729842 at 2024-03-16
   - hopfield # failure in job https://hydra.nixos.org/build/233598214 at 2023-09-02
   - hoppy-generator # failure in job https://hydra.nixos.org/build/233240608 at 2023-09-02
   - hops # failure in job https://hydra.nixos.org/build/233207172 at 2023-09-02
@@ -2549,6 +2721,7 @@ broken-packages:
   - hruby # failure in job https://hydra.nixos.org/build/233210664 at 2023-09-02
   - hs2bf # failure in job https://hydra.nixos.org/build/233251996 at 2023-09-02
   - hs2ps # failure in job https://hydra.nixos.org/build/233258362 at 2023-09-02
+  - hsakamai # failure in job https://hydra.nixos.org/build/252722933 at 2024-03-16
   - hsaml2 # failure in job https://hydra.nixos.org/build/233252618 at 2023-09-02
   - hsay # failure in job https://hydra.nixos.org/build/233218925 at 2023-09-02
   - hsbc # failure in job https://hydra.nixos.org/build/233206310 at 2023-09-02
@@ -2566,6 +2739,7 @@ broken-packages:
   - hscaffold # failure in job https://hydra.nixos.org/build/233207380 at 2023-09-02
   - hscamwire # failure in job https://hydra.nixos.org/build/233194329 at 2023-09-02
   - hs-carbon-examples # failure in job https://hydra.nixos.org/build/234440337 at 2023-09-13
+  - hs-carbon # failure in job https://hydra.nixos.org/build/252722544 at 2024-03-16
   - hscd # failure in job https://hydra.nixos.org/build/233195644 at 2023-09-02
   - hscdio # failure in job https://hydra.nixos.org/build/233195843 at 2023-09-02
   - hschema-aeson # failure in job https://hydra.nixos.org/build/233196871 at 2023-09-02
@@ -2593,6 +2767,7 @@ broken-packages:
   - hsgnutls-yj # failure in job https://hydra.nixos.org/build/233220680 at 2023-09-02
   - hsgsom # failure in job https://hydra.nixos.org/build/233192340 at 2023-09-02
   - HsHaruPDF # failure in job https://hydra.nixos.org/build/233220916 at 2023-09-02
+  - HSH # failure in job https://hydra.nixos.org/build/252713464 at 2024-03-16
   - HsHyperEstraier # failure in job https://hydra.nixos.org/build/233253787 at 2023-09-02
   - hsI2C # failure in job https://hydra.nixos.org/build/233247520 at 2023-09-02
   - hSimpleDB # failure in job https://hydra.nixos.org/build/233236736 at 2023-09-02
@@ -2624,7 +2799,6 @@ broken-packages:
   - hsp-cgi # failure in job https://hydra.nixos.org/build/233254927 at 2023-09-02
   - hspear # failure in job https://hydra.nixos.org/build/233192286 at 2023-09-02
   - hspec2 # failure in job https://hydra.nixos.org/build/233251459 at 2023-09-02
-  - hspec-api # failure in job https://hydra.nixos.org/build/233201204 at 2023-09-02
   - hspec-expectations-match # failure in job https://hydra.nixos.org/build/233210221 at 2023-09-02
   - hspec-experimental # failure in job https://hydra.nixos.org/build/233216119 at 2023-09-02
   - hspec-jenkins # failure in job https://hydra.nixos.org/build/233213269 at 2023-09-02
@@ -2632,9 +2806,11 @@ broken-packages:
   - hspec-monad-control # failure in job https://hydra.nixos.org/build/233223942 at 2023-09-02
   - hspec-need-env # failure in job https://hydra.nixos.org/build/233208310 at 2023-09-02
   - hspec-slow # failure in job https://hydra.nixos.org/build/233248782 at 2023-09-02
+  - hspec-snap # failure in job https://hydra.nixos.org/build/252725428 at 2024-03-16
   - hspec-structured-formatter # failure in job https://hydra.nixos.org/build/233199636 at 2023-09-02
   - hspec-tables # failure in job https://hydra.nixos.org/build/233221785 at 2023-09-02
   - HsPerl5 # failure in job https://hydra.nixos.org/build/233256038 at 2023-09-02
+  - hsp # failure in job https://hydra.nixos.org/build/252718609 at 2024-03-16
   - hs-pgms # failure in job https://hydra.nixos.org/build/233237693 at 2023-09-02
   - hspkcs11 # failure in job https://hydra.nixos.org/build/233225806 at 2023-09-02
   - hs-pkg-config # failure in job https://hydra.nixos.org/build/233240839 at 2023-09-02
@@ -2667,11 +2843,14 @@ broken-packages:
   - hsudoku # failure in job https://hydra.nixos.org/build/233214738 at 2023-09-02
   - hs-vcard # failure in job https://hydra.nixos.org/build/233228457 at 2023-09-02
   - hs-watchman # failure in job https://hydra.nixos.org/build/233217591 at 2023-09-02
+  - hsx2hs # failure in job https://hydra.nixos.org/build/252733316 at 2024-03-16
   - hsXenCtrl # failure in job https://hydra.nixos.org/build/233193837 at 2023-09-02
   - hsx # failure in job https://hydra.nixos.org/build/233211907 at 2023-09-02
   - hsyscall # failure in job https://hydra.nixos.org/build/233190699 at 2023-09-02
   - hsyslog-udp # failure in job https://hydra.nixos.org/build/233205524 at 2023-09-02
   - hszephyr # failure in job https://hydra.nixos.org/build/233204818 at 2023-09-02
+  - htags # failure in job https://hydra.nixos.org/build/252726582 at 2024-03-16
+  - htalkat # failure in job https://hydra.nixos.org/build/252714463 at 2024-03-16
   - hTalos # failure in job https://hydra.nixos.org/build/233246583 at 2023-09-02
   - htar # failure in job https://hydra.nixos.org/build/233218013 at 2023-09-02
   - htdp-image # failure in job https://hydra.nixos.org/build/234460283 at 2023-09-13
@@ -2713,11 +2892,14 @@ broken-packages:
   - http-rfc7807 # failure in job https://hydra.nixos.org/build/233191433 at 2023-09-02
   - http-server # failure in job https://hydra.nixos.org/build/233209925 at 2023-09-02
   - http-shed # failure in job https://hydra.nixos.org/build/233236325 at 2023-09-02
+  - http-slim # failure in job https://hydra.nixos.org/build/252734524 at 2024-03-16
   - httpstan # failure in job https://hydra.nixos.org/build/233202072 at 2023-09-02
+  - http-test # failure in job https://hydra.nixos.org/build/252738556 at 2024-03-16
   - http-wget # failure in job https://hydra.nixos.org/build/233236793 at 2023-09-02
   - htune # failure in job https://hydra.nixos.org/build/234447885 at 2023-09-13
   - htvm # failure in job https://hydra.nixos.org/build/233218993 at 2023-09-02
   - htzaar # failure in job https://hydra.nixos.org/build/233197602 at 2023-09-02
+  - hub # failure in job https://hydra.nixos.org/build/252715988 at 2024-03-16
   - huck # failure in job https://hydra.nixos.org/build/233235354 at 2023-09-02
   - HueAPI # failure in job https://hydra.nixos.org/build/233234528 at 2023-09-02
   - huff # failure in job https://hydra.nixos.org/build/233194394 at 2023-09-02
@@ -2734,6 +2916,7 @@ broken-packages:
   - hunit-rematch # failure in job https://hydra.nixos.org/build/233232138 at 2023-09-02
   - hup # failure in job https://hydra.nixos.org/build/233246919 at 2023-09-02
   - hurriyet # failure in job https://hydra.nixos.org/build/233200609 at 2023-09-02
+  - husk-scheme # failure in job https://hydra.nixos.org/build/252730154 at 2024-03-16
   - husky # failure in job https://hydra.nixos.org/build/233214877 at 2023-09-02
   - hutton # failure in job https://hydra.nixos.org/build/233211451 at 2023-09-02
   - huttons-razor # failure in job https://hydra.nixos.org/build/233224736 at 2023-09-02
@@ -2741,12 +2924,19 @@ broken-packages:
   - hwall-auth-iitk # failure in job https://hydra.nixos.org/build/233217629 at 2023-09-02
   - hw-aws-sqs-conduit # failure building library in job https://hydra.nixos.org/build/237235400 at 2023-10-21
   - hw-ci-assist # failure in job https://hydra.nixos.org/build/233207990 at 2023-09-02
+  - hw-conduit # failure in job https://hydra.nixos.org/build/252713114 at 2024-03-16
+  - hw-diagnostics # failure in job https://hydra.nixos.org/build/252734742 at 2024-03-16
   - hw-dsv # failure in job https://hydra.nixos.org/build/233252280 at 2023-09-02
   - hw-dump # failure in job https://hydra.nixos.org/build/233208818 at 2023-09-02
   - hweblib # failure in job https://hydra.nixos.org/build/233250183 at 2023-09-02
+  - hw-fingertree-strict # failure in job https://hydra.nixos.org/build/252718249 at 2024-03-16
   - hwhile # failure in job https://hydra.nixos.org/build/233206114 at 2023-09-02
   - hw-json-simd # failure in job https://hydra.nixos.org/build/233240490 at 2023-09-02
+  - hw-kafka-conduit # failure in job https://hydra.nixos.org/build/252714760 at 2024-03-16
+  - hw-lazy # failure in job https://hydra.nixos.org/build/252722974 at 2024-03-16
+  - hw-mquery # failure in job https://hydra.nixos.org/build/252719440 at 2024-03-16
   - hworker # failure in job https://hydra.nixos.org/build/233220098 at 2023-09-02
+  - hw-packed-vector # failure in job https://hydra.nixos.org/build/252735800 at 2024-03-16
   - hw-playground-linear # failure in job https://hydra.nixos.org/build/233208994 at 2023-09-02
   - hw-prim-bits # failure in job https://hydra.nixos.org/build/233246627 at 2023-09-02
   - hw-simd-cli # failure in job https://hydra.nixos.org/build/233223251 at 2023-09-02
@@ -2772,6 +2962,7 @@ broken-packages:
   - hyperion # failure in job https://hydra.nixos.org/build/233218339 at 2023-09-02
   - hyperloglogplus # failure in job https://hydra.nixos.org/build/233259772 at 2023-09-02
   - hyperscript # failure in job https://hydra.nixos.org/build/233222333 at 2023-09-02
+  - hypertypes # failure in job https://hydra.nixos.org/build/252735804 at 2024-03-16
   - hypher # failure in job https://hydra.nixos.org/build/233233236 at 2023-09-02
   - hyraxAbif # failure in job https://hydra.nixos.org/build/233195246 at 2023-09-02
   - hzulip # failure in job https://hydra.nixos.org/build/233191086 at 2023-09-02
@@ -2782,6 +2973,7 @@ broken-packages:
   - iap-verifier # failure in job https://hydra.nixos.org/build/233202491 at 2023-09-02
   - iban # failure in job https://hydra.nixos.org/build/233236424 at 2023-09-02
   - ib-api # failure in job https://hydra.nixos.org/build/233223054 at 2023-09-02
+  - iCalendar # failure in job https://hydra.nixos.org/build/252886686 at 2024-03-16
   - ical # failure in job https://hydra.nixos.org/build/233200229 at 2023-09-02
   - icepeak # failure in job https://hydra.nixos.org/build/233242326 at 2023-09-02
   - icfpc2020-galaxy # failure in job https://hydra.nixos.org/build/233208746 at 2023-09-02
@@ -2803,6 +2995,7 @@ broken-packages:
   - ignore # failure in job https://hydra.nixos.org/build/233238874 at 2023-09-02
   - igraph # failure in job https://hydra.nixos.org/build/233192875 at 2023-09-02
   - ihaskell-charts # failure in job https://hydra.nixos.org/build/233193328 at 2023-09-02
+  - ihaskell-diagrams # failure in job https://hydra.nixos.org/build/252723470 at 2024-03-16
   - ihaskell-gnuplot # failure in job https://hydra.nixos.org/build/233223675 at 2023-09-02
   - ihaskell-graphviz # failure in job https://hydra.nixos.org/build/233200671 at 2023-09-02
   - ihaskell-hvega # failure in job https://hydra.nixos.org/build/241514418 at 2023-11-20
@@ -2820,6 +3013,7 @@ broken-packages:
   - immortal-worker # failure in job https://hydra.nixos.org/build/233246961 at 2023-09-02
   - ImperativeHaskell # failure in job https://hydra.nixos.org/build/233240920 at 2023-09-02
   - impl # failure in job https://hydra.nixos.org/build/233203425 at 2023-09-02
+  - implicit-hie-cradle # failure in job https://hydra.nixos.org/build/252710698 at 2024-03-16
   - implicit-logging # failure in job https://hydra.nixos.org/build/233194358 at 2023-09-02
   - implicit-params # failure in job https://hydra.nixos.org/build/233201527 at 2023-09-02
   - imports # failure in job https://hydra.nixos.org/build/233227469 at 2023-09-02
@@ -2827,10 +3021,12 @@ broken-packages:
   - imprint # failure in job https://hydra.nixos.org/build/233246314 at 2023-09-02
   - impure-containers # failure in job https://hydra.nixos.org/build/233251408 at 2023-09-02
   - inchworm # failure in job https://hydra.nixos.org/build/233219017 at 2023-09-02
+  - incremental-sat-solver # failure in job https://hydra.nixos.org/build/252738274 at 2024-03-16
   - indentation-core # failure in job https://hydra.nixos.org/build/233257946 at 2023-09-02
   - index-core # failure in job https://hydra.nixos.org/build/233255196 at 2023-09-02
   - indexed-containers # failure in job https://hydra.nixos.org/build/233236806 at 2023-09-02
   - indexed-do-notation # failure in job https://hydra.nixos.org/build/233259970 at 2023-09-02
+  - indexed-extras # failure in job https://hydra.nixos.org/build/252739554 at 2024-03-16
   - indextype # failure in job https://hydra.nixos.org/build/233230257 at 2023-09-02
   - indices # failure in job https://hydra.nixos.org/build/233198223 at 2023-09-02
   - infernal # failure in job https://hydra.nixos.org/build/233228571 at 2023-09-02
@@ -2847,12 +3043,15 @@ broken-packages:
   - inj-base # failure in job https://hydra.nixos.org/build/233198720 at 2023-09-02
   - inject-function # failure in job https://hydra.nixos.org/build/233252462 at 2023-09-02
   - injections # failure in job https://hydra.nixos.org/build/233207796 at 2023-09-02
+  - inline-asm # failure in job https://hydra.nixos.org/build/252725932 at 2024-03-16
   - inline-c-cuda # failure in job https://hydra.nixos.org/build/237234701 at 2023-10-21
   - inline-c-objc # failure in job https://hydra.nixos.org/build/233223704 at 2023-09-02
   - inline-r # failure in job https://hydra.nixos.org/build/233210520 at 2023-09-02
+  - in-other-words # failure in job https://hydra.nixos.org/build/252711798 at 2024-03-16
   - in-other-words-plugin # failure in job https://hydra.nixos.org/build/233202396 at 2023-09-02
   - inserts # failure in job https://hydra.nixos.org/build/233198758 at 2023-09-02
   - instana-haskell-trace-sdk # failure in job https://hydra.nixos.org/build/233211339 at 2023-09-02
+  - instance-control # failure in job https://hydra.nixos.org/build/252726549 at 2024-03-16
   - instance-map # failure in job https://hydra.nixos.org/build/233209014 at 2023-09-02
   - instant-generics # failure in job https://hydra.nixos.org/build/233209385 at 2023-09-02
   - instapaper-sender # failure in job https://hydra.nixos.org/build/233225390 at 2023-09-02
@@ -2860,6 +3059,7 @@ broken-packages:
   - intcode # failure in job https://hydra.nixos.org/build/233198813 at 2023-09-02
   - integer-pure # failure in job https://hydra.nixos.org/build/233216037 at 2023-09-02
   - integer-simple # failure in job https://hydra.nixos.org/build/233192893 at 2023-09-02
+  - integer-types # failure in job https://hydra.nixos.org/build/252734448 at 2024-03-16
   - intensional-datatys # failure in job https://hydra.nixos.org/build/233218337 at 2023-09-02
   - interact # failure in job https://hydra.nixos.org/build/233228146 at 2023-09-02
   - interactive-plot # failure in job https://hydra.nixos.org/build/233212280 at 2023-09-02
@@ -2873,14 +3073,17 @@ broken-packages:
   - interpolator # failure in job https://hydra.nixos.org/build/233218382 at 2023-09-02
   - interpol # failure in job https://hydra.nixos.org/build/233218430 at 2023-09-02
   - interruptible # failure in job https://hydra.nixos.org/build/233209873 at 2023-09-02
+  - interspersed # failure in job https://hydra.nixos.org/build/252722645 at 2024-03-16
   - interval-algebra # failure in job https://hydra.nixos.org/build/233208487 at 2023-09-02
   - interval # failure in job https://hydra.nixos.org/build/233239434 at 2023-09-02
+  - interval-functor # failure in job https://hydra.nixos.org/build/252729855 at 2024-03-16
   - interval-patterns # failure in job https://hydra.nixos.org/build/239259401 at 2023-11-10
   - interval-tree-clock # failure in job https://hydra.nixos.org/build/233234316 at 2023-09-02
   - IntFormats # failure in job https://hydra.nixos.org/build/233195190 at 2023-09-02
   - int-interval-map # failure in job https://hydra.nixos.org/build/233244556 at 2023-09-02
   - int-like # failure in job https://hydra.nixos.org/build/233245537 at 2023-09-02
   - int-multimap # failure in job https://hydra.nixos.org/build/233210427 at 2023-09-02
+  - intricacy # failure in job https://hydra.nixos.org/build/252711846 at 2024-03-16
   - intrinsic-superclasses # failure in job https://hydra.nixos.org/build/233228909 at 2023-09-02
   - introduction # failure in job https://hydra.nixos.org/build/233223585 at 2023-09-02
   - intro # failure in job https://hydra.nixos.org/build/233192297 at 2023-09-02
@@ -2896,7 +3099,7 @@ broken-packages:
   - iotransaction # failure in job https://hydra.nixos.org/build/233226259 at 2023-09-02
   - ip2location # failure in job https://hydra.nixos.org/build/233208648 at 2023-09-02
   - ip2proxy # failure in job https://hydra.nixos.org/build/233218808 at 2023-09-02
-  - ipa # failure in job https://hydra.nixos.org/build/233242228 at 2023-09-02
+  - ipcvar # failure in job https://hydra.nixos.org/build/252724626 at 2024-03-16
   - ipfs # failure in job https://hydra.nixos.org/build/233598054 at 2023-09-02
   - ipopt-hs # failure in job https://hydra.nixos.org/build/233210102 at 2023-09-02
   - ip-quoter # failure in job https://hydra.nixos.org/build/233234581 at 2023-09-02
@@ -2916,9 +3119,11 @@ broken-packages:
   - IsNull # failure in job https://hydra.nixos.org/build/233233011 at 2023-09-02
   - iso8601-duration # failure in job https://hydra.nixos.org/build/233190968 at 2023-09-02
   - isobmff # failure in job https://hydra.nixos.org/build/233237273 at 2023-09-02
+  - iso-deriving # failure in job https://hydra.nixos.org/build/252738238 at 2024-03-16
   - isotope # failure in job https://hydra.nixos.org/build/233204650 at 2023-09-02
   - itcli # failure in job https://hydra.nixos.org/build/233201572 at 2023-09-02
   - itemfield # failure in job https://hydra.nixos.org/build/233203571 at 2023-09-02
+  - iterable # failure in job https://hydra.nixos.org/build/252729530 at 2024-03-16
   - iteratee # failure in job https://hydra.nixos.org/build/233241290 at 2023-09-02
   - iterative-forward-search # failure in job https://hydra.nixos.org/build/233256255 at 2023-09-02
   - iterIO # failure in job https://hydra.nixos.org/build/233199156 at 2023-09-02
@@ -2952,14 +3157,18 @@ broken-packages:
   - jdi # failure in job https://hydra.nixos.org/build/233238540 at 2023-09-02
   - jenga # failure in job https://hydra.nixos.org/build/233191848 at 2023-09-02
   - jenkinsPlugins2nix # failure in job https://hydra.nixos.org/build/233259520 at 2023-09-02
+  - jet # failure in job https://hydra.nixos.org/build/252729255 at 2024-03-16
   - jet-stream # failure in job https://hydra.nixos.org/build/233242983 at 2023-09-02
+  - j # failure in job https://hydra.nixos.org/build/252716408 at 2024-03-16
   - Jikka # failure in job https://hydra.nixos.org/build/233204253 at 2023-09-02
   - jinquantities # failure in job https://hydra.nixos.org/build/233205834 at 2023-09-02
+  - jl # failure in job https://hydra.nixos.org/build/252726423 at 2024-03-16
   - jmacro-rpc # failure in job https://hydra.nixos.org/build/233236314 at 2023-09-02
   - jml-web-service # failure in job https://hydra.nixos.org/build/233225466 at 2023-09-02
   - jni # failure in job https://hydra.nixos.org/build/233201106 at 2023-09-02
   - join-api # failure in job https://hydra.nixos.org/build/233195265 at 2023-09-02
   - joinlist # failure in job https://hydra.nixos.org/build/233248471 at 2023-09-02
+  - joint # failure in job https://hydra.nixos.org/build/252724466 at 2024-03-16
   - jonathanscard # failure in job https://hydra.nixos.org/build/233234239 at 2023-09-02
   - jordan # failure in job https://hydra.nixos.org/build/233224727 at 2023-09-02
   - jort # failure in job https://hydra.nixos.org/build/233195250 at 2023-09-02
@@ -2984,6 +3193,7 @@ broken-packages:
   - json-fu # failure in job https://hydra.nixos.org/build/233221469 at 2023-09-02
   - json-litobj # failure in job https://hydra.nixos.org/build/233234388 at 2023-09-02
   - jsonlogic-aeson # failure in job https://hydra.nixos.org/build/233246828 at 2023-09-02
+  - jsonlogic # failure in job https://hydra.nixos.org/build/252726075 at 2024-03-16
   - jsonnet # failure in job https://hydra.nixos.org/build/233254884 at 2023-09-02
   - json-pointer # failure in job https://hydra.nixos.org/build/233229617 at 2023-09-02
   - json-pointy # failure in job https://hydra.nixos.org/build/233255533 at 2023-09-02
@@ -2999,6 +3209,7 @@ broken-packages:
   - json-spec # failure in job https://hydra.nixos.org/build/236684808 at 2023-10-04
   - jsonsql # failure in job https://hydra.nixos.org/build/233255704 at 2023-09-02
   - json-syntax # failure in job https://hydra.nixos.org/build/233250639 at 2023-09-02
+  - json-to-haskell # failure in job https://hydra.nixos.org/build/252711573 at 2024-03-16
   - json-tools # failure in job https://hydra.nixos.org/build/233247019 at 2023-09-02
   - json-tracer # failure in job https://hydra.nixos.org/build/233196632 at 2023-09-02
   - jsontsv # failure in job https://hydra.nixos.org/build/233234129 at 2023-09-02
@@ -3037,6 +3248,7 @@ broken-packages:
   - katip-syslog # failure in job https://hydra.nixos.org/build/233238787 at 2023-09-02
   - katt # failure in job https://hydra.nixos.org/build/233241058 at 2023-09-02
   - katydid # failure in job https://hydra.nixos.org/build/233227524 at 2023-09-02
+  - kawa # failure in job https://hydra.nixos.org/build/252728326 at 2024-03-16
   - kawaii # failure in job https://hydra.nixos.org/build/233205134 at 2023-09-02
   - Kawaii-Parser # failure in job https://hydra.nixos.org/build/233222574 at 2023-09-02
   - kawhi # failure in job https://hydra.nixos.org/build/233193086 at 2023-09-02
@@ -3054,12 +3266,14 @@ broken-packages:
   - kewar # failure in job https://hydra.nixos.org/build/233237574 at 2023-09-02
   - keycloak-hs # failure in job https://hydra.nixos.org/build/233193019 at 2023-09-02
   - keyed # failure in job https://hydra.nixos.org/build/233251186 at 2023-09-02
+  - key # failure in job https://hydra.nixos.org/build/252710595 at 2024-03-16
   - khph # failure in job https://hydra.nixos.org/build/233258109 at 2023-09-02
   - kickass-torrents-dump-parser # failure in job https://hydra.nixos.org/build/233210355 at 2023-09-02
   - kickchan # failure in job https://hydra.nixos.org/build/233216091 at 2023-09-02
   - kind-integer # failure in job https://hydra.nixos.org/build/233250066 at 2023-09-02
   - kleene-list # failure in job https://hydra.nixos.org/build/233237651 at 2023-09-02
   - kmn-programming # failure in job https://hydra.nixos.org/build/233258328 at 2023-09-02
+  - kmonad # failure in job https://hydra.nixos.org/build/252717089 at 2024-03-16
   - kmp-dfa # failure in job https://hydra.nixos.org/build/233237266 at 2023-09-02
   - knots # failure in job https://hydra.nixos.org/build/233209153 at 2023-09-02
   - koellner-phonetic # failure in job https://hydra.nixos.org/build/233217750 at 2023-09-02
@@ -3067,9 +3281,11 @@ broken-packages:
   - Konf # failure in job https://hydra.nixos.org/build/233244880 at 2023-09-02
   - konnakol # failure in job https://hydra.nixos.org/build/233221792 at 2023-09-02
   - kontra-config # failure in job https://hydra.nixos.org/build/233193800 at 2023-09-02
+  - kontrakcja-templates # failure in job https://hydra.nixos.org/build/252739334 at 2024-03-16
   - koofr-client # failure in job https://hydra.nixos.org/build/233255749 at 2023-09-02
   - korea-holidays # failure in job https://hydra.nixos.org/build/233222677 at 2023-09-02
   - kraken # failure in job https://hydra.nixos.org/build/233202384 at 2023-09-02
+  - krank # failure in job https://hydra.nixos.org/build/252715958 at 2024-03-16
   - krapsh # failure in job https://hydra.nixos.org/build/233219887 at 2023-09-02
   - Kriens # failure in job https://hydra.nixos.org/build/233251673 at 2023-09-02
   - krpc # failure in job https://hydra.nixos.org/build/233231587 at 2023-09-02
@@ -3097,6 +3313,7 @@ broken-packages:
   - lambda-cube # failure in job https://hydra.nixos.org/build/233226812 at 2023-09-02
   - lambdacube-ir # failure in job https://hydra.nixos.org/build/233210019 at 2023-09-02
   - LambdaDesigner # failure in job https://hydra.nixos.org/build/233216338 at 2023-09-02
+  - lambda # failure in job https://hydra.nixos.org/build/252740018 at 2024-03-16
   - Lambdajudge # failure in job https://hydra.nixos.org/build/233227016 at 2023-09-02
   - LambdaNet # failure in job https://hydra.nixos.org/build/233197999 at 2023-09-02
   - lambda-sampler # failure in job https://hydra.nixos.org/build/233205734 at 2023-09-02
@@ -3108,12 +3325,14 @@ broken-packages:
   - lame # failure in job https://hydra.nixos.org/build/233250932 at 2023-09-02
   - laminar # failure in job https://hydra.nixos.org/build/241426331 at 2023-11-19
   - language-asn # failure in job https://hydra.nixos.org/build/233227929 at 2023-09-02
+  - language-bash # failure in job https://hydra.nixos.org/build/252732929 at 2024-03-16
   - language-c-comments # failure in job https://hydra.nixos.org/build/233234112 at 2023-09-02
   - language-c-inline # failure in job https://hydra.nixos.org/build/233245990 at 2023-09-02
   - language-conf # failure in job https://hydra.nixos.org/build/233208178 at 2023-09-02
   - language-csharp # failure in job https://hydra.nixos.org/build/233240911 at 2023-09-02
   - language-dart # failure in job https://hydra.nixos.org/build/233220340 at 2023-09-02
   - language-dockerfile # failure in job https://hydra.nixos.org/build/233197924 at 2023-09-02
+  - language-ecmascript # failure in job https://hydra.nixos.org/build/252712957 at 2024-03-16
   - language-elm # failure in job https://hydra.nixos.org/build/233214012 at 2023-09-02
   - language-fortran # failure in job https://hydra.nixos.org/build/233205480 at 2023-09-02
   - language-gcl # failure in job https://hydra.nixos.org/build/233218957 at 2023-09-02
@@ -3135,6 +3354,7 @@ broken-packages:
   - language-sh # failure in job https://hydra.nixos.org/build/233249709 at 2023-09-02
   - language-sqlite # failure in job https://hydra.nixos.org/build/233248845 at 2023-09-02
   - language-sygus # failure in job https://hydra.nixos.org/build/233192608 at 2023-09-02
+  - language-thrift # failure in job https://hydra.nixos.org/build/252721081 at 2024-03-16
   - language-typescript # failure in job https://hydra.nixos.org/build/233247703 at 2023-09-02
   - language-webidl # failure in job https://hydra.nixos.org/build/233194656 at 2023-09-02
   - laop # failure in job https://hydra.nixos.org/build/233204106 at 2023-09-02
@@ -3147,6 +3367,7 @@ broken-packages:
   - LATS # failure in job https://hydra.nixos.org/build/233248029 at 2023-09-02
   - launchdarkly-server-sdk # failure in job https://hydra.nixos.org/build/233190791 at 2023-09-02
   - launchpad-control # failure in job https://hydra.nixos.org/build/233219502 at 2023-09-02
+  - lawful-classes-types # failure in job https://hydra.nixos.org/build/252727845 at 2024-03-16
   - lawless-concurrent-machines # failure in job https://hydra.nixos.org/build/233225327 at 2023-09-02
   - layers # failure in job https://hydra.nixos.org/build/233196766 at 2023-09-02
   - layout-bootstrap # failure in job https://hydra.nixos.org/build/233223699 at 2023-09-02
@@ -3154,7 +3375,9 @@ broken-packages:
   - layout-rules # failure in job https://hydra.nixos.org/build/233250716 at 2023-09-02
   - lazify # failure in job https://hydra.nixos.org/build/233203655 at 2023-09-02
   - lazyarray # failure in job https://hydra.nixos.org/build/233192440 at 2023-09-02
+  - lazy-async # failure in job https://hydra.nixos.org/build/252730698 at 2024-03-16
   - lazyboy # failure in job https://hydra.nixos.org/build/233201158 at 2023-09-02
+  - lazy-bracket # failure in job https://hydra.nixos.org/build/252727186 at 2024-03-16
   - lazy-hash # failure in job https://hydra.nixos.org/build/233211405 at 2023-09-02
   - lazy-priority-queue # failure in job https://hydra.nixos.org/build/233211457 at 2023-09-02
   - lazyset # failure in job https://hydra.nixos.org/build/233248383 at 2023-09-02
@@ -3168,6 +3391,7 @@ broken-packages:
   - learn # failure in job https://hydra.nixos.org/build/233247385 at 2023-09-02
   - Learning # failure in job https://hydra.nixos.org/build/233237137 at 2023-09-02
   - learn-physics-examples # failure in job https://hydra.nixos.org/build/234444204 at 2023-09-13
+  - leb128 # failure in job https://hydra.nixos.org/build/252731801 at 2024-03-16
   - leetify # failure in job https://hydra.nixos.org/build/233200752 at 2023-09-02
   - lendingclub # failure in job https://hydra.nixos.org/build/233239123 at 2023-09-02
   - lens-datetime # failure in job https://hydra.nixos.org/build/233252409 at 2023-09-02
@@ -3178,6 +3402,7 @@ broken-packages:
   - lens-process # failure in job https://hydra.nixos.org/build/233242948 at 2023-09-02
   - lensref # failure in job https://hydra.nixos.org/build/233205479 at 2023-09-02
   - lens-simple # failure in job https://hydra.nixos.org/build/233245452 at 2023-09-02
+  - lens-sop # failure in job https://hydra.nixos.org/build/252721754 at 2024-03-16
   - lens-tell # failure in job https://hydra.nixos.org/build/233234619 at 2023-09-02
   - lens-text-encoding # failure in job https://hydra.nixos.org/build/233222713 at 2023-09-02
   - lens-th-rewrite # failure in job https://hydra.nixos.org/build/233201025 at 2023-09-02
@@ -3189,6 +3414,7 @@ broken-packages:
   - lenz-template # failure in job https://hydra.nixos.org/build/233206822 at 2023-09-02
   - less-arbitrary # failure in job https://hydra.nixos.org/build/233231412 at 2023-09-02
   - Level0 # failure in job https://hydra.nixos.org/build/233220758 at 2023-09-02
+  - leveldb-haskell # failure in job https://hydra.nixos.org/build/252739424 at 2024-03-16
   - level-monad # failure in job https://hydra.nixos.org/build/233257036 at 2023-09-02
   - levmar # failure in job https://hydra.nixos.org/build/233254731 at 2023-09-02
   - lfst # failure in job https://hydra.nixos.org/build/233240622 at 2023-09-02
@@ -3198,6 +3424,7 @@ broken-packages:
   - LibClang # failure in job https://hydra.nixos.org/build/233194732 at 2023-09-02
   - libexpect # failure in job https://hydra.nixos.org/build/233226545 at 2023-09-02
   - libGenI # failure in job https://hydra.nixos.org/build/233240857 at 2023-09-02
+  - libgit # failure in job https://hydra.nixos.org/build/252729283 at 2024-03-16
   - libhbb # failure in job https://hydra.nixos.org/build/233232186 at 2023-09-02
   - libinfluxdb # failure in job https://hydra.nixos.org/build/233199457 at 2023-09-02
   - libjenkins # failure in job https://hydra.nixos.org/build/233198788 at 2023-09-02
@@ -3220,6 +3447,7 @@ broken-packages:
   - libxslt # failure in job https://hydra.nixos.org/build/233248464 at 2023-09-02
   - libyaml-streamly # failure in job https://hydra.nixos.org/build/233203611 at 2023-09-02
   - libzfs # failure in job https://hydra.nixos.org/build/233662945 at 2023-09-02
+  - LibZip # failure in job https://hydra.nixos.org/build/252734735 at 2024-03-16
   - licensor # failure in job https://hydra.nixos.org/build/233248660 at 2023-09-02
   - lie # failure in job https://hydra.nixos.org/build/233228953 at 2023-09-02
   - life-sync # failure in job https://hydra.nixos.org/build/233241402 at 2023-09-02
@@ -3256,10 +3484,12 @@ broken-packages:
   - linux-blkid # failure in job https://hydra.nixos.org/build/233220151 at 2023-09-02
   - linux-cgroup # failure in job https://hydra.nixos.org/build/233224448 at 2023-09-02
   - linux-evdev # failure in job https://hydra.nixos.org/build/233259196 at 2023-09-02
+  - linux-framebuffer # failure in job https://hydra.nixos.org/build/252721503 at 2024-03-16
   - linux-kmod # failure in job https://hydra.nixos.org/build/233205933 at 2023-09-02
   - linux-perf # failure in job https://hydra.nixos.org/build/233193731 at 2023-09-02
   - linux-xattr # failure in job https://hydra.nixos.org/build/233226493 at 2023-09-02
   - linx-gateway # failure in job https://hydra.nixos.org/build/233220744 at 2023-09-02
+  - lio-fs # failure in job https://hydra.nixos.org/build/252736678 at 2024-03-16
   - lio-simple # failure in job https://hydra.nixos.org/build/233200711 at 2023-09-02
   - lipsum-gen # failure in job https://hydra.nixos.org/build/233233734 at 2023-09-02
   - liquid # failure in job https://hydra.nixos.org/build/233255883 at 2023-09-02
@@ -3271,6 +3501,7 @@ broken-packages:
   - list-mux # failure in job https://hydra.nixos.org/build/233206407 at 2023-09-02
   - list-prompt # failure in job https://hydra.nixos.org/build/233235855 at 2023-09-02
   - list-shuffle # failure in job https://hydra.nixos.org/build/241416196 at 2023-11-19
+  - list-singleton # failure in job https://hydra.nixos.org/build/252723010 at 2024-03-16
   - list-t-http-client # failure in job https://hydra.nixos.org/build/233239262 at 2023-09-02
   - list-t-libcurl # failure in job https://hydra.nixos.org/build/233237389 at 2023-09-02
   - list-tries # failure in job https://hydra.nixos.org/build/233250041 at 2023-09-02
@@ -3285,6 +3516,7 @@ broken-packages:
   - llvm-base # failure in job https://hydra.nixos.org/build/233244366 at 2023-09-02
   - llvm-general-pure # failure in job https://hydra.nixos.org/build/233246430 at 2023-09-02
   - llvm-hs # failure in job https://hydra.nixos.org/build/233205149 at 2023-09-02
+  - llvm-hs-pure # failure in job https://hydra.nixos.org/build/252721738 at 2024-03-16
   - llvm-ht # failure in job https://hydra.nixos.org/build/233203770 at 2023-09-02
   - llvm-party # failure in job https://hydra.nixos.org/build/233221113 at 2023-09-02
   - llvm-pretty # failure in job https://hydra.nixos.org/build/233206445 at 2023-09-02
@@ -3308,6 +3540,7 @@ broken-packages:
   - logging-effect-extra-handler # failure in job https://hydra.nixos.org/build/233232054 at 2023-09-02
   - Logic # failure in job https://hydra.nixos.org/build/233206217 at 2023-09-02
   - logicst # failure in job https://hydra.nixos.org/build/233250253 at 2023-09-02
+  - logic-TPTP # failure in job https://hydra.nixos.org/build/252729601 at 2024-03-16
   - logict-sequence # failure in job https://hydra.nixos.org/build/233224789 at 2023-09-02
   - logplex-parse # failure in job https://hydra.nixos.org/build/233248727 at 2023-09-02
   - log-warper # failure in job https://hydra.nixos.org/build/233220417 at 2023-09-02
@@ -3337,6 +3570,7 @@ broken-packages:
   - lsfrom # failure in job https://hydra.nixos.org/build/233211705 at 2023-09-02
   - lsh # failure in job https://hydra.nixos.org/build/233256686 at 2023-09-02
   - lsp-client # failure in job https://hydra.nixos.org/build/233219871 at 2023-09-02
+  - lti13 # failure in job https://hydra.nixos.org/build/252715722 at 2024-03-16
   - ltiv1p1 # failure in job https://hydra.nixos.org/build/233200883 at 2023-09-02
   - ltk # failure in job https://hydra.nixos.org/build/233244152 at 2023-09-02
   - LTS # failure in job https://hydra.nixos.org/build/233206427 at 2023-09-02
@@ -3346,6 +3580,7 @@ broken-packages:
   - lucid-alpine # failure in job https://hydra.nixos.org/build/233199500 at 2023-09-02
   - lucid-aria # failure in job https://hydra.nixos.org/build/233231489 at 2023-09-02
   - lucid-hyperscript # failure in job https://hydra.nixos.org/build/233191616 at 2023-09-02
+  - lucid-svg # failure in job https://hydra.nixos.org/build/252722737 at 2024-03-16
   - luhn # failure in job https://hydra.nixos.org/build/233237661 at 2023-09-02
   - luis-client # failure in job https://hydra.nixos.org/build/233244540 at 2023-09-02
   - luka # failure in job https://hydra.nixos.org/build/233235403 at 2023-09-02
@@ -3452,6 +3687,7 @@ broken-packages:
   - meep # failure in job https://hydra.nixos.org/build/233193144 at 2023-09-02
   - megalisp # failure in job https://hydra.nixos.org/build/233234992 at 2023-09-02
   - megastore # failure in job https://hydra.nixos.org/build/233222876 at 2023-09-02
+  - melf # failure in job https://hydra.nixos.org/build/252723248 at 2024-03-16
   - mellon-core # failure in job https://hydra.nixos.org/build/233221666 at 2023-09-02
   - melody # failure in job https://hydra.nixos.org/build/233223241 at 2023-09-02
   - membrain # failure in job https://hydra.nixos.org/build/233248480 at 2023-09-02
@@ -3480,6 +3716,7 @@ broken-packages:
   - method # failure in job https://hydra.nixos.org/build/233230721 at 2023-09-02
   - metric # failure in job https://hydra.nixos.org/build/233224295 at 2023-09-02
   - metricsd-client # failure in job https://hydra.nixos.org/build/233217951 at 2023-09-02
+  - metro-transport-tls # failure in job https://hydra.nixos.org/build/252717619 at 2024-03-16
   - mezzo # failure in job https://hydra.nixos.org/build/233223341 at 2023-09-02
   - mezzolens # failure in job https://hydra.nixos.org/build/233248307 at 2023-09-02
   - mgeneric # failure in job https://hydra.nixos.org/build/233197809 at 2023-09-02
@@ -3490,6 +3727,7 @@ broken-packages:
   - microgroove # failure in job https://hydra.nixos.org/build/233196933 at 2023-09-02
   - microlens-each # failure in job https://hydra.nixos.org/build/233253621 at 2023-09-02
   - microlens-process # failure in job https://hydra.nixos.org/build/233190805 at 2023-09-02
+  - microlens-pro # failure in job https://hydra.nixos.org/build/252733422 at 2024-03-16
   - micrologger # failure in job https://hydra.nixos.org/build/233196212 at 2023-09-02
   - micro-recursion-schemes # failure in job https://hydra.nixos.org/build/233214118 at 2023-09-02
   - microsoft-translator # failure in job https://hydra.nixos.org/build/233235928 at 2023-09-02
@@ -3505,7 +3743,9 @@ broken-packages:
   - miku # failure in job https://hydra.nixos.org/build/233212186 at 2023-09-02
   - milena # failure in job https://hydra.nixos.org/build/233257533 at 2023-09-02
   - mime-directory # failure in job https://hydra.nixos.org/build/233209691 at 2023-09-02
+  - mines # failure in job https://hydra.nixos.org/build/252722834 at 2024-03-16
   - MiniAgda # failure in job https://hydra.nixos.org/build/233259586 at 2023-09-02
+  - minicurl # failure in job https://hydra.nixos.org/build/252710787 at 2024-03-16
   - miniforth # failure in job https://hydra.nixos.org/build/233220853 at 2023-09-02
   - minilens # failure in job https://hydra.nixos.org/build/233191347 at 2023-09-02
   - minions # failure in job https://hydra.nixos.org/build/233246840 at 2023-09-02
@@ -3536,6 +3776,7 @@ broken-packages:
   - Mobile-Legends-Hack-Cheats # failure in job https://hydra.nixos.org/build/233194849 at 2023-09-02
   - mockazo # failure in job https://hydra.nixos.org/build/233234923 at 2023-09-02
   - mock-httpd # failure in job https://hydra.nixos.org/build/233191481 at 2023-09-02
+  - mock-time # failure in job https://hydra.nixos.org/build/252737870 at 2024-03-16
   - modbus-tcp # failure in job https://hydra.nixos.org/build/233230661 at 2023-09-02
   - model # failure in job https://hydra.nixos.org/build/233211330 at 2023-09-02
   - modelicaparser # failure in job https://hydra.nixos.org/build/233207575 at 2023-09-02
@@ -3551,20 +3792,27 @@ broken-packages:
   - monadacme # failure in job https://hydra.nixos.org/build/233218330 at 2023-09-02
   - monad-atom # failure in job https://hydra.nixos.org/build/233243367 at 2023-09-02
   - monad-atom-simple # failure in job https://hydra.nixos.org/build/233259038 at 2023-09-02
+  - monad-bayes # failure in job https://hydra.nixos.org/build/252725686 at 2024-03-16
   - monad-branch # failure in job https://hydra.nixos.org/build/233251253 at 2023-09-02
   - MonadCatchIO-mtl # failure in job https://hydra.nixos.org/build/233228214 at 2023-09-02
+  - MonadCatchIO-transformers # failure in job https://hydra.nixos.org/build/252729237 at 2024-03-16
   - MonadCatchIO-transformers-foreign # failure in job https://hydra.nixos.org/build/233251635 at 2023-09-02
   - monad-choice # failure in job https://hydra.nixos.org/build/233255987 at 2023-09-02
   - MonadCompose # failure in job https://hydra.nixos.org/build/233204478 at 2023-09-02
   - monad-control-aligned # failure in job https://hydra.nixos.org/build/233240714 at 2023-09-02
   - monadcryptorandom # failure in job https://hydra.nixos.org/build/233235604 at 2023-09-02
   - monad-fork # failure in job https://hydra.nixos.org/build/233206855 at 2023-09-02
+  - monad-gen # failure in job https://hydra.nixos.org/build/252730194 at 2024-03-16
+  - monadic-arrays # failure in job https://hydra.nixos.org/build/252726939 at 2024-03-16
   - monadiccp # failure in job https://hydra.nixos.org/build/233191794 at 2023-09-02
   - monad-introspect # failure in job https://hydra.nixos.org/build/233248261 at 2023-09-02
+  - monadio-unwrappable # failure in job https://hydra.nixos.org/build/252736153 at 2024-03-16
   - Monadius # failure in job https://hydra.nixos.org/build/234456746 at 2023-09-13
+  - monad-journal # failure in job https://hydra.nixos.org/build/252714543 at 2024-03-16
   - monad-levels # failure in job https://hydra.nixos.org/build/233230433 at 2023-09-02
   - monad-lgbt # failure in job https://hydra.nixos.org/build/233207652 at 2023-09-02
   - monadLib-compose # failure in job https://hydra.nixos.org/build/233237652 at 2023-09-02
+  - monadloc # failure in job https://hydra.nixos.org/build/252715531 at 2024-03-16
   - monadloc-pp # failure in job https://hydra.nixos.org/build/233229067 at 2023-09-02
   - monadlog # failure in job https://hydra.nixos.org/build/233210391 at 2023-09-02
   - monad-log # failure in job https://hydra.nixos.org/build/233235588 at 2023-09-02
@@ -3577,18 +3825,24 @@ broken-packages:
   - monad-open # failure in job https://hydra.nixos.org/build/233242922 at 2023-09-02
   - monad-parallel-progressbar # failure in job https://hydra.nixos.org/build/233240035 at 2023-09-02
   - monad-param # failure in job https://hydra.nixos.org/build/233257283 at 2023-09-02
+  - monad-peel # failure in job https://hydra.nixos.org/build/252723606 at 2024-03-16
   - monad-persist # failure in job https://hydra.nixos.org/build/233214035 at 2023-09-02
+  - monad-primitive # failure in job https://hydra.nixos.org/build/252713027 at 2024-03-16
+  - monad-products # failure in job https://hydra.nixos.org/build/252738477 at 2024-03-16
   - MonadRandomLazy # failure in job https://hydra.nixos.org/build/233247540 at 2023-09-02
   - monad-ran # failure in job https://hydra.nixos.org/build/233251596 at 2023-09-02
   - monad-recorder # failure in job https://hydra.nixos.org/build/233222665 at 2023-09-02
+  - monads-fd # failure in job https://hydra.nixos.org/build/252731103 at 2024-03-16
   - monad-skeleton # failure in job https://hydra.nixos.org/build/233234306 at 2023-09-02
   - MonadStack # failure in job https://hydra.nixos.org/build/233239920 at 2023-09-02
   - monad-statevar # failure in job https://hydra.nixos.org/build/233215896 at 2023-09-02
   - monad-ste # failure in job https://hydra.nixos.org/build/233226514 at 2023-09-02
   - monad-stlike-io # failure in job https://hydra.nixos.org/build/233254724 at 2023-09-02
+  - monad-supply # failure in job https://hydra.nixos.org/build/252721130 at 2024-03-16
   - monad-task # failure in job https://hydra.nixos.org/build/233199661 at 2023-09-02
   - monad-throw-exit # failure in job https://hydra.nixos.org/build/233205411 at 2023-09-02
   - monad-timing # failure in job https://hydra.nixos.org/build/233213441 at 2023-09-02
+  - monadtransform # failure in job https://hydra.nixos.org/build/252727336 at 2024-03-16
   - monad-tree # failure in job https://hydra.nixos.org/build/233259264 at 2023-09-02
   - monad-tx # failure in job https://hydra.nixos.org/build/233232176 at 2023-09-02
   - monad-unify # failure in job https://hydra.nixos.org/build/233202833 at 2023-09-02
@@ -3607,6 +3861,7 @@ broken-packages:
   - monoid-owns # failure in job https://hydra.nixos.org/build/233259043 at 2023-09-02
   - monoidplus # failure in job https://hydra.nixos.org/build/233226759 at 2023-09-02
   - monoids # failure in job https://hydra.nixos.org/build/233231684 at 2023-09-02
+  - monomer-hagrid # failure in job https://hydra.nixos.org/build/252729072 at 2024-03-16
   - monopati # failure in job https://hydra.nixos.org/build/233234119 at 2023-09-02
   - monus # failure in job https://hydra.nixos.org/build/233252424 at 2023-09-02
   - monus-weighted-search # timeout
@@ -3614,6 +3869,7 @@ broken-packages:
   - morfette # failure in job https://hydra.nixos.org/build/233249575 at 2023-09-02
   - morfeusz # failure in job https://hydra.nixos.org/build/233232351 at 2023-09-02
   - morpheus-graphql-cli # failure in job https://hydra.nixos.org/build/233249063 at 2023-09-02
+  - morpheus-graphql-code-gen # failure in job https://hydra.nixos.org/build/252733361 at 2024-03-16
   - morphisms-functors # failure in job https://hydra.nixos.org/build/233255311 at 2023-09-02
   - morphisms-objects # failure in job https://hydra.nixos.org/build/233216076 at 2023-09-02
   - morte # failure in job https://hydra.nixos.org/build/233212193 at 2023-09-02
@@ -3642,8 +3898,11 @@ broken-packages:
   - mtl-evil-instances # failure in job https://hydra.nixos.org/build/233239976 at 2023-09-02
   - mtl-extras # failure in job https://hydra.nixos.org/build/233199852 at 2023-09-02
   - mtl-tf # failure in job https://hydra.nixos.org/build/233254943 at 2023-09-02
+  - mtl-unleashed # failure in job https://hydra.nixos.org/build/252714086 at 2024-03-16
+  - mtl-uplift # failure in job https://hydra.nixos.org/build/252739478 at 2024-03-16
   - mtlx # failure in job https://hydra.nixos.org/build/233221631 at 2023-09-02
   - mtp # failure in job https://hydra.nixos.org/build/233212895 at 2023-09-02
+  - mtree # failure in job https://hydra.nixos.org/build/252722593 at 2024-03-16
   - mtsl # failure in job https://hydra.nixos.org/build/233207653 at 2023-09-02
   - MuCheck # failure in job https://hydra.nixos.org/build/233254207 at 2023-09-02
   - mudbath # failure in job https://hydra.nixos.org/build/233198648 at 2023-09-02
@@ -3652,11 +3911,13 @@ broken-packages:
   - multext-east-msd # failure in job https://hydra.nixos.org/build/233191007 at 2023-09-02
   - multiaddr # failure in job https://hydra.nixos.org/build/233223452 at 2023-09-02
   - multiarg # failure in job https://hydra.nixos.org/build/233238633 at 2023-09-02
+  - multicurryable # failure in job https://hydra.nixos.org/build/252731222 at 2024-03-16
   - multihash # failure in job https://hydra.nixos.org/build/233203263 at 2023-09-02
   - multi-instance # failure in job https://hydra.nixos.org/build/233203186 at 2023-09-02
   - multilinear # failure in job https://hydra.nixos.org/build/233260046 at 2023-09-02
   - multipass # failure in job https://hydra.nixos.org/build/233252587 at 2023-09-02
   - multipath # failure in job https://hydra.nixos.org/build/233248692 at 2023-09-02
+  - multiplate # failure in job https://hydra.nixos.org/build/252739560 at 2024-03-16
   - multiplate-simplified # failure in job https://hydra.nixos.org/build/233241999 at 2023-09-02
   - multipool # failure in job https://hydra.nixos.org/build/233234384 at 2023-09-02
   - multirec # failure in job https://hydra.nixos.org/build/233242079 at 2023-09-02
@@ -3671,6 +3932,7 @@ broken-packages:
   - mustache2hs # failure in job https://hydra.nixos.org/build/233229095 at 2023-09-02
   - mustache-haskell # failure in job https://hydra.nixos.org/build/233235667 at 2023-09-02
   - mutable # failure in job https://hydra.nixos.org/build/233204639 at 2023-09-02
+  - mvar-lock # failure in job https://hydra.nixos.org/build/252735681 at 2024-03-16
   - mvc # failure in job https://hydra.nixos.org/build/233205036 at 2023-09-02
   - mxnet # failure in job https://hydra.nixos.org/build/233212365 at 2023-09-02
   - mxnet-nnvm # failure in job https://hydra.nixos.org/build/233236073 at 2023-09-02
@@ -3678,6 +3940,7 @@ broken-packages:
   - myo # failure in job https://hydra.nixos.org/build/233251998 at 2023-09-02
   - my-package-testing # failure in job https://hydra.nixos.org/build/233201843 at 2023-09-02
   - MyPrimes # failure in job https://hydra.nixos.org/build/233247934 at 2023-09-02
+  - mysnapsession # failure in job https://hydra.nixos.org/build/252732102 at 2024-03-16
   - mysql-effect # failure in job https://hydra.nixos.org/build/233248718 at 2023-09-02
   - mysql-haskell # failure in job https://hydra.nixos.org/build/233195978 at 2023-09-02
   - mysql-pure # failure in job https://hydra.nixos.org/build/233250825 at 2023-09-02
@@ -3689,6 +3952,7 @@ broken-packages:
   - n2o-protocols # failure in job https://hydra.nixos.org/build/233233132 at 2023-09-02
   - nagios-plugin-ekg # failure in job https://hydra.nixos.org/build/233203188 at 2023-09-02
   - named-binary-tag # failure in job https://hydra.nixos.org/build/233225138 at 2023-09-02
+  - named-formlet # failure in job https://hydra.nixos.org/build/252711265 at 2024-03-16
   - named-lock # failure in job https://hydra.nixos.org/build/233247307 at 2023-09-02
   - named-servant # failure in job https://hydra.nixos.org/build/233205979 at 2023-09-02
   - named-sop # failure in job https://hydra.nixos.org/build/233233523 at 2023-09-02
@@ -3710,6 +3974,7 @@ broken-packages:
   - naqsha # failure in job https://hydra.nixos.org/build/233256844 at 2023-09-02
   - narc # failure in job https://hydra.nixos.org/build/233215853 at 2023-09-02
   - nationstates # failure in job https://hydra.nixos.org/build/233243640 at 2023-09-02
+  - nat-optics # failure in job https://hydra.nixos.org/build/252729307 at 2024-03-16
   - nats-client # failure in job https://hydra.nixos.org/build/233241313 at 2023-09-02
   - nat-sized-numbers # failure in job https://hydra.nixos.org/build/233244238 at 2023-09-02
   - natural # failure in job https://hydra.nixos.org/build/233232490 at 2023-09-02
@@ -3764,6 +4029,7 @@ broken-packages:
   - network-simple-sockaddr # failure in job https://hydra.nixos.org/build/233204221 at 2023-09-02
   - network-socket-options # failure in job https://hydra.nixos.org/build/233252466 at 2023-09-02
   - network-transport-amqp # failure in job https://hydra.nixos.org/build/233224582 at 2023-09-02
+  - network-transport-tests # failure in job https://hydra.nixos.org/build/252719526 at 2024-03-16
   - network-voicetext # failure in job https://hydra.nixos.org/build/233204992 at 2023-09-02
   - network-wai-router # failure in job https://hydra.nixos.org/build/233219167 at 2023-09-02
   - neural-network-blashs # failure in job https://hydra.nixos.org/build/233244174 at 2023-09-02
@@ -3809,6 +4075,7 @@ broken-packages:
   - non-empty-containers # failure in job https://hydra.nixos.org/build/233201102 at 2023-09-02
   - NonEmpty # failure in job https://hydra.nixos.org/build/233244009 at 2023-09-02
   - nonempty-lift # failure in job https://hydra.nixos.org/build/233237065 at 2023-09-02
+  - nonemptymap # failure in job https://hydra.nixos.org/build/252711949 at 2024-03-16
   - non-empty-zipper # failure in job https://hydra.nixos.org/build/233244341 at 2023-09-02
   - nonlinear-optimization # failure in job https://hydra.nixos.org/build/233204674 at 2023-09-02
   - noodle # failure in job https://hydra.nixos.org/build/233195125 at 2023-09-02
@@ -3822,6 +4089,7 @@ broken-packages:
   - np-linear # failure in job https://hydra.nixos.org/build/233257696 at 2023-09-02
   - nptools # failure in job https://hydra.nixos.org/build/233234905 at 2023-09-02
   - nqe # failure in job https://hydra.nixos.org/build/243814217 at 2024-01-01
+  - ntha # failure in job https://hydra.nixos.org/build/252730602 at 2024-03-16
   - ntp-control # failure in job https://hydra.nixos.org/build/233231061 at 2023-09-02
   - ntrip-client # failure in job https://hydra.nixos.org/build/233230605 at 2023-09-02
   - n-tuple # failure in job https://hydra.nixos.org/build/233225021 at 2023-09-02
@@ -3832,6 +4100,8 @@ broken-packages:
   - NumberSieves # failure in job https://hydra.nixos.org/build/233255007 at 2023-09-02
   - NumberTheory # failure in job https://hydra.nixos.org/build/233215395 at 2023-09-02
   - number-wall # failure in job https://hydra.nixos.org/build/233197764 at 2023-09-02
+  - numeric-logarithms # failure in job https://hydra.nixos.org/build/252727978 at 2024-03-16
+  - numeric-optimization-backprop # failure in job https://hydra.nixos.org/build/252733863 at 2024-03-16
   - numeric-qq # failure in job https://hydra.nixos.org/build/233207127 at 2023-09-02
   - numeric-ranges # failure in job https://hydra.nixos.org/build/233191878 at 2023-09-02
   - numhask-free # failure in job https://hydra.nixos.org/build/233214800 at 2023-09-02
@@ -3880,10 +4150,12 @@ broken-packages:
   - onama # failure in job https://hydra.nixos.org/build/233241430 at 2023-09-02
   - ONC-RPC # failure in job https://hydra.nixos.org/build/233225207 at 2023-09-02
   - on-demand-ssh-tunnel # failure in job https://hydra.nixos.org/build/233197181 at 2023-09-02
+  - one-line-aeson-text # failure in job https://hydra.nixos.org/build/252732148 at 2024-03-16
   - oneormore # failure in job https://hydra.nixos.org/build/233242475 at 2023-09-02
   - online # failure in job https://hydra.nixos.org/build/233195360 at 2023-09-02
   - onpartitions # failure in job https://hydra.nixos.org/build/233226163 at 2023-09-02
   - onu-course # failure in job https://hydra.nixos.org/build/233233153 at 2023-09-02
+  - oops # failure in job https://hydra.nixos.org/build/252738443 at 2024-03-16
   - opaleye-classy # failure in job https://hydra.nixos.org/build/233214120 at 2023-09-02
   - opaleye-sqlite # failure in job https://hydra.nixos.org/build/233191474 at 2023-09-02
   - opaleye-trans # failure in job https://hydra.nixos.org/build/233210536 at 2023-09-02
@@ -3891,7 +4163,6 @@ broken-packages:
   - OpenAFP # failure in job https://hydra.nixos.org/build/233249295 at 2023-09-02
   - openai-hs # failure in job https://hydra.nixos.org/build/233598196 at 2023-09-02
   - openapi3-code-generator # failure in job https://hydra.nixos.org/build/233255628 at 2023-09-02
-  - openapi3 # failure in job https://hydra.nixos.org/build/233208815 at 2023-09-02
   - openapi-petstore # failure in job https://hydra.nixos.org/build/233221722 at 2023-09-02
   - openapi-typed # failure in job https://hydra.nixos.org/build/233226830 at 2023-09-02
   - opencascade-hs # failure in job https://hydra.nixos.org/build/243821447 at 2024-01-01
@@ -3901,6 +4172,7 @@ broken-packages:
   - OpenCLRaw # failure in job https://hydra.nixos.org/build/233247133 at 2023-09-02
   - OpenCLWrappers # failure in job https://hydra.nixos.org/build/233222391 at 2023-09-02
   - opencog-atomspace # failure in job https://hydra.nixos.org/build/233237785 at 2023-09-02
+  - opencv # failure in job https://hydra.nixos.org/build/252717564 at 2024-03-16
   - opencv-raw # failure in job https://hydra.nixos.org/build/233211286 at 2023-09-02
   - opendatatable # failure in job https://hydra.nixos.org/build/233254960 at 2023-09-02
   - openexchangerates # failure in job https://hydra.nixos.org/build/233203238 at 2023-09-02
@@ -3922,6 +4194,7 @@ broken-packages:
   - OpenVGRaw # failure in job https://hydra.nixos.org/build/233254457 at 2023-09-02
   - Operads # failure in job https://hydra.nixos.org/build/233233055 at 2023-09-02
   - operate-do # failure in job https://hydra.nixos.org/build/233257129 at 2023-09-02
+  - operational-class # failure in job https://hydra.nixos.org/build/252715658 at 2024-03-16
   - operational-extra # failure in job https://hydra.nixos.org/build/233232454 at 2023-09-02
   - op # failure in job https://hydra.nixos.org/build/233201812 at 2023-09-02
   - oplang # failure in job https://hydra.nixos.org/build/233208221 at 2023-09-02
@@ -3930,7 +4203,9 @@ broken-packages:
   - optimization # failure in job https://hydra.nixos.org/build/233191078 at 2023-09-02
   - optional # failure in job https://hydra.nixos.org/build/233241818 at 2023-09-02
   - options-time # failure in job https://hydra.nixos.org/build/233194289 at 2023-09-02
+  - optparse-applicative-cmdline-util # failure in job https://hydra.nixos.org/build/252739738 at 2024-03-16
   - optparse-applicative-simple # failure in job https://hydra.nixos.org/build/233236802 at 2023-09-02
+  - optparse-declarative # failure in job https://hydra.nixos.org/build/252718969 at 2024-03-16
   - optparse-helper # failure in job https://hydra.nixos.org/build/233248522 at 2023-09-02
   - optstream # failure in job https://hydra.nixos.org/build/233200326 at 2023-09-02
   - orc # failure in job https://hydra.nixos.org/build/233216448 at 2023-09-02
@@ -3949,6 +4224,7 @@ broken-packages:
   - orion-hs # failure in job https://hydra.nixos.org/build/233210586 at 2023-09-02
   - orizentic # failure in job https://hydra.nixos.org/build/233197904 at 2023-09-02
   - OrPatterns # failure in job https://hydra.nixos.org/build/233191538 at 2023-09-02
+  - orthotope-hmatrix # failure in job https://hydra.nixos.org/build/252726654 at 2024-03-16
   - orville-postgresql # failure in job https://hydra.nixos.org/build/241433010 at 2023-11-19
   - ory-hydra-client # failure in job https://hydra.nixos.org/build/233197456 at 2023-09-02
   - ory-kratos # failure in job https://hydra.nixos.org/build/233191249 at 2023-09-02
@@ -3968,7 +4244,6 @@ broken-packages:
   - overture # failure in job https://hydra.nixos.org/build/233245959 at 2023-09-02
   - owoify-hs # failure in job https://hydra.nixos.org/build/233213422 at 2023-09-02
   - package-description-remote # failure in job https://hydra.nixos.org/build/233221358 at 2023-09-02
-  - package-version # failure in job https://hydra.nixos.org/build/233191665 at 2023-09-02
   - package-vt # failure in job https://hydra.nixos.org/build/233225831 at 2023-09-02
   - packdeps # failure in job https://hydra.nixos.org/build/233216607 at 2023-09-02
   - packed-dawg # failure in job https://hydra.nixos.org/build/233207332 at 2023-09-02
@@ -3991,19 +4266,22 @@ broken-packages:
   - pandoc-citeproc # failure in job https://hydra.nixos.org/build/233198462 at 2023-09-02
   - pandoc-columns # failure in job https://hydra.nixos.org/build/233234538 at 2023-09-02
   - pandoc-csv2table # failure in job https://hydra.nixos.org/build/233229925 at 2023-09-02
+  - pandoc-emphasize-code # failure in job https://hydra.nixos.org/build/252733347 at 2024-03-16
   - pandoc-filter-graphviz # failure in job https://hydra.nixos.org/build/233233372 at 2023-09-02
   - pandoc-filter-indent # failure in job https://hydra.nixos.org/build/233235439 at 2023-09-02
+  - pandoc-include-code # failure in job https://hydra.nixos.org/build/252710408 at 2024-03-16
   - pandoc-include # failure in job https://hydra.nixos.org/build/233199152 at 2023-09-02
   - pandoc-include-plus # failure in job https://hydra.nixos.org/build/233198059 at 2023-09-02
   - pandoc-lens # failure in job https://hydra.nixos.org/build/233251239 at 2023-09-02
   - pandoc-linear-table # failure in job https://hydra.nixos.org/build/233254813 at 2023-09-02
-  - pandoc-link-context # failure in job https://hydra.nixos.org/build/233254006 at 2023-09-02
   - pandoc-logic-proof # failure in job https://hydra.nixos.org/build/233223409 at 2023-09-02
   - pandoc-markdown-ghci-filter # failure in job https://hydra.nixos.org/build/233213731 at 2023-09-02
   - pandoc-placetable # failure in job https://hydra.nixos.org/build/233243163 at 2023-09-02
   - pandoc-plantuml-diagrams # failure in job https://hydra.nixos.org/build/233221778 at 2023-09-02
   - pandoc-pyplot # failure in job https://hydra.nixos.org/build/233248205 at 2023-09-02
+  - pandoc-query # failure in job https://hydra.nixos.org/build/252730669 at 2024-03-16
   - pandoc-select-code # failure in job https://hydra.nixos.org/build/233238415 at 2023-09-02
+  - pandoc-symreg # failure in job https://hydra.nixos.org/build/252726624 at 2024-03-16
   - pandoc-unlit # failure in job https://hydra.nixos.org/build/233219811 at 2023-09-02
   - pandoc-utils # failure in job https://hydra.nixos.org/build/233203436 at 2023-09-02
   - pandora # failure in job https://hydra.nixos.org/build/233211349 at 2023-09-02
@@ -4022,6 +4300,7 @@ broken-packages:
   - papa-prelude-lens # failure in job https://hydra.nixos.org/build/233213147 at 2023-09-02
   - papa-prelude-semigroupoids # failure in job https://hydra.nixos.org/build/233250360 at 2023-09-02
   - papa-prelude-semigroups # failure in job https://hydra.nixos.org/build/233199275 at 2023-09-02
+  - papa-semigroupoids-export # failure in job https://hydra.nixos.org/build/252729218 at 2024-03-16
   - papa-semigroupoids-implement # failure in job https://hydra.nixos.org/build/233234835 at 2023-09-02
   - paphragen # failure in job https://hydra.nixos.org/build/233206378 at 2023-09-02
   - papillon # failure in job https://hydra.nixos.org/build/233195439 at 2023-09-02
@@ -4040,6 +4319,8 @@ broken-packages:
   - Parry # failure in job https://hydra.nixos.org/build/233230444 at 2023-09-02
   - parsec2 # failure in job https://hydra.nixos.org/build/233225643 at 2023-09-02
   - parsec3 # failure in job https://hydra.nixos.org/build/233221004 at 2023-09-02
+  - parsec-extra # failure in job https://hydra.nixos.org/build/252728153 at 2024-03-16
+  - parsec-free # failure in job https://hydra.nixos.org/build/252735408 at 2024-03-16
   - parsec-parsers # failure in job https://hydra.nixos.org/build/233219781 at 2023-09-02
   - parsec-pratt # failure in job https://hydra.nixos.org/build/233194863 at 2023-09-02
   - parseerror-eq # failure in job https://hydra.nixos.org/build/233250555 at 2023-09-02
@@ -4058,6 +4339,7 @@ broken-packages:
   - parsnip # failure in job https://hydra.nixos.org/build/233229093 at 2023-09-02
   - partial-lens # failure in job https://hydra.nixos.org/build/233234761 at 2023-09-02
   - partial-records # failure in job https://hydra.nixos.org/build/233205143 at 2023-09-02
+  - partial-semigroup-hedgehog # failure in job https://hydra.nixos.org/build/252731350 at 2024-03-16
   - partly # failure in job https://hydra.nixos.org/build/233229003 at 2023-09-02
   - passage # failure in job https://hydra.nixos.org/build/233192945 at 2023-09-02
   - passman-core # failure in job https://hydra.nixos.org/build/233217997 at 2023-09-02
@@ -4071,9 +4353,11 @@ broken-packages:
   - patches-vector # failure in job https://hydra.nixos.org/build/233244862 at 2023-09-02
   - Pathfinder # failure in job https://hydra.nixos.org/build/233236573 at 2023-09-02
   - path-formatting # failure in job https://hydra.nixos.org/build/233199358 at 2023-09-02
+  - paths # failure in job https://hydra.nixos.org/build/252731256 at 2024-03-16
   - path-sing # failure in job https://hydra.nixos.org/build/237234354 at 2023-10-21
   - PathTree # failure in job https://hydra.nixos.org/build/233216203 at 2023-09-02
   - patronscraper # failure in job https://hydra.nixos.org/build/233258571 at 2023-09-02
+  - pattern-arrows # failure in job https://hydra.nixos.org/build/252718352 at 2024-03-16
   - pattern-trie # failure in job https://hydra.nixos.org/build/233237252 at 2023-09-02
   - paynow-zw # failure in job https://hydra.nixos.org/build/233221916 at 2023-09-02
   - paypal-adaptive-hoops # failure in job https://hydra.nixos.org/build/233244557 at 2023-09-02
@@ -4114,14 +4398,17 @@ broken-packages:
   - Persistence # failure in job https://hydra.nixos.org/build/233226467 at 2023-09-02
   - persistent-cereal # failure in job https://hydra.nixos.org/build/233240762 at 2023-09-02
   - persistent-database-url # failure in job https://hydra.nixos.org/build/233233601 at 2023-09-02
+  - persistent-documentation # failure in job https://hydra.nixos.org/build/252727244 at 2024-03-16
   - persistent-equivalence # failure in job https://hydra.nixos.org/build/233208713 at 2023-09-02
   - persistent-generic # failure in job https://hydra.nixos.org/build/233220060 at 2023-09-02
   - persistent-mongoDB # failure in job https://hydra.nixos.org/build/233207971 at 2023-09-02
   - persistent-odbc # failure in job https://hydra.nixos.org/build/233191221 at 2023-09-02
   - persistent-postgresql-streaming # failure in job https://hydra.nixos.org/build/233194038 at 2023-09-02
   - persistent-ratelimit # failure in job https://hydra.nixos.org/build/233224537 at 2023-09-02
+  - persistent-refs # failure in job https://hydra.nixos.org/build/252722090 at 2024-03-16
   - persistent-stm # failure in job https://hydra.nixos.org/build/233234706 at 2023-09-02
   - persistent-template-classy # failure in job https://hydra.nixos.org/build/233230341 at 2023-09-02
+  - persistent-vector # failure in job https://hydra.nixos.org/build/252721689 at 2024-03-16
   - persist # failure in job https://hydra.nixos.org/build/233234953 at 2023-09-02
   - persist-state # failure in job https://hydra.nixos.org/build/233249568 at 2023-09-02
   - persona # failure in job https://hydra.nixos.org/build/233209614 at 2023-09-02
@@ -4132,6 +4419,7 @@ broken-packages:
   - pgf2 # failure in job https://hydra.nixos.org/build/233234332 at 2023-09-02
   - pg-harness # failure in job https://hydra.nixos.org/build/233219805 at 2023-09-02
   - pg-harness-server # failure in job https://hydra.nixos.org/build/233236493 at 2023-09-02
+  - pgp-wordlist # failure in job https://hydra.nixos.org/build/252723543 at 2024-03-16
   - pg-recorder # failure in job https://hydra.nixos.org/build/233241248 at 2023-09-02
   - pgsql-simple # failure in job https://hydra.nixos.org/build/233228421 at 2023-09-02
   - pg-store # failure in job https://hydra.nixos.org/build/233208603 at 2023-09-02
@@ -4151,6 +4439,7 @@ broken-packages:
   - phonetic-languages-simplified-properties-array # failure in job https://hydra.nixos.org/build/233195530 at 2023-09-02
   - phonetic-languages-simplified-properties-array-old # failure in job https://hydra.nixos.org/build/233258258 at 2023-09-02
   - phonetic-languages-vector # failure in job https://hydra.nixos.org/build/233258156 at 2023-09-02
+  - photoname # failure in job https://hydra.nixos.org/build/252736965 at 2024-03-16
   - phraskell # failure in job https://hydra.nixos.org/build/233202906 at 2023-09-02
   - Phsu # failure in job https://hydra.nixos.org/build/233243595 at 2023-09-02
   - pia-forward # failure in job https://hydra.nixos.org/build/233219067 at 2023-09-02
@@ -4159,7 +4448,10 @@ broken-packages:
   - pickle # failure in job https://hydra.nixos.org/build/233255980 at 2023-09-02
   - picologic # failure in job https://hydra.nixos.org/build/233202882 at 2023-09-02
   - picoparsec # failure in job https://hydra.nixos.org/build/233251453 at 2023-09-02
+  - picosat # failure in job https://hydra.nixos.org/build/252732655 at 2024-03-16
   - pictikz # failure in job https://hydra.nixos.org/build/233240766 at 2023-09-02
+  - pid # failure in job https://hydra.nixos.org/build/252711742 at 2024-03-16
+  - pidfile # failure in job https://hydra.nixos.org/build/252735609 at 2024-03-16
   - pier-core # failure in job https://hydra.nixos.org/build/233234325 at 2023-09-02
   - piet # failure in job https://hydra.nixos.org/build/233259843 at 2023-09-02
   - pi-forall # failure in job https://hydra.nixos.org/build/233247486 at 2023-09-02
@@ -4169,7 +4461,9 @@ broken-packages:
   - pinboard # failure in job https://hydra.nixos.org/build/233239482 at 2023-09-02
   - pinch-gen # failure in job https://hydra.nixos.org/build/233212466 at 2023-09-02
   - pinchot # failure in job https://hydra.nixos.org/build/233230585 at 2023-09-02
+  - piped # failure in job https://hydra.nixos.org/build/252729903 at 2024-03-16
   - Pipe # failure in job https://hydra.nixos.org/build/233243604 at 2023-09-02
+  - pipes-aeson # failure in job https://hydra.nixos.org/build/252733735 at 2024-03-16
   - pipes-async # failure in job https://hydra.nixos.org/build/233194729 at 2023-09-02
   - pipes-bgzf # failure in job https://hydra.nixos.org/build/233238921 at 2023-09-02
   - pipes-break # failure in job https://hydra.nixos.org/build/233250730 at 2023-09-02
@@ -4179,8 +4473,10 @@ broken-packages:
   - pipes-cereal # failure in job https://hydra.nixos.org/build/233195413 at 2023-09-02
   - pipes-core # failure in job https://hydra.nixos.org/build/233213024 at 2023-09-02
   - pipes-errors # failure in job https://hydra.nixos.org/build/233214912 at 2023-09-02
+  - pipes-extras # failure in job https://hydra.nixos.org/build/252732291 at 2024-03-16
   - pipes-interleave # failure in job https://hydra.nixos.org/build/233247428 at 2023-09-02
   - pipes-io # failure in job https://hydra.nixos.org/build/233243253 at 2023-09-02
+  - pipes-kafka # failure in job https://hydra.nixos.org/build/252727228 at 2024-03-16
   - pipes-lines # failure in job https://hydra.nixos.org/build/233243979 at 2023-09-02
   - pipes-lzma # failure in job https://hydra.nixos.org/build/233256730 at 2023-09-02
   - pipes-network-ws # failure in job https://hydra.nixos.org/build/233245816 at 2023-09-02
@@ -4218,17 +4514,21 @@ broken-packages:
   - plist # failure in job https://hydra.nixos.org/build/233233906 at 2023-09-02
   - plivo # failure in job https://hydra.nixos.org/build/233256647 at 2023-09-02
   - ploterific # failure in job https://hydra.nixos.org/build/233228102 at 2023-09-02
+  - plot # failure in job https://hydra.nixos.org/build/252721447 at 2024-03-16
   - plot-gtk3 # failure in job https://hydra.nixos.org/build/233202048 at 2023-09-02
   - plot-gtk # failure in job https://hydra.nixos.org/build/233241286 at 2023-09-02
   - plot-gtk-ui # failure in job https://hydra.nixos.org/build/233205192 at 2023-09-02
   - plot-lab # failure in job https://hydra.nixos.org/build/233242283 at 2023-09-02
   - plots # failure in job https://hydra.nixos.org/build/233207279 at 2023-09-02
   - plow-log-async # failure in job https://hydra.nixos.org/build/233201736 at 2023-09-02
+  - plow-log # failure in job https://hydra.nixos.org/build/252717614 at 2024-03-16
+  - plucky # failure in job https://hydra.nixos.org/build/252718793 at 2024-03-16
   - plugins # failure in job https://hydra.nixos.org/build/233239631 at 2023-09-02
   - plugins-multistage # failure in job https://hydra.nixos.org/build/233205493 at 2023-09-02
   - plumbers # failure in job https://hydra.nixos.org/build/233221866 at 2023-09-02
   - plural # failure in job https://hydra.nixos.org/build/233198934 at 2023-09-02
   - plur # failure in job https://hydra.nixos.org/build/233229752 at 2023-09-02
+  - ply-loader # failure in job https://hydra.nixos.org/build/252720663 at 2024-03-16
   - plzwrk # failure in job https://hydra.nixos.org/build/233219630 at 2023-09-02
   - pngload-fixed # failure in job https://hydra.nixos.org/build/233233956 at 2023-09-02
   - pocket # failure in job https://hydra.nixos.org/build/233244120 at 2023-09-02
@@ -4282,11 +4582,13 @@ broken-packages:
   - portager # failure in job https://hydra.nixos.org/build/233192963 at 2023-09-02
   - porte # failure in job https://hydra.nixos.org/build/233224391 at 2023-09-02
   - PortFusion # failure in job https://hydra.nixos.org/build/233248354 at 2023-09-02
+  - portray # failure in job https://hydra.nixos.org/build/252733999 at 2024-03-16
   - posable # failure in job https://hydra.nixos.org/build/233217897 at 2023-09-02
   - posit # failure in job https://hydra.nixos.org/build/233229714 at 2023-09-02
   - positron # failure in job https://hydra.nixos.org/build/233256252 at 2023-09-02
   - posix-acl # failure in job https://hydra.nixos.org/build/233222892 at 2023-09-02
   - posix-api # failure in job https://hydra.nixos.org/build/233240089 at 2023-09-02
+  - posix-filelock # failure in job https://hydra.nixos.org/build/252726822 at 2024-03-16
   - posix-realtime # failure in job https://hydra.nixos.org/build/233191463 at 2023-09-02
   - posix-waitpid # failure in job https://hydra.nixos.org/build/233206551 at 2023-09-02
   - posplyu # failure in job https://hydra.nixos.org/build/233230437 at 2023-09-02
@@ -4304,9 +4606,10 @@ broken-packages:
   - postgresql-replicant # failure in job https://hydra.nixos.org/build/233247943 at 2023-09-02
   - postgresql-resilient # failure in job https://hydra.nixos.org/build/233212362 at 2023-09-02
   - postgresql-simple-bind # failure in job https://hydra.nixos.org/build/233220640 at 2023-09-02
-  - postgresql-simple-migration # failure in job https://hydra.nixos.org/build/233222723 at 2023-09-02
   - postgresql-simple-named # failure in job https://hydra.nixos.org/build/233202481 at 2023-09-02
+  - postgresql-simple-opts # failure in job https://hydra.nixos.org/build/252718901 at 2024-03-16
   - postgresql-simple-sop # failure in job https://hydra.nixos.org/build/233249757 at 2023-09-02
+  - postgresql-tx # failure in job https://hydra.nixos.org/build/252717914 at 2024-03-16
   - postgresql-tx-monad-logger # failure in job https://hydra.nixos.org/build/233227034 at 2023-09-02
   - postgresql-tx-simple # failure in job https://hydra.nixos.org/build/233242850 at 2023-09-02
   - postgresql-typed-lifted # failure in job https://hydra.nixos.org/build/233215141 at 2023-09-02
@@ -4348,7 +4651,9 @@ broken-packages:
   - pretty-ghci # failure in job https://hydra.nixos.org/build/233236777 at 2023-09-02
   - pretty-loc # failure in job https://hydra.nixos.org/build/233198098 at 2023-09-02
   - pretty-ncols # failure in job https://hydra.nixos.org/build/233220264 at 2023-09-02
+  - prettyprinter-convert-ansi-wl-pprint # failure in job https://hydra.nixos.org/build/252718603 at 2024-03-16
   - prettyprinter-vty # failure in job https://hydra.nixos.org/build/233251729 at 2023-09-02
+  - pretty-types # failure in job https://hydra.nixos.org/build/252727063 at 2024-03-16
   - primal # failure in job https://hydra.nixos.org/build/233260049 at 2023-09-02
   - prim-array # failure in job https://hydra.nixos.org/build/233220574 at 2023-09-02
   - prime # failure in job https://hydra.nixos.org/build/233197550 at 2023-09-02
@@ -4391,7 +4696,6 @@ broken-packages:
   - product-isomorphic # failure in job https://hydra.nixos.org/build/233230736 at 2023-09-02
   - prof2pretty # failure in job https://hydra.nixos.org/build/233240665 at 2023-09-02
   - prof-flamegraph # failure in job https://hydra.nixos.org/build/233254675 at 2023-09-02
-  - profiteur # failure in job https://hydra.nixos.org/build/233216916 at 2023-09-02
   - profunctor-monad # failure in job https://hydra.nixos.org/build/233190940 at 2023-09-02
   - progression # failure in job https://hydra.nixos.org/build/233256355 at 2023-09-02
   - progressive # failure in job https://hydra.nixos.org/build/233228075 at 2023-09-02
@@ -4405,6 +4709,7 @@ broken-packages:
   - prometheus-effect # failure in job https://hydra.nixos.org/build/233215984 at 2023-09-02
   - prometheus-wai-middleware # failure in job https://hydra.nixos.org/build/233239230 at 2023-09-02
   - promise # failure in job https://hydra.nixos.org/build/233228578 at 2023-09-02
+  - prompt # failure in job https://hydra.nixos.org/build/252732746 at 2024-03-16
   - pronounce # failure in job https://hydra.nixos.org/build/233234844 at 2023-09-02
   - proof-assistant-bot # failure in job https://hydra.nixos.org/build/234974688 at 2023-09-13
   - proof-combinators # failure in job https://hydra.nixos.org/build/233210521 at 2023-09-02
@@ -4422,6 +4727,7 @@ broken-packages:
   - protocol-buffers-fork # failure in job https://hydra.nixos.org/build/233228361 at 2023-09-02
   - protocol # failure in job https://hydra.nixos.org/build/233224436 at 2023-09-02
   - proto-lens-arbitrary # failure in job https://hydra.nixos.org/build/233239393 at 2023-09-02
+  - proto-lens-combinators # failure in job https://hydra.nixos.org/build/252726979 at 2024-03-16
   - protolude-lifted # failure in job https://hydra.nixos.org/build/233196312 at 2023-09-02
   - proton-haskell # failure in job https://hydra.nixos.org/build/233214383 at 2023-09-02
   - prototype # failure in job https://hydra.nixos.org/build/233238810 at 2023-09-02
@@ -4445,6 +4751,7 @@ broken-packages:
   - pugs-DrIFT # failure in job https://hydra.nixos.org/build/233216584 at 2023-09-02
   - pugs-HsSyck # failure in job https://hydra.nixos.org/build/233242766 at 2023-09-02
   - PUH-Project # failure in job https://hydra.nixos.org/build/233238918 at 2023-09-02
+  - punycode # failure in job https://hydra.nixos.org/build/252727599 at 2024-03-16
   - Pup-Events-Server # failure in job https://hydra.nixos.org/build/233198287 at 2023-09-02
   - pure-io # failure in job https://hydra.nixos.org/build/233235168 at 2023-09-02
   - pure-priority-queue # failure in job https://hydra.nixos.org/build/233258014 at 2023-09-02
@@ -4458,13 +4765,16 @@ broken-packages:
   - pusher-ws # failure in job https://hydra.nixos.org/build/233204133 at 2023-09-02
   - pushme # failure in job https://hydra.nixos.org/build/233212481 at 2023-09-02
   - push-notifications # failure in job https://hydra.nixos.org/build/233199364 at 2023-09-02
+  - pushover # failure in job https://hydra.nixos.org/build/252739908 at 2024-03-16
   - putlenses # failure in job https://hydra.nixos.org/build/233197372 at 2023-09-02
   - puzzle-draw # failure in job https://hydra.nixos.org/build/233204953 at 2023-09-02
+  - pvar # failure in job https://hydra.nixos.org/build/252711515 at 2024-03-16
   - pvector # failure in job https://hydra.nixos.org/build/233217965 at 2023-09-02
   - pyffi # failure in job https://hydra.nixos.org/build/233260156 at 2023-09-02
   - pyfi # failure in job https://hydra.nixos.org/build/233214389 at 2023-09-02
   - python-pickle # failure in job https://hydra.nixos.org/build/233230321 at 2023-09-02
   - q4c12-twofinger # failure in job https://hydra.nixos.org/build/233190771 at 2023-09-02
+  - qbe # failure in job https://hydra.nixos.org/build/252729841 at 2024-03-16
   - qc-oi-testgenerator # failure in job https://hydra.nixos.org/build/233197822 at 2023-09-02
   - qd # failure in job https://hydra.nixos.org/build/233213936 at 2023-09-02
   - qed # failure in job https://hydra.nixos.org/build/233249635 at 2023-09-02
@@ -4487,6 +4797,7 @@ broken-packages:
   - quenya-verb # failure in job https://hydra.nixos.org/build/233209006 at 2023-09-02
   - querystring-pickle # failure in job https://hydra.nixos.org/build/233246108 at 2023-09-02
   - questioner # failure in job https://hydra.nixos.org/build/233213704 at 2023-09-02
+  - queue-sheet # failure in job https://hydra.nixos.org/build/252717053 at 2024-03-16
   - quibble-core # failure in job https://hydra.nixos.org/build/233200635 at 2023-09-02
   - quic # failure in job https://hydra.nixos.org/build/233238400 at 2023-09-02
   - QuickAnnotate # failure in job https://hydra.nixos.org/build/233197428 at 2023-09-02
@@ -4498,9 +4809,11 @@ broken-packages:
   - quickcheck-property-monad # failure in job https://hydra.nixos.org/build/233228775 at 2023-09-02
   - quickcheck-rematch # failure in job https://hydra.nixos.org/build/233205449 at 2023-09-02
   - quickcheck-report # failure in job https://hydra.nixos.org/build/233214523 at 2023-09-02
+  - quickcheck-state-machine # failure in job https://hydra.nixos.org/build/252730381 at 2024-03-16
   - QuickCheckVariant # failure in job https://hydra.nixos.org/build/233239276 at 2023-09-02
   - quickcheck-webdriver # failure in job https://hydra.nixos.org/build/233228000 at 2023-09-02
   - quickjs-hs # failure in job https://hydra.nixos.org/build/233248440 at 2023-09-02
+  - QuickPlot # failure in job https://hydra.nixos.org/build/252731670 at 2024-03-16
   - quickpull # failure in job https://hydra.nixos.org/build/233238642 at 2023-09-02
   - quick-schema # failure in job https://hydra.nixos.org/build/233256519 at 2023-09-02
   - quickset # failure in job https://hydra.nixos.org/build/233236904 at 2023-09-02
@@ -4531,6 +4844,7 @@ broken-packages:
   - RandomDotOrg # failure in job https://hydra.nixos.org/build/233229709 at 2023-09-02
   - random-eff # failure in job https://hydra.nixos.org/build/233255496 at 2023-09-02
   - Randometer # failure in job https://hydra.nixos.org/build/233231023 at 2023-09-02
+  - random-fu-multivariate # failure in job https://hydra.nixos.org/build/252715951 at 2024-03-16
   - random-source # failure in job https://hydra.nixos.org/build/233254664 at 2023-09-02
   - random-stream # failure in job https://hydra.nixos.org/build/233240384 at 2023-09-02
   - random-string # failure in job https://hydra.nixos.org/build/233223504 at 2023-09-02
@@ -4580,6 +4894,7 @@ broken-packages:
   - records-sop # failure in job https://hydra.nixos.org/build/233251652 at 2023-09-02
   - record-wrangler # failure in job https://hydra.nixos.org/build/233212838 at 2023-09-02
   - rec-smallarray # failure in job https://hydra.nixos.org/build/233258592 at 2023-09-02
+  - recursive-line-count # failure in job https://hydra.nixos.org/build/252736942 at 2024-03-16
   - recursors # failure in job https://hydra.nixos.org/build/233234451 at 2023-09-02
   - red-black-record # failure in job https://hydra.nixos.org/build/233194275 at 2023-09-02
   - redis-hs # failure in job https://hydra.nixos.org/build/233191943 at 2023-09-02
@@ -4595,6 +4910,7 @@ broken-packages:
   - ref # failure in job https://hydra.nixos.org/build/233256479 at 2023-09-02
   - refined-http-api-data # failure in job https://hydra.nixos.org/build/233231753 at 2023-09-02
   - refined-with # failure in job https://hydra.nixos.org/build/233258564 at 2023-09-02
+  - refinery # failure in job https://hydra.nixos.org/build/252717003 at 2024-03-16
   - reflection-extras # failure in job https://hydra.nixos.org/build/233226544 at 2023-09-02
   - reflex-backend-socket # failure in job https://hydra.nixos.org/build/233254514 at 2023-09-02
   - reflex-basic-host # failure in job https://hydra.nixos.org/build/233210837 at 2023-09-02
@@ -4606,27 +4922,28 @@ broken-packages:
   - reflex-dom-retractable # failure in job https://hydra.nixos.org/build/233198362 at 2023-09-02
   - reflex-dom-svg # failure in job https://hydra.nixos.org/build/233193544 at 2023-09-02
   - reflex-external-ref # failure in job https://hydra.nixos.org/build/233215834 at 2023-09-02
-  - reflex-gi-gtk # failure in job https://hydra.nixos.org/build/233213103 at 2023-09-02
   - reflex-gloss # failure in job https://hydra.nixos.org/build/234457448 at 2023-09-13
   - reflex-jsx # failure in job https://hydra.nixos.org/build/233207137 at 2023-09-02
   - reflex-orphans # failure in job https://hydra.nixos.org/build/233249128 at 2023-09-02
   - reflex-sdl2 # failure in job https://hydra.nixos.org/build/233233947 at 2023-09-02
   - reflex-test-host # failure in job https://hydra.nixos.org/build/233220665 at 2023-09-02
   - reflex-transformers # failure in job https://hydra.nixos.org/build/233243647 at 2023-09-02
-  - reflex-vty # failure in job https://hydra.nixos.org/build/233225875 at 2023-09-02
   - ref-mtl # failure in job https://hydra.nixos.org/build/233260152 at 2023-09-02
   - reformat # failure in job https://hydra.nixos.org/build/233212381 at 2023-09-02
+  - reform # failure in job https://hydra.nixos.org/build/252717808 at 2024-03-16
   - reform-hamlet # failure in job https://hydra.nixos.org/build/233230013 at 2023-09-02
   - reform-hsp # failure in job https://hydra.nixos.org/build/233228737 at 2023-09-02
   - reform-lucid # failure in job https://hydra.nixos.org/build/233257636 at 2023-09-02
   - refresht # failure in job https://hydra.nixos.org/build/233245243 at 2023-09-02
   - refty # failure in job https://hydra.nixos.org/build/233215083 at 2023-09-02
   - reg-alloc # failure in job https://hydra.nixos.org/build/233195081 at 2023-09-02
+  - regex-applicative-text # failure in job https://hydra.nixos.org/build/252717881 at 2024-03-16
   - regex-dfa # failure in job https://hydra.nixos.org/build/233242994 at 2023-09-02
   - regexdot # failure in job https://hydra.nixos.org/build/233217389 at 2023-09-02
   - regex-generator # failure in job https://hydra.nixos.org/build/233239502 at 2023-09-02
   - regex-parsec # failure in job https://hydra.nixos.org/build/233223781 at 2023-09-02
   - regex-posix-unittest # failure in job https://hydra.nixos.org/build/233249685 at 2023-09-02
+  - regexpr # failure in job https://hydra.nixos.org/build/252711170 at 2024-03-16
   - regexpr-symbolic # failure in job https://hydra.nixos.org/build/233254451 at 2023-09-02
   - regexqq # failure in job https://hydra.nixos.org/build/233233149 at 2023-09-02
   - regex-tdfa-pipes # failure in job https://hydra.nixos.org/build/233247416 at 2023-09-02
@@ -4657,8 +4974,11 @@ broken-packages:
   - remote-monad # failure in job https://hydra.nixos.org/build/233247733 at 2023-09-02
   - reorderable # failure in job https://hydra.nixos.org/build/233256477 at 2023-09-02
   - reorder-expression # failure in job https://hydra.nixos.org/build/233215573 at 2023-09-02
+  - repa-bytestring # failure in job https://hydra.nixos.org/build/252723812 at 2024-03-16
+  - repa-devil # failure in job https://hydra.nixos.org/build/252724171 at 2024-03-16
   - repa-eval # failure in job https://hydra.nixos.org/build/233259486 at 2023-09-02
-  - repa # failure in job https://hydra.nixos.org/build/233219888 at 2023-09-02
+  - repa-examples # failure in job https://hydra.nixos.org/build/252712195 at 2024-03-16
+  - repa-linear-algebra # failure in job https://hydra.nixos.org/build/252713634 at 2024-03-16
   - repa-scalar # failure in job https://hydra.nixos.org/build/233213694 at 2023-09-02
   - repa-series # failure in job https://hydra.nixos.org/build/233200085 at 2023-09-02
   - ReplaceUmlaut # failure in job https://hydra.nixos.org/build/233228662 at 2023-09-02
@@ -4674,12 +4994,14 @@ broken-packages:
   - request # failure in job https://hydra.nixos.org/build/233256702 at 2023-09-02
   - request-monad # failure in job https://hydra.nixos.org/build/233204896 at 2023-09-02
   - require # failure in job https://hydra.nixos.org/build/233203170 at 2023-09-02
+  - requirements # failure in job https://hydra.nixos.org/build/252711740 at 2024-03-16
   - req-url-extra # failure in job https://hydra.nixos.org/build/233198488 at 2023-09-02
   - rescue # failure in job https://hydra.nixos.org/build/233230073 at 2023-09-02
   - reservoir # failure in job https://hydra.nixos.org/build/233194430 at 2023-09-02
   - resolve # failure in job https://hydra.nixos.org/build/233224070 at 2023-09-02
   - resolve-trivial-conflicts # failure in job https://hydra.nixos.org/build/233237974 at 2023-09-02
   - resource-effect # failure in job https://hydra.nixos.org/build/233253816 at 2023-09-02
+  - resource-effectful # failure in job https://hydra.nixos.org/build/252712267 at 2024-03-16
   - resource-embed # failure in job https://hydra.nixos.org/build/233209109 at 2023-09-02
   - resource-pool-monad # failure in job https://hydra.nixos.org/build/233204199 at 2023-09-02
   - resourcet-extra # failure in job https://hydra.nixos.org/build/245696134 at 2024-01-07
@@ -4709,6 +5031,7 @@ broken-packages:
   - rigel-viz # failure in job https://hydra.nixos.org/build/233251060 at 2023-09-02
   - ring-buffer # failure in job https://hydra.nixos.org/build/233245453 at 2023-09-02
   - ring-buffers # failure in job https://hydra.nixos.org/build/233259860 at 2023-09-02
+  - rings # failure in job https://hydra.nixos.org/build/252730924 at 2024-03-16
   - riscv-isa # failure in job https://hydra.nixos.org/build/233192811 at 2023-09-02
   - rison # failure in job https://hydra.nixos.org/build/233231694 at 2023-09-02
   - Ritt-Wu # failure in job https://hydra.nixos.org/build/233221182 at 2023-09-02
@@ -4722,6 +5045,7 @@ broken-packages:
   - robin # failure in job https://hydra.nixos.org/build/233205010 at 2023-09-02
   - robots-txt # failure in job https://hydra.nixos.org/build/233243090 at 2023-09-02
   - roc-cluster # failure in job https://hydra.nixos.org/build/233202517 at 2023-09-02
+  - roc-id # failure in job https://hydra.nixos.org/build/252715473 at 2024-03-16
   - roguestar # failure in job https://hydra.nixos.org/build/233233677 at 2023-09-02
   - roku-api # failure in job https://hydra.nixos.org/build/233249158 at 2023-09-02
   - rollbar-client # failure in job https://hydra.nixos.org/build/233241484 at 2023-09-02
@@ -4731,6 +5055,7 @@ broken-packages:
   - ron # failure in job https://hydra.nixos.org/build/233197052 at 2023-09-02
   - rope # failure in job https://hydra.nixos.org/build/233198109 at 2023-09-02
   - rosebud # failure in job https://hydra.nixos.org/build/233225772 at 2023-09-02
+  - rose # failure in job https://hydra.nixos.org/build/252717613 at 2024-03-16
   - rose-trees # timeout
   - rosmsg # failure in job https://hydra.nixos.org/build/233248569 at 2023-09-02
   - rospkg # failure in job https://hydra.nixos.org/build/233229989 at 2023-09-02
@@ -4765,14 +5090,16 @@ broken-packages:
   - rustls # failure in job https://hydra.nixos.org/build/233249545 at 2023-09-02
   - rws # failure in job https://hydra.nixos.org/build/233237887 at 2023-09-02
   - RxHaskell # failure in job https://hydra.nixos.org/build/233248784 at 2023-09-02
+  - rzk # failure in job https://hydra.nixos.org/build/252726148 at 2024-03-16
   - rz-pipe # failure in job https://hydra.nixos.org/build/233228273 at 2023-09-02
   - SableCC2Hs # failure in job https://hydra.nixos.org/build/233213351 at 2023-09-02
+  - safe-access # failure in job https://hydra.nixos.org/build/252736917 at 2024-03-16
   - safe-buffer-monad # failure in job https://hydra.nixos.org/build/233192108 at 2023-09-02
   - safe-coerce # failure in job https://hydra.nixos.org/build/233244289 at 2023-09-02
-  - safe-coloured-text-gen # failure in job https://hydra.nixos.org/build/233225146 at 2023-09-02
   - safe-coloured-text-layout # failure in job https://hydra.nixos.org/build/233247031 at 2023-09-02
   - safecopy-migrate # failure in job https://hydra.nixos.org/build/233224574 at 2023-09-02
   - safecopy-store # failure in job https://hydra.nixos.org/build/233227973 at 2023-09-02
+  - safe-exceptions-checked # failure in job https://hydra.nixos.org/build/252717135 at 2024-03-16
   - safe-freeze # failure in job https://hydra.nixos.org/build/233230451 at 2023-09-02
   - safe-globals # failure in job https://hydra.nixos.org/build/233201910 at 2023-09-02
   - safeint # failure in job https://hydra.nixos.org/build/233257369 at 2023-09-02
@@ -4794,6 +5121,7 @@ broken-packages:
   - sandman # failure in job https://hydra.nixos.org/build/233209667 at 2023-09-02
   - sarasvati # failure in job https://hydra.nixos.org/build/233208235 at 2023-09-02
   - satchmo-backends # failure in job https://hydra.nixos.org/build/233228506 at 2023-09-02
+  - satchmo # failure in job https://hydra.nixos.org/build/252712042 at 2024-03-16
   - satchmo-minisat # failure in job https://hydra.nixos.org/build/233229585 at 2023-09-02
   - sat # failure in job https://hydra.nixos.org/build/233225713 at 2023-09-02
   - Saturnin # failure in job https://hydra.nixos.org/build/233227938 at 2023-09-02
@@ -4801,9 +5129,11 @@ broken-packages:
   - savage # failure in job https://hydra.nixos.org/build/233213243 at 2023-09-02
   - sax # failure in job https://hydra.nixos.org/build/233218617 at 2023-09-02
   - sbv # failure in job https://hydra.nixos.org/build/233210414 at 2023-09-02
+  - sc2-proto # failure in job https://hydra.nixos.org/build/252730301 at 2024-03-16
   - scale # failure in job https://hydra.nixos.org/build/233222189 at 2023-09-02
   - scaleimage # failure in job https://hydra.nixos.org/build/233240688 at 2023-09-02
   - scalendar # failure in job https://hydra.nixos.org/build/233206581 at 2023-09-02
+  - scat # failure in job https://hydra.nixos.org/build/252730427 at 2024-03-16
   - scc # failure in job https://hydra.nixos.org/build/233247446 at 2023-09-02
   - scgi # failure in job https://hydra.nixos.org/build/233247314 at 2023-09-02
   - schedevr # failure in job https://hydra.nixos.org/build/233240124 at 2023-09-02
@@ -4817,11 +5147,14 @@ broken-packages:
   - scottish # failure in job https://hydra.nixos.org/build/233251021 at 2023-09-02
   - scotty-binding-play # failure in job https://hydra.nixos.org/build/233244465 at 2023-09-02
   - scotty-blaze # failure in job https://hydra.nixos.org/build/233190960 at 2023-09-02
+  - scotty-cookie # failure in job https://hydra.nixos.org/build/252738988 at 2024-03-16
   - scotty-format # failure in job https://hydra.nixos.org/build/233249643 at 2023-09-02
+  - scotty-path-normalizer # failure in job https://hydra.nixos.org/build/252738625 at 2024-03-16
   - scotty-resource # failure in job https://hydra.nixos.org/build/233258457 at 2023-09-02
   - scotty-rest # failure in job https://hydra.nixos.org/build/233209040 at 2023-09-02
   - scotty-session # failure in job https://hydra.nixos.org/build/233258736 at 2023-09-02
   - scotty-tls # failure in job https://hydra.nixos.org/build/233250916 at 2023-09-02
+  - scotty-utils # failure in job https://hydra.nixos.org/build/252727834 at 2024-03-16
   - scotty-view # failure in job https://hydra.nixos.org/build/233245343 at 2023-09-02
   - scrapbook-core # failure in job https://hydra.nixos.org/build/233222406 at 2023-09-02
   - scrape-changes # failure in job https://hydra.nixos.org/build/233225890 at 2023-09-02
@@ -4842,6 +5175,8 @@ broken-packages:
   - sdr # failure in job https://hydra.nixos.org/build/243807383 at 2024-01-01
   - seacat # failure in job https://hydra.nixos.org/build/233229959 at 2023-09-02
   - seakale # failure in job https://hydra.nixos.org/build/233236200 at 2023-09-02
+  - search # failure in job https://hydra.nixos.org/build/252723014 at 2024-03-16
+  - secd # failure in job https://hydra.nixos.org/build/252725214 at 2024-03-16
   - secdh # failure in job https://hydra.nixos.org/build/233244391 at 2023-09-02
   - sec # failure in job https://hydra.nixos.org/build/233233150 at 2023-09-02
   - seclib # failure in job https://hydra.nixos.org/build/233203235 at 2023-09-02
@@ -4854,17 +5189,19 @@ broken-packages:
   - secure-sockets # failure in job https://hydra.nixos.org/build/233254170 at 2023-09-02
   - secureUDP # failure in job https://hydra.nixos.org/build/233215410 at 2023-09-02
   - SegmentTree # failure in job https://hydra.nixos.org/build/233216161 at 2023-09-02
+  - selda # failure in job https://hydra.nixos.org/build/252735635 at 2024-03-16
   - selda-postgresql # failure in job https://hydra.nixos.org/build/245539286 at 2024-01-02
   - selectors # failure in job https://hydra.nixos.org/build/233227433 at 2023-09-02
   - selenium # failure in job https://hydra.nixos.org/build/233214276 at 2023-09-02
   - selinux # failure in job https://hydra.nixos.org/build/233192853 at 2023-09-02
   - Semantique # failure in job https://hydra.nixos.org/build/233199841 at 2023-09-02
-  - semaphore-compat # failure in job https://hydra.nixos.org/build/233225619 at 2023-09-02
   - semdoc # failure in job https://hydra.nixos.org/build/233258790 at 2023-09-02
   - semialign-indexed # failure in job https://hydra.nixos.org/build/233210150 at 2023-09-02
   - semialign-optics # failure in job https://hydra.nixos.org/build/233229100 at 2023-09-02
   - semibounded-lattices # failure in job https://hydra.nixos.org/build/233195267 at 2023-09-02
   - Semigroup # failure in job https://hydra.nixos.org/build/233201793 at 2023-09-02
+  - semigroupoid-extras # failure in job https://hydra.nixos.org/build/252717980 at 2024-03-16
+  - semigroupoids-do # failure in job https://hydra.nixos.org/build/252727319 at 2024-03-16
   - semigroupoids-syntax # failure in job https://hydra.nixos.org/build/233213850 at 2023-09-02
   - semigroups-actions # failure in job https://hydra.nixos.org/build/233216317 at 2023-09-02
   - semilattices # failure in job https://hydra.nixos.org/build/233223765 at 2023-09-02
@@ -4878,7 +5215,9 @@ broken-packages:
   - SeqAlign # failure in job https://hydra.nixos.org/build/233214595 at 2023-09-02
   - sequent-core # failure in job https://hydra.nixos.org/build/233202838 at 2023-09-02
   - sequential-index # failure in job https://hydra.nixos.org/build/233228686 at 2023-09-02
+  - serdoc-core # failure in job https://hydra.nixos.org/build/252726252 at 2024-03-16
   - serf # failure in job https://hydra.nixos.org/build/233251981 at 2023-09-02
+  - serial # failure in job https://hydra.nixos.org/build/252729356 at 2024-03-16
   - serialize-instances # failure in job https://hydra.nixos.org/build/233239330 at 2023-09-02
   - serialport # failure in job https://hydra.nixos.org/build/233201348 at 2023-09-02
   - serokell-util # failure in job https://hydra.nixos.org/build/233209952 at 2023-09-02
@@ -4887,6 +5226,7 @@ broken-packages:
   - servant-auth-server # failure in job https://hydra.nixos.org/build/233208742 at 2023-09-02
   - servant-avro # failure in job https://hydra.nixos.org/build/233225632 at 2023-09-02
   - servant-benchmark # failure in job https://hydra.nixos.org/build/233203748 at 2023-09-02
+  - servant-cassava # failure in job https://hydra.nixos.org/build/252730906 at 2024-03-16
   - servant-client-js # failure in job https://hydra.nixos.org/build/233194725 at 2023-09-02
   - servant-cli # failure in job https://hydra.nixos.org/build/233259212 at 2023-09-02
   - servant-combinators # failure in job https://hydra.nixos.org/build/233249924 at 2023-09-02
@@ -4904,6 +5244,7 @@ broken-packages:
   - servant-http-streams # failure in job https://hydra.nixos.org/build/233242852 at 2023-09-02
   - servant-iCalendar # failure in job https://hydra.nixos.org/build/233200493 at 2023-09-02
   - servant-jquery # failure in job https://hydra.nixos.org/build/233238796 at 2023-09-02
+  - servant-jsonrpc # failure in job https://hydra.nixos.org/build/252716396 at 2024-03-16
   - servant-kotlin # failure in job https://hydra.nixos.org/build/233598190 at 2023-09-02
   - servant-mock # failure in job https://hydra.nixos.org/build/245788431 at 2024-01-07
   - servant-namedargs # failure in job https://hydra.nixos.org/build/233258674 at 2023-09-02
@@ -4912,6 +5253,7 @@ broken-packages:
   - servant-polysemy # failure in job https://hydra.nixos.org/build/233218670 at 2023-09-02
   - servant-pool # failure in job https://hydra.nixos.org/build/233208935 at 2023-09-02
   - servant-prometheus # failure in job https://hydra.nixos.org/build/236685165 at 2023-10-04
+  - servant-proto-lens # failure in job https://hydra.nixos.org/build/252736298 at 2024-03-16
   - servant-purescript # failure in job https://hydra.nixos.org/build/233598080 at 2023-09-02
   - servant-py # failure in job https://hydra.nixos.org/build/233598104 at 2023-09-02
   - servant-quickcheck # failure in job https://hydra.nixos.org/build/233236741 at 2023-09-02
@@ -4926,6 +5268,8 @@ broken-packages:
   - servant-streaming # failure in job https://hydra.nixos.org/build/233215168 at 2023-09-02
   - servant-streamly # failure in job https://hydra.nixos.org/build/233231404 at 2023-09-02
   - servant-tracing # failure in job https://hydra.nixos.org/build/233229308 at 2023-09-02
+  - servant-typed-error # failure in job https://hydra.nixos.org/build/252727241 at 2024-03-16
+  - servant-util # failure in job https://hydra.nixos.org/build/252729690 at 2024-03-16
   - servant-wasm # failure in job https://hydra.nixos.org/build/233191644 at 2023-09-02
   - servant-xml-conduit # failure in job https://hydra.nixos.org/build/243828707 at 2024-01-01
   - servant-yaml # failure in job https://hydra.nixos.org/build/233260010 at 2023-09-02
@@ -4936,16 +5280,20 @@ broken-packages:
   - serversession-backend-persistent # failure in job https://hydra.nixos.org/build/233239242 at 2023-09-02
   - services # failure in job https://hydra.nixos.org/build/233249029 at 2023-09-02
   - serviette # failure in job https://hydra.nixos.org/build/233226968 at 2023-09-02
+  - ses-html-snaplet # failure in job https://hydra.nixos.org/build/252719452 at 2024-03-16
   - SessionLogger # failure in job https://hydra.nixos.org/build/233235790 at 2023-09-02
   - sessions # failure in job https://hydra.nixos.org/build/233214614 at 2023-09-02
   - sessiontypes # failure in job https://hydra.nixos.org/build/233224975 at 2023-09-02
   - setdown # failure in job https://hydra.nixos.org/build/241521053 at 2023-12-03
+  - set-extra # failure in job https://hydra.nixos.org/build/252738545 at 2024-03-16
   - setgame # failure in job https://hydra.nixos.org/build/233218664 at 2023-09-02
   - set-of # failure in job https://hydra.nixos.org/build/233202960 at 2023-09-02
   - setoid # failure in job https://hydra.nixos.org/build/233213744 at 2023-09-02
+  - sets # failure in job https://hydra.nixos.org/build/252722613 at 2024-03-16
   - setters # failure in job https://hydra.nixos.org/build/233199079 at 2023-09-02
   - set-with # failure in job https://hydra.nixos.org/build/233209870 at 2023-09-02
   - sexp # failure in job https://hydra.nixos.org/build/233214197 at 2023-09-02
+  - sexpresso # failure in job https://hydra.nixos.org/build/252739111 at 2024-03-16
   - sexpr-parser # failure in job https://hydra.nixos.org/build/233208359 at 2023-09-02
   - sext # failure in job https://hydra.nixos.org/build/233245441 at 2023-09-02
   - sfml-audio # failure in job https://hydra.nixos.org/build/233253560 at 2023-09-02
@@ -4967,6 +5315,7 @@ broken-packages:
   - shake-persist # failure in job https://hydra.nixos.org/build/233228771 at 2023-09-02
   - shakespeare-babel # failure in job https://hydra.nixos.org/build/233252003 at 2023-09-02
   - shakespeare-sass # failure in job https://hydra.nixos.org/build/233195432 at 2023-09-02
+  - shapes # failure in job https://hydra.nixos.org/build/252736910 at 2024-03-16
   - shared-buffer # failure in job https://hydra.nixos.org/build/233242275 at 2023-09-02
   - shared-fields # failure in job https://hydra.nixos.org/build/233228500 at 2023-09-02
   - sha-streams # failure in job https://hydra.nixos.org/build/233257983 at 2023-09-02
@@ -4975,6 +5324,7 @@ broken-packages:
   - shellish # failure in job https://hydra.nixos.org/build/233217316 at 2023-09-02
   - shellmate # failure in job https://hydra.nixos.org/build/233217636 at 2023-09-02
   - shell-pipe # failure in job https://hydra.nixos.org/build/233226605 at 2023-09-02
+  - shentong # failure in job https://hydra.nixos.org/build/252711957 at 2024-03-16
   - shikensu # failure in job https://hydra.nixos.org/build/233230883 at 2023-09-02
   - shimmer # failure in job https://hydra.nixos.org/build/233192737 at 2023-09-02
   - shine-examples # failure in job https://hydra.nixos.org/build/233192871 at 2023-09-02
@@ -4993,6 +5343,8 @@ broken-packages:
   - sifflet # failure in job https://hydra.nixos.org/build/233210515 at 2023-09-02
   - sifflet-lib # failure in job https://hydra.nixos.org/build/233222675 at 2023-09-02
   - sigmacord # failure in job https://hydra.nixos.org/build/233194491 at 2023-09-02
+  - signable-haskell-protoc # failure in job https://hydra.nixos.org/build/252734188 at 2024-03-16
+  - signal-messaging-dbus # failure in job https://hydra.nixos.org/build/252723131 at 2024-03-16
   - simd # failure in job https://hydra.nixos.org/build/233206642 at 2023-09-02
   - simfin # failure in job https://hydra.nixos.org/build/233226776 at 2023-09-02
   - simple-actors # failure in job https://hydra.nixos.org/build/233239183 at 2023-09-02
@@ -5024,17 +5376,20 @@ broken-packages:
   - simple-server # failure in job https://hydra.nixos.org/build/233242498 at 2023-09-02
   - simplesmtpclient # failure in job https://hydra.nixos.org/build/233235261 at 2023-09-02
   - simple-sql-parser # failure in job https://hydra.nixos.org/build/233203075 at 2023-09-02
+  - simplessh # failure in job https://hydra.nixos.org/build/252738958 at 2024-03-16
   - simple-stacked-vm # failure in job https://hydra.nixos.org/build/233206051 at 2023-09-02
   - simplest-sqlite # failure in job https://hydra.nixos.org/build/233248487 at 2023-09-02
   - simple-tabular # failure in job https://hydra.nixos.org/build/233233368 at 2023-09-02
   - simple-tar # failure in job https://hydra.nixos.org/build/233206675 at 2023-09-02
   - simple-ui # failure in job https://hydra.nixos.org/build/233248287 at 2023-09-02
   - simple-units # failure in job https://hydra.nixos.org/build/233215127 at 2023-09-02
+  - simplex # failure in job https://hydra.nixos.org/build/252731268 at 2024-03-16
   - simplexmq # failure in job https://hydra.nixos.org/build/233223717 at 2023-09-02
   - simple-zipper # failure in job https://hydra.nixos.org/build/233210316 at 2023-09-02
   - simplistic-generics # failure in job https://hydra.nixos.org/build/233217412 at 2023-09-02
   - singlethongs # failure in job https://hydra.nixos.org/build/233202756 at 2023-09-02
   - singleton-dict # failure in job https://hydra.nixos.org/build/233245405 at 2023-09-02
+  - singletons-base # failure in job https://hydra.nixos.org/build/252714303 at 2024-03-16
   - singleton-typelits # failure in job https://hydra.nixos.org/build/233250877 at 2023-09-02
   - single-tuple # failure in job https://hydra.nixos.org/build/233204418 at 2023-09-02
   - singnal # failure in job https://hydra.nixos.org/build/233214111 at 2023-09-02
@@ -5044,6 +5399,7 @@ broken-packages:
   - siphash # failure in job https://hydra.nixos.org/build/233199344 at 2023-09-02
   - sitepipe # failure in job https://hydra.nixos.org/build/233201989 at 2023-09-02
   - sixfiguregroup # failure in job https://hydra.nixos.org/build/233252141 at 2023-09-02
+  - sixty-five-oh-two # failure in job https://hydra.nixos.org/build/252714578 at 2024-03-16
   - sized-grid # failure in job https://hydra.nixos.org/build/233239056 at 2023-09-02
   - sized-types # failure in job https://hydra.nixos.org/build/233244977 at 2023-09-02
   - sized-vector # failure in job https://hydra.nixos.org/build/233227779 at 2023-09-02
@@ -5057,11 +5413,14 @@ broken-packages:
   - skopedate # failure in job https://hydra.nixos.org/build/233220634 at 2023-09-02
   - skulk # failure in job https://hydra.nixos.org/build/233258672 at 2023-09-02
   - skylighting-extensions # failure in job https://hydra.nixos.org/build/233221387 at 2023-09-02
+  - skylighting-lucid # failure in job https://hydra.nixos.org/build/252724701 at 2024-03-16
   - skype4hs # failure in job https://hydra.nixos.org/build/233221058 at 2023-09-02
   - slack-api # failure in job https://hydra.nixos.org/build/233215701 at 2023-09-02
   - slack # failure in job https://hydra.nixos.org/build/233221065 at 2023-09-02
   - slack-notify-haskell # failure in job https://hydra.nixos.org/build/233249025 at 2023-09-02
+  - slack-progressbar # failure in job https://hydra.nixos.org/build/252722423 at 2024-03-16
   - slack-verify # failure in job https://hydra.nixos.org/build/233206026 at 2023-09-02
+  - slack-web # failure in job https://hydra.nixos.org/build/252724144 at 2024-03-16
   - sliceofpy # failure in job https://hydra.nixos.org/build/233224418 at 2023-09-02
   - slidemews # failure in job https://hydra.nixos.org/build/233205910 at 2023-09-02
   - Slides # failure in job https://hydra.nixos.org/build/233201684 at 2023-09-02
@@ -5098,16 +5457,39 @@ broken-packages:
   - smtps-gmail # failure in job https://hydra.nixos.org/build/233191933 at 2023-09-02
   - smuggler2 # failure in job https://hydra.nixos.org/build/233233932 at 2023-09-02
   - smuggler # failure in job https://hydra.nixos.org/build/233199288 at 2023-09-02
+  - snail # failure in job https://hydra.nixos.org/build/252731890 at 2024-03-16
   - snake # failure in job https://hydra.nixos.org/build/233242029 at 2023-09-02
   - snake-game # failure in job https://hydra.nixos.org/build/234441416 at 2023-09-13
   - snap-accept # failure in job https://hydra.nixos.org/build/233254776 at 2023-09-02
   - snap-blaze-clay # failure in job https://hydra.nixos.org/build/233204686 at 2023-09-02
   - snap-configuration-utilities # failure in job https://hydra.nixos.org/build/233202496 at 2023-09-02
+  - snap-error-collector # failure in job https://hydra.nixos.org/build/252722251 at 2024-03-16
   - snap-language # failure in job https://hydra.nixos.org/build/233257003 at 2023-09-02
+  - snaplet-acid-state # failure in job https://hydra.nixos.org/build/252733993 at 2024-03-16
+  - snaplet-amqp # failure in job https://hydra.nixos.org/build/252722868 at 2024-03-16
+  - snaplet-coffee # failure in job https://hydra.nixos.org/build/252712879 at 2024-03-16
+  - snaplet-css-min # failure in job https://hydra.nixos.org/build/252718032 at 2024-03-16
+  - snaplet-environments # failure in job https://hydra.nixos.org/build/252718495 at 2024-03-16
+  - snaplet-hslogger # failure in job https://hydra.nixos.org/build/252719175 at 2024-03-16
+  - snaplet-influxdb # failure in job https://hydra.nixos.org/build/252717331 at 2024-03-16
+  - snaplet-mandrill # failure in job https://hydra.nixos.org/build/252733169 at 2024-03-16
+  - snaplet-mongodb-minimalistic # failure in job https://hydra.nixos.org/build/252716449 at 2024-03-16
+  - snaplet-persistent # failure in job https://hydra.nixos.org/build/252725821 at 2024-03-16
+  - snaplet-postgresql-simple # failure in job https://hydra.nixos.org/build/252716863 at 2024-03-16
+  - snaplet-purescript # failure in job https://hydra.nixos.org/build/252731136 at 2024-03-16
+  - snaplet-redis # failure in job https://hydra.nixos.org/build/252721419 at 2024-03-16
+  - snaplet-sass # failure in job https://hydra.nixos.org/build/252729370 at 2024-03-16
+  - snaplet-scoped-session # failure in job https://hydra.nixos.org/build/252732443 at 2024-03-16
+  - snaplet-ses-html # failure in job https://hydra.nixos.org/build/252718019 at 2024-03-16
+  - snaplet-sqlite-simple # failure in job https://hydra.nixos.org/build/252738602 at 2024-03-16
+  - snaplet-typed-sessions # failure in job https://hydra.nixos.org/build/252724459 at 2024-03-16
   - snap-loader-dynamic # failure in job https://hydra.nixos.org/build/233197376 at 2023-09-02
   - snap-predicates # failure in job https://hydra.nixos.org/build/233244904 at 2023-09-02
+  - snappy-c # failure in job https://hydra.nixos.org/build/252728597 at 2024-03-16
   - snappy-conduit # failure in job https://hydra.nixos.org/build/233196865 at 2023-09-02
+  - snap-routes # failure in job https://hydra.nixos.org/build/252718562 at 2024-03-16
   - snap-stream # failure in job https://hydra.nixos.org/build/233237969 at 2023-09-02
+  - snap-testing # failure in job https://hydra.nixos.org/build/252736070 at 2024-03-16
   - SNet # failure in job https://hydra.nixos.org/build/233225638 at 2023-09-02
   - snipcheck # failure in job https://hydra.nixos.org/build/233214417 at 2023-09-02
   - snorkels # failure in job https://hydra.nixos.org/build/233229705 at 2023-09-02
@@ -5150,6 +5532,7 @@ broken-packages:
   - special-keys # failure in job https://hydra.nixos.org/build/233191988 at 2023-09-02
   - spectacle # failure in job https://hydra.nixos.org/build/233207488 at 2023-09-02
   - speculation # failure in job https://hydra.nixos.org/build/233211559 at 2023-09-02
+  - specup # failure in job https://hydra.nixos.org/build/252712918 at 2024-03-16
   - sphinxesc # failure in job https://hydra.nixos.org/build/233194825 at 2023-09-02
   - sphinx # failure in job https://hydra.nixos.org/build/233247449 at 2023-09-02
   - Spintax # failure in job https://hydra.nixos.org/build/233224001 at 2023-09-02
@@ -5160,8 +5543,10 @@ broken-packages:
   - splint # failure in job https://hydra.nixos.org/build/233202156 at 2023-09-02
   - split-morphism # failure in job https://hydra.nixos.org/build/233257735 at 2023-09-02
   - splitter # failure in job https://hydra.nixos.org/build/233204684 at 2023-09-02
+  - splot # failure in job https://hydra.nixos.org/build/252715661 at 2024-03-16
   - Spock-api-ghcjs # failure in job https://hydra.nixos.org/build/233246163 at 2023-09-02
   - Spock-auth # failure in job https://hydra.nixos.org/build/233212125 at 2023-09-02
+  - Spock-core # failure in job https://hydra.nixos.org/build/252720122 at 2024-03-16
   - spoonutil # failure in job https://hydra.nixos.org/build/233257645 at 2023-09-02
   - spotify # failure in job https://hydra.nixos.org/build/233254990 at 2023-09-02
   - spoty # failure in job https://hydra.nixos.org/build/233233863 at 2023-09-02
@@ -5172,6 +5557,8 @@ broken-packages:
   - sqel # failure in job https://hydra.nixos.org/build/233256622 at 2023-09-02
   - sqids # failure in job https://hydra.nixos.org/build/233213849 at 2023-09-02
   - sqlcipher # failure in job https://hydra.nixos.org/build/233259217 at 2023-09-02
+  - sqlcli # failure in job https://hydra.nixos.org/build/252719841 at 2024-03-16
+  - sqlite-easy # failure in job https://hydra.nixos.org/build/252728831 at 2024-03-16
   - sqlite # failure in job https://hydra.nixos.org/build/233215839 at 2023-09-02
   - sqlite-simple-errors # failure in job https://hydra.nixos.org/build/233232977 at 2023-09-02
   - sql-simple # failure in job https://hydra.nixos.org/build/233252834 at 2023-09-02
@@ -5179,8 +5566,10 @@ broken-packages:
   - sqsd-local # failure in updateAutotoolsGnuConfigScriptsPhase in job https://hydra.nixos.org/build/237237046 at 2023-10-21
   - srcinst # failure in job https://hydra.nixos.org/build/233221356 at 2023-09-02
   - srt-attoparsec # failure in job https://hydra.nixos.org/build/233248456 at 2023-09-02
+  - srv # failure in job https://hydra.nixos.org/build/252734755 at 2024-03-16
   - sscan # failure in job https://hydra.nixos.org/build/233248144 at 2023-09-02
   - ssh # failure in job https://hydra.nixos.org/build/233215512 at 2023-09-02
+  - sshtun # failure in job https://hydra.nixos.org/build/252729199 at 2024-03-16
   - ssh-tunnel # failure in job https://hydra.nixos.org/build/233245203 at 2023-09-02
   - SSTG # failure in job https://hydra.nixos.org/build/233250677 at 2023-09-02
   - st2 # failure in job https://hydra.nixos.org/build/233256469 at 2023-09-02
@@ -5198,6 +5587,7 @@ broken-packages:
   - stack-lib # failure in job https://hydra.nixos.org/build/233662933 at 2023-09-02
   - stack-prism # failure in job https://hydra.nixos.org/build/233216902 at 2023-09-02
   - stack-run # failure in job https://hydra.nixos.org/build/233213318 at 2023-09-02
+  - stack-tag # failure in job https://hydra.nixos.org/build/252737306 at 2024-03-16
   - stack-type # failure in job https://hydra.nixos.org/build/233208961 at 2023-09-02
   - stack-wrapper # failure in job https://hydra.nixos.org/build/233259663 at 2023-09-02
   - staged-gg # failure in job https://hydra.nixos.org/build/233252183 at 2023-09-02
@@ -5214,6 +5604,7 @@ broken-packages:
   - state-record # failure in job https://hydra.nixos.org/build/233222199 at 2023-09-02
   - static # failure in job https://hydra.nixos.org/build/233217136 at 2023-09-02
   - static-ls # failure in job https://hydra.nixos.org/build/233199876 at 2023-09-02
+  - static-resources # failure in job https://hydra.nixos.org/build/252724891 at 2024-03-16
   - static-tensor # failure in job https://hydra.nixos.org/build/233217705 at 2023-09-02
   - statistics-fusion # failure in job https://hydra.nixos.org/build/233229681 at 2023-09-02
   - statistics-hypergeometric-genvar # failure in job https://hydra.nixos.org/build/233193257 at 2023-09-02
@@ -5221,6 +5612,7 @@ broken-packages:
   - statsd # failure in job https://hydra.nixos.org/build/233235428 at 2023-09-02
   - stats # failure in job https://hydra.nixos.org/build/233255737 at 2023-09-02
   - statvfs # failure in job https://hydra.nixos.org/build/233220845 at 2023-09-02
+  - staversion # failure in job https://hydra.nixos.org/build/252719926 at 2024-03-16
   - stb-image-redux # failure in job https://hydra.nixos.org/build/233202153 at 2023-09-02
   - stc-lang # failure in job https://hydra.nixos.org/build/233241234 at 2023-09-02
   - stdata # failure in job https://hydra.nixos.org/build/233255940 at 2023-09-02
@@ -5233,13 +5625,16 @@ broken-packages:
   - stepwise # failure in job https://hydra.nixos.org/build/233238388 at 2023-09-02
   - stgi # failure in job https://hydra.nixos.org/build/233233567 at 2023-09-02
   - STL # failure in job https://hydra.nixos.org/build/233231485 at 2023-09-02
+  - stm-actor # failure in job https://hydra.nixos.org/build/252722896 at 2024-03-16
   - stm-chunked-queues # failure in job https://hydra.nixos.org/build/233227966 at 2023-09-02
   - stm-firehose # failure in job https://hydra.nixos.org/build/233220943 at 2023-09-02
+  - stm-lifted # failure in job https://hydra.nixos.org/build/252726872 at 2024-03-16
   - stm-promise # failure in job https://hydra.nixos.org/build/233204293 at 2023-09-02
   - stm-stats # failure in job https://hydra.nixos.org/build/233214914 at 2023-09-02
   - stochastic # failure in job https://hydra.nixos.org/build/233242019 at 2023-09-02
   - Stomp # failure in job https://hydra.nixos.org/build/233252583 at 2023-09-02
   - stooq-api # failure in job https://hydra.nixos.org/build/233200858 at 2023-09-02
+  - stopwatch # failure in job https://hydra.nixos.org/build/252716540 at 2024-03-16
   - storable # failure in job https://hydra.nixos.org/build/233228880 at 2023-09-02
   - storable-offset # failure in job https://hydra.nixos.org/build/233242993 at 2023-09-02
   - storable-static-array # failure in job https://hydra.nixos.org/build/233222724 at 2023-09-02
@@ -5260,27 +5655,37 @@ broken-packages:
   - streaming-events # failure in job https://hydra.nixos.org/build/233198216 at 2023-09-02
   - streaming-lzma # failure in job https://hydra.nixos.org/build/233239635 at 2023-09-02
   - streaming-osm # failure in job https://hydra.nixos.org/build/233229467 at 2023-09-02
+  - streaming-pcap # failure in job https://hydra.nixos.org/build/252731309 at 2024-03-16
   - streaming-png # failure in job https://hydra.nixos.org/build/233236752 at 2023-09-02
   - streaming-postgresql-simple # failure in job https://hydra.nixos.org/build/233212839 at 2023-09-02
+  - streaming-utils # failure in job https://hydra.nixos.org/build/252725243 at 2024-03-16
   - streaming-with # failure in job https://hydra.nixos.org/build/233191184 at 2023-09-02
+  - streamly-archive # failure in job https://hydra.nixos.org/build/252735935 at 2024-03-16
   - streamly-binary # failure in job https://hydra.nixos.org/build/233240602 at 2023-09-02
   - streamly-cassava # failure in job https://hydra.nixos.org/build/233237843 at 2023-09-02
+  - streamly-examples # failure in job https://hydra.nixos.org/build/252721153 at 2024-03-16
   - streamly-fsnotify # failure in job https://hydra.nixos.org/build/233220038 at 2023-09-02
+  - streamly-lmdb # failure in job https://hydra.nixos.org/build/252731414 at 2024-03-16
   - streamly-lz4 # failure in job https://hydra.nixos.org/build/233219321 at 2023-09-02
   - streamly-posix # failure in job https://hydra.nixos.org/build/233194023 at 2023-09-02
+  - streamly-statistics # failure in job https://hydra.nixos.org/build/252719066 at 2024-03-16
   - stream-monad # failure in job https://hydra.nixos.org/build/233222592 at 2023-09-02
   - streamproc # failure in job https://hydra.nixos.org/build/233196179 at 2023-09-02
+  - streamt # failure in job https://hydra.nixos.org/build/252724093 at 2024-03-16
   - strelka-core # failure in job https://hydra.nixos.org/build/233218594 at 2023-09-02
   - str # failure in job https://hydra.nixos.org/build/233227698 at 2023-09-02
   - StrictBench # failure in job https://hydra.nixos.org/build/233259575 at 2023-09-02
   - StrictCheck # failure in job https://hydra.nixos.org/build/233214649 at 2023-09-02
   - strict-containers # failure in job https://hydra.nixos.org/build/233215090 at 2023-09-02
   - strict-ghc-plugin # failure in job https://hydra.nixos.org/build/233246830 at 2023-09-02
+  - strict-impl-params # failure in job https://hydra.nixos.org/build/252732248 at 2024-03-16
   - strictly # failure in job https://hydra.nixos.org/build/233197142 at 2023-09-02
   - strict-tuple-lens # failure in job https://hydra.nixos.org/build/233194548 at 2023-09-02
+  - strict-writer # failure in job https://hydra.nixos.org/build/252725649 at 2024-03-16
   - string-class # failure in job https://hydra.nixos.org/build/233230041 at 2023-09-02
   - string-conv-tests # failure in job https://hydra.nixos.org/build/233242710 at 2023-09-02
   - string-fromto # failure in job https://hydra.nixos.org/build/233223157 at 2023-09-02
+  - string-interpreter # failure in job https://hydra.nixos.org/build/252739490 at 2024-03-16
   - string-isos # failure in job https://hydra.nixos.org/build/233252917 at 2023-09-02
   - stringlike # failure in job https://hydra.nixos.org/build/233258750 at 2023-09-02
   - string-quote # failure in job https://hydra.nixos.org/build/233259595 at 2023-09-02
@@ -5288,26 +5693,33 @@ broken-packages:
   - stripe-core # failure in job https://hydra.nixos.org/build/233215702 at 2023-09-02
   - stripe # failure in job https://hydra.nixos.org/build/233248173 at 2023-09-02
   - stripe-hs # failure in job https://hydra.nixos.org/build/233203500 at 2023-09-02
+  - stripe-scotty # failure in job https://hydra.nixos.org/build/252711778 at 2024-03-16
   - strong-path # failure in job https://hydra.nixos.org/build/233225171 at 2023-09-02
+  - strongweak # failure in job https://hydra.nixos.org/build/252724714 at 2024-03-16
+  - struct-inspector # failure in job https://hydra.nixos.org/build/252739623 at 2024-03-16
   - structural-traversal # failure in job https://hydra.nixos.org/build/233235730 at 2023-09-02
+  - structured-cli # failure in job https://hydra.nixos.org/build/252734924 at 2024-03-16
   - structures # failure in job https://hydra.nixos.org/build/233206488 at 2023-09-02
   - stt # failure in job https://hydra.nixos.org/build/233233101 at 2023-09-02
   - stunclient # failure in job https://hydra.nixos.org/build/233251136 at 2023-09-02
   - stylish-cabal # failure in job https://hydra.nixos.org/build/233202801 at 2023-09-02
   - stylist # failure in job https://hydra.nixos.org/build/233223662 at 2023-09-02
   - stylized # failure in job https://hydra.nixos.org/build/233211499 at 2023-09-02
+  - styx # failure in job https://hydra.nixos.org/build/252713087 at 2024-03-16
   - subG-instances # failure in job https://hydra.nixos.org/build/233216227 at 2023-09-02
   - subleq-toolchain # failure in job https://hydra.nixos.org/build/233239415 at 2023-09-02
   - submark # failure in job https://hydra.nixos.org/build/233231701 at 2023-09-02
   - subsample # failure in job https://hydra.nixos.org/build/233201324 at 2023-09-02
   - sub-state # failure in job https://hydra.nixos.org/build/233202687 at 2023-09-02
   - subwordgraph # failure in job https://hydra.nixos.org/build/233229131 at 2023-09-02
+  - success # failure in job https://hydra.nixos.org/build/252718360 at 2024-03-16
   - suffix-array # failure in job https://hydra.nixos.org/build/233247630 at 2023-09-02
   - suffixarray # failure in job https://hydra.nixos.org/build/233256495 at 2023-09-02
   - SuffixStructures # failure in job https://hydra.nixos.org/build/233245541 at 2023-09-02
   - sugar # failure in job https://hydra.nixos.org/build/233202489 at 2023-09-02
   - sugarhaskell # failure in job https://hydra.nixos.org/build/233199879 at 2023-09-02
   - suitable # failure in job https://hydra.nixos.org/build/233225075 at 2023-09-02
+  - summer # failure in job https://hydra.nixos.org/build/252728622 at 2024-03-16
   - summoner # failure in job https://hydra.nixos.org/build/233232530 at 2023-09-02
   - sum-type-boilerplate # failure in job https://hydra.nixos.org/build/233251040 at 2023-09-02
   - sunlight # failure in job https://hydra.nixos.org/build/233212375 at 2023-09-02
@@ -5321,6 +5733,7 @@ broken-packages:
   - supervisor # failure in job https://hydra.nixos.org/build/233226414 at 2023-09-02
   - supervisors # failure in job https://hydra.nixos.org/build/233238299 at 2023-09-02
   - supplemented # failure in job https://hydra.nixos.org/build/233237397 at 2023-09-02
+  - supply-chain-core # failure in job https://hydra.nixos.org/build/252715612 at 2024-03-16
   - surjective # failure in job https://hydra.nixos.org/build/233242908 at 2023-09-02
   - sv2v # failure in job https://hydra.nixos.org/build/233190750 at 2023-09-02
   - sv-core # failure in job https://hydra.nixos.org/build/233217245 at 2023-09-02
@@ -5365,11 +5778,13 @@ broken-packages:
   - syntax-trees # failure in job https://hydra.nixos.org/build/233209576 at 2023-09-02
   - syntax-trees-fork-bairyn # failure in job https://hydra.nixos.org/build/233216989 at 2023-09-02
   - synthesizer # failure in job https://hydra.nixos.org/build/233259139 at 2023-09-02
+  - synthesizer-filter # failure in job https://hydra.nixos.org/build/252718079 at 2024-03-16
   - Sysmon # failure in job https://hydra.nixos.org/build/233224152 at 2023-09-02
   - system-canonicalpath # failure in job https://hydra.nixos.org/build/233254297 at 2023-09-02
   - system-command # failure in job https://hydra.nixos.org/build/233239356 at 2023-09-02
   - systemd-ntfy # failure in job https://hydra.nixos.org/build/236686880 at 2023-10-04
   - system-extra # failure in job https://hydra.nixos.org/build/233203137 at 2023-09-02
+  - system-fileio # failure in job https://hydra.nixos.org/build/252731084 at 2024-03-16
   - system-inotify # failure in job https://hydra.nixos.org/build/233206871 at 2023-09-02
   - system-lifted # failure in job https://hydra.nixos.org/build/233236013 at 2023-09-02
   - system-linux-proc # failure in job https://hydra.nixos.org/build/233209447 at 2023-09-02
@@ -5391,26 +5806,30 @@ broken-packages:
   - tagged-timers # failure in job https://hydra.nixos.org/build/233238738 at 2023-09-02
   - taggy-lens # failure in job https://hydra.nixos.org/build/233253920 at 2023-09-02
   - taglib-api # failure in job https://hydra.nixos.org/build/233259216 at 2023-09-02
+  - tagshare # failure in job https://hydra.nixos.org/build/252729876 at 2024-03-16
   - tagsoup-ht # failure in job https://hydra.nixos.org/build/233233672 at 2023-09-02
   - tagsoup-megaparsec # failure in job https://hydra.nixos.org/build/233205700 at 2023-09-02
   - tagsoup-parsec # failure in job https://hydra.nixos.org/build/233200887 at 2023-09-02
   - tagsoup-selection # failure in job https://hydra.nixos.org/build/233228969 at 2023-09-02
-  - tagtree # failure in job https://hydra.nixos.org/build/233209409 at 2023-09-02
+  - Tahin # failure in job https://hydra.nixos.org/build/252737178 at 2024-03-16
   - tahoe-capabilities # failure in job https://hydra.nixos.org/build/233253813 at 2023-09-02
   - tahoe-chk # failure in updateAutotoolsGnuConfigScriptsPhase in job https://hydra.nixos.org/build/237298038 at 2023-10-21
+  - tahoe-great-black-swamp-types # failure in job https://hydra.nixos.org/build/252721139 at 2024-03-16
   - tai64 # failure in job https://hydra.nixos.org/build/233257422 at 2023-09-02
   - tai # failure in job https://hydra.nixos.org/build/233210483 at 2023-09-02
-  - tailwind # failure in job https://hydra.nixos.org/build/233238757 at 2023-09-02
+  - Tainted # failure in job https://hydra.nixos.org/build/252722384 at 2024-03-16
   - tak # failure in job https://hydra.nixos.org/build/233191188 at 2023-09-02
   - Takusen # failure in job https://hydra.nixos.org/build/233230088 at 2023-09-02
   - takusen-oracle # failure in job https://hydra.nixos.org/build/233197944 at 2023-09-02
   - tamarin-prover-utils # failure in job https://hydra.nixos.org/build/233235417 at 2023-09-02
   - Tape # failure in job https://hydra.nixos.org/build/233191662 at 2023-09-02
   - tapioca # failure in job https://hydra.nixos.org/build/233207781 at 2023-09-02
+  - tart # failure in job https://hydra.nixos.org/build/252723842 at 2024-03-16
   - taskell # depends on old version of brick
   - TaskMonad # failure in job https://hydra.nixos.org/build/233219257 at 2023-09-02
   - tasty-autocollect # failure in job https://hydra.nixos.org/build/233256957 at 2023-09-02
   - tasty-auto # failure in job https://hydra.nixos.org/build/233220008 at 2023-09-02
+  - tasty-checklist # failure in job https://hydra.nixos.org/build/252710481 at 2024-03-16
   - tasty-fail-fast # failure in job https://hydra.nixos.org/build/233200040 at 2023-09-02
   - tasty-grading-system # failure in job https://hydra.nixos.org/build/236673021 at 2023-10-04
   - tasty-hedgehog-coverage # failure in job https://hydra.nixos.org/build/233231332 at 2023-09-02
@@ -5421,7 +5840,9 @@ broken-packages:
   - TBC # failure in job https://hydra.nixos.org/build/233217773 at 2023-09-02
   - TBit # failure in job https://hydra.nixos.org/build/233232991 at 2023-09-02
   - tcache-AWS # failure in job https://hydra.nixos.org/build/233250577 at 2023-09-02
+  - tcod-haskell # failure in job https://hydra.nixos.org/build/252730637 at 2024-03-16
   - tcp # failure in job https://hydra.nixos.org/build/233249662 at 2023-09-02
+  - tcp-streams # failure in job https://hydra.nixos.org/build/252713034 at 2024-03-16
   - tcp-streams-openssl # failure in job https://hydra.nixos.org/build/233258076 at 2023-09-02
   - tdigest-Chart # failure in job https://hydra.nixos.org/build/233244784 at 2023-09-02
   - tdoc # failure in job https://hydra.nixos.org/build/233250532 at 2023-09-02
@@ -5438,6 +5859,8 @@ broken-packages:
   - teleport # failure in job https://hydra.nixos.org/build/233194305 at 2023-09-02
   - teleshell # failure in job https://hydra.nixos.org/build/233225954 at 2023-09-02
   - tellbot # failure in job https://hydra.nixos.org/build/233200225 at 2023-09-02
+  - tell # failure in job https://hydra.nixos.org/build/252712899 at 2024-03-16
+  - tempered # failure in job https://hydra.nixos.org/build/252732123 at 2024-03-16
   - template-default # failure in job https://hydra.nixos.org/build/233238125 at 2023-09-02
   - template # failure in job https://hydra.nixos.org/build/233242058 at 2023-09-02
   - template-haskell-optics # failure in job https://hydra.nixos.org/build/233203627 at 2023-09-02
@@ -5449,6 +5872,7 @@ broken-packages:
   - template-yj # failure in job https://hydra.nixos.org/build/233236245 at 2023-09-02
   - templatise # failure in updateAutotoolsGnuConfigScriptsPhase in job https://hydra.nixos.org/build/237235933 at 2023-10-21
   - tempodb # failure in job https://hydra.nixos.org/build/233205994 at 2023-09-02
+  - tempo # failure in job https://hydra.nixos.org/build/252731680 at 2024-03-16
   - temporal-csound # failure in job https://hydra.nixos.org/build/243818090 at 2024-01-01
   - tempus # failure in job https://hydra.nixos.org/build/233245670 at 2023-09-02
   - ten # failure in job https://hydra.nixos.org/build/233216705 at 2023-09-02
@@ -5468,12 +5892,14 @@ broken-packages:
   - TestExplode # failure in job https://hydra.nixos.org/build/233207327 at 2023-09-02
   - test-fixture # failure in job https://hydra.nixos.org/build/233203103 at 2023-09-02
   - test-framework-doctest # failure in job https://hydra.nixos.org/build/233256232 at 2023-09-02
+  - test-framework-golden # failure in job https://hydra.nixos.org/build/252724226 at 2024-03-16
   - test-framework-quickcheck # failure in job https://hydra.nixos.org/build/233199583 at 2023-09-02
   - test-framework-skip # failure in job https://hydra.nixos.org/build/233248465 at 2023-09-02
   - test-framework-testing-feat # failure in job https://hydra.nixos.org/build/233227290 at 2023-09-02
   - test-framework-th-prime # failure in job https://hydra.nixos.org/build/233241423 at 2023-09-02
   - test-lib # failure in job https://hydra.nixos.org/build/233195296 at 2023-09-02
   - testloop # failure in job https://hydra.nixos.org/build/233206527 at 2023-09-02
+  - test-monad-laws # failure in job https://hydra.nixos.org/build/252739363 at 2024-03-16
   - testpack # failure in job https://hydra.nixos.org/build/233194859 at 2023-09-02
   - testpattern # failure in job https://hydra.nixos.org/build/233225860 at 2023-09-02
   - testPkg # failure in job https://hydra.nixos.org/build/233221832 at 2023-09-02
@@ -5501,6 +5927,8 @@ broken-packages:
   - text-offset # failure in job https://hydra.nixos.org/build/233250030 at 2023-09-02
   - text-position # failure in job https://hydra.nixos.org/build/233241860 at 2023-09-02
   - text-register-machine # failure in job https://hydra.nixos.org/build/233239758 at 2023-09-02
+  - text-render # failure in job https://hydra.nixos.org/build/252713121 at 2024-03-16
+  - text-replace # failure in job https://hydra.nixos.org/build/252727577 at 2024-03-16
   - text-stream-decode # failure in job https://hydra.nixos.org/build/233237533 at 2023-09-02
   - text-trie # failure in job https://hydra.nixos.org/build/233231841 at 2023-09-02
   - textual # failure in job https://hydra.nixos.org/build/233254230 at 2023-09-02
@@ -5578,6 +6006,7 @@ broken-packages:
   - timeutils # failure in job https://hydra.nixos.org/build/233230513 at 2023-09-02
   - time-w3c # failure in job https://hydra.nixos.org/build/233225902 at 2023-09-02
   - timezone-detect # failure in job https://hydra.nixos.org/build/233205213 at 2023-09-02
+  - tini # failure in job https://hydra.nixos.org/build/252732072 at 2024-03-16
   - tinyid # failure in job https://hydra.nixos.org/build/233249999 at 2023-09-02
   - TinyLaunchbury # failure in job https://hydra.nixos.org/build/233233671 at 2023-09-02
   - tinylog # failure in job https://hydra.nixos.org/build/233198434 at 2023-09-02
@@ -5593,6 +6022,7 @@ broken-packages:
   - tkyprof # failure in job https://hydra.nixos.org/build/233205547 at 2023-09-02
   - tls-debug # failure in job https://hydra.nixos.org/build/233228426 at 2023-09-02
   - TLT # failure in job https://hydra.nixos.org/build/233193495 at 2023-09-02
+  - tmp-postgres # failure in job https://hydra.nixos.org/build/252731301 at 2024-03-16
   - tmp-proc-example # failure in job https://hydra.nixos.org/build/233223028 at 2023-09-02
   - tmp-proc-zipkin # failure in job https://hydra.nixos.org/build/233210220 at 2023-09-02
   - tofromxml # failure in job https://hydra.nixos.org/build/233257072 at 2023-09-02
@@ -5631,15 +6061,20 @@ broken-packages:
   - trackit # failure in job https://hydra.nixos.org/build/233243891 at 2023-09-02
   - traction # failure in job https://hydra.nixos.org/build/233193894 at 2023-09-02
   - tracy # failure in job https://hydra.nixos.org/build/233210215 at 2023-09-02
+  - trade-journal # failure in job https://hydra.nixos.org/build/252737021 at 2024-03-16
   - traildb # failure in job https://hydra.nixos.org/build/233223153 at 2023-09-02
   - transactional-events # failure in job https://hydra.nixos.org/build/233205740 at 2023-09-02
   - transf # failure in job https://hydra.nixos.org/build/233202251 at 2023-09-02
   - TransformeR # failure in job https://hydra.nixos.org/build/233255786 at 2023-09-02
   - transformers-bifunctors # failure in job https://hydra.nixos.org/build/233258007 at 2023-09-02
   - transformers-compose # failure in job https://hydra.nixos.org/build/233212861 at 2023-09-02
+  - transformers-continue # failure in job https://hydra.nixos.org/build/252734162 at 2024-03-16
+  - transformers-fix # failure in job https://hydra.nixos.org/build/252715911 at 2024-03-16
+  - transformers-free # failure in job https://hydra.nixos.org/build/252717332 at 2024-03-16
   - transformers-lift # failure in job https://hydra.nixos.org/build/233223136 at 2023-09-02
   - transformers-runnable # failure in job https://hydra.nixos.org/build/233209164 at 2023-09-02
   - TransformersStepByStep # failure in job https://hydra.nixos.org/build/233243582 at 2023-09-02
+  - transformers-supply # failure in job https://hydra.nixos.org/build/252713362 at 2024-03-16
   - trans-fx-core # failure in job https://hydra.nixos.org/build/233219543 at 2023-09-02
   - transient # failure in job https://hydra.nixos.org/build/233221557 at 2023-09-02
   - translatable-intset # failure in job https://hydra.nixos.org/build/233252531 at 2023-09-02
@@ -5662,10 +6097,12 @@ broken-packages:
   - trhsx # failure in job https://hydra.nixos.org/build/233231297 at 2023-09-02
   - tries # timeout
   - trim # failure in job https://hydra.nixos.org/build/233195034 at 2023-09-02
+  - triplesec # failure in job https://hydra.nixos.org/build/252718437 at 2024-03-16
   - tripLL # failure in job https://hydra.nixos.org/build/233217806 at 2023-09-02
   - trivia # failure in job https://hydra.nixos.org/build/233234176 at 2023-09-02
   - tropical # failure in job https://hydra.nixos.org/build/233212835 at 2023-09-02
   - tropical-geometry # failure in job https://hydra.nixos.org/build/234465815 at 2023-09-13
+  - true-name # failure in job https://hydra.nixos.org/build/252712188 at 2024-03-16
   - trust-chain # failure in job https://hydra.nixos.org/build/233252622 at 2023-09-02
   - tsession # failure in job https://hydra.nixos.org/build/233259005 at 2023-09-02
   - tslib # failure in job https://hydra.nixos.org/build/233225813 at 2023-09-02
@@ -5680,6 +6117,7 @@ broken-packages:
   - tubes # failure in job https://hydra.nixos.org/build/233245507 at 2023-09-02
   - tuntap # failure in job https://hydra.nixos.org/build/233199575 at 2023-09-02
   - tuple-append-instances # failure in job https://hydra.nixos.org/build/233256201 at 2023-09-02
+  - tuple-fields # failure in job https://hydra.nixos.org/build/252721117 at 2024-03-16
   - tupleinstances # failure in job https://hydra.nixos.org/build/233208004 at 2023-09-02
   - tuple-lenses # failure in job https://hydra.nixos.org/build/233239309 at 2023-09-02
   - turing-machines # failure in job https://hydra.nixos.org/build/233195604 at 2023-09-02
@@ -5691,6 +6129,7 @@ broken-packages:
   - twilio # failure in job https://hydra.nixos.org/build/233199959 at 2023-09-02
   - twiml # failure in job https://hydra.nixos.org/build/233219327 at 2023-09-02
   - twine # failure in job https://hydra.nixos.org/build/233191924 at 2023-09-02
+  - twirp # failure in job https://hydra.nixos.org/build/252736228 at 2024-03-16
   - twisty # failure in job https://hydra.nixos.org/build/233212390 at 2023-09-02
   - twitchapi # failure in job https://hydra.nixos.org/build/233245126 at 2023-09-02
   - twitch # failure in job https://hydra.nixos.org/build/233198940 at 2023-09-02
@@ -5702,6 +6141,7 @@ broken-packages:
   - tyfam-witnesses # failure in job https://hydra.nixos.org/build/233191033 at 2023-09-02
   - typalyze # failure in job https://hydra.nixos.org/build/233246228 at 2023-09-02
   - typeable-th # failure in job https://hydra.nixos.org/build/233234377 at 2023-09-02
+  - typechain # failure in job https://hydra.nixos.org/build/252734998 at 2024-03-16
   - type-combinators # failure in job https://hydra.nixos.org/build/233230024 at 2023-09-02
   - type-compare # failure in job https://hydra.nixos.org/build/233207530 at 2023-09-02
   - TypeCompose # failure in job https://hydra.nixos.org/build/233212999 at 2023-09-02
@@ -5713,6 +6153,7 @@ broken-packages:
   - typed-time # failure in job https://hydra.nixos.org/build/233246930 at 2023-09-02
   - typed-wire # failure in job https://hydra.nixos.org/build/233237626 at 2023-09-02
   - type-eq # failure in job https://hydra.nixos.org/build/233214388 at 2023-09-02
+  - type-errors # failure in job https://hydra.nixos.org/build/252734319 at 2024-03-16
   - type-errors-pretty # failure in job https://hydra.nixos.org/build/233238808 at 2023-09-02
   - typehash # failure in job https://hydra.nixos.org/build/233207184 at 2023-09-02
   - type-indexed-queues # failure in job https://hydra.nixos.org/build/233197833 at 2023-09-02
@@ -5726,11 +6167,13 @@ broken-packages:
   - type-level-sets # failure in job https://hydra.nixos.org/build/233197419 at 2023-09-02
   - typelevel-tensor # failure in job https://hydra.nixos.org/build/233190827 at 2023-09-02
   - type-list # failure in job https://hydra.nixos.org/build/233234789 at 2023-09-02
+  - typelits-printf # failure in job https://hydra.nixos.org/build/252737641 at 2024-03-16
   - typelits-witnesses # failure in job https://hydra.nixos.org/build/233224289 at 2023-09-02
   - type-of-html-static # failure in job https://hydra.nixos.org/build/233226924 at 2023-09-02
   - type-operators # failure in job https://hydra.nixos.org/build/233232802 at 2023-09-02
   - typeparams # failure in job https://hydra.nixos.org/build/233192078 at 2023-09-02
   - type-prelude # failure in job https://hydra.nixos.org/build/233221195 at 2023-09-02
+  - type-reflection # failure in job https://hydra.nixos.org/build/252719111 at 2024-03-16
   - type-safe-avl # failure in job https://hydra.nixos.org/build/233203946 at 2023-09-02
   - types-compat # failure in job https://hydra.nixos.org/build/233249850 at 2023-09-02
   - type-settheory # failure in job https://hydra.nixos.org/build/233209513 at 2023-09-02
@@ -5740,6 +6183,8 @@ broken-packages:
   - typograffiti # failure in job https://hydra.nixos.org/build/233195076 at 2023-09-02
   - typson-core # failure in job https://hydra.nixos.org/build/233257835 at 2023-09-02
   - tyro # failure in job https://hydra.nixos.org/build/233200171 at 2023-09-02
+  - tztime # failure in job https://hydra.nixos.org/build/252731958 at 2024-03-16
+  - uacpid # failure in job https://hydra.nixos.org/build/252734266 at 2024-03-16
   - uAgda # failure in job https://hydra.nixos.org/build/233252487 at 2023-09-02
   - uberlast # failure in job https://hydra.nixos.org/build/233233074 at 2023-09-02
   - ucam-webauth-types # failure in job https://hydra.nixos.org/build/233260145 at 2023-09-02
@@ -5757,15 +6202,24 @@ broken-packages:
   - unamb-custom # failure in job https://hydra.nixos.org/build/233197458 at 2023-09-02
   - unbeliever # failure in job https://hydra.nixos.org/build/233221256 at 2023-09-02
   - unbounded-delays-units # failure in job https://hydra.nixos.org/build/233200989 at 2023-09-02
+  - unbound-generics # failure in job https://hydra.nixos.org/build/252713870 at 2024-03-16
   - unboxed-containers # failure in job https://hydra.nixos.org/build/233200384 at 2023-09-02
   - unboxed # failure in job https://hydra.nixos.org/build/233219555 at 2023-09-02
   - unboxed-references # failure in job https://hydra.nixos.org/build/233192713 at 2023-09-02
   - unbreak # failure in job https://hydra.nixos.org/build/233242560 at 2023-09-02
+  - unescaping-print # failure in job https://hydra.nixos.org/build/252736030 at 2024-03-16
   - unfix-binders # failure in job https://hydra.nixos.org/build/233259262 at 2023-09-02
+  - unfoldable # failure in job https://hydra.nixos.org/build/252721990 at 2024-03-16
+  - unicode-data-names # failure in job https://hydra.nixos.org/build/252723683 at 2024-03-16
+  - unicode-data-scripts # failure in job https://hydra.nixos.org/build/252715720 at 2024-03-16
+  - unicode-data-security # failure in job https://hydra.nixos.org/build/252714713 at 2024-03-16
   - unicode-general-category # failure in job https://hydra.nixos.org/build/233250572 at 2023-09-02
   - unicode-prelude # failure in job https://hydra.nixos.org/build/233241723 at 2023-09-02
   - unicode-symbols # failure in job https://hydra.nixos.org/build/233241639 at 2023-09-02
   - unicode-tricks # failure in job https://hydra.nixos.org/build/233258238 at 2023-09-02
+  - unification-fd # failure in job https://hydra.nixos.org/build/252716820 at 2024-03-16
+  - union # failure in job https://hydra.nixos.org/build/252720024 at 2024-03-16
+  - union-find-array # failure in job https://hydra.nixos.org/build/252717893 at 2024-03-16
   - union-find # failure in job https://hydra.nixos.org/build/233245476 at 2023-09-02
   - union-map # failure in job https://hydra.nixos.org/build/233222765 at 2023-09-02
   - uniprot-kb # failure in job https://hydra.nixos.org/build/233209692 at 2023-09-02
@@ -5783,6 +6237,7 @@ broken-packages:
   - universe-instances-trans # failure in job https://hydra.nixos.org/build/233235623 at 2023-09-02
   - universe-some # failure in job https://hydra.nixos.org/build/233254356 at 2023-09-02
   - unix-handle # failure in job https://hydra.nixos.org/build/233233273 at 2023-09-02
+  - unix-memory # failure in job https://hydra.nixos.org/build/252735802 at 2024-03-16
   - unix-process-conduit # failure in job https://hydra.nixos.org/build/233191509 at 2023-09-02
   - unix-recursive # failure in job https://hydra.nixos.org/build/233194742 at 2023-09-02
   - unlifted-list # failure in job https://hydra.nixos.org/build/233205239 at 2023-09-02
@@ -5803,6 +6258,7 @@ broken-packages:
   - unsequential # failure in job https://hydra.nixos.org/build/233244400 at 2023-09-02
   - unused # failure in job https://hydra.nixos.org/build/233243602 at 2023-09-02
   - uom-plugin # failure in job https://hydra.nixos.org/build/233228019 at 2023-09-02
+  - update-monad # failure in job https://hydra.nixos.org/build/252724414 at 2024-03-16
   - Updater # failure in job https://hydra.nixos.org/build/233215373 at 2023-09-02
   - updo # failure in job https://hydra.nixos.org/build/244399557 at 2024-01-01
   - uploadcare # failure in job https://hydra.nixos.org/build/233197403 at 2023-09-02
@@ -5828,6 +6284,7 @@ broken-packages:
   - useragents # failure in job https://hydra.nixos.org/build/233203723 at 2023-09-02
   - userid # failure in job https://hydra.nixos.org/build/233227019 at 2023-09-02
   - users-persistent # failure in job https://hydra.nixos.org/build/233258182 at 2023-09-02
+  - users-postgresql-simple # failure in job https://hydra.nixos.org/build/252737462 at 2024-03-16
   - utc # failure in job https://hydra.nixos.org/build/233218307 at 2023-09-02
   - utf8-conversions # failure in job https://hydra.nixos.org/build/233245725 at 2023-09-02
   - utf8-prelude # failure in job https://hydra.nixos.org/build/233240100 at 2023-09-02
@@ -5837,6 +6294,7 @@ broken-packages:
   - util-plus # failure in job https://hydra.nixos.org/build/233231591 at 2023-09-02
   - util-primitive # failure in job https://hydra.nixos.org/build/233258861 at 2023-09-02
   - uuagc-bootstrap # failure in job https://hydra.nixos.org/build/233254123 at 2023-09-02
+  - uuagc-cabal # failure in job https://hydra.nixos.org/build/252727853 at 2024-03-16
   - uuagc-diagrams # failure in job https://hydra.nixos.org/build/233247645 at 2023-09-02
   - uu-cco # failure in job https://hydra.nixos.org/build/233259027 at 2023-09-02
   - uuid-aeson # failure in job https://hydra.nixos.org/build/233219695 at 2023-09-02
@@ -5850,10 +6308,12 @@ broken-packages:
   - validated-types # failure in job https://hydra.nixos.org/build/233258079 at 2023-09-02
   - Validation # failure in job https://hydra.nixos.org/build/233253977 at 2023-09-02
   - validations # failure in job https://hydra.nixos.org/build/233208976 at 2023-09-02
+  - validationt # failure in job https://hydra.nixos.org/build/252739235 at 2024-03-16
   - validators # failure in job https://hydra.nixos.org/build/233235532 at 2023-09-02
   - validity-network-uri # failure in job https://hydra.nixos.org/build/233240551 at 2023-09-02
   - valid-names # failure in job https://hydra.nixos.org/build/233213115 at 2023-09-02
   - value-supply # failure in job https://hydra.nixos.org/build/233190936 at 2023-09-02
+  - ValveValueKeyvalue # failure in job https://hydra.nixos.org/build/252733320 at 2024-03-16
   - vampire # failure in job https://hydra.nixos.org/build/233216179 at 2023-09-02
   - varan # failure in job https://hydra.nixos.org/build/233232057 at 2023-09-02
   - var # failure in job https://hydra.nixos.org/build/233240303 at 2023-09-02
@@ -5913,6 +6373,7 @@ broken-packages:
   - visibility # failure in job https://hydra.nixos.org/build/233206672 at 2023-09-02
   - visual-prof # failure in job https://hydra.nixos.org/build/233250080 at 2023-09-02
   - vitrea # failure in job https://hydra.nixos.org/build/233252038 at 2023-09-02
+  - vivid # failure in job https://hydra.nixos.org/build/252716916 at 2024-03-16
   - vk-aws-route53 # failure in job https://hydra.nixos.org/build/233250126 at 2023-09-02
   - VKHS # failure in job https://hydra.nixos.org/build/233246557 at 2023-09-02
   - vowpal-utils # failure in job https://hydra.nixos.org/build/233251505 at 2023-09-02
@@ -5924,9 +6385,9 @@ broken-packages:
   - vty-examples # failure in job https://hydra.nixos.org/build/233235872 at 2023-09-02
   - vty-menu # failure in job https://hydra.nixos.org/build/233232391 at 2023-09-02
   - vty-ui # failure in job https://hydra.nixos.org/build/233200900 at 2023-09-02
-  - vty-unix # failure in job https://hydra.nixos.org/build/241443107 at 2023-11-19
   - wacom-daemon # failure in job https://hydra.nixos.org/build/233213077 at 2023-09-02
   - waddle # failure in job https://hydra.nixos.org/build/233239973 at 2023-09-02
+  - wai-app-file-cgi # failure in job https://hydra.nixos.org/build/252733772 at 2024-03-16
   - wai-git-http # failure in job https://hydra.nixos.org/build/233191513 at 2023-09-02
   - wai-graceful # failure in job https://hydra.nixos.org/build/233243180 at 2023-09-02
   - wai-handler-devel # failure in job https://hydra.nixos.org/build/233226033 at 2023-09-02
@@ -5948,6 +6409,7 @@ broken-packages:
   - wai-middleware-preprocessor # failure in job https://hydra.nixos.org/build/233227365 at 2023-09-02
   - wai-middleware-static-caching # failure in job https://hydra.nixos.org/build/233208386 at 2023-09-02
   - wai-middleware-travisci # failure in job https://hydra.nixos.org/build/233215805 at 2023-09-02
+  - wai-middleware-validation # failure in job https://hydra.nixos.org/build/252713056 at 2024-03-16
   - wai-predicates # failure in job https://hydra.nixos.org/build/245788559 at 2024-01-07
   - wai-problem-details # failure in job https://hydra.nixos.org/build/233227727 at 2023-09-02
   - wai-rate-limit-postgres # failure in job https://hydra.nixos.org/build/233244097 at 2023-09-02
@@ -5972,6 +6434,7 @@ broken-packages:
   - warp-dynamic # failure in job https://hydra.nixos.org/build/233220479 at 2023-09-02
   - warp-static # failure in job https://hydra.nixos.org/build/233239581 at 2023-09-02
   - warp-systemd # failure in job https://hydra.nixos.org/build/233215956 at 2023-09-02
+  - warp-tls-uid # failure in job https://hydra.nixos.org/build/252725883 at 2024-03-16
   - wasm # failure in job https://hydra.nixos.org/build/233249877 at 2023-09-02
   - watcher # failure in job https://hydra.nixos.org/build/233245056 at 2023-09-02
   - watchit # failure in job https://hydra.nixos.org/build/233199573 at 2023-09-02
@@ -5996,6 +6459,7 @@ broken-packages:
   - web-encodings # failure in job https://hydra.nixos.org/build/233199718 at 2023-09-02
   - WeberLogic # failure in job https://hydra.nixos.org/build/233209283 at 2023-09-02
   - webfinger-client # failure in job https://hydra.nixos.org/build/233252528 at 2023-09-02
+  - web-inv-route # failure in job https://hydra.nixos.org/build/252728701 at 2024-03-16
   - webkitgtk3 # failure in job https://hydra.nixos.org/build/233215712 at 2023-09-02
   - webkit-javascriptcore # failure in job https://hydra.nixos.org/build/233208424 at 2023-09-02
   - webmention # failure in job https://hydra.nixos.org/build/233208899 at 2023-09-02
@@ -6004,17 +6468,20 @@ broken-packages:
   - web-plugins # failure in job https://hydra.nixos.org/build/233207596 at 2023-09-02
   - web-push # failure in job https://hydra.nixos.org/build/233206721 at 2023-09-02
   - Webrexp # failure in job https://hydra.nixos.org/build/233212376 at 2023-09-02
+  - web-routes # failure in job https://hydra.nixos.org/build/252719043 at 2024-03-16
   - web-routes-quasi # failure in job https://hydra.nixos.org/build/233222454 at 2023-09-02
   - web-routes-transformers # failure in job https://hydra.nixos.org/build/233256428 at 2023-09-02
   - webshow # failure in job https://hydra.nixos.org/build/233243842 at 2023-09-02
   - web-view # failure in job https://hydra.nixos.org/build/244678837 at 2024-01-01
   - webwire # failure in job https://hydra.nixos.org/build/233233892 at 2023-09-02
+  - wedged # failure in job https://hydra.nixos.org/build/252739136 at 2024-03-16
   - WEditor # failure in job https://hydra.nixos.org/build/233215233 at 2023-09-02
   - weighted-regexp # failure in job https://hydra.nixos.org/build/233243077 at 2023-09-02
   - welshy # failure in job https://hydra.nixos.org/build/233224249 at 2023-09-02
   - werewolf # failure in job https://hydra.nixos.org/build/233250937 at 2023-09-02
   - wgpu-raw-hs # failure in job https://hydra.nixos.org/build/233221814 at 2023-09-02
   - Wheb # failure in job https://hydra.nixos.org/build/233258281 at 2023-09-02
+  - wherefrom-compat # failure in job https://hydra.nixos.org/build/252723758 at 2024-03-16
   - while-lang-parser # failure in job https://hydra.nixos.org/build/233237507 at 2023-09-02
   - whim # failure in job https://hydra.nixos.org/build/234465317 at 2023-09-13
   - whiskers # failure in job https://hydra.nixos.org/build/233258941 at 2023-09-02
@@ -6041,6 +6508,7 @@ broken-packages:
   - woe # failure in job https://hydra.nixos.org/build/233222792 at 2023-09-02
   - woffex # failure in job https://hydra.nixos.org/build/233210566 at 2023-09-02
   - wol # failure in job https://hydra.nixos.org/build/233237896 at 2023-09-02
+  - word16 # failure in job https://hydra.nixos.org/build/252737588 at 2024-03-16
   - word24 # failure in job https://hydra.nixos.org/build/233259494 at 2023-09-02
   - word2vec-model # failure in job https://hydra.nixos.org/build/233209500 at 2023-09-02
   - word8set # failure in job https://hydra.nixos.org/build/233246039 at 2023-09-02
@@ -6051,20 +6519,26 @@ broken-packages:
   - WordNet-ghc74 # failure in job https://hydra.nixos.org/build/233192586 at 2023-09-02
   - wordn # failure in job https://hydra.nixos.org/build/233238840 at 2023-09-02
   - wordpass # failure in job https://hydra.nixos.org/build/233202954 at 2023-09-02
+  - wordpress-auth # failure in job https://hydra.nixos.org/build/252724354 at 2024-03-16
   - wordsearch # failure in job https://hydra.nixos.org/build/233203803 at 2023-09-02
   - workdays # failure in job https://hydra.nixos.org/build/233209994 at 2023-09-02
   - Workflow # failure in job https://hydra.nixos.org/build/233203463 at 2023-09-02
   - workflow-osx # failure in job https://hydra.nixos.org/build/233235315 at 2023-09-02
   - workflow-windows # failure in job https://hydra.nixos.org/build/233257774 at 2023-09-02
   - work-time # failure in job https://hydra.nixos.org/build/233245304 at 2023-09-02
+  - world-peace # failure in job https://hydra.nixos.org/build/252710711 at 2024-03-16
   - worldturtle # failure in job https://hydra.nixos.org/build/234448293 at 2023-09-13
   - wp-archivebot # failure in job https://hydra.nixos.org/build/233195749 at 2023-09-02
+  - wrapped-generic-default # failure in job https://hydra.nixos.org/build/252718811 at 2024-03-16
   - wreq-helper # failure in job https://hydra.nixos.org/build/233228914 at 2023-09-02
   - wreq-patchable # failure in job https://hydra.nixos.org/build/233237832 at 2023-09-02
   - wreq-sb # failure in job https://hydra.nixos.org/build/233259269 at 2023-09-02
+  - write-buffer-core # failure in job https://hydra.nixos.org/build/252727715 at 2024-03-16
+  - writer-cps-exceptions # failure in job https://hydra.nixos.org/build/252717755 at 2024-03-16
   - writer-cps-lens # failure in job https://hydra.nixos.org/build/233238466 at 2023-09-02
   - writer-cps-monads-tf # failure in job https://hydra.nixos.org/build/233218245 at 2023-09-02
   - writer-cps-morph # failure in job https://hydra.nixos.org/build/233241891 at 2023-09-02
+  - writer-cps-mtl # failure in job https://hydra.nixos.org/build/252713593 at 2024-03-16
   - wsdl # failure in job https://hydra.nixos.org/build/233208187 at 2023-09-02
   - wsedit # failure in job https://hydra.nixos.org/build/233232333 at 2023-09-02
   - ws # failure building executable 'ws' in job https://hydra.nixos.org/build/237237311 at 2023-10-21
@@ -6072,10 +6546,13 @@ broken-packages:
   - wtk # failure in job https://hydra.nixos.org/build/233220668 at 2023-09-02
   - wumpus-core # failure in job https://hydra.nixos.org/build/233244405 at 2023-09-02
   - wxdirect # failure in job https://hydra.nixos.org/build/233255519 at 2023-09-02
+  - wybor # failure in job https://hydra.nixos.org/build/252729784 at 2024-03-16
   - X11-extras # failure in job https://hydra.nixos.org/build/233226031 at 2023-09-02
   - X11-rm # failure in job https://hydra.nixos.org/build/233242806 at 2023-09-02
   - X11-xdamage # failure in job https://hydra.nixos.org/build/233194342 at 2023-09-02
   - X11-xfixes # failure in job https://hydra.nixos.org/build/233256494 at 2023-09-02
+  - x86-64bit # failure in job https://hydra.nixos.org/build/252737465 at 2024-03-16
+  - xcb-types # failure in job https://hydra.nixos.org/build/252721031 at 2024-03-16
   - xchat-plugin # failure in job https://hydra.nixos.org/build/233238679 at 2023-09-02
   - xcp # failure in job https://hydra.nixos.org/build/233208926 at 2023-09-02
   - x-dsp # failure in job https://hydra.nixos.org/build/233218091 at 2023-09-02
@@ -6101,9 +6578,11 @@ broken-packages:
   - xml-conduit-parse # failure in job https://hydra.nixos.org/build/233200360 at 2023-09-02
   - xml-conduit-selectors # failure in job https://hydra.nixos.org/build/233223331 at 2023-09-02
   - xml-conduit-stylist # failure in job https://hydra.nixos.org/build/233226507 at 2023-09-02
+  - xml-extractors # failure in job https://hydra.nixos.org/build/252718569 at 2024-03-16
   - xml-html-conduit-lens # failure in job https://hydra.nixos.org/build/233238471 at 2023-09-02
   - XmlHtmlWriter # failure in job https://hydra.nixos.org/build/233213597 at 2023-09-02
   - xml-parsec # failure in job https://hydra.nixos.org/build/233208461 at 2023-09-02
+  - xml-parser # failure in job https://hydra.nixos.org/build/252721082 at 2024-03-16
   - xml-prettify # failure in job https://hydra.nixos.org/build/233225974 at 2023-09-02
   - xml-prettify-text # failure in job https://hydra.nixos.org/build/233202586 at 2023-09-02
   - xml-query # failure in job https://hydra.nixos.org/build/233194795 at 2023-09-02
@@ -6140,10 +6619,12 @@ broken-packages:
   - yall # failure in job https://hydra.nixos.org/build/233254805 at 2023-09-02
   - yam-app # failure in job https://hydra.nixos.org/build/233250535 at 2023-09-02
   - yam-config # failure in job https://hydra.nixos.org/build/233194454 at 2023-09-02
+  - yamemo # failure in job https://hydra.nixos.org/build/252739552 at 2024-03-16
   - yaml-combinators # failure in job https://hydra.nixos.org/build/233225265 at 2023-09-02
   - yaml-config # failure in job https://hydra.nixos.org/build/233242910 at 2023-09-02
   - yamlkeysdiff # failure in job https://hydra.nixos.org/build/233234710 at 2023-09-02
   - yaml-light-lens # failure in job https://hydra.nixos.org/build/233251688 at 2023-09-02
+  - yamlparse-applicative # failure in job https://hydra.nixos.org/build/252718434 at 2024-03-16
   - yaml-pretty-extras # failure in job https://hydra.nixos.org/build/233219040 at 2023-09-02
   - YamlReference # failure in job https://hydra.nixos.org/build/233222700 at 2023-09-02
   - yaml-rpc # failure in job https://hydra.nixos.org/build/233192097 at 2023-09-02
@@ -6153,6 +6634,7 @@ broken-packages:
   - yampa-glut # failure in job https://hydra.nixos.org/build/234458324 at 2023-09-13
   - yampa-sdl2 # failure in job https://hydra.nixos.org/build/233246927 at 2023-09-02
   - YampaSynth # failure in job https://hydra.nixos.org/build/233226486 at 2023-09-02
+  - yampa-test # failure in job https://hydra.nixos.org/build/252726579 at 2024-03-16
   - yandex-translate # failure in job https://hydra.nixos.org/build/233225152 at 2023-09-02
   - yaop # failure in job https://hydra.nixos.org/build/233215867 at 2023-09-02
   - yapb # failure in job https://hydra.nixos.org/build/233246177 at 2023-09-02
@@ -6177,6 +6659,7 @@ broken-packages:
   - yesod-auth-ldap-mediocre # failure in job https://hydra.nixos.org/build/233195322 at 2023-09-02
   - yesod-auth-ldap-native # failure in job https://hydra.nixos.org/build/233218681 at 2023-09-02
   - yesod-auth-nopassword # failure in job https://hydra.nixos.org/build/233197722 at 2023-09-02
+  - yesod-auth-oidc # failure in job https://hydra.nixos.org/build/252727671 at 2024-03-16
   - yesod-auth-pam # failure in job https://hydra.nixos.org/build/233207688 at 2023-09-02
   - yesod-auth-smbclient # failure in job https://hydra.nixos.org/build/233234879 at 2023-09-02
   - yesod-auth-zendesk # failure in job https://hydra.nixos.org/build/233212653 at 2023-09-02
@@ -6226,6 +6709,7 @@ broken-packages:
   - yoctoparsec # failure in job https://hydra.nixos.org/build/233192019 at 2023-09-02
   - yoda # failure in job https://hydra.nixos.org/build/233200530 at 2023-09-02
   - Yogurt # failure in job https://hydra.nixos.org/build/233212103 at 2023-09-02
+  - ytl # failure in job https://hydra.nixos.org/build/252731628 at 2024-03-16
   - yu-core # failure in job https://hydra.nixos.org/build/233202551 at 2023-09-02
   - yuiGrid # failure in job https://hydra.nixos.org/build/233223402 at 2023-09-02
   - yu-tool # failure in job https://hydra.nixos.org/build/233216535 at 2023-09-02
@@ -6250,6 +6734,7 @@ broken-packages:
   - ZFS # failure in job https://hydra.nixos.org/build/233257824 at 2023-09-02
   - zifter # failure in job https://hydra.nixos.org/build/233196342 at 2023-09-02
   - zigbee-znet25 # failure in job https://hydra.nixos.org/build/233235729 at 2023-09-02
+  - zio # failure in job https://hydra.nixos.org/build/252730492 at 2024-03-16
   - zip-conduit # failure in job https://hydra.nixos.org/build/233259721 at 2023-09-02
   - zipedit # failure in job https://hydra.nixos.org/build/233218886 at 2023-09-02
   - zipkin # failure in job https://hydra.nixos.org/build/233249243 at 2023-09-02
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
index f8957475256f..384136f22a9e 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
@@ -28,33 +28,10 @@ default-package-overrides:
   - gi-gdkx11 < 4
   # 2021-11-09: ghc-bignum is bundled starting with 9.0.1; only 1.0 builds with GHCs prior to 9.2.1
   - ghc-bignum == 1.0
-  # needs http-client >= 0.7.11 which isn't part of Stackage LTS 18
-  - http-client-restricted < 0.0.5
-  # Downgrade hasql-dynamic-statements until hasql 1.6 is in Stackage
-  - hasql-dynamic-statements < 0.3.1.2
-  - rope-utf16-splay < 0.4.0.0
-
-  # 2023-07-06: ghcide-2.0.0.1 explicitly needs implicit-hie < 0.1.3, because some sort of
-  # breaking change was introduced in implicit-hie-0.1.3.0.
-  # https://github.com/haskell/haskell-language-server/blob/feb596592de95f09cf4ee885f3e74178161919f1/ghcide/ghcide.cabal#L107-L111
-  - implicit-hie < 0.1.3
-  - hie-bios < 0.13
-
-  # pandoc-crossref 0.3.17 needs pandoc >= 3.1.8
-  - pandoc-crossref < 0.3.17.0
-
-  # 2023-09-17: reflex-dom 0.6.3.0 is broken https://github.com/reflex-frp/reflex-dom/issues/462
-  - reflex-dom < 0.6.2.0
-
-  # Only an older version of dependent-sum-template is compatible with ghc 9.4
-  # https://github.com/obsidiansystems/dependent-sum-template/issues/5
-  - dependent-sum-template < 0.1.2
-
-  # hls-floskell-plugin 2.4 does not yet support floskell 0.11
-  - floskell < 0.11
-
-  # Newer daemons requires GHC 9.6
-  - daemons == 0.3.0
+  # 2024-02-22: Needed for haskell-language-server-2.6.0.0
+  - lsp < 2.4.0.0
+  # 2024-02-22: Needed for hls-fourmolu-plugin-2.6.0.0 and others
+  - lsp-test < 0.17.0.0
 
 extra-packages:
   - Cabal-syntax == 3.6.*               # Dummy package that ensures packages depending on Cabal-syntax can work for Cabal < 3.8
@@ -71,8 +48,7 @@ extra-packages:
   - base16-bytestring < 1               # required for cabal-install etc.
   - basement < 0.0.15                   # 2022-08-30: last version to support GHC < 8.10
   - bower-json == 1.0.0.1               # 2022-05-21: Needed for spago 0.20.9
-  - brick == 0.70.*                     # 2022-08-13: needed by matterhorn-50200.17.0
-  - brick-skylighting < 1.0             # 2022-08-13: needed by matterhorn-50200.17.0 to match brick
+  - brick == 0.70.*                     # 2022-08-13: needed by taskell
   - brittany == 0.13.1.2                # 2022-09-20: needed for hls on ghc 8.8
   - crackNum < 3.0                      # 2021-05-21: 3.0 removed the lib which sbv 7.13 uses
   - dependent-map == 0.2.4.0            # required by Hasura 1.3.1, 2020-08-20
@@ -84,18 +60,9 @@ extra-packages:
   - ghc-exactprint == 0.6.*             # 2022-12-12: needed for GHC < 9.2
   - ghc-exactprint == 1.5.*             # 2023-03-30: needed for GHC == 9.2
   - ghc-exactprint == 1.6.*             # 2023-03-30: needed for GHC == 9.4
-  - ghc-lib == 8.10.7.*                 # 2022-02-17: preserve for GHC 8.10.7
   - ghc-lib == 9.2.*                    # 2022-02-17: preserve for GHC 9.2
-  - ghc-lib == 9.4.*                    # 2023-03-17: preserve for GHC 9.4
-  - ghc-lib == 9.6.*                    # 2023-03-17: preserve for GHC 9.6
-  - ghc-lib-parser == 8.10.7.*          # 2022-02-17: preserve for GHC 8.10.7
   - ghc-lib-parser == 9.2.*             # 2022-02-17: preserve for GHC 9.2
-  - ghc-lib-parser == 9.4.*             # 2023-03-17: preserve for GHC 9.4
-  - ghc-lib-parser == 9.6.*             # 2023-10-24: preserve for GHC 9.6
-  - ghc-lib-parser-ex == 8.10.*         # 2022-02-17: preserve for GHC 8.10.7
   - ghc-lib-parser-ex == 9.2.*          # 2022-07-13: preserve for GHC 9.2
-  - ghc-lib-parser-ex == 9.4.*          # 2023-03-17: preserve for GHC 9.4
-  - ghc-lib-parser-ex == 9.6.*          # 2023-10-24: preserve for GHC 9.6
   - ghc-syntax-highlighter == 0.0.10.*  # 2023-11-20:
   - gi-soup == 2.4.28                   # 2023-04-05: the last version to support libsoup-2.4 (and thus be compatible with our other gi- packages)
   - haddock == 2.23.*                   # required on GHC < 8.10.x
@@ -117,8 +84,8 @@ extra-packages:
   - language-docker == 11.0.0           # required by hadolint 2.12.0, 2022-11-16
   - language-javascript == 0.7.0.0      # required by purescript
   - lens-aeson < 1.2                    # 2022-12-17: For aeson < 2.0 compat
-  - lsp == 1.4.0.0                      # 2022-09-18: need for dhall-lsp-server 1.1.2
-  - lsp-types == 1.4.0.1                # 2022-09-18: need for dhall-lsp-server 1.1.2
+  - lsp == 2.1.0.0                      # 2024-02-28: need for dhall-lsp-server unstable
+  - lsp-types == 2.0.2.0                # 2024-02-28: need for dhall-lsp-server unstable
   - mmorph == 1.1.3                     # Newest working version of mmorph on ghc 8.6.5. needed for hls
   - network == 2.6.3.1                  # required by pkgs/games/hedgewars/default.nix, 2020-11-15
   - optparse-applicative < 0.16         # needed for niv-0.2.19
@@ -126,6 +93,7 @@ extra-packages:
   - fourmolu == 0.14.0.0                # 2023-11-13: for ghc-lib-parser 9.6 compat
   - ormolu == 0.5.2.0                   # 2023-08-08: for hls on ghc 9.0 and 9.2
   - ormolu == 0.7.2.0                   # 2023-11-13: for ghc-lib-parser 9.6 compat
+  - primitive-unlifted == 0.1.3.1       # 2024-03-16: Needed for hls on ghc 9.2
   - path == 0.9.0                       # 2021-12-03: path version building with stackage genvalidity and GHC 9.0.2
   - resolv < 0.2                        # required to build cabal-install-3.10.1.0 with Stackage LTS 21
   - sbv == 7.13                         # required for pkgs.petrinizer
@@ -137,12 +105,10 @@ extra-packages:
   - weeder == 2.2.*                     # 2022-02-21: preserve for GHC 8.10.7
   - weeder == 2.3.*                     # 2022-05-31: preserve for GHC 9.0.2
   - weeder == 2.4.*                     # 2023-02-02: preserve for GHC 9.2.*
-  - commonmark-extensions < 0.2.3.3     # 2022-12-17: required by emanote 1.0.0.0 (to avoid a bug in 0.2.3.3)
   - retrie < 1.2.0.0                    # 2022-12-30: required for hls on ghc < 9.2
   - ghc-tags == 1.5.*                   # 2023-02-18: preserve for ghc-lib == 9.2.*
   - ghc-tags == 1.6.*                   # 2023-02-18: preserve for ghc-lib == 9.4.*
   - shake-cabal < 0.2.2.3               # 2023-07-01: last version to support Cabal 3.6.*
-  - unix-compat < 0.7                   # 2023-07-04: Need System.PosixCompat.User for git-annex
   - algebraic-graphs < 0.7              # 2023-08-14: Needed for building weeder < 2.6.0
   - fuzzyset == 0.2.4                   # 2023-12-20: Needed for building postgrest > 10
 
@@ -180,6 +146,7 @@ package-maintainers:
   danielrolls:
     - byte-count-reader
     - shellify
+    - specup
   domenkozar:
     - cachix
     - cachix-api
@@ -300,13 +267,11 @@ package-maintainers:
     - hlint
     - hmatrix
     - hspec-discover
-    - iCalendar
     - matrix-client
     - optics
     - pandoc
     - pandoc-cli
     - pandoc-crossref
-    - paths
     - postgresql-simple
     - purebred-email
     - reflex-dom
@@ -392,6 +357,14 @@ package-maintainers:
   shlok:
     - streamly-archive
     - streamly-lmdb
+  slotThe:
+    - X11
+    - X11-xft
+    - html-parse-util
+    - optparse-applicative-cmdline-util
+    - xmonad
+    - xmonad-contrib
+    - xmonad-extras
   sorki:
     - cayenne-lpp
     - blockfrost-client
@@ -773,6 +746,7 @@ supported-platforms:
   swisstable:                                   [ platforms.x86_64 ] # Needs AVX2
   systemd-api:                                  [ platforms.linux ]
   tasty-papi:                                   [ platforms.linux ] # limited by pkgs.papi
+  tcod-haskell:                                 [ platforms.linux ] # limited by pkgs.libtcod
   udev:                                         [ platforms.linux ]
   vty-windows:                                  [ platforms.windows ] # depends on Win32
   Win32-console:                                [ platforms.windows ]
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
index 64484da35449..a7a122028dd7 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
@@ -1,4 +1,4 @@
-# Stackage LTS 21.25
+# Stackage LTS 22.8
 # This file is auto-generated by
 # maintainers/scripts/haskell/update-stackage.sh
 default-package-overrides:
@@ -11,35 +11,37 @@ default-package-overrides:
   - acid-state ==0.16.1.3
   - action-permutations ==0.0.0.1
   - active ==0.2.1
-  - ad ==4.5.4
-  - ad-delcont ==0.3.0.0
+  - ad ==4.5.5
+  - ad-delcont ==0.5.0.0
   - adjunctions ==4.4.2
   - adler32 ==0.1.2.0
-  - advent-of-code-api ==0.2.9.1
   - aern2-mp ==0.2.15.1
   - aern2-real ==0.2.15
   - aeson ==2.1.2.1
   - aeson-attoparsec ==0.0.0
   - aeson-casing ==0.2.0.0
-  - aeson-combinators ==0.1.1.0
+  - aeson-combinators ==0.1.2.1
   - aeson-diff ==1.1.0.13
-  - aeson-extra ==0.5.1.2
+  - aeson-extra ==0.5.1.3
   - aeson-generic-compat ==0.0.2.0
   - aeson-iproute ==0.3.0
   - aeson-optics ==1.2.1
   - aeson-picker ==0.1.0.6
-  - aeson-pretty ==0.8.9
+  - aeson-pretty ==0.8.10
   - aeson-qq ==0.8.4
-  - aeson-schemas ==1.4.1.0
-  - aeson-typescript ==0.6.1.0
+  - aeson-schemas ==1.4.2.1
+  - aeson-typescript ==0.6.2.0
+  - aeson-unqualified-ast ==1.0.0.3
   - aeson-value-parser ==0.19.7.2
+  - aeson-warning-parser ==0.1.1
   - aeson-yak ==0.1.1.3
   - aeson-yaml ==1.1.0.1
   - agda2lagda ==0.2023.6.9
-  - al ==0.1.4.2
+  - agreeing ==0.2.2.0
   - alarmclock ==0.7.0.6
-  - alex ==3.3.0.0
+  - alex ==3.4.0.1
   - alex-meta ==0.3.0.13
+  - alex-tools ==0.6.1
   - algebra ==4.3.1
   - algebraic-graphs ==0.7
   - align-audio ==0.0.0.1
@@ -52,30 +54,319 @@ default-package-overrides:
   - alternative-vector ==0.0.0
   - alternators ==1.0.0.0
   - ALUT ==2.4.0.3
-  - amqp ==0.22.1
-  - amqp-utils ==0.6.3.2
+  - amazonka ==2.0
+  - amazonka-accessanalyzer ==2.0
+  - amazonka-account ==2.0
+  - amazonka-amp ==2.0
+  - amazonka-amplify ==2.0
+  - amazonka-amplifybackend ==2.0
+  - amazonka-amplifyuibuilder ==2.0
+  - amazonka-apigateway ==2.0
+  - amazonka-apigatewaymanagementapi ==2.0
+  - amazonka-apigatewayv2 ==2.0
+  - amazonka-appconfig ==2.0
+  - amazonka-appconfigdata ==2.0
+  - amazonka-appflow ==2.0
+  - amazonka-appintegrations ==2.0
+  - amazonka-application-autoscaling ==2.0
+  - amazonka-applicationcostprofiler ==2.0
+  - amazonka-application-insights ==2.0
+  - amazonka-appmesh ==2.0
+  - amazonka-apprunner ==2.0
+  - amazonka-appstream ==2.0
+  - amazonka-arc-zonal-shift ==2.0
+  - amazonka-athena ==2.0
+  - amazonka-auditmanager ==2.0
+  - amazonka-autoscaling ==2.0
+  - amazonka-backup ==2.0
+  - amazonka-backup-gateway ==2.0
+  - amazonka-backupstorage ==2.0
+  - amazonka-billingconductor ==2.0
+  - amazonka-braket ==2.0
+  - amazonka-budgets ==2.0
+  - amazonka-certificatemanager ==2.0
+  - amazonka-chime ==2.0
+  - amazonka-chime-sdk-identity ==2.0
+  - amazonka-chime-sdk-media-pipelines ==2.0
+  - amazonka-chime-sdk-meetings ==2.0
+  - amazonka-chime-sdk-messaging ==2.0
+  - amazonka-chime-sdk-voice ==2.0
+  - amazonka-cloudcontrol ==2.0
+  - amazonka-cloudformation ==2.0
+  - amazonka-cloudfront ==2.0
+  - amazonka-cloudhsm ==2.0
+  - amazonka-cloudsearch ==2.0
+  - amazonka-cloudsearch-domains ==2.0
+  - amazonka-cloudtrail ==2.0
+  - amazonka-cloudwatch ==2.0
+  - amazonka-cloudwatch-events ==2.0
+  - amazonka-cloudwatch-logs ==2.0
+  - amazonka-codeartifact ==2.0
+  - amazonka-codebuild ==2.0
+  - amazonka-codecommit ==2.0
+  - amazonka-codedeploy ==2.0
+  - amazonka-codeguruprofiler ==2.0
+  - amazonka-codeguru-reviewer ==2.0
+  - amazonka-codepipeline ==2.0
+  - amazonka-codestar-connections ==2.0
+  - amazonka-codestar-notifications ==2.0
+  - amazonka-cognito-identity ==2.0
+  - amazonka-cognito-idp ==2.0
+  - amazonka-cognito-sync ==2.0
+  - amazonka-comprehendmedical ==2.0
+  - amazonka-compute-optimizer ==2.0
+  - amazonka-config ==2.0
+  - amazonka-connectcampaigns ==2.0
+  - amazonka-connectcases ==2.0
+  - amazonka-connect-contact-lens ==2.0
+  - amazonka-connectparticipant ==2.0
+  - amazonka-controltower ==2.0
+  - amazonka-core ==2.0
+  - amazonka-customer-profiles ==2.0
+  - amazonka-databrew ==2.0
+  - amazonka-dataexchange ==2.0
+  - amazonka-datapipeline ==2.0
+  - amazonka-datasync ==2.0
+  - amazonka-detective ==2.0
+  - amazonka-devicefarm ==2.0
+  - amazonka-devops-guru ==2.0
+  - amazonka-directconnect ==2.0
+  - amazonka-discovery ==2.0
+  - amazonka-dlm ==2.0
+  - amazonka-dms ==2.0
+  - amazonka-docdb ==2.0
+  - amazonka-docdb-elastic ==2.0
+  - amazonka-drs ==2.0
+  - amazonka-ds ==2.0
+  - amazonka-dynamodb ==2.0
+  - amazonka-dynamodb-streams ==2.0
+  - amazonka-ebs ==2.0
+  - amazonka-ec2 ==2.0
+  - amazonka-ec2-instance-connect ==2.0
+  - amazonka-ecr ==2.0
+  - amazonka-ecr-public ==2.0
+  - amazonka-ecs ==2.0
+  - amazonka-efs ==2.0
+  - amazonka-eks ==2.0
+  - amazonka-elasticache ==2.0
+  - amazonka-elasticbeanstalk ==2.0
+  - amazonka-elastic-inference ==2.0
+  - amazonka-elasticsearch ==2.0
+  - amazonka-elastictranscoder ==2.0
+  - amazonka-elb ==2.0
+  - amazonka-elbv2 ==2.0
+  - amazonka-emr ==2.0
+  - amazonka-emr-containers ==2.0
+  - amazonka-emr-serverless ==2.0
+  - amazonka-evidently ==2.0
+  - amazonka-finspace ==2.0
+  - amazonka-finspace-data ==2.0
+  - amazonka-fis ==2.0
+  - amazonka-forecast ==2.0
+  - amazonka-forecastquery ==2.0
+  - amazonka-frauddetector ==2.0
+  - amazonka-fsx ==2.0
+  - amazonka-gamelift ==2.0
+  - amazonka-gamesparks ==2.0
+  - amazonka-glacier ==2.0
+  - amazonka-globalaccelerator ==2.0
+  - amazonka-glue ==2.0
+  - amazonka-grafana ==2.0
+  - amazonka-greengrassv2 ==2.0
+  - amazonka-groundstation ==2.0
+  - amazonka-health ==2.0
+  - amazonka-healthlake ==2.0
+  - amazonka-honeycode ==2.0
+  - amazonka-iam ==2.0
+  - amazonka-identitystore ==2.0
+  - amazonka-imagebuilder ==2.0
+  - amazonka-importexport ==2.0
+  - amazonka-inspector ==2.0
+  - amazonka-inspector2 ==2.0
+  - amazonka-iot1click-devices ==2.0
+  - amazonka-iot1click-projects ==2.0
+  - amazonka-iot ==2.0
+  - amazonka-iot-dataplane ==2.0
+  - amazonka-iotdeviceadvisor ==2.0
+  - amazonka-iotevents ==2.0
+  - amazonka-iotevents-data ==2.0
+  - amazonka-iotfleethub ==2.0
+  - amazonka-iotfleetwise ==2.0
+  - amazonka-iot-roborunner ==2.0
+  - amazonka-iotsecuretunneling ==2.0
+  - amazonka-iotsitewise ==2.0
+  - amazonka-iotthingsgraph ==2.0
+  - amazonka-iottwinmaker ==2.0
+  - amazonka-iotwireless ==2.0
+  - amazonka-ivs ==2.0
+  - amazonka-ivschat ==2.0
+  - amazonka-kafka ==2.0
+  - amazonka-kafkaconnect ==2.0
+  - amazonka-kendra ==2.0
+  - amazonka-keyspaces ==2.0
+  - amazonka-kinesis ==2.0
+  - amazonka-kinesis-analytics ==2.0
+  - amazonka-kinesisanalyticsv2 ==2.0
+  - amazonka-kinesis-firehose ==2.0
+  - amazonka-kinesis-video-signaling ==2.0
+  - amazonka-kinesis-video-webrtc-storage ==2.0
+  - amazonka-kms ==2.0
+  - amazonka-lakeformation ==2.0
+  - amazonka-lambda ==2.0
+  - amazonka-lexv2-models ==2.0
+  - amazonka-license-manager ==2.0
+  - amazonka-license-manager-linux-subscriptions ==2.0
+  - amazonka-license-manager-user-subscriptions ==2.0
+  - amazonka-lightsail ==2.0
+  - amazonka-location ==2.0
+  - amazonka-lookoutequipment ==2.0
+  - amazonka-lookoutmetrics ==2.0
+  - amazonka-lookoutvision ==2.0
+  - amazonka-m2 ==2.0
+  - amazonka-macie ==2.0
+  - amazonka-maciev2 ==2.0
+  - amazonka-managedblockchain ==2.0
+  - amazonka-marketplace-analytics ==2.0
+  - amazonka-marketplace-catalog ==2.0
+  - amazonka-marketplace-metering ==2.0
+  - amazonka-mediaconnect ==2.0
+  - amazonka-mediapackage-vod ==2.0
+  - amazonka-mediatailor ==2.0
+  - amazonka-memorydb ==2.0
+  - amazonka-mgn ==2.0
+  - amazonka-migrationhub-config ==2.0
+  - amazonka-migrationhuborchestrator ==2.0
+  - amazonka-migration-hub-refactor-spaces ==2.0
+  - amazonka-migrationhubstrategy ==2.0
+  - amazonka-ml ==2.0
+  - amazonka-mwaa ==2.0
+  - amazonka-neptune ==2.0
+  - amazonka-network-firewall ==2.0
+  - amazonka-networkmanager ==2.0
+  - amazonka-nimble ==2.0
+  - amazonka-oam ==2.0
+  - amazonka-omics ==2.0
+  - amazonka-opensearch ==2.0
+  - amazonka-opensearchserverless ==2.0
+  - amazonka-opsworks ==2.0
+  - amazonka-opsworks-cm ==2.0
+  - amazonka-outposts ==2.0
+  - amazonka-panorama ==2.0
+  - amazonka-personalize ==2.0
+  - amazonka-personalize-events ==2.0
+  - amazonka-personalize-runtime ==2.0
+  - amazonka-pi ==2.0
+  - amazonka-pinpoint ==2.0
+  - amazonka-pinpoint-email ==2.0
+  - amazonka-pinpoint-sms-voice ==2.0
+  - amazonka-pinpoint-sms-voice-v2 ==2.0
+  - amazonka-pipes ==2.0
+  - amazonka-polly ==2.0
+  - amazonka-privatenetworks ==2.0
+  - amazonka-proton ==2.0
+  - amazonka-qldb ==2.0
+  - amazonka-qldb-session ==2.0
+  - amazonka-quicksight ==2.0
+  - amazonka-ram ==2.0
+  - amazonka-rbin ==2.0
+  - amazonka-rds ==2.0
+  - amazonka-rds-data ==2.0
+  - amazonka-redshift ==2.0
+  - amazonka-redshift-data ==2.0
+  - amazonka-redshift-serverless ==2.0
+  - amazonka-rekognition ==2.0
+  - amazonka-resiliencehub ==2.0
+  - amazonka-resource-explorer-v2 ==2.0
+  - amazonka-robomaker ==2.0
+  - amazonka-rolesanywhere ==2.0
+  - amazonka-route53 ==2.0
+  - amazonka-route53-domains ==2.0
+  - amazonka-route53-recovery-cluster ==2.0
+  - amazonka-route53-recovery-control-config ==2.0
+  - amazonka-route53-recovery-readiness ==2.0
+  - amazonka-route53resolver ==2.0
+  - amazonka-rum ==2.0
+  - amazonka-s3 ==2.0
+  - amazonka-s3outposts ==2.0
+  - amazonka-sagemaker-a2i-runtime ==2.0
+  - amazonka-sagemaker-edge ==2.0
+  - amazonka-sagemaker-featurestore-runtime ==2.0
+  - amazonka-sagemaker-geospatial ==2.0
+  - amazonka-sagemaker-metrics ==2.0
+  - amazonka-savingsplans ==2.0
+  - amazonka-scheduler ==2.0
+  - amazonka-schemas ==2.0
+  - amazonka-sdb ==2.0
+  - amazonka-securityhub ==2.0
+  - amazonka-securitylake ==2.0
+  - amazonka-servicecatalog ==2.0
+  - amazonka-servicecatalog-appregistry ==2.0
+  - amazonka-service-quotas ==2.0
+  - amazonka-ses ==2.0
+  - amazonka-sesv2 ==2.0
+  - amazonka-shield ==2.0
+  - amazonka-signer ==2.0
+  - amazonka-simspaceweaver ==2.0
+  - amazonka-sms ==2.0
+  - amazonka-sms-voice ==2.0
+  - amazonka-snowball ==2.0
+  - amazonka-snow-device-management ==2.0
+  - amazonka-sns ==2.0
+  - amazonka-sqs ==2.0
+  - amazonka-ssm ==2.0
+  - amazonka-ssm-contacts ==2.0
+  - amazonka-ssm-incidents ==2.0
+  - amazonka-ssm-sap ==2.0
+  - amazonka-sso ==2.0
+  - amazonka-sso-admin ==2.0
+  - amazonka-sso-oidc ==2.0
+  - amazonka-stepfunctions ==2.0
+  - amazonka-storagegateway ==2.0
+  - amazonka-sts ==2.0
+  - amazonka-support ==2.0
+  - amazonka-support-app ==2.0
+  - amazonka-swf ==2.0
+  - amazonka-synthetics ==2.0
+  - amazonka-test ==2.0
+  - amazonka-textract ==2.0
+  - amazonka-timestream-query ==2.0
+  - amazonka-timestream-write ==2.0
+  - amazonka-transfer ==2.0
+  - amazonka-voice-id ==2.0
+  - amazonka-waf ==2.0
+  - amazonka-wafv2 ==2.0
+  - amazonka-wellarchitected ==2.0
+  - amazonka-wisdom ==2.0
+  - amazonka-worklink ==2.0
+  - amazonka-workmailmessageflow ==2.0
+  - amazonka-workspaces ==2.0
+  - amazonka-workspaces-web ==2.0
+  - amazonka-xray ==2.0
+  - amqp ==0.22.2
+  - amqp-utils ==0.6.4.0
   - annotated-exception ==0.2.0.5
   - annotated-wl-pprint ==0.7.0
-  - ansi-terminal ==0.11.5
+  - ansi-terminal ==1.0.2
   - ansi-terminal-game ==1.9.2.0
   - ansi-terminal-types ==0.11.5
-  - ansi-wl-pprint ==0.6.9
+  - ansi-wl-pprint ==1.0.2
   - ANum ==0.2.0.2
   - aos-signature ==0.1.1
   - apecs ==0.9.5
+  - apecs-gloss ==0.2.4
+  - apecs-physics ==0.4.6
   - api-field-json-th ==0.1.0.2
-  - api-maker ==0.1.0.6
   - ap-normalize ==0.1.0.1
   - appar ==0.1.8
   - appendful ==0.1.0.0
+  - appendful-persistent ==0.1.0.1
   - appendmap ==0.1.5
   - apply-refact ==0.13.0.0
   - apportionment ==0.0.0.4
   - approximate ==0.3.5
   - approximate-equality ==1.1.0.2
-  - app-settings ==0.2.0.12
   - arbor-lru-cache ==0.1.1.1
-  - arithmoi ==0.12.1.0
+  - arithmoi ==0.13.0.0
   - array-memoize ==0.6.0
   - arrow-extras ==0.1.0.1
   - arrows ==0.4.4.2
@@ -83,7 +374,7 @@ default-package-overrides:
   - ascii-case ==1.0.1.3
   - ascii-caseless ==0.0.0.1
   - ascii-char ==1.0.1.0
-  - ascii-group ==1.0.0.16
+  - ascii-group ==1.0.0.17
   - ascii-numbers ==1.2.0.1
   - ascii-predicates ==1.0.1.3
   - ascii-progress ==0.3.3.0
@@ -97,10 +388,12 @@ default-package-overrides:
   - astro ==0.4.3.0
   - async ==2.2.5
   - async-extra ==0.2.0.0
+  - async-pool ==0.9.2
   - async-refresh ==0.3.0.0
   - async-refresh-tokens ==0.4.0.0
   - atom-basic ==0.2.5
   - atom-conduit ==0.9.0.1
+  - atomic-counter ==0.1.2.1
   - atomic-primops ==0.8.4
   - atomic-write ==0.2.0.7
   - attoparsec ==0.14.4
@@ -110,11 +403,12 @@ default-package-overrides:
   - attoparsec-data ==1.0.5.4
   - attoparsec-expr ==0.1.1.2
   - attoparsec-framer ==0.1.0.1
-  - attoparsec-iso8601 ==1.1.0.0
+  - attoparsec-iso8601 ==1.1.0.1
   - attoparsec-path ==0.0.0.1
   - attoparsec-run ==0.0.2.0
   - attoparsec-time ==1.0.3.1
-  - audacity ==0.0.2.1
+  - attoparsec-uri ==0.0.9
+  - audacity ==0.0.2.2
   - authenticate ==1.3.5.2
   - authenticate-oauth ==1.7
   - autodocodec ==0.2.2.0
@@ -126,18 +420,18 @@ default-package-overrides:
   - avro ==0.6.1.2
   - aws ==0.24.1
   - aws-cloudfront-signed-cookies ==0.2.0.12
-  - aws-lambda-haskell-runtime ==4.1.2
-  - aws-lambda-haskell-runtime-wai ==2.0.2
-  - aws-sns-verify ==0.0.0.2
+  - aws-sns-verify ==0.0.0.3
   - aws-xray-client ==0.1.0.2
   - aws-xray-client-persistent ==0.1.0.5
   - aws-xray-client-wai ==0.1.0.2
+  - backprop ==0.2.6.5
   - backtracking ==0.1.0
   - bank-holidays-england ==0.2.0.9
   - barbies ==2.0.5.0
-  - base16 ==0.3.2.1
+  - barrier ==0.1.1
+  - base16 ==1.0
   - base16-bytestring ==1.0.2.0
-  - base32 ==0.3.1.0
+  - base32 ==0.4
   - base32string ==0.9.1
   - base58-bytestring ==0.1.0
   - base58string ==0.10.0
@@ -145,8 +439,8 @@ default-package-overrides:
   - base64-bytestring ==1.2.1.0
   - base64-bytestring-type ==1.0.1
   - base64-string ==0.2
-  - base-compat ==0.12.3
-  - base-compat-batteries ==0.12.3
+  - base-compat ==0.13.1
+  - base-compat-batteries ==0.13.1
   - basement ==0.0.16
   - base-orphans ==0.9.1
   - base-prelude ==1.6.1.1
@@ -158,21 +452,18 @@ default-package-overrides:
   - bcp47 ==0.2.0.6
   - bcp47-orphans ==0.1.0.6
   - bcrypt ==0.0.11
-  - bech32 ==1.1.3
+  - beam-core ==0.10.1.0
+  - bech32 ==1.1.4
   - bech32-th ==1.1.1
-  - bench ==1.0.12
   - benchpress ==0.2.2.23
   - bencode ==0.6.1.1
-  - bencoding ==0.4.5.4
   - benri-hspec ==0.1.0.1
   - between ==0.11.0.0
-  - bhoogle ==0.1.4.2
   - bibtex ==0.1.0.7
   - bifunctor-classes-compat ==0.1
-  - bifunctors ==5.5.15
+  - bifunctors ==5.6.1
   - bimap ==0.5.0
   - bimaps ==0.1.0.2
-  - bimap-server ==0.1.0.1
   - bin ==0.1.3
   - binance-exports ==0.1.2.0
   - binary-conduit ==1.3.1
@@ -182,22 +473,22 @@ default-package-overrides:
   - binary-instances ==1.0.4
   - binary-list ==1.1.1.2
   - binary-orphans ==1.0.4.1
-  - binary-parser ==0.5.7.5
+  - binary-parser ==0.5.7.6
   - binary-search ==2.0.0
   - binary-shared ==0.8.3
   - binary-tagged ==0.3.1
   - bindings-DSL ==1.0.25
-  - bindings-GLFW ==3.3.2.0
+  - bindings-GLFW ==3.3.9.1
   - bindings-libzip ==1.0.1
   - bindings-uname ==0.1
   - BiobaseEnsembl ==0.2.0.1
+  - BiobaseNewick ==0.0.0.2
   - bitarray ==0.0.1.1
   - bits ==0.6
   - bitset-word8 ==0.1.1.2
-  - bits-extra ==0.0.2.3
   - bitvec ==1.1.5.0
   - bitwise-enum ==1.0.1.2
-  - blake2 ==0.3.0
+  - blake2 ==0.3.0.1
   - Blammo ==1.1.2.1
   - blank-canvas ==0.7.4
   - blanks ==0.5.0
@@ -213,6 +504,7 @@ default-package-overrides:
   - blaze-svg ==0.3.7
   - blaze-textual ==0.2.3.1
   - bloodhound ==0.21.0.0
+  - bloomfilter ==2.0.1.2
   - bm ==0.2.0.0
   - bmp ==1.2.6.3
   - bnb-staking-csvs ==0.2.1.0
@@ -223,74 +515,81 @@ default-package-overrides:
   - boltzmann-samplers ==0.1.1.0
   - Boolean ==0.2.4
   - boolsimplifier ==0.1.8
-  - boomerang ==1.4.9
-  - boots ==0.2.0.1
+  - boomerang ==1.4.9.1
+  - boomwhacker ==0.0.1
   - bordacount ==0.1.0.0
   - boring ==0.2.1
   - bound ==2.0.7
   - BoundedChan ==1.0.3.0
+  - bounded-qsem ==0.1.0.2
   - bounded-queue ==1.0.0
   - boundingboxes ==0.2.3
-  - box ==0.9.2.1
+  - box ==0.9.3.1
   - boxes ==0.1.5
-  - breakpoint ==0.1.2.2
-  - brick ==1.9
+  - breakpoint ==0.1.3.0
+  - brick ==2.1.1
   - broadcast-chan ==0.2.1.2
   - brotli ==0.0.0.1
   - brotli-streams ==0.0.0.0
   - bsb-http-chunked ==0.0.0.4
   - bson ==0.4.0.1
   - bson-lens ==0.1.1
+  - btrfs ==0.2.1.0
   - buffer-builder ==0.2.4.8
   - buffer-pipe ==0.0
-  - bugsnag ==1.0.0.1
+  - bugsnag ==1.1.0.0
   - bugsnag-haskell ==0.0.4.4
   - bugsnag-hs ==0.2.0.12
   - bugsnag-wai ==1.0.0.1
   - bugsnag-yesod ==1.0.1.0
   - bugzilla-redhat ==1.0.1.1
-  - burrito ==2.0.1.7
+  - burrito ==2.0.1.8
   - bv ==0.5
+  - bv-little ==1.3.2
   - byteable ==0.1.1
-  - bytebuild ==0.3.14.0
-  - byte-count-reader ==0.10.1.10
+  - bytebuild ==0.3.15.0
+  - byte-count-reader ==0.10.1.11
   - bytedump ==1.0
-  - bytehash ==0.1.0.0
+  - bytehash ==0.1.1.0
   - byte-order ==0.1.3.0
   - byteorder ==1.0.4
   - bytes ==0.17.3
   - byteset ==0.1.1.1
-  - byteslice ==0.2.12.0
-  - bytesmith ==0.3.10.0
+  - byteslice ==0.2.13.0
+  - bytesmith ==0.3.11.0
   - bytestring-builder ==0.10.8.2.0
+  - bytestring-conversion ==0.3.2
   - bytestring-lexing ==0.5.0.11
-  - bytestring-mmap ==0.2.2
   - bytestring-strict-builder ==0.4.5.7
   - bytestring-to-vector ==0.3.0.1
-  - bytestring-tree-builder ==0.2.7.11
+  - bytestring-tree-builder ==0.2.7.12
   - bytestring-trie ==0.2.7.2
   - bz2 ==1.0.1.0
+  - bzlib ==0.5.1.0
   - bzlib-conduit ==0.3.0.2
   - c14n ==0.1.0.3
   - c2hs ==0.28.8
   - cabal2spec ==2.7.0
   - cabal-appimage ==0.4.0.2
   - cabal-clean ==0.2.20230609
+  - cabal-debian ==5.2.2
   - cabal-doctest ==1.0.9
   - cabal-file ==0.1.1
-  - cabal-install-solver ==3.8.1.0
+  - cabal-install-solver ==3.10.2.1
+  - cabal-plan ==0.7.3.0
   - cabal-rpm ==2.1.5
+  - cabal-sort ==0.1.2
   - cache ==0.1.3.0
   - cached-json-file ==0.1.1
   - cacophony ==0.10.1
   - cairo ==0.13.10.0
+  - cairo-image ==0.1.0.3
   - calendar-recycling ==0.0.0.1
-  - call-alloy ==0.4.0.3
+  - call-alloy ==0.4.1.1
   - calligraphy ==0.1.6
   - call-plantuml ==0.0.1.3
   - call-stack ==0.4.0
   - can-i-haz ==0.3.1.1
-  - capability ==0.5.0.1
   - ca-province-codes ==1.0.0.0
   - cardano-coin-selection ==1.0.1
   - carray ==0.1.6.8
@@ -298,10 +597,10 @@ default-package-overrides:
   - casa-types ==0.0.2
   - cased ==0.1.0.0
   - case-insensitive ==1.2.1.0
-  - cases ==0.1.4.2
+  - cases ==0.1.4.3
   - casing ==0.1.4.1
   - cassava ==0.5.3.0
-  - cassava-conduit ==0.6.5
+  - cassava-conduit ==0.6.6
   - cassava-megaparsec ==2.0.4
   - cast ==0.1.0.2
   - cborg ==0.2.10.0
@@ -316,11 +615,14 @@ default-package-overrides:
   - cfenv ==0.1.0.0
   - cgi ==3001.5.0.1
   - chan ==0.0.4.1
+  - ChannelT ==0.0.0.7
   - character-cases ==0.1.0.6
   - charset ==0.3.10
   - charsetdetect-ae ==1.1.0.4
   - Chart ==1.9.5
+  - Chart-cairo ==1.9.4.1
   - Chart-diagrams ==1.9.5.1
+  - chart-svg ==0.5.2.0
   - ChasingBottoms ==1.3.1.12
   - check-email ==1.0.2
   - checkers ==0.6.0
@@ -337,9 +639,11 @@ default-package-overrides:
   - circle-packing ==0.1.0.6
   - circular ==0.4.0.3
   - citeproc ==0.8.1
+  - clash-prelude ==1.8.1
   - classy-prelude ==1.5.0.3
   - classy-prelude-conduit ==1.5.0
   - classy-prelude-yesod ==1.5.0
+  - clay ==0.14.0
   - cleff ==0.3.3.0
   - clientsession ==0.9.2.0
   - Clipboard ==2.3.2.0
@@ -347,16 +651,20 @@ default-package-overrides:
   - closed ==0.2.0.2
   - clumpiness ==0.17.0.2
   - ClustalParser ==1.3.0
+  - cmark ==0.6.1
   - cmark-gfm ==0.2.6
+  - cmark-lucid ==0.1.0.0
   - cmdargs ==0.10.22
   - codec-beam ==0.2.0
-  - code-conjure ==0.5.6
+  - code-conjure ==0.5.8
   - code-page ==0.2.1
-  - coinor-clp ==0.0.0.1
+  - coinor-clp ==0.0.0.2
   - cointracking-imports ==0.1.0.2
   - collect-errors ==0.1.5.0
+  - co-log ==0.6.0.2
   - co-log-concurrent ==0.5.1.0
   - co-log-core ==0.3.2.1
+  - co-log-polysemy ==0.0.1.4
   - colonnade ==1.2.0.2
   - Color ==0.3.3
   - colorful-monoids ==0.2.1.3
@@ -365,9 +673,9 @@ default-package-overrides:
   - colourista ==0.1.0.2
   - columnar ==1.0.0.0
   - combinatorial ==0.1.1
-  - comfort-array ==0.5.3
+  - comfort-array ==0.5.4.2
   - comfort-array-shape ==0.0
-  - comfort-blas ==0.0.1
+  - comfort-blas ==0.0.2
   - comfort-fftw ==0.0.0.1
   - comfort-glpk ==0.1
   - comfort-graph ==0.0.4
@@ -375,29 +683,34 @@ default-package-overrides:
   - commonmark-extensions ==0.2.5.1
   - commonmark-pandoc ==0.2.2
   - commutative ==0.0.2
-  - commutative-semigroups ==0.1.0.1
+  - commutative-semigroups ==0.1.0.2
   - comonad ==5.0.8
-  - comonad-extras ==4.0.1
+  - compact ==0.2.0.0
   - compactmap ==0.1.4.3
+  - companion ==0.1.0
   - compdata ==0.13.1
   - compensated ==0.8.3
   - compiler-warnings ==0.1.0
   - componentm ==0.0.0.2
   - componentm-devel ==0.0.0.2
   - composable-associations ==0.1.0.0
+  - composite-base ==0.8.2.1
+  - composite-binary ==0.8.2.2
+  - composite-hashable ==0.8.2.2
+  - composite-tuple ==0.1.2.0
+  - composite-xstep ==0.1.0.0
   - composition ==1.0.2.2
-  - composition-extra ==2.0.0
+  - composition-extra ==2.1.0
   - composition-prelude ==3.0.0.2
   - concise ==0.1.0.1
   - concurrency ==1.11.0.3
   - concurrent-extra ==0.7.0.12
   - concurrent-output ==1.10.20
   - concurrent-split ==0.0.1.1
-  - cond ==0.4.1.1
-  - conduino ==0.2.4.0
+  - concurrent-supply ==0.1.8
+  - cond ==0.5.1
   - conduit ==1.3.5
   - conduit-aeson ==0.1.0.1
-  - conduit-algorithms ==0.0.13.0
   - conduit-combinators ==1.3.0
   - conduit-concurrent-map ==0.1.3
   - conduit-extra ==1.3.6
@@ -406,21 +719,20 @@ default-package-overrides:
   - conferer ==1.1.0.0
   - conferer-aeson ==1.1.0.2
   - conferer-warp ==1.1.0.1
-  - ConfigFile ==1.1.4
   - config-ini ==0.2.7.0
-  - configuration-tools ==0.6.1
+  - configuration-tools ==0.7.0
   - configurator ==0.3.0.0
   - configurator-export ==0.1.0.1
-  - connection ==0.3.1
-  - console-style ==0.0.2.1
-  - constraints ==0.13.4
+  - configurator-pg ==0.2.9
+  - constraints ==0.14
   - constraints-extras ==0.4.0.0
   - constraint-tuples ==0.1.2
+  - construct ==0.3.1.2
   - context ==0.2.0.3
   - context-http-client ==0.2.0.2
   - context-resource ==0.2.0.2
   - context-wai-middleware ==0.2.0.2
-  - contiguous ==0.6.3.0
+  - contiguous ==0.6.4.0
   - contravariant ==1.5.5
   - contravariant-extras ==0.3.5.4
   - control-bool ==0.2.1
@@ -429,16 +741,15 @@ default-package-overrides:
   - control-monad-omega ==0.3.2
   - convertible ==1.1.1.1
   - cookie ==0.4.6
-  - copr-api ==0.1.0
+  - copr-api ==0.2.0
   - core-data ==0.3.9.1
-  - core-program ==0.6.9.4
+  - core-program ==0.7.0.0
   - core-telemetry ==0.2.9.4
   - core-text ==0.3.8.1
   - countable ==1.2
-  - country ==0.2.3.1
+  - country ==0.2.4.1
   - covariance ==0.2.0.1
   - cpphs ==1.20.9.1
-  - cprng-aes ==0.6.1
   - cpu ==0.1.2
   - cpuinfo ==0.1.0.2
   - cql ==4.0.4
@@ -446,28 +757,30 @@ default-package-overrides:
   - crackNum ==3.4
   - crc32c ==0.1.0
   - credential-store ==0.1.2
-  - criterion ==1.6.1.0
+  - criterion ==1.6.3.0
   - criterion-measurement ==0.2.1.0
-  - cron ==0.7.0
   - crypto-api ==0.13.3
   - crypto-api-tests ==0.3
   - crypto-cipher-tests ==0.0.11
   - crypto-cipher-types ==0.0.9
   - cryptocompare ==0.1.2
-  - crypto-enigma ==0.1.1.6
   - cryptohash ==0.11.9
   - cryptohash-cryptoapi ==0.1.4
   - cryptohash-md5 ==0.11.101.0
   - cryptohash-sha1 ==0.11.101.0
   - cryptohash-sha256 ==0.11.102.1
   - cryptohash-sha512 ==0.11.102.0
-  - crypton ==0.32
+  - crypton ==0.34
   - crypton-conduit ==0.2.3
+  - crypton-connection ==0.3.1
   - cryptonite ==0.30
   - cryptonite-conduit ==0.2.2
   - cryptonite-openssl ==0.7
+  - crypton-x509 ==1.7.6
+  - crypton-x509-store ==1.6.9
+  - crypton-x509-system ==1.6.7
+  - crypton-x509-validation ==1.6.12
   - crypto-pubkey-types ==0.4.3
-  - crypto-random ==0.0.9
   - crypto-random-api ==0.2.0
   - cryptostore ==0.3.0.1
   - crypt-sha512 ==0
@@ -476,22 +789,20 @@ default-package-overrides:
   - css-text ==0.1.3.0
   - c-struct ==0.1.3.0
   - csv ==0.1.2
-  - csv-conduit ==0.7.3.0
   - ctrie ==0.2
   - cubicbezier ==0.6.0.7
   - cubicspline ==0.1.2
+  - cuda ==0.11.0.1
   - cue-sheet ==2.0.2
   - curl ==1.3.8
-  - curl-runnings ==0.17.0
   - currency ==0.2.0.0
-  - currycarbon ==0.2.1.2
+  - currycarbon ==0.3.0.1
   - cursor ==0.3.2.0
   - cursor-brick ==0.1.0.1
   - cursor-fuzzy-time ==0.0.0.0
   - cursor-gen ==0.4.0.0
   - cutter ==0.0
   - cyclotomic ==1.1.2
-  - d10 ==1.0.1.3
   - data-accessor ==0.2.3.1
   - data-accessor-mtl ==0.2.0.5
   - data-accessor-transformers ==0.2.1.8
@@ -500,7 +811,6 @@ default-package-overrides:
   - data-bword ==0.1.0.2
   - data-checked ==0.3
   - data-clist ==0.2
-  - data-compat ==0.1.0.4
   - data-default ==0.7.1.1
   - data-default-class ==0.1.2.0
   - data-default-instances-base ==0.1.0.1
@@ -517,9 +827,10 @@ default-package-overrides:
   - data-endian ==0.1.1
   - data-fix ==0.3.2
   - data-forest ==0.1.0.12
+  - data-functor-logistic ==0.0
   - data-has ==0.4.0.0
   - data-hash ==0.2.0.1
-  - data-interval ==2.1.1
+  - data-interval ==2.1.2
   - data-inttrie ==0.1.4
   - data-lens-light ==0.1.2.4
   - data-memocombinators ==0.5.1
@@ -537,7 +848,7 @@ default-package-overrides:
   - DAV ==1.3.4
   - dbcleaner ==0.1.3
   - DBFunctor ==0.1.2.1
-  - dbus ==1.2.29
+  - dbus ==1.3.2
   - dbus-hslogger ==0.1.0.1
   - debian ==4.0.5
   - debian-build ==0.10.2.1
@@ -551,6 +862,7 @@ default-package-overrides:
   - dense-linear-algebra ==0.1.0.0
   - dependent-map ==0.4.0.0
   - dependent-sum ==0.7.2.0
+  - dependent-sum-template ==0.1.1.1
   - depq ==0.4.2
   - deque ==0.4.4.1
   - deriveJsonNoPrefix ==0.1.0.1
@@ -558,15 +870,19 @@ default-package-overrides:
   - derive-topdown ==0.0.3.0
   - deriving-aeson ==0.2.9
   - deriving-compat ==0.6.5
-  - deriving-trans ==0.5.2.0
+  - deriving-trans ==0.9.1.0
   - detour-via-sci ==1.0.0
   - df1 ==0.4.2
+  - dhall ==1.42.1
+  - dhall-bash ==1.0.41
   - di ==1.3
   - diagrams ==1.4.1
+  - diagrams-builder ==0.8.0.6
   - diagrams-cairo ==1.4.2.1
   - diagrams-canvas ==1.4.1.2
   - diagrams-contrib ==1.4.5.1
   - diagrams-core ==1.5.1.1
+  - diagrams-gtk ==1.4
   - diagrams-html5 ==1.4.2
   - diagrams-lib ==1.4.6
   - diagrams-postscript ==1.5.1.1
@@ -584,32 +900,34 @@ default-package-overrides:
   - di-handle ==1.0.1
   - dimensional ==1.5
   - di-monad ==1.3.5
+  - directory-ospath-streaming ==0.1.0.1
   - directory-tree ==0.12.1
-  - direct-sqlite ==2.3.28
+  - direct-sqlite ==2.3.29
   - dirichlet ==0.1.0.7
   - discount ==0.1.1
   - discover-instances ==0.1.0.0
   - discrimination ==0.5
   - disk-free-space ==0.1.0.1
+  - distributed-closure ==0.5.0.0
   - distributed-static ==0.3.9
   - distribution-opensuse ==1.1.4
   - distributive ==0.6.2.1
   - diversity ==0.8.1.0
   - djinn-lib ==0.0.1.4
-  - dl-fedora ==0.9.6
+  - dl-fedora ==1.0
   - dlist ==1.0
   - dlist-instances ==0.1.1.1
   - dlist-nonempty ==0.1.3
-  - dns ==4.1.1
+  - dns ==4.2.0
   - dockerfile ==0.2.0
   - doclayout ==0.4.0.1
   - doctemplates ==0.11
-  - doctest ==0.20.1
+  - doctest ==0.22.2
   - doctest-discover ==0.2.0.0
   - doctest-driver-gen ==0.3.0.8
   - doctest-exitcode-stdio ==0.0
-  - doctest-extract ==0.1.1.1
-  - doctest-lib ==0.1
+  - doctest-extract ==0.1.2
+  - doctest-lib ==0.1.1
   - doctest-parallel ==0.3.1
   - doldol ==0.4.1.2
   - do-list ==1.0.1
@@ -627,14 +945,13 @@ default-package-overrides:
   - download ==0.3.2.7
   - download-curl ==0.1.4
   - DPutils ==0.1.1.0
+  - drawille ==0.1.3.0
   - drifter ==0.3.0
   - drifter-postgresql ==0.2.1
   - drifter-sqlite ==0.1.0.0
   - dsp ==0.2.5.2
-  - dual ==0.1.1.1
   - dual-tree ==0.2.3.1
   - dublincore-xml-conduit ==0.1.0.3
-  - dunai ==0.11.2
   - duration ==0.2.0.0
   - dvorak ==0.1.0.0
   - dynamic-state ==0.3.1
@@ -647,32 +964,31 @@ default-package-overrides:
   - echo ==0.1.4
   - ecstasy ==0.2.1.0
   - ed25519 ==0.0.5.0
-  - ede ==0.3.3.0
   - edit-distance ==0.2.2.1
   - edit-distance-vector ==1.0.0.4
   - editor-open ==0.6.0.0
-  - effectful ==2.2.2.0
-  - effectful-core ==2.2.2.2
+  - effectful ==2.3.0.0
+  - effectful-core ==2.3.0.1
   - effectful-plugin ==1.1.0.2
   - effectful-th ==1.0.0.1
+  - egison-pattern-src ==0.2.1.2
   - either ==5.0.2
-  - either-both ==0.1.1.1
   - either-unwrap ==1.1
   - ekg-core ==0.1.1.7
   - elerea ==2.9.0
   - elf ==0.31
-  - eliminators ==0.9.2
-  - elm2nix ==0.3.1
-  - elm-bridge ==0.8.2
+  - eliminators ==0.9.3
+  - elm-bridge ==0.8.3
   - elm-core-sources ==1.0.0
   - elm-export ==0.6.0.1
+  - elm-street ==0.2.2.0
   - elynx ==0.7.2.2
   - elynx-markov ==0.7.2.2
   - elynx-nexus ==0.7.2.2
   - elynx-seq ==0.7.2.2
-  - elynx-tools ==0.7.2.1
+  - elynx-tools ==0.7.2.2
   - elynx-tree ==0.7.2.2
-  - emacs-module ==0.1.1.1
+  - emacs-module ==0.2.1
   - email-validate ==2.3.2.19
   - emojis ==0.1.3
   - enclosed-exceptions ==1.0.3
@@ -685,73 +1001,77 @@ default-package-overrides:
   - envelope ==0.2.2.0
   - envparse ==0.5.0
   - envy ==2.1.2.0
+  - epub-metadata ==5.2
   - eq ==4.3
   - equal-files ==0.0.5.4
-  - equational-reasoning ==0.7.0.1
+  - equational-reasoning ==0.7.0.2
   - equivalence ==0.4.1
   - erf ==2.0.0.0
+  - errata ==0.4.0.2
   - error ==1.0.0.0
   - errorcall-eq-instance ==0.3.0
   - error-or ==0.3.0
   - error-or-utils ==0.2.0
   - errors ==2.3.0
   - errors-ext ==0.4.2
-  - ersatz ==0.4.13
-  - esqueleto ==3.5.11.0
+  - ersatz ==0.5
+  - esqueleto ==3.5.11.1
   - event-list ==0.1.2.1
-  - eventstore ==1.4.2
   - every ==0.0.1
   - evm-opcodes ==0.1.2
   - exact-combinatorics ==0.2.0.11
   - exact-pi ==0.5.0.2
-  - exception-hierarchy ==0.1.0.10
+  - exception-hierarchy ==0.1.0.11
   - exception-mtl ==0.4.0.2
   - exception-transformers ==0.4.0.12
+  - exception-via ==0.2.0.0
   - executable-hash ==0.2.0.4
   - executable-path ==0.0.3.1
   - exinst ==0.9
   - exit-codes ==1.0.0
   - exomizer ==1.0.0
-  - experimenter ==0.1.0.14
+  - exon ==1.6.1.1
   - expiring-cache-map ==0.0.6.1
   - explainable-predicates ==0.1.2.4
   - explicit-exception ==0.2
   - exp-pairs ==0.2.1.0
-  - express ==1.0.12
+  - express ==1.0.14
   - extended-reals ==0.2.4.0
   - extensible ==0.9
   - extensible-effects ==5.0.0.1
   - extensible-exceptions ==0.1.1.4
   - extra ==1.7.14
   - extractable-singleton ==0.0.1
+  - extra-data-yj ==0.1.0.0
   - extrapolate ==0.4.6
   - fail ==4.9.0.0
-  - failable ==1.2.4.0
   - FailT ==0.1.2.0
   - fakedata ==1.0.3
   - fakedata-parser ==0.1.0.0
   - fakedata-quickcheck ==0.2.0
   - fakefs ==0.3.0.2
   - fakepull ==0.3.0.2
-  - faktory ==1.1.2.4
+  - faktory ==1.1.2.6
   - fasta ==0.10.4.2
+  - fast-digits ==0.3.2.0
   - fast-logger ==3.2.2
   - fast-math ==1.0.2
-  - fastmemo ==0.1.1
   - fast-myers-diff ==0.0.0
   - fb ==2.1.1.1
-  - fcf-family ==0.2.0.0
+  - fcf-family ==0.2.0.1
+  - fclabels ==2.0.5.1
   - fdo-notify ==0.3.1
   - feature-flags ==0.1.0.1
   - fedora-dists ==2.1.1
-  - fedora-haskell-tools ==1.0
+  - fedora-haskell-tools ==1.1
   - feed ==1.3.2.1
   - FenwickTree ==0.1.2.1
   - fft ==0.1.8.7
   - fftw-ffi ==0.1
-  - fgl ==5.8.0.0
+  - fgl ==5.8.2.0
+  - fgl-arbitrary ==0.2.0.6
   - fields-json ==0.4.0.0
-  - file-embed ==0.0.15.0
+  - file-embed ==0.0.16.0
   - file-embed-lzma ==0.0.1
   - filelock ==0.1.1.7
   - filemanip ==0.3.6.3
@@ -767,19 +1087,20 @@ default-package-overrides:
   - fingertree ==0.1.5.0
   - finite-typelits ==0.1.6.0
   - first-class-families ==0.8.0.1
-  - first-class-patterns ==0.3.2.5
+  - fits-parse ==0.3.6
   - fitspec ==0.4.10
   - fixed ==0.3
   - fixed-length ==0.2.3.1
   - fixed-vector ==1.2.3.0
   - fixed-vector-hetero ==0.6.1.1
-  - fix-whitespace ==0.0.11
+  - fix-whitespace ==0.1
   - flac ==0.2.1
-  - flac-picture ==0.1.2
+  - flac-picture ==0.1.3
   - flags-applicative ==0.1.0.3
   - flat ==0.6
-  - flatparse ==0.4.1.0
+  - flatparse ==0.5.0.1
   - flay ==0.4
+  - flexible-defaults ==0.0.3
   - FloatingHex ==0.5
   - floatshow ==0.2.4
   - flow ==2.0.0.4
@@ -793,20 +1114,22 @@ default-package-overrides:
   - fold-debounce ==0.2.0.11
   - foldl ==1.4.15
   - folds ==0.7.8
-  - follow-file ==0.0.3
   - FontyFruity ==0.5.3.5
   - force-layout ==0.4.0.6
   - foreign-store ==0.2
   - ForestStructures ==0.0.1.1
   - forkable-monad ==0.2.0.3
+  - forma ==1.2.0
   - formatn ==0.3.0.1
   - format-numbers ==0.1.0.1
   - formatting ==7.2.0
   - foundation ==0.0.30
-  - fourmolu ==0.11.0.0
-  - free ==5.1.10
+  - fourmolu ==0.14.0.0
+  - Frames ==0.7.4.2
+  - free ==5.2
   - free-categories ==0.2.0.2
   - freenect ==1.2.1
+  - freer-par-monad ==0.1.0.0
   - freetype2 ==0.2.0
   - free-vl ==0.1.4
   - friday ==0.2.3.2
@@ -816,17 +1139,16 @@ default-package-overrides:
   - from-sum ==0.2.3.0
   - frontmatter ==0.1.0.2
   - fsnotify ==0.4.1.0
-  - ftp-client ==0.5.1.4
   - funcmp ==1.9
   - function-builder ==0.3.0.1
   - functor-classes-compat ==2.0.0.2
-  - functor-combinators ==0.4.1.2
   - fused-effects ==1.1.2.2
   - fusion-plugin ==0.2.7
   - fusion-plugin-types ==0.1.0
   - fuzzcheck ==0.1.1
-  - fuzzy ==0.1.0.1
+  - fuzzy ==0.1.1.0
   - fuzzy-dates ==0.1.1.2
+  - fuzzyset ==0.3.1
   - fuzzy-time ==0.2.0.3
   - gauge ==0.2.5
   - gd ==3000.7.3
@@ -849,7 +1171,6 @@ default-package-overrides:
   - generics-eot ==0.4.0.1
   - generics-sop ==0.5.1.3
   - generics-sop-lens ==0.2.0.1
-  - geniplate-mirror ==0.7.9
   - genvalidity ==1.1.0.0
   - genvalidity-aeson ==1.0.0.1
   - genvalidity-appendful ==0.1.0.0
@@ -866,6 +1187,8 @@ default-package-overrides:
   - genvalidity-hspec-persistent ==1.0.0.0
   - genvalidity-mergeful ==0.3.0.1
   - genvalidity-mergeless ==0.3.0.0
+  - genvalidity-network-uri ==0.0.0.0
+  - genvalidity-path ==1.0.0.1
   - genvalidity-persistent ==1.0.0.2
   - genvalidity-property ==1.0.0.0
   - genvalidity-scientific ==1.0.0.0
@@ -881,32 +1204,36 @@ default-package-overrides:
   - genvalidity-uuid ==1.0.0.1
   - genvalidity-vector ==1.0.0.0
   - geodetics ==0.1.2
+  - geojson ==4.1.1
   - getopt-generics ==0.13.1.0
+  - ghc-bignum-orphans ==0.1.1
   - ghc-byteorder ==4.11.0.0.10
   - ghc-check ==0.5.0.8
+  - ghc-compact ==0.1.0.0
   - ghc-core ==0.5.6
   - ghc-events ==0.19.0.1
-  - ghc-exactprint ==1.6.1.3
+  - ghc-exactprint ==1.7.1.0
+  - ghc-hs-meta ==0.1.3.0
   - ghcid ==0.8.9
   - ghci-hexcalc ==0.1.1.0
   - ghcjs-codemirror ==0.0.0.2
   - ghcjs-perch ==0.3.3.3
-  - ghc-lib ==9.4.8.20231111
-  - ghc-lib-parser ==9.4.8.20231111
-  - ghc-lib-parser-ex ==9.4.0.0
+  - ghc-lib ==9.6.4.20240109
+  - ghc-lib-parser ==9.6.4.20240109
+  - ghc-lib-parser-ex ==9.6.0.2
+  - ghc-parser ==0.2.6.0
   - ghc-paths ==0.1.0.12
-  - ghc-prof ==1.4.1.12
-  - ghc-syntax-highlighter ==0.0.9.0
+  - ghc-syntax-highlighter ==0.0.10.0
   - ghc-tcplugins-extra ==0.4.5
-  - ghc-trace-events ==0.1.2.7
+  - ghc-trace-events ==0.1.2.8
   - ghc-typelits-extra ==0.4.6
   - ghc-typelits-knownnat ==0.7.10
   - ghc-typelits-natnormalise ==0.7.9
-  - ghc-typelits-presburger ==0.7.2.0
+  - ghc-typelits-presburger ==0.7.3.0
   - ghost-buster ==0.1.1.0
+  - ghostscript-parallel ==0.0.1
   - gi-atk ==2.0.27
   - gi-cairo ==1.0.29
-  - gi-cairo-connector ==0.1.1
   - gi-cairo-render ==0.1.2
   - gi-dbusmenu ==0.4.13
   - gi-dbusmenugtk3 ==0.4.14
@@ -921,28 +1248,33 @@ default-package-overrides:
   - gi-graphene ==1.0.7
   - gi-gtk ==3.0.41
   - gi-gtk-hs ==0.3.16
+  - gi-gtksource ==3.0.28
   - gi-harfbuzz ==0.0.9
   - gi-javascriptcore ==4.0.27
+  - ginger ==0.10.5.2
   - gio ==0.13.10.0
   - gi-pango ==1.0.29
   - gi-soup ==2.4.28
+  - git-annex ==10.20231129
   - githash ==0.1.7.0
-  - github ==0.28.0.1
-  - github-release ==2.0.0.9
+  - github ==0.29
+  - github-release ==2.0.0.10
   - github-rest ==1.1.4
   - github-types ==0.2.1
   - github-webhooks ==0.17.0
-  - gitlab-haskell ==1.0.0.3
+  - git-lfs ==1.2.1
   - gitlib ==3.1.3
+  - git-mediate ==1.0.9
   - gitrev ==1.3.1
-  - gi-vte ==2.91.31
+  - gi-vte ==2.91.32
   - gi-webkit2 ==4.0.30
   - gi-xlib ==2.0.13
   - gl ==0.9
-  - glabrous ==2.0.6.2
+  - glabrous ==2.0.6.3
   - glasso ==0.1.0
-  - GLFW-b ==3.3.0.0
+  - GLFW-b ==3.3.9.0
   - glib ==0.13.10.0
+  - glib-stopgap ==0.1.0.0
   - Glob ==0.10.2
   - glob-posix ==0.2.0.1
   - gloss ==1.13.2.2
@@ -959,10 +1291,10 @@ default-package-overrides:
   - gpolyline ==0.1.0.1
   - graph-core ==0.3.0.0
   - graphite ==0.10.0.1
-  - graphql ==1.2.0.1
-  - graphql-client ==1.2.2
+  - graphql ==1.2.0.3
+  - graphql-client ==1.2.4
   - graphs ==0.7.2
-  - graphula ==2.0.2.2
+  - graphula ==2.1.0.0
   - graphviz ==2999.20.2.0
   - graph-wrapper ==0.2.6.0
   - gravatar ==0.8.1
@@ -973,15 +1305,16 @@ default-package-overrides:
   - gtk ==0.15.8
   - gtk2hs-buildtools ==0.13.10.0
   - gtk3 ==0.15.8
-  - gtk-sni-tray ==0.1.8.1
   - gtk-strut ==0.1.3.2
   - guarded-allocation ==0.0.1
   - H ==1.0.0
   - hackage-cli ==0.1.0.1
-  - hackage-security ==0.6.2.3
+  - hackage-security ==0.6.2.4
   - haddock-library ==1.11.0
   - haha ==0.3.1.1
   - hakyll ==4.16.2.0
+  - hakyllbars ==1.0.1.0
+  - hakyll-convert ==0.3.0.4
   - hal ==1.0.1
   - half ==0.3.1
   - hall-symbols ==0.1.0.6
@@ -989,16 +1322,14 @@ default-package-overrides:
   - hamtsolo ==1.0.4
   - HandsomeSoup ==0.4.2
   - handwriting ==0.1.0.3
-  - happstack-hsp ==7.3.7.7
-  - happstack-jmacro ==7.0.12.5
+  - happstack-jmacro ==7.0.12.6
   - happstack-server ==7.8.0.2
-  - happstack-server-tls ==7.2.1.3
+  - happstack-server-tls ==7.2.1.5
   - happy ==1.20.1.1
   - happy-meta ==0.2.1.0
-  - harp ==0.4.3.6
   - HasBigDecimal ==0.2.0.0
-  - hasbolt ==0.1.7.0
   - hashable ==1.4.3.0
+  - hashids ==1.1.1.0
   - hashing ==0.1.1.0
   - hashmap ==1.3.3
   - hashtables ==1.3.1
@@ -1007,28 +1338,27 @@ default-package-overrides:
   - haskell-gi-overloading ==1.0
   - haskell-lexer ==1.1.1
   - HaskellNet ==0.6.1.2
-  - HaskellNet-SSL ==0.3.4.4
   - haskell-src ==1.0.4
   - haskell-src-exts ==1.23.1
   - haskell-src-exts-simple ==1.23.0.0
   - haskell-src-exts-util ==0.2.5
   - haskell-src-meta ==0.8.13
-  - haskoin-core ==0.21.2
-  - haskoin-node ==0.18.1
-  - haskoin-store-data ==0.65.5
-  - hasktags ==0.72.0
-  - hasql ==1.6.3.4
-  - hasql-dynamic-statements ==0.3.1.2
-  - hasql-implicits ==0.1.1
-  - hasql-interpolate ==0.1.0.4
-  - hasql-listen-notify ==0.1.0
+  - haskintex ==0.8.0.2
+  - haskoin-core ==1.0.2
+  - haskoin-node ==1.0.1
+  - haskoin-store-data ==1.2.2
+  - hasktags ==0.73.0
+  - hasql ==1.6.4.1
+  - hasql-dynamic-statements ==0.3.1.4
+  - hasql-implicits ==0.1.1.2
+  - hasql-interpolate ==0.2.1.0
+  - hasql-listen-notify ==0.1.0.1
   - hasql-migration ==0.3.0
   - hasql-notifications ==0.2.0.6
-  - hasql-optparse-applicative ==0.7
-  - hasql-pool ==0.9.0.1
-  - hasql-queue ==1.2.0.2
+  - hasql-optparse-applicative ==0.7.1.3
+  - hasql-pool ==0.10.0.1
   - hasql-th ==0.4.0.19
-  - hasql-transaction ==1.0.1.2
+  - hasql-transaction ==1.0.1.4
   - has-transformers ==0.1.0.4
   - hasty-hamiltonian ==1.3.4
   - HaTeX ==3.22.4.1
@@ -1043,20 +1373,19 @@ default-package-overrides:
   - heaps ==0.4
   - heatshrink ==0.1.0.0
   - hebrew-time ==0.1.2
-  - hedgehog ==1.2
+  - hedgehog ==1.4
   - hedgehog-classes ==0.2.5.4
   - hedgehog-corpus ==0.2.0
-  - hedgehog-fakedata ==0.0.1.5
   - hedgehog-fn ==1.0
-  - hedgehog-optics ==1.0.0.3
   - hedgehog-quickcheck ==0.1.1
   - hedis ==0.15.2
   - hedn ==0.3.0.4
+  - hegg ==0.5.0.0
   - heist ==1.1.1.2
   - here ==1.2.14
   - heredoc ==0.2.0.0
   - heterocephalus ==1.0.5.7
-  - hetzner ==0.2.1.1
+  - hetzner ==0.6.0.0
   - hex ==0.2.0
   - hexml ==0.3.4
   - hexml-lens ==0.2.2
@@ -1067,8 +1396,7 @@ default-package-overrides:
   - hgal ==2.0.0.3
   - hidapi ==0.1.8
   - hi-file-parser ==0.1.6.0
-  - highlighting-kate ==0.6.4
-  - hindent ==6.0.0
+  - hindent ==6.1.1
   - hinfo ==0.0.3.0
   - hinotify ==0.4.1
   - hint ==0.9.0.8
@@ -1076,25 +1404,29 @@ default-package-overrides:
   - hjsmin ==0.2.1
   - hkd-default ==1.1.0.0
   - hkgr ==0.4.3.2
-  - hledger ==1.30.1
+  - hledger ==1.32.3
+  - hledger-iadd ==1.3.20
   - hledger-interest ==1.6.6
-  - hledger-lib ==1.30
+  - hledger-lib ==1.32.3
   - hledger-stockquotes ==0.1.2.1
-  - hledger-ui ==1.30
-  - hledger-web ==1.30
+  - hledger-web ==1.32.3
   - hlibcpuid ==0.2.0
   - hlibgit2 ==0.18.0.16
   - hlibsass ==0.1.10.1
-  - hlint ==3.5
+  - hlint ==3.6.1
   - hmatrix ==0.20.2
+  - hmatrix-backprop ==0.1.3.0
   - hmatrix-gsl ==0.19.0.1
   - hmatrix-gsl-stats ==0.4.1.8
   - hmatrix-morpheus ==0.1.1.2
   - hmatrix-special ==0.19.0.0
+  - hmatrix-vector-sized ==0.1.3.0
   - hmm-lapack ==0.5.0.1
+  - HMock ==0.5.1.2
   - hmpfr ==0.4.5
-  - hoauth2 ==2.8.0
-  - hoogle ==5.0.18.3
+  - hnix-store-core ==0.7.0.0
+  - hoauth2 ==2.10.0
+  - hOpenPGP ==2.9.8
   - hopenssl ==2.2.5
   - hopfli ==0.2.2.1
   - horizontal-rule ==0.6.0.0
@@ -1104,10 +1436,9 @@ default-package-overrides:
   - hourglass ==0.2.12
   - hourglass-orphans ==0.1.0.0
   - hp2pretty ==0.10
-  - hpack ==0.35.2
-  - hpack-dhall ==0.5.7
-  - hpc-codecov ==0.3.0.0
-  - hpc-lcov ==1.1.1
+  - hpack ==0.36.0
+  - hpc-codecov ==0.5.0.0
+  - hpc-lcov ==1.1.2
   - HPDF ==1.6.2
   - hpp ==0.6.5
   - hpqtypes ==1.11.1.2
@@ -1118,65 +1449,68 @@ default-package-overrides:
   - hsass ==0.8.0
   - hs-bibutils ==6.10.0.0
   - hsc2hs ==0.68.10
-  - hscolour ==1.24.4
+  - hscolour ==1.25
   - hsdns ==1.8
   - hse-cpp ==0.2
   - hsemail ==2.2.1
+  - HSet ==0.0.2
   - hset ==2.2.0
+  - hsexif ==0.6.1.10
   - hs-GeoIP ==0.3
   - hsignal ==0.2.7.5
   - hsini ==0.5.2.2
   - hsinstall ==2.8
   - HSlippyMap ==3.0.1
   - hslogger ==1.3.1.0
-  - hslua ==2.3.0
-  - hslua-aeson ==2.3.0.1
-  - hslua-classes ==2.3.0
-  - hslua-core ==2.3.1
+  - hslua ==2.3.1
+  - hslua-aeson ==2.3.1
+  - hslua-classes ==2.3.1
+  - hslua-cli ==1.4.2
+  - hslua-core ==2.3.2
   - hslua-list ==1.1.1
-  - hslua-marshalling ==2.3.0
-  - hslua-module-doclayout ==1.1.0
-  - hslua-module-path ==1.1.0
-  - hslua-module-system ==1.1.0.1
-  - hslua-module-text ==1.1.0.1
-  - hslua-module-version ==1.1.0
-  - hslua-objectorientation ==2.3.0
-  - hslua-packaging ==2.3.0
-  - hslua-typing ==0.1.0
+  - hslua-marshalling ==2.3.1
+  - hslua-module-doclayout ==1.1.1
+  - hslua-module-path ==1.1.1
+  - hslua-module-system ==1.1.1
+  - hslua-module-text ==1.1.1
+  - hslua-module-version ==1.1.1
+  - hslua-module-zip ==1.1.1
+  - hslua-objectorientation ==2.3.1
+  - hslua-packaging ==2.3.1
+  - hslua-repl ==0.1.2
+  - hslua-typing ==0.1.1
   - hsndfile ==0.8.0
   - hsndfile-vector ==0.5.2
   - HsOpenSSL ==0.11.7.6
   - HsOpenSSL-x509-system ==0.1.0.4
-  - hsp ==0.10.0
-  - hspec ==2.10.10
+  - hspec ==2.11.7
+  - hspec-api ==2.11.7
   - hspec-attoparsec ==0.1.0.2
   - hspec-checkers ==0.1.0.2
   - hspec-contrib ==0.5.2
-  - hspec-core ==2.10.10
-  - hspec-discover ==2.10.10
-  - hspec-expectations ==0.8.2
+  - hspec-core ==2.11.7
+  - hspec-discover ==2.11.7
+  - hspec-expectations ==0.8.4
   - hspec-expectations-json ==1.0.2.1
   - hspec-expectations-lifted ==0.10.0
   - hspec-expectations-pretty-diff ==0.7.2.6
   - hspec-golden ==0.2.1.0
   - hspec-golden-aeson ==0.9.0.0
-  - hspec-hedgehog ==0.0.1.2
+  - hspec-hedgehog ==0.1.1.0
   - hspec-junit-formatter ==1.1.0.2
   - hspec-leancheck ==0.0.6
   - hspec-megaparsec ==2.2.1
-  - hspec-meta ==2.10.5
+  - hspec-meta ==2.11.7
   - hspec-parsec ==0
   - hspec-smallcheck ==0.5.3
-  - hspec-tmp-proc ==0.5.1.2
+  - hspec-tmp-proc ==0.5.2.0
   - hspec-wai ==0.11.1
   - hspec-wai-json ==0.11.0
   - hspec-webdriver ==1.2.2
   - hs-php-session ==0.0.9.3
   - hstatistics ==0.3.1
   - HStringTemplate ==0.8.8
-  - HSvm ==0.1.1.3.25
-  - hsx2hs ==0.14.1.11
-  - hsx-jmacro ==7.3.8.2
+  - HSvm ==0.1.2.3.32
   - HsYAML ==0.2.1.3
   - HsYAML-aeson ==0.2.0.1
   - hsyslog ==5.0.2
@@ -1185,26 +1519,24 @@ default-package-overrides:
   - html ==1.0.1.2
   - html-conduit ==1.3.2.2
   - html-email-validate ==0.2.0.0
-  - html-entities ==1.1.4.6
+  - html-entities ==1.1.4.7
   - html-entity-map ==0.1.0.0
-  - htoml-megaparsec ==2.1.0.4
-  - htoml-parse ==0.1.0.1
-  - http2 ==4.1.4
+  - http2 ==5.0.1
   - HTTP ==4000.4.1
-  - http-api-data ==0.5
+  - http-api-data ==0.5.1
   - http-api-data-qq ==0.1.0.0
-  - http-client ==0.7.15
+  - http-client ==0.7.16
   - http-client-openssl ==0.3.3
   - http-client-overrides ==0.1.1.0
-  - http-client-restricted ==0.0.5
-  - http-client-tls ==0.3.6.1
+  - http-client-restricted ==0.1.0
+  - http-client-tls ==0.3.6.3
   - http-common ==0.8.3.4
-  - http-conduit ==2.3.8.1
+  - http-conduit ==2.3.8.3
   - http-date ==0.0.11
   - http-directory ==0.1.10
-  - http-download ==0.2.0.0
+  - http-download ==0.2.1.0
   - httpd-shed ==0.4.1.1
-  - http-io-streams ==0.1.6.3
+  - http-io-streams ==0.1.6.4
   - http-link-header ==1.2.1
   - http-media ==0.8.1.1
   - http-query ==0.1.3
@@ -1217,35 +1549,21 @@ default-package-overrides:
   - hunit-dejafu ==2.0.0.6
   - hvect ==0.4.0.1
   - hvega ==0.12.0.7
-  - hw-balancedparens ==0.4.1.3
   - hw-bits ==0.7.2.2
   - hw-conduit ==0.2.1.1
   - hw-conduit-merges ==0.2.1.0
   - hw-diagnostics ==0.0.1.0
   - hweblib ==0.6.3
-  - hw-eliasfano ==0.1.2.1
-  - hw-excess ==0.2.3.0
   - hw-fingertree ==0.1.2.1
   - hw-fingertree-strict ==0.1.2.1
-  - hw-hedgehog ==0.1.1.1
   - hw-hspec-hedgehog ==0.1.1.1
   - hw-int ==0.0.2.0
-  - hw-ip ==2.4.2.1
-  - hw-json-simd ==0.1.1.2
-  - hw-json-simple-cursor ==0.1.1.1
-  - hw-json-standard-cursor ==0.2.3.2
   - hwk ==0.6
-  - hw-kafka-client ==4.0.3
-  - hw-mquery ==0.2.1.1
+  - hw-kafka-client ==5.3.0
   - hworker ==0.1.0.1
-  - hw-packed-vector ==0.2.1.1
   - hw-parser ==0.1.1.0
   - hw-prim ==0.6.3.2
-  - hw-rankselect ==0.13.4.1
-  - hw-rankselect-base ==0.3.4.1
-  - hw-simd ==0.1.2.2
   - hw-string-parse ==0.0.0.5
-  - hw-succinct ==0.1.0.1
   - hxt ==9.3.1.22
   - hxt-charproperties ==9.5.0.0
   - hxt-css ==0.1.0.3
@@ -1259,12 +1577,17 @@ default-package-overrides:
   - hyper ==0.2.1.1
   - hyperloglog ==0.4.6
   - hyphenation ==0.8.2
-  - identicon ==0.2.2
+  - hyraxAbif ==0.2.4.5
+  - iconv ==0.4.1.3
+  - identicon ==0.2.3
   - ieee754 ==0.8.0
   - if ==0.1.0.0
   - IfElse ==0.85
   - iff ==0.0.6.1
+  - ihaskell ==0.10.4.0
+  - ihaskell-hvega ==0.5.0.5
   - ihs ==0.1.0.3
+  - ilist ==0.4.0.1
   - imagesize-conduit ==1.1
   - Imlib ==0.1.2
   - immortal ==0.3
@@ -1274,6 +1597,7 @@ default-package-overrides:
   - incipit-core ==0.5.1.0
   - include-file ==0.1.0.4
   - incremental ==0.3.1
+  - incremental-parser ==0.5.1
   - indents ==0.5.0.1
   - indexed ==0.1.3
   - indexed-containers ==0.1.0.2
@@ -1283,7 +1607,9 @@ default-package-overrides:
   - indexed-traversable-instances ==0.1.1.2
   - inf-backprop ==0.1.0.2
   - infer-license ==0.2.0
-  - infinite-list ==0.1
+  - infinite-list ==0.1.1
+  - inflections ==0.4.0.7
+  - influxdb ==1.9.3
   - ini ==0.4.2
   - inj ==1.0
   - inline-c ==0.9.1.10
@@ -1291,8 +1617,9 @@ default-package-overrides:
   - inline-r ==1.0.1
   - input-parsers ==0.3.0.2
   - insert-ordered-containers ==0.2.5.3
-  - inspection-testing ==0.5.0.2
-  - instance-control ==0.1.2.0
+  - inspection-testing ==0.5.0.3
+  - int-cast ==0.2.0.0
+  - integer-conversion ==0.1.0.1
   - integer-logarithms ==1.0.3.1
   - integer-roots ==1.0.2.0
   - integer-types ==0.1.4.0
@@ -1305,8 +1632,10 @@ default-package-overrides:
   - IntervalMap ==0.6.2.1
   - intervals ==0.9.2
   - intset-imperative ==0.1.0.0
+  - int-supply ==1.0.0
   - invariant ==0.6.2
   - invert ==1.0.0.4
+  - invertible ==0.2.0.8
   - invertible-grammar ==0.1.3.5
   - io-machine ==0.2.0.0
   - io-manager ==0.1.0.4
@@ -1316,38 +1645,40 @@ default-package-overrides:
   - io-streams ==1.5.2.2
   - io-streams-haproxy ==1.0.1.0
   - ip ==1.7.7
-  - ip6addr ==1.0.3
+  - ip6addr ==1.0.4
   - iproute ==1.7.12
-  - IPv6Addr ==2.0.5.1
+  - IPv6Addr ==2.0.6
   - ipynb ==0.2
-  - ipython-kernel ==0.10.3.0
+  - ipython-kernel ==0.11.0.0
   - irc ==0.6.1.1
   - irc-ctcp ==0.1.3.1
-  - isbn ==1.1.0.4
+  - isbn ==1.1.0.5
   - islink ==0.1.0.0
   - iso3166-country-codes ==0.20140203.8
   - iso639 ==0.1.0.3
   - iso8601-time ==0.1.5
   - isocline ==1.0.9
   - isomorphism-class ==0.1.0.12
-  - iterable ==3.0
+  - ixset-typed ==0.5.1.0
+  - ixset-typed-binary-instance ==0.1.0.2
+  - ixset-typed-hashable-instance ==0.1.0.2
   - ix-shapable ==0.1.0
   - jack ==0.7.2.2
   - jalaali ==1.0.0.0
-  - java-adt ==0.2018.11.4
+  - java-adt ==1.0.20231204
   - jira-wiki-markup ==1.5.1
-  - jl ==0.1.0
   - jmacro ==0.6.18
-  - jose ==0.10.0.1
+  - jose ==0.11
   - jose-jwt ==0.9.6
-  - journalctl-stream ==0.6.0.5
+  - journalctl-stream ==0.6.0.6
+  - jsaddle ==0.9.8.3
   - js-chart ==2.9.4.1
   - js-dgtable ==0.5.2
   - js-flot ==0.8.3
   - js-jquery ==3.3.1
-  - json ==0.10
-  - json-feed ==2.0.0.10
-  - jsonifier ==0.2.1.2
+  - json ==0.11
+  - json-feed ==2.0.0.11
+  - jsonifier ==0.2.1.3
   - jsonpath ==0.3.0.0
   - json-rpc ==1.0.4
   - json-stream ==0.4.5.3
@@ -1361,16 +1692,16 @@ default-package-overrides:
   - kansas-comet ==0.4.2
   - katip ==0.8.8.0
   - katip-logstash ==0.1.0.2
-  - katip-wai ==0.1.2.2
+  - katip-wai ==0.1.2.3
   - kazura-queue ==0.1.0.4
   - kdt ==0.2.5
   - keep-alive ==0.2.1.0
-  - keter ==2.1.2
+  - keter ==2.1.3
   - keycode ==0.2.2
-  - keyed-vals ==0.2.2.0
-  - keyed-vals-hspec-tests ==0.2.2.0
-  - keyed-vals-mem ==0.2.2.0
-  - keyed-vals-redis ==0.2.2.0
+  - keyed-vals ==0.2.3.0
+  - keyed-vals-hspec-tests ==0.2.3.0
+  - keyed-vals-mem ==0.2.3.0
+  - keyed-vals-redis ==0.2.3.0
   - keys ==3.12.3
   - ki ==1.0.1.1
   - kind-apply ==0.4.0.0
@@ -1381,24 +1712,25 @@ default-package-overrides:
   - kmeans ==0.1.3
   - knob ==0.2.2
   - koji ==0.0.2
-  - krank ==0.3.0
+  - koji-tool ==1.1.1
   - labels ==0.3.3
   - lackey ==2.0.0.7
+  - lambdabot-core ==5.3.1.2
+  - lambdabot-irc-plugins ==5.3.1.2
   - LambdaHack ==0.11.0.1
   - lame ==0.2.2
   - language-avro ==0.1.4.0
-  - language-bash ==0.9.2
-  - language-c ==0.9.2
+  - language-c ==0.9.3
   - language-c-quote ==0.13.0.1
   - language-docker ==12.1.0
   - language-dot ==0.1.2
   - language-glsl ==0.3.0
   - language-java ==0.2.9
   - language-javascript ==0.7.1.0
+  - language-lua ==0.11.0.1
   - language-protobuf ==1.0.1
   - language-python ==0.5.8
-  - language-thrift ==0.12.0.1
-  - lapack ==0.5.1
+  - lapack ==0.5.1.1
   - lapack-carray ==0.0.3
   - lapack-comfort-array ==0.0.1
   - lapack-ffi ==0.0.3
@@ -1406,16 +1738,16 @@ default-package-overrides:
   - lapack-hmatrix ==0.0.0.2
   - largeword ==1.2.5
   - latex ==0.1.0.4
-  - lattices ==2.1
+  - lattices ==2.2
   - lawful ==0.1.0.0
   - lazy-csv ==0.5.1
   - lazyio ==0.1.0.4
   - lazysmallcheck ==0.6
   - lca ==0.4
-  - leancheck ==1.0.0
+  - leancheck ==1.0.2
   - leancheck-instances ==0.0.5
   - leapseconds-announced ==2017.1.0.1
-  - learn-physics ==0.6.5
+  - learn-physics ==0.6.6
   - leb128-cereal ==1.2
   - lens ==5.2.3
   - lens-action ==0.2.6
@@ -1433,7 +1765,6 @@ default-package-overrides:
   - lexer-applicative ==2.1.0.2
   - libBF ==0.6.7
   - libffi ==0.2.1
-  - libgit ==0.3.1
   - liboath-hs ==0.0.1.2
   - libyaml ==0.1.2
   - lifted-async ==0.10.2.5
@@ -1442,26 +1773,29 @@ default-package-overrides:
   - lift-type ==0.1.1.1
   - line ==4.0.1
   - linear ==1.22
-  - linear-base ==0.3.1
+  - linear-base ==0.4.0
   - linear-circuit ==0.1.0.4
-  - linear-generics ==0.2.1
-  - linear-programming ==0.0.0.1
+  - linear-generics ==0.2.3
+  - linear-programming ==0.0.1
   - linebreak ==1.1.0.4
   - linux-capabilities ==0.1.1.0
-  - linux-file-extents ==0.2.0.0
-  - linux-namespaces ==0.1.3.0
+  - linux-file-extents ==0.2.0.1
+  - linux-namespaces ==0.1.3.1
   - List ==0.6.2
   - ListLike ==4.7.8.2
   - list-predicate ==0.1.0.1
   - listsafe ==0.1.0.1
+  - list-shuffle ==1.0.0
   - list-t ==1.0.5.7
-  - list-transformer ==1.0.9
+  - list-transformer ==1.1.0
   - ListTree ==0.2.3
   - ListZipper ==1.2.0.2
   - literatex ==0.3.0.0
+  - little-logger ==1.0.2
+  - little-rio ==2.0.1
   - lmdb ==0.2.5
   - load-env ==0.2.1.0
-  - loc ==0.1.4.1
+  - loc ==0.2.0.0
   - locators ==0.3.0.3
   - loch-th ==0.2.2
   - lockfree-queue ==0.2.4
@@ -1473,12 +1807,14 @@ default-package-overrides:
   - logging-effect ==1.4.0
   - logging-facade ==0.3.1
   - logging-facade-syslog ==1
-  - logict ==0.8.0.0
+  - logict ==0.8.1.0
   - logstash ==0.1.0.4
   - loop ==0.3.0
   - lpeg ==1.0.4
+  - LPFP ==1.1.1
+  - LPFP-core ==1.1.1
   - lrucache ==1.2.0.1
-  - lua ==2.3.1
+  - lua ==2.3.2
   - lua-arbitrary ==1.0.1.1
   - lucid2 ==0.0.20230706
   - lucid ==2.11.20230408
@@ -1489,20 +1825,21 @@ default-package-overrides:
   - lz4-frame-conduit ==0.1.0.1
   - lzma ==0.0.1.0
   - lzma-clib ==5.2.2
-  - lzma-conduit ==1.2.3
   - machines ==0.7.3
   - magic ==1.1
   - magico ==0.0.2.3
-  - mail-pool ==2.2.3
+  - mailtrap ==0.1.2.0
   - mainland-pretty ==0.7.1
   - main-tester ==0.2.0.1
   - managed ==1.0.10
   - mandrill ==0.5.7.0
+  - mappings ==0.3.0.0
   - map-syntax ==0.3
   - markdown ==0.1.17.5
-  - markdown-unlit ==0.5.1
+  - markdown-unlit ==0.6.0
   - markov-chain ==0.0.3.4
   - markov-chain-usage-model ==0.0.0
+  - markup-parse ==0.1.1
   - mason ==0.2.6
   - massiv ==1.0.4.0
   - massiv-io ==1.0.0.1
@@ -1525,8 +1862,8 @@ default-package-overrides:
   - mcmc-types ==1.0.3
   - median-stream ==0.7.0.0
   - med-module ==0.1.3
-  - megaparsec ==9.3.1
-  - megaparsec-tests ==9.3.1
+  - megaparsec ==9.5.0
+  - megaparsec-tests ==9.5.0
   - mega-sdist ==0.4.3.0
   - membership ==0.0.1
   - memcache ==0.3.0.1
@@ -1534,7 +1871,9 @@ default-package-overrides:
   - memory ==0.18.0
   - MemoTrie ==0.6.11
   - mergeful ==0.3.0.0
+  - mergeful-persistent ==0.3.0.1
   - mergeless ==0.4.0.0
+  - mergeless-persistent ==0.1.0.1
   - merkle-tree ==0.1.1
   - mersenne-random ==1.0.0.1
   - mersenne-random-pure64 ==0.2.2.0
@@ -1547,7 +1886,7 @@ default-package-overrides:
   - microlens-contra ==0.1.0.3
   - microlens-ghc ==0.4.14.2
   - microlens-mtl ==0.2.0.3
-  - microlens-platform ==0.4.3.4
+  - microlens-platform ==0.4.3.5
   - microlens-th ==0.4.3.14
   - microspec ==0.2.1.3
   - microstache ==1.0.2.3
@@ -1561,70 +1900,71 @@ default-package-overrides:
   - mime-types ==0.1.2.0
   - minimal-configuration ==0.1.4
   - minimorph ==0.3.0.1
-  - minio-hs ==1.7.0
   - minisat-solver ==0.1
+  - miniterion ==0.1.1.0
   - miniutter ==0.5.1.2
   - min-max-pqueue ==0.1.0.2
   - mintty ==0.1.4
   - misfortune ==0.1.2.1
+  - miso ==1.8.3.0
   - missing-foreign ==0.1.1
   - MissingH ==1.6.0.1
   - mixed-types-num ==0.5.12
   - mmap ==0.5.9
   - mmark ==0.0.7.6
-  - mmark-cli ==0.0.5.1
+  - mmark-cli ==0.0.5.2
   - mmark-ext ==0.2.1.5
   - mmorph ==1.2.0
   - mnist-idx ==0.1.3.2
   - mnist-idx-conduit ==0.4.0.0
   - mockery ==0.3.5
-  - mock-time ==0.1.0
   - mod ==0.2.0.1
-  - model ==0.5
   - modern-uri ==0.3.6.1
   - modular ==0.1.0.8
+  - moffy ==0.1.1.0
+  - moffy-samples ==0.1.0.3
+  - moffy-samples-events ==0.2.2.5
   - monad-chronicle ==1.0.1
   - monad-control ==1.0.3.1
+  - monad-control-aligned ==0.0.2.1
   - monad-control-identity ==0.2.0.0
   - monad-coroutine ==0.9.2
   - monad-extras ==0.6.0
-  - monadic-arrays ==0.2.2
-  - monad-journal ==0.8.1
+  - monad-interleave ==0.2.0.1
   - monadlist ==0.0.2
-  - monadloc ==0.7.1
   - monad-logger ==0.3.40
   - monad-logger-aeson ==0.4.1.2
   - monad-logger-json ==0.1.0.0
   - monad-logger-logstash ==0.2.0.2
   - monad-loops ==0.4.3
   - monad-memo ==0.5.4
+  - monad-metrics ==0.2.2.1
   - monadoid ==0.0.3
-  - monadology ==0.1
+  - monadology ==0.3
   - monad-par ==0.3.6
   - monad-parallel ==0.8
   - monad-par-extras ==0.3.3
-  - monad-peel ==0.2.1.2
-  - monad-primitive ==0.1
-  - monad-products ==4.0.1
+  - monad-peel ==0.3
   - MonadPrompt ==1.0.0.5
   - MonadRandom ==0.6
   - monad-resumption ==0.1.4.0
+  - monad-schedule ==0.1.2.1
   - monad-st ==0.2.4.1
-  - monads-tf ==0.1.0.3
+  - monads-tf ==0.3.0.1
   - monad-time ==0.4.0.0
   - mongoDB ==2.7.1.2
   - monoidal-containers ==0.6.4.0
+  - monoidal-functors ==0.2.3.0
   - monoid-extras ==0.6.2
   - monoid-subclasses ==1.2.4.1
   - monoid-transformer ==0.0.4
+  - monomer ==1.6.0.1
   - mono-traversable ==1.0.15.3
   - mono-traversable-instances ==0.1.1.0
   - mono-traversable-keys ==0.3.0
   - more-containers ==0.2.2.2
-  - morpheus-graphql ==0.27.3
   - morpheus-graphql-app ==0.27.3
   - morpheus-graphql-client ==0.27.3
-  - morpheus-graphql-code-gen ==0.27.3
   - morpheus-graphql-code-gen-utils ==0.27.3
   - morpheus-graphql-core ==0.27.3
   - morpheus-graphql-server ==0.27.3
@@ -1635,7 +1975,7 @@ default-package-overrides:
   - mpi-hs ==0.7.2.0
   - mpi-hs-binary ==0.1.1.0
   - mpi-hs-cereal ==0.1.0.0
-  - mstate ==0.2.8
+  - msgpack ==1.0.1.0
   - mtl-compat ==0.2.2
   - mtl-prelude ==2.0.3.2
   - multiarg ==0.30.0.10
@@ -1644,6 +1984,7 @@ default-package-overrides:
   - multipart ==0.2.1
   - MultipletCombiner ==0.0.7
   - multiset ==0.3.4.3
+  - multistate ==0.8.0.4
   - murmur3 ==1.0.5
   - murmur-hash ==0.1.0.10
   - MusicBrainz ==0.4.1
@@ -1651,9 +1992,12 @@ default-package-overrides:
   - mutable-containers ==0.3.4.1
   - mwc-probability ==2.3.1
   - mwc-random ==0.15.0.2
-  - mwc-random-monad ==0.7.3.1
   - mx-state-codes ==1.0.0.0
+  - myers-diff ==0.3.0.0
   - mysql ==0.2.1
+  - mysql-haskell ==1.1.3
+  - mysql-haskell-nem ==0.1.0.0
+  - mysql-json-table ==0.1.2.0
   - mysql-simple ==0.4.9
   - n2o ==0.11.1
   - n2o-nitro ==0.11.2
@@ -1674,27 +2018,25 @@ default-package-overrides:
   - netlib-carray ==0.1
   - netlib-comfort-array ==0.0.0.2
   - netlib-ffi ==0.1.1
-  - net-mqtt ==0.8.3.0
+  - net-mqtt ==0.8.6.0
   - net-mqtt-lens ==0.1.1.0
   - netpbm ==1.0.4
   - netrc ==0.2.0.0
   - nettle ==0.3.0
   - netwire ==5.0.3
   - netwire-input ==0.0.7
-  - netwire-input-glfw ==0.0.11
   - network ==3.1.4.0
   - network-bsd ==2.8.1.0
   - network-byte-order ==0.1.7
-  - network-conduit-tls ==1.3.2
+  - network-conduit-tls ==1.4.0
+  - network-control ==0.0.2
   - network-info ==0.2.1
   - network-ip ==0.3.0.3
   - network-messagepack-rpc ==0.1.2.0
   - network-messagepack-rpc-websocket ==0.1.1.1
   - network-multicast ==0.3.2
-  - Network-NineP ==0.4.7.3
   - network-run ==0.2.6
   - network-simple ==0.4.5
-  - network-simple-tls ==0.4.1
   - network-transport ==0.5.6
   - network-uri ==2.6.4.2
   - network-wait ==0.2.0.0
@@ -1710,39 +2052,40 @@ default-package-overrides:
   - nondeterminism ==1.5
   - non-empty ==0.3.5
   - nonempty-containers ==0.3.4.5
-  - nonemptymap ==0.0.6.0
   - non-empty-sequence ==0.2.0.4
   - nonempty-vector ==0.2.3
   - nonempty-zipper ==1.0.0.4
   - non-negative ==0.1.2
   - normaldistribution ==1.1.0.3
-  - not-gloss ==0.7.7.0
   - nothunks ==0.1.5
   - no-value ==1.0.0.0
   - nowdoc ==0.1.1.0
   - nqe ==0.6.5
   - nsis ==0.3.3
+  - n-tuple ==0.0.3
   - numbers ==3000.2.0.2
   - numeric-extras ==0.1
   - numeric-limits ==0.1.0.0
   - numeric-prelude ==0.4.4
   - numeric-quest ==0.2.0.2
-  - numhask ==0.10.1.1
-  - numhask-array ==0.10.2
+  - numhask ==0.11.1.0
+  - numhask-array ==0.11.0.1
+  - numhask-space ==0.11.1.0
   - NumInstances ==1.4
   - numtype-dk ==0.5.0.3
   - nuxeo ==0.3.2
   - nvim-hs ==2.3.2.3
   - nvim-hs-contrib ==2.0.0.2
   - nvim-hs-ghcid ==2.0.1.0
-  - oauthenticated ==0.3.0.0
+  - nvvm ==0.10.0.1
   - ObjectName ==1.1.0.2
   - oblivious-transfer ==0.1.0
-  - o-clock ==1.3.0
+  - o-clock ==1.4.0
+  - ods2csv ==0.1
   - ofx ==0.4.4.0
-  - oidc-client ==0.7.0.1
   - old-locale ==1.0.0.7
   - old-time ==1.1.0.4
+  - om-elm ==2.0.0.5
   - once ==0.4
   - one-liner ==2.1
   - one-liner-instances ==0.1.3.0
@@ -1750,7 +2093,7 @@ default-package-overrides:
   - Only ==0.1
   - oo-prototypes ==0.1.0.0
   - oops ==0.2.0.1
-  - opaleye ==0.9.7.0
+  - opaleye ==0.10.2.0
   - OpenAL ==1.7.0.5
   - openapi3 ==3.2.4
   - open-browser ==0.2.1.0
@@ -1766,7 +2109,6 @@ default-package-overrides:
   - opentelemetry-wai ==0.8.0
   - open-witness ==0.6
   - operational ==0.2.4.2
-  - operational-class ==0.3.0.0
   - opml-conduit ==0.9.0.0
   - optics ==0.4.2.1
   - optics-core ==0.4.1.1
@@ -1776,15 +2118,15 @@ default-package-overrides:
   - optics-vl ==0.2.1
   - optima ==0.4.0.5
   - optional-args ==1.0.2
-  - options ==1.2.1.1
-  - optparse-applicative ==0.17.1.0
+  - options ==1.2.1.2
+  - optparse-applicative ==0.18.1.0
   - optparse-enum ==1.0.0.0
-  - optparse-generic ==1.4.9
+  - optparse-generic ==1.5.2
   - optparse-simple ==0.1.1.4
   - optparse-text ==0.1.1.0
   - OrderedBits ==0.0.2.0
   - ordered-containers ==0.2.3
-  - ormolu ==0.5.3.0
+  - ormolu ==0.7.2.0
   - overhang ==1.0.0
   - packcheck ==0.6.0
   - pager ==0.1.1.0
@@ -1792,18 +2134,21 @@ default-package-overrides:
   - pagure ==0.1.1
   - pagure-cli ==0.2.1
   - palette ==0.3.0.3
-  - pandoc ==3.0.1
+  - pandoc ==3.1.11.1
+  - pandoc-cli ==3.1.11.1
   - pandoc-dhall-decoder ==0.1.0.1
-  - pandoc-lua-marshal ==0.2.2
-  - pandoc-plot ==1.7.0
-  - pandoc-symreg ==0.2.0.0
+  - pandoc-lua-engine ==0.2.1.2
+  - pandoc-lua-marshal ==0.2.4
+  - pandoc-plot ==1.8.0
+  - pandoc-server ==0.1.0.4
   - pandoc-throw ==0.1.0.0
   - pandoc-types ==1.23.1
   - pango ==0.13.10.0
-  - pantry ==0.8.3
+  - pantry ==0.9.3.1
   - parallel ==3.2.2.0
   - parallel-io ==0.3.5
   - parameterized ==0.5.0.0
+  - park-bench ==0.1.1.0
   - parseargs ==0.2.0.9
   - parsec-class ==1.0.0.0
   - parsec-numbers ==0.1.0
@@ -1814,25 +2159,24 @@ default-package-overrides:
   - parsers ==0.12.11
   - partial-handler ==1.0.3
   - partial-isomorphisms ==0.2.3.0
+  - partialord ==0.0.2
   - partial-order ==0.2.0.0
   - partial-semigroup ==0.6.0.2
-  - password ==3.0.2.1
+  - password ==3.0.4.0
   - password-instances ==3.0.0.0
   - password-types ==1.0.0.0
   - path ==0.9.5
   - path-binary-instance ==0.1.0.1
   - path-dhall-instance ==0.2.1.0
   - path-extensions ==0.1.1.0
-  - path-extra ==0.2.0
+  - path-extra ==0.3.1
   - path-io ==1.8.1
   - path-like ==0.2.0.2
   - path-pieces ==0.2.1
-  - path-text-utf8 ==0.0.1.12
   - pathtype ==0.8.1.2
   - path-utils ==0.1.1.0
   - pathwalk ==0.3.1.2
-  - patrol ==1.0.0.6
-  - pattern-arrows ==0.0.2
+  - patrol ==1.0.0.7
   - pava ==0.1.1.4
   - pcf-font ==0.2.2.1
   - pcg-random ==0.1.4.0
@@ -1848,34 +2192,35 @@ default-package-overrides:
   - pedersen-commitment ==0.2.0
   - pem ==0.2.4
   - percent-format ==0.0.4
+  - peregrin ==0.4.2
+  - perf ==0.12.0.1
   - perfect-hash-generator ==1.0.0
+  - persistable-record ==0.6.0.6
+  - persistable-types-HDBC-pg ==0.0.3.5
   - persistent ==2.14.6.0
   - persistent-discover ==0.1.0.7
-  - persistent-documentation ==0.1.0.4
   - persistent-iproute ==0.2.5
   - persistent-lens ==1.0.0
   - persistent-mongoDB ==2.13.0.1
-  - persistent-mtl ==0.5.0.1
+  - persistent-mtl ==0.5.1
   - persistent-mysql ==2.13.1.5
   - persistent-pagination ==0.1.1.2
   - persistent-postgresql ==2.13.6.1
   - persistent-qq ==2.12.0.6
   - persistent-redis ==2.13.0.1
-  - persistent-refs ==0.4
   - persistent-sqlite ==2.13.3.0
   - persistent-template ==2.12.0.0
   - persistent-test ==2.13.1.3
   - persistent-typed-db ==0.1.0.7
   - pg-harness-client ==0.6.0
-  - pgp-wordlist ==0.1.0.3
   - pg-transact ==0.3.2.0
   - phantom-state ==0.2.1.4
   - phatsort ==0.6.0.0
-  - picosat ==0.1.6
   - pid1 ==0.1.3.1
-  - pinch ==0.4.3.0
+  - pinch ==0.5.1.0
   - pipes ==4.3.16
   - pipes-attoparsec ==0.6.0
+  - pipes-binary ==0.4.4
   - pipes-bytestring ==2.1.7
   - pipes-concurrency ==2.0.14
   - pipes-csv ==1.4.3
@@ -1895,21 +2240,21 @@ default-package-overrides:
   - place-cursor-at ==1.0.1
   - placeholders ==0.1
   - plaid ==0.1.0.4
-  - plot ==0.2.3.11
   - plotlyhs ==0.2.3
   - Plural ==0.0.2
   - pointed ==5.0.4
   - pointedlist ==0.6.1
   - pointless-fun ==1.1.0.8
   - poll ==0.0.0.2
+  - poly ==0.5.1.0
   - poly-arity ==0.1.0
   - polynomials-bernstein ==1.1.2
   - polyparse ==1.13
   - polysemy ==1.9.1.3
   - polysemy-fs ==0.1.0.0
-  - polysemy-plugin ==0.4.5.1
+  - polysemy-plugin ==0.4.5.2
   - polysemy-webserver ==0.2.1.2
-  - pontarius-xmpp ==0.5.6.6
+  - pontarius-xmpp ==0.5.6.8
   - pooled-io ==0.0.2.3
   - portable-lines ==0.1
   - port-utils ==0.2.1.0
@@ -1917,19 +2262,20 @@ default-package-overrides:
   - posix-pty ==0.2.2
   - possibly ==1.0.0.0
   - postgres-options ==0.2.1.0
-  - postgresql-binary ==0.13.1.2
-  - postgresql-libpq ==0.9.5.0
+  - postgresql-binary ==0.13.1.3
+  - postgresql-libpq ==0.10.0.0
   - postgresql-libpq-notify ==0.2.0.0
   - postgresql-migration ==0.2.1.7
+  - postgresql-query ==3.10.0
   - postgresql-schema ==0.1.14
-  - postgresql-simple ==0.6.5.1
+  - postgresql-simple ==0.7.0.0
   - postgresql-simple-url ==0.2.1.0
   - postgresql-syntax ==0.4.1.1
-  - postgresql-typed ==0.6.2.2
+  - postgresql-typed ==0.6.2.5
   - post-mess-age ==0.2.1.0
   - pptable ==0.3.0.0
-  - pqueue ==1.4.3.0
-  - prairie ==0.0.2.0
+  - pqueue ==1.5.0.0
+  - pred-set ==0.0.1
   - prefix-units ==0.3.0.1
   - prelude-compat ==0.0.0.2
   - prelude-safeenum ==0.1.1.3
@@ -1942,52 +2288,55 @@ default-package-overrides:
   - prettyprinter-compat-annotated-wl-pprint ==1.1
   - prettyprinter-compat-ansi-wl-pprint ==1.0.2
   - prettyprinter-compat-wl-pprint ==1.0.1
-  - prettyprinter-convert-ansi-wl-pprint ==1.1.2
+  - prettyprinter-interp ==0.2.0.0
   - pretty-relative-time ==0.3.0.0
   - pretty-show ==1.10
   - pretty-simple ==4.1.2.0
   - pretty-sop ==0.2.0.3
   - pretty-terminal ==0.1.0.0
-  - pretty-types ==0.4.0.0
+  - primecount ==0.1.0.1
   - primes ==0.2.1.0
   - primitive ==0.8.0.0
   - primitive-addr ==0.1.0.2
   - primitive-extras ==0.10.1.10
   - primitive-offset ==0.2.0.0
+  - primitive-serial ==0.1
   - primitive-unaligned ==0.1.1.2
-  - primitive-unlifted ==0.1.3.1
+  - primitive-unlifted ==2.1.0.0
   - prim-uniq ==0.2
   - print-console-colors ==0.1.0.0
   - probability ==0.2.8
   - process-extras ==0.7.4
+  - product-isomorphic ==0.0.3.4
   - product-profunctors ==0.11.1.1
-  - profiterole ==0.1
   - profunctors ==5.6.2
   - projectroot ==0.2.0.1
   - project-template ==0.2.1.0
+  - prometheus ==2.2.4
   - prometheus-client ==1.1.1
   - prometheus-metrics-ghc ==1.0.1.2
   - promises ==0.3
-  - prompt ==0.1.1.2
   - prospect ==0.1.0.0
   - protobuf ==0.2.1.3
   - protobuf-simple ==0.1.1.1
   - protocol-radius ==0.0.1.1
   - protocol-radius-test ==0.1.0.1
-  - proto-lens ==0.7.1.3
-  - proto-lens-optparse ==0.1.1.10
-  - proto-lens-runtime ==0.7.0.4
+  - proto-lens ==0.7.1.4
+  - proto-lens-arbitrary ==0.1.2.12
+  - proto-lens-optparse ==0.1.1.11
+  - proto-lens-runtime ==0.7.0.5
   - protolude ==0.3.3
   - proxied ==0.3.1
   - psql-helpers ==0.1.0.0
   - PSQueue ==1.2.0
   - psqueues ==0.2.8.0
   - pthread ==0.2.1
-  - ptr ==0.16.8.5
+  - ptr ==0.16.8.6
   - ptr-poker ==0.1.2.14
   - pulse-simple ==0.1.14
   - pureMD5 ==2.1.4
   - purescript-bridge ==0.15.0.0
+  - purview ==0.2.0.2
   - pusher-http-haskell ==2.1.0.17
   - pvar ==1.0.0.0
   - pwstore-fast ==2.4.4
@@ -2004,14 +2353,14 @@ default-package-overrides:
   - quickcheck-assertions ==0.3.0
   - quickcheck-classes ==0.6.5.0
   - quickcheck-classes-base ==0.6.2.0
-  - quickcheck-groups ==0.0.0.0
+  - quickcheck-groups ==0.0.1.1
   - quickcheck-higherorder ==0.1.0.1
   - quickcheck-instances ==0.3.30
   - quickcheck-io ==0.2.0
-  - quickcheck-monoid-subclasses ==0.1.0.0
+  - quickcheck-monoid-subclasses ==0.3.0.1
   - quickcheck-simple ==0.1.1.1
   - quickcheck-special ==0.1.0.6
-  - quickcheck-state-machine ==0.7.3
+  - quickcheck-state-machine ==0.8.0
   - quickcheck-text ==0.1.2.1
   - quickcheck-transformer ==0.3.1.2
   - quickcheck-unicode ==1.0.1.0
@@ -2036,19 +2385,21 @@ default-package-overrides:
   - ranges ==0.2.4
   - range-set-list ==0.1.3.1
   - rank1dynamic ==0.4.1
+  - rank2classes ==1.5.3
   - Rasterific ==0.7.5.4
   - rasterific-svg ==0.3.3.2
-  - ratel ==2.0.0.10
+  - ratel ==2.0.0.11
   - rate-limit ==1.4.3
-  - ratel-wai ==2.0.0.5
+  - ratel-wai ==2.0.0.6
   - ratio-int ==0.1.2
   - rattle ==0.2
-  - rattletrap ==12.0.3
+  - rattletrap ==12.1.3
   - Rattus ==0.5.1.1
-  - rawfilepath ==1.0.1
+  - rawfilepath ==1.1.0
   - rawstring-qm ==0.2.3.0
   - raw-strings-qq ==1.1
   - rcu ==0.2.7
+  - rdf ==0.1.0.8
   - rdtsc ==1.3.0.1
   - re2 ==0.3
   - reactive-balsa ==0.4.0.1
@@ -2059,29 +2410,25 @@ default-package-overrides:
   - readable ==0.3.1
   - read-editor ==0.1.0.2
   - read-env-var ==1.0.0.0
-  - rebase ==1.19
+  - rebase ==1.20.2
   - rec-def ==0.2.2
-  - record-dot-preprocessor ==0.2.16
-  - record-hasfield ==1.0
+  - record-hasfield ==1.0.1
+  - records-sop ==0.1.1.1
   - recursion-schemes ==5.2.2.5
   - recv ==0.1.0
   - redact ==0.5.0.0
   - reddit-scrape ==0.0.1
-  - redis-glob ==0.1.0.6
+  - redis-glob ==0.1.0.7
+  - redis-resp ==1.0.0
   - reducers ==3.12.4
   - refact ==0.3.0.2
   - ref-fd ==0.5.0.1
   - refined ==0.8.1
-  - refinery ==0.4.0.0
   - reflection ==2.1.7
-  - reform ==0.2.7.5
-  - reform-blaze ==0.2.4.4
-  - reform-happstack ==0.2.5.6
   - RefSerialize ==0.4.0
   - ref-tf ==0.5.0.1
   - regex ==1.1.0.2
   - regex-applicative ==0.3.4
-  - regex-applicative-text ==0.1.0.1
   - regex-base ==0.94.0.2
   - regex-compat ==0.95.2.1
   - regex-pcre ==0.95.0.0
@@ -2090,37 +2437,41 @@ default-package-overrides:
   - regex-posix-clib ==2.7
   - regex-tdfa ==1.3.2.2
   - regex-with-pcre ==1.1.0.2
+  - regression-simple ==0.2.1
   - reinterpret-cast ==0.1.0
-  - rel8 ==1.4.1.0
   - relapse ==1.0.0.1
+  - relational-query ==0.12.3.1
+  - relational-query-HDBC ==0.7.2.1
+  - relational-record ==0.2.2.0
+  - relational-schemas ==0.1.8.1
   - reliable-io ==0.0.2
   - relude ==1.2.1.0
   - renderable ==0.2.0.1
   - replace-attoparsec ==1.5.0.0
   - replace-megaparsec ==1.5.0.1
   - repline ==0.4.2.0
-  - req ==3.13.0
-  - req-conduit ==1.0.1
-  - rerebase ==1.19
+  - req ==3.13.2
+  - req-conduit ==1.0.2
+  - rerebase ==1.20.2
   - reroute ==0.7.0.0
   - resistor-cube ==0.0.1.4
   - resolv ==0.2.0.2
   - resource-pool ==0.4.0.0
-  - resourcet ==1.2.6
+  - resourcet ==1.3.0
   - rest-rewrite ==0.4.2
   - result ==0.2.6.0
   - retry ==0.9.3.1
-  - rev-state ==0.1.2
   - rex ==0.6.2
   - rfc1751 ==0.1.3
   - rfc5051 ==0.2
   - rg ==1.4.0.0
-  - rhbzquery ==0.4.4
   - riak-protobuf ==0.25.0.0
+  - richenv ==0.1.0.1
   - rio ==0.1.22.0
   - rio-orphans ==0.1.2.0
-  - rio-prettyprint ==0.1.7.0
+  - rio-prettyprint ==0.1.8.0
   - rng-utils ==0.3.1
+  - roc-id ==0.2.0.0
   - rocksdb-haskell ==1.0.1
   - rocksdb-haskell-jprupp ==2.1.6
   - rocksdb-query ==0.4.2
@@ -2139,10 +2490,11 @@ default-package-overrides:
   - rss-conduit ==0.6.0.1
   - run-haskell-module ==0.0.2
   - runmemo ==1.0.0.1
-  - run-st ==0.1.3.0
+  - run-st ==0.1.3.2
   - rvar ==0.3.0.2
+  - rzk ==0.7.3
   - s3-signer ==0.5.0.0
-  - safe ==0.3.19
+  - safe ==0.3.21
   - safe-coloured-text ==0.2.0.1
   - safe-coloured-text-gen ==0.0.0.2
   - safe-coloured-text-layout ==0.0.0.0
@@ -2151,11 +2503,10 @@ default-package-overrides:
   - safecopy ==0.10.4.2
   - safe-decimal ==0.2.1.0
   - safe-exceptions ==0.1.7.4
-  - safe-exceptions-checked ==0.1.0
   - safe-foldable ==0.1.0.0
   - safe-gen ==1.0.1
   - safeio ==0.0.6.0
-  - safe-json ==1.1.4.0
+  - safe-json ==1.2.0.1
   - safe-money ==0.9.1
   - SafeSemaphore ==0.10.1
   - saltine ==0.2.1.0
@@ -2164,13 +2515,13 @@ default-package-overrides:
   - sample-frame-np ==0.0.5
   - sampling ==0.3.5
   - sandi ==0.5
-  - sandwich ==0.1.5.2
+  - sandwich ==0.2.2.0
   - sandwich-hedgehog ==0.1.3.0
   - sandwich-quickcheck ==0.1.0.7
   - sandwich-slack ==0.1.2.0
   - sandwich-webdriver ==0.2.3.1
   - say ==0.1.0.1
-  - sbp ==4.15.0
+  - sbp ==5.0.5
   - sbv ==10.2
   - scalpel ==0.6.2.2
   - scalpel-core ==0.6.2.2
@@ -2180,7 +2531,7 @@ default-package-overrides:
   - SciBaseTypes ==0.1.1.0
   - scientific ==0.3.7.0
   - scientist ==0.0.0.0
-  - scotty ==0.12.1
+  - scotty ==0.20.1
   - scrypt ==0.5.0
   - sdl2 ==2.5.5.0
   - sdl2-gfx ==0.3.0.0
@@ -2188,13 +2539,12 @@ default-package-overrides:
   - sdl2-mixer ==1.2.0.0
   - sdl2-ttf ==2.1.3
   - search-algorithms ==0.3.2
-  - secp256k1-haskell ==0.6.1
+  - secp256k1-haskell ==1.1.0
   - securemem ==0.1.10
   - selections ==0.3.0.0
   - selective ==0.7
   - semialign ==1.3
-  - semigroupoid-extras ==5
-  - semigroupoids ==5.3.7
+  - semigroupoids ==6.0.0.1
   - semigroups ==0.20
   - semirings ==0.6
   - semiring-simple ==1.0.0.1
@@ -2204,42 +2554,44 @@ default-package-overrides:
   - seqalign ==0.2.0.4
   - seqid ==0.6.3
   - seqid-streams ==0.7.2
-  - sequence-formats ==1.7.1
+  - sequence-formats ==1.8.0.0
   - sequenceTools ==1.5.3.1
   - serialise ==0.2.6.1
-  - servant ==0.19.1
+  - servant ==0.20.1
   - servant-auth ==0.4.1.0
   - servant-auth-client ==0.4.1.1
-  - servant-auth-docs ==0.2.10.0
-  - servant-auth-wordpress ==1.0.0.2
+  - servant-auth-docs ==0.2.10.1
+  - servant-auth-server ==0.4.8.0
+  - servant-auth-swagger ==0.2.10.2
   - servant-blaze ==0.9.1
-  - servant-cassava ==0.10.2
   - servant-checked-exceptions ==2.2.0.1
   - servant-checked-exceptions-core ==2.2.0.1
-  - servant-client ==0.19
-  - servant-client-core ==0.19
-  - servant-conduit ==0.15.1
-  - servant-docs ==0.12
+  - servant-client ==0.20
+  - servant-client-core ==0.20
+  - servant-conduit ==0.16
+  - servant-docs ==0.13
   - servant-elm ==0.7.3
   - servant-exceptions ==0.2.1
   - servant-exceptions-server ==0.2.1
-  - servant-foreign ==0.15.4
-  - servant-http-streams ==0.18.4
+  - servant-foreign ==0.16
+  - servant-http-streams ==0.20
+  - servant-JuicyPixels ==0.3.1.1
   - servant-lucid ==0.9.0.6
-  - servant-machines ==0.15.1
+  - servant-machines ==0.16
   - servant-multipart ==0.12.1
   - servant-multipart-api ==0.12.1
   - servant-multipart-client ==0.12.2
   - servant-openapi3 ==2.0.1.6
-  - servant-pipes ==0.15.3
+  - servant-pipes ==0.16
   - servant-rate-limit ==0.2.0.0
   - servant-rawm ==1.0.0.0
-  - servant-server ==0.19.2
+  - servant-server ==0.20
   - servant-static-th ==1.0.0.0
   - servant-subscriber ==0.7.0.0
-  - servant-swagger ==1.1.11
+  - servant-swagger ==1.2
   - servant-swagger-ui ==0.3.5.5.0.0
   - servant-swagger-ui-core ==0.3.5
+  - servant-swagger-ui-redoc ==0.3.4.1.22.3
   - servant-websockets ==2.0.0
   - servant-xml ==1.0.2
   - serversession ==1.0.3
@@ -2252,34 +2604,38 @@ default-package-overrides:
   - setenv ==0.1.1.3
   - setlocale ==1.0.0.10
   - set-monad ==0.3.0.0
-  - sets ==0.0.6.2
   - sexp-grammar ==2.3.4.2
   - SHA ==1.6.4.4
-  - shake ==0.19.7
+  - shake ==0.19.8
+  - shake-language-c ==0.12.0
   - shake-plus ==0.3.4.0
+  - shake-plus-extended ==0.4.1.0
   - shakespeare ==2.1.0.1
   - shakespeare-text ==1.1.0
   - shared-memory ==0.2.0.1
   - shell-conduit ==5.0.0
   - shell-escape ==0.2.0
-  - shelltestrunner ==1.9.0.1
+  - shellify ==0.11.0.1
+  - shellmet ==0.0.4.1
+  - shelltestrunner ==1.10
   - shell-utility ==0.1
   - shellwords ==0.1.3.1
   - shelly ==1.12.1
   - should-not-typecheck ==2.1.0
   - show-combinators ==0.2.0.0
-  - shower ==0.2.0.3
   - siggy-chardust ==1.0.0
   - signal ==0.1.0.4
   - silently ==1.2.5.3
   - simple ==2.0.0
   - simple-affine-space ==0.2.1
   - simple-cabal ==0.1.3.1
+  - simple-cairo ==0.1.0.6
   - simple-cmd ==0.2.7
   - simple-cmd-args ==0.1.8
   - simple-expr ==0.1.1.0
   - simple-media-timestamp ==0.2.1.0
   - simple-media-timestamp-attoparsec ==0.1.0.0
+  - simple-pango ==0.1.0.1
   - simple-prompt ==0.2.2
   - simple-reflect ==0.3.3
   - simple-sendfile ==0.2.32
@@ -2287,82 +2643,78 @@ default-package-overrides:
   - simple-templates ==2.0.0
   - simple-vec3 ==0.6.0.1
   - since ==0.0.0
-  - singleton-bool ==0.1.6
+  - singleton-bool ==0.1.7
   - singleton-nats ==0.4.7
   - singletons ==3.0.2
-  - singletons-base ==3.1.1
-  - singletons-presburger ==0.7.2.0
-  - singletons-th ==3.1.1
-  - Sit ==0.2022.3.18
+  - singletons-base ==3.2
+  - singletons-presburger ==0.7.3.0
+  - singletons-th ==3.2
+  - Sit ==0.2023.8.3
   - sitemap-gen ==0.1.0.0
   - size-based ==0.1.3.2
-  - sized ==1.1.0.0
+  - sized ==1.1.0.1
   - skein ==1.0.9.4
   - skews ==0.1.0.3
   - skip-var ==0.1.1.0
-  - skylighting ==0.13.4.1
-  - skylighting-core ==0.13.4.1
+  - skylighting ==0.14.1
+  - skylighting-core ==0.14.1
   - skylighting-format-ansi ==0.1
   - skylighting-format-blaze-html ==0.1.1.1
   - skylighting-format-context ==0.1.0.2
   - skylighting-format-latex ==0.1
-  - slack-progressbar ==0.1.0.1
   - slave-thread ==1.1.0.3
   - slick ==1.2.1.0
   - slist ==0.2.1.0
   - slynx ==0.7.2.2
   - smallcheck ==1.2.1.1
-  - smtp-mail ==0.3.0.0
+  - snap ==1.1.3.3
   - snap-blaze ==0.2.1.5
   - snap-core ==1.0.5.1
+  - snap-server ==1.1.2.1
   - snowflake ==0.1.1.1
   - socket ==0.8.3.0
   - socks ==0.6.1
   - solana-staking-csvs ==0.1.2.0
-  - some ==1.0.4.1
+  - some ==1.0.6
   - some-dict-of ==0.1.0.2
   - sop-core ==0.5.0.2
   - sort ==1.0.0.0
-  - sorted-list ==0.2.1.2
+  - sorted-list ==0.2.2.0
   - sound-collage ==0.2.1
   - sourcemap ==0.1.7
   - sox ==0.2.3.2
   - soxlib ==0.0.3.2
   - spacecookie ==1.0.0.2
-  - spatial-math ==0.2.7.0
+  - SpatialMath ==0.2.7.1
   - special-values ==0.1.0.0
   - speculate ==0.4.14
   - speedy-slice ==0.3.2
   - splice ==0.6.1.1
-  - split ==0.2.3.5
+  - split ==0.2.5
   - splitmix ==0.1.0.5
   - splitmix-distributions ==1.0.0
   - split-record ==0.1.1.4
-  - Spock ==0.14.0.0
   - Spock-api ==0.14.0.0
-  - Spock-api-server ==0.14.0.0
-  - Spock-core ==0.14.0.1
-  - Spock-lucid ==0.4.0.1
-  - Spock-worker ==0.3.1.0
   - spoon ==0.3.1
   - spreadsheet ==0.1.3.10
-  - sqlcli ==0.2.2.0
-  - sqlcli-odbc ==0.2.0.1
-  - sqlite-simple ==0.4.18.2
+  - sqids ==0.2.1.0
+  - sqlite-simple ==0.4.19.0
   - sql-words ==0.1.6.5
+  - squeal-postgresql ==0.9.1.3
   - squeather ==0.8.0.0
   - srcloc ==0.6.0.1
   - srt ==0.1.2.0
   - srtree ==1.0.0.5
   - stache ==2.3.4
   - stack-all ==0.4.2
-  - stack-clean-old ==0.4.8
+  - stack-clean-old ==0.5.1
   - stack-templatizer ==0.1.1.0
   - state-codes ==0.1.3
   - stateref ==0.3
   - statestack ==0.3.1.1
   - StateVar ==1.2.2
   - stateWriter ==0.4.0
+  - static-bytes ==0.1.0
   - static-canvas ==0.2.0.3
   - static-text ==0.2.0.7
   - statistics ==0.16.2.1
@@ -2376,10 +2728,9 @@ default-package-overrides:
   - stm-delay ==0.1.1.1
   - stm-extras ==0.1.0.3
   - stm-hamt ==1.2.0.14
-  - stm-lifted ==2.5.0.0
-  - STMonadTrans ==0.4.7
+  - STMonadTrans ==0.4.8
   - stm-split ==0.0.2.1
-  - stopwatch ==0.1.0.6
+  - stm-supply ==0.2.0.0
   - storable-complex ==0.2.3.0
   - storable-endian ==0.2.6.1
   - storable-record ==0.0.7
@@ -2395,12 +2746,9 @@ default-package-overrides:
   - streaming-bytestring ==0.3.2
   - streaming-commons ==0.2.2.6
   - streaming-wai ==0.1.1
-  - streamly ==0.9.0
-  - streamly-core ==0.1.0
-  - streamly-examples ==0.1.3
-  - streamly-process ==0.3.0
+  - streamly ==0.10.1
+  - streamly-core ==0.2.2
   - streams ==3.3.2
-  - streamt ==0.5.0.1
   - strict ==0.5
   - strict-base-types ==0.8
   - strict-concurrency ==0.2.4.3
@@ -2410,31 +2758,30 @@ default-package-overrides:
   - strict-wrapper ==0.0.0.0
   - stringable ==0.1.3
   - stringbuilder ==0.5.1
+  - string-class ==0.1.7.1
   - string-combinators ==0.6.0.5
   - string-conv ==0.2.0
   - string-conversions ==0.4.0.1
-  - string-interpolate ==0.3.2.1
+  - string-interpolate ==0.3.3.0
   - stringprep ==1.0.0
   - string-qq ==0.0.5
   - string-random ==0.1.4.3
   - stringsearch ==0.3.6.6
   - string-transform ==1.1.1
-  - string-variants ==0.2.2.0
   - stripe-concepts ==1.0.3.3
-  - stripe-scotty ==1.1.0.4
   - stripe-signature ==1.0.0.16
   - stripe-wreq ==1.0.1.16
-  - strive ==6.0.0.10
+  - strive ==6.0.0.11
   - structs ==0.1.9
   - structured ==0.1.1
-  - structured-cli ==2.7.0.1
-  - subcategories ==0.2.0.1
+  - stylish-haskell ==0.14.5.0
+  - subcategories ==0.2.1.0
   - sundown ==0.6
   - superbuffer ==0.3.1.2
   - svg-builder ==0.1.1
   - SVGFonts ==1.8.0.1
   - svg-tree ==0.6.2.4
-  - swagger2 ==2.8.7
+  - swagger2 ==2.8.8
   - swish ==0.10.7.0
   - syb ==0.7.2.4
   - sydtest ==0.15.1.1
@@ -2444,9 +2791,9 @@ default-package-overrides:
   - sydtest-discover ==0.0.0.4
   - sydtest-hedgehog ==0.4.0.0
   - sydtest-hedis ==0.0.0.0
+  - sydtest-hspec ==0.4.0.2
   - sydtest-mongo ==0.0.0.0
   - sydtest-persistent ==0.0.0.2
-  - sydtest-persistent-postgresql ==0.2.0.3
   - sydtest-persistent-sqlite ==0.2.0.3
   - sydtest-process ==0.0.0.0
   - sydtest-rabbitmq ==0.1.0.0
@@ -2471,40 +2818,40 @@ default-package-overrides:
   - system-fileio ==0.3.16.4
   - system-filepath ==0.4.14
   - system-info ==0.5.2
+  - system-linux-proc ==0.1.1.1
   - tabular ==0.2.2.8
   - tagchup ==0.4.1.2
-  - tagged ==0.8.7
+  - tagged ==0.8.8
   - tagged-binary ==0.2.0.1
   - tagged-identity ==0.1.4
   - tagged-transformer ==0.8.2
-  - tagshare ==0.0
   - tagsoup ==0.14.8
   - tagstream-conduit ==0.5.6
   - tao ==1.0.0
   - tao-example ==1.0.0
   - tar ==0.5.1.1
-  - tar-conduit ==0.3.2.1
-  - tardis ==0.4.4.0
+  - tar-conduit ==0.4.1
   - tasty ==1.4.3
   - tasty-ant-xml ==1.1.9
-  - tasty-autocollect ==0.4.1
+  - tasty-autocollect ==0.4.2
   - tasty-bench ==0.3.5
+  - tasty-bench-fit ==0.1
   - tasty-dejafu ==2.1.0.1
   - tasty-discover ==5.0.0
   - tasty-expected-failure ==0.12.3
   - tasty-fail-fast ==0.0.3
   - tasty-focus ==1.0.1
   - tasty-golden ==2.3.5
-  - tasty-hedgehog ==1.4.0.1
-  - tasty-hslua ==1.1.0
-  - tasty-hspec ==1.2.0.3
+  - tasty-hedgehog ==1.4.0.2
+  - tasty-hslua ==1.1.1
+  - tasty-hspec ==1.2.0.4
   - tasty-html ==0.4.2.1
   - tasty-hunit ==0.10.1
   - tasty-hunit-compat ==0.2.0.1
-  - tasty-inspection-testing ==0.2
+  - tasty-inspection-testing ==0.2.1
   - tasty-kat ==0.0.3
   - tasty-leancheck ==0.0.2
-  - tasty-lua ==1.1.0
+  - tasty-lua ==1.1.1
   - tasty-program ==1.1.0
   - tasty-quickcheck ==0.10.2
   - tasty-rerun ==1.1.19
@@ -2513,23 +2860,23 @@ default-package-overrides:
   - tasty-tap ==0.1.0
   - tasty-th ==0.1.7
   - tasty-wai ==0.1.2.0
+  - TCache ==0.13.3
   - tce-conf ==1.3
-  - tcp-streams ==1.0.1.1
   - tdigest ==0.3
   - teardown ==0.5.0.1
-  - telegram-bot-api ==6.7.1
-  - telegram-bot-simple ==0.12
+  - tempgres-client ==1.0.0
+  - template ==0.2.0.10
   - template-haskell-compat-v0208 ==0.1.9.3
   - temporary ==1.3
   - temporary-rc ==1.2.0.3
   - temporary-resourcet ==0.1.0.1
   - tensorflow-test ==0.1.0.0
   - tensors ==0.1.5
-  - termbox ==1.1.0.2
-  - termbox-banana ==1.0.0
+  - termbox ==2.0.0.1
+  - termbox-banana ==2.0.0
   - termbox-bindings-c ==0.1.0.1
-  - termbox-bindings-hs ==0.1.1
-  - termbox-tea ==0.1.0.1
+  - termbox-bindings-hs ==1.0.0
+  - termbox-tea ==1.0.0
   - terminal-progress-bar ==0.4.2
   - terminal-size ==0.3.4
   - termonad ==4.5.0.0
@@ -2541,15 +2888,16 @@ default-package-overrides:
   - test-fun ==0.1.0.0
   - testing-feat ==1.1.1.1
   - testing-type-modifiers ==0.1.0.1
-  - texmath ==0.12.8.4
-  - text-ansi ==0.2.1.1
+  - texmath ==0.12.8.6
+  - text-ansi ==0.3.0.1
   - text-binary ==0.2.1.1
-  - text-builder ==0.6.7
-  - text-builder-dev ==0.3.3.2
+  - text-builder ==0.6.7.2
+  - text-builder-dev ==0.3.4.2
   - text-builder-linear ==0.1.2
   - text-conversions ==0.3.1.1
   - text-format ==0.3.2.1
   - text-icu ==0.8.0.4
+  - text-iso8601 ==0.1
   - text-latin1 ==0.3.1
   - text-ldap ==0.1.1.14
   - textlocal ==0.1.0.5
@@ -2565,29 +2913,31 @@ default-package-overrides:
   - text-zipper ==0.13
   - tfp ==1.0.2
   - tf-random ==0.5
-  - th-abstraction ==0.4.5.0
+  - th-abstraction ==0.5.0.0
   - th-bang-compat ==0.0.1.0
   - th-compat ==0.1.4
   - th-constraint-compat ==0.0.1.0
-  - th-data-compat ==0.1.3.0
-  - th-desugar ==1.14
+  - th-data-compat ==0.1.3.1
+  - th-desugar ==1.15
   - th-env ==0.1.1
   - these ==1.2
   - these-lens ==1.0.1.3
   - these-optics ==1.0.1.2
   - these-skinny ==0.7.5
   - th-expand-syns ==0.4.11.0
+  - th-extras ==0.0.0.7
   - th-lego ==0.3.0.3
   - th-lift ==0.8.4
   - th-lift-instances ==0.1.20
   - th-nowq ==0.1.0.5
   - th-orphans ==0.13.14
-  - th-printf ==0.7
+  - th-printf ==0.8
   - thread-hierarchy ==0.3.0.2
   - thread-local-storage ==0.2
   - threads ==0.5.1.8
   - threads-extras ==0.1.0.3
   - thread-supervisor ==0.2.0.0
+  - threepenny-gui ==0.9.4.0
   - th-reify-compat ==0.0.1.5
   - th-reify-many ==0.1.10
   - th-strict-compat ==0.1.0.1
@@ -2598,7 +2948,7 @@ default-package-overrides:
   - tidal-link ==1.0.2
   - tile ==0.3.0.0
   - time-compat ==1.9.6.1
-  - time-domain ==0.1.0.2
+  - time-domain ==0.1.0.3
   - timeit ==2.0
   - timelens ==0.2.0.2
   - time-lens ==0.4.0.2
@@ -2608,7 +2958,7 @@ default-package-overrides:
   - time-parsers ==0.2
   - timerep ==2.1.0.0
   - timers-tick ==0.5.0.4
-  - timer-wheel ==0.4.0.1
+  - timer-wheel ==1.0.0
   - timespan ==0.4.0.0
   - time-units ==1.0.0
   - time-units-types ==0.2.0.1
@@ -2616,17 +2966,18 @@ default-package-overrides:
   - timezone-olson-th ==0.1.0.11
   - timezone-series ==0.1.13
   - titlecase ==1.0.1
-  - tls ==1.6.0
+  - tldr ==0.9.2
+  - tls ==1.8.0
   - tls-session-manager ==0.0.4
   - tlynx ==0.7.2.2
   - tmapchan ==0.0.3
   - tmapmvar ==0.0.4
-  - tmp-postgres ==1.34.1.0
-  - tmp-proc ==0.5.1.4
-  - tmp-proc-postgres ==0.5.2.3
-  - tmp-proc-rabbitmq ==0.5.1.4
-  - tmp-proc-redis ==0.5.1.4
+  - tmp-proc ==0.5.3.0
+  - tmp-proc-postgres ==0.5.3.1
+  - tmp-proc-rabbitmq ==0.5.3.1
+  - tmp-proc-redis ==0.5.3.1
   - token-bucket ==0.1.0.1
+  - toml-parser ==1.3.2.0
   - toml-reader ==0.2.1.0
   - toml-reader-parse ==0.1.1.1
   - tophat ==1.0.7.0
@@ -2634,14 +2985,11 @@ default-package-overrides:
   - torrent ==10000.1.3
   - torsor ==0.1
   - tostring ==0.2.1.1
-  - tracing ==0.0.7.3
-  - tracing-control ==0.0.7.3
+  - tracing ==0.0.7.4
   - transaction ==0.1.1.4
   - transformers-base ==0.4.6
   - transformers-compat ==0.7.2
   - transformers-either ==0.1.4
-  - transformers-fix ==1.0
-  - transient ==0.7.0.0
   - traverse-with-class ==1.0.1.1
   - tree-diff ==0.3.0.1
   - tree-fun ==0.8.1.0
@@ -2649,17 +2997,16 @@ default-package-overrides:
   - trie-simple ==0.4.2
   - trifecta ==2.1.3
   - trimdent ==0.1.0.0
-  - triplesec ==0.2.2.1
   - trivial-constraint ==0.7.0.0
   - tsv2csv ==0.1.0.2
-  - ttc ==1.2.1.0
+  - ttc ==1.4.0.0
   - ttrie ==0.1.2.2
   - tuple ==0.3.0.2
   - tuples ==0.1.0.0
   - tuples-homogenous-h98 ==0.1.1.0
   - tuple-sop ==0.3.1.0
   - tuple-th ==0.2.5
-  - turtle ==1.6.1
+  - turtle ==1.6.2
   - twitter-conduit ==0.6.1
   - twitter-types ==0.11.0
   - twitter-types-lens ==0.11.0
@@ -2668,46 +3015,47 @@ default-package-overrides:
   - typed-uuid ==0.2.0.0
   - type-equality ==1
   - type-errors ==0.2.0.2
+  - type-flip ==0.1.0.0
   - type-fun ==0.1.3
   - type-hint ==0.1
   - type-level-integers ==0.0.1
   - type-level-kv-list ==2.0.2.0
   - type-level-natural-number ==2.0
   - type-level-numbers ==0.1.1.2
+  - typelits-witnesses ==0.4.0.1
   - type-map ==0.1.7.0
-  - type-natural ==1.3.0.0
+  - type-natural ==1.3.0.1
   - typenums ==0.1.4
   - type-of-html ==1.6.2.0
   - type-of-html-static ==0.1.0.2
   - type-rig ==0.1
+  - type-set ==0.1.0.0
   - type-spec ==0.4.0.0
   - typography-geometry ==1.0.1.0
-  - typst-symbols ==0.1.4
+  - typst ==0.5
+  - typst-symbols ==0.1.5
   - tz ==0.1.3.6
-  - tzdata ==0.2.20230322.0
+  - tzdata ==0.2.20231222.0
   - tztime ==0.1.1.0
   - ua-parser ==0.7.7.0
   - uglymemo ==0.1.0.1
   - ulid ==0.3.2.0
   - unagi-chan ==0.4.1.4
   - unbounded-delays ==0.1.1.1
-  - unbound-generics ==0.4.3
   - unboxed-ref ==0.4.0.0
   - unboxing-vector ==0.2.0.0
   - uncaught-exception ==0.1.0
   - unconstrained ==0.1.0.2
   - unexceptionalio ==0.5.1
-  - unexceptionalio-trans ==0.5.1
   - unfork ==1.0.0.1
   - unicode ==0.0.1.1
-  - unicode-collation ==0.1.3.5
+  - unicode-collation ==0.1.3.6
   - unicode-data ==0.4.0.1
   - unicode-show ==0.1.1.1
   - unicode-transforms ==0.4.0.1
   - unidecode ==0.1.0.4
-  - unification-fd ==0.11.2
-  - union ==0.1.2
   - union-angle ==0.1.0.1
+  - union-color ==0.1.2.1
   - unipatterns ==0.0.0.0
   - uniplate ==1.6.13
   - uniq-deep ==1.2.1
@@ -2730,16 +3078,17 @@ default-package-overrides:
   - unliftio ==0.2.25.0
   - unliftio-core ==0.2.1.0
   - unliftio-path ==0.0.2.0
-  - unliftio-pool ==0.4.2.0
+  - unliftio-pool ==0.4.3.0
+  - unliftio-streams ==0.2.0.0
   - unlit ==0.4.0.0
-  - unordered-containers ==0.2.19.1
+  - unordered-containers ==0.2.20
   - unsafe ==0.0
   - uri-bytestring ==0.3.3.1
   - uri-bytestring-aeson ==0.1.0.8
   - uri-encode ==1.5.0.7
   - url ==2.1.3
+  - urlpath ==11.0.2
   - users ==0.5.0.0
-  - users-postgresql-simple ==0.5.0.2
   - users-test ==0.5.0.1
   - utf8-light ==0.4.4.0
   - utf8-string ==1.0.2
@@ -2749,12 +3098,14 @@ default-package-overrides:
   - valida ==1.1.0
   - valida-base ==0.2.0
   - validate-input ==0.5.0.0
-  - validationt ==0.3.0
+  - validation ==1.1.3
   - validity ==0.12.0.2
   - validity-aeson ==0.2.0.5
   - validity-bytestring ==0.4.1.1
   - validity-case-insensitive ==0.0.0.0
   - validity-containers ==0.5.0.4
+  - validity-network-uri ==0.0.0.1
+  - validity-path ==0.4.0.1
   - validity-persistent ==0.0.0.0
   - validity-primitive ==0.0.0.1
   - validity-scientific ==0.2.0.3
@@ -2782,20 +3133,23 @@ default-package-overrides:
   - vector-sized ==1.5.0
   - vector-space ==0.16
   - vector-split ==1.0.0.3
-  - vector-stream ==0.1.0.0
+  - vector-stream ==0.1.0.1
   - vector-th-unbox ==0.2.2
   - verbosity ==0.4.0.0
-  - versions ==6.0.3
+  - verset ==0.0.1.8
+  - versions ==6.0.5
   - vformat ==0.14.1.0
   - vformat-time ==0.1.0.0
   - ViennaRNAParser ==1.3.3
   - vinyl ==0.14.3
   - vinyl-loeb ==0.0.1.0
-  - vivid ==0.5.2.0
+  - Vis ==0.7.7.0
   - vivid-osc ==0.5.0.0
   - vivid-supercollider ==0.4.1.2
   - void ==0.7.3
-  - vty ==5.38
+  - vty ==6.1
+  - vty-crossplatform ==0.4.0.0
+  - vty-unix ==0.2.0.0
   - wai ==3.2.4
   - wai-app-static ==3.1.8
   - wai-cli ==0.2.3
@@ -2804,7 +3158,7 @@ default-package-overrides:
   - wai-cors ==0.2.7
   - wai-enforce-https ==1.0.0.0
   - wai-eventsource ==3.0.0
-  - wai-extra ==3.1.13.0
+  - wai-extra ==3.1.14
   - wai-feature-flags ==0.1.0.7
   - wai-handler-launch ==3.0.3.1
   - wai-logger ==2.4.0
@@ -2813,45 +3167,39 @@ default-package-overrides:
   - wai-middleware-caching-lru ==0.1.0.0
   - wai-middleware-caching-redis ==0.2.0.0
   - wai-middleware-clacks ==0.1.0.1
-  - wai-middleware-delegate ==0.1.3.1
+  - wai-middleware-delegate ==0.1.4.0
   - wai-middleware-metrics ==0.2.4
   - wai-middleware-prometheus ==1.0.0.1
   - wai-middleware-static ==0.9.2
   - wai-middleware-throttle ==0.3.0.1
   - wai-rate-limit ==0.3.0.0
   - wai-rate-limit-redis ==0.2.0.1
-  - wai-saml2 ==0.4
+  - wai-saml2 ==0.5
   - wai-session ==0.3.3
   - wai-session-postgresql ==0.2.1.3
   - wai-session-redis ==0.1.0.5
   - wai-slack-middleware ==0.2.0
+  - wai-transformers ==0.1.0
   - wai-websockets ==3.0.1.2
   - wakame ==0.1.0.0
-  - warp ==3.3.25
-  - warp-tls ==3.3.6
-  - warp-tls-uid ==0.2.0.6
+  - warp ==3.3.31
+  - warp-tls ==3.4.3
   - wave ==0.2.1
   - wcwidth ==0.0.2
-  - webdriver ==0.11.0.0
+  - webdriver ==0.12.0.0
   - webex-teams-api ==0.2.0.1
   - webex-teams-conduit ==0.2.0.1
-  - webgear-core ==1.0.5
-  - webgear-openapi ==1.0.5
   - webpage ==0.0.5.1
-  - web-routes ==0.27.15
-  - web-routes-boomerang ==0.28.4.4
-  - web-routes-happstack ==0.23.12.3
-  - web-routes-hsp ==0.24.6.2
-  - web-routes-th ==0.22.8.1
-  - web-routes-wai ==0.24.3.2
   - webrtc-vad ==0.1.0.3
   - websockets ==0.12.7.3
-  - weigh ==0.0.16
+  - websockets-simple ==0.2.0
+  - websockets-snap ==0.10.3.1
+  - weigh ==0.0.17
   - welford-online-mean-variance ==0.2.0.0
   - wide-word ==0.1.6.0
   - Win32-notify ==0.3.0.3
   - windns ==0.1.0.1
-  - witch ==1.2.0.3
+  - witch ==1.2.0.4
   - withdependencies ==0.3.0
   - witherable ==0.4.2
   - within ==0.2.0.1
@@ -2864,18 +3212,17 @@ default-package-overrides:
   - wl-pprint-text ==1.2.0.2
   - word8 ==0.1.3
   - word-compat ==0.0.6
-  - wordpress-auth ==1.0.0.1
   - word-trie ==0.3.0
   - word-wrap ==0.5
   - world-peace ==1.0.2.0
   - wrap ==0.0.0
+  - wraxml ==0.5
   - wreq ==0.5.4.2
   - wreq-stringless ==0.5.9.1
-  - writer-cps-exceptions ==0.1.0.1
-  - writer-cps-mtl ==0.1.1.6
   - writer-cps-transformers ==0.5.6.1
+  - ws ==0.0.6
   - wss-client ==0.3.0.0
-  - wuss ==2.0.1.3
+  - wuss ==2.0.1.7
   - X11 ==1.10.3
   - X11-xft ==0.3.4
   - x11-xim ==0.0.9.0
@@ -2885,17 +3232,15 @@ default-package-overrides:
   - x509-validation ==1.6.12
   - Xauth ==0.1
   - xdg-basedir ==0.2.2
-  - xdg-desktop-entry ==0.1.1.1
   - xdg-userdirs ==0.1.0.2
   - xeno ==0.6
-  - xlsx ==1.1.1
+  - xlsx ==1.1.2.1
   - xml ==1.3.14
   - xml-basic ==0.1.3.2
   - xmlbf ==0.7
   - xmlbf-xeno ==0.2.2
   - xmlbf-xmlhtml ==0.2.2
   - xml-conduit ==1.9.1.3
-  - xml-conduit-writer ==0.1.1.4
   - xmlgen ==0.6.2.2
   - xml-hamlet ==0.5.0.2
   - xml-helpers ==1.0.0
@@ -2903,17 +3248,15 @@ default-package-overrides:
   - xml-html-qq ==0.1.0.1
   - xml-indexed-cursor ==0.1.1.0
   - xml-lens ==0.3.1
-  - xml-parser ==0.1.1.1
   - xml-picklers ==0.3.6
   - xml-to-json-fast ==2.0.0
   - xml-types ==0.3.8
   - xmonad ==0.17.2
-  - xmonad-contrib ==0.17.1
   - xor ==0.0.1.2
   - xss-sanitize ==0.3.7.2
   - xxhash-ffi ==0.2.0.0
   - yaml ==0.11.11.2
-  - yaml-unscrambler ==0.1.0.18
+  - yaml-unscrambler ==0.1.0.19
   - Yampa ==0.14.6
   - yarn-lock ==0.6.5
   - yeshql-core ==4.2.0.0
@@ -2922,8 +3265,6 @@ default-package-overrides:
   - yesod-auth-basic ==0.1.0.3
   - yesod-auth-hashdb ==1.7.1.7
   - yesod-auth-oauth2 ==0.7.1.3
-  - yesod-auth-oidc ==0.1.4
-  - yesod-bin ==1.6.2.2
   - yesod-core ==1.6.25.1
   - yesod-eventsource ==1.6.0.1
   - yesod-fb ==0.6.1
@@ -2947,7 +3288,7 @@ default-package-overrides:
   - yi-rope ==0.11
   - yjsvg ==0.2.0.1
   - yjtools ==0.9.18
-  - yoga ==0.0.0.5
+  - yoga ==0.0.0.8
   - youtube ==0.2.1.1
   - zenacy-html ==2.1.0
   - zenacy-unicode ==1.0.2
@@ -2955,13 +3296,12 @@ default-package-overrides:
   - zeromq4-patterns ==0.3.1.0
   - zigzag ==0.0.1.0
   - zim-parser ==0.2.1.0
-  - zio ==0.1.0.2
   - zip ==2.0.0
   - zip-archive ==0.4.3
-  - zipper-extra ==0.1.3.2
   - zippers ==0.3.2
   - zip-stream ==0.2.2.0
   - zlib ==0.6.3.0
   - zlib-bindings ==0.1.1.5
   - zot ==0.0.3
   - zstd ==0.1.3.0
+  - zxcvbn-hs ==0.3.6
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
index 6b9bf78a40d0..d315bce3bf6b 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
@@ -68,6 +68,7 @@ dont-distribute-packages:
  - Chart-fltkhs
  - ClustalParser
  - Coadjute
+ - Color
  - Combinatorrent
  - ComonadSheet
  - Condor
@@ -212,6 +213,7 @@ dont-distribute-packages:
  - Haschoo
  - Hashell
  - HaskRel
+ - HaskellNet-SSL
  - Hate
  - Hawk
  - Hayoo
@@ -241,7 +243,6 @@ dont-distribute-packages:
  - JsContracts
  - JsonGrammar
  - JuPyTer-notebook
- - JuicyPixels-repa
  - JunkDB-driver-gdbm
  - JunkDB-driver-hashtables
  - KiCS
@@ -294,6 +295,7 @@ dont-distribute-packages:
  - NaCl
  - NaperianNetCDF
  - NearContextAlgebra
+ - Network-NineP
  - Ninjas
  - NoSlow
  - Nomyx
@@ -325,7 +327,6 @@ dont-distribute-packages:
  - Pup-Events
  - Pup-Events-Demo
  - Quelea
- - QuickPlot
  - RESTng
  - RJson
  - RMP
@@ -382,6 +383,11 @@ dont-distribute-packages:
  - SourceGraph
  - SpacePrivateers
  - SpinCounter
+ - Spock
+ - Spock-api-server
+ - Spock-digestive
+ - Spock-lucid
+ - Spock-worker
  - StockholmAlignment
  - Strafunski-Sdf2Haskell
  - SybWidget
@@ -414,6 +420,7 @@ dont-distribute-packages:
  - WebCont
  - Wired
  - WordAlignment
+ - WringTwistree
  - WxGeneric
  - XML
  - XMPP
@@ -456,7 +463,9 @@ dont-distribute-packages:
  - adict
  - adp-multi-monadiccp
  - aeson-native
+ - aeson_1_5_6_0
  - affine
+ - afis
  - afv
  - agda-server
  - agda-snippets-hakyll
@@ -468,12 +477,14 @@ dont-distribute-packages:
  - algebra-driven-design
  - algebra-sql
  - algebraic
+ - algebraic-graphs-io
  - algolia
  - algorithmic-composition-additional
  - algorithmic-composition-basic
  - algorithmic-composition-complex
  - algorithmic-composition-frequency-shift
  - algorithmic-composition-overtones
+ - alloy-proxy-fd
  - alms
  - alpha
  - alsa-gui
@@ -485,6 +496,8 @@ dont-distribute-packages:
  - ampersand
  - amqp-streamly
  - analyze-client
+ - anansi
+ - anansi-hscolour
  - anatomy
  - animate-example
  - animate-frames
@@ -500,8 +513,6 @@ dont-distribute-packages:
  - antiope-s3
  - antiope-shell
  - antlrc
- - apecs-gloss
- - apecs-physics-gloss
  - apelsin
  - api-rpc-accumulate
  - api-rpc-pegnet
@@ -553,6 +564,7 @@ dont-distribute-packages:
  - atom-msp430
  - atomic-primops-foreign
  - atp
+ - attenuation-profunctors
  - attoparsec-enumerator
  - attoparsec-iteratee
  - attoparsec-text-enumerator
@@ -560,7 +572,7 @@ dont-distribute-packages:
  - audiovisual
  - aura
  - authoring
- - autodocodec-openapi3
+ - autoapply
  - automata
  - autonix-deps-kf5
  - avers
@@ -581,6 +593,8 @@ dont-distribute-packages:
  - aws-kinesis-client
  - aws-kinesis-reshard
  - aws-lambda
+ - aws-lambda-haskell-runtime
+ - aws-lambda-haskell-runtime-wai
  - aws-mfa-credentials
  - aws-sdk
  - aws-sdk-xml-unordered
@@ -621,12 +635,13 @@ dont-distribute-packages:
  - battleships
  - bayes-stack
  - bbi
- - bcp47
- - bcp47-orphans
  - bdcs
  - bdcs-api
  - beam-automigrate
+ - beam-postgres
+ - beam-sqlite
  - beam-th
+ - bearriver
  - beautifHOL
  - bech32-th
  - beeminder-api
@@ -649,6 +664,7 @@ dont-distribute-packages:
  - bindings-ppdev
  - bindynamic
  - binembed-example
+ - binrep
  - bioace
  - bioalign
  - biofasta
@@ -661,6 +677,7 @@ dont-distribute-packages:
  - bip32
  - birch-beer
  - bird
+ - bisc
  - biscuit-servant
  - bishbosh
  - bit-array
@@ -675,6 +692,7 @@ dont-distribute-packages:
  - bitmaps
  - bittorrent
  - bla
+ - blacktip
  - blakesum-demo
  - blastxml
  - blatex
@@ -702,8 +720,10 @@ dont-distribute-packages:
  - boots-web
  - borel
  - both
+ - bound-gen
+ - bower-json
+ - bower-json_1_0_0_1
  - breakout
- - brick_2_1_1
  - bricks
  - bricks-internal-test
  - bricks-parsec
@@ -725,17 +745,15 @@ dont-distribute-packages:
  - buster-network
  - butterflies
  - bytable
- - bytehash
  - bytelog
  - bytestring-builder-varword
  - bytestring-read
+ - bytetrie
  - ca
  - cabal-bounds
  - cabal-cache
  - cabal-cargs
- - cabal-flatpak
- - cabal-helper
- - cabal-plan-bounds
+ - cabal-fix
  - cabal-query
  - cabal-test
  - cabal2arch
@@ -746,6 +764,7 @@ dont-distribute-packages:
  - cakyrespa
  - cal3d-examples
  - cal3d-opengl
+ - calamity-commands
  - calc
  - calculator
  - caldims
@@ -805,8 +824,10 @@ dont-distribute-packages:
  - chart-cli
  - chart-svg
  - chart-svg-various
+ - chart-svg_0_6_0_0
  - chart-unit
  - chassis
+ - chatty
  - cheapskate-highlight
  - cheapskate-lucid
  - cheapskate-terminal
@@ -826,7 +847,6 @@ dont-distribute-packages:
  - chu2
  - chuchu
  - chunks
- - circle
  - citation-resolve
  - citeproc-hs-pandoc-filter
  - clac
@@ -861,6 +881,7 @@ dont-distribute-packages:
  - clckwrks-theme-bootstrap
  - clckwrks-theme-clckwrks
  - clckwrks-theme-geo-bootstrap
+ - clean-home
  - cleff-plugin
  - cless
  - cleveland
@@ -885,6 +906,7 @@ dont-distribute-packages:
  - cmv
  - cnc-spec-compiler
  - co-feldspar
+ - co-log-polysemy
  - cobot-io
  - codec
  - codec-libevent
@@ -907,6 +929,7 @@ dont-distribute-packages:
  - columnar
  - comark
  - combinat-diagrams
+ - comic
  - commsec
  - commsec-keyexchange
  - comonad-random
@@ -964,6 +987,10 @@ dont-distribute-packages:
  - continuum-client
  - control
  - control-monad-attempt
+ - control-monad-exception
+ - control-monad-exception-monadsfd
+ - control-monad-exception-monadstf
+ - control-monad-exception-mtl
  - conversions
  - convert
  - convert-annotation
@@ -977,14 +1004,14 @@ dont-distribute-packages:
  - copilot-libraries
  - copilot-sbv
  - copilot-theorem
+ - copilot-verifier
  - corenlp-parser
  - coroutine-enumerator
  - coroutine-iteratee
  - couch-simple
  - couchdb-enumerator
- - country
- - country_0_2_4_1
  - cpkg
+ - cprng-aes
  - cprng-aes-effect
  - cql-io-tinylog
  - cqrs-example
@@ -994,6 +1021,7 @@ dont-distribute-packages:
  - cqrs-test
  - cqrs-testkit
  - crackNum
+ - crackNum_3_6
  - craft
  - craftwerk-cairo
  - craftwerk-gtk
@@ -1004,8 +1032,12 @@ dont-distribute-packages:
  - crf-chain2-generic
  - crf-chain2-tiers
  - criu-rpc
- - criu-rpc-types
  - cron-compat
+ - crucible
+ - crucible-llvm
+ - crucible-symio
+ - crux
+ - crux-llvm
  - crypto-classical
  - crypto-conduit
  - crypto-pubkey
@@ -1016,14 +1048,15 @@ dont-distribute-packages:
  - cryptol
  - cryptonite-cd
  - crystalfontz
- - csg
  - cspmchecker
  - csv-enumerator
  - ctpl
  - cube
  - curryer-rpc
+ - cursor-fuzzy-time-gen
  - cv-combinators
  - cypher
+ - dahdit-midi
  - dahdit-network
  - dahdit-test
  - daino
@@ -1073,6 +1106,7 @@ dont-distribute-packages:
  - ddc-tools
  - ddc-war
  - ddci-core
+ - debian-binary
  - debug
  - decidable
  - decimal-arithmetic
@@ -1105,13 +1139,14 @@ dont-distribute-packages:
  - deptrack-dot
  - dequeue
  - derive-IG
- - deriving-openapi3
  - descript-lang
  - detour-via-uom
  - devtools
  - dewdrop
  - dfinity-radix-tree
+ - dhall-lex
  - dhall-secret
+ - di-polysemy
  - dia-functions
  - diagrams-reflex
  - diagrams-wx
@@ -1120,8 +1155,8 @@ dont-distribute-packages:
  - difference-monoid
  - differential
  - digestive-foundation-lucid
- - digestive-functors-heist
  - digestive-functors-hsp
+ - digraph
  - dimensional-tf
  - dimensions
  - dingo-core
@@ -1131,6 +1166,7 @@ dont-distribute-packages:
  - direct-rocksdb
  - directory-contents
  - dirfiles
+ - dirstream
  - discogs-haskell
  - discord-gateway
  - discord-hs
@@ -1161,7 +1197,6 @@ dont-distribute-packages:
  - distribution-plot
  - dixi
  - dl-fedora
- - dl-fedora_1_0
  - dmenu-pkill
  - dmenu-pmount
  - dmenu-search
@@ -1192,15 +1227,16 @@ dont-distribute-packages:
  - dropbox-sdk
  - dropsolve
  - dsh-sql
- - dsmc
  - dsmc-tools
  - dtd
+ - dunai-test
  - dvda
  - dynamic-cabal
  - dynamic-pipeline
  - dynamic-plot
  - dynamic-pp
  - dynobud
+ - e11y-otel
  - easytensor
  - easytensor-vulkan
  - ecdsa
@@ -1224,13 +1260,14 @@ dont-distribute-packages:
  - elasticsearch-interchange
  - electrs-client
  - elerea-examples
+ - eliminators
+ - eliminators_0_9_4
  - elliptic-curve
  - elsa
  - ema-extra
  - emacs-keys
  - email
  - emailparse
- - emanote
  - embroidery
  - emd
  - engine-io-growler
@@ -1287,13 +1324,17 @@ dont-distribute-packages:
  - eventsource-geteventstore-store
  - eventsource-store-specs
  - eventsource-stub-store
- - eventuo11y
  - eventuo11y-batteries
  - eventuo11y-json
  - eventuo11y-otel
  - eventuo11y-prometheus
  - every-bit-counts
  - exference
+ - exinst-aeson
+ - exinst-base
+ - exinst-bytes
+ - exinst-cereal
+ - exinst-serialise
  - exist
  - exist-instances
  - expand
@@ -1311,7 +1352,6 @@ dont-distribute-packages:
  - factual-api
  - fadno
  - fair
- - falling-turnip
  - fallingblocks
  - family-tree
  - fast-arithmetic
@@ -1343,7 +1383,6 @@ dont-distribute-packages:
  - feed2twitter
  - feedback
  - fei-base
- - fei-cocoapi
  - fei-dataiter
  - fei-datasets
  - fei-examples
@@ -1374,10 +1413,8 @@ dont-distribute-packages:
  - fixed-point-vector-space
  - fixhs
  - flashblast
- - flatbuffers
  - flexiwrap
  - flexiwrap-smallcheck
- - flink-statefulfun
  - flite
  - flower
  - flowsim
@@ -1389,7 +1426,6 @@ dont-distribute-packages:
  - fluent-logger
  - fluent-logger-conduit
  - fmt-for-rio
- - fn-extra
  - foldable1
  - foldl-transduce-attoparsec
  - follower
@@ -1403,6 +1439,8 @@ dont-distribute-packages:
  - forms-data-format
  - forsyde-deep
  - forth-hll
+ - fortran-src
+ - fortran-src-extras
  - foscam-directory
  - foscam-sort
  - fpco-api
@@ -1410,6 +1448,7 @@ dont-distribute-packages:
  - fpnla-examples
  - frame-markdown
  - freckle-app
+ - free-category
  - free-functors
  - free-game
  - free-theorems-seq-webui
@@ -1443,11 +1482,16 @@ dont-distribute-packages:
  - functional-arrow
  - functor
  - functor-combo
+ - functor-monad
  - funflow
  - funflow-nix
  - funion
  - funnyprint
  - funsat
+ - fused-effects-lens
+ - fused-effects-optics
+ - fused-effects-random
+ - fused-effects-readline
  - fused-effects-squeal
  - fwgl-glfw
  - fwgl-javascript
@@ -1465,7 +1509,6 @@ dont-distribute-packages:
  - gbu
  - gdax
  - gdiff-ig
- - gearhash
  - gedcom
  - geek
  - geek-server
@@ -1475,6 +1518,7 @@ dont-distribute-packages:
  - gelatin-gl
  - gelatin-sdl2
  - gelatin-shaders
+ - gemini-router
  - gemini-textboard
  - gencheck
  - generic-accessors
@@ -1494,13 +1538,10 @@ dont-distribute-packages:
  - ghc-dump-util
  - ghc-imported-from
  - ghc-instances
- - ghc-lib_9_8_1_20231121
  - ghc-mod
  - ghc-plugs-out
  - ghc-session
- - ghc_9_8_1
  - ghci-pretty
- - ghcide-bench
  - ghcjs-dom-hello
  - ghcjs-dom-webkit
  - ghcjs-hplay
@@ -1510,7 +1551,6 @@ dont-distribute-packages:
  - gi-ges
  - gi-gstpbutils
  - gi-gtk-declarative-app-simple
- - gi-gtk_4_0_8
  - git-config
  - git-fmt
  - git-gpush
@@ -1536,11 +1576,12 @@ dont-distribute-packages:
  - glome-hs
  - gloss-accelerate
  - gloss-devil
- - gloss-examples
- - gloss-raster
  - gloss-raster-accelerate
+ - gloss-raster-massiv
  - gloss-sodium
+ - glpk-hs
  - gltf-loader
+ - glualint
  - gmap
  - gmndl
  - gnome-desktop
@@ -1749,6 +1790,7 @@ dont-distribute-packages:
  - gore-and-ash-sync
  - gps
  - gps2htmlReport
+ - grab-form
  - graflog
  - grammar-combinators
  - grapefruit-examples
@@ -1768,6 +1810,7 @@ dont-distribute-packages:
  - graphicsFormats
  - graphicstools
  - graphtype
+ - graphula
  - greencard-lib
  - grenade
  - greskell
@@ -1810,6 +1853,7 @@ dont-distribute-packages:
  - hOff-display
  - hPDB
  - hPDB-examples
+ - hS3
  - habit
  - hablo
  - hablog
@@ -1827,7 +1871,6 @@ dont-distribute-packages:
  - hack2-handler-happstack-server
  - hack2-handler-mongrel2-http
  - hack2-handler-snap-server
- - hackage-cli
  - hackage2twitter
  - hackmanager
  - haddock
@@ -1838,6 +1881,7 @@ dont-distribute-packages:
  - hailgun-send
  - hailgun-simple
  - hails-bin
+ - hake
  - hakyll-elm
  - hakyll-ogmarkup
  - hakyll-shortcut-links
@@ -1864,8 +1908,8 @@ dont-distribute-packages:
  - happstack-fay
  - happstack-fay-ajax
  - happstack-foundation
- - happstack-heist
  - happstack-helpers
+ - happstack-hsp
  - happstack-ixset
  - happstack-plugins
  - happstack-state
@@ -1877,12 +1921,14 @@ dont-distribute-packages:
  - harmony
  - haroonga-httpd
  - has-th
+ - hasbolt
  - hascat
  - hascat-lib
  - hascat-setup
  - hascat-system
+ - hash-addressed
+ - hash-addressed-cli
  - hashable-accelerate
- - hasherize
  - hashflare
  - hask-home
  - haskanoid
@@ -1946,7 +1992,6 @@ dont-distribute-packages:
  - haskoin-bitcoind
  - haskoin-crypto
  - haskoin-node
- - haskoin-node_1_0_1
  - haskoin-protocol
  - haskoin-script
  - haskoon
@@ -1970,6 +2015,7 @@ dont-distribute-packages:
  - hasql-cursor-query
  - hasql-postgres
  - hasql-postgres-options
+ - hasql-queue
  - hasql-streams-conduit
  - hasql-streams-core
  - hasql-streams-example
@@ -2021,8 +2067,6 @@ dont-distribute-packages:
  - heftia
  - heftia-effects
  - heist-aeson
- - heist-async
- - heist-extra
  - helic
  - helics
  - helics-wai
@@ -2042,8 +2086,7 @@ dont-distribute-packages:
  - hesh
  - hesql
  - heterolist
- - hetzner
- - hetzner_0_6_0_0
+ - hevm
  - hevolisa
  - hevolisa-dph
  - hexpat-conduit
@@ -2070,9 +2113,9 @@ dont-distribute-packages:
  - hinduce-classifier
  - hinduce-classifier-decisiontree
  - hinduce-examples
+ - hinit
  - hinvaders
  - hinze-streams
- - hip
  - hipbot
  - hipe
  - hipsql-client
@@ -2090,16 +2133,15 @@ dont-distribute-packages:
  - hjugement-cli
  - hlcm
  - hledger-api
+ - hlrdb
  - hls
  - hls-exactprint-utils
  - hmark
- - hmatrix-repa
  - hmatrix-sundials
  - hmeap
  - hmeap-utils
  - hmep
  - hmt-diagrams
- - hnetcdf
  - hnormalise
  - hoauth2-demo
  - hoauth2-providers-tutorial
@@ -2149,9 +2191,13 @@ dont-distribute-packages:
  - hs
  - hs-blake2
  - hs-ffmpeg
+ - hs-functors
  - hs-gen-iface
+ - hs-ix
  - hs-pkpass
+ - hs-profunctors
  - hs-sdl-term-emulator
+ - hs2ats
  - hs2dot
  - hsautogui
  - hsbackup
@@ -2174,12 +2220,11 @@ dont-distribute-packages:
  - hsinspect-lsp
  - hslogstash
  - hsparql
+ - hspec-dirstream
  - hspec-expectations-pretty
- - hspec-formatter-github
  - hspec-pg-transact
  - hspec-setup
  - hspec-shouldbe
- - hspec-snap
  - hspecVariant
  - hsprocess
  - hsql-mysql
@@ -2190,6 +2235,7 @@ dont-distribute-packages:
  - hsqml-demo-morris
  - hsqml-morris
  - hsreadability
+ - hssourceinfo
  - hssqlppp-th
  - hstar
  - hstox
@@ -2197,10 +2243,12 @@ dont-distribute-packages:
  - hstzaar
  - hsubconvert
  - hswip
+ - hsx-jmacro
  - hsx-xhtml
  - hsyslog-tcp
  - html-kure
  - html-parse-util
+ - html2hamlet
  - htoml-parse
  - htsn-import
  - http-client-auth
@@ -2208,7 +2256,6 @@ dont-distribute-packages:
  - http-enumerator
  - http-exchange
  - http-exchange-instantiations
- - http-io-streams
  - http-response-decoder
  - http2-client-exe
  - http2-client-grpc
@@ -2222,17 +2269,22 @@ dont-distribute-packages:
  - hugs2yc
  - hulk
  - hunit-gui
+ - hunp
  - hunt-searchengine
  - hunt-server
  - hurdle
+ - hurl
  - hurl-xml
+ - husk-scheme-libs
  - huzzy
  - hw-all
+ - hw-eliasfano
  - hw-json
  - hw-json-demo
  - hw-json-lens
  - hw-json-simple-cursor
  - hw-json-standard-cursor
+ - hw-kafka-avro
  - hw-uri
  - hworker-ses
  - hwormhole
@@ -2268,14 +2320,16 @@ dont-distribute-packages:
  - ideas-math-types
  - ideas-statistics
  - identicon-style-squares
+ - idna
  - idris
+ - ifscs
  - ige-mac-integration
  - igrf
  - ihaskell-inline-r
  - ihaskell-rlangqq
+ - ihaskell-widgets
  - ihttp
  - imap
- - imbib
  - imgurder
  - imj-animation
  - imj-base
@@ -2289,6 +2343,8 @@ dont-distribute-packages:
  - improve
  - inch
  - incipit
+ - incipit-core
+ - incipit-core_0_6_0_0
  - incremental-computing
  - incremental-maps
  - increments
@@ -2357,8 +2413,8 @@ dont-distribute-packages:
  - ivy-web
  - ix
  - ixset
+ - ixset-typed-conversions
  - iyql
- - j
  - j2hs
  - java-bridge-extras
  - java-character
@@ -2389,9 +2445,11 @@ dont-distribute-packages:
  - json-query
  - json-rpc-client
  - json-schema
+ - json-sop
  - json-spec-elm
  - json-spec-elm-servant
  - json-spec-openapi
+ - json-state
  - json-togo
  - json-tokens
  - json2-hdbc
@@ -2437,6 +2495,7 @@ dont-distribute-packages:
  - key-vault
  - keyring
  - keysafe
+ - keystore
  - keyvaluehash
  - keyword-args
  - kicad-data
@@ -2482,7 +2541,10 @@ dont-distribute-packages:
  - landlock
  - lang
  - language-Modula2
+ - language-ats
+ - language-avro
  - language-boogie
+ - language-ecmascript-analysis
  - language-eiffel
  - language-kort
  - language-ninja
@@ -2499,16 +2561,20 @@ dont-distribute-packages:
  - latex-svg-hakyll
  - latex-svg-pandoc
  - launchdarkly-server-sdk-redis-hedis
+ - lawful-classes-hedgehog
+ - lawful-classes-quickcheck
  - layered-state
  - layers-game
  - layouting
  - lazy-hash-cache
  - lda
+ - ldap-client
+ - ldap-client-og
  - ldap-scim-bridge
  - ldapply
  - leaky
  - lean
- - learn-physics_0_6_6
+ - learn-physics
  - learning-hmm
  - legion
  - legion-discovery
@@ -2518,6 +2584,8 @@ dont-distribute-packages:
  - leksah-server
  - lens-accelerate
  - lens-utils
+ - lenz
+ - lenz-mtl
  - levmar-chart
  - lex-applicative
  - lgtk
@@ -2532,6 +2600,7 @@ dont-distribute-packages:
  - liblinear-enumerator
  - libmolude
  - libraft
+ - librarian
  - librato
  - libxml-enumerator
  - lifted-base-tf
@@ -2585,6 +2654,7 @@ dont-distribute-packages:
  - lmonad-yesod
  - lnd-client
  - lnurl-authenticator
+ - loc
  - local-search
  - localize
  - locked-poll
@@ -2610,10 +2680,10 @@ dont-distribute-packages:
  - lorentz
  - lostcities
  - loup
+ - lp-diagrams
  - lrucaching-haxl
  - ls-usb
  - lsystem
- - ltext
  - luachunk
  - lucid-colonnade
  - lucienne
@@ -2633,6 +2703,7 @@ dont-distribute-packages:
  - magicbane
  - mahoro
  - maid
+ - mail-pool
  - mailgun
  - majordomo
  - majority
@@ -2665,8 +2736,12 @@ dont-distribute-packages:
  - marmalade-upload
  - marquise
  - marvin
+ - marxup
  - masakazu-bot
+ - massiv
+ - massiv-io
  - massiv-persist
+ - massiv-test
  - matchers
  - math-programming-glpk
  - math-programming-tests
@@ -2680,12 +2755,14 @@ dont-distribute-packages:
  - medea
  - mediabus-fdk-aac
  - mediabus-rtp
+ - mediawiki2latex
  - mellon-gpio
  - mellon-web
  - memcache-conduit
  - memory-cd
  - memory-hexstring
  - merkle-patricia-db
+ - message-db-temp
  - meta-par-accelerate
  - metaplug
  - metar
@@ -2694,12 +2771,6 @@ dont-distribute-packages:
  - micro-gateway
  - microformats2-types
  - midimory
- - mig
- - mig-client
- - mig-extra
- - mig-server
- - mig-swagger-ui
- - mig-wai
  - mighttpd
  - minecraft-data
  - minesweeper
@@ -2707,6 +2778,7 @@ dont-distribute-packages:
  - minilight
  - minilight-lua
  - minimung
+ - minio-hs
  - minioperational
  - minirotate
  - mismi-kernel
@@ -2730,14 +2802,18 @@ dont-distribute-packages:
  - modular-prelude-classy
  - modularity
  - modulo
+ - moffy-samples-gtk3
+ - moffy-samples-gtk3-run
  - moffy-samples-gtk4
  - moffy-samples-gtk4-run
  - mole
+ - monad-connect
  - monad-exception
  - monad-http
  - monad-metrics-extensible
  - monad-state
  - monad-stlike-stm
+ - monadic-bang
  - monadiccp-gecode
  - monarch
  - monetdb-mapi
@@ -2753,7 +2829,11 @@ dont-distribute-packages:
  - morley-prelude
  - morley-upgradeable
  - morloc
+ - morpheus-graphql
  - morphisms-functors-inventory
+ - moto
+ - moto-postgresql
+ - motor
  - motor-diagrams
  - mp
  - mp3decoder
@@ -2764,6 +2844,7 @@ dont-distribute-packages:
  - mps
  - mptcp-pm
  - mptcpanalyzer
+ - ms-tds
  - msgpack-aeson
  - msgpack-arbitrary
  - msgpack-binary
@@ -2773,6 +2854,8 @@ dont-distribute-packages:
  - msgpack-rpc-conduit
  - msgpack-testsuite
  - msi-kb-backlit
+ - mssql-simple
+ - mstate
  - mtgoxapi
  - mu-avro
  - mu-graphql
@@ -2817,21 +2900,23 @@ dont-distribute-packages:
  - mvc-updates
  - mvclient
  - mwc-random-accelerate
+ - mwc-random-monad
  - mxnet-dataiter
  - mxnet-examples
  - mxnet-nn
  - myTestlll
- - mysnapsession
  - mysnapsession-example
  - mysql-haskell-nem
  - mysql-haskell-openssl
  - mysql-simple-typed
  - mywatch
  - mywork
+ - n-m
  - n2o-web
  - nakadi-client
  - named-servant-client
  - named-servant-server
+ - named-text
  - nanq
  - national-australia-bank
  - nats-queue
@@ -2861,9 +2946,11 @@ dont-distribute-packages:
  - network-minihttp
  - network-netpacket
  - network-pgi
+ - network-protocol-xmpp
  - network-rpca
  - network-stream
  - network-topic-models
+ - network-transport-inmemory
  - network-unexceptional
  - network-uri-json
  - network-websocket
@@ -2871,7 +2958,6 @@ dont-distribute-packages:
  - neuron
  - newsletter-mailgun
  - newsynth
- - ngx-export-distribution
  - ngx-export-tools-extra
  - nikepub
  - nirum
@@ -2886,6 +2972,9 @@ dont-distribute-packages:
  - nomyx-server
  - nonlinear-optimization-ad
  - nonlinear-optimization-backprop
+ - not-gloss
+ - not-gloss-examples
+ - nothunks_0_2_1_0
  - notmuch-web
  - now-haskell
  - nri-env-parser
@@ -2896,7 +2985,6 @@ dont-distribute-packages:
  - nri-prelude
  - nri-redis
  - nri-test-encoding
- - numerals-base
  - numeric-kinds
  - numeric-ode
  - numerical
@@ -2932,10 +3020,10 @@ dont-distribute-packages:
  - om-kubernetes
  - om-legion
  - online-csv
+ - oops-examples
  - opc-xml-da-client
  - open-adt-tutorial
  - open-typerep
- - opencv
  - opencv-extra
  - openpgp-Crypto
  - openpgp-crypto-api
@@ -2952,6 +3040,7 @@ dont-distribute-packages:
  - optimal-blocks
  - optimusprime
  - optparse-enum
+ - orbits
  - orchid
  - orchid-demo
  - order-maintenance
@@ -2961,6 +3050,8 @@ dont-distribute-packages:
  - outsort
  - overeasy
  - overload
+ - pa-field-parser
+ - pa-json
  - package-o-tron
  - padKONTROL
  - pairing
@@ -2988,9 +3079,9 @@ dont-distribute-packages:
  - parsley
  - parsley-garnish
  - partage
+ - partial-semigroup-test
  - passman-cli
  - patch-image
- - path-text-utf8_0_0_2_0
  - pathfindingcore
  - patterns
  - paypal-rest-client
@@ -3008,7 +3099,6 @@ dont-distribute-packages:
  - penny-lib
  - penrose
  - peparser
- - perceptual-hash
  - perdure
  - perf
  - perf-analysis
@@ -3085,14 +3175,18 @@ dont-distribute-packages:
  - poke
  - poker
  - polh-lexicon
+ - poly-rec
  - polydata
+ - polysemy
  - polysemy-RandomFu
  - polysemy-account
  - polysemy-account-api
+ - polysemy-check
  - polysemy-chronos
  - polysemy-conc
  - polysemy-db
  - polysemy-extra
+ - polysemy-fs
  - polysemy-fskvstore
  - polysemy-hasql
  - polysemy-hasql-test
@@ -3104,13 +3198,17 @@ dont-distribute-packages:
  - polysemy-methodology
  - polysemy-methodology-co-log
  - polysemy-methodology-composite
+ - polysemy-mocks
  - polysemy-path
+ - polysemy-plugin
  - polysemy-resume
  - polysemy-scoped-fs
  - polysemy-time
  - polysemy-uncontrolled
  - polysemy-video
  - polysemy-vinyl
+ - polysemy-webserver
+ - polysemy-zoo
  - polytypeable-utils
  - pomodoro
  - pontarius-mediaserver
@@ -3118,6 +3216,11 @@ dont-distribute-packages:
  - porcupine-core
  - porcupine-http
  - porcupine-s3
+ - portray-diff
+ - portray-diff-hunit
+ - portray-diff-quickcheck
+ - portray-pretty
+ - portray-prettyprinter
  - ports
  - poseidon
  - poseidon-postgis
@@ -3165,14 +3268,12 @@ dont-distribute-packages:
  - prolog-graph-lib
  - prologue
  - prolude
+ - prometheus-proc
  - propane
+ - propellor
  - proplang
  - prosidyc
- - proto-lens-combinators
  - proto-lens-descriptors
- - proto-lens-protobuf-types
- - proto-lens-protoc
- - proto-lens-setup
  - proto3-suite
  - protobuf-native
  - protocol-buffers-descriptor
@@ -3180,6 +3281,7 @@ dont-distribute-packages:
  - proton
  - psc-ide
  - psql
+ - publicsuffixlist
  - puffytools
  - pugs-compat
  - pugs-hsregex
@@ -3208,6 +3310,7 @@ dont-distribute-packages:
  - qtah-generator
  - qtah-qt5
  - quantfin
+ - quantification-aeson
  - quantum-random
  - queryparser
  - queryparser-demo
@@ -3220,7 +3323,6 @@ dont-distribute-packages:
  - quickcheck-poly
  - quickcheck-regex
  - quickcheck-relaxng
- - quickcheck-state-machine
  - quickcheck-state-machine-distributed
  - quicktest
  - quipper
@@ -3303,14 +3405,14 @@ dont-distribute-packages:
  - reflex-dom-colonnade
  - reflex-dynamic-containers
  - reflex-gadt-api
- - reflex-ghci
  - reflex-gloss-scene
  - reflex-libtelnet
  - reflex-localize
  - reflex-localize-dom
  - reflex-monad-auth
  - reflex-potatoes
- - reflex-process
+ - reform-blaze
+ - reform-happstack
  - refractor
  - refurb
  - reg-alloc-graph-color
@@ -3334,6 +3436,7 @@ dont-distribute-packages:
  - regular-web
  - regular-xmlpickler
  - reheat
+ - rel8
  - relational-postgresql8
  - relational-query
  - relational-query-HDBC
@@ -3346,18 +3449,10 @@ dont-distribute-packages:
  - remote-json-client
  - remote-json-server
  - remotion
- - repa-algorithms
  - repa-array
- - repa-bytestring
  - repa-convert
- - repa-devil
- - repa-examples
- - repa-fftw
  - repa-flow
- - repa-io
- - repa-linear-algebra
  - repa-plugin
- - repa-sndfile
  - repa-stream
  - repa-v4l2
  - replicant
@@ -3366,6 +3461,7 @@ dont-distribute-packages:
  - representable-tries
  - reserve
  - resin
+ - resource-pool-catchio
  - resource-simple
  - respond
  - rest-client
@@ -3378,6 +3474,7 @@ dont-distribute-packages:
  - rest-types
  - rest-wai
  - restful-snap
+ - restless-git
  - restricted-workers
  - rethinkdb-model
  - rethinkdb-wereHamster
@@ -3448,6 +3545,8 @@ dont-distribute-packages:
  - s-expression
  - safe-coloured-text-layout-gen
  - safe-coupling
+ - safe-failure
+ - safe-failure-cme
  - safe-plugins
  - safer-file-handles
  - safer-file-handles-bytestring
@@ -3466,7 +3565,6 @@ dont-distribute-packages:
  - samtools-conduit
  - samtools-enumerator
  - samtools-iteratee
- - sandwich_0_2_1_0
  - sarsi
  - sasha
  - sasl
@@ -3478,7 +3576,6 @@ dont-distribute-packages:
  - sbv-program
  - sbvPlugin
  - sc2-lowlevel
- - sc2-proto
  - sc2-support
  - sc2hs
  - sc3-rdu
@@ -3487,6 +3584,7 @@ dont-distribute-packages:
  - scalpel-search
  - scan-metadata
  - scan-vector-machine
+ - scheduler
  - scheduling
  - schematic
  - scholdoc
@@ -3520,6 +3618,8 @@ dont-distribute-packages:
  - secrm
  - sednaDBXML
  - seitz-symbol
+ - selda-json
+ - selda-sqlite
  - selenium-server
  - semantic-source
  - semantic-version
@@ -3534,6 +3634,8 @@ dont-distribute-packages:
  - seqloc
  - seqloc-datafiles
  - sequor
+ - serdoc-binary
+ - serial-test-generators
  - serpentine
  - serv
  - serv-wai
@@ -3545,6 +3647,9 @@ dont-distribute-packages:
  - servant-auth-token-leveldb
  - servant-auth-token-persistent
  - servant-auth-token-rocksdb
+ - servant-auth-wordpress
+ - servant-checked-exceptions
+ - servant-checked-exceptions-core
  - servant-client-namedargs
  - servant-csharp
  - servant-db-postgresql
@@ -3553,14 +3658,14 @@ dont-distribute-packages:
  - servant-examples
  - servant-haxl-client
  - servant-http2-client
+ - servant-js
+ - servant-jsonrpc-client
+ - servant-jsonrpc-server
  - servant-matrix-param
  - servant-oauth2
  - servant-oauth2-examples
- - servant-openapi3
  - servant-postgresql
- - servant-proto-lens
  - servant-pushbullet-client
- - servant-queryparam-openapi3
  - servant-rate-limit
  - servant-reason
  - servant-serialization
@@ -3571,25 +3676,24 @@ dont-distribute-packages:
  - servant-streaming-server
  - servant-swagger-tags
  - servant-to-elm
- - servant-util
  - servant-util-beam-pg
  - servant-waargonaut
  - servant-zeppelin-client
  - servant-zeppelin-server
  - servant-zeppelin-swagger
- - serversession-frontend-snap
- - ses-html-snaplet
  - sessiontypes-distributed
  - sgf
  - sgrep
  - shady-gen
  - shady-graphics
+ - shake-ats
  - shake-bindist
  - shake-minify-css
  - shakebook
  - shaker
  - shapefile
  - shapely-data
+ - shapes-demo
  - sheets
  - shelduck
  - shellmate-extras
@@ -3603,7 +3707,6 @@ dont-distribute-packages:
  - sibe
  - sigma-ij
  - signable
- - signable-haskell-protoc
  - signals
  - signature
  - silvi
@@ -3617,6 +3720,8 @@ dont-distribute-packages:
  - simple-postgresql-orm
  - simpleirc-lens
  - simseq
+ - singleton-nats
+ - singletons-presburger
  - siphon
  - siren-json
  - sirkel
@@ -3643,56 +3748,33 @@ dont-distribute-packages:
  - smtlib2-pipe
  - smtlib2-quickcheck
  - smtlib2-timing
+ - smtp-mail
  - smtp2mta
- - snap
  - snap-auth-cli
  - snap-elm
- - snap-error-collector
  - snap-extras
- - snap-routes
- - snap-testing
  - snap-utils
  - snap-web-routes
- - snaplet-acid-state
  - snaplet-actionlog
- - snaplet-amqp
  - snaplet-auth-acid
- - snaplet-coffee
- - snaplet-css-min
  - snaplet-customauth
- - snaplet-environments
  - snaplet-fay
- - snaplet-ghcjs
  - snaplet-hasql
  - snaplet-haxl
  - snaplet-hdbc
- - snaplet-hslogger
- - snaplet-i18n
- - snaplet-influxdb
  - snaplet-lss
- - snaplet-mandrill
  - snaplet-mongoDB
- - snaplet-mongodb-minimalistic
  - snaplet-mysql-simple
  - snaplet-oauth
- - snaplet-persistent
- - snaplet-postgresql-simple
  - snaplet-postmark
- - snaplet-purescript
  - snaplet-recaptcha
- - snaplet-redis
  - snaplet-redson
  - snaplet-rest
  - snaplet-riak
- - snaplet-sass
- - snaplet-scoped-session
  - snaplet-sedna
- - snaplet-ses-html
- - snaplet-sqlite-simple
  - snaplet-sqlite-simple-jwt-auth
  - snaplet-stripe
  - snaplet-tasks
- - snaplet-typed-sessions
  - snaplet-wordpress
  - snappy-iteratee
  - sndfile-enumerators
@@ -3704,9 +3786,11 @@ dont-distribute-packages:
  - snowflake-core
  - snowflake-server
  - snumber
+ - soap-tls
  - sock2stream
  - socket-io
  - sockets
+ - sockets-and-pipes
  - socketson
  - solga-swagger
  - solr
@@ -3718,7 +3802,7 @@ dont-distribute-packages:
  - sparsebit
  - spartacon
  - spata
- - spatial-math_0_5_0_1
+ - spatial-math
  - specialize-th
  - spectral-clustering
  - speculation-transformers
@@ -3728,7 +3812,6 @@ dont-distribute-packages:
  - sphinx-cli
  - spice
  - spike
- - spline3
  - splines
  - sprinkles
  - sproxy
@@ -3738,6 +3821,8 @@ dont-distribute-packages:
  - sql-simple-pool
  - sql-simple-postgresql
  - sql-simple-sqlite
+ - sqlcli-odbc
+ - sqlite-simple-interpolate
  - sqlite-simple-typed
  - squeal-postgresql
  - squeal-postgresql-ltree
@@ -3812,6 +3897,8 @@ dont-distribute-packages:
  - supercollider-midi
  - superconstraints
  - supernova
+ - supply-chain
+ - supply-next
  - sv
  - sv-cassava
  - sv-svfactor
@@ -3852,6 +3939,7 @@ dont-distribute-packages:
  - tagsoup-navigate
  - tahoe-directory
  - tahoe-great-black-swamp
+ - tahoe-great-black-swamp-testing
  - tahoe-ssk
  - tak-ai
  - takahashi
@@ -3866,7 +3954,6 @@ dont-distribute-packages:
  - task-distribution
  - tasty-bdd
  - tasty-groundhog-converters
- - tasty-hspec_1_2_0_4
  - tasty-integrate
  - tasty-jenkins-xml
  - tasty-laws
@@ -3875,15 +3962,15 @@ dont-distribute-packages:
  - tateti-tateti
  - tbox
  - tccli
- - tcod-haskell
  - tdd-util
+ - tdlib
+ - tdlib-types
  - techlab
  - telegram-bot
  - telegram-raw-api
  - ten-lens
  - ten-unordered-containers
- - tensorflow-opgen
- - tensorflow-proto
+ - term-rewriting
  - terminal-text
  - terrahs
  - test-sandbox-compose
@@ -3945,6 +4032,7 @@ dont-distribute-packages:
  - toysolver
  - tpar
  - tpb
+ - tracing-control
  - trajectory
  - trans-fx-data
  - trans-fx-io
@@ -4025,6 +4113,8 @@ dont-distribute-packages:
  - ukrainian-phonetics-basic
  - unagi-bloomfilter
  - unbound
+ - unbound-kind-generics
+ - unfoldable-restricted
  - uni-events
  - uni-graphs
  - uni-htk
@@ -4040,6 +4130,8 @@ dont-distribute-packages:
  - uniqueness-periods-vector-filters
  - uniqueness-periods-vector-general
  - uniqueness-periods-vector-properties
+ - units
+ - units-defs
  - unitym-servant
  - unitym-yesod
  - universal
@@ -4074,7 +4166,9 @@ dont-distribute-packages:
  - uu-cco-hut-parsing
  - uu-cco-uu-parsinglib
  - uu-options
+ - uuagc
  - uuid-crypto
+ - uuid-orphans
  - uvector-algorithms
  - v4l2
  - v4l2-examples
@@ -4090,6 +4184,7 @@ dont-distribute-packages:
  - vault-tool-server
  - vault-trans
  - vaultaire-common
+ - vaultenv
  - vcache-trie
  - vcard
  - vcsgui
@@ -4120,13 +4215,11 @@ dont-distribute-packages:
  - voicebase
  - vorbiscomment
  - vpq
- - vty-crossplatform
  - vty-ui-extras
  - waargonaut
  - wahsp
  - wai-devel
  - wai-dispatch
- - wai-handler-hal
  - wai-handler-snap
  - wai-hastache
  - wai-middleware-brotli
@@ -4136,7 +4229,6 @@ dont-distribute-packages:
  - wai-middleware-content-type
  - wai-middleware-rollbar
  - wai-middleware-route
- - wai-middleware-validation
  - wai-middleware-verbs
  - wai-route
  - wai-routing
@@ -4153,9 +4245,15 @@ dont-distribute-packages:
  - wavesurfer
  - wavy
  - weatherhs
- - web-fpco
  - web-mongrel2
+ - web-routes-boomerang
+ - web-routes-generics
+ - web-routes-happstack
+ - web-routes-hsp
+ - web-routes-mtl
  - web-routes-regular
+ - web-routes-th
+ - web-routes-wai
  - web-routing
  - web3
  - web3-bignum
@@ -4166,7 +4264,6 @@ dont-distribute-packages:
  - web3-solidity
  - webcrank-wai
  - webdriver-w3c
- - webgear-openapi
  - webify
  - webserver
  - websockets-rpc
@@ -4203,8 +4300,10 @@ dont-distribute-packages:
  - wrecker
  - wrecker-ui
  - wright
+ - write-buffer-stm
  - writer-cps-full
  - wsjtx-udp
+ - wstunnel
  - wtk-gtk
  - wu-wei
  - wumpus-basic
@@ -4220,7 +4319,9 @@ dont-distribute-packages:
  - wxhnotepad
  - wxturtle
  - wyvern
+ - xcffib
  - xdcc
+ - xdg-basedir-compliant
  - xhb-atom-cache
  - xhb-ewmh
  - xml-catalog
@@ -4268,6 +4369,7 @@ dont-distribute-packages:
  - yesod-alerts
  - yesod-articles
  - yesod-auth-ldap
+ - yesod-auth-lti13
  - yesod-colonnade
  - yesod-continuations
  - yesod-examples
@@ -4279,6 +4381,7 @@ dont-distribute-packages:
  - yesod-raml-bin
  - yesod-raml-docs
  - yesod-raml-mock
+ - yesod-routes-flow
  - yesod-routes-typescript
  - yesod-session-redis
  - yesod-worker
@@ -4322,6 +4425,7 @@ dont-distribute-packages:
  - zifter-hlint
  - zifter-stack
  - zipper
+ - zipper-extra
  - zippo
  - ziptastic-client
  - zlib-enum
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
index 6c53c2b61ed2..9897a6f2be0c 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
@@ -114,7 +114,6 @@ self: super: builtins.intersectAttrs super {
       }))
       super)
     hls-brittany-plugin
-    hls-stan-plugin
     hls-floskell-plugin
     hls-fourmolu-plugin
     hls-overloaded-record-dot-plugin
@@ -123,6 +122,9 @@ self: super: builtins.intersectAttrs super {
   # PLUGINS WITH DISABLED TESTS
   # 2023-04-01: TODO: We should reenable all these tests to figure if they are still broken.
   inherit (pkgs.lib.mapAttrs (_: dontCheck) super)
+    # Tests require ghcide-test-utils which is broken
+    hls-semantic-tokens-plugin
+
     # Tests have file permissions expections that don’t work with the nix store.
     hls-gadt-plugin
 
@@ -173,6 +175,9 @@ self: super: builtins.intersectAttrs super {
 
     # 2023-04-03: https://github.com/haskell/haskell-language-server/issues/3549
     hls-retrie-plugin
+
+    # 2024-01-25: Golden files are missing
+    hls-stan-plugin
   ;
 
   ###########################################
@@ -428,7 +433,6 @@ self: super: builtins.intersectAttrs super {
   hasql-interpolate = dontCheck super.hasql-interpolate;
   hasql-notifications = dontCheck super.hasql-notifications;
   hasql-pool = dontCheck super.hasql-pool;
-  hasql-pool_0_10_0_1 = doDistribute (dontCheck super.hasql-pool_0_10_0_1);
   hasql-transaction = dontCheck super.hasql-transaction;
 
   # Test suite requires a running postgresql server,
@@ -466,6 +470,7 @@ self: super: builtins.intersectAttrs super {
   wxcore = super.wxcore.override { wxGTK = pkgs.wxGTK32; };
 
   shellify = enableSeparateBinOutput super.shellify;
+  specup = enableSeparateBinOutput super.specup;
 
   # Test suite wants to connect to $DISPLAY.
   bindings-GLFW = dontCheck super.bindings-GLFW;
@@ -652,6 +657,8 @@ self: super: builtins.intersectAttrs super {
   # tests require working stack installation with all-cabal-hashes cloned in $HOME
   stackage-curator = dontCheck super.stackage-curator;
 
+  stack = self.generateOptparseApplicativeCompletions [ "stack" ] super.stack;
+
   # hardcodes /usr/bin/tr: https://github.com/snapframework/io-streams/pull/59
   io-streams = enableCabalFlag "NoInteractiveTests" super.io-streams;
 
@@ -791,6 +798,7 @@ self: super: builtins.intersectAttrs super {
       substituteInPlace Test.hs \
         --replace ', testCase "crypto" test_crypto' ""
     '' + (drv.postPatch or "");
+
     # Ensure git-annex uses the exact same coreutils it saw at build-time.
     # This is especially important on Darwin but also in Linux environments
     # where non-GNU coreutils are used by default.
@@ -801,6 +809,19 @@ self: super: builtins.intersectAttrs super {
     buildTools = [
       pkgs.buildPackages.makeWrapper
     ] ++ (drv.buildTools or []);
+
+    # Git annex provides a restricted login shell. Setting
+    # passthru.shellPath here allows a user's login shell to be set to
+    # `git-annex-shell` by making `shell = haskellPackages.git-annex`.
+    # https://git-annex.branchable.com/git-annex-shell/
+    passthru.shellPath = "/bin/git-annex-shell";
+
+    # Install man pages which is no longer done by Setup.hs
+    # TODO(@sternenseemann): figure out why install-desktops wants to create /usr
+    # and run that, too.
+    postInstall = drv.postInstall or "" + ''
+      make install-mans "DESTDIR=$out" PREFIX=
+    '';
   }) (super.git-annex.override {
     dbus = if pkgs.stdenv.isLinux then self.dbus else null;
     fdo-notify = if pkgs.stdenv.isLinux then self.fdo-notify else null;
@@ -1082,7 +1103,7 @@ self: super: builtins.intersectAttrs super {
   rel8 = pkgs.lib.pipe super.rel8 [
     (addTestToolDepend pkgs.postgresql)
     # https://github.com/NixOS/nixpkgs/issues/198495
-    (overrideCabal { doCheck = pkgs.postgresql.doCheck; })
+    (dontCheckIf (!pkgs.postgresql.doCheck))
   ];
 
   # Wants running postgresql database accessible over ip, so postgresqlTestHook
@@ -1157,10 +1178,7 @@ self: super: builtins.intersectAttrs super {
 
   # Some hash implementations are x86 only, but part of the test suite.
   # So executing and building it on non-x86 platforms will always fail.
-  hashes = overrideCabal {
-    doCheck = with pkgs.stdenv; hostPlatform == buildPlatform
-      && buildPlatform.isx86;
-  } super.hashes;
+  hashes = dontCheckIf (!pkgs.stdenv.hostPlatform.isx86) super.hashes;
 
   # Tries to access network
   aws-sns-verify = dontCheck super.aws-sns-verify;
@@ -1198,11 +1216,9 @@ self: super: builtins.intersectAttrs super {
 
     {
       fourmolu = fourmoluTestFix super.fourmolu;
-      fourmolu_0_14_0_0 = fourmoluTestFix super.fourmolu_0_14_0_0;
       fourmolu_0_14_1_0 = fourmoluTestFix super.fourmolu_0_14_1_0;
     })
     fourmolu
-    fourmolu_0_14_0_0
     fourmolu_0_14_1_0
     ;
 
@@ -1339,6 +1355,10 @@ self: super: builtins.intersectAttrs super {
       webkit2gtk3-javascriptcore
       gi-webkit2
       gi-webkit2webextension
+      gi-gtk_4_0_8
+      gi-gdk_4_0_7
+      gi-gsk
+      gi-adwaita
       ;
 
   # Makes the mpi-hs package respect the choice of mpi implementation in Nixpkgs.
@@ -1360,4 +1380,12 @@ self: super: builtins.intersectAttrs super {
     mpi-hs-cereal
     mpi-hs-binary
     ;
+
+  postgresql-libpq = overrideCabal (drv: {
+    # Using use-pkg-config flag, because pg_config won't work when cross-compiling.
+    configureFlags = drv.configureFlags or [] ++ [ "-fuse-pkg-config" ];
+    # Move postgresql from SystemDepends to PkgconfigDepends
+    libraryPkgconfigDepends = drv.librarySystemDepends;
+    librarySystemDepends = [];
+  }) super.postgresql-libpq;
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix b/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix
index 1819b29da460..cda49e0f8752 100644
--- a/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix
@@ -27,10 +27,10 @@ in
 , buildFlags ? []
 , haddockFlags ? []
 , description ? null
-, doCheck ? !isCross && lib.versionOlder "7.4" ghc.version
+, doCheck ? !isCross
 , doBenchmark ? false
 , doHoogle ? true
-, doHaddockQuickjump ? doHoogle && lib.versionAtLeast ghc.version "8.6"
+, doHaddockQuickjump ? doHoogle
 , doInstallIntermediates ? false
 , editedCabalFile ? null
 , enableLibraryProfiling ? !(ghc.isGhcjs or false)
@@ -41,7 +41,7 @@ in
 , enableSharedLibraries ? !stdenv.hostPlatform.isStatic && (ghc.enableShared or false)
 , enableDeadCodeElimination ? (!stdenv.isDarwin)  # TODO: use -dead_strip for darwin
 , enableStaticLibraries ? !(stdenv.hostPlatform.isWindows or stdenv.hostPlatform.isWasm)
-, enableHsc2hsViaAsm ? stdenv.hostPlatform.isWindows && lib.versionAtLeast ghc.version "8.4"
+, enableHsc2hsViaAsm ? stdenv.hostPlatform.isWindows
 , extraLibraries ? [], librarySystemDepends ? [], executableSystemDepends ? []
 # On macOS, statically linking against system frameworks is not supported;
 # see https://developer.apple.com/library/content/qa/qa1118/_index.html
@@ -125,23 +125,17 @@ assert stdenv.hostPlatform.isWasm -> enableStaticLibraries == false;
 
 let
 
-  inherit (lib) optional optionals optionalString versionOlder versionAtLeast
+  inherit (lib) optional optionals optionalString versionAtLeast
                        concatStringsSep enableFeature optionalAttrs;
 
   isGhcjs = ghc.isGhcjs or false;
   isHaLVM = ghc.isHaLVM or false;
-  packageDbFlag = if isGhcjs || isHaLVM || versionOlder "7.6" ghc.version
-                  then "package-db"
-                  else "package-conf";
 
   # GHC used for building Setup.hs
   #
   # Same as our GHC, unless we're cross, in which case it is native GHC with the
   # same version, or ghcjs, in which case its the ghc used to build ghcjs.
   nativeGhc = buildHaskellPackages.ghc;
-  nativePackageDbFlag = if versionOlder "7.6" nativeGhc.version
-                        then "package-db"
-                        else "package-conf";
 
   # the target dir for haddock documentation
   docdir = docoutput: docoutput + "/share/doc/" + pname + "-" + version;
@@ -233,23 +227,20 @@ let
     (optionalString (enableSharedExecutables && stdenv.isDarwin) "--ghc-option=-optl=-Wl,-headerpad_max_install_names")
     (optionalString enableParallelBuilding "--ghc-options=${parallelBuildingFlags}")
     (optionalString useCpphs "--with-cpphs=${cpphs}/bin/cpphs --ghc-options=-cpp --ghc-options=-pgmP${cpphs}/bin/cpphs --ghc-options=-optP--cpp")
-    (enableFeature (enableDeadCodeElimination && !stdenv.hostPlatform.isAarch32 && !stdenv.hostPlatform.isAarch64 && (versionAtLeast "8.0.1" ghc.version)) "split-objs")
     (enableFeature enableLibraryProfiling "library-profiling")
-    (optionalString ((enableExecutableProfiling || enableLibraryProfiling) && versionOlder "8" ghc.version) "--profiling-detail=${profilingDetail}")
-    (enableFeature enableExecutableProfiling (if versionOlder ghc.version "8" then "executable-profiling" else "profiling"))
+    (optionalString (enableExecutableProfiling || enableLibraryProfiling) "--profiling-detail=${profilingDetail}")
+    (enableFeature enableExecutableProfiling "profiling")
     (enableFeature enableSharedLibraries "shared")
-    (optionalString (versionAtLeast ghc.version "7.10") (enableFeature doCoverage "coverage"))
-    (optionalString (versionOlder "8.4" ghc.version) (enableFeature enableStaticLibraries "static"))
-    (optionalString (isGhcjs || versionOlder "7.4" ghc.version) (enableFeature enableSharedExecutables "executable-dynamic"))
-    (optionalString (isGhcjs || versionOlder "7" ghc.version) (enableFeature doCheck "tests"))
+    (enableFeature doCoverage "coverage")
+    (enableFeature enableStaticLibraries "static")
+    (enableFeature enableSharedExecutables "executable-dynamic")
+    (enableFeature doCheck "tests")
     (enableFeature doBenchmark "benchmarks")
     "--enable-library-vanilla"  # TODO: Should this be configurable?
     (enableFeature enableLibraryForGhci "library-for-ghci")
-  ] ++ optionals (enableDeadCodeElimination && (lib.versionOlder "8.0.1" ghc.version)) [
-     "--ghc-option=-split-sections"
-  ] ++ optionals dontStrip [
-    "--disable-library-stripping"
-    "--disable-executable-stripping"
+    (enableFeature enableDeadCodeElimination "split-sections")
+    (enableFeature (!dontStrip) "library-stripping")
+    (enableFeature (!dontStrip) "executable-stripping")
   ] ++ optionals isGhcjs [
     "--ghcjs"
   ] ++ optionals isCross ([
@@ -264,7 +255,7 @@ let
   postPhases = optional doInstallIntermediates "installIntermediatesPhase";
 
   setupCompileFlags = [
-    (optionalString (!coreSetup) "-${nativePackageDbFlag}=$setupPackageConfDir")
+    (optionalString (!coreSetup) "-package-db=$setupPackageConfDir")
     (optionalString enableParallelBuilding parallelBuildingFlags)
     "-threaded"       # https://github.com/haskell/cabal/issues/2398
     "-rtsopts"        # allow us to pass RTS flags to the generated Setup executable
@@ -433,7 +424,7 @@ stdenv.mkDerivation ({
     for p in "''${pkgsBuildBuild[@]}" "''${pkgsBuildHost[@]}" "''${pkgsBuildTarget[@]}"; do
       ${buildPkgDb nativeGhc "$setupPackageConfDir"}
     done
-    ${nativeGhcCommand}-pkg --${nativePackageDbFlag}="$setupPackageConfDir" recache
+    ${nativeGhcCommand}-pkg --package-db="$setupPackageConfDir" recache
   ''
   # For normal components
   + ''
@@ -445,9 +436,6 @@ stdenv.mkDerivation ({
       if [ -d "$p/lib" ]; then
         configureFlags+=" --extra-lib-dirs=$p/lib"
       fi
-    ''
-    # It is not clear why --extra-framework-dirs does work fine on Linux
-    + optionalString (!stdenv.buildPlatform.isDarwin || versionAtLeast nativeGhc.version "8.0") ''
       if [[ -d "$p/Library/Frameworks" ]]; then
         configureFlags+=" --extra-framework-dirs=$p/Library/Frameworks"
       fi
@@ -490,7 +478,7 @@ stdenv.mkDerivation ({
       sed -i "s,dynamic-library-dirs: .*,dynamic-library-dirs: $dynamicLinksDir," "$f"
     done
   '') + ''
-    ${ghcCommand}-pkg --${packageDbFlag}="$packageConfDir" recache
+    ${ghcCommand}-pkg --package-db="$packageConfDir" recache
 
     runHook postSetupCompilerEnvironment
   '';
@@ -622,11 +610,6 @@ stdenv.mkDerivation ({
       done
     ''}
     ${optionalString doCoverage "mkdir -p $out/share && cp -r dist/hpc $out/share"}
-    ${optionalString (enableSharedExecutables && isExecutable && !isGhcjs && stdenv.isDarwin && lib.versionOlder ghc.version "7.10") ''
-      for exe in "${binDir}/"* ; do
-        install_name_tool -add_rpath "$out/${ghcLibdir}/${pname}-${version}" "$exe"
-      done
-    ''}
 
     ${optionalString enableSeparateDocOutput ''
     for x in ${docdir "$doc"}"/html/src/"*.html; do
@@ -817,12 +800,5 @@ stdenv.mkDerivation ({
 // lib.optionalAttrs (stdenv.hasCC && stdenv.cc.isClang) {
   NIX_CFLAGS_COMPILE = "-Wno-error=int-conversion";
 }
-
-# Ensure libc++abi is linked even when clang is invoked as just `clang` or `cc`.
-# Works around https://github.com/NixOS/nixpkgs/issues/166205.
-# This can be dropped once a fix has been committed to cc-wrapper.
-// lib.optionalAttrs (stdenv.hasCC && stdenv.cc.isClang && stdenv.cc.libcxx != null) {
-  NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-}
 )
 )
diff --git a/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix b/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
index 5feb1a002585..03301c25a7da 100644
--- a/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
@@ -824,6 +824,8 @@ self: {
        pname = "Agda";
        version = "2.6.4.1";
        sha256 = "106hrg4kpqslddl054jsd9xn2i3159psc60mfnj1xj2h7jdql913";
+       revision = "2";
+       editedCabalFile = "156l2w391jsff6q9xg2zgk6q3aanbcvqkzvmmk2r5f4vkkd1bjgk";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -1172,8 +1174,8 @@ self: {
      }:
      mkDerivation {
        pname = "AsyncRattus";
-       version = "0.1.0.3";
-       sha256 = "19f915akipzx94qvd5p6dm2wvr6l07fl1qgql2xz0m8axbl6083r";
+       version = "0.2";
+       sha256 = "08ags0nyhxfya4f29f8ksjylaf1b595k4n606xy927q5kx9f0bqj";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          base containers ghc ghc-boot hashtables simple-affine-space
@@ -1307,6 +1309,8 @@ self: {
        pname = "BCMtools";
        version = "0.1.1";
        sha256 = "1693kg8hxr1jl8h0ri11dbrbyhyznipkvcp0cvvx9chn97761ys4";
+       revision = "1";
+       editedCabalFile = "0iwzbryjjwrm7qjksydhga43x9qi1cahzlln3fgz13pfdr14lkxf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -2426,6 +2430,8 @@ self: {
        libraryHaskellDepends = [ base mtl ];
        description = "Delimited continuations and dynamically scoped variables";
        license = "unknown";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "CC-delcont-alt" = callPackage
@@ -2643,7 +2649,9 @@ self: {
        ];
        description = "An interpreter of Hagino's Categorical Programming Language (CPL)";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "cpl";
+       broken = true;
      }) {};
 
   "CSPM-CoreLanguage" = callPackage
@@ -2861,6 +2869,8 @@ self: {
        pname = "Cabal";
        version = "3.10.2.1";
        sha256 = "0jgm3q9dl6lrczwcc0mzqfqwxwdnk2m2lr6zkhygn2w982c651w8";
+       revision = "1";
+       editedCabalFile = "0ckflq94cjh8dqxxf9m9j1k7k38qlmkp5ja9w964c60cghycfz0g";
        setupHaskellDepends = [ mtl parsec ];
        libraryHaskellDepends = [
          array base bytestring Cabal-syntax containers deepseq directory
@@ -2940,6 +2950,8 @@ self: {
        pname = "Cabal-syntax";
        version = "3.10.2.0";
        sha256 = "0j2j4r93rjidrgfjgwfm25l369yq3zklcqvgq4891k9ik98irkvs";
+       revision = "1";
+       editedCabalFile = "05kwy3nvl9g628bvrihghl3gx248afilp8q5k0jjda332zb5n8xj";
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
          mtl parsec pretty text time transformers unix
@@ -3260,8 +3272,8 @@ self: {
        pname = "ChasingBottoms";
        version = "1.3.1.12";
        sha256 = "1vy9yq07p95qiap1pcp2bbbn1mqvp3spyrswpdz0qfcn06656650";
-       revision = "2";
-       editedCabalFile = "12sdz0xdifdl9gaz8nc7smdv6ldjzg423i5r5cw8myshh8s63rga";
+       revision = "3";
+       editedCabalFile = "0qkmazdz559fkn06ghmykwirl4inq3221c7y0gkacq33ax4080hp";
        libraryHaskellDepends = [
          base containers mtl QuickCheck random syb
        ];
@@ -3272,6 +3284,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "ChasingBottoms_1_3_1_13" = callPackage
+    ({ mkDerivation, array, base, containers, mtl, QuickCheck, random
+     , syb
+     }:
+     mkDerivation {
+       pname = "ChasingBottoms";
+       version = "1.3.1.13";
+       sha256 = "1kpzvx7dwzsw4jj4r4sk0vdhj0kcsfflkbq3acvp2wyvlq343as6";
+       libraryHaskellDepends = [
+         base containers mtl QuickCheck random syb
+       ];
+       testHaskellDepends = [
+         array base containers mtl QuickCheck random syb
+       ];
+       description = "For testing partial and infinite values";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "CheatSheet" = callPackage
     ({ mkDerivation, base, containers, directory }:
      mkDerivation {
@@ -3500,6 +3531,7 @@ self: {
        benchmarkHaskellDepends = [ base colour criterion deepseq random ];
        description = "Color spaces and conversions between them";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Combinatorrent" = callPackage
@@ -3985,6 +4017,8 @@ self: {
        testHaskellDepends = [ base HUnit pretty QuickCheck ];
        description = "Common Cryptographic Algorithms in Pure Haskell";
        license = "BSD-3-Clause AND GPL-2.0-or-later";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "CurryDB" = callPackage
@@ -5349,28 +5383,24 @@ self: {
      }) {};
 
   "EdisonAPI" = callPackage
-    ({ mkDerivation, base, mtl }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "EdisonAPI";
-       version = "1.3.3";
-       sha256 = "0lq4yfnwlgcd6igccfb7182y1zmflr6zf5fqf786h4lw7s4aznry";
-       libraryHaskellDepends = [ base mtl ];
+       version = "1.3.3.1";
+       sha256 = "0ggn5rqr9mrsfm099k22lkrs7fnw4211xxsv7i6mmz0krm8gmxiq";
+       libraryHaskellDepends = [ base ];
        description = "A library of efficient, purely-functional data structures (API)";
        license = lib.licenses.mit;
      }) {};
 
   "EdisonCore" = callPackage
-    ({ mkDerivation, array, base, containers, EdisonAPI, mtl
-     , QuickCheck
-     }:
+    ({ mkDerivation, array, base, containers, EdisonAPI, QuickCheck }:
      mkDerivation {
        pname = "EdisonCore";
-       version = "1.3.3";
-       sha256 = "128y1myk517vmv7md0gq91wrdhyif2ki74hydlx3ls3f4xbzjhl4";
-       revision = "1";
-       editedCabalFile = "0zgy59mdjnrd7m3cgdw2yn45dya8qg7sgi96hwfz4q5vjp7az24m";
+       version = "1.3.3.1";
+       sha256 = "1x43y9ih5i4w5n2kwiiid0gffv0z6j0ns7x5hpn2k51zax9wqjkb";
        libraryHaskellDepends = [
-         array base containers EdisonAPI mtl QuickCheck
+         array base containers EdisonAPI QuickCheck
        ];
        description = "A library of efficient, purely-functional data structures (Core Implementations)";
        license = lib.licenses.mit;
@@ -5522,6 +5552,8 @@ self: {
        executableHaskellDepends = [ base Cabal containers mtl ];
        description = "Encoding character data";
        license = "GPL";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "EntrezHTTP" = callPackage
@@ -5970,12 +6002,16 @@ self: {
        pname = "FULE";
        version = "0.3.0";
        sha256 = "1ir8kq8mndvbm99jm9wdd967b3424i4cpj5m56qd1052xi47q8vl";
+       revision = "1";
+       editedCabalFile = "17klcqdfrszks3ld4vbjxm5q88y0x33q783qvry9gyych6qdj89r";
        libraryHaskellDepends = [
          base containers deepseq mtl transformers
        ];
        testHaskellDepends = [ base containers deepseq mtl transformers ];
        description = "Functional UI Layout Engine";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "Facebook-Password-Hacker-Online-Latest-Version" = callPackage
@@ -6213,6 +6249,8 @@ self: {
        ];
        description = "Functions on System.FilePath";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "FileSystem" = callPackage
@@ -6320,8 +6358,8 @@ self: {
      }:
      mkDerivation {
        pname = "FiniteCategories";
-       version = "0.5.0.0";
-       sha256 = "022cli3n96389dkcff85kbg95a2v4zmr66pmv36g1pjxvgsr6ffn";
+       version = "0.6.3.0";
+       sha256 = "0kwfv6hvxi4mk4jxbpa7laxjfxfjxgxvbpfpc5alv43n7rijhvw3";
        libraryHaskellDepends = [
          base containers directory filepath random text WeakSets
        ];
@@ -6998,8 +7036,8 @@ self: {
      }:
      mkDerivation {
        pname = "GLFW-b";
-       version = "3.3.0.0";
-       sha256 = "1xh6nnm4c7bjvbr62rw7vv86p0r76vrqhdbm89vmcs51jk92yxv4";
+       version = "3.3.9.0";
+       sha256 = "12n75mh0szw43y1fqsf95cbwvqy9gmmq7h3lii7gs02mv45fysrc";
        libraryHaskellDepends = [ array base bindings-GLFW deepseq ];
        testHaskellDepends = [
          array base bindings-GLFW deepseq HUnit test-framework
@@ -7117,8 +7155,8 @@ self: {
        pname = "GLUT";
        version = "2.7.0.16";
        sha256 = "0vdkfj4wjzigdpzgr5l001y9wkhwgl00mclr26gf93kps14fkymn";
-       revision = "1";
-       editedCabalFile = "0y8lif1xq62ca3w3cf56z2b37nz2yzr3s6r9q8q24gyxl60yvsl9";
+       revision = "2";
+       editedCabalFile = "17vwn7v1ia98q4kwnac1qlk4gxw6pg2mr9av6gw4a7mymjccdmra";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -8587,6 +8625,8 @@ self: {
        pname = "HGL";
        version = "3.2.3.2";
        sha256 = "087k8i0bha3mzpqa3z3c6npl5vmccg7xcwl28lbv0yzbvj1qkg38";
+       revision = "1";
+       editedCabalFile = "12m6x0li99xsyil80wcz6a5ijd1fwmafbg8zmsngn66y1qlnplpn";
        libraryHaskellDepends = [ array base stm X11 ];
        description = "A simple graphics library based on X11 or Win32";
        license = lib.licenses.bsd3;
@@ -9208,6 +9248,8 @@ self: {
        ];
        description = "Markov-generated sequences";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "HMock" = callPackage
@@ -9673,6 +9715,8 @@ self: {
        ];
        description = "Library to mix shell scripting with Haskell programs";
        license = "LGPL";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "HSHHelpers" = callPackage
@@ -9812,13 +9856,25 @@ self: {
     ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "HSvm";
-       version = "0.1.1.3.25";
-       sha256 = "1n97frz0hbc85wlyflihnj9w5hvg7x4cbawqjimr12zlsqh26iag";
+       version = "0.1.2.3.32";
+       sha256 = "1gz67dw2px9ys93xl152cv75f8237qal9wqnzwr624qm44xp4c0d";
        libraryHaskellDepends = [ base containers ];
        description = "Haskell Bindings for libsvm";
        license = lib.licenses.bsd3;
      }) {};
 
+  "HSvm_1_0_3_32" = callPackage
+    ({ mkDerivation, base, containers }:
+     mkDerivation {
+       pname = "HSvm";
+       version = "1.0.3.32";
+       sha256 = "1azbvnq13js2k3mvkmhdp9pjibkshyjigsc9krl9v26gkicmz47y";
+       libraryHaskellDepends = [ base containers ];
+       description = "Haskell Bindings for libsvm";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "HTF" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, array, base
      , base64-bytestring, bytestring, Cabal, containers, cpphs, Diff
@@ -10674,6 +10730,7 @@ self: {
        ];
        description = "Helpers to connect to SSL/TLS mail servers with HaskellNet";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "HaskellTorrent" = callPackage
@@ -11603,6 +11660,21 @@ self: {
        mainProgram = "Hydrogen-exe";
      }) {};
 
+  "HyloDP" = callPackage
+    ({ mkDerivation, base, containers, hspec, MemoTrie }:
+     mkDerivation {
+       pname = "HyloDP";
+       version = "1.0.0";
+       sha256 = "0bkjzv4nhhc9d1yhh8d67dfm6y6rdqmizalds673iiw350yxizdg";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base MemoTrie ];
+       executableHaskellDepends = [ base containers MemoTrie ];
+       testHaskellDepends = [ base containers hspec MemoTrie ];
+       description = "A package for solving dynamic programming problems in Haskell";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "I1M" = callPackage
     ({ mkDerivation, array, base, QuickCheck, tasty, tasty-hunit
      , tasty-quickcheck
@@ -11721,8 +11793,8 @@ self: {
      }:
      mkDerivation {
        pname = "IPv6Addr";
-       version = "2.0.5.1";
-       sha256 = "1w0chaq6nf6xbvfgfwbjw4vm695nbpsr5hqcx927i2kvxr956dp7";
+       version = "2.0.6";
+       sha256 = "162qi2jczpxwyv0y4r9zkyr6hkdy8k38nmy9db0pa1dm48xfsd4p";
        libraryHaskellDepends = [
          aeson attoparsec base iproute network network-info random text
        ];
@@ -12364,7 +12436,6 @@ self: {
        ];
        description = "Convenience functions to obtain array representations of images";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "JuicyPixels-scale-dct" = callPackage
@@ -13266,6 +13337,8 @@ self: {
        ];
        description = "Bindings to libzip, a library for manipulating zip archives";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "Limit" = callPackage
@@ -14134,16 +14207,18 @@ self: {
 
   "MicroHs" = callPackage
     ({ mkDerivation, base, containers, deepseq, directory, ghc-prim
-     , mtl, pretty, process, time
+     , haskeline, mtl, pretty, process, time
      }:
      mkDerivation {
        pname = "MicroHs";
-       version = "0.8.5.0";
-       sha256 = "0l9rwzpia71f2m9mmfklyihhmpc5dk6kc02bq0nsrmd14i9ldip2";
+       version = "0.9.5.0";
+       sha256 = "08pkxmvx0dkcgsy1b8n0lrc0dcjgxfx789wqiiy2cmhnnhqr0vip";
        isLibrary = false;
        isExecutable = true;
+       enableSeparateDataOutput = true;
        executableHaskellDepends = [
-         base containers deepseq directory ghc-prim mtl pretty process time
+         base containers deepseq directory ghc-prim haskeline mtl pretty
+         process time
        ];
        description = "A compiler for a subset of Haskell";
        license = lib.licenses.asl20;
@@ -14366,6 +14441,8 @@ self: {
        ];
        description = "Monad-transformer compatible version of the Control.Exception module";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "MonadCatchIO-transformers-foreign" = callPackage
@@ -15025,8 +15102,8 @@ self: {
      }:
      mkDerivation {
        pname = "NanoID";
-       version = "3.4.0";
-       sha256 = "0j2z1rb6jny4kpn43d7pp1kdj1djpmai95k6glhydb9ls7k9zpc0";
+       version = "3.4.0.1";
+       sha256 = "1g32iiwrs2fhf7l4sjc2l0s51yc3a102scvbwq1ip7532bvmwy23";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -15235,6 +15312,7 @@ self: {
        ];
        description = "High-level abstraction over 9P protocol";
        license = "unknown";
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "NewBinary" = callPackage
@@ -15816,9 +15894,7 @@ self: {
      }) {};
 
   "OneTuple" = callPackage
-    ({ mkDerivation, base, foldable1-classes-compat, ghc-prim, hashable
-     , template-haskell
-     }:
+    ({ mkDerivation, base, ghc-prim, hashable, template-haskell }:
      mkDerivation {
        pname = "OneTuple";
        version = "0.4.1.1";
@@ -15826,9 +15902,7 @@ self: {
        revision = "1";
        editedCabalFile = "10p6wvv3z8xp2zgai9ay2dnzp8zzry5mglr61sgzp1i02znzsbb3";
        libraryHaskellDepends = [ base ghc-prim template-haskell ];
-       testHaskellDepends = [
-         base foldable1-classes-compat hashable template-haskell
-       ];
+       testHaskellDepends = [ base hashable template-haskell ];
        description = "Singleton Tuple";
        license = lib.licenses.bsd3;
      }) {};
@@ -15955,8 +16029,8 @@ self: {
        pname = "OpenGL";
        version = "3.0.3.0";
        sha256 = "069fg8jcxqq2z9iikynd8vi3jxm2b5y3qywdh4bdviyzab3zy1as";
-       revision = "2";
-       editedCabalFile = "1nhlswxgxn8l1ysjq3fp3w5pvx6651d33036i8dlbqygzrn6iwmh";
+       revision = "3";
+       editedCabalFile = "0fa64dn7wyxvi7vbz7lha64v9ld3xn2mqd3xlhm9rknhkzh3vbm9";
        libraryHaskellDepends = [
          base bytestring containers GLURaw ObjectName OpenGLRaw StateVar
          text transformers
@@ -15987,8 +16061,8 @@ self: {
        pname = "OpenGLRaw";
        version = "3.3.4.1";
        sha256 = "07nk0rgm6jcxz6yshwhv5lj5frs6371w3hdjxwa4biws2kmbs6hj";
-       revision = "1";
-       editedCabalFile = "15abvqkxc08lx9d44323izccfp7bqfiljnd587zn80vdvmkzs6zc";
+       revision = "2";
+       editedCabalFile = "1wrkv4ll7iag0a1liw6jqffhqg2nbfpdg1sa9dy88n9jli1jmikd";
        libraryHaskellDepends = [
          base bytestring containers fixed half text transformers
        ];
@@ -17431,6 +17505,7 @@ self: {
        description = "Quick and easy data visualization with Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "Quickson" = callPackage
@@ -18723,10 +18798,8 @@ self: {
      }:
      mkDerivation {
        pname = "STMonadTrans";
-       version = "0.4.7";
-       sha256 = "1x83f48wbzx6rzbls6h8walfayzdv4j3j1mqbk8lfnkdqff9ri5d";
-       revision = "1";
-       editedCabalFile = "01zfv7jdqf8wfmgxx2gdb1nik93iqvkmblrd18py5hy5mpbxp9dy";
+       version = "0.4.8";
+       sha256 = "0ldqsl5axz1xlzha4b58kzpf35nr81ki3psy91zx7lpiv4agz7l3";
        libraryHaskellDepends = [ array base mtl transformers ];
        testHaskellDepends = [
          array base tasty tasty-hunit tasty-quickcheck transformers
@@ -19732,28 +19805,6 @@ self: {
      }:
      mkDerivation {
        pname = "Sit";
-       version = "0.2022.3.18";
-       sha256 = "03q784w5wf8rvc173skh1cmdsvw5450cxc9jymqs23xv9wyp8b4z";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         array base containers data-lens-light mtl
-       ];
-       libraryToolDepends = [ alex happy ];
-       executableHaskellDepends = [ base ];
-       testHaskellDepends = [ base ];
-       description = "Prototypical type checker for Type Theory with Sized Natural Numbers";
-       license = "unknown";
-       mainProgram = "Sit.bin";
-     }) {};
-
-  "Sit_0_2023_8_3" = callPackage
-    ({ mkDerivation, alex, array, base, containers, data-lens-light
-     , happy, mtl
-     }:
-     mkDerivation {
-       pname = "Sit";
        version = "0.2023.8.3";
        sha256 = "1psmfgh1bklx52az1097n23nzfjnab002dcqrq140jqhnpfw7ynr";
        isLibrary = true;
@@ -19767,7 +19818,6 @@ self: {
        testHaskellDepends = [ base ];
        description = "Prototypical type checker for Type Theory with Sized Natural Numbers";
        license = "unknown";
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "Sit.bin";
      }) {};
 
@@ -20090,6 +20140,7 @@ self: {
        ];
        description = "Another Haskell web framework for rapid development";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Spock-api" = callPackage
@@ -20129,6 +20180,7 @@ self: {
        libraryHaskellDepends = [ base hvect mtl Spock-api Spock-core ];
        description = "Another Haskell web framework for rapid development";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Spock-auth" = callPackage
@@ -20172,6 +20224,8 @@ self: {
        ];
        description = "Another Haskell web framework for rapid development";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "Spock-digestive" = callPackage
@@ -20188,6 +20242,7 @@ self: {
        ];
        description = "Digestive functors support for Spock";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Spock-lucid" = callPackage
@@ -20199,6 +20254,7 @@ self: {
        libraryHaskellDepends = [ base lucid Spock transformers ];
        description = "Lucid support for Spock";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Spock-worker" = callPackage
@@ -20216,6 +20272,7 @@ self: {
        testHaskellDepends = [ base containers HTF stm vector ];
        description = "Background workers for Spock";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "SpreadsheetML" = callPackage
@@ -20798,7 +20855,9 @@ self: {
        ];
        description = "Tahin Password Generator";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "tahin";
+       broken = true;
      }) {};
 
   "Tainted" = callPackage
@@ -20810,6 +20869,8 @@ self: {
        libraryHaskellDepends = [ base mtl ];
        description = "Tainted type, and associated operations";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "Takusen" = callPackage
@@ -21597,10 +21658,8 @@ self: {
      }:
      mkDerivation {
        pname = "Unixutils";
-       version = "1.54.2";
-       sha256 = "040wj8mr2k7spwns3vnadcgynqq4h7zy3lf62lvx7gasjmaj5m4w";
-       revision = "1";
-       editedCabalFile = "1rhr1isy8vq8ys29p4hcjh889dpfandqm2q5zcxyw4szl068jqc0";
+       version = "1.54.3";
+       sha256 = "1if3nv74gil9l06ra7q6is7z4xx1llg8gc9qvgjbg4pbzib55j6w";
        libraryHaskellDepends = [
          base bytestring directory exceptions filepath mtl process
          process-extras pureMD5 regex-tdfa unix zlib
@@ -21753,6 +21812,8 @@ self: {
        libraryHaskellDepends = [ base parsec ];
        description = "A Valve Value-keyvalue parser for Haskell made with Parsec";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "Vec" = callPackage
@@ -22334,10 +22395,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "Win32";
-       version = "2.13.4.0";
-       sha256 = "1nm8nx595cndbni2arbg0q27k5ghdsgzg2nvp711f6ah9svk0iji";
-       revision = "1";
-       editedCabalFile = "16bxm73r4q94vk3040xh81lsmh76dgwgazmpqxdal565a789j4ka";
+       version = "2.14.0.0";
+       sha256 = "1rb65bhma4dhs6gprr3k195fysx56k89s3v5cdhj2wghb3dwv7ag";
        description = "A binding to Windows Win32 API";
        license = lib.licenses.bsd3;
        platforms = lib.platforms.windows;
@@ -22607,6 +22666,35 @@ self: {
        broken = true;
      }) {};
 
+  "WringTwistree" = callPackage
+    ({ mkDerivation, arithmoi, array, base, bytestring, containers
+     , deepseq, mod, multiarg, parallel, sort, split, tasty, tasty-hunit
+     , tasty-quickcheck, utf8-string, vector
+     }:
+     mkDerivation {
+       pname = "WringTwistree";
+       version = "0.0.1.1";
+       sha256 = "10hbg89y1bs4b8nmw3v5amffgmjmija89c639mk9g8hs3zddgb53";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         arithmoi array base bytestring containers mod parallel split
+         utf8-string vector
+       ];
+       executableHaskellDepends = [
+         arithmoi array base bytestring containers deepseq multiarg parallel
+         sort split utf8-string vector
+       ];
+       testHaskellDepends = [
+         array base bytestring containers tasty tasty-hunit tasty-quickcheck
+         utf8-string vector
+       ];
+       description = "Whole-message cipher and tree hash";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "WringTwistree";
+     }) {};
+
   "WxGeneric" = callPackage
     ({ mkDerivation, base, containers, mtl, SybWidget, wx, wxcore, xtc
      }:
@@ -23031,6 +23119,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "Yampa_0_14_7" = callPackage
+    ({ mkDerivation, base, criterion, deepseq, filepath, random
+     , simple-affine-space, time
+     }:
+     mkDerivation {
+       pname = "Yampa";
+       version = "0.14.7";
+       sha256 = "0y9aagh532xdp2qq5xfk8qzf326pjs5x3lvrfby2d2qbbh724nav";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base deepseq random simple-affine-space
+       ];
+       benchmarkHaskellDepends = [ base criterion filepath time ];
+       description = "Elegant Functional Reactive Programming Language for Hybrid Systems";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "Yampa-core" = callPackage
     ({ mkDerivation, base, deepseq, random, vector-space }:
      mkDerivation {
@@ -24946,6 +25053,8 @@ self: {
        libraryHaskellDepends = [ base mtl ];
        description = "A Haskell port of the C/PHP strtok function";
        license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "acme-this" = callPackage
@@ -25044,8 +25153,8 @@ self: {
     ({ mkDerivation, base, mtl, transformers }:
      mkDerivation {
        pname = "acquire";
-       version = "0.3.4";
-       sha256 = "1sf35mmf1dsl6ridzcrs1fajrjd9ic60fbx2356iggm2sn5bi7k5";
+       version = "0.3.5";
+       sha256 = "1xxr94rnywg7mnf6fq9gbvakglnr1qbyjgvclrsrifjmzmdpbr9p";
        libraryHaskellDepends = [ base mtl transformers ];
        description = "Abstraction over management of resources";
        license = lib.licenses.mit;
@@ -25189,10 +25298,8 @@ self: {
      }:
      mkDerivation {
        pname = "ad";
-       version = "4.5.4";
-       sha256 = "034n4zabzbbxc8bbc6drc0pam0cn12ijad0z2i3gdcqqn93bcap1";
-       revision = "1";
-       editedCabalFile = "1ngiimld502c4lhp5fba5lbcv007kqhwipmrk1918rdj722hxkvg";
+       version = "4.5.5";
+       sha256 = "15sncm5rm2aryyyngwjqadx6czjgbjlw4ksx5w5jrfr02rs2yrbq";
        libraryHaskellDepends = [
          adjunctions array base comonad containers data-reify erf free nats
          reflection semigroups transformers
@@ -25204,17 +25311,6 @@ self: {
      }) {};
 
   "ad-delcont" = callPackage
-    ({ mkDerivation, base, transformers }:
-     mkDerivation {
-       pname = "ad-delcont";
-       version = "0.3.0.0";
-       sha256 = "1gdnvl4f4m95jp2p2wdival48d3j4ymizxwp9phf0f698baxs28k";
-       libraryHaskellDepends = [ base transformers ];
-       description = "Reverse-mode automatic differentiation with delimited continuations";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "ad-delcont_0_5_0_0" = callPackage
     ({ mkDerivation, ad, base, hspec, transformers }:
      mkDerivation {
        pname = "ad-delcont";
@@ -25224,7 +25320,6 @@ self: {
        testHaskellDepends = [ ad base hspec ];
        description = "Reverse-mode automatic differentiation with delimited continuations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "adaptive-containers" = callPackage
@@ -25287,8 +25382,8 @@ self: {
      }:
      mkDerivation {
        pname = "adblock2privoxy";
-       version = "2.1.1";
-       sha256 = "0vax5x1d2lf10fdrbp11n5gg0gp6qbsshrdm12f6smv8vw4sk5nv";
+       version = "2.2.0";
+       sha256 = "0r7cr20bnasw0wmxpjl1v35qva9lijxmd99xdj55092fkqkxfbwr";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -25372,6 +25467,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Manage fine grained fixtures";
        license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "adhoc-network" = callPackage
@@ -25833,6 +25930,8 @@ self: {
        ];
        description = "Better error messages when decoding JSON values";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "aeson-bson" = callPackage
@@ -25881,17 +25980,18 @@ self: {
      }) {};
 
   "aeson-combinators" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, criterion
-     , deepseq, fail, hspec, scientific, text, time, time-compat
-     , unordered-containers, utf8-string, uuid-types, vector, void
+    ({ mkDerivation, aeson, attoparsec-aeson, base, bytestring
+     , containers, criterion, deepseq, fail, hspec, scientific, text
+     , time, time-compat, unordered-containers, utf8-string, uuid-types
+     , vector, void
      }:
      mkDerivation {
        pname = "aeson-combinators";
-       version = "0.1.1.0";
-       sha256 = "09cig73947z1z76m572s2cs8kjz6lj3h923rcpmysi36f8hn8q9f";
+       version = "0.1.2.1";
+       sha256 = "10r3k8hi0rcvpi2868m4282zrnn57q7gj25ldhkja7mvz199wddz";
        libraryHaskellDepends = [
-         aeson base bytestring containers fail scientific text time
-         time-compat unordered-containers uuid-types vector void
+         aeson attoparsec-aeson base bytestring containers fail scientific
+         text time time-compat unordered-containers uuid-types vector void
        ];
        testHaskellDepends = [
          aeson base bytestring hspec text utf8-string
@@ -26078,30 +26178,6 @@ self: {
      }) {};
 
   "aeson-extra" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, base-compat-batteries
-     , bytestring, containers, deepseq, quickcheck-instances
-     , recursion-schemes, scientific, semialign, tasty, tasty-hunit
-     , tasty-quickcheck, template-haskell, text, these
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "aeson-extra";
-       version = "0.5.1.2";
-       sha256 = "1slrwcnr0zmhxk8vjf1vpadrcch0gc7gssxanw5s6bqiih5kzxfi";
-       libraryHaskellDepends = [
-         aeson attoparsec base base-compat-batteries bytestring deepseq
-         recursion-schemes scientific semialign template-haskell text these
-         unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson base base-compat-batteries containers quickcheck-instances
-         tasty tasty-hunit tasty-quickcheck unordered-containers vector
-       ];
-       description = "Extra goodies for aeson";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "aeson-extra_0_5_1_3" = callPackage
     ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base
      , base-compat-batteries, bytestring, containers, deepseq
      , quickcheck-instances, recursion-schemes, scientific, semialign
@@ -26125,7 +26201,6 @@ self: {
        ];
        description = "Extra goodies for aeson";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "aeson-filthy" = callPackage
@@ -26464,6 +26539,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "aeson-possible" = callPackage
+    ({ mkDerivation, aeson, base, QuickCheck, tasty, tasty-hunit
+     , tasty-quickcheck, tasty-quickcheck-laws
+     }:
+     mkDerivation {
+       pname = "aeson-possible";
+       version = "0.1.0.0";
+       sha256 = "0m360yvah04d7wi9g50r4bg7g3m86z47l7x09dk2rbdzwfzdzn15";
+       libraryHaskellDepends = [ aeson base ];
+       testHaskellDepends = [
+         aeson base QuickCheck tasty tasty-hunit tasty-quickcheck
+         tasty-quickcheck-laws
+       ];
+       description = "Possible values for aeson";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "aeson-prefix" = callPackage
     ({ mkDerivation, aeson, base, bytestring, hspec, mtl, text
      , unordered-containers, vector
@@ -26483,30 +26577,6 @@ self: {
      }) {};
 
   "aeson-pretty" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, base-compat, bytestring
-     , cmdargs, scientific, text, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "aeson-pretty";
-       version = "0.8.9";
-       sha256 = "021az9az6xik9c9s3rnar5fr1lgy2h3igibf5ixnc7ps3m2lzg2x";
-       revision = "2";
-       editedCabalFile = "1895w56jl4c06wfhv5zf8ayqpzkxgva2rz5xxz8fvfdiza781cgp";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base base-compat bytestring scientific text
-         unordered-containers vector
-       ];
-       executableHaskellDepends = [
-         aeson attoparsec base bytestring cmdargs
-       ];
-       description = "JSON pretty-printing library and command-line tool";
-       license = lib.licenses.bsd3;
-       mainProgram = "aeson-pretty";
-     }) {};
-
-  "aeson-pretty_0_8_10" = callPackage
     ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base
      , base-compat, bytestring, cmdargs, scientific, text
      , unordered-containers, vector
@@ -26526,7 +26596,6 @@ self: {
        ];
        description = "JSON pretty-printing library and command-line tool";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "aeson-pretty";
      }) {};
 
@@ -26623,21 +26692,21 @@ self: {
 
   "aeson-schemas" = callPackage
     ({ mkDerivation, aeson, aeson-qq, base, criterion, deepseq
-     , directory, filepath, first-class-families, hashable, interpolate
+     , filepath, first-class-families, hashable, hint, interpolate
      , megaparsec, process, QuickCheck, raw-strings-qq, tasty
      , tasty-golden, tasty-hunit, tasty-quickcheck, template-haskell
      , temporary, text, th-orphans, th-test-utils, unordered-containers
      }:
      mkDerivation {
        pname = "aeson-schemas";
-       version = "1.4.1.0";
-       sha256 = "0l9qdzcx6fs661zn9vrkpflr5fl92s1w16nb94cabh8v1xzbagxh";
+       version = "1.4.2.1";
+       sha256 = "1rsbkav2c76g6b2cbhjwhlhnwz0w9fwiq1bf2cbikgbrabbi9h7c";
        libraryHaskellDepends = [
          aeson base first-class-families hashable megaparsec
          template-haskell text unordered-containers
        ];
        testHaskellDepends = [
-         aeson aeson-qq base deepseq directory filepath interpolate process
+         aeson aeson-qq base deepseq filepath hint interpolate process
          QuickCheck raw-strings-qq tasty tasty-golden tasty-hunit
          tasty-quickcheck template-haskell temporary text th-orphans
          th-test-utils
@@ -26768,8 +26837,32 @@ self: {
      }:
      mkDerivation {
        pname = "aeson-typescript";
-       version = "0.6.1.0";
-       sha256 = "1ylxh4fbx01rwv1ipk1a6yfziwp1v3hy9wmpbml0s9613bwqxdvl";
+       version = "0.6.2.0";
+       sha256 = "14lya37640qrsz792xcpm21r7pixfxs72kq19165zjwcg4vv2v4n";
+       libraryHaskellDepends = [
+         aeson base bytestring containers mtl string-interpolate
+         template-haskell text th-abstraction transformers
+         unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers directory filepath hspec mtl
+         process string-interpolate template-haskell temporary text
+         th-abstraction transformers unordered-containers
+       ];
+       description = "Generate TypeScript definition files from your ADTs";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "aeson-typescript_0_6_3_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, directory
+     , filepath, hspec, mtl, process, string-interpolate
+     , template-haskell, temporary, text, th-abstraction, transformers
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "aeson-typescript";
+       version = "0.6.3.0";
+       sha256 = "1bmhjl10adms07l2fg7qpjr3qsqdbwdfmj5psh6vi5s13w0sjxz9";
        libraryHaskellDepends = [
          aeson base bytestring containers mtl string-interpolate
          template-haskell text th-abstraction transformers
@@ -26782,6 +26875,7 @@ self: {
        ];
        description = "Generate TypeScript definition files from your ADTs";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "aeson-unqualified-ast" = callPackage
@@ -27003,6 +27097,7 @@ self: {
        ];
        description = "Anti-forensic Information Splitter";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "afv" = callPackage
@@ -27674,6 +27769,8 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "OpenAL 1.1 raw API.";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) openal;};
 
   "alarmclock" = callPackage
@@ -27749,8 +27846,8 @@ self: {
      }:
      mkDerivation {
        pname = "alex";
-       version = "3.3.0.0";
-       sha256 = "0qws6axn8a9iijhy6x8j3hjvm80sgw6ndxqhp9yc71vbxa2qw3w1";
+       version = "3.4.0.1";
+       sha256 = "0dlz0izzawy1x9p2xpfblkma7w20f280r44h67kfggclx3yfcf2c";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -27762,13 +27859,13 @@ self: {
        mainProgram = "alex";
      }) {};
 
-  "alex_3_4_0_1" = callPackage
+  "alex_3_5_0_0" = callPackage
     ({ mkDerivation, array, base, containers, directory, happy, process
      }:
      mkDerivation {
        pname = "alex";
-       version = "3.4.0.1";
-       sha256 = "0dlz0izzawy1x9p2xpfblkma7w20f280r44h67kfggclx3yfcf2c";
+       version = "3.5.0.0";
+       sha256 = "1vczh12dagp1w27j78dr3bc6xa3bp05rmdw3h1pxs75wnhirzvfa";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -28116,6 +28213,7 @@ self: {
        ];
        description = "I/O utilities and datasets for algebraic-graphs";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "algebraic-prelude" = callPackage
@@ -28403,7 +28501,9 @@ self: {
        benchmarkHaskellDepends = [ base containers criterion mtl vector ];
        description = "A monadic way of calculating relations between intervals of time";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "allen-calculator";
+       broken = true;
      }) {};
 
   "allocated-processor" = callPackage
@@ -28426,6 +28526,8 @@ self: {
        libraryHaskellDepends = [ base containers mtl syb vector ];
        description = "Generic programming library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "alloy-proxy-fd" = callPackage
@@ -28437,6 +28539,7 @@ self: {
        libraryHaskellDepends = [ alloy base mtl ];
        description = "Some add-on instances for the Alloy library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ally-invest" = callPackage
@@ -28553,6 +28656,8 @@ self: {
        ];
        description = "A character between a-z";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "alpino-tools" = callPackage
@@ -35201,34 +35306,6 @@ self: {
      }) {};
 
   "amqp" = callPackage
-    ({ mkDerivation, base, binary, bytestring, clock, connection
-     , containers, data-binary-ieee754, hspec, hspec-expectations
-     , monad-control, network, network-uri, split, stm, text, vector
-     , xml
-     }:
-     mkDerivation {
-       pname = "amqp";
-       version = "0.22.1";
-       sha256 = "0z1w35ar0bswbjzgana52nh4ilxbidnfkvli29w2zr7cak9dgzg1";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base binary bytestring clock connection containers
-         data-binary-ieee754 monad-control network network-uri split stm
-         text vector
-       ];
-       executableHaskellDepends = [ base containers xml ];
-       testHaskellDepends = [
-         base binary bytestring clock connection containers
-         data-binary-ieee754 hspec hspec-expectations network network-uri
-         split stm text vector
-       ];
-       description = "Client library for AMQP servers (currently only RabbitMQ)";
-       license = lib.licenses.bsd3;
-       mainProgram = "amqp-builder";
-     }) {};
-
-  "amqp_0_22_2" = callPackage
     ({ mkDerivation, base, binary, bytestring, clock, containers
      , crypton-connection, data-binary-ieee754, hspec
      , hspec-expectations, monad-control, network, network-uri, split
@@ -35253,7 +35330,6 @@ self: {
        ];
        description = "Client library for AMQP servers (currently only RabbitMQ)";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "amqp-builder";
      }) {};
 
@@ -35297,29 +35373,6 @@ self: {
      }) {};
 
   "amqp-utils" = callPackage
-    ({ mkDerivation, amqp, base, bytestring, connection, containers
-     , data-default-class, directory, filepath, filepath-bytestring
-     , hinotify, magic, network, process, rawfilepath, text, time, tls
-     , unix, utf8-string, x509-system
-     }:
-     mkDerivation {
-       pname = "amqp-utils";
-       version = "0.6.3.2";
-       sha256 = "1qdhp96zqcjd8yd2hmg7c2cl9gdvywp1p3v1xjcax9si5pr83w1i";
-       revision = "1";
-       editedCabalFile = "062l0xawak87hp6xni7mz4w5dr9za30nm1shzpc88jm7618hndl9";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         amqp base bytestring connection containers data-default-class
-         directory filepath filepath-bytestring hinotify magic network
-         process rawfilepath text time tls unix utf8-string x509-system
-       ];
-       description = "AMQP toolset for the command line";
-       license = lib.licenses.gpl3Only;
-     }) {};
-
-  "amqp-utils_0_6_4_0" = callPackage
     ({ mkDerivation, amqp, base, bytestring, containers
      , crypton-connection, crypton-x509-system, data-default-class
      , directory, filepath, filepath-bytestring, hinotify, magic
@@ -35339,7 +35392,6 @@ self: {
        ];
        description = "AMQP toolset for the command line";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "amqp-worker" = callPackage
@@ -35469,6 +35521,7 @@ self: {
        ];
        description = "Simple literate programming preprocessor";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "anansi";
      }) {};
 
@@ -35485,6 +35538,7 @@ self: {
        ];
        description = "Colorized looms for Anansi";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "anansi-pandoc" = callPackage
@@ -35965,21 +36019,21 @@ self: {
     ({ mkDerivation, ansi-terminal-types, base, colour }:
      mkDerivation {
        pname = "ansi-terminal";
-       version = "0.11.5";
-       sha256 = "1jwpq3l7ipzjpd6b8gc2df2k5hsh3b9w555ny20q6mgbapfcwjjv";
+       version = "1.0.2";
+       sha256 = "0d6qm3ph6drim7g81yx46nmgspxsf4nnr2d91fa0fy3cyv5idra6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ ansi-terminal-types base colour ];
-       description = "Simple ANSI terminal support, with Windows compatibility";
+       description = "Simple ANSI terminal support";
        license = lib.licenses.bsd3;
      }) {};
 
-  "ansi-terminal_1_0" = callPackage
+  "ansi-terminal_1_1" = callPackage
     ({ mkDerivation, ansi-terminal-types, base, colour }:
      mkDerivation {
        pname = "ansi-terminal";
-       version = "1.0";
-       sha256 = "1jfgsnywzyipxg64xqgiyvq4af7wjnx4g8hazysn57hqg67sk607";
+       version = "1.1";
+       sha256 = "0lxjf546x2b382hhg8ws2ay9yhva9kk07ki8lmgpbndsprbn4paj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ ansi-terminal-types base colour ];
@@ -36015,6 +36069,34 @@ self: {
        license = lib.licenses.gpl3Only;
      }) {};
 
+  "ansi-terminal-game_1_9_3_0" = callPackage
+    ({ mkDerivation, ansi-terminal, array, base, bytestring, cereal
+     , clock, colour, containers, exceptions, file-embed, hspec
+     , hspec-discover, linebreak, mintty, mtl, QuickCheck, random, split
+     , terminal-size, timers-tick, unidecode
+     }:
+     mkDerivation {
+       pname = "ansi-terminal-game";
+       version = "1.9.3.0";
+       sha256 = "1yy7hzdcawdmwl8wqzabbamzjdg260xbwryj0hdjn7b0n6qlqymk";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal array base bytestring cereal clock colour containers
+         exceptions file-embed linebreak mintty mtl QuickCheck random split
+         terminal-size timers-tick unidecode
+       ];
+       testHaskellDepends = [
+         ansi-terminal array base bytestring cereal clock colour containers
+         exceptions file-embed hspec linebreak mintty mtl QuickCheck random
+         split terminal-size timers-tick unidecode
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "cross-platform library for terminal games";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ansi-terminal-types" = callPackage
     ({ mkDerivation, base, colour }:
      mkDerivation {
@@ -36028,22 +36110,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ansi-wl-pprint" = callPackage
-    ({ mkDerivation, ansi-terminal, base }:
+  "ansi-terminal-types_1_1" = callPackage
+    ({ mkDerivation, base, colour }:
      mkDerivation {
-       pname = "ansi-wl-pprint";
-       version = "0.6.9";
-       sha256 = "1b2fg8px98dzbaqyns10kvs8kn6cl1hdq5wb9saz40izrpkyicm7";
-       revision = "4";
-       editedCabalFile = "04ljsk64bzwsczh0zc5w3r98qr1zlzbwwm2xb6nk9vradv4pnwzv";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ ansi-terminal base ];
-       description = "The Wadler/Leijen Pretty Printer for colored ANSI terminal output";
+       pname = "ansi-terminal-types";
+       version = "1.1";
+       sha256 = "09axg8lpyyzm436lfmk21hawqxljln0hrjhg6gfz99cdnwz37rgj";
+       libraryHaskellDepends = [ base colour ];
+       description = "Types and functions used to represent SGR aspects";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "ansi-wl-pprint_1_0_2" = callPackage
+  "ansi-wl-pprint" = callPackage
     ({ mkDerivation, base, prettyprinter-compat-ansi-wl-pprint }:
      mkDerivation {
        pname = "ansi-wl-pprint";
@@ -36056,7 +36135,6 @@ self: {
        ];
        description = "The Wadler/Leijen Pretty Printer for colored ANSI terminal output";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ansigraph" = callPackage
@@ -36570,13 +36648,15 @@ self: {
   "any-pat" = callPackage
     ({ mkDerivation, base, haskell-src-exts, haskell-src-meta, hspec
      , hspec-discover, parsec, QuickCheck, template-haskell
+     , unordered-containers
      }:
      mkDerivation {
        pname = "any-pat";
-       version = "0.2.0.0";
-       sha256 = "1h6fxbyzfbx936br0795jbs25ci0bjbik5dgdgw40rs7y2mavxkm";
+       version = "0.4.0.0";
+       sha256 = "1hdlvpq0hlar65gg3m9narfapwjgy1c6d2ihzvsq5p1h36h2v0nd";
        libraryHaskellDepends = [
          base haskell-src-exts haskell-src-meta template-haskell
+         unordered-containers
        ];
        testHaskellDepends = [ base hspec parsec QuickCheck ];
        testToolDepends = [ hspec-discover ];
@@ -36760,6 +36840,8 @@ self: {
        libraryHaskellDepends = [ apecs base effectful-core vector ];
        description = "Adaptation of the apecs library for the effectful ecosystem";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "apecs-gloss" = callPackage
@@ -36775,7 +36857,6 @@ self: {
        ];
        description = "Simple gloss renderer for apecs";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "apecs-physics" = callPackage
@@ -36791,8 +36872,6 @@ self: {
        ];
        description = "2D physics for apecs";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "apecs-physics-gloss" = callPackage
@@ -36804,7 +36883,6 @@ self: {
        libraryHaskellDepends = [ apecs apecs-physics base gloss ];
        description = "Gloss rendering for apecs-physics";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "apecs-stm" = callPackage
@@ -36906,6 +36984,8 @@ self: {
        ];
        description = "Package to make APIs";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "api-monobank" = callPackage
@@ -37060,6 +37140,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion text time ];
        description = "DSL for generating API boilerplate and docs";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "api-yoti" = callPackage
@@ -37495,6 +37577,8 @@ self: {
        ];
        description = "A library to manage application settings (INI file-like)";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "appar" = callPackage
@@ -37741,7 +37825,7 @@ self: {
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers directory extra filemanip ghc ghc-boot-th
+         base containers directory extra filemanip ghc-boot-th
          ghc-exactprint ghc-paths process refact syb transformers uniplate
          unix-compat
        ];
@@ -37795,6 +37879,40 @@ self: {
        mainProgram = "refactor";
      }) {};
 
+  "apply-refact_0_14_0_0" = callPackage
+    ({ mkDerivation, base, containers, directory, extra, filemanip
+     , filepath, ghc, ghc-boot-th, ghc-exactprint, ghc-paths
+     , optparse-applicative, process, refact, silently, syb, tasty
+     , tasty-expected-failure, tasty-golden, transformers, uniplate
+     , unix-compat
+     }:
+     mkDerivation {
+       pname = "apply-refact";
+       version = "0.14.0.0";
+       sha256 = "17dndhrpli0149rqbcyygb4w3lpmz8068pyrkcpwvfkd21p8yikk";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers directory extra filemanip ghc ghc-boot-th
+         ghc-exactprint process refact syb transformers uniplate unix-compat
+       ];
+       executableHaskellDepends = [
+         base containers directory extra filemanip filepath ghc ghc-boot-th
+         ghc-exactprint ghc-paths optparse-applicative process refact syb
+         transformers uniplate unix-compat
+       ];
+       testHaskellDepends = [
+         base containers directory extra filemanip filepath ghc ghc-boot-th
+         ghc-exactprint ghc-paths optparse-applicative process refact
+         silently syb tasty tasty-expected-failure tasty-golden transformers
+         uniplate unix-compat
+       ];
+       description = "Perform refactorings specified by the refact library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "refactor";
+     }) {};
+
   "apply-unordered" = callPackage
     ({ mkDerivation, base, fin, ghc, ghc-tcplugins-extra, hspec
      , should-not-typecheck, syb
@@ -38370,14 +38488,16 @@ self: {
      }:
      mkDerivation {
        pname = "archive-tar";
-       version = "0.2.2.1";
-       sha256 = "0pwdjx2f78cs3z81hr9ax0iaq6fk6bdvywdp2q8vpjagrfbjcn8k";
+       version = "1.0.0.0";
+       sha256 = "0gcpcgw8vniq1kz8f7xwj6kqr7zl85m3jr9qns277bq2i58jmd0w";
        libraryHaskellDepends = [
          base bytestring composition-prelude tar
        ];
        libraryToolDepends = [ cpphs ];
        description = "Common interface using the tar package";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "archive-tar-bytestring" = callPackage
@@ -38859,36 +38979,6 @@ self: {
 
   "arithmoi" = callPackage
     ({ mkDerivation, array, base, chimera, constraints, containers
-     , deepseq, exact-pi, integer-gmp, integer-logarithms, integer-roots
-     , mod, QuickCheck, quickcheck-classes, random, semirings
-     , smallcheck, tasty, tasty-bench, tasty-hunit, tasty-quickcheck
-     , tasty-rerun, tasty-smallcheck, transformers, vector
-     }:
-     mkDerivation {
-       pname = "arithmoi";
-       version = "0.12.1.0";
-       sha256 = "1g8jswfjcy8q7fg7qf5d2yq1amxwwvpai97n96cgl6hrfz6y1ghf";
-       configureFlags = [ "-f-llvm" ];
-       libraryHaskellDepends = [
-         array base chimera constraints containers deepseq exact-pi
-         integer-gmp integer-logarithms integer-roots mod random semirings
-         transformers vector
-       ];
-       testHaskellDepends = [
-         base containers exact-pi integer-gmp integer-roots mod QuickCheck
-         quickcheck-classes random semirings smallcheck tasty tasty-hunit
-         tasty-quickcheck tasty-rerun tasty-smallcheck transformers vector
-       ];
-       benchmarkHaskellDepends = [
-         array base constraints containers deepseq integer-logarithms mod
-         random semirings tasty-bench vector
-       ];
-       description = "Efficient basic number-theoretic functions";
-       license = lib.licenses.mit;
-     }) {};
-
-  "arithmoi_0_13_0_0" = callPackage
-    ({ mkDerivation, array, base, chimera, constraints, containers
      , deepseq, exact-pi, ghc-bignum, infinite-list, integer-logarithms
      , integer-roots, mod, QuickCheck, quickcheck-classes, random
      , semirings, smallcheck, tasty, tasty-bench, tasty-hunit
@@ -38899,8 +38989,8 @@ self: {
        pname = "arithmoi";
        version = "0.13.0.0";
        sha256 = "0bcxfx8gm0vd07pg417yid11dqakgw5w1hndmg8667g92ar5njsc";
-       revision = "2";
-       editedCabalFile = "0fxzpwvn8n2sfnjl6qqsh556sjyng4gw2ddfbvhzf346xb3nrnzv";
+       revision = "3";
+       editedCabalFile = "1v8d7dpzlqqmlfmwb0jylic09yr3f69wpkqxp8kyy1hgbczaig3l";
        configureFlags = [ "-f-llvm" ];
        libraryHaskellDepends = [
          array base chimera constraints containers deepseq exact-pi
@@ -38918,7 +39008,6 @@ self: {
        ];
        description = "Efficient basic number-theoretic functions";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "arity-generic-liftA" = callPackage
@@ -39032,8 +39121,8 @@ self: {
      }:
      mkDerivation {
        pname = "array-builder";
-       version = "0.1.4.0";
-       sha256 = "03ry85miknhj8r21wbnmdixg114l5jg7dssvalnlykr8m6p0h3lf";
+       version = "0.1.4.1";
+       sha256 = "11hzfx6h0xrgbj8hginp91yj01kzyx8wh35bx22cb5ydfl7wpdcv";
        libraryHaskellDepends = [
          array-chunks base bytebuild byteslice bytestring natural-arithmetic
          primitive run-st text-short
@@ -39049,8 +39138,8 @@ self: {
      }:
      mkDerivation {
        pname = "array-chunks";
-       version = "0.1.4.0";
-       sha256 = "0m2719qyfpv5d9sm5wyyxcaq48fyggabjya9m5zx7idh94sqqm3p";
+       version = "0.1.4.2";
+       sha256 = "04aw1322vys216xil2knmvhx15d9f8kwxaprwgxy3njii75b40ik";
        libraryHaskellDepends = [ base primitive run-st ];
        testHaskellDepends = [
          base primitive QuickCheck quickcheck-classes tasty tasty-hunit
@@ -39379,8 +39468,8 @@ self: {
      }:
      mkDerivation {
        pname = "asana";
-       version = "1.0.1.0";
-       sha256 = "14ppgjjqxylkpy24bkaqlbcsbklrdgrlnm7dqalk1nzv37zqijys";
+       version = "1.0.1.1";
+       sha256 = "01117n142magfi3vywdyp9ackp26lwbab8zyazgxkvfk79a494vb";
        libraryHaskellDepends = [
          aeson aeson-casing base bytestring hashable http-conduit
          iso8601-time microlens microlens-mtl monad-logger mtl scientific
@@ -39486,8 +39575,8 @@ self: {
        pname = "ascii-char";
        version = "1.0.1.0";
        sha256 = "1fls3yw3gs36hwqp32pn7mfibkspx5a80k32wybzc3hfp4qyymlv";
-       revision = "1";
-       editedCabalFile = "1f4v2vxpj2f3783xlqm1iay46wj78m1r0byiw01s5f81j49ldpgf";
+       revision = "2";
+       editedCabalFile = "1x0ci7j3bdlrrza78n53xw4y1dl4py3gqrym0lb6l9w5n7l138gs";
        libraryHaskellDepends = [ base hashable ];
        testHaskellDepends = [ base hspec ];
        description = "A Char type representing an ASCII character";
@@ -39524,13 +39613,13 @@ self: {
      }) {};
 
   "ascii-group" = callPackage
-    ({ mkDerivation, ascii-char, base, hashable, hedgehog }:
+    ({ mkDerivation, ascii-char, base, hashable, hspec }:
      mkDerivation {
        pname = "ascii-group";
-       version = "1.0.0.16";
-       sha256 = "11hh56b7zl7866n600s0hmwwvrrvldjrkz9zscds9gcvvz6xmhnq";
+       version = "1.0.0.17";
+       sha256 = "1cn2xz0lxa0izp7x5g9mdvk7fjqbad934fra87syss1vxalhnjxb";
        libraryHaskellDepends = [ ascii-char base hashable ];
-       testHaskellDepends = [ ascii-char base hedgehog ];
+       testHaskellDepends = [ ascii-char base hspec ];
        description = "ASCII character groups";
        license = lib.licenses.asl20;
      }) {};
@@ -40245,6 +40334,8 @@ self: {
        testHaskellDepends = [ base bytestring hspec mtl QuickCheck text ];
        description = "Core functionality for an SMTP client";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ast-monad" = callPackage
@@ -40312,6 +40403,8 @@ self: {
        libraryHaskellDepends = [ base logict mtl ];
        testHaskellDepends = [ base hspec lens logict mtl ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "astrds" = callPackage
@@ -41194,6 +41287,8 @@ self: {
        libraryHaskellDepends = [ base constraints ];
        description = "Subtyping relations and variance roles";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "attenuation-profunctors" = callPackage
@@ -41209,6 +41304,7 @@ self: {
        ];
        description = "Attenuation support for Profunctors";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "attic-schedule" = callPackage
@@ -41517,23 +41613,6 @@ self: {
      }) {};
 
   "attoparsec-iso8601" = callPackage
-    ({ mkDerivation, attoparsec, base, base-compat-batteries, text
-     , time, time-compat
-     }:
-     mkDerivation {
-       pname = "attoparsec-iso8601";
-       version = "1.1.0.0";
-       sha256 = "0ji6rcz49caqpj85dg8gs90cnc15500qyyh4b3n598a8qhbsh28i";
-       revision = "1";
-       editedCabalFile = "1h84bvjji5kwk54fr8q2gs8qhb39xwsm585s3472vvjh54dllf31";
-       libraryHaskellDepends = [
-         attoparsec base base-compat-batteries text time time-compat
-       ];
-       description = "Parsing of ISO 8601 dates, originally from aeson";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "attoparsec-iso8601_1_1_0_1" = callPackage
     ({ mkDerivation, attoparsec, base, integer-conversion, text, time
      , time-compat
      }:
@@ -41546,7 +41625,6 @@ self: {
        ];
        description = "Parsing of ISO 8601 dates, originally from aeson";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "attoparsec-iteratee" = callPackage
@@ -41740,10 +41818,8 @@ self: {
      }:
      mkDerivation {
        pname = "audacity";
-       version = "0.0.2.1";
-       sha256 = "04r36gy8z0d2fz1l5px6yajp7izf3zpda9vci6q0wc273pxc8ck6";
-       revision = "2";
-       editedCabalFile = "0b4avhc577n7r43lw2zg360ndx8cqp39ghz63xpzxdc9dlsqyii0";
+       version = "0.0.2.2";
+       sha256 = "1glvk4mkq8j48s0xm86xb1l3xrb6m3cijcckdm48zq3pz7yg3hd8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -42053,6 +42129,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Template Haskell to automatically pass values to functions";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
@@ -42089,7 +42166,6 @@ self: {
        ];
        description = "Autodocodec interpreters for openapi3";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "autodocodec-schema" = callPackage
@@ -42328,7 +42404,9 @@ self: {
        libraryHaskellDepends = [ base directory mtl process unix ];
        description = "EDSL for Procmail scripts";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "autoproc";
+       broken = true;
      }) {};
 
   "avahi" = callPackage
@@ -42631,6 +42709,8 @@ self: {
        ];
        description = "Avro serialization support for Haskell";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "avro-piper" = callPackage
@@ -42785,6 +42865,45 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "aws_0_24_2" = callPackage
+    ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base
+     , base16-bytestring, base64-bytestring, blaze-builder, byteable
+     , bytestring, case-insensitive, cereal, conduit, conduit-extra
+     , containers, cryptonite, data-default, directory, errors
+     , exceptions, filepath, http-client, http-client-tls, http-conduit
+     , http-types, lifted-base, memory, monad-control, mtl, network
+     , network-bsd, old-locale, QuickCheck, quickcheck-instances
+     , resourcet, safe, scientific, tagged, tasty, tasty-hunit
+     , tasty-quickcheck, text, time, transformers, transformers-base
+     , unordered-containers, utf8-string, vector, xml-conduit
+     }:
+     mkDerivation {
+       pname = "aws";
+       version = "0.24.2";
+       sha256 = "0bk8pc6zs514dg7bm97y6969rzndf3mvbdrdgbv2vwn70k1n1r66";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson attoparsec attoparsec-aeson base base16-bytestring
+         base64-bytestring blaze-builder byteable bytestring
+         case-insensitive cereal conduit conduit-extra containers cryptonite
+         data-default directory exceptions filepath http-client-tls
+         http-conduit http-types lifted-base memory monad-control mtl
+         network network-bsd old-locale resourcet safe scientific tagged
+         text time transformers unordered-containers utf8-string vector
+         xml-conduit
+       ];
+       testHaskellDepends = [
+         aeson base bytestring conduit errors http-client http-client-tls
+         http-types lifted-base monad-control mtl QuickCheck
+         quickcheck-instances resourcet tagged tasty tasty-hunit
+         tasty-quickcheck text time transformers transformers-base
+       ];
+       description = "Amazon Web Services (AWS) for Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "aws-arn" = callPackage
     ({ mkDerivation, base, deriving-compat, hashable, profunctors
      , tagged, tasty, tasty-discover, tasty-hunit, text
@@ -42829,7 +42948,9 @@ self: {
        testHaskellDepends = [ base hedgehog neat-interpolation ];
        description = "Generate signed cookies for AWS CloudFront";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "aws-cloudfront-signed-cookies";
+       broken = true;
      }) {};
 
   "aws-cloudfront-signer" = callPackage
@@ -43172,6 +43293,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Haskell runtime for AWS Lambda";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "aws-lambda-haskell-runtime-wai" = callPackage
@@ -43195,6 +43317,7 @@ self: {
        ];
        description = "Run wai applications on AWS Lambda";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "aws-lambda-runtime" = callPackage
@@ -43495,27 +43618,6 @@ self: {
      }) {};
 
   "aws-sns-verify" = callPackage
-    ({ mkDerivation, aeson, aeson-qq, async, base, bytestring, errors
-     , hspec, http-conduit, http-types, memory, network-uri, pem
-     , regex-tdfa, text, wai, warp, x509, x509-validation
-     }:
-     mkDerivation {
-       pname = "aws-sns-verify";
-       version = "0.0.0.2";
-       sha256 = "0v05hca43v12g4x2ffwqla9pmf9gx8l85vv88cljn808qbsj5h4v";
-       libraryHaskellDepends = [
-         aeson base bytestring errors http-conduit memory network-uri pem
-         regex-tdfa text x509 x509-validation
-       ];
-       testHaskellDepends = [
-         aeson-qq async base hspec http-types regex-tdfa text wai warp
-         x509-validation
-       ];
-       description = "Parse and verify AWS SNS messages";
-       license = lib.licenses.mit;
-     }) {};
-
-  "aws-sns-verify_0_0_0_3" = callPackage
     ({ mkDerivation, aeson, aeson-qq, async, base, bytestring
      , crypton-x509, crypton-x509-validation, errors, hspec
      , http-conduit, http-types, memory, network-uri, pem, regex-tdfa
@@ -43537,7 +43639,6 @@ self: {
        ];
        description = "Parse and verify AWS SNS messages";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "aws-transcribe-ws" = callPackage
@@ -44414,6 +44515,8 @@ self: {
        testHaskellDepends = [ base ];
        description = "For when a type should never be an instance of a class";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bank-holiday-usa" = callPackage
@@ -44477,6 +44580,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "barbies_2_1_1_0" = callPackage
+    ({ mkDerivation, base, distributive, QuickCheck, tasty, tasty-hunit
+     , tasty-quickcheck, transformers
+     }:
+     mkDerivation {
+       pname = "barbies";
+       version = "2.1.1.0";
+       sha256 = "1dyjsjal1ffdscm3y1wzrczlv56hpf50bwdmmvdfiy55ys9j15vk";
+       libraryHaskellDepends = [ base distributive transformers ];
+       testHaskellDepends = [
+         base distributive QuickCheck tasty tasty-hunit tasty-quickcheck
+       ];
+       description = "Classes for working with types that can change clothes";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "barbies-layered" = callPackage
     ({ mkDerivation, barbies, base, doctest, doctest-discover, hspec
      , hspec-discover, transformers
@@ -44680,23 +44800,11 @@ self: {
     ({ mkDerivation, base, ghc-prim, unix }:
      mkDerivation {
        pname = "base-compat";
-       version = "0.12.3";
-       sha256 = "13dcrwihqn57js1ylj9vbw2snx90kfwikanvs1bj77zm22grj9nv";
-       libraryHaskellDepends = [ base ghc-prim unix ];
-       description = "A compatibility layer for base";
-       license = lib.licenses.mit;
-     }) {};
-
-  "base-compat_0_13_1" = callPackage
-    ({ mkDerivation, base, ghc-prim, unix }:
-     mkDerivation {
-       pname = "base-compat";
        version = "0.13.1";
        sha256 = "08c43vzhq0dsnd8lqzrpimlj3h2386ybb8qksdk01fy8as6rw7fv";
        libraryHaskellDepends = [ base ghc-prim unix ];
        description = "A compatibility layer for base";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "base-compat-batteries" = callPackage
@@ -44705,31 +44813,13 @@ self: {
      }:
      mkDerivation {
        pname = "base-compat-batteries";
-       version = "0.12.3";
-       sha256 = "1bsz3bi1mnp60p90n5av76knscgssqvphc9f2jy1nhyr6ap7jxi0";
-       libraryHaskellDepends = [ base base-compat ghc-prim ];
-       testHaskellDepends = [ base hspec QuickCheck ];
-       testToolDepends = [ hspec-discover ];
-       description = "base-compat with extra batteries";
-       license = lib.licenses.mit;
-     }) {};
-
-  "base-compat-batteries_0_13_1" = callPackage
-    ({ mkDerivation, base, base-compat, foldable1-classes-compat
-     , ghc-prim, hspec, hspec-discover, OneTuple, QuickCheck
-     }:
-     mkDerivation {
-       pname = "base-compat-batteries";
        version = "0.13.1";
        sha256 = "00m8lx2raldr6xvlc92za11a2sj3x0031vi6v3as0cnvl58mnliy";
-       libraryHaskellDepends = [
-         base base-compat foldable1-classes-compat ghc-prim OneTuple
-       ];
+       libraryHaskellDepends = [ base base-compat ghc-prim ];
        testHaskellDepends = [ base hspec QuickCheck ];
        testToolDepends = [ hspec-discover ];
        description = "base-compat with extra batteries";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "base-compat-migrate" = callPackage
@@ -44861,34 +44951,10 @@ self: {
      }:
      mkDerivation {
        pname = "base16";
-       version = "0.3.2.1";
-       sha256 = "0ybmcik5nlly7s9bfwlaqqk8jpgwxp5ac4bhdiq4lckbfynvm0qf";
-       revision = "1";
-       editedCabalFile = "0qjaz2kkcmrfzbr6f44jkb1zdgbayh0yahp06j8gb281783ng6d8";
-       libraryHaskellDepends = [
-         base bytestring deepseq primitive text text-short
-       ];
-       testHaskellDepends = [
-         base base16-bytestring bytestring QuickCheck random-bytestring
-         tasty tasty-hunit tasty-quickcheck text text-short
-       ];
-       benchmarkHaskellDepends = [
-         base base16-bytestring bytestring criterion deepseq
-         random-bytestring text
-       ];
-       description = "Fast RFC 4648-compliant Base16 encoding";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "base16_1_0" = callPackage
-    ({ mkDerivation, base, base16-bytestring, bytestring, criterion
-     , deepseq, primitive, QuickCheck, random-bytestring, tasty
-     , tasty-hunit, tasty-quickcheck, text, text-short
-     }:
-     mkDerivation {
-       pname = "base16";
        version = "1.0";
        sha256 = "1plwc4yrkvd5j6y09fjvyzhr05mzhzwz6z41fyb60y0bj5j66dl6";
+       revision = "1";
+       editedCabalFile = "00r0j3l3af912b33mlsr5a48rr0l31gh34cmj8jf247c4a332rlk";
        libraryHaskellDepends = [
          base bytestring deepseq primitive text text-short
        ];
@@ -44902,7 +44968,6 @@ self: {
        ];
        description = "Fast RFC 4648-compliant Base16 encoding";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "base16-bytestring_0_1_1_7" = callPackage
@@ -44964,29 +45029,6 @@ self: {
      }:
      mkDerivation {
        pname = "base32";
-       version = "0.3.1.0";
-       sha256 = "1cp2xs1kl5bqs09jpyak4kfjr4pnqgbv5rksxx1z6r8hmi9akjrg";
-       libraryHaskellDepends = [
-         base bytestring deepseq text text-short
-       ];
-       testHaskellDepends = [
-         base bytestring memory QuickCheck random-bytestring tasty
-         tasty-hunit tasty-quickcheck text text-short
-       ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion deepseq memory random-bytestring text
-       ];
-       description = "Fast RFC 4648-compliant Base32 encoding";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "base32_0_4" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, deepseq, memory
-     , QuickCheck, random-bytestring, tasty, tasty-hunit
-     , tasty-quickcheck, text, text-short
-     }:
-     mkDerivation {
-       pname = "base32";
        version = "0.4";
        sha256 = "1m08m51d49lfs5rfc5kjj0g19xq53c2ldngcykld6a4ma0fqdrws";
        libraryHaskellDepends = [
@@ -45001,7 +45043,6 @@ self: {
        ];
        description = "Fast RFC 4648-compliant Base32 encoding";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "base32-bytestring" = callPackage
@@ -45124,20 +45165,20 @@ self: {
      }) {};
 
   "base62" = callPackage
-    ({ mkDerivation, base, bytebuild, byteslice, bytestring, doctest
+    ({ mkDerivation, base, bytebuild, byteslice, bytestring
      , natural-arithmetic, primitive, tasty, tasty-hunit
      , tasty-quickcheck, text, text-short, wide-word
      }:
      mkDerivation {
        pname = "base62";
-       version = "0.1.1.0";
-       sha256 = "0cwq9iqcps0f1b8sbjghfb9q3rr8alhjhwx0py6ll9gp98dv57qf";
+       version = "0.1.1.2";
+       sha256 = "0kwz0asfc6lg96g14d58a64rvp2194z67y53nbb6y10hrbwq1j7j";
        libraryHaskellDepends = [
          base bytebuild byteslice bytestring natural-arithmetic primitive
          text text-short wide-word
        ];
        testHaskellDepends = [
-         base byteslice doctest primitive tasty tasty-hunit tasty-quickcheck
+         base byteslice primitive tasty tasty-hunit tasty-quickcheck
          wide-word
        ];
        description = "Base62 encoding and decoding";
@@ -45172,6 +45213,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "base64_1_0" = callPackage
+    ({ mkDerivation, base, base64-bytestring, bytestring, criterion
+     , deepseq, QuickCheck, random-bytestring, tasty, tasty-hunit
+     , tasty-quickcheck, text, text-short
+     }:
+     mkDerivation {
+       pname = "base64";
+       version = "1.0";
+       sha256 = "1dmjy4pkz66s3wa99lkc0wc4bdjkdkr57a8rsgb5z50432gj6hkr";
+       libraryHaskellDepends = [
+         base bytestring deepseq text text-short
+       ];
+       testHaskellDepends = [
+         base base64-bytestring bytestring QuickCheck random-bytestring
+         tasty tasty-hunit tasty-quickcheck text text-short
+       ];
+       benchmarkHaskellDepends = [
+         base base64-bytestring bytestring criterion deepseq
+         random-bytestring text
+       ];
+       description = "A modern Base64 library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "base64-bytes" = callPackage
     ({ mkDerivation, base, base64, base64-bytestring, byte-order
      , bytebuild, byteslice, bytestring, gauge, natural-arithmetic
@@ -45179,10 +45245,8 @@ self: {
      }:
      mkDerivation {
        pname = "base64-bytes";
-       version = "0.1.1.0";
-       sha256 = "0f0a0lj6k4k5b2mk9fbdl28x09h3mah5j44sj04k4ckdifkx3qw3";
-       revision = "1";
-       editedCabalFile = "1m4igcn7bxc2ym4ba22dkz2dh6rbka20da5a19vxpm0hwypfd0jc";
+       version = "0.1.1.1";
+       sha256 = "0gvh2yg7mqwrswcq5p0h35bifsvm18cdvsjzazz37yrwan0i31vs";
        libraryHaskellDepends = [
          base byte-order bytebuild byteslice natural-arithmetic primitive
          run-st word-compat
@@ -45453,6 +45517,8 @@ self: {
        ];
        description = "Bash generation library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "basic" = callPackage
@@ -45491,6 +45557,8 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Basic implementation of General Problem Solver algorithm";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "basic-lens" = callPackage
@@ -45794,6 +45862,8 @@ self: {
        pname = "battleship-combinatorics";
        version = "0.0.1";
        sha256 = "0pr1vcq69ndkln5jd6kxd0gn8jvc8n7aiqanxsrqnjpx4kkixph4";
+       revision = "1";
+       editedCabalFile = "0fw9dyylyvhsbzyslbm0r5k3l3sxbxmh0rq3cy8hkw204gm9x844";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -45903,8 +45973,8 @@ self: {
      }:
      mkDerivation {
        pname = "bbcode";
-       version = "0.1.0.2";
-       sha256 = "1bnmjca7gjv4df5hbyniiy4s6n8llshiwxxc0pknc73wjjb8nmm8";
+       version = "0.2.0.1";
+       sha256 = "0d8ilximw08wws7m5y6mwn1pgix3ph8cni34vnnlsp3iph5kjqpj";
        libraryHaskellDepends = [
          base containers lens megaparsec mtl text transformers
        ];
@@ -45967,7 +46037,6 @@ self: {
        ];
        description = "Language tags as specified by BCP 47";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "bcp47-orphans" = callPackage
@@ -45991,7 +46060,6 @@ self: {
        ];
        description = "BCP47 orphan instances";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "bcrypt" = callPackage
@@ -46174,8 +46242,8 @@ self: {
      }:
      mkDerivation {
        pname = "beam-automigrate";
-       version = "0.1.4.0";
-       sha256 = "0miifsbppqqad9v6mvd30mxanqz6fddxal6d6jxpynmx4wnk8i8p";
+       version = "0.1.6.0";
+       sha256 = "09pq0i3zb68ad20qznvf4kqf3y3zz0pjfi84g87rxay6y4sj6vi1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -46243,6 +46311,8 @@ self: {
        ];
        description = "SQL DDL support and migrations support library for Beam";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "beam-mysql" = callPackage
@@ -46306,6 +46376,7 @@ self: {
        ];
        description = "Connection layer between beam and postgres";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "beam-sqlite" = callPackage
@@ -46330,6 +46401,7 @@ self: {
        ];
        description = "Beam driver for SQLite";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "beam-th" = callPackage
@@ -46386,13 +46458,14 @@ self: {
      }:
      mkDerivation {
        pname = "bearriver";
-       version = "0.14.5";
-       sha256 = "1ai026mhk42pw96v3p0imlrz9hfnr7cv21019bkqakrc3pmc0y6n";
+       version = "0.14.6";
+       sha256 = "01jkfp1z3dk744qbyhjpvsjiikfmfvf34dqzz2hdiisfvpxwmmqy";
        libraryHaskellDepends = [
          base deepseq dunai MonadRandom mtl simple-affine-space transformers
        ];
        description = "FRP Yampa replacement implemented with Monadic Stream Functions";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "beautifHOL" = callPackage
@@ -46413,36 +46486,6 @@ self: {
   "bech32" = callPackage
     ({ mkDerivation, array, base, base58-bytestring, bytestring
      , containers, deepseq, extra, hspec, hspec-discover, memory
-     , optparse-applicative, process, QuickCheck, text, vector
-     }:
-     mkDerivation {
-       pname = "bech32";
-       version = "1.1.3";
-       sha256 = "0pzsaj606hgm2j4c2jynnv46w6a13g2z8vsfywxkz90asy91mgwy";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         array base bytestring containers extra text
-       ];
-       executableHaskellDepends = [
-         base base58-bytestring bytestring extra memory optparse-applicative
-         text
-       ];
-       testHaskellDepends = [
-         base base58-bytestring bytestring containers deepseq extra hspec
-         memory process QuickCheck text vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Implementation of the Bech32 cryptocurrency address format (BIP 0173)";
-       license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       mainProgram = "bech32";
-       broken = true;
-     }) {};
-
-  "bech32_1_1_4" = callPackage
-    ({ mkDerivation, array, base, base58-bytestring, bytestring
-     , containers, deepseq, extra, hspec, hspec-discover, memory
      , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
      , process, QuickCheck, text, vector
      }:
@@ -46636,8 +46679,8 @@ self: {
        pname = "bench";
        version = "1.0.12";
        sha256 = "1sy97qpv6paar2d5syppk6lc06wjx6qyz5aidsmh30jq853nydx6";
-       revision = "7";
-       editedCabalFile = "1q1n7mfvma66zm9q8r896nhw3hrlffnys5dng3dakc43gjv9561h";
+       revision = "8";
+       editedCabalFile = "1xsvw5mid9f4gildrw4hdxp77hqx33vkp6x015ig0rm8b2cpp0r7";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -46676,6 +46719,8 @@ self: {
        pname = "bench-show";
        version = "0.3.2";
        sha256 = "1f0zx572d54dyyjifv4p550ci90gdr4mrifhwww4z6p87fbdi32j";
+       revision = "1";
+       editedCabalFile = "1qq1ppj0x1d1rl0dbhpx6h2xj359rh2l6g63wkxcjzyqf2lzlx3q";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -46770,10 +46815,8 @@ self: {
      }:
      mkDerivation {
        pname = "bencoding";
-       version = "0.4.5.4";
-       sha256 = "01ncsvlay03h4cnj19mvrwbhmx0mksrvyq96qq8r5f7i8l0l9z8r";
-       revision = "1";
-       editedCabalFile = "1v28888fmflqny69rc7g6cf3nd64msb69pkkx62gra0zq1xzhsbq";
+       version = "0.4.5.5";
+       sha256 = "1mgqn8ais9pshsy8gsqrd559rgck1sm5zw0jyrl5902ns11jacx3";
        libraryHaskellDepends = [
          attoparsec base bytestring deepseq ghc-prim integer-gmp mtl pretty
          text
@@ -47027,6 +47070,8 @@ self: {
        libraryHaskellDepends = [ base containers mtl ];
        description = "\"Bidirectionalization for Free\" for Monomorphic Transformations";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bglib" = callPackage
@@ -47099,7 +47144,9 @@ self: {
        ];
        description = "Simple terminal GUI for local hoogle";
        license = "(BSD-3-Clause OR Apache-2.0)";
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "bhoogle";
+       broken = true;
      }) {};
 
   "bibdb" = callPackage
@@ -47269,42 +47316,19 @@ self: {
      }) {};
 
   "bifunctors" = callPackage
-    ({ mkDerivation, base, base-orphans, comonad, containers, hspec
+    ({ mkDerivation, assoc, base, comonad, containers, hspec
      , hspec-discover, QuickCheck, tagged, template-haskell
      , th-abstraction, transformers, transformers-compat
      }:
      mkDerivation {
        pname = "bifunctors";
-       version = "5.5.15";
-       sha256 = "1dz3v6qdilm6z9vl25xrma2if6i151v6rmgnvd461parsd89sdfn";
-       libraryHaskellDepends = [
-         base base-orphans comonad containers tagged template-haskell
-         th-abstraction transformers
-       ];
-       testHaskellDepends = [
-         base hspec QuickCheck template-haskell transformers
-         transformers-compat
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Bifunctors";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "bifunctors_5_6_1" = callPackage
-    ({ mkDerivation, assoc, base, comonad, containers
-     , foldable1-classes-compat, hspec, hspec-discover, QuickCheck
-     , tagged, template-haskell, th-abstraction, transformers
-     , transformers-compat
-     }:
-     mkDerivation {
-       pname = "bifunctors";
        version = "5.6.1";
        sha256 = "1z2p9l2c0i6irbhfib5z7089jg8s22jj2jrc3dm525mynmqi8f06";
        revision = "2";
        editedCabalFile = "0ma7m6as59vdmk1ysip0gslrc2sc84van5z1blvzl2wzyvc7xyl2";
        libraryHaskellDepends = [
-         assoc base comonad containers foldable1-classes-compat tagged
-         template-haskell th-abstraction transformers
+         assoc base comonad containers tagged template-haskell
+         th-abstraction transformers
        ];
        testHaskellDepends = [
          base hspec QuickCheck template-haskell transformers
@@ -47313,7 +47337,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Bifunctors";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "bighugethesaurus" = callPackage
@@ -47852,8 +47875,8 @@ self: {
      }:
      mkDerivation {
        pname = "binary-parser";
-       version = "0.5.7.5";
-       sha256 = "07ywb3z9k0hcs38617470h2y2gwgi49wp4m6a0fzvs7mnxv46bj7";
+       version = "0.5.7.6";
+       sha256 = "0s7d332iip9pj5sc00li9lnnmaszy63a6iz59013dbj55xbw0bba";
        libraryHaskellDepends = [ base bytestring mtl text transformers ];
        testHaskellDepends = [
          base-prelude bytestring tasty tasty-hunit tasty-quickcheck
@@ -48260,8 +48283,8 @@ self: {
      }:
      mkDerivation {
        pname = "bindings-GLFW";
-       version = "3.3.2.0";
-       sha256 = "0frvqybvy6bk79drhdmv4m754g4db3ys63ib8kw6aw5d3bmhjdbw";
+       version = "3.3.9.1";
+       sha256 = "0j0vka9i2b8nl3xyfx3wzhhyyx0zqd4gxd25rrna5k0wvnqk27w5";
        libraryHaskellDepends = [ base bindings-DSL ];
        librarySystemDepends = [
          libGL libX11 libXcursor libXext libXfixes libXi libXinerama
@@ -49098,6 +49121,7 @@ self: {
        ];
        description = "Encode precise binary representations directly in types";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.raehik ];
      }) {};
 
@@ -49489,6 +49513,7 @@ self: {
        ];
        description = "A small tool that clears cookies (and more)";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "bisc";
      }) {};
 
@@ -49787,6 +49812,8 @@ self: {
        ];
        description = "BIP 158 compact block filters";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bitcoin-hash" = callPackage
@@ -49952,6 +49979,8 @@ self: {
        ];
        description = "Resources for working with miniscript, and script descriptors";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bitcoin-tx" = callPackage
@@ -50115,6 +50144,8 @@ self: {
        pname = "bitmaps";
        version = "0.2.6.3";
        sha256 = "1cbfbbyvmdlfwn6pjhxkd8f4ajkp9cm18apzmrqffrj58gmzr1p0";
+       revision = "1";
+       editedCabalFile = "1h21j5np4cnawda05fjl9k75z7ayqh0k6ndrr3l9ayrdxmflcaab";
        libraryHaskellDepends = [
          array base binary bitmap bytestring cereal containers monad-state
          stb-image string-class tagged zlib
@@ -50212,8 +50243,8 @@ self: {
        pname = "bits-extra";
        version = "0.0.2.3";
        sha256 = "1lyrr5jg8yg9cb97pn1pd4qgc7qn3irv8k5ra5j48fyn1rb6z4r7";
-       revision = "2";
-       editedCabalFile = "1szy6g9a0sqz6cb1pcrxwypr8xf6nvgwvchxr7j5ax5jnh6xrk8h";
+       revision = "3";
+       editedCabalFile = "0cmss27g52vcw8vx8y5smvmiqrr1r6s1b9vihw4qrjj91x7w8sf9";
        libraryHaskellDepends = [ base ghc-prim vector ];
        testHaskellDepends = [
          base doctest doctest-discover ghc-prim hedgehog hspec hw-hedgehog
@@ -50251,6 +50282,8 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Showing data as strings of 0 and 1";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bitset" = callPackage
@@ -50436,8 +50469,8 @@ self: {
        pname = "bitwise";
        version = "1.0.0.1";
        sha256 = "03xyzdkyb99gvm9g5chl07rqbnm7qrxba7wgmrfmal0rkwm0ibkn";
-       revision = "8";
-       editedCabalFile = "0jmix0f28cvxg328b4wnf33sx36aa9j921hx3hd51by85lywkvrn";
+       revision = "9";
+       editedCabalFile = "1xc1p66ykfz59v4dh84pg4fzdlmibix68qn1cn33k04xrlyfnnl0";
        libraryHaskellDepends = [ array base bytestring ];
        testHaskellDepends = [ base QuickCheck ];
        benchmarkHaskellDepends = [ array base bytestring criterion ];
@@ -50494,16 +50527,12 @@ self: {
      }) {};
 
   "bizzlelude" = callPackage
-    ({ mkDerivation, base-noprelude, containers, directory, regexpr
-     , text
-     }:
+    ({ mkDerivation, base, containers, directory, regexpr, text }:
      mkDerivation {
        pname = "bizzlelude";
-       version = "1.7.0";
-       sha256 = "0r9vrcq52civpspnznpfhm87337i6fn39xjnf6vi3j5xdx8nw2fz";
-       libraryHaskellDepends = [
-         base-noprelude containers directory regexpr text
-       ];
+       version = "4.17.2.1";
+       sha256 = "07p2h7n3zysir4cfd8pn9yph43wbb1p2ar7cipxz1ysz9saxvgam";
+       libraryHaskellDepends = [ base containers directory regexpr text ];
        description = "A lousy Prelude replacement by a lousy dude";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -50627,6 +50656,7 @@ self: {
        ];
        description = "Decentralized, k-ordered unique ID generator";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "blagda" = callPackage
@@ -50663,26 +50693,6 @@ self: {
      }:
      mkDerivation {
        pname = "blake2";
-       version = "0.3.0";
-       sha256 = "0y937kr3dp87likwrl4wpaw80jhf383k89zn8li1yj3zp1vb6niv";
-       revision = "1";
-       editedCabalFile = "11ivz5b9mfmlcqavdnkvmn2zr6ymik8k1xrl1p945bjl4iiyh43b";
-       libraryHaskellDepends = [ base bytestring ];
-       testHaskellDepends = [
-         base base16-bytestring bytestring hlint QuickCheck tasty
-         tasty-quickcheck
-       ];
-       benchmarkHaskellDepends = [ base bytestring criterion ];
-       description = "A library providing BLAKE2";
-       license = lib.licenses.publicDomain;
-     }) {};
-
-  "blake2_0_3_0_1" = callPackage
-    ({ mkDerivation, base, base16-bytestring, bytestring, criterion
-     , hlint, QuickCheck, tasty, tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "blake2";
        version = "0.3.0.1";
        sha256 = "17y8mychiiawc60kzzy7964fxarwh3yldrs1xmhwmnmai7z813j3";
        libraryHaskellDepends = [ base bytestring ];
@@ -50693,7 +50703,6 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion ];
        description = "A library providing BLAKE2";
        license = lib.licenses.unlicense;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "blake3" = callPackage
@@ -50752,6 +50761,8 @@ self: {
        pname = "blank-canvas";
        version = "0.7.4";
        sha256 = "1qm0ms3jk8m5zv81lh3pn5n04afyq7bpn9lc137ddmm9blnkzndi";
+       revision = "1";
+       editedCabalFile = "0rpafc1zmq73dilwqdhqxk74xg3fxzq8jk0i8xgbfwg388gdlf23";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base base-compat-batteries base64-bytestring bytestring
@@ -51143,6 +51154,8 @@ self: {
        pname = "blaze-svg";
        version = "0.3.7";
        sha256 = "0pqnx1zrvm2pliya76f4m8d6aycncfp08c2n1fiyzvl1fgk62z2c";
+       revision = "1";
+       editedCabalFile = "0szq7fnck2fchhck7984zar92da2lc63gjy4p7zx0975jxx0xrg9";
        libraryHaskellDepends = [ base blaze-markup mtl ];
        description = "SVG combinator library";
        license = lib.licenses.bsd3;
@@ -51369,8 +51382,8 @@ self: {
      }:
      mkDerivation {
        pname = "blockfrost-api";
-       version = "0.8.1.0";
-       sha256 = "12rsch1ind86fn97518ypycqvrj86cs7q8sykfj3ikzfkn12cssg";
+       version = "0.9.0.0";
+       sha256 = "14p910nrzcypw66jsqgjmzj206vqghpca88qvid2vahqabbwnwrd";
        libraryHaskellDepends = [
          aeson base bytestring containers data-default-class deriving-aeson
          lens safe-money servant servant-docs servant-multipart-api
@@ -51393,8 +51406,8 @@ self: {
      }:
      mkDerivation {
        pname = "blockfrost-client";
-       version = "0.7.1.1";
-       sha256 = "1k795lar667y5ai484cmrv5cvzdcca165cgvai9234b721by80jx";
+       version = "0.8.0.1";
+       sha256 = "19qziw3n75ilrhdgi982dwcz29dmfp4wzbrz99p2b1lfd0ir10lj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -51418,8 +51431,8 @@ self: {
      }:
      mkDerivation {
        pname = "blockfrost-client-core";
-       version = "0.6.0.0";
-       sha256 = "1jdi134grb6giqn53asl0593yzrnpa89nnakaishr24ma4ga2xkd";
+       version = "0.6.0.1";
+       sha256 = "00xy5dkqb657ihc3ac1w9hii1dyv1f3b1r3l1319ri71sx636czn";
        libraryHaskellDepends = [
          aeson base blockfrost-api bytestring case-insensitive containers
          data-default http-client http-client-tls http-types servant
@@ -51688,8 +51701,8 @@ self: {
      }:
      mkDerivation {
        pname = "blucontrol";
-       version = "0.7.0.0";
-       sha256 = "1h22r8l1hsdlzjcg7bdv5m9mlscpilcfg0brar0dy5rs7wghs4wj";
+       version = "0.7.1.0";
+       sha256 = "0dn1p06sd0dxyjkfc2iacvqds6q33r0id8rr7lzc9y8gyr6c46v1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -51863,8 +51876,8 @@ self: {
        pname = "bmp";
        version = "1.2.6.3";
        sha256 = "1k6s5z520dadj38y7ja0m4syrg094gyq14c63i6wx2701zj3viiw";
-       revision = "1";
-       editedCabalFile = "0ghc3klxfz5v8rb3rwblrnxmxfafplxrd9gc0y975g8k1q71p44k";
+       revision = "2";
+       editedCabalFile = "05ywlglsg9jw1cgdhrz9f4vbm775yvyysmmvjs0xj0dm2ljyskrx";
        libraryHaskellDepends = [ base binary bytestring ];
        description = "Read and write uncompressed BMP image files";
        license = lib.licenses.mit;
@@ -51896,6 +51909,31 @@ self: {
        mainProgram = "bnb-staking-csvs";
      }) {};
 
+  "bnb-staking-csvs_0_2_2_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cassava, cmdargs
+     , cointracking-imports, containers, hedgehog, req, scientific
+     , tasty, tasty-hedgehog, tasty-hunit, text, time
+     }:
+     mkDerivation {
+       pname = "bnb-staking-csvs";
+       version = "0.2.2.0";
+       sha256 = "1qx6wiqsjaz6hd5s4m1dnjbpay5g4snk8whfdwndkj7pxjblzrxj";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring cassava cmdargs cointracking-imports
+         containers req scientific text time
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base hedgehog tasty tasty-hedgehog tasty-hunit
+       ];
+       description = "Generate CSV Exports of Your BNB Staking Rewards";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "bnb-staking-csvs";
+     }) {};
+
   "bno055-haskell" = callPackage
     ({ mkDerivation, base, bytestring, cereal, h2c, mtl, resourcet }:
      mkDerivation {
@@ -51921,6 +51959,8 @@ self: {
        pname = "board-games";
        version = "0.4";
        sha256 = "05lrjgxdg836ik7ry5h9m9diirfc55086winssr9y0g6vbgbifpc";
+       revision = "1";
+       editedCabalFile = "03rlyzd46cxq1n1qgq7gyxv6x61w6wlnyv9zrsphgkg7invk64s9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -52474,8 +52514,8 @@ self: {
      }:
      mkDerivation {
        pname = "boomerang";
-       version = "1.4.9";
-       sha256 = "0z1lnzskvna5wdc45iwwybrsgv302gfja8s9zlvhdyvjlrxv5sjw";
+       version = "1.4.9.1";
+       sha256 = "0hcs9gwwmsq7m3hkk6akjdv6wiqdj2h6nmyjps6ilrcn14qbk5dp";
        libraryHaskellDepends = [
          base mtl semigroups template-haskell text th-abstraction
        ];
@@ -52570,6 +52610,8 @@ self: {
        testHaskellDepends = [ base exceptions hspec mtl ];
        description = "IoC Monad in Haskell";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "boots-app" = callPackage
@@ -52759,6 +52801,8 @@ self: {
        ];
        description = "Implementation of BORSH serialisation";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bot" = callPackage
@@ -52882,6 +52926,7 @@ self: {
        libraryHaskellDepends = [ base bound monad-gen mtl ];
        description = "Unwrap Scope's with globally fresh values";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "bound-simple" = callPackage
@@ -52917,8 +52962,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "bounded-qsem";
-       version = "0.1.0.1";
-       sha256 = "0pds88mz4rarx4qx4mkwn6ya7fijicks6v2p1ic08ynp5vg6npdf";
+       version = "0.1.0.2";
+       sha256 = "0arqwky5s64xz2sl0032vbczd4lh84yv059g0rj5nbswns0gdrhy";
        libraryHaskellDepends = [ base ];
        description = "Bounded quantity semaphores";
        license = lib.licenses.mit;
@@ -52999,6 +53044,7 @@ self: {
        ];
        description = "Read bower.json from Haskell";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "bowntz" = callPackage
@@ -53019,6 +53065,23 @@ self: {
        broken = true;
      }) {};
 
+  "bowtie" = callPackage
+    ({ mkDerivation, base, bifunctors, comonad, mtl
+     , nonempty-containers, prettyprinter, recursion-schemes
+     , semigroupoids
+     }:
+     mkDerivation {
+       pname = "bowtie";
+       version = "0.3.1";
+       sha256 = "04g44lfvbnh84vqwf3mvqwgnxfbc4w8lhx2a6g9jxl79fbsdzpwa";
+       libraryHaskellDepends = [
+         base bifunctors comonad mtl nonempty-containers prettyprinter
+         recursion-schemes semigroupoids
+       ];
+       description = "Tying knots in polynomial functors";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "box" = callPackage
     ({ mkDerivation, async, base, bytestring, containers, contravariant
      , dlist, exceptions, kan-extensions, mtl, profunctors
@@ -53026,8 +53089,8 @@ self: {
      }:
      mkDerivation {
        pname = "box";
-       version = "0.9.2.1";
-       sha256 = "0qw7byh3a3zxwkkfm31ng4dl4gfg8w8c998r62ba43z9an61y8di";
+       version = "0.9.3.1";
+       sha256 = "09mqz1ifq9sbq2h5wqy0lfvlc3v9m2nsw2f7gdss93qx8bz5cxmy";
        libraryHaskellDepends = [
          async base bytestring containers contravariant dlist exceptions
          kan-extensions mtl profunctors semigroupoids stm text time
@@ -53050,20 +53113,20 @@ self: {
      }) {};
 
   "box-socket" = callPackage
-    ({ mkDerivation, async, base, box, bytestring, exceptions, network
-     , network-simple, optparse-generic, text, websockets
+    ({ mkDerivation, async, base, box, bytestring, network-simple
+     , optparse-applicative, profunctors, text, websockets
      }:
      mkDerivation {
        pname = "box-socket";
-       version = "0.4.1";
-       sha256 = "111xbdyavpwjjzyn4y5gmva0izzinjfmb5qs1id4z2qvx43cjk8q";
+       version = "0.5.1.0";
+       sha256 = "0bm3csgz72fv41pilbwn0f2dx9gplin7qxi5i8mrwflaix156sy5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async base box bytestring exceptions network network-simple text
+         async base box bytestring network-simple profunctors text
          websockets
        ];
-       executableHaskellDepends = [ base optparse-generic ];
+       executableHaskellDepends = [ base optparse-applicative ];
        description = "Box websockets";
        license = lib.licenses.bsd3;
        mainProgram = "box-socket";
@@ -53230,17 +53293,17 @@ self: {
     ({ mkDerivation, aeson, attoparsec-aeson, base, bytestring, conduit
      , conduit-extra, containers, criterion, deepseq, file-embed
      , megaparsec, mtl, optparse-applicative, parser-combinators, split
-     , tasty, tasty-golden, text, transformers, utf8-string
+     , tasty, tasty-golden, text, transformers, utf8-string, vector
      }:
      mkDerivation {
        pname = "brassica";
-       version = "0.1.1";
-       sha256 = "0dc3qwyyz94qv1fhpyypcwys48i3zx3137yrh1gx3wby2gf2rzb9";
+       version = "0.2.0";
+       sha256 = "11myl3ir4vla6d6cvhfrjxvsfxvasj109ljxa0kjiyrqjhrv0s1z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base containers deepseq megaparsec mtl parser-combinators split
-         transformers
+         transformers vector
        ];
        executableHaskellDepends = [
          aeson attoparsec-aeson base bytestring conduit conduit-extra
@@ -53294,24 +53357,6 @@ self: {
      }:
      mkDerivation {
        pname = "breakpoint";
-       version = "0.1.2.2";
-       sha256 = "02x2hak0kf9fg5fgr0365fjrnlbfkp3mqdpvkmxfvfp5hmvpa6mm";
-       libraryHaskellDepends = [
-         ansi-terminal base containers deepseq ghc haskeline mtl
-         pretty-simple template-haskell text transformers
-       ];
-       testHaskellDepends = [ base containers tasty tasty-hunit ];
-       description = "Set breakpoints using a GHC plugin";
-       license = lib.licenses.mit;
-     }) {};
-
-  "breakpoint_0_1_3_0" = callPackage
-    ({ mkDerivation, ansi-terminal, base, containers, deepseq, ghc
-     , haskeline, mtl, pretty-simple, tasty, tasty-hunit
-     , template-haskell, text, transformers
-     }:
-     mkDerivation {
-       pname = "breakpoint";
        version = "0.1.3.0";
        sha256 = "0dx2b9gk1hpkr5vv8w2jbai83ynz714ygg7kc4wipvw5f1hy6c85";
        libraryHaskellDepends = [
@@ -53321,7 +53366,6 @@ self: {
        testHaskellDepends = [ base containers tasty tasty-hunit ];
        description = "Set breakpoints using a GHC plugin";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "breve" = callPackage
@@ -53345,7 +53389,9 @@ self: {
        ];
        description = "a url shortener";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "breve";
+       broken = true;
      }) {};
 
   "brians-brain" = callPackage
@@ -53395,39 +53441,39 @@ self: {
     ({ mkDerivation, base, bimap, bytestring, config-ini, containers
      , data-clist, deepseq, directory, exceptions, filepath, microlens
      , microlens-mtl, microlens-th, mtl, QuickCheck, stm
-     , template-haskell, text, text-zipper, unix, vector, vty, word-wrap
+     , template-haskell, text, text-zipper, unix-compat, vector, vty
+     , vty-crossplatform, vty-unix, word-wrap
      }:
      mkDerivation {
        pname = "brick";
-       version = "1.9";
-       sha256 = "023fmgq8bgv05jpsr5saisz1jpkimkjycm1xza9gx5sxf6z6sjz3";
-       revision = "1";
-       editedCabalFile = "07kpxpxizmifl7jpavv6ahars3hm7jbs93i2hl81ri93h6ac69i1";
+       version = "2.1.1";
+       sha256 = "07mk68sw5bl333lv5lrnnnf1c9d80rd4cmaspxn3xsrhf5phsa1h";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bimap bytestring config-ini containers data-clist deepseq
          directory exceptions filepath microlens microlens-mtl microlens-th
-         mtl stm template-haskell text text-zipper unix vector vty word-wrap
+         mtl stm template-haskell text text-zipper unix-compat vector vty
+         vty-crossplatform word-wrap
        ];
        testHaskellDepends = [
-         base containers microlens QuickCheck vector vty
+         base containers microlens QuickCheck vector vty vty-unix
        ];
        description = "A declarative terminal user interface library";
        license = lib.licenses.bsd3;
      }) {};
 
-  "brick_2_1_1" = callPackage
+  "brick_2_3_1" = callPackage
     ({ mkDerivation, base, bimap, bytestring, config-ini, containers
      , data-clist, deepseq, directory, exceptions, filepath, microlens
      , microlens-mtl, microlens-th, mtl, QuickCheck, stm
      , template-haskell, text, text-zipper, unix-compat, vector, vty
-     , vty-crossplatform, vty-unix, word-wrap
+     , vty-crossplatform, word-wrap
      }:
      mkDerivation {
        pname = "brick";
-       version = "2.1.1";
-       sha256 = "07mk68sw5bl333lv5lrnnnf1c9d80rd4cmaspxn3xsrhf5phsa1h";
+       version = "2.3.1";
+       sha256 = "160np0bz1mcfkp077yc936i026s3zv1czn8lj3k3qr6scldavw35";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -53437,7 +53483,7 @@ self: {
          vty-crossplatform word-wrap
        ];
        testHaskellDepends = [
-         base containers microlens QuickCheck vector vty vty-unix
+         base containers microlens QuickCheck vector vty vty-crossplatform
        ];
        description = "A declarative terminal user interface library";
        license = lib.licenses.bsd3;
@@ -53504,8 +53550,8 @@ self: {
     ({ mkDerivation, base, brick, containers, microlens, vector }:
      mkDerivation {
        pname = "brick-list-skip";
-       version = "0.1.1.9";
-       sha256 = "1dmvpnv904vqyv0z5lf36kdsxvdb9r2k637lrsbis1jvmg9719cm";
+       version = "0.1.1.11";
+       sha256 = "10xay8r334lzlzyfdq7prd2dxx82cb9sriwi82r5awfzf9ybac8n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base brick containers microlens vector ];
@@ -53519,8 +53565,8 @@ self: {
      }:
      mkDerivation {
        pname = "brick-panes";
-       version = "1.0.0.4";
-       sha256 = "10rsd1ayk63x73dk7f3dvj83dv717w8nbvymrym1lyqk2p0fh7xv";
+       version = "1.0.1.0";
+       sha256 = "0ngw5mwnv92w6hyyz6jcjsz2cs4ix4dyd6z41ggjy0lzjxd40gsq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base brick containers microlens vty ];
@@ -53536,24 +53582,6 @@ self: {
        broken = true;
      }) {};
 
-  "brick-skylighting_0_3" = callPackage
-    ({ mkDerivation, base, brick, containers, skylighting-core, text
-     , vty
-     }:
-     mkDerivation {
-       pname = "brick-skylighting";
-       version = "0.3";
-       sha256 = "1wjl5ff9c7czg7azj2pi17b3kzbgb5rmwb4nkxdy86xn6d68adi1";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base brick containers skylighting-core text vty
-       ];
-       description = "Show syntax-highlighted text in your Brick UI";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "brick-skylighting" = callPackage
     ({ mkDerivation, base, brick, containers, skylighting-core, text
      , vty
@@ -53577,8 +53605,8 @@ self: {
      }:
      mkDerivation {
        pname = "brick-tabular-list";
-       version = "2.2.0.7";
-       sha256 = "12qn87lzvic12d7g84a23vddiwsk8qi5r5by9569pra3zi7790kc";
+       version = "2.2.0.9";
+       sha256 = "16y2qw6xcfm2ayn376ayc48qd3wn3pbwqwb5r79ab3400dpcbj0x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -54527,28 +54555,6 @@ self: {
      }) {};
 
   "bugsnag" = callPackage
-    ({ mkDerivation, base, bugsnag-hs, bytestring, containers, Glob
-     , hspec, http-client, http-client-tls, parsec, template-haskell
-     , text, th-lift-instances, ua-parser, unliftio
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "bugsnag";
-       version = "1.0.0.1";
-       sha256 = "1sbm85r2ia5k4rdbz8yqgd5x01b2l5kw0p4knj8mr8cr37fqzp8b";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base bugsnag-hs bytestring containers Glob http-client
-         http-client-tls parsec template-haskell text th-lift-instances
-         ua-parser unordered-containers
-       ];
-       testHaskellDepends = [ base hspec unliftio ];
-       description = "Bugsnag error reporter for Haskell";
-       license = lib.licenses.mit;
-     }) {};
-
-  "bugsnag_1_1_0_0" = callPackage
     ({ mkDerivation, aeson, annotated-exception, base, bugsnag-hs
      , bytestring, containers, Glob, hspec, http-client, http-client-tls
      , parsec, template-haskell, text, th-lift-instances, ua-parser
@@ -54568,7 +54574,6 @@ self: {
        testHaskellDepends = [ annotated-exception base hspec unliftio ];
        description = "Bugsnag error reporter for Haskell";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "bugsnag-haskell" = callPackage
@@ -54734,7 +54739,9 @@ self: {
        ];
        description = "Compute, fetch and install Cabal build plans into a local environment";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "build-env";
+       broken = true;
      }) {};
 
   "buildable" = callPackage
@@ -54955,6 +54962,32 @@ self: {
        broken = true;
      }) {};
 
+  "bureaucromancy" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, directory
+     , file-embed, file-embed-lzma, filepath, ginger, hourglass
+     , html-conduit, http-types, mtl, network-uri, regex-tdfa, text, tz
+     , wai, warp, xml-conduit
+     }:
+     mkDerivation {
+       pname = "bureaucromancy";
+       version = "0.1.0.2";
+       sha256 = "1ab56izmmr33gya76bngbxjjyr2f172bh5h0cjrs51km1kggs789";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers directory file-embed
+         file-embed-lzma filepath ginger hourglass mtl network-uri
+         regex-tdfa text tz xml-conduit
+       ];
+       executableHaskellDepends = [
+         base html-conduit http-types text wai warp
+       ];
+       testHaskellDepends = [ base ];
+       description = "Parse webforms & render to interactive hypertext";
+       license = lib.licenses.gpl3Only;
+       mainProgram = "bureaucromancy";
+     }) {};
+
   "burnt-explorer" = callPackage
     ({ mkDerivation, aeson, base, bitcoin-script, bytestring, cassava
      , process, scientific
@@ -54980,8 +55013,8 @@ self: {
      }:
      mkDerivation {
        pname = "burrito";
-       version = "2.0.1.7";
-       sha256 = "1b7xijr8ry4q1k3ix2nzbrvaiwrk4gdzbl79kxl3d7s2zxgnngww";
+       version = "2.0.1.8";
+       sha256 = "0hr70nh6jqykm4shklgm58jv83xpna2x2k2d1lcyj1p3h5npsh5w";
        libraryHaskellDepends = [
          base bytestring containers parsec template-haskell text
          transformers
@@ -55109,7 +55142,9 @@ self: {
        description = "Draw sequence diagrams of D-Bus traffic";
        license = lib.licenses.lgpl21Plus;
        badPlatforms = lib.platforms.darwin;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "bustle";
+       broken = true;
      }) {gio-unix = null; inherit (pkgs) libpcap; 
          system-glib = pkgs.glib;};
 
@@ -55266,8 +55301,6 @@ self: {
        doHaddock = false;
        description = "Efficient little-endian bit vector library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bv-sized" = callPackage
@@ -55279,6 +55312,8 @@ self: {
        pname = "bv-sized";
        version = "1.0.5";
        sha256 = "1ydldi9q9rxggjh6mncg7mwggi0wpigld96nqqgw33ldcid8b7as";
+       revision = "1";
+       editedCabalFile = "17khx2nq5gp3b2sbrwgswvywf8sj7kas84qlppdsj2isr3w2v8gn";
        libraryHaskellDepends = [
          base bitwise bytestring deepseq panic parameterized-utils random
          th-lift
@@ -55318,6 +55353,8 @@ self: {
        testHaskellDepends = [ aeson base doctest tasty tasty-hunit ];
        description = "Give aliases to record fields";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "byline" = callPackage
@@ -55357,13 +55394,29 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "byte-containers" = callPackage
+    ({ mkDerivation, base, byteslice, primitive, quickcheck-classes
+     , run-st, tasty, tasty-quickcheck, wide-word
+     }:
+     mkDerivation {
+       pname = "byte-containers";
+       version = "0.1.0.1";
+       sha256 = "0j6yjkfl2yra85vy43bihz96wlaasrmz054fzz0lv6ahy56raw60";
+       libraryHaskellDepends = [ base primitive run-st wide-word ];
+       testHaskellDepends = [
+         base byteslice primitive quickcheck-classes tasty tasty-quickcheck
+       ];
+       description = "Sets and maps with 8-bit words for keys";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "byte-count-reader" = callPackage
     ({ mkDerivation, base, extra, hspec, parsec, parsec-numbers, text
      }:
      mkDerivation {
        pname = "byte-count-reader";
-       version = "0.10.1.10";
-       sha256 = "0g9l8razsdy4y4s81p4w7djck6266y6p592a5vycg9z5521wayj4";
+       version = "0.10.1.11";
+       sha256 = "1mi0560rcajp9q83y6vsw7ld1n429jdsmswassnyhh1z4hs6ihv7";
        libraryHaskellDepends = [ base extra parsec parsec-numbers text ];
        testHaskellDepends = [
          base extra hspec parsec parsec-numbers text
@@ -55389,6 +55442,21 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "byte-order_0_1_3_1" = callPackage
+    ({ mkDerivation, base, primitive, primitive-unaligned, wide-word }:
+     mkDerivation {
+       pname = "byte-order";
+       version = "0.1.3.1";
+       sha256 = "0yhz0rh3a3yq0c3ypjr3aj674qfjpcyngqy56rpijsqsim3ym67b";
+       libraryHaskellDepends = [
+         base primitive primitive-unaligned wide-word
+       ];
+       testHaskellDepends = [ base primitive wide-word ];
+       description = "Portable big-endian and little-endian conversions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "byteable" = callPackage
     ({ mkDerivation, base, bytestring }:
      mkDerivation {
@@ -55424,10 +55492,8 @@ self: {
      }:
      mkDerivation {
        pname = "bytebuild";
-       version = "0.3.14.0";
-       sha256 = "0ql3fyd0l4gm3wbziky8r3bgd97kazpqbmiqwhrxvznf201zkhfy";
-       revision = "1";
-       editedCabalFile = "0pgm553m4abfq7bhrz4r0hymww32sqy4ln0j3v3ydb93x6l1fp1v";
+       version = "0.3.15.0";
+       sha256 = "1hdypq9jmsgg8ccvh9giz2ccazlrmnvjrbm773v206h0mbchi5ig";
        libraryHaskellDepends = [
          base byteslice bytestring haskell-src-meta integer-logarithms
          natural-arithmetic primitive primitive-offset run-st
@@ -55446,6 +55512,35 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "bytebuild_0_3_16_2" = callPackage
+    ({ mkDerivation, base, byteslice, bytestring, gauge
+     , haskell-src-meta, integer-logarithms, natural-arithmetic
+     , primitive, primitive-offset, QuickCheck, quickcheck-instances
+     , run-st, tasty, tasty-hunit, tasty-quickcheck, template-haskell
+     , text, text-short, wide-word, zigzag
+     }:
+     mkDerivation {
+       pname = "bytebuild";
+       version = "0.3.16.2";
+       sha256 = "11wnsj71dd8p5ag7z8kb9pav8l86plg2jq6mrj5y6bk8ajw3zd9c";
+       libraryHaskellDepends = [
+         base byteslice bytestring haskell-src-meta integer-logarithms
+         natural-arithmetic primitive primitive-offset run-st
+         template-haskell text text-short wide-word zigzag
+       ];
+       testHaskellDepends = [
+         base byteslice bytestring natural-arithmetic primitive QuickCheck
+         quickcheck-instances tasty tasty-hunit tasty-quickcheck text
+         text-short wide-word
+       ];
+       benchmarkHaskellDepends = [
+         base byteslice gauge natural-arithmetic primitive text-short
+       ];
+       description = "Build byte arrays";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "bytedump" = callPackage
     ({ mkDerivation, base, bytestring }:
      mkDerivation {
@@ -55462,23 +55557,21 @@ self: {
 
   "bytehash" = callPackage
     ({ mkDerivation, base, byte-order, byteslice, bytesmith, bytestring
-     , entropy, gauge, hedgehog, primitive, primitive-checked
-     , primitive-unlifted, split, tasty, tasty-hedgehog, tasty-hunit
-     , transformers, unordered-containers
+     , entropy, gauge, hedgehog, primitive, primitive-unlifted, split
+     , tasty, tasty-hedgehog, tasty-hunit, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "bytehash";
-       version = "0.1.0.0";
-       sha256 = "1jc8fz8rv7072is0srcp730ff37xkb68xl6s6yssba4anxc8s5nm";
-       revision = "2";
-       editedCabalFile = "0b840m5ykjgqzxd8sfzjgbs86qm87lzcf477xnl8zlmf11yhjyqg";
+       version = "0.1.1.0";
+       sha256 = "08apq1pv5v42q8k3l1xkgba7c4g61ckbwcpz02d93lzv3qhhbxm1";
        libraryHaskellDepends = [
          base byte-order byteslice bytestring entropy primitive
          primitive-unlifted transformers
        ];
        testHaskellDepends = [
-         base byteslice entropy hedgehog primitive-checked tasty
-         tasty-hedgehog tasty-hunit
+         base byteslice entropy hedgehog primitive tasty tasty-hedgehog
+         tasty-hunit
        ];
        benchmarkHaskellDepends = [
          base byteslice bytesmith bytestring entropy gauge primitive
@@ -55486,21 +55579,22 @@ self: {
        ];
        description = "Universal hashing of bytes";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "bytehash_0_1_1_0" = callPackage
+  "bytehash_0_1_1_1" = callPackage
     ({ mkDerivation, base, byte-order, byteslice, bytesmith, bytestring
-     , entropy, gauge, hedgehog, primitive, primitive-unlifted, split
-     , tasty, tasty-hedgehog, tasty-hunit, transformers
-     , unordered-containers
+     , containers, entropy, gauge, hedgehog, primitive
+     , primitive-unlifted, split, tasty, tasty-hedgehog, tasty-hunit
+     , transformers, unordered-containers
      }:
      mkDerivation {
        pname = "bytehash";
-       version = "0.1.1.0";
-       sha256 = "08apq1pv5v42q8k3l1xkgba7c4g61ckbwcpz02d93lzv3qhhbxm1";
+       version = "0.1.1.1";
+       sha256 = "1b43d89b10fa9wx1z19vv1wsslvs25cqn7v2s2514fdghsqq89j9";
+       revision = "1";
+       editedCabalFile = "0hd1qz4i4kjbvpk800wnifjnq6l78qjf36gy9m24w8l6pvp9ap4r";
        libraryHaskellDepends = [
-         base byte-order byteslice bytestring entropy primitive
+         base byte-order byteslice bytestring containers entropy primitive
          primitive-unlifted transformers
        ];
        testHaskellDepends = [
@@ -55522,8 +55616,8 @@ self: {
      }:
      mkDerivation {
        pname = "bytelog";
-       version = "0.1.1.0";
-       sha256 = "06z3m5rimwswkiimgva896vqs7i92pdslgqaxk80iy1as04z218i";
+       version = "0.1.3.1";
+       sha256 = "0gylk7zm60i2cb7g5mhzs5hl66wgxlc7aqp66pn1ilxf3wzqd8sn";
        libraryHaskellDepends = [
          base bytebuild byteslice natural-arithmetic posix-api primitive
        ];
@@ -55602,6 +55696,39 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "bytes-metrics" = callPackage
+    ({ mkDerivation, base, byteslice, contiguous, gauge, primitive
+     , quickcheck-classes-base, random, tasty, tasty-hunit
+     , tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "bytes-metrics";
+       version = "0.1.0.0";
+       sha256 = "0w2qj1sxzgvp1yx80khs6dvk3kichsklic5zz8n349674kdwwyap";
+       libraryHaskellDepends = [ base byteslice contiguous primitive ];
+       testHaskellDepends = [
+         base byteslice primitive quickcheck-classes-base tasty tasty-hunit
+         tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ base byteslice gauge random ];
+       description = "Calculate string metrics on Bytes efficiently";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "bytes-patterns" = callPackage
+    ({ mkDerivation, base, byteslice, tasty, tasty-hunit
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "bytes-patterns";
+       version = "0.1.0.0";
+       sha256 = "1qkkds6s74k64gc5pbx40j7r1bc8cg140zdyf9qz9zcwck5li7bq";
+       libraryHaskellDepends = [ base byteslice template-haskell ];
+       testHaskellDepends = [ base byteslice tasty tasty-hunit ];
+       description = "Template haskell macro for casing on Bytes";
+       license = lib.licenses.mit;
+     }) {};
+
   "byteset" = callPackage
     ({ mkDerivation, base, binary }:
      mkDerivation {
@@ -55621,8 +55748,8 @@ self: {
      }:
      mkDerivation {
        pname = "byteslice";
-       version = "0.2.12.0";
-       sha256 = "1r6ad6ib1fk4bhld3vkzwm1z74px562h7dwsz5gl8582igi9z2mk";
+       version = "0.2.13.0";
+       sha256 = "1jp61krqfk5nqqbk2a4h8pz15hdm2kd8bvmpa29vvhx96qdp19cx";
        libraryHaskellDepends = [
          base bytestring natural-arithmetic primitive primitive-addr
          primitive-unlifted run-st text text-short tuples vector
@@ -55636,20 +55763,42 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "byteslice_0_2_13_2" = callPackage
+    ({ mkDerivation, base, bytestring, gauge, natural-arithmetic
+     , primitive, primitive-addr, primitive-unlifted, quickcheck-classes
+     , run-st, tasty, tasty-hunit, tasty-quickcheck, text, text-short
+     , transformers, tuples, vector
+     }:
+     mkDerivation {
+       pname = "byteslice";
+       version = "0.2.13.2";
+       sha256 = "1z1zjhhnsrnr2qbldl6kk756cy5mim1pv02zy3p1vb9ahq7v7iv7";
+       libraryHaskellDepends = [
+         base bytestring natural-arithmetic primitive primitive-addr
+         primitive-unlifted run-st text text-short tuples vector
+       ];
+       testHaskellDepends = [
+         base bytestring primitive quickcheck-classes tasty tasty-hunit
+         tasty-quickcheck text transformers
+       ];
+       benchmarkHaskellDepends = [ base gauge ];
+       description = "Slicing managed and unmanaged memory";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "bytesmith" = callPackage
     ({ mkDerivation, base, byte-order, byteslice, bytestring
-     , contiguous, gauge, primitive, run-st, tasty, tasty-hunit
-     , tasty-quickcheck, text-short, wide-word
+     , contiguous, gauge, natural-arithmetic, primitive, run-st, tasty
+     , tasty-hunit, tasty-quickcheck, text-short, wide-word
      }:
      mkDerivation {
        pname = "bytesmith";
-       version = "0.3.10.0";
-       sha256 = "0n0218mrnf6qy7h82apxgpdd868hdbmvn1cghif267xmd0qc3pcp";
-       revision = "1";
-       editedCabalFile = "1lw7ivh995mgpvra2s3klka9n3zc0j8w43mkgi068hlzcj69km0z";
+       version = "0.3.11.0";
+       sha256 = "0c9sgpdrcxsfqgk23sqsni36q12pqx33c1qdw74jh56bgnvx2svz";
        libraryHaskellDepends = [
-         base byteslice bytestring contiguous primitive run-st text-short
-         wide-word
+         base byteslice bytestring contiguous natural-arithmetic primitive
+         run-st text-short wide-word
        ];
        testHaskellDepends = [
          base byte-order byteslice primitive tasty tasty-hunit
@@ -55816,6 +55965,8 @@ self: {
        pname = "bytestring-encoding";
        version = "0.1.2.0";
        sha256 = "1j1gli2aa7kflirvnaqdwg212s85v4j2fak5qy79y8zsb3l62p44";
+       revision = "1";
+       editedCabalFile = "0lqw3nfbhzw1x5r98w0wyk77axhxzbli7931nm7dmk0k3h5p1lp1";
        libraryHaskellDepends = [ base bytestring text ];
        testHaskellDepends = [
          base bytestring deepseq QuickCheck tasty tasty-hunit
@@ -55903,6 +56054,8 @@ self: {
        libraryHaskellDepends = [ base bytestring unix ];
        description = "mmap support for strict ByteStrings";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bytestring-nums" = callPackage
@@ -56089,8 +56242,8 @@ self: {
      }:
      mkDerivation {
        pname = "bytestring-tree-builder";
-       version = "0.2.7.11";
-       sha256 = "1kwj10nibw6bd0nkwg090nn27ayaq85x211ss2zvi63qs37cjmxp";
+       version = "0.2.7.12";
+       sha256 = "0dwj8ljmi0apjqj8lvk9wx1gisaaswdrihwp5nn5646ja09j7n4h";
        libraryHaskellDepends = [ base bytestring text ];
        testHaskellDepends = [
          base-prelude bytestring quickcheck-instances tasty tasty-hunit
@@ -56181,6 +56334,29 @@ self: {
        broken = true;
      }) {};
 
+  "bytetrie" = callPackage
+    ({ mkDerivation, base, bifunctors, byte-containers, bytebuild
+     , byteslice, primitive, primitive-unlifted, quickcheck-classes
+     , tasty, tasty-hunit, tasty-quickcheck, unpacked-maybe
+     }:
+     mkDerivation {
+       pname = "bytetrie";
+       version = "0.1.0.1";
+       sha256 = "0b86h79fszzsdq47anqinv31y67mkdayzcydrpm07qsmvjl9kgws";
+       libraryHaskellDepends = [
+         base bifunctors byte-containers bytebuild byteslice primitive
+         unpacked-maybe
+       ];
+       testHaskellDepends = [
+         base byte-containers byteslice primitive primitive-unlifted
+         quickcheck-classes tasty tasty-hunit tasty-quickcheck
+         unpacked-maybe
+       ];
+       description = "Tries with Bytes as keys";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "byteunits" = callPackage
     ({ mkDerivation, base, Cabal, HUnit, QuickCheck, safe }:
      mkDerivation {
@@ -56426,6 +56602,8 @@ self: {
        pname = "c10k";
        version = "0.5.0";
        sha256 = "1i62ilk95p1vjyk7gl1fv7lwq6yk3ysfn3v1bbyfpabf97gzr0d9";
+       revision = "1";
+       editedCabalFile = "1hdkhwjm9dskq9lv08dj92i9navsy6dppk36ilr91ci5gxdphd0n";
        libraryHaskellDepends = [ base network unix ];
        description = "C10k server library using prefork";
        license = lib.licenses.bsd3;
@@ -56439,6 +56617,8 @@ self: {
        pname = "c14n";
        version = "0.1.0.3";
        sha256 = "1az81fzblbp2c811grz4l318p99w1xd1kn0cirf9hfgbgdbrfkx8";
+       revision = "1";
+       editedCabalFile = "0j7jrm2v8pjwwrd10r56ras4r5n1viy9qccv2hs9jir44p42z8m8";
        libraryHaskellDepends = [ base bytestring ];
        librarySystemDepends = [ libxml2 ];
        libraryPkgconfigDepends = [ libxml2 ];
@@ -56875,6 +57055,37 @@ self: {
        broken = true;
      }) {};
 
+  "cabal-debian_5_2_3" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, bifunctors, Cabal
+     , containers, data-default, debian, deepseq, Diff, directory
+     , exceptions, filepath, hsemail, HUnit, lens, mtl, network-uri
+     , optparse-applicative, parsec, pretty, process, pureMD5
+     , regex-tdfa, syb, text, unix, unliftio, utf8-string
+     }:
+     mkDerivation {
+       pname = "cabal-debian";
+       version = "5.2.3";
+       sha256 = "0gj6w5r07bmij41flx7rw4ad0qjl2fmbxp9jrdkl8k33b045lfc7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-wl-pprint base bifunctors Cabal containers data-default debian
+         deepseq Diff directory exceptions filepath hsemail HUnit lens mtl
+         network-uri optparse-applicative parsec pretty process pureMD5
+         regex-tdfa syb text unix unliftio utf8-string
+       ];
+       executableHaskellDepends = [ base Cabal debian lens mtl pretty ];
+       testHaskellDepends = [
+         base Cabal containers debian Diff directory filepath hsemail HUnit
+         lens pretty process text
+       ];
+       description = "Create a Debianization for a Cabal package";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-debian";
+       broken = true;
+     }) {};
+
   "cabal-dependency-licenses" = callPackage
     ({ mkDerivation, base, Cabal, containers, directory, filepath }:
      mkDerivation {
@@ -56902,6 +57113,8 @@ self: {
        libraryHaskellDepends = [ base Cabal QuickCheck ];
        description = "QuickCheck for Cabal tests";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "cabal-dev" = callPackage
@@ -57022,29 +57235,53 @@ self: {
        broken = true;
      }) {};
 
+  "cabal-fix" = callPackage
+    ({ mkDerivation, algebraic-graphs, base, bytestring, Cabal-syntax
+     , containers, directory, dotparse, filepath, flatparse
+     , optics-extra, optparse-applicative, pretty, pretty-simple
+     , string-interpolate, tar, text, these, tree-diff, vector
+     }:
+     mkDerivation {
+       pname = "cabal-fix";
+       version = "0.0.0.2";
+       sha256 = "050003nvqc0x44jik7x5gsljqsrandpsl77xkqbhrh3xglw8cydb";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         algebraic-graphs base bytestring Cabal-syntax containers directory
+         dotparse flatparse optics-extra pretty pretty-simple
+         string-interpolate tar these tree-diff vector
+       ];
+       executableHaskellDepends = [
+         base bytestring directory filepath optparse-applicative
+         pretty-simple text tree-diff
+       ];
+       description = "Fix for cabal files";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-fix";
+     }) {};
+
   "cabal-flatpak" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, cabal-plan
      , containers, cryptohash-sha256, http-client, http-client-tls
      , http-types, optparse-applicative, pathtype, shell-utility, tar
-     , text, utility-ht, zlib
+     , text, utility-ht, yaml, zlib
      }:
      mkDerivation {
        pname = "cabal-flatpak";
-       version = "0.1.0.4";
-       sha256 = "0whdqki7jm7b2km9b8rc8gdi2ciw2ajkxsay3lspky519xzhmy59";
-       revision = "1";
-       editedCabalFile = "0p7n2ylb2vlyg4vl4qdksiqasq76mc66pxl6vka9m20hdvfkr76v";
+       version = "0.1.1";
+       sha256 = "0p54np4q1xfqja0vxpin61pr6imligscxwpqk0fjz38idqa2ys56";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          aeson aeson-pretty base bytestring cabal-plan containers
          cryptohash-sha256 http-client http-client-tls http-types
          optparse-applicative pathtype shell-utility tar text utility-ht
-         zlib
+         yaml zlib
        ];
        description = "Generate a FlatPak manifest from a Cabal package description";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "cabal-flatpak";
        maintainers = [ lib.maintainers.thielema ];
      }) {};
@@ -57057,8 +57294,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-fmt";
-       version = "0.1.9";
-       sha256 = "00bcyx7i7h04hn2s8j7p4fsa64l48zizsdmmzqrhfiafwapmfg4n";
+       version = "0.1.10";
+       sha256 = "16h90yjchld3fqxwgm2qc7a9jnrrvadn3vrsbgcx8vjrccb7dg5m";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -57112,6 +57349,33 @@ self: {
        broken = true;
      }) {};
 
+  "cabal-gild" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal-syntax, containers
+     , directory, exceptions, filepath, mtl, parsec, pretty, QuickCheck
+     , tasty, tasty-hunit, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "cabal-gild";
+       version = "0.2.1.1";
+       sha256 = "1qrcbipn9c6rwqywhr19blk4dlr1skl92kkqasy6v1qgsm43i03l";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring Cabal-syntax containers directory exceptions
+         filepath mtl parsec pretty
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base bytestring Cabal-syntax containers filepath QuickCheck tasty
+         tasty-hunit tasty-quickcheck
+       ];
+       description = "Format .cabal files";
+       license = "GPL-3.0-or-later AND BSD-3-Clause";
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-gild";
+       broken = true;
+     }) {};
+
   "cabal-graphdeps" = callPackage
     ({ mkDerivation, base, containers, directory, options, parsec
      , process, split, temporary
@@ -57161,6 +57425,7 @@ self: {
        description = "Give Haskell development tools access to Cabal project environment";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "cabal-hoogle" = callPackage
@@ -57366,28 +57631,6 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-install-solver";
-       version = "3.8.1.0";
-       sha256 = "1rzzi3jx5ivxy43vdg460fsbn1p2v5br1havcara65vmqgv6j8yz";
-       revision = "1";
-       editedCabalFile = "1g487j20pj03pc10yaha18v73wh3ackxjgfpfqaj7xznqcbm5xwm";
-       libraryHaskellDepends = [
-         array base bytestring Cabal Cabal-syntax containers edit-distance
-         filepath mtl pretty transformers
-       ];
-       testHaskellDepends = [
-         base Cabal Cabal-syntax tasty tasty-hunit tasty-quickcheck
-       ];
-       description = "The command-line interface for Cabal and Hackage";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "cabal-install-solver_3_10_2_1" = callPackage
-    ({ mkDerivation, array, base, bytestring, Cabal, Cabal-syntax
-     , containers, edit-distance, filepath, mtl, pretty, tasty
-     , tasty-hunit, tasty-quickcheck, transformers
-     }:
-     mkDerivation {
-       pname = "cabal-install-solver";
        version = "3.10.2.1";
        sha256 = "02nllpg35i44chs5hi3kmv2kisxqlh27l5vs9aips2abphl0gl4i";
        libraryHaskellDepends = [
@@ -57399,7 +57642,6 @@ self: {
        ];
        description = "The command-line interface for Cabal and Hackage";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "cabal-lenses" = callPackage
@@ -57550,9 +57792,7 @@ self: {
        ];
        description = "Library and utility for processing cabal's plan.json file";
        license = lib.licenses.gpl2Plus;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "cabal-plan";
-       broken = true;
      }) {};
 
   "cabal-plan-bounds" = callPackage
@@ -57571,7 +57811,6 @@ self: {
        ];
        description = "Derives cabal bounds from build plans";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "cabal-plan-bounds";
        maintainers = [ lib.maintainers.nomeata ];
      }) {};
@@ -57814,7 +58053,9 @@ self: {
        executableHaskellDepends = [ base directory filepath mtl process ];
        description = "Uninstall cabal packages";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "cabal-uninstall";
+       broken = true;
      }) {};
 
   "cabal-upload" = callPackage
@@ -58304,39 +58545,43 @@ self: {
      }) {};
 
   "cachix" = callPackage
-    ({ mkDerivation, aeson, ascii-progress, async, base
-     , base64-bytestring, bytestring, cachix-api, concurrent-extra
-     , conduit, conduit-concurrent-map, conduit-extra, conduit-zstd
-     , containers, cryptonite, deepseq, dhall, directory, ed25519
-     , either, extra, filepath, fsnotify, hercules-ci-cnix-store, here
-     , hnix-store-core, hspec, hspec-discover, http-client
-     , http-client-tls, http-conduit, http-types, immortal, katip, lukko
-     , lzma-conduit, megaparsec, memory, netrc, network, nix
-     , optparse-applicative, pretty-terminal, prettyprinter, process
-     , protolude, resourcet, retry, safe-exceptions, servant
-     , servant-auth, servant-auth-client, servant-client
-     , servant-client-core, servant-conduit, stm, stm-chans, stm-conduit
-     , systemd, temporary, text, time, unix, unordered-containers
+    ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-s3
+     , ascii-progress, async, attoparsec, base, base64-bytestring
+     , bytestring, cachix-api, concurrent-extra, conduit
+     , conduit-concurrent-map, conduit-extra, conduit-zstd, containers
+     , crypton, deepseq, dhall, directory, ed25519, either, exceptions
+     , extra, filepath, fsnotify, generic-lens, hercules-ci-cnix-store
+     , here, hnix-store-core, hspec, hspec-discover, http-client
+     , http-client-tls, http-conduit, http-types, immortal, inline-c-cpp
+     , katip, lukko, lzma-conduit, megaparsec, memory, microlens, netrc
+     , network, nix, nix-narinfo, optparse-applicative, pretty-terminal
+     , prettyprinter, process, protolude, resourcet, retry
+     , safe-exceptions, servant, servant-auth, servant-auth-client
+     , servant-client, servant-client-core, servant-conduit, stm
+     , stm-chans, stm-conduit, systemd, temporary, text, time
+     , transformers, unix, unliftio, unliftio-core, unordered-containers
      , uri-bytestring, uuid, vector, versions, websockets, wuss
      }:
      mkDerivation {
        pname = "cachix";
-       version = "1.6.1";
-       sha256 = "1xha1m9cik1sm877mk2vk96z4qc3570663cw1b4dw51v1qn57pbr";
+       version = "1.7";
+       sha256 = "1shjam831qqyd6fvf7idi3z480ay103dc08dpclard4rp4hvfw2z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson ascii-progress async base base64-bytestring bytestring
-         cachix-api concurrent-extra conduit conduit-concurrent-map
-         conduit-extra conduit-zstd containers cryptonite deepseq dhall
-         directory ed25519 either extra filepath fsnotify
+         aeson amazonka amazonka-core amazonka-s3 ascii-progress async
+         attoparsec base base64-bytestring bytestring cachix-api
+         concurrent-extra conduit conduit-concurrent-map conduit-extra
+         conduit-zstd containers crypton deepseq dhall directory ed25519
+         either exceptions extra filepath fsnotify generic-lens
          hercules-ci-cnix-store here hnix-store-core http-client
-         http-client-tls http-conduit http-types immortal katip lukko
-         lzma-conduit megaparsec memory netrc network optparse-applicative
-         pretty-terminal prettyprinter process protolude resourcet retry
-         safe-exceptions servant servant-auth servant-auth-client
-         servant-client servant-conduit stm stm-chans stm-conduit systemd
-         temporary text time unix unordered-containers uri-bytestring uuid
+         http-client-tls http-conduit http-types immortal inline-c-cpp katip
+         lukko lzma-conduit megaparsec memory microlens netrc network
+         nix-narinfo optparse-applicative pretty-terminal prettyprinter
+         process protolude resourcet retry safe-exceptions servant
+         servant-auth servant-auth-client servant-client servant-conduit stm
+         stm-chans stm-conduit systemd temporary text time transformers unix
+         unliftio unliftio-core unordered-containers uri-bytestring uuid
          vector versions websockets wuss
        ];
        libraryPkgconfigDepends = [ nix ];
@@ -58345,8 +58590,9 @@ self: {
          stm-chans stm-conduit time uuid websockets
        ];
        testHaskellDepends = [
-         aeson base bytestring cachix-api dhall directory extra here hspec
-         protolude servant-auth-client servant-client-core temporary
+         aeson base bytestring cachix-api containers dhall directory extra
+         here hspec protolude retry servant-auth-client servant-client-core
+         temporary time
        ];
        testToolDepends = [ hspec-discover ];
        description = "Command-line client for Nix binary cache hosting https://cachix.org";
@@ -58363,8 +58609,8 @@ self: {
      }:
      mkDerivation {
        pname = "cachix-api";
-       version = "1.6.1";
-       sha256 = "07axz6yj1058807zwd6l6nqnklxia2rph7af5cghrxpvnsnk4vcc";
+       version = "1.7";
+       sha256 = "1xv784bylzlzs345y3xx02bf2d0yp3q0fh92rk59q4wg4z8zb733";
        libraryHaskellDepends = [
          aeson async base bytestring conduit cryptonite deriving-aeson
          exceptions http-media jose memory nix-narinfo protolude resourcet
@@ -58421,6 +58667,8 @@ self: {
        ];
        description = "That rabbit's got a vicious streak a mile wide!";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "caf" = callPackage
@@ -58474,6 +58722,8 @@ self: {
        pname = "cairo";
        version = "0.13.10.0";
        sha256 = "16dwjqg8gqk2dzp3qpcvhwdgn16rxxasll8qs2fl2gf84z41h0mf";
+       revision = "2";
+       editedCabalFile = "1irj5yrz74j6wypni9pk9mbd7v2mzcy3ndyl7irada8szgdl3kkv";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [
@@ -58510,6 +58760,8 @@ self: {
        libraryHaskellDepends = [ base cairo linear mtl random time ];
        description = "Simpler drawing API for Cairo";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "cairo-core" = callPackage
@@ -58539,8 +58791,8 @@ self: {
      }:
      mkDerivation {
        pname = "cairo-image";
-       version = "0.1.0.2";
-       sha256 = "1wslqg3gg4iiw8fjrk6nf6kfskjis8n2cxd5ksp2nw487ydijfim";
+       version = "0.1.0.3";
+       sha256 = "0yppvcnsd78cdls67lmz9bbxiqxhl9hxl2n742gls5q1bmi93np2";
        libraryHaskellDepends = [ base c-enum primitive template-haskell ];
        libraryPkgconfigDepends = [ cairo ];
        testHaskellDepends = [ base c-enum primitive template-haskell ];
@@ -58726,6 +58978,7 @@ self: {
        ];
        description = "A library for declaring, parsing, and invoking text-input based commands";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "calc" = callPackage
@@ -58876,10 +59129,8 @@ self: {
      }:
      mkDerivation {
        pname = "call-alloy";
-       version = "0.4.0.3";
-       sha256 = "0aabh7a43cyprwywv8622q860ys2i7mlasigbxaklyj558xma59f";
-       revision = "2";
-       editedCabalFile = "0hwlxg2nmi3wq316wb20f0kv077v9lrjb7705acnnl2a099jx7j5";
+       version = "0.4.1.1";
+       sha256 = "0ykq7vp9qm538q61crl3hbzd3kjia8q5alf5db62zpv80ffsj1pg";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          async base bytestring containers directory extra filepath mtl
@@ -59094,8 +59345,8 @@ self: {
      }:
      mkDerivation {
        pname = "candid";
-       version = "0.5";
-       sha256 = "1va9n08m6y9avbjxgclhasmnbf41bqx0j1s4j12rsblhci5cxqpp";
+       version = "0.5.0.1";
+       sha256 = "1jml5q7ka7jcp9cy8s8zd126lk06c7g5qbgi58s70jypkilh552w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -59355,8 +59606,8 @@ self: {
        pname = "capability";
        version = "0.5.0.1";
        sha256 = "0sksd42ywaq5av7a1h9y66pclsk1fd9qx46q38kgs3av88zhzqci";
-       revision = "2";
-       editedCabalFile = "1kap52pv98sgr2mqxcd66wgxxyjp94p8w1b7b3gqwvk9jcanfwxl";
+       revision = "3";
+       editedCabalFile = "1gh147z0rmxan40wglls6dkm9p0y44wb4h6124g3afkcgpn5vnp0";
        libraryHaskellDepends = [
          base constraints dlist exceptions generic-lens lens monad-control
          mtl mutable-containers primitive reflection safe-exceptions
@@ -59571,8 +59822,8 @@ self: {
      }:
      mkDerivation {
        pname = "car-pool";
-       version = "0.0.1.1";
-       sha256 = "0xbaaynw0bi18lbdxa0n0ypd8qkn6x4y7i7vsan2zawwbkn264sg";
+       version = "0.0.1.2";
+       sha256 = "0yljcxazwbls2k4k19d47x8672v8sa85m9cpmmb1n1sz6zbq9hz0";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -60132,16 +60383,15 @@ self: {
      }) {};
 
   "cases" = callPackage
-    ({ mkDerivation, attoparsec, base, gauge, HTF, HUnit, mwc-random
-     , QuickCheck, rerebase, text
+    ({ mkDerivation, attoparsec, base, criterion, hspec, rerebase, text
      }:
      mkDerivation {
        pname = "cases";
-       version = "0.1.4.2";
-       sha256 = "0sla22xr1b8b1655l2rzhy31lxirahypgri0bphd9l6jy874mr40";
+       version = "0.1.4.3";
+       sha256 = "0fsaprw6q708hpgr8v5kvksa1f0wgjfwckpgds6qxzpaikh73gk4";
        libraryHaskellDepends = [ attoparsec base text ];
-       testHaskellDepends = [ HTF HUnit QuickCheck rerebase ];
-       benchmarkHaskellDepends = [ gauge mwc-random rerebase ];
+       testHaskellDepends = [ hspec rerebase ];
+       benchmarkHaskellDepends = [ criterion rerebase ];
        description = "A converter for spinal, snake and camel cases";
        license = lib.licenses.mit;
      }) {};
@@ -60419,8 +60669,8 @@ self: {
      }:
      mkDerivation {
        pname = "cassava-conduit";
-       version = "0.6.5";
-       sha256 = "0qhyqv0p42p1pkmfrv8sl2mcmmqahrg15yp40ymawp0j997z54v3";
+       version = "0.6.6";
+       sha256 = "1kx90j4rikh9wfvhliixfh4gbvckhb4ka77d891p8ibdlls9xwwh";
        libraryHaskellDepends = [
          array base bifunctors bytestring cassava conduit containers mtl
          text
@@ -60629,8 +60879,8 @@ self: {
     ({ mkDerivation, base, byteslice, bytestring, primitive, text }:
      mkDerivation {
        pname = "castagnoli";
-       version = "0.2.0.1";
-       sha256 = "02kpplvfgiq7qlsd5xq9a5bnvjza3n8zalaakz2y9wxilajsnfp4";
+       version = "0.2.0.2";
+       sha256 = "1cgl3f1rfwn04ib4b3ns2m0kg3r719mws1880wzlwlkxy07r11wx";
        libraryHaskellDepends = [ base byteslice primitive ];
        testHaskellDepends = [ base bytestring primitive text ];
        description = "Portable CRC-32C";
@@ -60975,8 +61225,8 @@ self: {
      }:
      mkDerivation {
        pname = "cayley-client";
-       version = "0.4.19.2";
-       sha256 = "0p8s4r4wgscqll2jd1k3plfq8v89jf344vq5bz5fg9r66kbryjxs";
+       version = "0.4.19.3";
+       sha256 = "1qdjd20axridvb55x3j7bmqmfj4qkbpvz917lb10rxm2fzkyiyvn";
        libraryHaskellDepends = [
          aeson attoparsec base binary bytestring exceptions http-client
          http-conduit lens lens-aeson mtl text transformers
@@ -61838,8 +62088,8 @@ self: {
        pname = "cgi";
        version = "3001.5.0.1";
        sha256 = "044gfqfdw5xdr6mzp5i3956a5fcj15j32zwzzd6ym15nxgrvjqh3";
-       revision = "1";
-       editedCabalFile = "0bl9lnqsm93hic23mdqfd9gykrk9fr3bbfm88qgyj07ycm6jbdaf";
+       revision = "2";
+       editedCabalFile = "1vx49bxgiip1mb8lh5qcvdb9qww474x44a8x5kj087a3npad0xxw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -62270,8 +62520,8 @@ self: {
     ({ mkDerivation, base, bytestring }:
      mkDerivation {
        pname = "charsetdetect";
-       version = "1.1.0.2";
-       sha256 = "1rnm36lvh1g4i9pz87jqqznn8d9pmxlin549ch0nacpi0bn3k0sy";
+       version = "1.1.0.3";
+       sha256 = "1455sw5wl04s3jiqg5rzc80rgs5dqj7clyv93scsqfz4m8wzwwp0";
        libraryHaskellDepends = [ base bytestring ];
        description = "Character set detection using Mozilla's Universal Character Set Detector";
        license = "LGPL";
@@ -62343,6 +62593,26 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "chart-svg_0_6_0_0" = callPackage
+    ({ mkDerivation, adjunctions, attoparsec, base, bytestring, Color
+     , containers, cubicbezier, flatparse, foldl, formatn, markup-parse
+     , mtl, numhask, numhask-array, numhask-space, optics-core, random
+     , string-interpolate, text, time
+     }:
+     mkDerivation {
+       pname = "chart-svg";
+       version = "0.6.0.0";
+       sha256 = "0map3ja2x1mzyqgv0d19wh8s2b4dp0k9pddk9nlp2w9bjcjialxf";
+       libraryHaskellDepends = [
+         adjunctions attoparsec base bytestring Color containers cubicbezier
+         flatparse foldl formatn markup-parse mtl numhask numhask-array
+         numhask-space optics-core random string-interpolate text time
+       ];
+       description = "Charting library targetting SVGs";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "chart-svg-various" = callPackage
     ({ mkDerivation, base, box, box-csv, box-socket, chart-svg
      , concurrency, doctest, foldl, lens, lucid, mealy, numhask
@@ -62515,6 +62785,7 @@ self: {
        ];
        description = "Some monad transformers and typeclasses for text in- and output abstraction";
        license = lib.licenses.agpl3Only;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "chatty-text" = callPackage
@@ -62541,6 +62812,8 @@ self: {
        libraryHaskellDepends = [ base mtl text transformers ];
        description = "Some utilities every serious chatty-based application may need";
        license = lib.licenses.agpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "chatwork" = callPackage
@@ -62974,8 +63247,8 @@ self: {
      }:
      mkDerivation {
        pname = "chiasma";
-       version = "0.10.0.0";
-       sha256 = "116780x6a6avs2w62r32319w6fqhn2iwvxbfrl83h01iskr57x53";
+       version = "0.10.1.0";
+       sha256 = "09nsi5lksmbwqxy76h122kzp23632gvfbngs1vilmqhcf6zrbbg5";
        libraryHaskellDepends = [
          attoparsec base bytestring composition containers exon extra
          first-class-families lens parsec parsers path polysemy
@@ -62997,8 +63270,8 @@ self: {
      }:
      mkDerivation {
        pname = "chiasma-test";
-       version = "0.10.0.0";
-       sha256 = "0244xxn0j53v0jcvj9d11wfrxjwjpr9247nbgqj8ipz5v56amih3";
+       version = "0.10.1.0";
+       sha256 = "0gyr4im2f8x335q3svvyr7lrf5z6ypln764spz986qf5ibg4arrb";
        libraryHaskellDepends = [
          base bytestring chiasma chronos exon hedgehog path path-io polysemy
          polysemy-chronos polysemy-conc polysemy-log polysemy-plugin
@@ -63009,7 +63282,7 @@ self: {
          base chiasma hedgehog lens path-io polysemy polysemy-chronos
          polysemy-plugin polysemy-test prelate tasty tasty-hedgehog
        ];
-       description = "A tmux client for Polysemy";
+       description = "Testing tools for chiasma";
        license = "BSD-2-Clause-Patent";
        hydraPlatforms = lib.platforms.none;
      }) {};
@@ -63037,6 +63310,32 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "chimera_0_4_0_0" = callPackage
+    ({ mkDerivation, adjunctions, base, distributive, infinite-list
+     , mtl, primitive, QuickCheck, random, tasty, tasty-bench
+     , tasty-hunit, tasty-quickcheck, tasty-smallcheck, transformers
+     , vector
+     }:
+     mkDerivation {
+       pname = "chimera";
+       version = "0.4.0.0";
+       sha256 = "0fwwirx911421d48p0hsd8r2hhik1hsf8z7gqysd0cr2riz4b6q7";
+       libraryHaskellDepends = [
+         adjunctions base distributive infinite-list mtl primitive
+         transformers vector
+       ];
+       testHaskellDepends = [
+         base QuickCheck tasty tasty-hunit tasty-quickcheck tasty-smallcheck
+         vector
+       ];
+       benchmarkHaskellDepends = [
+         base mtl random tasty tasty-bench vector
+       ];
+       description = "Lazy infinite streams with O(1) indexing and applications for memoization";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "chiphunk" = callPackage
     ({ mkDerivation, base, c2hs, hashable, safe-exceptions, StateVar
      , vector-space
@@ -63413,6 +63712,36 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "chronos_1_1_6_0" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytebuild, byteslice
+     , bytesmith, bytestring, criterion, deepseq, hashable, HUnit
+     , natural-arithmetic, old-locale, primitive, QuickCheck, semigroups
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , text, text-short, thyme, time, torsor, vector
+     }:
+     mkDerivation {
+       pname = "chronos";
+       version = "1.1.6.0";
+       sha256 = "1pd97xlkgyv8q9ig80qh6kdsmxpnlccs1rrnkpj5mwvfffdsf61s";
+       libraryHaskellDepends = [
+         aeson attoparsec base bytebuild byteslice bytesmith bytestring
+         deepseq hashable natural-arithmetic primitive semigroups text
+         text-short torsor vector
+       ];
+       testHaskellDepends = [
+         aeson attoparsec base bytestring deepseq HUnit QuickCheck
+         test-framework test-framework-hunit test-framework-quickcheck2 text
+         torsor
+       ];
+       benchmarkHaskellDepends = [
+         attoparsec base bytestring criterion deepseq old-locale QuickCheck
+         text text-short thyme time vector
+       ];
+       description = "A high-performance time library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "chronos-bench" = callPackage
     ({ mkDerivation, ansi-terminal, base, bytestring, chronos
      , containers, deepseq, optparse-applicative, process, terminal-size
@@ -63682,25 +64011,26 @@ self: {
 
   "cimple" = callPackage
     ({ mkDerivation, aeson, alex, ansi-wl-pprint, array, base
-     , bytestring, containers, data-fix, filepath, groom, happy, hspec
-     , hspec-discover, monad-parallel, mtl, recursion-schemes, split
-     , text, transformers-compat
+     , bytestring, containers, data-fix, extra, file-embed, filepath
+     , groom, happy, hspec, hspec-discover, monad-parallel, mtl
+     , QuickCheck, split, text, transformers-compat
      }:
      mkDerivation {
        pname = "cimple";
-       version = "0.0.17";
-       sha256 = "0brzkxa09b5ammfm6qlkxffmhlgxfnf115lzdx3xvbq5ciar902x";
+       version = "0.0.20";
+       sha256 = "0p3z5ipg9j8qlajxc4rq0jnnc1qawlh0dpd0n9bjhn801d9x2qai";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson ansi-wl-pprint array base bytestring containers data-fix
-         filepath monad-parallel mtl recursion-schemes split text
+         file-embed filepath monad-parallel mtl split text
          transformers-compat
        ];
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [ base bytestring groom text ];
        testHaskellDepends = [
-         ansi-wl-pprint base data-fix hspec text transformers-compat
+         ansi-wl-pprint base data-fix extra hspec QuickCheck text
+         transformers-compat
        ];
        testToolDepends = [ hspec-discover ];
        description = "Simple C-like programming language";
@@ -63948,6 +64278,7 @@ self: {
        description = "Circle API client for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "circle-packing" = callPackage
@@ -65035,6 +65366,21 @@ self: {
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
+  "clay_0_15_0" = callPackage
+    ({ mkDerivation, base, hspec, hspec-discover, mtl, text }:
+     mkDerivation {
+       pname = "clay";
+       version = "0.15.0";
+       sha256 = "1gp7x76cw15jmd3ahqf1q0bc2p6ix182x6s2pzyh8yr4b29b9r3v";
+       libraryHaskellDepends = [ base mtl text ];
+       testHaskellDepends = [ base hspec hspec-discover mtl text ];
+       testToolDepends = [ hspec-discover ];
+       description = "CSS preprocessor as embedded Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.maralorn ];
+     }) {};
+
   "clckwrks" = callPackage
     ({ mkDerivation, acid-state, aeson, aeson-qq, attoparsec, base
      , blaze-html, bytestring, cereal, containers, directory, filepath
@@ -65343,6 +65689,7 @@ self: {
        ];
        description = "Keep your home dir clean by finding old conf files";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "clean-home";
      }) {};
 
@@ -65368,8 +65715,8 @@ self: {
        pname = "cleff";
        version = "0.3.3.0";
        sha256 = "0fnpk28nhafypp7p1ay1760sin9hh06dz23r68gmm93i879ayl9b";
-       revision = "4";
-       editedCabalFile = "07js52a0fjrbd4w653ix0l5xyxjnm46nj7ca5qvacjz0f1sfkgfj";
+       revision = "5";
+       editedCabalFile = "1v33096f5ddn6d3i9x10llj9w9dfp9qfgr2wcjvma02qbpms7x04";
        libraryHaskellDepends = [
          atomic-primops base containers exceptions microlens monad-control
          primitive template-haskell th-abstraction transformers-base
@@ -65423,6 +65770,8 @@ self: {
        testToolDepends = [ lima ];
        description = "Declaratively describe spreadsheets";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "cless" = callPackage
@@ -65800,8 +66149,8 @@ self: {
      }:
      mkDerivation {
        pname = "climb";
-       version = "0.4.1";
-       sha256 = "1h3a3ghynd1k08jd8fb02rsbf9a1y8j9gz822mrc23p11zh4qcp3";
+       version = "0.5.0";
+       sha256 = "0bb2pnh3wb78gym5jyzy9dsw6cvqcmlmy79gbvwyalrx237krvl8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -66359,7 +66708,9 @@ self: {
        executableHaskellDepends = [ base curl mtl random tagsoup ];
        description = "Command line Twitter utility";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "cltw";
+       broken = true;
      }) {};
 
   "clua" = callPackage
@@ -66508,6 +66859,8 @@ self: {
        pname = "cmark";
        version = "0.6.1";
        sha256 = "0ajwb2azv57q4240f76h9xqivkfi16vhi4g2sr4nasr4rmkns789";
+       revision = "1";
+       editedCabalFile = "11c07f13fwn2cdcrary8bs1ym2hjqkm58l9pcdq8avi8dpayb52r";
        libraryHaskellDepends = [ base bytestring text ];
        testHaskellDepends = [ base HUnit text ];
        description = "Fast, accurate CommonMark (Markdown) parser and renderer";
@@ -67004,6 +67357,7 @@ self: {
        executableHaskellDepends = [ base co-log-core polysemy ];
        description = "Composable Contravariant Comonadic Logging Library";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "play-colog-poly";
      }) {};
 
@@ -67056,20 +67410,20 @@ self: {
      }) {};
 
   "coalpit" = callPackage
-    ({ mkDerivation, base, generic-random, megaparsec, network-uri
-     , scientific, tasty, tasty-quickcheck, tasty-travis, time
+    ({ mkDerivation, base, generic-random, network-uri, parsec
+     , scientific, tasty, tasty-quickcheck, time
      }:
      mkDerivation {
        pname = "coalpit";
-       version = "0.1.1.1";
-       sha256 = "0fv5xr71yldqwsm5n69akdc7jm1v9xhskjq5sjq7y72ghblcs6jl";
+       version = "0.2.0.0";
+       sha256 = "18jkw7adlvr8gry71mhz4ykk5qscarws0rm682104r950mxanby2";
        libraryHaskellDepends = [
-         base megaparsec network-uri scientific time
+         base network-uri parsec scientific time
        ];
        testHaskellDepends = [
-         base generic-random tasty tasty-quickcheck tasty-travis
+         base generic-random tasty tasty-quickcheck
        ];
-       description = "Command-line options and DSV parsing and printing";
+       description = "DSV (de)serialization";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -67172,8 +67526,8 @@ self: {
      }:
      mkDerivation {
        pname = "code-conjure";
-       version = "0.5.6";
-       sha256 = "1spkh1ahjjxv46dw799kb9ax1mhp1lqg73dw5gv66snillqbz2a7";
+       version = "0.5.8";
+       sha256 = "00gc0fi6aavga32f1mzsr77sb7c9p3gchimz6mrj6fns0bm04ngc";
        libraryHaskellDepends = [
          base express leancheck speculate template-haskell
        ];
@@ -67182,6 +67536,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "code-conjure_0_5_10" = callPackage
+    ({ mkDerivation, base, express, leancheck, speculate
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "code-conjure";
+       version = "0.5.10";
+       sha256 = "0313b06lmymfhn76nra8msrhxqrvw7hzxsibdsb2vndf9pvah2cf";
+       libraryHaskellDepends = [
+         base express leancheck speculate template-haskell
+       ];
+       testHaskellDepends = [ base express leancheck speculate ];
+       description = "synthesize Haskell functions out of partial definitions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "code-page" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -67408,6 +67779,8 @@ self: {
        ];
        description = "Graphics library for CodeWorld";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "codex" = callPackage
@@ -67729,19 +68102,19 @@ self: {
      }) {};
 
   "coinor-clp" = callPackage
-    ({ mkDerivation, base, clp, comfort-array, deepseq
+    ({ mkDerivation, base, clp, coinutils, comfort-array, deepseq
      , doctest-exitcode-stdio, doctest-lib, linear-programming
      , non-empty, QuickCheck, random, transformers, utility-ht
      }:
      mkDerivation {
        pname = "coinor-clp";
-       version = "0.0.0.1";
-       sha256 = "02jrmb0fbgwzhgcnhv4hh1flz87rvs1xq3sbjrjac7cxxyl3inba";
+       version = "0.0.0.2";
+       sha256 = "0bcwpzmsmf9s8nn7vkwfynjb75x1x8x6bpffmrs55yqc6rvdsn32";
        libraryHaskellDepends = [
          base comfort-array deepseq linear-programming non-empty QuickCheck
          transformers utility-ht
        ];
-       libraryPkgconfigDepends = [ clp ];
+       libraryPkgconfigDepends = [ clp coinutils ];
        testHaskellDepends = [
          base comfort-array doctest-exitcode-stdio doctest-lib
          linear-programming non-empty QuickCheck random transformers
@@ -67750,8 +68123,10 @@ self: {
        description = "Linear Programming using COIN-OR/CLP and comfort-array";
        license = lib.licenses.bsd3;
        badPlatforms = [ "aarch64-linux" ];
+       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.thielema ];
-     }) {inherit (pkgs) clp;};
+       broken = true;
+     }) {inherit (pkgs) clp; coinutils = null;};
 
   "cointracking-imports" = callPackage
     ({ mkDerivation, base, base-compat-batteries, bytestring, cassava
@@ -68231,6 +68606,8 @@ self: {
        ];
        description = "Print and parse colors";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "colourista" = callPackage
@@ -68239,8 +68616,8 @@ self: {
        pname = "colourista";
        version = "0.1.0.2";
        sha256 = "0g06116kjg9pbp0l7n33agqbks3kw5z4rjqyhylha8miah5sxbwn";
-       revision = "3";
-       editedCabalFile = "1q07rz48xrs68gg3pywdivw2m97xbgcb4337jfzdsb0wv6n8z2r5";
+       revision = "4";
+       editedCabalFile = "18g0am78dw8h3xpl01ilzii0hdrm2a4hc7qnn6pwag9wasbc1dl7";
        libraryHaskellDepends = [ ansi-terminal base bytestring text ];
        testHaskellDepends = [ base bytestring hspec text ];
        description = "Convenient interface for printing colourful messages";
@@ -68491,6 +68868,8 @@ self: {
        pname = "combinatorial";
        version = "0.1.1";
        sha256 = "0sz5x3776fr736mwsn582ih1pflkirsk6bqygagsg8jq0nh83v5g";
+       revision = "1";
+       editedCabalFile = "1g68vf9yj87qbmbazlasq11wcb1dd9rx83p95f4lqaji1ipzvq1y";
        libraryHaskellDepends = [
          array base containers transformers utility-ht
        ];
@@ -68557,8 +68936,8 @@ self: {
      }:
      mkDerivation {
        pname = "comfort-array";
-       version = "0.5.3";
-       sha256 = "18s3yg8d2mfj2gkkxg1m2w3lrv1zdgv3bh2fsxzwnygr2p9451r1";
+       version = "0.5.4.2";
+       sha256 = "1fyv4m3qb6rbz1inswzwkbrza1wr3x5gr8p4qbh3bvfqfkj3mh4i";
        libraryHaskellDepends = [
          base containers deepseq guarded-allocation non-empty prelude-compat
          primitive QuickCheck semigroups storable-record storablevector
@@ -68566,7 +68945,7 @@ self: {
        ];
        testHaskellDepends = [
          base ChasingBottoms containers deepseq doctest-exitcode-stdio
-         doctest-lib QuickCheck tagged
+         doctest-lib QuickCheck tagged utility-ht
        ];
        description = "Arrays where the index type is a function of the shape type";
        license = lib.licenses.bsd3;
@@ -68582,6 +68961,8 @@ self: {
        pname = "comfort-array-shape";
        version = "0.0";
        sha256 = "0caw0d9566qi9difgprfg3g9yqfiks2ycqjbr7wx7xcplagqdcn7";
+       revision = "1";
+       editedCabalFile = "0pp391srnrapr13bl1pkpdi5162m2qqw1bfsbis24rn78d50s674";
        libraryHaskellDepends = [
          base comfort-array fixed-length non-empty tfp utility-ht
        ];
@@ -68598,15 +68979,17 @@ self: {
   "comfort-blas" = callPackage
     ({ mkDerivation, base, blas-ffi, comfort-array, containers, deepseq
      , doctest-exitcode-stdio, doctest-lib, guarded-allocation
-     , netlib-ffi, QuickCheck, semigroups, transformers, utility-ht
+     , netlib-ffi, non-empty, QuickCheck, semigroups, storablevector
+     , transformers, utility-ht
      }:
      mkDerivation {
        pname = "comfort-blas";
-       version = "0.0.1";
-       sha256 = "1yfmhv712dnnwlh62gcq2vchmg8vcv54l50jy1mibpx1is7kjcr9";
+       version = "0.0.2";
+       sha256 = "1sw24ai7vlhxvb22y9qf71ak1l55chxdc6x1j5p7m40q5zmahpx6";
        libraryHaskellDepends = [
          base blas-ffi comfort-array containers deepseq guarded-allocation
-         netlib-ffi semigroups transformers utility-ht
+         netlib-ffi non-empty semigroups storablevector transformers
+         utility-ht
        ];
        testHaskellDepends = [
          base comfort-array containers doctest-exitcode-stdio doctest-lib
@@ -68650,6 +69033,8 @@ self: {
        pname = "comfort-glpk";
        version = "0.1";
        sha256 = "06396jgbaxvm2gwksra6gjwqczsvdlif9lal46a8q5sc5cyhcpx1";
+       revision = "1";
+       editedCabalFile = "0hd4i7s68kfky7l6mdka4p144x4h7fbl619ikwq8fg3fdljvihmq";
        libraryHaskellDepends = [
          base comfort-array deepseq glpk-headers linear-programming
          non-empty transformers utility-ht
@@ -68703,6 +69088,7 @@ self: {
        ];
        description = "A format for describing comics";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "comma" = callPackage
@@ -68843,6 +69229,29 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "commonmark_0_2_5" = callPackage
+    ({ mkDerivation, base, bytestring, containers, parsec, tasty
+     , tasty-bench, tasty-hunit, tasty-quickcheck, text, transformers
+     , unicode-data, unicode-transforms
+     }:
+     mkDerivation {
+       pname = "commonmark";
+       version = "0.2.5";
+       sha256 = "1gznvwpcaklglz6hzcpz58x502is6y0axq8cicnbv9410vhzw24a";
+       libraryHaskellDepends = [
+         base bytestring containers parsec text transformers unicode-data
+         unicode-transforms
+       ];
+       testHaskellDepends = [
+         base parsec tasty tasty-hunit tasty-quickcheck text
+         unicode-transforms
+       ];
+       benchmarkHaskellDepends = [ base tasty-bench text ];
+       description = "Pure Haskell commonmark parser";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "commonmark-cli" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, commonmark
      , commonmark-extensions, commonmark-pandoc, containers, mtl
@@ -68864,28 +69273,6 @@ self: {
        mainProgram = "commonmark";
      }) {};
 
-  "commonmark-extensions_0_2_3_2" = callPackage
-    ({ mkDerivation, base, commonmark, containers, emojis, filepath
-     , network-uri, parsec, tasty, tasty-bench, tasty-hunit, text
-     , transformers
-     }:
-     mkDerivation {
-       pname = "commonmark-extensions";
-       version = "0.2.3.2";
-       sha256 = "1k5rlh2grg6g1waszhp565m360n1iynjvbkjz8xmap8y234g1bjj";
-       libraryHaskellDepends = [
-         base commonmark containers emojis filepath network-uri parsec text
-         transformers
-       ];
-       testHaskellDepends = [
-         base commonmark parsec tasty tasty-hunit text
-       ];
-       benchmarkHaskellDepends = [ base commonmark tasty-bench text ];
-       description = "Pure Haskell commonmark parser";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "commonmark-extensions" = callPackage
     ({ mkDerivation, base, commonmark, containers, emojis, filepath
      , network-uri, parsec, tasty, tasty-bench, tasty-hunit, text
@@ -68938,8 +69325,6 @@ self: {
        ];
        description = "Simple interface to commonmark-hs";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "commonmark-wikilink" = callPackage
@@ -69015,8 +69400,8 @@ self: {
     ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "commutative-semigroups";
-       version = "0.1.0.1";
-       sha256 = "1bmafx363gfsd9wwrf3xyrw9mnw6anmc1zdfv0p8597y4lxxach7";
+       version = "0.1.0.2";
+       sha256 = "0r8kagn44ms59qsni71igbryiwb8hv3swq81a1jnac7smfj3l51l";
        libraryHaskellDepends = [ base containers ];
        description = "Commutative semigroups";
        license = lib.licenses.bsd3;
@@ -69054,6 +69439,8 @@ self: {
        ];
        description = "Exotic comonad transformers";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "comonad-random" = callPackage
@@ -69839,6 +70226,33 @@ self: {
      }:
      mkDerivation {
        pname = "composite-base";
+       version = "0.8.2.1";
+       sha256 = "0i2mamh5gz7ay1cm5nkmdbh2lnaph42pfi2aa9jb2baxi0jgxdri";
+       revision = "1";
+       editedCabalFile = "1fww7f7z583vp7kfrf6xi6y0plpm4jsh3j72xbgarprlz25j1aip";
+       libraryHaskellDepends = [
+         base deepseq exceptions lens monad-control mtl profunctors
+         template-haskell text transformers transformers-base unliftio-core
+         vinyl
+       ];
+       testHaskellDepends = [
+         base deepseq exceptions hspec lens monad-control mtl profunctors
+         QuickCheck template-haskell text transformers transformers-base
+         unliftio-core vinyl
+       ];
+       description = "Shared utilities for composite-* packages";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "composite-base_0_8_2_2" = callPackage
+    ({ mkDerivation, base, deepseq, exceptions, hspec, lens
+     , monad-control, mtl, profunctors, QuickCheck, template-haskell
+     , text, transformers, transformers-base, unliftio-core, vinyl
+     }:
+     mkDerivation {
+       pname = "composite-base";
        version = "0.8.2.2";
        sha256 = "1ykicnm8wc18bg3w0jyg943rpnssmi58ksv25mww653c4z5kx7cp";
        libraryHaskellDepends = [
@@ -70074,23 +70488,11 @@ self: {
     ({ mkDerivation, base, composition, contravariant }:
      mkDerivation {
        pname = "composition-extra";
-       version = "2.0.0";
-       sha256 = "0abipab6bx138rynpkh4daj53bv5yqbw94zfswysyq6iix529669";
-       libraryHaskellDepends = [ base composition contravariant ];
-       description = "Combinators for unorthodox structure composition";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "composition-extra_2_1_0" = callPackage
-    ({ mkDerivation, base, composition, contravariant }:
-     mkDerivation {
-       pname = "composition-extra";
        version = "2.1.0";
        sha256 = "0qnli93bpj6088lxs66k2gjpj791jydk3v98461m9q8m45jfg5ys";
        libraryHaskellDepends = [ base composition contravariant ];
        description = "Combinators for unorthodox structure composition";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "composition-prelude" = callPackage
@@ -70890,23 +71292,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "cond";
-       version = "0.4.1.1";
-       sha256 = "12xcjxli1scd4asr4zc77i5q9qka2100gx97hv3vv12l7gj7d703";
-       libraryHaskellDepends = [ base ];
-       description = "Basic conditional and boolean operators with monadic variants";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "cond_0_5_1" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "cond";
        version = "0.5.1";
        sha256 = "06pm5y8f9jybw9ns1p4rmf9z3nrwl394814f77lsmsqv4z0kn58q";
        libraryHaskellDepends = [ base ];
        description = "Basic conditional and boolean operators with monadic variants";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "conditional-restriction-parser" = callPackage
@@ -71184,6 +71574,8 @@ self: {
        ];
        description = "conduit-audio interface to the libsndfile audio file library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "conduit-combinators" = callPackage
@@ -71588,8 +71980,8 @@ self: {
        pname = "conferer";
        version = "1.1.0.0";
        sha256 = "1hkdrqxrac1mbzvd29f6ds4cbihdv0j0daai7yc282myv0varh09";
-       revision = "4";
-       editedCabalFile = "09qw98sy1w80cackq4mncgj4l6faqhh5c49fli3al4sivw1xvr9l";
+       revision = "5";
+       editedCabalFile = "1zg5qxjimmcxqzzi7mpiby8kh39zn9dmxmlidd1wiq6qlmg8l0a6";
        libraryHaskellDepends = [
          base bytestring containers directory filepath text
        ];
@@ -71609,8 +72001,8 @@ self: {
        pname = "conferer-aeson";
        version = "1.1.0.2";
        sha256 = "07rdal3smq1s14zmsn7g26vc6sqj21rsa2a1vcbrwrfgh9x36jkn";
-       revision = "4";
-       editedCabalFile = "0g5bkl5lgy4a2cp2vjhwf8w2gwjl3687r2ckcjz7dmnqpgx06zla";
+       revision = "6";
+       editedCabalFile = "16hf29pszmgfvhb15jm8728sdvmxa38xkappjqljcva3ki73hfbz";
        libraryHaskellDepends = [
          aeson base bytestring conferer directory text unordered-containers
          vector
@@ -71631,8 +72023,8 @@ self: {
        pname = "conferer-dhall";
        version = "1.1.0.0";
        sha256 = "0whxxjz5askw1qxcxdn5094bqm2hy3zp49567v57gqikgv6rcnp1";
-       revision = "2";
-       editedCabalFile = "1d8136m9mq06drs5k903gr0mm79z4898mgq3grzfl821d9bkcgi1";
+       revision = "3";
+       editedCabalFile = "0g0ca2s18swlixpcspdnjmljffnnzw55af3whz59vbrgz6i6l5hq";
        libraryHaskellDepends = [
          base bytestring conferer conferer-aeson dhall dhall-json directory
          text
@@ -71653,8 +72045,8 @@ self: {
        pname = "conferer-hedis";
        version = "1.1.0.0";
        sha256 = "10rk5w3f99ql46yvzg7a0ac59dvpyfhdpv138w0w5ghgz5azcd19";
-       revision = "1";
-       editedCabalFile = "1idrgx558fcxpa76v1lp9fmja0mdgyvwv614id16kpw1yc32nlw8";
+       revision = "2";
+       editedCabalFile = "0nj4i199k1d6x49hg72rsds0zi3ml0vg95qwmgiv3gmf7p2zshr3";
        libraryHaskellDepends = [ base conferer hedis text ];
        testHaskellDepends = [ base conferer hedis hspec text ];
        description = "conferer's FromConfig instances for hedis settings";
@@ -71747,8 +72139,8 @@ self: {
        pname = "conferer-snap";
        version = "1.0.0.0";
        sha256 = "15gz77b5jf35hmcnd6kza1wgzpbgk3pcvhi7mp7yk64ybksld98r";
-       revision = "2";
-       editedCabalFile = "1xm45qifvkvjxfi6b82qmjbk3hgrqynxjn9vhfcf5q9m5m6w5ffx";
+       revision = "3";
+       editedCabalFile = "1003bs7v68gafav7skvrbjnj21hk4lcdgjnmwc53k4nzp80nd367";
        libraryHaskellDepends = [
          base conferer snap-core snap-server text
        ];
@@ -72072,40 +72464,6 @@ self: {
      }) {};
 
   "configuration-tools" = callPackage
-    ({ mkDerivation, aeson, ansi-wl-pprint, attoparsec, base
-     , base-unicode-symbols, bytestring, Cabal, case-insensitive
-     , deepseq, directory, dlist, filepath, mtl, network-uri
-     , optparse-applicative, process, profunctors, semigroupoids
-     , semigroups, text, transformers, unordered-containers, vector
-     , yaml
-     }:
-     mkDerivation {
-       pname = "configuration-tools";
-       version = "0.6.1";
-       sha256 = "1gindjq9vd0fmsw6smwd3syz3k3bfkzsgmchqg6jllr6bhgvykjy";
-       isLibrary = true;
-       isExecutable = true;
-       setupHaskellDepends = [
-         base bytestring Cabal directory filepath process
-       ];
-       libraryHaskellDepends = [
-         aeson ansi-wl-pprint attoparsec base base-unicode-symbols
-         bytestring Cabal case-insensitive deepseq directory dlist filepath
-         mtl network-uri optparse-applicative process profunctors
-         semigroupoids semigroups text transformers unordered-containers
-         vector yaml
-       ];
-       executableHaskellDepends = [ base base-unicode-symbols Cabal mtl ];
-       testHaskellDepends = [
-         base base-unicode-symbols bytestring Cabal mtl text transformers
-         unordered-containers yaml
-       ];
-       description = "Tools for specifying and parsing configurations";
-       license = lib.licenses.mit;
-       mainProgram = "example";
-     }) {};
-
-  "configuration-tools_0_7_0" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base-unicode-symbols
      , bytestring, Cabal, case-insensitive, deepseq, directory, dlist
      , filepath, mtl, network-uri, optparse-applicative, prettyprinter
@@ -72135,7 +72493,6 @@ self: {
        ];
        description = "Tools for specifying and parsing configurations";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "example";
      }) {};
 
@@ -72385,6 +72742,8 @@ self: {
        ];
        description = "Simple and easy network connections API";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "connection-pool" = callPackage
@@ -72502,6 +72861,8 @@ self: {
        libraryHaskellDepends = [ base mtl transformers ];
        description = "Styled console text output using ANSI escape sequences";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "const" = callPackage
@@ -72744,27 +73105,6 @@ self: {
      }) {};
 
   "constraints" = callPackage
-    ({ mkDerivation, base, binary, deepseq, ghc-prim, hashable, hspec
-     , hspec-discover, mtl, transformers, transformers-compat
-     , type-equality
-     }:
-     mkDerivation {
-       pname = "constraints";
-       version = "0.13.4";
-       sha256 = "0d248szyp70k1qlivsimk0j5vz9hdx1alhismry5v35qyinr91j1";
-       revision = "1";
-       editedCabalFile = "0dpxj110kl9msci5czqlvysp3mi6bhah0p4m6z4qlydngcq3920d";
-       libraryHaskellDepends = [
-         base binary deepseq ghc-prim hashable mtl transformers
-         transformers-compat type-equality
-       ];
-       testHaskellDepends = [ base hspec ];
-       testToolDepends = [ hspec-discover ];
-       description = "Constraint manipulation";
-       license = lib.licenses.bsd2;
-     }) {};
-
-  "constraints_0_14" = callPackage
     ({ mkDerivation, base, binary, boring, deepseq, ghc-prim, hashable
      , hspec, hspec-discover, mtl, transformers, type-equality
      }:
@@ -72780,7 +73120,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Constraint manipulation";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "constraints-deriving" = callPackage
@@ -72858,8 +73197,8 @@ self: {
      }:
      mkDerivation {
        pname = "construct";
-       version = "0.3.1.1";
-       sha256 = "0ja4xxlr9pyd2gq3w07847zz3glcx3ygd9bygjhr3ppi2n3fiwx0";
+       version = "0.3.1.2";
+       sha256 = "0z5am4j8s60mwcrzm6bjjdwm09iylxmlf5v6qahyb6bwl1nchsdp";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
@@ -73076,8 +73415,6 @@ self: {
        libraryHaskellDepends = [ base base-unicode-symbols containers ];
        description = "Unicode alternatives for common functions and operators";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "containers-verified" = callPackage
@@ -73254,10 +73591,8 @@ self: {
      }:
      mkDerivation {
        pname = "contiguous";
-       version = "0.6.3.0";
-       sha256 = "1vqzv5xr6dkvw0789rz3z39b7ldm9xrk2sv8c9k2fk14yxl7qibx";
-       revision = "1";
-       editedCabalFile = "1q1yihx7caa639mfmk0a2n881qrj3g3gm9mb6m23bv5xkkbklrmp";
+       version = "0.6.4.0";
+       sha256 = "06s0rx95h2hczs0bp9sqxjmsp84gfzsi6acf088f9p97hw4cvqz9";
        libraryHaskellDepends = [
          base deepseq primitive primitive-unlifted run-st
        ];
@@ -73272,15 +73607,15 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "contiguous_0_6_4_0" = callPackage
+  "contiguous_0_6_4_2" = callPackage
     ({ mkDerivation, base, deepseq, primitive, primitive-unlifted
      , QuickCheck, quickcheck-classes, quickcheck-instances, random
      , random-shuffle, run-st, vector, weigh
      }:
      mkDerivation {
        pname = "contiguous";
-       version = "0.6.4.0";
-       sha256 = "06s0rx95h2hczs0bp9sqxjmsp84gfzsi6acf088f9p97hw4cvqz9";
+       version = "0.6.4.2";
+       sha256 = "0ay0hrdi2gj3b2z81cswmcaphkyy57w532svyc5mm3mncd0ddsm8";
        libraryHaskellDepends = [
          base deepseq primitive primitive-unlifted run-st
        ];
@@ -73288,9 +73623,7 @@ self: {
          base primitive QuickCheck quickcheck-classes quickcheck-instances
          vector
        ];
-       benchmarkHaskellDepends = [
-         base primitive random random-shuffle weigh
-       ];
+       benchmarkHaskellDepends = [ base random random-shuffle weigh ];
        description = "Unified interface for primitive arrays";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -73596,6 +73929,7 @@ self: {
        ];
        description = "Explicitly typed, checked exceptions with stack traces";
        license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "control-monad-exception-monadsfd" = callPackage
@@ -73611,6 +73945,7 @@ self: {
        ];
        description = "Monads-fd instances for the EMT exceptions monad transformer";
        license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "control-monad-exception-monadstf" = callPackage
@@ -73626,6 +73961,7 @@ self: {
        ];
        description = "Monads-tf instances for the EMT exceptions monad transformer";
        license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "control-monad-exception-mtl" = callPackage
@@ -73638,6 +73974,7 @@ self: {
        doHaddock = false;
        description = "MTL instances for the EMT exceptions monad transformer";
        license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "control-monad-failure" = callPackage
@@ -74016,6 +74353,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "cooklang-hs" = callPackage
+    ({ mkDerivation, base, hspec, megaparsec }:
+     mkDerivation {
+       pname = "cooklang-hs";
+       version = "0.1.1";
+       sha256 = "056zzp0zyq7i9phjkadd9sr402jb9g23afqf6p3m0g0vwyy5lgb3";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base megaparsec ];
+       executableHaskellDepends = [ base megaparsec ];
+       testHaskellDepends = [ base hspec megaparsec ];
+       description = "Parser for the Cook markup language";
+       license = lib.licenses.mit;
+       mainProgram = "cooklang-hs";
+     }) {};
+
   "coordinate" = callPackage
     ({ mkDerivation, base, HUnit, lens, papa, transformers }:
      mkDerivation {
@@ -74036,8 +74389,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot";
-       version = "3.17";
-       sha256 = "1vam9nwkpdh43p34ni6kwjpzbdrw16d6wyq02kc2s513zkh46755";
+       version = "3.18.1";
+       sha256 = "1k5fxpa8ww31ggbdkc3j4qjk9mc1jr1i53f71q2wrdiwwlw7km49";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -74058,8 +74411,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-c99";
-       version = "3.17";
-       sha256 = "1zq87sj9s7n6cgsgdz3sk9fjpkns25w8f6f2f6036f972l204vl3";
+       version = "3.18.1";
+       sha256 = "074zyyq37r2d7bxxywpzji56pg642visasjmq3qdfkw6chgckcjb";
        libraryHaskellDepends = [
          base copilot-core directory filepath language-c99
          language-c99-simple mtl pretty
@@ -74097,8 +74450,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-core";
-       version = "3.17";
-       sha256 = "1hzvcvla69y13qwbaq52qb20hk7sln7fv7gz07n36827bp1swjbc";
+       version = "3.18.1";
+       sha256 = "03h8c3kxshbxpli0j2xi6sz4dq0c8vgi0ql5kk89812y993xbsvl";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base HUnit QuickCheck test-framework test-framework-hunit
@@ -74132,8 +74485,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-interpreter";
-       version = "3.17";
-       sha256 = "1ywh4pnr69dd2h3siiwgvbbs9na2l125lipd93y5lhm6ziylm3n5";
+       version = "3.18.1";
+       sha256 = "0mfj78w2rby6h48cv18ql5xg24xsjzghigy7gii1d158rfm4clhg";
        libraryHaskellDepends = [ base copilot-core pretty ];
        testHaskellDepends = [
          base copilot-core copilot-prettyprinter pretty QuickCheck
@@ -74151,8 +74504,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-language";
-       version = "3.17";
-       sha256 = "1z4d6ryg1i47w7cj4awm9iml2fg4bsjfdxmw6zx9i8fbwifz27rs";
+       version = "3.18.1";
+       sha256 = "1kkkyl939ryiddn93ar5vnmc1blg6q6c79fns5jp7216sp7bz332";
        libraryHaskellDepends = [
          array base containers copilot-core copilot-interpreter
          copilot-theorem data-reify mtl
@@ -74167,14 +74520,21 @@ self: {
      }) {};
 
   "copilot-libraries" = callPackage
-    ({ mkDerivation, base, containers, copilot-language, mtl, parsec }:
+    ({ mkDerivation, base, containers, copilot-interpreter
+     , copilot-language, copilot-theorem, mtl, parsec, QuickCheck
+     , test-framework, test-framework-quickcheck2
+     }:
      mkDerivation {
        pname = "copilot-libraries";
-       version = "3.17";
-       sha256 = "1ma1yz0n2437y1yzmy9xa77y1739q6jh2203wbmdpk844yac4ki2";
+       version = "3.18.1";
+       sha256 = "1h8vcxhmxws2mrk25h59wf2nijxhk2ckq2rlg8hzbr0z1qbb8ps3";
        libraryHaskellDepends = [
          base containers copilot-language mtl parsec
        ];
+       testHaskellDepends = [
+         base copilot-interpreter copilot-language copilot-theorem
+         QuickCheck test-framework test-framework-quickcheck2
+       ];
        description = "Libraries for the Copilot language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -74184,8 +74544,8 @@ self: {
     ({ mkDerivation, base, copilot-core, pretty }:
      mkDerivation {
        pname = "copilot-prettyprinter";
-       version = "3.17";
-       sha256 = "1mafaidkcw1a0726drkwn6w6vvw3sxyjpg9d9hdxbqszva1hr1nw";
+       version = "3.18.1";
+       sha256 = "0z3jrk58jii5l34bwnr9x5j38bkia0lz3bj1q0qs2kln05kwbw2k";
        libraryHaskellDepends = [ base copilot-core pretty ];
        description = "A prettyprinter of Copilot Specifications";
        license = lib.licenses.bsd3;
@@ -74210,23 +74570,73 @@ self: {
   "copilot-theorem" = callPackage
     ({ mkDerivation, base, bimap, bv-sized, containers, copilot-core
      , copilot-prettyprinter, data-default, directory, libBF, mtl, panic
-     , parameterized-utils, parsec, pretty, process, random
-     , transformers, what4, xml
+     , parameterized-utils, parsec, pretty, process, QuickCheck, random
+     , test-framework, test-framework-quickcheck2, transformers, what4
+     , xml
      }:
      mkDerivation {
        pname = "copilot-theorem";
-       version = "3.17";
-       sha256 = "1541x96dkdndc0v2g50h27bg887bx4lxdpq8gh5sd878laqm785m";
+       version = "3.18.1";
+       sha256 = "14s4409p72sgm6q291x3lf4xmklirak26dxcp837cvidvdfkqabr";
        libraryHaskellDepends = [
          base bimap bv-sized containers copilot-core copilot-prettyprinter
          data-default directory libBF mtl panic parameterized-utils parsec
          pretty process random transformers what4 xml
        ];
+       testHaskellDepends = [
+         base copilot-core QuickCheck test-framework
+         test-framework-quickcheck2
+       ];
        description = "k-induction for Copilot";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "copilot-verifier" = callPackage
+    ({ mkDerivation, aeson, base, bv-sized, bytestring
+     , case-insensitive, containers, copilot, copilot-c99, copilot-core
+     , copilot-language, copilot-libraries, copilot-prettyprinter
+     , copilot-theorem, crucible, crucible-llvm, crux, crux-llvm
+     , filepath, lens, llvm-pretty, mtl, optparse-applicative, panic
+     , parameterized-utils, prettyprinter, silently, tasty
+     , tasty-expected-failure, tasty-hunit, text, transformers, vector
+     , what4
+     }:
+     mkDerivation {
+       pname = "copilot-verifier";
+       version = "0.1";
+       sha256 = "1vyws26bqfdfbp3yynx6qrdm1r7snilci6wynhqzaa41fn9h0s75";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bv-sized bytestring case-insensitive containers copilot
+         copilot-c99 copilot-core copilot-language copilot-libraries
+         copilot-prettyprinter copilot-theorem crucible crucible-llvm crux
+         crux-llvm filepath lens llvm-pretty mtl panic parameterized-utils
+         prettyprinter text transformers vector what4
+       ];
+       executableHaskellDepends = [
+         aeson base bv-sized bytestring case-insensitive containers copilot
+         copilot-c99 copilot-core copilot-language copilot-libraries
+         copilot-prettyprinter copilot-theorem crucible crucible-llvm crux
+         crux-llvm filepath lens llvm-pretty mtl optparse-applicative panic
+         parameterized-utils prettyprinter text transformers vector what4
+       ];
+       testHaskellDepends = [
+         aeson base bv-sized bytestring case-insensitive containers copilot
+         copilot-c99 copilot-core copilot-language copilot-libraries
+         copilot-prettyprinter copilot-theorem crucible crucible-llvm crux
+         crux-llvm filepath lens llvm-pretty mtl panic parameterized-utils
+         prettyprinter silently tasty tasty-expected-failure tasty-hunit
+         text transformers vector what4
+       ];
+       doHaddock = false;
+       description = "System for verifying the correctness of generated Copilot programs";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "verify-examples";
+     }) {};
+
   "copr" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, hlint
      , HsOpenSSL, http-streams, io-streams, semigroups, text
@@ -74249,22 +74659,6 @@ self: {
      }) {};
 
   "copr-api" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, directory, http-query
-     , text, unordered-containers
-     }:
-     mkDerivation {
-       pname = "copr-api";
-       version = "0.1.0";
-       sha256 = "0v28y0xnjk9hl66hsi17g5h6mrsg1a6b9p6r05r41cnd8a093vb0";
-       libraryHaskellDepends = [
-         aeson base bytestring directory http-query text
-         unordered-containers
-       ];
-       description = "Copr API client libary";
-       license = lib.licenses.gpl3Only;
-     }) {};
-
-  "copr-api_0_2_0" = callPackage
     ({ mkDerivation, aeson, base, http-query, text
      , unordered-containers
      }:
@@ -74277,7 +74671,6 @@ self: {
        ];
        description = "Copr API client libary";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "coquina" = callPackage
@@ -74288,8 +74681,8 @@ self: {
      }:
      mkDerivation {
        pname = "coquina";
-       version = "0.1.0.0";
-       sha256 = "1ag3r4p9v5vbkwh808swsz1f6ii6jk0rri8m9li7qdiixlnhykj1";
+       version = "0.1.0.1";
+       sha256 = "1dgh4i38k8mxw6glinqpxyqcmr850jscmc0sq3pnyfj8gzfllndk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -74374,6 +74767,8 @@ self: {
        ];
        description = "Interoperability with the effectful effects system";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "core-haskell" = callPackage
@@ -74403,27 +74798,6 @@ self: {
      }:
      mkDerivation {
        pname = "core-program";
-       version = "0.6.9.4";
-       sha256 = "0pi3jp58rvff714zzazi5qkc7p708wk9xyd22i0vyjwiznnmpnyn";
-       libraryHaskellDepends = [
-         base bytestring core-data core-text directory exceptions filepath
-         fsnotify githash hashable hourglass mtl prettyprinter process
-         safe-exceptions stm template-haskell terminal-size text text-short
-         transformers typed-process unix unliftio-core
-       ];
-       description = "Opinionated Haskell Interoperability";
-       license = lib.licenses.mit;
-     }) {};
-
-  "core-program_0_7_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, core-data, core-text, directory
-     , exceptions, filepath, fsnotify, githash, hashable, hourglass, mtl
-     , prettyprinter, process, safe-exceptions, stm, template-haskell
-     , terminal-size, text, text-short, transformers, typed-process
-     , unix, unliftio-core
-     }:
-     mkDerivation {
-       pname = "core-program";
        version = "0.7.0.0";
        sha256 = "17xbah7g8apcksn5x32cqwcfxd6xw5z1msx0rsjg2nyyn559p2vb";
        libraryHaskellDepends = [
@@ -74434,7 +74808,6 @@ self: {
        ];
        description = "Opinionated Haskell Interoperability";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "core-telemetry" = callPackage
@@ -74841,36 +75214,6 @@ self: {
      }:
      mkDerivation {
        pname = "country";
-       version = "0.2.3.1";
-       sha256 = "0c601fa2m6f5b9g7i1azh9aqhnsiqcrpqmngwnhrxf8gm4jh5yi5";
-       revision = "1";
-       editedCabalFile = "1l8ik38d92xrhfd9a6an4i5zcmvqpxicggdihy6hcj1yl1997qsc";
-       libraryHaskellDepends = [
-         aeson attoparsec base bytebuild bytehash byteslice bytestring
-         contiguous deepseq entropy hashable primitive primitive-unlifted
-         scientific text text-short unordered-containers
-       ];
-       testHaskellDepends = [
-         base byteslice primitive QuickCheck quickcheck-classes tasty
-         tasty-quickcheck text text-short
-       ];
-       benchmarkHaskellDepends = [
-         base bytehash byteslice bytestring compact gauge primitive text
-       ];
-       description = "Country data type and functions";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
-  "country_0_2_4_1" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytebuild, bytehash
-     , byteslice, bytestring, compact, contiguous, deepseq, entropy
-     , gauge, hashable, primitive, primitive-unlifted, QuickCheck
-     , quickcheck-classes, scientific, tasty, tasty-quickcheck, text
-     , text-short, unordered-containers
-     }:
-     mkDerivation {
-       pname = "country";
        version = "0.2.4.1";
        sha256 = "1nn3vkyczpc3m4bxfkl6px893l63cp0281z4nlp2063d2azb20r8";
        libraryHaskellDepends = [
@@ -74887,7 +75230,6 @@ self: {
        ];
        description = "Country data type and functions";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "country-codes" = callPackage
@@ -75172,6 +75514,7 @@ self: {
        ];
        description = "Crypto Pseudo Random Number Generator using AES in counter mode";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "cprng-aes-effect" = callPackage
@@ -75202,6 +75545,8 @@ self: {
        libraryHaskellDepends = [ base mtl mtl-compat ];
        description = "ExceptT replacement in CPS style";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "cpsa" = callPackage
@@ -75584,6 +75929,25 @@ self: {
        mainProgram = "crackNum";
      }) {};
 
+  "crackNum_3_6" = callPackage
+    ({ mkDerivation, base, directory, filepath, libBF, process, sbv
+     , tasty, tasty-golden
+     }:
+     mkDerivation {
+       pname = "crackNum";
+       version = "3.6";
+       sha256 = "1rnjqc4jphxsh6ax1qhlw6hg4za6wkp28a9r4s5cj7dwva585f2g";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base directory filepath libBF process sbv tasty tasty-golden
+       ];
+       description = "Crack various integer and floating-point data formats";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "crackNum";
+     }) {};
+
   "craft" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
      , bytestring, conduit, conduit-combinators, conduit-extra
@@ -75803,8 +76167,8 @@ self: {
      }:
      mkDerivation {
        pname = "crdt-event-fold";
-       version = "1.8.0.0";
-       sha256 = "0n8s6f6vvgpyv36m28j3r0xa9k2dnlprbakhg68iq814xa4x43h4";
+       version = "1.8.0.2";
+       sha256 = "15w9az68fsg0d19xhl9ayafrqcf9pbjaj2hg06803733lp905gac";
        libraryHaskellDepends = [
          aeson base binary containers data-default-class data-dword
          exceptions monad-logger mtl transformers
@@ -76055,42 +76419,6 @@ self: {
      , binary, binary-orphans, bytestring, cassava, code-page
      , containers, criterion-measurement, deepseq, directory, exceptions
      , filepath, Glob, HUnit, js-chart, microstache, mtl, mwc-random
-     , optparse-applicative, parsec, QuickCheck, statistics, tasty
-     , tasty-hunit, tasty-quickcheck, text, time, transformers
-     , transformers-compat, vector, vector-algorithms
-     }:
-     mkDerivation {
-       pname = "criterion";
-       version = "1.6.1.0";
-       sha256 = "136qrgx0gpjrh5dy3arp0gwk6hnhg4i7pz406xwl1p5cj3acii3r";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson base base-compat-batteries binary binary-orphans bytestring
-         cassava code-page containers criterion-measurement deepseq
-         directory exceptions filepath Glob js-chart microstache mtl
-         mwc-random optparse-applicative parsec statistics text time
-         transformers transformers-compat vector vector-algorithms
-       ];
-       executableHaskellDepends = [
-         base base-compat-batteries optparse-applicative
-       ];
-       testHaskellDepends = [
-         aeson base base-compat base-compat-batteries bytestring deepseq
-         directory HUnit QuickCheck statistics tasty tasty-hunit
-         tasty-quickcheck vector
-       ];
-       description = "Robust, reliable performance measurement and analysis";
-       license = lib.licenses.bsd3;
-       mainProgram = "criterion-report";
-     }) {};
-
-  "criterion_1_6_3_0" = callPackage
-    ({ mkDerivation, aeson, base, base-compat, base-compat-batteries
-     , binary, binary-orphans, bytestring, cassava, code-page
-     , containers, criterion-measurement, deepseq, directory, exceptions
-     , filepath, Glob, HUnit, js-chart, microstache, mtl, mwc-random
      , optparse-applicative, parsec, prettyprinter
      , prettyprinter-ansi-terminal, QuickCheck, statistics, tasty
      , tasty-hunit, tasty-quickcheck, text, time, transformers
@@ -76121,7 +76449,6 @@ self: {
        ];
        description = "Robust, reliable performance measurement and analysis";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "criterion-report";
      }) {};
 
@@ -76264,6 +76591,7 @@ self: {
        description = "Criu RPC protocol buffer types";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) protobuf;};
 
   "crjdt-haskell" = callPackage
@@ -76324,10 +76652,8 @@ self: {
      }:
      mkDerivation {
        pname = "cron";
-       version = "0.7.0";
-       sha256 = "0f8jb2pxy89hkdnm20yz88b3j3vgh1a9c1dxiym3150izp34ikd5";
-       revision = "1";
-       editedCabalFile = "1xlfpdb7f5ycdn19f3a8c4lzr7w4cv02g6k83rrm4a8xbdda66hg";
+       version = "0.7.1";
+       sha256 = "1q0ahnb6cxlqdq3g5i082k0aaf23f88ik1mz8066i015r406x07i";
        libraryHaskellDepends = [
          attoparsec base data-default-class mtl mtl-compat old-locale
          semigroups text time
@@ -76396,6 +76722,83 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "crucible" = callPackage
+    ({ mkDerivation, base, bimap, bv-sized, containers, exceptions, fgl
+     , hashable, hspec, json, lens, mtl, panic, parameterized-utils
+     , prettyprinter, QuickCheck, tasty, tasty-hspec, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, th-abstraction, time
+     , transformers, unordered-containers, vector, what4
+     }:
+     mkDerivation {
+       pname = "crucible";
+       version = "0.7";
+       sha256 = "0wz71bx59bysylb8w05d59awh6l9bbw3na6xk4j9dprjx5caccjk";
+       libraryHaskellDepends = [
+         base bimap bv-sized containers exceptions fgl hashable json lens
+         mtl panic parameterized-utils prettyprinter template-haskell text
+         th-abstraction time transformers unordered-containers vector what4
+       ];
+       testHaskellDepends = [
+         base containers hspec mtl panic parameterized-utils QuickCheck
+         tasty tasty-hspec tasty-hunit tasty-quickcheck what4
+       ];
+       description = "Crucible is a library for language-agnostic symbolic simulation";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "crucible-llvm" = callPackage
+    ({ mkDerivation, attoparsec, base, bv-sized, bytestring, containers
+     , crucible, crucible-symio, directory, extra, filepath, itanium-abi
+     , lens, llvm-pretty, llvm-pretty-bc-parser, mtl
+     , parameterized-utils, pretty, prettyprinter, process, tasty
+     , tasty-hunit, tasty-quickcheck, tasty-sugar, template-haskell
+     , text, transformers, utf8-string, vector, what4
+     }:
+     mkDerivation {
+       pname = "crucible-llvm";
+       version = "0.6";
+       sha256 = "0mjyldz65qssx31fryv74wmkfz68j735cvcp6qd2z02p73fbbdi7";
+       libraryHaskellDepends = [
+         attoparsec base bv-sized bytestring containers crucible
+         crucible-symio extra itanium-abi lens llvm-pretty mtl
+         parameterized-utils pretty prettyprinter template-haskell text
+         transformers utf8-string vector what4
+       ];
+       testHaskellDepends = [
+         base bv-sized containers crucible directory filepath lens
+         llvm-pretty llvm-pretty-bc-parser parameterized-utils process tasty
+         tasty-hunit tasty-quickcheck tasty-sugar vector what4
+       ];
+       description = "Support for translating and executing LLVM code in Crucible";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "crucible-symio" = callPackage
+    ({ mkDerivation, aeson, base, bv-sized, bytestring, containers
+     , crucible, directory, filemanip, filepath, IntervalMap, lens, mtl
+     , parameterized-utils, tasty, tasty-hunit, text, what4
+     }:
+     mkDerivation {
+       pname = "crucible-symio";
+       version = "0.1";
+       sha256 = "0b6c1sk7lg8qf3v1z4shzqwqcbwqbf4sir28iz52063pakvgr4q8";
+       libraryHaskellDepends = [
+         aeson base bv-sized bytestring containers crucible directory
+         filemanip filepath IntervalMap lens mtl parameterized-utils text
+         what4
+       ];
+       testHaskellDepends = [
+         aeson base bv-sized bytestring containers crucible directory
+         filemanip filepath IntervalMap lens mtl parameterized-utils tasty
+         tasty-hunit text what4
+       ];
+       description = "An implementation of symbolic I/O primitives for Crucible";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "cruncher-types" = callPackage
     ({ mkDerivation, aeson, base, containers, hlint, lens, text }:
      mkDerivation {
@@ -76431,6 +76834,69 @@ self: {
        broken = true;
      }) {};
 
+  "crux" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, async, attoparsec, base
+     , bv-sized, bytestring, config-schema, config-value, containers
+     , contravariant, crucible, directory, filepath, generic-lens, Glob
+     , lens, libBF, lumberjack, parameterized-utils, prettyprinter
+     , raw-strings-qq, semigroupoids, simple-get-opt, split
+     , terminal-size, text, time, vector, what4, xml, yaml
+     }:
+     mkDerivation {
+       pname = "crux";
+       version = "0.7";
+       sha256 = "0bbkg6l5322a50wgfdswq9m75vinm5xfv7lwl4sfy6604ckjy85i";
+       libraryHaskellDepends = [
+         aeson ansi-terminal async attoparsec base bv-sized bytestring
+         config-schema config-value containers contravariant crucible
+         directory filepath generic-lens Glob lens libBF lumberjack
+         parameterized-utils prettyprinter raw-strings-qq semigroupoids
+         simple-get-opt split terminal-size text time vector what4 xml yaml
+       ];
+       description = "Simple top-level library for Crucible Simulation";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "crux-llvm" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, base16-bytestring
+     , bv-sized, bytestring, config-schema, containers, crucible
+     , crucible-llvm, crucible-symio, crux, cryptohash-sha256, directory
+     , extra, filepath, indexed-traversable, lens, llvm-pretty
+     , llvm-pretty-bc-parser, logict, lumberjack, mtl
+     , parameterized-utils, prettyprinter, process, regex-base
+     , regex-posix, tasty, tasty-hunit, tasty-sugar, text, time, unix
+     , versions, websockets, what4
+     }:
+     mkDerivation {
+       pname = "crux-llvm";
+       version = "0.8";
+       sha256 = "116vgh9h2dmx1cahs2kl7rm46v9wn88x6i1pjp5m1z6mw9694xh4";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bv-sized bytestring config-schema containers crucible
+         crucible-llvm crucible-symio crux directory filepath lens
+         llvm-pretty llvm-pretty-bc-parser logict mtl parameterized-utils
+         prettyprinter process text what4
+       ];
+       executableHaskellDepends = [
+         aeson attoparsec base base16-bytestring bytestring containers
+         crucible crucible-llvm crucible-symio crux cryptohash-sha256
+         directory extra filepath indexed-traversable lens lumberjack
+         process text time unix websockets what4
+       ];
+       testHaskellDepends = [
+         base bytestring containers crucible crucible-llvm crucible-symio
+         crux directory extra filepath lens process regex-base regex-posix
+         tasty tasty-hunit tasty-sugar text versions what4
+       ];
+       description = "A verification tool for C programs";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "crypt-sha512" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, cryptohash-sha512
      , libxcrypt, quickcheck-instances, tasty, tasty-hunit
@@ -76601,7 +77067,9 @@ self: {
        testHaskellDepends = [ base HUnit QuickCheck ];
        description = "An Enigma machine simulator with display";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "enigma";
+       broken = true;
      }) {};
 
   "crypto-keys-ssh" = callPackage
@@ -76743,6 +77211,8 @@ self: {
        libraryHaskellDepends = [ base bytestring securemem unix vector ];
        description = "Simple cryptographic random related types";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "crypto-random-api" = callPackage
@@ -76853,12 +77323,18 @@ self: {
      }) {};
 
   "crypto-token" = callPackage
-    ({ mkDerivation, array, base, crypton, memory }:
+    ({ mkDerivation, array, base, bytestring, crypton, hspec
+     , hspec-discover, memory, network-byte-order
+     }:
      mkDerivation {
        pname = "crypto-token";
-       version = "0.0.2";
-       sha256 = "04rdbfdvnf8wdfzqg32rzxjp1gbk7yjzhdiyf5rmzym2qb7y8jpf";
-       libraryHaskellDepends = [ array base crypton memory ];
+       version = "0.1.1";
+       sha256 = "1x5xfrdi9y207fvk266wc2b6gj9mzvgsi6sy2zsqg6k8acf61vfc";
+       libraryHaskellDepends = [
+         array base bytestring crypton memory network-byte-order
+       ];
+       testHaskellDepends = [ base bytestring hspec ];
+       testToolDepends = [ hspec-discover ];
        description = "crypto tokens";
        license = lib.licenses.bsd3;
      }) {};
@@ -77143,8 +77619,8 @@ self: {
      }:
      mkDerivation {
        pname = "cryptol";
-       version = "3.0.0";
-       sha256 = "0kymqn6v2k2v8nyrcbr9kimxjdy6363mxqb1a5vg6w2im3360il4";
+       version = "3.1.0";
+       sha256 = "00qb0pmhmjcfkg6a7x948azp35rriajh4bfa1r8yb78in0ahyngj";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -77178,28 +77654,6 @@ self: {
      }:
      mkDerivation {
        pname = "crypton";
-       version = "0.32";
-       sha256 = "13108lxrnlmh3gi828lmqcz42v9id6pr3v9ph288yx2s6zyr0j2l";
-       libraryHaskellDepends = [
-         base basement bytestring deepseq ghc-prim integer-gmp memory
-       ];
-       testHaskellDepends = [
-         base bytestring memory tasty tasty-hunit tasty-kat tasty-quickcheck
-       ];
-       benchmarkHaskellDepends = [
-         base bytestring deepseq gauge memory random
-       ];
-       description = "Cryptography Primitives sink";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "crypton_0_34" = callPackage
-    ({ mkDerivation, base, basement, bytestring, deepseq, gauge
-     , ghc-prim, integer-gmp, memory, random, tasty, tasty-hunit
-     , tasty-kat, tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "crypton";
        version = "0.34";
        sha256 = "1mhypjhzn95in853bp7ary0a2xc6lsji6j8hrrgn2mfa4ilq8i24";
        libraryHaskellDepends = [
@@ -77213,7 +77667,6 @@ self: {
        ];
        description = "Cryptography Primitives sink";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "crypton-conduit" = callPackage
@@ -77255,6 +77708,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "crypton-connection_0_3_2" = callPackage
+    ({ mkDerivation, base, basement, bytestring, containers
+     , crypton-x509, crypton-x509-store, crypton-x509-system
+     , crypton-x509-validation, data-default-class, network, socks, tls
+     }:
+     mkDerivation {
+       pname = "crypton-connection";
+       version = "0.3.2";
+       sha256 = "07lrkv6lwphsyp4797yp8ywnndzd270bk58r8gwyby0hr4xy52r0";
+       libraryHaskellDepends = [
+         base basement bytestring containers crypton-x509 crypton-x509-store
+         crypton-x509-system crypton-x509-validation data-default-class
+         network socks tls
+       ];
+       description = "Simple and easy network connections API";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "crypton-x509" = callPackage
     ({ mkDerivation, asn1-encoding, asn1-parse, asn1-types, base
      , bytestring, containers, crypton, hourglass, memory, mtl, pem
@@ -77547,6 +78019,7 @@ self: {
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "csg-raycaster";
+       broken = true;
      }) {};
 
   "csound-catalog" = callPackage
@@ -77854,6 +78327,8 @@ self: {
        ];
        description = "A flexible, fast, conduit-based CSV parser library for Haskell";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "csv-enumerator" = callPackage
@@ -78047,7 +78522,9 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Implementation of Univalence in Cubical Sets";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "cubical";
+       broken = true;
      }) {};
 
   "cubicbezier" = callPackage
@@ -78199,6 +78676,8 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Bindings to the CUDD binary decision diagrams library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) cudd;};
 
   "cue-sheet" = callPackage
@@ -78210,8 +78689,8 @@ self: {
        pname = "cue-sheet";
        version = "2.0.2";
        sha256 = "0n8a5m5qlz8dz03sphj9pybfjfkc0gngpmh56h6idj88frn1z947";
-       revision = "2";
-       editedCabalFile = "0qri8cm9spcpc0g782b0liq9bv350n6cgblnni2dr3q8m6jvkfxx";
+       revision = "3";
+       editedCabalFile = "1qs26dnfk33bzlvj8mhaw8h1qrcviqyizzwhi58sff01zzcd0r2y";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers exceptions megaparsec mtl QuickCheck
@@ -78483,25 +78962,6 @@ self: {
      }) {};
 
   "currycarbon" = callPackage
-    ({ mkDerivation, base, filepath, math-functions
-     , optparse-applicative, parsec, vector
-     }:
-     mkDerivation {
-       pname = "currycarbon";
-       version = "0.2.1.2";
-       sha256 = "0f2c4600058syw3qpy5c7jzxc2q0n2zvvjvad2ffv52zfbvysk20";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base filepath math-functions parsec vector
-       ];
-       executableHaskellDepends = [ base filepath optparse-applicative ];
-       description = "A package for simple, fast radiocarbon calibration";
-       license = lib.licenses.mit;
-       mainProgram = "currycarbon";
-     }) {};
-
-  "currycarbon_0_3_0_1" = callPackage
     ({ mkDerivation, base, filepath, hspec, hspec-core, math-functions
      , MonadRandom, optparse-applicative, parsec, process, random
      , vector
@@ -78519,7 +78979,6 @@ self: {
        testHaskellDepends = [ base hspec hspec-core process ];
        description = "A package for simple, fast radiocarbon calibration";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "currycarbon";
      }) {};
 
@@ -78545,12 +79004,12 @@ self: {
      , criterion, exceptions, fast-builder, hashable, network
      , network-byte-order, optparse-generic, stm, stm-containers
      , streamly, streamly-bytestring, streamly-core, tasty, tasty-hunit
-     , time, uuid, winery
+     , text, time, uuid, winery
      }:
      mkDerivation {
        pname = "curryer-rpc";
-       version = "0.3.1";
-       sha256 = "0kw2xsiyrpi2qg5fhb2zl7b593qksqpkmb3j28wf39xm7k2gw1m0";
+       version = "0.3.5";
+       sha256 = "0iph39bnk5ymzq81vpvyjf7a2h5a43d90pj7b22hgcahrxl4mz8l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -78563,7 +79022,7 @@ self: {
        ];
        testHaskellDepends = [
          async base bytestring network stm streamly-bytestring streamly-core
-         tasty tasty-hunit winery
+         tasty tasty-hunit text winery
        ];
        benchmarkHaskellDepends = [
          async base bytestring criterion network winery
@@ -78651,30 +79110,45 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "cursor-fuzzy-time_0_1_0_0" = callPackage
+    ({ mkDerivation, base, cursor, deepseq, fuzzy-time, megaparsec
+     , microlens, text, time, validity
+     }:
+     mkDerivation {
+       pname = "cursor-fuzzy-time";
+       version = "0.1.0.0";
+       sha256 = "1ddw4grs4q2gpyyls5r32qhzbllsvfw8k7vfda5hqawam69cg2a3";
+       libraryHaskellDepends = [
+         base cursor deepseq fuzzy-time megaparsec microlens text time
+         validity
+       ];
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "cursor-fuzzy-time-gen" = callPackage
-    ({ mkDerivation, base, containers, criterion, cursor-fuzzy-time
-     , cursor-gen, deepseq, fuzzy-time, fuzzy-time-gen, genvalidity
-     , genvalidity-criterion, genvalidity-hspec
-     , genvalidity-hspec-optics, genvalidity-time, hspec, megaparsec
-     , QuickCheck, text, time
+    ({ mkDerivation, base, criterion, cursor-fuzzy-time, cursor-gen
+     , fuzzy-time, fuzzy-time-gen, genvalidity, genvalidity-criterion
+     , genvalidity-hspec, genvalidity-hspec-optics, genvalidity-time
+     , hspec, QuickCheck, time
      }:
      mkDerivation {
        pname = "cursor-fuzzy-time-gen";
-       version = "0.1.0.0";
-       sha256 = "12bwxpghgry3dhlpny4zmyjf4xillrajdr2xas07aknddks5bzn1";
+       version = "0.2.0.0";
+       sha256 = "04cywjp0kjya0shhas6jiyndgshbnkg21f8zj4saw7587mf8nphb";
        libraryHaskellDepends = [
-         base containers cursor-fuzzy-time cursor-gen deepseq fuzzy-time
-         fuzzy-time-gen genvalidity genvalidity-time megaparsec time
+         base cursor-fuzzy-time cursor-gen fuzzy-time-gen genvalidity
+         genvalidity-time
        ];
        testHaskellDepends = [
-         base cursor-fuzzy-time fuzzy-time genvalidity genvalidity-hspec
-         genvalidity-hspec-optics genvalidity-time hspec megaparsec
-         QuickCheck text time
+         base cursor-fuzzy-time fuzzy-time genvalidity-hspec
+         genvalidity-hspec-optics hspec QuickCheck time
        ];
        benchmarkHaskellDepends = [
-         base criterion cursor-fuzzy-time genvalidity-criterion QuickCheck
+         base criterion cursor-fuzzy-time genvalidity-criterion
        ];
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "cursor-gen" = callPackage
@@ -78787,6 +79261,8 @@ self: {
        testHaskellDepends = [ base template-haskell ];
        description = "Customizable string interpolation quasiquoters";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "custom-prelude" = callPackage
@@ -79023,6 +79499,8 @@ self: {
        doHaddock = false;
        description = "Digits 0-9";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "d3d11binding" = callPackage
@@ -79069,6 +79547,8 @@ self: {
        libraryHaskellDepends = [ base directory unix ];
        description = "Start background daemons by double-forking";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "daemons" = callPackage
@@ -79078,34 +79558,6 @@ self: {
      }:
      mkDerivation {
        pname = "daemons";
-       version = "0.3.0";
-       sha256 = "05h03qk31lank60cd0ig9h4rf8zl6p4li5smba919lgpm89lyvy3";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base bytestring cereal data-default directory filepath ghc-prim
-         network pipes transformers unix
-       ];
-       executableHaskellDepends = [
-         base bytestring cereal containers data-default ghc-prim network
-         pipes transformers
-       ];
-       testHaskellDepends = [
-         base data-default directory ghc-prim HUnit test-framework
-         test-framework-hunit unix
-       ];
-       description = "Daemons in Haskell made fun and easy";
-       license = lib.licenses.gpl3Only;
-     }) {};
-
-  "daemons_0_4_0" = callPackage
-    ({ mkDerivation, base, bytestring, cereal, containers, data-default
-     , directory, filepath, ghc-prim, HUnit, network, pipes
-     , test-framework, test-framework-hunit, transformers, unix
-     }:
-     mkDerivation {
-       pname = "daemons";
        version = "0.4.0";
        sha256 = "10fcxk749q90mlwgknqn6l5mff8b09acmikxzh5jkk5sr6bj86hz";
        isLibrary = true;
@@ -79125,7 +79577,6 @@ self: {
        ];
        description = "Daemons in Haskell made fun and easy";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "dag" = callPackage
@@ -79153,8 +79604,8 @@ self: {
      }:
      mkDerivation {
        pname = "dahdit";
-       version = "0.5.0";
-       sha256 = "15w57xbiqdcyl51g4lcvwknhn8qwmpcipjgg7zkf44hi12dq77qj";
+       version = "0.5.1";
+       sha256 = "03fc6h3g6w6ymlq3g54ihkwca6jzc6xlhphxadi5xi8di0xsrbla";
        libraryHaskellDepends = [
          base bytestring containers data-default data-sword free
          ghc-typelits-knownnat mtl primitive text transformers vector
@@ -79170,14 +79621,37 @@ self: {
        broken = true;
      }) {};
 
+  "dahdit-midi" = callPackage
+    ({ mkDerivation, base, bytestring, containers, dahdit, dahdit-test
+     , data-sword, daytripper, directory, falsify, filepath, hashable
+     , nanotime, newtype, primitive, tasty, text, vector
+     }:
+     mkDerivation {
+       pname = "dahdit-midi";
+       version = "0.5.5";
+       sha256 = "082fjzfnfwydb9x638f3faggd5safwjbkaz67905xi582f01ilg9";
+       libraryHaskellDepends = [
+         base bytestring containers dahdit data-sword hashable nanotime
+         newtype primitive text vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers dahdit dahdit-test data-sword daytripper
+         directory falsify filepath hashable nanotime newtype primitive
+         tasty text vector
+       ];
+       description = "MIDI and OSC parsing/printing with dahdit";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "dahdit-network" = callPackage
     ({ mkDerivation, async, base, bytestring, dahdit, network
      , resourcet, stm, tasty, tasty-hunit, unliftio-core
      }:
      mkDerivation {
        pname = "dahdit-network";
-       version = "0.5.0";
-       sha256 = "0f732x98bv0n39j4dvgyiac4vv37pi7fp6fasjrpgqmpzlq4ww18";
+       version = "0.5.2";
+       sha256 = "0gsz67y6r02l69jakfiwd7607d6alf0bzhm9binabxqc2h9n439g";
        libraryHaskellDepends = [
          base bytestring dahdit network resourcet unliftio-core
        ];
@@ -79196,8 +79670,8 @@ self: {
      }:
      mkDerivation {
        pname = "dahdit-test";
-       version = "0.5.0";
-       sha256 = "0hvdicx4m339i1hfzvbjpgnhkcv223ci9m2iggrccx3wv96hxgbl";
+       version = "0.5.1";
+       sha256 = "105wvh7x1pcnmzfjknpfycr4r8zcddhc385y3jbgdpbhrjijh1a9";
        libraryHaskellDepends = [
          base bytestring containers dahdit daytripper directory falsify text
        ];
@@ -79414,7 +79888,9 @@ self: {
        '';
        description = "a distributed, interactive, smart revision control system";
        license = lib.licenses.gpl2Plus;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "darcs";
+       broken = true;
      }) {};
 
   "darcs-benchmark" = callPackage
@@ -80100,6 +80576,8 @@ self: {
        libraryHaskellDepends = [ base constraints ];
        description = "Define Backwards Compatibility Schemes for Arbitrary Data";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "data-concurrent-queue" = callPackage
@@ -80466,6 +80944,8 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Coerce between unlifted boxed and lifted types";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "data-elf" = callPackage
@@ -80704,6 +81184,8 @@ self: {
        pname = "data-forced";
        version = "0.3.0.0";
        sha256 = "1y97a5n9brqi076anzlhcg61h7r7wmkcplch0y0qh2c6p8ssm91y";
+       revision = "1";
+       editedCabalFile = "141ynrrrhlf42hdwwsjnrwnz3zi9jvip1p0616l7wcgccj9ygar5";
        libraryHaskellDepends = [ base data-elevator deepseq ];
        testHaskellDepends = [ base containers HUnit ];
        description = "Specify that lifted values were forced to WHNF or NF";
@@ -80820,10 +81302,8 @@ self: {
      }:
      mkDerivation {
        pname = "data-interval";
-       version = "2.1.1";
-       sha256 = "1gxdf1pi54s9fvxgp112b0l9f4q4r29f03caz04wbhv1f6cbs912";
-       revision = "2";
-       editedCabalFile = "1was8y0bsr36qwqs3kphpncp7jqimvyw27nd9qx6fmyp0s71yjmw";
+       version = "2.1.2";
+       sha256 = "01nr9g5phijlchbfc8h8rc1y54igzshnx5ld4fyls3kw8dsr03jf";
        libraryHaskellDepends = [
          base containers deepseq extended-reals hashable lattices
        ];
@@ -81559,6 +82039,33 @@ self: {
        mainProgram = "dsinf";
      }) {};
 
+  "data-svd" = callPackage
+    ({ mkDerivation, base, boxes, bytestring, cereal, containers
+     , data-default-class, Diff, directory, hashable, hspec
+     , hspec-discover, hspec-golden, hxt, hxt-xpath, lens, prettyprinter
+     , prettyprinter-ansi-terminal, safe, text
+     }:
+     mkDerivation {
+       pname = "data-svd";
+       version = "0.1.2.0";
+       sha256 = "1n4n0vmyl231mwib8ivin3q05vh29kxr7icxgy84wbffki32hr0j";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base boxes bytestring cereal containers data-default-class Diff
+         directory hashable hxt hxt-xpath lens prettyprinter
+         prettyprinter-ansi-terminal safe text
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base data-default-class hspec hspec-golden lens prettyprinter
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "SVD (System view description) file handling";
+       license = lib.licenses.bsd3;
+       mainProgram = "pretty-svd";
+     }) {};
+
   "data-sword" = callPackage
     ({ mkDerivation, base, data-bword, hashable, tasty
      , tasty-quickcheck, template-haskell
@@ -82222,8 +82729,8 @@ self: {
      }:
      mkDerivation {
        pname = "daytripper";
-       version = "0.3.0";
-       sha256 = "0m5xhr7rngkxl4n1rzwh6fq192mk0c63css72xirjrm0hhpp9jwl";
+       version = "0.3.1";
+       sha256 = "1x9zjfj302fd6r378rw19a7n4jivc71bpi6c37il0w1y5951c462";
        libraryHaskellDepends = [
          base bytestring directory falsify optparse-applicative tagged tasty
          tasty-hunit
@@ -82437,40 +82944,13 @@ self: {
     ({ mkDerivation, base, bytestring, cereal, conduit, containers
      , criterion, deepseq, directory, exceptions, extra, filepath, lens
      , network, parsec, process, QuickCheck, random, resourcet, split
-     , tasty, tasty-hunit, tasty-quickcheck, template-haskell, text
-     , th-lift, transformers, unix, vector, xml-conduit, xml-types
-     }:
-     mkDerivation {
-       pname = "dbus";
-       version = "1.2.29";
-       sha256 = "0c2c2lfckhzgf9n5hf2w39ryyb2q0wxsymrxr54y4j95353wdsn2";
-       libraryHaskellDepends = [
-         base bytestring cereal conduit containers deepseq exceptions
-         filepath lens network parsec random split template-haskell text
-         th-lift transformers unix vector xml-conduit xml-types
-       ];
-       testHaskellDepends = [
-         base bytestring cereal containers directory extra filepath network
-         parsec process QuickCheck random resourcet tasty tasty-hunit
-         tasty-quickcheck text transformers unix vector
-       ];
-       benchmarkHaskellDepends = [ base criterion ];
-       doCheck = false;
-       description = "A client library for the D-Bus IPC system";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "dbus_1_3_1" = callPackage
-    ({ mkDerivation, base, bytestring, cereal, conduit, containers
-     , criterion, deepseq, directory, exceptions, extra, filepath, lens
-     , network, parsec, process, QuickCheck, random, resourcet, split
      , tasty, tasty-hunit, tasty-quickcheck, template-haskell, temporary
      , text, th-lift, transformers, unix, vector, xml-conduit, xml-types
      }:
      mkDerivation {
        pname = "dbus";
-       version = "1.3.1";
-       sha256 = "0n3ghygqdbhgknv9hr650lv9vfk8jb6qfcw7p39kxjw9qxxbfvm3";
+       version = "1.3.2";
+       sha256 = "0g73fps81nibg9y2lnakrg57ndk4gpcjw3cnqfcns085h8d6dmxg";
        libraryHaskellDepends = [
          base bytestring cereal conduit containers deepseq exceptions
          filepath lens network parsec random split template-haskell text
@@ -82485,7 +82965,6 @@ self: {
        doCheck = false;
        description = "A client library for the D-Bus IPC system";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "dbus-client" = callPackage
@@ -83097,6 +83576,7 @@ self: {
        libraryHaskellDepends = [ base directory filepath HSH ];
        description = "Utilities to work with debian binary packages";
        license = "unknown";
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "debian-build" = callPackage
@@ -83477,8 +83957,8 @@ self: {
     ({ mkDerivation, base, containers, indexed-traversable }:
      mkDerivation {
        pname = "deep-map";
-       version = "0.2.0";
-       sha256 = "1qbrhmwd3r7767nqcvmlkl44g852xyh4yaspcym1d5jxpbzgcbpy";
+       version = "0.2.0.1";
+       sha256 = "1qawlz663k1n20wk0qx47mldyydf8glgp8m4b8r2pxhyh99yqf0j";
        libraryHaskellDepends = [ base containers indexed-traversable ];
        description = "Deeply-nested, multiple key type maps";
        license = lib.licenses.bsd3;
@@ -83706,6 +84186,8 @@ self: {
        libraryHaskellDepends = [ base containers deepseq semigroupoids ];
        description = "Applicative maps";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "deferred-folds" = callPackage
@@ -84352,6 +84834,8 @@ self: {
        benchmarkHaskellDepends = [ base containers criterion ];
        description = "Dependency resolution for package management";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "dependent-hashmap" = callPackage
@@ -84787,14 +85271,16 @@ self: {
     ({ mkDerivation, base, hspec, template-haskell, th-abstraction }:
      mkDerivation {
        pname = "derive-has-field";
-       version = "0.0.1.1";
-       sha256 = "0aai12n4acvxga6w6jz4npca1581ks7x1y6y337y0n46mqlsy6kf";
+       version = "0.0.1.2";
+       sha256 = "03w0qvs7adgwc676gk0q36bm9s7f7b709siy4dh0y27qblcjb6a4";
        libraryHaskellDepends = [ base template-haskell th-abstraction ];
        testHaskellDepends = [
          base hspec template-haskell th-abstraction
        ];
        description = "Derive HasField instances with Template Haskell";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "derive-lifted-instances" = callPackage
@@ -84962,6 +85448,7 @@ self: {
        description = "DerivingVia for OpenAPI 3";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "deriving-show-simple" = callPackage
@@ -84977,23 +85464,6 @@ self: {
      }) {};
 
   "deriving-trans" = callPackage
-    ({ mkDerivation, base, exceptions, monad-control
-     , monad-control-identity, mtl, primitive, transformers
-     , transformers-base, unliftio-core
-     }:
-     mkDerivation {
-       pname = "deriving-trans";
-       version = "0.5.2.0";
-       sha256 = "0890885anzr9rvgmia5pm7ppxabgkssxg0i4jkfgxsnayj9rhd27";
-       libraryHaskellDepends = [
-         base exceptions monad-control monad-control-identity mtl primitive
-         transformers transformers-base unliftio-core
-       ];
-       description = "Derive instances for monad transformer stacks";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "deriving-trans_0_9_1_0" = callPackage
     ({ mkDerivation, base, exceptions, logict, monad-control
      , monad-control-identity, monad-logger, mtl, primitive, random
      , resourcet, transformers, transformers-base, unliftio-core
@@ -85009,7 +85479,6 @@ self: {
        ];
        description = "Derive instances for monad transformer stacks";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "derivingvia-extras" = callPackage
@@ -85060,7 +85529,9 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "Parse and render JSON simply";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "derulo";
+       broken = true;
      }) {};
 
   "describe" = callPackage
@@ -85177,21 +85648,21 @@ self: {
 
   "desktop-portal" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers
-     , data-default-class, dbus, directory, hspec, hspec-discover
-     , hspec-expectations, modern-uri, network, process, random
-     , temporary, text, unix
+     , data-default-class, dbus, directory, filepath, hspec
+     , hspec-discover, hspec-expectations, modern-uri, network, process
+     , random, temporary, text, unix
      }:
      mkDerivation {
        pname = "desktop-portal";
-       version = "0.4.0.0";
-       sha256 = "1h3qrswrlpfd0f6h3fknx47zpii5w1mq026yad5ym3ryp3xs2591";
+       version = "0.6.0.0";
+       sha256 = "18cgwz8cgsj1vjhk4rgv4lakqbnrrb5pspkpg5lnkc9kq7953d1g";
        libraryHaskellDepends = [
          base binary bytestring containers data-default-class dbus directory
-         modern-uri network random text unix
+         filepath modern-uri network random text unix
        ];
        testHaskellDepends = [
          base binary bytestring containers data-default-class dbus directory
-         hspec hspec-expectations modern-uri network process random
+         filepath hspec hspec-expectations modern-uri network process random
          temporary text unix
        ];
        testToolDepends = [ hspec-discover ];
@@ -85307,6 +85778,25 @@ self: {
        broken = true;
      }) {};
 
+  "devanagari-transliterations" = callPackage
+    ({ mkDerivation, array, base, containers, deepseq, extra, hedgehog
+     , hspec, hspec-hedgehog, QuickCheck, text
+     }:
+     mkDerivation {
+       pname = "devanagari-transliterations";
+       version = "0.1.0.0";
+       sha256 = "14lj970vfwi6969qj2mjdxbs844zjcwvgnni125b6f64dkkakh7r";
+       libraryHaskellDepends = [
+         array base containers deepseq extra text
+       ];
+       testHaskellDepends = [
+         array base containers deepseq extra hedgehog hspec hspec-hedgehog
+         QuickCheck text
+       ];
+       description = "Conversion between Devanagari Unicode, Harvard-Kyoto, IAST and ISO15919";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "devil" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, filepath
      , hinotify, process, split, text, unix, unordered-containers
@@ -85674,6 +86164,8 @@ self: {
        pname = "dhall-docs";
        version = "1.0.11";
        sha256 = "0i9czz2p2kv5mw7mnbpqq9nl86aqyp4z0yy115q3nfasl5ys6jlq";
+       revision = "1";
+       editedCabalFile = "04i3v73hgyq57a6010wkd7xhmafy8xxc5vsl9km2r3wqy7505fj9";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -85741,8 +86233,8 @@ self: {
        pname = "dhall-json";
        version = "1.7.12";
        sha256 = "1ynm347ccqgh2jmnq9mwj3mc3zd81pwqja5ivdwxkjw08d1wsj6a";
-       revision = "1";
-       editedCabalFile = "0rf3zlr75x6g4hl1759j21fnnrp21shc7a35x7c73a0xyzpviqqi";
+       revision = "2";
+       editedCabalFile = "0yii9bknd19l65z56zlsxsf4kzbnhygr9dl6bkzy991qsp8155yy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -85779,6 +86271,7 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion ];
        description = "Lexer for the Dhall language";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "dhall-lsp-server" = callPackage
@@ -85822,6 +86315,8 @@ self: {
        pname = "dhall-nix";
        version = "1.1.26";
        sha256 = "1xgmmfp6bi3mnd9l335ks6xcgpfy2s2kgpcygi7i7p41f795zgma";
+       revision = "1";
+       editedCabalFile = "1bjy0ngvlg9a6b1bsms894qr23axqzg4xgjb1d0hmdyrvkhniwxq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -85847,6 +86342,8 @@ self: {
        pname = "dhall-nixpkgs";
        version = "1.0.10";
        sha256 = "09p1zfssqab3p3x3ngidfkf31kk5kvcx8krjiyf18vmq9fn75mm5";
+       revision = "1";
+       editedCabalFile = "19dj1npbcib00zxhiphqg1icbwx9m3qbhcgbp7bciarymy3cqxc3";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -85870,6 +86367,8 @@ self: {
        pname = "dhall-openapi";
        version = "1.0.6";
        sha256 = "0jx905x17lfwb316hx6mwiwr647688nwwcikv5iadv2qr9s04yc9";
+       revision = "1";
+       editedCabalFile = "1xzzrgjajpr49bi6lpi2hys9la9646mi4f8wp3md5fim305l19pb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -86021,6 +86520,8 @@ self: {
        pname = "dhall-toml";
        version = "1.0.3";
        sha256 = "0d99msfbd9dxhjh2bc5bnzwn4c5n4viv3q0n4p1mx2rw67jyra80";
+       revision = "1";
+       editedCabalFile = "1v0ibk5zr1nifxvy445xph3w134dmcxki5wnw63nrf2vdn7zjby5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -86046,8 +86547,8 @@ self: {
        pname = "dhall-yaml";
        version = "1.2.12";
        sha256 = "1sh802maai9vxfrjd0w4k9cv4pklhkxid1s5xdbagywcaqdhk272";
-       revision = "1";
-       editedCabalFile = "0l408ja5505krp0zpdsh64fccv12firn9q39s9m6rvqzbfzyd1y3";
+       revision = "2";
+       editedCabalFile = "1wbfyi950kpy1ppd1dq465y9amjc47bvzwjiffsbp8azq5j45bx6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -86218,6 +86719,7 @@ self: {
        ];
        description = "DI logger wrapped for Polysemy";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "dia-base" = callPackage
@@ -86345,6 +86847,8 @@ self: {
        pname = "diagrams-builder";
        version = "0.8.0.6";
        sha256 = "17yi5dmcxx4sgk3wha386zbv9h69pwq72j8i21vmfh35brxhs9f4";
+       revision = "1";
+       editedCabalFile = "1w9bjc6zizp779rk4frfmffzlv4vq4sljdcvql9ma5qy679phiyr";
        configureFlags = [ "-fcairo" "-fps" "-frasterific" "-fsvg" ];
        isLibrary = true;
        isExecutable = true;
@@ -86393,6 +86897,8 @@ self: {
        pname = "diagrams-canvas";
        version = "1.4.1.2";
        sha256 = "165iwjvx17ym5qsrxsj7va4kmmifg8nay1qq7mbyp3crvfvkfgv2";
+       revision = "1";
+       editedCabalFile = "1cj3ckny5xgsr624d1zc4z9kdfw9lfpc4vfzza9nn3jzy3px8z7l";
        libraryHaskellDepends = [
          base blank-canvas cmdargs containers data-default-class
          diagrams-core diagrams-lib lens mtl NumInstances
@@ -86414,6 +86920,8 @@ self: {
        pname = "diagrams-contrib";
        version = "1.4.5.1";
        sha256 = "0whp2p9m7pcb2sgyr8rvhf518f18w5i0vxziganw7qj6ijn9kdyb";
+       revision = "1";
+       editedCabalFile = "08bqpgqcsbiqq1zc07sy6n5k5nyhf63hsrds759fqbr6hb9zwxsx";
        libraryHaskellDepends = [
          base circle-packing colour containers cubicbezier data-default
          data-default-class diagrams-core diagrams-lib diagrams-solve
@@ -86464,6 +86972,8 @@ self: {
        ];
        description = "Cairo backend for diagrams drawing EDSL";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "diagrams-graphviz" = callPackage
@@ -86474,8 +86984,8 @@ self: {
        pname = "diagrams-graphviz";
        version = "1.4.1.1";
        sha256 = "0lscrxd682jvyrl5bj4dxp7593qwyis01sl0p4jm2jfn335wdq40";
-       revision = "4";
-       editedCabalFile = "0gkj1l3vhyn0haphk8f89qc1ibgxlyprh2jw9yi1m0wmd3whwif4";
+       revision = "5";
+       editedCabalFile = "11kl8sgm3g722wqf734adh5lkhrbpm9cryj19g7zipjg9lgns9q6";
        libraryHaskellDepends = [
          base containers diagrams-lib fgl graphviz split
        ];
@@ -86509,6 +87019,8 @@ self: {
        pname = "diagrams-haddock";
        version = "0.4.1.2";
        sha256 = "00g11i1b3bz59jzsnvv9gsxr50593mky8qv4djnhq4xsx6p7i8rj";
+       revision = "1";
+       editedCabalFile = "0wlhy12pfs36vgnnd4ip0i9wlrzn3x7z03nvdpb2awwrfyk3p8mv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -86603,8 +87115,8 @@ self: {
        pname = "diagrams-lib";
        version = "1.4.6";
        sha256 = "1a0wl8lspwkby5x45j1wa1xq27bs67x5vwj8jzavym56a3f2pjcb";
-       revision = "3";
-       editedCabalFile = "09b3hdmsk5byjm1jcq03zjb8fz7h3lid747abi3fq9bvsaqsp5ka";
+       revision = "4";
+       editedCabalFile = "1n6v9w2713da1ihfl47hikql033wcx9kjmzry8ykg581qzwb3rag";
        libraryHaskellDepends = [
          active adjunctions array base bytestring cereal colour containers
          data-default-class diagrams-core diagrams-solve directory
@@ -86677,6 +87189,8 @@ self: {
        pname = "diagrams-pgf";
        version = "1.4.2.1";
        sha256 = "1778sjjvggq5ks73489y76f4z0cvzkn9ixn176fm8kf8swaf82ja";
+       revision = "1";
+       editedCabalFile = "0j2hkmhkbqywsc4vkpn2jvh37hdw1lwphlfvid1f90ayq2npc6p0";
        libraryHaskellDepends = [
          base bytestring bytestring-builder colour containers diagrams-core
          diagrams-lib directory filepath hashable JuicyPixels mtl
@@ -86695,8 +87209,8 @@ self: {
        pname = "diagrams-postscript";
        version = "1.5.1.1";
        sha256 = "1kwb100k3qif9gc8kgvglya5by61522128cxsjrxk5a8dzpgwal4";
-       revision = "1";
-       editedCabalFile = "0h6wkzncxcz8pjqqr696y3m6d3xbsm5n5d5r4pfx7b81kq53l6x8";
+       revision = "2";
+       editedCabalFile = "1gg221ycs2505f43rngaf47j65mh9dk6apfzsmxkdw2zz278cl26";
        libraryHaskellDepends = [
          base bytestring containers data-default-class diagrams-core
          diagrams-lib hashable lens monoid-extras mtl semigroups split
@@ -86732,6 +87246,8 @@ self: {
        pname = "diagrams-rasterific";
        version = "1.4.2.3";
        sha256 = "0n46scybjs8mnhrnh5z3nkrah6f8v1rv4cca8k8mqzsf8ss30q5l";
+       revision = "1";
+       editedCabalFile = "1w1jksdpfra1x76r3dz8lkcbg661ccgi0pwag7kgdi9nj62ahmyh";
        libraryHaskellDepends = [
          base bytestring containers data-default-class diagrams-core
          diagrams-lib file-embed filepath FontyFruity hashable JuicyPixels
@@ -86805,8 +87321,8 @@ self: {
        pname = "diagrams-svg";
        version = "1.4.3.1";
        sha256 = "002lgmq78c6rsvds9bgm6m4w8j6qpg260mc52hf97wj6m050l237";
-       revision = "5";
-       editedCabalFile = "00hjvv9ncf5il7a09g2gh45bwah4jbnfnhb523jz9lhqqbzxfxny";
+       revision = "6";
+       editedCabalFile = "1m64lzffszyln6hk35zqnrm32qy8skvz754pdk3xvkv8dspmia4s";
        libraryHaskellDepends = [
          base base64-bytestring bytestring colour containers diagrams-core
          diagrams-lib filepath hashable JuicyPixels lens monoid-extras mtl
@@ -87116,8 +87632,8 @@ self: {
        pname = "diff-loc";
        version = "0.1.0.0";
        sha256 = "08sbxkf804bq3lwr9s1k1vigq7yrdjgicrj114zi14cdi4168k3x";
-       revision = "1";
-       editedCabalFile = "1macpybgwxyak0cgpimkjqzzn0xf4mkyj9n0papjzxjaw3iv4vmd";
+       revision = "2";
+       editedCabalFile = "1wqbrgp1dxvcwlc04l4rx9g2pkjl1spvrlhkfrzm5xkra33fsnqy";
        libraryHaskellDepends = [ base fingertree show-combinators ];
        description = "Map file locations across diffs";
        license = lib.licenses.mit;
@@ -87314,6 +87830,19 @@ self: {
        license = lib.licenses.bsd2;
      }) {inherit (pkgs) zlib;};
 
+  "digest_0_0_2_1" = callPackage
+    ({ mkDerivation, base, bytestring, zlib }:
+     mkDerivation {
+       pname = "digest";
+       version = "0.0.2.1";
+       sha256 = "163418p50bqdxn8ajzj6x3455xbch9jq1w6psbkdz5qzw017py6b";
+       libraryHaskellDepends = [ base bytestring ];
+       libraryPkgconfigDepends = [ zlib ];
+       description = "CRC32 and Adler32 hashes for bytestrings";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) zlib;};
+
   "digest-pure" = callPackage
     ({ mkDerivation, array, base, bytestring, digest, QuickCheck }:
      mkDerivation {
@@ -87386,6 +87915,8 @@ self: {
        pname = "digestive-functors";
        version = "0.8.4.2";
        sha256 = "0x0mh43rli77vqs9bpqd85w5wwr68qchfl5086nn137358583lrn";
+       revision = "1";
+       editedCabalFile = "0vyl3bkww5c4pgjs79rp7wambn9diggdrh5iddqhz9acxi95wfvp";
        libraryHaskellDepends = [
          base bytestring containers mtl old-locale semigroups text time
        ];
@@ -87429,6 +87960,8 @@ self: {
        pname = "digestive-functors-blaze";
        version = "0.6.2.0";
        sha256 = "19019nmzg84mgdvhpkyrd4v9dsnd9yjn3cmgcj3aj7yx4z4m1c24";
+       revision = "1";
+       editedCabalFile = "1jzr0k7d37dgi8x7gl21xnqrl3hbk4g6wrsyh0nfbhipgr72r8gh";
        libraryHaskellDepends = [
          base blaze-html blaze-markup digestive-functors text
        ];
@@ -87468,6 +88001,7 @@ self: {
        description = "Heist frontend for the digestive-functors library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "digestive-functors-hsp" = callPackage
@@ -87512,6 +88046,8 @@ self: {
        ];
        description = "Scotty backend for the digestive-functors library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "digestive-functors-snap" = callPackage
@@ -87602,6 +88138,7 @@ self: {
        testHaskellDepends = [ base fgl hashable massiv QuickCheck ];
        description = "Directed Graphs";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "dihaa" = callPackage
@@ -87778,30 +88315,32 @@ self: {
        ];
        description = "A convenient tagless EDSL";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "diohsc" = callPackage
     ({ mkDerivation, asn1-encoding, asn1-types, base, bytestring
-     , containers, cryptonite, data-default-class, directory
+     , containers, crypton, crypton-x509, crypton-x509-store
+     , crypton-x509-validation, data-default-class, directory
      , drunken-bishop, exceptions, filepath, hashable, haskeline
      , hourglass, iconv, memory, mime, mtl, network, network-simple
      , network-uri, parsec, pem, process, regex-compat, rset, safe
-     , temporary, terminal-size, text, tls, transformers, unix, x509
-     , x509-store, x509-validation
+     , temporary, terminal-size, text, tls, transformers, unix
      }:
      mkDerivation {
        pname = "diohsc";
-       version = "0.1.14.5";
-       sha256 = "1xfn2n2mzxs9r2p7gprqv8r1rmpvafjlc2hww48c87ldlfknw0yq";
+       version = "0.1.14.6";
+       sha256 = "00856rbgk7xq6mq1q58ibzbbkag6jh3zqvyzapjw6baj83gd4br3";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         asn1-encoding asn1-types base bytestring containers cryptonite
+         asn1-encoding asn1-types base bytestring containers crypton
+         crypton-x509 crypton-x509-store crypton-x509-validation
          data-default-class directory drunken-bishop exceptions filepath
          hashable haskeline hourglass iconv memory mime mtl network
          network-simple network-uri parsec pem process regex-compat rset
-         safe temporary terminal-size text tls transformers unix x509
-         x509-store x509-validation
+         safe temporary terminal-size text tls transformers unix
        ];
        description = "Gemini client";
        license = lib.licenses.gpl3Only;
@@ -87991,8 +88530,8 @@ self: {
      }:
      mkDerivation {
        pname = "direct-sqlite";
-       version = "2.3.28";
-       sha256 = "0i4a7g8ffsryifv7abg50qcrgbi71sbyhdx4i2vvv0k4srngyi37";
+       version = "2.3.29";
+       sha256 = "1byhnk4jcv83iw7rqw48p8xk6s2dfs1dh6ibwwzkc9m9lwwcwajz";
        libraryHaskellDepends = [ base bytestring text ];
        testHaskellDepends = [
          base base16-bytestring bytestring directory HUnit temporary text
@@ -88034,12 +88573,12 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "directory_1_3_8_2" = callPackage
+  "directory_1_3_8_3" = callPackage
     ({ mkDerivation, base, filepath, time, unix }:
      mkDerivation {
        pname = "directory";
-       version = "1.3.8.2";
-       sha256 = "1zx0833zdalz131vwr7vckara0plm16mb86ilpj3mvd5yyvrwzkp";
+       version = "1.3.8.3";
+       sha256 = "1hzn11nairaj1n20znhgnsg43cxl2l1cqb55gixq0bkkkj2ygl6b";
        libraryHaskellDepends = [ base filepath time unix ];
        testHaskellDepends = [ base filepath time unix ];
        description = "Platform-agnostic library for filesystem operations";
@@ -88053,8 +88592,8 @@ self: {
      }:
      mkDerivation {
        pname = "directory-contents";
-       version = "0.2.0.1";
-       sha256 = "12c157lxqn910x7x3jwzv70fhb01bszxp0r00107igddrd6dqffv";
+       version = "0.2.0.2";
+       sha256 = "0ih1zvy39h43dw412r3353bzfh2czs5pf51x97fzjlx0n4ckc493";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -88116,6 +88655,8 @@ self: {
        pname = "directory-ospath-streaming";
        version = "0.1.0.1";
        sha256 = "0j01kdp8jmi1h40li2fh53iz32gi7hxmlzmx8z3ks2cmp856bv7k";
+       revision = "1";
+       editedCabalFile = "1npawhf6v606phw3qjd1jx9xbpw8yf8gkrykgg2qfm7kpg8k2jmi";
        libraryHaskellDepends = [ base filepath unix ];
        testHaskellDepends = [
          base directory filepath random tasty tasty-hunit unix
@@ -88126,6 +88667,24 @@ self: {
        broken = true;
      }) {};
 
+  "directory-ospath-streaming_0_1_0_2" = callPackage
+    ({ mkDerivation, base, directory, filepath, os-string, random
+     , tasty, tasty-hunit, unix
+     }:
+     mkDerivation {
+       pname = "directory-ospath-streaming";
+       version = "0.1.0.2";
+       sha256 = "17a3sqw3sw70bxdw91vq17pbjjdymnivn9gkfvclr5gicvw30d6k";
+       libraryHaskellDepends = [ base filepath os-string unix ];
+       testHaskellDepends = [
+         base directory filepath os-string random tasty tasty-hunit unix
+       ];
+       description = "Stream directory entries in constant memory in vanilla IO";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "directory-tree" = callPackage
     ({ mkDerivation, base, directory, filepath, process }:
      mkDerivation {
@@ -88219,6 +88778,7 @@ self: {
        ];
        description = "Easily stream directory contents in constant memory";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.Gabriella439 ];
      }) {};
 
@@ -88355,8 +88915,8 @@ self: {
      }:
      mkDerivation {
        pname = "discord-haskell";
-       version = "1.16.0";
-       sha256 = "04zbpb5g9nanpzxnr94z6g0pr3jm74im4r70wz3lwyknl6r106bc";
+       version = "1.16.1";
+       sha256 = "055mr98x8x0z9a20k5k75fwikjrv5837j97klca8lndfbkk8m6h5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -88603,17 +89163,17 @@ self: {
 
   "disjoint-containers" = callPackage
     ({ mkDerivation, base, containers, doctest, enum-types, QuickCheck
-     , quickcheck-classes, quickcheck-enum-instances, semigroups, tasty
+     , quickcheck-classes, quickcheck-enum-instances, tasty
      , tasty-quickcheck, transformers
      }:
      mkDerivation {
        pname = "disjoint-containers";
-       version = "0.3.0";
-       sha256 = "1r92abcbksyfk4k1mjxj3gyymkbm927wjr6lmcv06pyljcw9vc3r";
+       version = "0.3.0.1";
+       sha256 = "036rzz3m33rq5vg43w0bksyvz1g5wiss0ha76i1gw2d7sw7g9mvz";
        libraryHaskellDepends = [ base containers transformers ];
        testHaskellDepends = [
          base containers doctest enum-types QuickCheck quickcheck-classes
-         quickcheck-enum-instances semigroups tasty tasty-quickcheck
+         quickcheck-enum-instances tasty tasty-quickcheck
        ];
        description = "Disjoint containers";
        license = lib.licenses.bsd3;
@@ -88678,6 +89238,8 @@ self: {
        benchmarkHaskellDepends = [ base bytestring text ];
        description = "On-disk storage, but referentially transparent";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "disk-free-space" = callPackage
@@ -89652,30 +90214,6 @@ self: {
     ({ mkDerivation, ansi-wl-pprint, base, bytestring, directory, extra
      , filepath, http-client, http-client-tls, http-directory
      , http-types, optparse-applicative, regex-posix, simple-cmd
-     , simple-cmd-args, text, time, unix, xdg-userdirs
-     }:
-     mkDerivation {
-       pname = "dl-fedora";
-       version = "0.9.6";
-       sha256 = "18i1vw4k50pavimhdz3ym9wh4ahn2s540i6p9qja05vgbh65wy7l";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         ansi-wl-pprint base bytestring directory extra filepath http-client
-         http-client-tls http-directory http-types optparse-applicative
-         regex-posix simple-cmd simple-cmd-args text time unix xdg-userdirs
-       ];
-       testHaskellDepends = [ base simple-cmd ];
-       description = "Fedora image download tool";
-       license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       mainProgram = "dl-fedora";
-     }) {};
-
-  "dl-fedora_1_0" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, base, bytestring, directory, extra
-     , filepath, http-client, http-client-tls, http-directory
-     , http-types, optparse-applicative, regex-posix, simple-cmd
      , simple-cmd-args, simple-prompt, text, time, unix, xdg-userdirs
      }:
      mkDerivation {
@@ -89724,8 +90262,8 @@ self: {
 
   "dlist-nonempty" = callPackage
     ({ mkDerivation, base, base-compat, Cabal, criterion, deepseq
-     , dlist, dlist-instances, foldable1-classes-compat, QuickCheck
-     , quickcheck-instances, semigroupoids
+     , dlist, dlist-instances, QuickCheck, quickcheck-instances
+     , semigroupoids
      }:
      mkDerivation {
        pname = "dlist-nonempty";
@@ -89733,9 +90271,7 @@ self: {
        sha256 = "0iypfrnjj9qaiv1xicr310jcham5kym4yr6myy6vbi8nbgwl82kp";
        revision = "1";
        editedCabalFile = "10fjp19b7kpfavsaxpfpq479yfki6s2y7s5791w3yawpnlbj7g3v";
-       libraryHaskellDepends = [
-         base deepseq dlist foldable1-classes-compat semigroupoids
-       ];
+       libraryHaskellDepends = [ base deepseq dlist semigroupoids ];
        testHaskellDepends = [
          base Cabal QuickCheck quickcheck-instances
        ];
@@ -89888,33 +90424,6 @@ self: {
   "dns" = callPackage
     ({ mkDerivation, array, async, attoparsec, auto-update, base
      , base16-bytestring, base64-bytestring, bytestring
-     , case-insensitive, containers, cryptonite, doctest, hourglass
-     , hspec, hspec-discover, iproute, mtl, network, psqueues
-     , QuickCheck, word8
-     }:
-     mkDerivation {
-       pname = "dns";
-       version = "4.1.1";
-       sha256 = "0f1i0w509qdzl3lpvkwrmkgfj3z694sac30ac4n46w1wx80b7cm9";
-       libraryHaskellDepends = [
-         array async attoparsec auto-update base base16-bytestring
-         base64-bytestring bytestring case-insensitive containers cryptonite
-         hourglass iproute mtl network psqueues
-       ];
-       testHaskellDepends = [
-         base bytestring case-insensitive doctest hspec iproute network
-         QuickCheck word8
-       ];
-       testToolDepends = [ hspec-discover ];
-       doHaddock = false;
-       testTarget = "spec";
-       description = "DNS library in Haskell";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "dns_4_2_0" = callPackage
-    ({ mkDerivation, array, async, attoparsec, auto-update, base
-     , base16-bytestring, base64-bytestring, bytestring
      , case-insensitive, containers, crypton, hourglass, hspec
      , hspec-discover, iproute, mtl, network, psqueues, QuickCheck
      , word8
@@ -89937,7 +90446,6 @@ self: {
        testTarget = "spec";
        description = "DNS library in Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "dns-patterns" = callPackage
@@ -90583,37 +91091,6 @@ self: {
      }) {};
 
   "doctest" = callPackage
-    ({ mkDerivation, base, base-compat, code-page, deepseq, directory
-     , exceptions, filepath, ghc, ghc-paths, hspec, hspec-core
-     , hspec-discover, HUnit, mockery, process, QuickCheck, setenv
-     , silently, stringbuilder, syb, transformers
-     }:
-     mkDerivation {
-       pname = "doctest";
-       version = "0.20.1";
-       sha256 = "00jbpqvcqxx1nmf41li947d9d3ifwchzzp37mlag68hgnza6z9a4";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base base-compat code-page deepseq directory exceptions filepath
-         ghc ghc-paths process syb transformers
-       ];
-       executableHaskellDepends = [
-         base base-compat code-page deepseq directory exceptions filepath
-         ghc ghc-paths process syb transformers
-       ];
-       testHaskellDepends = [
-         base base-compat code-page deepseq directory exceptions filepath
-         ghc ghc-paths hspec hspec-core HUnit mockery process QuickCheck
-         setenv silently stringbuilder syb transformers
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Test interactive Haskell examples";
-       license = lib.licenses.mit;
-       mainProgram = "doctest";
-     }) {};
-
-  "doctest_0_22_2" = callPackage
     ({ mkDerivation, base, code-page, deepseq, directory, exceptions
      , filepath, ghc, ghc-paths, hspec, hspec-core, hspec-discover
      , HUnit, mockery, process, QuickCheck, setenv, silently
@@ -90641,7 +91118,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Test interactive Haskell examples";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "doctest";
      }) {};
 
@@ -90735,8 +91211,8 @@ self: {
      }:
      mkDerivation {
        pname = "doctest-extract";
-       version = "0.1.1.1";
-       sha256 = "025qaisbdvyc5k5b585h8d5c8xm4qyy6r6740czrnq69g6lkksnz";
+       version = "0.1.2";
+       sha256 = "1dizs0r9pdankbv5ijfgqva5ha8p5xxl7x8y1sjql6h7ch8pz0p6";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -90750,12 +91226,12 @@ self: {
      }) {};
 
   "doctest-lib" = callPackage
-    ({ mkDerivation, base }:
+    ({ mkDerivation, base, utility-ht }:
      mkDerivation {
        pname = "doctest-lib";
-       version = "0.1";
-       sha256 = "1vswam0dhw52dihgnzirh18gqs8rj8h6jd7pl6y1mg2f9f9zmih2";
-       libraryHaskellDepends = [ base ];
+       version = "0.1.1";
+       sha256 = "01ppm5qvp77j87l4829fly5mpb3b8c9s2rr6xg19nbygd8jl6g6r";
+       libraryHaskellDepends = [ base utility-ht ];
        description = "Parts of doctest exposed as library";
        license = lib.licenses.mit;
        maintainers = [ lib.maintainers.thielema ];
@@ -91038,15 +91514,15 @@ self: {
   "dom-parser" = callPackage
     ({ mkDerivation, base, case-insensitive, containers, data-default
      , hspec, lens, mtl, scientific, semigroups, shakespeare, text
-     , transformers, xml-conduit, xml-lens
+     , transformers, xml-conduit, xml-conduit-writer, xml-lens
      }:
      mkDerivation {
        pname = "dom-parser";
-       version = "3.1.0";
-       sha256 = "1hra4sh34dr1gv4z55dg3f8s2g9l2qb7nlb0j4w0imr71fp5rqfp";
+       version = "3.2.0";
+       sha256 = "1i71gcxwq0pdwkg70l33gaqcf8ihbgw3rgbw6r11p4vri0fl6fr4";
        libraryHaskellDepends = [
          base case-insensitive containers lens mtl scientific semigroups
-         text transformers xml-conduit xml-lens
+         text transformers xml-conduit xml-conduit-writer xml-lens
        ];
        testHaskellDepends = [
          base data-default hspec lens semigroups shakespeare text
@@ -91263,7 +91739,9 @@ self: {
        testHaskellDepends = [ base containers hspec lens mtl random ];
        description = "A simulator for the board game Dominion";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "dominion";
+       broken = true;
      }) {};
 
   "domplate" = callPackage
@@ -91424,6 +91902,35 @@ self: {
        mainProgram = "dotenv";
      }) {};
 
+  "dotenv_0_12_0_0" = callPackage
+    ({ mkDerivation, base, base-compat, containers, data-default-class
+     , directory, exceptions, hspec, hspec-discover, hspec-megaparsec
+     , megaparsec, mtl, optparse-applicative, process, shellwords, text
+     }:
+     mkDerivation {
+       pname = "dotenv";
+       version = "0.12.0.0";
+       sha256 = "0z21bysa6yq131yx1sp7yx94vq1zj4xg32pfyrff6fvabqg6piwi";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base containers data-default-class directory exceptions megaparsec
+         mtl process shellwords text
+       ];
+       executableHaskellDepends = [
+         base base-compat megaparsec optparse-applicative process text
+       ];
+       testHaskellDepends = [
+         base hspec hspec-megaparsec megaparsec process text
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Loads environment variables from dotenv files";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "dotenv";
+     }) {};
+
   "dotenv-micro" = callPackage
     ({ mkDerivation, base, directory }:
      mkDerivation {
@@ -91502,8 +92009,8 @@ self: {
      }:
      mkDerivation {
        pname = "dotparse";
-       version = "0.0.3";
-       sha256 = "024g3fkwp5042m8qmmli0y0dsqr9czvqbcjlvf61d6pi92cbm983";
+       version = "0.1.0.0";
+       sha256 = "06knlrrb2ma57d5rnv2xdqp7avdbcbnd5m6pk45953lmhz217ls6";
        libraryHaskellDepends = [
          algebraic-graphs base bytestring chart-svg containers flatparse
          numhask-space optics-core process-extras string-interpolate
@@ -91536,6 +92043,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "double-conversion_2_0_5_0" = callPackage
+    ({ mkDerivation, base, bytestring, ghc-prim, HUnit
+     , system-cxx-std-lib, test-framework, test-framework-hunit
+     , test-framework-quickcheck2, text
+     }:
+     mkDerivation {
+       pname = "double-conversion";
+       version = "2.0.5.0";
+       sha256 = "1fj358zamb5zr1h481wf02c2aijqk3imk7flhpzps9bvwjv9kilq";
+       libraryHaskellDepends = [
+         base bytestring ghc-prim system-cxx-std-lib text
+       ];
+       testHaskellDepends = [
+         base bytestring HUnit test-framework test-framework-hunit
+         test-framework-quickcheck2 text
+       ];
+       description = "Fast conversion between single and double precision floating point and text";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "double-extra" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cassava, deepseq
      , double-conversion, rawstring-qm, text
@@ -91667,7 +92195,9 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "A proof assistant for Magic: The Gathering puzzles";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "dovin";
+       broken = true;
      }) {};
 
   "dow" = callPackage
@@ -91708,6 +92238,8 @@ self: {
        ];
        description = "Reverse mode automatic differentiation";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "download" = callPackage
@@ -91997,18 +92529,18 @@ self: {
   "dprox" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, bytestring-trie
      , containers, dns, fast-logger, hashable, hspec, iproute, network
-     , optparse-applicative, psqueues, streaming-commons, time
+     , optparse-applicative, psqueues, streaming-commons, time, unix
      }:
      mkDerivation {
        pname = "dprox";
-       version = "0.4.2";
-       sha256 = "1l0bnhhprx944kwn3k7acyh1129wi9bim9rikc86raws8nmfqzwp";
+       version = "0.4.3";
+       sha256 = "1cfmfb7kr0598dksb27aj3kpfjgrmiwk8xgrdw050525kxng6icw";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          attoparsec base bytestring bytestring-trie containers dns
          fast-logger hashable iproute network optparse-applicative psqueues
-         streaming-commons time
+         streaming-commons time unix
        ];
        testHaskellDepends = [
          attoparsec base bytestring bytestring-trie containers dns
@@ -92232,6 +92764,8 @@ self: {
        testHaskellDepends = [ base ];
        description = "Deriving without spelling out \"deriving\"";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "drmaa" = callPackage
@@ -92439,6 +92973,7 @@ self: {
        description = "DSMC library for rarefied gas dynamics";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "dsmc-tools" = callPackage
@@ -92652,6 +93187,8 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Dual category";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "dual-game" = callPackage
@@ -92828,6 +93365,8 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit ];
        description = "A computer “algebra†system that knows nothing about algebra, at the core";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "dump" = callPackage
@@ -92876,27 +93415,8 @@ self: {
      }:
      mkDerivation {
        pname = "dunai";
-       version = "0.11.2";
-       sha256 = "0zyd1dx6g7i8d9iza2y1iljyz8xca1z3nfywjhmjnj2qsarlkw13";
-       libraryHaskellDepends = [
-         base MonadRandom simple-affine-space transformers transformers-base
-       ];
-       testHaskellDepends = [ base tasty tasty-hunit transformers ];
-       benchmarkHaskellDepends = [ base criterion filepath time ];
-       description = "Generalised reactive framework supporting classic, arrowized and monadic FRP";
-       license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.turion ];
-     }) {};
-
-  "dunai_0_12_0" = callPackage
-    ({ mkDerivation, base, criterion, filepath, MonadRandom
-     , simple-affine-space, tasty, tasty-hunit, time, transformers
-     , transformers-base
-     }:
-     mkDerivation {
-       pname = "dunai";
-       version = "0.12.0";
-       sha256 = "019332zb3c6abwxpw6qxd6pr0v379aadgd9p9li2la7x8a8qmc00";
+       version = "0.12.1";
+       sha256 = "0j4862aq688cb54yz2di2vs5s3w1xnla21pjdqz9j6n2505vh9ih";
        libraryHaskellDepends = [
          base MonadRandom simple-affine-space transformers transformers-base
        ];
@@ -92906,6 +93426,7 @@ self: {
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.turion ];
+       broken = true;
      }) {};
 
   "dunai-core" = callPackage
@@ -92928,13 +93449,14 @@ self: {
     ({ mkDerivation, base, dunai, normaldistribution, QuickCheck }:
      mkDerivation {
        pname = "dunai-test";
-       version = "0.12.0";
-       sha256 = "0wzzkqky1bn5kvr23wwax7p7hklal1b80hdy627wr6h39czia391";
+       version = "0.12.1";
+       sha256 = "1jaxdc672z3ng6w8bqxj1991yp4ianpj4w2gg2qf4j9vildm947z";
        libraryHaskellDepends = [
          base dunai normaldistribution QuickCheck
        ];
        description = "Testing library for Dunai";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "dupIO" = callPackage
@@ -93402,6 +93924,8 @@ self: {
        ];
        description = "Draw and update graphs in real time with OpenGL";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "dynamic-graphs" = callPackage
@@ -93738,6 +94262,51 @@ self: {
        broken = true;
      }) {};
 
+  "e11y" = callPackage
+    ({ mkDerivation, base, containers, exceptions, general-allocate
+     , parametric-functor, primitive, strict-identity, sydtest
+     , transformers
+     }:
+     mkDerivation {
+       pname = "e11y";
+       version = "0.1.0.0";
+       sha256 = "1srx8mbij0sylfxcxb88xc8v44iz36qj3g7zphk9h7fzjpf2zqpy";
+       libraryHaskellDepends = [
+         base containers general-allocate parametric-functor primitive
+         transformers
+       ];
+       testHaskellDepends = [
+         base containers exceptions general-allocate strict-identity sydtest
+         transformers
+       ];
+       description = "An event-oriented observability library";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "e11y-otel" = callPackage
+    ({ mkDerivation, async, base, e11y, general-allocate
+     , hs-opentelemetry-api, hs-opentelemetry-sdk, parametric-functor
+     , sydtest, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "e11y-otel";
+       version = "0.1.0.0";
+       sha256 = "0y2g8ig82fkdfv5h3dd4x8k05lshwsdbfpqxc24xxcd4w507lf0q";
+       libraryHaskellDepends = [
+         base e11y hs-opentelemetry-api parametric-functor text
+         unordered-containers
+       ];
+       testHaskellDepends = [
+         async base e11y general-allocate hs-opentelemetry-api
+         hs-opentelemetry-sdk sydtest text unordered-containers
+       ];
+       description = "OpenTelemetry-based rendering for e11y";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "each" = callPackage
     ({ mkDerivation, base, dlist, hspec, QuickCheck, template-haskell
      }:
@@ -93976,6 +94545,8 @@ self: {
        libraryHaskellDepends = [ base bytestring containers mtl zlib ];
        description = "User-friendly creation of EPS, PostScript, and PDF files";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "easytensor" = callPackage
@@ -94068,8 +94639,8 @@ self: {
      }:
      mkDerivation {
        pname = "ebird-cli";
-       version = "0.3.0.0";
-       sha256 = "1l0pm1ha2shrm1b2qp8b9c0jrbsg8qjmq0srval1y9bxxzp2wls9";
+       version = "0.3.0.1";
+       sha256 = "0y66hyifcfazb8k9kwss6m40h2ylpg8pzfkb196mdjpamk5v1n8z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -94088,8 +94659,8 @@ self: {
      }:
      mkDerivation {
        pname = "ebird-client";
-       version = "0.2.0.0";
-       sha256 = "14pxbpwszfmvndck9xd124g3mqj117nvdzsvqbpkm9mh68zxkvaz";
+       version = "0.2.0.1";
+       sha256 = "07j2gfxl40srq25xr23yjappimvgdv11ydipr5q91yf94p33m2hz";
        libraryHaskellDepends = [
          base data-default ebird-api http-client-tls optics servant
          servant-client text
@@ -94801,30 +95372,6 @@ self: {
      }:
      mkDerivation {
        pname = "effectful";
-       version = "2.2.2.0";
-       sha256 = "1j6p28d5701v0a5fhgra1mhnzsqbxj44mpnixrh8jy34rcbq02bi";
-       libraryHaskellDepends = [
-         async base bytestring directory effectful-core process stm time
-         unliftio
-       ];
-       testHaskellDepends = [
-         base containers effectful-core exceptions lifted-base primitive
-         tasty tasty-hunit unliftio
-       ];
-       benchmarkHaskellDepends = [
-         async base tasty-bench text unix unliftio
-       ];
-       description = "An easy to use, performant extensible effects library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "effectful_2_3_0_0" = callPackage
-    ({ mkDerivation, async, base, bytestring, containers, directory
-     , effectful-core, exceptions, lifted-base, primitive, process, stm
-     , tasty, tasty-bench, tasty-hunit, text, time, unix, unliftio
-     }:
-     mkDerivation {
-       pname = "effectful";
        version = "2.3.0.0";
        sha256 = "03yr8hr1aahqfm04jdn7nnfblvxpj1zgrv8c9ymgjnn6gxjvwhk7";
        libraryHaskellDepends = [
@@ -94840,7 +95387,6 @@ self: {
        ];
        description = "An easy to use, performant extensible effects library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "effectful-core" = callPackage
@@ -94849,22 +95395,6 @@ self: {
      }:
      mkDerivation {
        pname = "effectful-core";
-       version = "2.2.2.2";
-       sha256 = "1ykscrp24n6cfwh9n051wj8zcza522jwfcw48fnxh3gvgyn43vaq";
-       libraryHaskellDepends = [
-         base containers exceptions monad-control primitive
-         transformers-base unliftio-core
-       ];
-       description = "An easy to use, performant extensible effects library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "effectful-core_2_3_0_1" = callPackage
-    ({ mkDerivation, base, containers, exceptions, monad-control
-     , primitive, transformers-base, unliftio-core
-     }:
-     mkDerivation {
-       pname = "effectful-core";
        version = "2.3.0.1";
        sha256 = "16vk5sjyy4knw9yss25iv501zxz2258qds3bhl1mrqa24phy3c9w";
        libraryHaskellDepends = [
@@ -94873,7 +95403,6 @@ self: {
        ];
        description = "An easy to use, performant extensible effects library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "effectful-plugin" = callPackage
@@ -94909,8 +95438,8 @@ self: {
        pname = "effectful-th";
        version = "1.0.0.1";
        sha256 = "19xbvfsglm4gsji303zj4f1nhhl4gls78cdbl4yalxm8c4m8iqsf";
-       revision = "3";
-       editedCabalFile = "1v0p0rs241xqvqzvcqk3dyx68zyqbdqvfyprc0s4nhxzry8a9ka5";
+       revision = "4";
+       editedCabalFile = "0dawn69x2zf1wm6zj3vkv1s0naq8820nfi191v1ix5z9ai7nq5kz";
        libraryHaskellDepends = [
          base containers effectful-core exceptions template-haskell
          th-abstraction
@@ -95027,8 +95556,8 @@ self: {
      }:
      mkDerivation {
        pname = "eflint";
-       version = "3.1.0.1";
-       sha256 = "19l5m01fnm1bgwf7v6sv589xv759sizvq226ip4m9fmx3ihi5qly";
+       version = "3.1.0.2";
+       sha256 = "0iksb6d4cw7lawpk9q7j03nbd4cwzf51b7rc47p42pw39wqr56m2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -95341,6 +95870,8 @@ self: {
        testHaskellDepends = [ base smallcheck tasty tasty-smallcheck ];
        description = "Either or both";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "either-list-functions" = callPackage
@@ -95353,6 +95884,8 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Functions involving lists of Either";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "either-result" = callPackage
@@ -95502,8 +96035,8 @@ self: {
        pname = "ekg-core";
        version = "0.1.1.7";
        sha256 = "04nv6iwzrb63fs97ixb0amj8p6zhabg3ggbrg4nbkq7xjhmkz0a5";
-       revision = "3";
-       editedCabalFile = "1z5rhc6cd1jflax3g5c773vghwavid5va6zxmaxhdcs6lj9pgzdj";
+       revision = "4";
+       editedCabalFile = "1fzjwckb6h6m5n1k9kj63fy2wpjn1mz9xajiri4aqyzlg1wv619c";
        libraryHaskellDepends = [
          base containers ghc-prim text unordered-containers
        ];
@@ -95849,8 +96382,10 @@ self: {
      }:
      mkDerivation {
        pname = "eliminators";
-       version = "0.9.2";
-       sha256 = "0j0k1lw6b5yqz7kxckb5s0phqcnzdis0b469nxryawsv12wvv335";
+       version = "0.9.3";
+       sha256 = "0pmh4ds1xmk464988airlwdj47mbq9xzgvfmpsp7dw84k0226pyg";
+       revision = "2";
+       editedCabalFile = "1h1ajn96s281pbyxz7c9khlc7qn5ddvf8x7v4pagx9fqs08mqaar";
        libraryHaskellDepends = [
          base extra singleton-nats singletons-base template-haskell text
          th-abstraction th-desugar
@@ -95859,6 +96394,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Dependently typed elimination functions using singletons";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "eliminators_0_9_4" = callPackage
@@ -95942,8 +96478,8 @@ self: {
      }:
      mkDerivation {
        pname = "elm-bridge";
-       version = "0.8.2";
-       sha256 = "15nwxz2v678l26hapmphs1aqmnmx89r5j1mf3iys86n73qp3vfjl";
+       version = "0.8.3";
+       sha256 = "0rcpcal9b4i293smgry74wznz15b6vga31l00z3h4vll96r62g9s";
        libraryHaskellDepends = [ aeson base template-haskell ];
        testHaskellDepends = [
          aeson base containers hspec QuickCheck text
@@ -96251,8 +96787,8 @@ self: {
      }:
      mkDerivation {
        pname = "elm-street";
-       version = "0.2.1.1";
-       sha256 = "0gv4ahpd7ds9yjy33pgqd1gixk36scz2r1h256jiynhgdyl81jlp";
+       version = "0.2.2.0";
+       sha256 = "1wgf5fss6qwgc3q18k5z95658jy4g8gx1v0ys7wwbqix4jhn461s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -96375,6 +96911,8 @@ self: {
        ];
        description = "Generate ELM types/encoders/decoders from Haskell types";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "elo" = callPackage
@@ -96520,26 +97058,6 @@ self: {
      }:
      mkDerivation {
        pname = "elynx-tools";
-       version = "0.7.2.1";
-       sha256 = "01cw6n3br15alrjhwf3bx7mn0vbxkdwn51cdg004i0s35fzb5dxn";
-       libraryHaskellDepends = [
-         aeson attoparsec base base16-bytestring bytestring
-         cryptohash-sha256 directory hmatrix optparse-applicative random
-         template-haskell time transformers zlib
-       ];
-       description = "Tools for ELynx";
-       license = lib.licenses.gpl3Plus;
-       maintainers = [ lib.maintainers.dschrempf ];
-     }) {};
-
-  "elynx-tools_0_7_2_2" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, base16-bytestring
-     , bytestring, cryptohash-sha256, directory, hmatrix
-     , optparse-applicative, random, template-haskell, time
-     , transformers, zlib
-     }:
-     mkDerivation {
-       pname = "elynx-tools";
        version = "0.7.2.2";
        sha256 = "0yf8ybw6w0lsdyckvl5h2svkr6v22ymagzlnpvjlkscnb2654xss";
        libraryHaskellDepends = [
@@ -96549,7 +97067,6 @@ self: {
        ];
        description = "Tools for ELynx";
        license = lib.licenses.gpl3Plus;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
@@ -96668,25 +97185,6 @@ self: {
      }) {};
 
   "emacs-module" = callPackage
-    ({ mkDerivation, base, bytestring, deepseq, exceptions
-     , monad-control, mtl, prettyprinter, resourcet
-     , safe-exceptions-checked, template-haskell, text
-     , transformers-base, vector, void
-     }:
-     mkDerivation {
-       pname = "emacs-module";
-       version = "0.1.1.1";
-       sha256 = "1j66b4r4zhqc2j1fqihzqdc0zacjy3fpgf54b7z55n2wqa6x9lgw";
-       libraryHaskellDepends = [
-         base bytestring deepseq exceptions monad-control mtl prettyprinter
-         resourcet safe-exceptions-checked template-haskell text
-         transformers-base vector void
-       ];
-       description = "Utilities to write Emacs dynamic modules";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "emacs-module_0_2_1" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, exceptions, filepath
      , monad-control, monad-interleave, mtl, prettyprinter
      , prettyprinter-combinators, primitive, template-haskell, text
@@ -96704,7 +97202,6 @@ self: {
        ];
        description = "Utilities to write Emacs dynamic modules";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "email" = callPackage
@@ -96927,7 +97424,6 @@ self: {
        description = "Emanate a structured view of your plain-text notes";
        license = lib.licenses.agpl3Only;
        badPlatforms = [ "x86_64-darwin" ];
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "emanote";
        maintainers = [ lib.maintainers.srid ];
      }) {};
@@ -97056,6 +97552,31 @@ self: {
        broken = true;
      }) {};
 
+  "emhell" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, data-default-class
+     , data-svd, haskeline, hocd, lens, optparse-applicative
+     , prettyprinter, prettyprinter-ansi-terminal, repline, text
+     , transformers, unix
+     }:
+     mkDerivation {
+       pname = "emhell";
+       version = "0.1.1.0";
+       sha256 = "1nfzqf51cqvc7w5yzazmgyis360xbaf3yzdqvh0m95abzrhiyvib";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         attoparsec base data-svd haskeline lens optparse-applicative
+         prettyprinter prettyprinter-ansi-terminal text unix
+       ];
+       executableHaskellDepends = [
+         base bytestring data-default-class data-svd hocd
+         optparse-applicative prettyprinter prettyprinter-ansi-terminal
+         repline text transformers
+       ];
+       description = "Embedded shell";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "emoji" = callPackage
     ({ mkDerivation, aeson, base, bytestring, template-haskell, text
      , unordered-containers
@@ -97230,6 +97751,17 @@ self: {
        broken = true;
      }) {};
 
+  "end-of-exe" = callPackage
+    ({ mkDerivation, base, directory }:
+     mkDerivation {
+       pname = "end-of-exe";
+       version = "0.1.2.0";
+       sha256 = "0nh1dw9izhhsgm4dm46nxdijs5rm3xmfv8ijnh261g8yh3j0qzan";
+       libraryHaskellDepends = [ base directory ];
+       description = "A small library to deal with executable endings";
+       license = lib.licenses.mit;
+     }) {};
+
   "endo" = callPackage
     ({ mkDerivation, base, between, data-default-class, mtl
      , transformers
@@ -97453,6 +97985,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "enum-subset-generate_0_1_0_3" = callPackage
+    ({ mkDerivation, base, generic-random, hspec, microlens, QuickCheck
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "enum-subset-generate";
+       version = "0.1.0.3";
+       sha256 = "13mj8ph1kb3myy5paqcssk6wmn9fkpxdv5gdjj6lgvfw0vfsp364";
+       libraryHaskellDepends = [ base microlens template-haskell ];
+       testHaskellDepends = [
+         base generic-random hspec microlens QuickCheck template-haskell
+       ];
+       description = "Generate an ADT being a subset of another ADT, and the corresponding mappings";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "enum-text" = callPackage
     ({ mkDerivation, array, attoparsec, base, bytestring, doctest
      , doctest-discover, fmt, hashable, possibly, scientific, text, time
@@ -97696,6 +98245,8 @@ self: {
        pname = "enummapset";
        version = "0.7.2.0";
        sha256 = "00n6nifk5hlp85mv0g68jpx9w19hx1cxqhbf7pqlm5m5f99y29m2";
+       revision = "1";
+       editedCabalFile = "14l25k5jy8lvc936cja46b1zfgmmd9yk1rqqrnznv2xl7xdj8725";
        libraryHaskellDepends = [ aeson base containers deepseq ];
        testHaskellDepends = [
          aeson array base containers deepseq ghc-prim HUnit QuickCheck
@@ -97761,8 +98312,8 @@ self: {
        pname = "env-guard";
        version = "0.2";
        sha256 = "0chgskm1893i17b7r704wh44b7wh0ig2jz7y43vznhnmchrc80al";
-       revision = "2";
-       editedCabalFile = "1f9gy868wkvkljiv23ibz7r1pk23arri6m3c18fgbip4fzfqrld7";
+       revision = "4";
+       editedCabalFile = "0fax8g5n9hjaifvf20cszgb513ak9777d816cz50hlwfj114rjds";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base doctest ];
        description = "Conditionally running IO actions based on environment variables";
@@ -97891,6 +98442,39 @@ self: {
        broken = true;
      }) {};
 
+  "eo-phi-normalizer" = callPackage
+    ({ mkDerivation, aeson, alex, array, base, BNFC, Cabal, directory
+     , filepath, happy, hspec, hspec-discover, mtl, optparse-generic
+     , process, string-interpolate, yaml
+     }:
+     mkDerivation {
+       pname = "eo-phi-normalizer";
+       version = "0.1.0";
+       sha256 = "1cc2zp6245bck2diqrcs7wqvzh1c604m68z442daljf2437iwb0w";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal process ];
+       libraryHaskellDepends = [
+         aeson array base directory filepath mtl string-interpolate yaml
+       ];
+       libraryToolDepends = [ alex BNFC happy ];
+       executableHaskellDepends = [
+         aeson array base directory filepath mtl optparse-generic
+         string-interpolate yaml
+       ];
+       executableToolDepends = [ alex BNFC happy ];
+       testHaskellDepends = [
+         aeson array base directory filepath hspec hspec-discover mtl
+         string-interpolate yaml
+       ];
+       testToolDepends = [ alex BNFC happy hspec-discover ];
+       description = "Command line normalizer of ðœ‘-calculus expressions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "normalize-phi";
+       broken = true;
+     }) {};
+
   "epanet-haskell" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -98005,6 +98589,8 @@ self: {
        libraryHaskellDepends = [ base exceptions mtl ];
        description = "Basic Erlang-like process support for Haskell";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "epub" = callPackage
@@ -98048,6 +98634,30 @@ self: {
        mainProgram = "epub-metadata-example";
      }) {};
 
+  "epub-metadata_5_4" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , HUnit, hxt, mtl, regex-compat, utf8-string, zip-archive
+     }:
+     mkDerivation {
+       pname = "epub-metadata";
+       version = "5.4";
+       sha256 = "1djpa5720s06bla1cadmqp59r5m632mayhcv5aiw4249xcj8s9a2";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers directory filepath hxt mtl regex-compat
+         utf8-string zip-archive
+       ];
+       executableHaskellDepends = [ base mtl ];
+       testHaskellDepends = [
+         base containers directory filepath HUnit mtl zip-archive
+       ];
+       description = "Library for parsing epub document metadata";
+       license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "epub-metadata-example";
+     }) {};
+
   "epub-tools" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory
      , epub-metadata, filepath, HUnit, mtl, parsec, process
@@ -98055,8 +98665,8 @@ self: {
      }:
      mkDerivation {
        pname = "epub-tools";
-       version = "3.1";
-       sha256 = "10xzdj59axw2bxv4zanx5ykrbaj6vrs90dp4fycywv7mz0jd2r63";
+       version = "3.2";
+       sha256 = "1ncg2yaw23lqk68ilpks8c3a42hgwqzv0dfgp0p0lz7fxb870dkw";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -98069,6 +98679,8 @@ self: {
        ];
        description = "Command line utilities for working with epub files";
        license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "epubname" = callPackage
@@ -98131,10 +98743,8 @@ self: {
      }:
      mkDerivation {
        pname = "equational-reasoning";
-       version = "0.7.0.1";
-       sha256 = "1xp5vmz19idc29xidr7q65hsnhfnl3ca80hxxfllsqpyyh32qlhn";
-       revision = "3";
-       editedCabalFile = "06irwil7x5yc0kpnknvx1a2albzq1l0dnkhc2xfzb4421kyzf9gf";
+       version = "0.7.0.2";
+       sha256 = "18pmg7c103yprldbzh0c3wz2mbiidi14ildymsfggnxica6w05qg";
        libraryHaskellDepends = [
          base containers template-haskell th-desugar void
        ];
@@ -98225,6 +98835,37 @@ self: {
        broken = true;
      }) {};
 
+  "erebos" = callPackage
+    ({ mkDerivation, async, base, binary, bytestring, c2hs, cereal
+     , clock, containers, cryptonite, deepseq, directory, filepath
+     , hashable, hashtables, haskeline, hinotify, iproute, libpjproject
+     , memory, mime, mtl, network, stm, tagged, text, time, transformers
+     , unix, uuid, zlib
+     }:
+     mkDerivation {
+       pname = "erebos";
+       version = "0.1.0";
+       sha256 = "0w8gafi12zchpkp6r83d0ylf4wq2fz14l97ziffsi7862901niif";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base binary bytestring cereal clock containers cryptonite
+         deepseq directory filepath hashable hashtables hinotify iproute
+         memory mime mtl network stm tagged text time unix uuid zlib
+       ];
+       libraryPkgconfigDepends = [ libpjproject ];
+       libraryToolDepends = [ c2hs ];
+       executableHaskellDepends = [
+         base bytestring cryptonite haskeline mtl network text time
+         transformers
+       ];
+       description = "Decentralized messaging and synchronization";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "erebos";
+       broken = true;
+     }) {libpjproject = null;};
+
   "erf" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -98347,8 +98988,8 @@ self: {
      }:
      mkDerivation {
        pname = "errata";
-       version = "0.4.0.1";
-       sha256 = "1xj7cg93pi242mx99vw31262sx5m78fd13nzjpzxp5zcw40k1mw2";
+       version = "0.4.0.2";
+       sha256 = "0vr1rijjb25nrsnrix173p4xqg2wqac5iwfwhllgw2fvh3k2jbz8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers text ];
@@ -98369,6 +99010,8 @@ self: {
        libraryHaskellDepends = [ base mtl ];
        description = "a FFI utility";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "error" = callPackage
@@ -98401,8 +99044,8 @@ self: {
      }:
      mkDerivation {
        pname = "error-codes";
-       version = "0.1.3.0";
-       sha256 = "15i7xyq3jll98cj1dd7rk5dm0aba4sf504f89fqy69ciacd35ckj";
+       version = "0.1.3.1";
+       sha256 = "133qfx6dkl6khpbgj0a6gki9azx71fl1cz10bi1pifzbziskxkbi";
        libraryHaskellDepends = [
          base bytestring primitive primitive-unlifted text text-short
        ];
@@ -98614,35 +99257,6 @@ self: {
 
   "ersatz" = callPackage
     ({ mkDerivation, array, attoparsec, base, bytestring, containers
-     , data-default, fail, lens, mtl, parsec, process, semigroups
-     , streams, temporary, transformers, unordered-containers
-     }:
-     mkDerivation {
-       pname = "ersatz";
-       version = "0.4.13";
-       sha256 = "0ph2ayw4vb4rrgfmm8dhwr18172igx2sczjhv2vf3b6vd5r0z1hy";
-       revision = "1";
-       editedCabalFile = "1xmmxr1n8mlchlkbl8n93yck4zn5308q5pvp946zr9d7866wl3l5";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         array attoparsec base bytestring containers data-default lens mtl
-         process semigroups streams temporary transformers
-         unordered-containers
-       ];
-       executableHaskellDepends = [
-         array base containers fail lens mtl parsec semigroups
-       ];
-       testHaskellDepends = [ array base ];
-       description = "A monad for expressing SAT or QSAT problems using observable sharing";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "ersatz_0_5" = callPackage
-    ({ mkDerivation, array, attoparsec, base, bytestring, containers
      , data-default, fail, HUnit, lens, mtl, parsec, process, semigroups
      , streams, temporary, test-framework, test-framework-hunit
      , transformers, unordered-containers
@@ -98816,12 +99430,12 @@ self: {
   "espial" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base64, bcrypt
      , blaze-html, bytestring, case-insensitive, classy-prelude
-     , classy-prelude-conduit, classy-prelude-yesod, conduit, connection
-     , containers, cryptohash-sha256, data-default, directory, entropy
-     , esqueleto, fast-logger, file-embed, foreign-store, hjsmin
-     , hscolour, hspec, html-entities, http-api-data, http-client
-     , http-client-tls, http-conduit, http-types, iso8601-time
-     , microlens, monad-logger, mtl, optparse-applicative
+     , classy-prelude-conduit, classy-prelude-yesod, conduit, containers
+     , cryptohash-sha256, crypton-connection, data-default, directory
+     , entropy, esqueleto, fast-logger, file-embed, foreign-store
+     , hjsmin, hscolour, hspec, html-entities, http-api-data
+     , http-client, http-client-tls, http-conduit, http-types
+     , iso8601-time, microlens, monad-logger, mtl, optparse-applicative
      , optparse-generic, parser-combinators, persistent
      , persistent-sqlite, persistent-template, pretty-show, safe
      , shakespeare, template-haskell, text, time, transformers, unix
@@ -98831,15 +99445,15 @@ self: {
      }:
      mkDerivation {
        pname = "espial";
-       version = "0.0.16";
-       sha256 = "102pfhl04rhrfxbq24wvbg6gz2dnsj3krskzlb8afmkn1n4wpc8m";
+       version = "0.0.20";
+       sha256 = "0gdwd0yni2wd36zg3hv832x1rvabnq4q424mqmkid9jp9df4951l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson attoparsec base base64 bcrypt blaze-html bytestring
          case-insensitive classy-prelude classy-prelude-conduit
-         classy-prelude-yesod conduit connection containers
-         cryptohash-sha256 data-default directory entropy esqueleto
+         classy-prelude-yesod conduit containers cryptohash-sha256
+         crypton-connection data-default directory entropy esqueleto
          fast-logger file-embed foreign-store hjsmin hscolour html-entities
          http-api-data http-client http-client-tls http-conduit http-types
          iso8601-time microlens monad-logger mtl parser-combinators
@@ -98851,8 +99465,8 @@ self: {
        executableHaskellDepends = [
          aeson attoparsec base base64 bcrypt blaze-html bytestring
          case-insensitive classy-prelude classy-prelude-conduit
-         classy-prelude-yesod conduit connection containers
-         cryptohash-sha256 data-default directory entropy esqueleto
+         classy-prelude-yesod conduit containers cryptohash-sha256
+         crypton-connection data-default directory entropy esqueleto
          fast-logger file-embed foreign-store hjsmin hscolour html-entities
          http-api-data http-client http-client-tls http-conduit http-types
          iso8601-time microlens monad-logger mtl optparse-applicative
@@ -98865,8 +99479,8 @@ self: {
        testHaskellDepends = [
          aeson attoparsec base base64 bcrypt blaze-html bytestring
          case-insensitive classy-prelude classy-prelude-conduit
-         classy-prelude-yesod conduit connection containers
-         cryptohash-sha256 data-default directory entropy esqueleto
+         classy-prelude-yesod conduit containers cryptohash-sha256
+         crypton-connection data-default directory entropy esqueleto
          fast-logger file-embed foreign-store hjsmin hscolour hspec
          html-entities http-api-data http-client http-client-tls
          http-conduit http-types iso8601-time microlens monad-logger mtl
@@ -98891,8 +99505,36 @@ self: {
      }:
      mkDerivation {
        pname = "esqueleto";
-       version = "3.5.11.0";
-       sha256 = "03vk49q87m85qkld89d1gxf17mah7xkhk0m5y84d4mv1c5is530y";
+       version = "3.5.11.1";
+       sha256 = "144anqiar5pq9ss403sspnicjlad4icnf986fy4zfzqd70r6na0k";
+       libraryHaskellDepends = [
+         aeson attoparsec base blaze-html bytestring conduit containers
+         monad-logger persistent resourcet tagged template-haskell text time
+         transformers unliftio unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson attoparsec base blaze-html bytestring conduit containers
+         exceptions hspec hspec-core monad-logger mtl mysql mysql-simple
+         persistent persistent-mysql persistent-postgresql persistent-sqlite
+         postgresql-simple QuickCheck resourcet tagged template-haskell text
+         time transformers unliftio unordered-containers
+       ];
+       description = "Type-safe EDSL for SQL queries on persistent backends";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "esqueleto_3_5_11_2" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, blaze-html, bytestring
+     , conduit, containers, exceptions, hspec, hspec-core, monad-logger
+     , mtl, mysql, mysql-simple, persistent, persistent-mysql
+     , persistent-postgresql, persistent-sqlite, postgresql-simple
+     , QuickCheck, resourcet, tagged, template-haskell, text, time
+     , transformers, unliftio, unordered-containers
+     }:
+     mkDerivation {
+       pname = "esqueleto";
+       version = "3.5.11.2";
+       sha256 = "0k78rsf98nzbc4ycf3jgari358g661v3rgg6sxm6dch0q70dhaj5";
        libraryHaskellDepends = [
          aeson attoparsec base blaze-html bytestring conduit containers
          monad-logger persistent resourcet tagged template-haskell text time
@@ -98907,6 +99549,7 @@ self: {
        ];
        description = "Type-safe EDSL for SQL queries on persistent backends";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "esqueleto-compat" = callPackage
@@ -99405,6 +100048,8 @@ self: {
        ];
        description = "Stripped dependencies of ethereum-analyzer";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ethereum-analyzer-webui" = callPackage
@@ -99692,6 +100337,8 @@ self: {
        ];
        description = "An extensible event framework";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "eve-cli" = callPackage
@@ -100003,8 +100650,8 @@ self: {
      }:
      mkDerivation {
        pname = "eventlog2html";
-       version = "0.10.0";
-       sha256 = "1f22vw4zzkpjhhs5qci5jknyr2vwa9rhkg9zr2rfzlq3yyslahw8";
+       version = "0.11.0";
+       sha256 = "0yj50j9jijw8is19d2afpgc3dv45ji911rlhbjvcz7x441valqx8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -100187,43 +100834,6 @@ self: {
 
   "eventstore" = callPackage
     ({ mkDerivation, aeson, array, async, base, bifunctors, bytestring
-     , cereal, clock, connection, containers, dns, dotnet-timespan
-     , exceptions, fast-logger, file-embed, hashable, hspec, http-client
-     , interpolate, lifted-async, lifted-base, monad-control
-     , monad-logger, mono-traversable, mtl, protobuf, random, safe
-     , safe-exceptions, semigroups, stm, stm-chans, streaming, tasty
-     , tasty-hspec, tasty-hunit, text, time, transformers-base
-     , unordered-containers, uuid, vector
-     }:
-     mkDerivation {
-       pname = "eventstore";
-       version = "1.4.2";
-       sha256 = "1g11asiwnqkzfvflcz0va28kj8b89h5890c9zsa2as9kzgb7zdmr";
-       libraryHaskellDepends = [
-         aeson array base bifunctors bytestring cereal clock connection
-         containers dns dotnet-timespan exceptions fast-logger hashable
-         http-client interpolate lifted-async lifted-base monad-control
-         monad-logger mono-traversable mtl protobuf random safe
-         safe-exceptions semigroups stm stm-chans streaming text time
-         transformers-base unordered-containers uuid vector
-       ];
-       testHaskellDepends = [
-         aeson async base bytestring cereal connection containers
-         dotnet-timespan exceptions fast-logger file-embed hashable hspec
-         lifted-async lifted-base monad-control mono-traversable protobuf
-         safe safe-exceptions semigroups stm stm-chans streaming tasty
-         tasty-hspec tasty-hunit text time transformers-base
-         unordered-containers uuid vector
-       ];
-       description = "EventStore TCP Client";
-       license = lib.licenses.bsd3;
-       platforms = lib.platforms.x86_64;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "eventstore_1_4_3" = callPackage
-    ({ mkDerivation, aeson, array, async, base, bifunctors, bytestring
      , cereal, clock, containers, crypton-connection, dns
      , dotnet-timespan, exceptions, fast-logger, file-embed, hashable
      , hspec, http-client, interpolate, lifted-async, lifted-base
@@ -100275,6 +100885,7 @@ self: {
        description = "An event-oriented observability library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "eventuo11y-batteries" = callPackage
@@ -100287,8 +100898,8 @@ self: {
      }:
      mkDerivation {
        pname = "eventuo11y-batteries";
-       version = "0.4.0.1";
-       sha256 = "1516005y2qjybil094scnv27446fbm588yhb95n7h2sqbdx183ff";
+       version = "0.4.0.2";
+       sha256 = "13si3mph88swf6hbz8sldsvazm2ckvbhk95wr117n8rw784r6ydg";
        libraryHaskellDepends = [
          aeson base binary bytestring case-insensitive containers eventuo11y
          eventuo11y-json general-allocate http-media http-types
@@ -100310,6 +100921,8 @@ self: {
        libraryHaskellDepends = [ base template-haskell ];
        description = "DSL for defining eventuo11y fields and selectors";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "eventuo11y-json" = callPackage
@@ -100318,8 +100931,8 @@ self: {
      }:
      mkDerivation {
        pname = "eventuo11y-json";
-       version = "0.3.0.2";
-       sha256 = "1q60hb7zaa3gifbsf1d7zl1bclz21ysmb3g1ww5xz4hr5fy03ksi";
+       version = "0.3.0.3";
+       sha256 = "0qdza7fdwxifls9w4s5ihsygxksaxc45q6365hz96vwg7j6bc19x";
        libraryHaskellDepends = [
          aeson base bytestring eventuo11y eventuo11y-dsl template-haskell
          text time uuid
@@ -100569,8 +101182,8 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "exception-hierarchy";
-       version = "0.1.0.10";
-       sha256 = "1xvbx4b68hsdj4wsxff2qd5b9342vk3iqjdv9ilxpf3wpg3xq3x2";
+       version = "0.1.0.11";
+       sha256 = "0v7yc7im6g7xy41q459g39b7ri44f7axzzvrbi3vrlwl7c7k3wxz";
        libraryHaskellDepends = [ base template-haskell ];
        description = "Exception type hierarchy with TemplateHaskell";
        license = lib.licenses.bsd3;
@@ -100617,6 +101230,8 @@ self: {
        ];
        description = "Exception monad transformer instances for monads-tf classes";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "exception-mtl" = callPackage
@@ -100703,8 +101318,8 @@ self: {
        pname = "exceptions";
        version = "0.10.7";
        sha256 = "0jb0ah5k2mb4clhb34c59f615vzl54lhx3hf6njqsgdmr3jashls";
-       revision = "1";
-       editedCabalFile = "05hqkph2rd7vkgbggbpa13i3r8wvb2fgsan40cd8macggwkw5k30";
+       revision = "2";
+       editedCabalFile = "14zz1abaj62p7f0gmnxr2ss1cpciin64zy7yz3vhkcvy1k00ynm8";
        libraryHaskellDepends = [
          base mtl stm template-haskell transformers
        ];
@@ -100734,6 +101349,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "ExceptT, but uses IO instead of Either";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "exchangerates" = callPackage
@@ -101025,6 +101642,7 @@ self: {
        ];
        description = "@exinst@ support for @aeson@ package";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "exinst-base" = callPackage
@@ -101045,6 +101663,7 @@ self: {
        ];
        description = "@exinst@ support for @base@ package";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "exinst-bytes" = callPackage
@@ -101065,6 +101684,7 @@ self: {
        ];
        description = "@exinst@ support for @bytes@ package";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "exinst-cereal" = callPackage
@@ -101085,6 +101705,7 @@ self: {
        ];
        description = "@exinst@ support for @cereal@ package";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "exinst-deepseq" = callPackage
@@ -101132,6 +101753,7 @@ self: {
        ];
        description = "Dependent pairs and their instances";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "exist" = callPackage
@@ -101250,8 +101872,8 @@ self: {
      }:
      mkDerivation {
        pname = "exon";
-       version = "1.6.1.0";
-       sha256 = "0cdsh3qhbiw4q0nskcwgbbd1zdy0jhy9iblqx5h079drc0faa3zp";
+       version = "1.6.1.1";
+       sha256 = "1cdl7lmlr1ivr1w0b0g26q3lifx9z0a91py1gvd92a4ncawrwk13";
        libraryHaskellDepends = [
          base ghc incipit-base parsec template-haskell
        ];
@@ -101402,6 +102024,8 @@ self: {
        ];
        description = "Perform scientific experiments stored in a DB, and generate reports";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "expiring-cache-map" = callPackage
@@ -101615,8 +102239,8 @@ self: {
      }:
      mkDerivation {
        pname = "exploring-interpreters";
-       version = "1.4.0.0";
-       sha256 = "15dadwf6lpcppc1zcv5mwrfsgffjjwbsprasf0fw9prnyx1srw3v";
+       version = "1.5.0.0";
+       sha256 = "07g32qwv5nfpzs5c7hni2mhzaaryjy3swmarxbc8hdlb4nlysbj5";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring containers exceptions fgl
          haskeline http-types mtl network scientific text transformers
@@ -101653,13 +102277,27 @@ self: {
     ({ mkDerivation, base, leancheck, template-haskell }:
      mkDerivation {
        pname = "express";
-       version = "1.0.12";
-       sha256 = "0b3z91qv780zqrxfdhfadba3vpcnzhg13j7g78m3zcpgc6xw7iyr";
+       version = "1.0.14";
+       sha256 = "0ys5ahams2j6q41gz4wxh97pwjdqv8c1i3hd7ygz8xkz8j794g4y";
+       libraryHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [ base leancheck ];
+       benchmarkHaskellDepends = [ base leancheck ];
+       description = "Dynamically-typed expressions involving function application and variables";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "express_1_0_16" = callPackage
+    ({ mkDerivation, base, leancheck, template-haskell }:
+     mkDerivation {
+       pname = "express";
+       version = "1.0.16";
+       sha256 = "0xw8z95f0q19x4h4iy8pzbsskd0f9b290g6784bmrrmm95xz6cs2";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base leancheck ];
        benchmarkHaskellDepends = [ base leancheck ];
        description = "Dynamically-typed expressions involving function application and variables";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "expression-parser" = callPackage
@@ -102029,6 +102667,8 @@ self: {
        pname = "extensions";
        version = "0.1.0.1";
        sha256 = "1rf6jhmms6ll7mn9rh81amzb7nd4zjqcnxdzivw50dxcrcfmdiq2";
+       revision = "1";
+       editedCabalFile = "1ixf5bpxy840zdlg3gsl3whzii03fc5j16i591pakprsvprp04hk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -102064,14 +102704,16 @@ self: {
      }) {};
 
   "extism" = callPackage
-    ({ mkDerivation, base, bytestring, extism, extism-manifest, HUnit
-     , json
+    ({ mkDerivation, base, binary, bytestring, extism, extism-manifest
+     , HUnit, json, uuid
      }:
      mkDerivation {
        pname = "extism";
-       version = "0.5.0";
-       sha256 = "1yb0lw7bpinnnqllkjxad83g1lh2gx68w9c63jplkivygws800n2";
-       libraryHaskellDepends = [ base bytestring extism-manifest json ];
+       version = "1.0.0.1";
+       sha256 = "0zq08pqhr22kmwaiy56nbf1h84xm38bq491n60pd116sag21pf1n";
+       libraryHaskellDepends = [
+         base binary bytestring extism-manifest json uuid
+       ];
        librarySystemDepends = [ extism ];
        testHaskellDepends = [ base bytestring HUnit ];
        description = "Extism bindings";
@@ -102084,8 +102726,8 @@ self: {
     ({ mkDerivation, base, base64-bytestring, bytestring, json }:
      mkDerivation {
        pname = "extism-manifest";
-       version = "0.3.0";
-       sha256 = "0cfp8akz64ama88ls5885dvvxfswy1w709gl2h9qp0ga6fvkx0xf";
+       version = "1.0.0.1";
+       sha256 = "03rk2rc6wlrlnxz2mx3vb4a1i50hsshd2pz4rm0q2m54vv8rpg00";
        libraryHaskellDepends = [ base base64-bytestring bytestring json ];
        description = "Extism manifest bindings";
        license = lib.licenses.bsd3;
@@ -102097,8 +102739,8 @@ self: {
      }:
      mkDerivation {
        pname = "extism-pdk";
-       version = "0.2.0.0";
-       sha256 = "0aqbzd9vnnfxn0wh5q6axcwq44iq2z5gq276qcbcfppd03vf83mm";
+       version = "1.0.0.0";
+       sha256 = "1fw9jypdxwpx3b4zgdjx6qk24mjdcxsa3zk4rhqlzsz5ga64z65f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -102407,6 +103049,8 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Forward Automatic Differentiation";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fadno" = callPackage
@@ -102416,8 +103060,8 @@ self: {
      }:
      mkDerivation {
        pname = "fadno";
-       version = "1.1.8";
-       sha256 = "0f8lx1lg43665s56fwb3mawxjz8g1mrr33hz3rm47jcbb45k25jj";
+       version = "1.1.9.1";
+       sha256 = "1iqsjihrhhikvcb1y25p5nx7l1ac8ka1dmcy30qjlzznvy8pz96s";
        libraryHaskellDepends = [
          base containers data-default Decimal event-list fadno-xml HUnit
          lens midi mtl process safe text unordered-containers vector xml
@@ -102436,8 +103080,8 @@ self: {
      }:
      mkDerivation {
        pname = "fadno-braids";
-       version = "0.1.5";
-       sha256 = "1lyxxnzc2y4iz1ydyqzm69rd1yjh3grcq8ji1rn9wqbwjbjimf9p";
+       version = "0.2";
+       sha256 = "1dl74zxwzp71pjcmwa8a8wlbxlpvdhq6bkjhvflzw07m5hkp4lg3";
        libraryHaskellDepends = [
          base containers data-default diagrams diagrams-lib
          diagrams-rasterific lens random
@@ -102453,8 +103097,8 @@ self: {
      }:
      mkDerivation {
        pname = "fadno-xml";
-       version = "1.2";
-       sha256 = "0s7d7ida5xj2118j0zwbrd19pxn8aqqqaxz62kyvybckmhz05h1g";
+       version = "1.2.1";
+       sha256 = "0g07rjsql3w33n3smgrf2cg27380kzb7dh938cxc73m5y8ddfljf";
        libraryHaskellDepends = [
          base containers Decimal lens mtl parsec xml
        ];
@@ -102484,6 +103128,8 @@ self: {
        libraryHaskellDepends = [ base mtl transformers ];
        description = "A 'Failable' error monad class to unify failure across monads that can fail";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "failable-list" = callPackage
@@ -102508,6 +103154,8 @@ self: {
        libraryHaskellDepends = [ base transformers ];
        description = "A simple type class for success/failure computations. (deprecated)";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "failure-detector" = callPackage
@@ -102694,36 +103342,6 @@ self: {
 
   "faktory" = callPackage
     ({ mkDerivation, aeson, aeson-casing, aeson-qq, async, base
-     , bytestring, connection, cryptonite, errors, hspec, markdown-unlit
-     , megaparsec, memory, mtl, network, random, safe-exceptions
-     , scanner, semigroups, text, time, unix, unordered-containers
-     }:
-     mkDerivation {
-       pname = "faktory";
-       version = "1.1.2.4";
-       sha256 = "0mn888cjk8ag94il7zcbk6q5cq2vf2dxf1b8ba8ki2rypxld5m7a";
-       revision = "1";
-       editedCabalFile = "10gpavyqdx9kcrp963wgx0jfvm4xf97yg92y4gvk5vkpjipmx5mg";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson aeson-casing base bytestring connection cryptonite errors
-         megaparsec memory mtl network random safe-exceptions scanner
-         semigroups text time unix unordered-containers
-       ];
-       executableHaskellDepends = [ aeson base safe-exceptions ];
-       testHaskellDepends = [
-         aeson aeson-qq async base hspec markdown-unlit mtl time
-       ];
-       testToolDepends = [ markdown-unlit ];
-       description = "Faktory Worker for Haskell";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "faktory_1_1_2_5" = callPackage
-    ({ mkDerivation, aeson, aeson-casing, aeson-qq, async, base
      , bytestring, crypton-connection, cryptonite, errors, hspec
      , markdown-unlit, megaparsec, memory, mtl, network, random
      , safe-exceptions, scanner, semigroups, text, time, unix
@@ -102731,10 +103349,8 @@ self: {
      }:
      mkDerivation {
        pname = "faktory";
-       version = "1.1.2.5";
-       sha256 = "0ax5hk98k4v8vnhv6rvbjxhynqkzijb5l7dbaxp15mh6yd2y981f";
-       revision = "1";
-       editedCabalFile = "072nm86gyqgnrcfdq466nkpkcsp417zibj1ni2s9b7ndw63x4k1f";
+       version = "1.1.2.6";
+       sha256 = "1ddzq4pxx6blvqa2s6y7jmx6s49g9ckywiidi2hvq7r0dympsz03";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -102783,6 +103399,7 @@ self: {
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "falling-turnip";
+       broken = true;
      }) {};
 
   "fallingblocks" = callPackage
@@ -102815,6 +103432,8 @@ self: {
        pname = "falsify";
        version = "0.2.0";
        sha256 = "1fhj70q6kfd98892gxfy3mc8wxxyr80g4rzapaici4zd3zczz2fd";
+       revision = "1";
+       editedCabalFile = "0i740c9nfjpgygdzq6gzjdcaj94m5dyf2bybbdx9xgw0kacmxbc2";
        libraryHaskellDepends = [
          base base16-bytestring binary bytestring containers data-default
          mtl optics-core optparse-applicative selective sop-core splitmix
@@ -102978,6 +103597,8 @@ self: {
        ];
        description = "Solve classical planning problems (STRIPS/SAS+) using Haskell & Fast Downward";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fast-logger" = callPackage
@@ -103206,6 +103827,8 @@ self: {
        ];
        description = "Speed up Megaparsec parsing when parsing succeeds";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fastirc" = callPackage
@@ -103262,6 +103885,8 @@ self: {
        ];
        description = "Memoize functions on Generic types";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fastparser" = callPackage
@@ -103321,6 +103946,8 @@ self: {
        ];
        description = "A fast open-union type suitable for 100+ contained alternatives";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fathead-util" = callPackage
@@ -103698,6 +104325,8 @@ self: {
        pname = "fcf-base";
        version = "0.1.0.0";
        sha256 = "19jrcpj496bpchv8fw30vd5b5w3sj1qkzmh5jlahyvz5wsppzwsq";
+       revision = "1";
+       editedCabalFile = "0j71pgy6cp6jadyx8726daa91j795y9p3r3w0x3jvffpnlk9aibp";
        libraryHaskellDepends = [ base fcf-family ];
        testHaskellDepends = [ base fcf-family ];
        description = "Family-of-families instances for base";
@@ -103746,6 +104375,8 @@ self: {
        ];
        description = "Data structures and algorithms for first-class-families";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fcf-family" = callPackage
@@ -103754,8 +104385,8 @@ self: {
      }:
      mkDerivation {
        pname = "fcf-family";
-       version = "0.2.0.0";
-       sha256 = "17v811dfdvgdvhwri34df3sf3n82crd41pi28j8gbdqs4zg0lgln";
+       version = "0.2.0.1";
+       sha256 = "0dgbzin82da8a8j0xm9ijkaj5ifk2ca0cx02x5glr07qzzhpa9k5";
        libraryHaskellDepends = [
          base containers first-class-families template-haskell
        ];
@@ -104054,27 +104685,6 @@ self: {
      }:
      mkDerivation {
        pname = "fedora-haskell-tools";
-       version = "1.0";
-       sha256 = "13nqsf4p5cm9zzdryl09hcxsya5qn3h8q8wl1sz02jswkhwlhlzb";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         base bytestring csv directory extra fedora-dists filepath
-         http-conduit http-types optparse-applicative process simple-cmd
-         simple-cmd-args split time unix
-       ];
-       description = "Building and maintenance tools for Fedora Haskell";
-       license = lib.licenses.gpl3Only;
-     }) {};
-
-  "fedora-haskell-tools_1_1" = callPackage
-    ({ mkDerivation, base, bytestring, csv, directory, extra
-     , fedora-dists, filepath, http-conduit, http-types
-     , optparse-applicative, process, simple-cmd, simple-cmd-args, split
-     , time, unix
-     }:
-     mkDerivation {
-       pname = "fedora-haskell-tools";
        version = "1.1";
        sha256 = "194jkagrvkhzgw224jybxy4gvavs9qm6lp1b26ddbnpddf3v6paf";
        isLibrary = false;
@@ -104086,7 +104696,6 @@ self: {
        ];
        description = "Building and maintenance tools for Fedora Haskell";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fedora-img-dl" = callPackage
@@ -104143,8 +104752,8 @@ self: {
      }:
      mkDerivation {
        pname = "fedora-repoquery";
-       version = "0.3";
-       sha256 = "020jsrlhb4dfn4kjkzxm8ix72m3c9ihsr85h23nf1f1kdv15cinv";
+       version = "0.3.1";
+       sha256 = "0sdn2j25gf9k55w5rkzqi66jnmj74zajlal9vc06cx3xhw14rmsl";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -104185,8 +104794,8 @@ self: {
        pname = "feed";
        version = "1.3.2.1";
        sha256 = "0marh7qmggq1z5339nid3gil7k786d3yk79b0rwfkxxaxmr41xd8";
-       revision = "2";
-       editedCabalFile = "16k73p6csq9spbiwxwkfwzms71if9fyjj4g4zpvpz8psj0n7wcdj";
+       revision = "3";
+       editedCabalFile = "0ry8qlbbwmh1hi9v21mvq23yh0iv7g0n2fwdqvd4n8npd676jrc9";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base base-compat bytestring old-locale old-time safe text time
@@ -104369,8 +104978,8 @@ self: {
      }:
      mkDerivation {
        pname = "feedback";
-       version = "0.1.0.3";
-       sha256 = "1an4w44p1abicjkb22whkrkhrl66p3f2vfrr70q8jbkwvws0wx8w";
+       version = "0.1.0.4";
+       sha256 = "0x7c8jr2mrvkfjxw919fkwngkxzbwly1xi1c1z4i0finkzfz8x6w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -104442,6 +105051,7 @@ self: {
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "imageutils";
+       broken = true;
      }) {};
 
   "fei-dataiter" = callPackage
@@ -104949,25 +105559,6 @@ self: {
      }:
      mkDerivation {
        pname = "fgl";
-       version = "5.8.0.0";
-       sha256 = "02cdigf5m3520vh30lld0j5d4al7nmsa4m9v9bjw1fprfaac03nn";
-       revision = "1";
-       editedCabalFile = "0g96jxn24vmq5y84klh95ng4lm7ghjbgka6rfkjf9kbyn7fqypnp";
-       libraryHaskellDepends = [
-         array base containers deepseq transformers
-       ];
-       testHaskellDepends = [ base containers hspec QuickCheck ];
-       benchmarkHaskellDepends = [ base deepseq microbench ];
-       description = "Martin Erwig's Functional Graph Library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "fgl_5_8_2_0" = callPackage
-    ({ mkDerivation, array, base, containers, deepseq, hspec
-     , microbench, QuickCheck, transformers
-     }:
-     mkDerivation {
-       pname = "fgl";
        version = "5.8.2.0";
        sha256 = "1dn3x3rmdlglg1kbvx7vndkm66lvvyd23awwd0qzplzi43vhrks4";
        libraryHaskellDepends = [
@@ -104977,7 +105568,6 @@ self: {
        benchmarkHaskellDepends = [ base deepseq microbench ];
        description = "Martin Erwig's Functional Graph Library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fgl-arbitrary" = callPackage
@@ -105182,8 +105772,8 @@ self: {
      }:
      mkDerivation {
        pname = "file-embed";
-       version = "0.0.15.0";
-       sha256 = "1pavxj642phrkq67620g10wqykjfhmm9yj2rm8pja83sadfvhrph";
+       version = "0.0.16.0";
+       sha256 = "05glld1cy9yx2g1xlbkl4bpdf18j8l2kj5nxgiamaqwkzwp6f62z";
        libraryHaskellDepends = [
          base bytestring directory filepath template-haskell
        ];
@@ -105232,16 +105822,19 @@ self: {
      }) {};
 
   "file-io" = callPackage
-    ({ mkDerivation, base, bytestring, filepath, unix }:
+    ({ mkDerivation, base, bytestring, deepseq, filepath, tasty
+     , tasty-hunit, temporary, unix
+     }:
      mkDerivation {
        pname = "file-io";
-       version = "0.1.0.2";
-       sha256 = "0ifgxiq0qzwdb9zlch0hjz4iq9r0nghmprvl1arf7b10mck618fl";
-       libraryHaskellDepends = [ base bytestring filepath unix ];
+       version = "0.1.1";
+       sha256 = "1xqmd342x7ywc000g6dcr3gj9smcgancrrx7qc4faml2yh5sh842";
+       libraryHaskellDepends = [ base bytestring deepseq filepath unix ];
+       testHaskellDepends = [
+         base bytestring filepath tasty tasty-hunit temporary
+       ];
        description = "Basic file IO operations via 'OsPath'";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "file-location" = callPackage
@@ -105324,14 +105917,31 @@ self: {
        broken = true;
      }) {};
 
+  "file-uri" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, tasty, tasty-bench
+     , tasty-hunit
+     }:
+     mkDerivation {
+       pname = "file-uri";
+       version = "0.1.0.0";
+       sha256 = "1bnsc1527qcvnz5ihv1phzbdif6qg01r3qmgj4dk1fzzn79mqnxl";
+       revision = "2";
+       editedCabalFile = "0vysq1q10zp4agcrfgzy7lrjgf2q2nj8fgs17v4n54r4vqmw3p6n";
+       libraryHaskellDepends = [ attoparsec base bytestring ];
+       testHaskellDepends = [ base bytestring tasty tasty-hunit ];
+       benchmarkHaskellDepends = [ base tasty-bench ];
+       description = "File URI parsing";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "filecache" = callPackage
     ({ mkDerivation, base, containers, directory, exceptions, filepath
      , fsnotify, hspec, mtl, stm, strict-base-types, temporary, time
      }:
      mkDerivation {
        pname = "filecache";
-       version = "0.4.1";
-       sha256 = "17fbjdy2cicrd956317jj7fir0bd621c4zb5sb4991ph7jsah0n5";
+       version = "0.5.0";
+       sha256 = "02b2w8ycnks1sqhsiajw51dx4l38f5kv3vh67psr9rrp02q0zh4m";
        libraryHaskellDepends = [
          base containers directory exceptions filepath fsnotify mtl stm
          strict-base-types time
@@ -105410,21 +106020,22 @@ self: {
        broken = true;
      }) {};
 
-  "filepath_1_5_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, deepseq, exceptions, os-string
-     , QuickCheck, quickcheck-classes-base, tasty-bench
+  "filepath_1_5_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, deepseq, exceptions
+     , generic-deriving, generic-random, os-string, QuickCheck
+     , quickcheck-classes-base, tasty, tasty-bench, tasty-quickcheck
      , template-haskell
      }:
      mkDerivation {
        pname = "filepath";
-       version = "1.5.0.0";
-       sha256 = "05v49dln4ya56xlgjx6kp43xn163yg52v4ayp8fc8m74j7bkm2bp";
+       version = "1.5.2.0";
+       sha256 = "19vq749100f1nfjn9cpw99wx392x6rf439ly5lm965w5zas6sq6j";
        libraryHaskellDepends = [
          base bytestring deepseq exceptions os-string template-haskell
        ];
        testHaskellDepends = [
-         base bytestring deepseq os-string QuickCheck
-         quickcheck-classes-base
+         base bytestring deepseq generic-deriving generic-random os-string
+         QuickCheck quickcheck-classes-base tasty tasty-quickcheck
        ];
        benchmarkHaskellDepends = [
          base bytestring deepseq os-string tasty-bench
@@ -105449,6 +106060,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "filepath-bytestring_1_5_2_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, filepath, QuickCheck
+     , unix
+     }:
+     mkDerivation {
+       pname = "filepath-bytestring";
+       version = "1.5.2.0.0";
+       sha256 = "0cb16m54lysjkh51xcbqv0w6b1mrhnlq8sddw705jn3wip6g5hw2";
+       libraryHaskellDepends = [ base bytestring filepath unix ];
+       testHaskellDepends = [ base bytestring filepath QuickCheck ];
+       benchmarkHaskellDepends = [ base criterion filepath ];
+       description = "Library for manipulating RawFilePaths in a cross platform way";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "filepath-crypto" = callPackage
     ({ mkDerivation, base, binary, bytestring, case-insensitive
      , cryptoids, cryptoids-class, cryptoids-types, exceptions, filepath
@@ -106094,6 +106721,8 @@ self: {
        ];
        description = "Constraint Solver for Finite Domains";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "firebase-database" = callPackage
@@ -106241,6 +106870,8 @@ self: {
        libraryHaskellDepends = [ base transformers ];
        description = "First class patterns and pattern matching, using type families";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "firstify" = callPackage
@@ -106425,24 +107056,6 @@ self: {
      }) {};
 
   "fix-whitespace" = callPackage
-    ({ mkDerivation, base, directory, extra, filepath, filepattern
-     , text, yaml
-     }:
-     mkDerivation {
-       pname = "fix-whitespace";
-       version = "0.0.11";
-       sha256 = "0q36vr3pfk1x14hl86g4g557299ih0510j7cf37h8n5nv8bs8gq2";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         base directory extra filepath filepattern text yaml
-       ];
-       description = "Fixes whitespace issues";
-       license = "unknown";
-       mainProgram = "fix-whitespace";
-     }) {};
-
-  "fix-whitespace_0_1" = callPackage
     ({ mkDerivation, base, bytestring, directory, extra, filepath
      , filepattern, QuickCheck, tasty, tasty-golden, tasty-quickcheck
      , text, transformers, yaml
@@ -106451,6 +107064,8 @@ self: {
        pname = "fix-whitespace";
        version = "0.1";
        sha256 = "0ml8ggis3a4hdgl069864bxqqm74bs9yzbyb7imp02g2zywqsr1g";
+       revision = "1";
+       editedCabalFile = "1sljajray6r3dyj617rsakrf4n7y5wcppl5nf5xxacwv2q21ljhi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base text transformers ];
@@ -106463,7 +107078,6 @@ self: {
        ];
        description = "Fixes whitespace issues";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "fix-whitespace";
      }) {};
 
@@ -106895,6 +107509,8 @@ self: {
        pname = "flac";
        version = "0.2.1";
        sha256 = "0ca41lyl21x9nrlnj5df4fbhycpsmfrl6fsd8pmza2wklx8zlv9d";
+       revision = "1";
+       editedCabalFile = "1a2qja90bqm6zwfsi6z22zm74rb3sah37j4qlz4lx08zns92bdir";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers directory exceptions filepath mtl text
@@ -106915,17 +107531,15 @@ self: {
      }:
      mkDerivation {
        pname = "flac-picture";
-       version = "0.1.2";
-       sha256 = "02h36z65xmy0mvg7j2863h35dcf24l08ma0dxjbqcn42sca9ss0m";
-       revision = "1";
-       editedCabalFile = "1ib9ypz06i81bgkj08aw6fdyxi6fbl2029vwlcqybbhz9cnya1pm";
+       version = "0.1.3";
+       sha256 = "1kspvndqwj0ph8zfx5qwwmzgkvvv4a53qb7nz7fxw4ba8gr2qpdl";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base bytestring flac JuicyPixels ];
        testHaskellDepends = [
          base bytestring directory flac hspec JuicyPixels temporary
        ];
        testToolDepends = [ hspec-discover ];
-       description = "Support for writing picture to FLAC metadata blocks with JuicyPixels";
+       description = "Support for writing pictures into FLAC metadata blocks with JuicyPixels";
        license = lib.licenses.bsd3;
      }) {};
 
@@ -107141,17 +107755,17 @@ self: {
 
   "flatbuffers" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, binary, bytestring
-     , containers, criterion, directory, filepath, hedgehog, hspec
-     , hspec-core, hspec-expectations-pretty-diff, hspec-megaparsec
-     , http-client, http-types, HUnit, hw-hspec-hedgehog, megaparsec
+     , containers, criterion, directory, filepath, hedgehog, hex-text
+     , hspec, hspec-core, hspec-expectations-pretty-diff, hspec-hedgehog
+     , hspec-megaparsec, http-client, http-types, HUnit, megaparsec
      , mono-traversable, mtl, parser-combinators, pretty-simple, process
      , raw-strings-qq, scientific, template-haskell, text
-     , text-manipulate, th-pprint, utf8-string, vector
+     , text-manipulate, utf8-string, vector
      }:
      mkDerivation {
        pname = "flatbuffers";
-       version = "0.3.0.0";
-       sha256 = "1mryx9xivy8bqv43dz3m92cq5ivk445g49cszk143arg4wqgw8kn";
+       version = "0.4.0.0";
+       sha256 = "17grgawl9v2c71mgmfj7riad5sbxpgsjkib50hfxkvcz5j4gkmrj";
        libraryHaskellDepends = [
          base binary bytestring containers directory filepath megaparsec
          mono-traversable mtl parser-combinators scientific template-haskell
@@ -107159,11 +107773,11 @@ self: {
        ];
        testHaskellDepends = [
          aeson aeson-pretty base binary bytestring containers directory
-         filepath hedgehog hspec hspec-core hspec-expectations-pretty-diff
-         hspec-megaparsec http-client http-types HUnit hw-hspec-hedgehog
-         megaparsec mono-traversable mtl parser-combinators pretty-simple
-         process raw-strings-qq scientific template-haskell text
-         text-manipulate th-pprint utf8-string
+         filepath hedgehog hex-text hspec hspec-core
+         hspec-expectations-pretty-diff hspec-hedgehog hspec-megaparsec
+         http-client http-types HUnit megaparsec mono-traversable mtl
+         parser-combinators pretty-simple process raw-strings-qq scientific
+         template-haskell text text-manipulate utf8-string
        ];
        benchmarkHaskellDepends = [
          aeson base binary bytestring containers criterion directory
@@ -107173,6 +107787,7 @@ self: {
        description = "Haskell implementation of the FlatBuffers protocol";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "flatparse" = callPackage
@@ -107182,8 +107797,8 @@ self: {
      }:
      mkDerivation {
        pname = "flatparse";
-       version = "0.4.1.0";
-       sha256 = "0hmi8h74haw21fdgvrqf71vawbjafyg6pmxlpa7pqd1xbgj1wk6j";
+       version = "0.5.0.1";
+       sha256 = "08km6zw6p3xhqcbmfgksc6rgws08zj828cnn21zqq3kriq47amvc";
        libraryHaskellDepends = [
          base bytestring containers integer-gmp template-haskell utf8-string
        ];
@@ -107200,15 +107815,15 @@ self: {
        maintainers = [ lib.maintainers.raehik ];
      }) {};
 
-  "flatparse_0_5_0_1" = callPackage
+  "flatparse_0_5_0_2" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, containers, gauge
      , hspec, HUnit, integer-gmp, megaparsec, parsec, primitive
      , QuickCheck, quickcheck-instances, template-haskell, utf8-string
      }:
      mkDerivation {
        pname = "flatparse";
-       version = "0.5.0.1";
-       sha256 = "08km6zw6p3xhqcbmfgksc6rgws08zj828cnn21zqq3kriq47amvc";
+       version = "0.5.0.2";
+       sha256 = "06c31xqaq0v8hys7knxxsxmj0py3h0fwkp4kq9dwr88sk65v8ash";
        libraryHaskellDepends = [
          base bytestring containers integer-gmp template-haskell utf8-string
        ];
@@ -107415,6 +108030,7 @@ self: {
        description = "Flink stateful functions SDK";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "flip-cmd" = callPackage
@@ -107512,18 +108128,20 @@ self: {
        libraryHaskellDepends = [ base integer-gmp ];
        description = "FFI bindings for C _Float128";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "floating-bits" = callPackage
     ({ mkDerivation, base, criterion }:
      mkDerivation {
        pname = "floating-bits";
-       version = "0.3.0.0";
-       sha256 = "1cp2k9rks0g8i6lf6j3zrz7wxh42qmsqwvf26dkdqnnzi0aqkkxj";
+       version = "0.3.1.0";
+       sha256 = "06njpgacqywkr6y8lz78wxq0jvyc10r3f8fh80wm54vqqjhkc6m4";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        benchmarkHaskellDepends = [ base criterion ];
-       description = "Conversions between floating and integral values";
+       description = "Bitwise accurate floating point conversion, and Unit of Lease Precision calculation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -107558,42 +108176,6 @@ self: {
      }) {};
 
   "floskell" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
-     , containers, criterion, data-default, deepseq, directory
-     , exceptions, filepath, ghc-prim, haskell-src-exts, hspec
-     , monad-dijkstra, mtl, optparse-applicative, text, transformers
-     , unordered-containers, utf8-string
-     }:
-     mkDerivation {
-       pname = "floskell";
-       version = "0.10.8";
-       sha256 = "1mj4c3q9jw161jzzlz7aa9lw58g6a8j9cnk3974n3bbwxbzqrfdq";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson attoparsec base bytestring containers data-default directory
-         filepath haskell-src-exts monad-dijkstra mtl text transformers
-         unordered-containers utf8-string
-       ];
-       executableHaskellDepends = [
-         aeson-pretty base bytestring directory ghc-prim haskell-src-exts
-         optparse-applicative text
-       ];
-       testHaskellDepends = [
-         base bytestring deepseq exceptions haskell-src-exts hspec text
-         utf8-string
-       ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion deepseq exceptions ghc-prim
-         haskell-src-exts text utf8-string
-       ];
-       description = "A flexible Haskell source code pretty printer";
-       license = lib.licenses.bsd3;
-       mainProgram = "floskell";
-     }) {};
-
-  "floskell_0_11_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-wl-pprint, attoparsec
      , attoparsec-aeson, base, bytestring, containers, criterion
      , data-default, deepseq, directory, exceptions, filepath, ghc-prim
@@ -107602,8 +108184,8 @@ self: {
      }:
      mkDerivation {
        pname = "floskell";
-       version = "0.11.0";
-       sha256 = "07l14zr1igq2vbs6m09ffc9ddchwbakmhb1bjnxldb3rsvaqnjc3";
+       version = "0.11.1";
+       sha256 = "1gd9yvl6dfsz2q3dd5swj68wxa9dq670rmi2ix4yhmyfg8pjgcvn";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -107625,7 +108207,6 @@ self: {
        ];
        description = "A flexible Haskell source code pretty printer";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "floskell";
      }) {};
 
@@ -107671,7 +108252,9 @@ self: {
        ];
        description = "Library and binary to generate sequence/flow diagrams from plain text source";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "flow2dot";
+       broken = true;
      }) {};
 
   "flowdock" = callPackage
@@ -108262,6 +108845,20 @@ self: {
        description = "Extras for Fn, a functional web framework";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "fnmatch" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, hspec }:
+     mkDerivation {
+       pname = "fnmatch";
+       version = "0.1.0.0";
+       sha256 = "1vmmypqvrfck4rkq4cm4viliyxypm139id3f1flhp53x2srr282i";
+       libraryHaskellDepends = [ base bytestring ];
+       testHaskellDepends = [ base bytestring hspec ];
+       benchmarkHaskellDepends = [ base bytestring criterion ];
+       description = "fnmatch C wrapper";
+       license = lib.licenses.asl20;
      }) {};
 
   "focus" = callPackage
@@ -108377,9 +108974,7 @@ self: {
        sha256 = "04pzjppmb195ffgxdzh8dh39z5dalr5wd6sifcnbg9p1b3rw6myh";
        revision = "4";
        editedCabalFile = "0kpsp659y563h2vanhrdnbza9skq1j9sm6y3fg2j4p1xsgnkqjzv";
-       libraryHaskellDepends = [
-         base containers ghc-prim tagged transformers
-       ];
+       libraryHaskellDepends = [ base ghc-prim tagged ];
        testHaskellDepends = [
          base containers QuickCheck quickcheck-instances test-framework
          test-framework-quickcheck2 transformers
@@ -108387,6 +108982,7 @@ self: {
        benchmarkHaskellDepends = [
          base containers criterion deepseq transformers
        ];
+       doHaddock = false;
        description = "Compatibility package for the Foldable1 and Bifoldable1 type classes";
        license = lib.licenses.bsd3;
      }) {};
@@ -108425,6 +109021,8 @@ self: {
        testHaskellDepends = [ base foldl hedgehog safe-exceptions ];
        description = "Exception handling with FoldM";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "foldl-incremental" = callPackage
@@ -108636,7 +109234,9 @@ self: {
        description = "Be notified when a file gets appended, solely with what was added. Warning - only works on linux and for files that are strictly appended, like log files.";
        license = lib.licenses.bsd3;
        badPlatforms = lib.platforms.darwin;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "follow-file";
+       broken = true;
      }) {};
 
   "follower" = callPackage
@@ -108804,8 +109404,8 @@ self: {
        pname = "force-layout";
        version = "0.4.0.6";
        sha256 = "17956k3mab2xhrmfy7fj5gh08h43yjlsryi5acjhnkmin5arhwpp";
-       revision = "11";
-       editedCabalFile = "1l6v0yy0bb72k0gp58s8vykxyj8qncijax7ds42wgfn378ry8w4j";
+       revision = "12";
+       editedCabalFile = "0rpr0j150584h4l8mn3ziq4r055w0n24sxai20b3iqhkrd10vmk1";
        libraryHaskellDepends = [
          base containers data-default-class lens linear
        ];
@@ -109322,6 +109922,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Parsers and analyses for Fortran standards 66, 77, 90, 95 and 2003 (partial)";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "fortran-src";
      }) {};
 
@@ -109353,6 +109954,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Common functions and utils for fortran-src";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "fortran-src-extras";
      }) {};
 
@@ -109532,7 +110134,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "fourmolu" = callPackage
+  "fourmolu_0_11_0_0" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, array, base, binary
      , bytestring, Cabal-syntax, containers, Diff, directory, dlist
      , file-embed, filepath, ghc-lib-parser, hspec, hspec-discover
@@ -109565,10 +110167,11 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "fourmolu";
      }) {};
 
-  "fourmolu_0_14_0_0" = callPackage
+  "fourmolu" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, array, base, binary
      , bytestring, Cabal-syntax, containers, deepseq, Diff, directory
      , file-embed, filepath, ghc-lib-parser, hspec, hspec-discover
@@ -109599,7 +110202,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "fourmolu";
      }) {};
 
@@ -109971,6 +110573,8 @@ self: {
        testHaskellDepends = [ base fast-builder temporary ];
        description = "Append-only database";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fraxl" = callPackage
@@ -110037,8 +110641,8 @@ self: {
      }:
      mkDerivation {
        pname = "freckle-app";
-       version = "1.12.0.0";
-       sha256 = "06c7wx5kkim4mxba9rksmw5vdf3pqj0j23yvnzd1fi58f2gjwdzk";
+       version = "1.12.0.1";
+       sha256 = "0yb90xwv5hl21bm2dra38a19wd5w6pxlq6gr78wv5rqf0v0bj47k";
        libraryHaskellDepends = [
          aeson annotated-exception aws-xray-client-persistent
          aws-xray-client-wai base bcp47 Blammo bugsnag bytestring
@@ -110098,26 +110702,6 @@ self: {
      }:
      mkDerivation {
        pname = "free";
-       version = "5.1.10";
-       sha256 = "0whff0r0nvii5l9z9crw7v0rj0wwblwbnfp99515siyxjkzs9phj";
-       revision = "2";
-       editedCabalFile = "1qpn9sy2bpngkr9zdi0dvy5knnhbsli3d0nw1ljvw12pisv6njaq";
-       libraryHaskellDepends = [
-         base comonad containers distributive exceptions indexed-traversable
-         mtl profunctors semigroupoids template-haskell th-abstraction
-         transformers transformers-base
-       ];
-       description = "Monads for free";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "free_5_2" = callPackage
-    ({ mkDerivation, base, comonad, containers, distributive
-     , exceptions, indexed-traversable, mtl, profunctors, semigroupoids
-     , template-haskell, th-abstraction, transformers, transformers-base
-     }:
-     mkDerivation {
-       pname = "free";
        version = "5.2";
        sha256 = "12agp68cwwixcwfwnvk2xamg34a2x6ax7s1naxv66chpi5y7z1kj";
        revision = "3";
@@ -110129,7 +110713,6 @@ self: {
        ];
        description = "Monads for free";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "free-algebras" = callPackage
@@ -110150,6 +110733,8 @@ self: {
        ];
        description = "Free algebras";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "free-applicative-t" = callPackage
@@ -110158,10 +110743,14 @@ self: {
        pname = "free-applicative-t";
        version = "0.1.0.0";
        sha256 = "15bamiy453fl4a2vygjwfywyqwkd46ddxn2v7g4r0y1v7z3y56yn";
+       revision = "1";
+       editedCabalFile = "00f6pg7simc66gwzx992bl3kin76ppl46g13d0jn2pyrcx332jip";
        libraryHaskellDepends = [ base free ];
        testHaskellDepends = [ base hedgehog transformers ];
        description = "Free Applicative Transformer";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "free-categories" = callPackage
@@ -110190,6 +110779,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "efficient data types for free categories and arrows";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "free-concurrent" = callPackage
@@ -110280,6 +110870,18 @@ self: {
        broken = true;
      }) {};
 
+  "free-listt" = callPackage
+    ({ mkDerivation, base, exceptions, free, mtl, transformers }:
+     mkDerivation {
+       pname = "free-listt";
+       version = "0.1.0.1";
+       sha256 = "0qymhgn43zmsi98fam53f0am5rhi0n14bqkr7x5irczirg5bzgzz";
+       libraryHaskellDepends = [ base exceptions free mtl transformers ];
+       testHaskellDepends = [ base ];
+       description = "Lawful list and set monad transformers based on free monads";
+       license = lib.licenses.mit;
+     }) {};
+
   "free-operational" = callPackage
     ({ mkDerivation, base, comonad-transformers, free, kan-extensions
      , mtl, transformers
@@ -110308,6 +110910,8 @@ self: {
        ];
        description = "Automatic generation of free theorems";
        license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "free-theorems-counterexamples" = callPackage
@@ -110791,7 +111395,9 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "A functional DSL for vertex-centric large-scale graph processing";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "fregel";
+       broken = true;
      }) {};
 
   "french-cards" = callPackage
@@ -110964,10 +111570,8 @@ self: {
     ({ mkDerivation, base, bifunctors, optparse-applicative }:
      mkDerivation {
        pname = "friendly";
-       version = "0.1.0.3";
-       sha256 = "1djmj4nmn4g36iab0z7npgc34vvfspvafr5a4bblnv41glx1wpc1";
-       revision = "1";
-       editedCabalFile = "0phh2lim39ldrrp9qp41mmmjgzxjmv9ijxc0lhar1lbznn56hni5";
+       version = "0.1.0.4";
+       sha256 = "0nk48ly13mcrishi4xz9djh0n9k4q68lbgkr1p3ls5cf902nsn3i";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -111835,8 +112439,8 @@ self: {
        pname = "funcons-values";
        version = "0.1.0.9";
        sha256 = "1817jhp9vpipkvxdqvn4yj88z7z3pyrxs22h4d51c3056ighq6wn";
-       revision = "1";
-       editedCabalFile = "1g807b4lpz0whz0v4xl7y0qj0682y9lvmng06rxxyabn2lcvx5sc";
+       revision = "2";
+       editedCabalFile = "0gxsbvc02h3w1w1n6bgymg9y9ky84mwdzki8zfdamlwk1gwb7wpn";
        libraryHaskellDepends = [
          base bv containers multiset text vector
        ];
@@ -111955,8 +112559,8 @@ self: {
      }:
      mkDerivation {
        pname = "functor-combinators";
-       version = "0.4.1.2";
-       sha256 = "18b7whmsy1bqmqpyva4wipaakjbg8c3zi30pxlh44jw2cwf91c7j";
+       version = "0.4.1.3";
+       sha256 = "0123y4n01rga8kb86w74hzjwvz8jfr15c1abkrrngacp60bd25rl";
        libraryHaskellDepends = [
          assoc base bifunctors comonad constraints containers contravariant
          deriving-compat free hashable invariant kan-extensions mmorph mtl
@@ -111970,6 +112574,8 @@ self: {
        ];
        description = "Tools for functor combinator-based program design";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "functor-combo" = callPackage
@@ -112017,6 +112623,25 @@ self: {
        broken = true;
      }) {};
 
+  "functor-monad" = callPackage
+    ({ mkDerivation, adjunctions, auto-lift-classes, base, bifunctors
+     , comonad, day-comonoid, free, free-applicative-t, kan-extensions
+     , transformers
+     }:
+     mkDerivation {
+       pname = "functor-monad";
+       version = "0.1.1.0";
+       sha256 = "027g26wr9lsasgrfw641i6zpvv23w7489d7wbljxnp6fnkfhxn30";
+       libraryHaskellDepends = [
+         adjunctions auto-lift-classes base bifunctors comonad day-comonoid
+         free free-applicative-t kan-extensions transformers
+       ];
+       testHaskellDepends = [ base free transformers ];
+       description = "FFunctor: functors on (the usual) Functors";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "functor-monadic" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -112262,6 +112887,8 @@ self: {
        benchmarkHaskellDepends = [ base tasty-bench transformers ];
        description = "A fast, flexible, fused effect system";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fused-effects-exceptions" = callPackage
@@ -112293,6 +112920,7 @@ self: {
        testHaskellDepends = [ base fused-effects hspec microlens ];
        description = "Monadic lens combinators for fused-effects";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fused-effects-mwc-random" = callPackage
@@ -112326,6 +112954,7 @@ self: {
        libraryHaskellDepends = [ base fused-effects optics-core ];
        description = "Bridge between the optics and fused-effects ecosystems";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fused-effects-random" = callPackage
@@ -112337,6 +112966,7 @@ self: {
        libraryHaskellDepends = [ base fused-effects random transformers ];
        description = "Random number generation for fused-effects";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fused-effects-readline" = callPackage
@@ -112356,6 +112986,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "A readline-like effect and carrier for fused-effects";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fused-effects-resumable" = callPackage
@@ -112469,8 +113100,8 @@ self: {
      }:
      mkDerivation {
        pname = "futhark";
-       version = "0.25.10";
-       sha256 = "1da69xzxfsmkfhclm8vz6kkn6glr06kcjjag3rjydz7yz7gdi0xv";
+       version = "0.25.13";
+       sha256 = "03hx8lq30bwdgbg52lcb4xd8lclcc8yj49cnzcjxx9p21sji3gfl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -112525,8 +113156,8 @@ self: {
      }:
      mkDerivation {
        pname = "futhark-manifest";
-       version = "1.2.0.1";
-       sha256 = "17sb3598yb88fj3ndffpd7a75vas16vfw6gl6n79rckgibrl8gh6";
+       version = "1.3.0.0";
+       sha256 = "0m6zlk1d9mg0rv7l9fj5702h81yvqrndcbgx6q6gwdbf13q9d2bp";
        libraryHaskellDepends = [ aeson base bytestring containers text ];
        testHaskellDepends = [
          base QuickCheck quickcheck-instances tasty tasty-hunit
@@ -112644,8 +113275,8 @@ self: {
     ({ mkDerivation, base, HUnit, monoid-subclasses }:
      mkDerivation {
        pname = "fuzzy";
-       version = "0.1.0.1";
-       sha256 = "16pl4ba9f3wlx69pg8va1c2qg4zb9c0w50d7f6d84x9b5ysaza5w";
+       version = "0.1.1.0";
+       sha256 = "0rc6zdbmggbzxbrxkcx6zajwdi4bbwld4mmn7ldl6mciakqrc0rv";
        libraryHaskellDepends = [ base monoid-subclasses ];
        testHaskellDepends = [ base HUnit ];
        description = "Filters a list based on a fuzzy string search";
@@ -112681,6 +113312,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Tools for processing unstructured text data";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fuzzy-time" = callPackage
@@ -112697,28 +113330,43 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "fuzzy-time_0_3_0_0" = callPackage
+    ({ mkDerivation, base, containers, deepseq, megaparsec, text, time
+     , validity, validity-time
+     }:
+     mkDerivation {
+       pname = "fuzzy-time";
+       version = "0.3.0.0";
+       sha256 = "00283a009wcgzmg86mq4rbxzpycrjy0cvjnn2nc3yfy92lq1j9ad";
+       libraryHaskellDepends = [
+         base containers deepseq megaparsec text time validity validity-time
+       ];
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "fuzzy-time-gen" = callPackage
-    ({ mkDerivation, base, containers, criterion, fuzzy-time
-     , genvalidity, genvalidity-criterion, genvalidity-hspec
-     , genvalidity-text, genvalidity-time, hspec, megaparsec, QuickCheck
-     , text, time
+    ({ mkDerivation, base, criterion, fuzzy-time, genvalidity
+     , genvalidity-criterion, genvalidity-hspec, genvalidity-text
+     , genvalidity-time, hspec, megaparsec, QuickCheck, text, time
      }:
      mkDerivation {
        pname = "fuzzy-time-gen";
-       version = "0.2.0.1";
-       sha256 = "100j98l32hgdm1ib22x1gnkjmnzmyih0ggsqmj8dihm8gqp9z094";
+       version = "0.3.0.0";
+       sha256 = "12gxvdzgajngmrsj17a1bfcyl2p7j2nb66lcxpqs8gq39cigvyfj";
        libraryHaskellDepends = [
-         base containers fuzzy-time genvalidity genvalidity-time megaparsec
-         QuickCheck time
+         base fuzzy-time genvalidity genvalidity-time QuickCheck
        ];
        testHaskellDepends = [
-         base fuzzy-time genvalidity genvalidity-hspec genvalidity-text
-         genvalidity-time hspec megaparsec QuickCheck text time
+         base fuzzy-time genvalidity-hspec genvalidity-text hspec megaparsec
+         QuickCheck text time
        ];
        benchmarkHaskellDepends = [
          base criterion fuzzy-time genvalidity-criterion
        ];
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fuzzy-timings" = callPackage
@@ -113090,6 +113738,8 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Composable, streaming, and efficient left folds";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "game-of-life" = callPackage
@@ -113210,6 +113860,8 @@ self: {
        libraryHaskellDepends = [ base containers mtl stm transformers ];
        description = "Non-deterministic parallelism with bags";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "garepinoh" = callPackage
@@ -113245,8 +113897,8 @@ self: {
      }:
      mkDerivation {
        pname = "gargoyle";
-       version = "0.1.1.1";
-       sha256 = "1c1pcv7vs7h9v7v1drjxilz7dw3b0fzpg9yl72h5ahjdfdc6xcqp";
+       version = "0.1.2.0";
+       sha256 = "1jj1pgzikg2zw5zmkjn9kh45as5fh0ifi3kragizbbly8qy60nwl";
        libraryHaskellDepends = [
          base directory filelock filepath network process unix
        ];
@@ -113362,6 +114014,8 @@ self: {
        libraryHaskellDepends = [ base binary containers mtl QuickCheck ];
        description = "A framework of algebraic classes";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "gather" = callPackage
@@ -113717,6 +114371,7 @@ self: {
        description = "An implementation of Gear hash, a fast rolling hash algorithm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "gedcom" = callPackage
@@ -113958,6 +114613,33 @@ self: {
        mainProgram = "gemini-exports";
      }) {};
 
+  "gemini-exports_0_1_0_1" = callPackage
+    ({ mkDerivation, aeson, base, base64, bytestring, cassava, cmdargs
+     , containers, cryptonite, directory, hedgehog, http-client
+     , http-types, mtl, raw-strings-qq, req, safe-exceptions, scientific
+     , tasty, tasty-hedgehog, tasty-hunit, text, time, xdg-basedir, yaml
+     }:
+     mkDerivation {
+       pname = "gemini-exports";
+       version = "0.1.0.1";
+       sha256 = "1hkbp9c79zhy5f29n5y05mf5jdyqr8fg5vi7fs1pz4hian21187m";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base base64 bytestring cassava cmdargs containers cryptonite
+         directory http-client http-types mtl raw-strings-qq req
+         safe-exceptions scientific text time xdg-basedir yaml
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base hedgehog tasty tasty-hedgehog tasty-hunit
+       ];
+       description = "Generate CSV Exports of Your Gemini Trades, Transfers, & Earn Transactions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "gemini-exports";
+     }) {};
+
   "gemini-router" = callPackage
     ({ mkDerivation, base, gemini-server, HsOpenSSL, network-uri
      , transformers
@@ -113971,6 +114653,7 @@ self: {
        ];
        description = "A simple Happstack-style Gemini router";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "gemini-server" = callPackage
@@ -113989,6 +114672,8 @@ self: {
        ];
        description = "A lightweight server for the Gemini protocol";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "gemini-textboard" = callPackage
@@ -114019,16 +114704,36 @@ self: {
     ({ mkDerivation, base, HUnit, raw-strings-qq, text }:
      mkDerivation {
        pname = "gemmula";
-       version = "0.1.0.0";
-       sha256 = "1zswha3siximp7yp5gmawxm1n8c0bhnn9ybs0290f81vi5bw47lw";
-       revision = "1";
-       editedCabalFile = "0pa7pl8kgc6qmd8n4p05lzk6bvgip5pl94xys20ibqfa5a7irsnz";
+       version = "1.1.0";
+       sha256 = "1rkw77cfwj2i9hydazc07l4zbdxph3mqnqpsb0312bl44l091nj6";
        libraryHaskellDepends = [ base text ];
        testHaskellDepends = [ base HUnit raw-strings-qq text ];
        description = "A tiny Gemtext parser";
        license = lib.licenses.agpl3Only;
      }) {};
 
+  "gemmula-altera" = callPackage
+    ({ mkDerivation, base, directory, filepath, gemmula, HTTP, HUnit
+     , modern-uri, optparse-applicative, raw-strings-qq, text
+     }:
+     mkDerivation {
+       pname = "gemmula-altera";
+       version = "2.1.0";
+       sha256 = "055sg1d4qpzwg4crj92bbc84qc100vbx504nmddj9z158na96qjv";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base gemmula HTTP modern-uri text ];
+       executableHaskellDepends = [
+         base directory filepath gemmula optparse-applicative text
+       ];
+       testHaskellDepends = [ base gemmula HUnit raw-strings-qq text ];
+       description = "A tiny Gemtext converter for gemmula";
+       license = lib.licenses.agpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "gemalter";
+       broken = true;
+     }) {};
+
   "gemstone" = callPackage
     ({ mkDerivation, array, base, bitmap, bitmap-opengl, containers
      , FTGL, lens, linear, OpenGL, random, SDL, SDL-image, stb-image
@@ -114155,21 +114860,19 @@ self: {
      }) {};
 
   "general-allocate" = callPackage
-    ({ mkDerivation, base, containers, mtl, primitive, resourcet
-     , safe-exceptions, transformers
+    ({ mkDerivation, base, containers, exceptions, mtl, primitive
+     , resourcet, safe-exceptions, transformers
      }:
      mkDerivation {
        pname = "general-allocate";
-       version = "0.2.1.4";
-       sha256 = "1ds89izz3m53wr8qk4d3x3y3pgw7y1j3na2sy7yjgzy857j6xxp6";
+       version = "0.2.3.1";
+       sha256 = "1wjlhyv8ah8q95m76v0ng3m08sf4ln2brr5ldgmsb2zhx9m8p4b5";
        libraryHaskellDepends = [
-         base containers mtl primitive resourcet safe-exceptions
+         base containers exceptions mtl primitive resourcet safe-exceptions
          transformers
        ];
        description = "Exception-safe resource management in more monads";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "general-games" = callPackage
@@ -114429,8 +115132,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "generic-enumeration";
-       version = "0.1.0.1";
-       sha256 = "0bznwb8kkifbsd8yi0mp6cym90adjg30fzgj8181nsga4w9vzsab";
+       version = "0.1.0.2";
+       sha256 = "1j9pdg0ib2ysx4wv357gwvg5j9djm038rj16wpyfc90lsl9m8gdg";
        libraryHaskellDepends = [ base ];
        description = "Generically derived enumerations";
        license = lib.licenses.mit;
@@ -114822,7 +115525,9 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A map, where the keys may be complex structured data";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "bogus";
+       broken = true;
      }) {};
 
   "generic-xml" = callPackage
@@ -114857,14 +115562,14 @@ self: {
      }) {};
 
   "generically" = callPackage
-    ({ mkDerivation, base, base-orphans }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "generically";
        version = "0.1.1";
        sha256 = "1ks3pi6mpma83xffplz8vmimyhvzpnhmcgvk3bvl3c64pqva9i84";
        revision = "2";
        editedCabalFile = "0z2rjz0ap63zjpj4166fxl09zfrlpmzn85pi3l0vhlr8pi4w13ip";
-       libraryHaskellDepends = [ base base-orphans ];
+       libraryHaskellDepends = [ base ];
        description = "Generically newtype to use with DerivingVia";
        license = lib.licenses.bsd3;
      }) {};
@@ -114885,6 +115590,8 @@ self: {
        testToolDepends = [ markdown-unlit ];
        description = "A library for generic programming that aims to be easy to understand";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "generics-mrsop" = callPackage
@@ -115156,6 +115863,8 @@ self: {
        libraryHaskellDepends = [ base mtl template-haskell ];
        description = "Use Template Haskell to generate Uniplate-like functions";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "geniserver" = callPackage
@@ -116872,6 +117581,8 @@ self: {
        pname = "ghc-events";
        version = "0.19.0.1";
        sha256 = "1rliryx527ph1csyq8d5np1g8yfwhmsarspqnl7lp9d9nf0jkbn1";
+       revision = "1";
+       editedCabalFile = "09arkxfmi64nxr3r7qd0fwikp29qrl4rahf0zwwhhlqrz9n6npzv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -116991,7 +117702,7 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "ghc-exactprint" = callPackage
+  "ghc-exactprint_1_6_1_3" = callPackage
     ({ mkDerivation, base, bytestring, Cabal-syntax, containers
      , data-default, Diff, directory, fail, filemanip, filepath, free
      , ghc, ghc-boot, ghc-paths, HUnit, mtl, ordered-containers
@@ -117014,20 +117725,25 @@ self: {
        ];
        description = "ExactPrint for GHC";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "ghc-exactprint_1_7_0_1" = callPackage
+  "ghc-exactprint" = callPackage
     ({ mkDerivation, base, bytestring, Cabal-syntax, containers
-     , data-default, Diff, directory, extra, fail, filepath, ghc
+     , data-default, Diff, directory, extra, fail, filepath, free, ghc
      , ghc-boot, ghc-paths, HUnit, mtl, ordered-containers, silently
      , syb
      }:
      mkDerivation {
        pname = "ghc-exactprint";
-       version = "1.7.0.1";
-       sha256 = "0lf3grridkx5xb5zz8shx3vkzwqsc3y5rbgw7w6hbsgp7ac90jjz";
+       version = "1.7.1.0";
+       sha256 = "1kda9vqm4l5lhvcainvqgna46v29bwdkpr755wqqnn2kkvfsgvvy";
        isLibrary = true;
        isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers data-default directory fail filepath
+         free ghc ghc-boot mtl ordered-containers syb
+       ];
        testHaskellDepends = [
          base bytestring Cabal-syntax containers data-default Diff directory
          extra fail filepath ghc ghc-boot ghc-paths HUnit mtl
@@ -117035,6 +117751,18 @@ self: {
        ];
        description = "ExactPrint for GHC";
        license = lib.licenses.bsd3;
+     }) {};
+
+  "ghc-exactprint_1_8_0_0" = callPackage
+    ({ mkDerivation }:
+     mkDerivation {
+       pname = "ghc-exactprint";
+       version = "1.8.0.0";
+       sha256 = "10j98rnn69wig6xks1x5xq19730225ksz3il93x8zniddsn40v8v";
+       isLibrary = true;
+       isExecutable = true;
+       description = "ExactPrint for GHC";
+       license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -117098,8 +117826,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-heap-view";
-       version = "0.6.4";
-       sha256 = "19bqk98a3w4sd20ynil7b6m8p5qs0vrzwkdji3wv016i89vfsv7x";
+       version = "0.6.4.1";
+       sha256 = "0fi04y9qsy7afzfv2p7xkjwyxn6difqnz75cmy0hkdx1kii2diw3";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal filepath ];
        libraryHaskellDepends = [
@@ -117215,27 +117943,6 @@ self: {
        broken = true;
      }) {};
 
-  "ghc-lib_8_10_7_20220219" = callPackage
-    ({ mkDerivation, alex, array, base, binary, bytestring, containers
-     , deepseq, directory, filepath, ghc-lib-parser, ghc-prim, happy
-     , hpc, pretty, process, rts, time, transformers, unix
-     }:
-     mkDerivation {
-       pname = "ghc-lib";
-       version = "8.10.7.20220219";
-       sha256 = "0s6llxxw4gqa73xdwdiyzdr3rrpmz85zjif964w039clpl4g16rx";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         array base binary bytestring containers deepseq directory filepath
-         ghc-lib-parser ghc-prim hpc pretty process rts time transformers
-         unix
-       ];
-       libraryToolDepends = [ alex happy ];
-       description = "The GHC API, decoupled from GHC versions";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "ghc-lib_9_2_8_20230729" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , deepseq, directory, exceptions, filepath, ghc-lib-parser
@@ -117266,29 +117973,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib";
-       version = "9.4.8.20231111";
-       sha256 = "1ccn54srbjnna5abnzkp7fmylwkzv1qsyhgsggrlcfkia10prd9n";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         array base binary bytestring containers deepseq directory
-         exceptions filepath ghc-lib-parser ghc-prim hpc parsec pretty
-         process rts stm time transformers unix
-       ];
-       libraryToolDepends = [ alex happy ];
-       description = "The GHC API, decoupled from GHC versions";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "ghc-lib_9_6_3_20231121" = callPackage
-    ({ mkDerivation, alex, array, base, binary, bytestring, containers
-     , deepseq, directory, exceptions, filepath, ghc-lib-parser
-     , ghc-prim, happy, hpc, parsec, pretty, process, rts, stm, time
-     , transformers, unix
-     }:
-     mkDerivation {
-       pname = "ghc-lib";
-       version = "9.6.3.20231121";
-       sha256 = "1ri4nwwyzkk6rbkx8pr2njf8hdhvr0k8gdh7030g4i51j64kcq9h";
+       version = "9.6.4.20240109";
+       sha256 = "0iny2fpbq8xjsrcxpn0qvxc4z7kga4b7c32nznypcwysp60vrzl8";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory
@@ -117298,7 +117984,6 @@ self: {
        libraryToolDepends = [ alex happy ];
        description = "The GHC API, decoupled from GHC versions";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ghc-lib_9_8_1_20231121" = callPackage
@@ -117325,26 +118010,6 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "ghc-lib-parser_8_10_7_20220219" = callPackage
-    ({ mkDerivation, alex, array, base, binary, bytestring, containers
-     , deepseq, directory, filepath, ghc-prim, happy, pretty, process
-     , time, transformers, unix
-     }:
-     mkDerivation {
-       pname = "ghc-lib-parser";
-       version = "8.10.7.20220219";
-       sha256 = "0caiv5nj1xxgzbimppy6hbakdplh3aacdg8g4ba3ssr5ba25rxbh";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         array base binary bytestring containers deepseq directory filepath
-         ghc-prim pretty process time transformers unix
-       ];
-       libraryToolDepends = [ alex happy ];
-       description = "The GHC API, decoupled from GHC versions";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "ghc-lib-parser_9_2_8_20230729" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , deepseq, directory, exceptions, filepath, ghc-prim, happy, parsec
@@ -117373,8 +118038,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib-parser";
-       version = "9.4.8.20231111";
-       sha256 = "1zr3fvf5b2wxp6z56bs8gaky62c4m147cx5lwnxmjkl8namwllya";
+       version = "9.6.4.20240109";
+       sha256 = "1p89bavaqhyl8vmg83c944c9rj5j5qngnckml16wmd5xrbjlj9dh";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory
@@ -117386,27 +118051,6 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ghc-lib-parser_9_6_3_20231121" = callPackage
-    ({ mkDerivation, alex, array, base, binary, bytestring, containers
-     , deepseq, directory, exceptions, filepath, ghc-prim, happy, parsec
-     , pretty, process, time, transformers, unix
-     }:
-     mkDerivation {
-       pname = "ghc-lib-parser";
-       version = "9.6.3.20231121";
-       sha256 = "17z3l2n5id5kyyzljj490a32za2xna6yfif2bngbwinisklcyv2n";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         array base binary bytestring containers deepseq directory
-         exceptions filepath ghc-prim parsec pretty process time
-         transformers unix
-       ];
-       libraryToolDepends = [ alex happy ];
-       description = "The GHC API, decoupled from GHC versions";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "ghc-lib-parser_9_8_1_20231121" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , deepseq, directory, exceptions, filepath, ghc-prim, happy, parsec
@@ -117428,26 +118072,6 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "ghc-lib-parser-ex_8_10_0_24" = callPackage
-    ({ mkDerivation, base, bytestring, containers, directory, extra
-     , filepath, ghc-lib-parser, tasty, tasty-hunit, uniplate
-     }:
-     mkDerivation {
-       pname = "ghc-lib-parser-ex";
-       version = "8.10.0.24";
-       sha256 = "0miy1rrpg93r7xgpsmgfgx9djsg8fds2w7c6js4mvbjh3bsjdcpl";
-       libraryHaskellDepends = [
-         base bytestring containers ghc-lib-parser uniplate
-       ];
-       testHaskellDepends = [
-         base directory extra filepath ghc-lib-parser tasty tasty-hunit
-         uniplate
-       ];
-       description = "Algorithms on GHC parse trees";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "ghc-lib-parser-ex_9_2_1_1" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, extra
      , filepath, ghc-lib-parser, tasty, tasty-hunit, uniplate
@@ -117474,8 +118098,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib-parser-ex";
-       version = "9.4.0.0";
-       sha256 = "06qrfg4icp66lyhzncvsaqdcmsijayrlgi91x65a2nd2l0wz6gyf";
+       version = "9.6.0.2";
+       sha256 = "1fr653b4hgwxz12mvbf9wd93r83qk3qdajplrdmw85hk0f9qfq9a";
        libraryHaskellDepends = [
          base bytestring containers ghc-lib-parser uniplate
        ];
@@ -117487,14 +118111,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ghc-lib-parser-ex_9_6_0_2" = callPackage
+  "ghc-lib-parser-ex_9_8_0_0" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, extra
      , filepath, ghc-lib-parser, tasty, tasty-hunit, uniplate
      }:
      mkDerivation {
        pname = "ghc-lib-parser-ex";
-       version = "9.6.0.2";
-       sha256 = "1fr653b4hgwxz12mvbf9wd93r83qk3qdajplrdmw85hk0f9qfq9a";
+       version = "9.8.0.0";
+       sha256 = "1xchnw1x27k3v02h0mpvm0m78jkhb1kvybjgrky7a3wfn3irv1nj";
        libraryHaskellDepends = [
          base bytestring containers ghc-lib-parser uniplate
        ];
@@ -117507,24 +118131,23 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "ghc-lib-parser-ex_9_8_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, directory, extra
-     , filepath, ghc-lib-parser, tasty, tasty-hunit, uniplate
+  "ghc-magic-dict-compat" = callPackage
+    ({ mkDerivation, base, dlist, falsify, ghc, ghc-prim
+     , ghc-tcplugins-extra, tasty, tasty-discover, tasty-hunit
      }:
      mkDerivation {
-       pname = "ghc-lib-parser-ex";
-       version = "9.8.0.0";
-       sha256 = "1xchnw1x27k3v02h0mpvm0m78jkhb1kvybjgrky7a3wfn3irv1nj";
+       pname = "ghc-magic-dict-compat";
+       version = "0.0.0.0";
+       sha256 = "03xrfb5qa3fh8v7vi9sjdgwplcdhkk1ksv2nagsqjfmag6gkkry5";
        libraryHaskellDepends = [
-         base bytestring containers ghc-lib-parser uniplate
+         base dlist ghc ghc-prim ghc-tcplugins-extra
        ];
        testHaskellDepends = [
-         base directory extra filepath ghc-lib-parser tasty tasty-hunit
-         uniplate
+         base falsify tasty tasty-discover tasty-hunit
        ];
-       description = "Algorithms on GHC parse trees";
+       testToolDepends = [ tasty-discover ];
+       description = "A compatibility layer and GHC plugin for `withDict` from \"GHC.Magic.Dict\".";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ghc-make" = callPackage
@@ -117919,16 +118542,14 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-source-gen";
-       version = "0.4.3.0";
-       sha256 = "1lhqsklibgiv51hs8mnrkn784rc5sxf5z8cfv8hf9jqlny50720f";
+       version = "0.4.4.1";
+       sha256 = "0fbzvybj86apy4xkx1m4gbp7gybmd87ab64f6sngpsbkk5shxsrk";
        libraryHaskellDepends = [ base ghc ];
        testHaskellDepends = [
          base ghc ghc-paths QuickCheck tasty tasty-hunit tasty-quickcheck
        ];
        description = "Constructs Haskell syntax trees for the GHC API";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ghc-srcspan-plugin" = callPackage
@@ -117997,6 +118618,8 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit text ];
        description = "Symbol on term level";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ghc-syntax-highlighter" = callPackage
@@ -118004,23 +118627,6 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-syntax-highlighter";
-       version = "0.0.9.0";
-       sha256 = "0dan000fg9ipfh8knhrdscnr8lvcf6p2djl9b4bgqd4nc65pcf8a";
-       revision = "2";
-       editedCabalFile = "1l1w8jn4sn0l9358xqinifm70zy0dsgdkm9kzlaj782abwvlz5rm";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [ base ghc-lib-parser text ];
-       testHaskellDepends = [ base hspec text ];
-       testToolDepends = [ hspec-discover ];
-       description = "Syntax highlighter for Haskell using the lexer of GHC";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "ghc-syntax-highlighter_0_0_10_0" = callPackage
-    ({ mkDerivation, base, ghc-lib-parser, hspec, hspec-discover, text
-     }:
-     mkDerivation {
-       pname = "ghc-syntax-highlighter";
        version = "0.0.10.0";
        sha256 = "145xjyraqd62k5amyqi9028rr9v2lgz3irmgz5v2hppza1i5qy72";
        enableSeparateDataOutput = true;
@@ -118029,7 +118635,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Syntax highlighter for Haskell using the lexer of GHC";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ghc-syntax-highlighter_0_0_11_0" = callPackage
@@ -118069,13 +118674,14 @@ self: {
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "ghc-tags";
+       broken = true;
      }) {};
 
   "ghc-tags_1_6" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, bytestring
-     , containers, deepseq, directory, filepath, ghc, ghc-boot
-     , ghc-paths, optparse-applicative, process, stm, temporary, text
-     , time, vector, yaml
+     , containers, deepseq, directory, filepath, ghc-lib, ghc-paths
+     , optparse-applicative, process, stm, temporary, text, time, vector
+     , yaml
      }:
      mkDerivation {
        pname = "ghc-tags";
@@ -118085,13 +118691,14 @@ self: {
        isExecutable = true;
        executableHaskellDepends = [
          aeson async attoparsec base bytestring containers deepseq directory
-         filepath ghc ghc-boot ghc-paths optparse-applicative process stm
+         filepath ghc-lib ghc-paths optparse-applicative process stm
          temporary text time vector yaml
        ];
        description = "Utility for generating ctags and etags with GHC API";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "ghc-tags";
+       broken = true;
      }) {};
 
   "ghc-tags" = callPackage
@@ -118102,8 +118709,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-tags";
-       version = "1.7";
-       sha256 = "17189yi1zffgcdwx0nb6n4pbv3jhfajhfnag84fnqwy4kbvl5ma4";
+       version = "1.8";
+       sha256 = "0gljssyq1ahgl65vnqqa5s1vglzdisx8wp5p2hwh09diwa2ms9mw";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -118113,20 +118720,21 @@ self: {
        ];
        description = "Utility for generating ctags and etags with GHC API";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "ghc-tags";
+       broken = true;
      }) {};
 
   "ghc-tags-core" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, containers, deepseq
-     , filepath-bytestring, ghc, text
+     , filepath, ghc, text
      }:
      mkDerivation {
        pname = "ghc-tags-core";
-       version = "0.6.0.0";
-       sha256 = "1f8lph1g1xnk8p3mgsvzfy8sv90nn3j19a2cb7qpdmcg48md9947";
+       version = "0.6.1.0";
+       sha256 = "0x2l1n8fsg7z0x3bvqa806l4ldzxjsapfv9cf3fnvandh9d2dc4p";
        libraryHaskellDepends = [
-         attoparsec base bytestring containers deepseq filepath-bytestring
-         ghc text
+         attoparsec base bytestring containers deepseq filepath ghc text
        ];
        description = "CTags and ETags from Haskell syntax tree";
        license = lib.licenses.mpl20;
@@ -118155,8 +118763,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-tags-plugin";
-       version = "0.6.0.1";
-       sha256 = "0wzk3slkla62n3yywckdcfyl3lizfh9psxxp0vai0699c6396cwq";
+       version = "0.6.1.0";
+       sha256 = "1c3vr9754szadl4bj98hmjz5jmqahggakm7x3838cccqbdrpxyh0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -118228,8 +118836,8 @@ self: {
     ({ mkDerivation, base, bytestring, tasty-bench, text }:
      mkDerivation {
        pname = "ghc-trace-events";
-       version = "0.1.2.7";
-       sha256 = "1gqk6dddj3ajrwg1331ynp8yq44zdg40bx917s550hm9ycfnanji";
+       version = "0.1.2.8";
+       sha256 = "1qmfywqjwbnmhjs2q2nndvdfhigjhq5ma86s882ffcz3rawxv5wi";
        libraryHaskellDepends = [ base bytestring text ];
        benchmarkHaskellDepends = [ base bytestring tasty-bench ];
        description = "Faster traceEvent and traceMarker, and binary object logging for eventlog";
@@ -118304,8 +118912,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-typelits-presburger";
-       version = "0.7.2.0";
-       sha256 = "0lj9yw8rq8xi3n80ay0jdv53ygchf8sixj4iz4x7sb9hvw1nvrdh";
+       version = "0.7.3.0";
+       sha256 = "146xlp596ymsz1wrx2am62fy1v1gq7v6qzbx6qmj5dgxph0h4w6x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -118345,8 +118953,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-vis";
-       version = "0.9.3";
-       sha256 = "08144lfp3amgi5i6qfbpi0gqv39q34q4v9ykzl00pbc1l1zxnspg";
+       version = "0.9.3.1";
+       sha256 = "16ih0r4s2kprhbs5nq3r6cxwb57gjagqi8m8mzrvylf2niiz6xza";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal filepath ];
        libraryHaskellDepends = [
@@ -118575,9 +119183,9 @@ self: {
      , extra, filepath, fingertree, focus, fuzzy, ghc, ghc-boot
      , ghc-boot-th, ghc-check, ghc-paths, ghc-trace-events, gitrev, Glob
      , haddock-library, hashable, hie-bios, hie-compat, hiedb, hls-graph
-     , hls-plugin-api, implicit-hie, implicit-hie-cradle, lens, list-t
-     , lsp, lsp-test, lsp-types, monoid-subclasses, mtl, network-uri
-     , opentelemetry, optparse-applicative, parallel, prettyprinter
+     , hls-plugin-api, implicit-hie, lens, list-t, lsp, lsp-test
+     , lsp-types, monoid-subclasses, mtl, network-uri, opentelemetry
+     , optparse-applicative, parallel, prettyprinter
      , prettyprinter-ansi-terminal, QuickCheck, random, regex-tdfa
      , row-types, safe-exceptions, shake, sorted-list, sqlite-simple
      , stm, stm-containers, syb, tasty, tasty-expected-failure
@@ -118587,8 +119195,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghcide";
-       version = "2.5.0.0";
-       sha256 = "1p4nm8qv1sx4r7mg52nkxv6rymngn9h7kfxg20yyb8wx170zx5cy";
+       version = "2.6.0.0";
+       sha256 = "1x99dlcfjvlc45nlgydmlm2hdf7a4mrdg9cyxdb8b4k29rjas9a5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -118598,22 +119206,22 @@ self: {
          dlist enummapset exceptions extra filepath fingertree focus ghc
          ghc-boot ghc-boot-th ghc-check ghc-paths ghc-trace-events Glob
          haddock-library hashable hie-bios hie-compat hiedb hls-graph
-         hls-plugin-api implicit-hie implicit-hie-cradle lens list-t lsp
-         lsp-types mtl opentelemetry optparse-applicative parallel
-         prettyprinter prettyprinter-ansi-terminal random regex-tdfa
-         row-types safe-exceptions sorted-list sqlite-simple stm
-         stm-containers syb text text-rope time transformers unix unliftio
-         unliftio-core unordered-containers vector
+         hls-plugin-api implicit-hie lens list-t lsp lsp-types mtl
+         opentelemetry optparse-applicative parallel prettyprinter
+         prettyprinter-ansi-terminal random regex-tdfa row-types
+         safe-exceptions sorted-list sqlite-simple stm stm-containers syb
+         text text-rope time transformers unix unliftio unliftio-core
+         unordered-containers vector
        ];
        executableHaskellDepends = [
          base data-default extra gitrev hls-plugin-api lsp lsp-types
          optparse-applicative
        ];
        testHaskellDepends = [
-         aeson async base containers data-default directory extra filepath
-         fuzzy ghc hls-plugin-api lens list-t lsp lsp-test lsp-types
-         monoid-subclasses mtl network-uri QuickCheck random regex-tdfa
-         row-types shake sqlite-simple stm stm-containers tasty
+         aeson async base containers data-default directory enummapset extra
+         filepath fuzzy ghc hls-plugin-api lens list-t lsp lsp-test
+         lsp-types monoid-subclasses mtl network-uri QuickCheck random
+         regex-tdfa row-types shake sqlite-simple stm stm-containers tasty
          tasty-expected-failure tasty-hunit tasty-quickcheck tasty-rerun
          text text-rope unordered-containers
        ];
@@ -118632,8 +119240,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghcide-bench";
-       version = "2.5.0.0";
-       sha256 = "1sryj91j5wmck67njbwjjz5nigajblmygrrgl7b1zf3rv44x621i";
+       version = "2.6.0.0";
+       sha256 = "1j0fqfahdylw85akmpis01x5s3i187kzin58kziw79nlmm47kz6c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -118653,26 +119261,51 @@ self: {
        testToolDepends = [ ghcide implicit-hie ];
        description = "An LSP client for running performance experiments on HLS";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "ghcide-bench";
      }) {};
 
   "ghcide-test-utils" = callPackage
     ({ mkDerivation, aeson, base, containers, data-default, directory
      , extra, filepath, ghcide, hls-plugin-api, lens, lsp-test
-     , lsp-types, tasty-hunit, text
+     , lsp-types, row-types, tasty-hunit, text
      }:
      mkDerivation {
        pname = "ghcide-test-utils";
-       version = "1.9.0.0";
-       sha256 = "0f4xxw2y4bmihy8ydi569g11r9w7i6bcrsgk3ap9al98l059xdk6";
+       version = "2.0.0.0";
+       sha256 = "0zwwg9gv3xnrl0v7319yjipwq3k0qy38m9sdkbxpavqcaqaapwj0";
        libraryHaskellDepends = [
          aeson base containers data-default directory extra filepath ghcide
-         hls-plugin-api lens lsp-test lsp-types tasty-hunit text
+         hls-plugin-api lens lsp-test lsp-types row-types tasty-hunit text
        ];
        description = "Test utils for ghcide";
        license = lib.licenses.asl20;
+     }) {};
+
+  "ghcitui" = callPackage
+    ({ mkDerivation, array, base, brick, containers, errors, extra
+     , file-embed, ghcid, hspec, microlens, microlens-th
+     , optparse-applicative, regex-base, regex-tdfa, string-interpolate
+     , text, text-zipper, transformers, utf8-string, vector, vty
+     , word-wrap
+     }:
+     mkDerivation {
+       pname = "ghcitui";
+       version = "0.2.0.0";
+       sha256 = "17apm7hanm7zc3rr19am4ll5rmhj9ghdlrxzr7l1rkdla7l6x0a5";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base brick containers errors extra file-embed ghcid microlens
+         microlens-th regex-base regex-tdfa string-interpolate text
+         text-zipper transformers utf8-string vector vty word-wrap
+       ];
+       executableHaskellDepends = [ base optparse-applicative text ];
+       testHaskellDepends = [ base hspec ];
+       doHaddock = false;
+       description = "A Terminal User Interface (TUI) for GHCi";
+       license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghcitui";
        broken = true;
      }) {};
 
@@ -119049,18 +119682,18 @@ self: {
      }) {};
 
   "ghostscript-parallel" = callPackage
-    ({ mkDerivation, base, directory, optparse-applicative, pooled-io
-     , process, shell-utility, utility-ht
+    ({ mkDerivation, base, directory, non-empty, optparse-applicative
+     , pooled-io, process, shell-utility, utility-ht
      }:
      mkDerivation {
        pname = "ghostscript-parallel";
-       version = "0.0";
-       sha256 = "0ybxcghkrhr1g5sw3v4r3rn7ck4qic2vlv4zdfpg3bs3bi5f7x1j";
+       version = "0.0.1";
+       sha256 = "1sja6nhp8p9h2z0yr5qwxd8d59zzpb11ybmsbargza6ddaplpxny";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base directory optparse-applicative pooled-io process shell-utility
-         utility-ht
+         base directory non-empty optparse-applicative pooled-io process
+         shell-utility utility-ht
        ];
        description = "Let Ghostscript render pages in parallel";
        license = lib.licenses.bsd3;
@@ -119115,8 +119748,6 @@ self: {
        description = "Adwaita bindings";
        license = lib.licenses.lgpl21Only;
        badPlatforms = lib.platforms.darwin;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libadwaita;};
 
   "gi-atk" = callPackage
@@ -119658,8 +120289,6 @@ self: {
        libraryPkgconfigDepends = [ gtk4 ];
        description = "Gsk bindings";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) gtk4;};
 
   "gi-gst" = callPackage
@@ -119972,11 +120601,37 @@ self: {
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {gtksheet = null;};
+     }) {inherit (pkgs) gtksheet;};
 
   "gi-gtksource" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
      , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject
+     , gi-gtk, gi-pango, gtksourceview3, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gtksource";
+       version = "3.0.28";
+       sha256 = "1047fgqj2avy34fd9y5m4ipv0vmpizw4lwnwdbrnhvs2fc89g0lh";
+       setupHaskellDepends = [
+         base Cabal gi-atk gi-cairo gi-gdk gi-gdkpixbuf gi-gio gi-glib
+         gi-gobject gi-gtk gi-pango haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-atk gi-cairo gi-gdk gi-gdkpixbuf
+         gi-gio gi-glib gi-gobject gi-gtk gi-pango haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gtksourceview3 ];
+       description = "GtkSource bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) gtksourceview3;};
+
+  "gi-gtksource_5_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
+     , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject
      , gi-gtk, gi-pango, gtksourceview, haskell-gi, haskell-gi-base
      , haskell-gi-overloading, text, transformers
      }:
@@ -120356,22 +121011,22 @@ self: {
 
   "gi-vte" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
-     , gi-gdk, gi-gio, gi-glib, gi-gobject, gi-gtk, gi-pango, haskell-gi
-     , haskell-gi-base, haskell-gi-overloading, text, transformers
-     , vte_291
+     , gi-cairo, gi-gdk, gi-gio, gi-glib, gi-gobject, gi-gtk, gi-pango
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers, vte_291
      }:
      mkDerivation {
        pname = "gi-vte";
-       version = "2.91.31";
-       sha256 = "1b9y7vqw4zkk560cgwrlyiqv2agfym20k69b23jf61252hm9l9cx";
+       version = "2.91.32";
+       sha256 = "0sfcd2lbbn5zz8vjxklxhf1yz7r5vacjvg5qid99xfzialp9s82x";
        setupHaskellDepends = [
-         base Cabal gi-atk gi-gdk gi-gio gi-glib gi-gobject gi-gtk gi-pango
-         haskell-gi
+         base Cabal gi-atk gi-cairo gi-gdk gi-gio gi-glib gi-gobject gi-gtk
+         gi-pango haskell-gi
        ];
        libraryHaskellDepends = [
-         base bytestring containers gi-atk gi-gdk gi-gio gi-glib gi-gobject
-         gi-gtk gi-pango haskell-gi haskell-gi-base haskell-gi-overloading
-         text transformers
+         base bytestring containers gi-atk gi-cairo gi-gdk gi-gio gi-glib
+         gi-gobject gi-gtk gi-pango haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
        ];
        libraryPkgconfigDepends = [ vte_291 ];
        description = "Vte bindings";
@@ -120563,14 +121218,14 @@ self: {
   "gigaparsec" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, gauge, knob
      , pretty-terminal, selective, tasty, tasty-expected-failure
-     , tasty-hunit
+     , tasty-hunit, template-haskell
      }:
      mkDerivation {
        pname = "gigaparsec";
-       version = "0.2.1.0";
-       sha256 = "0i38ychjdrmw2rxznq7iw7c84mvhx2iq3bxzixmwa26v5zn9nyf7";
+       version = "0.2.5.1";
+       sha256 = "1ks2wv3n478r4532q7lfyll51kkrzsgh58akz9yflnv9n038sfr5";
        libraryHaskellDepends = [
-         base containers pretty-terminal selective
+         base containers pretty-terminal selective template-haskell
        ];
        testHaskellDepends = [
          base bytestring containers deepseq knob tasty
@@ -120682,6 +121337,8 @@ self: {
        pname = "gio";
        version = "0.13.10.0";
        sha256 = "0lwayry5f3jfz7ryabhdf6vb20qwmx48mzfnlmv70zd3fxz4jcd8";
+       revision = "1";
+       editedCabalFile = "1k73ppzjv7xvwi4s2q0i6ny8q8pwdz2hcbrd058m8xdb0c8kx7jr";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [
@@ -120774,6 +121431,8 @@ self: {
        pname = "git";
        version = "0.3.0";
        sha256 = "0kd35qnxv2vnfaaq13dbf734jq11p05v6sdbxf91pag49817b6bz";
+       revision = "1";
+       editedCabalFile = "15h1j9s3wkyxpgwn4im3nr61w2c5cvridjiihb5igs43rs46la4a";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base basement bytestring containers cryptonite hourglass memory
@@ -120887,6 +121546,83 @@ self: {
          inherit (pkgs) perl; inherit (pkgs) rsync; inherit (pkgs) wget; 
          inherit (pkgs) which;};
 
+  "git-annex_10_20240129" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, async, attoparsec, aws, base
+     , blaze-builder, bloomfilter, bup, byteable, bytestring, Cabal
+     , case-insensitive, clientsession, concurrent-output, conduit
+     , containers, crypto-api, crypton, curl, data-default, DAV, dbus
+     , deepseq, directory, disk-free-space, dlist, edit-distance
+     , exceptions, fdo-notify, feed, filepath, filepath-bytestring, free
+     , git, git-lfs, gnupg, hinotify, http-client
+     , http-client-restricted, http-client-tls, http-conduit, http-types
+     , IfElse, lsof, magic, memory, microlens, monad-control
+     , monad-logger, mountpoints, mtl, network, network-bsd
+     , network-info, network-multicast, network-uri, old-locale, openssh
+     , optparse-applicative, path-pieces, perl, persistent
+     , persistent-sqlite, persistent-template, process, QuickCheck
+     , random, regex-tdfa, resourcet, rsync, SafeSemaphore, sandi
+     , securemem, shakespeare, socks, split, stm, stm-chans, tagsoup
+     , tasty, tasty-hunit, tasty-quickcheck, tasty-rerun
+     , template-haskell, text, time, torrent, transformers, unix
+     , unix-compat, unliftio-core, unordered-containers, utf8-string
+     , uuid, vector, wai, wai-extra, warp, warp-tls, wget, which, yesod
+     , yesod-core, yesod-form, yesod-static
+     }:
+     mkDerivation {
+       pname = "git-annex";
+       version = "10.20240129";
+       sha256 = "0fc3rxakqps0qa4q0jns3h3mp9x9c28hsw1l4qk7jrkl4xpvmrg0";
+       configureFlags = [
+         "-fassistant" "-f-benchmark" "-fdbus" "-f-debuglocks" "-fmagicmime"
+         "-fnetworkbsd" "-fpairing" "-fproduction" "-fs3" "-ftorrentparser"
+         "-fwebapp" "-fwebdav"
+       ];
+       isLibrary = false;
+       isExecutable = true;
+       setupHaskellDepends = [
+         async base bytestring Cabal directory exceptions filepath
+         filepath-bytestring process split time utf8-string
+       ];
+       executableHaskellDepends = [
+         aeson ansi-terminal async attoparsec aws base blaze-builder
+         bloomfilter byteable bytestring case-insensitive clientsession
+         concurrent-output conduit containers crypto-api crypton
+         data-default DAV dbus deepseq directory disk-free-space dlist
+         edit-distance exceptions fdo-notify feed filepath
+         filepath-bytestring free git-lfs hinotify http-client
+         http-client-restricted http-client-tls http-conduit http-types
+         IfElse magic memory microlens monad-control monad-logger
+         mountpoints mtl network network-bsd network-info network-multicast
+         network-uri old-locale optparse-applicative path-pieces persistent
+         persistent-sqlite persistent-template process QuickCheck random
+         regex-tdfa resourcet SafeSemaphore sandi securemem shakespeare
+         socks split stm stm-chans tagsoup tasty tasty-hunit
+         tasty-quickcheck tasty-rerun template-haskell text time torrent
+         transformers unix unix-compat unliftio-core unordered-containers
+         utf8-string uuid vector wai wai-extra warp warp-tls yesod
+         yesod-core yesod-form yesod-static
+       ];
+       executableSystemDepends = [
+         bup curl git gnupg lsof openssh perl rsync wget which
+       ];
+       preConfigure = "export HOME=$TEMPDIR; patchShebangs .";
+       postBuild = ''
+         ln -sf dist/build/git-annex/git-annex git-annex
+         ln -sf git-annex git-annex-shell
+       '';
+       installPhase = "make PREFIX=$out BUILDER=: install install-completions";
+       checkPhase = ''PATH+=":$PWD" git-annex test'';
+       enableSharedExecutables = false;
+       description = "manage files with git, without checking their contents into git";
+       license = lib.licenses.agpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-annex";
+       maintainers = [ lib.maintainers.peti lib.maintainers.roosemberth ];
+     }) {inherit (pkgs) bup; inherit (pkgs) curl; inherit (pkgs) git; 
+         inherit (pkgs) gnupg; inherit (pkgs) lsof; inherit (pkgs) openssh; 
+         inherit (pkgs) perl; inherit (pkgs) rsync; inherit (pkgs) wget; 
+         inherit (pkgs) which;};
+
   "git-brunch" = callPackage
     ({ mkDerivation, base, brick, extra, hspec, microlens
      , microlens-mtl, mtl, optparse-applicative, process, text, vector
@@ -121114,6 +121850,23 @@ self: {
        license = lib.licenses.agpl3Only;
      }) {};
 
+  "git-lfs_1_2_2" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, case-insensitive
+     , containers, http-client, http-types, network-uri, text
+     }:
+     mkDerivation {
+       pname = "git-lfs";
+       version = "1.2.2";
+       sha256 = "0k4flxhr3b8ripskn97bf33gass62ix2ijj31wc70xaq4glg3f5m";
+       libraryHaskellDepends = [
+         aeson base bytestring case-insensitive containers http-client
+         http-types network-uri text
+       ];
+       description = "git-lfs protocol";
+       license = lib.licenses.agpl3Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "git-mediate" = callPackage
     ({ mkDerivation, ansi-terminal, base, base-compat, Diff, directory
      , filepath, generic-data, mtl, optparse-applicative, process
@@ -121383,37 +122136,6 @@ self: {
      }:
      mkDerivation {
        pname = "github";
-       version = "0.28.0.1";
-       sha256 = "16ahq2ng52ypkkgqbbmizr486px3dh709hw3jdn7jzglgvn20712";
-       revision = "2";
-       editedCabalFile = "1cbzn6idgmcihgkwgwc96a68hl24mai2gydbgqpydnknwmslp8qj";
-       libraryHaskellDepends = [
-         aeson base base-compat base16-bytestring binary binary-instances
-         bytestring containers cryptohash-sha1 deepseq deepseq-generics
-         exceptions hashable http-client http-client-tls http-link-header
-         http-types iso8601-time mtl network-uri tagged text time-compat tls
-         transformers transformers-compat unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson base base-compat bytestring file-embed hspec tagged text
-         unordered-containers vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Access to the GitHub API, v3";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "github_0_29" = callPackage
-    ({ mkDerivation, aeson, base, base-compat, base16-bytestring
-     , binary, binary-instances, bytestring, containers, cryptohash-sha1
-     , deepseq, deepseq-generics, exceptions, file-embed, hashable
-     , hspec, hspec-discover, http-client, http-client-tls
-     , http-link-header, http-types, iso8601-time, mtl, network-uri
-     , tagged, text, time-compat, tls, transformers, transformers-compat
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "github";
        version = "0.29";
        sha256 = "1hki9lvf5vcq980ky98vwc7rh86rgf3z8pvqfgpb6jinc7jylcpx";
        revision = "4";
@@ -121432,7 +122154,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Access to the GitHub API, v3";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "github-backup" = callPackage
@@ -121515,8 +122236,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-release";
-       version = "2.0.0.9";
-       sha256 = "0lhaz92jr6ssl1mq5nmcwv6n43wda6mjv2qdzm8rg5275xqpa7jv";
+       version = "2.0.0.10";
+       sha256 = "1zsp4zab202jh11aaxpg6a59dh4paaqagi446qnwd2f503430zsc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -121542,8 +122263,8 @@ self: {
        pname = "github-rest";
        version = "1.1.4";
        sha256 = "156mqc9748ypinwm8xb46b40ysqpgyb5p2jaiyc34jpxd74g3148";
-       revision = "1";
-       editedCabalFile = "13h1s60mqp198vl7cf2pjhx957mg2jd3zrwdfyj79fp87vfsz0fp";
+       revision = "2";
+       editedCabalFile = "0jvdqpcb4mkmndx3jhvq58m48ayax8n0sz7gsqpkiwpwy7gy816q";
        libraryHaskellDepends = [
          aeson base bytestring http-client http-client-tls http-types jwt
          mtl scientific text time transformers unliftio unliftio-core
@@ -121557,22 +122278,37 @@ self: {
      }) {};
 
   "github-tools" = callPackage
-    ({ mkDerivation, base, bytestring, containers, exceptions, github
-     , groom, html, http-client, http-client-tls, monad-parallel
-     , tabular, tagsoup, text, time, vector
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring
+     , case-insensitive, containers, cryptohash, Diff, directory
+     , exceptions, expiring-cache-map, github, hspec, hspec-discover
+     , html, http-client, http-client-tls, http-media, http-types
+     , monad-parallel, pretty, process, QuickCheck, quickcheck-text
+     , servant, servant-server, split, suspend, tabular, text, time
+     , timers, unix, unordered-containers, uuid, vector, wai, wai-cors
+     , wai-extra, warp
      }:
      mkDerivation {
        pname = "github-tools";
-       version = "0.1.1";
-       sha256 = "1bap8ba6cxcg9jz2dfj7w0f4hphkvw3b1fwbilc8kgvrf23jrann";
-       isLibrary = false;
+       version = "0.1.2";
+       sha256 = "0zz7gr1i7pr2z2fi23lqpvhfx7c81a6032lp7pnfpy5c3iir4dbh";
+       isLibrary = true;
        isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers cryptohash directory exceptions
+         github html http-client http-client-tls monad-parallel process
+         QuickCheck quickcheck-text split tabular text time unix
+         unordered-containers uuid vector
+       ];
        executableHaskellDepends = [
-         base bytestring containers exceptions github groom html http-client
-         http-client-tls monad-parallel tabular tagsoup text time vector
+         aeson-pretty base bytestring case-insensitive containers Diff
+         expiring-cache-map github http-media http-types pretty servant
+         servant-server suspend text time timers unordered-containers uuid
+         wai wai-cors wai-extra warp
        ];
+       testHaskellDepends = [ aeson base hspec QuickCheck ];
+       testToolDepends = [ hspec-discover ];
        description = "Various Github helper utilities";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -121715,26 +122451,26 @@ self: {
 
   "gitit" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, blaze-html
-     , bytestring, ConfigFile, containers, directory, doctemplates, feed
-     , filepath, filestore, ghc, ghc-paths, happstack-server, hoauth2
-     , hslogger, HStringTemplate, HTTP, http-client-tls, http-conduit
-     , json, mtl, network, network-bsd, network-uri, old-locale
-     , old-time, pandoc, pandoc-types, parsec, pretty, process, random
-     , recaptcha, safe, SHA, skylighting, split, syb, tagsoup, temporary
-     , text, time, uri-bytestring, url, utf8-string, uuid, xhtml, xml
-     , xml-conduit, xml-types, xss-sanitize, zlib
+     , bytestring, containers, directory, doctemplates, feed, filepath
+     , filestore, ghc, ghc-paths, happstack-server, hoauth2, hslogger
+     , HStringTemplate, HTTP, http-client-tls, http-conduit, json, mtl
+     , network, network-bsd, network-uri, old-locale, old-time, pandoc
+     , pandoc-types, parsec, pretty, process, random, recaptcha, safe
+     , SHA, skylighting, split, syb, tagsoup, temporary, text, time
+     , uri-bytestring, url, utf8-string, uuid, xhtml, xml, xml-conduit
+     , xml-types, xss-sanitize, zlib
      }:
      mkDerivation {
        pname = "gitit";
-       version = "0.15.1.1";
-       sha256 = "0pfm0bd6xqa5x9wlqsk4l1yk5045fdipkrm6wh8hzsbb70q0vg4h";
+       version = "0.15.1.2";
+       sha256 = "1j7f5lbm8gm9hn3i5rjbswacnlvg3v4q5bprlrysgrqvnwdrm0zs";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base base64-bytestring blaze-html bytestring ConfigFile
-         containers directory doctemplates feed filepath filestore ghc
-         ghc-paths happstack-server hoauth2 hslogger HStringTemplate HTTP
+         aeson base base64-bytestring blaze-html bytestring containers
+         directory doctemplates feed filepath filestore ghc ghc-paths
+         happstack-server hoauth2 hslogger HStringTemplate HTTP
          http-client-tls http-conduit json mtl network network-bsd
          network-uri old-locale old-time pandoc pandoc-types parsec pretty
          process random recaptcha safe SHA skylighting split syb tagsoup
@@ -121776,8 +122512,8 @@ self: {
      }:
      mkDerivation {
        pname = "gitlab-haskell";
-       version = "1.0.0.3";
-       sha256 = "0jddsxj746pfziq4i3z750v290r3m0v3wifz3kisb6ais3794cjn";
+       version = "1.0.0.4";
+       sha256 = "06v1hjc4q2i4fvvia6zi9ky1x3vyyvsvanxm2li691swgvcwkrn5";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring connection http-client http-conduit
@@ -122142,8 +122878,8 @@ self: {
      }:
      mkDerivation {
        pname = "glabrous";
-       version = "2.0.6.2";
-       sha256 = "0xviafnaw2pap3x3813zikvsg7j0mgwpsly2czgszsxszqvcxpx4";
+       version = "2.0.6.3";
+       sha256 = "0ndw2mbbfvrp5p2zxn7fx78gdj13xw9rx46a7zg33f9k2dsvjnp8";
        libraryHaskellDepends = [
          aeson aeson-pretty attoparsec base bytestring cereal cereal-text
          either text unordered-containers
@@ -122207,7 +122943,9 @@ self: {
        ];
        description = "A simply typed lambda calculus interpreter, written with GADTs";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "glam";
+       broken = true;
      }) {};
 
   "glapp" = callPackage
@@ -122395,6 +123133,8 @@ self: {
        pname = "glib";
        version = "0.13.10.0";
        sha256 = "149y33ddv8vkvak0042ismiwh6lgc706n3n3bvnmrgw67fmi57m1";
+       revision = "2";
+       editedCabalFile = "19zg675zvyi87415yyfyl1s7i65rz8hx8hw4scxwalcq50axj99s";
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [
          base bytestring containers text utf8-string
@@ -122415,6 +123155,8 @@ self: {
        testHaskellDepends = [ base c-enum primitive text ];
        description = "Stopgap package of binding for GLib";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) glib;};
 
   "glicko" = callPackage
@@ -122475,10 +123217,8 @@ self: {
      }:
      mkDerivation {
        pname = "glirc";
-       version = "2.40";
-       sha256 = "0zyj2jc8j61y6cp1p4f3lq2hhsph8hjybkbf4drxxlgm0zmyjkvh";
-       revision = "1";
-       editedCabalFile = "1yrmppkwhmy9k1fsw41dvsl2k115kmj55fn10x0a1nf8jjx7v61j";
+       version = "2.40.1";
+       sha256 = "1214r64pyikz4j4na65ki6glvplm3vpx0glizh2divn1cm8q0zch";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal filepath ];
@@ -122514,6 +123254,35 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "glob-imports" = callPackage
+    ({ mkDerivation, base, directory, discover-instances, dlist
+     , file-embed, filepath, hspec, hspec-discover, mtl, some-dict-of
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "glob-imports";
+       version = "0.0.1.0";
+       sha256 = "1a7n5mn7pd1m1hjw1cymw3lx6gf9yp4s068gsf72cm4zx4cvb6i8";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base directory discover-instances dlist file-embed filepath mtl
+         some-dict-of template-haskell text
+       ];
+       executableHaskellDepends = [
+         base directory discover-instances dlist file-embed filepath mtl
+         some-dict-of template-haskell text
+       ];
+       testHaskellDepends = [
+         base directory discover-instances dlist file-embed filepath hspec
+         hspec-discover mtl some-dict-of template-haskell text
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Import modules for metaprogramming";
+       license = lib.licenses.bsd3;
+       mainProgram = "glob-imports";
+     }) {};
+
   "glob-posix" = callPackage
     ({ mkDerivation, base, criterion, directory, filepath, Glob
      , MissingH, tasty, tasty-expected-failure, tasty-hunit, unix
@@ -122630,6 +123399,8 @@ self: {
        pname = "gloss";
        version = "1.13.2.2";
        sha256 = "09yabwajjw6zsbs8p4hsmfz4a032i81d3vnia5f7rrzszbi9svdn";
+       revision = "1";
+       editedCabalFile = "04r9lhwxd8bhv7zri3cy5pqcn84ydkdn5pclqppb4dx35z11g871";
        libraryHaskellDepends = [
          base bmp bytestring containers ghc-prim gloss-rendering GLUT OpenGL
        ];
@@ -122709,6 +123480,7 @@ self: {
        description = "Examples using the gloss library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "gloss-export" = callPackage
@@ -122781,7 +123553,6 @@ self: {
        ];
        description = "Parallel rendering of raster images";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "gloss-raster-accelerate" = callPackage
@@ -122815,6 +123586,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Massiv-based alternative for gloss-raster";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "gloss-rendering" = callPackage
@@ -122823,6 +123595,8 @@ self: {
        pname = "gloss-rendering";
        version = "1.13.1.2";
        sha256 = "0zrdqh72gswyn27x43ifhy4q8m7hvmv24b5ki3hyra5yq74njlsm";
+       revision = "1";
+       editedCabalFile = "0ji8iaj2ldp5qkfrmz4ckh86vwdcq15w6499i9fpnhl0m47sl01g";
        libraryHaskellDepends = [
          base bmp bytestring containers GLUT OpenGL
        ];
@@ -122871,6 +123645,7 @@ self: {
        ];
        description = "Comprehensive GLPK linear programming bindings";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "glpk-hs-example";
      }) {inherit (pkgs) glpk;};
 
@@ -122958,28 +123733,28 @@ self: {
   "glualint" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, deepseq
      , directory, effectful, filemanip, filepath, optparse-applicative
-     , parsec, pretty, signal, tasty, tasty-golden, uu-parsinglib, uuagc
+     , parsec, pretty, signal, tasty, tasty-golden, tasty-hunit, uuagc
      , uuagc-cabal
      }:
      mkDerivation {
        pname = "glualint";
-       version = "1.26.0";
-       sha256 = "1ywvffzmpk4igzj46f2bck938hlim8kfbf5nh2mv4jv80k0535g5";
+       version = "1.28.0";
+       sha256 = "11wcp8h1fmbhccj2hyhk56lj63hskb92xmgyxl0ixv303lj7p1ni";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base bytestring containers parsec pretty uu-parsinglib uuagc
-         uuagc-cabal
+         aeson base bytestring containers parsec pretty uuagc uuagc-cabal
        ];
        executableHaskellDepends = [
          aeson base bytestring containers deepseq directory effectful
          filemanip filepath optparse-applicative signal
        ];
        testHaskellDepends = [
-         base bytestring filepath tasty tasty-golden
+         base bytestring filepath tasty tasty-golden tasty-hunit
        ];
        description = "Attempts to fix your syntax erroring Lua files";
        license = lib.licenses.lgpl21Plus;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "glualint";
      }) {};
 
@@ -123139,6 +123914,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "gmail-simple_0_1_0_6" = callPackage
+    ({ mkDerivation, aeson, base, base64, blaze-html, bytestring
+     , containers, cryptonite, http-api-data, http-conduit, http-media
+     , jwt, text, time, unordered-containers
+     }:
+     mkDerivation {
+       pname = "gmail-simple";
+       version = "0.1.0.6";
+       sha256 = "055kw57i0bspa6x0bx62ar1bqww6d46m15xzvg7f5phhfcx7py96";
+       libraryHaskellDepends = [
+         aeson base base64 blaze-html bytestring containers cryptonite
+         http-api-data http-conduit http-media jwt text time
+         unordered-containers
+       ];
+       description = "Simple library for Google Mail (GMail)";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "gmap" = callPackage
     ({ mkDerivation, array, AvlTree, base, COrdering, QuickCheck
      , random
@@ -123301,8 +124095,8 @@ self: {
        pname = "gnuplot";
        version = "0.5.7";
        sha256 = "1glahh3si5bpazsklnpwxx4h4ivgb4wyngc032797zq1496fhhm3";
-       revision = "1";
-       editedCabalFile = "1x0ik81nmrxi77p1k4f7j4d5s9ajs0cy9jhr41b0qhvfsimyf0cn";
+       revision = "2";
+       editedCabalFile = "0mjyvpz71p80b87blhkqbvwihzkdc1dvbn9laxw5a9l9lh7761qd";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -123317,17 +124111,22 @@ self: {
      }) {};
 
   "gnutls" = callPackage
-    ({ mkDerivation, base, bytestring, gnutls, monads-tf, transformers
+    ({ mkDerivation, base, bytestring, gnutls, transformers
+     , unexceptionalio-trans
      }:
      mkDerivation {
        pname = "gnutls";
-       version = "0.2";
-       sha256 = "1c5pm0d80wpgh2bkcgbvmc72agf89h8ghfnrn1m1x3fljbgzvrn0";
-       libraryHaskellDepends = [ base bytestring monads-tf transformers ];
+       version = "0.3";
+       sha256 = "1v8haxpj2pfx3fjbjfp16r9488l9gj7ih26g978ampb5nwnq3gry";
+       libraryHaskellDepends = [
+         base bytestring transformers unexceptionalio-trans
+       ];
        librarySystemDepends = [ gnutls ];
        libraryPkgconfigDepends = [ gnutls ];
        description = "Bindings for GNU libgnutls";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) gnutls;};
 
   "goa" = callPackage
@@ -123635,6 +124434,8 @@ self: {
        ];
        description = "`goggles` interface to Google Cloud Storage";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "gogol" = callPackage
@@ -126089,8 +126890,8 @@ self: {
      }:
      mkDerivation {
        pname = "google-oauth2-jwt";
-       version = "0.3.3";
-       sha256 = "13iy695qpb9yyr1wi3fslj0xd90izgj4wmvs04k5mhf6k53pk9dk";
+       version = "0.3.3.1";
+       sha256 = "1c3z6pi04xk7gi7fyhiq3i102g7vnyygp5vyfm4yj5xfq4npqjg1";
        libraryHaskellDepends = [
          base base64-bytestring bytestring HsOpenSSL RSA text unix-time
        ];
@@ -126501,8 +127302,8 @@ self: {
      }:
      mkDerivation {
        pname = "gothic";
-       version = "0.1.8.1";
-       sha256 = "08d80gv55vfxyy88b0wdzwvxi8kzjv1pgfknffxsvnbk2bf0nmgf";
+       version = "0.1.8.2";
+       sha256 = "1mqkkla4ipibp7y7aiy466qrqcapra4n2xx8an07c1inwkpsxzw1";
        libraryHaskellDepends = [
          aeson base binary bytestring connection exceptions hashable
          http-client http-client-tls http-conduit http-types lens lens-aeson
@@ -126735,6 +127536,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Applicative non-linear consumption";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "grab-form" = callPackage
@@ -126749,6 +127552,7 @@ self: {
        testHaskellDepends = [ base containers grab hedgehog text ];
        description = "Applicative parsers for form parameter lists";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "graceful" = callPackage
@@ -127524,14 +128328,14 @@ self: {
 
   "graphql" = callPackage
     ({ mkDerivation, base, conduit, containers, exceptions, hspec
-     , hspec-expectations, hspec-megaparsec, megaparsec
+     , hspec-discover, hspec-expectations, hspec-megaparsec, megaparsec
      , parser-combinators, QuickCheck, template-haskell, text
      , transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "graphql";
-       version = "1.2.0.1";
-       sha256 = "0y5n1whdycszin7a0cixgf3h6v9r7vcs1z0n3hm3c8jwf8c079d8";
+       version = "1.2.0.3";
+       sha256 = "0q01q02v66bnfy0gpwik0dspiwr1xvr9gp377yga5nhz3rjvzz38";
        libraryHaskellDepends = [
          base conduit containers exceptions megaparsec parser-combinators
          template-haskell text transformers unordered-containers vector
@@ -127541,6 +128345,7 @@ self: {
          hspec-megaparsec megaparsec QuickCheck text unordered-containers
          vector
        ];
+       testToolDepends = [ hspec-discover ];
        description = "Haskell GraphQL implementation";
        license = "MPL-2.0 AND BSD-3-Clause";
      }) {};
@@ -127579,14 +128384,14 @@ self: {
   "graphql-client" = callPackage
     ({ mkDerivation, aeson, aeson-schemas, base, bytestring, file-embed
      , http-client, http-client-tls, http-types, mtl
-     , optparse-applicative, path, path-io, tasty, tasty-hunit
+     , optparse-applicative, path, path-io, process, tasty, tasty-hunit
      , template-haskell, text, transformers, typed-process
      , unliftio-core
      }:
      mkDerivation {
        pname = "graphql-client";
-       version = "1.2.2";
-       sha256 = "0m89j9caawijfmq8r0drh16psc82nnwj6sg256hls6539pxxza6k";
+       version = "1.2.4";
+       sha256 = "0rm7x5hrjz7fqfixpaab2c8fmwpn6m3p14zr0wq2bll8qf0hj15c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -127598,7 +128403,7 @@ self: {
          template-haskell typed-process
        ];
        testHaskellDepends = [
-         aeson aeson-schemas base mtl tasty tasty-hunit
+         aeson aeson-schemas base mtl process tasty tasty-hunit
        ];
        description = "A client for Haskell programs to query a GraphQL API";
        license = lib.licenses.bsd3;
@@ -127715,32 +128520,6 @@ self: {
      }:
      mkDerivation {
        pname = "graphula";
-       version = "2.0.2.2";
-       sha256 = "066lcn262x4l826sglybrz4mp58ishcj0h1r5h41aiy09mcf4g3v";
-       revision = "2";
-       editedCabalFile = "1wfvg8mkiyw5vh20syawrl201dwjx4ggd03pg1f06499anykcs8z";
-       libraryHaskellDepends = [
-         base containers directory generics-eot HUnit mtl persistent
-         QuickCheck random semigroups temporary text unliftio unliftio-core
-       ];
-       testHaskellDepends = [
-         base generic-arbitrary hspec markdown-unlit monad-logger persistent
-         persistent-sqlite QuickCheck resourcet transformers unliftio-core
-       ];
-       testToolDepends = [ markdown-unlit ];
-       description = "A simple interface for generating persistent data and linking its dependencies";
-       license = lib.licenses.mit;
-     }) {};
-
-  "graphula_2_1_0_0" = callPackage
-    ({ mkDerivation, base, containers, directory, generic-arbitrary
-     , generics-eot, hspec, HUnit, markdown-unlit, monad-logger, mtl
-     , persistent, persistent-sqlite, QuickCheck, random, resourcet
-     , semigroups, temporary, text, transformers, unliftio
-     , unliftio-core
-     }:
-     mkDerivation {
-       pname = "graphula";
        version = "2.1.0.0";
        sha256 = "1xiafr59a91r8avyns6nbmm2aq4wkf1s9z8xqkzapnz82wj3xkh4";
        libraryHaskellDepends = [
@@ -128271,6 +129050,8 @@ self: {
        pname = "gridtables";
        version = "0.1.0.0";
        sha256 = "1smhbb2jxysbqhxww5rikjfnhsdbf0gq3kgnn6ikjzcrqwdk9b6n";
+       revision = "1";
+       editedCabalFile = "0ay4ywi8w5kk4blf8jqxhivzprp1ivpdlw6racr1692psyizmxi0";
        libraryHaskellDepends = [
          array base containers doclayout parsec text
        ];
@@ -128280,28 +129061,29 @@ self: {
      }) {};
 
   "grisette" = callPackage
-    ({ mkDerivation, array, base, bytestring, deepseq, doctest
+    ({ mkDerivation, array, async, base, bytestring, deepseq, doctest
      , generic-deriving, Glob, hashable, hashtables, HUnit, intern
-     , loch-th, mtl, parallel, prettyprinter, QuickCheck, sbv
+     , loch-th, mtl, parallel, prettyprinter, QuickCheck, sbv, stm
      , template-haskell, test-framework, test-framework-hunit
      , test-framework-quickcheck2, text, th-compat, transformers
      , unordered-containers
      }:
      mkDerivation {
        pname = "grisette";
-       version = "0.3.1.1";
-       sha256 = "15bzr7z0893p9yb85968lvisc76crnfqnrkxfv0qlff5png6ygrs";
+       version = "0.4.1.0";
+       sha256 = "00nkg8mz0mi5d0zvjxn7jj149nvjpzcflpqv2f4p8kbis95iccm8";
        libraryHaskellDepends = [
-         array base bytestring deepseq generic-deriving hashable hashtables
-         intern loch-th mtl parallel prettyprinter QuickCheck sbv
-         template-haskell text th-compat transformers unordered-containers
+         array async base bytestring deepseq generic-deriving hashable
+         hashtables intern loch-th mtl parallel prettyprinter QuickCheck sbv
+         stm template-haskell text th-compat transformers
+         unordered-containers
        ];
        testHaskellDepends = [
-         array base bytestring deepseq doctest generic-deriving Glob
+         array async base bytestring deepseq doctest generic-deriving Glob
          hashable hashtables HUnit intern loch-th mtl parallel prettyprinter
-         QuickCheck sbv template-haskell test-framework test-framework-hunit
-         test-framework-quickcheck2 text th-compat transformers
-         unordered-containers
+         QuickCheck sbv stm template-haskell test-framework
+         test-framework-hunit test-framework-quickcheck2 text th-compat
+         transformers unordered-containers
        ];
        description = "Symbolic evaluation as a library";
        license = lib.licenses.bsd3;
@@ -128309,19 +129091,20 @@ self: {
      }) {};
 
   "grisette-monad-coroutine" = callPackage
-    ({ mkDerivation, base, grisette, monad-coroutine, mtl, tasty
-     , tasty-hunit, tasty-quickcheck, tasty-test-reporter, transformers
+    ({ mkDerivation, base, grisette, HUnit, monad-coroutine, mtl
+     , QuickCheck, test-framework, test-framework-hunit
+     , test-framework-quickcheck2, transformers
      }:
      mkDerivation {
        pname = "grisette-monad-coroutine";
-       version = "0.1.0.0";
-       sha256 = "0bz8126lwdcx22smxv89z1ipfmnhxdvjzi830j0hzgmxkzw6g0d5";
+       version = "0.2.0.0";
+       sha256 = "0zpv4dkns025jjg8pzj6kxk43w1bp08zk3mhpr3vp5zrq4m0wsj1";
        libraryHaskellDepends = [
          base grisette monad-coroutine mtl transformers
        ];
        testHaskellDepends = [
-         base grisette monad-coroutine mtl tasty tasty-hunit
-         tasty-quickcheck tasty-test-reporter transformers
+         base grisette HUnit monad-coroutine mtl QuickCheck test-framework
+         test-framework-hunit test-framework-quickcheck2 transformers
        ];
        description = "Support for monad-coroutine package with Grisette";
        license = lib.licenses.bsd3;
@@ -128704,6 +129487,8 @@ self: {
        libraryHaskellDepends = [ base groups ];
        description = "Generically derive Group instances";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "grow-vector" = callPackage
@@ -128906,10 +129691,8 @@ self: {
      }:
      mkDerivation {
        pname = "gsasl";
-       version = "0.3.7";
-       sha256 = "11i12r9s30jrq8hkgqagf2fd129r6ya607s9ibw549ablsxgr507";
-       revision = "1";
-       editedCabalFile = "1c806a82qd1hkxxfh1mwk0i062bz6fkaap5ys3n4x9n6wjv7ilin";
+       version = "0.4.0";
+       sha256 = "1sjbnh2rk9nn4ygngnqsjgybn736vr2sz0ixlcavijwrv2mm1bfr";
        libraryHaskellDepends = [
          base bytestring monad-loops transformers
        ];
@@ -129312,6 +130095,8 @@ self: {
        pname = "gtk2hs-buildtools";
        version = "0.13.10.0";
        sha256 = "0ww53n596h39smwf1k0wfk5k0s56n8mkapa8b0q9v9d9bpllgfyw";
+       revision = "1";
+       editedCabalFile = "16ckrhii6pbd64mgrm4s4x7vzd800w8g6x18rvij2cfm784yz6by";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -129859,8 +130644,8 @@ self: {
      }:
      mkDerivation {
        pname = "h-raylib";
-       version = "4.6.0.7";
-       sha256 = "0spgwi9d33srx8r04jfv0x73xakc9s6489w8zgig0gqm40ry9zdm";
+       version = "5.1.0.1";
+       sha256 = "16bly59z7r9j30hqf806aaicbk3cbnzz5aar1b0ag6f8z3afs0fv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers exceptions lens ];
@@ -130311,6 +131096,7 @@ self: {
        ];
        description = "Interface to Amazon's Simple Storage Service (S3)";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hs3";
      }) {};
 
@@ -130970,8 +131756,8 @@ self: {
        pname = "hackage-cli";
        version = "0.1.0.1";
        sha256 = "023gnhdxwn36k3pd74j5jcykqbrj7nvp131mg761h8913h9ldw1r";
-       revision = "5";
-       editedCabalFile = "1sgl8i9k7by80c7h5w4gvj1cbdd2lv88b70whlkri9as53n61pv9";
+       revision = "6";
+       editedCabalFile = "1i65z5xqs0h9bmr8lja038s281fah0653yyg72fzlka5ingn7baz";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -130989,7 +131775,6 @@ self: {
        doHaddock = false;
        description = "CLI tool for Hackage";
        license = lib.licenses.gpl3Plus;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "hackage-cli";
      }) {};
 
@@ -131138,8 +131923,8 @@ self: {
        pname = "hackage-repo-tool";
        version = "0.1.1.3";
        sha256 = "13q81gi3xmkzwfrbyk5dwxws3c92vnrlslksi021iasmjwhw2h6l";
-       revision = "4";
-       editedCabalFile = "1yybcwkpkkdzivpv35z05dmi9f3awyw0c03vhm26wa87wvmpsqir";
+       revision = "6";
+       editedCabalFile = "0a3ylq1r8zsvh34cjg2vqdx7r8ykla4myzjhv5vnc1bpq34bw5y8";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -131149,7 +131934,9 @@ self: {
        ];
        description = "Manage secure file-based package repositories";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hackage-repo-tool";
+       broken = true;
      }) {};
 
   "hackage-security" = callPackage
@@ -131162,10 +131949,10 @@ self: {
      }:
      mkDerivation {
        pname = "hackage-security";
-       version = "0.6.2.3";
-       sha256 = "0rm0avcc1k247qbrajhzi3vz92cgcc4nr3kbhhfmfm8rjxv0bvjj";
-       revision = "8";
-       editedCabalFile = "1gzk9hrq0rv94msbvnkynzj5pnh94ixray8dl639zr29qh55cbib";
+       version = "0.6.2.4";
+       sha256 = "10jcxn3ihsaf2dv0wyrccjszwqz2cpgv2k8bwqxfjhjbn0xmp4lb";
+       revision = "1";
+       editedCabalFile = "0n3jss7hignrjzgzrk2krq9jffh1bfarmacmjlmigcg5ha91d5cn";
        libraryHaskellDepends = [
          base base16-bytestring base64-bytestring bytestring Cabal
          Cabal-syntax containers cryptohash-sha256 directory ed25519
@@ -131189,8 +131976,8 @@ self: {
        pname = "hackage-security-HTTP";
        version = "0.1.1.1";
        sha256 = "14hp7gssf80b9937j7m56w8sxrv3hrzjf2s9kgfk76v6llgx79k2";
-       revision = "7";
-       editedCabalFile = "004wgr36a1f835ixmqnsa41c3161yh8kykbjvj3wyx52bwp9xa26";
+       revision = "8";
+       editedCabalFile = "14y8lj2gbm19swc3z3wi0slc2ax61gnzgpyzmrxay4zjqsv6qfvc";
        libraryHaskellDepends = [
          base bytestring hackage-security HTTP mtl network network-uri zlib
        ];
@@ -131401,11 +132188,11 @@ self: {
   "hackport" = callPackage
     ({ mkDerivation, array, async, base, base16-bytestring
      , base64-bytestring, binary, bytestring, containers
-     , cryptohash-sha256, deepseq, directory, dlist, doctest, echo
-     , ed25519, edit-distance, exceptions, extensible-exceptions
-     , filepath, ghc-compact, ghc-prim, hashable, hspec, hspec-discover
-     , HTTP, lifted-base, lukko, monad-control, mtl, network
-     , network-uri, optparse-applicative, parallel, parsec
+     , cryptohash-sha256, data-default-class, deepseq, directory, dlist
+     , doctest, echo, ed25519, edit-distance, exceptions
+     , extensible-exceptions, filepath, ghc-prim, hashable, hspec
+     , hspec-discover, HTTP, lifted-base, lukko, monad-control, mtl
+     , network, network-uri, optparse-applicative, parallel, parsec
      , parser-combinators, pretty, prettyprinter, process, QuickCheck
      , random, regex-base, regex-posix, resolv, safe-exceptions, split
      , stm, tar, template-haskell, text, time, transformers, unix, xml
@@ -131413,19 +132200,19 @@ self: {
      }:
      mkDerivation {
        pname = "hackport";
-       version = "0.8.4.0";
-       sha256 = "1bg5cb3sfpp59sk4cswk4dr2dsjx9qh3sf3yj3x39ha3q5bdrgvd";
+       version = "0.8.5.0";
+       sha256 = "1ynvvpc867vmxnbb909fszfdxf848vhh3avv98sgki4diqd77873";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
          array async base base16-bytestring base64-bytestring binary
-         bytestring containers cryptohash-sha256 deepseq directory dlist
-         echo ed25519 edit-distance exceptions extensible-exceptions
-         filepath ghc-compact ghc-prim hashable HTTP lifted-base lukko
-         monad-control mtl network network-uri optparse-applicative parallel
-         parsec pretty process QuickCheck random regex-base regex-posix
-         resolv safe-exceptions split stm tar template-haskell text time
-         transformers unix xml zlib
+         bytestring containers cryptohash-sha256 data-default-class deepseq
+         directory dlist echo ed25519 edit-distance exceptions
+         extensible-exceptions filepath ghc-prim hashable HTTP lifted-base
+         lukko monad-control mtl network network-uri optparse-applicative
+         parallel parsec pretty process QuickCheck random regex-base
+         regex-posix resolv safe-exceptions split stm tar template-haskell
+         text time transformers unix xml zlib
        ];
        executableHaskellDepends = [
          base directory filepath optparse-applicative parsec
@@ -132161,6 +132948,7 @@ self: {
        executableHaskellDepends = [ directory process regexpr yjtools ];
        description = "make tool. ruby : rake = haskell : hake";
        license = "GPL";
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hake";
      }) {};
 
@@ -132227,8 +133015,8 @@ self: {
        pname = "hakyll";
        version = "4.16.2.0";
        sha256 = "1p3x9f1ha6dkis71nzbxh1h7mzldsj4qvmfx3f0vng7y1ydlcw0z";
-       revision = "1";
-       editedCabalFile = "0q76bigg5jwbs7bawxx9k7y3jng0nl8yfypzz2hz1nhw3lc2wd76";
+       revision = "4";
+       editedCabalFile = "1sr6m8ip139vrcs6nn9vd43lbgdswlzdjkphn65xgkjpx5f726yi";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -132443,8 +133231,8 @@ self: {
        pname = "hakyll-convert";
        version = "0.3.0.4";
        sha256 = "09fqr05mvs0qs53psq97kn1s4axinwn1vr5d6af4sqj3zc5k6k39";
-       revision = "5";
-       editedCabalFile = "01jpc6jp8brayi9v7ynchjgpx40dpzjcwy5lgmzkx043w5xcm6sn";
+       revision = "6";
+       editedCabalFile = "0v80ysaz1x78sgzpbzn9v1r406afkw2702ips4gclrr42a2llzsw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -132466,18 +133254,18 @@ self: {
 
   "hakyll-dhall" = callPackage
     ({ mkDerivation, base, binary, containers, data-default-class
-     , dhall, filepath, hakyll, microlens, microlens-th, mtl
+     , dhall, either, filepath, hakyll, microlens, microlens-th, mtl
      , prettyprinter, text, transformers
      }:
      mkDerivation {
        pname = "hakyll-dhall";
-       version = "0.2.4.0";
-       sha256 = "0p4k3b8x4d6pgybfwy0kx9c5hlqqm57bch45j7vl421zlln7yqrx";
+       version = "0.2.5.0";
+       sha256 = "012iharphl2hrm723gqpqa82s1hr799rnpfawdfl3xykpmw6wy9g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base binary containers data-default-class dhall filepath hakyll
-         microlens microlens-th mtl prettyprinter text transformers
+         base binary containers data-default-class dhall either filepath
+         hakyll microlens microlens-th mtl prettyprinter text transformers
        ];
        executableHaskellDepends = [ base dhall hakyll ];
        description = "Dhall compiler for Hakyll";
@@ -132743,8 +133531,35 @@ self: {
        ];
        description = "A runtime environment for Haskell applications running on AWS Lambda";
        license = lib.licenses.bsd3;
+     }) {};
+
+  "hal_1_1" = callPackage
+    ({ mkDerivation, aeson, attoparsec-aeson, base, base64-bytestring
+     , bytestring, case-insensitive, conduit, conduit-extra, containers
+     , exceptions, hashable, hedgehog, hspec, hspec-hedgehog
+     , http-client, http-types, mtl, raw-strings-qq, scientific, text
+     , time, transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "hal";
+       version = "1.1";
+       sha256 = "0lx2338zvxkws91msfmkfkp31kmz5lgw5cdkwwc9lm7r2vlp0q1m";
+       revision = "1";
+       editedCabalFile = "1rg95plri595liavqc0ygwr6iag0wrrp8ndzlj7afswvzi1kix1d";
+       libraryHaskellDepends = [
+         aeson attoparsec-aeson base base64-bytestring bytestring
+         case-insensitive conduit conduit-extra containers exceptions
+         hashable http-client http-types mtl scientific text time
+         unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base base64-bytestring bytestring case-insensitive containers
+         hedgehog hspec hspec-hedgehog http-client http-types raw-strings-qq
+         scientific text time transformers unordered-containers vector
+       ];
+       description = "A runtime environment for Haskell applications running on AWS Lambda";
+       license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "halberd" = callPackage
@@ -133443,7 +134258,9 @@ self: {
        executableHaskellDepends = [ base mtl random utility-ht ];
        description = "Hangman implementation in Haskell written in two hours";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hangman";
+       broken = true;
      }) {};
 
   "hannahci" = callPackage
@@ -134020,6 +134837,7 @@ self: {
        description = "Support for using Heist templates in Happstack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "happstack-helpers" = callPackage
@@ -134060,6 +134878,7 @@ self: {
        ];
        description = "Support for using HSP templates in Happstack";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "happstack-hstringtemplate" = callPackage
@@ -134105,8 +134924,8 @@ self: {
      }:
      mkDerivation {
        pname = "happstack-jmacro";
-       version = "7.0.12.5";
-       sha256 = "1vk0674qalyhzwndpd7az4byshhxy38dh53pgma7awj2bx1n170c";
+       version = "7.0.12.6";
+       sha256 = "02b4bwlvf98rcj40p0q70c3pz9zm7vqbj2ckfd8ib3z0na6fj2s7";
        libraryHaskellDepends = [
          base base64-bytestring bytestring cereal digest happstack-server
          jmacro text utf8-string wl-pprint-text
@@ -134227,8 +135046,8 @@ self: {
      }:
      mkDerivation {
        pname = "happstack-server-tls";
-       version = "7.2.1.3";
-       sha256 = "11prqx74dkv38dyg1yh419ckbi5hbyv6ncm9y9inqnabl84qyam1";
+       version = "7.2.1.5";
+       sha256 = "0mm5pw6nkg53s3k7ljx3r1l36wf41k2xfkn7cc2g6mhh6l5srzyd";
        libraryHaskellDepends = [
          base bytestring extensible-exceptions happstack-server hslogger
          HsOpenSSL network sendfile time unix
@@ -134377,6 +135196,28 @@ self: {
        mainProgram = "happy";
      }) {};
 
+  "happy-arbitrary" = callPackage
+    ({ mkDerivation, aeson, alex, array, base, bytestring, containers
+     , data-fix, extra, file-embed, groom, happy, hspec, hspec-discover
+     , QuickCheck, recursion-schemes, text, transformers-compat
+     }:
+     mkDerivation {
+       pname = "happy-arbitrary";
+       version = "0.0.1";
+       sha256 = "0n7wjj9swzk91njkkh8scjqbgc4j2a1wjjpsz94zj34q066f1fkd";
+       libraryHaskellDepends = [
+         aeson array base bytestring containers data-fix extra file-embed
+         QuickCheck recursion-schemes text transformers-compat
+       ];
+       libraryToolDepends = [ alex happy ];
+       testHaskellDepends = [
+         base bytestring groom hspec QuickCheck text
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Token list generator for arbitrary Happy grammars";
+       license = lib.licenses.gpl3Only;
+     }) {};
+
   "happy-dot" = callPackage
     ({ mkDerivation, array, base, clock, happy, HUnit, language-dot
      , pretty, transformers, xml
@@ -134404,6 +135245,8 @@ self: {
        libraryHaskellDepends = [ base Chart Chart-diagrams ];
        description = "Generate simple okay-looking bar plots without much effort";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "happy-meta" = callPackage
@@ -134724,6 +135567,8 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "HaRP allows pattern-matching with regular expressions";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "harpy" = callPackage
@@ -134832,6 +135677,7 @@ self: {
        ];
        description = "Haskell driver for Neo4j 3+ (BOLT protocol)";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hasbolt-extras" = callPackage
@@ -134908,35 +135754,35 @@ self: {
      }) {};
 
   "hascard" = callPackage
-    ({ mkDerivation, base, brick, containers, directory, filepath
-     , megaparsec, microlens, microlens-platform, mwc-random
-     , optparse-applicative, ordered-containers, process, random-fu
-     , split, strict, tasty, tasty-hunit, tasty-quickcheck, text, vector
-     , vty, word-wrap
+    ({ mkDerivation, base, brick, containers, directory, extra
+     , filepath, megaparsec, microlens, microlens-platform, mtl
+     , mwc-random, optparse-applicative, ordered-containers, process
+     , random-fu, split, strict, tasty, tasty-hunit, tasty-quickcheck
+     , text, vector, vty, vty-crossplatform, word-wrap
      }:
      mkDerivation {
        pname = "hascard";
-       version = "0.5.0.3.1";
-       sha256 = "0d3zx4lbbc49lzc5pyrrh18c6ca9wnfsrxdakfpvqx8y4r1nlrdp";
+       version = "0.6.0.1";
+       sha256 = "1fw5vmlbj4mp1q2a4rkhwmbi1iqf6yz4zcn44z9ffn1him1k1zsk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base brick containers directory filepath megaparsec microlens
-         microlens-platform mwc-random optparse-applicative
+         base brick containers directory extra filepath megaparsec microlens
+         microlens-platform mtl mwc-random optparse-applicative
          ordered-containers process random-fu split strict tasty tasty-hunit
-         tasty-quickcheck text vector vty word-wrap
+         tasty-quickcheck text vector vty vty-crossplatform word-wrap
        ];
        executableHaskellDepends = [
-         base brick containers directory filepath megaparsec microlens
-         microlens-platform mwc-random optparse-applicative
+         base brick containers directory extra filepath megaparsec microlens
+         microlens-platform mtl mwc-random optparse-applicative
          ordered-containers process random-fu split strict tasty tasty-hunit
-         tasty-quickcheck text vector vty word-wrap
+         tasty-quickcheck text vector vty vty-crossplatform word-wrap
        ];
        testHaskellDepends = [
-         base brick containers directory filepath megaparsec microlens
-         microlens-platform mwc-random optparse-applicative
+         base brick containers directory extra filepath megaparsec microlens
+         microlens-platform mtl mwc-random optparse-applicative
          ordered-containers process random-fu split strict tasty tasty-hunit
-         tasty-quickcheck text vector vty word-wrap
+         tasty-quickcheck text vector vty vty-crossplatform word-wrap
        ];
        description = "A TUI for reviewing notes using 'flashcards' written with markdown-like syntax";
        license = lib.licenses.bsd3;
@@ -135083,6 +135929,7 @@ self: {
        ];
        description = "Hash-addressed file storage";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hash-addressed-cli" = callPackage
@@ -135109,6 +135956,7 @@ self: {
        ];
        description = "Hash-addressed file storage app";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hash-addressed";
      }) {};
 
@@ -135231,6 +136079,8 @@ self: {
        libraryHaskellDepends = [ base hashable sorted-list time-compat ];
        description = "Provides instances missing from Hashable";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hashable-time" = callPackage
@@ -135243,6 +136093,8 @@ self: {
        testHaskellDepends = [ base hashable time-compat ];
        description = "Hashable instances for Data.Time";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hashabler" = callPackage
@@ -135310,6 +136162,7 @@ self: {
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "hasherize";
+       broken = true;
      }) {};
 
   "hashes" = callPackage
@@ -135350,8 +136203,8 @@ self: {
     ({ mkDerivation, base, bytestring, containers, hedgehog, split }:
      mkDerivation {
        pname = "hashids";
-       version = "1.1.0.1";
-       sha256 = "0h4bvcg1aaprd4xkn8la4pmp4yjpdniam0yqf4akyrznspn76a6f";
+       version = "1.1.1.0";
+       sha256 = "0js9836sfsprs00l5fy6gzszr9djgarwymihcymkblx0hr5a05pk";
        libraryHaskellDepends = [ base bytestring containers split ];
        testHaskellDepends = [ base bytestring containers hedgehog split ];
        description = "Hashids generates short, unique, non-sequential ids from numbers";
@@ -135945,6 +136798,8 @@ self: {
        pname = "haskell-awk";
        version = "1.2.0.1";
        sha256 = "1r4hsvzbqagk06fc81cr1awfz0zqgs4hmbwl99mip47z578wrw9l";
+       revision = "1";
+       editedCabalFile = "15z5qhx4bhmr684kyqxrwya2vjwvcmmvfd93v32rlmb657kxvag6";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -136313,7 +137168,9 @@ self: {
        ];
        description = "Search Hoogle and navigate Hackage from the command line";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hdc";
+       broken = true;
      }) {};
 
   "haskell-eigen-util" = callPackage
@@ -136630,8 +137487,8 @@ self: {
     ({ mkDerivation, aeson, aeson-pretty, async, base
      , base16-bytestring, binary, bytestring, containers
      , cryptohash-sha1, data-default, deepseq, directory, extra
-     , filepath, ghc, ghc-boot-th, ghc-paths, ghcide, ghcide-bench
-     , ghcide-test-utils, githash, gitrev, hashable, hie-bios, hiedb
+     , filepath, ghc, ghc-boot-th, ghc-paths, ghcide, ghcide-test-utils
+     , githash, gitrev, hashable, hie-bios, hiedb
      , hls-alternate-number-format-plugin, hls-cabal-fmt-plugin
      , hls-cabal-plugin, hls-call-hierarchy-plugin
      , hls-change-type-signature-plugin, hls-class-plugin
@@ -136643,18 +137500,17 @@ self: {
      , hls-overloaded-record-dot-plugin, hls-plugin-api
      , hls-pragmas-plugin, hls-qualify-imported-names-plugin
      , hls-refactor-plugin, hls-rename-plugin, hls-retrie-plugin
-     , hls-splice-plugin, hls-stan-plugin, hls-stylish-haskell-plugin
-     , hls-test-utils, hp2pretty, hspec-expectations, implicit-hie, lens
-     , lens-aeson, lsp, lsp-test, lsp-types, mtl, optparse-applicative
-     , optparse-simple, prettyprinter, process, regex-tdfa, row-types
-     , safe-exceptions, shake, shake-bench, sqlite-simple, stm
-     , temporary, text, transformers, unix, unliftio-core
-     , unordered-containers, yaml
+     , hls-semantic-tokens-plugin, hls-splice-plugin, hls-stan-plugin
+     , hls-stylish-haskell-plugin, hls-test-utils, lens, lens-aeson, lsp
+     , lsp-test, lsp-types, mtl, optparse-applicative, optparse-simple
+     , prettyprinter, process, regex-tdfa, row-types, safe-exceptions
+     , sqlite-simple, stm, temporary, text, transformers, unix
+     , unliftio-core, unordered-containers
      }:
      mkDerivation {
        pname = "haskell-language-server";
-       version = "2.5.0.0";
-       sha256 = "0b9dy247izga3vdp80dmj4pykilscdbr9xs04iamcm2kqyrjc84n";
+       version = "2.6.0.0";
+       sha256 = "0j0fm0fa1pyaflkd4gvxlkfbina81bw784hqs0r8wvv187bvhm9n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136669,10 +137525,10 @@ self: {
          hls-hlint-plugin hls-module-name-plugin hls-ormolu-plugin
          hls-overloaded-record-dot-plugin hls-plugin-api hls-pragmas-plugin
          hls-qualify-imported-names-plugin hls-refactor-plugin
-         hls-rename-plugin hls-retrie-plugin hls-splice-plugin
-         hls-stan-plugin hls-stylish-haskell-plugin lsp optparse-applicative
-         optparse-simple prettyprinter process safe-exceptions sqlite-simple
-         text unordered-containers
+         hls-rename-plugin hls-retrie-plugin hls-semantic-tokens-plugin
+         hls-splice-plugin hls-stan-plugin hls-stylish-haskell-plugin lsp
+         optparse-applicative optparse-simple prettyprinter process
+         safe-exceptions sqlite-simple text unordered-containers
        ];
        executableHaskellDepends = [
          aeson async base base16-bytestring binary bytestring containers
@@ -136686,17 +137542,10 @@ self: {
        testHaskellDepends = [
          aeson base bytestring containers data-default deepseq directory
          extra filepath ghcide ghcide-test-utils hashable hls-plugin-api
-         hls-refactor-plugin hls-test-utils hspec-expectations lens
-         lens-aeson lsp-test lsp-types prettyprinter process row-types text
-         unordered-containers
+         hls-refactor-plugin hls-test-utils lens lens-aeson lsp-test
+         lsp-types prettyprinter process row-types text unordered-containers
        ];
        testToolDepends = [ ghcide ];
-       benchmarkHaskellDepends = [
-         aeson base containers data-default directory extra filepath
-         ghcide-bench hls-plugin-api lens lens-aeson optparse-applicative
-         shake shake-bench text yaml
-       ];
-       benchmarkToolDepends = [ ghcide-bench hp2pretty implicit-hie ];
        description = "LSP server for GHC";
        license = lib.licenses.asl20;
        maintainers = [ lib.maintainers.maralorn ];
@@ -138424,8 +139273,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskellish";
-       version = "0.3.2.1";
-       sha256 = "1kfdr56by97lzccp1zvp21za683jn95cnmsmzz87nyxm1gz0wyk4";
+       version = "0.3.2.2";
+       sha256 = "07h421qychchii79s2cbpcfvh6h8qipd6wl9qn5jkdg9d2gycc34";
        libraryHaskellDepends = [
          base containers haskell-src-exts mtl template-haskell text
        ];
@@ -138690,9 +139539,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Haskell Evaluation inside of LaTeX code";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "haskintex";
-       broken = true;
      }) {};
 
   "hasklepias" = callPackage
@@ -138803,8 +139650,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-core";
-       version = "0.21.2";
-       sha256 = "12i490xjfb0aav18ay3ahh0hpa9l5095a4hmva1ka3497clm7cfr";
+       version = "1.0.2";
+       sha256 = "1abcidb3d18yb4h1p889xi2ffad0swbl0akvshlyvq6jm9gzqavy";
        libraryHaskellDepends = [
          aeson array base base16 binary bytes bytestring cereal conduit
          containers cryptonite deepseq entropy hashable hspec memory mtl
@@ -138824,31 +139671,31 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "haskoin-core_1_0_2" = callPackage
+  "haskoin-core_1_0_4" = callPackage
     ({ mkDerivation, aeson, array, base, base16, base64, binary, bytes
-     , bytestring, cereal, conduit, containers, cryptonite, deepseq
-     , entropy, hashable, hspec, hspec-discover, HUnit, lens, lens-aeson
-     , memory, mtl, murmur3, network, QuickCheck, safe, scientific
-     , secp256k1-haskell, split, string-conversions, text, time
-     , transformers, unordered-containers, vector
+     , bytestring, cereal, conduit, containers, cryptonite, data-default
+     , deepseq, entropy, hashable, hspec, hspec-discover, HUnit, lens
+     , lens-aeson, memory, mtl, murmur3, network, QuickCheck, safe
+     , scientific, secp256k1-haskell, split, string-conversions, text
+     , time, transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "haskoin-core";
-       version = "1.0.2";
-       sha256 = "1abcidb3d18yb4h1p889xi2ffad0swbl0akvshlyvq6jm9gzqavy";
+       version = "1.0.4";
+       sha256 = "1m6wm5qyq25fgjjy9bw67ahh0rmrlysgsj2mx11ijmsxqzf67n6r";
        libraryHaskellDepends = [
          aeson array base base16 binary bytes bytestring cereal conduit
-         containers cryptonite deepseq entropy hashable hspec memory mtl
-         murmur3 network QuickCheck safe scientific secp256k1-haskell split
-         string-conversions text time transformers unordered-containers
-         vector
+         containers cryptonite data-default deepseq entropy hashable hspec
+         memory mtl murmur3 network QuickCheck safe scientific
+         secp256k1-haskell split string-conversions text time transformers
+         unordered-containers vector
        ];
        testHaskellDepends = [
          aeson array base base16 base64 binary bytes bytestring cereal
-         conduit containers cryptonite deepseq entropy hashable hspec HUnit
-         lens lens-aeson memory mtl murmur3 network QuickCheck safe
-         scientific secp256k1-haskell split string-conversions text time
-         transformers unordered-containers vector
+         conduit containers cryptonite data-default deepseq entropy hashable
+         hspec HUnit lens lens-aeson memory mtl murmur3 network QuickCheck
+         safe scientific secp256k1-haskell split string-conversions text
+         time transformers unordered-containers vector
        ];
        testToolDepends = [ hspec-discover ];
        description = "Bitcoin & Bitcoin Cash library for Haskell";
@@ -138889,38 +139736,6 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-node";
-       version = "0.18.1";
-       sha256 = "1sfrcckq345i2m7p1p39l72c83aga8z27jgk996nch1zamj5kx6d";
-       libraryHaskellDepends = [
-         base bytestring cereal conduit conduit-extra containers
-         data-default hashable haskoin-core monad-logger mtl network nqe
-         random resourcet rocksdb-haskell-jprupp rocksdb-query
-         string-conversions text time transformers unliftio
-         unordered-containers
-       ];
-       testHaskellDepends = [
-         base base64 bytestring cereal conduit conduit-extra containers
-         data-default hashable haskoin-core hspec HUnit monad-logger mtl
-         network nqe random resourcet rocksdb-haskell-jprupp rocksdb-query
-         safe string-conversions text time transformers unliftio
-         unordered-containers
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "P2P library for Bitcoin and Bitcoin Cash";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
-  "haskoin-node_1_0_1" = callPackage
-    ({ mkDerivation, base, base64, bytestring, cereal, conduit
-     , conduit-extra, containers, data-default, hashable, haskoin-core
-     , hspec, hspec-discover, HUnit, monad-logger, mtl, network, nqe
-     , random, resourcet, rocksdb-haskell-jprupp, rocksdb-query, safe
-     , string-conversions, text, time, transformers, unliftio
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "haskoin-node";
        version = "1.0.1";
        sha256 = "162lbwqbivcz1fqhfn7g265qinfnai270x6fsk7xp9zysqib2jc4";
        libraryHaskellDepends = [
@@ -139004,8 +139819,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "1.2.3";
-       sha256 = "0v4v1fzhwnv7srpkcjfwvnm94yllsikisbvf721y8x0sixc1wgpz";
+       version = "1.2.5";
+       sha256 = "0ngd6v5f839ic0vhnxk5355r521324j67s735iyf69sw89fp2g5n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -139048,30 +139863,30 @@ self: {
      , containers, data-default, deepseq, hashable, haskoin-core, hspec
      , hspec-discover, http-client, http-types, lens, mtl, network
      , QuickCheck, scotty, string-conversions, text, time
-     , unordered-containers, wreq
+     , unordered-containers, vector, wreq
      }:
      mkDerivation {
        pname = "haskoin-store-data";
-       version = "0.65.5";
-       sha256 = "121vyncj8f2hwxd1j96d134c6fdr4lf3pqdrrj5n3gjb0rj61vn8";
+       version = "1.2.2";
+       sha256 = "0zqyj4dq0j2f0bn4qwvrar1b6jvcaqni296lhigpwy0h0jv8080f";
        libraryHaskellDepends = [
          aeson base binary bytes bytestring cereal containers data-default
          deepseq hashable haskoin-core http-client http-types lens mtl
          network scotty string-conversions text time unordered-containers
-         wreq
+         vector wreq
        ];
        testHaskellDepends = [
          aeson base binary bytes bytestring cereal containers data-default
          deepseq hashable haskoin-core hspec http-client http-types lens mtl
          network QuickCheck scotty string-conversions text time
-         unordered-containers wreq
+         unordered-containers vector wreq
        ];
        testToolDepends = [ hspec-discover ];
        description = "Data for Haskoin Store";
        license = lib.licenses.mit;
      }) {};
 
-  "haskoin-store-data_1_2_2" = callPackage
+  "haskoin-store-data_1_2_5" = callPackage
     ({ mkDerivation, aeson, base, binary, bytes, bytestring, cereal
      , containers, data-default, deepseq, hashable, haskoin-core, hspec
      , hspec-discover, http-client, http-types, lens, mtl, network
@@ -139080,8 +139895,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store-data";
-       version = "1.2.2";
-       sha256 = "0zqyj4dq0j2f0bn4qwvrar1b6jvcaqni296lhigpwy0h0jv8080f";
+       version = "1.2.5";
+       sha256 = "1nmbxnhrkz6z6fp5b07x3qmdnzb6m17z2n6nlh4hh549d3hd8slm";
        libraryHaskellDepends = [
          aeson base binary bytes bytestring cereal containers data-default
          deepseq hashable haskoin-core http-client http-types lens mtl
@@ -139355,35 +140170,6 @@ self: {
      }:
      mkDerivation {
        pname = "hasktags";
-       version = "0.72.0";
-       sha256 = "09p79w16fgpqi6bwq162769xdrnyb7wnmz56k00nz6dj1a0bbbdd";
-       revision = "3";
-       editedCabalFile = "0jb7pzfihdwyn9kbby6bb8ddh7v3x85ca9rr8ldsjn34acyal3hs";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base bytestring directory filepath json microlens-platform
-         utf8-string
-       ];
-       executableHaskellDepends = [
-         base containers directory filepath optparse-applicative
-       ];
-       testHaskellDepends = [
-         base bytestring directory filepath HUnit json microlens-platform
-         utf8-string
-       ];
-       description = "Produces ctags \"tags\" and etags \"TAGS\" files for Haskell programs";
-       license = lib.licenses.bsd3;
-       mainProgram = "hasktags";
-     }) {};
-
-  "hasktags_0_73_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, directory, filepath
-     , HUnit, json, microlens-platform, optparse-applicative
-     , utf8-string
-     }:
-     mkDerivation {
-       pname = "hasktags";
        version = "0.73.0";
        sha256 = "0w0g50ggdmkpxgwqdwdbizw3cz8q86l1xwhvj3bjczh72q5xa0nh";
        revision = "2";
@@ -139403,7 +140189,6 @@ self: {
        ];
        description = "Produces ctags \"tags\" and etags \"TAGS\" files for Haskell programs";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "hasktags";
      }) {};
 
@@ -139797,15 +140582,15 @@ self: {
   "haskus-utils-variant" = callPackage
     ({ mkDerivation, base, criterion, deepseq, doctest, exceptions
      , haskus-utils-data, haskus-utils-types, mtl, QuickCheck, tasty
-     , tasty-quickcheck, template-haskell, transformers
+     , tasty-quickcheck, template-haskell, transformers, unliftio-core
      }:
      mkDerivation {
        pname = "haskus-utils-variant";
-       version = "3.3";
-       sha256 = "16z1w07gd3bf7c4566yv21szss08wmjgy7v4i2000nnr1xj6k28a";
+       version = "3.4";
+       sha256 = "067qzg7ya08vzhf2553ks0cyrvc874dyl1n5fbasi2lrilmzwksx";
        libraryHaskellDepends = [
          base deepseq exceptions haskus-utils-data haskus-utils-types mtl
-         template-haskell transformers
+         template-haskell transformers unliftio-core
        ];
        testHaskellDepends = [
          base doctest haskus-utils-data haskus-utils-types tasty
@@ -139987,7 +140772,7 @@ self: {
   "hasql" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring
      , bytestring-strict-builder, contravariant, contravariant-extras
-     , dlist, gauge, hashable, hashtables, mtl, network-ip
+     , criterion, dlist, hashable, hashtables, mtl, network-ip
      , postgresql-binary, postgresql-libpq, profunctors
      , quickcheck-instances, rerebase, scientific, tasty, tasty-hunit
      , tasty-quickcheck, text, text-builder, time, transformers, uuid
@@ -139995,8 +140780,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql";
-       version = "1.6.3.4";
-       sha256 = "1rpyfvy7fzkvviypwf03cfvxgr52ivwym9vsjr10cbqzgnrqb24l";
+       version = "1.6.4.1";
+       sha256 = "1qdgwwx6pm8r2mq30nagnap01aqdn5rr4p2jizbkz85nfrf46jxc";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring bytestring-strict-builder
          contravariant dlist hashable hashtables mtl network-ip
@@ -140007,7 +140792,7 @@ self: {
          contravariant-extras quickcheck-instances rerebase tasty
          tasty-hunit tasty-quickcheck
        ];
-       benchmarkHaskellDepends = [ gauge rerebase ];
+       benchmarkHaskellDepends = [ criterion rerebase ];
        description = "An efficient PostgreSQL driver with a flexible mapping API";
        license = lib.licenses.mit;
      }) {};
@@ -140103,8 +140888,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-dynamic-statements";
-       version = "0.3.1.2";
-       sha256 = "165s21mw1j38xpzrqpg5nbgfa3gc9qw88b80d8cfdxdiyghn79hq";
+       version = "0.3.1.4";
+       sha256 = "06xpp8w35saf1krv4hxzln9xw23qpqb48f14qmhbanpcni2bqi8x";
        libraryHaskellDepends = [
          base bytestring containers hasql hasql-implicits ptr
        ];
@@ -140116,6 +140901,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hasql-effectful" = callPackage
+    ({ mkDerivation, base, bytestring, effectful, hasql, hasql-pool
+     , hasql-transaction, text
+     }:
+     mkDerivation {
+       pname = "hasql-effectful";
+       version = "0.1.0.0";
+       sha256 = "09cv6iq4afrrh69xp79c98hw8kzky8v2dngz379s04s1a06cj6i6";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base effectful hasql hasql-pool ];
+       executableHaskellDepends = [
+         base bytestring effectful hasql hasql-pool hasql-transaction text
+       ];
+       testHaskellDepends = [ base ];
+       description = "Effectful bindings for hasql";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "hasql-effectful-example";
+       broken = true;
+     }) {};
+
   "hasql-explain-tests" = callPackage
     ({ mkDerivation, base, bytestring, hasql, hspec, profunctors
      , QuickCheck, tasty, tasty-hunit, tmp-postgres
@@ -140160,8 +140967,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-implicits";
-       version = "0.1.1";
-       sha256 = "1q9m227q56ykfbg9rza1p22hkiqss139h43nxvl8dq0cmxw3d0mf";
+       version = "0.1.1.2";
+       sha256 = "0vdis92v2riw7bnxgpaif05rb3gkikpavs7w10rayzcf3sx3r6pp";
        libraryHaskellDepends = [
          aeson base bytestring containers hasql network-ip scientific text
          time uuid vector
@@ -140178,30 +140985,6 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-interpolate";
-       version = "0.1.0.4";
-       sha256 = "1b3q21m25wxjxrprfr24b2ay94yjjaqs0p2x6s1d9cqagmznh9v0";
-       revision = "2";
-       editedCabalFile = "1iz6mr5pnfysbflcbrxlk1h4cw9ipw8k3jplyhw41lip1yvblnjy";
-       libraryHaskellDepends = [
-         aeson array base bytestring containers haskell-src-meta hasql
-         megaparsec mtl scientific template-haskell text time transformers
-         uuid vector
-       ];
-       testHaskellDepends = [
-         base hasql tasty tasty-hunit template-haskell text tmp-postgres
-       ];
-       description = "QuasiQuoter that supports expression interpolation for hasql";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "hasql-interpolate_0_2_1_0" = callPackage
-    ({ mkDerivation, aeson, array, base, bytestring, containers
-     , haskell-src-meta, hasql, megaparsec, mtl, scientific, tasty
-     , tasty-hunit, template-haskell, text, time, tmp-postgres
-     , transformers, uuid, vector
-     }:
-     mkDerivation {
-       pname = "hasql-interpolate";
        version = "0.2.1.0";
        sha256 = "1gmi552pkjbsxxqjprnq6696xqzh1swcib73p6892q65irgnhd5x";
        revision = "1";
@@ -140216,7 +140999,6 @@ self: {
        ];
        description = "QuasiQuoter that supports expression interpolation for hasql";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hasql-listen-notify" = callPackage
@@ -140225,10 +141007,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-listen-notify";
-       version = "0.1.0";
-       sha256 = "0bq4s4x76spjziqgda0shdzfwdhgz1fhsbdg63r3l0m01ixg1a50";
-       revision = "2";
-       editedCabalFile = "0h0dk2wkgxmwbkz1hhpyhi7q7m3lz9l5n9kdvxmibsx811qmizhh";
+       version = "0.1.0.1";
+       sha256 = "00pcbps2hdjd3i1xxsfgai81hgzc24cpj8n1iqg4xf7pd2c6cps4";
        libraryHaskellDepends = [
          base bytestring hasql mtl postgresql-libpq text
        ];
@@ -140282,31 +141062,14 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-optparse-applicative";
-       version = "0.7";
-       sha256 = "0kngkykspy20by86psdjf40m4lm7v1bs5f5w1lqn98dmlnvpqxd9";
-       libraryHaskellDepends = [
-         attoparsec attoparsec-time base hasql hasql-pool
-         optparse-applicative
-       ];
-       description = "\"optparse-applicative\" parsers for \"hasql\"";
-       license = lib.licenses.mit;
-     }) {};
-
-  "hasql-optparse-applicative_0_7_1_1" = callPackage
-    ({ mkDerivation, attoparsec, attoparsec-time, base, hasql
-     , hasql-pool, optparse-applicative
-     }:
-     mkDerivation {
-       pname = "hasql-optparse-applicative";
-       version = "0.7.1.1";
-       sha256 = "1xm86m1sldjxxhkgg18whgcrgjh7ksczn2aim2l70dgh34ij3073";
+       version = "0.7.1.3";
+       sha256 = "1jnsrx5hahjph9izgzsz2s2882bvyr17y7hf562wd5yny2y9p20h";
        libraryHaskellDepends = [
          attoparsec attoparsec-time base hasql hasql-pool
          optparse-applicative
        ];
        description = "\"optparse-applicative\" parsers for \"hasql\"";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hasql-pipes" = callPackage
@@ -140330,27 +141093,12 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-pool";
-       version = "0.9.0.1";
-       sha256 = "00p06yjyasdcv9f7wn29c9il08drcym65k0xnh7kzyma871wv7yq";
-       libraryHaskellDepends = [ base hasql stm time ];
-       testHaskellDepends = [ async hasql hspec random rerebase ];
-       description = "Pool of connections for Hasql";
-       license = lib.licenses.mit;
-     }) {};
-
-  "hasql-pool_0_10_0_1" = callPackage
-    ({ mkDerivation, async, base, hasql, hspec, random, rerebase, stm
-     , time
-     }:
-     mkDerivation {
-       pname = "hasql-pool";
        version = "0.10.0.1";
        sha256 = "03sdmna7hjspskza8gld4iys4pdzj968fzl8q7qs9a3wjqcnbqwy";
        libraryHaskellDepends = [ base hasql stm time ];
        testHaskellDepends = [ async hasql hspec random rerebase ];
        description = "Pool of connections for Hasql";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hasql-postgres" = callPackage
@@ -140436,6 +141184,7 @@ self: {
        ];
        description = "A PostgreSQL backed queue";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hasql-resource-pool" = callPackage
@@ -140605,8 +141354,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-transaction";
-       version = "1.0.1.2";
-       sha256 = "0wqvxjrjgrmnbbassayyixa4sa5qw5iwwcrh5yz65dw20qf7m9rs";
+       version = "1.0.1.4";
+       sha256 = "1pamzw98jhbxwbdfj9z19livgh8g3y4p3h83hzqg6hgv5j2i8g74";
        libraryHaskellDepends = [
          base bytestring bytestring-tree-builder contravariant
          contravariant-extras hasql mtl transformers
@@ -140641,8 +141390,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-url";
-       version = "0.2.0.0";
-       sha256 = "1f8vc7s031f33rkbzlmqac3h1g6aynj9z03x4lx19526q2d2r7ns";
+       version = "0.3.0.0";
+       sha256 = "186rq0yzjxwlk9c885p0539flb7lmkbzifilp33mmkl7mnf3ji7a";
        libraryHaskellDepends = [
          base bytestring hasql network-uri split
        ];
@@ -141926,22 +142675,22 @@ self: {
      }) {};
 
   "hcount" = callPackage
-    ({ mkDerivation, attoparsec, base, containers, ghc, lens, numhask
-     , optparse-applicative, stan, text
+    ({ mkDerivation, base, bytestring, containers, dir-traverse
+     , directory, filepath, flatparse, ghc, numhask, optics-core
+     , optparse-applicative, process, string-interpolate
      }:
      mkDerivation {
        pname = "hcount";
-       version = "0.0.1";
-       sha256 = "0lz400p757kcnfkdwr3qrv07hlshv5rlsm3zfrf6zfhg4nayb93p";
-       revision = "1";
-       editedCabalFile = "0gvwrrhd1hhk242h686chlsww3cmxh5vy7296k5g6p6sb03ir4p5";
+       version = "0.0.2";
+       sha256 = "08938svkif0qiig953yqqw4f6gn07qpvby7038w7j4zjxzvkqkik";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         attoparsec base containers ghc lens numhask optparse-applicative
-         stan text
+         base bytestring containers dir-traverse directory filepath
+         flatparse ghc numhask optics-core optparse-applicative process
+         string-interpolate
        ];
-       description = "Haskell name counts";
+       description = "Haskell artifact name counts";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "hcount";
@@ -142953,34 +143702,6 @@ self: {
     ({ mkDerivation, ansi-terminal, async, barbies, base, bytestring
      , concurrent-output, containers, deepseq, directory, erf
      , exceptions, lifted-async, mmorph, monad-control, mtl, pretty-show
-     , primitive, random, resourcet, stm, template-haskell, text, time
-     , transformers, transformers-base, wl-pprint-annotated
-     }:
-     mkDerivation {
-       pname = "hedgehog";
-       version = "1.2";
-       sha256 = "0zlfmzzancsglzqmdr40kdfk3ih7anssfkb196r0n9b5lvdcfn98";
-       revision = "1";
-       editedCabalFile = "1am5x5y2zzfii2zk6w8kbw6rv8c4y272vsl5213f99ypvbqv086b";
-       libraryHaskellDepends = [
-         ansi-terminal async barbies base bytestring concurrent-output
-         containers deepseq directory erf exceptions lifted-async mmorph
-         monad-control mtl pretty-show primitive random resourcet stm
-         template-haskell text time transformers transformers-base
-         wl-pprint-annotated
-       ];
-       testHaskellDepends = [
-         base containers mmorph mtl pretty-show text transformers
-       ];
-       description = "Release with confidence";
-       license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.maralorn ];
-     }) {};
-
-  "hedgehog_1_4" = callPackage
-    ({ mkDerivation, ansi-terminal, async, barbies, base, bytestring
-     , concurrent-output, containers, deepseq, directory, erf
-     , exceptions, lifted-async, mmorph, monad-control, mtl, pretty-show
      , primitive, random, resourcet, safe-exceptions, stm
      , template-haskell, text, time, transformers, transformers-base
      , wl-pprint-annotated
@@ -142989,8 +143710,8 @@ self: {
        pname = "hedgehog";
        version = "1.4";
        sha256 = "1sz685n2ljriqwfpfy57adbsc6gyrd4x7jmy628803rfalqznjpm";
-       revision = "1";
-       editedCabalFile = "1gk52hz1ssib7cbam7nk8nws9322rsgkn7ym45dgwjbvqbz3wqs7";
+       revision = "3";
+       editedCabalFile = "18jig0zi5cj3hlx4pxmf0g9hbn531c8b828agw45n9gn0dzaz5ci";
        libraryHaskellDepends = [
          ansi-terminal async barbies base bytestring concurrent-output
          containers deepseq directory erf exceptions lifted-async mmorph
@@ -143003,7 +143724,6 @@ self: {
        ];
        description = "Release with confidence";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
@@ -143072,20 +143792,20 @@ self: {
   "hedgehog-extras" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, async, base, bytestring
      , deepseq, Diff, directory, exceptions, filepath, hedgehog
-     , http-conduit, mmorph, mtl, network, process, resourcet, stm, tar
-     , temporary, text, time, transformers, unliftio, yaml, zlib
+     , http-conduit, lifted-async, lifted-base, mmorph, monad-control
+     , mtl, network, process, resourcet, stm, tar, temporary, text, time
+     , transformers, transformers-base, unliftio, yaml, zlib
      }:
      mkDerivation {
        pname = "hedgehog-extras";
-       version = "0.5.0.0";
-       sha256 = "07i2pgmrpnffip5ng3fszhc8xlcvmzl02myw2m66kj3hmp5pps03";
-       revision = "1";
-       editedCabalFile = "1dqw5wfl83gs43b7wnqzys1izrr5nqg5k8cj28ppl4qylhvqdar0";
+       version = "0.6.0.2";
+       sha256 = "04jsywjx9sji11rpn9vp0k689d7r84g288khwmngvkdfnf0vyjka";
        libraryHaskellDepends = [
          aeson aeson-pretty async base bytestring deepseq Diff directory
-         exceptions filepath hedgehog http-conduit mmorph mtl network
-         process resourcet stm tar temporary text time transformers unliftio
-         yaml zlib
+         exceptions filepath hedgehog http-conduit lifted-async lifted-base
+         mmorph monad-control mtl network process resourcet stm tar
+         temporary text time transformers transformers-base unliftio yaml
+         zlib
        ];
        description = "Supplemental library for hedgehog";
        license = lib.licenses.asl20;
@@ -143103,6 +143823,8 @@ self: {
        testHaskellDepends = [ base containers fakedata hedgehog ];
        description = "Use 'fakedata' with 'hedgehog'";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hedgehog-fn" = callPackage
@@ -143216,6 +143938,8 @@ self: {
        libraryHaskellDepends = [ base hedgehog optics-core ];
        description = "Hedgehog properties for optics laws";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hedgehog-quickcheck" = callPackage
@@ -143322,6 +144046,8 @@ self: {
        ];
        description = "A la MonadReader for Redis connection";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hedis-namespace" = callPackage
@@ -143405,8 +144131,8 @@ self: {
        pname = "hedn";
        version = "0.3.0.4";
        sha256 = "06js9mcif99k8bfyrsynlg1w5rjygydk5l0qhlrk6pa5v288a7wv";
-       revision = "1";
-       editedCabalFile = "13cmpyx7givc5ay43slf2ss4dqgnhb91nvyxp4201zznl5w570nh";
+       revision = "2";
+       editedCabalFile = "1ws1l3nkjqlkiy0l1kj4gw8hfz6sqi070i6k8828x4364126njd9";
        libraryHaskellDepends = [
          base containers deepseq deriving-compat megaparsec
          parser-combinators prettyprinter scientific template-haskell text
@@ -143608,8 +144334,6 @@ self: {
        ];
        description = "An Haskell template system supporting both HTML5 and XML";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "heist-aeson" = callPackage
@@ -143641,6 +144365,7 @@ self: {
        description = "Adding support for asynchronous updates (\"AJAX\") with heist";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "heist-emanote" = callPackage
@@ -143700,7 +144425,6 @@ self: {
        ];
        description = "Extra heist functionality";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "helf" = callPackage
@@ -144167,25 +144891,26 @@ self: {
 
   "hercules-ci-agent" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, base64-bytestring
-     , binary, binary-conduit, boost, bytestring, Cabal
+     , bifunctors, binary, binary-conduit, boost, bytestring, Cabal
      , cabal-pkg-config-version-hook, cachix, cachix-api, conduit
      , conduit-extra, containers, directory, dlist, exceptions, filepath
      , hercules-ci-api, hercules-ci-api-agent, hercules-ci-api-core
      , hercules-ci-cnix-expr, hercules-ci-cnix-store, hostname, hspec
-     , hspec-discover, http-client, http-client-tls, http-conduit
+     , hspec-discover, http-client, http-client-tls, http-conduit, HUnit
      , inline-c, inline-c-cpp, katip, lens, lens-aeson, lifted-async
      , lifted-base, monad-control, mtl, network, network-uri, nix
-     , optparse-applicative, process, process-extras, protolude
-     , safe-exceptions, scientific, servant, servant-auth-client
-     , servant-client, servant-client-core, stm, tagged, temporary, text
-     , time, tomland, transformers, transformers-base, unbounded-delays
-     , unix, unliftio, unliftio-core, unordered-containers, uuid, vector
-     , websockets, wuss
+     , optparse-applicative, process, process-extras, profunctors
+     , protolude, QuickCheck, safe-exceptions, scientific, servant
+     , servant-auth-client, servant-client, servant-client-core, stm
+     , tagged, temporary, text, time, tls, tomland, transformers
+     , transformers-base, unbounded-delays, unix, unliftio
+     , unliftio-core, unordered-containers, uuid, vector, websockets
+     , wuss
      }:
      mkDerivation {
        pname = "hercules-ci-agent";
-       version = "0.9.12";
-       sha256 = "0fs5ycnig0s7wwrshpx2fhi7iib59bnnddsjvb5s06y9gvla6xq0";
+       version = "0.10.1";
+       sha256 = "1mclrxy2cxa2qcswk95klpp45n59ngw0sdwqgl9r7i2hwsg1nzm8";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -144197,18 +144922,18 @@ self: {
          hercules-ci-cnix-store katip lens lens-aeson lifted-async
          lifted-base monad-control mtl network network-uri process
          process-extras protolude safe-exceptions stm tagged temporary text
-         time transformers transformers-base unbounded-delays unix unliftio
-         unliftio-core uuid websockets wuss
+         time tls transformers transformers-base unbounded-delays unix
+         unliftio unliftio-core uuid vector websockets wuss
        ];
        executableHaskellDepends = [
-         aeson async attoparsec base base64-bytestring binary binary-conduit
-         bytestring cachix cachix-api conduit conduit-extra containers
-         directory dlist exceptions filepath hercules-ci-api
+         aeson async attoparsec base base64-bytestring bifunctors binary
+         binary-conduit bytestring cachix cachix-api conduit conduit-extra
+         containers directory dlist exceptions filepath hercules-ci-api
          hercules-ci-api-agent hercules-ci-api-core hercules-ci-cnix-expr
          hercules-ci-cnix-store hostname http-client http-client-tls
          http-conduit inline-c inline-c-cpp katip lens lens-aeson
          lifted-async lifted-base monad-control mtl network network-uri
-         optparse-applicative process process-extras protolude
+         optparse-applicative process process-extras profunctors protolude
          safe-exceptions scientific servant servant-auth-client
          servant-client servant-client-core stm temporary text time tomland
          transformers transformers-base unix unliftio unliftio-core
@@ -144217,12 +144942,14 @@ self: {
        executableSystemDepends = [ boost ];
        executablePkgconfigDepends = [ nix ];
        testHaskellDepends = [
-         aeson async attoparsec base binary binary-conduit bytestring
-         conduit containers exceptions filepath hercules-ci-api-agent
-         hercules-ci-api-core hercules-ci-cnix-store hspec katip
-         lifted-async lifted-base monad-control mtl process protolude
-         safe-exceptions stm tagged temporary text transformers-base
-         unliftio-core vector
+         aeson async attoparsec base bifunctors binary binary-conduit
+         bytestring conduit containers exceptions filepath
+         hercules-ci-api-agent hercules-ci-api-core hercules-ci-cnix-store
+         hspec HUnit katip lens lens-aeson lifted-async lifted-base
+         monad-control mtl process profunctors protolude QuickCheck
+         safe-exceptions scientific stm tagged temporary text tomland
+         transformers transformers-base unliftio-core unordered-containers
+         uuid vector
        ];
        testToolDepends = [ hspec-discover ];
        description = "Runs Continuous Integration tasks on your machines";
@@ -144233,29 +144960,31 @@ self: {
   "hercules-ci-api" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, cookie
      , exceptions, hashable, hercules-ci-api-core, hspec, http-api-data
-     , http-media, lens, lens-aeson, memory, network-uri, profunctors
-     , protolude, QuickCheck, quickcheck-classes, servant, servant-auth
-     , servant-auth-swagger, servant-swagger, servant-swagger-ui-core
-     , string-conv, swagger2, text, time, uuid, vector
+     , http-media, lens, lens-aeson, memory, network-uri, openapi3
+     , profunctors, protolude, QuickCheck, quickcheck-classes, servant
+     , servant-auth, servant-auth-swagger, servant-openapi3
+     , servant-swagger, servant-swagger-ui-core, string-conv, swagger2
+     , text, time, uuid, vector
      }:
      mkDerivation {
        pname = "hercules-ci-api";
-       version = "0.8.1.0";
-       sha256 = "13zvw78mwx78sv858hz4bw65dck0v2kxwqv6skpfgzbyvg4h5f6i";
+       version = "0.8.2.0";
+       sha256 = "0mnjhz0jg9rzgdp5pp0i4gfi5il995a5dv8sw58h4kb15kww1rfp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base bytestring containers cookie exceptions hashable
          hercules-ci-api-core http-api-data http-media lens lens-aeson
-         memory network-uri profunctors servant servant-auth
-         servant-auth-swagger servant-swagger servant-swagger-ui-core
-         string-conv swagger2 text time uuid
+         memory network-uri openapi3 profunctors servant servant-auth
+         servant-auth-swagger servant-openapi3 servant-swagger
+         servant-swagger-ui-core string-conv swagger2 text time uuid
        ];
        executableHaskellDepends = [
          aeson base bytestring containers cookie exceptions hashable
-         http-api-data http-media lens memory network-uri profunctors
-         servant servant-auth servant-auth-swagger servant-swagger
-         servant-swagger-ui-core string-conv swagger2 text time uuid
+         http-api-data http-media lens memory network-uri openapi3
+         profunctors servant servant-auth servant-auth-swagger
+         servant-openapi3 servant-swagger servant-swagger-ui-core
+         string-conv swagger2 text time uuid
        ];
        testHaskellDepends = [
          aeson base bytestring containers exceptions hashable
@@ -144279,8 +145008,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-api-agent";
-       version = "0.5.0.1";
-       sha256 = "0d9cmf1amy4hdzlkmwaqyp469fmgh09a5090143sar9ss309r0sg";
+       version = "0.5.1.0";
+       sha256 = "1rjyavqsj2y7clq39v1f508l0wn9wg07sy2ijacf62abhaiyb62d";
        libraryHaskellDepends = [
          aeson base base64-bytestring-type bytestring containers cookie
          deepseq exceptions hashable hercules-ci-api-core http-api-data
@@ -144301,20 +145030,21 @@ self: {
   "hercules-ci-api-core" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, cookie
      , deepseq, exceptions, hashable, http-api-data, http-media, katip
-     , lens, lifted-base, memory, monad-control, safe-exceptions
-     , servant, servant-auth, servant-auth-swagger, servant-swagger
-     , servant-swagger-ui-core, string-conv, swagger2, text, time, uuid
+     , lens, lifted-base, memory, monad-control, openapi3
+     , safe-exceptions, servant, servant-auth, servant-auth-swagger
+     , servant-openapi3, servant-swagger, servant-swagger-ui-core
+     , string-conv, swagger2, text, time, uuid
      }:
      mkDerivation {
        pname = "hercules-ci-api-core";
-       version = "0.1.5.1";
-       sha256 = "0mlas84ndkp9269qapzfqcc86mcr0nw5vfpc2l0a6ymk1z05nrq4";
+       version = "0.1.6.0";
+       sha256 = "14qxg92j7pq0v0qd2rva8gk11dazwnll88flhgjkv69349ww01q7";
        libraryHaskellDepends = [
          aeson base bytestring containers cookie deepseq exceptions hashable
          http-api-data http-media katip lens lifted-base memory
-         monad-control safe-exceptions servant servant-auth
-         servant-auth-swagger servant-swagger servant-swagger-ui-core
-         string-conv swagger2 text time uuid
+         monad-control openapi3 safe-exceptions servant servant-auth
+         servant-auth-swagger servant-openapi3 servant-swagger
+         servant-swagger-ui-core string-conv swagger2 text time uuid
        ];
        description = "Types and convenience modules use across Hercules CI API packages";
        license = lib.licenses.asl20;
@@ -144332,13 +145062,14 @@ self: {
      , lens-aeson, lifted-base, monad-control, network-uri, process
      , protolude, QuickCheck, retry, rio, safe-exceptions, servant
      , servant-auth-client, servant-client, servant-client-core
-     , servant-conduit, temporary, text, transformers, transformers-base
-     , unix, unliftio, unliftio-core, unordered-containers, uuid
+     , servant-conduit, temporary, text, tls, transformers
+     , transformers-base, unix, unliftio, unliftio-core
+     , unordered-containers, uuid
      }:
      mkDerivation {
        pname = "hercules-ci-cli";
-       version = "0.3.6";
-       sha256 = "1wsgjj7asq6a0p8aja6mqcjy1qxpbwbii65fw9w6ilmmacpfh6yy";
+       version = "0.3.7";
+       sha256 = "1h4y8jkviiahshvky20jdda8sfmlbzpkpx313ddg9bvfqafps2mz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -144350,7 +145081,7 @@ self: {
          http-client-tls http-types inline-c-cpp katip lens lens-aeson
          lifted-base monad-control network-uri process protolude retry rio
          safe-exceptions servant servant-auth-client servant-client
-         servant-client-core servant-conduit temporary text transformers
+         servant-client-core servant-conduit temporary text tls transformers
          transformers-base unix unliftio unliftio-core unordered-containers
          uuid
        ];
@@ -144377,8 +145108,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-cnix-expr";
-       version = "0.3.6.0";
-       sha256 = "15lyhj26zr9r3nqn3d7gwn4rppix8g4lanxs52wliq7jxxaga28i";
+       version = "0.3.6.1";
+       sha256 = "19bawyynxb19gr9ndy3a0f88d62ivxqk316qavrbxam7azdf0rzr";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal cabal-pkg-config-version-hook ];
        libraryHaskellDepends = [
@@ -144407,8 +145138,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-cnix-store";
-       version = "0.3.4.0";
-       sha256 = "0f8vav9jj4251ym2xyj7wna3wc6dgsqdlpm7byhjdnwzqkw0pxw4";
+       version = "0.3.5.0";
+       sha256 = "103jgh27lxh81iszn9a7268s0lmiadxgdh5df6zj2ldb2hak2nir";
        setupHaskellDepends = [ base Cabal cabal-pkg-config-version-hook ];
        libraryHaskellDepends = [
          base bytestring conduit containers inline-c inline-c-cpp protolude
@@ -144826,25 +145557,6 @@ self: {
      }) {inherit (pkgs) ncurses;};
 
   "hetzner" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, conduit, containers
-     , country, http-conduit, ip, megaparsec, scientific, text, time
-     , yaml
-     }:
-     mkDerivation {
-       pname = "hetzner";
-       version = "0.2.1.1";
-       sha256 = "1h02iwrxnb1apqkbac210laxdr5cq2gw12pjjs9w9pnk44r8scgs";
-       libraryHaskellDepends = [
-         aeson base bytestring conduit containers country http-conduit ip
-         megaparsec scientific text time yaml
-       ];
-       testHaskellDepends = [ base ];
-       description = "Hetzner Cloud and DNS library";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
-  "hetzner_0_6_0_0" = callPackage
     ({ mkDerivation, aeson, base, blaze-html, bytestring, conduit
      , containers, country, directory, http-conduit, ip, megaparsec
      , scientific, text, time, yaml
@@ -144865,7 +145577,6 @@ self: {
        testHaskellDepends = [ base ];
        description = "Hetzner Cloud and DNS library";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "hetzner-docs";
      }) {};
 
@@ -144942,6 +145653,7 @@ self: {
        doHaddock = false;
        description = "Symbolic EVM Evaluator";
        license = lib.licenses.agpl3Only;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hevm";
        maintainers = [ lib.maintainers.arturcygan ];
      }) {inherit (pkgs) gmp; inherit (pkgs) libff; 
@@ -145003,6 +145715,8 @@ self: {
        pname = "hex-text";
        version = "0.1.0.9";
        sha256 = "1dzv1jpjga4nsrxbwrh5nhnzv5f0mnl5i8da0blqc73vavsjhny5";
+       revision = "1";
+       editedCabalFile = "1r6lh44n7x6s1fk7nlqzychspi3647wsd0avraxlzqs32xslxgq1";
        libraryHaskellDepends = [ base base16-bytestring bytestring text ];
        testHaskellDepends = [
          base base16-bytestring bytestring hspec text
@@ -145362,6 +146076,8 @@ self: {
        ];
        description = "Streaming-friendly XML parsers";
        license = lib.licenses.cc0;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "heyefi" = callPackage
@@ -146410,40 +147126,6 @@ self: {
      }:
      mkDerivation {
        pname = "hie-bios";
-       version = "0.12.1";
-       sha256 = "0iw97mkgg7nwl3dr04r3z3yxynz64agf67xasb1s7kk4gwss1f85";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base base16-bytestring bytestring co-log-core conduit
-         conduit-extra cryptohash-sha1 deepseq directory exceptions extra
-         file-embed filepath ghc prettyprinter template-haskell temporary
-         text time transformers unix-compat unordered-containers yaml
-       ];
-       executableHaskellDepends = [
-         base co-log-core directory filepath optparse-applicative
-         prettyprinter
-       ];
-       testHaskellDepends = [
-         aeson base co-log-core directory extra filepath ghc prettyprinter
-         tasty tasty-expected-failure tasty-hunit temporary transformers
-         yaml
-       ];
-       description = "Set up a GHC API session";
-       license = lib.licenses.bsd3;
-       mainProgram = "hie-bios";
-     }) {};
-
-  "hie-bios_0_13_1" = callPackage
-    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
-     , co-log-core, conduit, conduit-extra, cryptohash-sha1, deepseq
-     , directory, exceptions, extra, file-embed, filepath, ghc
-     , optparse-applicative, prettyprinter, tasty
-     , tasty-expected-failure, tasty-hunit, template-haskell, temporary
-     , text, time, transformers, unix-compat, unordered-containers, yaml
-     }:
-     mkDerivation {
-       pname = "hie-bios";
        version = "0.13.1";
        sha256 = "1qzri41yk88x6nnizjanh0w9inbm2sq93g197il95kb74bcslf9l";
        isLibrary = true;
@@ -146465,7 +147147,6 @@ self: {
        ];
        description = "Set up a GHC API session";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "hie-bios";
      }) {};
 
@@ -146531,8 +147212,8 @@ self: {
      }:
      mkDerivation {
        pname = "hiedb";
-       version = "0.4.4.0";
-       sha256 = "0pbcm00zcd33y7w5n7qp8r9r8j8jf2vdhx3l1mll1d4jfimhrsd6";
+       version = "0.5.0.1";
+       sha256 = "17a9yg0zdfnz480i5aprxmsryz88n8nr8566x6x8p5x1hclizd0m";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -146749,6 +147430,8 @@ self: {
        testToolDepends = [ markdown-unlit ];
        description = "Partial types as a type constructor";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "highWaterMark" = callPackage
@@ -146932,6 +147615,8 @@ self: {
        ];
        description = "source code highlighting";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "highlighter2" = callPackage
@@ -146972,8 +147657,36 @@ self: {
        ];
        description = "Syntax highlighting";
        license = "GPL";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
+  "highs-lp" = callPackage
+    ({ mkDerivation, base, comfort-array, deepseq
+     , doctest-exitcode-stdio, doctest-lib, guarded-allocation, highs
+     , linear-programming, non-empty, QuickCheck, random
+     , storable-record, transformers, utility-ht
+     }:
+     mkDerivation {
+       pname = "highs-lp";
+       version = "0.0";
+       sha256 = "1fx9llq1pfy4ngx99d3i39kkp1pv07wn8qm92abyrmw06qci938r";
+       libraryHaskellDepends = [
+         base comfort-array deepseq guarded-allocation linear-programming
+         non-empty QuickCheck storable-record transformers utility-ht
+       ];
+       libraryPkgconfigDepends = [ highs ];
+       testHaskellDepends = [
+         base comfort-array doctest-exitcode-stdio doctest-lib
+         linear-programming non-empty QuickCheck random transformers
+         utility-ht
+       ];
+       description = "Linear Programming using HiGHS and comfort-array";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) highs;};
+
   "hills" = callPackage
     ({ mkDerivation, array, base, bytestring, directory, filepath
      , optparse-applicative, text, transformers
@@ -147068,50 +147781,6 @@ self: {
     ({ mkDerivation, base, bytestring, Cabal, containers, criterion
      , deepseq, Diff, directory, exceptions, filepath, ghc-lib-parser
      , ghc-lib-parser-ex, hspec, monad-loops, mtl, optparse-applicative
-     , path, path-io, regex-tdfa, split, syb, text, transformers
-     , unicode-show, utf8-string, yaml
-     }:
-     mkDerivation {
-       pname = "hindent";
-       version = "6.0.0";
-       sha256 = "17pkbjb4zqnzv3bnw3zwisf9j2m9lw5irq7i12bgwrzpv15fpabz";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base bytestring Cabal containers deepseq directory exceptions
-         filepath ghc-lib-parser ghc-lib-parser-ex monad-loops mtl path
-         path-io regex-tdfa split syb text transformers unicode-show
-         utf8-string yaml
-       ];
-       executableHaskellDepends = [
-         base bytestring Cabal containers directory exceptions filepath
-         ghc-lib-parser ghc-lib-parser-ex monad-loops mtl
-         optparse-applicative path path-io regex-tdfa split syb text
-         transformers unicode-show utf8-string yaml
-       ];
-       testHaskellDepends = [
-         base bytestring Cabal containers Diff directory exceptions filepath
-         ghc-lib-parser ghc-lib-parser-ex hspec monad-loops mtl path path-io
-         regex-tdfa split syb text transformers unicode-show utf8-string
-         yaml
-       ];
-       benchmarkHaskellDepends = [
-         base bytestring Cabal containers criterion deepseq directory
-         exceptions filepath ghc-lib-parser ghc-lib-parser-ex monad-loops
-         mtl path path-io regex-tdfa split syb text transformers
-         unicode-show utf8-string yaml
-       ];
-       doHaddock = false;
-       description = "Extensible Haskell pretty printer";
-       license = lib.licenses.bsd3;
-       mainProgram = "hindent";
-     }) {};
-
-  "hindent_6_1_1" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, criterion
-     , deepseq, Diff, directory, exceptions, filepath, ghc-lib-parser
-     , ghc-lib-parser-ex, hspec, monad-loops, mtl, optparse-applicative
      , path, path-io, regex-tdfa, split, syb, transformers, unicode-show
      , utf8-string, yaml
      }:
@@ -147149,7 +147818,6 @@ self: {
        doHaddock = false;
        description = "Extensible Haskell pretty printer";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "hindent";
      }) {};
 
@@ -147319,6 +147987,7 @@ self: {
        ];
        description = "Generic project initialization tool";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hi";
        maintainers = [ lib.maintainers.poscat ];
      }) {};
@@ -147369,6 +148038,8 @@ self: {
        description = "Haskell binding to inotify, using ByteString filepaths";
        license = lib.licenses.bsd3;
        badPlatforms = lib.platforms.darwin;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hinotify-conduit" = callPackage
@@ -147391,6 +148062,8 @@ self: {
        ];
        description = "inotify conduit sources";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hinquire" = callPackage
@@ -147571,7 +148244,6 @@ self: {
        ];
        description = "Haskell Image Processing (HIP) Library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hipbot" = callPackage
@@ -147648,7 +148320,9 @@ self: {
        ];
        description = "an IPS patcher";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hips";
+       broken = true;
      }) {};
 
   "hipsql-api" = callPackage
@@ -147695,6 +148369,8 @@ self: {
        sha256 = "1npmz2vgiy2bl4jvscv6447pzq2989a575xmpmwqs4mg4cp0dxg0";
        libraryHaskellDepends = [ base postgresql-libpq ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hipsql-server" = callPackage
@@ -148421,6 +149097,8 @@ self: {
        ];
        description = "A library to build valid LaTeX files";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hlbfgsb" = callPackage
@@ -148501,10 +149179,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger";
-       version = "1.30.1";
-       sha256 = "0ri8zg1pq011cbry5cxj2rc5g19vgl3rjcl5b2qk4bhdgxy7na98";
-       revision = "3";
-       editedCabalFile = "1qsy6axbldm2az2bnxgklnd9hhyhdlrkb395zpgrli9sla2mqdfv";
+       version = "1.32.3";
+       sha256 = "1mkzpaj50zq3w40gynjajlcrilpvmbdyrydnprrxmxfcb5hy2qr9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -148539,56 +149215,6 @@ self: {
        ];
      }) {};
 
-  "hledger_1_32_1" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs
-     , containers, data-default, Decimal, Diff, directory, extra
-     , filepath, githash, hashable, haskeline, hledger-lib, lucid
-     , math-functions, megaparsec, microlens, mtl, process, regex-tdfa
-     , safe, shakespeare, split, tabular, tasty, temporary, terminfo
-     , text, text-ansi, time, timeit, transformers, unordered-containers
-     , utf8-string, utility-ht, wizards
-     }:
-     mkDerivation {
-       pname = "hledger";
-       version = "1.32.1";
-       sha256 = "02himlkcb3imvm7h7d09hqbi0rrlq4cl41sc6gnc20dmd4xps7fc";
-       revision = "1";
-       editedCabalFile = "0kx818p2f3785g0ac102nl4zrhm3xygx4lxj7ndqvrqkqr13zh8f";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson ansi-terminal base bytestring cmdargs containers data-default
-         Decimal Diff directory extra filepath githash hashable haskeline
-         hledger-lib lucid math-functions megaparsec microlens mtl process
-         regex-tdfa safe shakespeare split tabular tasty temporary terminfo
-         text text-ansi time timeit transformers unordered-containers
-         utf8-string utility-ht wizards
-       ];
-       executableHaskellDepends = [
-         aeson ansi-terminal base bytestring cmdargs containers data-default
-         Decimal directory extra filepath githash haskeline hledger-lib
-         math-functions megaparsec microlens mtl process regex-tdfa safe
-         shakespeare split tabular tasty temporary terminfo text text-ansi
-         time timeit transformers unordered-containers utf8-string
-         utility-ht wizards
-       ];
-       testHaskellDepends = [
-         aeson ansi-terminal base bytestring cmdargs containers data-default
-         Decimal directory extra filepath githash haskeline hledger-lib
-         math-functions megaparsec microlens mtl process regex-tdfa safe
-         shakespeare split tabular tasty temporary terminfo text text-ansi
-         time timeit transformers unordered-containers utf8-string
-         utility-ht wizards
-       ];
-       description = "Command-line interface for the hledger accounting system";
-       license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
-       mainProgram = "hledger";
-       maintainers = [
-         lib.maintainers.maralorn lib.maintainers.sternenseemann
-       ];
-     }) {};
-
   "hledger-api" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, data-default
      , Decimal, docopt, either, hledger, hledger-lib, microlens
@@ -148689,10 +149315,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-iadd";
-       version = "1.3.19";
-       sha256 = "12x9qdn0p2sq0z1q1gnxnajkvdlyk25xywq7yi7il1hqdrz1mkmf";
-       revision = "1";
-       editedCabalFile = "1vkjjdmcn0gxgz9fmy1bvn76kf77krrgpvawydc5rvgwyvmmvnsp";
+       version = "1.3.20";
+       sha256 = "0gck4zf5p2kkwn3rrsinn25g6mpgp6n49034la3qz0yzkvw6gknf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -148772,51 +149396,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-lib";
-       version = "1.30";
-       sha256 = "0qyhkx1bhrmnwwxqbqa4pqghg7j2vn63829j5s2zdn8ys2mm8s64";
-       revision = "3";
-       editedCabalFile = "0v1pfx3mzd4zhygadf1hd51v7qfq9zj0q5yh515d1ly6xqgilbv5";
-       libraryHaskellDepends = [
-         aeson aeson-pretty ansi-terminal array base base-compat
-         blaze-markup bytestring call-stack cassava cassava-megaparsec
-         cmdargs colour containers data-default Decimal deepseq directory
-         doclayout extra file-embed filepath Glob hashtables megaparsec
-         microlens microlens-th mtl pager parser-combinators pretty-simple
-         regex-tdfa safe tabular tasty tasty-hunit template-haskell
-         terminal-size text text-ansi time timeit transformers uglymemo
-         unordered-containers utf8-string
-       ];
-       testHaskellDepends = [
-         aeson aeson-pretty ansi-terminal array base base-compat
-         blaze-markup bytestring call-stack cassava cassava-megaparsec
-         cmdargs colour containers data-default Decimal deepseq directory
-         doclayout doctest extra file-embed filepath Glob hashtables
-         megaparsec microlens microlens-th mtl pager parser-combinators
-         pretty-simple regex-tdfa safe tabular tasty tasty-hunit
-         template-haskell terminal-size text text-ansi time timeit
-         transformers uglymemo unordered-containers utf8-string
-       ];
-       description = "A reusable library providing the core functionality of hledger";
-       license = lib.licenses.gpl3Only;
-     }) {};
-
-  "hledger-lib_1_32_1" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, array, base
-     , base-compat, blaze-markup, bytestring, call-stack, cassava
-     , cassava-megaparsec, cmdargs, colour, containers, data-default
-     , Decimal, deepseq, directory, doclayout, doctest, extra
-     , file-embed, filepath, Glob, hashtables, megaparsec, microlens
-     , microlens-th, mtl, pager, parser-combinators, pretty-simple
-     , regex-tdfa, safe, tabular, tasty, tasty-hunit, template-haskell
-     , terminal-size, text, text-ansi, time, timeit, transformers
-     , uglymemo, unordered-containers, utf8-string
-     }:
-     mkDerivation {
-       pname = "hledger-lib";
-       version = "1.32.1";
-       sha256 = "0dy69cwy06kdzfpg26fpdn50vq1ln1li34r23gyr6z78rj39dwbs";
-       revision = "1";
-       editedCabalFile = "0qzkgdv0n8vhjg17pw1al0x49is4f4x4c2ls3lr8dmkb87qgjj1i";
+       version = "1.32.3";
+       sha256 = "0dyid1jjs9i4sk5fxlmah8fgng4j1577zxxm99gh2xl8216dn4mg";
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal array base base-compat
          blaze-markup bytestring call-stack cassava cassava-megaparsec
@@ -148839,7 +149420,6 @@ self: {
        ];
        description = "A library providing the core functionality of hledger";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hledger-makeitso" = callPackage
@@ -148901,51 +149481,23 @@ self: {
      , containers, data-default, directory, doclayout, extra, filepath
      , fsnotify, hledger, hledger-lib, megaparsec, microlens
      , microlens-platform, mtl, process, safe, split, text, text-zipper
-     , time, transformers, unix, vector, vty
+     , time, transformers, unix, vector, vty, vty-crossplatform
      }:
      mkDerivation {
        pname = "hledger-ui";
-       version = "1.30";
-       sha256 = "1il3849rn8zimn79d7b81v6yb916w5w8lp4ykxkyc3fwwyjcc2q5";
-       revision = "2";
-       editedCabalFile = "1a4hnkn45qic4arrna20kfzdp2yhhw66dmhma7zagbrf2ljwl1jj";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         ansi-terminal async base brick cmdargs containers data-default
-         directory doclayout extra filepath fsnotify hledger hledger-lib
-         megaparsec microlens microlens-platform mtl process safe split text
-         text-zipper time transformers unix vector vty
-       ];
-       description = "Curses-style terminal interface for the hledger accounting system";
-       license = lib.licenses.gpl3Only;
-       mainProgram = "hledger-ui";
-       maintainers = [ lib.maintainers.maralorn ];
-     }) {};
-
-  "hledger-ui_1_32_1" = callPackage
-    ({ mkDerivation, ansi-terminal, async, base, brick, cmdargs
-     , containers, data-default, directory, doclayout, extra, filepath
-     , fsnotify, hledger, hledger-lib, megaparsec, microlens
-     , microlens-platform, mtl, process, safe, split, text, text-zipper
-     , time, transformers, unix, vector, vty
-     }:
-     mkDerivation {
-       pname = "hledger-ui";
-       version = "1.32.1";
-       sha256 = "0ldawz7xcrrb0z6aldblixp5jrhfg47hzznzz8d5yw63idqbgkbh";
+       version = "1.32.3";
+       sha256 = "0981c039xp1l65vdn4y0rl3qvlprk15f4s22z1jkkrixx3aqnq4p";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          ansi-terminal async base brick cmdargs containers data-default
          directory doclayout extra filepath fsnotify hledger hledger-lib
          megaparsec microlens microlens-platform mtl process safe split text
-         text-zipper time transformers unix vector vty
+         text-zipper time transformers unix vector vty vty-crossplatform
        ];
        executableHaskellDepends = [ base ];
        description = "Terminal interface for the hledger accounting system";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "hledger-ui";
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
@@ -148975,45 +149527,6 @@ self: {
      , bytestring, case-insensitive, clientsession, cmdargs, conduit
      , conduit-extra, containers, data-default, Decimal, directory
      , extra, filepath, hjsmin, hledger, hledger-lib, hspec, http-client
-     , http-conduit, http-types, megaparsec, mtl, network, shakespeare
-     , template-haskell, text, time, transformers, unix-compat
-     , unordered-containers, utf8-string, wai, wai-cors, wai-extra
-     , wai-handler-launch, warp, yaml, yesod, yesod-core, yesod-form
-     , yesod-static, yesod-test
-     }:
-     mkDerivation {
-       pname = "hledger-web";
-       version = "1.30";
-       sha256 = "0lcw8qigh1507hn287zwmp00vsccsm6lw6r87c5rp0ikxsxmwbds";
-       revision = "3";
-       editedCabalFile = "1fclgmqidsmz7is5kksr5f9icnrvyhjyks3hak1cc3hxsd2gz3k2";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base base64 blaze-html blaze-markup bytestring
-         case-insensitive clientsession cmdargs conduit conduit-extra
-         containers data-default Decimal directory extra filepath hjsmin
-         hledger hledger-lib hspec http-client http-conduit http-types
-         megaparsec mtl network shakespeare template-haskell text time
-         transformers unix-compat unordered-containers utf8-string wai
-         wai-cors wai-extra wai-handler-launch warp yaml yesod yesod-core
-         yesod-form yesod-static yesod-test
-       ];
-       executableHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base hledger hledger-lib hspec text yesod yesod-test
-       ];
-       description = "Web-based user interface for the hledger accounting system";
-       license = lib.licenses.gpl3Only;
-       mainProgram = "hledger-web";
-       maintainers = [ lib.maintainers.maralorn ];
-     }) {};
-
-  "hledger-web_1_32_1" = callPackage
-    ({ mkDerivation, aeson, base, base64, blaze-html, blaze-markup
-     , bytestring, case-insensitive, clientsession, cmdargs, conduit
-     , conduit-extra, containers, data-default, Decimal, directory
-     , extra, filepath, hjsmin, hledger, hledger-lib, hspec, http-client
      , http-conduit, http-types, megaparsec, mtl, network, safe
      , shakespeare, template-haskell, text, time, transformers
      , unix-compat, unordered-containers, utf8-string, wai, wai-cors
@@ -149022,10 +149535,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-web";
-       version = "1.32.1";
-       sha256 = "1y4ahgxgj93pg4ycxv5phiwic5b4n8474ia2wxa221jav056b37z";
-       revision = "1";
-       editedCabalFile = "1v48mcbjig0y8qq15p53ndccj44b6syhkgb45dbzmwy6nypx1bzl";
+       version = "1.32.3";
+       sha256 = "0pvxkhl09hfmm2xi6d76xnwzydl89l6imlv85dgqz2hibk4vw5jh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -149042,7 +149553,6 @@ self: {
        testHaskellDepends = [ base ];
        description = "Web user interface for the hledger accounting system";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "hledger-web";
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
@@ -149216,8 +149726,8 @@ self: {
      }:
      mkDerivation {
        pname = "hlint";
-       version = "3.5";
-       sha256 = "0kxdrqybnma508g1z42s3rc3cay11m8nl5ziddyw31m020515gcq";
+       version = "3.6.1";
+       sha256 = "1za1cykiajyfl8ks59jdj6228qnlg5s96slc9jm9zcy1ncmi701j";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -149235,7 +149745,7 @@ self: {
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
-  "hlint_3_6_1" = callPackage
+  "hlint_3_8" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs
      , containers, cpphs, data-default, deriving-aeson, directory, extra
      , file-embed, filepath, filepattern, ghc-lib-parser
@@ -149244,8 +149754,8 @@ self: {
      }:
      mkDerivation {
        pname = "hlint";
-       version = "3.6.1";
-       sha256 = "1za1cykiajyfl8ks59jdj6228qnlg5s96slc9jm9zcy1ncmi701j";
+       version = "3.8";
+       sha256 = "0x5xkd8n9idmg334kj1kky6bcl4wl8ks4i87j3r8zwp75fv3dwm8";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -149375,6 +149885,7 @@ self: {
        ];
        description = "High-level Redis Database";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hlrdb-core" = callPackage
@@ -149393,6 +149904,8 @@ self: {
        ];
        description = "High-level Redis Database Core API";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hls" = callPackage
@@ -149416,8 +149929,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-alternate-number-format-plugin";
-       version = "2.5.0.0";
-       sha256 = "17splsfhi130cxq84947261r9b2f3x9rxb2kx1jqv99qf91g11h9";
+       version = "2.6.0.0";
+       sha256 = "1n423xdwf56h1c4fa9mfhhz3g5lw4qmycahvwd74ngyqynr7qz1c";
        libraryHaskellDepends = [
          aeson base containers extra ghc-boot-th ghcide hie-compat hls-graph
          hls-plugin-api lens lsp mtl regex-tdfa syb text
@@ -149450,8 +149963,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-cabal-fmt-plugin";
-       version = "2.5.0.0";
-       sha256 = "0vzljivyd0pba03rbx8n07zajs7mn6jf8qd9mr28w2wc8lqzwy39";
+       version = "2.6.0.0";
+       sha256 = "1yhk5x0rvvgqh8n1wz5nygx5df87svrg1k8y35jhzrqpys8lczkb";
        libraryHaskellDepends = [
          base directory filepath ghcide hls-plugin-api lens lsp-types mtl
          process-extras text transformers
@@ -149470,8 +149983,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-cabal-plugin";
-       version = "2.5.0.0";
-       sha256 = "1q0wsngvngx9hkssvkfyvwvp243rw9z31ay7rgpy4nmv3j4sf47q";
+       version = "2.6.0.0";
+       sha256 = "00wrk9vkq0l845ma8saca9q7xyngjxvyh2jfnah4xpa99xn924mn";
        libraryHaskellDepends = [
          base bytestring Cabal-syntax containers deepseq directory extra
          filepath ghcide hashable hls-graph hls-plugin-api lens lsp
@@ -149494,8 +150007,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-call-hierarchy-plugin";
-       version = "2.5.0.0";
-       sha256 = "15wdl6r8www7najnvamgbxp4rjbvwrfp0hk5f8wmsklfr5y4xqcs";
+       version = "2.6.0.0";
+       sha256 = "12cb9krixrlxl8l9bkr6dy8hgwhp8c0j3vf8yx21zvdzbsidjcc1";
        libraryHaskellDepends = [
          aeson base containers extra ghcide hiedb hls-plugin-api lens lsp
          sqlite-simple text unordered-containers
@@ -149515,8 +150028,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-change-type-signature-plugin";
-       version = "2.5.0.0";
-       sha256 = "1q7gnyg6pxzgp917z9rybp0736ssz6xiviqcnsnvr4ifvrzhnc2m";
+       version = "2.6.0.0";
+       sha256 = "1qbrp47726y3bnq1zdrqn0lnpjal4056na96dhqv17zm433y6kr0";
        libraryHaskellDepends = [
          base containers ghcide hls-plugin-api lsp-types regex-tdfa syb text
          transformers unordered-containers
@@ -149536,8 +150049,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-class-plugin";
-       version = "2.5.0.0";
-       sha256 = "0v33bgv52y43d5n8fd7clllxra4hmrviqi9ymxjkx6zj0vh5i3as";
+       version = "2.6.0.0";
+       sha256 = "0jib2y256fb5b8wgsi9rjsdb3ywwpcbcnbbxmg6q3gwnglrdb1lx";
        libraryHaskellDepends = [
          aeson base containers deepseq extra ghc ghc-boot-th ghc-exactprint
          ghcide hls-graph hls-plugin-api lens lsp mtl text transformers
@@ -149558,8 +150071,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-code-range-plugin";
-       version = "2.5.0.0";
-       sha256 = "129c2y3jpibn2lh8j9y310jxrzicw47dks40jacc9qvicyw1amz3";
+       version = "2.6.0.0";
+       sha256 = "1ir4w8a3xvfl5dn7rn9wagch7iai5wafmy732r05yjiyj0p2jfs5";
        libraryHaskellDepends = [
          aeson base containers deepseq extra ghcide hashable hls-plugin-api
          lens lsp mtl semigroupoids text transformers vector
@@ -149584,8 +150097,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-eval-plugin";
-       version = "2.5.0.0";
-       sha256 = "16a5wblz1pp7l1n211a8l6vm2cizmlnrgqlxfhpwpyvsglgw2nqc";
+       version = "2.6.0.0";
+       sha256 = "12fvpsisaljszgndjimiigpxqwx65n5i2r7a5c02hzb4aphadv79";
        libraryHaskellDepends = [
          aeson base bytestring containers data-default deepseq Diff
          directory dlist extra filepath ghc ghc-boot-th ghc-paths ghcide
@@ -149626,8 +150139,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-explicit-fixity-plugin";
-       version = "2.5.0.0";
-       sha256 = "0v4l3jlh5kx7qfwr3sssfpi4q4sjg064h1svlgwdci02pax43zmf";
+       version = "2.6.0.0";
+       sha256 = "00m90ngxxyvm6ij0ddsi3raknyg1i06l685mw37kwqqjwa32vnaa";
        libraryHaskellDepends = [
          base containers deepseq extra ghc ghcide hashable hls-plugin-api
          lsp text transformers
@@ -149645,8 +150158,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-explicit-imports-plugin";
-       version = "2.5.0.0";
-       sha256 = "0lxdr210k02qqmqx54gni4m1jfv1lab4kayn19k1lrbwdw95nnfz";
+       version = "2.6.0.0";
+       sha256 = "1s34q50gj5qdshiswm6zia36nv7zi8hxcm5azryi37ajvb883k3c";
        libraryHaskellDepends = [
          aeson base containers deepseq ghc ghcide hls-graph hls-plugin-api
          lens lsp mtl text transformers unordered-containers
@@ -149666,8 +150179,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-explicit-record-fields-plugin";
-       version = "2.5.0.0";
-       sha256 = "0945p1rg7dz9bfj9q72as1f43bgfsz3wigcngz3i5z94qwfjdcqb";
+       version = "2.6.0.0";
+       sha256 = "1nj3x0r8v8j2bgjn384rkz3mmbrz1xd6xbcr2jcmrmngknb17x44";
        libraryHaskellDepends = [
          aeson base containers ghc ghc-boot-th ghcide hls-graph
          hls-plugin-api lens lsp syb text transformers unordered-containers
@@ -149685,8 +150198,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-floskell-plugin";
-       version = "2.5.0.0";
-       sha256 = "0z8cad7zjqr4wyl9pc4l3ixwhg8yqxv6ryrwg0pyqg38wh2bkya3";
+       version = "2.6.0.0";
+       sha256 = "1wyk88lynchhzriqj7m9ph0s2c2ivkqg1nmhgb1knkvp8ag27iik";
        libraryHaskellDepends = [
          base floskell ghcide hls-plugin-api lsp-types mtl text transformers
        ];
@@ -149702,8 +150215,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-fourmolu-plugin";
-       version = "2.5.0.0";
-       sha256 = "008fp1frkrh7plk2hs4g41xn29dcjndmj4inyh5qzp5kyqqpyl3s";
+       version = "2.6.0.0";
+       sha256 = "1g7m4mf7vax4x724rp54ycrr22jw0y8dgwcp250qxsd1vzch2zwn";
        libraryHaskellDepends = [
          base filepath fourmolu ghc ghc-boot-th ghcide hls-plugin-api lens
          lsp mtl process-extras text transformers
@@ -149725,8 +150238,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-gadt-plugin";
-       version = "2.5.0.0";
-       sha256 = "1i5w1lch8r0b93qwwxbm10q88gi9ppwjxpypc8bm96k8kfgnp53i";
+       version = "2.6.0.0";
+       sha256 = "0aa602m024s3ch23np2iixmkwv6474va20bjdgiwdgc8vahg4grg";
        libraryHaskellDepends = [
          aeson base containers extra ghc ghc-boot-th ghc-exactprint ghcide
          hls-plugin-api hls-refactor-plugin lens lsp mtl text transformers
@@ -149748,8 +150261,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-graph";
-       version = "2.5.0.0";
-       sha256 = "1w35z067cdbj5addz3qslg7494gzvv2gfn1y3ximg3y2y5z8xfgr";
+       version = "2.6.0.0";
+       sha256 = "0rlljbaa20randbl4vmjh5y88fb0ajvb7c9qzwa1d3pk9whxaxkw";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson async base bytestring containers deepseq directory exceptions
@@ -149788,8 +150301,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-hlint-plugin";
-       version = "2.5.0.0";
-       sha256 = "15hggsv0z1xj21bq04chdvp0ksb6887hhbn5nlb7w0lvs3g7di18";
+       version = "2.6.0.0";
+       sha256 = "0ix89wp8nq3iywh6d3w8j7lnfm2g3l9gks8sxkww0z0mfhfxvywc";
        libraryHaskellDepends = [
          aeson apply-refact base binary bytestring containers data-default
          deepseq Diff directory extra filepath ghc-exactprint ghc-lib-parser
@@ -149812,8 +150325,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-module-name-plugin";
-       version = "2.5.0.0";
-       sha256 = "0fcpm4qb0wwy4svqa8rjxld4swahgnsbyg8gcmrc3669q4jmcy0x";
+       version = "2.6.0.0";
+       sha256 = "1nfa7jcd6nadqc5s5604vndl32vrijmsay89ymdfhchdqb6f40vz";
        libraryHaskellDepends = [
          aeson base containers directory filepath ghcide hls-plugin-api lsp
          text transformers unordered-containers
@@ -149830,8 +150343,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-ormolu-plugin";
-       version = "2.5.0.0";
-       sha256 = "0llg94i4v12v88zlgnqzb1qimni4kipn61pgp5ahimsh3g6gw66d";
+       version = "2.6.0.0";
+       sha256 = "0cnp89ss3gp2jacim5gcal5rc80ksif84laydq6k7fpnaj5d3ix2";
        libraryHaskellDepends = [
          base extra filepath ghc ghc-boot-th ghcide hls-plugin-api lens lsp
          mtl ormolu process-extras text transformers
@@ -149853,8 +150366,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-overloaded-record-dot-plugin";
-       version = "2.5.0.0";
-       sha256 = "11w9fqw8rqivk0scqs4r64z2khhlhamfs212yf35m6xd50cq7ss6";
+       version = "2.6.0.0";
+       sha256 = "0vlbfsidrjnga56b655swb6k8jzg5406m06q8wxkngqbfij7x6fh";
        libraryHaskellDepends = [
          aeson base containers deepseq ghc-boot-th ghcide hls-graph
          hls-plugin-api lens lsp syb text transformers unordered-containers
@@ -149879,8 +150392,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-plugin-api";
-       version = "2.5.0.0";
-       sha256 = "0p1hx160sb26fnzdsq5x5n8lb750m95fmjgz3k0sysdfljkpw0b7";
+       version = "2.6.0.0";
+       sha256 = "10i46ylhfzzw8hm9d6v27086781iql114z4j1dpp237lxdw7wkf4";
        libraryHaskellDepends = [
          aeson base co-log-core containers data-default dependent-map
          dependent-sum Diff dlist extra filepath ghc hashable hls-graph
@@ -149906,8 +150419,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-pragmas-plugin";
-       version = "2.5.0.0";
-       sha256 = "0f8qdqsgkdra1pin7rbnwg9jbkg6m9g066bg8xakm0px2mdfl2ml";
+       version = "2.6.0.0";
+       sha256 = "00czk9k2md0r7lcxcmspfzm2yksw2z0wg8j7vakn50cvvrnfn9b3";
        libraryHaskellDepends = [
          base containers extra fuzzy ghc ghcide hls-plugin-api lens lsp text
          transformers unordered-containers
@@ -149926,8 +150439,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-qualify-imported-names-plugin";
-       version = "2.5.0.0";
-       sha256 = "04qmkz68mmp0407libdb7k53a3m9i6ykcp0izp386l6r2sgqrhjx";
+       version = "2.6.0.0";
+       sha256 = "08jghxaf020wk23404m198bk9d6brpl5nbmvjsdm34cic3ag42m6";
        libraryHaskellDepends = [
          aeson base containers deepseq dlist ghc ghcide hls-graph
          hls-plugin-api lens lsp text transformers unordered-containers
@@ -149949,8 +150462,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-refactor-plugin";
-       version = "2.5.0.0";
-       sha256 = "12zgy7dm8xvj5r8wkxbpb2ksszlp3w2aps3yfyz6j7np7y6c776s";
+       version = "2.6.0.0";
+       sha256 = "0lqy7c3vqn832gs9z86n4clsqb6g73rhnlrvn3sg3h8hkxasfzjf";
        libraryHaskellDepends = [
          aeson base bytestring containers data-default deepseq dlist extra
          ghc ghc-boot ghc-exactprint ghcide hls-graph hls-plugin-api lens
@@ -149997,8 +150510,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-rename-plugin";
-       version = "2.5.0.0";
-       sha256 = "0aaxvvvib34lz59ha097rx9kzf8s6cyycsmgn97c2da62hikyf3d";
+       version = "2.6.0.0";
+       sha256 = "15gjh7r9cc43yz1zp52q349fag4nxv25vhzn5pdma4ch366xyr4g";
        libraryHaskellDepends = [
          base containers extra ghc ghc-exactprint ghcide hashable hie-compat
          hiedb hls-plugin-api hls-refactor-plugin lens lsp lsp-types mod mtl
@@ -150020,8 +150533,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-retrie-plugin";
-       version = "2.5.0.0";
-       sha256 = "0j0gg3cma80kr6ip83v5yb22n3l6h8iqdn9rk30h8g45xyngydmb";
+       version = "2.6.0.0";
+       sha256 = "11cl4q79jxl73s62ccdarp1570k95picgn3q8lgnqznc6ywdv3zh";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq directory extra ghc ghcide
          hashable hls-plugin-api hls-refactor-plugin lens lsp lsp-types mtl
@@ -150060,6 +150573,32 @@ self: {
        broken = true;
      }) {};
 
+  "hls-semantic-tokens-plugin" = callPackage
+    ({ mkDerivation, aeson, array, base, bytestring, containers
+     , data-default, deepseq, extra, filepath, ghc, ghcide
+     , ghcide-test-utils, hiedb, hls-graph, hls-plugin-api
+     , hls-test-utils, lens, lsp, lsp-test, mtl, sqlite-simple, syb
+     , template-haskell, text, text-rope, transformers
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "hls-semantic-tokens-plugin";
+       version = "2.6.0.0";
+       sha256 = "1algv6y1jcqzxxkpjs1c5zh0rpiw9zwpp8z8z3fh4qa0ylcsl0h5";
+       libraryHaskellDepends = [
+         aeson array base bytestring containers data-default deepseq extra
+         ghcide hiedb hls-graph hls-plugin-api lens lsp mtl sqlite-simple
+         syb template-haskell text transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers data-default extra filepath ghc
+         ghcide ghcide-test-utils hls-plugin-api hls-test-utils lens lsp
+         lsp-test template-haskell text text-rope
+       ];
+       description = "Call hierarchy plugin for Haskell Language Server";
+       license = lib.licenses.asl20;
+     }) {};
+
   "hls-splice-plugin" = callPackage
     ({ mkDerivation, aeson, base, containers, dlist, extra, filepath
      , foldl, ghc, ghc-exactprint, ghcide, hls-plugin-api
@@ -150069,8 +150608,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-splice-plugin";
-       version = "2.5.0.0";
-       sha256 = "1lygi715cvnkxx5ajk1k15w6rbjb50jaa0ryfbxq56ngddfxnd0h";
+       version = "2.6.0.0";
+       sha256 = "00fx8rxdnmam0672vb0az2lw5inqyc22cjfrh8wiwx36i28r8zqj";
        libraryHaskellDepends = [
          aeson base containers dlist extra foldl ghc ghc-exactprint ghcide
          hls-plugin-api hls-refactor-plugin lens lsp mtl retrie syb text
@@ -150085,17 +150624,17 @@ self: {
 
   "hls-stan-plugin" = callPackage
     ({ mkDerivation, aeson, base, containers, data-default, deepseq
-     , filepath, ghc, ghcide, hashable, hie-compat, hls-plugin-api
-     , hls-test-utils, lens, lsp-types, stan, text, transformers
-     , unordered-containers
+     , directory, filepath, ghc, ghcide, hashable, hie-compat
+     , hls-plugin-api, hls-test-utils, lens, lsp-types, stan, text
+     , transformers, trial, unordered-containers
      }:
      mkDerivation {
        pname = "hls-stan-plugin";
-       version = "2.5.0.0";
-       sha256 = "15xfgqg24qbnzlj3pkf5qvpxmiwf5a3wzh6gznwg502fcm98i1yh";
+       version = "2.6.0.0";
+       sha256 = "1zhw2ysf5ccsrz1vahff6hr683b581v4py2pyf9xfnjfay5gl0id";
        libraryHaskellDepends = [
-         base containers data-default deepseq ghc ghcide hashable hie-compat
-         hls-plugin-api lsp-types stan text transformers
+         base containers data-default deepseq directory ghc ghcide hashable
+         hie-compat hls-plugin-api lsp-types stan text transformers trial
          unordered-containers
        ];
        testHaskellDepends = [
@@ -150113,8 +150652,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-stylish-haskell-plugin";
-       version = "2.5.0.0";
-       sha256 = "19zf5lm9sdcpzyvffwq92am9yfbi060sprj57s085a4f08ng1f2d";
+       version = "2.6.0.0";
+       sha256 = "171068mmb7sdk14s5v794jc0n0mrrq8fkzp2z2wlrmk38mqi3773";
        libraryHaskellDepends = [
          base directory filepath ghc ghc-boot-th ghcide hls-plugin-api
          lsp-types mtl stylish-haskell text
@@ -150145,8 +150684,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-test-utils";
-       version = "2.5.0.0";
-       sha256 = "1m9kp80wsq6yjjvam9cdpbzb1j20kp2w3fgvmd7mrivkbwlblzz0";
+       version = "2.6.0.0";
+       sha256 = "0n02ar6rbrkljni3x6dnj6cglsjsrdqq952l2va0ssygbvis0iwr";
        libraryHaskellDepends = [
          aeson async base blaze-markup bytestring containers data-default
          directory extra filepath ghcide hls-graph hls-plugin-api lens lsp
@@ -150421,7 +150960,6 @@ self: {
        libraryHaskellDepends = [ base hmatrix repa vector ];
        description = "Adaptors for interoperability between hmatrix and repa";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hmatrix-sparse" = callPackage
@@ -150732,6 +151270,8 @@ self: {
        pname = "hmm-lapack";
        version = "0.5.0.1";
        sha256 = "0im754fgqzi28snwf9bxkj4i1g69c0q8knzjvpmbrs79d5rncpxk";
+       revision = "2";
+       editedCabalFile = "1jg5qpdwi186vm87b0dm5gzqivlpc1q2lwi9vangxah1lfhd898r";
        libraryHaskellDepends = [
          base comfort-array comfort-array-shape containers deepseq
          explicit-exception fixed-length lapack lazy-csv netlib-ffi
@@ -150912,6 +151452,7 @@ self: {
        description = "Haskell NetCDF library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) netcdf;};
 
   "hnix" = callPackage
@@ -151202,20 +151743,20 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2";
-       version = "2.8.0";
-       sha256 = "1xndl9cl0j1mn18lgjrp7crys9vlz0gznp7fijazawa5x84xjfpp";
+       version = "2.10.0";
+       sha256 = "13skl9zc3p0jnn2p10xm21kp5adqjl48nfx6v312yfvd9md5h0kq";
        libraryHaskellDepends = [
          aeson base base64 binary bytestring containers cryptonite
          data-default exceptions http-conduit http-types memory microlens
          text transformers uri-bytestring uri-bytestring-aeson
        ];
-       testHaskellDepends = [ aeson base hspec ];
+       testHaskellDepends = [ aeson base hspec uri-bytestring ];
        testToolDepends = [ hspec-discover ];
        description = "Haskell OAuth2 authentication client";
        license = lib.licenses.mit;
      }) {};
 
-  "hoauth2_2_10_0" = callPackage
+  "hoauth2_2_12_0" = callPackage
     ({ mkDerivation, aeson, base, base64, binary, bytestring
      , containers, cryptonite, data-default, exceptions, hspec
      , hspec-discover, http-conduit, http-types, memory, microlens, text
@@ -151223,8 +151764,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2";
-       version = "2.10.0";
-       sha256 = "13skl9zc3p0jnn2p10xm21kp5adqjl48nfx6v312yfvd9md5h0kq";
+       version = "2.12.0";
+       sha256 = "10v89bnwfzpp23r4skww2h2gi62lhzgyvig4icc5ayx7pdbn5m82";
        libraryHaskellDepends = [
          aeson base base64 binary bytestring containers cryptonite
          data-default exceptions http-conduit http-types memory microlens
@@ -151245,8 +151786,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2-demo";
-       version = "1.8.0";
-       sha256 = "12mmbklh8a3wkm7dpmighqibk1ib5z0f444pl3g8i79abaj75k7b";
+       version = "1.10.0";
+       sha256 = "0wf5jmb2smnrz7vxnxc0966zf03dw45jcvc55wrxmrfhbiiq1a6m";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -151270,8 +151811,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2-providers";
-       version = "0.4.0";
-       sha256 = "1c29cy0317dbigwhf0rrnnm9hm3w3v10dpsilm03g4xfjmdqvzdv";
+       version = "0.6.0";
+       sha256 = "19qn6099jpzk14axzs7w3bg99in8y79gv03k527z50l7c4w7920c";
        libraryHaskellDepends = [
          aeson base bytestring containers cryptonite hoauth2 HsOpenSSL
          http-conduit http-types jose-jwt mtl text time transformers
@@ -151292,8 +151833,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2-providers-tutorial";
-       version = "0.4.0";
-       sha256 = "1pdnsjzx2bni1vw4w7i5d39nih5bkrybgpya568ycw52bpi8jnmn";
+       version = "0.6.0";
+       sha256 = "050yvl12c568ichznkplv56hyq63adifn0vs6j9ajfllfpfxz1dz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -151314,8 +151855,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2-tutorial";
-       version = "0.4.0";
-       sha256 = "00nr2w8yqhmf9i4i8d7yfzwb0fwdmqcbwc37k0r9js9qxc5b1wqr";
+       version = "0.6.0";
+       sha256 = "1sw8n8v9m9yhjn6pm7sws18dwjn10k4l13jds1j2qrv7mkyhcnpw";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -151396,6 +151937,31 @@ self: {
        broken = true;
      }) {};
 
+  "hocd" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, containers
+     , data-default-class, exceptions, hspec, hspec-discover, mtl
+     , network, raw-strings-qq, text, transformers
+     }:
+     mkDerivation {
+       pname = "hocd";
+       version = "0.1.3.0";
+       sha256 = "1bs7a6fm4rkjpxp2wwbw46r8drjjx1bydafqn2n8yc7l8ci32ah2";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         attoparsec base bytestring containers data-default-class exceptions
+         mtl network transformers
+       ];
+       executableHaskellDepends = [ base text ];
+       testHaskellDepends = [
+         attoparsec base bytestring containers hspec raw-strings-qq
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "OpenOCD Haskell interface";
+       license = lib.licenses.bsd3;
+       mainProgram = "hocd-read-mem";
+     }) {};
+
   "hocilib" = callPackage
     ({ mkDerivation, base, bytestring, c2hs, containers, inline-c
      , ocilib, tasty, tasty-hunit, template-haskell
@@ -151662,6 +152228,8 @@ self: {
        libraryHaskellDepends = [ base either mtl ];
        description = "Some convenience facilities for hoisting errors into a monad";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hol" = callPackage
@@ -152230,29 +152798,29 @@ self: {
 
   "hoogle" = callPackage
     ({ mkDerivation, aeson, base, binary, blaze-html, blaze-markup
-     , bytestring, cmdargs, conduit, conduit-extra, connection
-     , containers, deepseq, directory, extra, filepath, foundation
-     , hashable, haskell-src-exts, http-conduit, http-types, js-flot
-     , js-jquery, mmap, old-locale, process-extras, QuickCheck
-     , resourcet, storable-tuple, tar, template-haskell, text, time
-     , transformers, uniplate, utf8-string, vector, wai, wai-logger
-     , warp, warp-tls, zlib
+     , bytestring, cmdargs, conduit, conduit-extra, containers
+     , crypton-connection, deepseq, directory, extra, filepath
+     , foundation, hashable, haskell-src-exts, http-conduit, http-types
+     , js-flot, js-jquery, mmap, old-locale, process-extras, QuickCheck
+     , resourcet, safe, storable-tuple, tar, template-haskell, text
+     , time, transformers, uniplate, utf8-string, vector, wai
+     , wai-logger, warp, warp-tls, zlib
      }:
      mkDerivation {
        pname = "hoogle";
-       version = "5.0.18.3";
-       sha256 = "0v6k75w0an9pqgb7a6cicnpf9rz77xd2lmxfbafc5l4f99jg83bn";
+       version = "5.0.18.4";
+       sha256 = "08z32d87vqzhapb2vw21h25jb2g74csxlpvd8f54xl91k3ijs3wx";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base binary blaze-html blaze-markup bytestring cmdargs
-         conduit conduit-extra connection containers deepseq directory extra
-         filepath foundation hashable haskell-src-exts http-conduit
-         http-types js-flot js-jquery mmap old-locale process-extras
-         QuickCheck resourcet storable-tuple tar template-haskell text time
-         transformers uniplate utf8-string vector wai wai-logger warp
-         warp-tls zlib
+         conduit conduit-extra containers crypton-connection deepseq
+         directory extra filepath foundation hashable haskell-src-exts
+         http-conduit http-types js-flot js-jquery mmap old-locale
+         process-extras QuickCheck resourcet safe storable-tuple tar
+         template-haskell text time transformers uniplate utf8-string vector
+         wai wai-logger warp warp-tls zlib
        ];
        executableHaskellDepends = [ base ];
        testTarget = "--test-option=--no-net";
@@ -152448,6 +153016,8 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "hOpenPGP-based command-line tools";
        license = lib.licenses.agpl3Plus;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hopenssl" = callPackage
@@ -152923,12 +153493,12 @@ self: {
      , hs-opentelemetry-sdk, hs-opentelemetry-utils-exceptions
      , hs-opentelemetry-vendor-honeycomb, http-types
      , optparse-applicative, posix-escape, text, time, typed-process
-     , unliftio
+     , unliftio, unordered-containers
      }:
      mkDerivation {
        pname = "hotel-california";
-       version = "0.0.3.0";
-       sha256 = "11r2bd9ralfv2vzd5ikw83bgz014hhs36g4bxfjxk5gqq65fkkh1";
+       version = "0.0.4.0";
+       sha256 = "169i39gmm6dlf7yq3jvx87fba2i179brhvnmpg7pqdnnclgjjklh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -152936,21 +153506,21 @@ self: {
          hs-opentelemetry-propagator-w3c hs-opentelemetry-sdk
          hs-opentelemetry-utils-exceptions hs-opentelemetry-vendor-honeycomb
          http-types optparse-applicative posix-escape text time
-         typed-process unliftio
+         typed-process unliftio unordered-containers
        ];
        executableHaskellDepends = [
          base bytestring hs-opentelemetry-api hs-opentelemetry-exporter-otlp
          hs-opentelemetry-propagator-w3c hs-opentelemetry-sdk
          hs-opentelemetry-utils-exceptions hs-opentelemetry-vendor-honeycomb
          http-types optparse-applicative posix-escape text time
-         typed-process unliftio
+         typed-process unliftio unordered-containers
        ];
        testHaskellDepends = [
          base bytestring hs-opentelemetry-api hs-opentelemetry-exporter-otlp
          hs-opentelemetry-propagator-w3c hs-opentelemetry-sdk
          hs-opentelemetry-utils-exceptions hs-opentelemetry-vendor-honeycomb
          http-types optparse-applicative posix-escape text time
-         typed-process unliftio
+         typed-process unliftio unordered-containers
        ];
        license = lib.licenses.bsd3;
        mainProgram = "hotel";
@@ -153180,47 +153750,6 @@ self: {
 
   "hpack" = callPackage
     ({ mkDerivation, aeson, base, bifunctors, bytestring, Cabal
-     , containers, cryptonite, deepseq, directory, filepath, Glob, hspec
-     , hspec-discover, http-client, http-client-tls, http-types, HUnit
-     , infer-license, interpolate, mockery, pretty, QuickCheck
-     , scientific, template-haskell, temporary, text, transformers
-     , unordered-containers, vector, yaml
-     }:
-     mkDerivation {
-       pname = "hpack";
-       version = "0.35.2";
-       sha256 = "1v4h5dkbfwx8wlmbaq76av22ald9iyk80k8k7pz808nw30yh3dq3";
-       revision = "2";
-       editedCabalFile = "0vwxfg5ixlr18q8gb1x8vz3grp339cbnhm51hfp7rk6vc0bd61k5";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base bifunctors bytestring Cabal containers cryptonite
-         deepseq directory filepath Glob http-client http-client-tls
-         http-types infer-license pretty scientific text transformers
-         unordered-containers vector yaml
-       ];
-       executableHaskellDepends = [
-         aeson base bifunctors bytestring Cabal containers cryptonite
-         deepseq directory filepath Glob http-client http-client-tls
-         http-types infer-license pretty scientific text transformers
-         unordered-containers vector yaml
-       ];
-       testHaskellDepends = [
-         aeson base bifunctors bytestring Cabal containers cryptonite
-         deepseq directory filepath Glob hspec http-client http-client-tls
-         http-types HUnit infer-license interpolate mockery pretty
-         QuickCheck scientific template-haskell temporary text transformers
-         unordered-containers vector yaml
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "A modern format for Haskell packages";
-       license = lib.licenses.mit;
-       mainProgram = "hpack";
-     }) {};
-
-  "hpack_0_36_0" = callPackage
-    ({ mkDerivation, aeson, base, bifunctors, bytestring, Cabal
      , containers, crypton, deepseq, directory, filepath, Glob, hspec
      , hspec-discover, http-client, http-client-tls, http-types, HUnit
      , infer-license, interpolate, mockery, mtl, pretty, QuickCheck
@@ -153257,7 +153786,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A modern format for Haskell packages";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "hpack";
      }) {};
 
@@ -153534,14 +154062,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "hpc_0_7_0_0" = callPackage
+  "hpc_0_7_0_1" = callPackage
     ({ mkDerivation, base, containers, deepseq, directory, filepath
      , time
      }:
      mkDerivation {
        pname = "hpc";
-       version = "0.7.0.0";
-       sha256 = "0y3d43r4wl07w9wl6fgrnmpi0lpv0ai61r4wb3cmnx2divqmm3q0";
+       version = "0.7.0.1";
+       sha256 = "1h8vifsx310zqf0sxh63a9z4lv7ymyncrlbba46si37mb75if66s";
        libraryHaskellDepends = [
          base containers deepseq directory filepath time
        ];
@@ -153551,28 +154079,6 @@ self: {
      }) {};
 
   "hpc-codecov" = callPackage
-    ({ mkDerivation, array, base, bytestring, directory, filepath, hpc
-     , process, tasty, tasty-hunit
-     }:
-     mkDerivation {
-       pname = "hpc-codecov";
-       version = "0.3.0.0";
-       sha256 = "0999qfm9866gwqk4sx6av21rwbbirvdj5lr4ffl25zimwvirsbd2";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         array base bytestring directory filepath hpc
-       ];
-       executableHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base directory filepath process tasty tasty-hunit
-       ];
-       description = "Generate codecov report from hpc data";
-       license = lib.licenses.bsd3;
-       mainProgram = "hpc-codecov";
-     }) {};
-
-  "hpc-codecov_0_5_0_0" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, directory
      , filepath, hpc, process, tasty, tasty-golden, tasty-hunit, time
      }:
@@ -153591,7 +154097,6 @@ self: {
        ];
        description = "Generate reports from hpc data";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "hpc-codecov";
      }) {};
 
@@ -153629,10 +154134,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpc-lcov";
-       version = "1.1.1";
-       sha256 = "0wwcg3s0vd0mj2pkkrv3vf16x7l39chz14xniqsm6v3yw3sfi4dq";
-       revision = "1";
-       editedCabalFile = "102ynl0z1w7s98h1ry9sqj5vm298hvxaq6l8hh6pl45rgq40k8jd";
+       version = "1.1.2";
+       sha256 = "1bmm0nq1m6xmi5g5zyycrfi8xlxh6ip2mi32z8bp9pyjrn7jy9pv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers hpc ];
@@ -153885,8 +154388,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpqtypes-effectful";
-       version = "1.0.0.1";
-       sha256 = "1785fl28yqn3z0jaf57pxrlydswv7r88663ml5x4gdnsp9xc9scj";
+       version = "1.0.1.0";
+       sha256 = "1gqi9cf5k8radhsya1s8936wpqpawjis9qfvb62b5cqrc4hvy26f";
        libraryHaskellDepends = [
          base effectful-core exceptions hpqtypes
        ];
@@ -153985,32 +154488,26 @@ self: {
 
   "hprox" = callPackage
     ({ mkDerivation, async, base, base64-bytestring, binary, bytestring
-     , case-insensitive, conduit, conduit-extra, crypton, dns
-     , fast-logger, http-client, http-client-tls, http-reverse-proxy
-     , http-types, http2, optparse-applicative, random, tls
-     , tls-session-manager, unordered-containers, wai, wai-extra, warp
-     , warp-tls
+     , case-insensitive, conduit, conduit-extra, crypton
+     , data-default-class, dns, fast-logger, http-client
+     , http-client-tls, http-reverse-proxy, http-types, http2
+     , optparse-applicative, random, text, tls, tls-session-manager
+     , unix, unordered-containers, wai, wai-extra, warp, warp-tls
      }:
      mkDerivation {
        pname = "hprox";
-       version = "0.6.0";
-       sha256 = "1m9n0z7yjd81kn13ps5bgnw7zfpz4p832wwidqhqbv9yc3m6sjfy";
+       version = "0.6.2";
+       sha256 = "118758mwqwf22i5y7iawqqwibyljfn5cxlx6hjbz1xgxcvchvm65";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          async base base64-bytestring binary bytestring case-insensitive
-         conduit conduit-extra crypton dns fast-logger http-client
-         http-client-tls http-reverse-proxy http-types http2
-         optparse-applicative random tls tls-session-manager
-         unordered-containers wai wai-extra warp warp-tls
-       ];
-       executableHaskellDepends = [
-         async base base64-bytestring binary bytestring case-insensitive
-         conduit conduit-extra crypton dns fast-logger http-client
-         http-client-tls http-reverse-proxy http-types http2
-         optparse-applicative random tls tls-session-manager
+         conduit conduit-extra crypton data-default-class dns fast-logger
+         http-client http-client-tls http-reverse-proxy http-types http2
+         optparse-applicative random text tls tls-session-manager unix
          unordered-containers wai wai-extra warp warp-tls
        ];
+       executableHaskellDepends = [ base bytestring http-types wai ];
        description = "a lightweight HTTP proxy server, and more";
        license = lib.licenses.asl20;
        mainProgram = "hprox";
@@ -154216,11 +154713,11 @@ self: {
     ({ mkDerivation, base, time }:
      mkDerivation {
        pname = "hquantlib-time";
-       version = "0.0.5.2";
-       sha256 = "04gzlh3qcbxs1659fgl2l45j16g4m5c4gasd0vwrn2wpskr9w38k";
+       version = "0.1.0";
+       sha256 = "1a526r49anxri1ms8zyhc4giiidiw5sd5qhpndz6gq3kax3jfja4";
        libraryHaskellDepends = [ base time ];
        description = "HQuantLib Time is a business calendar functions extracted from HQuantLib";
-       license = "LGPL";
+       license = lib.licenses.lgpl3Plus;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -154574,6 +155071,8 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "A Haskell framework for parallel monte carlo simulations";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hs-carbon-examples" = callPackage
@@ -154756,6 +155255,7 @@ self: {
        libraryHaskellDepends = [ base dual tagged transformers ];
        description = "Functors from products of Haskell and its dual to Haskell";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hs-gchart" = callPackage
@@ -154828,6 +155328,7 @@ self: {
        libraryHaskellDepends = [ base hs-functors ];
        description = "Indexed applicative functors and monads";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hs-java" = callPackage
@@ -154960,8 +155461,8 @@ self: {
     ({ mkDerivation, base, containers, emojis, text }:
      mkDerivation {
        pname = "hs-openmoji-data";
-       version = "14.0.0";
-       sha256 = "1slaaahm22mrc91g8j3c3m1ln5hjhin0cr8nspi53ykl7h4rb41h";
+       version = "15.0.0";
+       sha256 = "09svghs0bd01nl7aw19yykm6kcz014sn2mwhavhrzgb1ncf9mh4h";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base text ];
@@ -155503,6 +156004,7 @@ self: {
        libraryHaskellDepends = [ base hs-functors ];
        description = "Profunctors from Haskell to Haskell";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hs-re" = callPackage
@@ -155873,6 +156375,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Create ATS types from Haskell types";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hs2ats";
      }) {};
 
@@ -156030,7 +156533,9 @@ self: {
        ];
        description = "Akamai API(Edgegrid and Netstorage)";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "purge";
+       broken = true;
      }) {};
 
   "hsaml2" = callPackage
@@ -156242,19 +156747,17 @@ self: {
      }) {};
 
   "hsblst" = callPackage
-    ({ mkDerivation, base, bytestring, c2hs, deepseq, hex-text, memory
-     , tasty, tasty-discover, tasty-hunit, text
+    ({ mkDerivation, base, base16-bytestring, bytestring, c2hs, deepseq
+     , memory, tasty, tasty-discover, tasty-hunit, text
      }:
      mkDerivation {
        pname = "hsblst";
-       version = "0.0.2";
-       sha256 = "08sj5r714rzkdbvx8bzhk3lvim7jiaxbpj4xpz58bxx13ds2dxni";
-       revision = "1";
-       editedCabalFile = "14bj4m38786x7mjddfxyyjv218jmnqhd7ipinq03hbwa2drx3jij";
+       version = "0.0.3";
+       sha256 = "0pf35cyb0m06frcb3ralzq3wzmhb3r5zyzx330gxkz3gw6b5qwig";
        libraryHaskellDepends = [ base deepseq memory ];
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [
-         base bytestring hex-text memory tasty tasty-hunit text
+         base base16-bytestring bytestring memory tasty tasty-hunit text
        ];
        testToolDepends = [ tasty-discover ];
        description = "Haskell bindings to BLST";
@@ -156910,22 +157413,6 @@ self: {
     ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "hscolour";
-       version = "1.24.4";
-       sha256 = "079jwph4bwllfp03yfr26s5zc6m6kw3nhb1cggrifh99haq34cr4";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [ base containers ];
-       executableHaskellDepends = [ base containers ];
-       description = "Colourise Haskell code";
-       license = "LGPL";
-       mainProgram = "HsColour";
-     }) {};
-
-  "hscolour_1_25" = callPackage
-    ({ mkDerivation, base, containers }:
-     mkDerivation {
-       pname = "hscolour";
        version = "1.25";
        sha256 = "0z679khnmb6as1zcdb44n9qjk7in32jpm4ldscpqg7jrapd31kjl";
        isLibrary = true;
@@ -156935,7 +157422,6 @@ self: {
        executableHaskellDepends = [ base containers ];
        description = "Colourise Haskell code";
        license = "LGPL";
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "HsColour";
      }) {};
 
@@ -157187,6 +157673,22 @@ self: {
        maintainers = [ lib.maintainers.peti ];
      }) {};
 
+  "hsemail_2_2_2" = callPackage
+    ({ mkDerivation, base, hspec, parsec, time, time-compat }:
+     mkDerivation {
+       pname = "hsemail";
+       version = "2.2.2";
+       sha256 = "0wp6nicpjrlwgrqglpww3ny728i5ac68kdnj1d6vf62qhh223wg1";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base parsec time time-compat ];
+       testHaskellDepends = [ base hspec parsec time ];
+       description = "Parsec parsers for the Internet Message format (e-mail)";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.peti ];
+     }) {};
+
   "hsemail-ns" = callPackage
     ({ mkDerivation, base, doctest, hspec, mtl, old-time, parsec }:
      mkDerivation {
@@ -157753,8 +158255,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua";
-       version = "2.3.0";
-       sha256 = "1cw7j3qnvffx7a9h9x71frxlch421ssiggq7fiqr3j8jy12nphag";
+       version = "2.3.1";
+       sha256 = "096x45rz1czsnilpn3my5vyafw9dn8qdnmf0apz0q3y3wa4840j9";
        libraryHaskellDepends = [
          base bytestring containers exceptions hslua-aeson hslua-classes
          hslua-core hslua-marshalling hslua-objectorientation
@@ -157778,8 +158280,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-aeson";
-       version = "2.3.0.1";
-       sha256 = "1fnmzy7s6ry1if61l44a17w681fjzb35rpv1ilfzrf9qfn2dp2l3";
+       version = "2.3.1";
+       sha256 = "1wh6lih9x555vb6mdw8z8968kd88hw9mbxqq4cyqnk6rjl95vjdz";
        libraryHaskellDepends = [
          aeson base bytestring containers hashable hslua-core
          hslua-marshalling mtl scientific text unordered-containers vector
@@ -157801,8 +158303,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-classes";
-       version = "2.3.0";
-       sha256 = "1nfc5jmrla3fv4bacbihana9lvwylhkk2jg6212dv0sdfrll9kcp";
+       version = "2.3.1";
+       sha256 = "185lynrinz1y38346b80jx8ag77ka53sg606wdlgzsqrx7rk66kq";
        libraryHaskellDepends = [
          base bytestring containers exceptions hslua-core hslua-marshalling
          text
@@ -157822,8 +158324,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-cli";
-       version = "1.4.1";
-       sha256 = "18bf1jvrzagdazwxznjngadvybv1amciql6g4ac0iwddlqfvdwg6";
+       version = "1.4.2";
+       sha256 = "0hj6j673qcv8ffiza263b0b3r5br6ak0nl61g40km7jxmf293n7v";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -157841,8 +158343,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-core";
-       version = "2.3.1";
-       sha256 = "19dg418pr48middc6r11diwdba8g0511vis47w8zr4c7kgfiichy";
+       version = "2.3.2";
+       sha256 = "0h3d2r5wkbz0d2gylmc282mn0c7b7bfglmchr5hs7vq20206zv0l";
        libraryHaskellDepends = [
          base bytestring exceptions lua mtl text
        ];
@@ -157886,8 +158388,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-marshalling";
-       version = "2.3.0";
-       sha256 = "04352ypmw063waxgxg4dsg8p5lpzsic7shn4q1dk48blw0x0c0gc";
+       version = "2.3.1";
+       sha256 = "0v7hpzhj24zif89x4h2j3ji1ch7qifj7xh4r1rfvbsg48pzxjj89";
        libraryHaskellDepends = [
          base bytestring containers hslua-core mtl text
        ];
@@ -157906,8 +158408,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-module-doclayout";
-       version = "1.1.0";
-       sha256 = "1l64ylzh18s09b9jjkz163vphrymkqf0g0l5v7rlzdkl9aa09ck1";
+       version = "1.1.1";
+       sha256 = "051rvq7x8cnby0fv14i9qy0j1d46rkmwbx5b09nqgb51i03wsivf";
        libraryHaskellDepends = [ base doclayout hslua text ];
        testHaskellDepends = [
          base doclayout hslua tasty tasty-hunit tasty-lua text
@@ -157922,8 +158424,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-module-path";
-       version = "1.1.0";
-       sha256 = "1cc7n7gnmfhmr7l6p23zdl97cw747mg7i05dinf8g5mb8j9mimdf";
+       version = "1.1.1";
+       sha256 = "035q8ll2bkm25m4q24zby35gy6ihrg21qlqmmk6af8rz09kjyal0";
        libraryHaskellDepends = [
          base filepath hslua-core hslua-marshalling hslua-packaging text
        ];
@@ -157942,8 +158444,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-module-system";
-       version = "1.1.0.1";
-       sha256 = "1r8aqgyp4hbqdil7dq9x93dbbwl1mr98lc6y0kxwggq593j6dj06";
+       version = "1.1.1";
+       sha256 = "0adjxcyxb8xc98jj2r6xhbswqkqvs4c40sn4m9gl0bkjhh0nk57q";
        libraryHaskellDepends = [
          base directory exceptions hslua-core hslua-marshalling
          hslua-packaging temporary text
@@ -157961,8 +158463,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-module-text";
-       version = "1.1.0.1";
-       sha256 = "189zm207cg8lfpd41mnd7x26p6cbvgwpmpjrm29q9isqvkk5vn1b";
+       version = "1.1.1";
+       sha256 = "16635kdanaiwn5rdmkaga6d9jhw8zrvhpnqsyqm0zap98n6b146b";
        libraryHaskellDepends = [
          base hslua-core hslua-marshalling hslua-packaging text
        ];
@@ -157979,8 +158481,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-module-version";
-       version = "1.1.0";
-       sha256 = "1n351wyb60mrnx0xq32qx5d9zapfiizpia8whwbvmnldifjvqsx4";
+       version = "1.1.1";
+       sha256 = "0h0a4gk17bi7hh34yh5dva7zz1pyc5b8lm8kij5ri3jnsm259r29";
        libraryHaskellDepends = [
          base filepath hslua-core hslua-marshalling hslua-packaging text
        ];
@@ -158000,8 +158502,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-module-zip";
-       version = "1.1.0";
-       sha256 = "0wk3p3gn3c25i4cn5g4bk0vx560gf4k33ckbc55fry1gdkhbxnmh";
+       version = "1.1.1";
+       sha256 = "0cpfric0c5isb8nk6137iwl40x0w0lrynx5rzjyhrcjxawkz1hbx";
        libraryHaskellDepends = [
          base bytestring filepath hslua-core hslua-list hslua-marshalling
          hslua-packaging hslua-typing text time zip-archive
@@ -158023,8 +158525,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-objectorientation";
-       version = "2.3.0";
-       sha256 = "07g600clzh0dp5zsc7v3ki3h4xnrzv2cvjqxy200qbw75n4imdag";
+       version = "2.3.1";
+       sha256 = "1avxiqcr2k4wdi3da1h4qwis589xvvdz0abggcklbigjc08vf90q";
        libraryHaskellDepends = [
          base bytestring containers exceptions hslua-core hslua-marshalling
          hslua-typing mtl text
@@ -158045,8 +158547,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-packaging";
-       version = "2.3.0";
-       sha256 = "1k1zdd6pk61yxdcflzwjgxv19psfjw8b6k6k19jk311s9kjm7fi1";
+       version = "2.3.1";
+       sha256 = "0wr1az0mq0q4xk0x4an0sxsnnjvpcfhcgqdlmp23yylzkbbaxp1n";
        libraryHaskellDepends = [
          base containers hslua-core hslua-marshalling
          hslua-objectorientation hslua-typing mtl text
@@ -158065,8 +158567,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-repl";
-       version = "0.1.1";
-       sha256 = "1kpn8l1pq1p9czc5w3w6v0mm9z94ssa4kn45863w6x8r45gb71ph";
+       version = "0.1.2";
+       sha256 = "00n624vs0509sy8lmnid97nfmlwpi60wzibpkjsj5nbmp0xcsi42";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -158083,8 +158585,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-typing";
-       version = "0.1.0";
-       sha256 = "00lhb84rkzcgzyfq16p1jyhdp060lbfydl9wpysa5q7vwfml11xi";
+       version = "0.1.1";
+       sha256 = "0k09g97ysi5db6a3rdfj2j6wsb12dbhvnbcgqvy686mpa6rwg6j4";
        libraryHaskellDepends = [
          base containers hslua-core hslua-marshalling text
        ];
@@ -158385,6 +158887,8 @@ self: {
        libraryHaskellDepends = [ base mtl text ];
        description = "Haskell Server Pages is a library for writing dynamic server-side web pages";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hsp-cgi" = callPackage
@@ -158442,6 +158946,8 @@ self: {
        pname = "hspear";
        version = "0.14";
        sha256 = "1h3av9mpgsqfdrd817fz0isqrxn3lxmjyanw33dk9jax136ivi1h";
+       revision = "1";
+       editedCabalFile = "1ipjlmkxd5zxr45na9iiv2pxyfzqzck4zphvd4a2myj0z5p7r472";
        libraryHaskellDepends = [
          base bytestring bytestring-lexing split utf8-string zlib
        ];
@@ -158473,21 +158979,6 @@ self: {
      }:
      mkDerivation {
        pname = "hspec";
-       version = "2.10.10";
-       sha256 = "1903bm001vh9cxmhh87p3c76136dl6aq82srqgvdb5hpsmimwjws";
-       libraryHaskellDepends = [
-         base hspec-core hspec-discover hspec-expectations QuickCheck
-       ];
-       description = "A Testing Framework for Haskell";
-       license = lib.licenses.mit;
-     }) {};
-
-  "hspec_2_11_7" = callPackage
-    ({ mkDerivation, base, hspec-core, hspec-discover
-     , hspec-expectations, QuickCheck
-     }:
-     mkDerivation {
-       pname = "hspec";
        version = "2.11.7";
        sha256 = "15ihdrs1jiy1skk7gcr5y7rpfk2fbqpg470kjqzi794vpn510gia";
        libraryHaskellDepends = [
@@ -158495,7 +158986,6 @@ self: {
        ];
        description = "A Testing Framework for Haskell";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hspec-api" = callPackage
@@ -158511,8 +159001,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A Testing Framework for Haskell";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hspec-attoparsec" = callPackage
@@ -158607,36 +159095,6 @@ self: {
     ({ mkDerivation, ansi-terminal, array, base, base-orphans
      , call-stack, deepseq, directory, filepath, haskell-lexer
      , hspec-expectations, hspec-meta, HUnit, process, QuickCheck
-     , quickcheck-io, random, setenv, silently, stm, temporary
-     , tf-random, time, transformers
-     }:
-     mkDerivation {
-       pname = "hspec-core";
-       version = "2.10.10";
-       sha256 = "1djmiy5xjnx71bjagmvipc5dsnvhakm03y72g3vyg7iggxqr6iv4";
-       revision = "1";
-       editedCabalFile = "0v8byijhsb93ql72n80p6m78yij1axa53fbbnbx1949p5nlzbnnh";
-       libraryHaskellDepends = [
-         ansi-terminal array base call-stack deepseq directory filepath
-         haskell-lexer hspec-expectations HUnit process QuickCheck
-         quickcheck-io random setenv stm tf-random time transformers
-       ];
-       testHaskellDepends = [
-         ansi-terminal array base base-orphans call-stack deepseq directory
-         filepath haskell-lexer hspec-expectations hspec-meta HUnit process
-         QuickCheck quickcheck-io random setenv silently stm temporary
-         tf-random time transformers
-       ];
-       testToolDepends = [ hspec-meta ];
-       testTarget = "--test-option=--skip --test-option='Test.Hspec.Core.Runner.hspecResult runs specs in parallel'";
-       description = "A Testing Framework for Haskell";
-       license = lib.licenses.mit;
-     }) {};
-
-  "hspec-core_2_11_7" = callPackage
-    ({ mkDerivation, ansi-terminal, array, base, base-orphans
-     , call-stack, deepseq, directory, filepath, haskell-lexer
-     , hspec-expectations, hspec-meta, HUnit, process, QuickCheck
      , quickcheck-io, random, silently, stm, temporary, tf-random, time
      , transformers
      }:
@@ -158659,7 +159117,6 @@ self: {
        testTarget = "--test-option=--skip --test-option='Test.Hspec.Core.Runner.hspecResult runs specs in parallel'";
        description = "A Testing Framework for Haskell";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hspec-dirstream" = callPackage
@@ -158680,6 +159137,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Helper functions to simplify adding integration tests";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hspec-discover_2_7_10" = callPackage
@@ -158710,28 +159168,6 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-discover";
-       version = "2.10.10";
-       sha256 = "0cig2l1l8wgxrg2s2srzsrws5vqa0fgf249gb1g222x91s63h2d8";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base directory filepath ];
-       executableHaskellDepends = [ base directory filepath ];
-       testHaskellDepends = [
-         base directory filepath hspec-meta mockery QuickCheck
-       ];
-       testToolDepends = [ hspec-meta ];
-       description = "Automatically discover and run Hspec tests";
-       license = lib.licenses.mit;
-       mainProgram = "hspec-discover";
-       maintainers = [ lib.maintainers.maralorn ];
-     }) {};
-
-  "hspec-discover_2_11_7" = callPackage
-    ({ mkDerivation, base, directory, filepath, hspec-meta, mockery
-     , QuickCheck
-     }:
-     mkDerivation {
-       pname = "hspec-discover";
        version = "2.11.7";
        sha256 = "0anq2b6sg9jmhlwqivgld7w9ipl2nj0rnrc5v46k5ss5pcqb4qi8";
        isLibrary = true;
@@ -158744,7 +159180,6 @@ self: {
        testToolDepends = [ hspec-meta ];
        description = "Automatically discover and run Hspec tests";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "hspec-discover";
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
@@ -158753,18 +159188,6 @@ self: {
     ({ mkDerivation, base, call-stack, HUnit, nanospec }:
      mkDerivation {
        pname = "hspec-expectations";
-       version = "0.8.2";
-       sha256 = "1vxl9zazbaapijr6zmcj72j9wf7ka1pirrjbwddwwddg3zm0g5l1";
-       libraryHaskellDepends = [ base call-stack HUnit ];
-       testHaskellDepends = [ base call-stack HUnit nanospec ];
-       description = "Catchy combinators for HUnit";
-       license = lib.licenses.mit;
-     }) {};
-
-  "hspec-expectations_0_8_4" = callPackage
-    ({ mkDerivation, base, call-stack, HUnit, nanospec }:
-     mkDerivation {
-       pname = "hspec-expectations";
        version = "0.8.4";
        sha256 = "1zr1pqchcwglfr5dvcrgc1l5x924n9w09n2zr68dmkqf4dzdx3bv";
        revision = "2";
@@ -158773,7 +159196,6 @@ self: {
        testHaskellDepends = [ base call-stack HUnit nanospec ];
        description = "Catchy combinators for HUnit";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hspec-expectations-json" = callPackage
@@ -158894,7 +159316,6 @@ self: {
        testHaskellDepends = [ base hspec hspec-api hspec-core ];
        description = "A Formatter for hspec that provides Github Actions Annotations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hspec-golden_0_1_0_3" = callPackage
@@ -158973,24 +159394,6 @@ self: {
      }) {};
 
   "hspec-hedgehog" = callPackage
-    ({ mkDerivation, base, hedgehog, hspec, hspec-core, HUnit
-     , QuickCheck, splitmix
-     }:
-     mkDerivation {
-       pname = "hspec-hedgehog";
-       version = "0.0.1.2";
-       sha256 = "17gbr4ssnzjk7nvpsnh47av6vd9wz27ax92xvr4jwyw0z7h2wn13";
-       revision = "1";
-       editedCabalFile = "1qv2gap0775d2zg8wbd3kq4ypziz05qlz5jfisvl3jfd6jzcf2ad";
-       libraryHaskellDepends = [
-         base hedgehog hspec hspec-core HUnit QuickCheck splitmix
-       ];
-       testHaskellDepends = [ base hedgehog hspec ];
-       description = "Integrate Hedgehog and Hspec!";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "hspec-hedgehog_0_1_1_0" = callPackage
     ({ mkDerivation, base, hedgehog, hspec, hspec-core, QuickCheck
      , splitmix
      }:
@@ -159004,7 +159407,6 @@ self: {
        testHaskellDepends = [ base hedgehog hspec ];
        description = "Integrate Hedgehog and Hspec!";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hspec-jenkins" = callPackage
@@ -159126,32 +159528,6 @@ self: {
      }) {};
 
   "hspec-meta" = callPackage
-    ({ mkDerivation, ansi-terminal, array, base, call-stack, clock
-     , deepseq, directory, filepath, ghc, ghc-boot-th, QuickCheck
-     , quickcheck-io, random, setenv, stm, time, transformers
-     }:
-     mkDerivation {
-       pname = "hspec-meta";
-       version = "2.10.5";
-       sha256 = "0jgagvmvp3nvz9vdgvr42x0xv7nnjzz1rshs6x4wzc38qvcrssbn";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         ansi-terminal array base call-stack clock deepseq directory
-         filepath ghc ghc-boot-th QuickCheck quickcheck-io random setenv stm
-         time transformers
-       ];
-       executableHaskellDepends = [
-         ansi-terminal array base call-stack clock deepseq directory
-         filepath ghc ghc-boot-th QuickCheck quickcheck-io random setenv
-         time transformers
-       ];
-       description = "A version of Hspec which is used to test Hspec itself";
-       license = lib.licenses.mit;
-       mainProgram = "hspec-meta-discover";
-     }) {};
-
-  "hspec-meta_2_11_7" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, call-stack, deepseq
      , directory, filepath, haskell-lexer, hspec-expectations, HUnit
      , process, QuickCheck, quickcheck-io, random, stm, tf-random, time
@@ -159175,7 +159551,6 @@ self: {
        ];
        description = "A version of Hspec which is used to test Hspec itself";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "hspec-meta-discover";
      }) {};
 
@@ -159384,6 +159759,7 @@ self: {
        description = "A library for testing with Hspec and the Snap Web Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hspec-stack-rerun" = callPackage
@@ -159472,19 +159848,19 @@ self: {
     ({ mkDerivation, base, hspec, tmp-proc }:
      mkDerivation {
        pname = "hspec-tmp-proc";
-       version = "0.5.1.2";
-       sha256 = "0d3igvda8a0lhqzvvzrf1ck8nmif4w447gkjyq6g87am883a078v";
+       version = "0.5.2.0";
+       sha256 = "0p5mjcapvplw21bkiknpg30f583d7ssvh06fc2yg004m0ar9y7na";
        libraryHaskellDepends = [ base hspec tmp-proc ];
        description = "Simplify use of tmp-proc from hspec tests";
        license = lib.licenses.bsd3;
      }) {};
 
-  "hspec-tmp-proc_0_5_2_0" = callPackage
+  "hspec-tmp-proc_0_6_0_0" = callPackage
     ({ mkDerivation, base, hspec, tmp-proc }:
      mkDerivation {
        pname = "hspec-tmp-proc";
-       version = "0.5.2.0";
-       sha256 = "0p5mjcapvplw21bkiknpg30f583d7ssvh06fc2yg004m0ar9y7na";
+       version = "0.6.0.0";
+       sha256 = "09qigl93brpsw2h043xjah7rfmibv1a2762i4qf7lpki84sjg6d5";
        libraryHaskellDepends = [ base hspec tmp-proc ];
        description = "Simplify use of tmp-proc from hspec tests";
        license = lib.licenses.bsd3;
@@ -160025,6 +160401,7 @@ self: {
        ];
        description = "get haskell source code info";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hssqlppp" = callPackage
@@ -160412,6 +160789,7 @@ self: {
        ];
        description = "hsp+jmacro support";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hsx-xhtml" = callPackage
@@ -160446,7 +160824,9 @@ self: {
        ];
        description = "HSX (Haskell Source with XML) allows literal XML syntax in Haskell source code";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hsx2hs";
+       broken = true;
      }) {};
 
   "hsyscall" = callPackage
@@ -160534,6 +160914,8 @@ self: {
        pname = "htaglib";
        version = "1.2.1";
        sha256 = "11dv4am3xkdia6aqcy5sx0v11bb339b3gxs9yzv0fvjbpm6hszkg";
+       revision = "1";
+       editedCabalFile = "1wh099x04dn55c3xxsbhwdlcw3x0i7341hls4ix0298yjj6ngl3f";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base bytestring text ];
        librarySystemDepends = [ taglib ];
@@ -160556,34 +160938,38 @@ self: {
        ];
        description = "A Haskell98 parsing tags program similar to ctags";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "htags";
+       broken = true;
      }) {};
 
   "htalkat" = callPackage
     ({ mkDerivation, array, asn1-encoding, asn1-types, base, bytestring
-     , containers, cryptonite, data-default-class, data-hash, directory
-     , exceptions, filelock, filepath, hourglass, hscurses, memory, mtl
-     , ncurses, network, network-simple, pem, process, rset, safe
-     , temporary, text, time, tls, transformers, unix, x509
-     , x509-validation
+     , containers, crypton, crypton-x509, crypton-x509-validation
+     , data-default-class, data-hash, directory, exceptions, filelock
+     , filepath, hourglass, hscurses, memory, mtl, ncurses, network
+     , network-simple, pem, process, rset, safe, temporary, text, time
+     , tls, transformers, unix
      }:
      mkDerivation {
        pname = "htalkat";
-       version = "0.1.2.3";
-       sha256 = "1z2mdkacnchrjd2w1czgwjr0gnm63d9mm500br7r89gc0qjkbi26";
+       version = "0.1.2.4";
+       sha256 = "0ckqri1ilkjgr71774y7hsdp3w9if5yr99lldxsprmz5k30csrnx";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         array asn1-encoding asn1-types base bytestring containers
-         cryptonite data-default-class data-hash directory exceptions
-         filelock filepath hourglass hscurses memory mtl network
-         network-simple pem process rset safe temporary text time tls
-         transformers unix x509 x509-validation
+         array asn1-encoding asn1-types base bytestring containers crypton
+         crypton-x509 crypton-x509-validation data-default-class data-hash
+         directory exceptions filelock filepath hourglass hscurses memory
+         mtl network network-simple pem process rset safe temporary text
+         time tls transformers unix
        ];
        executablePkgconfigDepends = [ ncurses ];
        description = "Talk across TLS";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "htalkat";
+       broken = true;
      }) {inherit (pkgs) ncurses;};
 
   "htar" = callPackage
@@ -160791,8 +161177,8 @@ self: {
     ({ mkDerivation, attoparsec, base, text, unordered-containers }:
      mkDerivation {
        pname = "html-entities";
-       version = "1.1.4.6";
-       sha256 = "16b1n73qg7sv5is18i0zyg5x1i68zw2h9nh115zlqnavmdj913yv";
+       version = "1.1.4.7";
+       sha256 = "0xyg4jal4whh21c6cbizw0phgydgw0873wz7pmh8b5lngpkfcs0m";
        libraryHaskellDepends = [
          attoparsec base text unordered-containers
        ];
@@ -161007,6 +161393,7 @@ self: {
        ];
        description = "HTML to Hamlet converter";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "html2hamlet";
      }) {};
 
@@ -161081,34 +161468,6 @@ self: {
 
   "htoml-megaparsec" = callPackage
     ({ mkDerivation, aeson, base, bytestring, composition-prelude
-     , containers, criterion, deepseq, file-embed, megaparsec, mtl
-     , tasty, tasty-hspec, tasty-hunit, text, time, unordered-containers
-     , vector
-     }:
-     mkDerivation {
-       pname = "htoml-megaparsec";
-       version = "2.1.0.4";
-       sha256 = "08pka0z97b461bf45nvh9gymbvbwhn2dh70dy7x22xmzrigxnxw1";
-       revision = "1";
-       editedCabalFile = "0sziwadc2wlkfpip65d0v2wl6ldlcbn1fww4bwgw4rvmfhyrwbbc";
-       libraryHaskellDepends = [
-         base composition-prelude containers deepseq megaparsec mtl text
-         time unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers file-embed megaparsec tasty
-         tasty-hspec tasty-hunit text time unordered-containers vector
-       ];
-       benchmarkHaskellDepends = [ base criterion text ];
-       doHaddock = false;
-       description = "Parser for TOML files";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "htoml-megaparsec_2_1_0_5" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, composition-prelude
      , containers, criterion, deepseq, file-embed, hspec, megaparsec
      , mtl, tasty, tasty-hspec, tasty-hunit, text, time
      , unordered-containers, vector
@@ -161278,10 +161637,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-api-data";
-       version = "0.5";
-       sha256 = "0gxpfrkr83gq5kndfbyg03ps0g421bn4vafdqng7wmnn5hhb9vgp";
-       revision = "1";
-       editedCabalFile = "1gcqa0lm804cqv1xdaxz87mg0fv7d98i57px8al7qgdzpldma17k";
+       version = "0.5.1";
+       sha256 = "0aqjfzxzk3z9qqxrf80sjarnxxkp016z86n3gira4fg14i4ccrk1";
        libraryHaskellDepends = [
          attoparsec attoparsec-iso8601 base base-compat bytestring
          containers cookie hashable http-types tagged text time-compat
@@ -161333,8 +161690,8 @@ self: {
        pname = "http-api-data-qq";
        version = "0.1.0.0";
        sha256 = "1lvfdbprdwq09k1wkjfvvkpi79053dc4kzkv4g1cx94qb1flbd7a";
-       revision = "4";
-       editedCabalFile = "1v9jac4aigxyk6a6v7ydxsbwsi6pwlchxnph58vb66xyb17cazsn";
+       revision = "5";
+       editedCabalFile = "0j7iv1br4ijawc1l85zdh7h9i005qnqbm2gamrca09alv3m9m72v";
        libraryHaskellDepends = [
          base http-api-data template-haskell text
        ];
@@ -161369,8 +161726,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-client";
-       version = "0.7.15";
-       sha256 = "092pqpd9g66pm0w65xmm4k1j8whnzq9xq22dy7xmxh122dydhflm";
+       version = "0.7.16";
+       sha256 = "14b21i0dzl7q21ly3gkgc1ybpdhw4gdjhlgzyfp88q1hjj7wm11s";
        libraryHaskellDepends = [
          array async base base64-bytestring blaze-builder bytestring
          case-insensitive containers cookie deepseq exceptions filepath
@@ -161541,22 +161898,6 @@ self: {
      }) {};
 
   "http-client-restricted" = callPackage
-    ({ mkDerivation, base, connection, data-default, http-client
-     , http-client-tls, network, network-bsd, utf8-string
-     }:
-     mkDerivation {
-       pname = "http-client-restricted";
-       version = "0.0.5";
-       sha256 = "1vfm9qc3zr0rmq2ddgyg13i67020cdk8xqhyzfc2zcn1km2p6r85";
-       libraryHaskellDepends = [
-         base connection data-default http-client http-client-tls network
-         network-bsd utf8-string
-       ];
-       description = "restricting the servers that http-client will use";
-       license = lib.licenses.mit;
-     }) {};
-
-  "http-client-restricted_0_1_0" = callPackage
     ({ mkDerivation, base, crypton-connection, data-default
      , http-client, http-client-tls, network, network-bsd, utf8-string
      }:
@@ -161570,7 +161911,6 @@ self: {
        ];
        description = "restricting the servers that http-client will use";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "http-client-rustls" = callPackage
@@ -161632,30 +161972,6 @@ self: {
      }) {};
 
   "http-client-tls" = callPackage
-    ({ mkDerivation, base, bytestring, case-insensitive, connection
-     , containers, cryptonite, data-default-class, exceptions, gauge
-     , hspec, http-client, http-types, memory, network, network-uri
-     , text, tls, transformers
-     }:
-     mkDerivation {
-       pname = "http-client-tls";
-       version = "0.3.6.1";
-       sha256 = "03f8p9gxdzl6slyw1r6vpv2dqhsyjvbaawbjv75kaq0vlj3gz7xi";
-       libraryHaskellDepends = [
-         base bytestring case-insensitive connection containers cryptonite
-         data-default-class exceptions http-client http-types memory network
-         network-uri text tls transformers
-       ];
-       testHaskellDepends = [
-         base connection hspec http-client http-types
-       ];
-       benchmarkHaskellDepends = [ base gauge http-client ];
-       doCheck = false;
-       description = "http-client backend using the connection package and tls library";
-       license = lib.licenses.mit;
-     }) {};
-
-  "http-client-tls_0_3_6_3" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, containers
      , crypton, crypton-connection, data-default-class, exceptions
      , gauge, hspec, http-client, http-types, memory, network
@@ -161677,7 +161993,6 @@ self: {
        doCheck = false;
        description = "http-client backend using the connection package and tls library";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "http-client-websockets" = callPackage
@@ -161716,36 +162031,6 @@ self: {
      }) {};
 
   "http-conduit" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, blaze-builder, bytestring
-     , case-insensitive, conduit, conduit-extra, cookie
-     , data-default-class, hspec, http-client, http-client-tls
-     , http-types, HUnit, mtl, network, resourcet, streaming-commons
-     , temporary, text, time, tls, transformers, unliftio, unliftio-core
-     , utf8-string, wai, wai-conduit, warp, warp-tls
-     }:
-     mkDerivation {
-       pname = "http-conduit";
-       version = "2.3.8.1";
-       sha256 = "11zf4hyw8f1gpj0w1cmgc9g62xwy2v4hhzqazdsla4q49iqbzxgd";
-       revision = "1";
-       editedCabalFile = "1wvr0v948s5fmlf47r4pqjan355x6v65rm7dz7y65ngj10xwk5f9";
-       libraryHaskellDepends = [
-         aeson attoparsec base bytestring conduit conduit-extra http-client
-         http-client-tls http-types mtl resourcet transformers unliftio-core
-       ];
-       testHaskellDepends = [
-         aeson base blaze-builder bytestring case-insensitive conduit
-         conduit-extra cookie data-default-class hspec http-client
-         http-types HUnit network resourcet streaming-commons temporary text
-         time tls transformers unliftio utf8-string wai wai-conduit warp
-         warp-tls
-       ];
-       doCheck = false;
-       description = "HTTP client package with conduit interface and HTTPS support";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "http-conduit_2_3_8_3" = callPackage
     ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base
      , blaze-builder, bytestring, case-insensitive, conduit
      , conduit-extra, cookie, crypton-connection, data-default-class
@@ -161773,7 +162058,6 @@ self: {
        doCheck = false;
        description = "HTTP client package with conduit interface and HTTPS support";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "http-conduit-browser" = callPackage
@@ -161880,32 +162164,6 @@ self: {
 
   "http-download" = callPackage
     ({ mkDerivation, base, base64-bytestring, bytestring, conduit
-     , conduit-extra, cryptonite, cryptonite-conduit, directory
-     , exceptions, filepath, hspec, hspec-discover, http-client
-     , http-conduit, http-types, memory, path, path-io, retry, rio
-     , rio-prettyprint
-     }:
-     mkDerivation {
-       pname = "http-download";
-       version = "0.2.0.0";
-       sha256 = "1wg5jck0h52dysdn0q5xs7gh8cjyq2qr9vaj7qa4fr3am1753n8v";
-       libraryHaskellDepends = [
-         base base64-bytestring bytestring conduit conduit-extra cryptonite
-         cryptonite-conduit directory exceptions filepath http-client
-         http-conduit http-types memory path path-io retry rio
-         rio-prettyprint
-       ];
-       testHaskellDepends = [
-         base cryptonite hspec hspec-discover http-client path path-io retry
-         rio rio-prettyprint
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Verified downloads with retries";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "http-download_0_2_1_0" = callPackage
-    ({ mkDerivation, base, base64-bytestring, bytestring, conduit
      , conduit-extra, crypton, crypton-conduit, directory, exceptions
      , filepath, hspec, hspec-discover, http-client, http-conduit
      , http-types, memory, path, path-io, retry, rio, rio-prettyprint
@@ -161927,7 +162185,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Verified downloads with retries";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "http-encodings" = callPackage
@@ -161980,8 +162237,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-exchange";
-       version = "0.1.1.0";
-       sha256 = "0v3zgl324f6xinjiymlc90w7s22yir49rdn3nvrj1lrixrvkdgv9";
+       version = "0.2.0.0";
+       sha256 = "0sn0ard8sbp8lkgn5xyxyyahh3ii34nq1rggq5b2wyvlkvp07lys";
        libraryHaskellDepends = [
          base byteslice bytesmith http-interchange primitive text
        ];
@@ -162039,8 +162296,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-interchange";
-       version = "0.3.1.0";
-       sha256 = "1qz7ims2n51db6lcv4lg22z0w36abgn9yzpqc7jd438xlc40j137";
+       version = "0.3.2.1";
+       sha256 = "1jji8wjdivpwd4zmhljn39d2rwvrlyxz7gmnacm8qkjmfhkhppkq";
        libraryHaskellDepends = [
          base bytebuild byteslice bytesmith contiguous primitive text
        ];
@@ -162060,13 +162317,13 @@ self: {
      , bytestring, case-insensitive, containers, cryptohash-sha1
      , directory, HsOpenSSL, hspec, hspec-expectations, HUnit
      , io-streams, lifted-base, mtl, network, network-uri
-     , openssl-streams, snap, snap-core, snap-server, system-fileio
-     , system-filepath, text, transformers, unordered-containers, xor
+     , openssl-streams, snap, snap-core, snap-server, system-filepath
+     , text, transformers, unordered-containers, xor
      }:
      mkDerivation {
        pname = "http-io-streams";
-       version = "0.1.6.3";
-       sha256 = "0m8g00gjwvbjjnvph93c54dm0s5g34zf1ycjd0v5m3ghgsi79q23";
+       version = "0.1.6.4";
+       sha256 = "134jzsgv53nagbpv3p6pyhi4mdmkmhvfmwh1v6j87rm7jkah1m6k";
        libraryHaskellDepends = [
          attoparsec base base64-bytestring binary blaze-builder
          brotli-streams bytestring case-insensitive containers
@@ -162078,8 +162335,39 @@ self: {
          base64-bytestring blaze-builder bytestring case-insensitive
          containers directory HsOpenSSL hspec hspec-expectations HUnit
          io-streams lifted-base mtl network network-uri openssl-streams snap
-         snap-core snap-server system-fileio system-filepath text
-         transformers unordered-containers
+         snap-core snap-server system-filepath text transformers
+         unordered-containers
+       ];
+       description = "HTTP and WebSocket client based on io-streams";
+       license = "BSD-3-Clause AND GPL-2.0-or-later";
+     }) {};
+
+  "http-io-streams_0_1_7_0" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, attoparsec, attoparsec-aeson
+     , base, base64-bytestring, binary, blaze-builder, brotli-streams
+     , bytestring, case-insensitive, containers, cryptohash-sha1
+     , directory, HsOpenSSL, hspec, hspec-expectations, HUnit
+     , io-streams, lifted-base, mtl, network, network-uri
+     , openssl-streams, snap, snap-core, snap-server, system-filepath
+     , text, transformers, unordered-containers, xor
+     }:
+     mkDerivation {
+       pname = "http-io-streams";
+       version = "0.1.7.0";
+       sha256 = "14jn78jby18h0jnmpx523nq3wnpr4l65mn746rzmq6z49p513wmg";
+       libraryHaskellDepends = [
+         attoparsec base base64-bytestring binary blaze-builder
+         brotli-streams bytestring case-insensitive containers
+         cryptohash-sha1 directory HsOpenSSL io-streams mtl network
+         network-uri openssl-streams text transformers xor
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty attoparsec attoparsec-aeson base
+         base64-bytestring blaze-builder bytestring case-insensitive
+         containers directory HsOpenSSL hspec hspec-expectations HUnit
+         io-streams lifted-base mtl network network-uri openssl-streams snap
+         snap-core snap-server system-filepath text transformers
+         unordered-containers
        ];
        description = "HTTP and WebSocket client based on io-streams";
        license = "BSD-3-Clause AND GPL-2.0-or-later";
@@ -162474,6 +162762,25 @@ self: {
        broken = true;
      }) {};
 
+  "http-slim" = callPackage
+    ({ mkDerivation, array, base, bytestring, containers, HsOpenSSL
+     , mtl, network, network-bsd, network-uri, parsec, time
+     , transformers
+     }:
+     mkDerivation {
+       pname = "http-slim";
+       version = "1.0";
+       sha256 = "0jqm1id1n0zyz78610xqc5rvr6fa0r5qiavj4v1idp1rvcfp2iif";
+       libraryHaskellDepends = [
+         array base bytestring containers HsOpenSSL mtl network network-bsd
+         network-uri parsec time transformers
+       ];
+       description = "A library for client/server HTTP with TLS support";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "http-streams" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, attoparsec-aeson
      , base, base64-bytestring, blaze-builder, bytestring
@@ -162520,7 +162827,9 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Test framework for HTTP APIs";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "test-http-test-bayeshive";
+       broken = true;
      }) {};
 
   "http-trace" = callPackage
@@ -162613,25 +162922,25 @@ self: {
     ({ mkDerivation, aeson, aeson-pretty, array, async, base
      , base16-bytestring, bytestring, case-insensitive, containers
      , crypton, directory, filepath, gauge, Glob, hspec, hspec-discover
-     , http-types, network, network-byte-order, network-run, psqueues
-     , stm, text, time-manager, typed-process, unix-time, unliftio
-     , unordered-containers, vector
+     , http-types, network, network-byte-order, network-control
+     , network-run, random, stm, text, time-manager, typed-process
+     , unix-time, unliftio, unordered-containers, vector
      }:
      mkDerivation {
        pname = "http2";
-       version = "4.1.4";
-       sha256 = "1mi0nahsbv0amcb9r21d8p4j1nk8y75vli8a9axjg2y3yi3i95bx";
+       version = "5.0.1";
+       sha256 = "1mcrlh0j7m7iqfc69p0n7hxysj8cyid6vaqax3ww7dskhwdzbw1v";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          array async base bytestring case-insensitive containers http-types
-         network network-byte-order psqueues stm time-manager unix-time
-         unliftio
+         network network-byte-order network-control stm time-manager
+         unix-time unliftio
        ];
        testHaskellDepends = [
          aeson aeson-pretty async base base16-bytestring bytestring crypton
          directory filepath Glob hspec http-types network network-byte-order
-         network-run text typed-process unordered-containers vector
+         network-run random text typed-process unordered-containers vector
        ];
        testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
@@ -162642,24 +162951,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "http2_5_0_0" = callPackage
+  "http2_5_1_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, array, async, base
      , base16-bytestring, bytestring, case-insensitive, containers
      , crypton, directory, filepath, gauge, Glob, hspec, hspec-discover
      , http-types, network, network-byte-order, network-control
      , network-run, random, stm, text, time-manager, typed-process
-     , unix-time, unliftio, unordered-containers, vector
+     , unix-time, unliftio, unordered-containers, utf8-string, vector
      }:
      mkDerivation {
        pname = "http2";
-       version = "5.0.0";
-       sha256 = "1bccbndd7nvqr9rdia1pdha50w3hxca5vpb0qv8zd2w9acy2flk3";
+       version = "5.1.1";
+       sha256 = "16afjhl13irl6lf0pxsjpcfsvjr3kbsmzs4l536q4j70wqkjkw2q";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          array async base bytestring case-insensitive containers http-types
          network network-byte-order network-control stm time-manager
-         unix-time unliftio
+         unix-time unliftio utf8-string
        ];
        testHaskellDepends = [
          aeson aeson-pretty async base base16-bytestring bytestring crypton
@@ -162685,8 +162994,8 @@ self: {
        pname = "http2-client";
        version = "0.10.0.0";
        sha256 = "0kv4qa9cbwwj6b62manzpl1sk4jnsb5vx2y73w49drlfkrw1vpgy";
-       revision = "1";
-       editedCabalFile = "18ilcli28jfm914v1l059z74cj43m4xfwqk2wfhhw0vyvw2n8ryi";
+       revision = "2";
+       editedCabalFile = "02frmqjcpx1d3c3y54z8ajckmd3dkjing3j9xaphmr6i3s9nbpa0";
        libraryHaskellDepends = [
          async base bytestring containers deepseq http2 lifted-async
          lifted-base mtl network stm time tls transformers-base
@@ -162795,15 +163104,16 @@ self: {
     ({ mkDerivation, base, bytestring, crypton-x509-store
      , crypton-x509-validation, data-default-class, http2, network
      , network-control, network-run, recv, time-manager, tls, unliftio
+     , utf8-string
      }:
      mkDerivation {
        pname = "http2-tls";
-       version = "0.2.0";
-       sha256 = "0ijg8kqfl6dzlacplqlqra5yvsaqhyazb90mj6kbqvcll39sbzbc";
+       version = "0.2.4";
+       sha256 = "0bw3hcmdkgvr7xwg8zaxn1sw9v9n619f3176j3wrlvv0ycwv7r9f";
        libraryHaskellDepends = [
          base bytestring crypton-x509-store crypton-x509-validation
          data-default-class http2 network network-control network-run recv
-         time-manager tls unliftio
+         time-manager tls unliftio utf8-string
        ];
        description = "Library for HTTP/2 over TLS";
        license = lib.licenses.bsd3;
@@ -162820,8 +163130,8 @@ self: {
      }:
      mkDerivation {
        pname = "http3";
-       version = "0.0.7";
-       sha256 = "0230cd5vvysbqd256zxz3dz92acps1dyvwmy6hrwmmjv1ghnpcvp";
+       version = "0.0.9";
+       sha256 = "0y6fvkjn5lxh4r8qnnjqkq9r38ziw10smcgrws408wfpm948j3kd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -163009,7 +163319,9 @@ self: {
        ];
        description = "For multiplexing GHC installations and providing development sandboxes";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hub";
+       broken = true;
      }) {};
 
   "hubigraph" = callPackage
@@ -163372,6 +163684,7 @@ self: {
        ];
        description = "Unpacker tool with DWIM";
        license = "GPL";
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hunp";
      }) {};
 
@@ -163548,6 +163861,7 @@ self: {
        ];
        description = "Haskell URL resolver";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hurl-xml" = callPackage
@@ -163614,6 +163928,8 @@ self: {
        ];
        description = "R5RS Scheme interpreter, compiler, and library";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "husk-scheme-libs" = callPackage
@@ -163629,6 +163945,7 @@ self: {
        ];
        description = "Extra libraries for the husk Scheme platform";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "husky" = callPackage
@@ -163751,10 +164068,8 @@ self: {
      }:
      mkDerivation {
        pname = "hw-aeson";
-       version = "0.1.8.0";
-       sha256 = "1x07dpgqhlcvgn1kwq0mmf074x91sl7sn2gxrqrznjdzl8hqw2m2";
-       revision = "2";
-       editedCabalFile = "04vjq54xc354scgzgf863px9fadvw4dr6kgli9rp4plw3sh4k3qg";
+       version = "0.1.9.0";
+       sha256 = "0jnaikswz1df0q3nva2ln3pf2hmnpa6yhw00q46icvbqxyhxnnjj";
        libraryHaskellDepends = [
          aeson base bytestring containers hashable text text-short
          unordered-containers
@@ -163824,6 +164139,8 @@ self: {
        pname = "hw-balancedparens";
        version = "0.4.1.3";
        sha256 = "0cp8nzm99ap0j8qzsn15rxcvxa3k6bywqx0y5ccflpvqysd88wfc";
+       revision = "1";
+       editedCabalFile = "1q8kckqqnw434vaq0mx0q3ayhrzc30v8a7m758747yis8vqxrvjb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -163859,8 +164176,8 @@ self: {
        pname = "hw-bits";
        version = "0.7.2.2";
        sha256 = "1swzr6lz2394p454mqvvgx2fyc1gdm4p9qvv54zyjd67mnhylkq8";
-       revision = "2";
-       editedCabalFile = "1qv1pcy3sfcvpq3wfvimiv2wyy729yk97hswsrh40hlmrws18k2m";
+       revision = "3";
+       editedCabalFile = "0577hryw2hqpa75ydkiajl54yq87xvp2j9s0n4b8h1cfh27pjbcg";
        libraryHaskellDepends = [
          base bitvec bytestring deepseq hw-int hw-prim hw-string-parse
          vector
@@ -163924,6 +164241,8 @@ self: {
        ];
        description = "Conduits for tokenizing streams";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-conduit-merges" = callPackage
@@ -163958,6 +164277,8 @@ self: {
        testToolDepends = [ doctest-discover ];
        description = "Diagnostics library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-dsv" = callPackage
@@ -163970,10 +164291,8 @@ self: {
      }:
      mkDerivation {
        pname = "hw-dsv";
-       version = "0.4.1.1";
-       sha256 = "0xfpkyinwfhjilb428z7nnk84m12b34x29806j1azbv9yfqvhq7z";
-       revision = "2";
-       editedCabalFile = "199xwdcqwdkb62zx91il2naa9j67n4g2rxr9xpmnq1afdl06xzfh";
+       version = "0.4.1.2";
+       sha256 = "1wvz2qdb8xnd9sfm6541ll055p4pqm53w2cgfs5gnb6sqfpyssbg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -164077,6 +164396,7 @@ self: {
        ];
        description = "Elias-Fano";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hw-eliasfano";
      }) {};
 
@@ -164090,8 +164410,8 @@ self: {
        pname = "hw-excess";
        version = "0.2.3.0";
        sha256 = "0xiyf3xyg6f4kgkils9ycx6q0qcsbd6rw4m9lizw9295mnp05s3g";
-       revision = "5";
-       editedCabalFile = "09c7x1qkmjs8bl9gzcb6ykls3jjj75i8hvwdfcx1zgiwg79w1g1k";
+       revision = "6";
+       editedCabalFile = "12gsqph85aqmg17mjg58iaqf1kqadg51r5hqbz98ri2gm6ynx2kd";
        libraryHaskellDepends = [
          base hw-bits hw-prim hw-rankselect-base safe vector
        ];
@@ -164147,6 +164467,8 @@ self: {
        testToolDepends = [ doctest-discover hspec-discover ];
        description = "Generic strict finger-tree structure";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-hedgehog" = callPackage
@@ -164156,8 +164478,8 @@ self: {
        pname = "hw-hedgehog";
        version = "0.1.1.1";
        sha256 = "0kksignrvx566vfz52q5lid9f2zh02dpvnw1gznnkhwnvbldmbi8";
-       revision = "2";
-       editedCabalFile = "0c9wy5jmsmfwz151k9zxfsj5663zz3rsvmr0i9vsv5agw8fb8xhq";
+       revision = "3";
+       editedCabalFile = "0fjk8jl1sik7yi0mnmfcvcgyadslgrl89dx3xldnzfwwl7p5m12v";
        libraryHaskellDepends = [ base hedgehog vector ];
        testHaskellDepends = [ base doctest doctest-discover ];
        testToolDepends = [ doctest-discover ];
@@ -164194,8 +164516,8 @@ self: {
        pname = "hw-int";
        version = "0.0.2.0";
        sha256 = "13ifa28b12hiibhmwas5hn3dmmiz2rihlc837hhii0z1ng03s360";
-       revision = "3";
-       editedCabalFile = "0q6w4a9dnwx1y34dwb439vg25lkpqmgxlq9r3j94sb4h90qm91dw";
+       revision = "4";
+       editedCabalFile = "107j6hnpjphk4x4c4kc33y4jxxf0ji6b1g3381pp3nw06pjj8aqz";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base doctest doctest-discover hedgehog hspec hw-hedgehog
@@ -164216,8 +164538,8 @@ self: {
        pname = "hw-ip";
        version = "2.4.2.1";
        sha256 = "1cwj6402314lblh7cm77j1bkpnjqpsk7rn8z94awqp4pfp4x8dk0";
-       revision = "1";
-       editedCabalFile = "1hfivvc6s1nnzp30h4nafbhjhgbwx1ip07ggqmafzymaw8wvky44";
+       revision = "2";
+       editedCabalFile = "0jkn9474ldwm3dy24lscjv16rx8hb2yr2r10lfgrw3i2y72c7gax";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -164239,26 +164561,27 @@ self: {
      }) {};
 
   "hw-json" = callPackage
-    ({ mkDerivation, aeson, ansi-wl-pprint, attoparsec, base
-     , bits-extra, bytestring, criterion, directory, dlist, doctest
-     , doctest-discover, generic-lens, hedgehog, hspec, hspec-discover
-     , hw-balancedparens, hw-bits, hw-hspec-hedgehog, hw-json-simd
-     , hw-json-simple-cursor, hw-json-standard-cursor, hw-mquery
-     , hw-parser, hw-prim, hw-rankselect, hw-rankselect-base, hw-simd
-     , lens, mmap, optparse-applicative, scientific, text, transformers
+    ({ mkDerivation, aeson, ansi-wl-pprint, attoparsec
+     , attoparsec-aeson, base, bits-extra, bytestring, criterion
+     , directory, dlist, doctest, doctest-discover, generic-lens
+     , hedgehog, hspec, hspec-discover, hw-balancedparens, hw-bits
+     , hw-hspec-hedgehog, hw-json-simd, hw-json-simple-cursor
+     , hw-json-standard-cursor, hw-mquery, hw-parser, hw-prim
+     , hw-rankselect, hw-rankselect-base, hw-simd, lens, mmap
+     , optparse-applicative, scientific, text, transformers
      , unordered-containers, vector, word8
      }:
      mkDerivation {
        pname = "hw-json";
-       version = "1.3.2.4";
-       sha256 = "13cwkivc5sb2nzr7ifldp65aax0kznr3gj1pskamxnig8h3iqdcl";
+       version = "1.3.2.5";
+       sha256 = "0nwwyk7x26xrx3cqnwy6gv1gpjnmw69mfyjqgvky3bdgf9lxncrb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson ansi-wl-pprint attoparsec base bits-extra bytestring dlist
-         hw-balancedparens hw-bits hw-json-simple-cursor
+         aeson ansi-wl-pprint attoparsec attoparsec-aeson base bits-extra
+         bytestring dlist hw-balancedparens hw-bits hw-json-simple-cursor
          hw-json-standard-cursor hw-mquery hw-parser hw-prim hw-rankselect
-         hw-rankselect-base hw-simd mmap text vector word8
+         hw-rankselect-base hw-simd mmap scientific text vector word8
        ];
        executableHaskellDepends = [
          aeson base bytestring dlist generic-lens hw-balancedparens
@@ -164267,11 +164590,11 @@ self: {
          optparse-applicative text unordered-containers vector
        ];
        testHaskellDepends = [
-         aeson attoparsec base bytestring dlist doctest doctest-discover
-         hedgehog hspec hw-balancedparens hw-bits hw-hspec-hedgehog
-         hw-json-simple-cursor hw-json-standard-cursor hw-mquery hw-prim
-         hw-rankselect hw-rankselect-base scientific text transformers
-         vector
+         aeson attoparsec attoparsec-aeson base bytestring dlist doctest
+         doctest-discover hedgehog hspec hw-balancedparens hw-bits
+         hw-hspec-hedgehog hw-json-simple-cursor hw-json-standard-cursor
+         hw-mquery hw-prim hw-rankselect hw-rankselect-base scientific text
+         transformers vector
        ];
        testToolDepends = [ doctest-discover hspec-discover ];
        benchmarkHaskellDepends = [
@@ -164342,6 +164665,8 @@ self: {
        pname = "hw-json-simd";
        version = "0.1.1.2";
        sha256 = "03g2gwmkp6v7b0vf4x8bh4qk91ghr0av5x3c9paj3rp3igycccd6";
+       revision = "1";
+       editedCabalFile = "1s06mj022lggx28hqdsd181xhbbxadqmbzrafxh4nf5q212dwkzb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring hw-prim lens vector ];
@@ -164372,8 +164697,8 @@ self: {
        pname = "hw-json-simple-cursor";
        version = "0.1.1.1";
        sha256 = "0b867rgsybfb568z6qa4x8jqz24wfjydg91w7bsl44vqq0k3hk4f";
-       revision = "2";
-       editedCabalFile = "0zs8hd42j64aymrf06qlkc70cr1jyz0svq78xqwvwxk37pz9r1qq";
+       revision = "3";
+       editedCabalFile = "0krs1nly9gfippcdcp4il5jgrmjlvc83wygn9pa44gcfxql4fjcx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -164412,8 +164737,8 @@ self: {
        pname = "hw-json-standard-cursor";
        version = "0.2.3.2";
        sha256 = "02fmhjnjf0idmzq0y1a1m78bwl72ycvr6cxlscxpc2370r2s3akh";
-       revision = "2";
-       editedCabalFile = "0qsii1d0y22w8hb9pf654fb2qs9ndkysahpabgi0d1q59qv3msx0";
+       revision = "3";
+       editedCabalFile = "1a7n6yjsmlz8ak38ajmn75cw1k69brwh6r6z05hhvaxnjrrbwacd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -164461,6 +164786,7 @@ self: {
        testHaskellDepends = [ base hedgehog hspec hw-hspec-hedgehog ];
        description = "Avro support for Kafka infrastructure";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hw-kafka-client" = callPackage
@@ -164470,30 +164796,6 @@ self: {
      }:
      mkDerivation {
        pname = "hw-kafka-client";
-       version = "4.0.3";
-       sha256 = "1s3wj5ih9mc7vp0w9rymw22w1yxp8z3qi7qmza9qw00aail8c5dg";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base bifunctors bytestring containers text transformers unix
-       ];
-       librarySystemDepends = [ rdkafka ];
-       libraryToolDepends = [ c2hs ];
-       testHaskellDepends = [
-         base bifunctors bytestring containers either hspec monad-loops text
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Kafka bindings for Haskell";
-       license = lib.licenses.mit;
-     }) {inherit (pkgs) rdkafka;};
-
-  "hw-kafka-client_5_3_0" = callPackage
-    ({ mkDerivation, base, bifunctors, bytestring, c2hs, containers
-     , either, hspec, hspec-discover, monad-loops, rdkafka, text
-     , transformers, unix
-     }:
-     mkDerivation {
-       pname = "hw-kafka-client";
        version = "5.3.0";
        sha256 = "0cs7pvp1fvh8k52x2qln7skynpbg9h71p83fgr7wbjf4xx0fs994";
        isLibrary = true;
@@ -164509,7 +164811,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Kafka bindings for Haskell";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) rdkafka;};
 
   "hw-kafka-conduit" = callPackage
@@ -164535,6 +164836,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Conduit bindings for hw-kafka-client";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-lazy" = callPackage
@@ -164554,6 +164857,8 @@ self: {
        testToolDepends = [ doctest-discover hspec-discover ];
        description = "Combinators for lazy IO";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-mquery" = callPackage
@@ -164578,7 +164883,9 @@ self: {
        testToolDepends = [ doctest-discover hspec-discover ];
        description = "Monadic query DSL";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hw-mquery-example";
+       broken = true;
      }) {};
 
   "hw-packed-vector" = callPackage
@@ -164612,7 +164919,9 @@ self: {
        ];
        description = "Packed Vector";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "hw-packed-vector";
+       broken = true;
      }) {};
 
   "hw-parser" = callPackage
@@ -164624,8 +164933,8 @@ self: {
        pname = "hw-parser";
        version = "0.1.1.0";
        sha256 = "1zsbw725mw3fn4814qricqanbvx1kgbnqvgwijqgfv8jz7yf5gxa";
-       revision = "6";
-       editedCabalFile = "1kiak3rgwd62xs2a6lwg638jk45i172i6cja3xjxx8ph15aaq1p7";
+       revision = "7";
+       editedCabalFile = "1cnmvn2ndvcjchmqc7kqr8j5y02vvbq1n8mahz7x13skli7glr7n";
        libraryHaskellDepends = [
          attoparsec base bytestring hw-prim text
        ];
@@ -164664,8 +164973,8 @@ self: {
        pname = "hw-prim";
        version = "0.6.3.2";
        sha256 = "07a442g1fjzrfnz3y9mx3d2hv0ffjnbfdkmbiard8bn78vf5z80z";
-       revision = "1";
-       editedCabalFile = "1wga8ghc001lz9y76ffrdrpqkxpj1lz7qpkykfl66lsqf5pvng32";
+       revision = "2";
+       editedCabalFile = "1mj60fg66piw96kbvp0v4ykr1ihww97rr96ya7ayx5sz49j2hyf0";
        libraryHaskellDepends = [
          base bytestring deepseq ghc-prim mmap transformers unliftio-core
          vector
@@ -164722,8 +165031,8 @@ self: {
        pname = "hw-rankselect";
        version = "0.13.4.1";
        sha256 = "03nf8jwr1qpbfa20y3zlb3z6cxy8ylpdbsy0fvxdjs8q35f7bmx5";
-       revision = "2";
-       editedCabalFile = "0qivfmg1khicyj068y08avcswyrmvl3z4blcdhjp8mj3ygys7n4i";
+       revision = "3";
+       editedCabalFile = "1fwgjhy3wm1bbyqcq62vcf9nvha17bwzb34g2rd6z1v5qr8dm1gi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -164760,8 +165069,8 @@ self: {
        pname = "hw-rankselect-base";
        version = "0.3.4.1";
        sha256 = "1s0lqwq0rjmjca6lshfnxqi0c7bzlyflhm45xw1xa9pvqci8439h";
-       revision = "5";
-       editedCabalFile = "0gaqxa05m6a519zpvhlnhvnd4j5jh0zm9div8z4qx5h0g9g82i1m";
+       revision = "6";
+       editedCabalFile = "0qf6nhmvhb1xpipxvh3jzr1aakswzpg1k0jk4nrczgvmxkxjysiq";
        libraryHaskellDepends = [
          base bits-extra bitvec hw-bits hw-int hw-prim hw-string-parse
          vector
@@ -164789,6 +165098,8 @@ self: {
        pname = "hw-simd";
        version = "0.1.2.2";
        sha256 = "0ipcrv19xwmq6znbmwmzrjahmymmcmpbs7hpx0183hrwbx2hyhqx";
+       revision = "1";
+       editedCabalFile = "0c0wv09q98inana4n70qnv6226506fdw4ghbw1pxqglj0ccallib";
        libraryHaskellDepends = [
          base bits-extra bytestring deepseq hw-bits hw-prim hw-rankselect
          hw-rankselect-base transformers vector
@@ -164883,8 +165194,8 @@ self: {
        pname = "hw-string-parse";
        version = "0.0.0.5";
        sha256 = "0sg5s84pqyl93wm052ifrqv90cyc28awh4i6vcd8zbq746wdqz4k";
-       revision = "1";
-       editedCabalFile = "0afarlf42yfsgbv4lwhl7hnrsxv6b5dilja1660fnxvw350ldiik";
+       revision = "2";
+       editedCabalFile = "0580mz2gr11jc6lyyrnp5jxijzbir8qcsq979bc91jwcvc99kc5r";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base bytestring doctest doctest-discover hspec QuickCheck vector
@@ -164987,27 +165298,25 @@ self: {
      }) {};
 
   "hw-xml" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, array, attoparsec, base
-     , bytestring, cereal, containers, criterion, deepseq, doctest
-     , doctest-discover, generic-lens, ghc-prim, hedgehog, hspec
-     , hspec-discover, hw-balancedparens, hw-bits, hw-hspec-hedgehog
-     , hw-parser, hw-prim, hw-rankselect, hw-rankselect-base, lens, mmap
-     , mtl, optparse-applicative, resourcet, text, transformers, vector
-     , word8
+    ({ mkDerivation, array, attoparsec, base, bytestring, cereal
+     , containers, criterion, deepseq, doctest, doctest-discover
+     , generic-lens, ghc-prim, hedgehog, hspec, hspec-discover
+     , hw-balancedparens, hw-bits, hw-hspec-hedgehog, hw-parser, hw-prim
+     , hw-rankselect, hw-rankselect-base, lens, mmap, mtl
+     , optparse-applicative, prettyprinter, resourcet, text
+     , transformers, vector, word8
      }:
      mkDerivation {
        pname = "hw-xml";
-       version = "0.5.1.1";
-       sha256 = "1gjs2rcm40j3962kw7n02pqim1p485prm1bd2v8hk1ka35c8nq1w";
-       revision = "2";
-       editedCabalFile = "1ckkwz82y1gdkd85zaiild82i6fcbrb3ybkh5s94rbbyaqgjkhv6";
+       version = "0.5.1.2";
+       sha256 = "0zv5dwi4vbacjz3rw62g320p0iy0xya3z2xd4mf238gd9v5fnhd5";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         ansi-wl-pprint array attoparsec base bytestring cereal containers
-         deepseq ghc-prim hw-balancedparens hw-bits hw-parser hw-prim
-         hw-rankselect hw-rankselect-base lens mmap mtl resourcet text
+         array attoparsec base bytestring cereal containers deepseq ghc-prim
+         hw-balancedparens hw-bits hw-parser hw-prim hw-rankselect
+         hw-rankselect-base lens mmap mtl prettyprinter resourcet text
          transformers vector word8
        ];
        executableHaskellDepends = [
@@ -166011,8 +166320,8 @@ self: {
        pname = "hyper";
        version = "0.2.1.1";
        sha256 = "14p7r57g75ny8l9h4ilbm6mhdsfiysfs3rd56300dl0jkpgrh8r2";
-       revision = "2";
-       editedCabalFile = "13r3dafkn9bn8jw1cvw18cc6v6drgj91bmfkgdpfnr5sk3ad6k6n";
+       revision = "4";
+       editedCabalFile = "1fyddc72z9vd37q5xbgfpqp3dfvqkbz1kbgwvhxhk2w5maf06ac3";
        libraryHaskellDepends = [ base blaze-html deepseq text ];
        description = "Display class for the HyperHaskell graphical Haskell interpreter";
        license = lib.licenses.bsd3;
@@ -166026,6 +166335,8 @@ self: {
        pname = "hyper-extra";
        version = "0.2.0.1";
        sha256 = "13ipxwhxrndl505zzxcq7gz874l0r2g0ma1yhq14bihvlwh3qr8d";
+       revision = "1";
+       editedCabalFile = "0vmyidjaskca75582h3lp2wq3x0h2ii03i5fy590c9j6mq8phjdx";
        libraryHaskellDepends = [
          base diagrams-lib diagrams-svg hyper QuickCheck svg-builder text
        ];
@@ -166042,8 +166353,8 @@ self: {
      }:
      mkDerivation {
        pname = "hyper-haskell-server";
-       version = "0.2.3.0";
-       sha256 = "1kb7cfniws4qd10swy7vspgbr93xxnzlbcq5jarmdas2kpn3nyhd";
+       version = "0.2.3.1";
+       sha256 = "0cz1dybzgk5q051r3inv72x154q3qmf5r0hci2cxrb89ncdcszsv";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -166059,25 +166370,26 @@ self: {
 
   "hyperbole" = callPackage
     ({ mkDerivation, base, bytestring, casing, containers, effectful
-     , file-embed, http-api-data, http-types, string-conversions
-     , string-interpolate, text, wai, wai-middleware-static, warp
-     , web-view
+     , file-embed, http-api-data, http-types, network
+     , string-conversions, string-interpolate, text, wai
+     , wai-middleware-static, wai-websockets, warp, web-view, websockets
      }:
      mkDerivation {
        pname = "hyperbole";
-       version = "0.1.2";
-       sha256 = "0jg0dmidcc8l0j932xy5qmfcih15i2dgxgz5s5w0mamwx96apr82";
+       version = "0.2.0";
+       sha256 = "04b9mgcd06dh8v1ki06dbgx9ak070p5h5pb5njyg99s8cykdip5r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring casing containers effectful file-embed
-         http-api-data http-types string-conversions string-interpolate text
-         wai warp web-view
+         http-api-data http-types network string-conversions
+         string-interpolate text wai wai-websockets warp web-view websockets
        ];
        executableHaskellDepends = [
          base bytestring casing containers effectful file-embed
-         http-api-data http-types string-conversions string-interpolate text
-         wai wai-middleware-static warp web-view
+         http-api-data http-types network string-conversions
+         string-interpolate text wai wai-middleware-static wai-websockets
+         warp web-view websockets
        ];
        description = "Web Framework inspired by HTMX";
        license = lib.licenses.bsd3;
@@ -166275,6 +166587,8 @@ self: {
        ];
        description = "Typed ASTs";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "hyphenate" = callPackage
@@ -166296,8 +166610,8 @@ self: {
        pname = "hyphenation";
        version = "0.8.2";
        sha256 = "05330kd99cg9v6w26sj87wk2nfvpmn2r177kr66vr9n0rlmia60y";
-       revision = "3";
-       editedCabalFile = "033kzil5036pnlx10ghh7vcsxcya6kn0vxnalgbpryg8ca7vy0cz";
+       revision = "4";
+       editedCabalFile = "15qgh6fyghc4gx0kw6sldpf3ga8wnjpw7f6sqykq7yc5l2ci67dr";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers file-embed text unordered-containers
@@ -166573,7 +166887,8 @@ self: {
        ];
        description = "iCalendar data types, parser, and printer";
        license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.maralorn ];
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "iException" = callPackage
@@ -166686,8 +167001,8 @@ self: {
      }:
      mkDerivation {
        pname = "ice40-prim";
-       version = "0.3.1.3";
-       sha256 = "02971h72z9k6rv7p3lkyrf8apkk4angk71n6dyqfkvg2phark2d1";
+       version = "0.3.1.4";
+       sha256 = "19krv3ihn5x26jlzvq1ziq0qi4sz4ikpka22d51zz7lfg3z3b1wy";
        libraryHaskellDepends = [
          base clash-prelude ghc-typelits-extra ghc-typelits-knownnat
          ghc-typelits-natnormalise interpolate
@@ -167000,10 +167315,8 @@ self: {
      }:
      mkDerivation {
        pname = "identicon";
-       version = "0.2.2";
-       sha256 = "0qzj2063sh7phbqyxqxf96avz1zcwd1ry06jdqxwkg55q3yb8y9n";
-       revision = "5";
-       editedCabalFile = "0aswi9gwa4f1ll5s323qc6g9fm2h9dc8j526izcbflagxicf04a8";
+       version = "0.2.3";
+       sha256 = "17fgd40pc1jm5ivdlg7inb4m7i1s489jnhxfbgdvcs1gzl29xrrv";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base bytestring JuicyPixels ];
        testHaskellDepends = [
@@ -167113,6 +167426,7 @@ self: {
        libraryHaskellDepends = [ base punycode stringprep text ];
        description = "Implements IDNA (RFC 3490)";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "idna2008" = callPackage
@@ -167337,6 +167651,7 @@ self: {
        ];
        description = "An inductive-form set constraint solver";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ig" = callPackage
@@ -167464,6 +167779,42 @@ self: {
   "ihaskell" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, binary, bytestring
      , cmdargs, containers, directory, exceptions, filepath, ghc
+     , ghc-boot, ghc-parser, ghc-paths, haskeline, here, hlint, hspec
+     , hspec-contrib, http-client, http-client-tls, HUnit
+     , ipython-kernel, parsec, process, random, raw-strings-qq, setenv
+     , shelly, split, stm, strict, text, time, transformers, unix
+     , unordered-containers, utf8-string, vector
+     }:
+     mkDerivation {
+       pname = "ihaskell";
+       version = "0.10.4.0";
+       sha256 = "0vl6nmr72abf4jijxga9lnhj1w1iz5b4642r8xnqmavz4ds9qpsv";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base base64-bytestring binary bytestring cmdargs containers
+         directory exceptions filepath ghc ghc-boot ghc-parser ghc-paths
+         haskeline hlint http-client http-client-tls ipython-kernel parsec
+         process random shelly split stm strict text time transformers unix
+         unordered-containers utf8-string vector
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring containers directory ghc ipython-kernel
+         process strict text transformers unix unordered-containers
+       ];
+       testHaskellDepends = [
+         base directory ghc ghc-paths here hspec hspec-contrib HUnit
+         raw-strings-qq setenv shelly text transformers
+       ];
+       description = "A Haskell backend kernel for the Jupyter project";
+       license = lib.licenses.mit;
+       mainProgram = "ihaskell";
+     }) {};
+
+  "ihaskell_0_11_0_0" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, binary, bytestring
+     , cmdargs, containers, directory, exceptions, filepath, ghc
      , ghc-boot, ghc-parser, ghc-paths, ghc-syntax-highlighter
      , haskeline, hlint, hspec, hspec-contrib, http-client
      , http-client-tls, HUnit, ipython-kernel, parsec, process, random
@@ -167494,6 +167845,7 @@ self: {
        ];
        description = "A Haskell backend kernel for the Jupyter project";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "ihaskell";
      }) {};
 
@@ -167566,6 +167918,8 @@ self: {
        ];
        description = "IHaskell display instances for diagram types";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ihaskell-display" = callPackage
@@ -167620,8 +167974,8 @@ self: {
     ({ mkDerivation, aeson, base, hvega, ihaskell, text }:
      mkDerivation {
        pname = "ihaskell-hvega";
-       version = "0.5.0.4";
-       sha256 = "13dz7f9gb8wli42srl91nq7fflnfc6vbi4d8bcly1387hkh2mji4";
+       version = "0.5.0.5";
+       sha256 = "0sy9g6g0gjs2sx458vq5y1b9a09jb58by3d2az8ky5l84sgvss4a";
        libraryHaskellDepends = [ aeson base hvega ihaskell text ];
        description = "IHaskell display instance for hvega types";
        license = lib.licenses.bsd3;
@@ -167741,6 +168095,7 @@ self: {
        ];
        description = "IPython standard widgets for IHaskell";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ihp-hsx" = callPackage
@@ -167981,24 +168336,26 @@ self: {
 
   "imbib" = callPackage
     ({ mkDerivation, base, bibtex, bytestring, ConfigFile, containers
-     , curl, directory, download-curl, filepath, glib, gnomevfs, gtk
-     , mtl, parsec, process, split, utf8-string
+     , directory, filepath, groom, mtl, optparse-applicative, parsec
+     , parsek, process, split, text
      }:
      mkDerivation {
        pname = "imbib";
-       version = "1.0.0";
-       sha256 = "0x31wjd6maqixr3rbangaph0s5skp18fmb8xgm1a6jsky8k367vz";
-       isLibrary = false;
+       version = "1.2.5";
+       sha256 = "1vghj9pcgq9j827f1vn1mjh0ccz16gizrz6pvjnhyq0dgncgnx0j";
+       isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bibtex bytestring ConfigFile containers directory filepath mtl
+         parsec parsek process split text
+       ];
        executableHaskellDepends = [
-         base bibtex bytestring ConfigFile containers curl directory
-         download-curl filepath glib gnomevfs gtk mtl parsec process split
-         utf8-string
+         base containers directory filepath groom optparse-applicative text
        ];
-       description = "Minimalistic reference manager";
+       description = "Minimalistic .bib reference manager.";
        license = "GPL";
-       hydraPlatforms = lib.platforms.none;
+       mainProgram = "imbibatch";
      }) {};
 
   "imgur" = callPackage
@@ -168321,27 +168678,27 @@ self: {
   "implicit" = callPackage
     ({ mkDerivation, base, blaze-builder, blaze-markup, blaze-svg
      , bytestring, containers, criterion, data-default-class, deepseq
-     , directory, filepath, hedgehog, hspec, hw-hspec-hedgehog
+     , directory, filepath, hedgehog, hspec, HUnit, hw-hspec-hedgehog
      , JuicyPixels, lens, linear, mtl, optparse-applicative, parallel
-     , parsec, QuickCheck, show-combinators, text
+     , parsec, QuickCheck, random, show-combinators, text
      }:
      mkDerivation {
        pname = "implicit";
-       version = "0.4.0.0";
-       sha256 = "06hvvzvik1cw21sj1ynvf1rmy8kfcbsjr4442x59f9l5zq7xsaqw";
+       version = "0.4.1.0";
+       sha256 = "047a43kkk8y4iy8l4mdlh3jqrjcva28ybk0vw3iwg6m1lc3sbn99";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base blaze-builder blaze-markup blaze-svg bytestring containers
          data-default-class deepseq directory filepath JuicyPixels lens
-         linear mtl parallel parsec show-combinators text
+         linear mtl parallel parsec random show-combinators text
        ];
        executableHaskellDepends = [
          base filepath optparse-applicative text
        ];
        testHaskellDepends = [
-         base bytestring directory hedgehog hspec hw-hspec-hedgehog lens
-         linear parsec QuickCheck text
+         base bytestring directory hedgehog hspec HUnit hw-hspec-hedgehog
+         lens linear parsec QuickCheck text
        ];
        benchmarkHaskellDepends = [ base criterion linear parsec ];
        description = "A math-inspired programmatic 2D & 3D CAD system";
@@ -168355,33 +168712,6 @@ self: {
      }:
      mkDerivation {
        pname = "implicit-hie";
-       version = "0.1.2.7";
-       sha256 = "0yb457n26455kbq6kv8g48q66pmmaxcpikmpg9gm00sd6adgq6gl";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         attoparsec base directory filepath filepattern text transformers
-         yaml
-       ];
-       executableHaskellDepends = [
-         attoparsec base directory filepath filepattern text transformers
-         yaml
-       ];
-       testHaskellDepends = [
-         attoparsec base directory filepath filepattern hspec
-         hspec-attoparsec text transformers yaml
-       ];
-       description = "Auto generate hie-bios cradles & hie.yaml";
-       license = lib.licenses.bsd3;
-       mainProgram = "gen-hie";
-     }) {};
-
-  "implicit-hie_0_1_4_0" = callPackage
-    ({ mkDerivation, attoparsec, base, directory, filepath, filepattern
-     , hspec, hspec-attoparsec, text, transformers, yaml
-     }:
-     mkDerivation {
-       pname = "implicit-hie";
        version = "0.1.4.0";
        sha256 = "08ggdlh5j1ya5rjhvcp1k1iyd5bvrgm865qnaxnqz7xvq7b1864k";
        isLibrary = true;
@@ -168400,7 +168730,6 @@ self: {
        ];
        description = "Auto generate hie-bios cradles & hie.yaml";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "gen-hie";
      }) {};
 
@@ -168421,6 +168750,8 @@ self: {
        testHaskellDepends = [ base ];
        description = "Auto generate hie-bios cradles";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "implicit-logging" = callPackage
@@ -168625,6 +168956,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A higher-order effect system where the sky's the limit";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "in-other-words-plugin" = callPackage
@@ -168736,11 +169069,29 @@ self: {
        pname = "incipit-base";
        version = "0.5.1.0";
        sha256 = "0bmnfr9j13hq6jil64yivihbrxmm8qwla76slzisjj8mbk0j6sny";
+       revision = "1";
+       editedCabalFile = "1ysxxv2lf1gybic66xgznz2q7f9y2mrnf3m7zn0a1mxxa6c329jc";
+       libraryHaskellDepends = [
+         base bytestring containers data-default stm text
+       ];
+       description = "A Prelude for Polysemy – Base Reexports";
+       license = "BSD-2-Clause-Patent";
+     }) {};
+
+  "incipit-base_0_6_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, data-default, stm
+     , text
+     }:
+     mkDerivation {
+       pname = "incipit-base";
+       version = "0.6.0.0";
+       sha256 = "15mmnixl4ny32h5aflqcq8kv37zhddhqwixa53mkz6ksrrdkpsxc";
        libraryHaskellDepends = [
          base bytestring containers data-default stm text
        ];
        description = "A Prelude for Polysemy – Base Reexports";
        license = "BSD-2-Clause-Patent";
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "incipit-core" = callPackage
@@ -168749,9 +169100,24 @@ self: {
        pname = "incipit-core";
        version = "0.5.1.0";
        sha256 = "1cwp0pyhpnq7mq967wfsf1adj8ljpph14wqj4hkgyl685c3hyv6y";
+       revision = "1";
+       editedCabalFile = "05xz4jqh89s397scxm5fhzyq1d7qgsrac4hsflvh762ijhxgghx6";
+       libraryHaskellDepends = [ base incipit-base polysemy ];
+       description = "A Prelude for Polysemy";
+       license = "BSD-2-Clause-Patent";
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "incipit-core_0_6_0_0" = callPackage
+    ({ mkDerivation, base, incipit-base, polysemy }:
+     mkDerivation {
+       pname = "incipit-core";
+       version = "0.6.0.0";
+       sha256 = "103fxzx6riyx5scfw340gj5dldxia7zw1i0xk5bkfbn1p5fw3sf4";
        libraryHaskellDepends = [ base incipit-base polysemy ];
        description = "A Prelude for Polysemy";
        license = "BSD-2-Clause-Patent";
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "include-env" = callPackage
@@ -168850,15 +169216,15 @@ self: {
 
   "incremental-parser" = callPackage
     ({ mkDerivation, base, bytestring, checkers, criterion, deepseq
-     , input-parsers, monoid-subclasses, parsers, QuickCheck
+     , input-parsers, logict, monoid-subclasses, parsers, QuickCheck
      , rank2classes, tasty, tasty-quickcheck, text, transformers
      }:
      mkDerivation {
        pname = "incremental-parser";
-       version = "0.5.0.5";
-       sha256 = "1hxw7an7ysdhjn2alkv4li3wc9wf56aff1jnkkkvfivjhv0i482c";
+       version = "0.5.1";
+       sha256 = "1hz9mbl4ac948gsc7iax5sjf3w3x114l4f8fc7sqmnrh47s496zv";
        libraryHaskellDepends = [
-         base input-parsers monoid-subclasses parsers rank2classes
+         base input-parsers logict monoid-subclasses parsers rank2classes
          transformers
        ];
        testHaskellDepends = [
@@ -168880,6 +169246,8 @@ self: {
        libraryHaskellDepends = [ base containers mtl ];
        description = "Simple, Incremental SAT Solving as a Library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "increments" = callPackage
@@ -169097,6 +169465,8 @@ self: {
        libraryHaskellDepends = [ base bifunctors indexed mtl pointed ];
        description = "Indexed functors, monads and comonads that require extensions to Haskell98";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "indexed-free" = callPackage
@@ -169133,17 +169503,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "indexed-transformers" = callPackage
+    ({ mkDerivation, base, free, mtl, transformers }:
+     mkDerivation {
+       pname = "indexed-transformers";
+       version = "0.1.0.4";
+       sha256 = "0x6ksrajgd52nbjnkj55727ifcg9lkvmr2fkwbzdskwk4f6b4n2c";
+       libraryHaskellDepends = [ base free mtl transformers ];
+       description = "Atkey indexed monad transformers";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "indexed-traversable" = callPackage
-    ({ mkDerivation, array, base, containers, foldable1-classes-compat
-     , transformers
-     }:
+    ({ mkDerivation, array, base, containers, transformers }:
      mkDerivation {
        pname = "indexed-traversable";
        version = "0.1.3";
        sha256 = "1nak3bq3yzai8b38mflmpsbirx8d6v29zcj9m193m3ppnrgr4chx";
-       libraryHaskellDepends = [
-         array base containers foldable1-classes-compat transformers
-       ];
+       libraryHaskellDepends = [ array base containers transformers ];
        description = "FunctorWithIndex, FoldableWithIndex, TraversableWithIndex";
        license = lib.licenses.bsd2;
      }) {};
@@ -169506,8 +169883,8 @@ self: {
      }:
      mkDerivation {
        pname = "infinite-list";
-       version = "0.1";
-       sha256 = "0imayklahbpsiciflwvwj3fxjhg461lw6x4515wxr39hgpb18di1";
+       version = "0.1.1";
+       sha256 = "1a5g008nfc35q9jhpkm03sxv5b83qi3bhb0rphqh04193a348s5y";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base QuickCheck tasty tasty-expected-failure
@@ -169814,6 +170191,8 @@ self: {
        description = "Inline some Assembly in ur Haskell!";
        license = lib.licenses.bsd3;
        platforms = lib.platforms.x86;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "inline-c" = callPackage
@@ -170100,8 +170479,8 @@ self: {
      }:
      mkDerivation {
        pname = "inspection-testing";
-       version = "0.5.0.2";
-       sha256 = "1jk6xhiy8i9n7w3pz1p7yiyv1p76nwknv0f34r9f5kq36mn0k6kw";
+       version = "0.5.0.3";
+       sha256 = "1kh6lrcdyfnj0c8fqrllb21hfmnlsrllw6jkkg4hya0f9lqf4mgi";
        libraryHaskellDepends = [
          base containers ghc mtl template-haskell transformers
        ];
@@ -170183,6 +170562,8 @@ self: {
        libraryHaskellDepends = [ base mtl transformers ];
        description = "Controls how the compiler searches for instances using type families";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "instance-map" = callPackage
@@ -170612,6 +170993,8 @@ self: {
        ];
        description = "Integer, Natural, and Positive";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "integration" = callPackage
@@ -170830,6 +171213,17 @@ self: {
        broken = true;
      }) {};
 
+  "intermediate-structures" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "intermediate-structures";
+       version = "0.1.1.0";
+       sha256 = "1jx9zhb1gwj79v6wh7536awqfnym1a3px9shcjrzz9br37ybiw8v";
+       libraryHaskellDepends = [ base ];
+       description = "Some simple functions to deal with transformations from structures to other ones, basically lists";
+       license = lib.licenses.mit;
+     }) {};
+
   "intern" = callPackage
     ({ mkDerivation, array, base, bytestring, hashable, text
      , unordered-containers
@@ -171133,6 +171527,8 @@ self: {
        libraryHaskellDepends = [ base base-prelude transformers ];
        description = "An abstraction over interspersing monadic actions";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "interval" = callPackage
@@ -171185,6 +171581,8 @@ self: {
        testHaskellDepends = [ base hedgehog ];
        description = "Intervals of functors";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "interval-patterns" = callPackage
@@ -171268,7 +171666,9 @@ self: {
        description = "A game of competitive puzzle-design";
        license = lib.licenses.gpl3Only;
        badPlatforms = lib.platforms.darwin;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "intricacy";
+       broken = true;
      }) {inherit (pkgs) ncurses;};
 
   "intrinsic-superclasses" = callPackage
@@ -171607,8 +172007,8 @@ self: {
     ({ mkDerivation, array, async, base, bytestring, mtl, stm, time }:
      mkDerivation {
        pname = "io-classes";
-       version = "1.3.1.0";
-       sha256 = "1qglx07ng6gf0h5qp758987m90r7mph4x14azb83jmm7p70igzh9";
+       version = "1.4.0.0";
+       sha256 = "1vqwq9hjkbhx0ld7r4226r1gf6v0c4wi9g6nrzqbyzla89yvmvfj";
        libraryHaskellDepends = [
          array async base bytestring mtl stm time
        ];
@@ -171620,8 +172020,8 @@ self: {
     ({ mkDerivation, array, base, io-classes, mtl, si-timers }:
      mkDerivation {
        pname = "io-classes-mtl";
-       version = "0.1.0.2";
-       sha256 = "06v55dppc3l0kcncigv4gkn0fgdr3rgcf78in618y7jnc1xszb6f";
+       version = "0.1.0.3";
+       sha256 = "1pkszdsvhnm9nh8dq7k2c5l5n3isqqccr254r96sp8x1bs8gmkv8";
        libraryHaskellDepends = [ array base io-classes mtl si-timers ];
        description = "Experimental MTL instances for io-classes";
        license = lib.licenses.asl20;
@@ -171701,10 +172101,8 @@ self: {
      }:
      mkDerivation {
        pname = "io-sim";
-       version = "1.3.1.0";
-       sha256 = "069ig3h5ykcf7m3lfz9z5qaz4namrm65hblad3k1wlwc42sjal0j";
-       revision = "1";
-       editedCabalFile = "029nvs63x9bfq7c21qba5ms27hjmkjmadhddr3zdqvs4m6k0d935";
+       version = "1.4.0.0";
+       sha256 = "1fydgw7g3l7kj1zvypc9x6scvlnmdg0sl59x5y6qsdd7d2ldycx5";
        libraryHaskellDepends = [
          base containers deepseq exceptions io-classes nothunks psqueues
          QuickCheck quiet si-timers strict-stm time
@@ -171995,8 +172393,8 @@ self: {
     ({ mkDerivation, base, cmdargs, IPv6Addr, text }:
      mkDerivation {
        pname = "ip6addr";
-       version = "1.0.3";
-       sha256 = "16dbvrsbg7l4z31faxm1pxps0plg89d4ny2mxsgwyq8r351irmwc";
+       version = "1.0.4";
+       sha256 = "0f8h7374s2mr0acqdmkm265bb3ixy5qfbylsd4a3mclav71878km";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base cmdargs IPv6Addr text ];
@@ -172019,8 +172417,6 @@ self: {
        testHaskellDepends = [ base hspec text ];
        description = "Internal Phonetic Alphabet (IPA)";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "ipatch" = callPackage
@@ -172073,6 +172469,8 @@ self: {
        testHaskellDepends = [ base hspec unix ];
        description = "Simple inter-process communication through IPCVars";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ipfs" = callPackage
@@ -172274,28 +172672,6 @@ self: {
      }:
      mkDerivation {
        pname = "ipython-kernel";
-       version = "0.10.3.0";
-       sha256 = "0zvcqgvrykfmp706snbpxy8ia0hkxshrj8r8kfwkvkwhxd72ad5c";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson base binary bytestring containers cryptonite directory
-         filepath memory parsec process temporary text transformers
-         unordered-containers uuid zeromq4-haskell
-       ];
-       description = "A library for creating kernels for IPython frontends";
-       license = lib.licenses.mit;
-     }) {};
-
-  "ipython-kernel_0_11_0_0" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, containers
-     , cryptonite, directory, filepath, memory, parsec, process
-     , temporary, text, transformers, unordered-containers, uuid
-     , zeromq4-haskell
-     }:
-     mkDerivation {
-       pname = "ipython-kernel";
        version = "0.11.0.0";
        sha256 = "19r08fb814fp58wik0iihhypa8awxwpbli3n55gdi4a8xzy1yrdr";
        isLibrary = true;
@@ -172308,7 +172684,6 @@ self: {
        ];
        description = "A library for creating kernels for IPython frontends";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "irc" = callPackage
@@ -172718,8 +173093,8 @@ self: {
     ({ mkDerivation, base, hspec, QuickCheck, text }:
      mkDerivation {
        pname = "isbn";
-       version = "1.1.0.4";
-       sha256 = "1s8ypi1rx8iqsn0kvp4k818ljfsj7zdh0rkzii60vblaxrfhhczb";
+       version = "1.1.0.5";
+       sha256 = "1373dklc3vpp388j87la3357bsz249cpp84kfqqz9mvq38n12ncs";
        libraryHaskellDepends = [ base text ];
        testHaskellDepends = [ base hspec QuickCheck text ];
        description = "ISBN Validation and Manipulation";
@@ -172812,6 +173187,8 @@ self: {
        testHaskellDepends = [ base mtl ];
        description = "Deriving via arbitrary isomorphisms";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "iso3166-country-codes" = callPackage
@@ -173161,6 +173538,8 @@ self: {
        ];
        description = "API for hierarchical multilevel collections";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "iteratee" = callPackage
@@ -173778,6 +174157,7 @@ self: {
        ];
        description = "Conversions from ixset-typed to other containers";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ixset-typed-hashable-instance" = callPackage
@@ -173845,6 +174225,7 @@ self: {
        description = "J in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "j2hs" = callPackage
@@ -174254,24 +174635,6 @@ self: {
     ({ mkDerivation, alex, array, base, happy, pretty }:
      mkDerivation {
        pname = "java-adt";
-       version = "0.2018.11.4";
-       sha256 = "1pdp7yvq0gpbxw7gp61r5mkrhdiff0cvlxssxzvg770idp46j6p5";
-       isLibrary = false;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       executableHaskellDepends = [ array base pretty ];
-       executableToolDepends = [ alex happy ];
-       description = "Create immutable algebraic data structures for Java";
-       license = "unknown";
-       hydraPlatforms = lib.platforms.none;
-       mainProgram = "java-adt";
-       broken = true;
-     }) {};
-
-  "java-adt_1_0_20231204" = callPackage
-    ({ mkDerivation, alex, array, base, happy, pretty }:
-     mkDerivation {
-       pname = "java-adt";
        version = "1.0.20231204";
        sha256 = "055yrn1pvv35sl79djm4c7yb4354dmwisj5whcpynn20caq9nsy5";
        isLibrary = false;
@@ -174680,7 +175043,9 @@ self: {
          vector vty
        ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "jet";
+       broken = true;
      }) {};
 
   "jet-stream" = callPackage
@@ -174735,6 +175100,8 @@ self: {
        pname = "jira-wiki-markup";
        version = "1.5.1";
        sha256 = "0875x0x8v92zh89m28xq3y8gb9c8ca7dm790zczipkrwkhv3v8lw";
+       revision = "1";
+       editedCabalFile = "19lkrzzhqjy5rjg7xcdwsrkna7nygjs0ayq7sm3114b1kbs8hahl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base mtl parsec text ];
@@ -174767,7 +175134,9 @@ self: {
        ];
        description = "Functional sed for JSON";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "jl";
+       broken = true;
      }) {};
 
   "jmacro" = callPackage
@@ -175009,6 +175378,8 @@ self: {
        ];
        description = "Trying to compose non-composable";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "jonathanscard" = callPackage
@@ -175205,32 +175576,6 @@ self: {
 
   "jose" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring
-     , concise, containers, cryptonite, hedgehog, hspec, lens, memory
-     , monad-time, mtl, network-uri, pem, tasty, tasty-hedgehog
-     , tasty-hspec, template-haskell, text, time, x509
-     }:
-     mkDerivation {
-       pname = "jose";
-       version = "0.10.0.1";
-       sha256 = "1fbc65dlb5yydcxa4da2plmfyp4136i52zrak4i3vpyf53yfqf1v";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base base64-bytestring bytestring concise containers
-         cryptonite lens memory monad-time mtl network-uri template-haskell
-         text time x509
-       ];
-       testHaskellDepends = [
-         aeson base base64-bytestring bytestring concise containers
-         cryptonite hedgehog hspec lens mtl network-uri pem tasty
-         tasty-hedgehog tasty-hspec time x509
-       ];
-       description = "JSON Object Signing and Encryption (JOSE) and JSON Web Token (JWT) library";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "jose_0_11" = callPackage
-    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
      , concise, containers, crypton, crypton-x509, hedgehog, hspec, lens
      , memory, monad-time, mtl, network-uri, pem, tasty, tasty-hedgehog
      , tasty-hspec, template-haskell, text, time
@@ -175253,7 +175598,6 @@ self: {
        ];
        description = "JSON Object Signing and Encryption (JOSE) and JSON Web Token (JWT) library";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "jose-jwt" = callPackage
@@ -175306,8 +175650,8 @@ self: {
      }:
      mkDerivation {
        pname = "journalctl-stream";
-       version = "0.6.0.5";
-       sha256 = "1nkv3vfpqndi7hks5mrz6cynvv9fly27zckiln5na3sjbnx3mmyv";
+       version = "0.6.0.6";
+       sha256 = "0n602vh1pxbihksjyppp2895b6kmdjm8qik0mxnsy0id1vqq439w";
        libraryHaskellDepends = [
          aeson base bytestring conduit process text time
          unordered-containers
@@ -175629,23 +175973,6 @@ self: {
      }:
      mkDerivation {
        pname = "json";
-       version = "0.10";
-       sha256 = "1fjnd2r4gl2hfqx158db3cn3rsyin4ch7rf9scb2hcy90cy6l10c";
-       revision = "1";
-       editedCabalFile = "16fp0y95gaibjravzj1hxdkng1cr8zqjqzd14m48kf4jrq3npz6r";
-       libraryHaskellDepends = [
-         array base bytestring containers mtl parsec pretty syb text
-       ];
-       description = "Support for serialising Haskell to and from JSON";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "json_0_11" = callPackage
-    ({ mkDerivation, array, base, bytestring, containers, mtl, parsec
-     , pretty, syb, text
-     }:
-     mkDerivation {
-       pname = "json";
        version = "0.11";
        sha256 = "1476fxrfybch9j2mr6yacbvhnggj5ksir1a42114j8s8w89anyfh";
        libraryHaskellDepends = [
@@ -175653,7 +175980,6 @@ self: {
        ];
        description = "Support for serialising Haskell to and from JSON";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "json-alt" = callPackage
@@ -175963,8 +176289,8 @@ self: {
      }:
      mkDerivation {
        pname = "json-feed";
-       version = "2.0.0.10";
-       sha256 = "0s9fq0yp3svi8jcn2isb4kb5l71hhrahrrflciv1jzbn1kwx8lqj";
+       version = "2.0.0.11";
+       sha256 = "0i8xandvxrh6almz70vkj8hln77j4mnbndy7izqknhzmbxk7ns4q";
        libraryHaskellDepends = [
          aeson base bytestring mime-types network-uri tagsoup text time
        ];
@@ -176150,24 +176476,23 @@ self: {
 
   "json-query" = callPackage
     ({ mkDerivation, array-chunks, base, bytebuild, byteslice
-     , bytestring, contiguous, json-syntax, neat-interpolation
+     , bytestring, contiguous, hspec, json-syntax, neat-interpolation
      , primitive, primitive-unlifted, profunctors, scientific-notation
-     , tasty, tasty-hunit, text, text-short, transformers
+     , tasty, tasty-hspec, tasty-hunit, text, text-short, transformers
      }:
      mkDerivation {
        pname = "json-query";
-       version = "0.2.2.0";
-       sha256 = "1k0rxrki8qa6gx0kqrhn9k98pn8hz3xg4kxn045r920bacfgsvi2";
-       revision = "1";
-       editedCabalFile = "1h99j6lsjp4dwmyvkav1j25y4glrsk8xny2rsp81bjblhgi5kfci";
+       version = "0.2.3.1";
+       sha256 = "06j1004is5y5fji89ns9h93qayqmgmjlv9aqlq66xxvp3ijvqzmn";
        libraryHaskellDepends = [
          array-chunks base bytebuild bytestring contiguous json-syntax
          primitive primitive-unlifted profunctors scientific-notation
          text-short transformers
        ];
        testHaskellDepends = [
-         array-chunks base bytebuild byteslice bytestring json-syntax
-         neat-interpolation primitive tasty tasty-hunit text text-short
+         array-chunks base bytebuild byteslice bytestring hspec json-syntax
+         neat-interpolation primitive scientific-notation tasty tasty-hspec
+         tasty-hunit text text-short
        ];
        description = "Kitchen sink for querying JSON";
        license = lib.licenses.bsd3;
@@ -176207,6 +176532,39 @@ self: {
        broken = true;
      }) {};
 
+  "json-rpc_1_1_0" = callPackage
+    ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base
+     , bytestring, conduit, conduit-extra, deepseq, hashable, hspec
+     , monad-logger, mtl, QuickCheck, stm-conduit, text, time, unliftio
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "json-rpc";
+       version = "1.1.0";
+       sha256 = "00859265k6k53zzk5ivfr3k8xzf6ckiicssafb6n3jabjyb9zv5a";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson attoparsec attoparsec-aeson base bytestring conduit
+         conduit-extra deepseq hashable monad-logger mtl QuickCheck
+         stm-conduit text time unliftio unordered-containers vector
+       ];
+       executableHaskellDepends = [
+         aeson attoparsec-aeson base bytestring conduit conduit-extra
+         monad-logger mtl QuickCheck stm-conduit text time unliftio
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson attoparsec-aeson base bytestring conduit conduit-extra hspec
+         monad-logger mtl QuickCheck stm-conduit text time unliftio
+         unordered-containers vector
+       ];
+       description = "Fully-featured JSON-RPC 2.0 library";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "json-rpc-client" = callPackage
     ({ mkDerivation, aeson, base, bytestring, HUnit, json-rpc-server
      , mtl, QuickCheck, scientific, test-framework, test-framework-hunit
@@ -176329,6 +176687,7 @@ self: {
        ];
        description = "Generics JSON (de)serialization using generics-sop";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "json-spec" = callPackage
@@ -176337,8 +176696,8 @@ self: {
      }:
      mkDerivation {
        pname = "json-spec";
-       version = "0.2.1.3";
-       sha256 = "02d7ynl24xsqcxb6bybndc9nqp7k6wd8ymcrr1ni6w04vr56s7rj";
+       version = "0.2.2.0";
+       sha256 = "0hw8kdypxf2yp2nnzv9alnn5pw0g382lvp7bdzdfw6v8iap2m8vs";
        libraryHaskellDepends = [
          aeson base containers scientific text time vector
        ];
@@ -176381,12 +176740,11 @@ self: {
      }:
      mkDerivation {
        pname = "json-spec-elm-servant";
-       version = "0.3.1.2";
-       sha256 = "1w3pydypk2ay20c3rdfl9r0jhy1ffj4q3h83kv29jrypcbdb5f19";
+       version = "0.3.2.1";
+       sha256 = "12dj4b933mq6rjqffnzmxf9y244mjl5wk8dkadnln2m2krfy8nyj";
        libraryHaskellDepends = [
-         base bound containers directory elm-syntax http-types json-spec
-         json-spec-elm mtl prettyprinter process servant text
-         unordered-containers
+         base bound containers elm-syntax http-types json-spec json-spec-elm
+         mtl servant text
        ];
        testHaskellDepends = [
          aeson base binary bound bytestring containers cookie directory
@@ -176399,18 +176757,19 @@ self: {
      }) {};
 
   "json-spec-openapi" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, hspec, json-spec, lens
-     , openapi3, text, time
+    ({ mkDerivation, aeson, base, bytestring, hspec
+     , insert-ordered-containers, json-spec, lens, openapi3, text, time
      }:
      mkDerivation {
        pname = "json-spec-openapi";
-       version = "0.1.0.3";
-       sha256 = "07yiglfkf6alqwidkq4mqcp449mxf2461zrclh90bxix5agk5ppc";
+       version = "0.2.1.0";
+       sha256 = "0kyqph45rxyz96ydjc8ap34xj70r05jnqq33m2saf7xk52wbw8b7";
        libraryHaskellDepends = [
-         aeson base json-spec lens openapi3 text
+         aeson base insert-ordered-containers json-spec lens openapi3 text
        ];
        testHaskellDepends = [
-         aeson base bytestring hspec json-spec lens openapi3 text time
+         aeson base bytestring hspec insert-ordered-containers json-spec
+         lens openapi3 text time
        ];
        description = "json-spec-openapi";
        license = lib.licenses.mit;
@@ -176430,6 +176789,7 @@ self: {
        ];
        description = "Keep program state in JSON files";
        license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "json-stream" = callPackage
@@ -176456,30 +176816,29 @@ self: {
 
   "json-syntax" = callPackage
     ({ mkDerivation, aeson, array-builder, array-chunks, base
-     , bytebuild, byteslice, bytesmith, bytestring, containers
-     , contiguous, gauge, natural-arithmetic, neat-interpolation
-     , primitive, QuickCheck, run-st, scientific, scientific-notation
-     , tasty, tasty-golden, tasty-hunit, tasty-quickcheck, text
-     , text-short, transformers, vector, word-compat, zigzag
+     , bytebuild, byteslice, bytesmith, bytestring, contiguous, gauge
+     , natural-arithmetic, neat-interpolation, primitive, QuickCheck
+     , run-st, scientific, scientific-notation, tasty, tasty-golden
+     , tasty-hunit, tasty-quickcheck, text, text-short, transformers
+     , word-compat, zigzag
      }:
      mkDerivation {
        pname = "json-syntax";
-       version = "0.2.7.0";
-       sha256 = "07502z9i8y7z87ps6m0vz0wprrlwkyniwwlgmbr403kjihn1fj3l";
+       version = "0.2.7.2";
+       sha256 = "0niyi6vzrl9q4xlh0d5ygdm81zvbgglkmfq5p2a44y6avzqs1sq7";
        libraryHaskellDepends = [
          array-builder array-chunks base bytebuild byteslice bytesmith
          bytestring contiguous natural-arithmetic primitive run-st
          scientific-notation text text-short transformers word-compat zigzag
        ];
        testHaskellDepends = [
-         aeson array-chunks base bytebuild byteslice bytestring containers
-         neat-interpolation primitive QuickCheck scientific
-         scientific-notation tasty tasty-golden tasty-hunit tasty-quickcheck
-         text text-short vector
+         aeson base bytebuild byteslice bytestring neat-interpolation
+         primitive QuickCheck scientific scientific-notation tasty
+         tasty-golden tasty-hunit tasty-quickcheck text text-short
        ];
        benchmarkHaskellDepends = [
          aeson base bytebuild byteslice bytestring gauge neat-interpolation
-         primitive scientific-notation text
+         primitive text
        ];
        description = "High-performance JSON parser and encoder";
        license = lib.licenses.bsd3;
@@ -176516,7 +176875,9 @@ self: {
          recursion-schemes text unordered-containers vector
        ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "json-to-haskell";
+       broken = true;
      }) {};
 
   "json-togo" = callPackage
@@ -176744,26 +177105,6 @@ self: {
      }) {};
 
   "jsonifier" = callPackage
-    ({ mkDerivation, aeson, base, buffer-builder, bytestring, gauge
-     , hedgehog, numeric-limits, ptr-poker, rerebase, scientific, text
-     , text-builder
-     }:
-     mkDerivation {
-       pname = "jsonifier";
-       version = "0.2.1.2";
-       sha256 = "0swv5xmns2qqkmb8wc0f9gsbrs81ghfp8jvq0lr7fgam3cbzaibr";
-       libraryHaskellDepends = [
-         base bytestring ptr-poker scientific text
-       ];
-       testHaskellDepends = [ aeson hedgehog numeric-limits rerebase ];
-       benchmarkHaskellDepends = [
-         aeson buffer-builder gauge rerebase text-builder
-       ];
-       description = "Fast and simple JSON encoding toolkit";
-       license = lib.licenses.mit;
-     }) {};
-
-  "jsonifier_0_2_1_3" = callPackage
     ({ mkDerivation, aeson, base, bytestring, criterion, hedgehog
      , numeric-limits, ptr-poker, rerebase, scientific, text
      , text-builder
@@ -176781,7 +177122,6 @@ self: {
        ];
        description = "Fast and simple JSON encoding toolkit";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "jsonl" = callPackage
@@ -176821,6 +177161,8 @@ self: {
        ];
        description = "JsonLogic Evaluation";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "jsonlogic-aeson" = callPackage
@@ -177448,6 +177790,8 @@ self: {
        pname = "jvm-parser";
        version = "0.2.1";
        sha256 = "0rhixf1syrnhql3aqlvl9hcylaiyhca1yvismdzalkhbz0qdgvir";
+       revision = "1";
+       editedCabalFile = "0mqz39vva3j7vdmjz1pb9998ymh4hpsqlx9qz1gr630lwzkly7nl";
        libraryHaskellDepends = [
          array base binary bytestring containers data-binary-ieee754 fgl
          fingertree pretty zlib
@@ -177827,6 +178171,8 @@ self: {
        pname = "kansas-comet";
        version = "0.4.2";
        sha256 = "01g30ck1nhj8qwz475mvwvmd8nc1yqxl5qi84c957gp116kig2v7";
+       revision = "1";
+       editedCabalFile = "15gbk5yiqvrimb9x16bxqwk1qsksl9ydvzpxqg154212qabid7v5";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base containers data-default-class scotty stm text time
@@ -178157,8 +178503,8 @@ self: {
      }:
      mkDerivation {
        pname = "katip-raven";
-       version = "0.1.0.0";
-       sha256 = "107hb8rn6si77ms9hp72494ah4ismfivkf8xgldy1jk2ifqgxc0d";
+       version = "0.1.1.0";
+       sha256 = "0fwjv2dnr081925yndxhv779ial0625qfcj8756bd7vvxn2g6l2j";
        libraryHaskellDepends = [
          aeson base katip raven-haskell string-conv text
          unordered-containers
@@ -178231,8 +178577,8 @@ self: {
      }:
      mkDerivation {
        pname = "katip-wai";
-       version = "0.1.2.2";
-       sha256 = "09mwjxnpm2a1s1m99qfyd1v5snf0jar470vg5rsvfr840d27bayh";
+       version = "0.1.2.3";
+       sha256 = "1b6rz18jcpxjhckpkknhj760np7xlml10hyfnk891agpgmlsii15";
        libraryHaskellDepends = [
          aeson base bytestring clock http-types katip network text uuid wai
        ];
@@ -178324,7 +178670,9 @@ self: {
        testHaskellDepends = [ base hedgehog text unordered-containers ];
        description = "Key-value store in single files";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "kawa";
+       broken = true;
      }) {};
 
   "kawaii" = callPackage
@@ -179214,8 +179562,8 @@ self: {
      }:
      mkDerivation {
        pname = "keter";
-       version = "2.1.2";
-       sha256 = "1ig64jc9xk4cy1s5ip38nvdp1jsnp122gkrlnah8rh6pw56qcdfc";
+       version = "2.1.3";
+       sha256 = "1iq2768rvd7mlxjhfjxl59ak1k12dbf5ywms7nyc5ygfj8j5g90s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -179235,7 +179583,7 @@ self: {
          lens monad-logger mtl stm tasty tasty-hunit transformers unix wai
          warp wreq
        ];
-       description = "Web application deployment manager, focusing on Haskell web frameworks";
+       description = "Web application deployment manager, focusing on Haskell web frameworks. It mitigates downtime.";
        license = lib.licenses.mit;
        mainProgram = "keter";
      }) {};
@@ -179302,6 +179650,8 @@ self: {
        libraryHaskellDepends = [ base transformers ];
        description = "Type-safe unconstrained dynamic typing";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "key-state" = callPackage
@@ -179391,8 +179741,8 @@ self: {
      }:
      mkDerivation {
        pname = "keyed-vals";
-       version = "0.2.2.0";
-       sha256 = "1f6sigfx2cywx2kf4z3xyjzi5b8zzisb6ic3z6py6ybzwnpxglr5";
+       version = "0.2.3.0";
+       sha256 = "1slrqqcvwnsq8jxik1i015ha6gj47shv58lb6yy0ywik07m7xjd7";
        libraryHaskellDepends = [
          aeson base bytestring containers http-api-data redis-glob text
        ];
@@ -179406,8 +179756,8 @@ self: {
      }:
      mkDerivation {
        pname = "keyed-vals-hspec-tests";
-       version = "0.2.2.0";
-       sha256 = "15izwj5yby3sfw6b830g44yxkz64gjhrxqrav3gip6a50m8alfq5";
+       version = "0.2.3.0";
+       sha256 = "1bi0lqh0c9bhdpgn5071jd90chsf1sq7cx5iigj324087al45a08";
        libraryHaskellDepends = [
          aeson base benri-hspec bytestring containers hspec http-api-data
          keyed-vals text
@@ -179422,8 +179772,8 @@ self: {
      }:
      mkDerivation {
        pname = "keyed-vals-mem";
-       version = "0.2.2.0";
-       sha256 = "09ha9sgx12sr1v072c9wlh368b7mqy8cf0glradz3z85ambgw483";
+       version = "0.2.3.0";
+       sha256 = "1kd9f1s07sb7a8isl1zdw2xyrbrzjcbxbwsk16y2n4yp6rknbl28";
        libraryHaskellDepends = [
          base bytestring containers keyed-vals text unliftio unliftio-core
        ];
@@ -179439,8 +179789,8 @@ self: {
      }:
      mkDerivation {
        pname = "keyed-vals-redis";
-       version = "0.2.2.0";
-       sha256 = "1wkf3jaxljb71l9a8cmk4qd048g8if9mq2iw97ch0q5c7k8lqahj";
+       version = "0.2.3.0";
+       sha256 = "0lsvqmdxz9snglnnws1511amq0cp6m7rlfb54mshwbn2i59i87kd";
        libraryHaskellDepends = [
          base bytestring containers hedis keyed-vals read-env-var text
          unliftio unliftio-core
@@ -179559,6 +179909,7 @@ self: {
        ];
        description = "Managing stores of secret things";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "keyvaluehash" = callPackage
@@ -179848,6 +180199,22 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "kindly-functors" = callPackage
+    ({ mkDerivation, base, hspec, mtl, profunctors, semigroupoids
+     , these, witherable
+     }:
+     mkDerivation {
+       pname = "kindly-functors";
+       version = "0.1.0.1";
+       sha256 = "1axr3syjpkc3pqn9h0vjdvp1j378gniz61vpvq34c10frr06pizn";
+       libraryHaskellDepends = [
+         base mtl profunctors semigroupoids these witherable
+       ];
+       testHaskellDepends = [ base hspec ];
+       description = "A category polymorphic `Functor` typeclass";
+       license = lib.licenses.mit;
+     }) {};
+
   "kinds" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -180012,7 +180379,9 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Advanced keyboard remapping utility";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "kmonad";
+       broken = true;
      }) {};
 
   "kmp-dfa" = callPackage
@@ -180125,6 +180494,8 @@ self: {
        pname = "knob";
        version = "0.2.2";
        sha256 = "1sgfq0jkzzvhfwksjxk1z80z6mfgxniskjmqmxy5bq6ly42s3xhc";
+       revision = "1";
+       editedCabalFile = "0bpyhn04v643nnlpda9b0z2sil1czqdwba30ppgc3dbzmfbwypa6";
        libraryHaskellDepends = [ base bytestring transformers ];
        description = "Memory-backed handles";
        license = lib.licenses.mit;
@@ -180309,6 +180680,8 @@ self: {
        ];
        description = "Utilities for working with many HStringTemplate templates from files";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "koofr-client" = callPackage
@@ -180451,7 +180824,9 @@ self: {
        ];
        description = "Krank checks issue tracker link status in your source code";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "krank";
+       broken = true;
      }) {};
 
   "krapsh" = callPackage
@@ -181010,7 +181385,9 @@ self: {
        executableHaskellDepends = [ base containers mtl parsec text ];
        description = "Interpreters for lambda calculus, calculus of constructions, and more";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "lambda";
+       broken = true;
      }) {};
 
   "lambda-ast" = callPackage
@@ -181901,6 +182278,8 @@ self: {
        pname = "lame";
        version = "0.2.2";
        sha256 = "0zfjiyabzzkg9mdy8ynf9sa89zcdpvynzhph7svyjxw6a6h0i0mg";
+       revision = "1";
+       editedCabalFile = "1d12xrg7whm83v60dq01r961svp8dn212qwy108wh8z5v5hvfryp";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring directory exceptions filepath text wave
@@ -182088,6 +182467,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Parser and pretty-printer for ATS";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "language-avro" = callPackage
@@ -182106,6 +182486,7 @@ self: {
        ];
        description = "Language definition and parser for AVRO files";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "language-bash" = callPackage
@@ -182124,6 +182505,19 @@ self: {
        ];
        description = "Parsing and pretty-printing Bash shell scripts";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "language-bluespec" = callPackage
+    ({ mkDerivation, base, containers, pretty, text }:
+     mkDerivation {
+       pname = "language-bluespec";
+       version = "0.1";
+       sha256 = "1an1w3sz0fj5w4gaf66fqyr471cijj1h11zmxs5247fa7vsdv167";
+       libraryHaskellDepends = [ base containers pretty text ];
+       description = "An implementation of the Bluespec Haskell AST";
+       license = lib.licenses.bsd3;
      }) {};
 
   "language-boogie" = callPackage
@@ -182156,10 +182550,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-c";
-       version = "0.9.2";
-       sha256 = "1cvcxwnbg71xijadr4aqzwxaw29fxj5z2gpnz3lp5pqnv8phscdj";
-       revision = "1";
-       editedCabalFile = "03qfp9mf4yrdw3m6sab3np7wjaigg5p3xiiirxin8ihsnnx4rv5l";
+       version = "0.9.3";
+       sha256 = "0lz2djw7zs8wnp23amqqxdyin3jgbjfh2dr2sr1v0kqpqav3yw81";
        libraryHaskellDepends = [
          array base bytestring containers deepseq directory filepath mtl
          pretty process
@@ -182245,8 +182637,8 @@ self: {
     ({ mkDerivation, base, language-c99, language-c99-util, mtl }:
      mkDerivation {
        pname = "language-c99-simple";
-       version = "0.2.3";
-       sha256 = "0myjz09psk7snv4366qxdx1wn4a4xc50vnp97yg6bgmasl8kibz3";
+       version = "0.3.0";
+       sha256 = "0vp08bjl6cs0mivn4fgxvq93scz9ljfwskh9w2d7km6gs9xpjxbj";
        libraryHaskellDepends = [
          base language-c99 language-c99-util mtl
        ];
@@ -182498,6 +182890,8 @@ self: {
        ];
        description = "JavaScript parser and pretty-printer library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "language-ecmascript-analysis" = callPackage
@@ -182513,6 +182907,7 @@ self: {
        ];
        description = "JavaScript static analysis library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "language-eiffel" = callPackage
@@ -183347,6 +183742,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Parser and pretty printer for the Thrift IDL format";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "language-tl" = callPackage
@@ -183455,8 +183852,8 @@ self: {
      }:
      mkDerivation {
        pname = "lapack";
-       version = "0.5.1";
-       sha256 = "0lknvjhdn1gqxp6cc8iyiwqdvd2nxby3csfvprkbn5b7x6c6f58k";
+       version = "0.5.1.1";
+       sha256 = "1fcg43anw1ig861f20p7654gf8g4i2yb2rnld3q22gyi6s5bmi75";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -183950,34 +184347,9 @@ self: {
 
   "lattices" = callPackage
     ({ mkDerivation, base, base-compat, containers, deepseq, hashable
-     , integer-logarithms, QuickCheck, quickcheck-instances
-     , semigroupoids, tagged, tasty, tasty-quickcheck, transformers
-     , universe-base, universe-reverse-instances, unordered-containers
-     }:
-     mkDerivation {
-       pname = "lattices";
-       version = "2.1";
-       sha256 = "1wxam7c00bcfl3g1aiayxzjscmmbm393gfj8zmx77ijhs7v1zp3v";
-       libraryHaskellDepends = [
-         base base-compat containers deepseq hashable integer-logarithms
-         QuickCheck semigroupoids tagged transformers universe-base
-         universe-reverse-instances unordered-containers
-       ];
-       testHaskellDepends = [
-         base base-compat containers QuickCheck quickcheck-instances tasty
-         tasty-quickcheck transformers universe-base
-         universe-reverse-instances unordered-containers
-       ];
-       description = "Fine-grained library for constructing and manipulating lattices";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "lattices_2_2" = callPackage
-    ({ mkDerivation, base, base-compat, containers, deepseq
-     , foldable1-classes-compat, hashable, integer-logarithms
-     , QuickCheck, quickcheck-instances, tagged, tasty, tasty-quickcheck
-     , transformers, universe-base, universe-reverse-instances
-     , unordered-containers
+     , integer-logarithms, QuickCheck, quickcheck-instances, tagged
+     , tasty, tasty-quickcheck, transformers, universe-base
+     , universe-reverse-instances, unordered-containers
      }:
      mkDerivation {
        pname = "lattices";
@@ -183986,9 +184358,9 @@ self: {
        revision = "1";
        editedCabalFile = "1q7kl6lxk47lchbmgx15690akggdshvjjhdvmwzfj3hqgwgzjjyi";
        libraryHaskellDepends = [
-         base base-compat containers deepseq foldable1-classes-compat
-         hashable integer-logarithms QuickCheck tagged transformers
-         universe-base universe-reverse-instances unordered-containers
+         base base-compat containers deepseq hashable integer-logarithms
+         QuickCheck tagged transformers universe-base
+         universe-reverse-instances unordered-containers
        ];
        testHaskellDepends = [
          base base-compat containers QuickCheck quickcheck-instances tasty
@@ -183997,7 +184369,6 @@ self: {
        ];
        description = "Fine-grained library for constructing and manipulating lattices";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "launchdarkly-server-sdk" = callPackage
@@ -184006,25 +184377,25 @@ self: {
      , generic-lens, hashtables, http-client, http-client-tls
      , http-types, HUnit, iso8601-time, lens, lrucache, memory
      , monad-logger, monad-loops, mtl, pcre-light, random, scientific
-     , semver, text, time, unordered-containers, uuid, vector, yaml
+     , semver, text, time, unordered-containers, uuid, yaml
      }:
      mkDerivation {
        pname = "launchdarkly-server-sdk";
-       version = "4.0.1";
-       sha256 = "0rmjkdlbayfp3bgwyw0rkpj7cc4fkgsh1f6388v6hhdip3j8r9ni";
+       version = "4.0.3";
+       sha256 = "00b9l5qr5ik5w7mqwb3ajm7w6l30l1y76nh3n01jkymy4q2mk44y";
        libraryHaskellDepends = [
          aeson attoparsec base base16-bytestring bytestring clock containers
          cryptohash exceptions extra generic-lens hashtables http-client
          http-client-tls http-types iso8601-time lens lrucache memory
          monad-logger monad-loops mtl pcre-light random scientific semver
-         text time unordered-containers uuid vector yaml
+         text time unordered-containers uuid yaml
        ];
        testHaskellDepends = [
          aeson attoparsec base base16-bytestring bytestring clock containers
          cryptohash exceptions extra generic-lens hashtables http-client
          http-client-tls http-types HUnit iso8601-time lens lrucache memory
          monad-logger monad-loops mtl pcre-light random scientific semver
-         text time unordered-containers uuid vector yaml
+         text time unordered-containers uuid yaml
        ];
        description = "Server-side SDK for integrating with LaunchDarkly";
        license = lib.licenses.asl20;
@@ -184102,6 +184473,7 @@ self: {
        ];
        description = "Hedgehog support for lawful-classes";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lawful-classes-quickcheck" = callPackage
@@ -184122,6 +184494,7 @@ self: {
        ];
        description = "QuickCheck support for lawful-classes";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lawful-classes-types" = callPackage
@@ -184133,6 +184506,8 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Types for lawful-classes";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "lawless-concurrent-machines" = callPackage
@@ -184359,6 +184734,8 @@ self: {
        ];
        description = "Asynchronous actions that don't start right away";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "lazy-bracket" = callPackage
@@ -184371,6 +184748,8 @@ self: {
        testHaskellDepends = [ base doctest exceptions tasty tasty-hunit ];
        description = "A bracket with lazy resource allocation";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "lazy-cache" = callPackage
@@ -184548,6 +184927,17 @@ self: {
        maintainers = [ lib.maintainers.thielema ];
      }) {};
 
+  "lazyio-applicative" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "lazyio-applicative";
+       version = "0.1.0.3";
+       sha256 = "1p0qhdbcnmx17j069n3w89jv8wpxzari4ihylrjk2x78k4b3p1cb";
+       libraryHaskellDepends = [ base ];
+       description = "LazyIO applicative for asymptotic performance";
+       license = lib.licenses.mit;
+     }) {};
+
   "lazyset" = callPackage
     ({ mkDerivation, base, containers, data-ordlist, HUnit, time
      , timeit
@@ -184669,6 +185059,7 @@ self: {
        testHaskellDepends = [ base bytestring hspec process semigroups ];
        description = "Pure Haskell LDAP Client Library";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ldap-client-og" = callPackage
@@ -184689,6 +185080,7 @@ self: {
        ];
        description = "Pure Haskell LDAP Client Library";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ldap-scim-bridge" = callPackage
@@ -184857,8 +185249,8 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "leancheck";
-       version = "1.0.0";
-       sha256 = "0896792d34aqag2hhmi6596kx46ca3897d0v9lr69qbcms9jj5gh";
+       version = "1.0.2";
+       sha256 = "0sp2rvz4h7mbra5jmn71ds3xz0934hhmsssbhsfgvkifgk8vcb0i";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base ];
        description = "Enumerative property-based testing";
@@ -184980,26 +185372,6 @@ self: {
      }) {};
 
   "learn-physics" = callPackage
-    ({ mkDerivation, base, gloss, gnuplot, hmatrix, not-gloss
-     , spatial-math, vector-space
-     }:
-     mkDerivation {
-       pname = "learn-physics";
-       version = "0.6.5";
-       sha256 = "0hcd03ygsq6kl08k7d8f61xm7bdzsdx6v4mplzz0c6c7sp9a40sb";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base gloss gnuplot hmatrix not-gloss spatial-math vector-space
-       ];
-       executableHaskellDepends = [
-         base gloss gnuplot not-gloss spatial-math
-       ];
-       description = "Haskell code for learning physics";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "learn-physics_0_6_6" = callPackage
     ({ mkDerivation, base, gloss, gnuplot, hmatrix, SpatialMath
      , vector-space, Vis
      }:
@@ -185072,6 +185444,8 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion deepseq ];
        description = "LEB128 encoding logic for and in Haskell";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "leb128-binary" = callPackage
@@ -185517,8 +185891,8 @@ self: {
     ({ mkDerivation, base, hspec, template-haskell, transformers }:
      mkDerivation {
        pname = "lens-family-th";
-       version = "0.5.2.1";
-       sha256 = "1w8k68a1lyfd79xkc4fbf6z7p5gpriq4pjgb4n9p58az6awnn7dh";
+       version = "0.5.3.1";
+       sha256 = "0fhv44qb3gdwiay3imhwhqhdpiczncjz2w6jiiqk11qn4a63rv7l";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base hspec template-haskell transformers ];
        description = "Generate lens-family style lenses";
@@ -185714,6 +186088,8 @@ self: {
        ];
        description = "Computing lenses generically using generics-sop";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "lens-tell" = callPackage
@@ -185940,6 +186316,7 @@ self: {
        ];
        description = "Van Laarhoven lenses";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lenz-mtl" = callPackage
@@ -185957,6 +186334,7 @@ self: {
        ];
        description = "mtl operations with Van Laarhoven lenses";
        license = "unknown";
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lenz-template" = callPackage
@@ -186043,6 +186421,8 @@ self: {
        ];
        description = "Haskell bindings to LevelDB";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) leveldb;};
 
   "leveldb-haskell-fork" = callPackage
@@ -186516,6 +186896,8 @@ self: {
        libraryHaskellDepends = [ base mtl process ];
        description = "Simple Git Wrapper";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "libgraph" = callPackage
@@ -186964,8 +187346,8 @@ self: {
      }:
      mkDerivation {
        pname = "libphonenumber";
-       version = "0.1.2.0";
-       sha256 = "0iw4ps3dky0grbvmajaz81d6q9zzqy8r9jfjmh6bc5i6k3w0mqwa";
+       version = "0.1.3.0";
+       sha256 = "1yhkkik6471gvx36i04hhbc9aq5fywgc6yrkii81rc4m6g3xnkig";
        libraryHaskellDepends = [
          base bytestring containers deepseq system-cxx-std-lib transformers
        ];
@@ -187082,6 +187464,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Move/rename according a set of rules";
        license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "librarian";
      }) {};
 
@@ -187213,8 +187596,8 @@ self: {
     ({ mkDerivation, base, libsodium }:
      mkDerivation {
        pname = "libsodium-bindings";
-       version = "0.0.1.0";
-       sha256 = "1asmcmqiahammzxk79r0afaaxn2izvfwr5hn6ddca2qyjch30lci";
+       version = "0.0.1.1";
+       sha256 = "0gfksw47rl13a3mhyzawhxrcp9ia6g85m5v59pp85jci0bgs7bda";
        libraryHaskellDepends = [ base ];
        librarySystemDepends = [ libsodium ];
        description = "FFI bindings to libsodium";
@@ -188296,37 +188679,6 @@ self: {
      }) {};
 
   "linear-base" = callPackage
-    ({ mkDerivation, base, containers, deepseq, gauge, ghc-prim
-     , hashable, hashtables, hedgehog, inspection-testing
-     , linear-generics, mmorph, MonadRandom, primitive, random
-     , random-shuffle, storable-tuple, tasty, tasty-hedgehog
-     , tasty-inspection-testing, text, transformers
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "linear-base";
-       version = "0.3.1";
-       sha256 = "1gm8bwyi39x5x29xb6nq13x9x9p30vm29s11k4pkcql70sj4pv0h";
-       revision = "2";
-       editedCabalFile = "0bfpjjr2y16h2x3gphsljgzcqrlwbmrxxqsikgn2idwy73pvd32l";
-       libraryHaskellDepends = [
-         base containers ghc-prim hashable linear-generics primitive
-         storable-tuple text transformers vector
-       ];
-       testHaskellDepends = [
-         base containers hedgehog inspection-testing linear-generics mmorph
-         storable-tuple tasty tasty-hedgehog tasty-inspection-testing text
-         vector
-       ];
-       benchmarkHaskellDepends = [
-         base deepseq gauge hashable hashtables MonadRandom random
-         random-shuffle unordered-containers vector
-       ];
-       description = "Standard library for linear types";
-       license = lib.licenses.mit;
-     }) {};
-
-  "linear-base_0_4_0" = callPackage
     ({ mkDerivation, base, containers, deepseq, ghc-prim, hashable
      , hashtables, hedgehog, inspection-testing, linear-generics, mmorph
      , MonadRandom, primitive, random, random-shuffle, storable-tuple
@@ -188352,7 +188704,6 @@ self: {
        ];
        description = "Standard library for linear types";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "linear-circuit" = callPackage
@@ -188409,8 +188760,8 @@ self: {
      }:
      mkDerivation {
        pname = "linear-generics";
-       version = "0.2.1";
-       sha256 = "15wlv11hsmnxzaf98ycdi29f1a79sbiq250b2kk459f0wfdbl8xd";
+       version = "0.2.3";
+       sha256 = "0093ywl8s8k92b50li28gcmqc616f6l7jkv7vslkvqzn42yrvbq2";
        libraryHaskellDepends = [
          base containers ghc-prim template-haskell th-abstraction
        ];
@@ -188420,22 +188771,20 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "linear-generics_0_2_2" = callPackage
-    ({ mkDerivation, base, containers, ghc-prim, hspec, hspec-discover
-     , template-haskell, th-abstraction
+  "linear-geo" = callPackage
+    ({ mkDerivation, base, deepseq, distributive, hedgehog, linear
+     , reflection, vector
      }:
      mkDerivation {
-       pname = "linear-generics";
-       version = "0.2.2";
-       sha256 = "0ls571qzayky0dax9d209lw9wv344z3969daqcsncv0r5rlvlps9";
+       pname = "linear-geo";
+       version = "0.1.0.0";
+       sha256 = "1waa1z8a52q21zl32zajrwimqbjl5cfgj3j0cxfza7ja92lqv3yd";
        libraryHaskellDepends = [
-         base containers ghc-prim template-haskell th-abstraction
+         base deepseq distributive linear vector
        ];
-       testHaskellDepends = [ base hspec template-haskell ];
-       testToolDepends = [ hspec-discover ];
-       description = "Generic programming library for generalised deriving";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
+       testHaskellDepends = [ base hedgehog linear reflection ];
+       description = "Geographic coordinates, built on the linear package";
+       license = lib.licenses.mit;
      }) {};
 
   "linear-grammar" = callPackage
@@ -188489,8 +188838,8 @@ self: {
      }:
      mkDerivation {
        pname = "linear-programming";
-       version = "0.0.0.1";
-       sha256 = "0m485xdivj08c4nygfi5d27448f12mcdiq03l170mk2jhx8ncmfx";
+       version = "0.0.1";
+       sha256 = "0f6m4qh040wgi8aygq4f2apfixdis7psj67f0iimh8rcswc8bv3z";
        libraryHaskellDepends = [
          base comfort-array non-empty QuickCheck random transformers
          utility-ht
@@ -188655,8 +189004,8 @@ self: {
      }:
      mkDerivation {
        pname = "linenoise";
-       version = "0.3.2";
-       sha256 = "0hs910k358mfx1s1cmrc76f8ra3r34748h22m68a64mspibd2frx";
+       version = "0.4.0";
+       sha256 = "0j91vskwkjn98acbx8jgxq76xk53bzds2k9b9zjfra5y17bn0gqr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -189031,20 +189380,6 @@ self: {
     ({ mkDerivation, base, unix }:
      mkDerivation {
        pname = "linux-file-extents";
-       version = "0.2.0.0";
-       sha256 = "1l4vznam1a8vf3nixhbmw38rpzkvmbka0cbdfdsgfrpn03kxjz3c";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base unix ];
-       description = "Retrieve file fragmentation information under Linux";
-       license = lib.licenses.bsd3;
-       platforms = lib.platforms.linux;
-     }) {};
-
-  "linux-file-extents_0_2_0_1" = callPackage
-    ({ mkDerivation, base, unix }:
-     mkDerivation {
-       pname = "linux-file-extents";
        version = "0.2.0.1";
        sha256 = "0c8zp47sjr741m86ah1yq71lcav32xid05x5c83adwb23a6fgmsk";
        isLibrary = true;
@@ -189053,7 +189388,6 @@ self: {
        description = "Retrieve file fragmentation information under Linux";
        license = lib.licenses.bsd3;
        platforms = lib.platforms.linux;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "linux-framebuffer" = callPackage
@@ -189065,6 +189399,8 @@ self: {
        libraryHaskellDepends = [ base bindings-DSL unix ];
        description = "Linux fbdev (framebuffer device, /dev/fbX) utility functions";
        license = "unknown";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "linux-inotify" = callPackage
@@ -189109,25 +189445,12 @@ self: {
     ({ mkDerivation, base, bytestring, unix }:
      mkDerivation {
        pname = "linux-namespaces";
-       version = "0.1.3.0";
-       sha256 = "1rvkzfmd07sz46k059ly80cjgwx67igfw8zsw8c6ljsp3hsdn4hl";
-       libraryHaskellDepends = [ base bytestring unix ];
-       description = "Work with linux namespaces: create new or enter existing ones";
-       license = lib.licenses.bsd3;
-       platforms = lib.platforms.linux;
-     }) {};
-
-  "linux-namespaces_0_1_3_1" = callPackage
-    ({ mkDerivation, base, bytestring, unix }:
-     mkDerivation {
-       pname = "linux-namespaces";
        version = "0.1.3.1";
        sha256 = "1h0ar1jqgip5k5b7c2v452jk62ig1pfgpw587faw8z0ai51yrl9a";
        libraryHaskellDepends = [ base bytestring unix ];
        description = "Work with linux namespaces: create new or enter existing ones";
        license = lib.licenses.bsd3;
        platforms = lib.platforms.linux;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "linux-perf" = callPackage
@@ -189252,6 +189575,8 @@ self: {
        description = "Labeled File System interface for LIO";
        license = "GPL";
        badPlatforms = lib.platforms.darwin;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "lio-simple" = callPackage
@@ -189288,8 +189613,8 @@ self: {
      }:
      mkDerivation {
        pname = "lion";
-       version = "0.3.0.0";
-       sha256 = "0yz5p4wvdl518nqc0vjjrmvl5danm9hp37gnar8ancf2nrfh9gr9";
+       version = "0.4.0.0";
+       sha256 = "0vh5krw9z7b7a6bvhc63l5m1rg3g0wyci055qarhsfw27dgbkfx8";
        libraryHaskellDepends = [
          base clash-prelude generic-monoid ghc-typelits-extra
          ghc-typelits-knownnat ghc-typelits-natnormalise ice40-prim lens mtl
@@ -189397,8 +189722,8 @@ self: {
      }:
      mkDerivation {
        pname = "liquid-fixpoint";
-       version = "0.9.4.7";
-       sha256 = "0q1h3ih7k8h6q9ly32122zmv81yr5kn1xb22434afi7dbpq5i7kc";
+       version = "0.9.6.3";
+       sha256 = "0vir7l5wpbpcgvydncxsn6yk6xi2v8ax4r75zb4cn0sl4cyswp4m";
        configureFlags = [ "-fbuild-external" ];
        isLibrary = true;
        isExecutable = true;
@@ -189457,19 +189782,18 @@ self: {
      }) {};
 
   "liquid-platform" = callPackage
-    ({ mkDerivation, base, cmdargs, containers, filepath
-     , liquid-prelude, liquid-vector, liquidhaskell, liquidhaskell-boot
-     , process
+    ({ mkDerivation, base, containers, filepath, liquid-prelude
+     , liquid-vector, liquidhaskell, liquidhaskell-boot, process
      }:
      mkDerivation {
        pname = "liquid-platform";
-       version = "0.9.2.5";
-       sha256 = "149bbnyhqmhcdpxbhs1h5hypc2xg4yjlj8j9wxcjwfdfq5bw8h7w";
+       version = "0.9.2.8";
+       sha256 = "01a4ablbr6kn07fqw9x98ws0qpplicdpjf18qv2svp24pjazbw27";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base cmdargs containers filepath liquid-prelude liquid-vector
-         liquidhaskell liquidhaskell-boot process
+         base containers filepath liquid-prelude liquid-vector liquidhaskell
+         liquidhaskell-boot process
        ];
        description = "A battery-included platform for LiquidHaskell";
        license = lib.licenses.bsd3;
@@ -189515,8 +189839,8 @@ self: {
      }:
      mkDerivation {
        pname = "liquidhaskell";
-       version = "0.9.4.7.0";
-       sha256 = "0lqrq500nqvnh4s69s3xwz76z5v6wljdg2w74z88q208skm3ba6b";
+       version = "0.9.8.1";
+       sha256 = "0dak8ixjylm4lznzddn4zcjdb8nm9ha5l6p29l6bhk54gfzccsn8";
        setupHaskellDepends = [ base Cabal liquidhaskell-boot ];
        libraryHaskellDepends = [
          base bytestring containers ghc-bignum ghc-prim liquidhaskell-boot
@@ -189539,14 +189863,13 @@ self: {
      }:
      mkDerivation {
        pname = "liquidhaskell-boot";
-       version = "0.9.4.7.0";
-       sha256 = "02z6bm4nkdq7k0ki6xfkrdm3kqfdaag9hy28ii4mk48awj80h3f4";
-       enableSeparateDataOutput = true;
+       version = "0.9.8.1";
+       sha256 = "00cm1myw2l051nspx04vn332jxn2wary2mn5yhv0pqsvi28j2vnw";
        libraryHaskellDepends = [
          aeson base binary bytestring Cabal cereal cmdargs containers
          data-default data-fix deepseq Diff directory exceptions extra
-         filepath fingertree free ghc ghc-boot ghc-paths ghc-prim githash
-         gitrev hashable hscolour liquid-fixpoint megaparsec mtl
+         filepath fingertree free ghc ghc-boot ghc-prim githash gitrev
+         hashable hscolour liquid-fixpoint megaparsec mtl
          optparse-applicative pretty recursion-schemes split syb
          template-haskell temporary text th-compat time transformers
          unordered-containers vector
@@ -189762,6 +190085,8 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Easily and clearly create lists with only one element in them";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "list-t" = callPackage
@@ -189884,28 +190209,12 @@ self: {
     ({ mkDerivation, base, doctest, mmorph, mtl }:
      mkDerivation {
        pname = "list-transformer";
-       version = "1.0.9";
-       sha256 = "1lvdyrxflssayq14x36a0ix7q3hfzlq924mjg21b7f6s3j9262xr";
-       revision = "2";
-       editedCabalFile = "0356ca6kb6r8j2lc9vbzxz0chdzplc3v6m4sbsm4p7vanjjl1zgf";
-       libraryHaskellDepends = [ base mmorph mtl ];
-       testHaskellDepends = [ base doctest ];
-       description = "List monad transformer";
-       license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.Gabriella439 ];
-     }) {};
-
-  "list-transformer_1_1_0" = callPackage
-    ({ mkDerivation, base, doctest, mmorph, mtl }:
-     mkDerivation {
-       pname = "list-transformer";
        version = "1.1.0";
        sha256 = "061a2cnlv335ski627zrdfk8nd110wpiawclq5nwa3sx0l92xsrx";
        libraryHaskellDepends = [ base mmorph mtl ];
        testHaskellDepends = [ base doctest ];
        description = "List monad transformer";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.Gabriella439 ];
      }) {};
 
@@ -190223,24 +190532,25 @@ self: {
     ({ mkDerivation, alsa-core, alsa-seq, base, bytestring, cgi
      , concurrent-split, containers, data-accessor
      , data-accessor-transformers, event-list, explicit-exception, html
-     , httpd-shed, midi, midi-alsa, network, network-uri, non-empty
-     , non-negative, parsec, pathtype, pretty, process, semigroups, stm
-     , stm-split, strict, transformers, unix, utility-ht, wx, wxcore
+     , httpd-shed, midi, midi-alsa, network, network-uri
+     , network-uri-flag, non-empty, non-negative, parsec, pathtype
+     , pretty, process, semigroups, shell-utility, stm, stm-split
+     , strict, transformers, unix, utility-ht, wx, wxcore
      }:
      mkDerivation {
        pname = "live-sequencer";
-       version = "0.0.6.2";
-       sha256 = "12v1xfsi1cnnfakd5pzvligrpv5pfzl3vkr1gxvrigawipsj4b9f";
+       version = "0.0.6.3";
+       sha256 = "1zq3yh6nn1yfiyys2xq90a1jjfb75aw37rhzrd5r2054fy18r5ym";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
-       libraryHaskellDepends = [ base event-list non-negative ];
+       libraryHaskellDepends = [ base event-list midi non-negative ];
        executableHaskellDepends = [
          alsa-core alsa-seq base bytestring cgi concurrent-split containers
          data-accessor data-accessor-transformers explicit-exception html
-         httpd-shed midi midi-alsa network network-uri non-empty parsec
-         pathtype pretty process semigroups stm stm-split strict
-         transformers unix utility-ht wx wxcore
+         httpd-shed midi midi-alsa network network-uri network-uri-flag
+         non-empty parsec pathtype pretty process semigroups shell-utility
+         stm stm-split strict transformers unix utility-ht wx wxcore
        ];
        description = "Live coding of MIDI music";
        license = "GPL";
@@ -190671,6 +190981,8 @@ self: {
        ];
        description = "Pure Haskell LLVM functionality (no FFI)";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "llvm-ht" = callPackage
@@ -190740,16 +191052,20 @@ self: {
 
   "llvm-pretty" = callPackage
     ({ mkDerivation, base, containers, microlens, microlens-th
-     , monadLib, parsec, pretty, template-haskell, th-abstraction
+     , monadLib, parsec, pretty, syb, tasty, tasty-hunit
+     , template-haskell, text, th-abstraction
      }:
      mkDerivation {
        pname = "llvm-pretty";
-       version = "0.11.0";
-       sha256 = "17jw5i68fz2vk40dcqf8k7j6j6h8acg4fhnyygb72jbk17md4q94";
+       version = "0.12.0.0";
+       sha256 = "1xdlic9rl63617qqwxlf2sn0j67wsnarhllf1k5anzgprd64vylj";
        libraryHaskellDepends = [
-         base containers microlens microlens-th monadLib parsec pretty
+         base containers microlens microlens-th monadLib parsec pretty syb
          template-haskell th-abstraction
        ];
+       testHaskellDepends = [
+         base pretty tasty tasty-hunit template-haskell text
+       ];
        description = "A pretty printing library inspired by the llvm binding";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -190757,26 +191073,35 @@ self: {
      }) {};
 
   "llvm-pretty-bc-parser" = callPackage
-    ({ mkDerivation, array, base, bytestring, cereal, containers
-     , directory, fgl, fgl-visualize, filepath, llvm-pretty, monadLib
-     , pretty, process
+    ({ mkDerivation, array, base, binary, bytestring, containers
+     , directory, exceptions, fgl, fgl-visualize, filepath
+     , generic-random, HUnit, lens, llvm-pretty, monadLib, mtl
+     , optparse-applicative, pretty, pretty-show, prettyprinter, process
+     , QuickCheck, string-interpolate, syb, tasty
+     , tasty-expected-failure, tasty-hunit, tasty-quickcheck
+     , tasty-sugar, terminal-size, text, transformers, uniplate
+     , utf8-string, versions
      }:
      mkDerivation {
        pname = "llvm-pretty-bc-parser";
-       version = "0.4.0.0";
-       sha256 = "0mj4k4a8xap5gsw7zrnlg6ms65nb1cfmllxq24h7gvd7s9qs9cp8";
+       version = "0.4.1.0";
+       sha256 = "1nc8znxzzg2qgn3x52a310rn8lg647k495927k6zfs2x07chy5gh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         array base bytestring cereal containers fgl llvm-pretty monadLib
-         pretty
+         array base binary bytestring containers fgl llvm-pretty mtl pretty
+         uniplate utf8-string
        ];
        executableHaskellDepends = [
-         array base bytestring cereal containers fgl fgl-visualize
-         llvm-pretty monadLib pretty
+         array base binary bytestring containers fgl fgl-visualize
+         llvm-pretty monadLib pretty pretty-show
        ];
        testHaskellDepends = [
-         base bytestring directory filepath llvm-pretty process
+         base bytestring containers directory exceptions filepath
+         generic-random HUnit lens llvm-pretty optparse-applicative
+         pretty-show prettyprinter process QuickCheck string-interpolate syb
+         tasty tasty-expected-failure tasty-hunit tasty-quickcheck
+         tasty-sugar terminal-size text transformers versions
        ];
        description = "LLVM bitcode parsing library";
        license = lib.licenses.bsd3;
@@ -191070,23 +191395,6 @@ self: {
 
   "loc" = callPackage
     ({ mkDerivation, base, containers, hedgehog, hspec, hspec-hedgehog
-     }:
-     mkDerivation {
-       pname = "loc";
-       version = "0.1.4.1";
-       sha256 = "12bsbjl0808dfcshz38iih3cl3768zix23adznnq821ffxsxfiiw";
-       revision = "1";
-       editedCabalFile = "0jfpyy8nl776fihnbzwh3cb9n6xss6l77prfhhqw32dgy4pnqcam";
-       libraryHaskellDepends = [ base containers ];
-       testHaskellDepends = [
-         base containers hedgehog hspec hspec-hedgehog
-       ];
-       description = "Line and column positions and ranges in text files";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "loc_0_2_0_0" = callPackage
-    ({ mkDerivation, base, containers, hedgehog, hspec, hspec-hedgehog
      , integer-types
      }:
      mkDerivation {
@@ -191883,6 +192191,8 @@ self: {
        ];
        description = "Import, export etc. for TPTP, a syntax for first-order logic";
        license = "GPL";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "logic-classes" = callPackage
@@ -191932,20 +192242,6 @@ self: {
      }) {};
 
   "logict" = callPackage
-    ({ mkDerivation, async, base, mtl, tasty, tasty-hunit }:
-     mkDerivation {
-       pname = "logict";
-       version = "0.8.0.0";
-       sha256 = "0mpv50ifb3x9vfmgi1p9piwcgz8d19x0wdj789wxyhxwjpr6v4py";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base mtl ];
-       testHaskellDepends = [ async base mtl tasty tasty-hunit ];
-       description = "A backtracking logic-programming monad";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "logict_0_8_1_0" = callPackage
     ({ mkDerivation, async, base, mtl, tasty, tasty-hunit, transformers
      }:
      mkDerivation {
@@ -191960,7 +192256,6 @@ self: {
        ];
        description = "A backtracking logic-programming monad";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "logict-sequence" = callPackage
@@ -192392,8 +192687,8 @@ self: {
      }:
      mkDerivation {
        pname = "looksee";
-       version = "0.5.1";
-       sha256 = "1cw0bfj9hkzv1vzcl0lp5wa2dyq96pf34jjzmqrvp1ak2mc7si7m";
+       version = "0.5.2";
+       sha256 = "06smzpcwsvmfxv9v1i8qdxanab8x0klw5gdb5jxd7pv4msv72py4";
        libraryHaskellDepends = [
          base bifunctors containers errata mmorph mtl recursion-schemes
          scientific text vector
@@ -192776,6 +193071,7 @@ self: {
        ];
        description = "An EDSL for diagrams based based on linear constraints";
        license = lib.licenses.agpl3Only;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lp-diagrams-svg" = callPackage
@@ -192841,10 +193137,8 @@ self: {
      }:
      mkDerivation {
        pname = "lrucaching";
-       version = "0.3.3";
-       sha256 = "192a2zap1bmxa2y48n48rmngf18fr8k0az4a230hziv3g795yzma";
-       revision = "12";
-       editedCabalFile = "0jc46492lq09yrmp0887q9smk0z6nn35nlgcarm9rndsr2a1x0ya";
+       version = "0.3.4";
+       sha256 = "1vnhg506kn231rxa85igxamv4gyxa6fk0i94ycdv0898zrr4j31n";
        libraryHaskellDepends = [
          base base-compat deepseq hashable psqueues vector
        ];
@@ -192910,17 +193204,17 @@ self: {
      }) {};
 
   "lsfrom" = callPackage
-    ({ mkDerivation, base, directory, filepath, simple-cmd
+    ({ mkDerivation, base, directory, filepath, safe, simple-cmd
      , simple-cmd-args
      }:
      mkDerivation {
        pname = "lsfrom";
-       version = "0.1.1.1";
-       sha256 = "1vm80k8gsh4k7937i02wv4dk2s173c9wvgiilc1am3ddp7x7ms1h";
+       version = "1.0";
+       sha256 = "0q9i4ff9qrb426wl2hzmpq0zsxvp1ckz3z73gkr51zmap8i7d1f4";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base filepath simple-cmd simple-cmd-args
+         base filepath safe simple-cmd simple-cmd-args
        ];
        testHaskellDepends = [ base directory filepath simple-cmd ];
        description = "List directory files starting from a specific name";
@@ -192956,31 +193250,28 @@ self: {
        broken = true;
      }) {};
 
-  "lsp_1_4_0_0" = callPackage
+  "lsp_2_1_0_0" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, bytestring
-     , containers, data-default, exceptions, filepath, hashable
-     , hslogger, hspec, hspec-discover, lens, lsp-types, mtl
-     , network-uri, QuickCheck, quickcheck-instances, random
-     , rope-utf16-splay, scientific, sorted-list, stm, text, time
-     , transformers, unliftio-core, unordered-containers, uuid
+     , co-log-core, containers, data-default, directory, exceptions
+     , filepath, hashable, hspec, hspec-discover, lens, lsp-types, mtl
+     , prettyprinter, random, row-types, sorted-list, stm, temporary
+     , text, text-rope, transformers, unliftio-core
+     , unordered-containers, uuid
      }:
      mkDerivation {
        pname = "lsp";
-       version = "1.4.0.0";
-       sha256 = "18hnb4k3zwjxp3r5jrgrbakvqr2d16azp6jwmfv5lq5n8xn6mwgv";
-       revision = "1";
-       editedCabalFile = "01a4c4qr2zf0izawrkhbw831hawnl576ckw1an07lxvxdif68py4";
+       version = "2.1.0.0";
+       sha256 = "03gk98fgf32blywdds0fc5351bmcbbfrnqwlg33l2ih75nwa59y8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson async attoparsec base bytestring containers data-default
-         exceptions hashable hslogger lens lsp-types mtl network-uri random
-         scientific sorted-list stm text time transformers unliftio-core
-         unordered-containers uuid
+         aeson async attoparsec base bytestring co-log-core containers
+         data-default directory exceptions filepath hashable lens lsp-types
+         mtl prettyprinter random row-types sorted-list stm temporary text
+         text-rope transformers unliftio-core unordered-containers uuid
        ];
        testHaskellDepends = [
-         aeson base containers filepath hspec lens network-uri QuickCheck
-         quickcheck-instances rope-utf16-splay sorted-list text
+         base containers hspec row-types sorted-list text text-rope
          unordered-containers
        ];
        testToolDepends = [ hspec-discover ];
@@ -193020,26 +193311,56 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "lsp_2_4_0_0" = callPackage
+    ({ mkDerivation, aeson, async, attoparsec, base, bytestring
+     , co-log-core, containers, data-default, directory, exceptions
+     , filepath, hashable, hspec, hspec-discover, lens, lens-aeson
+     , lsp-types, mtl, prettyprinter, random, row-types, sorted-list
+     , stm, text, text-rope, transformers, unliftio-core
+     , unordered-containers, uuid
+     }:
+     mkDerivation {
+       pname = "lsp";
+       version = "2.4.0.0";
+       sha256 = "1ggfw2wp9g9fpg9x3kj9zh6l6p2yiw4q0v1gzxjg0mcmvp4aad8w";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson async attoparsec base bytestring co-log-core containers
+         data-default directory exceptions filepath hashable lens lens-aeson
+         lsp-types mtl prettyprinter random row-types sorted-list stm text
+         text-rope transformers unliftio-core unordered-containers uuid
+       ];
+       testHaskellDepends = [
+         base containers hspec row-types sorted-list text text-rope
+         unordered-containers
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Haskell library for the Microsoft Language Server Protocol";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "lsp-client" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, co-log-core
-     , data-default, dependent-map, Diff, directory, extra, filepath
-     , generic-lens, Glob, hashable, hspec, lens, lsp, lsp-types, mtl
-     , process, QuickCheck, stm, text, text-rope, unix, unliftio
-     , unordered-containers
+     , containers, data-default, dependent-map, Diff, directory, extra
+     , filepath, generic-lens, Glob, hspec, lens, lsp, lsp-types, mtl
+     , process, QuickCheck, row-types, stm, text, text-rope, unix-compat
+     , unliftio, unordered-containers
      }:
      mkDerivation {
        pname = "lsp-client";
-       version = "0.1.0.0";
-       sha256 = "0ivq79g57kxr1lfca137acvbzi3lx0qa10ahmpkpc2wc9bj0mb05";
+       version = "0.2.0.0";
+       sha256 = "0wh9qjcck2pdya5dpz8k6k9x49a543j4p3vjvscd4bk0vzk76rc0";
        libraryHaskellDepends = [
-         aeson aeson-pretty base bytestring co-log-core data-default
-         dependent-map Diff directory filepath generic-lens Glob hashable
-         lens lsp lsp-types mtl stm text text-rope unix unliftio
-         unordered-containers
+         aeson aeson-pretty base bytestring co-log-core containers
+         data-default dependent-map Diff directory extra filepath
+         generic-lens Glob lens lsp lsp-types mtl row-types stm text
+         text-rope unix-compat unliftio unordered-containers
        ];
        testHaskellDepends = [
          aeson base bytestring extra hspec lens lsp-types process QuickCheck
-         unliftio
+         row-types unliftio
        ];
        description = "Haskell library for Language Server Protocol clients";
        license = lib.licenses.asl20;
@@ -193076,31 +193397,38 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "lsp-types_1_4_0_1" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, containers
-     , data-default, deepseq, Diff, directory, dlist, filepath, hashable
-     , hslogger, lens, mod, mtl, network-uri, rope-utf16-splay
-     , scientific, some, template-haskell, temporary, text
-     , unordered-containers
+  "lsp-test_0_17_0_0" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
+     , bytestring, co-log-core, conduit, conduit-parse, containers
+     , data-default, Diff, directory, exceptions, extra, filepath, Glob
+     , hspec, lens, lens-aeson, lsp, lsp-types, mtl, parser-combinators
+     , process, row-types, some, text, time, transformers, unix
+     , unliftio
      }:
      mkDerivation {
-       pname = "lsp-types";
-       version = "1.4.0.1";
-       sha256 = "0dxf5nnaxs2564hgjldkclhm5gvszjxxvz6gk00jmx0gf8k6dm8z";
-       revision = "2";
-       editedCabalFile = "02vaq4x40l9v67zv3bimxvxa06nwawkcnrjjn6k3k721j15v2li5";
+       pname = "lsp-test";
+       version = "0.17.0.0";
+       sha256 = "1jjzqp7dbvaxysfa765zlcmb8h973242fb7a6b17cab3bjc12laq";
        libraryHaskellDepends = [
-         aeson base binary bytestring containers data-default deepseq Diff
-         directory dlist filepath hashable hslogger lens mod mtl network-uri
-         rope-utf16-splay scientific some template-haskell temporary text
-         unordered-containers
+         aeson aeson-pretty ansi-terminal async base bytestring co-log-core
+         conduit conduit-parse containers data-default Diff directory
+         exceptions extra filepath Glob lens lens-aeson lsp lsp-types mtl
+         parser-combinators process row-types some text time transformers
+         unix
        ];
-       description = "Haskell library for the Microsoft Language Server Protocol, data types";
-       license = lib.licenses.mit;
+       testHaskellDepends = [
+         aeson base co-log-core containers data-default directory extra
+         filepath hspec lens lsp mtl parser-combinators process text
+         unliftio
+       ];
+       testToolDepends = [ lsp ];
+       benchmarkHaskellDepends = [ base extra lsp process ];
+       description = "Functional test framework for LSP servers";
+       license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "lsp-types" = callPackage
+  "lsp-types_2_0_2_0" = callPackage
     ({ mkDerivation, aeson, base, binary, containers, data-default
      , deepseq, Diff, directory, dlist, exceptions, file-embed, filepath
      , hashable, hspec, hspec-discover, indexed-traversable
@@ -193111,8 +193439,8 @@ self: {
      }:
      mkDerivation {
        pname = "lsp-types";
-       version = "2.1.0.0";
-       sha256 = "0i4ygvf7fc6bh5rmw3fq7ck4vcmbfw92fzvnxpmqr3j1yp3a6fiw";
+       version = "2.0.2.0";
+       sha256 = "0s895x3b8fpcj2b0ia3d4dmwk4vhg6h2anmzffkpr3drsq5bi1j6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -193133,6 +193461,43 @@ self: {
        doHaddock = false;
        description = "Haskell library for the Microsoft Language Server Protocol, data types";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "generator";
+     }) {};
+
+  "lsp-types" = callPackage
+    ({ mkDerivation, aeson, base, binary, containers, data-default
+     , deepseq, Diff, directory, dlist, exceptions, file-embed, filepath
+     , generic-arbitrary, hashable, hspec, hspec-discover
+     , indexed-traversable, indexed-traversable-instances, lens
+     , lens-aeson, mod, mtl, network-uri, prettyprinter, QuickCheck
+     , quickcheck-instances, regex, row-types, safe, some
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "lsp-types";
+       version = "2.1.1.0";
+       sha256 = "0gsr0v11xfav7dnq4d433y9ca0snmqaax4pp5sgmf33zl8qhi6s0";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base binary containers data-default deepseq Diff dlist
+         exceptions file-embed filepath generic-arbitrary hashable
+         indexed-traversable indexed-traversable-instances lens lens-aeson
+         mod mtl network-uri prettyprinter QuickCheck quickcheck-instances
+         row-types safe some template-haskell text
+       ];
+       executableHaskellDepends = [
+         base containers directory filepath mtl prettyprinter regex text
+       ];
+       testHaskellDepends = [
+         aeson base filepath hspec lens network-uri QuickCheck
+         quickcheck-instances row-types text
+       ];
+       testToolDepends = [ hspec-discover ];
+       doHaddock = false;
+       description = "Haskell library for the Microsoft Language Server Protocol, data types";
+       license = lib.licenses.mit;
        mainProgram = "generator";
      }) {};
 
@@ -193178,33 +193543,31 @@ self: {
   "ltext" = callPackage
     ({ mkDerivation, attoparsec, base, directory, exceptions, extra
      , mtl, optparse-applicative, pretty, QuickCheck
-     , quickcheck-combinators, quickcheck-instances, tasty
-     , tasty-quickcheck, text, transformers, unordered-containers
+     , quickcheck-instances, tasty, tasty-quickcheck, text, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "ltext";
-       version = "0.1.4";
-       sha256 = "1znfwnv1m0pzzdlc6i89wh7gz8igv77r286ymwx5qzn86nkq6wxa";
+       version = "0.1.5";
+       sha256 = "14g96a53n3jsxzgvwq2rlwf6wg466bmrdc29cv243r35ilb3fsq9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          attoparsec base directory exceptions extra mtl pretty QuickCheck
-         quickcheck-combinators quickcheck-instances text transformers
-         unordered-containers
+         quickcheck-instances text transformers unordered-containers
        ];
        executableHaskellDepends = [
          attoparsec base directory exceptions extra mtl optparse-applicative
-         pretty QuickCheck quickcheck-combinators quickcheck-instances text
-         transformers unordered-containers
+         pretty QuickCheck quickcheck-instances text transformers
+         unordered-containers
        ];
        testHaskellDepends = [
          attoparsec base directory exceptions extra mtl pretty QuickCheck
-         quickcheck-combinators quickcheck-instances tasty tasty-quickcheck
-         text transformers unordered-containers
+         quickcheck-instances tasty tasty-quickcheck text transformers
+         unordered-containers
        ];
        description = "Parameterized file evaluator";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "ltext";
      }) {};
 
@@ -193229,6 +193592,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Core functionality for LTI 1.3";
        license = lib.licenses.lgpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ltiv1p1" = callPackage
@@ -193289,8 +193654,8 @@ self: {
     ({ mkDerivation, base, lua5_4, tasty, tasty-hunit }:
      mkDerivation {
        pname = "lua";
-       version = "2.3.1";
-       sha256 = "0ly73xpxfpdn9mmcr98ss5fa8sj0bslilzjiknih053b3y0ia9dr";
+       version = "2.3.2";
+       sha256 = "0c9pq728ipcgmmxw58ab9p0lgcqqb2gf8dlscvgg52pb3q4qqamf";
        configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ];
        libraryHaskellDepends = [ base ];
        librarySystemDepends = [ lua5_4 ];
@@ -193552,6 +193917,8 @@ self: {
        ];
        description = "DSL for SVG using lucid for HTML";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "lucid-xstatic" = callPackage
@@ -193719,6 +194086,8 @@ self: {
        pname = "lumberjack";
        version = "1.0.3.0";
        sha256 = "05a4gvc47448crb0yn0fwi3y9bwdqlmnch839hljwpyamqvqwi8q";
+       revision = "1";
+       editedCabalFile = "1dj6mw8jbxczmqxwyiqqqz7lsi4586bbgv16m4ji14zmm84z2ad3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -193988,8 +194357,8 @@ self: {
      }:
      mkDerivation {
        pname = "lz4-bytes";
-       version = "0.1.1.0";
-       sha256 = "1h445dkw9cnzj01bm1hq5bvy48ybnwrd1ak2q7676ybvzl8qzffa";
+       version = "0.1.1.1";
+       sha256 = "1caqm2c10l9030qj9sxfwh2sjq4npq97dmixakr3xg1ccsm2144x";
        libraryHaskellDepends = [
          base byte-order byteslice primitive run-st
        ];
@@ -194093,8 +194462,8 @@ self: {
      }:
      mkDerivation {
        pname = "lzlib";
-       version = "1.0.7.2";
-       sha256 = "00hjq15jc94bf3lgzh33w7ksf3daw2l7x1qljn11lbr48a8a2zmi";
+       version = "1.0.7.3";
+       sha256 = "0jnzn9ks4nl47bqp68pj4mmg9fxy07gry75ra483ag15yv8jc585";
        libraryHaskellDepends = [ base bytestring ];
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [
@@ -194955,6 +195324,7 @@ self: {
        ];
        description = "Preconfigured email connection pool on top of smtp";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "exe";
      }) {};
 
@@ -196200,28 +196570,6 @@ self: {
      }:
      mkDerivation {
        pname = "markdown-unlit";
-       version = "0.5.1";
-       sha256 = "0njzn56m8z6lm70xyixbylbnpjz1gk7x8vdsdvi3qld9m66gc3n7";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base base-compat ];
-       executableHaskellDepends = [ base base-compat ];
-       testHaskellDepends = [
-         base base-compat directory hspec QuickCheck silently stringbuilder
-         temporary
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Literate Haskell support for Markdown";
-       license = lib.licenses.mit;
-       mainProgram = "markdown-unlit";
-     }) {};
-
-  "markdown-unlit_0_6_0" = callPackage
-    ({ mkDerivation, base, base-compat, directory, hspec
-     , hspec-discover, QuickCheck, silently, stringbuilder, temporary
-     }:
-     mkDerivation {
-       pname = "markdown-unlit";
        version = "0.6.0";
        sha256 = "0nkvg33i8vkpb774lph306c7xwl8ib26ily5zjy37np43xc1i2yk";
        isLibrary = true;
@@ -196235,7 +196583,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Literate Haskell support for Markdown";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "markdown-unlit";
      }) {};
 
@@ -196588,6 +196935,7 @@ self: {
        ];
        description = "Markup language preprocessor for Haskell";
        license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "marxup";
      }) {};
 
@@ -196645,6 +196993,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Massiv (МаÑÑив) is an Array Library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "massiv-io" = callPackage
@@ -196671,6 +197020,7 @@ self: {
        ];
        description = "Import/export of Image files into massiv Arrays";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "massiv-persist" = callPackage
@@ -196756,6 +197106,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Library that contains generators, properties and tests for Massiv Array Library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "master-plan" = callPackage
@@ -197235,8 +197586,8 @@ self: {
        pname = "matrix-client";
        version = "0.1.5.0";
        sha256 = "0hmca0knk1z3zg6v7rqfr0019n76pdsr8xj9ndywjk4c733lxm18";
-       revision = "1";
-       editedCabalFile = "0l21qxzqg50hh6l8f4p7hpixn5iqiq7d2m4r58j8q80mrk1dx0jf";
+       revision = "3";
+       editedCabalFile = "0faw4nhpvfjz19789ng4nga1dgx2ycg4zskyizkmbzyvjkambf67";
        libraryHaskellDepends = [
          aeson aeson-casing base base64 bytestring containers exceptions
          hashable http-client http-client-tls http-types network-uri
@@ -197395,32 +197746,33 @@ self: {
   "matterhorn" = callPackage
     ({ mkDerivation, aeson, aspell-pipe, async, base, base-compat
      , bimap, brick, brick-skylighting, bytestring, checkers, commonmark
-     , commonmark-extensions, config-ini, connection, containers
+     , commonmark-extensions, config-ini, containers, crypton-connection
      , data-clist, directory, filepath, gitrev, hashable, Hclip
      , mattermost-api, mattermost-api-qc, microlens-platform, mtl
      , network-uri, parsec, process, random, semigroups
      , skylighting-core, split, stm, stm-delay, strict, tasty
      , tasty-hunit, tasty-quickcheck, temporary, text, text-zipper, time
-     , timezone-olson, timezone-series, transformers, Unique, unix
-     , unordered-containers, utf8-string, uuid, vector, vty, word-wrap
-     , xdg-basedir
+     , timezone-olson, timezone-series, transformers, Unique
+     , unix-compat, unordered-containers, utf8-string, uuid, vector, vty
+     , vty-crossplatform, word-wrap, xdg-basedir
      }:
      mkDerivation {
        pname = "matterhorn";
-       version = "50200.19.0";
-       sha256 = "1rs1j8bqqiasmwv44mn1lpx14264rbvwp4lk04lgr9qbw07yih6j";
+       version = "90000.0.0";
+       sha256 = "0vc63h1xcg578c88wra66lb1x4spqqbcg5kfgjqqy3klqs2qz0sp";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson aspell-pipe async base base-compat bimap brick
          brick-skylighting bytestring commonmark commonmark-extensions
-         config-ini connection containers data-clist directory filepath
-         gitrev hashable Hclip mattermost-api microlens-platform mtl
-         network-uri parsec process random semigroups skylighting-core split
-         stm stm-delay strict temporary text text-zipper time timezone-olson
-         timezone-series transformers unix unordered-containers utf8-string
-         uuid vector vty word-wrap xdg-basedir
+         config-ini containers crypton-connection data-clist directory
+         filepath gitrev hashable Hclip mattermost-api microlens-platform
+         mtl network-uri parsec process random semigroups skylighting-core
+         split stm stm-delay strict temporary text text-zipper time
+         timezone-olson timezone-series transformers unix-compat
+         unordered-containers utf8-string uuid vector vty vty-crossplatform
+         word-wrap xdg-basedir
        ];
        executableHaskellDepends = [ base brick text ];
        testHaskellDepends = [
@@ -197435,22 +197787,22 @@ self: {
      }) {};
 
   "mattermost-api" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, connection
-     , containers, gitrev, hashable, HTTP, http-media, HUnit, memory
-     , microlens, microlens-th, modern-uri, mtl, network-uri
+    ({ mkDerivation, aeson, base, binary, bytestring, containers
+     , crypton-connection, gitrev, hashable, HTTP, http-media, HUnit
+     , memory, microlens, microlens-th, modern-uri, mtl, network-uri
      , pretty-show, process, resource-pool, split, stm, tasty
      , tasty-hunit, template-haskell, text, time, unordered-containers
      , websockets
      }:
      mkDerivation {
        pname = "mattermost-api";
-       version = "50200.15.0";
-       sha256 = "02hg12mwd6511bkgckxdfs01vxxmhyvvd2rh84q708cnwsv8haaz";
+       version = "90000.0.0";
+       sha256 = "1ka3r4bnfwlbjnkws8vkg8i9gj8wzsyss137p7hxrx4sr75s6iyv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base binary bytestring connection containers gitrev hashable
-         HTTP http-media memory microlens microlens-th modern-uri
+         aeson base binary bytestring containers crypton-connection gitrev
+         hashable HTTP http-media memory microlens microlens-th modern-uri
          network-uri pretty-show process resource-pool split stm
          template-haskell text time unordered-containers websockets
        ];
@@ -197469,8 +197821,8 @@ self: {
      }:
      mkDerivation {
        pname = "mattermost-api-qc";
-       version = "50200.15.0";
-       sha256 = "1nd0k8b060ihpz53ln4dmslsfvl74vcd47zdfrqnk2a81y62p55i";
+       version = "90000.0.0";
+       sha256 = "0lrb8l8nbrdp4y2ala8hchr8ikv5hqw710ffiiw1sz6z2dqiqbxm";
        libraryHaskellDepends = [
          base containers mattermost-api QuickCheck text time
        ];
@@ -197905,10 +198257,8 @@ self: {
      }:
      mkDerivation {
        pname = "md5";
-       version = "0.1.0.0";
-       sha256 = "0h0m6wwis1p2dl689wllywp338yxyykghfnznsq6jfb9vdfavzs4";
-       revision = "1";
-       editedCabalFile = "1rz2gjn049yjcans2xw6npkh30vzp7qdv6ar4pzjhpjjhrl8aqzh";
+       version = "0.1.0.3";
+       sha256 = "0291a6k8aniff4zi7kf29npzi3p0gvbfygaw3g2x0d76zq19kzgr";
        libraryHaskellDepends = [ base bytebuild byteslice primitive ];
        testHaskellDepends = [
          base bytebuild byteslice natural-arithmetic primitive
@@ -198022,8 +198372,8 @@ self: {
      }:
      mkDerivation {
        pname = "mealy";
-       version = "0.4.4";
-       sha256 = "1pji7gkfni3h5db1jlmgxkfwnih1954nd224lb45n0v7ihmjkpsi";
+       version = "0.4.4.1";
+       sha256 = "1chw7csrvw61s85v7f2ghz09rna2j5ma5pnv6wp6z2s25rxaw3x1";
        libraryHaskellDepends = [
          adjunctions base containers mwc-probability numhask numhask-array
          primitive profunctors tdigest text vector vector-algorithms
@@ -198303,6 +198653,7 @@ self: {
        ];
        description = "Convert MediaWiki text to LaTeX";
        license = "GPL";
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "mediawiki2latex";
      }) {};
 
@@ -198385,8 +198736,10 @@ self: {
      }:
      mkDerivation {
        pname = "megaparsec";
-       version = "9.3.1";
-       sha256 = "00dp79sssb2j9w0sbzphkqjn49xzrafd16gkqda5ngqhbjdniw73";
+       version = "9.5.0";
+       sha256 = "0lnsqdphr3fnxvn87z2ni110wzq60pq6fl407ihddpyavpb0hw38";
+       revision = "4";
+       editedCabalFile = "0f6g05w18kn34rcjkxfdsg4sibxsz41p2xac7wfc9wqpr0l9kg55";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers deepseq mtl
          parser-combinators scientific text transformers
@@ -198421,23 +198774,22 @@ self: {
 
   "megaparsec-tests" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, containers
-     , hspec, hspec-discover, hspec-expectations, hspec-megaparsec
-     , megaparsec, mtl, parser-combinators, QuickCheck, scientific
-     , temporary, text, transformers
+     , hspec, hspec-discover, hspec-megaparsec, megaparsec, mtl
+     , QuickCheck, scientific, temporary, text, transformers
      }:
      mkDerivation {
        pname = "megaparsec-tests";
-       version = "9.3.1";
-       sha256 = "01gd6xlqfazpbawzwgbk0ag86dq8nv5qdrhny9b7hrks3i3b558m";
+       version = "9.5.0";
+       sha256 = "18ishnklylaiphkz6dd9rfbxnqlrb4fqqd8pr5mk9qb5j0fkbv13";
+       revision = "2";
+       editedCabalFile = "1zh7ggvc1453b734mmc7yyd8f6qrr34bnvab0507l1nflml7w9bb";
        libraryHaskellDepends = [
-         base bytestring containers hspec hspec-expectations
-         hspec-megaparsec megaparsec mtl QuickCheck text transformers
+         base bytestring containers hspec hspec-megaparsec megaparsec mtl
+         QuickCheck text transformers
        ];
        testHaskellDepends = [
-         base bytestring case-insensitive containers hspec
-         hspec-expectations hspec-megaparsec megaparsec mtl
-         parser-combinators QuickCheck scientific temporary text
-         transformers
+         base bytestring case-insensitive containers hspec hspec-megaparsec
+         megaparsec mtl QuickCheck scientific temporary text transformers
        ];
        testToolDepends = [ hspec-discover ];
        description = "Test utilities and the test suite of Megaparsec";
@@ -198533,6 +198885,8 @@ self: {
        ];
        description = "An Elf parser";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "mellon-core" = callPackage
@@ -198634,6 +198988,32 @@ self: {
        broken = true;
      }) {};
 
+  "mem-info" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , fmt, genvalidity, genvalidity-hspec, genvalidity-text, hashable
+     , hspec, optparse-applicative, QuickCheck, text, unix, validity
+     , validity-text
+     }:
+     mkDerivation {
+       pname = "mem-info";
+       version = "0.2.0.0";
+       sha256 = "0hmsdv33v2wixw0cizjp7fycq5haa9fzybb0c6z11d3jql485ghh";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers directory filepath fmt hashable
+         optparse-applicative text unix validity validity-text
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base fmt genvalidity genvalidity-hspec genvalidity-text hashable
+         hspec optparse-applicative QuickCheck text unix
+       ];
+       description = "Print the core memory usage of programs";
+       license = lib.licenses.bsd3;
+       mainProgram = "printmem";
+     }) {};
+
   "membership" = callPackage
     ({ mkDerivation, base, constraints, deepseq, hashable
      , prettyprinter, template-haskell, th-lift
@@ -199339,6 +199719,7 @@ self: {
        ];
        description = "Temporary message-db for integration testing";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "messagepack" = callPackage
@@ -199685,6 +200066,8 @@ self: {
        ];
        description = "TLS transport for metro";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "metro-transport-websockets" = callPackage
@@ -200097,8 +200480,8 @@ self: {
      }:
      mkDerivation {
        pname = "microlens-platform";
-       version = "0.4.3.4";
-       sha256 = "01j7z0637wirp6y0a4zfzqaky0dmpn1c3y9vdq5hf5igycc1v6yh";
+       version = "0.4.3.5";
+       sha256 = "0ch7ln612j7inw6jrjxjccsyjd9fz4zwwjcw97313r4yfflhwff4";
        libraryHaskellDepends = [
          base hashable microlens microlens-ghc microlens-mtl microlens-th
          text unordered-containers vector
@@ -200107,6 +200490,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "microlens-pro" = callPackage
+    ({ mkDerivation, base, containers, microlens, microlens-contra
+     , microlens-platform, microlens-th, mtl, profunctors, tagged
+     , template-haskell, text, th-abstraction, unordered-containers
+     , vector
+     }:
+     mkDerivation {
+       pname = "microlens-pro";
+       version = "0.2.0";
+       sha256 = "03vadipi3qkyz6xyf2by8jqq453gvpisqhwvrhaykbwx6pxrzwnj";
+       libraryHaskellDepends = [
+         base containers microlens microlens-contra microlens-platform
+         microlens-th mtl profunctors tagged template-haskell text
+         th-abstraction unordered-containers vector
+       ];
+       description = "Prisms and isomorphisms for microlens";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "microlens-process" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, doctest, filepath
      , microlens, process
@@ -200453,7 +200857,6 @@ self: {
        ];
        description = "Build lightweight and composable servers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "mig-client" = callPackage
@@ -200470,7 +200873,6 @@ self: {
        ];
        description = "Build http-clients from API definition for mig servers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "mig-extra" = callPackage
@@ -200491,7 +200893,6 @@ self: {
        ];
        description = "Extra utils for Mig core library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "mig-server" = callPackage
@@ -200509,7 +200910,6 @@ self: {
        ];
        description = "Build lightweight and composable servers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "mig-swagger-ui" = callPackage
@@ -200527,7 +200927,6 @@ self: {
        ];
        description = "Swagger servers for mig library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "mig-wai" = callPackage
@@ -200543,7 +200942,6 @@ self: {
        ];
        description = "Render mig-servers as wai-applications";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "mighttpd" = callPackage
@@ -200577,8 +200975,8 @@ self: {
      }:
      mkDerivation {
        pname = "mighttpd2";
-       version = "4.0.3";
-       sha256 = "1qgr5giks32xmcnkq973cs20lzgjvjr6bgymffsb3c8sj873jhqs";
+       version = "4.0.4";
+       sha256 = "1qpg5h68mi2yhzp2vj4nka0nyafn9mhk2qdz5n8adp66k18cj6m2";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -200942,7 +201340,9 @@ self: {
        executableHaskellDepends = [ base directory mtl random ];
        description = "Minesweeper simulation using neural networks";
        license = "unknown";
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "mines";
+       broken = true;
      }) {};
 
   "minesweeper" = callPackage
@@ -201012,6 +201412,8 @@ self: {
        testHaskellDepends = [ base bytestring cryptohash-sha256 HUnit ];
        description = "Minimal bindings to libcurl";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) curl;};
 
   "miniforth" = callPackage
@@ -201186,6 +201588,7 @@ self: {
        ];
        description = "A MinIO Haskell Library for Amazon S3 compatible cloud storage";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "minions" = callPackage
@@ -201388,6 +201791,17 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "minmax" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "minmax";
+       version = "0.1.1.0";
+       sha256 = "0cl1gg7i94309rx0123826bfpk06x1c1diy6sfyx8b2zhvcpgq45";
+       libraryHaskellDepends = [ base ];
+       description = "Functions to find both minimum and maximum (or several of them simultaneously) in one pass";
+       license = lib.licenses.mit;
+     }) {};
+
   "minst-idx" = callPackage
     ({ mkDerivation, base, binary, bytestring, directory, hspec, vector
      }:
@@ -201987,8 +202401,8 @@ self: {
        pname = "mmark";
        version = "0.0.7.6";
        sha256 = "1zahgky724s0x89c9jp4fa6m0kzh461sc2lcpwaw61hqgamaay4c";
-       revision = "1";
-       editedCabalFile = "0jpin5hrh2wi5yqzzccww3rb94ylb3i7y0wm16q8knq4680fq8zx";
+       revision = "2";
+       editedCabalFile = "0jmnizdwnsmf67y7dh68anvi0sjik4nazs0mjvxv78r2ld3fghg8";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base case-insensitive containers deepseq dlist email-validate
@@ -202006,21 +202420,18 @@ self: {
      }) {};
 
   "mmark-cli" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, directory
-     , ghc-syntax-highlighter, gitrev, lucid, megaparsec, mmark
-     , mmark-ext, optparse-applicative, stache, text
+    ({ mkDerivation, aeson, base, bytestring, directory, gitrev, lucid
+     , megaparsec, mmark, mmark-ext, optparse-applicative, stache, text
      }:
      mkDerivation {
        pname = "mmark-cli";
-       version = "0.0.5.1";
-       sha256 = "1an1rc7gdl2209d3agxx1dfl61zsc2wg5nx9cwdf50spmlgs3cr0";
-       revision = "3";
-       editedCabalFile = "14l6ngccsxjx0kpkfhx7hzq44swb9dwlfpji1y9ap283v18rkrmb";
+       version = "0.0.5.2";
+       sha256 = "05i8wy3zls6fp1qmdz4ayydhgvq6jnhh2rj4r3frvp8nl70kkv26";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         aeson base bytestring directory ghc-syntax-highlighter gitrev lucid
-         megaparsec mmark mmark-ext optparse-applicative stache text
+         aeson base bytestring directory gitrev lucid megaparsec mmark
+         mmark-ext optparse-applicative stache text
        ];
        description = "Command line interface to the MMark markdown processor";
        license = lib.licenses.bsd3;
@@ -202036,8 +202447,8 @@ self: {
        pname = "mmark-ext";
        version = "0.2.1.5";
        sha256 = "1dy3xnzpbbnp03k3r04q8y10pcj2r708dk8bff0pxzkvypm75g88";
-       revision = "3";
-       editedCabalFile = "0yxl2wpxmvjnhn0qy8p1ajmi61hpkfqqfj206dl7q1xn9kmkg3fc";
+       revision = "4";
+       editedCabalFile = "0girl659kn2nxzcayjzx8pflws43vp3mfw03g3ril8i49r1wkxkn";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base foldl ghc-syntax-highlighter lucid microlens mmark modern-uri
@@ -202495,6 +202906,8 @@ self: {
        ];
        description = "Mock time in tests";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "mockazo" = callPackage
@@ -202895,8 +203308,8 @@ self: {
      }:
      mkDerivation {
        pname = "moffy-samples";
-       version = "0.1.0.2";
-       sha256 = "162c8crnj3946fa5d4cgfbqai5pxgai67q3kcl3nyf29knlmivi4";
+       version = "0.1.0.3";
+       sha256 = "0b1dbyblms7jbisk89niij85h995wlp01qkr499gp370i01bkdi8";
        libraryHaskellDepends = [
          aeson base bytestring extra-data-yj hashable JuicyPixels moffy
          moffy-samples-events text time transformers type-flip type-set
@@ -202913,27 +203326,70 @@ self: {
 
   "moffy-samples-events" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, deepseq
-     , http-conduit, JuicyPixels, moffy, monads-tf, process, random, stm
-     , text, time, type-flip, type-set, union-color
+     , http-conduit, JuicyPixels, moffy, mtl, process, random, stm, text
+     , time, type-flip, type-set, union-color
      }:
      mkDerivation {
        pname = "moffy-samples-events";
-       version = "0.2.2.4";
-       sha256 = "0bsfp0rjm6dqnbnp8q62r1qf1d2v8h03a2j09cvcrc97sw61gqa7";
+       version = "0.2.2.5";
+       sha256 = "1p433xkcn7v32q57514j3c0k0vxsdpapypww3834lyiymp13ldf5";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq http-conduit JuicyPixels
-         moffy monads-tf process random stm text time type-flip type-set
+         moffy mtl process random stm text time type-flip type-set
          union-color
        ];
        testHaskellDepends = [
          aeson base bytestring containers deepseq http-conduit JuicyPixels
-         moffy monads-tf process random stm text time type-flip type-set
+         moffy mtl process random stm text time type-flip type-set
          union-color
        ];
        description = "Events for sample codes of moffy";
        license = lib.licenses.bsd3;
      }) {};
 
+  "moffy-samples-gtk3" = callPackage
+    ({ mkDerivation, base, moffy-samples, moffy-samples-gtk3-run }:
+     mkDerivation {
+       pname = "moffy-samples-gtk3";
+       version = "0.1.0.0";
+       sha256 = "02rgwa2wa5xz6yp26v15fvjlq6wrccj3gnk74iwmv2nc22yg1803";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base moffy-samples moffy-samples-gtk3-run
+       ];
+       testHaskellDepends = [ base moffy-samples moffy-samples-gtk3-run ];
+       description = "Sample executables of moffy - GTK3 version";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "moffy_samples_gtk3";
+     }) {};
+
+  "moffy-samples-gtk3-run" = callPackage
+    ({ mkDerivation, base, c-enum, c-struct, containers, gtk3, moffy
+     , moffy-samples-events, random, simple-cairo, simple-pango, stm
+     , text, time, type-flip, type-set, union-color
+     }:
+     mkDerivation {
+       pname = "moffy-samples-gtk3-run";
+       version = "0.1.0.7";
+       sha256 = "0z9q9i65m91fqg5m4ik6pbisfbwlqf31prfcrj33g3mbdhjjb9ld";
+       libraryHaskellDepends = [
+         base c-enum c-struct containers moffy moffy-samples-events random
+         simple-cairo simple-pango stm text time type-flip type-set
+         union-color
+       ];
+       libraryPkgconfigDepends = [ gtk3 ];
+       testHaskellDepends = [
+         base c-enum c-struct containers moffy moffy-samples-events random
+         simple-cairo simple-pango stm text time type-flip type-set
+         union-color
+       ];
+       description = "Package to run moffy samples - GTK3 version";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) gtk3;};
+
   "moffy-samples-gtk4" = callPackage
     ({ mkDerivation, base, moffy, moffy-samples, moffy-samples-gtk4-run
      }:
@@ -202961,8 +203417,8 @@ self: {
      }:
      mkDerivation {
        pname = "moffy-samples-gtk4-run";
-       version = "0.2.1.2";
-       sha256 = "15vmkwc72w9ir7kqa0mhypa6x8y5mxi2lg1fylbcckv5i42kb7n1";
+       version = "0.2.1.3";
+       sha256 = "1y1f8rpjpv1dvygzq5cj16s6cw9fq6pxx3hpbnim84sl46pdcjak";
        libraryHaskellDepends = [
          base c-enum c-struct containers exception-hierarchy moffy
          moffy-samples-events random simple-cairo simple-pango stm text time
@@ -203165,8 +203621,10 @@ self: {
        ];
        description = "A library for probabilistic programming";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "example";
        maintainers = [ lib.maintainers.turion ];
+       broken = true;
      }) {};
 
   "monad-bool" = callPackage
@@ -203294,6 +203752,7 @@ self: {
        ];
        description = "Transformer for TCP connection with TLS and SOCKS support";
        license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "monad-control" = callPackage
@@ -203364,8 +203823,8 @@ self: {
      }:
      mkDerivation {
        pname = "monad-dijkstra";
-       version = "0.1.1.4";
-       sha256 = "1rj6gj8ipl7frk43ss1ki906fwp7qp2q1knjvk8d3n1ivgs5hmal";
+       version = "0.1.1.5";
+       sha256 = "0p3jys7ii0yks8xqpwsvc0fzmi180hgf488h6pmv95yg879v5csz";
        libraryHaskellDepends = [
          base containers free mtl psqueues transformers
        ];
@@ -203444,6 +203903,8 @@ self: {
        libraryHaskellDepends = [ base mtl transformers ];
        description = "A simple monad for generating fresh integers";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "monad-hash" = callPackage
@@ -203541,6 +204002,8 @@ self: {
        ];
        description = "Pure logger typeclass and monad transformer";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "monad-levels" = callPackage
@@ -204009,25 +204472,6 @@ self: {
      }:
      mkDerivation {
        pname = "monad-peel";
-       version = "0.2.1.2";
-       sha256 = "1x1kr5pk8ksw8xcm19c50jx8m0crf3m3qp73k31dnl9r1w4ykm9d";
-       libraryHaskellDepends = [
-         base extensible-exceptions transformers
-       ];
-       testHaskellDepends = [
-         base extensible-exceptions HUnit test-framework
-         test-framework-hunit transformers
-       ];
-       description = "Lift control operations like exception catching through monad transformers";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "monad-peel_0_3" = callPackage
-    ({ mkDerivation, base, extensible-exceptions, HUnit, test-framework
-     , test-framework-hunit, transformers
-     }:
-     mkDerivation {
-       pname = "monad-peel";
        version = "0.3";
        sha256 = "1vk0g2ppksy9g2qcw5vccvszsmz5xsn7ajvvm9v9bwd4h17pvvby";
        libraryHaskellDepends = [
@@ -204040,6 +204484,7 @@ self: {
        description = "Lift control operations like exception catching through monad transformers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "monad-persist" = callPackage
@@ -204074,6 +204519,8 @@ self: {
        libraryHaskellDepends = [ base primitive transformers ];
        description = "Type class for monad transformers stack with pirimitive base monad";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "monad-products" = callPackage
@@ -204085,6 +204532,8 @@ self: {
        libraryHaskellDepends = [ base semigroupoids ];
        description = "Monad products";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "monad-ran" = callPackage
@@ -204148,6 +204597,26 @@ self: {
        maintainers = [ lib.maintainers.turion ];
      }) {};
 
+  "monad-schedule_0_1_2_2" = callPackage
+    ({ mkDerivation, base, free, HUnit, QuickCheck, stm, test-framework
+     , test-framework-hunit, test-framework-quickcheck2, time-domain
+     , transformers
+     }:
+     mkDerivation {
+       pname = "monad-schedule";
+       version = "0.1.2.2";
+       sha256 = "0nblwa9244lnxi1chy5hzhwwnj57hci391b3yfz20abq0ckdxdpm";
+       libraryHaskellDepends = [ base free stm time-domain transformers ];
+       testHaskellDepends = [
+         base free HUnit QuickCheck stm test-framework test-framework-hunit
+         test-framework-quickcheck2 time-domain transformers
+       ];
+       description = "A new, simple, composable concurrency abstraction";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.turion ];
+     }) {};
+
   "monad-skeleton" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -204182,6 +204651,8 @@ self: {
        pname = "monad-state";
        version = "0.2.0.3";
        sha256 = "1dh1dw7n39rb85wk4zq0hw2g9x81zyha033awv81l6xl8pjdxqxv";
+       revision = "1";
+       editedCabalFile = "0jhr5s9yvqc6fd0rda9nh7b5yv6wwjwkqmfc2wja5j19nwk65hhd";
        libraryHaskellDepends = [
          AbortT-transformers base fclabels monads-tf transformers
        ];
@@ -204270,6 +204741,8 @@ self: {
        libraryHaskellDepends = [ base mtl transformers ];
        description = "Stateful supply monad";
        license = "unknown";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "monad-task" = callPackage
@@ -204563,6 +205036,8 @@ self: {
        ];
        description = "Boxed and unboxed arrays for monad transformers";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "monadic-bang" = callPackage
@@ -204579,6 +205054,7 @@ self: {
        testHaskellDepends = [ base ghc ghc-boot ghc-paths transformers ];
        description = "GHC plugin to desugar ! into do-notation";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "monadic-recursion-schemes" = callPackage
@@ -204645,6 +205121,8 @@ self: {
        libraryHaskellDepends = [ base monads-tf transformers ];
        description = "Reversibly allow monad transformer stacks to run in IO";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "monadlist" = callPackage
@@ -204667,6 +205145,8 @@ self: {
        libraryHaskellDepends = [ base template-haskell transformers ];
        description = "A class for monads which can keep a monadic call trace";
        license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "monadloc-pp" = callPackage
@@ -204725,21 +205205,6 @@ self: {
 
   "monadology" = callPackage
     ({ mkDerivation, base, constraints, invariant, tasty, tasty-hunit
-     , transformers, type-rig, witness
-     }:
-     mkDerivation {
-       pname = "monadology";
-       version = "0.1";
-       sha256 = "0pr9ia4jns545sk5x85pdwgbw1qd648nh9avb5q7jql7dwa21928";
-       libraryHaskellDepends = [
-         base constraints invariant transformers type-rig witness
-       ];
-       testHaskellDepends = [ base tasty tasty-hunit transformers ];
-       license = lib.licenses.bsd2;
-     }) {};
-
-  "monadology_0_3" = callPackage
-    ({ mkDerivation, base, constraints, invariant, tasty, tasty-hunit
      , text, transformers, type-rig, witness
      }:
      mkDerivation {
@@ -204752,7 +205217,6 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit text transformers ];
        description = "The best ideas in monad-related classes and types";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "monadplus" = callPackage
@@ -204777,29 +205241,19 @@ self: {
        libraryHaskellDepends = [ base mtl transformers ];
        description = "Monad classes, using functional dependencies";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "monads-tf" = callPackage
     ({ mkDerivation, base, transformers }:
      mkDerivation {
        pname = "monads-tf";
-       version = "0.1.0.3";
-       sha256 = "1wdhskwa6dw8qljbvwpyxj8ca6y95q2np7z4y4q6bpf4anmd5794";
-       libraryHaskellDepends = [ base transformers ];
-       description = "Monad classes, using type families";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "monads-tf_0_3_0_1" = callPackage
-    ({ mkDerivation, base, transformers }:
-     mkDerivation {
-       pname = "monads-tf";
        version = "0.3.0.1";
        sha256 = "00jzz9lqpz3s5xwvmc5xi300jkkjv9bk62k0jgwnqfv6py9x5g11";
        libraryHaskellDepends = [ base transformers ];
        description = "Monad classes, using type families";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "monadtransform" = callPackage
@@ -204811,6 +205265,8 @@ self: {
        libraryHaskellDepends = [ base transformers ];
        description = "A type-class for transforming monads (homomorphism) in a transformer";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "monarch" = callPackage
@@ -204917,6 +205373,40 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "mongoDB_2_7_1_3" = callPackage
+    ({ mkDerivation, array, base, base16-bytestring, base64-bytestring
+     , binary, bson, bytestring, conduit, conduit-extra, containers
+     , criterion, cryptohash, data-default-class, dns, fail, hashtables
+     , hspec, http-types, lifted-base, monad-control, mtl, network
+     , nonce, old-locale, parsec, pureMD5, random, random-shuffle
+     , resourcet, stm, tagged, text, time, tls, transformers
+     , transformers-base
+     }:
+     mkDerivation {
+       pname = "mongoDB";
+       version = "2.7.1.3";
+       sha256 = "194qjhkhks3pqic9ycx7qyzkqlpvyxlhsixwkvnagakivyzrglv3";
+       libraryHaskellDepends = [
+         array base base16-bytestring base64-bytestring binary bson
+         bytestring conduit conduit-extra containers cryptohash
+         data-default-class dns fail hashtables http-types lifted-base
+         monad-control mtl network nonce parsec pureMD5 random
+         random-shuffle resourcet stm tagged text time tls transformers
+         transformers-base
+       ];
+       testHaskellDepends = [ base hspec mtl old-locale text time ];
+       benchmarkHaskellDepends = [
+         array base base16-bytestring base64-bytestring binary bson
+         bytestring conduit conduit-extra containers criterion cryptohash
+         data-default-class dns fail hashtables http-types lifted-base
+         monad-control mtl network nonce parsec random random-shuffle stm
+         text tls transformers transformers-base
+       ];
+       description = "Driver (client) for MongoDB, a free, scalable, fast, document DBMS";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "mongodb-queue" = callPackage
     ({ mkDerivation, base, data-default, hspec, lifted-base
      , monad-control, mongoDB, network, text, transformers
@@ -205134,6 +205624,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "monoid-insertleft" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "monoid-insertleft";
+       version = "0.1.0.1";
+       sha256 = "10ilkc43lys65qsb8qnvniq1mivqf2lsgx8whwpzkd7pa91x09ci";
+       libraryHaskellDepends = [ base ];
+       description = "Some extension to the Foldable and Monoid classes";
+       license = lib.licenses.mit;
+     }) {};
+
   "monoid-map" = callPackage
     ({ mkDerivation, base, commutative-semigroups, monoidal-containers
      , patch, reflex, witherable
@@ -205286,8 +205787,8 @@ self: {
      }:
      mkDerivation {
        pname = "monoidmap";
-       version = "0.0.0.1";
-       sha256 = "0qq1q8xk0bf32lx4hnsh45kkj2fkjfskc2krggmcrbnapnxmcb56";
+       version = "0.0.1.1";
+       sha256 = "0dp0gc0jqfr8rzlvg0zgyk21xizwhx0mr5r29xkkxc9n5mxsl0l7";
        libraryHaskellDepends = [
          base containers deepseq groups monoid-subclasses
          nonempty-containers nothunks
@@ -205349,8 +205850,8 @@ self: {
      }:
      mkDerivation {
        pname = "monomer";
-       version = "1.6.0.0";
-       sha256 = "15cpybwdsh3yq9xhcrk0fpa0dcc805p9q6kn6qcz86khkvmp5qpc";
+       version = "1.6.0.1";
+       sha256 = "0iqbcjd8dxpc3k9v4rryfvjj2pbv540qlzfqqydvfis91cjk4yj5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -205382,20 +205883,21 @@ self: {
 
   "monomer-flatpak-example" = callPackage
     ({ mkDerivation, async, base, bytestring, c2hs, containers
-     , data-default-class, dbus, desktop-portal, directory, libpipewire
-     , libspa, modern-uri, monomer, monomer-hagrid, random, text
+     , data-default-class, dbus, desktop-portal, directory, file-io
+     , filepath, libpipewire, libspa, modern-uri, monomer
+     , monomer-hagrid, random, text
      }:
      mkDerivation {
        pname = "monomer-flatpak-example";
-       version = "0.0.14.0";
-       sha256 = "1cxj7gw732hnm7lmz5d3pwdh03gswdycjsg5c145xsgc7s09vy0c";
+       version = "0.0.15.2";
+       sha256 = "0b1f96n4n9ajpslhh885v7gyx780n99qljdz62dlvqjlb88kn4h2";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
        executableHaskellDepends = [
          async base bytestring containers data-default-class dbus
-         desktop-portal directory modern-uri monomer monomer-hagrid random
-         text
+         desktop-portal directory file-io filepath modern-uri monomer
+         monomer-hagrid random text
        ];
        executablePkgconfigDepends = [ libpipewire libspa ];
        executableToolDepends = [ c2hs ];
@@ -205427,6 +205929,8 @@ self: {
        description = "A datagrid widget for the Monomer library";
        license = lib.licenses.mit;
        badPlatforms = lib.platforms.darwin;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "monomorphic" = callPackage
@@ -205953,6 +206457,7 @@ self: {
        ];
        description = "Morpheus GraphQL";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "morpheus-graphql-app" = callPackage
@@ -206064,7 +206569,9 @@ self: {
        ];
        description = "Morpheus GraphQL CLI";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "morpheus";
+       broken = true;
      }) {};
 
   "morpheus-graphql-code-gen-utils" = callPackage
@@ -206362,6 +206869,7 @@ self: {
        ];
        description = "General purpose migrations library";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "moto-postgresql" = callPackage
@@ -206378,6 +206886,7 @@ self: {
        ];
        description = "PostgreSQL-based migrations registry for moto";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "motor" = callPackage
@@ -206399,6 +206908,7 @@ self: {
        testHaskellDepends = [ base indexed indexed-extras row-types ];
        description = "Type-safe effectful state machines in Haskell";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "example-door";
      }) {};
 
@@ -207160,6 +207670,7 @@ self: {
        ];
        description = "TDS Protocol implemented in Haskell";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "msgpack" = callPackage
@@ -207443,23 +207954,13 @@ self: {
        ];
        description = "SQL Server client library implemented in Haskell";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "mstate" = callPackage
     ({ mkDerivation, base, fail, monad-peel, mtl, stm }:
      mkDerivation {
        pname = "mstate";
-       version = "0.2.8";
-       sha256 = "13jv04skkb0ysxx9gswynp7fg7yz3nwy5zhzp209fbwr9izxcm05";
-       libraryHaskellDepends = [ base fail monad-peel mtl stm ];
-       description = "MState: A consistent State monad for concurrent applications";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "mstate_0_2_10" = callPackage
-    ({ mkDerivation, base, fail, monad-peel, mtl, stm }:
-     mkDerivation {
-       pname = "mstate";
        version = "0.2.10";
        sha256 = "1lx50m7hhlpq3i1aha1pixb9xf3rbvdz2pg4hgmz93kkvz0fdpkf";
        libraryHaskellDepends = [ base fail monad-peel mtl stm ];
@@ -207626,6 +208127,8 @@ self: {
        ];
        description = "MTL classes without the functional dependency";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "mtl-uplift" = callPackage
@@ -207638,6 +208141,8 @@ self: {
        testHaskellDepends = [ base mtl ];
        description = "Lift substacks of monad transformer stacks";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "mtlparse" = callPackage
@@ -207687,6 +208192,8 @@ self: {
        libraryHaskellDepends = [ base bifunctors ];
        description = "Tree with Meta and Content parameters";
        license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "mtsl" = callPackage
@@ -208209,13 +208716,14 @@ self: {
      }) {};
 
   "multi-except" = callPackage
-    ({ mkDerivation, base, dlist-nonempty, hspec, semigroupoids }:
+    ({ mkDerivation, base, hspec, semigroupoids }:
      mkDerivation {
        pname = "multi-except";
-       version = "0.3.0.0";
-       sha256 = "1zk8cihmv5dimdhld0h0h622zsvn71rdbhslj4b8dh3dv4qdfji0";
-       libraryHaskellDepends = [ base dlist-nonempty semigroupoids ];
+       version = "2.0.0";
+       sha256 = "1c4wivfilss7ll09djlchk6wrn6y9z7470hfm7yqyl66pfgz204k";
+       libraryHaskellDepends = [ base semigroupoids ];
        testHaskellDepends = [ base hspec semigroupoids ];
+       doHaddock = false;
        description = "Multiple Exceptions";
        license = lib.licenses.mit;
      }) {};
@@ -208323,6 +208831,8 @@ self: {
        testHaskellDepends = [ base doctest sop-core ];
        description = "Uncurry functions with multiple arguments";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "multifile" = callPackage
@@ -208575,6 +209085,8 @@ self: {
        libraryHaskellDepends = [ base transformers ];
        description = "Lightweight generic library for mutually recursive data types";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "multiplate-simplified" = callPackage
@@ -209552,6 +210064,8 @@ self: {
        libraryHaskellDepends = [ base safe-exceptions ];
        description = "A trivial lock based on MVar";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "mvc" = callPackage
@@ -209694,6 +210208,7 @@ self: {
        ];
        description = "Monadic interface for mwc-random";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "mx-state-codes" = callPackage
@@ -209988,6 +210503,7 @@ self: {
        description = "Sessions and continuations for Snap web apps";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "mysnapsession-example" = callPackage
@@ -210362,6 +210878,7 @@ self: {
        executableHaskellDepends = [ base HSH mtl process ];
        description = "Utility to call iwconfig";
        license = "unknown";
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "n-m";
      }) {};
 
@@ -210617,6 +211134,8 @@ self: {
        ];
        description = "A simple formlet library with named formlets";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "named-lock" = callPackage
@@ -210721,6 +211240,7 @@ self: {
        ];
        description = "A parameterized named text type and associated functionality";
        license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "namelist" = callPackage
@@ -210926,22 +211446,23 @@ self: {
      }) {};
 
   "nanopass" = callPackage
-    ({ mkDerivation, base, containers, mtl, pretty-simple
-     , template-haskell, transformers
+    ({ mkDerivation, base, containers, megaparsec, mtl, pretty-simple
+     , sexpr-parser, template-haskell, text, transformers
      }:
      mkDerivation {
        pname = "nanopass";
-       version = "0.0.2.0";
-       sha256 = "0pymmshr81pckiixqyxz985lx402d0srhcnz31vv27pyn9xvi6xf";
+       version = "0.0.3.0";
+       sha256 = "18fj3gwqvs2vyqgp6sv4h0hbp7jrwr7ik7kvgv9przbjk24caqsc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers mtl template-haskell transformers
+         base containers megaparsec mtl pretty-simple sexpr-parser
+         template-haskell text transformers
        ];
        executableHaskellDepends = [
          base pretty-simple template-haskell transformers
        ];
-       description = "An EDSL for creating compilers using small passes and many intermediate representations";
+       description = "Create compilers using small passes and many intermediate representations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "dumb-nanopass-example";
@@ -210960,6 +211481,18 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "nanotime" = callPackage
+    ({ mkDerivation, base, tasty, tasty-hunit, time }:
+     mkDerivation {
+       pname = "nanotime";
+       version = "0.3.1";
+       sha256 = "1r262mb020dxl9cwcnkikc3apc4556p2l02p90bz2rvgkv3sxpvr";
+       libraryHaskellDepends = [ base time ];
+       testHaskellDepends = [ base tasty tasty-hunit time ];
+       description = "a tiny time library";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "nanovg" = callPackage
     ({ mkDerivation, base, bytestring, c2hs, containers, freetype, glew
      , hspec, inline-c, libGL, libGLU, libX11, QuickCheck, text, vector
@@ -210968,8 +211501,8 @@ self: {
        pname = "nanovg";
        version = "0.8.1.0";
        sha256 = "1yzabd2l8z77dsgby97dzv0h38a6w554kmhp6hsfx3j24n0h0rnv";
-       revision = "1";
-       editedCabalFile = "1hczgvm5y5i8sw9yflsjmh9lzamqy6f6r5lmp06siai003ff1jxz";
+       revision = "2";
+       editedCabalFile = "02j2k8fnadp8fqkzji9xglrnahni5zkdix9l9ycf4qljsqj65q7j";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring containers text vector ];
@@ -211099,6 +211632,8 @@ self: {
        testHaskellDepends = [ base hspec optics-core text ];
        description = "Refinement types for natural numbers with an optics interface";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "nat-sized-numbers" = callPackage
@@ -211266,6 +211801,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "natural-arithmetic_0_2_1_0" = callPackage
+    ({ mkDerivation, base, unlifted }:
+     mkDerivation {
+       pname = "natural-arithmetic";
+       version = "0.2.1.0";
+       sha256 = "17kd0216k0rqfisdd7rad3cv3qg0jyvd146k3gg1pv9y8waf5rin";
+       libraryHaskellDepends = [ base unlifted ];
+       description = "Arithmetic of natural numbers";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "natural-induction" = callPackage
     ({ mkDerivation, base, peano }:
      mkDerivation {
@@ -211384,6 +211931,8 @@ self: {
        pname = "nbt";
        version = "0.7";
        sha256 = "10iby4sg50la1k635ygdqf5h50rvidl0k871brdjs8b9hi1vlv5r";
+       revision = "1";
+       editedCabalFile = "1llm3jzvff19jn7xvmcx28902fscd01bqzyfscma5mr720grgzr1";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ array base bytestring cereal text ];
        testHaskellDepends = [
@@ -211934,39 +212483,6 @@ self: {
 
   "net-mqtt" = callPackage
     ({ mkDerivation, async, attoparsec, attoparsec-binary, base, binary
-     , bytestring, checkers, conduit, conduit-extra, connection
-     , containers, deepseq, HUnit, network-conduit-tls, network-uri
-     , optparse-applicative, QuickCheck, stm, tasty, tasty-hunit
-     , tasty-quickcheck, text, websockets
-     }:
-     mkDerivation {
-       pname = "net-mqtt";
-       version = "0.8.3.0";
-       sha256 = "02y2bsxr23vkg8xp0aa4mz1dpy37zsgyqkl6yd80ldm7h4vmj8fl";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         async attoparsec attoparsec-binary base binary bytestring conduit
-         conduit-extra connection containers deepseq network-conduit-tls
-         network-uri QuickCheck stm text websockets
-       ];
-       executableHaskellDepends = [
-         async attoparsec attoparsec-binary base binary bytestring conduit
-         conduit-extra connection containers deepseq network-conduit-tls
-         network-uri optparse-applicative QuickCheck stm text websockets
-       ];
-       testHaskellDepends = [
-         async attoparsec attoparsec-binary base binary bytestring checkers
-         conduit conduit-extra connection containers deepseq HUnit
-         network-conduit-tls network-uri QuickCheck stm tasty tasty-hunit
-         tasty-quickcheck text websockets
-       ];
-       description = "An MQTT Protocol Implementation";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "net-mqtt_0_8_6_0" = callPackage
-    ({ mkDerivation, async, attoparsec, attoparsec-binary, base, binary
      , bytestring, checkers, conduit, conduit-extra, containers
      , crypton-connection, deepseq, HUnit, lens, monad-loops, mtl
      , network-conduit-tls, network-uri, optparse-applicative
@@ -212000,7 +212516,6 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "An MQTT Protocol Implementation";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "net-mqtt-lens" = callPackage
@@ -212479,6 +212994,30 @@ self: {
        license = lib.licenses.mit;
      }) {inherit (pkgs) nettle;};
 
+  "nettle_0_3_1_1" = callPackage
+    ({ mkDerivation, array, base, byteable, bytestring
+     , crypto-cipher-tests, crypto-cipher-types, HUnit, nettle
+     , QuickCheck, securemem, tagged, test-framework
+     , test-framework-hunit, test-framework-quickcheck2
+     }:
+     mkDerivation {
+       pname = "nettle";
+       version = "0.3.1.1";
+       sha256 = "0hnbba0wc68yfqznmswmr9radl5hara61m67vr6wdl3s4ln5aj6m";
+       libraryHaskellDepends = [
+         base byteable bytestring crypto-cipher-types securemem tagged
+       ];
+       libraryPkgconfigDepends = [ nettle ];
+       testHaskellDepends = [
+         array base bytestring crypto-cipher-tests crypto-cipher-types HUnit
+         QuickCheck tagged test-framework test-framework-hunit
+         test-framework-quickcheck2
+       ];
+       description = "safe nettle binding";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) nettle;};
+
   "nettle-frp" = callPackage
     ({ mkDerivation, base, bimap, binary, bytestring, containers, mtl
      , nettle-openflow, network, network-data, random, time
@@ -212562,8 +213101,8 @@ self: {
      }:
      mkDerivation {
        pname = "netwire-input-glfw";
-       version = "0.0.11";
-       sha256 = "1sizk0c8mbm6ad984gaf933h1bg4dgwi9k8hzrm9wp5rwbqjvcz8";
+       version = "0.0.12";
+       sha256 = "0ydg38w8n3k5hwqv1j1qw3lad0n034rmijpqgk09d2anhyr2pi0v";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -212909,26 +213448,6 @@ self: {
 
   "network-conduit-tls" = callPackage
     ({ mkDerivation, base, bytestring, conduit, conduit-extra
-     , connection, data-default-class, HUnit, mtl, network
-     , streaming-commons, tls, transformers, unliftio-core
-     }:
-     mkDerivation {
-       pname = "network-conduit-tls";
-       version = "1.3.2";
-       sha256 = "0zxdsf7isv3l2g58vsvi8iwlrgf85v7ksa8636kr6ffycbhn1zgc";
-       libraryHaskellDepends = [
-         base bytestring conduit conduit-extra connection data-default-class
-         network streaming-commons tls transformers unliftio-core
-       ];
-       testHaskellDepends = [
-         base bytestring conduit conduit-extra connection HUnit mtl
-       ];
-       description = "Create TLS-aware network code with conduits";
-       license = lib.licenses.mit;
-     }) {};
-
-  "network-conduit-tls_1_4_0" = callPackage
-    ({ mkDerivation, base, bytestring, conduit, conduit-extra
      , crypton-connection, data-default-class, HUnit, mtl, network
      , streaming-commons, tls, transformers, unliftio-core
      }:
@@ -212946,7 +213465,6 @@ self: {
        ];
        description = "Create TLS-aware network code with conduits";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "network-connection" = callPackage
@@ -213328,19 +213846,20 @@ self: {
 
   "network-protocol-xmpp" = callPackage
     ({ mkDerivation, base, bytestring, gnuidn, gnutls, gsasl
-     , libxml-sax, monads-tf, network, network-simple, text
-     , transformers, xml-types
+     , libxml-sax, network, network-simple, text, transformers
+     , xml-types
      }:
      mkDerivation {
        pname = "network-protocol-xmpp";
-       version = "0.4.10";
-       sha256 = "03xlw8337lzwp7f5jvbvgirf546pfmfsfjvnik08qjjy1rfn5jji";
+       version = "0.5.1";
+       sha256 = "1fd8rq235lbpkdlashsqk01ymxbbh6q1hng706h5lw0v49wpvd7i";
        libraryHaskellDepends = [
-         base bytestring gnuidn gnutls gsasl libxml-sax monads-tf network
+         base bytestring gnuidn gnutls gsasl libxml-sax network
          network-simple text transformers xml-types
        ];
        description = "Client library for the XMPP protocol";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "network-rpca" = callPackage
@@ -213440,24 +213959,6 @@ self: {
      }) {};
 
   "network-simple-tls" = callPackage
-    ({ mkDerivation, base, bytestring, data-default, network
-     , network-simple, safe-exceptions, tls, tls-session-manager
-     , transformers, x509, x509-store, x509-system, x509-validation
-     }:
-     mkDerivation {
-       pname = "network-simple-tls";
-       version = "0.4.1";
-       sha256 = "10nidmq2qb4s4bw90vm1p90rlv1g4p0xy6rbh4davmz7c26cyyg5";
-       libraryHaskellDepends = [
-         base bytestring data-default network network-simple safe-exceptions
-         tls tls-session-manager transformers x509 x509-store x509-system
-         x509-validation
-       ];
-       description = "Simple interface to TLS secured network sockets";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "network-simple-tls_0_4_2" = callPackage
     ({ mkDerivation, base, bytestring, crypton-x509, crypton-x509-store
      , crypton-x509-system, crypton-x509-validation, data-default
      , network, network-simple, safe-exceptions, tls
@@ -213474,7 +213975,6 @@ self: {
        ];
        description = "Simple interface to TLS secured network sockets";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "network-simple-ws" = callPackage
@@ -213634,6 +214134,7 @@ self: {
        ];
        description = "In-memory instantiation of Network.Transport";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "network-transport-tcp" = callPackage
@@ -213669,6 +214170,8 @@ self: {
        ];
        description = "Unit tests for Network.Transport implementations";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "network-transport-zeromq" = callPackage
@@ -213730,8 +214233,8 @@ self: {
      }:
      mkDerivation {
        pname = "network-unexceptional";
-       version = "0.2.0.0";
-       sha256 = "042mav0nrvffm31xd0skx5fjq8qd1608ar76wq4vg03az6xdy97d";
+       version = "0.2.1.1";
+       sha256 = "02bnxdnx15m5nhvxgfpyv7zxfjki2zbg0igmcsqrc2c49dbva228";
        libraryHaskellDepends = [
          base byteslice bytestring error-codes network posix-api primitive
          primitive-addr stm
@@ -214401,8 +214904,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export";
-       version = "1.7.8";
-       sha256 = "16a7dq92ibqi2y8dna9dyw43n52av2khp2k5jcc70bis2h90i0b2";
+       version = "1.7.9";
+       sha256 = "0xjbpnsdqxc9fgmsqqv03vgr28q584hjl0w78v1fw7g48cww7j4h";
        libraryHaskellDepends = [
          async base binary bytestring deepseq monad-loops template-haskell
          unix
@@ -214428,7 +214931,6 @@ self: {
        ];
        description = "Build custom libraries for Nginx haskell module";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "nhm-tool";
      }) {};
 
@@ -214501,8 +215003,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export-tools-extra";
-       version = "1.2.6";
-       sha256 = "174xzifz0qmbq81gcaqnrwc14xk5jx38nygs9p2ansjsf9i4g50r";
+       version = "1.2.7";
+       sha256 = "0qspk9j5kcahsdima9c2428pvgm98lydx8slzc1fpyhmr8b1jcqw";
        libraryHaskellDepends = [
          aeson array async base base64 binary bytestring case-insensitive
          containers ede enclosed-exceptions http-client
@@ -214511,7 +215013,7 @@ self: {
          resolv safe safe-exceptions snap-core snap-server template-haskell
          text time trifecta unordered-containers
        ];
-       description = "More extra tools for Nginx haskell module";
+       description = "More extra tools for Nginx Haskell module";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
      }) {};
@@ -215011,21 +215513,20 @@ self: {
      , cli-git, cli-nix, containers, cryptonite, data-default, directory
      , either, exceptions, extra, filepath, github, here, lens
      , logging-effect, megaparsec, memory, modern-uri, monad-logger, mtl
-     , optparse-applicative, process, template-haskell, temporary, text
-     , time, unix, which, yaml
+     , optparse-applicative, temporary, text, time, unix, which, yaml
      }:
      mkDerivation {
        pname = "nix-thunk";
-       version = "0.5.0.0";
-       sha256 = "06pn43ckxh0792if41q7prdg8705gcvplrf1f02i5ix3hddwq2l1";
+       version = "0.7.0.0";
+       sha256 = "03qh3691242n0yza6mk66d2l3gmhipfh1pk04qb4fzm9mhb472ps";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-pretty base bytestring cli-extras cli-git cli-nix
          containers cryptonite data-default directory either exceptions
          extra filepath github here lens logging-effect megaparsec memory
-         modern-uri monad-logger mtl optparse-applicative process
-         template-haskell temporary text time unix which yaml
+         modern-uri monad-logger mtl optparse-applicative temporary text
+         time unix which yaml
        ];
        executableHaskellDepends = [
          base cli-extras optparse-applicative text
@@ -215070,23 +215571,23 @@ self: {
 
   "nix-tree" = callPackage
     ({ mkDerivation, aeson, async, base, brick, bytestring, clock
-     , containers, directory, filepath, hedgehog, hrfsize, microlens
-     , optparse-applicative, relude, terminal-progress-bar, text
-     , typed-process, unordered-containers, vty
+     , containers, directory, dot, filepath, hedgehog, hrfsize
+     , microlens, optparse-applicative, relude, terminal-progress-bar
+     , text, typed-process, unordered-containers, vty
      }:
      mkDerivation {
        pname = "nix-tree";
-       version = "0.3.2";
-       sha256 = "0sm582mvkca6xhz1svggjqnp3ks3i1zmgaakiwnimfsbpysywar1";
+       version = "0.4.0";
+       sha256 = "01dfrny4y51gilysj3k46fi1zpxjal2ygr7d5zf6bvc4rw0awk6d";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         aeson async base brick bytestring clock containers directory
+         aeson async base brick bytestring clock containers directory dot
          filepath hrfsize microlens optparse-applicative relude
          terminal-progress-bar text typed-process unordered-containers vty
        ];
        testHaskellDepends = [
-         aeson base brick bytestring clock containers directory filepath
+         aeson base brick bytestring clock containers directory dot filepath
          hedgehog hrfsize microlens optparse-applicative relude text
          typed-process unordered-containers vty
        ];
@@ -215946,6 +216447,8 @@ self: {
        libraryHaskellDepends = [ base containers semigroupoids ];
        description = "A NonEmptyMap Implementation";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "nonfree" = callPackage
@@ -216128,6 +216631,7 @@ self: {
        ];
        description = "Painless 3D graphics, no affiliation with gloss";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "not-gloss-examples" = callPackage
@@ -216145,6 +216649,7 @@ self: {
        ];
        description = "examples for not-gloss";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "not-in-base" = callPackage
@@ -216208,6 +216713,27 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
+  "nothunks_0_2_1_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, ghc-heap, ghc-prim
+     , hedgehog, random, stm, tasty, tasty-hedgehog, text, time, vector
+     , wherefrom-compat
+     }:
+     mkDerivation {
+       pname = "nothunks";
+       version = "0.2.1.0";
+       sha256 = "05ahmwij4y7bpy4h9j2ygqiiyjwlva33kk09iak840mnq4a3jni8";
+       libraryHaskellDepends = [
+         base bytestring containers ghc-heap stm text time vector
+         wherefrom-compat
+       ];
+       testHaskellDepends = [
+         base containers ghc-prim hedgehog random stm tasty tasty-hedgehog
+       ];
+       description = "Examine values for unexpected thunks";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "notifications-tray-icon" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, containers, dbus
      , gi-dbusmenu, gi-gio, gi-glib, github, haskeline, hslogger
@@ -216391,8 +216917,8 @@ self: {
        pname = "np-extras";
        version = "0.3.1.3";
        sha256 = "000i8lakkqg9yknqdbyasspmlc8zzpj15dqr8l9kqn5lkfhz1n59";
-       revision = "1";
-       editedCabalFile = "0l32qlwpfs2m4w7bid1z7a92wn91x44irm3pss63dz9ph2laa6mh";
+       revision = "2";
+       editedCabalFile = "1lvh4ls7s3pwcw289lgq5iaw0wlvpx30hgmwmm6m9xkszdjzb1vq";
        libraryHaskellDepends = [ base containers numeric-prelude primes ];
        description = "NumericPrelude extras";
        license = lib.licenses.bsd3;
@@ -216659,6 +217185,26 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "nspace" = callPackage
+    ({ mkDerivation, base, checkers, containers, hashable, hspec
+     , hspec-discover, linear, monoidal-containers, QuickCheck
+     }:
+     mkDerivation {
+       pname = "nspace";
+       version = "0.2.0.0";
+       sha256 = "139pkqh8s6b78s0mvr75fzlvncpa062ml2x7fqlv59v9s7nhsdcr";
+       libraryHaskellDepends = [
+         base containers hashable linear monoidal-containers
+       ];
+       testHaskellDepends = [
+         base checkers containers hashable hspec linear monoidal-containers
+         QuickCheck
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Efficient, infinite-precision 2D and 3D spatial containers";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "nth-prime" = callPackage
     ({ mkDerivation, base, opentheory-prime, opentheory-primitive }:
      mkDerivation {
@@ -216697,7 +217243,9 @@ self: {
        testHaskellDepends = [ base containers hspec pretty ];
        description = "A tiny statically typed functional programming language";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "ntha";
+       broken = true;
      }) {};
 
   "nthable" = callPackage
@@ -216979,7 +217527,6 @@ self: {
        ];
        description = "Convert numbers to number words";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "numeric-domains" = callPackage
@@ -217046,6 +217593,8 @@ self: {
        ];
        description = "Integral and rational log2 algorithms";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "numeric-ode" = callPackage
@@ -217141,6 +217690,8 @@ self: {
        ];
        description = "Wrapper of numeric-optimization package for using with backprop package";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "numeric-prelude" = callPackage
@@ -217152,8 +217703,8 @@ self: {
        pname = "numeric-prelude";
        version = "0.4.4";
        sha256 = "04x6ry2sxr5hsiz4098dn2gqyjqywiq2xk0anf6wc4xrvasgccjs";
-       revision = "1";
-       editedCabalFile = "0w5an2w06vpi75qj9972qbsiz4n72mr6mkib4ivlrrirndsyda79";
+       revision = "2";
+       editedCabalFile = "0cfhgpll0fg6d3m27f9fkhrv1l6v0dbbp9srkmg981kdh02pkjx2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -217277,20 +217828,19 @@ self: {
     ({ mkDerivation, base, QuickCheck }:
      mkDerivation {
        pname = "numhask";
-       version = "0.10.1.1";
-       sha256 = "1ar1qd75kxswwj8vkdxnixakw9hcj38jpxjjknfa9k27457aky2b";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base QuickCheck ];
+       version = "0.11.1.0";
+       sha256 = "1fnav552f99hbc83vsxvjccak06pqil8kyg8fhbgsllmsbhbzpqq";
+       libraryHaskellDepends = [ base QuickCheck ];
        description = "A numeric class hierarchy";
        license = lib.licenses.bsd3;
      }) {};
 
-  "numhask_0_11_1_0" = callPackage
+  "numhask_0_12_0_2" = callPackage
     ({ mkDerivation, base, QuickCheck }:
      mkDerivation {
        pname = "numhask";
-       version = "0.11.1.0";
-       sha256 = "1fnav552f99hbc83vsxvjccak06pqil8kyg8fhbgsllmsbhbzpqq";
+       version = "0.12.0.2";
+       sha256 = "0qrqhfmrdq5gbvad649vfv65lvr9q4051d5zyibq5ljr242yl04s";
        libraryHaskellDepends = [ base QuickCheck ];
        description = "A numeric class hierarchy";
        license = lib.licenses.bsd3;
@@ -217298,22 +217848,6 @@ self: {
      }) {};
 
   "numhask-array" = callPackage
-    ({ mkDerivation, adjunctions, base, distributive, numhask
-     , QuickCheck, vector
-     }:
-     mkDerivation {
-       pname = "numhask-array";
-       version = "0.10.2";
-       sha256 = "09g8kfv5p82g50qag2n9hswf3wc8xjdbg6b8pgw32ywxa4yjgxd3";
-       libraryHaskellDepends = [
-         adjunctions base distributive numhask vector
-       ];
-       testHaskellDepends = [ base QuickCheck ];
-       description = "Multi-dimensional arrays";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "numhask-array_0_11_0_1" = callPackage
     ({ mkDerivation, adjunctions, base, distributive, numhask, vector
      }:
      mkDerivation {
@@ -217325,7 +217859,6 @@ self: {
        ];
        description = "Multi-dimensional arrays";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "numhask-free" = callPackage
@@ -217550,6 +218083,8 @@ self: {
        pname = "nvfetcher";
        version = "0.6.2.0";
        sha256 = "0lgbnam9gb9sdgmbxc5iznzbyv13s27j7s74fnrp09xdij0fgq3q";
+       revision = "1";
+       editedCabalFile = "0rhp4m54s2cmkhzkbphm0xdmvhymzlj3h1dd7iphqf32ba7jljgr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -217592,6 +218127,8 @@ self: {
        pname = "nvim-hs";
        version = "2.3.2.3";
        sha256 = "03s0fsws7f8mld6kpmymagrmajfnxzi9isgdzik4kdrx8fzygin8";
+       revision = "1";
+       editedCabalFile = "132mw5hg846sg381g08vlxhw9xqqxh3508ykzn5b5sh9m3igf6j6";
        libraryHaskellDepends = [
          base bytestring cereal cereal-conduit conduit containers
          data-default deepseq foreign-store hslogger megaparsec messagepack
@@ -217818,10 +218355,10 @@ self: {
      }:
      mkDerivation {
        pname = "o-clock";
-       version = "1.3.0";
-       sha256 = "1swayrdhz10b67m6ipa75qz9ycz6r7xbk9fdq3ajlhp9bry31l7i";
+       version = "1.4.0";
+       sha256 = "1qmv0hq1z3x5h3mxpdd3prf9yhk7688hdm09zf8l36iq2602vj5g";
        revision = "1";
-       editedCabalFile = "1fis58d0r7yvznmgijc2878gjv0261apb748d5pcphmgk9i5kzf3";
+       editedCabalFile = "0jflzz1a78vji38x2dc4drj8w95sxxkmz73sa06a2xg7a4z64mb3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base ];
@@ -217836,36 +218373,24 @@ self: {
        mainProgram = "play-o-clock";
      }) {};
 
-  "o-clock_1_4_0" = callPackage
-    ({ mkDerivation, base, doctest, Glob, hedgehog, hspec-expectations
-     , markdown-unlit, tasty, tasty-hedgehog, tasty-hunit-compat
-     , type-spec
-     }:
+  "oalg-abg" = callPackage
+    ({ mkDerivation, base, oalg-base }:
      mkDerivation {
-       pname = "o-clock";
-       version = "1.4.0";
-       sha256 = "1qmv0hq1z3x5h3mxpdd3prf9yhk7688hdm09zf8l36iq2602vj5g";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base ];
-       executableHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base doctest Glob hedgehog hspec-expectations markdown-unlit tasty
-         tasty-hedgehog tasty-hunit-compat type-spec
-       ];
-       testToolDepends = [ doctest markdown-unlit ];
-       description = "Type-safe time library";
-       license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
-       mainProgram = "play-o-clock";
+       pname = "oalg-abg";
+       version = "1.0.0.0";
+       sha256 = "14qi1ypsrnngpc1j5vqn6l5nccc23k95h9cn9s9fpcmqcy8czlf0";
+       libraryHaskellDepends = [ base oalg-base ];
+       testHaskellDepends = [ base oalg-base ];
+       description = "Finitely generated abelian groups";
+       license = lib.licenses.bsd3;
      }) {};
 
   "oalg-base" = callPackage
     ({ mkDerivation, array, base, deepseq, random, time }:
      mkDerivation {
        pname = "oalg-base";
-       version = "1.1.0.0";
-       sha256 = "1zsfbdyz3m9alg1cvsiz64gqivbldgkwg60b6lkl6b7axx6ys4j9";
+       version = "1.1.4.0";
+       sha256 = "0i76n1pvak51bnkrq6m4nirzpnmqqclr6wk00vmws3c90w3dm6xm";
        libraryHaskellDepends = [ array base deepseq random time ];
        testHaskellDepends = [ array base deepseq random time ];
        description = "Algebraic structures on oriented entities and limits as a tool kit to solve algebraic problems";
@@ -218564,8 +219089,8 @@ self: {
      }:
      mkDerivation {
        pname = "ogma-cli";
-       version = "1.1.0";
-       sha256 = "0kxkfc5gqkz485r6qnpd51ms1v9sr9yih8ml7608x99bvjjkd5bv";
+       version = "1.2.0";
+       sha256 = "14qipd24zq37xq7y88ap5gr0iwwjc1ksj21lk108hqa7p5f56b3n";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base ogma-core optparse-applicative ];
@@ -218579,21 +219104,22 @@ self: {
      }) {};
 
   "ogma-core" = callPackage
-    ({ mkDerivation, aeson, base, filepath, HUnit, IfElse, mtl
-     , ogma-extra, ogma-language-c, ogma-language-cocospec
-     , ogma-language-copilot, ogma-language-fret-cs
-     , ogma-language-fret-reqs, ogma-language-smv, QuickCheck
+    ({ mkDerivation, aeson, base, bytestring, filepath, HUnit, IfElse
+     , mtl, ogma-extra, ogma-language-c, ogma-language-cocospec
+     , ogma-language-copilot, ogma-language-fret-reqs
+     , ogma-language-jsonspec, ogma-language-smv, ogma-spec, QuickCheck
      , test-framework, test-framework-hunit, test-framework-quickcheck2
      }:
      mkDerivation {
        pname = "ogma-core";
-       version = "1.1.0";
-       sha256 = "0q8f59cv6mjc6dx89klzklr0iyhk608n1m68da4zn0sm35vlsswn";
+       version = "1.2.0";
+       sha256 = "06x651mhq8i14zi7a3ldp6nly51rmfl68a1dv3smndy0xdqn04va";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base filepath IfElse mtl ogma-extra ogma-language-c
-         ogma-language-cocospec ogma-language-copilot ogma-language-fret-cs
-         ogma-language-fret-reqs ogma-language-smv
+         aeson base bytestring filepath IfElse mtl ogma-extra
+         ogma-language-c ogma-language-cocospec ogma-language-copilot
+         ogma-language-fret-reqs ogma-language-jsonspec ogma-language-smv
+         ogma-spec
        ];
        testHaskellDepends = [
          base HUnit QuickCheck test-framework test-framework-hunit
@@ -218610,8 +219136,8 @@ self: {
      }:
      mkDerivation {
        pname = "ogma-extra";
-       version = "1.1.0";
-       sha256 = "1asrk0222jwf92phdw1jlcc8cjmmx9vm59p3fxrih4fm9lif8iz1";
+       version = "1.2.0";
+       sha256 = "0khvchp1l16zaaqm7x4n0hvf21d9jih9aqyjf4q9q86mixx0lzkn";
        libraryHaskellDepends = [
          base bytestring Cabal directory filepath
        ];
@@ -218628,8 +219154,8 @@ self: {
      }:
      mkDerivation {
        pname = "ogma-language-c";
-       version = "1.1.0";
-       sha256 = "1sr6hkidj585l3myzy6sisafw13hq5j9yxfwqy3sjq14g566ch2k";
+       version = "1.2.0";
+       sha256 = "0vifm7xfr5yidr15ghfr281qkbh54ww0bjja2bx3y6xn9b2z8y3y";
        setupHaskellDepends = [ base BNFC Cabal process ];
        libraryHaskellDepends = [ array base ];
        testHaskellDepends = [
@@ -218647,8 +219173,8 @@ self: {
      }:
      mkDerivation {
        pname = "ogma-language-cocospec";
-       version = "1.1.0";
-       sha256 = "0bw8ygnpacgyyaysxw9pyw4ddpvp6h095k7chhvylvp5p70kkkbf";
+       version = "1.2.0";
+       sha256 = "11zdyc4r80mvpyg60cas9cwn7qabicxbg8d8wjpdn15yxcf9p48i";
        setupHaskellDepends = [ base BNFC Cabal process ];
        libraryHaskellDepends = [ array base ];
        testHaskellDepends = [
@@ -218664,8 +219190,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "ogma-language-copilot";
-       version = "1.1.0";
-       sha256 = "0rgll490zkkblanh9zgalq9zsj1rc8w72fzh1r2bfrjljbiq5ncv";
+       version = "1.2.0";
+       sha256 = "0svaf7my8av3vdj16kdw6wc058fygkbvl92fril5riyq5pvm57bs";
        libraryHaskellDepends = [ base ];
        description = "Ogma: Runtime Monitor translator: Copilot Language Endpoints";
        license = "unknown";
@@ -218699,8 +219225,8 @@ self: {
      }:
      mkDerivation {
        pname = "ogma-language-fret-reqs";
-       version = "1.1.0";
-       sha256 = "073lrr650250d8r02dv0l3yvbjrhdjy9gv5gbf42va40snrf43j6";
+       version = "1.2.0";
+       sha256 = "0xz2arb70m9vz6pkw21g0973zl0q70drv24fp5xbzl3xpxn0ymwy";
        libraryHaskellDepends = [
          aeson base ogma-language-cocospec ogma-language-smv text
        ];
@@ -218713,14 +219239,29 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "ogma-language-jsonspec" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, jsonpath, megaparsec
+     , ogma-spec, text
+     }:
+     mkDerivation {
+       pname = "ogma-language-jsonspec";
+       version = "1.2.0";
+       sha256 = "0zqgqvx70faz0bsk7qx5cxfrigsyvffklr9f47gfv82xxbsv61w1";
+       libraryHaskellDepends = [
+         aeson base bytestring jsonpath megaparsec ogma-spec text
+       ];
+       description = "Ogma: Runtime Monitor translator: JSON Frontend";
+       license = "unknown";
+     }) {};
+
   "ogma-language-smv" = callPackage
     ({ mkDerivation, array, base, BNFC, Cabal, process, QuickCheck
      , test-framework, test-framework-quickcheck2
      }:
      mkDerivation {
        pname = "ogma-language-smv";
-       version = "1.1.0";
-       sha256 = "1lcgh27vxp8ncvma380z7i03dd4j029b583jviq1hg3bywc8690l";
+       version = "1.2.0";
+       sha256 = "19lrb9xvz1vqdzijpsqp0b66psqd0appa1mq8vhvc0yddmpz7ib5";
        setupHaskellDepends = [ base BNFC Cabal process ];
        libraryHaskellDepends = [ array base ];
        testHaskellDepends = [
@@ -218732,6 +219273,17 @@ self: {
        broken = true;
      }) {};
 
+  "ogma-spec" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "ogma-spec";
+       version = "1.2.0";
+       sha256 = "1d1fk0r8df0hg7v4v046czlrwb1wjzwjyqffac7axzhxajl9igci";
+       libraryHaskellDepends = [ base ];
+       description = "Ogma: Runtime Monitor translator: JSON Frontend";
+       license = "unknown";
+     }) {};
+
   "ogmarkup" = callPackage
     ({ mkDerivation, base, hspec, hspec-megaparsec, megaparsec, mtl
      , shakespeare, text
@@ -218795,23 +219347,23 @@ self: {
      }) {};
 
   "oidc-client" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring, cryptonite
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, crypton
      , exceptions, hspec, http-client, http-client-tls, http-types
      , jose-jwt, network, network-uri, scientific, text, time, tls
      }:
      mkDerivation {
        pname = "oidc-client";
-       version = "0.7.0.1";
-       sha256 = "161dcwnnis9ddxr76fl107dfif1jw6gpbd1ckhh4rclq63vh9inb";
+       version = "0.8.0.0";
+       sha256 = "0fmffnf6gg99d15nn84ih36lr7qasa1zfkb62sgb0icik8dwv83m";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson attoparsec base bytestring cryptonite exceptions http-client
+         aeson attoparsec base bytestring crypton exceptions http-client
          http-client-tls jose-jwt network network-uri scientific text time
          tls
        ];
        testHaskellDepends = [
-         aeson base bytestring cryptonite exceptions hspec http-client
+         aeson base bytestring crypton exceptions hspec http-client
          http-client-tls http-types jose-jwt network-uri scientific text
          time
        ];
@@ -218941,8 +219493,8 @@ self: {
      }:
      mkDerivation {
        pname = "om-doh";
-       version = "0.1.0.1";
-       sha256 = "1y9r70ppifww4ddk3rwvgwhfijn5hf9svlx4x46v1n027yjf9pgp";
+       version = "0.1.0.2";
+       sha256 = "036vqn7p7ha9dibsmsn0f0hiwr8570zdrnij98377ysn21xl5gzz";
        libraryHaskellDepends = [
          base base64 bytestring http-api-data resolv servant servant-server
          text
@@ -218972,6 +219524,25 @@ self: {
        broken = true;
      }) {};
 
+  "om-elm_2_0_0_6" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, directory
+     , http-types, safe, safe-exceptions, template-haskell, text, unix
+     , wai
+     }:
+     mkDerivation {
+       pname = "om-elm";
+       version = "2.0.0.6";
+       sha256 = "1gjrnrl3gvjg85ldgih7zi4sv53vrfl28jymn4z70xnpna7lvph9";
+       libraryHaskellDepends = [
+         base bytestring Cabal containers directory http-types safe
+         safe-exceptions template-haskell text unix wai
+       ];
+       description = "Haskell utilities for building embedded Elm programs";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "om-fail" = callPackage
     ({ mkDerivation, base, monad-logger, safe-exceptions, transformers
      }:
@@ -218989,18 +219560,20 @@ self: {
      }) {};
 
   "om-fork" = callPackage
-    ({ mkDerivation, aeson, base, exceptions, ki, monad-logger, om-show
-     , text, unliftio
+    ({ mkDerivation, aeson, base, exceptions, ki-unlifted, monad-logger
+     , om-show, text, unliftio
      }:
      mkDerivation {
        pname = "om-fork";
-       version = "0.7.1.9";
-       sha256 = "1892aq7yi36mimmk7lp0y25484vpi2z9lfvrkvi5gbdp1xb96n84";
+       version = "0.7.1.10";
+       sha256 = "1p9sf45mcswz7z6a1m3axyk7kn0yb7dblxv90r7m8b1lbk67mgws";
        libraryHaskellDepends = [
-         aeson base exceptions ki monad-logger om-show text unliftio
+         aeson base exceptions ki-unlifted monad-logger om-show text
+         unliftio
        ];
        testHaskellDepends = [
-         aeson base exceptions ki monad-logger om-show text unliftio
+         aeson base exceptions ki-unlifted monad-logger om-show text
+         unliftio
        ];
        description = "Concurrency utilities";
        license = lib.licenses.mit;
@@ -219014,8 +219587,8 @@ self: {
      }:
      mkDerivation {
        pname = "om-http";
-       version = "0.3.0.5";
-       sha256 = "1wqgv1zs8s08rh9w6g7swbd6q25vnykpig960xv8qdv66p5ngk15";
+       version = "0.3.0.7";
+       sha256 = "0lmca3l4pbhkrxfqwhvw4x6ds6bxml70agi73f5q509iwi3997ni";
        libraryHaskellDepends = [
          async base bytestring directory filepath http-types mime-types
          monad-logger network om-show safe-exceptions servant
@@ -219052,8 +219625,8 @@ self: {
      }:
      mkDerivation {
        pname = "om-kubernetes";
-       version = "2.3.1.6";
-       sha256 = "1q7kbhw8vqm7qjlqr26grvc7pwvkip3fv1pmx50s6km1wapsbwqq";
+       version = "2.3.1.8";
+       sha256 = "1ygx36dyhwwv92jmxcyvisccm5vqbl0paqilzdbsq063izfqliin";
        libraryHaskellDepends = [
          aeson base bytestring connection data-default-class http-client
          http-client-tls http-types om-http safe-exceptions servant
@@ -219075,8 +219648,8 @@ self: {
      }:
      mkDerivation {
        pname = "om-legion";
-       version = "6.9.0.3";
-       sha256 = "0l3ck17bxhsp8vcf1yskqlxq1y0k9djn7j9axy55k09gwvc9j8hb";
+       version = "6.9.0.4";
+       sha256 = "1jalb99j59v5d33zbl8jfgic4m1g82kmbbzx87gcyz4jclzmf2q6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -219104,8 +219677,8 @@ self: {
      }:
      mkDerivation {
        pname = "om-logging";
-       version = "1.1.0.6";
-       sha256 = "1iml4g4zbdws2jq93r09q005iz4cbnk7zdqif0cbj4gpa0iqbdm7";
+       version = "1.1.0.8";
+       sha256 = "1v6qdp0k6jccsbmcx127bj0y3aw0rwjwgzbw8022ny5x2yhw7wgf";
        libraryHaskellDepends = [
          aeson base bytestring fast-logger monad-logger om-show split text
          time
@@ -219120,8 +219693,10 @@ self: {
     ({ mkDerivation, base, containers, ghc, safe }:
      mkDerivation {
        pname = "om-plugin-imports";
-       version = "0.1.0.5";
-       sha256 = "1dz9iwiyn6x2w1f6y3y2f7l30ajg6nr2s65dphrlrd7cnf4fvpdz";
+       version = "0.2.0.0";
+       sha256 = "0slklr71ydis12mdjrs8p8s2aff2xgr6xjf78ddw4zj5fisg4s92";
+       revision = "1";
+       editedCabalFile = "0rvllrq6bm08kpn641b4fh33y3ybbhpii96z5y23jykzw1xjlsbv";
        libraryHaskellDepends = [ base containers ghc safe ];
        description = "Plugin-based import warnings";
        license = lib.licenses.mit;
@@ -219141,24 +219716,24 @@ self: {
      }) {};
 
   "om-socket" = callPackage
-    ({ mkDerivation, aeson, base, binary, binary-conduit, bytestring
-     , conduit, conduit-extra, containers, exceptions, megaparsec
-     , monad-logger, network, om-show, stm, text, time, tls
-     , transformers
+    ({ mkDerivation, aeson, base, binary, bytestring, containers
+     , exceptions, hspec, megaparsec, monad-logger, network, om-fork
+     , om-show, stm, streaming, streaming-binary, streaming-bytestring
+     , text, tls, unliftio-core
      }:
      mkDerivation {
        pname = "om-socket";
-       version = "0.11.0.3";
-       sha256 = "1fd1wq1j5win2vbi4pqmxb5vy7ilq0ryqwvca976lrc1lz1r3x42";
+       version = "1.0.0.0";
+       sha256 = "0z83k8qmcbp6ph8wd51vk04q3vf5fmf0z7q4jn91nwrf196g6h3q";
        libraryHaskellDepends = [
-         aeson base binary binary-conduit bytestring conduit conduit-extra
-         containers exceptions megaparsec monad-logger network om-show stm
-         text time tls
+         aeson base binary bytestring containers exceptions megaparsec
+         monad-logger network om-fork om-show stm streaming streaming-binary
+         streaming-bytestring text tls unliftio-core
        ];
        testHaskellDepends = [
-         aeson base binary binary-conduit bytestring conduit conduit-extra
-         containers exceptions megaparsec monad-logger network om-show stm
-         text time tls transformers
+         aeson base binary bytestring containers exceptions hspec megaparsec
+         monad-logger network om-fork om-show stm streaming streaming-binary
+         streaming-bytestring text tls unliftio-core
        ];
        description = "Socket utilities";
        license = lib.licenses.mit;
@@ -219170,8 +219745,8 @@ self: {
     ({ mkDerivation, aeson, base, binary, clock, time, transformers }:
      mkDerivation {
        pname = "om-time";
-       version = "0.3.0.3";
-       sha256 = "1fwifq0jsvmj339wmldah9cpb8yvn92f9d7illzi39zq1mvzw9ab";
+       version = "0.3.0.4";
+       sha256 = "14afibgh8r0zakgx4inlmnmllyz0x51fm70q7rd73x1q03w9icd1";
        libraryHaskellDepends = [
          aeson base binary clock time transformers
        ];
@@ -219374,6 +219949,8 @@ self: {
        testHaskellDepends = [ aeson base text ];
        description = "Pretty-printing short Aeson values as text";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "one-liner" = callPackage
@@ -219563,6 +220140,8 @@ self: {
        testToolDepends = [ doctest-discover hspec-discover ];
        description = "Combinators for handling errors of many types in a composable way";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "oops-examples" = callPackage
@@ -219576,6 +220155,7 @@ self: {
        ];
        description = "Oops examples";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "op" = callPackage
@@ -219602,10 +220182,8 @@ self: {
      }:
      mkDerivation {
        pname = "opaleye";
-       version = "0.9.7.0";
-       sha256 = "1njmns4myrjyfbmd4qrkrwqp6jyaridxkf4n0n8bgw3z5hr64jhv";
-       revision = "1";
-       editedCabalFile = "10yd5y3g4v1zmj52vflw6gbaqnmsfydb32sni5mbh7mwnp5d8z0k";
+       version = "0.10.2.0";
+       sha256 = "0an98lspk77zxg4phvll5zjxviq3q4iwc75p9k7aqqa1hvm4wrdj";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive
          contravariant postgresql-simple pretty product-profunctors
@@ -219623,7 +220201,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "opaleye_0_10_2_0" = callPackage
+  "opaleye_0_10_2_1" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, bytestring
      , case-insensitive, containers, contravariant, dotenv, hspec
      , hspec-discover, multiset, postgresql-simple, pretty
@@ -219633,8 +220211,8 @@ self: {
      }:
      mkDerivation {
        pname = "opaleye";
-       version = "0.10.2.0";
-       sha256 = "0an98lspk77zxg4phvll5zjxviq3q4iwc75p9k7aqqa1hvm4wrdj";
+       version = "0.10.2.1";
+       sha256 = "0n6z93a9j5qcr39m1y4fdff3mfnc7bxcx74xw7cnb228b23a6gx1";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive
          contravariant postgresql-simple pretty product-profunctors
@@ -220063,9 +220641,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "OpenAPI 3.0 data model";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "example";
-       broken = true;
      }) {};
 
   "openapi3-code-generator" = callPackage
@@ -220117,8 +220693,8 @@ self: {
      }:
      mkDerivation {
        pname = "opencascade-hs";
-       version = "0.1.1.1";
-       sha256 = "0wfvxnyagci3gl09vrlw2lkjk6vniwc7y2zmbyl0wim03wqkc34b";
+       version = "0.1.2.2";
+       sha256 = "0bi5azb9hpx6xfzj9r4a21majxzsiadgz6j9cbmc04wnp86p7yng";
        libraryHaskellDepends = [ base resourcet ];
        librarySystemDepends = [
          TKBO TKBRep TKernel TKFillet TKG2d TKG3d TKGeomBase TKMath TKMesh
@@ -220207,6 +220783,7 @@ self: {
        description = "Haskell binding to OpenCV-3.x";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) opencv3;};
 
   "opencv-extra" = callPackage
@@ -221170,6 +221747,8 @@ self: {
        pname = "operational";
        version = "0.2.4.2";
        sha256 = "1dx6vpmg21fskxyz12ba26hffk25b2qk9sznqfczgaamn6rahzc5";
+       revision = "1";
+       editedCabalFile = "0hdqwjm1jp6f8n8qglg9ylz07sbhrc7cm4kvcglymi2s4i9mdsai";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base mtl transformers ];
@@ -221202,6 +221781,8 @@ self: {
        libraryHaskellDepends = [ base operational transformers ];
        description = "MonadProgram typeclass for the operational package";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "operational-extra" = callPackage
@@ -221223,18 +221804,18 @@ self: {
 
   "oplang" = callPackage
     ({ mkDerivation, base, containers, directory, filepath, megaparsec
-     , mtl, optparse-applicative, process, text, text-builder-linear
-     , transformers
+     , monad-chronicle, mtl, optparse-applicative, process, text
+     , text-builder-linear
      }:
      mkDerivation {
        pname = "oplang";
-       version = "0.4.0.0";
-       sha256 = "1b0gd1rnbz6c12sw0dg7hgikwyxy7vjf8ml31yph88ax1rfai25y";
+       version = "0.4.0.1";
+       sha256 = "091ddmgcmddij837x9waff5lf05ik72nwfld79g68ysysbb94q89";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base containers directory filepath megaparsec mtl
-         optparse-applicative process text text-builder-linear transformers
+         base containers directory filepath megaparsec monad-chronicle mtl
+         optparse-applicative process text text-builder-linear
        ];
        description = "Stack-based esoteric programming language";
        license = lib.licenses.gpl3Only;
@@ -221562,22 +222143,6 @@ self: {
      }) {};
 
   "options" = callPackage
-    ({ mkDerivation, base, chell, chell-quickcheck, containers
-     , monads-tf, transformers
-     }:
-     mkDerivation {
-       pname = "options";
-       version = "1.2.1.1";
-       sha256 = "0qjs0v1ny52w51n5582d4z8wy9h6n0zw1xb5dh686ff5wadflgi8";
-       libraryHaskellDepends = [ base containers monads-tf transformers ];
-       testHaskellDepends = [
-         base chell chell-quickcheck containers monads-tf transformers
-       ];
-       description = "A powerful and easy-to-use command-line option parser";
-       license = lib.licenses.mit;
-     }) {};
-
-  "options_1_2_1_2" = callPackage
     ({ mkDerivation, base, containers, hspec, monads-tf, patience }:
      mkDerivation {
        pname = "options";
@@ -221588,7 +222153,6 @@ self: {
        doHaddock = false;
        description = "Powerful and easy command-line option parser";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "options-time" = callPackage
@@ -221625,24 +222189,6 @@ self: {
      }) {};
 
   "optparse-applicative" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, base, process, QuickCheck
-     , transformers, transformers-compat
-     }:
-     mkDerivation {
-       pname = "optparse-applicative";
-       version = "0.17.1.0";
-       sha256 = "1vx5w03vvfr3hdk79lvl34x8bxj5xbx0xh53mmnmxi9r05scnyfi";
-       revision = "1";
-       editedCabalFile = "1mhyjlmb1hylmhv77w6gq663drpyiqd09w1x1vy4d63lr46mypyb";
-       libraryHaskellDepends = [
-         ansi-wl-pprint base process transformers transformers-compat
-       ];
-       testHaskellDepends = [ base QuickCheck ];
-       description = "Utilities and combinators for parsing command line options";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "optparse-applicative_0_18_1_0" = callPackage
     ({ mkDerivation, base, prettyprinter, prettyprinter-ansi-terminal
      , process, QuickCheck, text, transformers, transformers-compat
      }:
@@ -221657,7 +222203,6 @@ self: {
        testHaskellDepends = [ base QuickCheck ];
        description = "Utilities and combinators for parsing command line options";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "optparse-applicative-cmdline-util" = callPackage
@@ -221673,6 +222218,8 @@ self: {
        ];
        description = "Utility functions for working with optparse-applicative";
        license = lib.licenses.agpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "optparse-applicative-simple" = callPackage
@@ -221702,6 +222249,8 @@ self: {
        libraryHaskellDepends = [ base exceptions mtl ];
        description = "Declarative command line option parser";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "optparse-enum" = callPackage
@@ -221720,27 +222269,6 @@ self: {
      }) {};
 
   "optparse-generic" = callPackage
-    ({ mkDerivation, base, bytestring, Only, optparse-applicative
-     , system-filepath, text, time, transformers, transformers-compat
-     , void
-     }:
-     mkDerivation {
-       pname = "optparse-generic";
-       version = "1.4.9";
-       sha256 = "1kxrhh4h2jd2i9fi1lr3sx6wij71n1y50crl0r0j6b3c8hj3c05j";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base bytestring Only optparse-applicative system-filepath text time
-         transformers transformers-compat void
-       ];
-       executableHaskellDepends = [ base ];
-       description = "Auto-generate a command-line parser for your datatype";
-       license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.Gabriella439 ];
-     }) {};
-
-  "optparse-generic_1_5_2" = callPackage
     ({ mkDerivation, base, bytestring, filepath, Only
      , optparse-applicative, text, time, transformers
      , transformers-compat, void
@@ -221749,6 +222277,8 @@ self: {
        pname = "optparse-generic";
        version = "1.5.2";
        sha256 = "0dca5q57jv4b8l1af4ywimaiw9rfrysambcghfmll4il5prm3d67";
+       revision = "1";
+       editedCabalFile = "190nlp7dh878232ia2nsl75q6bzr62szl1vcyinz528lmdbnbpdc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -221758,7 +222288,6 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Auto-generate a command-line parser for your datatype";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.Gabriella439 ];
      }) {};
 
@@ -221888,6 +222417,7 @@ self: {
        ];
        description = "Types and functions for Kepler orbits";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
@@ -222119,20 +222649,26 @@ self: {
   "ordinal" = callPackage
     ({ mkDerivation, base, containers, data-default-class, deepseq
      , hspec, hspec-discover, QuickCheck, regex, template-haskell, text
-     , time, vector
+     , time, unordered-containers, vector
      }:
      mkDerivation {
        pname = "ordinal";
-       version = "0.5.0.0";
-       sha256 = "016ydmanbxpj8jngqv19wf2v8c12s51lf3x3ddyb1706fh7nqcrw";
+       version = "0.6.0.0";
+       sha256 = "0vm0anr8pg8smwr6qpsfx1d4ih7ivb1zn2ahvvcvsq4cdrmya742";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          base containers data-default-class deepseq QuickCheck regex
          template-haskell text time vector
        ];
+       executableHaskellDepends = [
+         base data-default-class text unordered-containers
+       ];
        testHaskellDepends = [ base hspec QuickCheck text time ];
        testToolDepends = [ hspec-discover ];
        description = "Convert numbers to words in different languages";
        license = lib.licenses.bsd3;
+       mainProgram = "ordinal";
      }) {};
 
   "ordrea" = callPackage
@@ -222434,40 +222970,6 @@ self: {
 
   "ormolu" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, binary, bytestring
-     , Cabal-syntax, containers, Diff, directory, dlist, file-embed
-     , filepath, ghc-lib-parser, hspec, hspec-discover, hspec-megaparsec
-     , megaparsec, MemoTrie, mtl, optparse-applicative, path, path-io
-     , QuickCheck, syb, temporary, text, th-env
-     }:
-     mkDerivation {
-       pname = "ormolu";
-       version = "0.5.3.0";
-       sha256 = "13x0iasi2mrwv6mnhg2clkaa0znm6i058vssyxri9mdi147sb3pk";
-       revision = "2";
-       editedCabalFile = "0p9q9za35ky5wqnnppr5d2bw2ql7b09yfy460i2fsjk5hyafdvkx";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         ansi-terminal array base binary bytestring Cabal-syntax containers
-         Diff directory dlist file-embed filepath ghc-lib-parser megaparsec
-         MemoTrie mtl syb text
-       ];
-       executableHaskellDepends = [
-         base containers directory filepath ghc-lib-parser
-         optparse-applicative text th-env
-       ];
-       testHaskellDepends = [
-         base Cabal-syntax containers directory filepath ghc-lib-parser
-         hspec hspec-megaparsec path path-io QuickCheck temporary text
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "A formatter for Haskell source code";
-       license = lib.licenses.bsd3;
-       mainProgram = "ormolu";
-     }) {};
-
-  "ormolu_0_7_2_0" = callPackage
-    ({ mkDerivation, ansi-terminal, array, base, binary, bytestring
      , Cabal-syntax, containers, deepseq, Diff, directory, file-embed
      , filepath, ghc-lib-parser, hspec, hspec-discover, hspec-megaparsec
      , megaparsec, MemoTrie, mtl, optparse-applicative, path, path-io
@@ -222496,7 +222998,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "ormolu";
      }) {};
 
@@ -222563,6 +223064,8 @@ self: {
        libraryHaskellDepends = [ base hmatrix orthotope ];
        description = "Some algorithms from hmatrix";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "orville-postgresql" = callPackage
@@ -222874,8 +223377,8 @@ self: {
      }:
      mkDerivation {
        pname = "otp-authenticator";
-       version = "0.1.1.0";
-       sha256 = "0hmyq7ris01gnkydxi9i2p5v2c5cps4mg4zmxbzlyjrkyn7d5la4";
+       version = "0.1.2.1";
+       sha256 = "11spyh5iqg7kwkfzwly6sxixr7q7f6pk1cdhxl2cbwazwp75s11c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -223102,6 +223605,7 @@ self: {
        ];
        description = "“Vertical†parsing of values";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "pa-json" = callPackage
@@ -223121,6 +223625,7 @@ self: {
        ];
        description = "Our JSON parsers/encoders";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "pa-label" = callPackage
@@ -223246,8 +223751,8 @@ self: {
        pname = "package-version";
        version = "0.3";
        sha256 = "01d0345qs5c02gmh3ccsl0xbmiqwcbdpzlqgx2pwj6iv9vvjrf5l";
-       revision = "2";
-       editedCabalFile = "0gx7di73yl8a83ba1fmqgkcqwdjvm27y6i0vffb9893b7248495h";
+       revision = "3";
+       editedCabalFile = "1cdrarcrf4rdzjvilr0nwwbavwmkv0kc3wq0qhca55710j4kxk5d";
        libraryHaskellDepends = [
          base bytestring deepseq prettyprinter safe-exceptions
          template-haskell text
@@ -223258,8 +223763,6 @@ self: {
        ];
        description = "A package for retrieving a package's version number";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "package-vt" = callPackage
@@ -223293,6 +223796,20 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "packcheck_0_7_0" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "packcheck";
+       version = "0.7.0";
+       sha256 = "19wi0jbnfblkbvprszjr0n8f945n60117nvb1lhhrm9vh4dw86v6";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       benchmarkHaskellDepends = [ base ];
+       description = "Universal build and CI testing for Haskell packages";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "packdeps" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, directory
      , filepath, optparse-applicative, process, semigroups, split, tar
@@ -223819,6 +224336,8 @@ self: {
        pname = "palette";
        version = "0.3.0.3";
        sha256 = "11d3011j680nhd0r2b29fhirld2vijwynwbgv8i5v1q7lgrb92az";
+       revision = "1";
+       editedCabalFile = "01fjw8i5m7d4zml2rd7nwpdlnxwasdfxglm3shgpk004gfk7lw1i";
        libraryHaskellDepends = [
          array base colour containers MonadRandom
        ];
@@ -223898,61 +224417,6 @@ self: {
 
   "pandoc" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, array, attoparsec, base
-     , base64, binary, blaze-html, blaze-markup, bytestring
-     , case-insensitive, citeproc, commonmark, commonmark-extensions
-     , commonmark-pandoc, connection, containers, data-default, deepseq
-     , Diff, directory, doclayout, doctemplates, emojis, exceptions
-     , file-embed, filepath, Glob, gridtables, haddock-library
-     , http-client, http-client-tls, http-types, ipynb, jira-wiki-markup
-     , JuicyPixels, mime-types, mtl, network, network-uri, pandoc-types
-     , parsec, pretty, pretty-show, process, random, safe, scientific
-     , SHA, skylighting, skylighting-core, split, syb, tagsoup, tasty
-     , tasty-bench, tasty-golden, tasty-hunit, tasty-quickcheck
-     , temporary, texmath, text, text-conversions, time
-     , unicode-collation, unicode-transforms, unix, xml, xml-conduit
-     , xml-types, yaml, zip-archive, zlib
-     }:
-     mkDerivation {
-       pname = "pandoc";
-       version = "3.0.1";
-       sha256 = "0yxrcr589z1wbk1ng7qg6ni7zy1vm2v5fg5df639xgk1na4sn0jc";
-       configureFlags = [ "-f-trypandoc" ];
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson aeson-pretty array attoparsec base base64 binary blaze-html
-         blaze-markup bytestring case-insensitive citeproc commonmark
-         commonmark-extensions commonmark-pandoc connection containers
-         data-default deepseq directory doclayout doctemplates emojis
-         exceptions file-embed filepath Glob gridtables haddock-library
-         http-client http-client-tls http-types ipynb jira-wiki-markup
-         JuicyPixels mime-types mtl network network-uri pandoc-types parsec
-         pretty pretty-show process random safe scientific SHA skylighting
-         skylighting-core split syb tagsoup temporary texmath text
-         text-conversions time unicode-collation unicode-transforms unix xml
-         xml-conduit xml-types yaml zip-archive zlib
-       ];
-       testHaskellDepends = [
-         base bytestring containers Diff directory doctemplates filepath
-         Glob mtl pandoc-types process tasty tasty-golden tasty-hunit
-         tasty-quickcheck text time xml zip-archive
-       ];
-       benchmarkHaskellDepends = [
-         base bytestring deepseq mtl tasty-bench text
-       ];
-       doHaddock = false;
-       postInstall = ''
-         mkdir -p $out/share/man/man1
-         mv "man/"*.1 $out/share/man/man1/
-       '';
-       description = "Conversion between markup formats";
-       license = lib.licenses.gpl2Plus;
-       maintainers = [
-         lib.maintainers.maralorn lib.maintainers.sternenseemann
-       ];
-     }) {};
-
-  "pandoc_3_1_11" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, array, attoparsec, base
      , base64-bytestring, binary, blaze-html, blaze-markup, bytestring
      , case-insensitive, citeproc, commonmark, commonmark-extensions
      , commonmark-pandoc, containers, crypton-connection, data-default
@@ -223970,8 +224434,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc";
-       version = "3.1.11";
-       sha256 = "1ijz2n2xl7qjsbbk9h4bc4d5mxyv0yridsdk6i66ffr25hvl864w";
+       version = "3.1.11.1";
+       sha256 = "0yfgvc4ypav3ydqi9ywhfxa2n4rbx7z3jc2p8ccv5r8081jqv5pg";
        configureFlags = [ "-f-trypandoc" ];
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
@@ -223999,7 +224463,6 @@ self: {
        doHaddock = false;
        description = "Conversion between markup formats";
        license = lib.licenses.gpl2Plus;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [
          lib.maintainers.maralorn lib.maintainers.sternenseemann
        ];
@@ -224078,8 +224541,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-cli";
-       version = "3.1.11";
-       sha256 = "0f8ny7rzl6zgicx7abr631xz2fnrpbb3n8bm6af22ady71g2rrih";
+       version = "3.1.11.1";
+       sha256 = "0jf2s3w6vh15r180s2kc4z553lgf4asxmhbh1i0mj87228021j5p";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -224118,48 +224581,10 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-crossref";
-       version = "0.3.16.0";
-       sha256 = "1vp4x4vgc17y0c4grfffrw0nx5iiimj7jm00mwc2p4x8v3gvd1qr";
-       revision = "1";
-       editedCabalFile = "00ghadmbwv14vpc5fh85q1y06z5pzlwh6ryr68l5vg66dk2241g4";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base containers data-default directory filepath microlens
-         microlens-ghc microlens-mtl microlens-th mtl pandoc pandoc-types
-         syb template-haskell text utility-ht
-       ];
-       executableHaskellDepends = [
-         base deepseq gitrev open-browser optparse-applicative pandoc
-         pandoc-types template-haskell temporary text
-       ];
-       testHaskellDepends = [
-         base containers data-default directory filepath hspec microlens mtl
-         pandoc pandoc-types text
-       ];
-       testToolDepends = [ pandoc-cli ];
-       benchmarkHaskellDepends = [
-         base criterion pandoc pandoc-types text
-       ];
-       doHaddock = false;
-       description = "Pandoc filter for cross-references";
-       license = lib.licenses.gpl2Only;
-       mainProgram = "pandoc-crossref";
-       maintainers = [ lib.maintainers.maralorn ];
-     }) {};
-
-  "pandoc-crossref_0_3_17_0" = callPackage
-    ({ mkDerivation, base, containers, criterion, data-default, deepseq
-     , directory, filepath, gitrev, hspec, microlens, microlens-ghc
-     , microlens-mtl, microlens-th, mtl, open-browser
-     , optparse-applicative, pandoc, pandoc-cli, pandoc-types, syb
-     , template-haskell, temporary, text, utility-ht
-     }:
-     mkDerivation {
-       pname = "pandoc-crossref";
        version = "0.3.17.0";
        sha256 = "16kgnwylczhs126ivps56r667acln441srdasavvnk35hsvgmccf";
+       revision = "1";
+       editedCabalFile = "1kqiy98xzdk1x5ga8ci9z23kpq7jlbc4v1zqbfkbs71av0r7cl44";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -224183,7 +224608,6 @@ self: {
        doHaddock = false;
        description = "Pandoc filter for cross-references";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "pandoc-crossref";
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
@@ -224240,7 +224664,9 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "A Pandoc filter for emphasizing code in fenced blocks";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "pandoc-emphasize-code";
+       broken = true;
      }) {};
 
   "pandoc-filter-graphviz" = callPackage
@@ -224360,7 +224786,9 @@ self: {
        ];
        description = "A Pandoc filter for including code from source files";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "pandoc-include-code";
+       broken = true;
      }) {};
 
   "pandoc-include-plus" = callPackage
@@ -224445,8 +224873,6 @@ self: {
        ];
        description = "Extract \"contextual links\" from Pandoc";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pandoc-logic-proof" = callPackage
@@ -224498,22 +224924,21 @@ self: {
 
   "pandoc-lua-marshal" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, exceptions
-     , hslua, hslua-list, hslua-marshalling, lua, pandoc-types
-     , QuickCheck, safe, tasty, tasty-hunit, tasty-lua, tasty-quickcheck
-     , text
+     , hslua, hslua-list, hslua-marshalling, pandoc-types, QuickCheck
+     , safe, tasty, tasty-hunit, tasty-lua, tasty-quickcheck, text
      }:
      mkDerivation {
        pname = "pandoc-lua-marshal";
-       version = "0.2.2";
-       sha256 = "0y96i3qshd5lcpivvdh2bylzh45laxvbgkwxp78b6a5jlwj1q8r2";
+       version = "0.2.4";
+       sha256 = "020iyy4i37zxlrggqjph5rk95yf3lr5jbv63l6l0f2pv8iakryyj";
        libraryHaskellDepends = [
          aeson base bytestring containers exceptions hslua hslua-list
-         hslua-marshalling lua pandoc-types safe text
+         hslua-marshalling pandoc-types safe text
        ];
        testHaskellDepends = [
          aeson base bytestring containers exceptions hslua hslua-list
-         hslua-marshalling lua pandoc-types QuickCheck safe tasty
-         tasty-hunit tasty-lua tasty-quickcheck text
+         hslua-marshalling pandoc-types QuickCheck safe tasty tasty-hunit
+         tasty-lua tasty-quickcheck text
        ];
        description = "Use pandoc types in Lua";
        license = lib.licenses.mit;
@@ -224606,37 +225031,6 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-plot";
-       version = "1.7.0";
-       sha256 = "01f99mjav3w5c0vixr80a6vykabwk9ap8wj4lnh3c6k681i5nnq6";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base bytestring containers data-default directory filepath
-         hashable lifted-async lifted-base mtl pandoc pandoc-types
-         shakespeare tagsoup template-haskell text typed-process unix yaml
-       ];
-       executableHaskellDepends = [
-         base containers directory filepath gitrev optparse-applicative
-         pandoc pandoc-types template-haskell text typed-process
-       ];
-       testHaskellDepends = [
-         base containers directory filepath hspec-expectations pandoc-types
-         tasty tasty-hspec tasty-hunit text
-       ];
-       description = "A Pandoc filter to include figures generated from code blocks using your plotting toolkit of choice";
-       license = lib.licenses.gpl2Plus;
-       mainProgram = "pandoc-plot";
-     }) {};
-
-  "pandoc-plot_1_8_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, data-default
-     , directory, filepath, gitrev, hashable, hspec-expectations
-     , lifted-async, lifted-base, mtl, optparse-applicative, pandoc
-     , pandoc-types, shakespeare, tagsoup, tasty, tasty-hspec
-     , tasty-hunit, template-haskell, text, typed-process, unix, yaml
-     }:
-     mkDerivation {
-       pname = "pandoc-plot";
        version = "1.8.0";
        sha256 = "0hg2z0byp4px51y8hdfaa4gy1jkr2svfahq9abw1w0sg9r12rjxx";
        isLibrary = true;
@@ -224656,7 +225050,6 @@ self: {
        ];
        description = "A Pandoc filter to include figures generated from code blocks using your plotting toolkit of choice";
        license = lib.licenses.gpl2Plus;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "pandoc-plot";
      }) {};
 
@@ -224702,6 +225095,8 @@ self: {
        libraryHaskellDepends = [ base pandoc pandoc-types text ];
        description = "Pandoc filter to extract only the links";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pandoc-select-code" = callPackage
@@ -224773,33 +225168,6 @@ self: {
      }) {};
 
   "pandoc-symreg" = callPackage
-    ({ mkDerivation, attoparsec, attoparsec-expr, base, bytestring, mtl
-     , optparse-applicative, srtree
-     }:
-     mkDerivation {
-       pname = "pandoc-symreg";
-       version = "0.2.0.0";
-       sha256 = "0ick0m8iz85hvvy4kfpqnghj2dx30qx12q546xaj7b0lqj4gf4mw";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         attoparsec attoparsec-expr base bytestring mtl optparse-applicative
-         srtree
-       ];
-       executableHaskellDepends = [
-         attoparsec attoparsec-expr base bytestring mtl optparse-applicative
-         srtree
-       ];
-       testHaskellDepends = [
-         attoparsec attoparsec-expr base bytestring mtl optparse-applicative
-         srtree
-       ];
-       description = "A tool to convert symbolic regression expressions into different formats";
-       license = lib.licenses.gpl3Only;
-       mainProgram = "pandoc-symreg";
-     }) {};
-
-  "pandoc-symreg_0_2_1_3" = callPackage
     ({ mkDerivation, attoparsec, attoparsec-expr, base, bytestring
      , containers, deriving-compat, hegg, ieee754, mtl
      , optparse-applicative, srtree
@@ -224826,6 +225194,7 @@ self: {
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "pandoc-symreg";
+       broken = true;
      }) {};
 
   "pandoc-throw" = callPackage
@@ -224902,16 +225271,16 @@ self: {
 
   "pandoc-vimhl" = callPackage
     ({ mkDerivation, base, directory, filepath, pandoc-types, process
-     , safe, temporary, text
+     , temporary, text
      }:
      mkDerivation {
        pname = "pandoc-vimhl";
-       version = "0.2.0.0";
-       sha256 = "1cc809hjsgnlfimyzyac1ikn2jkjva2lljqxdnqw546nhns7ng5a";
+       version = "0.2.0.1";
+       sha256 = "03zbf9php7rhw1n4yb3a3zwvi92b19ydldkj0fbagwlx0xy2b4wb";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base directory filepath pandoc-types process safe temporary text
+         base directory filepath pandoc-types process temporary text
        ];
        description = "Pandoc filter for native Vim code highlighting";
        license = lib.licenses.bsd3;
@@ -224991,6 +225360,8 @@ self: {
        pname = "pango";
        version = "0.13.10.0";
        sha256 = "0qdk18vj07qivyyd0limjprni77q2xvydx748lsxsrw2ws8hb1ax";
+       revision = "2";
+       editedCabalFile = "064bpj5mmxc31snkfysb9c52v1695kxyqbj617m933mgjrw13q91";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal filepath gtk2hs-buildtools ];
        libraryHaskellDepends = [
@@ -225111,49 +225482,6 @@ self: {
      }) {};
 
   "pantry" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, base, bytestring, Cabal
-     , casa-client, casa-types, conduit, conduit-extra, containers
-     , cryptonite, cryptonite-conduit, digest, exceptions, filelock
-     , generic-deriving, hackage-security, hedgehog, hpack, hspec
-     , http-client, http-client-tls, http-conduit, http-download
-     , http-types, memory, mtl, network-uri, path, path-io, persistent
-     , persistent-sqlite, persistent-template, primitive, QuickCheck
-     , raw-strings-qq, resourcet, rio, rio-orphans, rio-prettyprint
-     , tar-conduit, text, text-metrics, time, transformers, unix-compat
-     , unliftio, unordered-containers, vector, yaml, zip-archive
-     }:
-     mkDerivation {
-       pname = "pantry";
-       version = "0.8.3";
-       sha256 = "0kn7p8xlb5bx7bvmnd14xyf0gsx2xfi8mwlbvpxdk06dfb81w582";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson ansi-terminal base bytestring Cabal casa-client casa-types
-         conduit conduit-extra containers cryptonite cryptonite-conduit
-         digest filelock generic-deriving hackage-security hpack http-client
-         http-client-tls http-conduit http-download http-types memory mtl
-         network-uri path path-io persistent persistent-sqlite
-         persistent-template primitive resourcet rio rio-orphans
-         rio-prettyprint tar-conduit text text-metrics time transformers
-         unix-compat unliftio unordered-containers vector yaml zip-archive
-       ];
-       testHaskellDepends = [
-         aeson ansi-terminal base bytestring Cabal casa-client casa-types
-         conduit conduit-extra containers cryptonite cryptonite-conduit
-         digest exceptions filelock generic-deriving hackage-security
-         hedgehog hpack hspec http-client http-client-tls http-conduit
-         http-download http-types memory mtl network-uri path path-io
-         persistent persistent-sqlite persistent-template primitive
-         QuickCheck raw-strings-qq resourcet rio rio-orphans rio-prettyprint
-         tar-conduit text text-metrics time transformers unix-compat
-         unliftio unordered-containers vector yaml zip-archive
-       ];
-       description = "Content addressable Haskell package management";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "pantry_0_9_3_1" = callPackage
     ({ mkDerivation, aeson, aeson-warning-parser, ansi-terminal, base
      , bytestring, Cabal, casa-client, casa-types, companion, conduit
      , conduit-extra, containers, crypton, crypton-conduit, digest
@@ -225170,6 +225498,8 @@ self: {
        pname = "pantry";
        version = "0.9.3.1";
        sha256 = "17nnp3vl03bv5c4c8djyvv7w885ajypzwxwb82vza8m0cf2jyja5";
+       revision = "2";
+       editedCabalFile = "10sn5amd1hwgc8d64nv73mhjiqaza4wklkbqmp634g3ny6lsayaa";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -225198,7 +225528,6 @@ self: {
        doHaddock = false;
        description = "Content addressable Haskell package management";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "pantry-tmp" = callPackage
@@ -225575,6 +225904,8 @@ self: {
        libraryHaskellDepends = [ base semigroupoids ];
        description = "export useful functions from `semigroupoids`";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "papa-semigroupoids-implement" = callPackage
@@ -225863,8 +226194,8 @@ self: {
      }:
      mkDerivation {
        pname = "parameterized-utils";
-       version = "2.1.7.0";
-       sha256 = "0hf41iw4ik0xlnkw7mkp97nawzw4fn1q7yb712xkgckz2yilmg6d";
+       version = "2.1.8.0";
+       sha256 = "026lrdnw5rjvny380rmrzpwhmcfgp551whbk0mnx2y2q6ij0sjfm";
        libraryHaskellDepends = [
          base base-orphans constraints containers deepseq ghc-prim hashable
          hashtables indexed-traversable lens mtl profunctors
@@ -225879,6 +226210,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "parametric-functor" = callPackage
+    ({ mkDerivation, base, transformers }:
+     mkDerivation {
+       pname = "parametric-functor";
+       version = "0.1.1.0";
+       sha256 = "12k4263ccp4v7q7bh4d55wg6s844wz8hg1p44wpq934pr1d6149b";
+       libraryHaskellDepends = [ base transformers ];
+       description = "A known-parametric Functor typeclass";
+       license = lib.licenses.asl20;
+     }) {};
+
   "paramtree" = callPackage
     ({ mkDerivation, base, bytestring, containers, tasty, tasty-golden
      , tasty-hunit, temporary
@@ -226233,11 +226575,25 @@ self: {
        pname = "parsec-class";
        version = "1.0.0.0";
        sha256 = "0wqpivsrjsp9996fz6lb06rxl3860afc4l8hbx8d1vxhwv2lx702";
+       revision = "1";
+       editedCabalFile = "0ayf4kq2s69v8bb5m79dwycpj7b2fn1iy8m59h4knglw2fazk4px";
        libraryHaskellDepends = [ base parsec ];
        description = "Class of types that can be constructed from their text representation";
        license = lib.licenses.mit;
      }) {};
 
+  "parsec-class_1_0_1_0" = callPackage
+    ({ mkDerivation, base, parsec }:
+     mkDerivation {
+       pname = "parsec-class";
+       version = "1.0.1.0";
+       sha256 = "13211k8gx4gwks1f7nz8p6ak1964jpi2sxla29vwmzr76v08d1h6";
+       libraryHaskellDepends = [ base parsec ];
+       description = "Class of types that can be constructed from their text representation";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "parsec-extra" = callPackage
     ({ mkDerivation, base, monads-tf, parsec }:
      mkDerivation {
@@ -226247,6 +226603,8 @@ self: {
        libraryHaskellDepends = [ base monads-tf parsec ];
        description = "Some miscellaneous basic string parsers";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "parsec-free" = callPackage
@@ -226264,6 +226622,8 @@ self: {
        ];
        description = "Parsec API encoded as a deeply-embedded DSL, for debugging and analysis";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "parsec-numbers" = callPackage
@@ -226886,6 +227246,8 @@ self: {
        libraryHaskellDepends = [ base hedgehog partial-semigroup ];
        description = "Property testing for partial semigroups using Hedgehog";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "partial-semigroup-test" = callPackage
@@ -226898,6 +227260,7 @@ self: {
        doHaddock = false;
        description = "Testing utilities for the partial-semigroup package";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "partial-uri" = callPackage
@@ -227055,10 +227418,8 @@ self: {
      }:
      mkDerivation {
        pname = "password";
-       version = "3.0.2.1";
-       sha256 = "03fnl95g99sy2agwmpwfmkdd308qwq95s582zkhn7bkg2smzqdg9";
-       revision = "1";
-       editedCabalFile = "0a4avz0g6nwr293718h63mpqkxhxsjmmfnyk2wfcfkb4pbm1q0y8";
+       version = "3.0.4.0";
+       sha256 = "0dn1qvf25kf5rwifp615wcqm8lh566knvw5mjhr4s8gwsymjdpsk";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base base64 bytestring cryptonite memory password-types
@@ -227245,10 +227606,9 @@ self: {
 
   "patch" = callPackage
     ({ mkDerivation, base, commutative-semigroups, constraints-extras
-     , containers, dependent-map, dependent-sum, directory, filemanip
-     , filepath, hedgehog, hlint, HUnit, indexed-traversable, lens
-     , monoidal-containers, semialign, semigroupoids, these
-     , transformers, witherable
+     , containers, dependent-map, dependent-sum, hedgehog, HUnit
+     , indexed-traversable, lens, monoidal-containers, semialign
+     , semigroupoids, these, transformers, witherable
      }:
      mkDerivation {
        pname = "patch";
@@ -227260,9 +227620,7 @@ self: {
          monoidal-containers semialign semigroupoids these transformers
          witherable
        ];
-       testHaskellDepends = [
-         base containers directory filemanip filepath hedgehog hlint HUnit
-       ];
+       testHaskellDepends = [ base containers hedgehog HUnit ];
        description = "Data structures for describing changes to other data structures";
        license = lib.licenses.bsd3;
      }) {};
@@ -227412,23 +227770,6 @@ self: {
      }:
      mkDerivation {
        pname = "path-extra";
-       version = "0.2.0";
-       sha256 = "0fh4m3vidf75j43rk1n46y3bsn0j4247bz71s35651vi9s8vw27b";
-       libraryHaskellDepends = [ attoparsec base path text ];
-       testHaskellDepends = [
-         attoparsec base path QuickCheck quickcheck-instances tasty
-         tasty-quickcheck text
-       ];
-       description = "URLs without host information";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "path-extra_0_3_1" = callPackage
-    ({ mkDerivation, attoparsec, base, path, QuickCheck
-     , quickcheck-instances, tasty, tasty-quickcheck, text
-     }:
-     mkDerivation {
-       pname = "path-extra";
        version = "0.3.1";
        sha256 = "0si91qq7bssfpzsnqjwbgp4iifg5clsk4yyxd1yxrk9pxl5vc0wa";
        libraryHaskellDepends = [ attoparsec base path text ];
@@ -227438,7 +227779,6 @@ self: {
        ];
        description = "URLs without host information";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "path-formatting" = callPackage
@@ -227516,19 +227856,6 @@ self: {
      }) {};
 
   "path-text-utf8" = callPackage
-    ({ mkDerivation, base, bytestring, path, safe-exceptions, text }:
-     mkDerivation {
-       pname = "path-text-utf8";
-       version = "0.0.1.12";
-       sha256 = "1q56hrvi865jxx0w9k5xkh20yr9iy808ylqhpc6plqnqbhydwiyb";
-       libraryHaskellDepends = [
-         base bytestring path safe-exceptions text
-       ];
-       description = "Read and write UTF-8 text files";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "path-text-utf8_0_0_2_0" = callPackage
     ({ mkDerivation, base, bytestring, file-io, filepath, path
      , safe-exceptions, text
      }:
@@ -227541,7 +227868,6 @@ self: {
        ];
        description = "Read and write UTF-8 text files";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "path-tree" = callPackage
@@ -227623,7 +227949,8 @@ self: {
        ];
        description = "Library for representing and manipulating type-safe file paths";
        license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.maralorn ];
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pathtype" = callPackage
@@ -227635,8 +227962,8 @@ self: {
        pname = "pathtype";
        version = "0.8.1.2";
        sha256 = "1ikbl1yzlimf5yjvi6agliraqdi6mf6m7ig5rx97wh03vrx58hfk";
-       revision = "1";
-       editedCabalFile = "0iy54kvjh9nf7n870pqggw82rmx8w5hz8hv96dq9swn7dvpq52wj";
+       revision = "2";
+       editedCabalFile = "1qbsh0s6alg19six6nbmvnlkf5qs60iv4i2djxqlrxah08ylxaxk";
        libraryHaskellDepends = [
          base deepseq directory doctest-exitcode-stdio QuickCheck semigroups
          tagged time transformers utility-ht
@@ -227649,6 +227976,28 @@ self: {
        maintainers = [ lib.maintainers.thielema ];
      }) {};
 
+  "pathtype_0_8_1_3" = callPackage
+    ({ mkDerivation, base, deepseq, directory, doctest-exitcode-stdio
+     , doctest-lib, QuickCheck, semigroups, tagged, time, transformers
+     , utility-ht
+     }:
+     mkDerivation {
+       pname = "pathtype";
+       version = "0.8.1.3";
+       sha256 = "0wik0dpqd0bjwpsjwgqzn6cghrjkh5rbv5ggkyj50savh30y9mkj";
+       libraryHaskellDepends = [
+         base deepseq directory doctest-exitcode-stdio QuickCheck semigroups
+         tagged time transformers utility-ht
+       ];
+       testHaskellDepends = [
+         base doctest-exitcode-stdio doctest-lib QuickCheck
+       ];
+       description = "Type-safe replacement for System.FilePath etc";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.thielema ];
+     }) {};
+
   "pathwalk" = callPackage
     ({ mkDerivation, base, directory, filepath, transformers }:
      mkDerivation {
@@ -227679,8 +228028,8 @@ self: {
      }:
      mkDerivation {
        pname = "patrol";
-       version = "1.0.0.6";
-       sha256 = "02szpfdzhb7b6gklnly45wibma19h7dbklqcrc435ks0bjncgyi7";
+       version = "1.0.0.7";
+       sha256 = "139zkmwclm2yigb6081b6zgiqirv9jwcxshx3kigf00vy4wb32z6";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive containers exceptions
          http-client http-types network-uri text time uuid
@@ -227720,6 +228069,8 @@ self: {
        libraryHaskellDepends = [ base mtl ];
        description = "Arrows for Pretty Printing";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pattern-matcher" = callPackage
@@ -228112,6 +228463,8 @@ self: {
        pname = "pcg-random";
        version = "0.1.4.0";
        sha256 = "09hnckb3xzb3spn79jvqlsbg05zm9r1l3dqq44ka07ik4zbagjbf";
+       revision = "1";
+       editedCabalFile = "1f8h0lv34cmqaxccg2yf6q4s8r5g2s8q8s9kql212iggd2l3vv77";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base bytestring entropy primitive random
@@ -228983,7 +229336,6 @@ self: {
        benchmarkToolDepends = [ cpphs ];
        description = "Find duplicate images";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "phash";
      }) {};
 
@@ -229043,8 +229395,8 @@ self: {
      }:
      mkDerivation {
        pname = "perf";
-       version = "0.12.0.0";
-       sha256 = "15l4cx2b2wjinhhgsv646frxl69hvyh9dkqn24719xg8acmqyyyx";
+       version = "0.12.0.1";
+       sha256 = "1fhfngyrmpc1z8rsswd6hsp87yyixkgp52ijsd2mcv6masvrh42i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -229541,6 +229893,45 @@ self: {
        maintainers = [ lib.maintainers.psibi ];
      }) {};
 
+  "persistent_2_14_6_1" = callPackage
+    ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base
+     , base64-bytestring, blaze-html, bytestring, conduit, containers
+     , criterion, deepseq, fast-logger, file-embed, hspec, http-api-data
+     , lift-type, monad-logger, mtl, path-pieces, QuickCheck
+     , quickcheck-instances, resource-pool, resourcet, scientific
+     , shakespeare, silently, template-haskell, text, th-lift-instances
+     , time, transformers, unliftio, unliftio-core, unordered-containers
+     , vault, vector
+     }:
+     mkDerivation {
+       pname = "persistent";
+       version = "2.14.6.1";
+       sha256 = "1adsm4m804pqf30jzwkv4s1xvp5d482r4lm4s14hx2cqb43frdfh";
+       libraryHaskellDepends = [
+         aeson attoparsec attoparsec-aeson base base64-bytestring blaze-html
+         bytestring conduit containers deepseq fast-logger http-api-data
+         lift-type monad-logger mtl path-pieces resource-pool resourcet
+         scientific silently template-haskell text th-lift-instances time
+         transformers unliftio unliftio-core unordered-containers vault
+         vector
+       ];
+       testHaskellDepends = [
+         aeson attoparsec base base64-bytestring blaze-html bytestring
+         conduit containers deepseq fast-logger hspec http-api-data
+         monad-logger mtl path-pieces QuickCheck quickcheck-instances
+         resource-pool resourcet scientific shakespeare silently
+         template-haskell text th-lift-instances time transformers unliftio
+         unliftio-core unordered-containers vector
+       ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq file-embed template-haskell text
+       ];
+       description = "Type-safe, multi-backend data serialization";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.psibi ];
+     }) {};
+
   "persistent-audit" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring
      , getopt-generics, hashable, hspec, mongoDB, persistent
@@ -229653,6 +230044,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Documentation DSL for persistent entities";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "persistent-equivalence" = callPackage
@@ -229853,17 +230246,14 @@ self: {
   "persistent-mtl" = callPackage
     ({ mkDerivation, base, bytestring, conduit, containers, esqueleto
      , exceptions, explainable-predicates, monad-logger, mtl, persistent
-     , persistent-postgresql, persistent-sqlite, persistent-template
-     , resource-pool, resourcet, tasty, tasty-autocollect, tasty-golden
-     , tasty-hunit, text, transformers, unliftio, unliftio-core
-     , unliftio-pool
+     , persistent-postgresql, persistent-sqlite, resource-pool
+     , resourcet, tasty, tasty-autocollect, tasty-golden, tasty-hunit
+     , text, transformers, unliftio, unliftio-core, unliftio-pool
      }:
      mkDerivation {
        pname = "persistent-mtl";
-       version = "0.5.0.1";
-       sha256 = "17sxwa8p95nrkacjr1wnpihwfq121z1pkyh1nvlfjy76b4aalqhi";
-       revision = "3";
-       editedCabalFile = "1slwcn2iafg1gffhj02hlbgpv2v719f26a608bli2hkd9v96s720";
+       version = "0.5.1";
+       sha256 = "13sz2j3g5vyvfhs97xzmzcb5a83lg4wlzmqnbmwg6l419jpj23fq";
        libraryHaskellDepends = [
          base conduit containers exceptions monad-logger mtl persistent
          resource-pool resourcet text transformers unliftio unliftio-core
@@ -229872,8 +230262,8 @@ self: {
        testHaskellDepends = [
          base bytestring conduit containers esqueleto explainable-predicates
          monad-logger persistent persistent-postgresql persistent-sqlite
-         persistent-template resource-pool resourcet tasty tasty-autocollect
-         tasty-golden tasty-hunit text unliftio
+         resource-pool resourcet tasty tasty-autocollect tasty-golden
+         tasty-hunit text unliftio
        ];
        testToolDepends = [ tasty-autocollect ];
        description = "Monad transformer for the persistent API";
@@ -230168,6 +230558,8 @@ self: {
        ];
        description = "Haskell references backed by an IntMap for persistence and reversibility";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "persistent-relational-record" = callPackage
@@ -230364,6 +230756,8 @@ self: {
        benchmarkHaskellDepends = [ base containers criterion deepseq ];
        description = "A persistent sequence based on array mapped tries";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "persistent-zookeeper" = callPackage
@@ -230526,8 +230920,8 @@ self: {
      }:
      mkDerivation {
        pname = "pg-entity";
-       version = "0.0.4.3";
-       sha256 = "02dna5mq2jj988kdwi7shrx8xr5w4bi0g3bwbn1zmay2x8rn9zv3";
+       version = "0.0.4.4";
+       sha256 = "0xbsys4h6p84m3vh076v5cjrmf2v9yl8d44zaknfxbjc8ssfbmh2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -230765,6 +231159,8 @@ self: {
        ];
        description = "Translate between binary data and a human-readable collection of words";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pgsql-simple" = callPackage
@@ -230934,12 +231330,12 @@ self: {
      }) {};
 
   "phladiprelio-general-datatype" = callPackage
-    ({ mkDerivation, base }:
+    ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "phladiprelio-general-datatype";
-       version = "0.5.2.0";
-       sha256 = "0hz2vam7k5vx50qy6h42fzia5ly70b1lc507yq32r6mhgigddss8";
-       libraryHaskellDepends = [ base ];
+       version = "0.7.0.0";
+       sha256 = "0m67xx2kd0fala287qvqr8hbkiarcs04ayvw9jdlby18za8abh2g";
+       libraryHaskellDepends = [ base containers ];
        description = "Extended functionality of PhLADiPreLiO";
        license = lib.licenses.mit;
      }) {};
@@ -230948,8 +231344,8 @@ self: {
     ({ mkDerivation, base, phonetic-languages-phonetics-basics }:
      mkDerivation {
        pname = "phladiprelio-general-shared";
-       version = "0.1.1.0";
-       sha256 = "1iwia8gs6pm7i7nz3a3kqnrmbmg3js1dq66g2s1li71p7gdn32ac";
+       version = "0.1.2.0";
+       sha256 = "0w7dmdfpq5k7hy08bazd04cic2ii803ws14xa0nzrng9pnl6gliq";
        libraryHaskellDepends = [
          base phonetic-languages-phonetics-basics
        ];
@@ -230959,9 +231355,9 @@ self: {
 
   "phladiprelio-general-simple" = callPackage
     ({ mkDerivation, async, base, cli-arguments, directory, halfsplit
-     , phladiprelio-general-datatype, phladiprelio-general-shared
-     , phladiprelio-tests, phonetic-languages-basis
-     , phonetic-languages-constraints-array
+     , minmax, phladiprelio-general-datatype
+     , phladiprelio-general-shared, phladiprelio-tests
+     , phonetic-languages-basis, phonetic-languages-constraints-array
      , phonetic-languages-permutations-array
      , phonetic-languages-phonetics-basics
      , phonetic-languages-simplified-base, rev-scientific
@@ -230969,10 +231365,10 @@ self: {
      }:
      mkDerivation {
        pname = "phladiprelio-general-simple";
-       version = "0.14.0.0";
-       sha256 = "0r259cqqh9554l8l1d2rvbs8gpxf958qwy0dvk0jisgk3dmx3qkw";
+       version = "0.14.2.0";
+       sha256 = "07xgw30r4kyf2mw5jn4hm923xmhxnca0wb6w16k38hn1shbk9jf1";
        libraryHaskellDepends = [
-         async base cli-arguments directory halfsplit
+         async base cli-arguments directory halfsplit minmax
          phladiprelio-general-datatype phladiprelio-general-shared
          phladiprelio-tests phonetic-languages-basis
          phonetic-languages-constraints-array
@@ -231024,9 +231420,9 @@ self: {
 
   "phladiprelio-ukrainian-simple" = callPackage
     ({ mkDerivation, async, base, cli-arguments, directory, halfsplit
-     , mmsyn2-array, phladiprelio-general-datatype, phladiprelio-tests
-     , phladiprelio-ukrainian-shared, phonetic-languages-basis
-     , phonetic-languages-constraints-array
+     , minmax, mmsyn2-array, phladiprelio-general-datatype
+     , phladiprelio-tests, phladiprelio-ukrainian-shared
+     , phonetic-languages-basis, phonetic-languages-constraints-array
      , phonetic-languages-permutations-array
      , phonetic-languages-simplified-base
      , phonetic-languages-ukrainian-array, rev-scientific
@@ -231034,12 +231430,12 @@ self: {
      }:
      mkDerivation {
        pname = "phladiprelio-ukrainian-simple";
-       version = "0.15.0.0";
-       sha256 = "0smmzm6xc6rgfi1r2sx6l7qcw9crxgyijafl62hvxrypx2sidgx6";
+       version = "0.15.3.0";
+       sha256 = "18bipc4xnc9jqps00pih04lfz82881k5dd6ysrk5ihy9akj5xma6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async base cli-arguments directory halfsplit mmsyn2-array
+         async base cli-arguments directory halfsplit minmax mmsyn2-array
          phladiprelio-general-datatype phladiprelio-tests
          phladiprelio-ukrainian-shared phonetic-languages-basis
          phonetic-languages-constraints-array
@@ -231049,7 +231445,7 @@ self: {
          rhythmic-sequences ukrainian-phonetics-basic-array
        ];
        executableHaskellDepends = [
-         async base cli-arguments directory halfsplit mmsyn2-array
+         async base cli-arguments directory halfsplit minmax mmsyn2-array
          phladiprelio-general-datatype phladiprelio-tests
          phladiprelio-ukrainian-shared phonetic-languages-basis
          phonetic-languages-constraints-array
@@ -231224,12 +231620,12 @@ self: {
      }) {};
 
   "phonetic-languages-constraints-array" = callPackage
-    ({ mkDerivation, base, subG }:
+    ({ mkDerivation, base, monoid-insertleft }:
      mkDerivation {
        pname = "phonetic-languages-constraints-array";
-       version = "0.7.3.0";
-       sha256 = "1iykr6d1gfrvkfxfd5dipmd45y5frg8j3lp8xxlvwhsakzxp6vsy";
-       libraryHaskellDepends = [ base subG ];
+       version = "0.8.0.0";
+       sha256 = "08jni7b0llvx5gwcn7wl99a1xi449wjid46m3iq7hbwvbkaghhcw";
+       libraryHaskellDepends = [ base monoid-insertleft ];
        description = "Constraints to filter the needed permutations";
        license = lib.licenses.mit;
      }) {};
@@ -231309,31 +231705,31 @@ self: {
      }) {};
 
   "phonetic-languages-permutations-array" = callPackage
-    ({ mkDerivation, base, subG }:
+    ({ mkDerivation, base, monoid-insertleft }:
      mkDerivation {
        pname = "phonetic-languages-permutations-array";
-       version = "0.4.0.0";
-       sha256 = "0z6zwzfngfhwy8lqylv06xd6lqdxrsrflhjpvqqv3hj68am5p17j";
-       libraryHaskellDepends = [ base subG ];
+       version = "0.5.0.0";
+       sha256 = "1ricwaw0da2fi4l5p7iwspcr6j6ldzjkb8zfi3dsicrgfkakpbkz";
+       libraryHaskellDepends = [ base monoid-insertleft ];
        description = "Permutations and universal set related functions for the phonetic-languages series";
        license = lib.licenses.mit;
      }) {};
 
   "phonetic-languages-phonetics-basics" = callPackage
-    ({ mkDerivation, base, foldable-ix, lists-flines, mmsyn2-array
-     , mmsyn3, mmsyn5
+    ({ mkDerivation, base, intermediate-structures, lists-flines
+     , mmsyn2-array
      }:
      mkDerivation {
        pname = "phonetic-languages-phonetics-basics";
-       version = "0.10.1.0";
-       sha256 = "0i2mpfpycy004kc96ajraxrjzdzg1k04yjn18wf1k9x5q5n3xm24";
+       version = "0.11.0.0";
+       sha256 = "0mwl7q7h57v8f2v57hqkw3migas8f1rm1w6i72zq1yra23g945zs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base foldable-ix lists-flines mmsyn2-array mmsyn3 mmsyn5
+         base intermediate-structures lists-flines mmsyn2-array
        ];
        executableHaskellDepends = [
-         base foldable-ix lists-flines mmsyn2-array mmsyn3 mmsyn5
+         base intermediate-structures lists-flines mmsyn2-array
        ];
        description = "A library for working with generalized phonetic languages usage";
        license = lib.licenses.mit;
@@ -231391,16 +231787,16 @@ self: {
      }) {};
 
   "phonetic-languages-simplified-base" = callPackage
-    ({ mkDerivation, base, phonetic-languages-basis
-     , phonetic-languages-permutations-array, subG
+    ({ mkDerivation, base, minmax, monoid-insertleft
+     , phonetic-languages-basis, phonetic-languages-permutations-array
      }:
      mkDerivation {
        pname = "phonetic-languages-simplified-base";
-       version = "0.7.1.0";
-       sha256 = "1rjmkrlcfgv3n14y5rmg0sxnq409m3jxrjxvz8hznqprjalwkc79";
+       version = "0.8.0.0";
+       sha256 = "1adi6vs3p0q7d3032favk7fymjljx6wmxwz8jxjghm1kj6az0clk";
        libraryHaskellDepends = [
-         base phonetic-languages-basis phonetic-languages-permutations-array
-         subG
+         base minmax monoid-insertleft phonetic-languages-basis
+         phonetic-languages-permutations-array
        ];
        description = "A basics of the phonetic-languages functionality that can be groupped";
        license = lib.licenses.mit;
@@ -231782,7 +232178,9 @@ self: {
        ];
        description = "Rename photo image files based on EXIF shoot date";
        license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "photoname";
+       broken = true;
      }) {};
 
   "phraskell" = callPackage
@@ -232089,6 +232487,8 @@ self: {
        testHaskellDepends = [ base containers random rdtsc transformers ];
        description = "Bindings to the PicoSAT solver";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pictikz" = callPackage
@@ -232118,7 +232518,9 @@ self: {
        executableHaskellDepends = [ base mtl ];
        description = "a simple PID controller";
        license = "unknown";
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "pid";
+       broken = true;
      }) {};
 
   "pid1" = callPackage
@@ -232145,6 +232547,8 @@ self: {
        libraryHaskellDepends = [ base unix ];
        description = "Run an IO action protected by a pidfile";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pier" = callPackage
@@ -232273,8 +232677,8 @@ self: {
      }:
      mkDerivation {
        pname = "pinboard-notes-backup";
-       version = "1.0.5.6";
-       sha256 = "1vghgv9kmlch9g14imp5skb1ia6nndn1bwhpx7r262fn4dv88372";
+       version = "1.0.5.7";
+       sha256 = "0gbqpnyipaa41kdbk6bi5blb28ysznkr2k9qhqqf39jh6aa3j1y3";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -232295,32 +232699,8 @@ self: {
      }:
      mkDerivation {
        pname = "pinch";
-       version = "0.4.3.0";
-       sha256 = "1m9pmcraw3rxgib44pskldig2xp0106zpbj3dbdgxam0ikaybb71";
-       libraryHaskellDepends = [
-         array base bytestring cereal containers deepseq ghc-prim hashable
-         network semigroups text unordered-containers vector
-       ];
-       libraryToolDepends = [ hspec-discover ];
-       testHaskellDepends = [
-         async base bytestring cereal containers hspec network network-run
-         QuickCheck semigroups text unordered-containers vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "An alternative implementation of Thrift for Haskell";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "pinch_0_5_0_0" = callPackage
-    ({ mkDerivation, array, async, base, bytestring, cereal, containers
-     , deepseq, ghc-prim, hashable, hspec, hspec-discover, network
-     , network-run, QuickCheck, semigroups, text, unordered-containers
-     , vector
-     }:
-     mkDerivation {
-       pname = "pinch";
-       version = "0.5.0.0";
-       sha256 = "186b7576f5h49j83r3r8ljk8kb98x1as0hdsrjflhps158qh3xdp";
+       version = "0.5.1.0";
+       sha256 = "0p90hq8qk8x11ak2im7pv44agw4dcx9dqzby1ip0pl8mmmfdrpdx";
        libraryHaskellDepends = [
          array base bytestring cereal containers deepseq ghc-prim hashable
          network semigroups text unordered-containers vector
@@ -232333,7 +232713,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "An alternative implementation of Thrift for Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "pinch-gen" = callPackage
@@ -232343,8 +232722,10 @@ self: {
      }:
      mkDerivation {
        pname = "pinch-gen";
-       version = "0.4.3.0";
-       sha256 = "0bj1b891zm62iz9dl61zy5aw4750f222s472x2wnxzxjsb53d4fi";
+       version = "0.4.4.0";
+       sha256 = "0c65m9mxqk52lrh77ljkanycfsbi7k1jljb9wzwcb528vwjj6pgh";
+       revision = "2";
+       editedCabalFile = "07vncls4nbc6sm5w98gz53mk9rz5r3bivy39jmbb4wa3mna13r1q";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -232568,6 +232949,8 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Conduit with a smaller core";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pipeline" = callPackage
@@ -232621,6 +233004,8 @@ self: {
        ];
        description = "Encode and decode JSON streams using Aeson and Pipes";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pipes-async" = callPackage
@@ -233070,7 +233455,9 @@ self: {
        ];
        description = "Extra utilities for pipes";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.Gabriella439 ];
+       broken = true;
      }) {};
 
   "pipes-fastx" = callPackage
@@ -233238,6 +233625,8 @@ self: {
        ];
        description = "Kafka in the Pipes ecosystem";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pipes-key-value-csv" = callPackage
@@ -233922,8 +234311,8 @@ self: {
        pname = "pixiv";
        version = "0.1.1";
        sha256 = "1mzcnm1y0fsx66lk09j49mdw9hv4l0zsq4wqi9jcamr0jf5ffq0y";
-       revision = "1";
-       editedCabalFile = "0zfjbyqvh4azhcrmc8vwkyjq7qnqy4gpm0qp29fv0p5zhmqbn4ay";
+       revision = "2";
+       editedCabalFile = "1pf2mg9bggnj9bfqf172cm9d43c5yzsfdpcs6qj24ndqwmr7fjp6";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring cryptohash-md5 exceptions
          filepath http-client http-client-tls lens monad-control mtl process
@@ -234501,6 +234890,8 @@ self: {
        ];
        description = "A plotting library, exportable as eps/pdf/svg/png or renderable with gtk";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "plot-gtk" = callPackage
@@ -234723,6 +235114,8 @@ self: {
        libraryHaskellDepends = [ aeson base text ];
        description = "Contravariant logging library";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "plow-log-async" = callPackage
@@ -234752,6 +235145,8 @@ self: {
        testHaskellDepends = [ base mtl ];
        description = "A library and technique for handling errors via plucking constraints";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "plugins" = callPackage
@@ -234868,7 +235263,9 @@ self: {
        executableHaskellDepends = [ base bytestring linear vector ];
        description = "PLY file loader";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "ply2bin";
+       broken = true;
      }) {};
 
   "plzwrk" = callPackage
@@ -234931,6 +235328,8 @@ self: {
        pname = "pngload-fixed";
        version = "1.0";
        sha256 = "02ikfn7kl8jx5iffa2pv0n1z1c75qcg9aq94nrccfdp532wxr7bx";
+       revision = "1";
+       editedCabalFile = "09n4kpbijhlbj01h9hjkpds450s7ffi5k5sn4aj2pcpd3rc5av9g";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ array base bytestring mtl parsec zlib ];
        description = "Pure Haskell loader for PNG images";
@@ -235483,6 +235882,17 @@ self: {
        broken = true;
      }) {};
 
+  "pollock" = callPackage
+    ({ mkDerivation, attoparsec, base, containers, ghc, text }:
+     mkDerivation {
+       pname = "pollock";
+       version = "0.1.0.0";
+       sha256 = "06wrizz358ihpfi8abdnx4xf4nfql3ah5333ag0lblym8qapsyw6";
+       libraryHaskellDepends = [ attoparsec base containers ghc text ];
+       description = "Functionality to help examine Haddock information of a module";
+       license = lib.licenses.mit;
+     }) {};
+
   "poly" = callPackage
     ({ mkDerivation, base, deepseq, finite-typelits, mod, primitive
      , QuickCheck, quickcheck-classes, quickcheck-classes-base
@@ -235559,6 +235969,7 @@ self: {
        libraryHaskellDepends = [ base requirements ];
        description = "Polykinded extensible records";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polyToMonoid" = callPackage
@@ -235752,6 +236163,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Higher-order, low-boilerplate free monads";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-RandomFu" = callPackage
@@ -235843,6 +236255,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "QuickCheck for Polysemy";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-chronos" = callPackage
@@ -235932,6 +236345,7 @@ self: {
        ];
        description = "Low level filesystem operations for polysemy";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-fskvstore" = callPackage
@@ -236232,6 +236646,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Mocking framework for polysemy effects";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-optics" = callPackage
@@ -236269,8 +236684,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-plugin";
-       version = "0.4.5.1";
-       sha256 = "066ggw99m93xk9gk5ymmx1dpfwlq5anf9mgzv05lbzysg2v15b6p";
+       version = "0.4.5.2";
+       sha256 = "1inl8wk36fyc6m1fp8pyxmrc82bmznr5f1zasfmxj9q5xxbig87f";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base containers ghc ghc-tcplugins-extra polysemy syb transformers
@@ -236283,6 +236698,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Disambiguate obvious uses of effects";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-process" = callPackage
@@ -236531,6 +236947,7 @@ self: {
        ];
        description = "Start web servers from within a Polysemy effect stack";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-zoo" = callPackage
@@ -236556,6 +236973,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Experimental, user-contributed effects and interpreters for polysemy";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polyseq" = callPackage
@@ -236761,55 +237179,6 @@ self: {
   "pontarius-xmpp" = callPackage
     ({ mkDerivation, async, attoparsec, base, base64-bytestring, binary
      , bytestring, Cabal, conduit, containers, criterion, crypto-api
-     , cryptohash, cryptohash-cryptoapi, cryptonite, data-default, dns
-     , exceptions, generic-arbitrary, hslogger, hspec
-     , hspec-expectations, iproute, lens, lens-family, lifted-base, mtl
-     , network, profunctors, pureMD5, QuickCheck, quickcheck-instances
-     , random, ranges, resourcet, smallcheck, split, stm, stringprep
-     , tasty, tasty-hspec, tasty-hunit, tasty-quickcheck, tasty-th
-     , template-haskell, text, tls, transformers, unbounded-delays, void
-     , x509-system, xml-conduit, xml-picklers, xml-types
-     }:
-     mkDerivation {
-       pname = "pontarius-xmpp";
-       version = "0.5.6.6";
-       sha256 = "1dzr965amv2909h4r5pc4qxhgrzp79cmv5grq79w5qjjfmj6iv65";
-       libraryHaskellDepends = [
-         attoparsec base base64-bytestring binary bytestring conduit
-         containers crypto-api cryptohash cryptohash-cryptoapi cryptonite
-         data-default dns exceptions hslogger iproute lens lens-family
-         lifted-base mtl network profunctors pureMD5 random resourcet split
-         stm stringprep template-haskell text tls transformers
-         unbounded-delays void x509-system xml-conduit xml-picklers
-         xml-types
-       ];
-       testHaskellDepends = [
-         async attoparsec base base64-bytestring binary bytestring Cabal
-         conduit containers crypto-api cryptohash cryptohash-cryptoapi
-         cryptonite data-default dns exceptions generic-arbitrary hslogger
-         hspec hspec-expectations iproute lens lens-family lifted-base mtl
-         network profunctors pureMD5 QuickCheck quickcheck-instances random
-         ranges resourcet smallcheck split stm stringprep tasty tasty-hspec
-         tasty-hunit tasty-quickcheck tasty-th template-haskell text tls
-         transformers unbounded-delays void x509-system xml-conduit
-         xml-picklers xml-types
-       ];
-       benchmarkHaskellDepends = [
-         attoparsec base base64-bytestring binary bytestring conduit
-         containers criterion crypto-api cryptohash cryptohash-cryptoapi
-         cryptonite data-default dns exceptions hslogger iproute lens
-         lens-family lifted-base mtl network profunctors pureMD5 random
-         resourcet split stm stringprep template-haskell text tls
-         transformers unbounded-delays void x509-system xml-conduit
-         xml-picklers xml-types
-       ];
-       description = "An XMPP client library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "pontarius-xmpp_0_5_6_8" = callPackage
-    ({ mkDerivation, async, attoparsec, base, base64-bytestring, binary
-     , bytestring, Cabal, conduit, containers, criterion, crypto-api
      , cryptohash, cryptohash-cryptoapi, crypton-x509-system
      , data-default, dns, exceptions, generic-arbitrary, hslogger, hspec
      , hspec-expectations, iproute, lens, lens-family, lifted-base, mtl
@@ -236854,7 +237223,6 @@ self: {
        ];
        description = "An XMPP client library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "pontarius-xmpp-extras" = callPackage
@@ -237298,6 +237666,8 @@ self: {
        ];
        description = "Rendering to pseudo-Haskell syntax";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "portray-diff" = callPackage
@@ -237313,6 +237683,7 @@ self: {
        ];
        description = "Pretty structural diffs between two values";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "portray-diff-hunit" = callPackage
@@ -237329,6 +237700,7 @@ self: {
        ];
        description = "HUnit assertions based on portray-diff";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "portray-diff-quickcheck" = callPackage
@@ -237344,6 +237716,7 @@ self: {
        ];
        description = "QuickCheck tests with portray-diff";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "portray-pretty" = callPackage
@@ -237363,6 +237736,7 @@ self: {
        ];
        description = "Portray backend for pretty";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "portray-prettyprinter" = callPackage
@@ -237387,6 +237761,7 @@ self: {
        ];
        description = "Portray backend for prettyprinter";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ports" = callPackage
@@ -237613,6 +237988,8 @@ self: {
        libraryHaskellDepends = [ base transformers unix ];
        description = "Nice wrapper around POSIX fcntl advisory locks";
        license = "unknown";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "posix-paths" = callPackage
@@ -237861,8 +238238,8 @@ self: {
      }:
      mkDerivation {
        pname = "postgresql-binary";
-       version = "0.13.1.2";
-       sha256 = "0gdmzylx8xqsp22hxlc19cqsid64s4bfqc4g9kg16vndc2b1d6x5";
+       version = "0.13.1.3";
+       sha256 = "1w71jb34z4810i32i9aa17x7if5ssj25gqvi15k2rf1g2lmwp7ry";
        libraryHaskellDepends = [
          aeson base binary-parser bytestring bytestring-strict-builder
          containers network-ip scientific text time transformers
@@ -237988,22 +238365,6 @@ self: {
     ({ mkDerivation, base, bytestring, Cabal, postgresql, unix }:
      mkDerivation {
        pname = "postgresql-libpq";
-       version = "0.9.5.0";
-       sha256 = "0w2l687r9z92snvd0cjyv3dxghgr5alyw0vc2c6bp2600pc2nnfi";
-       revision = "1";
-       editedCabalFile = "02g69cm1nqvvakyjs7ps2q9nkl4vpcdcxl41s7hzpy3vjhyar036";
-       setupHaskellDepends = [ base Cabal ];
-       libraryHaskellDepends = [ base bytestring unix ];
-       librarySystemDepends = [ postgresql ];
-       testHaskellDepends = [ base bytestring ];
-       description = "low-level binding to libpq";
-       license = lib.licenses.bsd3;
-     }) {inherit (pkgs) postgresql;};
-
-  "postgresql-libpq_0_10_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, postgresql, unix }:
-     mkDerivation {
-       pname = "postgresql-libpq";
        version = "0.10.0.0";
        sha256 = "0qnzbc1rws6kgy3g1y9n7c2mh190996jlwrp0j3hbsmgdy9aig2l";
        revision = "1";
@@ -238014,7 +238375,6 @@ self: {
        testHaskellDepends = [ base bytestring ];
        description = "low-level binding to libpq";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) postgresql;};
 
   "postgresql-libpq-notify" = callPackage
@@ -238304,35 +238664,6 @@ self: {
 
   "postgresql-simple" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base16-bytestring
-     , bytestring, bytestring-builder, case-insensitive, containers
-     , cryptohash-md5, filepath, hashable, HUnit, inspection-testing
-     , Only, postgresql-libpq, scientific, tasty, tasty-golden
-     , tasty-hunit, template-haskell, text, time-compat, transformers
-     , uuid-types, vector
-     }:
-     mkDerivation {
-       pname = "postgresql-simple";
-       version = "0.6.5.1";
-       sha256 = "0v0v34a5p6as8zv96dgjk082lq9p5iij1p0jnz8wcyfjfc5l2qf8";
-       libraryHaskellDepends = [
-         aeson attoparsec base bytestring bytestring-builder
-         case-insensitive containers hashable Only postgresql-libpq
-         scientific template-haskell text time-compat transformers
-         uuid-types vector
-       ];
-       testHaskellDepends = [
-         aeson base base16-bytestring bytestring case-insensitive containers
-         cryptohash-md5 filepath HUnit inspection-testing postgresql-libpq
-         tasty tasty-golden tasty-hunit text time-compat vector
-       ];
-       benchmarkHaskellDepends = [ base vector ];
-       description = "Mid-Level PostgreSQL client library";
-       license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.maralorn ];
-     }) {};
-
-  "postgresql-simple_0_7_0_0" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, base16-bytestring
      , bytestring, case-insensitive, containers, cryptohash-md5
      , filepath, hashable, HUnit, inspection-testing, Only
      , postgresql-libpq, scientific, tasty, tasty-golden, tasty-hunit
@@ -238358,7 +238689,6 @@ self: {
        benchmarkHaskellDepends = [ base vector ];
        description = "Mid-Level PostgreSQL client library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
@@ -238446,9 +238776,7 @@ self: {
        testHaskellDepends = [ base bytestring hspec postgresql-simple ];
        description = "PostgreSQL Schema Migrations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "migrate";
-       broken = true;
      }) {};
 
   "postgresql-simple-named" = callPackage
@@ -238457,8 +238785,8 @@ self: {
      }:
      mkDerivation {
        pname = "postgresql-simple-named";
-       version = "0.0.4.0";
-       sha256 = "05xzvfy4j1r0zd2g3hgfk4a772vr02g8c3zd1vh6yqh71pvg5zwr";
+       version = "0.0.5.0";
+       sha256 = "0kay1xy0jkgnrc81qqklmfzd60g3wg4ymqm75s97z82d3iif7jr0";
        libraryHaskellDepends = [
          base bytestring mtl postgresql-simple text
        ];
@@ -238493,6 +238821,8 @@ self: {
        ];
        description = "An optparse-applicative and envy parser for postgres options";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "postgresql-simple-queue" = callPackage
@@ -238613,6 +238943,8 @@ self: {
        libraryHaskellDepends = [ base transformers ];
        description = "A safe transaction monad for use with various PostgreSQL Haskell libraries";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "postgresql-tx-monad-logger" = callPackage
@@ -238698,34 +239030,6 @@ self: {
 
   "postgresql-typed" = callPackage
     ({ mkDerivation, aeson, array, attoparsec, base, binary, bytestring
-     , containers, convertible, criterion, cryptonite, data-default
-     , haskell-src-meta, HDBC, HUnit, memory, network, old-locale
-     , postgresql-binary, QuickCheck, scientific, template-haskell, text
-     , time, tls, utf8-string, uuid, x509, x509-store, x509-validation
-     }:
-     mkDerivation {
-       pname = "postgresql-typed";
-       version = "0.6.2.2";
-       sha256 = "0khc6bc1gvlhvrmpgj4ilazimwpjvd2p83lfbbpip9dpj2b5h2ri";
-       libraryHaskellDepends = [
-         aeson array attoparsec base binary bytestring containers cryptonite
-         data-default haskell-src-meta HDBC memory network old-locale
-         postgresql-binary scientific template-haskell text time tls
-         utf8-string uuid x509 x509-store x509-validation
-       ];
-       testHaskellDepends = [
-         base bytestring containers convertible HDBC HUnit network
-         QuickCheck time tls
-       ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion network time tls
-       ];
-       description = "PostgreSQL interface with compile-time SQL type checking, optional HDBC backend";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "postgresql-typed_0_6_2_5" = callPackage
-    ({ mkDerivation, aeson, array, attoparsec, base, binary, bytestring
      , containers, convertible, criterion, crypton, crypton-x509
      , crypton-x509-store, crypton-x509-validation, data-default
      , haskell-src-meta, HDBC, HUnit, memory, network, old-locale
@@ -238752,7 +239056,6 @@ self: {
        ];
        description = "PostgreSQL interface with compile-time SQL type checking, optional HDBC backend";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "postgresql-typed-lifted" = callPackage
@@ -239291,21 +239594,6 @@ self: {
      }:
      mkDerivation {
        pname = "pqueue";
-       version = "1.4.3.0";
-       sha256 = "0kl608jw0xz0n4ysw7p3cvlm1s71xrysw8862cddrzbr38bv8jvq";
-       libraryHaskellDepends = [ base deepseq indexed-traversable ];
-       testHaskellDepends = [ base deepseq tasty tasty-quickcheck ];
-       benchmarkHaskellDepends = [ base deepseq random tasty-bench ];
-       description = "Reliable, persistent, fast priority queues";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "pqueue_1_5_0_0" = callPackage
-    ({ mkDerivation, base, deepseq, indexed-traversable, random, tasty
-     , tasty-bench, tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "pqueue";
        version = "1.5.0.0";
        sha256 = "00hzrhz3n55ahyv2h183l72jsl3q01p4ns0063p0vjaa5j6qpy0v";
        revision = "1";
@@ -239317,7 +239605,6 @@ self: {
        benchmarkHaskellDepends = [ base deepseq random tasty-bench ];
        description = "Reliable, persistent, fast priority queues";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "pqueue-mtl" = callPackage
@@ -239395,17 +239682,17 @@ self: {
      }) {};
 
   "prairie" = callPackage
-    ({ mkDerivation, aeson, base, constraints, containers, lens
+    ({ mkDerivation, aeson, base, constraints, containers, hspec, lens
      , template-haskell, text
      }:
      mkDerivation {
        pname = "prairie";
-       version = "0.0.2.0";
-       sha256 = "1z9l8a45shvv1z8zsp4d1c0nrp7zblma8g0alhp2flp7wxfv7qf3";
+       version = "0.0.3.0";
+       sha256 = "0rm3cnvjs8825x7czdc948whjfjynzz9apbp2qbmyv3lihi4mib5";
        libraryHaskellDepends = [
          aeson base constraints containers lens template-haskell text
        ];
-       testHaskellDepends = [ aeson base lens ];
+       testHaskellDepends = [ aeson base hspec lens ];
        description = "A first class record field library";
        license = lib.licenses.bsd3;
      }) {};
@@ -240361,6 +240648,8 @@ self: {
        testHaskellDepends = [ base hspec tagged ];
        description = "A small pretty printing DSL for complex types";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "prettyFunctionComposing" = callPackage
@@ -240381,8 +240670,8 @@ self: {
      }:
      mkDerivation {
        pname = "prettychart";
-       version = "0.1.2.0";
-       sha256 = "117ak0mjyfgs5g3qr9prrg5wkbv5i9k9f218gs27czhb10xxhahs";
+       version = "0.2.0.0";
+       sha256 = "1mpbn9i9h3g374nn6v7h664rypcxwbq3l94bxxmwy6jzpp8hzz0q";
        libraryHaskellDepends = [
          async base box bytestring chart-svg containers markup-parse
          numhask-space optics-core text time web-rep
@@ -240530,6 +240819,8 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Converter from »ansi-wl-pprint« documents to »prettyprinter«-based ones";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "prettyprinter-graphviz" = callPackage
@@ -241071,24 +241362,20 @@ self: {
      }) {};
 
   "primitive-sort" = callPackage
-    ({ mkDerivation, base, containers, contiguous, doctest, gauge
-     , ghc-prim, HUnit, primitive, QuickCheck, random, smallcheck, tasty
-     , tasty-hunit, tasty-quickcheck, tasty-smallcheck
+    ({ mkDerivation, base, containers, contiguous, gauge, HUnit
+     , primitive, QuickCheck, random, smallcheck, tasty, tasty-hunit
+     , tasty-quickcheck, tasty-smallcheck
      }:
      mkDerivation {
        pname = "primitive-sort";
-       version = "0.1.2.0";
-       sha256 = "0nalkfycg9fpvwi8h2a4k31wmmn1ny16b43kj75gxcpmbc4x6azz";
-       revision = "1";
-       editedCabalFile = "0c0r6db3x5jngqgzylm5s3d5vy9ncnl0642wrdg92cnqzfrqbvgw";
-       libraryHaskellDepends = [ base contiguous ghc-prim primitive ];
+       version = "0.1.2.4";
+       sha256 = "1x99nfnr7jgsxzlcs2ba4njr6n1wxrhx9qjxlg4iv1k8ff6flp2l";
+       libraryHaskellDepends = [ base contiguous primitive ];
        testHaskellDepends = [
-         base containers doctest HUnit primitive QuickCheck smallcheck tasty
+         base containers HUnit primitive QuickCheck smallcheck tasty
          tasty-hunit tasty-quickcheck tasty-smallcheck
        ];
-       benchmarkHaskellDepends = [
-         base contiguous gauge ghc-prim primitive random
-       ];
+       benchmarkHaskellDepends = [ base gauge primitive random ];
        description = "Sort primitive arrays";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -241122,7 +241409,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "primitive-unlifted" = callPackage
+  "primitive-unlifted_0_1_3_1" = callPackage
     ({ mkDerivation, base, bytestring, primitive, stm, text-short }:
      mkDerivation {
        pname = "primitive-unlifted";
@@ -241134,9 +241421,10 @@ self: {
        testHaskellDepends = [ base primitive stm ];
        description = "Primitive GHC types with unlifted types inside";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "primitive-unlifted_2_1_0_0" = callPackage
+  "primitive-unlifted" = callPackage
     ({ mkDerivation, array, base, bytestring, primitive, QuickCheck
      , quickcheck-classes-base, stm, tasty, tasty-quickcheck, text-short
      }:
@@ -241144,6 +241432,8 @@ self: {
        pname = "primitive-unlifted";
        version = "2.1.0.0";
        sha256 = "07ix39sraijgajprpzdbnl67m8ghixxbqg93k4m02k1gi83j2d31";
+       revision = "1";
+       editedCabalFile = "169j22x9xbw35pgsqixqbjhk5gbshbf1cvq2i84yz4b3g74164gg";
        libraryHaskellDepends = [
          array base bytestring primitive text-short
        ];
@@ -241153,7 +241443,6 @@ self: {
        ];
        description = "Primitive GHC types with unlifted types inside";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "primula-board" = callPackage
@@ -241601,8 +241890,8 @@ self: {
        pname = "process";
        version = "1.6.18.0";
        sha256 = "0zm3v2m95a7bsnndl1pvdj9a7gd4v84pb34rmgsqjkwpwi7lqpxa";
-       revision = "1";
-       editedCabalFile = "0hi7wnsi1yxx7chxbbpjlisid1slq8biw6m4bld6s6hy2njbryv9";
+       revision = "2";
+       editedCabalFile = "0ksri04db6g38n9h3qi0qwiq0gh0hy20irj90121mxp494kwwjwb";
        libraryHaskellDepends = [ base deepseq directory filepath unix ];
        testHaskellDepends = [ base bytestring directory ];
        description = "Process libraries";
@@ -242072,9 +242361,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Treemap visualiser for GHC prof files";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "profiteur";
-       broken = true;
      }) {};
 
   "profunctor-arrows" = callPackage
@@ -242312,9 +242599,9 @@ self: {
 
   "project-m36" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, barbies, base
-     , base16-bytestring, base64-bytestring, binary, blaze-html
-     , bytestring, Cabal, cassava, conduit, containers, convertible
-     , criterion, cryptohash-sha256, curryer-rpc, data-interval, deepseq
+     , base16-bytestring, base64-bytestring, blaze-html, bytestring
+     , Cabal, cassava, conduit, containers, convertible, criterion
+     , cryptohash-sha256, curryer-rpc, data-interval, deepseq
      , deepseq-generics, deferred-folds, directory, either, exceptions
      , extended-reals, fast-builder, filepath, foldl, ghc, ghc-boot
      , ghc-paths, ghci, Glob, gnuplot, hashable, haskeline
@@ -242325,14 +242612,14 @@ self: {
      , random, random-shuffle, recursion-schemes, resourcet, rset
      , scientific, scotty, semigroups, stm, stm-containers, streamly
      , template-haskell, temporary, text, text-manipulate, time
-     , time-compat, transformers, unix, unordered-containers, uuid
-     , vector, vector-instances, wai, wai-websockets, warp, warp-tls
-     , websockets, winery, zlib
+     , transformers, unix, unordered-containers, uuid, vector
+     , vector-instances, wai, wai-websockets, warp, warp-tls, websockets
+     , winery, zlib
      }:
      mkDerivation {
        pname = "project-m36";
-       version = "0.9.7";
-       sha256 = "0jybyl0nwyfzb8hfhik4cmipnk9xrnq3zw1917k2hc3qzfs162b4";
+       version = "0.9.9";
+       sha256 = "07d3jr66gk48l4cmy2acigi61zwxn1pa6gg09lxazi5c8ii6zhzf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -242345,12 +242632,12 @@ self: {
          old-locale optparse-applicative parallel path-pieces QuickCheck
          quickcheck-instances random-shuffle recursion-schemes resourcet
          rset scientific semigroups stm stm-containers streamly temporary
-         text text-manipulate time time-compat transformers unix
-         unordered-containers uuid vector vector-instances winery zlib
+         text text-manipulate time transformers unix unordered-containers
+         uuid vector vector-instances winery zlib
        ];
        executableHaskellDepends = [
          aeson attoparsec barbies base base16-bytestring base64-bytestring
-         binary blaze-html bytestring Cabal cassava conduit containers
+         blaze-html bytestring Cabal cassava conduit containers
          cryptohash-sha256 curryer-rpc data-interval deepseq
          deepseq-generics directory either filepath ghc ghc-paths gnuplot
          hashable haskeline http-api-data http-conduit http-types HUnit
@@ -242577,6 +242864,8 @@ self: {
        pname = "prometheus";
        version = "2.2.4";
        sha256 = "15ykkpiq1vw4ii9x31jrfryl073kd90dp0p05c3avgqczp3985zp";
+       revision = "1";
+       editedCabalFile = "0p55nnhhgbf77pw5r5snmikl98zngxwfg1xwg6534lycbznws87z";
        libraryHaskellDepends = [
          atomic-primops base bytestring containers http-client
          http-client-tls http-types network-uri text transformers wai warp
@@ -242674,6 +242963,7 @@ self: {
        ];
        description = "Export metrics from /proc for the current process";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "prometheus-wai-middleware" = callPackage
@@ -242736,6 +243026,8 @@ self: {
        ];
        description = "Monad (and transformer) for deferred-effect pure prompt-response queries";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pronounce" = callPackage
@@ -242758,18 +243050,19 @@ self: {
 
   "proof-assistant-bot" = callPackage
     ({ mkDerivation, Agda, async, base, bytestring, dhall, directory
-     , filepath, mtl, process, rzk, stm, telegram-bot-simple, text, unix
-     , unordered-containers
+     , filepath, mtl, process, rzk, stm, telegram-bot-api
+     , telegram-bot-simple, text, unix, unordered-containers
      }:
      mkDerivation {
        pname = "proof-assistant-bot";
-       version = "0.2.1";
-       sha256 = "04vkg3yx0lviv2r8d46zh58af63pk4baaywzqf0jrqsppmqgzbg7";
+       version = "0.2.2";
+       sha256 = "1l5s7vwscv5vlfbc38v5lgxjyl2b2iqbsz3lxfmh9n3iadb9jykn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          Agda async base bytestring dhall directory filepath mtl process rzk
-         stm telegram-bot-simple text unix unordered-containers
+         stm telegram-bot-api telegram-bot-simple text unix
+         unordered-containers
        ];
        executableHaskellDepends = [ base ];
        description = "Telegram bot for proof assistants";
@@ -242856,6 +243149,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "property-based host configuration management in haskell";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "properties" = callPackage
@@ -243101,8 +243395,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens";
-       version = "0.7.1.3";
-       sha256 = "1b73pa5vs5bhzaf2njhv8idw8i76fm7mq2qjrdv5y7d3f5v33i5a";
+       version = "0.7.1.4";
+       sha256 = "0nb1klrhms82mkjzr2zxdcj5ny6skjgqi6md05bmm99s0hg0ql15";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers deepseq ghc-prim lens-family parsec
@@ -243121,8 +243415,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-arbitrary";
-       version = "0.1.2.11";
-       sha256 = "1gapsvn72hn8dbfdnrj9xdy7n1ip55sxx1679lpzgyjgq80sgslv";
+       version = "0.1.2.12";
+       sha256 = "1hx3yifczzvl5h14c8yjqdq3q8g37hawqkbc6c25pcs8i40sagv7";
        libraryHaskellDepends = [
          base bytestring containers lens-family proto-lens QuickCheck text
        ];
@@ -243152,6 +243446,7 @@ self: {
        description = "Utilities functions to proto-lens";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "proto-lens-descriptors" = callPackage
@@ -243191,8 +243486,8 @@ self: {
     ({ mkDerivation, base, optparse-applicative, proto-lens, text }:
      mkDerivation {
        pname = "proto-lens-optparse";
-       version = "0.1.1.10";
-       sha256 = "0w79ybb5vk7l7c2z5n5b9m6sp56xgabikwpwn64l4x35ird167zh";
+       version = "0.1.1.11";
+       sha256 = "19iszwk1i8h9n7ryxmvf1rc102n6yn9d22rdnslw9s2vycb1645j";
        libraryHaskellDepends = [
          base optparse-applicative proto-lens text
        ];
@@ -243207,8 +243502,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-protobuf-types";
-       version = "0.7.1.2";
-       sha256 = "1fd141fb69wgc2alx4yyhyxdp9s86i3rxl9aah816b31bskbcjaa";
+       version = "0.7.2.0";
+       sha256 = "0500rwh5rmxyd49ah6nca5d7m9vbib9vmggyi1ybd0n36fcm7wzy";
        setupHaskellDepends = [ base Cabal proto-lens-setup ];
        libraryHaskellDepends = [
          base lens-family proto-lens proto-lens-runtime text
@@ -243216,7 +243511,6 @@ self: {
        libraryToolDepends = [ proto-lens-protoc protobuf ];
        description = "Basic protocol buffer message types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) protobuf;};
 
   "proto-lens-protoc" = callPackage
@@ -243226,8 +243520,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-protoc";
-       version = "0.7.1.1";
-       sha256 = "1wl081xckv0pg2h25gb4fyafw03fq5hrm6shc658k8z8pi3jnh8c";
+       version = "0.8.0.0";
+       sha256 = "09cx1q6p9phg2gk2hh4wb54cl1h1vn7z34h1n62bpixj87954flj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base filepath ];
@@ -243238,7 +243532,6 @@ self: {
        ];
        description = "Protocol buffer compiler for the proto-lens library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "proto-lens-protoc";
      }) {inherit (pkgs) protobuf;};
 
@@ -243248,8 +243541,8 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-runtime";
-       version = "0.7.0.4";
-       sha256 = "0ivzb19fxydn3i5inpjvnvj4ghfwiakhp0wqasp6pmbzv40wsjap";
+       version = "0.7.0.5";
+       sha256 = "17c0ip6s3sca23mwmzl2ky8b220iiaasqmbv19ixfq82hl9sjvl1";
        libraryHaskellDepends = [
          base bytestring containers deepseq filepath lens-family proto-lens
          text vector
@@ -243264,15 +243557,14 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-setup";
-       version = "0.4.0.6";
-       sha256 = "1jz1d83cbvr7k6igjmjg6z6yl49aci05v8g944whl1j3vkgh4sya";
+       version = "0.4.0.7";
+       sha256 = "0d3j1pxyj0sy65y3ydxc0s8dz5kl9qw2n83pkmy8zzxa171h8lgm";
        libraryHaskellDepends = [
          base bytestring Cabal containers deepseq directory filepath process
          proto-lens-protoc temporary text
        ];
        description = "Cabal support for codegen with proto-lens";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "proto3-suite" = callPackage
@@ -243572,6 +243864,24 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "protolude_0_3_4" = callPackage
+    ({ mkDerivation, array, async, base, bytestring, containers
+     , deepseq, ghc-prim, hashable, mtl, mtl-compat, stm, text
+     , transformers, transformers-compat
+     }:
+     mkDerivation {
+       pname = "protolude";
+       version = "0.3.4";
+       sha256 = "0lkh2m58fphnqdfk33fd4f24c6s3bnjq1qvhbmfy83a72a19jf7q";
+       libraryHaskellDepends = [
+         array async base bytestring containers deepseq ghc-prim hashable
+         mtl mtl-compat stm text transformers transformers-compat
+       ];
+       description = "A small prelude";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "protolude-lifted" = callPackage
     ({ mkDerivation, async, base, lifted-async, lifted-base, protolude
      }:
@@ -244057,8 +244367,8 @@ self: {
      }:
      mkDerivation {
        pname = "ptr";
-       version = "0.16.8.5";
-       sha256 = "1rpbvg74cvqdpbvnwn28jy0sb7l5hzf4bs371zyr0dwh0ls3xrg6";
+       version = "0.16.8.6";
+       sha256 = "19fahf7y1vavvnqr17zjy8clxq2ha9d08fkaydnk5khpc65j260s";
        libraryHaskellDepends = [
          base bytestring contravariant profunctors strict-list text time
          vector
@@ -244154,6 +244464,7 @@ self: {
        ];
        description = "Is a given string a domain suffix?";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "publicsuffixlistcreate" = callPackage
@@ -244452,6 +244763,8 @@ self: {
        ];
        description = "Encode unicode strings to ascii forms according to RFC 3492";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "puppetresources" = callPackage
@@ -244710,8 +245023,8 @@ self: {
      }:
      mkDerivation {
        pname = "purescript";
-       version = "0.15.13";
-       sha256 = "1br28bq8vagkpw7z49b36nzp5i82ibhjci3q1sakxxjaqp98wgnb";
+       version = "0.15.15";
+       sha256 = "0rqf4bfn11hf2b7k90h82mffqh6rmfz101i69v1ss2gz8zm26jlw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -245189,6 +245502,8 @@ self: {
        ];
        description = "A Haskell Pushover API library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "putlenses" = callPackage
@@ -245278,6 +245593,8 @@ self: {
        ];
        description = "Mutable variable with primitive values";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pvd" = callPackage
@@ -245458,16 +245775,18 @@ self: {
   "python-pickle" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, cereal, cmdargs
      , containers, directory, HUnit, mtl, process, test-framework
-     , test-framework-hunit
+     , test-framework-hunit, text
      }:
      mkDerivation {
        pname = "python-pickle";
-       version = "0.2.3";
-       sha256 = "11b86rysl86fa29zfzvz9ndgjx4zjwx4j07ad6cywhzmj847zpvp";
+       version = "0.3.0";
+       sha256 = "0p33yrx57vf1rf277s106chwskrzvlwzk6sxkjcyjn6mpmkd4d4c";
+       revision = "1";
+       editedCabalFile = "03hny14snqxaalsl2i3x0amcwsz0qwvas8myab6aiv56907x0zxv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         attoparsec base bytestring cereal containers mtl
+         attoparsec base bytestring cereal containers mtl text
        ];
        executableHaskellDepends = [ base bytestring cmdargs ];
        testHaskellDepends = [
@@ -245519,6 +245838,8 @@ self: {
        ];
        description = "Types and prettyprinter for the IL of the QBE compiler backend";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "qc-oi-testgenerator" = callPackage
@@ -246094,16 +246415,16 @@ self: {
      }) {};
 
   "quantification" = callPackage
-    ({ mkDerivation, aeson, base, binary, containers, hashable
-     , path-pieces, text, unordered-containers, vector
+    ({ mkDerivation, base, binary, containers, hashable, path-pieces
+     , text, unordered-containers
      }:
      mkDerivation {
        pname = "quantification";
-       version = "0.7.0.1";
-       sha256 = "0cd4qlj069ji5v9b2c594allmmy1qbin7dwlxq1ncz1g8lwd06bc";
+       version = "0.8";
+       sha256 = "1dw47hy0pvar4mkdp6xjz8ywpic2zs3q0xah9zlbnfpibhjjc1a9";
        libraryHaskellDepends = [
-         aeson base binary containers hashable path-pieces text
-         unordered-containers vector
+         base binary containers hashable path-pieces text
+         unordered-containers
        ];
        description = "Rage against the quantification";
        license = lib.licenses.bsd3;
@@ -246111,6 +246432,22 @@ self: {
        broken = true;
      }) {};
 
+  "quantification-aeson" = callPackage
+    ({ mkDerivation, aeson, base, containers, quantification
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "quantification-aeson";
+       version = "0.8";
+       sha256 = "014fgpj4ikcq2xz23k5l0y1zfzki0fqfj591czx0wm2sk75aml5z";
+       libraryHaskellDepends = [
+         aeson base containers quantification unordered-containers vector
+       ];
+       description = "Rage against the quantification - integration with Aeson";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "quantities" = callPackage
     ({ mkDerivation, base, containers, doctest, Glob, hlint, hspec, mtl
      , parsec, process, regex-compat
@@ -246419,7 +246756,9 @@ self: {
        testHaskellDepends = [ base bytestring tasty tasty-hunit ];
        description = "queue sheet utility";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "queue-sheet";
+       broken = true;
      }) {};
 
   "queuelike" = callPackage
@@ -246466,8 +246805,8 @@ self: {
      }:
      mkDerivation {
        pname = "quic";
-       version = "0.1.13";
-       sha256 = "04ncav3c5jjakasvlr8r45zgwfbb9dmikx4945afxsm0iaqryxqd";
+       version = "0.1.15";
+       sha256 = "0axbpn12xgza3rhgr72kzajvw6rjykxvl6ikl7v6qc5vfhq9lw5c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -246701,30 +247040,8 @@ self: {
      }:
      mkDerivation {
        pname = "quickcheck-groups";
-       version = "0.0.0.0";
-       sha256 = "0ranwc1p7ps4f1ivbaxz18h98f3jh29hfw94zi11a27zqdyfscbg";
-       libraryHaskellDepends = [
-         base groups pretty-show QuickCheck quickcheck-classes
-         quickcheck-instances semigroupoids
-       ];
-       testHaskellDepends = [
-         base groups hspec QuickCheck quickcheck-classes
-       ];
-       testToolDepends = [ hspec-discover ];
-       doHaddock = false;
-       description = "Testing group class instances with QuickCheck";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "quickcheck-groups_0_0_1_0" = callPackage
-    ({ mkDerivation, base, groups, hspec, hspec-discover, pretty-show
-     , QuickCheck, quickcheck-classes, quickcheck-instances
-     , semigroupoids
-     }:
-     mkDerivation {
-       pname = "quickcheck-groups";
-       version = "0.0.1.0";
-       sha256 = "0rjnz1n2qy7aqsc30jkvk5w36zgalnwsnwhr254b96x8s0ckb8sw";
+       version = "0.0.1.1";
+       sha256 = "0da5x8hdfm5v1ab8zx11nvxc54jcmrv8gpf02vd0w2c95lgazvqi";
        libraryHaskellDepends = [
          base groups pretty-show QuickCheck quickcheck-classes
          quickcheck-instances semigroupoids
@@ -246736,7 +247053,6 @@ self: {
        doHaddock = false;
        description = "Testing group class instances with QuickCheck";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "quickcheck-higherorder" = callPackage
@@ -246821,33 +247137,8 @@ self: {
      }:
      mkDerivation {
        pname = "quickcheck-monoid-subclasses";
-       version = "0.1.0.0";
-       sha256 = "19q4h9s1m72vd0yrk7a9ikjik17hcrcnpgy461zw2zkijg68a0sm";
-       libraryHaskellDepends = [
-         base containers monoid-subclasses pretty-show QuickCheck
-         quickcheck-classes quickcheck-instances semigroupoids
-       ];
-       testHaskellDepends = [
-         base bytestring commutative-semigroups containers hspec
-         monoid-subclasses QuickCheck quickcheck-classes
-         quickcheck-instances text vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       doHaddock = false;
-       description = "Testing monoid subclass instances with QuickCheck";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "quickcheck-monoid-subclasses_0_3_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, commutative-semigroups
-     , containers, hspec, hspec-discover, monoid-subclasses, pretty-show
-     , QuickCheck, quickcheck-classes, quickcheck-instances
-     , semigroupoids, text, vector
-     }:
-     mkDerivation {
-       pname = "quickcheck-monoid-subclasses";
-       version = "0.3.0.0";
-       sha256 = "1x6csqnss4481ydknjljfwyvnhha6ilspvzazj98hdds552hpkl9";
+       version = "0.3.0.1";
+       sha256 = "0fi2ixgd4cpc5q6ybbmgbf14dszpr3454bbwpzr74rnalj5qj7ym";
        libraryHaskellDepends = [
          base containers monoid-subclasses pretty-show QuickCheck
          quickcheck-classes quickcheck-instances semigroupoids
@@ -246861,7 +247152,6 @@ self: {
        doHaddock = false;
        description = "Testing monoid subclass instances with QuickCheck";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "quickcheck-poly" = callPackage
@@ -246925,8 +247215,8 @@ self: {
      }:
      mkDerivation {
        pname = "quickcheck-quid";
-       version = "0.0.1";
-       sha256 = "02d9lak5pdss17x0nvxdj7r81vllgd599brkh87h2zmjp6fajprs";
+       version = "0.0.1.1";
+       sha256 = "1nqc5ggm50pw7vzjxdc8kv3iz40lpkisrs35jmzx892b4iy361dz";
        libraryHaskellDepends = [
          base containers deepseq extra hashable QuickCheck text
        ];
@@ -247042,44 +247332,6 @@ self: {
      }) {};
 
   "quickcheck-state-machine" = callPackage
-    ({ mkDerivation, aeson, ansi-wl-pprint, array, base, bifunctors
-     , bytestring, containers, directory, doctest, exceptions, filelock
-     , filepath, generic-data, graphviz, hashable, hashtables, hs-rqlite
-     , http-client, markov-chain-usage-model, matrix, monad-logger, mtl
-     , network, persistent, persistent-postgresql, persistent-sqlite
-     , persistent-template, postgresql-simple, pretty-show, process
-     , QuickCheck, quickcheck-instances, random, resource-pool
-     , resourcet, servant, servant-client, servant-server, sop-core
-     , split, stm, strict, string-conversions, tasty, tasty-hunit
-     , tasty-quickcheck, text, time, tree-diff, unliftio, unliftio-core
-     , vector, wai, warp
-     }:
-     mkDerivation {
-       pname = "quickcheck-state-machine";
-       version = "0.7.3";
-       sha256 = "1x3bdi4xyvxl8mfxzkqa7v4aqmr1mjk5hg2wh9c5jdaysqj9400h";
-       libraryHaskellDepends = [
-         ansi-wl-pprint base containers directory exceptions filepath
-         generic-data graphviz markov-chain-usage-model matrix mtl
-         pretty-show process QuickCheck random sop-core split text time
-         tree-diff unliftio
-       ];
-       testHaskellDepends = [
-         aeson array base bifunctors bytestring containers directory doctest
-         filelock filepath hashable hashtables hs-rqlite http-client
-         monad-logger mtl network persistent persistent-postgresql
-         persistent-sqlite persistent-template postgresql-simple pretty-show
-         process QuickCheck quickcheck-instances random resource-pool
-         resourcet servant servant-client servant-server split stm strict
-         string-conversions tasty tasty-hunit tasty-quickcheck text
-         tree-diff unliftio unliftio-core vector wai warp
-       ];
-       description = "Test monadic programs using state machine based models";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
-  "quickcheck-state-machine_0_8_0" = callPackage
     ({ mkDerivation, aeson, ansi-wl-pprint, array, base, base-compat
      , bifunctors, bytestring, containers, directory, doctest
      , exceptions, filelock, filepath, generic-data, generics-sop
@@ -247115,6 +247367,46 @@ self: {
        description = "Test monadic programs using state machine based models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "quickcheck-state-machine_0_9_0" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, array, base, base-compat
+     , bifunctors, bytestring, containers, directory, doctest
+     , exceptions, filelock, filepath, generics-sop, graphviz, hashable
+     , hashtables, http-client, MemoTrie, monad-logger, mtl, network
+     , persistent, persistent-postgresql, persistent-sqlite
+     , postgresql-simple, pretty, pretty-show, process, QuickCheck
+     , quickcheck-instances, random, resource-pool, resourcet
+     , servant-client, servant-server, sop-core, split, stm, strict
+     , string-conversions, tasty, tasty-hunit, tasty-quickcheck, text
+     , time, unliftio, unliftio-core, vector, warp
+     }:
+     mkDerivation {
+       pname = "quickcheck-state-machine";
+       version = "0.9.0";
+       sha256 = "1b0zsnrr57wymc203rnmidyy5czvcfip5x9jn8vk3m581yl2ljfs";
+       libraryHaskellDepends = [
+         ansi-wl-pprint base base-compat bytestring containers directory
+         exceptions filepath generics-sop graphviz MemoTrie mtl pretty
+         pretty-show QuickCheck random sop-core split text time unliftio
+         vector
+       ];
+       testHaskellDepends = [
+         array base bifunctors bytestring containers directory doctest
+         filelock filepath hashable hashtables http-client monad-logger mtl
+         network persistent persistent-postgresql persistent-sqlite
+         postgresql-simple pretty-show process QuickCheck
+         quickcheck-instances random resource-pool resourcet servant-client
+         servant-server split stm strict string-conversions tasty
+         tasty-hunit tasty-quickcheck text unliftio unliftio-core vector
+         warp
+       ];
+       doHaddock = false;
+       description = "Test monadic programs using state machine based models";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "quickcheck-state-machine-distributed" = callPackage
@@ -247931,8 +248223,8 @@ self: {
      }:
      mkDerivation {
        pname = "raaz";
-       version = "0.3.8";
-       sha256 = "1l4lxha5c73855h19wpjk5l3vkkqz63rr4iicwilil92r4wrav51";
+       version = "0.3.9";
+       sha256 = "11xacqd1xcbpb34h04ch7zz1bsal90zk4h6fvgqb7a8fj094ci2v";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -248539,6 +248831,29 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "random_1_2_1_2" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, doctest
+     , mtl, primitive, rdtsc, smallcheck, split, splitmix, stm, tasty
+     , tasty-bench, tasty-hunit, tasty-inspection-testing
+     , tasty-smallcheck, time, transformers
+     }:
+     mkDerivation {
+       pname = "random";
+       version = "1.2.1.2";
+       sha256 = "1d54v51dzdc4izv3aycjbvaj7lcz74avzixayqzlaz1jsb14s3vr";
+       libraryHaskellDepends = [ base bytestring deepseq mtl splitmix ];
+       testHaskellDepends = [
+         base bytestring containers doctest smallcheck stm tasty tasty-hunit
+         tasty-inspection-testing tasty-smallcheck transformers
+       ];
+       benchmarkHaskellDepends = [
+         base mtl primitive rdtsc split splitmix tasty-bench time
+       ];
+       description = "Pseudo-random number generation";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "random-access-file" = callPackage
     ({ mkDerivation, base, bytestring, concurrent-extra, containers
      , criterion, directory, lrucaching, mwc-random, random, stm, unix
@@ -248709,6 +249024,8 @@ self: {
        testHaskellDepends = [ base ];
        description = "Multivariate distributions for random-fu";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "random-hypergeometric" = callPackage
@@ -249075,8 +249392,8 @@ self: {
     ({ mkDerivation, async, base, containers, foreign-store, stm }:
      mkDerivation {
        pname = "rapid";
-       version = "0.1.5";
-       sha256 = "13nd69rjw0xdxvcqwgs9vzq93l0yiha9zqaw5is6mw20vks6akw5";
+       version = "0.1.5.3";
+       sha256 = "14lgl1jfykb8i98pnv0p21cqpkzbnh60ylfb8npdwj703dmqbbxh";
        libraryHaskellDepends = [
          async base containers foreign-store stm
        ];
@@ -249377,8 +249694,8 @@ self: {
      }:
      mkDerivation {
        pname = "ratel";
-       version = "2.0.0.10";
-       sha256 = "1vvz9ia5p7phkwryjfwrzfzvrb94r127vy56qkgikwc9jxxdlxlj";
+       version = "2.0.0.11";
+       sha256 = "1v396lxy4xm5ydsxd7c0hpzglysarzp4s872pdiygbfyz0hayhbg";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive containers http-client
          http-client-tls http-types uuid
@@ -249397,8 +249714,8 @@ self: {
      }:
      mkDerivation {
        pname = "ratel-wai";
-       version = "2.0.0.5";
-       sha256 = "1y2rcp1birh1akw98zw10qwjwi5wf7qknk7j5xwwjws7hpmmgy2y";
+       version = "2.0.0.6";
+       sha256 = "01i4k821s10216flhcbcvv7jb1rzn6cqacj10j578l4761h0acz6";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers http-client ratel wai
        ];
@@ -249535,31 +249852,8 @@ self: {
      }:
      mkDerivation {
        pname = "rattletrap";
-       version = "12.0.3";
-       sha256 = "11hfw1w59cidv253r0vby8qm7wmqcyram3rp03348zfyaajgcdnl";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson aeson-pretty array base bytestring containers filepath
-         http-client http-client-tls text
-       ];
-       executableHaskellDepends = [ base ];
-       testHaskellDepends = [ base bytestring filepath ];
-       description = "Parse and generate Rocket League replays";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       mainProgram = "rattletrap";
-       broken = true;
-     }) {};
-
-  "rattletrap_12_1_2" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, array, base, bytestring
-     , containers, filepath, http-client, http-client-tls, text
-     }:
-     mkDerivation {
-       pname = "rattletrap";
-       version = "12.1.2";
-       sha256 = "0lysr7birh4z8zimn5whqpaxipfsnn6sqppcn5l72sqjq6rdhk3c";
+       version = "12.1.3";
+       sha256 = "13v3jm84fycra1f3wncig69zs6bmqir077c2hd4j1dmzvfg9j1yn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -249651,27 +249945,12 @@ self: {
     ({ mkDerivation, base, bytestring, unix }:
      mkDerivation {
        pname = "rawfilepath";
-       version = "1.0.1";
-       sha256 = "016bdivq8b3visv56jriw39ld5yg6c75x1qy69sm7am27i9728g3";
-       revision = "1";
-       editedCabalFile = "00s2ri39y7amravnlbkbrx41chwbiryw1k8s0svim6ay43r4b0yp";
-       libraryHaskellDepends = [ base bytestring unix ];
-       testHaskellDepends = [ base bytestring ];
-       description = "Use RawFilePath instead of FilePath";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "rawfilepath_1_1_0" = callPackage
-    ({ mkDerivation, base, bytestring, unix }:
-     mkDerivation {
-       pname = "rawfilepath";
        version = "1.1.0";
        sha256 = "08jaqppvfqgpbv3h89rk63a6h8pby6hgvyskkfsjhnb66ai93lrp";
        libraryHaskellDepends = [ base bytestring unix ];
        testHaskellDepends = [ base bytestring ];
        description = "Use RawFilePath instead of FilePath";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "rawr" = callPackage
@@ -249887,8 +250166,8 @@ self: {
      }:
      mkDerivation {
        pname = "rdf";
-       version = "0.1.0.7";
-       sha256 = "1mzrmn4naqw0c9y9h2xqf9kqnzfqj870a1d92iw2cjhzpx0cky3g";
+       version = "0.1.0.8";
+       sha256 = "0cpffq2lklq54sk306wr0vn93b85s77adj8sh8i75rq8ykhbzvg9";
        libraryHaskellDepends = [
          attoparsec base bytestring deepseq dlist fgl text transformers
        ];
@@ -250160,8 +250439,8 @@ self: {
        pname = "reactive-banana";
        version = "1.3.2.0";
        sha256 = "0mrsw3hkl0sgwcbay4m1lzs4bilss80g9p6njbbhapbfjyzsr36k";
-       revision = "2";
-       editedCabalFile = "0kynywzvkxwcmmfaxq1fdacsi53ml4gf17rb7ibwvc29wngbbbp3";
+       revision = "3";
+       editedCabalFile = "0gwky9jadzy025w1d4r3k1kf8g1i4y0v15j8di14402gzpin9n4j";
        libraryHaskellDepends = [
          base containers deepseq hashable pqueue semigroups stm these
          transformers unordered-containers vault
@@ -250285,6 +250564,8 @@ self: {
        pname = "reactive-banana-wx";
        version = "1.1.1.0";
        sha256 = "1yzymc6qpjj8d0fal09vxy2yicbrgrg42khylbbsrzmdgqfnf3kr";
+       revision = "1";
+       editedCabalFile = "02px6q0slpyr2rdk8qm1mw1gfbyfd2fr9s0xip4a0863j7hjmgff";
        configureFlags = [ "-f-buildexamples" ];
        isLibrary = true;
        isExecutable = true;
@@ -250555,8 +250836,8 @@ self: {
        pname = "readable";
        version = "0.3.1";
        sha256 = "1ja39cg26wy2fs00gi12x7iq5k8i366pbqi3p916skfa5jnkfc3h";
-       revision = "1";
-       editedCabalFile = "0dywlvxjszqa1dj5r1cva0viv2l1hm8mw75zddnf96pfpd00fmga";
+       revision = "2";
+       editedCabalFile = "1190pzpd10r8d59h7ks1yahnpj8h8hal2i7y6mx488bwc9iixdqk";
        libraryHaskellDepends = [ base bytestring text ];
        description = "Reading from Text and ByteString";
        license = lib.licenses.bsd3;
@@ -250865,27 +251146,6 @@ self: {
      }:
      mkDerivation {
        pname = "rebase";
-       version = "1.19";
-       sha256 = "02yvxdvjwb3dlwwb85i0sbadfjqxyv86pxkzylxidpw5qxb2g0ji";
-       libraryHaskellDepends = [
-         base bifunctors bytestring comonad containers contravariant deepseq
-         dlist either groups hashable invariant mtl profunctors scientific
-         selective semigroupoids stm text time time-compat transformers
-         unordered-containers uuid-types vector vector-instances void
-       ];
-       description = "A more progressive alternative to the \"base\" package";
-       license = lib.licenses.mit;
-     }) {};
-
-  "rebase_1_20_2" = callPackage
-    ({ mkDerivation, base, bifunctors, bytestring, comonad, containers
-     , contravariant, deepseq, dlist, either, groups, hashable
-     , invariant, mtl, profunctors, scientific, selective, semigroupoids
-     , stm, text, time, time-compat, transformers, unordered-containers
-     , uuid-types, vector, vector-instances, void
-     }:
-     mkDerivation {
-       pname = "rebase";
        version = "1.20.2";
        sha256 = "14mvgg50yy5msmqv7p8kgx5dvj27dsxpzncmgzx5237kj6l9f4h0";
        libraryHaskellDepends = [
@@ -250896,7 +251156,6 @@ self: {
        ];
        description = "A more progressive alternative to the \"base\" package";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "rebindable" = callPackage
@@ -251010,8 +251269,8 @@ self: {
      }:
      mkDerivation {
        pname = "record-dot-preprocessor";
-       version = "0.2.16";
-       sha256 = "100s5gkpgpcbi5397bbcp10jw1n5i9aniqc8bzk632ihlrip21ic";
+       version = "0.2.17";
+       sha256 = "0kfz3l9769b5wi3m4ca08inggkdfj2wypksp6a5m26lm4aay4566";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base extra ghc uniplate ];
@@ -251068,8 +251327,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "record-hasfield";
-       version = "1.0";
-       sha256 = "1jlyhj4nlj4hrypdcv7393nccjmfjnh1311incgqhm5wzigjygaj";
+       version = "1.0.1";
+       sha256 = "17pd8s2r9wnrwmi37b0z9a7006zsx5m6ki24b1pcf6jnqc0bqghs";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "A version of GHC.Records as available in future GHCs.";
@@ -251310,7 +251569,9 @@ self: {
        ];
        description = "Count lines in files and display them hierarchically";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "recursive-line-count";
+       broken = true;
      }) {};
 
   "recursive-zipper" = callPackage
@@ -251416,8 +251677,8 @@ self: {
        pname = "redact";
        version = "0.5.0.0";
        sha256 = "0f9nfkli9spbcidfwq81z4ryjnlyqf4snj1dmhsngpcp0x2am798";
-       revision = "2";
-       editedCabalFile = "16lxlg7wpf7hbvylsfkkxqamhm6k7jf4cfiz7iv78x7s4a6akr1a";
+       revision = "3";
+       editedCabalFile = "05rf8wvc27fw9j8j75yx55v17vnwyr1gmqw5rqd1ph1zrqwykj2l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ ansi-terminal base text ];
@@ -251508,8 +251769,8 @@ self: {
      }:
      mkDerivation {
        pname = "redis-glob";
-       version = "0.1.0.6";
-       sha256 = "1kz4klvp84my3z6zpsrvn8kwna1dhix51v40zjf1cxvg81mvya5k";
+       version = "0.1.0.7";
+       sha256 = "08sqgp6jnxwjybi0hza0inhm9nsc1d8fpg9wh86r2hvssmxpn1nb";
        libraryHaskellDepends = [ ascii-char base bytestring megaparsec ];
        testHaskellDepends = [
          ascii-char ascii-superset base bytestring hspec QuickCheck
@@ -251934,6 +252195,24 @@ self: {
        maintainers = [ lib.maintainers.raehik ];
      }) {};
 
+  "refined-containers" = callPackage
+    ({ mkDerivation, adjunctions, base, constraints, containers
+     , deepseq, distributive, hashable, indexed-traversable, mtl
+     , refined, reflection, unordered-containers
+     }:
+     mkDerivation {
+       pname = "refined-containers";
+       version = "0.1.0.1";
+       sha256 = "0jyk71ccwy489cyikg4a9pvdj8hijyqpkw1sj5qhj0anrsc6bq8x";
+       libraryHaskellDepends = [
+         adjunctions base constraints containers deepseq distributive
+         hashable indexed-traversable mtl refined reflection
+         unordered-containers
+       ];
+       description = "Type-checked proof that a key exists in a container and can be safely indexed";
+       license = lib.licenses.mit;
+     }) {};
+
   "refined-http-api-data" = callPackage
     ({ mkDerivation, base, http-api-data, refined, text }:
      mkDerivation {
@@ -251993,6 +252272,8 @@ self: {
        ];
        description = "Toolkit for building proof automation systems";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "reflection" = callPackage
@@ -252043,19 +252324,19 @@ self: {
   "reflex" = callPackage
     ({ mkDerivation, base, bifunctors, commutative-semigroups, comonad
      , constraints, constraints-extras, containers, criterion
-     , data-default, deepseq, dependent-map, dependent-sum, directory
-     , exception-transformers, exceptions, filemanip, filepath
-     , haskell-src-exts, haskell-src-meta, hlint, hspec, lens, loch-th
-     , MemoTrie, mmorph, monad-control, monoidal-containers, mtl, patch
-     , prim-uniq, primitive, process, proctest, profunctors, random
-     , ref-tf, reflection, semialign, semigroupoids, split, stm, syb
+     , data-default, deepseq, dependent-map, dependent-sum
+     , exception-transformers, exceptions, haskell-src-exts
+     , haskell-src-meta, hspec, lens, loch-th, MemoTrie, mmorph
+     , monad-control, monoidal-containers, mtl, patch, prim-uniq
+     , primitive, process, proctest, profunctors, random, ref-tf
+     , reflection, semialign, semigroupoids, split, stm, syb
      , template-haskell, text, these, these-lens, time, transformers
      , unbounded-delays, witherable
      }:
      mkDerivation {
        pname = "reflex";
-       version = "0.9.2.0";
-       sha256 = "009i2f4j4jhzk58z57rbbrpq9s4x4zsb4zd6y3yy7rhr97374ps3";
+       version = "0.9.3.0";
+       sha256 = "1hhh3ca0pcrnrzbn83vb7wzp6iq45vabzgchwh6b6b0mr3ckqrlk";
        libraryHaskellDepends = [
          base bifunctors commutative-semigroups comonad constraints
          constraints-extras containers data-default dependent-map
@@ -252069,9 +252350,8 @@ self: {
        testHaskellDepends = [
          base bifunctors commutative-semigroups constraints
          constraints-extras containers deepseq dependent-map dependent-sum
-         directory filemanip filepath hlint hspec lens monoidal-containers
-         mtl patch proctest ref-tf semialign split text these these-lens
-         transformers witherable
+         hspec lens monoidal-containers mtl patch proctest ref-tf semialign
+         split text these these-lens transformers witherable
        ];
        benchmarkHaskellDepends = [
          base containers criterion deepseq dependent-map dependent-sum
@@ -252171,27 +252451,6 @@ self: {
      }:
      mkDerivation {
        pname = "reflex-dom";
-       version = "0.6.1.1";
-       sha256 = "0ykkzmzxiznd09sgmjwzmbrpnm8gr2bd57hzdl8avrr728bwj8ga";
-       revision = "2";
-       editedCabalFile = "0jcsl5miv1wz385kln4ap079sp54dcnc37f3kb93m5a52dwbjx4p";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base bytestring jsaddle-webkit2gtk reflex reflex-dom-core text
-       ];
-       description = "Functional Reactive Web Apps with Reflex";
-       license = lib.licenses.bsd3;
-       badPlatforms = lib.platforms.darwin;
-       maintainers = [ lib.maintainers.maralorn ];
-     }) {};
-
-  "reflex-dom_0_6_3_1" = callPackage
-    ({ mkDerivation, base, bytestring, jsaddle-webkit2gtk, reflex
-     , reflex-dom-core, text
-     }:
-     mkDerivation {
-       pname = "reflex-dom";
        version = "0.6.3.1";
        sha256 = "162nnk5vk115p06mlf0d3bsr295814jk6d61hi58k97axgrlb6sn";
        revision = "1";
@@ -252204,7 +252463,6 @@ self: {
        description = "Functional Reactive Web Apps with Reflex";
        license = lib.licenses.bsd3;
        badPlatforms = lib.platforms.darwin;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
@@ -252543,7 +252801,6 @@ self: {
        ];
        description = "A GHCi widget library for use in reflex applications";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "reflex-ghci";
      }) {};
 
@@ -252572,9 +252829,7 @@ self: {
        ];
        description = "Helper functions to use reflex with gi-gtk";
        license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "reflex-gi-gtk-example";
-       broken = true;
      }) {};
 
   "reflex-gloss" = callPackage
@@ -252755,12 +253010,12 @@ self: {
      }:
      mkDerivation {
        pname = "reflex-process";
-       version = "0.3.2.1";
-       sha256 = "039zzj9f4fli8kbrdgjd27fjkj6f0h74b4r6pfbzz3y9njgw4vz1";
+       version = "0.3.3.1";
+       sha256 = "1f7lfhhf3c64p3mnixibp5yfwd35k9igdlfayv7qjr13pa5a94x4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async base bytestring data-default process reflex unix
+         async base bytestring containers data-default process reflex unix
        ];
        executableHaskellDepends = [
          base containers data-default process reflex reflex-vty text vty
@@ -252771,7 +253026,6 @@ self: {
        ];
        description = "Reflex FRP interface for running system processes";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "readme";
      }) {};
 
@@ -252840,18 +253094,19 @@ self: {
     ({ mkDerivation, base, bimap, containers, data-default
      , dependent-map, dependent-sum, exception-transformers, exceptions
      , extra, hspec, mmorph, mtl, ordered-containers, primitive, ref-tf
-     , reflex, stm, text, time, transformers, vty
+     , reflex, stm, text, time, transformers, vty, vty-crossplatform
      }:
      mkDerivation {
        pname = "reflex-vty";
-       version = "0.5.1.0";
-       sha256 = "0icq92xgk720k4q3qm6ib1p8xj1kqcxd64j3zsva23np9pql4sh1";
+       version = "0.5.2.0";
+       sha256 = "0aszgik0iir6f0n9zzak7w8s7cpc6sh77f5nbkgdyqswscnsfacq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bimap containers data-default dependent-map dependent-sum
          exception-transformers exceptions mmorph mtl ordered-containers
          primitive ref-tf reflex stm text time transformers vty
+         vty-crossplatform
        ];
        executableHaskellDepends = [
          base containers reflex text time transformers vty
@@ -252859,9 +253114,7 @@ self: {
        testHaskellDepends = [ base containers extra hspec reflex text ];
        description = "Reflex FRP host and widgets for VTY applications";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "example";
-       broken = true;
      }) {};
 
   "reform" = callPackage
@@ -252873,6 +253126,8 @@ self: {
        libraryHaskellDepends = [ base containers mtl semigroups text ];
        description = "reform is a type-safe HTML form generation and validation library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "reform-blaze" = callPackage
@@ -252886,6 +253141,7 @@ self: {
        ];
        description = "Add support for using blaze-html with Reform";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "reform-hamlet" = callPackage
@@ -252916,6 +253172,7 @@ self: {
        ];
        description = "Happstack support for reform";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "reform-hsp" = callPackage
@@ -253146,6 +253403,8 @@ self: {
        libraryHaskellDepends = [ base regex-applicative text ];
        description = "regex-applicative on text";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "regex-base" = callPackage
@@ -253753,6 +254012,8 @@ self: {
        libraryHaskellDepends = [ base HUnit mtl mtlparse ];
        description = "regular expression like Perl/Ruby in Haskell";
        license = "LGPL";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "regexpr-symbolic" = callPackage
@@ -254241,6 +254502,7 @@ self: {
        ];
        description = "Hey! Hey! Can u rel8?";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
@@ -254870,8 +255132,8 @@ self: {
     ({ mkDerivation, base, hspec, hspec-discover, optics, parsec }:
      mkDerivation {
        pname = "reorder-expression";
-       version = "0.1.0.0";
-       sha256 = "01d83j3mq2gz6maqbkzpjrz6ppyhsqrj4rj72xw49fkl2w34pa9f";
+       version = "0.1.0.1";
+       sha256 = "1jb7222r6mv9lvjfihbj96aj6vw3vqjsr283d4shv8qw3ghiqpl2";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec optics parsec ];
        testToolDepends = [ hspec-discover ];
@@ -254913,8 +255175,6 @@ self: {
        ];
        description = "High performance, regular, shape polymorphic parallel arrays";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "repa-algorithms" = callPackage
@@ -254926,7 +255186,6 @@ self: {
        libraryHaskellDepends = [ base repa vector ];
        description = "Algorithms using the Repa array library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "repa-array" = callPackage
@@ -254958,6 +255217,7 @@ self: {
        description = "(deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "repa-convert" = callPackage
@@ -254987,6 +255247,7 @@ self: {
        description = "Support for image reading and writing of Repa arrays using in-place FFI calls";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) libdevil;};
 
   "repa-eval" = callPackage
@@ -255021,6 +255282,7 @@ self: {
        description = "Examples using the Repa array library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "repa-fftw" = callPackage
@@ -255041,7 +255303,6 @@ self: {
        ];
        description = "Perform fft with repa via FFTW";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "repa-flow" = callPackage
@@ -255076,7 +255337,6 @@ self: {
        ];
        description = "Read and write Repa arrays in various formats";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "repa-linear-algebra" = callPackage
@@ -255089,6 +255349,7 @@ self: {
        description = "HMatrix operations for Repa";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "repa-plugin" = callPackage
@@ -255156,7 +255417,6 @@ self: {
        ];
        description = "Reading and writing sound files with repa arrays";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "repa-stream" = callPackage
@@ -255470,40 +255730,6 @@ self: {
 
   "req" = callPackage
     ({ mkDerivation, aeson, authenticate-oauth, base, blaze-builder
-     , bytestring, case-insensitive, connection, containers, exceptions
-     , hspec, hspec-core, hspec-discover, http-api-data, http-client
-     , http-client-tls, http-types, modern-uri, monad-control, mtl
-     , QuickCheck, retry, template-haskell, text, time, transformers
-     , transformers-base, unliftio-core
-     }:
-     mkDerivation {
-       pname = "req";
-       version = "3.13.0";
-       sha256 = "1igs75bj57vs1fwpxj1765l6zkqd4r3p2gbwp6cv2l37drfxjck4";
-       revision = "1";
-       editedCabalFile = "0izg1pj2jbpdlg9i9g30i5h4rcshkawh5zdhlkq1n9xfgc6jqv2v";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson authenticate-oauth base blaze-builder bytestring
-         case-insensitive connection containers exceptions http-api-data
-         http-client http-client-tls http-types modern-uri monad-control mtl
-         retry template-haskell text time transformers transformers-base
-         unliftio-core
-       ];
-       testHaskellDepends = [
-         aeson base blaze-builder bytestring case-insensitive hspec
-         hspec-core http-api-data http-client http-types modern-uri
-         monad-control mtl QuickCheck retry template-haskell text time
-       ];
-       testToolDepends = [ hspec-discover ];
-       doCheck = false;
-       description = "HTTP client library";
-       license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.maralorn ];
-     }) {};
-
-  "req_3_13_1" = callPackage
-    ({ mkDerivation, aeson, authenticate-oauth, base, blaze-builder
      , bytestring, case-insensitive, containers, crypton-connection
      , exceptions, hspec, hspec-core, hspec-discover, http-api-data
      , http-client, http-client-tls, http-types, modern-uri
@@ -255512,10 +255738,8 @@ self: {
      }:
      mkDerivation {
        pname = "req";
-       version = "3.13.1";
-       sha256 = "0cprbfjvzh4fhn1vqyisqcqk236zdn765k6g7a8ssqgkiqaw8i8h";
-       revision = "3";
-       editedCabalFile = "0dib8rwavjrp2bsv3pl3bgblqdfvky53k7qnv7ca4sq8070aqffp";
+       version = "3.13.2";
+       sha256 = "1pmhfn4rq4n5r2jmml8bj287iaipfl576s0csl4yaf31j0ll1gjv";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson authenticate-oauth base blaze-builder bytestring
@@ -255527,37 +255751,32 @@ self: {
        testHaskellDepends = [
          aeson base blaze-builder bytestring case-insensitive hspec
          hspec-core http-api-data http-client http-types modern-uri
-         monad-control mtl QuickCheck retry template-haskell text time
+         QuickCheck retry template-haskell text time
        ];
        testToolDepends = [ hspec-discover ];
        doCheck = false;
        description = "HTTP client library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "req-conduit" = callPackage
     ({ mkDerivation, base, bytestring, conduit, conduit-extra, hspec
-     , hspec-discover, http-client, req, resourcet, temporary
-     , transformers, weigh
+     , hspec-discover, http-client, req, temporary, weigh
      }:
      mkDerivation {
        pname = "req-conduit";
-       version = "1.0.1";
-       sha256 = "0zyy9j6iiz8z2jdx25vp77arfbmrck7bjndm3p4s9l9399c5bm62";
-       revision = "2";
-       editedCabalFile = "1p2sww990zrjazhkdapg92cnlcsqlzc5lm6qkswlnzlkagmsjj2x";
+       version = "1.0.2";
+       sha256 = "1g6zvwqrnrz161ixjcgklwvzrvb33fhh0x3w8vx7lyb4rvhmx99z";
        libraryHaskellDepends = [
-         base bytestring conduit http-client req resourcet transformers
+         base bytestring conduit http-client req
        ];
        testHaskellDepends = [
-         base bytestring conduit conduit-extra hspec req resourcet temporary
-         transformers
+         base bytestring conduit conduit-extra hspec req temporary
        ];
        testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
-         base bytestring conduit conduit-extra req resourcet temporary weigh
+         base bytestring conduit conduit-extra req temporary weigh
        ];
        description = "Conduit helpers for the req HTTP client library";
        license = lib.licenses.bsd3;
@@ -255705,6 +255924,8 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Abstraction to manage user defined Type Errors";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "rere" = callPackage
@@ -255735,23 +255956,11 @@ self: {
     ({ mkDerivation, rebase }:
      mkDerivation {
        pname = "rerebase";
-       version = "1.19";
-       sha256 = "0lb84apgwxswx4y1k3n9l335qzzby96mcpsjlzfw116b3ayd3123";
-       libraryHaskellDepends = [ rebase ];
-       description = "Reexports from \"base\" with a bunch of other standard libraries";
-       license = lib.licenses.mit;
-     }) {};
-
-  "rerebase_1_20_2" = callPackage
-    ({ mkDerivation, rebase }:
-     mkDerivation {
-       pname = "rerebase";
        version = "1.20.2";
        sha256 = "0c6ba9cvs2bq9yswys7xl6vl03bn3fm7b5iar5wpqd0aii2qqnps";
        libraryHaskellDepends = [ rebase ];
        description = "Reexports from \"base\" with a bunch of other standard libraries";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "reroute" = callPackage
@@ -255987,6 +256196,8 @@ self: {
        libraryHaskellDepends = [ base effectful-core stm ];
        description = "A region-based resource effect for the effectful ecosystem";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "resource-embed" = callPackage
@@ -256030,6 +256241,7 @@ self: {
        ];
        description = "Fork of resource-pool, with a MonadCatchIO constraint";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "resource-pool-fork-avanov" = callPackage
@@ -256088,22 +256300,6 @@ self: {
      }:
      mkDerivation {
        pname = "resourcet";
-       version = "1.2.6";
-       sha256 = "0d7xnpysrick56gxzkkj0mpblywbxaaldhziyl77am3822r3afzq";
-       libraryHaskellDepends = [
-         base containers exceptions mtl primitive transformers unliftio-core
-       ];
-       testHaskellDepends = [ base exceptions hspec transformers ];
-       description = "Deterministic allocation and freeing of scarce resources";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "resourcet_1_3_0" = callPackage
-    ({ mkDerivation, base, containers, exceptions, hspec, mtl
-     , primitive, transformers, unliftio-core
-     }:
-     mkDerivation {
-       pname = "resourcet";
        version = "1.3.0";
        sha256 = "0swrz7h73m86x3937gdiay3z30y9hn35n86v5brh38j2xs2ifq7c";
        libraryHaskellDepends = [
@@ -256112,7 +256308,6 @@ self: {
        testHaskellDepends = [ base exceptions hspec transformers ];
        description = "Deterministic allocation and freeing of scarce resources";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "resourcet-effectful" = callPackage
@@ -256127,13 +256322,15 @@ self: {
      }) {};
 
   "resourcet-extra" = callPackage
-    ({ mkDerivation, base, containers, resourcet, safe-exceptions }:
+    ({ mkDerivation, async, base, containers, resourcet
+     , safe-exceptions, unliftio-core
+     }:
      mkDerivation {
        pname = "resourcet-extra";
-       version = "0.0.1";
-       sha256 = "09kgzdg3g1lsadgrqaj9dviwap8j3zv2rm1yby9ywxx6zdbglrrw";
+       version = "0.1.0";
+       sha256 = "1vmb0yh94vj507gw8narrwv9vh1imlq4s7373zh9zrpd4x4h9d15";
        libraryHaskellDepends = [
-         base containers resourcet safe-exceptions
+         async base containers resourcet safe-exceptions unliftio-core
        ];
        description = "ResourceT extras";
        license = lib.licenses.bsd3;
@@ -256154,6 +256351,23 @@ self: {
        broken = true;
      }) {};
 
+  "resp" = callPackage
+    ({ mkDerivation, base, bytestring, QuickCheck, scanner, tasty
+     , tasty-hunit, tasty-quickcheck, utf8-string
+     }:
+     mkDerivation {
+       pname = "resp";
+       version = "2.0.0";
+       sha256 = "029vark4k69lvcsn2p9m0yniack09csjxn2j7p0vwqkszbyz209z";
+       libraryHaskellDepends = [ base bytestring scanner ];
+       testHaskellDepends = [
+         base bytestring QuickCheck scanner tasty tasty-hunit
+         tasty-quickcheck utf8-string
+       ];
+       description = "A fast, non-backtracking parser for the redis RESP3 protocol";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "respond" = callPackage
     ({ mkDerivation, aeson, base, bifunctors, bytestring, containers
      , data-default-class, exceptions, fast-logger, formatting, HList
@@ -256328,6 +256542,31 @@ self: {
        maintainers = [ lib.maintainers.tbidne ];
      }) {inherit (pkgs) graphviz; inherit (pkgs) z3;};
 
+  "rest-rewrite_0_4_3" = callPackage
+    ({ mkDerivation, base, containers, graphviz, hashable, monad-loops
+     , mtl, parsec, process, QuickCheck, text, time
+     , unordered-containers, z3
+     }:
+     mkDerivation {
+       pname = "rest-rewrite";
+       version = "0.4.3";
+       sha256 = "0rvqagskkibwadqdkfqqjp0vrdxfn1hnb6g27ps7h160knygaa1d";
+       libraryHaskellDepends = [
+         base containers hashable monad-loops mtl parsec process QuickCheck
+         text time unordered-containers
+       ];
+       testHaskellDepends = [
+         base containers hashable mtl QuickCheck text time
+         unordered-containers
+       ];
+       testSystemDepends = [ graphviz z3 ];
+       doHaddock = false;
+       description = "Rewriting library with online termination checking";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.tbidne ];
+     }) {inherit (pkgs) graphviz; inherit (pkgs) z3;};
+
   "rest-snap" = callPackage
     ({ mkDerivation, base, base-compat, bytestring, case-insensitive
      , rest-core, safe, snap-core, unordered-containers, uri-encode
@@ -256452,6 +256691,7 @@ self: {
        ];
        description = "Easy Git repository serialization";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "restricted-workers" = callPackage
@@ -256665,10 +256905,8 @@ self: {
      }:
      mkDerivation {
        pname = "retrie";
-       version = "1.2.2";
-       sha256 = "0xwvf7xvs3i09whn83agc59rzc3slaswarbwlj27b8cn8bmnk5ca";
-       revision = "1";
-       editedCabalFile = "01lcgn0jlmg3s8q1zrsbal2hz3x07gf0lzqjmf3h946a0lkpfal9";
+       version = "1.2.3";
+       sha256 = "1fs7g6p2g07gwhf5ki8y2064pj57rrnhh1zp21hr8n2kpzpznryf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -256696,8 +256934,8 @@ self: {
      }:
      mkDerivation {
        pname = "retroclash-lib";
-       version = "0.1.2.1";
-       sha256 = "0xf1prvgh41iilghi5ilr5c490xxj9b0mk1xz9is6w0c34wcppr9";
+       version = "0.1.2.2";
+       sha256 = "18jkrbg3fhz64n6adxa674jng6ajrq89ib53rhjvm053qsafrllh";
        libraryHaskellDepends = [
          barbies base clash-ghc clash-lib clash-prelude containers
          ghc-typelits-extra ghc-typelits-knownnat ghc-typelits-natnormalise
@@ -256795,10 +257033,8 @@ self: {
     ({ mkDerivation, base, mtl }:
      mkDerivation {
        pname = "rev-state";
-       version = "0.1.2";
-       sha256 = "06gry2ysvdg5q0b86gr8i86xsbxw2yrnld9g7rcp7mppswwhw1zf";
-       revision = "3";
-       editedCabalFile = "1w2kry4a801l6acimz3b82f3666fx62zzw5q9si1ahlf3mrkr7hk";
+       version = "0.2.0.1";
+       sha256 = "13fwxxv73wf8bvsixl4xsh44pd8jmygdxp1yx5j3a44g230vgrf1";
        libraryHaskellDepends = [ base mtl ];
        testHaskellDepends = [ base ];
        description = "Reverse State monad transformer";
@@ -256864,6 +257100,8 @@ self: {
        pname = "reverse-list";
        version = "0.3.0.0";
        sha256 = "0q3fjgbc6r0v7zdcs577jilqc0py6vmr4iyvnngdlwhrcvyv4mjs";
+       revision = "1";
+       editedCabalFile = "1imxzlhyvar0a8s4wz1yjz2kk8994iq38xvlfypya0izw3nnhwc8";
        libraryHaskellDepends = [ base containers contiguous deepseq ];
        description = "reversed lists/snoc lists";
        license = lib.licenses.bsd3;
@@ -257235,15 +257473,15 @@ self: {
   "rhine" = callPackage
     ({ mkDerivation, base, containers, deepseq, dunai, free
      , monad-schedule, MonadRandom, random, simple-affine-space, tasty
-     , tasty-hunit, time, time-domain, transformers, vector-sized
+     , tasty-hunit, text, time, time-domain, transformers, vector-sized
      }:
      mkDerivation {
        pname = "rhine";
-       version = "1.1";
-       sha256 = "09pz2q9bw5c6qlfsy83piryjnzhq3zra1mly3ypqlr9d36zj7bfb";
+       version = "1.2";
+       sha256 = "1r9a1psakkq1mzmlq5qcfv8kp45p5br1p5pfs0pzlh2g0qhy3wng";
        libraryHaskellDepends = [
          base containers deepseq dunai free monad-schedule MonadRandom
-         random simple-affine-space time time-domain transformers
+         random simple-affine-space text time time-domain transformers
          vector-sized
        ];
        testHaskellDepends = [
@@ -257262,8 +257500,8 @@ self: {
      }:
      mkDerivation {
        pname = "rhine-bayes";
-       version = "1.1";
-       sha256 = "1ybzvbpdz23l3fy1dvv7kn1cpis9c9jy00zxvvwbr47pbvdi9wxc";
+       version = "1.2";
+       sha256 = "0zffcvhx2bh1wcbizbjvy1gpcn4l8yjzppi54dcl9zxkpdbap5hb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -257285,8 +257523,8 @@ self: {
      }:
      mkDerivation {
        pname = "rhine-gloss";
-       version = "1.1";
-       sha256 = "12h501lcfskygn1pf407pksh9izcb79g48j4gw63pw4islhcxdbr";
+       version = "1.2";
+       sha256 = "1nxqggdjikn6qr89z1pn4pfqf392dnpxz6hlb07kdfaxa2rgcrp9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -257306,8 +257544,8 @@ self: {
      }:
      mkDerivation {
        pname = "rhine-terminal";
-       version = "1.1";
-       sha256 = "12r7j9mnswbb59mankl8pil7xk9s9ymzxdc73vmi6ads6kf6qvyr";
+       version = "1.2";
+       sha256 = "1kpicaw7snk0hh84rmym3jm7difwvrmv368lya20jc4margrrjhg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -257843,6 +258081,8 @@ self: {
        ];
        description = "Ring-like objects";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "rio" = callPackage
@@ -257915,8 +258155,8 @@ self: {
      }:
      mkDerivation {
        pname = "rio-prettyprint";
-       version = "0.1.7.0";
-       sha256 = "04493n596jgj49wx9jgvfpjsfnmd37dqh497b6lbm67cp4nxb9p5";
+       version = "0.1.8.0";
+       sha256 = "05naj6sfw5lz5zi6xbn3445vx8dva57sziqs5gxfnagn2my56m5i";
        libraryHaskellDepends = [
          aeson annotated-wl-pprint ansi-terminal array base Cabal colour mtl
          path rio text
@@ -258071,6 +258311,29 @@ self: {
        broken = true;
      }) {};
 
+  "risk-weaver" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, file-embed
+     , filepath, inline-c, JuicyPixels, optparse-applicative, random
+     , safe-exceptions, sixel, text, transformers, vector
+     }:
+     mkDerivation {
+       pname = "risk-weaver";
+       version = "0.1.0.1";
+       sha256 = "0hbr37lxawg5d5azgpdih2rqhl1jyfz803ds1vhg12d5vxwgfdz1";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers file-embed filepath inline-c
+         JuicyPixels optparse-applicative random safe-exceptions sixel text
+         transformers vector
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       description = "A DSL for Risk-oriented Object Detection Requirements";
+       license = lib.licenses.mit;
+       mainProgram = "risk-weaver-exe";
+     }) {};
+
   "rison" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, hspec
      , scientific, text, unordered-containers, vector
@@ -258521,6 +258784,28 @@ self: {
        ];
        description = "Implementation of the ROC (Taiwan) National ID standard";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "roc-id_0_2_0_1" = callPackage
+    ({ mkDerivation, base, hspec, MonadRandom, Only, QuickCheck, text
+     , vector-sized
+     }:
+     mkDerivation {
+       pname = "roc-id";
+       version = "0.2.0.1";
+       sha256 = "03969sm3ia1mi4i2v9z4sclsa911h3myhwqgiygnncyxbwpawsmd";
+       libraryHaskellDepends = [
+         base MonadRandom Only text vector-sized
+       ];
+       testHaskellDepends = [
+         base hspec MonadRandom Only QuickCheck text vector-sized
+       ];
+       description = "Implementation of the ROC (Taiwan) National ID standard";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "rock" = callPackage
@@ -259059,6 +259344,8 @@ self: {
        testHaskellDepends = [ base QuickCheck quickcheck-classes ];
        description = "rose trees";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "rose-trees" = callPackage
@@ -259829,6 +260116,8 @@ self: {
        pname = "rsi-break";
        version = "0.1.0.0";
        sha256 = "1gb4l0ydimambxvf6n66df7mik77vgfsdr9hds8w3cna057k2zwd";
+       revision = "1";
+       editedCabalFile = "1df5n48qnb5s2wppv36bxyrl44w5m1ji4lily8jfbgsd4hpzc06j";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -260230,23 +260519,11 @@ self: {
     ({ mkDerivation, base, primitive, primitive-unlifted }:
      mkDerivation {
        pname = "run-st";
-       version = "0.1.3.0";
-       sha256 = "0fzdvdwpa2mfkbfvqflgr957mpym85606gk10chfp8ka06r6v7d4";
-       libraryHaskellDepends = [ base primitive primitive-unlifted ];
-       description = "runST without boxing penalty";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "run-st_0_1_3_2" = callPackage
-    ({ mkDerivation, base, primitive, primitive-unlifted }:
-     mkDerivation {
-       pname = "run-st";
        version = "0.1.3.2";
        sha256 = "1c3pl4fav5z04ixn4ny7zxrrkdy23wk7sk4xm8w5m1c73w0s5ngd";
        libraryHaskellDepends = [ base primitive primitive-unlifted ];
        description = "runST without boxing penalty";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "rungekutta" = callPackage
@@ -260493,14 +260770,14 @@ self: {
   "rzk" = callPackage
     ({ mkDerivation, aeson, alex, array, base, bifunctors, BNFC
      , bytestring, Cabal, co-log-core, data-default-class, directory
-     , doctest, filepath, Glob, happy, lens, lsp, lsp-types, mtl
-     , optparse-generic, process, QuickCheck, stm, template-haskell
-     , text, with-utf8, yaml
+     , doctest, filepath, Glob, happy, hspec, hspec-discover, lens, lsp
+     , lsp-types, mtl, optparse-generic, process, QuickCheck, stm
+     , template-haskell, text, with-utf8, yaml
      }:
      mkDerivation {
        pname = "rzk";
-       version = "0.7.1";
-       sha256 = "14jfpr5dl6fwkz3zydi3mwdrs08rbhasxz0mwhqy3vp4x5vw22m2";
+       version = "0.7.3";
+       sha256 = "0nkhw8nbzqpsl41skwly86pbp75c5mpvppn5vcqj6mmni7bj2i8q";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal process ];
@@ -260516,13 +260793,15 @@ self: {
        ];
        executableToolDepends = [ alex BNFC happy ];
        testHaskellDepends = [
-         array base bifunctors bytestring directory doctest Glob mtl
-         QuickCheck template-haskell text yaml
+         array base bifunctors bytestring directory doctest Glob hspec
+         hspec-discover mtl QuickCheck template-haskell text yaml
        ];
-       testToolDepends = [ alex BNFC happy ];
+       testToolDepends = [ alex BNFC happy hspec-discover ];
        description = "An experimental proof assistant for synthetic ∞-categories";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "rzk";
+       broken = true;
      }) {};
 
   "s-cargot" = callPackage
@@ -260593,8 +260872,10 @@ self: {
     ({ mkDerivation, base, deepseq, QuickCheck }:
      mkDerivation {
        pname = "safe";
-       version = "0.3.19";
-       sha256 = "18pp6cn9np9jgs01x9mac6wk41k34g86fx5ibfarbapqr1138115";
+       version = "0.3.21";
+       sha256 = "00bz022kvs0wd3rs9ycx0nxfyc2gqlg3q13lhx4fqydy5fjgx09c";
+       revision = "1";
+       editedCabalFile = "1xx3qq5xc4qbfzshaaqxnhdpl5bdwk3qbkiqbcaqhrw78lbfla5r";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base deepseq QuickCheck ];
        description = "Library of safe (exception free) functions";
@@ -260610,6 +260891,8 @@ self: {
        libraryHaskellDepends = [ base mtl transformers ];
        description = "A simple environment to control access to data";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "safe-buffer-monad" = callPackage
@@ -260675,8 +260958,6 @@ self: {
        ];
        testToolDepends = [ sydtest-discover ];
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "safe-coloured-text-layout" = callPackage
@@ -260801,6 +261082,8 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Safe, checked exceptions";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "safe-failure" = callPackage
@@ -260812,6 +261095,7 @@ self: {
        libraryHaskellDepends = [ base failure ];
        description = "Library for safe functions (deprecated)";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "safe-failure-cme" = callPackage
@@ -260825,6 +261109,7 @@ self: {
        ];
        description = "control-monad-exception Instances for safe-failure";
        license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "safe-foldable" = callPackage
@@ -260884,10 +261169,8 @@ self: {
      }:
      mkDerivation {
        pname = "safe-json";
-       version = "1.1.4.0";
-       sha256 = "01dr0fyqyjbg9cw9g1wgh8bl7y1gfjbzl6qza6lf2s4iisacb06p";
-       revision = "3";
-       editedCabalFile = "1d49dp1f00b865x8jfi1ynjp32yagjssf1ws9x3ci7qa8hsy1kxl";
+       version = "1.2.0.1";
+       sha256 = "1y03smd9fjxqfs5q2zi8138k3aafwx691327xavsa2b7q27bvi5b";
        libraryHaskellDepends = [
          aeson base bytestring containers dlist hashable scientific tasty
          tasty-hunit tasty-quickcheck text time unordered-containers
@@ -260902,31 +261185,6 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "safe-json_1_2_0_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, dlist
-     , hashable, quickcheck-instances, scientific, tasty, tasty-hunit
-     , tasty-quickcheck, temporary, text, time, unordered-containers
-     , uuid, uuid-types, vector
-     }:
-     mkDerivation {
-       pname = "safe-json";
-       version = "1.2.0.0";
-       sha256 = "0534kxg66ha106y9xp4jbv4lyd8cjgj7qbfcbqiahdi2sd9cyfhg";
-       libraryHaskellDepends = [
-         aeson base bytestring containers dlist hashable scientific tasty
-         tasty-hunit tasty-quickcheck text time unordered-containers
-         uuid-types vector
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers dlist hashable
-         quickcheck-instances scientific tasty tasty-hunit tasty-quickcheck
-         temporary text time unordered-containers uuid uuid-types vector
-       ];
-       description = "Automatic JSON format versioning";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "safe-lazy-io" = callPackage
     ({ mkDerivation, base, extensible-exceptions, parallel, strict-io
      }:
@@ -261847,87 +262105,43 @@ self: {
      , bytestring, colour, containers, deepseq, directory, exceptions
      , filepath, free, haskell-src-exts, lifted-async, microlens
      , microlens-th, monad-control, monad-logger, mtl
-     , optparse-applicative, pretty-show, process, safe, safe-exceptions
-     , stm, string-interpolate, template-haskell, text, time
-     , transformers, transformers-base, unix, unliftio-core, vector, vty
+     , optparse-applicative, pretty-show, process, retry, safe
+     , safe-exceptions, stm, string-interpolate, template-haskell, text
+     , time, transformers, transformers-base, unix, unliftio-core
+     , vector, vty, vty-crossplatform
      }:
      mkDerivation {
        pname = "sandwich";
-       version = "0.1.5.2";
-       sha256 = "0xran6qv8nfv4yw55pncd12z7843f25y4sc94s5dd26kpvn78kr1";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson ansi-terminal async base brick bytestring colour containers
-         deepseq directory exceptions filepath free haskell-src-exts
-         lifted-async microlens microlens-th monad-control monad-logger mtl
-         optparse-applicative pretty-show process safe safe-exceptions stm
-         string-interpolate template-haskell text time transformers
-         transformers-base unix unliftio-core vector vty
-       ];
-       executableHaskellDepends = [
-         aeson ansi-terminal async base brick bytestring colour containers
-         deepseq directory exceptions filepath free haskell-src-exts
-         lifted-async microlens microlens-th monad-control monad-logger mtl
-         optparse-applicative pretty-show process safe safe-exceptions stm
-         string-interpolate template-haskell text time transformers
-         transformers-base unix unliftio-core vector vty
-       ];
-       testHaskellDepends = [
-         aeson ansi-terminal async base brick bytestring colour containers
-         deepseq directory exceptions filepath free haskell-src-exts
-         lifted-async microlens microlens-th monad-control monad-logger mtl
-         optparse-applicative pretty-show process safe safe-exceptions stm
-         string-interpolate template-haskell text time transformers
-         transformers-base unix unliftio-core vector vty
-       ];
-       description = "Yet another test framework for Haskell";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "sandwich_0_2_1_0" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, async, base, brick
-     , bytestring, colour, containers, deepseq, directory, exceptions
-     , filepath, free, haskell-src-exts, lifted-async, microlens
-     , microlens-th, monad-control, monad-logger, mtl
-     , optparse-applicative, pretty-show, process, safe, safe-exceptions
-     , stm, string-interpolate, template-haskell, text, time
-     , transformers, transformers-base, unix, unliftio-core, vector, vty
-     , vty-crossplatform
-     }:
-     mkDerivation {
-       pname = "sandwich";
-       version = "0.2.1.0";
-       sha256 = "00wayn1xbhisl3aix61kp7m4xiqrnam5mqal2ncmd2b8cy7h9hn4";
+       version = "0.2.2.0";
+       sha256 = "1sww8bixsg3yd44f72sr2yhwhanwvlvnp9491mq3lm0syklw0jl4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson ansi-terminal async base brick bytestring colour containers
          deepseq directory exceptions filepath free haskell-src-exts
          lifted-async microlens microlens-th monad-control monad-logger mtl
-         optparse-applicative pretty-show process safe safe-exceptions stm
-         string-interpolate template-haskell text time transformers
+         optparse-applicative pretty-show process retry safe safe-exceptions
+         stm string-interpolate template-haskell text time transformers
          transformers-base unix unliftio-core vector vty vty-crossplatform
        ];
        executableHaskellDepends = [
          aeson ansi-terminal async base brick bytestring colour containers
          deepseq directory exceptions filepath free haskell-src-exts
          lifted-async microlens microlens-th monad-control monad-logger mtl
-         optparse-applicative pretty-show process safe safe-exceptions stm
-         string-interpolate template-haskell text time transformers
+         optparse-applicative pretty-show process retry safe safe-exceptions
+         stm string-interpolate template-haskell text time transformers
          transformers-base unix unliftio-core vector vty vty-crossplatform
        ];
        testHaskellDepends = [
          aeson ansi-terminal async base brick bytestring colour containers
          deepseq directory exceptions filepath free haskell-src-exts
          lifted-async microlens microlens-th monad-control monad-logger mtl
-         optparse-applicative pretty-show process safe safe-exceptions stm
-         string-interpolate template-haskell text time transformers
+         optparse-applicative pretty-show process retry safe safe-exceptions
+         stm string-interpolate template-haskell text time transformers
          transformers-base unix unliftio-core vector vty vty-crossplatform
        ];
        description = "Yet another test framework for Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sandwich-hedgehog" = callPackage
@@ -262206,6 +262420,8 @@ self: {
        testHaskellDepends = [ array base ];
        description = "SAT encoding monad";
        license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "satchmo-backends" = callPackage
@@ -262453,35 +262669,8 @@ self: {
      }:
      mkDerivation {
        pname = "sbp";
-       version = "4.15.0";
-       sha256 = "1x8gqrrds6ci2s33vrrmw5ndzj22k271zd0wsbvfqg7wpz8ry37f";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson array base base64-bytestring basic-prelude binary bytestring
-         data-binary-ieee754 lens lens-aeson monad-loops template-haskell
-         text
-       ];
-       executableHaskellDepends = [
-         aeson aeson-pretty base basic-prelude binary-conduit bytestring
-         cmdargs conduit conduit-extra lens resourcet time yaml
-       ];
-       testHaskellDepends = [ base basic-prelude tasty tasty-hunit ];
-       description = "SwiftNav's SBP Library";
-       license = lib.licenses.mit;
-     }) {};
-
-  "sbp_5_0_4" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, array, base
-     , base64-bytestring, basic-prelude, binary, binary-conduit
-     , bytestring, cmdargs, conduit, conduit-extra, data-binary-ieee754
-     , lens, lens-aeson, monad-loops, resourcet, tasty, tasty-hunit
-     , template-haskell, text, time, yaml
-     }:
-     mkDerivation {
-       pname = "sbp";
-       version = "5.0.4";
-       sha256 = "1wfv99haslzjb7bl43a30z4m1gp0d83xayy7a5f4x447v6g9l8cd";
+       version = "5.0.5";
+       sha256 = "172srcjmk6vqbnfl8l10a9a5bnpn5vvmccwj5cxpshaj387ap4j0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -262496,7 +262685,6 @@ self: {
        testHaskellDepends = [ base basic-prelude tasty tasty-hunit ];
        description = "SwiftNav's SBP Library";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sbp2udp" = callPackage
@@ -262584,6 +262772,37 @@ self: {
        broken = true;
      }) {inherit (pkgs) z3;};
 
+  "sbv_10_3" = callPackage
+    ({ mkDerivation, array, async, base, bytestring, containers
+     , deepseq, directory, filepath, libBF, mtl, pretty, process
+     , QuickCheck, random, syb, tasty, tasty-bench, tasty-golden
+     , tasty-hunit, tasty-quickcheck, template-haskell, text, time
+     , transformers, uniplate, z3
+     }:
+     mkDerivation {
+       pname = "sbv";
+       version = "10.3";
+       sha256 = "15jasmmh49w086gfd5wlhwkqszw3925a5k0k92rk7kwi3c73d57k";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         array async base containers deepseq directory filepath libBF mtl
+         pretty process QuickCheck random syb template-haskell text time
+         transformers uniplate
+       ];
+       testHaskellDepends = [
+         base bytestring containers deepseq directory filepath mtl process
+         QuickCheck random tasty tasty-golden tasty-hunit tasty-quickcheck
+       ];
+       testSystemDepends = [ z3 ];
+       benchmarkHaskellDepends = [
+         base deepseq filepath process random tasty tasty-bench time
+       ];
+       description = "SMT Based Verification: Symbolic Haskell theorem prover using SMT solving";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) z3;};
+
   "sbv-program" = callPackage
     ({ mkDerivation, base, bifunctors, containers, pretty-simple, sbv
      }:
@@ -262607,8 +262826,8 @@ self: {
      }:
      mkDerivation {
        pname = "sbvPlugin";
-       version = "9.6.1";
-       sha256 = "1qawdaaijlq1yaynjycf73vk1cl3r0p937byybaf40c1n9n78ccs";
+       version = "9.8.1";
+       sha256 = "12l23shwygvc7xs0scbd2w98brwcx52c13kgszm2xaabfa9vsnhq";
        libraryHaskellDepends = [
          base containers ghc ghc-prim mtl sbv template-haskell
        ];
@@ -262658,6 +262877,7 @@ self: {
        description = "A protocol buffer model for the Starcraft II bot API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {protoc = null;};
 
   "sc2-support" = callPackage
@@ -262986,7 +263206,9 @@ self: {
        description = "Generates unique passwords for various websites from a single password";
        license = lib.licenses.bsd3;
        platforms = lib.platforms.x86;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "scat";
+       broken = true;
      }) {};
 
   "scc" = callPackage
@@ -263138,6 +263360,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Work stealing scheduler";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "scheduling" = callPackage
@@ -263484,26 +263707,26 @@ self: {
      }) {};
 
   "scientific-notation" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytebuild, byteslice
-     , bytesmith, bytestring, gauge, natural-arithmetic, primitive
-     , QuickCheck, run-st, scientific, tasty, tasty-hunit
+    ({ mkDerivation, attoparsec, attoparsec-aeson, base, bytebuild
+     , byteslice, bytesmith, bytestring, gauge, natural-arithmetic
+     , primitive, run-st, scientific, tasty, tasty-hunit
      , tasty-quickcheck, text-short, word-compat
      }:
      mkDerivation {
        pname = "scientific-notation";
-       version = "0.1.6.0";
-       sha256 = "041bj2kwxg744ndixs9z8r3y0xxwas9c4987m9qjgllwm1m729px";
+       version = "0.1.6.1";
+       sha256 = "1qx2k9b77zz9skfp7b3lxm1ya5qyn6k6gcy8ff32s4x34zhvmzax";
        libraryHaskellDepends = [
          base bytebuild byteslice bytesmith bytestring natural-arithmetic
          primitive text-short word-compat
        ];
        testHaskellDepends = [
-         base bytebuild byteslice bytesmith bytestring primitive QuickCheck
-         tasty tasty-hunit tasty-quickcheck
+         base byteslice bytesmith primitive tasty tasty-hunit
+         tasty-quickcheck
        ];
        benchmarkHaskellDepends = [
-         aeson attoparsec base byteslice bytesmith bytestring gauge
-         primitive run-st scientific
+         attoparsec attoparsec-aeson base byteslice bytesmith bytestring
+         gauge primitive run-st scientific
        ];
        description = "Scientific notation intended for tokenization";
        license = lib.licenses.bsd3;
@@ -263670,33 +263893,32 @@ self: {
      }) {};
 
   "scotty" = callPackage
-    ({ mkDerivation, aeson, async, base, base-compat-batteries
-     , blaze-builder, bytestring, case-insensitive, data-default-class
-     , directory, exceptions, hspec, hspec-discover, hspec-wai
-     , http-types, lifted-base, lucid, monad-control, mtl, network
-     , regex-compat, text, transformers, transformers-base
-     , transformers-compat, wai, wai-extra, warp, weigh
+    ({ mkDerivation, aeson, async, base, blaze-builder, bytestring
+     , case-insensitive, cookie, data-default-class, directory
+     , exceptions, hspec, hspec-discover, hspec-wai, http-types
+     , lifted-base, lucid, monad-control, mtl, network, regex-compat
+     , stm, text, time, transformers, transformers-base
+     , transformers-compat, unliftio, wai, wai-extra, warp, weigh
      }:
      mkDerivation {
        pname = "scotty";
-       version = "0.12.1";
-       sha256 = "0jnv2k37yv7hbm21w356ml4b14avlwh8yyzwwwfrwpbn6zzk6ahy";
-       revision = "2";
-       editedCabalFile = "06hzpbd3adq9wjc5dsz6ikmy6gx60hhlzra58qrc91vi4v76xh0m";
+       version = "0.20.1";
+       sha256 = "1770kj78zdi137pskiyx28id64vilmhylnkgy139pvxa95n8i6kd";
+       revision = "1";
+       editedCabalFile = "02gz7kgv273scgmig0qkvfynslhqg9pnhmablidr47kw80kqghy6";
        libraryHaskellDepends = [
-         aeson base base-compat-batteries blaze-builder bytestring
-         case-insensitive data-default-class exceptions http-types
-         monad-control mtl network regex-compat text transformers
-         transformers-base transformers-compat wai wai-extra warp
+         aeson base blaze-builder bytestring case-insensitive cookie
+         data-default-class exceptions http-types monad-control mtl network
+         regex-compat stm text time transformers transformers-base
+         transformers-compat unliftio wai wai-extra warp
        ];
        testHaskellDepends = [
-         async base bytestring data-default-class directory hspec hspec-wai
-         http-types lifted-base network text wai
+         async base bytestring directory hspec hspec-wai http-types
+         lifted-base network text wai
        ];
        testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
-         base bytestring data-default-class lucid mtl text transformers
-         weigh
+         base bytestring lucid mtl text transformers weigh
        ];
        description = "Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp";
        license = lib.licenses.bsd3;
@@ -263714,6 +263936,8 @@ self: {
        pname = "scotty";
        version = "0.21";
        sha256 = "1qnyagwirxcmja3wbiyp5s8f0dvcdiz7fh0a6jc4vyj2yy175yi4";
+       revision = "1";
+       editedCabalFile = "0cg0s728112n8xy966cwmbvvjn2qnd6magibj9q3cxn41yinlzyi";
        libraryHaskellDepends = [
          aeson base blaze-builder bytestring case-insensitive cookie
          data-default-class exceptions http-types monad-control mtl network
@@ -263785,6 +264009,8 @@ self: {
        ];
        description = "Cookie management helper functions for Scotty framework";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "scotty-fay" = callPackage
@@ -263899,6 +264125,8 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Redirect to a normalized path";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "scotty-resource" = callPackage
@@ -263993,6 +264221,8 @@ self: {
        ];
        description = "Scotty utils library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "scotty-view" = callPackage
@@ -264424,6 +264654,8 @@ self: {
        pname = "sdl2";
        version = "2.5.5.0";
        sha256 = "1kai6mmnwz9qq7q5y8c7wmcdf9qc5m167dzy3brj11jjds4smz93";
+       revision = "1";
+       editedCabalFile = "0r0lzn3hyjvzwqsrqprdzb2c167g7ip2cf07jvm1h5b53qc2a4cx";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -264921,6 +265153,8 @@ self: {
        testHaskellDepends = [ base directory doctest filepath ];
        description = "Infinite search in finite time with Hilbert's epsilon";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "search-algorithms" = callPackage
@@ -264962,7 +265196,9 @@ self: {
        testHaskellDepends = [ base ];
        description = "A Haskell implementation of the SECD abstract machine";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "secdi";
+       broken = true;
      }) {};
 
   "secdh" = callPackage
@@ -265051,29 +265287,6 @@ self: {
      }) {inherit (pkgs) secp256k1;};
 
   "secp256k1-haskell" = callPackage
-    ({ mkDerivation, base, base16, bytestring, cereal, deepseq, entropy
-     , hashable, hspec, hspec-discover, HUnit, monad-par, mtl
-     , QuickCheck, secp256k1, string-conversions, unliftio-core
-     }:
-     mkDerivation {
-       pname = "secp256k1-haskell";
-       version = "0.6.1";
-       sha256 = "0abxwmls4rvsnck7p5gpajmha2vc9fbcrr2q1alkpw8acmgfhr76";
-       libraryHaskellDepends = [
-         base base16 bytestring cereal deepseq entropy hashable QuickCheck
-         string-conversions unliftio-core
-       ];
-       libraryPkgconfigDepends = [ secp256k1 ];
-       testHaskellDepends = [
-         base base16 bytestring cereal deepseq entropy hashable hspec HUnit
-         monad-par mtl QuickCheck string-conversions unliftio-core
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Bindings for secp256k1";
-       license = lib.licenses.mit;
-     }) {inherit (pkgs) secp256k1;};
-
-  "secp256k1-haskell_1_1_0" = callPackage
     ({ mkDerivation, base, base16, bytestring, deepseq, entropy
      , hashable, hspec, hspec-discover, HUnit, monad-par, mtl
      , QuickCheck, secp256k1, string-conversions, unliftio-core
@@ -265094,7 +265307,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Bindings for secp256k1";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) secp256k1;};
 
   "secp256k1-legacy" = callPackage
@@ -265303,6 +265515,8 @@ self: {
        ];
        description = "Multi-backend, high-level EDSL for interacting with SQL databases";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "selda-json" = callPackage
@@ -265314,6 +265528,7 @@ self: {
        libraryHaskellDepends = [ aeson base bytestring selda text ];
        description = "JSON support for the Selda database library";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "selda-postgresql" = callPackage
@@ -265348,6 +265563,7 @@ self: {
        ];
        description = "SQLite backend for the Selda database EDSL";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "select" = callPackage
@@ -265541,8 +265757,6 @@ self: {
        libraryHaskellDepends = [ base exceptions unix ];
        description = "Cross-platform abstraction for system semaphores";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "semaphore-plus" = callPackage
@@ -265689,6 +265903,8 @@ self: {
        libraryHaskellDepends = [ base profunctors semigroupoids ];
        description = "Semigroupoids that depend on PolyKinds";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "semigroupoids" = callPackage
@@ -265699,40 +265915,17 @@ self: {
      }:
      mkDerivation {
        pname = "semigroupoids";
-       version = "5.3.7";
-       sha256 = "169pjrm7lxjxrqj5q1iyl288bx5nj8n0pf2ri1cclxccqnvcsibd";
-       revision = "1";
-       editedCabalFile = "063xzbp4p93kbaygn26rzs4wmwf01mcj7d4qfsiwf39gd0wkf2dc";
-       libraryHaskellDepends = [
-         base base-orphans bifunctors comonad containers contravariant
-         distributive hashable tagged template-haskell transformers
-         transformers-compat unordered-containers
-       ];
-       description = "Semigroupoids: Category sans id";
-       license = lib.licenses.bsd2;
-     }) {};
-
-  "semigroupoids_6_0_0_1" = callPackage
-    ({ mkDerivation, base, base-orphans, bifunctors, comonad
-     , containers, contravariant, distributive, foldable1-classes-compat
-     , hashable, tagged, template-haskell, transformers
-     , transformers-compat, unordered-containers
-     }:
-     mkDerivation {
-       pname = "semigroupoids";
        version = "6.0.0.1";
        sha256 = "0d3rsxby1j4m0ak3v62jbjzw1f2n55qxnb2jsrgj1y5xj6c8m8vx";
        revision = "1";
        editedCabalFile = "1ia31jmv4m228j7mwcl58ala7z18d3iqygki3qv6akhi3i2kp8j7";
        libraryHaskellDepends = [
          base base-orphans bifunctors comonad containers contravariant
-         distributive foldable1-classes-compat hashable tagged
-         template-haskell transformers transformers-compat
-         unordered-containers
+         distributive hashable tagged template-haskell transformers
+         transformers-compat unordered-containers
        ];
        description = "Semigroupoids: Category sans id";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "semigroupoids-do" = callPackage
@@ -265744,6 +265937,8 @@ self: {
        libraryHaskellDepends = [ base semigroupoids ];
        description = "Support for QualifiedDo with semigroupoids classes";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "semigroupoids-syntax" = callPackage
@@ -266337,29 +266532,6 @@ self: {
      }:
      mkDerivation {
        pname = "sequence-formats";
-       version = "1.7.1";
-       sha256 = "1smf7bxa36slasi295jr59hf62cz0w7gbacmwz33vcfjdvh9ffj6";
-       libraryHaskellDepends = [
-         attoparsec base bytestring containers errors exceptions foldl
-         lens-family pipes pipes-attoparsec pipes-bytestring pipes-safe
-         transformers vector
-       ];
-       testHaskellDepends = [
-         base bytestring containers foldl hspec pipes pipes-safe tasty
-         tasty-hunit transformers vector
-       ];
-       description = "A package with basic parsing utilities for several Bioinformatic data formats";
-       license = lib.licenses.gpl3Only;
-     }) {};
-
-  "sequence-formats_1_8_0_0" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, containers, errors
-     , exceptions, foldl, hspec, lens-family, pipes, pipes-attoparsec
-     , pipes-bytestring, pipes-safe, tasty, tasty-hunit, transformers
-     , vector
-     }:
-     mkDerivation {
-       pname = "sequence-formats";
        version = "1.8.0.0";
        sha256 = "0xm0v56q90g89zwphayf6llpnmsrb7asnb06sm5lld4q9jfidi4d";
        libraryHaskellDepends = [
@@ -266373,7 +266545,6 @@ self: {
        ];
        description = "A package with basic parsing utilities for several Bioinformatic data formats";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sequenceTools" = callPackage
@@ -266458,6 +266629,46 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "serdoc-binary" = callPackage
+    ({ mkDerivation, base, binary, bytestring, mtl, serdoc-core, tasty
+     , tasty-quickcheck, text, time
+     }:
+     mkDerivation {
+       pname = "serdoc-binary";
+       version = "0.1.0.0";
+       sha256 = "04yfac60xl8ncw8insqjwf7r8fhqsfbs883i2wl3fk7960d2w14l";
+       libraryHaskellDepends = [ base binary bytestring serdoc-core ];
+       testHaskellDepends = [
+         base binary bytestring mtl serdoc-core tasty tasty-quickcheck text
+         time
+       ];
+       description = "`binary` backend for `serdoc`";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "serdoc-core" = callPackage
+    ({ mkDerivation, base, bytestring, containers, mtl, tasty
+     , tasty-quickcheck, template-haskell, text, th-abstraction, time
+     }:
+     mkDerivation {
+       pname = "serdoc-core";
+       version = "0.1.0.0";
+       sha256 = "0m5sarripwgi9pda5bs2zb65mgvsy72zb4g9ld2bxxrb094hlbg5";
+       libraryHaskellDepends = [
+         base bytestring containers mtl tasty tasty-quickcheck
+         template-haskell text th-abstraction time
+       ];
+       testHaskellDepends = [
+         base bytestring mtl tasty tasty-quickcheck template-haskell text
+         time
+       ];
+       description = "Generated documentation of serialization formats";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "serf" = callPackage
     ({ mkDerivation, attoparsec, base, conduit, conduit-extra, mtl
      , operational, process, resourcet, text
@@ -266485,6 +266696,8 @@ self: {
        libraryHaskellDepends = [ base unix ];
        description = "POSIX serial port wrapper";
        license = "LGPL";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "serial-test-generators" = callPackage
@@ -266504,6 +266717,7 @@ self: {
        ];
        description = "Test your 'Aeson' 'Serialize' and 'Binary' instances for stability over time";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "serialise" = callPackage
@@ -266518,6 +266732,8 @@ self: {
        pname = "serialise";
        version = "0.2.6.1";
        sha256 = "1x3p9vi6daf50xgv5xxjnclqcq9ynqg1qw7af3ppa1nizycrg533";
+       revision = "1";
+       editedCabalFile = "1y1x0jrc5k7z8r54jk1p1iw18f2psky4ksxd0f8aqfvy1hamzra8";
        libraryHaskellDepends = [
          array base bytestring cborg containers ghc-prim half hashable
          primitive strict text these time unordered-containers vector
@@ -266578,8 +266794,8 @@ self: {
     ({ mkDerivation, base, bytestring, HUnit, unix }:
      mkDerivation {
        pname = "serialport";
-       version = "0.5.4";
-       sha256 = "0hw9vcmxfhjad0jcq0c7m2klcnhilk5ag7byymyny0kzg4js27vr";
+       version = "0.5.5";
+       sha256 = "1mgxfx2xb9jh40vaaa28nwszxph0gpx01x0xynypc757igwhvbkv";
        libraryHaskellDepends = [ base bytestring unix ];
        testHaskellDepends = [ base bytestring HUnit ];
        description = "Cross platform serial port library";
@@ -266689,35 +266905,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant";
-       version = "0.19.1";
-       sha256 = "1gk6j39rcjpjacs351lknhrwj86yr4ifyp3qwlmiig27dxqlig3q";
-       revision = "2";
-       editedCabalFile = "01232431a6asv5pd1rshnh1zix7mdjy56m5zr6gz4179619ggf47";
-       libraryHaskellDepends = [
-         aeson attoparsec base base-compat bifunctors bytestring
-         case-insensitive constraints deepseq http-api-data http-media
-         http-types mmorph mtl network-uri QuickCheck singleton-bool
-         sop-core string-conversions tagged text transformers vault
-       ];
-       testHaskellDepends = [
-         aeson base base-compat bytestring hspec http-media mtl QuickCheck
-         quickcheck-instances string-conversions text transformers
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "A family of combinators for defining webservices APIs";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "servant_0_20_1" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, base-compat, bifunctors
-     , bytestring, case-insensitive, constraints, deepseq, hspec
-     , hspec-discover, http-api-data, http-media, http-types, mmorph
-     , mtl, network-uri, QuickCheck, quickcheck-instances
-     , singleton-bool, sop-core, string-conversions, tagged, text
-     , transformers, vault
-     }:
-     mkDerivation {
-       pname = "servant";
        version = "0.20.1";
        sha256 = "1s8vapj8qb8l5snjzxd63d9rvxwa1vw6g77cg8nynrzzppwp7xwl";
        revision = "2";
@@ -266735,7 +266922,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A family of combinators for defining webservices APIs";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-JuicyPixels" = callPackage
@@ -266761,26 +266947,27 @@ self: {
 
   "servant-aeson-generics-typescript" = callPackage
     ({ mkDerivation, aeson, aeson-generics-typescript, async, base
-     , bytestring, containers, directory, filepath, hspec, hspec-wai
-     , http-types, jose-jwt, process, QuickCheck, random, servant
-     , servant-auth, servant-server, split, string-interpolate, text
-     , time, warp
+     , bytestring, conduit, containers, directory, filepath, hspec
+     , hspec-wai, http-types, jose-jwt, process, QuickCheck, random
+     , servant, servant-auth, servant-server, servant-websockets, split
+     , string-interpolate, text, time, warp, webdriver
      }:
      mkDerivation {
        pname = "servant-aeson-generics-typescript";
-       version = "0.0.0.1";
-       sha256 = "164f9c22lbyv670ci8yxknpas1gi4yswdpkq20ls4nnq7jsa3zi5";
+       version = "0.0.0.2";
+       sha256 = "03v4919iaa32rxkyd4k5zvczvgwmikkpzrfi66ixbanva43zassi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-generics-typescript base containers http-types jose-jwt
-         servant string-interpolate text
+         servant servant-websockets string-interpolate text
        ];
        executableHaskellDepends = [
-         aeson aeson-generics-typescript async base bytestring containers
-         directory filepath hspec hspec-wai http-types jose-jwt process
-         QuickCheck random servant servant-auth servant-server split
-         string-interpolate text time warp
+         aeson aeson-generics-typescript async base bytestring conduit
+         containers directory filepath hspec hspec-wai http-types jose-jwt
+         process QuickCheck random servant servant-auth servant-server
+         servant-websockets split string-interpolate text time warp
+         webdriver
        ];
        description = "Generates a TypeScript client for Servant APIs";
        license = lib.licenses.bsd3;
@@ -266897,30 +267084,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-auth-docs";
-       version = "0.2.10.0";
-       sha256 = "0j1ynnrb6plrhpb2vzs2p7a9jb41llp0j1jwgap7hjhkwhyc7wxd";
-       revision = "12";
-       editedCabalFile = "14vihxy2zkyhg27fgyrg2zcvws7v12ypap48rv2l7h918gcyxs5v";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         base lens servant servant-auth servant-docs text
-       ];
-       testHaskellDepends = [
-         base doctest hspec lens QuickCheck servant servant-auth
-         servant-docs template-haskell text
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "servant-docs/servant-auth compatibility";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "servant-auth-docs_0_2_10_1" = callPackage
-    ({ mkDerivation, base, Cabal, cabal-doctest, doctest, hspec
-     , hspec-discover, lens, QuickCheck, servant, servant-auth
-     , servant-docs, template-haskell, text
-     }:
-     mkDerivation {
-       pname = "servant-auth-docs";
        version = "0.2.10.1";
        sha256 = "03dnh6x0y34npmv9w2f3hc9r1brlzf2rki6c6ngvwb3dvichhykv";
        revision = "2";
@@ -266936,7 +267099,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "servant-docs/servant-auth compatibility";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-auth-hmac" = callPackage
@@ -267169,6 +267331,7 @@ self: {
        ];
        description = "Authenticate Routes Using Wordpress Cookies";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-avro" = callPackage
@@ -267248,6 +267411,8 @@ self: {
        ];
        description = "Servant CSV content-type for cassava";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "servant-checked-exceptions" = callPackage
@@ -267272,6 +267437,7 @@ self: {
        ];
        description = "Checked exceptions for Servant APIs";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-checked-exceptions-core" = callPackage
@@ -267292,6 +267458,7 @@ self: {
        ];
        description = "Checked exceptions for Servant APIs";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-cli" = callPackage
@@ -267303,8 +267470,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-cli";
-       version = "0.1.0.2";
-       sha256 = "11pl9z3l2f7py16drqq9zvl9z5358jv1q7pqslhkhrqg5vhp822k";
+       version = "0.1.1.0";
+       sha256 = "11zihqwszqla759wch63g74m9ksagjb5lzlxg19mav4x4h7n8wj2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -267330,38 +267497,6 @@ self: {
      , http-api-data, http-client, http-media, http-types, HUnit
      , kan-extensions, markdown-unlit, monad-control, mtl, network
      , QuickCheck, semigroupoids, servant, servant-client-core
-     , servant-server, sop-core, stm, tdigest, text, time, transformers
-     , transformers-base, transformers-compat, wai, warp
-     }:
-     mkDerivation {
-       pname = "servant-client";
-       version = "0.19";
-       sha256 = "1bdapsr6il0f019ss8wsxndpc8cd5czj40xczay5qhl7fqnxg5pa";
-       revision = "6";
-       editedCabalFile = "0lakjnpvsiai08c5nddgzrnr0a139rr37cyq31hqcbwnsy553l1y";
-       libraryHaskellDepends = [
-         base base-compat bytestring containers deepseq exceptions
-         http-client http-media http-types kan-extensions monad-control mtl
-         semigroupoids servant servant-client-core stm text time
-         transformers transformers-base transformers-compat
-       ];
-       testHaskellDepends = [
-         aeson base base-compat bytestring entropy hspec http-api-data
-         http-client http-types HUnit kan-extensions markdown-unlit mtl
-         network QuickCheck servant servant-client-core servant-server
-         sop-core stm tdigest text transformers transformers-compat wai warp
-       ];
-       testToolDepends = [ hspec-discover markdown-unlit ];
-       description = "Automatic derivation of querying functions for servant";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "servant-client_0_20" = callPackage
-    ({ mkDerivation, aeson, base, base-compat, bytestring, containers
-     , deepseq, entropy, exceptions, hspec, hspec-discover
-     , http-api-data, http-client, http-media, http-types, HUnit
-     , kan-extensions, markdown-unlit, monad-control, mtl, network
-     , QuickCheck, semigroupoids, servant, servant-client-core
      , servant-server, sop-core, stm, text, time, transformers
      , transformers-base, transformers-compat, wai, warp
      }:
@@ -267386,7 +267521,6 @@ self: {
        testToolDepends = [ hspec-discover markdown-unlit ];
        description = "Automatic derivation of querying functions for servant";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-client-core" = callPackage
@@ -267398,31 +267532,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-client-core";
-       version = "0.19";
-       sha256 = "0cisc5cyl367cwrch1gr812aspd36a21hkwi6mwj708rpspwvrmc";
-       revision = "5";
-       editedCabalFile = "147ws71hwp8zck7ph8kcyh18524s8g0b7qvxjsvsm1yvw77c60gh";
-       libraryHaskellDepends = [
-         aeson base base-compat base64-bytestring bytestring constraints
-         containers deepseq exceptions free http-media http-types
-         network-uri safe servant sop-core template-haskell text
-         transformers
-       ];
-       testHaskellDepends = [ base base-compat deepseq hspec QuickCheck ];
-       testToolDepends = [ hspec-discover ];
-       description = "Core functionality and class for client function generation for servant APIs";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "servant-client-core_0_20" = callPackage
-    ({ mkDerivation, aeson, base, base-compat, base64-bytestring
-     , bytestring, constraints, containers, deepseq, exceptions, free
-     , hspec, hspec-discover, http-media, http-types, network-uri
-     , QuickCheck, safe, servant, sop-core, template-haskell, text
-     , transformers
-     }:
-     mkDerivation {
-       pname = "servant-client-core";
        version = "0.20";
        sha256 = "012bdf3c44bqzb0ycns4pcxb0zidqqn7lpzz9316kiwy0wb4jx56";
        revision = "3";
@@ -267437,7 +267546,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Core functionality and class for client function generation for servant APIs";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-client-js" = callPackage
@@ -267516,28 +267624,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-conduit";
-       version = "0.15.1";
-       sha256 = "1vy3ihypb0zm2yd16rq120qw3898i3c0mahh2jysssv65g0avdwp";
-       revision = "3";
-       editedCabalFile = "1rcxn2m95zvxqvjbagk9gmwcyvx9wanhxmafwar4y4p15mvzd8d1";
-       libraryHaskellDepends = [
-         base bytestring conduit mtl resourcet servant unliftio-core
-       ];
-       testHaskellDepends = [
-         base base-compat bytestring conduit http-client http-media
-         resourcet servant servant-client servant-server wai warp
-       ];
-       description = "Servant Stream support for conduit";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "servant-conduit_0_16" = callPackage
-    ({ mkDerivation, base, base-compat, bytestring, conduit
-     , http-client, http-media, mtl, resourcet, servant, servant-client
-     , servant-server, unliftio-core, wai, warp
-     }:
-     mkDerivation {
-       pname = "servant-conduit";
        version = "0.16";
        sha256 = "037vqqq5k2jm6s7gg2shb6iyvjfblsr41ifjpryfxmsib669vs9f";
        revision = "1";
@@ -267551,7 +267637,6 @@ self: {
        ];
        description = "Servant Stream support for conduit";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-csharp" = callPackage
@@ -267644,37 +267729,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-docs";
-       version = "0.12";
-       sha256 = "0531jldq35sl1qlna0s1n8bakbsplg15611305dk48z80vcpa933";
-       revision = "6";
-       editedCabalFile = "14lxzg47mqc02i1xy6przkwndvhx8a93l12v4ag3q9ziyj51ra5d";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson aeson-pretty base base-compat bytestring case-insensitive
-         hashable http-media http-types lens servant string-conversions text
-         universe-base unordered-containers
-       ];
-       executableHaskellDepends = [
-         aeson base lens servant string-conversions text
-       ];
-       testHaskellDepends = [
-         aeson base base-compat lens servant string-conversions tasty
-         tasty-golden tasty-hunit transformers
-       ];
-       description = "generate API docs for your servant webservice";
-       license = lib.licenses.bsd3;
-       mainProgram = "greet-docs";
-     }) {};
-
-  "servant-docs_0_13" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, base-compat, bytestring
-     , case-insensitive, hashable, http-media, http-types, lens, servant
-     , string-conversions, tasty, tasty-golden, tasty-hunit, text
-     , transformers, universe-base, unordered-containers
-     }:
-     mkDerivation {
-       pname = "servant-docs";
        version = "0.13";
        sha256 = "0i91my86bcnn0jckf2qlfyx1zfbg8w6959v7iim60s3mdx9yjp67";
        revision = "2";
@@ -267695,7 +267749,6 @@ self: {
        ];
        description = "generate API docs for your servant webservice";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "greet-docs";
      }) {};
 
@@ -267923,25 +267976,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-foreign";
-       version = "0.15.4";
-       sha256 = "0bznb73rbgfgkg7n4pxghkqsfca0yw9vak73c6w8sqvc2mjnc7mz";
-       revision = "8";
-       editedCabalFile = "0dkcdch9m307ydziyh5gg2lnbjvh8p8k2qhwsgjsw9ss5sy0s9pf";
-       libraryHaskellDepends = [
-         base base-compat http-types lens servant text
-       ];
-       testHaskellDepends = [ base hspec servant ];
-       testToolDepends = [ hspec-discover ];
-       description = "Helpers for generating clients for servant APIs in any programming language";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "servant-foreign_0_16" = callPackage
-    ({ mkDerivation, base, base-compat, hspec, hspec-discover
-     , http-types, lens, servant, text
-     }:
-     mkDerivation {
-       pname = "servant-foreign";
        version = "0.16";
        sha256 = "15pir0x7dcyjmw71g4w00qgvcxyvhbkywzc3bvvaaprk5bjb3bmv";
        revision = "2";
@@ -267953,7 +267987,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Helpers for generating clients for servant APIs in any programming language";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-gdp" = callPackage
@@ -268130,43 +268163,6 @@ self: {
      , http-streams, http-types, HUnit, io-streams, kan-extensions
      , markdown-unlit, monad-control, mtl, network, QuickCheck
      , semigroupoids, servant, servant-client-core, servant-server, stm
-     , tdigest, text, time, transformers, transformers-base
-     , transformers-compat, wai, warp
-     }:
-     mkDerivation {
-       pname = "servant-http-streams";
-       version = "0.18.4";
-       sha256 = "15f24rcgz839cb38q4gs1liqrdyqjbazcqzjdxmv4307x072pv3a";
-       revision = "7";
-       editedCabalFile = "1m7zdskz9dv51xzjw8bxwssfsir0fz0dsi9hx785fnc3a0lvvrlz";
-       libraryHaskellDepends = [
-         base base-compat bytestring case-insensitive containers deepseq
-         exceptions http-common http-media http-streams http-types
-         io-streams kan-extensions monad-control mtl semigroupoids servant
-         servant-client-core text time transformers transformers-base
-         transformers-compat
-       ];
-       testHaskellDepends = [
-         aeson base base-compat bytestring deepseq entropy hspec
-         http-api-data http-streams http-types HUnit kan-extensions
-         markdown-unlit mtl network QuickCheck servant servant-client-core
-         servant-server stm tdigest text transformers transformers-compat
-         wai warp
-       ];
-       testToolDepends = [ hspec-discover markdown-unlit ];
-       description = "Automatic derivation of querying functions for servant";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "servant-http-streams_0_20" = callPackage
-    ({ mkDerivation, aeson, base, base-compat, bytestring
-     , case-insensitive, containers, deepseq, entropy, exceptions, hspec
-     , hspec-discover, http-api-data, http-common, http-media
-     , http-streams, http-types, HUnit, io-streams, kan-extensions
-     , markdown-unlit, monad-control, mtl, network, QuickCheck
-     , semigroupoids, servant, servant-client-core, servant-server, stm
      , text, time, transformers, transformers-base, transformers-compat
      , wai, warp
      }:
@@ -268282,6 +268278,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Automatically derive javascript functions to query servant webservices";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-jsonrpc" = callPackage
@@ -268295,6 +268292,8 @@ self: {
        libraryHaskellDepends = [ aeson base http-media servant text ];
        description = "JSON-RPC messages and endpoints";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "servant-jsonrpc-client" = callPackage
@@ -268312,6 +268311,7 @@ self: {
        ];
        description = "Generate JSON-RPC servant clients";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-jsonrpc-server" = callPackage
@@ -268327,6 +268327,7 @@ self: {
        ];
        description = "JSON-RPC servant servers";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-kotlin" = callPackage
@@ -268379,26 +268380,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-machines";
-       version = "0.15.1";
-       sha256 = "0k8abcc72s5bzcf2vmjkxxjnhk45rww6hr3l93msm2510hi6gda4";
-       revision = "2";
-       editedCabalFile = "0231278v3vs5ca3cx43711kzfbhqj2s7g67zcwrj39ly8i9kxm2n";
-       libraryHaskellDepends = [ base bytestring machines mtl servant ];
-       testHaskellDepends = [
-         base base-compat bytestring http-client http-media machines servant
-         servant-client servant-server wai warp
-       ];
-       description = "Servant Stream support for machines";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "servant-machines_0_16" = callPackage
-    ({ mkDerivation, base, base-compat, bytestring, http-client
-     , http-media, machines, mtl, servant, servant-client
-     , servant-server, wai, warp
-     }:
-     mkDerivation {
-       pname = "servant-machines";
        version = "0.16";
        sha256 = "0c2cz96m9lbzr318i4vpy55y37xagh7sf1g0hvxbsvwhnzqa4532";
        revision = "1";
@@ -268410,7 +268391,6 @@ self: {
        ];
        description = "Servant Stream support for machines";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-match" = callPackage
@@ -268491,8 +268471,8 @@ self: {
        pname = "servant-multipart";
        version = "0.12.1";
        sha256 = "1p55kb3zhq25ncp7wimhggssn68abfgsnlldk13rk1iajaj6y8y5";
-       revision = "5";
-       editedCabalFile = "0pf761m9l6jnqhljjj4i6zr9il8r9ajpqfxzqjgjsnbsg6872ykg";
+       revision = "6";
+       editedCabalFile = "092n8hgzl90pqfd4faxbyy692ay92wc5s4c6vfa4zjf358zpkjgl";
        libraryHaskellDepends = [
          base bytestring directory lens resourcet servant servant-docs
          servant-foreign servant-multipart-api servant-server
@@ -268512,8 +268492,8 @@ self: {
        pname = "servant-multipart-api";
        version = "0.12.1";
        sha256 = "1gifa9g7ggs0plzffrd9a8j24dmqvgbkkdkfzyy7mpmwrjqw7mcj";
-       revision = "5";
-       editedCabalFile = "05243nl7sbc7p5rvqssiqha1qv38a0qp0ppb227pg0x748xh7ai4";
+       revision = "6";
+       editedCabalFile = "1x0vdhadnf7qqz5i8d2bj788farin2nap6fpg07fbcm97nz19mz0";
        libraryHaskellDepends = [
          base bytestring servant text transformers
        ];
@@ -268531,6 +268511,8 @@ self: {
        pname = "servant-multipart-client";
        version = "0.12.2";
        sha256 = "0djvbfc1yk8dzadav3lfrq99m7grcxxgxaifj8nc173yfdjdq4y2";
+       revision = "1";
+       editedCabalFile = "1v51mgy6j307sbfi52w6j85wfch178r6gap3d2nx1sws3hh35vh4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -268681,7 +268663,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Generate a Swagger/OpenAPI/OAS 3.0 specification for your servant API.";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-options" = callPackage
@@ -268743,29 +268724,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-pipes";
-       version = "0.15.3";
-       sha256 = "1sd01f95rkraa0zdqqg2vwx91zsih0i0hqqkz55nnw9bsbsqhq1n";
-       revision = "2";
-       editedCabalFile = "1idjvfr8w5hr9dvhj9x08sfpy5xvjf0l7a5jhx9hdlfmrxk1cd8c";
-       libraryHaskellDepends = [
-         base bytestring monad-control mtl pipes pipes-safe servant
-       ];
-       testHaskellDepends = [
-         base base-compat bytestring http-client http-media pipes
-         pipes-bytestring pipes-safe servant servant-client servant-server
-         wai warp
-       ];
-       description = "Servant Stream support for pipes";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "servant-pipes_0_16" = callPackage
-    ({ mkDerivation, base, base-compat, bytestring, http-client
-     , http-media, monad-control, mtl, pipes, pipes-bytestring
-     , pipes-safe, servant, servant-client, servant-server, wai, warp
-     }:
-     mkDerivation {
-       pname = "servant-pipes";
        version = "0.16";
        sha256 = "00n2rmv4aar49247is2sgy58nal64lv05zci9lhkbgmmmi1hqd10";
        revision = "1";
@@ -268780,7 +268738,6 @@ self: {
        ];
        description = "Servant Stream support for pipes";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-polysemy" = callPackage
@@ -268892,6 +268849,7 @@ self: {
        description = "Servant Content-Type for proto-lens protobuf modules";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "servant-purescript" = callPackage
@@ -269001,7 +268959,6 @@ self: {
        ];
        description = "Instances of classes from openapi3 for servant-queryparam-core";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-queryparam-server" = callPackage
@@ -269271,8 +269228,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-serf";
-       version = "0.3.1.4";
-       sha256 = "0vl8bs8r0z8rb1v3pd79sbb00b9f7a7i1q85csr313wc9nss6y7p";
+       version = "0.3.1.6";
+       sha256 = "1pqr2cp85k83gy384qjl27kqznpngr85gv6sk593f13nhfxygwh9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -269325,46 +269282,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-server";
-       version = "0.19.2";
-       sha256 = "1a7msh8p59v5mgsnj5li9s3jg0jwq2zjsznr0cg7g0fncn7r1axy";
-       revision = "2";
-       editedCabalFile = "1ivyxgncv45lih7rqhkbz9d855mrlgylvy0apq2a97kp3iyy2053";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base base-compat base64-bytestring bytestring constraints
-         containers exceptions filepath http-api-data http-media http-types
-         monad-control mtl network network-uri resourcet servant sop-core
-         string-conversions tagged text transformers transformers-base wai
-         wai-app-static word8
-       ];
-       executableHaskellDepends = [
-         aeson base base-compat servant text wai warp
-       ];
-       testHaskellDepends = [
-         aeson base base-compat base64-bytestring bytestring directory hspec
-         hspec-wai http-types mtl QuickCheck resourcet safe servant
-         should-not-typecheck sop-core string-conversions temporary text
-         transformers transformers-compat wai wai-extra
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "A family of combinators for defining webservices APIs and serving them";
-       license = lib.licenses.bsd3;
-       mainProgram = "greet";
-     }) {};
-
-  "servant-server_0_20" = callPackage
-    ({ mkDerivation, aeson, base, base-compat, base64-bytestring
-     , bytestring, constraints, containers, directory, exceptions
-     , filepath, hspec, hspec-discover, hspec-wai, http-api-data
-     , http-media, http-types, monad-control, mtl, network, network-uri
-     , QuickCheck, resourcet, safe, servant, should-not-typecheck
-     , sop-core, string-conversions, tagged, temporary, text
-     , transformers, transformers-base, transformers-compat, wai
-     , wai-app-static, wai-extra, warp, word8
-     }:
-     mkDerivation {
-       pname = "servant-server";
        version = "0.20";
        sha256 = "1gp8pslk2sspi5vzrl1nimndpif7jhgzlffi2mzf1ap1bdwgxchk";
        revision = "4";
@@ -269390,7 +269307,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A family of combinators for defining webservices APIs and serving them";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "greet";
      }) {};
 
@@ -269678,36 +269594,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-swagger";
-       version = "1.1.11";
-       sha256 = "1kvnjq3iqc8xbgmbaz881r48vj4cpzx7pkwdgwbhqlmhg808bfgl";
-       revision = "1";
-       editedCabalFile = "0g2hcf4zrkg8cailad87f3kiv1pnnyw453h9cslwc6kyfx9m3csn";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         aeson aeson-pretty base base-compat bytestring hspec http-media
-         insert-ordered-containers lens QuickCheck servant singleton-bool
-         swagger2 text unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base base-compat directory doctest filepath hspec lens
-         lens-aeson QuickCheck servant swagger2 template-haskell text time
-         utf8-string vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Generate a Swagger/OpenAPI/OAS 2.0 specification for your servant API.";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "servant-swagger_1_2" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, base-compat, bytestring
-     , Cabal, cabal-doctest, directory, doctest, filepath, hspec
-     , hspec-discover, http-media, insert-ordered-containers, lens
-     , lens-aeson, QuickCheck, servant, singleton-bool, swagger2
-     , template-haskell, text, time, unordered-containers, utf8-string
-     , vector
-     }:
-     mkDerivation {
-       pname = "servant-swagger";
        version = "1.2";
        sha256 = "1dim4vlsd9zcz3ra0qwvb4hlbj0iarxygz78ksw8nbvqgbym3zjh";
        revision = "3";
@@ -269726,7 +269612,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Generate a Swagger/OpenAPI/OAS 2.0 specification for your servant API.";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-swagger-tags" = callPackage
@@ -269884,6 +269769,8 @@ self: {
        ];
        description = "Typed error wrapper for Servant";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "servant-typescript" = callPackage
@@ -269963,6 +269850,7 @@ self: {
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "servant-util-examples";
+       broken = true;
      }) {};
 
   "servant-util-beam-pg" = callPackage
@@ -270096,6 +269984,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "servant-xml_1_0_3" = callPackage
+    ({ mkDerivation, base, bytestring, http-media, servant, xmlbf
+     , xmlbf-xeno
+     }:
+     mkDerivation {
+       pname = "servant-xml";
+       version = "1.0.3";
+       sha256 = "1rn79pc0wvrzk5z8zcdir2ydia2bwksxrqbw5rma0ab0zsk3qvxf";
+       libraryHaskellDepends = [
+         base bytestring http-media servant xmlbf xmlbf-xeno
+       ];
+       description = "Servant support for the XML Content-Type";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "servant-xml-conduit" = callPackage
     ({ mkDerivation, base, bytestring, conduit, http-media, servant
      , xml-conduit, xml-types
@@ -270389,7 +270293,6 @@ self: {
        ];
        description = "Snap bindings for serversession";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "serversession-frontend-wai" = callPackage
@@ -270513,6 +270416,7 @@ self: {
        description = "Snaplet for the ses-html package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "sessions" = callPackage
@@ -270616,6 +270520,8 @@ self: {
        libraryHaskellDepends = [ base containers mtl syb ];
        description = "Functions that could be added to Data.Set.";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "set-monad" = callPackage
@@ -270817,6 +270723,8 @@ self: {
        ];
        description = "Ducktyped set interface for Haskell containers";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "setters" = callPackage
@@ -270970,6 +270878,8 @@ self: {
        ];
        description = "A flexible library for parsing and printing S-expression";
        license = "unknown";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "sext" = callPackage
@@ -271166,10 +271076,8 @@ self: {
      }:
      mkDerivation {
        pname = "sha1";
-       version = "0.1.1.0";
-       sha256 = "0qb3y13671lld2zkgnr720xacy8fmvv5g86ayhmi0xkx36ldkv7g";
-       revision = "1";
-       editedCabalFile = "16zxk8qdxysfsjxlicm4xjamnxg9mysdgwrfwc4qa67anqkqgxdv";
+       version = "0.1.1.1";
+       sha256 = "0bdrcsis3m8kkbwl6hvshkmfpymxja65hhr70avdxcwbpcm7slkx";
        libraryHaskellDepends = [
          base bytebuild byteslice primitive run-st
        ];
@@ -271293,10 +271201,8 @@ self: {
      }:
      mkDerivation {
        pname = "shake";
-       version = "0.19.7";
-       sha256 = "1lcr6q53qwm308bny6gfawcjhxsmalqi3dnwckam02zp2apmcaim";
-       revision = "1";
-       editedCabalFile = "1hz57kw5pp5cpbicbi7x8sz8c6qy58dzyiljz9b9f2r1rr683d9w";
+       version = "0.19.8";
+       sha256 = "0db5kmza7jp4f691q31lnp29m2bb0y0qis0r6zrhnnd24qxf7133";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -271336,6 +271242,7 @@ self: {
        ];
        description = "Utilities for building ATS projects with shake";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "shake-bench" = callPackage
@@ -271511,8 +271418,8 @@ self: {
      }:
      mkDerivation {
        pname = "shake-futhark";
-       version = "0.2.0.2";
-       sha256 = "0rcm4m65l7lv0nzxwq29vklpxv960b1x3kx2fvrbyb9r2carh5h5";
+       version = "0.2.0.3";
+       sha256 = "1qxqn7iq235rbbcwr95agdmgyl6gp9hxazn9n0219ypq165gsfwg";
        libraryHaskellDepends = [
          base containers directory filepath futhark shake text
        ];
@@ -271958,7 +271865,9 @@ self: {
        ];
        description = "physics engine and other tools for 2D shapes";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "shapes-bench";
+       broken = true;
      }) {};
 
   "shapes-demo" = callPackage
@@ -271978,6 +271887,7 @@ self: {
        ];
        description = "demos for the 'shapes' package";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "shapes-demo";
      }) {};
 
@@ -272224,8 +272134,8 @@ self: {
      }:
      mkDerivation {
        pname = "shellify";
-       version = "0.11.0.0";
-       sha256 = "0wb8v86x26mi6phz5vkklv1fm0v6j99qqc8zlhapha67jxs1v8x2";
+       version = "0.11.0.1";
+       sha256 = "1ighr9py1c2njiwdzb4fy0rlz7k8zb51la5mr8ciwh7r8zkmi0gv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -272330,27 +272240,6 @@ self: {
 
   "shelltestrunner" = callPackage
     ({ mkDerivation, base, cmdargs, Diff, directory, filemanip
-     , filepath, HUnit, parsec, pretty-show, process, regex-tdfa, safe
-     , test-framework, test-framework-hunit, utf8-string
-     }:
-     mkDerivation {
-       pname = "shelltestrunner";
-       version = "1.9.0.1";
-       sha256 = "1a2sn69hmmyw6v2cvaf3pdv160qwing2cgrsfrxbfsqcc85g7mqj";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         base cmdargs Diff directory filemanip filepath HUnit parsec
-         pretty-show process regex-tdfa safe test-framework
-         test-framework-hunit utf8-string
-       ];
-       description = "Easy, repeatable testing of CLI programs/commands";
-       license = "GPL";
-       mainProgram = "shelltest";
-     }) {};
-
-  "shelltestrunner_1_10" = callPackage
-    ({ mkDerivation, base, cmdargs, Diff, directory, filemanip
      , filepath, hspec, hspec-contrib, hspec-core, HUnit, parsec
      , pretty-show, process, regex-tdfa, safe, test-framework
      , test-framework-hunit, utf8-string
@@ -272368,7 +272257,6 @@ self: {
        ];
        description = "Easy, repeatable testing of CLI programs/commands";
        license = "GPL";
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "shelltest";
      }) {};
 
@@ -272441,22 +272329,24 @@ self: {
        ];
        description = "A Haskell implementation of the Shen programming language";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "shen";
+       broken = true;
      }) {};
 
   "shh" = callPackage
-    ({ mkDerivation, async, base, bytestring, Cabal, cabal-doctest
-     , containers, deepseq, directory, doctest, filepath, markdown-unlit
-     , mtl, process, PyF, split, stringsearch, tasty, tasty-hunit
-     , tasty-quickcheck, template-haskell, temporary, unix, utf8-string
+    ({ mkDerivation, async, base, bytestring, Cabal, containers
+     , deepseq, directory, filepath, markdown-unlit, mtl, process, PyF
+     , split, stringsearch, tasty, tasty-hunit, tasty-quickcheck
+     , template-haskell, temporary, unix, utf8-string
      }:
      mkDerivation {
        pname = "shh";
-       version = "0.7.2.2";
-       sha256 = "1y12a65wf4k2piq49k8v0j01py1vlfmlg4y8p6nxh80qcw46g6li";
+       version = "0.7.3.0";
+       sha256 = "18rb6jhkazl64mixnw0s4v824m4vvmnpap3lvv917xsjj605xx1a";
        isLibrary = true;
        isExecutable = true;
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          async base bytestring containers deepseq directory filepath mtl
          process split stringsearch template-haskell unix utf8-string
@@ -272465,8 +272355,8 @@ self: {
          async base bytestring deepseq directory temporary unix
        ];
        testHaskellDepends = [
-         async base bytestring directory doctest filepath PyF tasty
-         tasty-hunit tasty-quickcheck utf8-string
+         async base bytestring directory filepath PyF tasty tasty-hunit
+         tasty-quickcheck utf8-string
        ];
        testToolDepends = [ markdown-unlit ];
        description = "Simple shell scripting from Haskell";
@@ -273037,8 +272927,8 @@ self: {
      }:
      mkDerivation {
        pname = "si-timers";
-       version = "1.3.0.0";
-       sha256 = "05vclkfidy0cmspa5c79lb8dhn4c2jxq6559vcaq2dkgmqqd3fl5";
+       version = "1.4.0.0";
+       sha256 = "0mw53f830qhk99q5q1hbbh2ci2fzqg5k71lzjp39h50jxa6g776d";
        libraryHaskellDepends = [
          base deepseq io-classes mtl nothunks stm time
        ];
@@ -273265,6 +273155,7 @@ self: {
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        mainProgram = "signable-haskell-protoc";
+       broken = true;
      }) {};
 
   "signal" = callPackage
@@ -273294,7 +273185,9 @@ self: {
        executableHaskellDepends = [ base bytestring dbus time unliftio ];
        description = "Bindings for signal-cli's DBus interface";
        license = "AGPL";
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "signal-dbus-example";
+       broken = true;
      }) {};
 
   "signals" = callPackage
@@ -274361,15 +274254,23 @@ self: {
      }) {};
 
   "simple-sql-parser" = callPackage
-    ({ mkDerivation, base, mtl, parsec, pretty, tasty, tasty-hunit }:
+    ({ mkDerivation, base, containers, megaparsec, mtl
+     , parser-combinators, prettyprinter, tasty, tasty-hunit, text
+     }:
      mkDerivation {
        pname = "simple-sql-parser";
-       version = "0.6.0";
-       sha256 = "11jpqh00nfdldpanrcy01jd6xyg4xvz3b8g4csc8kswc47wff82i";
+       version = "0.7.1";
+       sha256 = "0jzmc5ian4y2jpng8c5xqf8igx5h186nw131vh6vq76nyzxxbx87";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base mtl parsec pretty ];
-       testHaskellDepends = [ base mtl parsec pretty tasty tasty-hunit ];
+       libraryHaskellDepends = [
+         base containers megaparsec mtl parser-combinators prettyprinter
+         text
+       ];
+       testHaskellDepends = [
+         base containers megaparsec mtl parser-combinators prettyprinter
+         tasty tasty-hunit text
+       ];
        description = "A parser for SQL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -274692,6 +274593,8 @@ self: {
        librarySystemDepends = [ libssh2 ];
        description = "Simple wrapper around libssh2";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) libssh2;};
 
   "simplest-sqlite" = callPackage
@@ -274727,7 +274630,9 @@ self: {
        ];
        description = "A simple markup language that translates to LaTeX";
        license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "simplex";
+       broken = true;
      }) {};
 
   "simplex-basic" = callPackage
@@ -274957,19 +274862,6 @@ self: {
     ({ mkDerivation, base, boring, dec, deepseq, some }:
      mkDerivation {
        pname = "singleton-bool";
-       version = "0.1.6";
-       sha256 = "1pc34dbzx5g3vw5w03zifvqva3whyvxzfy3yh78qkpd05f0g98sw";
-       revision = "2";
-       editedCabalFile = "1l4nx664awgwzk3ih5idsgnj220jqdr1c55241xjv7fz7lwyhh5r";
-       libraryHaskellDepends = [ base boring dec deepseq some ];
-       description = "Type level booleans";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "singleton-bool_0_1_7" = callPackage
-    ({ mkDerivation, base, boring, dec, deepseq, some }:
-     mkDerivation {
-       pname = "singleton-bool";
        version = "0.1.7";
        sha256 = "16xj7d3qnd8nhk66kxm5c145l1060m9yz2yc9y47wsf3hriijb8w";
        revision = "1";
@@ -274977,7 +274869,6 @@ self: {
        libraryHaskellDepends = [ base boring dec deepseq some ];
        description = "Type level booleans";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "singleton-dict" = callPackage
@@ -275002,6 +274893,7 @@ self: {
        libraryHaskellDepends = [ base singletons singletons-base ];
        description = "Unary natural numbers relying on the singletons infrastructure";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "singleton-typelits" = callPackage
@@ -275038,8 +274930,8 @@ self: {
      }:
      mkDerivation {
        pname = "singletons-base";
-       version = "3.1.1";
-       sha256 = "0d32c1dmi8mlrli0927g3hy6gip4c9w0myza3x594nlb6cnwdj6f";
+       version = "3.2";
+       sha256 = "0m96dz9k5wls5m3vls65clws1yfd73skblv878yj06lw9nmwshy9";
        setupHaskellDepends = [ base Cabal directory filepath ];
        libraryHaskellDepends = [
          base pretty singletons singletons-th template-haskell text
@@ -275051,6 +274943,8 @@ self: {
        ];
        description = "A promoted and singled version of the base library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "singletons-base_3_3" = callPackage
@@ -275074,6 +274968,7 @@ self: {
        description = "A promoted and singled version of the base library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "singletons-presburger" = callPackage
@@ -275082,8 +274977,8 @@ self: {
      }:
      mkDerivation {
        pname = "singletons-presburger";
-       version = "0.7.2.0";
-       sha256 = "1rycf37951dz6mblj65mj1aahlsm2d15mzz65qr52fccpn965v29";
+       version = "0.7.3.0";
+       sha256 = "00dbagcga3pkbss4asa383vabb42yprv29fp6sqq5drkw6pja32v";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -275092,6 +274987,7 @@ self: {
        ];
        description = "Presburger Arithmetic Solver for GHC Type-level natural numbers with Singletons package";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "singletons-th" = callPackage
@@ -275100,8 +274996,8 @@ self: {
      }:
      mkDerivation {
        pname = "singletons-th";
-       version = "3.1.1";
-       sha256 = "1bp9abhbk6ad27p0ksqx2nhrkp6r9dgx20dzyl3bq1zf6nz92ss6";
+       version = "3.2";
+       sha256 = "1r4m9h9wwq86lww3aq7jxzias78ix79kgnj24slaps848d7hhpkp";
        libraryHaskellDepends = [
          base containers ghc-boot-th mtl singletons syb template-haskell
          th-desugar th-orphans transformers
@@ -275386,6 +275282,8 @@ self: {
        testHaskellDepends = [ base bytestring containers lens mtl ];
        description = "An eDSL for writing 65(C)02 bytecode";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "size-based" = callPackage
@@ -275413,8 +275311,8 @@ self: {
      }:
      mkDerivation {
        pname = "sized";
-       version = "1.1.0.0";
-       sha256 = "06wgq9ll62a486fvd0fy5b69zbdj2cf6j1zc42j0c25aa4jqcv0s";
+       version = "1.1.0.1";
+       sha256 = "0ncgzl6qif9zs78d4hp7vmghv99mx3vvydn3ls37k1fvqqpwz2z9";
        libraryHaskellDepends = [
          base constraints containers deepseq equational-reasoning
          ghc-typelits-knownnat ghc-typelits-presburger hashable lens
@@ -275858,32 +275756,6 @@ self: {
      }:
      mkDerivation {
        pname = "skylighting";
-       version = "0.13.4.1";
-       sha256 = "091cjjv8y0y5pfz5fphyzs94nzslbz8j5i07ma6pfqd1bjrh9xzi";
-       configureFlags = [ "-fexecutable" ];
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base binary containers skylighting-core skylighting-format-ansi
-         skylighting-format-blaze-html skylighting-format-context
-         skylighting-format-latex
-       ];
-       executableHaskellDepends = [
-         base blaze-html bytestring containers pretty-show text
-       ];
-       description = "syntax highlighting library";
-       license = lib.licenses.gpl2Only;
-       mainProgram = "skylighting";
-     }) {};
-
-  "skylighting_0_14_1" = callPackage
-    ({ mkDerivation, base, binary, blaze-html, bytestring, containers
-     , pretty-show, skylighting-core, skylighting-format-ansi
-     , skylighting-format-blaze-html, skylighting-format-context
-     , skylighting-format-latex, text
-     }:
-     mkDerivation {
-       pname = "skylighting";
        version = "0.14.1";
        sha256 = "1fyi6hw7mhm12isl9005q16b50z3594f8vb9bdf7llgzszbxa2js";
        configureFlags = [ "-fexecutable" ];
@@ -275899,7 +275771,6 @@ self: {
        ];
        description = "syntax highlighting library";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "skylighting";
      }) {};
 
@@ -275912,36 +275783,6 @@ self: {
      }:
      mkDerivation {
        pname = "skylighting-core";
-       version = "0.13.4.1";
-       sha256 = "1hz2r8qpkjf9m5fgpw39vqp3rq1cbkamxss65i40bqihbjzysm65";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson attoparsec base base64-bytestring binary bytestring
-         case-insensitive colour containers directory filepath mtl safe text
-         transformers utf8-string xml-conduit
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers Diff directory filepath
-         pretty-show QuickCheck tasty tasty-golden tasty-hunit
-         tasty-quickcheck text
-       ];
-       benchmarkHaskellDepends = [
-         base containers criterion filepath text
-       ];
-       description = "syntax highlighting library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "skylighting-core_0_14_1" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, base64-bytestring, binary
-     , bytestring, case-insensitive, colour, containers, criterion, Diff
-     , directory, filepath, mtl, pretty-show, QuickCheck, safe, tasty
-     , tasty-golden, tasty-hunit, tasty-quickcheck, text, transformers
-     , utf8-string, xml-conduit
-     }:
-     mkDerivation {
-       pname = "skylighting-core";
        version = "0.14.1";
        sha256 = "1i63id4gjvrifzqfagz16h4j395amkd7rc57my48xxgsxs20ag4b";
        isLibrary = true;
@@ -275961,7 +275802,6 @@ self: {
        ];
        description = "syntax highlighting library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "skylighting-extensions" = callPackage
@@ -276046,6 +275886,8 @@ self: {
        ];
        description = "Lucid support for Skylighting";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "skylighting-modding" = callPackage
@@ -276188,7 +276030,9 @@ self: {
          text transformers wreq
        ];
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "slack-progressbar-exe";
+       broken = true;
      }) {};
 
   "slack-verify" = callPackage
@@ -276246,6 +276090,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Bindings for the Slack web API";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "slate" = callPackage
@@ -277236,8 +277082,8 @@ self: {
        pname = "smtlib-backends";
        version = "0.3";
        sha256 = "13pyic8zq0dv7w529pciw0zfpzx63mrf3bq5nillsswbk0czv0qw";
-       revision = "1";
-       editedCabalFile = "1w7vcgj8x4w9py2b49rqn8gkqybfx3vzz4nyggli2b6vm2bpz5v9";
+       revision = "2";
+       editedCabalFile = "1g2pfmdmqkf3agxnzirgpp9sibjz5m89pjnx7f1i98znk6nswix9";
        libraryHaskellDepends = [ base bytestring ];
        description = "Low-level functions for SMT-LIB-based interaction with SMT solvers";
        license = lib.licenses.mit;
@@ -277251,8 +277097,8 @@ self: {
        pname = "smtlib-backends-process";
        version = "0.3";
        sha256 = "0jc7fmf3x53w8v0a8cj8v8r2f4gpn1jhndl80hyqzsblvrw5hcfg";
-       revision = "1";
-       editedCabalFile = "07g1pwg3ss364yg79xychls0bn145985pscr4vxs5j213zlr7viy";
+       revision = "2";
+       editedCabalFile = "09hszx3ba4d5x11sdv8fagb0nkg1m0q32wc264x5x0pnsv9k3wfa";
        libraryHaskellDepends = [
          base bytestring process smtlib-backends
        ];
@@ -277285,10 +277131,8 @@ self: {
      }:
      mkDerivation {
        pname = "smtlib-backends-z3";
-       version = "0.3";
-       sha256 = "1dny8jmkx1aclq5sbn4kgnpn0sg1rf34za0j6ppggzmh647aim8l";
-       revision = "1";
-       editedCabalFile = "094jq4fizsaj5yy3m9z5xv8zm5h110y0a91rkqzyml7f57yzlj5p";
+       version = "0.3.1";
+       sha256 = "1mgjlfhqcbqc84a87g6bp0i9pnmpz87b7w43x200mwx1k877zddy";
        libraryHaskellDepends = [ base bytestring smtlib-backends ];
        librarySystemDepends = [ gomp z3 ];
        testHaskellDepends = [
@@ -277402,6 +277246,7 @@ self: {
        ];
        description = "Simple email sending via SMTP";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "smtp-mail-ng" = callPackage
@@ -277559,6 +277404,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A programming language with no semantics";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snake" = callPackage
@@ -277625,7 +277472,6 @@ self: {
        ];
        description = "Top-level package for the Snap Web Framework";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
@@ -277798,6 +277644,7 @@ self: {
        description = "Collect errors in batches and dispatch them";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snap-extras" = callPackage
@@ -277921,6 +277768,7 @@ self: {
        description = "Typesafe URLs for Snap applications";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snap-server" = callPackage
@@ -277972,8 +277820,8 @@ self: {
      }:
      mkDerivation {
        pname = "snap-stream";
-       version = "0.1.1.0";
-       sha256 = "1p1ip3rsk9xmy9758csf1c4nxng9kas5qya2nlcrd02q3lmfna6x";
+       version = "0.1.1.1";
+       sha256 = "1b6g8zdj4xn1gq0q6d31kqc5fssrrl1w4jwklcjxq6kr91icjmnm";
        libraryHaskellDepends = [
          attoparsec base bytestring io-streams snap-core
        ];
@@ -278027,6 +277875,7 @@ self: {
        description = "A library for BDD-style testing with the Snap Web Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snap-utils" = callPackage
@@ -278075,6 +277924,7 @@ self: {
        description = "acid-state snaplet for Snap Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-actionlog" = callPackage
@@ -278118,6 +277968,7 @@ self: {
        description = "Snap framework snaplet for the AMQP library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-auth-acid" = callPackage
@@ -278159,6 +278010,7 @@ self: {
        description = "CoffeeScript for Snap, auto-compilation and pre-compilation";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-css-min" = callPackage
@@ -278176,6 +278028,7 @@ self: {
        description = "A Snaplet for CSS minification";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-customauth" = callPackage
@@ -278216,6 +278069,7 @@ self: {
        description = "DEPRECATED! You should use standard Snap >= 0.9 \"environments\" functionality. It provided ability to easly read configuration based on given app environment given at command line, envs are defined in app configuration file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-fay" = callPackage
@@ -278252,7 +278106,6 @@ self: {
        ];
        description = "Serve javascript files compiled with GHCJS";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "snaplet-hasql" = callPackage
@@ -278325,6 +278178,7 @@ self: {
        description = "Snap framework snaplet for the Logger API library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-i18n" = callPackage
@@ -278348,7 +278202,6 @@ self: {
        ];
        description = "snaplet-i18n";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "demo";
      }) {};
 
@@ -278369,6 +278222,7 @@ self: {
        description = "Snap framework snaplet for the InfluxDB library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-lss" = callPackage
@@ -278403,6 +278257,7 @@ self: {
        description = "Snap framework snaplet for the Mandrill API library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-mongoDB" = callPackage
@@ -278438,6 +278293,7 @@ self: {
        description = "Minimalistic MongoDB Snaplet";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-mysql-simple" = callPackage
@@ -278507,6 +278363,7 @@ self: {
        description = "persistent snaplet for the Snap Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-postgresql-simple" = callPackage
@@ -278532,6 +278389,7 @@ self: {
        description = "postgresql-simple snaplet for the Snap Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-postmark" = callPackage
@@ -278566,6 +278424,7 @@ self: {
        description = "Automatic (re)compilation of purescript projects";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-recaptcha" = callPackage
@@ -278604,6 +278463,7 @@ self: {
        description = "Redis support for Snap Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-redson" = callPackage
@@ -278678,6 +278538,7 @@ self: {
        description = "Sass integration for Snap with request- and pre-compilation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-scoped-session" = callPackage
@@ -278695,6 +278556,7 @@ self: {
        description = "Modularised session state for Snaplets, in a Snaplet";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-sedna" = callPackage
@@ -278729,6 +278591,7 @@ self: {
        description = "Snaplet for the ses-html package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-sqlite-simple" = callPackage
@@ -278760,6 +278623,7 @@ self: {
        description = "sqlite-simple snaplet for the Snap Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-sqlite-simple-jwt-auth" = callPackage
@@ -278834,6 +278698,7 @@ self: {
        description = "Typed session snaplets and continuation-based programming for the Snap web framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "snaplet-wordpress" = callPackage
@@ -278881,6 +278746,37 @@ self: {
        license = lib.licenses.bsd3;
      }) {inherit (pkgs) snappy;};
 
+  "snappy-c" = callPackage
+    ({ mkDerivation, base, bytestring, conduit, criterion, data-default
+     , deepseq, digest, mtl, optparse-applicative, random, snappy
+     , snappy-lazy, tasty, tasty-hunit, tasty-quickcheck, zlib
+     }:
+     mkDerivation {
+       pname = "snappy-c";
+       version = "0.1.0";
+       sha256 = "02q3bikni0ajwiiah3w6bay24wc9ip6jgnb2nidnwshk4s7i84y7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring data-default digest mtl
+       ];
+       librarySystemDepends = [ snappy ];
+       executableHaskellDepends = [
+         base bytestring conduit data-default optparse-applicative
+       ];
+       testHaskellDepends = [
+         base bytestring tasty tasty-hunit tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion deepseq random snappy-lazy zlib
+       ];
+       description = "Bindings to Google's Snappy: A fast compression library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "snappy-cli";
+       broken = true;
+     }) {inherit (pkgs) snappy;};
+
   "snappy-conduit" = callPackage
     ({ mkDerivation, base, bytestring, conduit, snappy }:
      mkDerivation {
@@ -279286,6 +279182,7 @@ self: {
        ];
        description = "TLS-enabled SOAP transport (using tls package)";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sock2stream" = callPackage
@@ -279520,6 +279417,7 @@ self: {
        doHaddock = false;
        description = "Support for the Sockets and Pipes book";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "socketson" = callPackage
@@ -279628,6 +279526,33 @@ self: {
        mainProgram = "solana-staking-csvs";
      }) {};
 
+  "solana-staking-csvs_0_1_3_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cassava, cmdargs
+     , cointracking-imports, containers, exceptions, hedgehog
+     , http-client, http-types, mtl, req, scientific, tasty
+     , tasty-hedgehog, tasty-hunit, text, time
+     }:
+     mkDerivation {
+       pname = "solana-staking-csvs";
+       version = "0.1.3.0";
+       sha256 = "1rpz8iv0lb8v923m4n5yak1wxly49rpsy69wzjghlvvqfq5ir63a";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring cassava cmdargs cointracking-imports
+         containers exceptions http-client http-types mtl req scientific
+         text time
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base hedgehog tasty tasty-hedgehog tasty-hunit
+       ];
+       description = "Generate CSV Exports of your Solana Staking Rewards";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "solana-staking-csvs";
+     }) {};
+
   "solar" = callPackage
     ({ mkDerivation, base, time }:
      mkDerivation {
@@ -279747,18 +279672,6 @@ self: {
      }) {};
 
   "some" = callPackage
-    ({ mkDerivation, base, deepseq }:
-     mkDerivation {
-       pname = "some";
-       version = "1.0.4.1";
-       sha256 = "1qy840b2f58f0jxmw4q9sfgbx64kypzdlqnwc72md5wwv84b9b1d";
-       libraryHaskellDepends = [ base deepseq ];
-       testHaskellDepends = [ base ];
-       description = "Existential type: Some";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "some_1_0_6" = callPackage
     ({ mkDerivation, base, base-orphans, deepseq }:
      mkDerivation {
        pname = "some";
@@ -279768,7 +279681,6 @@ self: {
        testHaskellDepends = [ base ];
        description = "Existential type: Some";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "some-dict-of" = callPackage
@@ -279882,19 +279794,6 @@ self: {
     ({ mkDerivation, base, criterion, deepseq, QuickCheck }:
      mkDerivation {
        pname = "sorted-list";
-       version = "0.2.1.2";
-       sha256 = "0g4b8pcvqjx7qqrd4ga53n8ff2k0hcmkzj6wzq560i2lqiyzjpx5";
-       libraryHaskellDepends = [ base deepseq ];
-       testHaskellDepends = [ base QuickCheck ];
-       benchmarkHaskellDepends = [ base criterion ];
-       description = "Type-enforced sorted lists and related functions";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "sorted-list_0_2_2_0" = callPackage
-    ({ mkDerivation, base, criterion, deepseq, QuickCheck }:
-     mkDerivation {
-       pname = "sorted-list";
        version = "0.2.2.0";
        sha256 = "0dqgk1fxmk9z97wc5lii5rhalbjhfq6i9db95scj7g91lrv0zrrr";
        libraryHaskellDepends = [ base deepseq ];
@@ -279902,7 +279801,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Type-enforced sorted lists and related functions";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sortee" = callPackage
@@ -279988,19 +279886,19 @@ self: {
   "souffle-haskell" = callPackage
     ({ mkDerivation, array, base, bytestring, criterion, deepseq
      , directory, filepath, hedgehog, hspec, hspec-hedgehog, mtl
-     , process, profunctors, temporary, text, text-short, vector
+     , process, profunctors, temporary, text, vector
      }:
      mkDerivation {
        pname = "souffle-haskell";
-       version = "3.5.1";
-       sha256 = "0vxwbs0nc7rvlcfb62nx8fa5kghwgxakg4djqmsrcq2qdvxvifbh";
+       version = "4.0.0";
+       sha256 = "1mvg53w1s5nh0md9zpkm8gnydy9i2ympnqxyhgn9z9wrs6a265fx";
        libraryHaskellDepends = [
          array base bytestring deepseq directory filepath mtl process
-         profunctors temporary text text-short vector
+         profunctors temporary text vector
        ];
        testHaskellDepends = [
          array base directory hedgehog hspec hspec-hedgehog profunctors
-         temporary text text-short vector
+         temporary text vector
        ];
        benchmarkHaskellDepends = [ base criterion deepseq text vector ];
        description = "Souffle Datalog bindings for Haskell";
@@ -280723,24 +280621,6 @@ self: {
   "spatial-math" = callPackage
     ({ mkDerivation, base, binary, cereal, doctest, ghc-prim, lens
      , linear, QuickCheck, test-framework, test-framework-quickcheck2
-     }:
-     mkDerivation {
-       pname = "spatial-math";
-       version = "0.2.7.0";
-       sha256 = "0n98mpcr4s1c1p00mn04m7izffphsgzja2mins0lzgcycgckc1m4";
-       libraryHaskellDepends = [
-         base binary cereal ghc-prim lens linear
-       ];
-       testHaskellDepends = [
-         base doctest QuickCheck test-framework test-framework-quickcheck2
-       ];
-       description = "3d math including quaternions/euler angles/dcms and utility functions";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "spatial-math_0_5_0_1" = callPackage
-    ({ mkDerivation, base, binary, cereal, doctest, ghc-prim, lens
-     , linear, QuickCheck, test-framework, test-framework-quickcheck2
      , TypeCompose
      }:
      mkDerivation {
@@ -280918,8 +280798,8 @@ self: {
        pname = "species";
        version = "0.4.0.1";
        sha256 = "0d9vkplg2lrwb34i2ziaa9hc8dnpkjkmwd5b27kigcqfigck6ym2";
-       revision = "4";
-       editedCabalFile = "0b6sq54jyx8612x8h6qs4aip7ddx3k6d14kw78w7irdcmxbbqarz";
+       revision = "5";
+       editedCabalFile = "0r3h5gxldzd5kq11a233jd7v94s7r94r5vx0szmdi9q5kp8m4kaj";
        libraryHaskellDepends = [
          base containers multiset-comb np-extras numeric-prelude
          template-haskell
@@ -280986,6 +280866,21 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "speculate_0_4_18" = callPackage
+    ({ mkDerivation, base, cmdargs, containers, express, leancheck }:
+     mkDerivation {
+       pname = "speculate";
+       version = "0.4.18";
+       sha256 = "0pqbrirw3fni46kpdymncczrqn0nsrglgx5m0l0yabfmkv7q45fy";
+       libraryHaskellDepends = [
+         base cmdargs containers express leancheck
+       ];
+       testHaskellDepends = [ base express leancheck ];
+       description = "discovery of properties about Haskell functions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "speculation" = callPackage
     ({ mkDerivation, base, ghc-prim, stm, transformers }:
      mkDerivation {
@@ -281012,6 +280907,33 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "specup" = callPackage
+    ({ mkDerivation, base, bytestring, extra, hspec, hspec-core
+     , megaparsec, optparse-applicative, process, stache, text, yaml
+     }:
+     mkDerivation {
+       pname = "specup";
+       version = "0.2.0.0";
+       sha256 = "0in1qr13xx41j3whmwch58gk6nqyj7314v0v1s7y97cczsi391q4";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring extra megaparsec stache text yaml
+       ];
+       executableHaskellDepends = [
+         base bytestring optparse-applicative text
+       ];
+       testHaskellDepends = [
+         base bytestring hspec hspec-core process text
+       ];
+       description = "Manage the application of templates to custom yaml";
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "specup";
+       maintainers = [ lib.maintainers.danielrolls ];
+       broken = true;
+     }) {};
+
   "speechmatics" = callPackage
     ({ mkDerivation, aeson, base, bytestring, heavy-logger, HsOpenSSL
      , hspec, http-client, http-client-openssl, http-types
@@ -281364,7 +281286,6 @@ self: {
        ];
        description = "A parallel implementation of the Sorokina/Zeilfelder spline scheme";
        license = lib.licenses.agpl3Only;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "spline3";
      }) {};
 
@@ -281407,25 +281328,12 @@ self: {
     ({ mkDerivation, base, QuickCheck }:
      mkDerivation {
        pname = "split";
-       version = "0.2.3.5";
-       sha256 = "0n9ip49laq5jwqw0c43lhf69ii8y4lwci9j6d5bjnjim23bai2mz";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base QuickCheck ];
-       description = "Combinator library for splitting lists";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "split_0_2_4" = callPackage
-    ({ mkDerivation, base, QuickCheck }:
-     mkDerivation {
-       pname = "split";
-       version = "0.2.4";
-       sha256 = "1crixdmpjzahfiwkkm995rj5ymnm60rknqy252dv23pks00f77vl";
+       version = "0.2.5";
+       sha256 = "04x9figcib2zwki2rk29i2n5r73ykbyx9j2lhcisphcphd741njj";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base QuickCheck ];
        description = "Combinator library for splitting lists";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "split-channel" = callPackage
@@ -281559,7 +281467,9 @@ self: {
        ];
        description = "A tool for visualizing the lifecycle of many concurrent multi-staged processes";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "splot";
+       broken = true;
      }) {};
 
   "spooky" = callPackage
@@ -281930,8 +281840,8 @@ self: {
      }:
      mkDerivation {
        pname = "sqids";
-       version = "0.2.0.0";
-       sha256 = "0sabrvwhzf9xvj9gwnwxjvg4f2qv7qgaabvl7nhrv12zxfjvh5jm";
+       version = "0.2.1.0";
+       sha256 = "16qw5mdvyhbp3m8z6wrw0qzpimnndp4qhwzqdbxzdi528wyi1b3s";
        libraryHaskellDepends = [
          base bytestring containers mtl text transformers
        ];
@@ -282065,6 +281975,8 @@ self: {
        librarySystemDepends = [ unixODBC ];
        description = "Bindings for SQL/CLI (ODBC) C API";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) unixODBC;};
 
   "sqlcli-odbc" = callPackage
@@ -282076,6 +281988,7 @@ self: {
        libraryHaskellDepends = [ base logging sqlcli ];
        description = "ODBC specific definitions to be used by SQL CLI clients";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sqlite" = callPackage
@@ -282104,8 +282017,8 @@ self: {
      }:
      mkDerivation {
        pname = "sqlite-easy";
-       version = "1.0.0.0";
-       sha256 = "0w8mdfx4cwppdadbhqrcsl3lhwwmj7qv0r9r11lcm7y9frah7c02";
+       version = "1.1.0.0";
+       sha256 = "12x89y3hsy51ydb8lnawws9cbqyj9x98mk3pwm5pc62pcwy947yi";
        libraryHaskellDepends = [
          base bytestring direct-sqlite migrant-core mtl resource-pool text
          unliftio-core
@@ -282116,20 +282029,23 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A primitive yet easy to use sqlite library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "sqlite-simple" = callPackage
     ({ mkDerivation, attoparsec, base, base16-bytestring, blaze-builder
-     , blaze-textual, bytestring, containers, direct-sqlite, HUnit, Only
-     , template-haskell, text, time, transformers
+     , blaze-textual, bytestring, containers, direct-sqlite, exceptions
+     , HUnit, Only, template-haskell, text, time, transformers
      }:
      mkDerivation {
        pname = "sqlite-simple";
-       version = "0.4.18.2";
-       sha256 = "14axfc9ii08g7yx3j9n5hrfrsmab3pjv7n0cshcg4a2lvnkv25fw";
+       version = "0.4.19.0";
+       sha256 = "0fijx4shdr81wxw70m4wj7lqzn38iajlp48mbjva42890qb7swiq";
        libraryHaskellDepends = [
          attoparsec base blaze-builder blaze-textual bytestring containers
-         direct-sqlite Only template-haskell text time transformers
+         direct-sqlite exceptions Only template-haskell text time
+         transformers
        ];
        testHaskellDepends = [
          base base16-bytestring bytestring direct-sqlite HUnit text time
@@ -282166,6 +282082,7 @@ self: {
        testHaskellDepends = [ base sqlite-simple ];
        description = "Interpolated SQLite queries via quasiquotation";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sqlite-simple-typed" = callPackage
@@ -282525,7 +282442,9 @@ self: {
        ];
        description = "A simple web server for local usage";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "srv";
+       broken = true;
      }) {};
 
   "sscan" = callPackage
@@ -282692,7 +282611,9 @@ self: {
        ];
        description = "Wrapper daemon to manage an ssh tunnel";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "sshtun";
+       broken = true;
      }) {};
 
   "sssp" = callPackage
@@ -282866,6 +282787,8 @@ self: {
        pname = "stache";
        version = "2.3.4";
        sha256 = "0kgiyxws2kir8q8zrqkzmk103y7hl6nksxl70f6fy8m9fqkjga51";
+       revision = "1";
+       editedCabalFile = "16hg9ry7vkyv218913nn0pdhjk4hzn4a4r15pm2g28mms0bh4lx5";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -282906,8 +282829,8 @@ self: {
      }:
      mkDerivation {
        pname = "stack";
-       version = "2.13.1";
-       sha256 = "0qdhrm50g0gsyk2q7fxp40all42z3rn53qmfakc3qyj4p9rxdf20";
+       version = "2.15.1";
+       sha256 = "1d9n7kpqvqknjkb4nj9p6i2k2cb7g1x89azw1k9bpkcdsbmhir4q";
        configureFlags = [
          "-fdisable-git-info" "-fhide-dependency-versions"
          "-fsupported-build"
@@ -283016,24 +282939,6 @@ self: {
 
   "stack-clean-old" = callPackage
     ({ mkDerivation, base, directory, extra, filemanip, filepath
-     , simple-cmd, simple-cmd-args
-     }:
-     mkDerivation {
-       pname = "stack-clean-old";
-       version = "0.4.8";
-       sha256 = "0jyy6dnycycqqna8ihwvb6czcvb2yrfcg3dhj28xbn7dzpxbc197";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         base directory extra filemanip filepath simple-cmd simple-cmd-args
-       ];
-       description = "Clean away old stack build artifacts";
-       license = lib.licenses.bsd3;
-       mainProgram = "stack-clean-old";
-     }) {};
-
-  "stack-clean-old_0_5_1" = callPackage
-    ({ mkDerivation, base, directory, extra, filemanip, filepath
      , simple-cmd, simple-cmd-args, simple-prompt
      }:
      mkDerivation {
@@ -283048,7 +282953,6 @@ self: {
        ];
        description = "Clean away old stack build artifacts";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "stack-clean-old";
      }) {};
 
@@ -283243,7 +283147,9 @@ self: {
        ];
        description = "Create etags for Haskell projects based on Stack snapshots";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "stack-tag";
+       broken = true;
      }) {};
 
   "stack-templatizer" = callPackage
@@ -283881,6 +283787,29 @@ self: {
        mainProgram = "stagen";
      }) {};
 
+  "stamina" = callPackage
+    ({ mkDerivation, base, exceptions, hspec, http-client, http-types
+     , markdown-unlit, mtl, random, time
+     }:
+     mkDerivation {
+       pname = "stamina";
+       version = "0.1.0.3";
+       sha256 = "0w130kf4vdbsjb4h0ycb1ykj5a3giallggnw0dpn88kzz88q7qjm";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base exceptions http-client http-types random time
+       ];
+       executableHaskellDepends = [ base exceptions ];
+       executableToolDepends = [ markdown-unlit ];
+       testHaskellDepends = [
+         base exceptions hspec http-client mtl time
+       ];
+       description = "Retries for humans";
+       license = lib.licenses.asl20;
+       mainProgram = "readme";
+     }) {};
+
   "stan" = callPackage
     ({ mkDerivation, array, base, base64, blaze-html, bytestring, clay
      , colourista, containers, cryptohash-sha1, dir-traverse, directory
@@ -283891,8 +283820,8 @@ self: {
      }:
      mkDerivation {
        pname = "stan";
-       version = "0.1.1.0";
-       sha256 = "0w5i4xfzgbsfv3yzl0j9wzqwyi2z4ynfkrqsa4lnbxrf0xnmnazn";
+       version = "0.1.2.1";
+       sha256 = "1v1f2a1j7dfi9yxkcm6q9jh4bv9yh2yndj7k5dj2fa889pgq134r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -284195,8 +284124,8 @@ self: {
        pname = "statestack";
        version = "0.3.1.1";
        sha256 = "1747qzaj3xqc90fj4ddch3ra5kj52rfd1dn7a8c6fkdk68q76mfd";
-       revision = "1";
-       editedCabalFile = "0rxndmrq4gj1bc9cf20477n8d6kpri31dyl6x8f4h57yiwhblg55";
+       revision = "2";
+       editedCabalFile = "1k60fkszxxyya6amqyjkz5dsxri3c07kgdr6mb1hw4b3dnvq6gwa";
        libraryHaskellDepends = [ base mtl transformers ];
        description = "Simple State-like monad transformer with saveable and restorable state";
        license = lib.licenses.bsd3;
@@ -284316,29 +284245,29 @@ self: {
   "static-ls" = callPackage
     ({ mkDerivation, array, base, containers, directory, errors, extra
      , filepath, ghc, ghc-paths, ghcide, hiedb, hspec, hspec-discover
-     , lsp, lsp-types, mtl, sqlite-simple, template-haskell, text
-     , transformers, unliftio-core
+     , lsp, lsp-types, mtl, optparse-applicative, parsec, sqlite-simple
+     , template-haskell, text, transformers, unliftio-core
      }:
      mkDerivation {
        pname = "static-ls";
-       version = "0.1.0";
-       sha256 = "1bxhz8lbfhysjlcc4g9q7b7ijxgr1h52n5gx4fc0iznqrmnkkwn7";
+       version = "0.1.2";
+       sha256 = "0q1nawdwb1f6l2l1bdg2yxydcl5dp38f1wlvgn9wrr1vpkamna72";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          array base containers directory errors extra filepath ghc ghc-paths
-         ghcide hiedb lsp lsp-types mtl sqlite-simple template-haskell text
-         transformers unliftio-core
+         ghcide hiedb lsp lsp-types mtl parsec sqlite-simple
+         template-haskell text transformers unliftio-core
        ];
        executableHaskellDepends = [
          array base containers directory errors extra filepath ghc ghc-paths
-         ghcide hiedb lsp lsp-types mtl sqlite-simple template-haskell text
-         transformers unliftio-core
+         ghcide hiedb lsp lsp-types mtl optparse-applicative parsec
+         sqlite-simple template-haskell text transformers unliftio-core
        ];
        testHaskellDepends = [
          array base containers directory errors extra filepath ghc ghc-paths
-         ghcide hiedb hspec lsp lsp-types mtl sqlite-simple template-haskell
-         text transformers unliftio-core
+         ghcide hiedb hspec lsp lsp-types mtl parsec sqlite-simple
+         template-haskell text transformers unliftio-core
        ];
        testToolDepends = [ hspec-discover ];
        description = "See README on Github for more information";
@@ -284367,6 +284296,8 @@ self: {
        ];
        description = "JavaScript and Css files concat for http optimization. Now with LESS support.";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "static-tensor" = callPackage
@@ -284713,7 +284644,9 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "What version is the package X in stackage lts-Y.ZZ?";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "staversion";
+       broken = true;
      }) {};
 
   "stb-image" = callPackage
@@ -285097,6 +285030,8 @@ self: {
        testHaskellDepends = [ base hspec mtl stm stm-queue ];
        description = "A simplistic actor model based on STM";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "stm-channelize" = callPackage
@@ -285283,6 +285218,8 @@ self: {
        libraryHaskellDepends = [ base stm transformers ];
        description = "Software Transactional Memory lifted to MonadIO";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "stm-linkedlist" = callPackage
@@ -285548,6 +285485,8 @@ self: {
        testHaskellDepends = [ base clock hspec ];
        description = "A simple stopwatch utility";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "storable" = callPackage
@@ -285762,6 +285701,8 @@ self: {
        pname = "store-core";
        version = "0.4.4.6";
        sha256 = "1b4yhznw2xzi6qmbahf6p2sl9l8d1af36687gpwygd12h71qv17d";
+       revision = "1";
+       editedCabalFile = "03sd06p80hjmyb8s97i0061mw2ghpd758a222j8y18b6pmlavbvs";
        libraryHaskellDepends = [
          base bytestring ghc-prim primitive text transformers
        ];
@@ -286443,6 +286384,8 @@ self: {
        ];
        description = "Stream packets via libpcap";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "streaming-png" = callPackage
@@ -286553,6 +286496,8 @@ self: {
        libraryPkgconfigDepends = [ zlib ];
        description = "http, attoparsec, pipes and other utilities for the streaming libraries";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) zlib;};
 
   "streaming-wai" = callPackage
@@ -286592,46 +286537,20 @@ self: {
     ({ mkDerivation, atomic-primops, base, containers, deepseq
      , directory, exceptions, hashable, heaps, lockfree-queue
      , monad-control, mtl, network, streamly-core, template-haskell
-     , transformers, transformers-base, unicode-data
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "streamly";
-       version = "0.9.0";
-       sha256 = "1nljxw6r2ap0cpg0svmgk208dcw7qpa4nkzgxb0kl80ady13axzc";
-       libraryHaskellDepends = [
-         atomic-primops base containers deepseq directory exceptions
-         hashable heaps lockfree-queue monad-control mtl network
-         streamly-core template-haskell transformers transformers-base
-         unicode-data unordered-containers
-       ];
-       description = "Streaming, dataflow programming and declarative concurrency";
-       license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.maralorn ];
-     }) {};
-
-  "streamly_0_10_0" = callPackage
-    ({ mkDerivation, atomic-primops, base, containers, deepseq
-     , directory, exceptions, hashable, heaps, lockfree-queue
-     , monad-control, mtl, network, streamly-core, template-haskell
-     , transformers, transformers-base, unicode-data
-     , unordered-containers
+     , transformers, unicode-data, unordered-containers
      }:
      mkDerivation {
        pname = "streamly";
-       version = "0.10.0";
-       sha256 = "0mpgi3pz4xbqrzidsp2gbn4wcqfvi5nhry41sxx1rfjg6lyn9r6g";
-       revision = "1";
-       editedCabalFile = "0jas47x44iiylfzrx1wvmnf0w9nnr95h1gdn5bnswjr50xcyg01d";
+       version = "0.10.1";
+       sha256 = "1iyvrhjlvfww5jmwdfx58pr5xi9jzv5h22g0nvnhgnrnxhm86sxn";
        libraryHaskellDepends = [
          atomic-primops base containers deepseq directory exceptions
          hashable heaps lockfree-queue monad-control mtl network
-         streamly-core template-haskell transformers transformers-base
-         unicode-data unordered-containers
+         streamly-core template-haskell transformers unicode-data
+         unordered-containers
        ];
        description = "Streaming, dataflow programming and declarative concurrency";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
@@ -286654,7 +286573,9 @@ self: {
        testSystemDepends = [ archive ];
        description = "Stream data from archives using the streamly library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.shlok ];
+       broken = true;
      }) {archive = null;};
 
   "streamly-binary" = callPackage
@@ -286682,8 +286603,8 @@ self: {
      }:
      mkDerivation {
        pname = "streamly-bytestring";
-       version = "0.2.0";
-       sha256 = "0vz8g8vjvhflbdahy0g0861hdmj71gjc665mcmm3znkm6z48mfm1";
+       version = "0.2.1";
+       sha256 = "0yziqcib7bc87xsnh8k4s4fkpwxzby71sqjhcdld2d8002xa3gdr";
        libraryHaskellDepends = [ base bytestring streamly-core ];
        testHaskellDepends = [
          base bytestring directory filepath hspec hspec-discover QuickCheck
@@ -286728,30 +286649,13 @@ self: {
 
   "streamly-core" = callPackage
     ({ mkDerivation, base, containers, directory, exceptions, filepath
-     , fusion-plugin-types, ghc-prim, heaps, monad-control
-     , template-haskell, transformers
-     }:
-     mkDerivation {
-       pname = "streamly-core";
-       version = "0.1.0";
-       sha256 = "0asffg2gwj0zgp5dzbr58987sbpi1vgl45r32f92akrb34zjzidl";
-       libraryHaskellDepends = [
-         base containers directory exceptions filepath fusion-plugin-types
-         ghc-prim heaps monad-control template-haskell transformers
-       ];
-       description = "Streaming, parsers, arrays and more";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "streamly-core_0_2_1" = callPackage
-    ({ mkDerivation, base, containers, directory, exceptions, filepath
      , fusion-plugin-types, ghc-bignum, ghc-prim, heaps, monad-control
      , template-haskell, transformers, unix
      }:
      mkDerivation {
        pname = "streamly-core";
-       version = "0.2.1";
-       sha256 = "1zal66xpamh07xk8vx6ibxg9cz1a7s0hry31lyqr3nimk26c1zbs";
+       version = "0.2.2";
+       sha256 = "10ymikc81grisamk663qkdv8rm32bxfa3p7vi86crq77xhypg56a";
        libraryHaskellDepends = [
          base containers directory exceptions filepath fusion-plugin-types
          ghc-bignum ghc-prim heaps monad-control template-haskell
@@ -286759,7 +286663,6 @@ self: {
        ];
        description = "Streaming, parsers, arrays, serialization and more";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "streamly-examples" = callPackage
@@ -286770,27 +286673,6 @@ self: {
      }:
      mkDerivation {
        pname = "streamly-examples";
-       version = "0.1.3";
-       sha256 = "01j6z5i21drdp3yf0crhajin3mvbbmpvrcfr55xq3dyw14vyv71d";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         base containers directory exceptions fusion-plugin hashable mtl
-         network random streamly streamly-core tasty-bench transformers
-         transformers-base unordered-containers vector
-       ];
-       description = "Examples for Streamly";
-       license = lib.licenses.asl20;
-     }) {};
-
-  "streamly-examples_0_2_0" = callPackage
-    ({ mkDerivation, base, containers, directory, exceptions
-     , fusion-plugin, hashable, mtl, network, random, streamly
-     , streamly-core, tasty-bench, transformers, transformers-base
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "streamly-examples";
        version = "0.2.0";
        sha256 = "0m2mzsbijd11hxq6kvsd61700ndvj58qdixvp7mkdrvb7pw5jf4q";
        isLibrary = false;
@@ -286803,20 +286685,20 @@ self: {
        description = "Examples for Streamly";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "streamly-fsnotify" = callPackage
-    ({ mkDerivation, base, filepath, fsnotify, semirings, streamly
-     , text, time
+    ({ mkDerivation, base, exceptions, filepath, fsnotify, semirings
+     , streamly, streamly-core, text, time
      }:
      mkDerivation {
        pname = "streamly-fsnotify";
-       version = "1.1.1.0";
-       sha256 = "1xcw4rsrysh96d91wjmyzb5s7cls3rf0ilpv8dn525iqzv11fl3l";
-       revision = "4";
-       editedCabalFile = "0b7yjszv2xapxqfghhdi7129dvsmgkzgzd361ancmfhmbkxvwlz4";
+       version = "2.1.0.2";
+       sha256 = "1firr8rbdi39qpwj7d5p8bzavsr37cy9jwgd93yss708msx3n0cl";
        libraryHaskellDepends = [
-         base filepath fsnotify semirings streamly text time
+         base exceptions filepath fsnotify semirings streamly streamly-core
+         text time
        ];
        description = "Folder watching as a Streamly stream";
        license = lib.licenses.bsd3;
@@ -286844,7 +286726,9 @@ self: {
        testSystemDepends = [ lmdb ];
        description = "Stream data to or from LMDB databases using the streamly library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.shlok ];
+       broken = true;
      }) {inherit (pkgs) lmdb;};
 
   "streamly-lz4" = callPackage
@@ -286895,8 +286779,10 @@ self: {
      }:
      mkDerivation {
        pname = "streamly-process";
-       version = "0.3.0";
-       sha256 = "15vj47j9n723clsa29m293c1naagi8psf3n1a9rv69myb4yddjry";
+       version = "0.3.1";
+       sha256 = "1033pgl9qlann1l9chla5f48gwj6y75ahri3g2k1cfm6h86l2z29";
+       revision = "1";
+       editedCabalFile = "1r3iwralbfl9rcgzrl324qd0lvfh39ggyf6vkrvq3rwdpgs8pajv";
        libraryHaskellDepends = [
          base exceptions process streamly streamly-core
        ];
@@ -286931,6 +286817,8 @@ self: {
        ];
        description = "Statistical measures for finite or infinite data streams";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "streamproc" = callPackage
@@ -286977,6 +286865,8 @@ self: {
        ];
        description = "Simple, Fair and Terminating Backtracking Monad Transformer";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "strelka" = callPackage
@@ -287090,6 +286980,8 @@ self: {
        pname = "strict-concurrency";
        version = "0.2.4.3";
        sha256 = "1h2nk5fn6gclzkwn5mbkb7gcqisms8y5m3kr64hd9lska3n39n82";
+       revision = "1";
+       editedCabalFile = "0j9gfkfncz62207syh3nv3gbl9n32yzsrk6179i5cyw7bd8kvppy";
        libraryHaskellDepends = [ base deepseq ];
        description = "Strict concurrency abstractions";
        license = lib.licenses.bsd3;
@@ -287212,6 +287104,8 @@ self: {
        libraryHaskellDepends = [ base ghc ghc-prim template-haskell ];
        description = "Plugin for making top-level implicit parameters strict";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "strict-io" = callPackage
@@ -287256,8 +287150,8 @@ self: {
      }:
      mkDerivation {
        pname = "strict-mvar";
-       version = "1.3.0.0";
-       sha256 = "0gv4m2rc5809y6b4n9bgzakjndf22crzz0pb9ff3rg4a48vys5ph";
+       version = "1.4.0.0";
+       sha256 = "052naxgy92l2mnavf6a4wbiqir78zwd3r8bzq0l7zyy63kh7lr4d";
        libraryHaskellDepends = [ base io-classes ];
        testHaskellDepends = [
          base io-sim nothunks QuickCheck tasty tasty-quickcheck
@@ -287283,8 +287177,8 @@ self: {
     ({ mkDerivation, array, base, io-classes, stm }:
      mkDerivation {
        pname = "strict-stm";
-       version = "1.3.0.0";
-       sha256 = "0fpjyzc0qlz66a7pvj3cgfgpj10y61b4wqfbrzgpy3gz2d4i6c8y";
+       version = "1.4.0.0";
+       sha256 = "0aq5qwxlqv369yi02z0gndb87pjv8mwpcaqphpd0ig563jivs4f8";
        libraryHaskellDepends = [ array base io-classes stm ];
        description = "Strict STM interface polymorphic over stm implementation";
        license = lib.licenses.asl20;
@@ -287353,6 +287247,8 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "A stricter writer, which uses StateT in order to avoid space leaks";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "strictify" = callPackage
@@ -287514,8 +287410,8 @@ self: {
      }:
      mkDerivation {
        pname = "string-interpolate";
-       version = "0.3.2.1";
-       sha256 = "1m7xpfvhsn61wvq6axxp93630l6zy3z9zxw7gx9syagjgmyh2brr";
+       version = "0.3.3.0";
+       sha256 = "1m4m9ivi29q90fvrinigqwz4qmnxnbi895l1gmsrp7j0bmwjxhrb";
        libraryHaskellDepends = [
          base bytestring haskell-src-exts haskell-src-meta split
          template-haskell text text-conversions utf8-string
@@ -287547,6 +287443,8 @@ self: {
        ];
        description = "Is used in the phonetic languages approach (e. g. in the recursive mode).";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "string-isos" = callPackage
@@ -287583,12 +287481,27 @@ self: {
        pname = "string-qq";
        version = "0.0.5";
        sha256 = "0iss84b1cfi3zqj5wgcdakpbv9965r7ib65n7j9nb108fazkra59";
+       revision = "1";
+       editedCabalFile = "10mghimshafsn2k5d7a4smz28abpg7k6vrvvqp9whbqbjaangpfh";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base HUnit text ];
        description = "QuasiQuoter for non-interpolated strings, texts and bytestrings";
        license = lib.licenses.publicDomain;
      }) {};
 
+  "string-qq_0_0_6" = callPackage
+    ({ mkDerivation, base, HUnit, template-haskell, text }:
+     mkDerivation {
+       pname = "string-qq";
+       version = "0.0.6";
+       sha256 = "14k4wxp3fgy5yl0hg1m06lrrpligp1xmi0v54fhwqh0x6nvmbs23";
+       libraryHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [ base HUnit text ];
+       description = "QuasiQuoter for non-interpolated strings, texts and bytestrings";
+       license = lib.licenses.publicDomain;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "string-quote" = callPackage
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
@@ -287676,51 +287589,24 @@ self: {
 
   "string-variants" = callPackage
     ({ mkDerivation, aeson, base, bytestring, hedgehog, hspec
-     , hspec-core, hspec-discover, hspec-expectations, hspec-hedgehog
-     , HUnit, mono-traversable, QuickCheck, refined, refinery
-     , string-conversions, template-haskell, text
-     }:
-     mkDerivation {
-       pname = "string-variants";
-       version = "0.2.2.0";
-       sha256 = "1wy7nj8dv75qiz358dn7l6fscm2vs9mrrnxpkgv66wmpdhb4xd60";
-       libraryHaskellDepends = [
-         aeson base bytestring mono-traversable QuickCheck refined refinery
-         string-conversions template-haskell text
-       ];
-       testHaskellDepends = [
-         aeson base bytestring hedgehog hspec hspec-core hspec-expectations
-         hspec-hedgehog HUnit mono-traversable QuickCheck refined refinery
-         string-conversions template-haskell text
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Constrained text newtypes";
-       license = lib.licenses.mit;
-     }) {};
-
-  "string-variants_0_3_0_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, hedgehog, hspec
-     , hspec-core, hspec-discover, hspec-expectations, hspec-hedgehog
-     , HUnit, mono-traversable, QuickCheck, refined, refinery
-     , string-conversions, template-haskell, text
+     , hspec-discover, hspec-hedgehog, HUnit, mono-traversable
+     , QuickCheck, refined, string-conversions, template-haskell, text
      }:
      mkDerivation {
        pname = "string-variants";
-       version = "0.3.0.0";
-       sha256 = "01j2vwni7cqi3n61b5zyify3srrqbdnngxymxz5brhah822i8hnh";
+       version = "0.3.0.1";
+       sha256 = "1bg1dqnmvhnzxf19j006rp3jmh672wf8grzii91iyy7dl94gjxip";
        libraryHaskellDepends = [
-         aeson base bytestring mono-traversable QuickCheck refined refinery
+         aeson base bytestring mono-traversable QuickCheck refined
          string-conversions template-haskell text
        ];
        testHaskellDepends = [
-         aeson base bytestring hedgehog hspec hspec-core hspec-expectations
-         hspec-hedgehog HUnit mono-traversable QuickCheck refined refinery
-         string-conversions template-haskell text
+         aeson base hedgehog hspec hspec-hedgehog HUnit template-haskell
+         text
        ];
        testToolDepends = [ hspec-discover ];
        description = "Constrained text newtypes";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "stringable" = callPackage
@@ -287992,6 +287878,8 @@ self: {
        ];
        description = "Listen for Stripe webhook events with Scotty";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "stripe-servant" = callPackage
@@ -288102,8 +287990,8 @@ self: {
      }:
      mkDerivation {
        pname = "strive";
-       version = "6.0.0.10";
-       sha256 = "10028krfmrq8v1k00ihdzp5hl6nrq0vdp3kb9xfgsyqgvv8l2ic2";
+       version = "6.0.0.11";
+       sha256 = "1ddqkyqxbls5slg6gkj7rpvxac104q9haqpc7agggnglznrsc9p5";
        libraryHaskellDepends = [
          aeson base bytestring data-default gpolyline http-client
          http-client-tls http-types template-haskell text time transformers
@@ -288187,7 +288075,9 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Convert between strong and weak representations of types";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.raehik ];
+       broken = true;
      }) {};
 
   "strptime" = callPackage
@@ -288218,7 +288108,9 @@ self: {
        ];
        description = "Inspect the padding and size of C data declarations and their fields";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "struct-inspector";
+       broken = true;
      }) {};
 
   "structs" = callPackage
@@ -288312,7 +288204,9 @@ self: {
        executableHaskellDepends = [ base data-default mtl split ];
        description = "Application library for building interactive console CLIs";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "some-cli";
+       broken = true;
      }) {};
 
   "structured-haskell-mode" = callPackage
@@ -288582,6 +288476,40 @@ self: {
        mainProgram = "stylish-haskell";
      }) {};
 
+  "stylish-haskell_0_14_6_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, Cabal, containers
+     , directory, file-embed, filepath, ghc-lib-parser
+     , ghc-lib-parser-ex, HsYAML, HsYAML-aeson, HUnit, mtl
+     , optparse-applicative, random, regex-tdfa, strict, syb
+     , test-framework, test-framework-hunit, text
+     }:
+     mkDerivation {
+       pname = "stylish-haskell";
+       version = "0.14.6.0";
+       sha256 = "1v72i3dxn30z832cs19sbnj5p40y873sv4kciaivd0ls7i5mm8vb";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring Cabal containers directory file-embed
+         filepath ghc-lib-parser ghc-lib-parser-ex HsYAML HsYAML-aeson mtl
+         regex-tdfa syb text
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring Cabal containers directory file-embed
+         filepath ghc-lib-parser ghc-lib-parser-ex HsYAML HsYAML-aeson mtl
+         optparse-applicative regex-tdfa strict syb text
+       ];
+       testHaskellDepends = [
+         aeson base bytestring Cabal containers directory file-embed
+         filepath ghc-lib-parser ghc-lib-parser-ex HsYAML HsYAML-aeson HUnit
+         mtl random regex-tdfa syb test-framework test-framework-hunit text
+       ];
+       description = "Haskell code prettifier";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "stylish-haskell";
+     }) {};
+
   "stylist" = callPackage
     ({ mkDerivation, async, base, css-syntax, file-embed, hashable
      , hspec, network-uri, QuickCheck, regex-tdfa, scientific
@@ -288650,7 +288578,9 @@ self: {
        ];
        description = "A generator of nix files";
        license = "GPL";
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "styx";
+       broken = true;
      }) {};
 
   "suavemente" = callPackage
@@ -288727,8 +288657,8 @@ self: {
      }:
      mkDerivation {
        pname = "subcategories";
-       version = "0.2.0.1";
-       sha256 = "0hffzgdshsysiqzs4fpm9lfnbkp6wvp2fain1hn28l5cfiac7fpq";
+       version = "0.2.1.0";
+       sha256 = "18bvpib34nc60s7hkg1c6ypyn26k90gwdsydcrld65a29ddf615a";
        libraryHaskellDepends = [
          base containers data-default foldl hashable mono-traversable
          pointed primitive reflection semialign template-haskell text these
@@ -288947,6 +288877,8 @@ self: {
        ];
        description = "A version of Either specialised for encoding of success or failure";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "successors" = callPackage
@@ -289116,6 +289048,31 @@ self: {
        broken = true;
      }) {};
 
+  "sum-pyramid" = callPackage
+    ({ mkDerivation, base, combinatorial, comfort-array, containers
+     , doctest-exitcode-stdio, doctest-lib, lapack, optparse-applicative
+     , random, shell-utility, transformers, unique-logic-tf, utility-ht
+     }:
+     mkDerivation {
+       pname = "sum-pyramid";
+       version = "0.0";
+       sha256 = "0jfz80iigdhhpa5fi2djyjzyrnarqvgdywni9785b6cqz3bv9a5n";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base combinatorial comfort-array containers lapack
+         optparse-applicative random shell-utility transformers
+         unique-logic-tf utility-ht
+       ];
+       testHaskellDepends = [
+         base combinatorial comfort-array containers doctest-exitcode-stdio
+         doctest-lib lapack transformers unique-logic-tf utility-ht
+       ];
+       description = "Create Sum Pyramid (Additionstreppe) exercises";
+       license = lib.licenses.bsd3;
+       mainProgram = "sum-pyramid";
+     }) {};
+
   "sum-type-boilerplate" = callPackage
     ({ mkDerivation, base, hspec, template-haskell }:
      mkDerivation {
@@ -289140,6 +289097,8 @@ self: {
        testHaskellDepends = [ base ];
        description = "An implementation of extensible products and sums";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "summoner" = callPackage
@@ -289612,6 +289571,7 @@ self: {
        libraryHaskellDepends = [ base supply-chain-core ];
        description = "Composable request-response pipelines";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "supply-chain-core" = callPackage
@@ -289624,6 +289584,8 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Composable request-response pipelines";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "supply-next" = callPackage
@@ -289645,6 +289607,7 @@ self: {
        ];
        description = "Supply-chain interface for basic streaming";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "surjective" = callPackage
@@ -289826,8 +289789,8 @@ self: {
        pname = "svg-builder";
        version = "0.1.1";
        sha256 = "1k420f497lzkymmxin88ql6ib8dziic43avykv31yq65rgrf7l2g";
-       revision = "7";
-       editedCabalFile = "0fjbparishw3b2gnh3i7b3d3vxf7mp8h17sfawkf2333smb9zl47";
+       revision = "8";
+       editedCabalFile = "0h6bymf2him9shr8sfhw4h61ysp7hkzk0y1jwyv13d5l84yzi52g";
        libraryHaskellDepends = [
          base blaze-builder bytestring hashable text unordered-containers
        ];
@@ -289917,6 +289880,8 @@ self: {
        pname = "svgcairo";
        version = "0.13.2.1";
        sha256 = "19jq5nf3v6774d0imbz5dkajriqx3fa93zvxjyqh1nm5birczaj8";
+       revision = "1";
+       editedCabalFile = "075dynmgzxsb9rx1c9hh5lv4hyjf8mqdrppfwz057f328b5nimpd";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [ base cairo glib mtl text ];
@@ -290042,6 +290007,8 @@ self: {
        pname = "svndump";
        version = "0.4.5";
        sha256 = "0m6agn9riamsadf13w1g6i0nx59xl812112xdkqh0zl34rf5hkwp";
+       revision = "1";
+       editedCabalFile = "07q1rp6gxqmvxs0la1bd7l3wsqcca5lscdbxqxxi3iiyx860vnbd";
        libraryHaskellDepends = [
          attoparsec base bytestring containers filepath old-locale text time
        ];
@@ -290144,8 +290111,8 @@ self: {
      }:
      mkDerivation {
        pname = "swagger2";
-       version = "2.8.7";
-       sha256 = "021pshm4i5wvlixgr251xzk36bpx42920pfcvq1w4sakx8x9fyli";
+       version = "2.8.8";
+       sha256 = "1wvrxgkrgd6f9x2bfnxky9dc1vsnrib9xmvkrgxyqxkjm6gdmgzg";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson aeson-pretty base base-compat-batteries bytestring containers
@@ -291934,6 +291901,8 @@ self: {
        ];
        description = "Audio signal processing coded in Haskell: Filter networks";
        license = "GPL";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "synthesizer-inference" = callPackage
@@ -292155,6 +292124,8 @@ self: {
        ];
        description = "Consistent filesystem interaction across GHC versions (deprecated)";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "system-filepath" = callPackage
@@ -292887,19 +292858,6 @@ self: {
     ({ mkDerivation, base, deepseq, template-haskell, transformers }:
      mkDerivation {
        pname = "tagged";
-       version = "0.8.7";
-       sha256 = "0qdr1kv1zn5iamnwyn5nf0ywxs4wv779k0gpw94kyqx14ynfw534";
-       libraryHaskellDepends = [
-         base deepseq template-haskell transformers
-       ];
-       description = "Haskell 98 phantom types to avoid unsafely passing dummy arguments";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "tagged_0_8_8" = callPackage
-    ({ mkDerivation, base, deepseq, template-haskell, transformers }:
-     mkDerivation {
-       pname = "tagged";
        version = "0.8.8";
        sha256 = "19x66y8zqh06mmkbbnpy0m5sk402zj6iqfj3d30h6qji6mwgm0x0";
        libraryHaskellDepends = [
@@ -292907,7 +292865,6 @@ self: {
        ];
        description = "Haskell 98 phantom types to avoid unsafely passing dummy arguments";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tagged-binary" = callPackage
@@ -293133,6 +293090,8 @@ self: {
        libraryHaskellDepends = [ base containers mtl ];
        description = "TagShare - explicit sharing with tags";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "tagsoup" = callPackage
@@ -293293,8 +293252,6 @@ self: {
        ];
        description = "Hierarchical Tags & Tag Trees";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tahoe-capabilities" = callPackage
@@ -293426,6 +293383,44 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "tahoe-great-black-swamp-testing" = callPackage
+    ({ mkDerivation, base, base32string, bytestring, composition
+     , containers, data-interval, hspec, hspec-expectations, http-types
+     , QuickCheck, quickcheck-classes, quickcheck-instances
+     , tahoe-great-black-swamp-types, text, utility-ht
+     }:
+     mkDerivation {
+       pname = "tahoe-great-black-swamp-testing";
+       version = "0.5.0.0";
+       sha256 = "0313bn85dh0k2icg8712k89mdnjwbqdi428c30f0ir87srlwn0p1";
+       libraryHaskellDepends = [
+         base base32string bytestring composition containers data-interval
+         hspec hspec-expectations http-types QuickCheck quickcheck-classes
+         quickcheck-instances tahoe-great-black-swamp-types text utility-ht
+       ];
+       description = "An HSpec for Great Black Swamp storage backends";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "tahoe-great-black-swamp-types" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , containers, hashable, http-types, memory, text
+     }:
+     mkDerivation {
+       pname = "tahoe-great-black-swamp-types";
+       version = "0.5.0.0";
+       sha256 = "1ibamar7g72m6hjb3mxfp6kqxrwbq5z2vsnqf9frj0c2g5k5c04i";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring bytestring containers hashable
+         http-types memory text
+       ];
+       description = "Types related to implementation of a Tahoe-LAFS Great Black Swamp server";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "tahoe-ssk" = callPackage
     ({ mkDerivation, asn1-encoding, asn1-types, base, base32, binary
      , bytestring, cereal, containers, cryptonite, hedgehog, megaparsec
@@ -293545,9 +293540,7 @@ self: {
        ];
        description = "Tailwind wrapped in Haskell";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "tailwind-run";
-       broken = true;
      }) {};
 
   "tak" = callPackage
@@ -293852,8 +293845,8 @@ self: {
        pname = "tar";
        version = "0.5.1.1";
        sha256 = "1ppim7cgmn7ng8zbdrwkxhhizc30h15h1c9cdlzamc5jcagl915k";
-       revision = "9";
-       editedCabalFile = "1bp2ql3z5pyswq9095pfmhink1awgmnsch3ps99vziqq61jcvg1v";
+       revision = "10";
+       editedCabalFile = "1qfnvdy71kfm0l7dslv44p1glqylxxh9f6fbn41z5ai7yczdvxda";
        libraryHaskellDepends = [
          array base bytestring containers deepseq directory filepath time
        ];
@@ -293869,17 +293862,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "tar_0_6_0_0" = callPackage
+  "tar_0_6_1_0" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, deepseq
-     , directory, file-embed, filepath, QuickCheck, tasty, tasty-bench
-     , tasty-quickcheck, temporary, time
+     , directory, file-embed, filepath, os-string, QuickCheck, tasty
+     , tasty-bench, tasty-quickcheck, temporary, time, transformers
      }:
      mkDerivation {
        pname = "tar";
-       version = "0.6.0.0";
-       sha256 = "11hr2p0lrdkklvn7yf85cqhyzq4ax2lxsfg0rljakkrpnn7s0n44";
+       version = "0.6.1.0";
+       sha256 = "1nh5sdlsdsgys3a17sj50gxgy2vdc7rzgzr39z9kj2244vhz5zpd";
        libraryHaskellDepends = [
-         array base bytestring containers deepseq directory filepath time
+         array base bytestring containers deepseq directory filepath
+         os-string time transformers
        ];
        testHaskellDepends = [
          array base bytestring containers deepseq directory file-embed
@@ -293928,38 +293922,13 @@ self: {
   "tar-conduit" = callPackage
     ({ mkDerivation, base, bytestring, conduit, conduit-combinators
      , conduit-extra, containers, criterion, deepseq, directory
-     , filepath, hspec, QuickCheck, safe-exceptions, text, unix, weigh
-     }:
-     mkDerivation {
-       pname = "tar-conduit";
-       version = "0.3.2.1";
-       sha256 = "0lxyfil7fgg1gvb02qhs2na9cy7nqg8fvclwy6pnz4anqa4wc28r";
-       libraryHaskellDepends = [
-         base bytestring conduit conduit-combinators directory filepath
-         safe-exceptions text unix
-       ];
-       testHaskellDepends = [
-         base bytestring conduit conduit-combinators conduit-extra
-         containers deepseq directory filepath hspec QuickCheck weigh
-       ];
-       benchmarkHaskellDepends = [
-         base bytestring conduit conduit-combinators containers criterion
-         deepseq directory filepath hspec
-       ];
-       description = "Extract and create tar files using conduit for streaming";
-       license = lib.licenses.mit;
-     }) {};
-
-  "tar-conduit_0_4_0" = callPackage
-    ({ mkDerivation, base, bytestring, conduit, conduit-combinators
-     , conduit-extra, containers, criterion, deepseq, directory
      , filepath, hspec, mtl, QuickCheck, safe-exceptions, text, unix
      , weigh
      }:
      mkDerivation {
        pname = "tar-conduit";
-       version = "0.4.0";
-       sha256 = "0h0z6g1q57jy20p5m8y56dqkrfvpz46yhglsvg3n4mncr88jlrfj";
+       version = "0.4.1";
+       sha256 = "0kavvr0sc1bmzimgpa00hdrihnvfpi4f9rmkg3yl8pckgv2ad8b1";
        libraryHaskellDepends = [
          base bytestring conduit conduit-combinators containers directory
          filepath mtl safe-exceptions text unix
@@ -293974,15 +293943,14 @@ self: {
        ];
        description = "Extract and create tar files using conduit for streaming";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tardis" = callPackage
     ({ mkDerivation, base, mmorph, mtl }:
      mkDerivation {
        pname = "tardis";
-       version = "0.4.4.0";
-       sha256 = "0frm9kffdsia22rwyr8295n9xwhca1d6w04yz4l4cfjav6bgczfs";
+       version = "0.5.0";
+       sha256 = "1ckzhydqkx0p81xygbdi05ad8dd9z20fadxh3sv20s1izrh6n07n";
        libraryHaskellDepends = [ base mmorph mtl ];
        testHaskellDepends = [ base ];
        description = "Bidirectional state monad transformer";
@@ -294051,7 +294019,9 @@ self: {
        ];
        description = "Terminal Art";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "tart";
+       broken = true;
      }) {};
 
   "task" = callPackage
@@ -294208,8 +294178,8 @@ self: {
        pname = "tasty";
        version = "1.5";
        sha256 = "1b19s0kf61z3zp7qx9m3j3iqmjvwvqsfwryf9lfnj3i15a2zfp6a";
-       revision = "1";
-       editedCabalFile = "1r6jld0az8pyycsn6z5jxz7yrhyi4k2ahv442fcvw54q6c0i3j9d";
+       revision = "2";
+       editedCabalFile = "0jr6a6klg08x9pqmap3h3ys5dhda0w92ysbnsvvi81vrzxzz98wd";
        libraryHaskellDepends = [
          ansi-terminal base containers optparse-applicative stm tagged
          transformers unix
@@ -294268,10 +294238,8 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-autocollect";
-       version = "0.4.1";
-       sha256 = "0b374x2m2rx1zzqb1i5wr36d6nxs1wx1cxyggjszlwxssz0vqzcj";
-       revision = "1";
-       editedCabalFile = "0vr3r4wq2kxzg4yk085xk95zz6a5m8q0j6nb7lqlp7s5ff3ch7h1";
+       version = "0.4.2";
+       sha256 = "021yrrw53k8bppqpqqiny0gwbphhwq76g08m3d2ycfn57f9hxnbs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -294372,6 +294340,8 @@ self: {
        ];
        description = "Check multiple items during a tasty test";
        license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "tasty-coverage" = callPackage
@@ -294542,35 +294512,16 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-hedgehog";
-       version = "1.4.0.1";
-       sha256 = "1vnx5vqmm0hk1xqhbp392fc1r91jrav0v5j92wx8q1pm2lhpibf8";
-       revision = "1";
-       editedCabalFile = "1hcn40fzwmc7q77c38lvrwwa3nshxls9ijzj7v42408a2rsgb4i3";
-       libraryHaskellDepends = [ base hedgehog tagged tasty ];
-       testHaskellDepends = [
-         base hedgehog tasty tasty-expected-failure
-       ];
-       description = "Integration for tasty and hedgehog";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "tasty-hedgehog_1_4_0_2" = callPackage
-    ({ mkDerivation, base, hedgehog, tagged, tasty
-     , tasty-expected-failure
-     }:
-     mkDerivation {
-       pname = "tasty-hedgehog";
        version = "1.4.0.2";
        sha256 = "0lki03z0p38x0dkqx5cqga30zy5m31gxn1saqylja9bi6bbq8d25";
-       revision = "2";
-       editedCabalFile = "0im9603m995svkb3bvdrr7w1k2xz34hlw3dyam1123264ff1ka7x";
+       revision = "3";
+       editedCabalFile = "1ij1h7kdbg4bd93fl9991b39xn1rkawshsh3hgbz3j2inmnljx2w";
        libraryHaskellDepends = [ base hedgehog tagged tasty ];
        testHaskellDepends = [
          base hedgehog tasty tasty-expected-failure
        ];
        description = "Integration for tasty and hedgehog";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tasty-hedgehog-coverage" = callPackage
@@ -294602,8 +294553,8 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-hslua";
-       version = "1.1.0";
-       sha256 = "04bj16q5l3y89zjzk5872827s4gkvkn0cmsdwlxzzzvf96fdfggm";
+       version = "1.1.1";
+       sha256 = "066q54kw3y3knxgxpkmhdspb7bdxkv0z68zi2r81sm9xsqg17a5b";
        libraryHaskellDepends = [
          base bytestring hslua-core tasty tasty-hunit
        ];
@@ -294631,24 +294582,6 @@ self: {
      }) {};
 
   "tasty-hspec" = callPackage
-    ({ mkDerivation, base, hspec, hspec-core, QuickCheck, tasty
-     , tasty-quickcheck, tasty-smallcheck
-     }:
-     mkDerivation {
-       pname = "tasty-hspec";
-       version = "1.2.0.3";
-       sha256 = "150dvscaa0sv5pjsd74mmnp9f0jmz09qs24swz73wwjzrzmnypcx";
-       revision = "1";
-       editedCabalFile = "01sc5gmij3280b63jpjcz0a2lq045dj5ay46yq9i896cyka6gs6r";
-       libraryHaskellDepends = [
-         base hspec hspec-core QuickCheck tasty tasty-quickcheck
-         tasty-smallcheck
-       ];
-       description = "Hspec support for the Tasty test framework";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "tasty-hspec_1_2_0_4" = callPackage
     ({ mkDerivation, base, hspec, hspec-api, hspec-core, QuickCheck
      , tasty, tasty-quickcheck, tasty-smallcheck
      }:
@@ -294664,7 +294597,6 @@ self: {
        ];
        description = "Hspec support for the Tasty test framework";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tasty-html" = callPackage
@@ -294677,6 +294609,8 @@ self: {
        pname = "tasty-html";
        version = "0.4.2.1";
        sha256 = "09abjmgw1l8m5pmynzwi8kamrg8ljvhbyfgbh2cs84b7sjfi3bfd";
+       revision = "1";
+       editedCabalFile = "0kklij8bjw01nnh6q95ykgqfy80kva3s90x6b5izvcqyp2znr3qa";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -294691,6 +294625,31 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "tasty-html_0_4_2_2" = callPackage
+    ({ mkDerivation, base, blaze-html, bytestring, containers
+     , generic-deriving, mtl, semigroups, stm, tagged, tasty
+     , tasty-hunit, tasty-quickcheck, tasty-smallcheck, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "tasty-html";
+       version = "0.4.2.2";
+       sha256 = "1618zpw51bmzylhfifngzkld012qx0g9b86d605dwdsvvwbbdh4x";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base blaze-html bytestring containers generic-deriving mtl
+         semigroups stm tagged tasty text transformers
+       ];
+       executableHaskellDepends = [
+         base tasty tasty-hunit tasty-quickcheck tasty-smallcheck
+       ];
+       description = "Render tasty output to HTML";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "tasty-hunit" = callPackage
     ({ mkDerivation, base, call-stack, tasty }:
      mkDerivation {
@@ -294730,10 +294689,8 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-inspection-testing";
-       version = "0.2";
-       sha256 = "1gdwbg545gwfx2a26s7hkgz9l9mfb13i6v20j09hqrlbh1xsi3qz";
-       revision = "2";
-       editedCabalFile = "1fqyjm63qvi26lwbd9h2rj3178z8pf4gx3pry95fwlgkqd2hwjp9";
+       version = "0.2.1";
+       sha256 = "0wl2xlnbmqdkwhi4ic6a4q4lxf9qg433lidi8d0hlp3ykrjpbcay";
        libraryHaskellDepends = [
          base ghc inspection-testing tasty template-haskell
        ];
@@ -294879,8 +294836,8 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-lua";
-       version = "1.1.0";
-       sha256 = "1bn7ap42hvfhwps971nczrkq7caj3cyx88z0df42008884m4nhrk";
+       version = "1.1.1";
+       sha256 = "186322a9gwndnpis4r7nzlca4iymrz712bbbxpm0pxsw63xary06";
        libraryHaskellDepends = [
          base bytestring file-embed hslua-core hslua-marshalling
          lua-arbitrary QuickCheck tasty text
@@ -294925,8 +294882,8 @@ self: {
     ({ mkDerivation, base, containers, deepseq, papi, stm, tasty }:
      mkDerivation {
        pname = "tasty-papi";
-       version = "0.1.1.0";
-       sha256 = "1cz0jw5a7jrb8i3pfx9qx2lsmv08fpdc3qi8rw8ks4cnwc6ba30i";
+       version = "0.1.2.0";
+       sha256 = "05f7yxapyc3jzj7v7aqp8c5iq49jkryx4rfzqwh1c6s1fvrh4rya";
        libraryHaskellDepends = [ base containers deepseq stm tasty ];
        librarySystemDepends = [ papi ];
        testHaskellDepends = [ base tasty ];
@@ -295366,7 +295323,9 @@ self: {
        libraryPkgconfigDepends = [ libtcod ];
        description = "Bindings to libtcod roguelike engine";
        license = lib.licenses.bsd3;
+       platforms = lib.platforms.linux;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) libtcod;};
 
   "tconfig" = callPackage
@@ -295413,6 +295372,8 @@ self: {
        ];
        description = "One stop solution for tcp client and server with tls support";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "tcp-streams-openssl" = callPackage
@@ -295467,9 +295428,9 @@ self: {
      }) {};
 
   "tdigest" = callPackage
-    ({ mkDerivation, base, base-compat, binary, deepseq
-     , foldable1-classes-compat, reducers, semigroups, tasty
-     , tasty-quickcheck, transformers, vector, vector-algorithms
+    ({ mkDerivation, base, base-compat, binary, deepseq, reducers
+     , semigroups, tasty, tasty-quickcheck, transformers, vector
+     , vector-algorithms
      }:
      mkDerivation {
        pname = "tdigest";
@@ -295478,8 +295439,8 @@ self: {
        revision = "1";
        editedCabalFile = "1pcm1gdn28syhq6gws3ss15dldnvyvy4l2mqbqmp46gv3hzqnw6b";
        libraryHaskellDepends = [
-         base base-compat binary deepseq foldable1-classes-compat reducers
-         transformers vector vector-algorithms
+         base base-compat binary deepseq reducers transformers vector
+         vector-algorithms
        ];
        testHaskellDepends = [
          base base-compat binary deepseq semigroups tasty tasty-quickcheck
@@ -295537,6 +295498,7 @@ self: {
        testSystemDepends = [ tdlib ];
        description = "complete binding to the Telegram Database Library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) tdlib;};
 
   "tdlib-gen" = callPackage
@@ -295586,6 +295548,7 @@ self: {
        ];
        description = "Types and Functions generated from tdlib api spec";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tdoc" = callPackage
@@ -295849,8 +295812,8 @@ self: {
      }:
      mkDerivation {
        pname = "telegram-bot-api";
-       version = "6.7.1";
-       sha256 = "1a1k54q1ivhdj9vdgil1lv17vx0pz2n89vlz6bj7pf4g0w50cz4s";
+       version = "7.0";
+       sha256 = "0kzn0zhnq4g3l85jbdfz420449aamv5kah3qdk05ysmx2msd4s66";
        libraryHaskellDepends = [
          aeson aeson-pretty base bytestring cron filepath hashable
          http-api-data http-client http-client-tls monad-control mtl
@@ -295864,7 +295827,7 @@ self: {
      }) {};
 
   "telegram-bot-simple" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, cron
+    ({ mkDerivation, aeson, aeson-pretty, async, base, bytestring, cron
      , filepath, hashable, http-api-data, http-client, http-client-tls
      , monad-control, mtl, pretty-show, profunctors, servant
      , servant-client, servant-multipart-api, servant-multipart-client
@@ -295873,12 +295836,12 @@ self: {
      }:
      mkDerivation {
        pname = "telegram-bot-simple";
-       version = "0.12";
-       sha256 = "16zsrn42836x30lzc9wy6snq6k9sckqddfi84wzfn1jjbm4wl21i";
+       version = "0.13";
+       sha256 = "0gf272hhfavx5lki7dlxcn760gjk613md391nvmxnmnvyhs6g5rz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-pretty base bytestring cron filepath hashable
+         aeson aeson-pretty async base bytestring cron filepath hashable
          http-api-data http-client http-client-tls monad-control mtl
          pretty-show profunctors servant servant-client
          servant-multipart-api servant-multipart-client servant-server split
@@ -296017,6 +295980,8 @@ self: {
        libraryHaskellDepends = [ base mtl transformers ];
        description = "The MonadTell class and related monad transformers";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "tellbot" = callPackage
@@ -296060,7 +296025,9 @@ self: {
        testHaskellDepends = [ base ];
        description = "A dead-simple shell interpolation templating utility";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "tempered";
+       broken = true;
      }) {};
 
   "tempgres-client" = callPackage
@@ -296283,8 +296250,8 @@ self: {
      }:
      mkDerivation {
        pname = "templatise";
-       version = "0.1.1.0";
-       sha256 = "1vkqnb0h7gqrm50vndrg4xz1g5izzn93wbmkcsy3wrb99isl4yj4";
+       version = "0.1.2.0";
+       sha256 = "0plgfhvdhs8bwyldcc84scmaw7cw1rva7m3rxx14jn3dhc2k65qj";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -296297,7 +296264,7 @@ self: {
        testHaskellDepends = [
          base bytestring Cabal-syntax directory filepath hspec mtl
          network-uri optparse-applicative process tasty tasty-golden
-         tasty-hspec temporary text
+         tasty-hspec temporary text time
        ];
        doHaddock = false;
        description = "You can use template.hs to create a new Haskell GitHub repository.";
@@ -296326,6 +296293,8 @@ self: {
        testHaskellDepends = [ base ];
        description = "Command-line tool to log time-tracking information into JIRA Tempo plugin";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "tempodb" = callPackage
@@ -296745,7 +296714,6 @@ self: {
        ];
        description = "Code generation for TensorFlow operations";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tensorflow-ops" = callPackage
@@ -296794,7 +296762,6 @@ self: {
        libraryToolDepends = [ protobuf ];
        description = "TensorFlow protocol buffers";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) protobuf;};
 
   "tensorflow-records" = callPackage
@@ -296874,48 +296841,24 @@ self: {
        testHaskellDepends = [ base containers HUnit QuickCheck ];
        description = "Term Rewriting Library";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "termbox" = callPackage
     ({ mkDerivation, base, termbox-bindings-hs }:
      mkDerivation {
        pname = "termbox";
-       version = "1.1.0.2";
-       sha256 = "09pn1h2rq5r8w51ikzfnrvqxdq5f9qdh5lc7yv2zlzkrgz2vq5rz";
-       libraryHaskellDepends = [ base termbox-bindings-hs ];
-       description = "termbox";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "termbox_2_0_0_1" = callPackage
-    ({ mkDerivation, base, termbox-bindings-hs }:
-     mkDerivation {
-       pname = "termbox";
        version = "2.0.0.1";
        sha256 = "0kynby25arx6hcq64cklw9qhw87qxy6vrz9z40d7k7j817gkzccq";
        libraryHaskellDepends = [ base termbox-bindings-hs ];
        description = "termbox";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "termbox-banana" = callPackage
     ({ mkDerivation, base, reactive-banana, termbox }:
      mkDerivation {
        pname = "termbox-banana";
-       version = "1.0.0";
-       sha256 = "0fj9h3nbgsr9321kb4a2m0m1afmjass5x22pc2dbn602k9d9fmyy";
-       revision = "1";
-       editedCabalFile = "0mpc4nwzhbfpv64c714g77jfq1hm1qzd52008w0f4vbhf8x9f0fw";
-       libraryHaskellDepends = [ base reactive-banana termbox ];
-       description = "termbox + reactive-banana";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "termbox-banana_2_0_0" = callPackage
-    ({ mkDerivation, base, reactive-banana, termbox }:
-     mkDerivation {
-       pname = "termbox-banana";
        version = "2.0.0";
        sha256 = "1izf90r6idfspi06q3vwjipawpdcz5ag5qw3l45khn7js520rapn";
        revision = "1";
@@ -296925,7 +296868,6 @@ self: {
        libraryHaskellDepends = [ base reactive-banana termbox ];
        description = "termbox + reactive-banana";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "termbox-bindings" = callPackage
@@ -296961,42 +296903,17 @@ self: {
     ({ mkDerivation, base, termbox-bindings-c }:
      mkDerivation {
        pname = "termbox-bindings-hs";
-       version = "0.1.1";
-       sha256 = "1f50j6z72g5lsdvakxvlsg77iqspcm2qmwyc1csafgs1zn40ks2i";
-       libraryHaskellDepends = [ base termbox-bindings-c ];
-       description = "termbox bindings";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "termbox-bindings-hs_1_0_0" = callPackage
-    ({ mkDerivation, base, termbox-bindings-c }:
-     mkDerivation {
-       pname = "termbox-bindings-hs";
        version = "1.0.0";
        sha256 = "1j90pjqrngyygwwwk9zh2ah4sfdz9sv6222k21lmrql60md85g8i";
        libraryHaskellDepends = [ base termbox-bindings-c ];
        description = "termbox bindings";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "termbox-tea" = callPackage
     ({ mkDerivation, base, ki, termbox }:
      mkDerivation {
        pname = "termbox-tea";
-       version = "0.1.0.1";
-       sha256 = "12wcqysm52ln1ppc9a8jhn2a085h2i2hyzvmm5cjrbwxbrnkaawd";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base ki termbox ];
-       description = "termbox + The Elm Architecture";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "termbox-tea_1_0_0" = callPackage
-    ({ mkDerivation, base, ki, termbox }:
-     mkDerivation {
-       pname = "termbox-tea";
        version = "1.0.0";
        sha256 = "0wya0fkjialv7hs6iw230x5ryx79s12pwig28mwrvgzvxmgm383a";
        isLibrary = true;
@@ -297004,7 +296921,6 @@ self: {
        libraryHaskellDepends = [ base ki termbox ];
        description = "termbox + The Elm Architecture";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "termcolor" = callPackage
@@ -297188,6 +297104,43 @@ self: {
      }) {inherit (pkgs) gtk3; inherit (pkgs) pcre2; 
          vte_291 = pkgs.vte;};
 
+  "termonad_4_6_0_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, Cabal, cabal-doctest
+     , colour, containers, data-default, directory, doctest, dyre
+     , file-embed, filepath, focuslist, gi-gdk, gi-gdkpixbuf, gi-gio
+     , gi-glib, gi-gtk, gi-pango, gi-vte, gtk3, haskell-gi-base
+     , inline-c, lens, optparse-applicative, pcre2, pretty-simple
+     , QuickCheck, tasty, template-haskell, text, transformers
+     , unordered-containers, vte_291, xml-conduit, xml-html-qq, yaml
+     }:
+     mkDerivation {
+       pname = "termonad";
+       version = "4.6.0.0";
+       sha256 = "1dyhmjjjsd3lh9mr6w3v2ciajcmnya7k9gb54pfapb85hylqccfr";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson base bytestring colour containers data-default directory dyre
+         file-embed filepath focuslist gi-gdk gi-gdkpixbuf gi-gio gi-glib
+         gi-gtk gi-pango gi-vte haskell-gi-base inline-c lens
+         optparse-applicative pretty-simple text transformers
+         unordered-containers xml-conduit xml-html-qq yaml
+       ];
+       libraryPkgconfigDepends = [ gtk3 pcre2 vte_291 ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base doctest QuickCheck tasty template-haskell
+       ];
+       description = "Terminal emulator configurable in Haskell";
+       license = lib.licenses.bsd3;
+       badPlatforms = lib.platforms.darwin;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "termonad";
+       maintainers = [ lib.maintainers.cdepillabout ];
+     }) {inherit (pkgs) gtk3; inherit (pkgs) pcre2; 
+         vte_291 = pkgs.vte;};
+
   "termplot" = callPackage
     ({ mkDerivation, base, brick, data-default, optparse-applicative
      , process, split, time-units, transformers, unix, vty
@@ -297346,8 +297299,8 @@ self: {
        pname = "test-framework";
        version = "0.8.2.0";
        sha256 = "1hhacrzam6b8f10hyldmjw8pb7frdxh04rfg3farxcxwbnhwgbpm";
-       revision = "10";
-       editedCabalFile = "087hnvbnzyw3by6ag0gk8bmk27w52iqplml9lm6wx08mrw0d2myx";
+       revision = "11";
+       editedCabalFile = "1p0a12cf6h2wfhrym8zl1iv0isg5mxs3ydzp770q6ahkm4lqsfz6";
        libraryHaskellDepends = [
          ansi-terminal ansi-wl-pprint base containers hostname old-locale
          random regex-posix time xml
@@ -297392,6 +297345,8 @@ self: {
        ];
        description = "Golden tests support for test-framework";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "test-framework-hunit" = callPackage
@@ -297664,6 +297619,8 @@ self: {
        ];
        description = "Laws for mtl classes as QuickCheck properties";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "test-pkg" = callPackage
@@ -298068,29 +298025,6 @@ self: {
      }:
      mkDerivation {
        pname = "texmath";
-       version = "0.12.8.4";
-       sha256 = "1pkilvc2v1s5h6kxshwwkgjzm6f5dzya30rfpxg09zsrqpffjlzv";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base containers mtl pandoc-types parsec split syb text
-         typst-symbols xml
-       ];
-       testHaskellDepends = [
-         base bytestring directory filepath pretty-show tagged tasty
-         tasty-golden text xml
-       ];
-       description = "Conversion between math formats";
-       license = lib.licenses.gpl2Only;
-     }) {};
-
-  "texmath_0_12_8_6" = callPackage
-    ({ mkDerivation, base, bytestring, containers, directory, filepath
-     , mtl, pandoc-types, parsec, pretty-show, split, syb, tagged, tasty
-     , tasty-golden, text, typst-symbols, xml
-     }:
-     mkDerivation {
-       pname = "texmath";
        version = "0.12.8.6";
        sha256 = "17fs83q1wb2s8j8ia5c36108wibm8pvdqhz4zcflvdivml3pm8vv";
        isLibrary = true;
@@ -298105,7 +298039,6 @@ self: {
        ];
        description = "Conversion between math formats";
        license = lib.licenses.gpl2Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "texrunner" = callPackage
@@ -298117,6 +298050,8 @@ self: {
        pname = "texrunner";
        version = "0.0.1.3";
        sha256 = "0lck7b6gw217jabgz2sa3r32i7yxm35hx32jn0s86dbckc2xqili";
+       revision = "1";
+       editedCabalFile = "1z719yygpzr8lsdvyldq1dca7lffll4wlbv7mkm7phyks6zfdn1m";
        libraryHaskellDepends = [
          attoparsec base bytestring directory filepath io-streams mtl
          process semigroups temporary
@@ -298225,17 +298160,6 @@ self: {
      }) {};
 
   "text-ansi" = callPackage
-    ({ mkDerivation, base, text, text-builder }:
-     mkDerivation {
-       pname = "text-ansi";
-       version = "0.2.1.1";
-       sha256 = "1lcpcyi16qly7pdb41ixm0qcdi2lq1z7cv0v1gfwryvp7d0sjgar";
-       libraryHaskellDepends = [ base text text-builder ];
-       description = "Text styling for ANSI terminals";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "text-ansi_0_3_0_1" = callPackage
     ({ mkDerivation, base, text, text-builder-linear }:
      mkDerivation {
        pname = "text-ansi";
@@ -298244,21 +298168,20 @@ self: {
        libraryHaskellDepends = [ base text text-builder-linear ];
        description = "Text styling for ANSI terminals";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "text-ascii" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, deepseq
-     , hashable, megaparsec, optics-core, optics-extra, template-haskell
-     , text
+     , hashable, megaparsec, monoid-subclasses, optics-core
+     , optics-extra, template-haskell, text
      }:
      mkDerivation {
        pname = "text-ascii";
-       version = "1.1";
-       sha256 = "0i9fmb41sc05nz1jjfz33cbqqy894xaw604dnb4fb7248xbnmc3c";
+       version = "1.2.1";
+       sha256 = "0qxy9ikhzqb4zhvfcwvnm6vyjni3mslr74w0f42m51kxjs8vxys9";
        libraryHaskellDepends = [
          base bytestring case-insensitive deepseq hashable megaparsec
-         optics-core optics-extra template-haskell text
+         monoid-subclasses optics-core optics-extra template-haskell text
        ];
        description = "ASCII string and character processing";
        license = lib.licenses.asl20;
@@ -298278,25 +298201,6 @@ self: {
      }) {};
 
   "text-builder" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, QuickCheck
-     , quickcheck-instances, rerebase, tasty, tasty-hunit
-     , tasty-quickcheck, text, text-builder-dev
-     }:
-     mkDerivation {
-       pname = "text-builder";
-       version = "0.6.7";
-       sha256 = "00pl4jbqpcrfc00m3hf871g9k7s0n6xf2igb7ba1dnqh76w4lw4h";
-       libraryHaskellDepends = [ base bytestring text text-builder-dev ];
-       testHaskellDepends = [
-         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
-         tasty-quickcheck
-       ];
-       benchmarkHaskellDepends = [ criterion rerebase ];
-       description = "An efficient strict text builder";
-       license = lib.licenses.mit;
-     }) {};
-
-  "text-builder_0_6_7_2" = callPackage
     ({ mkDerivation, base, bytestring, criterion, rerebase, tasty
      , tasty-hunit, tasty-quickcheck, text, text-builder-dev
      }:
@@ -298311,32 +298215,9 @@ self: {
        benchmarkHaskellDepends = [ criterion rerebase ];
        description = "Efficient strict text builder";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "text-builder-dev" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, deferred-folds
-     , isomorphism-class, QuickCheck, quickcheck-instances, rerebase
-     , split, tasty, tasty-hunit, tasty-quickcheck, text, transformers
-     }:
-     mkDerivation {
-       pname = "text-builder-dev";
-       version = "0.3.3.2";
-       sha256 = "1bsm4yl22mpzggcnh908ccw9mvg3prckydwxxqa4rfj4k8hy4x7m";
-       libraryHaskellDepends = [
-         base bytestring deferred-folds isomorphism-class split text
-         transformers
-       ];
-       testHaskellDepends = [
-         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
-         tasty-quickcheck
-       ];
-       benchmarkHaskellDepends = [ criterion rerebase ];
-       description = "Edge of developments for \"text-builder\"";
-       license = lib.licenses.mit;
-     }) {};
-
-  "text-builder-dev_0_3_4_2" = callPackage
     ({ mkDerivation, base, base-compat, bytestring, criterion
      , deferred-folds, isomorphism-class, QuickCheck, quickcheck-classes
      , quickcheck-instances, rerebase, split, tasty, tasty-hunit
@@ -298357,7 +298238,6 @@ self: {
        benchmarkHaskellDepends = [ criterion rerebase ];
        description = "Edge of developments for \"text-builder\"";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "text-builder-linear" = callPackage
@@ -298952,6 +298832,8 @@ self: {
        libraryHaskellDepends = [ base classy-prelude mtl parsec text ];
        description = "A type class for rendering objects as text, pretty-printing, etc";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "text-replace" = callPackage
@@ -298971,7 +298853,9 @@ self: {
        testHaskellDepends = [ base hedgehog neat-interpolation text ];
        description = "Simple text replacements from a list of search/replace pairs";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "text-replace";
+       broken = true;
      }) {};
 
   "text-rope" = callPackage
@@ -299436,22 +299320,6 @@ self: {
     ({ mkDerivation, base, containers, ghc-prim, template-haskell }:
      mkDerivation {
        pname = "th-abstraction";
-       version = "0.4.5.0";
-       sha256 = "09hm0famyqsq09lal2ylnhsb31hybj8zanldi7cqncky4i7y5m80";
-       revision = "1";
-       editedCabalFile = "1hyjz6v788yiazhpkgcgipsvg52ik3w8jdpnajg0ayl1x5m1i3y2";
-       libraryHaskellDepends = [
-         base containers ghc-prim template-haskell
-       ];
-       testHaskellDepends = [ base containers template-haskell ];
-       description = "Nicer interface for reified information about data types";
-       license = lib.licenses.isc;
-     }) {};
-
-  "th-abstraction_0_5_0_0" = callPackage
-    ({ mkDerivation, base, containers, ghc-prim, template-haskell }:
-     mkDerivation {
-       pname = "th-abstraction";
        version = "0.5.0.0";
        sha256 = "0r4ri85283i1jjhd94wa9nps6cd9a8mh6rr4ds1gb2hqnwxdqn42";
        libraryHaskellDepends = [
@@ -299460,7 +299328,6 @@ self: {
        testHaskellDepends = [ base containers template-haskell ];
        description = "Nicer interface for reified information about data types";
        license = lib.licenses.isc;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "th-abstraction_0_6_0_0" = callPackage
@@ -299544,8 +299411,8 @@ self: {
        pname = "th-compat";
        version = "0.1.4";
        sha256 = "1f5ssi24mnhmmi91dl5ddg2jwci6akwlznqggf56nyxl9b0pmyfq";
-       revision = "3";
-       editedCabalFile = "1zrjfmbm9dm3mh3s4h6nb80ixwypkmc2dzgxim6b1jkjkj7inz9y";
+       revision = "4";
+       editedCabalFile = "0drd28785137wfwy2say899qviz5ck2nrnv85lyvihf1xiwwdwpm";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [
          base base-compat hspec mtl template-haskell
@@ -299594,8 +299461,8 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "th-data-compat";
-       version = "0.1.3.0";
-       sha256 = "0ll67hmrb0hfdpgyryppp1rplr8fmyj09zka931gwial0kwkhlir";
+       version = "0.1.3.1";
+       sha256 = "1ppp3l0mvwsn1xh4x939svwl24p9844lv6hd1nbv6sd4lpkm7g92";
        libraryHaskellDepends = [ base template-haskell ];
        description = "Compatibility for data definition template of TH";
        license = lib.licenses.bsd3;
@@ -299604,22 +299471,21 @@ self: {
   "th-desugar" = callPackage
     ({ mkDerivation, base, containers, ghc-prim, hspec, HUnit, mtl
      , ordered-containers, syb, template-haskell, th-abstraction
-     , th-lift, th-orphans, transformers-compat
+     , th-orphans, transformers-compat
      }:
      mkDerivation {
        pname = "th-desugar";
-       version = "1.14";
-       sha256 = "1b57v15xx0z0xjlijv61dh07p6rvfkdpxnxiaaa1iv7zyg2x7cnz";
-       revision = "2";
-       editedCabalFile = "16i6x4w286mhhkxzjid5pfbnn51dzyxq6brawlppqb15qbnvs744";
+       version = "1.15";
+       sha256 = "167ybxp9233xlihmj28hmqmd82liyhjgl17310nn9bximgfjr7hp";
+       revision = "1";
+       editedCabalFile = "1mpig192p595d3961w1x35w50h8i6c9zp0h4d44mnjy2wd7hb99j";
        libraryHaskellDepends = [
          base containers ghc-prim mtl ordered-containers syb
-         template-haskell th-abstraction th-lift th-orphans
-         transformers-compat
+         template-haskell th-abstraction th-orphans transformers-compat
        ];
        testHaskellDepends = [
          base containers hspec HUnit mtl syb template-haskell th-abstraction
-         th-lift th-orphans
+         th-orphans
        ];
        description = "Functions to desugar Template Haskell";
        license = lib.licenses.bsd3;
@@ -299954,28 +299820,6 @@ self: {
      }:
      mkDerivation {
        pname = "th-printf";
-       version = "0.7";
-       sha256 = "1f9lw0scm2bpnhmhgvywzphxn85ln3xcn8cjyvy8h4cn2ymw4aza";
-       revision = "1";
-       editedCabalFile = "0q9b8xv6qf8yg5c6rn1jgmgwr4ckf4yzd9qv9ysr3c363cgnccyv";
-       libraryHaskellDepends = [
-         base charset containers dlist integer-logarithms microlens-platform
-         mtl parsec semigroups template-haskell text th-lift transformers
-       ];
-       testHaskellDepends = [
-         base hspec HUnit QuickCheck template-haskell text
-       ];
-       description = "Quasiquoters for printf";
-       license = lib.licenses.mit;
-     }) {};
-
-  "th-printf_0_8" = callPackage
-    ({ mkDerivation, base, charset, containers, dlist, hspec, HUnit
-     , integer-logarithms, microlens-platform, mtl, parsec, QuickCheck
-     , semigroups, template-haskell, text, th-lift, transformers
-     }:
-     mkDerivation {
-       pname = "th-printf";
        version = "0.8";
        sha256 = "0lirq0aq7sq43g29xpzhrpkmh1wlkdyxh9pv6ryqbbpcgnx98m7l";
        libraryHaskellDepends = [
@@ -299987,7 +299831,6 @@ self: {
        ];
        description = "Quasiquoters for printf";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "th-reify-compat" = callPackage
@@ -300340,18 +300183,14 @@ self: {
      }) {};
 
   "these" = callPackage
-    ({ mkDerivation, assoc, base, binary, deepseq
-     , foldable1-classes-compat, hashable
-     }:
+    ({ mkDerivation, assoc, base, binary, deepseq, hashable }:
      mkDerivation {
        pname = "these";
        version = "1.2";
        sha256 = "1f6lmjmy3yl1d2ycfsfk7q4sd0m3zrrap2plc11pd47pnxs73vd8";
        revision = "1";
        editedCabalFile = "0vpcgbyrykzzyycwda8k6dcjvjcncrwlish4gkw2i80wi7v247h1";
-       libraryHaskellDepends = [
-         assoc base binary deepseq foldable1-classes-compat hashable
-       ];
+       libraryHaskellDepends = [ assoc base binary deepseq hashable ];
        description = "An either-or-both data type";
        license = lib.licenses.bsd3;
      }) {};
@@ -300776,6 +300615,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "threepenny-gui_0_9_4_1" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, containers
+     , data-default, deepseq, exceptions, file-embed, filepath, hashable
+     , safe, snap-core, snap-server, stm, template-haskell, text
+     , transformers, unordered-containers, vault, vector, websockets
+     , websockets-snap
+     }:
+     mkDerivation {
+       pname = "threepenny-gui";
+       version = "0.9.4.1";
+       sha256 = "199jpgzmjlraspazaq9crv1zl92xmi8k2fif5kvznzpjvl4b1k1k";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson async base bytestring containers data-default deepseq
+         exceptions file-embed filepath hashable safe snap-core snap-server
+         stm template-haskell text transformers unordered-containers vault
+         vector websockets websockets-snap
+       ];
+       description = "GUI framework that uses the web browser as a display";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "threepenny-gui-contextmenu" = callPackage
     ({ mkDerivation, base, threepenny-gui }:
      mkDerivation {
@@ -301483,8 +301347,8 @@ self: {
     ({ mkDerivation, base, time }:
      mkDerivation {
        pname = "time-domain";
-       version = "0.1.0.2";
-       sha256 = "1ld3g176mk3nrq6mczc4r079bp961gnhlkj52j381va233bv3zk3";
+       version = "0.1.0.3";
+       sha256 = "1wwhqgg0fv8c55fzpwvk57xhgm0ir54zkchrzijjbia5591pzb81";
        libraryHaskellDepends = [ base time ];
        description = "A library for time domains and durations";
        license = lib.licenses.mit;
@@ -302104,20 +301968,6 @@ self: {
      }) {};
 
   "timer-wheel" = callPackage
-    ({ mkDerivation, array, atomic-primops, base, ki, psqueues }:
-     mkDerivation {
-       pname = "timer-wheel";
-       version = "0.4.0.1";
-       sha256 = "0h8g9mgp7hcmksvgwwx2n1p9mavdsykqlavpdms7xbh0kgsb445z";
-       revision = "1";
-       editedCabalFile = "1gqbqkjvyvgkra6w8zy4sdxr2gvqj9wcf15rqsx4dbz3dlyjz06k";
-       libraryHaskellDepends = [ array atomic-primops base ki psqueues ];
-       testHaskellDepends = [ base ];
-       description = "A timer wheel";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "timer-wheel_1_0_0" = callPackage
     ({ mkDerivation, atomic-primops, base, ki, primitive, random
      , tasty-bench
      }:
@@ -302130,7 +301980,6 @@ self: {
        benchmarkHaskellDepends = [ base ki random tasty-bench ];
        description = "A timer wheel";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "timerep" = callPackage
@@ -302404,6 +302253,8 @@ self: {
        testHaskellDepends = [ base QuickCheck ];
        description = "Tiny INI file and configuration library with a minimal dependency footprint";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "tinkoff-invest-sdk" = callPackage
@@ -302527,8 +302378,8 @@ self: {
     ({ mkDerivation, base, bytestring, entropy }:
      mkDerivation {
        pname = "tinyid";
-       version = "0.1.0.0";
-       sha256 = "01863iq39skw38x1c7v809shfgmxdnj680a6zxjviraqfzyk8h0z";
+       version = "0.1.1.0";
+       sha256 = "1qblv2gvzkikw3wnaz77bb7327904a18s76jxnpyl7lz12k3dmzg";
        libraryHaskellDepends = [ base bytestring entropy ];
        description = "A secure URL-friendly string ID generator";
        license = lib.licenses.mit;
@@ -302580,8 +302431,8 @@ self: {
      }:
      mkDerivation {
        pname = "tinytools";
-       version = "0.1.0.6";
-       sha256 = "0n69x1fk82pmhfn67r7i8xipxp4jqj3m1wy7n5b7garq3gwj5k4c";
+       version = "0.1.0.7";
+       sha256 = "19sxqs5jdhbasssd5qvkzy2afjcww85fp60vb9iany8g90dfp3vs";
        libraryHaskellDepends = [
          aeson aeson-pretty base bimap binary bytestring constraints-extras
          containers data-default data-ordlist deepseq dependent-map
@@ -302590,11 +302441,8 @@ self: {
          reflex-test-host relude semialign text text-icu these vector vty
        ];
        testHaskellDepends = [
-         aeson base bimap binary bytestring constraints-extras containers
-         data-default data-ordlist deepseq dependent-map dependent-sum
-         dependent-sum-template extra hspec hspec-contrib HUnit ilist lens
-         linear mtl pretty-simple ref-tf reflex reflex-potatoes
-         reflex-test-host relude semialign text text-icu these vector vty
+         base containers data-default data-ordlist dependent-sum extra hspec
+         hspec-contrib HUnit reflex reflex-test-host relude these vector
        ];
        testToolDepends = [ hspec-discover ];
        description = "tinytools is a monospace unicode diagram editor";
@@ -302613,8 +302461,8 @@ self: {
      }:
      mkDerivation {
        pname = "tinytools-vty";
-       version = "0.1.0.4";
-       sha256 = "1hcnwnq5imjqdcvlcri8dmc4lr08dg3nx6rklrv8a0rx34rd8naa";
+       version = "0.1.0.7";
+       sha256 = "0wzwl8k581iw6xa31gc9706qfizk7milnb03qg1xixnrrd9375ah";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -302634,17 +302482,13 @@ self: {
          template-haskell text these time tinytools vty
        ];
        testHaskellDepends = [
-         aeson aeson-pretty ansi-terminal base bimap bytestring clock
-         constraints-extras containers data-default dependent-map
-         dependent-sum directory extra file-embed filepath hspec
-         hspec-contrib http-conduit HUnit ilist lens mtl
-         optparse-applicative primitive ref-tf reflex reflex-potatoes
-         reflex-test-host reflex-vty relude semialign template-haskell text
-         these time tinytools vty
+         base data-default hspec hspec-contrib HUnit ref-tf reflex
+         reflex-test-host reflex-vty relude tinytools vty
        ];
        description = "tinytools-vty is a terminal based monospace unicode diagram editing tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tinytools";
      }) {};
 
   "tip-haskell-frontend" = callPackage
@@ -302991,26 +302835,29 @@ self: {
 
   "tls" = callPackage
     ({ mkDerivation, asn1-encoding, asn1-types, async, base, bytestring
-     , cereal, cryptonite, data-default-class, gauge, hourglass, memory
-     , mtl, network, QuickCheck, tasty, tasty-quickcheck, transformers
-     , x509, x509-store, x509-validation
+     , cereal, crypton, crypton-x509, crypton-x509-store
+     , crypton-x509-validation, data-default-class, gauge, hourglass
+     , memory, mtl, network, QuickCheck, tasty, tasty-quickcheck
+     , transformers, unix-time
      }:
      mkDerivation {
        pname = "tls";
-       version = "1.6.0";
-       sha256 = "1674i73dwha42ia1wlngi346lnfbag46w1wvqfim5f61q6pj17fj";
+       version = "1.8.0";
+       sha256 = "024qj5w5l1z1hmi24l433jwiyh2jnadziibs7rsnbn0v7zgqd12a";
        libraryHaskellDepends = [
-         asn1-encoding asn1-types async base bytestring cereal cryptonite
-         data-default-class hourglass memory mtl network transformers x509
-         x509-store x509-validation
+         asn1-encoding asn1-types async base bytestring cereal crypton
+         crypton-x509 crypton-x509-store crypton-x509-validation
+         data-default-class memory mtl network transformers unix-time
        ];
        testHaskellDepends = [
-         asn1-types async base bytestring cryptonite data-default-class
-         hourglass QuickCheck tasty tasty-quickcheck x509 x509-validation
+         asn1-types async base bytestring crypton crypton-x509
+         crypton-x509-validation data-default-class hourglass QuickCheck
+         tasty tasty-quickcheck
        ];
        benchmarkHaskellDepends = [
-         asn1-types async base bytestring cryptonite data-default-class
-         gauge hourglass QuickCheck tasty-quickcheck x509 x509-validation
+         asn1-types async base bytestring crypton crypton-x509
+         crypton-x509-validation data-default-class gauge hourglass
+         QuickCheck tasty-quickcheck
        ];
        description = "TLS/SSL protocol native implementation (Server and Client)";
        license = lib.licenses.bsd3;
@@ -303196,17 +303043,19 @@ self: {
        ];
        description = "Start and stop a temporary postgres";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "tmp-proc" = callPackage
-    ({ mkDerivation, async, base, bytestring, connection, data-default
-     , hspec, http-client, http-client-tls, http-types, mtl, network
-     , process, req, text, unliftio, wai, warp, warp-tls
+    ({ mkDerivation, async, base, bytestring, data-default, hspec
+     , http-client, http-types, mtl, network, process, text, unliftio
+     , wai, warp, warp-tls
      }:
      mkDerivation {
        pname = "tmp-proc";
-       version = "0.5.1.4";
-       sha256 = "0ps2fh7c9s30yc2jvwz5qzlhr6qck23as7f1ddkvxfh07wll2bkz";
+       version = "0.5.3.0";
+       sha256 = "0wir2bmvpibx5ak1zfk3jjxalz5lznqfw48m4cybds02xpmxrsxa";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -303215,22 +303064,22 @@ self: {
          warp-tls
        ];
        testHaskellDepends = [
-         base bytestring connection data-default hspec http-client
-         http-client-tls http-types req text wai warp warp-tls
+         base bytestring data-default hspec http-client http-types text wai
+         warp
        ];
        description = "Run 'tmp' processes in integration tests";
        license = lib.licenses.bsd3;
      }) {};
 
-  "tmp-proc_0_5_3_0" = callPackage
+  "tmp-proc_0_6_0_0" = callPackage
     ({ mkDerivation, async, base, bytestring, data-default, hspec
      , http-client, http-types, mtl, network, process, text, unliftio
      , wai, warp, warp-tls
      }:
      mkDerivation {
        pname = "tmp-proc";
-       version = "0.5.3.0";
-       sha256 = "0wir2bmvpibx5ak1zfk3jjxalz5lznqfw48m4cybds02xpmxrsxa";
+       version = "0.6.0.0";
+       sha256 = "148zvf2zwg84pyksir7j9y208y135i95dp0hh9514xahfh44ic3x";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -303257,8 +303106,8 @@ self: {
      }:
      mkDerivation {
        pname = "tmp-proc-example";
-       version = "0.5.3.1";
-       sha256 = "10p93rck5z4jhsy77rg6v1i19125561px1mjigqs1v1ip288ygfa";
+       version = "0.6.0.0";
+       sha256 = "0rk9rh2hpzx5hi6jpybwbbfmiqsgadb3gahhyvdiakzikbfjcn6y";
        libraryHaskellDepends = [
          aeson base bytestring exceptions hedis hspec hspec-tmp-proc
          http-client http-client-tls monad-logger mtl persistent
@@ -303279,8 +303128,8 @@ self: {
      }:
      mkDerivation {
        pname = "tmp-proc-postgres";
-       version = "0.5.2.3";
-       sha256 = "1db2nj009daglrdgwn89xab072ax1lcl3rvjzlp6fcqfmppdjj1g";
+       version = "0.5.3.1";
+       sha256 = "04kcqn2lg7ycf2hjv4gvq9y59w48dn5kijxs7cghiz8yq1qc75zf";
        libraryHaskellDepends = [
          base bytestring postgresql-simple text tmp-proc
        ];
@@ -303288,18 +303137,18 @@ self: {
          base bytestring hspec hspec-tmp-proc postgresql-simple text
          tmp-proc
        ];
-       description = "Shows how to run a PostgreSQL database as a tmp proc";
+       description = "Launch a PostgreSQL database in docker using tmp-proc";
        license = lib.licenses.bsd3;
      }) {};
 
-  "tmp-proc-postgres_0_5_3_1" = callPackage
+  "tmp-proc-postgres_0_6_0_0" = callPackage
     ({ mkDerivation, base, bytestring, hspec, hspec-tmp-proc
      , postgresql-simple, text, tmp-proc
      }:
      mkDerivation {
        pname = "tmp-proc-postgres";
-       version = "0.5.3.1";
-       sha256 = "04kcqn2lg7ycf2hjv4gvq9y59w48dn5kijxs7cghiz8yq1qc75zf";
+       version = "0.6.0.0";
+       sha256 = "1zddls7fax0wrs06db6p9457gs7ay0q0b4cmvykzdlkq3k38xnd8";
        libraryHaskellDepends = [
          base bytestring postgresql-simple text tmp-proc
        ];
@@ -303318,24 +303167,24 @@ self: {
      }:
      mkDerivation {
        pname = "tmp-proc-rabbitmq";
-       version = "0.5.1.4";
-       sha256 = "0iv12gbahmxxb0ap616ziwj34dx25qbmj9j9ach29hfabsr45bx9";
+       version = "0.5.3.1";
+       sha256 = "0jkghypnlc9fsss8nqk7rbr42wkmdpgaa5v6bhfw6mwrcnz4i15h";
        libraryHaskellDepends = [ amqp base bytestring text tmp-proc ];
        testHaskellDepends = [
          amqp base bytestring hspec hspec-tmp-proc text tmp-proc
        ];
-       description = "Shows how to run RabbitMQ as a tmp proc";
+       description = "Launch RabbitMQ in docker using tmp-proc";
        license = lib.licenses.bsd3;
      }) {};
 
-  "tmp-proc-rabbitmq_0_5_3_1" = callPackage
+  "tmp-proc-rabbitmq_0_6_0_0" = callPackage
     ({ mkDerivation, amqp, base, bytestring, hspec, hspec-tmp-proc
      , text, tmp-proc
      }:
      mkDerivation {
        pname = "tmp-proc-rabbitmq";
-       version = "0.5.3.1";
-       sha256 = "0jkghypnlc9fsss8nqk7rbr42wkmdpgaa5v6bhfw6mwrcnz4i15h";
+       version = "0.6.0.0";
+       sha256 = "104hsrr18ch40h9vqa3pxzq5nvhawqxyq8lvyjfwal2ncakyyzrn";
        libraryHaskellDepends = [ amqp base bytestring text tmp-proc ];
        testHaskellDepends = [
          amqp base bytestring hspec hspec-tmp-proc text tmp-proc
@@ -303351,24 +303200,24 @@ self: {
      }:
      mkDerivation {
        pname = "tmp-proc-redis";
-       version = "0.5.1.4";
-       sha256 = "0rmximk8asf59s89girbvg244dsd7h72x2bwswkrm2zmv42j2qhr";
+       version = "0.5.3.1";
+       sha256 = "1pqmg6xqfbl71q5pnryrmqsf443qpsq89wk1kax6k68zmyn7ws4i";
        libraryHaskellDepends = [ base bytestring hedis text tmp-proc ];
        testHaskellDepends = [
          base bytestring hedis hspec hspec-tmp-proc text tmp-proc
        ];
-       description = "Shows how to run redis as a tmp proc";
+       description = "Launch Redis in docker using tmp-proc";
        license = lib.licenses.bsd3;
      }) {};
 
-  "tmp-proc-redis_0_5_3_1" = callPackage
+  "tmp-proc-redis_0_6_0_0" = callPackage
     ({ mkDerivation, base, bytestring, hedis, hspec, hspec-tmp-proc
      , text, tmp-proc
      }:
      mkDerivation {
        pname = "tmp-proc-redis";
-       version = "0.5.3.1";
-       sha256 = "1pqmg6xqfbl71q5pnryrmqsf443qpsq89wk1kax6k68zmyn7ws4i";
+       version = "0.6.0.0";
+       sha256 = "02l8x3z1ikpvd92cynda4s46sg35ql9f59y48w32vcgdlzs6v19v";
        libraryHaskellDepends = [ base bytestring hedis text tmp-proc ];
        testHaskellDepends = [
          base bytestring hedis hspec hspec-tmp-proc text tmp-proc
@@ -303384,8 +303233,8 @@ self: {
      }:
      mkDerivation {
        pname = "tmp-proc-zipkin";
-       version = "0.5.3.1";
-       sha256 = "1wwy50987h6bx9fyn5k9jamsmzrx8l58nqbjynmwymwzj82kwlwc";
+       version = "0.6.0.0";
+       sha256 = "01acz3c21wlkgrazlgmdl68y7pg2vz8cxk8776xi979w0q1kp56a";
        libraryHaskellDepends = [
          base bytestring http-client text tmp-proc tracing
        ];
@@ -303596,8 +303445,8 @@ self: {
      }:
      mkDerivation {
        pname = "toilet";
-       version = "0.0.2";
-       sha256 = "0a570jkqgq7g2qrmbmpgx0kiin3gdqhqpdqcmj7psfg8fxvhd7k6";
+       version = "0.0.2.1";
+       sha256 = "0596k74gg33lmhlaznhb90sf5a5zsy6jr260p2s6fv6zv8i48rnk";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -303885,8 +303734,10 @@ self: {
      }:
      mkDerivation {
        pname = "toml-parser";
-       version = "1.3.1.1";
-       sha256 = "0gh86i6z98zdpy7i4vh66jnivd440hg552a103zkfyg7qsfprmwh";
+       version = "1.3.2.0";
+       sha256 = "1cb748vkqzgswkbchfg73wqmhjarz2ws7c42nf4jlqfdhijly2qy";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          array base containers prettyprinter text time transformers
        ];
@@ -304402,6 +304253,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "torsor_0_1_0_1" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "torsor";
+       version = "0.1.0.1";
+       sha256 = "0ljcxlv019qfbs3wvp03j8l261i1p6vv3vycabcd0hpy0dbq80d9";
+       libraryHaskellDepends = [ base ];
+       description = "Torsor Typeclass";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "tostring" = callPackage
     ({ mkDerivation, base, case-insensitive, text, utf8-string }:
      mkDerivation {
@@ -304843,8 +304706,8 @@ self: {
      }:
      mkDerivation {
        pname = "tracing";
-       version = "0.0.7.3";
-       sha256 = "1v178byysbl6cpx8dqs4a1failfzpr80fqv7icddq28rh95b2aj2";
+       version = "0.0.7.4";
+       sha256 = "1fmfa75h8lnq5dz5gcqig34lg0zib893a316chmqfz91cfd5ws8r";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive containers
          http-client mtl network random stm text time transformers unliftio
@@ -304877,6 +304740,7 @@ self: {
        ];
        description = "Distributed tracing";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tracked-files" = callPackage
@@ -304997,7 +304861,9 @@ self: {
          time transformers unordered-containers
        ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "trade-journal";
+       broken = true;
      }) {inherit (pkgs) gmp; inherit (pkgs) mpfr;};
 
   "traildb" = callPackage
@@ -305281,6 +305147,8 @@ self: {
        libraryHaskellDepends = [ base transformers ];
        description = "Control flow data type and monad transformer";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "transformers-convert" = callPackage
@@ -305359,6 +305227,8 @@ self: {
        libraryHaskellDepends = [ base transformers ];
        description = "Monad transformer for evaluating to a fixpoint";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "transformers-free" = callPackage
@@ -305372,6 +305242,8 @@ self: {
        libraryHaskellDepends = [ base transformers ];
        description = "Free monad transformers";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "transformers-lift" = callPackage
@@ -305411,6 +305283,8 @@ self: {
        libraryHaskellDepends = [ base mtl transformers ];
        description = "Supply applicative, monad, applicative transformer and monad transformer";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "transient" = callPackage
@@ -305846,8 +305720,8 @@ self: {
        pname = "tree-diff";
        version = "0.3.0.1";
        sha256 = "1bkjsklsqxq8i8p3zx73pck4ca1kv21zjvn9xhbhz191gygprrj0";
-       revision = "4";
-       editedCabalFile = "1m13fy6igixsjg02nx2hhlxmhy2isvx28b1wzmllsdd99lmdasy5";
+       revision = "5";
+       editedCabalFile = "167hw7jsvajj68g9inqrjkh6wj50yvvy2i6g97is31i6fhqifg09";
        libraryHaskellDepends = [
          aeson ansi-terminal ansi-wl-pprint base base-compat bytestring
          bytestring-builder containers deepseq hashable parsec parsers
@@ -306389,8 +306263,8 @@ self: {
        pname = "trie-simple";
        version = "0.4.2";
        sha256 = "1ai4fn35312z6ydwadi0rxscglwqawjrzq6p1i2kpbf7vmflznjg";
-       revision = "1";
-       editedCabalFile = "08vpcln682lxpz6367f6h5mvi6p75g3gcav432jz0bkmhvr3yaa2";
+       revision = "2";
+       editedCabalFile = "1acm5zh0lmz20gakq5ghmrgb87w76350gfxim25y4rh4jzr39wv1";
        libraryHaskellDepends = [
          base containers deepseq hashable indexed-traversable matchable mtl
          semialign these witherable
@@ -306461,6 +306335,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "trifecta_2_1_4" = callPackage
+    ({ mkDerivation, ansi-terminal, array, base, blaze-builder
+     , blaze-html, blaze-markup, bytestring, charset, comonad
+     , containers, deepseq, fingertree, ghc-prim, hashable
+     , indexed-traversable, lens, mtl, parsers, prettyprinter
+     , prettyprinter-ansi-terminal, profunctors, QuickCheck, reducers
+     , transformers, unordered-containers, utf8-string
+     }:
+     mkDerivation {
+       pname = "trifecta";
+       version = "2.1.4";
+       sha256 = "0a4wvj3g27xmkck150ci6wfp8lqbdlrqgi9q8y3k0cqsvfpl5n6l";
+       libraryHaskellDepends = [
+         ansi-terminal array base blaze-builder blaze-html blaze-markup
+         bytestring charset comonad containers deepseq fingertree ghc-prim
+         hashable indexed-traversable lens mtl parsers prettyprinter
+         prettyprinter-ansi-terminal profunctors reducers transformers
+         unordered-containers utf8-string
+       ];
+       testHaskellDepends = [ base parsers QuickCheck ];
+       description = "A modern parser combinator library with convenient diagnostics";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "trigger" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, clock, directory
      , exceptions, filepath, formatting, fsnotify, Glob, hspec, process
@@ -306569,6 +306468,8 @@ self: {
        ];
        description = "TripleSec is a simple, triple-paranoid, symmetric encryption library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "trivia" = callPackage
@@ -306647,6 +306548,8 @@ self: {
        testHaskellDepends = [ base containers template-haskell time ];
        description = "Template Haskell hack to violate module abstractions";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "truelevel" = callPackage
@@ -306996,24 +306899,6 @@ self: {
 
   "ttc" = callPackage
     ({ mkDerivation, base, bytestring, tasty, tasty-hunit
-     , template-haskell, text
-     }:
-     mkDerivation {
-       pname = "ttc";
-       version = "1.2.1.0";
-       sha256 = "001r357h1szs86xsivikvm4h57g6f6p63c2r83y2kpiflnaap4as";
-       revision = "3";
-       editedCabalFile = "01jci5kh9jrj38n91ghfq6z4nb29k6w33hwyccq2cx8j2433kykr";
-       libraryHaskellDepends = [ base bytestring template-haskell text ];
-       testHaskellDepends = [
-         base bytestring tasty tasty-hunit template-haskell text
-       ];
-       description = "Textual Type Classes";
-       license = lib.licenses.mit;
-     }) {};
-
-  "ttc_1_4_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, tasty, tasty-hunit
      , template-haskell, text, text-short
      }:
      mkDerivation {
@@ -307028,7 +306913,6 @@ self: {
        ];
        description = "Textual Type Classes";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ttl-hashtables" = callPackage
@@ -307267,7 +307151,9 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit ];
        description = "Access tuple fields using record dot syntax";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "gen-source";
+       broken = true;
      }) {};
 
   "tuple-gen" = callPackage
@@ -307517,34 +307403,6 @@ self: {
      }:
      mkDerivation {
        pname = "turtle";
-       version = "1.6.1";
-       sha256 = "171viripwn8hg3afkkswr243bv7q0r0bz3mn0bflddm4jdf49597";
-       revision = "5";
-       editedCabalFile = "1ll4pz1f2inhrfv1l6akzqlbycfwjxr6n1zzfspscjvwwni4vkm7";
-       libraryHaskellDepends = [
-         ansi-wl-pprint async base bytestring clock containers directory
-         exceptions filepath foldl hostname managed optional-args
-         optparse-applicative process stm streaming-commons temporary text
-         time transformers unix unix-compat
-       ];
-       testHaskellDepends = [
-         base doctest filepath tasty tasty-hunit temporary
-       ];
-       benchmarkHaskellDepends = [ base tasty-bench text ];
-       description = "Shell programming, Haskell-style";
-       license = lib.licenses.bsd3;
-       maintainers = [ lib.maintainers.Gabriella439 ];
-     }) {};
-
-  "turtle_1_6_2" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock
-     , containers, directory, doctest, exceptions, filepath, foldl
-     , hostname, managed, optional-args, optparse-applicative, process
-     , stm, streaming-commons, tasty, tasty-bench, tasty-hunit
-     , temporary, text, time, transformers, unix, unix-compat
-     }:
-     mkDerivation {
-       pname = "turtle";
        version = "1.6.2";
        sha256 = "0bav7b2ghbwdhpa4b5a7812psr6hqk7wydvgxjy5dsb62nqnc08s";
        revision = "2";
@@ -307561,7 +307419,6 @@ self: {
        benchmarkHaskellDepends = [ base tasty-bench text ];
        description = "Shell programming, Haskell-style";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = [ lib.maintainers.Gabriella439 ];
      }) {};
 
@@ -308060,6 +307917,8 @@ self: {
        ];
        description = "Haskell twirp foundations";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "twisty" = callPackage
@@ -308573,6 +308432,8 @@ self: {
        ];
        description = "Tools for writing better type errors";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "type-errors-pretty" = callPackage
@@ -308890,8 +308751,8 @@ self: {
      }:
      mkDerivation {
        pname = "type-natural";
-       version = "1.3.0.0";
-       sha256 = "0mdfc9hkwgisn8988gh5q0032wa7q97mp0vpzrgbnz617ai6mhy7";
+       version = "1.3.0.1";
+       sha256 = "0n07bcz5hi4l2a2lvgqkns4b158nsw10f1m7ij1vagwwvzsl0msf";
        libraryHaskellDepends = [
          base constraints equational-reasoning ghc ghc-typelits-knownnat
          ghc-typelits-natnormalise ghc-typelits-presburger
@@ -309011,6 +308872,8 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit ];
        description = "Support functions to work with type representations";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "type-rig" = callPackage
@@ -309230,6 +309093,31 @@ self: {
        broken = true;
      }) {};
 
+  "typechain" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, exceptions, http-conduit
+     , lens, mtl, split, template-haskell, unordered-containers
+     }:
+     mkDerivation {
+       pname = "typechain";
+       version = "0.2.0.0";
+       sha256 = "1d86474d6j05zkvgrjxzx6b46badcw421f3gzkjzggki2vswyg2l";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring exceptions http-conduit lens mtl
+         template-haskell unordered-containers
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring exceptions http-conduit lens mtl split
+         template-haskell unordered-containers
+       ];
+       description = "An implementation of LangChain in Haskell";
+       license = lib.licenses.gpl3Plus;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "typechain-exe";
+       broken = true;
+     }) {};
+
   "typecheck-plugin-nat-simple" = callPackage
     ({ mkDerivation, base, containers, ghc, ghc-tcplugins-extra }:
      mkDerivation {
@@ -309634,6 +309522,8 @@ self: {
        libraryHaskellDepends = [ base symbols text ];
        description = "Type-safe printf from parsing GHC TypeLits Symbol";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "typelits-witnesses" = callPackage
@@ -309955,23 +309845,13 @@ self: {
     ({ mkDerivation, base, text }:
      mkDerivation {
        pname = "typst-symbols";
-       version = "0.1.4";
-       sha256 = "0kpb4fnw7hkj17mgwrlcbc1vs7pxqf73kc2z3yzdmj9hjjfiid6b";
-       libraryHaskellDepends = [ base text ];
-       description = "Symbol and emoji lookup for typst language";
-       license = lib.licenses.mit;
-     }) {};
-
-  "typst-symbols_0_1_5" = callPackage
-    ({ mkDerivation, base, text }:
-     mkDerivation {
-       pname = "typst-symbols";
        version = "0.1.5";
        sha256 = "1kgw8c0p3qj1an6dhfim310aydgzq05lx086mznbfs5saya1x590";
+       revision = "1";
+       editedCabalFile = "0fw1b5k32qvbdcb8ys089y4dnf30qdbbkyhnzwg7z2vjnsp1nb20";
        libraryHaskellDepends = [ base text ];
        description = "Symbol and emoji lookup for typst language";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tyro" = callPackage
@@ -310030,10 +309910,27 @@ self: {
      }:
      mkDerivation {
        pname = "tzdata";
-       version = "0.2.20230322.0";
-       sha256 = "1qir5cy2cyk4p923l3ibimvc0rn4h5pwx0wmjarx69bmxzm7jib7";
-       revision = "3";
-       editedCabalFile = "05z8d4l8pizzrs3rldhn8abyfaf263mx25y2z5l34bcj006iqgnm";
+       version = "0.2.20231222.0";
+       sha256 = "049brcgpqkr8bj7q5fqmxclb4s1ikrx9gawy2yn0ig3nd0kspnw9";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bytestring containers deepseq vector
+       ];
+       testHaskellDepends = [
+         base bytestring HUnit tasty tasty-hunit tasty-th unix
+       ];
+       description = "Time zone database (as files and as a module)";
+       license = lib.licenses.asl20;
+     }) {};
+
+  "tzdata_0_2_20240201_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, HUnit
+     , tasty, tasty-hunit, tasty-th, unix, vector
+     }:
+     mkDerivation {
+       pname = "tzdata";
+       version = "0.2.20240201.0";
+       sha256 = "1mkb9j4xr8m03hpby39pb3xdqxxkbp9idz3xxhxf2fznv98z2acx";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers deepseq vector
@@ -310043,6 +309940,7 @@ self: {
        ];
        description = "Time zone database (as files and as a module)";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "tztime" = callPackage
@@ -310066,6 +309964,8 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Safe timezone-aware handling of time";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "u2f" = callPackage
@@ -310154,7 +310054,9 @@ self: {
        ];
        description = "Userspace Advanced Configuration and Power Interface event daemon";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "uacpid";
+       broken = true;
      }) {};
 
   "uber" = callPackage
@@ -310502,6 +310404,8 @@ self: {
        pname = "ui-command";
        version = "0.5.4";
        sha256 = "1qq902p5q6z1m0556bdc6brads7m2qrhrwnzd8k8c4jynzc829w7";
+       revision = "1";
+       editedCabalFile = "0svwn4r596vnj1bjklzb8jjr2jk232hsp4frb3wc1yflq5pqkjm2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base data-default mtl old-locale time ];
@@ -310801,6 +310705,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion deepseq ];
        description = "Support for programming with names and binders using GHC Generics";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "unbound-kind-generics" = callPackage
@@ -310816,6 +310722,7 @@ self: {
        ];
        description = "Support for programming with names and binders using kind-generics";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "unbounded-delays" = callPackage
@@ -310998,6 +310905,8 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Tiny package providing unescaping versions of show and print";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "unexceptionalio" = callPackage
@@ -311019,10 +310928,8 @@ self: {
     ({ mkDerivation, base, transformers, unexceptionalio }:
      mkDerivation {
        pname = "unexceptionalio-trans";
-       version = "0.5.1";
-       sha256 = "100sfbrpaldz37a176qpfkk1nx5acyh8pchjmb8g5vhzbhyrqniz";
-       revision = "1";
-       editedCabalFile = "0f15n8hqqczwjrcqxwjp2mrd9iycv53sylv407c95nb6d4hw93ci";
+       version = "0.5.2";
+       sha256 = "017hv1lx162wb8i28aax66z5lbi25i11lifbh2wbjy7j2bkrl6hd";
        libraryHaskellDepends = [ base transformers unexceptionalio ];
        description = "A wrapper around UnexceptionalIO using monad transformers";
        license = "unknown";
@@ -311056,6 +310963,8 @@ self: {
        ];
        description = "Class of data structures that can be unfolded";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "unfoldable-restricted" = callPackage
@@ -311072,6 +310981,7 @@ self: {
        ];
        description = "An alternative to the Unfoldable typeclass";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "unfork" = callPackage
@@ -311250,8 +311160,8 @@ self: {
      }:
      mkDerivation {
        pname = "unicode-collation";
-       version = "0.1.3.5";
-       sha256 = "0ya3a3s78hipzw95frw46ky2qv2a141gmwv2qvvgchplsl5f0a82";
+       version = "0.1.3.6";
+       sha256 = "0c1s1n4cqhjibiv05h5qfl4cg4h11ny4jay0gqnqg36z9kb66hfn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -311304,6 +311214,8 @@ self: {
        benchmarkHaskellDepends = [ base deepseq tasty tasty-bench ];
        description = "Unicode characters names and aliases";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "unicode-data-scripts" = callPackage
@@ -311323,6 +311235,8 @@ self: {
        ];
        description = "Unicode characters scripts";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "unicode-data-security" = callPackage
@@ -311341,6 +311255,8 @@ self: {
        benchmarkHaskellDepends = [ base deepseq tasty tasty-bench ];
        description = "Unicode security mechanisms database";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "unicode-general-category" = callPackage
@@ -311531,6 +311447,8 @@ self: {
        libraryHaskellDepends = [ base containers logict mtl ];
        description = "Simple generic unification algorithms";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "uniform-algebras" = callPackage
@@ -311817,6 +311735,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion deepseq lens ];
        description = "Extensible type-safe unions";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "union-angle" = callPackage
@@ -311867,6 +311787,8 @@ self: {
        libraryHaskellDepends = [ array base mtl ];
        description = "union find data structure";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "union-map" = callPackage
@@ -312245,6 +312167,7 @@ self: {
        ];
        description = "A domain-specific type system for dimensional analysis";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "units-attoparsec" = callPackage
@@ -312273,6 +312196,7 @@ self: {
        libraryHaskellDepends = [ base template-haskell units ];
        description = "Definitions for use with the units package";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "units-parser" = callPackage
@@ -312603,30 +312527,13 @@ self: {
        pname = "unix-bytestring";
        version = "0.4.0";
        sha256 = "0vpg1yfv69ks7b8vyci5l480nj3b90dfvkxdfhw4n3mgch4s6rh4";
+       revision = "1";
+       editedCabalFile = "0p9akxwacfkbhpiqp0nvdsk5lsxlr5l3b0dgz86fwf7pp2zsd82m";
        libraryHaskellDepends = [ base bytestring ];
        description = "Unix/Posix-specific functions for ByteStrings";
        license = lib.licenses.bsd3;
      }) {};
 
-  "unix-compat_0_6" = callPackage
-    ({ mkDerivation, base, directory, extra, hspec, HUnit
-     , monad-parallel, temporary, unix
-     }:
-     mkDerivation {
-       pname = "unix-compat";
-       version = "0.6";
-       sha256 = "1y6m8ix8np6vambabdaj2h7ydgda8igwy3kliv53mba3clx85kdl";
-       revision = "1";
-       editedCabalFile = "0g5mi6rh977idajgxnnlsd7dp28vf4xwiiwpsc4pj1rqv0lhjp8g";
-       libraryHaskellDepends = [ base unix ];
-       testHaskellDepends = [
-         base directory extra hspec HUnit monad-parallel temporary
-       ];
-       description = "Portable POSIX-compatibility layer";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "unix-compat" = callPackage
     ({ mkDerivation, base, directory, extra, hspec, HUnit
      , monad-parallel, temporary, unix
@@ -312696,6 +312603,8 @@ self: {
        ];
        description = "Unix memory syscalls";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "unix-process-conduit" = callPackage
@@ -312781,6 +312690,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "unix-time_0_4_12" = callPackage
+    ({ mkDerivation, base, binary, bytestring, hspec, hspec-discover
+     , old-locale, old-time, QuickCheck, template-haskell, time
+     }:
+     mkDerivation {
+       pname = "unix-time";
+       version = "0.4.12";
+       sha256 = "1qlpmwd43kaybbq7vaa1wnbay575qwj4r7xynafixa6bwnc759ah";
+       libraryHaskellDepends = [ base binary bytestring old-time ];
+       testHaskellDepends = [
+         base bytestring hspec old-locale old-time QuickCheck
+         template-haskell time
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Unix time parser/formatter and utilities";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "unjson" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, containers
      , free, hashable, HUnit, invariant, pretty, primitive, scientific
@@ -312898,8 +312826,8 @@ self: {
     ({ mkDerivation, base, bytestring, text-short }:
      mkDerivation {
        pname = "unlifted";
-       version = "0.2.1.0";
-       sha256 = "1ypm4bwgcylphvj3f1vbc92xljj08dgdlwkwnnb617m0clc92cak";
+       version = "0.2.2.0";
+       sha256 = "06phlykja7x0xn07d78sik6rkzl0qwwihk310nfc3r22j4wym4kx";
        libraryHaskellDepends = [ base bytestring text-short ];
        description = "Unlifted and levity-polymorphic types";
        license = lib.licenses.bsd3;
@@ -313004,15 +312932,12 @@ self: {
      }) {};
 
   "unliftio-pool" = callPackage
-    ({ mkDerivation, base, resource-pool, transformers, unliftio-core
-     }:
+    ({ mkDerivation, base, resource-pool, unliftio-core }:
      mkDerivation {
        pname = "unliftio-pool";
-       version = "0.4.2.0";
-       sha256 = "1j0751kb61hzxj3i4prbhhd2b94nmcckp92sandxvql3cbbkg4vr";
-       libraryHaskellDepends = [
-         base resource-pool transformers unliftio-core
-       ];
+       version = "0.4.3.0";
+       sha256 = "1pwlyvlz7qf4vdgijzal9dmwdgx7hzqqan5ws6dg38qb5914j1rq";
+       libraryHaskellDepends = [ base resource-pool unliftio-core ];
        description = "Data.Pool generalized to MonadUnliftIO.";
        license = lib.licenses.bsd3;
      }) {};
@@ -313085,10 +313010,10 @@ self: {
      }:
      mkDerivation {
        pname = "unordered-containers";
-       version = "0.2.19.1";
-       sha256 = "1li8s6qw8mgv6a7011y7hg0cn2nllv2g9sr9c1xb48nmw32vw9qv";
-       revision = "3";
-       editedCabalFile = "1p9a2mvfbfz2d4cyr16b03bxvb6c4yj7k1ch601xwq1rkr1cla0w";
+       version = "0.2.20";
+       sha256 = "07gij1y9zhqg2dq8wy815j7s0zk2k65sqg4wvhwjsn80ry3v5kyr";
+       revision = "1";
+       editedCabalFile = "1zswa1qp1995mkyb25cqbw81ahwyss14xr894gji7jwk7yr34v3l";
        libraryHaskellDepends = [ base deepseq hashable template-haskell ];
        testHaskellDepends = [
          base ChasingBottoms containers hashable HUnit nothunks QuickCheck
@@ -313226,8 +313151,8 @@ self: {
      }:
      mkDerivation {
        pname = "unpacked-maybe-numeric";
-       version = "0.1.2.1";
-       sha256 = "0chb52gff3zm6f6p7dp5j6p7vpgmmirx0sfqbswx69w9jsf6p8bk";
+       version = "0.1.3.0";
+       sha256 = "04q6snimyvi2cznb8djh671y054x57gp6dvgzcsvv1y2fgqchpb7";
        libraryHaskellDepends = [ base primitive wide-word word-compat ];
        testHaskellDepends = [ base QuickCheck quickcheck-classes ];
        description = "maybes of numeric values with fewer indirections";
@@ -313240,10 +313165,8 @@ self: {
     ({ mkDerivation, base, bytestring, text-short }:
      mkDerivation {
        pname = "unpacked-maybe-text";
-       version = "0.1.0.0";
-       sha256 = "10mc9kjjqf82ddi586g5r6h065znhj9s0ih9w800yw4xl65ygayv";
-       revision = "1";
-       editedCabalFile = "0g24c223yxsvkzk0y78q9qn94xxvmw088ihwk3rrd2q3l2nax4rw";
+       version = "0.1.0.1";
+       sha256 = "0z13j90djvphvwvd31d7xf84d8fw2bagaxrd350s6xfk4945j49r";
        libraryHaskellDepends = [ base bytestring text-short ];
        description = "optional text that unpacks well";
        license = lib.licenses.bsd3;
@@ -313537,6 +313460,8 @@ self: {
        sha256 = "0l6gbfw0rmhkk2iq3wd2zzyld2nvjmbrlg7rqqv962cahs5mydns";
        libraryHaskellDepends = [ base mtl ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "update-nix-fetchgit" = callPackage
@@ -314406,6 +314331,8 @@ self: {
        testHaskellDepends = [ base hspec postgresql-simple users-test ];
        description = "A PostgreSQL backend for the users package";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "users-test" = callPackage
@@ -314670,6 +314597,8 @@ self: {
        pname = "utility-ht";
        version = "0.0.17";
        sha256 = "164sy6vdq5vspvfcj59hsmynn97x0wimw4xa5jyzkl4b0vp8lhb2";
+       revision = "1";
+       editedCabalFile = "11i3n06rg580c87br6ic3m75bd83p9incz1nmkkqrawpr7s2fk5f";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base doctest-exitcode-stdio doctest-lib QuickCheck
@@ -314679,6 +314608,24 @@ self: {
        maintainers = [ lib.maintainers.thielema ];
      }) {};
 
+  "utility-ht_0_0_17_1" = callPackage
+    ({ mkDerivation, base, doctest-exitcode-stdio, doctest-lib
+     , QuickCheck
+     }:
+     mkDerivation {
+       pname = "utility-ht";
+       version = "0.0.17.1";
+       sha256 = "02pcjyi50jrxssirc8mf2mc17jqbr2a5w2vxiisfqwpwz2h4ivvb";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base doctest-exitcode-stdio doctest-lib QuickCheck
+       ];
+       description = "Various small helper functions for Lists, Maybes, Tuples, Functions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.thielema ];
+     }) {};
+
   "uu-cco" = callPackage
     ({ mkDerivation, ansi-terminal, base }:
      mkDerivation {
@@ -314790,10 +314737,8 @@ self: {
     ({ mkDerivation, base, uu-tc-error-error }:
      mkDerivation {
        pname = "uu-tc-error";
-       version = "0.2.0.0";
-       sha256 = "045xs8jlcqnfbvlbm95a5y9iqqam9gy2nfx4q9r0jdlq9i6fv2rf";
-       revision = "1";
-       editedCabalFile = "1dpa12gzz664yji95z9zc1y7prvz67a5fdcamd2vnjj2zww4hpjq";
+       version = "0.3.0.0";
+       sha256 = "0iaqpnlxlckf40asdj8y1b3sxixlc2sf9qkrpaqmfqqjy8gghcd5";
        libraryHaskellDepends = [ base uu-tc-error-error ];
        description = "Haskell 98 parser combintors for INFOB3TC at Utrecht University";
        license = lib.licenses.bsd3;
@@ -314834,6 +314779,7 @@ self: {
        executableHaskellDepends = [ base uuagc-cabal ];
        description = "Attribute Grammar System of Universiteit Utrecht";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "uuagc";
      }) {};
 
@@ -314875,6 +314821,8 @@ self: {
        ];
        description = "Cabal plugin for UUAGC";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "uuagc-diagrams" = callPackage
@@ -315007,6 +314955,7 @@ self: {
        ];
        description = "Orphan instances for the UUID datatype";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "uuid-quasi" = callPackage
@@ -315499,6 +315448,8 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Straightforward validation monad";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "validators" = callPackage
@@ -315921,6 +315872,24 @@ self: {
        broken = true;
      }) {};
 
+  "vary" = callPackage
+    ({ mkDerivation, base, deepseq, doctest-parallel, hspec
+     , markdown-unlit, should-not-typecheck
+     }:
+     mkDerivation {
+       pname = "vary";
+       version = "0.1.0.3";
+       sha256 = "17c72sdnxwm27xqa8j5zpnyk8nl0ls6i0idmh8svr28q22xkam6m";
+       libraryHaskellDepends = [ base deepseq ];
+       testHaskellDepends = [
+         base deepseq doctest-parallel hspec markdown-unlit
+         should-not-typecheck
+       ];
+       testToolDepends = [ markdown-unlit ];
+       description = "Vary: Friendly and fast polymorphic variants (open unions/coproducts/extensible sums)";
+       license = lib.licenses.mit;
+     }) {};
+
   "varying" = callPackage
     ({ mkDerivation, base, contravariant, criterion, doctest, hspec
      , QuickCheck, time, transformers
@@ -315953,8 +315922,8 @@ self: {
        pname = "vault";
        version = "0.3.1.5";
        sha256 = "181ksk1yixjg0jiggw5jvm8am8m8c7lim4xaixf8qnaqvxm6namc";
-       revision = "5";
-       editedCabalFile = "0piivz1plbr4zvgmvw5qh08zcwpw5pda8z3pzb8nz4h39fr27zwm";
+       revision = "6";
+       editedCabalFile = "10l6j8hdfraxfnzqq0l01y546q7rqgv95bci71gfs7lm15vnw2d3";
        libraryHaskellDepends = [
          base containers hashable unordered-containers
        ];
@@ -316797,6 +316766,26 @@ self: {
        maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
+  "vector-sized_1_6_1" = callPackage
+    ({ mkDerivation, adjunctions, base, binary, comonad, deepseq
+     , distributive, finite-typelits, hashable, indexed-list-literals
+     , indexed-traversable, primitive, vector
+     }:
+     mkDerivation {
+       pname = "vector-sized";
+       version = "1.6.1";
+       sha256 = "0gj9lgfakgzx2klhmbrlsf7lplc377s1mp6grbay7vranm2fj586";
+       libraryHaskellDepends = [
+         adjunctions base binary comonad deepseq distributive
+         finite-typelits hashable indexed-list-literals indexed-traversable
+         primitive vector
+       ];
+       description = "Size tagged vectors";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.expipiplus1 ];
+     }) {};
+
   "vector-space" = callPackage
     ({ mkDerivation, base, Boolean, MemoTrie, NumInstances }:
      mkDerivation {
@@ -316900,10 +316889,8 @@ self: {
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
        pname = "vector-stream";
-       version = "0.1.0.0";
-       sha256 = "0v40vdpp35lhnnnx7q17fah0c14jrkjlnwsk0q4mbwb7ch7j3258";
-       revision = "3";
-       editedCabalFile = "1bp859ly11xqipgr29d70kl2day7raibmm79qprdjm7c9ffraxw9";
+       version = "0.1.0.1";
+       sha256 = "0z5z88flyassdpgga412qci6brr9gyljbx875wd479fy9crhgxfh";
        libraryHaskellDepends = [ base ghc-prim ];
        description = "Efficient Streams";
        license = lib.licenses.bsd3;
@@ -317286,8 +317273,8 @@ self: {
      }:
      mkDerivation {
        pname = "versions";
-       version = "6.0.3";
-       sha256 = "0k7azl5n70yhwkyij73q8iv275arsxh8jj53lwvhndp0bpwxycng";
+       version = "6.0.5";
+       sha256 = "0cigjr3jmh3gn02daxan54g57rrq8xirackcz7ri3ziv3fy4ffa1";
        libraryHaskellDepends = [
          base deepseq hashable megaparsec parser-combinators
          template-haskell text
@@ -317987,10 +317974,8 @@ self: {
      }:
      mkDerivation {
        pname = "visualize-cbn";
-       version = "0.1.0.2";
-       sha256 = "1vlidljhy0ykflgf7k8gawlqazcrkvcs7r8wbv7h9x6wfnx0w334";
-       revision = "3";
-       editedCabalFile = "0318c6m8226183wlx0hvkrzldvdfh9f358hz4xxfm28jg44i2vb2";
+       version = "0.2.1";
+       sha256 = "08gc4r4xpxigjjgs205a65hjbwip9ycciqcj0h86kw2s3bh1p3gs";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -318033,6 +318018,8 @@ self: {
        ];
        description = "Sound synthesis with SuperCollider";
        license = "GPL";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "vivid-osc" = callPackage
@@ -318428,44 +318415,37 @@ self: {
      }) {};
 
   "vty" = callPackage
-    ({ mkDerivation, ansi-terminal, base, binary, blaze-builder
-     , bytestring, containers, deepseq, directory, filepath, microlens
-     , microlens-mtl, microlens-th, mtl, parsec, stm, terminfo, text
-     , transformers, unix, utf8-string, vector
+    ({ mkDerivation, base, binary, blaze-builder, bytestring, deepseq
+     , directory, filepath, microlens, microlens-mtl, microlens-th, mtl
+     , parsec, stm, text, utf8-string, vector
      }:
      mkDerivation {
        pname = "vty";
-       version = "5.38";
-       sha256 = "18s84rrc1dhm5j8c24r8lgk8hjdrwsdjgf6hilqcdm90dx6jz0al";
-       isLibrary = true;
-       isExecutable = true;
+       version = "6.1";
+       sha256 = "1mkv9ywqgh4z94sh8dhglklnpa53mkk39qjncjfcwszi15ylpiig";
+       revision = "1";
+       editedCabalFile = "1wy4vfyr4nbb8ycfx80yrp59ggigcbfrsh5w1qk768y04d114kaj";
        libraryHaskellDepends = [
-         ansi-terminal base binary blaze-builder bytestring containers
-         deepseq directory filepath microlens microlens-mtl microlens-th mtl
-         parsec stm terminfo text transformers unix utf8-string vector
-       ];
-       executableHaskellDepends = [
-         base containers directory filepath microlens microlens-mtl mtl
+         base binary blaze-builder bytestring deepseq directory filepath
+         microlens microlens-mtl microlens-th mtl parsec stm text
+         utf8-string vector
        ];
        description = "A simple terminal UI library";
        license = lib.licenses.bsd3;
      }) {};
 
-  "vty_6_1" = callPackage
+  "vty_6_2" = callPackage
     ({ mkDerivation, base, binary, blaze-builder, bytestring, deepseq
-     , directory, filepath, microlens, microlens-mtl, microlens-th, mtl
-     , parsec, stm, text, utf8-string, vector
+     , directory, filepath, microlens, microlens-mtl, mtl, parsec, stm
+     , text, utf8-string, vector
      }:
      mkDerivation {
        pname = "vty";
-       version = "6.1";
-       sha256 = "1mkv9ywqgh4z94sh8dhglklnpa53mkk39qjncjfcwszi15ylpiig";
-       revision = "1";
-       editedCabalFile = "1wy4vfyr4nbb8ycfx80yrp59ggigcbfrsh5w1qk768y04d114kaj";
+       version = "6.2";
+       sha256 = "0ywqfdngfv5pnsk5pa99yizpbhdq856sy3z70q2hmpmlc2r4h7vg";
        libraryHaskellDepends = [
          base binary blaze-builder bytestring deepseq directory filepath
-         microlens microlens-mtl microlens-th mtl parsec stm text
-         utf8-string vector
+         microlens microlens-mtl mtl parsec stm text utf8-string vector
        ];
        description = "A simple terminal UI library";
        license = lib.licenses.bsd3;
@@ -318483,7 +318463,6 @@ self: {
        libraryHaskellDepends = [ base vty vty-unix ];
        description = "Cross-platform support for Vty";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "vty-examples" = callPackage
@@ -318580,9 +318559,7 @@ self: {
        executableHaskellDepends = [ ansi-terminal base vty ];
        description = "Unix backend for Vty";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        mainProgram = "vty-unix-build-width-table";
-       broken = true;
      }) {};
 
   "vty-windows" = callPackage
@@ -318810,30 +318787,32 @@ self: {
      }) {};
 
   "wai-app-file-cgi" = callPackage
-    ({ mkDerivation, array, attoparsec, attoparsec-conduit, base
-     , bytestring, case-insensitive, conduit, conduit-extra, containers
-     , data-default-class, directory, doctest, filepath, hspec, HTTP
-     , http-client, http-conduit, http-date, http-types, mime-types
-     , network, process, sockaddr, static-hash, text, transformers, unix
-     , wai, wai-conduit, warp, word8
+    ({ mkDerivation, array, attoparsec, base, bytestring
+     , case-insensitive, conduit, conduit-extra, containers
+     , data-default-class, directory, filepath, hspec, HTTP, http-client
+     , http-conduit, http-date, http-types, mime-types, network, process
+     , sockaddr, static-hash, text, transformers, unix, wai, wai-conduit
+     , warp, word8
      }:
      mkDerivation {
        pname = "wai-app-file-cgi";
-       version = "3.1.10";
-       sha256 = "1wspg5pjl24vvsdp2qxzx93a9ffj6pnv2kvm26ia5gh1kx570zfl";
+       version = "3.1.11";
+       sha256 = "0ba9f76pjx1yvjly2b1p29ypanrdw40kg05x1bqass3hiz3j1n4k";
        libraryHaskellDepends = [
-         array attoparsec attoparsec-conduit base bytestring
-         case-insensitive conduit conduit-extra containers
-         data-default-class directory filepath http-client http-conduit
-         http-date http-types mime-types network process sockaddr
-         static-hash text transformers unix wai wai-conduit warp word8
+         array attoparsec base bytestring case-insensitive conduit
+         conduit-extra containers data-default-class directory filepath
+         http-client http-conduit http-date http-types mime-types network
+         process sockaddr static-hash text transformers unix wai wai-conduit
+         warp word8
        ];
        testHaskellDepends = [
-         base bytestring conduit conduit-extra directory doctest filepath
-         hspec HTTP http-types unix wai warp
+         base bytestring conduit conduit-extra directory filepath hspec HTTP
+         http-types unix wai warp
        ];
        description = "File/CGI/Rev Proxy App of WAI";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "wai-app-static" = callPackage
@@ -319052,10 +319031,8 @@ self: {
      }:
      mkDerivation {
        pname = "wai-extra";
-       version = "3.1.13.0";
-       sha256 = "1h4cqd5akrq0vhv3l0fzryy7qw0c2jb58lngx7x8ij63bckjs3fz";
-       revision = "1";
-       editedCabalFile = "0dyvg2bb37im790757khncxpnf45451dd8575p736ry4g8rpqgpw";
+       version = "3.1.14";
+       sha256 = "1db4iz6ls98n2y08fcb53gip0kf2sagvk1a82xzl25nf14dza12p";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -319068,7 +319045,7 @@ self: {
        testHaskellDepends = [
          aeson base bytestring case-insensitive cookie directory fast-logger
          hspec http-types HUnit iproute resourcet temporary text time wai
-         warp zlib
+         warp word8 zlib
        ];
        testToolDepends = [ hspec-discover ];
        description = "Provides some basic WAI handlers and middleware";
@@ -319187,27 +319164,26 @@ self: {
 
   "wai-handler-hal" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring
-     , case-insensitive, hal, http-types, network, pretty-simple, tasty
-     , tasty-discover, tasty-golden, tasty-hunit, text
-     , unordered-containers, vault, wai
+     , case-insensitive, hal, http-media, http-types, network
+     , pretty-simple, tasty, tasty-discover, tasty-golden, tasty-hunit
+     , text, unordered-containers, vault, wai
      }:
      mkDerivation {
        pname = "wai-handler-hal";
-       version = "0.3.0.0";
-       sha256 = "1chpg8vlyly7fmcg862j043mgnv8g5azs89nds9h0nvxalwvgnpn";
+       version = "0.4.0.0";
+       sha256 = "1qdw8ml3b0zgb09zrv37xp83yqw9v95nm22iw4ysdlampidz8s6d";
        libraryHaskellDepends = [
-         base base64-bytestring bytestring case-insensitive hal http-types
-         network text unordered-containers vault wai
+         base base64-bytestring bytestring case-insensitive hal http-media
+         http-types network text unordered-containers vault wai
        ];
        testHaskellDepends = [
          aeson base base64-bytestring bytestring case-insensitive hal
-         http-types network pretty-simple tasty tasty-golden tasty-hunit
-         text unordered-containers vault wai
+         http-media http-types network pretty-simple tasty tasty-golden
+         tasty-hunit text unordered-containers vault wai
        ];
        testToolDepends = [ tasty-discover ];
        description = "Wrap WAI applications to run on AWS Lambda";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "wai-handler-launch" = callPackage
@@ -319798,35 +319774,6 @@ self: {
   "wai-middleware-delegate" = callPackage
     ({ mkDerivation, async, base, blaze-builder, bytestring
      , bytestring-lexing, case-insensitive, conduit, conduit-extra
-     , connection, data-default, hspec, http-client, http-client-tls
-     , http-conduit, http-types, network, random, resourcet
-     , streaming-commons, text, vault, wai, wai-conduit, warp, warp-tls
-     }:
-     mkDerivation {
-       pname = "wai-middleware-delegate";
-       version = "0.1.3.1";
-       sha256 = "05lrkcg1xkf0ci9nvzdvnrjmqnygqxs3yrvrjfwbml9p003cp33p";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         async base blaze-builder bytestring case-insensitive conduit
-         conduit-extra data-default http-client http-conduit http-types
-         streaming-commons text wai wai-conduit
-       ];
-       testHaskellDepends = [
-         async base blaze-builder bytestring bytestring-lexing
-         case-insensitive conduit conduit-extra connection data-default
-         hspec http-client http-client-tls http-conduit http-types network
-         random resourcet text vault wai wai-conduit warp warp-tls
-       ];
-       description = "WAI middleware that delegates handling of requests";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "wai-middleware-delegate_0_1_4_0" = callPackage
-    ({ mkDerivation, async, base, blaze-builder, bytestring
-     , bytestring-lexing, case-insensitive, conduit, conduit-extra
      , crypton-connection, data-default, hspec, hspec-tmp-proc
      , http-client, http-client-tls, http-types, network, random
      , resourcet, streaming-commons, text, tmp-proc, vault, wai
@@ -320210,6 +320157,7 @@ self: {
        description = "WAI Middleware to validate the request and response bodies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "wai-middleware-verbs" = callPackage
@@ -320320,6 +320268,8 @@ self: {
        pname = "wai-rate-limit-redis";
        version = "0.2.0.1";
        sha256 = "1gizywhdrpngs5l6qh5ggnnfkcgplwsigcjj3z8l7vwif74j6qsd";
+       revision = "1";
+       editedCabalFile = "17rz0q3aki4qcci4mywx5g38zs80j5hs1l8a8yspwa2vj1zjklag";
        libraryHaskellDepends = [ base bytestring hedis wai-rate-limit ];
        testHaskellDepends = [
          base bytestring hedis http-types tasty tasty-hedgehog tasty-hunit
@@ -320462,36 +320412,10 @@ self: {
      }:
      mkDerivation {
        pname = "wai-saml2";
-       version = "0.4";
-       sha256 = "0rsp4bz20a5fsl3plg6k40vqvnjp2h0hy7pkx5xf9iyfadv1a5jw";
-       libraryHaskellDepends = [
-         base base16-bytestring base64-bytestring bytestring c14n containers
-         cryptonite data-default-class http-types mtl network-uri text time
-         vault wai wai-extra x509 x509-store xml-conduit zlib
-       ];
-       testHaskellDepends = [
-         base base16-bytestring base64-bytestring bytestring c14n containers
-         cryptonite data-default-class filepath http-types mtl network-uri
-         pretty-show tasty tasty-golden text time vault wai wai-extra x509
-         x509-store xml-conduit zlib
-       ];
-       description = "SAML2 assertion validation as WAI middleware";
-       license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "wai-saml2_0_5" = callPackage
-    ({ mkDerivation, base, base16-bytestring, base64-bytestring
-     , bytestring, c14n, containers, cryptonite, data-default-class
-     , filepath, http-types, mtl, network-uri, pretty-show, tasty
-     , tasty-golden, text, time, vault, wai, wai-extra, x509, x509-store
-     , xml-conduit, zlib
-     }:
-     mkDerivation {
-       pname = "wai-saml2";
        version = "0.5";
        sha256 = "1am7b933ipwphxzsxrbprx8fi2lk2z710sgsk6d66fd2l6axayki";
+       revision = "1";
+       editedCabalFile = "0aqmz8c6hlcrcq0nc3gg37lwzi2aqw5z330khsq4zk22szgjnhpw";
        libraryHaskellDepends = [
          base base16-bytestring base64-bytestring bytestring c14n containers
          cryptonite data-default-class http-types mtl network-uri text time
@@ -321011,41 +320935,39 @@ self: {
 
   "warp" = callPackage
     ({ mkDerivation, array, auto-update, base, bsb-http-chunked
-     , bytestring, case-insensitive, containers, directory, gauge
-     , ghc-prim, hashable, hspec, hspec-discover, http-client, http-date
-     , http-types, http2, iproute, network, process, QuickCheck, recv
-     , simple-sendfile, stm, streaming-commons, text, time-manager, unix
-     , unix-compat, unliftio, vault, wai, word8, x509
+     , bytestring, case-insensitive, containers, crypton-x509, directory
+     , gauge, ghc-prim, hashable, hspec, hspec-discover, http-client
+     , http-date, http-types, http2, iproute, network, process
+     , QuickCheck, recv, simple-sendfile, stm, streaming-commons, text
+     , time-manager, unix, unliftio, vault, wai, word8
      }:
      mkDerivation {
        pname = "warp";
-       version = "3.3.25";
-       sha256 = "1wa62inv7ai32jb88gr2vjiv1mh8gb96wc521y6mv2w967q1hzga";
-       revision = "1";
-       editedCabalFile = "1qg5ca56nmgkpzxcq0140yc8d0761hj257n24gf3dfjdj6hzf0pq";
+       version = "3.3.31";
+       sha256 = "13f3gqvwx0n9p80r7zs5q2i0xdql5grncf7nbligwkx45ggwgabw";
        libraryHaskellDepends = [
          array auto-update base bsb-http-chunked bytestring case-insensitive
-         containers ghc-prim hashable http-date http-types http2 iproute
-         network recv simple-sendfile stm streaming-commons text
-         time-manager unix unix-compat unliftio vault wai word8 x509
+         containers crypton-x509 ghc-prim hashable http-date http-types
+         http2 iproute network recv simple-sendfile stm streaming-commons
+         text time-manager unix unliftio vault wai word8
        ];
        testHaskellDepends = [
          array auto-update base bsb-http-chunked bytestring case-insensitive
-         containers directory ghc-prim hashable hspec http-client http-date
-         http-types http2 iproute network process QuickCheck recv
-         simple-sendfile stm streaming-commons text time-manager unix
-         unix-compat unliftio vault wai word8 x509
+         containers crypton-x509 directory ghc-prim hashable hspec
+         http-client http-date http-types http2 iproute network process
+         QuickCheck recv simple-sendfile stm streaming-commons text
+         time-manager unix unliftio vault wai word8
        ];
        testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
-         auto-update base bytestring containers gauge hashable http-date
-         http-types network recv time-manager unix unix-compat unliftio x509
+         auto-update base bytestring containers crypton-x509 gauge hashable
+         http-date http-types network recv time-manager unix unliftio
        ];
        description = "A fast, light-weight web server for WAI applications";
        license = lib.licenses.mit;
      }) {};
 
-  "warp_3_3_31" = callPackage
+  "warp_3_4_0" = callPackage
     ({ mkDerivation, array, auto-update, base, bsb-http-chunked
      , bytestring, case-insensitive, containers, crypton-x509, directory
      , gauge, ghc-prim, hashable, hspec, hspec-discover, http-client
@@ -321055,8 +320977,8 @@ self: {
      }:
      mkDerivation {
        pname = "warp";
-       version = "3.3.31";
-       sha256 = "13f3gqvwx0n9p80r7zs5q2i0xdql5grncf7nbligwkx45ggwgabw";
+       version = "3.4.0";
+       sha256 = "0p68qzap25na55gnc521c8yvdf4zfy86l2x8cqfw9kmr28f71s75";
        libraryHaskellDepends = [
          array auto-update base bsb-http-chunked bytestring case-insensitive
          containers crypton-x509 ghc-prim hashable http-date http-types
@@ -321072,8 +320994,10 @@ self: {
        ];
        testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
-         auto-update base bytestring containers crypton-x509 gauge hashable
-         http-date http-types network recv time-manager unix unliftio
+         array auto-update base bytestring case-insensitive containers
+         crypton-x509 gauge ghc-prim hashable http-date http-types network
+         recv streaming-commons text time-manager unix unliftio vault wai
+         word8
        ];
        description = "A fast, light-weight web server for WAI applications";
        license = lib.licenses.mit;
@@ -321176,33 +321100,31 @@ self: {
      }) {};
 
   "warp-tls" = callPackage
-    ({ mkDerivation, base, bytestring, cryptonite, data-default-class
-     , network, recv, streaming-commons, tls, tls-session-manager
-     , unliftio, wai, warp
+    ({ mkDerivation, base, bytestring, data-default-class, network
+     , recv, streaming-commons, tls, tls-session-manager, unliftio, wai
+     , warp
      }:
      mkDerivation {
        pname = "warp-tls";
-       version = "3.3.6";
-       sha256 = "1davjsbfvybcd78scaqzxfwnaqmja4j7j3qbcdbb50gv1d87105f";
-       revision = "1";
-       editedCabalFile = "07wgs8q350caxl9ncbslhqlkm0zxpkx50qj6ljamwf9vd8ld0i5d";
+       version = "3.4.3";
+       sha256 = "1fldcdd7x2r1vl7qjycrlfwk10z58ap15najlbfdfa1lnvwc50jd";
        libraryHaskellDepends = [
-         base bytestring cryptonite data-default-class network recv
-         streaming-commons tls tls-session-manager unliftio wai warp
+         base bytestring data-default-class network recv streaming-commons
+         tls tls-session-manager unliftio wai warp
        ];
        description = "HTTP over TLS support for Warp via the TLS package";
        license = lib.licenses.mit;
      }) {};
 
-  "warp-tls_3_4_3" = callPackage
+  "warp-tls_3_4_4" = callPackage
     ({ mkDerivation, base, bytestring, data-default-class, network
      , recv, streaming-commons, tls, tls-session-manager, unliftio, wai
      , warp
      }:
      mkDerivation {
        pname = "warp-tls";
-       version = "3.4.3";
-       sha256 = "1fldcdd7x2r1vl7qjycrlfwk10z58ap15najlbfdfa1lnvwc50jd";
+       version = "3.4.4";
+       sha256 = "1l8lxqakz5c060sif6qz3nz019xan5zhdf5l8xmwy00aq8ccs6ba";
        libraryHaskellDepends = [
          base bytestring data-default-class network recv streaming-commons
          tls tls-session-manager unliftio wai warp
@@ -321230,6 +321152,8 @@ self: {
        ];
        description = "set group and user id before running server";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "warped" = callPackage
@@ -321339,8 +321263,8 @@ self: {
      }:
      mkDerivation {
        pname = "waterfall-cad";
-       version = "0.1.1.1";
-       sha256 = "0cv91x4z39b2rp5fwg7wqjbwkcmma66fznsqbbnr253036yy5p5b";
+       version = "0.1.2.2";
+       sha256 = "1nlzb5h9ysxzi96z0hms803lg1banir586d8xb2wsm3q3hcp6wm7";
        libraryHaskellDepends = [
          base lattices lens linear opencascade-hs resourcet
        ];
@@ -321355,8 +321279,8 @@ self: {
      }:
      mkDerivation {
        pname = "waterfall-cad-examples";
-       version = "0.1.1.1";
-       sha256 = "05jigwrcsxh6mh7b2qvb4h6nkhcb3lkhf9j7djzr1k428k290iky";
+       version = "0.1.2.2";
+       sha256 = "1c5hkvbgam64z810zks2jc5q7jh65jncyky1hdii439jml65rr4d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -321627,7 +321551,6 @@ self: {
        ];
        description = "Wrappers for web frameworks to ease usage with the FP Complete environment";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "web-inv-route" = callPackage
@@ -321648,6 +321571,8 @@ self: {
        testHaskellDepends = [ base bytestring HUnit network-uri text ];
        description = "Composable, reversible, efficient web routing using invertible invariants and bijections";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "web-mongrel2" = callPackage
@@ -321759,8 +321684,8 @@ self: {
      }:
      mkDerivation {
        pname = "web-rep";
-       version = "0.11.0.0";
-       sha256 = "10ngga8s2xpkpm7lhdpn67rdwg1q9k5fa4fx0hkwv1z8lh7gb43w";
+       version = "0.12.1.0";
+       sha256 = "0hiqmivic82plziwa2fvc3rfz1h60f8i7vcb6hw65pfrz1aswk6n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -321793,6 +321718,8 @@ self: {
        testHaskellDepends = [ base hspec HUnit QuickCheck text ];
        description = "portable, type-safe URL routing";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "web-routes-boomerang" = callPackage
@@ -321806,6 +321733,7 @@ self: {
        ];
        description = "Use boomerang for type-safe URL parsers/printers";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "web-routes-generics" = callPackage
@@ -321817,6 +321745,7 @@ self: {
        libraryHaskellDepends = [ base parsec text web-routes ];
        description = "portable, type-safe URL routing";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "web-routes-happstack" = callPackage
@@ -321832,6 +321761,7 @@ self: {
        ];
        description = "Adds support for using web-routes with Happstack";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "web-routes-hsp" = callPackage
@@ -321843,6 +321773,7 @@ self: {
        libraryHaskellDepends = [ base hsp text web-routes ];
        description = "Adds XMLGenerator instance for RouteT monad";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "web-routes-mtl" = callPackage
@@ -321854,6 +321785,7 @@ self: {
        libraryHaskellDepends = [ base web-routes ];
        description = "Extends web-routes with mtl-based MonadIO / MonadTrans RouteT instances";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "web-routes-quasi" = callPackage
@@ -321897,6 +321829,7 @@ self: {
        testHaskellDepends = [ base hspec HUnit QuickCheck web-routes ];
        description = "Support for deriving PathInfo using Template Haskell";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "web-routes-transformers" = callPackage
@@ -321925,6 +321858,7 @@ self: {
        ];
        description = "Library for maintaining correctness of URLs within an application";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "web-routing" = callPackage
@@ -322361,31 +322295,6 @@ self: {
      }) {};
 
   "webdriver" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
-     , bytestring, call-stack, data-default-class, directory
-     , directory-tree, exceptions, filepath, http-client, http-types
-     , lifted-base, monad-control, network, network-uri, scientific
-     , temporary, text, time, transformers, transformers-base
-     , unordered-containers, vector, zip-archive
-     }:
-     mkDerivation {
-       pname = "webdriver";
-       version = "0.11.0.0";
-       sha256 = "0d9j0bw6znjsgxz2rqjrpcyybrn50nyz9pj5ajmpgs0pmgx0zbc2";
-       revision = "1";
-       editedCabalFile = "076jg2n99fqnk5bs7q20w7wafqykz4zp97kc34jnwrl9rx6bv2nl";
-       libraryHaskellDepends = [
-         aeson attoparsec base base64-bytestring bytestring call-stack
-         data-default-class directory directory-tree exceptions filepath
-         http-client http-types lifted-base monad-control network
-         network-uri scientific temporary text time transformers
-         transformers-base unordered-containers vector zip-archive
-       ];
-       description = "a Haskell client for the Selenium WebDriver protocol";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "webdriver_0_12_0_0" = callPackage
     ({ mkDerivation, aeson, attoparsec, attoparsec-aeson, base
      , base64-bytestring, bytestring, call-stack, data-default-class
      , directory, directory-tree, exceptions, filepath, http-client
@@ -322406,7 +322315,6 @@ self: {
        ];
        description = "a Haskell client for the Selenium WebDriver protocol";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "webdriver-angular" = callPackage
@@ -322601,19 +322509,19 @@ self: {
      }) {};
 
   "webgear-core" = callPackage
-    ({ mkDerivation, arrows, base, bytestring, case-insensitive
-     , filepath, http-api-data, http-media, http-types, jose, mime-types
-     , network, safe-exceptions, tagged, template-haskell, text
-     , unordered-containers, wai
+    ({ mkDerivation, arrows, base, binary, bytestring, case-insensitive
+     , cookie, filepath, http-api-data, http-media, http-types, jose
+     , mime-types, network, tagged, template-haskell, text, wai
+     , wai-extra
      }:
      mkDerivation {
        pname = "webgear-core";
-       version = "1.0.5";
-       sha256 = "1l6y55vp9jq3h5d747bfcx66a9qvs2ki3kqyjxmga7rxrjyjy62c";
+       version = "1.1.1";
+       sha256 = "1fndgzkfcn55b9kwx6l3hs2489q1zj6jdk34y3j4x5y8vgf42i7f";
        libraryHaskellDepends = [
-         arrows base bytestring case-insensitive filepath http-api-data
-         http-media http-types jose mime-types network safe-exceptions
-         tagged template-haskell text unordered-containers wai
+         arrows base binary bytestring case-insensitive cookie filepath
+         http-api-data http-media http-types jose mime-types network tagged
+         template-haskell text wai wai-extra
        ];
        description = "Composable, type-safe library to build HTTP APIs";
        license = lib.licenses.mpl20;
@@ -322625,32 +322533,33 @@ self: {
      }:
      mkDerivation {
        pname = "webgear-openapi";
-       version = "1.0.5";
-       sha256 = "1cyivf42vhpmjg60iqzifqlma5g6bsv22nahjvw6ishs7ik3vpvy";
+       version = "1.1.1";
+       sha256 = "1dw4cy4r5fdg9lay7xgw8grpgxij98chi24ckjl3dszyyqk26hgr";
        libraryHaskellDepends = [
          arrows base http-media http-types insert-ordered-containers lens
          openapi3 text webgear-core
        ];
        description = "Composable, type-safe library to build HTTP API servers";
        license = lib.licenses.mpl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "webgear-server" = callPackage
-    ({ mkDerivation, aeson, arrows, base, base64-bytestring, bytestring
-     , bytestring-conversion, http-api-data, http-media, http-types
-     , jose, monad-time, mtl, QuickCheck, quickcheck-instances, tasty
-     , tasty-hunit, tasty-quickcheck, text, unordered-containers, wai
+    ({ mkDerivation, aeson, arrows, base, base64-bytestring, binary
+     , bytestring, bytestring-conversion, cookie, http-api-data
+     , http-media, http-types, jose, monad-time, mtl, QuickCheck
+     , quickcheck-instances, resourcet, tasty, tasty-hunit
+     , tasty-quickcheck, text, text-conversions, wai, wai-extra
      , webgear-core
      }:
      mkDerivation {
        pname = "webgear-server";
-       version = "1.0.5";
-       sha256 = "1lacbvrfjv7m11q1di8g2dryyr9cqmi7khbxpvf056390hz19qw1";
+       version = "1.1.1";
+       sha256 = "1j7w37ssikqb8jlsnwyg3q03c2krrlv7kj7y3zdykms4y727bw3q";
        libraryHaskellDepends = [
-         aeson arrows base base64-bytestring bytestring
-         bytestring-conversion http-api-data http-media http-types jose
-         monad-time mtl text unordered-containers wai webgear-core
+         aeson arrows base base64-bytestring binary bytestring
+         bytestring-conversion cookie http-api-data http-media http-types
+         jose monad-time mtl resourcet text text-conversions wai wai-extra
+         webgear-core
        ];
        testHaskellDepends = [
          base base64-bytestring bytestring http-types QuickCheck
@@ -322661,6 +322570,37 @@ self: {
        license = lib.licenses.mpl20;
      }) {};
 
+  "webgear-swagger" = callPackage
+    ({ mkDerivation, arrows, base, http-types
+     , insert-ordered-containers, lens, swagger2, text, webgear-core
+     }:
+     mkDerivation {
+       pname = "webgear-swagger";
+       version = "1.1.1";
+       sha256 = "0s1hdw0inwc3a9r6y3jczhwc68akwri14x9kqi3zwbmxb5z0i8aw";
+       libraryHaskellDepends = [
+         arrows base http-types insert-ordered-containers lens swagger2 text
+         webgear-core
+       ];
+       description = "Composable, type-safe library to build HTTP API servers";
+       license = lib.licenses.mpl20;
+     }) {};
+
+  "webgear-swagger-ui" = callPackage
+    ({ mkDerivation, base, bytestring, file-embed, http-types
+     , mime-types, text, webgear-core
+     }:
+     mkDerivation {
+       pname = "webgear-swagger-ui";
+       version = "1.1.1";
+       sha256 = "0x9clbhvh2ak4lb4kamww37x8pgkr0svad4272a47g1ka9jabw9c";
+       libraryHaskellDepends = [
+         base bytestring file-embed http-types mime-types text webgear-core
+       ];
+       description = "Host swagger UI based on WebGear API specifications";
+       license = lib.licenses.mpl20;
+     }) {};
+
   "webidl" = callPackage
     ({ mkDerivation, base, bytestring, HSFFIG, LEXER, parsec, pretty
      , utf8-env, utf8-string
@@ -322945,6 +322885,41 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "websockets_0_13_0_0" = callPackage
+    ({ mkDerivation, async, attoparsec, base, base64-bytestring, binary
+     , bytestring, case-insensitive, containers, criterion, entropy
+     , HUnit, network, QuickCheck, random, SHA, streaming-commons
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , text
+     }:
+     mkDerivation {
+       pname = "websockets";
+       version = "0.13.0.0";
+       sha256 = "1da95b71akggyikbxdmja3gcaqrz8sp6ri5jrsyavc2ickvi9y4s";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async attoparsec base base64-bytestring binary bytestring
+         case-insensitive containers entropy network random SHA
+         streaming-commons text
+       ];
+       testHaskellDepends = [
+         async attoparsec base base64-bytestring binary bytestring
+         case-insensitive containers entropy HUnit network QuickCheck random
+         SHA streaming-commons test-framework test-framework-hunit
+         test-framework-quickcheck2 text
+       ];
+       benchmarkHaskellDepends = [
+         async attoparsec base base64-bytestring binary bytestring
+         case-insensitive containers criterion entropy network random SHA
+         text
+       ];
+       doCheck = false;
+       description = "A sensible and clean way to write WebSocket-capable servers in Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "websockets-json" = callPackage
     ({ mkDerivation, aeson, base, bytestring, exceptions, websockets }:
      mkDerivation {
@@ -323030,8 +323005,8 @@ self: {
        pname = "websockets-snap";
        version = "0.10.3.1";
        sha256 = "1hpszqb61xhbgfvxd6g56kdfxsyi14q7xh12jbdnyycbfijb9bqk";
-       revision = "1";
-       editedCabalFile = "08rz1l4f84gcp2a2rsihk6zl3jm2x4igr13fwv2y8m5agsvd2lhy";
+       revision = "2";
+       editedCabalFile = "1gdg33lr9zz00246b3q8ydb572k65y1lllkyff2vb5g0i1bi62am";
        libraryHaskellDepends = [
          base bytestring bytestring-builder io-streams mtl snap-core
          snap-server websockets
@@ -323087,7 +323062,9 @@ self: {
        executableHaskellDepends = [ array base containers random ];
        description = "Wedged postcard generator";
        license = "unknown";
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "wedged";
+       broken = true;
      }) {};
 
   "weeder_2_2_0" = callPackage
@@ -323251,23 +323228,6 @@ self: {
      }) {};
 
   "weigh" = callPackage
-    ({ mkDerivation, base, deepseq, ghc, mtl, process, split, temporary
-     }:
-     mkDerivation {
-       pname = "weigh";
-       version = "0.0.16";
-       sha256 = "13pbjr7fzqy3s9c1nd2jhfwzbpccmpfwdn7y46z9k2bfkch1jam9";
-       revision = "1";
-       editedCabalFile = "0y71p1fg2q9ig955b21fhfaipdamdrlzfl302prqz8g0sfcxvmfg";
-       libraryHaskellDepends = [
-         base deepseq ghc mtl process split temporary
-       ];
-       testHaskellDepends = [ base deepseq ];
-       description = "Measure allocations of a Haskell functions/values";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "weigh_0_0_17" = callPackage
     ({ mkDerivation, base, criterion-measurement, deepseq, ghc, mtl
      , process, split, temporary
      }:
@@ -323281,7 +323241,6 @@ self: {
        testHaskellDepends = [ base deepseq ];
        description = "Measure allocations of a Haskell functions/values";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "weighted" = callPackage
@@ -323550,12 +323509,26 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "wherefrom-compat" = callPackage
+    ({ mkDerivation, base, tasty, tasty-hunit }:
+     mkDerivation {
+       pname = "wherefrom-compat";
+       version = "0.1.1.0";
+       sha256 = "14vzbm6skahqas3qflrw368d6llbq59fcxm31s9wj7fbmb239v3d";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base tasty tasty-hunit ];
+       description = "A compatibility layer for GHC's 'wherefrom' function";
+       license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "which" = callPackage
     ({ mkDerivation, base, shelly, template-haskell, text }:
      mkDerivation {
        pname = "which";
-       version = "0.2.0.1";
-       sha256 = "0wa11a7x003fx3fx0l7bn8f339pbz9fhv1dnr6jv7xx2066mdnya";
+       version = "0.2.0.2";
+       sha256 = "08w398rm86slizy3fqb1rfd926zycajfnzx0sa1awrnbh2kjfx6m";
        libraryHaskellDepends = [ base shelly template-haskell text ];
        description = "Determine the full path to an executable";
        license = lib.licenses.bsd3;
@@ -324133,8 +324106,8 @@ self: {
      }:
      mkDerivation {
        pname = "witch";
-       version = "1.2.0.3";
-       sha256 = "1c5kmxb9y7i1amjb0qn1w4rx7c80f52z976d7id644v9sxp00kfx";
+       version = "1.2.0.4";
+       sha256 = "0yif1i7i83y51ky7j085b1sq9cx3gjn4vdcb8zpjwrzicw9m2nvz";
        libraryHaskellDepends = [
          base bytestring containers tagged template-haskell text time
        ];
@@ -324194,6 +324167,32 @@ self: {
        mainProgram = "utf8-troubleshoot";
      }) {};
 
+  "with-utf8_1_1_0_0" = callPackage
+    ({ mkDerivation, base, deepseq, directory, filepath, hedgehog
+     , HUnit, process, safe-exceptions, tasty, tasty-discover
+     , tasty-hedgehog, tasty-hunit, temporary, text, th-env, unix
+     }:
+     mkDerivation {
+       pname = "with-utf8";
+       version = "1.1.0.0";
+       sha256 = "01p1pxshm3kjawy6sx8j1jw0sqg5dwbp2cy6wd04qmccr3vx1f54";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base safe-exceptions text ];
+       executableHaskellDepends = [
+         base directory filepath process safe-exceptions text th-env
+       ];
+       testHaskellDepends = [
+         base deepseq hedgehog HUnit safe-exceptions tasty tasty-hedgehog
+         tasty-hunit temporary text unix
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Get your IO right on the first try";
+       license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "utf8-troubleshoot";
+     }) {};
+
   "withdependencies" = callPackage
     ({ mkDerivation, base, conduit, containers, hspec, HUnit, mtl
      , profunctors
@@ -324667,6 +324666,33 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "word-note-sox" = callPackage
+    ({ mkDerivation, base, bytestring, directory, end-of-exe
+     , monoid-insertleft, typed-process
+     }:
+     mkDerivation {
+       pname = "word-note-sox";
+       version = "0.1.0.0";
+       sha256 = "0dv3479x352z1dxbqmk2kq6sw06bvzg8br1m1g1xv9hd5lgmyb3b";
+       libraryHaskellDepends = [
+         base bytestring directory end-of-exe monoid-insertleft
+         typed-process
+       ];
+       description = "SoX for algorithmic composition with groups of notes liken to words";
+       license = lib.licenses.mit;
+     }) {};
+
+  "word-notes-datatype" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "word-notes-datatype";
+       version = "0.1.0.0";
+       sha256 = "0kpw4gmy4yvpmcvz1sk0nfr21f7zvv3fnd2k59zx1amx8n4c5s7n";
+       libraryHaskellDepends = [ base ];
+       description = "General datatypes for music creation for one instrument";
+       license = lib.licenses.mit;
+     }) {};
+
   "word-trie" = callPackage
     ({ mkDerivation, base, binary, containers, hspec, QuickCheck }:
      mkDerivation {
@@ -324721,6 +324747,8 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion ];
        description = "Word16 library";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "word24" = callPackage
@@ -324976,6 +325004,8 @@ self: {
        ];
        description = "Validate Wordpress Cookies & Nonces; Build Wordpress Hashes & Salts";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "words" = callPackage
@@ -325178,6 +325208,8 @@ self: {
        ];
        description = "Open Union and Open Product Types";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "worldturtle" = callPackage
@@ -325262,6 +325294,8 @@ self: {
        libraryHaskellDepends = [ base data-default-class wrapped ];
        description = "A Generic instance of Default";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "wraxml" = callPackage
@@ -325535,6 +325569,8 @@ self: {
        ];
        description = "Buffer your writes, transparently";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "write-buffer-stm" = callPackage
@@ -325546,6 +325582,7 @@ self: {
        libraryHaskellDepends = [ base stm stm-chans write-buffer-core ];
        description = "A write buffer for STM channels and queues";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "writer-cps-exceptions" = callPackage
@@ -325561,6 +325598,8 @@ self: {
        ];
        description = "Control.Monad.Catch instances for the stricter CPS WriterT and RWST";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "writer-cps-full" = callPackage
@@ -325646,6 +325685,8 @@ self: {
        ];
        description = "MonadWriter orphan instances for writer-cps-transformers";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "writer-cps-transformers" = callPackage
@@ -325852,6 +325893,7 @@ self: {
        ];
        description = "Tunneling program over websocket protocol";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "wstunnel";
        maintainers = [ lib.maintainers.gebner ];
      }) {};
@@ -326003,34 +326045,18 @@ self: {
      }) {};
 
   "wuss" = callPackage
-    ({ mkDerivation, base, bytestring, connection, exceptions, network
-     , websockets
-     }:
-     mkDerivation {
-       pname = "wuss";
-       version = "2.0.1.3";
-       sha256 = "037dsx4mrp5mz2fif9zqlsp1n35g7v8749wmji281ing8jfiyl37";
-       libraryHaskellDepends = [
-         base bytestring connection exceptions network websockets
-       ];
-       description = "Secure WebSocket (WSS) clients";
-       license = lib.licenses.mit;
-     }) {};
-
-  "wuss_2_0_1_5" = callPackage
     ({ mkDerivation, base, bytestring, crypton-connection, exceptions
      , network, websockets
      }:
      mkDerivation {
        pname = "wuss";
-       version = "2.0.1.5";
-       sha256 = "1cxl02fmhybk4l6xxrf826nlf7pmnb1xgvd7661xnf1xwz7l23n2";
+       version = "2.0.1.7";
+       sha256 = "09ad7bxkg46kgmkf49n86wqkzpsz277kiiwhw81awgivfacqkcvy";
        libraryHaskellDepends = [
          base bytestring crypton-connection exceptions network websockets
        ];
        description = "Secure WebSocket (WSS) clients";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "wx" = callPackage
@@ -326207,6 +326233,8 @@ self: {
        ];
        description = "Console line fuzzy search";
        license = lib.licenses.bsd2;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "wyvern" = callPackage
@@ -326384,6 +326412,8 @@ self: {
        ];
        description = "Runtime code generation for x86 64 bit machine code";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "xattr" = callPackage
@@ -326428,6 +326458,8 @@ self: {
        libraryHaskellDepends = [ base containers mtl pretty xml ];
        description = "Parses XML files used by the XCB project";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "xcffib" = callPackage
@@ -326456,6 +326488,7 @@ self: {
        ];
        description = "A cffi-based python binding for X";
        license = "unknown";
+       hydraPlatforms = lib.platforms.none;
        mainProgram = "xcffibgen";
      }) {};
 
@@ -326553,6 +326586,7 @@ self: {
        ];
        description = "XDG Basedir";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "xdg-desktop-entry" = callPackage
@@ -326591,8 +326625,8 @@ self: {
      }:
      mkDerivation {
        pname = "xdot";
-       version = "0.3.0.4";
-       sha256 = "1qmg22dyx6q77cfr1l2cx8s0h19c1rc9aksc8lq4wzmm9pg1rapg";
+       version = "0.3.0.5";
+       sha256 = "0amk4cn9kxa8l4hp016lywlrr33df3gw6gbi5lydzqzdcwd6qg3d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -326994,8 +327028,8 @@ self: {
      }:
      mkDerivation {
        pname = "xlsx";
-       version = "1.1.1";
-       sha256 = "1sk2hnb71lk03q9rnldqd412j97ajji75jzx5v5hlcq4znw2cd6x";
+       version = "1.1.2.1";
+       sha256 = "12xadpj9anbkm170y54l8qc5mabwhf0i91fmckf995d8p2san8vy";
        libraryHaskellDepends = [
          attoparsec base base64-bytestring binary-search bytestring conduit
          containers data-default deepseq dlist errors exceptions extra
@@ -327232,8 +327266,8 @@ self: {
      }:
      mkDerivation {
        pname = "xml-conduit-writer";
-       version = "0.1.1.4";
-       sha256 = "1fn5g9gya9402cyabzgfjbm2dbhli86hcwwk6a2g5mm6f0sbz792";
+       version = "0.1.1.5";
+       sha256 = "1ma25a6kknrhm8n3ldj5bq203dmg52nshhmvi7zf3lz56psjf1f1";
        libraryHaskellDepends = [
          base containers data-default dlist mtl text xml-conduit xml-types
        ];
@@ -327293,6 +327327,8 @@ self: {
        libraryHaskellDepends = [ base mtl transformers xml ];
        description = "Extension to the xml package to extract data from parsed xml";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "xml-hamlet" = callPackage
@@ -327490,6 +327526,8 @@ self: {
        ];
        description = "XML parser with informative error-reporting and simple API";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "xml-picklers" = callPackage
@@ -327640,21 +327678,18 @@ self: {
      }) {};
 
   "xml-syntax" = callPackage
-    ({ mkDerivation, array-builder, array-chunks, base, bytebuild
-     , byteslice, bytesmith, bytestring, primitive, tasty, tasty-hunit
-     , text-short
+    ({ mkDerivation, array-builder, array-chunks, base, byteslice
+     , bytesmith, primitive, tasty, tasty-hunit, text-short
      }:
      mkDerivation {
        pname = "xml-syntax";
-       version = "0.1.0.0";
-       sha256 = "1dbhh4rxvh0w17f9m2sd01bv6q20mg734wb87w6iqp4pv71mzhn3";
+       version = "0.1.0.2";
+       sha256 = "1x0q55481rhj3rvlapx3dv1nc8rl0l2lyv3jmxv939xckcmk54is";
        libraryHaskellDepends = [
-         array-builder array-chunks base bytebuild byteslice bytesmith
-         bytestring primitive text-short
-       ];
-       testHaskellDepends = [
-         base byteslice bytestring primitive tasty tasty-hunit
+         array-builder array-chunks base byteslice bytesmith primitive
+         text-short
        ];
+       testHaskellDepends = [ base byteslice tasty tasty-hunit ];
        description = "Parse XML from bytes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -327999,8 +328034,8 @@ self: {
      }:
      mkDerivation {
        pname = "xmobar";
-       version = "0.47.2";
-       sha256 = "03ln2c59v4aj5936c71zbjn075sia9x5nd7cwy60n92bn3n6wkk9";
+       version = "0.47.3";
+       sha256 = "186dwm3a4fznjgh3l7hknq9rgjhci12qgwwhaqhx2kihk93c6dsp";
        configureFlags = [
          "-fwith_alsa" "-fwith_conduit" "-fwith_datezone" "-fwith_dbus"
          "-fwith_inotify" "-fwith_iwlib" "-fwith_mpd" "-fwith_mpris"
@@ -328068,6 +328103,39 @@ self: {
        ];
      }) {};
 
+  "xmonad_0_18_0" = callPackage
+    ({ mkDerivation, base, containers, data-default-class, directory
+     , filepath, mtl, process, QuickCheck, quickcheck-classes, setlocale
+     , time, transformers, unix, X11
+     }:
+     mkDerivation {
+       pname = "xmonad";
+       version = "0.18.0";
+       sha256 = "1ysxxjkkx2l160nlj1h8ysxrfhxjlmbws2nm0wyiivmjgn20xs11";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers data-default-class directory filepath mtl process
+         setlocale time transformers unix X11
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base containers QuickCheck quickcheck-classes X11
+       ];
+       postInstall = ''
+         install -D man/xmonad.1 ''${!outputDoc}/share/man/man1/xmonad.1
+         install -D man/xmonad.hs ''${!outputDoc}/share/doc/$name/sample-xmonad.hs
+       '';
+       description = "A tiling window manager";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "xmonad";
+       maintainers = [
+         lib.maintainers.dschrempf lib.maintainers.ivanbrennan
+         lib.maintainers.peti
+       ];
+     }) {};
+
   "xmonad-bluetilebranch" = callPackage
     ({ mkDerivation, base, containers, directory, extensible-exceptions
      , filepath, mtl, process, unix, X11
@@ -328097,10 +328165,8 @@ self: {
      }:
      mkDerivation {
        pname = "xmonad-contrib";
-       version = "0.17.1";
-       sha256 = "0lwj8xkyaw6h0rv3lz2jdqrwzz7yghfmnhpndygkb3wgyhvq6dxb";
-       revision = "1";
-       editedCabalFile = "0dc9nbn0kaw98rgpi1rq8np601zjhdr1y0ydg6yb82wwaqawql6z";
+       version = "0.18.0";
+       sha256 = "1ccccz7jmksm2j5maqdfq2z135ggpdh0fl92k87w05663hxq1cb4";
        libraryHaskellDepends = [
          base bytestring containers deepseq directory filepath mtl process
          random time unix utf8-string X11 X11-xft xmonad
@@ -329227,6 +329293,8 @@ self: {
        libraryHaskellDepends = [ base containers mtl ];
        description = "Simple memoisation function";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "yaml" = callPackage
@@ -329475,8 +329543,8 @@ self: {
      }:
      mkDerivation {
        pname = "yaml-unscrambler";
-       version = "0.1.0.18";
-       sha256 = "0azmvi13znbyr3m0qzj9ijrqvl6pzkbskk9f7kr8gmhw31aid59v";
+       version = "0.1.0.19";
+       sha256 = "092778zd41i5zb5jhj2p2vfiib74zw05p6vqmlp3s2ziawj9s79g";
        libraryHaskellDepends = [
          acc attoparsec attoparsec-data attoparsec-time base
          base64-bytestring bytestring conduit containers foldl hashable
@@ -329547,6 +329615,8 @@ self: {
        ];
        description = "Declaritive configuration parsing with free docs";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "yampa-canvas" = callPackage
@@ -329642,8 +329712,8 @@ self: {
      }:
      mkDerivation {
        pname = "yampa-test";
-       version = "0.14.6";
-       sha256 = "0gcb5wrgsi025dnmjaqzmg589nghfb6fwlp2yq71g9c2csbl1fai";
+       version = "0.14.7";
+       sha256 = "0h9f6ps4jnq88dadhwgsifw1r1jhqsw5cc1shplbwr0pva00s91x";
        libraryHaskellDepends = [
          base normaldistribution QuickCheck Yampa
        ];
@@ -329652,6 +329722,8 @@ self: {
        ];
        description = "Testing library for Yampa";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "yampa2048" = callPackage
@@ -330609,6 +330681,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A yesod-auth plugin for LTI 1.3";
        license = lib.licenses.lgpl3Only;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "yesod-auth-nopassword" = callPackage
@@ -330684,6 +330757,8 @@ self: {
        ];
        description = "A yesod-auth plugin for multi-tenant SSO via OpenID Connect";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "yesod-auth-pam" = callPackage
@@ -330814,10 +330889,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-bin";
-       version = "1.6.2.2";
-       sha256 = "18bnr7wjcb5w8v62gfkrx7ky35agbkwl8f8vn2cdbjksa6wsllvr";
-       revision = "1";
-       editedCabalFile = "07zc0jf8gpv1zhyglgq2xj89jl6rc22mjv2v2k8lywlm8i5vjvdm";
+       version = "1.6.2.3";
+       sha256 = "15lsiw4g0zf1wk13fvqw4kngqhg3c2fi9jh65blhdw8kzbznf8xg";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -332010,6 +332083,7 @@ self: {
        ];
        description = "Generate Flow routes for Yesod";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "yesod-routes-typescript" = callPackage
@@ -332083,6 +332157,30 @@ self: {
        broken = true;
      }) {};
 
+  "yesod-session-persist" = callPackage
+    ({ mkDerivation, aeson, annotated-exception, base, base64
+     , bytestring, containers, cookie, crypton, exceptions, hspec
+     , http-types, mtl, persistent, QuickCheck, random, stm, text, time
+     , transformers, wai, wai-extra, yesod, yesod-core, yesod-test
+     }:
+     mkDerivation {
+       pname = "yesod-session-persist";
+       version = "0.0.0.1";
+       sha256 = "0myiglk29wv320xq2405fizpzz17ax58cszq0pv1nlmd3r163yhz";
+       libraryHaskellDepends = [
+         annotated-exception base base64 bytestring containers cookie
+         crypton exceptions http-types mtl persistent text time transformers
+         wai yesod-core
+       ];
+       testHaskellDepends = [
+         aeson base containers cookie hspec mtl QuickCheck random stm text
+         time wai wai-extra yesod yesod-core yesod-test
+       ];
+       doHaddock = false;
+       description = "SQL session backend for Yesod";
+       license = lib.licenses.mit;
+     }) {};
+
   "yesod-session-redis" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers, cookie
      , hedis, mtl, network, pool-conduit, random, text, time, wai
@@ -333109,14 +333207,17 @@ self: {
      }) {};
 
   "yoga" = callPackage
-    ({ mkDerivation, base, bindings-DSL, ieee754 }:
+    ({ mkDerivation, base, bindings-DSL, hspec, hspec-discover, ieee754
+     }:
      mkDerivation {
        pname = "yoga";
-       version = "0.0.0.5";
-       sha256 = "14az05jh60ncsyw859b9v9m7lb5xcgsv2478pa3if93vxy1h40ih";
+       version = "0.0.0.8";
+       sha256 = "00gif2ai0dkj9nqrx0da3l96qljkfklvsddlbjl1609ydnnqmiq7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bindings-DSL ieee754 ];
+       testHaskellDepends = [ base hspec hspec-discover ];
+       testToolDepends = [ hspec-discover ];
        description = "Bindings to Facebook's Yoga layout library";
        license = lib.licenses.bsd3;
      }) {};
@@ -333231,6 +333332,8 @@ self: {
        ];
        description = "mtl-style transformations for Yesod sites";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "yu-auth" = callPackage
@@ -333680,8 +333783,8 @@ self: {
      }:
      mkDerivation {
        pname = "zeolite-lang";
-       version = "0.24.0.1";
-       sha256 = "09xib3n7mmxcv0pknrp2xkbrr7lccsmbadx613mr7arcgf1n2a77";
+       version = "0.24.1.0";
+       sha256 = "0k6sxzdmgmyks9cjbymd0ngmsgk75wzsjz8r2v7hd80r7fhm9d45";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -334184,6 +334287,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "zigzag_0_1_0_0" = callPackage
+    ({ mkDerivation, base, tasty, tasty-hunit, tasty-quickcheck }:
+     mkDerivation {
+       pname = "zigzag";
+       version = "0.1.0.0";
+       sha256 = "1cxgirvzd61b3466934cwnwhfqj1kfk3yiwjy1hcg9iad7dyff7m";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base tasty tasty-hunit tasty-quickcheck ];
+       description = "Zigzag encoding of integers into unsigned integers";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "zim-parser" = callPackage
     ({ mkDerivation, array, base, base-compat, binary, binary-conduit
      , bytestring, conduit, conduit-extra, hspec, lzma
@@ -334242,6 +334358,8 @@ self: {
        ];
        description = "App-centric Monad-transformer based on Scala ZIO (UIO + ReaderT + ExceptT)";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "zip" = callPackage
@@ -334255,8 +334373,8 @@ self: {
        pname = "zip";
        version = "2.0.0";
        sha256 = "1j3gwhgcn2j2jsdg4dw7a5y1pw0n273zkfk782pvzjqmccaywbdp";
-       revision = "2";
-       editedCabalFile = "15qqk75gd3w4rypwhxlxsq9aaj8iz9wd8pds2si69jsyivn1nrrg";
+       revision = "3";
+       editedCabalFile = "1b6izcvvrhdra0jxp2s7xk9xv41iwq3yc9bpi44nmc2fj4ra4r2v";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -334425,6 +334543,7 @@ self: {
        ];
        description = "Zipper utils that weren't in Control.Comonad.Store.Zipper";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "zippers" = callPackage
@@ -334520,6 +334639,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {inherit (pkgs) zlib;};
 
+  "zlib_0_7_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, QuickCheck, tasty
+     , tasty-quickcheck, zlib
+     }:
+     mkDerivation {
+       pname = "zlib";
+       version = "0.7.0.0";
+       sha256 = "0ivszx31jw560axchxz9g646baw2rs6fr1ih0d5mmzz1w42w4hvy";
+       libraryHaskellDepends = [ base bytestring ];
+       libraryPkgconfigDepends = [ zlib ];
+       testHaskellDepends = [
+         base bytestring QuickCheck tasty tasty-quickcheck
+       ];
+       description = "Compression and decompression in the gzip and zlib formats";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) zlib;};
+
   "zlib-bindings" = callPackage
     ({ mkDerivation, base, bytestring, hspec, QuickCheck, zlib }:
      mkDerivation {
@@ -334536,13 +334673,15 @@ self: {
 
   "zlib-bytes" = callPackage
     ({ mkDerivation, base, byteslice, bytestring, mtl, primitive, tasty
-     , tasty-quickcheck
+     , tasty-quickcheck, transformers
      }:
      mkDerivation {
        pname = "zlib-bytes";
-       version = "0.1.0.0";
-       sha256 = "0a8hqk5vw49fiwvdgf5glg2s49zkjgydy6bfasas2zl3ibvcy7xw";
-       libraryHaskellDepends = [ base byteslice mtl primitive ];
+       version = "0.1.0.2";
+       sha256 = "0pv4qw9682xqymhjvil2mwib3cps9593gflc8fb3cq9irlnj4wfx";
+       libraryHaskellDepends = [
+         base byteslice mtl primitive transformers
+       ];
        testHaskellDepends = [
          base byteslice bytestring primitive tasty tasty-quickcheck
        ];
diff --git a/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-agent.nix b/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-agent.nix
deleted file mode 100644
index 2ba1b443bb5c..000000000000
--- a/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-agent.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ mkDerivation, aeson, async, attoparsec, base, base64-bytestring
-, bifunctors, binary, binary-conduit, boost, bytestring, Cabal
-, cabal-pkg-config-version-hook, cachix, cachix-api, conduit
-, conduit-extra, containers, directory, dlist, exceptions, filepath
-, hercules-ci-api, hercules-ci-api-agent, hercules-ci-api-core
-, hercules-ci-cnix-expr, hercules-ci-cnix-store, hostname, hspec
-, hspec-discover, http-client, http-client-tls, http-conduit, HUnit
-, inline-c, inline-c-cpp, katip, lens, lens-aeson, lib
-, lifted-async, lifted-base, monad-control, mtl, network
-, network-uri, nix, optparse-applicative, process, process-extras
-, profunctors, protolude, QuickCheck, safe-exceptions, scientific
-, servant, servant-auth-client, servant-client, servant-client-core
-, stm, tagged, temporary, text, time, tls, tomland, transformers
-, transformers-base, unbounded-delays, unix, unliftio
-, unliftio-core, unordered-containers, uuid, vector, websockets
-, wuss
-}:
-mkDerivation {
-  pname = "hercules-ci-agent";
-  version = "0.10.1";
-  sha256 = "a87e1b9ee650c493137d98370df8b3a9d842eea5b3a4c935c34275267ccf94d5";
-  isLibrary = true;
-  isExecutable = true;
-  enableSeparateDataOutput = true;
-  setupHaskellDepends = [ base Cabal cabal-pkg-config-version-hook ];
-  libraryHaskellDepends = [
-    aeson async base binary binary-conduit bytestring conduit
-    containers directory dlist exceptions filepath
-    hercules-ci-api-agent hercules-ci-api-core hercules-ci-cnix-expr
-    hercules-ci-cnix-store katip lens lens-aeson lifted-async
-    lifted-base monad-control mtl network network-uri process
-    process-extras protolude safe-exceptions stm tagged temporary text
-    time tls transformers transformers-base unbounded-delays unix
-    unliftio unliftio-core uuid vector websockets wuss
-  ];
-  executableHaskellDepends = [
-    aeson async attoparsec base base64-bytestring bifunctors binary
-    binary-conduit bytestring cachix cachix-api conduit conduit-extra
-    containers directory dlist exceptions filepath hercules-ci-api
-    hercules-ci-api-agent hercules-ci-api-core hercules-ci-cnix-expr
-    hercules-ci-cnix-store hostname http-client http-client-tls
-    http-conduit inline-c inline-c-cpp katip lens lens-aeson
-    lifted-async lifted-base monad-control mtl network network-uri
-    optparse-applicative process process-extras profunctors protolude
-    safe-exceptions scientific servant servant-auth-client
-    servant-client servant-client-core stm temporary text time tomland
-    transformers transformers-base unix unliftio unliftio-core
-    unordered-containers uuid vector websockets wuss
-  ];
-  executableSystemDepends = [ boost ];
-  executablePkgconfigDepends = [ nix ];
-  testHaskellDepends = [
-    aeson async attoparsec base bifunctors binary binary-conduit
-    bytestring conduit containers exceptions filepath
-    hercules-ci-api-agent hercules-ci-api-core hercules-ci-cnix-store
-    hspec HUnit katip lens lens-aeson lifted-async lifted-base
-    monad-control mtl process profunctors protolude QuickCheck
-    safe-exceptions scientific stm tagged temporary text tomland
-    transformers transformers-base unliftio-core unordered-containers
-    uuid vector
-  ];
-  testToolDepends = [ hspec-discover ];
-  homepage = "https://docs.hercules-ci.com";
-  description = "Runs Continuous Integration tasks on your machines";
-  license = lib.licenses.asl20;
-}
diff --git a/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-api-agent.nix b/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-api-agent.nix
deleted file mode 100644
index 8a06331f9772..000000000000
--- a/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-api-agent.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ mkDerivation, aeson, base, base64-bytestring-type, bytestring
-, containers, cookie, deepseq, exceptions, hashable
-, hercules-ci-api-core, hspec, http-api-data, http-media, lens
-, lens-aeson, lib, memory, network-uri, profunctors, QuickCheck
-, quickcheck-classes, servant, servant-auth, string-conv, swagger2
-, text, time, unordered-containers, uuid, vector
-}:
-mkDerivation {
-  pname = "hercules-ci-api-agent";
-  version = "0.5.1.0";
-  sha256 = "4d98e5a3824b09e3989251787dc0e3c9724011282eec343065c70ba9f1565ee6";
-  libraryHaskellDepends = [
-    aeson base base64-bytestring-type bytestring containers cookie
-    deepseq exceptions hashable hercules-ci-api-core http-api-data
-    http-media lens lens-aeson memory servant servant-auth string-conv
-    swagger2 text time unordered-containers uuid vector
-  ];
-  testHaskellDepends = [
-    aeson base bytestring containers cookie exceptions hashable
-    hercules-ci-api-core hspec http-api-data http-media lens memory
-    network-uri profunctors QuickCheck quickcheck-classes servant
-    servant-auth string-conv swagger2 text time uuid vector
-  ];
-  homepage = "https://github.com/hercules-ci/hercules-ci-agent#readme";
-  description = "API definition for Hercules CI Agent to talk to hercules-ci.com or Hercules CI Enterprise";
-  license = lib.licenses.asl20;
-}
diff --git a/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-api-core.nix b/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-api-core.nix
deleted file mode 100644
index af8c476a8997..000000000000
--- a/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-api-core.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ mkDerivation, aeson, base, bytestring, containers, cookie
-, deepseq, exceptions, hashable, http-api-data, http-media, katip
-, lens, lib, lifted-base, memory, monad-control, openapi3
-, safe-exceptions, servant, servant-auth, servant-auth-swagger
-, servant-openapi3, servant-swagger, servant-swagger-ui-core
-, string-conv, swagger2, text, time, uuid
-}:
-mkDerivation {
-  pname = "hercules-ci-api-core";
-  version = "0.1.6.0";
-  sha256 = "0707c0792223993de583d42144a9e55fb510e6436a67d130d800df23457a1d93";
-  libraryHaskellDepends = [
-    aeson base bytestring containers cookie deepseq exceptions hashable
-    http-api-data http-media katip lens lifted-base memory
-    monad-control openapi3 safe-exceptions servant servant-auth
-    servant-auth-swagger servant-openapi3 servant-swagger
-    servant-swagger-ui-core string-conv swagger2 text time uuid
-  ];
-  homepage = "https://github.com/hercules-ci/hercules-ci-agent#readme";
-  description = "Types and convenience modules use across Hercules CI API packages";
-  license = lib.licenses.asl20;
-}
diff --git a/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-api.nix b/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-api.nix
deleted file mode 100644
index 035a0d35ac67..000000000000
--- a/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-api.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ mkDerivation, aeson, base, bytestring, containers, cookie
-, exceptions, hashable, hercules-ci-api-core, hspec, http-api-data
-, http-media, lens, lens-aeson, lib, memory, network-uri, openapi3
-, profunctors, protolude, QuickCheck, quickcheck-classes, servant
-, servant-auth, servant-auth-swagger, servant-openapi3
-, servant-swagger, servant-swagger-ui-core, string-conv, swagger2
-, text, time, uuid, vector
-}:
-mkDerivation {
-  pname = "hercules-ci-api";
-  version = "0.8.2.0";
-  sha256 = "d7e5c0f92c614d0251e11aed56544989c612dd2311dc5b6e7b3fa727c187d256";
-  isLibrary = true;
-  isExecutable = true;
-  libraryHaskellDepends = [
-    aeson base bytestring containers cookie exceptions hashable
-    hercules-ci-api-core http-api-data http-media lens lens-aeson
-    memory network-uri openapi3 profunctors servant servant-auth
-    servant-auth-swagger servant-openapi3 servant-swagger
-    servant-swagger-ui-core string-conv swagger2 text time uuid
-  ];
-  executableHaskellDepends = [
-    aeson base bytestring containers cookie exceptions hashable
-    http-api-data http-media lens memory network-uri openapi3
-    profunctors servant servant-auth servant-auth-swagger
-    servant-openapi3 servant-swagger servant-swagger-ui-core
-    string-conv swagger2 text time uuid
-  ];
-  testHaskellDepends = [
-    aeson base bytestring containers exceptions hashable
-    hercules-ci-api-core hspec http-api-data http-media protolude
-    QuickCheck quickcheck-classes servant servant-auth string-conv text
-    time uuid vector
-  ];
-  homepage = "https://github.com/hercules-ci/hercules-ci-agent#readme";
-  description = "Hercules CI API definition with Servant";
-  license = lib.licenses.asl20;
-  mainProgram = "hercules-gen-swagger";
-}
diff --git a/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-cli.nix b/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-cli.nix
deleted file mode 100644
index a6be05edfbee..000000000000
--- a/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-cli.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ mkDerivation, aeson, aeson-pretty, async, atomic-write
-, attoparsec, base, bytestring, conduit, containers, data-has
-, directory, exceptions, filepath, hercules-ci-agent
-, hercules-ci-api, hercules-ci-api-agent, hercules-ci-api-core
-, hercules-ci-cnix-expr, hercules-ci-cnix-store
-, hercules-ci-optparse-applicative, hostname, hspec, http-client
-, http-client-tls, http-types, inline-c-cpp, katip, lens
-, lens-aeson, lib, lifted-base, monad-control, network-uri, process
-, protolude, QuickCheck, retry, rio, safe-exceptions, servant
-, servant-auth-client, servant-client, servant-client-core
-, servant-conduit, temporary, text, tls, transformers
-, transformers-base, unix, unliftio, unliftio-core
-, unordered-containers, uuid
-}:
-mkDerivation {
-  pname = "hercules-ci-cli";
-  version = "0.3.7";
-  sha256 = "bf0a7d9dc26eaff45a1b61f43bef5fb43a8d546b12083f37d450c5b8a7449ec0";
-  isLibrary = true;
-  isExecutable = true;
-  libraryHaskellDepends = [
-    aeson aeson-pretty async atomic-write attoparsec base bytestring
-    conduit containers data-has directory exceptions filepath
-    hercules-ci-agent hercules-ci-api hercules-ci-api-agent
-    hercules-ci-api-core hercules-ci-cnix-expr hercules-ci-cnix-store
-    hercules-ci-optparse-applicative hostname http-client
-    http-client-tls http-types inline-c-cpp katip lens lens-aeson
-    lifted-base monad-control network-uri process protolude retry rio
-    safe-exceptions servant servant-auth-client servant-client
-    servant-client-core servant-conduit temporary text tls transformers
-    transformers-base unix unliftio unliftio-core unordered-containers
-    uuid
-  ];
-  executableHaskellDepends = [ base ];
-  testHaskellDepends = [
-    aeson base bytestring containers hspec protolude QuickCheck
-    unordered-containers
-  ];
-  homepage = "https://docs.hercules-ci.com";
-  description = "The hci command for working with Hercules CI";
-  license = lib.licenses.asl20;
-  mainProgram = "hci";
-}
diff --git a/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-cnix-expr.nix b/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-cnix-expr.nix
deleted file mode 100644
index c2a0c803beae..000000000000
--- a/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-cnix-expr.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ mkDerivation, aeson, base, boost, bytestring, Cabal
-, cabal-pkg-config-version-hook, conduit, containers, directory
-, exceptions, filepath, hercules-ci-cnix-store, hspec
-, hspec-discover, inline-c, inline-c-cpp, lib, nix, process
-, protolude, QuickCheck, scientific, temporary, text, unliftio
-, unordered-containers, vector
-}:
-mkDerivation {
-  pname = "hercules-ci-cnix-expr";
-  version = "0.3.6.1";
-  sha256 = "f967e0da57a7aabef256d8843171df51988690036af866537e29ac6ebde76aa5";
-  enableSeparateDataOutput = true;
-  setupHaskellDepends = [ base Cabal cabal-pkg-config-version-hook ];
-  libraryHaskellDepends = [
-    aeson base bytestring conduit containers directory exceptions
-    filepath hercules-ci-cnix-store inline-c inline-c-cpp protolude
-    scientific text unliftio unordered-containers vector
-  ];
-  librarySystemDepends = [ boost ];
-  libraryPkgconfigDepends = [ nix ];
-  testHaskellDepends = [
-    aeson base bytestring containers filepath hercules-ci-cnix-store
-    hspec process protolude QuickCheck scientific temporary text
-    unordered-containers vector
-  ];
-  testToolDepends = [ hspec-discover ];
-  homepage = "https://docs.hercules-ci.com";
-  description = "Bindings for the Nix evaluator";
-  license = lib.licenses.asl20;
-}
diff --git a/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-cnix-store.nix b/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-cnix-store.nix
deleted file mode 100644
index 7c3ab9558989..000000000000
--- a/nixpkgs/pkgs/development/haskell-modules/hotfixes/hercules-ci-cnix-store.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ mkDerivation, base, boost, bytestring, Cabal
-, cabal-pkg-config-version-hook, conduit, containers, exceptions
-, hspec, hspec-discover, inline-c, inline-c-cpp, lib, nix
-, protolude, template-haskell, temporary, text, unix, unliftio-core
-, vector
-}:
-mkDerivation {
-  pname = "hercules-ci-cnix-store";
-  version = "0.3.5.0";
-  sha256 = "395a311514ab5121bf71adc0f67a53b152a091114725fb750c08767a047c7280";
-  setupHaskellDepends = [ base Cabal cabal-pkg-config-version-hook ];
-  libraryHaskellDepends = [
-    base bytestring conduit containers inline-c inline-c-cpp protolude
-    template-haskell unix unliftio-core vector
-  ];
-  librarySystemDepends = [ boost ];
-  libraryPkgconfigDepends = [ nix ];
-  testHaskellDepends = [
-    base bytestring containers exceptions hspec inline-c inline-c-cpp
-    protolude temporary text
-  ];
-  testToolDepends = [ hspec-discover ];
-  homepage = "https://docs.hercules-ci.com";
-  description = "Haskell bindings for Nix's libstore";
-  license = lib.licenses.asl20;
-}
diff --git a/nixpkgs/pkgs/development/haskell-modules/hotfixes/openapi3.nix b/nixpkgs/pkgs/development/haskell-modules/hotfixes/openapi3.nix
deleted file mode 100644
index 0f95b566d5a0..000000000000
--- a/nixpkgs/pkgs/development/haskell-modules/hotfixes/openapi3.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ mkDerivation, aeson, aeson-pretty, base, base-compat-batteries
-, bytestring, Cabal, cabal-doctest, containers, cookie, doctest
-, generics-sop, Glob, hashable, hspec, hspec-discover, http-media
-, HUnit, insert-ordered-containers, lens, lib, mtl, optics-core
-, optics-th, QuickCheck, quickcheck-instances, scientific
-, template-haskell, text, time, transformers, unordered-containers
-, utf8-string, uuid-types, vector
-}:
-mkDerivation {
-  pname = "openapi3";
-  version = "3.2.4";
-  sha256 = "dbcb90464b4712a03c37fa3fcaca3a6784ace2794d85730a8a8c5d9b3ea14ba0";
-  revision = "1";
-  editedCabalFile = "08ikd506fxz3pllg5w8lx9yn9qfqlx9il9xwzz7s17yxn5k3xmnk";
-  isLibrary = true;
-  isExecutable = true;
-  setupHaskellDepends = [ base Cabal cabal-doctest ];
-  libraryHaskellDepends = [
-    aeson aeson-pretty base base-compat-batteries bytestring containers
-    cookie generics-sop hashable http-media insert-ordered-containers
-    lens mtl optics-core optics-th QuickCheck scientific
-    template-haskell text time transformers unordered-containers
-    uuid-types vector
-  ];
-  executableHaskellDepends = [ aeson base lens text ];
-  testHaskellDepends = [
-    aeson base base-compat-batteries bytestring containers doctest Glob
-    hashable hspec HUnit insert-ordered-containers lens mtl QuickCheck
-    quickcheck-instances template-haskell text time
-    unordered-containers utf8-string vector
-  ];
-  testToolDepends = [ hspec-discover ];
-  homepage = "https://github.com/biocad/openapi3";
-  description = "OpenAPI 3.0 data model";
-  license = lib.licenses.bsd3;
-  mainProgram = "example";
-}
diff --git a/nixpkgs/pkgs/development/haskell-modules/hotfixes/update.sh b/nixpkgs/pkgs/development/haskell-modules/hotfixes/update.sh
deleted file mode 100755
index beea2a81a9cc..000000000000
--- a/nixpkgs/pkgs/development/haskell-modules/hotfixes/update.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env bash
-cd "$(dirname "${BASH_SOURCE[0]}")"
-cabal2nix cabal://hercules-ci-agent >hercules-ci-agent.nix
-cabal2nix cabal://hercules-ci-api >hercules-ci-api.nix
-cabal2nix cabal://hercules-ci-api-agent >hercules-ci-api-agent.nix
-cabal2nix cabal://hercules-ci-api-core >hercules-ci-api-core.nix
-cabal2nix cabal://hercules-ci-cli >hercules-ci-cli.nix
-cabal2nix cabal://hercules-ci-cnix-expr >hercules-ci-cnix-expr.nix
-cabal2nix cabal://hercules-ci-cnix-store >hercules-ci-cnix-store.nix
-cabal2nix cabal://openapi3 >openapi3.nix
diff --git a/nixpkgs/pkgs/development/haskell-modules/lib/compose.nix b/nixpkgs/pkgs/development/haskell-modules/lib/compose.nix
index fe1a8ef7a014..09cee08b91c1 100644
--- a/nixpkgs/pkgs/development/haskell-modules/lib/compose.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/lib/compose.nix
@@ -108,6 +108,11 @@ rec {
      of test suites listed in the package description file.
    */
   dontCheck = overrideCabal (drv: { doCheck = false; });
+  /* The dontCheckIf variant sets doCheck = false if the condition
+     applies. In any other case the previously set/default value is used.
+     This prevents accidentally re-enabling tests in a later override.
+     */
+  dontCheckIf = condition: if condition then dontCheck else lib.id;
 
   /* doBenchmark enables dependency checking and compilation
      for benchmarks listed in the package description file.
@@ -398,7 +403,7 @@ rec {
 
   # Some information about which phases should be run.
   controlPhases = ghc: let inherit (ghcInfo ghc) isCross; in
-                  { doCheck ? !isCross && (lib.versionOlder "7.4" ghc.version)
+                  { doCheck ? !isCross
                   , doBenchmark ? false
                   , ...
                   }: { inherit doCheck doBenchmark; };
diff --git a/nixpkgs/pkgs/development/haskell-modules/lib/default.nix b/nixpkgs/pkgs/development/haskell-modules/lib/default.nix
index ffd9ac057890..2bcd8f25d114 100644
--- a/nixpkgs/pkgs/development/haskell-modules/lib/default.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/lib/default.nix
@@ -105,6 +105,11 @@ rec {
      of test suites listed in the package description file.
    */
   dontCheck = compose.dontCheck;
+  /* The dontCheckIf variant sets doCheck = false if the condition
+     applies. In any other case the previously set/default value is used.
+     This prevents accidentally re-enabling tests in a later override.
+   */
+  dontCheckIf = drv: condition: compose.dontCheckIf condition drv;
 
   /* doBenchmark enables dependency checking, compilation and execution
      for benchmarks listed in the package description file.
diff --git a/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix b/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix
index 294ca295f22b..52d0af869cec 100644
--- a/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/make-package-set.nix
@@ -199,12 +199,16 @@ in package-set { inherit pkgs lib callPackage; } self // {
     # for any version that has been released on hackage as opposed to only
     # versions released before whatever version of all-cabal-hashes you happen
     # to be currently using.
-    callHackageDirect = {pkg, ver, sha256}:
+    callHackageDirect = {pkg, ver, sha256, rev ? { revision = null; sha256 = null; }}: args:
       let pkgver = "${pkg}-${ver}";
-      in self.callCabal2nix pkg (pkgs.fetchzip {
-           url = "mirror://hackage/${pkgver}/${pkgver}.tar.gz";
-           inherit sha256;
-         });
+          firstRevision = self.callCabal2nix pkg (pkgs.fetchzip {
+            url = "mirror://hackage/${pkgver}/${pkgver}.tar.gz";
+            inherit sha256;
+          }) args;
+      in overrideCabal (orig: {
+        revision = rev.revision;
+        editedCabalFile = rev.sha256;
+      }) firstRevision;
 
     # Creates a Haskell package from a source package by calling cabal2nix on the source.
     callCabal2nixWithOptions = name: src: extraCabal2nixOptions: args:
@@ -635,7 +639,7 @@ in package-set { inherit pkgs lib callPackage; } self // {
 
       Type: drv -> drv
     */
-    forceLlvmCodegenBackend = haskellLib.overrideCabal (drv: {
+    forceLlvmCodegenBackend = overrideCabal (drv: {
       configureFlags = drv.configureFlags or [ ] ++ [ "--ghc-option=-fllvm" ];
       buildTools = drv.buildTools or [ ] ++ [ self.llvmPackages.llvm ];
     });
diff --git a/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix b/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix
index 576a0761301e..bb995435fc60 100644
--- a/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix
@@ -41,13 +41,4 @@ self: super: {
   # cabal2nix --maintainer roberth https://github.com/hercules-ci/optparse-applicative.git > pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix
   hercules-ci-optparse-applicative = self.callPackage ../misc/haskell/hercules-ci-optparse-applicative.nix {};
 
-  # Hotfixes
-  hercules-ci-agent = self.callPackage ./hotfixes/hercules-ci-agent.nix {};
-  hercules-ci-api = self.callPackage ./hotfixes/hercules-ci-api.nix {};
-  hercules-ci-api-agent = self.callPackage ./hotfixes/hercules-ci-api-agent.nix {};
-  hercules-ci-api-core = self.callPackage ./hotfixes/hercules-ci-api-core.nix {};
-  hercules-ci-cli = self.callPackage ./hotfixes/hercules-ci-cli.nix {};
-  hercules-ci-cnix-expr = self.callPackage ./hotfixes/hercules-ci-cnix-expr.nix {};
-  hercules-ci-cnix-store = self.callPackage ./hotfixes/hercules-ci-cnix-store.nix {};
-  openapi3 = self.callPackage ./hotfixes/openapi3.nix {};
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix b/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix
index 03f59302a0d3..a3ca6f5b1d2f 100644
--- a/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix
@@ -47,8 +47,6 @@ let
 
   isGhcjs       = ghc.isGhcjs or false;
   isHaLVM       = ghc.isHaLVM or false;
-  ghc761OrLater = isGhcjs || isHaLVM || lib.versionOlder "7.6.1" ghc.version;
-  packageDBFlag = if ghc761OrLater then "--global-package-db" else "--global-conf";
   ghcCommand'   = if isGhcjs then "ghcjs" else "ghc";
   ghcCommand    = "${ghc.targetPrefix}${ghcCommand'}";
   ghcCommandCaps= lib.toUpper ghcCommand';
@@ -122,7 +120,7 @@ symlinkJoin {
     for prg in ${ghcCommand}-pkg ${ghcCommand}-pkg-${ghc.version}; do
       if [[ -x "${ghc}/bin/$prg" ]]; then
         rm -f $out/bin/$prg
-        makeWrapper ${ghc}/bin/$prg $out/bin/$prg --add-flags "${packageDBFlag}=${packageCfgDir}"
+        makeWrapper ${ghc}/bin/$prg $out/bin/$prg --add-flags "--global-package-db=${packageCfgDir}"
       fi
     done
 
diff --git a/nixpkgs/pkgs/development/idris-modules/cube.nix b/nixpkgs/pkgs/development/idris-modules/cube.nix
index eac71fb8797c..60757ec1319b 100644
--- a/nixpkgs/pkgs/development/idris-modules/cube.nix
+++ b/nixpkgs/pkgs/development/idris-modules/cube.nix
@@ -16,7 +16,7 @@ build-idris-package  {
   meta = {
     description = "An implementation of the Lambda Cube in Idris";
     homepage = "https://github.com/aatxe/cube.idr";
-    license = lib.licenses.agpl3;
+    license = lib.licenses.agpl3Only;
     maintainers = [ lib.maintainers.brainrape ];
   };
 }
diff --git a/nixpkgs/pkgs/development/idris-modules/mapping.nix b/nixpkgs/pkgs/development/idris-modules/mapping.nix
index fbfb34ddbf9d..63b7a01bce14 100644
--- a/nixpkgs/pkgs/development/idris-modules/mapping.nix
+++ b/nixpkgs/pkgs/development/idris-modules/mapping.nix
@@ -16,7 +16,7 @@ build-idris-package  {
   meta = {
     description = "Idris mapping library";
     homepage = "https://github.com/zaoqi/Mapping.idr";
-    license = lib.licenses.agpl3;
+    license = lib.licenses.agpl3Plus;
     maintainers = [ lib.maintainers.brainrape ];
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/acl2/default.nix b/nixpkgs/pkgs/development/interpreters/acl2/default.nix
index bf37d19cd8c4..bbb02e2fabc9 100644
--- a/nixpkgs/pkgs/development/interpreters/acl2/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/acl2/default.nix
@@ -113,6 +113,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An interpreter and a prover for a Lisp dialect";
+    mainProgram = "acl2";
     longDescription = ''
       ACL2 is a logic and programming language in which you can model computer
       systems, together with a tool to help you prove properties of those
diff --git a/nixpkgs/pkgs/development/interpreters/bats/default.nix b/nixpkgs/pkgs/development/interpreters/bats/default.nix
index afffef1d1f68..000c6045922c 100644
--- a/nixpkgs/pkgs/development/interpreters/bats/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/bats/default.nix
@@ -210,6 +210,7 @@ resholve.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/bats-core/bats-core";
     description = "Bash Automated Testing System";
+    mainProgram = "bats";
     maintainers = with maintainers; [ abathur ];
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/interpreters/bic/default.nix b/nixpkgs/pkgs/development/interpreters/bic/default.nix
index 31b539a3ff3e..52dc7ac31c53 100644
--- a/nixpkgs/pkgs/development/interpreters/bic/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/bic/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A C interpreter and API explorer";
+    mainProgram = "bic";
     longDescription = ''
       bic This a project that allows developers to explore and test C-APIs using a
       read eval print loop, also known as a REPL.
diff --git a/nixpkgs/pkgs/development/interpreters/boron/default.nix b/nixpkgs/pkgs/development/interpreters/boron/default.nix
index e40ca2b5b4dc..541c3525b660 100644
--- a/nixpkgs/pkgs/development/interpreters/boron/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/boron/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://urlan.sourceforge.net/boron/";
     description = "Scripting language and C library useful for building DSLs";
+    mainProgram = "boron";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mausch ];
diff --git a/nixpkgs/pkgs/development/interpreters/bwbasic/default.nix b/nixpkgs/pkgs/development/interpreters/bwbasic/default.nix
index 4fec1cc7b3e4..a99570888991 100644
--- a/nixpkgs/pkgs/development/interpreters/bwbasic/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/bwbasic/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Bywater BASIC Interpreter";
+    mainProgram = "bwbasic";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ irenes ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/interpreters/cel-go/default.nix b/nixpkgs/pkgs/development/interpreters/cel-go/default.nix
index 88d0b19fc0a4..ad95711e6dfa 100644
--- a/nixpkgs/pkgs/development/interpreters/cel-go/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/cel-go/default.nix
@@ -5,18 +5,18 @@
 
 buildGoModule rec {
   pname = "cel-go";
-  version = "0.20.0";
+  version = "0.20.1";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "cel-go";
     rev = "v${version}";
-    hash = "sha256-rjhTKZ2d1jDby4tacLfbKJj0Y7F/KkECWAL/WsqJ6sg=";
+    hash = "sha256-RN3Eqdf1Zon0gSsP3jGxydVEa0NL5filAei4+xPFNv8=";
   };
 
   modRoot = "repl";
 
-  vendorHash = "sha256-h+f/ILk6mDzRBW1FI1jFyWxkV3bvrJ/BMsCuuf+E+J0=";
+  vendorHash = "sha256-jNlzsx1QII9UBHQDU7nSzkNLtfbuce4O1AcPaFqtj9c=";
 
   subPackages = [
     "main"
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Fast, portable, non-Turing complete expression evaluation with gradual typing";
+    mainProgram = "cel-go";
     homepage = "https://github.com/google/cel-go";
     changelog = "https://github.com/google/cel-go/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/interpreters/ceptre/default.nix b/nixpkgs/pkgs/development/interpreters/ceptre/default.nix
index 9771a8f72d2a..28be28f68be6 100644
--- a/nixpkgs/pkgs/development/interpreters/ceptre/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/ceptre/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A linear logic programming language for modeling generative interactive systems";
+    mainProgram = "ceptre";
     homepage = "https://github.com/chrisamaphone/interactive-lp";
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/interpreters/cling/default.nix b/nixpkgs/pkgs/development/interpreters/cling/default.nix
index f59c1910a6ff..ed204c8863f6 100644
--- a/nixpkgs/pkgs/development/interpreters/cling/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/cling/default.nix
@@ -116,6 +116,7 @@ let
 
     meta = with lib; {
       description = "The Interactive C++ Interpreter";
+      mainProgram = "cling";
       homepage = "https://root.cern/cling/";
       license = with licenses; [ lgpl21 ncsa ];
       maintainers = with maintainers; [ thomasjm ];
diff --git a/nixpkgs/pkgs/development/interpreters/clips/default.nix b/nixpkgs/pkgs/development/interpreters/clips/default.nix
index 2edeaf9e4e87..e79f4a92481f 100644
--- a/nixpkgs/pkgs/development/interpreters/clips/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/clips/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Tool for Building Expert Systems";
+    mainProgram = "clips";
     homepage = "http://www.clipsrules.net/";
     longDescription = ''
       Developed at NASA's Johnson Space Center from 1985 to 1996,
diff --git a/nixpkgs/pkgs/development/interpreters/clojure/clooj.nix b/nixpkgs/pkgs/development/interpreters/clojure/clooj.nix
index 0e8391d5a686..9b93a478aa68 100644
--- a/nixpkgs/pkgs/development/interpreters/clojure/clooj.nix
+++ b/nixpkgs/pkgs/development/interpreters/clojure/clooj.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A lightweight IDE for Clojure";
+    mainProgram = "clooj";
     homepage = "https://github.com/arthuredelstein/clooj";
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license = lib.licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/interpreters/clojure/default.nix b/nixpkgs/pkgs/development/interpreters/clojure/default.nix
index c80af02c32a7..cedc8ef29232 100644
--- a/nixpkgs/pkgs/development/interpreters/clojure/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/clojure/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "clojure";
-  version = "1.11.1.1435";
+  version = "1.11.2.1446";
 
   src = fetchurl {
     # https://github.com/clojure/brew-install/releases
     url = "https://github.com/clojure/brew-install/releases/download/${finalAttrs.version}/clojure-tools-${finalAttrs.version}.tar.gz";
-    hash = "sha256-RS/FebIED8RYYXRXBKXZPRROO0HqyDo0zhb+p4Q5m8A=";
+    hash = "sha256-qn7/sPyVDfjZPLeWxlUBBljAW/d8cCw6lEm3/deS73E=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/interpreters/cyber/default.nix b/nixpkgs/pkgs/development/interpreters/cyber/default.nix
index d71ec5648100..710ec991edd0 100644
--- a/nixpkgs/pkgs/development/interpreters/cyber/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/cyber/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A fast, efficient, and concurrent scripting language";
+    mainProgram = "cyber";
     homepage = "https://github.com/fubark/cyber";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/interpreters/eff/default.nix b/nixpkgs/pkgs/development/interpreters/eff/default.nix
index a4565a1b8944..3ef2831a72e8 100644
--- a/nixpkgs/pkgs/development/interpreters/eff/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/eff/default.nix
@@ -20,6 +20,7 @@ with ocamlPackages; buildDunePackage rec {
   meta = with lib; {
     homepage = "https://www.eff-lang.org";
     description = "A functional programming language based on algebraic effects and their handlers";
+    mainProgram = "eff";
     longDescription = ''
       Eff is a functional language with handlers of not only exceptions,
       but also of other computational effects such as state or I/O. With
diff --git a/nixpkgs/pkgs/development/interpreters/elixir/1.16.nix b/nixpkgs/pkgs/development/interpreters/elixir/1.16.nix
index 2f57e371e28b..2721ddd2207b 100644
--- a/nixpkgs/pkgs/development/interpreters/elixir/1.16.nix
+++ b/nixpkgs/pkgs/development/interpreters/elixir/1.16.nix
@@ -1,7 +1,7 @@
 { mkDerivation }:
 mkDerivation {
-  version = "1.16.1";
-  sha256 = "sha256-rjUt3gCUszCbzGE7BriwH3ptrV81dqNB/d0nVOXrcGI=";
+  version = "1.16.2";
+  sha256 = "sha256-NUYYxf73Fuk3FUoVFKTo6IN9QCTvzz5wNshIf/nitJA=";
   # https://hexdocs.pm/elixir/1.16.0/compatibility-and-deprecations.html#compatibility-between-elixir-and-erlang-otp
   minimumOTPVersion = "24";
   escriptPath = "lib/elixir/scripts/generate_app.escript";
diff --git a/nixpkgs/pkgs/development/interpreters/emilua/default.nix b/nixpkgs/pkgs/development/interpreters/emilua/default.nix
index c44621d661b1..03ba8d81cfcd 100644
--- a/nixpkgs/pkgs/development/interpreters/emilua/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/emilua/default.nix
@@ -95,6 +95,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Lua execution engine";
+    mainProgram = "emilua";
     homepage = "https://emilua.org/";
     license = licenses.boost;
     maintainers = with maintainers; [ manipuladordedados ];
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/25.nix b/nixpkgs/pkgs/development/interpreters/erlang/25.nix
index 6b3c8a43f92d..5f94c27dbd4a 100644
--- a/nixpkgs/pkgs/development/interpreters/erlang/25.nix
+++ b/nixpkgs/pkgs/development/interpreters/erlang/25.nix
@@ -1,6 +1,6 @@
 { mkDerivation }:
 
 mkDerivation {
-  version = "25.3.2.9";
-  sha256 = "sha256-urj5wSNP/gOtN1O1IKesZLZg4jA640fbQBiWs/dUz8c=";
+  version = "25.3.2.10";
+  sha256 = "sha256-CibLQnzQxvFDMNiX26n0b725o8BV4FJXBXmwW1sEpkk=";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/expr/default.nix b/nixpkgs/pkgs/development/interpreters/expr/default.nix
index 3d8ba33091be..4a1dfd8d4f47 100644
--- a/nixpkgs/pkgs/development/interpreters/expr/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/expr/default.nix
@@ -5,18 +5,18 @@
 
 buildGoModule rec {
   pname = "expr";
-  version = "1.16.1";
+  version = "1.16.2";
 
   src = fetchFromGitHub {
     owner = "antonmedv";
     repo = "expr";
     rev = "v${version}";
-    hash = "sha256-OwxBzsIkKauaYTdDpgSEdVL4JhacMnIvBTgxvkAm9YA=";
+    hash = "sha256-U9DlgC3iuYry99A1O5E737680mq1TCf2M4ZYTytm56k=";
   };
 
   sourceRoot = "${src.name}/repl";
 
-  vendorHash = "sha256-RE6qQmAlWuXFIMzkop/Dk7DqATUnQpJ8Z+U8ZZeUvOA=";
+  vendorHash = "sha256-olTmfSKLbkH95ArMHJWac7aw+DNKRyw4z+oGvW9j4tw=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/nixpkgs/pkgs/development/interpreters/gauche/default.nix b/nixpkgs/pkgs/development/interpreters/gauche/default.nix
index 301cd9db7830..aa58be639b9d 100644
--- a/nixpkgs/pkgs/development/interpreters/gauche/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/gauche/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "R7RS Scheme scripting engine";
     homepage = "https://practical-scheme.net/gauche/";
+    mainProgram = "gosh";
     maintainers = with maintainers; [ mnacamura ];
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/interpreters/gnudatalanguage/default.nix b/nixpkgs/pkgs/development/interpreters/gnudatalanguage/default.nix
index f4d364fcd144..54b5c5898c87 100644
--- a/nixpkgs/pkgs/development/interpreters/gnudatalanguage/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/gnudatalanguage/default.nix
@@ -78,13 +78,15 @@ let
     if hdf5-forced != null
     then hdf5-forced
     else
-      hdf5.override {
+      hdf5.override ({
         usev110Api = useHdf5v110Api;
         mpiSupport = enableMPI;
         inherit mpi;
         szipSupport = enableSzip;
         inherit szip;
-      };
+      } // lib.optionalAttrs enableMPI {
+        cppSupport = false;
+      });
   netcdf-custom =
     if netcdf-forced != null
     then netcdf-forced
diff --git a/nixpkgs/pkgs/development/interpreters/gpython/default.nix b/nixpkgs/pkgs/development/interpreters/gpython/default.nix
index 8bb432e839ea..b0aae579bf2b 100644
--- a/nixpkgs/pkgs/development/interpreters/gpython/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/gpython/default.nix
@@ -39,6 +39,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Python interpreter written in Go";
+    mainProgram = "gpython";
     homepage = "https://github.com/go-python/gpython";
     changelog = "https://github.com/go-python/gpython/releases/tag/${src.rev}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/interpreters/hashlink/default.nix b/nixpkgs/pkgs/development/interpreters/hashlink/default.nix
index dc5f153c5ee1..880e480a1f85 100644
--- a/nixpkgs/pkgs/development/interpreters/hashlink/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/hashlink/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A virtual machine for Haxe";
+    mainProgram = "hl";
     homepage = "https://hashlink.haxe.org/";
     license = licenses.mit;
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
diff --git a/nixpkgs/pkgs/development/interpreters/ivy/default.nix b/nixpkgs/pkgs/development/interpreters/ivy/default.nix
index 171b739bddff..eed0913c36ba 100644
--- a/nixpkgs/pkgs/development/interpreters/ivy/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/ivy/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/robpike/ivy";
     description = "ivy, an APL-like calculator";
+    mainProgram = "ivy";
     license = licenses.bsd3;
     maintainers = with maintainers; [ smasher164 ];
   };
diff --git a/nixpkgs/pkgs/development/interpreters/janet/default.nix b/nixpkgs/pkgs/development/interpreters/janet/default.nix
index 8fd424ce153b..7456619a9ae8 100644
--- a/nixpkgs/pkgs/development/interpreters/janet/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/janet/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Janet programming language";
+    mainProgram = "janet";
     homepage = "https://janet-lang.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ andrewchambers peterhoeg ];
diff --git a/nixpkgs/pkgs/development/interpreters/janet/jpm.nix b/nixpkgs/pkgs/development/interpreters/janet/jpm.nix
index 050a035e0666..31ed1e2fc1ff 100644
--- a/nixpkgs/pkgs/development/interpreters/janet/jpm.nix
+++ b/nixpkgs/pkgs/development/interpreters/janet/jpm.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = janet.meta // {
     description = "Janet Project Manager for the Janet programming language";
+    mainProgram = "jpm";
     platforms = lib.attrNames platformFiles;
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/jelly/default.nix b/nixpkgs/pkgs/development/interpreters/jelly/default.nix
index 46c27e91a02a..6f97b58dc636 100644
--- a/nixpkgs/pkgs/development/interpreters/jelly/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/jelly/default.nix
@@ -20,6 +20,7 @@ python3Packages.buildPythonApplication {
 
   meta = with lib; {
     description = "A recreational programming language inspired by J";
+    mainProgram = "jelly";
     homepage    = "https://github.com/DennisMitchell/jellylanguage";
     license     = licenses.mit;
     maintainers = [ maintainers.tckmn ];
diff --git a/nixpkgs/pkgs/development/interpreters/joker/default.nix b/nixpkgs/pkgs/development/interpreters/joker/default.nix
index 50dd86f7bd86..6af8fc10160e 100644
--- a/nixpkgs/pkgs/development/interpreters/joker/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/joker/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "joker";
-  version = "1.3.4";
+  version = "1.3.5";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "candid82";
     repo = "joker";
-    sha256 = "sha256-sueFfR5KVj6HXR+5XWowL0Zjbuu7K+p/+skcTaXlOMc=";
+    sha256 = "sha256-aBZ0KlXWKAF70xFxc+WWXucLPnxyaCxu97IYkPuKcCA=";
   };
 
-  vendorHash = "sha256-rxWYNGFbFUKjy232DOhVlh341GV2VKLngJKM+DEd27o=";
+  vendorHash = "sha256-k17BthjOjZs0WB88AVVIM00HcSZl2S5u8n9eB2NFdrk=";
 
   doCheck = false;
 
@@ -24,6 +24,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/candid82/joker";
     description = "A small Clojure interpreter and linter written in Go";
+    mainProgram = "joker";
     license = licenses.epl10;
     maintainers = with maintainers; [ andrestylianos ];
   };
diff --git a/nixpkgs/pkgs/development/interpreters/jython/default.nix b/nixpkgs/pkgs/development/interpreters/jython/default.nix
index 341dccb263c2..157ad76e6f8a 100644
--- a/nixpkgs/pkgs/development/interpreters/jython/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/jython/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Python interpreter written in Java";
+    mainProgram = "jython";
     homepage = "https://jython.org/";
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license = lib.licenses.psfl;
diff --git a/nixpkgs/pkgs/development/interpreters/kamilalisp/default.nix b/nixpkgs/pkgs/development/interpreters/kamilalisp/default.nix
index e0554e10b421..7638b8f932e7 100644
--- a/nixpkgs/pkgs/development/interpreters/kamilalisp/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/kamilalisp/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://github.com/kspalaiologos/kamilalisp";
     description = "A functional, flexible, and concise Lisp";
+    mainProgram = "kamilalisp";
     license = lib.licenses.gpl3Plus;
     inherit (jre.meta) platforms;
     maintainers = with lib.maintainers; [ cafkafk ];
diff --git a/nixpkgs/pkgs/development/interpreters/kerf/default.nix b/nixpkgs/pkgs/development/interpreters/kerf/default.nix
index 99d9bb8710e4..d019743bfb4d 100644
--- a/nixpkgs/pkgs/development/interpreters/kerf/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/kerf/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Columnar tick database and time-series language";
+    mainProgram = "kerf";
     longDescription = ''
       Kerf is a columnar tick database and small programming
       language that is a superset of JSON and SQL. It can be
diff --git a/nixpkgs/pkgs/development/interpreters/love/0.10.nix b/nixpkgs/pkgs/development/interpreters/love/0.10.nix
index 53c7b5e9435e..7dc82ce3248a 100644
--- a/nixpkgs/pkgs/development/interpreters/love/0.10.nix
+++ b/nixpkgs/pkgs/development/interpreters/love/0.10.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://love2d.org";
     description = "A Lua-based 2D game engine/scripting language";
+    mainProgram = "love";
     license = lib.licenses.zlib;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.raskin ];
diff --git a/nixpkgs/pkgs/development/interpreters/love/11.nix b/nixpkgs/pkgs/development/interpreters/love/11.nix
index 177c3f46086a..93f5d5792ecc 100644
--- a/nixpkgs/pkgs/development/interpreters/love/11.nix
+++ b/nixpkgs/pkgs/development/interpreters/love/11.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://love2d.org";
     description = "A Lua-based 2D game engine/scripting language";
+    mainProgram = "love";
     license = lib.licenses.zlib;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.raskin ];
diff --git a/nixpkgs/pkgs/development/interpreters/lua-5/hooks/setup-hook.sh b/nixpkgs/pkgs/development/interpreters/lua-5/hooks/setup-hook.sh
index 1c445b82afde..7b2d2a4d83d8 100644
--- a/nixpkgs/pkgs/development/interpreters/lua-5/hooks/setup-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/lua-5/hooks/setup-hook.sh
@@ -22,6 +22,11 @@ addToLuaSearchPathWithCustomDelimiter() {
   # export only if we haven't already got this dir in the search path
   if [[ ${!varName-} == *"$absPattern"* ]]; then return; fi
 
+  # if the path variable has not yet been set, initialize it to ";;"
+  # this is a magic value that will be replaced by the default,
+  # allowing relative modules to be used even when there are system modules.
+  if [[ ! -v "${varName}" ]]; then export "${varName}=;;"; fi
+
   export "${varName}=${!varName:+${!varName};}${absPattern}"
 }
 
diff --git a/nixpkgs/pkgs/development/interpreters/luau/default.nix b/nixpkgs/pkgs/development/interpreters/luau/default.nix
index 8f1f854c5763..80a696179693 100644
--- a/nixpkgs/pkgs/development/interpreters/luau/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/luau/default.nix
@@ -1,24 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, cmake, llvmPackages, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub, cmake, llvmPackages }:
 
 stdenv.mkDerivation rec {
   pname = "luau";
-  version = "0.615";
+  version = "0.617";
 
   src = fetchFromGitHub {
     owner = "luau-lang";
     repo = "luau";
     rev = version;
-    hash = "sha256-IwiPUiw3bH+9CzIAJqLjGpIBLQ+T0xW7c4jVXoxVZPc=";
+    hash = "sha256-5lWEihumXSyBsEOOb/oIz7NTgbdcI9C58m9h/d0MPRk=";
   };
 
-  patches = [
-    # Fix linker errors. Remove with the next release.
-    (fetchpatch {
-      url = "https://github.com/luau-lang/luau/commit/9323be6110beda90ef9d9dcb43e49b9acdc224e5.patch";
-      hash = "sha256-/uWXbv3ZSpGJ4Q9MYixz50o5HIp5keSaqMSlOq0TbzE=";
-    })
-  ];
-
   nativeBuildInputs = [ cmake ];
 
   buildInputs = lib.optionals stdenv.cc.isClang [ llvmPackages.libunwind ];
diff --git a/nixpkgs/pkgs/development/interpreters/lune/default.nix b/nixpkgs/pkgs/development/interpreters/lune/default.nix
index 6622c572692a..956fe3da666c 100644
--- a/nixpkgs/pkgs/development/interpreters/lune/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/lune/default.nix
@@ -55,6 +55,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A standalone Luau script runtime";
+    mainProgram = "lune";
     homepage = "https://github.com/lune-org/lune";
     changelog = "https://github.com/lune-org/lune/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/interpreters/maude/default.nix b/nixpkgs/pkgs/development/interpreters/maude/default.nix
index 9ec93157c49a..f8d4e98c90b2 100644
--- a/nixpkgs/pkgs/development/interpreters/maude/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/maude/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "http://maude.cs.illinois.edu/";
     description = "High-level specification language";
+    mainProgram = "maude";
     license = lib.licenses.gpl2Plus;
 
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/interpreters/metamath/default.nix b/nixpkgs/pkgs/development/interpreters/metamath/default.nix
index c9a490ddc4e3..3d36b8501f10 100644
--- a/nixpkgs/pkgs/development/interpreters/metamath/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/metamath/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Interpreter for the metamath proof language";
+    mainProgram = "metamath";
     longDescription = ''
       The metamath program is an ASCII-based ANSI C program with a command-line
       interface. It was used (along with mmj2) to build and verify the proofs
diff --git a/nixpkgs/pkgs/development/interpreters/oak/default.nix b/nixpkgs/pkgs/development/interpreters/oak/default.nix
index 734576d862b0..3e5d952a1d49 100644
--- a/nixpkgs/pkgs/development/interpreters/oak/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/oak/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Expressive, simple, dynamic programming language";
+    mainProgram = "oak";
     homepage = "https://oaklang.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ tejasag ];
diff --git a/nixpkgs/pkgs/development/interpreters/perl/intepreter.nix b/nixpkgs/pkgs/development/interpreters/perl/intepreter.nix
index 8861a0ed0456..95ddc5a543cf 100644
--- a/nixpkgs/pkgs/development/interpreters/perl/intepreter.nix
+++ b/nixpkgs/pkgs/development/interpreters/perl/intepreter.nix
@@ -123,7 +123,7 @@ stdenv.mkDerivation (rec {
 
   dontAddPrefix = !crossCompiling;
 
-  enableParallelBuilding = false;
+  enableParallelBuilding = !crossCompiling;
 
   # perl includes the build date, the uname of the build system and the
   # username of the build user in some files.
diff --git a/nixpkgs/pkgs/development/interpreters/php/8.2.nix b/nixpkgs/pkgs/development/interpreters/php/8.2.nix
index d97170bae7a6..ce3dc313621f 100644
--- a/nixpkgs/pkgs/development/interpreters/php/8.2.nix
+++ b/nixpkgs/pkgs/development/interpreters/php/8.2.nix
@@ -2,8 +2,8 @@
 
 let
   base = callPackage ./generic.nix (_args // {
-    version = "8.2.16";
-    hash = "sha256-JljBuJNatrU6fyCTVGAnYasHBm5mkgvEcriBX9G0P3E=";
+    version = "8.2.17";
+    hash = "sha256-GRMWwgMmfZYWC0fSL5VdTcEXk96KXzJ+DCp2J1polOo=";
   });
 in
 base.withExtensions ({ all, ... }: with all; ([
diff --git a/nixpkgs/pkgs/development/interpreters/php/8.3.nix b/nixpkgs/pkgs/development/interpreters/php/8.3.nix
index ee2bf413a426..4af1662b3694 100644
--- a/nixpkgs/pkgs/development/interpreters/php/8.3.nix
+++ b/nixpkgs/pkgs/development/interpreters/php/8.3.nix
@@ -2,8 +2,8 @@
 
 let
   base = callPackage ./generic.nix (_args // {
-    version = "8.3.3";
-    hash = "sha256-qvthO6eVlKI/5yL46QrUczAGEL+A50uKpS2pysLcTio=";
+    version = "8.3.4";
+    hash = "sha256-PFyvGODAokOq7JE6OeywkgQxla3eTD/ELpRdpbkndpU=";
   });
 in
 base.withExtensions ({ all, ... }: with all; ([
diff --git a/nixpkgs/pkgs/development/interpreters/php/generic.nix b/nixpkgs/pkgs/development/interpreters/php/generic.nix
index 3bea507ad0a9..68ca8e4d3bba 100644
--- a/nixpkgs/pkgs/development/interpreters/php/generic.nix
+++ b/nixpkgs/pkgs/development/interpreters/php/generic.nix
@@ -272,12 +272,11 @@ let
             # Don't record the configure flags since this causes unnecessary
             # runtime dependencies
             ''
-              for i in main/build-defs.h.in scripts/php-config.in; do
-                substituteInPlace $i \
-                  --replace '@CONFIGURE_COMMAND@' '(omitted)' \
-                  --replace '@CONFIGURE_OPTIONS@' "" \
-                  --replace '@PHP_LDFLAGS@' ""
-              done
+              substituteInPlace main/build-defs.h.in \
+                --replace-fail '@CONFIGURE_COMMAND@' '(omitted)'
+              substituteInPlace scripts/php-config.in \
+                --replace-fail '@CONFIGURE_OPTIONS@' "" \
+                --replace-fail '@PHP_LDFLAGS@' ""
 
               export EXTENSION_DIR=$out/lib/php/extensions
 
@@ -287,7 +286,7 @@ let
                 ./scripts/dev/genfiles
               fi
             '' + lib.optionalString stdenv.isDarwin ''
-              substituteInPlace configure --replace "-lstdc++" "-lc++"
+              substituteInPlace configure --replace-fail "-lstdc++" "-lc++"
             '';
 
           # When compiling PHP sources from Github, this file is missing and we
diff --git a/nixpkgs/pkgs/development/interpreters/picoc/default.nix b/nixpkgs/pkgs/development/interpreters/picoc/default.nix
index e6e87f2b8a7b..51bf82aafbbe 100644
--- a/nixpkgs/pkgs/development/interpreters/picoc/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/picoc/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "Very small C interpreter for scripting";
+    mainProgram = "picoc";
     longDescription = ''
       PicoC is a very small C interpreter for scripting. It was originally
       written as a script language for a UAV's on-board flight system. It's
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/3.13/virtualenv-permissions.patch b/nixpkgs/pkgs/development/interpreters/python/cpython/3.13/virtualenv-permissions.patch
new file mode 100644
index 000000000000..8099eefc88d0
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/3.13/virtualenv-permissions.patch
@@ -0,0 +1,12 @@
+diff --git a/Lib/venv/__init__.py b/Lib/venv/__init__.py
+index 4856594755..6769ab8026 100644
+--- a/Lib/venv/__init__.py
++++ b/Lib/venv/__init__.py
+@@ -522,6 +522,7 @@ def skip_file(f):
+                     with open(dstfile, 'wb') as f:
+                         f.write(new_data)
+                     shutil.copymode(srcfile, dstfile)
++                os.chmod(dstfile, 0o644)
+ 
+     def upgrade_dependencies(self, context):
+         logger.debug(
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix b/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
index 0191517aa9ef..301af7a29c9e 100644
--- a/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
@@ -60,6 +60,7 @@
 , static ? stdenv.hostPlatform.isStatic
 , enableFramework ? false
 , noldconfigPatch ? ./. + "/${sourceVersion.major}.${sourceVersion.minor}/no-ldconfig.patch"
+, enableGIL ? true
 
 # pgo (not reproducible) + -fno-semantic-interposition
 # https://docs.python.org/3/using/configure.html#cmdoption-enable-optimizations
@@ -111,6 +112,7 @@ let
   inherit (lib)
     concatMapStringsSep
     concatStringsSep
+    enableFeature
     getDev
     getLib
     optionals
@@ -304,7 +306,10 @@ in with passthru; stdenv.mkDerivation (finalAttrs: {
     # Make sure that the virtualenv activation scripts are
     # owner-writable, so venvs can be recreated without permission
     # errors.
+  ] ++ optionals (pythonOlder "3.13") [
     ./virtualenv-permissions.patch
+  ] ++ optionals (pythonAtLeast "3.13") [
+    ./3.13/virtualenv-permissions.patch
   ] ++ optionals mimetypesSupport [
     # Make the mimetypes module refer to the right file
     ./mimetypes.patch
@@ -399,6 +404,8 @@ in with passthru; stdenv.mkDerivation (finalAttrs: {
     "--enable-shared"
   ] ++ optionals enableFramework [
     "--enable-framework=${placeholder "out"}/Library/Frameworks"
+  ] ++ optionals (pythonAtLeast "3.13") [
+    (enableFeature enableGIL "gil")
   ] ++ optionals enableOptimizations [
     "--enable-optimizations"
   ] ++ optionals (sqlite != null) [
@@ -604,6 +611,14 @@ in with passthru; stdenv.mkDerivation (finalAttrs: {
       inherit src;
       name = "python${pythonVersion}-${version}-doc";
 
+      patches = optionals (pythonAtLeast "3.9" && pythonOlder "3.10") [
+        # https://github.com/python/cpython/issues/98366
+        (fetchpatch {
+          url = "https://github.com/python/cpython/commit/5612471501b05518287ed61c1abcb9ed38c03942.patch";
+          hash = "sha256-p41hJwAiyRgyVjCVQokMSpSFg/VDDrqkCSxsodVb6vY=";
+        })
+      ];
+
       dontConfigure = true;
 
       dontBuild = true;
diff --git a/nixpkgs/pkgs/development/interpreters/python/default.nix b/nixpkgs/pkgs/development/interpreters/python/default.nix
index 12050f319fc0..5d4ae2117146 100644
--- a/nixpkgs/pkgs/development/interpreters/python/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/default.nix
@@ -93,9 +93,9 @@ in {
       major = "3";
       minor = "13";
       patch = "0";
-      suffix = "a3";
+      suffix = "a5";
     };
-    hash = "sha256-IHhMgwTrHGnID5ZuvfB3W+LjfiPfO2JGHuwSqF3Pfq0=";
+    hash = "sha256-Hom1NVGD58iYpaAbL2AXKP5J/bidnJeB8TNghHqu+mI=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
diff --git a/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix b/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix
index c64c65df350e..9b414944bba5 100644
--- a/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix
@@ -201,6 +201,7 @@ in with passthru; stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.pypy.org/";
     description = "Fast, compliant alternative implementation of the Python language (${pythonVersion})";
+    mainProgram = "pypy";
     license = licenses.mit;
     platforms = [ "aarch64-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ];
     broken = optimizationLevel == "0"; # generates invalid code
diff --git a/nixpkgs/pkgs/development/interpreters/qnial/default.nix b/nixpkgs/pkgs/development/interpreters/qnial/default.nix
index ae68c1ad6af3..e90c268719d5 100644
--- a/nixpkgs/pkgs/development/interpreters/qnial/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/qnial/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "An array language from Nial Systems";
+    mainProgram = "nial";
     homepage = "https://github.com/vrthra/qnial";
     license = lib.licenses.artistic1;
     maintainers = [ lib.maintainers.vrthra ];
diff --git a/nixpkgs/pkgs/development/interpreters/quickjs/default.nix b/nixpkgs/pkgs/development/interpreters/quickjs/default.nix
index 2f548207ea04..040516d6ba79 100644
--- a/nixpkgs/pkgs/development/interpreters/quickjs/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/quickjs/default.nix
@@ -1,25 +1,23 @@
 { lib
 , stdenv
-, fetchFromGitHub
+, fetchurl
 , texinfo
 }:
 
 stdenv.mkDerivation rec {
   pname = "quickjs";
-  version = "2021-12-09";
+  version = "2024-01-13";
 
-  src = fetchFromGitHub {
-    owner = "bellard";
-    repo = pname;
-    rev = "daa35bc1e5d43192098af9b51caeb4f18f73f9f9";
-    hash = "sha256-BhAsa8tumCQ4jK/TbRbptj2iOIUFFjU1MQYdIrDMpko=";
+  src = fetchurl {
+    url = "https://bellard.org/quickjs/quickjs-${version}.tar.xz";
+    hash = "sha256-PEv4+JW/pUvrSGyNEhgRJ3Hs/FrDvhA2hR70FWghLgM=";
   };
 
   postPatch = lib.optionalString stdenv.isDarwin ''
     substituteInPlace Makefile --replace "CONFIG_LTO=y" ""
   '';
 
-  makeFlags = [ "prefix=${placeholder "out"}" ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
   enableParallelBuilding = true;
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/interpreters/rascal/default.nix b/nixpkgs/pkgs/development/interpreters/rascal/default.nix
index 409a34d8cfe6..50bfb7e54d63 100644
--- a/nixpkgs/pkgs/development/interpreters/rascal/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/rascal/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://www.rascal-mpl.org/";
     description = "Command-line REPL for the Rascal metaprogramming language";
+    mainProgram = "rascal";
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license = lib.licenses.epl10;
     maintainers = [ lib.maintainers.eelco ];
diff --git a/nixpkgs/pkgs/development/interpreters/red/default.nix b/nixpkgs/pkgs/development/interpreters/red/default.nix
index 6689f7eb5c3c..676ecb721cc4 100644
--- a/nixpkgs/pkgs/development/interpreters/red/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/red/default.nix
@@ -84,6 +84,7 @@ stdenv.mkDerivation rec {
       programming to high-level scripting, while providing modern support for
       concurrency and multi-core CPUs
     '';
+    mainProgram = "red";
     maintainers = with maintainers; [ uralbash ];
     platforms = [ "i686-linux" "x86_64-linux" ];
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/interpreters/renpy/default.nix b/nixpkgs/pkgs/development/interpreters/renpy/default.nix
index d094018bad46..45a3630f7c57 100644
--- a/nixpkgs/pkgs/development/interpreters/renpy/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/renpy/default.nix
@@ -81,6 +81,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Visual Novel Engine";
+    mainProgram = "renpy";
     homepage = "https://renpy.org/";
     changelog = "https://renpy.org/doc/html/changelog.html";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/interpreters/risor/default.nix b/nixpkgs/pkgs/development/interpreters/risor/default.nix
index 22bbe5b9c73b..86c55107a44b 100644
--- a/nixpkgs/pkgs/development/interpreters/risor/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/risor/default.nix
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Fast and flexible scripting for Go developers and DevOps";
+    mainProgram = "risor";
     homepage = "https://github.com/risor-io/risor";
     changelog = "https://github.com/risor-io/risor/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/interpreters/rlci/default.nix b/nixpkgs/pkgs/development/interpreters/rlci/default.nix
index ce8e0a9ee8f2..6c766c9d0037 100644
--- a/nixpkgs/pkgs/development/interpreters/rlci/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/rlci/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A lambda calculus interpreter";
+    mainProgram = "rlci";
     homepage = "https://github.com/orsinium-labs/rlci";
     changelog = "https://github.com/orsinium-labs/rlci/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/interpreters/rune/default.nix b/nixpkgs/pkgs/development/interpreters/rune/default.nix
index 510ab71bdc68..c07cc5577fe6 100644
--- a/nixpkgs/pkgs/development/interpreters/rune/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/rune/default.nix
@@ -7,15 +7,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rune";
-  version = "0.13.1";
+  version = "0.13.2";
 
   src = fetchCrate {
     pname = "rune-cli";
     inherit version;
-    hash = "sha256-7GScETlQ/rl9vOB9zSfsCM1ay1F5YV6OAxKe82lMU1I=";
+    hash = "sha256-Xk4gUBxDdnW2AIEvMaEjzVsqCQFK9B/Wyg7RpJ/hbrA=";
   };
 
-  cargoHash = "sha256-T6uYe+ZgXgsGN1714Ka+fxeVDoXgjVdfrrw5Rj/95cE=";
+  cargoHash = "sha256-hpJ++mzP2QFE/iHZQvcjT03xPnyPYw7EgsL8NwxrZVQ=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreServices
diff --git a/nixpkgs/pkgs/development/interpreters/scsh/default.nix b/nixpkgs/pkgs/development/interpreters/scsh/default.nix
index 45b59124b782..7587236487c1 100644
--- a/nixpkgs/pkgs/development/interpreters/scsh/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/scsh/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, scheme48 }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, scheme48, unstableGitUpdater }:
 
 stdenv.mkDerivation {
   pname = "scsh";
-  version = "0.7pre";
+  version = "0.7-unstable-2024-03-09";
 
   src = fetchFromGitHub {
     owner = "scheme";
     repo = "scsh";
-    rev = "4acf6e4ed7b65b46186ef0c9c2a1e10bef8dc052";
-    sha256 = "sha256-92NtMK5nVd6+WtHj/Rk6iQEkGsNEZySTVZkkbqKrLYY=";
+    rev = "6770db21b08edd907d1c9bd962297ff55664e3fe";
+    hash = "sha256-U95Rc/Ks5AytB5UwbzQLI3/Sj4TYybrp8/45fu9krSU=";
     fetchSubmodules = true;
   };
 
@@ -16,11 +16,14 @@ stdenv.mkDerivation {
   buildInputs = [ scheme48 ];
   configureFlags = [ "--with-scheme48=${scheme48}" ];
 
+  passthru.updateScript = unstableGitUpdater { };
+
   meta = with lib; {
     description = "A Scheme shell";
     homepage = "http://www.scsh.net/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ joachifm ];
     platforms = with platforms; unix;
+    mainProgram = "scsh";
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/sollya/default.nix b/nixpkgs/pkgs/development/interpreters/sollya/default.nix
index 78b45daf178d..69ec182f61f3 100644
--- a/nixpkgs/pkgs/development/interpreters/sollya/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/sollya/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A tool environment for safe floating-point code development";
+    mainProgram = "sollya";
     homepage = "https://www.sollya.org/";
     license = licenses.cecill-c;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/115.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/115.nix
index 433a16f5da2e..1649bf3d9959 100644
--- a/nixpkgs/pkgs/development/interpreters/spidermonkey/115.nix
+++ b/nixpkgs/pkgs/development/interpreters/spidermonkey/115.nix
@@ -1,4 +1,4 @@
 import ./common.nix {
-  version = "115.2.0";
-  hash = "sha512-3ztO/ZYH6OtJMnF3YMhl6zGsepYkbLQ4UZDDMxbJWV4Hk6HzxF67lnSpuk/OmNg/cbBjvvCe8wfZLRzXjTDYEg==";
+  version = "115.9.1";
+  hash = "sha512-nMrt4vzaE6B/mKIRC7j5nHMkYB1mv/MR8wcKZpV2oVmP4dfeLQBdcl0fRNvjk0qcD9C3lQ9gaGBH1M6NnYEjEA==";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/wasmer/default.nix b/nixpkgs/pkgs/development/interpreters/wasmer/default.nix
index 0a5e888b06cd..a509107ec163 100644
--- a/nixpkgs/pkgs/development/interpreters/wasmer/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/wasmer/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmer";
-  version = "4.2.6";
+  version = "4.2.7";
 
   src = fetchFromGitHub {
     owner = "wasmerio";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-FSplJAVdy/b0HXvW1qny052I7Fm9EA83/XqmgEvneeg=";
+    hash = "sha256-jyA1DUouODq9giAWeGOw7VMGwA+FbyqpEU77jtCb5v4=";
   };
 
-  cargoHash = "sha256-OYHPudXGsDLVx6XKTsJTxqG5cbOAD25sd5KJDyU9lvY=";
+  cargoHash = "sha256-EpHM8YaT2Ty9IBX/gXEa9n8006A9Y5/fq/ueODxHlnc=";
 
   nativeBuildInputs = [
     rustPlatform.bindgenHook
@@ -59,6 +59,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "The Universal WebAssembly Runtime";
+    mainProgram = "wasmer";
     longDescription = ''
       Wasmer is a standalone WebAssembly runtime for running WebAssembly outside
       of the browser, supporting WASI and Emscripten. Wasmer can be used
diff --git a/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix b/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
index 72f1d6eb4a12..01e72ec2e744 100644
--- a/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmtime";
-  version = "18.0.2";
+  version = "18.0.3";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-R/emS2h9YM9LwgQARphFPaX1S62T8Rwqs0uLq1y929o=";
+    hash = "sha256-qG6WRac4n/hFa4aMSmHIMf1OXcsK9ZoNtm/dgN4NZ3M=";
     fetchSubmodules = true;
   };
 
   # Disable cargo-auditable until https://github.com/rust-secure-code/cargo-auditable/issues/124 is solved.
   auditable = false;
-  cargoHash = "sha256-r7fmKriChDvd09eynpxVOywBMkArMR4epsmtY6U6JI4=";
+  cargoHash = "sha256-cf1oUylROlbgWcKTrCR12CfVVxNuQqaoo1dr5NfiDQQ=";
   cargoBuildFlags = [ "--package" "wasmtime-cli" "--package" "wasmtime-c-api" ];
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/interpreters/wavm/default.nix b/nixpkgs/pkgs/development/interpreters/wavm/default.nix
index c4d4c4f5f2d2..feedb88acaa3 100644
--- a/nixpkgs/pkgs/development/interpreters/wavm/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/wavm/default.nix
@@ -19,6 +19,7 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "WebAssembly Virtual Machine";
+    mainProgram = "wavm";
     homepage = "https://wavm.github.io";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ereslibre ];
diff --git a/nixpkgs/pkgs/development/interpreters/wazero/default.nix b/nixpkgs/pkgs/development/interpreters/wazero/default.nix
index 3dae2234a942..c494499d61f4 100644
--- a/nixpkgs/pkgs/development/interpreters/wazero/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/wazero/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "wazero";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "tetratelabs";
     repo = "wazero";
     rev = "v${version}";
-    hash = "sha256-s01NoliiS8SqoHUjEUUsFcK82nt3xQgmAQZdrEtrOS0=";
+    hash = "sha256-TBGRO+5PHPna2dNSeNktxALEc6TvJzV+kEiynYqvhgY=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/development/interpreters/yabasic/default.nix b/nixpkgs/pkgs/development/interpreters/yabasic/default.nix
index ee4cb47b6829..4a63f152a623 100644
--- a/nixpkgs/pkgs/development/interpreters/yabasic/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/yabasic/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "http://2484.de/yabasic/";
     description = "Yet another BASIC";
+    mainProgram = "yabasic";
     longDescription = ''
       Yabasic is a traditional basic-interpreter. It comes with goto and various
       loops and allows to define subroutines and libraries. It does simple
diff --git a/nixpkgs/pkgs/development/interpreters/yaegi/default.nix b/nixpkgs/pkgs/development/interpreters/yaegi/default.nix
index dcde678338f0..b3453e564efb 100644
--- a/nixpkgs/pkgs/development/interpreters/yaegi/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/yaegi/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "yaegi";
-  version = "0.15.1";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "traefik";
     repo = "yaegi";
     rev = "v${version}";
-    hash = "sha256-ZV1HidHJvwum18QIIwQiCcRcitZdHk5+FxkPs6YgDac=";
+    hash = "sha256-AplNd9+Z+bVC4/2aFKwhabMvumF9IPcSX8X8H0z/ADA=";
   };
 
   vendorHash = null;
@@ -37,6 +37,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Go interpreter";
+    mainProgram = "yaegi";
     homepage = "https://github.com/traefik/yaegi";
     changelog = "https://github.com/traefik/yaegi/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/interpreters/zuo/default.nix b/nixpkgs/pkgs/development/interpreters/zuo/default.nix
index b4527a37686a..963abaa492e1 100644
--- a/nixpkgs/pkgs/development/interpreters/zuo/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/zuo/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Tiny Racket for Scripting";
+    mainProgram = "zuo";
     homepage = "https://github.com/racket/zuo";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/julia-modules/python/extract_artifacts.py b/nixpkgs/pkgs/development/julia-modules/python/extract_artifacts.py
index f811c6624e85..4ac450d88a10 100755
--- a/nixpkgs/pkgs/development/julia-modules/python/extract_artifacts.py
+++ b/nixpkgs/pkgs/development/julia-modules/python/extract_artifacts.py
@@ -79,6 +79,10 @@ def get_archive_derivation(uuid, artifact_name, url, sha256):
           url = "{url}";
           sha256 = "{sha256}";
         }};
+        preUnpack = ''
+          mkdir unpacked
+          cd unpacked
+        '';
         sourceRoot = ".";
         dontConfigure = true;
         dontBuild = true;
diff --git a/nixpkgs/pkgs/development/libraries/SDL/default.nix b/nixpkgs/pkgs/development/libraries/SDL/default.nix
index fa816c0add0f..a791d94a2c03 100644
--- a/nixpkgs/pkgs/development/libraries/SDL/default.nix
+++ b/nixpkgs/pkgs/development/libraries/SDL/default.nix
@@ -127,6 +127,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A cross-platform multimedia library";
+    mainProgram = "sdl-config";
     homepage    = "http://www.libsdl.org/";
     maintainers = with maintainers; [ lovek323 ];
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/SDL2/default.nix b/nixpkgs/pkgs/development/libraries/SDL2/default.nix
index 1aac55d6ef9e..838bb9ecdbe5 100644
--- a/nixpkgs/pkgs/development/libraries/SDL2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/SDL2/default.nix
@@ -58,13 +58,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "SDL2";
-  version = "2.30.0";
+  version = "2.30.1";
 
   src = fetchFromGitHub {
     owner = "libsdl-org";
     repo = "SDL";
     rev = "release-${finalAttrs.version}";
-    hash = "sha256-uKL9/T6vCEqMqmD3Q3rCMtKPRJZ4fRYVUr+4628/Ajg=";
+    hash = "sha256-nwmmyJK1/5Mu7l1YCk4PsasJIrx3jdiM5f/Cu3n0paA=";
   };
   dontDisableStatic = if withStatic then 1 else 0;
   outputs = [ "out" "dev" ];
@@ -180,6 +180,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A cross-platform multimedia library";
+    mainProgram = "sdl2-config";
     homepage = "http://www.libsdl.org/";
     changelog = "https://github.com/libsdl-org/SDL/releases/tag/release-${version}";
     license = licenses.zlib;
diff --git a/nixpkgs/pkgs/development/libraries/SDL2_mixer/default.nix b/nixpkgs/pkgs/development/libraries/SDL2_mixer/default.nix
index b412e22b8f0c..70d080e57ab8 100644
--- a/nixpkgs/pkgs/development/libraries/SDL2_mixer/default.nix
+++ b/nixpkgs/pkgs/development/libraries/SDL2_mixer/default.nix
@@ -18,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "SDL2_mixer";
-  version = "2.6.3";
+  version = "2.8.0";
 
   src = fetchurl {
     url = "https://www.libsdl.org/projects/SDL_mixer/release/${pname}-${version}.tar.gz";
-    sha256 = "sha256-emuoakeGSM5hfjpekncYG8Z/fOmHZgXupq/9Sg1u6o8=";
+    sha256 = "sha256-HPs0yHsm29vHr9aMT1RcARarX5C7/sxa6+Kpy0uzFUk=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/SDL2_sound/default.nix b/nixpkgs/pkgs/development/libraries/SDL2_sound/default.nix
index 3a2d05c31a10..056991c9aca4 100644
--- a/nixpkgs/pkgs/development/libraries/SDL2_sound/default.nix
+++ b/nixpkgs/pkgs/development/libraries/SDL2_sound/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "SDL2 sound library";
+    mainProgram = "playsound";
     platforms = platforms.unix;
     license = licenses.zlib;
     homepage = "https://www.icculus.org/SDL_sound/";
diff --git a/nixpkgs/pkgs/development/libraries/SDL2_ttf/default.nix b/nixpkgs/pkgs/development/libraries/SDL2_ttf/default.nix
index e46b9d9c537a..3407478b39b1 100644
--- a/nixpkgs/pkgs/development/libraries/SDL2_ttf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/SDL2_ttf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "SDL2_ttf";
-  version = "2.20.2";
+  version = "2.22.0";
 
   src = fetchurl {
     url = "https://www.libsdl.org/projects/SDL_ttf/release/${finalAttrs.pname}-${finalAttrs.version}.tar.gz";
-    sha256 = "sha256-ncce2TSHUhsQeixKnKa/Q/ti9r3dXCawVea5FBiiIFM=";
+    sha256 = "sha256-1Iy9HOR1ueF4IGvzty1Wtm2E1E9krAWAMyg5YjTWdyM=";
   };
 
   configureFlags = [ "--disable-harfbuzz-builtin" ]
diff --git a/nixpkgs/pkgs/development/libraries/SDL_compat/default.nix b/nixpkgs/pkgs/development/libraries/SDL_compat/default.nix
index 3f3521de60a1..f7d997cd52e5 100644
--- a/nixpkgs/pkgs/development/libraries/SDL_compat/default.nix
+++ b/nixpkgs/pkgs/development/libraries/SDL_compat/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A cross-platform multimedia library - build SDL 1.2 applications against 2.0";
+    mainProgram = "sdl-config";
     homepage = "https://www.libsdl.org/";
     license = licenses.zlib;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/development/libraries/SDL_sixel/default.nix b/nixpkgs/pkgs/development/libraries/SDL_sixel/default.nix
index 1bc4c8ba35c0..189fdee05b26 100644
--- a/nixpkgs/pkgs/development/libraries/SDL_sixel/default.nix
+++ b/nixpkgs/pkgs/development/libraries/SDL_sixel/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A cross-platform multimedia library, that supports sixel graphics on consoles";
+    mainProgram = "sdl-config";
     homepage    = "https://github.com/saitoha/SDL1.2-SIXEL";
     maintainers = with maintainers; [ vrthra ];
     platforms   = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/accounts-qt/default.nix b/nixpkgs/pkgs/development/libraries/accounts-qt/default.nix
index 7d2617a6ee60..8a11d3375491 100644
--- a/nixpkgs/pkgs/development/libraries/accounts-qt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/accounts-qt/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Qt library for accessing the online accounts database";
+    mainProgram = "accountstest";
     homepage = "https://gitlab.com/accounts-sso";
     license = licenses.lgpl21;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/ace/default.nix b/nixpkgs/pkgs/development/libraries/ace/default.nix
index bae0401a781a..01041c858623 100644
--- a/nixpkgs/pkgs/development/libraries/ace/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ace/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.dre.vanderbilt.edu/~schmidt/ACE.html";
     description = "ADAPTIVE Communication Environment";
+    mainProgram = "ace_gperf";
     license = licenses.doc;
     maintainers = with maintainers; [ nico202 ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/agda/1lab/default.nix b/nixpkgs/pkgs/development/libraries/agda/1lab/default.nix
index 89b0fb60c365..4d39fa0325f2 100644
--- a/nixpkgs/pkgs/development/libraries/agda/1lab/default.nix
+++ b/nixpkgs/pkgs/development/libraries/agda/1lab/default.nix
@@ -28,7 +28,7 @@ mkDerivation rec {
     description =
       "A formalised, cross-linked reference resource for mathematics done in Homotopy Type Theory ";
     homepage = src.meta.homepage;
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ncfavier ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/alkimia/default.nix b/nixpkgs/pkgs/development/libraries/alkimia/default.nix
index b6fb92ae62dd..d5c89209ce5d 100644
--- a/nixpkgs/pkgs/development/libraries/alkimia/default.nix
+++ b/nixpkgs/pkgs/development/libraries/alkimia/default.nix
@@ -22,6 +22,7 @@ mkDerivation rec {
 
   meta = {
     description = "Library used by KDE finance applications";
+    mainProgram = "onlinequoteseditor5";
     longDescription = ''
       Alkimia is the infrastructure for common storage and business
       logic that will be used by all financial applications in KDE.
diff --git a/nixpkgs/pkgs/development/libraries/allegro/default.nix b/nixpkgs/pkgs/development/libraries/allegro/default.nix
index d9c862443653..0318c3133d63 100644
--- a/nixpkgs/pkgs/development/libraries/allegro/default.nix
+++ b/nixpkgs/pkgs/development/libraries/allegro/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A game programming library";
     homepage = "https://liballeg.org/";
-    license = licenses.free; # giftware
+    license = licenses.giftware;
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/development/libraries/appstream/default.nix b/nixpkgs/pkgs/development/libraries/appstream/default.nix
index ff953b621635..b2b1e40576ea 100644
--- a/nixpkgs/pkgs/development/libraries/appstream/default.nix
+++ b/nixpkgs/pkgs/development/libraries/appstream/default.nix
@@ -6,6 +6,7 @@
 , mesonEmulatorHook
 , ninja
 , pkg-config
+, cmake
 , gettext
 , xmlto
 , docbook-xsl-nons
@@ -23,6 +24,10 @@
 , gperf
 , vala
 , curl
+, cairo
+, gdk-pixbuf
+, pango
+, librsvg
 , systemd
 , nixosTests
 , testers
@@ -31,7 +36,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "appstream";
-  version = "1.0.1";
+  version = "1.0.2";
 
   outputs = [ "out" "dev" "installedTests" ];
 
@@ -39,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "ximion";
     repo = "appstream";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-ULqRHepWVuAluXsXJUoqxqJfrN168MGlwdVkoLLwSN0=";
+    sha256 = "sha256-0NzZku6TQyyaTOAMWZD459RayhsH8cotlOaSKkVY/EQ=";
   };
 
   patches = [
@@ -63,6 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
     meson
     ninja
     pkg-config
+    cmake
     gettext
     libxslt
     xmlto
@@ -85,6 +91,10 @@ stdenv.mkDerivation (finalAttrs: {
     libxmlb
     libyaml
     curl
+    cairo
+    gdk-pixbuf
+    pango
+    librsvg
   ] ++ lib.optionals withSystemd [
     systemd
   ];
@@ -94,6 +104,7 @@ stdenv.mkDerivation (finalAttrs: {
     "-Ddocs=false"
     "-Dvapi=true"
     "-Dinstalled_test_prefix=${placeholder "installedTests"}"
+    "-Dcompose=true"
   ] ++ lib.optionals (!withSystemd) [
     "-Dsystemd=false"
   ];
diff --git a/nixpkgs/pkgs/development/libraries/appstream/qt.nix b/nixpkgs/pkgs/development/libraries/appstream/qt.nix
index 492037d721ed..1916774b8cfc 100644
--- a/nixpkgs/pkgs/development/libraries/appstream/qt.nix
+++ b/nixpkgs/pkgs/development/libraries/appstream/qt.nix
@@ -15,7 +15,10 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = appstream.nativeBuildInputs ++ [ qttools ];
 
-  mesonFlags = appstream.mesonFlags ++ [ "-Dqt${qtSuffix}=true" ];
+  mesonFlags = appstream.mesonFlags ++ [
+    (lib.mesonBool "qt" true)
+    (lib.mesonOption "qt-versions" (lib.versions.major qtbase.version))
+  ];
 
   patches = appstream.patches;
 
diff --git a/nixpkgs/pkgs/development/libraries/apr-util/default.nix b/nixpkgs/pkgs/development/libraries/apr-util/default.nix
index a1cbbc5e6642..bd32ad45c47b 100644
--- a/nixpkgs/pkgs/development/libraries/apr-util/default.nix
+++ b/nixpkgs/pkgs/development/libraries/apr-util/default.nix
@@ -82,6 +82,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://apr.apache.org/";
     description = "A companion library to APR, the Apache Portable Runtime";
+    mainProgram = "apu-1-config";
     maintainers = [ maintainers.eelco ];
     platforms = platforms.unix;
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/libraries/apr/default.nix b/nixpkgs/pkgs/development/libraries/apr/default.nix
index b0809829c541..6428489173da 100644
--- a/nixpkgs/pkgs/development/libraries/apr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/apr/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://apr.apache.org/";
     description = "The Apache Portable Runtime library";
+    mainProgram = "apr-1-config";
     platforms = platforms.all;
     license = licenses.asl20;
     maintainers = [ maintainers.eelco ];
diff --git a/nixpkgs/pkgs/development/libraries/aptdec/default.nix b/nixpkgs/pkgs/development/libraries/aptdec/default.nix
index f969f0d66ada..2c3c9b3bdfd7 100644
--- a/nixpkgs/pkgs/development/libraries/aptdec/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aptdec/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "NOAA APT satellite imagery decoding library";
+    mainProgram = "aptdec";
     homepage = "https://github.com/Xerbo/aptdec";
     license = licenses.gpl2;
     maintainers = with maintainers; [ alexwinter ];
diff --git a/nixpkgs/pkgs/development/libraries/aravis/default.nix b/nixpkgs/pkgs/development/libraries/aravis/default.nix
index 8baf539b26ef..ccdc06e906fe 100644
--- a/nixpkgs/pkgs/development/libraries/aravis/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aravis/default.nix
@@ -29,13 +29,13 @@ assert enableViewer -> wrapGAppsHook != null;
 
 stdenv.mkDerivation rec {
   pname = "aravis";
-  version = "0.8.30";
+  version = "0.8.31";
 
   src = fetchFromGitHub {
     owner = "AravisProject";
     repo = pname;
     rev = version;
-    sha256 = "sha256-1OxvLpzEKxIXiLJIUr+hCx+sxnH9Z5dBM5Lug1acCok=";
+    sha256 = "sha256-CsXnwrZqBCS7JVAB/7JlAAvks5HnYxgrdc4Bmg68QdE=";
   };
 
   outputs = [ "bin" "dev" "out" "lib" ];
diff --git a/nixpkgs/pkgs/development/libraries/arguments/default.nix b/nixpkgs/pkgs/development/libraries/arguments/default.nix
index bacb7662386e..524e00dc5a76 100644
--- a/nixpkgs/pkgs/development/libraries/arguments/default.nix
+++ b/nixpkgs/pkgs/development/libraries/arguments/default.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
     description = "Library for argument handling for MINC programs";
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.unix;
-    license   = licenses.free;
+    license   = licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/assimp/default.nix b/nixpkgs/pkgs/development/libraries/assimp/default.nix
index ec2d5561570e..654935391602 100644
--- a/nixpkgs/pkgs/development/libraries/assimp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/assimp/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A library to import various 3D model formats";
+    mainProgram = "assimp";
     homepage = "https://www.assimp.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ehmry ];
diff --git a/nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix b/nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix
index 271c54ea97fa..6ebab7eb4760 100644
--- a/nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix
+++ b/nixpkgs/pkgs/development/libraries/at-spi2-core/default.nix
@@ -23,14 +23,14 @@
 
 stdenv.mkDerivation rec {
   pname = "at-spi2-core";
-  version = "2.50.0";
+  version = "2.50.1";
 
   outputs = [ "out" "dev" ];
   separateDebugInfo = true;
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "6fWoyCNcndljshcd6RIDARKcZ33ekzlV4d9hi5ScStw=";
+    sha256 = "Vye1wGh6xXuoBA55vWcxtxSja4/PMhkPI2uPs2mHiec=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/audiality2/default.nix b/nixpkgs/pkgs/development/libraries/audiality2/default.nix
index 11625bc64f79..c189cd7e1ea4 100644
--- a/nixpkgs/pkgs/development/libraries/audiality2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audiality2/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A realtime scripted modular audio engine for video games and musical applications";
+    mainProgram = "a2play";
     homepage = "http://audiality.org";
     license = licenses.zlib;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/audio/cubeb/default.nix b/nixpkgs/pkgs/development/libraries/audio/cubeb/default.nix
index baad8a1efd64..dd7033b1910e 100644
--- a/nixpkgs/pkgs/development/libraries/audio/cubeb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/cubeb/default.nix
@@ -60,6 +60,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Cross platform audio library";
+    mainProgram = "cubeb-test";
     homepage = "https://github.com/mozilla/cubeb";
     license = licenses.isc;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/development/libraries/audio/libopenmpt/default.nix b/nixpkgs/pkgs/development/libraries/audio/libopenmpt/default.nix
index b8b89abc8ea7..cb515ebde884 100644
--- a/nixpkgs/pkgs/development/libraries/audio/libopenmpt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/libopenmpt/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libopenmpt";
-  version = "0.7.3";
+  version = "0.7.4";
 
   outputs = [ "out" "dev" "bin" ];
 
   src = fetchurl {
     url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
-    hash = "sha256-LPg2m3kWsJJk8/FLn7bO81pum+4DKN7E9J2YIRzP1yI=";
+    hash = "sha256-FgD5M16uOQQImmKG9SWBKWHFTONqBd/m7qpXbdkyjz8=";
   };
 
   enableParallelBuilding = true;
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Cross-platform C++ and C library to decode tracked music files into a raw PCM audio stream";
+    mainProgram = "openmpt123";
     longDescription = ''
       libopenmpt is a cross-platform C++ and C library to decode tracked music files (modules) into a raw PCM audio stream.
       openmpt123 is a cross-platform command-line or terminal based module file player.
diff --git a/nixpkgs/pkgs/development/libraries/audio/lv2/default.nix b/nixpkgs/pkgs/development/libraries/audio/lv2/default.nix
index d0f85c95a077..473b246f3f9d 100644
--- a/nixpkgs/pkgs/development/libraries/audio/lv2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/lv2/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://lv2plug.in";
     description = "A plugin standard for audio systems";
+    mainProgram = "lv2_validate";
     license = licenses.mit;
     maintainers = with maintainers; [ goibhniu ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/audio/lvtk/default.nix b/nixpkgs/pkgs/development/libraries/audio/lvtk/default.nix
index 9822640f8d67..b1a6adaaeca2 100644
--- a/nixpkgs/pkgs/development/libraries/audio/lvtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/lvtk/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A set C++ wrappers around the LV2 C API";
+    mainProgram = "ttl2c";
     homepage = "https://lvtk.org/";
     license = licenses.gpl3;
     maintainers = [ maintainers.goibhniu ];
diff --git a/nixpkgs/pkgs/development/libraries/avro-c++/default.nix b/nixpkgs/pkgs/development/libraries/avro-c++/default.nix
index 57070c8f442e..d0d899fe9935 100644
--- a/nixpkgs/pkgs/development/libraries/avro-c++/default.nix
+++ b/nixpkgs/pkgs/development/libraries/avro-c++/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A C++ library which implements parts of the Avro Specification";
+    mainProgram = "avrogencpp";
     homepage = "https://avro.apache.org/";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ rasendubi ];
diff --git a/nixpkgs/pkgs/development/libraries/aws-c-cal/aws-c-cal-musl-compat.patch b/nixpkgs/pkgs/development/libraries/aws-c-cal/aws-c-cal-musl-compat.patch
new file mode 100644
index 000000000000..2cf1d4e81e0b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/aws-c-cal/aws-c-cal-musl-compat.patch
@@ -0,0 +1,33 @@
+From: Emil Lerch <emil@lerch.org>
+Date: Wed, 28 Apr 2021 17:46:24 -0700
+Subject: [PATCH] Allow dlopen to fail on musl systems
+
+Now that references are forced when linking statically, the assertion is
+no longer necessary. See https://github.com/awslabs/aws-c-cal/pull/54
+---
+ source/unix/openssl_platform_init.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/source/unix/openssl_platform_init.c b/source/unix/openssl_platform_init.c
+index 5266ecc1..99f210bd 100644
+--- a/source/unix/openssl_platform_init.c
++++ b/source/unix/openssl_platform_init.c
+@@ -496,7 +502,6 @@ static enum aws_libcrypto_version s_resolve_libcrypto(void) {
+     /* Try to auto-resolve against what's linked in/process space */
+     FLOGF("searching process and loaded modules");
+     void *process = dlopen(NULL, RTLD_NOW);
+-    AWS_FATAL_ASSERT(process && "Unable to load symbols from process space");
+     enum aws_libcrypto_version result = s_resolve_libcrypto_symbols(AWS_LIBCRYPTO_LC, process);
+     if (result == AWS_LIBCRYPTO_NONE) {
+         result = s_resolve_libcrypto_symbols(AWS_LIBCRYPTO_1_0_2, process);
+@@ -504,7 +509,9 @@ static enum aws_libcrypto_version s_resolve_libcrypto(void) {
+     if (result == AWS_LIBCRYPTO_NONE) {
+         result = s_resolve_libcrypto_symbols(AWS_LIBCRYPTO_1_1_1, process);
+     }
+-    dlclose(process);
++    if (process) {
++        dlclose(process);
++    }
+ 
+     if (result == AWS_LIBCRYPTO_NONE) {
+         FLOGF("libcrypto symbols were not statically linked, searching for shared libraries");
diff --git a/nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix b/nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix
index 68c575312d49..0188c8937c90 100644
--- a/nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix
@@ -1,16 +1,21 @@
 { lib, stdenv, fetchFromGitHub, cmake, aws-c-common, nix, openssl, Security }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "aws-c-cal";
   version = "0.6.10";
 
   src = fetchFromGitHub {
     owner = "awslabs";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-rzJypIf0DrKI/2Wt5vFop34dL+KYTeCfWC0RflZpiMo=";
+    repo = finalAttrs.pname;
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-rzJypIf0DrKI/2Wt5vFop34dL+KYTeCfWC0RflZpiMo=";
   };
 
+  patches = [
+    # Fix openssl adaptor code for musl based static binaries.
+    ./aws-c-cal-musl-compat.patch
+  ];
+
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ aws-c-common openssl ];
@@ -32,4 +37,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ orivej ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/babl/default.nix b/nixpkgs/pkgs/development/libraries/babl/default.nix
index 12dcbd12b9dd..b3ec8194c92a 100644
--- a/nixpkgs/pkgs/development/libraries/babl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/babl/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Image pixel format conversion library";
+    mainProgram = "babl";
     homepage = "https://gegl.org/babl/";
     changelog = "https://gitlab.gnome.org/GNOME/babl/-/blob/BABL_${lib.replaceStrings [ "." ] [ "_" ] version}/NEWS";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/libraries/bashup-events/generic.nix b/nixpkgs/pkgs/development/libraries/bashup-events/generic.nix
index f8a17f3bb11e..c3e2269a8a12 100644
--- a/nixpkgs/pkgs/development/libraries/bashup-events/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/bashup-events/generic.nix
@@ -78,6 +78,7 @@ resholve.mkDerivation rec {
   meta = with lib; {
     inherit branch;
     description = "An event listener/callback API for creating extensible bash programs";
+    mainProgram = "bashup.events";
     homepage = "https://github.com/bashup/events";
     license = licenses.cc0;
     maintainers = with maintainers; [ abathur ];
diff --git a/nixpkgs/pkgs/development/libraries/basu/default.nix b/nixpkgs/pkgs/development/libraries/basu/default.nix
index 25e5adf65771..4665c4c2d158 100644
--- a/nixpkgs/pkgs/development/libraries/basu/default.nix
+++ b/nixpkgs/pkgs/development/libraries/basu/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://sr.ht/~emersion/basu";
     description = "The sd-bus library, extracted from systemd";
+    mainProgram = "basuctl";
     license = lib.licenses.lgpl21Only;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix b/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix
index e473fa97a0ea..1da254093b1b 100644
--- a/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix
+++ b/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Utilities library for Linphone";
+    mainProgram = "bctoolbox_tester";
     homepage = "https://gitlab.linphone.org/BC/public/bctoolbox";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ raskin jluttine ];
diff --git a/nixpkgs/pkgs/development/libraries/belle-sip/default.nix b/nixpkgs/pkgs/development/libraries/belle-sip/default.nix
index 338b0082be5e..b4b5629cdafb 100644
--- a/nixpkgs/pkgs/development/libraries/belle-sip/default.nix
+++ b/nixpkgs/pkgs/development/libraries/belle-sip/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://linphone.org/technical-corner/belle-sip";
     description = "Modern library implementing SIP (RFC 3261) transport, transaction and dialog layers. Part of the Linphone project.";
+    mainProgram = "belle_sip_tester";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ jluttine ];
diff --git a/nixpkgs/pkgs/development/libraries/boost-ext/boost-sml/default.nix b/nixpkgs/pkgs/development/libraries/boost-ext/boost-sml/default.nix
index 0383adca64a4..7987629b60d3 100644
--- a/nixpkgs/pkgs/development/libraries/boost-ext/boost-sml/default.nix
+++ b/nixpkgs/pkgs/development/libraries/boost-ext/boost-sml/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "boost-sml";
-  version = "1.1.9";
+  version = "1.1.11";
 
   src = fetchFromGitHub {
     owner = "boost-ext";
     repo = "sml";
     rev = "v${version}";
-    hash = "sha256-RYgSpnsmgZybpkJALIzxpkDRfe9QF2FHG+nA3msFaK0=";
+    hash = "sha256-/eR/B8rE+mh5zDPjx1kS9nVJf1rCeHP04QDavh6z6fM=";
   };
 
   buildInputs = [ boost ];
diff --git a/nixpkgs/pkgs/development/libraries/boringssl/default.nix b/nixpkgs/pkgs/development/libraries/boringssl/default.nix
index 3e8908416185..fadf478e037f 100644
--- a/nixpkgs/pkgs/development/libraries/boringssl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/boringssl/default.nix
@@ -59,6 +59,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "Free TLS/SSL implementation";
+    mainProgram = "bssl";
     homepage    = "https://boringssl.googlesource.com";
     maintainers = [ maintainers.thoughtpolice ];
     license = with licenses; [ openssl isc mit bsd3 ];
diff --git a/nixpkgs/pkgs/development/libraries/botan/generic.nix b/nixpkgs/pkgs/development/libraries/botan/generic.nix
index 8e053581e88b..a2acb8183283 100644
--- a/nixpkgs/pkgs/development/libraries/botan/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/botan/generic.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Cryptographic algorithms library";
+    mainProgram = "botan";
     maintainers = with maintainers; [ raskin thillux ];
     platforms = platforms.unix;
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/libraries/cairo/default.nix b/nixpkgs/pkgs/development/libraries/cairo/default.nix
index 8ac9da237d19..7408a43272e9 100644
--- a/nixpkgs/pkgs/development/libraries/cairo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cairo/default.nix
@@ -93,6 +93,7 @@ in {
 
   meta = with lib; {
     description = "A 2D graphics library with support for multiple output devices";
+    mainProgram = "cairo-trace";
     longDescription = ''
       Cairo is a 2D graphics library with support for multiple output
       devices.  Currently supported output targets include the X
diff --git a/nixpkgs/pkgs/development/libraries/cdo/default.nix b/nixpkgs/pkgs/development/libraries/cdo/default.nix
index b016aa4d4d68..18a6dc57434a 100644
--- a/nixpkgs/pkgs/development/libraries/cdo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cdo/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Collection of command line Operators to manipulate and analyse Climate and NWP model Data";
+    mainProgram = "cdo";
     longDescription = ''
       Supported data formats are GRIB 1/2, netCDF 3/4, SERVICE, EXTRA and IEG.
       There are more than 600 operators available.
diff --git a/nixpkgs/pkgs/development/libraries/cegui/default.nix b/nixpkgs/pkgs/development/libraries/cegui/default.nix
index c56c59d02ad1..1e884b3d8a81 100644
--- a/nixpkgs/pkgs/development/libraries/cegui/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cegui/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "http://cegui.org.uk/";
     description = "C++ Library for creating GUIs";
+    mainProgram = "CEGUISampleFramework-0.9999";
     license = licenses.mit;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/libraries/cgreen/default.nix b/nixpkgs/pkgs/development/libraries/cgreen/default.nix
index 60d5bc1289ac..921eb6c79724 100644
--- a/nixpkgs/pkgs/development/libraries/cgreen/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cgreen/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://github.com/cgreen-devs/cgreen";
     description = "The Modern Unit Test and Mocking Framework for C and C++";
+    mainProgram = "cgreen-runner";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.AndersonTorres ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/chipmunk/default.nix b/nixpkgs/pkgs/development/libraries/chipmunk/default.nix
index 8290e60a4850..599cf9cfcee2 100644
--- a/nixpkgs/pkgs/development/libraries/chipmunk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/chipmunk/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A fast and lightweight 2D game physics library";
+    mainProgram = "chipmunk_demos";
     homepage = "http://chipmunk2d.net/";
     license = licenses.mit;
     platforms = platforms.unix; # supports Windows and MacOS as well, but those require more work
diff --git a/nixpkgs/pkgs/development/libraries/chromaprint/default.nix b/nixpkgs/pkgs/development/libraries/chromaprint/default.nix
index 189154da8c4e..bc53e2257f12 100644
--- a/nixpkgs/pkgs/development/libraries/chromaprint/default.nix
+++ b/nixpkgs/pkgs/development/libraries/chromaprint/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://acoustid.org/chromaprint";
     description = "AcoustID audio fingerprinting library";
+    mainProgram = "fpcalc";
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/libraries/civetweb/default.nix b/nixpkgs/pkgs/development/libraries/civetweb/default.nix
index 3222702f5a1a..f6fe616957d6 100644
--- a/nixpkgs/pkgs/development/libraries/civetweb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/civetweb/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Embedded C/C++ web server";
+    mainProgram = "civetweb";
     homepage = "https://github.com/civetweb/civetweb";
     license = [ lib.licenses.mit ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/cln/default.nix b/nixpkgs/pkgs/development/libraries/cln/default.nix
index a7094d18e6ea..ae3ed853a026 100644
--- a/nixpkgs/pkgs/development/libraries/cln/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cln/default.nix
@@ -13,6 +13,7 @@ gccStdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "C/C++ library for numbers, a part of GiNaC";
+    mainProgram = "pi";
     homepage = "https://www.ginac.de/CLN/";
     license = licenses.gpl2;
     platforms = platforms.unix; # Once had cygwin problems
diff --git a/nixpkgs/pkgs/development/libraries/cloog-ppl/default.nix b/nixpkgs/pkgs/development/libraries/cloog-ppl/default.nix
index 65d6a392ffdb..3a6f926b3f32 100644
--- a/nixpkgs/pkgs/development/libraries/cloog-ppl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cloog-ppl/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "CLooG-PPL, the Chunky Loop Generator";
+    mainProgram = "cloog";
 
     longDescription = ''
       CLooG is a free software library to generate code for scanning
diff --git a/nixpkgs/pkgs/development/libraries/cloog/0.18.0.nix b/nixpkgs/pkgs/development/libraries/cloog/0.18.0.nix
index 12e279797e76..a1ba3aaf93f3 100644
--- a/nixpkgs/pkgs/development/libraries/cloog/0.18.0.nix
+++ b/nixpkgs/pkgs/development/libraries/cloog/0.18.0.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Library that generates loops for scanning polyhedra";
+    mainProgram = "cloog";
 
     longDescription = ''
       CLooG is a free software library to generate code for scanning
diff --git a/nixpkgs/pkgs/development/libraries/cloog/default.nix b/nixpkgs/pkgs/development/libraries/cloog/default.nix
index bfca886e03d5..3ae266c61cdd 100644
--- a/nixpkgs/pkgs/development/libraries/cloog/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cloog/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Library that generates loops for scanning polyhedra";
+    mainProgram = "cloog";
 
     longDescription = ''
       CLooG is a free software library to generate code for scanning
diff --git a/nixpkgs/pkgs/development/libraries/cmark-gfm/default.nix b/nixpkgs/pkgs/development/libraries/cmark-gfm/default.nix
index 650913fc3888..75ff3acdb947 100644
--- a/nixpkgs/pkgs/development/libraries/cmark-gfm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cmark-gfm/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GitHub's fork of cmark, a CommonMark parsing and rendering library and program in C";
+    mainProgram = "cmark-gfm";
     homepage = "https://github.com/github/cmark-gfm";
     changelog = "https://github.com/github/cmark-gfm/raw/${version}/changelog.txt";
     maintainers = with maintainers; [ cyplo ];
diff --git a/nixpkgs/pkgs/development/libraries/cmark/default.nix b/nixpkgs/pkgs/development/libraries/cmark/default.nix
index 23d00769ee1b..5720f87c5bc4 100644
--- a/nixpkgs/pkgs/development/libraries/cmark/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cmark/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "CommonMark parsing and rendering library and program in C";
+    mainProgram = "cmark";
     homepage = "https://github.com/commonmark/cmark";
     changelog = "https://github.com/commonmark/cmark/raw/${version}/changelog.txt";
     maintainers = [ maintainers.michelk ];
diff --git a/nixpkgs/pkgs/development/libraries/codec2/default.nix b/nixpkgs/pkgs/development/libraries/codec2/default.nix
index 7b1a226de812..8637f5b7ab2d 100644
--- a/nixpkgs/pkgs/development/libraries/codec2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/codec2/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Speech codec designed for communications quality speech at low data rates";
+    mainProgram = "freedv_rx";
     homepage = "https://www.rowetel.com/codec2.html";
     license = licenses.lgpl21Only;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/coin3d/default.nix b/nixpkgs/pkgs/development/libraries/coin3d/default.nix
index 7675ddae378e..8c331a28dcb1 100644
--- a/nixpkgs/pkgs/development/libraries/coin3d/default.nix
+++ b/nixpkgs/pkgs/development/libraries/coin3d/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://github.com/coin3d/coin";
     description = "High-level, retained-mode toolkit for effective 3D graphics development";
+    mainProgram = "coin-config";
     license = licenses.bsd3;
     maintainers = with maintainers; [ gebner viric ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/cppunit/default.nix b/nixpkgs/pkgs/development/libraries/cppunit/default.nix
index fba624a861d7..73c96de4ff24 100644
--- a/nixpkgs/pkgs/development/libraries/cppunit/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cppunit/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://freedesktop.org/wiki/Software/cppunit/";
     description = "C++ unit testing framework";
+    mainProgram = "DllPlugInTester";
     license = licenses.lgpl21;
     platforms = platforms.linux ++ platforms.darwin;
   };
diff --git a/nixpkgs/pkgs/development/libraries/ctpl/default.nix b/nixpkgs/pkgs/development/libraries/ctpl/default.nix
index 634c2cf44cf4..c9925d162f99 100644
--- a/nixpkgs/pkgs/development/libraries/ctpl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ctpl/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://ctpl.tuxfamily.org/";
     description = "Template engine library written in C";
+    mainProgram = "ctpl";
     platforms = platforms.linux;
     maintainers = [ ];
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/libraries/ctranslate2/default.nix b/nixpkgs/pkgs/development/libraries/ctranslate2/default.nix
index 943b9f28584c..c7876a98bd54 100644
--- a/nixpkgs/pkgs/development/libraries/ctranslate2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ctranslate2/default.nix
@@ -84,6 +84,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fast inference engine for Transformer models";
+    mainProgram = "ct2-translator";
     homepage = "https://github.com/OpenNMT/CTranslate2";
     changelog = "https://github.com/OpenNMT/CTranslate2/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/libraries/ctypes_sh/default.nix b/nixpkgs/pkgs/development/libraries/ctypes_sh/default.nix
index 644c68e85d86..c06eff11aad0 100644
--- a/nixpkgs/pkgs/development/libraries/ctypes_sh/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ctypes_sh/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A foreign function interface for bash";
+    mainProgram = "ctypes.sh";
     homepage = "https://github.com/taviso/ctypes.sh";
     license = licenses.mit;
     maintainers = with maintainers; [ tadeokondrak ];
diff --git a/nixpkgs/pkgs/development/libraries/curlpp/default.nix b/nixpkgs/pkgs/development/libraries/curlpp/default.nix
index 0aee75751d9e..c8fe78d0462f 100644
--- a/nixpkgs/pkgs/development/libraries/curlpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/curlpp/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.curlpp.org/";
     description = "C++ wrapper around libcURL";
+    mainProgram = "curlpp-config";
     license = licenses.mit;
     maintainers = with maintainers; [ CrazedProgrammer ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/cutee/default.nix b/nixpkgs/pkgs/development/libraries/cutee/default.nix
index 07e2b7cbcee2..eb5f51cbcfeb 100644
--- a/nixpkgs/pkgs/development/libraries/cutee/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cutee/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "C++ Unit Testing Easy Environment";
+    mainProgram = "cutee";
     homepage    = "https://www.codesink.org/cutee_unit_testing.html";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ leenaars];
diff --git a/nixpkgs/pkgs/development/libraries/cxx-rs/default.nix b/nixpkgs/pkgs/development/libraries/cxx-rs/default.nix
index c06171e72ce5..a2864fbb89df 100644
--- a/nixpkgs/pkgs/development/libraries/cxx-rs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cxx-rs/default.nix
@@ -47,6 +47,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Safe FFI between Rust and C++";
+    mainProgram = "cxxbridge";
     homepage = "https://github.com/dtolnay/cxx";
     license = licenses.mit;
     maintainers = with maintainers; [ centromere ];
diff --git a/nixpkgs/pkgs/development/libraries/cxxtest/default.nix b/nixpkgs/pkgs/development/libraries/cxxtest/default.nix
index 4228a3cb5876..545aa4bc0e0c 100644
--- a/nixpkgs/pkgs/development/libraries/cxxtest/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cxxtest/default.nix
@@ -40,6 +40,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "http://cxxtest.com";
     description = "Unit testing framework for C++";
+    mainProgram = "cxxtestgen";
     license = licenses.lgpl3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ juliendehos ];
diff --git a/nixpkgs/pkgs/development/libraries/czmq/default.nix b/nixpkgs/pkgs/development/libraries/czmq/default.nix
index bb8ecafbb347..db2b99c96650 100644
--- a/nixpkgs/pkgs/development/libraries/czmq/default.nix
+++ b/nixpkgs/pkgs/development/libraries/czmq/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://czmq.zeromq.org/";
     description = "High-level C Binding for ZeroMQ";
+    mainProgram = "zmakecert";
     license = licenses.mpl20;
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/development/libraries/db/db-6.0.nix b/nixpkgs/pkgs/development/libraries/db/db-6.0.nix
index 0d8504c9234c..d92d28d094e6 100644
--- a/nixpkgs/pkgs/development/libraries/db/db-6.0.nix
+++ b/nixpkgs/pkgs/development/libraries/db/db-6.0.nix
@@ -3,7 +3,7 @@
 import ./generic.nix (args // {
   version = "6.0.30";
   sha256 = "1lhglbvg65j5slrlv7qv4vi3cvd7kjywa07gq1abzschycf4p3k0";
-  license = lib.licenses.agpl3;
+  license = lib.licenses.agpl3Only;
   extraPatches = [
     ./clang-6.0.patch
     ./CVE-2017-10140-cwd-db_config.patch
diff --git a/nixpkgs/pkgs/development/libraries/db/db-6.2.nix b/nixpkgs/pkgs/development/libraries/db/db-6.2.nix
index 2c1cb455feae..fd5a53253522 100644
--- a/nixpkgs/pkgs/development/libraries/db/db-6.2.nix
+++ b/nixpkgs/pkgs/development/libraries/db/db-6.2.nix
@@ -3,7 +3,7 @@
 import ./generic.nix (args // {
   version = "6.2.32";
   sha256 = "1yx8wzhch5wwh016nh0kfxvknjkafv6ybkqh6nh7lxx50jqf5id9";
-  license = lib.licenses.agpl3;
+  license = lib.licenses.agpl3Only;
   extraPatches = [
     ./clang-6.0.patch
     ./CVE-2017-10140-cwd-db_config.patch
diff --git a/nixpkgs/pkgs/development/libraries/dbus-glib/default.nix b/nixpkgs/pkgs/development/libraries/dbus-glib/default.nix
index c6be0dd419db..b2946872fbbd 100644
--- a/nixpkgs/pkgs/development/libraries/dbus-glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dbus-glib/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
     homepage = "https://dbus.freedesktop.org";
     license = with lib.licenses; [ afl21 gpl2Plus ];
     description = "Obsolete glib bindings for D-Bus lightweight IPC mechanism";
+    mainProgram = "dbus-binding-tool";
     maintainers = [ ];
     platforms = lib.platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/libraries/dbxml/default.nix b/nixpkgs/pkgs/development/libraries/dbxml/default.nix
index c65e7ad93eca..b6dcf908c4f9 100644
--- a/nixpkgs/pkgs/development/libraries/dbxml/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dbxml/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.oracle.com/database/berkeley-db/xml.html";
     description = "Embeddable XML database based on Berkeley DB";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/libraries/dee/default.nix b/nixpkgs/pkgs/development/libraries/dee/default.nix
index 4a2199f450e6..4bece9069466 100644
--- a/nixpkgs/pkgs/development/libraries/dee/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dee/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A library that uses DBus to provide objects allowing you to create Model-View-Controller type programs across DBus";
+    mainProgram = "dee-tool";
     homepage = "https://launchpad.net/dee";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/duckdb/default.nix b/nixpkgs/pkgs/development/libraries/duckdb/default.nix
index e6645480d2b2..be1a20987881 100644
--- a/nixpkgs/pkgs/development/libraries/duckdb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/duckdb/default.nix
@@ -15,32 +15,22 @@
 
 let
   enableFeature = yes: if yes then "ON" else "OFF";
+  versions = lib.importJSON ./versions.json;
 in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "duckdb";
-  version = "0.10.0";
+  inherit (versions) rev version;
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    hash = "sha256-qGUq0iYTaLNHKqbXNLRmvqHMqunvIlP991IKb4qdSt4=";
+    # to update run:
+    # nix-shell maintainers/scripts/update.nix --argstr path duckdb
+    inherit (versions) hash;
+    owner = "duckdb";
+    repo = "duckdb";
+    rev = "refs/tags/v${finalAttrs.version}";
   };
 
-  patches = [
-    # remove calls to git and set DUCKDB_VERSION to version
-    (substituteAll {
-      src = ./version.patch;
-      version = "v${version}";
-    })
-    # add missing file needed for httpfs compile
-    # remove on next update
-    (fetchpatch {
-      name = "missing-httpfs-file.patch";
-      url = "https://github.com/duckdb/duckdb/commit/3d7aa3ed46ecf5f18122559e385b75f1f5e9aba8.patch";
-      hash = "sha256-Q4IHCpMpxn86OquUZdEF7P0nHEPOcWS0TQijTkvBYbQ=";
-    })
-  ];
+  outputs = [ "out" "lib" "dev" ];
 
   nativeBuildInputs = [ cmake ninja python3 ];
   buildInputs = [ openssl ]
@@ -48,22 +38,22 @@ stdenv.mkDerivation rec {
     ++ lib.optionals withOdbc [ unixODBC ];
 
   cmakeFlags = [
-    "-DDUCKDB_EXTENSION_CONFIGS=${src}/.github/config/in_tree_extensions.cmake"
+    "-DDUCKDB_EXTENSION_CONFIGS=${finalAttrs.src}/.github/config/in_tree_extensions.cmake"
     "-DBUILD_ODBC_DRIVER=${enableFeature withOdbc}"
     "-DJDBC_DRIVER=${enableFeature withJdbc}"
-  ] ++ lib.optionals doInstallCheck [
+    "-DOVERRIDE_GIT_DESCRIBE=v${finalAttrs.version}-0-g${finalAttrs.rev}"
+  ] ++ lib.optionals finalAttrs.doInstallCheck [
     # development settings
     "-DBUILD_UNITTESTS=ON"
   ];
 
-  doInstallCheck = true;
-
-  preInstallCheck = ''
-    export HOME="$(mktemp -d)"
-  '' + lib.optionalString stdenv.isDarwin ''
-    export DYLD_LIBRARY_PATH="$out/lib''${DYLD_LIBRARY_PATH:+:}''${DYLD_LIBRARY_PATH}"
+  postInstall = ''
+    mkdir -p $lib
+    mv $out/lib $lib
   '';
 
+  doInstallCheck = true;
+
   installCheckPhase =
     let
       excludes = map (pattern: "exclude:'${pattern}'") ([
@@ -105,26 +95,29 @@ stdenv.mkDerivation rec {
         "test/sql/copy/csv/auto/test_csv_auto.test"
         # test expects installed file timestamp to be > 2024
         "test/sql/table_function/read_text_and_blob.test"
-        # can re-enable next update (broken for 0.10.0)
-        "test/sql/secrets/create_secret_non_writable_persistent_dir.test"
-        # https://github.com/duckdb/duckdb/issues/10722
-        "test/sql/types/nested/list/list_aggregate_dict.test"
+        # fails with Out of Memory Error
+        "test/sql/copy/parquet/batched_write/batch_memory_usage.test"
+        # wants http connection
+        "test/sql/copy/csv/test_mixed_lines.test"
       ] ++ lib.optionals stdenv.isAarch64 [
         "test/sql/aggregate/aggregates/test_kurtosis.test"
         "test/sql/aggregate/aggregates/test_skewness.test"
         "test/sql/function/list/aggregates/skewness.test"
       ]);
+      LD_LIBRARY_PATH = lib.optionalString stdenv.isDarwin "DY" + "LD_LIBRARY_PATH";
     in
     ''
       runHook preInstallCheck
 
-      ./test/unittest ${toString excludes}
+      HOME="$(mktemp -d)" ${LD_LIBRARY_PATH}="$lib/lib" ./test/unittest ${toString excludes}
 
       runHook postInstallCheck
     '';
 
+  passthru.updateScript = ./update.sh;
+
   meta = with lib; {
-    changelog = "https://github.com/duckdb/duckdb/releases/tag/v${version}";
+    changelog = "https://github.com/duckdb/duckdb/releases/tag/v${finalAttrs.version}";
     description = "Embeddable SQL OLAP Database Management System";
     homepage = "https://duckdb.org/";
     license = licenses.mit;
@@ -132,4 +125,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ costrouc cpcloud ];
     platforms = platforms.all;
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/duckdb/update.sh b/nixpkgs/pkgs/development/libraries/duckdb/update.sh
new file mode 100755
index 000000000000..f3acd176ee86
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/duckdb/update.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/env nix-shell
+#!nix-shell --pure -i bash -p cacert curl jq moreutils nix-prefetch
+# shellcheck shell=bash
+
+set -euo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+nixpkgs=$(while [[ ! -e .git ]]; do [[ ${PWD} != / ]] || exit 1; cd ..; done; echo "${PWD}")
+
+repo=duckdb
+owner=duckdb
+
+msg() {
+    echo "$*" >&2
+}
+
+json_get() {
+    jq -r "$1" < 'versions.json'
+}
+
+json_set() {
+    jq --arg x "$2" "$1 = \$x" < 'versions.json' | sponge 'versions.json'
+}
+
+get_latest() {
+    curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s \
+        "https://api.github.com/repos/${owner}/${repo}/releases/latest" | jq -r .tag_name
+}
+
+get_sha() {
+    curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s \
+        "https://api.github.com/repos/${owner}/${repo}/git/ref/tags/$1" | jq -r .object.sha
+}
+
+tag=$(get_latest)
+version=${tag/v/}
+
+[[ ${version} = $(json_get .version) ]] && { msg "${version} is up to date"; exit 0; }
+
+sha=$(get_sha "${tag}")
+sri=$(nix-prefetch -I nixpkgs="${nixpkgs}" -E "duckdb.overrideAttrs { version = \"${version}\"; }")
+
+json_set ".version" "${version}"
+json_set ".rev" "${sha}"
+json_set ".hash" "${sri}"
diff --git a/nixpkgs/pkgs/development/libraries/duckdb/version.patch b/nixpkgs/pkgs/development/libraries/duckdb/version.patch
deleted file mode 100644
index 122ad4295d41..000000000000
--- a/nixpkgs/pkgs/development/libraries/duckdb/version.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 2b49e11288..0a4a69b9a0 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -244,52 +244,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
-   set(SUN TRUE)
- endif()
- 
--find_package(Git)
--if(Git_FOUND)
--  if (NOT DEFINED GIT_COMMIT_HASH)
--    execute_process(
--            COMMAND ${GIT_EXECUTABLE} log -1 --format=%h
--            WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
--            RESULT_VARIABLE GIT_RESULT
--            OUTPUT_VARIABLE GIT_COMMIT_HASH
--            OUTPUT_STRIP_TRAILING_WHITESPACE)
--  endif()
--  execute_process(
--          COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=0
--          WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
--          OUTPUT_VARIABLE GIT_LAST_TAG
--          OUTPUT_STRIP_TRAILING_WHITESPACE)
--  execute_process(
--          COMMAND ${GIT_EXECUTABLE} describe --tags --long
--          WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
--          OUTPUT_VARIABLE GIT_ITERATION
--          OUTPUT_STRIP_TRAILING_WHITESPACE)
--else()
--  message("Git NOT FOUND")
--endif()
--
--if(GIT_RESULT EQUAL "0")
--  string(REGEX REPLACE "v([0-9]+).[0-9]+.[0-9]+" "\\1" DUCKDB_MAJOR_VERSION "${GIT_LAST_TAG}")
--  string(REGEX REPLACE "v[0-9]+.([0-9]+).[0-9]+" "\\1" DUCKDB_MINOR_VERSION "${GIT_LAST_TAG}")
--  string(REGEX REPLACE "v[0-9]+.[0-9]+.([0-9]+)" "\\1" DUCKDB_PATCH_VERSION "${GIT_LAST_TAG}")
--  string(REGEX REPLACE ".*-([0-9]+)-.*" "\\1" DUCKDB_DEV_ITERATION "${GIT_ITERATION}")
--
--  if(DUCKDB_DEV_ITERATION EQUAL 0)
--    # on a tag; directly use the version
--    set(DUCKDB_VERSION "${GIT_LAST_TAG}")
--  else()
--    # not on a tag, increment the patch version by one and add a -devX suffix
--    math(EXPR DUCKDB_PATCH_VERSION "${DUCKDB_PATCH_VERSION}+1")
--    set(DUCKDB_VERSION "v${DUCKDB_MAJOR_VERSION}.${DUCKDB_MINOR_VERSION}.${DUCKDB_PATCH_VERSION}-dev${DUCKDB_DEV_ITERATION}")
--  endif()
--else()
--  # fallback for when building from tarball
--  set(DUCKDB_MAJOR_VERSION 0)
--  set(DUCKDB_MINOR_VERSION 0)
--  set(DUCKDB_PATCH_VERSION 1)
--  set(DUCKDB_DEV_ITERATION 0)
--  set(DUCKDB_VERSION "v${DUCKDB_MAJOR_VERSION}.${DUCKDB_MINOR_VERSION}.${DUCKDB_PATCH_VERSION}-dev${DUCKDB_DEV_ITERATION}")
--endif()
-+set(DUCKDB_VERSION "@version@")
- 
- message(STATUS "git hash ${GIT_COMMIT_HASH}, version ${DUCKDB_VERSION}")
- 
diff --git a/nixpkgs/pkgs/development/libraries/duckdb/versions.json b/nixpkgs/pkgs/development/libraries/duckdb/versions.json
new file mode 100644
index 000000000000..efb151413e3d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/duckdb/versions.json
@@ -0,0 +1,5 @@
+{
+  "version": "0.10.1",
+  "rev": "4a89d97db8a5a23a15f3025c8d2d2885337c2637",
+  "hash": "sha256-/j/DaUzsfACI5Izr4lblkYmIEmKsOXr760UTwC0l/qg="
+}
diff --git a/nixpkgs/pkgs/development/libraries/exempi/default.nix b/nixpkgs/pkgs/development/libraries/exempi/default.nix
index 2ebf1ce7cc91..e79bc6169802 100644
--- a/nixpkgs/pkgs/development/libraries/exempi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/exempi/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An implementation of XMP (Adobe's Extensible Metadata Platform)";
+    mainProgram = "exempi";
     homepage = "https://libopenraw.freedesktop.org/exempi/";
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/libraries/exiv2/default.nix b/nixpkgs/pkgs/development/libraries/exiv2/default.nix
index f080bd804b48..0ef833b8aa23 100644
--- a/nixpkgs/pkgs/development/libraries/exiv2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/exiv2/default.nix
@@ -98,6 +98,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://exiv2.org";
     description = "A library and command-line utility to manage image metadata";
+    mainProgram = "exiv2";
     platforms = platforms.all;
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ wegank ];
diff --git a/nixpkgs/pkgs/development/libraries/expat/default.nix b/nixpkgs/pkgs/development/libraries/expat/default.nix
index 27cbd38c0286..d2f4aa392cb1 100644
--- a/nixpkgs/pkgs/development/libraries/expat/default.nix
+++ b/nixpkgs/pkgs/development/libraries/expat/default.nix
@@ -73,6 +73,7 @@ stdenv.mkDerivation (finalAttrs: {
     changelog = "https://github.com/libexpat/libexpat/blob/${tag}/expat/Changes";
     homepage = "https://libexpat.github.io/";
     description = "A stream-oriented XML parser library written in C";
+    mainProgram = "xmlwf";
     platforms = platforms.all;
     license = licenses.mit; # expat version
     pkgConfigModules = [ "expat" ];
diff --git a/nixpkgs/pkgs/development/libraries/fbthrift/default.nix b/nixpkgs/pkgs/development/libraries/fbthrift/default.nix
index a483fb1644a2..373d01892203 100644
--- a/nixpkgs/pkgs/development/libraries/fbthrift/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fbthrift/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Facebook's branch of Apache Thrift";
+    mainProgram = "thrift1";
     homepage = "https://github.com/facebook/fbthrift";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/fflas-ffpack/default.nix b/nixpkgs/pkgs/development/libraries/fflas-ffpack/default.nix
index 7dadbcb39502..25bab6645e07 100644
--- a/nixpkgs/pkgs/development/libraries/fflas-ffpack/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fflas-ffpack/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--with-blas-libs=-lcblas"
     "--with-lapack-libs=-llapacke"
+    "--without-archnative"
   ] ++ lib.optionals stdenv.isx86_64 [
     # disable SIMD instructions (which are enabled *when available* by default)
     # for now we need to be careful to disable *all* relevant versions of an instruction set explicitly (https://github.com/linbox-team/fflas-ffpack/issues/284)
@@ -51,6 +52,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Finite Field Linear Algebra Subroutines";
+    mainProgram = "fflas-ffpack-config";
     license = licenses.lgpl21Plus;
     maintainers = teams.sage.members;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix
deleted file mode 100644
index e57c0fcff5bc..000000000000
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-import ./generic.nix {
-  version = "4.4.4";
-  hash = "sha256-Q8bkuF/1uJfqttJJoObnnLX3BEduv+qxsvOrVhMvRjA=";
-  extraPatches = [
-    {
-      name = "libsvtav1-1.5.0-compat-compressed_ten_bit_format.patch";
-      url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/031f1561cd286596cdb374da32f8aa816ce3b135";
-      hash = "sha256-mSnmAkoNikDpxcN+A/hpB7mUbbtcMvm4tG6gZFuroe8=";
-    }
-    # The upstream patch isn’t for ffmpeg 4, but it will apply with a few tweaks.
-    # Fixes a crash when built with clang 16 due to UB in ff_seek_frame_binary.
-    {
-      name = "utils-fix_crash_in_ff_seek_frame_binary.patch";
-      url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/ab792634197e364ca1bb194f9abe36836e42f12d";
-      hash = "sha256-UxZ4VneZpw+Q/UwkEUDNdb2nOx1QnMrZ40UagspNTxI=";
-      postFetch = ''
-        substituteInPlace "$out" \
-          --replace libavformat/seek.c libavformat/utils.c \
-          --replace 'const AVInputFormat *const ' 'const AVInputFormat *'
-      '';
-    }
-  ];
-}
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/5.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/5.nix
deleted file mode 100644
index 68edb0fd37e4..000000000000
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/5.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-import ./generic.nix {
-  version = "5.1.3";
-  hash = "sha256-twfJvANLQGO7TiyHPMPqApfHLFUlOGZTTIIGEnjyvuE=";
-  extraPatches = [
-    {
-      name = "libsvtav1-1.5.0-compat-compressed_ten_bit_format.patch";
-      url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/031f1561cd286596cdb374da32f8aa816ce3b135";
-      hash = "sha256-mSnmAkoNikDpxcN+A/hpB7mUbbtcMvm4tG6gZFuroe8=";
-    }
-    {
-      name = "libsvtav1-1.5.0-compat-vbv_bufsize.patch";
-      url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/1c6fd7d756afe0f8b7df14dbf7a95df275f8f5ee";
-      hash = "sha256-v9Viyo12QfZpbcVqd1aHgLl/DgSkdE9F1kr6afTGPik=";
-    }
-    {
-      name = "libsvtav1-1.5.0-compat-maximum_buffer_size_ms-conditional.patch";
-      url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/96748ac54f998ba6fe22802799c16b4eba8d4ccc";
-      hash = "sha256-Z5HSe7YpryYGHD3BYXejAhqR4EPnmfTGyccxNvU3AaU=";
-    }
-  ];
-}
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/6.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/6.nix
deleted file mode 100644
index cebf17e071e9..000000000000
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/6.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-import ./generic.nix {
-  version = "6.1";
-  hash = "sha256-NzhD2D16bCVCyCXo0TRwZYp3Ta5eFSfoQPa+iRkeNZg=";
-  extraPatches = [
-    {
-      name = "avcodec-decode-validate-hw-frames-ctx.patch";
-      url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/e9c93009fc34ca9dfcf0c6f2ed90ef1df298abf7";
-      hash = "sha256-aE9WN7a2INbss7oRys+AC9d9+yBzlJdeBRcwSDpG0Qw=";
-    }
-  ];
-}
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/default.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/default.nix
new file mode 100644
index 000000000000..5c15239541d8
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/default.nix
@@ -0,0 +1,58 @@
+{ callPackage, darwin }:
+
+let
+  mkFFmpeg =
+    initArgs: ffmpegVariant:
+    callPackage ./generic.nix (
+      {
+        inherit (darwin.apple_sdk.frameworks)
+          Cocoa
+          CoreServices
+          CoreAudio
+          CoreMedia
+          AVFoundation
+          MediaToolbox
+          VideoDecodeAcceleration
+          VideoToolbox
+          ;
+      }
+      // (initArgs // { inherit ffmpegVariant; })
+    );
+
+  v4 = {
+    version = "4.4.4";
+    hash = "sha256-Q8bkuF/1uJfqttJJoObnnLX3BEduv+qxsvOrVhMvRjA=";
+  };
+
+  v5 = {
+    version = "5.1.4";
+    hash = "sha256-2jUL1/xGUf7aMooST2DW41KE7bC+BtgChXmj0sAJZ90=";
+  };
+
+  v6 = {
+    version = "6.1.1";
+    hash = "sha256-Q0c95hbCVUHQWPoh5uC8uzMylmB4BnWg+VhXEgSouzo=";
+  };
+in
+
+rec {
+  ffmpeg_4 = mkFFmpeg v4 "small";
+  ffmpeg_4-headless = mkFFmpeg v4 "headless";
+  ffmpeg_4-full = mkFFmpeg v4 "full";
+
+  ffmpeg_5 = mkFFmpeg v5 "small";
+  ffmpeg_5-headless = mkFFmpeg v5 "headless";
+  ffmpeg_5-full = mkFFmpeg v5 "full";
+
+  ffmpeg_6 = mkFFmpeg v6 "small";
+  ffmpeg_6-headless = mkFFmpeg v6 "headless";
+  ffmpeg_6-full = mkFFmpeg v6 "full";
+
+  # Please make sure this is updated to the latest version on the next major
+  # update to ffmpeg
+  # Packages which use ffmpeg as a library, should pin to the relevant major
+  # version number which the upstream support.
+  ffmpeg = ffmpeg_6;
+  ffmpeg-headless = ffmpeg_6-headless;
+  ffmpeg-full = ffmpeg_6-full;
+}
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
index 2410547e2df6..6dba78cad219 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
@@ -1,7 +1,15 @@
-{ version, hash, extraPatches ? [] }:
-
 { lib, stdenv, buildPackages, removeReferencesTo, addOpenGLRunpath, pkg-config, perl, texinfo, yasm
 
+  # You can fetch any upstream version using this derivation by specifying version and hash
+  # NOTICE: Always use this argument to override the version. Do not use overrideAttrs.
+, version # ffmpeg ABI version. Also declare this if you're overriding the source.
+, hash ? "" # hash of the upstream source for the given ABI version
+, source ? fetchgit {
+    url = "https://git.ffmpeg.org/ffmpeg.git";
+    rev = "n${version}";
+    inherit hash;
+  }
+
 , ffmpegVariant ? "small" # Decides which dependencies are enabled by default
 
   # Build with headless deps; excludes dependencies that are only necessary for
@@ -71,7 +79,7 @@
 , withOpenmpt ? withFullDeps # Tracked music files decoder
 , withOpus ? withHeadlessDeps # Opus de/encoder
 , withPlacebo ? withFullDeps && !stdenv.isDarwin # libplacebo video processing library
-, withPulse ? withSmallDeps && !stdenv.isDarwin # Pulseaudio input support
+, withPulse ? withSmallDeps && stdenv.isLinux # Pulseaudio input support
 , withRav1e ? withFullDeps # AV1 encoder (focused on speed and safety)
 , withRtmp ? false # RTMP[E] support
 , withSamba ? withFullDeps && !stdenv.isDarwin && withGPLv3 # Samba protocol
@@ -82,13 +90,13 @@
 , withSrt ? withHeadlessDeps # Secure Reliable Transport (SRT) protocol
 , withSsh ? withHeadlessDeps # SFTP protocol
 , withSvg ? withFullDeps # SVG protocol
-, withSvtav1 ? withHeadlessDeps && !stdenv.isAarch64 # AV1 encoder/decoder (focused on speed and correctness)
+, withSvtav1 ? withHeadlessDeps && !stdenv.isAarch64 && !stdenv.hostPlatform.isMinGW # AV1 encoder/decoder (focused on speed and correctness)
 , withTensorflow ? false # Tensorflow dnn backend support
 , withTheora ? withHeadlessDeps # Theora encoder
-, withV4l2 ? withHeadlessDeps && !stdenv.isDarwin # Video 4 Linux support
+, withV4l2 ? withHeadlessDeps && stdenv.isLinux  # Video 4 Linux support
 , withV4l2M2m ? withV4l2
 , withVaapi ? withHeadlessDeps && (with stdenv; isLinux || isFreeBSD) # Vaapi hardware acceleration
-, withVdpau ? withSmallDeps # Vdpau hardware acceleration
+, withVdpau ? withSmallDeps && !stdenv.hostPlatform.isMinGW # Vdpau hardware acceleration
 , withVidStab ? withFullDeps && withGPL # Video stabilization
 , withVmaf ? withFullDeps && !stdenv.isAarch64 && lib.versionAtLeast version "5" # Netflix's VMAF (Video Multi-Method Assessment Fusion)
 , withVoAmrwbenc ? withFullDeps && withVersion3 # AMR-WB encoder
@@ -305,7 +313,7 @@
  */
 
 let
-  inherit (lib) optional optionals optionalString enableFeature versionAtLeast;
+  inherit (lib) optional optionals optionalString enableFeature versionOlder versionAtLeast;
 in
 
 
@@ -346,12 +354,7 @@ assert buildSwscale -> buildAvutil;
 stdenv.mkDerivation (finalAttrs: {
   pname = "ffmpeg" + (optionalString (ffmpegVariant != "small") "-${ffmpegVariant}");
   inherit version;
-
-  src = fetchgit {
-    url = "https://git.ffmpeg.org/ffmpeg.git";
-    rev = "n${finalAttrs.version}";
-    inherit hash;
-  };
+  src = source;
 
   postPatch = ''
     patchShebangs .
@@ -362,23 +365,40 @@ stdenv.mkDerivation (finalAttrs: {
       --replace /usr/local/lib/frei0r-1 ${frei0r}/lib/frei0r-1
   '';
 
-  patches = map (patch: fetchpatch patch) (extraPatches
-    ++ (lib.optional (lib.versionOlder version "6.1")
+  patches = map (patch: fetchpatch patch) ([ ]
+    ++ optionals (versionOlder version "5") [
+      {
+        name = "libsvtav1-1.5.0-compat-compressed_ten_bit_format.patch";
+        url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/031f1561cd286596cdb374da32f8aa816ce3b135";
+        hash = "sha256-mSnmAkoNikDpxcN+A/hpB7mUbbtcMvm4tG6gZFuroe8=";
+      }
       {
         # Backport fix for binutils-2.41.
         name = "binutils-2.41.patch";
         url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/effadce6c756247ea8bae32dc13bb3e6f464f0eb";
         hash = "sha256-vlBUMJ1bORQHRNpuzc5iXsTWwS/CN5BmGIA8g7H7mJE=";
       }
-    )
-    ++ (lib.optional (lib.versionAtLeast finalAttrs.version "6" && lib.versionOlder finalAttrs.version "6.1")
+      # The upstream patch isn’t for ffmpeg 4, but it will apply with a few tweaks.
+      # Fixes a crash when built with clang 16 due to UB in ff_seek_frame_binary.
+      {
+        name = "utils-fix_crash_in_ff_seek_frame_binary.patch";
+        url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/ab792634197e364ca1bb194f9abe36836e42f12d";
+        hash = "sha256-UxZ4VneZpw+Q/UwkEUDNdb2nOx1QnMrZ40UagspNTxI=";
+        postFetch = ''
+          substituteInPlace "$out" \
+            --replace libavformat/seek.c libavformat/utils.c \
+            --replace 'const AVInputFormat *const ' 'const AVInputFormat *'
+        '';
+      }
+    ]
+    ++ (lib.optional (lib.versionAtLeast version "6" && lib.versionOlder version "6.1")
       { # this can be removed post 6.1
         name = "fix_aacps_tablegen";
         url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/814178f92647be2411516bbb82f48532373d2554";
         hash = "sha256-FQV9/PiarPXCm45ldtCsxGHjlrriL8DKpn1LaKJ8owI=";
       }
     )
-    ++ (lib.optional (lib.versionAtLeast finalAttrs.version "6.1" && lib.versionOlder finalAttrs.version "6.2")
+    ++ (lib.optional (lib.versionAtLeast version "6.1" && lib.versionOlder version "6.2")
       { # this can be removed post 6.1
         name = "fix_build_failure_due_to_PropertyKey_EncoderID";
         url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/cb049d377f54f6b747667a93e4b719380c3e9475";
@@ -439,7 +459,7 @@ stdenv.mkDerivation (finalAttrs: {
     (enableFeature buildAvdevice "avdevice")
     (enableFeature buildAvfilter "avfilter")
     (enableFeature buildAvformat "avformat")
-  ] ++ optionals (lib.versionOlder finalAttrs.version "5") [
+  ] ++ optionals (lib.versionOlder version "5") [
     # Ffmpeg > 4 doesn't know about the flag anymore
     (enableFeature buildAvresample "avresample")
   ] ++ [
@@ -470,7 +490,7 @@ stdenv.mkDerivation (finalAttrs: {
      */
     (enableFeature withAlsa "alsa")
     (enableFeature withAom "libaom")
-  ] ++ optionals (versionAtLeast finalAttrs.version "6.1") [
+  ] ++ optionals (versionAtLeast version "6.1") [
     (enableFeature withAribcaption "libaribcaption")
   ] ++ [
     (enableFeature withAss "libass")
@@ -495,7 +515,7 @@ stdenv.mkDerivation (finalAttrs: {
     (enableFeature withGme "libgme")
     (enableFeature withGnutls "gnutls")
     (enableFeature withGsm "libgsm")
-  ] ++ optionals (versionAtLeast finalAttrs.version "6.1") [
+  ] ++ optionals (versionAtLeast version "6.1") [
     (enableFeature withHarfbuzz "libharfbuzz")
   ] ++ [
     (enableFeature withIconv "iconv")
@@ -518,7 +538,7 @@ stdenv.mkDerivation (finalAttrs: {
     (enableFeature withOpenjpeg "libopenjpeg")
     (enableFeature withOpenmpt "libopenmpt")
     (enableFeature withOpus "libopus")
-  ] ++ optionals (versionAtLeast finalAttrs.version "5.0") [
+  ] ++ optionals (versionAtLeast version "5.0") [
     (enableFeature withPlacebo "libplacebo")
   ] ++ [
     (enableFeature withPulse "libpulse")
@@ -526,7 +546,7 @@ stdenv.mkDerivation (finalAttrs: {
     (enableFeature withRtmp "librtmp")
     (enableFeature withSamba "libsmbclient")
     (enableFeature withSdl2 "sdl2")
-  ] ++ optionals (versionAtLeast finalAttrs.version "5.0") [
+  ] ++ optionals (versionAtLeast version "5.0") [
     (enableFeature withShaderc "libshaderc")
   ] ++ [
     (enableFeature withSoxr "libsoxr")
@@ -624,7 +644,7 @@ stdenv.mkDerivation (finalAttrs: {
   ++ optionals withModplug [ libmodplug ]
   ++ optionals withMp3lame [ lame ]
   ++ optionals withMysofa [ libmysofa ]
-  ++ optionals (withNvdec || withNvenc) [ (if (lib.versionAtLeast finalAttrs.version "6") then nv-codec-headers-12 else nv-codec-headers) ]
+  ++ optionals (withNvdec || withNvenc) [ (if (lib.versionAtLeast version "6") then nv-codec-headers-12 else nv-codec-headers) ]
   ++ optionals withOgg [ libogg ]
   ++ optionals withOpenal [ openal ]
   ++ optionals withOpencl [ ocl-icd opencl-headers ]
@@ -634,7 +654,7 @@ stdenv.mkDerivation (finalAttrs: {
   ++ optionals withOpenjpeg [ openjpeg ]
   ++ optionals withOpenmpt [ libopenmpt ]
   ++ optionals withOpus [ libopus ]
-  ++ optionals withPlacebo [ (if (lib.versionAtLeast finalAttrs.version "6.1") then libplacebo else libplacebo_5) vulkan-headers ]
+  ++ optionals withPlacebo [ (if (lib.versionAtLeast version "6.1") then libplacebo else libplacebo_5) vulkan-headers ]
   ++ optionals withPulse [ libpulseaudio ]
   ++ optionals withRav1e [ rav1e ]
   ++ optionals withRtmp [ rtmpdump ]
@@ -722,7 +742,7 @@ stdenv.mkDerivation (finalAttrs: {
     addOpenGLRunpath ${placeholder "lib"}/lib/libavutil.so
   ''
   # https://trac.ffmpeg.org/ticket/10809
-  + optionalString (versionAtLeast version "5.0" && withVulkan) ''
+  + optionalString (versionAtLeast version "5.0" && withVulkan && !stdenv.hostPlatform.isMinGW) ''
     patchelf $lib/lib/libavcodec.so --add-needed libvulkan.so --add-rpath ${lib.makeLibraryPath [ vulkan-loader ]}
   '';
 
@@ -733,7 +753,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "A complete, cross-platform solution to record, convert and stream audio and video";
     homepage = "https://www.ffmpeg.org/";
-    changelog = "https://github.com/FFmpeg/FFmpeg/blob/n${finalAttrs.version}/Changelog";
+    changelog = "https://github.com/FFmpeg/FFmpeg/blob/n${version}/Changelog";
     longDescription = ''
       FFmpeg is the leading multimedia framework, able to decode, encode, transcode,
       mux, demux, stream, filter and play pretty much anything that humans and machines
@@ -749,6 +769,8 @@ stdenv.mkDerivation (finalAttrs: {
       ++ optional (withGPL && withUnfree) unfree;
     pkgConfigModules = [ "libavutil" ];
     platforms = platforms.all;
+    # See https://github.com/NixOS/nixpkgs/pull/295344#issuecomment-1992263658
+    broken = stdenv.hostPlatform.isMinGW && stdenv.hostPlatform.is64bit;
     maintainers = with maintainers; [ atemu arthsmn jopejoe1 ];
     mainProgram = "ffmpeg";
   };
diff --git a/nixpkgs/pkgs/development/libraries/ffmpegthumbnailer/default.nix b/nixpkgs/pkgs/development/libraries/ffmpegthumbnailer/default.nix
index 381bb7b2984c..47e3c3ed42c7 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpegthumbnailer/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpegthumbnailer/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib;  {
     homepage = "https://github.com/dirkvdb/ffmpegthumbnailer";
     description = "A lightweight video thumbnailer";
+    mainProgram = "ffmpegthumbnailer";
     longDescription = "FFmpegthumbnailer is a lightweight video
         thumbnailer that can be used by file managers to create thumbnails
         for your video files. The thumbnailer uses ffmpeg o decode frames
diff --git a/nixpkgs/pkgs/development/libraries/ffms/default.nix b/nixpkgs/pkgs/development/libraries/ffms/default.nix
index 06fce3891e27..370b4267bdb4 100644
--- a/nixpkgs/pkgs/development/libraries/ffms/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ffms/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/FFMS/ffms2/";
     description = "FFmpeg based source library for easy frame accurate access";
+    mainProgram = "ffmsindex";
     license = licenses.mit;
     maintainers = with maintainers; [ tadeokondrak ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/flatcc/default.nix b/nixpkgs/pkgs/development/libraries/flatcc/default.nix
index 1f487955b3f3..4d74627ee3c9 100644
--- a/nixpkgs/pkgs/development/libraries/flatcc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/flatcc/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "FlatBuffers Compiler and Library in C for C ";
+    mainProgram = "flatcc";
     homepage = "https://github.com/dvidelabs/flatcc";
     license = [ licenses.asl20 ];
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/development/libraries/flint/3.nix b/nixpkgs/pkgs/development/libraries/flint/3.nix
index 3be7fdc63904..b8b8c2d8ec7d 100644
--- a/nixpkgs/pkgs/development/libraries/flint/3.nix
+++ b/nixpkgs/pkgs/development/libraries/flint/3.nix
@@ -24,16 +24,19 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ezEaAFA6hjiB64F32+uEMi8pOZ89fXLzsaTJuh1XlLQ=";
   };
 
-  propagatedBuildInputs = [
+  nativeBuildInputs = [
     autoconf
     automake
     gettext
     libtool
   ];
 
+  propagatedBuildInputs = [
+    mpfr
+  ];
+
   buildInputs = [
     gmp
-    mpfr
   ] ++ lib.optionals withBlas [
     openblas
   ] ++ lib.optionals withNtl [
diff --git a/nixpkgs/pkgs/development/libraries/frame/default.nix b/nixpkgs/pkgs/development/libraries/frame/default.nix
index f0b37b7e633c..e56ce1e68416 100644
--- a/nixpkgs/pkgs/development/libraries/frame/default.nix
+++ b/nixpkgs/pkgs/development/libraries/frame/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://launchpad.net/frame";
     description = "Handles the buildup and synchronization of a set of simultaneous touches";
+    mainProgram = "frame-test-x11";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/development/libraries/freealut/default.nix b/nixpkgs/pkgs/development/libraries/freealut/default.nix
index c29899922979..dbae2b20b61c 100644
--- a/nixpkgs/pkgs/development/libraries/freealut/default.nix
+++ b/nixpkgs/pkgs/development/libraries/freealut/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "http://openal.org/";
     description = "Free implementation of OpenAL's ALUT standard";
+    mainProgram = "freealut-config";
     license = lib.licenses.lgpl2;
     pkgConfigModules = [ "freealut" ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/freetts/default.nix b/nixpkgs/pkgs/development/libraries/freetts/default.nix
index 06535c087dc6..ec948f1fdccc 100644
--- a/nixpkgs/pkgs/development/libraries/freetts/default.nix
+++ b/nixpkgs/pkgs/development/libraries/freetts/default.nix
@@ -1,29 +1,49 @@
-{stdenv, fetchurl, apacheAnt, unzip, sharutils, lib, jdk}:
+{ lib
+, stdenv
+, fetchzip
+, ant
+, jdk8
+, sharutils
+, stripJavaArchivesHook
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "freetts";
   version = "1.2.2";
-  src = fetchurl {
-    url = "mirror://sourceforge/freetts/${pname}-${version}-src.zip";
-    sha256 = "0mnikqhpf4f4jdr0irmibr8yy0dnffx1i257y22iamxi7a6by2r7";
+
+  src = fetchzip {
+    url = "mirror://sourceforge/freetts/${finalAttrs.pname}-${finalAttrs.version}-src.zip";
+    hash = "sha256-+bhM0ErEZVnmcz5CBqn/AeGaOhKnCjZzGeqgO/89wms=";
+    stripRoot = false;
   };
-  nativeBuildInputs = [ unzip ];
-  buildInputs = [ apacheAnt sharutils jdk ];
-  unpackPhase = ''
-    unzip $src -x META-INF/*
-  '';
+
+  nativeBuildInputs = [
+    ant
+    jdk8
+    sharutils
+    stripJavaArchivesHook
+  ];
+
+  sourceRoot = "${finalAttrs.src.name}/freetts-${finalAttrs.version}";
 
   buildPhase = ''
-    cd */lib
+    runHook preBuild
+
+    pushd lib
     sed -i -e "s/more/cat/" jsapi.sh
     echo y | sh jsapi.sh
-    cd ..
+    popd
+
     ln -s . src
     ant
+
+    runHook postBuild
   '';
+
   installPhase = ''
-    install -v -m755 -d $out/{lib,docs/{audio,images}}
-    install -v -m644 lib/*.jar $out/lib
+    runHook preInstall
+    install -Dm644 lib/*.jar -t $out/lib
+    runHook postInstall
   '';
 
   meta = {
@@ -32,8 +52,12 @@ stdenv.mkDerivation rec {
       Text to speech system based on Festival written in Java.
       Can be used in combination with KDE accessibility.
     '';
-    license = "GPL";
     homepage = "http://freetts.sourceforge.net";
-    maintainers = [ lib.maintainers.sander ];
+    license = lib.licenses.bsdOriginal;
+    maintainers = with lib.maintainers; [ sander ];
+    sourceProvenance = with lib.sourceTypes; [
+      fromSource
+      binaryBytecode # jsapi.jar is bundled in a self-extracting shell-script
+    ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/freetype/default.nix b/nixpkgs/pkgs/development/libraries/freetype/default.nix
index 68e08a1a8b5f..1a8009f04ce7 100644
--- a/nixpkgs/pkgs/development/libraries/freetype/default.nix
+++ b/nixpkgs/pkgs/development/libraries/freetype/default.nix
@@ -104,6 +104,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A font rendering engine";
+    mainProgram = "freetype-config";
     longDescription = ''
       FreeType is a portable and efficient library for rendering fonts. It
       supports TrueType, Type 1, CFF fonts, and WOFF, PCF, FNT, BDF and PFR
diff --git a/nixpkgs/pkgs/development/libraries/fribidi/default.nix b/nixpkgs/pkgs/development/libraries/fribidi/default.nix
index 5672ff5375bb..d23cd352360b 100644
--- a/nixpkgs/pkgs/development/libraries/fribidi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fribidi/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://github.com/fribidi/fribidi";
     description = "GNU implementation of the Unicode Bidirectional Algorithm (bidi)";
+    mainProgram = "fribidi";
     license = licenses.lgpl21;
     platforms = platforms.unix;
     pkgConfigModules = [ "fribidi" ];
diff --git a/nixpkgs/pkgs/development/libraries/fstrcmp/default.nix b/nixpkgs/pkgs/development/libraries/fstrcmp/default.nix
index 2dfa02e71059..ab7f410eddf2 100644
--- a/nixpkgs/pkgs/development/libraries/fstrcmp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fstrcmp/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Make fuzzy comparisons of strings and byte arrays";
+    mainProgram = "fstrcmp";
     longDescription = ''
       The fstrcmp project provides a library that is used to make fuzzy
       comparisons of strings and byte arrays, including multi-byte character
diff --git a/nixpkgs/pkgs/development/libraries/funambol/default.nix b/nixpkgs/pkgs/development/libraries/funambol/default.nix
index 3e7bf0d21a2b..1ee66e008fef 100644
--- a/nixpkgs/pkgs/development/libraries/funambol/default.nix
+++ b/nixpkgs/pkgs/development/libraries/funambol/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "SyncML client sdk by Funambol project";
     homepage = "https://www.funambol.com";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/fuzzylite/default.nix b/nixpkgs/pkgs/development/libraries/fuzzylite/default.nix
index a3f70c062e86..1fd6d6506c28 100644
--- a/nixpkgs/pkgs/development/libraries/fuzzylite/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fuzzylite/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A fuzzy logic control library in C++";
+    mainProgram = "fuzzylite";
     homepage = "https://fuzzylite.com";
     changelog = "https://github.com/fuzzylite/fuzzylite/${src.rev}/release/CHANGELOG";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/libraries/ganv/default.nix b/nixpkgs/pkgs/development/libraries/ganv/default.nix
index d53206ca667b..32318e1fc0fc 100644
--- a/nixpkgs/pkgs/development/libraries/ganv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ganv/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An interactive Gtk canvas widget for graph-based interfaces";
+    mainProgram = "ganv_bench";
     homepage = "http://drobilla.net";
     license = licenses.gpl3;
     maintainers = [ maintainers.goibhniu ];
diff --git a/nixpkgs/pkgs/development/libraries/gcab/default.nix b/nixpkgs/pkgs/development/libraries/gcab/default.nix
index b31e93553766..6136564e5412 100644
--- a/nixpkgs/pkgs/development/libraries/gcab/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gcab/default.nix
@@ -73,6 +73,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GObject library to create cabinet files";
+    mainProgram = "gcab";
     homepage = "https://gitlab.gnome.org/GNOME/gcab";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/development/libraries/gcr/4.nix b/nixpkgs/pkgs/development/libraries/gcr/4.nix
index 650d87958c5e..243663e430d5 100644
--- a/nixpkgs/pkgs/development/libraries/gcr/4.nix
+++ b/nixpkgs/pkgs/development/libraries/gcr/4.nix
@@ -98,6 +98,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = teams.gnome.members;
     description = "GNOME crypto services (daemon and tools)";
+    mainProgram = "gcr-viewer-gtk4";
     homepage = "https://gitlab.gnome.org/GNOME/gcr";
     license = licenses.lgpl2Plus;
 
diff --git a/nixpkgs/pkgs/development/libraries/gcr/default.nix b/nixpkgs/pkgs/development/libraries/gcr/default.nix
index 1fec6100bf2b..5a388246c154 100644
--- a/nixpkgs/pkgs/development/libraries/gcr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gcr/default.nix
@@ -106,6 +106,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = teams.gnome.members;
     description = "GNOME crypto services (daemon and tools)";
+    mainProgram = "gcr-viewer";
     homepage = "https://gitlab.gnome.org/GNOME/gcr";
     license = licenses.lgpl2Plus;
 
diff --git a/nixpkgs/pkgs/development/libraries/gdal/default.nix b/nixpkgs/pkgs/development/libraries/gdal/default.nix
index 5d0fc7a65706..6c298ac0e1d9 100644
--- a/nixpkgs/pkgs/development/libraries/gdal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gdal/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , callPackage
 , fetchFromGitHub
+, fetchpatch
 
 , useMinimalFeatures ? false
 , useTiledb ? (!useMinimalFeatures) && !(stdenv.isDarwin && stdenv.isx86_64)
@@ -88,6 +89,14 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-R9VLof13OXPbWGHOG1Q4WZWSPoF739C6WuNWxoIwKTw=";
   };
 
+  patches = [
+    # bump java source option to fix build with JDK 21
+    (fetchpatch {
+      url = "https://github.com/OSGeo/gdal/commit/ca2eb4130750b0e6365f738a5f8ff77081f5c5bb.patch";
+      sha256 = "sha256-wShYm9yA7twJR72co+Tvf/IuYXqbI0OrjWl0uqC3bwo=";
+    })
+  ];
+
   nativeBuildInputs = [
     bison
     cmake
@@ -225,18 +234,19 @@ stdenv.mkDerivation (finalAttrs: {
   '';
   nativeInstallCheckInputs = with python3.pkgs; [
     pytestCheckHook
+    pytest-benchmark
     pytest-env
     filelock
     lxml
   ];
+  pytestFlagsArray = [
+    "--benchmark-disable"
+  ];
   disabledTestPaths = [
     # tests that attempt to make network requests
     "gcore/vsis3.py"
     "gdrivers/gdalhttp.py"
     "gdrivers/wms.py"
-
-    # disable benchmarks
-    "benchmark/*"
   ];
   disabledTests = [
     # tests that attempt to make network requests
diff --git a/nixpkgs/pkgs/development/libraries/gdome2/default.nix b/nixpkgs/pkgs/development/libraries/gdome2/default.nix
index 5aa1c487b4f9..f71753b479d7 100644
--- a/nixpkgs/pkgs/development/libraries/gdome2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gdome2/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "http://gdome2.cs.unibo.it/";
     description = "DOM C library developed for the Gnome project";
+    mainProgram = "gdome-config";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ prikhi roconnor ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/geos/3.9.nix b/nixpkgs/pkgs/development/libraries/geos/3.9.nix
index cc3025928c80..4ca53e36971b 100644
--- a/nixpkgs/pkgs/development/libraries/geos/3.9.nix
+++ b/nixpkgs/pkgs/development/libraries/geos/3.9.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "C++ port of the Java Topology Suite (JTS)";
+    mainProgram = "geos-config";
     homepage = "https://trac.osgeo.org/geos";
     license = licenses.lgpl21Only;
     pkgConfigModules = [ "geos" ];
diff --git a/nixpkgs/pkgs/development/libraries/getdns/default.nix b/nixpkgs/pkgs/development/libraries/getdns/default.nix
index 0a6f34eab6cc..95844e36f3a0 100644
--- a/nixpkgs/pkgs/development/libraries/getdns/default.nix
+++ b/nixpkgs/pkgs/development/libraries/getdns/default.nix
@@ -78,6 +78,7 @@ in rec {
     meta = with lib;
       metaCommon // {
         description = "A local DNS Privacy stub resolver (using DNS-over-TLS)";
+        mainProgram = "stubby";
         longDescription = ''
           Stubby is an application that acts as a local DNS Privacy stub
           resolver (using RFC 7858, aka DNS-over-TLS). Stubby encrypts DNS
diff --git a/nixpkgs/pkgs/development/libraries/gflags/default.nix b/nixpkgs/pkgs/development/libraries/gflags/default.nix
index a690d8f2e154..3f07a67cbdae 100644
--- a/nixpkgs/pkgs/development/libraries/gflags/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gflags/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A C++ library that implements commandline flags processing";
+    mainProgram = "gflags_completions.sh";
     longDescription = ''
       The gflags package contains a C++ library that implements commandline flags processing.
       As such it's a replacement for getopt().
diff --git a/nixpkgs/pkgs/development/libraries/ggz_base_libs/default.nix b/nixpkgs/pkgs/development/libraries/ggz_base_libs/default.nix
index 162a64eeb5da..878f6bf97cff 100644
--- a/nixpkgs/pkgs/development/libraries/ggz_base_libs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ggz_base_libs/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GGZ Gaming zone libraries";
+    mainProgram = "ggz-config";
     maintainers = with maintainers;
     [
       raskin
diff --git a/nixpkgs/pkgs/development/libraries/giflib/4.1.nix b/nixpkgs/pkgs/development/libraries/giflib/4.1.nix
deleted file mode 100644
index 8f3ebcf7d3be..000000000000
--- a/nixpkgs/pkgs/development/libraries/giflib/4.1.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{lib, stdenv, fetchurl}:
-
-stdenv.mkDerivation rec {
-  pname = "giflib";
-  version = "4.1.6";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/giflib/giflib-${version}.tar.bz2";
-    sha256 = "1v9b7ywz7qg8hli0s9vv1b8q9xxb2xvqq2mg1zpr73xwqpcwxhg1";
-  };
-
-  hardeningDisable = [ "format" ];
-
-  meta = with lib; {
-    description = "A library for reading and writing gif images";
-    branch = "4.1";
-    license = licenses.mit;
-    platforms = platforms.unix;
-  };
-}
-
diff --git a/nixpkgs/pkgs/development/libraries/giflib/CVE-2021-40633.patch b/nixpkgs/pkgs/development/libraries/giflib/CVE-2021-40633.patch
new file mode 100644
index 000000000000..8a665bb1638b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/giflib/CVE-2021-40633.patch
@@ -0,0 +1,26 @@
+From ccbc956432650734c91acb3fc88837f7b81267ff Mon Sep 17 00:00:00 2001
+From: "Eric S. Raymond" <esr@thyrsus.com>
+Date: Wed, 21 Feb 2024 18:55:00 -0500
+Subject: [PATCH] Clean up memory better at end of run (CVE-2021-40633)
+
+---
+ gif2rgb.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/gif2rgb.c b/gif2rgb.c
+index d51226d..fc2e683 100644
+--- a/gif2rgb.c
++++ b/gif2rgb.c
+@@ -517,6 +517,9 @@ static void GIF2RGB(int NumFiles, char *FileName, bool OneFileFlag,
+ 	DumpScreen2RGB(OutFileName, OneFileFlag, ColorMap, ScreenBuffer,
+ 	               GifFile->SWidth, GifFile->SHeight);
+ 
++	for (i = 0; i < GifFile->SHeight; i++) {
++        	(void)free(ScreenBuffer[i]);
++	}
+ 	(void)free(ScreenBuffer);
+ 
+ 	{
+-- 
+2.44.0
+
diff --git a/nixpkgs/pkgs/development/libraries/giflib/default.nix b/nixpkgs/pkgs/development/libraries/giflib/default.nix
index 8c8a587ed548..a73d12061250 100644
--- a/nixpkgs/pkgs/development/libraries/giflib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/giflib/default.nix
@@ -4,31 +4,20 @@
 , fetchpatch
 , fixDarwinDylibNames
 , pkgsStatic
+, imagemagick_light
 }:
 
 stdenv.mkDerivation rec {
   pname = "giflib";
-  version = "5.2.1";
+  version = "5.2.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/giflib/giflib-${version}.tar.gz";
-    sha256 = "1gbrg03z1b6rlrvjyc6d41bc8j1bsr7rm8206gb1apscyii5bnii";
+    hash = "sha256-vn/70FfK3r4qoURUL9kMaDjGoIO16KkEi47jtmsp1fs=";
   };
 
   patches = [
-    (fetchpatch {
-      name = "CVE-2022-28506.patch";
-      url = "https://src.fedoraproject.org/rpms/giflib/raw/2e9917bf13df114354163f0c0211eccc00943596/f/CVE-2022-28506.patch";
-      sha256 = "sha256-TBemEXkuox8FdS9RvjnWcTWPaHRo4crcwSR9czrUwBY=";
-    })
-  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
-    # https://sourceforge.net/p/giflib/bugs/133/
-    (fetchpatch {
-      name = "darwin-soname.patch";
-      url = "https://sourceforge.net/p/giflib/bugs/_discuss/thread/4e811ad29b/c323/attachment/Makefile.patch";
-      sha256 = "12afkqnlkl3n1hywwgx8sqnhp3bz0c5qrwcv8j9hifw1lmfhv67r";
-      extraPrefix = "./";
-    })
+    ./CVE-2021-40633.patch
   ] ++ lib.optionals stdenv.hostPlatform.isMinGW [
     # Build dll libraries.
     (fetchurl {
@@ -40,7 +29,9 @@ stdenv.mkDerivation rec {
     ./mingw-install-exes.patch
   ];
 
-  nativeBuildInputs = lib.optionals stdenv.isDarwin [
+  nativeBuildInputs = [
+    imagemagick_light
+  ] ++ lib.optionals stdenv.isDarwin [
     fixDarwinDylibNames
   ];
 
@@ -50,10 +41,11 @@ stdenv.mkDerivation rec {
 
   postPatch = lib.optionalString stdenv.hostPlatform.isStatic ''
     # Upstream build system does not support NOT building shared libraries.
-    sed -i '/all:/ s/libgif.so//' Makefile
-    sed -i '/all:/ s/libutil.so//' Makefile
-    sed -i '/-m 755 libgif.so/ d' Makefile
-    sed -i '/ln -sf libgif.so/ d' Makefile
+    sed -i '/all:/ s/$(LIBGIFSO)//' Makefile
+    sed -i '/all:/ s/$(LIBUTILSO)//' Makefile
+    sed -i '/-m 755 $(LIBGIFSO)/ d' Makefile
+    sed -i '/ln -sf $(LIBGIFSOVER)/ d' Makefile
+    sed -i '/ln -sf $(LIBGIFSOMAJOR)/ d' Makefile
   '';
 
   passthru.tests = {
@@ -63,7 +55,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A library for reading and writing gif images";
     homepage = "https://giflib.sourceforge.net/";
-    platforms = lib.platforms.unix;
+    platforms = lib.platforms.unix ++ lib.platforms.windows;
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
     branch = "5.2";
diff --git a/nixpkgs/pkgs/development/libraries/git2-cpp/default.nix b/nixpkgs/pkgs/development/libraries/git2-cpp/default.nix
index aae958518661..bf12d2c48948 100644
--- a/nixpkgs/pkgs/development/libraries/git2-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/git2-cpp/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/ken-matsui/git2-cpp";
     description = "libgit2 bindings for C++";
     license = licenses.mit;
-    maintainers = with maintainers; [ ken-matsui ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
   };
 })
diff --git a/nixpkgs/pkgs/development/libraries/givaro/default.nix b/nixpkgs/pkgs/development/libraries/givaro/default.nix
index c38419bed52b..a7b1eaa43831 100644
--- a/nixpkgs/pkgs/development/libraries/givaro/default.nix
+++ b/nixpkgs/pkgs/development/libraries/givaro/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ gmpxx ];
 
   configureFlags = [
-    "--disable-optimization"
+    "--without-archnative"
   ] ++ lib.optionals stdenv.isx86_64 [
     # disable SIMD instructions (which are enabled *when available* by default)
     "--${if stdenv.hostPlatform.sse3Support   then "enable" else "disable"}-sse3"
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A C++ library for arithmetic and algebraic computations";
+    mainProgram = "givaro-config";
     license = lib.licenses.cecill-b;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/glib/default.nix b/nixpkgs/pkgs/development/libraries/glib/default.nix
index 9a5569cd1543..7c14141554fb 100644
--- a/nixpkgs/pkgs/development/libraries/glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/glib/default.nix
@@ -9,7 +9,7 @@
 , pkg-config
 , perl
 , python3
-, libiconv, zlib, libffi, pcre2, libelf, gnome, libselinux, bash, gnum4, gtk-doc, docbook_xsl, docbook_xml_dtd_45, libxslt
+, libiconv, zlib, libffi, pcre2, elfutils, gnome, libselinux, bash, gnum4, gtk-doc, docbook_xsl, docbook_xml_dtd_45, libxslt
 # use util-linuxMinimal to avoid circular dependency (util-linux, systemd, glib)
 , util-linuxMinimal ? null
 , buildPackages
@@ -110,11 +110,12 @@ stdenv.mkDerivation (finalAttrs: {
   setupHook = ./setup-hook.sh;
 
   buildInputs = [
-    libelf
     finalAttrs.setupHook
     pcre2
   ] ++ lib.optionals (!stdenv.hostPlatform.isWindows) [
     bash gnum4 # install glib-gettextize and m4 macros for other apps to use
+  ] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [
+    elfutils
   ] ++ lib.optionals stdenv.isLinux [
     libselinux
     util-linuxMinimal # for libmount
@@ -158,6 +159,8 @@ stdenv.mkDerivation (finalAttrs: {
     "-Dgtk_doc=${lib.boolToString buildDocs}"
     "-Dnls=enabled"
     "-Ddevbindir=${placeholder "dev"}/bin"
+  ] ++ lib.optionals (!lib.meta.availableOn stdenv.hostPlatform elfutils) [
+    "-Dlibelf=disabled"
   ] ++ lib.optionals (!stdenv.isDarwin) [
     "-Dman=true"                # broken on Darwin
   ] ++ lib.optionals stdenv.isFreeBSD [
diff --git a/nixpkgs/pkgs/development/libraries/glibc/mtrace.nix b/nixpkgs/pkgs/development/libraries/glibc/mtrace.nix
index 4dbcb19af2a4..926c0d91cdf0 100644
--- a/nixpkgs/pkgs/development/libraries/glibc/mtrace.nix
+++ b/nixpkgs/pkgs/development/libraries/glibc/mtrace.nix
@@ -36,5 +36,6 @@ glibc.overrideAttrs (oldAttrs: {
 
   meta = oldAttrs.meta // {
     description = "Perl script used to interpret and provide human readable output of the trace log contained in the file mtracedata, whose contents were produced by mtrace(3).";
+    mainProgram = "mtrace";
   };
 })
diff --git a/nixpkgs/pkgs/development/libraries/gloox/default.nix b/nixpkgs/pkgs/development/libraries/gloox/default.nix
index b4cd3ca75ee1..7bf1bfb4bd16 100644
--- a/nixpkgs/pkgs/development/libraries/gloox/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gloox/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec{
 
   meta = with lib; {
     description = "A portable high-level Jabber/XMPP library for C++";
+    mainProgram = "gloox-config";
     homepage = "http://camaya.net/gloox";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix b/nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix
index 6cdc54acd290..aee2056a8563 100644
--- a/nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gnome-online-accounts/default.nix
@@ -1,6 +1,6 @@
 { stdenv
 , lib
-, fetchFromGitLab
+, fetchurl
 , pkg-config
 , vala
 , glib
@@ -30,18 +30,15 @@
 , wrapGAppsHook
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-online-accounts";
-  version = "3.48.0";
+  version = "3.48.1";
 
   outputs = [ "out" "dev" ] ++ lib.optionals enableBackend [ "man" "devdoc" ];
 
-  src = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "GNOME";
-    repo = "gnome-online-accounts";
-    rev = version;
-    sha256 = "sha256-USl0Qay9pSgbbp3n/L8eBaRQwaBYledht5j+afmo++o=";
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-online-accounts/${lib.versions.majorMinor finalAttrs.version}/gnome-online-accounts-${finalAttrs.version}.tar.xz";
+    hash = "sha256-PqDHEIS/WVzOXKo3zv8uhT0OyWRLsB/UZDMArblRf4o=";
   };
 
   mesonFlags = [
@@ -91,7 +88,7 @@ stdenv.mkDerivation rec {
   passthru = {
     updateScript = gnome.updateScript {
       versionPolicy = "odd-unstable";
-      packageName = pname;
+      packageName = "gnome-online-accounts";
     };
   };
 
@@ -102,4 +99,4 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2Plus;
     maintainers = teams.gnome.members;
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/graphene-hardened-malloc/default.nix b/nixpkgs/pkgs/development/libraries/graphene-hardened-malloc/default.nix
index 85ec3352f705..48df439a1efb 100644
--- a/nixpkgs/pkgs/development/libraries/graphene-hardened-malloc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/graphene-hardened-malloc/default.nix
@@ -83,6 +83,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://github.com/GrapheneOS/hardened_malloc";
     description = "Hardened allocator designed for modern systems";
+    mainProgram = "preload-hardened-malloc";
     longDescription = ''
       This is a security-focused general purpose memory allocator providing the malloc API
       along with various extensions. It provides substantial hardening against heap
diff --git a/nixpkgs/pkgs/development/libraries/grpc/default.nix b/nixpkgs/pkgs/development/libraries/grpc/default.nix
index ba1a4a8c123e..1e8804237b99 100644
--- a/nixpkgs/pkgs/development/libraries/grpc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/grpc/default.nix
@@ -21,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "grpc";
-  version = "1.62.0"; # N.B: if you change this, please update:
+  version = "1.62.1"; # N.B: if you change this, please update:
     # pythonPackages.grpcio-tools
     # pythonPackages.grpcio-status
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "grpc";
     repo = "grpc";
     rev = "v${version}";
-    hash = "sha256-iqoxgo/oocO9gBq0o5bmZvre/EwRguMrWnmwvyLGLr8=";
+    hash = "sha256-L0bn6Bg36UKIRxznH9o4T7WXUqMwFjr8ybeQfbUi8xM=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/gsasl/default.nix b/nixpkgs/pkgs/development/libraries/gsasl/default.nix
index 3dc5c128fc37..787c096fea4f 100644
--- a/nixpkgs/pkgs/development/libraries/gsasl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gsasl/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "GNU SASL, Simple Authentication and Security Layer library";
+    mainProgram = "gsasl";
 
     longDescription =
       '' GNU SASL is a library that implements the IETF Simple
diff --git a/nixpkgs/pkgs/development/libraries/gsignond/default.nix b/nixpkgs/pkgs/development/libraries/gsignond/default.nix
index 912054eb85c3..863ac7ba4bb2 100644
--- a/nixpkgs/pkgs/development/libraries/gsignond/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gsignond/default.nix
@@ -52,6 +52,7 @@ unwrapped = stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "D-Bus service which performs user authentication on behalf of its clients";
+    mainProgram = "gsignond";
     homepage = "https://gitlab.com/accounts-sso/gsignond";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/libraries/gsound/default.nix b/nixpkgs/pkgs/development/libraries/gsound/default.nix
index 6c5c98b77d7f..3c7049e92efe 100644
--- a/nixpkgs/pkgs/development/libraries/gsound/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gsound/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Projects/GSound";
     description = "Small library for playing system sounds";
+    mainProgram = "gsound-play";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/gspell/default.nix b/nixpkgs/pkgs/development/libraries/gspell/default.nix
index c4d15352020a..f1b8733cf84b 100644
--- a/nixpkgs/pkgs/development/libraries/gspell/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gspell/default.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A spell-checking library for GTK applications";
+    mainProgram = "gspell-app1";
     homepage = "https://wiki.gnome.org/Projects/gspell";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/development/libraries/gss/default.nix b/nixpkgs/pkgs/development/libraries/gss/default.nix
index 3eacad32f813..883d68d42c6a 100644
--- a/nixpkgs/pkgs/development/libraries/gss/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gss/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.gnu.org/software/gss/";
     description = "Generic Security Service";
+    mainProgram = "gss";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/gssdp/tools.nix b/nixpkgs/pkgs/development/libraries/gssdp/tools.nix
index 5fcd0219a945..1d5d25e6ef4f 100644
--- a/nixpkgs/pkgs/development/libraries/gssdp/tools.nix
+++ b/nixpkgs/pkgs/development/libraries/gssdp/tools.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Device Sniffer tool based on GSSDP framework";
+    mainProgram = "gssdp-device-sniffer";
     homepage = "http://www.gupnp.org/";
     license = licenses.lgpl2Plus;
     maintainers = gssdp_1_6.meta.maintainers;
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
index bee80e03289c..bec1cb762ce4 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -354,6 +354,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GStreamer Bad Plugins";
+    mainProgram = "gst-transcoder-1.0";
     homepage = "https://gstreamer.freedesktop.org";
     longDescription = ''
       a set of plug-ins that aren't up to par compared to the
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
index bf5dddf5a732..adb737bb1be7 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library for creation of audio/video non-linear editors";
+    mainProgram = "ges-launch-1.0";
     homepage = "https://gstreamer.freedesktop.org";
     license = licenses.lgpl2Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/rs/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/rs/default.nix
index 708a735939af..eeef11e9a464 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/rs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/rs/default.nix
@@ -248,6 +248,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GStreamer plugins written in Rust";
+    mainProgram = "gst-webrtc-signalling-server";
     homepage = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs";
     license = with licenses; [ mpl20 asl20 mit lgpl21Plus ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/gtdialog/default.nix b/nixpkgs/pkgs/development/libraries/gtdialog/default.nix
index d7e60659a5ea..6a09d8cbe9e2 100644
--- a/nixpkgs/pkgs/development/libraries/gtdialog/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gtdialog/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Cross-platform helper for creating interactive dialogs";
+    mainProgram = "gtdialog";
     license = licenses.mit;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix b/nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix
index 5ecfc299edd4..c137eb608132 100644
--- a/nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A library to create panels and other desktop components for Wayland using the Layer Shell protocol";
+    mainProgram = "gtk-layer-demo";
     homepage = "https://github.com/wmww/gtk-layer-shell";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ eonpatapon donovanglover ];
diff --git a/nixpkgs/pkgs/development/libraries/gtk4-layer-shell/default.nix b/nixpkgs/pkgs/development/libraries/gtk4-layer-shell/default.nix
index d69970193080..e41735fb7129 100644
--- a/nixpkgs/pkgs/development/libraries/gtk4-layer-shell/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk4-layer-shell/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A library to create panels and other desktop components for Wayland using the Layer Shell protocol and GTK4";
+    mainProgram = "gtk4-layer-demo";
     license = licenses.mit;
     maintainers = with maintainers; [ donovanglover ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/gupnp/1.6.nix b/nixpkgs/pkgs/development/libraries/gupnp/1.6.nix
index eb33748c4589..44ae478e42f5 100644
--- a/nixpkgs/pkgs/development/libraries/gupnp/1.6.nix
+++ b/nixpkgs/pkgs/development/libraries/gupnp/1.6.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.gupnp.org/";
     description = "An implementation of the UPnP specification";
+    mainProgram = "gupnp-binding-tool-1.6";
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/development/libraries/gupnp/default.nix b/nixpkgs/pkgs/development/libraries/gupnp/default.nix
index 4a8b250d2644..d9e9f483a63b 100644
--- a/nixpkgs/pkgs/development/libraries/gupnp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gupnp/default.nix
@@ -96,6 +96,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.gupnp.org/";
     description = "An implementation of the UPnP specification";
+    mainProgram = "gupnp-binding-tool-1.2";
     license = licenses.lgpl2Plus;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/libraries/gusb/default.nix b/nixpkgs/pkgs/development/libraries/gusb/default.nix
index d6fe70440132..515eeb7de975 100644
--- a/nixpkgs/pkgs/development/libraries/gusb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gusb/default.nix
@@ -82,6 +82,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GLib libusb wrapper";
+    mainProgram = "gusbcmd";
     homepage = "https://github.com/hughsie/libgusb";
     license = licenses.lgpl21;
     maintainers = [ maintainers.marcweber ];
diff --git a/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix b/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix
index 814b6042544c..72ec69bc177b 100644
--- a/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix
+++ b/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix
@@ -111,7 +111,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "An OpenType text shaping engine";
     homepage = "https://harfbuzz.github.io/";
-    changelog = "https://github.com/harfbuzz/harfbuzz/raw/${version}/NEWS";
+    changelog = "https://github.com/harfbuzz/harfbuzz/raw/${finalAttrs.version}/NEWS";
     maintainers = [ maintainers.eelco ];
     license = licenses.mit;
     platforms = platforms.unix ++ platforms.windows;
diff --git a/nixpkgs/pkgs/development/libraries/hotpatch/default.nix b/nixpkgs/pkgs/development/libraries/hotpatch/default.nix
index 66be524a86ca..7dcf09c5c5b2 100644
--- a/nixpkgs/pkgs/development/libraries/hotpatch/default.nix
+++ b/nixpkgs/pkgs/development/libraries/hotpatch/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Hot patching executables on Linux using .so file injection";
+    mainProgram = "hotpatcher";
     homepage = src.meta.homepage;
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/libraries/htmlcxx/default.nix b/nixpkgs/pkgs/development/libraries/htmlcxx/default.nix
index 41e86b275fe4..f42674e902f0 100644
--- a/nixpkgs/pkgs/development/libraries/htmlcxx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/htmlcxx/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://htmlcxx.sourceforge.net/";
     description = "A simple non-validating css1 and html parser for C++";
+    mainProgram = "htmlcxx";
     license = licenses.lgpl2;
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/development/libraries/hyphen/default.nix b/nixpkgs/pkgs/development/libraries/hyphen/default.nix
index ed3980f7a90d..122834570cfa 100644
--- a/nixpkgs/pkgs/development/libraries/hyphen/default.nix
+++ b/nixpkgs/pkgs/development/libraries/hyphen/default.nix
@@ -19,6 +19,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A text hyphenation library";
+    mainProgram = "substrings.pl";
     homepage = "https://sourceforge.net/projects/hunspell/files/Hyphen/";
     platforms = platforms.all;
     license = with licenses; [ gpl2 lgpl21 mpl11 ];
diff --git a/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix b/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix
index 58eba3ddc6d9..6d21c7bc6e1a 100644
--- a/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-gmmlib";
-  version = "22.3.17";
+  version = "22.3.18";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "gmmlib";
     rev = "intel-gmmlib-${version}";
-    sha256 = "sha256-9utlENByIQSayKTdSJapLBWMI2gFpOReNZe7bpbEoj8=";
+    sha256 = "sha256-woEYEgvwf12aWCeYqSiosQAUJErGaEP3q8JER971lys=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix b/nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix
index b20b6782d9b0..506281a7e6e9 100644
--- a/nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Intel Media SDK";
+    mainProgram = "mfx-tracer-config";
     license = licenses.mit;
     maintainers = with maintainers; [ midchildan ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/development/libraries/ip2location-c/default.nix b/nixpkgs/pkgs/development/libraries/ip2location-c/default.nix
index 43db1ac56b09..0e74478982f3 100644
--- a/nixpkgs/pkgs/development/libraries/ip2location-c/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ip2location-c/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library to look up locations of host names and IP addresses";
+    mainProgram = "ip2location";
     longDescription = ''
       A C library to find the country, region, city,coordinates,
       zip code, time zone, ISP, domain name, connection type, area code,
diff --git a/nixpkgs/pkgs/development/libraries/isa-l/default.nix b/nixpkgs/pkgs/development/libraries/isa-l/default.nix
index d81f1120742a..88fcbc04d586 100644
--- a/nixpkgs/pkgs/development/libraries/isa-l/default.nix
+++ b/nixpkgs/pkgs/development/libraries/isa-l/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A collection of optimised low-level functions targeting storage applications";
+    mainProgram = "igzip";
     license = licenses.bsd3;
     homepage = "https://github.com/intel/isa-l";
     maintainers = with maintainers; [ jbedo ];
diff --git a/nixpkgs/pkgs/development/libraries/itk/generic.nix b/nixpkgs/pkgs/development/libraries/itk/generic.nix
index 652fce4a6797..be59969aaecb 100644
--- a/nixpkgs/pkgs/development/libraries/itk/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/itk/generic.nix
@@ -109,6 +109,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Insight Segmentation and Registration Toolkit";
+    mainProgram = "itkTestDriver";
     homepage = "https://www.itk.org";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [viric];
diff --git a/nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix b/nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix
index 7827c1788dca..4a226a22c4de 100644
--- a/nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "1.26.0";
+  version = "1.26.1";
   pname = "commons-compress";
 
   src = fetchurl {
     url    = "mirror://apache/commons/compress/binaries/${pname}-${version}-bin.tar.gz";
-    sha256 = "sha256-AXdkqMrzTtURpPXKOmXxo0RnfFtflcDf6mmVmqVFz5k=";
+    sha256 = "sha256-PVZ4hltIprOeT3UEH3+xJ+TcZLekHV7cuw16rMmx/Rk=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/java/commons/logging/default.nix b/nixpkgs/pkgs/development/libraries/java/commons/logging/default.nix
index 71832498c34a..085efc6e52b5 100644
--- a/nixpkgs/pkgs/development/libraries/java/commons/logging/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/commons/logging/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "commons-logging";
-  version = "1.2";
+  version = "1.3.0";
 
   src = fetchurl {
     url    = "mirror://apache/commons/logging/binaries/commons-logging-${version}-bin.tar.gz";
-    sha256 = "1gc70pmcv0x6ibl89jglmr22f8zpr63iaifi49nrq399qw2qhx9z";
+    sha256 = "sha256-ij6jOi1Y/iQ/9Ht41nKtmOdZCvf0NmNseFGxBpyq1fg=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/java/cup/default.nix b/nixpkgs/pkgs/development/libraries/java/cup/default.nix
index 2f673a8e5a67..65df9d6cfa22 100644
--- a/nixpkgs/pkgs/development/libraries/java/cup/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/cup/default.nix
@@ -4,7 +4,7 @@
 , ant
 , jdk
 , makeWrapper
-, canonicalize-jars-hook
+, stripJavaArchivesHook
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
     ant
     jdk
     makeWrapper
-    canonicalize-jars-hook
+    stripJavaArchivesHook
   ];
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/java/hydra-ant-logger/default.nix b/nixpkgs/pkgs/development/libraries/java/hydra-ant-logger/default.nix
index 96b6cd05ed1a..8f7282df0bb2 100644
--- a/nixpkgs/pkgs/development/libraries/java/hydra-ant-logger/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/hydra-ant-logger/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , ant
 , jdk
-, canonicalize-jars-hook
+, stripJavaArchivesHook
 }:
 
 stdenv.mkDerivation {
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [
     ant
     jdk
-    canonicalize-jars-hook
+    stripJavaArchivesHook
   ];
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/java/jflex/default.nix b/nixpkgs/pkgs/development/libraries/java/jflex/default.nix
index 90e4d4329d5e..3a55febff294 100644
--- a/nixpkgs/pkgs/development/libraries/java/jflex/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/jflex/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://www.jflex.de/";
     description = "Lexical analyzer generator for Java, written in Java";
+    mainProgram = "jflex";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/libraries/java/lombok/default.nix b/nixpkgs/pkgs/development/libraries/java/lombok/default.nix
index 017f0581dc93..f08c860f57f6 100644
--- a/nixpkgs/pkgs/development/libraries/java/lombok/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/lombok/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lombok";
-  version = "1.18.30";
+  version = "1.18.32";
 
   src = fetchurl {
     url = "https://projectlombok.org/downloads/lombok-${version}.jar";
-    sha256 = "sha256-1+4SLu4erutFGCqJ/zb8LdCGhY0bL1S2Fcb+97odYBI=";
+    sha256 = "sha256-l1dGdOKiX1Z6MTc2rOAN+Hh9RD3jFkB9V/yHfZ8Zpl0=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A library that can write a lot of boilerplate for your Java project";
+    mainProgram = "lombok";
     platforms = lib.platforms.all;
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/development/libraries/java/swt/default.nix b/nixpkgs/pkgs/development/libraries/java/swt/default.nix
index 4c900ed21ac6..2d3f4eeb6575 100644
--- a/nixpkgs/pkgs/development/libraries/java/swt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/swt/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, canonicalize-jars-hook
+, stripJavaArchivesHook
 , fetchzip
 , pkg-config
 , atk
@@ -58,7 +58,7 @@ in stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    canonicalize-jars-hook
+    stripJavaArchivesHook
     pkg-config
   ];
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/jbig2dec/default.nix b/nixpkgs/pkgs/development/libraries/jbig2dec/default.nix
index af99944dae72..f0938df820bf 100644
--- a/nixpkgs/pkgs/development/libraries/jbig2dec/default.nix
+++ b/nixpkgs/pkgs/development/libraries/jbig2dec/default.nix
@@ -25,7 +25,8 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://www.jbig2dec.com/";
     description = "Decoder implementation of the JBIG2 image compression format";
-    license = lib.licenses.agpl3;
+    mainProgram = "jbig2dec";
+    license = lib.licenses.agpl3Only;
     platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/jellyfin-ffmpeg/default.nix b/nixpkgs/pkgs/development/libraries/jellyfin-ffmpeg/default.nix
index fdce5118e6b3..750a5aa8d002 100644
--- a/nixpkgs/pkgs/development/libraries/jellyfin-ffmpeg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/jellyfin-ffmpeg/default.nix
@@ -3,16 +3,20 @@
 , lib
 }:
 
-ffmpeg_6-full.overrideAttrs (old: rec {
-  pname = "jellyfin-ffmpeg";
+let
   version = "6.0.1-3";
+in
 
-  src = fetchFromGitHub {
+(ffmpeg_6-full.override {
+  inherit version; # Important! This sets the ABI.
+  source = fetchFromGitHub {
     owner = "jellyfin";
     repo = "jellyfin-ffmpeg";
     rev = "v${version}";
     hash = "sha256-UINiXO61nB/AL0HJJy7G7emujakk/mQv81aUioyJz0Y=";
   };
+}).overrideAttrs (old: {
+  pname = "jellyfin-ffmpeg";
 
   # Clobber upstream patches as they don't apply to the Jellyfin fork
   patches = [];
diff --git a/nixpkgs/pkgs/development/libraries/jemalloc/default.nix b/nixpkgs/pkgs/development/libraries/jemalloc/default.nix
index 8a3b8658fbb8..902c0d77739c 100644
--- a/nixpkgs/pkgs/development/libraries/jemalloc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/jemalloc/default.nix
@@ -48,7 +48,6 @@ stdenv.mkDerivation rec {
   ;
 
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-error=array-bounds";
-  env.NIX_LDFLAGS = lib.optionalString (stdenv.cc.libcxx != null) "-l${stdenv.cc.libcxx.cxxabi.libName}";
 
   # Tries to link test binaries binaries dynamically and fails
   doCheck = !stdenv.hostPlatform.isStatic;
diff --git a/nixpkgs/pkgs/development/libraries/jose/default.nix b/nixpkgs/pkgs/development/libraries/jose/default.nix
index 795fb8244c85..656b014b733d 100644
--- a/nixpkgs/pkgs/development/libraries/jose/default.nix
+++ b/nixpkgs/pkgs/development/libraries/jose/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "C-language implementation of Javascript Object Signing and Encryption";
+    mainProgram = "jose";
     homepage = "https://github.com/latchset/jose";
     maintainers = with lib.maintainers; [ ];
     license = lib.licenses.asl20;
diff --git a/nixpkgs/pkgs/development/libraries/json-fortran/default.nix b/nixpkgs/pkgs/development/libraries/json-fortran/default.nix
index 422248520fc4..410a767f9991 100644
--- a/nixpkgs/pkgs/development/libraries/json-fortran/default.nix
+++ b/nixpkgs/pkgs/development/libraries/json-fortran/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "json-fortran";
-  version = "8.3.0";
+  version = "8.4.0";
 
   src = fetchFromGitHub {
     owner = "jacobwilliams";
     repo = pname;
     rev = version;
-    hash = "sha256-96W9bzWEZ3EN4wtnDT3G3pvLdcI4SIhGJWBVPU3rNZ4=";
+    hash = "sha256-qy3CK8Op3YVNpXjq60UYq9V9qWBEXpX/li/lYxXW9Fk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/kdb/default.nix b/nixpkgs/pkgs/development/libraries/kdb/default.nix
index f9aa5dc369c6..d3688442f898 100644
--- a/nixpkgs/pkgs/development/libraries/kdb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kdb/default.nix
@@ -42,6 +42,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A database connectivity and creation framework for various database vendors";
+    mainProgram = "kdb3_sqlite3_dump";
     license = licenses.lgpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ zraexy ];
diff --git a/nixpkgs/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix b/nixpkgs/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
index 57fe21a27c7b..330657f41fd0 100644
--- a/nixpkgs/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
+++ b/nixpkgs/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Official Khronos OpenCL ICD Loader";
+    mainProgram = "cllayerinfo";
     homepage = "https://github.com/KhronosGroup/OpenCL-ICD-Loader";
     license = licenses.asl20;
     maintainers = with maintainers; [ davidtwco ];
diff --git a/nixpkgs/pkgs/development/libraries/languagemachines/libfolia.nix b/nixpkgs/pkgs/development/libraries/languagemachines/libfolia.nix
index 6cc5bcade205..ec7129396540 100644
--- a/nixpkgs/pkgs/development/libraries/languagemachines/libfolia.nix
+++ b/nixpkgs/pkgs/development/libraries/languagemachines/libfolia.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A C++ API for FoLiA documents; an XML-based linguistic annotation format.";
+    mainProgram = "folialint";
     homepage    = "https://proycon.github.io/folia/";
     license     = licenses.gpl3;
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/languagemachines/timbl.nix b/nixpkgs/pkgs/development/libraries/languagemachines/timbl.nix
index 1585798170b3..e1884e56132d 100644
--- a/nixpkgs/pkgs/development/libraries/languagemachines/timbl.nix
+++ b/nixpkgs/pkgs/development/libraries/languagemachines/timbl.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "TiMBL implements several memory-based learning algorithms";
+    mainProgram = "timbl";
     homepage    = "https://github.com/LanguageMachines/timbl/";
     license     = licenses.gpl3;
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/languagemachines/ucto.nix b/nixpkgs/pkgs/development/libraries/languagemachines/ucto.nix
index f707d9fb8b6e..6a3e31bcd553 100644
--- a/nixpkgs/pkgs/development/libraries/languagemachines/ucto.nix
+++ b/nixpkgs/pkgs/development/libraries/languagemachines/ucto.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A rule-based tokenizer for natural language";
+    mainProgram = "ucto";
     homepage    = "https://languagemachines.github.io/ucto/";
     license     = licenses.gpl3;
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/lasem/default.nix b/nixpkgs/pkgs/development/libraries/lasem/default.nix
index 9c49429ece45..80a5fc0e24d0 100644
--- a/nixpkgs/pkgs/development/libraries/lasem/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lasem/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "SVG and MathML rendering library";
+    mainProgram = "lasem-render-0.4";
 
     homepage = "https://wiki.gnome.org/Projects/Lasem";
     license = lib.licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/libraries/libaacs/default.nix b/nixpkgs/pkgs/development/libraries/libaacs/default.nix
index a270051f48ab..c0d3b91885e6 100644
--- a/nixpkgs/pkgs/development/libraries/libaacs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libaacs/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.videolan.org/developers/libaacs.html";
     description = "Library to access AACS protected Blu-Ray disks";
+    mainProgram = "aacs_info";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ abbradar ];
     platforms = with platforms; linux;
diff --git a/nixpkgs/pkgs/development/libraries/libadwaita/default.nix b/nixpkgs/pkgs/development/libraries/libadwaita/default.nix
index c46d69efbdc8..bb520e7c2274 100644
--- a/nixpkgs/pkgs/development/libraries/libadwaita/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libadwaita/default.nix
@@ -22,7 +22,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libadwaita";
-  version = "1.4.3";
+  version = "1.4.4";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "devdoc"; # demo app
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "GNOME";
     repo = "libadwaita";
     rev = finalAttrs.version;
-    hash = "sha256-ctHAN0SY6k68jaBpmIpMm8DngC9DPiL1vAmGhECpNic=";
+    hash = "sha256-AZP5OH/LIroBeKioe7AIVx0FvFdTpWJ1INdRPZcjmHQ=";
   };
 
   depsBuildBuild = [
@@ -78,6 +78,7 @@ stdenv.mkDerivation (finalAttrs: {
   # not ok /Adwaita/ButtonContent/style_class_button - Gdk-FATAL-CRITICAL:
   # gdk_macos_monitor_get_workarea: assertion 'GDK_IS_MACOS_MONITOR (self)' failed
   doCheck = !stdenv.isDarwin;
+  separateDebugInfo = true;
 
   checkPhase = ''
     runHook preCheck
@@ -117,6 +118,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     changelog = "https://gitlab.gnome.org/GNOME/libadwaita/-/blob/${finalAttrs.src.rev}/NEWS";
     description = "Library to help with developing UI for mobile devices using GTK/GNOME";
+    mainProgram = "adwaita-1-demo";
     homepage = "https://gitlab.gnome.org/GNOME/libadwaita";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members ++ (with maintainers; [ dotlambda ]);
diff --git a/nixpkgs/pkgs/development/libraries/libagar/libagar_test.nix b/nixpkgs/pkgs/development/libraries/libagar/libagar_test.nix
index c54a7957f436..e365479f90a5 100644
--- a/nixpkgs/pkgs/development/libraries/libagar/libagar_test.nix
+++ b/nixpkgs/pkgs/development/libraries/libagar/libagar_test.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "Tests for libagar";
+    mainProgram = "agartest";
     homepage = "http://libagar.org/index.html";
     license = with licenses; bsd3;
     maintainers = with maintainers; [ ramkromberg ];
diff --git a/nixpkgs/pkgs/development/libraries/libajantv2/default.nix b/nixpkgs/pkgs/development/libraries/libajantv2/default.nix
index d0d94c2d125a..89d609b327ab 100644
--- a/nixpkgs/pkgs/development/libraries/libajantv2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libajantv2/default.nix
@@ -6,6 +6,9 @@
 , pkg-config
 }:
 
+# Warning: We are aware that the upstream changed and there are new releases,
+# this got initally packaged for obs-studio which appears to fail to build even upstream with the new version.
+# https://github.com/NixOS/nixpkgs/pull/296191 / https://github.com/obsproject/obs-studio/pull/10037
 stdenv.mkDerivation rec {
   pname = "libajantv2";
   version = "16.2-bugfix5";
@@ -29,7 +32,7 @@ stdenv.mkDerivation rec {
     description = "AJA NTV2 Open Source Static Libs and Headers for building applications that only wish to statically link against";
     homepage = "https://github.com/aja-video/ntv2";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ sebtm ];
+    maintainers = with maintainers; [];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libarchive-qt/default.nix b/nixpkgs/pkgs/development/libraries/libarchive-qt/default.nix
index 14608b9f970d..77f498967ecc 100644
--- a/nixpkgs/pkgs/development/libraries/libarchive-qt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libarchive-qt/default.nix
@@ -26,6 +26,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A Qt based archiving solution with libarchive backend";
+    mainProgram = "archiver";
     homepage = "https://gitlab.com/marcusbritanicus/libarchive-qt";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ dan4ik605743 ];
diff --git a/nixpkgs/pkgs/development/libraries/libassuan/default.nix b/nixpkgs/pkgs/development/libraries/libassuan/default.nix
index 60c13040ae5e..9998bfdceb7b 100644
--- a/nixpkgs/pkgs/development/libraries/libassuan/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libassuan/default.nix
@@ -1,12 +1,12 @@
-{ fetchurl, lib, stdenv, gettext, npth, libgpg-error, buildPackages }:
+{ fetchurl, lib, stdenv, gettext, npth, libgpg-error, buildPackages, gitUpdater }:
 
 stdenv.mkDerivation rec {
   pname = "libassuan";
-  version = "2.5.6";
+  version = "2.5.7";
 
   src = fetchurl {
     url = "mirror://gnupg/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-6f0nIY1TlJBOTjl4j5sXQnEcPmtBaJoxqjOAvVqk9CY=";
+    sha256 = "sha256-AQMIH/wng4ouUEeRU8oQXoc9PWXYqVkygunJTH5q+3Y=";
   };
 
   outputs = [ "out" "dev" "info" ];
@@ -27,15 +27,23 @@ stdenv.mkDerivation rec {
     sed -i 's,#include <gpg-error.h>,#include "${libgpg-error.dev}/include/gpg-error.h",g' $dev/include/assuan.h
   '';
 
+  passthru.updateScript = gitUpdater {
+    url = "https://dev.gnupg.org/source/libassuan.git";
+    rev-prefix = "libassuan-";
+    ignoredVersions = ".*-base";
+  };
+
   meta = with lib; {
     description = "IPC library used by GnuPG and related software";
+    mainProgram = "libassuan-config";
     longDescription = ''
       Libassuan is a small library implementing the so-called Assuan
       protocol.  This protocol is used for IPC between most newer
       GnuPG components.  Both, server and client side functions are
       provided.
     '';
-    homepage = "http://gnupg.org";
+    homepage = "https://gnupg.org/software/libassuan/";
+    changelog = "https://dev.gnupg.org/source/libassuan/browse/master/NEWS;libassuan-${version}";
     license = licenses.lgpl2Plus;
     platforms = platforms.all;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/libraries/libast/default.nix b/nixpkgs/pkgs/development/libraries/libast/default.nix
index f4dae188f31c..49db79aaf978 100644
--- a/nixpkgs/pkgs/development/libraries/libast/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libast/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Library of Assorted Spiffy Things";
+    mainProgram = "libast-config";
     license = licenses.bsd2;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/libbson/default.nix b/nixpkgs/pkgs/development/libraries/libbson/default.nix
deleted file mode 100644
index e03d7c194847..000000000000
--- a/nixpkgs/pkgs/development/libraries/libbson/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ fetchFromGitHub, perl, lib, stdenv, cmake }:
-
-stdenv.mkDerivation rec {
-  pname = "libbson";
-  version = "1.9.5";
-
-  src = fetchFromGitHub {
-    owner = "mongodb";
-    repo = "libbson";
-    rev = version;
-    sha256 = "16rmzxhhmbvhp4q6qac5j9c74z2pcg5raag5w16mynzikdd2l05b";
-  };
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ perl ];
-
-  meta = with lib; {
-    description = "A C Library for parsing, editing, and creating BSON documents";
-    homepage = "https://github.com/mongodb/libbson";
-    license = licenses.asl20;
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/libbytesize/default.nix b/nixpkgs/pkgs/development/libraries/libbytesize/default.nix
index 6604bb322294..08fc56931250 100644
--- a/nixpkgs/pkgs/development/libraries/libbytesize/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libbytesize/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://github.com/storaged-project/libbytesize";
     description = "A tiny library providing a C 'class' for working with arbitrary big sizes in bytes";
+    mainProgram = "bscalc";
     license = lib.licenses.lgpl2Plus;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/libcanberra/default.nix b/nixpkgs/pkgs/development/libraries/libcanberra/default.nix
index cda60e4d215f..684c6d9d242e 100644
--- a/nixpkgs/pkgs/development/libraries/libcanberra/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcanberra/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An implementation of the XDG Sound Theme and Name Specifications";
+    mainProgram = "canberra-gtk-play";
     longDescription = ''
       libcanberra is an implementation of the XDG Sound Theme and Name
       Specifications, for generating event sounds on free desktops
diff --git a/nixpkgs/pkgs/development/libraries/libcdada/default.nix b/nixpkgs/pkgs/development/libraries/libcdada/default.nix
index e78d845cf5be..5d1d295f74a8 100644
--- a/nixpkgs/pkgs/development/libraries/libcdada/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcdada/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libcdada";
-  version = "0.4.0";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "msune";
     repo = "libcdada";
     rev = "v${version}";
-    hash = "sha256-vUasCukDRZYB67eu87ckEZG9i6rsNf0aKY2kZsVezRE=";
+    hash = "sha256-rrBmsXBatvaf/u/UVHpTm9YUo+gsQv1rtuprpRF/3kU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libcdaudio/default.nix b/nixpkgs/pkgs/development/libraries/libcdaudio/default.nix
index 134f9d7f8f33..fa873672dbcf 100644
--- a/nixpkgs/pkgs/development/libraries/libcdaudio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcdaudio/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A portable library for controlling audio CDs";
+    mainProgram = "libcdaudio-config";
     homepage = "https://libcdaudio.sourceforge.net";
     platforms = lib.platforms.linux;
     license = lib.licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/libraries/libchardet/default.nix b/nixpkgs/pkgs/development/libraries/libchardet/default.nix
index 47ce911a6951..a362e8ab2bb7 100644
--- a/nixpkgs/pkgs/development/libraries/libchardet/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libchardet/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Mozilla's Universal Charset Detector C/C++ API";
+    mainProgram = "chardet-config";
     homepage = "ftp://ftp.oops.org/pub/oops/libchardet/index.html";
     license = licenses.mpl11;
     maintainers = [ maintainers.abbradar ];
diff --git a/nixpkgs/pkgs/development/libraries/libcifpp/default.nix b/nixpkgs/pkgs/development/libraries/libcifpp/default.nix
index 782844453a12..a41736004ecb 100644
--- a/nixpkgs/pkgs/development/libraries/libcifpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcifpp/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libcifpp";
-  version = "7.0.1";
+  version = "7.0.3";
 
   src = fetchFromGitHub {
     owner = "PDB-REDO";
     repo = "libcifpp";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-13jJH7YFlnb9hltCo/3kygPkXoE3ZZwZkG/ezbOxE2w=";
+    hash = "sha256-YRK648gJ2UlgeG5GHMjTid1At0lYt7Zqu4/+O5WG/OM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libcork/default.nix b/nixpkgs/pkgs/development/libraries/libcork/default.nix
index 305ba24e280e..87a068c24d1a 100644
--- a/nixpkgs/pkgs/development/libraries/libcork/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcork/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/dcreager/libcork";
     description = "A simple, easily embeddable cross-platform C library";
+    mainProgram = "cork-hash";
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/nixpkgs/pkgs/development/libraries/libcredis/default.nix b/nixpkgs/pkgs/development/libraries/libcredis/default.nix
index e0224d865d55..3515bce2da20 100644
--- a/nixpkgs/pkgs/development/libraries/libcredis/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcredis/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "C client library for Redis (key-value database)";
+    mainProgram = "credis-test";
     homepage = "https://code.google.com/archive/p/credis/";
     license = licenses.bsd3; # from homepage
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/libcryptui/default.nix b/nixpkgs/pkgs/development/libraries/libcryptui/default.nix
index 89b7dfa66444..c0537e7e367b 100644
--- a/nixpkgs/pkgs/development/libraries/libcryptui/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcryptui/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Interface components for OpenPGP";
+    mainProgram = "seahorse-daemon";
     homepage = "https://gitlab.gnome.org/GNOME/libcryptui";
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/libctl/default.nix b/nixpkgs/pkgs/development/libraries/libctl/default.nix
index d7fed2415df0..6969f6166beb 100644
--- a/nixpkgs/pkgs/development/libraries/libctl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libctl/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Guile-based library for supporting flexible control files in scientific simulations";
+    mainProgram = "gen-ctl-io";
     homepage = "https://github.com/NanoComp/libctl";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ carpinchomug ];
diff --git a/nixpkgs/pkgs/development/libraries/libdatachannel/default.nix b/nixpkgs/pkgs/development/libraries/libdatachannel/default.nix
index 64351a85a9ae..9c090399dbc5 100644
--- a/nixpkgs/pkgs/development/libraries/libdatachannel/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdatachannel/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libdatachannel";
-  version = "0.19.5";
+  version = "0.20.2";
 
   src = fetchFromGitHub {
     owner = "paullouisageneau";
-    repo = pname;
+    repo = "libdatachannel";
     rev = "v${version}";
-    hash = "sha256-XTfe0NqDQWx4ISgEiUbzACH9csaG+IrUvwss07dnz80=";
+    hash = "sha256-bBSsD845iwCMA7TdMBxzezjNbMaGwvRq6rvY/8NLYRU=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/libdazzle/default.nix b/nixpkgs/pkgs/development/libraries/libdazzle/default.nix
index ec616b4a5fab..38ba2e3b3615 100644
--- a/nixpkgs/pkgs/development/libraries/libdazzle/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdazzle/default.nix
@@ -73,6 +73,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A library to delight your users with fancy features";
+    mainProgram = "dazzle-list-counters";
     longDescription = ''
       The libdazzle library is a companion library to GObject and GTK. It
       provides various features that we wish were in the underlying library but
diff --git a/nixpkgs/pkgs/development/libraries/libdbi-drivers/default.nix b/nixpkgs/pkgs/development/libraries/libdbi-drivers/default.nix
index 461a3c0b7bbd..f1352cd47b92 100644
--- a/nixpkgs/pkgs/development/libraries/libdbi-drivers/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdbi-drivers/default.nix
@@ -16,6 +16,11 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libdbi sqlite postgresql ] ++ lib.optional (libmysqlclient != null) libmysqlclient;
 
+  patches = [
+    # https://sourceforge.net/p/libdbi-drivers/libdbi-drivers/ci/24f48b86c8988ee3aaebc5f303d71e9d789f77b6
+    ./libdbi-drivers-0.9.0-buffer_overflow.patch
+  ];
+
   postPatch = ''
     sed -i '/SQLITE3_LIBS/ s/-lsqlite/-lsqlite3/' configure;
   '';
@@ -41,6 +46,11 @@ stdenv.mkDerivation rec {
     "--with-pgsql_libdir=${postgresql.lib}/lib"
   ];
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-error=incompatible-function-pointer-types"
+    "-Wno-error=int-conversion"
+  ]);
+
   installFlags = [ "DESTDIR=\${out}" ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/libraries/libdbi-drivers/libdbi-drivers-0.9.0-buffer_overflow.patch b/nixpkgs/pkgs/development/libraries/libdbi-drivers/libdbi-drivers-0.9.0-buffer_overflow.patch
new file mode 100644
index 000000000000..1891c1a143ba
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libdbi-drivers/libdbi-drivers-0.9.0-buffer_overflow.patch
@@ -0,0 +1,11 @@
+--- a/drivers/sqlite3/dbd_sqlite3.c
++++ b/drivers/sqlite3/dbd_sqlite3.c
+@@ -1451,7 +1451,7 @@ static int getTables(char** tables, int
+ 		    break;
+ 		  }
+ 
+-		  word_lower[item-start+1];
++		  char word_lower[item-start+1];
+ 		  strncpy(word_lower,start,item-start);
+ 		  word_lower[item-start] = '\0';
+ 		  int i = 0;
diff --git a/nixpkgs/pkgs/development/libraries/libde265/default.nix b/nixpkgs/pkgs/development/libraries/libde265/default.nix
index 6259fa5b4839..e4dfba60fe99 100644
--- a/nixpkgs/pkgs/development/libraries/libde265/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libde265/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation (finalAttrs: rec {
   meta = {
     homepage = "https://github.com/strukturag/libde265";
     description = "Open h.265 video codec implementation";
+    mainProgram = "dec265";
     license = lib.licenses.lgpl3;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ gebner ];
diff --git a/nixpkgs/pkgs/development/libraries/libdeflate/default.nix b/nixpkgs/pkgs/development/libraries/libdeflate/default.nix
index 7aa0cef5a81d..52bf3a272bab 100644
--- a/nixpkgs/pkgs/development/libraries/libdeflate/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdeflate/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.mit;
     homepage = "https://github.com/ebiggers/libdeflate";
     changelog = "https://github.com/ebiggers/libdeflate/blob/v${finalAttrs.version}/NEWS.md";
-    platforms = platforms.unix;
+    platforms = platforms.unix ++ platforms.windows;
     maintainers = with maintainers; [ orivej kaction ];
     pkgConfigModules = [ "libdeflate" ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/libdeltachat/Cargo.lock b/nixpkgs/pkgs/development/libraries/libdeltachat/Cargo.lock
index 551b2d30e951..ae5294d3104f 100644
--- a/nixpkgs/pkgs/development/libraries/libdeltachat/Cargo.lock
+++ b/nixpkgs/pkgs/development/libraries/libdeltachat/Cargo.lock
@@ -32,9 +32,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aes"
-version = "0.8.3"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2"
+checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
 dependencies = [
  "cfg-if",
  "cipher",
@@ -43,9 +43,9 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.8.6"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -115,15 +115,15 @@ dependencies = [
 
 [[package]]
 name = "anstyle"
-version = "1.0.4"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
 dependencies = [
  "backtrace",
 ]
@@ -159,7 +159,7 @@ dependencies = [
  "num-traits",
  "rusticata-macros",
  "thiserror",
- "time 0.3.30",
+ "time 0.3.34",
 ]
 
 [[package]]
@@ -198,12 +198,12 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "2.1.1"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
 dependencies = [
  "concurrent-queue",
- "event-listener 4.0.0",
+ "event-listener 5.2.0",
  "event-listener-strategy",
  "futures-core",
  "pin-project-lite",
@@ -224,12 +224,12 @@ dependencies = [
 
 [[package]]
 name = "async-imap"
-version = "0.9.4"
+version = "0.9.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d736a74edf6c327b53dd9c932eae834253470ac5f0c55770e7e133bcbf986362"
+checksum = "98892ebee4c05fc66757e600a7466f0d9bfcde338f645d64add323789f26cb36"
 dependencies = [
- "async-channel 2.1.1",
- "base64 0.21.5",
+ "async-channel 2.2.0",
+ "base64 0.21.7",
  "bytes",
  "chrono",
  "futures",
@@ -284,13 +284,13 @@ dependencies = [
 
 [[package]]
 name = "async-trait"
-version = "0.1.74"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -315,19 +315,20 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "axum"
-version = "0.6.20"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
+checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e"
 dependencies = [
  "async-trait",
  "axum-core",
- "base64 0.21.5",
- "bitflags 1.3.2",
+ "base64 0.21.7",
  "bytes",
  "futures-util",
- "http",
- "http-body",
- "hyper",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.2.0",
+ "hyper-util",
  "itoa",
  "matchit",
  "memchr",
@@ -346,23 +347,28 @@ dependencies = [
  "tower",
  "tower-layer",
  "tower-service",
+ "tracing",
 ]
 
 [[package]]
 name = "axum-core"
-version = "0.3.4"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
+checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3"
 dependencies = [
  "async-trait",
  "bytes",
  "futures-util",
- "http",
- "http-body",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
  "mime",
+ "pin-project-lite",
  "rustversion",
+ "sync_wrapper",
  "tower-layer",
  "tower-service",
+ "tracing",
 ]
 
 [[package]]
@@ -412,9 +418,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "base64"
-version = "0.21.5"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "base64ct"
@@ -445,9 +451,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
 name = "blake3"
@@ -522,9 +528,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.8.0"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
 dependencies = [
  "memchr",
  "serde",
@@ -532,25 +538,24 @@ dependencies = [
 
 [[package]]
 name = "buffer-redux"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2886ea01509598caac116942abd33ab5a88fa32acdf7e4abfa0fc489ca520c9"
+checksum = "4c9f8ddd22e0a12391d1e7ada69ec3b0da1914f1cec39c5cf977143c5b2854f5"
 dependencies = [
  "memchr",
- "safemem",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.0"
+version = "1.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
 
 [[package]]
 name = "byteorder"
@@ -585,9 +590,9 @@ dependencies = [
 
 [[package]]
 name = "cargo-platform"
-version = "0.1.5"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff"
+checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f"
 dependencies = [
  "serde",
 ]
@@ -656,23 +661,23 @@ dependencies = [
 
 [[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
  "wasm-bindgen",
- "windows-targets",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
 name = "ciborium"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
 dependencies = [
  "ciborium-io",
  "ciborium-ll",
@@ -681,15 +686,15 @@ dependencies = [
 
 [[package]]
 name = "ciborium-io"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
 
 [[package]]
 name = "ciborium-ll"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
 dependencies = [
  "ciborium-io",
  "half",
@@ -707,18 +712,18 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.10"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272"
+checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
 dependencies = [
  "clap_builder",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.4.9"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1"
+checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
 dependencies = [
  "anstyle",
  "clap_lex",
@@ -732,13 +737,11 @@ checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 
 [[package]]
 name = "clipboard-win"
-version = "4.5.0"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
+checksum = "12f9a0700e0127ba15d1d52dd742097f821cd9c65939303a44d970465040a297"
 dependencies = [
  "error-code",
- "str-buf",
- "winapi",
 ]
 
 [[package]]
@@ -755,18 +758,18 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
 name = "concurrent-queue"
-version = "2.3.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
 dependencies = [
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "const-oid"
-version = "0.9.5"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
 
 [[package]]
 name = "const_format"
@@ -824,9 +827,9 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -839,9 +842,9 @@ checksum = "fd121741cf3eb82c08dd3023eb55bf2665e5f60ec20f89760cf836ae4562e6a0"
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
@@ -886,36 +889,34 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.15"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
 
 [[package]]
 name = "crypto-bigint"
@@ -966,9 +967,9 @@ dependencies = [
 
 [[package]]
 name = "curve25519-dalek"
-version = "4.1.1"
+version = "4.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c"
+checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -989,7 +990,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1087,20 +1088,21 @@ dependencies = [
 
 [[package]]
 name = "deltachat"
-version = "1.131.9"
+version = "1.136.3"
 dependencies = [
  "ansi_term",
  "anyhow",
- "async-channel 2.1.1",
+ "async-channel 2.2.0",
  "async-imap",
  "async-native-tls",
  "async-smtp",
  "async_zip",
  "backtrace",
- "base64 0.21.5",
+ "base64 0.21.7",
  "brotli",
  "chrono",
  "criterion",
+ "deltachat-time",
  "deltachat_derive",
  "email",
  "encoded-words",
@@ -1125,6 +1127,7 @@ dependencies = [
  "num-traits",
  "num_cpus",
  "once_cell",
+ "openssl-src",
  "parking_lot",
  "percent-encoding",
  "pgp",
@@ -1134,6 +1137,7 @@ dependencies = [
  "proptest",
  "qrcodegen",
  "quick-xml",
+ "quoted_printable",
  "rand 0.8.5",
  "ratelimit",
  "regex",
@@ -1165,12 +1169,12 @@ dependencies = [
 
 [[package]]
 name = "deltachat-jsonrpc"
-version = "1.131.9"
+version = "1.136.3"
 dependencies = [
  "anyhow",
- "async-channel 2.1.1",
+ "async-channel 2.2.0",
  "axum",
- "base64 0.21.5",
+ "base64 0.21.7",
  "deltachat",
  "env_logger",
  "futures",
@@ -1189,7 +1193,7 @@ dependencies = [
 
 [[package]]
 name = "deltachat-repl"
-version = "1.131.9"
+version = "1.136.3"
 dependencies = [
  "ansi_term",
  "anyhow",
@@ -1204,7 +1208,7 @@ dependencies = [
 
 [[package]]
 name = "deltachat-rpc-server"
-version = "1.131.9"
+version = "1.136.3"
 dependencies = [
  "anyhow",
  "deltachat",
@@ -1220,16 +1224,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "deltachat-time"
+version = "1.0.0"
+
+[[package]]
 name = "deltachat_derive"
 version = "2.0.0"
 dependencies = [
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "deltachat_ffi"
-version = "1.131.9"
+version = "1.136.3"
 dependencies = [
  "anyhow",
  "deltachat",
@@ -1296,9 +1304,9 @@ dependencies = [
 
 [[package]]
 name = "deranged"
-version = "0.3.9"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
  "powerfmt",
 ]
@@ -1411,7 +1419,7 @@ dependencies = [
  "libc",
  "option-ext",
  "redox_users",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -1433,7 +1441,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1460,10 +1468,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "dsa"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48bc224a9084ad760195584ce5abb3c2c34a225fa312a128ad245a6b412b7689"
+dependencies = [
+ "digest 0.10.7",
+ "num-bigint-dig",
+ "num-traits",
+ "pkcs8 0.10.2",
+ "rfc6979 0.4.0",
+ "sha2 0.10.8",
+ "signature 2.2.0",
+ "zeroize",
+]
+
+[[package]]
 name = "dyn-clone"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
+checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
 
 [[package]]
 name = "ecdsa"
@@ -1488,7 +1512,7 @@ dependencies = [
  "elliptic-curve 0.13.8",
  "rfc6979 0.4.0",
  "signature 2.2.0",
- "spki 0.7.2",
+ "spki 0.7.3",
 ]
 
 [[package]]
@@ -1528,11 +1552,11 @@ dependencies = [
 
 [[package]]
 name = "ed25519-dalek"
-version = "2.1.0"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0"
+checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871"
 dependencies = [
- "curve25519-dalek 4.1.1",
+ "curve25519-dalek 4.1.2",
  "ed25519 2.2.3",
  "serde",
  "sha2 0.10.8",
@@ -1554,9 +1578,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "elliptic-curve"
@@ -1600,8 +1624,8 @@ dependencies = [
 
 [[package]]
 name = "email"
-version = "0.0.21"
-source = "git+https://github.com/deltachat/rust-email?branch=master#37778c89d5eb5a94b7983f3f37ff67769bde3cf9"
+version = "0.0.20"
+source = "git+https://github.com/deltachat/rust-email?branch=master#5179cd68db44101ee3d3df7bfef96f014507352b"
 dependencies = [
  "base64 0.11.0",
  "chrono",
@@ -1609,7 +1633,6 @@ dependencies = [
  "encoding",
  "lazy_static",
  "rand 0.7.3",
- "time 0.1.45",
  "version_check",
 ]
 
@@ -1727,7 +1750,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1740,14 +1763,14 @@ dependencies = [
  "num-traits",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "env_logger"
-version = "0.10.1"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -1764,23 +1787,19 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.7"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
  "libc",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "error-code"
-version = "2.3.1"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
-dependencies = [
- "libc",
- "str-buf",
-]
+checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b"
 
 [[package]]
 name = "escaper"
@@ -1799,9 +1818,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
 name = "event-listener"
-version = "4.0.0"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae"
+checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
 dependencies = [
  "concurrent-queue",
  "parking",
@@ -1810,11 +1829,11 @@ dependencies = [
 
 [[package]]
 name = "event-listener-strategy"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
+checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
 dependencies = [
- "event-listener 4.0.0",
+ "event-listener 5.2.0",
  "pin-project-lite",
 ]
 
@@ -1832,11 +1851,12 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
 
 [[package]]
 name = "fast-socks5"
-version = "0.8.2"
+version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "961ce1761191c157145a8c9f0c3ceabecd3a729d65c9a8d443674eaee3420f7e"
+checksum = "cbcc731f3c17a5053e07e6a2290918da75cd8b9b1217b419721f715674ac520c"
 dependencies = [
  "anyhow",
+ "async-trait",
  "log",
  "thiserror",
  "tokio",
@@ -1860,20 +1880,20 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fd-lock"
-version = "3.0.13"
+version = "4.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5"
+checksum = "7e5768da2206272c81ef0b5e951a41862938a6070da63bcea197899942d3b947"
 dependencies = [
  "cfg-if",
  "rustix",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "fdeflate"
-version = "0.3.1"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
@@ -1900,20 +1920,20 @@ dependencies = [
 
 [[package]]
 name = "fiat-crypto"
-version = "0.2.5"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7"
+checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382"
 
 [[package]]
 name = "filetime"
-version = "0.2.22"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.3.5",
- "windows-sys",
+ "redox_syscall 0.4.1",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1928,14 +1948,13 @@ dependencies = [
 
 [[package]]
 name = "flume"
-version = "0.10.14"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
+checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
 dependencies = [
  "futures-core",
  "futures-sink",
  "nanorand",
- "pin-project",
  "spin 0.9.8",
 ]
 
@@ -1962,9 +1981,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
@@ -1975,9 +1994,9 @@ version = "1.0.0"
 
 [[package]]
 name = "futures"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1990,9 +2009,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -2000,15 +2019,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -2017,52 +2036,51 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
-version = "2.0.1"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb"
+checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
 dependencies = [
  "fastrand",
  "futures-core",
  "futures-io",
- "memchr",
  "parking",
  "pin-project-lite",
 ]
 
 [[package]]
 name = "futures-macro"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -2100,9 +2118,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -2113,9 +2131,9 @@ dependencies = [
 
 [[package]]
 name = "gif"
-version = "0.12.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
+checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
 dependencies = [
  "color_quant",
  "weezl",
@@ -2151,16 +2169,35 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.22"
+version = "0.3.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 0.2.12",
+ "indexmap",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
+checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943"
 dependencies = [
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
  "futures-util",
- "http",
+ "http 1.1.0",
  "indexmap",
  "slab",
  "tokio",
@@ -2170,9 +2207,13 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "1.8.2"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+]
 
 [[package]]
 name = "hashbrown"
@@ -2186,9 +2227,9 @@ dependencies = [
 
 [[package]]
 name = "hashlink"
-version = "0.8.4"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
+checksum = "692eaaf7f7607518dd3cef090f1474b61edc5301d8012f09579920df68b725ee"
 dependencies = [
  "hashbrown",
 ]
@@ -2201,9 +2242,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -2224,7 +2265,7 @@ dependencies = [
  "futures-channel",
  "futures-io",
  "futures-util",
- "idna",
+ "idna 0.4.0",
  "ipnet",
  "once_cell",
  "rand 0.8.5",
@@ -2258,9 +2299,9 @@ dependencies = [
 
 [[package]]
 name = "hkdf"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
+checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
 dependencies = [
  "hmac",
 ]
@@ -2276,11 +2317,11 @@ dependencies = [
 
 [[package]]
 name = "home"
-version = "0.5.5"
+version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
 dependencies = [
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2296,9 +2337,20 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.11"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
 dependencies = [
  "bytes",
  "fnv",
@@ -2307,12 +2359,35 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "0.4.5"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+dependencies = [
+ "bytes",
+ "http 0.2.12",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-body"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+dependencies = [
+ "bytes",
+ "http 1.1.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840"
 dependencies = [
  "bytes",
- "http",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.0",
  "pin-project-lite",
 ]
 
@@ -2330,9 +2405,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "human-panic"
-version = "1.2.2"
+version = "1.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a79a67745be0cb8dd2771f03b24c2f25df98d5471fe7a595d668cfa2e6f843d"
+checksum = "c4f016c89920bbb30951a8405ecacbb4540db5524313b9445736e7e1855cf370"
 dependencies = [
  "backtrace",
  "os_info",
@@ -2359,22 +2434,22 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "hyper"
-version = "0.14.27"
+version = "0.14.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-core",
  "futures-util",
- "h2",
- "http",
- "http-body",
+ "h2 0.3.24",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "httparse",
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.10",
+ "socket2",
  "tokio",
  "tower-service",
  "tracing",
@@ -2382,23 +2457,59 @@ dependencies = [
 ]
 
 [[package]]
+name = "hyper"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "h2 0.4.2",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "smallvec",
+ "tokio",
+]
+
+[[package]]
 name = "hyper-tls"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
 dependencies = [
  "bytes",
- "hyper",
+ "hyper 0.14.28",
  "native-tls",
  "tokio",
  "tokio-native-tls",
 ]
 
 [[package]]
+name = "hyper-util"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "hyper 1.2.0",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+]
+
+[[package]]
 name = "iana-time-zone"
-version = "0.1.58"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -2443,34 +2554,44 @@ dependencies = [
 ]
 
 [[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
 name = "image"
-version = "0.24.7"
+version = "0.24.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
  "gif",
  "jpeg-decoder",
- "num-rational",
  "num-traits",
  "png",
 ]
 
 [[package]]
 name = "imap-proto"
-version = "0.16.3"
-source = "git+https://github.com/djc/tokio-imap.git?rev=01ff256a7e42a9f7d2732706f8b71a16ce93427e#01ff256a7e42a9f7d2732706f8b71a16ce93427e"
+version = "0.16.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22e70cd66882c8cb1c9802096ba75212822153c51478dc61621e1a22f6c92361"
 dependencies = [
  "nom",
 ]
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -2491,9 +2612,9 @@ version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f"
 dependencies = [
- "socket2 0.5.5",
+ "socket2",
  "widestring",
- "windows-sys",
+ "windows-sys 0.48.0",
  "winreg",
 ]
 
@@ -2506,11 +2627,12 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 [[package]]
 name = "iroh"
 version = "0.4.2"
-source = "git+https://github.com/n0-computer/iroh?branch=maint-0.4#9881b7886235035a1124e4371f7a4cd59379e51b"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85075391dcb8491a4939266334b28601052d418b37d20b33c58ffb5776adc912"
 dependencies = [
  "abao",
  "anyhow",
- "base64 0.21.5",
+ "base64 0.21.7",
  "blake3",
  "bytes",
  "default-net",
@@ -2548,16 +2670,22 @@ dependencies = [
 
 [[package]]
 name = "is-terminal"
-version = "0.4.9"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
  "hermit-abi",
- "rustix",
- "windows-sys",
+ "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
+name = "iter-read"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a598c1abae8e3456ebda517868b254b6bc2a9bb6501ffd5b9d0875bf332e048b"
+
+[[package]]
 name = "itertools"
 version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2568,26 +2696,40 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 
 [[package]]
 name = "js-sys"
-version = "0.3.65"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
+name = "k256"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b"
+dependencies = [
+ "cfg-if",
+ "ecdsa 0.16.9",
+ "elliptic-curve 0.13.8",
+ "once_cell",
+ "sha2 0.10.8",
+ "signature 2.2.0",
+]
+
+[[package]]
 name = "kamadak-exif"
 version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2598,9 +2740,9 @@ dependencies = [
 
 [[package]]
 name = "keccak"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940"
+checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654"
 dependencies = [
  "cpufeatures",
 ]
@@ -2640,9 +2782,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.150"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libm"
@@ -2656,16 +2798,16 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall 0.4.1",
 ]
 
 [[package]]
 name = "libsqlite3-sys"
-version = "0.27.0"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716"
+checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f"
 dependencies = [
  "cc",
  "openssl-sys",
@@ -2681,9 +2823,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.11"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lock_api"
@@ -2697,9 +2839,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-cache"
@@ -2712,9 +2854,9 @@ dependencies = [
 
 [[package]]
 name = "mailparse"
-version = "0.14.0"
+version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b56570f5f8c0047260d1c8b5b331f62eb9c660b9dd4071a8c46f8c7d3f280aa"
+checksum = "2d096594926cab442e054e047eb8c1402f7d5b2272573b97ba68aa40629f9757"
 dependencies = [
  "charset",
  "data-encoding",
@@ -2760,18 +2902,9 @@ checksum = "df39d232f5c40b0891c10216992c2f250c054105cb1e56f0fc9032db6203ecc1"
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
-
-[[package]]
-name = "memoffset"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
-]
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "mime"
@@ -2787,9 +2920,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -2797,13 +2930,13 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.9"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "wasi 0.11.0+wasi-snapshot-preview1",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2818,7 +2951,7 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
 ]
 
 [[package]]
@@ -2899,11 +3032,11 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.26.4"
+version = "0.27.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "cfg-if",
  "libc",
 ]
@@ -2967,42 +3100,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
 name = "num-derive"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712"
+checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "num-integer"
-version = "0.1.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
 [[package]]
 name = "num-iter"
-version = "0.1.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.4.1"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -3011,9 +3138,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
  "libm",
@@ -3030,10 +3157,31 @@ dependencies = [
 ]
 
 [[package]]
+name = "num_enum"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845"
+dependencies = [
+ "num_enum_derive",
+]
+
+[[package]]
+name = "num_enum_derive"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
+dependencies = [
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
 name = "object"
-version = "0.32.1"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
@@ -3049,9 +3197,9 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "oorandom"
@@ -3061,17 +3209,17 @@ checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
 
 [[package]]
 name = "opaque-debug"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
 
 [[package]]
 name = "openssl"
-version = "0.10.60"
+version = "0.10.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800"
+checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -3088,7 +3236,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3108,9 +3256,9 @@ dependencies = [
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.96"
+version = "0.9.99"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f"
+checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
 dependencies = [
  "cc",
  "libc",
@@ -3214,7 +3362,7 @@ dependencies = [
  "libc",
  "redox_syscall 0.4.1",
  "smallvec",
- "windows-targets",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -3258,12 +3406,12 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pgp"
-version = "0.10.2"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27e1f8e085bfa9b85763fe3ddaacbe90a09cd847b3833129153a6cb063bbe132"
+checksum = "031fa1e28c4cb54c90502ef0642a44ef10ec8349349ebe6372089f1b1ef4f297"
 dependencies = [
  "aes",
- "base64 0.21.5",
+ "base64 0.21.7",
  "bitfield",
  "block-padding",
  "blowfish",
@@ -3275,28 +3423,32 @@ dependencies = [
  "cfb-mode",
  "chrono",
  "cipher",
+ "const-oid",
  "crc24",
- "curve25519-dalek 4.1.1",
+ "curve25519-dalek 4.1.2",
  "derive_builder",
  "des",
  "digest 0.10.7",
- "ed25519-dalek 2.1.0",
+ "dsa",
+ "ed25519-dalek 2.1.1",
  "elliptic-curve 0.13.8",
  "flate2",
  "generic-array",
  "hex",
  "idea",
+ "iter-read",
+ "k256",
  "log",
  "md-5",
  "nom",
  "num-bigint-dig",
- "num-derive",
  "num-traits",
+ "num_enum",
  "p256 0.13.2",
  "p384 0.13.0",
  "rand 0.8.5",
  "ripemd",
- "rsa 0.9.5",
+ "rsa 0.9.6",
  "sha1",
  "sha2 0.10.8",
  "sha3",
@@ -3310,22 +3462,22 @@ dependencies = [
 
 [[package]]
 name = "pin-project"
-version = "1.1.3"
+version = "1.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.3"
+version = "1.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3360,7 +3512,7 @@ checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
 dependencies = [
  "der 0.7.8",
  "pkcs8 0.10.2",
- "spki 0.7.2",
+ "spki 0.7.3",
 ]
 
 [[package]]
@@ -3380,20 +3532,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
 dependencies = [
  "der 0.7.8",
- "spki 0.7.2",
+ "spki 0.7.3",
 ]
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "platforms"
-version = "3.2.0"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0"
+checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c"
 
 [[package]]
 name = "plotters"
@@ -3425,9 +3577,9 @@ dependencies = [
 
 [[package]]
 name = "png"
-version = "0.17.10"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -3438,9 +3590,9 @@ dependencies = [
 
 [[package]]
 name = "portable-atomic"
-version = "1.5.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
 
 [[package]]
 name = "postcard"
@@ -3508,6 +3660,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit 0.21.1",
+]
+
+[[package]]
 name = "proc-macro-error"
 version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3533,9 +3694,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.69"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
@@ -3546,7 +3707,7 @@ version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "lazy_static",
  "num-traits",
  "rand 0.8.5",
@@ -3564,9 +3725,9 @@ checksum = "4339fc7a1021c9c1621d87f5e3505f2805c8c105420ba2f2a4df86814590c142"
 
 [[package]]
 name = "quic-rpc"
-version = "0.6.1"
+version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d60c2fc2390baad4b9d41ae9957ae88c3095496f88e252ef50722df8b5b78d7"
+checksum = "1428fcf30c17a159ff10c1f3c69fca92fd7cfa11e9fef7d573f3c6f0da3b5920"
 dependencies = [
  "bincode",
  "educe",
@@ -3639,25 +3800,25 @@ checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7"
 dependencies = [
  "bytes",
  "libc",
- "socket2 0.5.5",
+ "socket2",
  "tracing",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
 name = "quoted_printable"
-version = "0.4.8"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3866219251662ec3b26fc217e3e05bf9c4f84325234dfb96bf0bf840889e49"
+checksum = "79ec282e887b434b68c18fe5c121d38e72a5cf35119b59e54ec5b992ea9c8eb0"
 
 [[package]]
 name = "radix_trie"
@@ -3728,7 +3889,7 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
 ]
 
 [[package]]
@@ -3755,9 +3916,9 @@ version = "1.0.0"
 
 [[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
 dependencies = [
  "either",
  "rayon-core",
@@ -3765,9 +3926,9 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
@@ -3781,7 +3942,7 @@ checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b"
 dependencies = [
  "pem",
  "ring 0.16.20",
- "time 0.3.30",
+ "time 0.3.34",
  "yasna",
 ]
 
@@ -3809,20 +3970,20 @@ version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
  "libredox",
  "thiserror",
 ]
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.4.3",
+ "regex-automata 0.4.6",
  "regex-syntax 0.8.2",
 ]
 
@@ -3837,9 +3998,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -3860,19 +4021,19 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
-version = "0.11.22"
+version = "0.11.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
+checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "encoding_rs",
  "futures-core",
  "futures-util",
- "h2",
- "http",
- "http-body",
- "hyper",
+ "h2 0.3.24",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
  "hyper-tls",
  "ipnet",
  "js-sys",
@@ -3882,9 +4043,11 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
+ "rustls-pemfile",
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "sync_wrapper",
  "system-configuration",
  "tokio",
  "tokio-native-tls",
@@ -3944,16 +4107,17 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.17.5"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
 dependencies = [
  "cc",
- "getrandom 0.2.11",
+ "cfg-if",
+ "getrandom 0.2.12",
  "libc",
  "spin 0.9.8",
  "untrusted 0.9.0",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3988,9 +4152,9 @@ dependencies = [
 
 [[package]]
 name = "rsa"
-version = "0.9.5"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af6c4b23d99685a1408194da11270ef8e9809aff951cc70ec9b17350b087e474"
+checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc"
 dependencies = [
  "const-oid",
  "digest 0.10.7",
@@ -4001,18 +4165,18 @@ dependencies = [
  "pkcs8 0.10.2",
  "rand_core 0.6.4",
  "signature 2.2.0",
- "spki 0.7.2",
+ "spki 0.7.3",
  "subtle",
  "zeroize",
 ]
 
 [[package]]
 name = "rusqlite"
-version = "0.30.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a78046161564f5e7cd9008aff3b2990b3850dc8e0349119b98e8f251e099f24d"
+checksum = "b838eba278d213a8beaf485bd313fd580ca4505a00d5871caeb1457c55322cae"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "fallible-iterator",
  "fallible-streaming-iterator",
  "hashlink",
@@ -4058,24 +4222,24 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.25"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
  "libc",
  "linux-raw-sys",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.9"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
- "ring 0.17.5",
+ "ring 0.17.8",
  "rustls-webpki",
  "sct",
 ]
@@ -4098,7 +4262,7 @@ version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
 ]
 
 [[package]]
@@ -4107,7 +4271,7 @@ version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
- "ring 0.17.5",
+ "ring 0.17.8",
  "untrusted 0.9.0",
 ]
 
@@ -4119,11 +4283,11 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "rustyline"
-version = "12.0.0"
+version = "13.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "994eca4bca05c87e86e15d90fc7a91d1be64b4482b38cb2d27474568fe7c9db9"
+checksum = "02a2d683a4ac90aeef5b1013933f6d977bd37d51ff3f4dad829d4931a7e6be86"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cfg-if",
  "clipboard-win",
  "fd-lock",
@@ -4133,7 +4297,6 @@ dependencies = [
  "memchr",
  "nix",
  "radix_trie",
- "scopeguard",
  "unicode-segmentation",
  "unicode-width",
  "utf8parse",
@@ -4142,15 +4305,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
-
-[[package]]
-name = "safemem"
-version = "0.3.3"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "same-file"
@@ -4173,11 +4330,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -4216,7 +4373,7 @@ version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
- "ring 0.17.5",
+ "ring 0.17.8",
  "untrusted 0.9.0",
 ]
 
@@ -4273,24 +4430,24 @@ dependencies = [
 
 [[package]]
 name = "self_cell"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e388332cd64eb80cd595a00941baf513caffae8dce9cfd0467fc9c66397dade6"
+checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
 
 [[package]]
 name = "semver"
-version = "1.0.20"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
@@ -4306,22 +4463,22 @@ dependencies = [
 
 [[package]]
 name = "serde_bytes"
-version = "0.11.12"
+version = "0.11.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff"
+checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -4337,9 +4494,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.108"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -4348,9 +4505,9 @@ dependencies = [
 
 [[package]]
 name = "serde_path_to_error"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335"
+checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c"
 dependencies = [
  "itoa",
  "serde",
@@ -4358,9 +4515,9 @@ dependencies = [
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
@@ -4488,9 +4645,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "smawk"
@@ -4500,22 +4657,12 @@ checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
 
 [[package]]
 name = "socket2"
-version = "0.4.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -4545,9 +4692,9 @@ dependencies = [
 
 [[package]]
 name = "spki"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a"
+checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
 dependencies = [
  "base64ct",
  "der 0.7.8",
@@ -4595,12 +4742,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "str-buf"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
-
-[[package]]
 name = "strsim"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4608,21 +4749,21 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "strum"
-version = "0.25.0"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f"
 
 [[package]]
 name = "strum_macros"
-version = "0.25.3"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
+checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -4644,9 +4785,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.39"
+version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4714,31 +4855,30 @@ checksum = "094c9f64d6de9a8506b1e49b63a29333b37ed9e821ee04be694d431b3264c3c5"
 
 [[package]]
 name = "tempfile"
-version = "3.8.1"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand",
- "redox_syscall 0.4.1",
  "rustix",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
 name = "testdir"
-version = "0.8.1"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "480060a2e7e1d3c779d3dea588a81c0df78b6a6322b7ce25c0d2ec14a0d5d869"
+checksum = "ee79e927b64d193f5abb60d20a0eb56be0ee5a242fdeb8ce3bf054177006de52"
 dependencies = [
  "anyhow",
  "backtrace",
@@ -4750,9 +4890,9 @@ dependencies = [
 
 [[package]]
 name = "textwrap"
-version = "0.16.0"
+version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
 dependencies = [
  "smawk",
  "unicode-linebreak",
@@ -4761,29 +4901,29 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -4802,12 +4942,13 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.30"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
  "deranged",
  "itoa",
+ "num-conv",
  "powerfmt",
  "serde",
  "time-core",
@@ -4822,10 +4963,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.15"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
@@ -4856,9 +4998,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.34.0"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
  "backtrace",
  "bytes",
@@ -4868,9 +5010,9 @@ dependencies = [
  "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.5",
+ "socket2",
  "tokio-macros",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -4891,7 +5033,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -4947,9 +5089,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-tungstenite"
-version = "0.20.1"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
+checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38"
 dependencies = [
  "futures-util",
  "log",
@@ -4973,14 +5115,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit",
+ "toml_edit 0.22.6",
 ]
 
 [[package]]
@@ -4994,15 +5136,26 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.21.0"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.5",
 ]
 
 [[package]]
@@ -5053,7 +5206,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -5107,20 +5260,20 @@ dependencies = [
 
 [[package]]
 name = "try-lock"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "tungstenite"
-version = "0.20.1"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9"
+checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1"
 dependencies = [
  "byteorder",
  "bytes",
  "data-encoding",
- "http",
+ "http 1.1.0",
  "httparse",
  "log",
  "rand 0.8.5",
@@ -5147,9 +5300,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "typescript-type-def"
-version = "0.5.9"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a548b68faefac1ef83c3682cece0046b4f3efc943a067aacb4dfb99be299f60"
+checksum = "19d9560109be8840693dcb09ed745851f3713bee7b23534b8cab65b7ff9383f1"
 dependencies = [
  "serde_json",
  "typescript-type-def-derive",
@@ -5157,9 +5310,9 @@ dependencies = [
 
 [[package]]
 name = "typescript-type-def-derive"
-version = "0.5.9"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f205a929a19c5dd74f80c9f795c33b4416f7efef7d7b2772f0eff96bdd71c35"
+checksum = "2835fe6badda3e20a012d19d6593ded0fc11f659d5d5152394061ffbb03b4b04"
 dependencies = [
  "darling 0.13.4",
  "ident_case",
@@ -5177,9 +5330,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
@@ -5195,18 +5348,18 @@ checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-width"
@@ -5234,12 +5387,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
- "idna",
+ "idna 0.5.0",
  "percent-encoding",
 ]
 
@@ -5257,11 +5410,11 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.6.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 dependencies = [
- "getrandom 0.2.11",
+ "getrandom 0.2.12",
  "serde",
 ]
 
@@ -5285,9 +5438,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[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",
@@ -5321,10 +5474,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
+name = "wasite"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
+
+[[package]]
 name = "wasm-bindgen"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -5332,24 +5491,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.38"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -5359,9 +5518,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -5369,28 +5528,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "web-sys"
-version = "0.3.65"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -5398,17 +5557,18 @@ dependencies = [
 
 [[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "whoami"
-version = "1.4.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50"
+checksum = "0fec781d48b41f8163426ed18e8fc2864c12937df9ce54c88ede7bd47270893e"
 dependencies = [
- "wasm-bindgen",
+ "redox_syscall 0.4.1",
+ "wasite",
  "web-sys",
 ]
 
@@ -5464,11 +5624,11 @@ dependencies = [
 
 [[package]]
 name = "windows-core"
-version = "0.51.1"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -5477,7 +5637,16 @@ version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -5486,22 +5655,43 @@ version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm",
+ "windows_aarch64_gnullvm 0.48.5",
  "windows_aarch64_msvc 0.48.5",
  "windows_i686_gnu 0.48.5",
  "windows_i686_msvc 0.48.5",
  "windows_x86_64_gnu 0.48.5",
- "windows_x86_64_gnullvm",
+ "windows_x86_64_gnullvm 0.48.5",
  "windows_x86_64_msvc 0.48.5",
 ]
 
 [[package]]
+name = "windows-targets"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
+]
+
+[[package]]
 name = "windows_aarch64_gnullvm"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+
+[[package]]
 name = "windows_aarch64_msvc"
 version = "0.32.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5514,6 +5704,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+
+[[package]]
 name = "windows_i686_gnu"
 version = "0.32.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5526,6 +5722,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
+name = "windows_i686_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+
+[[package]]
 name = "windows_i686_msvc"
 version = "0.32.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5538,6 +5740,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
+name = "windows_i686_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+
+[[package]]
 name = "windows_x86_64_gnu"
 version = "0.32.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5550,12 +5758,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[package]]
 name = "windows_x86_64_gnullvm"
 version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[package]]
 name = "windows_x86_64_msvc"
 version = "0.32.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5568,10 +5788,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "winnow"
-version = "0.5.19"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
@@ -5583,16 +5818,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
 dependencies = [
  "cfg-if",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "x25519-dalek"
-version = "2.0.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96"
+checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277"
 dependencies = [
- "curve25519-dalek 4.1.1",
+ "curve25519-dalek 4.1.2",
  "rand_core 0.6.4",
  "serde",
  "zeroize",
@@ -5613,16 +5848,18 @@ dependencies = [
  "oid-registry",
  "rusticata-macros",
  "thiserror",
- "time 0.3.30",
+ "time 0.3.34",
 ]
 
 [[package]]
 name = "xattr"
-version = "1.0.1"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
 dependencies = [
  "libc",
+ "linux-raw-sys",
+ "rustix",
 ]
 
 [[package]]
@@ -5637,14 +5874,14 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd"
 dependencies = [
- "time 0.3.30",
+ "time 0.3.34",
 ]
 
 [[package]]
 name = "yerpc"
-version = "0.5.2"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75b5547af776328f66a5476ea3b7c0789e6fed164eb32d1a2122cfb39ffa505d"
+checksum = "31978be1300d9d078f34ebb05660fbf3b5114611316a4777bb9ce269a7a33f38"
 dependencies = [
  "anyhow",
  "async-channel 1.9.0",
@@ -5665,9 +5902,9 @@ dependencies = [
 
 [[package]]
 name = "yerpc_derive"
-version = "0.5.2"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f321bb5f728fb066af06c5a994e4375f1f8b054ee6d650766f0bd68dfa4faefe"
+checksum = "0e510aa045bc7be964b982c68f001933fce4fbe609bb98de60068fa8cefe6308"
 dependencies = [
  "convert_case 0.5.0",
  "darling 0.14.4",
@@ -5678,22 +5915,22 @@ dependencies = [
 
 [[package]]
 name = "zerocopy"
-version = "0.7.27"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43de342578a3a14a9314a2dab1942cbfcbe5686e1f91acdc513058063eafe18"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.27"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1012d89e3acb79fad7a799ce96866cfb8098b74638465ea1b1533d35900ca90"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -5713,5 +5950,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn 2.0.52",
 ]
diff --git a/nixpkgs/pkgs/development/libraries/libdeltachat/default.nix b/nixpkgs/pkgs/development/libraries/libdeltachat/default.nix
index 0d7b96562104..75ba9ab621b2 100644
--- a/nixpkgs/pkgs/development/libraries/libdeltachat/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdeltachat/default.nix
@@ -23,22 +23,20 @@ let
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "email-0.0.21" = "sha256-u4CsK/JqFgq5z3iJGxxGtb7QbSkOAqmOvrmagsqfXIU=";
+      "email-0.0.20" = "sha256-rV4Uzqt2Qdrfi5Ti1r+Si1c2iW1kKyWLwOgLkQ5JGGw=";
       "encoded-words-0.2.0" = "sha256-KK9st0hLFh4dsrnLd6D8lC6pRFFs8W+WpZSGMGJcosk=";
-      "imap-proto-0.16.3" = "sha256-okIHA8MQ1K/tcKHZYGh83zom1ULGHZ/KGxgcwiE1+sE=";
-      "iroh-0.4.2" = "sha256-VXNMmj+AvlY/W2JRWMICoNOqpFEahsUDxypHRg185Ao=";
       "lettre-0.9.2" = "sha256-+hU1cFacyyeC9UGVBpS14BWlJjHy90i/3ynMkKAzclk=";
     };
   };
 in stdenv.mkDerivation rec {
   pname = "libdeltachat";
-  version = "1.131.9";
+  version = "1.136.3";
 
   src = fetchFromGitHub {
     owner = "deltachat";
     repo = "deltachat-core-rust";
     rev = "v${version}";
-    hash = "sha256-xZai5RsrfT6bYzMpNdKncmDzBzcAcEtZZmh7f+3g5Hs=";
+    hash = "sha256-/ZWpPpxnOCLGswrfbEPvfUn1LpdBQeR5LecRAB0PEhI=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/libdevil/default.nix b/nixpkgs/pkgs/development/libraries/libdevil/default.nix
index 0cba50c3a924..36bd2f9ef12f 100644
--- a/nixpkgs/pkgs/development/libraries/libdevil/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdevil/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://openil.sourceforge.net/";
     description = "An image library which can can load, save, convert, manipulate, filter and display a wide variety of image formats";
+    mainProgram = "ilur";
     license = licenses.lgpl2;
     pkgConfigModules = [ "IL" ];
     platforms = platforms.mesaPlatforms;
diff --git a/nixpkgs/pkgs/development/libraries/libdicom/default.nix b/nixpkgs/pkgs/development/libraries/libdicom/default.nix
index cb4d68121ef5..94dfaf81298d 100644
--- a/nixpkgs/pkgs/development/libraries/libdicom/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdicom/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , uthash
 , meson
 , ninja
@@ -19,6 +20,15 @@ stdenv.mkDerivation (finalAttrs: {
     sha256 = "sha256-9n0Gp9+fmTM/shgWC8zpwt1pic9BrvDubOt7f+ZDMeE=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2024-24793.CVE-2024-24794.patch";
+      url = "https://github.com/ImagingDataCommons/libdicom/commit/3661aa4cdbe9c39f67d38ae87520f9e3ed50ab16.patch";
+      excludes = [ "CHANGELOG.md" ];
+      hash = "sha256-/KTp0nKYk6jX4phNHY+nzjEptUBHKM2JkOftS5vHsEw=";
+    })
+  ];
+
   buildInputs = [ uthash ];
 
   nativeBuildInputs = [ meson ninja pkg-config ]
diff --git a/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix b/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix
index 49c3713bbe0e..90a169df7734 100644
--- a/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library for creating DigiDoc signature files";
+    mainProgram = "digidoc-tool";
     homepage = "https://www.id.ee/";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/libdisplay-info/default.nix b/nixpkgs/pkgs/development/libraries/libdisplay-info/default.nix
index 783ee4ad483d..20376ba6a4b3 100644
--- a/nixpkgs/pkgs/development/libraries/libdisplay-info/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdisplay-info/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "EDID and DisplayID library";
+    mainProgram = "di-edid-decode";
     homepage = "https://gitlab.freedesktop.org/emersion/libdisplay-info";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/libdivecomputer/default.nix b/nixpkgs/pkgs/development/libraries/libdivecomputer/default.nix
index 8e37bd773cb3..f79e3dc717a5 100644
--- a/nixpkgs/pkgs/development/libraries/libdivecomputer/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdivecomputer/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.libdivecomputer.org";
     description = "A cross-platform and open source library for communication with dive computers from various manufacturers";
+    mainProgram = "dctool";
     maintainers = [ maintainers.mguentner ];
     license = licenses.lgpl21;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/libdvdnav/4.2.1.nix b/nixpkgs/pkgs/development/libraries/libdvdnav/4.2.1.nix
index 0285ff22fe2f..5567d7c39c28 100644
--- a/nixpkgs/pkgs/development/libraries/libdvdnav/4.2.1.nix
+++ b/nixpkgs/pkgs/development/libraries/libdvdnav/4.2.1.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://dvdnav.mplayerhq.hu/";
     description = "A library that implements DVD navigation features such as DVD menus";
+    mainProgram = "dvdnav-config";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.wmertens ];
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/libei/default.nix b/nixpkgs/pkgs/development/libraries/libei/default.nix
index 688d0448861c..5ce873879064 100644
--- a/nixpkgs/pkgs/development/libraries/libei/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libei/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , fetchFromGitHub
 , fetchFromGitLab
-, attr
 , libevdev
 , libxkbcommon
 , meson
@@ -10,8 +9,8 @@
 , pkg-config
 , protobuf
 , protobufc
-, python3
 , systemd
+, buildPackages
 }:
 let
   munit = fetchFromGitHub {
@@ -44,7 +43,7 @@ stdenv.mkDerivation rec {
     meson
     ninja
     pkg-config
-    (python3.withPackages(ps: with ps; [
+    (buildPackages.python3.withPackages (ps: with ps; [
       attrs
       jinja2
       pytest
@@ -61,6 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library for Emulated Input";
+    mainProgram = "ei-debug-events";
     homepage = "https://gitlab.freedesktop.org/libinput/libei";
     license = licenses.mit;
     maintainers = [ maintainers.pedrohlc ];
diff --git a/nixpkgs/pkgs/development/libraries/libemf2svg/default.nix b/nixpkgs/pkgs/development/libraries/libemf2svg/default.nix
index 4bb7caa02615..351d9345f3f7 100644
--- a/nixpkgs/pkgs/development/libraries/libemf2svg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libemf2svg/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Microsoft EMF to SVG conversion library";
+    mainProgram = "emf2svg-conv";
     homepage = "https://github.com/kakwa/libemf2svg";
     maintainers = with maintainers; [ erdnaxe ];
     license = licenses.gpl2Only;
diff --git a/nixpkgs/pkgs/development/libraries/liberfa/default.nix b/nixpkgs/pkgs/development/libraries/liberfa/default.nix
index b59d3aab4a33..612d5ec34b78 100644
--- a/nixpkgs/pkgs/development/libraries/liberfa/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liberfa/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "erfa";
-  version = "2.0.0";
+  version = "2.0.1";
 
   nativeBuildInputs = [ autoreconfHook ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "liberfa";
     repo = "erfa";
     rev = "v${version}";
-    sha256 = "sha256-xBE8mWwmvlu0v3Up5y6J8jMhToMSACdKeQzPJoG8LWk=";
+    sha256 = "sha256-NtHYgiN5mo3kWC2H+5TUDbU1nFrwuhNyOIhg2jZbssM=";
   };
 
   configureFlags = [ "--enable-shared" ];
diff --git a/nixpkgs/pkgs/development/libraries/libevent/default.nix b/nixpkgs/pkgs/development/libraries/libevent/default.nix
index 782d86f1f581..ff9784064432 100644
--- a/nixpkgs/pkgs/development/libraries/libevent/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libevent/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Event notification library";
+    mainProgram = "event_rpcgen.py";
     longDescription = ''
       The libevent API provides a mechanism to execute a callback function
       when a specific event occurs on a file descriptor or after a timeout
diff --git a/nixpkgs/pkgs/development/libraries/libextractor/default.nix b/nixpkgs/pkgs/development/libraries/libextractor/default.nix
index 272cd3d9aa3e..d8e8d6101c13 100644
--- a/nixpkgs/pkgs/development/libraries/libextractor/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libextractor/default.nix
@@ -75,6 +75,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple library for keyword extraction";
+    mainProgram = "extract";
 
     longDescription =
       '' GNU libextractor is a library used to extract meta-data from files
diff --git a/nixpkgs/pkgs/development/libraries/libgbinder/default.nix b/nixpkgs/pkgs/development/libraries/libgbinder/default.nix
index c0f4577078e2..3f30a443e094 100644
--- a/nixpkgs/pkgs/development/libraries/libgbinder/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgbinder/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libgbinder";
-  version = "1.1.37";
+  version = "1.1.38";
 
   src = fetchFromGitHub {
     owner = "mer-hybris";
     repo = pname;
     rev = version;
-    sha256 = "sha256-/XxWOaT2f6+0apv0NzMsPoYBf3GLuaXyPkmTMTDtOes=";
+    sha256 = "sha256-k5oCwi1KvyRVawH0d4Kp+MCxkymAtl6zVk7DVRXFVMg=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/libgit2/default.nix b/nixpkgs/pkgs/development/libraries/libgit2/default.nix
index a554f0dd45b7..7e70b65423a9 100644
--- a/nixpkgs/pkgs/development/libraries/libgit2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgit2/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Linkable library implementation of Git that you can use in your application";
+    mainProgram = "git2";
     homepage = "https://libgit2.org/";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/libgnomekbd/default.nix b/nixpkgs/pkgs/development/libraries/libgnomekbd/default.nix
index 251f86b05789..fc9924b50834 100644
--- a/nixpkgs/pkgs/development/libraries/libgnomekbd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgnomekbd/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Keyboard management library";
+    mainProgram = "gkbd-keyboard-display";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/libgpg-error/default.nix b/nixpkgs/pkgs/development/libraries/libgpg-error/default.nix
index fa3dc1b95b09..1d262a0a4402 100644
--- a/nixpkgs/pkgs/development/libraries/libgpg-error/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgpg-error/default.nix
@@ -17,11 +17,11 @@
   };
 in stdenv.mkDerivation (rec {
   pname = "libgpg-error";
-  version = "1.47";
+  version = "1.48";
 
   src = fetchurl {
     url = "mirror://gnupg/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-njxnCWa5bsx0bCjCxBlUHjvLeH0ac5MPXl9eG8u7m9s=";
+    sha256 = "sha256-ic4a6JPhIpJLhY3oTcT2eq4p/6YQ6/Zo1apTkEVmPW8=";
   };
 
   postPatch = ''
@@ -64,6 +64,7 @@ in stdenv.mkDerivation (rec {
     homepage = "https://www.gnupg.org/software/libgpg-error/index.html";
     changelog = "https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=blob;f=NEWS;hb=refs/tags/libgpg-error-${version}";
     description = "A small library that defines common error values for all GnuPG components";
+    mainProgram = "gen-posix-lock-obj";
 
     longDescription = ''
       Libgpg-error is a small library that defines common error values
diff --git a/nixpkgs/pkgs/development/libraries/libgpiod/default.nix b/nixpkgs/pkgs/development/libraries/libgpiod/default.nix
index a5f914b39a95..519448b72e3d 100644
--- a/nixpkgs/pkgs/development/libraries/libgpiod/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgpiod/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libgpiod";
-  version = "2.1";
+  version = "2.1.1";
 
   src = fetchurl {
     url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz";
-    hash = "sha256-/W7UssZ0/mzDtIGID2zeHup54pbpWhObhUAequpt4/w=";
+    hash = "sha256-CvQ6YInWn50HXPZ8oq5ZcrkIHjjms9Rs6jfWfi32+5s=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libgpod/default.nix b/nixpkgs/pkgs/development/libraries/libgpod/default.nix
index a34b108a0a5a..2de6d8dd4d2c 100644
--- a/nixpkgs/pkgs/development/libraries/libgpod/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgpod/default.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://sourceforge.net/projects/gtkpod/";
     description = "Library used by gtkpod to access the contents of an ipod";
+    mainProgram = "ipod-read-sysinfo-extended";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/libraries/libhandy/0.x.nix b/nixpkgs/pkgs/development/libraries/libhandy/0.x.nix
index a6945508e593..1ae6c72afc3e 100644
--- a/nixpkgs/pkgs/development/libraries/libhandy/0.x.nix
+++ b/nixpkgs/pkgs/development/libraries/libhandy/0.x.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A library full of GTK widgets for mobile phones";
+    mainProgram = "handy-0.0-demo";
     homepage = "https://source.puri.sm/Librem5/libhandy";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/libraries/libhandy/default.nix b/nixpkgs/pkgs/development/libraries/libhandy/default.nix
index 7507f40b604f..28e698e2a83f 100644
--- a/nixpkgs/pkgs/development/libraries/libhandy/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libhandy/default.nix
@@ -132,6 +132,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     changelog = "https://gitlab.gnome.org/GNOME/libhandy/-/tags/${version}";
     description = "Building blocks for modern adaptive GNOME apps";
+    mainProgram = "handy-1-demo";
     homepage = "https://gitlab.gnome.org/GNOME/libhandy";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/development/libraries/libhangul/default.nix b/nixpkgs/pkgs/development/libraries/libhangul/default.nix
index 295ed9bf3054..2ff18376a461 100644
--- a/nixpkgs/pkgs/development/libraries/libhangul/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libhangul/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Core algorithm library for Korean input routines";
+    mainProgram = "hangul";
     homepage = "https://github.com/choehwanjin/libhangul";
     license = licenses.lgpl21;
     maintainers = [ maintainers.ianwookim ];
diff --git a/nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix b/nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix
index 558e6d6fa894..427ad20eca32 100644
--- a/nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Implements the libhdhomerun protocol for use with Silicondust HDHomeRun TV tuners";
+    mainProgram = "hdhomerun_config";
     homepage = "https://www.silicondust.com/support/linux";
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ sielicki titanous ];
diff --git a/nixpkgs/pkgs/development/libraries/libhsts/default.nix b/nixpkgs/pkgs/development/libraries/libhsts/default.nix
index 2150bbd24bfb..967ffe563172 100644
--- a/nixpkgs/pkgs/development/libraries/libhsts/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libhsts/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library to easily check a domain against the Chromium HSTS Preload list";
+    mainProgram = "hsts";
     homepage = "https://gitlab.com/rockdaboot/libhsts";
     license = with licenses; [ mit bsd3 ];
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/libraries/libieee1284/default.nix b/nixpkgs/pkgs/development/libraries/libieee1284/default.nix
index a2cbd6e4096f..4b5bef5c32a6 100644
--- a/nixpkgs/pkgs/development/libraries/libieee1284/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libieee1284/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Parallel port communication library";
+    mainProgram = "libieee1284_test";
     homepage = "http://cyberelk.net/tim/software/libieee1284/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/libinfinity/default.nix b/nixpkgs/pkgs/development/libraries/libinfinity/default.nix
index f9963ce3e636..c4285220af3d 100644
--- a/nixpkgs/pkgs/development/libraries/libinfinity/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libinfinity/default.nix
@@ -43,6 +43,7 @@ let
     meta = {
       homepage = "https://gobby.github.io/";
       description = "An implementation of the Infinote protocol written in GObject-based C";
+      mainProgram = "infinoted-0.7";
       license = lib.licenses.lgpl2Plus;
       maintainers = [ ];
       platforms = with lib.platforms; linux ++ darwin;
diff --git a/nixpkgs/pkgs/development/libraries/libinput/default.nix b/nixpkgs/pkgs/development/libraries/libinput/default.nix
index 2a1c2f8b45a9..f0005969bbcf 100644
--- a/nixpkgs/pkgs/development/libraries/libinput/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libinput/default.nix
@@ -128,6 +128,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Handles input devices in Wayland compositors and provides a generic X.Org input driver";
+    mainProgram = "libinput";
     homepage = "https://www.freedesktop.org/wiki/Software/libinput/";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/libipfix/default.nix b/nixpkgs/pkgs/development/libraries/libipfix/default.nix
index e62c456dd4ab..96fd190e15bb 100644
--- a/nixpkgs/pkgs/development/libraries/libipfix/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libipfix/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://libipfix.sourceforge.net/";
     description = "The libipfix C-library implements the IPFIX protocol defined by the IP Flow Information Export working group of the IETF";
+    mainProgram = "ipfix_collector";
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ lewo ];
diff --git a/nixpkgs/pkgs/development/libraries/libipt/default.nix b/nixpkgs/pkgs/development/libraries/libipt/default.nix
index 6a05aec46854..ed88ed8f2828 100644
--- a/nixpkgs/pkgs/development/libraries/libipt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libipt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libipt";
-  version = "2.1";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "libipt";
     rev = "v${version}";
-    sha256 = "sha256-SLCuNTFRGFh0mTv1xLCIDg7b6DbWCxgHhrCoPu9xpmw=";
+    sha256 = "sha256-tyOheitSlccf/n3mklGL2oAKLBKYT60LSLre9/G/b9Q=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/libiptcdata/default.nix b/nixpkgs/pkgs/development/libraries/libiptcdata/default.nix
index 6bf670a40382..f6f918c1d522 100644
--- a/nixpkgs/pkgs/development/libraries/libiptcdata/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libiptcdata/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library for reading and writing the IPTC metadata in images and other files";
+    mainProgram = "iptc";
     homepage = "https://github.com/ianw/libiptcdata";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/libixp/default.nix b/nixpkgs/pkgs/development/libraries/libixp/default.nix
index f6ad6d01b08f..7d235d7a7649 100644
--- a/nixpkgs/pkgs/development/libraries/libixp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libixp/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://github.com/0intro/libixp";
     description = "Portable, simple C-language 9P client and server library";
+    mainProgram = "ixpc";
     maintainers = with lib.maintainers; [ kovirobi ];
     license = lib.licenses.mit;
     platforms = with lib.platforms; unix;
diff --git a/nixpkgs/pkgs/development/libraries/libjcat/default.nix b/nixpkgs/pkgs/development/libraries/libjcat/default.nix
index 6d9481d1da2d..33fb21237e41 100644
--- a/nixpkgs/pkgs/development/libraries/libjcat/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libjcat/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library for reading and writing Jcat files";
+    mainProgram = "jcat-tool";
     homepage = "https://github.com/hughsie/libjcat";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/libraries/libjson-rpc-cpp/default.nix b/nixpkgs/pkgs/development/libraries/libjson-rpc-cpp/default.nix
index 8e80b9bd8405..4e97ff2f4d5d 100644
--- a/nixpkgs/pkgs/development/libraries/libjson-rpc-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libjson-rpc-cpp/default.nix
@@ -94,6 +94,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "C++ framework for json-rpc (json remote procedure call)";
+    mainProgram = "jsonrpcstub";
     homepage = "https://github.com/cinemast/libjson-rpc-cpp";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/libjxl/default.nix b/nixpkgs/pkgs/development/libraries/libjxl/default.nix
index 833b58e59428..10dcc29785bd 100644
--- a/nixpkgs/pkgs/development/libraries/libjxl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libjxl/default.nix
@@ -32,9 +32,10 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [
     cmake
-    gtest
     pkg-config
     asciidoc
     doxygen
@@ -64,6 +65,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     giflib
     gperftools # provides `libtcmalloc`
+    gtest
     libjpeg
     libpng
     libwebp
diff --git a/nixpkgs/pkgs/development/libraries/libksba/default.nix b/nixpkgs/pkgs/development/libraries/libksba/default.nix
index 8f22ede81669..d33de73e4091 100644
--- a/nixpkgs/pkgs/development/libraries/libksba/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libksba/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libksba";
-  version = "1.6.5";
+  version = "1.6.6";
 
   src = fetchurl {
     url = "mirror://gnupg/libksba/libksba-${version}.tar.bz2";
-    hash = "sha256-pWRijFdMmSh5mHU/mNdQur2RpOnbRR9GrRQEZu8qbRY=";
+    hash = "sha256-XewDPSEVWTOIOMDElXxz39w+6G9zl31ieWQMnNCM5qQ=";
   };
 
   outputs = [ "out" "dev" "info" ];
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.gnupg.org";
     description = "CMS and X.509 access library";
+    mainProgram = "ksba-config";
     platforms = platforms.all;
     maintainers = with maintainers; [ ];
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/development/libraries/liblockfile/default.nix b/nixpkgs/pkgs/development/libraries/liblockfile/default.nix
index 003991c80dde..17fc086704ec 100644
--- a/nixpkgs/pkgs/development/libraries/liblockfile/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liblockfile/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Shared library with NFS-safe locking functions";
+    mainProgram = "dotlockfile";
     homepage = "http://packages.debian.org/unstable/libs/liblockfile1";
     license = lib.licenses.gpl2Plus;
 
diff --git a/nixpkgs/pkgs/development/libraries/liblogging/default.nix b/nixpkgs/pkgs/development/libraries/liblogging/default.nix
index 2623e65f68b0..50b850b886a5 100644
--- a/nixpkgs/pkgs/development/libraries/liblogging/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liblogging/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.liblogging.org/";
     description = "Lightweight signal-safe logging library";
+    mainProgram = "stdlogctl";
     license = licenses.bsd2;
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/development/libraries/liblouis/default.nix b/nixpkgs/pkgs/development/libraries/liblouis/default.nix
index 6f22edae4f3d..a5c0bf92751f 100644
--- a/nixpkgs/pkgs/development/libraries/liblouis/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liblouis/default.nix
@@ -13,7 +13,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "liblouis";
-  version = "3.28.0";
+  version = "3.29.0";
 
   outputs = [ "out" "dev" "info" "doc" ]
     # configure: WARNING: cannot generate manual pages while cross compiling
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "liblouis";
     repo = "liblouis";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-PvGlhsnAxQctcODiK628BDdzYaWUIF/F3dN2g//Gywg=";
+    hash = "sha256-TaMPl53FlUSZIsjhoTYcv3Y+j86fDHuBTjiyr/uP1tM=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/development/libraries/libmanette/default.nix b/nixpkgs/pkgs/development/libraries/libmanette/default.nix
index e5bbf9a39cb9..ee8891d051f0 100644
--- a/nixpkgs/pkgs/development/libraries/libmanette/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmanette/default.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple GObject game controller library";
+    mainProgram = "manette-test";
     homepage = "https://gnome.pages.gitlab.gnome.org/libmanette/";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/development/libraries/libmcrypt/default.nix b/nixpkgs/pkgs/development/libraries/libmcrypt/default.nix
index 668389091c01..672ba730be12 100644
--- a/nixpkgs/pkgs/development/libraries/libmcrypt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmcrypt/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Replacement for the old crypt() package and crypt(1) command, with extensions";
+    mainProgram = "libmcrypt-config";
     homepage = "https://mcrypt.sourceforge.net";
     license = "GPL";
     platforms = lib.platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/libmikmod/default.nix b/nixpkgs/pkgs/development/libraries/libmikmod/default.nix
index 29f64116b7a8..90b548bef73a 100644
--- a/nixpkgs/pkgs/development/libraries/libmikmod/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmikmod/default.nix
@@ -28,6 +28,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A library for playing tracker music module files";
+    mainProgram = "libmikmod-config";
     homepage    = "https://mikmod.shlomifish.org/";
     license     = licenses.lgpl2Plus;
     maintainers = with maintainers; [ astsmtl lovek323 ];
diff --git a/nixpkgs/pkgs/development/libraries/libmng/default.nix b/nixpkgs/pkgs/development/libraries/libmng/default.nix
index 15a68bdce589..19896b13998d 100644
--- a/nixpkgs/pkgs/development/libraries/libmng/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmng/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.libmng.com";
     license = licenses.zlib;
     maintainers = with maintainers; [ marcweber ];
-    platforms = platforms.unix;
+    platforms = platforms.unix ++ platforms.windows;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libmodulemd/default.nix b/nixpkgs/pkgs/development/libraries/libmodulemd/default.nix
index 7f21e52a037c..ce16753cf540 100644
--- a/nixpkgs/pkgs/development/libraries/libmodulemd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmodulemd/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "C Library for manipulating module metadata files";
+    mainProgram = "modulemd-validator";
     homepage = "https://github.com/fedora-modularity/libmodulemd";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/libraries/libmx/default.nix b/nixpkgs/pkgs/development/libraries/libmx/default.nix
index 52d92840a346..c6bbde6940b1 100644
--- a/nixpkgs/pkgs/development/libraries/libmx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmx/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.clutter-project.org/";
     description = "A Clutter-based toolkit";
+    mainProgram = "mx-create-image-cache";
     longDescription =
       ''Mx is a widget toolkit using Clutter that provides a set of standard
         interface elements, including buttons, progress bars, scroll bars and
diff --git a/nixpkgs/pkgs/development/libraries/libnatspec/default.nix b/nixpkgs/pkgs/development/libraries/libnatspec/default.nix
index 360aba08e709..4124422c85bd 100644
--- a/nixpkgs/pkgs/development/libraries/libnatspec/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libnatspec/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://natspec.sourceforge.net/";
     description = "A library intended to smooth national specificities in using of programs";
+    mainProgram = "natspec";
     platforms = platforms.unix;
     license = licenses.lgpl21;
   };
diff --git a/nixpkgs/pkgs/development/libraries/libndp/default.nix b/nixpkgs/pkgs/development/libraries/libndp/default.nix
index 6109c48b036e..b04b22da1236 100644
--- a/nixpkgs/pkgs/development/libraries/libndp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libndp/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://libndp.org/";
     description = "Library for Neighbor Discovery Protocol";
+    mainProgram = "ndptool";
     platforms = platforms.linux;
     maintainers = [ ];
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/libraries/libnet/default.nix b/nixpkgs/pkgs/development/libraries/libnet/default.nix
index b835844491fb..c8f38387111f 100644
--- a/nixpkgs/pkgs/development/libraries/libnet/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libnet/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/sam-github/libnet";
     description = "Portable framework for low-level network packet construction";
+    mainProgram = "libnet-config";
     license = licenses.bsd3;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/libraries/libngspice/default.nix b/nixpkgs/pkgs/development/libraries/libngspice/default.nix
index 840ff2177d85..6da456b26ed6 100644
--- a/nixpkgs/pkgs/development/libraries/libngspice/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libngspice/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The Next Generation Spice (Electronic Circuit Simulator)";
+    mainProgram = "ngspice";
     homepage = "http://ngspice.sourceforge.net";
     license = with licenses; [ bsd3 gpl2Plus lgpl2Plus ]; # See https://sourceforge.net/p/ngspice/ngspice/ci/master/tree/COPYING
     maintainers = with maintainers; [ bgamari rongcuid ];
diff --git a/nixpkgs/pkgs/development/libraries/liboil/default.nix b/nixpkgs/pkgs/development/libraries/liboil/default.nix
index 4291b3668039..7a28ac119c34 100644
--- a/nixpkgs/pkgs/development/libraries/liboil/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liboil/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A library of simple functions that are optimized for various CPUs";
+    mainProgram = "oil-bugreport";
     homepage    = "https://liboil.freedesktop.org";
     license     = licenses.bsd2;
     maintainers = with maintainers; [ lovek323 ];
diff --git a/nixpkgs/pkgs/development/libraries/libomxil-bellagio/default.nix b/nixpkgs/pkgs/development/libraries/libomxil-bellagio/default.nix
index 4f129dc13781..027c0b8f499d 100644
--- a/nixpkgs/pkgs/development/libraries/libomxil-bellagio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libomxil-bellagio/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://omxil.sourceforge.net/";
     description = "An opensource implementation of the Khronos OpenMAX Integration Layer API to access multimedia components";
+    mainProgram = "omxregister-bellagio";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/development/libraries/libopenshot-audio/default.nix b/nixpkgs/pkgs/development/libraries/libopenshot-audio/default.nix
index e546dc7a5786..bbec90a4055a 100644
--- a/nixpkgs/pkgs/development/libraries/libopenshot-audio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libopenshot-audio/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "http://openshot.org/";
     description = "High-quality sound editing library";
+    mainProgram = "openshot-audio-demo";
     longDescription = ''
       OpenShot Audio Library (libopenshot-audio) is a program that allows the
       high-quality editing and playback of audio, and is based on the amazing
diff --git a/nixpkgs/pkgs/development/libraries/libopus/default.nix b/nixpkgs/pkgs/development/libraries/libopus/default.nix
index b2b095f5607e..3592c537ac44 100644
--- a/nixpkgs/pkgs/development/libraries/libopus/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libopus/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchpatch
 , fetchurl
+, gitUpdater
 , meson
 , python3
 , ninja
@@ -12,27 +13,22 @@
 
 # tests
 , ffmpeg-headless
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libopus";
-  version = "1.4";
+  version = "1.5.1";
 
   src = fetchurl {
-    url = "https://downloads.xiph.org/releases/opus/opus-${version}.tar.gz";
-    sha256 = "sha256-ybMrQlO+WuY9H/Fu6ga5S18PKVG3oCrO71jjo85JxR8=";
+    url = "https://downloads.xiph.org/releases/opus/opus-${finalAttrs.version}.tar.gz";
+    hash = "sha256-uEYQlZuNQXthGqEqIlZeCjcyCXxjidGQmNhEVD40D4U=";
   };
 
   patches = [
     ./fix-pkg-config-paths.patch
     # Some tests time out easily on slower machines
     ./test-timeout.patch
-    # Fix meson build for arm64. Remove with next release
-    # https://gitlab.xiph.org/xiph/opus/-/merge_requests/59
-    (fetchpatch {
-      url = "https://gitlab.xiph.org/xiph/opus/-/commit/20c032d27c59d65b19b8ffbb2608e5282fe817eb.patch";
-      hash = "sha256-2pX+0ay5PTyHL2plameBX2L1Q4aTx7V7RGiTdhNIuE4=";
-    })
   ];
 
   postPatch = ''
@@ -58,16 +54,28 @@ stdenv.mkDerivation rec {
 
   doCheck = !stdenv.isi686 && !stdenv.isAarch32; # test_unit_LPC_inv_pred_gain fails
 
-  passthru.tests = {
-    inherit ffmpeg-headless;
+  passthru = {
+    updateScript = gitUpdater {
+      url = "https://gitlab.xiph.org/xiph/opus.git";
+      rev-prefix = "v";
+    };
+
+    tests = {
+      inherit ffmpeg-headless;
+
+      pkg-config = testers.hasPkgConfigModules {
+        package = finalAttrs.finalPackage;
+        moduleNames = [ "opus" ];
+      };
+    };
   };
 
   meta = with lib; {
     description = "Open, royalty-free, highly versatile audio codec";
     homepage = "https://opus-codec.org/";
-    changelog = "https://gitlab.xiph.org/xiph/opus/-/releases/v${version}";
+    changelog = "https://gitlab.xiph.org/xiph/opus/-/releases/v${finalAttrs.version}";
     license = licenses.bsd3;
     platforms = platforms.all;
     maintainers = [ ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/libopus/test-timeout.patch b/nixpkgs/pkgs/development/libraries/libopus/test-timeout.patch
index e20f12cc1d54..76025e648d8f 100644
--- a/nixpkgs/pkgs/development/libraries/libopus/test-timeout.patch
+++ b/nixpkgs/pkgs/development/libraries/libopus/test-timeout.patch
@@ -1,16 +1,9 @@
-diff --git a/tests/meson.build b/tests/meson.build
-index 5f3ac9d..74b2de7 100644
 --- a/tests/meson.build
 +++ b/tests/meson.build
-@@ -1,8 +1,8 @@
+@@ -1,6 +1,5 @@
  # Tests that link to libopus
  opus_tests = [
 -  ['test_opus_api'],
--  ['test_opus_decode', [], 60],
--  ['test_opus_encode', 'opus_encode_regressions.c', 120],
-+  ['test_opus_api', [], 60],
-+  ['test_opus_decode', [], 120],
-+  ['test_opus_encode', 'opus_encode_regressions.c', 240],
-   ['test_opus_padding'],
-   ['test_opus_projection'],
- ]
+   ['test_opus_decode', [], 120],
+   ['test_opus_encode', 'opus_encode_regressions.c', 240],
+   ['test_opus_extensions', [], 120],
diff --git a/nixpkgs/pkgs/development/libraries/libpanel/default.nix b/nixpkgs/pkgs/development/libraries/libpanel/default.nix
index a4f8e71eba2e..05b863ad2011 100644
--- a/nixpkgs/pkgs/development/libraries/libpanel/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpanel/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Dock/panel library for GTK 4";
+    mainProgram = "libpanel-example";
     homepage = "https://gitlab.gnome.org/GNOME/libpanel";
     license = licenses.lgpl3Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/development/libraries/libpcap/default.nix b/nixpkgs/pkgs/development/libraries/libpcap/default.nix
index d1ea44b6ac2f..7256e4922605 100644
--- a/nixpkgs/pkgs/development/libraries/libpcap/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpcap/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.tcpdump.org";
     description = "Packet Capture Library";
+    mainProgram = "pcap-config";
     platforms = platforms.unix;
     maintainers = with maintainers; [ fpletz ];
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/libraries/libpeas/default.nix b/nixpkgs/pkgs/development/libraries/libpeas/default.nix
index f0b6023117d9..f9d8be93c66c 100644
--- a/nixpkgs/pkgs/development/libraries/libpeas/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpeas/default.nix
@@ -83,6 +83,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A GObject-based plugins engine";
+    mainProgram = "peas-demo";
     homepage = "https://wiki.gnome.org/Projects/Libpeas";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/libpng/default.nix b/nixpkgs/pkgs/development/libraries/libpng/default.nix
index e1d412b5006e..34d7a3e580b7 100644
--- a/nixpkgs/pkgs/development/libraries/libpng/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpng/default.nix
@@ -5,20 +5,20 @@
 assert zlib != null;
 
 let
-  patchVersion = "1.6.40";
+  patchVersion = "1.6.43";
   patch_src = fetchurl {
     url = "mirror://sourceforge/libpng-apng/libpng-${patchVersion}-apng.patch.gz";
-    hash = "sha256-CjykZIKTjY1sciZivtLH7gxlobViRESzztIa2NNW2y8=";
+    hash = "sha256-0QdXnpDVU4bQDmCG6nUJQvIqBLmrR2u6DGYHcM76/iI=";
   };
   whenPatched = lib.optionalString apngSupport;
 
 in stdenv.mkDerivation (finalAttrs: {
   pname = "libpng" + whenPatched "-apng";
-  version = "1.6.40";
+  version = "1.6.43";
 
   src = fetchurl {
     url = "mirror://sourceforge/libpng/libpng-${finalAttrs.version}.tar.xz";
-    hash = "sha256-U1tHmyRn/yMaPsbZKlJZBvuO8nl4vk9m2+BdPzoBs6E=";
+    hash = "sha256-alygZSOSotfJ2yrltAIQhDwLvAgcvUEIJasAzFnxSmw=";
   };
   postPatch = whenPatched "gunzip < ${patch_src} | patch -Np1";
 
@@ -38,7 +38,7 @@ in stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "The official reference implementation for the PNG file format" + whenPatched " with animation patch";
     homepage = "http://www.libpng.org/pub/png/libpng.html";
-    changelog = "https://github.com/glennrp/libpng/blob/v1.6.40/CHANGES";
+    changelog = "https://github.com/pnggroup/libpng/blob/v${finalAttrs.version}/CHANGES";
     license = licenses.libpng2;
     pkgConfigModules = [ "libpng" "libpng16" ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/libproxy/default.nix b/nixpkgs/pkgs/development/libraries/libproxy/default.nix
index 5c7a31625023..076e4c33b964 100644
--- a/nixpkgs/pkgs/development/libraries/libproxy/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libproxy/default.nix
@@ -78,5 +78,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21;
     homepage = "https://libproxy.github.io/libproxy/";
     description = "A library that provides automatic proxy configuration management";
+    mainProgram = "proxy";
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libpsl/default.nix b/nixpkgs/pkgs/development/libraries/libpsl/default.nix
index f4f6375cb419..a8fcd2581caa 100644
--- a/nixpkgs/pkgs/development/libraries/libpsl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpsl/default.nix
@@ -23,6 +23,9 @@ stdenv.mkDerivation rec {
     hash = "sha256-mp9qjG7bplDPnqVUdc0XLdKEhzFoBOnHMgLZdXLNOi0=";
   };
 
+  # bin/psl-make-dafsa brings a large runtime closure through python3
+  outputs = [ "bin" "out" "dev" ];
+
   nativeBuildInputs = [
     autoreconfHook
     docbook_xsl
diff --git a/nixpkgs/pkgs/development/libraries/libqalculate/default.nix b/nixpkgs/pkgs/development/libraries/libqalculate/default.nix
index 84623e7459fc..34e34a7eeebf 100644
--- a/nixpkgs/pkgs/development/libraries/libqalculate/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libqalculate/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libqalculate";
-  version = "4.9.0";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "libqalculate";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-6W65dg2pZeio3ZVgVLQZrz/eReYcPiYf52zjcaRfE8E=";
+    hash = "sha256-VhaGgtSU6+7eMY7ksQMpybmt2JBI80Nwgu7PCKrTorA=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/nixpkgs/pkgs/development/libraries/librdf/raptor2.nix b/nixpkgs/pkgs/development/libraries/librdf/raptor2.nix
index 4503a0cc43ed..b9d5252215cc 100644
--- a/nixpkgs/pkgs/development/libraries/librdf/raptor2.nix
+++ b/nixpkgs/pkgs/development/libraries/librdf/raptor2.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "The RDF Parser Toolkit";
+    mainProgram = "rapper";
     homepage = "https://librdf.org/raptor";
     license = with lib.licenses; [ lgpl21 asl20 ];
     maintainers = with lib.maintainers; [ marcweber ];
diff --git a/nixpkgs/pkgs/development/libraries/libredwg/default.nix b/nixpkgs/pkgs/development/libraries/libredwg/default.nix
index 7759917d9750..6eb06a1ebe67 100644
--- a/nixpkgs/pkgs/development/libraries/libredwg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libredwg/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , autoreconfHook
 , writeShellScript
 , pkg-config
@@ -18,24 +17,16 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "libredwg";
-  version = "0.12.5.6313";
+  version = "0.13.3";
 
   src = fetchFromGitHub {
     owner = "LibreDWG";
     repo = pname;
     rev = version;
-    hash = "sha256-TM+cZ7N5PD6UG9cvy0XFa0sNYc3apbAJvEMh3husjRk=";
+    hash = "sha256-FlBHwNsqVSBE8dTDewoKkCbs8Jd/4d69MPpEFzg6Ruc=";
     fetchSubmodules = true;
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2023-26157.patch";
-      url = "https://github.com/LibreDWG/libredwg/commit/c8cf03ce4c2315b146caf582ea061c0460193bcc.patch";
-      hash = "sha256-EEF3YYPW+6SvXRiAw3zz6tWU9w/qmGtc09Tf8wn7hVc=";
-    })
-  ];
-
   postPatch = let
     printVersion = writeShellScript "print-version" ''
       echo -n ${lib.escapeShellArg version}
@@ -43,8 +34,6 @@ stdenv.mkDerivation rec {
   in ''
     # avoid git dependency
     cp ${printVersion} build-aux/git-version-gen
-    # failing to build otherwise since glibc-2.38
-    sed '1i#include <string.h>' -i programs/dwg2SVG.c
   '';
 
   preConfigure = lib.optionalString (stdenv.isDarwin && enablePython) ''
@@ -64,8 +53,8 @@ stdenv.mkDerivation rec {
   # prevent python tests from running when not building with python
   configureFlags = lib.optional (!enablePython) "--disable-python";
 
-  # example_r13.dxf roundtrip fail: expect 5286, got 5285 entities
-  doCheck = !(stdenv.isLinux && stdenv.isAarch64);
+  # FAIL: alive.test
+  doCheck = !stdenv.isLinux;
 
   # the "xmlsuite" test requires the libxml2 c library as well as the python module
   nativeCheckInputs = lib.optionals enablePython [ libxml2 libxml2.dev ];
diff --git a/nixpkgs/pkgs/development/libraries/libs3/default.nix b/nixpkgs/pkgs/development/libraries/libs3/default.nix
index b9f9278fad8c..4bea630c1b27 100644
--- a/nixpkgs/pkgs/development/libraries/libs3/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libs3/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/bji/libs3";
     description = "A library for interfacing with amazon s3";
+    mainProgram = "s3";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/development/libraries/libsamplerate/default.nix b/nixpkgs/pkgs/development/libraries/libsamplerate/default.nix
index 5f0863bc49c8..198bc7362826 100644
--- a/nixpkgs/pkgs/development/libraries/libsamplerate/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsamplerate/default.nix
@@ -30,6 +30,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Sample Rate Converter for audio";
+    mainProgram = "sndfile-resample";
     homepage    = "http://www.mega-nerd.com/SRC/index.html";
     license     = licenses.bsd2;
     maintainers = with maintainers; [ lovek323 ];
diff --git a/nixpkgs/pkgs/development/libraries/libsearpc/default.nix b/nixpkgs/pkgs/development/libraries/libsearpc/default.nix
index 9ae8d87f8872..6d4675717f0d 100644
--- a/nixpkgs/pkgs/development/libraries/libsearpc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsearpc/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/haiwen/libsearpc";
     description = "A simple and easy-to-use C language RPC framework based on GObject System";
+    mainProgram = "searpc-codegen.py";
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ greizgh ];
diff --git a/nixpkgs/pkgs/development/libraries/libseccomp/default.nix b/nixpkgs/pkgs/development/libraries/libseccomp/default.nix
index e5a8f42940e0..19ba1f2b8911 100644
--- a/nixpkgs/pkgs/development/libraries/libseccomp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libseccomp/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "High level library for the Linux Kernel seccomp filter";
+    mainProgram = "scmp_sys_resolver";
     homepage = "https://github.com/seccomp/libseccomp";
     license = licenses.lgpl21Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/libserdes/default.nix b/nixpkgs/pkgs/development/libraries/libserdes/default.nix
index 2a48c9a89770..ac776c4e4231 100644
--- a/nixpkgs/pkgs/development/libraries/libserdes/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libserdes/default.nix
@@ -32,11 +32,6 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     patchShebangs configure lds-gen.pl
-  '' + lib.optionalString (stdenv.cc.libcxx != null) ''
-    # fix for https://github.com/NixOS/nixpkgs/issues/166205
-    # llvm12+ isn't adding libc++abi
-    substituteInPlace src-cpp/Makefile \
-      --replace "LIBS += -lstdc++" "LIBS += -lc++ -l${stdenv.cc.libcxx.cxxabi.libName}"
   '';
 
   # Has a configure script but it’s not Autoconf so steal some bits from multiple-outputs.sh:
diff --git a/nixpkgs/pkgs/development/libraries/libshumate/default.nix b/nixpkgs/pkgs/development/libraries/libshumate/default.nix
index 9639ac34a01b..6306fd2a5548 100644
--- a/nixpkgs/pkgs/development/libraries/libshumate/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libshumate/default.nix
@@ -89,6 +89,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GTK toolkit providing widgets for embedded maps";
+    mainProgram = "shumate-demo";
     homepage = "https://gitlab.gnome.org/GNOME/libshumate";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/development/libraries/libskk/default.nix b/nixpkgs/pkgs/development/libraries/libskk/default.nix
index c4b36704cb97..2f6e98e7dd0a 100644
--- a/nixpkgs/pkgs/development/libraries/libskk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libskk/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A library to deal with Japanese kana-to-kanji conversion method";
+    mainProgram = "skk";
     longDescription = ''
       Libskk is a library that implements basic features of SKK including:
       new word registration, completion, numeric conversion, abbrev mode, kuten input,
diff --git a/nixpkgs/pkgs/development/libraries/libsmartcols/default.nix b/nixpkgs/pkgs/development/libraries/libsmartcols/default.nix
index 077055cbb9a4..5b4fcf875f6f 100644
--- a/nixpkgs/pkgs/development/libraries/libsmartcols/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsmartcols/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libsmartcols";
-  version = "2.36.1";
+  version = "2.39.3";
 
   nativeBuildInputs = [ autoreconfHook pkg-config python3 gtk-doc ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "karelzak";
     repo = "util-linux";
     rev = "v${version}";
-    sha256 = "0z7nv054pqhlihqiw0vk3h40j0cxk1yxf8zzh0ddmvk6834cnyxs";
+    sha256 = "sha256-X39os2iHqSrrYP6HVHPOkuTfc6vNB3pmsOP3VjW50fI=";
   };
 
   configureFlags = [ "--disable-all-programs" "--enable-libsmartcols" ];
diff --git a/nixpkgs/pkgs/development/libraries/libspelling/default.nix b/nixpkgs/pkgs/development/libraries/libspelling/default.nix
index 812dddcc4a17..874e9eff22c4 100644
--- a/nixpkgs/pkgs/development/libraries/libspelling/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libspelling/default.nix
@@ -17,7 +17,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libspelling";
-  version = "0.2.0";
+  version = "0.2.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "chergert";
     repo = "libspelling";
     rev = version;
-    hash = "sha256-OOSQgdtnEx6/5yKwavCGdY/5L0Mr3XW0Srmd42ZTdUk=";
+    hash = "sha256-0OGcwPGWtYYf0XmvzXEaQgebBOW/6JWcDuF4MlQjCZQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libsrs2/default.nix b/nixpkgs/pkgs/development/libraries/libsrs2/default.nix
index 3da48f772545..5cb0974af9f1 100644
--- a/nixpkgs/pkgs/development/libraries/libsrs2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsrs2/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "The next generation SRS library from the original designer of SRS";
+    mainProgram = "srs";
     license = with lib.licenses; [ gpl2 bsd3 ];
     homepage = "https://www.libsrs2.org/";
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/libtar/default.nix b/nixpkgs/pkgs/development/libraries/libtar/default.nix
index c6c89ecb4f08..83bb0708110b 100644
--- a/nixpkgs/pkgs/development/libraries/libtar/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libtar/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "C library for manipulating POSIX tar files";
+    mainProgram = "libtar";
     homepage = "https://repo.or.cz/libtar";
     license = licenses.bsd3;
     platforms = with platforms; linux ++ darwin;
diff --git a/nixpkgs/pkgs/development/libraries/libtiff/default.nix b/nixpkgs/pkgs/development/libraries/libtiff/default.nix
index af9e10a6b8f5..80b5f411e663 100644
--- a/nixpkgs/pkgs/development/libraries/libtiff/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libtiff/default.nix
@@ -90,7 +90,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://libtiff.gitlab.io/libtiff";
     changelog = "https://libtiff.gitlab.io/libtiff/v${finalAttrs.version}.html";
     license = licenses.libtiff;
-    platforms = platforms.unix;
+    platforms = platforms.unix ++ platforms.windows;
     pkgConfigModules = [ "libtiff-4" ];
   };
 })
diff --git a/nixpkgs/pkgs/development/libraries/libtins/0001-force-cpp-14.patch b/nixpkgs/pkgs/development/libraries/libtins/0001-force-cpp-14.patch
new file mode 100644
index 000000000000..3426713a07e3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libtins/0001-force-cpp-14.patch
@@ -0,0 +1,26 @@
+This change bypasses all the code that attempts to see which C++11 features are enabled in your specific C++11 compiler.  C++14 is required for gtest 1.13+.
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 902233e676ee..49ac8a1010a4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -103,17 +103,9 @@ ENDIF()
+ # C++11 support
+ OPTION(LIBTINS_ENABLE_CXX11 "Compile libtins with c++11 features" ON)
+ IF(LIBTINS_ENABLE_CXX11)
+-    # We only use declval and decltype on gcc/clang as VC fails to build that code,
+-    # at least on VC2013
+-    IF(HAS_CXX11_RVALUE_REFERENCES AND HAS_CXX11_FUNCTIONAL AND HAS_CXX11_CHRONO AND
+-       HAS_CXX11_NOEXCEPT AND ((HAS_CXX11_DECLVAL AND HAS_CXX11_DECLTYPE) OR MSVC))
+-        SET(TINS_HAVE_CXX11 ON)
+-        MESSAGE(STATUS "Enabling C++11 features")
+-        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_COMPILER_FLAGS}")
+-    ELSE()
+-        MESSAGE(WARNING "The compiler doesn't support the necessary C++11 features. "
+-                        "Disabling C++11 on this build")
+-    ENDIF()
++    SET(TINS_HAVE_CXX11 ON)
++    MESSAGE(STATUS "Using C++11 features")
++    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
+ ELSE(LIBTINS_ENABLE_CXX11)
+     MESSAGE(
+         WARNING
diff --git a/nixpkgs/pkgs/development/libraries/libtins/default.nix b/nixpkgs/pkgs/development/libraries/libtins/default.nix
index b27ad6634797..6f195615551f 100644
--- a/nixpkgs/pkgs/development/libraries/libtins/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libtins/default.nix
@@ -1,25 +1,20 @@
-{ boost, cmake, fetchFromGitHub, fetchpatch, gtest, libpcap, openssl, lib, stdenv }:
+{ boost, cmake, fetchFromGitHub, gtest, libpcap, openssl, lib, stdenv }:
 
 stdenv.mkDerivation rec {
   pname = "libtins";
-  version = "4.4";
+  version = "4.5";
 
   src = fetchFromGitHub {
     owner = "mfontanini";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-mXbinXh/CO0SZZ71+K+FozbHCCoi12+AIa2o+P0QmUw=";
+    sha256 = "sha256-zL4C2Cgs9Y3NebL8MPQBO5j8Bm6xhl8ZggQBPJLRn0o=";
   };
 
   patches = [
-    # Pull gcc-13 fixes:
-    #   https://github.com/mfontanini/libtins/pull/496
-    # TODO: remove when upgrade to the next version.
-    (fetchpatch {
-      name = "gcc-13.patch";
-      url = "https://github.com/mfontanini/libtins/commit/812be7966d445ec56e88eab512f8fd2d57152427.patch";
-      hash = "sha256-5RCFPe95r1CBrAocjTPR2SvUlgaGa1aBc8RazyxUj3M=";
-    })
+    # Required for gtest 1.13+, see also upstream report at:
+    # https://github.com/mfontanini/libtins/issues/529
+    ./0001-force-cpp-14.patch
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/libu2f-server/default.nix b/nixpkgs/pkgs/development/libraries/libu2f-server/default.nix
index aac71bda3698..96506dfb85c9 100644
--- a/nixpkgs/pkgs/development/libraries/libu2f-server/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libu2f-server/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://developers.yubico.com/libu2f-server/";
     description = "A C library that implements the server-side of the U2F protocol";
+    mainProgram = "u2f-server";
     license = licenses.bsd2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ philandstuff ];
diff --git a/nixpkgs/pkgs/development/libraries/libuchardet/default.nix b/nixpkgs/pkgs/development/libraries/libuchardet/default.nix
index 14bf7f7c09c7..642c39e5974a 100644
--- a/nixpkgs/pkgs/development/libraries/libuchardet/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libuchardet/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Mozilla's Universal Charset Detector C/C++ API";
+    mainProgram = "uchardet";
     homepage = "https://www.freedesktop.org/wiki/Software/uchardet/";
     license = licenses.mpl11;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/libraries/libunicode/default.nix b/nixpkgs/pkgs/development/libraries/libunicode/default.nix
index 725dacebcc25..3fd47a9fc699 100644
--- a/nixpkgs/pkgs/development/libraries/libunicode/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libunicode/default.nix
@@ -29,6 +29,7 @@ in stdenv.mkDerivation (final: {
 
   meta = with lib; {
     description = "Modern C++17 Unicode library";
+    mainProgram = "unicode-query";
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ moni ];
diff --git a/nixpkgs/pkgs/development/libraries/libunwind/default.nix b/nixpkgs/pkgs/development/libraries/libunwind/default.nix
index 90054b8ff7b9..66f9f076dab4 100644
--- a/nixpkgs/pkgs/development/libraries/libunwind/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libunwind/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libunwind";
-  version = "1.8.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "libunwind";
     repo = "libunwind";
     rev = "v${version}";
-    hash = "sha256-u33JAgxNy45yhIFL5QDsfa7EtLLKWmCv1kO4BxYYuwM=";
+    hash = "sha256-rCFBHs6rCSnp5FEwbUR5veNNTqSQpFblAv8ebSPX0qE=";
   };
 
   postPatch = if (stdenv.cc.isClang || stdenv.hostPlatform.isStatic) then ''
@@ -21,9 +21,15 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" "devman" ];
 
-  # Without latex2man, no man pages are installed despite being
-  # prebuilt in the source tarball.
-  configureFlags = [ "LATEX2MAN=${buildPackages.coreutils}/bin/true" ]
+  configureFlags = [
+    # Starting from 1.8.1 libunwind installs testsuite by default.
+    # As we don't run the tests we disable it (this also fixes circular
+    # reference install failure).
+    "--disable-tests"
+    # Without latex2man, no man pages are installed despite being
+    # prebuilt in the source tarball.
+    "LATEX2MAN=${buildPackages.coreutils}/bin/true"
+  ]
   # See https://github.com/libunwind/libunwind/issues/693
   ++ lib.optionals (with stdenv.hostPlatform; isAarch64 && isMusl && !isStatic) [
     "CFLAGS=-mno-outline-atomics"
diff --git a/nixpkgs/pkgs/development/libraries/libusb-compat/0.1.nix b/nixpkgs/pkgs/development/libraries/libusb-compat/0.1.nix
index db80cfd81d06..841e781dfd5f 100644
--- a/nixpkgs/pkgs/development/libraries/libusb-compat/0.1.nix
+++ b/nixpkgs/pkgs/development/libraries/libusb-compat/0.1.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://libusb.info/";
     description = "cross-platform user-mode USB device library";
+    mainProgram = "libusb-config";
     longDescription = ''
       libusb is a cross-platform user-mode library that provides access to USB devices.
       The current API is of 1.0 version (libusb-1.0 API), this library is a wrapper exposing the legacy API.
diff --git a/nixpkgs/pkgs/development/libraries/libva/utils.nix b/nixpkgs/pkgs/development/libraries/libva/utils.nix
index 777119378d34..25db3a1149ac 100644
--- a/nixpkgs/pkgs/development/libraries/libva/utils.nix
+++ b/nixpkgs/pkgs/development/libraries/libva/utils.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libva-utils";
-  version = "2.20.1";
+  version = "2.21.0";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "libva-utils";
     rev    = version;
-    sha256 = "sha256-ZX6ahKnOB5ZEg36iIWskq3q26GVg/trsCAKKttEKZ1s=";
+    sha256 = "sha256-+Ayx5Csgeip2qj1ywE7cBxupXiYJTNXhRo17009vG4I=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/libvarlink/default.nix b/nixpkgs/pkgs/development/libraries/libvarlink/default.nix
index 941ee900edb2..0efca00a3e10 100644
--- a/nixpkgs/pkgs/development/libraries/libvarlink/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libvarlink/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "C implementation of the Varlink protocol and command line tool";
+    mainProgram = "varlink";
     homepage = "https://github.com/varlink/libvarlink";
     license = licenses.asl20;
     maintainers = with maintainers; [ artturin ];
diff --git a/nixpkgs/pkgs/development/libraries/libwtk-sdl2/default.nix b/nixpkgs/pkgs/development/libraries/libwtk-sdl2/default.nix
index bdfe404c547c..4da8873ca775 100644
--- a/nixpkgs/pkgs/development/libraries/libwtk-sdl2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libwtk-sdl2/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Simplistic SDL2 GUI framework in early developement";
+    mainProgram = "libwtk-sdl2-test";
     homepage = "https://github.com/muesli4/libwtk-sdl2";
     # See: https://github.com/muesli4/mpd-touch-screen-gui/tree/master/LICENSES
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/libraries/libxc/default.nix b/nixpkgs/pkgs/development/libraries/libxc/default.nix
index b3f20d02c533..d5e543a1b5f3 100644
--- a/nixpkgs/pkgs/development/libraries/libxc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxc/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library of exchange-correlation functionals for density-functional theory";
+    mainProgram = "xc-info";
     homepage = "https://www.tddft.org/programs/Libxc/";
     license = licenses.mpl20;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/libxmlb/default.nix b/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
index 522d3546b8e0..d3f6f311df94 100644
--- a/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A library to help create and query binary XML blobs";
+    mainProgram = "xb-tool";
     homepage = "https://github.com/hughsie/libxmlb";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/libraries/libxsmm/default.nix b/nixpkgs/pkgs/development/libraries/libxsmm/default.nix
index 6530ee7f67ae..178e524fd1b7 100644
--- a/nixpkgs/pkgs/development/libraries/libxsmm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxsmm/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "Library targeting Intel Architecture for specialized dense and sparse matrix operations, and deep learning primitives";
+    mainProgram = "libxsmm_gemm_generator";
     license = licenses.bsd3;
     homepage = "https://github.com/hfp/libxsmm";
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/libykclient/default.nix b/nixpkgs/pkgs/development/libraries/libykclient/default.nix
index 6aacfc5ea2fa..240f771e49f1 100644
--- a/nixpkgs/pkgs/development/libraries/libykclient/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libykclient/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Yubikey C client library";
+    mainProgram = "ykclient";
     homepage = "https://developers.yubico.com/yubico-c-client";
     license = licenses.bsd2;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/nixpkgs/pkgs/development/libraries/libyuv/default.nix b/nixpkgs/pkgs/development/libraries/libyuv/default.nix
index cc9f78ccae6f..77e32c09de8f 100644
--- a/nixpkgs/pkgs/development/libraries/libyuv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libyuv/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://chromium.googlesource.com/libyuv/libyuv";
     description = "Open source project that includes YUV scaling and conversion functionality";
+    mainProgram = "yuvconvert";
     platforms = platforms.unix;
     maintainers = with maintainers; [ leixb ];
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/libraries/lightgbm/default.nix b/nixpkgs/pkgs/development/libraries/lightgbm/default.nix
index 09ac8b8fa863..5f8e6ceaecd0 100644
--- a/nixpkgs/pkgs/development/libraries/lightgbm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lightgbm/default.nix
@@ -146,6 +146,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description =
       "LightGBM is a gradient boosting framework that uses tree based learning algorithms.";
+    mainProgram = "lightgbm";
     homepage = "https://github.com/microsoft/LightGBM";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/linbox/default.nix b/nixpkgs/pkgs/development/libraries/linbox/default.nix
index 6367b93b1a21..0997513f5a51 100644
--- a/nixpkgs/pkgs/development/libraries/linbox/default.nix
+++ b/nixpkgs/pkgs/development/libraries/linbox/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-blas-libs=-lblas"
-    "--disable-optimization"
+    "--without-archnative"
   ] ++ lib.optionals stdenv.isx86_64 [
     # disable SIMD instructions (which are enabled *when available* by default)
     "--${if stdenv.hostPlatform.sse3Support   then "enable" else "disable"}-sse3"
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "C++ library for exact, high-performance linear algebra";
+    mainProgram = "linbox-config";
     license = licenses.lgpl21Plus;
     maintainers = teams.sage.members;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/log4cpp/default.nix b/nixpkgs/pkgs/development/libraries/log4cpp/default.nix
index c4255babca56..1a024a80cca0 100644
--- a/nixpkgs/pkgs/development/libraries/log4cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/log4cpp/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage    = "https://log4cpp.sourceforge.net/";
     description = "A logging framework for C++ patterned after Apache log4j";
+    mainProgram = "log4cpp-config";
     license     = licenses.lgpl21Plus;
     platforms   = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/libraries/log4shib/default.nix b/nixpkgs/pkgs/development/libraries/log4shib/default.nix
index 42a428b35c7e..26313ddae580 100644
--- a/nixpkgs/pkgs/development/libraries/log4shib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/log4shib/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A forked version of log4cpp that has been created for the Shibboleth project";
+    mainProgram = "log4shib-config";
     maintainers = [ ];
     license = licenses.lgpl21;
     homepage = "http://log4cpp.sf.net";
diff --git a/nixpkgs/pkgs/development/libraries/luksmeta/default.nix b/nixpkgs/pkgs/development/libraries/luksmeta/default.nix
index afefcfed82c7..976f6f188269 100644
--- a/nixpkgs/pkgs/development/libraries/luksmeta/default.nix
+++ b/nixpkgs/pkgs/development/libraries/luksmeta/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Simple library for storing metadata in the LUKSv1 header";
+    mainProgram = "luksmeta";
     homepage = "https://github.com/latchset/luksmeta/";
     maintainers = with lib.maintainers; [ fpletz ];
     license = lib.licenses.lgpl21Plus;
diff --git a/nixpkgs/pkgs/development/libraries/magic-enum/default.nix b/nixpkgs/pkgs/development/libraries/magic-enum/default.nix
index ccf439ca9190..ac8afa938ea8 100644
--- a/nixpkgs/pkgs/development/libraries/magic-enum/default.nix
+++ b/nixpkgs/pkgs/development/libraries/magic-enum/default.nix
@@ -5,26 +5,29 @@
 }:
 stdenv.mkDerivation rec{
   pname = "magic-enum";
-  version = "0.8.2";
+  version = "0.9.5";
+
   src = fetchFromGitHub {
     owner = "Neargye";
     repo = "magic_enum";
-    rev = "v${version}";
-    sha256 = "sha256-k4zCEQxO0N/o1hDYxw5p9u0BMwP/5oIoe/4yw7oqEo0=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-Q82HdlEMXpiGISnqdjFd0rxiLgsobsoWiqqGLawu2pM=";
   };
 
   nativeBuildInputs = [ cmake ];
 
-  # disable tests until upstream fixes build issues with gcc 12
-  # see https://github.com/Neargye/magic_enum/issues/235
-  doCheck = false;
   cmakeFlags = [
-    "-DMAGIC_ENUM_OPT_BUILD_TESTS=OFF"
+    # the cmake package does not handle absolute CMAKE_INSTALL_INCLUDEDIR correctly
+    # (setting it to an absolute path causes include files to go to $out/$out/include,
+    #  because the absolute path is interpreted with root at $out).
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
   ];
 
   meta = with lib;{
     description = "Static reflection for enums (to string, from string, iteration) for modern C++";
     homepage = "https://github.com/Neargye/magic_enum";
+    changelog = "https://github.com/Neargye/magic_enum/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ Alper-Celik ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/malcontent/default.nix b/nixpkgs/pkgs/development/libraries/malcontent/default.nix
index d897230f8f37..34d1731e8a09 100644
--- a/nixpkgs/pkgs/development/libraries/malcontent/default.nix
+++ b/nixpkgs/pkgs/development/libraries/malcontent/default.nix
@@ -96,6 +96,7 @@ stdenv.mkDerivation rec {
     outputsToInstall = [ "bin" "out" "man" ];
 
     description = "Parental controls library";
+    mainProgram = "malcontent-client";
     homepage = "https://gitlab.freedesktop.org/pwithnall/malcontent";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ jtojnar ];
diff --git a/nixpkgs/pkgs/development/libraries/malcontent/ui.nix b/nixpkgs/pkgs/development/libraries/malcontent/ui.nix
index 59950a75c745..cf421bd11c19 100644
--- a/nixpkgs/pkgs/development/libraries/malcontent/ui.nix
+++ b/nixpkgs/pkgs/development/libraries/malcontent/ui.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "UI components for parental controls library";
+    mainProgram = "malcontent-control";
     homepage = "https://gitlab.freedesktop.org/pwithnall/malcontent";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ jtojnar ];
diff --git a/nixpkgs/pkgs/development/libraries/mesa/default.nix b/nixpkgs/pkgs/development/libraries/mesa/default.nix
index a40f5c6b15e4..7920b4405b2e 100644
--- a/nixpkgs/pkgs/development/libraries/mesa/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mesa/default.nix
@@ -81,8 +81,8 @@
 # nix build .#mesa .#pkgsi686Linux.mesa .#pkgsCross.aarch64-multiplatform.mesa .#pkgsMusl.mesa
 
 let
-  version = "24.0.2";
-  hash = "sha256-lOKKjtrQbY7SuD61PyU7nrWqYsMID5OXAuGzA5tWyeg=";
+  version = "24.0.3";
+  hash = "sha256-d67JoqN7fTWW6hZAs8xT0LXZs7Uqvtid4H43F+kb/b4=";
 
   # Release calendar: https://www.mesa3d.org/release-calendar.html
   # Release frequency: https://www.mesa3d.org/releasing.html#schedule
diff --git a/nixpkgs/pkgs/development/libraries/mitama-cpp-result/default.nix b/nixpkgs/pkgs/development/libraries/mitama-cpp-result/default.nix
index 9ae718de4db5..bc30b6de9f4a 100644
--- a/nixpkgs/pkgs/development/libraries/mitama-cpp-result/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mitama-cpp-result/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
       (like Result and Option in Programming Language Rust).
     '';
     license = licenses.mit;
-    maintainers = with maintainers; [ ken-matsui ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
   };
 })
diff --git a/nixpkgs/pkgs/development/libraries/mono-addins/default.nix b/nixpkgs/pkgs/development/libraries/mono-addins/default.nix
index 158b39a8186a..9a31fbb69eeb 100644
--- a/nixpkgs/pkgs/development/libraries/mono-addins/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mono-addins/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.mono-project.com/archived/monoaddins/";
     description = "A generic framework for creating extensible applications";
+    mainProgram = "mautil";
     longDescription = ''
       Mono.Addins is a generic framework for creating extensible applications,
       and for creating libraries which extend those applications.
diff --git a/nixpkgs/pkgs/development/libraries/mpfi/default.nix b/nixpkgs/pkgs/development/libraries/mpfi/default.nix
index 4bc568523c9f..54abf134d366 100644
--- a/nixpkgs/pkgs/development/libraries/mpfi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mpfi/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-aj/QmJ38ifsW36JFQcbp55aIQRvOpiqLHwEh/aFXsgo=";
   };
 
-  sourceRoot = "source/mpfi";
+  sourceRoot = "${src.name}/mpfi";
 
   nativeBuildInputs = [ autoreconfHook texinfo ];
   buildInputs = [ mpfr ];
diff --git a/nixpkgs/pkgs/development/libraries/mtdev/default.nix b/nixpkgs/pkgs/development/libraries/mtdev/default.nix
index 9e6a45e2975a..e067e0c3d274 100644
--- a/nixpkgs/pkgs/development/libraries/mtdev/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mtdev/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://bitmath.org/code/mtdev/";
     description = "Multitouch Protocol Translation Library";
+    mainProgram = "mtdev-test";
     longDescription = ''
       The mtdev is a stand-alone library which transforms all variants of
       kernel MT events to the slotted type B protocol. The events put into
diff --git a/nixpkgs/pkgs/development/libraries/mythes/default.nix b/nixpkgs/pkgs/development/libraries/mythes/default.nix
index 4683940b9cc6..960fefc74ac1 100644
--- a/nixpkgs/pkgs/development/libraries/mythes/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mythes/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://hunspell.sourceforge.net/";
     description = "Thesaurus library from Hunspell project";
+    mainProgram = "th_gen_idx.pl";
     license = lib.licenses.bsd3;
     inherit (hunspell.meta) platforms;
   };
diff --git a/nixpkgs/pkgs/development/libraries/nanoflann/default.nix b/nixpkgs/pkgs/development/libraries/nanoflann/default.nix
index b740e83f4c25..24b4a18c7088 100644
--- a/nixpkgs/pkgs/development/libraries/nanoflann/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nanoflann/default.nix
@@ -6,14 +6,14 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "1.5.4";
+  version = "1.5.5";
   pname = "nanoflann";
 
   src = fetchFromGitHub {
     owner = "jlblancoc";
     repo = "nanoflann";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-7Vt/x9jHRqtVTv0MbHxIwd1/cTUB4aIgOiI+7cz0iu0=";
+    hash = "sha256-a1XX1tvXfrPCar9EGMXzxLg2bXJaK85t2Bd8CworwFk=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/neatvnc/default.nix b/nixpkgs/pkgs/development/libraries/neatvnc/default.nix
index 281689c60b67..2680dbd1ae92 100644
--- a/nixpkgs/pkgs/development/libraries/neatvnc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/neatvnc/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "neatvnc";
-  version = "0.7.2";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "any1";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-S2LMD15MYd/t/Z8B1OQ0hVrZQLR6Gf4LB45mhmDwblg=";
+    hash = "sha256-BArEaQa+CNGzIoENsZSj9seFx9qdCLWiejh6EvpTch8=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/development/libraries/neon/default.nix b/nixpkgs/pkgs/development/libraries/neon/default.nix
index f26dbf5ace45..cbc8d3207e01 100644
--- a/nixpkgs/pkgs/development/libraries/neon/default.nix
+++ b/nixpkgs/pkgs/development/libraries/neon/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An HTTP and WebDAV client library";
+    mainProgram = "neon-config";
     homepage = "https://notroj.github.io/neon/";
     changelog = "https://github.com/notroj/${pname}/blob/${version}/NEWS";
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/netcdf-cxx4/default.nix b/nixpkgs/pkgs/development/libraries/netcdf-cxx4/default.nix
index 945eb219229f..08f812a272a2 100644
--- a/nixpkgs/pkgs/development/libraries/netcdf-cxx4/default.nix
+++ b/nixpkgs/pkgs/development/libraries/netcdf-cxx4/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "C++ API to manipulate netcdf files";
+    mainProgram = "ncxx4-config";
     homepage = "https://www.unidata.ucar.edu/software/netcdf/";
     license = lib.licenses.free;
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/netcdf-fortran/default.nix b/nixpkgs/pkgs/development/libraries/netcdf-fortran/default.nix
index d64d631f94ce..978f906b7adc 100644
--- a/nixpkgs/pkgs/development/libraries/netcdf-fortran/default.nix
+++ b/nixpkgs/pkgs/development/libraries/netcdf-fortran/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fortran API to manipulate netcdf files";
+    mainProgram = "nf-config";
     homepage = "https://www.unidata.ucar.edu/software/netcdf/";
     license = licenses.free;
     maintainers = [ maintainers.bzizou ];
diff --git a/nixpkgs/pkgs/development/libraries/newt/default.nix b/nixpkgs/pkgs/development/libraries/newt/default.nix
index e5dbb563cfb5..1e6f8de2d589 100644
--- a/nixpkgs/pkgs/development/libraries/newt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/newt/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library for color text mode, widget based user interfaces";
+    mainProgram = "whiptail";
     homepage = "https://pagure.io/newt";
     changelog = "https://pagure.io/newt/blob/master/f/CHANGES";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/libraries/nghttp2/default.nix b/nixpkgs/pkgs/development/libraries/nghttp2/default.nix
index f4ae615b6e94..805fe6e3bb20 100644
--- a/nixpkgs/pkgs/development/libraries/nghttp2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nghttp2/default.nix
@@ -32,11 +32,11 @@ assert enableJemalloc -> enableApp;
 
 stdenv.mkDerivation rec {
   pname = "nghttp2";
-  version = "1.59.0";
+  version = "1.60.0";
 
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-A1P8u6ENKl9304ouSS5eZ3tjexdxI0WkcyXDw1+0d/g=";
+    sha256 = "sha256-W4wmgdQstLMcs+DaDggb+jAl1cNZKN6PYHAVUgFbAM4=";
   };
 
   outputs = [ "out" "dev" "lib" "doc" "man" ];
diff --git a/nixpkgs/pkgs/development/libraries/ngtcp2/gnutls.nix b/nixpkgs/pkgs/development/libraries/ngtcp2/gnutls.nix
index 04b220bacee1..b52156977411 100644
--- a/nixpkgs/pkgs/development/libraries/ngtcp2/gnutls.nix
+++ b/nixpkgs/pkgs/development/libraries/ngtcp2/gnutls.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ngtcp2";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = "ngtcp2";
     rev = "v${version}";
-    hash = "sha256-KKfr5AjaC56yUNdk928H1PyP79GnQJ2pIZcZQTgLhEQ=";
+    hash = "sha256-C1Rk0KzTvFpwCz8vXvhSqGjYmGyLZxmnzZhPLZiL97M=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/npth/default.nix b/nixpkgs/pkgs/development/libraries/npth/default.nix
index 208924bfd7b5..023d9cebb973 100644
--- a/nixpkgs/pkgs/development/libraries/npth/default.nix
+++ b/nixpkgs/pkgs/development/libraries/npth/default.nix
@@ -2,17 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "npth";
-  version = "1.6";
+  version = "1.7";
 
   src = fetchurl {
     url = "mirror://gnupg/npth/npth-${version}.tar.bz2";
-    sha256 = "1lg2lkdd3z1s3rpyf88786l243adrzyk9p4q8z9n41ygmpcsp4qk";
+    sha256 = "sha256-hYn1aTe3XOM7KNMS/MvzArO3HsPzlF/eaqp0AnkUrQU=";
   };
 
   doCheck = true;
 
   meta = with lib; {
     description = "The New GNU Portable Threads Library";
+    mainProgram = "npth-config";
     longDescription = ''
       This is a library to provide the GNU Pth API and thus a non-preemptive
       threads implementation.
diff --git a/nixpkgs/pkgs/development/libraries/nss/latest.nix b/nixpkgs/pkgs/development/libraries/nss/latest.nix
index dfc8a21e206c..8ac5a3b23a85 100644
--- a/nixpkgs/pkgs/development/libraries/nss/latest.nix
+++ b/nixpkgs/pkgs/development/libraries/nss/latest.nix
@@ -5,6 +5,6 @@
 #       Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
 
 import ./generic.nix {
-  version = "3.98";
-  hash = "sha256-0p1HzspxyzhzX46O7ax8tmYiaFEBeqEqEvman4NIiQc=";
+  version = "3.99";
+  hash = "sha256-6JocWJpA+VjEPZOxmD74toyEBLOTzCxSWUzrxPi52bU=";
 }
diff --git a/nixpkgs/pkgs/development/libraries/nss_wrapper/default.nix b/nixpkgs/pkgs/development/libraries/nss_wrapper/default.nix
index 324c5269dfbc..8faa50f83b72 100644
--- a/nixpkgs/pkgs/development/libraries/nss_wrapper/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nss_wrapper/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A wrapper for the user, group and hosts NSS API";
+    mainProgram = "nss_wrapper.pl";
     homepage = "https://git.samba.org/?p=nss_wrapper.git;a=summary;";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/ntbtls/default.nix b/nixpkgs/pkgs/development/libraries/ntbtls/default.nix
index 888b1fe4b3df..bdc2a919613c 100644
--- a/nixpkgs/pkgs/development/libraries/ntbtls/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ntbtls/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A tiny TLS 1.2 only implementation";
+    mainProgram = "ntbtls-config";
     homepage = "https://www.gnupg.org/software/ntbtls/";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/nuspell/default.nix b/nixpkgs/pkgs/development/libraries/nuspell/default.nix
index c9e6aeeba363..867843df8068 100644
--- a/nixpkgs/pkgs/development/libraries/nuspell/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nuspell/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Free and open source C++ spell checking library";
+    mainProgram = "nuspell";
     homepage = "https://nuspell.github.io/";
     platforms = platforms.all;
     maintainers = with maintainers; [ fpletz ];
diff --git a/nixpkgs/pkgs/development/libraries/ocl-icd/default.nix b/nixpkgs/pkgs/development/libraries/ocl-icd/default.nix
index 1b7caf2b9c84..0930b8904bdf 100644
--- a/nixpkgs/pkgs/development/libraries/ocl-icd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ocl-icd/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "OpenCL ICD Loader for ${opencl-headers.name}";
+    mainProgram = "cllayerinfo";
     homepage    = "https://github.com/OCL-dev/ocl-icd";
     license     = licenses.bsd2;
     platforms = platforms.unix ++ platforms.windows;
diff --git a/nixpkgs/pkgs/development/libraries/ode/default.nix b/nixpkgs/pkgs/development/libraries/ode/default.nix
index 6ae60b7b2d3a..be67a95ebfc5 100644
--- a/nixpkgs/pkgs/development/libraries/ode/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ode/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Open Dynamics Engine";
+    mainProgram = "ode-config";
     homepage = "https://www.ode.org";
     license = with licenses; [ bsd3 lgpl21Only lgpl3Only zlib ];
     maintainers = with maintainers; [ wegank ];
diff --git a/nixpkgs/pkgs/development/libraries/odpic/default.nix b/nixpkgs/pkgs/development/libraries/odpic/default.nix
index 89502e6c3eb7..6ab232ae42e9 100644
--- a/nixpkgs/pkgs/development/libraries/odpic/default.nix
+++ b/nixpkgs/pkgs/development/libraries/odpic/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, fixDarwinDylibNames, oracle-instantclient, libaio }:
 
 let
-  version = "5.1.0";
+  version = "5.2.0";
   libPath = lib.makeLibraryPath [ oracle-instantclient.lib ];
 
 in
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
     owner = "oracle";
     repo = "odpi";
     rev = "v${version}";
-    sha256 = "sha256-J7v6nNwAXy0j2mXc9RcO/V54WutA9TvTGUubHkpNBWo=";
+    sha256 = "sha256-2oM78YgP14oyFBWZ8KdHlGsN3hjoWTBcIvOI+93sSyM=";
   };
 
   nativeBuildInputs = lib.optional stdenv.isDarwin fixDarwinDylibNames;
diff --git a/nixpkgs/pkgs/development/libraries/ogre/default.nix b/nixpkgs/pkgs/development/libraries/ogre/default.nix
index f6cd2987aa0d..6749be599a40 100644
--- a/nixpkgs/pkgs/development/libraries/ogre/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ogre/default.nix
@@ -34,7 +34,16 @@
 }:
 
 let
-  common = { version, hash }: stdenv.mkDerivation {
+  common = { version, hash, imguiVersion, imguiHash }:
+  let
+    imgui.src = fetchFromGitHub {
+      owner = "ocornut";
+      repo = "imgui";
+      rev = "v${imguiVersion}";
+      hash = imguiHash;
+    };
+  in
+  stdenv.mkDerivation {
     pname = "ogre";
     inherit version;
 
@@ -45,6 +54,12 @@ let
       inherit hash;
     };
 
+    postPatch = ''
+      mkdir -p build
+      cp -R ${imgui.src} build/imgui-${imguiVersion}
+      chmod -R u+w build/imgui-${imguiVersion}
+    '';
+
     nativeBuildInputs = [
       cmake
       pkg-config
@@ -80,11 +95,10 @@ let
     ];
 
     cmakeFlags = [
-      "-DOGRE_BUILD_COMPONENT_OVERLAY_IMGUI=FALSE"
-      "-DOGRE_BUILD_DEPENDENCIES=OFF"
-      "-DOGRE_BUILD_SAMPLES=${toString withSamples}"
+      (lib.cmakeBool "OGRE_BUILD_DEPENDENCIES" false)
+      (lib.cmakeBool "OGRE_BUILD_SAMPLES" withSamples)
     ] ++ lib.optionals stdenv.isDarwin [
-      "-DOGRE_BUILD_LIBS_AS_FRAMEWORKS=FALSE"
+      (lib.cmakeBool "OGRE_BUILD_LIBS_AS_FRAMEWORKS" false)
     ];
 
     meta = {
@@ -98,12 +112,18 @@ let
 in
 {
   ogre_14 = common {
-    version = "14.1.2";
-    hash = "sha256-qPoC5VXA9IC1xiFLrvE7cqCZFkuiEM0OMowUXDlmhF4=";
+    version = "14.2.2";
+    hash = "sha256-85hpujmlM3N81mkiA80xx2C4GsdzWkP61bwdfmw1zt8=";
+    # https://github.com/OGRECave/ogre/blob/v14.2.2/Components/Overlay/CMakeLists.txt
+    imguiVersion = "1.90.4";
+    imguiHash = "sha256-7+Ay7H97tIO6CUsEyaQv4i9q2FCw98eQUq/KYZyfTAw=";
   };
 
   ogre_13 = common {
     version = "13.6.5";
     hash = "sha256-8VQqePrvf/fleHijVIqWWfwOusGjVR40IIJ13o+HwaE=";
+    # https://github.com/OGRECave/ogre/blob/v13.6.5/Components/Overlay/CMakeLists.txt
+    imguiVersion = "1.87";
+    imguiHash = "sha256-H5rqXZFw+2PfVMsYvAK+K+pxxI8HnUC0GlPhooWgEYM=";
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/oniguruma/default.nix b/nixpkgs/pkgs/development/libraries/oniguruma/default.nix
index a1a9dc875735..cf00629e3842 100644
--- a/nixpkgs/pkgs/development/libraries/oniguruma/default.nix
+++ b/nixpkgs/pkgs/development/libraries/oniguruma/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/kkos/oniguruma";
     description = "Regular expressions library";
+    mainProgram = "onig-config";
     license = licenses.bsd2;
     maintainers = with maintainers; [ artturin ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/opencsg/default.nix b/nixpkgs/pkgs/development/libraries/opencsg/default.nix
index 7625db9a5953..4adebaf72b16 100644
--- a/nixpkgs/pkgs/development/libraries/opencsg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opencsg/default.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Constructive Solid Geometry library";
+    mainProgram = "opencsgexample";
     homepage = "http://www.opencsg.org/";
     platforms = platforms.unix;
     maintainers = [ maintainers.raskin ];
diff --git a/nixpkgs/pkgs/development/libraries/opendbx/default.nix b/nixpkgs/pkgs/development/libraries/opendbx/default.nix
index b7a4a34390d9..04ffde29daa0 100644
--- a/nixpkgs/pkgs/development/libraries/opendbx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opendbx/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Extremely lightweight but extensible database access library written in C";
+    mainProgram = "odbx-sql";
     license = licenses.lgpl21;
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/development/libraries/opensaml-cpp/default.nix b/nixpkgs/pkgs/development/libraries/opensaml-cpp/default.nix
index 9e8ab07b3aa4..7e44f2a50eeb 100644
--- a/nixpkgs/pkgs/development/libraries/opensaml-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opensaml-cpp/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage    = "https://shibboleth.net/products/opensaml-cpp.html";
     description = "A low-level library written in C++ that provides support for producing and consuming SAML messages";
+    mainProgram = "samlsign";
     platforms   = platforms.unix;
     license     = licenses.asl20;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/libraries/openssl/default.nix b/nixpkgs/pkgs/development/libraries/openssl/default.nix
index 7af5085410f7..c0b4fe75b610 100644
--- a/nixpkgs/pkgs/development/libraries/openssl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openssl/default.nix
@@ -86,6 +86,7 @@ let
         aarch64-darwin = "./Configure darwin64-arm64-cc";
         x86_64-linux = "./Configure linux-x86_64";
         x86_64-solaris = "./Configure solaris64-x86_64-gcc";
+        powerpc64-linux = "./Configure linux-ppc64";
         riscv64-linux = "./Configure linux64-riscv64";
       }.${stdenv.hostPlatform.system} or (
         if stdenv.hostPlatform == stdenv.buildPlatform
diff --git a/nixpkgs/pkgs/development/libraries/openvdb/default.nix b/nixpkgs/pkgs/development/libraries/openvdb/default.nix
index c5397b259a30..5af5a27f34f5 100644
--- a/nixpkgs/pkgs/development/libraries/openvdb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openvdb/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec
 
   meta = with lib; {
     description = "An open framework for voxel";
+    mainProgram = "vdb_print";
     homepage = "https://www.openvdb.org";
     maintainers = [ maintainers.guibou ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/orcania/default.nix b/nixpkgs/pkgs/development/libraries/orcania/default.nix
index f0334ea4de16..14cc99622755 100644
--- a/nixpkgs/pkgs/development/libraries/orcania/default.nix
+++ b/nixpkgs/pkgs/development/libraries/orcania/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Potluck with different functions for different purposes that can be shared among C programs";
+    mainProgram = "base64url";
     homepage = "https://github.com/babelouest/orcania";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ johnazoidberg ];
diff --git a/nixpkgs/pkgs/development/libraries/ortp/default.nix b/nixpkgs/pkgs/development/libraries/ortp/default.nix
index 1c65fa1981f1..3c61e7b5c9d9 100644
--- a/nixpkgs/pkgs/development/libraries/ortp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ortp/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Real-Time Transport Protocol (RFC3550) stack. Part of the Linphone project.";
+    mainProgram = "ortp_tester";
     homepage = "https://linphone.org/technical-corner/ortp";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/paho-mqtt-c/default.nix b/nixpkgs/pkgs/development/libraries/paho-mqtt-c/default.nix
index 0f345eb5134f..23f0bc99c88a 100644
--- a/nixpkgs/pkgs/development/libraries/paho-mqtt-c/default.nix
+++ b/nixpkgs/pkgs/development/libraries/paho-mqtt-c/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Eclipse Paho MQTT C Client Library";
+    mainProgram = "MQTTVersion";
     homepage = "https://www.eclipse.org/paho/";
     license = licenses.epl20;
     maintainers = with maintainers; [ sikmir ];
diff --git a/nixpkgs/pkgs/development/libraries/pangolin/default.nix b/nixpkgs/pkgs/development/libraries/pangolin/default.nix
index 4618a6d43187..5e8ec502a65f 100644
--- a/nixpkgs/pkgs/development/libraries/pangolin/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pangolin/default.nix
@@ -1,11 +1,10 @@
 { stdenv, lib, fetchFromGitHub, cmake, pkg-config, doxygen, libGL, glew
 , xorg, ffmpeg_4, libjpeg, libpng, libtiff, eigen
-, Carbon ? null, Cocoa ? null
+, Carbon, Cocoa
 }:
 
 stdenv.mkDerivation rec {
   pname = "pangolin";
-
   version = "0.9.1";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/development/libraries/pcmsolver/default.nix b/nixpkgs/pkgs/development/libraries/pcmsolver/default.nix
index a957d517bf7a..d17c806700f4 100644
--- a/nixpkgs/pkgs/development/libraries/pcmsolver/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pcmsolver/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An API for the Polarizable Continuum Model";
+    mainProgram = "run_pcm";
     homepage = "https://pcmsolver.readthedocs.io/en/stable/";
     license = licenses.lgpl3Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/pdal/default.nix b/nixpkgs/pkgs/development/libraries/pdal/default.nix
index 83d451080c20..6f362967a2a2 100644
--- a/nixpkgs/pkgs/development/libraries/pdal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pdal/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , callPackage
 , fetchFromGitHub
-, fetchpatch
 , testers
 
 , enableE57 ? lib.meta.availableOn stdenv.hostPlatform libe57format
@@ -28,24 +27,15 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pdal";
-  version = "2.6.3";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "PDAL";
     repo = "PDAL";
     rev = finalAttrs.version;
-    sha256 = "sha256-wrgEbCYOGW1yrVxyX+UDa5jcUqab3letEGuvWnYvtac=";
+    sha256 = "sha256-knyDVUZH+X563UzKkvDpi08EcXU5s4+Jvya3Xprpt1A=";
   };
 
-  patches = [
-    # Fix running tests
-    # https://github.com/PDAL/PDAL/issues/4280
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/PDAL/PDAL/pull/4291.patch";
-      sha256 = "sha256-jFS+trwMRBfm+MpT0CcuD/hdYmfyuQj2zyoe06B6G9U=";
-    })
-  ];
-
   nativeBuildInputs = [
     cmake
     pkg-config
diff --git a/nixpkgs/pkgs/development/libraries/phonon/default.nix b/nixpkgs/pkgs/development/libraries/phonon/default.nix
index dd20b6dcebe6..58cd0245d052 100644
--- a/nixpkgs/pkgs/development/libraries/phonon/default.nix
+++ b/nixpkgs/pkgs/development/libraries/phonon/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://community.kde.org/Phonon";
     description = "Multimedia API for Qt";
+    mainProgram = "phononsettings";
     license = lib.licenses.lgpl2;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ ttuegel ];
diff --git a/nixpkgs/pkgs/development/libraries/physfs/default.nix b/nixpkgs/pkgs/development/libraries/physfs/default.nix
index 28b81867d203..27f7c019ac77 100644
--- a/nixpkgs/pkgs/development/libraries/physfs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physfs/default.nix
@@ -27,6 +27,7 @@ let
     meta = with lib; {
       homepage = "https://icculus.org/physfs/";
       description = "Library to provide abstract access to various archives";
+      mainProgram = "test_physfs";
       changelog = "https://github.com/icculus/physfs/releases/tag/release-${version}";
       license = licenses.zlib;
       platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/physics/apfelgrid/default.nix b/nixpkgs/pkgs/development/libraries/physics/apfelgrid/default.nix
index 92b6ae003fca..2c6c9702c249 100644
--- a/nixpkgs/pkgs/development/libraries/physics/apfelgrid/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/apfelgrid/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Ultra-fast theory predictions for collider observables";
+    mainProgram = "apfelgrid-config";
     license     = licenses.mit;
     homepage    = "https://nhartland.github.io/APFELgrid/";
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/physics/fastjet/default.nix b/nixpkgs/pkgs/development/libraries/physics/fastjet/default.nix
index d9cd1661af8a..a4c01dd6ecf3 100644
--- a/nixpkgs/pkgs/development/libraries/physics/fastjet/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/fastjet/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A software package for jet finding in pp and e+e− collisions";
+    mainProgram = "fastjet-config";
     license     = lib.licenses.gpl2Plus;
     homepage    = "http://fastjet.fr/";
     platforms   = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/physics/hepmc3/default.nix b/nixpkgs/pkgs/development/libraries/physics/hepmc3/default.nix
index f803bea98f60..9d2eab6e7f15 100644
--- a/nixpkgs/pkgs/development/libraries/physics/hepmc3/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/hepmc3/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The HepMC package is an object oriented, C++ event record for High Energy Physics Monte Carlo generators and simulation";
+    mainProgram = "HepMC3-config";
     license = licenses.gpl3;
     homepage = "http://hepmc.web.cern.ch/hepmc/";
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/physics/hoppet/default.nix b/nixpkgs/pkgs/development/libraries/physics/hoppet/default.nix
index af90192878d7..af6200b9c578 100644
--- a/nixpkgs/pkgs/development/libraries/physics/hoppet/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/hoppet/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Higher Order Perturbative Parton Evolution Toolkit";
+    mainProgram = "hoppet-config";
     license     = licenses.gpl2;
     homepage    = "https://hoppet.hepforge.org";
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/physics/mela/default.nix b/nixpkgs/pkgs/development/libraries/physics/mela/default.nix
index e48a2f4638bc..701fd149e45e 100644
--- a/nixpkgs/pkgs/development/libraries/physics/mela/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/mela/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "a Mellin Evolution LibrAry";
+    mainProgram = "mela-config";
     license     = licenses.gpl3;
     homepage    = "https://github.com/vbertone/MELA";
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/physics/pythia/default.nix b/nixpkgs/pkgs/development/libraries/physics/pythia/default.nix
index 917dbf40a37d..a0daa91a1b54 100644
--- a/nixpkgs/pkgs/development/libraries/physics/pythia/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/pythia/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A program for the generation of high-energy physics events";
+    mainProgram = "pythia8-config";
     license = licenses.gpl2Only;
     homepage = "https://pythia.org";
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/physics/qcdnum/default.nix b/nixpkgs/pkgs/development/libraries/physics/qcdnum/default.nix
index e25b98498ddb..fdb79250ed3f 100644
--- a/nixpkgs/pkgs/development/libraries/physics/qcdnum/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/qcdnum/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A very fast QCD evolution program written in FORTRAN77";
+    mainProgram = "qcdnum-config";
     license     = lib.licenses.gpl3;
     homepage    = "https://www.nikhef.nl/~h24/qcdnum/index.html";
     platforms   = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/default.nix b/nixpkgs/pkgs/development/libraries/pipewire/default.nix
index 7b470f836756..3459112456fe 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pipewire/default.nix
@@ -58,6 +58,7 @@
 , avahi
 , raopSupport ? true
 , openssl
+, opusSupport ? true
 , rocSupport ? true
 , roc-toolkit
 , x11Support ? true
@@ -65,7 +66,6 @@
 , xorg
 , mysofaSupport ? true
 , libmysofa
-, tinycompress
 , ffadoSupport ? x11Support && stdenv.buildPlatform.canExecute stdenv.hostPlatform
 , ffado
 , libselinux
@@ -76,7 +76,7 @@ assert ldacbtSupport -> bluezSupport;
 
 stdenv.mkDerivation(finalAttrs: {
   pname = "pipewire";
-  version = "1.0.3";
+  version = "1.0.4";
 
   outputs = [
     "out"
@@ -92,7 +92,7 @@ stdenv.mkDerivation(finalAttrs: {
     owner = "pipewire";
     repo = "pipewire";
     rev = finalAttrs.version;
-    sha256 = "sha256-QVw7Q+RNo8BBy/uxoZeSQQn/vQcIl1bOiA9fYMR0+oI=";
+    sha256 = "sha256-LROI1rGQELlGXkapX3XfDqB7Rc5YAOdCwaMQUG/iU8c=";
   };
 
   patches = [
@@ -126,20 +126,20 @@ stdenv.mkDerivation(finalAttrs: {
     ncurses
     readline
     udev
-    tinycompress
   ] ++ (if enableSystemd then [ systemd ] else [ eudev ])
   ++ (if lib.meta.availableOn stdenv.hostPlatform webrtc-audio-processing_1 then [ webrtc-audio-processing_1 ] else [ webrtc-audio-processing ])
   ++ lib.optionals gstreamerSupport [ gst_all_1.gst-plugins-base gst_all_1.gstreamer ]
-  ++ lib.optionals libcameraSupport [ libcamera libdrm ]
+  ++ lib.optionals libcameraSupport [ libcamera ]
   ++ lib.optional ffmpegSupport ffmpeg
   ++ lib.optionals bluezSupport [ bluez libfreeaptx liblc3 sbc fdk_aac libopus ]
   ++ lib.optional ldacbtSupport ldacbt
   ++ lib.optional nativeModemManagerSupport modemmanager
+  ++ lib.optional opusSupport libopus
   ++ lib.optional pulseTunnelSupport libpulseaudio
   ++ lib.optional zeroconfSupport avahi
   ++ lib.optional raopSupport openssl
   ++ lib.optional rocSupport roc-toolkit
-  ++ lib.optionals vulkanSupport [ vulkan-headers vulkan-loader ]
+  ++ lib.optionals vulkanSupport [ libdrm vulkan-headers vulkan-loader ]
   ++ lib.optionals x11Support [ libcanberra xorg.libX11 xorg.libXfixes ]
   ++ lib.optional mysofaSupport libmysofa
   ++ lib.optional ffadoSupport ffado;
@@ -162,6 +162,7 @@ stdenv.mkDerivation(finalAttrs: {
     (lib.mesonEnable "systemd-system-service" enableSystemd)
     (lib.mesonEnable "udev" (!enableSystemd))
     (lib.mesonEnable "ffmpeg" ffmpegSupport)
+    (lib.mesonEnable "pw-cat-ffmpeg" ffmpegSupport)
     (lib.mesonEnable "bluez5" bluezSupport)
     (lib.mesonEnable "bluez5-backend-hsp-native" nativeHspSupport)
     (lib.mesonEnable "bluez5-backend-hfp-native" nativeHfpSupport)
@@ -172,6 +173,7 @@ stdenv.mkDerivation(finalAttrs: {
     (lib.mesonEnable "bluez5-codec-lc3plus" false)
     (lib.mesonEnable "bluez5-codec-lc3" bluezSupport)
     (lib.mesonEnable "bluez5-codec-ldac" ldacbtSupport)
+    (lib.mesonEnable "opus" opusSupport)
     (lib.mesonOption "sysconfdir" "/etc")
     (lib.mesonEnable "raop" raopSupport)
     (lib.mesonOption "session-managers" "")
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/wireplumber.nix b/nixpkgs/pkgs/development/libraries/pipewire/wireplumber.nix
index a5bdb729a102..c60ac184978a 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/wireplumber.nix
+++ b/nixpkgs/pkgs/development/libraries/pipewire/wireplumber.nix
@@ -24,7 +24,7 @@
 
 stdenv.mkDerivation rec {
   pname = "wireplumber";
-  version = "0.4.17";
+  version = "0.5.0";
 
   outputs = [ "out" "dev" ] ++ lib.optional enableDocs "doc";
 
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     owner = "pipewire";
     repo = "wireplumber";
     rev = version;
-    hash = "sha256-vhpQT67+849WV1SFthQdUeFnYe/okudTQJoL3y+wXwI=";
+    hash = "sha256-zcYZvyGsGuiwuL9nOD5mW6RFwa9cPB9HvoQqdw2jlmY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/pixman/default.nix b/nixpkgs/pkgs/development/libraries/pixman/default.nix
index 0a15876db963..e18bc6450206 100644
--- a/nixpkgs/pkgs/development/libraries/pixman/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pixman/default.nix
@@ -21,14 +21,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pixman";
-  version = "0.43.2";
+  version = "0.43.4";
 
   src = fetchurl {
     urls = with finalAttrs; [
       "mirror://xorg/individual/lib/${pname}-${version}.tar.gz"
       "https://cairographics.org/releases/${pname}-${version}.tar.gz"
     ];
-    hash = "sha256-6nkpflQY+1KNBGbotbkdG+iIV/o3BvSXd7KSWnKumSQ=";
+    hash = "sha256-oGJNuQGAx923n8epFRCT3DfGRtjDjT8jL3Z89kuFoiY=";
   };
 
   separateDebugInfo = !stdenv.hostPlatform.isStatic;
@@ -54,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   enableParallelBuilding = true;
 
-  doCheck = true;
+  doCheck = !stdenv.isDarwin;
 
   postInstall = glib.flattenInclude;
 
diff --git a/nixpkgs/pkgs/development/libraries/pkger/default.nix b/nixpkgs/pkgs/development/libraries/pkger/default.nix
index 073c57c013da..f2047c82f051 100644
--- a/nixpkgs/pkgs/development/libraries/pkger/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pkger/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Embed static files in Go binaries (replacement for gobuffalo/packr) ";
+    mainProgram = "pkger";
     homepage = "https://github.com/markbates/pkger";
     changelog = "https://github.com/markbates/pkger/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/libraries/plplot/default.nix b/nixpkgs/pkgs/development/libraries/plplot/default.nix
index 66c498418d98..6e4e47f094ed 100644
--- a/nixpkgs/pkgs/development/libraries/plplot/default.nix
+++ b/nixpkgs/pkgs/development/libraries/plplot/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Cross-platform scientific graphics plotting library";
+    mainProgram = "pltek";
     homepage    = "https://plplot.org";
     maintainers = with maintainers; [ bcdarwin ];
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/poly2tri-c/default.nix b/nixpkgs/pkgs/development/libraries/poly2tri-c/default.nix
index a0f084606906..0c68c2950eb2 100644
--- a/nixpkgs/pkgs/development/libraries/poly2tri-c/default.nix
+++ b/nixpkgs/pkgs/development/libraries/poly2tri-c/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library for generating, refining and rendering 2-Dimensional Constrained Delaunay Triangulations";
+    mainProgram = "p2tc";
     homepage = "https://code.google.com/archive/p/poly2tri-c/";
     license = licenses.bsd3;
     maintainers = with lib.maintainers; [ jtojnar ];
diff --git a/nixpkgs/pkgs/development/libraries/pplite/default.nix b/nixpkgs/pkgs/development/libraries/pplite/default.nix
index c9c0d1863382..77841a3f5efd 100644
--- a/nixpkgs/pkgs/development/libraries/pplite/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pplite/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "https://github.com/ezaffanella/PPLite";
     description = "Convex polyhedra library for Abstract Interpretation";
+    mainProgram = "pplite_lcdd";
     license = lib.licenses.gpl3Only;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/protolock/default.nix b/nixpkgs/pkgs/development/libraries/protolock/default.nix
index c1b54306dca8..f8483eb5d68b 100644
--- a/nixpkgs/pkgs/development/libraries/protolock/default.nix
+++ b/nixpkgs/pkgs/development/libraries/protolock/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Protocol Buffer companion tool. Track your .proto files and prevent changes to messages and services which impact API compatibility. https://protolock.dev";
+    mainProgram = "protolock";
     homepage = "https://github.com/nilslice/protolock";
     license = licenses.bsd3;
     maintainers = with maintainers; [ groodt ];
diff --git a/nixpkgs/pkgs/development/libraries/ptex/default.nix b/nixpkgs/pkgs/development/libraries/ptex/default.nix
index a5827fe188c5..930217dab39c 100644
--- a/nixpkgs/pkgs/development/libraries/ptex/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ptex/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec
 
   meta = with lib; {
     description = "Per-Face Texture Mapping for Production Rendering";
+    mainProgram = "ptxinfo";
     homepage = "http://ptex.us/";
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/pth/default.nix b/nixpkgs/pkgs/development/libraries/pth/default.nix
index c75b0d1db2d8..7cb9046acf21 100644
--- a/nixpkgs/pkgs/development/libraries/pth/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pth/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The GNU Portable Threads library";
+    mainProgram = "pth-config";
     homepage = "https://www.gnu.org/software/pth";
     license = licenses.lgpl21Plus;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/qoi/default.nix b/nixpkgs/pkgs/development/libraries/qoi/default.nix
index b218fca11d1f..c5d527aa3ec5 100644
--- a/nixpkgs/pkgs/development/libraries/qoi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qoi/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "'Quite OK Image Format' for fast, lossless image compression";
+    mainProgram = "qoiconv";
     homepage = "https://qoiformat.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ hzeller ];
diff --git a/nixpkgs/pkgs/development/libraries/qpdf/default.nix b/nixpkgs/pkgs/development/libraries/qpdf/default.nix
index 872faafdd1ff..33967e39ccfa 100644
--- a/nixpkgs/pkgs/development/libraries/qpdf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qpdf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qpdf";
-  version = "11.8.0";
+  version = "11.9.0";
 
   src = fetchFromGitHub {
     owner = "qpdf";
     repo = "qpdf";
     rev = "v${version}";
-    hash = "sha256-EoFCRAWia8LAaLdoBW0ByndzIAjSvQ7bJFh0SZ/FKtY=";
+    hash = "sha256-HD7+2TBDLBIt+VaPO5WgnDjNZOj8naltFmYdYzOIn+4=";
   };
 
   nativeBuildInputs = [ cmake perl ];
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
index 3503067aca75..44007bec07b8 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
@@ -293,6 +293,7 @@ qtModule ({
 
   meta = with lib; {
     description = "A web engine based on the Chromium web browser";
+    mainProgram = "qwebengine_convert_dict";
     maintainers = with maintainers; [ matthewbauer ];
 
     # qtwebengine-5.15.8: "QtWebEngine can only be built for x86,
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtbase.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtbase.nix
index 0a16f725c477..c223a2236353 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtbase.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtbase.nix
@@ -263,6 +263,10 @@ stdenv.mkDerivation rec {
     moveToOutput      "mkspecs/modules" "$dev"
     fixQtModulePaths  "$dev/mkspecs/modules"
     fixQtBuiltinPaths "$out" '*.pr?'
+  '' + lib.optionalString stdenv.isLinux ''
+
+    # FIXME: not sure why this isn't added automatically?
+    patchelf --add-rpath "${libmysqlclient}/lib/mariadb" $out/${qtPluginPrefix}/sqldrivers/libqsqlmysql.so
   '';
 
   dontStrip = debugSymbols;
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtquick3dphysics.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtquick3dphysics.nix
index 92d676f7c8e2..e9363f75ebbe 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtquick3dphysics.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtquick3dphysics.nix
@@ -10,4 +10,5 @@ qtModule {
   propagatedBuildInputs = [ qtbase qtquick3d ];
   env.NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64)
     "-faligned-allocation";
+  meta.mainProgram = "cooker";
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtquickeffectmaker.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtquickeffectmaker.nix
index 213814a017e2..085ce493de61 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtquickeffectmaker.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtquickeffectmaker.nix
@@ -6,4 +6,5 @@
 qtModule {
   pname = "qtquickeffectmaker";
   propagatedBuildInputs = [ qtbase qtquick3d ];
+  meta.mainProgram = "qqem";
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtserialbus.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtserialbus.nix
index 3a7285d0a8b0..59033f421cc2 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtserialbus.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtserialbus.nix
@@ -3,4 +3,5 @@
 qtModule {
   pname = "qtserialbus";
   propagatedBuildInputs = [ qtbase qtserialport ];
+  meta.mainProgram = "canbusutil";
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtshadertools.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtshadertools.nix
index 5a4b894b9abd..ce0f381028c5 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtshadertools.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtshadertools.nix
@@ -1,8 +1,15 @@
 { qtModule
 , qtbase
+, stdenv
+, lib
+, pkgsBuildBuild
 }:
 
 qtModule {
   pname = "qtshadertools";
   propagatedBuildInputs = [ qtbase ];
+  cmakeFlags = lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+    "-DQt6ShaderToolsTools_DIR=${pkgsBuildBuild.qt6.qtshadertools}/lib/cmake/Qt6ShaderToolsTools"
+  ];
+  meta.mainProgram = "qsb";
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtsvg.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtsvg.nix
index d81634d9ef1b..3d7df288839a 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtsvg.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtsvg.nix
@@ -5,11 +5,20 @@
 , libmng
 , zlib
 , pkg-config
+, lib
+, stdenv
 }:
 
 qtModule {
   pname = "qtsvg";
   propagatedBuildInputs = [ qtbase ];
-  buildInputs = [ libwebp jasper libmng zlib ];
+  buildInputs = [
+    libwebp
+  ] ++ lib.optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+    jasper
+  ] ++ [
+    libmng
+    zlib
+  ];
   nativeBuildInputs = [ pkg-config ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/quarto/default.nix b/nixpkgs/pkgs/development/libraries/quarto/default.nix
index c61bb41e4484..09a44adbe561 100644
--- a/nixpkgs/pkgs/development/libraries/quarto/default.nix
+++ b/nixpkgs/pkgs/development/libraries/quarto/default.nix
@@ -73,6 +73,7 @@ stdenv.mkDerivation (final: {
 
   meta = with lib; {
     description = "Open-source scientific and technical publishing system built on Pandoc";
+    mainProgram = "quarto";
     longDescription = ''
         Quarto is an open-source scientific and technical publishing system built on Pandoc.
         Quarto documents are authored using markdown, an easy to write plain text format.
diff --git a/nixpkgs/pkgs/development/libraries/rapidfuzz-cpp/default.nix b/nixpkgs/pkgs/development/libraries/rapidfuzz-cpp/default.nix
index 1544eff83621..ab0a5edb7d42 100644
--- a/nixpkgs/pkgs/development/libraries/rapidfuzz-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rapidfuzz-cpp/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "rapidfuzz-cpp";
-  version = "3.0.1";
+  version = "3.0.2";
 
   src = fetchFromGitHub {
     owner = "rapidfuzz";
     repo = "rapidfuzz-cpp";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-v/apbqRyv93PZsO397lvyIMtA1JtYrOpbWAVAbMCmP4=";
+    hash = "sha256-4J2j+/0ZVMNlrgLbEQk3me/EX07TZ/rLsT1/5ufxbic=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/rapidjson/unstable.nix b/nixpkgs/pkgs/development/libraries/rapidjson/unstable.nix
index 0f4c3d40403e..fd7ffe61ba39 100644
--- a/nixpkgs/pkgs/development/libraries/rapidjson/unstable.nix
+++ b/nixpkgs/pkgs/development/libraries/rapidjson/unstable.nix
@@ -6,8 +6,6 @@
 , graphviz
 , gtest
 , valgrind
-# One of "11" or "17"; default in source is CXX 11
-, cxxStandard ? "11"
 , buildDocs ? true
 , buildTests ? !stdenv.hostPlatform.isStatic && !stdenv.isDarwin
 , buildExamples ? true
@@ -49,8 +47,9 @@ stdenv.mkDerivation (finalAttrs: {
     (lib.cmakeBool "RAPIDJSON_BUILD_DOC" buildDocs)
     (lib.cmakeBool "RAPIDJSON_BUILD_TESTS" buildTests)
     (lib.cmakeBool "RAPIDJSON_BUILD_EXAMPLES" buildExamples)
-    (lib.cmakeBool "RAPIDJSON_BUILD_CXX11" (cxxStandard == "11"))
-    (lib.cmakeBool "RAPIDJSON_BUILD_CXX17" (cxxStandard == "17"))
+    # gtest 1.13+ requires C++14 or later.
+    (lib.cmakeBool "RAPIDJSON_BUILD_CXX11" false)
+    (lib.cmakeBool "RAPIDJSON_BUILD_CXX17" true)
   ] ++ lib.optionals buildTests [
     (lib.cmakeFeature "GTEST_INCLUDE_DIR" "${lib.getDev gtest}")
   ];
@@ -77,6 +76,5 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ Madouura ];
-    broken = (cxxStandard != "11" && cxxStandard != "17");
   };
 })
diff --git a/nixpkgs/pkgs/development/libraries/re2/default.nix b/nixpkgs/pkgs/development/libraries/re2/default.nix
index feb565076326..d1223811c686 100644
--- a/nixpkgs/pkgs/development/libraries/re2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/re2/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "re2";
-  version = "2024-02-01";
+  version = "2024-03-01";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "re2";
     rev = version;
-    hash = "sha256-a6yo0zLgb193TDL8akselJuZfYqCjPwQ/FJ7+KexuLE=";
+    hash = "sha256-VuI9OsfGTdVywdyVfBrSzXSjbSfevne+YQ2oOz4R3DM=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/recastnavigation/default.nix b/nixpkgs/pkgs/development/libraries/recastnavigation/default.nix
index 8e0fe7947f44..b4119f1133f5 100644
--- a/nixpkgs/pkgs/development/libraries/recastnavigation/default.nix
+++ b/nixpkgs/pkgs/development/libraries/recastnavigation/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/recastnavigation/recastnavigation";
     description = "Navigation-mesh Toolset for Games";
+    mainProgram = "RecastDemo";
     license = licenses.zlib;
     maintainers = with maintainers; [ marius851000 ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/retro-gtk/default.nix b/nixpkgs/pkgs/development/libraries/retro-gtk/default.nix
index 7711dde497f0..1323bd98a43c 100644
--- a/nixpkgs/pkgs/development/libraries/retro-gtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/retro-gtk/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The GTK Libretro frontend framework";
+    mainProgram = "retro-demo";
     longDescription = ''
       Libretro is a plugin format design to implement video game
       console emulators, video games and similar multimedia
diff --git a/nixpkgs/pkgs/development/libraries/rocksdb/default.nix b/nixpkgs/pkgs/development/libraries/rocksdb/default.nix
index c25a349ba32d..6c2aaaa8815a 100644
--- a/nixpkgs/pkgs/development/libraries/rocksdb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rocksdb/default.nix
@@ -39,20 +39,9 @@ stdenv.mkDerivation (finalAttrs: {
     "tools"
   ];
 
-  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isGNU [
-    "-Wno-error=deprecated-copy"
-    "-Wno-error=pessimizing-move"
-    # Needed with GCC 12
-    "-Wno-error=format-truncation"
-    "-Wno-error=maybe-uninitialized"
-  ] ++ lib.optionals stdenv.cc.isClang [
-    "-Wno-error=unused-private-field"
-    "-faligned-allocation"
-  ] ++ lib.optionals (lib.versionOlder finalAttrs.version "8") [
-    "-Wno-error=unused-but-set-variable"
-  ] ++ lib.optionals (lib.versionOlder finalAttrs.version "7") [
-    "-Wno-error=deprecated-copy"
-  ]);
+ env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+   "-faligned-allocation"
+ ]);
 
   cmakeFlags = [
     "-DPORTABLE=1"
@@ -71,12 +60,25 @@ stdenv.mkDerivation (finalAttrs: {
     "-DUSE_RTTI=1"
     "-DROCKSDB_INSTALL_ON_WINDOWS=YES" # harmless elsewhere
     (lib.optional sse42Support "-DFORCE_SSE42=1")
-    "-DFAIL_ON_WARNINGS=${if stdenv.hostPlatform.isMinGW then "NO" else "YES"}"
+    "-DFAIL_ON_WARNINGS=NO"
   ] ++ lib.optional (!enableShared) "-DROCKSDB_BUILD_SHARED=0";
 
   # otherwise "cc1: error: -Wformat-security ignored without -Wformat [-Werror=format-security]"
   hardeningDisable = lib.optional stdenv.hostPlatform.isWindows "format";
 
+  postPatch = lib.optionalString (lib.versionOlder finalAttrs.version "8") ''
+    # Fix gcc-13 build failures due to missing <cstdint> and
+    # <system_error> includes, fixed upstyream sice 8.x
+    sed -e '1i #include <cstdint>' -i db/compaction/compaction_iteration_stats.h
+    sed -e '1i #include <cstdint>' -i table/block_based/data_block_hash_index.h
+    sed -e '1i #include <cstdint>' -i util/string_util.h
+    sed -e '1i #include <cstdint>' -i include/rocksdb/utilities/checkpoint.h
+  '' + lib.optionalString (lib.versionOlder finalAttrs.version "7") ''
+    # Fix gcc-13 build failures due to missing <cstdint> and
+    # <system_error> includes, fixed upstyream sice 7.x
+    sed -e '1i #include <system_error>' -i third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h
+  '';
+
   preInstall = ''
     mkdir -p $tools/bin
     cp tools/{ldb,sst_dump}${stdenv.hostPlatform.extensions.executable} $tools/bin/
diff --git a/nixpkgs/pkgs/development/libraries/rote/default.nix b/nixpkgs/pkgs/development/libraries/rote/default.nix
index 4655d54ab98e..65e2ecd09150 100644
--- a/nixpkgs/pkgs/development/libraries/rote/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rote/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Our Own Terminal Emulation Library";
+    mainProgram = "rote-config";
     longDescription = ''
       ROTE is a simple C library for VT102 terminal emulation. It allows the
       programmer to set up virtual 'screens' and send them data. The virtual
diff --git a/nixpkgs/pkgs/development/libraries/rtlcss/default.nix b/nixpkgs/pkgs/development/libraries/rtlcss/default.nix
index a553e8d33ddf..327e7b2626da 100644
--- a/nixpkgs/pkgs/development/libraries/rtlcss/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rtlcss/default.nix
@@ -17,6 +17,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     description = "Framework for converting Left-To-Right (LTR) Cascading Style Sheets(CSS) to Right-To-Left (RTL)";
+    mainProgram = "rtlcss";
     homepage = "https://rtlcss.com";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/libraries/s2geometry/default.nix b/nixpkgs/pkgs/development/libraries/s2geometry/default.nix
index afd5ffa0a0a2..a8893b698a48 100644
--- a/nixpkgs/pkgs/development/libraries/s2geometry/default.nix
+++ b/nixpkgs/pkgs/development/libraries/s2geometry/default.nix
@@ -22,6 +22,12 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ openssl gtest ];
 
+  # Default of C++11 is too low for gtest.
+  # In newer versions of s2geometry this can be done with cmakeFlags.
+  postPatch = ''
+    substituteInPlace CMakeLists.txt --replace "CMAKE_CXX_STANDARD 11" "CMAKE_CXX_STANDARD 14"
+  '';
+
   meta = with lib; {
     description = "Computational geometry and spatial indexing on the sphere";
     homepage = "http://s2geometry.io/";
diff --git a/nixpkgs/pkgs/development/libraries/s2n-tls/default.nix b/nixpkgs/pkgs/development/libraries/s2n-tls/default.nix
index 9f68c243cf50..a8c8a22ff1bb 100644
--- a/nixpkgs/pkgs/development/libraries/s2n-tls/default.nix
+++ b/nixpkgs/pkgs/development/libraries/s2n-tls/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "s2n-tls";
-  version = "1.4.3";
+  version = "1.4.6";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-E3Giiu8xiTCSAPkbxOaVL/LXZWjhAS1M/n//Pe5eOKg=";
+    hash = "sha256-x4/AkmkmuTKxzlk8AxbydA4GctpShsKiFTTJ8m7B4TY=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/science/astronomy/libnova/default.nix b/nixpkgs/pkgs/development/libraries/science/astronomy/libnova/default.nix
index f6a8d01ab845..2f5f6851fd8d 100644
--- a/nixpkgs/pkgs/development/libraries/science/astronomy/libnova/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/astronomy/libnova/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Celestial Mechanics, Astrometry and Astrodynamics Library";
+    mainProgram = "libnovaconfig";
     homepage = "http://libnova.sf.net";
     license = licenses.gpl2;
     maintainers = with maintainers; [ hjones2199 ];
diff --git a/nixpkgs/pkgs/development/libraries/science/biology/bicgl/default.nix b/nixpkgs/pkgs/development/libraries/science/biology/bicgl/default.nix
index 4f98874b2595..07d64fbd97ed 100644
--- a/nixpkgs/pkgs/development/libraries/science/biology/bicgl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/biology/bicgl/default.nix
@@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
     description = "Brain Imaging Centre graphics library";
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.unix;
-    license = licenses.free;
+    license = licenses.hpndUc;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/biology/bicpl/default.nix b/nixpkgs/pkgs/development/libraries/science/biology/bicpl/default.nix
index 5cf63e342242..c15689aa606a 100644
--- a/nixpkgs/pkgs/development/libraries/science/biology/bicpl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/biology/bicpl/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
     description = "Brain Imaging Centre programming library";
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.unix;
-    license   = licenses.free;
+    license   = with licenses; [ hpndUc gpl3Plus ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/biology/mirtk/default.nix b/nixpkgs/pkgs/development/libraries/science/biology/mirtk/default.nix
index 9af6793ef997..ce02474eeb1e 100644
--- a/nixpkgs/pkgs/development/libraries/science/biology/mirtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/biology/mirtk/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/BioMedIA/MIRTK";
     description = "Medical image registration library and tools";
+    mainProgram = "mirtk";
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.linux;
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/libraries/science/chemistry/dftd4/default.nix b/nixpkgs/pkgs/development/libraries/science/chemistry/dftd4/default.nix
index d791a7d4e3d6..087c6e7d01de 100644
--- a/nixpkgs/pkgs/development/libraries/science/chemistry/dftd4/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/chemistry/dftd4/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Generally Applicable Atomic-Charge Dependent London Dispersion Correction";
+    mainProgram = "dftd4";
     license = with licenses; [ lgpl3Plus gpl3Plus ];
     homepage = "https://github.com/grimme-lab/dftd4";
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/science/chemistry/harminv/default.nix b/nixpkgs/pkgs/development/libraries/science/chemistry/harminv/default.nix
index 54c0d03979ab..dc8289e14ce9 100644
--- a/nixpkgs/pkgs/development/libraries/science/chemistry/harminv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/chemistry/harminv/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Harmonic inversion algorithm of Mandelshtam: decompose signal into sum of decaying sinusoids";
+    mainProgram = "GDSIIConvert";
     homepage = "https://github.com/NanoComp/harminv";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ sheepforce markuskowa ];
diff --git a/nixpkgs/pkgs/development/libraries/science/chemistry/libGDSII/default.nix b/nixpkgs/pkgs/development/libraries/science/chemistry/libGDSII/default.nix
index c3257bad3e26..095e0ee182a3 100644
--- a/nixpkgs/pkgs/development/libraries/science/chemistry/libGDSII/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/chemistry/libGDSII/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library and command-line utility for reading GDSII geometry files";
+    mainProgram = "GDSIIConvert";
     homepage = "https://github.com/HomerReid/libGDSII";
     license = [ licenses.gpl2Only ];
     maintainers = with maintainers; [ sheepforce markuskowa ];
diff --git a/nixpkgs/pkgs/development/libraries/science/chemistry/mctc-lib/default.nix b/nixpkgs/pkgs/development/libraries/science/chemistry/mctc-lib/default.nix
index a3726ea5e5dd..a8c27b3eec56 100644
--- a/nixpkgs/pkgs/development/libraries/science/chemistry/mctc-lib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/chemistry/mctc-lib/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Modular computation tool chain library";
+    mainProgram = "mctc-convert";
     homepage = "https://github.com/grimme-lab/mctc-lib";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/science/chemistry/molequeue/default.nix b/nixpkgs/pkgs/development/libraries/science/chemistry/molequeue/default.nix
index b560ac16c698..5cd8669c5597 100644
--- a/nixpkgs/pkgs/development/libraries/science/chemistry/molequeue/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/chemistry/molequeue/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Desktop integration of high performance computing resources";
+    mainProgram = "molequeue";
     maintainers = with maintainers; [ sheepforce ];
     homepage = "https://github.com/OpenChemistry/molequeue";
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/science/chemistry/multicharge/default.nix b/nixpkgs/pkgs/development/libraries/science/chemistry/multicharge/default.nix
index b90f073a4f2e..020390737139 100644
--- a/nixpkgs/pkgs/development/libraries/science/chemistry/multicharge/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/chemistry/multicharge/default.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Electronegativity equilibration model for atomic partial charges";
+    mainProgram = "multicharge";
     license = licenses.asl20;
     homepage = "https://github.com/grimme-lab/multicharge";
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/science/chemistry/openmm/default.nix b/nixpkgs/pkgs/development/libraries/science/chemistry/openmm/default.nix
index 9b37f14f1403..d146fa073dc3 100644
--- a/nixpkgs/pkgs/development/libraries/science/chemistry/openmm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/chemistry/openmm/default.nix
@@ -100,6 +100,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Toolkit for molecular simulation using high performance GPU code";
+    mainProgram = "TestReferenceHarmonicBondForce";
     homepage = "https://openmm.org/";
     license = with licenses; [ gpl3Plus lgpl3Plus mit ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix b/nixpkgs/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix
index ae5e30d73608..d4f81e3a24cb 100644
--- a/nixpkgs/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Reimplementation of the DFT-D3 program";
+    mainProgram = "s-dftd3";
     license = with licenses; [ lgpl3Only gpl3Only ];
     homepage = "https://github.com/dftd3/simple-dftd3";
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/development/libraries/science/chemistry/tblite/default.nix b/nixpkgs/pkgs/development/libraries/science/chemistry/tblite/default.nix
index bea5793addbf..64374972c295 100644
--- a/nixpkgs/pkgs/development/libraries/science/chemistry/tblite/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/chemistry/tblite/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Light-weight tight-binding framework";
+    mainProgram = "tblite";
     license = with licenses; [ gpl3Plus lgpl3Plus ];
     homepage = "https://github.com/tblite/tblite";
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/science/math/bonmin/default.nix b/nixpkgs/pkgs/development/libraries/science/math/bonmin/default.nix
index 5a736f976957..2bbd698f7fa7 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/bonmin/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/bonmin/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An open-source code for solving general MINLP (Mixed Integer NonLinear Programming) problems";
+    mainProgram = "bonmin";
     homepage = "https://github.com/coin-or/Bonmin";
     license = licenses.epl10;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/science/math/faiss/default.nix b/nixpkgs/pkgs/development/libraries/science/math/faiss/default.nix
index 25ac539e05f2..25d6542f8da1 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/faiss/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/faiss/default.nix
@@ -145,6 +145,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A library for efficient similarity search and clustering of dense vectors by Facebook Research";
+    mainProgram = "demo_ivfpq_indexing";
     homepage = "https://github.com/facebookresearch/faiss";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/science/math/itpp/default.nix b/nixpkgs/pkgs/development/libraries/science/math/itpp/default.nix
index 639497bb1f8c..cb45787e1403 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/itpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/itpp/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "IT++ is a C++ library of mathematical, signal processing and communication classes and functions";
+    mainProgram = "itpp-config";
     homepage = "https://itpp.sourceforge.net/";
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/science/math/lcalc/default.nix b/nixpkgs/pkgs/development/libraries/science/math/lcalc/default.nix
index b1896917658c..f6603f7d8fb8 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/lcalc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/lcalc/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.com/sagemath/lcalc";
     description = "A program for calculating with L-functions";
+    mainProgram = "lcalc";
     license = with licenses; [ gpl2 ];
     maintainers = teams.sage.members;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/science/math/magma/generic.nix b/nixpkgs/pkgs/development/libraries/science/math/magma/generic.nix
index 7ef60e0418ed..757a1b77dafc 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/magma/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/magma/generic.nix
@@ -5,35 +5,48 @@
 #  supportedGpuTargets: List String
 # }
 
-{ blas
+{ autoPatchelfHook
+, blas
 , cmake
+, cudaPackages_11 ? null
 , cudaPackages
 , cudaSupport ? config.cudaSupport
 , fetchurl
 , gfortran
-, cudaCapabilities ? cudaPackages.cudaFlags.cudaCapabilities
 , gpuTargets ? [ ] # Non-CUDA targets, that is HIP
-, rocmPackages
+, rocmPackages_5
 , lapack
 , lib
 , libpthreadstubs
 , magmaRelease
 , ninja
+, python3
 , config
   # At least one back-end has to be enabled,
   # and we can't default to CUDA since it's unfree
 , rocmSupport ? !cudaSupport
 , static ? stdenv.hostPlatform.isStatic
 , stdenv
-, symlinkJoin
 }:
 
 
 let
   inherit (lib) lists strings trivial;
-  inherit (cudaPackages) backendStdenv cudaFlags cudaVersion;
   inherit (magmaRelease) version hash supportedGpuTargets;
 
+  # Per https://icl.utk.edu/magma/downloads, support for CUDA 12 wasn't added until 2.7.1.
+  # If we're building a version prior to that, use the latest release of the 11.x series.
+  effectiveCudaPackages =
+    if strings.versionOlder version "2.7.1"
+    then cudaPackages_11
+    else cudaPackages;
+
+  inherit (effectiveCudaPackages) cudaAtLeast cudaFlags cudaOlder;
+  inherit (cudaFlags) cudaCapabilities;
+
+  # move to newer ROCm version once supported
+  rocmPackages = rocmPackages_5;
+
   # NOTE: The lists.subtractLists function is perhaps a bit unintuitive. It subtracts the elements
   #   of the first list *from* the second list. That means:
   #   lists.subtractLists a b = b - a
@@ -95,19 +108,34 @@ stdenv.mkDerivation {
     inherit hash;
   };
 
+  # Magma doesn't have anything which could be run under doCheck, but it does build test suite executables.
+  # These are moved to $test/bin/ and $test/lib/ in postInstall.
+  outputs = ["out" "test"];
+
+  # Fixup for the python test runners
+  postPatch = ''
+    patchShebangs ./testing/run_{tests,summarize}.py
+    substituteInPlace ./testing/run_tests.py \
+      --replace-fail \
+        "print >>sys.stderr, cmdp, \"doesn't exist (original name: \" + cmd + \", precision: \" + precision + \")\"" \
+        "print(f\"{cmdp} doesn't exist (original name: {cmd}, precision: {precision})\", file=sys.stderr)"
+  '';
+
   nativeBuildInputs = [
+    autoPatchelfHook
     cmake
     ninja
     gfortran
   ] ++ lists.optionals cudaSupport [
-    cudaPackages.cuda_nvcc
+    effectiveCudaPackages.cuda_nvcc
   ];
 
   buildInputs = [
     libpthreadstubs
     lapack
     blas
-  ] ++ lists.optionals cudaSupport (with cudaPackages; [
+    python3
+  ] ++ lists.optionals cudaSupport (with effectiveCudaPackages; [
     cuda_cudart.dev # cuda_runtime.h
     cuda_cudart.lib # cudart
     cuda_cudart.static # cudart_static
@@ -115,11 +143,11 @@ stdenv.mkDerivation {
     libcublas.lib # cublas
     libcusparse.dev # cusparse.h
     libcusparse.lib # cusparse
-  ] ++ lists.optionals (strings.versionOlder cudaVersion "11.8") [
+  ] ++ lists.optionals (cudaOlder "11.8") [
     cuda_nvprof.dev # <cuda_profiler_api.h>
-  ] ++ lists.optionals (strings.versionAtLeast cudaVersion "11.8") [
+  ] ++ lists.optionals (cudaAtLeast "11.8") [
     cuda_profiler_api.dev # <cuda_profiler_api.h>
-  ] ++ lists.optionals (strings.versionAtLeast cudaVersion "12.0") [
+  ] ++ lists.optionals (cudaAtLeast "12.0") [
     cuda_cccl.dev # <nv/target>
   ]) ++ lists.optionals rocmSupport [
     rocmPackages.clr
@@ -129,32 +157,60 @@ stdenv.mkDerivation {
   ];
 
   cmakeFlags = [
-    "-DGPU_TARGET=${gpuTargetString}"
-    (lib.cmakeBool "MAGMA_ENABLE_CUDA" cudaSupport)
-    (lib.cmakeBool "MAGMA_ENABLE_HIP" rocmSupport)
-  ] ++ lists.optionals static [
-    "-DBUILD_SHARED_LIBS=OFF"
+    (strings.cmakeFeature "GPU_TARGET" gpuTargetString)
+    (strings.cmakeBool "MAGMA_ENABLE_CUDA" cudaSupport)
+    (strings.cmakeBool "MAGMA_ENABLE_HIP" rocmSupport)
+    (strings.cmakeBool "BUILD_SHARED_LIBS" (!static))
+    # Set the Fortran name mangling scheme explicitly. We must set FORTRAN_CONVENTION manually because it will
+    # otherwise not be set in NVCC_FLAGS or DEVCCFLAGS (which we cannot modify).
+    # See https://github.com/NixOS/nixpkgs/issues/281656#issuecomment-1902931289
+    (strings.cmakeBool "USE_FORTRAN" true)
+    (strings.cmakeFeature "CMAKE_C_FLAGS" "-DADD_")
+    (strings.cmakeFeature "CMAKE_CXX_FLAGS" "-DADD_")
+    (strings.cmakeFeature "FORTRAN_CONVENTION" "-DADD_")
   ] ++ lists.optionals cudaSupport [
-    "-DCMAKE_CUDA_ARCHITECTURES=${cudaArchitecturesString}"
-    "-DMIN_ARCH=${minArch}" # Disarms magma's asserts
-    "-DCMAKE_C_COMPILER=${backendStdenv.cc}/bin/cc"
-    "-DCMAKE_CXX_COMPILER=${backendStdenv.cc}/bin/c++"
+    (strings.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" cudaArchitecturesString)
+    (strings.cmakeFeature "MIN_ARCH" minArch) # Disarms magma's asserts
   ] ++ lists.optionals rocmSupport [
-    "-DCMAKE_C_COMPILER=${rocmPackages.clr}/bin/hipcc"
-    "-DCMAKE_CXX_COMPILER=${rocmPackages.clr}/bin/hipcc"
-  ] ++ lists.optionals (cudaPackages.cudaAtLeast "12.0.0") [
-    (lib.cmakeBool "USE_FORTRAN" false)
-  ];
-
-  buildFlags = [
-    "magma"
-    "magma_sparse"
+    (strings.cmakeFeature "CMAKE_C_COMPILER" "${rocmPackages.clr}/bin/hipcc")
+    (strings.cmakeFeature "CMAKE_CXX_COMPILER" "${rocmPackages.clr}/bin/hipcc")
   ];
 
+  # Magma doesn't have a test suite we can easily run, just loose executables, all of which require a GPU.
   doCheck = false;
 
+  # Copy the files to the test output and fix the RPATHs.
+  postInstall =
+    # NOTE: The python scripts aren't copied by CMake into the build directory, so we must copy them from the source.
+    # TODO(@connorbaker): This should be handled by having CMakeLists.txt install them, but such a patch is
+    # out of the scope of the PR which introduces the `test` output: https://github.com/NixOS/nixpkgs/pull/283777.
+    # See https://github.com/NixOS/nixpkgs/pull/283777#discussion_r1482125034 for more information.
+    # Such work is tracked by https://github.com/NixOS/nixpkgs/issues/296286.
+    ''
+      install -Dm755 ../testing/run_{tests,summarize}.py -t "$test/bin/"
+    ''
+    # Copy core test executables and libraries over to the test output.
+    # NOTE: Magma doesn't provide tests for sparse solvers for ROCm, but it does for CUDA -- we put them both in the same
+    # install command to avoid the case where a glob would fail to find any files and cause the install command to fail
+    # because it has no files to install.
+    + ''
+      install -Dm755 ./testing/testing_* ./sparse/testing/testing_* -t "$test/bin/"
+      install -Dm755 ./lib/lib*test*.* -t "$test/lib/"
+    ''
+    # All of the test executables and libraries will have a reference to the build directory in their RPATH, which we
+    # must remove. We do this by shrinking the RPATH to only include the Nix store. The autoPatchelfHook will take care
+    # of supplying the correct RPATH for needed libraries (like `libtester.so`).
+    + ''
+      find "$test" -type f -exec \
+        patchelf \
+          --shrink-rpath \
+          --allowed-rpath-prefixes "$NIX_STORE" \
+          {} \;
+    '';
+
   passthru = {
-    inherit cudaPackages cudaSupport rocmSupport gpuTargets;
+    inherit cudaSupport rocmSupport gpuTargets;
+    cudaPackages = effectiveCudaPackages;
   };
 
   meta = with lib; {
@@ -168,6 +224,7 @@ stdenv.mkDerivation {
     broken =
       !(cudaSupport || rocmSupport) # At least one back-end enabled
       || (cudaSupport && rocmSupport) # Mutually exclusive
-      || (cudaSupport && strings.versionOlder cudaVersion "9");
+      || (cudaSupport && cudaOlder "9.0")
+      || (cudaSupport && strings.versionOlder version "2.7.1" && cudaPackages_11 == null);
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/math/mongoose/default.nix b/nixpkgs/pkgs/development/libraries/science/math/mongoose/default.nix
index 29b901277f61..c1eed9bf432a 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/mongoose/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/mongoose/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Graph Coarsening and Partitioning Library";
+    mainProgram = "suitesparse_mongoose";
     homepage = "https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/dev/Mongoose";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wegank ];
diff --git a/nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix b/nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix
index 5cbc23589895..1b17f9576175 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix
@@ -120,6 +120,7 @@ stdenv.mkDerivation rec {
     description = ''
       Google's software suite for combinatorial optimization.
     '';
+    mainProgram = "fzn-ortools";
     maintainers = with maintainers; [ andersk ];
     platforms = with platforms; linux ++ darwin;
   };
diff --git a/nixpkgs/pkgs/development/libraries/science/math/planarity/default.nix b/nixpkgs/pkgs/development/libraries/science/math/planarity/default.nix
index 3b072fecde34..196ee5de576b 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/planarity/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/planarity/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/graph-algorithms/edge-addition-planarity-suite";
     description = "A library for implementing graph algorithms";
+    mainProgram = "planarity";
     license = licenses.bsd3;
     maintainers = teams.sage.members;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix b/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix
index 09ca356ccdc5..1033f26f4360 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/sympow/default.nix
@@ -73,6 +73,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Compute special values of symmetric power elliptic curve L-functions";
+    mainProgram = "sympow";
     license = {
       shortName = "sympow";
       fullName = "Custom, BSD-like. See COPYING file.";
diff --git a/nixpkgs/pkgs/development/libraries/science/math/trilinos/default.nix b/nixpkgs/pkgs/development/libraries/science/math/trilinos/default.nix
index 1939b0a5307b..8e461f1caf24 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/trilinos/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/trilinos/default.nix
@@ -88,6 +88,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Engineering and scientific problems algorithms";
+    mainProgram = "nvcc_wrapper";
     longDescription = ''
       The Trilinos Project is an effort to develop algorithms and enabling
       technologies within an object-oriented software framework for the
diff --git a/nixpkgs/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix b/nixpkgs/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix
index 5e02398d1b4e..07d978641663 100644
--- a/nixpkgs/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A command line tool that compiles a TensorFlow Lite model into an Edge TPU compatible file.";
+    mainProgram = "edgetpu_compiler";
     homepage = "https://coral.ai/docs/edgetpu/compiler";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/libraries/sentry-native/default.nix b/nixpkgs/pkgs/development/libraries/sentry-native/default.nix
index 95ba1dc68e51..c08e0f2112c9 100644
--- a/nixpkgs/pkgs/development/libraries/sentry-native/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sentry-native/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sentry-native";
-  version = "0.6.7";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-native";
     rev = version;
-    hash = "sha256-pEFfs8xjc+6r+60aJF4Sjjy/oSU/+ADWgOBpS3t9rWI=";
+    hash = "sha256-e2VjQ3U72X+bwRAi/6StLDWT8tf/MjatnmC/+jCgzTo=";
   };
 
   nativeBuildInputs = [
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DSENTRY_BREAKPAD_SYSTEM=On"
+    "-DSENTRY_BACKEND=breakpad"
   ];
 
   meta = with lib; {
@@ -40,6 +41,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/getsentry/sentry-native/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ wheelsandmetal ];
+    maintainers = with maintainers; [ wheelsandmetal daniel-fahey ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/serialdv/default.nix b/nixpkgs/pkgs/development/libraries/serialdv/default.nix
index bff7a107eebe..549d03693375 100644
--- a/nixpkgs/pkgs/development/libraries/serialdv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/serialdv/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "C++ Minimal interface to encode and decode audio with AMBE3000 based devices in packet mode over a serial link";
+    mainProgram = "dvtest";
     homepage = "https://github.com/f4exb/serialdv";
     platforms = platforms.unix;
     maintainers = with maintainers; [ alkeryn ];
diff --git a/nixpkgs/pkgs/development/libraries/sexpp/default.nix b/nixpkgs/pkgs/development/libraries/sexpp/default.nix
index dd41d520d28c..21b661338b64 100644
--- a/nixpkgs/pkgs/development/libraries/sexpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sexpp/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://github.com/rnpgp/sexp";
     description = "S-expressions parser and generator C++ library, fully compliant to [https://people.csail.mit.edu/rivest/Sexp.txt]";
+    mainProgram = "sexpp";
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ ribose-jeffreylau ];
diff --git a/nixpkgs/pkgs/development/libraries/shine/default.nix b/nixpkgs/pkgs/development/libraries/shine/default.nix
index 8e5d02e632d2..433e4dcc6179 100644
--- a/nixpkgs/pkgs/development/libraries/shine/default.nix
+++ b/nixpkgs/pkgs/development/libraries/shine/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fast fixed-point mp3 encoding library";
+    mainProgram = "shineenc";
     homepage = "https://github.com/toots/shine";
     license = licenses.lgpl2Only;
     maintainers = with maintainers; [ dandellion ];
diff --git a/nixpkgs/pkgs/development/libraries/simdjson/default.nix b/nixpkgs/pkgs/development/libraries/simdjson/default.nix
index cf56180551fd..9e28ea4eed38 100644
--- a/nixpkgs/pkgs/development/libraries/simdjson/default.nix
+++ b/nixpkgs/pkgs/development/libraries/simdjson/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "simdjson";
-  version = "3.7.0";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "simdjson";
     repo = "simdjson";
     rev = "v${version}";
-    sha256 = "sha256-0fizP+j06NAp4CJynjzHG25OBmTa7wjkLZ2MBs1NxG4=";
+    sha256 = "sha256-1WxQU9WAIZKVoNTYJRnwxLAloBfW1g5XSPH4b29x9rE=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/slib/default.nix b/nixpkgs/pkgs/development/libraries/slib/default.nix
index 54aa046bd676..c3c5965816f4 100644
--- a/nixpkgs/pkgs/development/libraries/slib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/slib/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "The SLIB Portable Scheme Library";
+    mainProgram = "slib";
 
     longDescription = ''
       SLIB is a portable library for the programming language Scheme.  It
diff --git a/nixpkgs/pkgs/development/libraries/smooth/default.nix b/nixpkgs/pkgs/development/libraries/smooth/default.nix
index bc4a5601dc45..402500dc9528 100644
--- a/nixpkgs/pkgs/development/libraries/smooth/default.nix
+++ b/nixpkgs/pkgs/development/libraries/smooth/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The smooth Class Library";
+    mainProgram = "smooth-translator";
     license = licenses.artistic2;
     homepage = "http://www.smooth-project.org/";
     maintainers = with maintainers; [ shamilton ];
diff --git a/nixpkgs/pkgs/development/libraries/sonic/default.nix b/nixpkgs/pkgs/development/libraries/sonic/default.nix
index ba3164db11aa..4ab71b36a012 100644
--- a/nixpkgs/pkgs/development/libraries/sonic/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sonic/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Simple library to speed up or slow down speech";
+    mainProgram = "sonic";
     homepage = "https://github.com/waywardgeek/sonic";
     license = licenses.asl20;
     maintainers = with maintainers; [ aske ];
diff --git a/nixpkgs/pkgs/development/libraries/spdlog/default.nix b/nixpkgs/pkgs/development/libraries/spdlog/default.nix
index ff42a5ba3b5c..f9255e3df595 100644
--- a/nixpkgs/pkgs/development/libraries/spdlog/default.nix
+++ b/nixpkgs/pkgs/development/libraries/spdlog/default.nix
@@ -1,35 +1,27 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , fmt
 , catch2_3
 , staticBuild ? stdenv.hostPlatform.isStatic
 
 # tests
-, bear, tiledb
+, bear
+, tiledb
 }:
 
 stdenv.mkDerivation rec {
   pname = "spdlog";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "gabime";
     repo  = "spdlog";
     rev   = "v${version}";
-    hash  = "sha256-cxTaOuLXHRU8xMz9gluYz0a93O0ez2xOxbloyc1m1ns=";
+    hash  = "sha256-3n8BnjZ7uMH8quoiT60yTU7poyOtoEmzNMOLa1+r7X0=";
   };
 
-  patches = [
-    # Fix a broken test, remove with the next release.
-    (fetchpatch {
-      url = "https://github.com/gabime/spdlog/commit/2ee8bac78e6525a8ad9a9196e65d502ce390d83a.patch";
-      hash = "sha256-L79yOkm3VY01jmxNctfneTLmOA5DEQeNNGC8LbpJiOc=";
-    })
-  ];
-
   nativeBuildInputs = [ cmake ];
   # Required to build tests, even if they aren't executed
   buildInputs = [ catch2_3 ];
diff --git a/nixpkgs/pkgs/development/libraries/sqlcipher/default.nix b/nixpkgs/pkgs/development/libraries/sqlcipher/default.nix
index d35f654650ee..0a22d4177892 100644
--- a/nixpkgs/pkgs/development/libraries/sqlcipher/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sqlcipher/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     changelog = "https://github.com/sqlcipher/sqlcipher/blob/v${version}/CHANGELOG.md";
     description = "SQLite extension that provides 256 bit AES encryption of database files";
+    mainProgram = "sqlcipher";
     homepage = "https://www.zetetic.net/sqlcipher/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/libraries/sregex/default.nix b/nixpkgs/pkgs/development/libraries/sregex/default.nix
index 48a1b9c3930e..a4d2ef526db9 100644
--- a/nixpkgs/pkgs/development/libraries/sregex/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sregex/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/openresty/sregex";
     description = "A non-backtracking NFA/DFA-based Perl-compatible regex engine matching on large data streams";
+    mainProgram = "sregex-cli";
     license = licenses.bsd3;
     maintainers = with maintainers; [];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/srtp/default.nix b/nixpkgs/pkgs/development/libraries/srtp/default.nix
index 8bcd854f3681..a124a3d600ca 100644
--- a/nixpkgs/pkgs/development/libraries/srtp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/srtp/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libsrtp";
-  version = "2.5.0";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "cisco";
     repo = "libsrtp";
     rev = "v${version}";
-    sha256 = "sha256-OvCw7oF1OuamP3qO2BsimeBSHq1rcXFLfK8KnbbgkMU=";
+    sha256 = "sha256-vWL5bksKT5NUoNkIRiJ2FeGODQthD8SgXjCaA7SeTe4=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/subunit/default.nix b/nixpkgs/pkgs/development/libraries/subunit/default.nix
index 61c30ebcf033..ed0c5a2d8720 100644
--- a/nixpkgs/pkgs/development/libraries/subunit/default.nix
+++ b/nixpkgs/pkgs/development/libraries/subunit/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A streaming protocol for test results";
+    mainProgram = "subunit-diff";
     homepage = "https://launchpad.net/subunit";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/swiften/default.nix b/nixpkgs/pkgs/development/libraries/swiften/default.nix
index f839021c949e..05b1b996ea3f 100644
--- a/nixpkgs/pkgs/development/libraries/swiften/default.nix
+++ b/nixpkgs/pkgs/development/libraries/swiften/default.nix
@@ -81,6 +81,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An XMPP library for C++, used by the Swift client";
+    mainProgram = "swiften-config";
     homepage = "http://swift.im/swiften.html";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/sycl-info/default.nix b/nixpkgs/pkgs/development/libraries/sycl-info/default.nix
index 9d86017e084e..5d70bed4dd0f 100644
--- a/nixpkgs/pkgs/development/libraries/sycl-info/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sycl-info/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
     {
       homepage = "https://github.com/codeplaysoftware/sycl-info";
       description = "Tool to show information about available SYCL implementations";
+      mainProgram = "sycl-info";
       platforms = platforms.linux;
       license = licenses.asl20;
       maintainers = with maintainers; [ davidtwco ];
diff --git a/nixpkgs/pkgs/development/libraries/ta-lib/default.nix b/nixpkgs/pkgs/development/libraries/ta-lib/default.nix
index ea5ec66cf169..c3f77a9a247a 100644
--- a/nixpkgs/pkgs/development/libraries/ta-lib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ta-lib/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description =
       "TA-Lib is a library that provides common functions for the technical analysis of financial market data.";
+    mainProgram = "ta-lib-config";
     homepage = "https://ta-lib.org/";
     license = lib.licenses.bsd3;
 
diff --git a/nixpkgs/pkgs/development/libraries/tachyon/default.nix b/nixpkgs/pkgs/development/libraries/tachyon/default.nix
index 64746d84572a..02fb1fbc1324 100644
--- a/nixpkgs/pkgs/development/libraries/tachyon/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tachyon/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
   '';
   meta = {
     description = "A Parallel / Multiprocessor Ray Tracing System";
+    mainProgram = "tachyon";
     license = lib.licenses.bsd3;
     maintainers = [lib.maintainers.raskin];
     platforms = with lib.platforms; linux ++ cygwin ++ darwin;
diff --git a/nixpkgs/pkgs/development/libraries/taco/default.nix b/nixpkgs/pkgs/development/libraries/taco/default.nix
index 1bd404806f10..693b5f25f990 100644
--- a/nixpkgs/pkgs/development/libraries/taco/default.nix
+++ b/nixpkgs/pkgs/development/libraries/taco/default.nix
@@ -47,6 +47,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Computes sparse tensor expressions on CPUs and GPUs";
+    mainProgram = "taco";
     license = licenses.mit;
     homepage = "https://github.com/tensor-compiler/taco";
     maintainers = [ maintainers.sheepforce ];
diff --git a/nixpkgs/pkgs/development/libraries/taglib-extras/default.nix b/nixpkgs/pkgs/development/libraries/taglib-extras/default.nix
index acb52cc53dbf..5ba1a5e20182 100644
--- a/nixpkgs/pkgs/development/libraries/taglib-extras/default.nix
+++ b/nixpkgs/pkgs/development/libraries/taglib-extras/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Additional taglib plugins";
+    mainProgram = "taglib-extras-config";
     platforms = platforms.unix;
     license = licenses.lgpl2;
   };
diff --git a/nixpkgs/pkgs/development/libraries/taglib/default.nix b/nixpkgs/pkgs/development/libraries/taglib/default.nix
index aa759ddbbb02..fc3914b26d29 100644
--- a/nixpkgs/pkgs/development/libraries/taglib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/taglib/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://taglib.org/";
     description = "A library for reading and editing audio file metadata";
+    mainProgram = "taglib-config";
     longDescription = ''
       TagLib is a library for reading and editing the meta-data of several
       popular audio formats. Currently it supports both ID3v1 and ID3v2 for MP3
diff --git a/nixpkgs/pkgs/development/libraries/termbench-pro/default.nix b/nixpkgs/pkgs/development/libraries/termbench-pro/default.nix
index 11edecf31cc7..5291536f695f 100644
--- a/nixpkgs/pkgs/development/libraries/termbench-pro/default.nix
+++ b/nixpkgs/pkgs/development/libraries/termbench-pro/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Terminal Benchmarking as CLI and library";
+    mainProgram = "tbp";
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ moni ];
diff --git a/nixpkgs/pkgs/development/libraries/text-engine/default.nix b/nixpkgs/pkgs/development/libraries/text-engine/default.nix
index 0a9004d01a58..120076a7e0d7 100644
--- a/nixpkgs/pkgs/development/libraries/text-engine/default.nix
+++ b/nixpkgs/pkgs/development/libraries/text-engine/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Rich text framework for GTK";
+    mainProgram = "text-engine-demo";
     homepage = "https://github.com/mjakeman/text-engine";
     license = with licenses; [ mpl20 lgpl21Plus ];
     maintainers = with maintainers; [ foo-dogsquared ];
diff --git a/nixpkgs/pkgs/development/libraries/thrift/0.10.nix b/nixpkgs/pkgs/development/libraries/thrift/0.10.nix
deleted file mode 100644
index 3cfe56e3f7a9..000000000000
--- a/nixpkgs/pkgs/development/libraries/thrift/0.10.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib, stdenv, fetchurl, boost, zlib, libevent, openssl, python3, pkg-config, bison
-, flex
-}:
-
-stdenv.mkDerivation rec {
-  pname = "thrift";
-  version = "0.10.0";
-
-  src = fetchurl {
-    url = "https://archive.apache.org/dist/thrift/${version}/${pname}-${version}.tar.gz";
-    sha256 = "02x1xw0l669idkn6xww39j60kqxzcbmim4mvpb5h9nz8wqnx1292";
-  };
-
-  #enableParallelBuilding = true; problems on hydra
-
-  # Workaround to make the python wrapper not drop this package:
-  # pythonFull.buildEnv.override { extraLibs = [ thrift ]; }
-  pythonPath = [];
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [
-    boost zlib libevent openssl bison flex (python3.withPackages (ps: [ps.twisted]))
-  ];
-
-  preConfigure = "export PY_PREFIX=$out";
-
-  # TODO: package boost-test, so we can run the test suite. (Currently it fails
-  # to find libboost_unit_test_framework.a.)
-  configureFlags = [ "--enable-tests=no" ];
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Library for scalable cross-language services";
-    homepage = "https://thrift.apache.org/";
-    license = licenses.asl20;
-    platforms = platforms.linux ++ platforms.darwin;
-    maintainers = [ maintainers.bjornfor ];
-    knownVulnerabilities = [
-      "CVE-2018-1320"
-      "CVE-2018-11798"
-      "CVE-2019-0205"
-      "CVE-2019-0210"
-      "CVE-2020-13949"
-    ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/thrift/default.nix b/nixpkgs/pkgs/development/libraries/thrift/default.nix
index acb3a2404870..3d0a9d8a7874 100644
--- a/nixpkgs/pkgs/development/libraries/thrift/default.nix
+++ b/nixpkgs/pkgs/development/libraries/thrift/default.nix
@@ -131,6 +131,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library for scalable cross-language services";
+    mainProgram = "thrift";
     homepage = "https://thrift.apache.org/";
     license = licenses.asl20;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/development/libraries/tidyp/default.nix b/nixpkgs/pkgs/development/libraries/tidyp/default.nix
index c2a8ae0337ac..aa54616cf42a 100644
--- a/nixpkgs/pkgs/development/libraries/tidyp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tidyp/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A program that can validate your HTML, as well as modify it to be more clean and standard";
+    mainProgram = "tidyp";
     homepage = "http://tidyp.com/";
     platforms = platforms.all;
     maintainers = with maintainers; [ pSub ];
diff --git a/nixpkgs/pkgs/development/libraries/tinycbor/default.nix b/nixpkgs/pkgs/development/libraries/tinycbor/default.nix
index 4826c2b49c1f..9f9a060d74d8 100644
--- a/nixpkgs/pkgs/development/libraries/tinycbor/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tinycbor/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Concise Binary Object Representation (CBOR) Library";
+    mainProgram = "cbordump";
     homepage = "https://github.com/intel/tinycbor";
     license = licenses.mit;
     maintainers = with maintainers; [ oxzi ];
diff --git a/nixpkgs/pkgs/development/libraries/tinycdb/default.nix b/nixpkgs/pkgs/development/libraries/tinycdb/default.nix
index 2d9cb53e7949..c13e97e968bf 100644
--- a/nixpkgs/pkgs/development/libraries/tinycdb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tinycdb/default.nix
@@ -41,6 +41,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
 
     description = "utility to manipulate constant databases (cdb)";
+    mainProgram = "cdb";
 
     longDescription = ''
       tinycdb is a small, fast and reliable utility and subroutine
diff --git a/nixpkgs/pkgs/development/libraries/tracker/default.nix b/nixpkgs/pkgs/development/libraries/tracker/default.nix
index db9f7f1cfbf5..45c5eb10152c 100644
--- a/nixpkgs/pkgs/development/libraries/tracker/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tracker/default.nix
@@ -173,6 +173,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Projects/Tracker";
     description = "Desktop-neutral user information store, search tool and indexer";
+    mainProgram = "tracker3";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/tsocks/default.nix b/nixpkgs/pkgs/development/libraries/tsocks/default.nix
index a489f679c6ce..c12f9a44ac6d 100644
--- a/nixpkgs/pkgs/development/libraries/tsocks/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tsocks/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Transparent SOCKS v4 proxying library";
+    mainProgram = "tsocks";
     homepage = "https://tsocks.sourceforge.net/";
     license = lib.licenses.gpl2;
     maintainers = with maintainers; [ edwtjo ];
diff --git a/nixpkgs/pkgs/development/libraries/twolame/default.nix b/nixpkgs/pkgs/development/libraries/twolame/default.nix
index 3537dd3029b6..e81e47e094aa 100644
--- a/nixpkgs/pkgs/development/libraries/twolame/default.nix
+++ b/nixpkgs/pkgs/development/libraries/twolame/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation {
 
   meta = with lib;{
     description = "A MP2 encoder";
+    mainProgram = "twolame";
     longDescription = ''
       TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
       tooLAME by Mike Cheng, which in turn is based upon the ISO dist10
diff --git a/nixpkgs/pkgs/development/libraries/ucc/default.nix b/nixpkgs/pkgs/development/libraries/ucc/default.nix
index 68f358b3d3de..09e10565bb2e 100644
--- a/nixpkgs/pkgs/development/libraries/ucc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ucc/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Collective communication operations API";
+    mainProgram = "ucc_info";
     license = licenses.bsd3;
     maintainers = [ maintainers.markuskowa ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/uci/default.nix b/nixpkgs/pkgs/development/libraries/uci/default.nix
index 43e6cb9d697d..55281e78ac74 100644
--- a/nixpkgs/pkgs/development/libraries/uci/default.nix
+++ b/nixpkgs/pkgs/development/libraries/uci/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "OpenWrt Unified Configuration Interface";
+    mainProgram = "uci";
     homepage = "https://git.openwrt.org/?p=project/uci.git;a=summary";
     license = licenses.lgpl21Only;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/ucx/default.nix b/nixpkgs/pkgs/development/libraries/ucx/default.nix
index 3b923d8efdd2..8e0772479ccb 100644
--- a/nixpkgs/pkgs/development/libraries/ucx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ucx/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   ]
   ++ lib.optionals enableCuda [
     cudaPackages.cuda_nvcc
-    cudaPackages.autoAddOpenGLRunpathHook
+    cudaPackages.autoAddDriverRunpath
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/udns/default.nix b/nixpkgs/pkgs/development/libraries/udns/default.nix
index 518ed432b723..27b60937752c 100644
--- a/nixpkgs/pkgs/development/libraries/udns/default.nix
+++ b/nixpkgs/pkgs/development/libraries/udns/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl }:
 
 # this expression is mostly based on debian's packaging
-# https://tracker.debian.org/media/packages/u/udns/rules-0.4-1
+# https://tracker.debian.org/media/packages/u/udns/rules-0.5-1
 
 stdenv.mkDerivation rec {
   pname = "udns";
-  version = "0.4";
+  version = "0.5";
 
   configurePhase = "./configure --enable-ipv6";
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://www.corpit.ru/mjt/udns/${pname}-${version}.tar.gz";
-    sha256 = "0447fv1hmb44nnchdn6p5pd9b44x8p5jn0ahw6crwbqsg7f0hl8i";
+    sha256 = "sha256-A1v8EuOBnQq6j0DugiCpdLfpspwyWdMQlwzEstHCA8A=";
   };
 
   # udns uses a very custom build and hardcodes a .so name in a few places.
diff --git a/nixpkgs/pkgs/development/libraries/unixODBCDrivers/default.nix b/nixpkgs/pkgs/development/libraries/unixODBCDrivers/default.nix
index 4d4d837e2e92..7e4a8b4f6cce 100644
--- a/nixpkgs/pkgs/development/libraries/unixODBCDrivers/default.nix
+++ b/nixpkgs/pkgs/development/libraries/unixODBCDrivers/default.nix
@@ -64,14 +64,6 @@
     buildInputs = [ unixODBC openssl libiconv zlib ]
       ++ lib.optionals stdenv.isDarwin [ libkrb5 ];
 
-    # TODO: remove preConfigure on staging
-    preConfigure = if !stdenv.isDarwin then ''
-      # we don't want to build a .pkg
-      substituteInPlace CMakeLists.txt \
-        --replace "IF(APPLE)" "IF(0)" \
-        --replace "CMAKE_SYSTEM_NAME MATCHES AIX" "APPLE"
-    '' else null;
-
     cmakeFlags = [
       "-DWITH_EXTERNAL_ZLIB=ON"
       "-DODBC_LIB_DIR=${lib.getLib unixODBC}/lib"
diff --git a/nixpkgs/pkgs/development/libraries/usbredir/default.nix b/nixpkgs/pkgs/development/libraries/usbredir/default.nix
index c7e8a361ee16..e4a8c7628bc8 100644
--- a/nixpkgs/pkgs/development/libraries/usbredir/default.nix
+++ b/nixpkgs/pkgs/development/libraries/usbredir/default.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "USB traffic redirection protocol";
+    mainProgram = "usbredirect";
     homepage = "https://www.spice-space.org/usbredir.html";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ offline ];
diff --git a/nixpkgs/pkgs/development/libraries/ustr/default.nix b/nixpkgs/pkgs/development/libraries/ustr/default.nix
index b0e4ab6c064e..598e5e7c76a1 100644
--- a/nixpkgs/pkgs/development/libraries/ustr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ustr/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.and.org/ustr/";
     description = "Micro String API for C language";
+    mainProgram = "ustr-import";
     license = licenses.bsd2;
     maintainers = [ ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/v8/default.nix b/nixpkgs/pkgs/development/libraries/v8/default.nix
index 7edf2cdf7c46..37cc66834462 100644
--- a/nixpkgs/pkgs/development/libraries/v8/default.nix
+++ b/nixpkgs/pkgs/development/libraries/v8/default.nix
@@ -79,6 +79,14 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./darwin.patch
+
+    # gcc-13 build fix for mixxign <cstdint> includes
+    (fetchpatch {
+      name = "gcc-13.patch";
+      url  = "https://chromium.googlesource.com/v8/v8/+/c2792e58035fcbaa16d0cb70998852fbeb5df4cc^!?format=TEXT";
+      decode = "base64 -d";
+      hash = "sha256-hoPAkSaCmzXflPFXaKUwVPLECMpt6N6/8m8mBSTAHbU=";
+    })
   ];
 
   src = v8Src;
@@ -174,6 +182,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://v8.dev/";
     description = "Google's open source JavaScript engine";
+    mainProgram = "d8";
     maintainers = with maintainers; [ proglodyte matthewbauer ];
     platforms = platforms.unix;
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/libraries/vigra/default.nix b/nixpkgs/pkgs/development/libraries/vigra/default.nix
index 677406d275a8..4e3aab9a5532 100644
--- a/nixpkgs/pkgs/development/libraries/vigra/default.nix
+++ b/nixpkgs/pkgs/development/libraries/vigra/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Novel computer vision C++ library with customizable algorithms and data structures";
+    mainProgram = "vigra-config";
     homepage = "https://hci.iwr.uni-heidelberg.de/vigra";
     license = licenses.mit;
     maintainers = [ maintainers.viric ];
diff --git a/nixpkgs/pkgs/development/libraries/virglrenderer/default.nix b/nixpkgs/pkgs/development/libraries/virglrenderer/default.nix
index fa67cbb7edd7..a20f26157ffc 100644
--- a/nixpkgs/pkgs/development/libraries/virglrenderer/default.nix
+++ b/nixpkgs/pkgs/development/libraries/virglrenderer/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A virtual 3D GPU library that allows a qemu guest to use the host GPU for accelerated 3D rendering";
+    mainProgram = "virgl_test_server";
     homepage = "https://virgil3d.github.io/";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/volume-key/default.nix b/nixpkgs/pkgs/development/libraries/volume-key/default.nix
index 2c2774521762..e6aa378d01e5 100644
--- a/nixpkgs/pkgs/development/libraries/volume-key/default.nix
+++ b/nixpkgs/pkgs/development/libraries/volume-key/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A library for manipulating storage volume encryption keys and storing them separately from volumes to handle forgotten passphrases, and the associated command-line tool";
+    mainProgram = "volume_key";
     homepage = "https://pagure.io/volume_key/";
     license = licenses.gpl2;
     maintainers = with maintainers; [];
diff --git a/nixpkgs/pkgs/development/libraries/vrb/default.nix b/nixpkgs/pkgs/development/libraries/vrb/default.nix
index 1ebc37cdf2f3..b4a2f9a388f1 100644
--- a/nixpkgs/pkgs/development/libraries/vrb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/vrb/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A virtual ring buffer library written in C";
+    mainProgram = "vbuf";
     license     = licenses.lgpl21;
     homepage    = "http://vrb.sourceforge.net/";
     maintainers = [ maintainers.bobvanderlinden ];
diff --git a/nixpkgs/pkgs/development/libraries/waffle/default.nix b/nixpkgs/pkgs/development/libraries/waffle/default.nix
index b24c8262794f..6867f9da410e 100644
--- a/nixpkgs/pkgs/development/libraries/waffle/default.nix
+++ b/nixpkgs/pkgs/development/libraries/waffle/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A cross-platform C library that allows one to defer selection of an OpenGL API and window system until runtime";
+    mainProgram = "wflinfo";
     homepage = "https://www.waffle-gl.org/";
     license = licenses.bsd2;
     platforms = platforms.mesaPlatforms;
diff --git a/nixpkgs/pkgs/development/libraries/wavpack/default.nix b/nixpkgs/pkgs/development/libraries/wavpack/default.nix
index bb0a43d24c0f..4cd3007043cf 100644
--- a/nixpkgs/pkgs/development/libraries/wavpack/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wavpack/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "wavpack";
-  version = "5.6.0";
+  version = "5.7.0";
 
   enableParallelBuilding = true;
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     owner = "dbry";
     repo = "WavPack";
     rev = version;
-    hash = "sha256-fWAGE87JTNTnYoxrkMf3I8C53kZrQiiBy3Zyg0cw8Og=";
+    hash = "sha256-vFZxg1mVqE7Kp38vEGA5V8m2tjqhssFsUZURixhlfk0=";
   };
 
   outputs = [ "out" "dev" "doc" "man" ];
diff --git a/nixpkgs/pkgs/development/libraries/wayland/default.nix b/nixpkgs/pkgs/development/libraries/wayland/default.nix
index b4e203f5ed26..8bc53de162f7 100644
--- a/nixpkgs/pkgs/development/libraries/wayland/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wayland/default.nix
@@ -116,6 +116,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Core Wayland window system code and protocol";
+    mainProgram = "wayland-scanner";
     longDescription = ''
       Wayland is a project to define a protocol for a compositor to talk to its
       clients as well as a library implementation of the protocol.
diff --git a/nixpkgs/pkgs/development/libraries/waylandpp/default.nix b/nixpkgs/pkgs/development/libraries/waylandpp/default.nix
index 551712f89f5f..7eeeb2467edd 100644
--- a/nixpkgs/pkgs/development/libraries/waylandpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/waylandpp/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Wayland C++ binding";
+    mainProgram = "wayland-scanner++";
     homepage = "https://github.com/NilsBrause/waylandpp/";
     license = with lib.licenses; [ bsd2 hpnd ];
     maintainers = with lib.maintainers; [ minijackson ];
diff --git a/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix b/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix
index 58f0f190ae27..7ca5ffc19020 100644
--- a/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix
@@ -235,6 +235,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Web content rendering engine, GTK port";
+    mainProgram = "WebKitWebDriver";
     homepage = "https://webkitgtk.org/";
     license = licenses.bsd2;
     pkgConfigModules = [
diff --git a/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/default.nix b/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/default.nix
index 1b847528550e..7e9fe3fa4a39 100644
--- a/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/default.nix
+++ b/nixpkgs/pkgs/development/libraries/webrtc-audio-processing/default.nix
@@ -44,12 +44,18 @@ stdenv.mkDerivation rec {
 
   buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ ApplicationServices Foundation ]);
 
+  env = lib.optionalAttrs stdenv.isx86_32 {
+    # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/5
+    NIX_CFLAGS_COMPILE = "-msse2";
+  };
+
   meta = with lib; {
     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/master/webrtc/rtc_base/system/arch.h
-    # x86-32 disabled due to https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/5
-    platforms = intersectLists platforms.unix (platforms.aarch64 ++ platforms.mips ++ platforms.riscv ++ platforms.x86_64);
+    platforms = platforms.unix;
+    # BE platforms are unsupported
+    # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/31
+    badPlatforms = platforms.bigEndian;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/wiiuse/default.nix b/nixpkgs/pkgs/development/libraries/wiiuse/default.nix
index d5d34fb618d6..b3fe94349453 100644
--- a/nixpkgs/pkgs/development/libraries/wiiuse/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wiiuse/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Feature complete cross-platform Wii Remote access library";
+    mainProgram = "wiiuseexample";
     license = licenses.gpl3Plus;
     homepage = "https://github.com/wiiuse/wiiuse";
     maintainers = with maintainers; [ shamilton ];
diff --git a/nixpkgs/pkgs/development/libraries/wildmidi/default.nix b/nixpkgs/pkgs/development/libraries/wildmidi/default.nix
index 23dc8dc3b053..c09ee248d211 100644
--- a/nixpkgs/pkgs/development/libraries/wildmidi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wildmidi/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Software MIDI player and library";
+    mainProgram = "wildmidi";
     longDescription = ''
       WildMIDI is a simple software midi player which has a core softsynth
       library that can be use with other applications.
diff --git a/nixpkgs/pkgs/development/libraries/wiredtiger/default.nix b/nixpkgs/pkgs/development/libraries/wiredtiger/default.nix
index 28f66b8d31cf..a87afd7ee09f 100644
--- a/nixpkgs/pkgs/development/libraries/wiredtiger/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wiredtiger/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://wiredtiger.com/";
     description = "";
+    mainProgram = "wt";
     license = licenses.gpl2;
     platforms = intersectLists platforms.unix platforms.x86_64;
   };
diff --git a/nixpkgs/pkgs/development/libraries/wlroots/default.nix b/nixpkgs/pkgs/development/libraries/wlroots/default.nix
index e9265de54c61..61027c374c11 100644
--- a/nixpkgs/pkgs/development/libraries/wlroots/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wlroots/default.nix
@@ -134,8 +134,8 @@ rec {
   };
 
   wlroots_0_17 = generic {
-    version = "0.17.1";
-    hash = "sha256-Z0gWM7AQqJOSr2maUtjdgk/MF6pyeyFMMTaivgt+RMI=";
+    version = "0.17.2";
+    hash = "sha256-Of9qykyVnBURc5A2pvCMm7sLbnuuG7OPWLxodQLN2Xg=";
     extraBuildInputs = [
       ffmpeg
       hwdata
diff --git a/nixpkgs/pkgs/development/libraries/wolfssl/default.nix b/nixpkgs/pkgs/development/libraries/wolfssl/default.nix
index 60a6e10c8334..76a07212c785 100644
--- a/nixpkgs/pkgs/development/libraries/wolfssl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wolfssl/default.nix
@@ -14,13 +14,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "wolfssl-${variant}";
-  version = "5.6.6";
+  version = "5.7.0";
 
   src = fetchFromGitHub {
     owner = "wolfSSL";
     repo = "wolfssl";
     rev = "refs/tags/v${finalAttrs.version}-stable";
-    hash = "sha256-HXl8GgngC1J8Dlt7fXBrVRa+IV7thVr+MIpeuf3Khcg=";
+    hash = "sha256-4j1GqeZJn5UWx56DjGjge05jlzBbIGn4IXxcaIBxON4=";
   };
 
   postPatch = ''
@@ -97,6 +97,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A small, fast, portable implementation of TLS/SSL for embedded devices";
+    mainProgram = "wolfssl-config";
     homepage = "https://www.wolfssl.com/";
     changelog = "https://github.com/wolfSSL/wolfssl/releases/tag/v${finalAttrs.version}-stable";
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/wt/default.nix b/nixpkgs/pkgs/development/libraries/wt/default.nix
index f9dd1d06ee33..a58a8ca6b3ec 100644
--- a/nixpkgs/pkgs/development/libraries/wt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wt/default.nix
@@ -46,7 +46,7 @@ let
     };
 in {
   wt4 = generic {
-    version = "4.10.0";
-    sha256 = "sha256-05WZnyUIwXwJA24mQi5ATCqRZ6PE/tiw2/MO1qYHRsY=";
+    version = "4.10.4";
+    sha256 = "sha256-O2waUKGTw8kZw+6qBMqG9tNN92aGL+WCrcPOGAG7HO0=";
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/wxSVG/default.nix b/nixpkgs/pkgs/development/libraries/wxSVG/default.nix
index 0119a2c03776..8519cbaacc24 100644
--- a/nixpkgs/pkgs/development/libraries/wxSVG/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wxSVG/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wxsvg.sourceforge.net/";
     description = "A SVG manipulation library built with wxWidgets";
+    mainProgram = "svgview";
     longDescription = ''
       wxSVG is C++ library to create, manipulate and render Scalable Vector
       Graphics (SVG) files with the wxWidgets toolkit.
diff --git a/nixpkgs/pkgs/development/libraries/wxsqliteplus/default.nix b/nixpkgs/pkgs/development/libraries/wxsqliteplus/default.nix
index 7ae728d90552..3bb7729f7db0 100644
--- a/nixpkgs/pkgs/development/libraries/wxsqliteplus/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wxsqliteplus/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple SQLite database browser built with wxWidgets";
+    mainProgram = "wxsqliteplus";
     homepage = "https://github.com/guanlisheng/wxsqliteplus";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.vrthra ];
diff --git a/nixpkgs/pkgs/development/libraries/x264/default.nix b/nixpkgs/pkgs/development/libraries/x264/default.nix
index a011cf9c2000..f857b2a0b89e 100644
--- a/nixpkgs/pkgs/development/libraries/x264/default.nix
+++ b/nixpkgs/pkgs/development/libraries/x264/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library for encoding H264/AVC video streams";
+    mainProgram = "x264";
     homepage = "http://www.videolan.org/developers/x264.html";
     license = licenses.gpl2Plus;
     platforms = platforms.unix ++ platforms.windows;
diff --git a/nixpkgs/pkgs/development/libraries/x265/default.nix b/nixpkgs/pkgs/development/libraries/x265/default.nix
index 1fc5f3129c0e..7f44834d4867 100644
--- a/nixpkgs/pkgs/development/libraries/x265/default.nix
+++ b/nixpkgs/pkgs/development/libraries/x265/default.nix
@@ -147,6 +147,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library for encoding H.265/HEVC video streams";
+    mainProgram = "x265";
     homepage = "https://www.x265.org/";
     changelog = "https://x265.readthedocs.io/en/master/releasenotes.html#version-${lib.strings.replaceStrings ["."] ["-"] version}";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/libraries/xalanc/default.nix b/nixpkgs/pkgs/development/libraries/xalanc/default.nix
index 2b5f2379fde7..707f819f1329 100644
--- a/nixpkgs/pkgs/development/libraries/xalanc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xalanc/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://xalan.apache.org/";
     description = "A XSLT processor for transforming XML documents";
+    mainProgram = "Xalan";
     license = lib.licenses.asl20;
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
     maintainers = [ lib.maintainers.jagajaga ];
diff --git a/nixpkgs/pkgs/development/libraries/xapian/default.nix b/nixpkgs/pkgs/development/libraries/xapian/default.nix
index f9fe5bac07fe..7a06951f8422 100644
--- a/nixpkgs/pkgs/development/libraries/xapian/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xapian/default.nix
@@ -59,5 +59,5 @@ in {
   # Don't forget to change the hashes in xapian-omega and
   # python3Packages.xapian. They inherit the version from this package, and
   # should always be built with the equivalent xapian version.
-  xapian_1_4 = generic "1.4.24" "sha256-7aWubc9rBVOoZ2r2Sx/TBOmYzSD3eQMcyq96uaNzUxo=";
+  xapian_1_4 = generic "1.4.25" "sha256-DJnf3YF1cctWibxBKn4CFAeTgxPzjqOnD6O/hkEGCO4=";
 }
diff --git a/nixpkgs/pkgs/development/libraries/xapian/tools/omega/default.nix b/nixpkgs/pkgs/development/libraries/xapian/tools/omega/default.nix
index cba74b977de7..e8c238a24b11 100644
--- a/nixpkgs/pkgs/development/libraries/xapian/tools/omega/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xapian/tools/omega/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://oligarchy.co.uk/xapian/${version}/xapian-omega-${version}.tar.xz";
-    hash = "sha256-0IdW5PM7GJFsyKJJPTEfHL647UNXvUD6XBdErcCA6/8=";
+    hash = "sha256-L8C1BeYG1eHc3h8iNitvAjfZ6Ef8m2r1OPmbyavR/Ms=";
   };
 
   buildInputs = [ xapian perl pcre2 zlib libmagic ];
diff --git a/nixpkgs/pkgs/development/libraries/xavs/default.nix b/nixpkgs/pkgs/development/libraries/xavs/default.nix
index 25dd7fdad7ef..2d0960e3ff52 100644
--- a/nixpkgs/pkgs/development/libraries/xavs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xavs/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "AVS encoder and decoder";
+    mainProgram = "xavs";
     homepage    = "https://xavs.sourceforge.net/";
     license     = licenses.lgpl2;
     platforms   = platforms.linux ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/development/libraries/xgboost/default.nix b/nixpkgs/pkgs/development/libraries/xgboost/default.nix
index b700dd2581c4..67190d7cac76 100644
--- a/nixpkgs/pkgs/development/libraries/xgboost/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xgboost/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ]
     ++ lib.optionals stdenv.isDarwin [ llvmPackages.openmp ]
-    ++ lib.optionals cudaSupport [ cudaPackages.autoAddOpenGLRunpathHook ]
+    ++ lib.optionals cudaSupport [ cudaPackages.autoAddDriverRunpath ]
     ++ lib.optionals rLibrary [ R ];
 
   buildInputs = [ gtest ] ++ lib.optional cudaSupport cudaPackages.cudatoolkit
diff --git a/nixpkgs/pkgs/development/libraries/xsd/default.nix b/nixpkgs/pkgs/development/libraries/xsd/default.nix
index 2d614ee0e731..8096b2edd295 100644
--- a/nixpkgs/pkgs/development/libraries/xsd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xsd/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.codesynthesis.com/products/xsd";
     description = "An open-source, cross-platform W3C XML Schema to C++ data binding compiler";
+    mainProgram = "xsd";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.jagajaga ];
diff --git a/nixpkgs/pkgs/development/libraries/yubico-pam/default.nix b/nixpkgs/pkgs/development/libraries/yubico-pam/default.nix
index e417de5e1ff0..bcd6a245bb4f 100644
--- a/nixpkgs/pkgs/development/libraries/yubico-pam/default.nix
+++ b/nixpkgs/pkgs/development/libraries/yubico-pam/default.nix
@@ -10,6 +10,8 @@
 , yubikey-personalization
 , libyubikey
 , libykclient
+, CoreServices
+, SystemConfiguration
 }:
 
 stdenv.mkDerivation rec {
@@ -23,10 +25,12 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config asciidoc libxslt docbook_xsl ];
-  buildInputs = [ pam yubikey-personalization libyubikey libykclient ];
+  buildInputs = [ pam yubikey-personalization libyubikey libykclient ]
+    ++ lib.optionals stdenv.isDarwin [ CoreServices SystemConfiguration ];
 
   meta = with lib; {
     description = "Yubico PAM module";
+    mainProgram = "ykpamcfg";
     homepage = "https://developers.yubico.com/yubico-pam";
     license = licenses.bsd2;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/nixpkgs/pkgs/development/libraries/yyjson/default.nix b/nixpkgs/pkgs/development/libraries/yyjson/default.nix
index 7fe163362864..86a286ef2e2d 100644
--- a/nixpkgs/pkgs/development/libraries/yyjson/default.nix
+++ b/nixpkgs/pkgs/development/libraries/yyjson/default.nix
@@ -19,11 +19,11 @@ stdenv.mkDerivation (finalAttrs: {
     cmake
   ];
 
-  meta = with lib; {
+  meta = {
     description = "The fastest JSON library in C";
     homepage = "https://github.com/ibireme/yyjson";
     changelog = "https://github.com/ibireme/yyjson/blob/${finalAttrs.src.rev}/CHANGELOG.md";
-    license = licenses.mit;
-    maintainers = with maintainers; [ federicoschonborn ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ federicoschonborn ];
   };
 })
diff --git a/nixpkgs/pkgs/development/libraries/zeroc-ice/default.nix b/nixpkgs/pkgs/development/libraries/zeroc-ice/default.nix
index f62dec911d81..3ccb7c17f9c9 100644
--- a/nixpkgs/pkgs/development/libraries/zeroc-ice/default.nix
+++ b/nixpkgs/pkgs/development/libraries/zeroc-ice/default.nix
@@ -22,13 +22,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "zeroc-ice";
-  version = "3.7.7";
+  version = "3.7.10";
 
   src = fetchFromGitHub {
     owner = "zeroc-ice";
     repo = "ice";
     rev = "v${version}";
-    sha256 = "sha256-h455isEmnRyoasXhh1UaA5PICcEEM8/C3IJf5yHRl5g=";
+    hash = "sha256-l3cKsR8HSdtFGw1S12xueQOu/U9ABlOxQQtbHBj2izs=";
   };
 
   buildInputs = [ zeroc_mcpp bzip2 expat libedit lmdb openssl libxcrypt ];
diff --git a/nixpkgs/pkgs/development/libraries/zookeeper_mt/default.nix b/nixpkgs/pkgs/development/libraries/zookeeper_mt/default.nix
index ce539d9eb1c0..0d95e8f34b71 100644
--- a/nixpkgs/pkgs/development/libraries/zookeeper_mt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/zookeeper_mt/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://apache/zookeeper/${zookeeper.pname}-${version}/apache-${zookeeper.pname}-${version}.tar.gz";
-    hash = "sha512-V1SFPtSytFZMyiR/cgwLA9zPUK5xuarP3leQCQiSfelUHnYMB+R6ZQfSHMHD9t+URvLc+KRFSriLTzethspkpA==";
+    hash = "sha512-G6Yw9HBF43QCw8FTLnJ7boCjUYwaQVQAT4wXqUowSlzox1cUPH5+8ZYMBxToJCbr0ppmz22t0uKsHRUI/IDAPQ==";
   };
 
   sourceRoot = "apache-${zookeeper.pname}-${version}/zookeeper-client/zookeeper-client-c";
diff --git a/nixpkgs/pkgs/development/lisp-modules/packages.nix b/nixpkgs/pkgs/development/lisp-modules/packages.nix
index 2b26ba64c15b..73cc1f35c657 100644
--- a/nixpkgs/pkgs/development/lisp-modules/packages.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/packages.nix
@@ -362,7 +362,7 @@ let
 
   nyxt-gtk = build-asdf-system {
     pname = "nyxt";
-    version = "3.11.4";
+    version = "3.11.5";
 
     lispLibs = (with super; [
       alexandria
@@ -445,6 +445,8 @@ let
                     "slynk/profiler" "slynk/stickers" "slynk/indentation"
                     "slynk/retro" ];
       }))
+      iterate
+      symbol-munger
     ]) ++ (with self; [
       history-tree
       nhooks
@@ -457,7 +459,6 @@ let
       nfiles
       cl-containers
       # remove this override after quicklisp one is updated.
-      # Because of building failure with new sbcl, the slime version is different from the nyxt pinned one
       (swank.overrideAttrs (final: prev: {
         src = pkgs.fetchFromGitHub {
           owner = "slime";
@@ -472,8 +473,8 @@ let
     src = pkgs.fetchFromGitHub {
       owner = "atlas-engineer";
       repo = "nyxt";
-      rev = "3.11.4";
-      hash = "sha256-5LhpcuQTioOXZtzwN9B1vWo/xsYXxn9fSKRCdhSPM7A=";
+      rev = "3.11.5";
+      hash = "sha256-l3igC4jfCvx7Q0WO2Zf2ByWLz7sCteYdW1rNvwrc97g=";
     };
 
     nativeBuildInputs = [ pkgs.makeWrapper ];
diff --git a/nixpkgs/pkgs/development/lua-modules/generated-packages.nix b/nixpkgs/pkgs/development/lua-modules/generated-packages.nix
index 3bc58c29ff96..f63a2acd23dc 100644
--- a/nixpkgs/pkgs/development/lua-modules/generated-packages.nix
+++ b/nixpkgs/pkgs/development/lua-modules/generated-packages.nix
@@ -2726,6 +2726,30 @@ buildLuarocksPackage {
   };
 }) {};
 
+mimetypes = callPackage({ buildLuarocksPackage, fetchurl, lua, luaOlder }:
+buildLuarocksPackage {
+  pname = "mimetypes";
+  version = "1.0.0-3";
+  knownRockspec = (fetchurl {
+    url    = "mirror://luarocks/mimetypes-1.0.0-3.rockspec";
+    sha256 = "02f5x5pkz6fba71mp031arrgmddsyivn5fsa0pj3q3a7nxxpmnq9";
+  }).outPath;
+  src = fetchurl {
+    url    = "https://github.com/lunarmodules/lua-mimetypes/archive/v1.0.0/lua-mimetypes-1.0.0.tar.gz";
+    sha256 = "1rc5lnzvw4cg8wxn4w4sar2xgf5vaivdd2hgpxxcqfzzcmblg1zk";
+  };
+
+  disabled = (luaOlder "5.1");
+  propagatedBuildInputs = [ lua ];
+
+  meta = {
+    homepage = "https://github/lunarmodules/lua-mimetypes/";
+    description = "A simple library for looking up the MIME types of files.";
+    license.fullName = "MIT/X11";
+  };
+}) {};
+
+
 moonscript = callPackage({ argparse, buildLuarocksPackage, fetchgit, lpeg, lua, luaOlder, luafilesystem }:
 buildLuarocksPackage {
   pname = "moonscript";
@@ -3297,6 +3321,39 @@ buildLuarocksPackage {
   };
 }) {};
 
+tiktoken_core = callPackage({ buildLuarocksPackage, fetchgit, fetchurl, lua, luaOlder, luarocks-build-rust-mlua }:
+buildLuarocksPackage {
+  pname = "tiktoken_core";
+  version = "0.2.1-1";
+  knownRockspec = (fetchurl {
+    url    = "mirror://luarocks/tiktoken_core-0.2.1-1.rockspec";
+    sha256 = "0mdmrpg82vmk0cqiqdayyk4vvl299z0xqrg58q18dfs5nc27wkla";
+  }).outPath;
+  src = fetchgit ( removeAttrs (builtins.fromJSON ''{
+  "url": "https://github.com/gptlang/lua-tiktoken",
+  "rev": "61d831a81a01ba095f8c94e148b721b3aa7b1e45",
+  "date": "2024-03-03T23:24:06+00:00",
+  "path": "/nix/store/5ik17k726wl8hpz295n7dqq3438k8ddj-lua-tiktoken",
+  "sha256": "11lpzxmmb4zglkp9czlzggd8i46r7whpq021b5d3fx7bc5a81d3n",
+  "hash": "sha256-drSAVGHrdDdaWUEAfCE/2ZCI2nuffpbupO+TVWv/l4Y=",
+  "fetchLFS": false,
+  "fetchSubmodules": true,
+  "deepClone": false,
+  "leaveDotGit": false
+}
+ '') ["date" "path" "sha256"]) ;
+
+  disabled = (luaOlder "5.1");
+  propagatedBuildInputs = [ lua luarocks-build-rust-mlua ];
+
+  meta = {
+    homepage = "https://github.com/gptlang/lua-tiktoken";
+    description = "An experimental port of OpenAI's Tokenizer to lua";
+    maintainers = with lib.maintainers; [ natsukium ];
+    license.fullName = "MIT";
+  };
+}) {};
+
 tl = callPackage({ argparse, buildLuarocksPackage, compat53, fetchgit, fetchurl, luafilesystem }:
 buildLuarocksPackage {
   pname = "tl";
diff --git a/nixpkgs/pkgs/development/lua-modules/overrides.nix b/nixpkgs/pkgs/development/lua-modules/overrides.nix
index a0ad25043920..a397e59b8922 100644
--- a/nixpkgs/pkgs/development/lua-modules/overrides.nix
+++ b/nixpkgs/pkgs/development/lua-modules/overrides.nix
@@ -58,6 +58,18 @@
 final: prev:
 with prev;
 {
+  argparse = prev.argparse.overrideAttrs(oa: {
+
+    doCheck = true;
+    checkInputs = [ final.busted ];
+
+    checkPhase = ''
+      runHook preCheck
+      export LUA_PATH="src/?.lua;$LUA_PATH"
+      busted spec/
+      runHook postCheck
+    '';
+  });
   ##########################################3
   #### manual fixes for generated packages
   ##########################################3
@@ -642,6 +654,14 @@ with prev;
     '';
   });
 
+  tiktoken_core = prev.tiktoken_core.overrideAttrs (oa: {
+    cargoDeps = rustPlatform.fetchCargoTarball {
+      src = oa.src;
+      hash = "sha256-YApsOGfAw34zp069lyGR6FGjxty1bE23+Tic07f8zI4=";
+    };
+    nativeBuildInputs = oa.nativeBuildInputs ++ [ cargo rustPlatform.cargoSetupHook ];
+  });
+
   toml = prev.toml.overrideAttrs (oa: {
     patches = [ ./toml.patch ];
 
diff --git a/nixpkgs/pkgs/development/misc/avr/libc/default.nix b/nixpkgs/pkgs/development/misc/avr/libc/default.nix
index d7e9f0efe999..9b3ac75d1104 100644
--- a/nixpkgs/pkgs/development/misc/avr/libc/default.nix
+++ b/nixpkgs/pkgs/development/misc/avr/libc/default.nix
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
 
   passthru = {
     incdir = "/avr/include";
-    libdir = "/avr/lib";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/misc/avr8-burn-omat/default.nix b/nixpkgs/pkgs/development/misc/avr8-burn-omat/default.nix
index 34d53337f6af..0ee98bb954d4 100644
--- a/nixpkgs/pkgs/development/misc/avr8-burn-omat/default.nix
+++ b/nixpkgs/pkgs/development/misc/avr8-burn-omat/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GUI tool for avrdude";
+    mainProgram = "avr8-burn-omat";
     homepage = "http://avr8-burn-o-mat.aaabbb.de/avr8_burn_o_mat_avrdude_gui_en.html";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = lib.licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/misc/brev-cli/default.nix b/nixpkgs/pkgs/development/misc/brev-cli/default.nix
index 05ef47ee2794..39824b634b11 100644
--- a/nixpkgs/pkgs/development/misc/brev-cli/default.nix
+++ b/nixpkgs/pkgs/development/misc/brev-cli/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Connect your laptop to cloud computers";
+    mainProgram = "brev";
     homepage = "https://github.com/brevdev/brev-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
diff --git a/nixpkgs/pkgs/development/misc/datafusion/default.nix b/nixpkgs/pkgs/development/misc/datafusion/default.nix
index bcd937a914ea..78b8023c5f6d 100644
--- a/nixpkgs/pkgs/development/misc/datafusion/default.nix
+++ b/nixpkgs/pkgs/development/misc/datafusion/default.nix
@@ -34,6 +34,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "cli for Apache Arrow DataFusion";
+    mainProgram = "datafusion-cli";
     homepage = "https://arrow.apache.org/datafusion";
     changelog = "https://github.com/apache/arrow-datafusion/blob/${version}/datafusion/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix b/nixpkgs/pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix
index 28f2c7e812b0..7b7e64f7650b 100644
--- a/nixpkgs/pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix
+++ b/nixpkgs/pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix
@@ -1,17 +1,19 @@
-{ mkDerivation, ansi-wl-pprint, base, fetchFromGitHub, lib, process, QuickCheck
+{ mkDerivation, base, fetchFromGitHub, lib, prettyprinter
+, prettyprinter-ansi-terminal, process, QuickCheck, text
 , transformers, transformers-compat
 }:
 mkDerivation {
   pname = "hercules-ci-optparse-applicative";
-  version = "0.16.1.0";
+  version = "0.18.1.0";
   src = fetchFromGitHub {
     owner = "hercules-ci";
     repo = "optparse-applicative";
-    rev = "3d20deefbef2e66d3c075facc5d01c1aede34f3c";
-    sha256 = "sha256-FnFbPvy5iITT7rAjZBBUNQdo3UDP2z8iLg0MiIdXMdo=";
+    sha256 = "1cgxc80zfgzk4rrhspnlj7790jb0ddq7ybj7qjan5xmjjir90763";
+    rev = "a123939663ba1cd0f1750343f1c6b9864ac21207";
   };
   libraryHaskellDepends = [
-    ansi-wl-pprint base process transformers transformers-compat
+    base prettyprinter prettyprinter-ansi-terminal process text
+    transformers transformers-compat
   ];
   testHaskellDepends = [ base QuickCheck ];
   homepage = "https://github.com/hercules-ci/optparse-applicative";
diff --git a/nixpkgs/pkgs/development/misc/juce/default.nix b/nixpkgs/pkgs/development/misc/juce/default.nix
index ced9acc27c4f..7625c7df27bd 100644
--- a/nixpkgs/pkgs/development/misc/juce/default.nix
+++ b/nixpkgs/pkgs/development/misc/juce/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Cross-platform C++ application framework";
+    mainProgram = "juceaide";
     longDescription = "JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, RTAS and AAX audio plug-ins";
     homepage = "https://github.com/juce-framework/JUCE";
     license = with licenses; [ isc gpl3Plus ];
diff --git a/nixpkgs/pkgs/development/misc/loc/default.nix b/nixpkgs/pkgs/development/misc/loc/default.nix
index 9f6286d14f4c..405c45cd4ae9 100644
--- a/nixpkgs/pkgs/development/misc/loc/default.nix
+++ b/nixpkgs/pkgs/development/misc/loc/default.nix
@@ -16,6 +16,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://github.com/cgag/loc";
     description = "Count lines of code quickly";
+    mainProgram = "loc";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/misc/msp430/mspdebug.nix b/nixpkgs/pkgs/development/misc/msp430/mspdebug.nix
index 122b3cec4b72..43689420f803 100644
--- a/nixpkgs/pkgs/development/misc/msp430/mspdebug.nix
+++ b/nixpkgs/pkgs/development/misc/msp430/mspdebug.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A free programmer, debugger, and gdb proxy for MSP430 MCUs";
+    mainProgram = "mspdebug";
     homepage = "https://dlbeer.co.nz/mspdebug/";
     license = licenses.gpl2;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/misc/rappel/default.nix b/nixpkgs/pkgs/development/misc/rappel/default.nix
index 67e202a005fc..e00a6030acec 100644
--- a/nixpkgs/pkgs/development/misc/rappel/default.nix
+++ b/nixpkgs/pkgs/development/misc/rappel/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/yrp604/rappel";
     description = "A pretty janky assembly REPL";
+    mainProgram = "rappel";
     license = licenses.bsdOriginal;
     maintainers = [ maintainers.pamplemousse ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/misc/rpiboot/default.nix b/nixpkgs/pkgs/development/misc/rpiboot/default.nix
index 8930648cdaaa..69ea80db109f 100644
--- a/nixpkgs/pkgs/development/misc/rpiboot/default.nix
+++ b/nixpkgs/pkgs/development/misc/rpiboot/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/raspberrypi/usbboot";
     description = "Utility to boot a Raspberry Pi CM/CM3/CM4/Zero over USB";
+    mainProgram = "rpiboot";
     license = licenses.asl20;
     maintainers = with maintainers; [ cartr flokli ];
     platforms = [ "aarch64-linux" "aarch64-darwin" "armv7l-linux" "armv6l-linux" "x86_64-linux" "x86_64-darwin" ];
diff --git a/nixpkgs/pkgs/development/mobile/adbfs-rootless/default.nix b/nixpkgs/pkgs/development/mobile/adbfs-rootless/default.nix
index 674988dccb17..e959b88c6c6a 100644
--- a/nixpkgs/pkgs/development/mobile/adbfs-rootless/default.nix
+++ b/nixpkgs/pkgs/development/mobile/adbfs-rootless/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Mount Android phones on Linux with adb, no root required";
+    mainProgram = "adbfs";
     inherit (src.meta) homepage;
     license = licenses.bsd3;
     maintainers = with maintainers; [ aleksana ];
diff --git a/nixpkgs/pkgs/development/mobile/fdroidcl/default.nix b/nixpkgs/pkgs/development/mobile/fdroidcl/default.nix
index 6b6f676a8d4f..9b23443a3a2a 100644
--- a/nixpkgs/pkgs/development/mobile/fdroidcl/default.nix
+++ b/nixpkgs/pkgs/development/mobile/fdroidcl/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "F-Droid command line interface written in Go";
+    mainProgram = "fdroidcl";
     homepage = "https://github.com/mvdan/fdroidcl";
     license = licenses.bsd3;
     maintainers = with maintainers; [ aleksana ];
diff --git a/nixpkgs/pkgs/development/mobile/ios-webkit-debug-proxy/default.nix b/nixpkgs/pkgs/development/mobile/ios-webkit-debug-proxy/default.nix
index 4c9a5a4e35e1..a6e9be923e42 100644
--- a/nixpkgs/pkgs/development/mobile/ios-webkit-debug-proxy/default.nix
+++ b/nixpkgs/pkgs/development/mobile/ios-webkit-debug-proxy/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A DevTools proxy (Chrome Remote Debugging Protocol) for iOS devices (Safari Remote Web Inspector)";
+    mainProgram = "ios_webkit_debug_proxy";
     longDescription = ''
       The ios_webkit_debug_proxy (aka iwdp) proxies requests from usbmuxd
       daemon over a websocket connection, allowing developers to send commands
diff --git a/nixpkgs/pkgs/development/mobile/webos/novacomd.nix b/nixpkgs/pkgs/development/mobile/webos/novacomd.nix
index 3d9eb8de1030..34559354c275 100644
--- a/nixpkgs/pkgs/development/mobile/webos/novacomd.nix
+++ b/nixpkgs/pkgs/development/mobile/webos/novacomd.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Daemon for communicating with WebOS devices";
+    mainProgram = "novacomd";
     license = licenses.asl20;
     maintainers = with maintainers; [ dtzWill ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/node-packages/aliases.nix b/nixpkgs/pkgs/development/node-packages/aliases.nix
index 34751db8f193..64708d8ffd92 100644
--- a/nixpkgs/pkgs/development/node-packages/aliases.nix
+++ b/nixpkgs/pkgs/development/node-packages/aliases.nix
@@ -66,6 +66,7 @@ mapAliases {
   inherit (pkgs) clean-css-cli; # added 2023-08-18
   inherit (pkgs) clubhouse-cli; # added 2023-08-18
   coc-imselect = throw "coc-imselect was removed because it was broken"; # added 2023-08-21
+  coinmon = throw "coinmon was removed since it was abandoned upstream"; # added 2024-03-19
   coffee-script = pkgs.coffeescript; # added 2023-08-18
   inherit (pkgs) configurable-http-proxy; # added 2023-08-19
   inherit (pkgs) cordova; # added 2023-08-18
diff --git a/nixpkgs/pkgs/development/node-packages/node-packages.json b/nixpkgs/pkgs/development/node-packages/node-packages.json
index de10dd251f41..f7015177d57b 100644
--- a/nixpkgs/pkgs/development/node-packages/node-packages.json
+++ b/nixpkgs/pkgs/development/node-packages/node-packages.json
@@ -83,7 +83,6 @@
 , "coc-yaml"
 , "coc-yank"
 , "code-theme-converter"
-, "coinmon"
 , "concurrently"
 , "conventional-changelog-cli"
 , "cpy-cli"
diff --git a/nixpkgs/pkgs/development/node-packages/node-packages.nix b/nixpkgs/pkgs/development/node-packages/node-packages.nix
index b4e6477be9d3..9b498be3b7fa 100644
--- a/nixpkgs/pkgs/development/node-packages/node-packages.nix
+++ b/nixpkgs/pkgs/development/node-packages/node-packages.nix
@@ -31,6 +31,15 @@ let
         sha512 = "DSzEEkbMYbAUVlhy7fg+BzccoRuSQzqHbIPGxGv19OJ2WKwS3/9ChAnQcII4g+GujcHhyJ8BUuOVAx/S5uAfQg==";
       };
     };
+    "@adobe/css-tools-4.3.2" = {
+      name = "_at_adobe_slash_css-tools";
+      packageName = "@adobe/css-tools";
+      version = "4.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz";
+        sha512 = "DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==";
+      };
+    };
     "@adobe/css-tools-4.3.3" = {
       name = "_at_adobe_slash_css-tools";
       packageName = "@adobe/css-tools";
@@ -67,40 +76,40 @@ let
         sha512 = "UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==";
       };
     };
-    "@ampproject/remapping-2.2.1" = {
+    "@ampproject/remapping-2.3.0" = {
       name = "_at_ampproject_slash_remapping";
       packageName = "@ampproject/remapping";
-      version = "2.2.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz";
-        sha512 = "lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==";
+        url = "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz";
+        sha512 = "30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==";
       };
     };
-    "@angular-devkit/architect-0.1702.0" = {
+    "@angular-devkit/architect-0.1703.0" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.1702.0";
+      version = "0.1703.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1702.0.tgz";
-        sha512 = "+HkOYhdq8ez2+yqpxaQ6XtQevOYJNaDpM4oDmZ2lIpiIusFNsmpY2b9iL5PZGb4EfUgN8KsY3n9Q9fmRlRB9eA==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.0.tgz";
+        sha512 = "2X2cswI4TIwtQxCe5U9f4jeiDjAb8r89XLpU0QwEHyZyWx02uhYHO3FDMJq/NxCS95IUAQOBGBhbD4ey4Hl9cQ==";
       };
     };
-    "@angular-devkit/core-17.2.0" = {
+    "@angular-devkit/core-17.3.0" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "17.2.0";
+      version = "17.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-17.2.0.tgz";
-        sha512 = "GIOYHChtDqSOvSiEefJ6hAledEl55J5Pxw8JuKXrM4IJBbviI3c40FAc0Lu5NCj2lYoELOhrLy/UP36sLy+DGA==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.0.tgz";
+        sha512 = "ldErhMYq8rcFOhWQ0syQdLy6IYb/LL0erigj7gCMOf59oJgM7B13o/ZTOCvyJttUZ9IP0HB98Gi3epEuJ30VLg==";
       };
     };
-    "@angular-devkit/schematics-17.2.0" = {
+    "@angular-devkit/schematics-17.3.0" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "17.2.0";
+      version = "17.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.2.0.tgz";
-        sha512 = "gGyUVYRKTeRODW9S0MohfBlryoUHrbxqN27olhktrM/fZavyUVnZpyfb8okp6tTUz9HWmGac8ULE6IU+YW16gw==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.3.0.tgz";
+        sha512 = "EW4Y8W/KTlvvT2fw3bh9hY7quDF2b9EaF+KftEqoDRWYbw0tlF8hWIdlfA6JxQC12d6uefh3kDNj5am0Il2oNQ==";
       };
     };
     "@apidevtools/json-schema-ref-parser-9.0.6" = {
@@ -283,13 +292,13 @@ let
         sha512 = "o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==";
       };
     };
-    "@astrojs/compiler-2.5.3" = {
+    "@astrojs/compiler-2.7.0" = {
       name = "_at_astrojs_slash_compiler";
       packageName = "@astrojs/compiler";
-      version = "2.5.3";
+      version = "2.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.5.3.tgz";
-        sha512 = "jzj01BRv/fmo+9Mr2FhocywGzEYiyiP2GVHje1ziGNU6c97kwhYGsnvwMkHrncAy9T9Vi54cjaMK7UE4ClX4vA==";
+        url = "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.7.0.tgz";
+        sha512 = "XpC8MAaWjD1ff6/IfkRq/5k1EFj6zhCNqXRd5J43SVJEBj/Bsmizkm8N0xOYscGcDFQkRgEw6/eKnI5x/1l6aA==";
       };
     };
     "@asyncapi/specs-4.3.1" = {
@@ -409,13 +418,13 @@ let
         sha512 = "PI6mjM0fmcV2fqkkRoivF3DYex4lnbEz7WIsOFAwpHJBbA9ykClQpiutCKcgl0x/yEWAeTNdQtrCVeAwbxYfvw==";
       };
     };
-    "@aws-sdk/client-s3-3.515.0" = {
+    "@aws-sdk/client-s3-3.536.0" = {
       name = "_at_aws-sdk_slash_client-s3";
       packageName = "@aws-sdk/client-s3";
-      version = "3.515.0";
+      version = "3.536.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.515.0.tgz";
-        sha512 = "K527n83hrMUdosxOYTzL63wtlJtmN5SUJZnGY1sUR6UyOrnOr9lS6t3AB6BgHqLFRFZJqSqmhflv2cOD7P1UPg==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.536.0.tgz";
+        sha512 = "UM5txJxq8qKzLDVuW9c904bpb7+u1jOeyJITLz79WpyHSOP6ERHoTx/ltEuGJ4zQVazfkgthqR0lIn09sXEEuw==";
       };
     };
     "@aws-sdk/client-sso-3.296.0" = {
@@ -427,13 +436,13 @@ let
         sha512 = "0P0x++jhlmhzViFPOHvTb7+Z6tSV9aONwB8CchIseg2enSPBbGfml7y5gQu1jdOTDS6pBUmrPZ+9sOI4/GvAfA==";
       };
     };
-    "@aws-sdk/client-sso-3.515.0" = {
+    "@aws-sdk/client-sso-3.535.0" = {
       name = "_at_aws-sdk_slash_client-sso";
       packageName = "@aws-sdk/client-sso";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.515.0.tgz";
-        sha512 = "4oGBLW476zmkdN98lAns3bObRNO+DLOfg4MDUSR6l6GYBV/zGAtoy2O/FhwYKgA2L5h2ZtElGopLlk/1Q0ePLw==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.535.0.tgz";
+        sha512 = "h9eQRdFnjDRVBnPJIKXuX7D+isSAioIfZPC4PQwsL5BscTRlk4c90DX0R0uk64YUtp7LZu8TNtrosFZ/1HtTrQ==";
       };
     };
     "@aws-sdk/client-sso-oidc-3.296.0" = {
@@ -445,13 +454,13 @@ let
         sha512 = "GRycCVdlFICvWwv9z6Mc/2BvSBOvchWO7UTklvbKXeDn6D05C+02PfxeoocMTc4r8/eFoEQWs67h5u/lPpyHDw==";
       };
     };
-    "@aws-sdk/client-sso-oidc-3.515.0" = {
+    "@aws-sdk/client-sso-oidc-3.535.0" = {
       name = "_at_aws-sdk_slash_client-sso-oidc";
       packageName = "@aws-sdk/client-sso-oidc";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.515.0.tgz";
-        sha512 = "zACa8LNlPUdlNUBqQRf5a3MfouLNtcBfm84v2c8M976DwJrMGONPe1QjyLLsD38uESQiXiVQRruj/b000iMXNw==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.535.0.tgz";
+        sha512 = "M2cG4EQXDpAJQyq33ORIr6abmdX9p9zX0ssVy8XwFNB7lrgoIKxuVoGL+fX+XMgecl24x7ELz6b4QlILOevbCw==";
       };
     };
     "@aws-sdk/client-sts-3.296.0" = {
@@ -463,13 +472,13 @@ let
         sha512 = "ew7hSVNpitnLCIRVhnI2L1HZB/yYpRQFReR62fOqCUnpKqm6WGga37bnvgYbY5y0Rv23C0VHARovwunVg1gabA==";
       };
     };
-    "@aws-sdk/client-sts-3.515.0" = {
+    "@aws-sdk/client-sts-3.535.0" = {
       name = "_at_aws-sdk_slash_client-sts";
       packageName = "@aws-sdk/client-sts";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.515.0.tgz";
-        sha512 = "ScYuvaIDgip3atOJIA1FU2n0gJkEdveu1KrrCPathoUCV5zpK8qQmO/n+Fj/7hKFxeKdFbB+4W4CsJWYH94nlg==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.535.0.tgz";
+        sha512 = "ii9OOm3TJwP3JmO1IVJXKWIShVKPl0VtdlgROc/SkDglO/kuAw9eDdlROgc+qbFl+gm6bBTguOVTUXt3tS3flw==";
       };
     };
     "@aws-sdk/config-resolver-3.296.0" = {
@@ -481,13 +490,13 @@ let
         sha512 = "Ecdp7fmIitHo49NRCyIEHb9xlI43J7qkvhcwaKGGqN5jvoh0YhR2vNr195wWG8Ip/9PwsD4QV4g/XT5EY7XkMA==";
       };
     };
-    "@aws-sdk/core-3.513.0" = {
+    "@aws-sdk/core-3.535.0" = {
       name = "_at_aws-sdk_slash_core";
       packageName = "@aws-sdk/core";
-      version = "3.513.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/core/-/core-3.513.0.tgz";
-        sha512 = "L+9DL4apWuqNKVOMJ8siAuWoRM9rZf9w1iPv8S2o83WO2jVK7E/m+rNW1dFo9HsA5V1ccDl2H2qLXx24HiHmOw==";
+        url = "https://registry.npmjs.org/@aws-sdk/core/-/core-3.535.0.tgz";
+        sha512 = "+Yusa9HziuaEDta1UaLEtMAtmgvxdxhPn7jgfRY6PplqAqgsfa5FR83sxy5qr2q7xjQTwHtV4MjQVuOjG9JsLw==";
       };
     };
     "@aws-sdk/credential-provider-env-3.296.0" = {
@@ -499,22 +508,22 @@ let
         sha512 = "eDWSU3p04gytkkVXnYn05YzrP5SEaj/DQiafd4y+iBl8IFfF3zM6982rs6qFhvpwrHeSbLqHNfKR1HDWVwfG5g==";
       };
     };
-    "@aws-sdk/credential-provider-env-3.515.0" = {
+    "@aws-sdk/credential-provider-env-3.535.0" = {
       name = "_at_aws-sdk_slash_credential-provider-env";
       packageName = "@aws-sdk/credential-provider-env";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.515.0.tgz";
-        sha512 = "45vxdyqhTAaUMERYVWOziG3K8L2TV9G4ryQS/KZ84o7NAybE9GMdoZRVmGHAO7mJJ1wQiYCM/E+i5b3NW9JfNA==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.535.0.tgz";
+        sha512 = "XppwO8c0GCGSAvdzyJOhbtktSEaShg14VJKg8mpMa1XcgqzmcqqHQjtDWbx5rZheY1VdpXZhpEzJkB6LpQejpA==";
       };
     };
-    "@aws-sdk/credential-provider-http-3.515.0" = {
+    "@aws-sdk/credential-provider-http-3.535.0" = {
       name = "_at_aws-sdk_slash_credential-provider-http";
       packageName = "@aws-sdk/credential-provider-http";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.515.0.tgz";
-        sha512 = "Ba6FXK77vU4WyheiamNjEuTFmir0eAXuJGPO27lBaA8g+V/seXGHScsbOG14aQGDOr2P02OPwKGZrWWA7BFpfQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.535.0.tgz";
+        sha512 = "kdj1wCmOMZ29jSlUskRqN04S6fJ4dvt0Nq9Z32SA6wO7UG8ht6Ot9h/au/eTWJM3E1somZ7D771oK7dQt9b8yw==";
       };
     };
     "@aws-sdk/credential-provider-imds-3.296.0" = {
@@ -535,13 +544,13 @@ let
         sha512 = "U0ecY0GX2jeDAgmTzaVO9YgjlLUfb8wgZSu1OwbOxCJscL/5eFkhcF0/xJQXDbRgcj4H4dlquqeSWsBVl/PgvQ==";
       };
     };
-    "@aws-sdk/credential-provider-ini-3.515.0" = {
+    "@aws-sdk/credential-provider-ini-3.535.0" = {
       name = "_at_aws-sdk_slash_credential-provider-ini";
       packageName = "@aws-sdk/credential-provider-ini";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.515.0.tgz";
-        sha512 = "ouDlNZdv2TKeVEA/YZk2+XklTXyAAGdbWnl4IgN9ItaodWI+lZjdIoNC8BAooVH+atIV/cZgoGTGQL7j2TxJ9A==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.535.0.tgz";
+        sha512 = "bm3XOYlyCjtAb8eeHXLrxqRxYVRw2Iqv9IufdJb4gM13TbNSYniUT1WKaHxGIZ5p+FuNlXVhvk1OpHFM13+gXA==";
       };
     };
     "@aws-sdk/credential-provider-node-3.296.0" = {
@@ -553,13 +562,13 @@ let
         sha512 = "oCkmh2b1DQhHkhd/qA9jiSIOkrBBK7cMg1/PVIgLw8e15NkzUHBObLJ/ZQw6ZzCxZzjlMYaFv9oCB8hyO8txmA==";
       };
     };
-    "@aws-sdk/credential-provider-node-3.515.0" = {
+    "@aws-sdk/credential-provider-node-3.535.0" = {
       name = "_at_aws-sdk_slash_credential-provider-node";
       packageName = "@aws-sdk/credential-provider-node";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.515.0.tgz";
-        sha512 = "Y4kHSpbxksiCZZNcvsiKUd8Fb2XlyUuONEwqWFNL82ZH6TCCjBGS31wJQCSxBHqYcOL3tiORUEJkoO7uS30uQA==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.535.0.tgz";
+        sha512 = "6JXp/EuL6euUkH5k4d+lQFF6gBwukrcCOWfNHCmq14mNJf/cqT3HAX1VMtWFRSK20am0IxfYQGccb0/nZykdKg==";
       };
     };
     "@aws-sdk/credential-provider-process-3.296.0" = {
@@ -571,13 +580,13 @@ let
         sha512 = "AY7sTX2dGi8ripuCpcJLYHOZB2wJ6NnseyK/kK5TfJn/pgboKwuGtz0hkJCVprNWomKa6IpHksm7vLQ4O2E+UA==";
       };
     };
-    "@aws-sdk/credential-provider-process-3.515.0" = {
+    "@aws-sdk/credential-provider-process-3.535.0" = {
       name = "_at_aws-sdk_slash_credential-provider-process";
       packageName = "@aws-sdk/credential-provider-process";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.515.0.tgz";
-        sha512 = "pSjiOA2FM63LHRKNDvEpBRp80FVGT0Mw/gzgbqFXP+sewk0WVonYbEcMDTJptH3VsLPGzqH/DQ1YL/aEIBuXFQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.535.0.tgz";
+        sha512 = "9O1OaprGCnlb/kYl8RwmH7Mlg8JREZctB8r9sa1KhSsWFq/SWO0AuJTyowxD7zL5PkeS4eTvzFFHWCa3OO5epA==";
       };
     };
     "@aws-sdk/credential-provider-sso-3.296.0" = {
@@ -589,13 +598,13 @@ let
         sha512 = "zPFHDX/niXfcQrKQhmBv1XPYEe4b7im4vRKrzjYXgDRpG2M3LP0KaWIwN6Ap+GRYBNBthen86vhTlmKGzyU5YA==";
       };
     };
-    "@aws-sdk/credential-provider-sso-3.515.0" = {
+    "@aws-sdk/credential-provider-sso-3.535.0" = {
       name = "_at_aws-sdk_slash_credential-provider-sso";
       packageName = "@aws-sdk/credential-provider-sso";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.515.0.tgz";
-        sha512 = "j7vUkiSmuhpBvZYoPTRTI4ePnQbiZMFl6TNhg9b9DprC1zHkucsZnhRhqjOVlrw/H6J4jmcPGcHHTZ5WQNI5xQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.535.0.tgz";
+        sha512 = "2Dw0YIr8ETdFpq65CC4zK8ZIEbX78rXoNRZXUGNQW3oSKfL0tj8O8ErY6kg1IdEnYbGnEQ35q6luZ5GGNKLgDg==";
       };
     };
     "@aws-sdk/credential-provider-web-identity-3.296.0" = {
@@ -607,13 +616,13 @@ let
         sha512 = "Rl6Ohoekxe+pccA55XXQDW5wApbg3rGWr6FkmPRcg7Ld6Vfe+HL8OtfsFf83/0eoFerevbif+00BdknXWT05LA==";
       };
     };
-    "@aws-sdk/credential-provider-web-identity-3.515.0" = {
+    "@aws-sdk/credential-provider-web-identity-3.535.0" = {
       name = "_at_aws-sdk_slash_credential-provider-web-identity";
       packageName = "@aws-sdk/credential-provider-web-identity";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.515.0.tgz";
-        sha512 = "66+2g4z3fWwdoGReY8aUHvm6JrKZMTRxjuizljVmMyOBttKPeBYXvUTop/g3ZGUx1f8j+C5qsGK52viYBvtjuQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.535.0.tgz";
+        sha512 = "t2/JWrKY0H66A7JW7CqX06/DG2YkJddikt5ymdQvx/Q7dRMJ3d+o/vgjoKr7RvEx/pNruCeyM1599HCvwrVMrg==";
       };
     };
     "@aws-sdk/eventstream-codec-3.296.0" = {
@@ -715,13 +724,13 @@ let
         sha512 = "SCIt10cr5dud7hvwveU4wkLjvkGssJ3GrcbHCds2NwI+JHmpcaaNYLAqi305JAuT29T36U5ssTFDSmrrEOcfag==";
       };
     };
-    "@aws-sdk/lib-storage-3.515.0" = {
+    "@aws-sdk/lib-storage-3.536.0" = {
       name = "_at_aws-sdk_slash_lib-storage";
       packageName = "@aws-sdk/lib-storage";
-      version = "3.515.0";
+      version = "3.536.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.515.0.tgz";
-        sha512 = "/7z/3KnMs1ODNS9c8Skj/DFTsy6/v7n17clh1IGOcTYhhioCMA3MIzIZecWFeLjPYcUSkNQHIIjKFQt1nhZkwA==";
+        url = "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.536.0.tgz";
+        sha512 = "jeHnxHy02n2oEaXZx0fwNbZwnA1LZvSC6mEQZYlz3trhhqE3Ryn8HnODGR+cUKb8i+iyVCWdKRa4mfz1Xu+sQw==";
       };
     };
     "@aws-sdk/md5-js-3.296.0" = {
@@ -742,13 +751,13 @@ let
         sha512 = "Xhzucs5psscjXJW7V6vMrjJWGmej8Xtw8XIKd91RLmbxdmecMy85/mQC3bIqxgTGhC/e3pKqWSp8z/YjV6iPZg==";
       };
     };
-    "@aws-sdk/middleware-bucket-endpoint-3.515.0" = {
+    "@aws-sdk/middleware-bucket-endpoint-3.535.0" = {
       name = "_at_aws-sdk_slash_middleware-bucket-endpoint";
       packageName = "@aws-sdk/middleware-bucket-endpoint";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.515.0.tgz";
-        sha512 = "Vm423j3udFrhKPaKiXtie+6aF05efjX8lhAu5VOruIvbam7olvdWNdkH7sGWlz1ko3CVa7PwOYjGHiOOhxpEOA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.535.0.tgz";
+        sha512 = "7sijlfQsc4UO9Fsl11mU26Y5f9E7g6UoNg/iJUBpC5pgvvmdBRO5UEhbB/gnqvOEPsBXyhmfzbstebq23Qdz7A==";
       };
     };
     "@aws-sdk/middleware-content-length-3.296.0" = {
@@ -778,13 +787,13 @@ let
         sha512 = "aVCv9CdAVWt9AlZKQZRweIywkAszRrZUCo8K5bBUJNdD4061DoDqLK/6jmqXmObas0j1wQr/eNzjYbv99MZBCg==";
       };
     };
-    "@aws-sdk/middleware-expect-continue-3.515.0" = {
+    "@aws-sdk/middleware-expect-continue-3.535.0" = {
       name = "_at_aws-sdk_slash_middleware-expect-continue";
       packageName = "@aws-sdk/middleware-expect-continue";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.515.0.tgz";
-        sha512 = "TWCXulivab4reOMx/vxa/IwnPX78fLwI9NUoAxjsqB6W9qjmSnPD43BSVeGvbbl/YNmgk7XfMbZb6IgxW7RyzA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.535.0.tgz";
+        sha512 = "hFKyqUBky0NWCVku8iZ9+PACehx0p6vuMw5YnZf8FVgHP0fode0b/NwQY6UY7oor/GftvRsAlRUAWGNFEGUpwA==";
       };
     };
     "@aws-sdk/middleware-flexible-checksums-3.296.0" = {
@@ -796,13 +805,13 @@ let
         sha512 = "F5wVMhLIgA86PKsK/Az7LGIiNVDdZjoSn0+boe6fYW/AIAmgJhPf//500Md0GsKsLOCcPcxiQC43a0hVT2zbew==";
       };
     };
-    "@aws-sdk/middleware-flexible-checksums-3.515.0" = {
+    "@aws-sdk/middleware-flexible-checksums-3.535.0" = {
       name = "_at_aws-sdk_slash_middleware-flexible-checksums";
       packageName = "@aws-sdk/middleware-flexible-checksums";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.515.0.tgz";
-        sha512 = "ydGjnqNeYlJaAkmQeQnS4pZRAAvzefdm8c234Qh0Fg55xRwHTNLp7uYsdfkTjrdAlj6YIO3Zr6vK6VJ6MGCwug==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.535.0.tgz";
+        sha512 = "rBIzldY9jjRATxICDX7t77aW6ctqmVDgnuAOgbVT5xgHftt4o7PGWKoMvl/45hYqoQgxVFnCBof9bxkqSBebVA==";
       };
     };
     "@aws-sdk/middleware-host-header-3.296.0" = {
@@ -814,13 +823,13 @@ let
         sha512 = "V47dFtfkX5lXWv9GDp71gZVCRws4fEdQ9QF9BQ/2UMSNrYjQLg6mFe7NibH+IJoNOid2FIwWIl94Eos636VGYQ==";
       };
     };
-    "@aws-sdk/middleware-host-header-3.515.0" = {
+    "@aws-sdk/middleware-host-header-3.535.0" = {
       name = "_at_aws-sdk_slash_middleware-host-header";
       packageName = "@aws-sdk/middleware-host-header";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.515.0.tgz";
-        sha512 = "I1MwWPzdRKM1luvdDdjdGsDjNVPhj9zaIytEchjTY40NcKOg+p2evLD2y69ozzg8pyXK63r8DdvDGOo9QPuh0A==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.535.0.tgz";
+        sha512 = "0h6TWjBWtDaYwHMQJI9ulafeS4lLaw1vIxRjbpH0svFRt6Eve+Sy8NlVhECfTU2hNz/fLubvrUxsXoThaLBIew==";
       };
     };
     "@aws-sdk/middleware-location-constraint-3.296.0" = {
@@ -832,13 +841,13 @@ let
         sha512 = "KHkWaIrZOtJmV1/WO9KOf7kSK41ngfqts3YIun956NYglKTDKyrBIOPCgmXTT/03odnYsKVT/UfbEIh/v4RxGA==";
       };
     };
-    "@aws-sdk/middleware-location-constraint-3.515.0" = {
+    "@aws-sdk/middleware-location-constraint-3.535.0" = {
       name = "_at_aws-sdk_slash_middleware-location-constraint";
       packageName = "@aws-sdk/middleware-location-constraint";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.515.0.tgz";
-        sha512 = "ORFC5oijjTJsHhUXy9o52/vl5Irf6e83bE/8tBp+sVVx81+E8zTTWZbysoa41c0B5Ycd0H3wCWutvjdXT16ydQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.535.0.tgz";
+        sha512 = "SxfS9wfidUZZ+WnlKRTCRn3h+XTsymXRXPJj8VV6hNRNeOwzNweoG3YhQbTowuuNfXf89m9v6meYkBBtkdacKw==";
       };
     };
     "@aws-sdk/middleware-logger-3.296.0" = {
@@ -850,13 +859,13 @@ let
         sha512 = "LzfEEFyBR9LXdWwLdtBrmi1vLdzgdJNntEgzqktVF8LwaCyY+9xIE6TGu/2V+9fJHAwECxjOC1eQbNQdAZ0Tmw==";
       };
     };
-    "@aws-sdk/middleware-logger-3.515.0" = {
+    "@aws-sdk/middleware-logger-3.535.0" = {
       name = "_at_aws-sdk_slash_middleware-logger";
       packageName = "@aws-sdk/middleware-logger";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.515.0.tgz";
-        sha512 = "qXomJzg2m/5seQOxHi/yOXOKfSjwrrJSmEmfwJKJyQgdMbBcjz3Cz0H/1LyC6c5hHm6a/SZgSTzDAbAoUmyL+Q==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.535.0.tgz";
+        sha512 = "huNHpONOrEDrdRTvSQr1cJiRMNf0S52NDXtaPzdxiubTkP+vni2MohmZANMOai/qT0olmEVX01LhZ0ZAOgmg6A==";
       };
     };
     "@aws-sdk/middleware-recursion-detection-3.296.0" = {
@@ -868,13 +877,13 @@ let
         sha512 = "UG7TLDPz9ImQG0uVklHTxE9Us7rTImwN+6el6qZCpoTBuGeXgOkfb0/p8izJyFgY/hMUR4cZqs7IdCDUkxQF3w==";
       };
     };
-    "@aws-sdk/middleware-recursion-detection-3.515.0" = {
+    "@aws-sdk/middleware-recursion-detection-3.535.0" = {
       name = "_at_aws-sdk_slash_middleware-recursion-detection";
       packageName = "@aws-sdk/middleware-recursion-detection";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.515.0.tgz";
-        sha512 = "dokHLbTV3IHRIBrw9mGoxcNTnQsjlm7TpkJhPdGT9T4Mq399EyQo51u6IsVMm07RXLl2Zw7u+u9p+qWBFzmFRA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.535.0.tgz";
+        sha512 = "am2qgGs+gwqmR4wHLWpzlZ8PWhm4ktj5bYSgDrsOfjhdBlWNxvPoID9/pDAz5RWL48+oH7I6SQzMqxXsFDikrw==";
       };
     };
     "@aws-sdk/middleware-retry-3.296.0" = {
@@ -895,13 +904,13 @@ let
         sha512 = "zH4uZKEqumo01wn+dTwrYnvOui9GjDiuBHdECnSjnA0Mkxo/tfMPYzYD7mE8kUlBz7HfQcXeXlyaApj9fPkxvg==";
       };
     };
-    "@aws-sdk/middleware-sdk-s3-3.515.0" = {
+    "@aws-sdk/middleware-sdk-s3-3.535.0" = {
       name = "_at_aws-sdk_slash_middleware-sdk-s3";
       packageName = "@aws-sdk/middleware-sdk-s3";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.515.0.tgz";
-        sha512 = "vB8JwiTEAqm1UT9xfugnCgl0H0dtBLUQQK99JwQEWjHPZmQ3HQuVkykmJRY3X0hzKMEgqXodz0hZOvf3Hq1mvQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.535.0.tgz";
+        sha512 = "/dLG/E3af6ohxkQ5GBHT8tZfuPIg6eItKxCXuulvYj0Tqgf3Mb+xTsvSkxQsJF06RS4sH7Qsg/PnB8ZfrJrXpg==";
       };
     };
     "@aws-sdk/middleware-sdk-sts-3.296.0" = {
@@ -931,13 +940,13 @@ let
         sha512 = "wyiG+WPDvugGTIPpKchGOdvvpcMZEN2IfP6iK//QAqGXsC6rDm5+SNZ3+elvduZjPUdVA06W0CcFYBAkVz8D7Q==";
       };
     };
-    "@aws-sdk/middleware-signing-3.515.0" = {
+    "@aws-sdk/middleware-signing-3.535.0" = {
       name = "_at_aws-sdk_slash_middleware-signing";
       packageName = "@aws-sdk/middleware-signing";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.515.0.tgz";
-        sha512 = "SdjCyQCL702I07KhCiBFcoh6+NYtnruHJQIzWwMpBteuYHnCHW1k9uZ6pqacsS+Y6qpAKfTVNpQx2zP2s6QoHA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.535.0.tgz";
+        sha512 = "Rb4sfus1Gc5paRl9JJgymJGsb/i3gJKK/rTuFZICdd1PBBE5osIOHP5CpzWYBtc5LlyZE1a2QoxPMCyG+QUGPw==";
       };
     };
     "@aws-sdk/middleware-ssec-3.296.0" = {
@@ -949,13 +958,13 @@ let
         sha512 = "vcSyXxEXAC9rWzUd7rq2/JxPdt87DKiA+wfiBrpGvFV+bacocIV0TFcpJncgZqMOoP8b6Osd+mW4BjlkwBamtA==";
       };
     };
-    "@aws-sdk/middleware-ssec-3.515.0" = {
+    "@aws-sdk/middleware-ssec-3.535.0" = {
       name = "_at_aws-sdk_slash_middleware-ssec";
       packageName = "@aws-sdk/middleware-ssec";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.515.0.tgz";
-        sha512 = "0qLjKiorosVBzzaV/o7MEyS9xqLLu02qGbP564Z/FZY74JUQEpBNedgveMUbb6lqr85RnOuwZ0GZ0cBRfH2brQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.535.0.tgz";
+        sha512 = "QAQ++9my7VZzusUPOFcUMdhTnjpGRyy/OvPC+jg9usdfcaSZeQbfzbdaVBalcm2Wt+1qxh3LZSTS+LxKikm02Q==";
       };
     };
     "@aws-sdk/middleware-stack-3.296.0" = {
@@ -976,13 +985,13 @@ let
         sha512 = "L7jacxSt6gxX1gD3tQtfwHqBDk5rT2wWD3rxBa6rs7f81b9ObgY/sPT2IgRT7JNCVzvKLYFxJaTklDj65mY1SQ==";
       };
     };
-    "@aws-sdk/middleware-user-agent-3.515.0" = {
+    "@aws-sdk/middleware-user-agent-3.535.0" = {
       name = "_at_aws-sdk_slash_middleware-user-agent";
       packageName = "@aws-sdk/middleware-user-agent";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.515.0.tgz";
-        sha512 = "nOqZjGA/GkjuJ5fUshec9Fv6HFd7ovOTxMJbw3MfAhqXuVZ6dKF41lpVJ4imNsgyFt3shUg9WDY8zGFjlYMB3g==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.535.0.tgz";
+        sha512 = "Uvb2WJ+zdHdCOtsWVPI/M0BcfNrjOYsicDZWtaljucRJKLclY5gNWwD+RwIC+8b5TvfnVOlH+N5jhvpi5Impog==";
       };
     };
     "@aws-sdk/node-config-provider-3.296.0" = {
@@ -1039,22 +1048,22 @@ let
         sha512 = "nLNZKVQfK42euv7101cE5qfg17YCtGcfccx3B5XSAzvyTROR46kwYqbEvYSsWisbZoRhbQc905gB/5E0U5HDIw==";
       };
     };
-    "@aws-sdk/region-config-resolver-3.515.0" = {
+    "@aws-sdk/region-config-resolver-3.535.0" = {
       name = "_at_aws-sdk_slash_region-config-resolver";
       packageName = "@aws-sdk/region-config-resolver";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.515.0.tgz";
-        sha512 = "RIRx9loxMgEAc/r1wPfnfShOuzn4RBi8pPPv6/jhhITEeMnJe6enAh2k5y9DdiVDDgCWZgVFSv0YkAIfzAFsnQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.535.0.tgz";
+        sha512 = "IXOznDiaItBjsQy4Fil0kzX/J3HxIOknEphqHbOfUf+LpA5ugcsxuQQONrbEQusCBnfJyymrldBvBhFmtlU9Wg==";
       };
     };
-    "@aws-sdk/s3-presigned-post-3.515.0" = {
+    "@aws-sdk/s3-presigned-post-3.536.0" = {
       name = "_at_aws-sdk_slash_s3-presigned-post";
       packageName = "@aws-sdk/s3-presigned-post";
-      version = "3.515.0";
+      version = "3.536.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/s3-presigned-post/-/s3-presigned-post-3.515.0.tgz";
-        sha512 = "YQfqo0TlMX5F9gC1fjJBxEBpKNNNgbTKDwMDoAIECT9saQYgBjL23QLHke9EWizt+OpC94Sns98gCnugori3iQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/s3-presigned-post/-/s3-presigned-post-3.536.0.tgz";
+        sha512 = "6CRDpD5GZkHmxBD5UB7NdOmOd2v2By8Mw/kqSGmxgHPsQwrYWnuR3FdxAX4j/QDv81KUiCgak2w/SacDaiPN3g==";
       };
     };
     "@aws-sdk/s3-request-presigner-3.296.0" = {
@@ -1066,13 +1075,13 @@ let
         sha512 = "BQv+oNA5EzJymrfh7cnMun/ougmTX3eo6bGCWn/bQdL1LyxodeVdRZacD5tN+lAUYtjhQ7yS23ozYh0lvWNEXw==";
       };
     };
-    "@aws-sdk/s3-request-presigner-3.515.0" = {
+    "@aws-sdk/s3-request-presigner-3.536.0" = {
       name = "_at_aws-sdk_slash_s3-request-presigner";
       packageName = "@aws-sdk/s3-request-presigner";
-      version = "3.515.0";
+      version = "3.536.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.515.0.tgz";
-        sha512 = "B6RcXWJTOHSqZDII/sYeM89MWc//AwA7iIcZk+oXyUSdVTl03z6raJMxWqY0dPx7KuBjLTnZPqUXKCCoQvnp/g==";
+        url = "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.536.0.tgz";
+        sha512 = "bMz7nxYfSjCkw72Hah40o0c9scwU2LQWoT3CkTcWs9OCrG4MCzMTBJNlzRUpxOpfGTZqVzrCaUGINIjh3jP/tQ==";
       };
     };
     "@aws-sdk/service-error-classification-3.296.0" = {
@@ -1102,13 +1111,13 @@ let
         sha512 = "NQyJ/FClty4VmF1WoV4rOkbN0Unn0zevzy8iJrYhqxE3Sc7lySM4Btnsd4Iqelm2dR6l+jNRApGgD8NvoGjGig==";
       };
     };
-    "@aws-sdk/signature-v4-crt-3.515.0" = {
+    "@aws-sdk/signature-v4-crt-3.535.0" = {
       name = "_at_aws-sdk_slash_signature-v4-crt";
       packageName = "@aws-sdk/signature-v4-crt";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.515.0.tgz";
-        sha512 = "bfWsHyNg6+b+97MpJ3frfJfHjXcL7NEk252Al7bhNyhKJnPGhbhDXiudvDE+uiINoZgIJ59xqBBQQdB8ymS4RQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.535.0.tgz";
+        sha512 = "xSULYfliLkI2xnRLgo3pRZAy7ZNBFDPG4vFz4sgl5FX5gPuLt5l55YXtCTNK0hJWJs3gi6WrsCWO9rsGcUH5pg==";
       };
     };
     "@aws-sdk/signature-v4-multi-region-3.296.0" = {
@@ -1120,13 +1129,13 @@ let
         sha512 = "BNMXS0YJEgflPhO2KxXG4f0iTMOGdyxslDMNGmMWGGQm6bbwtqZ7Y9ZyMQYKfzk3GUPpfGQcaaSNiGfURPOCOg==";
       };
     };
-    "@aws-sdk/signature-v4-multi-region-3.515.0" = {
+    "@aws-sdk/signature-v4-multi-region-3.535.0" = {
       name = "_at_aws-sdk_slash_signature-v4-multi-region";
       packageName = "@aws-sdk/signature-v4-multi-region";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.515.0.tgz";
-        sha512 = "5lrCn4DSE0zL41k0L6moqcdExZhWdAnV0/oMEagrISzQYoia+aNTEeyVD3xqJhRbEW4gCj3Uoyis6c8muf7b9g==";
+        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.535.0.tgz";
+        sha512 = "tqCsEsEj8icW0SAh3NvyhRUq54Gz2pu4NM2tOSrFp7SO55heUUaRLSzYteNZCTOupH//AAaZvbN/UUTO/DrOog==";
       };
     };
     "@aws-sdk/smithy-client-3.296.0" = {
@@ -1147,13 +1156,13 @@ let
         sha512 = "yC1ku7A5S+o/CLlgbgDB2bx8+Wq43qj8xfohmTuIhpiP2m/NyUiRVv6S6ARONLI6bVeo1T2/BFk5Q9DfE2xzAQ==";
       };
     };
-    "@aws-sdk/token-providers-3.515.0" = {
+    "@aws-sdk/token-providers-3.535.0" = {
       name = "_at_aws-sdk_slash_token-providers";
       packageName = "@aws-sdk/token-providers";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.515.0.tgz";
-        sha512 = "MQuf04rIcTXqwDzmyHSpFPF1fKEzRl64oXtCRUF3ddxTdK6wxXkePfK6wNCuL+GEbEcJAoCtIGIRpzGPJvQjHA==";
+        url = "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.535.0.tgz";
+        sha512 = "4g+l/B9h1H/SiDtFRosW3pMwc+3PTXljZit+5NUBcET2XqcdUyHmgj3lBdu+CJ9CHdIMggRalYMAFXnRFe3Psg==";
       };
     };
     "@aws-sdk/types-3.296.0" = {
@@ -1165,13 +1174,13 @@ let
         sha512 = "s0wIac64rrMEo2ioUxP9IarGiiCGmelCspNcoNTPSjGl25QqjhyfQqTeGgS58qJ4fHoQb07qra39930xp1IzJg==";
       };
     };
-    "@aws-sdk/types-3.515.0" = {
+    "@aws-sdk/types-3.535.0" = {
       name = "_at_aws-sdk_slash_types";
       packageName = "@aws-sdk/types";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/types/-/types-3.515.0.tgz";
-        sha512 = "B3gUpiMlpT6ERaLvZZ61D0RyrQPsFYDkCncLPVkZOKkCOoFU46zi1o6T5JcYiz8vkx1q9RGloQ5exh79s5pU/w==";
+        url = "https://registry.npmjs.org/@aws-sdk/types/-/types-3.535.0.tgz";
+        sha512 = "aY4MYfduNj+sRR37U7XxYR8wemfbKP6lx00ze2M2uubn7mZotuVrWYAafbMSXrdEMSToE5JDhr28vArSOoLcSg==";
       };
     };
     "@aws-sdk/url-parser-3.296.0" = {
@@ -1192,13 +1201,13 @@ let
         sha512 = "kSSVymcbjyQQHvCZaTt1teKKW4MSSMPRdPNxSNO1aLsVwxrWdnAggDrpHwFjvPCRUcKtpThepATOz75PfUm9Bg==";
       };
     };
-    "@aws-sdk/util-arn-parser-3.495.0" = {
+    "@aws-sdk/util-arn-parser-3.535.0" = {
       name = "_at_aws-sdk_slash_util-arn-parser";
       packageName = "@aws-sdk/util-arn-parser";
-      version = "3.495.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.495.0.tgz";
-        sha512 = "hwdA3XAippSEUxs7jpznwD63YYFR+LtQvlEcebPTgWR9oQgG9TfS+39PUfbnEeje1ICuOrN3lrFqFbmP9uzbMg==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.535.0.tgz";
+        sha512 = "smVo29nUPAOprp8Z5Y3GHuhiOtw6c8/EtLCm5AVMtRsTPw4V414ZXL2H66tzmb5kEeSzQlbfBSBEdIFZoxO9kg==";
       };
     };
     "@aws-sdk/util-base64-3.295.0" = {
@@ -1282,13 +1291,13 @@ let
         sha512 = "YraGGLJepXM6HCTaqEGTFf8RFRBdJ0C6uG5k0kVhiXmYxBkeupn8J07CVp9jfWqcPYWElAnMGVEZKU1OjRo4HQ==";
       };
     };
-    "@aws-sdk/util-endpoints-3.515.0" = {
+    "@aws-sdk/util-endpoints-3.535.0" = {
       name = "_at_aws-sdk_slash_util-endpoints";
       packageName = "@aws-sdk/util-endpoints";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.515.0.tgz";
-        sha512 = "UJi+jdwcGFV/F7d3+e2aQn5yZOVpDiAgfgNhPnEtgV0WozJ5/ZUeZBgWvSc/K415N4A4D/9cbBc7+I+35qzcDQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.535.0.tgz";
+        sha512 = "c8TlaQsiPchOOmTTR6qvHCO2O7L7NJwlKWAoQJ2GqWDZuC5es/fyuF2rp1h+ZRrUVraUomS0YdGkAmaDC7hJQg==";
       };
     };
     "@aws-sdk/util-format-url-3.296.0" = {
@@ -1300,13 +1309,13 @@ let
         sha512 = "CcYECzkUAnHL5q3uyPicafn2OY0GiklIYfuOUHPZ/4FMxIesd1BnCDDRjTlFxLWjuNuiihIdwB7Qb1pDzxc3Iw==";
       };
     };
-    "@aws-sdk/util-format-url-3.515.0" = {
+    "@aws-sdk/util-format-url-3.535.0" = {
       name = "_at_aws-sdk_slash_util-format-url";
       packageName = "@aws-sdk/util-format-url";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.515.0.tgz";
-        sha512 = "7BgmUldmECebZU2qUAxOoEkHnji5NZX/j6TcgY4xgl1tUycw72BeKdcQYLUt4YoXQmIGZHiBL8L/TfO48W+FpA==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.535.0.tgz";
+        sha512 = "ElbNkm0bddu53CuW44Iuux1ZbTV50fydbSh/4ypW3LrmUvHx193ogj0HXQ7X26kmmo9rXcsrLdM92yIeTjidVg==";
       };
     };
     "@aws-sdk/util-hex-encoding-3.295.0" = {
@@ -1318,13 +1327,13 @@ let
         sha512 = "XJcoVo41kHzhe28PBm/rqt5mdCp8R6abwiW9ug1dA6FOoPUO8kBUxDv6xaOmA2hfRvd2ocFfBXaUCBqUowkGcQ==";
       };
     };
-    "@aws-sdk/util-locate-window-3.495.0" = {
+    "@aws-sdk/util-locate-window-3.535.0" = {
       name = "_at_aws-sdk_slash_util-locate-window";
       packageName = "@aws-sdk/util-locate-window";
-      version = "3.495.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.495.0.tgz";
-        sha512 = "MfaPXT0kLX2tQaR90saBT9fWQq2DHqSSJRzW+MZWsmF+y5LGCOhO22ac/2o6TKSQm7h0HRc2GaADqYYYor62yg==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.535.0.tgz";
+        sha512 = "PHJ3SL6d2jpcgbqdgiPxkXpu7Drc2PYViwxSIqvvMKhDwzSB1W3mMvtpzwKM4IE7zLFodZo0GKjJ9AsoXndXhA==";
       };
     };
     "@aws-sdk/util-middleware-3.296.0" = {
@@ -1381,13 +1390,13 @@ let
         sha512 = "MGGG+09VkF0N+8KEht8NNE6Q7bqmddgqLkUbvzSky0y18UPEZyq9LTC4JZtzDDOzf/swgbq2IQ/5wtB81iouog==";
       };
     };
-    "@aws-sdk/util-user-agent-browser-3.515.0" = {
+    "@aws-sdk/util-user-agent-browser-3.535.0" = {
       name = "_at_aws-sdk_slash_util-user-agent-browser";
       packageName = "@aws-sdk/util-user-agent-browser";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.515.0.tgz";
-        sha512 = "pTWQb0JCafTmLHLDv3Qqs/nAAJghcPdGQIBpsCStb0YEzg3At/dOi2AIQ683yYnXmeOxLXJDzmlsovfVObJScw==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.535.0.tgz";
+        sha512 = "RWMcF/xV5n+nhaA/Ff5P3yNP3Kur/I+VNZngog4TEs92oB/nwOdAg/2JL8bVAhUbMrjTjpwm7PItziYFQoqyig==";
       };
     };
     "@aws-sdk/util-user-agent-node-3.296.0" = {
@@ -1399,13 +1408,13 @@ let
         sha512 = "AMWac8aIBnaa9nxAEpZ752j29a/UQTViRfR5gnCX38ECBKGfOQMpgYnee5HdlMr4GHJj0WkOzQxBtInW4pV58g==";
       };
     };
-    "@aws-sdk/util-user-agent-node-3.515.0" = {
+    "@aws-sdk/util-user-agent-node-3.535.0" = {
       name = "_at_aws-sdk_slash_util-user-agent-node";
       packageName = "@aws-sdk/util-user-agent-node";
-      version = "3.515.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.515.0.tgz";
-        sha512 = "A/KJ+/HTohHyVXLH+t/bO0Z2mPrQgELbQO8tX+B2nElo8uklj70r5cT7F8ETsI9oOy+HDVpiL5/v45ZgpUOiPg==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.535.0.tgz";
+        sha512 = "dRek0zUuIT25wOWJlsRm97nTkUlh1NDcLsQZIN2Y8KxhwoXXWtJs5vaDPT+qAg+OpcNj80i1zLR/CirqlFg/TQ==";
       };
     };
     "@aws-sdk/util-utf8-3.295.0" = {
@@ -1444,13 +1453,13 @@ let
         sha512 = "7VX3Due7Ip73yfYErFDHZvhgBohC4IyMTfW49DI4C/LFKFCcAoB888MdevUkB87GoiNaRLeT3ZMZ86IWlSEaow==";
       };
     };
-    "@aws-sdk/xml-builder-3.496.0" = {
+    "@aws-sdk/xml-builder-3.535.0" = {
       name = "_at_aws-sdk_slash_xml-builder";
       packageName = "@aws-sdk/xml-builder";
-      version = "3.496.0";
+      version = "3.535.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.496.0.tgz";
-        sha512 = "GvEjh537IIeOw1ZkZuB37sV12u+ipS5Z1dwjEC/HAvhl5ac23ULtTr1/n+U1gLNN+BAKSWjKiQ2ksj8DiUzeyw==";
+        url = "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.535.0.tgz";
+        sha512 = "VXAq/Jz8KIrU84+HqsOJhIKZqG0PNTdi6n6PFQ4xJf44ZQHD/5C7ouH4qCFX5XgZXcgbRIcMVVYGC6Jye0dRng==";
       };
     };
     "@azu/format-text-1.0.2" = {
@@ -1480,31 +1489,31 @@ let
         sha512 = "TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==";
       };
     };
-    "@azure/abort-controller-2.0.0" = {
+    "@azure/abort-controller-2.1.0" = {
       name = "_at_azure_slash_abort-controller";
       packageName = "@azure/abort-controller";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.0.0.tgz";
-        sha512 = "RP/mR/WJchR+g+nQFJGOec+nzeN/VvjlwbinccoqfhTsTHbb8X5+mLDp48kHT0ueyum0BNSwGm0kX0UZuIqTGg==";
+        url = "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.0.tgz";
+        sha512 = "SYtcG13aiV7znycu6plCClWUzD9BBtfnsbIxT89nkkRvQRB4n0kuZyJJvJ7hqdKOn7x7YoGKZ9lVStLJpLnOFw==";
       };
     };
-    "@azure/core-auth-1.6.0" = {
+    "@azure/core-auth-1.7.0" = {
       name = "_at_azure_slash_core-auth";
       packageName = "@azure/core-auth";
-      version = "1.6.0";
+      version = "1.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.6.0.tgz";
-        sha512 = "3X9wzaaGgRaBCwhLQZDtFp5uLIXCPrGbwJNWPPugvL4xbIGgScv77YzzxToKGLAKvG9amDoofMoP+9hsH1vs1w==";
+        url = "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.0.tgz";
+        sha512 = "OuDVn9z2LjyYbpu6e7crEwSipa62jX7/ObV/pmXQfnOG8cHwm363jYtg3FSX3GB1V7jsIKri1zgq7mfXkFk/qw==";
       };
     };
-    "@azure/core-client-1.8.0" = {
+    "@azure/core-client-1.9.0" = {
       name = "_at_azure_slash_core-client";
       packageName = "@azure/core-client";
-      version = "1.8.0";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-client/-/core-client-1.8.0.tgz";
-        sha512 = "+gHS3gEzPlhyQBMoqVPOTeNH031R5DM/xpCvz72y38C09rg4Hui/1sJS/ujoisDZbbSHyuRLVWdFlwL0pIFwbg==";
+        url = "https://registry.npmjs.org/@azure/core-client/-/core-client-1.9.0.tgz";
+        sha512 = "x50SSD7bbG5wen3tMDI2oWVSAjt1K1xw6JZSnc6239RmBwqLJF9dPsKsh9w0Rzh5+mGpsu9FDu3DlsT0lo1+Uw==";
       };
     };
     "@azure/core-http-3.0.4" = {
@@ -1516,22 +1525,22 @@ let
         sha512 = "Fok9VVhMdxAFOtqiiAtg74fL0UJkt0z3D+ouUUxcRLzZNBioPRAMJFVxiWoJljYpXsRi4GDQHzQHDc9AiYaIUQ==";
       };
     };
-    "@azure/core-lro-2.6.0" = {
+    "@azure/core-lro-2.7.0" = {
       name = "_at_azure_slash_core-lro";
       packageName = "@azure/core-lro";
-      version = "2.6.0";
+      version = "2.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.6.0.tgz";
-        sha512 = "PyRNcaIOfMgoUC01/24NoG+k8O81VrKxYARnDlo+Q2xji0/0/j2nIt8BwQh294pb1c5QnXTDPbNR4KzoDKXEoQ==";
+        url = "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.7.0.tgz";
+        sha512 = "oj7d8vWEvOREIByH1+BnoiFwszzdE7OXUEd6UTv+cmx5HvjBBlkVezm3uZgpXWaxDj5ATL/k89+UMeGx1Ou9TQ==";
       };
     };
-    "@azure/core-paging-1.5.0" = {
+    "@azure/core-paging-1.6.0" = {
       name = "_at_azure_slash_core-paging";
       packageName = "@azure/core-paging";
-      version = "1.5.0";
+      version = "1.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.5.0.tgz";
-        sha512 = "zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw==";
+        url = "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.6.0.tgz";
+        sha512 = "W8eRv7MVFx/jbbYfcRT5+pGnZ9St/P1UvOi+63vxPwuQ3y+xj+wqWTGxpkXUETv3szsqGu0msdxVtjszCeB4zA==";
       };
     };
     "@azure/core-rest-pipeline-1.10.1" = {
@@ -1543,13 +1552,13 @@ let
         sha512 = "Kji9k6TOFRDB5ZMTw8qUf2IJ+CeJtsuMdAHox9eqpTf1cefiNMpzrfnF6sINEBZJsaVaWgQ0o48B6kcUH68niA==";
       };
     };
-    "@azure/core-rest-pipeline-1.14.0" = {
+    "@azure/core-rest-pipeline-1.15.0" = {
       name = "_at_azure_slash_core-rest-pipeline";
       packageName = "@azure/core-rest-pipeline";
-      version = "1.14.0";
+      version = "1.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.14.0.tgz";
-        sha512 = "Tp4M6NsjCmn9L5p7HsW98eSOS7A0ibl3e5ntZglozT0XuD/0y6i36iW829ZbBq0qihlGgfaeFpkLjZ418KDm1Q==";
+        url = "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.15.0.tgz";
+        sha512 = "6kBQwE75ZVlOjBbp0/PX0fgNLHxoMDxHe3aIPV/RLVwrIDidxTbsHtkSbPNTkheMset3v9s1Z08XuMNpWRK/7w==";
       };
     };
     "@azure/core-tracing-1.0.0-preview.13" = {
@@ -1561,13 +1570,13 @@ let
         sha512 = "KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==";
       };
     };
-    "@azure/core-tracing-1.0.1" = {
+    "@azure/core-tracing-1.1.0" = {
       name = "_at_azure_slash_core-tracing";
       packageName = "@azure/core-tracing";
-      version = "1.0.1";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.1.tgz";
-        sha512 = "I5CGMoLtX+pI17ZdiFJZgxMJApsK6jjfm85hpgp3oazCdq5Wxgh4wMr7ge/TTWW1B5WBuvIOI1fMU/FrOAMKrw==";
+        url = "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.1.0.tgz";
+        sha512 = "MVeJvGHB4jmF7PeHhyr72vYJsBJ3ff1piHikMgRaabPAC4P3rxhf9fm42I+DixLysBunskJWhsDQD2A+O+plkQ==";
       };
     };
     "@azure/core-util-1.2.0" = {
@@ -1579,13 +1588,13 @@ let
         sha512 = "ffGIw+Qs8bNKNLxz5UPkz4/VBM/EZY07mPve1ZYFqYUdPwFqRj0RPk0U7LZMOfT7GCck9YjuT1Rfp1PApNl1ng==";
       };
     };
-    "@azure/core-util-1.7.0" = {
+    "@azure/core-util-1.8.0" = {
       name = "_at_azure_slash_core-util";
       packageName = "@azure/core-util";
-      version = "1.7.0";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/core-util/-/core-util-1.7.0.tgz";
-        sha512 = "Zq2i3QO6k9DA8vnm29mYM4G8IE9u1mhF1GUabVEqPNX8Lj833gdxQ2NAFxt2BZsfAL+e9cT8SyVN7dFVJ/Hf0g==";
+        url = "https://registry.npmjs.org/@azure/core-util/-/core-util-1.8.0.tgz";
+        sha512 = "w8NrGnrlGDF7fj36PBnJhGXDK2Y3kpTOgL7Ksb5snEHXq/3EAbKYOp1yqme0yWCUlSDq5rjqvxSBAJmsqYac3w==";
       };
     };
     "@azure/identity-4.0.1" = {
@@ -1597,13 +1606,13 @@ let
         sha512 = "yRdgF03SFLqUMZZ1gKWt0cs0fvrDIkq2bJ6Oidqcoo5uM85YMBnXWMzYKK30XqIT76lkFyAaoAAy5knXhrG4Lw==";
       };
     };
-    "@azure/logger-1.0.4" = {
+    "@azure/logger-1.1.0" = {
       name = "_at_azure_slash_logger";
       packageName = "@azure/logger";
-      version = "1.0.4";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@azure/logger/-/logger-1.0.4.tgz";
-        sha512 = "ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==";
+        url = "https://registry.npmjs.org/@azure/logger/-/logger-1.1.0.tgz";
+        sha512 = "BnfkfzVEsrgbVCtqq0RYRMePSH2lL/cgUUR5sYRF4yNN10zJZq/cODz0r89k3ykY83MqeM3twR292a3YBNgC3w==";
       };
     };
     "@azure/msal-browser-3.10.0" = {
@@ -1696,13 +1705,13 @@ let
         sha512 = "uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==";
       };
     };
-    "@babel/core-7.23.9" = {
+    "@babel/core-7.24.0" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.23.9";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz";
-        sha512 = "5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz";
+        sha512 = "fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==";
       };
     };
     "@babel/generator-7.17.7" = {
@@ -1759,13 +1768,13 @@ let
         sha512 = "9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.23.10" = {
+    "@babel/helper-create-class-features-plugin-7.24.0" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.23.10";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz";
-        sha512 = "2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.0.tgz";
+        sha512 = "QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==";
       };
     };
     "@babel/helper-create-regexp-features-plugin-7.22.15" = {
@@ -1786,6 +1795,15 @@ let
         sha512 = "NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==";
       };
     };
+    "@babel/helper-define-polyfill-provider-0.6.1" = {
+      name = "_at_babel_slash_helper-define-polyfill-provider";
+      packageName = "@babel/helper-define-polyfill-provider";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz";
+        sha512 = "o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==";
+      };
+    };
     "@babel/helper-environment-visitor-7.22.20" = {
       name = "_at_babel_slash_helper-environment-visitor";
       packageName = "@babel/helper-environment-visitor";
@@ -1849,13 +1867,13 @@ let
         sha512 = "HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==";
       };
     };
-    "@babel/helper-plugin-utils-7.22.5" = {
+    "@babel/helper-plugin-utils-7.24.0" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.22.5";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz";
-        sha512 = "uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz";
+        sha512 = "9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==";
       };
     };
     "@babel/helper-remap-async-to-generator-7.22.20" = {
@@ -1939,13 +1957,13 @@ let
         sha512 = "pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==";
       };
     };
-    "@babel/helpers-7.23.9" = {
+    "@babel/helpers-7.24.0" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.23.9";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz";
-        sha512 = "87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz";
+        sha512 = "ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==";
       };
     };
     "@babel/highlight-7.23.4" = {
@@ -1975,13 +1993,13 @@ let
         sha512 = "FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==";
       };
     };
-    "@babel/parser-7.23.9" = {
+    "@babel/parser-7.24.0" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.23.9";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz";
-        sha512 = "9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz";
+        sha512 = "QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==";
       };
     };
     "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3" = {
@@ -2029,13 +2047,13 @@ let
         sha512 = "cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==";
       };
     };
-    "@babel/plugin-proposal-decorators-7.23.9" = {
+    "@babel/plugin-proposal-decorators-7.24.0" = {
       name = "_at_babel_slash_plugin-proposal-decorators";
       packageName = "@babel/plugin-proposal-decorators";
-      version = "7.23.9";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.9.tgz";
-        sha512 = "hJhBCb0+NnTWybvWq2WpbCYDOcflSbx0t+BYP65e5R9GVnukiDTi+on5bFkk4p7QGuv190H6KfNiV9Knf/3cZA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.0.tgz";
+        sha512 = "LiT1RqZWeij7X+wGxCoYh3/3b8nVOX6/7BZ9wiQgAIyjoeQWdROaodJCgT+dwtbjHaz0r7bEbHJzjSbVfcOyjQ==";
       };
     };
     "@babel/plugin-proposal-export-default-from-7.23.3" = {
@@ -2119,13 +2137,13 @@ let
         sha512 = "b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==";
       };
     };
-    "@babel/plugin-syntax-decorators-7.23.3" = {
+    "@babel/plugin-syntax-decorators-7.24.0" = {
       name = "_at_babel_slash_plugin-syntax-decorators";
       packageName = "@babel/plugin-syntax-decorators";
-      version = "7.23.3";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz";
-        sha512 = "cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.0.tgz";
+        sha512 = "MXW3pQCu9gUiVGzqkGqsgiINDVYXoAnrY8FYF/rmb+OfufNF0zHMpHPN4ulRrinxYT8Vk/aZJxYqOKsDECjKAw==";
       };
     };
     "@babel/plugin-syntax-dynamic-import-7.8.3" = {
@@ -2569,13 +2587,13 @@ let
         sha512 = "mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==";
       };
     };
-    "@babel/plugin-transform-object-rest-spread-7.23.4" = {
+    "@babel/plugin-transform-object-rest-spread-7.24.0" = {
       name = "_at_babel_slash_plugin-transform-object-rest-spread";
       packageName = "@babel/plugin-transform-object-rest-spread";
-      version = "7.23.4";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz";
-        sha512 = "9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.0.tgz";
+        sha512 = "y/yKMm7buHpFFXfxVFS4Vk1ToRJDilIa6fKRioB9Vjichv58TDGXTvqV0dN7plobAmTW5eSEGXDngE+Mm+uO+w==";
       };
     };
     "@babel/plugin-transform-object-super-7.23.3" = {
@@ -2695,13 +2713,13 @@ let
         sha512 = "QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==";
       };
     };
-    "@babel/plugin-transform-runtime-7.23.9" = {
+    "@babel/plugin-transform-runtime-7.24.0" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.23.9";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz";
-        sha512 = "A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.0.tgz";
+        sha512 = "zc0GA5IitLKJrSfXlXmp8KDqLrnGECK7YRfQBmEKg1NmBOQ7e+KuclBEKJgzifQeUYLdNiAw4B4bjyvzWVLiSA==";
       };
     };
     "@babel/plugin-transform-shorthand-properties-7.23.3" = {
@@ -2803,22 +2821,22 @@ let
         sha512 = "X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==";
       };
     };
-    "@babel/preset-env-7.23.9" = {
+    "@babel/preset-env-7.24.0" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.23.9";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz";
-        sha512 = "3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.0.tgz";
+        sha512 = "ZxPEzV9IgvGn73iK0E6VB9/95Nd7aMFpbE0l8KQFDG70cOV9IxRP7Y2FUPmlK0v6ImlLqYX50iuZ3ZTVhOF2lA==";
       };
     };
-    "@babel/preset-flow-7.23.3" = {
+    "@babel/preset-flow-7.24.0" = {
       name = "_at_babel_slash_preset-flow";
       packageName = "@babel/preset-flow";
-      version = "7.23.3";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.23.3.tgz";
-        sha512 = "7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==";
+        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.0.tgz";
+        sha512 = "cum/nSi82cDaSJ21I4PgLTVlj0OXovFk6GRguJYe/IKg6y6JHLTbJhybtX4k35WT9wdeJfEVjycTixMhBHd0Dg==";
       };
     };
     "@babel/preset-modules-0.1.6-no-external-plugins" = {
@@ -2857,13 +2875,13 @@ let
         sha512 = "x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==";
       };
     };
-    "@babel/runtime-7.23.9" = {
+    "@babel/runtime-7.24.0" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.23.9";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz";
-        sha512 = "0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz";
+        sha512 = "Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==";
       };
     };
     "@babel/runtime-7.9.0" = {
@@ -2875,22 +2893,13 @@ let
         sha512 = "cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==";
       };
     };
-    "@babel/template-7.22.15" = {
-      name = "_at_babel_slash_template";
-      packageName = "@babel/template";
-      version = "7.22.15";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz";
-        sha512 = "QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==";
-      };
-    };
-    "@babel/template-7.23.9" = {
+    "@babel/template-7.24.0" = {
       name = "_at_babel_slash_template";
       packageName = "@babel/template";
-      version = "7.23.9";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz";
-        sha512 = "+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==";
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz";
+        sha512 = "Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==";
       };
     };
     "@babel/traverse-7.23.2" = {
@@ -2902,13 +2911,13 @@ let
         sha512 = "azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==";
       };
     };
-    "@babel/traverse-7.23.9" = {
+    "@babel/traverse-7.24.0" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.23.9";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz";
-        sha512 = "I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz";
+        sha512 = "HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==";
       };
     };
     "@babel/types-7.17.0" = {
@@ -2929,31 +2938,13 @@ let
         sha512 = "YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==";
       };
     };
-    "@babel/types-7.23.6" = {
-      name = "_at_babel_slash_types";
-      packageName = "@babel/types";
-      version = "7.23.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz";
-        sha512 = "+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==";
-      };
-    };
-    "@babel/types-7.23.9" = {
+    "@babel/types-7.24.0" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.23.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz";
-        sha512 = "dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==";
-      };
-    };
-    "@bconnorwhite/module-2.0.2" = {
-      name = "_at_bconnorwhite_slash_module";
-      packageName = "@bconnorwhite/module";
-      version = "2.0.2";
+      version = "7.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bconnorwhite/module/-/module-2.0.2.tgz";
-        sha512 = "ck1me5WMgZKp06gnJrVKEkytpehTTQbvsAMbF1nGPeHri/AZNhj87++PSE2LOxmZqM0EtGMaqeLdx7Lw7SUnTA==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz";
+        sha512 = "+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==";
       };
     };
     "@bmewburn/js-beautify-1.14.9" = {
@@ -3037,49 +3028,49 @@ let
         sha512 = "htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==";
       };
     };
-    "@cdktf/cli-core-0.20.3" = {
+    "@cdktf/cli-core-0.20.5" = {
       name = "_at_cdktf_slash_cli-core";
       packageName = "@cdktf/cli-core";
-      version = "0.20.3";
+      version = "0.20.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/cli-core/-/cli-core-0.20.3.tgz";
-        sha512 = "FlxQC7VFmOvYV/0CAd3BRP45nvrjFu1QEfr0OuS0YfyBpF/GG1FCBm1D7hepfqkxbvpGUxglI/JhCoI9IYQ54Q==";
+        url = "https://registry.npmjs.org/@cdktf/cli-core/-/cli-core-0.20.5.tgz";
+        sha512 = "QTOQjzxLYksskbEk1Db+LsXcCE3OXCGpX/i7JiBcp1IUCr7IRHC/W9adb9qKuJvZfCsRwHcIUmCPNAGUheRHUg==";
       };
     };
-    "@cdktf/commons-0.20.3" = {
+    "@cdktf/commons-0.20.5" = {
       name = "_at_cdktf_slash_commons";
       packageName = "@cdktf/commons";
-      version = "0.20.3";
+      version = "0.20.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/commons/-/commons-0.20.3.tgz";
-        sha512 = "9vysGHMeUnvv5G59bBKGHs7Gh3XaW9gqfmDU4xIivwsTLmcFJERUQGDrHNB3DNgLLc8LCCOTN0FKte51Mx+VgA==";
+        url = "https://registry.npmjs.org/@cdktf/commons/-/commons-0.20.5.tgz";
+        sha512 = "5Fa8CN2nEfbwxQyuSwMLit/r34CIWq7v9PoBn+8PiG9fPeVw1OT+4zmcQYAwKa7JD5trqpvheVNCnCKesx2TWA==";
       };
     };
-    "@cdktf/hcl-tools-0.20.3" = {
+    "@cdktf/hcl-tools-0.20.5" = {
       name = "_at_cdktf_slash_hcl-tools";
       packageName = "@cdktf/hcl-tools";
-      version = "0.20.3";
+      version = "0.20.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl-tools/-/hcl-tools-0.20.3.tgz";
-        sha512 = "S0i3XKSFVVRW16xvodbIC81/2WiEAySJQK3JttmMMgADWGs76j9aIiDOZzs0NF9EbLY4QkxgcPApO33l9EATLw==";
+        url = "https://registry.npmjs.org/@cdktf/hcl-tools/-/hcl-tools-0.20.5.tgz";
+        sha512 = "mbm9lzS8GeEi3A2AXcAwaWYvi4z/DY2nAOYTQnhvPDjEDPMn8bS7/6BCRj/+G4VcfRJG3vSIrV1szLYIueBuag==";
       };
     };
-    "@cdktf/hcl2cdk-0.20.3" = {
+    "@cdktf/hcl2cdk-0.20.5" = {
       name = "_at_cdktf_slash_hcl2cdk";
       packageName = "@cdktf/hcl2cdk";
-      version = "0.20.3";
+      version = "0.20.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2cdk/-/hcl2cdk-0.20.3.tgz";
-        sha512 = "XXNDp52vIXh2revaaosE/e6TXY6SDoss48cCJ1FQjd5GJw9HdwAXEhQvCH59v7wAVokZk3NGEUybSXHq3zwCYA==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2cdk/-/hcl2cdk-0.20.5.tgz";
+        sha512 = "sA5ldRMQxy3zxfq+Kq/MqtDOrg8u6k/X2wMz3p11hZSJiAdDK/7vranUsm3iUvHUIjAGqurGbLOJ40bVggF4ow==";
       };
     };
-    "@cdktf/hcl2json-0.20.3" = {
+    "@cdktf/hcl2json-0.20.5" = {
       name = "_at_cdktf_slash_hcl2json";
       packageName = "@cdktf/hcl2json";
-      version = "0.20.3";
+      version = "0.20.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.20.3.tgz";
-        sha512 = "GCq/GrVRXI0nR5gQM0LW7pxEA/tZav0dGQZGowHif/vXsMlOZjTh/F1ISVmDUCkNHV7pgbFmy6tDg7RtsiavXw==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.20.5.tgz";
+        sha512 = "dI2M7X05ak6v5rwKzI68SocEH5YQFxF5hQzpaj9Bli672zhD88QTLOzdC61/GvAkbqf955C05jqcvC7KCY0h1w==";
       };
     };
     "@cdktf/node-pty-prebuilt-multiarch-0.10.1-pre.11" = {
@@ -3091,22 +3082,22 @@ let
         sha512 = "qvga/nzEtdCJMu/6jJfDqpzbRejvXtNhWFnbubfuYyN5nMNORNXX+POT4j+mQSDQar5bIQ1a812szw/zr47cfw==";
       };
     };
-    "@cdktf/provider-generator-0.20.3" = {
+    "@cdktf/provider-generator-0.20.5" = {
       name = "_at_cdktf_slash_provider-generator";
       packageName = "@cdktf/provider-generator";
-      version = "0.20.3";
+      version = "0.20.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/provider-generator/-/provider-generator-0.20.3.tgz";
-        sha512 = "PIu/7kK3YZk9YefCTqJ8OiSER2zojz1EvpeeOxpIj+m98iMB2fpIRAA0ytVzkC3ilbDRCLyQb6+SlMxgSnenYg==";
+        url = "https://registry.npmjs.org/@cdktf/provider-generator/-/provider-generator-0.20.5.tgz";
+        sha512 = "wyH0I0gzwGAOOizd1stMLyFBkGkrwoR5h+BAP08HutyyiVlcs1ddeceh+mwD4HyH1pI+F+ZJh2lt1ViHhzNCrw==";
       };
     };
-    "@cdktf/provider-schema-0.20.3" = {
+    "@cdktf/provider-schema-0.20.5" = {
       name = "_at_cdktf_slash_provider-schema";
       packageName = "@cdktf/provider-schema";
-      version = "0.20.3";
+      version = "0.20.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/provider-schema/-/provider-schema-0.20.3.tgz";
-        sha512 = "fgqHtVY5FYN2spYsDLTPOxvspWu2JfmV4nxThVwd8bGBmdFf36ceWCSyyuc5tnSd4rJstXoAXMkTYlX2GtOubQ==";
+        url = "https://registry.npmjs.org/@cdktf/provider-schema/-/provider-schema-0.20.5.tgz";
+        sha512 = "YfLsoAmHrBrkj24/oXBuDydd8FC7ux6+cR9gN7xhcO1gCrzYnIprQ2LHwHAgr6UUtHJgeAhVaJQWjyLaMAf1PA==";
       };
     };
     "@chemzqm/msgpack-lite-0.1.29" = {
@@ -3136,13 +3127,13 @@ let
         sha512 = "lKN2XCfKCmpKb86a1tl4GIwsJYDy9TGuwjhDELLmpKygQhw8X2xR4dusgpC5Tg7q1pB96Eb0rBo81kxSILQMwA==";
       };
     };
-    "@cloudflare/workers-types-4.20240208.0" = {
+    "@cloudflare/workers-types-4.20240314.0" = {
       name = "_at_cloudflare_slash_workers-types";
       packageName = "@cloudflare/workers-types";
-      version = "4.20240208.0";
+      version = "4.20240314.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20240208.0.tgz";
-        sha512 = "MVGTTjZpJu4kJONvai5SdJzWIhOJbuweVZ3goI7FNyG+JdoQH41OoB+nMhLsX626vPLZVWGPIWsiSo/WZHzgQw==";
+        url = "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20240314.0.tgz";
+        sha512 = "eg2dK/tYSiFvQu3sexjB32WEGi3GEmY6pLRF4nrV9Rwi2F2965o6f6604jQY8whhrmNdEoWErSjhuuUld6xgKQ==";
       };
     };
     "@colors/colors-1.5.0" = {
@@ -3163,139 +3154,139 @@ let
         sha512 = "Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==";
       };
     };
-    "@commitlint/config-validator-18.6.1" = {
+    "@commitlint/config-validator-19.0.3" = {
       name = "_at_commitlint_slash_config-validator";
       packageName = "@commitlint/config-validator";
-      version = "18.6.1";
+      version = "19.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-18.6.1.tgz";
-        sha512 = "05uiToBVfPhepcQWE1ZQBR/Io3+tb3gEotZjnI4tTzzPk16NffN6YABgwFQCLmzZefbDcmwWqJWc2XT47q7Znw==";
+        url = "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.0.3.tgz";
+        sha512 = "2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==";
       };
     };
-    "@commitlint/ensure-18.6.1" = {
+    "@commitlint/ensure-19.0.3" = {
       name = "_at_commitlint_slash_ensure";
       packageName = "@commitlint/ensure";
-      version = "18.6.1";
+      version = "19.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/ensure/-/ensure-18.6.1.tgz";
-        sha512 = "BPm6+SspyxQ7ZTsZwXc7TRQL5kh5YWt3euKmEIBZnocMFkJevqs3fbLRb8+8I/cfbVcAo4mxRlpTPfz8zX7SnQ==";
+        url = "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.0.3.tgz";
+        sha512 = "SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==";
       };
     };
-    "@commitlint/execute-rule-18.6.1" = {
+    "@commitlint/execute-rule-19.0.0" = {
       name = "_at_commitlint_slash_execute-rule";
       packageName = "@commitlint/execute-rule";
-      version = "18.6.1";
+      version = "19.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-18.6.1.tgz";
-        sha512 = "7s37a+iWyJiGUeMFF6qBlyZciUkF8odSAnHijbD36YDctLhGKoYltdvuJ/AFfRm6cBLRtRk9cCVPdsEFtt/2rg==";
+        url = "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.0.0.tgz";
+        sha512 = "mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==";
       };
     };
-    "@commitlint/format-18.6.1" = {
+    "@commitlint/format-19.0.3" = {
       name = "_at_commitlint_slash_format";
       packageName = "@commitlint/format";
-      version = "18.6.1";
+      version = "19.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/format/-/format-18.6.1.tgz";
-        sha512 = "K8mNcfU/JEFCharj2xVjxGSF+My+FbUHoqR+4GqPGrHNqXOGNio47ziiR4HQUPKtiNs05o8/WyLBoIpMVOP7wg==";
+        url = "https://registry.npmjs.org/@commitlint/format/-/format-19.0.3.tgz";
+        sha512 = "QjjyGyoiVWzx1f5xOteKHNLFyhyweVifMgopozSgx1fGNrGV8+wp7k6n1t6StHdJ6maQJ+UUtO2TcEiBFRyR6Q==";
       };
     };
-    "@commitlint/is-ignored-18.6.1" = {
+    "@commitlint/is-ignored-19.0.3" = {
       name = "_at_commitlint_slash_is-ignored";
       packageName = "@commitlint/is-ignored";
-      version = "18.6.1";
+      version = "19.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-18.6.1.tgz";
-        sha512 = "MOfJjkEJj/wOaPBw5jFjTtfnx72RGwqYIROABudOtJKW7isVjFe9j0t8xhceA02QebtYf4P/zea4HIwnXg8rvA==";
+        url = "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.0.3.tgz";
+        sha512 = "MqDrxJaRSVSzCbPsV6iOKG/Lt52Y+PVwFVexqImmYYFhe51iVJjK2hRhOG2jUAGiUHk4jpdFr0cZPzcBkSzXDQ==";
       };
     };
-    "@commitlint/lint-18.6.1" = {
+    "@commitlint/lint-19.1.0" = {
       name = "_at_commitlint_slash_lint";
       packageName = "@commitlint/lint";
-      version = "18.6.1";
+      version = "19.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/lint/-/lint-18.6.1.tgz";
-        sha512 = "8WwIFo3jAuU+h1PkYe5SfnIOzp+TtBHpFr4S8oJWhu44IWKuVx6GOPux3+9H1iHOan/rGBaiacicZkMZuluhfQ==";
+        url = "https://registry.npmjs.org/@commitlint/lint/-/lint-19.1.0.tgz";
+        sha512 = "ESjaBmL/9cxm+eePyEr6SFlBUIYlYpI80n+Ltm7IA3MAcrmiP05UMhJdAD66sO8jvo8O4xdGn/1Mt2G5VzfZKw==";
       };
     };
-    "@commitlint/load-18.6.1" = {
+    "@commitlint/load-19.2.0" = {
       name = "_at_commitlint_slash_load";
       packageName = "@commitlint/load";
-      version = "18.6.1";
+      version = "19.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/load/-/load-18.6.1.tgz";
-        sha512 = "p26x8734tSXUHoAw0ERIiHyW4RaI4Bj99D8YgUlVV9SedLf8hlWAfyIFhHRIhfPngLlCe0QYOdRKYFt8gy56TA==";
+        url = "https://registry.npmjs.org/@commitlint/load/-/load-19.2.0.tgz";
+        sha512 = "XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==";
       };
     };
-    "@commitlint/message-18.6.1" = {
+    "@commitlint/message-19.0.0" = {
       name = "_at_commitlint_slash_message";
       packageName = "@commitlint/message";
-      version = "18.6.1";
+      version = "19.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/message/-/message-18.6.1.tgz";
-        sha512 = "VKC10UTMLcpVjMIaHHsY1KwhuTQtdIKPkIdVEwWV+YuzKkzhlI3aNy6oo1eAN6b/D2LTtZkJe2enHmX0corYRw==";
+        url = "https://registry.npmjs.org/@commitlint/message/-/message-19.0.0.tgz";
+        sha512 = "c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==";
       };
     };
-    "@commitlint/parse-18.6.1" = {
+    "@commitlint/parse-19.0.3" = {
       name = "_at_commitlint_slash_parse";
       packageName = "@commitlint/parse";
-      version = "18.6.1";
+      version = "19.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/parse/-/parse-18.6.1.tgz";
-        sha512 = "eS/3GREtvVJqGZrwAGRwR9Gdno3YcZ6Xvuaa+vUF8j++wsmxrA2En3n0ccfVO2qVOLJC41ni7jSZhQiJpMPGOQ==";
+        url = "https://registry.npmjs.org/@commitlint/parse/-/parse-19.0.3.tgz";
+        sha512 = "Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==";
       };
     };
-    "@commitlint/read-18.6.1" = {
+    "@commitlint/read-19.2.0" = {
       name = "_at_commitlint_slash_read";
       packageName = "@commitlint/read";
-      version = "18.6.1";
+      version = "19.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/read/-/read-18.6.1.tgz";
-        sha512 = "ia6ODaQFzXrVul07ffSgbZGFajpe8xhnDeLIprLeyfz3ivQU1dIoHp7yz0QIorZ6yuf4nlzg4ZUkluDrGN/J/w==";
+        url = "https://registry.npmjs.org/@commitlint/read/-/read-19.2.0.tgz";
+        sha512 = "HlGeEd/jyp2a5Fb9mvtsaDm5hFCmj80dJYjLQkpG3DzWneWBc37YU3kM8Za1D1HUazZaTkdsWq73M3XDE4CvCA==";
       };
     };
-    "@commitlint/resolve-extends-18.6.1" = {
+    "@commitlint/resolve-extends-19.1.0" = {
       name = "_at_commitlint_slash_resolve-extends";
       packageName = "@commitlint/resolve-extends";
-      version = "18.6.1";
+      version = "19.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-18.6.1.tgz";
-        sha512 = "ifRAQtHwK+Gj3Bxj/5chhc4L2LIc3s30lpsyW67yyjsETR6ctHAHRu1FSpt0KqahK5xESqoJ92v6XxoDRtjwEQ==";
+        url = "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.1.0.tgz";
+        sha512 = "z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==";
       };
     };
-    "@commitlint/rules-18.6.1" = {
+    "@commitlint/rules-19.0.3" = {
       name = "_at_commitlint_slash_rules";
       packageName = "@commitlint/rules";
-      version = "18.6.1";
+      version = "19.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/rules/-/rules-18.6.1.tgz";
-        sha512 = "kguM6HxZDtz60v/zQYOe0voAtTdGybWXefA1iidjWYmyUUspO1zBPQEmJZ05/plIAqCVyNUTAiRPWIBKLCrGew==";
+        url = "https://registry.npmjs.org/@commitlint/rules/-/rules-19.0.3.tgz";
+        sha512 = "TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==";
       };
     };
-    "@commitlint/to-lines-18.6.1" = {
+    "@commitlint/to-lines-19.0.0" = {
       name = "_at_commitlint_slash_to-lines";
       packageName = "@commitlint/to-lines";
-      version = "18.6.1";
+      version = "19.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-18.6.1.tgz";
-        sha512 = "Gl+orGBxYSNphx1+83GYeNy5N0dQsHBQ9PJMriaLQDB51UQHCVLBT/HBdOx5VaYksivSf5Os55TLePbRLlW50Q==";
+        url = "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.0.0.tgz";
+        sha512 = "vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==";
       };
     };
-    "@commitlint/top-level-18.6.1" = {
+    "@commitlint/top-level-19.0.0" = {
       name = "_at_commitlint_slash_top-level";
       packageName = "@commitlint/top-level";
-      version = "18.6.1";
+      version = "19.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/top-level/-/top-level-18.6.1.tgz";
-        sha512 = "HyiHQZUTf0+r0goTCDs/bbVv/LiiQ7AVtz6KIar+8ZrseB9+YJAIo8HQ2IC2QT1y3N1lbW6OqVEsTHjbT6hGSw==";
+        url = "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.0.0.tgz";
+        sha512 = "KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==";
       };
     };
-    "@commitlint/types-18.6.1" = {
+    "@commitlint/types-19.0.3" = {
       name = "_at_commitlint_slash_types";
       packageName = "@commitlint/types";
-      version = "18.6.1";
+      version = "19.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/types/-/types-18.6.1.tgz";
-        sha512 = "gwRLBLra/Dozj2OywopeuHj2ac26gjGkz2cZ+86cTJOdtWfiRRr4+e77ZDAGc6MDWxaWheI+mAV5TLWWRwqrFg==";
+        url = "https://registry.npmjs.org/@commitlint/types/-/types-19.0.3.tgz";
+        sha512 = "tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==";
       };
     };
     "@cronvel/get-pixels-3.4.1" = {
@@ -3307,58 +3298,58 @@ let
         sha512 = "gB5C5nDIacLUdsMuW8YsM9SzK3vaFANe4J11CVXpovpy7bZUGrcJKmc6m/0gWG789pKr6XSZY2aEetjFvSRw5g==";
       };
     };
-    "@cspell/cspell-bundled-dicts-8.3.2" = {
+    "@cspell/cspell-bundled-dicts-8.6.0" = {
       name = "_at_cspell_slash_cspell-bundled-dicts";
       packageName = "@cspell/cspell-bundled-dicts";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.3.2.tgz";
-        sha512 = "3ubOgz1/MDixJbq//0rQ2omB3cSdhVJDviERZeiREGz4HOq84aaK1Fqbw5SjNZHvhpoq+AYXm6kJbIAH8YhKgg==";
+        url = "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.6.0.tgz";
+        sha512 = "hRVvir4G4276Kz/Cru34AJg1FObIw5MrzezAwHkD3obNMwZkof8aX3MEN6AzWusJSVG2ZxZxZAEnYbgqvGr2Fg==";
       };
     };
-    "@cspell/cspell-json-reporter-8.3.2" = {
+    "@cspell/cspell-json-reporter-8.6.0" = {
       name = "_at_cspell_slash_cspell-json-reporter";
       packageName = "@cspell/cspell-json-reporter";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.3.2.tgz";
-        sha512 = "gHSz4jXMJPcxx+lOGfXhHuoyenAWQ8PVA/atHFrWYKo1LzKTbpkEkrsDnlX8QNJubc3EMH63Uy+lOIaFDVyHiQ==";
+        url = "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.6.0.tgz";
+        sha512 = "fPpE4a3zpdfwgTyfLgCmxZn4owkZ4IP6A/oL4XLW22IxW5xBIbXEveOSY+uiWAnVfEnqfrMNRLAGj7JoXnJ1Vg==";
       };
     };
-    "@cspell/cspell-pipe-8.3.2" = {
+    "@cspell/cspell-pipe-8.6.0" = {
       name = "_at_cspell_slash_cspell-pipe";
       packageName = "@cspell/cspell-pipe";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.3.2.tgz";
-        sha512 = "GZmDwvQGOjQi3IjD4k9xXeVTDANczksOsgVKb3v2QZk9mR4Qj8c6Uarjd4AgSiIhu/wBliJfzr5rWFJu4X2VfQ==";
+        url = "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-8.6.0.tgz";
+        sha512 = "gbAZksz38OHaN8s4fOmmgtgQfie1K8dRGlo9z/uxSx5FIELV48GWTbHn9t1TY2yBXBwJ7+4NF2+r624rtlPoHQ==";
       };
     };
-    "@cspell/cspell-resolver-8.3.2" = {
+    "@cspell/cspell-resolver-8.6.0" = {
       name = "_at_cspell_slash_cspell-resolver";
       packageName = "@cspell/cspell-resolver";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.3.2.tgz";
-        sha512 = "w2Tmb95bzdEz9L4W5qvsP5raZbyEzKL7N2ksU/+yh8NEJcTuExmAl/nMnb3aIk7m2b+kPHnMOcJuwfUMLmyv4A==";
+        url = "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-8.6.0.tgz";
+        sha512 = "ARwO6TWKy8fLHNhC/ls5Wo/AK86E1oLVChwWtHdq7eVyEUIykQaXGLqoRThkIT2jyLfGDrhSvaU+yqcXVLE48Q==";
       };
     };
-    "@cspell/cspell-service-bus-8.3.2" = {
+    "@cspell/cspell-service-bus-8.6.0" = {
       name = "_at_cspell_slash_cspell-service-bus";
       packageName = "@cspell/cspell-service-bus";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.3.2.tgz";
-        sha512 = "skTHNyVi74//W/O+f4IauDhm6twA9S2whkylonsIzPxEl4Pn3y2ZEMXNki/MWUwZfDIzKKSxlcREH61g7zCvhg==";
+        url = "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-8.6.0.tgz";
+        sha512 = "veCGlhlNGmYMgzX/rMiDp8j7ndLxFHIZq3h6DNlIsIoSjP1v5Rk6UcCwEoWYexwKmNXo7c2VooB0GM9LSBcPAQ==";
       };
     };
-    "@cspell/cspell-types-8.3.2" = {
+    "@cspell/cspell-types-8.6.0" = {
       name = "_at_cspell_slash_cspell-types";
       packageName = "@cspell/cspell-types";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.3.2.tgz";
-        sha512 = "qS/gWd9ItOrN6ZX5pwC9lJjnBoyiAyhxYq0GUXuV892LQvwrBmECGk6KhsA1lPW7JJS7o57YTAS1jmXnmXMEpg==";
+        url = "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-8.6.0.tgz";
+        sha512 = "+CU/nuFOpswJAA3IS2TcKGskfM/o/4aNG1IMUVaOEQi1Sc5qZQ4Wj1qDIWJArSHFYW1Q4XFa4U8K1jnVHkAhZQ==";
       };
     };
     "@cspell/dict-ada-4.0.2" = {
@@ -3604,13 +3595,13 @@ let
         sha512 = "UPwR4rfiJCxnS+Py+EK9E4AUj3aPZE4p/yBRSHN+5aBQConlI0lLDtMceH5wlupA/sQTU1ERZGPJA9L96jVSyQ==";
       };
     };
-    "@cspell/dict-en_us-4.3.16" = {
+    "@cspell/dict-en_us-4.3.17" = {
       name = "_at_cspell_slash_dict-en_us";
       packageName = "@cspell/dict-en_us";
-      version = "4.3.16";
+      version = "4.3.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.16.tgz";
-        sha512 = "fyNuAvYpkllmsMpfAJaMip250LRAnEDp2EZbkjYwAJXXjtgQ4/1yh6sLityxPMDtJZN65Eko+8rJzGJHez4zbA==";
+        url = "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.17.tgz";
+        sha512 = "CS0Tb2f2YwQZ4VZ6+WLAO5uOzb0iO/iYSRl34kX4enq6quXxLYzwdfGAwv85wSYHPdga8tGiZFP+p8GPsi2JEg==";
       };
     };
     "@cspell/dict-filetypes-1.1.8" = {
@@ -3928,13 +3919,13 @@ let
         sha512 = "lEdzrcyau6mgzu1ie98GjOEegwVHvoaWtzQnm1ie4DyZgMr+N6D0Iyj1lzvtmt0snvsDFa5F2bsYzf3IMKcpcA==";
       };
     };
-    "@cspell/dict-public-licenses-2.0.5" = {
+    "@cspell/dict-public-licenses-2.0.6" = {
       name = "_at_cspell_slash_dict-public-licenses";
       packageName = "@cspell/dict-public-licenses";
-      version = "2.0.5";
+      version = "2.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.5.tgz";
-        sha512 = "91HK4dSRri/HqzAypHgduRMarJAleOX5NugoI8SjDLPzWYkwZ1ftuCXSk+fy8DLc3wK7iOaFcZAvbjmnLhVs4A==";
+        url = "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.6.tgz";
+        sha512 = "bHqpSpJvLCUcWxj1ov/Ki8WjmESpYwRpQlqfdchekOTc93Huhvjm/RXVN1R4fVf4Hspyem1QVkCGqAmjJMj6sw==";
       };
     };
     "@cspell/dict-python-1.0.38" = {
@@ -4090,22 +4081,22 @@ let
         sha512 = "niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==";
       };
     };
-    "@cspell/dynamic-import-8.3.2" = {
+    "@cspell/dynamic-import-8.6.0" = {
       name = "_at_cspell_slash_dynamic-import";
       packageName = "@cspell/dynamic-import";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.3.2.tgz";
-        sha512 = "4t0xM5luA3yQhar2xWvYK4wQSDB2r0u8XkpzzJqd57MnJXd7uIAxI0awGUrDXukadRaCo0tDIlMUBemH48SNVg==";
+        url = "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-8.6.0.tgz";
+        sha512 = "yDJZ/uXCpZcAkXwaWa0JcCZHZFxnF3qtiFiq2WG5cEw8tiJiNdawjSCd8/D35dT3QFNaInMP+H3sOf68dNueew==";
       };
     };
-    "@cspell/strong-weak-map-8.3.2" = {
+    "@cspell/strong-weak-map-8.6.0" = {
       name = "_at_cspell_slash_strong-weak-map";
       packageName = "@cspell/strong-weak-map";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.3.2.tgz";
-        sha512 = "Mte/2000ap278kRYOUhiGWI7MNr1+A7WSWJmlcdP4CAH5SO20sZI3/cyZLjJJEyapdhK5vaP1L5J9sUcVDHd3A==";
+        url = "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-8.6.0.tgz";
+        sha512 = "QenBOdIT1zRa0kF3Z1mwObcvmdhxn+rzQDdmkxwSyRB/9KsNnib6XXTUo8P+Z/ZKXOYbP9Wmf4FX+vKd3yVX0Q==";
       };
     };
     "@cspotcode/source-map-support-0.8.1" = {
@@ -4243,121 +4234,121 @@ let
         sha512 = "0dEVyRLM/lG4gp1R/Ik5bfPl/1wX00xFwd5KcNH602tzBa09oF7pbTKETEhR1GjZ75K6OJnYFu8II2dyMhONMw==";
       };
     };
-    "@electron-forge/core-7.2.0" = {
+    "@electron-forge/core-7.3.0" = {
       name = "_at_electron-forge_slash_core";
       packageName = "@electron-forge/core";
-      version = "7.2.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/core/-/core-7.2.0.tgz";
-        sha512 = "7Sh0KW79Z/y9MStU3sWTBbTkM4SvV6rL557/ndlfAbZrxcGMnmWHrzn/odAZW1eyfhKguBb7C1Ijw0YTpsdVsw==";
+        url = "https://registry.npmjs.org/@electron-forge/core/-/core-7.3.0.tgz";
+        sha512 = "Z0wvs/YutUzo5xbCBjhoWSnlO1y5DbM4LMa5Di4Dxaf8v/xi7PQ/ncjAiOJKFYI8mG23Nn8Ae13weG0tiXISbA==";
       };
     };
-    "@electron-forge/core-utils-7.2.0" = {
+    "@electron-forge/core-utils-7.3.0" = {
       name = "_at_electron-forge_slash_core-utils";
       packageName = "@electron-forge/core-utils";
-      version = "7.2.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.2.0.tgz";
-        sha512 = "PI1wETlF/+Cxm1m/IgURQ9S3LzHU70/S4CHmkw4xJg4wYVRTfiKpH2XRE9VqEJU854hEnsCGynAIn7/Z2h6SIA==";
+        url = "https://registry.npmjs.org/@electron-forge/core-utils/-/core-utils-7.3.0.tgz";
+        sha512 = "cKeWuC8zYcp2n9caRWvCQgwIFtDqaUlwQVeg2VBpgJTGYHNKEDQHadR2xtIXTcfNgPUbQEAXiaS2xuxuhPQLfw==";
       };
     };
-    "@electron-forge/maker-base-7.2.0" = {
+    "@electron-forge/maker-base-7.3.0" = {
       name = "_at_electron-forge_slash_maker-base";
       packageName = "@electron-forge/maker-base";
-      version = "7.2.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.2.0.tgz";
-        sha512 = "5dCFiVo4WhSlLf/T9MP+jnMqP3qfmwvjCSiTRE08USeotNWhycztcFox94NbxMJkRt329tNeG2RRs7RzdCz21w==";
+        url = "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.3.0.tgz";
+        sha512 = "1o0YT1QBCf9oAfQNJmWQehn+DQp8mqaUbwaivNtIgTKRlzAVfD7UoAS7izuUqEW6M6NOvFXfCQjp7IgGckVVBg==";
       };
     };
-    "@electron-forge/plugin-base-7.2.0" = {
+    "@electron-forge/plugin-base-7.3.0" = {
       name = "_at_electron-forge_slash_plugin-base";
       packageName = "@electron-forge/plugin-base";
-      version = "7.2.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.2.0.tgz";
-        sha512 = "c/pQK36BMBMKiemO68g1ZQOCXBA93x/aeX3lIXwK5bKVuaGt16Unfmby5Q7iIvY+/KsBuLYGkAder8HDN+4Nbw==";
+        url = "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-7.3.0.tgz";
+        sha512 = "cS0dqi9yTMgKzy1RhJ21YheRjWSbUh0bOKuByYAWevdqMZfqO2KyhXIsmH5QizL+bub8uWOUsknXVrOp73NLfw==";
       };
     };
-    "@electron-forge/publisher-base-7.2.0" = {
+    "@electron-forge/publisher-base-7.3.0" = {
       name = "_at_electron-forge_slash_publisher-base";
       packageName = "@electron-forge/publisher-base";
-      version = "7.2.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.2.0.tgz";
-        sha512 = "c0pwcQeMZi0S4iLlgA3pqm6ZdW2u7Ea4Ynat04Gw7su5GLtbrKRgYSL36ZRhzz7sgm4372niI0k91KaH5KToHg==";
+        url = "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-7.3.0.tgz";
+        sha512 = "iO8QuM0zTLcEA0/7adEUOzMrhu/h6Qk9UiWNUllBctZXZ+FO0CbAY7eGzOgjOKqH5akbEKHwCSRnjrFt91QpQg==";
       };
     };
-    "@electron-forge/shared-types-7.2.0" = {
+    "@electron-forge/shared-types-7.3.0" = {
       name = "_at_electron-forge_slash_shared-types";
       packageName = "@electron-forge/shared-types";
-      version = "7.2.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.2.0.tgz";
-        sha512 = "d8i+pwPwBnlmFTRkq7QfaoRS9LywfyjDdHqQZuArFbL6NLAEbZ52irFiAE3NSLf4STew/BA6IK9sTPz3KRmvQw==";
+        url = "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.3.0.tgz";
+        sha512 = "+YGOTGUGVrcaRm9zO3xsWSj2GS9iVY6E1WTG0vD2OxZtdEGcdy3hZryV72f5gH+qeZZvujYSR2s7VvZjhFEHaQ==";
       };
     };
-    "@electron-forge/template-base-7.2.0" = {
+    "@electron-forge/template-base-7.3.0" = {
       name = "_at_electron-forge_slash_template-base";
       packageName = "@electron-forge/template-base";
-      version = "7.2.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.2.0.tgz";
-        sha512 = "X7JrgQctgN0saFih/kKWVJ3KxiI1BpzdrkW58vs5H0kXXmA6UObE16/dWuKYfB06j0yIsfMbZ32Md1yAkgdCfg==";
+        url = "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-7.3.0.tgz";
+        sha512 = "Lf0fupMzuO9XuBOaWoQ5QljjQ89B7TYU40+eEUvxnIMNAfnU3n+cfhC4xGLldmh+LYRuotB1jJitX79BwRqzIA==";
       };
     };
-    "@electron-forge/template-vite-7.2.0" = {
+    "@electron-forge/template-vite-7.3.0" = {
       name = "_at_electron-forge_slash_template-vite";
       packageName = "@electron-forge/template-vite";
-      version = "7.2.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.2.0.tgz";
-        sha512 = "Q5FSD+NVNMJKuAo/htQXpk3Q/eo116Xhx0zTzhSldAqpsgfxdAIJhl8TFmdVvCJIig1vEcLG2n/PgudxnuDuEQ==";
+        url = "https://registry.npmjs.org/@electron-forge/template-vite/-/template-vite-7.3.0.tgz";
+        sha512 = "4vdOLmd0/rThA9lO/Tf16oCoDBPWGLRZZF+XM+ECPDfaL0CbFNoEa/NLrr6T/2D6IlV5+GnmVjz29LlVOFUB7w==";
       };
     };
-    "@electron-forge/template-vite-typescript-7.2.0" = {
+    "@electron-forge/template-vite-typescript-7.3.0" = {
       name = "_at_electron-forge_slash_template-vite-typescript";
       packageName = "@electron-forge/template-vite-typescript";
-      version = "7.2.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.2.0.tgz";
-        sha512 = "knN3lxJY6UyXa2u5957K4ZyItCoCw22wrUhQARvdHOcgXvMFAcwvfEDT8zOQy6ki6A9W3cMHhSTys7dC8/ChVw==";
+        url = "https://registry.npmjs.org/@electron-forge/template-vite-typescript/-/template-vite-typescript-7.3.0.tgz";
+        sha512 = "4gVlJihXLM+r6GBOCeO6mSv5vZImew9Vp/xFfxMrf3nDThMCnA6HYLIGA361ZTbn4z3ARquXPo6Vsm7/s4ykbw==";
       };
     };
-    "@electron-forge/template-webpack-7.2.0" = {
+    "@electron-forge/template-webpack-7.3.0" = {
       name = "_at_electron-forge_slash_template-webpack";
       packageName = "@electron-forge/template-webpack";
-      version = "7.2.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.2.0.tgz";
-        sha512 = "h2LQ3vAzIraRqLUM5fKOLXknp7n5hrQXudRjO/vEEbm1a0jbl4yjp6liKk3yx8MFFO4eAHVDrXwRSsLR3a2Wew==";
+        url = "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-7.3.0.tgz";
+        sha512 = "5Cv0g+AHdEI2R4hPI38PzWTnqUwqpM36jpQgkXV1RnL3V9FvNuza/w9RLMj5bhGzB0j5M4bVbcnglMX0pDvVBQ==";
       };
     };
-    "@electron-forge/template-webpack-typescript-7.2.0" = {
+    "@electron-forge/template-webpack-typescript-7.3.0" = {
       name = "_at_electron-forge_slash_template-webpack-typescript";
       packageName = "@electron-forge/template-webpack-typescript";
-      version = "7.2.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.2.0.tgz";
-        sha512 = "eshvPcYXUgmpB+ts9/xRPvQexY46unfe0mGmLDaj8s/5fqCANgyUO5jusvMXlJdf3qwJ/rfi3jS0NuqnjsqskQ==";
+        url = "https://registry.npmjs.org/@electron-forge/template-webpack-typescript/-/template-webpack-typescript-7.3.0.tgz";
+        sha512 = "eiBhsY/LUaV1vIy/PZqnmkxWyjEyN/PsXyq79lr1nuOKrqkVgZUe/IdvtNxr8wvPoKSScORNLHjiD/C2Jp74HA==";
       };
     };
-    "@electron-forge/tracer-7.2.0" = {
+    "@electron-forge/tracer-7.3.0" = {
       name = "_at_electron-forge_slash_tracer";
       packageName = "@electron-forge/tracer";
-      version = "7.2.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.2.0.tgz";
-        sha512 = "EoJ07nptEuuY2fcs/bUWzIf11RQRx6Ch/dZ6A9WIRcFYe9cFrslQwvyUf0siY3jcqVvxETCz69JGuBxKGwak7A==";
+        url = "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.3.0.tgz";
+        sha512 = "FS7ABTm52BMP2BlR/pDmUIKtH9NI1i+BBJuKke58KguToBRuvAX1cLt0Hhkq4HlqYR9fNjRoCo1vrK4OBb0Bew==";
       };
     };
-    "@electron/asar-3.2.8" = {
+    "@electron/asar-3.2.9" = {
       name = "_at_electron_slash_asar";
       packageName = "@electron/asar";
-      version = "3.2.8";
+      version = "3.2.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron/asar/-/asar-3.2.8.tgz";
-        sha512 = "cmskk5M06ewHMZAplSiF4AlME3IrnnZhKnWbtwKVLRkdJkKyUVjMLhDIiPIx/+6zQWVlKX/LtmK9xDme7540Sg==";
+        url = "https://registry.npmjs.org/@electron/asar/-/asar-3.2.9.tgz";
+        sha512 = "Vu2P3X2gcZ3MY9W7yH72X9+AMXwUQZEJBrsPIbX0JsdllLtoh62/Q8Wg370/DawIEVKOyfD6KtTLo645ezqxUA==";
       };
     };
     "@electron/get-3.0.0" = {
@@ -4414,13 +4405,13 @@ let
         sha512 = "fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA==";
       };
     };
-    "@electron/windows-sign-1.1.1" = {
+    "@electron/windows-sign-1.1.2" = {
       name = "_at_electron_slash_windows-sign";
       packageName = "@electron/windows-sign";
-      version = "1.1.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron/windows-sign/-/windows-sign-1.1.1.tgz";
-        sha512 = "g8/atfOCKuuGedjVE6Xu/rlBtJvfDrmBH9UokBrjrvBVWdVz3SGV7DTjPTLvl7F+XUlmqj4genub62r3jKHIHw==";
+        url = "https://registry.npmjs.org/@electron/windows-sign/-/windows-sign-1.1.2.tgz";
+        sha512 = "eXEiZjDtxW3QORCWfRUarANPRTlH9B6At4jqBZJ0NzokSGutXQUVLPA6WmGpIhDW6w2yCMdHW1EJd1HrXtU5sg==";
       };
     };
     "@emmetio/abbreviation-2.3.3" = {
@@ -4918,13 +4909,13 @@ let
         sha512 = "Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==";
       };
     };
-    "@eslint/js-8.56.0" = {
+    "@eslint/js-8.57.0" = {
       name = "_at_eslint_slash_js";
       packageName = "@eslint/js";
-      version = "8.56.0";
+      version = "8.57.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz";
-        sha512 = "gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==";
+        url = "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz";
+        sha512 = "Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==";
       };
     };
     "@ethereumjs/rlp-4.0.1" = {
@@ -4972,13 +4963,13 @@ let
         sha512 = "V8gMy1C63oAYlvkSjhfGYOET7sOmRIUAYv/wVcKJZiVAMZ5MQ2geeXCpLGC4+vuOQe2Hs3+qAgl4y0/b8OUO+A==";
       };
     };
-    "@expo/apple-utils-1.4.0" = {
+    "@expo/apple-utils-1.7.0" = {
       name = "_at_expo_slash_apple-utils";
       packageName = "@expo/apple-utils";
-      version = "1.4.0";
+      version = "1.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/apple-utils/-/apple-utils-1.4.0.tgz";
-        sha512 = "tbSWy10f/xdfUb3TZkshRLk4zIuG2wNIyuypUX1jvDrOt0bokSbwmIVYkkLRazZ+mOR0ZRcDUuBHKkZmyGuegQ==";
+        url = "https://registry.npmjs.org/@expo/apple-utils/-/apple-utils-1.7.0.tgz";
+        sha512 = "RVzZTiOeuNT04fE5V4f536XmIyxbRFOJ3m/rE6kImbIZ65upOS7xdIQpihEdYOiHB5uZAcD3JClUEsMfFhTv4w==";
       };
     };
     "@expo/bunyan-4.0.0" = {
@@ -5116,22 +5107,22 @@ let
         sha512 = "ghUVhNJQOCTdQckSGTHctNp/0jzvVoMMkVh+6SHn+TZj8sU15U/npXIDt8NtQp0HedlPaCgkVdMu8Sacne0aEA==";
       };
     };
-    "@expo/eas-build-job-1.0.61" = {
+    "@expo/eas-build-job-1.0.83" = {
       name = "_at_expo_slash_eas-build-job";
       packageName = "@expo/eas-build-job";
-      version = "1.0.61";
+      version = "1.0.83";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/eas-build-job/-/eas-build-job-1.0.61.tgz";
-        sha512 = "dlE88FLPShcJio7BYybuUilEgm41oxCkgGHET3PLvLRQsC3qCkV3jlSCQyQTxwCEamWKTlxS8pDMyb0s1OfqUA==";
+        url = "https://registry.npmjs.org/@expo/eas-build-job/-/eas-build-job-1.0.83.tgz";
+        sha512 = "JELlXmCzYdOXprcVhY7PsSdLRnfEZixcsSP+FPytUEdyhPhERCvZI4pI2TKTcopFG0WAdGphvwZPvg8S0h6A4Q==";
       };
     };
-    "@expo/eas-json-7.1.3" = {
+    "@expo/eas-json-7.5.0" = {
       name = "_at_expo_slash_eas-json";
       packageName = "@expo/eas-json";
-      version = "7.1.3";
+      version = "7.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/eas-json/-/eas-json-7.1.3.tgz";
-        sha512 = "BI3MF1HtIOHf1Fxa4JjGt/Im1Cz7dv063SNmZ5EFrBBvz0yQsGcWxTetdl0RbcUpBGIWWCJ+0gqK2fLXb03z6g==";
+        url = "https://registry.npmjs.org/@expo/eas-json/-/eas-json-7.5.0.tgz";
+        sha512 = "t/uMC8WyzY37iJxah46+Fay8Gfi+SPseK4KP/CCUQFVlX6Ez2bIxpSvGrlGBwzkL5vVi8Deo6G9/2FzSwDbJhA==";
       };
     };
     "@expo/fingerprint-0.6.0" = {
@@ -5422,13 +5413,13 @@ let
         sha512 = "QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==";
       };
     };
-    "@expo/steps-1.0.67" = {
+    "@expo/steps-1.0.85" = {
       name = "_at_expo_slash_steps";
       packageName = "@expo/steps";
-      version = "1.0.67";
+      version = "1.0.85";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/steps/-/steps-1.0.67.tgz";
-        sha512 = "vgmCke1yNj9OjxzzQuTlAnNYI452X6s8VDmSe/olFsJfA+8F3g8coi7CJ3j+rzrpY+LvVYTC27/84Mno0uQSrg==";
+        url = "https://registry.npmjs.org/@expo/steps/-/steps-1.0.85.tgz";
+        sha512 = "l0W2YfC8uNUICfkFrnsLdhAwQhnkSlj2JB5OpYoHTI1vI6D3hrVkXlDgz+DDruI7ZoYyJkiBVU3opQ5uIZDjhg==";
       };
     };
     "@expo/timeago.js-1.0.0" = {
@@ -5494,13 +5485,13 @@ let
         sha512 = "tzTXX1TFEjWCseEsNdIlXXkD+48uJoN+zpqIojUX4pSoMscsbhO/UuVEB5SzJucexqDWOo2ma0ECwdD7hZdrzg==";
       };
     };
-    "@fastify/busboy-2.1.0" = {
+    "@fastify/busboy-2.1.1" = {
       name = "_at_fastify_slash_busboy";
       packageName = "@fastify/busboy";
-      version = "2.1.0";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz";
-        sha512 = "+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==";
+        url = "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz";
+        sha512 = "vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==";
       };
     };
     "@gar/promisify-1.1.3" = {
@@ -5512,31 +5503,31 @@ let
         sha512 = "k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==";
       };
     };
-    "@gitbeaker/core-39.34.2" = {
+    "@gitbeaker/core-40.0.1" = {
       name = "_at_gitbeaker_slash_core";
       packageName = "@gitbeaker/core";
-      version = "39.34.2";
+      version = "40.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gitbeaker/core/-/core-39.34.2.tgz";
-        sha512 = "Vs1BKnEMnHltq1nMuBKxust1E+JUroDVKLy87ElLgvjAkH726mEVJCFnNC2/o2Ru7Et2qqhFN+PlUeYzzAbU2w==";
+        url = "https://registry.npmjs.org/@gitbeaker/core/-/core-40.0.1.tgz";
+        sha512 = "Zh2eVUgy2kYVnp7Db4gWoFqFbjgsnm2FvBEERbH3UM3cOA/iMqM+tw/of+Qk4yO+gv6tGZ9f4nF7+vK0tQFmDA==";
       };
     };
-    "@gitbeaker/requester-utils-39.34.2" = {
+    "@gitbeaker/requester-utils-40.0.1" = {
       name = "_at_gitbeaker_slash_requester-utils";
       packageName = "@gitbeaker/requester-utils";
-      version = "39.34.2";
+      version = "40.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-39.34.2.tgz";
-        sha512 = "ToCwNKQe/+uHjB2kPTXY72SvbAyjsPABb9T1EiMGuVahk6rWdhtVZIM659rGuqdJGTqQ4y18wk0A+w6D3Z2lCQ==";
+        url = "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-40.0.1.tgz";
+        sha512 = "cn6fltKuQ3TbthoMTg+JsKQfozqGcRcz1jT9Nqzr4gpHWgjdQ/nr5JpjwzKABQNVL2JH3UJWr6Eji60CFZDZ6Q==";
       };
     };
-    "@gitbeaker/rest-39.34.2" = {
+    "@gitbeaker/rest-40.0.1" = {
       name = "_at_gitbeaker_slash_rest";
       packageName = "@gitbeaker/rest";
-      version = "39.34.2";
+      version = "40.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gitbeaker/rest/-/rest-39.34.2.tgz";
-        sha512 = "MT4Vue1ltvsR7Nug18A6DIk+u+gu64+b0Un/R2XIsLB7eSAX8Pm/sQnYxsjHksroZJVlyGHiGsaxbllX75Pntg==";
+        url = "https://registry.npmjs.org/@gitbeaker/rest/-/rest-40.0.1.tgz";
+        sha512 = "JEd9WNuzgur7gLiJPMWPYKaWe5uX1ic8CGKR1fMtBityFZ2xyZkTZ+LG0nqWTV1MyiowYnJ1swTh8Yff+kLsKA==";
       };
     };
     "@grammarly/sdk-1.11.0" = {
@@ -5575,13 +5566,13 @@ let
         sha512 = "IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==";
       };
     };
-    "@graphql-tools/batch-execute-9.0.2" = {
+    "@graphql-tools/batch-execute-9.0.4" = {
       name = "_at_graphql-tools_slash_batch-execute";
       packageName = "@graphql-tools/batch-execute";
-      version = "9.0.2";
+      version = "9.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-9.0.2.tgz";
-        sha512 = "Y2uwdZI6ZnatopD/SYfZ1eGuQFI7OU2KGZ2/B/7G9ISmgMl5K+ZZWz/PfIEXeiHirIDhyk54s4uka5rj2xwKqQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-9.0.4.tgz";
+        sha512 = "kkebDLXgDrep5Y0gK1RN3DMUlLqNhg60OAz0lTCqrYeja6DshxLtLkj+zV4mVbBA4mQOEoBmw6g1LZs3dA84/w==";
       };
     };
     "@graphql-tools/code-file-loader-8.0.3" = {
@@ -5593,13 +5584,13 @@ let
         sha512 = "gVnnlWs0Ua+5FkuHHEriFUOI3OIbHv6DS1utxf28n6NkfGMJldC4j0xlJRY0LS6dWK34IGYgD4HelKYz2l8KiA==";
       };
     };
-    "@graphql-tools/delegate-10.0.3" = {
+    "@graphql-tools/delegate-10.0.4" = {
       name = "_at_graphql-tools_slash_delegate";
       packageName = "@graphql-tools/delegate";
-      version = "10.0.3";
+      version = "10.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-10.0.3.tgz";
-        sha512 = "Jor9oazZ07zuWkykD3OOhT/2XD74Zm6Ar0ENZMk75MDD51wB2UWUIMljtHxbJhV5A6UBC2v8x6iY0xdCGiIlyw==";
+        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-10.0.4.tgz";
+        sha512 = "WswZRbQZMh/ebhc8zSomK9DIh6Pd5KbuiMsyiKkKz37TWTrlCOe+4C/fyrBFez30ksq6oFyCeSKMwfrCbeGo0Q==";
       };
     };
     "@graphql-tools/delegate-7.1.5" = {
@@ -5611,40 +5602,40 @@ let
         sha512 = "bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==";
       };
     };
-    "@graphql-tools/executor-1.2.0" = {
+    "@graphql-tools/executor-1.2.2" = {
       name = "_at_graphql-tools_slash_executor";
       packageName = "@graphql-tools/executor";
-      version = "1.2.0";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.2.0.tgz";
-        sha512 = "SKlIcMA71Dha5JnEWlw4XxcaJ+YupuXg0QCZgl2TOLFz4SkGCwU/geAsJvUJFwK2RbVLpQv/UMq67lOaBuwDtg==";
+        url = "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.2.2.tgz";
+        sha512 = "wZkyjndwlzi01HTU3PDveoucKA8qVO0hdKmJhjIGK/vRN/A4w5rDdeqRGcyXVss0clCAy3R6jpixCVu5pWs2Qg==";
       };
     };
-    "@graphql-tools/executor-graphql-ws-1.1.1" = {
+    "@graphql-tools/executor-graphql-ws-1.1.2" = {
       name = "_at_graphql-tools_slash_executor-graphql-ws";
       packageName = "@graphql-tools/executor-graphql-ws";
-      version = "1.1.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-1.1.1.tgz";
-        sha512 = "llfLyRpmXqMX6kM3AvepviTxi06UTutphJljQupoU8FaTh0OcGFPjLjVSbgP7tOqI6lD1YbPR7qY83vDeYLarA==";
+        url = "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-1.1.2.tgz";
+        sha512 = "+9ZK0rychTH1LUv4iZqJ4ESbmULJMTsv3XlFooPUngpxZkk00q6LqHKJRrsLErmQrVaC7cwQCaRBJa0teK17Lg==";
       };
     };
-    "@graphql-tools/executor-http-1.0.8" = {
+    "@graphql-tools/executor-http-1.0.9" = {
       name = "_at_graphql-tools_slash_executor-http";
       packageName = "@graphql-tools/executor-http";
-      version = "1.0.8";
+      version = "1.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-1.0.8.tgz";
-        sha512 = "tBHT4aRkMCeyo+tcfEz7znqdd4QqoYF9vY1YTSo2+FV00usBB+R1YL3YaINBQNVkSVpZ41elffoF/fjI+QE8ZQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-1.0.9.tgz";
+        sha512 = "+NXaZd2MWbbrWHqU4EhXcrDbogeiCDmEbrAN+rMn4Nu2okDjn2MTFDbTIab87oEubQCH4Te1wDkWPKrzXup7+Q==";
       };
     };
-    "@graphql-tools/executor-legacy-ws-1.0.5" = {
+    "@graphql-tools/executor-legacy-ws-1.0.6" = {
       name = "_at_graphql-tools_slash_executor-legacy-ws";
       packageName = "@graphql-tools/executor-legacy-ws";
-      version = "1.0.5";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.0.5.tgz";
-        sha512 = "w54AZ7zkNuvpyV09FH+eGHnnAmaxhBVHg4Yh2ICcsMfRg0brkLt77PlbjBuxZ4HY8XZnKJaYWf+tKazQZtkQtg==";
+        url = "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.0.6.tgz";
+        sha512 = "lDSxz9VyyquOrvSuCCnld3256Hmd+QI2lkmkEv7d4mdzkxkK4ddAWW1geQiWrQvWmdsmcnGGlZ7gDGbhEExwqg==";
       };
     };
     "@graphql-tools/graphql-file-loader-6.2.7" = {
@@ -5656,13 +5647,13 @@ let
         sha512 = "5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==";
       };
     };
-    "@graphql-tools/graphql-file-loader-8.0.0" = {
+    "@graphql-tools/graphql-file-loader-8.0.1" = {
       name = "_at_graphql-tools_slash_graphql-file-loader";
       packageName = "@graphql-tools/graphql-file-loader";
-      version = "8.0.0";
+      version = "8.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-8.0.0.tgz";
-        sha512 = "wRXj9Z1IFL3+zJG1HWEY0S4TXal7+s1vVhbZva96MSp0kbb/3JBF7j0cnJ44Eq0ClccMgGCDFqPFXty4JlpaPg==";
+        url = "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-8.0.1.tgz";
+        sha512 = "7gswMqWBabTSmqbaNyWSmRRpStWlcCkBc73E6NZNlh4YNuiyKOwbvSkOUYFOqFMfEL+cFsXgAvr87Vz4XrYSbA==";
       };
     };
     "@graphql-tools/graphql-tag-pluck-8.1.0" = {
@@ -5683,13 +5674,13 @@ let
         sha512 = "XQDdyZTp+FYmT7as3xRWH/x8dx0QZA2WZqfMF5EWb36a0PiH7WwlRQYIdyYXj8YCLpiWkeBXgBRHmMnwEYR8iQ==";
       };
     };
-    "@graphql-tools/import-7.0.0" = {
+    "@graphql-tools/import-7.0.1" = {
       name = "_at_graphql-tools_slash_import";
       packageName = "@graphql-tools/import";
-      version = "7.0.0";
+      version = "7.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-7.0.0.tgz";
-        sha512 = "NVZiTO8o1GZs6OXzNfjB+5CtQtqsZZpQOq+Uu0w57kdUkT4RlQKlwhT8T81arEsbV55KpzkpFsOZP7J1wdmhBw==";
+        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-7.0.1.tgz";
+        sha512 = "935uAjAS8UAeXThqHfYVr4HEAp6nHJ2sximZKO1RzUTq5WoALMAhhGARl0+ecm6X+cqNUwIChJbjtaa6P/ML0w==";
       };
     };
     "@graphql-tools/json-file-loader-6.2.6" = {
@@ -5701,13 +5692,13 @@ let
         sha512 = "CnfwBSY5926zyb6fkDBHnlTblHnHI4hoBALFYXnrg0Ev4yWU8B04DZl/pBRUc459VNgO2x8/mxGIZj2hPJG1EA==";
       };
     };
-    "@graphql-tools/json-file-loader-8.0.0" = {
+    "@graphql-tools/json-file-loader-8.0.1" = {
       name = "_at_graphql-tools_slash_json-file-loader";
       packageName = "@graphql-tools/json-file-loader";
-      version = "8.0.0";
+      version = "8.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-8.0.0.tgz";
-        sha512 = "ki6EF/mobBWJjAAC84xNrFMhNfnUFD6Y0rQMGXekrUgY0NdeYXHU0ZUgHzC9O5+55FslqUmAUHABePDHTyZsLg==";
+        url = "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-8.0.1.tgz";
+        sha512 = "lAy2VqxDAHjVyqeJonCP6TUemrpYdDuKt25a10X6zY2Yn3iFYGnuIDQ64cv3ytyGY6KPyPB+Kp+ZfOkNDG3FQA==";
       };
     };
     "@graphql-tools/load-6.2.4" = {
@@ -5719,13 +5710,13 @@ let
         sha512 = "FlQC50VELwRxoWUbJMMMs5gG0Dl8BaQYMrXUHTsxwqR7UmksUYnysC21rdousvs6jVZ7pf4unZfZFtBjz+8Edg==";
       };
     };
-    "@graphql-tools/load-8.0.1" = {
+    "@graphql-tools/load-8.0.2" = {
       name = "_at_graphql-tools_slash_load";
       packageName = "@graphql-tools/load";
-      version = "8.0.1";
+      version = "8.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-8.0.1.tgz";
-        sha512 = "qSMsKngJhDqRbuWyo3NvakEFqFL6+eSjy8ooJ1o5qYD26N7dqXkKzIMycQsX7rBK19hOuINAUSaRcVWH6hTccw==";
+        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-8.0.2.tgz";
+        sha512 = "S+E/cmyVmJ3CuCNfDuNF2EyovTwdWfQScXv/2gmvJOti2rGD8jTt9GYVzXaxhblLivQR9sBUCNZu/w7j7aXUCA==";
       };
     };
     "@graphql-tools/merge-6.2.17" = {
@@ -5755,13 +5746,13 @@ let
         sha512 = "XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==";
       };
     };
-    "@graphql-tools/merge-9.0.1" = {
+    "@graphql-tools/merge-9.0.3" = {
       name = "_at_graphql-tools_slash_merge";
       packageName = "@graphql-tools/merge";
-      version = "9.0.1";
+      version = "9.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz";
-        sha512 = "hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw==";
+        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.3.tgz";
+        sha512 = "FeKv9lKLMwqDu0pQjPpF59GY3HReUkWXKsMIuMuJQOKh9BETu7zPEFUELvcw8w+lwZkl4ileJsHXC9+AnsT2Lw==";
       };
     };
     "@graphql-tools/mock-8.7.20" = {
@@ -5773,13 +5764,13 @@ let
         sha512 = "ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==";
       };
     };
-    "@graphql-tools/schema-10.0.2" = {
+    "@graphql-tools/schema-10.0.3" = {
       name = "_at_graphql-tools_slash_schema";
       packageName = "@graphql-tools/schema";
-      version = "10.0.2";
+      version = "10.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz";
-        sha512 = "TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w==";
+        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.3.tgz";
+        sha512 = "p28Oh9EcOna6i0yLaCFOnkcBDQECVf3SCexT6ktb86QNj9idnkhI+tCxnwZDh58Qvjd2nURdkbevvoZkvxzCog==";
       };
     };
     "@graphql-tools/schema-7.1.5" = {
@@ -5818,22 +5809,22 @@ let
         sha512 = "DSDrbhQIv7fheQ60pfDpGD256ixUQIR6Hhf9Z5bRjVkXOCvO5XrkwoWLiU7iHL81GB1r0Ba31bf+sl+D4nyyfw==";
       };
     };
-    "@graphql-tools/url-loader-8.0.1" = {
+    "@graphql-tools/url-loader-8.0.2" = {
       name = "_at_graphql-tools_slash_url-loader";
       packageName = "@graphql-tools/url-loader";
-      version = "8.0.1";
+      version = "8.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-8.0.1.tgz";
-        sha512 = "B2k8KQEkEQmfV1zhurT5GLoXo8jbXP+YQHUayhCSxKYlRV7j/1Fhp1b21PDM8LXIDGlDRXaZ0FbWKOs7eYXDuQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-8.0.2.tgz";
+        sha512 = "1dKp2K8UuFn7DFo1qX5c1cyazQv2h2ICwA9esHblEqCYrgf69Nk8N7SODmsfWg94OEaI74IqMoM12t7eIGwFzQ==";
       };
     };
-    "@graphql-tools/utils-10.0.13" = {
+    "@graphql-tools/utils-10.1.2" = {
       name = "_at_graphql-tools_slash_utils";
       packageName = "@graphql-tools/utils";
-      version = "10.0.13";
+      version = "10.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.13.tgz";
-        sha512 = "fMILwGr5Dm2zefNItjQ6C2rauigklv69LIwppccICuGTnGaOp3DspLt/6Lxj72cbg5d9z60Sr+Egco3CJKLsNg==";
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.1.2.tgz";
+        sha512 = "fX13CYsDnX4yifIyNdiN0cVygz/muvkreWWem6BBw130+ODbRRgfiVveL0NizCEnKXkpvdeTy9Bxvo9LIKlhrw==";
       };
     };
     "@graphql-tools/utils-6.2.4" = {
@@ -5881,13 +5872,13 @@ let
         sha512 = "WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==";
       };
     };
-    "@graphql-tools/wrap-10.0.1" = {
+    "@graphql-tools/wrap-10.0.5" = {
       name = "_at_graphql-tools_slash_wrap";
       packageName = "@graphql-tools/wrap";
-      version = "10.0.1";
+      version = "10.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-10.0.1.tgz";
-        sha512 = "Cw6hVrKGM2OKBXeuAGltgy4tzuqQE0Nt7t/uAqnuokSXZhMHXJUb124Bnvxc2gPZn5chfJSDafDe4Cp8ZAVJgg==";
+        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-10.0.5.tgz";
+        sha512 = "Cbr5aYjr3HkwdPvetZp1cpDWTGdD1Owgsb3z/ClzhmrboiK86EnQDxDvOJiQkDCPWE9lNBwj8Y4HfxroY0D9DQ==";
       };
     };
     "@graphql-tools/wrap-7.0.8" = {
@@ -6034,22 +6025,22 @@ let
         sha512 = "trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==";
       };
     };
-    "@ibm-cloud/openapi-ruleset-1.15.2" = {
+    "@ibm-cloud/openapi-ruleset-1.15.3" = {
       name = "_at_ibm-cloud_slash_openapi-ruleset";
       packageName = "@ibm-cloud/openapi-ruleset";
-      version = "1.15.2";
+      version = "1.15.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ibm-cloud/openapi-ruleset/-/openapi-ruleset-1.15.2.tgz";
-        sha512 = "LePXcmEIQ9nYe8kNY/uQwacEtuMNM6CS8T4ugb7qqFDE6jU6TTdJITFZ5M3ECJERWe2wozuPM9/VfKH88pzNxQ==";
+        url = "https://registry.npmjs.org/@ibm-cloud/openapi-ruleset/-/openapi-ruleset-1.15.3.tgz";
+        sha512 = "iHX831iXlFuV6QAfn08bjrW6jRblmXdRvQJiwLn96tLm0tcoCoUcsQcrFVjuAuCF9+F5Lfy/lYpS58rztL++4Q==";
       };
     };
-    "@ibm-cloud/openapi-ruleset-utilities-1.3.0" = {
+    "@ibm-cloud/openapi-ruleset-utilities-1.3.1" = {
       name = "_at_ibm-cloud_slash_openapi-ruleset-utilities";
       packageName = "@ibm-cloud/openapi-ruleset-utilities";
-      version = "1.3.0";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ibm-cloud/openapi-ruleset-utilities/-/openapi-ruleset-utilities-1.3.0.tgz";
-        sha512 = "CuG5u6+gSEbU8IKGZqKH+WsH4rFU9KMYriDzG6F+DJ8XbtEd3RTHWMQdAeO/ec2XiyPF2j4VxWEXMzVZJ05bAA==";
+        url = "https://registry.npmjs.org/@ibm-cloud/openapi-ruleset-utilities/-/openapi-ruleset-utilities-1.3.1.tgz";
+        sha512 = "I0/5qOruBwV70f7mU0p1kkzgWO/ZzNc+IiTMGKYfdbEoOML4mVWNVZvn+mcTqOwfdWFUznWwPnAaXbxnIO7WiA==";
       };
     };
     "@inquirer/checkbox-1.5.2" = {
@@ -6124,13 +6115,13 @@ let
         sha512 = "aZYZVHLUXZ2gbBot+i+zOJrks1WaiI95lvZCn1sKfcw6MtSSlYC8uDX8sTzQvAsQ8epHoP84UNvAIT0KVGOGqw==";
       };
     };
-    "@inquirer/prompts-2.3.0" = {
+    "@inquirer/prompts-2.3.1" = {
       name = "_at_inquirer_slash_prompts";
       packageName = "@inquirer/prompts";
-      version = "2.3.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@inquirer/prompts/-/prompts-2.3.0.tgz";
-        sha512 = "x79tSDIZAibOl9WaBoOuyaQqNnisOO8Pk0qWyulP/nPaD/WkoRvkzk7hR4WTRmWAyE8CNbjdYgGltvd0qmvCGQ==";
+        url = "https://registry.npmjs.org/@inquirer/prompts/-/prompts-2.3.1.tgz";
+        sha512 = "YQeBFzIE+6fcec5N/U2mSz+IcKEG4wtGDwF7MBLIDgITWzB3o723JpKJ1rxWqdCvTXkYE+gDXK/seSN6omo3DQ==";
       };
     };
     "@inquirer/prompts-3.3.2" = {
@@ -6160,13 +6151,13 @@ let
         sha512 = "RzlRISXWqIKEf83FDC9ZtJ3JvuK1l7aGpretf41BCWYrvla2wU8W8MTRNMiPrPJ+1SIqrRC1nZdZ60hD9hRXLg==";
       };
     };
-    "@inquirer/type-1.2.0" = {
+    "@inquirer/type-1.2.1" = {
       name = "_at_inquirer_slash_type";
       packageName = "@inquirer/type";
-      version = "1.2.0";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@inquirer/type/-/type-1.2.0.tgz";
-        sha512 = "/vvkUkYhrjbm+RolU7V1aUFDydZVKNKqKHR5TsE+j5DXgXFwrsOPcoGUJ02K0O7q7O53CU2DOTMYCHeGZ25WHA==";
+        url = "https://registry.npmjs.org/@inquirer/type/-/type-1.2.1.tgz";
+        sha512 = "xwMfkPAxeo8Ji/IxfUSqzRi0/+F2GIqJmpc5/thelgMGsjNZcjDDRBO9TLXT1s/hdx/mK5QbVIvgoLIFgXhTMQ==";
       };
     };
     "@isaacs/cliui-8.0.2" = {
@@ -6511,85 +6502,85 @@ let
         sha512 = "qqNS/YD0Nck5wtQLCPHAfGVgWbbGafxSPjNh0ekYPFSNNqnDH2kamnduzYly8IiADmeVx/MfAE1njMEjVeHTMA==";
       };
     };
-    "@joplin/fork-htmlparser2-4.1.50" = {
+    "@joplin/fork-htmlparser2-4.1.51" = {
       name = "_at_joplin_slash_fork-htmlparser2";
       packageName = "@joplin/fork-htmlparser2";
-      version = "4.1.50";
+      version = "4.1.51";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/fork-htmlparser2/-/fork-htmlparser2-4.1.50.tgz";
-        sha512 = "wA2NE1/BhFWn4jYW07J/XOCblp+PnNoqcil82WkYvfJVxspje+pGToB99aH682BOGb/GIopC6i+UMphpvwj0hQ==";
+        url = "https://registry.npmjs.org/@joplin/fork-htmlparser2/-/fork-htmlparser2-4.1.51.tgz";
+        sha512 = "IaZAttfsyppAo1q1KwI/ln0U/+bpUYpX0AWm7M/gWNYorWU6g/EakQwZIkmVRIcAD+6gji4T+xR4oF8fBxJ8HA==";
       };
     };
-    "@joplin/fork-sax-1.2.54" = {
+    "@joplin/fork-sax-1.2.55" = {
       name = "_at_joplin_slash_fork-sax";
       packageName = "@joplin/fork-sax";
-      version = "1.2.54";
+      version = "1.2.55";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/fork-sax/-/fork-sax-1.2.54.tgz";
-        sha512 = "aruagwcNB2GZZ1eF3zoj2aeAybH6zuaRqnlmZm2Mk2Sy6F7mmXD/yjEUgs8UK5QvE4HCrS/uZ077DARK4J0c0A==";
+        url = "https://registry.npmjs.org/@joplin/fork-sax/-/fork-sax-1.2.55.tgz";
+        sha512 = "FgwqhVEZfN3yrArhDdkjMQJ9CG2V/9ed8NPFsDIK/QR6CK+vzWTPuAKFq57CN76ydvr6c0kX8nOSDpxJatzhpw==";
       };
     };
-    "@joplin/fork-uslug-1.0.15" = {
+    "@joplin/fork-uslug-1.0.16" = {
       name = "_at_joplin_slash_fork-uslug";
       packageName = "@joplin/fork-uslug";
-      version = "1.0.15";
+      version = "1.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/fork-uslug/-/fork-uslug-1.0.15.tgz";
-        sha512 = "J/9y01glxS/mU0c81J/iX1apbQiZrBy58pWzQKotpZ7nFKIaFsJzDvibL0UYZfgTRs6FzM/4wE7g0Uqe3I/ZPQ==";
+        url = "https://registry.npmjs.org/@joplin/fork-uslug/-/fork-uslug-1.0.16.tgz";
+        sha512 = "N3UyuqUG+t67YXH37HPS9qSr7Z+GdciZ1FfHHZ7FjgVElR+Ch049OWrI+NX/ruHFkfofmQKHLNRKVmNrPnclNA==";
       };
     };
-    "@joplin/htmlpack-2.13.4" = {
+    "@joplin/htmlpack-2.14.1" = {
       name = "_at_joplin_slash_htmlpack";
       packageName = "@joplin/htmlpack";
-      version = "2.13.4";
+      version = "2.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/htmlpack/-/htmlpack-2.13.4.tgz";
-        sha512 = "K4WmVIK+tLV5jLn0qoZUUHK8dwXhDU25vY4C20vMkncRM6JnRgRVGbd8iNQTQo04BY9KAB+C2mjJ1OKnwDbGLg==";
+        url = "https://registry.npmjs.org/@joplin/htmlpack/-/htmlpack-2.14.1.tgz";
+        sha512 = "ZIQBkfVffFbFURT+lLoB9oYSkDFcE3KJ5IE434Rd3i6BCSXn4qYQyVF8K6t0oVPHGJAmTnnM5RpTVhRx+mBERw==";
       };
     };
-    "@joplin/lib-2.13.4" = {
+    "@joplin/lib-2.14.1" = {
       name = "_at_joplin_slash_lib";
       packageName = "@joplin/lib";
-      version = "2.13.4";
+      version = "2.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/lib/-/lib-2.13.4.tgz";
-        sha512 = "QVbYwM+VT1B4g/th5w+nxWRhsghHp+/41iPaJKViEcBJFQUWUDjxNzKpvuxgJ5E2WHF3LD0/09pSgmYONMI2Vg==";
+        url = "https://registry.npmjs.org/@joplin/lib/-/lib-2.14.1.tgz";
+        sha512 = "EnvOoj4b8vG/oq58QFWSyyoAiQ/BnMyffw58iacmPAG9jGIwbPPDA4HP3RLCirwwdgrdtTlRxl7WaLHnSO3h6A==";
       };
     };
-    "@joplin/renderer-2.13.4" = {
+    "@joplin/renderer-2.14.1" = {
       name = "_at_joplin_slash_renderer";
       packageName = "@joplin/renderer";
-      version = "2.13.4";
+      version = "2.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/renderer/-/renderer-2.13.4.tgz";
-        sha512 = "EgkNIpvZr8MHHcZBJxQjQDRk1snhyTZcNrqLiw0whr49EtsYk0MhFMEwWGhMQI56COQfHMgeK/woCvMaICSH5Q==";
+        url = "https://registry.npmjs.org/@joplin/renderer/-/renderer-2.14.1.tgz";
+        sha512 = "AbnE1g976pNrx3rjdKOR6JYWgowdmH3kTN8yWmSYnU2OD8qPhTovMROClxF6m7fLc3N49fxEBZwCjbRFLv35iA==";
       };
     };
-    "@joplin/turndown-4.0.72" = {
+    "@joplin/turndown-4.0.73" = {
       name = "_at_joplin_slash_turndown";
       packageName = "@joplin/turndown";
-      version = "4.0.72";
+      version = "4.0.73";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/turndown/-/turndown-4.0.72.tgz";
-        sha512 = "FEfb4vunyMc574kIXoQTSgWY3DO+OKp9ljYhJLTh6fOeySHNGyAaQSeFcsqJCuMcssmfTlOuKYVOQRA8Louc2g==";
+        url = "https://registry.npmjs.org/@joplin/turndown/-/turndown-4.0.73.tgz";
+        sha512 = "5u5CUih9otHMkWpvH1VtHLyF0VMYnl2FVxv+/QvAX7PfwvGdmfMQISzC/wwb3MueMb/yhemv5c+6oiN4RCNlWw==";
       };
     };
-    "@joplin/turndown-plugin-gfm-1.0.54" = {
+    "@joplin/turndown-plugin-gfm-1.0.55" = {
       name = "_at_joplin_slash_turndown-plugin-gfm";
       packageName = "@joplin/turndown-plugin-gfm";
-      version = "1.0.54";
+      version = "1.0.55";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.54.tgz";
-        sha512 = "QoNPwP7CDJOn/pfehGrLTKl6fgcl/VIXQP1bNqm8tfx3bx3uedyjFE75ef8yRGwNIe+ukqPbDFo+EVBc7rE4+Q==";
+        url = "https://registry.npmjs.org/@joplin/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.55.tgz";
+        sha512 = "ij5DquSAWnu1fVM02N2m32uMxslJZcdMuTsLJfTHYEVs96R8MKFaHtWjbQycpx9PRYdlL5jW4SaW9A92OCccxA==";
       };
     };
-    "@joplin/utils-2.13.4" = {
+    "@joplin/utils-2.14.1" = {
       name = "_at_joplin_slash_utils";
       packageName = "@joplin/utils";
-      version = "2.13.4";
+      version = "2.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplin/utils/-/utils-2.13.4.tgz";
-        sha512 = "jkWCfxLgUXpqBLMUnvuWnX0tDQyCRg3/SW9ITaJhu3QJFs653yfKIEZPztlxWapvmBM71SSJRJgBM+M7rTSnqw==";
+        url = "https://registry.npmjs.org/@joplin/utils/-/utils-2.14.1.tgz";
+        sha512 = "HOR9UOivlbFiANAVPeK5TNYRE5KQ3dCxVC7Sus8bcA+ZIrJxM0P73Ng1p96HkzsZAE71OEqVKn6HMd67gZOy4Q==";
       };
     };
     "@josephg/resolvable-1.0.1" = {
@@ -6601,13 +6592,13 @@ let
         sha512 = "CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==";
       };
     };
-    "@jridgewell/gen-mapping-0.3.3" = {
+    "@jridgewell/gen-mapping-0.3.5" = {
       name = "_at_jridgewell_slash_gen-mapping";
       packageName = "@jridgewell/gen-mapping";
-      version = "0.3.3";
+      version = "0.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz";
-        sha512 = "HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==";
+        url = "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz";
+        sha512 = "IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==";
       };
     };
     "@jridgewell/resolve-uri-3.1.2" = {
@@ -6619,22 +6610,22 @@ let
         sha512 = "bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==";
       };
     };
-    "@jridgewell/set-array-1.1.2" = {
+    "@jridgewell/set-array-1.2.1" = {
       name = "_at_jridgewell_slash_set-array";
       packageName = "@jridgewell/set-array";
-      version = "1.1.2";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz";
-        sha512 = "xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==";
+        url = "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz";
+        sha512 = "R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==";
       };
     };
-    "@jridgewell/source-map-0.3.5" = {
+    "@jridgewell/source-map-0.3.6" = {
       name = "_at_jridgewell_slash_source-map";
       packageName = "@jridgewell/source-map";
-      version = "0.3.5";
+      version = "0.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz";
-        sha512 = "UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==";
+        url = "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz";
+        sha512 = "1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==";
       };
     };
     "@jridgewell/sourcemap-codec-1.4.15" = {
@@ -6646,13 +6637,13 @@ let
         sha512 = "eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==";
       };
     };
-    "@jridgewell/trace-mapping-0.3.22" = {
+    "@jridgewell/trace-mapping-0.3.25" = {
       name = "_at_jridgewell_slash_trace-mapping";
       packageName = "@jridgewell/trace-mapping";
-      version = "0.3.22";
+      version = "0.3.25";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz";
-        sha512 = "Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==";
+        url = "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz";
+        sha512 = "vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==";
       };
     };
     "@jridgewell/trace-mapping-0.3.9" = {
@@ -6700,31 +6691,31 @@ let
         sha512 = "qtLGzCNzPVJ3kdH6/zoLWDPjauHIKiLSBAR71Wa0+PWvGA8wODUQvRgxtpUA5YqAYL3CQ8S4qXhd/9WuWTZirg==";
       };
     };
-    "@jsii/check-node-1.93.0" = {
+    "@jsii/check-node-1.94.0" = {
       name = "_at_jsii_slash_check-node";
       packageName = "@jsii/check-node";
-      version = "1.93.0";
+      version = "1.94.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.93.0.tgz";
-        sha512 = "NLn1Js6wEG2hYjH7gE5Q8s/hPlp3I+KhK/T8ykGdYVod7iODnk/0QVSZsk2iEyuw8NzvvgXUDBWreadUIWSz+g==";
+        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.94.0.tgz";
+        sha512 = "46W+V1oTFvF9ZpKpPYy//1WUmhZ8AD8O0ElmQtv9mundLHccZm+q7EmCYhozr7rlK5uSjU9/WHfbIx2DwynuJw==";
       };
     };
-    "@jsii/check-node-1.94.0" = {
+    "@jsii/check-node-1.95.0" = {
       name = "_at_jsii_slash_check-node";
       packageName = "@jsii/check-node";
-      version = "1.94.0";
+      version = "1.95.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.94.0.tgz";
-        sha512 = "46W+V1oTFvF9ZpKpPYy//1WUmhZ8AD8O0ElmQtv9mundLHccZm+q7EmCYhozr7rlK5uSjU9/WHfbIx2DwynuJw==";
+        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.95.0.tgz";
+        sha512 = "E5njkBk6X4WrQHtGeO0ed+cvkMxqinQZY83TJZ9RFEIwrndDfj7asMgWkRkYQRF05AlQXks+Eh8wza7ErIl85Q==";
       };
     };
-    "@jsii/spec-1.94.0" = {
+    "@jsii/spec-1.95.0" = {
       name = "_at_jsii_slash_spec";
       packageName = "@jsii/spec";
-      version = "1.94.0";
+      version = "1.95.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.94.0.tgz";
-        sha512 = "ur1aUMPsdZgflUIZC4feyJzrkGYzvtiIJxRowkSxr7Ip/sLCKvi61dvImWtJY9ZhEAl7Kiq7I/R32WVyxW0JrQ==";
+        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.95.0.tgz";
+        sha512 = "gQtNQHAvSYIsuOEt/Et256SNFJJhG4mpm4k6bwJ5BX2ibEAN4t0amAKjYslrYLhJo8iSGcMedh/YC9hOReL2Iw==";
       };
     };
     "@kamilkisiela/fast-url-parser-1.1.4" = {
@@ -6790,13 +6781,13 @@ let
         sha512 = "Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==";
       };
     };
-    "@ljharb/through-2.3.12" = {
+    "@ljharb/through-2.3.13" = {
       name = "_at_ljharb_slash_through";
       packageName = "@ljharb/through";
-      version = "2.3.12";
+      version = "2.3.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz";
-        sha512 = "ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==";
+        url = "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz";
+        sha512 = "/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==";
       };
     };
     "@lmdb/lmdb-darwin-arm64-2.5.3" = {
@@ -6934,13 +6925,13 @@ let
         sha512 = "Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==";
       };
     };
-    "@microsoft/applicationinsights-web-snippet-1.1.1" = {
+    "@microsoft/applicationinsights-web-snippet-1.1.2" = {
       name = "_at_microsoft_slash_applicationinsights-web-snippet";
       packageName = "@microsoft/applicationinsights-web-snippet";
-      version = "1.1.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/applicationinsights-web-snippet/-/applicationinsights-web-snippet-1.1.1.tgz";
-        sha512 = "uITh+P/cfN+nkUfazVt9paML6rjc6H/VWdw0jb4PUj7JG1w4hamjxkYWFvDjMZfhZ75tC4kgepPgOeG2i610Qg==";
+        url = "https://registry.npmjs.org/@microsoft/applicationinsights-web-snippet/-/applicationinsights-web-snippet-1.1.2.tgz";
+        sha512 = "qPoOk3MmEx3gS6hTc1/x8JWQG5g4BvRdH7iqZMENBsKCL927b7D7Mvl19bh3sW9Ucrg1fVrF+4hqShwQNdqLxQ==";
       };
     };
     "@microsoft/fetch-event-source-2.0.1" = {
@@ -6952,13 +6943,13 @@ let
         sha512 = "W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==";
       };
     };
-    "@microsoft/rush-lib-5.113.4" = {
+    "@microsoft/rush-lib-5.117.9" = {
       name = "_at_microsoft_slash_rush-lib";
       packageName = "@microsoft/rush-lib";
-      version = "5.113.4";
+      version = "5.117.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/rush-lib/-/rush-lib-5.113.4.tgz";
-        sha512 = "s7Ltkx+Ww5RyxOuUVghu5JZkHseUxlAseyb5ObRIpgncLJj9TwhXfAB7foKicEZ7Z2P38w8DV4ZPQgi2XZUF8A==";
+        url = "https://registry.npmjs.org/@microsoft/rush-lib/-/rush-lib-5.117.9.tgz";
+        sha512 = "fZC4B/ZVHELMsj7MVgcbmtUBuk1Ljp1MsNc2ZJ51mzMvo0Q7Wtr7qfw01ZIpjgD4uJ2PTpYCeA1HD00sIA5tTQ==";
       };
     };
     "@mischnic/json-sourcemap-0.1.1" = {
@@ -7042,58 +7033,58 @@ let
         sha512 = "fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==";
       };
     };
-    "@node-red/editor-api-3.1.5" = {
+    "@node-red/editor-api-3.1.7" = {
       name = "_at_node-red_slash_editor-api";
       packageName = "@node-red/editor-api";
-      version = "3.1.5";
+      version = "3.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-3.1.5.tgz";
-        sha512 = "j8NiT5SdjC0PUtmZ4nD17MJSer8Mt579+8TrufEduTpt1tOcJtxwMtW9463eQHsu7dceSwduJyV5mr9CL8ldDw==";
+        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-3.1.7.tgz";
+        sha512 = "u0UzXmIhJmvAQTWdiMFi9JoA7hvvBn4egXcgrnfRlWzvcRd8igi4LWth4vKo9/VUYsmXrnxv+JE+qm4RLfIvKA==";
       };
     };
-    "@node-red/editor-client-3.1.5" = {
+    "@node-red/editor-client-3.1.7" = {
       name = "_at_node-red_slash_editor-client";
       packageName = "@node-red/editor-client";
-      version = "3.1.5";
+      version = "3.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-3.1.5.tgz";
-        sha512 = "dw7v3u0664BYDLb/u0uOLxvlJwHOXzY7YgGiqA/FuMv+KB1UPu3b5j9o7MbdHN1I4KxnGVdiTin9+WcOBO/GgQ==";
+        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-3.1.7.tgz";
+        sha512 = "L6E04FAFcBgssFuGroLmau+Mdhbt7NcLIWxDDkdvdmVKP4LQwOvfQP8uVHQyiMzotkIfng5nQqTBpHrnsBA+Ww==";
       };
     };
-    "@node-red/nodes-3.1.5" = {
+    "@node-red/nodes-3.1.7" = {
       name = "_at_node-red_slash_nodes";
       packageName = "@node-red/nodes";
-      version = "3.1.5";
+      version = "3.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-3.1.5.tgz";
-        sha512 = "Yib+/0LkSdkqjgE6pgRL9mSWJXdjPpDx+OUEKjTDCrhjcATzrs3HT3fIkdGLOoSUXHP5hhgsLDTAkl2jfemArA==";
+        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-3.1.7.tgz";
+        sha512 = "aRlwKHRkbaS+Sd1kcK+W/wafY2t4J8CDlkRL79mPXINBLZCsg3Y8mXqgmWb4lpHU68dkMp6HOl1V+imlr80yJQ==";
       };
     };
-    "@node-red/registry-3.1.5" = {
+    "@node-red/registry-3.1.7" = {
       name = "_at_node-red_slash_registry";
       packageName = "@node-red/registry";
-      version = "3.1.5";
+      version = "3.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/registry/-/registry-3.1.5.tgz";
-        sha512 = "Twf6d9R31F9/yo/N+KTjzgh8E3bALWmCgiZ6ROle/a2qzNaKj3qE8WeFSh4D06FWzmICv4gfkyGN7jmE0a6peg==";
+        url = "https://registry.npmjs.org/@node-red/registry/-/registry-3.1.7.tgz";
+        sha512 = "bSAIBTTYkEckOC0I9kYLNP/rMFzR7b8/kb8Z9NKYYEMMEf32DjjwXEIq14/6+E+zUkenFv5Vy7V6zrox1JqNTA==";
       };
     };
-    "@node-red/runtime-3.1.5" = {
+    "@node-red/runtime-3.1.7" = {
       name = "_at_node-red_slash_runtime";
       packageName = "@node-red/runtime";
-      version = "3.1.5";
+      version = "3.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-3.1.5.tgz";
-        sha512 = "GS+Aa3XrnQjgyR6ZJQL6z20ONeiBAacPLLKQeHrEoEpsRSyOprjHu267WRi73KhmCG1t/hYmIi0Uv+JOB1GnLA==";
+        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-3.1.7.tgz";
+        sha512 = "8Fq2GDqb8Tfc+QDGtTwEHs1mPtT3aRJzgfr5yUCbVSNkB6eewsuVHrPWnj58caUcJm/b9wB+7SBPcaVOifdssg==";
       };
     };
-    "@node-red/util-3.1.5" = {
+    "@node-red/util-3.1.7" = {
       name = "_at_node-red_slash_util";
       packageName = "@node-red/util";
-      version = "3.1.5";
+      version = "3.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/util/-/util-3.1.5.tgz";
-        sha512 = "yLui/6FbgL0HVBWUq76cru9lf5VDCw+j60rUQd/iDwa41dXR5lxiBpM+T9BGCFUlroK2F0XcH6qq4r+dnfANxg==";
+        url = "https://registry.npmjs.org/@node-red/util/-/util-3.1.7.tgz";
+        sha512 = "vUnuoOwVjGtJ3j5WcL468neXGciDRvZnRAqB0Fl//cjPLklTkipK6C5b0vYGTgy+cL5K+KjcV10yl3F2tiAOQw==";
       };
     };
     "@nodelib/fs.scandir-2.1.5" = {
@@ -7132,22 +7123,22 @@ let
         sha512 = "H4FrOVtNyWC8MUwL3UfjOsAihHvT1Pe8POj3JvjXhSTJipsZMtgUALCT4mGyYZNxymkUfOw3PUj6dE4QPp6osQ==";
       };
     };
-    "@npmcli/config-6.4.0" = {
+    "@npmcli/config-6.4.1" = {
       name = "_at_npmcli_slash_config";
       packageName = "@npmcli/config";
-      version = "6.4.0";
+      version = "6.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/config/-/config-6.4.0.tgz";
-        sha512 = "/fQjIbuNVIT/PbXvw178Tm97bxV0E0nVUFKHivMKtSI2pcs8xKdaWkHJxf9dTI0G/y5hp/KuCvgcUu5HwAtI1w==";
+        url = "https://registry.npmjs.org/@npmcli/config/-/config-6.4.1.tgz";
+        sha512 = "uSz+elSGzjCMANWa5IlbGczLYPkNI/LeR+cHrgaTqTrTSh9RHhOFA4daD2eRUz6lMtOW+Fnsb+qv7V2Zz8ML0g==";
       };
     };
-    "@npmcli/config-8.1.0" = {
+    "@npmcli/config-8.2.0" = {
       name = "_at_npmcli_slash_config";
       packageName = "@npmcli/config";
-      version = "8.1.0";
+      version = "8.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/config/-/config-8.1.0.tgz";
-        sha512 = "61LNEybTFaa9Z/f8y6X9s2Blc75aijZK67LxqC5xicBcfkw8M/88nYrRXGXxAUKm6GRlxTZ216dp1UK2+TbaYw==";
+        url = "https://registry.npmjs.org/@npmcli/config/-/config-8.2.0.tgz";
+        sha512 = "YoEYZFg0hRSRP/Chmq+J4FvULFvji6SORUYWQc10FiJ+ReAnViXcDCENg6kM6dID04bAoKNUygrby798+gYBbQ==";
       };
     };
     "@npmcli/fs-1.1.1" = {
@@ -7276,31 +7267,31 @@ let
         sha512 = "9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==";
       };
     };
-    "@nrwl/devkit-18.0.4" = {
+    "@nrwl/devkit-18.1.2" = {
       name = "_at_nrwl_slash_devkit";
       packageName = "@nrwl/devkit";
-      version = "18.0.4";
+      version = "18.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nrwl/devkit/-/devkit-18.0.4.tgz";
-        sha512 = "fKHnjg4/9MdFd2U4e8p6ja9fRa864DCyF70kB4YUB9NuUIgWLQ15Uj6wXC3xjdXmxQRyHDa7ORodVoFzdo4UCg==";
+        url = "https://registry.npmjs.org/@nrwl/devkit/-/devkit-18.1.2.tgz";
+        sha512 = "x+6UJNeWoDtke1FhEAP6ptDLUPJC/xOJ+Wri6RFTi+/ekw7qD3Bj73XHU9C47HBxMxN2voUVMfIX3mC65/CXiQ==";
       };
     };
-    "@nrwl/tao-18.0.4" = {
+    "@nrwl/tao-18.1.2" = {
       name = "_at_nrwl_slash_tao";
       packageName = "@nrwl/tao";
-      version = "18.0.4";
+      version = "18.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nrwl/tao/-/tao-18.0.4.tgz";
-        sha512 = "/PzGOJevlDQnp5RPXF3WDe+w1cdohGkY+mbJUgDVA4Q5JEPT1DtE10h9GgdHdzkPjVPNYsaI4Vs/53NUdlVHHA==";
+        url = "https://registry.npmjs.org/@nrwl/tao/-/tao-18.1.2.tgz";
+        sha512 = "IA+osZ5TlKMwJmcP7TECW7TO0JdNNQud9Dgkh1ZfJ4GWnT7WEkE9b2Yf1IFeeB81kCTXXq8jfISa8ZY21MjRaQ==";
       };
     };
-    "@nx/devkit-18.0.4" = {
+    "@nx/devkit-18.1.2" = {
       name = "_at_nx_slash_devkit";
       packageName = "@nx/devkit";
-      version = "18.0.4";
+      version = "18.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nx/devkit/-/devkit-18.0.4.tgz";
-        sha512 = "Vs1AXgOjMJyaWpKopD04dy0FwQ22n5ZR1bFf98Ab4Ht0WJwJE90IpUVAkwI03n5BYxAKOlQnFltsB4gu6Y8mZQ==";
+        url = "https://registry.npmjs.org/@nx/devkit/-/devkit-18.1.2.tgz";
+        sha512 = "xgiPqKdJ6GVrqXsAyHD/yxqCDW1LekkWgazkuBI8MKA5J2IwZ4Ex5pMsOVMuWz2sTRejuPRqajBclFRMbhfCig==";
       };
     };
     "@oclif/color-1.0.13" = {
@@ -7366,13 +7357,13 @@ let
         sha512 = "fNEMG5DzJHhYmI3MgpByTvltBOMyFcnRIUMxbiz2ai8rhaYgaTHMG3Q38HcosfIvtw9nCjxpcQtC8MN8QtVCcA==";
       };
     };
-    "@oclif/core-3.15.1" = {
+    "@oclif/core-3.19.6" = {
       name = "_at_oclif_slash_core";
       packageName = "@oclif/core";
-      version = "3.15.1";
+      version = "3.19.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/core/-/core-3.15.1.tgz";
-        sha512 = "d4457zVo2agLoJG97CmdY6M3BeP5sogBP3BtP65hUvJH6wA6Us1hdY3UiPPtD/ZzZImq7cATVMABuCF9tM+rWA==";
+        url = "https://registry.npmjs.org/@oclif/core/-/core-3.19.6.tgz";
+        sha512 = "1ryQWAx7VOf+Wq6pv00uilOo56DrG0drr42crmCQ3eYrPPz252EmNCoFkoOBk7McN6x0f4ega83c0yNNCXmiXw==";
       };
     };
     "@oclif/errors-1.3.5" = {
@@ -7429,13 +7420,13 @@ let
         sha512 = "Ow1AR8WtjzlyCtiWWPgzMyT8SbcDJFr47009riLioHa+MHX2BCDtVn2DVnN/E6b9JlPV5ptQpjefoRSNWBesmg==";
       };
     };
-    "@oclif/plugin-commands-2.2.24" = {
+    "@oclif/plugin-commands-2.2.28" = {
       name = "_at_oclif_slash_plugin-commands";
       packageName = "@oclif/plugin-commands";
-      version = "2.2.24";
+      version = "2.2.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-commands/-/plugin-commands-2.2.24.tgz";
-        sha512 = "bUZOBefMPR59oHngWNHDn+zGRQctVR5iMkO3qRWFUSVYt1VQtqOwAPBtpTIuIxL17/iGTG+U2b8jafn09lQNxA==";
+        url = "https://registry.npmjs.org/@oclif/plugin-commands/-/plugin-commands-2.2.28.tgz";
+        sha512 = "w1vQ6WGltMnyjJnnt6Vo/VVtyhz1V0O9McCy0qKIY+os7SunjnUMRNS/y8MZ7b6AjMSdbLGV9/VAYSlWyQg9SQ==";
       };
     };
     "@oclif/plugin-help-3.3.1" = {
@@ -7447,15 +7438,6 @@ let
         sha512 = "QuSiseNRJygaqAdABYFWn/H1CwIZCp9zp/PLid6yXvy6VcQV7OenEFF5XuYaCvSARe2Tg9r8Jqls5+fw1A9CbQ==";
       };
     };
-    "@oclif/plugin-help-5.2.18" = {
-      name = "_at_oclif_slash_plugin-help";
-      packageName = "@oclif/plugin-help";
-      version = "5.2.18";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-5.2.18.tgz";
-        sha512 = "0JjupXUuDzlI0Ojj7/YL42btfUNuvSgZxdi8ZfeYt/uhC1/zvsSkO29KjffPxKEnbhr6jrkjOgy/Vly5JquYLg==";
-      };
-    };
     "@oclif/plugin-help-5.2.20" = {
       name = "_at_oclif_slash_plugin-help";
       packageName = "@oclif/plugin-help";
@@ -7483,13 +7465,13 @@ let
         sha512 = "6fzUDLWrSK7n6+EBrEekEEYrYTCneRoOF9TzojkjuFn1+ailvUlr98G90bblxKOyy8fqMe7QjvqwTgIDQ9ZIzg==";
       };
     };
-    "@oclif/plugin-plugins-3.1.8" = {
+    "@oclif/plugin-plugins-3.9.4" = {
       name = "_at_oclif_slash_plugin-plugins";
       packageName = "@oclif/plugin-plugins";
-      version = "3.1.8";
+      version = "3.9.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-3.1.8.tgz";
-        sha512 = "514sFBzLcR9QCSMWCHt/1XntfjJEZvb637b9YuV4kwq749pKEPF7fjCxSV1gYQCCP4TjMB5gB4AwPL4cCbe+/A==";
+        url = "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-3.9.4.tgz";
+        sha512 = "JtumjspRdzJgHk1S10wu68tdlqSnyYRmSgCsmsc6AEvU+Orb0DQfrAgJEO77rPKPNo5MfnVAj0WyCDTi0JT/vw==";
       };
     };
     "@oclif/plugin-update-3.2.4" = {
@@ -7798,13 +7780,13 @@ let
         sha512 = "OWlrQAnWn9577PhVgqjUvMr1pg57Bc4jv0iL4w0PRuOSRvq67rvHW9Ie/dZVMvCzhSCB+UxhcY/PmCmFj33Q+g==";
       };
     };
-    "@opentelemetry/api-1.7.0" = {
+    "@opentelemetry/api-1.8.0" = {
       name = "_at_opentelemetry_slash_api";
       packageName = "@opentelemetry/api";
-      version = "1.7.0";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/api/-/api-1.7.0.tgz";
-        sha512 = "AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==";
+        url = "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz";
+        sha512 = "I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==";
       };
     };
     "@opentelemetry/api-logs-0.43.0" = {
@@ -7834,13 +7816,13 @@ let
         sha512 = "I6LrZvl1FF97FQXPR0iieWQmKnGxYtMbWA1GrAXnLUR+B1Hn2m8KqQNEIlZAucyv00GBgpWkpllmULmZfG8P3g==";
       };
     };
-    "@opentelemetry/core-1.21.0" = {
+    "@opentelemetry/core-1.22.0" = {
       name = "_at_opentelemetry_slash_core";
       packageName = "@opentelemetry/core";
-      version = "1.21.0";
+      version = "1.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/core/-/core-1.21.0.tgz";
-        sha512 = "KP+OIweb3wYoP7qTYL/j5IpOlu52uxBv5M4+QhSmmUfLyTgu1OIS71msK3chFo1D6Y61BIH3wMiMYRCxJCQctA==";
+        url = "https://registry.npmjs.org/@opentelemetry/core/-/core-1.22.0.tgz";
+        sha512 = "0VoAlT6x+Xzik1v9goJ3pZ2ppi6+xd3aUfg4brfrLkDBHRIVjMP0eBHrKrhB+NKcDyMAg8fAbGL3Npg/F6AwWA==";
       };
     };
     "@opentelemetry/exporter-metrics-otlp-http-0.43.0" = {
@@ -7897,13 +7879,13 @@ let
         sha512 = "M2e5emqg5I7qRKqlzKx0ROkcPyF8PbcSaWEdsm72od9txP7Z/Pl8PDYOyu80xWvbHAWk5mDxOF6v3vNdifzclA==";
       };
     };
-    "@opentelemetry/resources-1.21.0" = {
+    "@opentelemetry/resources-1.22.0" = {
       name = "_at_opentelemetry_slash_resources";
       packageName = "@opentelemetry/resources";
-      version = "1.21.0";
+      version = "1.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.21.0.tgz";
-        sha512 = "1Z86FUxPKL6zWVy2LdhueEGl9AHDJcx+bvHStxomruz6Whd02mE3lNUMjVJ+FGRoktx/xYQcxccYb03DiUP6Yw==";
+        url = "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.22.0.tgz";
+        sha512 = "+vNeIFPH2hfcNL0AJk/ykJXoUCtR1YaDUZM+p3wZNU4Hq98gzq+7b43xbkXjadD9VhWIUQqEwXyY64q6msPj6A==";
       };
     };
     "@opentelemetry/sdk-logs-0.43.0" = {
@@ -7942,13 +7924,13 @@ let
         sha512 = "2T5HA1/1iE36Q9eg6D4zYlC4Y4GcycI1J6NsHPKZY9oWfAxWsoYnRlkPfUqyY5XVtocCo/xHpnJvGNHwzT70oQ==";
       };
     };
-    "@opentelemetry/sdk-trace-base-1.21.0" = {
+    "@opentelemetry/sdk-trace-base-1.22.0" = {
       name = "_at_opentelemetry_slash_sdk-trace-base";
       packageName = "@opentelemetry/sdk-trace-base";
-      version = "1.21.0";
+      version = "1.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.21.0.tgz";
-        sha512 = "yrElGX5Fv0umzp8Nxpta/XqU71+jCAyaLk34GmBzNcrW43nqbrqvdPs4gj4MVy/HcTjr6hifCDCYA3rMkajxxA==";
+        url = "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.22.0.tgz";
+        sha512 = "pfTuSIpCKONC6vkTpv6VmACxD+P1woZf4q0K46nSUvXFvOFqjBYKFaAMkKD3M1mlKUUh0Oajwj35qNjMl80m1Q==";
       };
     };
     "@opentelemetry/semantic-conventions-1.17.0" = {
@@ -7969,409 +7951,409 @@ let
         sha512 = "xbR2U+2YjauIuo42qmE8XyJK6dYeRMLJuOlUP5SO4auET4VtOHOzgkRVOq+Ik18N+Xf3YPcqJs9dZMiDddz1eQ==";
       };
     };
-    "@opentelemetry/semantic-conventions-1.21.0" = {
+    "@opentelemetry/semantic-conventions-1.22.0" = {
       name = "_at_opentelemetry_slash_semantic-conventions";
       packageName = "@opentelemetry/semantic-conventions";
-      version = "1.21.0";
+      version = "1.22.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.21.0.tgz";
-        sha512 = "lkC8kZYntxVKr7b8xmjCVUgE0a8xgDakPyDo9uSWavXPyYqLgYYGdEd2j8NxihRyb6UwpX3G/hFUF4/9q2V+/g==";
+        url = "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.22.0.tgz";
+        sha512 = "CAOgFOKLybd02uj/GhCdEeeBjOS0yeoDeo/CA7ASBSmenpZHAKGB3iDm/rv3BQLcabb/OprDEsSQ1y0P8A7Siw==";
       };
     };
-    "@orval/angular-6.24.0" = {
+    "@orval/angular-6.25.0" = {
       name = "_at_orval_slash_angular";
       packageName = "@orval/angular";
-      version = "6.24.0";
+      version = "6.25.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/angular/-/angular-6.24.0.tgz";
-        sha512 = "ENnwxhbSdYo4d5J5eDspDqF9OrHnf1XYnWWouMGeIHs6l6NBq+AGb6uFEH5pzGPi7Erw5GvXIDbTWFv3W/0Vxw==";
+        url = "https://registry.npmjs.org/@orval/angular/-/angular-6.25.0.tgz";
+        sha512 = "lS86bmv1o4jFaGDAglFIHjuMz3Bhymz9A3ObYzZ3JKbZWV/5Vyz5/pk722QTyjH7cQ9Au8Tg5flCL70Tv5sHUA==";
       };
     };
-    "@orval/axios-6.24.0" = {
+    "@orval/axios-6.25.0" = {
       name = "_at_orval_slash_axios";
       packageName = "@orval/axios";
-      version = "6.24.0";
+      version = "6.25.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/axios/-/axios-6.24.0.tgz";
-        sha512 = "VxQgwAo5Djxvpixs15BVY1gMjd49YmjqBfEeQB7PrrY1T1PvVyENgFkBr+hg2QoBdy2LmdMxXDfFig00FNoerQ==";
+        url = "https://registry.npmjs.org/@orval/axios/-/axios-6.25.0.tgz";
+        sha512 = "OjfWatlOpTCnbtg0DSMx7NZOl5eqNZZFWk/OtZJi5pZOveCr8wzdFxUEcQ7Wn3f+k/NceO4i/mZHXeTfrxUb1Q==";
       };
     };
-    "@orval/core-6.24.0" = {
+    "@orval/core-6.25.0" = {
       name = "_at_orval_slash_core";
       packageName = "@orval/core";
-      version = "6.24.0";
+      version = "6.25.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/core/-/core-6.24.0.tgz";
-        sha512 = "8pfzviEPuP/hlxj0PGUKphKRjfIVYYKCkWamCiNqmUyVxrL+plQnIYvUf5I9Xol0d+oZ1lG2VNV2v4Gtt/zwXQ==";
+        url = "https://registry.npmjs.org/@orval/core/-/core-6.25.0.tgz";
+        sha512 = "P0HTyb/CXR1MT7rjEij+Aflns2GZJN7iqNFKz3E10kc1Xts8JT1FfiKIdMOtr1I7o2/wZUEGo4HNiVV8YtZ2KQ==";
       };
     };
-    "@orval/mock-6.24.0" = {
+    "@orval/mock-6.25.0" = {
       name = "_at_orval_slash_mock";
       packageName = "@orval/mock";
-      version = "6.24.0";
+      version = "6.25.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/mock/-/mock-6.24.0.tgz";
-        sha512 = "7U1Bpa2FmRqGdFZBIf6qAKJ+9z6aF/1LjxHabxkcdChP8jrPLVncCKK/mqwE0/8lntxA28/NR7q4l5NAE/GC8w==";
+        url = "https://registry.npmjs.org/@orval/mock/-/mock-6.25.0.tgz";
+        sha512 = "pc99Qxlzk7btg9fu68d18uKGMSCtUin5R+f80niK0CHBbQmLa3AEkTYOiusToq3ioL87WnBhxWxGsI6lkQfKnw==";
       };
     };
-    "@orval/query-6.24.0" = {
+    "@orval/query-6.25.0" = {
       name = "_at_orval_slash_query";
       packageName = "@orval/query";
-      version = "6.24.0";
+      version = "6.25.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/query/-/query-6.24.0.tgz";
-        sha512 = "I0NCXBdcro7+kgu4UyCM4m/PZPwTBZHHUPiIfhkxkUUzqY2gX0k3Au2sZcHULyEZBB8A2+s42YPEWPGg1yjP7Q==";
+        url = "https://registry.npmjs.org/@orval/query/-/query-6.25.0.tgz";
+        sha512 = "hR8pEXuPsEiZosgP/pf3IKKgylF/sKEDoUr68JUgBqBAc4Foy/F/97aJl6Jkn6rGjM+IDtPafu+yV3MzZxNwKA==";
       };
     };
-    "@orval/swr-6.24.0" = {
+    "@orval/swr-6.25.0" = {
       name = "_at_orval_slash_swr";
       packageName = "@orval/swr";
-      version = "6.24.0";
+      version = "6.25.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/swr/-/swr-6.24.0.tgz";
-        sha512 = "13gGIiYE1hg7h/ps/z//ITUcZUQI6e6L7wFaE6+A0EoEuC6z2UXIx+4TV0t43G8S+E8Ow6ZUNjLzeR1GjiRmPA==";
+        url = "https://registry.npmjs.org/@orval/swr/-/swr-6.25.0.tgz";
+        sha512 = "OfN/D5xS9z8KBfTg26gYbFFXlQEzOekyJwzgiEKnGiL/CPAs9h1C0zNMrjdgAXOoX84t+lA344SB5qdY5Pq4hw==";
       };
     };
-    "@orval/zod-6.24.0" = {
+    "@orval/zod-6.25.0" = {
       name = "_at_orval_slash_zod";
       packageName = "@orval/zod";
-      version = "6.24.0";
+      version = "6.25.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@orval/zod/-/zod-6.24.0.tgz";
-        sha512 = "EknDRi9Toh635CwDXtyzvwB4bGWw2NvbVHpw0ne7/y7nWsUW7N5+RRi+OAk39q/psFlCZtsI1EJtfyQ6Zr5MzQ==";
+        url = "https://registry.npmjs.org/@orval/zod/-/zod-6.25.0.tgz";
+        sha512 = "35lvt9K/DUEkDb9M2FGHWL105Aarud6/iT5aM4JO6RiXf4rxBMXycAoGiYl/i3Pz45lS9krkXOEufKry9bRUyg==";
       };
     };
-    "@parcel/bundler-default-2.11.0" = {
+    "@parcel/bundler-default-2.12.0" = {
       name = "_at_parcel_slash_bundler-default";
       packageName = "@parcel/bundler-default";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.11.0.tgz";
-        sha512 = "ZIs0865Lp871ZK83k5I9L4DeeE26muNMrHa7j8bvls6fKBJKAn8djrhfU4XOLyziU4aAOobcPwXU0+npWqs52g==";
+        url = "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.12.0.tgz";
+        sha512 = "3ybN74oYNMKyjD6V20c9Gerdbh7teeNvVMwIoHIQMzuIFT6IGX53PyOLlOKRLbjxMc0TMimQQxIt2eQqxR5LsA==";
       };
     };
-    "@parcel/cache-2.11.0" = {
+    "@parcel/cache-2.12.0" = {
       name = "_at_parcel_slash_cache";
       packageName = "@parcel/cache";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/cache/-/cache-2.11.0.tgz";
-        sha512 = "RSSkGNjO00lJPyftzaC9eaNVs4jMjPSAm0VJNWQ9JSm2n4A9BzQtTFAt1vhJOzzW1UsQvvBge9DdfkB7a2gIOw==";
+        url = "https://registry.npmjs.org/@parcel/cache/-/cache-2.12.0.tgz";
+        sha512 = "FX5ZpTEkxvq/yvWklRHDESVRz+c7sLTXgFuzz6uEnBcXV38j6dMSikflNpHA6q/L4GKkCqRywm9R6XQwhwIMyw==";
       };
     };
-    "@parcel/codeframe-2.11.0" = {
+    "@parcel/codeframe-2.12.0" = {
       name = "_at_parcel_slash_codeframe";
       packageName = "@parcel/codeframe";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.11.0.tgz";
-        sha512 = "YHs9g/i5af/sd/JrWAojU9YFbKffcJ3Tx2EJaK0ME8OJsye91UaI/3lxSUYLmJG9e4WLNJtqci8V5FBMz//ZPg==";
+        url = "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.12.0.tgz";
+        sha512 = "v2VmneILFiHZJTxPiR7GEF1wey1/IXPdZMcUlNXBiPZyWDfcuNgGGVQkx/xW561rULLIvDPharOMdxz5oHOKQg==";
       };
     };
-    "@parcel/compressor-raw-2.11.0" = {
+    "@parcel/compressor-raw-2.12.0" = {
       name = "_at_parcel_slash_compressor-raw";
       packageName = "@parcel/compressor-raw";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.11.0.tgz";
-        sha512 = "RArhBPRTCfz77soX2IECH09NUd76UBWujXiPRcXGPIHK+C3L1cRuzsNcA39QeSb3thz3b99JcozMJ1nkC2Bsgw==";
+        url = "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.12.0.tgz";
+        sha512 = "h41Q3X7ZAQ9wbQ2csP8QGrwepasLZdXiuEdpUryDce6rF9ZiHoJ97MRpdLxOhOPyASTw/xDgE1xyaPQr0Q3f5A==";
       };
     };
-    "@parcel/config-default-2.11.0" = {
+    "@parcel/config-default-2.12.0" = {
       name = "_at_parcel_slash_config-default";
       packageName = "@parcel/config-default";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.11.0.tgz";
-        sha512 = "1e2+qcZkm5/0f4eI20p/DemcYiSxq9d/eyjpTXA7PulJaHbL1wonwUAuy3mvnAvDnLOJmAk/obDVgX1ZfxMGtg==";
+        url = "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.12.0.tgz";
+        sha512 = "dPNe2n9eEsKRc1soWIY0yToMUPirPIa2QhxcCB3Z5RjpDGIXm0pds+BaiqY6uGLEEzsjhRO0ujd4v2Rmm0vuFg==";
       };
     };
-    "@parcel/core-2.11.0" = {
+    "@parcel/core-2.12.0" = {
       name = "_at_parcel_slash_core";
       packageName = "@parcel/core";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/core/-/core-2.11.0.tgz";
-        sha512 = "Npe0S6hVaqWEwRL+HI7gtOYOaoE5bJQZTgUDhsDoppWbau51jOlRYOZTXuvRK/jxXnze4/S1sdM24xBYAQ5qkw==";
+        url = "https://registry.npmjs.org/@parcel/core/-/core-2.12.0.tgz";
+        sha512 = "s+6pwEj+GfKf7vqGUzN9iSEPueUssCCQrCBUlcAfKrJe0a22hTUCjewpB0I7lNrCIULt8dkndD+sMdOrXsRl6Q==";
       };
     };
-    "@parcel/diagnostic-2.11.0" = {
+    "@parcel/diagnostic-2.12.0" = {
       name = "_at_parcel_slash_diagnostic";
       packageName = "@parcel/diagnostic";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.11.0.tgz";
-        sha512 = "4dJmOXVL5YGGQRRsQosQbSRONBcboB71mSwaeaEgz3pPdq9QXVPLACkGe/jTXSqa3OnAHu3g5vQLpE1g5xqBqw==";
+        url = "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.12.0.tgz";
+        sha512 = "8f1NOsSFK+F4AwFCKynyIu9Kr/uWHC+SywAv4oS6Bv3Acig0gtwUjugk0C9UaB8ztBZiW5TQZhw+uPZn9T/lJA==";
       };
     };
-    "@parcel/events-2.11.0" = {
+    "@parcel/events-2.12.0" = {
       name = "_at_parcel_slash_events";
       packageName = "@parcel/events";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/events/-/events-2.11.0.tgz";
-        sha512 = "K6SOjOrQsz1GdNl2qKBktq7KJ3Q3yxK8WXdmQYo10wG39dr051xtMb38aqieTp4eVhL8Yaq2iJgGkdr11fuBnA==";
+        url = "https://registry.npmjs.org/@parcel/events/-/events-2.12.0.tgz";
+        sha512 = "nmAAEIKLjW1kB2cUbCYSmZOGbnGj8wCzhqnK727zCCWaA25ogzAtt657GPOeFyqW77KyosU728Tl63Fc8hphIA==";
       };
     };
-    "@parcel/fs-2.11.0" = {
+    "@parcel/fs-2.12.0" = {
       name = "_at_parcel_slash_fs";
       packageName = "@parcel/fs";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/fs/-/fs-2.11.0.tgz";
-        sha512 = "zWckdnnovdrgdFX4QYuQV4bbKCsh6IYCkmwaB4yp47rhw1MP0lkBINLt4yFPHBxWXOpElCfxjL+z69c9xJQRBQ==";
+        url = "https://registry.npmjs.org/@parcel/fs/-/fs-2.12.0.tgz";
+        sha512 = "NnFkuvou1YBtPOhTdZr44WN7I60cGyly2wpHzqRl62yhObyi1KvW0SjwOMa0QGNcBOIzp4G0CapoZ93hD0RG5Q==";
       };
     };
-    "@parcel/graph-3.1.0" = {
+    "@parcel/graph-3.2.0" = {
       name = "_at_parcel_slash_graph";
       packageName = "@parcel/graph";
-      version = "3.1.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/graph/-/graph-3.1.0.tgz";
-        sha512 = "d1dTW5C7A52HgDtoXlyvlET1ypSlmIxSIZOJ1xp3R9L9hgo3h1u3jHNyaoTe/WPkGVe2QnFxh0h+UibVJhu9vg==";
+        url = "https://registry.npmjs.org/@parcel/graph/-/graph-3.2.0.tgz";
+        sha512 = "xlrmCPqy58D4Fg5umV7bpwDx5Vyt7MlnQPxW68vae5+BA4GSWetfZt+Cs5dtotMG2oCHzZxhIPt7YZ7NRyQzLA==";
       };
     };
-    "@parcel/logger-2.11.0" = {
+    "@parcel/logger-2.12.0" = {
       name = "_at_parcel_slash_logger";
       packageName = "@parcel/logger";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/logger/-/logger-2.11.0.tgz";
-        sha512 = "HtMEdCq3LKnvv4T2CIskcqlf2gpBvHMm3pkeUFB/hc/7hW/hE1k6/HA2VOQvc0tBsaMpmEx7PCrfrH56usQSyA==";
+        url = "https://registry.npmjs.org/@parcel/logger/-/logger-2.12.0.tgz";
+        sha512 = "cJ7Paqa7/9VJ7C+KwgJlwMqTQBOjjn71FbKk0G07hydUEBISU2aDfmc/52o60ErL9l+vXB26zTrIBanbxS8rVg==";
       };
     };
-    "@parcel/markdown-ansi-2.11.0" = {
+    "@parcel/markdown-ansi-2.12.0" = {
       name = "_at_parcel_slash_markdown-ansi";
       packageName = "@parcel/markdown-ansi";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.11.0.tgz";
-        sha512 = "YA60EWbXi6cLOIzcwRC2wijotPauOGQbUi0vSbu0O6/mjQ68kWCMGz0hwZjDRQcPypQVJEIvTgMymLbvumxwhg==";
+        url = "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.12.0.tgz";
+        sha512 = "WZz3rzL8k0H3WR4qTHX6Ic8DlEs17keO9gtD4MNGyMNQbqQEvQ61lWJaIH0nAtgEetu0SOITiVqdZrb8zx/M7w==";
       };
     };
-    "@parcel/namer-default-2.11.0" = {
+    "@parcel/namer-default-2.12.0" = {
       name = "_at_parcel_slash_namer-default";
       packageName = "@parcel/namer-default";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.11.0.tgz";
-        sha512 = "DEwBSKSClg4DA2xAWimYkw9bFi7MFb9TdT7/TYZStMTsfYHPWOyyjGR7aVr3Ra4wNb+XX6g4rR41yp3HD6KO7A==";
+        url = "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.12.0.tgz";
+        sha512 = "9DNKPDHWgMnMtqqZIMiEj/R9PNWW16lpnlHjwK3ciRlMPgjPJ8+UNc255teZODhX0T17GOzPdGbU/O/xbxVPzA==";
       };
     };
-    "@parcel/node-resolver-core-3.2.0" = {
+    "@parcel/node-resolver-core-3.3.0" = {
       name = "_at_parcel_slash_node-resolver-core";
       packageName = "@parcel/node-resolver-core";
-      version = "3.2.0";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.2.0.tgz";
-        sha512 = "XJRSxCkNbGFWjfmwFdcQZ/qlzWZd35qLtvLz2va8euGL7M5OMEQOv7dsvEhl0R+CC2zcnfFzZwxk78q6ezs8AQ==";
+        url = "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.3.0.tgz";
+        sha512 = "rhPW9DYPEIqQBSlYzz3S0AjXxjN6Ub2yS6tzzsW/4S3Gpsgk/uEq4ZfxPvoPf/6TgZndVxmKwpmxaKtGMmf3cA==";
       };
     };
-    "@parcel/optimizer-css-2.11.0" = {
+    "@parcel/optimizer-css-2.12.0" = {
       name = "_at_parcel_slash_optimizer-css";
       packageName = "@parcel/optimizer-css";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.11.0.tgz";
-        sha512 = "bV97PRxshHV3dMwOpLRgcP1QNhrVWh6VVDfm2gmWULpvsjoykcPS6vrCFksY5CpQsSvNHqJBzQjWS8FubUI76w==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.12.0.tgz";
+        sha512 = "ifbcC97fRzpruTjaa8axIFeX4MjjSIlQfem3EJug3L2AVqQUXnM1XO8L0NaXGNLTW2qnh1ZjIJ7vXT/QhsphsA==";
       };
     };
-    "@parcel/optimizer-htmlnano-2.11.0" = {
+    "@parcel/optimizer-htmlnano-2.12.0" = {
       name = "_at_parcel_slash_optimizer-htmlnano";
       packageName = "@parcel/optimizer-htmlnano";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.11.0.tgz";
-        sha512 = "c20pz4EFF5DNFmqYgptlIj49eT6xjGLkDTdHH3RRzxKovuSXWfYSPs3GED3ZsjVuQyjNQif+/MAk9547F7hrdQ==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.12.0.tgz";
+        sha512 = "MfPMeCrT8FYiOrpFHVR+NcZQlXAptK2r4nGJjfT+ndPBhEEZp4yyL7n1y7HfX9geg5altc4WTb4Gug7rCoW8VQ==";
       };
     };
-    "@parcel/optimizer-image-2.11.0" = {
+    "@parcel/optimizer-image-2.12.0" = {
       name = "_at_parcel_slash_optimizer-image";
       packageName = "@parcel/optimizer-image";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.11.0.tgz";
-        sha512 = "jCaJww5QFG2GuNzYW8nlSW+Ea+Cv47TRnOPJNquFIajgfTLJ5ddsWbaNal0GQsL8yNiCBKWd1AV4W0RH9tG0Jg==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.12.0.tgz";
+        sha512 = "bo1O7raeAIbRU5nmNVtx8divLW9Xqn0c57GVNGeAK4mygnQoqHqRZ0mR9uboh64pxv6ijXZHPhKvU9HEpjPjBQ==";
       };
     };
-    "@parcel/optimizer-svgo-2.11.0" = {
+    "@parcel/optimizer-svgo-2.12.0" = {
       name = "_at_parcel_slash_optimizer-svgo";
       packageName = "@parcel/optimizer-svgo";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.11.0.tgz";
-        sha512 = "TQpvfBhjV2IsuFHXUolbDS6XWB3DDR2rYTlqlA8LMmuOY7jQd9Bnkl4JnapzWm/bRuzRlzdGjjVCPGL8iShFvA==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.12.0.tgz";
+        sha512 = "Kyli+ZZXnoonnbeRQdoWwee9Bk2jm/49xvnfb+2OO8NN0d41lblBoRhOyFiScRnJrw7eVl1Xrz7NTkXCIO7XFQ==";
       };
     };
-    "@parcel/optimizer-swc-2.11.0" = {
+    "@parcel/optimizer-swc-2.12.0" = {
       name = "_at_parcel_slash_optimizer-swc";
       packageName = "@parcel/optimizer-swc";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.11.0.tgz";
-        sha512 = "ftf42F3JyZxJb6nnLlgNGyNQ273YOla4dFGH/tWC8iTwObHUpWe7cMbCGcrSJBvAlsLkZfLpFNAXFxUgxdKyHQ==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.12.0.tgz";
+        sha512 = "iBi6LZB3lm6WmbXfzi8J3DCVPmn4FN2lw7DGXxUXu7MouDPVWfTsM6U/5TkSHJRNRogZ2gqy5q9g34NPxHbJcw==";
       };
     };
-    "@parcel/package-manager-2.11.0" = {
+    "@parcel/package-manager-2.12.0" = {
       name = "_at_parcel_slash_package-manager";
       packageName = "@parcel/package-manager";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.11.0.tgz";
-        sha512 = "QzdsrUYlAwIzb8by7WJjqYnbR1MoMKWbtE1MXUeYsZbFusV8B6pOH+lwqNJKS/BFtddZMRPYFueZS2N2fwzjig==";
+        url = "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.12.0.tgz";
+        sha512 = "0nvAezcjPx9FT+hIL+LS1jb0aohwLZXct7jAh7i0MLMtehOi0z1Sau+QpgMlA9rfEZZ1LIeFdnZZwqSy7Ccspw==";
       };
     };
-    "@parcel/packager-css-2.11.0" = {
+    "@parcel/packager-css-2.12.0" = {
       name = "_at_parcel_slash_packager-css";
       packageName = "@parcel/packager-css";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.11.0.tgz";
-        sha512 = "AyIxsp4eL8c22vp2oO2hSRnr3hSVNkARNZc9DG6uXxCc2Is5tUEX0I4PwxWnAx0EI44l+3zX/o414zT8yV9wwQ==";
+        url = "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.12.0.tgz";
+        sha512 = "j3a/ODciaNKD19IYdWJT+TP+tnhhn5koBGBWWtrKSu0UxWpnezIGZetit3eE+Y9+NTePalMkvpIlit2eDhvfJA==";
       };
     };
-    "@parcel/packager-html-2.11.0" = {
+    "@parcel/packager-html-2.12.0" = {
       name = "_at_parcel_slash_packager-html";
       packageName = "@parcel/packager-html";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.11.0.tgz";
-        sha512 = "ho5AQ70naTV8IqkKIbKtK+jsXQ5TJfFgtBvmJlyB3YydRMbIc+3g4G0xgIvf15V4uCMw9Md0Sv1W65nQXHPQoA==";
+        url = "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.12.0.tgz";
+        sha512 = "PpvGB9hFFe+19NXGz2ApvPrkA9GwEqaDAninT+3pJD57OVBaxB8U+HN4a5LICKxjUppPPqmrLb6YPbD65IX4RA==";
       };
     };
-    "@parcel/packager-js-2.11.0" = {
+    "@parcel/packager-js-2.12.0" = {
       name = "_at_parcel_slash_packager-js";
       packageName = "@parcel/packager-js";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.11.0.tgz";
-        sha512 = "SxjCsd0xQfg5H73YtVJj9VOpr9s0rwMsSoeykjkatbkEla9NsZajsUkd/bfYf+/0WvEKOrB8oUBo15HkGOgKug==";
+        url = "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.12.0.tgz";
+        sha512 = "viMF+FszITRRr8+2iJyk+4ruGiL27Y6AF7hQ3xbJfzqnmbOhGFtLTQwuwhOLqN/mWR2VKdgbLpZSarWaO3yAMg==";
       };
     };
-    "@parcel/packager-raw-2.11.0" = {
+    "@parcel/packager-raw-2.12.0" = {
       name = "_at_parcel_slash_packager-raw";
       packageName = "@parcel/packager-raw";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.11.0.tgz";
-        sha512 = "2/0JQ8DZrz7cVNXwD6OYoUUtSSnlr4dsz8ZkpFDKsBJhvMHtC78Sq+1EDixDGOMiUcalSEjNsoHtkpq9uNh+Xw==";
+        url = "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.12.0.tgz";
+        sha512 = "tJZqFbHqP24aq1F+OojFbQIc09P/u8HAW5xfndCrFnXpW4wTgM3p03P0xfw3gnNq+TtxHJ8c3UFE5LnXNNKhYA==";
       };
     };
-    "@parcel/packager-svg-2.11.0" = {
+    "@parcel/packager-svg-2.12.0" = {
       name = "_at_parcel_slash_packager-svg";
       packageName = "@parcel/packager-svg";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.11.0.tgz";
-        sha512 = "2wQBkzLwcaWFGWz8TP+bgsXgiueWPzrjKsWugWdDfq0FbXh8XVeR/599qnus3RFHZy4cH6L6yq/7zxcljtxK8A==";
+        url = "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.12.0.tgz";
+        sha512 = "ldaGiacGb2lLqcXas97k8JiZRbAnNREmcvoY2W2dvW4loVuDT9B9fU777mbV6zODpcgcHWsLL3lYbJ5Lt3y9cg==";
       };
     };
-    "@parcel/packager-wasm-2.11.0" = {
+    "@parcel/packager-wasm-2.12.0" = {
       name = "_at_parcel_slash_packager-wasm";
       packageName = "@parcel/packager-wasm";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.11.0.tgz";
-        sha512 = "tTy4EbDXeeiZ0oB7L2FWaHSD1mbmYZP6R5HXqkvc5dECGUKPU5Jz6ek2C5AM+HfQdQLKXPQ/Xw3eJnI/AmctVg==";
+        url = "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.12.0.tgz";
+        sha512 = "fYqZzIqO9fGYveeImzF8ll6KRo2LrOXfD+2Y5U3BiX/wp9wv17dz50QLDQm9hmTcKGWxK4yWqKQh+Evp/fae7A==";
       };
     };
-    "@parcel/plugin-2.11.0" = {
+    "@parcel/plugin-2.12.0" = {
       name = "_at_parcel_slash_plugin";
       packageName = "@parcel/plugin";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.11.0.tgz";
-        sha512 = "9npuKBlhnPn7oeUpLJGecceg16GkXbvzbr6MNSZiHhkx3IBeITHQXlZnp2zAjUOFreNsYOfifwEF2S4KsARfBQ==";
+        url = "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.12.0.tgz";
+        sha512 = "nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g==";
       };
     };
-    "@parcel/profiler-2.11.0" = {
+    "@parcel/profiler-2.12.0" = {
       name = "_at_parcel_slash_profiler";
       packageName = "@parcel/profiler";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.11.0.tgz";
-        sha512 = "s10SS09prOdwnaAcjK8M5zO8o+zPJJW5oOqXPNdf6KH4NGD/ue7iOk2xM8QLw6ulSwxE7NDt++lyfW3AXgCZwg==";
+        url = "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.12.0.tgz";
+        sha512 = "q53fvl5LDcFYzMUtSusUBZSjQrKjMlLEBgKeQHFwkimwR1mgoseaDBDuNz0XvmzDzF1UelJ02TUKCGacU8W2qA==";
       };
     };
-    "@parcel/reporter-cli-2.11.0" = {
+    "@parcel/reporter-cli-2.12.0" = {
       name = "_at_parcel_slash_reporter-cli";
       packageName = "@parcel/reporter-cli";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.11.0.tgz";
-        sha512 = "hY0iO0f+LifgJHDUIjGQJnxLFSkk2jlbfy+kIaft5oI3/IM+UljecfGO+14XH8mYlqRXXPsT09TJe8ZKQzp4ZQ==";
+        url = "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.12.0.tgz";
+        sha512 = "TqKsH4GVOLPSCanZ6tcTPj+rdVHERnt5y4bwTM82cajM21bCX1Ruwp8xOKU+03091oV2pv5ieB18pJyRF7IpIw==";
       };
     };
-    "@parcel/reporter-dev-server-2.11.0" = {
+    "@parcel/reporter-dev-server-2.12.0" = {
       name = "_at_parcel_slash_reporter-dev-server";
       packageName = "@parcel/reporter-dev-server";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.11.0.tgz";
-        sha512 = "T4ue1+oLFNdcd9maw8QWQuxzOS2kX2jOrSvYKwYd9oGnqiAr1rpiHYYKJhHng+PF5ybwWkj8dUJfGh2NoQysJA==";
+        url = "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.12.0.tgz";
+        sha512 = "tIcDqRvAPAttRlTV28dHcbWT5K2r/MBFks7nM4nrEDHWtnrCwimkDmZTc1kD8QOCCjGVwRHcQybpHvxfwol6GA==";
       };
     };
-    "@parcel/reporter-tracer-2.11.0" = {
+    "@parcel/reporter-tracer-2.12.0" = {
       name = "_at_parcel_slash_reporter-tracer";
       packageName = "@parcel/reporter-tracer";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.11.0.tgz";
-        sha512 = "33q4ftO26OPWHkUpEm0bzzSjW2kHEh6q/JFePwf8W6APTQVruj4mV46+Fh6rxX42ixs92K/QoiE0gYgWZQVDHA==";
+        url = "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.12.0.tgz";
+        sha512 = "g8rlu9GxB8Ut/F8WGx4zidIPQ4pcYFjU9bZO+fyRIPrSUFH2bKijCnbZcr4ntqzDGx74hwD6cCG4DBoleq2UlQ==";
       };
     };
-    "@parcel/resolver-default-2.11.0" = {
+    "@parcel/resolver-default-2.12.0" = {
       name = "_at_parcel_slash_resolver-default";
       packageName = "@parcel/resolver-default";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.11.0.tgz";
-        sha512 = "suZNN2lE5W48LPTwAbG7gnj1IeubkCVEm0XspWXcXUtCzglimNJ8PVVBGx171o5CqDpdbGF3AqHjG9N3uOwXag==";
+        url = "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.12.0.tgz";
+        sha512 = "uuhbajTax37TwCxu7V98JtRLiT6hzE4VYSu5B7Qkauy14/WFt2dz6GOUXPgVsED569/hkxebPx3KCMtZW6cHHA==";
       };
     };
-    "@parcel/runtime-browser-hmr-2.11.0" = {
+    "@parcel/runtime-browser-hmr-2.12.0" = {
       name = "_at_parcel_slash_runtime-browser-hmr";
       packageName = "@parcel/runtime-browser-hmr";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.11.0.tgz";
-        sha512 = "uVwNBtoLMrlPHLvRS05BVhLseduMOpZT36yiIjS0YSBJcC6/otI9AY7ZiDPYmrB5xTqM0R+D554JhPaJHCuocw==";
+        url = "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.12.0.tgz";
+        sha512 = "4ZLp2FWyD32r0GlTulO3+jxgsA3oO1P1b5oO2IWuWilfhcJH5LTiazpL5YdusUjtNn9PGN6QLAWfxmzRIfM+Ow==";
       };
     };
-    "@parcel/runtime-js-2.11.0" = {
+    "@parcel/runtime-js-2.12.0" = {
       name = "_at_parcel_slash_runtime-js";
       packageName = "@parcel/runtime-js";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.11.0.tgz";
-        sha512 = "fH3nJoexINz7s4cDzp0Vjsx0k1pMYSa5ch38LbbNqCKTermy0pS0zZuvgfLfHFFP+AMRpFQenrF7h7N3bgDmHw==";
+        url = "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.12.0.tgz";
+        sha512 = "sBerP32Z1crX5PfLNGDSXSdqzlllM++GVnVQVeM7DgMKS8JIFG3VLi28YkX+dYYGtPypm01JoIHCkvwiZEcQJg==";
       };
     };
-    "@parcel/runtime-react-refresh-2.11.0" = {
+    "@parcel/runtime-react-refresh-2.12.0" = {
       name = "_at_parcel_slash_runtime-react-refresh";
       packageName = "@parcel/runtime-react-refresh";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.11.0.tgz";
-        sha512 = "Kfnc7gLjhoephLMnjABrkIkzVfzPrpJlxiJFIleY2Fm57YhmCfKsEYxm3lHOutNaYl1VArW0LKClPH/VHG9vfQ==";
+        url = "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.12.0.tgz";
+        sha512 = "SCHkcczJIDFTFdLTzrHTkQ0aTrX3xH6jrA4UsCBL6ji61+w+ohy4jEEe9qCgJVXhnJfGLE43HNXek+0MStX+Mw==";
       };
     };
-    "@parcel/runtime-service-worker-2.11.0" = {
+    "@parcel/runtime-service-worker-2.12.0" = {
       name = "_at_parcel_slash_runtime-service-worker";
       packageName = "@parcel/runtime-service-worker";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.11.0.tgz";
-        sha512 = "c8MaSpSbXIKuN5sA/g4UsrsH1BtBZ6Em+eSxt9AYbdPtWrW+qwCioNVZj9lugBRUzDMjVfJz0yK59nS42hABvw==";
+        url = "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.12.0.tgz";
+        sha512 = "BXuMBsfiwpIEnssn+jqfC3jkgbS8oxeo3C7xhSQsuSv+AF2FwY3O3AO1c1RBskEW3XrBLNINOJujroNw80VTKA==";
       };
     };
-    "@parcel/rust-2.11.0" = {
+    "@parcel/rust-2.12.0" = {
       name = "_at_parcel_slash_rust";
       packageName = "@parcel/rust";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/rust/-/rust-2.11.0.tgz";
-        sha512 = "UkLWdHOD8Md2YmJDPsqd3yIs9chhdl/ATfV/B/xdPKGmqtNouYpDCRlq+WxMt3mLoYgHEg9UwrWLTebo2rr2iQ==";
+        url = "https://registry.npmjs.org/@parcel/rust/-/rust-2.12.0.tgz";
+        sha512 = "005cldMdFZFDPOjbDVEXcINQ3wT4vrxvSavRWI3Az0e3E18exO/x/mW9f648KtXugOXMAqCEqhFHcXECL9nmMw==";
       };
     };
     "@parcel/source-map-2.1.1" = {
@@ -8383,247 +8365,247 @@ let
         sha512 = "Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==";
       };
     };
-    "@parcel/transformer-babel-2.11.0" = {
+    "@parcel/transformer-babel-2.12.0" = {
       name = "_at_parcel_slash_transformer-babel";
       packageName = "@parcel/transformer-babel";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.11.0.tgz";
-        sha512 = "WKGblnp7r426VG+cpeQzc6dj/30EoUaYwyl4OEaigQSJizyuPWTBWTz6FUw+ih1/sg37h+D1BIh9C2FsVzpzbw==";
+        url = "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.12.0.tgz";
+        sha512 = "zQaBfOnf/l8rPxYGnsk/ufh/0EuqvmnxafjBIpKZ//j6rGylw5JCqXSb1QvvAqRYruKeccxGv7+HrxpqKU6V4A==";
       };
     };
-    "@parcel/transformer-css-2.11.0" = {
+    "@parcel/transformer-css-2.12.0" = {
       name = "_at_parcel_slash_transformer-css";
       packageName = "@parcel/transformer-css";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.11.0.tgz";
-        sha512 = "nFmBulF/ErNoafO87JbVrBavjBMNwE/kahbCRVxc2Mvlphz4F4lBW4eDRS5l4xBqFJaNkHr9R55ehLBBilF4Jw==";
+        url = "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.12.0.tgz";
+        sha512 = "vXhOqoAlQGATYyQ433Z1DXKmiKmzOAUmKysbYH3FD+LKEKLMEl/pA14goqp00TW+A/EjtSKKyeMyHlMIIUqj4Q==";
       };
     };
-    "@parcel/transformer-html-2.11.0" = {
+    "@parcel/transformer-html-2.12.0" = {
       name = "_at_parcel_slash_transformer-html";
       packageName = "@parcel/transformer-html";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.11.0.tgz";
-        sha512 = "90vp7mbvvfqPr9XIINpMcELtywj56f1bxfOkLQgWU1bm22H0FT3i5dqdac++2My0IGDvMwhAEjQfbn4pA579NQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.12.0.tgz";
+        sha512 = "5jW4dFFBlYBvIQk4nrH62rfA/G/KzVzEDa6S+Nne0xXhglLjkm64Ci9b/d4tKZfuGWUbpm2ASAq8skti/nfpXw==";
       };
     };
-    "@parcel/transformer-image-2.11.0" = {
+    "@parcel/transformer-image-2.12.0" = {
       name = "_at_parcel_slash_transformer-image";
       packageName = "@parcel/transformer-image";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.11.0.tgz";
-        sha512 = "QiZj18UHf3lVFsi65Vz8YbS3ydx9Pe9x8ktMxE1oh9qpznN8lD7gE/Z9DxuTZB84EZ9pKytKwcv5WGXP25xIFg==";
+        url = "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.12.0.tgz";
+        sha512 = "8hXrGm2IRII49R7lZ0RpmNk27EhcsH+uNKsvxuMpXPuEnWgC/ha/IrjaI29xCng1uGur74bJF43NUSQhR4aTdw==";
       };
     };
-    "@parcel/transformer-js-2.11.0" = {
+    "@parcel/transformer-js-2.12.0" = {
       name = "_at_parcel_slash_transformer-js";
       packageName = "@parcel/transformer-js";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.11.0.tgz";
-        sha512 = "G1sv0n8/fJqHqwUs0iVnVdmRY0Kh8kWaDkuWcU/GJBHMGhUnLXKdNwxX2Av9UdBL14bU1nTINfr9qOfnQotXWg==";
+        url = "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.12.0.tgz";
+        sha512 = "OSZpOu+FGDbC/xivu24v092D9w6EGytB3vidwbdiJ2FaPgfV7rxS0WIUjH4I0OcvHAcitArRXL0a3+HrNTdQQw==";
       };
     };
-    "@parcel/transformer-json-2.11.0" = {
+    "@parcel/transformer-json-2.12.0" = {
       name = "_at_parcel_slash_transformer-json";
       packageName = "@parcel/transformer-json";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.11.0.tgz";
-        sha512 = "Wt/wgSBaRWmPL4gpvjkV0bCBRxFOtsuLNzsm8vYA5poxTFhuLY+AoyQ8S2+xXU4VxwBfdppfIr2Ny3SwGs8xbQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.12.0.tgz";
+        sha512 = "Utv64GLRCQILK5r0KFs4o7I41ixMPllwOLOhkdjJKvf1hZmN6WqfOmB1YLbWS/y5Zb/iB52DU2pWZm96vLFQZQ==";
       };
     };
-    "@parcel/transformer-postcss-2.11.0" = {
+    "@parcel/transformer-postcss-2.12.0" = {
       name = "_at_parcel_slash_transformer-postcss";
       packageName = "@parcel/transformer-postcss";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.11.0.tgz";
-        sha512 = "Ugy8XHBaUptGotsvwzq7gPCvkCopTIqqZ0JZ40Jmy9slGms8wnx06pNHA1Be/RcJwkJ2TbSu+7ncZdgmP5x5GQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.12.0.tgz";
+        sha512 = "FZqn+oUtiLfPOn67EZxPpBkfdFiTnF4iwiXPqvst3XI8H+iC+yNgzmtJkunOOuylpYY6NOU5jT8d7saqWSDv2Q==";
       };
     };
-    "@parcel/transformer-posthtml-2.11.0" = {
+    "@parcel/transformer-posthtml-2.12.0" = {
       name = "_at_parcel_slash_transformer-posthtml";
       packageName = "@parcel/transformer-posthtml";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.11.0.tgz";
-        sha512 = "dMK4p1RRAoIJEjK/Wz9GOLqwHqdD/VQDhMPk+6sUKp5zf2MhSohUstpp5gKsSZivCM3PS2f8k9rgroacJ/ReuA==";
+        url = "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.12.0.tgz";
+        sha512 = "z6Z7rav/pcaWdeD+2sDUcd0mmNZRUvtHaUGa50Y2mr+poxrKilpsnFMSiWBT+oOqPt7j71jzDvrdnAF4XkCljg==";
       };
     };
-    "@parcel/transformer-raw-2.11.0" = {
+    "@parcel/transformer-raw-2.12.0" = {
       name = "_at_parcel_slash_transformer-raw";
       packageName = "@parcel/transformer-raw";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.11.0.tgz";
-        sha512 = "2ltp3TgS+cxEqSM1vk5gDtJrYx4KMuRRtbSgSvkdldyOgPhflnLU3/HRz72hXSNGqYOV0/JN0+ocsfPnqR00ug==";
+        url = "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.12.0.tgz";
+        sha512 = "Ht1fQvXxix0NncdnmnXZsa6hra20RXYh1VqhBYZLsDfkvGGFnXIgO03Jqn4Z8MkKoa0tiNbDhpKIeTjyclbBxQ==";
       };
     };
-    "@parcel/transformer-react-refresh-wrap-2.11.0" = {
+    "@parcel/transformer-react-refresh-wrap-2.12.0" = {
       name = "_at_parcel_slash_transformer-react-refresh-wrap";
       packageName = "@parcel/transformer-react-refresh-wrap";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.11.0.tgz";
-        sha512 = "6pY0CdIgIpXC6XpsDWizf+zLgiuEsJ106HjWLwF7/R72BrvDhLPZ6jRu4UTrnd6bM89KahPw9fZZzjKoA5Efcw==";
+        url = "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.12.0.tgz";
+        sha512 = "GE8gmP2AZtkpBIV5vSCVhewgOFRhqwdM5Q9jNPOY5PKcM3/Ff0qCqDiTzzGLhk0/VMBrdjssrfZkVx6S/lHdJw==";
       };
     };
-    "@parcel/transformer-svg-2.11.0" = {
+    "@parcel/transformer-svg-2.12.0" = {
       name = "_at_parcel_slash_transformer-svg";
       packageName = "@parcel/transformer-svg";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.11.0.tgz";
-        sha512 = "GrTNi04OoQSXsyrB7FqQPeYREscEXFhIBPkyQ0q7WDG/yYynWljiA0kwITCtMjPfv2EDVks292dvM3EcnERRIA==";
+        url = "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.12.0.tgz";
+        sha512 = "cZJqGRJ4JNdYcb+vj94J7PdOuTnwyy45dM9xqbIMH+HSiiIkfrMsdEwYft0GTyFTdsnf+hdHn3tau7Qa5hhX+A==";
       };
     };
-    "@parcel/types-2.11.0" = {
+    "@parcel/types-2.12.0" = {
       name = "_at_parcel_slash_types";
       packageName = "@parcel/types";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/types/-/types-2.11.0.tgz";
-        sha512 = "lN5XlfV9b1s2rli8q1LqsLtu+D4ZwNI3sKmNcL/3tohSfQcF2EgF+MaiANGo9VzXOzoWFHt4dqWjO4OcdyC5tg==";
+        url = "https://registry.npmjs.org/@parcel/types/-/types-2.12.0.tgz";
+        sha512 = "8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ==";
       };
     };
-    "@parcel/utils-2.11.0" = {
+    "@parcel/utils-2.12.0" = {
       name = "_at_parcel_slash_utils";
       packageName = "@parcel/utils";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/utils/-/utils-2.11.0.tgz";
-        sha512 = "AcL70cXlIyE7eQdvjQbYxegN5l+skqvlJllxTWg4YkIZe9p8Gmv74jLAeLWh5F+IGl5WRn0TSy9JhNJjIMQGwQ==";
+        url = "https://registry.npmjs.org/@parcel/utils/-/utils-2.12.0.tgz";
+        sha512 = "z1JhLuZ8QmDaYoEIuUCVZlhcFrS7LMfHrb2OCRui5SQFntRWBH2fNM6H/fXXUkT9SkxcuFP2DUA6/m4+Gkz72g==";
       };
     };
-    "@parcel/watcher-2.4.0" = {
+    "@parcel/watcher-2.4.1" = {
       name = "_at_parcel_slash_watcher";
       packageName = "@parcel/watcher";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.0.tgz";
-        sha512 = "XJLGVL0DEclX5pcWa2N9SX1jCGTDd8l972biNooLFtjneuGqodupPQh6XseXIBBeVIMaaJ7bTcs3qGvXwsp4vg==";
+        url = "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz";
+        sha512 = "HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==";
       };
     };
-    "@parcel/watcher-android-arm64-2.4.0" = {
+    "@parcel/watcher-android-arm64-2.4.1" = {
       name = "_at_parcel_slash_watcher-android-arm64";
       packageName = "@parcel/watcher-android-arm64";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.0.tgz";
-        sha512 = "+fPtO/GsbYX1LJnCYCaDVT3EOBjvSFdQN9Mrzh9zWAOOfvidPWyScTrHIZHHfJBvlHzNA0Gy0U3NXFA/M7PHUA==";
+        url = "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz";
+        sha512 = "LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==";
       };
     };
-    "@parcel/watcher-darwin-arm64-2.4.0" = {
+    "@parcel/watcher-darwin-arm64-2.4.1" = {
       name = "_at_parcel_slash_watcher-darwin-arm64";
       packageName = "@parcel/watcher-darwin-arm64";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.0.tgz";
-        sha512 = "T/At5pansFuQ8VJLRx0C6C87cgfqIYhW2N/kBfLCUvDhCah0EnLLwaD/6MW3ux+rpgkpQAnMELOCTKlbwncwiA==";
+        url = "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz";
+        sha512 = "ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==";
       };
     };
-    "@parcel/watcher-darwin-x64-2.4.0" = {
+    "@parcel/watcher-darwin-x64-2.4.1" = {
       name = "_at_parcel_slash_watcher-darwin-x64";
       packageName = "@parcel/watcher-darwin-x64";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.0.tgz";
-        sha512 = "vZMv9jl+szz5YLsSqEGCMSllBl1gU1snfbRL5ysJU03MEa6gkVy9OMcvXV1j4g0++jHEcvzhs3Z3LpeEbVmY6Q==";
+        url = "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz";
+        sha512 = "yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==";
       };
     };
-    "@parcel/watcher-freebsd-x64-2.4.0" = {
+    "@parcel/watcher-freebsd-x64-2.4.1" = {
       name = "_at_parcel_slash_watcher-freebsd-x64";
       packageName = "@parcel/watcher-freebsd-x64";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.0.tgz";
-        sha512 = "dHTRMIplPDT1M0+BkXjtMN+qLtqq24sLDUhmU+UxxLP2TEY2k8GIoqIJiVrGWGomdWsy5IO27aDV1vWyQ6gfHA==";
+        url = "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz";
+        sha512 = "TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==";
       };
     };
-    "@parcel/watcher-linux-arm-glibc-2.4.0" = {
+    "@parcel/watcher-linux-arm-glibc-2.4.1" = {
       name = "_at_parcel_slash_watcher-linux-arm-glibc";
       packageName = "@parcel/watcher-linux-arm-glibc";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.0.tgz";
-        sha512 = "9NQXD+qk46RwATNC3/UB7HWurscY18CnAPMTFcI9Y8CTbtm63/eex1SNt+BHFinEQuLBjaZwR2Lp+n7pmEJPpQ==";
+        url = "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz";
+        sha512 = "4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==";
       };
     };
-    "@parcel/watcher-linux-arm64-glibc-2.4.0" = {
+    "@parcel/watcher-linux-arm64-glibc-2.4.1" = {
       name = "_at_parcel_slash_watcher-linux-arm64-glibc";
       packageName = "@parcel/watcher-linux-arm64-glibc";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.0.tgz";
-        sha512 = "QuJTAQdsd7PFW9jNGaV9Pw+ZMWV9wKThEzzlY3Lhnnwy7iW23qtQFPql8iEaSFMCVI5StNNmONUopk+MFKpiKg==";
+        url = "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz";
+        sha512 = "BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==";
       };
     };
-    "@parcel/watcher-linux-arm64-musl-2.4.0" = {
+    "@parcel/watcher-linux-arm64-musl-2.4.1" = {
       name = "_at_parcel_slash_watcher-linux-arm64-musl";
       packageName = "@parcel/watcher-linux-arm64-musl";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.0.tgz";
-        sha512 = "oyN+uA9xcTDo/45bwsd6TFHa7Lc7hKujyMlvwrCLvSckvWogndCEoVYFNfZ6JJ2KNL/6fFiGPcbjp8jJmEh5Ng==";
+        url = "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz";
+        sha512 = "p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==";
       };
     };
-    "@parcel/watcher-linux-x64-glibc-2.4.0" = {
+    "@parcel/watcher-linux-x64-glibc-2.4.1" = {
       name = "_at_parcel_slash_watcher-linux-x64-glibc";
       packageName = "@parcel/watcher-linux-x64-glibc";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.0.tgz";
-        sha512 = "KphV8awJmxU3q52JQvJot0QMu07CIyEjV+2Tb2ZtbucEgqyRcxOBDMsqp1JNq5nuDXtcCC0uHQICeiEz38dPBQ==";
+        url = "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz";
+        sha512 = "s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==";
       };
     };
-    "@parcel/watcher-linux-x64-musl-2.4.0" = {
+    "@parcel/watcher-linux-x64-musl-2.4.1" = {
       name = "_at_parcel_slash_watcher-linux-x64-musl";
       packageName = "@parcel/watcher-linux-x64-musl";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.0.tgz";
-        sha512 = "7jzcOonpXNWcSijPpKD5IbC6xC7yTibjJw9jviVzZostYLGxbz8LDJLUnLzLzhASPlPGgpeKLtFUMjAAzM+gSA==";
+        url = "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz";
+        sha512 = "L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==";
       };
     };
-    "@parcel/watcher-win32-arm64-2.4.0" = {
+    "@parcel/watcher-win32-arm64-2.4.1" = {
       name = "_at_parcel_slash_watcher-win32-arm64";
       packageName = "@parcel/watcher-win32-arm64";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.0.tgz";
-        sha512 = "NOej2lqlq8bQNYhUMnOD0nwvNql8ToQF+1Zhi9ULZoG+XTtJ9hNnCFfyICxoZLXor4bBPTOnzs/aVVoefYnjIg==";
+        url = "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz";
+        sha512 = "Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==";
       };
     };
-    "@parcel/watcher-win32-ia32-2.4.0" = {
+    "@parcel/watcher-win32-ia32-2.4.1" = {
       name = "_at_parcel_slash_watcher-win32-ia32";
       packageName = "@parcel/watcher-win32-ia32";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.0.tgz";
-        sha512 = "IO/nM+K2YD/iwjWAfHFMBPz4Zqn6qBDqZxY4j2n9s+4+OuTSRM/y/irksnuqcspom5DjkSeF9d0YbO+qpys+JA==";
+        url = "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz";
+        sha512 = "maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==";
       };
     };
-    "@parcel/watcher-win32-x64-2.4.0" = {
+    "@parcel/watcher-win32-x64-2.4.1" = {
       name = "_at_parcel_slash_watcher-win32-x64";
       packageName = "@parcel/watcher-win32-x64";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.0.tgz";
-        sha512 = "pAUyUVjfFjWaf/pShmJpJmNxZhbMvJASUpdes9jL6bTEJ+gDxPRSpXTIemNyNsb9AtbiGXs9XduP1reThmd+dA==";
+        url = "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz";
+        sha512 = "+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==";
       };
     };
-    "@parcel/workers-2.11.0" = {
+    "@parcel/workers-2.12.0" = {
       name = "_at_parcel_slash_workers";
       packageName = "@parcel/workers";
-      version = "2.11.0";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/workers/-/workers-2.11.0.tgz";
-        sha512 = "wjybqdSy6Nk0N9iBGsFcp7739W2zvx0WGfVxPVShqhz46pIkPOiFF/iSn+kFu5EmMKTRWeUif42+a6rRZ7pCnQ==";
+        url = "https://registry.npmjs.org/@parcel/workers/-/workers-2.12.0.tgz";
+        sha512 = "zv5We5Jmb+ZWXlU6A+AufyjY4oZckkxsZ8J4dvyWL0W8IQvGO1JB4FGeryyttzQv3RM3OxcN/BpTGPiDG6keBw==";
       };
     };
     "@peculiar/asn1-schema-2.3.8" = {
@@ -8806,67 +8788,67 @@ let
         sha512 = "OLkDZSqkA1mkoPNPvLFXyI6fb0enCuFji6Zfditi/CLAo9kmIhQFmEUDu4krSB8i908EljG8YwL5Xjxzm5wsWA==";
       };
     };
-    "@polka/url-1.0.0-next.24" = {
+    "@polka/url-1.0.0-next.25" = {
       name = "_at_polka_slash_url";
       packageName = "@polka/url";
-      version = "1.0.0-next.24";
+      version = "1.0.0-next.25";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz";
-        sha512 = "2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==";
+        url = "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz";
+        sha512 = "j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==";
       };
     };
-    "@prisma/debug-5.9.1" = {
+    "@prisma/debug-5.11.0" = {
       name = "_at_prisma_slash_debug";
       packageName = "@prisma/debug";
-      version = "5.9.1";
+      version = "5.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/debug/-/debug-5.9.1.tgz";
-        sha512 = "yAHFSFCg8KVoL0oRUno3m60GAjsUKYUDkQ+9BA2X2JfVR3kRVSJFc/GpQ2fSORi4pSHZR9orfM4UC9OVXIFFTA==";
+        url = "https://registry.npmjs.org/@prisma/debug/-/debug-5.11.0.tgz";
+        sha512 = "N6yYr3AbQqaiUg+OgjkdPp3KPW1vMTAgtKX6+BiB/qB2i1TjLYCrweKcUjzOoRM5BriA4idrkTej9A9QqTfl3A==";
       };
     };
-    "@prisma/engines-5.9.1" = {
+    "@prisma/engines-5.11.0" = {
       name = "_at_prisma_slash_engines";
       packageName = "@prisma/engines";
-      version = "5.9.1";
+      version = "5.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/engines/-/engines-5.9.1.tgz";
-        sha512 = "gkdXmjxQ5jktxWNdDA5aZZ6R8rH74JkoKq6LD5mACSvxd2vbqWeWIOV0Py5wFC8vofOYShbt6XUeCIUmrOzOnQ==";
+        url = "https://registry.npmjs.org/@prisma/engines/-/engines-5.11.0.tgz";
+        sha512 = "gbrpQoBTYWXDRqD+iTYMirDlF9MMlQdxskQXbhARhG6A/uFQjB7DZMYocMQLoiZXO/IskfDOZpPoZE8TBQKtEw==";
       };
     };
-    "@prisma/engines-version-5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64" = {
+    "@prisma/engines-version-5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102" = {
       name = "_at_prisma_slash_engines-version";
       packageName = "@prisma/engines-version";
-      version = "5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64";
+      version = "5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64.tgz";
-        sha512 = "HFl7275yF0FWbdcNvcSRbbu9JCBSLMcurYwvWc8WGDnpu7APxQo2ONtZrUggU3WxLxUJ2uBX+0GOFIcJeVeOOQ==";
+        url = "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102.tgz";
+        sha512 = "WXCuyoymvrS4zLz4wQagSsc3/nE6CHy8znyiMv8RKazKymOMd5o9FP5RGwGHAtgoxd+aB/BWqxuP/Ckfu7/3MA==";
       };
     };
-    "@prisma/fetch-engine-5.9.1" = {
+    "@prisma/fetch-engine-5.11.0" = {
       name = "_at_prisma_slash_fetch-engine";
       packageName = "@prisma/fetch-engine";
-      version = "5.9.1";
+      version = "5.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.9.1.tgz";
-        sha512 = "l0goQOMcNVOJs1kAcwqpKq3ylvkD9F04Ioe1oJoCqmz05mw22bNAKKGWuDd3zTUoUZr97va0c/UfLNru+PDmNA==";
+        url = "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.11.0.tgz";
+        sha512 = "994viazmHTJ1ymzvWugXod7dZ42T2ROeFuH6zHPcUfp/69+6cl5r9u3NFb6bW8lLdNjwLYEVPeu3hWzxpZeC0w==";
       };
     };
-    "@prisma/get-platform-5.9.1" = {
+    "@prisma/get-platform-5.11.0" = {
       name = "_at_prisma_slash_get-platform";
       packageName = "@prisma/get-platform";
-      version = "5.9.1";
+      version = "5.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.9.1.tgz";
-        sha512 = "6OQsNxTyhvG+T2Ksr8FPFpuPeL4r9u0JF0OZHUBI/Uy9SS43sPyAIutt4ZEAyqWQt104ERh70EZedkHZKsnNbg==";
+        url = "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.11.0.tgz";
+        sha512 = "rxtHpMLxNTHxqWuGOLzR2QOyQi79rK1u1XYAVLZxDGTLz/A+uoDnjz9veBFlicrpWjwuieM4N6jcnjj/DDoidw==";
       };
     };
-    "@prisma/prisma-schema-wasm-5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64" = {
+    "@prisma/prisma-schema-wasm-5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102" = {
       name = "_at_prisma_slash_prisma-schema-wasm";
       packageName = "@prisma/prisma-schema-wasm";
-      version = "5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64";
+      version = "5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/prisma-schema-wasm/-/prisma-schema-wasm-5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64.tgz";
-        sha512 = "IuqMy9uI6bax2TiKPfwEOdAsdG8g0+F+1JD28ugUL4q40Q2iLHBgqUgyavSev1z/TUIA/cYJm3ObEUWz9pNnBQ==";
+        url = "https://registry.npmjs.org/@prisma/prisma-schema-wasm/-/prisma-schema-wasm-5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102.tgz";
+        sha512 = "1VdfJ7fIM9X0opDyuNIrHLeynRdjIqI2waepLpi42ARiztPyD3getsgOtntiqMg3jGVwvnNdshUKuwHBFbv5Fg==";
       };
     };
     "@protobufjs/aspromise-1.1.2" = {
@@ -8959,13 +8941,13 @@ let
         sha512 = "Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==";
       };
     };
-    "@putdotio/api-client-8.46.0" = {
+    "@putdotio/api-client-8.47.0" = {
       name = "_at_putdotio_slash_api-client";
       packageName = "@putdotio/api-client";
-      version = "8.46.0";
+      version = "8.47.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@putdotio/api-client/-/api-client-8.46.0.tgz";
-        sha512 = "502d7sDRLvjhYGp0qYGkH+nVl6P3Ww4Et2V8eSbtvXlMB/fOGo5EfUL4hmmuVlutOC95TLRxIVcYAewJFhE8Lg==";
+        url = "https://registry.npmjs.org/@putdotio/api-client/-/api-client-8.47.0.tgz";
+        sha512 = "K9PoSzHRTFnc3ThhwC0w9xjyMU3BWMd2M2mDFVU2BW1KqkavLSOZSjtPvX0foWbflRbSROH3DEfDuquxCBsZnw==";
       };
     };
     "@react-native/normalize-color-2.1.0" = {
@@ -9175,211 +9157,211 @@ let
         sha512 = "iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==";
       };
     };
-    "@rspack/binding-0.5.4" = {
+    "@rspack/binding-0.5.7" = {
       name = "_at_rspack_slash_binding";
       packageName = "@rspack/binding";
-      version = "0.5.4";
+      version = "0.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding/-/binding-0.5.4.tgz";
-        sha512 = "WoAq+pkNAe4jetIwIoUbiqO4cLSvpll90GtpYHqaNS9r9n28l4LBQY/A15W0/XBZeoj0wvMkYEvEZtn64PULLw==";
+        url = "https://registry.npmjs.org/@rspack/binding/-/binding-0.5.7.tgz";
+        sha512 = "47MX6wNF1lP/LdShPVhbg689FX1W96Zji7QgbxhRhXmkpOKor7gdajhxqszFHxHYJtqNTLA9BSG38rpIGxJ+fw==";
       };
     };
-    "@rspack/binding-darwin-arm64-0.5.4" = {
+    "@rspack/binding-darwin-arm64-0.5.7" = {
       name = "_at_rspack_slash_binding-darwin-arm64";
       packageName = "@rspack/binding-darwin-arm64";
-      version = "0.5.4";
+      version = "0.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-0.5.4.tgz";
-        sha512 = "MWTLMzrgWk5enKGfctVIhbU5WlpJbXpvUnHKzxSr4dclf+IeBIaXBEs1fwogrS87VdfWTOh+lndyzrozBnxMmQ==";
+        url = "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-0.5.7.tgz";
+        sha512 = "zYTMILRyrON25MW7ifEhkZ6jL33mz8bAHTOhgR8yMpYVJjrKu60+s1qPa+t+GkaH7nNnVmzkTVGECCvaA75hJQ==";
       };
     };
-    "@rspack/binding-darwin-x64-0.5.4" = {
+    "@rspack/binding-darwin-x64-0.5.7" = {
       name = "_at_rspack_slash_binding-darwin-x64";
       packageName = "@rspack/binding-darwin-x64";
-      version = "0.5.4";
+      version = "0.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-0.5.4.tgz";
-        sha512 = "+8kvYjN9IllQSSzTrKp74Cf2efFNJZNMk6PWoOeakk43+Z1BgMgzLJTs/1xIDFhzylvLSMYSLO8AhbMMX48TCw==";
+        url = "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-0.5.7.tgz";
+        sha512 = "4THSPWVKPMSSD/y3/TWZ5xlSeh1B33I+YnBu/Y3lDFcFrFPtc3ojIDHw3is6l2wcACX6Rro4RgN6zcUij7eEmQ==";
       };
     };
-    "@rspack/binding-linux-arm64-gnu-0.5.4" = {
+    "@rspack/binding-linux-arm64-gnu-0.5.7" = {
       name = "_at_rspack_slash_binding-linux-arm64-gnu";
       packageName = "@rspack/binding-linux-arm64-gnu";
-      version = "0.5.4";
+      version = "0.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.5.4.tgz";
-        sha512 = "mXtRKCblBT+H1KPWUfeJt6gQFGoMt+lnhk2POcoCeS1AxnxcTFpnci4BC4Ro5zKS2QWSdGdUMtc5GKlBmgwxvg==";
+        url = "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.5.7.tgz";
+        sha512 = "JB9FAYWjYAeNCPFh0mQu3SZdFHiA+EY37z1AktLDl789SoEec2HPGkvvOs+OIET1pKWgjUGD4Z4Uq4P/r5JFNA==";
       };
     };
-    "@rspack/binding-linux-arm64-musl-0.5.4" = {
+    "@rspack/binding-linux-arm64-musl-0.5.7" = {
       name = "_at_rspack_slash_binding-linux-arm64-musl";
       packageName = "@rspack/binding-linux-arm64-musl";
-      version = "0.5.4";
+      version = "0.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.5.4.tgz";
-        sha512 = "P96R8yLT4BKtwYCtomIJE4uIGAh+5I8qLbrTrGamj/6N1D79GgwORW6CllCEnVU9l/Tjkdd+yMJkT9zoACa9gQ==";
+        url = "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.5.7.tgz";
+        sha512 = "3fNhPvA9Kj/L7rwr2Pj1bvxWBLBgqfkqSvt91iUxPbxgfTiSBQh0Tfb9+hkHv2VCTyNQI/vytkOH+4i4DNXCBw==";
       };
     };
-    "@rspack/binding-linux-x64-gnu-0.5.4" = {
+    "@rspack/binding-linux-x64-gnu-0.5.7" = {
       name = "_at_rspack_slash_binding-linux-x64-gnu";
       packageName = "@rspack/binding-linux-x64-gnu";
-      version = "0.5.4";
+      version = "0.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.5.4.tgz";
-        sha512 = "/EjM7CkALS7uUF0laVp+wtOICrX2sR5gy4liIYVHKDLu+b4PGRtEQvubrDxikkzPpOYRvF38R7OBMUOJBuBW7A==";
+        url = "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.5.7.tgz";
+        sha512 = "y/GnXt1hhbKSqzBSy+ALWwievlejQhIIF8FPXL1kKFh60zl7DE+iYHSJ128jIJiph9dQkBnHw0ABJ5D+vbSqdA==";
       };
     };
-    "@rspack/binding-linux-x64-musl-0.5.4" = {
+    "@rspack/binding-linux-x64-musl-0.5.7" = {
       name = "_at_rspack_slash_binding-linux-x64-musl";
       packageName = "@rspack/binding-linux-x64-musl";
-      version = "0.5.4";
+      version = "0.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-0.5.4.tgz";
-        sha512 = "dMT9QW4IZ7IGzczsOmzdpGf84IzIecvitSwj7DnulRkxj3++IWLAo80+HDtgn+nPm+1gNVFb11wg5L9x+VjFXw==";
+        url = "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-0.5.7.tgz";
+        sha512 = "US/FUv6cvbxbe4nymINwer/EQTvGEgCaAIrvKuAP0yAfK0eyqIHYZj/zCBM2qOS69Mpc2FWVMC/ftRyCvAz/xw==";
       };
     };
-    "@rspack/binding-win32-arm64-msvc-0.5.4" = {
+    "@rspack/binding-win32-arm64-msvc-0.5.7" = {
       name = "_at_rspack_slash_binding-win32-arm64-msvc";
       packageName = "@rspack/binding-win32-arm64-msvc";
-      version = "0.5.4";
+      version = "0.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.5.4.tgz";
-        sha512 = "SsnOqWRw5VQnbz/63wtKsoyj6lfUpQQZyFWfQAMsNt8suIauWI/kf3QLWL/vmBX5Q24Sq16Kl5cMIjxAIJQfiQ==";
+        url = "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.5.7.tgz";
+        sha512 = "g7NWXa5EGvh6j1VPXGOFaWuOVxdPYYLh3wpUl46Skrd6qFZKB2r+yNhuXo6lqezwYvbtHEDrmFOHF2S6epXO5g==";
       };
     };
-    "@rspack/binding-win32-ia32-msvc-0.5.4" = {
+    "@rspack/binding-win32-ia32-msvc-0.5.7" = {
       name = "_at_rspack_slash_binding-win32-ia32-msvc";
       packageName = "@rspack/binding-win32-ia32-msvc";
-      version = "0.5.4";
+      version = "0.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.5.4.tgz";
-        sha512 = "xLlUHn712WhnWN40JeljQCiWBIRd/meMRKSEqTJJdZfNwozd4cZUbq5rxexX6HNjZvkwLACpATDotPVfCKPjbQ==";
+        url = "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.5.7.tgz";
+        sha512 = "5Udt4pYpPSd1wlbVKTdWzjha8oV+FQ/EXILHhoS9G7l9rbpqhMs6oIqAgEavQS3t6fKtQU837b+MSBNprudTtw==";
       };
     };
-    "@rspack/binding-win32-x64-msvc-0.5.4" = {
+    "@rspack/binding-win32-x64-msvc-0.5.7" = {
       name = "_at_rspack_slash_binding-win32-x64-msvc";
       packageName = "@rspack/binding-win32-x64-msvc";
-      version = "0.5.4";
+      version = "0.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.5.4.tgz";
-        sha512 = "33IBq3yuJTyUKhTGbPwP/kvSf58wpOCBdPvye+ExNSw0uEVwXMs2AqDWDnbBPtZjP8DVN/zu0EoeLhYk9fwkYg==";
+        url = "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.5.7.tgz";
+        sha512 = "tB/SB27BBDVV0+GpEUHkl2uanCP4Jk/hlnbvl5u6lSGcIxCFm+da4OsyiGDRE24bSEdMc91dmyWVlx5425je+A==";
       };
     };
-    "@rspack/core-0.5.4" = {
+    "@rspack/core-0.5.7" = {
       name = "_at_rspack_slash_core";
       packageName = "@rspack/core";
-      version = "0.5.4";
+      version = "0.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rspack/core/-/core-0.5.4.tgz";
-        sha512 = "3yxOllEC93gf4pNiLlgtzE8dPo0QV2naQY24gAPk+EoWlwpmR6p1r7ZdD53etFZPGB4hMm78J/zgwx8jy1TRsw==";
+        url = "https://registry.npmjs.org/@rspack/core/-/core-0.5.7.tgz";
+        sha512 = "gUF0PcanPrC2cVfFA4e+qmG66X7FkEKlRbnaUfB4LKw9JQuwiMOXCAtrBdveDjB89KE/3cw/nuYVQwd106uqWA==";
       };
     };
-    "@rushstack/heft-config-file-0.14.7" = {
+    "@rushstack/heft-config-file-0.14.14" = {
       name = "_at_rushstack_slash_heft-config-file";
       packageName = "@rushstack/heft-config-file";
-      version = "0.14.7";
+      version = "0.14.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/heft-config-file/-/heft-config-file-0.14.7.tgz";
-        sha512 = "yfYCLKBEIS7J2M2QIab1Sdqkj85MqcNARPN8Q+lVN1jy05YGX/LiqevvUrFGiH0zJUP3qBp2nS2LCdm7l+N55g==";
+        url = "https://registry.npmjs.org/@rushstack/heft-config-file/-/heft-config-file-0.14.14.tgz";
+        sha512 = "3DolQTSw7GTq3GtIPgTAL9bkuNxy2Z3niUN9MAgYxNla0Bi6d2SDRjTnDirLbasRhU8T/9AbGuiLwExiBnQ3sA==";
       };
     };
-    "@rushstack/node-core-library-3.64.2" = {
+    "@rushstack/node-core-library-4.0.2" = {
       name = "_at_rushstack_slash_node-core-library";
       packageName = "@rushstack/node-core-library";
-      version = "3.64.2";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.64.2.tgz";
-        sha512 = "n1S2VYEklONiwKpUyBq/Fym6yAsfsCXrqFabuOMcCuj4C+zW+HyaspSHXJCKqkMxfjviwe/c9+DUqvRWIvSN9Q==";
+        url = "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-4.0.2.tgz";
+        sha512 = "hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==";
       };
     };
-    "@rushstack/package-deps-hash-4.1.21" = {
+    "@rushstack/package-deps-hash-4.1.38" = {
       name = "_at_rushstack_slash_package-deps-hash";
       packageName = "@rushstack/package-deps-hash";
-      version = "4.1.21";
+      version = "4.1.38";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/package-deps-hash/-/package-deps-hash-4.1.21.tgz";
-        sha512 = "sE0mXl/OVwF0P8mY7pRwim7TbLFFp2bvmsYz7bWlDRkbITpF9yCF+tNc0N6XlhVB7/Jwn0z2vci2jLRCM/k5bg==";
+        url = "https://registry.npmjs.org/@rushstack/package-deps-hash/-/package-deps-hash-4.1.38.tgz";
+        sha512 = "Fdm6JPUefpxLDP/ky4MakPtnSvm1didSt0UnGvDXaFcMdu/xSu+h6+FjIcqY404JKtte2rnrjtxRiSNyS5hoFA==";
       };
     };
-    "@rushstack/package-extractor-0.6.23" = {
+    "@rushstack/package-extractor-0.6.40" = {
       name = "_at_rushstack_slash_package-extractor";
       packageName = "@rushstack/package-extractor";
-      version = "0.6.23";
+      version = "0.6.40";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/package-extractor/-/package-extractor-0.6.23.tgz";
-        sha512 = "ySRr7yLFWwibh7XPqDokMK7N6UAfT+j+34JoP+Ta6oKYcDqFRqW/lbV923wW26rrx7L8lHQOldUDskIssn39dw==";
+        url = "https://registry.npmjs.org/@rushstack/package-extractor/-/package-extractor-0.6.40.tgz";
+        sha512 = "Kx8MH3sGyJZz8Ha6evgy1ymHwMFpY7U/0ttahAf9K45r1HUPL2X86g6UfwBabXV44uAs3I5lgdZCvi+qUEqiWg==";
       };
     };
-    "@rushstack/rig-package-0.5.1" = {
+    "@rushstack/rig-package-0.5.2" = {
       name = "_at_rushstack_slash_rig-package";
       packageName = "@rushstack/rig-package";
-      version = "0.5.1";
+      version = "0.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.1.tgz";
-        sha512 = "pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==";
+        url = "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.2.tgz";
+        sha512 = "mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==";
       };
     };
-    "@rushstack/rush-amazon-s3-build-cache-plugin-5.113.4" = {
+    "@rushstack/rush-amazon-s3-build-cache-plugin-5.117.9" = {
       name = "_at_rushstack_slash_rush-amazon-s3-build-cache-plugin";
       packageName = "@rushstack/rush-amazon-s3-build-cache-plugin";
-      version = "5.113.4";
+      version = "5.117.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/rush-amazon-s3-build-cache-plugin/-/rush-amazon-s3-build-cache-plugin-5.113.4.tgz";
-        sha512 = "ySSyDbWOd0xHGNWYP9zRWB4mqg+deVrZ1LIBL+mIIH8Y+gWIPS4B8C358fDeaylWV+JLx5Lwpp7hRYAVAy465w==";
+        url = "https://registry.npmjs.org/@rushstack/rush-amazon-s3-build-cache-plugin/-/rush-amazon-s3-build-cache-plugin-5.117.9.tgz";
+        sha512 = "1VUCZ0bWQEpKM7hGWnysrohqgOdCqfKtKJ3C6xCtDy9fxQfOm4XKU8eT0+jSH8HbgwgxrWWlAMkDVJTSUIARtA==";
       };
     };
-    "@rushstack/rush-azure-storage-build-cache-plugin-5.113.4" = {
+    "@rushstack/rush-azure-storage-build-cache-plugin-5.117.9" = {
       name = "_at_rushstack_slash_rush-azure-storage-build-cache-plugin";
       packageName = "@rushstack/rush-azure-storage-build-cache-plugin";
-      version = "5.113.4";
+      version = "5.117.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/rush-azure-storage-build-cache-plugin/-/rush-azure-storage-build-cache-plugin-5.113.4.tgz";
-        sha512 = "9Aw8u/I3ojl68Ym1QdFX6XXuL645LCKZXLu7DFNHFSDHxV1f+X7fbpMERTTdF1EbZ0HAWKww+OXaiSIfyBk4CA==";
+        url = "https://registry.npmjs.org/@rushstack/rush-azure-storage-build-cache-plugin/-/rush-azure-storage-build-cache-plugin-5.117.9.tgz";
+        sha512 = "MNbNu81mElwqRzEFz08tNAYAjOI0bynsum5CsK5fakzWNbXlvFnHGKO/AzLvzUwYJO+96Awq37K4WPHPfUGHsA==";
       };
     };
-    "@rushstack/rush-http-build-cache-plugin-5.113.4" = {
+    "@rushstack/rush-http-build-cache-plugin-5.117.9" = {
       name = "_at_rushstack_slash_rush-http-build-cache-plugin";
       packageName = "@rushstack/rush-http-build-cache-plugin";
-      version = "5.113.4";
+      version = "5.117.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/rush-http-build-cache-plugin/-/rush-http-build-cache-plugin-5.113.4.tgz";
-        sha512 = "CzrUrCr7csEQ2Hy/mfNdNz5akJsDtF335bJr4AC1gbxUGnOExCUnsry7zVexA/BtLVARScZMLbUF4p+Y/M4a2g==";
+        url = "https://registry.npmjs.org/@rushstack/rush-http-build-cache-plugin/-/rush-http-build-cache-plugin-5.117.9.tgz";
+        sha512 = "Bv1rM6dqE+HkXBm4BlwIKIOkPD1yg3qce4pqszDwmadTCS1ZY0KM3eEKkOeSuclNibl4PUxhvRy8WLnTNwRHYw==";
       };
     };
-    "@rushstack/rush-sdk-5.113.4" = {
+    "@rushstack/rush-sdk-5.117.9" = {
       name = "_at_rushstack_slash_rush-sdk";
       packageName = "@rushstack/rush-sdk";
-      version = "5.113.4";
+      version = "5.117.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/rush-sdk/-/rush-sdk-5.113.4.tgz";
-        sha512 = "2BdUJGWTcDPuDKHrPvo2UxmfSBriVcW4P6dbCNwAdIgOa+OmiloPZx0sBKPLN5NPonxnRR2747FSMbXREVDGYQ==";
+        url = "https://registry.npmjs.org/@rushstack/rush-sdk/-/rush-sdk-5.117.9.tgz";
+        sha512 = "8JjYIdUUPf57YtydlnedzEIa6+2l3nEI62VY7AyXxp3sG1yVzYUDafCOndISOCaA4HJD+sM482OS3DzEOLUPZg==";
       };
     };
-    "@rushstack/stream-collator-4.1.21" = {
+    "@rushstack/stream-collator-4.1.38" = {
       name = "_at_rushstack_slash_stream-collator";
       packageName = "@rushstack/stream-collator";
-      version = "4.1.21";
+      version = "4.1.38";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/stream-collator/-/stream-collator-4.1.21.tgz";
-        sha512 = "C6WNcdT9RDYKqwiDHLjM4WLqJZHazyxnW8YvdtoaQi4MiQztbI5B+q8VvpifirmHp7z/GAGO8qrWtJXXgOLCyw==";
+        url = "https://registry.npmjs.org/@rushstack/stream-collator/-/stream-collator-4.1.38.tgz";
+        sha512 = "SbncDR+7eSU+lWwH+4TMnXNYUlcqmF1o9bFYKRb0f0R6Q3mr/TMWMlr5+qzfU9ilDorE0H4tD7tTB6olYv/FfQ==";
       };
     };
-    "@rushstack/terminal-0.7.20" = {
+    "@rushstack/terminal-0.10.0" = {
       name = "_at_rushstack_slash_terminal";
       packageName = "@rushstack/terminal";
-      version = "0.7.20";
+      version = "0.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.7.20.tgz";
-        sha512 = "e23GExH43r1VSpcudhvXNlatjDn/jZiajaW3Bs/Nd9wyRPsWxs1b+6iEFdZSDoBDRwAKxrSv96no9qCszOSmkQ==";
+        url = "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.10.0.tgz";
+        sha512 = "UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==";
       };
     };
-    "@rushstack/ts-command-line-4.17.1" = {
+    "@rushstack/ts-command-line-4.19.1" = {
       name = "_at_rushstack_slash_ts-command-line";
       packageName = "@rushstack/ts-command-line";
-      version = "4.17.1";
+      version = "4.19.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.17.1.tgz";
-        sha512 = "2jweO1O57BYP5qdBGl6apJLB+aRIn5ccIRTPDyULh0KMwVzFqWtw6IZWt1qtUoZD/pD2RNkIOosH6Cq45rIYeg==";
+        url = "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.19.1.tgz";
+        sha512 = "J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==";
       };
     };
     "@samverschueren/stream-to-observable-0.3.1" = {
@@ -9391,13 +9373,13 @@ let
         sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@schematics/angular-17.2.0" = {
+    "@schematics/angular-17.3.0" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "17.2.0";
+      version = "17.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-17.2.0.tgz";
-        sha512 = "k5SisAPTRXxP2WVjWHgQl2sQkaAkUiOZJrHhTmUghTowULN2eIiW+1SSdNBFCbv+qkl276NfavOi22j+C7uaKQ==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-17.3.0.tgz";
+        sha512 = "QqugP4Uyxk966VaUb/Jk5LQ5rE1BV4v2TmniPZtN3GZ6MDkpvPnFvlysvoq6y+7uiRhCLiT1DsBIwc9vXz3vWA==";
       };
     };
     "@scure/base-1.1.5" = {
@@ -9454,157 +9436,112 @@ let
         sha512 = "P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==";
       };
     };
-    "@sentry-internal/tracing-7.64.0" = {
+    "@sentry-internal/tracing-7.104.0" = {
       name = "_at_sentry-internal_slash_tracing";
       packageName = "@sentry-internal/tracing";
-      version = "7.64.0";
+      version = "7.104.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.64.0.tgz";
-        sha512 = "1XE8W6ki7hHyBvX9hfirnGkKDBKNq3bDJyXS86E0bYVDl94nvbRM9BD9DHsCFetqYkVm1yDGEK+6aUVs4CztoQ==";
+        url = "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.104.0.tgz";
+        sha512 = "2z7OijM1J5ndJUiJJElC3iH9qb/Eb8eYm2v8oJhM8WVdc5uCKfrQuYHNgGOnmY2FOCfEUlTmMQGpDw7DJ67L5w==";
       };
     };
-    "@sentry-internal/tracing-7.91.0" = {
+    "@sentry-internal/tracing-7.107.0" = {
       name = "_at_sentry-internal_slash_tracing";
       packageName = "@sentry-internal/tracing";
-      version = "7.91.0";
+      version = "7.107.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.91.0.tgz";
-        sha512 = "JH5y6gs6BS0its7WF2DhySu7nkhPDfZcdpAXldxzIlJpqFkuwQKLU5nkYJpiIyZz1NHYYtW5aum2bV2oCOdDRA==";
+        url = "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.107.0.tgz";
+        sha512 = "le9wM8+OHBbq7m/8P7JUJ1UhSPIty+Z/HmRXc5Z64ODZcOwFV6TmDpYx729IXDdz36XUKmeI+BeM7yQdTTZPfQ==";
       };
     };
-    "@sentry-internal/tracing-7.94.1" = {
-      name = "_at_sentry-internal_slash_tracing";
-      packageName = "@sentry-internal/tracing";
-      version = "7.94.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.94.1.tgz";
-        sha512 = "znxCdrz7tPXm9Bwoe46PW72Zr0Iv7bXT6+b2LNg5fxWiCQVBbQFrMuVvtXEmHxeRRJVEgTh/4TdulB7wrtQIUQ==";
-      };
-    };
-    "@sentry/core-7.64.0" = {
-      name = "_at_sentry_slash_core";
-      packageName = "@sentry/core";
-      version = "7.64.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/core/-/core-7.64.0.tgz";
-        sha512 = "IzmEyl5sNG7NyEFiyFHEHC+sizsZp9MEw1+RJRLX6U5RITvcsEgcajSkHQFafaBPzRrcxZMdm47Cwhl212LXcw==";
-      };
-    };
-    "@sentry/core-7.91.0" = {
+    "@sentry/core-7.104.0" = {
       name = "_at_sentry_slash_core";
       packageName = "@sentry/core";
-      version = "7.91.0";
+      version = "7.104.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/core/-/core-7.91.0.tgz";
-        sha512 = "tu+gYq4JrTdrR+YSh5IVHF0fJi/Pi9y0HZ5H9HnYy+UMcXIotxf6hIEaC6ZKGeLWkGXffz2gKpQLe/g6vy/lPA==";
+        url = "https://registry.npmjs.org/@sentry/core/-/core-7.104.0.tgz";
+        sha512 = "XPndD6IGQGd07/EntvYVzOWQUo/Gd7L3DwYFeEKeBv6ByWjbBNmVZFRhU0GPPsCHKyW9yMU9OO9diLSS4ijsRg==";
       };
     };
-    "@sentry/core-7.94.1" = {
+    "@sentry/core-7.107.0" = {
       name = "_at_sentry_slash_core";
       packageName = "@sentry/core";
-      version = "7.94.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/core/-/core-7.94.1.tgz";
-        sha512 = "4sjiMnkbGpv9O98YHVZe7fHNwwdYl+zLoCOoEOadtrJ1EYYvnK/MSixN2HJF7g/0s22xd4xY958QyNIRVR+Iiw==";
-      };
-    };
-    "@sentry/node-7.64.0" = {
-      name = "_at_sentry_slash_node";
-      packageName = "@sentry/node";
-      version = "7.64.0";
+      version = "7.107.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/node/-/node-7.64.0.tgz";
-        sha512 = "wRi0uTnp1WSa83X2yLD49tV9QPzGh5e42IKdIDBiQ7lV9JhLILlyb34BZY1pq6p4dp35yDasDrP3C7ubn7wo6A==";
+        url = "https://registry.npmjs.org/@sentry/core/-/core-7.107.0.tgz";
+        sha512 = "C7ogye6+KPyBi8NVL0P8Rxx3Ur7Td8ufnjxosVy678lqY+dcYPk/HONROrzUFYW5fMKWL4/KYnwP+x9uHnkDmw==";
       };
     };
-    "@sentry/node-7.91.0" = {
+    "@sentry/node-7.104.0" = {
       name = "_at_sentry_slash_node";
       packageName = "@sentry/node";
-      version = "7.91.0";
+      version = "7.104.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/node/-/node-7.91.0.tgz";
-        sha512 = "hTIfSQxD7L+AKIqyjoq8CWBRkEQrrMZmA3GSZgPI5JFWBHgO0HBo5TH/8TU81oEJh6kqqHAl2ObMhmcnaFqlzg==";
+        url = "https://registry.npmjs.org/@sentry/node/-/node-7.104.0.tgz";
+        sha512 = "Ixt8qg6IV8gywi4+H1cAtQeglAAww2nwLHybCxAvnu3czdF8w7ifF+o5BY1FmO5UYVCAfr8vEb+XG4CuRrFb7g==";
       };
     };
-    "@sentry/node-7.94.1" = {
+    "@sentry/node-7.107.0" = {
       name = "_at_sentry_slash_node";
       packageName = "@sentry/node";
-      version = "7.94.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/node/-/node-7.94.1.tgz";
-        sha512 = "30nyrfVbY1vNoWg5ptGW+soykU532VvKLuXiKty3SKEXjp5bv23JrCcVtuwp9KrW4josHOJbxZUqeNni85YplQ==";
-      };
-    };
-    "@sentry/types-7.64.0" = {
-      name = "_at_sentry_slash_types";
-      packageName = "@sentry/types";
-      version = "7.64.0";
+      version = "7.107.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/types/-/types-7.64.0.tgz";
-        sha512 = "LqjQprWXjUFRmzIlUjyA+KL+38elgIYmAeoDrdyNVh8MK5IC1W2Lh1Q87b4yOiZeMiIhIVNBd7Ecoh2rodGrGA==";
+        url = "https://registry.npmjs.org/@sentry/node/-/node-7.107.0.tgz";
+        sha512 = "UZXkG7uThT2YyPW8AOSKRXp1LbVcBHufa4r1XAwBukA2FKO6HHJPjMUgY6DYVQ6k+BmA56CNfVjYrdLbyjBYYA==";
       };
     };
-    "@sentry/types-7.91.0" = {
+    "@sentry/types-7.104.0" = {
       name = "_at_sentry_slash_types";
       packageName = "@sentry/types";
-      version = "7.91.0";
+      version = "7.104.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/types/-/types-7.91.0.tgz";
-        sha512 = "bcQnb7J3P3equbCUc+sPuHog2Y47yGD2sCkzmnZBjvBT0Z1B4f36fI/5WjyZhTjLSiOdg3F2otwvikbMjmBDew==";
+        url = "https://registry.npmjs.org/@sentry/types/-/types-7.104.0.tgz";
+        sha512 = "5bs0xe0+GZR4QBm9Nrqw59o0sv3kBtCosrZDVxBru/dQbrfnB+/kVorvuM0rV3+coNITTKcKDegSZmK1d2uOGQ==";
       };
     };
-    "@sentry/types-7.94.1" = {
+    "@sentry/types-7.107.0" = {
       name = "_at_sentry_slash_types";
       packageName = "@sentry/types";
-      version = "7.94.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/types/-/types-7.94.1.tgz";
-        sha512 = "A7CdEXFSgGyWv2BT2p9cAvJfb+dypvOtsY8ZvZvdPLUa7kqCV7ndhURUqKjvMBzsL2GParHn3ehDTl2eVc7pvA==";
-      };
-    };
-    "@sentry/utils-7.64.0" = {
-      name = "_at_sentry_slash_utils";
-      packageName = "@sentry/utils";
-      version = "7.64.0";
+      version = "7.107.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/utils/-/utils-7.64.0.tgz";
-        sha512 = "HRlM1INzK66Gt+F4vCItiwGKAng4gqzCR4C5marsL3qv6SrKH98dQnCGYgXluSWaaa56h97FRQu7TxCk6jkSvQ==";
+        url = "https://registry.npmjs.org/@sentry/types/-/types-7.107.0.tgz";
+        sha512 = "H7qcPjPSUWHE/Zf5bR1EE24G0pGVuJgrSx8Tvvl5nKEepswMYlbXHRVSDN0gTk/E5Z7cqf+hUBOpkQgZyps77w==";
       };
     };
-    "@sentry/utils-7.91.0" = {
+    "@sentry/utils-7.104.0" = {
       name = "_at_sentry_slash_utils";
       packageName = "@sentry/utils";
-      version = "7.91.0";
+      version = "7.104.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/utils/-/utils-7.91.0.tgz";
-        sha512 = "fvxjrEbk6T6Otu++Ax9ntlQ0sGRiwSC179w68aC3u26Wr30FAIRKqHTCCdc2jyWk7Gd9uWRT/cq+g8NG/8BfSg==";
+        url = "https://registry.npmjs.org/@sentry/utils/-/utils-7.104.0.tgz";
+        sha512 = "ZVg+xZirI9DlOi0NegNVocswdh/8p6QkzlQzDQY2LP2CC6JQdmwi64o0S4rPH4YIHNKQJTpIjduoxeKgd1EO5g==";
       };
     };
-    "@sentry/utils-7.94.1" = {
+    "@sentry/utils-7.107.0" = {
       name = "_at_sentry_slash_utils";
       packageName = "@sentry/utils";
-      version = "7.94.1";
+      version = "7.107.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sentry/utils/-/utils-7.94.1.tgz";
-        sha512 = "gQ2EaMpUU1gGH3S+iqpog9gkXbCo8tlhGYA9a5FUtEtER3D3OAlp8dGFwClwzWDAwzjdLT1+X55zmEptU1cP/A==";
+        url = "https://registry.npmjs.org/@sentry/utils/-/utils-7.107.0.tgz";
+        sha512 = "C6PbN5gHh73MRHohnReeQ60N8rrLYa9LciHue3Ru2290eSThg4CzsPnx4SzkGpkSeVlhhptKtKZ+hp/ha3iVuw==";
       };
     };
-    "@shopify/cli-kit-3.56.1" = {
+    "@shopify/cli-kit-3.57.1" = {
       name = "_at_shopify_slash_cli-kit";
       packageName = "@shopify/cli-kit";
-      version = "3.56.1";
+      version = "3.57.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@shopify/cli-kit/-/cli-kit-3.56.1.tgz";
-        sha512 = "QDHcUODGA33ch0f3uMqALv+qKUK4kXqH1nl1XlRXqrFEx+l5xpU+BXWRn4cW5SsHWU7xiVwlf3hnrHQDrGMLdw==";
+        url = "https://registry.npmjs.org/@shopify/cli-kit/-/cli-kit-3.57.1.tgz";
+        sha512 = "DppI6F/q/QNzt+9SUZsumEnLLPs/IYZlDZJPomlgwN3h0i5qjGcGUihURhLPl8l1oUquwwGL4X9CLgoRVX4Nww==";
       };
     };
-    "@shopify/plugin-did-you-mean-3.56.1" = {
+    "@shopify/plugin-did-you-mean-3.57.1" = {
       name = "_at_shopify_slash_plugin-did-you-mean";
       packageName = "@shopify/plugin-did-you-mean";
-      version = "3.56.1";
+      version = "3.57.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@shopify/plugin-did-you-mean/-/plugin-did-you-mean-3.56.1.tgz";
-        sha512 = "Pn7MtQzMFucFWUedXu1wapaki73KMYjzG4xRLtru37WYaWlXazLmhL1G1ywjMBytukrgNIdQ3yCHPvQp1GIuoQ==";
+        url = "https://registry.npmjs.org/@shopify/plugin-did-you-mean/-/plugin-did-you-mean-3.57.1.tgz";
+        sha512 = "4CA6qf+Rvf6rZrtqia+oCEC6oPs+NW+12IRvXzzrvmF/O9OTsQFlsOthhGuIT/BmnWUt2fDTl3d3bjNInQpWXw==";
       };
     };
     "@sideway/address-4.1.5" = {
@@ -9814,463 +9751,463 @@ let
         sha512 = "TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==";
       };
     };
-    "@sindresorhus/merge-streams-2.2.1" = {
+    "@sindresorhus/merge-streams-2.3.0" = {
       name = "_at_sindresorhus_slash_merge-streams";
       packageName = "@sindresorhus/merge-streams";
-      version = "2.2.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.2.1.tgz";
-        sha512 = "255V7MMIKw6aQ43Wbqp9HZ+VHn6acddERTLiiLnlcPLU9PdTq9Aijl12oklAgUEblLWye+vHLzmqBx6f2TGcZw==";
+        url = "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz";
+        sha512 = "LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==";
       };
     };
-    "@smithy/abort-controller-2.1.1" = {
+    "@smithy/abort-controller-2.2.0" = {
       name = "_at_smithy_slash_abort-controller";
       packageName = "@smithy/abort-controller";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.1.1.tgz";
-        sha512 = "1+qdrUqLhaALYL0iOcN43EP6yAXXQ2wWZ6taf4S2pNGowmOc5gx+iMQv+E42JizNJjB0+gEadOXeV1Bf7JWL1Q==";
+        url = "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.2.0.tgz";
+        sha512 = "wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==";
       };
     };
-    "@smithy/chunked-blob-reader-2.1.1" = {
+    "@smithy/chunked-blob-reader-2.2.0" = {
       name = "_at_smithy_slash_chunked-blob-reader";
       packageName = "@smithy/chunked-blob-reader";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.1.1.tgz";
-        sha512 = "NjNFCKxC4jVvn+lUr3Yo4/PmUJj3tbyqH6GNHueyTGS5Q27vlEJ1MkNhUDV8QGxJI7Bodnc2pD18lU2zRfhHlQ==";
+        url = "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.2.0.tgz";
+        sha512 = "3GJNvRwXBGdkDZZOGiziVYzDpn4j6zfyULHMDKAGIUo72yHALpE9CbhfQp/XcLNVoc1byfMpn6uW5H2BqPjgaQ==";
       };
     };
-    "@smithy/chunked-blob-reader-native-2.1.1" = {
+    "@smithy/chunked-blob-reader-native-2.2.0" = {
       name = "_at_smithy_slash_chunked-blob-reader-native";
       packageName = "@smithy/chunked-blob-reader-native";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.1.1.tgz";
-        sha512 = "zNW+43dltfNMUrBEYLMWgI8lQr0uhtTcUyxkgC9EP4j17WREzgSFMPUFVrVV6Rc2+QtWERYjb4tzZnQGa7R9fQ==";
+        url = "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.2.0.tgz";
+        sha512 = "VNB5+1oCgX3Fzs072yuRsUoC2N4Zg/LJ11DTxX3+Qu+Paa6AmbIF0E9sc2wthz9Psrk/zcOlTCyuposlIhPjZQ==";
       };
     };
-    "@smithy/config-resolver-2.1.1" = {
+    "@smithy/config-resolver-2.2.0" = {
       name = "_at_smithy_slash_config-resolver";
       packageName = "@smithy/config-resolver";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.1.1.tgz";
-        sha512 = "lxfLDpZm+AWAHPFZps5JfDoO9Ux1764fOgvRUBpHIO8HWHcSN1dkgsago1qLRVgm1BZ8RCm8cgv99QvtaOWIhw==";
+        url = "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.2.0.tgz";
+        sha512 = "fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==";
       };
     };
-    "@smithy/core-1.3.2" = {
+    "@smithy/core-1.4.0" = {
       name = "_at_smithy_slash_core";
       packageName = "@smithy/core";
-      version = "1.3.2";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/core/-/core-1.3.2.tgz";
-        sha512 = "tYDmTp0f2TZVE18jAOH1PnmkngLQ+dOGUlMd1u67s87ieueNeyqhja6z/Z4MxhybEiXKOWFOmGjfTZWFxljwJw==";
+        url = "https://registry.npmjs.org/@smithy/core/-/core-1.4.0.tgz";
+        sha512 = "uu9ZDI95Uij4qk+L6kyFjdk11zqBkcJ3Lv0sc6jZrqHvLyr0+oeekD3CnqMafBn/5PRI6uv6ulW3kNLRBUHeVw==";
       };
     };
-    "@smithy/credential-provider-imds-2.2.1" = {
+    "@smithy/credential-provider-imds-2.3.0" = {
       name = "_at_smithy_slash_credential-provider-imds";
       packageName = "@smithy/credential-provider-imds";
-      version = "2.2.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.2.1.tgz";
-        sha512 = "7XHjZUxmZYnONheVQL7j5zvZXga+EWNgwEAP6OPZTi7l8J4JTeNh9aIOfE5fKHZ/ee2IeNOh54ZrSna+Vc6TFA==";
+        url = "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz";
+        sha512 = "BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==";
       };
     };
-    "@smithy/eventstream-codec-2.1.1" = {
+    "@smithy/eventstream-codec-2.2.0" = {
       name = "_at_smithy_slash_eventstream-codec";
       packageName = "@smithy/eventstream-codec";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.1.1.tgz";
-        sha512 = "E8KYBxBIuU4c+zrpR22VsVrOPoEDzk35bQR3E+xm4k6Pa6JqzkDOdMyf9Atac5GPNKHJBdVaQ4JtjdWX2rl/nw==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.2.0.tgz";
+        sha512 = "8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw==";
       };
     };
-    "@smithy/eventstream-serde-browser-2.1.1" = {
+    "@smithy/eventstream-serde-browser-2.2.0" = {
       name = "_at_smithy_slash_eventstream-serde-browser";
       packageName = "@smithy/eventstream-serde-browser";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.1.1.tgz";
-        sha512 = "JvEdCmGlZUay5VtlT8/kdR6FlvqTDUiJecMjXsBb0+k1H/qc9ME5n2XKPo8q/MZwEIA1GmGgYMokKGjVvMiDow==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.2.0.tgz";
+        sha512 = "UaPf8jKbcP71BGiO0CdeLmlg+RhWnlN8ipsMSdwvqBFigl5nil3rHOI/5GE3tfiuX8LvY5Z9N0meuU7Rab7jWw==";
       };
     };
-    "@smithy/eventstream-serde-config-resolver-2.1.1" = {
+    "@smithy/eventstream-serde-config-resolver-2.2.0" = {
       name = "_at_smithy_slash_eventstream-serde-config-resolver";
       packageName = "@smithy/eventstream-serde-config-resolver";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.1.1.tgz";
-        sha512 = "EqNqXYp3+dk//NmW3NAgQr9bEQ7fsu/CcxQmTiq07JlaIcne/CBWpMZETyXm9w5LXkhduBsdXdlMscfDUDn2fA==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.2.0.tgz";
+        sha512 = "RHhbTw/JW3+r8QQH7PrganjNCiuiEZmpi6fYUAetFfPLfZ6EkiA08uN3EFfcyKubXQxOwTeJRZSQmDDCdUshaA==";
       };
     };
-    "@smithy/eventstream-serde-node-2.1.1" = {
+    "@smithy/eventstream-serde-node-2.2.0" = {
       name = "_at_smithy_slash_eventstream-serde-node";
       packageName = "@smithy/eventstream-serde-node";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.1.1.tgz";
-        sha512 = "LF882q/aFidFNDX7uROAGxq3H0B7rjyPkV6QDn6/KDQ+CG7AFkRccjxRf1xqajq/Pe4bMGGr+VKAaoF6lELIQw==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.2.0.tgz";
+        sha512 = "zpQMtJVqCUMn+pCSFcl9K/RPNtQE0NuMh8sKpCdEHafhwRsjP50Oq/4kMmvxSRy6d8Jslqd8BLvDngrUtmN9iA==";
       };
     };
-    "@smithy/eventstream-serde-universal-2.1.1" = {
+    "@smithy/eventstream-serde-universal-2.2.0" = {
       name = "_at_smithy_slash_eventstream-serde-universal";
       packageName = "@smithy/eventstream-serde-universal";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.1.1.tgz";
-        sha512 = "LR0mMT+XIYTxk4k2fIxEA1BPtW3685QlqufUEUAX1AJcfFfxNDKEvuCRZbO8ntJb10DrIFVJR9vb0MhDCi0sAQ==";
+        url = "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.2.0.tgz";
+        sha512 = "pvoe/vvJY0mOpuF84BEtyZoYfbehiFj8KKWk1ds2AT0mTLYFVs+7sBJZmioOFdBXKd48lfrx1vumdPdmGlCLxA==";
       };
     };
-    "@smithy/fetch-http-handler-2.4.1" = {
+    "@smithy/fetch-http-handler-2.5.0" = {
       name = "_at_smithy_slash_fetch-http-handler";
       packageName = "@smithy/fetch-http-handler";
-      version = "2.4.1";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.4.1.tgz";
-        sha512 = "VYGLinPsFqH68lxfRhjQaSkjXM7JysUOJDTNjHBuN/ykyRb2f1gyavN9+VhhPTWCy32L4yZ2fdhpCs/nStEicg==";
+        url = "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz";
+        sha512 = "BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==";
       };
     };
-    "@smithy/hash-blob-browser-2.1.1" = {
+    "@smithy/hash-blob-browser-2.2.0" = {
       name = "_at_smithy_slash_hash-blob-browser";
       packageName = "@smithy/hash-blob-browser";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.1.1.tgz";
-        sha512 = "jizu1+2PAUjiGIfRtlPEU8Yo6zn+d78ti/ZHDesdf1SUn2BuZW433JlPoCOLH3dBoEEvTgLvQ8tUGSoTTALA+A==";
+        url = "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.2.0.tgz";
+        sha512 = "SGPoVH8mdXBqrkVCJ1Hd1X7vh1zDXojNN1yZyZTZsCno99hVue9+IYzWDjq/EQDDXxmITB0gBmuyPh8oAZSTcg==";
       };
     };
-    "@smithy/hash-node-2.1.1" = {
+    "@smithy/hash-node-2.2.0" = {
       name = "_at_smithy_slash_hash-node";
       packageName = "@smithy/hash-node";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.1.1.tgz";
-        sha512 = "Qhoq0N8f2OtCnvUpCf+g1vSyhYQrZjhSwvJ9qvR8BUGOtTXiyv2x1OD2e6jVGmlpC4E4ax1USHoyGfV9JFsACg==";
+        url = "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.2.0.tgz";
+        sha512 = "zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==";
       };
     };
-    "@smithy/hash-stream-node-2.1.1" = {
+    "@smithy/hash-stream-node-2.2.0" = {
       name = "_at_smithy_slash_hash-stream-node";
       packageName = "@smithy/hash-stream-node";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.1.1.tgz";
-        sha512 = "VgDaKcfCy0iHcmtAZgZ3Yw9g37Gkn2JsQiMtFQXUh8Wmo3GfNgDwLOtdhJ272pOT7DStzpe9cNr+eV5Au8KfQA==";
+        url = "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.2.0.tgz";
+        sha512 = "aT+HCATOSRMGpPI7bi7NSsTNVZE/La9IaxLXWoVAYMxHT5hGO3ZOGEMZQg8A6nNL+pdFGtZQtND1eoY084HgHQ==";
       };
     };
-    "@smithy/invalid-dependency-2.1.1" = {
+    "@smithy/invalid-dependency-2.2.0" = {
       name = "_at_smithy_slash_invalid-dependency";
       packageName = "@smithy/invalid-dependency";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.1.1.tgz";
-        sha512 = "7WTgnKw+VPg8fxu2v9AlNOQ5yaz6RA54zOVB4f6vQuR0xFKd+RzlCpt0WidYTsye7F+FYDIaS/RnJW4pxjNInw==";
+        url = "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz";
+        sha512 = "nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==";
       };
     };
-    "@smithy/is-array-buffer-2.1.1" = {
+    "@smithy/is-array-buffer-2.2.0" = {
       name = "_at_smithy_slash_is-array-buffer";
       packageName = "@smithy/is-array-buffer";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.1.1.tgz";
-        sha512 = "xozSQrcUinPpNPNPds4S7z/FakDTh1MZWtRP/2vQtYB/u3HYrX2UXuZs+VhaKBd6Vc7g2XPr2ZtwGBNDN6fNKQ==";
+        url = "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz";
+        sha512 = "GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==";
       };
     };
-    "@smithy/md5-js-2.1.1" = {
+    "@smithy/md5-js-2.2.0" = {
       name = "_at_smithy_slash_md5-js";
       packageName = "@smithy/md5-js";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.1.1.tgz";
-        sha512 = "L3MbIYBIdLlT+MWTYrdVSv/dow1+6iZ1Ad7xS0OHxTTs17d753ZcpOV4Ro7M7tRAVWML/sg2IAp/zzCb6aAttg==";
+        url = "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.2.0.tgz";
+        sha512 = "M26XTtt9IIusVMOWEAhIvFIr9jYj4ISPPGJROqw6vXngO3IYJCnVVSMFn4Tx1rUTG5BiKJNg9u2nxmBiZC5IlQ==";
       };
     };
-    "@smithy/middleware-content-length-2.1.1" = {
+    "@smithy/middleware-content-length-2.2.0" = {
       name = "_at_smithy_slash_middleware-content-length";
       packageName = "@smithy/middleware-content-length";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.1.1.tgz";
-        sha512 = "rSr9ezUl9qMgiJR0UVtVOGEZElMdGFyl8FzWEF5iEKTlcWxGr2wTqGfDwtH3LAB7h+FPkxqv4ZU4cpuCN9Kf/g==";
+        url = "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz";
+        sha512 = "5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==";
       };
     };
-    "@smithy/middleware-endpoint-2.4.1" = {
+    "@smithy/middleware-endpoint-2.5.0" = {
       name = "_at_smithy_slash_middleware-endpoint";
       packageName = "@smithy/middleware-endpoint";
-      version = "2.4.1";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.4.1.tgz";
-        sha512 = "XPZTb1E2Oav60Ven3n2PFx+rX9EDsU/jSTA8VDamt7FXks67ekjPY/XrmmPDQaFJOTUHJNKjd8+kZxVO5Ael4Q==";
+        url = "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.0.tgz";
+        sha512 = "OBhI9ZEAG8Xen0xsFJwwNOt44WE2CWkfYIxTognC8x42Lfsdf0VN/wCMqpdkySMDio/vts10BiovAxQp0T0faA==";
       };
     };
-    "@smithy/middleware-retry-2.1.1" = {
+    "@smithy/middleware-retry-2.2.0" = {
       name = "_at_smithy_slash_middleware-retry";
       packageName = "@smithy/middleware-retry";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.1.1.tgz";
-        sha512 = "eMIHOBTXro6JZ+WWzZWd/8fS8ht5nS5KDQjzhNMHNRcG5FkNTqcKpYhw7TETMYzbLfhO5FYghHy1vqDWM4FLDA==";
+        url = "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.2.0.tgz";
+        sha512 = "PsjDOLpbevgn37yJbawmfVoanru40qVA8UEf2+YA1lvOefmhuhL6ZbKtGsLAWDRnE1OlAmedsbA/htH6iSZjNA==";
       };
     };
-    "@smithy/middleware-serde-2.1.1" = {
+    "@smithy/middleware-serde-2.3.0" = {
       name = "_at_smithy_slash_middleware-serde";
       packageName = "@smithy/middleware-serde";
-      version = "2.1.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.1.1.tgz";
-        sha512 = "D8Gq0aQBeE1pxf3cjWVkRr2W54t+cdM2zx78tNrVhqrDykRA7asq8yVJij1u5NDtKzKqzBSPYh7iW0svUKg76g==";
+        url = "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz";
+        sha512 = "sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==";
       };
     };
-    "@smithy/middleware-stack-2.1.1" = {
+    "@smithy/middleware-stack-2.2.0" = {
       name = "_at_smithy_slash_middleware-stack";
       packageName = "@smithy/middleware-stack";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.1.1.tgz";
-        sha512 = "KPJhRlhsl8CjgGXK/DoDcrFGfAqoqvuwlbxy+uOO4g2Azn1dhH+GVfC3RAp+6PoL5PWPb+vt6Z23FP+Mr6qeCw==";
+        url = "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz";
+        sha512 = "Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==";
       };
     };
-    "@smithy/node-config-provider-2.2.1" = {
+    "@smithy/node-config-provider-2.3.0" = {
       name = "_at_smithy_slash_node-config-provider";
       packageName = "@smithy/node-config-provider";
-      version = "2.2.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.2.1.tgz";
-        sha512 = "epzK3x1xNxA9oJgHQ5nz+2j6DsJKdHfieb+YgJ7ATWxzNcB7Hc+Uya2TUck5MicOPhDV8HZImND7ZOecVr+OWg==";
+        url = "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz";
+        sha512 = "0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==";
       };
     };
-    "@smithy/node-http-handler-2.3.1" = {
+    "@smithy/node-http-handler-2.5.0" = {
       name = "_at_smithy_slash_node-http-handler";
       packageName = "@smithy/node-http-handler";
-      version = "2.3.1";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.3.1.tgz";
-        sha512 = "gLA8qK2nL9J0Rk/WEZSvgin4AppvuCYRYg61dcUo/uKxvMZsMInL5I5ZdJTogOvdfVug3N2dgI5ffcUfS4S9PA==";
+        url = "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz";
+        sha512 = "mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==";
       };
     };
-    "@smithy/property-provider-2.1.1" = {
+    "@smithy/property-provider-2.2.0" = {
       name = "_at_smithy_slash_property-provider";
       packageName = "@smithy/property-provider";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.1.1.tgz";
-        sha512 = "FX7JhhD/o5HwSwg6GLK9zxrMUrGnb3PzNBrcthqHKBc3dH0UfgEAU24xnJ8F0uow5mj17UeBEOI6o3CF2k7Mhw==";
+        url = "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.2.0.tgz";
+        sha512 = "+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==";
       };
     };
-    "@smithy/protocol-http-3.1.1" = {
+    "@smithy/protocol-http-3.3.0" = {
       name = "_at_smithy_slash_protocol-http";
       packageName = "@smithy/protocol-http";
-      version = "3.1.1";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.1.1.tgz";
-        sha512 = "6ZRTSsaXuSL9++qEwH851hJjUA0OgXdQFCs+VDw4tGH256jQ3TjYY/i34N4vd24RV3nrjNsgd1yhb57uMoKbzQ==";
+        url = "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz";
+        sha512 = "Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==";
       };
     };
-    "@smithy/querystring-builder-2.1.1" = {
+    "@smithy/querystring-builder-2.2.0" = {
       name = "_at_smithy_slash_querystring-builder";
       packageName = "@smithy/querystring-builder";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.1.1.tgz";
-        sha512 = "C/ko/CeEa8jdYE4gt6nHO5XDrlSJ3vdCG0ZAc6nD5ZIE7LBp0jCx4qoqp7eoutBu7VrGMXERSRoPqwi1WjCPbg==";
+        url = "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz";
+        sha512 = "L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==";
       };
     };
-    "@smithy/querystring-parser-2.1.1" = {
+    "@smithy/querystring-parser-2.2.0" = {
       name = "_at_smithy_slash_querystring-parser";
       packageName = "@smithy/querystring-parser";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.1.1.tgz";
-        sha512 = "H4+6jKGVhG1W4CIxfBaSsbm98lOO88tpDWmZLgkJpt8Zkk/+uG0FmmqMuCAc3HNM2ZDV+JbErxr0l5BcuIf/XQ==";
+        url = "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz";
+        sha512 = "BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==";
       };
     };
-    "@smithy/service-error-classification-2.1.1" = {
+    "@smithy/service-error-classification-2.1.5" = {
       name = "_at_smithy_slash_service-error-classification";
       packageName = "@smithy/service-error-classification";
-      version = "2.1.1";
+      version = "2.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.1.1.tgz";
-        sha512 = "txEdZxPUgM1PwGvDvHzqhXisrc5LlRWYCf2yyHfvITWioAKat7srQvpjMAvgzf0t6t7j8yHrryXU9xt7RZqFpw==";
+        url = "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz";
+        sha512 = "uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==";
       };
     };
-    "@smithy/shared-ini-file-loader-2.3.1" = {
+    "@smithy/shared-ini-file-loader-2.4.0" = {
       name = "_at_smithy_slash_shared-ini-file-loader";
       packageName = "@smithy/shared-ini-file-loader";
-      version = "2.3.1";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.3.1.tgz";
-        sha512 = "2E2kh24igmIznHLB6H05Na4OgIEilRu0oQpYXo3LCNRrawHAcfDKq9004zJs+sAMt2X5AbY87CUCJ7IpqpSgdw==";
+        url = "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz";
+        sha512 = "WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==";
       };
     };
-    "@smithy/signature-v4-2.1.1" = {
+    "@smithy/signature-v4-2.2.0" = {
       name = "_at_smithy_slash_signature-v4";
       packageName = "@smithy/signature-v4";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.1.1.tgz";
-        sha512 = "Hb7xub0NHuvvQD3YwDSdanBmYukoEkhqBjqoxo+bSdC0ryV9cTfgmNjuAQhTPYB6yeU7hTR+sPRiFMlxqv6kmg==";
+        url = "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.2.0.tgz";
+        sha512 = "+B5TNzj/fRZzVW3z8UUJOkNx15+4E0CLuvJmJUA1JUIZFp3rdJ/M2H5r2SqltaVPXL0oIxv/6YK92T9TsFGbFg==";
       };
     };
-    "@smithy/smithy-client-2.3.1" = {
+    "@smithy/smithy-client-2.5.0" = {
       name = "_at_smithy_slash_smithy-client";
       packageName = "@smithy/smithy-client";
-      version = "2.3.1";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.3.1.tgz";
-        sha512 = "YsTdU8xVD64r2pLEwmltrNvZV6XIAC50LN6ivDopdt+YiF/jGH6PY9zUOu0CXD/d8GMB8gbhnpPsdrjAXHS9QA==";
+        url = "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.5.0.tgz";
+        sha512 = "DDXWHWdimtS3y/Kw1Jo46KQ0ZYsDKcldFynQERUGBPDpkW1lXOTHy491ALHjwfiBQvzsVKVxl5+ocXNIgJuX4g==";
       };
     };
-    "@smithy/types-2.9.1" = {
+    "@smithy/types-2.12.0" = {
       name = "_at_smithy_slash_types";
       packageName = "@smithy/types";
-      version = "2.9.1";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/types/-/types-2.9.1.tgz";
-        sha512 = "vjXlKNXyprDYDuJ7UW5iobdmyDm6g8dDG+BFUncAg/3XJaN45Gy5RWWWUVgrzIK7S4R1KWgIX5LeJcfvSI24bw==";
+        url = "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz";
+        sha512 = "QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==";
       };
     };
-    "@smithy/url-parser-2.1.1" = {
+    "@smithy/url-parser-2.2.0" = {
       name = "_at_smithy_slash_url-parser";
       packageName = "@smithy/url-parser";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.1.1.tgz";
-        sha512 = "qC9Bv8f/vvFIEkHsiNrUKYNl8uKQnn4BdhXl7VzQRP774AwIjiSMMwkbT+L7Fk8W8rzYVifzJNYxv1HwvfBo3Q==";
+        url = "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.2.0.tgz";
+        sha512 = "hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==";
       };
     };
-    "@smithy/util-base64-2.1.1" = {
+    "@smithy/util-base64-2.3.0" = {
       name = "_at_smithy_slash_util-base64";
       packageName = "@smithy/util-base64";
-      version = "2.1.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.1.1.tgz";
-        sha512 = "UfHVpY7qfF/MrgndI5PexSKVTxSZIdz9InghTFa49QOvuu9I52zLPLUHXvHpNuMb1iD2vmc6R+zbv/bdMipR/g==";
+        url = "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.3.0.tgz";
+        sha512 = "s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==";
       };
     };
-    "@smithy/util-body-length-browser-2.1.1" = {
+    "@smithy/util-body-length-browser-2.2.0" = {
       name = "_at_smithy_slash_util-body-length-browser";
       packageName = "@smithy/util-body-length-browser";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.1.1.tgz";
-        sha512 = "ekOGBLvs1VS2d1zM2ER4JEeBWAvIOUKeaFch29UjjJsxmZ/f0L3K3x0dEETgh3Q9bkZNHgT+rkdl/J/VUqSRag==";
+        url = "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz";
+        sha512 = "dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==";
       };
     };
-    "@smithy/util-body-length-node-2.2.1" = {
+    "@smithy/util-body-length-node-2.3.0" = {
       name = "_at_smithy_slash_util-body-length-node";
       packageName = "@smithy/util-body-length-node";
-      version = "2.2.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.2.1.tgz";
-        sha512 = "/ggJG+ta3IDtpNVq4ktmEUtOkH1LW64RHB5B0hcr5ZaWBmo96UX2cIOVbjCqqDickTXqBWZ4ZO0APuaPrD7Abg==";
+        url = "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz";
+        sha512 = "ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==";
       };
     };
-    "@smithy/util-buffer-from-2.1.1" = {
+    "@smithy/util-buffer-from-2.2.0" = {
       name = "_at_smithy_slash_util-buffer-from";
       packageName = "@smithy/util-buffer-from";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.1.1.tgz";
-        sha512 = "clhNjbyfqIv9Md2Mg6FffGVrJxw7bgK7s3Iax36xnfVj6cg0fUG7I4RH0XgXJF8bxi+saY5HR21g2UPKSxVCXg==";
+        url = "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz";
+        sha512 = "IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==";
       };
     };
-    "@smithy/util-config-provider-2.2.1" = {
+    "@smithy/util-config-provider-2.3.0" = {
       name = "_at_smithy_slash_util-config-provider";
       packageName = "@smithy/util-config-provider";
-      version = "2.2.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.2.1.tgz";
-        sha512 = "50VL/tx9oYYcjJn/qKqNy7sCtpD0+s8XEBamIFo4mFFTclKMNp+rsnymD796uybjiIquB7VCB/DeafduL0y2kw==";
+        url = "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz";
+        sha512 = "HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==";
       };
     };
-    "@smithy/util-defaults-mode-browser-2.1.1" = {
+    "@smithy/util-defaults-mode-browser-2.2.0" = {
       name = "_at_smithy_slash_util-defaults-mode-browser";
       packageName = "@smithy/util-defaults-mode-browser";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.1.1.tgz";
-        sha512 = "lqLz/9aWRO6mosnXkArtRuQqqZBhNpgI65YDpww4rVQBuUT7qzKbDLG5AmnQTCiU4rOquaZO/Kt0J7q9Uic7MA==";
+        url = "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.0.tgz";
+        sha512 = "2okTdZaCBvOJszAPU/KSvlimMe35zLOKbQpHhamFJmR7t95HSe0K3C92jQPjKY3PmDBD+7iMkOnuW05F5OlF4g==";
       };
     };
-    "@smithy/util-defaults-mode-node-2.2.0" = {
+    "@smithy/util-defaults-mode-node-2.3.0" = {
       name = "_at_smithy_slash_util-defaults-mode-node";
       packageName = "@smithy/util-defaults-mode-node";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.2.0.tgz";
-        sha512 = "iFJp/N4EtkanFpBUtSrrIbtOIBf69KNuve03ic1afhJ9/korDxdM0c6cCH4Ehj/smI9pDCfVv+bqT3xZjF2WaA==";
+        url = "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.0.tgz";
+        sha512 = "hfKXnNLmsW9cmLb/JXKIvtuO6Cf4SuqN5PN1C2Ru/TBIws+m1wSgb+A53vo0r66xzB6E82inKG2J7qtwdi+Kkw==";
       };
     };
-    "@smithy/util-endpoints-1.1.1" = {
+    "@smithy/util-endpoints-1.2.0" = {
       name = "_at_smithy_slash_util-endpoints";
       packageName = "@smithy/util-endpoints";
-      version = "1.1.1";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.1.1.tgz";
-        sha512 = "sI4d9rjoaekSGEtq3xSb2nMjHMx8QXcz2cexnVyRWsy4yQ9z3kbDpX+7fN0jnbdOp0b3KSTZJZ2Yb92JWSanLw==";
+        url = "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.2.0.tgz";
+        sha512 = "BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ==";
       };
     };
-    "@smithy/util-hex-encoding-2.1.1" = {
+    "@smithy/util-hex-encoding-2.2.0" = {
       name = "_at_smithy_slash_util-hex-encoding";
       packageName = "@smithy/util-hex-encoding";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.1.1.tgz";
-        sha512 = "3UNdP2pkYUUBGEXzQI9ODTDK+Tcu1BlCyDBaRHwyxhA+8xLP8agEKQq4MGmpjqb4VQAjq9TwlCQX0kP6XDKYLg==";
+        url = "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz";
+        sha512 = "7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==";
       };
     };
-    "@smithy/util-middleware-2.1.1" = {
+    "@smithy/util-middleware-2.2.0" = {
       name = "_at_smithy_slash_util-middleware";
       packageName = "@smithy/util-middleware";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.1.1.tgz";
-        sha512 = "mKNrk8oz5zqkNcbcgAAepeJbmfUW6ogrT2Z2gDbIUzVzNAHKJQTYmH9jcy0jbWb+m7ubrvXKb6uMjkSgAqqsFA==";
+        url = "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.2.0.tgz";
+        sha512 = "L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==";
       };
     };
-    "@smithy/util-retry-2.1.1" = {
+    "@smithy/util-retry-2.2.0" = {
       name = "_at_smithy_slash_util-retry";
       packageName = "@smithy/util-retry";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.1.1.tgz";
-        sha512 = "Mg+xxWPTeSPrthpC5WAamJ6PW4Kbo01Fm7lWM1jmGRvmrRdsd3192Gz2fBXAMURyXpaNxyZf6Hr/nQ4q70oVEA==";
+        url = "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.2.0.tgz";
+        sha512 = "q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==";
       };
     };
-    "@smithy/util-stream-2.1.1" = {
+    "@smithy/util-stream-2.2.0" = {
       name = "_at_smithy_slash_util-stream";
       packageName = "@smithy/util-stream";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.1.1.tgz";
-        sha512 = "J7SMIpUYvU4DQN55KmBtvaMc7NM3CZ2iWICdcgaovtLzseVhAqFRYqloT3mh0esrFw+3VEK6nQFteFsTqZSECQ==";
+        url = "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.2.0.tgz";
+        sha512 = "17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==";
       };
     };
-    "@smithy/util-uri-escape-2.1.1" = {
+    "@smithy/util-uri-escape-2.2.0" = {
       name = "_at_smithy_slash_util-uri-escape";
       packageName = "@smithy/util-uri-escape";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.1.1.tgz";
-        sha512 = "saVzI1h6iRBUVSqtnlOnc9ssU09ypo7n+shdQ8hBTZno/9rZ3AuRYvoHInV57VF7Qn7B+pFJG7qTzFiHxWlWBw==";
+        url = "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz";
+        sha512 = "jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==";
       };
     };
-    "@smithy/util-utf8-2.1.1" = {
+    "@smithy/util-utf8-2.3.0" = {
       name = "_at_smithy_slash_util-utf8";
       packageName = "@smithy/util-utf8";
-      version = "2.1.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.1.1.tgz";
-        sha512 = "BqTpzYEcUMDwAKr7/mVRUtHDhs6ZoXDi9NypMvMfOr/+u1NW7JgqodPDECiiLboEm6bobcPcECxzjtQh865e9A==";
+        url = "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz";
+        sha512 = "R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==";
       };
     };
-    "@smithy/util-waiter-2.1.1" = {
+    "@smithy/util-waiter-2.2.0" = {
       name = "_at_smithy_slash_util-waiter";
       packageName = "@smithy/util-waiter";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.1.1.tgz";
-        sha512 = "kYy6BLJJNif+uqNENtJqWdXcpqo1LS+nj1AfXcDhOpqpSHJSAkVySLyZV9fkmuVO21lzGoxjvd1imGGJHph/IA==";
+        url = "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.2.0.tgz";
+        sha512 = "IHk53BVw6MPMi2Gsn+hCng8rFA3ZmR3Rk7GllxDUW9qFJl/hiSvskn7XldkECapQVkIg/1dHpMAxI9xSTaLLSA==";
       };
     };
     "@socket.io/component-emitter-3.1.0" = {
@@ -10471,40 +10408,40 @@ let
         sha512 = "2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==";
       };
     };
-    "@swc-node/core-1.12.0" = {
+    "@swc-node/core-1.13.0" = {
       name = "_at_swc-node_slash_core";
       packageName = "@swc-node/core";
-      version = "1.12.0";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc-node/core/-/core-1.12.0.tgz";
-        sha512 = "AYrEmPL2BT46wbikHwSMR5IK98SelBEYH+ycjalUxJ5xYjEupjF8Fd+NkadKoZAzf5zDtysFKd5R1PY4QBHIiw==";
+        url = "https://registry.npmjs.org/@swc-node/core/-/core-1.13.0.tgz";
+        sha512 = "lFPD4nmy4ifAOVMChFjwlpXN5KQXvegqeyuzz1KQz42q1lf+cL3Qux1/GteGuZjh8HC+Rj1RdNrHpE/MCfJSTw==";
       };
     };
-    "@swc-node/register-1.8.0" = {
+    "@swc-node/register-1.9.0" = {
       name = "_at_swc-node_slash_register";
       packageName = "@swc-node/register";
-      version = "1.8.0";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc-node/register/-/register-1.8.0.tgz";
-        sha512 = "8K3589HoBSmVmrEVrtr4K5sWEithpGDzcFGic81OW0A9sZY38IV5EGRODQWCk0SBDyLhaF+pid120vJAtsHo1A==";
+        url = "https://registry.npmjs.org/@swc-node/register/-/register-1.9.0.tgz";
+        sha512 = "i0iYInD4q5v3xQC6bKvs0QtfUxu197CU5qKALmpxEqTYs7sIhQ7KFLe3kP+eAR4gRkJTvAgjQgrokXLN2jZrOw==";
       };
     };
-    "@swc-node/sourcemap-support-0.4.0" = {
+    "@swc-node/sourcemap-support-0.5.0" = {
       name = "_at_swc-node_slash_sourcemap-support";
       packageName = "@swc-node/sourcemap-support";
-      version = "0.4.0";
+      version = "0.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc-node/sourcemap-support/-/sourcemap-support-0.4.0.tgz";
-        sha512 = "weuRmYTO+4yOtHtPZHXlPdA1dJJJp3QOoZAFZ6uZidu992F2X5v1fQdnb26xs1o3Ex/e2sYhRyY5R6NGNuoATQ==";
+        url = "https://registry.npmjs.org/@swc-node/sourcemap-support/-/sourcemap-support-0.5.0.tgz";
+        sha512 = "fbhjL5G0YvFoWwNhWleuBUfotiX+USiA9oJqu9STFw+Hb0Cgnddn+HVS/K5fI45mn92e8V+cHD2jgFjk4w2T9Q==";
       };
     };
-    "@swc/core-1.4.1" = {
+    "@swc/core-1.4.8" = {
       name = "_at_swc_slash_core";
       packageName = "@swc/core";
-      version = "1.4.1";
+      version = "1.4.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc/core/-/core-1.4.1.tgz";
-        sha512 = "3y+Y8js+e7BbM16iND+6Rcs3jdiL28q3iVtYsCviYSSpP2uUVKkp5sJnCY4pg8AaVvyN7CGQHO7gLEZQ5ByozQ==";
+        url = "https://registry.npmjs.org/@swc/core/-/core-1.4.8.tgz";
+        sha512 = "uY2RSJcFPgNOEg12RQZL197LZX+MunGiKxsbxmh22VfVxrOYGRvh4mPANFlrD1yb38CgmW1wI6YgIi8LkIwmWg==";
       };
     };
     "@swc/counter-0.1.3" = {
@@ -10516,31 +10453,31 @@ let
         sha512 = "e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==";
       };
     };
-    "@swc/helpers-0.5.6" = {
+    "@swc/helpers-0.5.7" = {
       name = "_at_swc_slash_helpers";
       packageName = "@swc/helpers";
-      version = "0.5.6";
+      version = "0.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.6.tgz";
-        sha512 = "aYX01Ke9hunpoCexYAgQucEpARGQ5w/cqHFrIR+e9gdKb1QWTsVJuTJ2ozQzIAxLyRQe/m+2RqzkyOOGiMKRQA==";
+        url = "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.7.tgz";
+        sha512 = "BVvNZhx362+l2tSwSuyEUV4h7+jk9raNdoTSdLfwTshXJSaGmYKluGRJznziCI3KX02Z19DdsQrdfrpXAU3Hfg==";
       };
     };
-    "@swc/types-0.1.5" = {
+    "@swc/types-0.1.6" = {
       name = "_at_swc_slash_types";
       packageName = "@swc/types";
-      version = "0.1.5";
+      version = "0.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz";
-        sha512 = "myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==";
+        url = "https://registry.npmjs.org/@swc/types/-/types-0.1.6.tgz";
+        sha512 = "/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==";
       };
     };
-    "@swc/wasm-1.4.1" = {
+    "@swc/wasm-1.4.8" = {
       name = "_at_swc_slash_wasm";
       packageName = "@swc/wasm";
-      version = "1.4.1";
+      version = "1.4.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc/wasm/-/wasm-1.4.1.tgz";
-        sha512 = "T9wbyNM9pZNxE5aJR+dZAMhKVKSElw9Clz73pjFEV2ddB5DHmi4ndn1X3RwCF8JBryVkoPIsZ/MQXty+LSbyQw==";
+        url = "https://registry.npmjs.org/@swc/wasm/-/wasm-1.4.8.tgz";
+        sha512 = "HoK4GiT0jh8wAtSZuhpnqMy/y0IyuAVdKPQhHniNsfH+gZYqL6sdHYmeE+KnLjn9UuBt5AJWiAPbcuwZAv3xsg==";
       };
     };
     "@szmarczak/http-timer-1.1.2" = {
@@ -10579,22 +10516,22 @@ let
         sha512 = "QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==";
       };
     };
-    "@tanstack/react-virtual-3.0.4" = {
+    "@tanstack/react-virtual-3.2.0" = {
       name = "_at_tanstack_slash_react-virtual";
       packageName = "@tanstack/react-virtual";
-      version = "3.0.4";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.0.4.tgz";
-        sha512 = "tiqKW/e2MJVCr7/pRUXulpkyxllaOclkHNfhKTo4pmHjJIqnhMfwIjc1Q1R0Un3PI3kQywywu/791c8z9u0qeA==";
+        url = "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.2.0.tgz";
+        sha512 = "OEdMByf2hEfDa6XDbGlZN8qO6bTjlNKqjM3im9JG+u3mCL8jALy0T/67oDI001raUUPh1Bdmfn4ZvPOV5knpcg==";
       };
     };
-    "@tanstack/virtual-core-3.0.0" = {
+    "@tanstack/virtual-core-3.2.0" = {
       name = "_at_tanstack_slash_virtual-core";
       packageName = "@tanstack/virtual-core";
-      version = "3.0.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.0.0.tgz";
-        sha512 = "SYXOBTjJb05rXa2vl55TTwO40A6wKu0R5i1qQwhJYNDIqaIGF7D0HsLw+pJAyi2OvntlEIVusx3xtbbgSUi6zg==";
+        url = "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.2.0.tgz";
+        sha512 = "P5XgYoAw/vfW65byBbJQCw+cagdXDT/qH6wmABiLt4v4YBT2q2vqCOhihe+D1Nt325F/S/0Tkv6C5z0Lv+VBQQ==";
       };
     };
     "@taplo/core-0.1.1" = {
@@ -10633,13 +10570,13 @@ let
         sha512 = "qrZyhCh8Ekk6nwArx3BROybm9BnX6vF7VcZbijetV/OM3yfS4rTYhoMWISmhVEP2H2re0CtWEyMl/XF+WdvVLQ==";
       };
     };
-    "@textlint/ast-node-types-14.0.3" = {
+    "@textlint/ast-node-types-14.0.4" = {
       name = "_at_textlint_slash_ast-node-types";
       packageName = "@textlint/ast-node-types";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.3.tgz";
-        sha512 = "umIMn3yy2arl9QHH2fEhCxVgbLbQFC8NpzYbAzOQ4Y5m+p0RQaKClHtHXnDqsXHp6WKAVAXxcuFolW2SZMnhDQ==";
+        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.0.4.tgz";
+        sha512 = "O7L1pgle030Co9ou1+6e2/6GgcIpKgqwEc0XiBabokc22Yl0QEkrf00K/usBDmSx+wo1ficWBux2mfBEF0jnDA==";
       };
     };
     "@textlint/ast-node-types-4.4.3" = {
@@ -10651,139 +10588,139 @@ let
         sha512 = "qi2jjgO6Tn3KNPGnm6B7p6QTEPvY95NFsIAaJuwbulur8iJUEenp1OnoUfiDaC/g2WPPEFkcfXpmnu8XEMFo2A==";
       };
     };
-    "@textlint/ast-tester-14.0.3" = {
+    "@textlint/ast-tester-14.0.4" = {
       name = "_at_textlint_slash_ast-tester";
       packageName = "@textlint/ast-tester";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.0.3.tgz";
-        sha512 = "TNArbA0a/9nxJadZDsnfV6I4kB6C+Vb6BmFbDxBglS/NWtFqI9SYPV2tRhGBnTHFyTl5bgyzrAyb2FNSxbrSuQ==";
+        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.0.4.tgz";
+        sha512 = "SQ/2DjxVlDVeCEjVlD8c8R2Sl3VGDZEx8o9+i8bV8NUdY8qsSHbo29/BfiUZf/uaX6eeNpZsurtstJ25hbVrsQ==";
       };
     };
-    "@textlint/ast-traverse-14.0.3" = {
+    "@textlint/ast-traverse-14.0.4" = {
       name = "_at_textlint_slash_ast-traverse";
       packageName = "@textlint/ast-traverse";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.0.3.tgz";
-        sha512 = "rZ0PwLWuLlAOkDp/9wGsHa1jZMjNdJ3CpZMPTNnqEppaxb3o4OKFbjt2Hh87E215B84Cz8KaeKFT/QEn+YiRjA==";
+        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.0.4.tgz";
+        sha512 = "bzFC7UJ2FvhjH5ekXGQ0i9vjK+xzMT69gHBsYVEl+TtbplnH2YY3+sbw6B1j3LocJuo6xngZ2YWXXqmQlKgzLg==";
       };
     };
-    "@textlint/config-loader-14.0.3" = {
+    "@textlint/config-loader-14.0.4" = {
       name = "_at_textlint_slash_config-loader";
       packageName = "@textlint/config-loader";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.0.3.tgz";
-        sha512 = "uUDVKEkIcq7VDljM6RWIpz76TvHQfOjXh+CFgZ/oVScSsPuvqR3TeBRLm8tgyho4MKmdTtHrhmuZj5DQrTOxig==";
+        url = "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.0.4.tgz";
+        sha512 = "qgAvZ1RcTq58+yNbzhaKHsb52yHRxt8SRpG7S4WFjYj2DEStjIxzssSQvlZtEBjSUQ7RZNJ93d+pL0YK8MIVoA==";
       };
     };
-    "@textlint/feature-flag-14.0.3" = {
+    "@textlint/feature-flag-14.0.4" = {
       name = "_at_textlint_slash_feature-flag";
       packageName = "@textlint/feature-flag";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.0.3.tgz";
-        sha512 = "qDQr8qA3glb6WF0cgmhG2OST5zTY5ft6OJ/J6smDoKse/1cnPlFwbvDLvrlxwnmWDyujvqb3p9Kw7GDToTIxYg==";
+        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.0.4.tgz";
+        sha512 = "1FMZqnjOA4KVpt/aloI1fNs46P0rUeHWcCRKl33/08wRHHMdcbaN4EsHkq7UfriuSfFgUuiyeo0bPjCpv15hhQ==";
       };
     };
-    "@textlint/fixer-formatter-14.0.3" = {
+    "@textlint/fixer-formatter-14.0.4" = {
       name = "_at_textlint_slash_fixer-formatter";
       packageName = "@textlint/fixer-formatter";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.0.3.tgz";
-        sha512 = "Uk8CYLRye7KglYa1y8kW1BikA7kJ6bn9xK6FX93iwcL5yz9vOUUHYz9IINcOdg1NYfST4KaDbnBNKGfeQqr52Q==";
+        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.0.4.tgz";
+        sha512 = "HkMxzGPo/pgA9UvddqJG6qm62ICNgil3AmBVp0QpOv5uTV1u9gCSQ5jOdb/aOJBw7W8fd+CcnEsEBYn9HT8e6A==";
       };
     };
-    "@textlint/kernel-14.0.3" = {
+    "@textlint/kernel-14.0.4" = {
       name = "_at_textlint_slash_kernel";
       packageName = "@textlint/kernel";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.0.3.tgz";
-        sha512 = "RRyY7oL6CD5JwD3cgl8KvSd80rbnJKSUXTsn2ZAtLAjqJR+io0tVZLkQwij7diXaMjCnoJQfmnbIJf8C29/G5Q==";
+        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.0.4.tgz";
+        sha512 = "6WNoEBZ4lYTYOGK4EEEdjp+kgxSSC1nIFwN6tY9XGVkd4OACzDNothVTvJBwaX73FWFG5zoSjnNQxBDPUHMc8g==";
       };
     };
-    "@textlint/linter-formatter-14.0.3" = {
+    "@textlint/linter-formatter-14.0.4" = {
       name = "_at_textlint_slash_linter-formatter";
       packageName = "@textlint/linter-formatter";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.0.3.tgz";
-        sha512 = "CSwrE7LH/0KeQPP6/Nar5sakI+c1ToaYc14MwjWKCljK9RqkZCBFZqEWdy7LhXeIL5Pwf2BhsdGOImx14NpyHw==";
+        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.0.4.tgz";
+        sha512 = "EQZJPydExEIvBARkdmkoGsKWie1ekNAiqerQgIqwPb3SqOzKnlaDGrZOMy40HufTcacZrrvlbByDyai6m30+Lw==";
       };
     };
-    "@textlint/markdown-to-ast-14.0.3" = {
+    "@textlint/markdown-to-ast-14.0.4" = {
       name = "_at_textlint_slash_markdown-to-ast";
       packageName = "@textlint/markdown-to-ast";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.0.3.tgz";
-        sha512 = "+CkWt9a9pd1+Rl37dqiiEGQ2f2faLX/vd7qiV+OTfkKUyHQ0HkOLK7sfbPpTx5ee5+5fKVMTStTTHrFZz5mlBw==";
+        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.0.4.tgz";
+        sha512 = "D9UUxnRJoNROVjOa9bhoQPDdRvlvS/xP3MJo0Kl6b/mJFi0dOlW31WUfpOFjZkp4uXkL+oo0ji7AMnmV6JORsQ==";
       };
     };
-    "@textlint/module-interop-14.0.3" = {
+    "@textlint/module-interop-14.0.4" = {
       name = "_at_textlint_slash_module-interop";
       packageName = "@textlint/module-interop";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.0.3.tgz";
-        sha512 = "76K6y4wNCZH3+BGziJm6iGPbKsBtb214332EgdXDMNsYah51LPT9YrXuOI1ROyxvfVoztJMH0MDZdtdY/t7cig==";
+        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.0.4.tgz";
+        sha512 = "okv52pRSQ1aeC8rim8qp2D2Fmj/oKDYGY2itdeZhj9E/vdkU9/r7OpdcxyuNiuqLEd/sWw03EAwt3S6mlfNIOw==";
       };
     };
-    "@textlint/source-code-fixer-14.0.3" = {
+    "@textlint/source-code-fixer-14.0.4" = {
       name = "_at_textlint_slash_source-code-fixer";
       packageName = "@textlint/source-code-fixer";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.0.3.tgz";
-        sha512 = "/htnQzs+8qMIiZWQEpFF4+PgxDhi6flP+qIdoL8l5Q/jbIIZbGgOz9pdEFwnwOur/ddqFfuOKy5GtwZDoF+gOg==";
+        url = "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.0.4.tgz";
+        sha512 = "gIUeWjF0WdSwgCUhW310hKJsWOyRyFe6PGaqqCk7Mhc+vVcePfmC8mmmhVgeuyys/Dhe+0iaP4M1eJf4COaIQw==";
       };
     };
-    "@textlint/text-to-ast-14.0.3" = {
+    "@textlint/text-to-ast-14.0.4" = {
       name = "_at_textlint_slash_text-to-ast";
       packageName = "@textlint/text-to-ast";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.0.3.tgz";
-        sha512 = "NrlZQ5RO3O6aSqDMzLzGWhKP5Rx2UlbGulVgO2sQ+59837+32cHjzrV+J1nBVVcsfsv+GOFperfo5C/Rn+F7SA==";
+        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.0.4.tgz";
+        sha512 = "r2KSnKzhsCIvX72yX+7sEuu9nDQIS4+xRsSffuXYB0etRQUI6VTTsE6Ibd6yMbEsMDUF4BfKWzNGn+bQ8U7oHA==";
       };
     };
-    "@textlint/textlint-plugin-markdown-14.0.3" = {
+    "@textlint/textlint-plugin-markdown-14.0.4" = {
       name = "_at_textlint_slash_textlint-plugin-markdown";
       packageName = "@textlint/textlint-plugin-markdown";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.0.3.tgz";
-        sha512 = "1zwiwmayFRIElGdeCUXCJjlP+mpZDCCtcsNqB+07i/xi3UlSFM3NGRUzJ5CYQbjJ7Nrb3kmA5FKxB7xTMdZH4w==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.0.4.tgz";
+        sha512 = "mqQieI9U5GTRTjkK4Cj57Axl6fVloaA8g0+sCsp3TjmNWyEgGBvt3aw+FIUiFTvheg9L3RGe/aXgvp5ORADOAA==";
       };
     };
-    "@textlint/textlint-plugin-text-14.0.3" = {
+    "@textlint/textlint-plugin-text-14.0.4" = {
       name = "_at_textlint_slash_textlint-plugin-text";
       packageName = "@textlint/textlint-plugin-text";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.0.3.tgz";
-        sha512 = "dDRkNAoOH/HHxpC5Ghn89L90Ax5GQ4CIwCiV91qmjYUaCH710wkqRppBCEIHnS+1E/5wq1ukhTbGJjvxe7rP4w==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.0.4.tgz";
+        sha512 = "HwTQyOcwDRrPPHyD8lwSMyGR1ETasR2WK6BLO0PRbowRe6K/K4b9OBBd6+nJcRFa+9Nd6p7nxPzA2WxDi1X/Zg==";
       };
     };
-    "@textlint/types-14.0.3" = {
+    "@textlint/types-14.0.4" = {
       name = "_at_textlint_slash_types";
       packageName = "@textlint/types";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/types/-/types-14.0.3.tgz";
-        sha512 = "Ft08kK3BNxbuRYb0BOEjSr9CkJyHIYBiUfWvaNcqhXESQLhplb5EfynkXw0uAerzhx9CxkdC2FcOFU+HIcuYRg==";
+        url = "https://registry.npmjs.org/@textlint/types/-/types-14.0.4.tgz";
+        sha512 = "SNdFG/GB6utYeHmNfoAMlI+K1NykPxK9TtilkEfhr/fF9TqmeeJ+6CMk5NLQzEvfKm6jUbv2pp5DPS27vo6GKg==";
       };
     };
-    "@textlint/utils-14.0.3" = {
+    "@textlint/utils-14.0.4" = {
       name = "_at_textlint_slash_utils";
       packageName = "@textlint/utils";
-      version = "14.0.3";
+      version = "14.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/utils/-/utils-14.0.3.tgz";
-        sha512 = "Rt7KFrqPpLmpTz3ftTbA8A4kUABwW8CuvgbAAOL/XYpejnQeGPmVfVF3b3AvDtD5jYjp4rPkXHGHDPJTj+lYwA==";
+        url = "https://registry.npmjs.org/@textlint/utils/-/utils-14.0.4.tgz";
+        sha512 = "/ThtVZCB/vB2e8+MnKquCFNO2cKXCPEGxFlkdvJ5g9q9ODpVyFcf2ogYoIlvR7cNotvq67zVjENS7dsGDNFEmw==";
       };
     };
     "@tinyhttp/accepts-2.2.1" = {
@@ -10984,6 +10921,15 @@ let
         sha512 = "XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==";
       };
     };
+    "@tootallnate/quickjs-emscripten-0.23.0" = {
+      name = "_at_tootallnate_slash_quickjs-emscripten";
+      packageName = "@tootallnate/quickjs-emscripten";
+      version = "0.23.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz";
+        sha512 = "C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==";
+      };
+    };
     "@trivago/prettier-plugin-sort-imports-4.2.1" = {
       name = "_at_trivago_slash_prettier-plugin-sort-imports";
       packageName = "@trivago/prettier-plugin-sort-imports";
@@ -11272,6 +11218,15 @@ let
         sha512 = "n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==";
       };
     };
+    "@types/conventional-commits-parser-5.0.0" = {
+      name = "_at_types_slash_conventional-commits-parser";
+      packageName = "@types/conventional-commits-parser";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz";
+        sha512 = "loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==";
+      };
+    };
     "@types/cookie-0.4.1" = {
       name = "_at_types_slash_cookie";
       packageName = "@types/cookie";
@@ -11371,13 +11326,13 @@ let
         sha512 = "qJ7LIFp06h1QE1aVxbVd+zJP2wdaugYXYfd6JxsyRMrYHaxb6itXPogW2tz+ylUJ1n1b+JF1PHyYCfYHm0dvUg==";
       };
     };
-    "@types/eslint-8.56.2" = {
+    "@types/eslint-8.56.5" = {
       name = "_at_types_slash_eslint";
       packageName = "@types/eslint";
-      version = "8.56.2";
+      version = "8.56.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz";
-        sha512 = "uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==";
+        url = "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz";
+        sha512 = "u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==";
       };
     };
     "@types/eslint-scope-3.7.7" = {
@@ -11398,13 +11353,13 @@ let
         sha512 = "/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==";
       };
     };
-    "@types/estree-jsx-1.0.4" = {
+    "@types/estree-jsx-1.0.5" = {
       name = "_at_types_slash_estree-jsx";
       packageName = "@types/estree-jsx";
-      version = "1.0.4";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.4.tgz";
-        sha512 = "5idy3hvI9lAMqsyilBM+N+boaCf1MgoefbDxN6KEO5aK17TOHwFAYT9sjxzeKAiIWRUBgLxmZ9mPcnzZXtTcRQ==";
+        url = "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz";
+        sha512 = "52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==";
       };
     };
     "@types/express-4.17.14" = {
@@ -11632,13 +11587,13 @@ let
         sha512 = "yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==";
       };
     };
-    "@types/lodash-4.14.202" = {
+    "@types/lodash-4.17.0" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.14.202";
+      version = "4.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz";
-        sha512 = "OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==";
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz";
+        sha512 = "t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==";
       };
     };
     "@types/long-4.0.2" = {
@@ -11821,13 +11776,13 @@ let
         sha512 = "JkRpuVz3xCNCWaeQ5EHLR/6woMbHZz/jZ7Kmc63AkU+1HxnoUugzSWMck7dsR4DvNYX8jp9wTi9K7WvnxOIQZQ==";
       };
     };
-    "@types/node-16.18.82" = {
+    "@types/node-16.18.90" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "16.18.82";
+      version = "16.18.90";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-16.18.82.tgz";
-        sha512 = "pcDZtkx9z8XYV+ius2P3Ot2VVrcYOfXffBQUBuiszrlUzKSmoDYqo+mV+IoL8iIiIjjtOMvNSmH1hwJ+Q+f96Q==";
+        url = "https://registry.npmjs.org/@types/node/-/node-16.18.90.tgz";
+        sha512 = "ofx8kJGTumXmOfYHrJckfdunEiEoq6Aa8x3JKVtGS25z/DTV/fUqIolnHPssDs8P3fq2ZWayNwkAWEk/RmdmwQ==";
       };
     };
     "@types/node-16.9.1" = {
@@ -11839,31 +11794,31 @@ let
         sha512 = "QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==";
       };
     };
-    "@types/node-18.19.17" = {
+    "@types/node-18.19.24" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "18.19.17";
+      version = "18.19.24";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-18.19.17.tgz";
-        sha512 = "SzyGKgwPzuWp2SHhlpXKzCX0pIOfcI4V2eF37nNBJOhwlegQ83omtVQ1XxZpDE06V/d6AQvfQdPfnw0tRC//Ng==";
+        url = "https://registry.npmjs.org/@types/node/-/node-18.19.24.tgz";
+        sha512 = "eghAz3gnbQbvnHqB+mgB2ZR3aH6RhdEmHGS48BnV75KceQPHqabkxKI0BbUSsqhqy2Ddhc2xD/VAR9ySZd57Lw==";
       };
     };
-    "@types/node-18.19.7" = {
+    "@types/node-18.19.25" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "18.19.7";
+      version = "18.19.25";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-18.19.7.tgz";
-        sha512 = "IGRJfoNX10N/PfrReRZ1br/7SQ+2vF/tK3KXNwzXz82D32z5dMQEoOlFew18nLSN+vMNcLY4GrKfzwi/yWI8/w==";
+        url = "https://registry.npmjs.org/@types/node/-/node-18.19.25.tgz";
+        sha512 = "NrNXHJCexZtcbR9K1hsv1fSbwAwnhv7ql7l331aKvW0sej5H0NY1o64BHe0AA2ZoQuTm7NE6fyNW079MOWXe4Q==";
       };
     };
-    "@types/node-20.11.19" = {
+    "@types/node-20.11.29" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "20.11.19";
+      version = "20.11.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz";
-        sha512 = "7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-20.11.29.tgz";
+        sha512 = "P99thMkD/1YkCvAtOd6/zGedKNA0p2fj4ZpjCzcNiSCBWgm3cNRTBfa/qjFnsKkkojxu4vVLtWpesnZ9+ap+gA==";
       };
     };
     "@types/node-20.5.9" = {
@@ -11947,13 +11902,13 @@ let
         sha512 = "Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==";
       };
     };
-    "@types/qs-6.9.11" = {
+    "@types/qs-6.9.13" = {
       name = "_at_types_slash_qs";
       packageName = "@types/qs";
-      version = "6.9.11";
+      version = "6.9.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz";
-        sha512 = "oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==";
+        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.13.tgz";
+        sha512 = "iLR+1vTTJ3p0QaOUq6ACbY1mzKTODFDT/XedZI8BksOotFmL4ForwDfRQ/DZeuTHR7/2i4lI1D203gdfxuqTlA==";
       };
     };
     "@types/range-parser-1.2.7" = {
@@ -11965,22 +11920,22 @@ let
         sha512 = "hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==";
       };
     };
-    "@types/react-18.2.56" = {
+    "@types/react-18.2.67" = {
       name = "_at_types_slash_react";
       packageName = "@types/react";
-      version = "18.2.56";
+      version = "18.2.67";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/react/-/react-18.2.56.tgz";
-        sha512 = "NpwHDMkS/EFZF2dONFQHgkPRwhvgq/OAvIaGQzxGSBmaeR++kTg6njr15Vatz0/2VcCEwJQFi6Jf4Q0qBu0rLA==";
+        url = "https://registry.npmjs.org/@types/react/-/react-18.2.67.tgz";
+        sha512 = "vkIE2vTIMHQ/xL0rgmuoECBCkZFZeHr49HeWSc24AptMbNRo7pwSBvj73rlJJs9fGKj0koS+V7kQB1jHS0uCgw==";
       };
     };
-    "@types/react-dom-18.2.19" = {
+    "@types/react-dom-18.2.22" = {
       name = "_at_types_slash_react-dom";
       packageName = "@types/react-dom";
-      version = "18.2.19";
+      version = "18.2.22";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.19.tgz";
-        sha512 = "aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==";
+        url = "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz";
+        sha512 = "fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==";
       };
     };
     "@types/readdir-glob-1.1.5" = {
@@ -12046,13 +12001,13 @@ let
         sha512 = "giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==";
       };
     };
-    "@types/semver-7.5.7" = {
+    "@types/semver-7.5.8" = {
       name = "_at_types_slash_semver";
       packageName = "@types/semver";
-      version = "7.5.7";
+      version = "7.5.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz";
-        sha512 = "/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==";
+        url = "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz";
+        sha512 = "I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==";
       };
     };
     "@types/send-0.17.4" = {
@@ -12460,13 +12415,13 @@ let
         sha512 = "1O/biKiVhhn0EtvDF4UOvz325K4RrLupfL8rHcmqD2TBLv4qVDWQuzx4JGa1FfqjjRb+C9TNZ6w19f32Mq85Ug==";
       };
     };
-    "@vercel/build-utils-7.7.0" = {
+    "@vercel/build-utils-7.9.1" = {
       name = "_at_vercel_slash_build-utils";
       packageName = "@vercel/build-utils";
-      version = "7.7.0";
+      version = "7.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-7.7.0.tgz";
-        sha512 = "dYE0QKnRj9tN1F2AAKHagh3QkgQhz7AWcrRqnp5gjEp74EnxBKJIcZe5qqyKANMCLQ1e96RYy1pQB3zPMGeEzg==";
+        url = "https://registry.npmjs.org/@vercel/build-utils/-/build-utils-7.9.1.tgz";
+        sha512 = "yqbP7d8oLAGkh5iy9/Vu1c0+s5jLFK56QHEZlkj1lY3t3OQ+7dsAi0oUP/gv8YxtUYwMDfeYSqZr/4cNhnSBsg==";
       };
     };
     "@vercel/error-utils-2.0.2" = {
@@ -12496,13 +12451,13 @@ let
         sha512 = "iTEA0vY6RBPuEzkwUTVzSHDATo1aF6bdLLspI68mQ/BTbi5UQEGjpjyzdKOVcSYApDtFU6M6vypZ1t4vIEnHvw==";
       };
     };
-    "@vercel/gatsby-plugin-vercel-builder-2.0.18" = {
+    "@vercel/gatsby-plugin-vercel-builder-2.0.22" = {
       name = "_at_vercel_slash_gatsby-plugin-vercel-builder";
       packageName = "@vercel/gatsby-plugin-vercel-builder";
-      version = "2.0.18";
+      version = "2.0.22";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-2.0.18.tgz";
-        sha512 = "SbYV8ZBnROHJzS5DbFgSZ3Szp6UiY28DyHwtJ8cJ3z82tnCgIVqRMthUx/icPUZlHXKex4y+QhOWpyqopvEyqQ==";
+        url = "https://registry.npmjs.org/@vercel/gatsby-plugin-vercel-builder/-/gatsby-plugin-vercel-builder-2.0.22.tgz";
+        sha512 = "bpbfWzNfn/7MyCDCXbFMmTqtFt+ni0ezmXQBZ5rzdEob+uTBYQg15hf+A8zr9oB66+EPaxt7So/KBjsb6s6n2A==";
       };
     };
     "@vercel/go-3.0.5" = {
@@ -12523,31 +12478,31 @@ let
         sha512 = "/Q2MKk1GfOuZAnkE9jQexjtUQqanbY65R+xtJWd9yKIgwcfRI1hxiNH3uXyVM5AvLoY+fxxULkSuxDtUKpkJpQ==";
       };
     };
-    "@vercel/next-4.1.1" = {
+    "@vercel/next-4.1.6" = {
       name = "_at_vercel_slash_next";
       packageName = "@vercel/next";
-      version = "4.1.1";
+      version = "4.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/next/-/next-4.1.1.tgz";
-        sha512 = "bc+UimeP+Swwye10LNcB93uaGq2lMuPUhB3den0GBJ+x/aSFmSwVziohF+p1n4ozFGEUx6Qx/CyZcfopuO5jZA==";
+        url = "https://registry.npmjs.org/@vercel/next/-/next-4.1.6.tgz";
+        sha512 = "+U/D75RZFIe6Z9EA4kDLDZgP0hEl4ONWqFg47EtJpigWl5ulJ9YYsMD2nQZF5sq/YKbqy/7/sUDRIL0Co+3JuA==";
       };
     };
-    "@vercel/nft-0.26.3" = {
+    "@vercel/nft-0.26.4" = {
       name = "_at_vercel_slash_nft";
       packageName = "@vercel/nft";
-      version = "0.26.3";
+      version = "0.26.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/nft/-/nft-0.26.3.tgz";
-        sha512 = "h1z/NN9ppS4YOKwSgBoopJlhm7tS2Qb/9Ld1HXjDpvvTE7mY0xVD8nllXs+RihD9uTGJISOIMzp18Eg0EApaMA==";
+        url = "https://registry.npmjs.org/@vercel/nft/-/nft-0.26.4.tgz";
+        sha512 = "j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==";
       };
     };
-    "@vercel/node-3.0.19" = {
+    "@vercel/node-3.0.24" = {
       name = "_at_vercel_slash_node";
       packageName = "@vercel/node";
-      version = "3.0.19";
+      version = "3.0.24";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/node/-/node-3.0.19.tgz";
-        sha512 = "geiAo2QjkNyWZSMbNKgaCvUvqg44tWDF0XDhEc6D+2H+2553Ea/RFpJNY7oSruuR1Rk43GUOKbxnVEDft/2JhQ==";
+        url = "https://registry.npmjs.org/@vercel/node/-/node-3.0.24.tgz";
+        sha512 = "2EbC6zsoaj2HH97BZYdkqHNeQ3gpcsETHXySSslkylU1uTAZU5i4c+Ze+RIinVkk7P+DVv4XzDK6xaSHvkXkGA==";
       };
     };
     "@vercel/python-4.1.1" = {
@@ -12559,22 +12514,22 @@ let
         sha512 = "EbAdKOZ0hPd5b59tLt7R3RQK1azNvuZTrCFRAVHNjqcIHNCmrSvjag5zBGn7Memkk8qWb3+CgBw9K/3LJKei0w==";
       };
     };
-    "@vercel/redwood-2.0.7" = {
+    "@vercel/redwood-2.0.8" = {
       name = "_at_vercel_slash_redwood";
       packageName = "@vercel/redwood";
-      version = "2.0.7";
+      version = "2.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/redwood/-/redwood-2.0.7.tgz";
-        sha512 = "5BqSq9QP4kC3h9YmXJbuUM79EMErs2qs8MMBlw7r2zTLc2rqlUR6suzshn5Ei/Beqoj2pm7d+qrludEBVDBxkw==";
+        url = "https://registry.npmjs.org/@vercel/redwood/-/redwood-2.0.8.tgz";
+        sha512 = "hAu7SYXDt+W7kscjtQ5NsuNflXH+QB5/xAdA6FRSS/e41lG6Xq6pqLMDobqq4BR7E2PpppVDw2DUx9KzPNoeEw==";
       };
     };
-    "@vercel/remix-builder-2.0.19" = {
+    "@vercel/remix-builder-2.1.4" = {
       name = "_at_vercel_slash_remix-builder";
       packageName = "@vercel/remix-builder";
-      version = "2.0.19";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/remix-builder/-/remix-builder-2.0.19.tgz";
-        sha512 = "mODNijOpRGKtW09ksg01ju6tOt+C/fba71l1rrHi8I/ejPxpXHnfArNyO5SPRldyq5eHrhBMeePStQLVKNetug==";
+        url = "https://registry.npmjs.org/@vercel/remix-builder/-/remix-builder-2.1.4.tgz";
+        sha512 = "y3RYWyxHQn5UMq8YFYj4palPs+ylcboLtqi7hqsn2P4uVFwDFCg15jKnWNYbk0XRUg+NGGtiuW4L3V9ILUxVeg==";
       };
     };
     "@vercel/routing-utils-3.1.0" = {
@@ -12595,13 +12550,13 @@ let
         sha512 = "Gfm8HDech41vf+EPleRzgoJUnDTJerKgckMm4KX0JT860gV9XBMSOWYH7eMWHmMza104+HRCWL7wT6OlpftF2Q==";
       };
     };
-    "@vercel/static-build-2.4.0" = {
+    "@vercel/static-build-2.4.4" = {
       name = "_at_vercel_slash_static-build";
       packageName = "@vercel/static-build";
-      version = "2.4.0";
+      version = "2.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vercel/static-build/-/static-build-2.4.0.tgz";
-        sha512 = "i+JDorkLGUVSoBrxbT86LL7L+TrBdL7uwVtqKA6S3QEQb8OfGOfvQKCjtbIRmplTxHWHWo3zFALrmFuB1AaubQ==";
+        url = "https://registry.npmjs.org/@vercel/static-build/-/static-build-2.4.4.tgz";
+        sha512 = "2n09maqunhSAApvQ8GT2sUzGkZrb8OYm4seaMsRDA/zIkil+s4HoTCfB7WZDUetkhewBZZHvNb/b+KBQcGMY2Q==";
       };
     };
     "@vercel/static-config-3.0.0" = {
@@ -12694,13 +12649,13 @@ let
         sha512 = "NwqBBruD1DvVmFVyPinOuuMGqpSroVTnl1R1vOnhbKquButOj+0b2k43Gn1fz/Uqe9hijLCxMEtMIIcW38ny8w==";
       };
     };
-    "@volar/kit-2.0.4" = {
+    "@volar/kit-2.1.2" = {
       name = "_at_volar_slash_kit";
       packageName = "@volar/kit";
-      version = "2.0.4";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@volar/kit/-/kit-2.0.4.tgz";
-        sha512 = "USRx/o0jKz7o8+lEKWMxWqbqvC46XFrf3IE6CZBYzRo9kM7RERQLwUYaoT2bOcHt5DQWublpnTgdgHMm37Gysg==";
+        url = "https://registry.npmjs.org/@volar/kit/-/kit-2.1.2.tgz";
+        sha512 = "u20R1lCWCgFYBCHC+FR/e9J+P61vUNQpyWt4keAY+zpVHEHsSXVA2xWMJV1l1Iq5Dd0jBUSqrb1zsEya455AzA==";
       };
     };
     "@volar/language-core-1.4.1" = {
@@ -12712,13 +12667,13 @@ let
         sha512 = "EIY+Swv+TjsWpxOxujjMf1ZXqOjg9MT2VMXZ+1dKva0wD8W0L6EtptFFcCJdBbcKmGMFkr57Qzz9VNMWhs3jXQ==";
       };
     };
-    "@volar/language-core-2.0.4" = {
+    "@volar/language-core-2.1.2" = {
       name = "_at_volar_slash_language-core";
       packageName = "@volar/language-core";
-      version = "2.0.4";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@volar/language-core/-/language-core-2.0.4.tgz";
-        sha512 = "VhC8i03P0x9LKGLTBi81xNTNWm40yxQ/Iba8IpH+LFr+Yb7c/D7fF90Cvf31MzPDM4G5rjIOlCfs+eQKPBkwQw==";
+        url = "https://registry.npmjs.org/@volar/language-core/-/language-core-2.1.2.tgz";
+        sha512 = "5qsDp0Gf6fE09UWCeK7bkVn6NxMwC9OqFWQkMMkeej8h8XjyABPdRygC2RCrqDrfVdGijqlMQeXs6yRS+vfZYA==";
       };
     };
     "@volar/language-server-1.4.1" = {
@@ -12730,13 +12685,13 @@ let
         sha512 = "UxhiN205o8ZfTnMNhRPCtW+ncrBtqZMd+f08Xf99Je4WB+SYyv3VNnIZEQDXfaTXR6mLUgQ1mDwPsUOLKKGY8A==";
       };
     };
-    "@volar/language-server-2.0.4" = {
+    "@volar/language-server-2.1.2" = {
       name = "_at_volar_slash_language-server";
       packageName = "@volar/language-server";
-      version = "2.0.4";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@volar/language-server/-/language-server-2.0.4.tgz";
-        sha512 = "VnljhooQjT6RhmvwwJK9+3YYs2ovFmav4IVNHiQgnTMfiOiyABzcghwvJrJrI39rJDI6LNOWF7BYUJq7K07BKQ==";
+        url = "https://registry.npmjs.org/@volar/language-server/-/language-server-2.1.2.tgz";
+        sha512 = "5NR5Ztg+OxvDI4oRrjS0/4ZVPumWwhVq5acuK2BJbakG1kJXViYI9NOWiWITMjnliPvf12TEcSrVDBmIq54DOg==";
       };
     };
     "@volar/language-service-1.4.1" = {
@@ -12748,22 +12703,22 @@ let
         sha512 = "F30uT+xk20ZYpxRwNW9xBEoErSqd9zNW7iuFwSIX9bYO/12RLjB2I+vgM/GdPZnzZ37imXa76ykwqTRXrafigQ==";
       };
     };
-    "@volar/language-service-2.0.4" = {
+    "@volar/language-service-2.1.2" = {
       name = "_at_volar_slash_language-service";
       packageName = "@volar/language-service";
-      version = "2.0.4";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@volar/language-service/-/language-service-2.0.4.tgz";
-        sha512 = "DoanyU9I9Nl85lUytDl8jgyk+nrUDR5CFNVMrxWXGXclP4WTqBayBgSFAeF1L/5AwP3MywmWoK4GLAEVvl8D+Q==";
+        url = "https://registry.npmjs.org/@volar/language-service/-/language-service-2.1.2.tgz";
+        sha512 = "CmVbbKdqzVq+0FT67hfELdHpboqXhKXh6EjypypuFX5ptIRftHZdkaq3/lCCa46EHxS5tvE44jn+s7faN4iRDA==";
       };
     };
-    "@volar/snapshot-document-2.0.4" = {
+    "@volar/snapshot-document-2.1.2" = {
       name = "_at_volar_slash_snapshot-document";
       packageName = "@volar/snapshot-document";
-      version = "2.0.4";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@volar/snapshot-document/-/snapshot-document-2.0.4.tgz";
-        sha512 = "YzgdmvpdRFxiBFCOVWga67naAtbPtKmPaFtGnmxWx+KXrjGkpUXT/2tzeKn5FLdtoYV+DRTdpMdP/45ArnVwZQ==";
+        url = "https://registry.npmjs.org/@volar/snapshot-document/-/snapshot-document-2.1.2.tgz";
+        sha512 = "ZpJIBZrdm/Gx4jC/zn8H+O6H5vZZwY7B5CMTxl9y8HvcqlePOyDi+VkX8pjQz1VFG9Z5Z+Bau/RL6exqkoVDDA==";
       };
     };
     "@volar/source-map-1.4.1" = {
@@ -12775,22 +12730,22 @@ let
         sha512 = "bZ46ad72dsbzuOWPUtJjBXkzSQzzSejuR3CT81+GvTEI2E994D8JPXzM3tl98zyCNnjgs4OkRyliImL1dvJ5BA==";
       };
     };
-    "@volar/source-map-2.0.4" = {
+    "@volar/source-map-2.1.2" = {
       name = "_at_volar_slash_source-map";
       packageName = "@volar/source-map";
-      version = "2.0.4";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@volar/source-map/-/source-map-2.0.4.tgz";
-        sha512 = "BbxUinEMoJZqrHsSj1aBa0boCBnN3BoXnf7j9IBwjxosxGXOhCvqmH2L9raJemadaKjeVR8ZQLhV7AOhyoHt/Q==";
+        url = "https://registry.npmjs.org/@volar/source-map/-/source-map-2.1.2.tgz";
+        sha512 = "yFJqsuLm1OaWrsz9E3yd3bJcYIlHqdZ8MbmIoZLrAzMYQDcoF26/INIhgziEXSdyHc8xd7rd/tJdSnUyh0gH4Q==";
       };
     };
-    "@volar/typescript-2.0.4" = {
+    "@volar/typescript-2.1.2" = {
       name = "_at_volar_slash_typescript";
       packageName = "@volar/typescript";
-      version = "2.0.4";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@volar/typescript/-/typescript-2.0.4.tgz";
-        sha512 = "KF7yh7GIo4iWuAQOKf/ONeFHdQA+wFriitW8LtGZB4iOOT6MdlRlYNsRL8do7XxmXvsBKcs4jTMtGn+uZRwlWg==";
+        url = "https://registry.npmjs.org/@volar/typescript/-/typescript-2.1.2.tgz";
+        sha512 = "lhTancZqamvaLvoz0u/uth8dpudENNt2LFZOWCw9JZiX14xRFhdhfzmphiCRb7am9E6qAJSbdS/gMt1utXAoHQ==";
       };
     };
     "@volar/vue-language-core-1.6.5" = {
@@ -12865,13 +12820,13 @@ let
         sha512 = "z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==";
       };
     };
-    "@vscode/vsce-2.23.0" = {
+    "@vscode/vsce-2.24.0" = {
       name = "_at_vscode_slash_vsce";
       packageName = "@vscode/vsce";
-      version = "2.23.0";
+      version = "2.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.23.0.tgz";
-        sha512 = "Wf9yN8feZf4XmUW/erXyKQvCL577u72AQv4AI4Cwt5o5NyE49C5mpfw3pN78BJYYG3qnSIxwRo7JPvEurkQuNA==";
+        url = "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.24.0.tgz";
+        sha512 = "p6CIXpH5HXDqmUkgFXvIKTjZpZxy/uDx4d/UsfhS9vQUun43KDNUbYeZocyAHgqcJlPEurgArHz9te1PPiqPyA==";
       };
     };
     "@vue/cli-shared-utils-5.0.8" = {
@@ -12910,22 +12865,22 @@ let
         sha512 = "jNYQ+3z7HDZ3IR3Z3Dlo3yOPbHexpygkn2IJ7sjA62oGolnNWeF7kvpLwni18l8N5InhS66m9w31an1Fs5pCZA==";
       };
     };
-    "@vue/compiler-core-3.4.19" = {
+    "@vue/compiler-core-3.4.21" = {
       name = "_at_vue_slash_compiler-core";
       packageName = "@vue/compiler-core";
-      version = "3.4.19";
+      version = "3.4.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.19.tgz";
-        sha512 = "gj81785z0JNzRcU0Mq98E56e4ltO1yf8k5PQ+tV/7YHnbZkrM0fyFyuttnN8ngJZjbpofWE/m4qjKBiLl8Ju4w==";
+        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.21.tgz";
+        sha512 = "MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==";
       };
     };
-    "@vue/compiler-dom-3.4.19" = {
+    "@vue/compiler-dom-3.4.21" = {
       name = "_at_vue_slash_compiler-dom";
       packageName = "@vue/compiler-dom";
-      version = "3.4.19";
+      version = "3.4.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.19.tgz";
-        sha512 = "vm6+cogWrshjqEHTzIDCp72DKtea8Ry/QVpQRYoyTIg9k7QZDX6D8+HGURjtmatfgM8xgCFtJJaOlCaRYRK3QA==";
+        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz";
+        sha512 = "IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==";
       };
     };
     "@vue/compiler-sfc-2.7.16" = {
@@ -12937,40 +12892,40 @@ let
         sha512 = "KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==";
       };
     };
-    "@vue/compiler-sfc-3.4.19" = {
+    "@vue/compiler-sfc-3.4.21" = {
       name = "_at_vue_slash_compiler-sfc";
       packageName = "@vue/compiler-sfc";
-      version = "3.4.19";
+      version = "3.4.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.19.tgz";
-        sha512 = "LQ3U4SN0DlvV0xhr1lUsgLCYlwQfUfetyPxkKYu7dkfvx7g3ojrGAkw0AERLOKYXuAGnqFsEuytkdcComei3Yg==";
+        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz";
+        sha512 = "me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==";
       };
     };
-    "@vue/compiler-ssr-3.4.19" = {
+    "@vue/compiler-ssr-3.4.21" = {
       name = "_at_vue_slash_compiler-ssr";
       packageName = "@vue/compiler-ssr";
-      version = "3.4.19";
+      version = "3.4.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.19.tgz";
-        sha512 = "P0PLKC4+u4OMJ8sinba/5Z/iDT84uMRRlrWzadgLA69opCpI1gG4N55qDSC+dedwq2fJtzmGald05LWR5TFfLw==";
+        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.21.tgz";
+        sha512 = "M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==";
       };
     };
-    "@vue/reactivity-3.4.19" = {
+    "@vue/reactivity-3.4.21" = {
       name = "_at_vue_slash_reactivity";
       packageName = "@vue/reactivity";
-      version = "3.4.19";
+      version = "3.4.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.19.tgz";
-        sha512 = "+VcwrQvLZgEclGZRHx4O2XhyEEcKaBi50WbxdVItEezUf4fqRh838Ix6amWTdX0CNb/b6t3Gkz3eOebfcSt+UA==";
+        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.21.tgz";
+        sha512 = "UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==";
       };
     };
-    "@vue/shared-3.4.19" = {
+    "@vue/shared-3.4.21" = {
       name = "_at_vue_slash_shared";
       packageName = "@vue/shared";
-      version = "3.4.19";
+      version = "3.4.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.4.19.tgz";
-        sha512 = "/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==";
+        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.4.21.tgz";
+        sha512 = "PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==";
       };
     };
     "@webassemblyjs/ast-1.11.1" = {
@@ -12982,13 +12937,13 @@ let
         sha512 = "ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==";
       };
     };
-    "@webassemblyjs/ast-1.11.6" = {
+    "@webassemblyjs/ast-1.12.1" = {
       name = "_at_webassemblyjs_slash_ast";
       packageName = "@webassemblyjs/ast";
-      version = "1.11.6";
+      version = "1.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz";
-        sha512 = "IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==";
+        url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz";
+        sha512 = "EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==";
       };
     };
     "@webassemblyjs/ast-1.8.1" = {
@@ -13054,13 +13009,13 @@ let
         sha512 = "79RidFwQOl8vG+Wv1uQWfCw4JQO5XR8iQcNGKLum3oPsSG8jkuEK5ILT6NxT3MNOa+xwSd3d+YqVFB1V0/W7/w==";
       };
     };
-    "@webassemblyjs/helper-buffer-1.11.6" = {
+    "@webassemblyjs/helper-buffer-1.12.1" = {
       name = "_at_webassemblyjs_slash_helper-buffer";
       packageName = "@webassemblyjs/helper-buffer";
-      version = "1.11.6";
+      version = "1.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz";
-        sha512 = "z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==";
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz";
+        sha512 = "nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==";
       };
     };
     "@webassemblyjs/helper-buffer-1.8.1" = {
@@ -13180,13 +13135,13 @@ let
         sha512 = "MDdqmxj6ea1qfHBLKVHaF2+IyWLQtw8+bvRaeZc4MtcO7dNBz/2cZZ/GCFN9kGTJVvhe37tkeCi2JAB3evoU2w==";
       };
     };
-    "@webassemblyjs/helper-wasm-section-1.11.6" = {
+    "@webassemblyjs/helper-wasm-section-1.12.1" = {
       name = "_at_webassemblyjs_slash_helper-wasm-section";
       packageName = "@webassemblyjs/helper-wasm-section";
-      version = "1.11.6";
+      version = "1.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz";
-        sha512 = "LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==";
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz";
+        sha512 = "Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==";
       };
     };
     "@webassemblyjs/helper-wasm-section-1.8.1" = {
@@ -13288,22 +13243,22 @@ let
         sha512 = "qNByLv/qST8x4CshQ8vUuX/+OebI9gK+FHkGPMnLnwALKFJOG0jIxG8TXaf2L+fVHNyd96qhsZ/GL54G3KTjpg==";
       };
     };
-    "@webassemblyjs/wasm-edit-1.11.6" = {
+    "@webassemblyjs/wasm-edit-1.12.1" = {
       name = "_at_webassemblyjs_slash_wasm-edit";
       packageName = "@webassemblyjs/wasm-edit";
-      version = "1.11.6";
+      version = "1.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz";
-        sha512 = "Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==";
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz";
+        sha512 = "1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==";
       };
     };
-    "@webassemblyjs/wasm-gen-1.11.6" = {
+    "@webassemblyjs/wasm-gen-1.12.1" = {
       name = "_at_webassemblyjs_slash_wasm-gen";
       packageName = "@webassemblyjs/wasm-gen";
-      version = "1.11.6";
+      version = "1.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz";
-        sha512 = "3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==";
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz";
+        sha512 = "TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==";
       };
     };
     "@webassemblyjs/wasm-gen-1.8.1" = {
@@ -13315,13 +13270,13 @@ let
         sha512 = "xOgoGf6rR6gHlhlNlU0EfMIgDAjbLCO2cNdEIKdGfKj2/fc02pbAyS3gYJ6EWAzSnL/XpAOf3Q/trp/EUeikug==";
       };
     };
-    "@webassemblyjs/wasm-opt-1.11.6" = {
+    "@webassemblyjs/wasm-opt-1.12.1" = {
       name = "_at_webassemblyjs_slash_wasm-opt";
       packageName = "@webassemblyjs/wasm-opt";
-      version = "1.11.6";
+      version = "1.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz";
-        sha512 = "cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==";
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz";
+        sha512 = "Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==";
       };
     };
     "@webassemblyjs/wasm-parser-1.11.1" = {
@@ -13333,13 +13288,13 @@ let
         sha512 = "rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==";
       };
     };
-    "@webassemblyjs/wasm-parser-1.11.6" = {
+    "@webassemblyjs/wasm-parser-1.12.1" = {
       name = "_at_webassemblyjs_slash_wasm-parser";
       packageName = "@webassemblyjs/wasm-parser";
-      version = "1.11.6";
+      version = "1.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz";
-        sha512 = "6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==";
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz";
+        sha512 = "xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==";
       };
     };
     "@webassemblyjs/wasm-parser-1.8.1" = {
@@ -13378,13 +13333,13 @@ let
         sha512 = "IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==";
       };
     };
-    "@webassemblyjs/wast-printer-1.11.6" = {
+    "@webassemblyjs/wast-printer-1.12.1" = {
       name = "_at_webassemblyjs_slash_wast-printer";
       packageName = "@webassemblyjs/wast-printer";
-      version = "1.11.6";
+      version = "1.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz";
-        sha512 = "JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==";
+        url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz";
+        sha512 = "+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==";
       };
     };
     "@webassemblyjs/wast-printer-1.8.1" = {
@@ -13441,22 +13396,22 @@ let
         sha512 = "AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==";
       };
     };
-    "@whatwg-node/fetch-0.9.16" = {
+    "@whatwg-node/fetch-0.9.17" = {
       name = "_at_whatwg-node_slash_fetch";
       packageName = "@whatwg-node/fetch";
-      version = "0.9.16";
+      version = "0.9.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.16.tgz";
-        sha512 = "mqasZiUNquRe3ea9+aCAuo81BR6vq5opUKprPilIHTnrg8a21Z1T1OrI+KiMFX8OmwO5HUJe/vro47lpj2JPWQ==";
+        url = "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.17.tgz";
+        sha512 = "TDYP3CpCrxwxpiNY0UMNf096H5Ihf67BK1iKGegQl5u9SlpEDYrvnV71gWBGJm+Xm31qOy8ATgma9rm8Pe7/5Q==";
       };
     };
-    "@whatwg-node/node-fetch-0.5.6" = {
+    "@whatwg-node/node-fetch-0.5.8" = {
       name = "_at_whatwg-node_slash_node-fetch";
       packageName = "@whatwg-node/node-fetch";
-      version = "0.5.6";
+      version = "0.5.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.6.tgz";
-        sha512 = "cmAsGMHoI0S3AHi3CmD3ma1Q234ZI2JNmXyDyM9rLtbXejBKxU3ZWdhS+mzRIAyUxZCMGlFW1tHmROv0MDdxpw==";
+        url = "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.8.tgz";
+        sha512 = "rB+2P3oi9fD4TcsijkflJAQqOh4yZrPgOV4fGaDgCdOqqwTicJvL2nnVbr3comW8bxEuypOcyE1AtBtkpip0Gw==";
       };
     };
     "@xmldom/xmldom-0.7.13" = {
@@ -14386,15 +14341,6 @@ let
         sha512 = "GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==";
       };
     };
-    "all-package-names-2.0.859" = {
-      name = "all-package-names";
-      packageName = "all-package-names";
-      version = "2.0.859";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/all-package-names/-/all-package-names-2.0.859.tgz";
-        sha512 = "pqpWYHx5Jp8c5WjjsNKO1jtLB7lhH+G2NEnCZavawDnxULs1nV74YKmXoHntrPC2vEn7dJgH1R6hzCxQzkWbjQ==";
-      };
-    };
     "amdefine-1.0.1" = {
       name = "amdefine";
       packageName = "amdefine";
@@ -15349,15 +15295,6 @@ let
         sha512 = "SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==";
       };
     };
-    "array.prototype.filter-1.0.3" = {
-      name = "array.prototype.filter";
-      packageName = "array.prototype.filter";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz";
-        sha512 = "VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==";
-      };
-    };
     "array.prototype.findlastindex-1.2.4" = {
       name = "array.prototype.findlastindex";
       packageName = "array.prototype.findlastindex";
@@ -15493,6 +15430,15 @@ let
         sha512 = "ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==";
       };
     };
+    "asn1.js-4.10.1" = {
+      name = "asn1.js";
+      packageName = "asn1.js";
+      version = "4.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz";
+        sha512 = "p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==";
+      };
+    };
     "asn1.js-5.4.1" = {
       name = "asn1.js";
       packageName = "asn1.js";
@@ -15592,6 +15538,15 @@ let
         sha512 = "H2izJAyT2xwew4TxShpmxe6f9R5hHgJQy1QloLiUC2yrJMtyraBWNJL7903rpeCY9keNUipORR/zIUC2XcYKng==";
       };
     };
+    "ast-types-0.13.4" = {
+      name = "ast-types";
+      packageName = "ast-types";
+      version = "0.13.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz";
+        sha512 = "x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==";
+      };
+    };
     "ast-types-0.14.2" = {
       name = "ast-types";
       packageName = "ast-types";
@@ -15808,6 +15763,15 @@ let
         sha512 = "eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==";
       };
     };
+    "async-mutex-0.4.1" = {
+      name = "async-mutex";
+      packageName = "async-mutex";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.1.tgz";
+        sha512 = "WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==";
+      };
+    };
     "async-retry-1.3.3" = {
       name = "async-retry";
       packageName = "async-retry";
@@ -15835,15 +15799,6 @@ let
         sha512 = "VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==";
       };
     };
-    "asynciterator.prototype-1.0.0" = {
-      name = "asynciterator.prototype";
-      packageName = "asynciterator.prototype";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz";
-        sha512 = "wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==";
-      };
-    };
     "asynckit-0.4.0" = {
       name = "asynckit";
       packageName = "asynckit";
@@ -15907,13 +15862,13 @@ let
         sha512 = "ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==";
       };
     };
-    "autoprefixer-10.4.17" = {
+    "autoprefixer-10.4.18" = {
       name = "autoprefixer";
       packageName = "autoprefixer";
-      version = "10.4.17";
+      version = "10.4.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz";
-        sha512 = "/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==";
+        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz";
+        sha512 = "1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==";
       };
     };
     "autoprefixer-9.8.8" = {
@@ -15925,13 +15880,13 @@ let
         sha512 = "eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==";
       };
     };
-    "available-typed-arrays-1.0.6" = {
+    "available-typed-arrays-1.0.7" = {
       name = "available-typed-arrays";
       packageName = "available-typed-arrays";
-      version = "1.0.6";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz";
-        sha512 = "j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==";
+        url = "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz";
+        sha512 = "wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==";
       };
     };
     "await-semaphore-0.1.3" = {
@@ -16042,13 +15997,13 @@ let
         sha512 = "S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==";
       };
     };
-    "axios-1.6.7" = {
+    "axios-1.6.8" = {
       name = "axios";
       packageName = "axios";
-      version = "1.6.7";
+      version = "1.6.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz";
-        sha512 = "/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==";
+        url = "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz";
+        sha512 = "v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==";
       };
     };
     "axobject-query-4.0.0" = {
@@ -16123,13 +16078,13 @@ let
         sha512 = "MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==";
       };
     };
-    "babel-plugin-polyfill-corejs2-0.4.8" = {
+    "babel-plugin-polyfill-corejs2-0.4.10" = {
       name = "babel-plugin-polyfill-corejs2";
       packageName = "babel-plugin-polyfill-corejs2";
-      version = "0.4.8";
+      version = "0.4.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz";
-        sha512 = "OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz";
+        sha512 = "rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==";
       };
     };
     "babel-plugin-polyfill-corejs3-0.9.0" = {
@@ -16384,6 +16339,15 @@ let
         sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==";
       };
     };
+    "basic-ftp-5.0.5" = {
+      name = "basic-ftp";
+      packageName = "basic-ftp";
+      version = "5.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz";
+        sha512 = "4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==";
+      };
+    };
     "batch-0.6.1" = {
       name = "batch";
       packageName = "batch";
@@ -16573,13 +16537,13 @@ let
         sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==";
       };
     };
-    "binary-extensions-2.2.0" = {
+    "binary-extensions-2.3.0" = {
       name = "binary-extensions";
       packageName = "binary-extensions";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz";
-        sha512 = "jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==";
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz";
+        sha512 = "Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==";
       };
     };
     "binary-search-1.3.6" = {
@@ -16618,13 +16582,13 @@ let
         sha512 = "VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==";
       };
     };
-    "bit-field-1.8.0" = {
+    "bit-field-1.9.0" = {
       name = "bit-field";
       packageName = "bit-field";
-      version = "1.8.0";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bit-field/-/bit-field-1.8.0.tgz";
-        sha512 = "xChg+vwCPZckjT1s0bJU5KbGWVqA+LDsi4YOiXVFntl+yzlPpBMdyeDU/wTTqoKAZAdOMDfGjpOUyP+untdOWQ==";
+        url = "https://registry.npmjs.org/bit-field/-/bit-field-1.9.0.tgz";
+        sha512 = "/rVbn/yK2UBwfrlwUnNFM/MtYC5zsX+5fq8kC4J9uAPPVFWJW332TFjFlD9qMeWxwtHR014Rg5JyrLbSI9Vrlw==";
       };
     };
     "bitfield-0.1.0" = {
@@ -17329,13 +17293,13 @@ let
         sha512 = "AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==";
       };
     };
-    "browserify-sign-4.2.2" = {
+    "browserify-sign-4.2.3" = {
       name = "browserify-sign";
       packageName = "browserify-sign";
-      version = "4.2.2";
+      version = "4.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz";
-        sha512 = "1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==";
+        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz";
+        sha512 = "JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==";
       };
     };
     "browserify-zlib-0.2.0" = {
@@ -17383,13 +17347,13 @@ let
         sha512 = "gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==";
       };
     };
-    "bsert-0.0.12" = {
+    "bsert-0.0.13" = {
       name = "bsert";
       packageName = "bsert";
-      version = "0.0.12";
+      version = "0.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bsert/-/bsert-0.0.12.tgz";
-        sha512 = "lUB0EMu4KhIf+VQ6RZJ7J3dFdohYSeta+gNgDi00Hi/t3k/W6xZlwm9PSSG0q7hJ2zW9Rsn5yaMPymETxroTRw==";
+        url = "https://registry.npmjs.org/bsert/-/bsert-0.0.13.tgz";
+        sha512 = "gYzSj8I2lDTKvl4aRSYs2CZIpeJugq7RjGhLRG+Jl//gEW5B2u1MKB6exVCL09FqYj6JRQAAgRwQHMOWvr7A8A==";
       };
     };
     "btoa-1.2.1" = {
@@ -17698,15 +17662,6 @@ let
         sha512 = "qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==";
       };
     };
-    "bundle-name-3.0.0" = {
-      name = "bundle-name";
-      packageName = "bundle-name";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz";
-        sha512 = "PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==";
-      };
-    };
     "bundle-name-4.1.0" = {
       name = "bundle-name";
       packageName = "bundle-name";
@@ -18031,15 +17986,6 @@ let
         sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==";
       };
     };
-    "callsites-4.1.0" = {
-      name = "callsites";
-      packageName = "callsites";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/callsites/-/callsites-4.1.0.tgz";
-        sha512 = "aBMbD1Xxay75ViYezwT40aQONfr+pSXTHwNKvIXhXD6+LY3F1dLIcceoC5OZKBVHbXcysz1hL9D2w0JJIMXpUw==";
-      };
-    };
     "camel-case-3.0.0" = {
       name = "camel-case";
       packageName = "camel-case";
@@ -18193,13 +18139,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001587" = {
+    "caniuse-lite-1.0.30001599" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001587";
+      version = "1.0.30001599";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz";
-        sha512 = "HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz";
+        sha512 = "LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==";
       };
     };
     "canvas-2.11.2" = {
@@ -18328,31 +18274,31 @@ let
         sha512 = "eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==";
       };
     };
-    "cdk8s-2.68.38" = {
+    "cdk8s-2.68.46" = {
       name = "cdk8s";
       packageName = "cdk8s";
-      version = "2.68.38";
+      version = "2.68.46";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-2.68.38.tgz";
-        sha512 = "1BMZ2lAt5TjaFnproUocU9oj1GLAIfUvdJAcrkso0SwsaaL2bV1rng5hJQZfK1xl2GbhpWLeep29kuSNGQWpwg==";
+        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-2.68.46.tgz";
+        sha512 = "dTT0ug2XeWnov5rAEeRUu0R8J7/mVPInBHH8QqCADDWvBShT/76yJsdkKj0Q2he0RluOtWabwXACCW1DeOlqxg==";
       };
     };
-    "cdk8s-plus-25-2.22.76" = {
+    "cdk8s-plus-25-2.22.79" = {
       name = "cdk8s-plus-25";
       packageName = "cdk8s-plus-25";
-      version = "2.22.76";
+      version = "2.22.79";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s-plus-25/-/cdk8s-plus-25-2.22.76.tgz";
-        sha512 = "85WWL/++F4yc8clZ+LUAjE6qYiZDnKUTz+OMPtd44jgqYUaqWkCqcU3wA8HkIGUmCDUi9gYFGuctdw+3I8wu8A==";
+        url = "https://registry.npmjs.org/cdk8s-plus-25/-/cdk8s-plus-25-2.22.79.tgz";
+        sha512 = "QSxCBAbLvDJvC3lqt7lO2x8Il84kCsrwIdfAVFxUiwh4wHQxi18ENI9JI16tEhS/2gxv1YyeUNBM1ucH6q9oJA==";
       };
     };
-    "cdktf-0.20.3" = {
+    "cdktf-0.20.5" = {
       name = "cdktf";
       packageName = "cdktf";
-      version = "0.20.3";
+      version = "0.20.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.20.3.tgz";
-        sha512 = "y8F3pjYzbMHy9ZG3yXSSerx2Yv9dr2i2j2842IKT1tpN74CBfuuPrselTNdI6QoaMvlQJQQB2l93cJmL6eIkaw==";
+        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.20.5.tgz";
+        sha512 = "CA0RkrKJETnaxGG6fBQHiojTZ8Sl+MCYsISbOqYYRfakHaM9mN4/a0v0bH1u5zi9ODyjyUmjfh7BqGfZagMjRw==";
       };
     };
     "center-align-0.1.3" = {
@@ -18814,15 +18760,6 @@ let
         sha512 = "5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==";
       };
     };
-    "ci-info-3.8.0" = {
-      name = "ci-info";
-      packageName = "ci-info";
-      version = "3.8.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz";
-        sha512 = "eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==";
-      };
-    };
     "ci-info-3.9.0" = {
       name = "ci-info";
       packageName = "ci-info";
@@ -19066,15 +19003,6 @@ let
         sha512 = "tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==";
       };
     };
-    "cli-spinners-1.3.1" = {
-      name = "cli-spinners";
-      packageName = "cli-spinners";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz";
-        sha512 = "1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==";
-      };
-    };
     "cli-spinners-2.6.1" = {
       name = "cli-spinners";
       packageName = "cli-spinners";
@@ -19102,15 +19030,6 @@ let
         sha512 = "IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==";
       };
     };
-    "cli-table3-0.5.1" = {
-      name = "cli-table3";
-      packageName = "cli-table3";
-      version = "0.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz";
-        sha512 = "7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==";
-      };
-    };
     "cli-table3-0.6.3" = {
       name = "cli-table3";
       packageName = "cli-table3";
@@ -19588,22 +19507,22 @@ let
         sha512 = "7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==";
       };
     };
-    "codemaker-1.93.0" = {
+    "codemaker-1.94.0" = {
       name = "codemaker";
       packageName = "codemaker";
-      version = "1.93.0";
+      version = "1.94.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.93.0.tgz";
-        sha512 = "n9AdncxhGti20YhA7HI2oAYhELh/qlDnW9JIAYQW9iULXdeaKtsxHgvcwBCltpieOcQrq10bt+sUawBs62vxLg==";
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.94.0.tgz";
+        sha512 = "V+896C7RojQVfG0UlOXaFfVVxmFb08rPtJvzcxhdJfowc2o6xGwGG0OpWSLHy6fQrmt4BxLXnKZ6Xeuqt4aKjw==";
       };
     };
-    "codemaker-1.94.0" = {
+    "codemaker-1.95.0" = {
       name = "codemaker";
       packageName = "codemaker";
-      version = "1.94.0";
+      version = "1.95.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.94.0.tgz";
-        sha512 = "V+896C7RojQVfG0UlOXaFfVVxmFb08rPtJvzcxhdJfowc2o6xGwGG0OpWSLHy6fQrmt4BxLXnKZ6Xeuqt4aKjw==";
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.95.0.tgz";
+        sha512 = "q/U2NeZSaKnVMarOi+BR8MbaHEFKVmBefTSSXj/0W4OBarw/uUT2qCPojYF16gJtfFz7qCkJeuP+zYDq+xNEpg==";
       };
     };
     "coffeescript-2.7.0" = {
@@ -19759,15 +19678,6 @@ let
         sha512 = "ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==";
       };
     };
-    "colors-1.2.5" = {
-      name = "colors";
-      packageName = "colors";
-      version = "1.2.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz";
-        sha512 = "erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==";
-      };
-    };
     "colors-1.4.0" = {
       name = "colors";
       packageName = "colors";
@@ -19885,6 +19795,15 @@ let
         sha512 = "yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==";
       };
     };
+    "commander-12.0.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "12.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz";
+        sha512 = "MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==";
+      };
+    };
     "commander-2.11.0" = {
       name = "commander";
       packageName = "commander";
@@ -20011,15 +19930,6 @@ let
         sha512 = "KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==";
       };
     };
-    "commander-version-1.1.0" = {
-      name = "commander-version";
-      packageName = "commander-version";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/commander-version/-/commander-version-1.1.0.tgz";
-        sha512 = "9aNW4N6q6EPDUszLRH6k9IwO6OoGYh3HRgUF/fA7Zs+Mz1v1x5akSqT7QGB8JsGY7AG7qMA7oRRB/4yyn33FYA==";
-      };
-    };
     "comment-json-1.1.3" = {
       name = "comment-json";
       packageName = "comment-json";
@@ -20074,6 +19984,15 @@ let
         sha512 = "j1yoUo4gxPND1JWV9xj5ELih0yMv1iCWDG6eEQIPLSWLxzCXiFoyS7kvB+WwU+tZMf4snwJMMtaubV0laFpiBA==";
       };
     };
+    "commonmark-0.31.0" = {
+      name = "commonmark";
+      packageName = "commonmark";
+      version = "0.31.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commonmark/-/commonmark-0.31.0.tgz";
+        sha512 = "nuDsQ34gjmgAqjyIz6mbRWBW/XPE9wsBempAMBk2V/AA88ekztjTM46oi07J6c6Y/2Y8TdYCZi9L0pIBt/oMZw==";
+      };
+    };
     "compact2string-1.4.1" = {
       name = "compact2string";
       packageName = "compact2string";
@@ -20912,22 +20831,22 @@ let
         sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==";
       };
     };
-    "core-js-3.36.0" = {
+    "core-js-3.36.1" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.36.0";
+      version = "3.36.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz";
-        sha512 = "mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.36.1.tgz";
+        sha512 = "BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==";
       };
     };
-    "core-js-compat-3.36.0" = {
+    "core-js-compat-3.36.1" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.36.0";
+      version = "3.36.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz";
-        sha512 = "iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz";
+        sha512 = "Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -21011,6 +20930,15 @@ let
         sha512 = "kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==";
       };
     };
+    "cosmiconfig-9.0.0" = {
+      name = "cosmiconfig";
+      packageName = "cosmiconfig";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz";
+        sha512 = "itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==";
+      };
+    };
     "cosmiconfig-toml-loader-1.0.0" = {
       name = "cosmiconfig-toml-loader";
       packageName = "cosmiconfig-toml-loader";
@@ -21344,13 +21272,13 @@ let
         sha512 = "x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==";
       };
     };
-    "cspell-config-lib-8.3.2" = {
+    "cspell-config-lib-8.6.0" = {
       name = "cspell-config-lib";
       packageName = "cspell-config-lib";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.3.2.tgz";
-        sha512 = "Wc98XhBNLwDxnxCzMtgRJALI9a69cu3C5Gf1rGjNTKSFo9JYiQmju0Ur3z25Pkx9Sa86f+2IjvNCf33rUDSoBQ==";
+        url = "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-8.6.0.tgz";
+        sha512 = "Q1rvQFUDJTu4hUtxwL6+q83Hjx/a5grEjMS5axxFJzjJuFRbRsXCagncdSCx/YBqLkNM5noBbRP/0rVh7ufqxw==";
       };
     };
     "cspell-dict-vimlang-1.0.1" = {
@@ -21362,22 +21290,22 @@ let
         sha512 = "pP2W2BvLrRKggS1fUk8qQw2FG8PhyV969dlwF3M0jAg/HH83n76H+KGdzGsmEut6VJFlJYQkd1ZZskjaeVWnrA==";
       };
     };
-    "cspell-dictionary-8.3.2" = {
+    "cspell-dictionary-8.6.0" = {
       name = "cspell-dictionary";
       packageName = "cspell-dictionary";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.3.2.tgz";
-        sha512 = "xyK95hO2BMPFxIo8zBwGml8035qOxSBdga1BMhwW/p2wDrQP8S4Cdm/54//tCDmKn6uRkFQvyOfWGaX2l8WMEg==";
+        url = "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-8.6.0.tgz";
+        sha512 = "ohToeOQznIrb2/z7RfKxX3NID0WiO4sXK3IxKdnbn2viGgdn17tQ8Z2f4Xuy9egjSGRKyr6N25Z5AOes1C8R3w==";
       };
     };
-    "cspell-gitignore-8.3.2" = {
+    "cspell-gitignore-8.6.0" = {
       name = "cspell-gitignore";
       packageName = "cspell-gitignore";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.3.2.tgz";
-        sha512 = "3Qc9P5BVvl/cg//s2s+zIMGKcoH5v7oOtRgwn4UQry8yiyo19h0tiTKkSR574FMhF5NtcShTnwIwPSIXVBPFHA==";
+        url = "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-8.6.0.tgz";
+        sha512 = "6INRlNb17iKtQH7NmDM/EsX5OZOD2TzIwHiJnnWci0Y5l10V/zN9WGLDegTjMh9HU3TS6uUuN4I/ffkCs9m+LA==";
       };
     };
     "cspell-glob-0.1.25" = {
@@ -21389,22 +21317,22 @@ let
         sha512 = "/XaSHrGBpMJa+duFz3GKOWfrijrfdHT7a/XGgIcq3cymCSpOH+DPho42sl0jLI/hjM+8yv2m8aEoxRT8yVSnlg==";
       };
     };
-    "cspell-glob-8.3.2" = {
+    "cspell-glob-8.6.0" = {
       name = "cspell-glob";
       packageName = "cspell-glob";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.3.2.tgz";
-        sha512 = "KtIFxE+3l5dGEofND4/CdZffXP8XN1+XGQKxJ96lIzWsc01mkotfhxTkla6mgvfH039t7BsY/SWv0460KyGslQ==";
+        url = "https://registry.npmjs.org/cspell-glob/-/cspell-glob-8.6.0.tgz";
+        sha512 = "AyuExc34F8JsEYNl4inx1m1v5VoSRA/cTptREq/AoNTcMTyG5s+wt5J+VWBfvJjEDEEpd9Cb2it0j8TMo/Tpjw==";
       };
     };
-    "cspell-grammar-8.3.2" = {
+    "cspell-grammar-8.6.0" = {
       name = "cspell-grammar";
       packageName = "cspell-grammar";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.3.2.tgz";
-        sha512 = "tYCkOmRzJe1a6/R+8QGSwG7TwTgznLPqsHtepKzLmnS4YX54VXjKRI9zMARxXDzUVfyCSVdW5MyiY/0WTNoy+A==";
+        url = "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-8.6.0.tgz";
+        sha512 = "wVpZ4pPOqRoOmzLUc34wyOQnBi/6RsV3Y1KiPn8BNSkObb9XSohb1xJJMJ69unEmgE0snQDMHIeUaLTQH414MA==";
       };
     };
     "cspell-io-4.1.7" = {
@@ -21416,13 +21344,13 @@ let
         sha512 = "V0/tUu9FnIS3v+vAvDT6NNa14Nc/zUNX8+YUUOfFAiDJJTdqefmvcWjOJBIMYBf3wIk9iWLmLbMM+bNHqr7DSQ==";
       };
     };
-    "cspell-io-8.3.2" = {
+    "cspell-io-8.6.0" = {
       name = "cspell-io";
       packageName = "cspell-io";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-io/-/cspell-io-8.3.2.tgz";
-        sha512 = "WYpKsyBCQP0SY4gXnhW5fPuxcYchKYKG1PIXVV3ezFU4muSgW6GuLNbGuSfwv/8YNXRgFSN0e3hYH0rdBK2Aow==";
+        url = "https://registry.npmjs.org/cspell-io/-/cspell-io-8.6.0.tgz";
+        sha512 = "jx7ccRpcshqxN6xnOiGnX4VycaqTpmatRjHITn4vLoDmQNfxQeU69YT62bhyjogCBuJsZS9ksjo7GQIsrYBekA==";
       };
     };
     "cspell-lib-4.3.12" = {
@@ -21434,13 +21362,13 @@ let
         sha512 = "yCCb6MoW1K8Tsr/WVEQoO4dfYhH9bCsjQayccb8MlyDaNNuWJHuX+gUGHsZSXSuChSh8PrTWKXJzs13/uM977g==";
       };
     };
-    "cspell-lib-8.3.2" = {
+    "cspell-lib-8.6.0" = {
       name = "cspell-lib";
       packageName = "cspell-lib";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.3.2.tgz";
-        sha512 = "wTvdaev/TyGB/ln6CVD1QbVs2D7/+QiajQ67S7yj1suLHM6YcNQQb/5sPAM8VPtj0E7PgwgPXf3bq18OtPvnFg==";
+        url = "https://registry.npmjs.org/cspell-lib/-/cspell-lib-8.6.0.tgz";
+        sha512 = "l1bBxBz8noPOxEIIu1Ahvd4e/j6Re1PNDD9FwZgaRmvMyIPZbupTxzCM0MZWvYz1VymBmrrVEKRwtZ34VocaCw==";
       };
     };
     "cspell-trie-lib-4.2.8" = {
@@ -21452,13 +21380,13 @@ let
         sha512 = "Nt3c0gxOYXIc3/yhALDukpje1BgR6guvlUKWQO2zb0r7qRWpwUw2j2YM4dWbHQeH/3Hx5ei4Braa6cMaiJ5YBw==";
       };
     };
-    "cspell-trie-lib-8.3.2" = {
+    "cspell-trie-lib-8.6.0" = {
       name = "cspell-trie-lib";
       packageName = "cspell-trie-lib";
-      version = "8.3.2";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.3.2.tgz";
-        sha512 = "8qh2FqzkLMwzlTlvO/5Z+89fhi30rrfekocpight/BmqKbE2XFJQD7wS2ml24e7q/rdHJLXVpJbY/V5mByucCA==";
+        url = "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-8.6.0.tgz";
+        sha512 = "S8nGCnEJBL1maiKPd3FhI54QG+OgtOkcJ/yUDXGXGrokSruWFdNocioPirlFAHf959ax1GBUVEYNIgnu/EIWNg==";
       };
     };
     "cspell-util-bundle-4.1.11" = {
@@ -21641,13 +21569,13 @@ let
         sha512 = "j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==";
       };
     };
-    "cssnano-6.0.3" = {
+    "cssnano-6.1.0" = {
       name = "cssnano";
       packageName = "cssnano";
-      version = "6.0.3";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cssnano/-/cssnano-6.0.3.tgz";
-        sha512 = "MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw==";
+        url = "https://registry.npmjs.org/cssnano/-/cssnano-6.1.0.tgz";
+        sha512 = "e2v4w/t3OFM6HTuSweI4RSdABaqgVgHlJp5FZrQsopHnKKHLFIvK2D3C4kHWeFIycN/1L1J5VIrg5KlDzn3r/g==";
       };
     };
     "cssnano-preset-default-5.2.14" = {
@@ -21659,13 +21587,13 @@ let
         sha512 = "t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==";
       };
     };
-    "cssnano-preset-default-6.0.3" = {
+    "cssnano-preset-default-6.1.0" = {
       name = "cssnano-preset-default";
       packageName = "cssnano-preset-default";
-      version = "6.0.3";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.3.tgz";
-        sha512 = "4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA==";
+        url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.0.tgz";
+        sha512 = "4DUXZoDj+PI3fRl3MqMjl9DwLGjcsFP4qt+92nLUcN1RGfw2TY+GwNoG2B38Usu1BrcTs8j9pxNfSusmvtSjfg==";
       };
     };
     "cssnano-utils-3.1.0" = {
@@ -21677,13 +21605,13 @@ let
         sha512 = "JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==";
       };
     };
-    "cssnano-utils-4.0.1" = {
+    "cssnano-utils-4.0.2" = {
       name = "cssnano-utils";
       packageName = "cssnano-utils";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.1.tgz";
-        sha512 = "6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==";
+        url = "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz";
+        sha512 = "ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==";
       };
     };
     "csso-2.0.0" = {
@@ -21794,13 +21722,13 @@ let
         sha512 = "byxnDBxM1AVF3YfmsK7Smop9/usNz7gAZYSo9eYp61TGcNXraJby1rAiLyJSt1/8Iho2qaxZOtZCOvQMXogPtg==";
       };
     };
-    "csv-parse-5.5.3" = {
+    "csv-parse-5.5.5" = {
       name = "csv-parse";
       packageName = "csv-parse";
-      version = "5.5.3";
+      version = "5.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.3.tgz";
-        sha512 = "v0KW6C0qlZzoGjk6u5tLmVfyZxNgPGXZsWTXshpAgKVGmGXzaVWGdlCFxNx5iuzcXT/oJN1HHM9DZKwtAtYa+A==";
+        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.5.tgz";
+        sha512 = "erCk7tyU3yLWAhk6wvKxnyPtftuy/6Ak622gOO7BCJ05+TYffnPCJF905wmOQm+BpkX54OdAl8pveJwUdpnCXQ==";
       };
     };
     "csv-stream-0.2.0" = {
@@ -21920,22 +21848,22 @@ let
         sha512 = "ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==";
       };
     };
-    "d-1.0.1" = {
+    "d-1.0.2" = {
       name = "d";
       packageName = "d";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d/-/d-1.0.1.tgz";
-        sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==";
+        url = "https://registry.npmjs.org/d/-/d-1.0.2.tgz";
+        sha512 = "MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==";
       };
     };
-    "d3-7.8.5" = {
+    "d3-7.9.0" = {
       name = "d3";
       packageName = "d3";
-      version = "7.8.5";
+      version = "7.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3/-/d3-7.8.5.tgz";
-        sha512 = "JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA==";
+        url = "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz";
+        sha512 = "e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==";
       };
     };
     "d3-array-2.12.1" = {
@@ -22073,13 +22001,13 @@ let
         sha512 = "YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==";
       };
     };
-    "d3-geo-3.1.0" = {
+    "d3-geo-3.1.1" = {
       name = "d3-geo";
       packageName = "d3-geo";
-      version = "3.1.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz";
-        sha512 = "JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==";
+        url = "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz";
+        sha512 = "637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==";
       };
     };
     "d3-geo-projection-4.0.0" = {
@@ -22181,13 +22109,13 @@ let
         sha512 = "GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==";
       };
     };
-    "d3-scale-chromatic-3.0.0" = {
+    "d3-scale-chromatic-3.1.0" = {
       name = "d3-scale-chromatic";
       packageName = "d3-scale-chromatic";
-      version = "3.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz";
-        sha512 = "Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==";
+        url = "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz";
+        sha512 = "A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==";
       };
     };
     "d3-selection-3.0.0" = {
@@ -22352,6 +22280,15 @@ let
         sha512 = "0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==";
       };
     };
+    "data-uri-to-buffer-6.0.2" = {
+      name = "data-uri-to-buffer";
+      packageName = "data-uri-to-buffer";
+      version = "6.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz";
+        sha512 = "7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==";
+      };
+    };
     "data-urls-1.1.0" = {
       name = "data-urls";
       packageName = "data-urls";
@@ -22379,6 +22316,33 @@ let
         sha512 = "/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==";
       };
     };
+    "data-view-buffer-1.0.1" = {
+      name = "data-view-buffer";
+      packageName = "data-view-buffer";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz";
+        sha512 = "0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==";
+      };
+    };
+    "data-view-byte-length-1.0.1" = {
+      name = "data-view-byte-length";
+      packageName = "data-view-byte-length";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz";
+        sha512 = "4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==";
+      };
+    };
+    "data-view-byte-offset-1.0.0" = {
+      name = "data-view-byte-offset";
+      packageName = "data-view-byte-offset";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz";
+        sha512 = "t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==";
+      };
+    };
     "dataloader-2.0.0" = {
       name = "dataloader";
       packageName = "dataloader";
@@ -22865,15 +22829,6 @@ let
         sha512 = "3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==";
       };
     };
-    "default-browser-4.0.0" = {
-      name = "default-browser";
-      packageName = "default-browser";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz";
-        sha512 = "wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==";
-      };
-    };
     "default-browser-5.2.1" = {
       name = "default-browser";
       packageName = "default-browser";
@@ -22883,15 +22838,6 @@ let
         sha512 = "WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==";
       };
     };
-    "default-browser-id-3.0.0" = {
-      name = "default-browser-id";
-      packageName = "default-browser-id";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz";
-        sha512 = "OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==";
-      };
-    };
     "default-browser-id-5.0.0" = {
       name = "default-browser-id";
       packageName = "default-browser-id";
@@ -23045,6 +22991,15 @@ let
         sha512 = "hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==";
       };
     };
+    "degenerator-5.0.1" = {
+      name = "degenerator";
+      packageName = "degenerator";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz";
+        sha512 = "TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==";
+      };
+    };
     "del-4.1.1" = {
       name = "del";
       packageName = "del";
@@ -23837,13 +23792,13 @@ let
         sha512 = "3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==";
       };
     };
-    "dompurify-3.0.8" = {
+    "dompurify-3.0.9" = {
       name = "dompurify";
       packageName = "dompurify";
-      version = "3.0.8";
+      version = "3.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dompurify/-/dompurify-3.0.8.tgz";
-        sha512 = "b7uwreMYL2eZhrSCRC4ahLTeZcPZxSmYfmcQGXGkXiZSNW1X85v+SDM5KsWcpivIiUBH47Ji7NtyUdpLeF5JZQ==";
+        url = "https://registry.npmjs.org/dompurify/-/dompurify-3.0.9.tgz";
+        sha512 = "uyb4NDIvQ3hRn6NiC+SIFaP4mJ/MdXlvtunaqK9Bn6dD3RuB/1S/gasEjDHD8eiaqdSael2vBv+hOs7Y+jhYOQ==";
       };
     };
     "domutils-1.4.3" = {
@@ -23981,13 +23936,13 @@ let
         sha512 = "HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ==";
       };
     };
-    "dotenv-16.4.4" = {
+    "dotenv-16.4.5" = {
       name = "dotenv";
       packageName = "dotenv";
-      version = "16.4.4";
+      version = "16.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz";
-        sha512 = "XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==";
+        url = "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz";
+        sha512 = "ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==";
       };
     };
     "dotenv-7.0.0" = {
@@ -24161,13 +24116,13 @@ let
         sha512 = "07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==";
       };
     };
-    "duplexify-4.1.2" = {
+    "duplexify-4.1.3" = {
       name = "duplexify";
       packageName = "duplexify";
-      version = "4.1.2";
+      version = "4.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz";
-        sha512 = "fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==";
+        url = "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz";
+        sha512 = "M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==";
       };
     };
     "e-prime-0.10.4" = {
@@ -24287,13 +24242,13 @@ let
         sha512 = "rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==";
       };
     };
-    "electron-to-chromium-1.4.673" = {
+    "electron-to-chromium-1.4.710" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.4.673";
+      version = "1.4.710";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.673.tgz";
-        sha512 = "zjqzx4N7xGdl5468G+vcgzDhaHkaYgVcf9MqgexcTqsl2UHSCmOj/Bi3HAprg4BZCpC7HyD8a6nZl6QAZf72gw==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.710.tgz";
+        sha512 = "w+9yAVHoHhysCa+gln7AzbO9CdjFcL/wN/5dd+XW/Msl2d/4+WisEaCF1nty0xbAKaxdaJfgLB2296U7zZB7BA==";
       };
     };
     "elegant-spinner-1.0.1" = {
@@ -24323,13 +24278,13 @@ let
         sha512 = "L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==";
       };
     };
-    "elliptic-6.5.4" = {
+    "elliptic-6.5.5" = {
       name = "elliptic";
       packageName = "elliptic";
-      version = "6.5.4";
+      version = "6.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz";
-        sha512 = "iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==";
+        url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz";
+        sha512 = "7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==";
       };
     };
     "emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz" = {
@@ -24360,13 +24315,13 @@ let
         sha512 = "AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==";
       };
     };
-    "emmet-2.4.6" = {
+    "emmet-2.4.7" = {
       name = "emmet";
       packageName = "emmet";
-      version = "2.4.6";
+      version = "2.4.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/emmet/-/emmet-2.4.6.tgz";
-        sha512 = "dJfbdY/hfeTyf/Ef7Y7ubLYzkBvPQ912wPaeVYpAxvFxkEBf/+hJu4H6vhAvFN6HlxqedlfVn2x1S44FfQ97pg==";
+        url = "https://registry.npmjs.org/emmet/-/emmet-2.4.7.tgz";
+        sha512 = "O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==";
       };
     };
     "emoji-regex-10.3.0" = {
@@ -24639,13 +24594,13 @@ let
         sha512 = "QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==";
       };
     };
-    "enhanced-resolve-5.15.0" = {
+    "enhanced-resolve-5.16.0" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
-      version = "5.15.0";
+      version = "5.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz";
-        sha512 = "LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==";
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz";
+        sha512 = "O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==";
       };
     };
     "enquirer-2.3.6" = {
@@ -24873,13 +24828,13 @@ let
         sha512 = "rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==";
       };
     };
-    "es-abstract-1.22.4" = {
+    "es-abstract-1.23.2" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.22.4";
+      version = "1.23.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz";
-        sha512 = "vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.2.tgz";
+        sha512 = "60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==";
       };
     };
     "es-aggregate-error-1.0.12" = {
@@ -24936,13 +24891,13 @@ let
         sha512 = "sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==";
       };
     };
-    "es-iterator-helpers-1.0.17" = {
+    "es-iterator-helpers-1.0.18" = {
       name = "es-iterator-helpers";
       packageName = "es-iterator-helpers";
-      version = "1.0.17";
+      version = "1.0.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.17.tgz";
-        sha512 = "lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==";
+        url = "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz";
+        sha512 = "scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==";
       };
     };
     "es-module-lexer-1.4.1" = {
@@ -24954,13 +24909,22 @@ let
         sha512 = "cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==";
       };
     };
-    "es-set-tostringtag-2.0.2" = {
+    "es-object-atoms-1.0.0" = {
+      name = "es-object-atoms";
+      packageName = "es-object-atoms";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz";
+        sha512 = "MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==";
+      };
+    };
+    "es-set-tostringtag-2.0.3" = {
       name = "es-set-tostringtag";
       packageName = "es-set-tostringtag";
-      version = "2.0.2";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz";
-        sha512 = "BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==";
+        url = "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz";
+        sha512 = "3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==";
       };
     };
     "es-shim-unscopables-1.0.2" = {
@@ -24990,13 +24954,13 @@ let
         sha512 = "pLqqZoOutAXQXyBJrUYVNM5fZngiOJYi1Xl4svQMrluTsqDUOQlBMw9EYgLrsWL6niDYn/Yd1y2Pj6GC+j/yjA==";
       };
     };
-    "es5-ext-0.10.62" = {
+    "es5-ext-0.10.64" = {
       name = "es5-ext";
       packageName = "es5-ext";
-      version = "0.10.62";
+      version = "0.10.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz";
-        sha512 = "BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==";
+        url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz";
+        sha512 = "p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==";
       };
     };
     "es6-error-4.1.1" = {
@@ -25080,13 +25044,13 @@ let
         sha512 = "TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw==";
       };
     };
-    "es6-symbol-3.1.3" = {
+    "es6-symbol-3.1.4" = {
       name = "es6-symbol";
       packageName = "es6-symbol";
-      version = "3.1.3";
+      version = "3.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz";
-        sha512 = "NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==";
+        url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz";
+        sha512 = "U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==";
       };
     };
     "es6-weak-map-2.0.3" = {
@@ -25467,13 +25431,13 @@ let
         sha512 = "pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==";
       };
     };
-    "eslint-8.56.0" = {
+    "eslint-8.57.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "8.56.0";
+      version = "8.57.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz";
-        sha512 = "Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz";
+        sha512 = "dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==";
       };
     };
     "eslint-config-prettier-8.10.0" = {
@@ -25503,13 +25467,13 @@ let
         sha512 = "WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==";
       };
     };
-    "eslint-module-utils-2.8.0" = {
+    "eslint-module-utils-2.8.1" = {
       name = "eslint-module-utils";
       packageName = "eslint-module-utils";
-      version = "2.8.0";
+      version = "2.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz";
-        sha512 = "aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==";
+        url = "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz";
+        sha512 = "rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==";
       };
     };
     "eslint-plugin-import-2.28.1" = {
@@ -25539,13 +25503,13 @@ let
         sha512 = "oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==";
       };
     };
-    "eslint-plugin-react-refresh-0.4.5" = {
+    "eslint-plugin-react-refresh-0.4.6" = {
       name = "eslint-plugin-react-refresh";
       packageName = "eslint-plugin-react-refresh";
-      version = "0.4.5";
+      version = "0.4.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.5.tgz";
-        sha512 = "D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w==";
+        url = "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.6.tgz";
+        sha512 = "NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA==";
       };
     };
     "eslint-plugin-unicorn-48.0.1" = {
@@ -25566,13 +25530,13 @@ let
         sha512 = "oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==";
       };
     };
-    "eslint-plugin-vue-9.21.1" = {
+    "eslint-plugin-vue-9.23.0" = {
       name = "eslint-plugin-vue";
       packageName = "eslint-plugin-vue";
-      version = "9.21.1";
+      version = "9.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.21.1.tgz";
-        sha512 = "XVtI7z39yOVBFJyi8Ljbn7kY9yHzznKXL02qQYn+ta63Iy4A9JFBw6o4OSB9hyD2++tVT+su9kQqetUyCCwhjw==";
+        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.23.0.tgz";
+        sha512 = "Bqd/b7hGYGrlV+wP/g77tjyFmp81lh5TMw0be9093X02SyelxRRfCI6/IsGq/J7Um0YwB9s0Ry0wlFyjPdmtUw==";
       };
     };
     "eslint-rule-docs-1.1.235" = {
@@ -25647,6 +25611,15 @@ let
         sha512 = "Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==";
       };
     };
+    "esniff-2.0.1" = {
+      name = "esniff";
+      packageName = "esniff";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz";
+        sha512 = "kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==";
+      };
+    };
     "espree-3.5.4" = {
       name = "espree";
       packageName = "espree";
@@ -25800,13 +25773,13 @@ let
         sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
       };
     };
-    "eta-3.2.0" = {
+    "eta-3.4.0" = {
       name = "eta";
       packageName = "eta";
-      version = "3.2.0";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eta/-/eta-3.2.0.tgz";
-        sha512 = "Qzc3it7nLn49dbOb9+oHV9rwtt9qN8oShRztqkZ3gXPqQflF0VLin5qhWk0g/2ioibBwT4DU6OIMVft7tg/rVg==";
+        url = "https://registry.npmjs.org/eta/-/eta-3.4.0.tgz";
+        sha512 = "tCsc7WXTjrTx4ZjYLplcqrI3o4mYJ+Z6YspeuGL8tbt/hHoMchwBwtKfwM09svEY86iRapY93vUqQttcNuIO5Q==";
       };
     };
     "etag-1.8.1" = {
@@ -26385,6 +26358,15 @@ let
         sha512 = "5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==";
       };
     };
+    "express-4.18.3" = {
+      name = "express";
+      packageName = "express";
+      version = "4.18.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express/-/express-4.18.3.tgz";
+        sha512 = "6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==";
+      };
+    };
     "express-handlebars-3.1.0" = {
       name = "express-handlebars";
       packageName = "express-handlebars";
@@ -27438,6 +27420,15 @@ let
         sha512 = "v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==";
       };
     };
+    "find-up-7.0.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz";
+        sha512 = "YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==";
+      };
+    };
     "find-up-simple-1.0.0" = {
       name = "find-up-simple";
       packageName = "find-up-simple";
@@ -27591,13 +27582,13 @@ let
         sha512 = "CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==";
       };
     };
-    "flat-cache-4.0.0" = {
+    "flat-cache-4.0.1" = {
       name = "flat-cache";
       packageName = "flat-cache";
-      version = "4.0.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.0.tgz";
-        sha512 = "EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA==";
+        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz";
+        sha512 = "f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==";
       };
     };
     "flatiron-0.4.3" = {
@@ -27618,13 +27609,13 @@ let
         sha512 = "r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==";
       };
     };
-    "flatted-3.2.9" = {
+    "flatted-3.3.1" = {
       name = "flatted";
       packageName = "flatted";
-      version = "3.2.9";
+      version = "3.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz";
-        sha512 = "36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==";
+        url = "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz";
+        sha512 = "X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==";
       };
     };
     "flatten-0.0.1" = {
@@ -27645,13 +27636,13 @@ let
         sha512 = "dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==";
       };
     };
-    "flow-parser-0.229.0" = {
+    "flow-parser-0.231.0" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.229.0";
+      version = "0.231.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.229.0.tgz";
-        sha512 = "mOYmMuvJwAo/CvnMFEq4SHftq7E5188hYMTTxJyQOXk2nh+sgslRdYMw3wTthH+FMcFaZLtmBPuMu6IwztdoUQ==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.231.0.tgz";
+        sha512 = "WVzuqwq7ZnvBceCG0DGeTQebZE+iIU0mlk5PmJgYj9DDrt+0isGC2m1ezW9vxL4V+HERJJo9ExppOnwKH2op6Q==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -27690,31 +27681,22 @@ let
         sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==";
       };
     };
-    "follow-redirects-1.15.3" = {
-      name = "follow-redirects";
-      packageName = "follow-redirects";
-      version = "1.15.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz";
-        sha512 = "1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==";
-      };
-    };
-    "follow-redirects-1.15.4" = {
+    "follow-redirects-1.15.5" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.15.4";
+      version = "1.15.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz";
-        sha512 = "Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz";
+        sha512 = "vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==";
       };
     };
-    "follow-redirects-1.15.5" = {
+    "follow-redirects-1.15.6" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.15.5";
+      version = "1.15.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz";
-        sha512 = "vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz";
+        sha512 = "wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==";
       };
     };
     "follow-redirects-1.5.10" = {
@@ -27951,13 +27933,13 @@ let
         sha512 = "buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==";
       };
     };
-    "fp-ts-2.16.2" = {
+    "fp-ts-2.16.4" = {
       name = "fp-ts";
       packageName = "fp-ts";
-      version = "2.16.2";
+      version = "2.16.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.2.tgz";
-        sha512 = "CkqAjnIKFqvo3sCyoBTqgJvF+bHrSik584S9nhTjtBESLx26cbtVMR/T9a6ApChOcSDAaM3JydDmWDUn4EEXng==";
+        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.4.tgz";
+        sha512 = "EkV/l6oHaf/w/DlVc5UiqLibqTV1S+idiDdcWQ+UjnLLflL9pZG28ebJfPLor8ifoL8NgEFDIo9fOvHyiSCrJQ==";
       };
     };
     "fraction.js-4.3.7" = {
@@ -28428,13 +28410,13 @@ let
         sha512 = "BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==";
       };
     };
-    "gc-stats-1.4.0" = {
+    "gc-stats-1.4.1" = {
       name = "gc-stats";
       packageName = "gc-stats";
-      version = "1.4.0";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gc-stats/-/gc-stats-1.4.0.tgz";
-        sha512 = "4FcCj9e8j8rCjvLkqRpGZBLgTC/xr9XEf5By3x77cDucWWB3pJK6FEwXZCTCbb4z8xdaOoi4owBNrvn3ciDdxA==";
+        url = "https://registry.npmjs.org/gc-stats/-/gc-stats-1.4.1.tgz";
+        sha512 = "eAvDBpI6UjVIYwLxshPCJJIkPyfamIrJzBtW/103+ooJWkISS+chVnHNnsZ+ubaw2607rFeiRDNWHkNUA+ioqg==";
       };
     };
     "gelf-stream-1.1.1" = {
@@ -28509,13 +28491,13 @@ let
         sha512 = "ys3h0hiteRwmY6BsvSttPmkhC0vEQHPJduANBRtH/dlDPZ0UBIb/dXy80IcckXyuQ6LKg+PloRqvGER9IS7F7g==";
       };
     };
-    "gensequence-6.0.0" = {
+    "gensequence-7.0.0" = {
       name = "gensequence";
       packageName = "gensequence";
-      version = "6.0.0";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gensequence/-/gensequence-6.0.0.tgz";
-        sha512 = "8WwuywE9pokJRAcg2QFR/plk3cVPebSUqRPzpGQh3WQ0wIiHAw+HyOQj5IuHyUTQBHpBKFoB2JUMu9zT3vJ16Q==";
+        url = "https://registry.npmjs.org/gensequence/-/gensequence-7.0.0.tgz";
+        sha512 = "47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==";
       };
     };
     "gensync-1.0.0-beta.2" = {
@@ -28806,6 +28788,15 @@ let
         sha512 = "LRn8Jlk+DwZE4GTlDbT3Hikd1wSHgLMme/+7ddlqKd7ldwR6LjJgTVWzBnR01wnYGe4KgrXjg287RaI22UHmAw==";
       };
     };
+    "get-uri-6.0.3" = {
+      name = "get-uri";
+      packageName = "get-uri";
+      version = "6.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz";
+        sha512 = "BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==";
+      };
+    };
     "get-value-2.0.6" = {
       name = "get-value";
       packageName = "get-value";
@@ -28860,15 +28851,6 @@ let
         sha512 = "qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==";
       };
     };
-    "git-diff-2.0.6" = {
-      name = "git-diff";
-      packageName = "git-diff";
-      version = "2.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/git-diff/-/git-diff-2.0.6.tgz";
-        sha512 = "/Iu4prUrydE3Pb3lCBMbcSNIf81tgGt0W1ZwknnyF62t3tHmtiJTRj0f+1ZIhp3+Rh0ktz1pJVoa7ZXUCskivA==";
-      };
-    };
     "git-diff-tree-1.1.0" = {
       name = "git-diff-tree";
       packageName = "git-diff-tree";
@@ -28878,15 +28860,6 @@ let
         sha512 = "PdNkH2snpXsKIzho6OWMZKEl+KZG6Zm+1ghQIDi0tEq1sz/S1tDjvNuYrX2ZpomalHAB89OUQim8O6vN+jesNQ==";
       };
     };
-    "git-raw-commits-2.0.11" = {
-      name = "git-raw-commits";
-      packageName = "git-raw-commits";
-      version = "2.0.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz";
-        sha512 = "VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==";
-      };
-    };
     "git-raw-commits-3.0.0" = {
       name = "git-raw-commits";
       packageName = "git-raw-commits";
@@ -30013,13 +29986,13 @@ let
         sha512 = "55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==";
       };
     };
-    "has-proto-1.0.1" = {
+    "has-proto-1.0.3" = {
       name = "has-proto";
       packageName = "has-proto";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz";
-        sha512 = "7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==";
+        url = "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz";
+        sha512 = "SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==";
       };
     };
     "has-symbol-support-x-1.4.2" = {
@@ -30130,6 +30103,15 @@ let
         sha512 = "CCd8e/w2w28G8DyZvKgiHnQJ/5XXDz6qiUHnthvtag/6T5acUeN5lqq+HMoBqcmgWueWDhiCplrw0Kb1zDACRg==";
       };
     };
+    "hash-base-3.0.4" = {
+      name = "hash-base";
+      packageName = "hash-base";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz";
+        sha512 = "EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==";
+      };
+    };
     "hash-base-3.1.0" = {
       name = "hash-base";
       packageName = "hash-base";
@@ -30184,13 +30166,13 @@ let
         sha512 = "U/fnTE3edW0AV92ZI/BfEluMZuVcu3MDOopsN7jS+HqDYcarQo8rXQiWlsBlm0uX48/taYSdxRsfzh2HRg5Z6w==";
       };
     };
-    "hasown-2.0.1" = {
+    "hasown-2.0.2" = {
       name = "hasown";
       packageName = "hasown";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz";
-        sha512 = "1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==";
+        url = "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz";
+        sha512 = "0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==";
       };
     };
     "hast-util-embedded-2.0.1" = {
@@ -30409,13 +30391,13 @@ let
         sha512 = "s/SIX6yp/5S1p8aC/NRDC1fwEb+myGIfp8/TzZz0rtAv8fzsdX7vGl3Q1TrXCsczFq8DI3CBFBCySPClfBSdbg==";
       };
     };
-    "highlight.js-11.8.0" = {
+    "highlight.js-11.9.0" = {
       name = "highlight.js";
       packageName = "highlight.js";
-      version = "11.8.0";
+      version = "11.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-11.8.0.tgz";
-        sha512 = "MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==";
+        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz";
+        sha512 = "fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==";
       };
     };
     "highlight.js-9.12.0" = {
@@ -30571,13 +30553,13 @@ let
         sha512 = "8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==";
       };
     };
-    "html-entities-2.4.0" = {
+    "html-entities-2.5.2" = {
       name = "html-entities";
       packageName = "html-entities";
-      version = "2.4.0";
+      version = "2.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz";
-        sha512 = "igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==";
+        url = "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz";
+        sha512 = "K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==";
       };
     };
     "html-escaper-2.0.2" = {
@@ -30940,13 +30922,13 @@ let
         sha512 = "G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==";
       };
     };
-    "http-status-1.7.3" = {
+    "http-status-1.7.4" = {
       name = "http-status";
       packageName = "http-status";
-      version = "1.7.3";
+      version = "1.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-status/-/http-status-1.7.3.tgz";
-        sha512 = "GS8tL1qHT2nBCMJDYMHGkkkKQLNkIAHz37vgO68XKvzv+XyqB4oh/DfmMHdtRzfqSJPj1xKG2TaELZtlCz6BEQ==";
+        url = "https://registry.npmjs.org/http-status/-/http-status-1.7.4.tgz";
+        sha512 = "c2qSwNtTlHVYAhMj9JpGdyo0No/+DiKXCJ9pHtZ2Yf3QmPnBIytKSRT7BuyIiQ7icXLynavGmxUqkOjSrAuMuA==";
       };
     };
     "http2-client-1.3.5" = {
@@ -31084,15 +31066,6 @@ let
         sha512 = "Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==";
       };
     };
-    "hyperdyperid-1.2.0" = {
-      name = "hyperdyperid";
-      packageName = "hyperdyperid";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz";
-        sha512 = "Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==";
-      };
-    };
     "hyperlinker-1.0.0" = {
       name = "hyperlinker";
       packageName = "hyperlinker";
@@ -31651,6 +31624,15 @@ let
         sha512 = "QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==";
       };
     };
+    "ini-4.1.2" = {
+      name = "ini";
+      packageName = "ini";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz";
+        sha512 = "AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==";
+      };
+    };
     "init-package-json-5.0.0" = {
       name = "init-package-json";
       packageName = "init-package-json";
@@ -31687,15 +31669,6 @@ let
         sha512 = "rXckvqPBB0Krifk5rn/5LvQGmyXwCUpBfmTwbkQNBY9JY8RSl3b8OftBNEYxg4+SWUhEKcPifgope28uL9inlA==";
       };
     };
-    "ink-select-input-4.2.1" = {
-      name = "ink-select-input";
-      packageName = "ink-select-input";
-      version = "4.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ink-select-input/-/ink-select-input-4.2.1.tgz";
-        sha512 = "WvlrYdwmdnD6/nE/9mNhaaanTQOKmwy/hT/vuAqbDec3PUQBQ8Pkwszii/8eGvDTx5bGiUHu18P9D5IoB/ERaw==";
-      };
-    };
     "ink-select-input-4.2.2" = {
       name = "ink-select-input";
       packageName = "ink-select-input";
@@ -31714,13 +31687,13 @@ let
         sha512 = "uJ4nbH00MM9fjTJ5xdw0zzvtXMkeGb0WV6dzSWvFv2/+ks6FIhpkt+Ge/eLdh0Ah6Vjw5pLMyNfoHQpRDRVFbQ==";
       };
     };
-    "ink-table-3.0.0" = {
+    "ink-table-3.1.0" = {
       name = "ink-table";
       packageName = "ink-table";
-      version = "3.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ink-table/-/ink-table-3.0.0.tgz";
-        sha512 = "RtcYjenHKZWjnwVNQ6zSYWMOLKwkWscDAJsqUQXftyjkYho1gGrluGss87NOoIzss0IKr74lKasd6MtlQYALiA==";
+        url = "https://registry.npmjs.org/ink-table/-/ink-table-3.1.0.tgz";
+        sha512 = "qxVb4DIaEaJryvF9uZGydnmP9Hkmas3DCKVpEcBYC0E4eJd3qNgNe+PZKuzgCERFe9LfAS1TNWxCr9+AU4v3YA==";
       };
     };
     "ink-testing-library-2.1.0" = {
@@ -31750,13 +31723,13 @@ let
         sha512 = "rVsqnw4tQEAJUoknU09+zHdDf30GJdkumkHr0iz/TOYMYEZJkYqziQSGJAM+Z+M603EDfO89+Nxyn/Ko2Zknfw==";
       };
     };
-    "inline-source-map-0.6.2" = {
+    "inline-source-map-0.6.3" = {
       name = "inline-source-map";
       packageName = "inline-source-map";
-      version = "0.6.2";
+      version = "0.6.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz";
-        sha512 = "0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==";
+        url = "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.3.tgz";
+        sha512 = "1aVsPEsJWMJq/pdMU61CDlm1URcW702MTB4w9/zUjMus6H/Py8o7g68Pr9D4I6QluWGt/KdmswuRhaA05xVR1w==";
       };
     };
     "innertext-1.0.3" = {
@@ -31822,13 +31795,22 @@ let
         sha512 = "M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==";
       };
     };
-    "inquirer-9.2.14" = {
+    "inquirer-9.2.15" = {
+      name = "inquirer";
+      packageName = "inquirer";
+      version = "9.2.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-9.2.15.tgz";
+        sha512 = "vI2w4zl/mDluHt9YEQ/543VTCwPKWiHzKtm9dM2V0NdFcqEexDAjUHzO1oA60HRNaVifGXXM1tRRNluLVHa0Kg==";
+      };
+    };
+    "inquirer-9.2.16" = {
       name = "inquirer";
       packageName = "inquirer";
-      version = "9.2.14";
+      version = "9.2.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/inquirer/-/inquirer-9.2.14.tgz";
-        sha512 = "4ByIMt677Iz5AvjyKrDpzaepIyMewNvDcvwpVVRZNmy9dLakVoVgdCHZXbK1SlVJra1db0JZ6XkJyHsanpdrdQ==";
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-9.2.16.tgz";
+        sha512 = "qzgbB+yNjgSzk2omeqMDtO9IgJet/UL67luT1MaaggRpGK73DBQct5Q4pipwFQcIKK1GbMODYd4UfsRCkSP1DA==";
       };
     };
     "inquirer-autocomplete-prompt-3.0.1" = {
@@ -32083,13 +32065,13 @@ let
         sha512 = "pZ2xT+LOHckCatGQ3DcG/a+QuEqvoxqkiL7tvE8nn3uuu+f6i1TtpB5/FtWFbxUuVr5PZCx8KskuGatbJDXOWA==";
       };
     };
-    "ip-1.1.8" = {
+    "ip-1.1.9" = {
       name = "ip";
       packageName = "ip";
-      version = "1.1.8";
+      version = "1.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz";
-        sha512 = "PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==";
+        url = "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz";
+        sha512 = "cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==";
       };
     };
     "ip-address-6.1.0" = {
@@ -32488,6 +32470,15 @@ let
         sha512 = "bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==";
       };
     };
+    "is-data-view-1.0.1" = {
+      name = "is-data-view";
+      packageName = "is-data-view";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz";
+        sha512 = "AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==";
+      };
+    };
     "is-date-object-1.0.5" = {
       name = "is-date-object";
       packageName = "is-date-object";
@@ -32884,13 +32875,13 @@ let
         sha512 = "bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==";
       };
     };
-    "is-map-2.0.2" = {
+    "is-map-2.0.3" = {
       name = "is-map";
       packageName = "is-map";
-      version = "2.0.2";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz";
-        sha512 = "cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==";
+        url = "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz";
+        sha512 = "1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==";
       };
     };
     "is-my-ip-valid-1.0.1" = {
@@ -32911,15 +32902,6 @@ let
         sha512 = "1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==";
       };
     };
-    "is-name-taken-2.0.0" = {
-      name = "is-name-taken";
-      packageName = "is-name-taken";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-name-taken/-/is-name-taken-2.0.0.tgz";
-        sha512 = "W+FUWF5g7ONVJTx3rldZeVizmPzrMMUdscpSQ96vyYerx+4b2NcqaujLJJDWruGzE0FjzGZO9RFIipOGxx/WIw==";
-      };
-    };
     "is-nan-1.3.2" = {
       name = "is-nan";
       packageName = "is-nan";
@@ -32947,13 +32929,13 @@ let
         sha512 = "czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==";
       };
     };
-    "is-negative-zero-2.0.2" = {
+    "is-negative-zero-2.0.3" = {
       name = "is-negative-zero";
       packageName = "is-negative-zero";
-      version = "2.0.2";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz";
-        sha512 = "dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==";
+        url = "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz";
+        sha512 = "5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==";
       };
     };
     "is-network-error-1.0.1" = {
@@ -33361,22 +33343,22 @@ let
         sha512 = "ezxLUq30kiTvP0w/5n9tj4qTOKlrA07Oty1hwTQ+lcqw11x6uc8sp7VRb2OVGRzKfCHZ2A22T5Zsau/Q2Akb0g==";
       };
     };
-    "is-set-2.0.2" = {
+    "is-set-2.0.3" = {
       name = "is-set";
       packageName = "is-set";
-      version = "2.0.2";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz";
-        sha512 = "+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==";
+        url = "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz";
+        sha512 = "iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==";
       };
     };
-    "is-shared-array-buffer-1.0.2" = {
+    "is-shared-array-buffer-1.0.3" = {
       name = "is-shared-array-buffer";
       packageName = "is-shared-array-buffer";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz";
-        sha512 = "sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==";
+        url = "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz";
+        sha512 = "nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==";
       };
     };
     "is-ssh-1.4.0" = {
@@ -33577,13 +33559,13 @@ let
         sha512 = "+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==";
       };
     };
-    "is-weakmap-2.0.1" = {
+    "is-weakmap-2.0.2" = {
       name = "is-weakmap";
       packageName = "is-weakmap";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz";
-        sha512 = "NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==";
+        url = "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz";
+        sha512 = "K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==";
       };
     };
     "is-weakref-1.0.2" = {
@@ -33595,13 +33577,13 @@ let
         sha512 = "qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==";
       };
     };
-    "is-weakset-2.0.2" = {
+    "is-weakset-2.0.3" = {
       name = "is-weakset";
       packageName = "is-weakset";
-      version = "2.0.2";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz";
-        sha512 = "t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==";
+        url = "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz";
+        sha512 = "LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==";
       };
     };
     "is-what-3.14.1" = {
@@ -33892,13 +33874,13 @@ let
         sha512 = "n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==";
       };
     };
-    "istanbul-reports-3.1.6" = {
+    "istanbul-reports-3.1.7" = {
       name = "istanbul-reports";
       packageName = "istanbul-reports";
-      version = "3.1.6";
+      version = "3.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz";
-        sha512 = "TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==";
+        url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz";
+        sha512 = "BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==";
       };
     };
     "isuri-2.0.3" = {
@@ -34099,13 +34081,13 @@ let
         sha512 = "NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==";
       };
     };
-    "joi-17.12.1" = {
+    "joi-17.12.2" = {
       name = "joi";
       packageName = "joi";
-      version = "17.12.1";
+      version = "17.12.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/joi/-/joi-17.12.1.tgz";
-        sha512 = "vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ==";
+        url = "https://registry.npmjs.org/joi/-/joi-17.12.2.tgz";
+        sha512 = "RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==";
       };
     };
     "join-async-iterator-1.1.1" = {
@@ -34171,13 +34153,13 @@ let
         sha512 = "fiUvdfCaAXoQTHdKMgTvg6IkecXDcVz6V5rlftUTclF9IKBjMizvSdQaCl/z/6TApDeby5NL+axYou3i0mu1Pg==";
       };
     };
-    "js-base64-3.7.6" = {
+    "js-base64-3.7.7" = {
       name = "js-base64";
       packageName = "js-base64";
-      version = "3.7.6";
+      version = "3.7.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-base64/-/js-base64-3.7.6.tgz";
-        sha512 = "NPrWuHFxFUknr1KqJRDgUQPexQF0uIJWjeT+2KjEePhitQxQEx5EJBG1lVn5/hc8aLycTpXrDOgPQ6Zq+EDiTA==";
+        url = "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz";
+        sha512 = "7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==";
       };
     };
     "js-cookie-3.0.5" = {
@@ -34405,103 +34387,76 @@ let
         sha512 = "xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==";
       };
     };
-    "jsii-1.94.0" = {
-      name = "jsii";
-      packageName = "jsii";
-      version = "1.94.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-1.94.0.tgz";
-        sha512 = "20KlKsBZlo7Ti6vfqTpKfZXnT2MKRGfh5bIPrwDODoCQmHNATfPFt1fs5+Wqd7xdrEj+A+sLAtjfHTw6i+sxCw==";
-      };
-    };
-    "jsii-5.2.44" = {
-      name = "jsii";
-      packageName = "jsii";
-      version = "5.2.44";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-5.2.44.tgz";
-        sha512 = "Z7sTqYzQ5yoJU/ie+svjqSzrOF5rl4pW/bojvCb/7MfJ+SaGqhMUQMxQGTfqmSvauME8JoVYqwMH89x6qreJ8A==";
-      };
-    };
-    "jsii-5.3.18" = {
+    "jsii-1.95.0" = {
       name = "jsii";
       packageName = "jsii";
-      version = "5.3.18";
+      version = "1.95.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-5.3.18.tgz";
-        sha512 = "1BQT5rMDNiyZp7u5461EQQuEOnPJv0UEFlTHgDZJqqCeh1OquTpB0fYFfpJnsvl4C1aleBYo3f0QMzvV7wLVjw==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-1.95.0.tgz";
+        sha512 = "GvBqcZrhKZ5WV6u44w88aFym8G4Xkw9QRZuAAGYHOFJWiK/fyqeRPPgPkEBqfE+xs412JvGVdejUodKLlhEP9w==";
       };
     };
-    "jsii-5.3.2" = {
+    "jsii-5.3.24" = {
       name = "jsii";
       packageName = "jsii";
-      version = "5.3.2";
+      version = "5.3.24";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-5.3.2.tgz";
-        sha512 = "wwwp47+6orlMXpny4dlTOP6776cBo2WFDgxZyGjQaV4VWNydsJiTcinuJzCj1XVZicBhpAnkuBMr89+2aT8Dcg==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-5.3.24.tgz";
+        sha512 = "x6U15Q8OnwOCFGCjUAyq5qlxGWccc+tOVMEDBOlFq6jLeLgWbVwjG+4chObDffXC/TCUhxeQipUlsuOXCPeyzQ==";
       };
     };
-    "jsii-5.3.3" = {
+    "jsii-5.3.29" = {
       name = "jsii";
       packageName = "jsii";
-      version = "5.3.3";
+      version = "5.3.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-5.3.3.tgz";
-        sha512 = "M+kAUKJiLXXJXKYmBB0Q2n1aGoeNHyzMCLAx7402JqXSLxH4JGh6kOf4EH3U3LmQKzv2kxOHMRCg3Ssh82KtrQ==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-5.3.29.tgz";
+        sha512 = "vEEOtjD8s/C8ORHvN87Bt9jHcY1diJoC1sS+TVnCkeb4V9q5fOEVr4gl/FsU5ea8dSWZHdd7VqCtr0jYAwKleg==";
       };
     };
-    "jsii-pacmak-1.93.0" = {
+    "jsii-pacmak-1.94.0" = {
       name = "jsii-pacmak";
       packageName = "jsii-pacmak";
-      version = "1.93.0";
+      version = "1.94.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.93.0.tgz";
-        sha512 = "A2rn4seHN+1/VzwQ0H8t6zxAz9HpZWbF+kVi9MpNgqd2iiNYxS1XNyirzyQ8D3e5ZNWoPAyFVuGqkXrtdo4etg==";
+        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.94.0.tgz";
+        sha512 = "L5s3RZ0AOx1XfAhXsEjyeCteVrw6nwJLynL+t93eXVDcw7NFT7S0fCFXzQ4lpYQ23P/yVpSIy32J3zpUOf4uDQ==";
       };
     };
-    "jsii-pacmak-1.94.0" = {
+    "jsii-pacmak-1.95.0" = {
       name = "jsii-pacmak";
       packageName = "jsii-pacmak";
-      version = "1.94.0";
+      version = "1.95.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.94.0.tgz";
-        sha512 = "L5s3RZ0AOx1XfAhXsEjyeCteVrw6nwJLynL+t93eXVDcw7NFT7S0fCFXzQ4lpYQ23P/yVpSIy32J3zpUOf4uDQ==";
+        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.95.0.tgz";
+        sha512 = "h/eo3p3jG4/Wtb9WdavvcgXzyN5QXZck3k0xvIWp5SKxFLorQ+TWhY7BHG0e+VXl+mxcni6BuQ5wFLavq65RQQ==";
       };
     };
-    "jsii-reflect-1.94.0" = {
+    "jsii-reflect-1.95.0" = {
       name = "jsii-reflect";
       packageName = "jsii-reflect";
-      version = "1.94.0";
+      version = "1.95.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.94.0.tgz";
-        sha512 = "Oupkl5iFFeq3GJ2a/fQNMnsXRMISmEKklPHksYs/l6MqrNFUQ5kg9oj1qxjSyaCpvvXBI8Eh7y73dqNE8w4cVw==";
+        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.95.0.tgz";
+        sha512 = "/o/UdqX1MtOmavwAF+cqMAHs7Ewi/j2a9PVGYTzi3U4M5Cvxsyrk7e1EWKvw/NHK0JZmmKd1UqE0Mz5EHqZSxw==";
       };
     };
-    "jsii-rosetta-1.94.0" = {
+    "jsii-rosetta-1.95.0" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "1.94.0";
+      version = "1.95.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.94.0.tgz";
-        sha512 = "FLQAxdZJsH0sg87S9u/e4+HDGr6Pth+UZ4ool3//MFMsw+C0iwagAlNVhZuyohMdlvumpQeg9Gr+FvoBZFoBrA==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.95.0.tgz";
+        sha512 = "J9tQy6wT7ERgXC73ubjWmkp8EO5SHPn9eDkTKLmAi+AkMAOAJEb1oxaA1bKPBf/2SQp6wDU5TUfEpx6ukSmc1g==";
       };
     };
-    "jsii-rosetta-5.3.7" = {
+    "jsii-rosetta-5.3.27" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "5.3.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-5.3.7.tgz";
-        sha512 = "x9knz6DaGPwLucSUAZNxz8EQW3WwsCBrZldWs/FBVKKbdszSH5HHvXKG7elpitqzj+7XDFH9QnKv/bLfUWy5lA==";
-      };
-    };
-    "jsii-srcmak-0.1.1005" = {
-      name = "jsii-srcmak";
-      packageName = "jsii-srcmak";
-      version = "0.1.1005";
+      version = "5.3.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.1005.tgz";
-        sha512 = "JnL8UNW3akZW+XYhrAU5/wtpmyaEHwTrb455PsYMYpHU1OsWcqAHBdn2xdXV05X754yAYKAEv9ga+KV2OVNDOw==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-5.3.27.tgz";
+        sha512 = "aNetT3WwckB72qCNAvSCV8a+gHm+ghfHDcFGKyx3zlEI6V5hWyR6HL4sn8EHZKF5RfOcIiGNaZ3IOPh7qnCfDg==";
       };
     };
     "jsii-srcmak-0.1.1039" = {
@@ -34513,15 +34468,6 @@ let
         sha512 = "3lBjyxBy5UpPGK8bXFmVRzaoK6caDQ5DO40Qbyv3LOWtrsuUQmuVI2/5wRwNtfg6sFzOFD3+kE3LZuNXo7QE/Q==";
       };
     };
-    "jsii-srcmak-0.1.999" = {
-      name = "jsii-srcmak";
-      packageName = "jsii-srcmak";
-      version = "0.1.999";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.999.tgz";
-        sha512 = "8jhGRjceKdvYlW3rujnrZWTa1bss7TUhcsVrRsT7Q+MDYxRZan0FsqyHKrjfb8GYpgSh5DVpc9iYCwmn6VgXsw==";
-      };
-    };
     "json-buffer-3.0.0" = {
       name = "json-buffer";
       packageName = "json-buffer";
@@ -34540,15 +34486,6 @@ let
         sha512 = "4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==";
       };
     };
-    "json-joy-11.28.0" = {
-      name = "json-joy";
-      packageName = "json-joy";
-      version = "11.28.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-joy/-/json-joy-11.28.0.tgz";
-        sha512 = "WTq2tYD2r+0rUFId4gtUjwejV20pArh4q2WRJKxJdwLlPFHyW94HwwB2vUr5lUJTVkehhhWEVLwOUI0MSacNIw==";
-      };
-    };
     "json-parse-better-errors-1.0.2" = {
       name = "json-parse-better-errors";
       packageName = "json-parse-better-errors";
@@ -34792,13 +34729,13 @@ let
         sha512 = "oDPf7b6nFDKcX2qt5OLI/ZwGwH43qS/g2Z98UWo8ChoNtVMYdGa3Y48WHvjPqvNKnTUa2fOanvHFeE7ZxkiboQ==";
       };
     };
-    "jsonata-1.8.6" = {
+    "jsonata-1.8.7" = {
       name = "jsonata";
       packageName = "jsonata";
-      version = "1.8.6";
+      version = "1.8.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsonata/-/jsonata-1.8.6.tgz";
-        sha512 = "ZH2TPYdNP2JecOl/HvrH47Xc+9imibEMQ4YqKy/F/FrM+2a6vfbGxeCX23dB9Fr6uvGwv+ghf1KxWB3iZk09wA==";
+        url = "https://registry.npmjs.org/jsonata/-/jsonata-1.8.7.tgz";
+        sha512 = "tOW2/hZ+nR2bcQZs+0T62LVe5CHaNa3laFFWb/262r39utN6whJGBF7IR2Wq1QXrDbhftolk5gggW8uUJYlBTQ==";
       };
     };
     "jsonc-parser-1.0.3" = {
@@ -35422,6 +35359,15 @@ let
         sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==";
       };
     };
+    "ky-1.2.2" = {
+      name = "ky";
+      packageName = "ky";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ky/-/ky-1.2.2.tgz";
+        sha512 = "gYA2QOI3uIaImJPJjaBbLCdvKHzwxsuB03s7PjrXmoO6tcn6k53rwYoSRgqrmVsEV6wFFegOXDVjABxFZ0aRSg==";
+      };
+    };
     "labeled-stream-splicer-2.0.2" = {
       name = "labeled-stream-splicer";
       packageName = "labeled-stream-splicer";
@@ -35692,15 +35638,6 @@ let
         sha512 = "qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==";
       };
     };
-    "levenshtein-1.0.5" = {
-      name = "levenshtein";
-      packageName = "levenshtein";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/levenshtein/-/levenshtein-1.0.5.tgz";
-        sha512 = "UQf1nnmxjl7O0+snDXj2YF2r74Gkya8ZpnegrUBYN9tikh2dtxV/ey8e07BO5wwo0i76yjOvbDhFHdcPEiH9aA==";
-      };
-    };
     "levn-0.3.0" = {
       name = "levn";
       packageName = "levn";
@@ -35773,13 +35710,13 @@ let
         sha512 = "yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==";
       };
     };
-    "lightningcss-1.23.0" = {
+    "lightningcss-1.24.1" = {
       name = "lightningcss";
       packageName = "lightningcss";
-      version = "1.23.0";
+      version = "1.24.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lightningcss/-/lightningcss-1.23.0.tgz";
-        sha512 = "SEArWKMHhqn/0QzOtclIwH5pXIYQOUEkF8DgICd/105O+GCgd7jxjNod/QPnBCSWvpRHQBGVz5fQ9uScby03zA==";
+        url = "https://registry.npmjs.org/lightningcss/-/lightningcss-1.24.1.tgz";
+        sha512 = "kUpHOLiH5GB0ERSv4pxqlL0RYKnOXtgGtVe7shDGfhS0AZ4D1ouKFYAcLcZhql8aMspDNzaUCumGHZ78tb2fTg==";
       };
     };
     "lilconfig-2.1.0" = {
@@ -35791,13 +35728,13 @@ let
         sha512 = "utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==";
       };
     };
-    "lilconfig-3.1.0" = {
+    "lilconfig-3.1.1" = {
       name = "lilconfig";
       packageName = "lilconfig";
-      version = "3.1.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.0.tgz";
-        sha512 = "p3cz0JV5vw/XeouBU3Ldnp+ZkBjE+n8ydJ4mcwBrOiXXPqNlrzGBqWs9X4MWF7f+iKUBu794Y8Hh8yawiJbCjw==";
+        url = "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz";
+        sha512 = "O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==";
       };
     };
     "limit-spawn-0.0.3" = {
@@ -35863,13 +35800,13 @@ let
         sha512 = "8oI90ziJlcTi4k2DnQ0o0Waa2Uk00xbIN8ylvhstEqfJtiRaB4LJ6u8H63If7zTrnnuhCw8SjTJoHf+wLs3ICg==";
       };
     };
-    "link-check-5.2.0" = {
+    "link-check-5.3.0" = {
       name = "link-check";
       packageName = "link-check";
-      version = "5.2.0";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/link-check/-/link-check-5.2.0.tgz";
-        sha512 = "xRbhYLaGDw7eRDTibTAcl6fXtmUQ13vkezQiTqshHHdGueQeumgxxmQMIOmJYsh2p8BF08t8thhDQ++EAOOq3w==";
+        url = "https://registry.npmjs.org/link-check/-/link-check-5.3.0.tgz";
+        sha512 = "Jhb7xueDgQgBaZzkfOtAyOZEZAIMJQIjUpYD2QY/zEB+LKTY1tWiBwZg8QIDbzQdPBOcqzg7oLQDNcES/tQmXg==";
       };
     };
     "linkify-it-2.2.0" = {
@@ -37510,15 +37447,6 @@ let
         sha512 = "jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==";
       };
     };
-    "lru_map-0.3.3" = {
-      name = "lru_map";
-      packageName = "lru_map";
-      version = "0.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz";
-        sha512 = "Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==";
-      };
-    };
     "lt_donthave-1.0.1" = {
       name = "lt_donthave";
       packageName = "lt_donthave";
@@ -37574,13 +37502,13 @@ let
         sha512 = "RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==";
       };
     };
-    "magic-string-0.30.7" = {
+    "magic-string-0.30.8" = {
       name = "magic-string";
       packageName = "magic-string";
-      version = "0.30.7";
+      version = "0.30.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz";
-        sha512 = "8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==";
+        url = "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz";
+        sha512 = "ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==";
       };
     };
     "magicli-0.0.5" = {
@@ -37970,13 +37898,13 @@ let
         sha512 = "UB/IbzjWazwTlNAX0pvWNlJS8NKsOQ4syrXZQ/C72j+jirrsjVRT627lCaylrKJFBQWfRsPmIVQie8x38DEhAQ==";
       };
     };
-    "markdown-link-extractor-3.1.0" = {
+    "markdown-link-extractor-4.0.2" = {
       name = "markdown-link-extractor";
       packageName = "markdown-link-extractor";
-      version = "3.1.0";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-3.1.0.tgz";
-        sha512 = "r0NEbP1dsM+IqB62Ru9TXLP/HDaTdBNIeylYXumuBi6Xv4ufjE1/g3TnslYL8VNqNcGAGbMptQFHrrdfoZ/Sug==";
+        url = "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-4.0.2.tgz";
+        sha512 = "5cUOu4Vwx1wenJgxaudsJ8xwLUMN7747yDJX3V/L7+gi3e4MsCm7w5nbrDQQy8nEfnl4r5NV3pDXMAjhGXYXAw==";
       };
     };
     "markdown-table-2.0.0" = {
@@ -37997,6 +37925,15 @@ let
         sha512 = "Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==";
       };
     };
+    "marked-12.0.1" = {
+      name = "marked";
+      packageName = "marked";
+      version = "12.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marked/-/marked-12.0.1.tgz";
+        sha512 = "Y1/V2yafOcOdWQCX0XpAKXzDakPOpn6U0YLxTJs3cww6VxOzZV1BTOOYWLvH3gX38cq+iLwljHHTnMtlDfg01Q==";
+      };
+    };
     "marked-4.3.0" = {
       name = "marked";
       packageName = "marked";
@@ -38573,13 +38510,13 @@ let
         sha512 = "EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ==";
       };
     };
-    "memfs-4.7.1" = {
+    "memfs-4.7.7" = {
       name = "memfs";
       packageName = "memfs";
-      version = "4.7.1";
+      version = "4.7.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/memfs/-/memfs-4.7.1.tgz";
-        sha512 = "29/L94MxlTPkJOCvLwWG4OIAfBPoB921eOLU4wr6RR4yQ40y/et8mroRE5t4rIQrLtmOACtLhZvGVKJgPGPDxQ==";
+        url = "https://registry.npmjs.org/memfs/-/memfs-4.7.7.tgz";
+        sha512 = "x9qc6k88J/VVwnfTkJV8pRRswJ2156Rc4w5rciRqKceFDZ0y1MqsNL9pkg5sE0GOcDzZYbonreALhaHzg1siFw==";
       };
     };
     "memory-cache-0.2.0" = {
@@ -38645,6 +38582,15 @@ let
         sha512 = "BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==";
       };
     };
+    "meow-13.2.0" = {
+      name = "meow";
+      packageName = "meow";
+      version = "13.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz";
+        sha512 = "pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==";
+      };
+    };
     "meow-3.7.0" = {
       name = "meow";
       packageName = "meow";
@@ -38717,13 +38663,13 @@ let
         sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==";
       };
     };
-    "mermaid-10.5.1" = {
+    "mermaid-10.6.1" = {
       name = "mermaid";
       packageName = "mermaid";
-      version = "10.5.1";
+      version = "10.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mermaid/-/mermaid-10.5.1.tgz";
-        sha512 = "+4mkGW5PptHDSae4YZ/Jw1pEOf0irrB/aCL6BwZcJPhr5+84UJBrQnHTvyPqCUz67tXkrDvSzWv4B+J2hLO78g==";
+        url = "https://registry.npmjs.org/mermaid/-/mermaid-10.6.1.tgz";
+        sha512 = "Hky0/RpOw/1il9X8AvzOEChfJtVvmXm+y7JML5C//ePYMy0/9jCEmW1E1g86x9oDfW9+iVEdTV/i+M6KWRNs4A==";
       };
     };
     "meros-1.1.4" = {
@@ -39653,13 +39599,13 @@ let
         sha512 = "vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==";
       };
     };
-    "mimic-function-5.0.0" = {
+    "mimic-function-5.0.1" = {
       name = "mimic-function";
       packageName = "mimic-function";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.0.tgz";
-        sha512 = "RBfQ+9X9DpXdEoK7Bu+KeEU6vFhumEIiXKWECPzRBmDserEq4uR2b/VCm0LwpMSosoq2k+Zuxj/GzOr0Fn6h/g==";
+        url = "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz";
+        sha512 = "VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==";
       };
     };
     "mimic-response-1.0.1" = {
@@ -39716,13 +39662,13 @@ let
         sha512 = "I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==";
       };
     };
-    "mini-css-extract-plugin-2.8.0" = {
+    "mini-css-extract-plugin-2.8.1" = {
       name = "mini-css-extract-plugin";
       packageName = "mini-css-extract-plugin";
-      version = "2.8.0";
+      version = "2.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.0.tgz";
-        sha512 = "CxmUYPFcTgET1zImteG/LZOy/4T5rTojesQXkSNBiquhydn78tfbCE9sjIjnJ/UcjNjOC1bphTCCW5rrS7cXAg==";
+        url = "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz";
+        sha512 = "/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==";
       };
     };
     "mini-svg-data-uri-1.4.4" = {
@@ -39734,13 +39680,13 @@ let
         sha512 = "r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==";
       };
     };
-    "miniflare-3.20240129.3" = {
+    "miniflare-3.20240304.2" = {
       name = "miniflare";
       packageName = "miniflare";
-      version = "3.20240129.3";
+      version = "3.20240304.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/miniflare/-/miniflare-3.20240129.3.tgz";
-        sha512 = "PCmLJ+UvtbpPj/fgNzTGbd+U5QBkt3akRNcdks9RBJU2SH+gUCp7iahsaI4GA344NX5MIbC6ctw1A6TfcA+aFA==";
+        url = "https://registry.npmjs.org/miniflare/-/miniflare-3.20240304.2.tgz";
+        sha512 = "yQ5TBKv7TlvF8khFvvH+1WWk8cBnaLgNzcbJ5DLQOdecxdDxUCVlN38HThd6Nhcz6EY+ckDkww8FkugUbSSpIQ==";
       };
     };
     "minilog-3.1.0" = {
@@ -39824,15 +39770,6 @@ let
         sha512 = "nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==";
       };
     };
-    "minimatch-5.1.0" = {
-      name = "minimatch";
-      packageName = "minimatch";
-      version = "5.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz";
-        sha512 = "9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==";
-      };
-    };
     "minimatch-5.1.2" = {
       name = "minimatch";
       packageName = "minimatch";
@@ -40625,13 +40562,13 @@ let
         sha512 = "2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==";
       };
     };
-    "nan-2.18.0" = {
+    "nan-2.19.0" = {
       name = "nan";
       packageName = "nan";
-      version = "2.18.0";
+      version = "2.19.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz";
-        sha512 = "W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==";
+        url = "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz";
+        sha512 = "nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==";
       };
     };
     "nanoid-2.1.11" = {
@@ -40652,15 +40589,6 @@ let
         sha512 = "MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==";
       };
     };
-    "nanoid-3.3.6" = {
-      name = "nanoid";
-      packageName = "nanoid";
-      version = "3.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz";
-        sha512 = "BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==";
-      };
-    };
     "nanoid-3.3.7" = {
       name = "nanoid";
       packageName = "nanoid";
@@ -41058,13 +40986,13 @@ let
         sha512 = "3yZ1vfGKOcv0dyyhUeqA0Qa6RsQ4SfUnL6o2IWR4sVg8kdnJo48XTWbMLdtnfiZTbCUdsMttNwyJcihEdGCZBw==";
       };
     };
-    "node-abi-3.54.0" = {
+    "node-abi-3.56.0" = {
       name = "node-abi";
       packageName = "node-abi";
-      version = "3.54.0";
+      version = "3.56.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-abi/-/node-abi-3.54.0.tgz";
-        sha512 = "p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==";
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz";
+        sha512 = "fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==";
       };
     };
     "node-abort-controller-3.1.1" = {
@@ -41760,13 +41688,13 @@ let
         sha512 = "DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==";
       };
     };
-    "normalize-url-8.0.0" = {
+    "normalize-url-8.0.1" = {
       name = "normalize-url";
       packageName = "normalize-url";
-      version = "8.0.0";
+      version = "8.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz";
-        sha512 = "uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==";
+        url = "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz";
+        sha512 = "IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==";
       };
     };
     "now-and-later-2.0.1" = {
@@ -41778,13 +41706,13 @@ let
         sha512 = "KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==";
       };
     };
-    "npm-9.9.2" = {
+    "npm-9.8.1" = {
       name = "npm";
       packageName = "npm";
-      version = "9.9.2";
+      version = "9.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm/-/npm-9.9.2.tgz";
-        sha512 = "D3tV+W0PzJOlwo8YmO6fNzaB1CrMVYd1V+2TURF6lbCbmZKqMsYgeQfPVvqiM3zbNSJPhFEnmlEXIogH2Vq7PQ==";
+        url = "https://registry.npmjs.org/npm/-/npm-9.8.1.tgz";
+        sha512 = "AfDvThQzsIXhYgk9zhbk5R+lh811lKkLAeQMMhSypf1BM7zUafeIIBzMzespeuVEJ0+LvY36oRQYf7IKLzU3rw==";
       };
     };
     "npm-bundled-1.1.2" = {
@@ -41832,13 +41760,13 @@ let
         sha512 = "W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==";
       };
     };
-    "npm-name-7.1.1" = {
+    "npm-name-8.0.0" = {
       name = "npm-name";
       packageName = "npm-name";
-      version = "7.1.1";
+      version = "8.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-name/-/npm-name-7.1.1.tgz";
-        sha512 = "lyOwsFndLoozriMEsaqJ5lXvhCATYOEhDvxlom8TNvB9a/htDXuLgpVhMUOBd9zCewUXCyBXAPxrGr2TK2adgQ==";
+        url = "https://registry.npmjs.org/npm-name/-/npm-name-8.0.0.tgz";
+        sha512 = "DIuCGcKYYhASAZW6Xh/tiaGMko8IHOHe0n3zOA7SzTi0Yvy00x8L7sa5yNiZ75Ny58O/KeRtNouy8Ut6gPbKiw==";
       };
     };
     "npm-normalize-package-bin-1.0.1" = {
@@ -42021,13 +41949,13 @@ let
         sha512 = "S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==";
       };
     };
-    "npm-run-path-5.2.0" = {
+    "npm-run-path-5.3.0" = {
       name = "npm-run-path";
       packageName = "npm-run-path";
-      version = "5.2.0";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz";
-        sha512 = "W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==";
+        url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz";
+        sha512 = "ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==";
       };
     };
     "npmconf-2.1.3" = {
@@ -42165,13 +42093,13 @@ let
         sha512 = "ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==";
       };
     };
-    "nx-18.0.4" = {
+    "nx-18.1.2" = {
       name = "nx";
       packageName = "nx";
-      version = "18.0.4";
+      version = "18.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nx/-/nx-18.0.4.tgz";
-        sha512 = "Njb1fGppOw/wM7nOA1hYlLduV2aL4PdXSv5QS5cVYicHT5tw5RnG/0z4j9e6QfFj2EydxVeDUtlGR98diZ3/Yw==";
+        url = "https://registry.npmjs.org/nx/-/nx-18.1.2.tgz";
+        sha512 = "E414xp6lVtiTGdDUMVo72G96G66t7oJMqmcHRMEZ/mVq5ZpNWUhfMuRq5Fh8orXPtrM3xk5SHokmmFvo5PKC+g==";
       };
     };
     "nyc-15.1.0" = {
@@ -42318,13 +42246,13 @@ let
         sha512 = "5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==";
       };
     };
-    "object-is-1.1.5" = {
+    "object-is-1.1.6" = {
       name = "object-is";
       packageName = "object-is";
-      version = "1.1.5";
+      version = "1.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz";
-        sha512 = "3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==";
+        url = "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz";
+        sha512 = "F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==";
       };
     };
     "object-keys-0.4.0" = {
@@ -42399,22 +42327,22 @@ let
         sha512 = "c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==";
       };
     };
-    "object.entries-1.1.7" = {
+    "object.entries-1.1.8" = {
       name = "object.entries";
       packageName = "object.entries";
-      version = "1.1.7";
+      version = "1.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz";
-        sha512 = "jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==";
+        url = "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz";
+        sha512 = "cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==";
       };
     };
-    "object.fromentries-2.0.7" = {
+    "object.fromentries-2.0.8" = {
       name = "object.fromentries";
       packageName = "object.fromentries";
-      version = "2.0.7";
+      version = "2.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz";
-        sha512 = "UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==";
+        url = "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz";
+        sha512 = "k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==";
       };
     };
     "object.getownpropertydescriptors-2.1.7" = {
@@ -42426,13 +42354,13 @@ let
         sha512 = "PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==";
       };
     };
-    "object.groupby-1.0.2" = {
+    "object.groupby-1.0.3" = {
       name = "object.groupby";
       packageName = "object.groupby";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz";
-        sha512 = "bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==";
+        url = "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz";
+        sha512 = "+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==";
       };
     };
     "object.hasown-1.1.3" = {
@@ -42480,13 +42408,13 @@ let
         sha512 = "naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==";
       };
     };
-    "object.values-1.1.7" = {
+    "object.values-1.2.0" = {
       name = "object.values";
       packageName = "object.values";
-      version = "1.1.7";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz";
-        sha512 = "aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==";
+        url = "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz";
+        sha512 = "yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==";
       };
     };
     "object_values-0.1.2" = {
@@ -42642,13 +42570,13 @@ let
         sha512 = "fvaSZRzprpwLFge/mcwE0CItfniNisVNamDdMK1FQUjh4ArQZ8ZWSkDaJbZc3XaANKZHq0xIa8NJpZ2HSe3oXA==";
       };
     };
-    "oo-ascii-tree-1.94.0" = {
+    "oo-ascii-tree-1.95.0" = {
       name = "oo-ascii-tree";
       packageName = "oo-ascii-tree";
-      version = "1.94.0";
+      version = "1.95.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.94.0.tgz";
-        sha512 = "i6UllReifEW2InBJHVFJNxrledRp3yr/yKVbpDmgWTguRe8/7BtBK3njzjvZNcPLEAtiWWxr0o9SpwYjapmTOw==";
+        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.95.0.tgz";
+        sha512 = "e9LWcjDtQIwFHICbeAjv2+RGJUFu3+A6oTjpymH+gfxATqPqcUV5oeGON9a/1uBr8Q0bc2/yEHVp1A/dp1iaog==";
       };
     };
     "open-0.0.2" = {
@@ -42669,13 +42597,13 @@ let
         sha512 = "+X/dJYLapVO1VbC620DhtNZK9U4/kQVaTQp/Gh7cb6UTLYfGZzzU2ZXkWrOA/wBrf4UqAFwtLqXYTxe4tSnWQQ==";
       };
     };
-    "open-10.0.3" = {
+    "open-10.1.0" = {
       name = "open";
       packageName = "open";
-      version = "10.0.3";
+      version = "10.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-10.0.3.tgz";
-        sha512 = "dtbI5oW7987hwC9qjJTyABldTaa19SuyJse1QboWv3b0qCcrrLNVDqBx1XgELAjh9QTVQaP/C5b1nhQebd1H2A==";
+        url = "https://registry.npmjs.org/open/-/open-10.1.0.tgz";
+        sha512 = "mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==";
       };
     };
     "open-7.3.0" = {
@@ -42705,15 +42633,6 @@ let
         sha512 = "7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==";
       };
     };
-    "open-9.1.0" = {
-      name = "open";
-      packageName = "open";
-      version = "9.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-9.1.0.tgz";
-        sha512 = "OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==";
-      };
-    };
     "openapi-to-graphql-2.2.5" = {
       name = "openapi-to-graphql";
       packageName = "openapi-to-graphql";
@@ -42741,13 +42660,13 @@ let
         sha512 = "KL1mKwkZii5ce+tb24KCUmQHyWB/oanG5fzUY35UB+wenWJv4Kr/IWBntpn5R8ODiJcxx13ZDophcpHnLGeIOw==";
       };
     };
-    "openpgp-5.11.0" = {
+    "openpgp-5.11.1" = {
       name = "openpgp";
       packageName = "openpgp";
-      version = "5.11.0";
+      version = "5.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/openpgp/-/openpgp-5.11.0.tgz";
-        sha512 = "hytHsxIPtRhuh6uAmoBUThHSwHSX3imLu7x4453T+xkVqIw49rl22MRD4KQIAQdCDoVdouejzYgcuLmMA/2OAA==";
+        url = "https://registry.npmjs.org/openpgp/-/openpgp-5.11.1.tgz";
+        sha512 = "TynUBPuaSI7dN0gP+A38CjNRLxkOkkptefNanalDQ71BFAKKm+dLbksymSW5bUrB7RcAneMySL/Y+r/TbLpOnQ==";
       };
     };
     "opentracing-0.14.7" = {
@@ -42849,15 +42768,6 @@ let
         sha512 = "WfnNWLS3vr8omCm8nKYKaRbapuy6pEbx1O0B+eP5sUf/a++sT9/h8PflqBoHsY9N+YdzUT12T8snXigq13QpJg==";
       };
     };
-    "ora-1.4.0" = {
-      name = "ora";
-      packageName = "ora";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz";
-        sha512 = "iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==";
-      };
-    };
     "ora-3.4.0" = {
       name = "ora";
       packageName = "ora";
@@ -43002,15 +42912,6 @@ let
         sha512 = "LG7wTzy4eYV/KolFeO4AwWPzQSARvCONzd5oHQlNvYOlji2r/zjbdK8pyObZN84uZlk6rQBWrJrAdJfh/SX0Hg==";
       };
     };
-    "ow-1.1.1" = {
-      name = "ow";
-      packageName = "ow";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ow/-/ow-1.1.1.tgz";
-        sha512 = "sJBRCbS5vh1Jp9EOgwp1Ws3c16lJrUkJYlvWTYC03oyiYVwS/ns7lKRWow4w4XjDyTrA2pplQv4B2naWSR6yDA==";
-      };
-    };
     "p-any-2.1.0" = {
       name = "p-any";
       packageName = "p-any";
@@ -43227,15 +43128,6 @@ let
         sha512 = "wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==";
       };
     };
-    "p-lock-2.1.0" = {
-      name = "p-lock";
-      packageName = "p-lock";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-lock/-/p-lock-2.1.0.tgz";
-        sha512 = "pi2yT8gNhVrV4LgsUvJWQy58TXH1HG2+NXDby9+UrsS/9fXb0FJH9aCxbdHJ0EAQ6XC7ggSP6GAzuR5puDArUQ==";
-      };
-    };
     "p-map-2.1.0" = {
       name = "p-map";
       packageName = "p-map";
@@ -43281,6 +43173,15 @@ let
         sha512 = "T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==";
       };
     };
+    "p-map-7.0.1" = {
+      name = "p-map";
+      packageName = "p-map";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-map/-/p-map-7.0.1.tgz";
+        sha512 = "2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==";
+      };
+    };
     "p-map-series-2.1.0" = {
       name = "p-map-series";
       packageName = "p-map-series";
@@ -43452,6 +43353,24 @@ let
         sha512 = "RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==";
       };
     };
+    "pac-proxy-agent-7.0.1" = {
+      name = "pac-proxy-agent";
+      packageName = "pac-proxy-agent";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz";
+        sha512 = "ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==";
+      };
+    };
+    "pac-resolver-7.0.1" = {
+      name = "pac-resolver";
+      packageName = "pac-resolver";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz";
+        sha512 = "5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==";
+      };
+    };
     "package-hash-4.0.0" = {
       name = "package-hash";
       packageName = "package-hash";
@@ -43524,15 +43443,6 @@ let
         sha512 = "mtKKtCeSZMtWcc5hHJS6OlEGP7J9g7WN6vWCCZi2hCXFag/Zmjokh6WFFTQb9TuMnBcZpRjhhMQyOyglPCAahw==";
       };
     };
-    "package-name-conflict-1.0.3" = {
-      name = "package-name-conflict";
-      packageName = "package-name-conflict";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/package-name-conflict/-/package-name-conflict-1.0.3.tgz";
-        sha512 = "DPBNWSUWC0wPofXeNThao0uP4a93J7r90UyhagmJS0QcacTTkorZwXYsOop70phn1hKdcf/2e9lJIhazS8bx5A==";
-      };
-    };
     "pacote-17.0.6" = {
       name = "pacote";
       packageName = "pacote";
@@ -43596,13 +43506,13 @@ let
         sha512 = "mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==";
       };
     };
-    "parse-asn1-5.1.6" = {
+    "parse-asn1-5.1.7" = {
       name = "parse-asn1";
       packageName = "parse-asn1";
-      version = "5.1.6";
+      version = "5.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz";
-        sha512 = "RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==";
+        url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz";
+        sha512 = "CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==";
       };
     };
     "parse-author-2.0.0" = {
@@ -43776,24 +43686,6 @@ let
         sha512 = "rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==";
       };
     };
-    "parse-json-object-1.1.0" = {
-      name = "parse-json-object";
-      packageName = "parse-json-object";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parse-json-object/-/parse-json-object-1.1.0.tgz";
-        sha512 = "4w5s6uJY1tW9REY8UwUOyaZKSKsrbQrMEzlV/Le/g5t4iMWuuyK83pZZ0OZimSOL9iyv2ORvRSgz71Ekd7iD3g==";
-      };
-    };
-    "parse-json-object-2.0.1" = {
-      name = "parse-json-object";
-      packageName = "parse-json-object";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parse-json-object/-/parse-json-object-2.0.1.tgz";
-        sha512 = "/oF7PUUBjCqHmMEE6xIQeX5ZokQ9+miudACzPt4KBU2qi6CxZYPdisPXx4ad7wpZJYi2ZpcW2PacLTU3De3ebw==";
-      };
-    };
     "parse-latin-5.0.1" = {
       name = "parse-latin";
       packageName = "parse-latin";
@@ -44919,6 +44811,15 @@ let
         sha512 = "LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==";
       };
     };
+    "pnpm-sync-lib-0.1.4" = {
+      name = "pnpm-sync-lib";
+      packageName = "pnpm-sync-lib";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pnpm-sync-lib/-/pnpm-sync-lib-0.1.4.tgz";
+        sha512 = "3xwsXcsu+lj2l1nTF0TcgjHuMrnPpQJqHioPj5DTL9gFU+RSsoND2nEMelOo9qAz+BlPelxXZOc5z1Tgs7gwiQ==";
+      };
+    };
     "pony-cause-1.1.1" = {
       name = "pony-cause";
       packageName = "pony-cause";
@@ -44964,6 +44865,15 @@ let
         sha512 = "xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==";
       };
     };
+    "possible-typed-array-names-1.0.0" = {
+      name = "possible-typed-array-names";
+      packageName = "possible-typed-array-names";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz";
+        sha512 = "d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==";
+      };
+    };
     "postcss-7.0.39" = {
       name = "postcss";
       packageName = "postcss";
@@ -44973,13 +44883,13 @@ let
         sha512 = "yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==";
       };
     };
-    "postcss-8.4.35" = {
+    "postcss-8.4.36" = {
       name = "postcss";
       packageName = "postcss";
-      version = "8.4.35";
+      version = "8.4.36";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz";
-        sha512 = "u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.4.36.tgz";
+        sha512 = "/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw==";
       };
     };
     "postcss-calc-8.2.4" = {
@@ -45009,13 +44919,13 @@ let
         sha512 = "UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==";
       };
     };
-    "postcss-colormin-6.0.2" = {
+    "postcss-colormin-6.1.0" = {
       name = "postcss-colormin";
       packageName = "postcss-colormin";
-      version = "6.0.2";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.2.tgz";
-        sha512 = "TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==";
+        url = "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz";
+        sha512 = "x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==";
       };
     };
     "postcss-convert-values-5.1.3" = {
@@ -45027,13 +44937,13 @@ let
         sha512 = "82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==";
       };
     };
-    "postcss-convert-values-6.0.2" = {
+    "postcss-convert-values-6.1.0" = {
       name = "postcss-convert-values";
       packageName = "postcss-convert-values";
-      version = "6.0.2";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.2.tgz";
-        sha512 = "aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw==";
+        url = "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz";
+        sha512 = "zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==";
       };
     };
     "postcss-discard-comments-5.1.2" = {
@@ -45045,13 +44955,13 @@ let
         sha512 = "+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==";
       };
     };
-    "postcss-discard-comments-6.0.1" = {
+    "postcss-discard-comments-6.0.2" = {
       name = "postcss-discard-comments";
       packageName = "postcss-discard-comments";
-      version = "6.0.1";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz";
-        sha512 = "f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==";
+        url = "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz";
+        sha512 = "65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==";
       };
     };
     "postcss-discard-duplicates-5.1.0" = {
@@ -45063,13 +44973,13 @@ let
         sha512 = "zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==";
       };
     };
-    "postcss-discard-duplicates-6.0.1" = {
+    "postcss-discard-duplicates-6.0.3" = {
       name = "postcss-discard-duplicates";
       packageName = "postcss-discard-duplicates";
-      version = "6.0.1";
+      version = "6.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz";
-        sha512 = "1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==";
+        url = "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz";
+        sha512 = "+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==";
       };
     };
     "postcss-discard-empty-5.1.1" = {
@@ -45081,13 +44991,13 @@ let
         sha512 = "zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==";
       };
     };
-    "postcss-discard-empty-6.0.1" = {
+    "postcss-discard-empty-6.0.3" = {
       name = "postcss-discard-empty";
       packageName = "postcss-discard-empty";
-      version = "6.0.1";
+      version = "6.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz";
-        sha512 = "yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==";
+        url = "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz";
+        sha512 = "znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==";
       };
     };
     "postcss-discard-overridden-5.1.0" = {
@@ -45099,13 +45009,13 @@ let
         sha512 = "21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==";
       };
     };
-    "postcss-discard-overridden-6.0.1" = {
+    "postcss-discard-overridden-6.0.2" = {
       name = "postcss-discard-overridden";
       packageName = "postcss-discard-overridden";
-      version = "6.0.1";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz";
-        sha512 = "qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==";
+        url = "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz";
+        sha512 = "j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==";
       };
     };
     "postcss-html-0.36.0" = {
@@ -45180,13 +45090,13 @@ let
         sha512 = "YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==";
       };
     };
-    "postcss-merge-longhand-6.0.2" = {
+    "postcss-merge-longhand-6.0.4" = {
       name = "postcss-merge-longhand";
       packageName = "postcss-merge-longhand";
-      version = "6.0.2";
+      version = "6.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.2.tgz";
-        sha512 = "+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw==";
+        url = "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.4.tgz";
+        sha512 = "vAfWGcxUUGlFiPM3nDMZA+/Yo9sbpc3JNkcYZez8FfJDv41Dh7tAgA3QGVTocaHCZZL6aXPXPOaBMJsjujodsA==";
       };
     };
     "postcss-merge-rules-5.1.4" = {
@@ -45198,13 +45108,13 @@ let
         sha512 = "0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==";
       };
     };
-    "postcss-merge-rules-6.0.3" = {
+    "postcss-merge-rules-6.1.0" = {
       name = "postcss-merge-rules";
       packageName = "postcss-merge-rules";
-      version = "6.0.3";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.3.tgz";
-        sha512 = "yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==";
+        url = "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.0.tgz";
+        sha512 = "lER+W3Gr6XOvxOYk1Vi/6UsAgKMg6MDBthmvbNqi2XxAk/r9XfhdYZSigfWjuWWn3zYw2wLelvtM8XuAEFqRkA==";
       };
     };
     "postcss-minify-font-values-5.1.0" = {
@@ -45216,13 +45126,13 @@ let
         sha512 = "el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==";
       };
     };
-    "postcss-minify-font-values-6.0.1" = {
+    "postcss-minify-font-values-6.0.3" = {
       name = "postcss-minify-font-values";
       packageName = "postcss-minify-font-values";
-      version = "6.0.1";
+      version = "6.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz";
-        sha512 = "tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==";
+        url = "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.3.tgz";
+        sha512 = "SmAeTA1We5rMnN3F8X9YBNo9bj9xB4KyDHnaNJnBfQIPi+60fNiR9OTRnIaMqkYzAQX0vObIw4Pn0vuKEOettg==";
       };
     };
     "postcss-minify-gradients-5.1.1" = {
@@ -45234,13 +45144,13 @@ let
         sha512 = "VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==";
       };
     };
-    "postcss-minify-gradients-6.0.1" = {
+    "postcss-minify-gradients-6.0.3" = {
       name = "postcss-minify-gradients";
       packageName = "postcss-minify-gradients";
-      version = "6.0.1";
+      version = "6.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz";
-        sha512 = "M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==";
+        url = "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz";
+        sha512 = "4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==";
       };
     };
     "postcss-minify-params-5.1.4" = {
@@ -45252,13 +45162,13 @@ let
         sha512 = "+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==";
       };
     };
-    "postcss-minify-params-6.0.2" = {
+    "postcss-minify-params-6.1.0" = {
       name = "postcss-minify-params";
       packageName = "postcss-minify-params";
-      version = "6.0.2";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.2.tgz";
-        sha512 = "zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==";
+        url = "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz";
+        sha512 = "bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==";
       };
     };
     "postcss-minify-selectors-5.2.1" = {
@@ -45270,13 +45180,13 @@ let
         sha512 = "nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==";
       };
     };
-    "postcss-minify-selectors-6.0.2" = {
+    "postcss-minify-selectors-6.0.3" = {
       name = "postcss-minify-selectors";
       packageName = "postcss-minify-selectors";
-      version = "6.0.2";
+      version = "6.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.2.tgz";
-        sha512 = "0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==";
+        url = "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.3.tgz";
+        sha512 = "IcV7ZQJcaXyhx4UBpWZMsinGs2NmiUC60rJSkyvjPCPqhNjVGsrJUM+QhAtCaikZ0w0/AbZuH4wVvF/YMuMhvA==";
       };
     };
     "postcss-modules-extract-imports-3.0.0" = {
@@ -45333,13 +45243,13 @@ let
         sha512 = "mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==";
       };
     };
-    "postcss-normalize-charset-6.0.1" = {
+    "postcss-normalize-charset-6.0.2" = {
       name = "postcss-normalize-charset";
       packageName = "postcss-normalize-charset";
-      version = "6.0.1";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz";
-        sha512 = "aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==";
+        url = "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz";
+        sha512 = "a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==";
       };
     };
     "postcss-normalize-display-values-5.1.0" = {
@@ -45351,13 +45261,13 @@ let
         sha512 = "WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==";
       };
     };
-    "postcss-normalize-display-values-6.0.1" = {
+    "postcss-normalize-display-values-6.0.2" = {
       name = "postcss-normalize-display-values";
       packageName = "postcss-normalize-display-values";
-      version = "6.0.1";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz";
-        sha512 = "mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==";
+        url = "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz";
+        sha512 = "8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==";
       };
     };
     "postcss-normalize-positions-5.1.1" = {
@@ -45369,13 +45279,13 @@ let
         sha512 = "6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==";
       };
     };
-    "postcss-normalize-positions-6.0.1" = {
+    "postcss-normalize-positions-6.0.2" = {
       name = "postcss-normalize-positions";
       packageName = "postcss-normalize-positions";
-      version = "6.0.1";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz";
-        sha512 = "HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==";
+        url = "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz";
+        sha512 = "/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==";
       };
     };
     "postcss-normalize-repeat-style-5.1.1" = {
@@ -45387,13 +45297,13 @@ let
         sha512 = "mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==";
       };
     };
-    "postcss-normalize-repeat-style-6.0.1" = {
+    "postcss-normalize-repeat-style-6.0.2" = {
       name = "postcss-normalize-repeat-style";
       packageName = "postcss-normalize-repeat-style";
-      version = "6.0.1";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz";
-        sha512 = "Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==";
+        url = "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz";
+        sha512 = "YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==";
       };
     };
     "postcss-normalize-string-5.1.0" = {
@@ -45405,13 +45315,13 @@ let
         sha512 = "oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==";
       };
     };
-    "postcss-normalize-string-6.0.1" = {
+    "postcss-normalize-string-6.0.2" = {
       name = "postcss-normalize-string";
       packageName = "postcss-normalize-string";
-      version = "6.0.1";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz";
-        sha512 = "5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==";
+        url = "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz";
+        sha512 = "vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==";
       };
     };
     "postcss-normalize-timing-functions-5.1.0" = {
@@ -45423,13 +45333,13 @@ let
         sha512 = "DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==";
       };
     };
-    "postcss-normalize-timing-functions-6.0.1" = {
+    "postcss-normalize-timing-functions-6.0.2" = {
       name = "postcss-normalize-timing-functions";
       packageName = "postcss-normalize-timing-functions";
-      version = "6.0.1";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz";
-        sha512 = "4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==";
+        url = "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz";
+        sha512 = "a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==";
       };
     };
     "postcss-normalize-unicode-5.1.1" = {
@@ -45441,13 +45351,13 @@ let
         sha512 = "qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==";
       };
     };
-    "postcss-normalize-unicode-6.0.2" = {
+    "postcss-normalize-unicode-6.1.0" = {
       name = "postcss-normalize-unicode";
       packageName = "postcss-normalize-unicode";
-      version = "6.0.2";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.2.tgz";
-        sha512 = "Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==";
+        url = "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz";
+        sha512 = "QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==";
       };
     };
     "postcss-normalize-url-5.1.0" = {
@@ -45459,13 +45369,13 @@ let
         sha512 = "5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==";
       };
     };
-    "postcss-normalize-url-6.0.1" = {
+    "postcss-normalize-url-6.0.2" = {
       name = "postcss-normalize-url";
       packageName = "postcss-normalize-url";
-      version = "6.0.1";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz";
-        sha512 = "jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==";
+        url = "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz";
+        sha512 = "kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==";
       };
     };
     "postcss-normalize-whitespace-5.1.1" = {
@@ -45477,13 +45387,13 @@ let
         sha512 = "83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==";
       };
     };
-    "postcss-normalize-whitespace-6.0.1" = {
+    "postcss-normalize-whitespace-6.0.2" = {
       name = "postcss-normalize-whitespace";
       packageName = "postcss-normalize-whitespace";
-      version = "6.0.1";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz";
-        sha512 = "76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==";
+        url = "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz";
+        sha512 = "sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==";
       };
     };
     "postcss-ordered-values-5.1.3" = {
@@ -45495,13 +45405,13 @@ let
         sha512 = "9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==";
       };
     };
-    "postcss-ordered-values-6.0.1" = {
+    "postcss-ordered-values-6.0.2" = {
       name = "postcss-ordered-values";
       packageName = "postcss-ordered-values";
-      version = "6.0.1";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz";
-        sha512 = "XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==";
+        url = "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz";
+        sha512 = "VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==";
       };
     };
     "postcss-reduce-initial-5.1.2" = {
@@ -45513,13 +45423,13 @@ let
         sha512 = "dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==";
       };
     };
-    "postcss-reduce-initial-6.0.2" = {
+    "postcss-reduce-initial-6.1.0" = {
       name = "postcss-reduce-initial";
       packageName = "postcss-reduce-initial";
-      version = "6.0.2";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.2.tgz";
-        sha512 = "YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==";
+        url = "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz";
+        sha512 = "RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==";
       };
     };
     "postcss-reduce-transforms-5.1.0" = {
@@ -45531,13 +45441,13 @@ let
         sha512 = "2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==";
       };
     };
-    "postcss-reduce-transforms-6.0.1" = {
+    "postcss-reduce-transforms-6.0.2" = {
       name = "postcss-reduce-transforms";
       packageName = "postcss-reduce-transforms";
-      version = "6.0.1";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz";
-        sha512 = "fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==";
+        url = "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz";
+        sha512 = "sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==";
       };
     };
     "postcss-reporter-7.1.0" = {
@@ -45594,13 +45504,13 @@ let
         sha512 = "IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==";
       };
     };
-    "postcss-selector-parser-6.0.15" = {
+    "postcss-selector-parser-6.0.16" = {
       name = "postcss-selector-parser";
       packageName = "postcss-selector-parser";
-      version = "6.0.15";
+      version = "6.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz";
-        sha512 = "rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==";
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz";
+        sha512 = "A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==";
       };
     };
     "postcss-selector-parser-6.0.2" = {
@@ -45621,13 +45531,13 @@ let
         sha512 = "D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==";
       };
     };
-    "postcss-svgo-6.0.2" = {
+    "postcss-svgo-6.0.3" = {
       name = "postcss-svgo";
       packageName = "postcss-svgo";
-      version = "6.0.2";
+      version = "6.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.2.tgz";
-        sha512 = "IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==";
+        url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz";
+        sha512 = "dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==";
       };
     };
     "postcss-syntax-0.36.2" = {
@@ -45648,13 +45558,13 @@ let
         sha512 = "5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==";
       };
     };
-    "postcss-unique-selectors-6.0.2" = {
+    "postcss-unique-selectors-6.0.3" = {
       name = "postcss-unique-selectors";
       packageName = "postcss-unique-selectors";
-      version = "6.0.2";
+      version = "6.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.2.tgz";
-        sha512 = "8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==";
+        url = "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.3.tgz";
+        sha512 = "NFXbYr8qdmCr/AFceaEfdcsKGCvWTeGO6QVC9h2GvtWgj0/0dklKQcaMMVzs6tr8bY+ase8hOtHW8OBTTRvS8A==";
       };
     };
     "postcss-value-parser-4.2.0" = {
@@ -45720,6 +45630,15 @@ let
         sha512 = "jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==";
       };
     };
+    "prebuild-install-7.1.2" = {
+      name = "prebuild-install";
+      packageName = "prebuild-install";
+      version = "7.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz";
+        sha512 = "UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==";
+      };
+    };
     "precond-0.2.3" = {
       name = "precond";
       packageName = "precond";
@@ -45729,13 +45648,13 @@ let
         sha512 = "QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==";
       };
     };
-    "preferred-pm-3.1.2" = {
+    "preferred-pm-3.1.3" = {
       name = "preferred-pm";
       packageName = "preferred-pm";
-      version = "3.1.2";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.1.2.tgz";
-        sha512 = "nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==";
+        url = "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.1.3.tgz";
+        sha512 = "MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==";
       };
     };
     "prelude-ls-1.1.2" = {
@@ -45819,15 +45738,6 @@ let
         sha512 = "L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==";
       };
     };
-    "prettier-3.1.1" = {
-      name = "prettier";
-      packageName = "prettier";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz";
-        sha512 = "22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==";
-      };
-    };
     "prettier-3.2.5" = {
       name = "prettier";
       packageName = "prettier";
@@ -45855,13 +45765,13 @@ let
         sha512 = "5HrJNnPmZqTUNoA97zn4gNQv9BgVhv+et03314WpQ9H9N8m2L9OSV798olwmG2YLXPl1iSstlJCR1zB3x5xG4g==";
       };
     };
-    "prettier-plugin-svelte-3.1.2" = {
+    "prettier-plugin-svelte-3.2.2" = {
       name = "prettier-plugin-svelte";
       packageName = "prettier-plugin-svelte";
-      version = "3.1.2";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.1.2.tgz";
-        sha512 = "7xfMZtwgAWHMT0iZc8jN4o65zgbAQ3+O32V6W7pXrqNvKnHnkoyQCGCbKeUyXKZLbYE0YhFRnamfxfkEGxm8qA==";
+        url = "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.2.tgz";
+        sha512 = "ZzzE/wMuf48/1+Lf2Ffko0uDa6pyCfgHV6+uAhtg2U0AAXGrhCSW88vEJNAkAxW5qyrFY1y1zZ4J8TgHrjW++Q==";
       };
     };
     "pretty-bytes-5.6.0" = {
@@ -46296,6 +46206,15 @@ let
         sha512 = "llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==";
       };
     };
+    "proxy-agent-6.4.0" = {
+      name = "proxy-agent";
+      packageName = "proxy-agent";
+      version = "6.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz";
+        sha512 = "u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==";
+      };
+    };
     "proxy-from-env-1.1.0" = {
       name = "proxy-from-env";
       packageName = "proxy-from-env";
@@ -46629,13 +46548,13 @@ let
         sha512 = "pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==";
       };
     };
-    "pyright-1.1.350" = {
+    "pyright-1.1.354" = {
       name = "pyright";
       packageName = "pyright";
-      version = "1.1.350";
+      version = "1.1.354";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.350.tgz";
-        sha512 = "9AMEsPGFzyYzwYCU3QuTUk/AEfVO3hlKtvF0kybBnwGiFuYsmwx02/Hlra7ROX+jtmDStL8qiHCPoYy0rCz/uA==";
+        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.354.tgz";
+        sha512 = "lUojJFZqg4St+4E2WrZbqODeqLvhuRJXRDros59bJcK485hXJLlCb3DzTd/9KYfaisf2TqvDV79qhc0grwyf/w==";
       };
     };
     "q-1.5.1" = {
@@ -46719,13 +46638,13 @@ let
         sha512 = "MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==";
       };
     };
-    "qs-6.11.2" = {
+    "qs-6.12.0" = {
       name = "qs";
       packageName = "qs";
-      version = "6.11.2";
+      version = "6.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz";
-        sha512 = "tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==";
+        url = "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz";
+        sha512 = "trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==";
       };
     };
     "qs-6.5.2" = {
@@ -46899,15 +46818,6 @@ let
         sha512 = "b3w19IEXnt5auacLAbePVsqPyVQUwmuhJQrrWnVhm4pP8PAMg2U9vFHbAD9XYXXbMDjdLJs0x5NLqwTV8uFK4g==";
       };
     };
-    "quill-delta-5.1.0" = {
-      name = "quill-delta";
-      packageName = "quill-delta";
-      version = "5.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/quill-delta/-/quill-delta-5.1.0.tgz";
-        sha512 = "X74oCeRI4/p0ucjb5Ma8adTXd9Scumz367kkMK5V/IatcX6A0vlgLgKbzXWy5nZmCGeNJm2oQX0d2Eqj+ZIlCA==";
-      };
-    };
     "quotation-2.0.3" = {
       name = "quotation";
       packageName = "quotation";
@@ -47394,24 +47304,6 @@ let
         sha512 = "yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==";
       };
     };
-    "read-file-safe-1.0.10" = {
-      name = "read-file-safe";
-      packageName = "read-file-safe";
-      version = "1.0.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/read-file-safe/-/read-file-safe-1.0.10.tgz";
-        sha512 = "qW25fd2uMX3dV6Ui/R0jYK1MhTpjx8FO/VHaHTXzwWsGnkNwLRcqYfCXd9qDM+NZ273DPUvP2RaimYuLSu1K/g==";
-      };
-    };
-    "read-json-safe-1.0.5" = {
-      name = "read-json-safe";
-      packageName = "read-json-safe";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/read-json-safe/-/read-json-safe-1.0.5.tgz";
-        sha512 = "SJyNY/U9+vW35FPus22Qvv1oilnR7PCfN2E70uKQEGaJS313A5/cz9Yhv7ZtWzZ+XIwrtEPxXf10BOyYemHehA==";
-      };
-    };
     "read-last-lines-1.6.0" = {
       name = "read-last-lines";
       packageName = "read-last-lines";
@@ -47898,13 +47790,13 @@ let
         sha512 = "ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==";
       };
     };
-    "reflect.getprototypeof-1.0.5" = {
+    "reflect.getprototypeof-1.0.6" = {
       name = "reflect.getprototypeof";
       packageName = "reflect.getprototypeof";
-      version = "1.0.5";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz";
-        sha512 = "62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==";
+        url = "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz";
+        sha512 = "fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==";
       };
     };
     "reftools-1.1.9" = {
@@ -48996,13 +48888,13 @@ let
         sha512 = "Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==";
       };
     };
-    "require-in-the-middle-7.2.0" = {
+    "require-in-the-middle-7.2.1" = {
       name = "require-in-the-middle";
       packageName = "require-in-the-middle";
-      version = "7.2.0";
+      version = "7.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.2.0.tgz";
-        sha512 = "3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw==";
+        url = "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.2.1.tgz";
+        sha512 = "u5XngygsJ+XV2dBV/Pl4SrcNpUXQfmYmXtuFeHDXfzk4i4NnGnret6xKWkkJHjMHS/16yMV9pEAlAunqmjllkA==";
       };
     };
     "require-main-filename-1.0.1" = {
@@ -49626,15 +49518,6 @@ let
         sha512 = "1JKFzLHeteNandmlVBUWgLPmipFEllhdUQlmNvkXd6ju4VFOlGr0VmtlQaxzZoVysG2nbGb8eAtzNqQTxzQ+AQ==";
       };
     };
-    "run-applescript-5.0.0" = {
-      name = "run-applescript";
-      packageName = "run-applescript";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz";
-        sha512 = "XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==";
-      };
-    };
     "run-applescript-7.0.0" = {
       name = "run-applescript";
       packageName = "run-applescript";
@@ -49824,13 +49707,13 @@ let
         sha512 = "xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==";
       };
     };
-    "safe-array-concat-1.1.0" = {
+    "safe-array-concat-1.1.2" = {
       name = "safe-array-concat";
       packageName = "safe-array-concat";
-      version = "1.1.0";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz";
-        sha512 = "ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==";
+        url = "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz";
+        sha512 = "vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==";
       };
     };
     "safe-buffer-5.0.1" = {
@@ -49968,13 +49851,13 @@ let
         sha512 = "pVlvK5ysevz8MzybRnDIa2YMxn0OJ7b9lDiWhMoaKPoJ7YkAg/7YtNjUgaYzElkwHxsw8dBMhaEn7UP6zxEwPg==";
       };
     };
-    "sass-1.71.0" = {
+    "sass-1.72.0" = {
       name = "sass";
       packageName = "sass";
-      version = "1.71.0";
+      version = "1.72.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass/-/sass-1.71.0.tgz";
-        sha512 = "HKKIKf49Vkxlrav3F/w6qRuPcmImGVbIXJ2I3Kg0VMA+3Bav+8yE9G5XmP5lMj6nl4OlqbPftGAscNaNu28b8w==";
+        url = "https://registry.npmjs.org/sass/-/sass-1.72.0.tgz";
+        sha512 = "Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA==";
       };
     };
     "sass-formatter-0.7.9" = {
@@ -50535,22 +50418,22 @@ let
         sha512 = "KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==";
       };
     };
-    "set-function-length-1.2.1" = {
+    "set-function-length-1.2.2" = {
       name = "set-function-length";
       packageName = "set-function-length";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz";
-        sha512 = "j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==";
+        url = "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz";
+        sha512 = "pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==";
       };
     };
-    "set-function-name-2.0.1" = {
+    "set-function-name-2.0.2" = {
       name = "set-function-name";
       packageName = "set-function-name";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz";
-        sha512 = "tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==";
+        url = "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz";
+        sha512 = "7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==";
       };
     };
     "set-immediate-shim-1.0.1" = {
@@ -50643,13 +50526,13 @@ let
         sha512 = "/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==";
       };
     };
-    "sharp-0.32.6" = {
+    "sharp-0.33.2" = {
       name = "sharp";
       packageName = "sharp";
-      version = "0.32.6";
+      version = "0.33.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz";
-        sha512 = "KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==";
+        url = "https://registry.npmjs.org/sharp/-/sharp-0.33.2.tgz";
+        sha512 = "WlYOPyyPDiiM07j/UO+E720ju6gtNtHjEGg5vovUk1Lgxyjm2LFO+37Nt/UI3MMh2l6hxTWQWi7qk3cXJTutcQ==";
       };
     };
     "shasum-1.0.2" = {
@@ -50733,15 +50616,6 @@ let
         sha512 = "TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==";
       };
     };
-    "shelljs.exec-1.1.8" = {
-      name = "shelljs.exec";
-      packageName = "shelljs.exec";
-      version = "1.1.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/shelljs.exec/-/shelljs.exec-1.1.8.tgz";
-        sha512 = "vFILCw+lzUtiwBAHV8/Ex8JsFjelFMdhONIsgKNLgTzeRckp2AOYRQtHJE/9LhNvdMmE27AGtzWx0+DHpwIwSw==";
-      };
-    };
     "shellwords-0.1.1" = {
       name = "shellwords";
       packageName = "shellwords";
@@ -50832,13 +50706,13 @@ let
         sha512 = "G5w1eODRWHWd/H5u6PMAN83TQJ/iOOM8cRgzC2v7trPbnMlq3XIxmQpGw8idyqRkE/wi5YX2j+fobj5xArPw+g==";
       };
     };
-    "side-channel-1.0.5" = {
+    "side-channel-1.0.6" = {
       name = "side-channel";
       packageName = "side-channel";
-      version = "1.0.5";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz";
-        sha512 = "QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==";
+        url = "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz";
+        sha512 = "fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==";
       };
     };
     "signal-exit-3.0.7" = {
@@ -51345,13 +51219,13 @@ let
         sha512 = "KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==";
       };
     };
-    "socket.io-4.7.4" = {
+    "socket.io-4.7.5" = {
       name = "socket.io";
       packageName = "socket.io";
-      version = "4.7.4";
+      version = "4.7.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz";
-        sha512 = "DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==";
+        url = "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz";
+        sha512 = "DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==";
       };
     };
     "socket.io-adapter-0.2.0" = {
@@ -51372,13 +51246,13 @@ let
         sha512 = "WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==";
       };
     };
-    "socket.io-adapter-2.5.2" = {
+    "socket.io-adapter-2.5.4" = {
       name = "socket.io-adapter";
       packageName = "socket.io-adapter";
-      version = "2.5.2";
+      version = "2.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz";
-        sha512 = "87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==";
+        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz";
+        sha512 = "wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==";
       };
     };
     "socket.io-client-1.0.6" = {
@@ -51408,13 +51282,13 @@ let
         sha512 = "lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw==";
       };
     };
-    "socket.io-client-4.7.4" = {
+    "socket.io-client-4.7.5" = {
       name = "socket.io-client";
       packageName = "socket.io-client";
-      version = "4.7.4";
+      version = "4.7.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.4.tgz";
-        sha512 = "wh+OkeF0rAVCrABWQBaEjLfb7DVPotMbu0cgWgyR0v6eA4EoVnAwcIeIbcdTE3GT/H3kbdLl7OoH2+asoDRIIg==";
+        url = "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz";
+        sha512 = "sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==";
       };
     };
     "socket.io-parser-2.1.2" = {
@@ -51471,13 +51345,13 @@ let
         sha512 = "GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==";
       };
     };
-    "socks-2.8.0" = {
+    "socks-2.8.1" = {
       name = "socks";
       packageName = "socks";
-      version = "2.8.0";
+      version = "2.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socks/-/socks-2.8.0.tgz";
-        sha512 = "AvXLNBlmf/AN7g6ZuCRNtwbLFacfNBYvy7pchLnpJ1aqCw7FPOK0HEC/LxOZxWiJpqwnjYPxxxNxXYOgX8+3fw==";
+        url = "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz";
+        sha512 = "B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==";
       };
     };
     "socks-proxy-agent-6.2.1" = {
@@ -51687,6 +51561,15 @@ let
         sha512 = "R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==";
       };
     };
+    "source-map-js-1.1.0" = {
+      name = "source-map-js";
+      packageName = "source-map-js";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-js/-/source-map-js-1.1.0.tgz";
+        sha512 = "9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw==";
+      };
+    };
     "source-map-loader-3.0.2" = {
       name = "source-map-loader";
       packageName = "source-map-loader";
@@ -51840,13 +51723,13 @@ let
         sha512 = "sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==";
       };
     };
-    "spdx-license-list-6.8.0" = {
+    "spdx-license-list-6.9.0" = {
       name = "spdx-license-list";
       packageName = "spdx-license-list";
-      version = "6.8.0";
+      version = "6.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-6.8.0.tgz";
-        sha512 = "5UdM7r9yJ1EvsPQZWfa41AZjLQngl9iMMysm9XBW7Lqhq7aF8cllfqjS+rFCHB8FFMGSM0yFWue2LUV9mR0QzQ==";
+        url = "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-6.9.0.tgz";
+        sha512 = "L2jl5vc2j6jxWcNCvcVj/BW9A8yGIG02Dw+IUw0ZxDM70f7Ylf5Hq39appV1BI9yxyWQRpq2TQ1qaXvf+yjkqA==";
       };
     };
     "spdy-1.32.5" = {
@@ -52560,13 +52443,13 @@ let
         sha512 = "Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==";
       };
     };
-    "streamx-2.16.0" = {
+    "streamx-2.16.1" = {
       name = "streamx";
       packageName = "streamx";
-      version = "2.16.0";
+      version = "2.16.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/streamx/-/streamx-2.16.0.tgz";
-        sha512 = "a7Fi0PoUeusrUcMS4+HxivnZqYsw2MFEP841TIyLxTcEIucHcJsk+0ARcq3tGq1xDn+xK7sKHetvfMzI1/CzMA==";
+        url = "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz";
+        sha512 = "m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==";
       };
     };
     "strict-uri-encode-1.1.0" = {
@@ -52749,22 +52632,31 @@ let
         sha512 = "1BH+X+1hSthZFW+X+JaUkjkkUPwIlLEMJBLANN3hOob3RhEk5snLWNECDnYbgn/m5c5JV7Ersu1Yubaf+05cIA==";
       };
     };
-    "string.prototype.trim-1.2.8" = {
+    "string.prototype.repeat-1.0.0" = {
+      name = "string.prototype.repeat";
+      packageName = "string.prototype.repeat";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz";
+        sha512 = "0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==";
+      };
+    };
+    "string.prototype.trim-1.2.9" = {
       name = "string.prototype.trim";
       packageName = "string.prototype.trim";
-      version = "1.2.8";
+      version = "1.2.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz";
-        sha512 = "lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==";
+        url = "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz";
+        sha512 = "klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==";
       };
     };
-    "string.prototype.trimend-1.0.7" = {
+    "string.prototype.trimend-1.0.8" = {
       name = "string.prototype.trimend";
       packageName = "string.prototype.trimend";
-      version = "1.0.7";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz";
-        sha512 = "Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==";
+        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz";
+        sha512 = "p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==";
       };
     };
     "string.prototype.trimstart-1.0.7" = {
@@ -53127,13 +53019,13 @@ let
         sha512 = "sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==";
       };
     };
-    "stylehacks-6.0.2" = {
+    "stylehacks-6.1.0" = {
       name = "stylehacks";
       packageName = "stylehacks";
-      version = "6.0.2";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.2.tgz";
-        sha512 = "00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==";
+        url = "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.0.tgz";
+        sha512 = "ETErsPFgwlfYZ/CSjMO2Ddf+TsnkCVPBPaoB99Ro8WMAxf7cglzmFsRBhRmKObFjibtcvlNxFFPHuyr3sNlNUQ==";
       };
     };
     "stylelint-13.13.1" = {
@@ -53163,13 +53055,13 @@ let
         sha512 = "MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==";
       };
     };
-    "stylus-0.62.0" = {
+    "stylus-0.63.0" = {
       name = "stylus";
       packageName = "stylus";
-      version = "0.62.0";
+      version = "0.63.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylus/-/stylus-0.62.0.tgz";
-        sha512 = "v3YCf31atbwJQIMtPNX8hcQ+okD4NQaTuKGUWfII8eaqn+3otrbttGL1zSMZAAtiPsBztQnujVBugg/cXFUpyg==";
+        url = "https://registry.npmjs.org/stylus/-/stylus-0.63.0.tgz";
+        sha512 = "OMlgrTCPzE/ibtRMoeLVhOY0RcNuNWh0rhAVqeKnk/QwcuUKQbnqhZ1kg2vzD8VU/6h3FoPTq4RJPHgLBvX6Bw==";
       };
     };
     "subarg-1.0.0" = {
@@ -53388,22 +53280,22 @@ let
         sha512 = "vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==";
       };
     };
-    "svelte-4.2.11" = {
+    "svelte-4.2.12" = {
       name = "svelte";
       packageName = "svelte";
-      version = "4.2.11";
+      version = "4.2.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte/-/svelte-4.2.11.tgz";
-        sha512 = "YIQk3J4X89wOLhjsqIW8tqY3JHPuBdtdOIkASP2PZeAMcSW9RsIjQzMesCrxOF3gdWYC0mKknlKF7OqmLM+Zqg==";
+        url = "https://registry.npmjs.org/svelte/-/svelte-4.2.12.tgz";
+        sha512 = "d8+wsh5TfPwqVzbm4/HCXC783/KPHV60NvwitJnyTA5lWn1elhXMNWhXGCJ7PwPa8qFUnyJNIyuIRt2mT0WMug==";
       };
     };
-    "svelte-5.0.0-next.56" = {
+    "svelte-5.0.0-next.80" = {
       name = "svelte";
       packageName = "svelte";
-      version = "5.0.0-next.56";
+      version = "5.0.0-next.80";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte/-/svelte-5.0.0-next.56.tgz";
-        sha512 = "2bUvusE0Z5f1885Djpfs0sIZSHp1Ca1+qPXa/AfZeROVQuQ1979nnjY3m74RXYqhOZ6dQfskecE1NEeQHHpC6w==";
+        url = "https://registry.npmjs.org/svelte/-/svelte-5.0.0-next.80.tgz";
+        sha512 = "hiei7UfWoNa6P0yvNoUWqptSh8Tnn2V3dN+w6s32jSqpqzTtNG2tn+xbxdOOBJ5wYc3gYKYbA3+rK1Q643iCEw==";
       };
     };
     "svelte-preprocess-5.1.3" = {
@@ -53415,13 +53307,13 @@ let
         sha512 = "xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==";
       };
     };
-    "svelte2tsx-0.7.1" = {
+    "svelte2tsx-0.7.4" = {
       name = "svelte2tsx";
       packageName = "svelte2tsx";
-      version = "0.7.1";
+      version = "0.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.1.tgz";
-        sha512 = "0lKa6LrqJxRan0bDmBd/uFsVzYSXnoFUDaczaH0znke/XI79oy1JjFaF51J9EsOvpn8lXPlrUc3n/MA/ORNxBg==";
+        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.4.tgz";
+        sha512 = "zAtbQD7JmeKe0JWdKO6l38t7P6wFP0+YTc0LLFdtzWdHEddcE+/VMvJquQI9NNsnrinUbtS9JF3kosPNeglMcQ==";
       };
     };
     "sver-compat-1.5.0" = {
@@ -53731,15 +53623,6 @@ let
         sha512 = "V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==";
       };
     };
-    "tar-fs-3.0.5" = {
-      name = "tar-fs";
-      packageName = "tar-fs";
-      version = "3.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz";
-        sha512 = "JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==";
-      };
-    };
     "tar-stream-1.6.2" = {
       name = "tar-stream";
       packageName = "tar-stream";
@@ -53758,15 +53641,6 @@ let
         sha512 = "ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==";
       };
     };
-    "tar-stream-3.1.7" = {
-      name = "tar-stream";
-      packageName = "tar-stream";
-      version = "3.1.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz";
-        sha512 = "qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==";
-      };
-    };
     "taskkill-3.1.0" = {
       name = "taskkill";
       packageName = "taskkill";
@@ -53956,13 +53830,13 @@ let
         sha512 = "flFL3m4wuixmf6IfhFJd1YPiLiMuxEc8uHRM1buzIeZPm22Au2pDqBJQgdo7n1WfPU1ONFGv7YDwpFBmHGF6lg==";
       };
     };
-    "terser-5.27.1" = {
+    "terser-5.29.2" = {
       name = "terser";
       packageName = "terser";
-      version = "5.27.1";
+      version = "5.29.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser/-/terser-5.27.1.tgz";
-        sha512 = "29wAr6UU/oQpnTw5HoadwjUZnFQXGdOfj0LjZ4sVxzqwHh/QVkvr7m8y9WoR4iN3FRitVduTc6KdjcW38Npsug==";
+        url = "https://registry.npmjs.org/terser/-/terser-5.29.2.tgz";
+        sha512 = "ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==";
       };
     };
     "terser-webpack-plugin-5.3.10" = {
@@ -54118,15 +53992,6 @@ let
         sha512 = "RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==";
       };
     };
-    "thingies-1.16.0" = {
-      name = "thingies";
-      packageName = "thingies";
-      version = "1.16.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/thingies/-/thingies-1.16.0.tgz";
-        sha512 = "J23AVs11hSQxuJxvfQyMIaS9z1QpDxOCvMkL3ZxZl8/jmkgmnNGWrlyNxVz6Jbh0U6DuGmHqq6f7zUROfg/ncg==";
-      };
-    };
     "thirty-two-0.0.2" = {
       name = "thirty-two";
       packageName = "thirty-two";
@@ -54208,15 +54073,6 @@ let
         sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==";
       };
     };
-    "through2-4.0.2" = {
-      name = "through2";
-      packageName = "through2";
-      version = "4.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz";
-        sha512 = "iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==";
-      };
-    };
     "through2-filter-3.0.0" = {
       name = "through2-filter";
       packageName = "through2-filter";
@@ -54361,15 +54217,6 @@ let
         sha512 = "8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==";
       };
     };
-    "titleize-3.0.0" = {
-      name = "titleize";
-      packageName = "titleize";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz";
-        sha512 = "KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==";
-      };
-    };
     "tkwidgets-0.5.27" = {
       name = "tkwidgets";
       packageName = "tkwidgets";
@@ -54424,6 +54271,15 @@ let
         sha512 = "76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==";
       };
     };
+    "tmp-0.2.3" = {
+      name = "tmp";
+      packageName = "tmp";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz";
+        sha512 = "nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==";
+      };
+    };
     "to-absolute-glob-2.0.2" = {
       name = "to-absolute-glob";
       packageName = "to-absolute-glob";
@@ -54892,13 +54748,13 @@ let
         sha512 = "yHeaPjCBzVaXwWl5IMUapTaTC2rn/eBYg2fsG2L+CvJd+ttFbk0ylDnpTO3wVhosmE1tQEvcebbBeKLCwScQSQ==";
       };
     };
-    "ts-api-utils-1.2.1" = {
+    "ts-api-utils-1.3.0" = {
       name = "ts-api-utils";
       packageName = "ts-api-utils";
-      version = "1.2.1";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz";
-        sha512 = "RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==";
+        url = "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz";
+        sha512 = "UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==";
       };
     };
     "ts-dedent-2.2.0" = {
@@ -54973,15 +54829,6 @@ let
         sha512 = "ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==";
       };
     };
-    "tsconfck-3.0.2" = {
-      name = "tsconfck";
-      packageName = "tsconfck";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tsconfck/-/tsconfck-3.0.2.tgz";
-        sha512 = "6lWtFjwuhS3XI4HsX4Zg0izOI3FU/AI9EGVlPEUMDIhvLPMD4wkiof0WCoDgW7qY+Dy198g4d9miAqUHWHFH6Q==";
-      };
-    };
     "tsconfig-paths-3.15.0" = {
       name = "tsconfig-paths";
       packageName = "tsconfig-paths";
@@ -55180,6 +55027,15 @@ let
         sha512 = "ntI9R7fcUKjqBP6QU8rBK2Ehyt8LAzt3UBT9JR9tgo6GtuKvyUzpayWmeMKJw1DPdXzktvtIT8m2mVXz+bL/Qg==";
       };
     };
+    "turndown-7.1.3" = {
+      name = "turndown";
+      packageName = "turndown";
+      version = "7.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/turndown/-/turndown-7.1.3.tgz";
+        sha512 = "Z3/iJ6IWh8VBiACWQJaA5ulPQE5E1QwvBHj00uGzdQxdRnd8fh1DPqNOJqzQDu6DkOstORrtXzf/9adB+vMtEA==";
+      };
+    };
     "turndown-plugin-gfm-1.0.2" = {
       name = "turndown-plugin-gfm";
       packageName = "turndown-plugin-gfm";
@@ -55225,15 +55081,6 @@ let
         sha512 = "/XrQjW0e5Z915m1A0qeXD9tSLDmz8zGjR6imhGDme6rMtXYudFpXXhaToKnM52nPPCNdCh6YQsLLkwbbkFvzVA==";
       };
     };
-    "type-1.2.0" = {
-      name = "type";
-      packageName = "type";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type/-/type-1.2.0.tgz";
-        sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==";
-      };
-    };
     "type-2.7.2" = {
       name = "type";
       packageName = "type";
@@ -55378,13 +55225,13 @@ let
         sha512 = "tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==";
       };
     };
-    "type-fest-4.10.2" = {
+    "type-fest-4.12.0" = {
       name = "type-fest";
       packageName = "type-fest";
-      version = "4.10.2";
+      version = "4.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-4.10.2.tgz";
-        sha512 = "anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw==";
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-4.12.0.tgz";
+        sha512 = "5Y2/pp2wtJk8o08G0CMkuFPCO354FGwk/vbidxrdhRGZfd0tFnb4Qb8anp9XxXriwBgVPjdWbKpGl4J9lJY2jQ==";
       };
     };
     "type-is-1.6.18" = {
@@ -55396,40 +55243,40 @@ let
         sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
       };
     };
-    "typed-array-buffer-1.0.1" = {
+    "typed-array-buffer-1.0.2" = {
       name = "typed-array-buffer";
       packageName = "typed-array-buffer";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz";
-        sha512 = "RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==";
+        url = "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz";
+        sha512 = "gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==";
       };
     };
-    "typed-array-byte-length-1.0.0" = {
+    "typed-array-byte-length-1.0.1" = {
       name = "typed-array-byte-length";
       packageName = "typed-array-byte-length";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz";
-        sha512 = "Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==";
+        url = "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz";
+        sha512 = "3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==";
       };
     };
-    "typed-array-byte-offset-1.0.0" = {
+    "typed-array-byte-offset-1.0.2" = {
       name = "typed-array-byte-offset";
       packageName = "typed-array-byte-offset";
-      version = "1.0.0";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz";
-        sha512 = "RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==";
+        url = "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz";
+        sha512 = "Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==";
       };
     };
-    "typed-array-length-1.0.4" = {
+    "typed-array-length-1.0.5" = {
       name = "typed-array-length";
       packageName = "typed-array-length";
-      version = "1.0.4";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz";
-        sha512 = "KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==";
+        url = "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz";
+        sha512 = "yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==";
       };
     };
     "typed-rest-client-1.8.11" = {
@@ -55459,33 +55306,6 @@ let
         sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==";
       };
     };
-    "types-eslintrc-1.0.3" = {
-      name = "types-eslintrc";
-      packageName = "types-eslintrc";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/types-eslintrc/-/types-eslintrc-1.0.3.tgz";
-        sha512 = "zKTR6aKHEudQpl+JoZjS3qh0B5IzSpQK/BCpYBECujcnKtqL87DJJ1sJKe5B8k/y8/UJ5sukq42QDvlaJyCO2w==";
-      };
-    };
-    "types-json-1.2.2" = {
-      name = "types-json";
-      packageName = "types-json";
-      version = "1.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/types-json/-/types-json-1.2.2.tgz";
-        sha512 = "VfVLISHypS7ayIHvhacOESOTib4Sm4mAhnsgR8fzQdGp89YoBwMqvGmqENjtYehUQzgclT+7NafpEXkK/MHKwA==";
-      };
-    };
-    "types-pkg-json-1.2.1" = {
-      name = "types-pkg-json";
-      packageName = "types-pkg-json";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/types-pkg-json/-/types-pkg-json-1.2.1.tgz";
-        sha512 = "Wj75lCkPwfj1BhmaJxMPpTQj9YGpihjs3WICigt1IjTAswr7zPXP0iJYPZjU0Rw/IriODhMJjAImkCIxt9KeuQ==";
-      };
-    };
     "typesafe-path-0.2.2" = {
       name = "typesafe-path";
       packageName = "typesafe-path";
@@ -55540,31 +55360,31 @@ let
         sha512 = "cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==";
       };
     };
-    "typescript-5.2.2" = {
+    "typescript-5.3.3" = {
       name = "typescript";
       packageName = "typescript";
-      version = "5.2.2";
+      version = "5.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz";
-        sha512 = "mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz";
+        sha512 = "pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==";
       };
     };
-    "typescript-5.3.3" = {
+    "typescript-5.4.2" = {
       name = "typescript";
       packageName = "typescript";
-      version = "5.3.3";
+      version = "5.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz";
-        sha512 = "pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz";
+        sha512 = "+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==";
       };
     };
-    "typescript-5.4.0-dev.20240217" = {
+    "typescript-5.5.0-dev.20240318" = {
       name = "typescript";
       packageName = "typescript";
-      version = "5.4.0-dev.20240217";
+      version = "5.5.0-dev.20240318";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-5.4.0-dev.20240217.tgz";
-        sha512 = "GRzxhALjSGwP7M8C4HBUos+SdVdOK+mh5ZrFLZqHpIik/qWqXwkLQzUpxGIUlXZEUcuRb2vVYwSbKppNmHQmbw==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-5.5.0-dev.20240318.tgz";
+        sha512 = "NLUk3mN8h9UWmeFns5dhiRIIZffmDePNOMPwwr36tYoJikteOGLNCOOcCP2Yvc+cOzl/mkBOUaEngUBGYRJBGw==";
       };
     };
     "typescript-auto-import-cache-0.2.1" = {
@@ -57268,15 +57088,6 @@ let
         sha512 = "mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==";
       };
     };
-    "vali-date-1.0.0" = {
-      name = "vali-date";
-      packageName = "vali-date";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz";
-        sha512 = "sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==";
-      };
-    };
     "valid-url-1.0.9" = {
       name = "valid-url";
       packageName = "valid-url";
@@ -57421,13 +57232,13 @@ let
         sha512 = "Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==";
       };
     };
-    "vega-5.27.0" = {
+    "vega-5.28.0" = {
       name = "vega";
       packageName = "vega";
-      version = "5.27.0";
+      version = "5.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega/-/vega-5.27.0.tgz";
-        sha512 = "iYMQZYb2nlJBLCsUZ88pvun2sTcFcLE7GKJWisndLo+KYNMQIRePQ7X2FRuy8yvRRNxfO8XhjImh4OwxZvyYVA==";
+        url = "https://registry.npmjs.org/vega/-/vega-5.28.0.tgz";
+        sha512 = "5EDVhjBUgcVdrA6LZDBLah/nuk4FRUwZqTgP/Yi32qeRCoiN0xkptQ5Sbmj6XfH7wu1SdbAbsCm1Zls+9NC/8Q==";
       };
     };
     "vega-canvas-1.2.7" = {
@@ -57547,13 +57358,13 @@ let
         sha512 = "qy5x32SaT0YkEujQM2yKqvLGV9XWQ2aEDSugBFTdYzu/1u4bxdUSRDREOlrJ9Km3RWIOgFiCkobPmFxo47SKuA==";
       };
     };
-    "vega-parser-6.2.1" = {
+    "vega-parser-6.3.0" = {
       name = "vega-parser";
       packageName = "vega-parser";
-      version = "6.2.1";
+      version = "6.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-parser/-/vega-parser-6.2.1.tgz";
-        sha512 = "F79bQXt6fMkACR+TfFl7ueehKO26yCR/3iRZxhU7/pgHerx/d8K8pf2onMguu3NAN4eitT+PPuTgkDZtcqo9Qg==";
+        url = "https://registry.npmjs.org/vega-parser/-/vega-parser-6.3.0.tgz";
+        sha512 = "swS5RuP2imRarMpGWaAZusoKkXc4Z5WxWx349pkqxIAf4F7H8Ya9nThEkSWsFozd75O9nWh0QLifds8Xb7KjUg==";
       };
     };
     "vega-projection-1.6.0" = {
@@ -57979,58 +57790,58 @@ let
         sha512 = "Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==";
       };
     };
-    "volar-service-css-0.0.29" = {
+    "volar-service-css-0.0.34" = {
       name = "volar-service-css";
       packageName = "volar-service-css";
-      version = "0.0.29";
+      version = "0.0.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.29.tgz";
-        sha512 = "2kNdgEYEiLeeer3wkagNBVDPa3Zj7mBDeM7D3iYmBXA0LCwd2tQL3eASzcDW9Gvac1g478UtptK468GxzUAEcA==";
+        url = "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.34.tgz";
+        sha512 = "C7ua0j80ZD7bsgALAz/cA1bykPehoIa5n+3+Ccr+YLpj0fypqw9iLUmGLX11CqzqNCO2XFGe/1eXB/c+SWrF/g==";
       };
     };
-    "volar-service-emmet-0.0.29" = {
+    "volar-service-emmet-0.0.34" = {
       name = "volar-service-emmet";
       packageName = "volar-service-emmet";
-      version = "0.0.29";
+      version = "0.0.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.29.tgz";
-        sha512 = "sXRMfQ970lpOQxUcKH9B4DqE7FCNhPy6V4m3gw+kgH17mADQ2rdL63b8osXFy5bnAMBcsXRhtJXJPmh/LgZXEw==";
+        url = "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.34.tgz";
+        sha512 = "ubQvMCmHPp8Ic82LMPkgrp9ot+u2p/RDd0RyT0EykRkZpWsagHUF5HWkVheLfiMyx2rFuWx/+7qZPOgypx6h6g==";
       };
     };
-    "volar-service-html-0.0.29" = {
+    "volar-service-html-0.0.34" = {
       name = "volar-service-html";
       packageName = "volar-service-html";
-      version = "0.0.29";
+      version = "0.0.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.29.tgz";
-        sha512 = "ctTSU46KCLxcaR53mAod2wBWSEIXGdXdejqHEDPSX33H5rA2X89zyYEpuk9BOVzIHG8G8rggVXCGnGaXxmYrCw==";
+        url = "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.34.tgz";
+        sha512 = "kMEneea1tQbiRcyKavqdrSVt8zV06t+0/3pGkjO3gV6sikXTNShIDkdtB4Tq9vE2cQdM50TuS7utVV7iysUxHw==";
       };
     };
-    "volar-service-prettier-0.0.29" = {
+    "volar-service-prettier-0.0.34" = {
       name = "volar-service-prettier";
       packageName = "volar-service-prettier";
-      version = "0.0.29";
+      version = "0.0.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/volar-service-prettier/-/volar-service-prettier-0.0.29.tgz";
-        sha512 = "GxcDKfiVv3fc4XUtUOkQpX0QlFjWppRCVWIBp751gOKJwDex142xMlbTxP9la9tollbmj2O/tVUrqqLDGQ+Lsg==";
+        url = "https://registry.npmjs.org/volar-service-prettier/-/volar-service-prettier-0.0.34.tgz";
+        sha512 = "BNfJ8FwfPi1Wm/JkuzNjraOLdtKieGksNT/bDyquygVawv1QUzO2HB1hiMKfZGdcSFG5ZL9R0j7bBfRTfXA2gg==";
       };
     };
-    "volar-service-typescript-0.0.29" = {
+    "volar-service-typescript-0.0.34" = {
       name = "volar-service-typescript";
       packageName = "volar-service-typescript";
-      version = "0.0.29";
+      version = "0.0.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.29.tgz";
-        sha512 = "ssBhGT0Wrh670NRTrLoikzoRbszd72jIa02IKbrfI9QIIONvygOmIJ9jSqj4jxHEWz/KSCgCEhCyR7hEH80kGg==";
+        url = "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.34.tgz";
+        sha512 = "NbAry0w8ZXFgGsflvMwmPDCzgJGx3C+eYxFEbldaumkpTAJiywECWiUbPIOfmEHgpOllUKSnhwtLlWFK4YnfQg==";
       };
     };
-    "volar-service-typescript-twoslash-queries-0.0.29" = {
+    "volar-service-typescript-twoslash-queries-0.0.34" = {
       name = "volar-service-typescript-twoslash-queries";
       packageName = "volar-service-typescript-twoslash-queries";
-      version = "0.0.29";
+      version = "0.0.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.29.tgz";
-        sha512 = "hdI8ZO1Wc/I5+iwKKnOfXW7ktpBe0qLoXz5+8viS6aV9gycKSAKAs6sayLTATQZcZ1EAESUqTqGS/vJOUgZOsg==";
+        url = "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.34.tgz";
+        sha512 = "XAY2YtWKUp6ht89gxt3L5Dr46LU45d/VlBkj1KXUwNlinpoWiGN4Nm3B6DRF3VoBThAnQgm4c7WD0S+5yTzh+w==";
       };
     };
     "vscode-css-languageservice-3.0.13" = {
@@ -58663,22 +58474,22 @@ let
         sha512 = "9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==";
       };
     };
-    "watchpack-2.4.0" = {
+    "watchpack-2.4.1" = {
       name = "watchpack";
       packageName = "watchpack";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz";
-        sha512 = "Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==";
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz";
+        sha512 = "8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==";
       };
     };
-    "wavedrom-3.4.0" = {
+    "wavedrom-3.5.0" = {
       name = "wavedrom";
       packageName = "wavedrom";
-      version = "3.4.0";
+      version = "3.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/wavedrom/-/wavedrom-3.4.0.tgz";
-        sha512 = "UJZsl5z0KXrrmsuz++ejKS+yuKMupni4/swLN7hA3LL+kyCE1PuiO1VOTe9I/RMlkbM2XsH3u88itQMYjxHp9w==";
+        url = "https://registry.npmjs.org/wavedrom/-/wavedrom-3.5.0.tgz";
+        sha512 = "UFStUpq8cbyd1KCYd9HnLpCEy1ZQtzDX72GHZTICQVZVL04JSz7+PG1DxcaSxMAEpdmW4gqGnOzs3zPrKFVO8Q==";
       };
     };
     "wbuf-1.7.3" = {
@@ -58879,13 +58690,13 @@ let
         sha512 = "VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==";
       };
     };
-    "webpack-5.90.2" = {
+    "webpack-5.90.3" = {
       name = "webpack";
       packageName = "webpack";
-      version = "5.90.2";
+      version = "5.90.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-5.90.2.tgz";
-        sha512 = "ziXu8ABGr0InCMEYFnHrYweinHK2PWrMqnwdHk2oK3rRhv/1B+2FnfwYv5oD+RrknK/Pp/Hmyvu+eAsaMYhzCw==";
+        url = "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz";
+        sha512 = "h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==";
       };
     };
     "webpack-cli-5.1.4" = {
@@ -59149,13 +58960,13 @@ let
         sha512 = "YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==";
       };
     };
-    "which-collection-1.0.1" = {
+    "which-collection-1.0.2" = {
       name = "which-collection";
       packageName = "which-collection";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz";
-        sha512 = "W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==";
+        url = "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz";
+        sha512 = "K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==";
       };
     };
     "which-module-1.0.0" = {
@@ -59185,13 +58996,13 @@ let
         sha512 = "Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==";
       };
     };
-    "which-typed-array-1.1.14" = {
+    "which-typed-array-1.1.15" = {
       name = "which-typed-array";
       packageName = "which-typed-array";
-      version = "1.1.14";
+      version = "1.1.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz";
-        sha512 = "VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==";
+        url = "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz";
+        sha512 = "oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==";
       };
     };
     "wide-align-1.1.5" = {
@@ -59347,6 +59158,15 @@ let
         sha512 = "L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==";
       };
     };
+    "winston-3.12.0" = {
+      name = "winston";
+      packageName = "winston";
+      version = "3.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston/-/winston-3.12.0.tgz";
+        sha512 = "OwbxKaOlESDi01mC9rkM0dQqQt2I8DAUMRLZ/HpbwvDXm85IryEHgoogy5fziQy38PntgZsLlhAYHz//UPHZ5w==";
+      };
+    };
     "winston-transport-4.7.0" = {
       name = "winston-transport";
       packageName = "winston-transport";
@@ -59446,13 +59266,13 @@ let
         sha512 = "rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==";
       };
     };
-    "workerd-1.20240129.0" = {
+    "workerd-1.20240304.0" = {
       name = "workerd";
       packageName = "workerd";
-      version = "1.20240129.0";
+      version = "1.20240304.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workerd/-/workerd-1.20240129.0.tgz";
-        sha512 = "t4pnsmjjk/u+GdVDgH2M1AFmJaBUABshYK/vT/HNrAXsHSwN6VR8Yqw0JQ845OokO34VLkuUtYQYyxHHKpdtsw==";
+        url = "https://registry.npmjs.org/workerd/-/workerd-1.20240304.0.tgz";
+        sha512 = "/tYxdypPh9NKQje9r7bgBB73vAQfCQZbEPjNlxE/ml7jNKMHnRZv/D+By4xO0IPAifa37D0sJFokvYOahz1Lqw==";
       };
     };
     "workerpool-6.2.1" = {
@@ -60077,13 +59897,13 @@ let
         sha512 = "QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==";
       };
     };
-    "xss-1.0.14" = {
+    "xss-1.0.15" = {
       name = "xss";
       packageName = "xss";
-      version = "1.0.14";
+      version = "1.0.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz";
-        sha512 = "og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==";
+        url = "https://registry.npmjs.org/xss/-/xss-1.0.15.tgz";
+        sha512 = "FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==";
       };
     };
     "xstate-4.38.3" = {
@@ -60194,13 +60014,22 @@ let
         sha512 = "r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==";
       };
     };
-    "yaml-2.3.4" = {
+    "yaml-2.4.0" = {
       name = "yaml";
       packageName = "yaml";
-      version = "2.3.4";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yaml/-/yaml-2.4.0.tgz";
+        sha512 = "j9iR8g+/t0lArF4V6NE/QCfT+CO7iLqrXAHZbJdo+LfjqP1vR8Fg5bSiaq6Q2lOD1AUEVrEVIgABvBFYojJVYQ==";
+      };
+    };
+    "yaml-2.4.1" = {
+      name = "yaml";
+      packageName = "yaml";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz";
-        sha512 = "8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==";
+        url = "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz";
+        sha512 = "pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==";
       };
     };
     "yaml-front-matter-4.1.1" = {
@@ -60266,15 +60095,6 @@ let
         sha512 = "c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==";
       };
     };
-    "yargs-17.6.2" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "17.6.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz";
-        sha512 = "1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==";
-      };
-    };
     "yargs-17.7.2" = {
       name = "yargs";
       packageName = "yargs";
@@ -60428,13 +60248,13 @@ let
         sha512 = "H0p241BXaH0UN9IeH//RT82tl5PfNraVpSpEoW+ET7lmopNC61eZ+A+IDvU8FM6Go5vx162SncDL8J1ZjRBriQ==";
       };
     };
-    "yarn-1.22.21" = {
+    "yarn-1.22.22" = {
       name = "yarn";
       packageName = "yarn";
-      version = "1.22.21";
+      version = "1.22.22";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yarn/-/yarn-1.22.21.tgz";
-        sha512 = "ynXaJsADJ9JiZ84zU25XkPGOvVMmZ5b7tmTSpKURYwgELdjucAOydqIOrOfTxVYcNXe91xvLZwcRh68SR3liCg==";
+        url = "https://registry.npmjs.org/yarn/-/yarn-1.22.22.tgz";
+        sha512 = "prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg==";
       };
     };
     "yarn-1.22.4" = {
@@ -60677,15 +60497,15 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "17.2.0";
+    version = "17.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-17.2.0.tgz";
-      sha512 = "JSfNQB76qrc8QNPLUvvqR10T4+WUrfz+ogmOliO+jAdhbpfZQ4tIt0WwUYvo+0foM8x7hTe3Wdhg8zWwteBnuw==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-17.3.0.tgz";
+      sha512 = "xwxlimNP4MECkdzjc0+m7lGxighcH0ncAfEo9yUo+r+4EFalB/Q7DAQPIU1xkbBk8iJwcFhGFAnS1IeLur15kQ==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.1702.0"
-      sources."@angular-devkit/core-17.2.0"
-      sources."@angular-devkit/schematics-17.2.0"
+      sources."@angular-devkit/architect-0.1703.0"
+      sources."@angular-devkit/core-17.3.0"
+      sources."@angular-devkit/schematics-17.3.0"
       (sources."@isaacs/cliui-8.0.2" // {
         dependencies = [
           sources."ansi-regex-6.0.1"
@@ -60697,7 +60517,7 @@ in
         ];
       })
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@ljharb/through-2.3.12"
+      sources."@ljharb/through-2.3.13"
       sources."@npmcli/agent-2.2.1"
       sources."@npmcli/fs-3.1.0"
       sources."@npmcli/git-5.0.4"
@@ -60706,7 +60526,7 @@ in
       sources."@npmcli/package-json-5.0.0"
       sources."@npmcli/promise-spawn-7.0.1"
       sources."@npmcli/run-script-7.0.4"
-      sources."@schematics/angular-17.2.0"
+      sources."@schematics/angular-17.3.0"
       sources."@sigstore/bundle-2.2.0"
       sources."@sigstore/core-1.0.0"
       sources."@sigstore/protobuf-specs-0.3.0"
@@ -60732,7 +60552,7 @@ in
       })
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."bl-4.1.0"
       sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
@@ -60794,9 +60614,9 @@ in
       sources."graceful-fs-4.2.11"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hosted-git-info-7.0.1"
       sources."http-cache-semantics-4.1.1"
       sources."http-proxy-agent-7.0.2"
@@ -60807,8 +60627,8 @@ in
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
       sources."inherits-2.0.4"
-      sources."ini-4.1.1"
-      sources."inquirer-9.2.14"
+      sources."ini-4.1.2"
+      sources."inquirer-9.2.15"
       sources."ip-address-9.0.5"
       sources."is-binary-path-2.1.0"
       sources."is-core-module-2.13.1"
@@ -60835,7 +60655,7 @@ in
         ];
       })
       sources."lru-cache-10.2.0"
-      sources."magic-string-0.30.7"
+      sources."magic-string-0.30.8"
       sources."make-fetch-happen-13.0.0"
       sources."mimic-fn-2.1.0"
       sources."minimatch-9.0.3"
@@ -60922,13 +60742,13 @@ in
           sources."lru-cache-6.0.0"
         ];
       })
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.7"
       sources."sigstore-2.2.2"
       sources."smart-buffer-4.2.0"
-      sources."socks-2.8.0"
+      sources."socks-2.8.1"
       sources."socks-proxy-agent-8.0.2"
       sources."source-map-0.7.4"
       sources."spdx-correct-3.2.0"
@@ -61006,13 +60826,13 @@ in
   "@astrojs/language-server" = nodeEnv.buildNodePackage {
     name = "_at_astrojs_slash_language-server";
     packageName = "@astrojs/language-server";
-    version = "2.7.4";
+    version = "2.8.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.7.4.tgz";
-      sha512 = "U317ZKx5VXg2Sy6iPgYOliOZ10Ji/eo8MGFCry2/yT+rYTfb81HbrSWUu9nsZzpFK66So5aprQutRWWM/m7mPQ==";
+      url = "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.8.3.tgz";
+      sha512 = "tO47Lcue7OPXfIDbKVDcshwpC13yaWaTVLyiSOnQ2Yng2Z2SgcJf06Cj4xMpJqGp6s7/o/gcQWYUTl2bpkWKig==";
     };
     dependencies = [
-      sources."@astrojs/compiler-2.5.3"
+      sources."@astrojs/compiler-2.7.0"
       sources."@emmetio/abbreviation-2.3.3"
       sources."@emmetio/css-abbreviation-2.1.8"
       sources."@emmetio/scanner-1.0.4"
@@ -61020,13 +60840,13 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@volar/kit-2.0.4"
-      sources."@volar/language-core-2.0.4"
-      sources."@volar/language-server-2.0.4"
-      sources."@volar/language-service-2.0.4"
-      sources."@volar/snapshot-document-2.0.4"
-      sources."@volar/source-map-2.0.4"
-      sources."@volar/typescript-2.0.4"
+      sources."@volar/kit-2.1.2"
+      sources."@volar/language-core-2.1.2"
+      sources."@volar/language-server-2.1.2"
+      sources."@volar/language-service-2.1.2"
+      sources."@volar/snapshot-document-2.1.2"
+      sources."@volar/source-map-2.1.2"
+      sources."@volar/typescript-2.1.2"
       (sources."@vscode/emmet-helper-2.9.2" // {
         dependencies = [
           sources."vscode-uri-2.1.2"
@@ -61034,7 +60854,7 @@ in
       })
       sources."@vscode/l10n-0.0.16"
       sources."braces-3.0.2"
-      sources."emmet-2.4.6"
+      sources."emmet-2.4.7"
       sources."fast-glob-3.3.2"
       sources."fastq-1.17.1"
       sources."fill-range-7.0.1"
@@ -61065,14 +60885,14 @@ in
       sources."suf-log-2.5.3"
       sources."to-regex-range-5.0.1"
       sources."typesafe-path-0.2.2"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."typescript-auto-import-cache-0.3.2"
-      sources."volar-service-css-0.0.29"
-      sources."volar-service-emmet-0.0.29"
-      sources."volar-service-html-0.0.29"
-      sources."volar-service-prettier-0.0.29"
-      sources."volar-service-typescript-0.0.29"
-      sources."volar-service-typescript-twoslash-queries-0.0.29"
+      sources."volar-service-css-0.0.34"
+      sources."volar-service-emmet-0.0.34"
+      sources."volar-service-html-0.0.34"
+      sources."volar-service-prettier-0.0.34"
+      sources."volar-service-typescript-0.0.34"
+      sources."volar-service-typescript-twoslash-queries-0.0.34"
       (sources."vscode-css-languageservice-6.2.12" // {
         dependencies = [
           sources."@vscode/l10n-0.0.18"
@@ -61111,10 +60931,10 @@ in
       sha512 = "vB1UXmGDNEhcf1jNAHKT9IlYk1R+hehVTLFlCLHBi8gfuHQGP6uRjgXVYU0EVlI/qwAWpstqkBdf2aez3/z/5Q==";
     };
     dependencies = [
-      sources."@ampproject/remapping-2.2.1"
+      sources."@ampproject/remapping-2.3.0"
       sources."@babel/code-frame-7.23.5"
       sources."@babel/compat-data-7.23.5"
-      (sources."@babel/core-7.23.9" // {
+      (sources."@babel/core-7.24.0" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -61135,22 +60955,22 @@ in
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.23.9"
+      sources."@babel/helpers-7.24.0"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.9"
-      sources."@babel/template-7.23.9"
-      sources."@babel/traverse-7.23.9"
-      sources."@babel/types-7.23.9"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@babel/parser-7.24.0"
+      sources."@babel/template-7.24.0"
+      sources."@babel/traverse-7.24.0"
+      sources."@babel/types-7.24.0"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."ansi-styles-3.2.1"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."browserslist-4.23.0"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -61158,7 +60978,7 @@ in
       sources."concat-map-0.0.1"
       sources."convert-source-map-2.0.0"
       sources."debug-4.3.4"
-      sources."electron-to-chromium-1.4.673"
+      sources."electron-to-chromium-1.4.710"
       sources."escalade-3.1.2"
       sources."escape-string-regexp-1.0.5"
       sources."fs-readdir-recursive-1.1.0"
@@ -61202,115 +61022,84 @@ in
   "@commitlint/cli" = nodeEnv.buildNodePackage {
     name = "_at_commitlint_slash_cli";
     packageName = "@commitlint/cli";
-    version = "18.6.1";
+    version = "19.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@commitlint/cli/-/cli-18.6.1.tgz";
-      sha512 = "5IDE0a+lWGdkOvKH892HHAZgbAjcj1mT5QrfA/SVbLJV/BbBMGyKN0W5mhgjekPJJwEQdVNvhl9PwUacY58Usw==";
+      url = "https://registry.npmjs.org/@commitlint/cli/-/cli-19.2.0.tgz";
+      sha512 = "8XnQDMyQR+1/ldbmIyhonvnDS2enEw48Wompo/967fsEvy9Vj5/JbDutzmSBKxANWDVeEbR9QQm0yHpw6ArrFw==";
     };
     dependencies = [
       (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
-          sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
         ];
       })
       sources."@babel/helper-validator-identifier-7.22.20"
       (sources."@babel/highlight-7.23.4" // {
         dependencies = [
-          sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
         ];
       })
-      sources."@commitlint/config-validator-18.6.1"
-      sources."@commitlint/ensure-18.6.1"
-      sources."@commitlint/execute-rule-18.6.1"
-      sources."@commitlint/format-18.6.1"
-      sources."@commitlint/is-ignored-18.6.1"
-      sources."@commitlint/lint-18.6.1"
-      sources."@commitlint/load-18.6.1"
-      sources."@commitlint/message-18.6.1"
-      sources."@commitlint/parse-18.6.1"
-      sources."@commitlint/read-18.6.1"
-      sources."@commitlint/resolve-extends-18.6.1"
-      sources."@commitlint/rules-18.6.1"
-      sources."@commitlint/to-lines-18.6.1"
-      sources."@commitlint/top-level-18.6.1"
-      sources."@commitlint/types-18.6.1"
-      sources."@types/minimist-1.2.5"
-      sources."@types/node-20.11.19"
-      sources."@types/normalize-package-data-2.4.4"
+      sources."@commitlint/config-validator-19.0.3"
+      sources."@commitlint/ensure-19.0.3"
+      sources."@commitlint/execute-rule-19.0.0"
+      sources."@commitlint/format-19.0.3"
+      sources."@commitlint/is-ignored-19.0.3"
+      sources."@commitlint/lint-19.1.0"
+      sources."@commitlint/load-19.2.0"
+      sources."@commitlint/message-19.0.0"
+      sources."@commitlint/parse-19.0.3"
+      sources."@commitlint/read-19.2.0"
+      sources."@commitlint/resolve-extends-19.1.0"
+      sources."@commitlint/rules-19.0.3"
+      sources."@commitlint/to-lines-19.0.0"
+      sources."@commitlint/top-level-19.0.0"
+      sources."@commitlint/types-19.0.3"
+      sources."@types/conventional-commits-parser-5.0.0"
+      sources."@types/node-20.11.29"
       sources."JSONStream-1.3.5"
       sources."ajv-8.12.0"
       sources."ansi-regex-5.0.1"
-      sources."ansi-styles-4.3.0"
+      sources."ansi-styles-3.2.1"
       sources."argparse-2.0.1"
       sources."array-ify-1.0.0"
-      sources."arrify-1.0.1"
       sources."callsites-3.1.0"
-      sources."camelcase-5.3.1"
-      sources."camelcase-keys-6.2.2"
-      sources."chalk-4.1.2"
+      sources."chalk-5.3.0"
       sources."cliui-8.0.1"
-      sources."color-convert-2.0.1"
-      sources."color-name-1.1.4"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
       sources."compare-func-2.0.0"
       sources."conventional-changelog-angular-7.0.0"
       sources."conventional-commits-parser-5.0.0"
-      sources."cosmiconfig-8.3.6"
+      sources."cosmiconfig-9.0.0"
       sources."cosmiconfig-typescript-loader-5.0.0"
       sources."cross-spawn-7.0.3"
-      sources."dargs-7.0.0"
-      sources."decamelize-1.2.0"
-      (sources."decamelize-keys-1.1.1" // {
-        dependencies = [
-          sources."map-obj-1.0.1"
-        ];
-      })
+      sources."dargs-8.1.0"
       sources."dot-prop-5.3.0"
       sources."emoji-regex-8.0.0"
+      sources."env-paths-2.2.1"
       sources."error-ex-1.3.2"
       sources."escalade-3.1.2"
       sources."escape-string-regexp-1.0.5"
-      sources."execa-5.1.1"
+      sources."execa-8.0.1"
       sources."fast-deep-equal-3.1.3"
-      sources."find-up-5.0.0"
-      sources."function-bind-1.1.2"
+      sources."find-up-7.0.0"
       sources."get-caller-file-2.0.5"
-      sources."get-stream-6.0.1"
-      (sources."git-raw-commits-2.0.11" // {
-        dependencies = [
-          sources."meow-8.1.2"
-          sources."split2-3.2.2"
-        ];
-      })
-      sources."global-dirs-0.1.1"
-      sources."hard-rejection-2.1.0"
-      sources."has-flag-4.0.0"
-      sources."hasown-2.0.1"
-      sources."hosted-git-info-4.1.0"
-      sources."human-signals-2.1.0"
+      sources."get-stream-8.0.1"
+      sources."git-raw-commits-4.0.0"
+      sources."global-directory-4.0.1"
+      sources."has-flag-3.0.0"
+      sources."human-signals-5.0.0"
       (sources."import-fresh-3.3.0" // {
         dependencies = [
           sources."resolve-from-4.0.0"
         ];
       })
-      sources."indent-string-4.0.0"
-      sources."inherits-2.0.4"
-      sources."ini-1.3.8"
+      sources."import-meta-resolve-4.0.0"
+      sources."ini-4.1.1"
       sources."is-arrayish-0.2.1"
-      sources."is-core-module-2.13.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-obj-2.0.0"
-      sources."is-plain-obj-1.1.0"
-      sources."is-stream-2.0.1"
+      sources."is-stream-3.0.0"
       sources."is-text-path-2.0.0"
       sources."isexe-2.0.0"
       sources."jiti-1.21.0"
@@ -61319,12 +61108,9 @@ in
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-traverse-1.0.0"
       sources."jsonparse-1.3.1"
-      sources."kind-of-6.0.3"
       sources."lines-and-columns-1.2.4"
-      sources."locate-path-6.0.0"
-      sources."lodash-4.17.21"
+      sources."locate-path-7.2.0"
       sources."lodash.camelcase-4.3.0"
-      sources."lodash.isfunction-3.0.9"
       sources."lodash.isplainobject-4.0.6"
       sources."lodash.kebabcase-4.1.1"
       sources."lodash.merge-4.6.2"
@@ -61334,89 +61120,54 @@ in
       sources."lodash.uniq-4.5.0"
       sources."lodash.upperfirst-4.3.1"
       sources."lru-cache-6.0.0"
-      sources."map-obj-4.3.0"
       sources."meow-12.1.1"
       sources."merge-stream-2.0.0"
-      sources."mimic-fn-2.1.0"
-      sources."min-indent-1.0.1"
+      sources."mimic-fn-4.0.0"
       sources."minimist-1.2.8"
-      sources."minimist-options-4.1.0"
-      sources."normalize-package-data-3.0.3"
-      sources."npm-run-path-4.0.1"
-      sources."onetime-5.1.2"
-      sources."p-limit-3.1.0"
-      sources."p-locate-5.0.0"
-      sources."p-try-2.2.0"
+      (sources."npm-run-path-5.3.0" // {
+        dependencies = [
+          sources."path-key-4.0.0"
+        ];
+      })
+      sources."onetime-6.0.0"
+      sources."p-limit-4.0.0"
+      sources."p-locate-6.0.0"
       sources."parent-module-1.0.1"
       sources."parse-json-5.2.0"
-      sources."path-exists-4.0.0"
+      sources."path-exists-5.0.0"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.7"
-      sources."path-type-4.0.0"
       sources."punycode-2.3.1"
-      sources."quick-lru-4.0.1"
-      (sources."read-pkg-5.2.0" // {
-        dependencies = [
-          sources."hosted-git-info-2.8.9"
-          sources."normalize-package-data-2.5.0"
-          sources."semver-5.7.2"
-          sources."type-fest-0.6.0"
-        ];
-      })
-      (sources."read-pkg-up-7.0.1" // {
-        dependencies = [
-          sources."find-up-4.1.0"
-          sources."locate-path-5.0.0"
-          sources."p-limit-2.3.0"
-          sources."p-locate-4.1.0"
-          sources."type-fest-0.8.1"
-        ];
-      })
-      sources."readable-stream-3.6.2"
-      sources."redent-3.0.0"
       sources."require-directory-2.1.1"
       sources."require-from-string-2.0.2"
-      sources."resolve-1.22.8"
       sources."resolve-from-5.0.0"
-      sources."resolve-global-1.0.0"
-      sources."safe-buffer-5.2.1"
       sources."semver-7.6.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.7"
-      sources."spdx-correct-3.2.0"
-      sources."spdx-exceptions-2.5.0"
-      sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.17"
+      sources."signal-exit-4.1.0"
       sources."split2-4.2.0"
       sources."string-width-4.2.3"
-      sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
-      sources."strip-final-newline-2.0.0"
-      sources."strip-indent-3.0.0"
-      sources."supports-color-7.2.0"
-      sources."supports-preserve-symlinks-flag-1.0.0"
+      sources."strip-final-newline-3.0.0"
+      sources."supports-color-5.5.0"
       sources."text-extensions-2.4.0"
       sources."through-2.3.8"
-      sources."through2-4.0.2"
-      sources."trim-newlines-3.0.1"
-      sources."type-fest-0.18.1"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."undici-types-5.26.5"
+      sources."unicorn-magic-0.1.0"
       sources."uri-js-4.4.1"
-      sources."util-deprecate-1.0.2"
-      sources."validate-npm-package-license-3.0.4"
       sources."which-2.0.2"
-      sources."wrap-ansi-7.0.0"
-      sources."y18n-5.0.8"
-      sources."yallist-4.0.0"
-      (sources."yargs-17.7.2" // {
+      (sources."wrap-ansi-7.0.0" // {
         dependencies = [
-          sources."yargs-parser-21.1.1"
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
         ];
       })
-      sources."yargs-parser-20.2.9"
-      sources."yocto-queue-0.1.0"
+      sources."y18n-5.0.8"
+      sources."yallist-4.0.0"
+      sources."yargs-17.7.2"
+      sources."yargs-parser-21.1.1"
+      sources."yocto-queue-1.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -61431,24 +61182,22 @@ in
   "@commitlint/config-conventional" = nodeEnv.buildNodePackage {
     name = "_at_commitlint_slash_config-conventional";
     packageName = "@commitlint/config-conventional";
-    version = "18.6.2";
+    version = "19.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-18.6.2.tgz";
-      sha512 = "PcgSYg1AKGQIwDQKbaHtJsfqYy4uJTC7crLVZ83lfjcPaec4Pry2vLeaWej7ao2KsT20l9dWoMPpEGg8LWdUuA==";
+      url = "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.1.0.tgz";
+      sha512 = "KIKD2xrp6Uuk+dcZVj3++MlzIr/Su6zLE8crEDQCZNvWHNQSeeGbzOlNtsR32TUy6H3JbP7nWgduAHCaiGQ6EA==";
     };
     dependencies = [
-      sources."@commitlint/types-18.6.1"
-      sources."ansi-styles-4.3.0"
+      sources."@commitlint/types-19.0.3"
+      sources."@types/conventional-commits-parser-5.0.0"
+      sources."@types/node-20.11.29"
       sources."array-ify-1.0.0"
-      sources."chalk-4.1.2"
-      sources."color-convert-2.0.1"
-      sources."color-name-1.1.4"
+      sources."chalk-5.3.0"
       sources."compare-func-2.0.0"
       sources."conventional-changelog-conventionalcommits-7.0.2"
       sources."dot-prop-5.3.0"
-      sources."has-flag-4.0.0"
       sources."is-obj-2.0.0"
-      sources."supports-color-7.2.0"
+      sources."undici-types-5.26.5"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -61463,10 +61212,10 @@ in
   "@microsoft/rush" = nodeEnv.buildNodePackage {
     name = "_at_microsoft_slash_rush";
     packageName = "@microsoft/rush";
-    version = "5.113.4";
+    version = "5.117.9";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@microsoft/rush/-/rush-5.113.4.tgz";
-      sha512 = "V4Ik+DImLpyjxJuaPGCj+uzIt6Aw8JKgFyqCIHWeX3Qc3ytBPkMZ8fDf6fSCr2BapUF/teRdrnESxhFRHmG0Ug==";
+      url = "https://registry.npmjs.org/@microsoft/rush/-/rush-5.117.9.tgz";
+      sha512 = "WIeTt5LDfeq6W4ai9Ax/hqsmMZn3rayKpZvpmkUJEdaGRNKPpzSpZyaww9bSgdopPOoacMKaNQIFR4ETIJVxJw==";
     };
     dependencies = [
       (sources."@azure/abort-controller-1.1.0" // {
@@ -61474,15 +61223,15 @@ in
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-auth-1.6.0" // {
+      (sources."@azure/core-auth-1.7.0" // {
         dependencies = [
-          sources."@azure/abort-controller-2.0.0"
+          sources."@azure/abort-controller-2.1.0"
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-client-1.8.0" // {
+      (sources."@azure/core-client-1.9.0" // {
         dependencies = [
-          sources."@azure/abort-controller-2.0.0"
+          sources."@azure/abort-controller-2.1.0"
           sources."tslib-2.6.2"
         ];
       })
@@ -61493,31 +61242,33 @@ in
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-lro-2.6.0" // {
+      (sources."@azure/core-lro-2.7.0" // {
         dependencies = [
-          sources."@azure/abort-controller-2.0.0"
+          sources."@azure/abort-controller-2.1.0"
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-paging-1.5.0" // {
+      (sources."@azure/core-paging-1.6.0" // {
         dependencies = [
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-rest-pipeline-1.14.0" // {
+      (sources."@azure/core-rest-pipeline-1.15.0" // {
         dependencies = [
-          sources."@azure/abort-controller-2.0.0"
+          sources."@azure/abort-controller-2.1.0"
+          sources."agent-base-7.1.0"
+          sources."https-proxy-agent-7.0.4"
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-tracing-1.0.1" // {
+      (sources."@azure/core-tracing-1.1.0" // {
         dependencies = [
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/core-util-1.7.0" // {
+      (sources."@azure/core-util-1.8.0" // {
         dependencies = [
-          sources."@azure/abort-controller-2.0.0"
+          sources."@azure/abort-controller-2.1.0"
           sources."tslib-2.6.2"
         ];
       })
@@ -61526,7 +61277,7 @@ in
           sources."tslib-2.6.2"
         ];
       })
-      (sources."@azure/logger-1.0.4" // {
+      (sources."@azure/logger-1.1.0" // {
         dependencies = [
           sources."tslib-2.6.2"
         ];
@@ -61549,21 +61300,21 @@ in
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.9"
-      sources."@babel/template-7.23.9"
-      sources."@babel/traverse-7.23.9"
-      sources."@babel/types-7.23.9"
+      sources."@babel/parser-7.24.0"
+      sources."@babel/template-7.24.0"
+      sources."@babel/traverse-7.24.0"
+      sources."@babel/types-7.24.0"
       sources."@devexpress/error-stack-parser-2.0.6"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
-      sources."@microsoft/rush-lib-5.113.4"
+      sources."@jridgewell/trace-mapping-0.3.25"
+      sources."@microsoft/rush-lib-5.117.9"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@opentelemetry/api-1.7.0"
+      sources."@opentelemetry/api-1.8.0"
       sources."@pnpm/crypto.base32-hash-2.0.0"
       sources."@pnpm/dependency-path-2.1.8"
       sources."@pnpm/error-1.4.0"
@@ -61595,52 +61346,56 @@ in
           sources."@pnpm/types-6.4.0"
         ];
       })
-      sources."@rushstack/heft-config-file-0.14.7"
-      (sources."@rushstack/node-core-library-3.64.2" // {
+      sources."@rushstack/heft-config-file-0.14.14"
+      (sources."@rushstack/node-core-library-4.0.2" // {
         dependencies = [
           sources."import-lazy-4.0.0"
         ];
       })
-      sources."@rushstack/package-deps-hash-4.1.21"
-      (sources."@rushstack/package-extractor-0.6.23" // {
+      sources."@rushstack/package-deps-hash-4.1.38"
+      (sources."@rushstack/package-extractor-0.6.40" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
           sources."minimatch-3.0.8"
         ];
       })
-      (sources."@rushstack/rig-package-0.5.1" // {
+      (sources."@rushstack/rig-package-0.5.2" // {
         dependencies = [
           sources."strip-json-comments-3.1.1"
         ];
       })
-      sources."@rushstack/rush-amazon-s3-build-cache-plugin-5.113.4"
-      sources."@rushstack/rush-azure-storage-build-cache-plugin-5.113.4"
-      sources."@rushstack/rush-http-build-cache-plugin-5.113.4"
-      sources."@rushstack/rush-sdk-5.113.4"
-      sources."@rushstack/stream-collator-4.1.21"
-      sources."@rushstack/terminal-0.7.20"
-      (sources."@rushstack/ts-command-line-4.17.1" // {
+      sources."@rushstack/rush-amazon-s3-build-cache-plugin-5.117.9"
+      sources."@rushstack/rush-azure-storage-build-cache-plugin-5.117.9"
+      sources."@rushstack/rush-http-build-cache-plugin-5.117.9"
+      sources."@rushstack/rush-sdk-5.117.9"
+      sources."@rushstack/stream-collator-4.1.38"
+      (sources."@rushstack/terminal-0.10.0" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."supports-color-8.1.1"
+        ];
+      })
+      (sources."@rushstack/ts-command-line-4.19.1" // {
         dependencies = [
           sources."argparse-1.0.10"
         ];
       })
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@tootallnate/once-2.0.0"
       sources."@types/argparse-1.0.38"
-      sources."@types/lodash-4.14.202"
+      sources."@types/lodash-4.17.0"
       sources."@types/minimatch-3.0.5"
       sources."@types/minimist-1.2.5"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/node-fetch-2.6.2"
       sources."@types/normalize-package-data-2.4.4"
       sources."@types/parse-json-4.0.2"
       sources."@types/tunnel-0.0.3"
-      sources."@vue/compiler-core-3.4.19"
-      sources."@vue/compiler-dom-3.4.19"
-      sources."@vue/compiler-sfc-3.4.19"
-      sources."@vue/compiler-ssr-3.4.19"
-      sources."@vue/shared-3.4.19"
+      sources."@vue/compiler-core-3.4.21"
+      sources."@vue/compiler-dom-3.4.21"
+      sources."@vue/compiler-sfc-3.4.21"
+      sources."@vue/compiler-ssr-3.4.21"
+      sources."@vue/shared-3.4.21"
       sources."@yarnpkg/lockfile-1.0.2"
       sources."@zkochan/cmd-shim-5.4.1"
       sources."agent-base-6.0.2"
@@ -61702,11 +61457,7 @@ in
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
       sources."cli-spinners-2.9.2"
-      (sources."cli-table-0.3.11" // {
-        dependencies = [
-          sources."colors-1.0.3"
-        ];
-      })
+      sources."cli-table-0.3.11"
       sources."cli-width-3.0.0"
       sources."cliui-7.0.4"
       sources."clone-1.0.4"
@@ -61715,7 +61466,7 @@ in
       sources."co-4.6.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."colors-1.2.5"
+      sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
       sources."commander-10.0.1"
       sources."concat-map-0.0.1"
@@ -61833,7 +61584,7 @@ in
       sources."hard-rejection-2.1.0"
       sources."has-flag-3.0.0"
       sources."has-yarn-2.1.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       (sources."highlight-es-1.0.3" // {
         dependencies = [
           sources."js-tokens-3.0.2"
@@ -61842,7 +61593,11 @@ in
       sources."homedir-polyfill-1.0.3"
       sources."hosted-git-info-4.1.0"
       sources."http-cache-semantics-4.1.1"
-      sources."http-proxy-agent-5.0.0"
+      (sources."http-proxy-agent-7.0.2" // {
+        dependencies = [
+          sources."agent-base-7.1.0"
+        ];
+      })
       sources."https-proxy-agent-5.0.1"
       sources."human-signals-2.1.0"
       sources."iconv-lite-0.4.24"
@@ -61960,7 +61715,7 @@ in
       })
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-6.0.0"
-      sources."magic-string-0.30.7"
+      sources."magic-string-0.30.8"
       (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.1"
@@ -62083,8 +61838,9 @@ in
         ];
       })
       sources."please-upgrade-node-3.2.0"
-      sources."postcss-8.4.35"
-      (sources."preferred-pm-3.1.2" // {
+      sources."pnpm-sync-lib-0.1.4"
+      sources."postcss-8.4.36"
+      (sources."preferred-pm-3.1.3" // {
         dependencies = [
           sources."find-up-5.0.0"
           sources."locate-path-6.0.0"
@@ -62170,7 +61926,7 @@ in
       sources."signal-exit-3.0.7"
       sources."slash-3.0.0"
       sources."sort-keys-4.2.0"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       sources."spdx-correct-3.2.0"
       sources."spdx-exceptions-2.5.0"
       sources."spdx-expression-parse-3.0.1"
@@ -62276,10 +62032,10 @@ in
   "@shopify/cli" = nodeEnv.buildNodePackage {
     name = "_at_shopify_slash_cli";
     packageName = "@shopify/cli";
-    version = "3.56.1";
+    version = "3.57.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@shopify/cli/-/cli-3.56.1.tgz";
-      sha512 = "sS9BmvCcF+3XmGwwaNfXqZ9ymJLaJ3eabA+CK5YIIKMIsQYtsG3BJJK0KNJbHkBJnT0fpkAX8moI4i7Zdw6/Gg==";
+      url = "https://registry.npmjs.org/@shopify/cli/-/cli-3.57.1.tgz";
+      sha512 = "bqFvUipcGWEvaOQBL1FiKb2IV86S5EcIWV8o0hEL9n05NE/XzbVnlRW7pNYY64WHVgT5dM7mFsX9/0boaJPASQ==";
     };
     dependencies = [
       (sources."@alcalzone/ansi-tokenize-0.1.3" // {
@@ -62305,19 +62061,18 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@oclif/color-1.0.13"
-      sources."@oclif/core-3.15.1"
-      (sources."@oclif/plugin-commands-2.2.24" // {
+      sources."@oclif/core-3.19.6"
+      (sources."@oclif/plugin-commands-2.2.28" // {
         dependencies = [
           sources."@oclif/core-2.15.0"
         ];
       })
-      (sources."@oclif/plugin-help-5.2.18" // {
+      (sources."@oclif/plugin-help-5.2.20" // {
         dependencies = [
           sources."@oclif/core-2.15.0"
         ];
       })
-      (sources."@oclif/plugin-plugins-3.1.8" // {
+      (sources."@oclif/plugin-plugins-3.9.4" // {
         dependencies = [
           sources."@oclif/core-2.15.0"
         ];
@@ -62371,14 +62126,13 @@ in
         ];
       })
       sources."@pnpm/npm-conf-2.2.2"
-      (sources."@shopify/cli-kit-3.56.1" // {
+      (sources."@shopify/cli-kit-3.57.1" // {
         dependencies = [
           sources."ansi-escapes-6.2.0"
           sources."ansi-regex-6.0.1"
           sources."argparse-2.0.1"
           sources."chalk-5.3.0"
           sources."fast-glob-3.3.1"
-          sources."fs-extra-11.1.0"
           sources."js-yaml-4.1.0"
           sources."semver-7.5.4"
           sources."strip-ansi-7.1.0"
@@ -62387,13 +62141,13 @@ in
           sources."type-fest-3.13.1"
         ];
       })
-      sources."@shopify/plugin-did-you-mean-3.56.1"
+      sources."@shopify/plugin-did-you-mean-3.57.1"
       sources."@sindresorhus/is-5.6.0"
-      sources."@swc/core-1.4.1"
+      sources."@swc/core-1.4.8"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.6"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.4.1"
+      sources."@swc/helpers-0.5.7"
+      sources."@swc/types-0.1.6"
+      sources."@swc/wasm-1.4.8"
       sources."@szmarczak/http-timer-5.0.1"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
@@ -62402,9 +62156,9 @@ in
       sources."@types/archiver-5.3.2"
       sources."@types/cli-progress-3.11.5"
       sources."@types/http-cache-semantics-4.0.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.56"
+      sources."@types/react-18.2.67"
       sources."@types/readdir-glob-1.1.5"
       sources."@types/scheduler-0.16.8"
       sources."@types/tinycolor2-1.4.6"
@@ -62436,7 +62190,6 @@ in
       sources."astral-regex-2.0.0"
       sources."async-3.2.5"
       sources."asynckit-0.4.0"
-      sources."at-least-node-1.0.0"
       sources."atomically-2.0.2"
       sources."auto-bind-5.0.1"
       sources."balanced-match-1.0.2"
@@ -62552,7 +62305,7 @@ in
       (sources."execa-7.2.0" // {
         dependencies = [
           sources."is-stream-3.0.0"
-          sources."npm-run-path-5.2.0"
+          sources."npm-run-path-5.3.0"
           sources."path-key-4.0.0"
         ];
       })
@@ -62579,7 +62332,7 @@ in
       sources."form-data-encoder-2.1.4"
       sources."formdata-polyfill-4.0.10"
       sources."fs-constants-1.0.0"
-      sources."fs-extra-9.1.0"
+      sources."fs-extra-11.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
       sources."fuzzy-0.1.3"
@@ -62592,18 +62345,6 @@ in
       })
       sources."get-stream-6.0.1"
       sources."get-them-args-1.3.2"
-      (sources."git-diff-2.0.6" // {
-        dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."diff-3.5.0"
-          sources."escape-string-regexp-1.0.5"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
-        ];
-      })
       sources."glob-7.2.3"
       sources."glob-parent-5.1.2"
       sources."globby-11.1.0"
@@ -62617,7 +62358,7 @@ in
         ];
       })
       sources."has-flag-4.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."header-case-2.0.4"
       sources."http-cache-semantics-4.1.1"
       sources."http-call-5.3.0"
@@ -62708,7 +62449,6 @@ in
       sources."lodash.isplainobject-4.0.6"
       sources."lodash.merge-4.6.2"
       sources."lodash.union-4.6.0"
-      sources."loglevel-1.9.1"
       sources."loose-envify-1.4.0"
       sources."lower-case-2.0.2"
       sources."lowercase-keys-3.0.0"
@@ -62738,8 +62478,8 @@ in
       sources."node-fetch-3.3.2"
       sources."node-gyp-build-4.8.0"
       sources."normalize-path-3.0.0"
-      sources."normalize-url-8.0.0"
-      sources."npm-9.9.2"
+      sources."normalize-url-8.0.1"
+      sources."npm-9.8.1"
       sources."npm-run-path-4.0.1"
       sources."object-treeify-1.1.33"
       sources."once-1.4.0"
@@ -62830,7 +62570,6 @@ in
       sources."shebang-regex-3.0.0"
       sources."shell-quote-1.8.1"
       sources."shelljs-0.8.5"
-      sources."shelljs.exec-1.1.8"
       sources."signal-exit-3.0.7"
       sources."simple-git-3.19.1"
       sources."simple-swizzle-0.2.2"
@@ -62888,11 +62627,10 @@ in
       sources."tr46-0.0.3"
       sources."ts-error-1.0.6"
       sources."ts-node-10.9.2"
-      sources."tsconfck-3.0.2"
       sources."tslib-2.6.2"
       sources."tunnel-agent-0.6.0"
       sources."type-fest-0.21.3"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."undici-types-5.26.5"
       sources."unique-string-3.0.0"
       sources."universalify-2.0.1"
@@ -62914,7 +62652,7 @@ in
       sources."wrappy-1.0.2"
       sources."ws-8.16.0"
       sources."yallist-4.0.0"
-      sources."yarn-1.22.21"
+      sources."yarn-1.22.22"
       sources."yn-3.1.1"
       sources."yocto-queue-1.0.0"
       sources."yoga-wasm-web-0.3.3"
@@ -62948,24 +62686,28 @@ in
       sources."@alloc/quick-lru-5.2.0"
       sources."@cspotcode/source-map-support-0.8.1"
       sources."@isaacs/cliui-8.0.2"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      (sources."@jridgewell/gen-mapping-0.3.5" // {
+        dependencies = [
+          sources."@jridgewell/trace-mapping-0.3.25"
+        ];
+      })
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.9"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.4.1"
+      sources."@swc/core-1.4.8"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.6"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.4.1"
+      sources."@swc/helpers-0.5.7"
+      sources."@swc/types-0.1.6"
+      sources."@swc/wasm-1.4.8"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."ansi-regex-5.0.1"
@@ -62974,7 +62716,7 @@ in
       sources."anymatch-3.1.3"
       sources."arg-5.0.2"
       sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."camelcase-css-2.0.1"
@@ -63005,7 +62747,7 @@ in
       sources."function-bind-1.1.2"
       sources."glob-10.3.10"
       sources."glob-parent-6.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."is-binary-path-2.1.0"
       sources."is-core-module-2.13.1"
       sources."is-extglob-2.1.1"
@@ -63035,16 +62777,16 @@ in
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.35"
+      sources."postcss-8.4.36"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
         dependencies = [
-          sources."lilconfig-3.1.0"
+          sources."lilconfig-3.1.1"
         ];
       })
       sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.15"
+      sources."postcss-selector-parser-6.0.16"
       sources."postcss-value-parser-4.2.0"
       sources."queue-microtask-1.2.3"
       sources."read-cache-1.0.0"
@@ -63055,7 +62797,7 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       sources."string-width-5.1.2"
       (sources."string-width-cjs-4.2.3" // {
         dependencies = [
@@ -63082,7 +62824,7 @@ in
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
@@ -63096,7 +62838,7 @@ in
           sources."strip-ansi-6.0.1"
         ];
       })
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
       sources."yn-3.1.1"
     ];
     buildInputs = globalBuildInputs;
@@ -63121,24 +62863,28 @@ in
       sources."@alloc/quick-lru-5.2.0"
       sources."@cspotcode/source-map-support-0.8.1"
       sources."@isaacs/cliui-8.0.2"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      (sources."@jridgewell/gen-mapping-0.3.5" // {
+        dependencies = [
+          sources."@jridgewell/trace-mapping-0.3.25"
+        ];
+      })
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.9"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.4.1"
+      sources."@swc/core-1.4.8"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.6"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.4.1"
+      sources."@swc/helpers-0.5.7"
+      sources."@swc/types-0.1.6"
+      sources."@swc/wasm-1.4.8"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."ansi-regex-5.0.1"
@@ -63147,7 +62893,7 @@ in
       sources."anymatch-3.1.3"
       sources."arg-5.0.2"
       sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."camelcase-css-2.0.1"
@@ -63178,7 +62924,7 @@ in
       sources."function-bind-1.1.2"
       sources."glob-10.3.10"
       sources."glob-parent-6.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."is-binary-path-2.1.0"
       sources."is-core-module-2.13.1"
       sources."is-extglob-2.1.1"
@@ -63209,16 +62955,16 @@ in
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.35"
+      sources."postcss-8.4.36"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
         dependencies = [
-          sources."lilconfig-3.1.0"
+          sources."lilconfig-3.1.1"
         ];
       })
       sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.15"
+      sources."postcss-selector-parser-6.0.16"
       sources."postcss-value-parser-4.2.0"
       sources."queue-microtask-1.2.3"
       sources."read-cache-1.0.0"
@@ -63229,7 +62975,7 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       sources."string-width-5.1.2"
       (sources."string-width-cjs-4.2.3" // {
         dependencies = [
@@ -63256,7 +63002,7 @@ in
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
@@ -63270,7 +63016,7 @@ in
           sources."strip-ansi-6.0.1"
         ];
       })
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
       sources."yn-3.1.1"
     ];
     buildInputs = globalBuildInputs;
@@ -63295,24 +63041,28 @@ in
       sources."@alloc/quick-lru-5.2.0"
       sources."@cspotcode/source-map-support-0.8.1"
       sources."@isaacs/cliui-8.0.2"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      (sources."@jridgewell/gen-mapping-0.3.5" // {
+        dependencies = [
+          sources."@jridgewell/trace-mapping-0.3.25"
+        ];
+      })
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.9"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.4.1"
+      sources."@swc/core-1.4.8"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.6"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.4.1"
+      sources."@swc/helpers-0.5.7"
+      sources."@swc/types-0.1.6"
+      sources."@swc/wasm-1.4.8"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."ansi-regex-5.0.1"
@@ -63321,7 +63071,7 @@ in
       sources."anymatch-3.1.3"
       sources."arg-5.0.2"
       sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."camelcase-css-2.0.1"
@@ -63352,7 +63102,7 @@ in
       sources."function-bind-1.1.2"
       sources."glob-10.3.10"
       sources."glob-parent-6.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."is-binary-path-2.1.0"
       sources."is-core-module-2.13.1"
       sources."is-extglob-2.1.1"
@@ -63382,16 +63132,16 @@ in
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.35"
+      sources."postcss-8.4.36"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
         dependencies = [
-          sources."lilconfig-3.1.0"
+          sources."lilconfig-3.1.1"
         ];
       })
       sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.15"
+      sources."postcss-selector-parser-6.0.16"
       sources."postcss-value-parser-4.2.0"
       sources."queue-microtask-1.2.3"
       sources."read-cache-1.0.0"
@@ -63402,7 +63152,7 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       sources."string-width-5.1.2"
       (sources."string-width-cjs-4.2.3" // {
         dependencies = [
@@ -63429,7 +63179,7 @@ in
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
@@ -63443,7 +63193,7 @@ in
           sources."strip-ansi-6.0.1"
         ];
       })
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
       sources."yn-3.1.1"
     ];
     buildInputs = globalBuildInputs;
@@ -63468,24 +63218,28 @@ in
       sources."@alloc/quick-lru-5.2.0"
       sources."@cspotcode/source-map-support-0.8.1"
       sources."@isaacs/cliui-8.0.2"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      (sources."@jridgewell/gen-mapping-0.3.5" // {
+        dependencies = [
+          sources."@jridgewell/trace-mapping-0.3.25"
+        ];
+      })
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.9"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.4.1"
+      sources."@swc/core-1.4.8"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.6"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.4.1"
+      sources."@swc/helpers-0.5.7"
+      sources."@swc/types-0.1.6"
+      sources."@swc/wasm-1.4.8"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."ansi-regex-5.0.1"
@@ -63494,7 +63248,7 @@ in
       sources."anymatch-3.1.3"
       sources."arg-5.0.2"
       sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."camelcase-css-2.0.1"
@@ -63525,7 +63279,7 @@ in
       sources."function-bind-1.1.2"
       sources."glob-10.3.10"
       sources."glob-parent-6.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."is-binary-path-2.1.0"
       sources."is-core-module-2.13.1"
       sources."is-extglob-2.1.1"
@@ -63558,17 +63312,17 @@ in
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.35"
+      sources."postcss-8.4.36"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
         dependencies = [
-          sources."lilconfig-3.1.0"
+          sources."lilconfig-3.1.1"
         ];
       })
       (sources."postcss-nested-6.0.1" // {
         dependencies = [
-          sources."postcss-selector-parser-6.0.15"
+          sources."postcss-selector-parser-6.0.16"
         ];
       })
       sources."postcss-selector-parser-6.0.10"
@@ -63582,7 +63336,7 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       sources."string-width-5.1.2"
       (sources."string-width-cjs-4.2.3" // {
         dependencies = [
@@ -63600,7 +63354,7 @@ in
       sources."supports-preserve-symlinks-flag-1.0.0"
       (sources."tailwindcss-3.4.1" // {
         dependencies = [
-          sources."postcss-selector-parser-6.0.15"
+          sources."postcss-selector-parser-6.0.16"
         ];
       })
       sources."thenify-3.3.1"
@@ -63613,7 +63367,7 @@ in
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
@@ -63627,7 +63381,7 @@ in
           sources."strip-ansi-6.0.1"
         ];
       })
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
       sources."yn-3.1.1"
     ];
     buildInputs = globalBuildInputs;
@@ -63643,10 +63397,10 @@ in
   "@uppy/companion" = nodeEnv.buildNodePackage {
     name = "_at_uppy_slash_companion";
     packageName = "@uppy/companion";
-    version = "4.12.0";
+    version = "4.12.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@uppy/companion/-/companion-4.12.0.tgz";
-      sha512 = "Q/1c7HZ/XwMiy0vY978fgFsfOumW8M2AHSIDnAceFKrLkBVQVL+SXj8DnkUTgsxzI/TLShCmuj0kU4oTeC+4rg==";
+      url = "https://registry.npmjs.org/@uppy/companion/-/companion-4.12.3.tgz";
+      sha512 = "0i/EDrK/N3zhrHy56Sq9NyH/vWvmsCBh5ulT2mW8RZlTtFTZXMCkHlnqliSlRHTDsGSDLho9BkIdE4Yn64Saiw==";
     };
     dependencies = [
       (sources."@aws-crypto/crc32-3.0.0" // {
@@ -63689,48 +63443,48 @@ in
           sources."tslib-1.14.1"
         ];
       })
-      sources."@aws-sdk/client-s3-3.515.0"
-      sources."@aws-sdk/client-sso-3.515.0"
-      sources."@aws-sdk/client-sso-oidc-3.515.0"
-      sources."@aws-sdk/client-sts-3.515.0"
-      sources."@aws-sdk/core-3.513.0"
-      sources."@aws-sdk/credential-provider-env-3.515.0"
-      sources."@aws-sdk/credential-provider-http-3.515.0"
-      sources."@aws-sdk/credential-provider-ini-3.515.0"
-      sources."@aws-sdk/credential-provider-node-3.515.0"
-      sources."@aws-sdk/credential-provider-process-3.515.0"
-      sources."@aws-sdk/credential-provider-sso-3.515.0"
-      sources."@aws-sdk/credential-provider-web-identity-3.515.0"
-      (sources."@aws-sdk/lib-storage-3.515.0" // {
+      sources."@aws-sdk/client-s3-3.536.0"
+      sources."@aws-sdk/client-sso-3.535.0"
+      sources."@aws-sdk/client-sso-oidc-3.535.0"
+      sources."@aws-sdk/client-sts-3.535.0"
+      sources."@aws-sdk/core-3.535.0"
+      sources."@aws-sdk/credential-provider-env-3.535.0"
+      sources."@aws-sdk/credential-provider-http-3.535.0"
+      sources."@aws-sdk/credential-provider-ini-3.535.0"
+      sources."@aws-sdk/credential-provider-node-3.535.0"
+      sources."@aws-sdk/credential-provider-process-3.535.0"
+      sources."@aws-sdk/credential-provider-sso-3.535.0"
+      sources."@aws-sdk/credential-provider-web-identity-3.535.0"
+      (sources."@aws-sdk/lib-storage-3.536.0" // {
         dependencies = [
           sources."buffer-5.6.0"
         ];
       })
-      sources."@aws-sdk/middleware-bucket-endpoint-3.515.0"
-      sources."@aws-sdk/middleware-expect-continue-3.515.0"
-      sources."@aws-sdk/middleware-flexible-checksums-3.515.0"
-      sources."@aws-sdk/middleware-host-header-3.515.0"
-      sources."@aws-sdk/middleware-location-constraint-3.515.0"
-      sources."@aws-sdk/middleware-logger-3.515.0"
-      sources."@aws-sdk/middleware-recursion-detection-3.515.0"
-      sources."@aws-sdk/middleware-sdk-s3-3.515.0"
-      sources."@aws-sdk/middleware-signing-3.515.0"
-      sources."@aws-sdk/middleware-ssec-3.515.0"
-      sources."@aws-sdk/middleware-user-agent-3.515.0"
-      sources."@aws-sdk/region-config-resolver-3.515.0"
-      sources."@aws-sdk/s3-presigned-post-3.515.0"
-      sources."@aws-sdk/s3-request-presigner-3.515.0"
-      sources."@aws-sdk/signature-v4-multi-region-3.515.0"
-      sources."@aws-sdk/token-providers-3.515.0"
-      sources."@aws-sdk/types-3.515.0"
-      sources."@aws-sdk/util-arn-parser-3.495.0"
-      sources."@aws-sdk/util-endpoints-3.515.0"
-      sources."@aws-sdk/util-format-url-3.515.0"
-      sources."@aws-sdk/util-locate-window-3.495.0"
-      sources."@aws-sdk/util-user-agent-browser-3.515.0"
-      sources."@aws-sdk/util-user-agent-node-3.515.0"
+      sources."@aws-sdk/middleware-bucket-endpoint-3.535.0"
+      sources."@aws-sdk/middleware-expect-continue-3.535.0"
+      sources."@aws-sdk/middleware-flexible-checksums-3.535.0"
+      sources."@aws-sdk/middleware-host-header-3.535.0"
+      sources."@aws-sdk/middleware-location-constraint-3.535.0"
+      sources."@aws-sdk/middleware-logger-3.535.0"
+      sources."@aws-sdk/middleware-recursion-detection-3.535.0"
+      sources."@aws-sdk/middleware-sdk-s3-3.535.0"
+      sources."@aws-sdk/middleware-signing-3.535.0"
+      sources."@aws-sdk/middleware-ssec-3.535.0"
+      sources."@aws-sdk/middleware-user-agent-3.535.0"
+      sources."@aws-sdk/region-config-resolver-3.535.0"
+      sources."@aws-sdk/s3-presigned-post-3.536.0"
+      sources."@aws-sdk/s3-request-presigner-3.536.0"
+      sources."@aws-sdk/signature-v4-multi-region-3.535.0"
+      sources."@aws-sdk/token-providers-3.535.0"
+      sources."@aws-sdk/types-3.535.0"
+      sources."@aws-sdk/util-arn-parser-3.535.0"
+      sources."@aws-sdk/util-endpoints-3.535.0"
+      sources."@aws-sdk/util-format-url-3.535.0"
+      sources."@aws-sdk/util-locate-window-3.535.0"
+      sources."@aws-sdk/util-user-agent-browser-3.535.0"
+      sources."@aws-sdk/util-user-agent-node-3.535.0"
       sources."@aws-sdk/util-utf8-browser-3.259.0"
-      sources."@aws-sdk/xml-builder-3.496.0"
+      sources."@aws-sdk/xml-builder-3.535.0"
       sources."@httptoolkit/websocket-stream-6.0.1"
       sources."@redis/bloom-1.0.2"
       sources."@redis/client-1.2.0"
@@ -63739,61 +63493,61 @@ in
       sources."@redis/search-1.0.6"
       sources."@redis/time-series-1.0.3"
       sources."@sindresorhus/is-4.6.0"
-      sources."@smithy/abort-controller-2.1.1"
-      sources."@smithy/chunked-blob-reader-2.1.1"
-      sources."@smithy/chunked-blob-reader-native-2.1.1"
-      sources."@smithy/config-resolver-2.1.1"
-      sources."@smithy/core-1.3.2"
-      sources."@smithy/credential-provider-imds-2.2.1"
-      sources."@smithy/eventstream-codec-2.1.1"
-      sources."@smithy/eventstream-serde-browser-2.1.1"
-      sources."@smithy/eventstream-serde-config-resolver-2.1.1"
-      sources."@smithy/eventstream-serde-node-2.1.1"
-      sources."@smithy/eventstream-serde-universal-2.1.1"
-      sources."@smithy/fetch-http-handler-2.4.1"
-      sources."@smithy/hash-blob-browser-2.1.1"
-      sources."@smithy/hash-node-2.1.1"
-      sources."@smithy/hash-stream-node-2.1.1"
-      sources."@smithy/invalid-dependency-2.1.1"
-      sources."@smithy/is-array-buffer-2.1.1"
-      sources."@smithy/md5-js-2.1.1"
-      sources."@smithy/middleware-content-length-2.1.1"
-      sources."@smithy/middleware-endpoint-2.4.1"
-      sources."@smithy/middleware-retry-2.1.1"
-      sources."@smithy/middleware-serde-2.1.1"
-      sources."@smithy/middleware-stack-2.1.1"
-      sources."@smithy/node-config-provider-2.2.1"
-      sources."@smithy/node-http-handler-2.3.1"
-      sources."@smithy/property-provider-2.1.1"
-      sources."@smithy/protocol-http-3.1.1"
-      sources."@smithy/querystring-builder-2.1.1"
-      sources."@smithy/querystring-parser-2.1.1"
-      sources."@smithy/service-error-classification-2.1.1"
-      sources."@smithy/shared-ini-file-loader-2.3.1"
-      sources."@smithy/signature-v4-2.1.1"
-      sources."@smithy/smithy-client-2.3.1"
-      sources."@smithy/types-2.9.1"
-      sources."@smithy/url-parser-2.1.1"
-      sources."@smithy/util-base64-2.1.1"
-      sources."@smithy/util-body-length-browser-2.1.1"
-      sources."@smithy/util-body-length-node-2.2.1"
-      sources."@smithy/util-buffer-from-2.1.1"
-      sources."@smithy/util-config-provider-2.2.1"
-      sources."@smithy/util-defaults-mode-browser-2.1.1"
-      sources."@smithy/util-defaults-mode-node-2.2.0"
-      sources."@smithy/util-endpoints-1.1.1"
-      sources."@smithy/util-hex-encoding-2.1.1"
-      sources."@smithy/util-middleware-2.1.1"
-      sources."@smithy/util-retry-2.1.1"
-      sources."@smithy/util-stream-2.1.1"
-      sources."@smithy/util-uri-escape-2.1.1"
-      sources."@smithy/util-utf8-2.1.1"
-      sources."@smithy/util-waiter-2.1.1"
+      sources."@smithy/abort-controller-2.2.0"
+      sources."@smithy/chunked-blob-reader-2.2.0"
+      sources."@smithy/chunked-blob-reader-native-2.2.0"
+      sources."@smithy/config-resolver-2.2.0"
+      sources."@smithy/core-1.4.0"
+      sources."@smithy/credential-provider-imds-2.3.0"
+      sources."@smithy/eventstream-codec-2.2.0"
+      sources."@smithy/eventstream-serde-browser-2.2.0"
+      sources."@smithy/eventstream-serde-config-resolver-2.2.0"
+      sources."@smithy/eventstream-serde-node-2.2.0"
+      sources."@smithy/eventstream-serde-universal-2.2.0"
+      sources."@smithy/fetch-http-handler-2.5.0"
+      sources."@smithy/hash-blob-browser-2.2.0"
+      sources."@smithy/hash-node-2.2.0"
+      sources."@smithy/hash-stream-node-2.2.0"
+      sources."@smithy/invalid-dependency-2.2.0"
+      sources."@smithy/is-array-buffer-2.2.0"
+      sources."@smithy/md5-js-2.2.0"
+      sources."@smithy/middleware-content-length-2.2.0"
+      sources."@smithy/middleware-endpoint-2.5.0"
+      sources."@smithy/middleware-retry-2.2.0"
+      sources."@smithy/middleware-serde-2.3.0"
+      sources."@smithy/middleware-stack-2.2.0"
+      sources."@smithy/node-config-provider-2.3.0"
+      sources."@smithy/node-http-handler-2.5.0"
+      sources."@smithy/property-provider-2.2.0"
+      sources."@smithy/protocol-http-3.3.0"
+      sources."@smithy/querystring-builder-2.2.0"
+      sources."@smithy/querystring-parser-2.2.0"
+      sources."@smithy/service-error-classification-2.1.5"
+      sources."@smithy/shared-ini-file-loader-2.4.0"
+      sources."@smithy/signature-v4-2.2.0"
+      sources."@smithy/smithy-client-2.5.0"
+      sources."@smithy/types-2.12.0"
+      sources."@smithy/url-parser-2.2.0"
+      sources."@smithy/util-base64-2.3.0"
+      sources."@smithy/util-body-length-browser-2.2.0"
+      sources."@smithy/util-body-length-node-2.3.0"
+      sources."@smithy/util-buffer-from-2.2.0"
+      sources."@smithy/util-config-provider-2.3.0"
+      sources."@smithy/util-defaults-mode-browser-2.2.0"
+      sources."@smithy/util-defaults-mode-node-2.3.0"
+      sources."@smithy/util-endpoints-1.2.0"
+      sources."@smithy/util-hex-encoding-2.2.0"
+      sources."@smithy/util-middleware-2.2.0"
+      sources."@smithy/util-retry-2.2.0"
+      sources."@smithy/util-stream-2.2.0"
+      sources."@smithy/util-uri-escape-2.2.0"
+      sources."@smithy/util-utf8-2.3.0"
+      sources."@smithy/util-waiter-2.2.0"
       sources."@szmarczak/http-timer-4.0.6"
       sources."@types/cacheable-request-6.0.3"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/responselike-1.0.3"
       sources."@types/ws-8.5.10"
       sources."accepts-1.3.8"
@@ -63803,7 +63557,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-crt-1.21.1"
-      (sources."axios-1.6.7" // {
+      (sources."axios-1.6.8" // {
         dependencies = [
           sources."form-data-4.0.0"
         ];
@@ -63885,7 +63639,7 @@ in
       sources."duplexify-3.7.1"
       sources."ecdsa-sig-formatter-1.0.11"
       sources."ee-first-1.1.1"
-      sources."elliptic-6.5.4"
+      sources."elliptic-6.5.5"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."es-define-property-1.0.0"
@@ -63928,7 +63682,7 @@ in
           sources."ms-2.0.0"
         ];
       })
-      sources."follow-redirects-1.15.5"
+      sources."follow-redirects-1.15.6"
       sources."form-data-3.0.1"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
@@ -63948,10 +63702,10 @@ in
       })
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."hash.js-1.1.7"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."helmet-4.6.0"
       (sources."help-me-3.0.0" // {
         dependencies = [
@@ -63971,7 +63725,7 @@ in
       sources."is-stream-2.0.1"
       sources."isarray-1.0.0"
       sources."isomorphic-ws-4.0.1"
-      sources."js-base64-3.7.6"
+      sources."js-base64-3.7.7"
       sources."js-sdsl-4.3.0"
       sources."json-buffer-3.0.1"
       (sources."jsonwebtoken-9.0.0" // {
@@ -64020,7 +63774,7 @@ in
       })
       (sources."mqtt-4.3.8" // {
         dependencies = [
-          sources."duplexify-4.1.2"
+          sources."duplexify-4.1.3"
           sources."readable-stream-3.6.2"
           sources."ws-7.5.9"
         ];
@@ -64090,9 +63844,9 @@ in
       sources."serialize-error-2.1.0"
       sources."serialize-javascript-6.0.2"
       sources."serve-static-1.15.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."setprototypeof-1.2.0"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       sources."sorted-array-functions-1.3.0"
       (sources."split2-3.2.2" // {
@@ -64155,7 +63909,7 @@ in
       sha512 = "+/kSxBAkZbeVBePoG2qRSvCkVIslk1dNlU5wQHAcbzOFTi7pEQR6C+kjoj94I+vGXVGMFfDwOYm07sPsd8dM6w==";
     };
     dependencies = [
-      sources."@babel/parser-7.23.9"
+      sources."@babel/parser-7.24.0"
       sources."@emmetio/abbreviation-2.3.3"
       sources."@emmetio/css-abbreviation-2.1.8"
       sources."@emmetio/scanner-1.0.4"
@@ -64182,12 +63936,12 @@ in
         ];
       })
       sources."@vscode/l10n-0.0.11"
-      sources."@vue/compiler-core-3.4.19"
-      sources."@vue/compiler-dom-3.4.19"
-      sources."@vue/compiler-sfc-3.4.19"
-      sources."@vue/compiler-ssr-3.4.19"
-      sources."@vue/reactivity-3.4.19"
-      sources."@vue/shared-3.4.19"
+      sources."@vue/compiler-core-3.4.21"
+      sources."@vue/compiler-dom-3.4.21"
+      sources."@vue/compiler-sfc-3.4.21"
+      sources."@vue/compiler-ssr-3.4.21"
+      sources."@vue/reactivity-3.4.21"
+      sources."@vue/shared-3.4.21"
       sources."acorn-7.4.1"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-2.0.1"
@@ -64195,7 +63949,7 @@ in
       sources."character-parser-2.2.0"
       sources."de-indent-1.0.2"
       sources."define-data-property-1.1.4"
-      sources."emmet-2.4.6"
+      sources."emmet-2.4.7"
       sources."entities-4.5.0"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
@@ -64204,32 +63958,32 @@ in
       sources."get-intrinsic-1.2.4"
       sources."gopd-1.0.1"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."he-1.2.0"
       sources."is-expression-4.0.0"
       sources."is-regex-1.1.4"
       sources."jsonc-parser-3.2.1"
       sources."lru-cache-6.0.0"
-      sources."magic-string-0.30.7"
+      sources."magic-string-0.30.8"
       sources."minimatch-9.0.3"
       sources."muggle-string-0.2.2"
       sources."nanoid-3.3.7"
       sources."object-assign-4.1.1"
       sources."picocolors-1.0.0"
-      sources."postcss-8.4.35"
+      sources."postcss-8.4.36"
       sources."pug-error-2.0.0"
       sources."pug-lexer-5.0.1"
       sources."pug-parser-6.0.0"
       sources."request-light-0.7.0"
       sources."semver-7.6.0"
-      sources."set-function-length-1.2.1"
-      sources."source-map-js-1.0.2"
+      sources."set-function-length-1.2.2"
+      sources."source-map-js-1.1.0"
       sources."token-stream-1.0.0"
       sources."typesafe-path-0.2.2"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."typescript-auto-import-cache-0.2.1"
       (sources."vscode-css-languageservice-6.2.12" // {
         dependencies = [
@@ -64287,7 +64041,7 @@ in
     dependencies = [
       sources."@achrinza/node-ipc-9.2.8"
       sources."@akryum/winattr-3.0.0"
-      sources."@ampproject/remapping-2.2.1"
+      sources."@ampproject/remapping-2.3.0"
       sources."@apollo/protobufjs-1.2.7"
       sources."@apollo/usage-reporting-protobuf-4.1.1"
       sources."@apollo/utils.dropunuseddefinitions-1.1.0"
@@ -64315,7 +64069,7 @@ in
         ];
       })
       sources."@babel/compat-data-7.23.5"
-      (sources."@babel/core-7.23.9" // {
+      (sources."@babel/core-7.24.0" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -64330,7 +64084,7 @@ in
           sources."yallist-3.1.1"
         ];
       })
-      (sources."@babel/helper-create-class-features-plugin-7.23.10" // {
+      (sources."@babel/helper-create-class-features-plugin-7.24.0" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -64340,7 +64094,7 @@ in
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/helper-define-polyfill-provider-0.5.0"
+      sources."@babel/helper-define-polyfill-provider-0.6.1"
       sources."@babel/helper-environment-visitor-7.22.20"
       sources."@babel/helper-function-name-7.23.0"
       sources."@babel/helper-hoist-variables-7.22.5"
@@ -64348,7 +64102,7 @@ in
       sources."@babel/helper-module-imports-7.22.15"
       sources."@babel/helper-module-transforms-7.23.3"
       sources."@babel/helper-optimise-call-expression-7.22.5"
-      sources."@babel/helper-plugin-utils-7.22.5"
+      sources."@babel/helper-plugin-utils-7.24.0"
       sources."@babel/helper-remap-async-to-generator-7.22.20"
       sources."@babel/helper-replace-supers-7.22.20"
       sources."@babel/helper-simple-access-7.22.5"
@@ -64358,7 +64112,7 @@ in
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/helper-validator-option-7.23.5"
       sources."@babel/helper-wrap-function-7.22.20"
-      sources."@babel/helpers-7.23.9"
+      sources."@babel/helpers-7.24.0"
       (sources."@babel/highlight-7.23.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -64369,7 +64123,7 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/parser-7.23.9"
+      sources."@babel/parser-7.24.0"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3"
       sources."@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7"
@@ -64428,7 +64182,7 @@ in
       sources."@babel/plugin-transform-new-target-7.23.3"
       sources."@babel/plugin-transform-nullish-coalescing-operator-7.23.4"
       sources."@babel/plugin-transform-numeric-separator-7.23.4"
-      sources."@babel/plugin-transform-object-rest-spread-7.23.4"
+      sources."@babel/plugin-transform-object-rest-spread-7.24.0"
       sources."@babel/plugin-transform-object-super-7.23.3"
       sources."@babel/plugin-transform-optional-catch-binding-7.23.4"
       sources."@babel/plugin-transform-optional-chaining-7.23.4"
@@ -64448,12 +64202,12 @@ in
       sources."@babel/plugin-transform-unicode-property-regex-7.23.3"
       sources."@babel/plugin-transform-unicode-regex-7.23.3"
       sources."@babel/plugin-transform-unicode-sets-regex-7.23.3"
-      (sources."@babel/preset-env-7.23.9" // {
+      (sources."@babel/preset-env-7.24.0" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/preset-flow-7.23.3"
+      sources."@babel/preset-flow-7.24.0"
       sources."@babel/preset-modules-0.1.6-no-external-plugins"
       sources."@babel/preset-typescript-7.23.3"
       (sources."@babel/register-7.23.7" // {
@@ -64464,10 +64218,10 @@ in
         ];
       })
       sources."@babel/regjsgen-0.8.0"
-      sources."@babel/runtime-7.23.9"
-      sources."@babel/template-7.23.9"
-      sources."@babel/traverse-7.23.9"
-      sources."@babel/types-7.23.9"
+      sources."@babel/runtime-7.24.0"
+      sources."@babel/template-7.24.0"
+      sources."@babel/traverse-7.24.0"
+      sources."@babel/types-7.24.0"
       sources."@graphql-tools/merge-8.3.1"
       (sources."@graphql-tools/mock-8.7.20" // {
         dependencies = [
@@ -64483,11 +64237,11 @@ in
       sources."@hapi/hoek-9.3.0"
       sources."@hapi/topo-5.1.0"
       sources."@josephg/resolvable-1.0.1"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@node-ipc/js-queue-2.0.3"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
@@ -64523,9 +64277,9 @@ in
       })
       sources."@types/long-4.0.2"
       sources."@types/mime-3.0.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/normalize-package-data-2.4.4"
-      sources."@types/qs-6.9.11"
+      sources."@types/qs-6.9.13"
       sources."@types/range-parser-1.2.7"
       sources."@types/serve-static-1.15.5"
       sources."@types/through-0.0.33"
@@ -64537,14 +64291,14 @@ in
       })
       sources."@vue/cli-ui-addon-webpack-5.0.8"
       sources."@vue/cli-ui-addon-widgets-5.0.8"
-      (sources."@vue/compiler-core-3.4.19" // {
+      (sources."@vue/compiler-core-3.4.21" // {
         dependencies = [
           sources."entities-4.5.0"
         ];
       })
-      sources."@vue/compiler-dom-3.4.19"
+      sources."@vue/compiler-dom-3.4.21"
       sources."@vue/compiler-sfc-2.7.16"
-      sources."@vue/shared-3.4.19"
+      sources."@vue/shared-3.4.21"
       sources."accepts-1.3.8"
       sources."aggregate-error-3.1.0"
       sources."ansi-align-3.0.1"
@@ -64588,13 +64342,21 @@ in
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
       sources."babel-core-7.0.0-bridge.0"
-      (sources."babel-plugin-polyfill-corejs2-0.4.8" // {
+      (sources."babel-plugin-polyfill-corejs2-0.4.10" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."babel-plugin-polyfill-corejs3-0.9.0"
-      sources."babel-plugin-polyfill-regenerator-0.5.5"
+      (sources."babel-plugin-polyfill-corejs3-0.9.0" // {
+        dependencies = [
+          sources."@babel/helper-define-polyfill-provider-0.5.0"
+        ];
+      })
+      (sources."babel-plugin-polyfill-regenerator-0.5.5" // {
+        dependencies = [
+          sources."@babel/helper-define-polyfill-provider-0.5.0"
+        ];
+      })
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
@@ -64636,7 +64398,7 @@ in
       })
       sources."call-bind-1.0.7"
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       sources."caw-2.0.1"
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
@@ -64674,7 +64436,7 @@ in
       sources."cookie-0.5.0"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
-      sources."core-js-compat-3.36.0"
+      sources."core-js-compat-3.36.1"
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       (sources."cross-spawn-6.0.5" // {
@@ -64736,7 +64498,7 @@ in
       sources."easy-stack-1.0.1"
       sources."ee-first-1.1.1"
       sources."ejs-3.1.9"
-      sources."electron-to-chromium-1.4.673"
+      sources."electron-to-chromium-1.4.710"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."encoding-0.1.13"
@@ -64764,12 +64526,9 @@ in
           sources."is-descriptor-0.1.7"
         ];
       })
-      (sources."express-4.18.2" // {
+      (sources."express-4.18.3" // {
         dependencies = [
-          sources."body-parser-1.20.1"
           sources."debug-2.6.9"
-          sources."iconv-lite-0.4.24"
-          sources."raw-body-2.5.1"
         ];
       })
       sources."express-history-api-fallback-2.2.1"
@@ -64838,7 +64597,7 @@ in
           sources."which-2.0.2"
         ];
       })
-      sources."flow-parser-0.229.0"
+      sources."flow-parser-0.231.0"
       sources."for-in-1.0.2"
       sources."forwarded-0.2.0"
       sources."fragment-cache-0.2.1"
@@ -64886,7 +64645,7 @@ in
       sources."growly-1.3.0"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbol-support-x-1.4.2"
       sources."has-symbols-1.0.3"
       sources."has-to-string-tag-x-1.4.1"
@@ -64901,7 +64660,7 @@ in
           sources."kind-of-4.0.0"
         ];
       })
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hosted-git-info-2.8.9"
       sources."http-cache-semantics-3.8.1"
       sources."http-errors-2.0.0"
@@ -64957,7 +64716,7 @@ in
         ];
       })
       sources."javascript-stringify-2.1.0"
-      sources."joi-17.12.1"
+      sources."joi-17.12.2"
       sources."js-message-1.0.7"
       sources."js-tokens-4.0.0"
       sources."js-yaml-4.1.0"
@@ -65120,7 +64879,7 @@ in
         ];
       })
       sources."posix-character-classes-0.1.1"
-      (sources."postcss-8.4.35" // {
+      (sources."postcss-8.4.36" // {
         dependencies = [
           sources."nanoid-3.3.7"
         ];
@@ -65198,7 +64957,7 @@ in
         ];
       })
       sources."serve-static-1.15.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -65212,7 +64971,7 @@ in
       sources."shell-quote-1.8.1"
       sources."shellwords-0.1.1"
       sources."shortid-2.2.16"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       sources."slash-3.0.0"
       (sources."snapdragon-0.8.2" // {
@@ -65237,7 +64996,7 @@ in
       sources."sort-keys-1.1.2"
       sources."sort-keys-length-1.0.1"
       sources."source-map-0.6.1"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       sources."source-map-resolve-0.5.3"
       sources."source-map-support-0.5.21"
       sources."source-map-url-0.4.1"
@@ -65367,7 +65126,7 @@ in
       sources."ws-7.5.9"
       sources."xml2js-0.5.0"
       sources."xmlbuilder-11.0.1"
-      (sources."xss-1.0.14" // {
+      (sources."xss-1.0.15" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
@@ -65526,14 +65285,14 @@ in
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.9"
-      sources."@babel/template-7.23.9"
-      sources."@babel/types-7.23.9"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@babel/parser-7.24.0"
+      sources."@babel/template-7.24.0"
+      sources."@babel/types-7.24.0"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@webassemblyjs/ast-1.11.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.1"
       sources."@webassemblyjs/helper-api-error-1.11.1"
@@ -65610,7 +65369,7 @@ in
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/highlight-7.23.4"
       sources."@isaacs/cliui-8.0.2"
-      sources."@npmcli/config-6.4.0"
+      sources."@npmcli/config-6.4.1"
       (sources."@npmcli/map-workspaces-3.0.4" // {
         dependencies = [
           sources."glob-10.3.10"
@@ -65631,7 +65390,7 @@ in
       sources."@types/concat-stream-2.0.3"
       sources."@types/debug-4.1.12"
       sources."@types/estree-1.0.5"
-      sources."@types/estree-jsx-1.0.4"
+      sources."@types/estree-jsx-1.0.5"
       sources."@types/hast-2.3.10"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/is-empty-1.2.3"
@@ -65639,7 +65398,7 @@ in
       sources."@types/minimist-1.2.5"
       sources."@types/ms-0.7.34"
       sources."@types/nlcst-1.0.4"
-      sources."@types/node-18.19.17"
+      sources."@types/node-18.19.25"
       sources."@types/normalize-package-data-2.4.4"
       sources."@types/supports-color-8.1.3"
       sources."@types/unist-2.0.10"
@@ -65682,7 +65441,7 @@ in
       sources."character-entities-html4-2.1.0"
       sources."character-entities-legacy-3.0.0"
       sources."character-reference-invalid-2.0.1"
-      sources."ci-info-3.9.0"
+      sources."ci-info-4.0.0"
       sources."cli-boxes-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -65759,7 +65518,7 @@ in
       sources."hard-rejection-2.1.0"
       sources."has-flag-3.0.0"
       sources."has-yarn-3.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hast-util-embedded-2.0.1"
       sources."hast-util-from-parse5-7.1.2"
       sources."hast-util-has-property-2.0.1"
@@ -65785,12 +65544,16 @@ in
       sources."indent-string-5.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-4.1.1"
+      sources."ini-4.1.2"
       sources."is-alphabetical-2.0.1"
       sources."is-alphanumerical-2.0.1"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-2.0.5"
-      sources."is-ci-3.0.1"
+      (sources."is-ci-3.0.1" // {
+        dependencies = [
+          sources."ci-info-3.9.0"
+        ];
+      })
       sources."is-core-module-2.13.1"
       sources."is-decimal-2.0.1"
       sources."is-empty-1.2.0"
@@ -65896,7 +65659,7 @@ in
       sources."nlcst-to-string-3.1.1"
       sources."nopt-7.2.0"
       sources."normalize-package-data-4.0.1"
-      sources."normalize-url-8.0.0"
+      sources."normalize-url-8.0.1"
       sources."npm-normalize-package-bin-3.0.1"
       sources."object-keys-0.4.0"
       sources."once-1.4.0"
@@ -66121,7 +65884,7 @@ in
       sources."xdg-basedir-5.1.0"
       sources."xtend-2.1.2"
       sources."yallist-4.0.0"
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
       sources."yargs-parser-21.1.1"
       sources."yocto-queue-1.0.0"
       sources."zwitch-2.0.4"
@@ -66189,24 +65952,24 @@ in
   autoprefixer = nodeEnv.buildNodePackage {
     name = "autoprefixer";
     packageName = "autoprefixer";
-    version = "10.4.17";
+    version = "10.4.18";
     src = fetchurl {
-      url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz";
-      sha512 = "/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==";
+      url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz";
+      sha512 = "1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==";
     };
     dependencies = [
       sources."browserslist-4.23.0"
-      sources."caniuse-lite-1.0.30001587"
-      sources."electron-to-chromium-1.4.673"
+      sources."caniuse-lite-1.0.30001599"
+      sources."electron-to-chromium-1.4.710"
       sources."escalade-3.1.2"
       sources."fraction.js-4.3.7"
       sources."nanoid-3.3.7"
       sources."node-releases-2.0.14"
       sources."normalize-range-0.1.2"
       sources."picocolors-1.0.0"
-      sources."postcss-8.4.35"
+      sources."postcss-8.4.36"
       sources."postcss-value-parser-4.2.0"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       sources."update-browserslist-db-1.0.13"
     ];
     buildInputs = globalBuildInputs;
@@ -66260,10 +66023,10 @@ in
   aws-cdk = nodeEnv.buildNodePackage {
     name = "aws-cdk";
     packageName = "aws-cdk";
-    version = "2.128.0";
+    version = "2.133.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.128.0.tgz";
-      sha512 = "epOAr/0WKqmyaKqBc7N0Ky5++93pu+v6yVN9jNOa4JYkAkGbeTS3vR9bj/W0o94jnlgWevG3HNHr83jtRvw/4A==";
+      url = "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.133.0.tgz";
+      sha512 = "EwH8VgQQ8ODeMwjE3p+WhbcbWNkCbvuJJl+Py9IB5znGf7GwLcEmOu4YWBsBGPVu41SXbSAf36twMBrJytCFZA==";
     };
     dependencies = [
       sources."fsevents-2.3.2"
@@ -66304,9 +66067,9 @@ in
       sources."@sindresorhus/is-5.6.0"
       sources."@szmarczak/http-timer-5.0.1"
       sources."@types/debug-4.1.12"
-      sources."@types/eslint-8.56.2"
+      sources."@types/eslint-8.56.5"
       sources."@types/estree-1.0.5"
-      sources."@types/estree-jsx-1.0.4"
+      sources."@types/estree-jsx-1.0.5"
       (sources."@types/hast-2.3.10" // {
         dependencies = [
           sources."@types/unist-2.0.10"
@@ -66412,7 +66175,7 @@ in
       })
       sources."graceful-fs-4.2.11"
       sources."has-flag-3.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hosted-git-info-7.0.1"
       sources."http-cache-semantics-4.1.1"
       sources."http2-wrapper-2.2.1"
@@ -66532,8 +66295,8 @@ in
       sources."mri-1.2.0"
       sources."ms-2.1.2"
       sources."normalize-package-data-6.0.0"
-      sources."normalize-url-8.0.0"
-      (sources."npm-run-path-5.2.0" // {
+      sources."normalize-url-8.0.1"
+      (sources."npm-run-path-5.3.0" // {
         dependencies = [
           sources."path-key-4.0.0"
         ];
@@ -67170,7 +66933,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."to-vfile-8.0.0"
       sources."trough-2.2.0"
-      sources."type-fest-4.10.2"
+      sources."type-fest-4.12.0"
       sources."unified-11.0.4"
       (sources."unified-lint-rule-2.1.2" // {
         dependencies = [
@@ -67382,7 +67145,7 @@ in
       sources."get-stdin-4.0.1"
       sources."glob-6.0.4"
       sources."graceful-fs-3.0.12"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hosted-git-info-2.8.9"
       sources."indent-string-2.1.0"
       sources."inflight-1.0.6"
@@ -67490,7 +67253,7 @@ in
       sources."acorn-7.4.1"
       sources."acorn-node-1.8.2"
       sources."acorn-walk-7.2.0"
-      (sources."asn1.js-5.4.1" // {
+      (sources."asn1.js-4.10.1" // {
         dependencies = [
           sources."bn.js-4.12.0"
         ];
@@ -67501,7 +67264,7 @@ in
           sources."util-0.10.4"
         ];
       })
-      sources."available-typed-arrays-1.0.6"
+      sources."available-typed-arrays-1.0.7"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bn.js-5.2.1"
@@ -67513,9 +67276,9 @@ in
       sources."browserify-cipher-1.0.1"
       sources."browserify-des-1.0.2"
       sources."browserify-rsa-4.1.0"
-      (sources."browserify-sign-4.2.2" // {
+      (sources."browserify-sign-4.2.3" // {
         dependencies = [
-          sources."readable-stream-3.6.2"
+          sources."hash-base-3.0.4"
         ];
       })
       sources."browserify-zlib-0.2.0"
@@ -67555,7 +67318,7 @@ in
       })
       sources."domain-browser-1.2.0"
       sources."duplexer2-0.1.4"
-      (sources."elliptic-6.5.4" // {
+      (sources."elliptic-6.5.5" // {
         dependencies = [
           sources."bn.js-4.12.0"
         ];
@@ -67574,7 +67337,7 @@ in
       sources."gopd-1.0.1"
       sources."has-1.0.4"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
       (sources."hash-base-3.1.0" // {
@@ -67583,14 +67346,14 @@ in
         ];
       })
       sources."hash.js-1.1.7"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hmac-drbg-1.0.1"
       sources."htmlescape-1.1.1"
       sources."https-browserify-1.0.0"
       sources."ieee754-1.2.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."inline-source-map-0.6.2"
+      sources."inline-source-map-0.6.3"
       sources."insert-module-globals-7.2.1"
       sources."is-arguments-1.1.1"
       sources."is-buffer-1.1.6"
@@ -67621,12 +67384,17 @@ in
       sources."os-browserify-0.3.0"
       sources."pako-1.0.11"
       sources."parents-1.0.1"
-      sources."parse-asn1-5.1.6"
+      (sources."parse-asn1-5.1.7" // {
+        dependencies = [
+          sources."hash-base-3.0.4"
+        ];
+      })
       sources."path-browserify-1.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.7"
       sources."path-platform-0.11.15"
       sources."pbkdf2-3.1.2"
+      sources."possible-typed-array-names-1.0.0"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
       (sources."public-encrypt-4.0.3" // {
@@ -67635,7 +67403,7 @@ in
         ];
       })
       sources."punycode-1.4.1"
-      sources."qs-6.11.2"
+      sources."qs-6.12.0"
       sources."querystring-es3-0.2.1"
       sources."randombytes-2.1.0"
       sources."randomfill-1.0.4"
@@ -67649,12 +67417,11 @@ in
       sources."resolve-1.22.8"
       sources."ripemd160-2.0.2"
       sources."safe-buffer-5.2.1"
-      sources."safer-buffer-2.1.2"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."sha.js-2.4.11"
       sources."shasum-object-1.0.0"
       sources."shell-quote-1.8.1"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."simple-concat-1.0.1"
       sources."source-map-0.5.7"
       (sources."stream-browserify-3.0.0" // {
@@ -67684,7 +67451,7 @@ in
       sources."util-0.12.5"
       sources."util-deprecate-1.0.2"
       sources."vm-browserify-1.1.2"
-      sources."which-typed-array-1.1.14"
+      sources."which-typed-array-1.1.15"
       sources."wrappy-1.0.2"
       sources."xtend-4.0.2"
     ];
@@ -67710,7 +67477,7 @@ in
       sources."@socket.io/component-emitter-3.1.0"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.17"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."accepts-1.3.8"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
@@ -67720,7 +67487,7 @@ in
       sources."balanced-match-1.0.2"
       sources."base64id-2.0.0"
       sources."batch-0.6.1"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browser-sync-client-3.0.2"
@@ -67767,7 +67534,7 @@ in
           sources."ms-2.0.0"
         ];
       })
-      sources."follow-redirects-1.15.5"
+      sources."follow-redirects-1.15.6"
       sources."fresh-0.5.2"
       sources."fs-extra-3.0.1"
       sources."get-caller-file-2.0.5"
@@ -67848,9 +67615,9 @@ in
       sources."serve-static-1.13.2"
       sources."server-destroy-1.0.1"
       sources."setprototypeof-1.2.0"
-      sources."socket.io-4.7.4"
-      sources."socket.io-adapter-2.5.2"
-      sources."socket.io-client-4.7.4"
+      sources."socket.io-4.7.5"
+      sources."socket.io-adapter-2.5.4"
+      sources."socket.io-client-4.7.5"
       sources."socket.io-parser-4.2.4"
       sources."statuses-1.3.1"
       sources."stream-throttle-0.1.3"
@@ -67886,16 +67653,16 @@ in
   cdk8s-cli = nodeEnv.buildNodePackage {
     name = "cdk8s-cli";
     packageName = "cdk8s-cli";
-    version = "2.198.51";
+    version = "2.198.65";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-2.198.51.tgz";
-      sha512 = "llOd2XWKzjp/z/abLO1cwyNJI0KfLQfH3vPHr9t5Y++FZw/+km/51Q0fEI4NaZvh3hVai1rxgix2alBBEitITw==";
+      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-2.198.65.tgz";
+      sha512 = "CWEUGvGS5I4wugFDQ7j5jj1aS8oFu9CVoWBku2mHHp/Szt6wv4q3GPz0z7oTaZuezj8yIzQQyPCLU8Bns6Mupw==";
     };
     dependencies = [
       sources."@colors/colors-1.6.0"
       sources."@dabh/diagnostics-2.0.3"
-      sources."@jsii/check-node-1.94.0"
-      sources."@jsii/spec-1.94.0"
+      sources."@jsii/check-node-1.95.0"
+      sources."@jsii/spec-1.95.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -67911,7 +67678,7 @@ in
       sources."@octokit/request-error-2.1.0"
       sources."@octokit/rest-18.12.0"
       sources."@octokit/types-6.41.0"
-      sources."@types/node-16.18.82"
+      sources."@types/node-16.18.90"
       sources."@types/triple-beam-1.3.5"
       sources."@xmldom/xmldom-0.8.10"
       sources."aggregate-error-3.1.0"
@@ -67945,8 +67712,8 @@ in
       sources."buffer-5.7.1"
       sources."camelcase-6.3.0"
       sources."case-1.6.3"
-      sources."cdk8s-2.68.38"
-      sources."cdk8s-plus-25-2.22.76"
+      sources."cdk8s-2.68.46"
+      sources."cdk8s-plus-25-2.22.79"
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
       sources."clean-stack-2.2.0"
@@ -67955,7 +67722,7 @@ in
       sources."cli-width-3.0.0"
       sources."cliui-7.0.4"
       sources."clone-2.1.2"
-      (sources."codemaker-1.94.0" // {
+      (sources."codemaker-1.95.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
         ];
@@ -67991,10 +67758,10 @@ in
       sources."detect-newline-2.1.0"
       sources."dir-glob-3.0.1"
       sources."dot-case-3.0.4"
-      sources."dotenv-16.4.4"
+      sources."dotenv-16.4.5"
       (sources."downlevel-dts-0.11.0" // {
         dependencies = [
-          sources."typescript-5.4.0-dev.20240217"
+          sources."typescript-5.5.0-dev.20240318"
         ];
       })
       sources."emoji-regex-8.0.0"
@@ -68019,9 +67786,9 @@ in
       })
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
-      sources."flatted-3.2.9"
+      sources."flatted-3.3.1"
       sources."fn.name-1.1.0"
-      sources."follow-redirects-1.15.5"
+      sources."follow-redirects-1.15.6"
       sources."form-data-4.0.0"
       (sources."fs-extra-8.1.0" // {
         dependencies = [
@@ -68039,7 +67806,7 @@ in
       sources."graphql-16.8.1"
       sources."graphql-tag-2.12.6"
       sources."has-flag-4.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."iconv-lite-0.6.3"
       sources."ieee754-1.2.1"
       sources."ignore-5.3.1"
@@ -68064,25 +67831,25 @@ in
       sources."is-plain-object-5.0.0"
       sources."is-stream-2.0.1"
       sources."is-unicode-supported-0.1.0"
-      (sources."jsii-1.94.0" // {
+      (sources."jsii-1.95.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.94.0" // {
+      (sources."jsii-pacmak-1.95.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.94.0" // {
+      (sources."jsii-reflect-1.95.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.94.0" // {
+      (sources."jsii-rosetta-1.95.0" // {
         dependencies = [
           sources."yargs-16.2.0"
         ];
@@ -68091,7 +67858,7 @@ in
         dependencies = [
           sources."cliui-8.0.1"
           sources."fs-extra-9.1.0"
-          (sources."jsii-5.3.18" // {
+          (sources."jsii-5.3.29" // {
             dependencies = [
               sources."yargs-17.7.2"
             ];
@@ -68134,7 +67901,7 @@ in
       sources."once-1.4.0"
       sources."one-time-1.0.0"
       sources."onetime-5.1.2"
-      sources."oo-ascii-tree-1.94.0"
+      sources."oo-ascii-tree-1.95.0"
       sources."ora-5.4.1"
       sources."os-tmpdir-1.0.2"
       sources."p-limit-2.3.0"
@@ -68179,7 +67946,7 @@ in
       sources."slice-ansi-4.0.0"
       sources."snake-case-3.0.4"
       sources."sort-json-2.0.1"
-      sources."spdx-license-list-6.8.0"
+      sources."spdx-license-list-6.9.0"
       sources."sscaff-1.2.274"
       sources."stack-trace-0.0.10"
       sources."stream-chain-2.2.5"
@@ -68213,7 +67980,7 @@ in
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
       sources."which-module-2.0.1"
-      sources."winston-3.11.0"
+      sources."winston-3.12.0"
       sources."winston-transport-4.7.0"
       sources."workerpool-6.5.1"
       sources."wrap-ansi-7.0.0"
@@ -68221,7 +67988,7 @@ in
       sources."xmlbuilder-15.1.1"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.0"
       (sources."yargs-15.4.1" // {
         dependencies = [
           sources."camelcase-5.3.1"
@@ -68248,10 +68015,10 @@ in
   cdktf-cli = nodeEnv.buildNodePackage {
     name = "cdktf-cli";
     packageName = "cdktf-cli";
-    version = "0.20.3";
+    version = "0.20.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.20.3.tgz";
-      sha512 = "fPdG4pqUmBE/R8wFEJ9QugpeIJkczwnl8lsg13eo0PsmL8biaY8waLX4N5a/p2LLzGrPrVySdrZjF7Cnf+3J/A==";
+      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.20.5.tgz";
+      sha512 = "TkLahINlLw6GwFYMbK9CvB9G/cCt6SbwKjJwYCJTPbC8bpr/S76pEw6x6vO13UUM80Yoak6srNtNS9DNIzF4Zw==";
     };
     dependencies = [
       (sources."@babel/code-frame-7.23.5" // {
@@ -68279,115 +68046,59 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/parser-7.23.9"
-      sources."@babel/template-7.22.15"
-      sources."@babel/types-7.23.6"
-      (sources."@cdktf/cli-core-0.20.3" // {
-        dependencies = [
-          sources."@sentry/node-7.91.0"
-          sources."brace-expansion-2.0.1"
-          sources."ink-select-input-4.2.2"
-          sources."jsii-5.3.3"
-          sources."minimatch-5.1.6"
-          sources."node-fetch-2.7.0"
-          sources."react-17.0.2"
-          sources."yargs-17.7.2"
-        ];
-      })
-      (sources."@cdktf/commons-0.20.3" // {
+      sources."@babel/parser-7.24.0"
+      sources."@babel/template-7.24.0"
+      sources."@babel/types-7.24.0"
+      sources."@cdktf/cli-core-0.20.5"
+      (sources."@cdktf/commons-0.20.5" // {
         dependencies = [
-          sources."@sentry-internal/tracing-7.94.1"
-          sources."@sentry/core-7.94.1"
-          sources."@sentry/node-7.94.1"
-          sources."@sentry/types-7.94.1"
-          sources."@sentry/utils-7.94.1"
+          sources."@sentry/node-7.107.0"
           sources."camelcase-6.3.0"
-          sources."ci-info-3.9.0"
-          (sources."codemaker-1.94.0" // {
+          (sources."codemaker-1.95.0" // {
             dependencies = [
               sources."fs-extra-10.1.0"
             ];
           })
           sources."decamelize-5.0.1"
-          sources."follow-redirects-1.15.5"
+          sources."follow-redirects-1.15.6"
           sources."fs-extra-11.2.0"
           sources."uuid-9.0.1"
         ];
       })
-      sources."@cdktf/hcl-tools-0.20.3"
-      (sources."@cdktf/hcl2cdk-0.20.3" // {
+      sources."@cdktf/hcl-tools-0.20.5"
+      (sources."@cdktf/hcl2cdk-0.20.5" // {
         dependencies = [
           sources."brace-expansion-2.0.1"
           sources."camelcase-6.3.0"
-          sources."codemaker-1.94.0"
+          sources."codemaker-1.95.0"
           sources."decamelize-5.0.1"
           sources."fs-extra-10.1.0"
           sources."glob-10.3.10"
           sources."minimatch-9.0.3"
         ];
       })
-      (sources."@cdktf/hcl2json-0.20.3" // {
+      (sources."@cdktf/hcl2json-0.20.5" // {
         dependencies = [
           sources."fs-extra-11.2.0"
         ];
       })
       sources."@cdktf/node-pty-prebuilt-multiarch-0.10.1-pre.11"
-      (sources."@cdktf/provider-generator-0.20.3" // {
+      (sources."@cdktf/provider-generator-0.20.5" // {
         dependencies = [
-          sources."@jsii/check-node-1.94.0"
-          sources."@types/node-18.19.7"
+          sources."@types/node-18.19.24"
           sources."brace-expansion-2.0.1"
           sources."camelcase-6.3.0"
-          sources."cliui-7.0.4"
-          (sources."codemaker-1.94.0" // {
+          (sources."codemaker-1.95.0" // {
             dependencies = [
               sources."fs-extra-10.1.0"
             ];
           })
           sources."decamelize-5.0.1"
-          sources."escape-string-regexp-4.0.0"
           sources."glob-10.3.10"
-          (sources."jsii-5.3.18" // {
-            dependencies = [
-              sources."yargs-17.7.2"
-            ];
-          })
-          (sources."jsii-pacmak-1.94.0" // {
-            dependencies = [
-              sources."fs-extra-10.1.0"
-              sources."yargs-16.2.0"
-            ];
-          })
-          (sources."jsii-rosetta-1.94.0" // {
-            dependencies = [
-              sources."fs-extra-10.1.0"
-              sources."jsii-1.94.0"
-              sources."yargs-16.2.0"
-            ];
-          })
-          (sources."jsii-srcmak-0.1.1005" // {
-            dependencies = [
-              sources."fs-extra-9.1.0"
-            ];
-          })
           sources."minimatch-9.0.3"
-          sources."semver-7.6.0"
-          sources."typescript-3.9.10"
-          sources."wrap-ansi-7.0.0"
-          sources."y18n-4.0.3"
-          (sources."yargs-15.4.1" // {
-            dependencies = [
-              sources."camelcase-5.3.1"
-              sources."cliui-6.0.0"
-              sources."decamelize-1.2.0"
-              sources."wrap-ansi-6.2.0"
-              sources."yargs-parser-18.1.3"
-            ];
-          })
-          sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."@cdktf/provider-schema-0.20.3" // {
+      (sources."@cdktf/provider-schema-0.20.5" // {
         dependencies = [
           sources."fs-extra-11.2.0"
         ];
@@ -68433,7 +68144,7 @@ in
           sources."signal-exit-4.1.0"
         ];
       })
-      sources."@inquirer/prompts-2.3.0"
+      sources."@inquirer/prompts-2.3.1"
       (sources."@inquirer/rawlist-1.2.16" // {
         dependencies = [
           sources."@inquirer/core-6.0.0"
@@ -68446,7 +68157,7 @@ in
           sources."signal-exit-4.1.0"
         ];
       })
-      sources."@inquirer/type-1.2.0"
+      sources."@inquirer/type-1.2.1"
       (sources."@isaacs/cliui-8.0.2" // {
         dependencies = [
           sources."ansi-regex-6.0.1"
@@ -68457,32 +68168,32 @@ in
           sources."wrap-ansi-8.1.0"
         ];
       })
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
-      sources."@jsii/check-node-1.93.0"
-      sources."@jsii/spec-1.94.0"
+      sources."@jridgewell/trace-mapping-0.3.25"
+      sources."@jsii/check-node-1.95.0"
+      sources."@jsii/spec-1.95.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@sentry-internal/tracing-7.91.0"
-      sources."@sentry/core-7.91.0"
-      (sources."@sentry/node-7.64.0" // {
+      sources."@sentry-internal/tracing-7.107.0"
+      sources."@sentry/core-7.107.0"
+      (sources."@sentry/node-7.104.0" // {
         dependencies = [
-          sources."@sentry-internal/tracing-7.64.0"
-          sources."@sentry/core-7.64.0"
-          sources."@sentry/types-7.64.0"
-          sources."@sentry/utils-7.64.0"
+          sources."@sentry-internal/tracing-7.104.0"
+          sources."@sentry/core-7.104.0"
+          sources."@sentry/types-7.104.0"
+          sources."@sentry/utils-7.104.0"
         ];
       })
-      sources."@sentry/types-7.91.0"
-      sources."@sentry/utils-7.91.0"
+      sources."@sentry/types-7.107.0"
+      sources."@sentry/utils-7.107.0"
       sources."@types/mute-stream-0.0.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.56"
+      sources."@types/react-18.2.67"
       sources."@types/scheduler-0.16.8"
       sources."@types/wrap-ansi-3.0.0"
       sources."@types/yauzl-2.10.3"
@@ -68509,14 +68220,15 @@ in
       })
       sources."arr-rotate-1.0.0"
       sources."array-buffer-byte-length-1.0.1"
+      sources."arraybuffer.prototype.slice-1.0.3"
       sources."astral-regex-2.0.0"
       sources."async-3.2.5"
       sources."at-least-node-1.0.0"
       sources."auto-bind-4.0.0"
-      sources."available-typed-arrays-1.0.6"
+      sources."available-typed-arrays-1.0.7"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
@@ -68526,25 +68238,21 @@ in
       sources."call-bind-1.0.7"
       sources."camelcase-5.3.1"
       sources."case-1.6.3"
-      sources."cdktf-0.20.3"
+      sources."cdktf-0.20.5"
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
-      sources."chokidar-3.5.3"
+      sources."chokidar-3.6.0"
       sources."chownr-1.1.4"
-      sources."ci-info-3.8.0"
+      sources."ci-info-3.9.0"
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
       sources."cli-spinners-2.9.2"
       sources."cli-truncate-2.1.0"
       sources."cli-width-4.1.0"
-      (sources."cliui-8.0.1" // {
-        dependencies = [
-          sources."wrap-ansi-7.0.0"
-        ];
-      })
+      sources."cliui-6.0.0"
       sources."clone-2.1.2"
       sources."code-excerpt-3.0.0"
-      (sources."codemaker-1.93.0" // {
+      (sources."codemaker-1.94.0" // {
         dependencies = [
           sources."camelcase-6.3.0"
           sources."decamelize-5.0.1"
@@ -68553,22 +68261,20 @@ in
       })
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."commonmark-0.30.0"
+      sources."commonmark-0.31.0"
       sources."compress-commons-4.1.2"
       sources."concat-map-0.0.1"
       sources."constructs-10.1.167"
       sources."convert-to-spaces-1.0.2"
-      sources."cookie-0.4.2"
       sources."core-util-is-1.0.3"
       sources."crc-32-1.2.2"
       sources."crc32-stream-4.0.3"
-      (sources."cross-fetch-3.1.8" // {
-        dependencies = [
-          sources."node-fetch-2.7.0"
-        ];
-      })
+      sources."cross-fetch-3.1.8"
       sources."cross-spawn-7.0.3"
       sources."csstype-3.1.3"
+      sources."data-view-buffer-1.0.1"
+      sources."data-view-byte-length-1.0.1"
+      sources."data-view-byte-offset-1.0.0"
       sources."date-format-4.0.14"
       sources."debug-4.3.4"
       sources."decamelize-1.2.0"
@@ -68588,14 +68294,19 @@ in
       sources."detect-port-1.5.1"
       (sources."downlevel-dts-0.11.0" // {
         dependencies = [
-          sources."typescript-5.4.0-dev.20240217"
+          sources."typescript-5.5.0-dev.20240318"
         ];
       })
       sources."eastasianwidth-0.2.0"
       sources."emoji-regex-8.0.0"
-      sources."encoding-0.1.13"
+      (sources."encoding-0.1.13" // {
+        dependencies = [
+          sources."iconv-lite-0.6.3"
+        ];
+      })
       sources."end-of-stream-1.4.4"
-      sources."entities-2.0.3"
+      sources."entities-3.0.1"
+      sources."es-abstract-1.23.2"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
       (sources."es-get-iterator-1.1.3" // {
@@ -68603,16 +68314,15 @@ in
           sources."isarray-2.0.5"
         ];
       })
+      sources."es-object-atoms-1.0.0"
+      sources."es-set-tostringtag-2.0.3"
+      sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.2"
       sources."escape-string-regexp-2.0.0"
       sources."events-3.3.0"
       sources."execa-5.1.1"
       sources."expand-template-2.0.3"
-      (sources."external-editor-3.1.0" // {
-        dependencies = [
-          sources."iconv-lite-0.4.24"
-        ];
-      })
+      sources."external-editor-3.1.0"
       (sources."extract-zip-2.0.1" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -68629,8 +68339,8 @@ in
       })
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
-      sources."flatted-3.2.9"
-      sources."follow-redirects-1.15.4"
+      sources."flatted-3.3.1"
+      sources."follow-redirects-1.15.5"
       sources."for-each-0.3.3"
       (sources."foreground-child-3.1.1" // {
         dependencies = [
@@ -68645,12 +68355,13 @@ in
         ];
       })
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.3.3"
       sources."function-bind-1.1.2"
+      sources."function.prototype.name-1.1.6"
       sources."functions-have-names-1.2.3"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.2.4"
       sources."get-stream-6.0.1"
+      sources."get-symbol-description-1.0.2"
       sources."github-from-package-0.0.0"
       (sources."glob-7.2.3" // {
         dependencies = [
@@ -68658,6 +68369,7 @@ in
         ];
       })
       sources."glob-parent-5.1.2"
+      sources."globalthis-1.0.3"
       sources."gopd-1.0.1"
       sources."graceful-fs-4.2.11"
       sources."graphology-0.25.4"
@@ -68665,26 +68377,26 @@ in
       sources."has-bigints-1.0.2"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."https-proxy-agent-5.0.1"
       sources."human-signals-2.1.0"
-      sources."iconv-lite-0.6.3"
+      sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."ink-3.2.0"
-      (sources."ink-select-input-4.2.1" // {
+      (sources."ink-select-input-4.2.2" // {
         dependencies = [
           sources."react-17.0.2"
         ];
       })
       sources."ink-spinner-4.0.3"
-      sources."ink-table-3.0.0"
+      sources."ink-table-3.1.0"
       sources."ink-testing-library-2.1.0"
       sources."ink-use-stdout-dimensions-1.0.5"
       sources."internal-slot-1.0.7"
@@ -68701,87 +68413,79 @@ in
         ];
       })
       sources."is-core-module-2.13.1"
+      sources."is-data-view-1.0.1"
       sources."is-date-object-1.0.5"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
-      sources."is-map-2.0.2"
+      sources."is-map-2.0.3"
+      sources."is-negative-zero-2.0.3"
       sources."is-number-7.0.0"
       sources."is-number-object-1.0.7"
       sources."is-regex-1.1.4"
-      sources."is-set-2.0.2"
-      sources."is-shared-array-buffer-1.0.2"
+      sources."is-set-2.0.3"
+      sources."is-shared-array-buffer-1.0.3"
       sources."is-stream-2.0.1"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
+      sources."is-typed-array-1.1.13"
       sources."is-valid-domain-0.1.6"
-      sources."is-weakmap-2.0.1"
-      sources."is-weakset-2.0.2"
+      sources."is-weakmap-2.0.2"
+      sources."is-weakref-1.0.2"
+      sources."is-weakset-2.0.3"
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."jackspeak-2.3.6"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
-      (sources."jsii-5.3.2" // {
+      (sources."jsii-5.3.24" // {
         dependencies = [
-          sources."yargs-17.7.2"
+          sources."@jsii/check-node-1.94.0"
         ];
       })
-      (sources."jsii-pacmak-1.93.0" // {
+      (sources."jsii-pacmak-1.94.0" // {
         dependencies = [
+          sources."@jsii/check-node-1.94.0"
           sources."cliui-7.0.4"
+          sources."commonmark-0.30.0"
+          sources."entities-2.0.3"
           sources."escape-string-regexp-4.0.0"
           sources."fs-extra-10.1.0"
-          (sources."jsii-1.94.0" // {
+          (sources."jsii-1.95.0" // {
             dependencies = [
-              sources."@jsii/check-node-1.94.0"
+              sources."@jsii/check-node-1.95.0"
             ];
           })
-          (sources."jsii-rosetta-1.94.0" // {
+          (sources."jsii-rosetta-1.95.0" // {
             dependencies = [
-              sources."@jsii/check-node-1.94.0"
+              sources."@jsii/check-node-1.95.0"
             ];
           })
+          sources."string.prototype.repeat-0.2.0"
           sources."typescript-3.9.10"
           sources."wrap-ansi-7.0.0"
+          sources."y18n-5.0.8"
           sources."yargs-16.2.0"
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-reflect-1.94.0" // {
+      (sources."jsii-reflect-1.95.0" // {
         dependencies = [
-          sources."@jsii/check-node-1.94.0"
           sources."cliui-7.0.4"
           sources."fs-extra-10.1.0"
           sources."wrap-ansi-7.0.0"
+          sources."y18n-5.0.8"
           sources."yargs-16.2.0"
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-rosetta-5.3.7" // {
-        dependencies = [
-          sources."@jsii/check-node-1.94.0"
-          sources."yargs-17.7.2"
-        ];
-      })
-      (sources."jsii-srcmak-0.1.999" // {
+      sources."jsii-rosetta-5.3.27"
+      (sources."jsii-srcmak-0.1.1039" // {
         dependencies = [
           sources."fs-extra-9.1.0"
-          (sources."jsii-5.2.44" // {
-            dependencies = [
-              sources."yargs-17.7.2"
-            ];
-          })
-          sources."typescript-5.2.2"
-          (sources."yargs-15.4.1" // {
-            dependencies = [
-              sources."cliui-6.0.0"
-              sources."y18n-4.0.3"
-              sources."yargs-parser-18.1.3"
-            ];
-          })
+          sources."yargs-15.4.1"
         ];
       })
       sources."json-schema-traverse-1.0.0"
@@ -68804,14 +68508,13 @@ in
       sources."log4js-6.9.1"
       sources."loose-envify-1.4.0"
       sources."lru-cache-6.0.0"
-      sources."lru_map-0.3.3"
       sources."mdurl-1.0.1"
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-3.1.0"
-      (sources."minimatch-5.1.0" // {
+      (sources."minimatch-5.1.6" // {
         dependencies = [
           sources."brace-expansion-2.0.1"
         ];
@@ -68821,24 +68524,24 @@ in
       sources."mkdirp-classic-0.5.3"
       sources."ms-2.1.2"
       sources."mute-stream-1.0.0"
-      sources."nan-2.18.0"
+      sources."nan-2.19.0"
       sources."napi-build-utils-1.0.2"
       sources."ncp-2.0.0"
-      sources."node-abi-3.54.0"
-      sources."node-fetch-2.6.7"
+      sources."node-abi-3.56.0"
+      sources."node-fetch-2.7.0"
       sources."node-gyp-build-4.8.0"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-4.0.1"
       sources."object-assign-4.1.1"
       sources."object-hash-2.2.0"
       sources."object-inspect-1.13.1"
-      sources."object-is-1.1.5"
+      sources."object-is-1.1.6"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.5"
       sources."obliterator-2.0.4"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."oo-ascii-tree-1.94.0"
+      sources."oo-ascii-tree-1.95.0"
       sources."open-7.4.2"
       sources."os-tmpdir-1.0.2"
       sources."p-limit-2.3.0"
@@ -68867,7 +68570,8 @@ in
           sources."path-exists-3.0.0"
         ];
       })
-      sources."prebuild-install-7.1.1"
+      sources."possible-typed-array-names-1.0.0"
+      sources."prebuild-install-7.1.2"
       sources."prettier-2.8.8"
       sources."process-nextick-args-2.0.1"
       sources."pump-3.0.0"
@@ -68896,30 +68600,36 @@ in
       sources."rfdc-1.3.1"
       sources."run-async-3.0.0"
       sources."run-parallel-1.2.0"
+      (sources."safe-array-concat-1.1.2" // {
+        dependencies = [
+          sources."isarray-2.0.5"
+        ];
+      })
       sources."safe-buffer-5.2.1"
+      sources."safe-regex-test-1.0.3"
       sources."safer-buffer-2.1.2"
       sources."sax-1.3.0"
       sources."scheduler-0.20.2"
-      sources."semver-7.5.4"
+      sources."semver-7.6.0"
       (sources."semver-intersect-1.5.0" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
       sources."set-blocking-2.0.0"
-      sources."set-function-length-1.2.1"
-      sources."set-function-name-2.0.1"
+      sources."set-function-length-1.2.2"
+      sources."set-function-name-2.0.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."shell-quote-1.8.1"
       sources."shelljs-0.8.5"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       sources."simple-concat-1.0.1"
       sources."simple-get-4.0.1"
       sources."slice-ansi-3.0.0"
       sources."sort-json-2.0.1"
-      sources."spdx-license-list-6.8.0"
+      sources."spdx-license-list-6.9.0"
       sources."sscaff-1.2.274"
       sources."stack-utils-2.0.6"
       sources."stop-iteration-iterator-1.0.0"
@@ -68929,7 +68639,10 @@ in
       sources."streamroller-3.1.5"
       sources."string-width-4.2.3"
       sources."string-width-cjs-4.2.3"
-      sources."string.prototype.repeat-0.2.0"
+      sources."string.prototype.repeat-1.0.0"
+      sources."string.prototype.trim-1.2.9"
+      sources."string.prototype.trimend-1.0.8"
+      sources."string.prototype.trimstart-1.0.7"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
       sources."strip-ansi-cjs-6.0.1"
@@ -68943,10 +68656,14 @@ in
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
-      sources."tslib-2.6.2"
       sources."tunnel-agent-0.6.0"
       sources."type-fest-0.12.0"
+      sources."typed-array-buffer-1.0.2"
+      sources."typed-array-byte-length-1.0.1"
+      sources."typed-array-byte-offset-1.0.2"
+      sources."typed-array-length-1.0.5"
       sources."typescript-5.3.3"
+      sources."unbox-primitive-1.0.2"
       sources."undici-types-5.26.5"
       sources."universalify-2.0.1"
       sources."uri-js-4.4.1"
@@ -68957,9 +68674,9 @@ in
       sources."whatwg-url-5.0.0"
       sources."which-2.0.2"
       sources."which-boxed-primitive-1.0.2"
-      sources."which-collection-1.0.1"
+      sources."which-collection-1.0.2"
       sources."which-module-2.0.1"
-      sources."which-typed-array-1.1.14"
+      sources."which-typed-array-1.1.15"
       sources."widest-line-3.1.0"
       sources."workerpool-6.5.1"
       sources."wrap-ansi-6.2.0"
@@ -68969,10 +68686,17 @@ in
       sources."xml-js-1.6.11"
       sources."xmlbuilder-15.1.1"
       sources."xstate-4.38.3"
-      sources."y18n-5.0.8"
+      sources."y18n-4.0.3"
       sources."yallist-4.0.0"
-      sources."yargs-17.6.2"
-      sources."yargs-parser-21.1.1"
+      (sources."yargs-17.7.2" // {
+        dependencies = [
+          sources."cliui-8.0.1"
+          sources."wrap-ansi-7.0.0"
+          sources."y18n-5.0.8"
+          sources."yargs-parser-21.1.1"
+        ];
+      })
+      sources."yargs-parser-18.1.3"
       sources."yauzl-2.10.0"
       sources."yoga-layout-prebuilt-1.10.0"
       (sources."zip-stream-4.1.1" // {
@@ -69016,7 +68740,7 @@ in
       sources."meow-12.1.1"
       sources."merge-stream-2.0.0"
       sources."mimic-fn-4.0.0"
-      (sources."npm-run-path-5.2.0" // {
+      (sources."npm-run-path-5.3.0" // {
         dependencies = [
           sources."path-key-4.0.0"
         ];
@@ -69394,7 +69118,7 @@ in
     };
     dependencies = [
       sources."anymatch-3.1.3"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."braces-3.0.2"
       sources."chokidar-3.6.0"
       sources."fill-range-7.0.1"
@@ -69524,7 +69248,7 @@ in
       sources."array-buffer-byte-length-1.0.1"
       sources."arraybuffer.prototype.slice-1.0.3"
       sources."async-2.6.4"
-      sources."available-typed-arrays-1.0.6"
+      sources."available-typed-arrays-1.0.7"
       sources."await-semaphore-0.1.3"
       sources."balanced-match-1.0.2"
       sources."big-integer-1.6.52"
@@ -69549,6 +69273,9 @@ in
           sources."which-1.3.1"
         ];
       })
+      sources."data-view-buffer-1.0.1"
+      sources."data-view-byte-length-1.0.1"
+      sources."data-view-byte-offset-1.0.0"
       sources."date-format-4.0.14"
       sources."debounce-1.2.1"
       sources."debug-4.3.4"
@@ -69558,18 +69285,19 @@ in
       sources."duplexer2-0.1.4"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
-      sources."es-abstract-1.22.4"
+      sources."es-abstract-1.23.2"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
-      sources."es-set-tostringtag-2.0.2"
+      sources."es-object-atoms-1.0.0"
+      sources."es-set-tostringtag-2.0.3"
       sources."es-to-primitive-1.2.1"
       sources."execa-1.0.0"
       sources."fast-diff-1.3.0"
       sources."fb-watchman-2.0.2"
-      sources."flatted-3.2.9"
-      sources."follow-redirects-1.15.5"
+      sources."flatted-3.3.1"
+      sources."follow-redirects-1.15.6"
       sources."for-each-0.3.3"
-      sources."fp-ts-2.16.2"
+      sources."fp-ts-2.16.4"
       sources."fs-extra-8.1.0"
       (sources."fs-minipass-2.1.0" // {
         dependencies = [
@@ -69595,10 +69323,10 @@ in
       sources."graceful-fs-4.2.11"
       sources."has-bigints-1.0.2"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."http-proxy-agent-4.0.1"
       sources."https-proxy-agent-5.0.1"
       sources."iconv-lite-0.6.3"
@@ -69612,12 +69340,13 @@ in
       sources."is-bigint-1.0.4"
       sources."is-boolean-object-1.1.2"
       sources."is-callable-1.2.7"
+      sources."is-data-view-1.0.1"
       sources."is-date-object-1.0.5"
       sources."is-docker-2.2.1"
-      sources."is-negative-zero-2.0.2"
+      sources."is-negative-zero-2.0.3"
       sources."is-number-object-1.0.7"
       sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.2"
+      sources."is-shared-array-buffer-1.0.3"
       sources."is-stream-1.1.0"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
@@ -69668,6 +69397,7 @@ in
       sources."p-finally-1.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
+      sources."possible-typed-array-names-1.0.0"
       sources."process-nextick-args-2.0.1"
       sources."promise.prototype.finally-3.1.8"
       sources."promisify-child-process-4.1.1"
@@ -69683,22 +69413,22 @@ in
       sources."rfc-3986-1.0.1"
       sources."rfdc-1.3.1"
       sources."rimraf-3.0.2"
-      sources."safe-array-concat-1.1.0"
+      sources."safe-array-concat-1.1.2"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-test-1.0.3"
       sources."safer-buffer-2.1.2"
       sources."semver-7.6.0"
-      sources."set-function-length-1.2.1"
-      sources."set-function-name-2.0.1"
+      sources."set-function-length-1.2.2"
+      sources."set-function-name-2.0.2"
       sources."setimmediate-1.0.5"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shell-quote-1.8.1"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       sources."streamroller-3.1.5"
-      sources."string.prototype.trim-1.2.8"
-      sources."string.prototype.trimend-1.0.7"
+      sources."string.prototype.trim-1.2.9"
+      sources."string.prototype.trimend-1.0.8"
       sources."string.prototype.trimstart-1.0.7"
       (sources."string_decoder-1.1.1" // {
         dependencies = [
@@ -69711,10 +69441,10 @@ in
       sources."tr46-0.0.3"
       sources."traverse-0.3.9"
       sources."tslib-2.6.2"
-      sources."typed-array-buffer-1.0.1"
-      sources."typed-array-byte-length-1.0.0"
-      sources."typed-array-byte-offset-1.0.0"
-      sources."typed-array-length-1.0.4"
+      sources."typed-array-buffer-1.0.2"
+      sources."typed-array-byte-length-1.0.1"
+      sources."typed-array-byte-offset-1.0.2"
+      sources."typed-array-length-1.0.5"
       sources."unbox-primitive-1.0.2"
       sources."universalify-0.1.2"
       sources."unzipper-0.10.14"
@@ -69733,7 +69463,7 @@ in
       sources."whatwg-url-5.0.0"
       sources."which-2.0.2"
       sources."which-boxed-primitive-1.0.2"
-      sources."which-typed-array-1.1.14"
+      sources."which-typed-array-1.1.15"
       sources."wrappy-1.0.2"
       sources."yallist-4.0.0"
     ];
@@ -69788,13 +69518,13 @@ in
   coc-pyright = nodeEnv.buildNodePackage {
     name = "coc-pyright";
     packageName = "coc-pyright";
-    version = "1.1.348";
+    version = "1.1.351";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.348.tgz";
-      sha512 = "osEFt4HqNux5pJAOF3yl49GRobmJyoqU4knouYEBhwV+VLSxkbmWID803rFV5rwY1RDBYJ8WusKWqdqoHeRRTw==";
+      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.351.tgz";
+      sha512 = "MDOD0FTzmEHrnuCNLGG+s9fJivOxY/IXFfCdzZnwGJCh4K7T0IjA6lHnS2QGODtMPAM6kEm4hnMbWzDxnSlF2w==";
     };
     dependencies = [
-      sources."pyright-1.1.350"
+      sources."pyright-1.1.354"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -69868,10 +69598,10 @@ in
   coc-rust-analyzer = nodeEnv.buildNodePackage {
     name = "coc-rust-analyzer";
     packageName = "coc-rust-analyzer";
-    version = "0.75.1";
+    version = "0.75.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.75.1.tgz";
-      sha512 = "exYKJ1yJ+FBNQD0fKRoQP2ic0XQEf8WySTh+TnTYrxVfDzlV5aLVTEjfd71l58g0diz4znLPbN3lOnCRybSgdQ==";
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.75.2.tgz";
+      sha512 = "9id+1N8kwvPIDtGHQQsUokyFsJ2G3POgUgRXQhlBn9R/S+FmioyICor1la7+DpP/rBz46heHAApitX9SSKpSuw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -70136,14 +69866,14 @@ in
       sha512 = "+GYR6KTvHQnqu0j1kXT30hRZMuCwG/G52wG/19LSPE+p9Q0i8XFH6582T0btTu39xz2TPsDOGjT1VgyRw2urug==";
     };
     dependencies = [
-      sources."@ampproject/remapping-2.2.1"
+      sources."@ampproject/remapping-2.3.0"
       (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
       sources."@babel/compat-data-7.23.5"
-      sources."@babel/core-7.23.9"
+      sources."@babel/core-7.24.0"
       sources."@babel/generator-7.23.6"
       sources."@babel/helper-compilation-targets-7.23.6"
       sources."@babel/helper-environment-visitor-7.22.20"
@@ -70156,21 +69886,21 @@ in
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.23.9"
+      sources."@babel/helpers-7.24.0"
       (sources."@babel/highlight-7.23.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.23.9"
-      sources."@babel/template-7.23.9"
-      sources."@babel/traverse-7.23.9"
-      sources."@babel/types-7.23.9"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@babel/parser-7.24.0"
+      sources."@babel/template-7.24.0"
+      sources."@babel/traverse-7.24.0"
+      sources."@babel/types-7.24.0"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -70204,7 +69934,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -70241,7 +69971,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.4.673"
+      sources."electron-to-chromium-1.4.710"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -70258,7 +69988,7 @@ in
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."flat-cache-3.2.0"
-      sources."flatted-3.2.9"
+      sources."flatted-3.3.1"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
       sources."gensync-1.0.0-beta.2"
@@ -70273,7 +70003,7 @@ in
       sources."gonzales-pe-4.3.0"
       sources."hard-rejection-2.1.0"
       sources."has-flag-3.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       (sources."hosted-git-info-4.1.0" // {
         dependencies = [
           sources."lru-cache-6.0.0"
@@ -70381,7 +70111,7 @@ in
       sources."postcss-safe-parser-4.0.2"
       sources."postcss-sass-0.4.4"
       sources."postcss-scss-2.1.1"
-      sources."postcss-selector-parser-6.0.15"
+      sources."postcss-selector-parser-6.0.16"
       sources."postcss-syntax-0.36.2"
       sources."postcss-value-parser-4.2.0"
       sources."punycode-2.3.1"
@@ -70487,10 +70217,10 @@ in
   coc-sumneko-lua = nodeEnv.buildNodePackage {
     name = "coc-sumneko-lua";
     packageName = "coc-sumneko-lua";
-    version = "0.0.40";
+    version = "0.0.41";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-sumneko-lua/-/coc-sumneko-lua-0.0.40.tgz";
-      sha512 = "SvWs/4cHh4mul9JYO5JJ+sV8233yPPBgBxfmZalJa7lEd3VIZWN6Qvwn79u75vSzRU+rcBCcRYGnhBtAs3EpxQ==";
+      url = "https://registry.npmjs.org/coc-sumneko-lua/-/coc-sumneko-lua-0.0.41.tgz";
+      sha512 = "gOvCEK1YQbuQgNMPUYPhAD5I78MleBKN6loXBdZ3pDVk+MT0Cj+8QoWqIPcDfCsUhAp25wn0W+RozFj3HvLbIg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -70616,7 +70346,7 @@ in
       sources."function-bind-1.1.2"
       sources."glob-7.2.3"
       sources."has-flag-3.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-core-module-2.13.1"
@@ -70691,7 +70421,7 @@ in
       sha512 = "PItTyCjeAPF0V7wZO+viGCO2PxrDLujRcb4wN4TKUFLni8fw3p5czviA6JFl5s8WLdkfjH6XkrciTwcVWH2srQ==";
     };
     dependencies = [
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -70816,7 +70546,7 @@ in
       sources."fast-levenshtein-2.0.6"
       sources."file-entry-cache-6.0.1"
       sources."flat-cache-3.2.0"
-      sources."flatted-3.2.9"
+      sources."flatted-3.3.1"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
       sources."functional-red-black-tree-1.0.1"
@@ -70827,10 +70557,10 @@ in
       sources."gopd-1.0.1"
       sources."has-flag-3.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."ignore-4.0.6"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
@@ -70878,7 +70608,7 @@ in
       sources."resolve-from-4.0.0"
       sources."rimraf-3.0.2"
       sources."semver-7.6.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       (sources."slice-ansi-4.0.0" // {
@@ -71201,51 +70931,6 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  coinmon = nodeEnv.buildNodePackage {
-    name = "coinmon";
-    packageName = "coinmon";
-    version = "0.0.28";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/coinmon/-/coinmon-0.0.28.tgz";
-      sha512 = "jARqwj0uyTfbcsTr3IDoaGI6ZXUV8e8qVjw+LaRBujvjgsiWypJweze5IZy0/sjNEKlptwB7GDjmuphtBzngFA==";
-    };
-    dependencies = [
-      sources."ansi-regex-3.0.1"
-      sources."ansi-styles-3.2.1"
-      sources."axios-0.21.4"
-      sources."chalk-2.4.2"
-      sources."cli-cursor-2.1.0"
-      sources."cli-spinners-1.3.1"
-      sources."cli-table3-0.5.1"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."colors-1.4.0"
-      sources."commander-2.20.3"
-      sources."escape-string-regexp-1.0.5"
-      sources."follow-redirects-1.15.5"
-      sources."has-flag-3.0.0"
-      sources."is-fullwidth-code-point-2.0.0"
-      sources."log-symbols-2.2.0"
-      sources."mimic-fn-1.2.0"
-      sources."object-assign-4.1.1"
-      sources."onetime-2.0.1"
-      sources."ora-1.4.0"
-      sources."restore-cursor-2.0.0"
-      sources."signal-exit-3.0.7"
-      sources."string-width-2.1.1"
-      sources."strip-ansi-4.0.0"
-      sources."supports-color-5.5.0"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "A cryptocurrency price monitoring tool";
-      homepage = "https://github.com/bichenkk/coinmon#readme";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
   concurrently = nodeEnv.buildNodePackage {
     name = "concurrently";
     packageName = "concurrently";
@@ -71255,7 +70940,7 @@ in
       sha512 = "1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==";
     };
     dependencies = [
-      sources."@babel/runtime-7.23.9"
+      sources."@babel/runtime-7.24.0"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       (sources."chalk-4.1.2" // {
@@ -71345,7 +71030,7 @@ in
       sources."git-semver-tags-7.0.1"
       sources."handlebars-4.7.8"
       sources."has-flag-3.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hosted-git-info-7.0.1"
       sources."is-arrayish-0.2.1"
       sources."is-core-module-2.13.1"
@@ -71388,7 +71073,7 @@ in
       sources."tempfile-5.0.0"
       sources."text-extensions-2.4.0"
       sources."through-2.3.8"
-      sources."type-fest-4.10.2"
+      sources."type-fest-4.12.0"
       sources."uglify-js-3.17.4"
       sources."validate-npm-package-license-3.0.4"
       sources."wordwrap-1.0.0"
@@ -71486,7 +71171,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.5"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -71513,29 +71198,22 @@ in
       sources."cssauron-1.4.0"
       sources."custom-error-instance-2.1.1"
       sources."cycle-onionify-4.0.0"
-      sources."d-1.0.1"
+      sources."d-1.0.2"
       sources."debug-3.2.7"
       sources."define-data-property-1.1.4"
       sources."define-properties-1.2.1"
       sources."delayed-stream-1.0.0"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
-      sources."es5-ext-0.10.62"
+      sources."es5-ext-0.10.64"
       sources."es6-iterator-2.0.3"
       sources."es6-map-0.1.5"
-      (sources."es6-set-0.1.6" // {
-        dependencies = [
-          sources."type-2.7.2"
-        ];
-      })
-      sources."es6-symbol-3.1.3"
+      sources."es6-set-0.1.6"
+      sources."es6-symbol-3.1.4"
       sources."escape-string-regexp-1.0.5"
+      sources."esniff-2.0.1"
       sources."event-emitter-0.3.5"
-      (sources."ext-1.7.0" // {
-        dependencies = [
-          sources."type-2.7.2"
-        ];
-      })
+      sources."ext-1.7.0"
       sources."extend-3.0.2"
       sources."external-editor-2.2.0"
       sources."figures-2.0.0"
@@ -71548,9 +71226,9 @@ in
       sources."has-ansi-2.0.0"
       sources."has-flag-3.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."iconv-lite-0.4.24"
       sources."inherits-2.0.4"
       (sources."inquirer-3.3.0" // {
@@ -71588,7 +71266,7 @@ in
       sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
       sources."pseudomap-1.0.2"
-      sources."qs-6.11.2"
+      sources."qs-6.12.0"
       sources."quicktask-1.1.0"
       sources."raf-3.3.2"
       sources."readable-stream-2.3.8"
@@ -71598,11 +71276,11 @@ in
       sources."rx-lite-aggregates-4.0.8"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."setimmediate-1.0.5"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       sources."snabbdom-0.7.0"
       sources."snabbdom-selector-1.2.1"
@@ -71620,7 +71298,7 @@ in
       sources."symbol-observable-2.0.3"
       sources."through-2.3.8"
       sources."tmp-0.0.33"
-      sources."type-1.2.0"
+      sources."type-2.7.2"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       (sources."variable-diff-1.1.0" // {
@@ -71663,18 +71341,18 @@ in
   cspell = nodeEnv.buildNodePackage {
     name = "cspell";
     packageName = "cspell";
-    version = "8.3.2";
+    version = "8.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cspell/-/cspell-8.3.2.tgz";
-      sha512 = "V8Ub3RO/a5lwSsltW/ib3Z3G/sczKtSpBBN1JChzbSCfEgaY2mJY8JW0BpkSV+Ug6uJitpXNOOaxa3Xr489i7g==";
+      url = "https://registry.npmjs.org/cspell/-/cspell-8.6.0.tgz";
+      sha512 = "aAaVD3v1105OQePCpcdYkHnHxxkxKxxQzFcfJ4tKsH06dlW04Sp1oQLlsjgWDa3y6cdYTpSYj1eSenavBvfOFg==";
     };
     dependencies = [
-      sources."@cspell/cspell-bundled-dicts-8.3.2"
-      sources."@cspell/cspell-json-reporter-8.3.2"
-      sources."@cspell/cspell-pipe-8.3.2"
-      sources."@cspell/cspell-resolver-8.3.2"
-      sources."@cspell/cspell-service-bus-8.3.2"
-      sources."@cspell/cspell-types-8.3.2"
+      sources."@cspell/cspell-bundled-dicts-8.6.0"
+      sources."@cspell/cspell-json-reporter-8.6.0"
+      sources."@cspell/cspell-pipe-8.6.0"
+      sources."@cspell/cspell-resolver-8.6.0"
+      sources."@cspell/cspell-service-bus-8.6.0"
+      sources."@cspell/cspell-types-8.6.0"
       sources."@cspell/dict-ada-4.0.2"
       sources."@cspell/dict-aws-4.0.1"
       sources."@cspell/dict-bash-4.1.3"
@@ -71691,7 +71369,7 @@ in
       sources."@cspell/dict-elixir-4.0.3"
       sources."@cspell/dict-en-common-misspellings-2.0.0"
       sources."@cspell/dict-en-gb-1.1.33"
-      sources."@cspell/dict-en_us-4.3.16"
+      sources."@cspell/dict-en_us-4.3.17"
       sources."@cspell/dict-filetypes-3.0.3"
       sources."@cspell/dict-fonts-4.0.0"
       sources."@cspell/dict-fsharp-1.0.1"
@@ -71712,7 +71390,7 @@ in
       sources."@cspell/dict-npm-5.0.15"
       sources."@cspell/dict-php-4.0.6"
       sources."@cspell/dict-powershell-5.0.3"
-      sources."@cspell/dict-public-licenses-2.0.5"
+      sources."@cspell/dict-public-licenses-2.0.6"
       sources."@cspell/dict-python-4.1.11"
       sources."@cspell/dict-r-2.0.1"
       sources."@cspell/dict-ruby-5.0.2"
@@ -71724,41 +71402,32 @@ in
       sources."@cspell/dict-swift-2.0.1"
       sources."@cspell/dict-typescript-3.1.2"
       sources."@cspell/dict-vue-3.0.0"
-      sources."@cspell/dynamic-import-8.3.2"
-      sources."@cspell/strong-weak-map-8.3.2"
-      sources."@isaacs/cliui-8.0.2"
+      sources."@cspell/dynamic-import-8.6.0"
+      sources."@cspell/strong-weak-map-8.6.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."ansi-regex-5.0.1"
-      sources."ansi-styles-6.2.1"
+      sources."ansi-regex-6.0.1"
       sources."array-timsort-1.0.3"
-      sources."balanced-match-1.0.2"
-      sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."callsites-3.1.0"
       sources."chalk-5.3.0"
       sources."chalk-template-1.1.0"
       sources."clear-module-4.1.2"
-      sources."color-convert-2.0.1"
-      sources."color-name-1.1.4"
-      sources."commander-11.1.0"
+      sources."commander-12.0.0"
       sources."comment-json-4.2.3"
       sources."configstore-6.0.0"
       sources."core-util-is-1.0.3"
-      sources."cross-spawn-7.0.3"
       sources."crypto-random-string-4.0.0"
-      sources."cspell-config-lib-8.3.2"
-      sources."cspell-dictionary-8.3.2"
-      sources."cspell-gitignore-8.3.2"
-      sources."cspell-glob-8.3.2"
-      sources."cspell-grammar-8.3.2"
-      sources."cspell-io-8.3.2"
-      sources."cspell-lib-8.3.2"
-      sources."cspell-trie-lib-8.3.2"
+      sources."cspell-config-lib-8.6.0"
+      sources."cspell-dictionary-8.6.0"
+      sources."cspell-gitignore-8.6.0"
+      sources."cspell-glob-8.6.0"
+      sources."cspell-grammar-8.6.0"
+      sources."cspell-io-8.6.0"
+      sources."cspell-lib-8.6.0"
+      sources."cspell-trie-lib-8.6.0"
       sources."dot-prop-6.0.1"
-      sources."eastasianwidth-0.2.0"
-      sources."emoji-regex-9.2.2"
       sources."esprima-4.0.1"
       sources."fast-equals-5.0.1"
       sources."fast-glob-3.3.2"
@@ -71767,16 +71436,10 @@ in
       sources."file-entry-cache-8.0.0"
       sources."fill-range-7.0.1"
       sources."find-up-simple-1.0.0"
-      sources."flat-cache-4.0.0"
-      sources."flatted-3.2.9"
-      (sources."foreground-child-3.1.1" // {
-        dependencies = [
-          sources."signal-exit-4.1.0"
-        ];
-      })
-      sources."gensequence-6.0.0"
+      sources."flat-cache-4.0.1"
+      sources."flatted-3.3.1"
+      sources."gensequence-7.0.0"
       sources."get-stdin-9.0.0"
-      sources."glob-10.3.10"
       sources."glob-parent-5.1.2"
       sources."global-directory-4.0.1"
       sources."graceful-fs-4.2.11"
@@ -71791,71 +71454,35 @@ in
       sources."imurmurhash-0.1.4"
       sources."ini-4.1.1"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
       sources."is-obj-2.0.0"
       sources."is-typedarray-1.0.0"
-      sources."isexe-2.0.0"
-      sources."jackspeak-2.3.6"
       sources."json-buffer-3.0.1"
       sources."keyv-4.5.4"
-      sources."lru-cache-10.2.0"
+      sources."lru-cache-6.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
-      sources."minimatch-9.0.3"
-      sources."minipass-7.0.4"
       sources."parent-module-2.0.0"
-      sources."path-key-3.1.1"
-      sources."path-scurry-1.10.1"
       sources."picomatch-2.3.1"
       sources."queue-microtask-1.2.3"
       sources."repeat-string-1.6.1"
       sources."resolve-from-5.0.0"
       sources."reusify-1.0.4"
-      sources."rimraf-5.0.5"
       sources."run-parallel-1.2.0"
-      (sources."semver-7.6.0" // {
-        dependencies = [
-          sources."lru-cache-6.0.0"
-        ];
-      })
-      sources."shebang-command-2.0.0"
-      sources."shebang-regex-3.0.0"
+      sources."semver-7.6.0"
       sources."signal-exit-3.0.7"
-      sources."string-width-5.1.2"
-      (sources."string-width-cjs-4.2.3" // {
-        dependencies = [
-          sources."emoji-regex-8.0.0"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
-      (sources."strip-ansi-7.1.0" // {
-        dependencies = [
-          sources."ansi-regex-6.0.1"
-        ];
-      })
-      sources."strip-ansi-cjs-6.0.1"
+      sources."strip-ansi-7.1.0"
       sources."to-regex-range-5.0.1"
       sources."type-fest-1.4.0"
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-string-3.0.0"
       sources."vscode-languageserver-textdocument-1.0.11"
       sources."vscode-uri-3.0.8"
-      sources."which-2.0.2"
-      sources."wrap-ansi-8.1.0"
-      (sources."wrap-ansi-cjs-7.0.0" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."emoji-regex-8.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-5.1.0"
       sources."yallist-4.0.0"
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -72042,13 +71669,13 @@ in
       sources."node-domexception-1.0.0"
       sources."node-fetch-3.3.2"
       sources."nopt-1.0.10"
-      (sources."npm-run-path-5.2.0" // {
+      (sources."npm-run-path-5.3.0" // {
         dependencies = [
           sources."path-key-4.0.0"
         ];
       })
       sources."onetime-6.0.0"
-      sources."open-10.0.3"
+      sources."open-10.1.0"
       sources."path-key-3.1.1"
       sources."require-directory-2.1.1"
       sources."run-applescript-7.0.0"
@@ -72079,14 +71706,14 @@ in
   dotenv-cli = nodeEnv.buildNodePackage {
     name = "dotenv-cli";
     packageName = "dotenv-cli";
-    version = "7.3.0";
+    version = "7.4.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/dotenv-cli/-/dotenv-cli-7.3.0.tgz";
-      sha512 = "314CA4TyK34YEJ6ntBf80eUY+t1XaFLyem1k9P0sX1gn30qThZ5qZr/ZwE318gEnzyYP9yj9HJk6SqwE0upkfw==";
+      url = "https://registry.npmjs.org/dotenv-cli/-/dotenv-cli-7.4.1.tgz";
+      sha512 = "fE1aywjRrWGxV3miaiUr3d2zC/VAiuzEGghi+QzgIA9fEf/M5hLMaRSXb4IxbUAwGmaLi0IozdZddnVU96acag==";
     };
     dependencies = [
       sources."cross-spawn-7.0.3"
-      sources."dotenv-16.4.4"
+      sources."dotenv-16.4.5"
       sources."dotenv-expand-10.0.0"
       sources."isexe-2.0.0"
       sources."minimist-1.2.8"
@@ -72098,6 +71725,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "A global executable to run applications with the ENV variables loaded by dotenv";
+      homepage = "https://github.com/entropitor/dotenv-cli#readme";
       license = "MIT";
     };
     production = true;
@@ -72107,10 +71735,10 @@ in
   dotenv-vault = nodeEnv.buildNodePackage {
     name = "dotenv-vault";
     packageName = "dotenv-vault";
-    version = "1.26.0";
+    version = "1.26.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/dotenv-vault/-/dotenv-vault-1.26.0.tgz";
-      sha512 = "2PNnlprtOdFEG9+hAAZxXegcjlJVZMSy88arnRR4YjwU/PwkDbdtk1uzw/D88D5EZ0b84n7YVQ6RccRXmW/Qzg==";
+      url = "https://registry.npmjs.org/dotenv-vault/-/dotenv-vault-1.26.1.tgz";
+      sha512 = "v+RK6LXpJQWhaelTT2s0b5FQB0qziRBuGCrAgAeDHtgkDEA0NqF7OXYXsrnKTuCPnwBg0FmNJr4lZebCpJnrFA==";
     };
     dependencies = [
       sources."@cspotcode/source-map-support-0.8.1"
@@ -72143,17 +71771,17 @@ in
         ];
       })
       sources."@oclif/screen-3.0.8"
-      sources."@swc/core-1.4.1"
+      sources."@swc/core-1.4.8"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.6"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.4.1"
+      sources."@swc/helpers-0.5.7"
+      sources."@swc/types-0.1.6"
+      sources."@swc/wasm-1.4.8"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
       sources."@types/cli-progress-3.11.5"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."ansi-escapes-4.3.2"
@@ -72167,7 +71795,7 @@ in
       sources."async-3.2.5"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      sources."axios-0.27.2"
+      sources."axios-1.6.8"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
@@ -72201,7 +71829,7 @@ in
       sources."delayed-stream-1.0.0"
       sources."diff-4.0.2"
       sources."dir-glob-3.0.1"
-      sources."dotenv-16.4.4"
+      sources."dotenv-16.4.5"
       sources."ejs-3.1.9"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
@@ -72225,7 +71853,7 @@ in
       })
       sources."filesize-6.4.0"
       sources."fill-range-7.0.1"
-      sources."follow-redirects-1.15.5"
+      sources."follow-redirects-1.15.6"
       sources."form-data-4.0.0"
       sources."fs-constants-1.0.0"
       sources."fs-extra-9.1.0"
@@ -72295,6 +71923,7 @@ in
       sources."path-key-3.1.1"
       sources."path-type-4.0.0"
       sources."picomatch-2.3.1"
+      sources."proxy-from-env-1.1.0"
       sources."pump-3.0.0"
       sources."queue-microtask-1.2.3"
       sources."readable-stream-3.6.2"
@@ -72331,7 +71960,7 @@ in
       sources."tslib-2.6.2"
       sources."tunnel-agent-0.6.0"
       sources."type-fest-0.21.3"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."undici-types-5.26.5"
       sources."universalify-2.0.1"
       sources."util-deprecate-1.0.2"
@@ -72373,7 +72002,7 @@ in
       sources."assert-plus-1.0.0"
       sources."async-2.6.4"
       sources."asynckit-0.4.0"
-      sources."available-typed-arrays-1.0.6"
+      sources."available-typed-arrays-1.0.7"
       sources."aws-sdk-2.1472.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.12.0"
@@ -72412,12 +72041,12 @@ in
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."http-signature-1.3.6"
-      sources."http-status-1.7.3"
+      sources."http-status-1.7.4"
       sources."ieee754-1.1.13"
       sources."inherits-2.0.4"
       sources."ini-2.0.0"
@@ -72461,6 +72090,7 @@ in
       sources."p-queue-6.6.2"
       sources."p-timeout-3.2.0"
       sources."performance-now-2.1.0"
+      sources."possible-typed-array-names-1.0.0"
       sources."process-nextick-args-2.0.1"
       sources."psl-1.9.0"
       sources."punycode-1.3.2"
@@ -72496,8 +72126,8 @@ in
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.1"
       sources."semver-7.5.4"
-      sources."set-function-length-1.2.1"
-      sources."side-channel-1.0.5"
+      sources."set-function-length-1.2.2"
+      sources."side-channel-1.0.6"
       sources."socks5-client-1.2.8"
       sources."socks5-http-client-1.0.4"
       sources."socks5-https-client-1.2.1"
@@ -72528,7 +72158,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."uuid-8.0.0"
       sources."verror-1.10.0"
-      sources."which-typed-array-1.1.14"
+      sources."which-typed-array-1.1.15"
       sources."xml2js-0.5.0"
       sources."xmlbuilder-11.0.1"
       sources."yallist-4.0.0"
@@ -72546,25 +72176,25 @@ in
   "@electron-forge/cli" = nodeEnv.buildNodePackage {
     name = "_at_electron-forge_slash_cli";
     packageName = "@electron-forge/cli";
-    version = "7.2.0";
+    version = "7.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.2.0.tgz";
-      sha512 = "FJ8XzT4w6bTC3trvHHWL67W1zp7g2xmCC5riNa1rjk8Gd2C1j8wf0ul4ch9kbcaEAFaXuXwv98QKXxhCn4aLtQ==";
+      url = "https://registry.npmjs.org/@electron-forge/cli/-/cli-7.3.0.tgz";
+      sha512 = "tIzNYTvCEjJbma7zLWpa03phLKX/pd9f+vG+0HlIpmESMFGWhyLDzunZn0YOOXPRKpCTVg5RpC+BVte1Da4VjQ==";
     };
     dependencies = [
-      sources."@electron-forge/core-7.2.0"
-      sources."@electron-forge/core-utils-7.2.0"
-      sources."@electron-forge/maker-base-7.2.0"
-      sources."@electron-forge/plugin-base-7.2.0"
-      sources."@electron-forge/publisher-base-7.2.0"
-      sources."@electron-forge/shared-types-7.2.0"
-      sources."@electron-forge/template-base-7.2.0"
-      sources."@electron-forge/template-vite-7.2.0"
-      sources."@electron-forge/template-vite-typescript-7.2.0"
-      sources."@electron-forge/template-webpack-7.2.0"
-      sources."@electron-forge/template-webpack-typescript-7.2.0"
-      sources."@electron-forge/tracer-7.2.0"
-      (sources."@electron/asar-3.2.8" // {
+      sources."@electron-forge/core-7.3.0"
+      sources."@electron-forge/core-utils-7.3.0"
+      sources."@electron-forge/maker-base-7.3.0"
+      sources."@electron-forge/plugin-base-7.3.0"
+      sources."@electron-forge/publisher-base-7.3.0"
+      sources."@electron-forge/shared-types-7.3.0"
+      sources."@electron-forge/template-base-7.3.0"
+      sources."@electron-forge/template-vite-7.3.0"
+      sources."@electron-forge/template-vite-typescript-7.3.0"
+      sources."@electron-forge/template-webpack-7.3.0"
+      sources."@electron-forge/template-webpack-typescript-7.3.0"
+      sources."@electron-forge/tracer-7.3.0"
+      (sources."@electron/asar-3.2.9" // {
         dependencies = [
           sources."commander-5.1.0"
         ];
@@ -72596,7 +72226,7 @@ in
           sources."minimatch-9.0.3"
         ];
       })
-      (sources."@electron/windows-sign-1.1.1" // {
+      (sources."@electron/windows-sign-1.1.2" // {
         dependencies = [
           sources."fs-extra-11.2.0"
         ];
@@ -72614,7 +72244,7 @@ in
       sources."@types/cacheable-request-6.0.3"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/responselike-1.0.3"
       sources."@types/yauzl-2.10.3"
       sources."@xmldom/xmldom-0.8.10"
@@ -72767,10 +72397,10 @@ in
       sources."graceful-fs-4.2.11"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-unicode-2.0.1"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."homedir-polyfill-1.0.3"
       sources."hosted-git-info-2.8.9"
       sources."http-cache-semantics-4.1.1"
@@ -72848,7 +72478,7 @@ in
       sources."ms-2.0.0"
       sources."negotiator-0.6.3"
       sources."nice-try-1.0.5"
-      sources."node-abi-3.54.0"
+      sources."node-abi-3.56.0"
       sources."node-api-version-0.2.0"
       sources."node-fetch-2.7.0"
       sources."node-gyp-9.4.1"
@@ -72953,7 +72583,7 @@ in
       sources."signal-exit-3.0.7"
       sources."slice-ansi-3.0.0"
       sources."smart-buffer-4.2.0"
-      sources."socks-2.8.0"
+      sources."socks-2.8.1"
       sources."socks-proxy-agent-7.0.0"
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.21"
@@ -73029,10 +72659,10 @@ in
   eas-cli = nodeEnv.buildNodePackage {
     name = "eas-cli";
     packageName = "eas-cli";
-    version = "7.2.0";
+    version = "7.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eas-cli/-/eas-cli-7.2.0.tgz";
-      sha512 = "LZlPsVaNcTwGomKoBCUmOs9lIgCRQ63/ApWw5q6gcDyCmtuw+lcJCQ8zsGTKjUBMuMjRz1IiguTJ04MRBmR6jA==";
+      url = "https://registry.npmjs.org/eas-cli/-/eas-cli-7.6.0.tgz";
+      sha512 = "Czizaa4bUl4VQC8dQEVFKGfNAguKZBEsUL8Sy4Wgn2uojPQbpB8kp1rTAGf0fgGTJ2GZquf7dpjwXtfKrKqpDw==";
     };
     dependencies = [
       sources."@0no-co/graphql.web-1.0.4"
@@ -73048,7 +72678,7 @@ in
           sources."@jridgewell/trace-mapping-0.3.9"
         ];
       })
-      sources."@expo/apple-utils-1.4.0"
+      sources."@expo/apple-utils-1.7.0"
       (sources."@expo/bunyan-4.0.0" // {
         dependencies = [
           sources."uuid-8.3.2"
@@ -73067,8 +72697,8 @@ in
         ];
       })
       sources."@expo/config-types-50.0.0"
-      sources."@expo/eas-build-job-1.0.61"
-      (sources."@expo/eas-json-7.1.3" // {
+      sources."@expo/eas-build-job-1.0.83"
+      (sources."@expo/eas-json-7.5.0" // {
         dependencies = [
           (sources."@babel/code-frame-7.23.5" // {
             dependencies = [
@@ -73143,7 +72773,7 @@ in
       })
       sources."@expo/sdk-runtime-versions-1.0.0"
       sources."@expo/spawn-async-1.7.0"
-      (sources."@expo/steps-1.0.67" // {
+      (sources."@expo/steps-1.0.85" // {
         dependencies = [
           sources."@expo/spawn-async-1.7.2"
           sources."arg-5.0.2"
@@ -73152,11 +72782,11 @@ in
       sources."@expo/timeago.js-1.0.0"
       sources."@hapi/hoek-9.3.0"
       sources."@hapi/topo-5.1.0"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -73188,18 +72818,18 @@ in
       sources."@sideway/address-4.1.5"
       sources."@sideway/formula-3.0.1"
       sources."@sideway/pinpoint-2.0.0"
-      sources."@swc/core-1.4.1"
+      sources."@swc/core-1.4.8"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.6"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.4.1"
+      sources."@swc/helpers-0.5.7"
+      sources."@swc/types-0.1.6"
+      sources."@swc/wasm-1.4.8"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
       sources."@types/bunyan-1.8.11"
       sources."@types/cli-progress-3.11.5"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@urql/core-4.0.11"
       sources."@urql/exchange-retry-1.2.0"
       sources."@xmldom/xmldom-0.7.13"
@@ -73402,7 +73032,7 @@ in
       sources."mute-stream-0.0.8"
       sources."mv-2.1.1"
       sources."mz-2.7.0"
-      sources."nan-2.18.0"
+      sources."nan-2.19.0"
       sources."nanoid-3.3.4"
       sources."natural-orderby-2.0.3"
       sources."ncp-2.0.0"
@@ -73536,7 +73166,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."turndown-7.1.2"
       sources."type-fest-0.21.3"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."undici-types-5.26.5"
       sources."unique-string-1.0.0"
       sources."universalify-2.0.1"
@@ -73573,7 +73203,7 @@ in
       })
       sources."xmlbuilder-14.0.0"
       sources."yallist-4.0.0"
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
       sources."yn-3.1.1"
       sources."yocto-queue-0.1.0"
     ];
@@ -73616,7 +73246,7 @@ in
     dependencies = [
       sources."@alcalzone/ansi-tokenize-0.1.3"
       sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.56"
+      sources."@types/react-18.2.67"
       sources."@types/scheduler-0.16.8"
       sources."ajv-8.12.0"
       sources."ajv-formats-2.1.1"
@@ -73690,7 +73320,7 @@ in
       sources."merge-stream-2.0.0"
       sources."mimic-fn-4.0.0"
       sources."node-gyp-build-4.8.0"
-      (sources."npm-run-path-5.2.0" // {
+      (sources."npm-run-path-5.3.0" // {
         dependencies = [
           sources."path-key-4.0.0"
         ];
@@ -73792,17 +73422,17 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "8.56.0";
+    version = "8.57.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz";
-      sha512 = "Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz";
+      sha512 = "dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==";
     };
     dependencies = [
       sources."@aashutoshrathi/word-wrap-1.2.6"
       sources."@eslint-community/eslint-utils-4.4.0"
       sources."@eslint-community/regexpp-4.10.0"
       sources."@eslint/eslintrc-2.1.4"
-      sources."@eslint/js-8.56.0"
+      sources."@eslint/js-8.57.0"
       sources."@humanwhocodes/config-array-0.11.14"
       sources."@humanwhocodes/module-importer-1.0.1"
       sources."@humanwhocodes/object-schema-2.0.2"
@@ -73828,7 +73458,7 @@ in
       sources."deep-is-0.1.4"
       sources."doctrine-3.0.0"
       sources."escape-string-regexp-4.0.0"
-      sources."eslint-8.56.0"
+      sources."eslint-8.57.0"
       sources."eslint-scope-7.2.2"
       sources."eslint-visitor-keys-3.4.3"
       sources."espree-9.6.1"
@@ -73843,7 +73473,7 @@ in
       sources."file-entry-cache-6.0.1"
       sources."find-up-5.0.0"
       sources."flat-cache-3.2.0"
-      sources."flatted-3.2.9"
+      sources."flatted-3.3.1"
       sources."fs.realpath-1.0.0"
       sources."glob-7.2.3"
       sources."glob-parent-6.0.2"
@@ -73934,10 +73564,10 @@ in
       sha512 = "qe7LOa0UTf/QQmeEtcoom/ujDdANj5XbgCOJuGnB2rGRx+xzReLfLbOrtSfb/2BM3rKHKGmmL940pyUq6f3ncg==";
     };
     dependencies = [
-      sources."@ampproject/remapping-2.2.1"
+      sources."@ampproject/remapping-2.3.0"
       sources."@babel/code-frame-7.10.4"
       sources."@babel/compat-data-7.23.5"
-      (sources."@babel/core-7.23.9" // {
+      (sources."@babel/core-7.24.0" // {
         dependencies = [
           sources."@babel/code-frame-7.23.5"
           sources."chalk-2.4.2"
@@ -73955,7 +73585,7 @@ in
           sources."yallist-3.1.1"
         ];
       })
-      (sources."@babel/helper-create-class-features-plugin-7.23.10" // {
+      (sources."@babel/helper-create-class-features-plugin-7.24.0" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -73965,7 +73595,7 @@ in
           sources."semver-6.3.1"
         ];
       })
-      sources."@babel/helper-define-polyfill-provider-0.5.0"
+      sources."@babel/helper-define-polyfill-provider-0.6.1"
       sources."@babel/helper-environment-visitor-7.22.20"
       sources."@babel/helper-function-name-7.23.0"
       sources."@babel/helper-hoist-variables-7.22.5"
@@ -73973,7 +73603,7 @@ in
       sources."@babel/helper-module-imports-7.22.15"
       sources."@babel/helper-module-transforms-7.23.3"
       sources."@babel/helper-optimise-call-expression-7.22.5"
-      sources."@babel/helper-plugin-utils-7.22.5"
+      sources."@babel/helper-plugin-utils-7.24.0"
       sources."@babel/helper-remap-async-to-generator-7.22.20"
       sources."@babel/helper-replace-supers-7.22.20"
       sources."@babel/helper-simple-access-7.22.5"
@@ -73983,19 +73613,19 @@ in
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/helper-validator-option-7.23.5"
       sources."@babel/helper-wrap-function-7.22.20"
-      sources."@babel/helpers-7.23.9"
+      sources."@babel/helpers-7.24.0"
       (sources."@babel/highlight-7.23.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.23.9"
+      sources."@babel/parser-7.24.0"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3"
       sources."@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7"
       sources."@babel/plugin-proposal-async-generator-functions-7.20.7"
       sources."@babel/plugin-proposal-class-properties-7.18.6"
-      sources."@babel/plugin-proposal-decorators-7.23.9"
+      sources."@babel/plugin-proposal-decorators-7.24.0"
       sources."@babel/plugin-proposal-export-default-from-7.23.3"
       sources."@babel/plugin-proposal-nullish-coalescing-operator-7.18.6"
       sources."@babel/plugin-proposal-object-rest-spread-7.20.7"
@@ -74005,7 +73635,7 @@ in
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
       sources."@babel/plugin-syntax-class-static-block-7.14.5"
-      sources."@babel/plugin-syntax-decorators-7.23.3"
+      sources."@babel/plugin-syntax-decorators-7.24.0"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-export-default-from-7.23.3"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
@@ -74055,7 +73685,7 @@ in
       sources."@babel/plugin-transform-new-target-7.23.3"
       sources."@babel/plugin-transform-nullish-coalescing-operator-7.23.4"
       sources."@babel/plugin-transform-numeric-separator-7.23.4"
-      sources."@babel/plugin-transform-object-rest-spread-7.23.4"
+      sources."@babel/plugin-transform-object-rest-spread-7.24.0"
       sources."@babel/plugin-transform-object-super-7.23.3"
       sources."@babel/plugin-transform-optional-catch-binding-7.23.4"
       sources."@babel/plugin-transform-optional-chaining-7.23.4"
@@ -74069,7 +73699,7 @@ in
       sources."@babel/plugin-transform-react-jsx-source-7.23.3"
       sources."@babel/plugin-transform-regenerator-7.23.3"
       sources."@babel/plugin-transform-reserved-words-7.23.3"
-      (sources."@babel/plugin-transform-runtime-7.23.9" // {
+      (sources."@babel/plugin-transform-runtime-7.24.0" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -74084,7 +73714,7 @@ in
       sources."@babel/plugin-transform-unicode-property-regex-7.23.3"
       sources."@babel/plugin-transform-unicode-regex-7.23.3"
       sources."@babel/plugin-transform-unicode-sets-regex-7.23.3"
-      (sources."@babel/preset-env-7.23.9" // {
+      (sources."@babel/preset-env-7.24.0" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -74092,25 +73722,25 @@ in
       sources."@babel/preset-modules-0.1.6-no-external-plugins"
       sources."@babel/regjsgen-0.8.0"
       sources."@babel/runtime-7.9.0"
-      (sources."@babel/template-7.23.9" // {
+      (sources."@babel/template-7.24.0" // {
         dependencies = [
           sources."@babel/code-frame-7.23.5"
           sources."chalk-2.4.2"
         ];
       })
-      (sources."@babel/traverse-7.23.9" // {
+      (sources."@babel/traverse-7.24.0" // {
         dependencies = [
           sources."@babel/code-frame-7.23.5"
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/types-7.23.9"
+      sources."@babel/types-7.24.0"
       sources."@colors/colors-1.5.0"
       sources."@expo/apple-utils-1.0.0"
       sources."@expo/bunyan-4.0.0"
       (sources."@expo/cli-0.7.3" // {
         dependencies = [
-          sources."@babel/runtime-7.23.9"
+          sources."@babel/runtime-7.24.0"
           (sources."@expo/config-8.0.5" // {
             dependencies = [
               sources."semver-7.3.2"
@@ -74267,12 +73897,12 @@ in
         ];
       })
       sources."@jest/types-26.6.2"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
-      sources."@jridgewell/source-map-0.3.5"
+      sources."@jridgewell/set-array-1.2.1"
+      sources."@jridgewell/source-map-0.3.6"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@leichtgewicht/ip-codec-2.0.4"
       sources."@module-federation/runtime-0.0.8"
       sources."@module-federation/runtime-tools-0.0.8"
@@ -74294,17 +73924,17 @@ in
         ];
       })
       sources."@react-native/normalize-color-2.1.0"
-      sources."@rspack/binding-0.5.4"
-      sources."@rspack/binding-darwin-arm64-0.5.4"
-      sources."@rspack/binding-darwin-x64-0.5.4"
-      sources."@rspack/binding-linux-arm64-gnu-0.5.4"
-      sources."@rspack/binding-linux-arm64-musl-0.5.4"
-      sources."@rspack/binding-linux-x64-gnu-0.5.4"
-      sources."@rspack/binding-linux-x64-musl-0.5.4"
-      sources."@rspack/binding-win32-arm64-msvc-0.5.4"
-      sources."@rspack/binding-win32-ia32-msvc-0.5.4"
-      sources."@rspack/binding-win32-x64-msvc-0.5.4"
-      (sources."@rspack/core-0.5.4" // {
+      sources."@rspack/binding-0.5.7"
+      sources."@rspack/binding-darwin-arm64-0.5.7"
+      sources."@rspack/binding-darwin-x64-0.5.7"
+      sources."@rspack/binding-linux-arm64-gnu-0.5.7"
+      sources."@rspack/binding-linux-arm64-musl-0.5.7"
+      sources."@rspack/binding-linux-x64-gnu-0.5.7"
+      sources."@rspack/binding-linux-x64-musl-0.5.7"
+      sources."@rspack/binding-win32-arm64-msvc-0.5.7"
+      sources."@rspack/binding-win32-ia32-msvc-0.5.7"
+      sources."@rspack/binding-win32-x64-msvc-0.5.7"
+      (sources."@rspack/core-0.5.7" // {
         dependencies = [
           sources."graceful-fs-4.2.10"
         ];
@@ -74314,7 +73944,7 @@ in
       sources."@sideway/formula-3.0.1"
       sources."@sideway/pinpoint-2.0.0"
       sources."@sindresorhus/is-4.6.0"
-      sources."@swc/helpers-0.5.6"
+      sources."@swc/helpers-0.5.7"
       sources."@szmarczak/http-timer-4.0.6"
       sources."@trysound/sax-0.2.0"
       sources."@types/body-parser-1.19.5"
@@ -74322,7 +73952,7 @@ in
       sources."@types/cacheable-request-6.0.3"
       sources."@types/connect-3.4.38"
       sources."@types/connect-history-api-fallback-1.5.4"
-      sources."@types/eslint-8.56.2"
+      sources."@types/eslint-8.56.5"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/express-4.17.21"
@@ -74339,9 +73969,9 @@ in
       sources."@types/keyv-3.1.4"
       sources."@types/mime-1.3.5"
       sources."@types/minimatch-5.1.2"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/node-forge-1.3.11"
-      sources."@types/qs-6.9.11"
+      sources."@types/qs-6.9.13"
       sources."@types/range-parser-1.2.7"
       sources."@types/responselike-1.0.3"
       sources."@types/retry-0.12.5"
@@ -74354,21 +73984,21 @@ in
       sources."@types/yargs-parser-21.0.3"
       sources."@urql/core-2.3.6"
       sources."@urql/exchange-retry-0.3.0"
-      sources."@webassemblyjs/ast-1.11.6"
+      sources."@webassemblyjs/ast-1.12.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.6"
       sources."@webassemblyjs/helper-api-error-1.11.6"
-      sources."@webassemblyjs/helper-buffer-1.11.6"
+      sources."@webassemblyjs/helper-buffer-1.12.1"
       sources."@webassemblyjs/helper-numbers-1.11.6"
       sources."@webassemblyjs/helper-wasm-bytecode-1.11.6"
-      sources."@webassemblyjs/helper-wasm-section-1.11.6"
+      sources."@webassemblyjs/helper-wasm-section-1.12.1"
       sources."@webassemblyjs/ieee754-1.11.6"
       sources."@webassemblyjs/leb128-1.11.6"
       sources."@webassemblyjs/utf8-1.11.6"
-      sources."@webassemblyjs/wasm-edit-1.11.6"
-      sources."@webassemblyjs/wasm-gen-1.11.6"
-      sources."@webassemblyjs/wasm-opt-1.11.6"
-      sources."@webassemblyjs/wasm-parser-1.11.6"
-      sources."@webassemblyjs/wast-printer-1.11.6"
+      sources."@webassemblyjs/wasm-edit-1.12.1"
+      sources."@webassemblyjs/wasm-gen-1.12.1"
+      sources."@webassemblyjs/wasm-opt-1.12.1"
+      sources."@webassemblyjs/wasm-parser-1.12.1"
+      sources."@webassemblyjs/wast-printer-1.12.1"
       sources."@xmldom/xmldom-0.7.13"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
@@ -74416,13 +74046,21 @@ in
       sources."axios-0.21.1"
       sources."babel-loader-8.3.0"
       sources."babel-plugin-module-resolver-4.1.0"
-      (sources."babel-plugin-polyfill-corejs2-0.4.8" // {
+      (sources."babel-plugin-polyfill-corejs2-0.4.10" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."babel-plugin-polyfill-corejs3-0.9.0"
-      sources."babel-plugin-polyfill-regenerator-0.5.5"
+      (sources."babel-plugin-polyfill-corejs3-0.9.0" // {
+        dependencies = [
+          sources."@babel/helper-define-polyfill-provider-0.5.0"
+        ];
+      })
+      (sources."babel-plugin-polyfill-regenerator-0.5.5" // {
+        dependencies = [
+          sources."@babel/helper-define-polyfill-provider-0.5.0"
+        ];
+      })
       sources."babel-plugin-react-native-web-0.18.12"
       sources."babel-preset-expo-9.3.2"
       sources."balanced-match-1.0.2"
@@ -74431,7 +74069,7 @@ in
       sources."better-opn-3.0.2"
       sources."big-integer-1.6.52"
       sources."big.js-5.2.2"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."blueimp-md5-2.19.0"
       (sources."body-parser-1.20.2" // {
         dependencies = [
@@ -74474,7 +74112,7 @@ in
       sources."camel-case-4.1.2"
       sources."camelcase-6.3.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -74555,7 +74193,7 @@ in
           sources."slash-4.0.0"
         ];
       })
-      sources."core-js-compat-3.36.0"
+      sources."core-js-compat-3.36.1"
       sources."core-util-is-1.0.3"
       sources."cross-fetch-3.1.8"
       sources."cross-spawn-7.0.3"
@@ -74619,7 +74257,7 @@ in
       sources."duplexer3-0.1.5"
       sources."eastasianwidth-0.2.0"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.673"
+      sources."electron-to-chromium-1.4.710"
       sources."emoji-regex-9.2.2"
       sources."emojis-list-3.0.0"
       sources."encodeurl-1.0.2"
@@ -74666,7 +74304,7 @@ in
       })
       (sources."expo-48.0.21" // {
         dependencies = [
-          sources."@babel/runtime-7.23.9"
+          sources."@babel/runtime-7.24.0"
           (sources."@expo/config-8.0.5" // {
             dependencies = [
               sources."semver-7.3.2"
@@ -74787,7 +74425,7 @@ in
       sources."find-cache-dir-3.3.2"
       sources."find-up-5.0.0"
       sources."find-yarn-workspace-root-2.0.0"
-      sources."follow-redirects-1.15.5"
+      sources."follow-redirects-1.15.6"
       sources."fontfaceobserver-2.3.0"
       (sources."foreground-child-3.1.1" // {
         dependencies = [
@@ -74825,11 +74463,11 @@ in
       sources."handle-thing-2.0.1"
       sources."has-flag-3.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."hasbin-1.2.3"
       sources."hashids-1.1.4"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."he-1.2.0"
       (sources."hosted-git-info-3.0.8" // {
         dependencies = [
@@ -74837,7 +74475,7 @@ in
         ];
       })
       sources."hpack.js-2.1.6"
-      sources."html-entities-2.4.0"
+      sources."html-entities-2.5.2"
       (sources."html-minifier-terser-6.1.0" // {
         dependencies = [
           sources."commander-8.3.0"
@@ -74927,7 +74565,7 @@ in
         ];
       })
       sources."jimp-compact-0.16.1"
-      sources."joi-17.12.1"
+      sources."joi-17.12.2"
       sources."join-component-1.1.0"
       sources."js-tokens-4.0.0"
       (sources."js-yaml-3.14.1" // {
@@ -74999,7 +74637,7 @@ in
       sources."mime-types-2.1.35"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
-      (sources."mini-css-extract-plugin-2.8.0" // {
+      (sources."mini-css-extract-plugin-2.8.1" // {
         dependencies = [
           sources."ajv-keywords-5.1.0"
           sources."schema-utils-4.2.0"
@@ -75155,7 +74793,7 @@ in
         ];
       })
       sources."pngjs-3.4.0"
-      sources."postcss-8.4.35"
+      sources."postcss-8.4.36"
       sources."postcss-calc-8.2.4"
       sources."postcss-colormin-5.3.1"
       sources."postcss-convert-values-5.1.3"
@@ -75185,7 +74823,7 @@ in
       sources."postcss-ordered-values-5.1.3"
       sources."postcss-reduce-initial-5.1.2"
       sources."postcss-reduce-transforms-5.1.0"
-      sources."postcss-selector-parser-6.0.15"
+      sources."postcss-selector-parser-6.0.16"
       sources."postcss-svgo-5.1.0"
       sources."postcss-unique-selectors-5.1.1"
       sources."postcss-value-parser-4.2.0"
@@ -75321,13 +74959,13 @@ in
           sources."statuses-1.4.0"
         ];
       })
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."setimmediate-1.0.5"
       sources."setprototypeof-1.2.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."shell-quote-1.8.1"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       (sources."simple-plist-1.4.0" // {
         dependencies = [
@@ -75340,7 +74978,7 @@ in
       sources."sockjs-0.3.24"
       sources."source-list-map-2.0.1"
       sources."source-map-0.6.1"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       (sources."source-map-loader-3.0.2" // {
         dependencies = [
           sources."iconv-lite-0.6.3"
@@ -75439,7 +75077,7 @@ in
         ];
       })
       sources."terminal-link-2.1.1"
-      (sources."terser-5.27.1" // {
+      (sources."terser-5.29.2" // {
         dependencies = [
           sources."commander-2.20.3"
           sources."source-map-support-0.5.21"
@@ -75501,14 +75139,14 @@ in
       sources."valid-url-1.0.9"
       sources."validate-npm-package-name-3.0.0"
       sources."vary-1.1.2"
-      sources."watchpack-2.4.0"
+      sources."watchpack-2.4.1"
       sources."wbuf-1.7.3"
       sources."wcwidth-1.0.1"
       sources."webidl-conversions-3.0.1"
-      (sources."webpack-5.90.2" // {
+      (sources."webpack-5.90.3" // {
         dependencies = [
           sources."ajv-6.12.6"
-          sources."enhanced-resolve-5.15.0"
+          sources."enhanced-resolve-5.16.0"
           sources."json-parse-even-better-errors-2.3.1"
           sources."json-schema-traverse-0.4.1"
           sources."schema-utils-3.3.0"
@@ -75524,13 +75162,12 @@ in
         dependencies = [
           sources."@types/retry-0.12.0"
           sources."ajv-keywords-5.1.0"
-          sources."body-parser-1.20.1"
           sources."content-disposition-0.5.4"
           sources."cookie-0.5.0"
           sources."debug-2.6.9"
           sources."default-gateway-6.0.3"
           sources."execa-5.1.1"
-          sources."express-4.18.2"
+          sources."express-4.18.3"
           sources."finalhandler-1.2.0"
           sources."get-stream-6.0.1"
           sources."ipaddr.js-2.1.0"
@@ -75539,7 +75176,6 @@ in
           sources."npm-run-path-4.0.1"
           sources."onetime-5.1.2"
           sources."p-retry-4.6.2"
-          sources."raw-body-2.5.1"
           sources."retry-0.13.1"
           sources."rimraf-3.0.2"
           sources."schema-utils-4.2.0"
@@ -75628,10 +75264,10 @@ in
       sha512 = "sA4bbCHFe8DqtRjlIVD5Hga+tDpYOgoOOG+NKyLFYJfLrxlmU28RmSjr+pC15q0xU67g7Ut3jDskasmjeLgRsg==";
     };
     dependencies = [
-      sources."@ampproject/remapping-2.2.1"
+      sources."@ampproject/remapping-2.3.0"
       sources."@babel/code-frame-7.23.5"
       sources."@babel/compat-data-7.23.5"
-      sources."@babel/core-7.23.9"
+      sources."@babel/core-7.24.0"
       sources."@babel/generator-7.23.6"
       sources."@babel/helper-annotate-as-pure-7.22.5"
       sources."@babel/helper-compilation-targets-7.23.6"
@@ -75640,34 +75276,34 @@ in
       sources."@babel/helper-hoist-variables-7.22.5"
       sources."@babel/helper-module-imports-7.22.15"
       sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-plugin-utils-7.22.5"
+      sources."@babel/helper-plugin-utils-7.24.0"
       sources."@babel/helper-simple-access-7.22.5"
       sources."@babel/helper-split-export-declaration-7.22.6"
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.23.9"
+      sources."@babel/helpers-7.24.0"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.9"
+      sources."@babel/parser-7.24.0"
       sources."@babel/plugin-proposal-object-rest-spread-7.20.7"
       sources."@babel/plugin-syntax-jsx-7.23.3"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
       sources."@babel/plugin-transform-destructuring-7.23.3"
       sources."@babel/plugin-transform-parameters-7.23.3"
       sources."@babel/plugin-transform-react-jsx-7.23.4"
-      sources."@babel/template-7.23.9"
-      sources."@babel/traverse-7.23.9"
-      sources."@babel/types-7.23.9"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@babel/template-7.24.0"
+      sources."@babel/traverse-7.24.0"
+      sources."@babel/types-7.24.0"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@types/minimist-1.2.5"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/normalize-package-data-2.4.4"
       sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.56"
+      sources."@types/react-18.2.67"
       sources."@types/scheduler-0.16.8"
       sources."@types/yauzl-2.10.3"
       sources."@types/yoga-layout-1.9.2"
@@ -75695,7 +75331,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       sources."chalk-2.4.2"
       sources."chownr-1.1.4"
       sources."ci-info-2.0.0"
@@ -75721,7 +75357,7 @@ in
       })
       sources."delay-5.0.0"
       sources."devtools-protocol-0.0.981744"
-      sources."electron-to-chromium-1.4.673"
+      sources."electron-to-chromium-1.4.710"
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
@@ -75741,7 +75377,7 @@ in
       sources."globals-11.12.0"
       sources."hard-rejection-2.1.0"
       sources."has-flag-3.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       (sources."hosted-git-info-4.1.0" // {
         dependencies = [
           sources."lru-cache-6.0.0"
@@ -75938,7 +75574,7 @@ in
       sources."@inquirer/prompts-3.3.2"
       sources."@inquirer/rawlist-1.2.16"
       sources."@inquirer/select-1.3.3"
-      sources."@inquirer/type-1.2.0"
+      sources."@inquirer/type-1.2.1"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.9"
@@ -75963,18 +75599,18 @@ in
       sources."@oclif/plugin-help-5.2.20"
       sources."@oclif/plugin-plugins-2.4.7"
       sources."@oclif/screen-1.0.4"
-      sources."@swc/core-1.4.1"
+      sources."@swc/core-1.4.8"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.6"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.4.1"
+      sources."@swc/helpers-0.5.7"
+      sources."@swc/types-0.1.6"
+      sources."@swc/wasm-1.4.8"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
       sources."@types/cli-progress-3.11.5"
       sources."@types/mute-stream-0.0.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/wrap-ansi-3.0.0"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
@@ -76058,7 +75694,7 @@ in
       sources."create-require-1.1.1"
       sources."cross-fetch-3.1.8"
       sources."cross-spawn-7.0.3"
-      sources."csv-parse-5.5.3"
+      sources."csv-parse-5.5.5"
       sources."csv-stream-0.2.0"
       sources."debug-4.3.4"
       sources."deep-is-0.1.4"
@@ -76220,7 +75856,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."type-check-0.3.2"
       sources."type-fest-0.21.3"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."undici-types-5.26.5"
       sources."universalify-2.0.1"
       sources."util-deprecate-1.0.2"
@@ -76234,7 +75870,7 @@ in
       sources."wordwrap-1.0.0"
       sources."wrap-ansi-6.2.0"
       sources."yallist-4.0.0"
-      sources."yarn-1.22.21"
+      sources."yarn-1.22.22"
       sources."yn-3.1.1"
     ];
     buildInputs = globalBuildInputs;
@@ -76305,7 +75941,7 @@ in
       sha512 = "+eT/06NHwPXfzUSe4vDjjam9gZtalhwDYOq0xX6va88BLZd8APbo17Ajkz4hdnr2Gpls5+xFUqMeiklAQtBHYQ==";
     };
     dependencies = [
-      sources."@ljharb/through-2.3.12"
+      sources."@ljharb/through-2.3.13"
       sources."aggregate-error-5.0.0"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-6.0.1"
@@ -76348,15 +75984,15 @@ in
       sources."gopd-1.0.1"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."human-signals-5.0.0"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."indent-string-5.0.0"
       sources."inherits-2.0.4"
-      (sources."inquirer-9.2.14" // {
+      (sources."inquirer-9.2.16" // {
         dependencies = [
           sources."ansi-regex-5.0.1"
           sources."emoji-regex-8.0.0"
@@ -76390,7 +76026,7 @@ in
       sources."merge-stream-2.0.0"
       sources."mimic-fn-4.0.0"
       sources."mute-stream-1.0.0"
-      (sources."npm-run-path-5.2.0" // {
+      (sources."npm-run-path-5.3.0" // {
         dependencies = [
           sources."path-key-4.0.0"
         ];
@@ -76423,7 +76059,7 @@ in
       sources."rxjs-7.8.1"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
@@ -76486,7 +76122,7 @@ in
       sources."@scure/bip39-1.2.2"
       sources."@types/atob-2.1.4"
       sources."@types/inquirer-6.5.0"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/through-0.0.33"
       sources."ajv-6.12.6"
       sources."ansi-escapes-4.3.2"
@@ -76687,7 +76323,7 @@ in
       sources."async-1.5.2"
       sources."async-each-1.0.6"
       sources."atob-2.1.2"
-      sources."available-typed-arrays-1.0.6"
+      sources."available-typed-arrays-1.0.7"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -76810,7 +76446,7 @@ in
       sources."graceful-fs-4.2.11"
       sources."has-bigints-1.0.2"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
       sources."has-value-1.0.0"
@@ -76819,7 +76455,7 @@ in
           sources."kind-of-4.0.0"
         ];
       })
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."i-0.3.7"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
@@ -76841,7 +76477,7 @@ in
       sources."is-extendable-1.0.1"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
-      sources."is-map-2.0.2"
+      sources."is-map-2.0.3"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
@@ -76851,13 +76487,13 @@ in
       sources."is-obj-1.0.1"
       sources."is-plain-object-2.0.4"
       sources."is-regex-1.1.4"
-      sources."is-set-2.0.2"
-      sources."is-shared-array-buffer-1.0.2"
+      sources."is-set-2.0.3"
+      sources."is-shared-array-buffer-1.0.3"
       sources."is-stream-2.0.1"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
-      sources."is-weakmap-2.0.1"
-      sources."is-weakset-2.0.2"
+      sources."is-weakmap-2.0.2"
+      sources."is-weakset-2.0.3"
       sources."is-windows-1.0.2"
       sources."isarray-2.0.5"
       sources."isobject-3.0.1"
@@ -76885,7 +76521,7 @@ in
       })
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
-      sources."nan-2.18.0"
+      sources."nan-2.19.0"
       sources."nanomatch-1.2.13"
       (sources."nconf-0.6.9" // {
         dependencies = [
@@ -76908,7 +76544,7 @@ in
         ];
       })
       sources."object-inspect-1.13.1"
-      sources."object-is-1.1.5"
+      sources."object-is-1.1.6"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.5"
@@ -76923,6 +76559,7 @@ in
       sources."pify-3.0.0"
       sources."pkginfo-0.3.1"
       sources."posix-character-classes-0.1.1"
+      sources."possible-typed-array-names-1.0.0"
       (sources."prettyjson-1.2.5" // {
         dependencies = [
           sources."colors-1.4.0"
@@ -76956,8 +76593,8 @@ in
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safe-stable-stringify-2.4.3"
-      sources."set-function-length-1.2.1"
-      sources."set-function-name-2.0.1"
+      sources."set-function-length-1.2.2"
+      sources."set-function-name-2.0.2"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -76965,7 +76602,7 @@ in
         ];
       })
       sources."shush-1.0.4"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       sources."simple-swizzle-0.2.2"
       (sources."snapdragon-0.8.2" // {
@@ -77039,9 +76676,9 @@ in
         ];
       })
       sources."which-boxed-primitive-1.0.2"
-      sources."which-collection-1.0.1"
-      sources."which-typed-array-1.1.14"
-      (sources."winston-3.11.0" // {
+      sources."which-collection-1.0.2"
+      sources."which-typed-array-1.1.15"
+      (sources."winston-3.12.0" // {
         dependencies = [
           sources."async-3.2.5"
           sources."readable-stream-3.6.2"
@@ -77070,10 +76707,10 @@ in
   fx = nodeEnv.buildNodePackage {
     name = "fx";
     packageName = "fx";
-    version = "31.0.0";
+    version = "33.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/fx/-/fx-31.0.0.tgz";
-      sha512 = "OoeYSPKqNKmfnH4s+rGYI0c8OZmqqOOXsUtqy0YyHqQQoQSDiDs3m3M9uXKx5OQR+jDx7/FhYqpO3kl/As/xgg==";
+      url = "https://registry.npmjs.org/fx/-/fx-33.0.0.tgz";
+      sha512 = "uW/UAi9G04+o7dD/RyIH7mP9Cyf12TdiaWQ19QbvnxkKQ2yiffXiZMz65zqbWMstLd2vwla++G9lMabG3nXxYQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -77102,7 +76739,7 @@ in
       })
       sources."@types/bn.js-5.1.5"
       sources."@types/lru-cache-5.1.1"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/seedrandom-3.0.1"
       sources."abstract-level-1.0.3"
       (sources."abstract-leveldown-7.2.0" // {
@@ -77149,14 +76786,14 @@ in
       sha512 = "Wxsfgfp5jDciXOR00aKQk9SQANXoYaftNZz6LGGkRZcwMFjhPal1LdCioyy3sOXrRvB0uUsACrGLS1ghXxd2QA==";
     };
     dependencies = [
-      sources."@ampproject/remapping-2.2.1"
+      sources."@ampproject/remapping-2.3.0"
       (sources."@babel/code-frame-7.23.5" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
       sources."@babel/compat-data-7.23.5"
-      (sources."@babel/core-7.23.9" // {
+      (sources."@babel/core-7.24.0" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -77168,7 +76805,7 @@ in
           sources."semver-6.3.1"
         ];
       })
-      (sources."@babel/helper-create-class-features-plugin-7.23.10" // {
+      (sources."@babel/helper-create-class-features-plugin-7.24.0" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -77180,7 +76817,7 @@ in
       sources."@babel/helper-module-imports-7.22.15"
       sources."@babel/helper-module-transforms-7.23.3"
       sources."@babel/helper-optimise-call-expression-7.22.5"
-      sources."@babel/helper-plugin-utils-7.22.5"
+      sources."@babel/helper-plugin-utils-7.24.0"
       sources."@babel/helper-replace-supers-7.22.20"
       sources."@babel/helper-simple-access-7.22.5"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.22.5"
@@ -77188,29 +76825,29 @@ in
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.23.9"
+      sources."@babel/helpers-7.24.0"
       (sources."@babel/highlight-7.23.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.23.9"
+      sources."@babel/parser-7.24.0"
       sources."@babel/plugin-syntax-jsx-7.23.3"
       sources."@babel/plugin-syntax-typescript-7.23.3"
       sources."@babel/plugin-transform-modules-commonjs-7.23.3"
       sources."@babel/plugin-transform-typescript-7.23.6"
       sources."@babel/preset-typescript-7.23.3"
-      sources."@babel/runtime-7.23.9"
-      sources."@babel/template-7.23.9"
-      sources."@babel/traverse-7.23.9"
-      sources."@babel/types-7.23.9"
+      sources."@babel/runtime-7.24.0"
+      sources."@babel/template-7.24.0"
+      sources."@babel/traverse-7.24.0"
+      sources."@babel/types-7.24.0"
       sources."@hapi/hoek-9.3.0"
       sources."@hapi/topo-5.1.0"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@lmdb/lmdb-darwin-arm64-2.5.3"
       sources."@lmdb/lmdb-darwin-x64-2.5.3"
       sources."@lmdb/lmdb-linux-arm-2.5.3"
@@ -77229,7 +76866,7 @@ in
       sources."@types/common-tags-1.8.4"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/node-fetch-2.6.11"
       sources."@types/responselike-1.0.3"
       sources."@types/yoga-layout-1.9.2"
@@ -77242,11 +76879,9 @@ in
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-3.2.1"
       sources."asynckit-0.4.0"
-      sources."balanced-match-1.0.2"
       sources."better-opn-2.1.1"
       sources."boolbase-1.0.0"
       sources."boxen-5.1.2"
-      sources."brace-expansion-1.1.11"
       sources."browserslist-4.23.0"
       sources."cacheable-lookup-5.0.4"
       (sources."cacheable-request-7.0.4" // {
@@ -77255,7 +76890,7 @@ in
         ];
       })
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -77290,7 +76925,6 @@ in
       sources."color-name-1.1.3"
       sources."combined-stream-1.0.8"
       sources."common-tags-1.8.2"
-      sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
       sources."convert-hrtime-3.0.0"
       sources."convert-source-map-2.0.0"
@@ -77314,7 +76948,7 @@ in
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
       sources."dot-prop-5.3.0"
-      sources."electron-to-chromium-1.4.673"
+      sources."electron-to-chromium-1.4.710"
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
@@ -77346,14 +76980,12 @@ in
       sources."form-data-4.0.0"
       sources."fs-exists-cached-1.0.0"
       sources."fs-extra-11.2.0"
-      sources."fs.realpath-1.0.0"
       sources."gatsby-core-utils-4.13.1"
       sources."gatsby-telemetry-4.13.1"
       sources."gensync-1.0.0-beta.2"
       sources."get-caller-file-2.0.5"
       sources."get-stream-8.0.1"
       sources."git-up-7.0.0"
-      sources."glob-7.2.3"
       sources."globals-11.12.0"
       sources."got-11.8.6"
       sources."graceful-fs-4.2.11"
@@ -77373,7 +77005,6 @@ in
       sources."ieee754-1.2.1"
       sources."import-from-4.0.0"
       sources."imurmurhash-0.1.4"
-      sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."inquirer-7.3.3"
       sources."is-ci-2.0.0"
@@ -77395,7 +77026,7 @@ in
       sources."is-wsl-2.2.0"
       sources."is64bit-2.0.0"
       sources."isexe-2.0.0"
-      sources."joi-17.12.1"
+      sources."joi-17.12.2"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
       sources."json-buffer-3.0.1"
@@ -77419,7 +77050,6 @@ in
       sources."mime-types-2.1.35"
       sources."mimic-fn-4.0.0"
       sources."mimic-response-1.0.1"
-      sources."minimatch-3.1.2"
       sources."ms-2.1.2"
       sources."msgpackr-1.10.1"
       sources."mute-stream-0.0.8"
@@ -77429,7 +77059,7 @@ in
       sources."node-object-hash-2.3.10"
       sources."node-releases-2.0.14"
       sources."normalize-url-6.1.0"
-      (sources."npm-run-path-5.2.0" // {
+      (sources."npm-run-path-5.3.0" // {
         dependencies = [
           sources."path-key-4.0.0"
         ];
@@ -77448,7 +77078,6 @@ in
       sources."parse-path-7.0.0"
       sources."parse-url-8.1.0"
       sources."path-exists-4.0.0"
-      sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."peek-readable-4.1.0"
       sources."picocolors-1.0.0"
@@ -77483,7 +77112,6 @@ in
       })
       sources."retry-0.12.0"
       sources."reusify-1.0.4"
-      sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
@@ -77512,7 +77140,7 @@ in
       sources."supports-color-5.5.0"
       sources."system-architecture-0.1.0"
       sources."through-2.3.8"
-      sources."tmp-0.2.1"
+      sources."tmp-0.2.3"
       sources."to-fast-properties-2.0.0"
       sources."token-types-4.2.1"
       sources."tr46-0.0.3"
@@ -77655,15 +77283,15 @@ in
   "@gitbeaker/cli" = nodeEnv.buildNodePackage {
     name = "_at_gitbeaker_slash_cli";
     packageName = "@gitbeaker/cli";
-    version = "39.34.2";
+    version = "40.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@gitbeaker/cli/-/cli-39.34.2.tgz";
-      sha512 = "mJYBS+UilGGd6CUhuExNUfNsLVncJjaitClIoLrVIdVcyMQ9Ci4IALrkYUAlG1oNvzna6e6Xrpcjq31GJSjZUQ==";
+      url = "https://registry.npmjs.org/@gitbeaker/cli/-/cli-40.0.1.tgz";
+      sha512 = "6ERgsKFoVpHJAQ6dCKIfyGTBIGdvn3EhZomS0WYhfZEVXyyH0+JQ/grGE8+pTLuvk8dJan/SfDtRx8SjNoQjUg==";
     };
     dependencies = [
-      sources."@gitbeaker/core-39.34.2"
-      sources."@gitbeaker/requester-utils-39.34.2"
-      sources."@gitbeaker/rest-39.34.2"
+      sources."@gitbeaker/core-40.0.1"
+      sources."@gitbeaker/requester-utils-40.0.1"
+      sources."@gitbeaker/rest-40.0.1"
       sources."ansi-styles-4.3.0"
       sources."call-bind-1.0.7"
       sources."chalk-4.1.2"
@@ -77677,15 +77305,15 @@ in
       sources."gopd-1.0.1"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."object-inspect-1.13.1"
       sources."picomatch-browser-2.2.6"
-      sources."qs-6.11.2"
+      sources."qs-6.12.0"
       sources."rate-limiter-flexible-4.0.1"
-      sources."set-function-length-1.2.1"
-      sources."side-channel-1.0.5"
+      sources."set-function-length-1.2.2"
+      sources."side-channel-1.0.6"
       sources."supports-color-7.2.0"
       sources."sywac-1.3.0"
       sources."xcase-2.0.1"
@@ -78052,7 +77680,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/parse-json-4.0.2"
       sources."@types/websocket-1.0.2"
       sources."abort-controller-3.0.0"
@@ -78072,7 +77700,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      sources."available-typed-arrays-1.0.6"
+      sources."available-typed-arrays-1.0.7"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.12.0"
       sources."backo2-1.0.2"
@@ -78215,10 +77843,10 @@ in
       sources."has-bigints-1.0.2"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."http-cache-semantics-4.1.1"
       sources."http-signature-1.2.0"
       sources."http2-client-1.3.5"
@@ -78258,20 +77886,20 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-interactive-1.0.0"
-      sources."is-map-2.0.2"
+      sources."is-map-2.0.3"
       sources."is-number-7.0.0"
       sources."is-number-object-1.0.7"
       sources."is-promise-4.0.0"
       sources."is-regex-1.1.4"
-      sources."is-set-2.0.2"
-      sources."is-shared-array-buffer-1.0.2"
+      sources."is-set-2.0.3"
+      sources."is-shared-array-buffer-1.0.3"
       sources."is-stream-1.1.0"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
-      sources."is-weakmap-2.0.1"
-      sources."is-weakset-2.0.2"
+      sources."is-weakmap-2.0.2"
+      sources."is-weakset-2.0.3"
       sources."is-wsl-2.2.0"
       sources."isarray-2.0.5"
       sources."isexe-2.0.0"
@@ -78360,7 +77988,7 @@ in
       sources."oas-validator-5.0.8"
       sources."oauth-sign-0.9.0"
       sources."object-inspect-1.13.1"
-      sources."object-is-1.1.5"
+      sources."object-is-1.1.6"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.5"
       sources."once-1.4.0"
@@ -78407,6 +78035,7 @@ in
       sources."performance-now-2.1.0"
       sources."picomatch-2.3.1"
       sources."pluralize-8.0.0"
+      sources."possible-typed-array-names-1.0.0"
       sources."prepend-http-2.0.0"
       sources."psl-1.9.0"
       sources."pump-3.0.0"
@@ -78436,8 +78065,8 @@ in
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.2"
-      sources."set-function-length-1.2.1"
-      sources."set-function-name-2.0.1"
+      sources."set-function-length-1.2.2"
+      sources."set-function-name-2.0.2"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."should-13.2.3"
@@ -78446,7 +78075,7 @@ in
       sources."should-type-1.4.0"
       sources."should-type-adaptors-1.1.0"
       sources."should-util-1.0.1"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       sources."simple-git-2.21.0"
       sources."slash-3.0.0"
@@ -78495,8 +78124,8 @@ in
       sources."wcwidth-1.0.1"
       sources."which-1.3.1"
       sources."which-boxed-primitive-1.0.2"
-      sources."which-collection-1.0.1"
-      sources."which-typed-array-1.1.14"
+      sources."which-collection-1.0.2"
+      sources."which-typed-array-1.1.15"
       (sources."wrap-ansi-7.0.0" // {
         dependencies = [
           sources."ansi-regex-5.0.1"
@@ -78537,12 +78166,12 @@ in
       sha512 = "CUva4Dubw/0VuUxMBlHvqwY4ZhPQKEQNvobFuAI5huiA/6S2ObFngEuh0uIuFRXfaC4I1tM5C6KKjZpD6HShFQ==";
     };
     dependencies = [
-      sources."@ampproject/remapping-2.2.1"
+      sources."@ampproject/remapping-2.3.0"
       sources."@ardatan/sync-fetch-0.0.1"
-      sources."@astrojs/compiler-2.5.3"
+      sources."@astrojs/compiler-2.7.0"
       sources."@babel/code-frame-7.23.5"
       sources."@babel/compat-data-7.23.5"
-      sources."@babel/core-7.23.9"
+      sources."@babel/core-7.24.0"
       sources."@babel/generator-7.23.6"
       sources."@babel/helper-compilation-targets-7.23.6"
       sources."@babel/helper-environment-visitor-7.22.20"
@@ -78550,44 +78179,44 @@ in
       sources."@babel/helper-hoist-variables-7.22.5"
       sources."@babel/helper-module-imports-7.22.15"
       sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-plugin-utils-7.22.5"
+      sources."@babel/helper-plugin-utils-7.24.0"
       sources."@babel/helper-simple-access-7.22.5"
       sources."@babel/helper-split-export-declaration-7.22.6"
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.23.9"
+      sources."@babel/helpers-7.24.0"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.9"
+      sources."@babel/parser-7.24.0"
       sources."@babel/plugin-syntax-import-assertions-7.23.3"
       sources."@babel/polyfill-7.12.1"
-      sources."@babel/template-7.23.9"
-      sources."@babel/traverse-7.23.9"
-      sources."@babel/types-7.23.9"
-      sources."@graphql-tools/batch-execute-9.0.2"
+      sources."@babel/template-7.24.0"
+      sources."@babel/traverse-7.24.0"
+      sources."@babel/types-7.24.0"
+      sources."@graphql-tools/batch-execute-9.0.4"
       sources."@graphql-tools/code-file-loader-8.0.3"
-      sources."@graphql-tools/delegate-10.0.3"
-      sources."@graphql-tools/executor-1.2.0"
-      sources."@graphql-tools/executor-graphql-ws-1.1.1"
-      sources."@graphql-tools/executor-http-1.0.8"
-      sources."@graphql-tools/executor-legacy-ws-1.0.5"
-      sources."@graphql-tools/graphql-file-loader-8.0.0"
+      sources."@graphql-tools/delegate-10.0.4"
+      sources."@graphql-tools/executor-1.2.2"
+      sources."@graphql-tools/executor-graphql-ws-1.1.2"
+      sources."@graphql-tools/executor-http-1.0.9"
+      sources."@graphql-tools/executor-legacy-ws-1.0.6"
+      sources."@graphql-tools/graphql-file-loader-8.0.1"
       sources."@graphql-tools/graphql-tag-pluck-8.1.0"
-      sources."@graphql-tools/import-7.0.0"
-      sources."@graphql-tools/json-file-loader-8.0.0"
-      sources."@graphql-tools/load-8.0.1"
-      sources."@graphql-tools/merge-9.0.1"
-      sources."@graphql-tools/schema-10.0.2"
-      sources."@graphql-tools/url-loader-8.0.1"
-      sources."@graphql-tools/utils-10.0.13"
-      sources."@graphql-tools/wrap-10.0.1"
+      sources."@graphql-tools/import-7.0.1"
+      sources."@graphql-tools/json-file-loader-8.0.1"
+      sources."@graphql-tools/load-8.0.2"
+      sources."@graphql-tools/merge-9.0.3"
+      sources."@graphql-tools/schema-10.0.3"
+      sources."@graphql-tools/url-loader-8.0.2"
+      sources."@graphql-tools/utils-10.1.2"
+      sources."@graphql-tools/wrap-10.0.5"
       sources."@graphql-typed-document-node/core-3.2.0"
       sources."@iarna/toml-2.2.5"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@kamilkisiela/fast-url-parser-1.1.4"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
@@ -78595,18 +78224,18 @@ in
       sources."@pkgr/core-0.1.1"
       sources."@repeaterjs/repeater-3.0.5"
       sources."@types/estree-1.0.5"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/ws-8.5.10"
       sources."@types/yargs-16.0.5"
       sources."@types/yargs-parser-21.0.3"
-      sources."@vue/compiler-core-3.4.19"
-      sources."@vue/compiler-dom-3.4.19"
-      sources."@vue/compiler-sfc-3.4.19"
-      sources."@vue/compiler-ssr-3.4.19"
-      sources."@vue/shared-3.4.19"
+      sources."@vue/compiler-core-3.4.21"
+      sources."@vue/compiler-dom-3.4.21"
+      sources."@vue/compiler-sfc-3.4.21"
+      sources."@vue/compiler-ssr-3.4.21"
+      sources."@vue/shared-3.4.21"
       sources."@whatwg-node/events-0.1.1"
-      sources."@whatwg-node/fetch-0.9.16"
-      sources."@whatwg-node/node-fetch-0.5.6"
+      sources."@whatwg-node/fetch-0.9.17"
+      sources."@whatwg-node/node-fetch-0.5.8"
       sources."acorn-8.11.3"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
@@ -78622,7 +78251,7 @@ in
       sources."bufferutil-4.0.8"
       sources."busboy-1.6.0"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       sources."chalk-2.4.2"
       sources."cliui-7.0.4"
       (sources."code-red-1.0.4" // {
@@ -78646,7 +78275,7 @@ in
       sources."dir-glob-3.0.1"
       sources."dotenv-10.0.0"
       sources."dset-3.1.3"
-      sources."electron-to-chromium-1.4.673"
+      sources."electron-to-chromium-1.4.710"
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."entities-4.5.0"
@@ -78703,7 +78332,7 @@ in
       sources."locate-character-3.0.0"
       sources."lower-case-2.0.2"
       sources."lru-cache-5.1.1"
-      sources."magic-string-0.30.7"
+      sources."magic-string-0.30.8"
       sources."mdn-data-2.0.30"
       sources."merge2-1.4.1"
       sources."meros-1.3.0"
@@ -78733,7 +78362,11 @@ in
       })
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
-      sources."postcss-8.4.35"
+      (sources."postcss-8.4.36" // {
+        dependencies = [
+          sources."source-map-js-1.1.0"
+        ];
+      })
       sources."queue-microtask-1.2.3"
       sources."regenerator-runtime-0.13.11"
       sources."remove-trailing-separator-1.1.0"
@@ -78750,18 +78383,18 @@ in
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
       sources."supports-color-5.5.0"
-      (sources."svelte-4.2.11" // {
+      (sources."svelte-4.2.12" // {
         dependencies = [
           sources."estree-walker-3.0.3"
         ];
       })
-      sources."svelte2tsx-0.7.1"
+      sources."svelte2tsx-0.7.4"
       sources."synckit-0.9.0"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."tslib-2.6.2"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."undici-types-5.26.5"
       sources."unixify-1.0.0"
       sources."update-browserslist-db-1.0.13"
@@ -78831,7 +78464,7 @@ in
       sources."global-modules-1.0.0"
       sources."global-prefix-1.0.2"
       sources."grunt-known-options-2.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."homedir-polyfill-1.0.3"
       sources."ini-1.3.8"
       sources."interpret-1.1.0"
@@ -78912,7 +78545,7 @@ in
     dependencies = [
       sources."accepts-1.3.8"
       sources."array-flatten-1.1.1"
-      sources."body-parser-1.20.1"
+      sources."body-parser-1.20.2"
       sources."bytes-3.1.2"
       sources."call-bind-1.0.7"
       sources."content-disposition-0.5.4"
@@ -78929,7 +78562,7 @@ in
       sources."es-errors-1.3.0"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."express-4.18.2"
+      sources."express-4.18.3"
       sources."express-ws-2.0.0"
       sources."finalhandler-1.2.0"
       sources."forwarded-0.2.0"
@@ -78938,9 +78571,9 @@ in
       sources."get-intrinsic-1.2.4"
       sources."gopd-1.0.1"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."http-errors-2.0.0"
       sources."iconv-lite-0.4.24"
       sources."inherits-2.0.4"
@@ -78962,7 +78595,7 @@ in
       sources."proxy-addr-2.0.7"
       sources."qs-6.11.0"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.5.1"
+      sources."raw-body-2.5.2"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       (sources."send-0.18.0" // {
@@ -78971,9 +78604,9 @@ in
         ];
       })
       sources."serve-static-1.15.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."setprototypeof-1.2.0"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."statuses-2.0.1"
       sources."toidentifier-1.0.1"
       sources."type-is-1.6.18"
@@ -79088,7 +78721,7 @@ in
         ];
       })
       sources."core-util-is-1.0.3"
-      sources."d-1.0.1"
+      sources."d-1.0.2"
       sources."debug-2.6.9"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.2"
@@ -79108,10 +78741,12 @@ in
       sources."error-ex-1.3.2"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
-      sources."es5-ext-0.10.62"
+      sources."es5-ext-0.10.64"
       sources."es6-iterator-2.0.3"
-      sources."es6-symbol-3.1.3"
+      sources."es6-symbol-3.1.4"
       sources."es6-weak-map-2.0.3"
+      sources."esniff-2.0.1"
+      sources."event-emitter-0.3.5"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -79120,11 +78755,7 @@ in
         ];
       })
       sources."expand-tilde-2.0.2"
-      (sources."ext-1.7.0" // {
-        dependencies = [
-          sources."type-2.7.2"
-        ];
-      })
+      sources."ext-1.7.0"
       sources."extend-3.0.2"
       (sources."extend-shallow-3.0.2" // {
         dependencies = [
@@ -79176,7 +78807,7 @@ in
       sources."gulp-cli-2.3.0"
       sources."gulplog-1.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -79184,7 +78815,7 @@ in
           sources."kind-of-4.0.0"
         ];
       })
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."homedir-polyfill-1.0.3"
       sources."hosted-git-info-2.8.9"
       sources."inflight-1.0.6"
@@ -79246,7 +78877,7 @@ in
       })
       sources."ms-2.0.0"
       sources."mute-stdout-1.0.1"
-      sources."nan-2.18.0"
+      sources."nan-2.19.0"
       sources."nanomatch-1.2.13"
       sources."next-tick-1.1.0"
       sources."normalize-package-data-2.5.0"
@@ -79315,7 +78946,7 @@ in
       sources."semver-5.7.2"
       sources."semver-greatest-satisfied-range-1.1.0"
       sources."set-blocking-2.0.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -79374,7 +79005,7 @@ in
       sources."to-regex-3.0.2"
       sources."to-regex-range-2.1.1"
       sources."to-through-2.0.0"
-      sources."type-1.2.0"
+      sources."type-2.7.2"
       sources."typedarray-0.0.6"
       sources."unc-path-regex-0.1.2"
       sources."undertaker-1.3.0"
@@ -79476,7 +79107,7 @@ in
       sources."copy-descriptor-0.1.1"
       sources."copy-props-2.0.5"
       sources."core-util-is-1.0.3"
-      sources."d-1.0.1"
+      sources."d-1.0.2"
       sources."debug-2.6.9"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.2"
@@ -79493,9 +79124,11 @@ in
       sources."error-ex-1.3.2"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
-      sources."es5-ext-0.10.62"
+      sources."es5-ext-0.10.64"
       sources."es6-iterator-2.0.3"
-      sources."es6-symbol-3.1.3"
+      sources."es6-symbol-3.1.4"
+      sources."esniff-2.0.1"
+      sources."event-emitter-0.3.5"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -79504,11 +79137,7 @@ in
         ];
       })
       sources."expand-tilde-2.0.2"
-      (sources."ext-1.7.0" // {
-        dependencies = [
-          sources."type-2.7.2"
-        ];
-      })
+      sources."ext-1.7.0"
       sources."extend-3.0.2"
       (sources."extend-shallow-3.0.2" // {
         dependencies = [
@@ -79550,7 +79179,7 @@ in
       sources."graceful-fs-4.2.11"
       sources."gulplog-1.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -79558,7 +79187,7 @@ in
           sources."kind-of-4.0.0"
         ];
       })
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."homedir-polyfill-1.0.3"
       sources."hosted-git-info-2.8.9"
       sources."inherits-2.0.4"
@@ -79681,7 +79310,7 @@ in
       sources."semver-5.7.2"
       sources."semver-greatest-satisfied-range-1.1.0"
       sources."set-blocking-2.0.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -79735,7 +79364,7 @@ in
       })
       sources."to-regex-3.0.2"
       sources."to-regex-range-2.1.1"
-      sources."type-1.2.0"
+      sources."type-2.7.2"
       sources."typedarray-0.0.6"
       sources."unc-path-regex-0.1.2"
       sources."union-value-1.0.1"
@@ -79801,7 +79430,7 @@ in
       sources."bcrypto-5.4.0"
       sources."bfile-0.2.3"
       sources."brq-0.1.10"
-      sources."bsert-0.0.12"
+      sources."bsert-0.0.13"
       sources."bufio-1.0.7"
       sources."goosig-0.10.0"
       sources."loady-0.0.5"
@@ -80097,7 +79726,7 @@ in
       })
       sources."moment-2.30.1"
       sources."mv-2.1.1"
-      sources."nan-2.18.0"
+      sources."nan-2.19.0"
       sources."ncp-2.0.0"
       sources."once-1.4.0"
       sources."optimist-0.6.1"
@@ -80206,20 +79835,20 @@ in
       sha512 = "bvN8aH5mHnuQH0yAr2ZFwQPtC6nE3MfxQvtzjCICxwAMvdngJyUPFvFR8aFKhwgRYMNzVmIMZSOlx+3DJWviUA==";
     };
     dependencies = [
-      sources."@azure/abort-controller-2.0.0"
-      sources."@azure/core-auth-1.6.0"
+      sources."@azure/abort-controller-2.1.0"
+      sources."@azure/core-auth-1.7.0"
       (sources."@azure/core-rest-pipeline-1.10.1" // {
         dependencies = [
           sources."@azure/abort-controller-1.1.0"
         ];
       })
-      sources."@azure/core-tracing-1.0.1"
+      sources."@azure/core-tracing-1.1.0"
       (sources."@azure/core-util-1.2.0" // {
         dependencies = [
           sources."@azure/abort-controller-1.1.0"
         ];
       })
-      sources."@azure/logger-1.0.4"
+      sources."@azure/logger-1.1.0"
       sources."@azure/opentelemetry-instrumentation-azure-sdk-1.0.0-beta.5"
       sources."@bmewburn/js-beautify-1.14.9"
       sources."@bmewburn/vscode-html-languageserver-1.10.0"
@@ -80230,17 +79859,17 @@ in
           sources."nopt-5.0.0"
         ];
       })
-      sources."@microsoft/applicationinsights-web-snippet-1.1.1"
+      sources."@microsoft/applicationinsights-web-snippet-1.1.2"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@one-ini/wasm-0.1.1"
-      sources."@opentelemetry/api-1.7.0"
-      sources."@opentelemetry/core-1.21.0"
+      sources."@opentelemetry/api-1.8.0"
+      sources."@opentelemetry/core-1.22.0"
       sources."@opentelemetry/instrumentation-0.41.2"
-      sources."@opentelemetry/resources-1.21.0"
-      sources."@opentelemetry/sdk-trace-base-1.21.0"
-      sources."@opentelemetry/semantic-conventions-1.21.0"
+      sources."@opentelemetry/resources-1.22.0"
+      sources."@opentelemetry/sdk-trace-base-1.22.0"
+      sources."@opentelemetry/semantic-conventions-1.22.0"
       sources."@protobufjs/aspromise-1.1.2"
       sources."@protobufjs/base64-1.1.2"
       sources."@protobufjs/codegen-2.0.4"
@@ -80253,7 +79882,7 @@ in
       sources."@protobufjs/utf8-1.1.0"
       sources."@selderee/plugin-htmlparser2-0.11.0"
       sources."@tootallnate/once-2.0.0"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/shimmer-1.0.5"
       sources."@vscode/l10n-0.0.16"
       sources."abbrev-2.0.0"
@@ -80354,7 +79983,7 @@ in
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-unicode-2.0.1"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."html-to-text-9.0.5"
       sources."htmlparser2-8.0.2"
       sources."http-proxy-agent-5.0.0"
@@ -80402,7 +80031,7 @@ in
       sources."mkdirp-1.0.4"
       sources."module-details-from-path-1.0.3"
       sources."ms-2.1.2"
-      sources."nan-2.18.0"
+      sources."nan-2.19.0"
       sources."node-fetch-2.7.0"
       sources."nopt-7.2.0"
       sources."npmlog-5.0.1"
@@ -80430,7 +80059,7 @@ in
           sources."uuid-3.4.0"
         ];
       })
-      sources."require-in-the-middle-7.2.0"
+      sources."require-in-the-middle-7.2.1"
       sources."resolve-1.22.8"
       sources."reusify-1.0.4"
       (sources."rimraf-3.0.2" // {
@@ -80481,10 +80110,10 @@ in
       sources."tr46-0.0.3"
       sources."tslib-2.6.2"
       sources."tunnel-agent-0.6.0"
-      sources."turndown-7.1.2"
+      sources."turndown-7.1.3"
       sources."turndown-plugin-gfm-1.0.2"
       sources."tweetnacl-0.14.5"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."undici-types-5.26.5"
       sources."universalify-2.0.1"
       sources."uri-js-4.4.1"
@@ -80548,12 +80177,13 @@ in
   joplin = nodeEnv.buildNodePackage {
     name = "joplin";
     packageName = "joplin";
-    version = "2.13.2";
+    version = "2.14.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/joplin/-/joplin-2.13.2.tgz";
-      sha512 = "xu3XOPUrA3MnmPfDdIkiLFPy/dZ2D2EtwA5jnYAKPkt9L9YP8ZpndQKRSIzIN03bTSS6RJ/h0JbqZWB9kxbxhQ==";
+      url = "https://registry.npmjs.org/joplin/-/joplin-2.14.1.tgz";
+      sha512 = "OMg8OB1cx6MzGMUSvycBYu152vYz6BbtAnerEqxAvX2Jtlj7+RjuXYxJ0TgoV2BG43BaOqjzdr+BC5WFFp+Huw==";
     };
     dependencies = [
+      sources."@adobe/css-tools-4.3.2"
       (sources."@aws-crypto/crc32-3.0.0" // {
         dependencies = [
           sources."tslib-1.14.1"
@@ -80660,13 +80290,13 @@ in
       sources."@aws-sdk/service-error-classification-3.296.0"
       sources."@aws-sdk/shared-ini-file-loader-3.296.0"
       sources."@aws-sdk/signature-v4-3.296.0"
-      (sources."@aws-sdk/signature-v4-crt-3.515.0" // {
+      (sources."@aws-sdk/signature-v4-crt-3.535.0" // {
         dependencies = [
-          sources."@aws-sdk/middleware-sdk-s3-3.515.0"
-          sources."@aws-sdk/signature-v4-multi-region-3.515.0"
-          sources."@aws-sdk/types-3.515.0"
-          sources."@aws-sdk/util-arn-parser-3.495.0"
-          sources."@aws-sdk/util-user-agent-node-3.515.0"
+          sources."@aws-sdk/middleware-sdk-s3-3.535.0"
+          sources."@aws-sdk/signature-v4-multi-region-3.535.0"
+          sources."@aws-sdk/types-3.535.0"
+          sources."@aws-sdk/util-arn-parser-3.535.0"
+          sources."@aws-sdk/util-user-agent-node-3.535.0"
         ];
       })
       sources."@aws-sdk/signature-v4-multi-region-3.296.0"
@@ -80686,7 +80316,7 @@ in
       sources."@aws-sdk/util-endpoints-3.296.0"
       sources."@aws-sdk/util-format-url-3.296.0"
       sources."@aws-sdk/util-hex-encoding-3.295.0"
-      sources."@aws-sdk/util-locate-window-3.495.0"
+      sources."@aws-sdk/util-locate-window-3.535.0"
       sources."@aws-sdk/util-middleware-3.296.0"
       sources."@aws-sdk/util-retry-3.296.0"
       sources."@aws-sdk/util-stream-browser-3.296.0"
@@ -80698,7 +80328,7 @@ in
       sources."@aws-sdk/util-utf8-browser-3.259.0"
       sources."@aws-sdk/util-waiter-3.296.0"
       sources."@aws-sdk/xml-builder-3.295.0"
-      sources."@babel/runtime-7.23.9"
+      sources."@babel/runtime-7.24.0"
       sources."@braintree/sanitize-url-6.0.4"
       sources."@cronvel/get-pixels-3.4.1"
       sources."@gar/promisify-1.1.3"
@@ -80711,15 +80341,15 @@ in
           sources."strip-ansi-7.1.0"
         ];
       })
-      sources."@joplin/fork-htmlparser2-4.1.50"
-      sources."@joplin/fork-sax-1.2.54"
-      sources."@joplin/fork-uslug-1.0.15"
-      sources."@joplin/htmlpack-2.13.4"
-      sources."@joplin/lib-2.13.4"
-      sources."@joplin/renderer-2.13.4"
-      sources."@joplin/turndown-4.0.72"
-      sources."@joplin/turndown-plugin-gfm-1.0.54"
-      (sources."@joplin/utils-2.13.4" // {
+      sources."@joplin/fork-htmlparser2-4.1.51"
+      sources."@joplin/fork-sax-1.2.55"
+      sources."@joplin/fork-uslug-1.0.16"
+      sources."@joplin/htmlpack-2.14.1"
+      sources."@joplin/lib-2.14.1"
+      sources."@joplin/renderer-2.14.1"
+      sources."@joplin/turndown-4.0.73"
+      sources."@joplin/turndown-plugin-gfm-1.0.55"
+      (sources."@joplin/utils-2.14.1" // {
         dependencies = [
           sources."brace-expansion-2.0.1"
           sources."glob-10.3.10"
@@ -80729,32 +80359,32 @@ in
       sources."@mapbox/node-pre-gyp-1.0.11"
       sources."@npmcli/fs-1.1.1"
       sources."@npmcli/move-file-1.1.2"
-      sources."@smithy/abort-controller-2.1.1"
-      sources."@smithy/eventstream-codec-2.1.1"
-      sources."@smithy/fetch-http-handler-2.4.1"
-      sources."@smithy/is-array-buffer-2.1.1"
-      sources."@smithy/middleware-endpoint-2.4.1"
-      sources."@smithy/middleware-serde-2.1.1"
-      sources."@smithy/middleware-stack-2.1.1"
-      sources."@smithy/node-config-provider-2.2.1"
-      sources."@smithy/node-http-handler-2.3.1"
-      sources."@smithy/property-provider-2.1.1"
-      sources."@smithy/protocol-http-3.1.1"
-      sources."@smithy/querystring-builder-2.1.1"
-      sources."@smithy/querystring-parser-2.1.1"
-      sources."@smithy/shared-ini-file-loader-2.3.1"
-      sources."@smithy/signature-v4-2.1.1"
-      sources."@smithy/smithy-client-2.3.1"
-      sources."@smithy/types-2.9.1"
-      sources."@smithy/url-parser-2.1.1"
-      sources."@smithy/util-base64-2.1.1"
-      sources."@smithy/util-buffer-from-2.1.1"
-      sources."@smithy/util-config-provider-2.2.1"
-      sources."@smithy/util-hex-encoding-2.1.1"
-      sources."@smithy/util-middleware-2.1.1"
-      sources."@smithy/util-stream-2.1.1"
-      sources."@smithy/util-uri-escape-2.1.1"
-      sources."@smithy/util-utf8-2.1.1"
+      sources."@smithy/abort-controller-2.2.0"
+      sources."@smithy/eventstream-codec-2.2.0"
+      sources."@smithy/fetch-http-handler-2.5.0"
+      sources."@smithy/is-array-buffer-2.2.0"
+      sources."@smithy/middleware-endpoint-2.5.0"
+      sources."@smithy/middleware-serde-2.3.0"
+      sources."@smithy/middleware-stack-2.2.0"
+      sources."@smithy/node-config-provider-2.3.0"
+      sources."@smithy/node-http-handler-2.5.0"
+      sources."@smithy/property-provider-2.2.0"
+      sources."@smithy/protocol-http-3.3.0"
+      sources."@smithy/querystring-builder-2.2.0"
+      sources."@smithy/querystring-parser-2.2.0"
+      sources."@smithy/shared-ini-file-loader-2.4.0"
+      sources."@smithy/signature-v4-2.2.0"
+      sources."@smithy/smithy-client-2.5.0"
+      sources."@smithy/types-2.12.0"
+      sources."@smithy/url-parser-2.2.0"
+      sources."@smithy/util-base64-2.3.0"
+      sources."@smithy/util-buffer-from-2.2.0"
+      sources."@smithy/util-config-provider-2.3.0"
+      sources."@smithy/util-hex-encoding-2.2.0"
+      sources."@smithy/util-middleware-2.2.0"
+      sources."@smithy/util-stream-2.2.0"
+      sources."@smithy/util-uri-escape-2.2.0"
+      sources."@smithy/util-utf8-2.3.0"
       sources."@tootallnate/once-2.0.0"
       sources."@types/d3-scale-4.0.8"
       sources."@types/d3-scale-chromatic-3.0.3"
@@ -80763,7 +80393,7 @@ in
       sources."@types/mdast-3.0.15"
       sources."@types/ms-0.7.34"
       sources."@types/nanoid-3.0.0"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/unist-2.0.10"
       sources."@types/ws-8.5.10"
       sources."abab-2.0.6"
@@ -80791,10 +80421,9 @@ in
       sources."asap-2.0.6"
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
-      sources."async-mutex-0.4.0"
+      sources."async-mutex-0.4.1"
       sources."asynckit-0.4.0"
-      sources."atob-2.1.2"
-      sources."available-typed-arrays-1.0.6"
+      sources."available-typed-arrays-1.0.7"
       sources."aws-crt-1.21.1"
       (sources."aws-sdk-2.1340.0" // {
         dependencies = [
@@ -80808,18 +80437,17 @@ in
       })
       sources."aws-sign2-0.7.0"
       sources."aws4-1.12.0"
-      (sources."axios-1.6.7" // {
+      (sources."axios-1.6.8" // {
         dependencies = [
-          sources."follow-redirects-1.15.5"
+          sources."follow-redirects-1.15.6"
         ];
       })
-      sources."b4a-1.6.6"
       sources."balanced-match-1.0.2"
       sources."base-64-1.0.0"
       sources."base64-js-1.5.1"
       sources."base64-stream-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       (sources."bl-4.1.0" // {
         dependencies = [
           sources."buffer-5.7.1"
@@ -80886,7 +80514,6 @@ in
       sources."cross-spawn-7.0.3"
       sources."crypt-0.0.2"
       sources."crypto-js-4.2.0"
-      sources."css-3.0.0"
       sources."cssstyle-3.0.0"
       sources."cwise-compiler-1.1.3"
       sources."cytoscape-3.28.1"
@@ -80897,7 +80524,7 @@ in
           sources."layout-base-2.0.1"
         ];
       })
-      sources."d3-7.8.5"
+      sources."d3-7.9.0"
       sources."d3-array-3.2.4"
       sources."d3-axis-3.0.0"
       sources."d3-brush-3.0.0"
@@ -80916,7 +80543,7 @@ in
       sources."d3-fetch-3.0.1"
       sources."d3-force-3.0.0"
       sources."d3-format-3.1.0"
-      sources."d3-geo-3.1.0"
+      sources."d3-geo-3.1.1"
       sources."d3-hierarchy-3.1.2"
       sources."d3-interpolate-3.0.1"
       sources."d3-path-3.1.0"
@@ -80932,7 +80559,7 @@ in
         ];
       })
       sources."d3-scale-4.0.2"
-      sources."d3-scale-chromatic-3.0.0"
+      sources."d3-scale-chromatic-3.1.0"
       sources."d3-selection-3.0.0"
       sources."d3-shape-3.2.0"
       sources."d3-time-3.1.0"
@@ -80971,7 +80598,7 @@ in
       sources."domelementtype-2.3.0"
       sources."domexception-4.0.0"
       sources."domhandler-5.0.3"
-      sources."dompurify-3.0.8"
+      sources."dompurify-3.0.9"
       sources."domutils-3.1.0"
       sources."duplexify-3.7.1"
       sources."eastasianwidth-0.2.0"
@@ -81003,7 +80630,6 @@ in
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
-      sources."fast-fifo-1.3.2"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-xml-parser-3.21.1"
       sources."fault-1.0.4"
@@ -81011,7 +80637,7 @@ in
       sources."fill-range-7.0.1"
       sources."filter-obj-1.1.0"
       sources."find-up-2.1.0"
-      sources."follow-redirects-1.15.3"
+      sources."follow-redirects-1.15.5"
       sources."font-awesome-filetypes-2.1.0"
       sources."for-each-0.3.3"
       sources."for-each-property-0.0.4"
@@ -81025,7 +80651,7 @@ in
       sources."form-data-4.0.0"
       sources."format-0.2.2"
       sources."fs-constants-1.0.0"
-      (sources."fs-extra-11.1.1" // {
+      (sources."fs-extra-11.2.0" // {
         dependencies = [
           sources."jsonfile-6.1.0"
           sources."universalify-2.0.1"
@@ -81060,11 +80686,11 @@ in
       })
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
       sources."has-unicode-2.0.1"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."he-1.2.0"
       sources."heap-0.2.7"
       (sources."help-me-3.0.0" // {
@@ -81072,7 +80698,7 @@ in
           sources."readable-stream-3.6.2"
         ];
       })
-      sources."highlight.js-11.8.0"
+      sources."highlight.js-11.9.0"
       sources."hpagent-1.2.0"
       sources."html-encoding-sniffer-3.0.0"
       sources."html-entities-1.4.0"
@@ -81183,7 +80809,6 @@ in
       sources."layout-base-1.0.2"
       sources."lazyness-1.2.0"
       sources."leven-2.1.0"
-      sources."levenshtein-1.0.5"
       sources."linkify-it-4.0.1"
       sources."locate-path-2.0.0"
       sources."lodash-4.17.21"
@@ -81233,7 +80858,7 @@ in
       sources."mdast-util-to-string-3.2.0"
       sources."mdurl-1.0.1"
       sources."merge-stream-2.0.0"
-      sources."mermaid-10.5.1"
+      sources."mermaid-10.6.1"
       sources."micromark-3.2.0"
       sources."micromark-core-commonmark-1.1.0"
       sources."micromark-factory-destination-1.1.0"
@@ -81295,10 +80920,10 @@ in
       })
       sources."mkdirp-1.0.4"
       sources."mkdirp-classic-0.5.3"
-      sources."moment-2.29.4"
+      sources."moment-2.30.1"
       (sources."mqtt-4.3.8" // {
         dependencies = [
-          sources."duplexify-4.1.2"
+          sources."duplexify-4.1.3"
           sources."readable-stream-3.6.2"
           sources."utf-8-validate-5.0.10"
           sources."ws-7.5.9"
@@ -81309,15 +80934,15 @@ in
       sources."ms-2.1.2"
       sources."multiparty-4.2.3"
       sources."mustache-4.2.0"
-      sources."nan-2.18.0"
-      sources."nanoid-3.3.6"
+      sources."nan-2.19.0"
+      sources."nanoid-3.3.7"
       sources."napi-build-utils-1.0.2"
       sources."ndarray-1.0.19"
       sources."ndarray-pack-1.2.1"
       sources."negotiator-0.6.3"
       sources."nextgen-events-1.5.3"
       sources."no-case-2.3.2"
-      sources."node-abi-3.54.0"
+      sources."node-abi-3.56.0"
       sources."node-addon-api-4.3.0"
       sources."node-bitmap-0.0.1"
       sources."node-emoji-1.11.0"
@@ -81386,7 +81011,8 @@ in
       sources."pify-3.0.0"
       sources."pipe-functions-1.3.0"
       sources."pngjs-6.0.0"
-      (sources."prebuild-install-7.1.1" // {
+      sources."possible-typed-array-names-1.0.0"
+      (sources."prebuild-install-7.1.2" // {
         dependencies = [
           sources."decompress-response-6.0.0"
           sources."mimic-response-3.1.0"
@@ -81408,7 +81034,6 @@ in
       sources."querystring-0.2.0"
       sources."querystringify-2.2.0"
       sources."queue-6.0.2"
-      sources."queue-tick-1.0.1"
       sources."random-bytes-1.0.0"
       sources."rc-1.2.8"
       sources."re-reselect-4.0.1"
@@ -81448,21 +81073,15 @@ in
       sources."semver-7.6.0"
       sources."server-destroy-1.0.1"
       sources."set-blocking-2.0.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."setimmediate-1.0.5"
       sources."setprototypeof-1.2.0"
       sources."seventh-0.9.2"
-      (sources."sharp-0.32.6" // {
+      (sources."sharp-0.33.2" // {
         dependencies = [
           sources."color-4.2.3"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
-          sources."decompress-response-6.0.0"
-          sources."mimic-response-3.1.0"
-          sources."node-addon-api-6.1.0"
-          sources."simple-get-4.0.1"
-          sources."tar-fs-3.0.5"
-          sources."tar-stream-3.1.7"
         ];
       })
       sources."shebang-command-2.0.0"
@@ -81478,10 +81097,9 @@ in
         ];
       })
       sources."smart-buffer-4.2.0"
-      sources."socks-2.8.0"
+      sources."socks-2.8.1"
       sources."socks-proxy-agent-6.2.1"
       sources."source-map-0.6.1"
-      sources."source-map-resolve-0.6.0"
       sources."split-on-first-1.1.0"
       sources."split-skip-0.0.2"
       (sources."split2-3.2.2" // {
@@ -81499,7 +81117,6 @@ in
       })
       sources."statuses-1.5.0"
       sources."stream-shift-1.0.3"
-      sources."streamx-2.16.0"
       sources."strict-uri-encode-2.0.0"
       sources."string-kit-0.17.10"
       sources."string-padding-1.0.2"
@@ -81618,7 +81235,7 @@ in
       sources."whatwg-mimetype-3.0.0"
       sources."whatwg-url-12.0.1"
       sources."which-2.0.2"
-      sources."which-typed-array-1.1.14"
+      sources."which-typed-array-1.1.15"
       sources."wide-align-1.1.5"
       sources."word-wrap-1.2.5"
       sources."wordwrapjs-3.0.0"
@@ -81768,7 +81385,7 @@ in
       sha512 = "e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==";
     };
     dependencies = [
-      sources."@babel/parser-7.23.9"
+      sources."@babel/parser-7.24.0"
       sources."@jsdoc/salty-0.2.7"
       sources."@types/linkify-it-3.0.5"
       sources."@types/markdown-it-12.2.3"
@@ -81934,9 +81551,9 @@ in
       sources."gopd-1.0.1"
       sources."graphlib-2.1.8"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hexoid-1.0.0"
       sources."inherits-2.0.4"
       sources."js-yaml-3.14.1"
@@ -81952,12 +81569,12 @@ in
       sources."once-1.4.0"
       sources."path-loader-1.0.12"
       sources."punycode-2.3.1"
-      sources."qs-6.11.2"
+      sources."qs-6.12.0"
       sources."readable-stream-3.6.2"
       sources."safe-buffer-5.2.1"
       sources."semver-7.6.0"
-      sources."set-function-length-1.2.1"
-      sources."side-channel-1.0.5"
+      sources."set-function-length-1.2.2"
+      sources."side-channel-1.0.6"
       sources."slash-3.0.0"
       sources."sprintf-js-1.0.3"
       sources."string_decoder-1.3.0"
@@ -81986,7 +81603,7 @@ in
       sha512 = "FPL1veNELhkr3tttwbIutKPkc/AUfLWSmslTwLYYPzl9RbCJQrwSPJceYWg2LnK1cv20tcEMLI2Kxl1lHz155Q==";
     };
     dependencies = [
-      sources."@polka/url-1.0.0-next.24"
+      sources."@polka/url-1.0.0-next.25"
       sources."@tinyhttp/accepts-2.2.1"
       sources."@tinyhttp/app-2.2.3"
       sources."@tinyhttp/content-disposition-2.2.0"
@@ -82006,14 +81623,14 @@ in
       sources."@tinyhttp/url-2.1.1"
       sources."@tinyhttp/vary-0.1.3"
       sources."anymatch-3.1.3"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."braces-3.0.2"
       sources."chalk-5.3.0"
       sources."chokidar-3.6.0"
       sources."dot-prop-8.0.2"
       sources."es-escape-html-0.1.1"
       sources."es-vary-0.1.2"
-      sources."eta-3.2.0"
+      sources."eta-3.4.0"
       sources."fill-range-7.0.1"
       sources."glob-parent-5.1.2"
       sources."header-range-parser-1.1.3"
@@ -82194,10 +81811,8 @@ in
       sources."etag-1.8.1"
       sources."expand-brackets-0.1.5"
       sources."expand-range-1.8.2"
-      (sources."express-4.18.2" // {
+      (sources."express-4.18.3" // {
         dependencies = [
-          sources."body-parser-1.20.1"
-          sources."raw-body-2.5.1"
           sources."safe-buffer-5.2.1"
         ];
       })
@@ -82239,7 +81854,7 @@ in
       sources."har-validator-5.1.5"
       sources."has-ansi-2.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       (sources."has-value-1.0.0" // {
         dependencies = [
@@ -82256,7 +81871,7 @@ in
           sources."kind-of-4.0.0"
         ];
       })
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hosted-git-info-2.8.9"
       sources."http-errors-2.0.0"
       sources."http-signature-1.2.0"
@@ -82341,7 +81956,7 @@ in
         ];
       })
       sources."ms-2.0.0"
-      sources."nan-2.18.0"
+      sources."nan-2.19.0"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."arr-diff-4.0.0"
@@ -82485,14 +82100,14 @@ in
       sources."serve-static-1.15.0"
       sources."server-destroy-1.0.1"
       sources."set-blocking-2.0.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
         ];
       })
       sources."setprototypeof-1.2.0"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."slide-1.1.6"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -82634,7 +82249,7 @@ in
         ];
       })
       sources."@oclif/screen-1.0.4"
-      (sources."@putdotio/api-client-8.46.0" // {
+      (sources."@putdotio/api-client-8.47.0" // {
         dependencies = [
           sources."axios-0.21.4"
         ];
@@ -82675,11 +82290,7 @@ in
         ];
       })
       sources."cross-spawn-7.0.3"
-      (sources."d-1.0.1" // {
-        dependencies = [
-          sources."type-1.2.0"
-        ];
-      })
+      sources."d-1.0.2"
       sources."debounce-fn-3.0.1"
       sources."debug-4.3.4"
       sources."define-data-property-1.1.4"
@@ -82690,10 +82301,11 @@ in
       sources."env-paths-2.2.1"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
-      sources."es5-ext-0.10.62"
+      sources."es5-ext-0.10.64"
       sources."es6-iterator-2.0.3"
-      sources."es6-symbol-3.1.3"
+      sources."es6-symbol-3.1.4"
       sources."escape-string-regexp-4.0.0"
+      sources."esniff-2.0.1"
       sources."esprima-4.0.1"
       sources."event-emitter-0.3.5"
       sources."ext-1.7.0"
@@ -82710,7 +82322,7 @@ in
       })
       sources."fill-range-7.0.1"
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.15.5"
+      sources."follow-redirects-1.15.6"
       sources."fs-extra-8.1.0"
       sources."function-bind-1.1.2"
       sources."get-intrinsic-1.2.4"
@@ -82720,9 +82332,9 @@ in
       sources."graceful-fs-4.2.11"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hyperlinker-1.0.0"
       sources."iconv-lite-0.4.24"
       sources."ignore-5.3.1"
@@ -82774,7 +82386,7 @@ in
       sources."picomatch-2.3.1"
       sources."pkg-up-3.1.0"
       sources."punycode-2.3.1"
-      sources."qs-6.11.2"
+      sources."qs-6.12.0"
       sources."queue-microtask-1.2.3"
       sources."redeyed-2.1.1"
       sources."restore-cursor-3.1.0"
@@ -82788,10 +82400,10 @@ in
       })
       sources."safer-buffer-2.1.2"
       sources."semver-7.6.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       sources."slash-3.0.0"
       sources."sprintf-js-1.0.3"
@@ -82855,11 +82467,11 @@ in
       sha512 = "RUV9keqP/XK49OiVC4l5N5NxjYDPoDJFkr5OLa7rlFd/6JYah7YkqMfzm7Q9iw2ig9GKiQI9KgtR2IixzwEJnw==";
     };
     dependencies = [
-      sources."@ampproject/remapping-2.2.1"
+      sources."@ampproject/remapping-2.3.0"
       sources."@babel/cli-7.23.9"
       sources."@babel/code-frame-7.23.5"
       sources."@babel/compat-data-7.23.5"
-      (sources."@babel/core-7.23.9" // {
+      (sources."@babel/core-7.24.0" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
@@ -82876,27 +82488,27 @@ in
       sources."@babel/helper-hoist-variables-7.22.5"
       sources."@babel/helper-module-imports-7.22.15"
       sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-plugin-utils-7.22.5"
+      sources."@babel/helper-plugin-utils-7.24.0"
       sources."@babel/helper-simple-access-7.22.5"
       sources."@babel/helper-split-export-declaration-7.22.6"
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.23.9"
+      sources."@babel/helpers-7.24.0"
       sources."@babel/highlight-7.23.4"
       sources."@babel/node-7.23.9"
-      sources."@babel/parser-7.23.9"
+      sources."@babel/parser-7.24.0"
       sources."@babel/plugin-syntax-jsx-7.23.3"
       sources."@babel/plugin-transform-react-jsx-7.23.4"
       sources."@babel/register-7.23.7"
-      sources."@babel/template-7.23.9"
-      sources."@babel/traverse-7.23.9"
-      sources."@babel/types-7.23.9"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@babel/template-7.24.0"
+      sources."@babel/traverse-7.24.0"
+      sources."@babel/types-7.24.0"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       (sources."@mapbox/node-pre-gyp-1.0.11" // {
         dependencies = [
           sources."lru-cache-6.0.0"
@@ -82970,7 +82582,7 @@ in
       sources."asn1js-3.0.5"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      sources."available-typed-arrays-1.0.6"
+      sources."available-typed-arrays-1.0.7"
       sources."axios-0.25.0"
       sources."babel-plugin-jsx-pragmatic-1.0.2"
       sources."babel-plugin-syntax-jsx-6.18.0"
@@ -82980,7 +82592,7 @@ in
       sources."bitwise-xor-0.0.0"
       sources."bl-4.1.0"
       sources."bn.js-4.12.0"
-      (sources."body-parser-1.20.1" // {
+      (sources."body-parser-1.20.2" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."iconv-lite-0.4.24"
@@ -82997,7 +82609,7 @@ in
       sources."bufferutil-4.0.8"
       sources."bytes-3.1.2"
       sources."call-bind-1.0.7"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       sources."canvas-2.11.2"
       sources."chalk-2.4.2"
       sources."chardet-1.6.1"
@@ -83018,7 +82630,7 @@ in
       sources."convert-source-map-2.0.0"
       sources."cookie-0.5.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.36.0"
+      sources."core-js-3.36.1"
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       sources."create-hash-1.2.0"
@@ -83036,6 +82648,9 @@ in
           sources."whatwg-url-8.7.0"
         ];
       })
+      sources."data-view-buffer-1.0.1"
+      sources."data-view-byte-length-1.0.1"
+      sources."data-view-byte-offset-1.0.0"
       sources."debug-4.3.4"
       sources."decimal.js-10.4.3"
       sources."decode-uri-component-0.2.2"
@@ -83057,17 +82672,18 @@ in
       })
       sources."dotenv-8.6.0"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.673"
+      sources."electron-to-chromium-1.4.710"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.4.1"
-      sources."es-abstract-1.22.4"
+      sources."es-abstract-1.23.2"
       sources."es-array-method-boxes-properly-1.0.0"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
-      sources."es-set-tostringtag-2.0.2"
+      sources."es-object-atoms-1.0.0"
+      sources."es-set-tostringtag-2.0.3"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.2"
       sources."escape-html-1.0.3"
@@ -83079,7 +82695,7 @@ in
       sources."etag-1.8.1"
       sources."events-3.3.0"
       sources."expand-template-2.0.3"
-      (sources."express-4.18.2" // {
+      (sources."express-4.18.3" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
@@ -83098,7 +82714,7 @@ in
       })
       sources."find-cache-dir-2.1.0"
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.15.5"
+      sources."follow-redirects-1.15.6"
       sources."for-each-0.3.3"
       sources."form-data-3.0.1"
       sources."forwarded-0.2.0"
@@ -83150,12 +82766,12 @@ in
       sources."has-bigints-1.0.2"
       sources."has-flag-3.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
       sources."has-unicode-2.0.1"
       sources."hash-base-3.1.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."homedir-polyfill-1.0.3"
       sources."html-encoding-sniffer-2.0.1"
       sources."http-errors-2.0.0"
@@ -83177,19 +82793,20 @@ in
       sources."is-boolean-object-1.1.2"
       sources."is-callable-1.2.7"
       sources."is-core-module-2.9.0"
+      sources."is-data-view-1.0.1"
       sources."is-date-object-1.0.5"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
-      sources."is-negative-zero-2.0.2"
+      sources."is-negative-zero-2.0.3"
       sources."is-number-7.0.0"
       sources."is-number-object-1.0.7"
       sources."is-plain-obj-2.1.0"
       sources."is-plain-object-2.0.4"
       sources."is-potential-custom-element-name-1.0.1"
       sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.2"
+      sources."is-shared-array-buffer-1.0.3"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.13"
@@ -83247,10 +82864,10 @@ in
       sources."mkdirp-classic-0.5.3"
       sources."ms-2.1.2"
       sources."multistream-4.1.0"
-      sources."nan-2.18.0"
+      sources."nan-2.19.0"
       sources."napi-build-utils-1.0.2"
       sources."negotiator-0.6.3"
-      (sources."node-abi-3.54.0" // {
+      (sources."node-abi-3.56.0" // {
         dependencies = [
           sources."lru-cache-6.0.0"
           sources."semver-7.6.0"
@@ -83278,7 +82895,7 @@ in
       sources."object.getownpropertydescriptors-2.1.7"
       sources."on-finished-2.4.1"
       sources."once-1.4.0"
-      sources."openpgp-5.11.0"
+      sources."openpgp-5.11.1"
       sources."p-is-promise-3.0.0"
       sources."p-limit-2.3.0"
       sources."p-locate-3.0.0"
@@ -83322,6 +82939,7 @@ in
           sources."yallist-4.0.0"
         ];
       })
+      sources."possible-typed-array-names-1.0.0"
       (sources."prebuild-install-7.1.1" // {
         dependencies = [
           sources."decompress-response-6.0.0"
@@ -83343,7 +82961,7 @@ in
       sources."queue-microtask-1.2.3"
       sources."randombytes-2.1.0"
       sources."range-parser-1.2.1"
-      (sources."raw-body-2.5.1" // {
+      (sources."raw-body-2.5.2" // {
         dependencies = [
           sources."iconv-lite-0.4.24"
         ];
@@ -83363,7 +82981,7 @@ in
       sources."rimraf-3.0.2"
       sources."ripemd160-2.0.2"
       sources."run-parallel-1.2.0"
-      sources."safe-array-concat-1.1.0"
+      sources."safe-array-concat-1.1.2"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-test-1.0.3"
       sources."safer-buffer-2.1.2"
@@ -83385,13 +83003,13 @@ in
       })
       sources."serve-static-1.15.0"
       sources."set-blocking-2.0.0"
-      sources."set-function-length-1.2.1"
-      sources."set-function-name-2.0.1"
+      sources."set-function-length-1.2.2"
+      sources."set-function-name-2.0.2"
       sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
       sources."shallow-clone-3.0.1"
       sources."shellwords-0.1.1"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       sources."simple-concat-1.0.1"
       sources."simple-get-3.1.1"
@@ -83410,8 +83028,8 @@ in
       })
       sources."strict-uri-encode-2.0.0"
       sources."string-width-4.2.3"
-      sources."string.prototype.trim-1.2.8"
-      sources."string.prototype.trimend-1.0.7"
+      sources."string.prototype.trim-1.2.9"
+      sources."string.prototype.trimend-1.0.8"
       sources."string.prototype.trimstart-1.0.7"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
@@ -83438,10 +83056,10 @@ in
       sources."tslib-2.6.2"
       sources."tunnel-agent-0.6.0"
       sources."type-is-1.6.18"
-      sources."typed-array-buffer-1.0.1"
-      sources."typed-array-byte-length-1.0.0"
-      sources."typed-array-byte-offset-1.0.0"
-      sources."typed-array-length-1.0.4"
+      sources."typed-array-buffer-1.0.2"
+      sources."typed-array-byte-length-1.0.1"
+      sources."typed-array-byte-offset-1.0.2"
+      sources."typed-array-length-1.0.5"
       sources."unbox-primitive-1.0.2"
       sources."universalify-0.2.0"
       sources."unpipe-1.0.0"
@@ -83468,7 +83086,7 @@ in
       sources."whatwg-url-5.0.0"
       sources."which-2.0.2"
       sources."which-boxed-primitive-1.0.2"
-      sources."which-typed-array-1.1.14"
+      sources."which-typed-array-1.1.15"
       sources."wide-align-1.1.5"
       (sources."wrap-ansi-7.0.0" // {
         dependencies = [
@@ -83598,9 +83216,9 @@ in
       sources."@npmcli/node-gyp-3.0.0"
       sources."@npmcli/promise-spawn-7.0.1"
       sources."@npmcli/run-script-7.0.2"
-      sources."@nrwl/devkit-18.0.4"
-      sources."@nrwl/tao-18.0.4"
-      sources."@nx/devkit-18.0.4"
+      sources."@nrwl/devkit-18.1.2"
+      sources."@nrwl/tao-18.1.2"
+      sources."@nx/devkit-18.1.2"
       sources."@octokit/auth-token-3.0.4"
       sources."@octokit/core-4.2.4"
       sources."@octokit/endpoint-7.0.6"
@@ -83656,13 +83274,13 @@ in
         ];
       })
       sources."@sinclair/typebox-0.27.8"
-      sources."@swc-node/core-1.12.0"
-      sources."@swc-node/register-1.8.0"
-      sources."@swc-node/sourcemap-support-0.4.0"
-      sources."@swc/core-1.4.1"
+      sources."@swc-node/core-1.13.0"
+      sources."@swc-node/register-1.9.0"
+      sources."@swc-node/sourcemap-support-0.5.0"
+      sources."@swc/core-1.4.8"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.6"
-      sources."@swc/types-0.1.5"
+      sources."@swc/helpers-0.5.7"
+      sources."@swc/types-0.1.6"
       sources."@tootallnate/once-2.0.0"
       sources."@tufjs/canonical-json-1.0.0"
       (sources."@tufjs/models-1.0.4" // {
@@ -83705,7 +83323,7 @@ in
       sources."arrify-1.0.1"
       sources."async-3.2.5"
       sources."asynckit-0.4.0"
-      sources."axios-1.6.7"
+      sources."axios-1.6.8"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."before-after-hook-2.2.3"
@@ -83846,7 +83464,7 @@ in
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."flat-5.0.2"
-      sources."follow-redirects-1.15.5"
+      sources."follow-redirects-1.15.6"
       (sources."foreground-child-3.1.1" // {
         dependencies = [
           sources."signal-exit-4.1.0"
@@ -83901,7 +83519,7 @@ in
       sources."hard-rejection-2.1.0"
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hosted-git-info-2.8.9"
       sources."http-cache-semantics-4.1.1"
       sources."http-proxy-agent-7.0.2"
@@ -84159,7 +83777,7 @@ in
       })
       sources."npm-run-path-4.0.1"
       sources."npmlog-6.0.2"
-      (sources."nx-18.0.4" // {
+      (sources."nx-18.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."cli-spinners-2.6.1"
@@ -84223,7 +83841,6 @@ in
       sources."parse-path-7.0.0"
       sources."parse-url-8.1.0"
       sources."path-exists-4.0.0"
-      sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
       sources."path-scurry-1.10.1"
@@ -84339,7 +83956,7 @@ in
       })
       sources."slash-3.0.0"
       sources."smart-buffer-4.2.0"
-      sources."socks-2.8.0"
+      sources."socks-2.8.1"
       sources."socks-proxy-agent-8.0.2"
       sources."sort-keys-2.0.0"
       sources."source-map-0.6.1"
@@ -84393,14 +84010,7 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      (sources."tmp-0.2.1" // {
-        dependencies = [
-          sources."brace-expansion-1.1.11"
-          sources."glob-7.2.3"
-          sources."minimatch-3.1.2"
-          sources."rimraf-3.0.2"
-        ];
-      })
+      sources."tmp-0.2.3"
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."trim-newlines-3.0.1"
@@ -84434,7 +84044,7 @@ in
       })
       sources."type-fest-0.18.1"
       sources."typedarray-0.0.6"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."uglify-js-3.17.4"
       sources."unique-filename-3.0.0"
       sources."unique-slug-4.0.0"
@@ -84689,7 +84299,7 @@ in
           sources."kind-of-4.0.0"
         ];
       })
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."http-auth-3.1.3"
       (sources."http-errors-2.0.0" // {
         dependencies = [
@@ -84727,7 +84337,7 @@ in
       sources."mixin-deep-1.3.2"
       sources."morgan-1.10.0"
       sources."ms-2.0.0"
-      sources."nan-2.18.0"
+      sources."nan-2.19.0"
       sources."nanomatch-1.2.13"
       sources."negotiator-0.6.3"
       sources."normalize-path-3.0.0"
@@ -84973,10 +84583,8 @@ in
       sources."etag-1.8.1"
       sources."expand-brackets-0.1.5"
       sources."expand-range-1.8.2"
-      (sources."express-4.18.2" // {
+      (sources."express-4.18.3" // {
         dependencies = [
-          sources."body-parser-1.20.1"
-          sources."raw-body-2.5.1"
           sources."safe-buffer-5.2.1"
         ];
       })
@@ -85020,7 +84628,7 @@ in
       })
       sources."has-cors-1.1.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       (sources."has-value-1.0.0" // {
         dependencies = [
@@ -85037,7 +84645,7 @@ in
           sources."kind-of-4.0.0"
         ];
       })
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."html-entities-1.4.0"
       sources."http-errors-2.0.0"
       sources."http-signature-1.2.0"
@@ -85099,7 +84707,7 @@ in
         ];
       })
       sources."ms-2.0.0"
-      sources."nan-2.18.0"
+      sources."nan-2.19.0"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
           sources."arr-diff-4.0.0"
@@ -85213,14 +84821,14 @@ in
         ];
       })
       sources."serve-static-1.15.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
         ];
       })
       sources."setprototypeof-1.2.0"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -85343,7 +84951,7 @@ in
       sources."debug-4.3.2"
       sources."emoji-regex-8.0.0"
       sources."escalade-3.1.2"
-      sources."follow-redirects-1.15.5"
+      sources."follow-redirects-1.15.6"
       sources."get-caller-file-2.0.5"
       sources."is-fullwidth-code-point-3.0.0"
       sources."ms-2.1.2"
@@ -85396,7 +85004,7 @@ in
       sources."@types/commander-2.12.2"
       sources."@types/diff-3.5.8"
       sources."@types/get-stdin-5.0.1"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."commander-2.20.3"
       sources."diff-3.5.0"
       sources."get-stdin-5.0.1"
@@ -85468,13 +85076,17 @@ in
   markdown-link-check = nodeEnv.buildNodePackage {
     name = "markdown-link-check";
     packageName = "markdown-link-check";
-    version = "3.11.2";
+    version = "3.12.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.11.2.tgz";
-      sha512 = "zave+vI4AMeLp0FlUllAwGbNytSKsS3R2Zgtf3ufVT892Z/L6Ro9osZwE9PNA7s0IkJ4onnuHqatpsaCiAShJw==";
+      url = "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.12.1.tgz";
+      sha512 = "qjaopy0tcZFKMhr+wAOQf7KyValRXygTOaZQ3Ka1rf+nyObIUdU9hUVY93gYysz8+hx92YnXnKh1dmNRPO/5bA==";
     };
     dependencies = [
+      sources."@tootallnate/quickjs-emscripten-0.23.0"
+      sources."agent-base-7.1.0"
+      sources."ast-types-0.13.4"
       sources."async-3.2.5"
+      sources."basic-ftp-5.0.5"
       sources."boolbase-1.0.0"
       sources."chalk-5.3.0"
       sources."cheerio-1.0.0-rc.12"
@@ -85482,30 +85094,62 @@ in
       sources."commander-10.0.1"
       sources."css-select-5.1.0"
       sources."css-what-6.1.0"
+      sources."data-uri-to-buffer-6.0.2"
+      (sources."debug-4.3.4" // {
+        dependencies = [
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."degenerator-5.0.1"
       sources."dom-serializer-2.0.0"
       sources."domelementtype-2.3.0"
       sources."domhandler-5.0.3"
       sources."domutils-3.1.0"
       sources."entities-4.5.0"
+      sources."escodegen-2.1.0"
+      sources."esprima-4.0.1"
+      sources."estraverse-5.3.0"
+      sources."esutils-2.0.3"
+      sources."fs-extra-11.2.0"
+      sources."get-uri-6.0.3"
+      sources."graceful-fs-4.2.11"
       sources."html-link-extractor-1.0.5"
       sources."htmlparser2-8.0.2"
+      sources."http-proxy-agent-7.0.2"
+      sources."https-proxy-agent-7.0.4"
       sources."iconv-lite-0.6.3"
+      sources."ip-address-9.0.5"
       sources."is-absolute-url-4.0.1"
       sources."is-relative-url-4.0.0"
       sources."isemail-3.2.0"
-      sources."link-check-5.2.0"
+      sources."jsbn-1.1.0"
+      sources."jsonfile-6.1.0"
+      sources."link-check-5.3.0"
       sources."lodash-4.17.21"
-      sources."markdown-link-extractor-3.1.0"
-      sources."marked-4.3.0"
+      sources."lru-cache-7.18.3"
+      sources."markdown-link-extractor-4.0.2"
+      sources."marked-12.0.1"
       sources."ms-2.1.3"
       sources."needle-3.3.1"
+      sources."netmask-2.0.2"
       sources."nth-check-2.1.1"
+      sources."pac-proxy-agent-7.0.1"
+      sources."pac-resolver-7.0.1"
       sources."parse5-7.1.2"
       sources."parse5-htmlparser2-tree-adapter-7.0.0"
       sources."progress-2.0.3"
+      sources."proxy-agent-6.4.0"
+      sources."proxy-from-env-1.1.0"
       sources."punycode-2.3.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.3.0"
+      sources."smart-buffer-4.2.0"
+      sources."socks-2.8.1"
+      sources."socks-proxy-agent-8.0.2"
+      sources."source-map-0.6.1"
+      sources."sprintf-js-1.1.3"
+      sources."tslib-2.6.2"
+      sources."universalify-2.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -85572,7 +85216,7 @@ in
       sources."concat-map-0.0.1"
       sources."concat-stream-1.6.2"
       sources."core-util-is-1.0.3"
-      sources."d-1.0.1"
+      sources."d-1.0.2"
       sources."dashdash-1.14.1"
       sources."dateformat-2.2.0"
       sources."deasync-0.1.20"
@@ -85593,19 +85237,16 @@ in
       sources."entities-1.1.2"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
-      sources."es5-ext-0.10.62"
+      sources."es5-ext-0.10.64"
       sources."es6-iterator-2.0.3"
       sources."es6-map-0.1.5"
-      (sources."es6-set-0.1.6" // {
-        dependencies = [
-          sources."type-2.7.2"
-        ];
-      })
-      sources."es6-symbol-3.1.3"
+      sources."es6-set-0.1.6"
+      sources."es6-symbol-3.1.4"
       sources."es6-weak-map-2.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."escope-3.6.0"
       sources."eslint-3.19.0"
+      sources."esniff-2.0.1"
       sources."espree-3.5.4"
       sources."esprima-4.0.1"
       (sources."esquery-1.5.0" // {
@@ -85622,11 +85263,7 @@ in
       sources."esutils-2.0.3"
       sources."event-emitter-0.3.5"
       sources."exit-hook-1.1.1"
-      (sources."ext-1.7.0" // {
-        dependencies = [
-          sources."type-2.7.2"
-        ];
-      })
+      sources."ext-1.7.0"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."fancy-log-1.3.3"
@@ -85666,9 +85303,9 @@ in
       sources."has-ansi-2.0.0"
       sources."has-gulplog-0.1.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."http-signature-1.2.0"
       sources."ignore-3.3.10"
       sources."imurmurhash-0.1.4"
@@ -85769,7 +85406,7 @@ in
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."sax-1.3.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."shelljs-0.7.8"
       sources."slice-ansi-0.0.4"
       sources."sparkles-1.0.1"
@@ -85803,7 +85440,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."twitter-1.7.1"
-      sources."type-1.2.0"
+      sources."type-2.7.2"
       sources."type-check-0.3.2"
       sources."typedarray-0.0.6"
       sources."uri-js-4.4.1"
@@ -85903,7 +85540,7 @@ in
       sources."anymatch-3.1.3"
       sources."argparse-2.0.1"
       sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."browser-stdout-1.3.1"
@@ -86018,9 +85655,9 @@ in
       sources."gopd-1.0.1"
       sources."graphlib-2.1.8"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hexoid-1.0.0"
       sources."inherits-2.0.4"
       sources."js-yaml-3.14.1"
@@ -86041,12 +85678,12 @@ in
       sources."once-1.4.0"
       sources."path-loader-1.0.12"
       sources."punycode-2.3.1"
-      sources."qs-6.11.2"
+      sources."qs-6.12.0"
       sources."readable-stream-3.6.2"
       sources."safe-buffer-5.2.1"
       sources."semver-7.6.0"
-      sources."set-function-length-1.2.1"
-      sources."side-channel-1.0.5"
+      sources."set-function-length-1.2.2"
+      sources."side-channel-1.0.6"
       sources."slash-3.0.0"
       sources."sprintf-js-1.0.3"
       sources."string_decoder-1.3.0"
@@ -86068,10 +85705,10 @@ in
   neovim = nodeEnv.buildNodePackage {
     name = "neovim";
     packageName = "neovim";
-    version = "4.11.0";
+    version = "5.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/neovim/-/neovim-4.11.0.tgz";
-      sha512 = "8JJr7fr43xvldrrM0Y+Oij5JNdHrpi8x/EulEGexshMMWWGgBqL+QN2IbYkwWv8UyArQRbJnawqeuEH7OEu43g==";
+      url = "https://registry.npmjs.org/neovim/-/neovim-5.0.1.tgz";
+      sha512 = "dGrk2r+uQDZHB8yFKBuHUBqwP1akbCGUQt+Re7nRaS3uhOvsKYUvikg5qBRdcxoWMvvHIqp1EVihskKAk93mPw==";
     };
     dependencies = [
       sources."@colors/colors-1.6.0"
@@ -86092,13 +85729,11 @@ in
       sources."is-stream-2.0.1"
       sources."kuler-2.0.0"
       sources."logform-2.6.0"
-      sources."lru-cache-6.0.0"
       sources."ms-2.1.3"
       sources."one-time-1.0.0"
       sources."readable-stream-3.6.2"
       sources."safe-buffer-5.2.1"
       sources."safe-stable-stringify-2.4.3"
-      sources."semver-7.6.0"
       sources."simple-swizzle-0.2.2"
       sources."stack-trace-0.0.10"
       sources."string_decoder-1.3.0"
@@ -86107,7 +85742,6 @@ in
       sources."util-deprecate-1.0.2"
       sources."winston-3.11.0"
       sources."winston-transport-4.7.0"
-      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -86236,7 +85870,7 @@ in
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
       sources."smart-buffer-4.2.0"
-      sources."socks-2.8.0"
+      sources."socks-2.8.1"
       sources."socks-proxy-agent-8.0.2"
       sources."sprintf-js-1.1.3"
       sources."ssri-10.0.5"
@@ -86401,26 +86035,26 @@ in
   node-red = nodeEnv.buildNodePackage {
     name = "node-red";
     packageName = "node-red";
-    version = "3.1.5";
+    version = "3.1.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-red/-/node-red-3.1.5.tgz";
-      sha512 = "Rz5dBK7AdsQZsbDbdScUriDZHYhUy03k66UGC4gPvWbDxfxQnMSWPhYmxux3wvtP/j+yg0D+rZA8nXVYNqksVA==";
+      url = "https://registry.npmjs.org/node-red/-/node-red-3.1.7.tgz";
+      sha512 = "FQH9nEPNLjXrsSmcl8DL51htu800kW0BVvTmn4j0jldOiFZyW+LzmxVTp7HhLuG1MTMrYvjaimMcLbxTL8ytAA==";
     };
     dependencies = [
-      sources."@babel/runtime-7.23.9"
+      sources."@babel/runtime-7.24.0"
       sources."@mapbox/node-pre-gyp-1.0.11"
-      sources."@node-red/editor-api-3.1.5"
-      sources."@node-red/editor-client-3.1.5"
-      (sources."@node-red/nodes-3.1.5" // {
+      sources."@node-red/editor-api-3.1.7"
+      sources."@node-red/editor-client-3.1.7"
+      (sources."@node-red/nodes-3.1.7" // {
         dependencies = [
           sources."cookie-0.5.0"
           sources."iconv-lite-0.6.3"
           sources."media-typer-1.1.0"
         ];
       })
-      sources."@node-red/registry-3.1.5"
-      sources."@node-red/runtime-3.1.5"
-      sources."@node-red/util-3.1.5"
+      sources."@node-red/registry-3.1.7"
+      sources."@node-red/runtime-3.1.7"
+      sources."@node-red/util-3.1.7"
       sources."@sindresorhus/is-5.6.0"
       sources."@szmarczak/http-timer-5.0.1"
       sources."@types/http-cache-semantics-4.0.4"
@@ -86448,7 +86082,7 @@ in
       sources."array-flatten-1.1.1"
       sources."async-mutex-0.4.0"
       sources."asynckit-0.4.0"
-      sources."axios-1.6.7"
+      sources."axios-1.6.8"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       (sources."basic-auth-2.0.1" // {
@@ -86518,7 +86152,7 @@ in
       sources."domelementtype-2.3.0"
       sources."domhandler-4.3.1"
       sources."domutils-2.8.0"
-      (sources."duplexify-4.1.2" // {
+      (sources."duplexify-4.1.3" // {
         dependencies = [
           sources."readable-stream-3.6.2"
         ];
@@ -86548,7 +86182,7 @@ in
       sources."express-session-1.17.3"
       sources."fast-deep-equal-3.1.3"
       sources."finalhandler-1.2.0"
-      sources."follow-redirects-1.15.5"
+      sources."follow-redirects-1.15.6"
       sources."form-data-4.0.0"
       sources."form-data-encoder-2.1.4"
       sources."forwarded-0.2.0"
@@ -86574,11 +86208,11 @@ in
       sources."got-12.6.0"
       sources."graceful-fs-4.2.11"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-unicode-2.0.1"
       sources."hash-sum-2.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       (sources."help-me-3.0.0" // {
         dependencies = [
           sources."readable-stream-3.6.2"
@@ -86609,7 +86243,7 @@ in
       sources."json-buffer-3.0.1"
       sources."json-schema-traverse-1.0.0"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonata-1.8.6"
+      sources."jsonata-1.8.7"
       (sources."jsonfile-6.1.0" // {
         dependencies = [
           sources."universalify-2.0.1"
@@ -86677,7 +86311,7 @@ in
       sources."node-red-admin-3.1.2"
       sources."node-watch-0.7.4"
       sources."nopt-5.0.0"
-      sources."normalize-url-8.0.0"
+      sources."normalize-url-8.0.1"
       sources."npmlog-5.0.1"
       sources."nth-check-2.1.1"
       (sources."number-allocator-1.0.14" // {
@@ -86747,9 +86381,9 @@ in
       })
       sources."serve-static-1.15.0"
       sources."set-blocking-2.0.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."setprototypeof-1.2.0"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       (sources."split2-3.2.2" // {
         dependencies = [
@@ -86872,7 +86506,7 @@ in
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-unicode-2.0.1"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hosted-git-info-2.8.9"
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
@@ -87017,16 +86651,16 @@ in
   nodemon = nodeEnv.buildNodePackage {
     name = "nodemon";
     packageName = "nodemon";
-    version = "3.0.3";
+    version = "3.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/nodemon/-/nodemon-3.0.3.tgz";
-      sha512 = "7jH/NXbFPxVaMwmBCC2B9F/V6X1VkEdNgx3iu9jji8WxWcvhMWkmhNWhI5077zknOnZnBzba9hZP6bCPJLSReQ==";
+      url = "https://registry.npmjs.org/nodemon/-/nodemon-3.1.0.tgz";
+      sha512 = "xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
       sources."anymatch-3.1.3"
       sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."chokidar-3.6.0"
@@ -87069,10 +86703,10 @@ in
   np = nodeEnv.buildNodePackage {
     name = "np";
     packageName = "np";
-    version = "9.2.0";
+    version = "10.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/np/-/np-9.2.0.tgz";
-      sha512 = "VYA8IKyx5XJqROr2vu8NAstfgBznrnOu3PUByFl3TBwzQVkeGC+gzOPzGbvYKM1QwlX6Gt7kVSPMzDP4qkSs1g==";
+      url = "https://registry.npmjs.org/np/-/np-10.0.1.tgz";
+      sha512 = "3yP6WBrbyEvjTBpOxVYtinFf+vGfX+XNZXC1+Jjj/TWJjbt/GIpUz1BNvuCi7sqHtpVBJnnOIkH7yg3d1aK9lg==";
     };
     dependencies = [
       (sources."@babel/code-frame-7.23.5" // {
@@ -87088,16 +86722,7 @@ in
           sources."escape-string-regexp-1.0.5"
         ];
       })
-      (sources."@bconnorwhite/module-2.0.2" // {
-        dependencies = [
-          sources."find-up-5.0.0"
-          sources."locate-path-6.0.0"
-          sources."p-limit-3.1.0"
-          sources."p-locate-5.0.0"
-          sources."path-exists-4.0.0"
-        ];
-      })
-      sources."@ljharb/through-2.3.12"
+      sources."@ljharb/through-2.3.13"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -87109,16 +86734,11 @@ in
       })
       sources."@pnpm/npm-conf-2.2.2"
       sources."@samverschueren/stream-to-observable-0.3.1"
-      sources."@sindresorhus/is-4.6.0"
-      sources."@szmarczak/http-timer-4.0.6"
-      sources."@types/cacheable-request-6.0.3"
+      sources."@sindresorhus/is-5.6.0"
+      sources."@szmarczak/http-timer-5.0.1"
       sources."@types/http-cache-semantics-4.0.4"
-      sources."@types/keyv-3.1.4"
-      sources."@types/node-20.11.19"
       sources."@types/normalize-package-data-2.4.4"
-      sources."@types/responselike-1.0.3"
       sources."aggregate-error-4.0.1"
-      sources."all-package-names-2.0.859"
       sources."ansi-align-3.0.1"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
@@ -87127,7 +86747,6 @@ in
       sources."argparse-2.0.1"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
-      sources."big-integer-1.6.52"
       sources."bl-4.1.0"
       (sources."boxen-7.1.1" // {
         dependencies = [
@@ -87140,16 +86759,15 @@ in
           sources."wrap-ansi-8.1.0"
         ];
       })
-      sources."bplist-parser-0.2.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."buffer-5.7.1"
-      sources."builtins-1.0.3"
-      sources."bundle-name-3.0.0"
-      sources."cacheable-lookup-5.0.4"
-      (sources."cacheable-request-7.0.4" // {
+      sources."builtins-5.0.1"
+      sources."bundle-name-4.1.0"
+      sources."cacheable-lookup-7.0.0"
+      (sources."cacheable-request-10.2.14" // {
         dependencies = [
-          sources."get-stream-5.2.0"
+          sources."get-stream-6.0.1"
         ];
       })
       sources."call-bind-1.0.7"
@@ -87172,23 +86790,16 @@ in
       })
       sources."cli-width-4.1.0"
       sources."clone-1.0.4"
-      sources."clone-response-1.0.3"
       sources."code-point-at-1.1.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."commander-6.2.1"
-      sources."commander-version-1.1.0"
       sources."concat-map-0.0.1"
       (sources."config-chain-1.1.13" // {
         dependencies = [
           sources."ini-1.3.8"
         ];
       })
-      (sources."configstore-6.0.0" // {
-        dependencies = [
-          sources."dot-prop-6.0.1"
-        ];
-      })
+      sources."configstore-6.0.0"
       sources."cosmiconfig-8.3.6"
       sources."cross-spawn-7.0.3"
       (sources."crypto-random-string-4.0.0" // {
@@ -87203,31 +86814,18 @@ in
         ];
       })
       sources."deep-extend-0.6.0"
-      (sources."default-browser-4.0.0" // {
-        dependencies = [
-          sources."execa-7.2.0"
-          sources."get-stream-6.0.1"
-          sources."human-signals-4.3.1"
-          sources."onetime-6.0.0"
-          sources."signal-exit-3.0.7"
-        ];
-      })
-      sources."default-browser-id-3.0.0"
+      sources."default-browser-5.2.1"
+      sources."default-browser-id-5.0.0"
       sources."defaults-1.0.4"
       sources."defer-to-connect-2.0.1"
       sources."define-data-property-1.1.4"
       sources."define-lazy-prop-3.0.0"
       sources."del-7.1.0"
       sources."dir-glob-3.0.1"
-      (sources."dot-prop-7.2.0" // {
-        dependencies = [
-          sources."type-fest-2.19.0"
-        ];
-      })
+      sources."dot-prop-6.0.1"
       sources."eastasianwidth-0.2.0"
       sources."elegant-spinner-1.0.1"
       sources."emoji-regex-8.0.0"
-      sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
@@ -87270,7 +86868,11 @@ in
       })
       sources."globby-13.2.2"
       sources."gopd-1.0.1"
-      sources."got-11.8.6"
+      (sources."got-12.6.1" // {
+        dependencies = [
+          sources."get-stream-6.0.1"
+        ];
+      })
       sources."graceful-fs-4.2.11"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
@@ -87279,13 +86881,12 @@ in
       })
       sources."has-flag-3.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."has-yarn-3.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hosted-git-info-7.0.1"
       sources."http-cache-semantics-4.1.1"
-      sources."http2-wrapper-1.0.3"
+      sources."http2-wrapper-2.2.1"
       sources."human-signals-5.0.0"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
@@ -87309,7 +86910,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-4.1.1"
-      sources."inquirer-9.2.14"
+      sources."inquirer-9.2.16"
       (sources."inquirer-autosubmit-prompt-0.2.0" // {
         dependencies = [
           sources."ansi-escapes-3.2.0"
@@ -87350,7 +86951,6 @@ in
       sources."is-inside-container-1.0.0"
       sources."is-installed-globally-1.0.0"
       sources."is-interactive-2.0.0"
-      sources."is-name-taken-2.0.0"
       sources."is-npm-6.0.0"
       sources."is-number-7.0.0"
       sources."is-obj-2.0.0"
@@ -87367,11 +86967,7 @@ in
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
       sources."is-url-superb-6.1.0"
-      (sources."is-wsl-2.2.0" // {
-        dependencies = [
-          sources."is-docker-2.2.1"
-        ];
-      })
+      sources."is-wsl-3.1.0"
       sources."isexe-2.0.0"
       sources."issue-regex-4.1.0"
       sources."js-tokens-4.0.0"
@@ -87379,6 +86975,7 @@ in
       sources."json-buffer-3.0.1"
       sources."json-parse-even-better-errors-2.3.1"
       sources."keyv-4.5.4"
+      sources."ky-1.2.2"
       sources."latest-version-7.0.0"
       sources."lines-and-columns-1.2.4"
       (sources."listr-0.14.3" // {
@@ -87431,7 +87028,6 @@ in
       })
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
-      sources."lodash.isequal-4.5.0"
       sources."lodash.zip-4.2.0"
       (sources."log-symbols-6.0.0" // {
         dependencies = [
@@ -87453,15 +87049,15 @@ in
           sources."wrap-ansi-3.0.1"
         ];
       })
-      sources."lowercase-keys-2.0.0"
+      sources."lowercase-keys-3.0.0"
       sources."lru-cache-10.2.0"
-      sources."meow-12.1.1"
+      sources."meow-13.2.0"
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
       sources."mimic-fn-4.0.0"
-      sources."mimic-function-5.0.0"
-      sources."mimic-response-1.0.1"
+      sources."mimic-function-5.0.1"
+      sources."mimic-response-4.0.0"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.8"
       sources."mute-stream-1.0.0"
@@ -87471,9 +87067,13 @@ in
         ];
       })
       sources."normalize-package-data-6.0.0"
-      sources."normalize-url-6.1.0"
-      sources."npm-name-7.1.1"
-      (sources."npm-run-path-5.2.0" // {
+      sources."normalize-url-8.0.1"
+      (sources."npm-name-8.0.0" // {
+        dependencies = [
+          sources."p-map-7.0.1"
+        ];
+      })
+      (sources."npm-run-path-5.3.0" // {
         dependencies = [
           sources."path-key-4.0.0"
         ];
@@ -87482,7 +87082,7 @@ in
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
       sources."onetime-7.0.0"
-      sources."open-9.1.0"
+      sources."open-10.1.0"
       (sources."ora-5.4.1" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -87497,16 +87097,9 @@ in
       })
       sources."org-regex-1.0.0"
       sources."os-tmpdir-1.0.2"
-      (sources."ow-1.1.1" // {
-        dependencies = [
-          sources."@sindresorhus/is-5.6.0"
-          sources."callsites-4.1.0"
-        ];
-      })
-      sources."p-cancelable-2.1.1"
+      sources."p-cancelable-3.0.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
-      sources."p-lock-2.1.0"
       sources."p-map-5.5.0"
       (sources."p-memoize-7.1.1" // {
         dependencies = [
@@ -87515,36 +87108,16 @@ in
       })
       sources."p-timeout-6.1.2"
       sources."p-try-2.2.0"
-      (sources."package-json-8.1.1" // {
-        dependencies = [
-          sources."@sindresorhus/is-5.6.0"
-          sources."@szmarczak/http-timer-5.0.1"
-          sources."cacheable-lookup-7.0.0"
-          sources."cacheable-request-10.2.14"
-          sources."get-stream-6.0.1"
-          sources."got-12.6.1"
-          sources."http2-wrapper-2.2.1"
-          sources."lowercase-keys-3.0.0"
-          sources."mimic-response-4.0.0"
-          sources."normalize-url-8.0.0"
-          sources."p-cancelable-3.0.0"
-          sources."registry-auth-token-5.0.2"
-          sources."responselike-3.0.0"
-        ];
-      })
-      sources."package-name-conflict-1.0.3"
+      sources."package-json-8.1.1"
       sources."parent-module-1.0.1"
       sources."parse-json-5.2.0"
-      sources."parse-json-object-2.0.1"
       sources."path-exists-5.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-type-4.0.0"
       sources."picomatch-2.3.1"
       sources."pkg-dir-8.0.0"
-      sources."progress-2.0.3"
       sources."proto-list-1.2.4"
-      sources."pump-3.0.0"
       sources."pupa-3.1.0"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-5.1.1"
@@ -87553,25 +87126,19 @@ in
           sources."ini-1.3.8"
         ];
       })
-      sources."read-file-safe-1.0.10"
-      (sources."read-json-safe-1.0.5" // {
-        dependencies = [
-          sources."parse-json-object-1.1.0"
-        ];
-      })
       (sources."read-package-up-11.0.0" // {
         dependencies = [
-          sources."type-fest-4.10.2"
+          sources."type-fest-4.12.0"
         ];
       })
       (sources."read-pkg-9.0.1" // {
         dependencies = [
           sources."parse-json-8.1.0"
-          sources."type-fest-4.10.2"
+          sources."type-fest-4.12.0"
         ];
       })
       sources."readable-stream-3.6.2"
-      sources."registry-auth-token-4.2.2"
+      sources."registry-auth-token-5.0.2"
       sources."registry-url-6.0.1"
       sources."resolve-alpn-1.2.1"
       (sources."resolve-cwd-3.0.0" // {
@@ -87580,7 +87147,7 @@ in
         ];
       })
       sources."resolve-from-4.0.0"
-      sources."responselike-2.0.1"
+      sources."responselike-3.0.0"
       (sources."restore-cursor-3.1.0" // {
         dependencies = [
           sources."mimic-fn-2.1.0"
@@ -87590,19 +87157,7 @@ in
       })
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
-      (sources."run-applescript-5.0.0" // {
-        dependencies = [
-          sources."execa-5.1.1"
-          sources."get-stream-6.0.1"
-          sources."human-signals-2.1.0"
-          sources."is-stream-2.0.1"
-          sources."mimic-fn-2.1.0"
-          sources."npm-run-path-4.0.1"
-          sources."onetime-5.1.2"
-          sources."signal-exit-3.0.7"
-          sources."strip-final-newline-2.0.0"
-        ];
-      })
+      sources."run-applescript-7.0.0"
       sources."run-async-3.0.0"
       sources."run-parallel-1.2.0"
       (sources."rxjs-7.8.1" // {
@@ -87619,7 +87174,7 @@ in
         ];
       })
       sources."semver-diff-4.0.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
@@ -87649,20 +87204,14 @@ in
         ];
       })
       sources."through-2.3.8"
-      sources."titleize-3.0.0"
       sources."tmp-0.0.33"
       sources."to-regex-range-5.0.1"
       sources."tslib-1.14.1"
       sources."type-fest-0.21.3"
       sources."typedarray-to-buffer-3.1.5"
-      sources."types-eslintrc-1.0.3"
-      sources."types-json-1.2.2"
-      sources."types-pkg-json-1.2.1"
-      sources."typescript-5.3.3"
-      sources."undici-types-5.26.5"
+      sources."typescript-5.4.2"
       sources."unicorn-magic-0.1.0"
       sources."unique-string-3.0.0"
-      sources."untildify-4.0.0"
       (sources."update-notifier-7.0.0" // {
         dependencies = [
           sources."is-installed-globally-0.4.0"
@@ -87670,9 +87219,8 @@ in
         ];
       })
       sources."util-deprecate-1.0.2"
-      sources."vali-date-1.0.0"
       sources."validate-npm-package-license-3.0.4"
-      sources."validate-npm-package-name-3.0.0"
+      sources."validate-npm-package-name-5.0.0"
       sources."wcwidth-1.0.1"
       sources."which-2.0.2"
       (sources."widest-line-4.0.1" // {
@@ -87698,7 +87246,6 @@ in
       })
       sources."xdg-basedir-5.1.0"
       sources."yallist-4.0.0"
-      sources."yocto-queue-0.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -87713,10 +87260,10 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "10.4.0";
+    version = "10.5.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-10.4.0.tgz";
-      sha512 = "RS7Mx0OVfXlOcQLRePuDIYdFCVBPCNapWHplDK+mh7GDdP/Tvor4ocuybRRPSvfcRb2vjRJt1fHCqw3cr8qACQ==";
+      url = "https://registry.npmjs.org/npm/-/npm-10.5.0.tgz";
+      sha512 = "Ejxwvfh9YnWVU2yA5FzoYLTW52vxHCz+MHrOFg9Cc8IFgF/6f5AGPAvb5WTay5DIUP1NIfN3VBZ0cLlGO0Ys+A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -87785,10 +87332,10 @@ in
   orval = nodeEnv.buildNodePackage {
     name = "orval";
     packageName = "orval";
-    version = "6.24.0";
+    version = "6.25.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/orval/-/orval-6.24.0.tgz";
-      sha512 = "UH7fyEdFyy7twSH0WR02TL4q2obFjIxv3Q1lQu9jfj+XHm06Hn60nMjd0Qgb4G+RhqqSWQtjTEXAhlFm8fiZlQ==";
+      url = "https://registry.npmjs.org/orval/-/orval-6.25.0.tgz";
+      sha512 = "UkM7QqIiRrFOnsGTNZUHilM6lXj1ZvGNoSC4pH3cYDH42oCgqI4GVfT5u35LJQNYtylTrFLydFRfssb05qwyhQ==";
     };
     dependencies = [
       sources."@apidevtools/json-schema-ref-parser-9.0.6"
@@ -87797,21 +87344,21 @@ in
       sources."@apidevtools/swagger-parser-10.1.0"
       sources."@asyncapi/specs-4.3.1"
       sources."@exodus/schemasafe-1.3.0"
-      sources."@ibm-cloud/openapi-ruleset-1.15.2"
-      sources."@ibm-cloud/openapi-ruleset-utilities-1.3.0"
+      sources."@ibm-cloud/openapi-ruleset-1.15.3"
+      sources."@ibm-cloud/openapi-ruleset-utilities-1.3.1"
       sources."@jsdevtools/ono-7.1.3"
       sources."@jsep-plugin/regex-1.0.3"
       sources."@jsep-plugin/ternary-1.1.3"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@orval/angular-6.24.0"
-      sources."@orval/axios-6.24.0"
-      sources."@orval/core-6.24.0"
-      sources."@orval/mock-6.24.0"
-      sources."@orval/query-6.24.0"
-      sources."@orval/swr-6.24.0"
-      sources."@orval/zod-6.24.0"
+      sources."@orval/angular-6.25.0"
+      sources."@orval/axios-6.25.0"
+      sources."@orval/core-6.25.0"
+      sources."@orval/mock-6.25.0"
+      sources."@orval/query-6.25.0"
+      sources."@orval/swr-6.25.0"
+      sources."@orval/zod-6.25.0"
       sources."@stoplight/better-ajv-errors-1.0.3"
       sources."@stoplight/json-3.21.0"
       (sources."@stoplight/json-ref-readers-1.2.2" // {
@@ -87843,7 +87390,7 @@ in
       sources."@stoplight/yaml-ast-parser-0.0.48"
       sources."@types/es-aggregate-error-1.0.6"
       sources."@types/json-schema-7.0.15"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/urijs-1.19.25"
       sources."abort-controller-3.0.0"
       sources."acorn-8.11.3"
@@ -87860,9 +87407,9 @@ in
       sources."array-union-2.1.0"
       sources."arraybuffer.prototype.slice-1.0.3"
       sources."astring-1.8.6"
-      sources."available-typed-arrays-1.0.6"
+      sources."available-typed-arrays-1.0.7"
       sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."cac-6.7.14"
@@ -87876,6 +87423,9 @@ in
       sources."compare-versions-6.1.0"
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
+      sources."data-view-buffer-1.0.1"
+      sources."data-view-byte-length-1.0.1"
+      sources."data-view-byte-offset-1.0.0"
       sources."debug-4.3.4"
       sources."define-data-property-1.1.4"
       sources."define-properties-1.2.1"
@@ -87884,11 +87434,12 @@ in
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."enquirer-2.4.1"
-      sources."es-abstract-1.22.4"
+      sources."es-abstract-1.23.2"
       sources."es-aggregate-error-1.0.12"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
-      sources."es-set-tostringtag-2.0.2"
+      sources."es-object-atoms-1.0.0"
+      sources."es-set-tostringtag-2.0.3"
       sources."es-to-primitive-1.2.1"
       sources."es6-promise-3.3.1"
       sources."esbuild-0.19.12"
@@ -87921,10 +87472,10 @@ in
       sources."has-bigints-1.0.2"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."http2-client-1.3.5"
       sources."human-signals-2.1.0"
       sources."iconv-lite-0.6.3"
@@ -87936,15 +87487,16 @@ in
       sources."is-binary-path-2.1.0"
       sources."is-boolean-object-1.1.2"
       sources."is-callable-1.2.7"
+      sources."is-data-view-1.0.1"
       sources."is-date-object-1.0.5"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
-      sources."is-negative-zero-2.0.2"
+      sources."is-negative-zero-2.0.3"
       sources."is-number-7.0.0"
       sources."is-number-object-1.0.7"
       sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.2"
+      sources."is-shared-array-buffer-1.0.3"
       sources."is-stream-2.0.1"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
@@ -88004,7 +87556,7 @@ in
       sources."openapi-types-12.1.3"
       (sources."openapi3-ts-4.2.1" // {
         dependencies = [
-          sources."yaml-2.3.4"
+          sources."yaml-2.4.1"
         ];
       })
       sources."p-limit-3.1.0"
@@ -88014,6 +87566,7 @@ in
       sources."path-type-4.0.0"
       sources."picomatch-2.3.1"
       sources."pony-cause-1.1.1"
+      sources."possible-typed-array-names-1.0.0"
       sources."punycode-2.3.1"
       sources."queue-microtask-1.2.3"
       sources."readdirp-3.6.0"
@@ -88023,12 +87576,12 @@ in
       sources."require-from-string-2.0.2"
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
-      sources."safe-array-concat-1.1.0"
+      sources."safe-array-concat-1.1.2"
       sources."safe-regex-test-1.0.3"
       sources."safe-stable-stringify-1.1.1"
       sources."safer-buffer-2.1.2"
-      sources."set-function-length-1.2.1"
-      sources."set-function-name-2.0.1"
+      sources."set-function-length-1.2.2"
+      sources."set-function-name-2.0.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."should-13.2.3"
@@ -88037,15 +87590,15 @@ in
       sources."should-type-1.4.0"
       sources."should-type-adaptors-1.1.0"
       sources."should-util-1.0.1"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       sources."simple-eval-1.0.0"
       sources."slash-3.0.0"
       sources."sprintf-js-1.0.3"
       sources."string-argv-0.3.2"
       sources."string-width-4.2.3"
-      sources."string.prototype.trim-1.2.8"
-      sources."string.prototype.trimend-1.0.7"
+      sources."string.prototype.trim-1.2.9"
+      sources."string.prototype.trimend-1.0.8"
       sources."string.prototype.trimstart-1.0.7"
       sources."strip-ansi-6.0.1"
       sources."strip-final-newline-2.0.0"
@@ -88055,11 +87608,11 @@ in
       sources."tr46-0.0.3"
       sources."tsconfck-2.1.2"
       sources."tslib-2.6.2"
-      sources."typed-array-buffer-1.0.1"
-      sources."typed-array-byte-length-1.0.0"
-      sources."typed-array-byte-offset-1.0.0"
-      sources."typed-array-length-1.0.4"
-      sources."typescript-5.3.3"
+      sources."typed-array-buffer-1.0.2"
+      sources."typed-array-byte-length-1.0.1"
+      sources."typed-array-byte-offset-1.0.2"
+      sources."typed-array-length-1.0.5"
+      sources."typescript-5.4.2"
       sources."unbox-primitive-1.0.2"
       sources."undici-types-5.26.5"
       sources."universalify-2.0.1"
@@ -88071,7 +87624,7 @@ in
       sources."whatwg-url-5.0.0"
       sources."which-2.0.2"
       sources."which-boxed-primitive-1.0.2"
-      sources."which-typed-array-1.1.14"
+      sources."which-typed-array-1.1.15"
       sources."wrap-ansi-7.0.0"
       sources."y18n-5.0.8"
       sources."yaml-1.10.2"
@@ -88092,10 +87645,10 @@ in
   parcel = nodeEnv.buildNodePackage {
     name = "parcel";
     packageName = "parcel";
-    version = "2.11.0";
+    version = "2.12.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/parcel/-/parcel-2.11.0.tgz";
-      sha512 = "H/RI1/DmuOkL8RuG/EpNPvtzrbF+7jA/R56ydEEm+lqFbYktKB4COR7JXdHkZXRgbSJyimrFB8d0r9+SaRnj0Q==";
+      url = "https://registry.npmjs.org/parcel/-/parcel-2.12.0.tgz";
+      sha512 = "W+gxAq7aQ9dJIg/XLKGcRT0cvnStFAQHPaI0pvD0U2l6IVLueUAm3nwN7lkY62zZNmlvNx6jNtE4wlbS+CyqSg==";
     };
     dependencies = [
       (sources."@babel/code-frame-7.23.5" // {
@@ -88109,12 +87662,12 @@ in
           sources."chalk-2.4.2"
         ];
       })
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
-      sources."@jridgewell/source-map-0.3.5"
+      sources."@jridgewell/set-array-1.2.1"
+      sources."@jridgewell/source-map-0.3.6"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@lezer/common-1.2.1"
       sources."@lezer/lr-1.4.0"
       sources."@lmdb/lmdb-darwin-arm64-2.8.5"
@@ -88124,96 +87677,96 @@ in
       sources."@lmdb/lmdb-linux-x64-2.8.5"
       sources."@lmdb/lmdb-win32-x64-2.8.5"
       sources."@mischnic/json-sourcemap-0.1.1"
-      sources."@parcel/bundler-default-2.11.0"
-      sources."@parcel/cache-2.11.0"
-      sources."@parcel/codeframe-2.11.0"
-      sources."@parcel/compressor-raw-2.11.0"
-      sources."@parcel/config-default-2.11.0"
-      sources."@parcel/core-2.11.0"
-      sources."@parcel/diagnostic-2.11.0"
-      sources."@parcel/events-2.11.0"
-      sources."@parcel/fs-2.11.0"
-      sources."@parcel/graph-3.1.0"
-      sources."@parcel/logger-2.11.0"
-      sources."@parcel/markdown-ansi-2.11.0"
-      sources."@parcel/namer-default-2.11.0"
-      sources."@parcel/node-resolver-core-3.2.0"
-      sources."@parcel/optimizer-css-2.11.0"
-      sources."@parcel/optimizer-htmlnano-2.11.0"
-      sources."@parcel/optimizer-image-2.11.0"
-      sources."@parcel/optimizer-svgo-2.11.0"
-      sources."@parcel/optimizer-swc-2.11.0"
-      sources."@parcel/package-manager-2.11.0"
-      sources."@parcel/packager-css-2.11.0"
-      sources."@parcel/packager-html-2.11.0"
-      sources."@parcel/packager-js-2.11.0"
-      sources."@parcel/packager-raw-2.11.0"
-      sources."@parcel/packager-svg-2.11.0"
-      sources."@parcel/packager-wasm-2.11.0"
-      sources."@parcel/plugin-2.11.0"
-      sources."@parcel/profiler-2.11.0"
-      sources."@parcel/reporter-cli-2.11.0"
-      sources."@parcel/reporter-dev-server-2.11.0"
-      sources."@parcel/reporter-tracer-2.11.0"
-      sources."@parcel/resolver-default-2.11.0"
-      sources."@parcel/runtime-browser-hmr-2.11.0"
-      sources."@parcel/runtime-js-2.11.0"
-      sources."@parcel/runtime-react-refresh-2.11.0"
-      sources."@parcel/runtime-service-worker-2.11.0"
-      sources."@parcel/rust-2.11.0"
+      sources."@parcel/bundler-default-2.12.0"
+      sources."@parcel/cache-2.12.0"
+      sources."@parcel/codeframe-2.12.0"
+      sources."@parcel/compressor-raw-2.12.0"
+      sources."@parcel/config-default-2.12.0"
+      sources."@parcel/core-2.12.0"
+      sources."@parcel/diagnostic-2.12.0"
+      sources."@parcel/events-2.12.0"
+      sources."@parcel/fs-2.12.0"
+      sources."@parcel/graph-3.2.0"
+      sources."@parcel/logger-2.12.0"
+      sources."@parcel/markdown-ansi-2.12.0"
+      sources."@parcel/namer-default-2.12.0"
+      sources."@parcel/node-resolver-core-3.3.0"
+      sources."@parcel/optimizer-css-2.12.0"
+      sources."@parcel/optimizer-htmlnano-2.12.0"
+      sources."@parcel/optimizer-image-2.12.0"
+      sources."@parcel/optimizer-svgo-2.12.0"
+      sources."@parcel/optimizer-swc-2.12.0"
+      sources."@parcel/package-manager-2.12.0"
+      sources."@parcel/packager-css-2.12.0"
+      sources."@parcel/packager-html-2.12.0"
+      sources."@parcel/packager-js-2.12.0"
+      sources."@parcel/packager-raw-2.12.0"
+      sources."@parcel/packager-svg-2.12.0"
+      sources."@parcel/packager-wasm-2.12.0"
+      sources."@parcel/plugin-2.12.0"
+      sources."@parcel/profiler-2.12.0"
+      sources."@parcel/reporter-cli-2.12.0"
+      sources."@parcel/reporter-dev-server-2.12.0"
+      sources."@parcel/reporter-tracer-2.12.0"
+      sources."@parcel/resolver-default-2.12.0"
+      sources."@parcel/runtime-browser-hmr-2.12.0"
+      sources."@parcel/runtime-js-2.12.0"
+      sources."@parcel/runtime-react-refresh-2.12.0"
+      sources."@parcel/runtime-service-worker-2.12.0"
+      sources."@parcel/rust-2.12.0"
       (sources."@parcel/source-map-2.1.1" // {
         dependencies = [
           sources."detect-libc-1.0.3"
         ];
       })
-      sources."@parcel/transformer-babel-2.11.0"
-      sources."@parcel/transformer-css-2.11.0"
-      (sources."@parcel/transformer-html-2.11.0" // {
+      sources."@parcel/transformer-babel-2.12.0"
+      sources."@parcel/transformer-css-2.12.0"
+      (sources."@parcel/transformer-html-2.12.0" // {
         dependencies = [
           sources."posthtml-parser-0.10.2"
         ];
       })
-      sources."@parcel/transformer-image-2.11.0"
-      sources."@parcel/transformer-js-2.11.0"
-      sources."@parcel/transformer-json-2.11.0"
-      sources."@parcel/transformer-postcss-2.11.0"
-      (sources."@parcel/transformer-posthtml-2.11.0" // {
+      sources."@parcel/transformer-image-2.12.0"
+      sources."@parcel/transformer-js-2.12.0"
+      sources."@parcel/transformer-json-2.12.0"
+      sources."@parcel/transformer-postcss-2.12.0"
+      (sources."@parcel/transformer-posthtml-2.12.0" // {
         dependencies = [
           sources."posthtml-parser-0.10.2"
         ];
       })
-      sources."@parcel/transformer-raw-2.11.0"
-      sources."@parcel/transformer-react-refresh-wrap-2.11.0"
-      (sources."@parcel/transformer-svg-2.11.0" // {
+      sources."@parcel/transformer-raw-2.12.0"
+      sources."@parcel/transformer-react-refresh-wrap-2.12.0"
+      (sources."@parcel/transformer-svg-2.12.0" // {
         dependencies = [
           sources."posthtml-parser-0.10.2"
         ];
       })
-      sources."@parcel/types-2.11.0"
-      sources."@parcel/utils-2.11.0"
-      (sources."@parcel/watcher-2.4.0" // {
+      sources."@parcel/types-2.12.0"
+      sources."@parcel/utils-2.12.0"
+      (sources."@parcel/watcher-2.4.1" // {
         dependencies = [
           sources."detect-libc-1.0.3"
           sources."node-addon-api-7.1.0"
         ];
       })
-      sources."@parcel/watcher-android-arm64-2.4.0"
-      sources."@parcel/watcher-darwin-arm64-2.4.0"
-      sources."@parcel/watcher-darwin-x64-2.4.0"
-      sources."@parcel/watcher-freebsd-x64-2.4.0"
-      sources."@parcel/watcher-linux-arm-glibc-2.4.0"
-      sources."@parcel/watcher-linux-arm64-glibc-2.4.0"
-      sources."@parcel/watcher-linux-arm64-musl-2.4.0"
-      sources."@parcel/watcher-linux-x64-glibc-2.4.0"
-      sources."@parcel/watcher-linux-x64-musl-2.4.0"
-      sources."@parcel/watcher-win32-arm64-2.4.0"
-      sources."@parcel/watcher-win32-ia32-2.4.0"
-      sources."@parcel/watcher-win32-x64-2.4.0"
-      sources."@parcel/workers-2.11.0"
-      sources."@swc/core-1.4.1"
+      sources."@parcel/watcher-android-arm64-2.4.1"
+      sources."@parcel/watcher-darwin-arm64-2.4.1"
+      sources."@parcel/watcher-darwin-x64-2.4.1"
+      sources."@parcel/watcher-freebsd-x64-2.4.1"
+      sources."@parcel/watcher-linux-arm-glibc-2.4.1"
+      sources."@parcel/watcher-linux-arm64-glibc-2.4.1"
+      sources."@parcel/watcher-linux-arm64-musl-2.4.1"
+      sources."@parcel/watcher-linux-x64-glibc-2.4.1"
+      sources."@parcel/watcher-linux-x64-musl-2.4.1"
+      sources."@parcel/watcher-win32-arm64-2.4.1"
+      sources."@parcel/watcher-win32-ia32-2.4.1"
+      sources."@parcel/watcher-win32-x64-2.4.1"
+      sources."@parcel/workers-2.12.0"
+      sources."@swc/core-1.4.8"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.6"
-      sources."@swc/types-0.1.5"
+      sources."@swc/helpers-0.5.7"
+      sources."@swc/types-0.1.6"
       sources."@trysound/sax-0.2.0"
       sources."abab-2.0.6"
       sources."abortcontroller-polyfill-1.7.5"
@@ -88225,7 +87778,6 @@ in
       })
       sources."acorn-walk-6.2.0"
       sources."ajv-6.12.6"
-      sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."argparse-2.0.1"
       sources."array-equal-1.0.2"
@@ -88246,7 +87798,7 @@ in
       sources."buffer-from-1.1.2"
       sources."callsites-3.1.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       sources."caseless-0.12.0"
       (sources."chalk-4.1.2" // {
         dependencies = [
@@ -88258,7 +87810,6 @@ in
         ];
       })
       sources."chrome-trace-event-1.0.3"
-      sources."cli-progress-3.12.0"
       sources."clone-2.1.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -88273,9 +87824,9 @@ in
       sources."css-tree-2.3.1"
       sources."css-what-6.1.0"
       sources."cssesc-3.0.0"
-      sources."cssnano-6.0.3"
-      sources."cssnano-preset-default-6.0.3"
-      sources."cssnano-utils-4.0.1"
+      sources."cssnano-6.1.0"
+      sources."cssnano-preset-default-6.1.0"
+      sources."cssnano-utils-4.0.2"
       (sources."csso-5.0.5" // {
         dependencies = [
           sources."css-tree-2.2.1"
@@ -88297,8 +87848,7 @@ in
       sources."dotenv-7.0.0"
       sources."dotenv-expand-5.1.0"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.4.673"
-      sources."emoji-regex-8.0.0"
+      sources."electron-to-chromium-1.4.710"
       sources."entities-4.5.0"
       sources."error-ex-1.3.2"
       sources."escalade-3.1.2"
@@ -88351,7 +87901,6 @@ in
       sources."is-absolute-url-3.0.3"
       sources."is-arrayish-0.2.1"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-html-1.1.0"
       sources."is-json-2.0.1"
@@ -88373,12 +87922,12 @@ in
       sources."json5-2.2.3"
       sources."jsprim-1.4.2"
       sources."levn-0.3.0"
-      (sources."lightningcss-1.23.0" // {
+      (sources."lightningcss-1.24.1" // {
         dependencies = [
           sources."detect-libc-1.0.3"
         ];
       })
-      sources."lilconfig-3.1.0"
+      sources."lilconfig-3.1.1"
       sources."lines-and-columns-1.2.4"
       sources."lmdb-2.8.5"
       sources."lodash-4.17.21"
@@ -88412,39 +87961,39 @@ in
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."pn-1.1.0"
-      sources."postcss-8.4.35"
+      sources."postcss-8.4.36"
       sources."postcss-calc-9.0.1"
-      sources."postcss-colormin-6.0.2"
-      sources."postcss-convert-values-6.0.2"
-      sources."postcss-discard-comments-6.0.1"
-      sources."postcss-discard-duplicates-6.0.1"
-      sources."postcss-discard-empty-6.0.1"
-      sources."postcss-discard-overridden-6.0.1"
-      sources."postcss-merge-longhand-6.0.2"
-      sources."postcss-merge-rules-6.0.3"
-      sources."postcss-minify-font-values-6.0.1"
-      sources."postcss-minify-gradients-6.0.1"
-      sources."postcss-minify-params-6.0.2"
-      sources."postcss-minify-selectors-6.0.2"
-      sources."postcss-normalize-charset-6.0.1"
-      sources."postcss-normalize-display-values-6.0.1"
-      sources."postcss-normalize-positions-6.0.1"
-      sources."postcss-normalize-repeat-style-6.0.1"
-      sources."postcss-normalize-string-6.0.1"
-      sources."postcss-normalize-timing-functions-6.0.1"
-      sources."postcss-normalize-unicode-6.0.2"
-      sources."postcss-normalize-url-6.0.1"
-      sources."postcss-normalize-whitespace-6.0.1"
-      sources."postcss-ordered-values-6.0.1"
-      sources."postcss-reduce-initial-6.0.2"
-      sources."postcss-reduce-transforms-6.0.1"
-      sources."postcss-selector-parser-6.0.15"
-      (sources."postcss-svgo-6.0.2" // {
+      sources."postcss-colormin-6.1.0"
+      sources."postcss-convert-values-6.1.0"
+      sources."postcss-discard-comments-6.0.2"
+      sources."postcss-discard-duplicates-6.0.3"
+      sources."postcss-discard-empty-6.0.3"
+      sources."postcss-discard-overridden-6.0.2"
+      sources."postcss-merge-longhand-6.0.4"
+      sources."postcss-merge-rules-6.1.0"
+      sources."postcss-minify-font-values-6.0.3"
+      sources."postcss-minify-gradients-6.0.3"
+      sources."postcss-minify-params-6.1.0"
+      sources."postcss-minify-selectors-6.0.3"
+      sources."postcss-normalize-charset-6.0.2"
+      sources."postcss-normalize-display-values-6.0.2"
+      sources."postcss-normalize-positions-6.0.2"
+      sources."postcss-normalize-repeat-style-6.0.2"
+      sources."postcss-normalize-string-6.0.2"
+      sources."postcss-normalize-timing-functions-6.0.2"
+      sources."postcss-normalize-unicode-6.1.0"
+      sources."postcss-normalize-url-6.0.2"
+      sources."postcss-normalize-whitespace-6.0.2"
+      sources."postcss-ordered-values-6.0.2"
+      sources."postcss-reduce-initial-6.1.0"
+      sources."postcss-reduce-transforms-6.0.2"
+      sources."postcss-selector-parser-6.0.16"
+      (sources."postcss-svgo-6.0.3" // {
         dependencies = [
           sources."svgo-3.2.0"
         ];
       })
-      sources."postcss-unique-selectors-6.0.2"
+      sources."postcss-unique-selectors-6.0.3"
       sources."postcss-value-parser-4.2.0"
       sources."posthtml-0.16.6"
       sources."posthtml-parser-0.11.0"
@@ -88471,15 +88020,13 @@ in
       sources."saxes-3.1.11"
       sources."semver-7.6.0"
       sources."source-map-0.6.1"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       sources."source-map-support-0.5.21"
       sources."srcset-4.0.0"
       sources."sshpk-1.18.0"
       sources."stable-0.1.8"
       sources."stealthy-require-1.1.1"
-      sources."string-width-4.2.3"
-      sources."strip-ansi-6.0.1"
-      sources."stylehacks-6.0.2"
+      sources."stylehacks-6.1.0"
       sources."supports-color-5.5.0"
       (sources."svgo-2.8.0" // {
         dependencies = [
@@ -88495,7 +88042,7 @@ in
       })
       sources."symbol-tree-3.2.4"
       sources."term-size-2.2.1"
-      (sources."terser-5.27.1" // {
+      (sources."terser-5.29.2" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
@@ -88509,7 +88056,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."type-fest-0.20.2"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       (sources."uncss-0.17.3" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
@@ -88585,7 +88132,7 @@ in
       sources."bintrees-1.0.2"
       sources."bl-1.2.3"
       sources."bluebird-3.7.2"
-      (sources."body-parser-1.20.1" // {
+      (sources."body-parser-1.20.2" // {
         dependencies = [
           sources."bytes-3.1.2"
           sources."content-type-1.0.5"
@@ -88642,7 +88189,7 @@ in
       sources."escape-html-1.0.3"
       sources."esprima-4.0.1"
       sources."etag-1.8.1"
-      (sources."express-4.18.2" // {
+      (sources."express-4.18.3" // {
         dependencies = [
           sources."content-type-1.0.5"
           sources."safe-buffer-5.2.1"
@@ -88662,7 +88209,7 @@ in
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
-      sources."gc-stats-1.4.0"
+      sources."gc-stats-1.4.1"
       sources."gelf-stream-1.1.1"
       sources."gelfling-0.3.1"
       sources."get-caller-file-2.0.5"
@@ -88675,10 +88222,10 @@ in
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hat-0.0.3"
       sources."heapdump-0.3.15"
       sources."hot-shots-6.8.7"
@@ -88722,10 +88269,11 @@ in
       sources."ms-2.0.0"
       sources."msgpack5-3.6.1"
       sources."mv-2.1.1"
-      sources."nan-2.18.0"
+      sources."nan-2.19.0"
       sources."ncp-2.0.0"
       sources."negotiator-git+https://github.com/arlolra/negotiator.git#full-parse-access"
       sources."neo-async-2.6.2"
+      sources."node-gyp-build-4.8.0"
       sources."oauth-sign-0.9.0"
       sources."object-inspect-1.13.1"
       sources."object-keys-1.1.1"
@@ -88752,7 +88300,7 @@ in
       sources."punycode-2.3.1"
       sources."qs-6.11.0"
       sources."range-parser-1.2.1"
-      (sources."raw-body-2.5.1" // {
+      (sources."raw-body-2.5.2" // {
         dependencies = [
           sources."bytes-3.1.2"
         ];
@@ -88793,9 +88341,9 @@ in
         ];
       })
       sources."set-blocking-2.0.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."setprototypeof-1.2.0"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."simplediff-0.1.1"
       sources."source-map-0.6.1"
       sources."sprintf-js-1.0.3"
@@ -88887,9 +88435,9 @@ in
       sources."graceful-fs-4.2.11"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-docker-2.2.1"
@@ -88914,7 +88462,7 @@ in
       sources."picomatch-2.3.1"
       sources."rimraf-2.7.1"
       sources."semver-7.6.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."slash-2.0.0"
@@ -88925,7 +88473,7 @@ in
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
       sources."yallist-4.0.0"
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -89049,10 +88597,10 @@ in
       sources."has-ansi-2.0.0"
       sources."has-flag-3.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hat-0.0.3"
       sources."hosted-git-info-2.8.9"
       sources."http-headers-3.0.2"
@@ -89075,7 +88623,7 @@ in
         ];
       })
       sources."internal-ip-1.2.0"
-      sources."ip-1.1.8"
+      sources."ip-1.1.9"
       sources."ip-set-1.0.2"
       sources."ipaddr.js-2.1.0"
       sources."is-arguments-1.1.1"
@@ -89119,7 +88667,7 @@ in
       sources."number-is-nan-1.0.1"
       sources."numeral-2.0.6"
       sources."object-assign-4.1.1"
-      sources."object-is-1.1.5"
+      sources."object-is-1.1.6"
       sources."object-keys-1.1.1"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
@@ -89189,8 +88737,8 @@ in
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.2"
       sources."server-destroy-1.0.1"
-      sources."set-function-length-1.2.1"
-      sources."set-function-name-2.0.1"
+      sources."set-function-length-1.2.2"
+      sources."set-function-name-2.0.2"
       sources."signal-exit-3.0.7"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.2"
@@ -89391,10 +88939,8 @@ in
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
       sources."events-3.3.0"
-      (sources."express-4.18.2" // {
+      (sources."express-4.18.3" // {
         dependencies = [
-          sources."body-parser-1.20.1"
-          sources."raw-body-2.5.1"
           sources."safe-buffer-5.2.1"
         ];
       })
@@ -89429,9 +88975,9 @@ in
       })
       sources."has-cors-1.1.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hat-0.0.3"
       sources."http-errors-2.0.0"
       sources."http-signature-1.2.0"
@@ -89441,7 +88987,7 @@ in
       sources."indexof-0.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ip-1.1.8"
+      sources."ip-1.1.9"
       sources."ip-set-1.0.2"
       sources."ipaddr.js-1.9.1"
       sources."is-typedarray-1.0.0"
@@ -89567,9 +89113,9 @@ in
         ];
       })
       sources."serve-static-1.15.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."setprototypeof-1.2.0"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.2"
       (sources."simple-peer-6.4.4" // {
@@ -89677,14 +89223,14 @@ in
       sources."@aashutoshrathi/word-wrap-1.2.6"
       sources."@adobe/css-tools-4.3.3"
       sources."@alloc/quick-lru-5.2.0"
-      sources."@ampproject/remapping-2.2.1"
+      sources."@ampproject/remapping-2.3.0"
       sources."@babel/code-frame-7.23.5"
       sources."@babel/compat-data-7.23.5"
-      (sources."@babel/core-7.23.9" // {
+      (sources."@babel/core-7.24.0" // {
         dependencies = [
           sources."@babel/generator-7.23.6"
-          sources."@babel/traverse-7.23.9"
-          sources."@babel/types-7.23.9"
+          sources."@babel/traverse-7.24.0"
+          sources."@babel/types-7.24.0"
           sources."semver-6.3.1"
         ];
       })
@@ -89699,54 +89245,54 @@ in
       sources."@babel/helper-environment-visitor-7.22.20"
       (sources."@babel/helper-function-name-7.23.0" // {
         dependencies = [
-          sources."@babel/types-7.23.9"
+          sources."@babel/types-7.24.0"
         ];
       })
       (sources."@babel/helper-hoist-variables-7.22.5" // {
         dependencies = [
-          sources."@babel/types-7.23.9"
+          sources."@babel/types-7.24.0"
         ];
       })
       (sources."@babel/helper-module-imports-7.22.15" // {
         dependencies = [
-          sources."@babel/types-7.23.9"
+          sources."@babel/types-7.24.0"
         ];
       })
       sources."@babel/helper-module-transforms-7.23.3"
-      sources."@babel/helper-plugin-utils-7.22.5"
+      sources."@babel/helper-plugin-utils-7.24.0"
       (sources."@babel/helper-simple-access-7.22.5" // {
         dependencies = [
-          sources."@babel/types-7.23.9"
+          sources."@babel/types-7.24.0"
         ];
       })
       (sources."@babel/helper-split-export-declaration-7.22.6" // {
         dependencies = [
-          sources."@babel/types-7.23.9"
+          sources."@babel/types-7.24.0"
         ];
       })
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/helper-validator-option-7.23.5"
-      (sources."@babel/helpers-7.23.9" // {
+      (sources."@babel/helpers-7.24.0" // {
         dependencies = [
           sources."@babel/generator-7.23.6"
-          sources."@babel/traverse-7.23.9"
-          sources."@babel/types-7.23.9"
+          sources."@babel/traverse-7.24.0"
+          sources."@babel/types-7.24.0"
         ];
       })
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.9"
+      sources."@babel/parser-7.24.0"
       sources."@babel/plugin-transform-react-jsx-self-7.23.3"
       sources."@babel/plugin-transform-react-jsx-source-7.23.3"
-      (sources."@babel/template-7.23.9" // {
+      (sources."@babel/template-7.24.0" // {
         dependencies = [
-          sources."@babel/types-7.23.9"
+          sources."@babel/types-7.24.0"
         ];
       })
       (sources."@babel/traverse-7.23.2" // {
         dependencies = [
           sources."@babel/generator-7.23.6"
-          sources."@babel/types-7.23.9"
+          sources."@babel/types-7.24.0"
         ];
       })
       sources."@babel/types-7.17.0"
@@ -89796,24 +89342,24 @@ in
           sources."strip-ansi-7.1.0"
         ];
       })
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
-      sources."@jridgewell/source-map-0.3.5"
+      sources."@jridgewell/set-array-1.2.1"
+      sources."@jridgewell/source-map-0.3.6"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@remix-run/router-1.8.0"
-      sources."@swc/core-1.4.1"
+      sources."@swc/core-1.4.8"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.6"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.4.1"
+      sources."@swc/helpers-0.5.7"
+      sources."@swc/types-0.1.6"
+      sources."@swc/wasm-1.4.8"
       sources."@tailwindcss/forms-0.5.7"
-      sources."@tanstack/react-virtual-3.0.4"
-      sources."@tanstack/virtual-core-3.0.0"
+      sources."@tanstack/react-virtual-3.2.0"
+      sources."@tanstack/virtual-core-3.2.0"
       sources."@trivago/prettier-plugin-sort-imports-4.2.1"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
@@ -89824,10 +89370,10 @@ in
       sources."@types/node-20.5.9"
       sources."@types/normalize-package-data-2.4.4"
       sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.56"
-      sources."@types/react-dom-18.2.19"
+      sources."@types/react-18.2.67"
+      sources."@types/react-dom-18.2.22"
       sources."@types/scheduler-0.16.8"
-      sources."@types/semver-7.5.7"
+      sources."@types/semver-7.5.8"
       sources."@typescript-eslint/eslint-plugin-6.0.0"
       sources."@typescript-eslint/parser-6.0.0"
       sources."@typescript-eslint/scope-manager-6.0.0"
@@ -89837,11 +89383,11 @@ in
       sources."@typescript-eslint/utils-6.0.0"
       sources."@typescript-eslint/visitor-keys-6.0.0"
       sources."@vitejs/plugin-react-4.0.4"
-      sources."@vue/compiler-core-3.4.19"
-      sources."@vue/compiler-dom-3.4.19"
-      sources."@vue/compiler-sfc-3.4.19"
-      sources."@vue/compiler-ssr-3.4.19"
-      sources."@vue/shared-3.4.19"
+      sources."@vue/compiler-core-3.4.21"
+      sources."@vue/compiler-dom-3.4.21"
+      sources."@vue/compiler-sfc-3.4.21"
+      sources."@vue/compiler-ssr-3.4.21"
+      sources."@vue/shared-3.4.21"
       sources."acorn-8.11.3"
       sources."acorn-jsx-5.3.2"
       sources."acorn-walk-8.3.2"
@@ -89855,20 +89401,18 @@ in
       sources."array-buffer-byte-length-1.0.1"
       sources."array-includes-3.1.7"
       sources."array-union-2.1.0"
-      sources."array.prototype.filter-1.0.3"
       sources."array.prototype.findlastindex-1.2.4"
       sources."array.prototype.flat-1.3.2"
       sources."array.prototype.flatmap-1.3.2"
       sources."array.prototype.tosorted-1.1.3"
       sources."arraybuffer.prototype.slice-1.0.3"
       sources."async-2.6.4"
-      sources."asynciterator.prototype-1.0.0"
       sources."asynckit-0.4.0"
-      sources."autoprefixer-10.4.17"
-      sources."available-typed-arrays-1.0.6"
+      sources."autoprefixer-10.4.18"
+      sources."available-typed-arrays-1.0.7"
       sources."axios-1.4.0"
       sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browserslist-4.23.0"
@@ -89877,7 +89421,7 @@ in
       sources."call-bind-1.0.7"
       sources."callsites-3.1.0"
       sources."camelcase-css-2.0.1"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       sources."chalk-2.4.2"
       sources."chokidar-3.6.0"
       sources."ci-info-3.9.0"
@@ -89914,6 +89458,9 @@ in
       sources."cross-spawn-7.0.3"
       sources."cssesc-3.0.0"
       sources."csstype-3.1.3"
+      sources."data-view-buffer-1.0.1"
+      sources."data-view-byte-length-1.0.1"
+      sources."data-view-byte-offset-1.0.0"
       sources."debug-4.3.4"
       sources."deep-is-0.1.4"
       sources."define-data-property-1.1.4"
@@ -89926,17 +89473,17 @@ in
       sources."dlv-1.1.3"
       sources."doctrine-3.0.0"
       sources."eastasianwidth-0.2.0"
-      sources."electron-to-chromium-1.4.673"
+      sources."electron-to-chromium-1.4.710"
       sources."emoji-regex-9.2.2"
       sources."entities-4.5.0"
       sources."errno-0.1.8"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.22.4"
-      sources."es-array-method-boxes-properly-1.0.0"
+      sources."es-abstract-1.23.2"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
-      sources."es-iterator-helpers-1.0.17"
-      sources."es-set-tostringtag-2.0.2"
+      sources."es-iterator-helpers-1.0.18"
+      sources."es-object-atoms-1.0.0"
+      sources."es-set-tostringtag-2.0.3"
       sources."es-shim-unscopables-1.0.2"
       sources."es-to-primitive-1.2.1"
       sources."esbuild-0.18.20"
@@ -89962,7 +89509,7 @@ in
           sources."debug-3.2.7"
         ];
       })
-      (sources."eslint-module-utils-2.8.0" // {
+      (sources."eslint-module-utils-2.8.1" // {
         dependencies = [
           sources."debug-3.2.7"
         ];
@@ -89983,7 +89530,7 @@ in
         ];
       })
       sources."eslint-plugin-react-hooks-4.6.0"
-      sources."eslint-plugin-react-refresh-0.4.5"
+      sources."eslint-plugin-react-refresh-0.4.6"
       (sources."eslint-plugin-unicorn-48.0.1" // {
         dependencies = [
           sources."jsesc-3.0.2"
@@ -90014,8 +89561,8 @@ in
       sources."fill-range-7.0.1"
       sources."find-up-5.0.0"
       sources."flat-cache-3.2.0"
-      sources."flatted-3.2.9"
-      sources."follow-redirects-1.15.5"
+      sources."flatted-3.3.1"
+      sources."follow-redirects-1.15.6"
       sources."for-each-0.3.3"
       sources."foreground-child-3.1.1"
       sources."form-data-4.0.0"
@@ -90041,10 +89588,10 @@ in
       sources."has-bigints-1.0.2"
       sources."has-flag-3.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hosted-git-info-2.8.9"
       sources."iconv-lite-0.6.3"
       sources."ignore-5.3.1"
@@ -90065,26 +89612,27 @@ in
       sources."is-builtin-module-3.2.1"
       sources."is-callable-1.2.7"
       sources."is-core-module-2.13.1"
+      sources."is-data-view-1.0.1"
       sources."is-date-object-1.0.5"
       sources."is-extglob-2.1.1"
       sources."is-finalizationregistry-1.0.2"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-generator-function-1.0.10"
       sources."is-glob-4.0.3"
-      sources."is-map-2.0.2"
-      sources."is-negative-zero-2.0.2"
+      sources."is-map-2.0.3"
+      sources."is-negative-zero-2.0.3"
       sources."is-number-7.0.0"
       sources."is-number-object-1.0.7"
       sources."is-path-inside-3.0.3"
       sources."is-regex-1.1.4"
-      sources."is-set-2.0.2"
-      sources."is-shared-array-buffer-1.0.2"
+      sources."is-set-2.0.3"
+      sources."is-shared-array-buffer-1.0.3"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.13"
-      sources."is-weakmap-2.0.1"
+      sources."is-weakmap-2.0.2"
       sources."is-weakref-1.0.2"
-      sources."is-weakset-2.0.2"
+      sources."is-weakset-2.0.3"
       sources."is-what-3.14.1"
       sources."isarray-2.0.5"
       sources."isexe-2.0.0"
@@ -90108,7 +89656,7 @@ in
         ];
       })
       sources."levn-0.4.1"
-      sources."lightningcss-1.23.0"
+      sources."lightningcss-1.24.1"
       sources."lilconfig-2.1.0"
       sources."lines-and-columns-1.2.4"
       sources."locate-path-6.0.0"
@@ -90116,7 +89664,7 @@ in
       sources."lodash.merge-4.6.2"
       sources."loose-envify-1.4.0"
       sources."lru-cache-6.0.0"
-      sources."magic-string-0.30.7"
+      sources."magic-string-0.30.8"
       (sources."make-dir-2.1.0" // {
         dependencies = [
           sources."pify-4.0.1"
@@ -90154,11 +89702,11 @@ in
       sources."object-inspect-1.13.1"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.5"
-      sources."object.entries-1.1.7"
-      sources."object.fromentries-2.0.7"
-      sources."object.groupby-1.0.2"
+      sources."object.entries-1.1.8"
+      sources."object.fromentries-2.0.8"
+      sources."object.groupby-1.0.3"
       sources."object.hasown-1.1.3"
-      sources."object.values-1.1.7"
+      sources."object.values-1.2.0"
       sources."once-1.4.0"
       sources."optionator-0.9.3"
       sources."p-limit-3.1.0"
@@ -90187,16 +89735,17 @@ in
           sources."debug-3.2.7"
         ];
       })
-      sources."postcss-8.4.35"
+      sources."possible-typed-array-names-1.0.0"
+      sources."postcss-8.4.36"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
         dependencies = [
-          sources."lilconfig-3.1.0"
+          sources."lilconfig-3.1.1"
         ];
       })
       sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.15"
+      sources."postcss-selector-parser-6.0.16"
       sources."postcss-value-parser-4.2.0"
       sources."prelude-ls-1.2.1"
       sources."prettier-3.0.3"
@@ -90227,7 +89776,7 @@ in
         ];
       })
       sources."readdirp-3.6.0"
-      sources."reflect.getprototypeof-1.0.5"
+      sources."reflect.getprototypeof-1.0.6"
       sources."regexp-tree-0.1.27"
       sources."regexp.prototype.flags-1.5.2"
       (sources."regjsparser-0.10.0" // {
@@ -90241,22 +89790,22 @@ in
       sources."rimraf-3.0.2"
       sources."rollup-3.29.4"
       sources."run-parallel-1.2.0"
-      sources."safe-array-concat-1.1.0"
+      sources."safe-array-concat-1.1.2"
       sources."safe-regex-test-1.0.3"
       sources."safer-buffer-2.1.2"
-      sources."sass-1.71.0"
+      sources."sass-1.72.0"
       sources."sax-1.3.0"
       sources."scheduler-0.23.0"
       sources."semver-7.6.0"
-      sources."set-function-length-1.2.1"
-      sources."set-function-name-2.0.1"
+      sources."set-function-length-1.2.2"
+      sources."set-function-name-2.0.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-4.1.0"
       sources."slash-3.0.0"
       sources."source-map-0.5.7"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       (sources."source-map-support-0.5.21" // {
         dependencies = [
           sources."source-map-0.6.1"
@@ -90278,15 +89827,15 @@ in
         ];
       })
       sources."string.prototype.matchall-4.0.10"
-      sources."string.prototype.trim-1.2.8"
-      sources."string.prototype.trimend-1.0.7"
+      sources."string.prototype.trim-1.2.9"
+      sources."string.prototype.trimend-1.0.8"
       sources."string.prototype.trimstart-1.0.7"
       sources."strip-ansi-6.0.1"
       sources."strip-ansi-cjs-6.0.1"
       sources."strip-bom-3.0.0"
       sources."strip-indent-3.0.0"
       sources."strip-json-comments-3.1.1"
-      (sources."stylus-0.62.0" // {
+      (sources."stylus-0.63.0" // {
         dependencies = [
           sources."source-map-0.7.4"
         ];
@@ -90306,7 +89855,7 @@ in
           sources."glob-parent-6.0.2"
         ];
       })
-      (sources."terser-5.27.1" // {
+      (sources."terser-5.29.2" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
@@ -90316,7 +89865,7 @@ in
       sources."thenify-all-1.6.0"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
-      sources."ts-api-utils-1.2.1"
+      sources."ts-api-utils-1.3.0"
       sources."ts-interface-checker-0.1.13"
       (sources."ts-node-10.9.2" // {
         dependencies = [
@@ -90331,10 +89880,10 @@ in
       sources."tslib-2.6.2"
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
-      sources."typed-array-buffer-1.0.1"
-      sources."typed-array-byte-length-1.0.0"
-      sources."typed-array-byte-offset-1.0.0"
-      sources."typed-array-length-1.0.4"
+      sources."typed-array-buffer-1.0.2"
+      sources."typed-array-byte-length-1.0.1"
+      sources."typed-array-byte-offset-1.0.2"
+      sources."typed-array-length-1.0.5"
       sources."typescript-5.0.4"
       sources."unbox-primitive-1.0.2"
       sources."update-browserslist-db-1.0.13"
@@ -90348,8 +89897,8 @@ in
       sources."which-2.0.2"
       sources."which-boxed-primitive-1.0.2"
       sources."which-builtin-type-1.1.3"
-      sources."which-collection-1.0.1"
-      sources."which-typed-array-1.1.14"
+      sources."which-collection-1.0.2"
+      sources."which-typed-array-1.1.15"
       (sources."wrap-ansi-8.1.0" // {
         dependencies = [
           sources."ansi-regex-6.0.1"
@@ -90368,7 +89917,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."yallist-4.0.0"
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
       sources."yn-3.1.1"
       sources."yocto-queue-0.1.0"
     ];
@@ -90382,10 +89931,10 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "8.15.3";
+    version = "8.15.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-8.15.3.tgz";
-      sha512 = "3YXNbspkF8b3PbMroetHZ/+0y6T1vwcnhGciyStrnlaizCGLEThbvCsh8YoWpn2nes6um2Gg9WoWQ7JeH7amBQ==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-8.15.5.tgz";
+      sha512 = "sFGjLH5pWDO4SSbTspuMylclS1ifBknYmcbp0O22cLkex+KkNFm65zdZu1zmGcMmbxFr+THOItHvF1mn5Fqpbw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -90419,7 +89968,7 @@ in
     meta = {
       description = "A T-SQL formatting utility in JS, transpiled from the C# library of the same name.";
       homepage = "https://github.com/TaoK/poor-mans-t-sql-formatter-npm-cli#readme";
-      license = "AGPL-3.0";
+      license = "AGPL-3.0-only";
     };
     production = true;
     bypassCache = true;
@@ -90428,15 +89977,15 @@ in
   postcss = nodeEnv.buildNodePackage {
     name = "postcss";
     packageName = "postcss";
-    version = "8.4.35";
+    version = "8.4.36";
     src = fetchurl {
-      url = "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz";
-      sha512 = "u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==";
+      url = "https://registry.npmjs.org/postcss/-/postcss-8.4.36.tgz";
+      sha512 = "/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw==";
     };
     dependencies = [
       sources."nanoid-3.3.7"
       sources."picocolors-1.0.0"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -90460,11 +90009,11 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@sindresorhus/merge-streams-2.2.1"
+      sources."@sindresorhus/merge-streams-2.3.0"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.3"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."braces-3.0.2"
       sources."chokidar-3.6.0"
       sources."cliui-8.0.1"
@@ -90490,7 +90039,7 @@ in
       sources."is-number-7.0.0"
       sources."jiti-1.21.0"
       sources."jsonfile-6.1.0"
-      sources."lilconfig-3.1.0"
+      sources."lilconfig-3.1.1"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.5"
       sources."nanoid-3.3.7"
@@ -90499,7 +90048,7 @@ in
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
-      sources."postcss-8.4.35"
+      sources."postcss-8.4.36"
       sources."postcss-load-config-5.0.3"
       sources."postcss-reporter-7.1.0"
       sources."pretty-hrtime-1.0.3"
@@ -90510,7 +90059,7 @@ in
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
       sources."slash-5.1.0"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
       sources."thenby-1.3.4"
@@ -90519,7 +90068,7 @@ in
       sources."universalify-2.0.1"
       sources."wrap-ansi-7.0.0"
       sources."y18n-5.0.8"
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
       sources."yargs-17.7.2"
       sources."yargs-parser-21.1.1"
     ];
@@ -90536,10 +90085,10 @@ in
   prebuild-install = nodeEnv.buildNodePackage {
     name = "prebuild-install";
     packageName = "prebuild-install";
-    version = "7.1.1";
+    version = "7.1.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz";
-      sha512 = "jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==";
+      url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz";
+      sha512 = "UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==";
     };
     dependencies = [
       sources."base64-js-1.5.1"
@@ -90561,7 +90110,7 @@ in
       sources."minimist-1.2.8"
       sources."mkdirp-classic-0.5.3"
       sources."napi-build-utils-1.0.2"
-      sources."node-abi-3.54.0"
+      sources."node-abi-3.56.0"
       sources."once-1.4.0"
       sources."pump-3.0.0"
       sources."rc-1.2.8"
@@ -90633,17 +90182,17 @@ in
   prisma = nodeEnv.buildNodePackage {
     name = "prisma";
     packageName = "prisma";
-    version = "5.9.1";
+    version = "5.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prisma/-/prisma-5.9.1.tgz";
-      sha512 = "Hy/8KJZz0ELtkw4FnG9MS9rNWlXcJhf98Z2QMqi0QiVMoS8PzsBkpla0/Y5hTlob8F3HeECYphBjqmBxrluUrQ==";
+      url = "https://registry.npmjs.org/prisma/-/prisma-5.11.0.tgz";
+      sha512 = "KCLiug2cs0Je7kGkQBN9jDWoZ90ogE/kvZTUTgz2h94FEo8pczCkPH7fPNXkD1sGU7Yh65risGGD1HQ5DF3r3g==";
     };
     dependencies = [
-      sources."@prisma/debug-5.9.1"
-      sources."@prisma/engines-5.9.1"
-      sources."@prisma/engines-version-5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64"
-      sources."@prisma/fetch-engine-5.9.1"
-      sources."@prisma/get-platform-5.9.1"
+      sources."@prisma/debug-5.11.0"
+      sources."@prisma/engines-5.11.0"
+      sources."@prisma/engines-version-5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102"
+      sources."@prisma/fetch-engine-5.11.0"
+      sources."@prisma/get-platform-5.11.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -90658,16 +90207,16 @@ in
   "@prisma/language-server" = nodeEnv.buildNodePackage {
     name = "_at_prisma_slash_language-server";
     packageName = "@prisma/language-server";
-    version = "5.9.1";
+    version = "5.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@prisma/language-server/-/language-server-5.9.1.tgz";
-      sha512 = "T6wq87g0l5jTSMTLKHkJG0tJ7Cv7nY9bX97QunaSKLQ6/2HefSYI+7w713/RDtGft1BADookWt4uLtjVGPV7YQ==";
+      url = "https://registry.npmjs.org/@prisma/language-server/-/language-server-5.11.0.tgz";
+      sha512 = "ufGtOeVuvTaAE8jUINtAhTQfDU6Td4gT6f1smwIffFQBkisjSb7XASI3/Cfa0+oTaRHh0kqfA2k6CW1pUdB/lg==";
     };
     dependencies = [
-      sources."@ampproject/remapping-2.2.1"
+      sources."@ampproject/remapping-2.3.0"
       sources."@babel/code-frame-7.23.5"
       sources."@babel/compat-data-7.23.5"
-      (sources."@babel/core-7.23.9" // {
+      (sources."@babel/core-7.24.0" // {
         dependencies = [
           sources."convert-source-map-2.0.0"
         ];
@@ -90684,20 +90233,20 @@ in
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.23.9"
+      sources."@babel/helpers-7.24.0"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.9"
-      sources."@babel/template-7.23.9"
-      sources."@babel/traverse-7.23.9"
-      sources."@babel/types-7.23.9"
+      sources."@babel/parser-7.24.0"
+      sources."@babel/template-7.24.0"
+      sources."@babel/traverse-7.24.0"
+      sources."@babel/types-7.24.0"
       sources."@istanbuljs/load-nyc-config-1.1.0"
       sources."@istanbuljs/schema-0.1.3"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
-      sources."@prisma/prisma-schema-wasm-5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64"
+      sources."@jridgewell/trace-mapping-0.3.25"
+      sources."@prisma/prisma-schema-wasm-5.11.0-15.efd2449663b3d73d637ea1fd226bafbcf45b3102"
       sources."@types/js-levenshtein-1.1.3"
       sources."aggregate-error-3.1.0"
       sources."ansi-regex-5.0.1"
@@ -90710,7 +90259,7 @@ in
       sources."browserslist-4.23.0"
       sources."caching-transform-4.0.0"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       sources."chalk-2.4.2"
       sources."clean-stack-2.2.0"
       sources."cliui-6.0.0"
@@ -90723,7 +90272,7 @@ in
       sources."debug-4.3.4"
       sources."decamelize-1.2.0"
       sources."default-require-extensions-3.0.1"
-      sources."electron-to-chromium-1.4.673"
+      sources."electron-to-chromium-1.4.710"
       sources."emoji-regex-8.0.0"
       sources."es6-error-4.1.1"
       sources."escalade-3.1.2"
@@ -90767,7 +90316,7 @@ in
         ];
       })
       sources."istanbul-lib-source-maps-4.0.1"
-      sources."istanbul-reports-3.1.6"
+      sources."istanbul-reports-3.1.7"
       sources."js-levenshtein-1.1.6"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
@@ -90956,7 +90505,7 @@ in
       sources."acorn-7.4.1"
       sources."acorn-node-1.8.2"
       sources."acorn-walk-7.2.0"
-      (sources."asn1.js-5.4.1" // {
+      (sources."asn1.js-4.10.1" // {
         dependencies = [
           sources."bn.js-4.12.0"
         ];
@@ -90986,9 +90535,9 @@ in
         ];
       })
       sources."browserify-rsa-4.1.0"
-      (sources."browserify-sign-4.2.2" // {
+      (sources."browserify-sign-4.2.3" // {
         dependencies = [
-          sources."readable-stream-3.6.2"
+          sources."hash-base-3.0.4"
         ];
       })
       sources."browserify-zlib-0.2.0"
@@ -91034,7 +90583,7 @@ in
       })
       sources."domain-browser-1.2.0"
       sources."duplexer2-0.1.4"
-      (sources."elliptic-6.5.4" // {
+      (sources."elliptic-6.5.5" // {
         dependencies = [
           sources."bn.js-4.12.0"
         ];
@@ -91064,7 +90613,7 @@ in
       sources."graceful-fs-4.2.11"
       sources."has-1.0.4"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       (sources."hash-base-3.1.0" // {
         dependencies = [
@@ -91072,14 +90621,14 @@ in
         ];
       })
       sources."hash.js-1.1.7"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hmac-drbg-1.0.1"
       sources."htmlescape-1.1.1"
       sources."https-browserify-1.0.0"
       sources."ieee754-1.2.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."inline-source-map-0.6.2"
+      sources."inline-source-map-0.6.3"
       (sources."insert-module-globals-7.2.1" // {
         dependencies = [
           sources."concat-stream-1.6.2"
@@ -91133,7 +90682,11 @@ in
       sources."os-browserify-0.3.0"
       sources."pako-1.0.11"
       sources."parents-1.0.1"
-      sources."parse-asn1-5.1.6"
+      (sources."parse-asn1-5.1.7" // {
+        dependencies = [
+          sources."hash-base-3.0.4"
+        ];
+      })
       sources."path-browserify-0.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.7"
@@ -91147,7 +90700,7 @@ in
         ];
       })
       sources."punycode-1.4.1"
-      sources."qs-6.11.2"
+      sources."qs-6.12.0"
       sources."querystring-es3-0.2.1"
       sources."randombytes-2.1.0"
       sources."randomfill-1.0.4"
@@ -91163,14 +90716,13 @@ in
       sources."rimraf-2.7.1"
       sources."ripemd160-2.0.2"
       sources."safe-buffer-5.2.1"
-      sources."safer-buffer-2.1.2"
       sources."sander-0.5.1"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."sha.js-2.4.11"
       sources."shasum-1.0.2"
       sources."shasum-object-1.0.0"
       sources."shell-quote-1.8.1"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."simple-concat-1.0.1"
       sources."sorcery-0.10.0"
       sources."source-map-0.5.7"
@@ -91278,10 +90830,10 @@ in
   purs-tidy = nodeEnv.buildNodePackage {
     name = "purs-tidy";
     packageName = "purs-tidy";
-    version = "0.10.1";
+    version = "0.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/purs-tidy/-/purs-tidy-0.10.1.tgz";
-      sha512 = "i1QvMaDEaZXv/GWZNFWs5CISiBOkwPhG4D1S4Rw6zUCGaE+NQNWTjvwY21rifynGa2N2TiBJRC61LkORbmGxrA==";
+      url = "https://registry.npmjs.org/purs-tidy/-/purs-tidy-0.11.0.tgz";
+      sha512 = "HZ8AS6J7Ka2YVl6Gr/H5NV17TU10yGYUTxVwRd5tKuwsVdFZewXSzZ/HTpWrkhdR2gxSVk0BdnpJhyu//oRc+w==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -91314,10 +90866,10 @@ in
   pyright = nodeEnv.buildNodePackage {
     name = "pyright";
     packageName = "pyright";
-    version = "1.1.350";
+    version = "1.1.354";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.350.tgz";
-      sha512 = "9AMEsPGFzyYzwYCU3QuTUk/AEfVO3hlKtvF0kybBnwGiFuYsmwx02/Hlra7ROX+jtmDStL8qiHCPoYy0rCz/uA==";
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.354.tgz";
+      sha512 = "lUojJFZqg4St+4E2WrZbqODeqLvhuRJXRDros59bJcK485hXJLlCb3DzTd/9KYfaisf2TqvDV79qhc0grwyf/w==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -91339,7 +90891,7 @@ in
     };
     dependencies = [
       sources."@types/prop-types-15.7.11"
-      sources."@types/react-18.2.56"
+      sources."@types/react-18.2.67"
       sources."@types/scheduler-0.16.8"
       sources."@types/yoga-layout-1.9.2"
       sources."ansi-escapes-4.3.2"
@@ -91373,7 +90925,7 @@ in
       sources."function-bind-1.1.2"
       sources."graceful-fs-4.2.11"
       sources."has-flag-4.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hosted-git-info-2.8.9"
       sources."indent-string-3.2.0"
       sources."ink-2.7.1"
@@ -91477,10 +91029,10 @@ in
   "reveal.js" = nodeEnv.buildNodePackage {
     name = "reveal.js";
     packageName = "reveal.js";
-    version = "5.0.4";
+    version = "5.0.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/reveal.js/-/reveal.js-5.0.4.tgz";
-      sha512 = "480pVhre9SXWuE4QbDwG0nPrip3TkifflqaKQWF8Ynf4iYIUBfgu5leeMso0srubQsZQ+G2OzktAfAkrvBY0Ww==";
+      url = "https://registry.npmjs.org/reveal.js/-/reveal.js-5.0.5.tgz";
+      sha512 = "MPWPV/cRlkZhh72dAGYv/bUCr9ulwM2/ucCqiL/KN4tvhb6VvN49iwOyWHE08wppj8lMQXi2xbS3kyKgfyTYqg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -91561,10 +91113,10 @@ in
   rollup = nodeEnv.buildNodePackage {
     name = "rollup";
     packageName = "rollup";
-    version = "4.12.0";
+    version = "4.13.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz";
-      sha512 = "wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==";
+      url = "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz";
+      sha512 = "3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==";
     };
     dependencies = [
       sources."@types/estree-1.0.5"
@@ -91595,7 +91147,7 @@ in
           sources."strip-json-comments-3.1.1"
         ];
       })
-      sources."@eslint/js-8.56.0"
+      sources."@eslint/js-8.57.0"
       sources."@hpcc-js/wasm-2.16.0"
       (sources."@humanwhocodes/config-array-0.11.14" // {
         dependencies = [
@@ -91612,7 +91164,7 @@ in
       sources."@tsconfig/strictest-2.0.3"
       sources."@types/json-schema-7.0.15"
       sources."@types/node-16.11.68"
-      sources."@types/semver-7.5.7"
+      sources."@types/semver-7.5.8"
       sources."@types/vscode-1.78.1"
       sources."@typescript-eslint/eslint-plugin-6.21.0"
       sources."@typescript-eslint/parser-6.21.0"
@@ -91628,7 +91180,7 @@ in
       sources."@typescript-eslint/visitor-keys-6.21.0"
       sources."@ungap/structured-clone-1.2.0"
       sources."@vscode/test-electron-2.3.9"
-      (sources."@vscode/vsce-2.23.0" // {
+      (sources."@vscode/vsce-2.24.0" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
           sources."commander-6.2.1"
@@ -91679,7 +91231,7 @@ in
       sources."cross-spawn-7.0.3"
       sources."css-select-5.1.0"
       sources."css-what-6.1.0"
-      sources."d3-7.8.5"
+      sources."d3-7.9.0"
       sources."d3-array-3.2.4"
       sources."d3-axis-3.0.0"
       sources."d3-brush-3.0.0"
@@ -91694,7 +91246,7 @@ in
       sources."d3-fetch-3.0.1"
       sources."d3-force-3.0.0"
       sources."d3-format-3.1.0"
-      sources."d3-geo-3.1.0"
+      sources."d3-geo-3.1.1"
       sources."d3-graphviz-5.3.0"
       sources."d3-hierarchy-3.1.2"
       sources."d3-interpolate-3.0.1"
@@ -91703,7 +91255,7 @@ in
       sources."d3-quadtree-3.0.1"
       sources."d3-random-3.0.1"
       sources."d3-scale-4.0.2"
-      sources."d3-scale-chromatic-3.0.0"
+      sources."d3-scale-chromatic-3.1.0"
       sources."d3-selection-3.0.0"
       sources."d3-shape-3.2.0"
       sources."d3-time-3.1.0"
@@ -91731,7 +91283,7 @@ in
       sources."es-errors-1.3.0"
       sources."escalade-3.1.2"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-8.56.0" // {
+      (sources."eslint-8.57.0" // {
         dependencies = [
           sources."brace-expansion-1.1.11"
           sources."chalk-4.1.2"
@@ -91760,10 +91312,9 @@ in
       sources."file-entry-cache-6.0.1"
       sources."fill-range-7.0.1"
       sources."find-up-5.0.0"
-      sources."find-yarn-workspace-root-2.0.0"
       sources."flat-cache-3.2.0"
-      sources."flatted-3.2.9"
-      sources."follow-redirects-1.15.5"
+      sources."flatted-3.3.1"
+      sources."follow-redirects-1.15.6"
       sources."fs-constants-1.0.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
@@ -91783,9 +91334,9 @@ in
       sources."graphemer-1.4.0"
       sources."has-flag-3.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hosted-git-info-4.1.0"
       sources."htmlparser2-8.0.2"
       sources."http-proxy-agent-4.0.1"
@@ -91840,7 +91391,7 @@ in
       sources."mute-stream-0.0.8"
       sources."napi-build-utils-1.0.2"
       sources."natural-compare-1.4.0"
-      sources."node-abi-3.54.0"
+      sources."node-abi-3.56.0"
       sources."node-addon-api-4.3.0"
       sources."nth-check-2.1.1"
       sources."object-inspect-1.13.1"
@@ -91868,13 +91419,13 @@ in
       sources."path-type-4.0.0"
       sources."pend-1.2.0"
       sources."picomatch-2.3.1"
-      sources."prebuild-install-7.1.1"
+      sources."prebuild-install-7.1.2"
       sources."prelude-ls-1.2.1"
       sources."prettier-3.2.5"
       sources."process-nextick-args-2.0.1"
       sources."pump-3.0.0"
       sources."punycode-2.3.1"
-      sources."qs-6.11.2"
+      sources."qs-6.12.0"
       sources."queue-microtask-1.2.3"
       sources."rc-1.2.8"
       sources."read-1.0.7"
@@ -91890,11 +91441,11 @@ in
       sources."safer-buffer-2.1.2"
       sources."sax-1.3.0"
       sources."semver-7.6.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."setimmediate-1.0.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."simple-concat-1.0.1"
       sources."simple-get-4.0.1"
       sources."slash-3.0.0"
@@ -91910,16 +91461,16 @@ in
         ];
       })
       sources."text-table-0.2.0"
-      sources."tmp-0.2.1"
+      sources."tmp-0.2.3"
       sources."to-regex-range-5.0.1"
-      sources."ts-api-utils-1.2.1"
+      sources."ts-api-utils-1.3.0"
       sources."tslib-2.6.2"
       sources."tunnel-0.0.6"
       sources."tunnel-agent-0.6.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
       sources."typed-rest-client-1.8.11"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."uc.micro-1.0.6"
       sources."underscore-1.13.6"
       sources."uri-js-4.4.1"
@@ -91952,14 +91503,14 @@ in
   sass = nodeEnv.buildNodePackage {
     name = "sass";
     packageName = "sass";
-    version = "1.71.0";
+    version = "1.72.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/sass/-/sass-1.71.0.tgz";
-      sha512 = "HKKIKf49Vkxlrav3F/w6qRuPcmImGVbIXJ2I3Kg0VMA+3Bav+8yE9G5XmP5lMj6nl4OlqbPftGAscNaNu28b8w==";
+      url = "https://registry.npmjs.org/sass/-/sass-1.72.0.tgz";
+      sha512 = "Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA==";
     };
     dependencies = [
       sources."anymatch-3.1.3"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."braces-3.0.2"
       sources."chokidar-3.6.0"
       sources."fill-range-7.0.1"
@@ -91972,7 +91523,7 @@ in
       sources."normalize-path-3.0.0"
       sources."picomatch-2.3.1"
       sources."readdirp-3.6.0"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       sources."to-regex-range-5.0.1"
     ];
     buildInputs = globalBuildInputs;
@@ -92162,7 +91713,7 @@ in
       sources."bcrypt-pbkdf-1.0.2"
       sources."better-assert-1.0.2"
       sources."blob-0.0.2"
-      sources."body-parser-1.20.1"
+      sources."body-parser-1.20.2"
       sources."bytes-3.1.2"
       sources."call-bind-1.0.7"
       sources."callsite-1.0.0"
@@ -92214,7 +91765,7 @@ in
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
       sources."event-stream-3.3.5"
-      sources."express-4.18.2"
+      sources."express-4.18.3"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
@@ -92235,9 +91786,9 @@ in
       sources."has-binary-data-0.1.1"
       sources."has-cors-1.0.3"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       (sources."htmlparser2-3.7.3" // {
         dependencies = [
           sources."domutils-1.5.1"
@@ -92293,7 +91844,7 @@ in
       sources."punycode-2.3.1"
       sources."qs-6.11.0"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.5.1"
+      sources."raw-body-2.5.2"
       sources."read-1.0.7"
       sources."readable-stream-1.1.14"
       (sources."request-2.88.2" // {
@@ -92309,9 +91860,9 @@ in
         ];
       })
       sources."serve-static-1.15.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."setprototypeof-1.2.0"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."slate-irc-0.7.3"
       (sources."slate-irc-parser-0.0.2" // {
         dependencies = [
@@ -92466,7 +92017,7 @@ in
       sources."minimist-1.2.8"
       sources."mkdirp-0.5.6"
       sources."mv-2.1.1"
-      sources."nan-2.18.0"
+      sources."nan-2.19.0"
       sources."ncp-2.0.0"
       sources."negotiator-0.5.3"
       sources."node-uuid-1.4.8"
@@ -92563,16 +92114,16 @@ in
   "socket.io" = nodeEnv.buildNodePackage {
     name = "socket.io";
     packageName = "socket.io";
-    version = "4.7.4";
+    version = "4.7.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz";
-      sha512 = "DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==";
+      url = "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz";
+      sha512 = "DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==";
     };
     dependencies = [
       sources."@socket.io/component-emitter-3.1.0"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.17"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."accepts-1.3.8"
       sources."base64id-2.0.0"
       sources."bufferutil-4.0.8"
@@ -92587,7 +92138,7 @@ in
       sources."negotiator-0.6.3"
       sources."node-gyp-build-4.8.0"
       sources."object-assign-4.1.1"
-      sources."socket.io-adapter-2.5.2"
+      sources."socket.io-adapter-2.5.4"
       sources."socket.io-parser-4.2.4"
       sources."undici-types-5.26.5"
       sources."utf-8-validate-5.0.10"
@@ -92672,7 +92223,7 @@ in
       sources."function-bind-1.1.2"
       sources."hard-rejection-2.1.0"
       sources."has-flag-4.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hosted-git-info-4.1.0"
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-3.0.1"
@@ -92779,10 +92330,10 @@ in
   sql-formatter = nodeEnv.buildNodePackage {
     name = "sql-formatter";
     packageName = "sql-formatter";
-    version = "15.2.0";
+    version = "15.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/sql-formatter/-/sql-formatter-15.2.0.tgz";
-      sha512 = "k1gDOblvmtzmrBT687Y167ElwQI/8KrlhfKeIUXsi6jw7Rp5n3G8TkMFZF0Z9NG7rAzHKXUlJ8kfmcIfMf5lFg==";
+      url = "https://registry.npmjs.org/sql-formatter/-/sql-formatter-15.3.0.tgz";
+      sha512 = "1aDYVEX+dwOSCkRYns4HEGupRZoaivcsNpU4IzR+MVC+cWFYK9/dce7pr4aId4+ED2iK9PNs3j1Vdf8C+SIvDg==";
     };
     dependencies = [
       sources."argparse-2.0.1"
@@ -92826,16 +92377,16 @@ in
   svelte-check = nodeEnv.buildNodePackage {
     name = "svelte-check";
     packageName = "svelte-check";
-    version = "3.6.4";
+    version = "3.6.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.4.tgz";
-      sha512 = "mY/dqucqm46p72M8yZmn81WPZx9mN6uuw8UVfR3ZKQeLxQg5HDGO3HHm5AZuWZPYNMLJ+TRMn+TeN53HfQ/vsw==";
+      url = "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.7.tgz";
+      sha512 = "tKEjemK9FYCySAseCaIt+ps5o0XRvLC7ECjyJXXtO7vOQhR9E6JavgoUbGP1PCulD2OTcB/fi9RjV3nyF1AROw==";
     };
     dependencies = [
-      sources."@ampproject/remapping-2.2.1"
+      sources."@ampproject/remapping-2.3.0"
       sources."@babel/code-frame-7.23.5"
       sources."@babel/compat-data-7.23.5"
-      sources."@babel/core-7.23.9"
+      sources."@babel/core-7.24.0"
       sources."@babel/generator-7.23.6"
       sources."@babel/helper-compilation-targets-7.23.6"
       sources."@babel/helper-environment-visitor-7.22.20"
@@ -92848,17 +92399,17 @@ in
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.23.9"
+      sources."@babel/helpers-7.24.0"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.9"
-      sources."@babel/template-7.23.9"
-      sources."@babel/traverse-7.23.9"
-      sources."@babel/types-7.23.9"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@babel/parser-7.24.0"
+      sources."@babel/template-7.24.0"
+      sources."@babel/traverse-7.24.0"
+      sources."@babel/types-7.24.0"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -92879,14 +92430,14 @@ in
       sources."axobject-query-4.0.0"
       sources."babel-walk-3.0.0-canary-5"
       sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browserslist-4.23.0"
       sources."buffer-crc32-0.2.13"
       sources."call-bind-1.0.7"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       sources."chalk-2.4.2"
       sources."character-parser-2.2.0"
       sources."chokidar-3.6.0"
@@ -92904,7 +92455,7 @@ in
       sources."dequal-2.0.3"
       sources."detect-indent-6.1.0"
       sources."doctypes-1.1.0"
-      sources."electron-to-chromium-1.4.673"
+      sources."electron-to-chromium-1.4.710"
       sources."errno-0.1.8"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
@@ -92927,10 +92478,10 @@ in
       sources."graceful-fs-4.2.11"
       sources."has-flag-3.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."iconv-lite-0.6.3"
       sources."image-size-0.5.5"
       sources."immutable-4.3.5"
@@ -92954,10 +92505,10 @@ in
       sources."json5-2.2.3"
       sources."jstransformer-1.0.0"
       sources."less-4.2.0"
-      sources."lilconfig-3.1.0"
+      sources."lilconfig-3.1.1"
       sources."locate-character-3.0.0"
       sources."lru-cache-5.1.1"
-      sources."magic-string-0.30.7"
+      sources."magic-string-0.30.8"
       (sources."make-dir-2.1.0" // {
         dependencies = [
           sources."semver-5.7.2"
@@ -92985,7 +92536,7 @@ in
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."pify-4.0.1"
-      sources."postcss-8.4.35"
+      sources."postcss-8.4.36"
       sources."postcss-load-config-5.0.3"
       sources."promise-7.3.1"
       sources."prr-1.0.1"
@@ -93011,13 +92562,13 @@ in
       sources."sade-1.8.1"
       sources."safer-buffer-2.1.2"
       sources."sander-0.5.1"
-      sources."sass-1.71.0"
+      sources."sass-1.72.0"
       sources."sax-1.3.0"
       sources."semver-6.3.1"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."sorcery-0.11.0"
       sources."source-map-0.6.1"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       sources."source-map-resolve-0.6.0"
       sources."strip-indent-3.0.0"
       (sources."stylus-0.55.0" // {
@@ -93032,7 +92583,7 @@ in
       sources."sugarss-4.0.1"
       sources."supports-color-5.5.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      (sources."svelte-5.0.0-next.56" // {
+      (sources."svelte-5.0.0-next.80" // {
         dependencies = [
           sources."acorn-8.11.3"
         ];
@@ -93042,13 +92593,13 @@ in
       sources."to-regex-range-5.0.1"
       sources."token-stream-1.0.0"
       sources."tslib-2.6.2"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."update-browserslist-db-1.0.13"
       sources."void-elements-3.1.0"
       sources."with-7.0.2"
       sources."wrappy-1.0.2"
       sources."yallist-3.1.1"
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
       sources."zimmerframe-1.1.2"
     ];
     buildInputs = globalBuildInputs;
@@ -93064,16 +92615,16 @@ in
   svelte-language-server = nodeEnv.buildNodePackage {
     name = "svelte-language-server";
     packageName = "svelte-language-server";
-    version = "0.16.3";
+    version = "0.16.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.16.3.tgz";
-      sha512 = "j4mJgx5+vTWxffsR42w8ugqWlK8W/peLJYdjRBMxX1smRr1w/v++yDQl1zVcmOpPNcp9HfTTUoivoyd8B7fCpg==";
+      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.16.5.tgz";
+      sha512 = "gzGlDikWDQZn+ccX0hyCamzGuTEXMwGNiXOXiNBtK+HJg+aL7wKcHnjwHg72K4K5s85OIYZE0zUj6JXjkAJkKQ==";
     };
     dependencies = [
-      sources."@ampproject/remapping-2.2.1"
+      sources."@ampproject/remapping-2.3.0"
       sources."@babel/code-frame-7.23.5"
       sources."@babel/compat-data-7.23.5"
-      sources."@babel/core-7.23.9"
+      sources."@babel/core-7.24.0"
       sources."@babel/generator-7.23.6"
       sources."@babel/helper-compilation-targets-7.23.6"
       sources."@babel/helper-environment-visitor-7.22.20"
@@ -93086,20 +92637,20 @@ in
       sources."@babel/helper-string-parser-7.23.4"
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/helper-validator-option-7.23.5"
-      sources."@babel/helpers-7.23.9"
+      sources."@babel/helpers-7.24.0"
       sources."@babel/highlight-7.23.4"
-      sources."@babel/parser-7.23.9"
-      sources."@babel/template-7.23.9"
-      sources."@babel/traverse-7.23.9"
-      sources."@babel/types-7.23.9"
+      sources."@babel/parser-7.24.0"
+      sources."@babel/template-7.24.0"
+      sources."@babel/traverse-7.24.0"
+      sources."@babel/types-7.24.0"
       sources."@emmetio/abbreviation-2.3.3"
       sources."@emmetio/css-abbreviation-2.1.8"
       sources."@emmetio/scanner-1.0.4"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -93118,13 +92669,13 @@ in
       sources."atob-2.1.2"
       sources."babel-walk-3.0.0-canary-5"
       sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browserslist-4.23.0"
       sources."buffer-crc32-0.2.13"
       sources."call-bind-1.0.7"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       sources."chalk-2.4.2"
       sources."character-parser-2.2.0"
       sources."chokidar-3.6.0"
@@ -93142,8 +92693,8 @@ in
       sources."define-data-property-1.1.4"
       sources."detect-indent-6.1.0"
       sources."doctypes-1.1.0"
-      sources."electron-to-chromium-1.4.673"
-      sources."emmet-2.4.6"
+      sources."electron-to-chromium-1.4.710"
+      sources."emmet-2.4.7"
       sources."errno-0.1.8"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
@@ -93165,10 +92716,10 @@ in
       sources."graceful-fs-4.2.11"
       sources."has-flag-3.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."iconv-lite-0.6.3"
       sources."image-size-0.5.5"
       sources."immutable-4.3.5"
@@ -93191,11 +92742,11 @@ in
       sources."jsonc-parser-2.3.1"
       sources."jstransformer-1.0.0"
       sources."less-4.2.0"
-      sources."lilconfig-3.1.0"
+      sources."lilconfig-3.1.1"
       sources."lodash-4.17.21"
       sources."lower-case-2.0.2"
       sources."lru-cache-5.1.1"
-      sources."magic-string-0.30.7"
+      sources."magic-string-0.30.8"
       (sources."make-dir-2.1.0" // {
         dependencies = [
           sources."semver-5.7.2"
@@ -93223,10 +92774,10 @@ in
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
       sources."pify-4.0.1"
-      sources."postcss-8.4.35"
+      sources."postcss-8.4.36"
       sources."postcss-load-config-5.0.3"
-      sources."prettier-3.1.1"
-      sources."prettier-plugin-svelte-3.1.2"
+      sources."prettier-3.2.5"
+      sources."prettier-plugin-svelte-3.2.2"
       sources."promise-7.3.1"
       sources."prr-1.0.1"
       sources."pug-3.0.2"
@@ -93249,13 +92800,13 @@ in
       sources."run-parallel-1.2.0"
       sources."safer-buffer-2.1.2"
       sources."sander-0.5.1"
-      sources."sass-1.71.0"
+      sources."sass-1.72.0"
       sources."sax-1.3.0"
       sources."semver-6.3.1"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."sorcery-0.11.0"
       sources."source-map-0.6.1"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       sources."source-map-resolve-0.6.0"
       sources."strip-indent-3.0.0"
       (sources."stylus-0.55.0" // {
@@ -93272,12 +92823,12 @@ in
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."svelte-3.59.2"
       sources."svelte-preprocess-5.1.3"
-      sources."svelte2tsx-0.7.1"
+      sources."svelte2tsx-0.7.4"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."token-stream-1.0.0"
       sources."tslib-2.6.2"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       (sources."typescript-auto-import-cache-0.3.2" // {
         dependencies = [
           sources."lru-cache-6.0.0"
@@ -93307,7 +92858,7 @@ in
       sources."with-7.0.2"
       sources."wrappy-1.0.2"
       sources."yallist-3.1.1"
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -93348,7 +92899,7 @@ in
       sources."mdn-data-2.0.30"
       sources."nth-check-2.1.1"
       sources."picocolors-1.0.0"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -93372,24 +92923,28 @@ in
       sources."@alloc/quick-lru-5.2.0"
       sources."@cspotcode/source-map-support-0.8.1"
       sources."@isaacs/cliui-8.0.2"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      (sources."@jridgewell/gen-mapping-0.3.5" // {
+        dependencies = [
+          sources."@jridgewell/trace-mapping-0.3.25"
+        ];
+      })
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
+      sources."@jridgewell/set-array-1.2.1"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.9"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@swc/core-1.4.1"
+      sources."@swc/core-1.4.8"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.6"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.4.1"
+      sources."@swc/helpers-0.5.7"
+      sources."@swc/types-0.1.6"
+      sources."@swc/wasm-1.4.8"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."ansi-regex-5.0.1"
@@ -93398,7 +92953,7 @@ in
       sources."anymatch-3.1.3"
       sources."arg-5.0.2"
       sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."brace-expansion-2.0.1"
       sources."braces-3.0.2"
       sources."camelcase-css-2.0.1"
@@ -93429,7 +92984,7 @@ in
       sources."function-bind-1.1.2"
       sources."glob-10.3.10"
       sources."glob-parent-6.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."is-binary-path-2.1.0"
       sources."is-core-module-2.13.1"
       sources."is-extglob-2.1.1"
@@ -93459,16 +93014,16 @@ in
       sources."picomatch-2.3.1"
       sources."pify-2.3.0"
       sources."pirates-4.0.6"
-      sources."postcss-8.4.35"
+      sources."postcss-8.4.36"
       sources."postcss-import-15.1.0"
       sources."postcss-js-4.0.1"
       (sources."postcss-load-config-4.0.2" // {
         dependencies = [
-          sources."lilconfig-3.1.0"
+          sources."lilconfig-3.1.1"
         ];
       })
       sources."postcss-nested-6.0.1"
-      sources."postcss-selector-parser-6.0.15"
+      sources."postcss-selector-parser-6.0.16"
       sources."postcss-value-parser-4.2.0"
       sources."queue-microtask-1.2.3"
       sources."read-cache-1.0.0"
@@ -93479,7 +93034,7 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-4.1.0"
-      sources."source-map-js-1.0.2"
+      sources."source-map-js-1.1.0"
       sources."string-width-5.1.2"
       (sources."string-width-cjs-4.2.3" // {
         dependencies = [
@@ -93505,7 +93060,7 @@ in
         ];
       })
       sources."tslib-2.6.2"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."undici-types-5.26.5"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-lib-3.0.1"
@@ -93519,7 +93074,7 @@ in
           sources."strip-ansi-6.0.1"
         ];
       })
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
       sources."yn-3.1.1"
     ];
     buildInputs = globalBuildInputs;
@@ -93608,31 +93163,31 @@ in
   textlint = nodeEnv.buildNodePackage {
     name = "textlint";
     packageName = "textlint";
-    version = "14.0.3";
+    version = "14.0.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint/-/textlint-14.0.3.tgz";
-      sha512 = "AqEG9OcGBSw4KHss55ZrBv75uWeruqTHfix3koQHwqnazRw3eAkFQwQ+NLpzMut+rIBWUUikUzuBN/SOG+obEw==";
+      url = "https://registry.npmjs.org/textlint/-/textlint-14.0.4.tgz";
+      sha512 = "xPQkC/BftPjizjs31wci/791EjwfN11iRLrNKiPVBogYd1r+6TnSxbCERZhgXCGcD9tEHss0kOYc0+vPEEG8jg==";
     };
     dependencies = [
       sources."@aashutoshrathi/word-wrap-1.2.6"
       sources."@azu/format-text-1.0.2"
       sources."@azu/style-format-1.0.1"
-      sources."@textlint/ast-node-types-14.0.3"
-      sources."@textlint/ast-tester-14.0.3"
-      sources."@textlint/ast-traverse-14.0.3"
-      sources."@textlint/config-loader-14.0.3"
-      sources."@textlint/feature-flag-14.0.3"
-      sources."@textlint/fixer-formatter-14.0.3"
-      sources."@textlint/kernel-14.0.3"
-      sources."@textlint/linter-formatter-14.0.3"
-      sources."@textlint/markdown-to-ast-14.0.3"
-      sources."@textlint/module-interop-14.0.3"
-      sources."@textlint/source-code-fixer-14.0.3"
-      sources."@textlint/text-to-ast-14.0.3"
-      sources."@textlint/textlint-plugin-markdown-14.0.3"
-      sources."@textlint/textlint-plugin-text-14.0.3"
-      sources."@textlint/types-14.0.3"
-      sources."@textlint/utils-14.0.3"
+      sources."@textlint/ast-node-types-14.0.4"
+      sources."@textlint/ast-tester-14.0.4"
+      sources."@textlint/ast-traverse-14.0.4"
+      sources."@textlint/config-loader-14.0.4"
+      sources."@textlint/feature-flag-14.0.4"
+      sources."@textlint/fixer-formatter-14.0.4"
+      sources."@textlint/kernel-14.0.4"
+      sources."@textlint/linter-formatter-14.0.4"
+      sources."@textlint/markdown-to-ast-14.0.4"
+      sources."@textlint/module-interop-14.0.4"
+      sources."@textlint/source-code-fixer-14.0.4"
+      sources."@textlint/text-to-ast-14.0.4"
+      sources."@textlint/textlint-plugin-markdown-14.0.4"
+      sources."@textlint/textlint-plugin-text-14.0.4"
+      sources."@textlint/types-14.0.4"
+      sources."@textlint/utils-14.0.4"
       sources."@types/mdast-3.0.15"
       sources."@types/unist-2.0.10"
       sources."ajv-8.12.0"
@@ -93677,7 +93232,7 @@ in
       sources."glob-7.2.3"
       sources."graceful-fs-4.2.11"
       sources."has-flag-4.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hosted-git-info-2.8.9"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -93858,14 +93413,14 @@ in
       sources."get-intrinsic-1.2.4"
       sources."gopd-1.0.1"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."match-index-1.0.3"
       sources."object-keys-1.1.1"
       sources."regexp.prototype.flags-1.5.2"
-      sources."set-function-length-1.2.1"
-      sources."set-function-name-2.0.1"
+      sources."set-function-length-1.2.2"
+      sources."set-function-name-2.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -93890,7 +93445,7 @@ in
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/highlight-7.23.4"
       sources."@isaacs/cliui-8.0.2"
-      sources."@npmcli/config-6.4.0"
+      sources."@npmcli/config-6.4.1"
       (sources."@npmcli/map-workspaces-3.0.4" // {
         dependencies = [
           sources."glob-10.3.10"
@@ -93912,7 +93467,7 @@ in
       sources."@types/concat-stream-2.0.3"
       sources."@types/debug-4.1.12"
       sources."@types/estree-1.0.5"
-      sources."@types/estree-jsx-1.0.4"
+      sources."@types/estree-jsx-1.0.5"
       sources."@types/hast-2.3.10"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/is-empty-1.2.3"
@@ -93920,7 +93475,7 @@ in
       sources."@types/minimist-1.2.5"
       sources."@types/ms-0.7.34"
       sources."@types/nlcst-1.0.4"
-      sources."@types/node-18.19.17"
+      sources."@types/node-18.19.25"
       sources."@types/normalize-package-data-2.4.4"
       sources."@types/supports-color-8.1.3"
       sources."@types/unist-2.0.10"
@@ -93965,7 +93520,7 @@ in
       sources."character-entities-html4-2.1.0"
       sources."character-entities-legacy-3.0.0"
       sources."character-reference-invalid-2.0.1"
-      sources."ci-info-3.9.0"
+      sources."ci-info-4.0.0"
       sources."cli-boxes-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -94042,7 +93597,7 @@ in
       sources."hard-rejection-2.1.0"
       sources."has-flag-3.0.0"
       sources."has-yarn-3.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."hast-util-embedded-2.0.1"
       sources."hast-util-from-parse5-7.1.2"
       sources."hast-util-has-property-2.0.1"
@@ -94068,12 +93623,16 @@ in
       sources."indent-string-5.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-4.1.1"
+      sources."ini-4.1.2"
       sources."is-alphabetical-2.0.1"
       sources."is-alphanumerical-2.0.1"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-2.0.5"
-      sources."is-ci-3.0.1"
+      (sources."is-ci-3.0.1" // {
+        dependencies = [
+          sources."ci-info-3.9.0"
+        ];
+      })
       sources."is-core-module-2.13.1"
       sources."is-decimal-2.0.1"
       sources."is-empty-1.2.0"
@@ -94179,7 +93738,7 @@ in
       sources."nlcst-to-string-3.1.1"
       sources."nopt-7.2.0"
       sources."normalize-package-data-4.0.1"
-      sources."normalize-url-8.0.0"
+      sources."normalize-url-8.0.1"
       sources."npm-normalize-package-bin-3.0.1"
       sources."object-keys-0.4.0"
       sources."once-1.4.0"
@@ -94412,7 +93971,7 @@ in
       sources."xdg-basedir-5.1.0"
       sources."xtend-2.1.2"
       sources."yallist-4.0.0"
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
       sources."yargs-parser-21.1.1"
       sources."yocto-queue-1.0.0"
       sources."zwitch-2.0.4"
@@ -94705,14 +94264,18 @@ in
       sources."array-buffer-byte-length-1.0.1"
       sources."array-includes-3.1.7"
       sources."arraybuffer.prototype.slice-1.0.3"
-      sources."available-typed-arrays-1.0.6"
+      sources."available-typed-arrays-1.0.7"
       sources."call-bind-1.0.7"
+      sources."data-view-buffer-1.0.1"
+      sources."data-view-byte-length-1.0.1"
+      sources."data-view-byte-offset-1.0.0"
       sources."define-data-property-1.1.4"
       sources."define-properties-1.2.1"
-      sources."es-abstract-1.22.4"
+      sources."es-abstract-1.23.2"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
-      sources."es-set-tostringtag-2.0.2"
+      sources."es-object-atoms-1.0.0"
+      sources."es-set-tostringtag-2.0.3"
       sources."es-to-primitive-1.2.1"
       sources."for-each-0.3.3"
       sources."function-bind-1.1.2"
@@ -94724,21 +94287,22 @@ in
       sources."gopd-1.0.1"
       sources."has-bigints-1.0.2"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."internal-slot-1.0.7"
       sources."is-array-buffer-3.0.4"
       sources."is-bigint-1.0.4"
       sources."is-boolean-object-1.1.2"
       sources."is-callable-1.2.7"
       sources."is-capitalized-1.0.0"
+      sources."is-data-view-1.0.1"
       sources."is-date-object-1.0.5"
-      sources."is-negative-zero-2.0.2"
+      sources."is-negative-zero-2.0.3"
       sources."is-number-object-1.0.7"
       sources."is-regex-1.1.4"
-      sources."is-shared-array-buffer-1.0.2"
+      sources."is-shared-array-buffer-1.0.3"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.13"
@@ -94747,22 +94311,23 @@ in
       sources."object-inspect-1.13.1"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.5"
+      sources."possible-typed-array-names-1.0.0"
       sources."regexp.prototype.flags-1.5.2"
-      sources."safe-array-concat-1.1.0"
+      sources."safe-array-concat-1.1.2"
       sources."safe-regex-test-1.0.3"
-      sources."set-function-length-1.2.1"
-      sources."set-function-name-2.0.1"
-      sources."side-channel-1.0.5"
-      sources."string.prototype.trim-1.2.8"
-      sources."string.prototype.trimend-1.0.7"
+      sources."set-function-length-1.2.2"
+      sources."set-function-name-2.0.2"
+      sources."side-channel-1.0.6"
+      sources."string.prototype.trim-1.2.9"
+      sources."string.prototype.trimend-1.0.8"
       sources."string.prototype.trimstart-1.0.7"
-      sources."typed-array-buffer-1.0.1"
-      sources."typed-array-byte-length-1.0.0"
-      sources."typed-array-byte-offset-1.0.0"
-      sources."typed-array-length-1.0.4"
+      sources."typed-array-buffer-1.0.2"
+      sources."typed-array-byte-length-1.0.1"
+      sources."typed-array-byte-offset-1.0.2"
+      sources."typed-array-length-1.0.5"
       sources."unbox-primitive-1.0.2"
       sources."which-boxed-primitive-1.0.2"
-      sources."which-typed-array-1.1.14"
+      sources."which-typed-array-1.1.15"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -94834,7 +94399,7 @@ in
       sources."@types/cors-2.8.17"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/responselike-1.0.3"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -94855,7 +94420,7 @@ in
       sources."asn1-0.2.6"
       sources."asn1.js-5.4.1"
       sources."assert-plus-1.0.0"
-      sources."available-typed-arrays-1.0.6"
+      sources."available-typed-arrays-1.0.7"
       sources."backoff-2.5.0"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
@@ -94893,7 +94458,7 @@ in
       sources."content-type-1.0.5"
       sources."cookie-0.4.2"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.36.0"
+      sources."core-js-3.36.1"
       sources."core-util-is-1.0.2"
       sources."cors-2.8.5"
       sources."css-select-4.3.0"
@@ -94968,11 +94533,11 @@ in
       sources."grapheme-splitter-1.0.4"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
       sources."has-unicode-2.0.1"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."htmlparser2-6.1.0"
       sources."http-cache-semantics-4.1.1"
       sources."http-errors-1.8.1"
@@ -95112,6 +94677,7 @@ in
       sources."path-to-regexp-0.1.7"
       sources."peek-readable-4.1.0"
       sources."pify-4.0.1"
+      sources."possible-typed-array-names-1.0.0"
       sources."precond-0.2.3"
       sources."promise-inflight-1.0.1"
       sources."promise-retry-2.0.1"
@@ -95143,7 +94709,7 @@ in
       })
       sources."serve-static-1.14.2"
       sources."set-blocking-2.0.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."setprototypeof-1.2.0"
       sources."signal-exit-3.0.7"
       sources."smart-buffer-4.2.0"
@@ -95153,14 +94719,19 @@ in
           sources."ms-2.1.2"
         ];
       })
-      sources."socket.io-adapter-2.5.2"
+      (sources."socket.io-adapter-2.5.4" // {
+        dependencies = [
+          sources."debug-4.3.4"
+          sources."ms-2.1.2"
+        ];
+      })
       (sources."socket.io-parser-4.2.4" // {
         dependencies = [
           sources."debug-4.3.4"
           sources."ms-2.1.2"
         ];
       })
-      sources."socks-2.8.0"
+      sources."socks-2.8.1"
       (sources."socks-proxy-agent-6.2.1" // {
         dependencies = [
           sources."debug-4.3.4"
@@ -95216,7 +94787,7 @@ in
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
       sources."which-2.0.2"
-      sources."which-typed-array-1.1.14"
+      sources."which-typed-array-1.1.15"
       sources."wide-align-1.1.5"
       sources."with-open-file-0.1.7"
       sources."wrappy-1.0.2"
@@ -95329,7 +94900,7 @@ in
       sources."content-type-1.0.5"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.36.0"
+      sources."core-js-3.36.1"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -95424,10 +94995,10 @@ in
       sources."has-cors-1.1.0"
       sources."has-flag-3.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-unicode-2.0.1"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."htmlparser2-3.10.1"
       sources."http-cache-semantics-4.1.1"
       (sources."http-errors-1.7.2" // {
@@ -95504,7 +95075,7 @@ in
       sources."mkdirp-0.5.6"
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
-      sources."nan-2.18.0"
+      sources."nan-2.19.0"
       (sources."needle-2.9.1" // {
         dependencies = [
           sources."debug-3.2.7"
@@ -95553,7 +95124,7 @@ in
       sources."psl-1.9.0"
       sources."pump-3.0.0"
       sources."punycode-2.3.1"
-      sources."qs-6.11.2"
+      sources."qs-6.12.0"
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."rc-1.2.8"
@@ -95586,9 +95157,9 @@ in
       })
       sources."serve-static-1.14.1"
       sources."set-blocking-2.0.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."setprototypeof-1.1.1"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       (sources."socket.io-2.3.0" // {
         dependencies = [
@@ -95930,7 +95501,7 @@ in
       sources."@types/cacheable-request-6.0.3"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/responselike-1.0.3"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -96011,7 +95582,7 @@ in
       sources."content-type-1.0.5"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.36.0"
+      sources."core-js-3.36.1"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -96399,7 +95970,7 @@ in
       sources."@types/cacheable-request-6.0.3"
       sources."@types/http-cache-semantics-4.0.4"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/responselike-1.0.3"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -96480,7 +96051,7 @@ in
       sources."content-type-1.0.5"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.36.0"
+      sources."core-js-3.36.1"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -97303,7 +96874,7 @@ in
       sources."supports-color-2.0.0"
       sources."temp-0.8.4"
       sources."tslib-1.14.1"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."wordwrap-0.0.3"
       sources."wrappy-1.0.2"
     ];
@@ -97330,16 +96901,16 @@ in
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.9"
-      sources."@swc/core-1.4.1"
+      sources."@swc/core-1.4.8"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.6"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.4.1"
+      sources."@swc/helpers-0.5.7"
+      sources."@swc/types-0.1.6"
+      sources."@swc/wasm-1.4.8"
       sources."@tsconfig/node10-1.0.9"
       sources."@tsconfig/node12-1.0.11"
       sources."@tsconfig/node14-1.0.3"
       sources."@tsconfig/node16-1.0.4"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."arg-4.1.3"
@@ -97347,7 +96918,7 @@ in
       sources."diff-4.0.2"
       sources."make-error-1.3.6"
       sources."tslib-2.6.2"
-      sources."typescript-5.3.3"
+      sources."typescript-5.4.2"
       sources."undici-types-5.26.5"
       sources."v8-compile-cache-lib-3.0.1"
       sources."yn-3.1.1"
@@ -97449,14 +97020,14 @@ in
       sources."@babel/helper-validator-identifier-7.22.20"
       sources."@babel/highlight-7.23.4"
       sources."@isaacs/cliui-8.0.2"
-      sources."@npmcli/config-6.4.0"
+      sources."@npmcli/config-6.4.1"
       sources."@npmcli/map-workspaces-3.0.4"
       sources."@npmcli/name-from-folder-2.0.0"
       sources."@types/concat-stream-2.0.3"
       sources."@types/debug-4.1.12"
       sources."@types/is-empty-1.2.3"
       sources."@types/ms-0.7.34"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/supports-color-8.1.3"
       sources."@types/unist-3.0.2"
       sources."@ungap/structured-clone-1.2.0"
@@ -97473,7 +97044,7 @@ in
           sources."color-name-1.1.3"
         ];
       })
-      sources."ci-info-3.9.0"
+      sources."ci-info-4.0.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."concat-stream-2.0.0"
@@ -97490,7 +97061,7 @@ in
       sources."ignore-5.3.1"
       sources."import-meta-resolve-2.2.2"
       sources."inherits-2.0.4"
-      sources."ini-4.1.1"
+      sources."ini-4.1.2"
       sources."is-arrayish-0.2.1"
       sources."is-empty-1.2.0"
       sources."is-fullwidth-code-point-3.0.0"
@@ -97547,8 +97118,7 @@ in
       sources."undici-types-5.26.5"
       (sources."unified-engine-11.2.0" // {
         dependencies = [
-          sources."@npmcli/config-8.1.0"
-          sources."ci-info-4.0.0"
+          sources."@npmcli/config-8.2.0"
           sources."import-meta-resolve-4.0.0"
           sources."load-plugin-6.0.2"
         ];
@@ -97585,7 +97155,7 @@ in
         ];
       })
       sources."yallist-4.0.0"
-      sources."yaml-2.3.4"
+      sources."yaml-2.4.1"
       sources."yocto-queue-1.0.0"
     ];
     buildInputs = globalBuildInputs;
@@ -97601,10 +97171,10 @@ in
   vega-cli = nodeEnv.buildNodePackage {
     name = "vega-cli";
     packageName = "vega-cli";
-    version = "5.27.0";
+    version = "5.28.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vega-cli/-/vega-cli-5.27.0.tgz";
-      sha512 = "ZOQAG545RuP+Bba4udBapaFbSvPMHvfstkC9OLHOcfqjUPrx4XU/HffsiX6D1WrBP+5OoOzvLpNg4u9Agi7uag==";
+      url = "https://registry.npmjs.org/vega-cli/-/vega-cli-5.28.0.tgz";
+      sha512 = "Rb0qwuLV71pkIXVdt78yTJh+KT9Q1avhdWIOwrrc/OHWwRowWlvtoc3pJBHXlGooDqj8gbMkU+MXR3ez2H8glQ==";
     };
     dependencies = [
       sources."@mapbox/node-pre-gyp-1.0.11"
@@ -97634,7 +97204,7 @@ in
       sources."d3-dsv-3.0.1"
       sources."d3-force-3.0.0"
       sources."d3-format-3.1.0"
-      sources."d3-geo-3.1.0"
+      sources."d3-geo-3.1.1"
       sources."d3-geo-projection-4.0.0"
       sources."d3-hierarchy-3.1.2"
       sources."d3-interpolate-3.0.1"
@@ -97685,7 +97255,7 @@ in
       })
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
-      sources."nan-2.18.0"
+      sources."nan-2.19.0"
       sources."node-fetch-2.7.0"
       sources."nopt-5.0.0"
       sources."npmlog-5.0.1"
@@ -97715,7 +97285,7 @@ in
       })
       sources."tr46-0.0.3"
       sources."util-deprecate-1.0.2"
-      sources."vega-5.27.0"
+      sources."vega-5.28.0"
       sources."vega-canvas-1.2.7"
       sources."vega-crossfilter-4.1.1"
       sources."vega-dataflow-5.7.5"
@@ -97729,7 +97299,7 @@ in
       sources."vega-hierarchy-4.1.1"
       sources."vega-label-1.2.1"
       sources."vega-loader-4.5.1"
-      sources."vega-parser-6.2.1"
+      sources."vega-parser-6.3.0"
       sources."vega-projection-1.6.0"
       sources."vega-regression-1.2.0"
       sources."vega-runtime-6.1.4"
@@ -97768,10 +97338,10 @@ in
   vega-lite = nodeEnv.buildNodePackage {
     name = "vega-lite";
     packageName = "vega-lite";
-    version = "5.16.3";
+    version = "5.17.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vega-lite/-/vega-lite-5.16.3.tgz";
-      sha512 = "F3HO/BqlyyB1D0tf/+qy1JOmq7bHtG/nvsXcgNVUFjgVgvVKL4sMnxVnYzSsIg10x/6RFxLfwWJSd0cA8MuuUA==";
+      url = "https://registry.npmjs.org/vega-lite/-/vega-lite-5.17.0.tgz";
+      sha512 = "PPm1HRdDFDdl2fga3cHm3lHjJV/xcB+Cn77xe7Av1yRLY1GMbPaJS42s+e7XHGmbeDee+H/KK9lUdQK28xs7nA==";
     };
     dependencies = [
       sources."@types/estree-1.0.5"
@@ -97789,7 +97359,7 @@ in
       sources."d3-dsv-3.0.1"
       sources."d3-force-3.0.0"
       sources."d3-format-3.1.0"
-      sources."d3-geo-3.1.0"
+      sources."d3-geo-3.1.1"
       sources."d3-geo-projection-4.0.0"
       sources."d3-hierarchy-3.1.2"
       sources."d3-interpolate-3.0.1"
@@ -97823,7 +97393,7 @@ in
       })
       sources."tr46-0.0.3"
       sources."tslib-2.6.2"
-      sources."vega-5.27.0"
+      sources."vega-5.28.0"
       sources."vega-canvas-1.2.7"
       sources."vega-crossfilter-4.1.1"
       sources."vega-dataflow-5.7.5"
@@ -97837,7 +97407,7 @@ in
       sources."vega-hierarchy-4.1.1"
       sources."vega-label-1.2.1"
       sources."vega-loader-4.5.1"
-      sources."vega-parser-6.2.1"
+      sources."vega-parser-6.3.0"
       sources."vega-projection-1.6.0"
       sources."vega-regression-1.2.0"
       sources."vega-runtime-6.1.4"
@@ -97873,10 +97443,10 @@ in
   vercel = nodeEnv.buildNodePackage {
     name = "vercel";
     packageName = "vercel";
-    version = "33.5.1";
+    version = "33.6.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vercel/-/vercel-33.5.1.tgz";
-      sha512 = "lvQWtsElC4ZxdCAO8xBqNEoqcX+i4xdWRIXbDMCfEahTOeaaHs8asV68iP7/PJ3zC/9Zr0kTyx0CUtiBJaXZ9A==";
+      url = "https://registry.npmjs.org/vercel/-/vercel-33.6.1.tgz";
+      sha512 = "Y21ViEdTuXLkvz1vEvm8jvOqU58G0fntPpST8Xr2eoshNyrgntIL0VlASrDzgEW2zkZ8gutrXFbD9Y4V8Uerrw==";
     };
     dependencies = [
       sources."@cspotcode/source-map-support-0.8.1"
@@ -97885,7 +97455,7 @@ in
       sources."@edge-runtime/ponyfill-2.4.2"
       sources."@edge-runtime/primitives-4.1.0"
       sources."@edge-runtime/vm-3.2.0"
-      sources."@fastify/busboy-2.1.0"
+      sources."@fastify/busboy-2.1.1"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.9"
@@ -97912,11 +97482,11 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@rollup/pluginutils-4.2.1"
       sources."@sinclair/typebox-0.25.24"
-      sources."@swc/core-1.4.1"
+      sources."@swc/core-1.4.8"
       sources."@swc/counter-0.1.3"
-      sources."@swc/helpers-0.5.6"
-      sources."@swc/types-0.1.5"
-      sources."@swc/wasm-1.4.1"
+      sources."@swc/helpers-0.5.7"
+      sources."@swc/types-0.1.6"
+      sources."@swc/wasm-1.4.8"
       sources."@tootallnate/once-2.0.0"
       (sources."@ts-morph/common-0.11.1" // {
         dependencies = [
@@ -97929,11 +97499,11 @@ in
       sources."@tsconfig/node16-1.0.4"
       sources."@types/json-schema-7.0.15"
       sources."@types/node-14.18.33"
-      sources."@vercel/build-utils-7.7.0"
+      sources."@vercel/build-utils-7.9.1"
       sources."@vercel/error-utils-2.0.2"
       sources."@vercel/fun-1.1.0"
       sources."@vercel/gatsby-plugin-vercel-analytics-1.0.11"
-      (sources."@vercel/gatsby-plugin-vercel-builder-2.0.18" // {
+      (sources."@vercel/gatsby-plugin-vercel-builder-2.0.22" // {
         dependencies = [
           sources."fs-extra-11.1.0"
           sources."jsonfile-6.1.0"
@@ -97942,9 +97512,9 @@ in
       })
       sources."@vercel/go-3.0.5"
       sources."@vercel/hydrogen-1.0.2"
-      sources."@vercel/next-4.1.1"
-      sources."@vercel/nft-0.26.3"
-      (sources."@vercel/node-3.0.19" // {
+      sources."@vercel/next-4.1.6"
+      sources."@vercel/nft-0.26.4"
+      (sources."@vercel/node-3.0.24" // {
         dependencies = [
           sources."async-listen-3.0.0"
           sources."node-fetch-2.6.9"
@@ -97952,12 +97522,12 @@ in
         ];
       })
       sources."@vercel/python-4.1.1"
-      (sources."@vercel/redwood-2.0.7" // {
+      (sources."@vercel/redwood-2.0.8" // {
         dependencies = [
           sources."semver-6.3.1"
         ];
       })
-      sources."@vercel/remix-builder-2.0.19"
+      sources."@vercel/remix-builder-2.1.4"
       (sources."@vercel/routing-utils-3.1.0" // {
         dependencies = [
           sources."ajv-6.12.6"
@@ -97966,7 +97536,7 @@ in
         ];
       })
       sources."@vercel/ruby-2.0.5"
-      sources."@vercel/static-build-2.4.0"
+      sources."@vercel/static-build-2.4.4"
       sources."@vercel/static-config-3.0.0"
       sources."abbrev-1.1.1"
       sources."acorn-8.11.3"
@@ -97983,7 +97553,7 @@ in
       sources."async-listen-1.2.0"
       sources."async-sema-3.1.1"
       sources."balanced-match-1.0.2"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."bindings-1.5.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
@@ -98262,7 +97832,7 @@ in
       sources."@eslint-community/eslint-utils-4.4.0"
       sources."@eslint-community/regexpp-4.10.0"
       sources."@eslint/eslintrc-2.1.4"
-      sources."@eslint/js-8.56.0"
+      sources."@eslint/js-8.57.0"
       sources."@humanwhocodes/config-array-0.11.14"
       sources."@humanwhocodes/module-importer-1.0.1"
       sources."@humanwhocodes/object-schema-2.0.2"
@@ -98298,8 +97868,8 @@ in
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
       sources."escape-string-regexp-4.0.0"
-      sources."eslint-8.56.0"
-      sources."eslint-plugin-vue-9.21.1"
+      sources."eslint-8.57.0"
+      sources."eslint-plugin-vue-9.23.0"
       sources."eslint-scope-7.2.2"
       sources."eslint-visitor-keys-3.4.3"
       sources."espree-9.6.1"
@@ -98315,7 +97885,7 @@ in
       sources."file-entry-cache-6.0.1"
       sources."find-up-5.0.0"
       sources."flat-cache-3.2.0"
-      sources."flatted-3.2.9"
+      sources."flatted-3.3.1"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.2"
       sources."get-intrinsic-1.2.4"
@@ -98326,10 +97896,10 @@ in
       sources."graphemer-1.4.0"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.2"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."ignore-5.3.1"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
@@ -98373,7 +97943,7 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
-      sources."postcss-selector-parser-6.0.15"
+      sources."postcss-selector-parser-6.0.16"
       sources."prelude-ls-1.2.1"
       sources."prettier-2.8.8"
       sources."pug-error-2.0.0"
@@ -98386,7 +97956,7 @@ in
       sources."rimraf-3.0.2"
       sources."run-parallel-1.2.0"
       sources."semver-7.6.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."sprintf-js-1.0.3"
@@ -98597,13 +98167,13 @@ in
   wavedrom-cli = nodeEnv.buildNodePackage {
     name = "wavedrom-cli";
     packageName = "wavedrom-cli";
-    version = "3.1.1";
+    version = "3.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/wavedrom-cli/-/wavedrom-cli-3.1.1.tgz";
-      sha512 = "EwAUg6706mBujMLbb4Czhe9Ax5Dw3x64t/X2hn+vIVvVexAANSifVg3yB7ILZmeRSGmv9uYo6kL5J1c/DiGdaw==";
+      url = "https://registry.npmjs.org/wavedrom-cli/-/wavedrom-cli-3.2.0.tgz";
+      sha512 = "KX07T/WHnXfmoo2wvjLlx0eKeGIotB0C5GnfWVHylPfSa7BuNo0bktRCL2+zJ3g72IKc1psuRIGZIn7/soexag==";
     };
     dependencies = [
-      (sources."@babel/runtime-7.23.9" // {
+      (sources."@babel/runtime-7.24.0" // {
         dependencies = [
           sources."regenerator-runtime-0.14.1"
         ];
@@ -98659,11 +98229,7 @@ in
       sources."any-base-1.1.0"
       sources."atob-2.1.2"
       sources."base64-js-1.5.1"
-      (sources."bit-field-1.8.0" // {
-        dependencies = [
-          sources."fs-extra-10.1.0"
-        ];
-      })
+      sources."bit-field-1.9.0"
       sources."bmp-js-0.1.0"
       sources."btoa-1.2.1"
       sources."buffer-5.7.1"
@@ -98727,7 +98293,7 @@ in
       sources."universalify-2.0.1"
       sources."utif-2.0.1"
       sources."util-deprecate-1.0.2"
-      sources."wavedrom-3.4.0"
+      sources."wavedrom-3.5.0"
       sources."wrap-ansi-7.0.0"
       sources."xhr-2.6.0"
       sources."xml-parse-from-string-1.0.1"
@@ -98751,38 +98317,38 @@ in
   webpack = nodeEnv.buildNodePackage {
     name = "webpack";
     packageName = "webpack";
-    version = "5.90.2";
+    version = "5.90.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack/-/webpack-5.90.2.tgz";
-      sha512 = "ziXu8ABGr0InCMEYFnHrYweinHK2PWrMqnwdHk2oK3rRhv/1B+2FnfwYv5oD+RrknK/Pp/Hmyvu+eAsaMYhzCw==";
+      url = "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz";
+      sha512 = "h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==";
     };
     dependencies = [
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
-      sources."@jridgewell/source-map-0.3.5"
+      sources."@jridgewell/set-array-1.2.1"
+      sources."@jridgewell/source-map-0.3.6"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
-      sources."@types/eslint-8.56.2"
+      sources."@jridgewell/trace-mapping-0.3.25"
+      sources."@types/eslint-8.56.5"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/json-schema-7.0.15"
-      sources."@types/node-20.11.19"
-      sources."@webassemblyjs/ast-1.11.6"
+      sources."@types/node-20.11.29"
+      sources."@webassemblyjs/ast-1.12.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.6"
       sources."@webassemblyjs/helper-api-error-1.11.6"
-      sources."@webassemblyjs/helper-buffer-1.11.6"
+      sources."@webassemblyjs/helper-buffer-1.12.1"
       sources."@webassemblyjs/helper-numbers-1.11.6"
       sources."@webassemblyjs/helper-wasm-bytecode-1.11.6"
-      sources."@webassemblyjs/helper-wasm-section-1.11.6"
+      sources."@webassemblyjs/helper-wasm-section-1.12.1"
       sources."@webassemblyjs/ieee754-1.11.6"
       sources."@webassemblyjs/leb128-1.11.6"
       sources."@webassemblyjs/utf8-1.11.6"
-      sources."@webassemblyjs/wasm-edit-1.11.6"
-      sources."@webassemblyjs/wasm-gen-1.11.6"
-      sources."@webassemblyjs/wasm-opt-1.11.6"
-      sources."@webassemblyjs/wasm-parser-1.11.6"
-      sources."@webassemblyjs/wast-printer-1.11.6"
+      sources."@webassemblyjs/wasm-edit-1.12.1"
+      sources."@webassemblyjs/wasm-gen-1.12.1"
+      sources."@webassemblyjs/wasm-opt-1.12.1"
+      sources."@webassemblyjs/wasm-parser-1.12.1"
+      sources."@webassemblyjs/wast-printer-1.12.1"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
       sources."acorn-8.11.3"
@@ -98791,11 +98357,11 @@ in
       sources."ajv-keywords-3.5.2"
       sources."browserslist-4.23.0"
       sources."buffer-from-1.1.2"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       sources."chrome-trace-event-1.0.3"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.4.673"
-      sources."enhanced-resolve-5.15.0"
+      sources."electron-to-chromium-1.4.710"
+      sources."enhanced-resolve-5.16.0"
       sources."es-module-lexer-1.4.1"
       sources."escalade-3.1.2"
       sources."eslint-scope-5.1.1"
@@ -98830,13 +98396,13 @@ in
       sources."source-map-support-0.5.21"
       sources."supports-color-8.1.1"
       sources."tapable-2.2.1"
-      sources."terser-5.27.1"
+      sources."terser-5.29.2"
       sources."terser-webpack-plugin-5.3.10"
       sources."undici-types-5.26.5"
       sources."update-browserslist-db-1.0.13"
       sources."uri-js-4.4.1"
-      sources."watchpack-2.4.0"
-      sources."webpack-5.90.2"
+      sources."watchpack-2.4.1"
+      sources."webpack-5.90.3"
       sources."webpack-sources-3.2.3"
     ];
     buildInputs = globalBuildInputs;
@@ -98859,32 +98425,32 @@ in
     };
     dependencies = [
       sources."@discoveryjs/json-ext-0.5.7"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
-      sources."@jridgewell/source-map-0.3.5"
+      sources."@jridgewell/set-array-1.2.1"
+      sources."@jridgewell/source-map-0.3.6"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
-      sources."@types/eslint-8.56.2"
+      sources."@jridgewell/trace-mapping-0.3.25"
+      sources."@types/eslint-8.56.5"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/json-schema-7.0.15"
-      sources."@types/node-20.11.19"
-      sources."@webassemblyjs/ast-1.11.6"
+      sources."@types/node-20.11.29"
+      sources."@webassemblyjs/ast-1.12.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.6"
       sources."@webassemblyjs/helper-api-error-1.11.6"
-      sources."@webassemblyjs/helper-buffer-1.11.6"
+      sources."@webassemblyjs/helper-buffer-1.12.1"
       sources."@webassemblyjs/helper-numbers-1.11.6"
       sources."@webassemblyjs/helper-wasm-bytecode-1.11.6"
-      sources."@webassemblyjs/helper-wasm-section-1.11.6"
+      sources."@webassemblyjs/helper-wasm-section-1.12.1"
       sources."@webassemblyjs/ieee754-1.11.6"
       sources."@webassemblyjs/leb128-1.11.6"
       sources."@webassemblyjs/utf8-1.11.6"
-      sources."@webassemblyjs/wasm-edit-1.11.6"
-      sources."@webassemblyjs/wasm-gen-1.11.6"
-      sources."@webassemblyjs/wasm-opt-1.11.6"
-      sources."@webassemblyjs/wasm-parser-1.11.6"
-      sources."@webassemblyjs/wast-printer-1.11.6"
+      sources."@webassemblyjs/wasm-edit-1.12.1"
+      sources."@webassemblyjs/wasm-gen-1.12.1"
+      sources."@webassemblyjs/wasm-opt-1.12.1"
+      sources."@webassemblyjs/wasm-parser-1.12.1"
+      sources."@webassemblyjs/wast-printer-1.12.1"
       sources."@webpack-cli/configtest-2.1.1"
       sources."@webpack-cli/info-2.0.2"
       sources."@webpack-cli/serve-2.0.5"
@@ -98896,14 +98462,14 @@ in
       sources."ajv-keywords-3.5.2"
       sources."browserslist-4.23.0"
       sources."buffer-from-1.1.2"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       sources."chrome-trace-event-1.0.3"
       sources."clone-deep-4.0.1"
       sources."colorette-2.0.20"
       sources."commander-10.0.1"
       sources."cross-spawn-7.0.3"
-      sources."electron-to-chromium-1.4.673"
-      sources."enhanced-resolve-5.15.0"
+      sources."electron-to-chromium-1.4.710"
+      sources."enhanced-resolve-5.16.0"
       sources."envinfo-7.11.1"
       sources."es-module-lexer-1.4.1"
       sources."escalade-3.1.2"
@@ -98924,7 +98490,7 @@ in
       sources."glob-to-regexp-0.4.1"
       sources."graceful-fs-4.2.11"
       sources."has-flag-4.0.0"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."import-local-3.1.0"
       sources."interpret-3.1.1"
       sources."is-core-module-2.13.1"
@@ -98967,7 +98533,7 @@ in
       sources."supports-color-8.1.1"
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."tapable-2.2.1"
-      (sources."terser-5.27.1" // {
+      (sources."terser-5.29.2" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
@@ -98976,8 +98542,8 @@ in
       sources."undici-types-5.26.5"
       sources."update-browserslist-db-1.0.13"
       sources."uri-js-4.4.1"
-      sources."watchpack-2.4.0"
-      sources."webpack-5.90.2"
+      sources."watchpack-2.4.1"
+      sources."webpack-5.90.3"
       sources."webpack-cli-5.1.4"
       sources."webpack-merge-5.10.0"
       sources."webpack-sources-3.2.3"
@@ -98997,25 +98563,25 @@ in
   webpack-dev-server = nodeEnv.buildNodePackage {
     name = "webpack-dev-server";
     packageName = "webpack-dev-server";
-    version = "5.0.2";
+    version = "5.0.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.0.2.tgz";
-      sha512 = "IVj3qsQhiLJR82zVg3QdPtngMD05CYP/Am+9NG5QSl+XwUR/UPtFwllRBKrMwM9ttzFsC6Zj3DMgniPyn/Z0hQ==";
+      url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.0.3.tgz";
+      sha512 = "4aj4I8FJLsFbd4Vt6YBXC8CWrOOwviEI9DdVTu9hrgIBGWs4oKOVfDnaRc+vgf1JUSir1psph1ChPFDkTGHR2Q==";
     };
     dependencies = [
       sources."@isaacs/cliui-8.0.2"
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
-      sources."@jridgewell/source-map-0.3.5"
+      sources."@jridgewell/set-array-1.2.1"
+      sources."@jridgewell/source-map-0.3.6"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@leichtgewicht/ip-codec-2.0.4"
       sources."@types/body-parser-1.19.5"
       sources."@types/bonjour-3.5.13"
       sources."@types/connect-3.4.38"
       sources."@types/connect-history-api-fallback-1.5.4"
-      sources."@types/eslint-8.56.2"
+      sources."@types/eslint-8.56.5"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/express-4.17.21"
@@ -99024,9 +98590,9 @@ in
       sources."@types/http-proxy-1.17.14"
       sources."@types/json-schema-7.0.15"
       sources."@types/mime-1.3.5"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/node-forge-1.3.11"
-      sources."@types/qs-6.9.11"
+      sources."@types/qs-6.9.13"
       sources."@types/range-parser-1.2.7"
       sources."@types/retry-0.12.2"
       sources."@types/send-0.17.4"
@@ -99034,21 +98600,21 @@ in
       sources."@types/serve-static-1.15.5"
       sources."@types/sockjs-0.3.36"
       sources."@types/ws-8.5.10"
-      sources."@webassemblyjs/ast-1.11.6"
+      sources."@webassemblyjs/ast-1.12.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.6"
       sources."@webassemblyjs/helper-api-error-1.11.6"
-      sources."@webassemblyjs/helper-buffer-1.11.6"
+      sources."@webassemblyjs/helper-buffer-1.12.1"
       sources."@webassemblyjs/helper-numbers-1.11.6"
       sources."@webassemblyjs/helper-wasm-bytecode-1.11.6"
-      sources."@webassemblyjs/helper-wasm-section-1.11.6"
+      sources."@webassemblyjs/helper-wasm-section-1.12.1"
       sources."@webassemblyjs/ieee754-1.11.6"
       sources."@webassemblyjs/leb128-1.11.6"
       sources."@webassemblyjs/utf8-1.11.6"
-      sources."@webassemblyjs/wasm-edit-1.11.6"
-      sources."@webassemblyjs/wasm-gen-1.11.6"
-      sources."@webassemblyjs/wasm-opt-1.11.6"
-      sources."@webassemblyjs/wasm-parser-1.11.6"
-      sources."@webassemblyjs/wast-printer-1.11.6"
+      sources."@webassemblyjs/wasm-edit-1.12.1"
+      sources."@webassemblyjs/wasm-gen-1.12.1"
+      sources."@webassemblyjs/wasm-opt-1.12.1"
+      sources."@webassemblyjs/wasm-parser-1.12.1"
+      sources."@webassemblyjs/wast-printer-1.12.1"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
       sources."accepts-1.3.8"
@@ -99061,12 +98627,11 @@ in
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-6.2.1"
       sources."anymatch-3.1.3"
-      sources."arg-5.0.2"
       sources."array-flatten-1.1.1"
       sources."balanced-match-1.0.2"
       sources."batch-0.6.1"
-      sources."binary-extensions-2.2.0"
-      (sources."body-parser-1.20.1" // {
+      sources."binary-extensions-2.3.0"
+      (sources."body-parser-1.20.2" // {
         dependencies = [
           sources."bytes-3.1.2"
         ];
@@ -99080,7 +98645,7 @@ in
       sources."bundle-name-4.1.0"
       sources."bytes-3.0.0"
       sources."call-bind-1.0.7"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       sources."chokidar-3.6.0"
       sources."chrome-trace-event-1.0.3"
       sources."color-convert-2.0.1"
@@ -99112,10 +98677,10 @@ in
       sources."dns-packet-5.6.1"
       sources."eastasianwidth-0.2.0"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.673"
+      sources."electron-to-chromium-1.4.710"
       sources."emoji-regex-9.2.2"
       sources."encodeurl-1.0.2"
-      sources."enhanced-resolve-5.15.0"
+      sources."enhanced-resolve-5.16.0"
       sources."es-define-property-1.0.0"
       sources."es-errors-1.3.0"
       sources."es-module-lexer-1.4.1"
@@ -99132,18 +98697,17 @@ in
       sources."eventemitter3-4.0.7"
       sources."events-3.3.0"
       sources."execa-5.1.1"
-      (sources."express-4.18.2" // {
+      (sources."express-4.18.3" // {
         dependencies = [
           sources."safe-buffer-5.2.1"
         ];
       })
       sources."fast-deep-equal-3.1.3"
-      sources."fast-diff-1.3.0"
       sources."fast-json-stable-stringify-2.1.0"
       sources."faye-websocket-0.11.4"
       sources."fill-range-7.0.1"
       sources."finalhandler-1.2.0"
-      sources."follow-redirects-1.15.5"
+      sources."follow-redirects-1.15.6"
       (sources."foreground-child-3.1.1" // {
         dependencies = [
           sources."signal-exit-4.1.0"
@@ -99162,22 +98726,21 @@ in
       sources."handle-thing-2.0.1"
       sources."has-flag-4.0.0"
       sources."has-property-descriptors-1.0.2"
-      sources."has-proto-1.0.1"
+      sources."has-proto-1.0.3"
       sources."has-symbols-1.0.3"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       (sources."hpack.js-2.1.6" // {
         dependencies = [
           sources."readable-stream-2.3.8"
         ];
       })
-      sources."html-entities-2.4.0"
+      sources."html-entities-2.5.2"
       sources."http-deceiver-1.2.7"
       sources."http-errors-2.0.0"
       sources."http-parser-js-0.5.8"
       sources."http-proxy-1.18.1"
       sources."http-proxy-middleware-2.0.6"
       sources."human-signals-2.1.0"
-      sources."hyperdyperid-1.2.0"
       sources."iconv-lite-0.4.24"
       sources."inherits-2.0.4"
       sources."ipaddr.js-2.1.0"
@@ -99196,16 +98759,13 @@ in
       sources."isexe-2.0.0"
       sources."jackspeak-2.3.6"
       sources."jest-worker-27.5.1"
-      sources."json-joy-11.28.0"
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-traverse-1.0.0"
       sources."launch-editor-2.6.1"
       sources."loader-runner-4.3.0"
-      sources."lodash.clonedeep-4.5.0"
-      sources."lodash.isequal-4.5.0"
       sources."lru-cache-10.2.0"
       sources."media-typer-0.3.0"
-      sources."memfs-4.7.1"
+      sources."memfs-4.7.7"
       sources."merge-descriptors-1.0.1"
       sources."merge-stream-2.0.0"
       sources."methods-1.1.2"
@@ -99231,7 +98791,7 @@ in
       sources."on-finished-2.4.1"
       sources."on-headers-1.0.2"
       sources."onetime-5.1.2"
-      sources."open-10.0.3"
+      sources."open-10.1.0"
       sources."p-retry-6.2.0"
       sources."parseurl-1.3.3"
       sources."path-key-3.1.1"
@@ -99247,10 +98807,9 @@ in
       })
       sources."punycode-2.3.1"
       sources."qs-6.11.0"
-      sources."quill-delta-5.1.0"
       sources."randombytes-2.1.0"
       sources."range-parser-1.2.1"
-      (sources."raw-body-2.5.1" // {
+      (sources."raw-body-2.5.2" // {
         dependencies = [
           sources."bytes-3.1.2"
         ];
@@ -99262,7 +98821,6 @@ in
       sources."retry-0.13.1"
       sources."rimraf-5.0.5"
       sources."run-applescript-7.0.0"
-      sources."rxjs-7.8.1"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."schema-utils-4.2.0"
@@ -99284,12 +98842,12 @@ in
         ];
       })
       sources."serve-static-1.15.0"
-      sources."set-function-length-1.2.1"
+      sources."set-function-length-1.2.2"
       sources."setprototypeof-1.2.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."shell-quote-1.8.1"
-      sources."side-channel-1.0.5"
+      sources."side-channel-1.0.6"
       sources."signal-exit-3.0.7"
       sources."sockjs-0.3.24"
       sources."source-map-0.6.1"
@@ -99324,7 +98882,7 @@ in
       sources."strip-final-newline-2.0.0"
       sources."supports-color-8.1.1"
       sources."tapable-2.2.1"
-      sources."terser-5.27.1"
+      sources."terser-5.29.2"
       (sources."terser-webpack-plugin-5.3.10" // {
         dependencies = [
           sources."ajv-6.12.6"
@@ -99333,7 +98891,6 @@ in
           sources."schema-utils-3.3.0"
         ];
       })
-      sources."thingies-1.16.0"
       sources."thunky-1.1.0"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.1"
@@ -99348,9 +98905,9 @@ in
       sources."utils-merge-1.0.1"
       sources."uuid-8.3.2"
       sources."vary-1.1.2"
-      sources."watchpack-2.4.0"
+      sources."watchpack-2.4.1"
       sources."wbuf-1.7.3"
-      (sources."webpack-5.90.2" // {
+      (sources."webpack-5.90.3" // {
         dependencies = [
           sources."ajv-6.12.6"
           sources."ajv-keywords-3.5.2"
@@ -99393,36 +98950,36 @@ in
       sha512 = "SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==";
     };
     dependencies = [
-      sources."@jridgewell/gen-mapping-0.3.3"
+      sources."@jridgewell/gen-mapping-0.3.5"
       sources."@jridgewell/resolve-uri-3.1.2"
-      sources."@jridgewell/set-array-1.1.2"
-      sources."@jridgewell/source-map-0.3.5"
+      sources."@jridgewell/set-array-1.2.1"
+      sources."@jridgewell/source-map-0.3.6"
       sources."@jridgewell/sourcemap-codec-1.4.15"
-      sources."@jridgewell/trace-mapping-0.3.22"
+      sources."@jridgewell/trace-mapping-0.3.25"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@sindresorhus/merge-streams-2.2.1"
-      sources."@types/eslint-8.56.2"
+      sources."@sindresorhus/merge-streams-2.3.0"
+      sources."@types/eslint-8.56.5"
       sources."@types/eslint-scope-3.7.7"
       sources."@types/estree-1.0.5"
       sources."@types/json-schema-7.0.15"
-      sources."@types/node-20.11.19"
-      sources."@webassemblyjs/ast-1.11.6"
+      sources."@types/node-20.11.29"
+      sources."@webassemblyjs/ast-1.12.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.6"
       sources."@webassemblyjs/helper-api-error-1.11.6"
-      sources."@webassemblyjs/helper-buffer-1.11.6"
+      sources."@webassemblyjs/helper-buffer-1.12.1"
       sources."@webassemblyjs/helper-numbers-1.11.6"
       sources."@webassemblyjs/helper-wasm-bytecode-1.11.6"
-      sources."@webassemblyjs/helper-wasm-section-1.11.6"
+      sources."@webassemblyjs/helper-wasm-section-1.12.1"
       sources."@webassemblyjs/ieee754-1.11.6"
       sources."@webassemblyjs/leb128-1.11.6"
       sources."@webassemblyjs/utf8-1.11.6"
-      sources."@webassemblyjs/wasm-edit-1.11.6"
-      sources."@webassemblyjs/wasm-gen-1.11.6"
-      sources."@webassemblyjs/wasm-opt-1.11.6"
-      sources."@webassemblyjs/wasm-parser-1.11.6"
-      sources."@webassemblyjs/wast-printer-1.11.6"
+      sources."@webassemblyjs/wasm-edit-1.12.1"
+      sources."@webassemblyjs/wasm-gen-1.12.1"
+      sources."@webassemblyjs/wasm-opt-1.12.1"
+      sources."@webassemblyjs/wasm-parser-1.12.1"
+      sources."@webassemblyjs/wast-printer-1.12.1"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
       sources."acorn-8.11.3"
@@ -99433,11 +98990,11 @@ in
       sources."braces-3.0.2"
       sources."browserslist-4.23.0"
       sources."buffer-from-1.1.2"
-      sources."caniuse-lite-1.0.30001587"
+      sources."caniuse-lite-1.0.30001599"
       sources."chrome-trace-event-1.0.3"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.4.673"
-      sources."enhanced-resolve-5.15.0"
+      sources."electron-to-chromium-1.4.710"
+      sources."enhanced-resolve-5.16.0"
       sources."es-module-lexer-1.4.1"
       sources."escalade-3.1.2"
       sources."eslint-scope-5.1.1"
@@ -99495,7 +99052,7 @@ in
       sources."source-map-support-0.5.21"
       sources."supports-color-8.1.1"
       sources."tapable-2.2.1"
-      sources."terser-5.27.1"
+      sources."terser-5.29.2"
       (sources."terser-webpack-plugin-5.3.10" // {
         dependencies = [
           sources."ajv-6.12.6"
@@ -99509,8 +99066,8 @@ in
       sources."unicorn-magic-0.1.0"
       sources."update-browserslist-db-1.0.13"
       sources."uri-js-4.4.1"
-      sources."watchpack-2.4.0"
-      (sources."webpack-5.90.2" // {
+      sources."watchpack-2.4.1"
+      (sources."webpack-5.90.3" // {
         dependencies = [
           sources."ajv-6.12.6"
           sources."ajv-keywords-3.5.2"
@@ -99551,7 +99108,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.2"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@webtorrent/http-node-1.3.0"
       sources."addr-to-ip-port-1.5.4"
       sources."airplay-js-0.3.0"
@@ -99703,7 +99260,7 @@ in
       sources."immediate-chunk-store-2.2.0"
       sources."inherits-2.0.4"
       sources."inquirer-8.2.6"
-      sources."ip-1.1.8"
+      sources."ip-1.1.9"
       sources."ip-address-9.0.5"
       sources."ip-set-2.1.0"
       sources."ipaddr.js-2.1.0"
@@ -99853,7 +99410,7 @@ in
         ];
       })
       sources."smart-buffer-4.2.0"
-      sources."socks-2.8.0"
+      sources."socks-2.8.1"
       sources."speed-limiter-1.0.2"
       sources."speedometer-1.1.0"
       sources."split-1.0.1"
@@ -99861,7 +99418,7 @@ in
       sources."stream-to-blob-2.0.1"
       sources."stream-to-blob-url-3.0.2"
       sources."stream-with-known-length-to-buffer-1.0.4"
-      sources."streamx-2.16.0"
+      sources."streamx-2.16.1"
       sources."string-width-4.2.3"
       sources."string2compact-1.3.2"
       sources."string_decoder-1.1.1"
@@ -99941,14 +99498,14 @@ in
   wrangler = nodeEnv.buildNodePackage {
     name = "wrangler";
     packageName = "wrangler";
-    version = "3.28.3";
+    version = "3.34.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/wrangler/-/wrangler-3.28.3.tgz";
-      sha512 = "pLuvWA5W8FhjI/a7Mr5F491KOqNMYzyWVN7dmwr+52sPv2BFrfN1v6btmhHYotSblCH8yfs5DmuxwdKuVPMw9w==";
+      url = "https://registry.npmjs.org/wrangler/-/wrangler-3.34.2.tgz";
+      sha512 = "j580WXlOe0GtYdcREym7FLcaaZq9+RZEBuzOtKXx74KKUlEC8cglgf5WWa2C2OpEtJCcrAieEHsNXe7mhy9knA==";
     };
     dependencies = [
       sources."@cloudflare/kv-asset-handler-0.3.1"
-      sources."@cloudflare/workers-types-4.20240208.0"
+      sources."@cloudflare/workers-types-4.20240314.0"
       sources."@cspotcode/source-map-support-0.8.1"
       sources."@esbuild-plugins/node-globals-polyfill-0.2.3"
       sources."@esbuild-plugins/node-modules-polyfill-0.2.2"
@@ -99974,17 +99531,17 @@ in
       sources."@esbuild/win32-arm64-0.17.19"
       sources."@esbuild/win32-ia32-0.17.19"
       sources."@esbuild/win32-x64-0.17.19"
-      sources."@fastify/busboy-2.1.0"
+      sources."@fastify/busboy-2.1.1"
       sources."@jridgewell/resolve-uri-3.1.2"
       sources."@jridgewell/sourcemap-codec-1.4.15"
       sources."@jridgewell/trace-mapping-0.3.9"
-      sources."@types/node-20.11.19"
+      sources."@types/node-20.11.29"
       sources."@types/node-forge-1.3.11"
       sources."acorn-8.11.3"
       sources."acorn-walk-8.3.2"
       sources."anymatch-3.1.3"
       sources."as-table-1.0.55"
-      sources."binary-extensions-2.2.0"
+      sources."binary-extensions-2.3.0"
       sources."blake3-wasm-2.1.5"
       sources."braces-3.0.2"
       sources."bufferutil-4.0.8"
@@ -100003,7 +99560,7 @@ in
       sources."get-source-2.0.12"
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.4.1"
-      sources."hasown-2.0.1"
+      sources."hasown-2.0.2"
       sources."is-binary-path-2.1.0"
       sources."is-core-module-2.13.1"
       sources."is-extglob-2.1.1"
@@ -100011,7 +99568,7 @@ in
       sources."is-number-7.0.0"
       sources."magic-string-0.25.9"
       sources."mime-3.0.0"
-      sources."miniflare-3.20240129.3"
+      sources."miniflare-3.20240304.2"
       sources."ms-2.1.2"
       sources."mustache-4.2.0"
       sources."nanoid-3.3.7"
@@ -100039,7 +99596,7 @@ in
       sources."undici-5.28.3"
       sources."undici-types-5.26.5"
       sources."utf-8-validate-6.0.3"
-      sources."workerd-1.20240129.0"
+      sources."workerd-1.20240304.0"
       sources."ws-8.16.0"
       sources."xxhash-wasm-1.0.2"
       sources."youch-3.3.3"
@@ -100155,10 +99712,10 @@ in
   yarn = nodeEnv.buildNodePackage {
     name = "yarn";
     packageName = "yarn";
-    version = "1.22.21";
+    version = "1.22.22";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yarn/-/yarn-1.22.21.tgz";
-      sha512 = "ynXaJsADJ9JiZ84zU25XkPGOvVMmZ5b7tmTSpKURYwgELdjucAOydqIOrOfTxVYcNXe91xvLZwcRh68SR3liCg==";
+      url = "https://registry.npmjs.org/yarn/-/yarn-1.22.22.tgz";
+      sha512 = "prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
diff --git a/nixpkgs/pkgs/development/node-packages/overrides.nix b/nixpkgs/pkgs/development/node-packages/overrides.nix
index 514f8803fb14..a36ce3f06144 100644
--- a/nixpkgs/pkgs/development/node-packages/overrides.nix
+++ b/nixpkgs/pkgs/development/node-packages/overrides.nix
@@ -112,7 +112,7 @@ final: prev: {
     meta = oldAttrs.meta // { license = lib.licenses.unfree; };
   });
 
-  joplin = prev.joplin.override {
+  joplin = prev.joplin.override (oldAttrs:{
     nativeBuildInputs = [
       pkgs.pkg-config
     ] ++ lib.optionals stdenv.isDarwin [
@@ -134,7 +134,21 @@ final: prev: {
       darwin.apple_sdk.frameworks.AppKit
       darwin.apple_sdk.frameworks.Security
     ];
-  };
+
+    # add newer node-addon-api to build sharp
+    # https://github.com/lovell/sharp/issues/3920
+    dependencies = [
+      {
+        name = "node-addon-api";
+        packageName = "node-addon-api";
+        version = "7.1.0";
+        src = fetchurl {
+          url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz";
+          sha512 = "mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==";
+        };
+      }
+    ] ++ oldAttrs.dependencies;
+  });
 
   jsonplaceholder = prev.jsonplaceholder.override {
     buildInputs = [ nodejs ];
@@ -424,44 +438,45 @@ final: prev: {
 
   wrangler = prev.wrangler.override (oldAttrs:
     let
+      workerdVersion = (lib.findFirst (dep: dep.name == "workerd") null oldAttrs.dependencies).version;
       linuxWorkerd = {
         name = "_at_cloudflare_slash_workerd-linux-64";
         packageName = "@cloudflare/workerd-linux-64";
         # Should be same version as workerd
-        version = "1.20240129.0";
+        version = workerdVersion;
         src = fetchurl {
-          url = "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20240129.0.tgz";
-          sha512 = "sFV1uobHgDI+6CKBS/ZshQvOvajgwl6BtiYaH4PSFSpvXTmRx+A9bcug+6BnD+V4WgwxTiEO2iR97E1XuwDAVw==";
+          url = "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-${workerdVersion}.tgz";
+          sha512 = "G1BEzbw9TFIeMvc425F145IetC7fuH4KOkGhseLq9y/mt5PfDWkghwmXSK+q0BiMwm0XAobtzVlHcEr2u4WlRQ==";
         };
       };
       linuxWorkerdArm = {
         name = "_at_cloudflare_slash_workerd-linux-arm64";
         packageName = "@cloudflare/workerd-linux-arm64";
         # Should be same version as workerd
-        version = "1.20240129.0";
+        version = workerdVersion;
         src = fetchurl {
-          url = "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20240129.0.tgz";
-          sha512 = "O7q7htHaFRp8PgTqNJx1/fYc3+LnvAo6kWWB9a14C5OWak6AAZk42PNpKPx+DXTmGvI+8S1+futBGUeJ8NPDXg==";
+          url = "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-${workerdVersion}.tgz";
+          sha512 = "LLk/d/y77TRu6QOG3CJUI2cD3Ff2lSg0ts6G83bsm9ZK+WKObWFFSPBy9l81m3EnlKFh7RZCzxN4J10kuDaO8w==";
         };
       };
       darwinWorkerd = {
         name = "_at_cloudflare_slash_workerd-darwin-64";
         packageName = "@cloudflare/workerd-darwin-64";
         # Should be same version as workerd
-        version = "1.20240129.0";
+        version = workerdVersion;
         src = fetchurl {
-          url = "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20240129.0.tgz";
-          sha512 = "DfVVB5IsQLVcWPJwV019vY3nEtU88c2Qu2ST5SQxqcGivZ52imagLRK0RHCIP8PK4piSiq90qUC6ybppUsw8eg==";
+          url = "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-${workerdVersion}.tgz";
+          sha512 = "rfHlvsWzkqEEQNvm14AOE/BYHYzB9wxQHCaZZEgwOuTl5KpDcs9La0N0LaDTR78ESumIWOcifVmko2VTrZb7TQ==";
         };
       };
       darwinWorkerdArm = {
         name = "_at_cloudflare_slash_workerd-darwin-arm64";
         packageName = "@cloudflare/workerd-darwin-arm64";
         # Should be same version as workerd
-        version = "1.20240129.0";
+        version = workerdVersion;
         src = fetchurl {
-          url = "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20240129.0.tgz";
-          sha512 = "t0q8ABkmumG1zRM/MZ/vIv/Ysx0vTAXnQAPy/JW5aeQi/tqrypXkO9/NhPc0jbF/g/hIPrWEqpDgEp3CB7Da7Q==";
+          url = "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-${workerdVersion}.tgz";
+          sha512 = "IXGOxHsPdRYfAzcY6IroI1PDvx3hhXf18qFCloHp8Iw5bzLgq/PTjcp10Z/2xedZ2hVlfpHy1eEptsTmi9YeNw==";
         };
       };
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/camlpdf/default.nix b/nixpkgs/pkgs/development/ocaml-modules/camlpdf/default.nix
index 6627ac75a86e..115bc5b2c55c 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/camlpdf/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/camlpdf/default.nix
@@ -5,14 +5,14 @@ then throw "camlpdf is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
-  version = "2.6";
+  version = "2.7";
   pname = "ocaml${ocaml.version}-camlpdf";
 
   src = fetchFromGitHub {
     owner = "johnwhitington";
     repo = "camlpdf";
     rev = "v${version}";
-    hash = "sha256-CJWVvZSbvSzG3PIr7w0vmbmY6tH59AgBAWRfDpQ9MCk=";
+    hash = "sha256-SVmLWffB7GF+Bu0tj5fIvQVMRh6uV3u2G3rC4cVH2Gw=";
   };
 
   nativeBuildInputs = [ which ocaml findlib ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cpdf/default.nix b/nixpkgs/pkgs/development/ocaml-modules/cpdf/default.nix
index 3660182df370..30167f1c2ae2 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cpdf/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cpdf/default.nix
@@ -6,13 +6,13 @@ else
 
 stdenv.mkDerivation rec {
   pname = "ocaml${ocaml.version}-cpdf";
-  version = "2.6";
+  version = "2.7";
 
   src = fetchFromGitHub {
     owner = "johnwhitington";
     repo = "cpdf-source";
     rev = "v${version}";
-    hash = "sha256-5gEv/lmca3FR16m4uxbCJ3y/XtTSBvoIojeKszc24ss=";
+    hash = "sha256-Tm+xvL2HNdQsD04I9eR9tLL0bs5Ls2q+IndLV/p9sHs=";
   };
 
   nativeBuildInputs = [ ocaml findlib ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cry/default.nix b/nixpkgs/pkgs/development/ocaml-modules/cry/default.nix
index 8e475a7987cc..e4339ef7563b 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cry/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cry/default.nix
@@ -2,17 +2,17 @@
 
 buildDunePackage rec {
   pname = "cry";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "savonet";
     repo = "ocaml-cry";
     rev = "v${version}";
-    sha256 = "sha256-wn9hLqbydzFTdYsJ1e76dmDLtwcZ7CGjbzFe5o9veYQ=";
+    hash = "sha256-wtilYOUOHElW8ZVxolMNomvT//ho2tACmoubEvU2bpQ=";
   };
 
   postPatch = ''
-    substituteInPlace src/dune --replace bytes ""
+    substituteInPlace src/dune --replace-warn bytes ""
   '';
 
   minimalOCamlVersion = "4.12";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/csv/csvtool.nix b/nixpkgs/pkgs/development/ocaml-modules/csv/csvtool.nix
index 05d9a440f9c1..f5a6f458bfa2 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/csv/csvtool.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/csv/csvtool.nix
@@ -14,5 +14,6 @@ buildDunePackage {
 
   meta = csv.meta // {
     description = "Command line tool for handling CSV files";
+    mainProgram = "csvtool";
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/eio/default.nix b/nixpkgs/pkgs/development/ocaml-modules/eio/default.nix
index dcffdd7dbe48..0eafead13cf1 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/eio/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/eio/default.nix
@@ -1,6 +1,6 @@
 { lib
 , ocaml
-, version ? if lib.versionAtLeast ocaml.version "5.1" then "0.15" else "0.12"
+, version ? if lib.versionAtLeast ocaml.version "5.1" then "1.0" else "0.12"
 , buildDunePackage
 , bigstringaf
 , cstruct
@@ -24,9 +24,9 @@ let
       minimalOCamlVersion = "5.0";
       hash = "sha256-2EhHzoX/t4ZBSWrSS+PGq1zCxohc7a1q4lfsrFnZJqA=";
     };
-    "0.15" = {
+    "1.0" = {
       minimalOCamlVersion = "5.1";
-      hash = "sha256-gH7O8zfdqEmwXT29F6ko5vXGNudusV4iE2Z8kRJ3GKc=";
+      hash = "sha256-2iYNnaOLPd6fMWZSogsTomHPkLhaJJisZpt9Vk5hlC0=";
     };
   }."${version}";
 in
diff --git a/nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix b/nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix
index d1c0462c4dca..73f7c0aaccd2 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix
@@ -1,6 +1,7 @@
 { buildDunePackage
 , lib
 , fetchFromGitHub
+, fetchpatch
 , which
 , ocsigen_server
 , lwt_react
@@ -17,13 +18,19 @@
 
 buildDunePackage rec {
   pname = "eliom";
-  version = "10.1.2";
+  version = "10.3.1";
 
   src = fetchFromGitHub {
     owner = "ocsigen";
     repo = "eliom";
     rev = version;
-    hash = "sha256-Cxwp534ADUO7AHnxZnGsrqxGDkhcJ314M5wytO4e8/0=";
+    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=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/ocaml-modules/jingoo/default.nix b/nixpkgs/pkgs/development/ocaml-modules/jingoo/default.nix
index 7ed0e995df7a..595a5cbb18a7 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/jingoo/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/jingoo/default.nix
@@ -24,6 +24,7 @@ buildDunePackage rec {
   meta = with lib; {
     homepage = "https://github.com/tategakibunko/jingoo";
     description = "OCaml template engine almost compatible with jinja2";
+    mainProgram = "jingoo";
     license = licenses.mit;
     maintainers = [ maintainers.ericbmerritt ];
   };
diff --git a/nixpkgs/pkgs/development/ocaml-modules/lem/default.nix b/nixpkgs/pkgs/development/ocaml-modules/lem/default.nix
index 39952366dbac..b9e02eb97c09 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/lem/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/lem/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/rems-project/lem";
     description = "A tool for lightweight executable mathematics";
+    mainProgram = "lem";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = with licenses; [ bsd3 gpl2 ];
     platforms = ocaml.meta.platforms;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/linol/default.nix b/nixpkgs/pkgs/development/ocaml-modules/linol/default.nix
index eb6f9c11c611..28f2bc105d15 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/linol/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/linol/default.nix
@@ -1,25 +1,25 @@
-{ lib, fetchFromGitHub, buildDunePackage, yojson, logs, lsp, ppx_yojson_conv_lib }:
+{ lib, fetchFromGitHub, fetchpatch, buildDunePackage, yojson, logs, lsp, ppx_yojson_conv_lib, trace }:
 
 buildDunePackage
 rec {
   pname = "linol";
-  version = "2023-08-04";
+  version = "0.5";
 
   minimalOCamlVersion = "4.14";
-  duneVersion = "3";
 
   src = fetchFromGitHub {
     owner = "c-cube";
     repo = "linol";
-    # Brings support for newer LSP
-    rev = "09311ae258c55c53c62cb5eda3641682e61fe191";
-    sha256 = "sha256-51k+Eo3buzby9cWtbl+/0wbAxa2QSS+Oq0aEao0VBCM=";
+    rev = "v${version}";
+    hash = "sha256-ULPOB/hb+2VXDB/eK66WDDh/wj0bOwUt0tZsiIXqndo=";
   };
 
-  lsp_v = lsp.override {
-    version = "1.14.2";
+  patches = fetchpatch {
+    url = "https://github.com/c-cube/linol/commit/d8ebcf9a60f1e7251d14cdcd0b2ebd5b7f8eec6d.patch";
+    hash = "sha256-JHR0P0X3ep5HvDWW43dMb452/WsFKS4e+5Qhk4MzaxQ=";
   };
-  propagatedBuildInputs = [ yojson logs lsp_v ppx_yojson_conv_lib ];
+
+  propagatedBuildInputs = [ yojson logs lsp ppx_yojson_conv_lib trace ];
 
   meta = with lib; {
     description = "LSP server library";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/linol/lwt.nix b/nixpkgs/pkgs/development/ocaml-modules/linol/lwt.nix
index b40c3771b6c8..67b0b7b07fbc 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/linol/lwt.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/linol/lwt.nix
@@ -4,8 +4,6 @@ buildDunePackage {
   pname = "linol-lwt";
   inherit (linol) version src;
 
-  duneVersion = "3";
-
   propagatedBuildInputs = [
     linol
     jsonrpc
diff --git a/nixpkgs/pkgs/development/ocaml-modules/lwd/tyxml-lwd.nix b/nixpkgs/pkgs/development/ocaml-modules/lwd/tyxml-lwd.nix
index 0832847be3d6..0aad68fa5a0b 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/lwd/tyxml-lwd.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/lwd/tyxml-lwd.nix
@@ -1,12 +1,17 @@
-{ lib, fetchurl, buildDunePackage, js_of_ocaml, js_of_ocaml-ppx, lwd, tyxml }:
+{ lib, fetchurl, fetchpatch, buildDunePackage, js_of_ocaml, js_of_ocaml-ppx, lwd, tyxml }:
 
 buildDunePackage {
   pname = "tyxml-lwd";
 
   inherit (lwd) version src;
 
+  # Compatibility with latest Tyxml (4.6.x)
+  patches = fetchpatch {
+    url = "https://github.com/let-def/lwd/commit/7f3364ec593b5ccf0d0294b97bcd1e28e4164691.patch";
+    hash = "sha256-W1HjExZxDKRwsrB9ZTkvHTMKO0K5iZl+FrNqPs6BPGU=";
+  };
+
   minimalOCamlVersion = "4.08";
-  duneVersion = "3";
 
   buildInputs = [ js_of_ocaml-ppx ];
   propagatedBuildInputs = [ js_of_ocaml lwd tyxml ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mdx/default.nix b/nixpkgs/pkgs/development/ocaml-modules/mdx/default.nix
index 1cd6a7d55e55..d11c80644821 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mdx/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mdx/default.nix
@@ -6,13 +6,13 @@
 
 buildDunePackage rec {
   pname = "mdx";
-  version = "2.3.1";
+  version = "2.4.1";
 
   minimalOCamlVersion = "4.08";
 
   src = fetchurl {
     url = "https://github.com/realworldocaml/mdx/releases/download/${version}/mdx-${version}.tbz";
-    hash = "sha256-mkCkX6p41H4pOSvU/sJg0UAWysGweOSrAW6jrcCXQ/M=";
+    hash = "sha256-GkDMkcxVPe0KIMmNQ0NUlTvbdZ7Mka02u7mn3QQSrxM=";
   };
 
   nativeBuildInputs = [ cppo ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/menhir/default.nix b/nixpkgs/pkgs/development/ocaml-modules/menhir/default.nix
index e4eba6e4f5c5..a96f3ab9cfd9 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/menhir/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/menhir/default.nix
@@ -13,5 +13,6 @@ buildDunePackage rec {
 
   meta = menhirSdk.meta // {
     description = "A LR(1) parser generator for OCaml";
+    mainProgram = "menhir";
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-syntax-shims/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-syntax-shims/default.nix
index 374efd8b2b97..49f8cb63b98b 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocaml-syntax-shims/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-syntax-shims/default.nix
@@ -18,6 +18,7 @@ buildDunePackage rec {
   meta = with lib; {
     homepage = "https://github.com/ocaml-ppx/ocaml-syntax-shims";
     description = "Backport new syntax to older OCaml versions";
+    mainProgram = "ocaml-syntax-shims";
     license = licenses.mit;
     maintainers = with maintainers; [ sternenseemann ];
   };
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocsigen-start/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocsigen-start/default.nix
index 7923a24f0401..e9af3a27a756 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocsigen-start/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocsigen-start/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, ocaml, findlib, ocsigen-toolkit, pgocaml_ppx, safepass, yojson
+{ stdenv, lib, fetchFromGitHub, fetchpatch, ocaml, findlib, ocsigen-toolkit, pgocaml_ppx, safepass, yojson
 , cohttp-lwt-unix, eliom
 , resource-pooling
 , ocsigen-ppx-rpc
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "ocaml${ocaml.version}-ocsigen-start";
-  version = "6.1.2";
+  version = "6.2.0";
 
   nativeBuildInputs = [ ocaml findlib eliom ];
   buildInputs = [ ocsigen-ppx-rpc ];
@@ -14,13 +14,19 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
 
-  patches = [ ./templates-dir.patch ];
+  patches = [ ./templates-dir.patch
+    # Compatibility with tyxml 4.6.x
+    (fetchpatch {
+       url = "https://github.com/ocsigen/ocsigen-start/commit/0b70506f94fcb2e06cb65ce0d6a28b9b84c695f3.patch";
+       hash = "sha256-p/VvIu9reI8lc9lxWiTrjZvn46vuF00QInYuWPtRVyk=";
+    })
+  ];
 
   src = fetchFromGitHub {
     owner = "ocsigen";
     repo = "ocsigen-start";
     rev = version;
-    hash = "sha256-GhuH3rNdauJztEhygct6jCf+EmAtbSeyYP45stMzGFU=";
+    hash = "sha256-i2nj/m1Ihb/bprtHvZh47/oK0v+aFNVH+A2CB4rrrPk=";
   };
 
   preInstall = ''
diff --git a/nixpkgs/pkgs/development/ocaml-modules/odoc/default.nix b/nixpkgs/pkgs/development/ocaml-modules/odoc/default.nix
index 43ec9da28834..18be9801a9c0 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/odoc/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/odoc/default.nix
@@ -30,6 +30,7 @@ buildDunePackage rec {
 
   meta = {
     description = "A documentation generator for OCaml";
+    mainProgram = "odoc";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
     homepage = "https://github.com/ocaml/odoc";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix b/nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix
index 982e1ed92472..640ecf45b7cf 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix
@@ -21,6 +21,7 @@ buildDunePackage rec {
 
   meta = {
     description = "Inline (Unit) Tests for OCaml";
+    mainProgram = "qtest";
     inherit (src.meta) homepage;
     maintainers = with lib.maintainers; [ vbgl ];
     license = lib.licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/tyxml/default.nix b/nixpkgs/pkgs/development/ocaml-modules/tyxml/default.nix
index c49327d7d338..4cc5aa4cc42d 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/tyxml/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/tyxml/default.nix
@@ -2,13 +2,11 @@
 
 buildDunePackage rec {
   pname = "tyxml";
-  version = "4.5.0";
-
-  useDune2 = true;
+  version = "4.6.0";
 
   src = fetchurl {
     url = "https://github.com/ocsigen/tyxml/releases/download/${version}/tyxml-${version}.tbz";
-    sha256 = "0s30f72m457c3gbdmdwbx7ls9zg806nvm83aiz9qkpglbppwr6n6";
+    hash = "sha256-v+tnPGtOEgpOykxIRIrdR9w/jQLCtA9j/9zMTpHJAt0=";
   };
 
   propagatedBuildInputs = [ uutf re ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/wasm/default.nix b/nixpkgs/pkgs/development/ocaml-modules/wasm/default.nix
index 6731eb5f1eaa..2dc6122fa620 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/wasm/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/wasm/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "An executable and OCaml library to run, read and write Web Assembly (wasm) files and manipulate their AST";
+    mainProgram = "wasm";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.vbgl ];
     homepage = "https://github.com/WebAssembly/spec/tree/master/interpreter";
diff --git a/nixpkgs/pkgs/development/octave-modules/signal/default.nix b/nixpkgs/pkgs/development/octave-modules/signal/default.nix
index 2579efc51889..0c4c2d9c6e23 100644
--- a/nixpkgs/pkgs/development/octave-modules/signal/default.nix
+++ b/nixpkgs/pkgs/development/octave-modules/signal/default.nix
@@ -6,11 +6,11 @@
 
 buildOctavePackage rec {
   pname = "signal";
-  version = "1.4.3";
+  version = "1.4.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/octave/${pname}-${version}.tar.gz";
-    sha256 = "sha256-VFuXVA6+ujtCDwiQb905d/wpOzvI/Db2uosJTOqI8zk=";
+    sha256 = "sha256-VVreL/gPcRiQk5XDNAXwoXpPvNIrxtL7nD9/Rf72SOc=";
   };
 
   requiredOctavePackages = [
diff --git a/nixpkgs/pkgs/development/perl-modules/ImageExifTool/default.nix b/nixpkgs/pkgs/development/perl-modules/ImageExifTool/default.nix
new file mode 100644
index 000000000000..b9426f57fe11
--- /dev/null
+++ b/nixpkgs/pkgs/development/perl-modules/ImageExifTool/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, buildPerlPackage
+, exiftool
+, fetchurl
+, gitUpdater
+, shortenPerlShebang
+, testers
+}:
+
+buildPerlPackage rec {
+  pname = "Image-ExifTool";
+  version = "12.80";
+
+  src = fetchurl {
+    url = "https://exiftool.org/Image-ExifTool-${version}.tar.gz";
+    hash = "sha256-k9UinWyy++gGSTK9H1Pht81FH4hDzG7uZSBSjLLVeQY=";
+  };
+
+  nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    shortenPerlShebang $out/bin/exiftool
+  '';
+
+  passthru = {
+    tests.version = testers.testVersion {
+      inherit version;
+      command = "${lib.getExe exiftool} -ver";
+      package = exiftool;
+    };
+    updateScript = gitUpdater {
+      url = "https://github.com/exiftool/exiftool.git";
+    };
+  };
+
+  meta = {
+    description = "A tool to read, write and edit EXIF meta information";
+    longDescription = ''
+      ExifTool is a platform-independent Perl library plus a command-line
+      application for reading, writing and editing meta information in a wide
+      variety of files. ExifTool supports many different metadata formats
+      including EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop
+      IRB, FlashPix, AFCP and ID3, as well as the maker notes of many digital
+      cameras by Canon, Casio, DJI, FLIR, FujiFilm, GE, GoPro, HP,
+      JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Motorola, Nikon,
+      Nintendo, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One,
+      Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon and Sony.
+    '';
+    homepage = "https://exiftool.org/";
+    changelog = "https://exiftool.org/history.html";
+    license = with lib.licenses; [ gpl1Plus /* or */ artistic2 ];
+    maintainers = with lib.maintainers; [ kiloreux anthonyroussel ];
+    mainProgram = "exiftool";
+  };
+}
diff --git a/nixpkgs/pkgs/development/perl-modules/Tirex/default.nix b/nixpkgs/pkgs/development/perl-modules/Tirex/default.nix
new file mode 100644
index 000000000000..655610e898f2
--- /dev/null
+++ b/nixpkgs/pkgs/development/perl-modules/Tirex/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPerlPackage
+, fetchFromGitHub
+, fetchpatch
+, GD
+, IPCShareLite
+, JSON
+, LWP
+, mapnik
+, nix-update-script
+}:
+
+buildPerlPackage rec {
+  pname = "Tirex";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "openstreetmap";
+    repo = "tirex";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-p2P19tifA/AvJatTzboyhtt7W1SwKJQzqpU4oDalfhU=";
+  };
+
+  patches = [
+    # https://github.com/openstreetmap/tirex/pull/54
+    (fetchpatch {
+      url = "https://github.com/openstreetmap/tirex/commit/da0c5db926bc0939c53dd902a969b689ccf9edde.patch";
+      hash = "sha256-bnL1ZGy8ZNSZuCRbZn59qRVLg3TL0GjFYnhRKroeVO0=";
+    })
+  ];
+
+  buildInputs = [
+    GD
+    IPCShareLite
+    JSON
+    LWP
+    mapnik
+  ] ++ mapnik.buildInputs;
+
+  installPhase = ''
+    install -m 755 -d $out/usr/libexec
+    make install DESTDIR=$out INSTALLOPTS=""
+    mv $out/$out/lib $out/$out/share $out
+    rmdir $out/$out $out/nix/store $out/nix
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Tools for running a map tile server";
+    homepage = "https://wiki.openstreetmap.org/wiki/Tirex";
+    maintainers = with lib.maintainers; [ jglukasik ];
+    license = with lib.licenses; [ gpl2Only ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/perl-modules/strip-nondeterminism/default.nix b/nixpkgs/pkgs/development/perl-modules/strip-nondeterminism/default.nix
index 3dac3868e664..31b3fad47b45 100644
--- a/nixpkgs/pkgs/development/perl-modules/strip-nondeterminism/default.nix
+++ b/nixpkgs/pkgs/development/perl-modules/strip-nondeterminism/default.nix
@@ -61,6 +61,7 @@ buildPerlPackage rec {
 
   meta = with lib; {
     description = "A Perl module for stripping bits of non-deterministic information";
+    mainProgram = "strip-nondeterminism";
     homepage = "https://reproducible-builds.org/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ pSub artturin ];
diff --git a/nixpkgs/pkgs/development/php-packages/castor/default.nix b/nixpkgs/pkgs/development/php-packages/castor/default.nix
index 241980e93d6f..1b6b3f6be9d4 100644
--- a/nixpkgs/pkgs/development/php-packages/castor/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/castor/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , installShellFiles
 , php
 , nix-update-script
@@ -8,16 +9,25 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "castor";
-  version = "0.13.1";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "jolicode";
     repo = "castor";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-Sm6I306iKVr66sBp+ADeTZAKGToVMc+Y/BCymUdszNc=";
+    hash = "sha256-sSIkXNW6RR1mx15dKouQLMaHBr5FEkTTc/0QIkWV8sg=";
   };
 
-  vendorHash = "sha256-KbmovAnejShyVclF4IcZ9ckUOWysfEz3DFqE8OxlzI0=";
+  patches = [
+    # Upstream lock is invalid. https://github.com/jolicode/castor/issues/319
+    (fetchpatch {
+      name = "fix-invalid-lock.patch";
+      url = "https://github.com/jolicode/castor/commit/5ff0c3ecbdddad20146adbc2f055b83f5aadba0f.patch";
+      hash = "sha256-1a3Dpk/UXp92Ugw9zSoLPsbWOJEuP2FBWc/pQ/EKwaM=";
+    })
+  ];
+
+  vendorHash = "sha256-HfEjwlkozeuT4LDnYwiCu7T0spcf4GLhkd7Kc1VRnro=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/development/php-packages/composer/default.nix b/nixpkgs/pkgs/development/php-packages/composer/default.nix
index 1f9a16b197be..40709f4b4973 100644
--- a/nixpkgs/pkgs/development/php-packages/composer/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/composer/default.nix
@@ -16,7 +16,7 @@ php.buildComposerProject (finalAttrs: {
   # use together with the version from this package to keep the
   # bootstrap phar file up-to-date together with the end user composer
   # package.
-  passthru.pharHash = "sha256-H/0L4/J+I3sa5H+ejyn5asf1CgvZ7vT4jNvpTdBL//A=";
+  passthru.pharHash = "sha256-BJuODtnyZNdwoFEIWM/7w1QBUQdZ7cmnhLOlxuAgvKw=";
 
   composer = callPackage ../../../build-support/php/pkgs/composer-phar.nix {
     inherit (finalAttrs) version;
@@ -24,13 +24,13 @@ php.buildComposerProject (finalAttrs: {
   };
 
   pname = "composer";
-  version = "2.7.1";
+  version = "2.7.2";
 
   src = fetchFromGitHub {
     owner = "composer";
     repo = "composer";
     rev = finalAttrs.version;
-    hash = "sha256-OThWqY3m/pIas4qvR/kiYgc/2QrAbnsYEOxpHxKhDfM=";
+    hash = "sha256-Rev3OW1G+LVgJmHLwuV5u0s7F7lKrvtI43eS7y9SAYA=";
   };
 
   nativeBuildInputs = [ makeBinaryWrapper ];
@@ -40,7 +40,7 @@ php.buildComposerProject (finalAttrs: {
       --prefix PATH : ${lib.makeBinPath [ _7zz cacert curl git unzip xz ]}
   '';
 
-  vendorHash = "sha256-NJa6nu60HQeBJr7dd79ATptjcekgY35Jq9V40SrN9Ds";
+  vendorHash = "sha256-JLMhjOradyo64mPNos0qtM5bTnAYTRvSWnFUQrLQNjw=";
 
   meta = {
     changelog = "https://github.com/composer/composer/releases/tag/${finalAttrs.version}";
diff --git a/nixpkgs/pkgs/development/php-packages/ioncube-loader/default.nix b/nixpkgs/pkgs/development/php-packages/ioncube-loader/default.nix
new file mode 100644
index 000000000000..290abdffbedd
--- /dev/null
+++ b/nixpkgs/pkgs/development/php-packages/ioncube-loader/default.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, lib
+, fetchzip
+, php
+}:
+
+let
+  phpVersion = lib.versions.majorMinor php.version;
+
+  variant = {
+    "aarch64-darwin" = {
+      url = "https://web.archive.org/web/20240209234707/https://downloads.ioncube.com/loader_downloads/ioncube_loaders_dar_arm64.tar.gz";
+      sha256 = "sha256-J6+bOXX9uRdrGouMAxt7nROjjfH4P2txb1hmPoHUmdM=";
+      prefix = "dar";
+    };
+    "aarch64-linux" = {
+      url = "https://web.archive.org/web/20240209234617/https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_aarch64.tar.gz";
+      sha256 = "sha256-oOO4zr0CssxVGIUIfmAujILqOfQf8dJPADkr03a8HAs=";
+      prefix = "lin";
+    };
+    "x86_64-linux" = {
+      url = "https://web.archive.org/web/20240209052345if_/https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz";
+      sha256 = "sha256-rsXKgxKHldBKDjJTsOdJP4SxfxLmMPDY+GizBpuDeyw=";
+      prefix = "lin";
+    };
+    "x86_64-darwin" = {
+      url = "https://web.archive.org/web/20240209234406/https://downloads.ioncube.com/loader_downloads/ioncube_loaders_mac_x86-64.tar.gz";
+      sha256 = "sha256-bz2hQOaFbXePa8MhAZHESpZMRjjBH51IgvbR2EfBYMg=";
+      prefix = "mac";
+    };
+  };
+in
+stdenv.mkDerivation {
+  version = "13.0.2";
+  pname = "ioncube-loader";
+  extensionName = "ioncube-loader";
+
+  src = fetchzip {
+    url = variant.${stdenv.hostPlatform.system}.url;
+    sha256 = variant.${stdenv.hostPlatform.system}.sha256;
+  };
+
+  installPhase = ''
+    mkdir -p $out/lib/php/extensions
+    cp $src/ioncube_loader_${variant.${stdenv.hostPlatform.system}.prefix}_${phpVersion}.so $out/lib/php/extensions/ioncube-loader.so
+  '';
+
+  meta = with lib; {
+    description = "Use ionCube-encoded files on a web server";
+    changelog = "https://www.ioncube.com/loaders.php";
+    homepage = "https://www.ioncube.com";
+    sourceProvenance = [ sourceTypes.binaryNativeCode ];
+    license = licenses.unfree;
+    maintainers = with maintainers; [ neverbehave ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/php-packages/mongodb/default.nix b/nixpkgs/pkgs/development/php-packages/mongodb/default.nix
index 4402ecda0a8f..e3f79cee61f1 100644
--- a/nixpkgs/pkgs/development/php-packages/mongodb/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/mongodb/default.nix
@@ -15,13 +15,13 @@
 
 buildPecl rec {
   pname = "mongodb";
-  version = "1.17.2";
+  version = "1.17.3";
 
   src = fetchFromGitHub {
     owner = "mongodb";
     repo = "mongo-php-driver";
     rev = version;
-    hash = "sha256-7JzFls5cMzlA2aEM7M4+Dg4yIJNzz/vNOXNEITejePk=";
+    hash = "sha256-5luaCrrnL7l9zhbxYUMSlID7Sx0MQhgFKgl8F6GkGsE=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/php-packages/opentelemetry/default.nix b/nixpkgs/pkgs/development/php-packages/opentelemetry/default.nix
index 38dfa86e1ce7..06bbe263860f 100644
--- a/nixpkgs/pkgs/development/php-packages/opentelemetry/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/opentelemetry/default.nix
@@ -2,7 +2,7 @@
 
 let
   version = "1.0.1";
-in buildPecl {
+in buildPecl rec {
   inherit version;
   pname = "opentelemetry";
 
@@ -13,7 +13,7 @@ in buildPecl {
     hash = "sha256-VHUzRhTtHygHoW+poItaphV+mxe4rmmSfGgesUgPz8Q=";
   };
 
-  sourceRoot = "source/ext";
+  sourceRoot = "${src.name}/ext";
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/php-packages/phalcon/default.nix b/nixpkgs/pkgs/development/php-packages/phalcon/default.nix
index 57affde8d4e2..07854fdf3b11 100644
--- a/nixpkgs/pkgs/development/php-packages/phalcon/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/phalcon/default.nix
@@ -2,13 +2,13 @@
 
 buildPecl rec {
   pname = "phalcon";
-  version = "5.6.1";
+  version = "5.6.2";
 
   src = fetchFromGitHub {
     owner = "phalcon";
     repo = "cphalcon";
     rev = "v${version}";
-    hash = "sha256-1dCtj3pJGOY7sRe6xx8JgPPLSj/6qMemUnqrt9guPIk=";
+    hash = "sha256-AgyV9pxyXcXuhrRgozN2p67u8xZMepbWrzYaBZMFn6k=";
   };
 
   internalDeps = [ php.extensions.session php.extensions.pdo ];
diff --git a/nixpkgs/pkgs/development/php-packages/phpstan/default.nix b/nixpkgs/pkgs/development/php-packages/phpstan/default.nix
index 63ced11f2351..071ea154f7a6 100644
--- a/nixpkgs/pkgs/development/php-packages/phpstan/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/phpstan/default.nix
@@ -2,16 +2,16 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "phpstan";
-  version = "1.10.59";
+  version = "1.10.62";
 
   src = fetchFromGitHub {
     owner = "phpstan";
     repo = "phpstan-src";
     rev = finalAttrs.version;
-    hash = "sha256-2+CQtpmh2r2+87zLhx7UkYlZ7sDQdDh4S8v67PGNjLM=";
+    hash = "sha256-G/8h5xS2DyGuavVaqkO1Q+M/FoSH7qgTfVddoxIsyqU=";
   };
 
-  vendorHash = "sha256-6Wea4iUSFq0xSWFq4er4lzFn2mgeoYBXG1zMGM3Y390=";
+  vendorHash = "sha256-QEsslE+5KcUNLmk2vlrd+j/dFgEHXqsoESGoQ34IAnM=";
   composerStrictValidation = false;
 
   meta = {
diff --git a/nixpkgs/pkgs/development/php-packages/psysh/default.nix b/nixpkgs/pkgs/development/php-packages/psysh/default.nix
index 484b67b43371..1f443f136578 100644
--- a/nixpkgs/pkgs/development/php-packages/psysh/default.nix
+++ b/nixpkgs/pkgs/development/php-packages/psysh/default.nix
@@ -17,6 +17,7 @@ php.buildComposerProject (finalAttrs: {
   meta = {
     changelog = "https://github.com/bobthecow/psysh/releases/tag/v${finalAttrs.version}";
     description = "PsySH is a runtime developer console, interactive debugger and REPL for PHP.";
+    mainProgram = "psysh";
     license = lib.licenses.mit;
     homepage = "https://psysh.org/";
     maintainers = lib.teams.php.members;
diff --git a/nixpkgs/pkgs/development/python-modules/3to2/default.nix b/nixpkgs/pkgs/development/python-modules/3to2/default.nix
index 18e93a1ff77a..b86e16ae0d4d 100644
--- a/nixpkgs/pkgs/development/python-modules/3to2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/3to2/default.nix
@@ -27,6 +27,7 @@ buildPythonPackage rec {
   meta = {
     homepage = "https://bitbucket.org/amentajo/lib3to2";
     description = "Refactors valid 3.x syntax into valid 2.x syntax, if a syntactical conversion is possible";
+    mainProgram = "3to2";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ mt-caret ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/a2wsgi/default.nix b/nixpkgs/pkgs/development/python-modules/a2wsgi/default.nix
index dc19f1506958..b2b5a03beac4 100644
--- a/nixpkgs/pkgs/development/python-modules/a2wsgi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/a2wsgi/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "a2wsgi";
-  version = "1.10.2";
+  version = "1.10.4";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-RrLKQnz5rVOMFF4y6zaFfhy/R3ty/h7Q49NemMBgYbk=";
+    hash = "sha256-UOgaxVqmCfosZm5CuswlxCTIiEzmBy8afpAhFLfuXWM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aafigure/default.nix b/nixpkgs/pkgs/development/python-modules/aafigure/default.nix
index 460a4a90ee8e..b2a04d8ac599 100644
--- a/nixpkgs/pkgs/development/python-modules/aafigure/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aafigure/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "ASCII art to image converter";
+    mainProgram = "aafigure";
     homepage = "https://launchpad.net/aafigure/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ bjornfor ];
diff --git a/nixpkgs/pkgs/development/python-modules/aardwolf/default.nix b/nixpkgs/pkgs/development/python-modules/aardwolf/default.nix
index add8b364591f..934133d0d705 100644
--- a/nixpkgs/pkgs/development/python-modules/aardwolf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aardwolf/default.nix
@@ -78,6 +78,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Asynchronous RDP protocol implementation";
+    mainProgram = "ardpscan";
     homepage = "https://github.com/skelsec/aardwolf";
     changelog = "https://github.com/skelsec/aardwolf/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/absl-py/default.nix b/nixpkgs/pkgs/development/python-modules/absl-py/default.nix
index a2f22062d3bf..eb412275a882 100644
--- a/nixpkgs/pkgs/development/python-modules/absl-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/absl-py/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "absl-py";
-  version = "2.0.0";
+  version = "2.1.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2WkCEcX8/vzdGkVHCsK1xazUUkHDr3Hu2WvFRBdGwNU=";
+    hash = "sha256-eCB5DvuzFnOc3otOGTVyQ/w2CKFSAkKIUT3ZaNfZWf8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/accelerate/default.nix b/nixpkgs/pkgs/development/python-modules/accelerate/default.nix
index f4b17bbd5df2..1c31b8292809 100644
--- a/nixpkgs/pkgs/development/python-modules/accelerate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/accelerate/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , pythonOlder
 , pytestCheckHook
+, pytest_7
 , setuptools
 , numpy
 , packaging
@@ -20,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "accelerate";
-  version = "0.26.1";
+  version = "0.27.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +30,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-l0RSBVAa2u3bGDLbg/e/1UP5WO8z2+YBqzwdviAcMA0=";
+    hash = "sha256-7rnI8UXyAql8fLMKoSRrWzVw5CnyYVE2o6dJOzSgWxw=";
   };
 
   nativeBuildInputs = [ setuptools ];
@@ -46,7 +47,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     evaluate
     parameterized
-    pytestCheckHook
+    (pytestCheckHook.override { pytest = pytest_7; })
     transformers
   ];
   preCheck = ''
diff --git a/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix b/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix
index 9de8f1e06752..f0e1d699a8ef 100644
--- a/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/acme-tiny/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A tiny script to issue and renew TLS certs from Let's Encrypt";
+    mainProgram = "acme-tiny";
     homepage = "https://github.com/diafygi/acme-tiny";
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/actdiag/default.nix b/nixpkgs/pkgs/development/python-modules/actdiag/default.nix
index 0f1e20041adf..6d04df9d9671 100644
--- a/nixpkgs/pkgs/development/python-modules/actdiag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/actdiag/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Generate activity-diagram image from spec-text file (similar to Graphviz)";
+    mainProgram = "actdiag";
     homepage = "http://blockdiag.com/";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/python-modules/adafruit-io/default.nix b/nixpkgs/pkgs/development/python-modules/adafruit-io/default.nix
index 3315df4212ce..8aaa8b61fda7 100644
--- a/nixpkgs/pkgs/development/python-modules/adafruit-io/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adafruit-io/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "adafruit-io";
-  version = "2.7.1";
+  version = "2.7.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "adafruit";
     repo = "Adafruit_IO_Python";
     rev = "refs/tags/${version}";
-    hash = "sha256-vfjyU+czLtUA0WDEvc0iYmJ2Tn75o/OsX909clfDsUE=";
+    hash = "sha256-JBpF08WGe1pMK1y7HZLH/jSQkJtbWdiTGYHWRd39UIk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/add-trailing-comma/default.nix b/nixpkgs/pkgs/development/python-modules/add-trailing-comma/default.nix
index 785c011c6d66..1bf592b99517 100644
--- a/nixpkgs/pkgs/development/python-modules/add-trailing-comma/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/add-trailing-comma/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A tool (and pre-commit hook) to automatically add trailing commas to calls and literals";
+    mainProgram = "add-trailing-comma";
     homepage = "https://github.com/asottile/add-trailing-comma";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
diff --git a/nixpkgs/pkgs/development/python-modules/adjusttext/default.nix b/nixpkgs/pkgs/development/python-modules/adjusttext/default.nix
index a97353baa987..6f4ca01a7ac0 100644
--- a/nixpkgs/pkgs/development/python-modules/adjusttext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adjusttext/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "adjusttext";
-  version = "1.0.4";
+  version = "1.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Phlya";
     repo = "adjusttext";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Lhl6ykx5ynf+pBub5tBUaALm1w/88jbuSXPigE216NY=";
+    hash = "sha256-o/TA/br7sJAcvfIR4uA7a6XRf/enJ/x7N4ys6Of0j3g=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/adlfs/default.nix b/nixpkgs/pkgs/development/python-modules/adlfs/default.nix
index 7e293f953c07..c425495221b3 100644
--- a/nixpkgs/pkgs/development/python-modules/adlfs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adlfs/default.nix
@@ -8,12 +8,14 @@
 , fetchFromGitHub
 , fsspec
 , pythonOlder
+, setuptools
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "adlfs";
-  version = "2023.10.0";
-  format = "setuptools";
+  version = "2024.2.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -21,10 +23,15 @@ buildPythonPackage rec {
     owner = "fsspec";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-pmKqMNVSW+Jzz4MZaiUbzXFcLzTKj52RJH7WvFMj6NM=";
+    hash = "sha256-/Qakr7ISlzDqunoshUf8mpWCvFXOH3haUx/C79j4RZA=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
     aiohttp
     azure-core
     azure-datalake-store
diff --git a/nixpkgs/pkgs/development/python-modules/aesedb/default.nix b/nixpkgs/pkgs/development/python-modules/aesedb/default.nix
index 62f9b0dd5b94..fda6d316162a 100644
--- a/nixpkgs/pkgs/development/python-modules/aesedb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aesedb/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Parser for JET databases";
+    mainProgram = "antdsparse";
     homepage = "https://github.com/skelsec/aesedb";
     changelog = "https://github.com/skelsec/aesedb/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/aioaladdinconnect/default.nix b/nixpkgs/pkgs/development/python-modules/aioaladdinconnect/default.nix
index f1bee9f07ea1..5617eec6b534 100644
--- a/nixpkgs/pkgs/development/python-modules/aioaladdinconnect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioaladdinconnect/default.nix
@@ -1,4 +1,5 @@
 { lib
+, aioboto3
 , aiohttp
 , buildPythonPackage
 , fetchPypi
@@ -7,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "aioaladdinconnect";
-  version = "0.1.58";
+  version = "0.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,10 +16,11 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "AIOAladdinConnect";
     inherit version;
-    hash = "sha256-ymynaOKvnqqHIEuQc+5CagsaH5cHnQit8ileoUO6G+I=";
+    hash = "sha256-5vfw8SU3lWlPoMAR+byf8jpZrGmXTPoeO+DvPByjZnw=";
   };
 
   propagatedBuildInputs = [
+    aioboto3
     aiohttp
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/aioapns/default.nix b/nixpkgs/pkgs/development/python-modules/aioapns/default.nix
index 4b6c4faa123a..fe6b4192014a 100644
--- a/nixpkgs/pkgs/development/python-modules/aioapns/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioapns/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "aioapns";
-  version = "3.1";
+  version = "3.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-BUSRIDAxeVKlZteYgGZZkMcUn6hAo1fWCbuZcHZXUhU=";
+    hash = "sha256-QPayQogW97saMmaPUP5x0CiXd6Qptg/OROigi5ASNQg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aioautomower/default.nix b/nixpkgs/pkgs/development/python-modules/aioautomower/default.nix
index 486781c4c97d..f6a02d393e5f 100644
--- a/nixpkgs/pkgs/development/python-modules/aioautomower/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioautomower/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "aioautomower";
-  version = "2024.2.10";
+  version = "2024.3.3";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Thomas55555";
     repo = "aioautomower";
     rev = "refs/tags/${version}";
-    hash = "sha256-NRcLyuU5FFIKJALUrx5iVSihzgO6ljqaqlhbs+y2E4Q=";
+    hash = "sha256-ZJRc5nzp1P3X93PxGVB55VgN1HZ2kvn43LT2wYEPxSo=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/aioazuredevops/default.nix b/nixpkgs/pkgs/development/python-modules/aioazuredevops/default.nix
index 5c4e3ed03786..377c96798629 100644
--- a/nixpkgs/pkgs/development/python-modules/aioazuredevops/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioazuredevops/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Get data from the Azure DevOps API";
+    mainProgram = "aioazuredevops";
     homepage = "https://github.com/timmo001/aioazuredevops";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/aiobafi6/default.nix b/nixpkgs/pkgs/development/python-modules/aiobafi6/default.nix
index 9bdd4f9eb420..7856437baeea 100644
--- a/nixpkgs/pkgs/development/python-modules/aiobafi6/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiobafi6/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for communication with the Big Ass Fans i6 firmware";
+    mainProgram = "aiobafi6";
     homepage = "https://github.com/jfroy/aiobafi6";
     changelog = "https://github.com/jfroy/aiobafi6/releases/tag/0.8.2";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/aioblescan/default.nix b/nixpkgs/pkgs/development/python-modules/aioblescan/default.nix
index 312dcd20ee90..768b2f972201 100644
--- a/nixpkgs/pkgs/development/python-modules/aioblescan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioblescan/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to listen for BLE advertized packets";
+    mainProgram = "aioblescan";
     homepage = "https://github.com/frawau/aioblescan";
     changelog = "https://github.com/frawau/aioblescan/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/aioboto3/default.nix b/nixpkgs/pkgs/development/python-modules/aioboto3/default.nix
index 6b0f79655717..ea7921fc283b 100644
--- a/nixpkgs/pkgs/development/python-modules/aioboto3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioboto3/default.nix
@@ -1,7 +1,6 @@
 { lib
 , aiobotocore
 , aiofiles
-, boto3
 , buildPythonPackage
 , chalice
 , cryptography
@@ -13,6 +12,7 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 , requests
 }:
 
@@ -33,6 +33,11 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     poetry-core
     poetry-dynamic-versioning
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "aiobotocore"
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix b/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix
index 21883ceab8aa..525e482a42f7 100644
--- a/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiobotocore/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "aiobotocore";
-  version = "2.11.2";
+  version = "2.12.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "aio-libs";
     repo = "aiobotocore";
     rev = "refs/tags/${version}";
-    hash = "sha256-H9nsLPxjv3H5y6+5piBt6Pb+Wks4vwOitM+WQtyViPs=";
+    hash = "sha256-+CXKDk6crCPTVpVfcDWy+1UzS05oTu1RtIvDcVrEmFU=";
   };
 
   # Relax version constraints: aiobotocore works with newer botocore versions
diff --git a/nixpkgs/pkgs/development/python-modules/aiobroadlink/default.nix b/nixpkgs/pkgs/development/python-modules/aiobroadlink/default.nix
index 4be53769784b..db73273a3679 100644
--- a/nixpkgs/pkgs/development/python-modules/aiobroadlink/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiobroadlink/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to control various Broadlink devices";
+    mainProgram = "aiobroadlink";
     homepage = "https://github.com/frawau/aiobroadlink";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/aiocache/default.nix b/nixpkgs/pkgs/development/python-modules/aiocache/default.nix
index 215a4029daca..fd4e5f3a154a 100644
--- a/nixpkgs/pkgs/development/python-modules/aiocache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiocache/default.nix
@@ -1,28 +1,33 @@
 { lib
-, aioredis
 , buildPythonPackage
 , fetchFromGitHub
 , msgpack
 , pythonOlder
+, redis
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "aiocache";
   version = "0.12.2";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "aio-libs";
-    repo = pname;
+    repo = "aiocache";
     rev = "refs/tags/v${version}";
     hash = "sha256-yvXDNJL8uxReaU81klVWudJwh1hmvg5GeeILcNpm/YA=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   passthru.optional-dependencies = {
     redis = [
-      aioredis
+      redis
     ];
     msgpack = [
       msgpack
diff --git a/nixpkgs/pkgs/development/python-modules/aioconsole/default.nix b/nixpkgs/pkgs/development/python-modules/aioconsole/default.nix
index aa9e05a982b5..8cb67f32a920 100644
--- a/nixpkgs/pkgs/development/python-modules/aioconsole/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioconsole/default.nix
@@ -58,6 +58,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/vxgmichel/aioconsole/releases/tag/v${version}";
     description = "Asynchronous console and interfaces for asyncio";
+    mainProgram = "apython";
     homepage = "https://github.com/vxgmichel/aioconsole";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ catern ];
diff --git a/nixpkgs/pkgs/development/python-modules/aiocurrencylayer/default.nix b/nixpkgs/pkgs/development/python-modules/aiocurrencylayer/default.nix
index 39fb1deeb9b3..427992c58823 100644
--- a/nixpkgs/pkgs/development/python-modules/aiocurrencylayer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiocurrencylayer/default.nix
@@ -11,16 +11,16 @@
 
 buildPythonPackage rec {
   pname = "aiocurrencylayer";
-  version = "1.0.5";
-  format = "pyproject";
+  version = "1.0.6";
+  pyproject = true;
 
-  disabled = pythonOlder "3.9";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "home-assistant-ecosystem";
-    repo = pname;
+    repo = "aiocurrencylayer";
     rev = "refs/tags/${version}";
-    hash = "sha256-468OBQV7ISnPRUfi/CM3dCh1ez0jwSVnM6DduPvAgPI=";
+    hash = "sha256-VOzgWN+dDPaGEcahFPSWjBR989b9eNkx4zcnI9o2Xiw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aiodhcpwatcher/default.nix b/nixpkgs/pkgs/development/python-modules/aiodhcpwatcher/default.nix
index 9a860cfb832c..b96e7eb29fbc 100644
--- a/nixpkgs/pkgs/development/python-modules/aiodhcpwatcher/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiodhcpwatcher/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "aiodhcpwatcher";
-  version = "0.8.0";
+  version = "0.8.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "bdraco";
     repo = "aiodhcpwatcher";
     rev = "v${version}";
-    hash = "sha256-zZigXYUDSbXjlH810CgLa56xWYKcStBeKUbgsZ5WjOw=";
+    hash = "sha256-yvmCp8luR26yFYun/YY/tt+peaAL4nOR9cC6lpMiJhk=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix b/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix
index ee041198e8d9..3330acf8d5a2 100644
--- a/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix
@@ -1,4 +1,5 @@
 { lib
+, aiodns
 , async-timeout
 , buildPythonPackage
 , cached-ipaddress
@@ -15,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aiodiscover";
-  version = "1.6.1";
+  version = "2.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "bdraco";
     repo = "aiodiscover";
     rev = "refs/tags/v${version}";
-    hash = "sha256-M3tus0r58YVJyi/S7UWq+OvaKke3hqkHGuYkUxEpVxg=";
+    hash = "sha256-7oeyuwirQ2mm0UQEOwTkAz126UnxkoMjg+DDu5DWY3E=";
   };
 
   nativeBuildInputs = [
@@ -33,11 +34,12 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     async-timeout
+    aiodns
     cached-ipaddress
     dnspython
+    ifaddr
     netifaces
     pyroute2
-    ifaddr
   ];
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aioecowitt/default.nix b/nixpkgs/pkgs/development/python-modules/aioecowitt/default.nix
index b93333c2adb0..414f35aaf4d0 100644
--- a/nixpkgs/pkgs/development/python-modules/aioecowitt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioecowitt/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Wrapper for the EcoWitt protocol";
+    mainProgram = "ecowitt-testserver";
     homepage = "https://github.com/home-assistant-libs/aioecowitt";
     changelog = "https://github.com/home-assistant-libs/aioecowitt/releases/tag/${version}";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/aioelectricitymaps/default.nix b/nixpkgs/pkgs/development/python-modules/aioelectricitymaps/default.nix
index fe16afab2258..e0f6a236b6cb 100644
--- a/nixpkgs/pkgs/development/python-modules/aioelectricitymaps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioelectricitymaps/default.nix
@@ -1,6 +1,6 @@
 { lib
 , aiohttp
-, aresponses
+, aioresponses
 , buildPythonPackage
 , fetchFromGitHub
 , mashumaro
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "aioelectricitymaps";
-  version = "0.4.0";
+  version = "1.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "jpbede";
     repo = "aioelectricitymaps";
     rev = "refs/tags/v${version}";
-    hash = "sha256-q06B40c0uvSuzH/3YCoxg4p9aNIOPrphsoESktF+B14=";
+    hash = "sha256-l6D5Cr2d89n+Ac5V5geBUY0sOiEO3sci9244K0MI+dc=";
   };
 
   postPatch = ''
@@ -42,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    aresponses
+    aioresponses
     pytest-asyncio
     pytestCheckHook
     syrupy
diff --git a/nixpkgs/pkgs/development/python-modules/aioemonitor/default.nix b/nixpkgs/pkgs/development/python-modules/aioemonitor/default.nix
index 505af218349c..feddda5832f2 100644
--- a/nixpkgs/pkgs/development/python-modules/aioemonitor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioemonitor/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python client for SiteSage Emonitor";
+    mainProgram = "my_example";
     homepage = "https://github.com/bdraco/aioemonitor";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix b/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
index ad3ac4f4e573..c17f2df97fa2 100644
--- a/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
-  version = "23.0.0";
+  version = "23.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "esphome";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-iYaRA1Jj9Ew/s/LyS6U+NZ3TsAlXdDq0DAaudgFV5/o=";
+    hash = "sha256-1Y2hcgvn0Msx17t1sH5N8cg2wmYo6YqFWPUqUNTNN5M=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aiogram/default.nix b/nixpkgs/pkgs/development/python-modules/aiogram/default.nix
index c125e2869df9..ed60684b9fa3 100644
--- a/nixpkgs/pkgs/development/python-modules/aiogram/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiogram/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, pythonRelaxDepsHook
 , pytestCheckHook
 , aiohttp
 , aiohttp-socks
@@ -37,6 +38,11 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     hatchling
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "pydantic"
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aioharmony/default.nix b/nixpkgs/pkgs/development/python-modules/aioharmony/default.nix
index 29d06a8e406e..8976c3d30707 100644
--- a/nixpkgs/pkgs/development/python-modules/aioharmony/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioharmony/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/ehendrix23/aioharmony";
     description = "Python library for interacting the Logitech Harmony devices";
+    mainProgram = "aioharmony";
     license = licenses.asl20;
     maintainers = with maintainers; [ oro ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/aiohomekit/default.nix b/nixpkgs/pkgs/development/python-modules/aiohomekit/default.nix
index 2e6a1957779e..546fd9c4f404 100644
--- a/nixpkgs/pkgs/development/python-modules/aiohomekit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiohomekit/default.nix
@@ -79,6 +79,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module that implements the HomeKit protocol";
+    mainProgram = "aiohomekitctl";
     longDescription = ''
       This Python library implements the HomeKit protocol for controlling
       Homekit accessories.
diff --git a/nixpkgs/pkgs/development/python-modules/aiohttp-client-cache/default.nix b/nixpkgs/pkgs/development/python-modules/aiohttp-client-cache/default.nix
index 99f3488aa6f2..c8ff60e64f5a 100644
--- a/nixpkgs/pkgs/development/python-modules/aiohttp-client-cache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiohttp-client-cache/default.nix
@@ -1,6 +1,14 @@
-{ lib, fetchPypi, python3, ...}:
+{ lib
+, fetchPypi
+, buildPythonPackage
+, poetry-core
+, aiohttp
+, attrs
+, itsdangerous
+, url-normalize
+}:
 
-python3.pkgs.buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "aiohttp_client_cache";
   version = "0.11.0";
   pyproject = true;
@@ -8,10 +16,10 @@ python3.pkgs.buildPythonPackage rec {
     inherit pname version;
     sha256 = "sha256-B2b/9O2gVJjHUlN0pYeBDcwsy3slaAnd5SroeQqEU+s=";
   };
-  nativeBuildInputs = with python3.pkgs; [
+  nativeBuildInputs = [
     poetry-core
   ];
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = [
     aiohttp
     attrs
     itsdangerous
diff --git a/nixpkgs/pkgs/development/python-modules/aiohttp-wsgi/default.nix b/nixpkgs/pkgs/development/python-modules/aiohttp-wsgi/default.nix
index f58d6eff074f..d048cb41e320 100644
--- a/nixpkgs/pkgs/development/python-modules/aiohttp-wsgi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiohttp-wsgi/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "WSGI adapter for aiohttp";
+    mainProgram = "aiohttp-wsgi-serve";
     homepage = "https://github.com/etianen/aiohttp-wsgi";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix b/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix
index 11eb19010fdd..823a0f9e14b7 100644
--- a/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix
@@ -22,6 +22,7 @@
 , gunicorn
 , pytest-mock
 , pytestCheckHook
+, pytest_7
 , python-on-whales
 , re-assert
 , trustme
@@ -82,7 +83,7 @@ buildPythonPackage rec {
     freezegun
     gunicorn
     pytest-mock
-    pytestCheckHook
+    (pytestCheckHook.override { pytest = pytest_7; })
     python-on-whales
     re-assert
   ] ++ lib.optionals (!(stdenv.isDarwin && stdenv.isAarch64)) [
diff --git a/nixpkgs/pkgs/development/python-modules/aiolifx/default.nix b/nixpkgs/pkgs/development/python-modules/aiolifx/default.nix
index 852f50fa93a3..a9362a9dac3d 100644
--- a/nixpkgs/pkgs/development/python-modules/aiolifx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiolifx/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for local communication with LIFX devices over a LAN";
+    mainProgram = "aiolifx";
     homepage = "https://github.com/frawau/aiolifx";
     changelog = "https://github.com/frawau/aiolifx/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/aiomisc-pytest/default.nix b/nixpkgs/pkgs/development/python-modules/aiomisc-pytest/default.nix
index c3f720cdadeb..674aef1d02ef 100644
--- a/nixpkgs/pkgs/development/python-modules/aiomisc-pytest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiomisc-pytest/default.nix
@@ -5,23 +5,29 @@
 , poetry-core
 , pytest
 , pythonOlder
+, pythonRelaxDepsHook
 }:
 
 buildPythonPackage rec {
   pname = "aiomisc-pytest";
-  version = "1.1.1";
-  format = "pyproject";
+  version = "1.1.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "aiomisc_pytest";
     inherit version;
-    hash = "sha256-LDeMQbB4wFdgJ95r9/vFN6fmkoXSPq9NRXONXQ3lbdM=";
+    hash = "sha256-Zja0cNFrn6mUFlZOtzAtBJ/Gn27akD59qX6p88ytD6w=";
   };
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "pytest"
   ];
 
   buildInputs = [
@@ -41,7 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Pytest integration for aiomisc";
-    homepage = "https://github.com/aiokitchen/aiomisc";
+    homepage = "https://github.com/aiokitchen/aiomisc-pytest";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/aiomisc/default.nix b/nixpkgs/pkgs/development/python-modules/aiomisc/default.nix
index 06466ca2963d..92e016c786b8 100644
--- a/nixpkgs/pkgs/development/python-modules/aiomisc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiomisc/default.nix
@@ -22,14 +22,14 @@
 
 buildPythonPackage rec {
   pname = "aiomisc";
-  version = "17.3.48";
+  version = "17.5.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-AVavnUsx/hUrT1gspfMNxtmyDLUty+ocPqRZAun036I=";
+    hash = "sha256-bpR9HsR/7qVaDcTsHXJypGDyS7/BE/CzFk6eNaQ/C8k=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aiomqtt/default.nix b/nixpkgs/pkgs/development/python-modules/aiomqtt/default.nix
index 634c031cbd74..16450a8758b9 100644
--- a/nixpkgs/pkgs/development/python-modules/aiomqtt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiomqtt/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "aiomqtt";
-  version = "2.0.0";
+  version = "2.0.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "sbtinstruments";
     repo = "aiomqtt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ww4NdCtT04b4tRmarJjB4xmfRBNIQekP8iARAdpmBH0=";
+    hash = "sha256-bV1elEO1518LVLwNDN5pzjxRgcG34K1XUsK7fTw8h+8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aiomysensors/default.nix b/nixpkgs/pkgs/development/python-modules/aiomysensors/default.nix
index 9ba8dae31c8a..006f108da390 100644
--- a/nixpkgs/pkgs/development/python-modules/aiomysensors/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiomysensors/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to connect to MySensors gateways";
+    mainProgram = "aiomysensors";
     homepage = "https://github.com/MartinHjelmare/aiomysensors";
     changelog = "https://github.com/MartinHjelmare/aiomysensors/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/aionotion/default.nix b/nixpkgs/pkgs/development/python-modules/aionotion/default.nix
index ce0bf222341d..918900c34a47 100644
--- a/nixpkgs/pkgs/development/python-modules/aionotion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aionotion/default.nix
@@ -19,16 +19,16 @@
 
 buildPythonPackage rec {
   pname = "aionotion";
-  version = "2024.02.2";
-  format = "pyproject";
+  version = "2024.03.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "bachya";
-    repo = pname;
+    repo = "aionotion";
     rev = "refs/tags/${version}";
-    hash = "sha256-xehHOB4iUMT1kKEK4jQzaj7hH9fmiY7mZxGC3CLnpAs=";
+    hash = "sha256-BsbfLb5wCVxR8v2U2Zzt7LMl7XJcZWfVjZN47VDkhFc=";
   };
 
   nativeBuildInputs = [
@@ -66,7 +66,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python library for Notion Home Monitoring";
     homepage = "https://github.com/bachya/aionotion";
-    changelog = "https://github.com/bachya/aionotion/releases/tag/${src.rev}";
+    changelog = "https://github.com/bachya/aionotion/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/aiooncue/default.nix b/nixpkgs/pkgs/development/python-modules/aiooncue/default.nix
index 1c19c02222c8..4003ebd5de40 100644
--- a/nixpkgs/pkgs/development/python-modules/aiooncue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiooncue/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "aiooncue";
-  version = "0.3.5";
+  version = "0.3.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,8 +15,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "bdraco";
     repo = pname;
-    rev = version;
-    hash = "sha256-i3b/W2EeH/rNmMcNW+BA9w2BRzeV6EACSJI3zffVQS4=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-TKOpx+twnG9zj7RcwOn53ebT7eyLOFKyxChp9lCdoU8=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aiooss2/default.nix b/nixpkgs/pkgs/development/python-modules/aiooss2/default.nix
index 2d30e0422ef3..0c1abce558a8 100644
--- a/nixpkgs/pkgs/development/python-modules/aiooss2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiooss2/default.nix
@@ -15,8 +15,8 @@
 
 buildPythonPackage rec {
   pname = "aiooss2";
-  version = "0.2.9";
-  format = "pyproject";
+  version = "0.2.10";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "karajan1001";
     repo = "aiooss2";
     rev = "refs/tags/${version}";
-    hash = "sha256-LdH04pRioxpHY1amRO90l9l5540IsDxmQcrEUVSq8dk=";
+    hash = "sha256-xlbOLqillSpN6DHYn7bqTL7qMlicYCXGxO30Z/tiKJY=";
   };
 
   pythonRelaxDeps = [
@@ -32,13 +32,13 @@ buildPythonPackage rec {
     "oss2"
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     pythonRelaxDepsHook
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     oss2
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/aiopinboard/default.nix b/nixpkgs/pkgs/development/python-modules/aiopinboard/default.nix
new file mode 100644
index 000000000000..33d4d82ea218
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiopinboard/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, aiohttp
+, aresponses
+, arrow
+, buildPythonPackage
+, certifi
+, fetchFromGitHub
+, frozenlist
+, poetry-core
+, pytest-aiohttp
+, pytestCheckHook
+, pythonOlder
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "aiopinboard";
+  version = "2024.01.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "bachya";
+    repo = "aiopinboard";
+    rev = "refs/tags/${version}";
+    hash = "sha256-/N9r17e0ZvPmcqW/XtRyAENKCGRzWqeOSKPpWHHYomg=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    arrow
+    certifi
+    frozenlist
+    yarl
+  ];
+
+  nativeCheckInputs = [
+    aresponses
+    pytest-aiohttp
+    pytestCheckHook
+  ];
+
+
+  pythonImportsCheck = [
+    "aiopinboard"
+  ];
+
+  meta = with lib; {
+    description = "Library to interact with the Pinboard API";
+    homepage = "https://github.com/bachya/aiopinboard";
+    changelog = "https://github.com/bachya/aiopinboard/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiopvapi/default.nix b/nixpkgs/pkgs/development/python-modules/aiopvapi/default.nix
index d759a4db6a28..c39e5303c917 100644
--- a/nixpkgs/pkgs/development/python-modules/aiopvapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiopvapi/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "aiopvapi";
-  version = "3.0.2";
+  version = "3.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,14 +18,14 @@ buildPythonPackage rec {
     owner = "sander76";
     repo = "aio-powerview-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NfSGu4M0NWfCDc37zRwUjYtZz5jOtw3pYgF6fIsB/Yo=";
+    hash = "sha256-nJjYGPxpnbq/8XFmLKbMU71buFdaNUj7PQES5FnlN3o=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/aiopvpc/default.nix b/nixpkgs/pkgs/development/python-modules/aiopvpc/default.nix
index 602128265fdc..853d01257740 100644
--- a/nixpkgs/pkgs/development/python-modules/aiopvpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiopvpc/default.nix
@@ -14,21 +14,21 @@
 
 buildPythonPackage rec {
   pname = "aiopvpc";
-  version = "4.2.2";
-  format = "pyproject";
+  version = "4.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "azogue";
-    repo = pname;
+    repo = "aiopvpc";
     rev = "refs/tags/v${version}";
-    hash = "sha256-k02lNjFjOcMfHa1jLJlMFUOOVrdTrACNoEXDSZ693K8=";
+    hash = "sha256-8CNmrE3EMFg/bCrdI+K/8f0MRzKtGI74ILFMuSg1Ivo=";
   };
 
   postPatch = ''
-    substituteInPlace pyproject.toml --replace \
-      " --cov --cov-report term --cov-report html" ""
+    substituteInPlace pyproject.toml \
+      --replace-fail " --cov --cov-report term --cov-report html" ""
   '';
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aiopylgtv/default.nix b/nixpkgs/pkgs/development/python-modules/aiopylgtv/default.nix
index 447975225cad..b7034d385835 100644
--- a/nixpkgs/pkgs/development/python-modules/aiopylgtv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiopylgtv/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library to control webOS based LG TV units";
+    mainProgram = "aiopylgtvcommand";
     homepage = "https://github.com/bendavid/aiopylgtv";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/aioraven/default.nix b/nixpkgs/pkgs/development/python-modules/aioraven/default.nix
new file mode 100644
index 000000000000..227e0b62becf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aioraven/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pythonOlder
+, iso4217
+, pyserial
+, pyserial-asyncio
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "aioraven";
+  version = "0.5.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "cottsay";
+    repo = "aioraven";
+    rev = "refs/tags/${version}";
+    hash = "sha256-ysmIxWy+gufX5oUfQ7Zw5xv0t/yxihFB+eAdYAWAmXs=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    iso4217
+    pyserial
+    pyserial-asyncio
+  ];
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "aioraven"
+  ];
+
+  meta = with lib; {
+    description = "Module for communication with RAVEn devices";
+    homepage = "https://github.com/cottsay/aioraven";
+    changelog = "https://github.com/cottsay/aioraven/blob/${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aiortm/default.nix b/nixpkgs/pkgs/development/python-modules/aiortm/default.nix
index e1e4f7fabaf7..89ffdf6827cb 100644
--- a/nixpkgs/pkgs/development/python-modules/aiortm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiortm/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for the Remember the Milk API";
+    mainProgram = "aiortm";
     homepage = "https://github.com/MartinHjelmare/aiortm";
     changelog = "https://github.com/MartinHjelmare/aiortm/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix b/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix
index 2dfef5a251ad..55c60d8e921a 100644
--- a/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioshelly/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "aioshelly";
-  version = "8.1.1";
+  version = "8.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-i2dlcparDQlwM7Wk/HwlBz0mmI38ZRwxVM6jLY0rI+0=";
+    hash = "sha256-ZJ6lb3pd8DhNagaVq1uFwadtviuHCg44YZkh29ipu5U=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aioslimproto/default.nix b/nixpkgs/pkgs/development/python-modules/aioslimproto/default.nix
index 2294960ce59a..0a92b10bfd29 100644
--- a/nixpkgs/pkgs/development/python-modules/aioslimproto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioslimproto/default.nix
@@ -1,53 +1,44 @@
 { lib
+, aiohttp
 , async-timeout
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , pillow
-, pytest-asyncio
-, pytestCheckHook
 , pythonOlder
 , setuptools
-, wheel
 }:
 
 buildPythonPackage rec {
   pname = "aioslimproto";
-  version = "2.3.3";
-  format = "pyproject";
+  version = "3.0.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "home-assistant-libs";
-    repo = pname;
+    repo = "aioslimproto";
     rev = "refs/tags/${version}";
-    hash = "sha256-d+PEzCF1Cw/7NmumxIRRlr3hojpNsZM/JMQ0KWdosXk=";
+    hash = "sha256-K7z34fT0PQ5qcV+66VbhYTUhCjqW/OjPnrygBFKIW1k=";
   };
 
-  patches = [
-    # https://github.com/home-assistant-libs/aioslimproto/pull/189
-    (fetchpatch {
-      name = "unpin-setuptools-version.patch";
-      url = "https://github.com/home-assistant-libs/aioslimproto/commit/06fd56987be8903ff147bad38af84b21bc31bc18.patch";
-      hash = "sha256-kTu1+IwDrcdqelyK/vfhxw8MQBis5I1jag7YTytKQhs=";
-    })
-  ];
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "--cov" ""
+  '';
 
   nativeBuildInputs = [
     setuptools
-    wheel
   ];
 
   propagatedBuildInputs = [
+    aiohttp
     async-timeout
     pillow
   ];
 
-  nativeCheckInputs = [
-    pytest-asyncio
-    pytestCheckHook
-  ];
+  # Module has no tests
+  doCheck = false;
 
   pythonImportsCheck = [
     "aioslimproto"
diff --git a/nixpkgs/pkgs/development/python-modules/aiosmtpd/default.nix b/nixpkgs/pkgs/development/python-modules/aiosmtpd/default.nix
index fa66e0ca53cb..2f3c5e3b836c 100644
--- a/nixpkgs/pkgs/development/python-modules/aiosmtpd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiosmtpd/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "aiosmtpd";
-  version = "1.4.4.post2";
+  version = "1.4.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -19,8 +19,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "aio-libs";
     repo = pname;
-    rev = "refs/tags/${version}";
-    hash = "sha256-iWKOxXtOBmszDBgeSHNY4a74D00p/9Pf7h/n+ohpTqs=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-8nQ4BVSLYgZHRGkbujy/olV/+GABlkDhe5wef3hyQpQ=";
   };
 
   propagatedBuildInputs = [
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Asyncio based SMTP server";
+    mainProgram = "aiosmtpd";
     homepage = "https://aiosmtpd.readthedocs.io/";
     longDescription = ''
       This is a server for SMTP and related protocols, similar in utility to the
diff --git a/nixpkgs/pkgs/development/python-modules/aiosql/default.nix b/nixpkgs/pkgs/development/python-modules/aiosql/default.nix
index 165342fec1d9..ac2ff4a650a8 100644
--- a/nixpkgs/pkgs/development/python-modules/aiosql/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiosql/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "aiosql";
-  version = "9.3";
+  version = "10.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "nackjicholson";
     repo = "aiosql";
     rev = "refs/tags/${version}";
-    hash = "sha256-7bCJykE+7/eA1h4L5MyH/zVPZVMt7cNLXZSWq+8mPtY=";
+    hash = "sha256-KlDwvoU0GYCN+ZCp4pp557qf9ChceS4NeA0Yiq+g3YQ=";
   };
 
   sphinxRoot = "docs/source";
diff --git a/nixpkgs/pkgs/development/python-modules/aiounifi/default.nix b/nixpkgs/pkgs/development/python-modules/aiounifi/default.nix
index e50bd10281c5..01879192a82d 100644
--- a/nixpkgs/pkgs/development/python-modules/aiounifi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiounifi/default.nix
@@ -63,6 +63,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for communicating with Unifi Controller API";
+    mainProgram = "aiounifi";
     homepage = "https://github.com/Kane610/aiounifi";
     changelog = "https://github.com/Kane610/aiounifi/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/aiowinreg/default.nix b/nixpkgs/pkgs/development/python-modules/aiowinreg/default.nix
index 19959b7accd4..a24384e3c51e 100644
--- a/nixpkgs/pkgs/development/python-modules/aiowinreg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiowinreg/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to parse the registry hive";
+    mainProgram = "awinreg";
     homepage = "https://github.com/skelsec/aiowinreg";
     changelog = "https://github.com/skelsec/aiowinreg/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/aiozeroconf/default.nix b/nixpkgs/pkgs/development/python-modules/aiozeroconf/default.nix
index 6bd40233d761..bfe406b05364 100644
--- a/nixpkgs/pkgs/development/python-modules/aiozeroconf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiozeroconf/default.nix
@@ -20,6 +20,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A pure python implementation of multicast DNS service discovery";
+    mainProgram = "aiozeroconf";
     homepage = "https://github.com/jstasiak/python-zeroconf";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ obadz ];
diff --git a/nixpkgs/pkgs/development/python-modules/airium/default.nix b/nixpkgs/pkgs/development/python-modules/airium/default.nix
index 4d84454a339c..b61cd573fb4b 100644
--- a/nixpkgs/pkgs/development/python-modules/airium/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/airium/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Bidirectional HTML-python translator";
+    mainProgram = "airium";
     homepage = "https://gitlab.com/kamichal/airium";
     license = licenses.mit;
     maintainers = with maintainers; [ hulr ];
diff --git a/nixpkgs/pkgs/development/python-modules/airthings-ble/default.nix b/nixpkgs/pkgs/development/python-modules/airthings-ble/default.nix
index aa418733a6cc..1f9458541065 100644
--- a/nixpkgs/pkgs/development/python-modules/airthings-ble/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/airthings-ble/default.nix
@@ -1,5 +1,6 @@
 { lib
 , async-interrupt
+, async-timeout
 , bleak
 , bleak-retry-connector
 , buildPythonPackage
@@ -11,21 +12,21 @@
 
 buildPythonPackage rec {
   pname = "airthings-ble";
-  version = "0.6.1";
+  version = "0.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "vincegio";
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    hash = "sha256-A7Nrg0O+WVoHP+m8pz6idnNcxulwPYmMt9DfhKTHG24=";
+    repo = "airthings-ble";
+    rev = "refs/tags/${version}";
+    hash = "sha256-BeOrGRVxvfQR1xqIpOp4tOTvlqTKCZHUjVKDqVjVnYM=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "-v -Wdefault --cov=airthings_ble --cov-report=term-missing:skip-covered" ""
+      --replace-fail "-v -Wdefault --cov=airthings_ble --cov-report=term-missing:skip-covered" ""
   '';
 
   nativeBuildInputs = [
@@ -36,6 +37,8 @@ buildPythonPackage rec {
     async-interrupt
     bleak
     bleak-retry-connector
+  ]  ++ lib.optionals (pythonOlder "3.11") [
+    async-timeout
   ];
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ajsonrpc/default.nix b/nixpkgs/pkgs/development/python-modules/ajsonrpc/default.nix
index 0b974e368045..47643f6e94b4 100644
--- a/nixpkgs/pkgs/development/python-modules/ajsonrpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ajsonrpc/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Async JSON-RPC 2.0 protocol + asyncio server";
+    mainProgram = "async-json-rpc-server";
     homepage = "https://github.com/pavlov99/ajsonrpc";
     license = licenses.mit;
     maintainers = with maintainers; [ oxzi ];
diff --git a/nixpkgs/pkgs/development/python-modules/alabaster/default.nix b/nixpkgs/pkgs/development/python-modules/alabaster/default.nix
index 949bfdcac95d..b2b77a34c881 100644
--- a/nixpkgs/pkgs/development/python-modules/alabaster/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alabaster/default.nix
@@ -1,16 +1,22 @@
-{ lib, buildPythonPackage, fetchPypi
-, pygments }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, flit-core
+, pygments
+}:
 
 buildPythonPackage rec {
   pname = "alabaster";
-  version = "0.7.13";
-  format = "setuptools";
+  version = "0.7.16";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-onpKCE1eaQ4W4B4DrSsuVSxhplRpQZuQckMZPeGoSuI=";
+    hash = "sha256-dai5nCil2tUN1/jM3UR6Eh3bOJLanlPRylzKMQbVjWU=";
   };
 
+  nativeBuildInputs = [ flit-core ];
+
   propagatedBuildInputs = [ pygments ];
 
   # No tests included
diff --git a/nixpkgs/pkgs/development/python-modules/albumentations/default.nix b/nixpkgs/pkgs/development/python-modules/albumentations/default.nix
index 6c13bebebdfe..17e9c7fc7974 100644
--- a/nixpkgs/pkgs/development/python-modules/albumentations/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/albumentations/default.nix
@@ -12,18 +12,20 @@
 , pytestCheckHook
 , pythonOlder
 , pythonRelaxDepsHook
+, torch
+, torchvision
 }:
 
 buildPythonPackage rec {
   pname = "albumentations";
-  version = "1.4.0";
+  version = "1.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZJ+KFIlveIs1bsxwCDxPuRvtq0/04rOa0heoJOGJ3tA=";
+    hash = "sha256-lznWLJocXdfwnhAZ33V5ZdlFCAsNa0u/rjfkjmHBQOg=";
   };
 
   nativeBuildInputs = [
@@ -50,6 +52,8 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     deepdiff
     pytestCheckHook
+    torch
+    torchvision
   ];
 
   disabledTests = [
diff --git a/nixpkgs/pkgs/development/python-modules/ale-py/default.nix b/nixpkgs/pkgs/development/python-modules/ale-py/default.nix
index 9cc5f6105cf5..9ff15479551e 100644
--- a/nixpkgs/pkgs/development/python-modules/ale-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ale-py/default.nix
@@ -89,6 +89,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "a simple framework that allows researchers and hobbyists to develop AI agents for Atari 2600 games";
+    mainProgram = "ale-import-roms";
     homepage = "https://github.com/mgbellemare/Arcade-Learning-Environment";
     license = licenses.gpl2;
     maintainers = with maintainers; [ billhuang ];
diff --git a/nixpkgs/pkgs/development/python-modules/alectryon/default.nix b/nixpkgs/pkgs/development/python-modules/alectryon/default.nix
index 136768950dfd..423aedb94237 100644
--- a/nixpkgs/pkgs/development/python-modules/alectryon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alectryon/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/cpitclaudel/alectryon";
     description = "A collection of tools for writing technical documents that mix Coq code and prose";
+    mainProgram = "alectryon";
     license = licenses.mit;
     maintainers = with maintainers; [ Zimmi48 ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/alembic/default.nix b/nixpkgs/pkgs/development/python-modules/alembic/default.nix
index 1b5dc8514414..9f4131778818 100644
--- a/nixpkgs/pkgs/development/python-modules/alembic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alembic/default.nix
@@ -21,14 +21,14 @@
 
 buildPythonPackage rec {
   pname = "alembic";
-  version = "1.13.0";
+  version = "1.13.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-q0s7lNLh5fgeNL6Km3t1dfyd1TmPzLC+81HsmxSHJiM=";
+    hash = "sha256-STLIVYv2jy7pK5u8uCGGccYnBk1bCJOUN69td9wF5ZU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/allure-python-commons-test/default.nix b/nixpkgs/pkgs/development/python-modules/allure-python-commons-test/default.nix
index f023cbb3a429..52a38b647a69 100644
--- a/nixpkgs/pkgs/development/python-modules/allure-python-commons-test/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/allure-python-commons-test/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "allure-python-commons-test";
-  version = "2.13.2";
+  version = "2.13.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Xh6NtqiuTg7UxKqJ7/p45rCUQGWiGDEaNAslzeYtgfg=";
+    hash = "sha256-DGPxOoUGecpqKugrVR9iAa1VCBoInzUGTEY4GQB13SE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/amaranth/default.nix b/nixpkgs/pkgs/development/python-modules/amaranth/default.nix
index e441daefcd43..9636c6d94e20 100644
--- a/nixpkgs/pkgs/development/python-modules/amaranth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/amaranth/default.nix
@@ -19,14 +19,14 @@
 buildPythonPackage rec {
   pname = "amaranth";
   format = "pyproject";
-  version = "0.4.3";
+  version = "0.4.4";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "amaranth-lang";
     repo = "amaranth";
     rev = "refs/tags/v${version}";
-    hash = "sha256-03uAaD4aEMxu/T1D8Hb7XcWvZZuaCK5HmdOD9bx+ZIc=";
+    hash = "sha256-XL5S7/Utfg83DLIBGBDWYoQnRZaFE11Wy+XXbimu3Q8=";
   };
 
   nativeBuildInputs = [
@@ -52,6 +52,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A modern hardware definition language and toolchain based on Python";
+    mainProgram = "amaranth-rpc";
     homepage = "https://amaranth-lang.org/docs/amaranth";
     license = licenses.bsd2;
     maintainers = with maintainers; [ emily thoughtpolice pbsds ];
diff --git a/nixpkgs/pkgs/development/python-modules/amarna/default.nix b/nixpkgs/pkgs/development/python-modules/amarna/default.nix
index 778a585a69f1..d9587d11ee48 100644
--- a/nixpkgs/pkgs/development/python-modules/amarna/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/amarna/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Static-analyzer and linter for the Cairo programming language";
+    mainProgram = "amarna";
     homepage = "https://github.com/crytic/amarna";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ raitobezarius ];
diff --git a/nixpkgs/pkgs/development/python-modules/amazon-ion/default.nix b/nixpkgs/pkgs/development/python-modules/amazon-ion/default.nix
index 6e28c5da9978..939c554d339d 100644
--- a/nixpkgs/pkgs/development/python-modules/amazon-ion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/amazon-ion/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, cbor2
 , docopt
 , fetchFromGitHub
 , jsonconversion
@@ -12,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "amazon-ion";
-  version = "0.11.3";
+  version = "0.12.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     rev = "refs/tags/v${version}";
     # Test vectors require git submodule
     fetchSubmodules = true;
-    hash = "sha256-wA24ASd6+rTAqHNQ9ZGMnCK9ykJjogCtEWfrXY1B87o=";
+    hash = "sha256-L21FYl4Q+nhB3CU1maOxBHSLU+ox1POHtMio8SSZ/r0=";
   };
 
   postPatch = ''
@@ -41,6 +42,7 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    cbor2
     docopt
     pytestCheckHook
     tabulate
diff --git a/nixpkgs/pkgs/development/python-modules/anonip/default.nix b/nixpkgs/pkgs/development/python-modules/anonip/default.nix
index 264acc781393..5f6cc373e560 100644
--- a/nixpkgs/pkgs/development/python-modules/anonip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/anonip/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool to anonymize IP addresses in log files";
+    mainProgram = "anonip";
     homepage = "https://github.com/DigitaleGesellschaft/Anonip";
     license = licenses.bsd3;
     maintainers = with maintainers; [ mmahut ];
diff --git a/nixpkgs/pkgs/development/python-modules/ansi2html/default.nix b/nixpkgs/pkgs/development/python-modules/ansi2html/default.nix
index 192ecaf2eab4..5f87f8ff3e51 100644
--- a/nixpkgs/pkgs/development/python-modules/ansi2html/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansi2html/default.nix
@@ -1,6 +1,5 @@
 { lib
 , buildPythonPackage
-, fetchpatch
 , fetchPypi
 , pytestCheckHook
 , setuptools
@@ -10,22 +9,14 @@
 
 buildPythonPackage rec {
   pname = "ansi2html";
-  version = "1.8.0";
+  version = "1.9.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OLgqKYSCofomE/D5yb6z23Ko+DLurFjrLke/Ms039tU=";
+    hash = "sha256-XGg3oT7MGQOqt6VFNTMSBJ3+3+UQU2KtOo2dIHhx7HE=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "update-build-requirements.patch";
-      url = "https://github.com/pycontribs/ansi2html/commit/be9c47dd39e500b2e34e95efde90d0a3b44daaee.patch";
-      hash = "sha256-nvOclsgysg+4sK694ppls0BLfq5MCJJQW3V/Ru30D/k=";
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools
     setuptools-scm
@@ -42,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Convert text with ANSI color codes to HTML";
+    mainProgram = "ansi2html";
     homepage = "https://github.com/ralphbean/ansi2html";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ davidtwco ];
diff --git a/nixpkgs/pkgs/development/python-modules/ansi2image/default.nix b/nixpkgs/pkgs/development/python-modules/ansi2image/default.nix
index 1d66f846bacd..eadb1ca188a4 100644
--- a/nixpkgs/pkgs/development/python-modules/ansi2image/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansi2image/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to convert ANSI text to an image";
+    mainProgram = "ansi2image";
     homepage = "https://github.com/helviojunior/ansi2image";
     changelog = "https://github.com/helviojunior/ansi2image/blob/${version}/CHANGELOG";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix b/nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix
index 899fd02e9392..e4cb4c205d25 100644
--- a/nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansible-runner/default.nix
@@ -23,14 +23,14 @@
 
 buildPythonPackage rec {
   pname = "ansible-runner";
-  version = "2.3.5";
+  version = "2.3.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zZ3dV2WHDqPFRbbLR6qtXwTZowpijdP82082eijCIIU=";
+    hash = "sha256-shdKEtytLcLzQuqCh2iY9WigtmxTVoYAv4BXcVj8uhw=";
   };
 
   patches = [
@@ -103,6 +103,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Helps when interfacing with Ansible";
+    mainProgram = "ansible-runner";
     homepage = "https://github.com/ansible/ansible-runner";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/ansible/default.nix b/nixpkgs/pkgs/development/python-modules/ansible/default.nix
index af123b9df777..1269714c5824 100644
--- a/nixpkgs/pkgs/development/python-modules/ansible/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansible/default.nix
@@ -80,6 +80,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Radically simple IT automation";
+    mainProgram = "ansible-community";
     homepage = "https://www.ansible.com";
     changelog = "https://github.com/ansible-community/ansible-build-data/blob/${version}/${lib.versions.major version}/CHANGELOG-v${lib.versions.major version}.rst";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/anthemav/default.nix b/nixpkgs/pkgs/development/python-modules/anthemav/default.nix
index 965d399d573c..00642f8cb157 100644
--- a/nixpkgs/pkgs/development/python-modules/anthemav/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/anthemav/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python asyncio module to interface with Anthem AVM and MRX receivers";
+    mainProgram = "anthemav_monitor";
     homepage = "https://github.com/nugget/python-anthemav";
     changelog = "https://github.com/nugget/python-anthemav/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/anthropic/default.nix b/nixpkgs/pkgs/development/python-modules/anthropic/default.nix
index 0b15d85e2e36..76b852c71f6d 100644
--- a/nixpkgs/pkgs/development/python-modules/anthropic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/anthropic/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "anthropic";
-  version = "0.15.0";
+  version = "0.19.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "anthropics";
     repo = "anthropic-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cI+CbQir2QpHAb+72clLGG7ZBsrYT3fY14HzxjtKOsk=";
+    hash = "sha256-D9asbwZ9puOuIK6w7cWJ2HmC3JYjamUZPOxVKWq+Va4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/antlr4-python3-runtime/default.nix b/nixpkgs/pkgs/development/python-modules/antlr4-python3-runtime/default.nix
index 3b8ed13b1ad8..70fa4e6da2fa 100644
--- a/nixpkgs/pkgs/development/python-modules/antlr4-python3-runtime/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/antlr4-python3-runtime/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Runtime for ANTLR";
+    mainProgram = "pygrun";
     homepage = "https://www.antlr.org/";
     license = licenses.bsd3;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/anyconfig/default.nix b/nixpkgs/pkgs/development/python-modules/anyconfig/default.nix
index 87792781f640..b0e673969a5b 100644
--- a/nixpkgs/pkgs/development/python-modules/anyconfig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/anyconfig/default.nix
@@ -7,17 +7,16 @@
 
 buildPythonPackage rec {
   pname = "anyconfig";
-  version = "0.13.0";
+  version = "0.14.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-A/8uF2KvOI+7vtHBq3+fHsAGqR2n2zpouWPabneV0qw=";
+    hash = "sha256-LN9Ur12ujpF0Pe2CxU7Z2Krvo6lyL11F6bX3S2A+AU0=";
   };
 
   postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "--cov=src -vv" ""
+    sed -i '/addopts =/d' setup.cfg
   '';
 
   propagatedBuildInputs = [
@@ -36,12 +35,14 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # NameError: name 'TT' is not defined
     "tests/schema/test_jsonschema.py"
+    "tests/backend/loaders/pickle/test_pickle_stdlib.py"
   ];
 
   pythonImportsCheck = [ "anyconfig" ];
 
   meta = with lib; {
     description = "Python library provides common APIs to load and dump configuration files in various formats";
+    mainProgram = "anyconfig_cli";
     homepage = "https://github.com/ssato/python-anyconfig";
     license = licenses.mit;
     maintainers = with maintainers; [ tboerger ];
diff --git a/nixpkgs/pkgs/development/python-modules/anyio/default.nix b/nixpkgs/pkgs/development/python-modules/anyio/default.nix
index f8d992bed39b..c5e6d20acb6b 100644
--- a/nixpkgs/pkgs/development/python-modules/anyio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/anyio/default.nix
@@ -29,7 +29,7 @@
 
 buildPythonPackage rec {
   pname = "anyio";
-  version = "4.2.0";
+  version = "4.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     owner = "agronholm";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-9BxzdeQ5Yh4FDXGNVx9kiy7/fBmn8esvZkrK4wW4oGA=";
+    hash = "sha256-y58DQiTD0ZKaBNf0cA3MFE+7F68Svrl+Idz6BZY7HWQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/anytree/default.nix b/nixpkgs/pkgs/development/python-modules/anytree/default.nix
index 8e55337e4100..f18fa10557f3 100644
--- a/nixpkgs/pkgs/development/python-modules/anytree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/anytree/default.nix
@@ -44,6 +44,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    # pytest.PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   # Tests print “Fontconfig error: Cannot load default config fileâ€
   preCheck = lib.optionalString withGraphviz ''
     export FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf
diff --git a/nixpkgs/pkgs/development/python-modules/anywidget/default.nix b/nixpkgs/pkgs/development/python-modules/anywidget/default.nix
index d12798092413..fa5a0aa10209 100644
--- a/nixpkgs/pkgs/development/python-modules/anywidget/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/anywidget/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "anywidget";
-  version = "0.9.2";
+  version = "0.9.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-S6nB3Df17sD1Zrsp+1Di66FNeaVmE1rqt8hogjI/3I4=";
+    hash = "sha256-Coae8oretZHhb1c9i5x0Sm1nVruN89kRZSEMyeLibbg=";
   };
 
   # We do not need the jupyterlab build dependency, because we do not need to
diff --git a/nixpkgs/pkgs/development/python-modules/apache-beam/default.nix b/nixpkgs/pkgs/development/python-modules/apache-beam/default.nix
index 2e267e2ef191..fead79054b36 100644
--- a/nixpkgs/pkgs/development/python-modules/apache-beam/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apache-beam/default.nix
@@ -49,14 +49,14 @@
 
 buildPythonPackage rec {
   pname = "apache-beam";
-  version = "2.52.0";
+  version = "2.54.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "apache";
     repo = "beam";
     rev = "refs/tags/v${version}";
-    hash = "sha256-s/DgTMsJc3c3dqR5Ak9p+xmLm72uNL3AofGzR26B3nI=";
+    hash = "sha256-DcqYBPAS+yUqTJLUem8+2OqRUzb6DoBOeRkMjmvuvws=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/apcaccess/default.nix b/nixpkgs/pkgs/development/python-modules/apcaccess/default.nix
index e6d6d32eb353..b93a91c3090b 100644
--- a/nixpkgs/pkgs/development/python-modules/apcaccess/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apcaccess/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library offers programmatic access to the status information provided by apcupsd over its Network Information Server";
+    mainProgram = "apcaccess";
     homepage = "https://github.com/flyte/apcaccess";
     license = licenses.mit;
     maintainers = with maintainers; [ uvnikita ];
diff --git a/nixpkgs/pkgs/development/python-modules/apispec-webframeworks/default.nix b/nixpkgs/pkgs/development/python-modules/apispec-webframeworks/default.nix
index 171deeebda8c..66e45f0a15f9 100644
--- a/nixpkgs/pkgs/development/python-modules/apispec-webframeworks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apispec-webframeworks/default.nix
@@ -1,4 +1,5 @@
 { lib
+, aiohttp
 , apispec
 , bottle
 , buildPythonPackage
@@ -13,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "apispec-webframeworks";
-  version = "1.0.0";
+  version = "1.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "marshmallow-code";
     repo = "apispec-webframeworks";
     rev = "refs/tags/${version}";
-    hash = "sha256-zrsqIZ5ZogZsK1ZOL2uy8igS4T8a+19IwL5dMhKw7OA=";
+    hash = "sha256-qepiaRW36quIgxBtEHMF3HN0wO6jp2uGAHgg5fJoMUY=";
   };
 
   nativeBuildInputs = [
@@ -34,6 +35,7 @@ buildPythonPackage rec {
   ] ++ apispec.optional-dependencies.yaml;
 
   nativeCheckInputs = [
+    aiohttp
     bottle
     flask
     mock
diff --git a/nixpkgs/pkgs/development/python-modules/apkinspector/default.nix b/nixpkgs/pkgs/development/python-modules/apkinspector/default.nix
index 6daf9868a4a4..9bc15aafb82a 100644
--- a/nixpkgs/pkgs/development/python-modules/apkinspector/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apkinspector/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "apkinspector";
-  version = "1.2.1";
+  version = "1.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bB/WeCRnYOdfg4bm9Nloa2QMxr2IJW8IZd+svUno4N0=";
+    hash = "sha256-6n5WCQ6V63kbWT6b7t9PEFbrJpxEg1WOE9XV70tHnGA=";
   };
 
   nativeBuildInputs = [
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module designed to provide detailed insights into the zip structure of APK files";
+    mainProgram = "apkInspector";
     homepage = "https://github.com/erev0s/apkInspector";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/app-model/default.nix b/nixpkgs/pkgs/development/python-modules/app-model/default.nix
index 014fa13d6e2d..a3af5ba33b86 100644
--- a/nixpkgs/pkgs/development/python-modules/app-model/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/app-model/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "app-model";
-  version = "0.2.4";
+  version = "0.2.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "pyapp-kit";
     repo = "app-model";
     rev = "refs/tags/v${version}";
-    hash = "sha256-idie99ditHJG/6rv97LDaF71iTjjgJyhLiTrbkQmbts=";
+    hash = "sha256-lnsaplJJk+c0hdHyQPH98ssppxBXqj/O0K6xlRfk+Oc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/apprise/default.nix b/nixpkgs/pkgs/development/python-modules/apprise/default.nix
index 4ada8729cba2..0ae5af5730a2 100644
--- a/nixpkgs/pkgs/development/python-modules/apprise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apprise/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "1.7.3";
+  version = "1.7.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MeKmOUB7uNJmJJ/Adf8xfp00/1lRxuFr/u/dwq9f6Ew=";
+    hash = "sha256-716DAFEUDUIop1nFvC1oV7zH+GZN8+RPMPZGF84MenM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/approvaltests/default.nix b/nixpkgs/pkgs/development/python-modules/approvaltests/default.nix
index 6ea222752d11..16b7c1d29dcb 100644
--- a/nixpkgs/pkgs/development/python-modules/approvaltests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/approvaltests/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "approvaltests";
-  version = "11.1.0";
+  version = "11.1.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "approvals";
     repo = "ApprovalTests.Python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-F03qctswG0/y2ZCdHCacHsMiBZFTmEEegYXIIB2UPlc=";
+    hash = "sha256-VM4TP98bS9NmhxZz+YHMJrHKr5g6E6aYidxjKQyXp7k=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix b/nixpkgs/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
index d9cba7737271..a62c3dc8251d 100644
--- a/nixpkgs/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
@@ -75,6 +75,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Vulnerability database and package search for sources such as OSV, NVD, GitHub and npm";
+    mainProgram = "vdb";
     homepage = "https://github.com/appthreat/vulnerability-db";
     changelog = "https://github.com/AppThreat/vulnerability-db/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/apsw/default.nix b/nixpkgs/pkgs/development/python-modules/apsw/default.nix
index aafdf6ac72b2..153b8b3b05dd 100644
--- a/nixpkgs/pkgs/development/python-modules/apsw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apsw/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "apsw";
-  version = "3.44.2.0";
+  version = "3.45.1.0";
   format = "setuptools";
 
   disabled = isPyPy;
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "rogerbinns";
     repo = "apsw";
     rev = "refs/tags/${version}";
-    hash = "sha256-H7aqZHU4SXNrfbv6iwHckkNm5MeGkro42+njSoFJgS4=";
+    hash = "sha256-NkpkciLR2TgfK/7UQHEzvQu8qRj4UJyOlGQbiV23qrc=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aranet4/default.nix b/nixpkgs/pkgs/development/python-modules/aranet4/default.nix
index 49000324ac27..338e53fcb788 100644
--- a/nixpkgs/pkgs/development/python-modules/aranet4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aranet4/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to interact with Aranet4 devices";
+    mainProgram = "aranetctl";
     homepage = "https://github.com/Anrijs/Aranet4-Python";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/arcam-fmj/default.nix b/nixpkgs/pkgs/development/python-modules/arcam-fmj/default.nix
index 7e2d9aa7b92a..b78a7bfac161 100644
--- a/nixpkgs/pkgs/development/python-modules/arcam-fmj/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/arcam-fmj/default.nix
@@ -58,6 +58,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for speaking to Arcam receivers";
+    mainProgram = "arcam-fmj";
     homepage = "https://github.com/elupus/arcam_fmj";
     changelog = "https://github.com/elupus/arcam_fmj/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/archspec/default.nix b/nixpkgs/pkgs/development/python-modules/archspec/default.nix
index a68c7554303e..1ae73f71f325 100644
--- a/nixpkgs/pkgs/development/python-modules/archspec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/archspec/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "archspec";
-  version = "0.2.2";
+  version = "0.2.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     repo = "archspec";
     rev = "refs/tags/v${version}";
     fetchSubmodules = true;
-    hash = "sha256-6+1TiXCBqW8YH/ggZhRcZV/Tyh8Ku3ocwxf9z9KrCZY=";
+    hash = "sha256-Ek+rmgvG6DbtxljAEHVac/JzNI1MaLpPu4G8nhaxzg8=";
   };
 
   nativeBuildInputs = [
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for detecting, labeling, and reasoning about microarchitectures";
+    mainProgram = "archspec";
     homepage = "https://archspec.readthedocs.io/";
     changelog = "https://github.com/archspec/archspec/releases/tag/v${version}";
     license = with licenses; [ mit asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/arelle/default.nix b/nixpkgs/pkgs/development/python-modules/arelle/default.nix
index 0c76a89d7a5c..fbbda611ba50 100644
--- a/nixpkgs/pkgs/development/python-modules/arelle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/arelle/default.nix
@@ -64,6 +64,7 @@ buildPythonPackage rec {
       An open source facility for XBRL, the eXtensible Business Reporting
       Language supporting various standards, exposed through a Python or
       REST API'' + lib.optionalString gui " and a graphical user interface";
+    mainProgram = "arelle";
     homepage = "http://arelle.org/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/python-modules/argcomplete/default.nix b/nixpkgs/pkgs/development/python-modules/argcomplete/default.nix
index 2496934d571b..5b4a4e45ce4c 100644
--- a/nixpkgs/pkgs/development/python-modules/argcomplete/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/argcomplete/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "argcomplete";
-  version = "3.2.1";
+  version = "3.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "kislyuk";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-gOKuFv04Qv9ry7LEKC9zIe7kJvHNFhTBDUrL+zu8AYk=";
+    hash = "sha256-xHUK57Adp3pnzHtFzvjFYb3t1cywRrEeKKXgJJqg10s=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/argh/default.nix b/nixpkgs/pkgs/development/python-modules/argh/default.nix
index 2a0ba451d28a..3097db541754 100644
--- a/nixpkgs/pkgs/development/python-modules/argh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/argh/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "argh";
-  version = "0.30.4";
+  version = "0.31.2";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-n8qOacTa1PjSp7373YCwdURitTUQoD4bXPK0Oofm6WA=";
+    hash = "sha256-2xw0iFgE99RkbDhdwvsZtFKYVhMi9MFerhsTOZP54yM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/argilla/default.nix b/nixpkgs/pkgs/development/python-modules/argilla/default.nix
index 0ccca5417a2e..f4886e311f85 100644
--- a/nixpkgs/pkgs/development/python-modules/argilla/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/argilla/default.nix
@@ -65,7 +65,7 @@
 }:
 let
   pname = "argilla";
-  version = "1.25.0";
+  version = "1.26.0";
   optional-dependencies = {
     server = [
       fastapi
@@ -126,7 +126,7 @@ buildPythonPackage {
     owner = "argilla-io";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-KU67tu14pX1nCRl9k/Na9EqelO3Uz7It1dpFBU2IjZA=";
+    hash = "sha256-+8oN3afbpBQU2tRb2Oq12IlmoCg4O1LUHtt4hl2FOEI=";
   };
 
   pythonRelaxDeps = [
@@ -179,6 +179,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Argilla: the open-source data curation platform for LLMs";
+    mainProgram = "argilla";
     homepage = "https://github.com/argilla-io/argilla";
     changelog = "https://github.com/argilla-io/argilla/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/argostranslate/default.nix b/nixpkgs/pkgs/development/python-modules/argostranslate/default.nix
index 9d958c2e1e9e..57ea8db15a3d 100644
--- a/nixpkgs/pkgs/development/python-modules/argostranslate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/argostranslate/default.nix
@@ -18,13 +18,13 @@ let
 in
 buildPythonPackage rec {
   pname = "argostranslate";
-  version = "1.9.1";
+  version = "1.9.3";
 
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-OlVrRfBhbJpIFjWdLQsn7zEteRP6UfkIpGT4Y933QKk=";
+    sha256 = "sha256-N1Dh8238cDKpIMeQT645lDvYMbOWjVqGuWxt37+TQmQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/aria2p/default.nix b/nixpkgs/pkgs/development/python-modules/aria2p/default.nix
index e505ac015bca..01f81b316952 100644
--- a/nixpkgs/pkgs/development/python-modules/aria2p/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aria2p/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
-, pdm-pep517
+, pdm-backend
 , appdirs
 , loguru
 , requests
@@ -13,6 +13,7 @@
 , pyperclip
 , aria2
 , fastapi
+, psutil
 , pytest-xdist
 , pytestCheckHook
 , responses
@@ -21,19 +22,19 @@
 
 buildPythonPackage rec {
   pname = "aria2p";
-  version = "0.11.2";
+  version = "0.12.0";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "pawamoy";
     repo = pname;
-    rev = version;
-    hash = "sha256-z74ej6J6Yh1aVsXR5fE+XhoCzCS+zfDxQL8gKFd7tBA=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-WlbZP2+qUSyfmeFFiuarXI3VaNZvD9cnOef/WM+J0OE=";
   };
 
   nativeBuildInputs = [
-    pdm-pep517
+    pdm-backend
   ];
 
   propagatedBuildInputs = [
@@ -59,6 +60,7 @@ buildPythonPackage rec {
     pytest-xdist
     pytestCheckHook
     responses
+    psutil
     uvicorn
   ] ++ passthru.optional-dependencies.tui;
 
@@ -67,6 +69,7 @@ buildPythonPackage rec {
     "test_add_downloads_torrents_and_metalinks"
     "test_add_downloads_uris"
     # require a running aria2 server
+    "test_cli_autoclear_commands"
     "test_get_files_method"
     "test_pause_subcommand"
     "test_resume_method"
@@ -78,6 +81,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/pawamoy/aria2p";
     changelog = "https://github.com/pawamoy/aria2p/blob/${src.rev}/CHANGELOG.md";
     description = "Command-line tool and library to interact with an aria2c daemon process with JSON-RPC";
+    mainProgram = "aria2p";
     license = licenses.isc;
     maintainers = with maintainers; [ koral ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/ariadne/default.nix b/nixpkgs/pkgs/development/python-modules/ariadne/default.nix
index 65b65c8643ec..14740b2136c1 100644
--- a/nixpkgs/pkgs/development/python-modules/ariadne/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ariadne/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "ariadne";
-  version = "0.22.0";
+  version = "0.23.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "mirumee";
     repo = "ariadne";
     rev = "refs/tags/${version}";
-    hash = "sha256-GMBtW2gZbF1m0BrKhYEkSaZYt5tIGmP/ipy6WC1H1pg=";
+    hash = "sha256-zdM6LKtrD6m3hWn90yAgsinCvaa86BaTdhgf/VzGDLA=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/art/default.nix b/nixpkgs/pkgs/development/python-modules/art/default.nix
index 2bf6f51cd163..c1fbd475bc07 100644
--- a/nixpkgs/pkgs/development/python-modules/art/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/art/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "ASCII art library for Python";
+    mainProgram = "art";
     homepage = "https://github.com/sepandhaghighi/art";
     changelog = "https://github.com/sepandhaghighi/art/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/arviz/default.nix b/nixpkgs/pkgs/development/python-modules/arviz/default.nix
index edd555a96b16..56298852a377 100644
--- a/nixpkgs/pkgs/development/python-modules/arviz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/arviz/default.nix
@@ -31,7 +31,7 @@
 
 buildPythonPackage rec {
   pname = "arviz";
-  version = "0.17.0";
+  version = "0.17.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     owner = "arviz-devs";
     repo = "arviz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DqVwbiNJHdRxK3Ppfa6sqPJzDqMaj1mtlAJHFq09u2Y=";
+    hash = "sha256-V0/yboKpK/4QuCOzKDiyFpu/J2JLu0aQxRZ+rpMS9eY=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/arxiv2bib/default.nix b/nixpkgs/pkgs/development/python-modules/arxiv2bib/default.nix
index a7a6b83c5667..a60642a11489 100644
--- a/nixpkgs/pkgs/development/python-modules/arxiv2bib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/arxiv2bib/default.nix
@@ -23,6 +23,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Get a BibTeX entry from an arXiv id number, using the arxiv.org API";
+    mainProgram = "arxiv2bib";
     homepage = "http://nathangrigg.github.io/arxiv2bib/";
     license = licenses.bsd3;
     maintainers = [ maintainers.nico202 ];
diff --git a/nixpkgs/pkgs/development/python-modules/asdf-standard/default.nix b/nixpkgs/pkgs/development/python-modules/asdf-standard/default.nix
index 170cefa42e86..63586454746b 100644
--- a/nixpkgs/pkgs/development/python-modules/asdf-standard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asdf-standard/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "asdf-standard";
-  version = "1.0.3";
+  version = "1.1.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "asdf_standard";
     inherit version;
-    hash = "sha256-r9j/mnDnsX9rzGTrkqVEhn1dT+HwB2cZFC/fYrls/UQ=";
+    hash = "sha256-AVNbwrFb/AnsimLUmZ+c8y3EnccWYMhCVkAij9h3YQI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/asdf-transform-schemas/default.nix b/nixpkgs/pkgs/development/python-modules/asdf-transform-schemas/default.nix
index d00e43e756a3..7adc1705569e 100644
--- a/nixpkgs/pkgs/development/python-modules/asdf-transform-schemas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asdf-transform-schemas/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "asdf-transform-schemas";
-  version = "0.4.0";
+  version = "0.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,14 +17,14 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "asdf_transform_schemas";
     inherit version;
-    hash = "sha256-3n/cP+41+5V/wylXh3oOnX3U0uhRvWMaclnxHCvSlMo=";
+    hash = "sha256-gs9MeCV1c0qJUyfyX/WDzpSZ1+K4Nv6IgLLXlhxrRis=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     asdf-standard
   ] ++ lib.optionals (pythonOlder "3.9") [
     importlib-resources
diff --git a/nixpkgs/pkgs/development/python-modules/asf-search/default.nix b/nixpkgs/pkgs/development/python-modules/asf-search/default.nix
index 56e2e7fe8991..e454101b2512 100644
--- a/nixpkgs/pkgs/development/python-modules/asf-search/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asf-search/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "asf-search";
-  version = "7.0.4";
+  version = "7.0.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "asfadmin";
     repo = "Discovery-asf_search";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eq8VKML50TfOnHZFXr+Ht7FUMm+NHJOksKvv3uMcq3g=";
+    hash = "sha256-4DqZGDg9VZsBWaVb3WpAegZVW1lk/5f9AR5Gxgik1gQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/asks/default.nix b/nixpkgs/pkgs/development/python-modules/asks/default.nix
index 8be9a9b21160..86c024f0e12d 100644
--- a/nixpkgs/pkgs/development/python-modules/asks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asks/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, pythonAtLeast
 , pythonOlder
 , fetchFromGitHub
 , anyio
@@ -39,6 +40,12 @@ buildPythonPackage rec {
     trio
   ];
 
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [
+    # stuck in threading waiter.acquire()
+    "test_https_get"
+    "test_https_get_checks_cert"
+  ];
+
   pythonImportsCheck = [ "asks" ];
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/asn1ate/default.nix b/nixpkgs/pkgs/development/python-modules/asn1ate/default.nix
index 90ccd0c6f1a2..fbad415431dc 100644
--- a/nixpkgs/pkgs/development/python-modules/asn1ate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asn1ate/default.nix
@@ -16,6 +16,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for translating ASN.1 into other forms";
+    mainProgram = "asn1ate";
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ leenaars ];
diff --git a/nixpkgs/pkgs/development/python-modules/asn1tools/default.nix b/nixpkgs/pkgs/development/python-modules/asn1tools/default.nix
index 5083b20f3b33..b339739afcab 100644
--- a/nixpkgs/pkgs/development/python-modules/asn1tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asn1tools/default.nix
@@ -60,6 +60,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "ASN.1 parsing, encoding and decoding";
+    mainProgram = "asn1tools";
     homepage = "https://github.com/eerimoq/asn1tools";
     changelog = "https://github.com/eerimoq/asn1tools/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/astroid/default.nix b/nixpkgs/pkgs/development/python-modules/astroid/default.nix
index fd0812139e3c..d0b3fe60160a 100644
--- a/nixpkgs/pkgs/development/python-modules/astroid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astroid/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "astroid";
-  version = "3.0.2"; # Check whether the version is compatible with pylint
+  version = "3.1.0"; # Check whether the version is compatible with pylint
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = "astroid";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KTmFJKlymI1ACWk3UhbkZF/dB9W8/h6kaAfKLL3yiCA=";
+    hash = "sha256-+cTQHbqoucaNi7rPoyH6Cu07vZMS8KWn5C/A3NXRSwE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/astropy-iers-data/default.nix b/nixpkgs/pkgs/development/python-modules/astropy-iers-data/default.nix
index 4089c6bc6cce..4eab03562468 100644
--- a/nixpkgs/pkgs/development/python-modules/astropy-iers-data/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astropy-iers-data/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "astropy-iers-data";
-  version = "0.2023.12.04.00.30.20";
+  version = "0.2024.03.04.00.30.17";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "astropy";
     repo = "astropy-iers-data";
     rev = "refs/tags/v${version}";
-    hash = "sha256-r4YCBeAyqzwQghLK56d+nJ/TkoSIHmtiW5Gi5xXM2QM=";
+    hash = "sha256-BG5hQHvPqpuV2TUsD/kZv3DKx+wjods/XgZw1Z5hygg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/astropy/default.nix b/nixpkgs/pkgs/development/python-modules/astropy/default.nix
index 4814e1e70c40..d770eb196a28 100644
--- a/nixpkgs/pkgs/development/python-modules/astropy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astropy/default.nix
@@ -72,6 +72,16 @@ buildPythonPackage rec {
     # May fail due to parallelism, see:
     # https://github.com/astropy/astropy/issues/15441
     "TestUnifiedOutputRegistry"
+
+    # fail due to pytest>=8
+    # https://github.com/astropy/astropy/issues/15960#issuecomment-1913654471
+    "test_distortion_header"
+
+    # flaky
+    "test_timedelta_conversion"
+    # More flaky tests, see: https://github.com/NixOS/nixpkgs/issues/294392
+    "test_sidereal_lon_independent"
+    "test_timedelta_full_precision_arithmetic"
   ];
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/asyauth/default.nix b/nixpkgs/pkgs/development/python-modules/asyauth/default.nix
index 0e2da16189be..3421902ff830 100644
--- a/nixpkgs/pkgs/development/python-modules/asyauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asyauth/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "asyauth";
-  version = "0.0.18";
+  version = "0.0.20";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-t2AolP0GZ88b0+FqHXHIP1V6TIV61Bvd8wVXpZZltK0=";
+    hash = "sha256-QQVgIPdonPXwpVl1nH8Cps4nGb2oTfeDvRBY1XgeUUs=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix b/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix
index fc4ee957d278..4cb8e0bbbbb9 100644
--- a/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix
@@ -85,6 +85,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Asyncio UPnP Client library for Python";
+    mainProgram = "upnp-client";
     homepage = "https://github.com/StevenLooman/async_upnp_client";
     changelog = "https://github.com/StevenLooman/async_upnp_client/blob/${version}/CHANGES.rst";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/asyncpg/default.nix b/nixpkgs/pkgs/development/python-modules/asyncpg/default.nix
index 88591af61bbd..dce3a9ba0642 100644
--- a/nixpkgs/pkgs/development/python-modules/asyncpg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asyncpg/default.nix
@@ -1,6 +1,7 @@
 { lib
 , fetchPypi
 , buildPythonPackage
+, async-timeout
 , uvloop
 , postgresql
 , pythonOlder
@@ -13,7 +14,7 @@ buildPythonPackage rec {
   version = "0.29.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
@@ -23,6 +24,12 @@ buildPythonPackage rec {
   # sandboxing issues on aarch64-darwin, see https://github.com/NixOS/nixpkgs/issues/198495
   doCheck = postgresql.doCheck;
 
+  # required for compatibility with Python versions older than 3.11
+  # see https://github.com/MagicStack/asyncpg/blob/v0.29.0/asyncpg/_asyncio_compat.py#L13
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [
+    async-timeout
+  ];
+
   nativeCheckInputs = [
     uvloop
     postgresql
diff --git a/nixpkgs/pkgs/development/python-modules/asysocks/default.nix b/nixpkgs/pkgs/development/python-modules/asysocks/default.nix
index b28315a44e8c..cad72c813aec 100644
--- a/nixpkgs/pkgs/development/python-modules/asysocks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asysocks/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "asysocks";
-  version = "0.2.11";
+  version = "0.2.12";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Fwm898mU7wvH5OkYVUrw3rL4VT5yyvoHxVtfcuL+4bQ=";
+    hash = "sha256-uilvJjuZrvdC2m4zhXCkbzLjwtbC1liWEZ20Ya7FYJ0=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/atenpdu/default.nix b/nixpkgs/pkgs/development/python-modules/atenpdu/default.nix
index f29936d3174a..25c114debd40 100644
--- a/nixpkgs/pkgs/development/python-modules/atenpdu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atenpdu/default.nix
@@ -2,28 +2,33 @@
 , buildPythonPackage
 , fetchPypi
 , async-timeout
-, pysnmplib
+, pysnmp-lextudio
 , pythonOlder
+, poetry-core
 }:
 
 buildPythonPackage rec {
   pname = "atenpdu";
-  version = "0.6.1";
-  format = "setuptools";
+  version = "0.6.2";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Of7tQJNqaLDgO8nie6rSd1saMbauXJBp8vWfXYAziEE=";
+    hash = "sha256-KzRoE4tE/tQkKYroq5PbWKREmEl8AwbIOg3IHRZZtsQ=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
     async-timeout
-    pysnmplib
+    pysnmp-lextudio
   ];
 
-  # Project has no test
+  # Module has no test
   doCheck = false;
 
   pythonImportsCheck = [
@@ -32,7 +37,9 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python interface to control ATEN PE PDUs";
+    mainProgram = "pductl";
     homepage = "https://github.com/mtdcr/pductl";
+    changelog = "https://github.com/mtdcr/pductl/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix b/nixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix
index 45f61e63c10c..c4c9f85cf3f2 100644
--- a/nixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix
@@ -1,9 +1,13 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, beautifulsoup4
 , deprecated
+, jmespath
+, lxml
 , oauthlib
 , requests
+, requests-kerberos
 , requests-oauthlib
 , six
 , pytestCheckHook
@@ -12,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "atlassian-python-api";
-  version = "3.41.3";
+  version = "3.41.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,13 +25,17 @@ buildPythonPackage rec {
     owner = "atlassian-api";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-MIzBuIeQfAVlllaU02htx1eufRlpe+V9Kzo+EFF45ME=";
+    hash = "sha256-yQqy+pFl5TK4CEUM+vpwl+pkUjBuc0xvqC9o1ZC5m7c=";
   };
 
   propagatedBuildInputs = [
+    beautifulsoup4
     deprecated
+    jmespath
+    lxml
     oauthlib
     requests
+    requests-kerberos
     requests-oauthlib
     six
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/atpublic/default.nix b/nixpkgs/pkgs/development/python-modules/atpublic/default.nix
index 20fc37d45999..41cbe28b8a26 100644
--- a/nixpkgs/pkgs/development/python-modules/atpublic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atpublic/default.nix
@@ -33,6 +33,11 @@ buildPythonPackage rec {
     sybil
   ];
 
+  pytestFlagsArray = [
+    # TypeError: FixtureManager.getfixtureclosure() missing 1 required positional argument: 'ignore_args'
+    "--ignore=docs/using.rst"
+  ];
+
   postPatch = ''
     sed -i '/cov=public/d' pyproject.toml
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/atsim-potentials/default.nix b/nixpkgs/pkgs/development/python-modules/atsim-potentials/default.nix
index 4a3c75966dc3..b06ef867c21f 100644
--- a/nixpkgs/pkgs/development/python-modules/atsim-potentials/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atsim-potentials/default.nix
@@ -57,6 +57,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/mjdrushton/atsim-potentials";
     description = "Provides tools for working with pair and embedded atom method potential models including tabulation routines for DL_POLY and LAMMPS";
+    mainProgram = "potable";
     license = licenses.mit;
     maintainers = [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/attrs/default.nix b/nixpkgs/pkgs/development/python-modules/attrs/default.nix
index a298dc36f507..8e46432b810f 100644
--- a/nixpkgs/pkgs/development/python-modules/attrs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/attrs/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "attrs";
-  version = "23.1.0";
+  version = "23.2.0";
   disabled = pythonOlder "3.7";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-YnmDbVgVE6JvG/I1+azTM7yRFWg/FPfo+uRsmPxQ4BU=";
+    hash = "sha256-k13DtSnCYvbPduUId9NaS9PB3hlP1B9HoreujxmXHzA=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/attrs/remove-hatch-plugins.patch b/nixpkgs/pkgs/development/python-modules/attrs/remove-hatch-plugins.patch
index 7d7b83a366e0..cf743ba9ee05 100644
--- a/nixpkgs/pkgs/development/python-modules/attrs/remove-hatch-plugins.patch
+++ b/nixpkgs/pkgs/development/python-modules/attrs/remove-hatch-plugins.patch
@@ -1,18 +1,18 @@
 diff --git a/pyproject.toml b/pyproject.toml
-index fb8fae3..998211f 100644
+index 1c72fc2..ae45740 100644
 --- a/pyproject.toml
 +++ b/pyproject.toml
 @@ -1,7 +1,7 @@
  # SPDX-License-Identifier: MIT
  
  [build-system]
--requires = ["hatchling", "hatch-vcs", "hatch-fancy-pypi-readme"]
+-requires = ["hatchling", "hatch-vcs", "hatch-fancy-pypi-readme>=23.2.0"]
 +requires = ["hatchling"]
  build-backend = "hatchling.build"
  
  
 @@ -26,7 +26,8 @@ classifiers = [
-     "Typing :: Typed",
+   "Typing :: Typed",
  ]
  dependencies = ["importlib_metadata;python_version<'3.8'"]
 -dynamic = ["version", "readme"]
@@ -20,12 +20,11 @@ index fb8fae3..998211f 100644
 +version = "@version@"
  
  [project.optional-dependencies]
- tests-no-zope = [
-@@ -67,50 +68,9 @@ Changelog = "https://www.attrs.org/en/stable/changelog.html"
- Funding = "https://github.com/sponsors/hynek"
+ tests-mypy = [
+@@ -70,54 +71,9 @@ Funding = "https://github.com/sponsors/hynek"
  Tidelift = "https://tidelift.com/subscription/pkg/pypi-attrs?utm_source=pypi-attrs&utm_medium=pypi"
  
--
+ 
 -[tool.hatch.version]
 -source = "vcs"
 -raw-options = { local_scheme = "no-local-version" }
@@ -68,7 +67,12 @@ index fb8fae3..998211f 100644
 -[Full changelog](https://www.attrs.org/en/stable/changelog.html)
 -"""
 -
+-# Point sponsor image URLs to versions.
+-[[tool.hatch.metadata.hooks.fancy-pypi-readme.substitutions]]
+-pattern = '\/latest\/_static/sponsors'
+-replacement = '/$HFPR_VERSION/_static/sponsors'
+-
 -
- # Make coverage play nicely with pytest-xdist.
- [tool.hatch.build.targets.wheel.hooks.autorun]
- dependencies = ["hatch-autorun"]
+ [tool.pytest.ini_options]
+ addopts = ["-ra", "--strict-markers", "--strict-config"]
+ xfail_strict = true
diff --git a/nixpkgs/pkgs/development/python-modules/audible/default.nix b/nixpkgs/pkgs/development/python-modules/audible/default.nix
index bd82dabbc83f..63b8e605086e 100644
--- a/nixpkgs/pkgs/development/python-modules/audible/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/audible/default.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A(Sync) Interface for internal Audible API written in pure Python";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     homepage = "https://github.com/mkb79/Audible";
     maintainers = with maintainers; [ jvanbruegge ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/auditok/default.nix b/nixpkgs/pkgs/development/python-modules/auditok/default.nix
index 459662df15d5..2ec68b11157b 100644
--- a/nixpkgs/pkgs/development/python-modules/auditok/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/auditok/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Audio Activity Detection tool that can process online data as well as audio files";
+    mainProgram = "auditok";
     homepage = "https://github.com/amsehili/auditok/";
     changelog = "https://github.com/amsehili/auditok/blob/v${version}/CHANGELOG";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix b/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
index 7f0540b6d096..217f76a1f49c 100644
--- a/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "auth0-python";
-  version = "4.7.0";
+  version = "4.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "auth0";
     repo = "auth0-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-Z89T0HXB66MZTYNKSK8fHunUBFuI1wT5jcy+P3+9tIk=";
+    hash = "sha256-udtrvAr8wfg1DbNbBEjA/tlrYhIiXtTFqi4bZCuKI0Q=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/authcaptureproxy/default.nix b/nixpkgs/pkgs/development/python-modules/authcaptureproxy/default.nix
index 3b65404bde72..7f0159f96bca 100644
--- a/nixpkgs/pkgs/development/python-modules/authcaptureproxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/authcaptureproxy/default.nix
@@ -61,6 +61,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/alandtse/auth_capture_proxy/releases/tag/v${version}";
     description = "A proxy to capture authentication information from a webpage";
+    mainProgram = "auth_capture_proxy";
     homepage = "https://github.com/alandtse/auth_capture_proxy";
     license = licenses.asl20;
     maintainers = with maintainers; [ graham33 hexa ];
diff --git a/nixpkgs/pkgs/development/python-modules/authheaders/default.nix b/nixpkgs/pkgs/development/python-modules/authheaders/default.nix
index 6762e4b3ad7a..3f73af498036 100644
--- a/nixpkgs/pkgs/development/python-modules/authheaders/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/authheaders/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for the generation of email authentication headers";
+    mainProgram = "dmarc-policy-find";
     homepage = "https://github.com/ValiMail/authentication-headers";
     changelog = "https://github.com/ValiMail/authentication-headers/blob${version}/CHANGES";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/autofaiss/default.nix b/nixpkgs/pkgs/development/python-modules/autofaiss/default.nix
index 0f6ab7dda159..af5bbbebbb7d 100644
--- a/nixpkgs/pkgs/development/python-modules/autofaiss/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/autofaiss/default.nix
@@ -71,6 +71,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Automatically create Faiss knn indices with the most optimal similarity search parameters";
+    mainProgram = "autofaiss";
     homepage = "https://github.com/criteo/autofaiss";
     changelog = "https://github.com/criteo/autofaiss/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/autoflake/default.nix b/nixpkgs/pkgs/development/python-modules/autoflake/default.nix
index 64d429629276..1fc68b92f94b 100644
--- a/nixpkgs/pkgs/development/python-modules/autoflake/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/autoflake/default.nix
@@ -9,12 +9,12 @@
 }:
 buildPythonPackage rec {
   pname = "autoflake";
-  version = "2.3.0";
+  version = "2.3.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jCAR+jRwG519zwW5hzvEhZ1Pzk5i3+qQ3/79FXb18B0=";
+    hash = "sha256-yYt13FsKhkWcTwGh0yrH60M47EMXpEaVFf8eaH7NkJ4=";
   };
 
   nativeBuildInputs = [
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool to remove unused imports and unused variables";
+    mainProgram = "autoflake";
     homepage = "https://github.com/myint/autoflake";
     license = licenses.mit;
     maintainers = with maintainers; [ yuriaisaka ];
diff --git a/nixpkgs/pkgs/development/python-modules/autoit-ripper/default.nix b/nixpkgs/pkgs/development/python-modules/autoit-ripper/default.nix
index 5b926c18c3c2..3a4f3f059fc9 100644
--- a/nixpkgs/pkgs/development/python-modules/autoit-ripper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/autoit-ripper/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to extract AutoIt scripts embedded in PE binaries";
+    mainProgram = "autoit-ripper";
     homepage = "https://github.com/nazywam/AutoIt-Ripper";
     changelog = "https://github.com/nazywam/AutoIt-Ripper/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/autologging/default.nix b/nixpkgs/pkgs/development/python-modules/autologging/default.nix
index 1b3a7d652185..46adfc6195ac 100644
--- a/nixpkgs/pkgs/development/python-modules/autologging/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/autologging/default.nix
@@ -1,11 +1,12 @@
 { lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
-  pname = "Autologging";
+  pname = "autologging";
   version = "1.3.2";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "Autologging";
+    inherit version;
     sha256 = "117659584d8aab8cf62046f682f8e57b54d958b8571c737fa8bf15c32937fbb6";
     extension = "zip";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/automat/default.nix b/nixpkgs/pkgs/development/python-modules/automat/default.nix
index 6979c01b5960..e69a30257f1c 100644
--- a/nixpkgs/pkgs/development/python-modules/automat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/automat/default.nix
@@ -43,6 +43,7 @@ let automat = buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/glyph/Automat";
     description = "Self-service finite-state machines for the programmer on the go";
+    mainProgram = "automat-visualize";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/av/default.nix b/nixpkgs/pkgs/development/python-modules/av/default.nix
index 605fb0c66df3..b57472867005 100644
--- a/nixpkgs/pkgs/development/python-modules/av/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/av/default.nix
@@ -131,6 +131,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Pythonic bindings for FFmpeg/Libav";
+    mainProgram = "pyav";
     homepage = "https://github.com/mikeboers/PyAV/";
     changelog = "https://github.com/PyAV-Org/PyAV/blob/v${version}/CHANGELOG.rst";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix b/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix
index 7c65fd4fc0f6..114ff98326f8 100644
--- a/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix
@@ -16,6 +16,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A serialization and RPC framework";
+    mainProgram = "avro";
     homepage = "https://pypi.python.org/pypi/avro-python3/";
     license = licenses.asl20;
 
diff --git a/nixpkgs/pkgs/development/python-modules/avro/default.nix b/nixpkgs/pkgs/development/python-modules/avro/default.nix
index 4158600e182f..b023936e4314 100644
--- a/nixpkgs/pkgs/development/python-modules/avro/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/avro/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python serialization and RPC framework";
+    mainProgram = "avro";
     homepage = "https://github.com/apache/avro";
     changelog = "https://github.com/apache/avro/releases/tag/release-${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/avro3k/default.nix b/nixpkgs/pkgs/development/python-modules/avro3k/default.nix
index a9a60652b195..43a61d6d0220 100644
--- a/nixpkgs/pkgs/development/python-modules/avro3k/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/avro3k/default.nix
@@ -21,6 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A serialization and RPC framework";
+    mainProgram = "avro";
     homepage = "https://pypi.python.org/pypi/avro3k/";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/aw-client/default.nix b/nixpkgs/pkgs/development/python-modules/aw-client/default.nix
index c856d384d8f1..c08ea790059c 100644
--- a/nixpkgs/pkgs/development/python-modules/aw-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aw-client/default.nix
@@ -63,6 +63,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Client library for ActivityWatch";
+    mainProgram = "aw-client";
     homepage = "https://github.com/ActivityWatch/aw-client";
     maintainers = with maintainers; [ huantian ];
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/aw-core/default.nix b/nixpkgs/pkgs/development/python-modules/aw-core/default.nix
index 61ea5bbfaf09..290c2650a015 100644
--- a/nixpkgs/pkgs/development/python-modules/aw-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aw-core/default.nix
@@ -72,6 +72,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Core library for ActivityWatch";
+    mainProgram = "aw-cli";
     homepage = "https://github.com/ActivityWatch/aw-core";
     maintainers = with maintainers; [ huantian ];
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix b/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix
index 2397b2462579..0c67f2ce4bce 100644
--- a/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix
@@ -67,6 +67,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Command line tool to ease AWS CLI authentication against ADFS";
+    mainProgram = "aws-adfs";
     homepage = "https://github.com/venth/aws-adfs";
     changelog = "https://github.com/venth/aws-adfs/releases/tag/v${version}";
     license = licenses.psfl;
diff --git a/nixpkgs/pkgs/development/python-modules/aws-encryption-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/aws-encryption-sdk/default.nix
index 7cdcc917c8a8..c525d79e4b6d 100644
--- a/nixpkgs/pkgs/development/python-modules/aws-encryption-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aws-encryption-sdk/default.nix
@@ -7,7 +7,6 @@
 , mock
 , pytest-mock
 , pytestCheckHook
-, pythonAtLeast
 , pythonOlder
 , setuptools
 , wrapt
@@ -15,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "aws-encryption-sdk";
-  version = "3.1.1";
+  version = "3.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jV+/AY/GjWscrL5N0Df9gFKWx3Nqn+RX62hNBT9/lWM=";
+    hash = "sha256-QwT8+M4qo/qYsaz/ejvzzQUowynAxDe1Xg9Fa79iNH4=";
   };
 
   nativeBuildInputs = [
@@ -42,15 +41,18 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   disabledTestPaths = [
     # Tests require networking
     "examples"
     "test/integration"
   ];
 
-  disabledTests = lib.optionals (pythonAtLeast "3.12") [
-    # AssertionError: Regex pattern did not match, https://github.com/aws/aws-encryption-sdk-python/issues/644
-    "test_abstracts"
+  pythonImportsCheck = [
+    "aws_encryption_sdk"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/aws-lambda-builders/default.nix b/nixpkgs/pkgs/development/python-modules/aws-lambda-builders/default.nix
index e944cccb5be0..1119435b48c2 100644
--- a/nixpkgs/pkgs/development/python-modules/aws-lambda-builders/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aws-lambda-builders/default.nix
@@ -7,29 +7,34 @@
 , pyelftools
 , pytestCheckHook
 , pythonOlder
+, setuptools
 , six
 }:
 
 buildPythonPackage rec {
   pname = "aws-lambda-builders";
-  version = "1.45.0";
-  format = "setuptools";
+  version = "1.47.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-lambda-builders";
     rev = "refs/tags/v${version}";
-    hash = "sha256-TmU7neEnHaRuGNzK9VuXUiEayBLZaPqjrnPLvBOQj5g=";
+    hash = "sha256-hfvqK27yxk/y67gz0N6VuFj8OR3cQMD4iYQtx1XJSgw=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "version=read_version()," 'version="${version}",'
+      --replace-fail "version=read_version()," 'version="${version}",'
   '';
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     six
   ];
 
@@ -57,17 +62,24 @@ buildPythonPackage rec {
     "TestPythonPipWorkflow"
     "TestRubyWorkflow"
     "TestRustCargo"
+    "test_with_mocks"
     # Tests which are passing locally but not on Hydra
     "test_copy_dependencies_action_1_multiple_files"
     "test_move_dependencies_action_1_multiple_files"
   ];
 
+  disabledTestPaths = [
+    # Dotnet binary needed
+    "tests/integration/workflows/dotnet_clipackage/test_dotnet.py"
+  ];
+
   pythonImportsCheck = [
     "aws_lambda_builders"
   ];
 
   meta = with lib; {
     description = "Tool to compile, build and package AWS Lambda functions";
+    mainProgram = "lambda-builders";
     homepage = "https://github.com/awslabs/aws-lambda-builders";
     changelog = "https://github.com/aws/aws-lambda-builders/releases/tag/v${version}";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/aws-sam-translator/default.nix b/nixpkgs/pkgs/development/python-modules/aws-sam-translator/default.nix
index 9fad12faaac4..872adf822768 100644
--- a/nixpkgs/pkgs/development/python-modules/aws-sam-translator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aws-sam-translator/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aws-sam-translator";
-  version = "1.82.0";
+  version = "1.86.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "serverless-application-model";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xAbFF4bKHFv5YAOlMA28lW1Xc37xV83X4r19MdubvFs=";
+    hash = "sha256-elirU6u6smuYIj8oO6s2ybQB8Tu0pJPkBdjd0W0CfFE=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/aws-xray-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/aws-xray-sdk/default.nix
index 53e69baa9182..43d59437330b 100644
--- a/nixpkgs/pkgs/development/python-modules/aws-xray-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aws-xray-sdk/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "aws-xray-sdk";
-  version = "2.12.1";
+  version = "2.13.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "aws-xray-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-NLFNst4Yqsz2u5IXwe8OdJPW77irLRO5tWWn1uV3tMg=";
+    hash = "sha256-KhYYzeOteQxS1ltEUbjsDriHXO0Kom9YiCvVhSNvXVQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/awslambdaric/default.nix b/nixpkgs/pkgs/development/python-modules/awslambdaric/default.nix
index 788148d5e441..75e8897a7144 100644
--- a/nixpkgs/pkgs/development/python-modules/awslambdaric/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awslambdaric/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "awslambdaric";
-  version = "2.0.8";
+  version = "2.0.10";
   pyproject = true;
 
   disabled = isPy27;
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "aws-lambda-python-runtime-interface-client";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-0ej+Gy9nF96SaGhohHF9EJObSpHdxIe9QXHNHejVwbQ=";
+    sha256 = "sha256-tvTN6gV73Qnbe4OBHtfxt4jXV32fMTPE4H79WIkgkxE=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/awswrangler/default.nix b/nixpkgs/pkgs/development/python-modules/awswrangler/default.nix
index 274b88a9811b..7cd356214d56 100644
--- a/nixpkgs/pkgs/development/python-modules/awswrangler/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awswrangler/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "awswrangler";
-  version = "3.5.2";
+  version = "3.7.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "aws-sdk-pandas";
     rev = "refs/tags/${version}";
-    hash = "sha256-lIEitS/pyOq4RjyUqPzfKOcNtAIWp14sQcLfQ1FwEoE=";
+    hash = "sha256-6HocnnPG/Id+49NN3WqnSYEnsijA2r13WM2NJIxVwFs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ax/default.nix b/nixpkgs/pkgs/development/python-modules/ax/default.nix
index a0315a561fba..f0bba36c3c2f 100644
--- a/nixpkgs/pkgs/development/python-modules/ax/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ax/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "ax";
-  version = "0.3.6";
+  version = "0.3.7";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = pname;
-    rev = version;
-    hash = "sha256-5f2VpOFDRz6YzxvxFYWMu8hljkMVbBsyULYVreUxYRU=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-UOX8Q7F5c9J1KSfQUy8aoL5CNb9YmEI4X7Fd5B16UqQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/axis/default.nix b/nixpkgs/pkgs/development/python-modules/axis/default.nix
index 34c0911f3ee5..4f9e456de6aa 100644
--- a/nixpkgs/pkgs/development/python-modules/axis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/axis/default.nix
@@ -7,24 +7,35 @@
 , orjson
 , packaging
 , pythonOlder
+, setuptools
 , xmltodict
 }:
 
 buildPythonPackage rec {
   pname = "axis";
-  version = "50";
-  format = "setuptools";
+  version = "58";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.11";
 
   src = fetchFromGitHub {
     owner = "Kane610";
-    repo = pname;
+    repo = "axis";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Zu8hT6t7ZxlgXQKb2o20FpB15n9y/+n1qMctzcRP8F8=";
+    hash = "sha256-6Mxthf37PtJSWsi+Ok0zBezTJLPwVoc8S1ZdQE57BEI=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "setuptools==68.0.0" "setuptools" \
+      --replace-fail "wheel==0.40.0" "wheel"
+  '';
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     async-timeout
     attrs
     httpx
@@ -42,6 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for communicating with devices from Axis Communications";
+    mainProgram = "axis";
     homepage = "https://github.com/Kane610/axis";
     changelog = "https://github.com/Kane610/axis/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/axisregistry/default.nix b/nixpkgs/pkgs/development/python-modules/axisregistry/default.nix
index 7c87679a9a06..510b87474d9a 100644
--- a/nixpkgs/pkgs/development/python-modules/axisregistry/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/axisregistry/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "axisregistry";
-  version = "0.4.5";
+  version = "0.4.9";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-elQUcl6Zh/3xXLduFKbiXZ6uQsDE8C6M3QnTEwaJlaA=";
+    hash = "sha256-obpjiX86fzokao7UWQUXgarKYRNdxplr6/r2D2d7DCI=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix b/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix
index a3588cbe9874..91c140dc7fb8 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-eventgrid/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "azure-eventgrid";
-  version = "4.17.0";
+  version = "4.18.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6/bqxCAvewKR5lI6ulFpP3THu9DH1rDEFwsRynDJ6+k=";
+    hash = "sha256-OQ6Aet78NorIz1TlPdv5pW5ImDINLwH+ZQCk52Y+tJM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-batch/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-batch/default.nix
index 189aa05c8056..64cfffff110a 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-batch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-batch/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-batch";
-  version = "17.2.0";
+  version = "17.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ihXjijfW5OzilXPegIxaiSdsmfJSDqHzUrhqcEyJhY0=";
+    hash = "sha256-/JSIGmrNuKlTPzcbb3stPq6heJ65VQFLJKkI1t/nWZE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix
index 7c6c6b7ff7da..c4c4582a0f6d 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-compute";
-  version = "30.5.0";
+  version = "30.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7T6jS3mdsNUu5V4vGrSw8J+koI814GHsuarZ+1ohiEQ=";
+    hash = "sha256-TYDXI+xtTLlYNhfr7AcW59dLJzKsuu0CPtLjzHBT0A4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
index 748f1423e59e..7f760eecf397 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-datafactory";
-  version = "6.0.0";
+  version = "6.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0B+K8u9M/z3edwlc8LNR8DeqV9y6vIVCmevoUIWN0YM=";
+    hash = "sha256-9WMsfVh9ca/nbbTPVuj1BwhIv6kGZlPbTzqzhvadBps=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix b/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix
index 562340f93e4d..a1c8031f0fa3 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-servicebus/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "azure-servicebus";
-  version = "7.11.4";
+  version = "7.12.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-970pd5G2pXfONqOeoKuxCqD4dba7DTFSLtntK7AojUw=";
+    hash = "sha256-Xr5KU7/BAw9AH2lOrB7NJ8FB2ATl5vzyNXQrLWKUbks=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix b/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix
index dfca02bc5b3f..3fd78981d046 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "azure-storage-blob";
-  version = "12.19.0";
+  version = "12.19.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JsCkMgo0o8Kht0UoumgS68tjKgTNZ7HHN3IyxLAaWJc=";
+    hash = "sha256-E+FrpC/FSsLH6Pl2BiFzpcgrnsBZRyjhNKrDcpZaEbA=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/b2sdk/default.nix b/nixpkgs/pkgs/development/python-modules/b2sdk/default.nix
index 0ff6214bf5b5..a6a805fd33ad 100644
--- a/nixpkgs/pkgs/development/python-modules/b2sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/b2sdk/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , glibcLocales
 , importlib-metadata
 , logfury
@@ -10,28 +10,34 @@
 , pytest-lazy-fixture
 , pytest-mock
 , pythonOlder
+, pythonRelaxDepsHook
+, pdm-backend
 , requests
-, setuptools
-, setuptools-scm
 , tqdm
 , typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "b2sdk";
-  version = "1.29.1";
+  version = "1.32.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-Talw1P0JnPdU+dDgC8J2TJSOV/LshgQyBbPYEqzKpfA=";
+  src = fetchFromGitHub {
+    owner = "Backblaze";
+    repo = "b2-sdk-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-xBLMvH51zbrSuBOtMxLeQJt7Wv31OcxBbD72EuLHzuU=";
   };
 
   nativeBuildInputs = [
-    setuptools
-    setuptools-scm
+    pdm-backend
+    pythonRelaxDepsHook
+  ];
+
+  pythonRemoveDeps = [
+    "setuptools"
   ];
 
   propagatedBuildInputs = [
@@ -53,11 +59,6 @@ buildPythonPackage rec {
     glibcLocales
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace 'setuptools_scm<6.0' 'setuptools_scm'
-  '';
-
   disabledTestPaths = [
     # requires aws s3 auth
     "test/integration/test_download.py"
diff --git a/nixpkgs/pkgs/development/python-modules/babel/default.nix b/nixpkgs/pkgs/development/python-modules/babel/default.nix
index 97dfc7a1daf2..2e2a1a66eb48 100644
--- a/nixpkgs/pkgs/development/python-modules/babel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/babel/default.nix
@@ -58,6 +58,7 @@ buildPythonPackage rec {
     homepage = "https://babel.pocoo.org/";
     changelog = "https://github.com/python-babel/babel/releases/tag/v${version}";
     description = "Collection of internationalizing tools";
+    mainProgram = "pybabel";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/babelfont/default.nix b/nixpkgs/pkgs/development/python-modules/babelfont/default.nix
index 575c74a17be9..8afa32c50053 100644
--- a/nixpkgs/pkgs/development/python-modules/babelfont/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/babelfont/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library to load, examine, and save fonts in a variety of formats";
+    mainProgram = "babelfont";
     homepage = "https://github.com/simoncozens/babelfont";
     license = licenses.bsd3;
     maintainers = with maintainers; [ danc86 ];
diff --git a/nixpkgs/pkgs/development/python-modules/bagit/default.nix b/nixpkgs/pkgs/development/python-modules/bagit/default.nix
index 0a07c39482db..abc9fdb1661f 100644
--- a/nixpkgs/pkgs/development/python-modules/bagit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bagit/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library and command line utility for working with BagIt style packages";
+    mainProgram = "bagit.py";
     homepage = "https://libraryofcongress.github.io/bagit-python/";
     license = with licenses; [ publicDomain ];
     maintainers = with maintainers; [ veprbl ];
diff --git a/nixpkgs/pkgs/development/python-modules/bandit/default.nix b/nixpkgs/pkgs/development/python-modules/bandit/default.nix
index f2f30079954d..e309643e8c6e 100644
--- a/nixpkgs/pkgs/development/python-modules/bandit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bandit/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy3k
 , pythonOlder
 , gitpython
 , pbr
@@ -12,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "bandit";
-  version = "1.7.7";
-  format = "setuptools";
+  version = "1.7.8";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UnkGvsYIjLSZquMbyWKGS053Vp6dUp7lHfOpO0uKsoo=";
+    hash = "sha256-Nt5Q9yCFarJKJNuqX+4sZgUO2XwUd+ChFZ3qsXdeq2s=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/barectf/default.nix b/nixpkgs/pkgs/development/python-modules/barectf/default.nix
index d2083c08fa60..9875cdf0ac1c 100644
--- a/nixpkgs/pkgs/development/python-modules/barectf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/barectf/default.nix
@@ -50,8 +50,13 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   meta = with lib; {
     description = "Generator of ANSI C tracers which output CTF data streams ";
+    mainProgram = "barectf";
     homepage = "https://github.com/efficios/barectf";
     license = licenses.mit;
     maintainers = with maintainers; [ Madouura ];
diff --git a/nixpkgs/pkgs/development/python-modules/base58/default.nix b/nixpkgs/pkgs/development/python-modules/base58/default.nix
index 9a4d30f6149a..020f103851cb 100644
--- a/nixpkgs/pkgs/development/python-modules/base58/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/base58/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Base58 and Base58Check implementation";
+    mainProgram = "base58";
     homepage = "https://github.com/keis/base58";
     license = licenses.mit;
     maintainers = with maintainers; [ nyanloutre ];
diff --git a/nixpkgs/pkgs/development/python-modules/baseline/default.nix b/nixpkgs/pkgs/development/python-modules/baseline/default.nix
index a919e42dbc82..d64fbd26f6f3 100644
--- a/nixpkgs/pkgs/development/python-modules/baseline/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/baseline/default.nix
@@ -17,6 +17,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Easy String Baseline";
+    mainProgram = "baseline";
     longDescription = ''
       This tool streamlines creation and maintenance of tests which compare
       string output against a baseline.
diff --git a/nixpkgs/pkgs/development/python-modules/batchspawner/default.nix b/nixpkgs/pkgs/development/python-modules/batchspawner/default.nix
index f2e8acfe7a0e..ed1bf400f631 100644
--- a/nixpkgs/pkgs/development/python-modules/batchspawner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/batchspawner/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A spawner for Jupyterhub to spawn notebooks using batch resource managers";
+    mainProgram = "batchspawner-singleuser";
     homepage = "https://github.com/jupyterhub/batchspawner";
     changelog = "https://github.com/jupyterhub/batchspawner/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/bayespy/default.nix b/nixpkgs/pkgs/development/python-modules/bayespy/default.nix
index 86ca3020bacc..ef82df7dfb95 100644
--- a/nixpkgs/pkgs/development/python-modules/bayespy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bayespy/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "bayespy";
-  version = "0.5.28";
+  version = "0.6.1";
   format = "setuptools";
 
   # Python 2 not supported and not some old Python 3 because MPL doesn't support
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-0NKxx3dGNNsYc0nD9nIwJ1wpDJHu4Ny+Z/zzj4jys40=";
+    sha256 = "sha256-3N8w/LiTLsDZbHp3z26FvDg3vStB2l3XkIWx+Mma1G0=";
   };
 
   nativeCheckInputs = [ pytestCheckHook nose glibcLocales ];
diff --git a/nixpkgs/pkgs/development/python-modules/bc-jsonpath-ng/default.nix b/nixpkgs/pkgs/development/python-modules/bc-jsonpath-ng/default.nix
index 5565adcd8899..2322f0407f9f 100644
--- a/nixpkgs/pkgs/development/python-modules/bc-jsonpath-ng/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bc-jsonpath-ng/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "JSONPath implementation for Python";
+    mainProgram = "bc_jsonpath_ng";
     homepage = "https://github.com/bridgecrewio/jsonpath-ng";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/bc-python-hcl2/default.nix b/nixpkgs/pkgs/development/python-modules/bc-python-hcl2/default.nix
index 25dc3fa419be..7f3832eeeb05 100644
--- a/nixpkgs/pkgs/development/python-modules/bc-python-hcl2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bc-python-hcl2/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Parser for HCL2 written in Python using Lark";
+    mainProgram = "hcl2tojson";
     longDescription = ''
       This parser only supports HCL2 and isn't backwards compatible with HCL v1.
       It can be used to parse any HCL2 config file such as Terraform.
diff --git a/nixpkgs/pkgs/development/python-modules/bcf/default.nix b/nixpkgs/pkgs/development/python-modules/bcf/default.nix
index 68501e08d1e3..08fb7d4249bd 100644
--- a/nixpkgs/pkgs/development/python-modules/bcf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bcf/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/hardwario/bch-firmware-tool";
     description = "HARDWARIO Firmware Tool";
+    mainProgram = "bcf";
     platforms = platforms.linux;
     license = licenses.mit;
     maintainers = with maintainers; [ cynerd ];
diff --git a/nixpkgs/pkgs/development/python-modules/bcg/default.nix b/nixpkgs/pkgs/development/python-modules/bcg/default.nix
index 2a520f23f51f..c039a1e30072 100644
--- a/nixpkgs/pkgs/development/python-modules/bcg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bcg/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/hardwario/bch-gateway";
     description = "HARDWARIO Gateway (Python Application «bcg»)";
+    mainProgram = "bcg";
     platforms = platforms.linux;
     license = licenses.mit;
     maintainers = with maintainers; [ cynerd ];
diff --git a/nixpkgs/pkgs/development/python-modules/bch/default.nix b/nixpkgs/pkgs/development/python-modules/bch/default.nix
index 448559c592e2..2885cc47bfe1 100644
--- a/nixpkgs/pkgs/development/python-modules/bch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bch/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/hardwario/bch-control-tool";
     description = "HARDWARIO Hub Control Tool";
+    mainProgram = "bch";
     platforms = platforms.linux;
     license = licenses.mit;
     maintainers = with maintainers; [ cynerd ];
diff --git a/nixpkgs/pkgs/development/python-modules/bcrypt/default.nix b/nixpkgs/pkgs/development/python-modules/bcrypt/default.nix
index 9ae71f9ffef6..a8f751056d90 100644
--- a/nixpkgs/pkgs/development/python-modules/bcrypt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bcrypt/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "bcrypt";
-  version = "4.1.1";
+  version = "4.1.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3zf1QY1PHNz/hF9g50egFTifpOY3A8kYMwhl4GrYAAc=";
+    hash = "sha256-MzE6EgCjrpC3VYfOrFArBIuED8aef3oJBbX4f6x6Elg=";
   };
 
   cargoRoot = "src/_bcrypt";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     inherit src;
     sourceRoot = "${pname}-${version}/${cargoRoot}";
     name = "${pname}-${version}";
-    hash = "sha256-QYg1+DsZEdXB74vuS4SFvV0n5GXkuwHkOS9j1ogSTjA=";
+    hash = "sha256-fTD1AKvyeni5ukYjK53gueKLey+rcIUjW/0R289xeb0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/bdffont/default.nix b/nixpkgs/pkgs/development/python-modules/bdffont/default.nix
index b009a54a83c5..baa20facc81f 100644
--- a/nixpkgs/pkgs/development/python-modules/bdffont/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bdffont/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "bdffont";
-  version = "0.0.16";
+  version = "0.0.17";
 
   disabled = pythonOlder "3.11";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2qR9uKQk9zrKpyekpZJht8uZOp8PK01sv2CYyP+BqcA=";
+    hash = "sha256-JBPo5tmwnXRzPpZbBrcW2wEC/XNd8M+mi58CRIpOVL0=";
   };
 
   format = "pyproject";
diff --git a/nixpkgs/pkgs/development/python-modules/beaker/default.nix b/nixpkgs/pkgs/development/python-modules/beaker/default.nix
index 58f7515c10d6..b55b8ce93c69 100644
--- a/nixpkgs/pkgs/development/python-modules/beaker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/beaker/default.nix
@@ -20,7 +20,7 @@
 }:
 
 buildPythonPackage rec {
-  pname = "Beaker";
+  pname = "beaker";
   version = "1.11.0";
 
   # The pypy release do not contains the tests
diff --git a/nixpkgs/pkgs/development/python-modules/beancount-black/default.nix b/nixpkgs/pkgs/development/python-modules/beancount-black/default.nix
index 9dcd709bff11..f1e1ee3a4b02 100644
--- a/nixpkgs/pkgs/development/python-modules/beancount-black/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/beancount-black/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Opinioned code formatter for Beancount";
+    mainProgram = "bean-black";
     homepage = "https://github.com/LaunchPlatform/beancount-black/";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ambroisie ];
diff --git a/nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix b/nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix
index 9e9d15bec0cb..75ae136d2887 100644
--- a/nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 , chardet
 , hatchling
 , html5lib
@@ -22,8 +21,8 @@
 
 buildPythonPackage rec {
   pname = "beautifulsoup4";
-  version = "4.12.2";
-  format = "pyproject";
+  version = "4.12.3";
+  pyproject = true;
 
   outputs = ["out" "doc"];
 
@@ -31,21 +30,9 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SSu8adyjXRLarHHE2xv/8Mh2wA70ov+sziJtRjjrcto=";
+    hash = "sha256-dOPRko7cBw0hdIGFxG4/szSQ8i9So63e6a7g9Pd4EFE=";
   };
 
-  patches = [
-    # Fix test with libxml 2.12.
-    # https://bugs.launchpad.net/beautifulsoup/+bug/2045481
-    (fetchpatch {
-      url = "https://bugs.launchpad.net/beautifulsoup/+bug/2045481/+attachment/5726132/+files/2045481.diff";
-      hash = "sha256-f/Wkh7El4r1iWM2/CSi5AKE1+NsEP3D5pxWgBcZ//Vs=";
-      excludes = [
-        "CHANGELOG"
-      ];
-    })
-  ];
-
   nativeBuildInputs = [
     hatchling
     sphinxHook
diff --git a/nixpkgs/pkgs/development/python-modules/behave/default.nix b/nixpkgs/pkgs/development/python-modules/behave/default.nix
index b313e88b6c57..942981d004c9 100644
--- a/nixpkgs/pkgs/development/python-modules/behave/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/behave/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/behave/behave";
     description = "behaviour-driven development, Python style";
+    mainProgram = "behave";
     license = licenses.bsd2;
     maintainers = with maintainers; [ alunduil maxxk ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/bellows/default.nix b/nixpkgs/pkgs/development/python-modules/bellows/default.nix
index e93f810a61f8..344e14a30f0c 100644
--- a/nixpkgs/pkgs/development/python-modules/bellows/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bellows/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to implement EZSP for EmberZNet devices";
+    mainProgram = "bellows";
     homepage = "https://github.com/zigpy/bellows";
     changelog = "https://github.com/zigpy/bellows/releases/tag/${version}";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/bentoml/default.nix b/nixpkgs/pkgs/development/python-modules/bentoml/default.nix
index 8441d25e71c6..6946f45e050f 100644
--- a/nixpkgs/pkgs/development/python-modules/bentoml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bentoml/default.nix
@@ -69,7 +69,7 @@
 }:
 
 let
-  version = "1.1.11";
+  version = "1.2.5";
   aws = [ fs-s3fs ];
   grpc = [
     grpcio
@@ -105,7 +105,7 @@ buildPythonPackage {
     owner = "bentoml";
     repo = "BentoML";
     rev = "refs/tags/v${version}";
-    hash = "sha256-2EjltGfmLalgPD9XNYYduYGzqbumqoglVVL+AbRzMJE=";
+    hash = "sha256-GBKxyjCs02mxYiMK4GhgFUATRCUSVf8mFbWjuPVD7SU=";
   };
 
   # https://github.com/bentoml/BentoML/pull/4227 should fix this test
diff --git a/nixpkgs/pkgs/development/python-modules/betamax/default.nix b/nixpkgs/pkgs/development/python-modules/betamax/default.nix
index 86f1e2574db7..d4da87d07433 100644
--- a/nixpkgs/pkgs/development/python-modules/betamax/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/betamax/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "betamax";
-  version = "0.8.1";
+  version = "0.9.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1hki1c2vs7adq7zr56wi6i5bhrkia4s2ywpv2c98ibnczz709w2v";
+    sha256 = "sha256-gjFuFnm8aHnjyDMY0Ba1S3ySJf8IxEYt5IE+IgONX5Q=";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/betterproto/default.nix b/nixpkgs/pkgs/development/python-modules/betterproto/default.nix
index f5cc7d9253ea..e1d9f75a9a90 100644
--- a/nixpkgs/pkgs/development/python-modules/betterproto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/betterproto/default.nix
@@ -80,6 +80,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Code generator & library for Protobuf 3 and async gRPC";
+    mainProgram = "protoc-gen-python_betterproto";
     longDescription = ''
       This project aims to provide an improved experience when using Protobuf /
       gRPC in a modern Python environment by making use of modern language
diff --git a/nixpkgs/pkgs/development/python-modules/bids-validator/default.nix b/nixpkgs/pkgs/development/python-modules/bids-validator/default.nix
index c70268dea0b5..9c526a0f22c9 100644
--- a/nixpkgs/pkgs/development/python-modules/bids-validator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bids-validator/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "bids-validator";
-  version = "1.14.0";
+  version = "1.14.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-M7D4ZcGqPjn7klGN8WP6a3lHjRqhAq9S/VNwSl7y6kY=";
+    hash = "sha256-Rv8fBCLm16K33co+H0WcN7rSaKoS1bjGvg2pKcEhm/4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/biliass/default.nix b/nixpkgs/pkgs/development/python-modules/biliass/default.nix
index a6ce06c8a971..65f4e8f7d7c8 100644
--- a/nixpkgs/pkgs/development/python-modules/biliass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/biliass/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/yutto-dev/biliass";
     description = "Convert Bilibili XML/protobuf danmaku to ASS subtitle";
+    mainProgram = "biliass";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ linsui ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/bimmer-connected/default.nix b/nixpkgs/pkgs/development/python-modules/bimmer-connected/default.nix
index 5fe28afbb574..48ddcc9e7d62 100644
--- a/nixpkgs/pkgs/development/python-modules/bimmer-connected/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bimmer-connected/default.nix
@@ -76,6 +76,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/bimmerconnected/bimmer_connected/releases/tag/${version}";
     description = "Library to read data from the BMW Connected Drive portal";
+    mainProgram = "bimmerconnected";
     homepage = "https://github.com/bimmerconnected/bimmer_connected";
     license = licenses.asl20;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/bincopy/default.nix b/nixpkgs/pkgs/development/python-modules/bincopy/default.nix
index 67b64e2a71af..f61432b229f8 100644
--- a/nixpkgs/pkgs/development/python-modules/bincopy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bincopy/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Mangling of various file formats that conveys binary information (Motorola S-Record, Intel HEX, TI-TXT, ELF and binary files)";
+    mainProgram = "bincopy";
     homepage = "https://github.com/eerimoq/bincopy";
     license = licenses.mit;
     maintainers = with maintainers; [ frogamic sbruder ];
diff --git a/nixpkgs/pkgs/development/python-modules/binwalk/default.nix b/nixpkgs/pkgs/development/python-modules/binwalk/default.nix
index 9a83a6239867..b3725caa3d6d 100644
--- a/nixpkgs/pkgs/development/python-modules/binwalk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/binwalk/default.nix
@@ -66,6 +66,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/ReFirmLabs/binwalk";
     description = "A tool for searching a given binary image for embedded files";
+    mainProgram = "binwalk";
     maintainers = [ maintainers.koral ];
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/bip32/default.nix b/nixpkgs/pkgs/development/python-modules/bip32/default.nix
index 96f37498c93b..165cf6231eea 100644
--- a/nixpkgs/pkgs/development/python-modules/bip32/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bip32/default.nix
@@ -23,6 +23,12 @@ buildPythonPackage rec {
     hash = "sha256-o8UKR17XDWp1wTWYeDL0DJY+D11YI4mg0UuGEAPkHxE=";
   };
 
+  # https://github.com/darosior/python-bip32/pull/40/files
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace-fail 'coincurve>=15.0,<19' 'coincurve>=15.0,<20'
+  '';
+
   nativeBuildInputs = [
     setuptools
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/bitarray/default.nix b/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
index 2895aac54621..8a748ed5b1b8 100644
--- a/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "bitarray";
-  version = "2.8.5";
+  version = "2.9.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-t1ZP0hjMRHn38BBtNB4Jb3iQe0eGWu7/cCyAffGSfAE=";
+    hash = "sha256-qPKGpRoyMjcV13dV7ZWflL7xOXLpov5xtgnkDm0nlX4=";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/bitmath/default.nix b/nixpkgs/pkgs/development/python-modules/bitmath/default.nix
index 5c391bbc2dfd..d5bdf77fb592 100644
--- a/nixpkgs/pkgs/development/python-modules/bitmath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitmath/default.nix
@@ -14,6 +14,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for representing and manipulating file sizes with different prefix";
+    mainProgram = "bitmath";
     homepage = "https://github.com/tbielawa/bitmath";
     license = licenses.mit;
     maintainers = with maintainers; [ twey ];
diff --git a/nixpkgs/pkgs/development/python-modules/black-macchiato/default.nix b/nixpkgs/pkgs/development/python-modules/black-macchiato/default.nix
index ace0dbe66c42..b29405d00791 100644
--- a/nixpkgs/pkgs/development/python-modules/black-macchiato/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/black-macchiato/default.nix
@@ -28,6 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "This is a small utility built on top of the black Python code formatter to enable formatting of partial files";
+    mainProgram = "black-macchiato";
     homepage    = "https://github.com/wbolster/black-macchiato";
     license     = licenses.bsd3;
     maintainers = with maintainers; [ jperras ];
diff --git a/nixpkgs/pkgs/development/python-modules/black/default.nix b/nixpkgs/pkgs/development/python-modules/black/default.nix
index 73ce7f8d30fd..edc13d3457dd 100644
--- a/nixpkgs/pkgs/development/python-modules/black/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/black/default.nix
@@ -24,14 +24,14 @@
 
 buildPythonPackage rec {
   pname = "black";
-  version = "23.11.0";
+  version = "24.2.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TGiFWCX/Qy0ZcimEb5cbxNZmbOkEkuWwIBO8rKTZqwU=";
+    hash = "sha256-vOTyXCfDQ15NrOSBW8sgCLh+Fn479O5HzNxc6QbrSJQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/blebox-uniapi/default.nix b/nixpkgs/pkgs/development/python-modules/blebox-uniapi/default.nix
index e91abe0b8f06..3381c0d1ccf8 100644
--- a/nixpkgs/pkgs/development/python-modules/blebox-uniapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blebox-uniapi/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "blebox-uniapi";
-  version = "2.2.2";
+  version = "2.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "blebox";
     repo = "blebox_uniapi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-q1plIIcPY94zRD17srz5vMJzkk6K/xbbNIRB6zLlUo0=";
+    hash = "sha256-nqxbwHzx2cnojw/XX9XQoVvOCCd88tulY0m9xEHU3m4=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/bless/default.nix b/nixpkgs/pkgs/development/python-modules/bless/default.nix
index dbe92d76c73f..3f24aef8bf53 100644
--- a/nixpkgs/pkgs/development/python-modules/bless/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bless/default.nix
@@ -5,24 +5,34 @@
 , dbus-next
 , fetchFromGitHub
 , numpy
+, pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "bless";
-  version = "0.2.5";
-  format = "setuptools";
+  version = "0.2.6";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "kevincar";
-    repo = pname;
+    repo = "bless";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+rnMLqNfhIJASCKkIfOKpVil3S/d8BcMxnLHmdOcRIY=";
+    hash = "sha256-dAdA+d75iE6v6t4mfgvwhRsIARLW+IqCGmaMABaDlZg=";
   };
 
+  postPatch = ''
+    sed -i "/pysetupdi/d" setup.py
+  '';
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     bleak
     dbus-next
@@ -31,6 +41,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     aioconsole
     numpy
+    pytest-asyncio
     pytestCheckHook
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/blinkstick/default.nix b/nixpkgs/pkgs/development/python-modules/blinkstick/default.nix
index bafd5254b968..da4e23e527b1 100644
--- a/nixpkgs/pkgs/development/python-modules/blinkstick/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blinkstick/default.nix
@@ -20,6 +20,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Python package to control BlinkStick USB devices";
+    mainProgram = "blinkstick";
     homepage = "https://github.com/arvydas/blinkstick-python";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ np perstark ];
diff --git a/nixpkgs/pkgs/development/python-modules/blobfile/default.nix b/nixpkgs/pkgs/development/python-modules/blobfile/default.nix
index 9c99c8502774..039468acca4a 100644
--- a/nixpkgs/pkgs/development/python-modules/blobfile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blobfile/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "blobfile";
-  version = "2.0.2";
+  version = "2.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "christopher-hesse";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-vVoiNIN/LNdbedaOQ+gtj4jhzmrGri49fftHKG+K/fg=";
+    hash = "sha256-VBh1JMP+8FEqD0uXpxA5RRMFH9XIUb4FUgsPq3vZWHM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/blockdiag/default.nix b/nixpkgs/pkgs/development/python-modules/blockdiag/default.nix
index b2d341b67c1e..4444e3475946 100644
--- a/nixpkgs/pkgs/development/python-modules/blockdiag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blockdiag/default.nix
@@ -68,6 +68,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Generate block-diagram image from spec-text file (similar to Graphviz)";
+    mainProgram = "blockdiag";
     homepage = "http://blockdiag.com/";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/python-modules/blocksat-cli/default.nix b/nixpkgs/pkgs/development/python-modules/blocksat-cli/default.nix
index 18437efceb4b..bc260ee07ed1 100644
--- a/nixpkgs/pkgs/development/python-modules/blocksat-cli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blocksat-cli/default.nix
@@ -57,6 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Blockstream Satellite CLI";
+    mainProgram = "blocksat-cli";
     homepage = "https://github.com/Blockstream/satellite";
     changelog = "https://github.com/Blockstream/satellite/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/bloodhound-py/default.nix b/nixpkgs/pkgs/development/python-modules/bloodhound-py/default.nix
index f1bdcd362ade..bf8fd3f942de 100644
--- a/nixpkgs/pkgs/development/python-modules/bloodhound-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bloodhound-py/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python based ingestor for BloodHound, based on Impacket";
+    mainProgram = "bloodhound-python";
     homepage = "https://github.com/dirkjanm/BloodHound.py";
     license = licenses.mit;
     maintainers = with maintainers; [ exploitoverload ];
diff --git a/nixpkgs/pkgs/development/python-modules/bloodyad/default.nix b/nixpkgs/pkgs/development/python-modules/bloodyad/default.nix
new file mode 100644
index 000000000000..11d26f32fbae
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bloodyad/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, buildPythonPackage
+, cryptography
+, fetchFromGitHub
+, gssapi
+, hatchling
+, ldap3
+, pyasn1
+, pytestCheckHook
+, pythonOlder
+, winacl
+}:
+
+buildPythonPackage rec {
+  pname = "bloodyad";
+  version = "1.1.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "CravateRouge";
+    repo = "bloodyAD";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-wnq+HTAPnC7pSGI2iytSyHmdqtUq2pUnNwZnsGX8CL4=";
+  };
+
+  nativeBuildInputs = [
+    hatchling
+  ];
+
+  propagatedBuildInputs = [
+    cryptography
+    gssapi
+    ldap3
+    pyasn1
+    winacl
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "bloodyAD"
+  ];
+
+  disabledTests = [
+    # Tests require network access
+    "test_01AuthCreateUser"
+    "test_02SearchAndGetChildAndGetWritable"
+    "test_03UacOwnerGenericShadowGroupPasswordDCSync"
+    "test_04ComputerRbcdGetSetAttribute"
+    "test_06AddRemoveGetDnsRecord"
+  ];
+
+  meta = with lib; {
+    description = "Module for Active Directory Privilege Escalations";
+    homepage = "https://github.com/CravateRouge/bloodyAD";
+    changelog = "https://github.com/CravateRouge/bloodyAD/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/bluecurrent-api/default.nix b/nixpkgs/pkgs/development/python-modules/bluecurrent-api/default.nix
index ca19887a0fb0..26c631706a17 100644
--- a/nixpkgs/pkgs/development/python-modules/bluecurrent-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bluecurrent-api/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , pythonOlder
 , fetchPypi
-, pythonRelaxDepsHook
 , setuptools
 , pytz
 , websockets
@@ -13,26 +12,21 @@
 
 buildPythonPackage rec {
   pname = "bluecurrent-api";
-  version = "1.0.6";
+  version = "1.2.3";
   pyproject = true;
 
-  disabled = pythonOlder "3.9";
+  disabled = pythonOlder "3.11";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-XHVdtkiG0ff/OY8g+W5iur7OAyhhk1UGA+XUfB2L8/o=";
+    hash = "sha256-mWRTSMS68+J1Z4PYOFF/UvofSqV1wv0gjiTACEWDfNg=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
+  build-system = [
     setuptools
   ];
 
-  pythonRemoveDeps = [
-    "asyncio"
-  ];
-
-  propagatedBuildInputs = [
+  dependencies = [
     pytz
     websockets
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/bluetooth-auto-recovery/default.nix b/nixpkgs/pkgs/development/python-modules/bluetooth-auto-recovery/default.nix
index 2a39c28d0fdb..9a146770fd6d 100644
--- a/nixpkgs/pkgs/development/python-modules/bluetooth-auto-recovery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bluetooth-auto-recovery/default.nix
@@ -13,18 +13,23 @@
 
 buildPythonPackage rec {
   pname = "bluetooth-auto-recovery";
-  version = "1.3.0";
-  format = "pyproject";
+  version = "1.4.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "Bluetooth-Devices";
-    repo = pname;
+    repo = "bluetooth-auto-recovery";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4DFi7UrEQgU7dckUuGxj/sWyystx8NYb6xK4hyurKKo=";
+    hash = "sha256-fXR7leW+eXaQZ22IyeVhpS5/MOnuAiunUGMdtfVrlos=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail " --cov=bluetooth_auto_recovery --cov-report=term-missing:skip-covered" ""
+  '';
+
   nativeBuildInputs = [
     poetry-core
   ];
@@ -41,11 +46,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace " --cov=bluetooth_auto_recovery --cov-report=term-missing:skip-covered" ""
-  '';
-
   pythonImportsCheck = [
     "bluetooth_auto_recovery"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/bme280spi/default.nix b/nixpkgs/pkgs/development/python-modules/bme280spi/default.nix
index 4a32b507680b..7747925a2478 100644
--- a/nixpkgs/pkgs/development/python-modules/bme280spi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bme280spi/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for BME280 sensor through spidev";
+    mainProgram = "bme280spi";
     homepage = "https://github.com/Kuzj/bme280spi";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/bokeh/default.nix b/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
index a54608df9fc8..63fa524f9fa3 100644
--- a/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
@@ -128,6 +128,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Statistical and novel interactive HTML plots for Python";
+    mainProgram = "bokeh";
     homepage = "https://github.com/bokeh/bokeh";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ orivej ];
diff --git a/nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix b/nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix
index 6f5155643432..f53d49af8d51 100644
--- a/nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Band-structure interpolator and transport coefficient calculator";
+    mainProgram = "btp2";
     homepage = "http://www.boltztrap.org/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/bootstrap/flit-core/default.nix b/nixpkgs/pkgs/development/python-modules/bootstrap/flit-core/default.nix
index ab9e52538d34..43fec03901cd 100644
--- a/nixpkgs/pkgs/development/python-modules/bootstrap/flit-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bootstrap/flit-core/default.nix
@@ -4,11 +4,11 @@
 , flit-core
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "${python.libPrefix}-bootstrap-${flit-core.pname}";
   inherit (flit-core) version src patches meta;
 
-  sourceRoot = "source/flit_core";
+  sourceRoot = "${src.name}/flit_core";
 
   buildPhase = ''
     runHook preBuild
diff --git a/nixpkgs/pkgs/development/python-modules/borb/default.nix b/nixpkgs/pkgs/development/python-modules/borb/default.nix
index 2c20e8ff7fb7..f82da30ff50f 100644
--- a/nixpkgs/pkgs/development/python-modules/borb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/borb/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "borb";
-  version = "2.1.21";
+  version = "2.1.22";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gnsPsvchvcUlWwmhDIazuc8/83ZRKc29VKhIDFSoFlE=";
+    hash = "sha256-T+uSq/KF3p4zJJhQeompJIJ6BWhYFK9Ko9w0sZFtFhE=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/bork/default.nix b/nixpkgs/pkgs/development/python-modules/bork/default.nix
index 060ac57ae00e..578c218372b5 100644
--- a/nixpkgs/pkgs/development/python-modules/bork/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bork/default.nix
@@ -4,47 +4,50 @@
 , pytestCheckHook
 , pythonOlder
 , pythonRelaxDepsHook
-
+, setuptools
 , build
 , coloredlogs
 , packaging
 , pip
+, readme-renderer
 , toml
 , twine
-, wheel
 }:
 
 buildPythonPackage rec {
   pname = "bork";
-  version = "7.0.2";
+  version = "8.0.0";
   pyproject = true;
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "duckinator";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-sHCPT6nTenE6mbTifNPtg0OMNIJCs7LRcF8Xuk+MwLs=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-BDwVhKmZ/F8CvpT6dEI5moQZx8wHy1TwdOl889XogEo=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     pythonRelaxDepsHook
+    setuptools
   ];
 
   pythonRelaxDeps = [
     "packaging"
+    "readme-renderer"
     "twine"
     "wheel"
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     build
     coloredlogs
     packaging
     pip
-    toml
+    readme-renderer
     twine
-    wheel
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    toml
   ];
 
   pythonImportsCheck = [
@@ -56,12 +59,19 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     pytestCheckHook
   ];
+
   pytestFlagsArray = [
     "-m 'not network'"
   ];
 
+  disabledTests = [
+    # tries to call python -m bork
+    "test_repo"
+  ];
+
   meta = with lib; {
     description = "Python build and release management tool";
+    mainProgram = "bork";
     homepage = "https://github.com/duckinator/bork";
     maintainers = with maintainers; [ nicoo ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/python-modules/boto3-stubs/default.nix b/nixpkgs/pkgs/development/python-modules/boto3-stubs/default.nix
index 6a7a38be5b28..a3d2f9a99e62 100644
--- a/nixpkgs/pkgs/development/python-modules/boto3-stubs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/boto3-stubs/default.nix
@@ -365,14 +365,14 @@
 
 buildPythonPackage rec {
   pname = "boto3-stubs";
-  version = "1.34.58";
+  version = "1.34.69";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-FOqFo1X5hL19wX45I3v8JMOlVHn7y4fxfAAmm9laK0Q=";
+    hash = "sha256-k/tPhkDNAacOnTyUOVxn+2GX9eZiPS858YNXtbmtvfw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/boto3/default.nix b/nixpkgs/pkgs/development/python-modules/boto3/default.nix
index aa9bcd2246b5..e8ce2d73f11b 100644
--- a/nixpkgs/pkgs/development/python-modules/boto3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/boto3/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "boto3";
-  version = "1.34.49"; # N.B: if you change this, change botocore and awscli to a matching version
+  version = "1.34.58"; # N.B: if you change this, change botocore and awscli to a matching version
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "boto";
     repo = "boto3";
     rev = "refs/tags/${version}";
-    hash = "sha256-/pgbLSL5RJ5RrKUAfQ1QNJykBdICrpqnuziHOVHt1JI=";
+    hash = "sha256-2L4pHjrDoy7dPZm0nx+NXZV/K3ZVx7FrNGYZTMrwAs4=";
   };
 
   nativeBuildInputs = [
@@ -31,7 +31,6 @@ buildPythonPackage rec {
   ];
 
   pythonRelaxDeps = [
-    "botocore"
     "s3transfer"
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/botocore-stubs/default.nix b/nixpkgs/pkgs/development/python-modules/botocore-stubs/default.nix
index 0ee5f72124f9..5b2d19b7e463 100644
--- a/nixpkgs/pkgs/development/python-modules/botocore-stubs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/botocore-stubs/default.nix
@@ -9,15 +9,15 @@
 
 buildPythonPackage rec {
   pname = "botocore-stubs";
-  version = "1.34.58";
-  format = "pyproject";
+  version = "1.34.69";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "botocore_stubs";
     inherit version;
-    hash = "sha256-f4IO03oREJdEqMSuufAiTHEUtaqry9RvxsT2Cvafqj4=";
+    hash = "sha256-RjJI/R1ue2igxXvddY0Exr0MXCw7+oGv351k8JMLWbw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/botocore/default.nix b/nixpkgs/pkgs/development/python-modules/botocore/default.nix
index 89b6dbe07821..f956687016ef 100644
--- a/nixpkgs/pkgs/development/python-modules/botocore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/botocore/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.34.49"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.34.58"; # N.B: if you change this, change boto3 and awscli to a matching version
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2JQQvGBnPq/xaZ8/H9yw46Xh96agSMDYjDzlw1SUM+w=";
+    hash = "sha256-11IWlSiG3FE+obXil5pq8I/u0vU34/wQLkoKLq1WOjU=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/botorch/default.nix b/nixpkgs/pkgs/development/python-modules/botorch/default.nix
index d4503c85c988..e81609908758 100644
--- a/nixpkgs/pkgs/development/python-modules/botorch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/botorch/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "botorch";
-  version = "0.9.5";
+  version = "0.10.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pytorch";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-M/VOt0p7io0K+VHrAmBJQ71VigH0Ll1D5it6+/o/3jg=";
+    hash = "sha256-IaFtQWrgOhVHDOiPQ4oG8l+Q0igWamYVWEReGccbVoI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/bottle/default.nix b/nixpkgs/pkgs/development/python-modules/bottle/default.nix
index 9e8d84950e5e..8e89ce8d14cc 100644
--- a/nixpkgs/pkgs/development/python-modules/bottle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bottle/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://bottlepy.org/";
     description = "A fast and simple micro-framework for small web-applications";
+    mainProgram = "bottle.py";
     downloadPage = "https://github.com/bottlepy/bottle";
     license = licenses.mit;
     maintainers = with maintainers; [ koral ];
diff --git a/nixpkgs/pkgs/development/python-modules/bpemb/default.nix b/nixpkgs/pkgs/development/python-modules/bpemb/default.nix
new file mode 100644
index 000000000000..ab6d5357e53b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bpemb/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+, setuptools
+
+, gensim
+, numpy
+, requests
+, sentencepiece
+, tqdm
+}:
+
+buildPythonPackage {
+  pname = "bpemb";
+  version = "0.3.5";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "bheinzerling";
+    repo = "bpemb";
+    rev = "ec85774945ca76dd93c1d9b4af2090e80c5779dc";
+    hash = "sha256-nVaMXb5TBhO/vWE8AYAA3P9dSPI8O+rmzFvbEj8VEkE=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    gensim
+    numpy
+    requests
+    sentencepiece
+    tqdm
+  ];
+
+  # need network connection for tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "bpemb"
+  ];
+
+  meta = with lib; {
+    description = "Byte-pair embeddings in 275 languages";
+    homepage = "https://github.com/bheinzerling/bpemb";
+    license = licenses.mit;
+    maintainers = with maintainers; [ vizid ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/breathe/default.nix b/nixpkgs/pkgs/development/python-modules/breathe/default.nix
index 121777da32d8..ca6c66261660 100644
--- a/nixpkgs/pkgs/development/python-modules/breathe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/breathe/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Sphinx Doxygen renderer";
+    mainProgram = "breathe-apidoc";
     homepage = "https://github.com/michaeljones/breathe";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/brian2/default.nix b/nixpkgs/pkgs/development/python-modules/brian2/default.nix
index eba18b98c0ab..59880be41293 100644
--- a/nixpkgs/pkgs/development/python-modules/brian2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/brian2/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "brian2";
-  version = "2.5.4";
+  version = "2.6.0";
   format = "setuptools";
 
   src = fetchPypi {
     pname = "Brian2";
     inherit version;
-    hash = "sha256-XMXSOwcH8fLgzXCcT+grjYxhBdtF4H/Vr+S7J4GYZSw=";
+    hash = "sha256-qYeIMn8l2V2Ckpj5AY7TWihFnfZ//JcP5VacUUfYCf4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/broadbean/default.nix b/nixpkgs/pkgs/development/python-modules/broadbean/default.nix
index edf4ca1080ce..a5554b5d9ba2 100644
--- a/nixpkgs/pkgs/development/python-modules/broadbean/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/broadbean/default.nix
@@ -15,31 +15,16 @@
 
 buildPythonPackage rec {
   pname = "broadbean";
-  version = "0.11.0";
+  version = "0.14.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-e+LAcmWxT+SkaWtToPgg+x3QRu5fCSm+w4dLCcyZrw8=";
+    hash = "sha256-v+Ov6mlSnaJG98ooA9AhPGJflrFafKQoO5wi+PxcZVw=";
   };
 
-  patches = [
-    # https://github.com/QCoDeS/broadbean/pull/538
-    (fetchpatch {
-      name = "drop-wheel-from-pyproject.patch";
-      url = "https://github.com/QCoDeS/broadbean/commit/31a2147e4f452fef1ca2b56b1cb0b10ac85ac867.patch";
-      hash = "sha256-lBikIRhaf3ecwE7NZrYWeHkQCHQdfS9eeOcFExGIsVk=";
-    })
-    # https://github.com/QCoDeS/broadbean/pull/638
-    (fetchpatch {
-      name = "unpin-versioningit-dependency.patch";
-      url = "https://github.com/QCoDeS/broadbean/commit/e4fd6c38d076aa3a6542dcd8fa7d2eb9d7a9b789.patch";
-      hash = "sha256-mw68pWAjztWBw22MeoWVbwIwjzMOJRtv6HctN3v6A2A=";
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools
     versioningit
diff --git a/nixpkgs/pkgs/development/python-modules/brother/default.nix b/nixpkgs/pkgs/development/python-modules/brother/default.nix
index c19190e815ce..60907fe7f139 100644
--- a/nixpkgs/pkgs/development/python-modules/brother/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/brother/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "brother";
-  version = "4.0.0";
+  version = "4.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "bieniu";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-FLaSj1LQy/eWPxU1a4WGpsdoN5Zi4EwrgCmz8AXGeLc=";
+    hash = "sha256-n1CIozKuF0+N8Vg3QA2jy5xNLDBJPdnhVT/xg1R+t90=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/bsddb3/default.nix b/nixpkgs/pkgs/development/python-modules/bsddb3/default.nix
index 57e9f4f7d082..4edc9e1524b4 100644
--- a/nixpkgs/pkgs/development/python-modules/bsddb3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bsddb3/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python bindings for Oracle Berkeley DB";
     homepage = "https://www.jcea.es/programacion/pybsddb.htm";
-    license = with licenses; [ agpl3 ]; # License changed from bsd3 to agpl3 since 6.x
+    license = with licenses; [ agpl3Only ]; # License changed from bsd3 to agpl3 since 6.x
     maintainers = [ ];
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/bthome-ble/default.nix b/nixpkgs/pkgs/development/python-modules/bthome-ble/default.nix
index 90c610b492d3..cc99d7696c5b 100644
--- a/nixpkgs/pkgs/development/python-modules/bthome-ble/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bthome-ble/default.nix
@@ -13,8 +13,8 @@
 
 buildPythonPackage rec {
   pname = "bthome-ble";
-  version = "3.6.0";
-  format = "pyproject";
+  version = "3.8.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = "bthome-ble";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CgPmBZGciK5WsDc46B+v7FmDRwRjxt7VasZg+3xSLN0=";
+    hash = "sha256-eaRFHrISxYovQLtNUPrgNw3ATClHqpZ+Us+JGmNNbyY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/bugz/default.nix b/nixpkgs/pkgs/development/python-modules/bugz/default.nix
index f67be664c227..894f2070c231 100644
--- a/nixpkgs/pkgs/development/python-modules/bugz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bugz/default.nix
@@ -19,6 +19,7 @@ buildPythonPackage {
   meta = with lib; {
     homepage = "https://github.com/williamh/pybugz";
     description = "Command line interface for Bugzilla";
+    mainProgram = "bugz";
     license = licenses.gpl2;
     maintainers = [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/bugzilla/default.nix b/nixpkgs/pkgs/development/python-modules/bugzilla/default.nix
index b671dbf70782..e7b1db45a4ad 100644
--- a/nixpkgs/pkgs/development/python-modules/bugzilla/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bugzilla/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/python-bugzilla/python-bugzilla";
     description = "Bugzilla XMLRPC access module";
+    mainProgram = "bugzilla";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ pierron ];
diff --git a/nixpkgs/pkgs/development/python-modules/buienradar/default.nix b/nixpkgs/pkgs/development/python-modules/buienradar/default.nix
index ce7dba941ce7..23a19f89f279 100644
--- a/nixpkgs/pkgs/development/python-modules/buienradar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/buienradar/default.nix
@@ -53,6 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library and CLI tools for interacting with buienradar";
+    mainProgram = "buienradar";
     homepage = "https://github.com/mjj4791/python-buienradar";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/build/default.nix b/nixpkgs/pkgs/development/python-modules/build/default.nix
index 42c7786d78ae..7d56257a377d 100644
--- a/nixpkgs/pkgs/development/python-modules/build/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/build/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "build";
-  version = "1.0.3";
+  version = "1.1.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
diff --git a/nixpkgs/pkgs/development/python-modules/buildcatrust/default.nix b/nixpkgs/pkgs/development/python-modules/buildcatrust/default.nix
index e56d50fb9d4d..5fc3eab56039 100644
--- a/nixpkgs/pkgs/development/python-modules/buildcatrust/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildcatrust/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "buildcatrust";
-  version = "0.2.1";
+  version = "0.3.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mjX+T5xo6cD1GxJ49Tx7zthPbGPFPYaf2qcNKVHEzJA=";
+    hash = "sha256-Ac10CZdihFBmr5LE6xFKx4+zr2n5nyR23px6N4vN05M=";
   };
 
   nativeBuildInputs = [
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Build SSL/TLS trust stores";
+    mainProgram = "buildcatrust";
     homepage = "https://github.com/lukegb/buildcatrust";
     license = licenses.mit;
     maintainers = with maintainers; [ lukegb ];
diff --git a/nixpkgs/pkgs/development/python-modules/buildout/default.nix b/nixpkgs/pkgs/development/python-modules/buildout/default.nix
index ace266347994..5a2f577d2b18 100644
--- a/nixpkgs/pkgs/development/python-modules/buildout/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildout/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A software build and configuration system";
+    mainProgram = "buildout";
     downloadPage = "https://github.com/buildout/buildout";
     homepage = "https://www.buildout.org";
     license = licenses.zpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/bumps/default.nix b/nixpkgs/pkgs/development/python-modules/bumps/default.nix
index 57a739349d5c..733494a8314a 100644
--- a/nixpkgs/pkgs/development/python-modules/bumps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bumps/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Data fitting with bayesian uncertainty analysis";
+    mainProgram = "bumps";
     homepage = "https://bumps.readthedocs.io/";
     changelog = "https://github.com/bumps/bumps/releases/tag/v${version}";
     license = licenses.publicDomain;
diff --git a/nixpkgs/pkgs/development/python-modules/bundlewrap/default.nix b/nixpkgs/pkgs/development/python-modules/bundlewrap/default.nix
index 7e811b2255a4..a13d5a9b73c3 100644
--- a/nixpkgs/pkgs/development/python-modules/bundlewrap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bundlewrap/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://bundlewrap.org/";
     description = "Easy, Concise and Decentralized Config management with Python";
+    mainProgram = "bw";
     license = [ licenses.gpl3 ] ;
     maintainers = with maintainers; [ wamserma ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/bwapy/default.nix b/nixpkgs/pkgs/development/python-modules/bwapy/default.nix
index 600fd1467b9c..4f7fd7c7b17b 100644
--- a/nixpkgs/pkgs/development/python-modules/bwapy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bwapy/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/ACEnglish/bwapy";
     description = "Python bindings to bwa mem aligner";
+    mainProgram = "bwamempy";
     license = licenses.mpl20;
     maintainers = with maintainers; [ ris ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/bx-py-utils/default.nix b/nixpkgs/pkgs/development/python-modules/bx-py-utils/default.nix
index 582bc6b8ca0c..d66cfa62044d 100644
--- a/nixpkgs/pkgs/development/python-modules/bx-py-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bx-py-utils/default.nix
@@ -81,6 +81,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Various Python utility functions";
+    mainProgram = "publish";
     homepage = "https://github.com/boxine/bx_py_utils";
     changelog = "https://github.com/boxine/bx_py_utils/releases/tag/${src.rev}";
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/cachecontrol/default.nix b/nixpkgs/pkgs/development/python-modules/cachecontrol/default.nix
index c40d0b8d4ee5..8cfaaa5fa9b0 100644
--- a/nixpkgs/pkgs/development/python-modules/cachecontrol/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cachecontrol/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Httplib2 caching for requests";
+    mainProgram = "doesitcache";
     homepage = "https://github.com/ionrock/cachecontrol";
     changelog = "https://github.com/psf/cachecontrol/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/cachelib/default.nix b/nixpkgs/pkgs/development/python-modules/cachelib/default.nix
index 4cb5d0e0dcce..12f2a88cb249 100644
--- a/nixpkgs/pkgs/development/python-modules/cachelib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cachelib/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "cachelib";
-  version = "0.10.2";
+  version = "0.12.0";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "pallets";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-2V2FvZC8jM84fZEdK9ShzFrjO8goOQsN6cnJTHDDL9E=";
+    hash = "sha256-gSBY8zMGVn5Ndu4OexMP1v7bhXAAdl2UcEjjKFa21rE=";
   };
 
   nativeCheckInputs = [
@@ -27,6 +27,7 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # requires set up local server
     "tests/test_dynamodb_cache.py"
+    "tests/test_mongodb_cache.py"
   ];
 
   pythonImportsCheck = [ "cachelib" ];
diff --git a/nixpkgs/pkgs/development/python-modules/cachier/default.nix b/nixpkgs/pkgs/development/python-modules/cachier/default.nix
index 931279b5a9ac..037f02b4d3ee 100644
--- a/nixpkgs/pkgs/development/python-modules/cachier/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cachier/default.nix
@@ -82,6 +82,7 @@ buildPythonPackage rec {
   meta = {
     homepage = "https://github.com/python-cachier/cachier";
     description = "Persistent, stale-free, local and cross-machine caching for functions";
+    mainProgram = "cachier";
     maintainers = with lib.maintainers; [ pbsds ];
     license = lib.licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/cairosvg/default.nix b/nixpkgs/pkgs/development/python-modules/cairosvg/default.nix
index 46c556818ee1..ddabd2098824 100644
--- a/nixpkgs/pkgs/development/python-modules/cairosvg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cairosvg/default.nix
@@ -1,25 +1,28 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, isPy3k
 , cairocffi
 , cssselect2
 , defusedxml
+, fetchPypi
 , pillow
-, tinycss2
 , pytestCheckHook
+, setuptools
+, tinycss2
 }:
 
 buildPythonPackage rec {
-  pname = "CairoSVG";
-  version = "2.7.0";
-  disabled = !isPy3k;
+  pname = "cairosvg";
+  version = "2.7.1";
+  pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-rE3HwdOLOhVxfbJjOjo4MBLgvmZMcnyRFjfmr2pJKTw=";
+    pname = "CairoSVG";
+    inherit version;
+    hash = "sha256-QyUx1yNHKRuanr+2d3AmtgdWP9hxnEbudC2wrvcnG6A=";
   };
 
+  nativeBuildInputs = [ setuptools ];
+
   propagatedBuildInputs = [ cairocffi cssselect2 defusedxml pillow tinycss2 ];
 
   propagatedNativeBuildInputs = [ cairocffi ];
@@ -44,8 +47,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://cairosvg.org";
+    changelog = "https://github.com/Kozea/CairoSVG/releases/tag/${version}";
     license = licenses.lgpl3Plus;
     description = "SVG converter based on Cairo";
+    mainProgram = "cairosvg";
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/calmjs/default.nix b/nixpkgs/pkgs/development/python-modules/calmjs/default.nix
index a605034b7a93..031ebfb493f8 100644
--- a/nixpkgs/pkgs/development/python-modules/calmjs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/calmjs/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Framework for building toolchains and utilities for working with the Node.js ecosystem";
+    mainProgram = "calmjs";
     homepage = "https://github.com/calmjs/calmjs";
     license = licenses.gpl2;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/development/python-modules/camelot/default.nix b/nixpkgs/pkgs/development/python-modules/camelot/default.nix
index 392bdf9a7ec8..ae5a89e80166 100644
--- a/nixpkgs/pkgs/development/python-modules/camelot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/camelot/default.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python library to extract tabular data from PDFs";
+    mainProgram = "camelot";
     homepage = "http://camelot-py.readthedocs.io";
     changelog = "https://github.com/camelot-dev/camelot/blob/v${version}/HISTORY.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/cantools/default.nix b/nixpkgs/pkgs/development/python-modules/cantools/default.nix
index cb2b7f6fcce7..2b6c0696f155 100644
--- a/nixpkgs/pkgs/development/python-modules/cantools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cantools/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "cantools";
-  version = "39.4.4";
+  version = "39.4.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bo6Ri2ZxpiqfOZBUbs5WI+Hetx3vsc74WplVrDAdqZ4=";
+    hash = "sha256-WU8q6A3q24xrCOjhMi1C4lj0DULIDWiG2E4BQ/kLWiM=";
   };
 
   postPatch = ''
@@ -58,6 +58,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tools to work with CAN bus";
+    mainProgram = "cantools";
     homepage = "https://github.com/cantools/cantools";
     changelog = "https://github.com/cantools/cantools/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/capstone/default.nix b/nixpkgs/pkgs/development/python-modules/capstone/default.nix
index 55503c9f6205..be8fa4fba9f4 100644
--- a/nixpkgs/pkgs/development/python-modules/capstone/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/capstone/default.nix
@@ -3,6 +3,7 @@
 , capstone
 , stdenv
 , setuptools
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
@@ -10,6 +11,9 @@ buildPythonPackage rec {
   version = lib.getVersion capstone;
   format = "setuptools";
 
+  # distutils usage
+  disabled = pythonAtLeast "3.12";
+
   src = capstone.src;
   sourceRoot = "${src.name}/bindings/python";
 
diff --git a/nixpkgs/pkgs/development/python-modules/cart/default.nix b/nixpkgs/pkgs/development/python-modules/cart/default.nix
index a0541fc1467f..7373ac0691cc 100644
--- a/nixpkgs/pkgs/development/python-modules/cart/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cart/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module for the CaRT Neutering format";
+    mainProgram = "cart";
     homepage = "https://github.com/CybercentreCanada/cart";
     changelog = "https://github.com/CybercentreCanada/cart/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/cartopy/default.nix b/nixpkgs/pkgs/development/python-modules/cartopy/default.nix
index f1f52eb9c987..05529a9c00da 100644
--- a/nixpkgs/pkgs/development/python-modules/cartopy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cartopy/default.nix
@@ -83,6 +83,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Process geospatial data to create maps and perform analyses";
+    mainProgram = "feature_download";
     license = licenses.lgpl3Plus;
     homepage = "https://scitools.org.uk/cartopy/docs/latest/";
     maintainers = with maintainers; [ mredaelli ];
diff --git a/nixpkgs/pkgs/development/python-modules/case/default.nix b/nixpkgs/pkgs/development/python-modules/case/default.nix
index 36efc1aab3bc..5a244096bcd5 100644
--- a/nixpkgs/pkgs/development/python-modules/case/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/case/default.nix
@@ -1,16 +1,17 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, nose
+, pynose
 , pythonOlder
-, pytestCheckHook
+, pythonRelaxDepsHook
+, setuptools
 , six
 }:
 
 buildPythonPackage rec {
   pname = "case";
   version = "1.5.3";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -19,8 +20,18 @@ buildPythonPackage rec {
     sha256 = "48432b01d91913451c3512c5b90e31b0f348f1074b166a3431085eb70d784fb1";
   };
 
-  propagatedBuildInputs = [
-    nose
+  build-system = [
+    setuptools
+    pythonRelaxDepsHook
+  ];
+
+  pythonRemoveDeps = [
+    # replaced with pynopse for python 3.12 compat
+    "nose"
+  ];
+
+  dependencies = [
+    pynose
     six
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/cashaddress/default.nix b/nixpkgs/pkgs/development/python-modules/cashaddress/default.nix
new file mode 100644
index 000000000000..8458f9b7fba6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cashaddress/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pythonOlder
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "cashaddress";
+  version = "1.0.6-unstable-2015-05-19";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "oskyk";
+    repo = "cashaddress";
+    rev = "0ca44cff6bd3e63a67b494296c0d1eeaf6cc120d";
+    hash = "sha256-4izWD2KZqy1F7CAgdbe1fpjMlMZC0clrkHKS9IIQuoc=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "cashaddress"
+  ];
+
+  meta = with lib; {
+    description = "Python tool for convert bitcoin cash legacy addresses";
+    homepage = "https://github.com/oskyk/cashaddress";
+    changelog = "https://github.com/oskyk/cashaddress/releases/tag/${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/catboost/default.nix b/nixpkgs/pkgs/development/python-modules/catboost/default.nix
index 840c01d876a1..6795655f4840 100644
--- a/nixpkgs/pkgs/development/python-modules/catboost/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/catboost/default.nix
@@ -13,11 +13,11 @@
 , wheel
 }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   inherit (catboost) pname version src meta;
   format = "pyproject";
 
-  sourceRoot = "source/catboost/python-package";
+  sourceRoot = "${src.name}/catboost/python-package";
 
   nativeBuildInputs = [
     setuptools
diff --git a/nixpkgs/pkgs/development/python-modules/catppuccin/default.nix b/nixpkgs/pkgs/development/python-modules/catppuccin/default.nix
index 3c86e97f49f9..b3134003cfbd 100644
--- a/nixpkgs/pkgs/development/python-modules/catppuccin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/catppuccin/default.nix
@@ -11,27 +11,34 @@
 buildPythonPackage rec {
   pname = "catppuccin";
   version = "1.3.2";
+  # Note: updating to later versions breaks catppuccin-gtk
+  # It would be ideal to only update this after catppuccin-gtk
+  # gets support for the newer version
+
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "catppuccin";
     repo = "python";
-    rev = "v${version}";
+    rev = "refs/tags/v${version}";
     hash = "sha256-spPZdQ+x3isyeBXZ/J2QE6zNhyHRfyRQGiHreuXzzik=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
     poetry-dynamic-versioning
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     pygments = [ pygments ];
     rich = [ rich ];
   };
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  nativeCheckInputs = [
+    pytestCheckHook
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
+  # can be removed next version
   disabledTestPaths = [
     "tests/test_flavour.py" # would download a json to check correctness of flavours
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/cbor2/default.nix b/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
index 2db51887e21f..73f994cce5a8 100644
--- a/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/agronholm/cbor2/releases/tag/${version}";
     description = "Python CBOR (de)serializer with extensive tag support";
+    mainProgram = "cbor2";
     homepage = "https://github.com/agronholm/cbor2";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/celery-types/default.nix b/nixpkgs/pkgs/development/python-modules/celery-types/default.nix
index cc77baff0444..fd39ab0901f4 100644
--- a/nixpkgs/pkgs/development/python-modules/celery-types/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/celery-types/default.nix
@@ -8,24 +8,26 @@
 
 buildPythonPackage rec {
   pname = "celery-types";
-  version = "0.20.0";
-  format = "pyproject";
+  version = "0.22.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.10";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-5cdiVVYF7QWSuu2dUZIwBGzo56EcZ6ghVVwIt87OGWA=";
+    pname = "celery_types";
+    inherit version;
+    hash = "sha256-DsrS+lpu3tCh+Rnl4eOBzC/wY1/ksh21O0ZhtodtWzA=";
   };
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
 
   nativeBuildInputs = [
     poetry-core
   ];
 
+  propagatedBuildInputs = [
+    typing-extensions
+  ];
+
   doCheck = false;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/celery/default.nix b/nixpkgs/pkgs/development/python-modules/celery/default.nix
index 587c17b3eca9..a787e1fce4ea 100644
--- a/nixpkgs/pkgs/development/python-modules/celery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/celery/default.nix
@@ -74,6 +74,8 @@ buildPythonPackage rec {
     # test_multi tries to create directories under /var
     "t/unit/bin/test_multi.py"
     "t/unit/apps/test_multi.py"
+    # requires moto<5
+    "t/unit/backends/test_s3.py"
   ];
 
   disabledTests = [
@@ -103,6 +105,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Distributed task queue";
+    mainProgram = "celery";
     homepage = "https://github.com/celery/celery/";
     changelog = "https://github.com/celery/celery/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/cement/default.nix b/nixpkgs/pkgs/development/python-modules/cement/default.nix
index 1d7f2d57cc1b..cc71268dee0b 100644
--- a/nixpkgs/pkgs/development/python-modules/cement/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cement/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "CLI Application Framework for Python";
+    mainProgram = "cement";
     homepage = "https://builtoncement.com/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ eqyiel ];
diff --git a/nixpkgs/pkgs/development/python-modules/censys/default.nix b/nixpkgs/pkgs/development/python-modules/censys/default.nix
index 901f70dddd2e..97b4f7085387 100644
--- a/nixpkgs/pkgs/development/python-modules/censys/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/censys/default.nix
@@ -74,6 +74,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python API wrapper for the Censys Search Engine (censys.io)";
+    mainProgram = "censys";
     homepage = "https://github.com/censys/censys-python";
     changelog = "https://github.com/censys/censys-python/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/cepa/default.nix b/nixpkgs/pkgs/development/python-modules/cepa/default.nix
index 5e28aca3c642..1b12ea1e5efb 100644
--- a/nixpkgs/pkgs/development/python-modules/cepa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cepa/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Controller library that allows applications to interact with Tor";
+    mainProgram = "tor-prompt";
     homepage = "https://github.com/onionshare/cepa";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ bbjubjub ];
diff --git a/nixpkgs/pkgs/development/python-modules/cert-chain-resolver/default.nix b/nixpkgs/pkgs/development/python-modules/cert-chain-resolver/default.nix
index b1cbde96ab38..de89116b4c92 100644
--- a/nixpkgs/pkgs/development/python-modules/cert-chain-resolver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cert-chain-resolver/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Resolve / obtain the certificate intermediates of a x509 certificate";
+    mainProgram = "cert-chain-resolver";
     homepage = "https://github.com/rkoopmans/python-certificate-chain-resolver";
     changelog = "https://github.com/rkoopmans/python-certificate-chain-resolver/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/certauth/default.nix b/nixpkgs/pkgs/development/python-modules/certauth/default.nix
index c69eccf10cd6..efdd6c03b256 100644
--- a/nixpkgs/pkgs/development/python-modules/certauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/certauth/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Simple CertificateAuthority and host certificate creation, useful for man-in-the-middle HTTPS proxy";
+    mainProgram = "certauth";
     homepage = "https://github.com/ikreymer/certauth";
     license = licenses.mit;
     maintainers = with maintainers; [ Luflosi ];
diff --git a/nixpkgs/pkgs/development/python-modules/certipy-ad/default.nix b/nixpkgs/pkgs/development/python-modules/certipy-ad/default.nix
index dd3b161caf5d..794c35f4d75c 100644
--- a/nixpkgs/pkgs/development/python-modules/certipy-ad/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/certipy-ad/default.nix
@@ -20,7 +20,7 @@
 buildPythonPackage rec {
   pname = "certipy-ad";
   version = "4.8.2";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -37,6 +37,10 @@ buildPythonPackage rec {
       --replace "pyasn1==0.4.8" "pyasn1"
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     asn1crypto
     cryptography
@@ -49,8 +53,8 @@ buildPythonPackage rec {
     pyopenssl
     requests
     requests-ntlm
-    unicrypto
     setuptools
+    unicrypto
   ];
 
   # Project has no tests
@@ -62,6 +66,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library and CLI tool to enumerate and abuse misconfigurations in Active Directory Certificate Services";
+    mainProgram = "certipy";
     homepage = "https://github.com/ly4k/Certipy";
     changelog = "https://github.com/ly4k/Certipy/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/certipy/default.nix b/nixpkgs/pkgs/development/python-modules/certipy/default.nix
index 33bfc2f72e78..e0ee3b6319b7 100644
--- a/nixpkgs/pkgs/development/python-modules/certipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/certipy/default.nix
@@ -21,6 +21,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/LLNL/certipy";
     description = "wrapper for pyOpenSSL";
+    mainProgram = "certipy";
     license = licenses.bsd3;
     maintainers = with maintainers; [ isgy ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/certomancer/default.nix b/nixpkgs/pkgs/development/python-modules/certomancer/default.nix
index 641941e7f38d..4adb682f6dce 100644
--- a/nixpkgs/pkgs/development/python-modules/certomancer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/certomancer/default.nix
@@ -92,6 +92,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Quickly construct, mock & deploy PKI test configurations using simple declarative configuration";
+    mainProgram = "certomancer";
     homepage = "https://github.com/MatthiasValvekens/certomancer";
     license = licenses.mit;
     maintainers = with maintainers; [ wolfangaukang ];
diff --git a/nixpkgs/pkgs/development/python-modules/cffconvert/default.nix b/nixpkgs/pkgs/development/python-modules/cffconvert/default.nix
new file mode 100644
index 000000000000..9ca8fb492e5e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cffconvert/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, click
+, requests
+, ruamel-yaml
+, pykwalify
+, jsonschema
+, pytestCheckHook
+, pytest-cov
+}:
+
+buildPythonPackage rec {
+  pname = "cffconvert";
+  version = "2.0.0-unstable-2024-02-12";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "citation-file-format";
+    repo = "cffconvert";
+    rev = "5295f87c0e261da61a7b919fc754e3a77edd98a7";
+    hash = "sha256-/2qhWVNylrqPSf1KmuZQahzq+YH860cohVSfJsDm1BE=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    click
+    requests
+    ruamel-yaml
+    pykwalify
+    jsonschema
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  checkInputs = [
+    # addopts uses --no-cov
+    pytest-cov
+  ];
+
+  disabledTestPaths = [
+    # requires network access
+    "tests/cli/test_rawify_url.py"
+  ];
+
+  pythonImportsCheckHook = [
+    "cffconvert"
+  ];
+
+  meta = {
+    changelog = "https://github.com/citation-file-format/cffconvert/blob/${src.rev}/CHANGELOG.md";
+    description = "Command line program to validate and convert CITATION.cff files";
+    homepage = "https://github.com/citation-file-format/cffconvert";
+    license = lib.licenses.asl20;
+    mainProgram = "cffconvert";
+    maintainers = with lib.maintainers; [ drupol ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cffsubr/default.nix b/nixpkgs/pkgs/development/python-modules/cffsubr/default.nix
index e86277cf2782..324145639a3a 100644
--- a/nixpkgs/pkgs/development/python-modules/cffsubr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cffsubr/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Standalone CFF subroutinizer based on AFDKO tx";
+    mainProgram = "cffsubr";
     homepage = "https://github.com/adobe-type-tools/cffsubr";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/cfn-flip/default.nix b/nixpkgs/pkgs/development/python-modules/cfn-flip/default.nix
index d1fa5de4793d..bca9fbd06fbb 100644
--- a/nixpkgs/pkgs/development/python-modules/cfn-flip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cfn-flip/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool for converting AWS CloudFormation templates between JSON and YAML formats";
+    mainProgram = "cfn-flip";
     homepage = "https://github.com/awslabs/aws-cfn-template-flip";
     license = licenses.asl20;
     maintainers = with maintainers; [ kamadorueda psyanticy ];
diff --git a/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix b/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix
index c98715f9ab02..e4561df27121 100644
--- a/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "cfn-lint";
-  version = "0.84.0";
+  version = "0.86.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "aws-cloudformation";
     repo = "cfn-lint";
     rev = "refs/tags/v${version}";
-    hash = "sha256-N1bMJdPgl3Ohe4MhmFB5KH2FK4Vp2jB0RUscLFDvi2k=";
+    hash = "sha256-QkxCQ8YPRZSqAidmPus4JCgzez6uuRWvcaqfZsvugtY=";
   };
 
   propagatedBuildInputs = [
@@ -76,6 +76,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Checks cloudformation for practices and behaviour that could potentially be improved";
+    mainProgram = "cfn-lint";
     homepage = "https://github.com/aws-cloudformation/cfn-lint";
     changelog = "https://github.com/aws-cloudformation/cfn-lint/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/cgroup-utils/default.nix b/nixpkgs/pkgs/development/python-modules/cgroup-utils/default.nix
index 2d65a03f68d0..4dfd3901ef7f 100644
--- a/nixpkgs/pkgs/development/python-modules/cgroup-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cgroup-utils/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Utility tools for control groups of Linux";
+    mainProgram = "cgutil";
     maintainers = with maintainers; [ layus ];
     platforms = platforms.linux;
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/chalice/default.nix b/nixpkgs/pkgs/development/python-modules/chalice/default.nix
index 915e40544a82..2e880508e0b4 100644
--- a/nixpkgs/pkgs/development/python-modules/chalice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chalice/default.nix
@@ -66,6 +66,10 @@ buildPythonPackage rec {
     websocket-client
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   disabledTestPaths = [
     # Don't check the templates and the sample app
     "chalice/templates"
@@ -102,6 +106,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python Serverless Microframework for AWS";
+    mainProgram = "chalice";
     homepage = "https://github.com/aws/chalice";
     changelog = "https://github.com/aws/chalice/blob/${version}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/chameleon/default.nix b/nixpkgs/pkgs/development/python-modules/chameleon/default.nix
index ec6ab88447a5..3c97002f5dcd 100644
--- a/nixpkgs/pkgs/development/python-modules/chameleon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chameleon/default.nix
@@ -2,7 +2,9 @@
 , buildPythonPackage
 , fetchFromGitHub
 , setuptools
+, importlib-metadata
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
@@ -21,6 +23,10 @@ buildPythonPackage rec {
     setuptools
   ];
 
+  dependencies = lib.optionals (pythonOlder "3.10") [
+    importlib-metadata
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/chardet/default.nix b/nixpkgs/pkgs/development/python-modules/chardet/default.nix
index 7c78de37d36d..f0170eb641e3 100644
--- a/nixpkgs/pkgs/development/python-modules/chardet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chardet/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/chardet/chardet/releases/tag/${version}";
     description = "Universal encoding detector";
+    mainProgram = "chardetect";
     homepage = "https://github.com/chardet/chardet";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ domenkozar ];
diff --git a/nixpkgs/pkgs/development/python-modules/charset-normalizer/default.nix b/nixpkgs/pkgs/development/python-modules/charset-normalizer/default.nix
index 2f6c3533dd77..2a6a13dc0bf8 100644
--- a/nixpkgs/pkgs/development/python-modules/charset-normalizer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/charset-normalizer/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module for encoding and language detection";
+    mainProgram = "normalizer";
     homepage = "https://charset-normalizer.readthedocs.io/";
     changelog = "https://github.com/Ousret/charset_normalizer/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/chat-downloader/default.nix b/nixpkgs/pkgs/development/python-modules/chat-downloader/default.nix
index 13434cc86d05..fe35f5a52bd3 100644
--- a/nixpkgs/pkgs/development/python-modules/chat-downloader/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chat-downloader/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A simple tool used to retrieve chat messages from livestreams, videos, clips and past broadcasts";
+    mainProgram = "chat_downloader";
     homepage = "https://github.com/xenova/chat-downloader";
     changelog = "https://github.com/xenova/chat-downloader/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix b/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
index 832cac1f7872..1533329d5572 100644
--- a/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Check MANIFEST.in in a Python source package for completeness";
+    mainProgram = "check-manifest";
     homepage = "https://github.com/mgedmin/check-manifest";
     changelog = "https://github.com/mgedmin/check-manifest/blob/${version}/CHANGES.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/checkdmarc/default.nix b/nixpkgs/pkgs/development/python-modules/checkdmarc/default.nix
index 6c261cff35fd..c39b70407931 100644
--- a/nixpkgs/pkgs/development/python-modules/checkdmarc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/checkdmarc/default.nix
@@ -66,6 +66,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A parser for SPF and DMARC DNS records";
+    mainProgram = "checkdmarc";
     homepage = "https://github.com/domainaware/checkdmarc";
     changelog = "https://github.com/domainaware/checkdmarc/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/cheroot/default.nix b/nixpkgs/pkgs/development/python-modules/cheroot/default.nix
index 89d4d69b9161..602afd0f755f 100644
--- a/nixpkgs/pkgs/development/python-modules/cheroot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cheroot/default.nix
@@ -98,6 +98,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "High-performance, pure-Python HTTP";
+    mainProgram = "cheroot";
     homepage = "https://github.com/cherrypy/cheroot";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix b/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
index 51c8b62c9716..6d1fffbdedc9 100644
--- a/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildPythonPackage
 , cheroot
+, fetchpatch
 , fetchPypi
 , jaraco-collections
 , more-itertools
@@ -24,23 +25,34 @@
 
 buildPythonPackage rec {
   pname = "cherrypy";
-  version = "18.8.0";
-  format = "setuptools";
+  version = "18.9.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "CherryPy";
     inherit version;
-    hash = "sha256-m0jPuoovFtW2QZzGV+bVHbAFujXF44JORyi7A7vH75s=";
+    hash = "sha256-awbBkc5xqGRh8wVyoatX/8CfQxQ7qOQsEDx7M0ciDrE=";
   };
 
+  patches = [
+    # Replace distutils.spawn.find_executable with shutil.which, https://github.com/cherrypy/cherrypy/pull/2023
+    (fetchpatch {
+      name = "remove-distutils.patch";
+      url = "https://github.com/cherrypy/cherrypy/commit/8a19dd5f1e712a326a3613b17e6fc900012ed09a.patch";
+      hash = "sha256-fXECX0CdU74usiq9GEkIG9CF+dueszblT4qOeF6B700=";
+    })
+  ];
+
   postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail '"setuptools_scm_git_archive >= 1.1",' ""
     # Disable doctest plugin because times out
     substituteInPlace pytest.ini \
-      --replace "--doctest-modules" "-vvv" \
-      --replace "-p pytest_cov" "" \
-      --replace "--no-cov-on-fail" ""
+      --replace-fail "--doctest-modules" "-vvv" \
+      --replace-fail "-p pytest_cov" "" \
+      --replace-fail "--no-cov-on-fail" ""
     sed -i "/--cov/d" pytest.ini
   '';
 
@@ -50,10 +62,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     cheroot
-    portend
+    jaraco-collections
     more-itertools
+    portend
     zc-lockfile
-    jaraco-collections
   ];
 
   nativeCheckInputs = [
@@ -125,7 +137,9 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Object-oriented HTTP framework";
+    mainProgram = "cherryd";
     homepage = "https://cherrypy.dev/";
+    changelog = "https://github.com/cherrypy/cherrypy/blob/v${version}/CHANGES.rst";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/chevron/default.nix b/nixpkgs/pkgs/development/python-modules/chevron/default.nix
index 48b1a5c5c157..6a122ecf31e3 100644
--- a/nixpkgs/pkgs/development/python-modules/chevron/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chevron/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage {
   meta = with lib; {
     homepage = "https://github.com/noahmorrison/chevron";
     description = "A python implementation of the mustache templating language";
+    mainProgram = "chevron";
     license = licenses.mit;
     maintainers = with maintainers; [ dhkl ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/chromadb/default.nix b/nixpkgs/pkgs/development/python-modules/chromadb/default.nix
index 0cc5484332df..6b1ad4dc6976 100644
--- a/nixpkgs/pkgs/development/python-modules/chromadb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chromadb/default.nix
@@ -150,8 +150,11 @@ buildPythonPackage rec {
     "chromadb/test/stress/"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "The AI-native open-source embedding database";
+    mainProgram = "chroma";
     homepage = "https://github.com/chroma-core/chroma";
     changelog = "https://github.com/chroma-core/chroma/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/citeproc-py/default.nix b/nixpkgs/pkgs/development/python-modules/citeproc-py/default.nix
index d46a6bdb70d6..264b0f3b3481 100644
--- a/nixpkgs/pkgs/development/python-modules/citeproc-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/citeproc-py/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/brechtm/citeproc-py";
     description = "Citation Style Language (CSL) parser for Python";
+    mainProgram = "csl_unsorted";
     license = licenses.bsd2;
     maintainers = with maintainers; [ bcdarwin ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix b/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix
index e9654b0e67d5..84f63752e2ae 100644
--- a/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Communicate with your Coldcard using Python";
+    mainProgram = "ckcc";
     homepage = "https://github.com/Coldcard/ckcc-protocol";
     license = licenses.mit;
     maintainers = with maintainers; [ hkjn ];
diff --git a/nixpkgs/pkgs/development/python-modules/clarifai-grpc/default.nix b/nixpkgs/pkgs/development/python-modules/clarifai-grpc/default.nix
index 9b11a7747906..2503df540047 100644
--- a/nixpkgs/pkgs/development/python-modules/clarifai-grpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clarifai-grpc/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "clarifai-grpc";
-  version = "10.2.0";
+  version = "10.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Clarifai";
     repo = "clarifai-python-grpc";
     rev = "refs/tags/${version}";
-    hash = "sha256-DriHPROCDdzqtqtGgUr0Ls/QBtDYPVhCFTeFePwoHQU=";
+    hash = "sha256-8U1e4NOvi2+8GFMXwKiAiCyMYTsfKGW728v0tk6WlgQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/clarifai/default.nix b/nixpkgs/pkgs/development/python-modules/clarifai/default.nix
index 05a86d09ee77..a6a28221ce66 100644
--- a/nixpkgs/pkgs/development/python-modules/clarifai/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clarifai/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "clarifai";
-  version = "10.1.0";
+  version = "10.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "Clarifai";
     repo = "clarifai-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-/2PIsSsYr/R7DuTX/ndBAOX7C3IaFqPw16ZAX8E1Vk8=";
+    hash = "sha256-36XceC40cL0SywY0Mus/s8OCO0ujWqxEIKZW+fvd7lw=";
   };
 
   pythonRelaxDeps = [
@@ -102,6 +102,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Clarifai Python Utilities";
+    mainProgram = "clarifai";
     homepage = "https://github.com/Clarifai/clarifai-python";
     changelog = "https://github.com/Clarifai/clarifai-python/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/cleanlab/default.nix b/nixpkgs/pkgs/development/python-modules/cleanlab/default.nix
index fdaf384262b8..073ac338fb0b 100644
--- a/nixpkgs/pkgs/development/python-modules/cleanlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cleanlab/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "cleanlab";
-  version = "2.5.0";
+  version = "2.6.1";
   pyproject = true;
   disabled = pythonOlder "3.7";
 
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "cleanlab";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-5XQQVrhjpvjwtFM79DqttObmw/GQLkMQVXb5jhiC8e0=";
+    hash = "sha256-+uJtm/t6Ri25V/9N/2fcOgCOBaBy8PrsM/tO1uX7FEY=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/clevercsv/default.nix b/nixpkgs/pkgs/development/python-modules/clevercsv/default.nix
index 6ad07d8ec62e..fd8e4f61dceb 100644
--- a/nixpkgs/pkgs/development/python-modules/clevercsv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clevercsv/default.nix
@@ -72,6 +72,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "CleverCSV is a Python package for handling messy CSV files";
+    mainProgram = "clevercsv";
     longDescription = ''
       CleverCSV is a Python package for handling messy CSV files. It provides
       a drop-in replacement for the builtin CSV module with improved dialect
diff --git a/nixpkgs/pkgs/development/python-modules/clf/default.nix b/nixpkgs/pkgs/development/python-modules/clf/default.nix
index d63079f725e2..0dd3609197f8 100644
--- a/nixpkgs/pkgs/development/python-modules/clf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clf/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/ncrocfer/clf";
     description = "Command line tool to search snippets on Commandlinefu.com";
+    mainProgram = "clf";
     license = licenses.mit;
     maintainers = with maintainers; [ koral ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/cliche/default.nix b/nixpkgs/pkgs/development/python-modules/cliche/default.nix
index e0657336a093..b51801d8d2d3 100644
--- a/nixpkgs/pkgs/development/python-modules/cliche/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cliche/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Build a simple command-line interface from your functions :computer:";
+    mainProgram = "cliche";
     homepage = "https://github.com/kootenpv/cliche";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/click-odoo/default.nix b/nixpkgs/pkgs/development/python-modules/click-odoo/default.nix
index 2dd211d24a01..b4cd69ed978a 100644
--- a/nixpkgs/pkgs/development/python-modules/click-odoo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/click-odoo/default.nix
@@ -28,6 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Odoo scripting helper library";
+    mainProgram = "click-odoo";
     homepage = "https://github.com/acsone/click-odoo";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ yajo ];
diff --git a/nixpkgs/pkgs/development/python-modules/clickhouse-cityhash/default.nix b/nixpkgs/pkgs/development/python-modules/clickhouse-cityhash/default.nix
index 770d4e76fb72..d8fad65bef0d 100644
--- a/nixpkgs/pkgs/development/python-modules/clickhouse-cityhash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clickhouse-cityhash/default.nix
@@ -1,14 +1,15 @@
 { lib
 , buildPythonPackage
+, cython_3
 , fetchPypi
-, setuptools
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "clickhouse-cityhash";
   version = "1.0.2.4";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -17,7 +18,8 @@ buildPythonPackage rec {
     hash = "sha256-ezEl19CqE8LMTnWDqWWmv7CqlqEhMUdbRCVSustV9Pg=";
   };
 
-  propagatedBuildInputs = [
+  nativeBuildInputs = [
+    cython_3
     setuptools
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/clickhouse-cli/default.nix b/nixpkgs/pkgs/development/python-modules/clickhouse-cli/default.nix
index 8abe4c1b3aa6..170d15239303 100644
--- a/nixpkgs/pkgs/development/python-modules/clickhouse-cli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clickhouse-cli/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A third-party client for the Clickhouse DBMS server";
+    mainProgram = "clickhouse-cli";
     homepage = "https://github.com/hatarist/clickhouse-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ ivan-babrou ];
diff --git a/nixpkgs/pkgs/development/python-modules/clickhouse-connect/default.nix b/nixpkgs/pkgs/development/python-modules/clickhouse-connect/default.nix
index b51949f73a13..5be944efdb1d 100644
--- a/nixpkgs/pkgs/development/python-modules/clickhouse-connect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clickhouse-connect/default.nix
@@ -23,7 +23,7 @@
 }:
 buildPythonPackage rec {
   pname = "clickhouse-connect";
-  version = "0.7.1";
+  version = "0.7.3";
 
   format = "setuptools";
 
@@ -33,7 +33,7 @@ buildPythonPackage rec {
     repo = "clickhouse-connect";
     owner = "ClickHouse";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Qdv0DcdIjqz8NtyMsVNQxGTxsB3TpXUGDA3oL8QbBDc=";
+    hash = "sha256-MA902Dyx3a8GTZ52LYY0UrWqNEFmibqIsdz6PFZIkIY=";
   };
 
   nativeBuildInputs = [ cython_3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/clickhouse-driver/default.nix b/nixpkgs/pkgs/development/python-modules/clickhouse-driver/default.nix
index 3abeeb013ff6..716914b3caee 100644
--- a/nixpkgs/pkgs/development/python-modules/clickhouse-driver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clickhouse-driver/default.nix
@@ -1,22 +1,23 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytz
-, tzlocal
 , clickhouse-cityhash
-, zstd
-, lz4
+, cython_3
+, fetchFromGitHub
 , freezegun
+, lz4
 , mock
 , nose
 , pytestCheckHook
 , pytest-xdist
+, pytz
+, setuptools
+, tzlocal
+, zstd
 }:
 
 buildPythonPackage rec {
   pname = "clickhouse-driver";
-  version = "0.2.5";
+  version = "0.2.7";
   format = "setuptools";
 
   # pypi source doesn't contain tests
@@ -24,16 +25,20 @@ buildPythonPackage rec {
     owner = "mymarilyn";
     repo = "clickhouse-driver";
     rev = version;
-    hash = "sha256-o5v37jPKmvUW4GFVD742nHSdO0g0z2FA4FkacbaRfNA=";
+    hash = "sha256-l0YHWY25PMHgZG/sAZjtGhwmcxWdA8k96zlm9hbKcek=";
   };
 
-  propagatedBuildInputs = [
+  nativeBuildInputs = [
+    cython_3
     setuptools
+  ];
+
+  propagatedBuildInputs = [
+    clickhouse-cityhash
+    lz4
     pytz
     tzlocal
-    clickhouse-cityhash
     zstd
-    lz4
   ];
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cliff/default.nix b/nixpkgs/pkgs/development/python-modules/cliff/default.nix
index 9715a41852b6..f36ccba9718f 100644
--- a/nixpkgs/pkgs/development/python-modules/cliff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cliff/default.nix
@@ -17,12 +17,12 @@
 
 buildPythonPackage rec {
   pname = "cliff";
-  version = "4.4.0";
+  version = "4.6.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qo1ASqLWtNhjnGG9bcR6yzZW68P8Alsbe7B68rrveF8=";
+    hash = "sha256-LzjOi9HqSVjWbxWwZqxH5l1h9gC5MZuSHhLp6cvNmdA=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/cloudpathlib/default.nix b/nixpkgs/pkgs/development/python-modules/cloudpathlib/default.nix
index 89f5ef6fbf5c..3f14fae210d2 100644
--- a/nixpkgs/pkgs/development/python-modules/cloudpathlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cloudpathlib/default.nix
@@ -12,6 +12,7 @@
 , psutil
 , pydantic
 , pytestCheckHook
+, pytest_7
 , pytest-cases
 , pytest-cov
 , pytest-xdist
@@ -65,7 +66,7 @@ buildPythonPackage rec {
     google-cloud-storage
     psutil
     pydantic
-    pytestCheckHook
+    (pytestCheckHook.override { pytest = pytest_7; })
     pytest-cases
     pytest-cov
     pytest-xdist
diff --git a/nixpkgs/pkgs/development/python-modules/cloudsmith-api/default.nix b/nixpkgs/pkgs/development/python-modules/cloudsmith-api/default.nix
index efc930341be2..bd17a7791f1b 100644
--- a/nixpkgs/pkgs/development/python-modules/cloudsmith-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cloudsmith-api/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "cloudsmith-api";
-  version = "2.0.10";
+  version = "2.0.11";
   format = "wheel";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "cloudsmith_api";
     inherit format version;
-    hash = "sha256-h193MX8W12dYQnUVG20iWiSnnIFMdUc4amhJ7rGqb/4=";
+    hash = "sha256-GwRN3nVMf/OusgJICf/GCCcZ4szEIGl8AZQ7J7LBzro=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cloudsplaining/default.nix b/nixpkgs/pkgs/development/python-modules/cloudsplaining/default.nix
index bb4340eec4c6..7c559db4337a 100644
--- a/nixpkgs/pkgs/development/python-modules/cloudsplaining/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cloudsplaining/default.nix
@@ -62,6 +62,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module for AWS IAM security assessment";
+    mainProgram = "cloudsplaining";
     homepage = "https://github.com/salesforce/cloudsplaining";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/clustershell/default.nix b/nixpkgs/pkgs/development/python-modules/clustershell/default.nix
index 87fef1f934cf..c8fbbc7ad9d1 100644
--- a/nixpkgs/pkgs/development/python-modules/clustershell/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clustershell/default.nix
@@ -11,11 +11,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "ClusterShell";
+  pname = "clustershell";
   version = "1.9.2";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "ClusterShell";
+    inherit version;
     hash = "sha256-rsF/HG4GNBC+N49b+sDO2AyUI1G44wJNBUwQNPzShD0=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/cmarkgfm/default.nix b/nixpkgs/pkgs/development/python-modules/cmarkgfm/default.nix
index aaa29b577eed..1c5e80961d54 100644
--- a/nixpkgs/pkgs/development/python-modules/cmarkgfm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cmarkgfm/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "cmarkgfm";
-  version = "2022.10.27";
+  version = "2024.1.14";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-k9msdxbqkBygv9GK47aPH2v1HeCDDD8jPvc0/NUqB5k=";
+    hash = "sha256-ogjBcm4SujhRJc7yxtN1xBxd6kzCZzp3r3ErHb8HTpA=";
   };
 
   propagatedNativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/coapthon3/default.nix b/nixpkgs/pkgs/development/python-modules/coapthon3/default.nix
index aa2781a7fd86..cba1de6aab46 100644
--- a/nixpkgs/pkgs/development/python-modules/coapthon3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coapthon3/default.nix
@@ -1,13 +1,13 @@
 { buildPythonPackage, cachetools, fetchFromGitHub, isPy27, lib }:
 
 buildPythonPackage rec {
-  pname = "CoAPthon3";
+  pname = "coapthon3";
   version = "1.0.2";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "Tanganelli";
-    repo = pname;
+    repo = "CoAPthon3";
     rev = version;
     hash = "sha256-9QApoPUu3XFZY/lgjAsf5r2StFiRtUd1UXWDrzYUh6w=";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/coconut/default.nix b/nixpkgs/pkgs/development/python-modules/coconut/default.nix
index 19571b93ac1e..5e56c2ef139d 100644
--- a/nixpkgs/pkgs/development/python-modules/coconut/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coconut/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "coconut";
-  version = "3.0.4";
+  version = "3.1.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "evhub";
     repo = "coconut";
     rev = "refs/tags/v${version}";
-    hash = "sha256-TIYep9EuCfcN8bp0vkaoB5W626lrD4PVh+oYKmVrfeY=";
+    hash = "sha256-xlA/yryUXZCU56gJ0y7M9JHgWkvXiB09ywyf0sP1o+4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cocotb/default.nix b/nixpkgs/pkgs/development/python-modules/cocotb/default.nix
index 22cc1ced7762..0e758490b803 100644
--- a/nixpkgs/pkgs/development/python-modules/cocotb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cocotb/default.nix
@@ -65,6 +65,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/cocotb/cocotb/releases/tag/v${version}";
     description = "Coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python";
+    mainProgram = "cocotb-config";
     homepage = "https://github.com/cocotb/cocotb";
     license = licenses.bsd3;
     maintainers = with maintainers; [ matthuszagh jleightcap ];
diff --git a/nixpkgs/pkgs/development/python-modules/codecov/default.nix b/nixpkgs/pkgs/development/python-modules/codecov/default.nix
index c6af62860d4b..ccc95b894f39 100644
--- a/nixpkgs/pkgs/development/python-modules/codecov/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/codecov/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python report uploader for Codecov";
+    mainProgram = "codecov";
     homepage = "https://codecov.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/cogapp/default.nix b/nixpkgs/pkgs/development/python-modules/cogapp/default.nix
index 92d44c82ef3d..7f039aa24faf 100644
--- a/nixpkgs/pkgs/development/python-modules/cogapp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cogapp/default.nix
@@ -1,15 +1,23 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+}:
 
 buildPythonPackage rec {
   pname = "cogapp";
-  version = "3.3.0";
-  format = "setuptools";
+  version = "3.4.1";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1be95183f70282422d594fa42426be6923070a4bd8335621f6347f3aeee81db0";
+    sha256 = "sha256-qAbV254xihotP86YgAgXkWjn2xPl5VsZt5dj+budKYI=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # there are no tests
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/cohere/default.nix b/nixpkgs/pkgs/development/python-modules/cohere/default.nix
index 323efb118503..0383e7d0f9cf 100644
--- a/nixpkgs/pkgs/development/python-modules/cohere/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cohere/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "cohere";
-  version = "4.52";
+  version = "4.56";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-C2w447+hxsFrjLpV3wrSzptuVb1JTyppq+NUzMCU+Iw=";
+    hash = "sha256-rOAQzT1A/q74WnfazCMDtou7SnP0h+UGCyBxihqLmzc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/coincurve/default.nix b/nixpkgs/pkgs/development/python-modules/coincurve/default.nix
index 58423859779a..2cdb2d8f4fe2 100644
--- a/nixpkgs/pkgs/development/python-modules/coincurve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coincurve/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "coincurve";
-  version = "18.0.0";
+  version = "19.0.1";
   format = "setuptools";
   disabled = pythonOlder "3.7";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "ofek";
     repo = "coincurve";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Z5g6ten8wNICoFu7+aZc6r8ET+RDmFeb93ONjsTzcbw=";
+    hash = "sha256-T60iKRrc8/t86nqf8/R4971SjOw586YNCWWBuLd9MjM=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/coinmetrics-api-client/default.nix b/nixpkgs/pkgs/development/python-modules/coinmetrics-api-client/default.nix
index 5085489127ba..421be646d19e 100644
--- a/nixpkgs/pkgs/development/python-modules/coinmetrics-api-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coinmetrics-api-client/default.nix
@@ -67,6 +67,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Coin Metrics API v4 client library";
+    mainProgram = "coinmetrics";
     homepage = "https://coinmetrics.github.io/api-client-python/site/index.html";
     license = licenses.mit;
     maintainers = with maintainers; [ centromere ];
diff --git a/nixpkgs/pkgs/development/python-modules/colorcet/default.nix b/nixpkgs/pkgs/development/python-modules/colorcet/default.nix
index efee49934d87..0b64ccabdbe1 100644
--- a/nixpkgs/pkgs/development/python-modules/colorcet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colorcet/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "colorcet";
-  version = "3.0.1";
+  version = "3.1.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UUVaIDU9EvrJH5U3cthAnyR05qDbGvP6T3AF9AWiSAs=";
+    hash = "sha256-KSGzzYGiKIqvLWPbwM48JtzYgujDicxQXWiGv3qppOs=";
   };
 
   propagatedBuildInputs = [
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Collection of perceptually uniform colormaps";
+    mainProgram = "colorcet";
     homepage = "https://colorcet.pyviz.org";
     license = licenses.cc-by-40;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix b/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix
index edc708f93e06..3f4dd4188040 100644
--- a/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix
@@ -52,6 +52,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Colored stream handler for Python's logging module";
+    mainProgram = "coloredlogs";
     homepage = "https://github.com/xolox/python-coloredlogs";
     license = licenses.mit;
     maintainers = with maintainers; [ eyjhb ];
diff --git a/nixpkgs/pkgs/development/python-modules/colout/default.nix b/nixpkgs/pkgs/development/python-modules/colout/default.nix
index e01193cd36ec..6325b6be5bda 100644
--- a/nixpkgs/pkgs/development/python-modules/colout/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colout/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Color Up Arbitrary Command Output";
+    mainProgram = "colout";
     homepage = "https://github.com/nojhan/colout";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ badele ];
diff --git a/nixpkgs/pkgs/development/python-modules/commonmark/default.nix b/nixpkgs/pkgs/development/python-modules/commonmark/default.nix
index bf6d74ea5f61..a6cf342ba04e 100644
--- a/nixpkgs/pkgs/development/python-modules/commonmark/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/commonmark/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python parser for the CommonMark Markdown spec";
+    mainProgram = "cmark";
     homepage = "https://github.com/rolandshoemaker/CommonMark-py";
     license = licenses.bsd3;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/compiledb/default.nix b/nixpkgs/pkgs/development/python-modules/compiledb/default.nix
index 25472793cce0..a97db47ffdb7 100644
--- a/nixpkgs/pkgs/development/python-modules/compiledb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/compiledb/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool for generating Clang's JSON Compilation Database files";
+    mainProgram = "compiledb";
     license = licenses.gpl3;
     homepage = "https://github.com/nickdiego/compiledb";
     maintainers = with maintainers; [ multun ];
diff --git a/nixpkgs/pkgs/development/python-modules/compreffor/default.nix b/nixpkgs/pkgs/development/python-modules/compreffor/default.nix
index f587a2963800..9ab5590e4e3b 100644
--- a/nixpkgs/pkgs/development/python-modules/compreffor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/compreffor/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "CFF table subroutinizer for FontTools";
+    mainProgram = "compreffor";
     homepage = "https://github.com/googlefonts/compreffor";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/compressed-rtf/default.nix b/nixpkgs/pkgs/development/python-modules/compressed-rtf/default.nix
new file mode 100644
index 000000000000..2f149d1aac1f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/compressed-rtf/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "compressed-rtf";
+  version = "1.0.6-unstable-2023-10-15";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "delimitry";
+    repo = "compressed_rtf";
+    # https://github.com/delimitry/compressed_rtf/issues/15
+    rev = "581400c1b4c69ab0d944cfb5ca82c32059bbcc96";
+    hash = "sha256-ivvND+cOCAmRyO8yL0+WhFY/2OkrJ+E/o4xWWd7ivHA=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "compressed_rtf"
+  ];
+
+  pytestFlagsArray = [
+    "tests/tests.py"
+  ];
+
+  meta = with lib; {
+    description = "Compressed Rich Text Format (RTF) compression and decompression";
+    homepage = "https://github.com/delimitry/compressed_rtf";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/concurrent-log-handler/default.nix b/nixpkgs/pkgs/development/python-modules/concurrent-log-handler/default.nix
index 85ee8bda114e..53586d9bb0c8 100644
--- a/nixpkgs/pkgs/development/python-modules/concurrent-log-handler/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/concurrent-log-handler/default.nix
@@ -1,20 +1,26 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, hatchling
 , portalocker
 }:
 
 buildPythonPackage rec {
   pname = "concurrent-log-handler";
-  version = "0.9.24";
-  format = "setuptools";
+  version = "0.9.25";
+  pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-APVkbG5fb8Y2VFNvO0Sqorm3SyMkXhT1JY7ZHOOdEuI=";
+    pname = "concurrent_log_handler";
+    inherit version;
+    hash = "sha256-HixvAhQU4hTT2sZhB4lIJ6PnjbYwGDBKTynlW6VJrCI=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    hatchling
+  ];
+
+  dependencies = [
     portalocker
   ];
 
@@ -26,7 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python logging handler that allows multiple processes to safely write to the same log file concurrently";
-    homepage = "https://pypi.org/project/concurrent-log-handler";
+    homepage = "https://github.com/Preston-Landers/concurrent-log-handler";
     license = licenses.asl20;
     maintainers = [ maintainers.bbjubjub ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/confight/default.nix b/nixpkgs/pkgs/development/python-modules/confight/default.nix
index 5933ffc5d842..718b0614b111 100644
--- a/nixpkgs/pkgs/development/python-modules/confight/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/confight/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python context manager for managing pid files";
+    mainProgram = "confight";
     homepage = "https://github.com/avature/confight";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ mkg20001 ];
diff --git a/nixpkgs/pkgs/development/python-modules/configparser/default.nix b/nixpkgs/pkgs/development/python-modules/configparser/default.nix
index 9dc6d16097a2..4495401250a2 100644
--- a/nixpkgs/pkgs/development/python-modules/configparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/configparser/default.nix
@@ -1,16 +1,28 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, setuptools-scm }:
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, setuptools
+, setuptools-scm
+}:
 
 buildPythonPackage rec {
   pname = "configparser";
-  version = "6.0.0";
-  format = "pyproject";
+  version = "6.0.1";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-7JFKseVsZy3h9cNIOWTmj3GzTkV5BLe3bga5Iq7AZ6g=";
+  src = fetchFromGitHub {
+    owner = "jaraco";
+    repo = "configparser";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-r+poK+knBQi48Z1VrNFqUt9Qm9iGERAOTFa4bKfXi0g=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -18,12 +30,6 @@ buildPythonPackage rec {
     export LC_ALL=${if stdenv.isDarwin then "en_US" else "C"}.UTF-8
   '';
 
-  preCheck = ''
-    # avoid FileNotFoundError
-    # FileNotFoundError: [Errno 2] No such file or directory: 'cfgparser.3'
-    cd tests
-  '';
-
   meta = with lib; {
     description = "Updated configparser from Python 3.7 for Python 2.6+.";
     homepage = "https://github.com/jaraco/configparser";
diff --git a/nixpkgs/pkgs/development/python-modules/connect-box/default.nix b/nixpkgs/pkgs/development/python-modules/connect-box/default.nix
index b7ba433478b2..34ca8dbb01df 100644
--- a/nixpkgs/pkgs/development/python-modules/connect-box/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/connect-box/default.nix
@@ -3,36 +3,54 @@
 , attrs
 , buildPythonPackage
 , defusedxml
-, fetchPypi
+, fetchFromGitHub
 , pythonOlder
+, pytest-asyncio
+, pytestCheckHook
+, setuptools
+, pytest-vcr
+, syrupy
 }:
 
 buildPythonPackage rec {
   pname = "connect-box";
-  version = "0.3.1";
-  format = "setuptools";
+  version = "0.4.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.9";
+  disabled = pythonOlder "3.10";
 
-  src = fetchPypi {
-    pname = "connect_box";
-    inherit version;
-    hash = "sha256-x1ozcj3IL+iI/QtS12yEudCqNknCmyb5ew88Z39xaLA=";
+  src = fetchFromGitHub {
+    owner = "home-assistant-ecosystem";
+    repo = "python-connect-box";
+    rev = "refs/tags/${version}";
+    hash = "sha256-zUvZRnxVzg9izvUbp7QVcyu6Bw3dUXHOr0kOQRWEZVc=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     attrs
     defusedxml
   ];
 
-  # No tests are present
-  doCheck = false;
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+    pytest-vcr
+    syrupy
+  ];
 
   pythonImportsCheck = [
     "connect_box"
   ];
 
+  pytestFlagsArray = [
+    "--vcr-record=none"
+  ];
+
   meta = with lib; {
     description = "Interact with a Compal CH7465LG cable modem/router";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/connexion/default.nix b/nixpkgs/pkgs/development/python-modules/connexion/default.nix
index aa5b58570478..46524a80b43c 100644
--- a/nixpkgs/pkgs/development/python-modules/connexion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/connexion/default.nix
@@ -89,10 +89,16 @@ buildPythonPackage rec {
   disabledTests = [
     # AssertionError
     "test_headers"
+    # waiter.acquire() deadlock
+    "test_cors_server_error"
+    "test_get_bad_default_response"
+    "test_schema_response"
+    "test_writeonly"
   ];
 
   meta = with lib; {
     description = "Swagger/OpenAPI First framework on top of Flask";
+    mainProgram = "connexion";
     homepage = "https://github.com/spec-first/connexion";
     changelog = "https://github.com/spec-first/connexion/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/controku/default.nix b/nixpkgs/pkgs/development/python-modules/controku/default.nix
index 4fd2e762b9c4..e2dd1d32b76a 100644
--- a/nixpkgs/pkgs/development/python-modules/controku/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/controku/default.nix
@@ -45,6 +45,7 @@ python3Packages.buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/benthetechguy/controku/releases/tag/${version}";
     description = "Control Roku devices from the comfort of your own desktop";
+    mainProgram = "controku";
     homepage = "https://github.com/benthetechguy/controku";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ mjm ];
diff --git a/nixpkgs/pkgs/development/python-modules/convertdate/default.nix b/nixpkgs/pkgs/development/python-modules/convertdate/default.nix
index 601799ba24e7..39a935e5e850 100644
--- a/nixpkgs/pkgs/development/python-modules/convertdate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/convertdate/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Utils for converting between date formats and calculating holidays";
+    mainProgram = "censusgeocode";
     homepage = "https://github.com/fitnr/convertdate";
     license = licenses.mit;
     maintainers = with maintainers; [ jluttine ];
diff --git a/nixpkgs/pkgs/development/python-modules/conway-polynomials/default.nix b/nixpkgs/pkgs/development/python-modules/conway-polynomials/default.nix
new file mode 100644
index 000000000000..d5b57a10aa39
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/conway-polynomials/default.nix
@@ -0,0 +1,23 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "conway-polynomials";
+  version = "0.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-btIwBgm8558BddW4VGhY7sAoVPi+MjfbjRRJzMzBxYE=";
+  };
+
+  pythonImportsCheck = [ "conway_polynomials" ];
+
+  meta = with lib; {
+    description = "Python interface to Frank Lübeck's Conway polynomial database";
+    homepage = "https://github.com/sagemath/conway-polynomials";
+    maintainers = teams.sage.members;
+    license = licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix b/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix
index 35e14b394e2e..6818f9021a44 100644
--- a/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "cookiecutter";
-  version = "2.5.0";
+  version = "2.6.0";
   pyproject = true;
 
   # not sure why this is broken
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-5h6QNHSOP0G4vSwR8A0DB4S0hxHE1cQjY8UJiaZTMew=";
+    hash = "sha256-2yH4Fp6k9P3CQI1IykSFk0neJkf75JSp1sPt/AVCwhw=";
   };
 
   nativeBuildInputs = [
@@ -54,6 +54,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/audreyr/cookiecutter";
     description = "A command-line utility that creates projects from project templates";
+    mainProgram = "cookiecutter";
     license = licenses.bsd3;
     maintainers = with maintainers; [ kragniz ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/cornice/default.nix b/nixpkgs/pkgs/development/python-modules/cornice/default.nix
index 75f7a6ffb2e4..ff6ede5dcf20 100644
--- a/nixpkgs/pkgs/development/python-modules/cornice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cornice/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "cornice";
-  version = "6.0.1";
+  version = "6.1.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6edf6f206ff1c3d108d7a7b9ae640a2f4737cfc04f0914ccc4eefe511d3a8985";
+    sha256 = "sha256-v9G2wqmRp8yxsggrbenjuPGYtqK0oHqwgA4F3wWkU2E=";
   };
 
   propagatedBuildInputs = [ pyramid simplejson six venusian ];
diff --git a/nixpkgs/pkgs/development/python-modules/correctionlib/default.nix b/nixpkgs/pkgs/development/python-modules/correctionlib/default.nix
index e378b71b43b8..23a8bee16d21 100644
--- a/nixpkgs/pkgs/development/python-modules/correctionlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/correctionlib/default.nix
@@ -60,6 +60,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Provides a well-structured JSON data format for a wide variety of ad-hoc correction factors encountered in a typical HEP analysis";
+    mainProgram = "correction";
     homepage = "https://cms-nanoaod.github.io/correctionlib/";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ veprbl ];
diff --git a/nixpkgs/pkgs/development/python-modules/corsair-scan/default.nix b/nixpkgs/pkgs/development/python-modules/corsair-scan/default.nix
index 82ef32b2d7b3..4d7190906b26 100644
--- a/nixpkgs/pkgs/development/python-modules/corsair-scan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/corsair-scan/default.nix
@@ -55,6 +55,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to check for Cross-Origin Resource Sharing (CORS) misconfigurations";
+    mainProgram = "corsair";
     homepage = "https://github.com/Santandersecurityresearch/corsair_scan";
     changelog = "https://github.com/Santandersecurityresearch/corsair_scan/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/cot/default.nix b/nixpkgs/pkgs/development/python-modules/cot/default.nix
index ed40735a2063..e65bc8577e4b 100644
--- a/nixpkgs/pkgs/development/python-modules/cot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cot/default.nix
@@ -80,6 +80,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Common OVF Tool";
+    mainProgram = "cot";
     longDescription = ''
       COT (the Common OVF Tool) is a tool for editing Open Virtualization Format (.ovf, .ova) virtual appliances,
       with a focus on virtualized network appliances such as the Cisco CSR 1000V and Cisco IOS XRv platforms.
diff --git a/nixpkgs/pkgs/development/python-modules/courlan/default.nix b/nixpkgs/pkgs/development/python-modules/courlan/default.nix
index f6676d4b6896..bd73aad1977d 100644
--- a/nixpkgs/pkgs/development/python-modules/courlan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/courlan/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Clean, filter and sample URLs to optimize data collection";
+    mainProgram = "courlan";
     homepage = "https://github.com/adbar/courlan";
     changelog = "https://github.com/adbar/courlan/blob/v${version}/HISTORY.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/coverage/default.nix b/nixpkgs/pkgs/development/python-modules/coverage/default.nix
index eba9e13865d8..4e4c86ae1063 100644
--- a/nixpkgs/pkgs/development/python-modules/coverage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coverage/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "coverage";
-  version = "7.3.2";
+  version = "7.4.3";
   pyproject = true;
 
   # uses f strings
@@ -16,7 +16,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-vjKtKTQbAXDnlcpZDhwH6B/AYctbEMdM5yA0kUhEBO8=";
+    hash = "sha256-J29gd6XGFEekjRM+0T51nAnmKv8NyEJ0po3BhmAQTVI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/coveralls/default.nix b/nixpkgs/pkgs/development/python-modules/coveralls/default.nix
index dd3aeb50afb8..c1b144109bea 100644
--- a/nixpkgs/pkgs/development/python-modules/coveralls/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coveralls/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Show coverage stats online via coveralls.io";
+    mainProgram = "coveralls";
     homepage = "https://github.com/coveralls-clients/coveralls-python";
     license = lib.licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/cram/default.nix b/nixpkgs/pkgs/development/python-modules/cram/default.nix
index 4006c4f28ef3..4efc13b53038 100644
--- a/nixpkgs/pkgs/development/python-modules/cram/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cram/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "A simple testing framework for command line applications";
+    mainProgram = "cram";
     homepage = "https://bitheap.org/cram/";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ jluttine ];
diff --git a/nixpkgs/pkgs/development/python-modules/cramjam/default.nix b/nixpkgs/pkgs/development/python-modules/cramjam/default.nix
index 03d823812c15..7a799429907e 100644
--- a/nixpkgs/pkgs/development/python-modules/cramjam/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cramjam/default.nix
@@ -4,35 +4,31 @@
 , rustPlatform
 , stdenv
 , libiconv
-, brotli
 , hypothesis
-, lz4
-, memory-profiler
 , numpy
-, py
-, pytest-benchmark
+, pytest-xdist
 , pytestCheckHook
-, python-snappy
-, zstd
 }:
 
 buildPythonPackage rec {
   pname = "cramjam";
-  version = "2.6.2.post1";
-  format = "pyproject";
+  version = "2.8.2";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "milesgranger";
     repo = "pyrus-cramjam";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KU1JVNEQJadXNiIWTvI33N2NSq994xoKxcAGGezFjaI=";
+    hash = "sha256-BO35s7qOW4+l968I9qn9L1m2BtgRFNYUNlA7W1sctT8=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
-    hash = "sha256-w1bEf+etLgR/YOyLmC3lFtO9fqAx8z2aul/XIKUQb5k=";
+    hash = "sha256-YWXf+ZDJLq6VxI5sa9G63fCPz2377BVSTmPM0mQSu8M=";
   };
 
+  buildAndTestSubdir = "cramjam-python";
+
   nativeBuildInputs = with rustPlatform; [
     cargoSetupHook
     maturinBuildHook
@@ -41,24 +37,18 @@ buildPythonPackage rec {
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   nativeCheckInputs = [
-    brotli
     hypothesis
-    lz4
-    memory-profiler
     numpy
-    py
-    pytest-benchmark
+    pytest-xdist
     pytestCheckHook
-    python-snappy
-    zstd
   ];
 
   pytestFlagsArray = [
-    "--benchmark-disable"
+    "cramjam-python/tests"
   ];
 
   disabledTestPaths = [
-    "benchmarks/test_bench.py"
+    "cramjam-python/benchmarks/test_bench.py"
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/crc/default.nix b/nixpkgs/pkgs/development/python-modules/crc/default.nix
index 2ff39e63981b..c8abe86e5ebf 100644
--- a/nixpkgs/pkgs/development/python-modules/crc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/crc/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/Nicoretti/crc/releases/tag/${version}";
     description = "Python module for calculating and verifying predefined & custom CRC's";
+    mainProgram = "crc";
     homepage = "https://nicoretti.github.io/crc/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ jleightcap ];
diff --git a/nixpkgs/pkgs/development/python-modules/credstash/default.nix b/nixpkgs/pkgs/development/python-modules/credstash/default.nix
index 76859ec88ff8..8ed90b65f7a2 100644
--- a/nixpkgs/pkgs/development/python-modules/credstash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/credstash/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A utility for managing secrets in the cloud using AWS KMS and DynamoDB";
+    mainProgram = "credstash";
     homepage = "https://github.com/LuminalOSS/credstash";
     license = licenses.asl20;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/criticality-score/default.nix b/nixpkgs/pkgs/development/python-modules/criticality-score/default.nix
index e1ff87549364..ffea5ad31dad 100644
--- a/nixpkgs/pkgs/development/python-modules/criticality-score/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/criticality-score/default.nix
@@ -17,6 +17,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python tool for computing the Open Source Project Criticality Score.";
+    mainProgram = "criticality_score";
     homepage = "https://github.com/ossf/criticality_score";
     changelog = "https://github.com/ossf/criticality_score/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/croniter/default.nix b/nixpkgs/pkgs/development/python-modules/croniter/default.nix
index 03f7c636393b..8db83b619969 100644
--- a/nixpkgs/pkgs/development/python-modules/croniter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/croniter/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "croniter";
-  version = "2.0.2";
+  version = "2.0.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-i/8Wya9O8ftvBUFpc7j3y1SZfALy+DZSUfm/Hd7ZGGY=";
+    hash = "sha256-KHY605xAThWRQIdPCAEM/YoY9MKnzqHOc+lQakOAz8E=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/crossplane/default.nix b/nixpkgs/pkgs/development/python-modules/crossplane/default.nix
index 20b4d4204f4c..d69708b8e212 100644
--- a/nixpkgs/pkgs/development/python-modules/crossplane/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/crossplane/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "NGINX configuration file parser and builder";
+    mainProgram = "crossplane";
     homepage = "https://github.com/nginxinc/crossplane";
     license = licenses.asl20;
     maintainers = with maintainers; [ kaction ];
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/default.nix b/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
index 4ae2e77de6ac..838ae389d38f 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
@@ -25,21 +25,21 @@
 
 buildPythonPackage rec {
   pname = "cryptography";
-  version = "42.0.2"; # Also update the hash in vectors.nix
+  version = "42.0.5"; # Also update the hash in vectors.nix
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4OxSujx/G32BPNUmSaWz7x/A1DMhncjJOCfFfqts+Ig=";
+    hash = "sha256-b+B+7JXf1HfrlTCu9b6tNP7IGbOq9sW9bSBWXaYHv+E=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     sourceRoot = "${pname}-${version}/${cargoRoot}";
     name = "${pname}-${version}";
-    hash = "sha256-jw/FC5rQO77h6omtBp0Nc2oitkVbNElbkBUduyprTIc=";
+    hash = "sha256-Pw3ftpcDMfZr/w6US5fnnyPVsFSB9+BuIKazDocYjTU=";
   };
 
   patches = [
@@ -95,10 +95,6 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # save compute time by not running benchmarks
     "tests/bench"
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
-    # aarch64-darwin forbids W+X memory, but this tests depends on it:
-    # * https://cffi.readthedocs.io/en/latest/using.html#callbacks
-    "tests/hazmat/backends/test_openssl_memleak.py"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix b/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix
index a5654de86cbb..a19ab7579d1f 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "cryptography_vectors";
     inherit version;
-    hash = "sha256-rc3M9dnuZhqWAq0h0lJfZ4ugem52jOeYNZlOIIurDhY=";
+    hash = "sha256-UFzV47DLMtoVJvBwQrf8OKS2w1ZxDLc9K192sDejjtE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cryptoparser/default.nix b/nixpkgs/pkgs/development/python-modules/cryptoparser/default.nix
index e377b35ee5be..fc18fadc3a3a 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptoparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptoparser/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "cryptoparser";
-  version = "0.12.2";
+  version = "0.12.3";
   pyproject = true;
 
   src = fetchPypi {
     pname = "CryptoParser";
     inherit version;
-    hash = "sha256-SG7I/uOWZapjZ5zGW1HndGqaYc2k2aRWf3IWlartIJE=";
+    hash = "sha256-1A0VEpUPsYtEu2aT+ldt/Z/PtV8lvD+9jSx75yGB6Ao=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix b/nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix
index 56dab1fbbb54..8ef955f56f8f 100644
--- a/nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/crytic-compile/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Abstraction layer for smart contract build systems";
+    mainProgram = "crytic-compile";
     homepage = "https://github.com/crytic/crytic-compile";
     changelog = "https://github.com/crytic/crytic-compile/releases/tag/${version}";
     license = licenses.agpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/css-html-js-minify/default.nix b/nixpkgs/pkgs/development/python-modules/css-html-js-minify/default.nix
index 304624a90ca0..f84dfbcaaecb 100644
--- a/nixpkgs/pkgs/development/python-modules/css-html-js-minify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/css-html-js-minify/default.nix
@@ -20,6 +20,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "StandAlone Async cross-platform Minifier for the Web";
+    mainProgram = "css-html-js-minify";
     homepage = "https://github.com/juancarlospaco/css-html-js-minify";
     license = with licenses; [ gpl3Plus lgpl3Plus mit ];
     maintainers = with maintainers; [ FlorianFranzen ];
diff --git a/nixpkgs/pkgs/development/python-modules/css-inline/Cargo.lock b/nixpkgs/pkgs/development/python-modules/css-inline/Cargo.lock
index 58bca2b6e0f7..429622a63cb8 100644
--- a/nixpkgs/pkgs/development/python-modules/css-inline/Cargo.lock
+++ b/nixpkgs/pkgs/development/python-modules/css-inline/Cargo.lock
@@ -3,6 +3,15 @@
 version = 3
 
 [[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
 name = "adler"
 version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -24,25 +33,31 @@ dependencies = [
 ]
 
 [[package]]
-name = "attohttpc"
-version = "0.25.0"
+name = "autocfg"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e57d6e7a84f33ff3316e97af3180fe7f86597a6a60161c0be70c0e45f382620"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
- "flate2",
- "http",
- "log",
- "rustls",
- "url",
- "webpki",
- "webpki-roots",
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
 ]
 
 [[package]]
-name = "autocfg"
-version = "1.1.0"
+name = "base64"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "bitflags"
@@ -51,10 +66,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
+name = "bitflags"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+
+[[package]]
 name = "built"
-version = "0.6.1"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b99c4cdc7b2c2364182331055623bdf45254fcb679fea565c40c3c11c101889a"
+checksum = "38d17f4d6e4dc36d1a02fbedc2753a096848e7c1b0772f7654eab8e2c927dd53"
 dependencies = [
  "cargo-lock",
  "chrono",
@@ -62,21 +83,21 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.13.0"
+version = "3.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f"
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "cargo-lock"
@@ -92,9 +113,12 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "cfg-if"
@@ -104,89 +128,66 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.26"
+version = "0.4.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "num-traits",
- "winapi",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
-name = "convert_case"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.4"
+name = "core-foundation"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
-
-[[package]]
-name = "crc32fast"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
 dependencies = [
- "cfg-if",
+ "core-foundation-sys",
+ "libc",
 ]
 
 [[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
+name = "core-foundation-sys"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.15"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "css-inline"
-version = "0.10.1"
+version = "0.13.0"
 dependencies = [
- "attohttpc",
  "cssparser",
  "html5ever",
  "indexmap",
- "memchr",
+ "reqwest",
+ "rustc-hash",
  "selectors",
  "smallvec",
  "url",
@@ -194,7 +195,7 @@ dependencies = [
 
 [[package]]
 name = "css-inline-python"
-version = "0.10.1"
+version = "0.13.0"
 dependencies = [
  "built",
  "css-inline",
@@ -206,19 +207,15 @@ dependencies = [
 
 [[package]]
 name = "cssparser"
-version = "0.29.6"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa"
+checksum = "5b3df4f93e5fbbe73ec01ec8d3f68bba73107993a5b1e7519273c32db9b0d5be"
 dependencies = [
  "cssparser-macros",
  "dtoa-short",
  "itoa",
- "matches",
- "phf 0.10.1",
- "proc-macro2",
- "quote",
+ "phf 0.11.2",
  "smallvec",
- "syn 1.0.109",
 ]
 
 [[package]]
@@ -228,7 +225,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
 dependencies = [
  "quote",
- "syn 2.0.18",
+ "syn 2.0.49",
 ]
 
 [[package]]
@@ -237,18 +234,16 @@ version = "0.99.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
 dependencies = [
- "convert_case",
  "proc-macro2",
  "quote",
- "rustc_version",
  "syn 1.0.109",
 ]
 
 [[package]]
 name = "dtoa"
-version = "1.0.6"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "65d09067bfacaa79114679b279d7f5885b53295b1e2cfb4e79c8e4bd3d633169"
+checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
 
 [[package]]
 name = "dtoa-short"
@@ -261,21 +256,26 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
-name = "flate2"
-version = "1.0.26"
+name = "encoding_rs"
+version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
 dependencies = [
- "crc32fast",
- "miniz_oxide",
+ "cfg-if",
 ]
 
 [[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
 name = "fnv"
 version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -283,9 +283,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
@@ -301,6 +301,54 @@ dependencies = [
 ]
 
 [[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-sink"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-core",
+ "futures-io",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
 name = "fxhash"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -311,40 +359,57 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.1.16"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
+ "wasi",
 ]
 
 [[package]]
-name = "getrandom"
-version = "0.2.10"
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
+name = "h2"
+version = "0.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
 dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[package]]
+name = "heck"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.2.6"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
+checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
 
 [[package]]
 name = "html5ever"
@@ -362,9 +427,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
 dependencies = [
  "bytes",
  "fnv",
@@ -372,17 +437,78 @@ dependencies = [
 ]
 
 [[package]]
+name = "http-body"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
+[[package]]
+name = "hyper"
+version = "0.14.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
+dependencies = [
+ "futures-util",
+ "http",
+ "hyper",
+ "rustls",
+ "tokio",
+ "tokio-rustls",
+]
+
+[[package]]
 name = "iana-time-zone"
-version = "0.1.57"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows",
+ "windows-core",
 ]
 
 [[package]]
@@ -396,9 +522,9 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -406,46 +532,52 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "1.9.3"
+version = "2.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
 dependencies = [
- "autocfg",
+ "equivalent",
  "hashbrown",
 ]
 
 [[package]]
 name = "indoc"
-version = "1.0.9"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
+
+[[package]]
+name = "ipnet"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "itoa"
-version = "1.0.6"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "libc"
-version = "0.2.146"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -453,9 +585,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.19"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "mac"
@@ -471,23 +603,17 @@ checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
 dependencies = [
  "log",
  "phf 0.10.1",
- "phf_codegen 0.10.0",
+ "phf_codegen",
  "string_cache",
  "string_cache_codegen",
  "tendril",
 ]
 
 [[package]]
-name = "matches"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
-
-[[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memoffset"
@@ -499,50 +625,70 @@ dependencies = [
 ]
 
 [[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
 ]
 
 [[package]]
-name = "new_debug_unreachable"
-version = "1.0.4"
+name = "mio"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+dependencies = [
+ "libc",
+ "wasi",
+ "windows-sys",
+]
 
 [[package]]
-name = "nodrop"
-version = "0.1.14"
+name = "new_debug_unreachable"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
+checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.15.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
  "hermit-abi",
  "libc",
 ]
 
 [[package]]
+name = "object"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "parking_lot"
@@ -556,31 +702,22 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
  "redox_syscall",
  "smallvec",
- "windows-targets",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
-
-[[package]]
-name = "phf"
-version = "0.8.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
-dependencies = [
- "phf_shared 0.8.0",
-]
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "phf"
@@ -588,19 +725,17 @@ version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
 dependencies = [
- "phf_macros",
  "phf_shared 0.10.0",
- "proc-macro-hack",
 ]
 
 [[package]]
-name = "phf_codegen"
-version = "0.8.0"
+name = "phf"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
 dependencies = [
- "phf_generator 0.8.0",
- "phf_shared 0.8.0",
+ "phf_macros",
+ "phf_shared 0.11.2",
 ]
 
 [[package]]
@@ -615,57 +750,68 @@ dependencies = [
 
 [[package]]
 name = "phf_generator"
-version = "0.8.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
+checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
 dependencies = [
- "phf_shared 0.8.0",
- "rand 0.7.3",
+ "phf_shared 0.10.0",
+ "rand",
 ]
 
 [[package]]
 name = "phf_generator"
-version = "0.10.0"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
 dependencies = [
- "phf_shared 0.10.0",
- "rand 0.8.5",
+ "phf_shared 0.11.2",
+ "rand",
 ]
 
 [[package]]
 name = "phf_macros"
-version = "0.10.0"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0"
+checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
 dependencies = [
- "phf_generator 0.10.0",
- "phf_shared 0.10.0",
- "proc-macro-hack",
+ "phf_generator 0.11.2",
+ "phf_shared 0.11.2",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.49",
 ]
 
 [[package]]
 name = "phf_shared"
-version = "0.8.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
 dependencies = [
  "siphasher",
 ]
 
 [[package]]
 name = "phf_shared"
-version = "0.10.0"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
 dependencies = [
  "siphasher",
 ]
 
 [[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
 name = "ppv-lite86"
 version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -678,25 +824,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
 
 [[package]]
-name = "proc-macro-hack"
-version = "0.5.20+deprecated"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
-
-[[package]]
 name = "proc-macro2"
-version = "1.0.60"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dec2b086b7a862cf4de201096214fa870344cf922b2b30c167badb3af3195406"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "pyo3"
-version = "0.19.0"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cffef52f74ec3b1a1baf295d9b8fcc3070327aefc39a6d00656b13c1d0b8885c"
+checksum = "9a89dc7a5850d0e983be1ec2a463a171d20990487c3cfcd68b5363f1ee3d6fe0"
 dependencies = [
  "cfg-if",
  "indoc",
@@ -711,9 +851,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-build-config"
-version = "0.19.0"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "713eccf888fb05f1a96eb78c0dbc51907fee42b3377272dc902eb38985f418d5"
+checksum = "07426f0d8fe5a601f26293f300afd1a7b1ed5e78b2a705870c5f30893c5163be"
 dependencies = [
  "once_cell",
  "target-lexicon",
@@ -727,9 +867,9 @@ checksum = "be6d574e0f8cab2cdd1eeeb640cbf845c974519fa9e9b62fa9c08ecece0ca5de"
 
 [[package]]
 name = "pyo3-ffi"
-version = "0.19.0"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b2ecbdcfb01cbbf56e179ce969a048fd7305a66d4cdf3303e0da09d69afe4c3"
+checksum = "dbb7dec17e17766b46bca4f1a4215a85006b4c2ecde122076c562dd058da6cf1"
 dependencies = [
  "libc",
  "pyo3-build-config",
@@ -737,69 +877,46 @@ dependencies = [
 
 [[package]]
 name = "pyo3-macros"
-version = "0.19.0"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b78fdc0899f2ea781c463679b20cb08af9247febc8d052de941951024cd8aea0"
+checksum = "05f738b4e40d50b5711957f142878cfa0f28e054aa0ebdfc3fd137a843f74ed3"
 dependencies = [
  "proc-macro2",
  "pyo3-macros-backend",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.49",
 ]
 
 [[package]]
 name = "pyo3-macros-backend"
-version = "0.19.0"
+version = "0.20.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60da7b84f1227c3e2fe7593505de274dcf4c8928b4e0a1c23d551a14e4e80a0f"
+checksum = "0fc910d4851847827daf9d6cdd4a823fbdaab5b8818325c5e97a86da79e8881f"
 dependencies = [
+ "heck",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.49",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.28"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
 
 [[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.4",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
+ "rand_chacha",
+ "rand_core",
 ]
 
 [[package]]
@@ -809,16 +926,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
 dependencies = [
  "ppv-lite86",
- "rand_core 0.6.4",
-]
-
-[[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",
+ "rand_core",
 ]
 
 [[package]]
@@ -827,32 +935,14 @@ version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.10",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rand_pcg"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
-dependencies = [
- "rand_core 0.5.1",
+ "getrandom",
 ]
 
 [[package]]
 name = "rayon"
-version = "1.7.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -860,54 +950,95 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.11.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
 ]
 
 [[package]]
 name = "redox_syscall"
-version = "0.3.5"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.11.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
+dependencies = [
+ "base64",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-rustls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
+ "tokio",
+ "tokio-rustls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "webpki-roots",
+ "winreg",
 ]
 
 [[package]]
 name = "ring"
-version = "0.16.20"
+version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
 dependencies = [
  "cc",
+ "getrandom",
  "libc",
- "once_cell",
  "spin",
  "untrusted",
- "web-sys",
- "winapi",
+ "windows-sys",
 ]
 
 [[package]]
-name = "rustc_version"
-version = "0.4.0"
+name = "rustc-demangle"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-dependencies = [
- "semver",
-]
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustls"
-version = "0.21.2"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e32ca28af694bc1bbf399c33a516dbdf1c90090b8ab23c2bc24f834aa2247f5f"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
  "ring",
@@ -916,26 +1047,41 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-pemfile"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64",
+]
+
+[[package]]
 name = "rustls-webpki"
-version = "0.100.1"
+version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
  "ring",
  "untrusted",
 ]
 
 [[package]]
+name = "ryu"
+version = "1.0.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+
+[[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sct"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
  "ring",
  "untrusted",
@@ -943,17 +1089,18 @@ dependencies = [
 
 [[package]]
 name = "selectors"
-version = "0.24.0"
+version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416"
+checksum = "4eb30575f3638fc8f6815f448d50cb1a2e255b0897985c8c59f4d37b72a07b06"
 dependencies = [
- "bitflags",
+ "bitflags 2.4.2",
  "cssparser",
  "derive_more",
  "fxhash",
  "log",
- "phf 0.8.0",
- "phf_codegen 0.8.0",
+ "new_debug_unreachable",
+ "phf 0.10.1",
+ "phf_codegen",
  "precomputed-hash",
  "servo_arc",
  "smallvec",
@@ -961,69 +1108,110 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.17"
+version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde"
-version = "1.0.164"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e8c8cf938e98f769bc164923b06dce91cea1751522f46f8466461af04c9027d"
+checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.164"
+version = "1.0.196"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9735b638ccc51c28bf6914d90a2e9725b377144fc612c49a611fddd1b631d68"
+checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.49",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.113"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.2"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93107647184f6027e3b7dcb2e11034cf95ffa1e3a682c67951963ac69c1c007d"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
 dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
  "serde",
 ]
 
 [[package]]
 name = "servo_arc"
-version = "0.2.0"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741"
+checksum = "d036d71a959e00c77a63538b90a6c2390969f9772b096ea837205c6bd0491a44"
 dependencies = [
- "nodrop",
  "stable_deref_trait",
 ]
 
 [[package]]
 name = "siphasher"
-version = "0.3.10"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
 
 [[package]]
 name = "smallvec"
-version = "1.10.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+
+[[package]]
+name = "socket2"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
 
 [[package]]
 name = "spin"
-version = "0.5.2"
+version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
 
 [[package]]
 name = "stable_deref_trait"
@@ -1070,9 +1258,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.18"
+version = "2.0.49"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e"
+checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1080,10 +1268,37 @@ dependencies = [
 ]
 
 [[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
+name = "system-configuration"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
 name = "target-lexicon"
-version = "0.12.8"
+version = "0.12.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1c7f239eb94671427157bd93b3694320f3668d4e1eff08c7285366fd777fac"
+checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
 
 [[package]]
 name = "tendril"
@@ -1112,10 +1327,50 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
+name = "tokio"
+version = "1.36.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "pin-project-lite",
+ "socket2",
+ "windows-sys",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
 name = "toml"
-version = "0.7.4"
+version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6135d499e69981f9ff0ef2167955a5333c35e36f6937d382974566b3d5b94ec"
+checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -1125,18 +1380,18 @@ dependencies = [
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.2"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.19.10"
+version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739"
+checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
  "indexmap",
  "serde",
@@ -1146,16 +1401,47 @@ dependencies = [
 ]
 
 [[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
+[[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.9"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
@@ -1168,21 +1454,21 @@ dependencies = [
 
 [[package]]
 name = "unindent"
-version = "0.1.11"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
+checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
 
 [[package]]
 name = "untrusted"
-version = "0.7.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -1196,10 +1482,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
 
 [[package]]
-name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
+name = "want"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
 
 [[package]]
 name = "wasi"
@@ -1209,9 +1498,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -1219,24 +1508,36 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.49",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -1244,145 +1545,186 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.18",
+ "syn 2.0.49",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.68"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
 ]
 
 [[package]]
-name = "webpki"
-version = "0.22.0"
+name = "webpki-roots"
+version = "0.25.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "ring",
- "untrusted",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
-name = "webpki-roots"
-version = "0.23.1"
+name = "windows-sys"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "rustls-webpki",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
-name = "winapi"
-version = "0.3.9"
+name = "windows-targets"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
 ]
 
 [[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
+name = "windows-targets"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
+]
 
 [[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
-name = "windows"
-version = "0.48.0"
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
-dependencies = [
- "windows-targets",
-]
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[package]]
-name = "windows-targets"
-version = "0.48.0"
+name = "windows_aarch64_msvc"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+name = "windows_aarch64_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.0"
+name = "windows_i686_gnu"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
 name = "winnow"
-version = "0.4.7"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
 dependencies = [
  "memchr",
 ]
+
+[[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if",
+ "windows-sys",
+]
diff --git a/nixpkgs/pkgs/development/python-modules/css-inline/default.nix b/nixpkgs/pkgs/development/python-modules/css-inline/default.nix
index 9eb36c8bd61b..41caa34dedac 100644
--- a/nixpkgs/pkgs/development/python-modules/css-inline/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/css-inline/default.nix
@@ -9,6 +9,7 @@
 # native darwin dependencies
 , libiconv
 , Security
+, SystemConfiguration
 
 # tests
 , pytestCheckHook
@@ -17,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "css-inline";
-  version = "0.10.1";
-  format = "pyproject";
+  version = "0.13.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Stranger6667";
     repo = "css-inline";
     rev = "python-v${version}";
-    hash = "sha256-oBAJv/hAz/itT2WakIw/1X1NvOHX108NoeS6V7k+aG8=";
+    hash = "sha256-hhjeOr7EJc4Tmn/eQ1vF0xChSIlgfSmtqi6s7WCUq00=";
   };
 
   postPatch = ''
@@ -41,7 +42,7 @@ buildPythonPackage rec {
       ln -s ${./Cargo.lock} Cargo.lock
     '';
     name = "${pname}-${version}";
-    hash = "sha256-SFG1nsP4+I0zH8VeyL1eeaTx0tHNIvmx6M0cko0pqIA=";
+    hash = "sha256-noYBSwCfdpuwb55toyx4K/16Z4A0NWjnMuzwTi5g8AU=";
   };
 
   nativeBuildInputs = [
@@ -52,6 +53,7 @@ buildPythonPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [
     libiconv
     Security
+    SystemConfiguration
   ];
 
   pythonImportsCheck = [
@@ -63,6 +65,14 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # fails to connect to local server
+    "test_remote_stylesheet"
+  ] ++ lib.optionals (stdenv.isDarwin) [
+    # pyo3_runtime.PanicException: event loop thread panicked
+    "test_invalid_href"
+  ];
+
   meta = with lib; {
     description = "Inline CSS into style attributes";
     homepage = "https://github.com/Stranger6667/css-inline";
diff --git a/nixpkgs/pkgs/development/python-modules/cssbeautifier/default.nix b/nixpkgs/pkgs/development/python-modules/cssbeautifier/default.nix
index 02f1de52af7e..1fc1aeed8437 100644
--- a/nixpkgs/pkgs/development/python-modules/cssbeautifier/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cssbeautifier/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "CSS unobfuscator and beautifier";
+    mainProgram = "css-beautify";
     homepage = "https://github.com/beautifier/js-beautify";
     changelog = "https://github.com/beautifier/js-beautify/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/cssmin/default.nix b/nixpkgs/pkgs/development/python-modules/cssmin/default.nix
index c9daf5d45827..6ab7f590f6d2 100644
--- a/nixpkgs/pkgs/development/python-modules/cssmin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cssmin/default.nix
@@ -15,6 +15,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python port of the YUI CSS compression algorithm";
+    mainProgram = "cssmin";
     homepage = "https://github.com/zacharyvoase/cssmin";
     license = licenses.bsd3;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/cssutils/default.nix b/nixpkgs/pkgs/development/python-modules/cssutils/default.nix
index ab8615b0fe9b..10f62f29280c 100644
--- a/nixpkgs/pkgs/development/python-modules/cssutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cssutils/default.nix
@@ -42,6 +42,11 @@ buildPythonPackage rec {
     importlib-resources
   ];
 
+  pytestFlagsArray = [
+    # pytest.PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   disabledTests = [
     # access network
     "test_parseUrl"
diff --git a/nixpkgs/pkgs/development/python-modules/cu2qu/default.nix b/nixpkgs/pkgs/development/python-modules/cu2qu/default.nix
index ddad0b741b1e..67315205b706 100644
--- a/nixpkgs/pkgs/development/python-modules/cu2qu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cu2qu/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/googlefonts/cu2qu/releases/tag/v${version}";
     description = "Cubic-to-quadratic bezier curve conversion";
+    mainProgram = "cu2qu";
     homepage = "https://github.com/googlefonts/cu2qu";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/cucumber-tag-expressions/default.nix b/nixpkgs/pkgs/development/python-modules/cucumber-tag-expressions/default.nix
index e67704be7898..74ec6c13a5ae 100644
--- a/nixpkgs/pkgs/development/python-modules/cucumber-tag-expressions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cucumber-tag-expressions/default.nix
@@ -1,25 +1,34 @@
 { lib
-, fetchPypi
+, fetchFromGitHub
 , buildPythonPackage
-, py
 , pytestCheckHook
 , pytest-html
+, pyyaml
+, setuptools
  }:
 
 buildPythonPackage rec {
   pname = "cucumber-tag-expressions";
-  version = "4.1.0";
-  format = "setuptools";
+  version = "6.1.0";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e314d5fed6eebb2f90380271f562248fb15e18636764faf40f4dde4b28b1f960";
+  src = fetchFromGitHub{
+    owner = "cucumber";
+    repo = "tag-expressions";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-etJKAOamCq63HsUqJMPBnmn0YFO3ZHOvs3/rDHN7YPU=";
   };
 
+  sourceRoot = "${src.name}/python";
+
+  build-system = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
-    py
     pytestCheckHook
     pytest-html
+    pyyaml
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/cupy/default.nix b/nixpkgs/pkgs/development/python-modules/cupy/default.nix
index 5085fd2691bf..842645597062 100644
--- a/nixpkgs/pkgs/development/python-modules/cupy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cupy/default.nix
@@ -40,14 +40,14 @@ let
 in
 buildPythonPackage rec {
   pname = "cupy";
-  version = "12.3.0";
+  version = "13.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-R9syEU5v3UjQUQy/Cwiwk1Ui19+j45QWsMDaORQyNSQ=";
+    hash = "sha256-LwTnhX9pKnEzYNycOwZwmAarhAT8o5ta+XIcBKKXmq4=";
   };
 
   # See https://docs.cupy.dev/en/v10.2.0/reference/environment.html. Seting both
diff --git a/nixpkgs/pkgs/development/python-modules/cvss/default.nix b/nixpkgs/pkgs/development/python-modules/cvss/default.nix
index 120325a7b8e5..267cd94f41d8 100644
--- a/nixpkgs/pkgs/development/python-modules/cvss/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cvss/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for CVSS2/3/4";
+    mainProgram = "cvss_calculator";
     homepage = "https://github.com/RedHatProductSecurity/cvss";
     changelog = "https://github.com/RedHatProductSecurity/cvss/releases/tag/v${version}";
     license = with licenses; [ lgpl3Plus ];
diff --git a/nixpkgs/pkgs/development/python-modules/cwl-upgrader/default.nix b/nixpkgs/pkgs/development/python-modules/cwl-upgrader/default.nix
index 874af6d65941..d3f3978dc0b7 100644
--- a/nixpkgs/pkgs/development/python-modules/cwl-upgrader/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cwl-upgrader/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to upgrade CWL syntax to a newer version";
+    mainProgram = "cwl-upgrader";
     homepage = "https://github.com/common-workflow-language/cwl-upgrader";
     changelog = "https://github.com/common-workflow-language/cwl-upgrader/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/cx-freeze/default.nix b/nixpkgs/pkgs/development/python-modules/cx-freeze/default.nix
index 4f818bc49339..1c147ddbb88b 100644
--- a/nixpkgs/pkgs/development/python-modules/cx-freeze/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cx-freeze/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "cx-freeze";
-  version = "6.15.15";
+  version = "6.15.16";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "cx_Freeze";
     inherit version;
-    hash = "sha256-dMCr5ulaBBXLT79VxiW8JQEml4P6wt0tcetNeOk/Ihk=";
+    hash = "sha256-xjmRiG/ypTGfjw0HwDSaa74aZbXzIPi5JDiI5jyaSiI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cyclonedx-python-lib/default.nix b/nixpkgs/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
index 7b04f6869252..10cd64f83e62 100644
--- a/nixpkgs/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "cyclonedx-python-lib";
-  version = "6.4.3";
+  version = "6.4.4";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "CycloneDX";
     repo = "cyclonedx-python-lib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9enilHkZ07loBisKObUmVLhJeXgY/HUiVrf2scPFB60=";
+    hash = "sha256-PNacp16WZHNblFyA117hSL87IKGMrW0OYNXCSoBoO8Q=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cysignals/default.nix b/nixpkgs/pkgs/development/python-modules/cysignals/default.nix
index fe0ca2e17a09..107b552a631c 100644
--- a/nixpkgs/pkgs/development/python-modules/cysignals/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cysignals/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Interrupt and signal handling for Cython";
+    mainProgram = "cysignals-CSI";
     homepage = "https://github.com/sagemath/cysignals/";
     maintainers = teams.sage.members;
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/cytoolz/default.nix b/nixpkgs/pkgs/development/python-modules/cytoolz/default.nix
index e46d0816577d..64ac6ad9dfd0 100644
--- a/nixpkgs/pkgs/development/python-modules/cytoolz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cytoolz/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "cytoolz";
-  version = "0.12.2";
+  version = "0.12.3";
   format = "setuptools";
   disabled = isPy27 || isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MdSwRV1y2RRkX4A9kX2vTzFNEVxw3gV404IN64sQH2Y=";
+    hash = "sha256-RQPcWfTO1TpUZDJyxh3DBdHbv719a98paUjenzTDooI=";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/nixpkgs/pkgs/development/python-modules/daff/default.nix b/nixpkgs/pkgs/development/python-modules/daff/default.nix
new file mode 100644
index 000000000000..59c2e1bfc38b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/daff/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "daff";
+  version = "1.3.46";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-ItDan9ajJ1tUySapyXsYD5JYqtZRE+oY8/7FLLrc2Bg=";
+  };
+
+  # there are no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "daff"
+  ];
+
+  meta = with lib; {
+    description = "Library for comparing tables, producing a summary of their differences, and using such a summary as a patch file";
+    homepage = "https://github.com/paulfitz/daff";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ turion ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/daphne/default.nix b/nixpkgs/pkgs/development/python-modules/daphne/default.nix
index 70150799f5f0..1cb0a1998493 100644
--- a/nixpkgs/pkgs/development/python-modules/daphne/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/daphne/default.nix
@@ -53,6 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Django ASGI (HTTP/WebSocket) server";
+    mainProgram = "daphne";
     homepage = "https://github.com/django/daphne";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/daqp/default.nix b/nixpkgs/pkgs/development/python-modules/daqp/default.nix
index 9ef1d3eee877..2b134f9f723d 100644
--- a/nixpkgs/pkgs/development/python-modules/daqp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/daqp/default.nix
@@ -8,7 +8,7 @@
 , wheel
 , numpy
 }:
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "daqp";
   version = "0.5.1";
   format = "pyproject";
@@ -20,7 +20,7 @@ buildPythonPackage {
     hash = "sha256-in7Ci/wM7i0csJ4XVfo1lboWOyfuuU+8E+TzGmMV3x0=";
   };
 
-  sourceRoot = "source/interfaces/daqp-python";
+  sourceRoot = "${src.name}/interfaces/daqp-python";
 
   postPatch = ''
     sed -i 's|../../../daqp|../..|' setup.py
diff --git a/nixpkgs/pkgs/development/python-modules/dash/default.nix b/nixpkgs/pkgs/development/python-modules/dash/default.nix
index 99f332b66955..6a9adcad5454 100644
--- a/nixpkgs/pkgs/development/python-modules/dash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dash/default.nix
@@ -36,16 +36,16 @@
 
 buildPythonPackage rec {
   pname = "dash";
-  version = "2.15.0";
+  version = "2.16.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "plotly";
     repo = "dash";
     rev = "refs/tags/v${version}";
-    hash = "sha256-38BOw/CrauT/usVWCI735J0zRf9wzScUgbfGTy5B7ng=";
+    hash = "sha256-IPyGQXrC2FTTSIC4IFGwKTceyzPYAe4jwDoO5C9YeF0=";
   };
 
   nativeBuildInputs = [
@@ -57,7 +57,7 @@ buildPythonPackage rec {
 
   yarnOfflineCache = fetchYarnDeps {
     yarnLock = "${src}/@plotly/dash-jupyterlab/yarn.lock";
-    hash = "sha256-mkiyrA0jGiP0zbabSjgHFLEUX3f+LZdJ8eARI5QA8CU=";
+    hash = "sha256-L/or8jO6uEypI5krwy/ElIxa6jJrXGsCRZ9mh+0kcGA=";
   };
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix b/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix
index ed3215595c2b..6ee614d23a93 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Deploy Dask using mpi4py";
+    mainProgram = "dask-mpi";
     homepage = "https://github.com/dask/dask-mpi";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/dask-yarn/default.nix b/nixpkgs/pkgs/development/python-modules/dask-yarn/default.nix
index 044c70f64f89..acea511b2495 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-yarn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-yarn/default.nix
@@ -65,6 +65,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Deploy dask on YARN clusters";
+    mainProgram = "dask-yarn";
     longDescription = ''Dask-Yarn deploys Dask on YARN clusters,
       such as are found in traditional Hadoop installations.
       Dask-Yarn provides an easy interface to quickly start,
diff --git a/nixpkgs/pkgs/development/python-modules/dask/default.nix b/nixpkgs/pkgs/development/python-modules/dask/default.nix
index 5fa73cea10f7..44614185f73f 100644
--- a/nixpkgs/pkgs/development/python-modules/dask/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask/default.nix
@@ -127,6 +127,8 @@ buildPythonPackage rec {
     "--reruns 3"
     # Don't run tests that require network access
     "-m 'not network'"
+    # pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
   ];
 
   disabledTests = lib.optionals stdenv.isDarwin [
@@ -169,6 +171,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Minimal task scheduling abstraction";
+    mainProgram = "dask";
     homepage = "https://dask.org/";
     changelog = "https://docs.dask.org/en/latest/changelog.html";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix b/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix
index 7deca5f47152..2e3132fb5b50 100644
--- a/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "databricks-connect";
-  version = "11.3.6";
+  version = "11.3.26";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-kAUBA9V1st5UxXihrXQjyk+1ahsum/VEcNfDK1he/Pc=";
+    hash = "sha256-YjUY4i8PtXc+fWcGjvnRbZkiINprKcS1K9HT5+86E8c=";
   };
 
   sourceRoot = ".";
diff --git a/nixpkgs/pkgs/development/python-modules/databricks-sql-connector/default.nix b/nixpkgs/pkgs/development/python-modules/databricks-sql-connector/default.nix
index 1533055f3c89..b7cb1311b6b4 100644
--- a/nixpkgs/pkgs/development/python-modules/databricks-sql-connector/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/databricks-sql-connector/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "databricks-sql-connector";
-  version = "3.0.3";
+  version = "3.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "databricks";
     repo = "databricks-sql-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pwSDDkBcyaT5+qA/W8v5loi0yXK8R0ugASmbalwYw70=";
+    hash = "sha256-LiA+zZuhPPXgBb8B1vZ/PuAYMrBXzxgd1CXwugf0mk8=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/dataclass-wizard/default.nix b/nixpkgs/pkgs/development/python-modules/dataclass-wizard/default.nix
index 603fd25e9b2a..0cc0eed0f51f 100644
--- a/nixpkgs/pkgs/development/python-modules/dataclass-wizard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dataclass-wizard/default.nix
@@ -57,6 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A set of simple, yet elegant wizarding tools for interacting with the Python dataclasses module";
+    mainProgram = "wiz";
     homepage = "https://github.com/rnag/dataclass-wizard";
     changelog = "https://github.com/rnag/dataclass-wizard/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/datadog/default.nix b/nixpkgs/pkgs/development/python-modules/datadog/default.nix
index 1375dd7e780a..8b0b0956b89d 100644
--- a/nixpkgs/pkgs/development/python-modules/datadog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datadog/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "datadog";
-  version = "0.48.0";
+  version = "0.49.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-1NZhNYw+f4Afv+FRGPXM8Iub2bH0W4uRBgWWUoPtrWQ=";
+    hash = "sha256-TLenmRr2ytuGj+RQzUVkc+ZfEfxni3189hBE/xxgdNg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/dataprep-ml/default.nix b/nixpkgs/pkgs/development/python-modules/dataprep-ml/default.nix
index 00a25158bc87..9f4fc81e4066 100644
--- a/nixpkgs/pkgs/development/python-modules/dataprep-ml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dataprep-ml/default.nix
@@ -27,7 +27,7 @@ let
 in
 buildPythonPackage rec {
   pname = "dataprep-ml";
-  version = "0.0.21";
+  version = "0.0.22";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "dataprep_ml";
     inherit version;
-    hash = "sha256-BtnRmj5JtgNdCFowgNdpIZn5vUdw8QYCWneHfDgC4/c=";
+    hash = "sha256-umSL5E6yLwjFwhIprCySHNaPKeESwGGzgInZMPNBMcs=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/datasets/default.nix b/nixpkgs/pkgs/development/python-modules/datasets/default.nix
index 0505ea7e13cc..3555387b3ab1 100644
--- a/nixpkgs/pkgs/development/python-modules/datasets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datasets/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "datasets";
-  version = "2.15.0";
+  version = "2.18.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-Q8cSgupfj6xKD0bYgL6bvYBwdYDdNaiWEWWUrRvwc4g=";
+    hash = "sha256-mLiIE1RYUNUhh8nhG7TBr7XUdWlJzeWDuUNvoBk0eyw=";
   };
 
   # remove pyarrow<14.0.1 vulnerability fix
@@ -69,6 +69,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Open-access datasets and evaluation metrics for natural language processing";
+    mainProgram = "datasets-cli";
     homepage = "https://github.com/huggingface/datasets";
     changelog = "https://github.com/huggingface/datasets/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/datasette/default.nix b/nixpkgs/pkgs/development/python-modules/datasette/default.nix
index b89d5bbd06ee..a3c43a528aab 100644
--- a/nixpkgs/pkgs/development/python-modules/datasette/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datasette/default.nix
@@ -99,6 +99,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Multi-tool for exploring and publishing data";
+    mainProgram = "datasette";
     homepage = "https://datasette.io/";
     changelog = "https://github.com/simonw/datasette/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/datashader/default.nix b/nixpkgs/pkgs/development/python-modules/datashader/default.nix
index cb0fb38ab9b7..899da93bfc5d 100644
--- a/nixpkgs/pkgs/development/python-modules/datashader/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datashader/default.nix
@@ -96,6 +96,7 @@ buildPythonPackage rec {
 
   meta = with lib;{
     description = "Data visualization toolchain based on aggregating into a grid";
+    mainProgram = "datashader";
     homepage = "https://datashader.org";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/dbf/default.nix b/nixpkgs/pkgs/development/python-modules/dbf/default.nix
index 10cf43f4f648..eb64e3795937 100644
--- a/nixpkgs/pkgs/development/python-modules/dbf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dbf/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "dbf";
-  version = "0.99.3";
+  version = "0.99.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lAJypyrCfRah22mq/vggaEASzDVT/+mHXVzS46nLadw=";
+    hash = "sha256-MFEi1U0RNvrfDtV4HpvPgKTCibAh76z7Gnmj32IubYw=";
   };
 
   propagatedBuildInputs = [
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   ];
 
   checkPhase = ''
-    ${python.interpreter} dbf/test.py
+    ${python.interpreter} -m dbf.test
   '';
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/dbt-core/default.nix b/nixpkgs/pkgs/development/python-modules/dbt-core/default.nix
index 806444d411b1..b537da2a3055 100644
--- a/nixpkgs/pkgs/development/python-modules/dbt-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dbt-core/default.nix
@@ -33,7 +33,7 @@
 
 buildPythonPackage rec {
   pname = "dbt-core";
-  version = "1.7.9";
+  version = "1.7.10";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     owner = "dbt-labs";
     repo = "dbt-core";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ff+cdY6xy14w30BDn1ct/2Q+4j8cQupJrJHb4vO58J0=";
+    hash = "sha256-0cKzQjAnj0JMrHyA/gOgYceM6g1URJFgQtp90m09Nkw=";
   };
 
   sourceRoot = "${src.name}/core";
diff --git a/nixpkgs/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix b/nixpkgs/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix
index a51cb07f099c..894dbed29f26 100644
--- a/nixpkgs/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix
@@ -5,6 +5,7 @@
 , dbt-postgres
 , fetchFromGitHub
 , hatchling
+, pythonRelaxDepsHook
 , hypothesis
 , importlib-metadata
 , jinja2
@@ -31,8 +32,13 @@ buildPythonPackage rec {
     hash = "sha256-uvwcnOKjwxEmA+/QRGSRofpoE4jZzmE02mGSDLINrJw=";
   };
 
+  pythonRelaxDeps = [
+    "importlib-metadata"
+  ];
+
   nativeBuildInputs = [
     hatchling
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ddt/default.nix b/nixpkgs/pkgs/development/python-modules/ddt/default.nix
index f0def3a3ad38..1923fb5733c1 100644
--- a/nixpkgs/pkgs/development/python-modules/ddt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ddt/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "ddt";
-  version = "1.7.0";
+  version = "1.7.2";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0XjRFavyWhuDJ+lPhaA+8JsdewyiVvYgMoSwJPL8cN8=";
+    hash = "sha256-0hXWsIOWMBPEoZseTc1qlugOQ6t3UZWXpqz88umj4Es=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/deal/default.nix b/nixpkgs/pkgs/development/python-modules/deal/default.nix
index 941efb131111..b24d8be44826 100644
--- a/nixpkgs/pkgs/development/python-modules/deal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deal/default.nix
@@ -62,6 +62,10 @@ buildPythonPackage rec {
     flake8
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   disabledTests = [
     # needs internet access
     "test_smoke_has"
diff --git a/nixpkgs/pkgs/development/python-modules/debianbts/default.nix b/nixpkgs/pkgs/development/python-modules/debianbts/default.nix
index 7d0a53e033bc..013f8724067c 100644
--- a/nixpkgs/pkgs/development/python-modules/debianbts/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/debianbts/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python interface to Debian's Bug Tracking System";
+    mainProgram = "debianbts";
     homepage = "https://github.com/venthur/python-debianbts";
     downloadPage = "https://pypi.org/project/python-debianbts/";
     changelog = "https://github.com/venthur/python-debianbts/blob/${version}/CHANGELOG.md";
diff --git a/nixpkgs/pkgs/development/python-modules/debtcollector/default.nix b/nixpkgs/pkgs/development/python-modules/debtcollector/default.nix
index 620f615b6e51..14fdff4243ca 100644
--- a/nixpkgs/pkgs/development/python-modules/debtcollector/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/debtcollector/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "debtcollector";
-  version = "2.5.0";
+  version = "3.0.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3J0a0/dFxD9LvtvKMPn/6JBajAKMmSbmEHeEfV6iV6s=";
+    hash = "sha256-KokX0lsOHx0NNl08HG7Px6UiselxbooaSpFRJvfM6m8=";
   };
 
   nativeBuildInputs = [ pbr ];
diff --git a/nixpkgs/pkgs/development/python-modules/debts/default.nix b/nixpkgs/pkgs/development/python-modules/debts/default.nix
index 3128f7128832..c82a65500451 100644
--- a/nixpkgs/pkgs/development/python-modules/debts/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/debts/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "A simple library and cli-tool to help you solve some debts settlement scenarios";
+    mainProgram = "debts";
     license = licenses.beerware;
     maintainers = [ maintainers.symphorien ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/debugpy/default.nix b/nixpkgs/pkgs/development/python-modules/debugpy/default.nix
index 2fc23833dafd..4ba770e251c6 100644
--- a/nixpkgs/pkgs/development/python-modules/debugpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/debugpy/default.nix
@@ -5,29 +5,31 @@
 , fetchFromGitHub
 , substituteAll
 , gdb
-, django
-, flask
-, gevent
-, psutil
-, pytest-timeout
-, pytest-xdist
+, lldb
 , pytestCheckHook
+, pytest-xdist
+, pytest-timeout
+, importlib-metadata
+, psutil
+, django
 , requests
-, llvmPackages
+, gevent
+, numpy
+, flask
 }:
 
 buildPythonPackage rec {
   pname = "debugpy";
-  version = "1.8.0";
+  version = "1.8.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "debugpy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FW1RDmj4sDBS0q08C82ErUd16ofxJxgVaxfykn/wVBA=";
+    hash = "sha256-2TkieSQYxnlUroSD9wNKNaHUTLRksFWL/6XmSNGTCA4=";
   };
 
   patches = [
@@ -46,6 +48,12 @@ buildPythonPackage rec {
     # To avoid this issue, debugpy should be installed using python.withPackages:
     # python.withPackages (ps: with ps; [ debugpy ])
     ./fix-test-pythonpath.patch
+
+    # Attach pid tests are disabled by default on windows & macos,
+    # but are also flaky on linux:
+    # - https://github.com/NixOS/nixpkgs/issues/262000
+    # - https://github.com/NixOS/nixpkgs/issues/251045
+    ./skip-attach-pid-tests.patch
   ] ++ lib.optionals stdenv.isLinux [
     # Hard code GDB path (used to attach to process)
     (substituteAll {
@@ -56,7 +64,7 @@ buildPythonPackage rec {
     # Hard code LLDB path (used to attach to process)
     (substituteAll {
       src = ./hardcode-lldb.patch;
-      inherit (llvmPackages) lldb;
+      inherit lldb;
     })
   ];
 
@@ -66,24 +74,31 @@ buildPythonPackage rec {
     set -x
     cd src/debugpy/_vendored/pydevd/pydevd_attach_to_process
     rm *.so *.dylib *.dll *.exe *.pdb
-    ${stdenv.cc}/bin/c++ linux_and_mac/attach.cpp -Ilinux_and_mac -fPIC -nostartfiles ${{
+    $CXX linux_and_mac/attach.cpp -Ilinux_and_mac -std=c++11 -fPIC -nostartfiles ${{
       "x86_64-linux"   = "-shared -o attach_linux_amd64.so";
       "i686-linux"     = "-shared -o attach_linux_x86.so";
       "aarch64-linux"  = "-shared -o attach_linux_arm64.so";
-      "x86_64-darwin"  = "-std=c++11 -lc -D_REENTRANT -dynamiclib -o attach_x86_64.dylib";
-      "i686-darwin"    = "-std=c++11 -lc -D_REENTRANT -dynamiclib -o attach_x86.dylib";
-      "aarch64-darwin" = "-std=c++11 -lc -D_REENTRANT -dynamiclib -o attach_arm64.dylib";
+      "x86_64-darwin"  = "-D_REENTRANT -dynamiclib -lc -o attach_x86_64.dylib";
+      "i686-darwin"    = "-D_REENTRANT -dynamiclib -lc -o attach_x86.dylib";
+      "aarch64-darwin" = "-D_REENTRANT -dynamiclib -lc -o attach_arm64.dylib";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}")}
   )'';
 
   nativeCheckInputs = [
+    ## Used to run the tests:
+    pytestCheckHook
+    pytest-xdist
+    pytest-timeout
+
+    ## Used by test helpers:
+    importlib-metadata
+    psutil
+
+    ## Used in Python code that is run/debugged by the tests:
     django
     flask
     gevent
-    psutil
-    pytest-timeout
-    pytest-xdist
-    pytestCheckHook
+    numpy
     requests
   ];
 
@@ -107,13 +122,6 @@ buildPythonPackage rec {
   # Fixes hanging tests on Darwin
   __darwinAllowLocalNetworking = true;
 
-  disabledTests = [
-    # testsuite gets stuck at this one
-    "test_attach_pid_client"
-  ];
-  # TODO? https://github.com/NixOS/nixpkgs/issues/262000
-  doCheck = !stdenv.isLinux;
-
   pythonImportsCheck = [
     "debugpy"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch b/nixpkgs/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch
index 7cfb1a49ec38..e368357d5cc2 100644
--- a/nixpkgs/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch
+++ b/nixpkgs/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch
@@ -1,12 +1,12 @@
 diff --git a/tests/debug/session.py b/tests/debug/session.py
-index 7dacc1f9..f303e20a 100644
+index d0921956..459c89c0 100644
 --- a/tests/debug/session.py
 +++ b/tests/debug/session.py
-@@ -631,6 +631,7 @@ class Session(object):
+@@ -704,6 +704,7 @@ class Session(object):
          if "PYTHONPATH" in self.config.env:
              # If specified, launcher will use it in lieu of PYTHONPATH it inherited
              # from the adapter when spawning debuggee, so we need to adjust again.
 +            self.config.env.prepend_to("PYTHONPATH", os.environ["PYTHONPATH"])
              self.config.env.prepend_to("PYTHONPATH", DEBUGGEE_PYTHONPATH.strpath)
-         return self._request_start("launch")
  
+         # Adapter is going to start listening for server and spawn the launcher at
diff --git a/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-gdb.patch b/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-gdb.patch
index 2fe09a70151a..5cc68b21b3c6 100644
--- a/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-gdb.patch
+++ b/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-gdb.patch
@@ -1,8 +1,8 @@
 diff --git a/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py b/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
-index ed43e370..d3d6669a 100644
+index 85f3353b..56fab577 100644
 --- a/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
 +++ b/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
-@@ -404,7 +404,7 @@ def run_python_code_linux(pid, python_code, connect_debugger_tracing=False, show
+@@ -410,7 +410,7 @@ def run_python_code_linux(pid, python_code, connect_debugger_tracing=False, show
      is_debug = 0
      # Note that the space in the beginning of each line in the multi-line is important!
      cmd = [
diff --git a/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-lldb.patch b/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-lldb.patch
index 3a1013187351..215e7ee0f9ca 100644
--- a/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-lldb.patch
+++ b/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-lldb.patch
@@ -1,8 +1,8 @@
 diff --git a/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py b/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
-index d3d6669a..2ded8d9c 100644
+index 56fab577..989ede03 100644
 --- a/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
 +++ b/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
-@@ -494,7 +494,7 @@ def run_python_code_mac(pid, python_code, connect_debugger_tracing=False, show_d
+@@ -500,7 +500,7 @@ def run_python_code_mac(pid, python_code, connect_debugger_tracing=False, show_d
      is_debug = 0
      # Note that the space in the beginning of each line in the multi-line is important!
      cmd = [
diff --git a/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-version.patch b/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-version.patch
index 11d565b98060..9fa42a0605f8 100644
--- a/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-version.patch
+++ b/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-version.patch
@@ -1,5 +1,5 @@
 diff --git a/setup.py b/setup.py
-index 3abc811b..91354604 100644
+index 1bfba237..414bb4d5 100644
 --- a/setup.py
 +++ b/setup.py
 @@ -12,7 +12,6 @@ import sys
diff --git a/nixpkgs/pkgs/development/python-modules/debugpy/skip-attach-pid-tests.patch b/nixpkgs/pkgs/development/python-modules/debugpy/skip-attach-pid-tests.patch
new file mode 100644
index 000000000000..a993940f7266
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/debugpy/skip-attach-pid-tests.patch
@@ -0,0 +1,27 @@
+diff --git a/tests/debug/runners.py b/tests/debug/runners.py
+index dc60d0ae..cf4a06a3 100644
+--- a/tests/debug/runners.py
++++ b/tests/debug/runners.py
+@@ -163,7 +163,7 @@ def _attach_common_config(session, target, cwd):
+ @_runner
+ @contextlib.contextmanager
+ def attach_pid(session, target, cwd=None, wait=True):
+-    if wait and not sys.platform.startswith("linux"):
++    if wait:
+         pytest.skip("https://github.com/microsoft/ptvsd/issues/1926")
+ 
+     log.info("Attaching {0} to {1} by PID.", session, target)
+diff --git a/tests/debugpy/test_attach.py b/tests/debugpy/test_attach.py
+index afabc1ac..2fff3982 100644
+--- a/tests/debugpy/test_attach.py
++++ b/tests/debugpy/test_attach.py
+@@ -151,8 +151,7 @@ def test_reattach(pyfile, target, run):
+ 
+ 
+ @pytest.mark.parametrize("pid_type", ["int", "str"])
+-@pytest.mark.skipif(
+-    not sys.platform.startswith("linux"),
++@pytest.mark.skip(
+     reason="https://github.com/microsoft/debugpy/issues/311",
+ )
+ def test_attach_pid_client(pyfile, target, pid_type):
diff --git a/nixpkgs/pkgs/development/python-modules/deemix/default.nix b/nixpkgs/pkgs/development/python-modules/deemix/default.nix
index ac0e0a9d469b..d9eaddb7bf4a 100644
--- a/nixpkgs/pkgs/development/python-modules/deemix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deemix/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Deezer downloader built from the ashes of Deezloader Remix";
+    mainProgram = "deemix";
     homepage = "https://git.freezerapp.xyz/RemixDev/deemix-py";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ natto1784 ];
diff --git a/nixpkgs/pkgs/development/python-modules/deepdiff/default.nix b/nixpkgs/pkgs/development/python-modules/deepdiff/default.nix
index 64cae1af74c1..350ce76eca49 100644
--- a/nixpkgs/pkgs/development/python-modules/deepdiff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deepdiff/default.nix
@@ -68,6 +68,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Deep Difference and Search of any Python object/data";
+    mainProgram = "deep";
     homepage = "https://github.com/seperman/deepdiff";
     changelog = "https://github.com/seperman/deepdiff/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/deepdish/default.nix b/nixpkgs/pkgs/development/python-modules/deepdish/default.nix
index da73114835f8..7033e2f9f851 100644
--- a/nixpkgs/pkgs/development/python-modules/deepdish/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deepdish/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Flexible HDF5 saving/loading and other data science tools from the University of Chicago.";
+    mainProgram = "ddls";
     homepage = "https://github.com/uchicago-cs/deepdish";
     license = licenses.asl20;
     maintainers = with maintainers; [ ndl ];
diff --git a/nixpkgs/pkgs/development/python-modules/deepl/default.nix b/nixpkgs/pkgs/development/python-modules/deepl/default.nix
index 4840329d75c9..aa4a0b2ed1e5 100644
--- a/nixpkgs/pkgs/development/python-modules/deepl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deepl/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A language translation API that allows other computer programs to send texts and documents to DeepL's servers and receive high-quality translations";
+    mainProgram = "deepl";
     homepage = "https://github.com/DeepLcom/deepl-python";
     changelog = "https://github.com/DeepLcom/deepl-python/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/defang/default.nix b/nixpkgs/pkgs/development/python-modules/defang/default.nix
new file mode 100644
index 000000000000..d51573c0dc4f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/defang/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromBitbucket
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "defang";
+  version = "0.5.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromBitbucket {
+    owner = "johannestaas";
+    repo = "defang";
+    rev = "refs/tags/${version}";
+    hash = "sha256-OJfayJeVf2H1/jg7/fu2NiHhRHNCaLGI29SY8BnJyxI=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "defang"
+  ];
+
+  meta = with lib; {
+    description = "Module to defang and refang malicious URLs";
+    homepage = "https://bitbucket.org/johannestaas/defang";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dehinter/default.nix b/nixpkgs/pkgs/development/python-modules/dehinter/default.nix
index 1775e01fa8c9..276959b84b32 100644
--- a/nixpkgs/pkgs/development/python-modules/dehinter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dehinter/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Utility for removing hinting data from TrueType and OpenType fonts";
+    mainProgram = "dehinter";
     homepage = "https://github.com/source-foundry/dehinter";
     license = licenses.asl20;
     maintainers = with maintainers; [ danc86 ];
diff --git a/nixpkgs/pkgs/development/python-modules/deid/default.nix b/nixpkgs/pkgs/development/python-modules/deid/default.nix
index 6927d656a9f2..5edfd4afc341 100644
--- a/nixpkgs/pkgs/development/python-modules/deid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deid/default.nix
@@ -67,6 +67,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Best-effort anonymization for medical images";
+    mainProgram = "deid";
     homepage = "https://pydicom.github.io/deid";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
diff --git a/nixpkgs/pkgs/development/python-modules/dek/default.nix b/nixpkgs/pkgs/development/python-modules/dek/default.nix
new file mode 100644
index 000000000000..147cc40e316b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dek/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, xmod
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "dek";
+  version = "1.4.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "rec";
+    repo = "dek";
+    rev = "v${version}";
+    hash = "sha256-DYODdImTRCukGmGbkZ+9TQeI9DYaeRd/EHS6VND5IDs=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    xmod
+  ];
+
+  nativeBuildInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dek"
+  ];
+
+  meta = with lib; {
+    description = "The decorator-decorator";
+    homepage = "https://github.com/rec/dek";
+    changelog = "https://github.com/rec/dek/blob/${src.rev}/CHANGELOG";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/deltachat/default.nix b/nixpkgs/pkgs/development/python-modules/deltachat/default.nix
index 8d3f0cf20e11..4b5b0d8f7362 100644
--- a/nixpkgs/pkgs/development/python-modules/deltachat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deltachat/default.nix
@@ -4,13 +4,11 @@
 , pkg-config
 , pkgconfig
 , setuptools-scm
-, wheel
 , libdeltachat
 , cffi
 , imap-tools
 , requests
 , pluggy
-, setuptools
 , pytestCheckHook
 }:
 
@@ -20,15 +18,13 @@ buildPythonPackage rec {
   sourceRoot = "${src.name}/python";
 
   disabled = pythonOlder "3.7";
-  format = "pyproject";
+  pyproject = true;
 
   nativeBuildInputs = [
     cffi
     pkg-config
     pkgconfig
-    setuptools
     setuptools-scm
-    wheel
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/demes/default.nix b/nixpkgs/pkgs/development/python-modules/demes/default.nix
index 986bb7f9ac9f..4eadd670a1e1 100644
--- a/nixpkgs/pkgs/development/python-modules/demes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/demes/default.nix
@@ -41,6 +41,11 @@ buildPythonPackage rec {
     numpy
   ];
 
+  pytestFlagsArray = [
+    # pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   disabledTestPaths = [
     "tests/test_spec.py"
   ];
@@ -51,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tools for describing and manipulating demographic models";
+    mainProgram = "demes";
     homepage = "https://github.com/popsim-consortium/demes-python";
     license = licenses.isc;
     maintainers = with maintainers; [ alxsimon ];
diff --git a/nixpkgs/pkgs/development/python-modules/demesdraw/default.nix b/nixpkgs/pkgs/development/python-modules/demesdraw/default.nix
index 42e9fdc4c5f9..2672f8714685 100644
--- a/nixpkgs/pkgs/development/python-modules/demesdraw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/demesdraw/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Drawing functions for Demes demographic models";
+    mainProgram = "demesdraw";
     homepage = "https://github.com/grahamgower/demesdraw";
     license = licenses.isc;
     maintainers = with maintainers; [ alxsimon ];
diff --git a/nixpkgs/pkgs/development/python-modules/demjson3/default.nix b/nixpkgs/pkgs/development/python-modules/demjson3/default.nix
index 50668ec38834..6e83b001e6e1 100644
--- a/nixpkgs/pkgs/development/python-modules/demjson3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/demjson3/default.nix
@@ -27,6 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Encoder/decoder and lint/validator for JSON (JavaScript Object Notation)";
+    mainProgram = "jsonlint";
     homepage = "https://github.com/nielstron/demjson3/";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/demoji/default.nix b/nixpkgs/pkgs/development/python-modules/demoji/default.nix
new file mode 100644
index 000000000000..f8ce40a77de1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/demoji/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pythonOlder
+, pytestCheckHook
+, ujson
+}:
+
+buildPythonPackage rec {
+  pname = "demoji";
+  version = "1.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "bsolomon1124";
+    repo = "demoji";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ojy4JiM6xvP9J40Z5uFCMUZvZtLZ1le2p/2/NfAUAtk=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace-fail "pytest-runner" ""
+  '';
+
+  build-system = [
+    setuptools
+  ];
+
+  passthru.optional-dependencies = {
+    ujson = [
+      ujson
+    ];
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "demoji"
+  ];
+
+  meta = with lib; {
+    description = "Module to find/replace/remove emojis in text strings";
+    homepage = "https://github.com/bsolomon1124/demoji";
+    changelog = "https://github.com/bsolomon1124/demoji/blob/${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/deprecat/default.nix b/nixpkgs/pkgs/development/python-modules/deprecat/default.nix
index da81c63cca86..194859ad531a 100644
--- a/nixpkgs/pkgs/development/python-modules/deprecat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deprecat/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "deprecat";
-  version = "2.1.1";
+  version = "2.1.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "mjhajharia";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-3Xl/IC+ImFUxxLry15MIIVRf6aR+gA9K5S2IQomkv+o=";
+    hash = "sha256-uAabZAtZDhcX6TfiM0LnrAzxxS64ys+vdodmxO//0x8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/detect-secrets/default.nix b/nixpkgs/pkgs/development/python-modules/detect-secrets/default.nix
index d14b3d523b6f..589df5624778 100644
--- a/nixpkgs/pkgs/development/python-modules/detect-secrets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/detect-secrets/default.nix
@@ -43,6 +43,11 @@ buildPythonPackage rec {
     pkgs.gitMinimal
   ];
 
+  pytestFlagsArray = [
+    # Pytest.PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   preCheck = ''
     export HOME=$(mktemp -d);
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/diceware/default.nix b/nixpkgs/pkgs/development/python-modules/diceware/default.nix
index ed6c77c6abc6..4f4094e2cf9c 100644
--- a/nixpkgs/pkgs/development/python-modules/diceware/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/diceware/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Generates passphrases by concatenating words randomly picked from wordlists";
+    mainProgram = "diceware";
     homepage = "https://github.com/ulif/diceware";
     changelog = "https://github.com/ulif/diceware/blob/v${version}/CHANGES.rst";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/dicom2nifti/default.nix b/nixpkgs/pkgs/development/python-modules/dicom2nifti/default.nix
index 8c716135a104..f6dc8cd20a68 100644
--- a/nixpkgs/pkgs/development/python-modules/dicom2nifti/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dicom2nifti/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/icometrix/dicom2nifti";
     description = "Library for converting dicom files to nifti";
+    mainProgram = "dicom2nifti";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/dict2xml/default.nix b/nixpkgs/pkgs/development/python-modules/dict2xml/default.nix
index 62fb5caa8efb..6a68a695fbbb 100644
--- a/nixpkgs/pkgs/development/python-modules/dict2xml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dict2xml/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "dict2xml";
-  version = "1.7.4";
+  version = "1.7.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "delfick";
     repo = "python-dict2xml";
     rev = "refs/tags/release-${version}";
-    hash = "sha256-58sWvdkbt+czo96RUxB2vdOl/wqSU3BNIozSEdixWO8=";
+    hash = "sha256-GNvG1VFz/qkkTrKleMrq8n6kcIYtfhUlQMyCqH9uQzw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/diffimg/default.nix b/nixpkgs/pkgs/development/python-modules/diffimg/default.nix
index e5afcdf8cdf1..c1769d118f90 100644
--- a/nixpkgs/pkgs/development/python-modules/diffimg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/diffimg/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , pillow
 , unittestCheckHook
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,10 @@ buildPythonPackage rec {
   # fix offered to upstream https://github.com/nicolashahn/diffimg/pull/6
   postPatch = ''
     substituteInPlace diffimg/test.py \
-      --replace "from diff import diff" "from diffimg.diff import diff"
+      --replace-warn "from diff import diff" "from diffimg.diff import diff"
+  '' + lib.optionalString (pythonAtLeast "3.12") ''
+    substituteInPlace diffimg/test.py \
+      --replace-warn "3503192421617232" "3503192421617233"
   '';
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/diffusers/default.nix b/nixpkgs/pkgs/development/python-modules/diffusers/default.nix
index 8cfe8e361184..39464efe47fd 100644
--- a/nixpkgs/pkgs/development/python-modules/diffusers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/diffusers/default.nix
@@ -39,7 +39,7 @@
 
 buildPythonPackage rec {
   pname = "diffusers";
-  version = "0.26.3";
+  version = "0.27.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -48,7 +48,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "diffusers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1pIe1OU+vIrHM6KIZtHRMXklBZrugDV+I/OBNQYqvXI=";
+    hash = "sha256-aRnbU3jN40xaCsoMFyRt1XB+hyIYMJP2b/T1yZho90c=";
   };
 
   nativeBuildInputs = [
@@ -147,6 +147,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "State-of-the-art diffusion models for image and audio generation in PyTorch";
+    mainProgram = "diffusers-cli";
     homepage = "https://github.com/huggingface/diffusers";
     changelog = "https://github.com/huggingface/diffusers/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/dill/default.nix b/nixpkgs/pkgs/development/python-modules/dill/default.nix
index d6fdd2b97d2d..cdfdb401e94d 100644
--- a/nixpkgs/pkgs/development/python-modules/dill/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dill/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "dill";
-  version = "0.3.7";
+  version = "0.3.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,8 +20,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "uqfoundation";
     repo = pname;
-    rev = "refs/tags/dill-${version}";
-    hash = "sha256-1cRGA5RuNjlpc3jq9SAsUYgmPauIV8zRF9SxOmveljI=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-r65JgQH+5raiRX8NYELUB9B0zLy4z606EkFJaNpapNc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/dinghy/default.nix b/nixpkgs/pkgs/development/python-modules/dinghy/default.nix
index 20d855bf0d26..f7f099b3bb1a 100644
--- a/nixpkgs/pkgs/development/python-modules/dinghy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dinghy/default.nix
@@ -57,6 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A GitHub activity digest tool";
+    mainProgram = "dinghy";
     homepage = "https://github.com/nedbat/dinghy";
     changelog = "https://github.com/nedbat/dinghy/blob/${version}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/dingz/default.nix b/nixpkgs/pkgs/development/python-modules/dingz/default.nix
index 6ad22e7f4ced..10354264861e 100644
--- a/nixpkgs/pkgs/development/python-modules/dingz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dingz/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python API for interacting with Dingz devices";
+    mainProgram = "dingz";
     homepage = "https://github.com/home-assistant-ecosystem/python-dingz";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/dirigera/default.nix b/nixpkgs/pkgs/development/python-modules/dirigera/default.nix
new file mode 100644
index 000000000000..a2856ba209ea
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dirigera/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pydantic
+, pytestCheckHook
+, pythonOlder
+, requests
+, setuptools
+, websocket-client
+}:
+
+buildPythonPackage rec {
+  pname = "dirigera";
+  version = "1.0.11";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Leggin";
+    repo = "dirigera";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-kZlmfoGbvSv13+UqCE73ToLfrzzQ9AOxefRTxUvxMCg=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    pydantic
+    requests
+    websocket-client
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dirigera"
+  ];
+
+  meta = with lib; {
+    description = "Module for controlling the IKEA Dirigera Smart Home Hub";
+    mainProgram = "generate-token";
+    homepage = "https://github.com/Leggin/dirigera";
+    changelog = "https://github.com/Leggin/dirigera/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dissect-executable/default.nix b/nixpkgs/pkgs/development/python-modules/dissect-executable/default.nix
index 7b3757d0f3ad..8511b2df9448 100644
--- a/nixpkgs/pkgs/development/python-modules/dissect-executable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dissect-executable/default.nix
@@ -10,8 +10,8 @@
 
 buildPythonPackage rec {
   pname = "dissect-executable";
-  version = "1.4";
-  format = "pyproject";
+  version = "1.5";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.executable";
     rev = "refs/tags/${version}";
-    hash = "sha256-h9eOTWJR0Bd3DY8WDYWqLCl1jYJcqP6cRTgWubf/rKI=";
+    hash = "sha256-aAalU0TUqXc13WnxJvirG3QzQyMstecOfnXMdFT8IzU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/dissect-shellitem/default.nix b/nixpkgs/pkgs/development/python-modules/dissect-shellitem/default.nix
index 7b212feee0ce..6ee624cc4256 100644
--- a/nixpkgs/pkgs/development/python-modules/dissect-shellitem/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dissect-shellitem/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Dissect module implementing a parser for the Shellitem structures";
+    mainProgram = "parse-lnk";
     homepage = "https://github.com/fox-it/dissect.shellitem";
     changelog = "https://github.com/fox-it/dissect.shellitem/releases/tag/${version}";
     license = licenses.agpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/dissect-util/default.nix b/nixpkgs/pkgs/development/python-modules/dissect-util/default.nix
index 255d64dc0ce9..d085d842b711 100644
--- a/nixpkgs/pkgs/development/python-modules/dissect-util/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dissect-util/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Dissect module implementing various utility functions for the other Dissect modules";
+    mainProgram = "dump-nskeyedarchiver";
     homepage = "https://github.com/fox-it/dissect.util";
     changelog = "https://github.com/fox-it/dissect.util/releases/tag/${version}";
     license = licenses.agpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/distlib/default.nix b/nixpkgs/pkgs/development/python-modules/distlib/default.nix
index cf31574e6fdb..1f2d17395065 100644
--- a/nixpkgs/pkgs/development/python-modules/distlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/distlib/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "distlib";
-  version = "0.3.7";
+  version = "0.3.8";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-na/lSzSgKOr9lQOdXl1IUaE3NFQPEzEGDTHJkW5xR6g=";
+    hash = "sha256-FTDqE+NQAxtjEthYDdtrJ6EEJ1oxEGUjuPEjeH9JT2Q=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/distro/default.nix b/nixpkgs/pkgs/development/python-modules/distro/default.nix
index 73ded7625dca..9aab5f47e430 100644
--- a/nixpkgs/pkgs/development/python-modules/distro/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/distro/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "distro";
-  version = "1.8.0";
+  version = "1.9.0";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-AuER0dxqUKu47ta/McPkjtiwgw0eoqG3jGF2XCUT/dg=";
+    hash = "sha256-L6d8b9iUDxFu4da5Si+QsTteqNAZuYvIuv3KvN2b2+0=";
   };
 
   nativeBuildInputs = [
@@ -26,6 +26,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/nir0s/distro";
     description = "Linux Distribution - a Linux OS platform information API.";
+    mainProgram = "distro";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/django-anymail/default.nix b/nixpkgs/pkgs/development/python-modules/django-anymail/default.nix
index 799881ebee35..1e619035bd05 100644
--- a/nixpkgs/pkgs/development/python-modules/django-anymail/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-anymail/default.nix
@@ -1,25 +1,29 @@
 { lib
+, boto3
 , buildPythonPackage
-, fetchFromGitHub
-, requests
 , django
-, boto3
+, fetchFromGitHub
 , hatchling
-, python
 , mock
+, python
+, pythonOlder
+, requests
 , responses
+, urllib3
 }:
 
 buildPythonPackage rec {
   pname = "django-anymail";
-  version = "10.2";
+  version = "10.3";
   pyproject = true;
 
+  disabled = pythonOlder "3.7";
+
   src = fetchFromGitHub {
     owner = "anymail";
-    repo = pname;
+    repo = "django-anymail";
     rev = "refs/tags/v${version}";
-    hash = "sha256-k4C82OYm2SdjxeLScrkkitumjYgWkMNFlNeGW+C1Z8o=";
+    hash = "sha256-5uSpPeXpMkpuzMXzsGE6uQJWP/Dt/oqakB8Xb5G1eZY=";
   };
 
   nativeBuildInputs = [
@@ -27,8 +31,9 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    requests
     django
+    requests
+    urllib3
   ];
 
   nativeCheckInputs = [
@@ -37,7 +42,9 @@ buildPythonPackage rec {
   ] ++ passthru.optional-dependencies.amazon-ses;
 
   passthru.optional-dependencies = {
-    amazon-ses = [ boto3 ];
+    amazon-ses = [
+      boto3
+    ];
   };
 
   checkPhase = ''
@@ -46,11 +53,14 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [ "anymail" ];
+  pythonImportsCheck = [
+    "anymail"
+  ];
 
   meta = with lib; {
     description = "Django email backends and webhooks for Mailgun";
     homepage = "https://github.com/anymail/django-anymail";
+    changelog = "https://github.com/anymail/django-anymail/blob/v${version}/CHANGELOG.rst";
     license = licenses.bsd3;
     maintainers = with maintainers; [ onny ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/django-celery-beat/default.nix b/nixpkgs/pkgs/development/python-modules/django-celery-beat/default.nix
index f8126f7ed3ad..2ed27afb27ad 100644
--- a/nixpkgs/pkgs/development/python-modules/django-celery-beat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-celery-beat/default.nix
@@ -1,31 +1,36 @@
 { lib
-, fetchPypi
 , buildPythonPackage
-, python-crontab
+, case
 , celery
 , cron-descriptor
 , django-timezone-field
-, tzdata
 , ephem
-, pytest-timeout
+, fetchPypi
 , pytest-django
-, case
+, pytest-timeout
 , pytestCheckHook
+, python-crontab
 , pythonOlder
+, setuptools
+, tzdata
 }:
 
 buildPythonPackage rec {
   pname = "django-celery-beat";
-  version = "2.5.0";
-  format = "setuptools";
+  version = "2.6.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zQpH9ZWEAvUawMcVvJQq4z17ULTkjLqRvD8nEr5QXfE=";
+    hash = "sha256-91stEpcx8SFL6Dg+GPrmv+rNtV3/shFs6EkiLAEG+a0=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     cron-descriptor
     python-crontab
@@ -54,6 +59,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Celery Periodic Tasks backed by the Django ORM";
     homepage = "https://github.com/celery/django-celery-beat";
+    changelog = "https://github.com/celery/django-celery-beat/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ onny ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/django-compressor/default.nix b/nixpkgs/pkgs/development/python-modules/django-compressor/default.nix
index a8d367e854af..543c483023df 100644
--- a/nixpkgs/pkgs/development/python-modules/django-compressor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-compressor/default.nix
@@ -1,24 +1,32 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonRelaxDepsHook
+
+# build-system
+, setuptools
+
+# dependencies
+, calmjs
+, django-appconf
+, jinja2
 , rcssmin
 , rjsmin
-, django-appconf
+
+# tests
 , beautifulsoup4
 , brotli
-, pytestCheckHook
+, csscompressor
 , django-sekizai
+, pytestCheckHook
 , pytest-django
-, csscompressor
-, calmjs
-, jinja2
-, python
+
 }:
 
 buildPythonPackage rec {
   pname = "django-compressor";
   version = "4.4";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "django_compressor";
@@ -26,7 +34,17 @@ buildPythonPackage rec {
     hash = "sha256-GwrMnPup9pvDjnxB2psNcKILyVWHtkP/75YJz0YGT2c=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "rcssmin"
+    "rjsmin"
+  ];
+
+  dependencies = [
     beautifulsoup4
     calmjs
     django-appconf
@@ -35,7 +53,9 @@ buildPythonPackage rec {
     rjsmin
   ];
 
-  checkInputs = [
+  env.DJANGO_SETTINGS_MODULE = "compressor.test_settings";
+
+  nativeCheckInputs = [
     beautifulsoup4
     brotli
     csscompressor
@@ -53,8 +73,6 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "compressor" ];
 
-  DJANGO_SETTINGS_MODULE = "compressor.test_settings";
-
   meta = with lib; {
     description = "Compresses linked and inline JavaScript or CSS into single cached files";
     homepage = "https://django-compressor.readthedocs.org/";
diff --git a/nixpkgs/pkgs/development/python-modules/django-configurations/default.nix b/nixpkgs/pkgs/development/python-modules/django-configurations/default.nix
index ba32b7576403..087ffab30139 100644
--- a/nixpkgs/pkgs/development/python-modules/django-configurations/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-configurations/default.nix
@@ -58,6 +58,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A helper for organizing Django settings";
+    mainProgram = "django-cadmin";
     homepage = "https://django-configurations.readthedocs.io/";
     license = licenses.bsd0;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/django-context-decorator/default.nix b/nixpkgs/pkgs/development/python-modules/django-context-decorator/default.nix
index a23f5c874a76..00f4a80e9526 100644
--- a/nixpkgs/pkgs/development/python-modules/django-context-decorator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-context-decorator/default.nix
@@ -1,22 +1,27 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, flit-core
 , django
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "django-context-decorator";
-  version = "1.6.0";
-  format = "setuptools";
+  version = "1.6.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "rixx";
     repo = "django-context-decorator";
     rev = "v${version}";
-    hash = "sha256-/FDGWGC1Pdu+RLyazDNZv+CMf5vscXprLdN8ELjUFNo=";
+    hash = "sha256-lNmZDsguOu2+gtMVjbwr709sbLCQOQ1sAePN7UJQbcw=";
   };
 
+  build-system = [
+    flit-core
+  ];
+
   pythonImportsCheck = [
     "django_context_decorator"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/django-csp/default.nix b/nixpkgs/pkgs/development/python-modules/django-csp/default.nix
index ed3add9a5cd0..e8f04f188a54 100644
--- a/nixpkgs/pkgs/development/python-modules/django-csp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-csp/default.nix
@@ -1,20 +1,47 @@
-{ lib, fetchPypi, buildPythonPackage, django }:
+{ lib
+, fetchPypi
+, buildPythonPackage
+
+# build-system
+, setuptools
+
+# dependencies
+, django
+
+# tests
+, jinja2
+, pytest-django
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "django-csp";
-  version = "3.7";
-  format = "setuptools";
+  version = "3.8";
+  pyproject = true;
 
   src = fetchPypi {
     inherit version;
     pname = "django_csp";
-    sha256 = "01eda02ad3f10261c74131cdc0b5a6a62b7c7ad4fd017fbefb7a14776e0a9727";
+    hash = "sha256-7w8an32Nporm4WnALprGYcDs8E23Dg0dhWQFEqaEccA=";
   };
 
-  # too complicated to setup - needs a running django instance
-  doCheck = false;
+  postPatch = ''
+    sed -i "/addopts =/d" pyproject.toml
+  '';
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    django
+  ];
 
-  propagatedBuildInputs = [ django ];
+  nativeCheckInputs = [
+    jinja2
+    pytest-django
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     description = "Adds Content-Security-Policy headers to Django";
diff --git a/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix b/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix
index 474ede58b770..5e77c5bfc590 100644
--- a/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix
@@ -51,6 +51,9 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # requires network access
     "tests/management/commands/test_pipchecker.py"
+    # django.db.utils.OperationalError: no such table: django_extensions_permmodel
+    "tests/test_dumpscript.py"
+
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/django-formtools/default.nix b/nixpkgs/pkgs/development/python-modules/django-formtools/default.nix
index 975085c8f3ef..94dd9f370882 100644
--- a/nixpkgs/pkgs/development/python-modules/django-formtools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-formtools/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "django-formtools";
-  version = "2.4.1";
-  format = "setuptools";
+  version = "2.5.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-IfjV2sc38eY2+ooKEJacHDL1JabfonwpWSgnunDZZDo=";
+    hash = "sha256-R8s0VSxu/KCIhj1pMoTQT8NuqvNQ6yHhodk14N9SPJM=";
   };
 
   nativeBuildInputs = [
@@ -28,7 +28,11 @@ buildPythonPackage rec {
   ];
 
   checkPhase = ''
+    runHook preCheck
+
     ${python.interpreter} -m django test --settings=tests.settings
+
+    runHook postCheck
   '';
 
   pythonImportsCheck = [
@@ -38,6 +42,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A set of high-level abstractions for Django forms";
     homepage = "https://github.com/jazzband/django-formtools";
+    changelog = "https://github.com/jazzband/django-formtools/blob/master/docs/changelog.rst";
     license = licenses.bsd3;
     maintainers = with maintainers; [ greizgh schmittlauch ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/django-health-check/default.nix b/nixpkgs/pkgs/development/python-modules/django-health-check/default.nix
index 8d8e266014cb..6716c1f003a2 100644
--- a/nixpkgs/pkgs/development/python-modules/django-health-check/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-health-check/default.nix
@@ -13,15 +13,14 @@
 
 buildPythonPackage rec {
   pname = "django-health-check";
-  version = "3.17.0";
+  version = "3.18.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "KristianOellegaard";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-f87dgB2pDc+A0h41FX13qTj6Zzw5I4QwsDoC6yPkvAE=";
-    leaveDotGit = true;
+    hash = "sha256-4fl7x0pleI1yL+tEWGt5Gmcl6ZKETQz2AsNQDVIAwy8=";
   };
 
   buildInputs = [
@@ -42,6 +41,11 @@ buildPythonPackage rec {
     redis
   ];
 
+  disabledTests = [
+    # commandline output mismatch
+    "test_command_with_non_existence_subset"
+  ];
+
   postPatch = ''
     # We don't want to generate coverage
     substituteInPlace setup.cfg \
diff --git a/nixpkgs/pkgs/development/python-modules/django-leaflet/default.nix b/nixpkgs/pkgs/development/python-modules/django-leaflet/default.nix
index 7ea1ba4a58d9..aeb37f5aa99a 100644
--- a/nixpkgs/pkgs/development/python-modules/django-leaflet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-leaflet/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "django-leaflet";
-  version = "0.29.0";
+  version = "0.29.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-L23Ixxh/0i5itvK3tC7thpIPgb7DEqplSYHr5byOCGY=";
+    hash = "sha256-ECtocPJHYR1DsFLeVMVdtlia4UNOJyNMsU1CrX1aVsQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/django-otp/default.nix b/nixpkgs/pkgs/development/python-modules/django-otp/default.nix
index 216b24e3c0c0..c1078160b6eb 100644
--- a/nixpkgs/pkgs/development/python-modules/django-otp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-otp/default.nix
@@ -1,46 +1,63 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, hatchling
 , django
 , freezegun
-, pythonOlder
 , qrcode
+, pytest
+, python
 }:
 
 buildPythonPackage rec {
   pname = "django-otp";
-  version = "1.1.3";
-  format = "setuptools";
-  disabled = pythonOlder "3";
+  version = "1.3.0post1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "django-otp";
     repo = "django-otp";
     rev = "v${version}";
-    hash = "sha256-Ac9p7q9yaUr3WTTGxCY16Yo/Z8i1RtnD2g0Aj2pqSXY=";
+    hash = "sha256-Q8YTCYERyoAXenSiDabxuxaWiD6ZeJKKKgaR/Rg3y20=";
   };
 
-  postPatch = ''
-    patchShebangs manage.py
-  '';
+  build-system = [
+    hatchling
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     django
     qrcode
   ];
 
+  env.DJANGO_SETTINGS_MODUOLE = "test.test_project.settings";
+
   nativeCheckInputs = [
     freezegun
+    pytest
   ];
 
   checkPhase = ''
-    ./manage.py test django_otp
+    runHook preCheck
+
+    export PYTHONPATH=$PYTHONPATH:test
+    export DJANGO_SETTINGS_MODULE=test_project.settings
+    ${python.interpreter} -m django test django_otp
+
+    runHook postCheck
   '';
 
-  pythonImportsCheck = [ "django_otp" ];
+  pytestFlagsArray = [
+    "src/django_otp/test.py"
+  ];
+
+  pythonImportsCheck = [
+    "django_otp"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/jazzband/django-model-utils";
+    homepage = "https://github.com/django-otp/django-otp";
+    changelog = "https://github.com/django-otp/django-otp/blob/${src.rev}/CHANGES.rst";
     description = "Pluggable framework for adding two-factor authentication to Django using one-time passwords";
     license = licenses.bsd2;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/django-statici18n/default.nix b/nixpkgs/pkgs/development/python-modules/django-statici18n/default.nix
index 9fc04339c226..8ce7bc0340a9 100644
--- a/nixpkgs/pkgs/development/python-modules/django-statici18n/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-statici18n/default.nix
@@ -1,25 +1,37 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+
+# build-system
+, setuptools
+
+# dependencies
 , django
 , django-appconf
+
+# tests
 , pytest-django
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "django-statici18n";
-  version = "2.3.1";
-  format = "setuptools";
+  version = "2.4.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "zyegfryed";
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    hash = "sha256-2fFJJNdF0jspS7djDL8sToPTetzNR6pfNp5ohCNa30I=";
+    repo = "django-statici18n";
+    # https://github.com/zyegfryed/django-statici18n/issues/59
+    rev = "9b83a8f0f2e625dd5f56d53cfe4e07aca9479ab6";
+    hash = "sha256-KrIlWmN7um9ad2avfANOza579bjYkxTo9F0UFpvLu3A=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     django
     django-appconf
   ];
@@ -28,7 +40,7 @@ buildPythonPackage rec {
     "statici18n"
   ];
 
-  DJANGO_SETTINGS_MODULE = "tests.test_project.project.settings";
+  env.DJANGO_SETTINGS_MODULE = "tests.test_project.project.settings";
 
   nativeCheckInputs = [
     pytest-django
diff --git a/nixpkgs/pkgs/development/python-modules/django-storages/default.nix b/nixpkgs/pkgs/development/python-modules/django-storages/default.nix
index 29b4aff06309..b835a6fb0766 100644
--- a/nixpkgs/pkgs/development/python-modules/django-storages/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-storages/default.nix
@@ -80,6 +80,11 @@ buildPythonPackage rec {
     "test_storage_save_gzip"
   ];
 
+  disabledTestPaths = [
+    # ImportError: cannot import name 'mock_s3' from 'moto'
+    "tests/test_s3.py"
+  ];
+
   meta = with lib; {
     description = "Collection of custom storage backends for Django";
     changelog = "https://github.com/jschneier/django-storages/blob/${version}/CHANGELOG.rst";
diff --git a/nixpkgs/pkgs/development/python-modules/django/4.nix b/nixpkgs/pkgs/development/python-modules/django/4.nix
index d7b2097e2e7d..4340c5ab2c97 100644
--- a/nixpkgs/pkgs/development/python-modules/django/4.nix
+++ b/nixpkgs/pkgs/development/python-modules/django/4.nix
@@ -2,7 +2,6 @@
 , stdenv
 , buildPythonPackage
 , fetchPypi
-, fetchpatch2
 , pythonOlder
 , substituteAll
 
@@ -43,14 +42,14 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "4.2.10";
+  version = "4.2.11";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sSYO04GxChF1PHNERAjhmGnzJB/EXJhc1VowF3x4nRM=";
+    hash = "sha256-bm/z2y2N0MmGtO7IVUyOT5GbXB/2KltDkMF6/y7W5cQ=";
   };
 
   patches = [
@@ -62,11 +61,6 @@ buildPythonPackage rec {
     # and disable failing tests
     ./django_4_tests.patch
 
-    (fetchpatch2 {
-      # fix test on 3.12; https://github.com/django/django/pull/17843
-      url = "https://github.com/django/django/commit/bc8471f0aac8f0c215b9471b594d159783bac19b.patch";
-      hash = "sha256-g1T9b73rmQ0uk1lB+iQy1XwK3Qin3mf5wpRsyYISJaw=";
-    })
   ] ++ lib.optionals withGdal [
     (substituteAll {
       src = ./django_4_set_geos_gdal_lib.patch;
@@ -143,6 +137,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://docs.djangoproject.com/en/${lib.versions.majorMinor version}/releases/${version}/";
     description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design.";
+    mainProgram = "django-admin";
     homepage = "https://www.djangoproject.com";
     license = licenses.bsd3;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/development/python-modules/django/5.nix b/nixpkgs/pkgs/development/python-modules/django/5.nix
index fcdf32135ba2..7bbc36f27af8 100644
--- a/nixpkgs/pkgs/development/python-modules/django/5.nix
+++ b/nixpkgs/pkgs/development/python-modules/django/5.nix
@@ -42,14 +42,15 @@
 }:
 
 buildPythonPackage rec {
-  pname = "Django";
+  pname = "django";
   version = "5.0.3";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "Django";
+    inherit version;
     hash = "sha256-X7N1gNz0omL5JYwfQ3OBmqzKkGQx9QXkaI4386mRld8=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix b/nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix
index e2dc4ce14887..1499469c06b8 100644
--- a/nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix
@@ -41,6 +41,11 @@ buildPythonPackage rec {
     uritemplate
   ];
 
+  pytestFlagsArray = [
+    # ytest.PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   pythonImportsCheck = [ "rest_framework" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/dm-sonnet/default.nix b/nixpkgs/pkgs/development/python-modules/dm-sonnet/default.nix
index 1947a07b835a..457ad4de643d 100644
--- a/nixpkgs/pkgs/development/python-modules/dm-sonnet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dm-sonnet/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "dm-sonnet";
-  version = "2.0.0";
+  version = "2.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -24,8 +24,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "deepmind";
     repo = "sonnet";
-    rev = "v${version}";
-    hash = "sha256-YSMeH5ZTfP1OdLBepsxXAVczBG/ghSjCWjoz/I+TFl8=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-WkloUbqSyPG3cbLG8ktsjdluACkCbUZ7t6rYWst8rs8=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/dnf4/default.nix b/nixpkgs/pkgs/development/python-modules/dnf4/default.nix
index 87bd9a1b7d45..c9b7e5113b8c 100644
--- a/nixpkgs/pkgs/development/python-modules/dnf4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dnf4/default.nix
@@ -16,7 +16,7 @@ in
 
 buildPythonPackage rec {
   pname = "dnf4";
-  version = "4.18.2";
+  version = "4.19.0";
   format = "other";
 
   outputs = [ "out" "man" "py" ];
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "rpm-software-management";
     repo = "dnf";
     rev = version;
-    hash = "sha256-WOLVKsrHp0V0wMXXRf1hrxsxuVv2bFOKIw8Aitz0cac=";
+    hash = "sha256-LY2D3A3la58/8V2zKqPZWbR5iAMkrsG36gP8EvwANaA=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/dns-lexicon/default.nix b/nixpkgs/pkgs/development/python-modules/dns-lexicon/default.nix
index 6cc982c5df53..b9647c5ed804 100644
--- a/nixpkgs/pkgs/development/python-modules/dns-lexicon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dns-lexicon/default.nix
@@ -110,6 +110,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Manipulate DNS records on various DNS providers in a standardized way";
+    mainProgram = "lexicon";
     homepage = "https://github.com/AnalogJ/lexicon";
     changelog = "https://github.com/AnalogJ/lexicon/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/doc8/default.nix b/nixpkgs/pkgs/development/python-modules/doc8/default.nix
index 915918bc54b6..48c00b0d5cc3 100644
--- a/nixpkgs/pkgs/development/python-modules/doc8/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/doc8/default.nix
@@ -62,6 +62,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Style checker for Sphinx (or other) RST documentation";
+    mainProgram = "doc8";
     homepage = "https://github.com/pycqa/doc8";
     changelog = "https://github.com/PyCQA/doc8/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/docformatter/default.nix b/nixpkgs/pkgs/development/python-modules/docformatter/default.nix
index 5e0240034413..517b777735d7 100644
--- a/nixpkgs/pkgs/development/python-modules/docformatter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/docformatter/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
   meta = {
     changelog = "https://github.com/PyCQA/docformatter/blob/${src.rev}/CHANGELOG.md";
     description = "Formats docstrings to follow PEP 257";
+    mainProgram = "docformatter";
     homepage = "https://github.com/myint/docformatter";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/docstr-coverage/default.nix b/nixpkgs/pkgs/development/python-modules/docstr-coverage/default.nix
index ba0945ad15af..b9a6080fa7df 100644
--- a/nixpkgs/pkgs/development/python-modules/docstr-coverage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/docstr-coverage/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Docstring coverage analysis and rating for Python";
+    mainProgram = "docstr-coverage";
     homepage = "https://github.com/HunterMcGushion/docstr_coverage";
     changelog = "https://github.com/HunterMcGushion/docstr_coverage/blob/master/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/docstring-to-markdown/default.nix b/nixpkgs/pkgs/development/python-modules/docstring-to-markdown/default.nix
index 958adb3ffbf1..5a720d1954dd 100644
--- a/nixpkgs/pkgs/development/python-modules/docstring-to-markdown/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/docstring-to-markdown/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "docstring-to-markdown";
-  version = "0.13";
+  version = "0.15";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,13 +16,12 @@ buildPythonPackage rec {
     owner = "python-lsp";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-r+TRYofTRDCBC0s+bJRhagepEQbbj5WeI5FRtaVPt24=";
+    hash = "sha256-ykqY7LFIOTuAddYkKDzIltq8FpLVz4v2ZA3Y0cZH9ms=";
   };
 
-  patches = [
-    # So pytest-flake8 and pytest-cov won't be needed
-    ./remove-coverage-tests.patch
-  ];
+  postPatch = ''
+    sed -i -E '/--(cov|flake8)/d' setup.cfg
+  '';
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/nixpkgs/pkgs/development/python-modules/docstring-to-markdown/remove-coverage-tests.patch b/nixpkgs/pkgs/development/python-modules/docstring-to-markdown/remove-coverage-tests.patch
deleted file mode 100644
index 68bc626ced91..000000000000
--- a/nixpkgs/pkgs/development/python-modules/docstring-to-markdown/remove-coverage-tests.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git i/setup.cfg w/setup.cfg
-index e880e74..e77133e 100644
---- i/setup.cfg
-+++ w/setup.cfg
-@@ -34,11 +34,7 @@ docstring-to-markdown = py.typed
- [tool:pytest]
- addopts =
-     --pyargs tests
--    --cov docstring_to_markdown
--    --cov-fail-under=98
--    --cov-report term-missing:skip-covered
-     -p no:warnings
--    --flake8
-     -vv
- 
- [flake8]
diff --git a/nixpkgs/pkgs/development/python-modules/docx2txt/default.nix b/nixpkgs/pkgs/development/python-modules/docx2txt/default.nix
index 6b3c2777d78c..97c7f2b77692 100644
--- a/nixpkgs/pkgs/development/python-modules/docx2txt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/docx2txt/default.nix
@@ -19,6 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A pure python-based utility to extract text and images from docx files";
+    mainProgram = "docx2txt";
     homepage = "https://github.com/ankushshah89/python-docx2txt";
     license = licenses.mit;
     maintainers = with maintainers; [ ilkecan ];
diff --git a/nixpkgs/pkgs/development/python-modules/dodgy/default.nix b/nixpkgs/pkgs/development/python-modules/dodgy/default.nix
index 161e23f648a5..ada91ac3181e 100644
--- a/nixpkgs/pkgs/development/python-modules/dodgy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dodgy/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Looks at Python code to search for things which look \"dodgy\" such as passwords or diffs";
+    mainProgram = "dodgy";
     homepage = "https://github.com/landscapeio/dodgy";
     license = licenses.mit;
     maintainers = with maintainers; [
diff --git a/nixpkgs/pkgs/development/python-modules/doit/default.nix b/nixpkgs/pkgs/development/python-modules/doit/default.nix
index 190219cf1c0c..f855de38ffa2 100644
--- a/nixpkgs/pkgs/development/python-modules/doit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/doit/default.nix
@@ -57,6 +57,7 @@ let doit = buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://pydoit.org/";
     description = "A task management & automation tool";
+    mainProgram = "doit";
     license = licenses.mit;
     longDescription = ''
       doit is a modern open-source build-tool written in python
diff --git a/nixpkgs/pkgs/development/python-modules/dot2tex/default.nix b/nixpkgs/pkgs/development/python-modules/dot2tex/default.nix
index f722c80bdad7..fdf7705469ee 100644
--- a/nixpkgs/pkgs/development/python-modules/dot2tex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dot2tex/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Convert graphs generated by Graphviz to LaTeX friendly formats";
+    mainProgram = "dot2tex";
     homepage = "https://github.com/kjellmf/dot2tex";
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/downloader-cli/default.nix b/nixpkgs/pkgs/development/python-modules/downloader-cli/default.nix
index e6334daff641..248bafca3967 100644
--- a/nixpkgs/pkgs/development/python-modules/downloader-cli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/downloader-cli/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Downloader with an awesome customizable progressbar";
+    mainProgram = "dw";
     homepage = "https://github.com/deepjyoti30/downloader-cli";
     changelog = "https://github.com/deepjyoti30/downloader-cli/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/dploot/default.nix b/nixpkgs/pkgs/development/python-modules/dploot/default.nix
index fc60abddc69f..ece3ef403a04 100644
--- a/nixpkgs/pkgs/development/python-modules/dploot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dploot/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "dploot";
-  version = "2.2.5";
+  version = "2.6.2";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SINtHw9q1cNqwtvSpPQUgYj6PzEqKXV0WXuKiPvkFQU=";
+    hash = "sha256-Fko8zsIjVG1Cmeiect239HGCStJ8VccGTE102cTIr58=";
   };
 
   pythonRelaxDeps = true;
@@ -41,6 +41,7 @@ buildPythonPackage rec {
   meta = {
     homepage = "https://github.com/zblurx/dploot";
     description = "DPAPI looting remotely in Python";
+    mainProgram = "dploot";
     changelog = "https://github.com/zblurx/dploot/releases/tag/${version}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ vncsb ];
diff --git a/nixpkgs/pkgs/development/python-modules/drf-spectacular/default.nix b/nixpkgs/pkgs/development/python-modules/drf-spectacular/default.nix
index 53c4d5053e62..f38a2fbf86bc 100644
--- a/nixpkgs/pkgs/development/python-modules/drf-spectacular/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/drf-spectacular/default.nix
@@ -29,14 +29,14 @@
 
 buildPythonPackage rec {
   pname = "drf-spectacular";
-  version = "0.26.5";
+  version = "0.27.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "tfranzel";
     repo = "drf-spectacular";
     rev = "refs/tags/${version}";
-    hash = "sha256-sK+upLh0mi8eHKh1Wt9FoLRjqlHitTSX0Zl54S4Ce6E=";
+    hash = "sha256-R6rxEo9SNNziXRWB+01UUInParpGcFDIkDZtN4k+dFE=";
   };
 
   patches = [
@@ -79,6 +79,8 @@ buildPythonPackage rec {
   disabledTests = [
     # requires django with gdal
     "test_rest_framework_gis"
+    # outdated test artifact
+    "test_pydantic_decoration"
   ];
 
   pythonImportsCheck = [ "drf_spectacular" ];
diff --git a/nixpkgs/pkgs/development/python-modules/dronecan/default.nix b/nixpkgs/pkgs/development/python-modules/dronecan/default.nix
index 1505103146ad..49c5dbb51db4 100644
--- a/nixpkgs/pkgs/development/python-modules/dronecan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dronecan/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "dronecan";
-  version = "1.0.25";
+  version = "1.0.26";
   format = "setuptools";
   disabled = pythonOlder "3.3";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0WKmVZwE6OgBckWWvPcn5BYqXMEt6Mr1P68UMHfRp4I=";
+    hash = "sha256-D2odxa9ADswrg6rgKLTyQulHpGec1r0lWRUZDV5YvyE=";
   };
 
   nativeCheckInputs = [
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python implementation of the DroneCAN v1 protocol stack";
+    mainProgram = "dronecan_bridge.py";
     longDescription = ''
       DroneCAN is a lightweight protocol designed for reliable communication in aerospace and robotic applications via CAN bus.
     '';
diff --git a/nixpkgs/pkgs/development/python-modules/ds-store/default.nix b/nixpkgs/pkgs/development/python-modules/ds-store/default.nix
index 6436fc478add..70fc1198916d 100644
--- a/nixpkgs/pkgs/development/python-modules/ds-store/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ds-store/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/al45tair/ds_store";
     description = "Manipulate Finder .DS_Store files from Python";
+    mainProgram = "ds_store";
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/ds4drv/default.nix b/nixpkgs/pkgs/development/python-modules/ds4drv/default.nix
index a28c2d860885..ab08f7b9c2ed 100644
--- a/nixpkgs/pkgs/development/python-modules/ds4drv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ds4drv/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Userspace driver for the DualShock 4 controller";
+    mainProgram = "ds4drv";
     homepage = "https://github.com/chrippa/ds4drv";
     license = lib.licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/dsmr-parser/default.nix b/nixpkgs/pkgs/development/python-modules/dsmr-parser/default.nix
index 33090ff4be7c..22e76d6036cb 100644
--- a/nixpkgs/pkgs/development/python-modules/dsmr-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dsmr-parser/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "dsmr-parser";
-  version = "1.3.1";
+  version = "1.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "ndokter";
     repo = "dsmr_parser";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PULrKRHrCuDFZcR+5ha0PjkN438QFgf2CrpYhKIqYTs=";
+    hash = "sha256-4L7hLDd/hYYdhnkcPRK48FnHutbyDXpnhQoVXUQLoDo=";
   };
 
   propagatedBuildInputs = [
@@ -47,6 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to parse Dutch Smart Meter Requirements (DSMR)";
+    mainProgram = "dsmr_console";
     homepage = "https://github.com/ndokter/dsmr_parser";
     changelog = "https://github.com/ndokter/dsmr_parser/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/dsnap/default.nix b/nixpkgs/pkgs/development/python-modules/dsnap/default.nix
index c93793018c4f..d67cb02aa112 100644
--- a/nixpkgs/pkgs/development/python-modules/dsnap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dsnap/default.nix
@@ -66,6 +66,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Utility for downloading and mounting EBS snapshots using the EBS Direct API's";
+    mainProgram = "dsnap";
     homepage = "https://github.com/RhinoSecurityLabs/dsnap";
     changelog = "https://github.com/RhinoSecurityLabs/dsnap/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/dtschema/default.nix b/nixpkgs/pkgs/development/python-modules/dtschema/default.nix
index cb4fa7fcdf47..4647dbbb3002 100644
--- a/nixpkgs/pkgs/development/python-modules/dtschema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dtschema/default.nix
@@ -12,8 +12,8 @@
 
 buildPythonPackage rec {
   pname = "dtschema";
-  version = "2023.04";
-  format = "setuptools";
+  version = "2024.02";
+  format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "devicetree-org";
     repo = "dt-schema";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-w9TsRdiDTdExft7rdb2hYcvxP6hxOFZKI3hITiNSwgw=";
+    sha256 = "sha256-UJU8b9BzuuUSHRjnA6hOd1bMPNOlk4LNtrQV5aZmGhI=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/dtschema/fix_libfdt_name.patch b/nixpkgs/pkgs/development/python-modules/dtschema/fix_libfdt_name.patch
index eb1ec34a95d6..093b13023fb3 100644
--- a/nixpkgs/pkgs/development/python-modules/dtschema/fix_libfdt_name.patch
+++ b/nixpkgs/pkgs/development/python-modules/dtschema/fix_libfdt_name.patch
@@ -1,13 +1,13 @@
-diff --git a/setup.py b/setup.py
-index 62db8af..4a980c1 100755
---- a/setup.py
-+++ b/setup.py
-@@ -52,7 +52,7 @@ setuptools.setup(
-         'ruamel.yaml>0.15.69',
-         'jsonschema>=4.1.2',
-         'rfc3987',
--        'pylibfdt',
-+        'libfdt',
-     ],
+diff --git a/pyproject.toml b/pyproject.toml
+index 2192a68..6a7ba95 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -27,7 +27,7 @@ dependencies = [
+     "ruamel.yaml>0.15.69",
+     "jsonschema>=4.1.2,<4.18",
+     "rfc3987",
+-    "pylibfdt",
++    "libfdt",
+ ]
  
-     classifiers=[
+ [project.scripts]
diff --git a/nixpkgs/pkgs/development/python-modules/dtw-python/default.nix b/nixpkgs/pkgs/development/python-modules/dtw-python/default.nix
index 6a35cb9d1fa3..11164736a2c0 100644
--- a/nixpkgs/pkgs/development/python-modules/dtw-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dtw-python/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python port of R's Comprehensive Dynamic Time Warp algorithms package";
+    mainProgram = "dtw";
     homepage = "https://github.com/DynamicTimeWarping/dtw-python";
     changelog = "https://github.com/DynamicTimeWarping/dtw-python/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/duckdb/default.nix b/nixpkgs/pkgs/development/python-modules/duckdb/default.nix
index fd197f9305d6..83fd0bbb6908 100644
--- a/nixpkgs/pkgs/development/python-modules/duckdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/duckdb/default.nix
@@ -14,7 +14,7 @@
 }:
 
 buildPythonPackage rec {
-  inherit (duckdb) patches pname src version;
+  inherit (duckdb) patches pname rev src version;
   pyproject = true;
 
   postPatch = (duckdb.postPatch or "") + ''
@@ -31,8 +31,11 @@ buildPythonPackage rec {
   env = {
     BUILD_HTTPFS = 1;
     DUCKDB_BUILD_UNITY = 1;
+    OVERRIDE_GIT_DESCRIBE="v${version}-0-g${rev}";
   };
 
+  dontPretendSetuptoolsSCMVersion = true;
+
   nativeBuildInputs = [
     pybind11
     setuptools-scm
diff --git a/nixpkgs/pkgs/development/python-modules/duckduckgo-search/default.nix b/nixpkgs/pkgs/development/python-modules/duckduckgo-search/default.nix
index 76447627c4c5..708762bb2622 100644
--- a/nixpkgs/pkgs/development/python-modules/duckduckgo-search/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/duckduckgo-search/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "duckduckgo-search";
-  version = "3.9.9";
+  version = "5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "deedy5";
     repo = "duckduckgo_search";
     rev = "refs/tags/v${version}";
-    hash = "sha256-swuMCobYF5u41O1Qp5Gx/n8BIgSEnhRVZ5Owk3IPbeI=";
+    hash = "sha256-OZFkSFyXC2MFP2MbKwF/qR8zvCFzPKgLmX+nuIztOpw=";
   };
 
   nativeBuildInputs = [
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python CLI and library for searching for words, documents, images, videos, news, maps and text translation using the DuckDuckGo.com search engine";
+    mainProgram = "ddgs";
     homepage = "https://github.com/deedy5/duckduckgo_search";
     changelog = "https://github.com/deedy5/duckduckgo_search/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/duecredit/default.nix b/nixpkgs/pkgs/development/python-modules/duecredit/default.nix
index 1e24f9112920..582d572a4420 100644
--- a/nixpkgs/pkgs/development/python-modules/duecredit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/duecredit/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/duecredit/duecredit";
     description = "Simple framework to embed references in code";
+    mainProgram = "duecredit";
     changelog = "https://github.com/duecredit/duecredit/releases/tag/${version}";
     license = licenses.bsd2;
     maintainers = with maintainers; [ bcdarwin ];
diff --git a/nixpkgs/pkgs/development/python-modules/dunamai/default.nix b/nixpkgs/pkgs/development/python-modules/dunamai/default.nix
index 7cbd3ea50efc..f4929849869e 100644
--- a/nixpkgs/pkgs/development/python-modules/dunamai/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dunamai/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "dunamai";
-  version = "1.19.0";
+  version = "1.19.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "mtkennerly";
     repo = "dunamai";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wMIqm1bUub89ExnbvJBzuZ9479el8EgwVcfPpI+SD5Y=";
+    hash = "sha256-oLJlBytdp9uVdKEdYDMz/IYnPP7XVnCUcThKO3IiW10=";
   };
 
   nativeBuildInputs = [
@@ -58,6 +58,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Dynamic version generation";
+    mainProgram = "dunamai";
     homepage = "https://github.com/mtkennerly/dunamai";
     changelog = "https://github.com/mtkennerly/dunamai/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/durus/default.nix b/nixpkgs/pkgs/development/python-modules/durus/default.nix
index 456ae010d63c..43884551c731 100644
--- a/nixpkgs/pkgs/development/python-modules/durus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/durus/default.nix
@@ -1,11 +1,12 @@
 { stdenv, lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
-  pname = "Durus";
+  pname = "durus";
   version = "4.2";
 
   src = fetchPypi {
-    inherit version pname;
+    pname = "Durus";
+    inherit version;
     sha256 = "sha256:1gzxg43zawwgqjrfixvcrilwpikb1ix9b7710rsl5ffk7q50yi3c";
   };
 
@@ -21,6 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Object persistence layer";
+    mainProgram = "durus";
     homepage = "https://github.com/nascheme/durus";
     license = licenses.mit;
     maintainers = with maintainers; [ grindhold ];
diff --git a/nixpkgs/pkgs/development/python-modules/dvc-azure/default.nix b/nixpkgs/pkgs/development/python-modules/dvc-azure/default.nix
index 339e36fc0489..dc166c55027e 100644
--- a/nixpkgs/pkgs/development/python-modules/dvc-azure/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dvc-azure/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "dvc-azure";
-  version = "3.0.1";
+  version = "3.1.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TB7yY5b2AWBFt8+AnxyKyP6hoXi6cdHVjtffapRVfHc=";
+    hash = "sha256-UsvHDVQUtQIZs9sKFvaK0l2rp24/Igrr5OSbPGSYriA=";
   };
 
   # Prevent circular dependency
diff --git a/nixpkgs/pkgs/development/python-modules/dvc-data/default.nix b/nixpkgs/pkgs/development/python-modules/dvc-data/default.nix
index 86f8cf2483e5..d4a9573f9a9b 100644
--- a/nixpkgs/pkgs/development/python-modules/dvc-data/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dvc-data/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "dvc-data";
-  version = "3.9.0";
+  version = "3.15.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = "dvc-data";
     rev = "refs/tags/${version}";
-    hash = "sha256-rgqSgNsqAGATzu3ZX8LWRiFJt0xTTLaF8bUNOgA3s2w=";
+    hash = "sha256-pr5RtVlGKKtpcmmCNGqcLiBFzJcajpqtPjBbzeCCHF8=";
   };
 
   nativeBuildInputs = [
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "DVC's data management subsystem";
+    mainProgram = "dvc-data";
     homepage = "https://github.com/iterative/dvc-data";
     changelog = "https://github.com/iterative/dvc-data/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/dvc-http/default.nix b/nixpkgs/pkgs/development/python-modules/dvc-http/default.nix
index efe97c502cec..48fb723cbc54 100644
--- a/nixpkgs/pkgs/development/python-modules/dvc-http/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dvc-http/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , dvc-objects
 , fsspec
+, funcy
 , pythonOlder
 , pythonRelaxDepsHook
 , setuptools-scm
@@ -12,25 +13,26 @@
 buildPythonPackage rec {
   pname = "dvc-http";
   version = "2.32.0";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "iterative";
-    repo = pname;
+    repo = "dvc-http";
     rev = "refs/tags/${version}";
     hash = "sha256-ru/hOFv/RcS/7SBpTJU8xFxdllmaiH4dV1ouS6GGKkY=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    aiohttp-retry
     dvc-objects
     fsspec
-    aiohttp-retry
+    funcy
   ];
 
   # Currently it's not possible to run the tests
diff --git a/nixpkgs/pkgs/development/python-modules/dvc-objects/default.nix b/nixpkgs/pkgs/development/python-modules/dvc-objects/default.nix
index 778bcf39fa27..7911c1c411ad 100644
--- a/nixpkgs/pkgs/development/python-modules/dvc-objects/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dvc-objects/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "dvc-objects";
-  version = "3.0.6";
+  version = "5.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = "dvc-objects";
     rev = "refs/tags/${version}";
-    hash = "sha256-os4MzxB4IuqJ9EsKZXGzOU23Qf6LLLiV6SLaNpMlEp8=";
+    hash = "sha256-CXZKya22i2PhHk/CYd10AlzkiOBo5xZfR9l4rnkaV5Y=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/dvc-s3/default.nix b/nixpkgs/pkgs/development/python-modules/dvc-s3/default.nix
index a15295649d4e..e112eca578c7 100644
--- a/nixpkgs/pkgs/development/python-modules/dvc-s3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dvc-s3/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "dvc-s3";
-  version = "3.0.1";
+  version = "3.1.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ax2Wsjfvu4hoF99eDPT2sbFhl30wuYtGdEonYCCkJMY=";
+    hash = "sha256-0yD5FsinQat3cbmY5teClFS0KEGUvED2Ah/JCbTtZ/s=";
   };
 
   # Prevent circular dependency
diff --git a/nixpkgs/pkgs/development/python-modules/dvc/default.nix b/nixpkgs/pkgs/development/python-modules/dvc/default.nix
index d05a37f7ad79..885e4915d1af 100644
--- a/nixpkgs/pkgs/development/python-modules/dvc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dvc/default.nix
@@ -57,7 +57,7 @@
 
 buildPythonPackage rec {
   pname = "dvc";
-  version = "3.43.1";
+  version = "3.48.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -66,7 +66,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = "dvc";
     rev = "refs/tags/${version}";
-    hash = "sha256-9JS8N4BWikmXoo5TtpUD5El2vHST80NEOBdxkHfK4ME=";
+    hash = "sha256-vO+i0BU8mQuLfgb1rcGRmlb8gpHsRxgdwuJHRERA4Pw=";
   };
 
   pythonRelaxDeps = [
@@ -166,6 +166,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Version Control System for Machine Learning Projects";
+    mainProgram = "dvc";
     homepage = "https://dvc.org";
     changelog = "https://github.com/iterative/dvc/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/dvclive/default.nix b/nixpkgs/pkgs/development/python-modules/dvclive/default.nix
index cc22a3aad233..7090433431a9 100644
--- a/nixpkgs/pkgs/development/python-modules/dvclive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dvclive/default.nix
@@ -17,13 +17,13 @@
 , optuna
 , pandas
 , pillow
-, pytestCheckHook
+, psutil
+, pynvml
 , pythonOlder
 , ruamel-yaml
 , scikit-learn
 , scmrepo
 , setuptools-scm
-, tabulate
 , tensorflow
 , torch
 , transformers
@@ -32,23 +32,23 @@
 
 buildPythonPackage rec {
   pname = "dvclive";
-  version = "3.42.0";
+  version = "3.45.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "iterative";
-    repo = pname;
+    repo = "dvclive";
     rev = "refs/tags/${version}";
-    hash = "sha256-7MesRCfXr/f2MBokZhraFQqIuOyWCjIDRYZcvzM5Ezc=";
+    hash = "sha256-76PjBPr3m1y5osW024dkhuvuXl2FiZ5oxlJ1Ucq8msI=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dvc
     dvc-render
     dvc-studio-client
@@ -56,6 +56,8 @@ buildPythonPackage rec {
     gto
     ruamel-yaml
     scmrepo
+    psutil
+    pynvml
   ];
 
   passthru.optional-dependencies = {
diff --git a/nixpkgs/pkgs/development/python-modules/easyocr/default.nix b/nixpkgs/pkgs/development/python-modules/easyocr/default.nix
index 1199f75c450d..18d76f8e6766 100644
--- a/nixpkgs/pkgs/development/python-modules/easyocr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/easyocr/default.nix
@@ -62,6 +62,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Ready-to-use OCR with 80+ supported languages and all popular writing scripts";
+    mainProgram = "easyocr";
     homepage = "https://github.com/JaidedAI/EasyOCR";
     changelog = "https://github.com/JaidedAI/EasyOCR/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/ebcdic/default.nix b/nixpkgs/pkgs/development/python-modules/ebcdic/default.nix
new file mode 100644
index 000000000000..430ebfe24c58
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ebcdic/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pythonOlder
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "ebcdic";
+  version = "1.1.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "roskakori";
+    repo = "CodecMapper";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-gRyZychcF3wYocgVbdF255cSuZh/cl8X0WH/Iplkmxc=";
+  };
+
+  sourceRoot = "${src.name}/${pname}";
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # https://github.com/roskakori/CodecMapper/issues/18
+    "test_can_lookup_ebcdic_codec"
+    "test_can_recode_euro_sign"
+    "test_has_codecs"
+    "test_has_ignored_codec_names"
+  ];
+
+  pythonImportsCheck = [
+    "ebcdic"
+  ];
+
+  meta = with lib; {
+    description = "Additional EBCDIC codecs";
+    homepage = "https://github.com/roskakori/CodecMapper/tree/master/ebcdic";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ed25519-blake2b/default.nix b/nixpkgs/pkgs/development/python-modules/ed25519-blake2b/default.nix
index 2783662ad2cf..1260261adf46 100644
--- a/nixpkgs/pkgs/development/python-modules/ed25519-blake2b/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ed25519-blake2b/default.nix
@@ -27,6 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Ed25519 public-key signatures (BLAKE2b fork)";
+    mainProgram = "edsig";
     homepage = "https://github.com/Matoking/python-ed25519-blake2b";
     changelog = "https://github.com/Matoking/python-ed25519-blake2b/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ed25519/default.nix b/nixpkgs/pkgs/development/python-modules/ed25519/default.nix
index 1ebfdcfc844d..7b2c20c39a04 100644
--- a/nixpkgs/pkgs/development/python-modules/ed25519/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ed25519/default.nix
@@ -12,6 +12,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Ed25519 public-key signatures";
+    mainProgram = "edsig";
     homepage = "https://github.com/warner/python-ed25519";
     license = licenses.mit;
     maintainers = with maintainers; [ np ];
diff --git a/nixpkgs/pkgs/development/python-modules/edalize/default.nix b/nixpkgs/pkgs/development/python-modules/edalize/default.nix
index 0005a4cb2e63..33cf25b0305a 100644
--- a/nixpkgs/pkgs/development/python-modules/edalize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/edalize/default.nix
@@ -1,6 +1,8 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
+, setuptools-scm
 , coreutils
 , jinja2
 , pandas
@@ -13,8 +15,8 @@
 
 buildPythonPackage rec {
   pname = "edalize";
-  version = "0.5.1";
-  format = "setuptools";
+  version = "0.5.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -22,7 +24,7 @@ buildPythonPackage rec {
     owner = "olofk";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-foq1CwIe86d+s7PlhLlGpnJCwrpOyr+uf5/RMLASSJU=";
+    hash = "sha256-pgyUpbSVRCHioJc82hZwG+JbpnL7t9ZvN4OcPHFsirs=";
   };
 
   postPatch = ''
@@ -31,6 +33,11 @@ buildPythonPackage rec {
     patchShebangs tests/mock_commands/vsim
   '';
 
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
     jinja2
   ];
@@ -96,6 +103,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Abstraction library for interfacing EDA tools";
+    mainProgram = "el_docker";
     homepage = "https://github.com/olofk/edalize";
     changelog = "https://github.com/olofk/edalize/releases/tag/v${version}";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/editdistance/default.nix b/nixpkgs/pkgs/development/python-modules/editdistance/default.nix
index 822eacc0843f..d7c55b265a45 100644
--- a/nixpkgs/pkgs/development/python-modules/editdistance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/editdistance/default.nix
@@ -2,14 +2,16 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pytestCheckHook
-, cython
+, cython_3
+, pdm-backend
+, setuptools
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "editdistance";
-  version = "0.6.2";
-  format = "setuptools";
+  version = "0.8.1";
+  pyproject =true;
 
   disabled = pythonOlder "3.7";
 
@@ -17,19 +19,17 @@ buildPythonPackage rec {
     owner = "roy-ht";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-42PEK2KhR7rZLfNX9T45V6on+5CoINfKvntz/YQBJco=";
+    hash = "sha256-Ncdg8S/UHYqJ1uFnHk9qhHMM3Lrop00woSu3PLKvuBI=";
   };
 
   nativeBuildInputs = [
-    cython
+    cython_3
+    pdm-backend
+    setuptools
   ];
 
-  preBuild = ''
-    cythonize --inplace editdistance/bycython.pyx
-  '';
-
   nativeCheckInputs = [
-   pytestCheckHook
+    pytestCheckHook
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/editdistpy/default.nix b/nixpkgs/pkgs/development/python-modules/editdistpy/default.nix
new file mode 100644
index 000000000000..a785e1b05b67
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/editdistpy/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+, pytestCheckHook
+
+, pythonOlder
+
+, setuptools
+, cython_3
+
+, symspellpy
+, numpy
+, editdistpy
+}:
+
+buildPythonPackage rec {
+  pname = "editdistpy";
+  version = "0.1.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "mammothb";
+    repo = "editdistpy";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-4CtKadKpFmlZnz10NG0404oFl9DkdQwWwRSWgUPdh94=";
+  };
+
+  build-system = [
+    setuptools
+    cython_3
+  ];
+
+  # error: infinite recursion encountered
+  doCheck = false;
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    symspellpy
+    numpy
+  ];
+
+  preCheck = ''
+    rm -r editdistpy
+  '';
+
+  passthru.tests = {
+    check = editdistpy.overridePythonAttrs (
+      _: {
+        doCheck = true;
+      }
+    );
+  };
+
+  pythonImportsCheck = [
+    "editdistpy"
+  ];
+
+  meta = with lib;
+    {
+      description = "Fast Levenshtein and Damerau optimal string alignment algorithms";
+      homepage = "https://github.com/mammothb/editdistpy";
+      changelog = "https://github.com/mammothb/editdistpy/releases/tag/v${version}";
+      license = licenses.mit;
+      maintainers = with maintainers; [ vizid ];
+    };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/editor/default.nix b/nixpkgs/pkgs/development/python-modules/editor/default.nix
new file mode 100644
index 000000000000..3cbc44cc5dff
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/editor/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, runs
+, xmod
+, pytestCheckHook
+, tdir
+}:
+
+buildPythonPackage rec {
+  pname = "editor";
+  version = "1.6.6";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "rec";
+    repo = "editor";
+    rev = "v${version}";
+    hash = "sha256-FVtat3gUsK5Lv6XSkVXj0hY6NkMGw6LxRWMJrZ/cIis=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    runs
+    xmod
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    tdir
+  ];
+
+  pythonImportsCheck = [
+    "editor"
+  ];
+
+  meta = with lib; {
+    description = "Open the default text editor";
+    homepage = "https://github.com/rec/editor";
+    changelog = "https://github.com/rec/editor/blob/${src.rev}/CHANGELOG";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/editorconfig/default.nix b/nixpkgs/pkgs/development/python-modules/editorconfig/default.nix
index f55442b2f584..f074fcc4634a 100644
--- a/nixpkgs/pkgs/development/python-modules/editorconfig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/editorconfig/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "EditorConfig File Locator and Interpreter for Python";
+    mainProgram = "editorconfig";
     homepage = "https://github.com/editorconfig/editorconfig-core-py";
     license = licenses.psfl;
     maintainers = with maintainers; [ nickcao ];
diff --git a/nixpkgs/pkgs/development/python-modules/eggdeps/default.nix b/nixpkgs/pkgs/development/python-modules/eggdeps/default.nix
index 006e096b44d1..5ce1552c519c 100644
--- a/nixpkgs/pkgs/development/python-modules/eggdeps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eggdeps/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A tool which computes a dependency graph between active Python eggs";
+    mainProgram = "eggdeps";
     homepage = "http://thomas-lotze.de/en/software/eggdeps/";
     license = licenses.zpl20;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/elastic-apm/default.nix b/nixpkgs/pkgs/development/python-modules/elastic-apm/default.nix
index a17ea5234bed..61ad6705fe9b 100644
--- a/nixpkgs/pkgs/development/python-modules/elastic-apm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elastic-apm/default.nix
@@ -20,6 +20,7 @@
 , pythonOlder
 , sanic
 , sanic-testing
+, setuptools
 , starlette
 , structlog
 , tornado
@@ -30,8 +31,8 @@
 
 buildPythonPackage rec {
   pname = "elastic-apm";
-  version = "6.21.2";
-  format = "setuptools";
+  version = "6.21.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -39,9 +40,13 @@ buildPythonPackage rec {
     owner = "elastic";
     repo = "apm-agent-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-QVgRymjj+k3W+5UfJGv1JJIAAxUA5DMXAnfk6ml8Pb8=";
+    hash = "sha256-Ejix31cMyHOc/IGe4bRp/Nchm9Ps1cRYE8jIaIYlJjs=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     blinker
diff --git a/nixpkgs/pkgs/development/python-modules/elastic-transport/default.nix b/nixpkgs/pkgs/development/python-modules/elastic-transport/default.nix
index f8645e795629..ac2acebc6f7f 100644
--- a/nixpkgs/pkgs/development/python-modules/elastic-transport/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elastic-transport/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "elastic-transport";
-  version = "8.10.0";
+  version = "8.12.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "elastic";
     repo = "elastic-transport-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4W9p9niHf2EMY+sS1RCdqWndzvpz8pKrIlLo3NxJ8mk=";
+    hash = "sha256-ZLzaCiopdkhpqjzZzv/NT1+f5bHZYuqQvSgM5jeMaqg=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix b/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix
index f2e5a4b599a6..a89cb3f0a4c5 100644
--- a/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "elasticsearch";
-  version = "8.11.0";
+  version = "8.12.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-nghBO+r/Oka8EMbFcGmoRwTfaqqTCFxzffB/WKKBG3g=";
+    sha256 = "sha256-AMmXcg+9Dyr+VBfIGTz2XRFoF6AlDeBSHjDD6B8AuKw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/eliot/default.nix b/nixpkgs/pkgs/development/python-modules/eliot/default.nix
index 2362aa747c50..4bf4f45a29cb 100644
--- a/nixpkgs/pkgs/development/python-modules/eliot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eliot/default.nix
@@ -58,6 +58,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://eliot.readthedocs.io";
     description = "Logging library that tells you why it happened";
+    mainProgram = "eliot-prettyprint";
     license = licenses.asl20;
     maintainers = with maintainers; [ dpausp ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/eliqonline/default.nix b/nixpkgs/pkgs/development/python-modules/eliqonline/default.nix
index b972d6addd25..3d3261071bbc 100644
--- a/nixpkgs/pkgs/development/python-modules/eliqonline/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eliqonline/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python client to the Eliq Online API";
+    mainProgram = "eliqonline";
     homepage = "https://github.com/molobrakos/eliqonline";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/elmax/default.nix b/nixpkgs/pkgs/development/python-modules/elmax/default.nix
index 6391e86a5670..a538be01ae9d 100644
--- a/nixpkgs/pkgs/development/python-modules/elmax/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elmax/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python API client for the Elmax Cloud services";
+    mainProgram = "poetry-template";
     homepage = "https://github.com/home-assistant-ecosystem/python-elmax";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/email-validator/default.nix b/nixpkgs/pkgs/development/python-modules/email-validator/default.nix
index 0f176e45fd07..eea86196c229 100644
--- a/nixpkgs/pkgs/development/python-modules/email-validator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/email-validator/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , dnspython
-, fetchFromGitHub
+, fetchPypi
 , idna
 , pytestCheckHook
 , pythonOlder
@@ -9,16 +9,15 @@
 
 buildPythonPackage rec {
   pname = "email-validator";
-  version = "2.1.0";
+  version = "2.1.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
-  src = fetchFromGitHub {
-    owner = "JoshData";
-    repo = "python-${pname}";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-58DuQslADM7glrnlSSP6TtIDTlwuS0/GK8+izatqDxI=";
+  src = fetchPypi {
+    pname = "email_validator";
+    inherit version;
+    hash = "sha256-IApwaAugiQS+bR7vcpIFzA1odjQ5mlkk2EJTPvuCS4Q=";
   };
 
   propagatedBuildInputs = [
@@ -42,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Email syntax and deliverability validation library";
+    mainProgram = "email_validator";
     homepage = "https://github.com/JoshData/python-email-validator";
     changelog = "https://github.com/JoshData/python-email-validator/releases/tag/v${version}";
     license = licenses.cc0;
diff --git a/nixpkgs/pkgs/development/python-modules/empy/default.nix b/nixpkgs/pkgs/development/python-modules/empy/default.nix
index ffae39669ad4..123e098efff7 100644
--- a/nixpkgs/pkgs/development/python-modules/empy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/empy/default.nix
@@ -12,6 +12,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "http://www.alcyone.com/software/empy/";
     description = "A templating system for Python.";
+    mainProgram = "em.py";
     maintainers = with maintainers; [ nkalupahana ];
     license = licenses.lgpl21Only;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/emv/default.nix b/nixpkgs/pkgs/development/python-modules/emv/default.nix
index a06cb2b3f44a..c7be7ba9e7fa 100644
--- a/nixpkgs/pkgs/development/python-modules/emv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/emv/default.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Implementation of the EMV chip-and-pin smartcard protocol";
+    mainProgram = "emvtool";
     homepage = "https://github.com/russss/python-emv";
     license = licenses.mit;
     maintainers = with maintainers; [ lukegb ];
diff --git a/nixpkgs/pkgs/development/python-modules/energyflow/default.nix b/nixpkgs/pkgs/development/python-modules/energyflow/default.nix
index 5f89337f0de2..7308d0289023 100644
--- a/nixpkgs/pkgs/development/python-modules/energyflow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/energyflow/default.nix
@@ -9,14 +9,14 @@
 }:
 
 buildPythonPackage rec {
-  pname = "EnergyFlow";
-  version = "1.3.2";
+  pname = "energyflow";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "pkomiske";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-fjT8c0ZTjdufP334upPzRVdTJDIBs84I7PkFu4CMcQw=";
+    repo = "EnergyFlow";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-Ioyk0IpyxcDdL2+3zkUa6yydavyphoh4do7GCz5nG60=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/enocean/default.nix b/nixpkgs/pkgs/development/python-modules/enocean/default.nix
index 02db2a696409..925c87ed3f8e 100644
--- a/nixpkgs/pkgs/development/python-modules/enocean/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/enocean/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "EnOcean serial protocol implementation";
+    mainProgram = "enocean_example.py";
     homepage = "https://github.com/kipe/enocean";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/envs/default.nix b/nixpkgs/pkgs/development/python-modules/envs/default.nix
index ce1a07dda3f2..b22660efb6f6 100644
--- a/nixpkgs/pkgs/development/python-modules/envs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/envs/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Easy access to environment variables from Python";
+    mainProgram = "envs";
     homepage = "https://github.com/capless/envs";
     license = licenses.asl20;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/development/python-modules/ephemeral-port-reserve/default.nix b/nixpkgs/pkgs/development/python-modules/ephemeral-port-reserve/default.nix
index 76d14e191cac..09db4df764d6 100644
--- a/nixpkgs/pkgs/development/python-modules/ephemeral-port-reserve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ephemeral-port-reserve/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Find an unused port, reliably";
+    mainProgram = "ephemeral-port-reserve";
     homepage = "https://github.com/Yelp/ephemeral-port-reserve/";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/development/python-modules/eradicate/default.nix b/nixpkgs/pkgs/development/python-modules/eradicate/default.nix
index 511f8d17ecbe..10fed495d6ea 100644
--- a/nixpkgs/pkgs/development/python-modules/eradicate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eradicate/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to remove commented-out code from Python files";
+    mainProgram = "eradicate";
     homepage = "https://github.com/myint/eradicate";
     changelog = "https://github.com/wemake-services/eradicate/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/espeak-phonemizer/default.nix b/nixpkgs/pkgs/development/python-modules/espeak-phonemizer/default.nix
index 42eb17326921..5b9352905374 100644
--- a/nixpkgs/pkgs/development/python-modules/espeak-phonemizer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/espeak-phonemizer/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/rhasspy/espeak-phonemizer/releases/tag/v${version}";
     description = "Uses ctypes and libespeak-ng to transform test into IPA phonemes";
+    mainProgram = "espeak-phonemizer";
     homepage = "https://github.com/rhasspy/espeak-phonemizer";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/development/python-modules/esprima/default.nix b/nixpkgs/pkgs/development/python-modules/esprima/default.nix
index 9f03e8a1e877..774288c69943 100644
--- a/nixpkgs/pkgs/development/python-modules/esprima/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/esprima/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python parser for standard-compliant ECMAScript";
+    mainProgram = "esprima";
     homepage = "https://github.com/Kronuz/esprima-python";
     license = licenses.bsd2;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/ete3/default.nix b/nixpkgs/pkgs/development/python-modules/ete3/default.nix
index 4cc241430c47..f36128784dad 100644
--- a/nixpkgs/pkgs/development/python-modules/ete3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ete3/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python framework for the analysis and visualization of trees";
+    mainProgram = "ete3";
     homepage = "http://etetoolkit.org/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ delehef ];
diff --git a/nixpkgs/pkgs/development/python-modules/etils/default.nix b/nixpkgs/pkgs/development/python-modules/etils/default.nix
index b6990e50330f..fd1d034138e9 100644
--- a/nixpkgs/pkgs/development/python-modules/etils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/etils/default.nix
@@ -28,14 +28,14 @@
 
 buildPythonPackage rec {
   pname = "etils";
-  version = "1.7.0";
+  version = "1.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-l7aP0l4YVoMhUobvOlTjgZm2JF9f6L5r7cEYm+QlY1A=";
+    hash = "sha256-+0ePV/7CAuJg5UyRkrMXaS/WPbLRHZk+cLzf+inMzVg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/evdev/default.nix b/nixpkgs/pkgs/development/python-modules/evdev/default.nix
index 659a2314d6dd..fd34a11241cf 100644
--- a/nixpkgs/pkgs/development/python-modules/evdev/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/evdev/default.nix
@@ -3,29 +3,34 @@
 , fetchPypi
 , linuxHeaders
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "evdev";
-  version = "1.6.1";
-  format = "setuptools";
+  version = "1.7.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KZ24YozHOyN/wcxX08KUj6oHVuKli2GUtb+B3CCB8eM=";
+    hash = "sha256-lb0qHgxs4s16LsxubNlzb/eUs61ctU2B2MvC5BTQuHA=";
   };
 
-  buildInputs = [
-    linuxHeaders
-  ];
-
   patchPhase = ''
     substituteInPlace setup.py \
-      --replace /usr/include/linux ${linuxHeaders}/include/linux
+      --replace-fail /usr/include ${linuxHeaders}/include
   '';
 
+  build-system = [
+    setuptools
+  ];
+
+  buildInputs = [
+    linuxHeaders
+  ];
+
   doCheck = false;
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/eventkit/default.nix b/nixpkgs/pkgs/development/python-modules/eventkit/default.nix
new file mode 100644
index 000000000000..f0bda6bf4d0f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/eventkit/default.nix
@@ -0,0 +1,26 @@
+{ buildPythonPackage
+, lib
+, fetchPypi
+, numpy
+}:
+let
+  pname = "eventkit";
+  version = "1.0.3";
+  hash = "sha256-mUl/bzxjilD/dhby+M2Iexi7/zdl3BvYaBVU2xRnyTM=";
+in buildPythonPackage {
+  inherit pname version;
+
+  src = fetchPypi {
+    inherit pname version hash;
+  };
+
+  propagatedBuildInputs = [ numpy ];
+  dontUseSetuptoolsCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/erdewit/eventkit";
+    description = "Event-driven data pipelines";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ cab404 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/execnb/default.nix b/nixpkgs/pkgs/development/python-modules/execnb/default.nix
index ef915d912a91..56b1bf1388ed 100644
--- a/nixpkgs/pkgs/development/python-modules/execnb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/execnb/default.nix
@@ -27,6 +27,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/fastai/execnb";
     description = "Execute a jupyter notebook, fast, without needing jupyter";
+    mainProgram = "exec_nb";
     license = licenses.asl20;
     maintainers = with maintainers; [ rxiao ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/executor/default.nix b/nixpkgs/pkgs/development/python-modules/executor/default.nix
index c9500d6f278b..40d15a9fa594 100644
--- a/nixpkgs/pkgs/development/python-modules/executor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/executor/default.nix
@@ -53,6 +53,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/xolox/python-executor/blob/${version}/CHANGELOG.rst";
     description = "Programmer friendly subprocess wrapper";
+    mainProgram = "executor";
     homepage = "https://github.com/xolox/python-executor";
     license = licenses.mit;
     maintainers = with maintainers; [ eyjhb ];
diff --git a/nixpkgs/pkgs/development/python-modules/exifread/default.nix b/nixpkgs/pkgs/development/python-modules/exifread/default.nix
index ab8fde6f8cc3..31edf9707eba 100644
--- a/nixpkgs/pkgs/development/python-modules/exifread/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/exifread/default.nix
@@ -4,16 +4,18 @@
 }:
 
 buildPythonPackage rec {
-  pname = "ExifRead";
+  pname = "exifread";
   version = "3.0.0";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "ExifRead";
+    inherit version;
     hash = "sha256-CsWjZBadvfK9YvlPXAc5cKtmlKMWYXf15EixDJQ+LKQ=";
   };
 
   meta = with lib; {
     description = "Easy to use Python module to extract Exif metadata from tiff and jpeg files";
+    mainProgram = "EXIF.py";
     homepage    = "https://github.com/ianare/exif-py";
     license     = licenses.bsd0;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/extract-msg/default.nix b/nixpkgs/pkgs/development/python-modules/extract-msg/default.nix
new file mode 100644
index 000000000000..592172fc3d25
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/extract-msg/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, beautifulsoup4
+, buildPythonPackage
+, compressed-rtf
+, ebcdic
+, fetchFromGitHub
+, olefile
+, pytestCheckHook
+, pythonOlder
+, pythonRelaxDepsHook
+, red-black-tree-mod
+, rtfde
+, setuptools
+, tzlocal
+}:
+
+buildPythonPackage rec {
+  pname = "extract-msg";
+  version = "0.48.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "TeamMsgExtractor";
+    repo = "msg-extractor";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-oN5blYU8LR2O1LEb6naL33UXjBk9xpINl4h6HSaN7PQ=";
+  };
+
+  pythonRelaxDeps = [
+    "olefile"
+    "red-black-tree-mod"
+  ];
+
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    beautifulsoup4
+    compressed-rtf
+    ebcdic
+    olefile
+    red-black-tree-mod
+    rtfde
+    tzlocal
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "extract_msg"
+  ];
+
+  pytestFlagsArray = [
+    "extract_msg_tests/*.py"
+  ];
+
+  meta = with lib; {
+    description = "Extracts emails and attachments saved in Microsoft Outlook's .msg files";
+    homepage = "https://github.com/TeamMsgExtractor/msg-extractor";
+    changelog = "https://github.com/TeamMsgExtractor/msg-extractor/blob/${version}/CHANGELOG.md";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/extractcode/default.nix b/nixpkgs/pkgs/development/python-modules/extractcode/default.nix
index 612ee8b84375..55027f8813c1 100644
--- a/nixpkgs/pkgs/development/python-modules/extractcode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/extractcode/default.nix
@@ -76,6 +76,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Universal archive extractor using z7zip, libarchive, other libraries and the Python standard library";
+    mainProgram = "extractcode";
     homepage = "https://github.com/nexB/extractcode";
     changelog = "https://github.com/nexB/extractcode/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/extruct/default.nix b/nixpkgs/pkgs/development/python-modules/extruct/default.nix
index 64873c94d324..0673643de0db 100644
--- a/nixpkgs/pkgs/development/python-modules/extruct/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/extruct/default.nix
@@ -62,6 +62,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Extract embedded metadata from HTML markup";
+    mainProgram = "extruct";
     homepage = "https://github.com/scrapinghub/extruct";
     changelog = "https://github.com/scrapinghub/extruct/blob/v${version}/HISTORY.rst";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/eyed3/default.nix b/nixpkgs/pkgs/development/python-modules/eyed3/default.nix
index 9c29db7fa837..7717ba2601cd 100644
--- a/nixpkgs/pkgs/development/python-modules/eyed3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eyed3/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python module and command line program for processing ID3 tags";
+    mainProgram = "eyeD3";
     homepage    = "https://eyed3.nicfit.net/";
     license     = licenses.gpl2;
     maintainers = with maintainers; [ lovek323 ];
diff --git a/nixpkgs/pkgs/development/python-modules/ezdxf/default.nix b/nixpkgs/pkgs/development/python-modules/ezdxf/default.nix
index e0c7b76d1e61..3619db37b812 100644
--- a/nixpkgs/pkgs/development/python-modules/ezdxf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ezdxf/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python package to read and write DXF drawings (interface to the DXF file format)";
+    mainProgram = "ezdxf";
     homepage = "https://github.com/mozman/ezdxf/";
     license = licenses.mit;
     maintainers = with maintainers; [ hodapp ];
diff --git a/nixpkgs/pkgs/development/python-modules/f90nml/default.nix b/nixpkgs/pkgs/development/python-modules/f90nml/default.nix
index 2e9610bb353e..ad2d1c8c604d 100644
--- a/nixpkgs/pkgs/development/python-modules/f90nml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/f90nml/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module for working with Fortran Namelists";
+    mainProgram = "f90nml";
     homepage = "https://f90nml.readthedocs.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ loicreynier ];
diff --git a/nixpkgs/pkgs/development/python-modules/fabric/default.nix b/nixpkgs/pkgs/development/python-modules/fabric/default.nix
index 04cc53f28b7d..3494c8951712 100644
--- a/nixpkgs/pkgs/development/python-modules/fabric/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fabric/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Pythonic remote execution";
+    mainProgram = "fab";
     homepage = "https://www.fabfile.org/";
     license = licenses.bsd2;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/fairscale/default.nix b/nixpkgs/pkgs/development/python-modules/fairscale/default.nix
index 42a7da74f9bc..3041ac51de6a 100644
--- a/nixpkgs/pkgs/development/python-modules/fairscale/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fairscale/default.nix
@@ -64,6 +64,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "PyTorch extensions for high performance and large scale training";
+    mainProgram = "wgit";
     homepage = "https://github.com/facebookresearch/fairscale";
     changelog = "https://github.com/facebookresearch/fairscale/releases/tag/v${version}";
     license = with licenses; [ mit asl20 bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix b/nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix
index 0cdcd90cbe87..7e6d5c76cfb2 100644
--- a/nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fake-useragent/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "fake-useragent";
-  version = "1.4.0";
+  version = "1.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "fake-useragent";
     repo = "fake-useragent";
     rev = "refs/tags/${version}";
-    hash = "sha256-Jmzq0yIM373bg2T6t0YFymBiH9vSpiCw+UAMfxsMJvY=";
+    hash = "sha256-BDXJJeT29GWkN9DoVl8sxXFpV/eMqu3mqlvMr2lzJM8=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/faker/default.nix b/nixpkgs/pkgs/development/python-modules/faker/default.nix
index 68e0e4e3b5ea..ec667330a62b 100644
--- a/nixpkgs/pkgs/development/python-modules/faker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/faker/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "faker";
-  version = "20.1.0";
+  version = "24.0.0";
   pyproject = true;
 
   src = fetchPypi {
     pname = "Faker";
     inherit version;
-    hash = "sha256-Vio6CcPtOhp7IOE9efkE39/F50D3KBPs+V5M9x5aL1I=";
+    hash = "sha256-6m94TEBzDeD3cGfknnjN1ZDvsAvsPTP1d0kiYiBsF/w=";
   };
 
   nativeBuildInputs = [
@@ -47,6 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for generating fake user data";
+    mainProgram = "faker";
     homepage = "http://faker.rtfd.org";
     license = licenses.mit;
     maintainers = with maintainers; [ lovek323 ];
diff --git a/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix b/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix
index a63c257fc680..45a2a512d513 100644
--- a/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fakeredis/default.nix
@@ -1,8 +1,8 @@
 { lib
-, aioredis
 , buildPythonPackage
 , fetchFromGitHub
 , hypothesis
+, jsonpath-ng
 , lupa
 , poetry-core
 , pybloom-live
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "fakeredis";
-  version = "2.21.1";
+  version = "2.21.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "dsoftwareinc";
     repo = "fakeredis-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-2+ZZTWhUb6rj7oWPnDP0PJUHj0CJpOD8iZxmtO4xSbo=";
+    hash = "sha256-GIg+a8G5S0dmbvMKqS/Vn+wzNM6iNIs3bKPqhecsQt4=";
   };
 
   nativeBuildInputs = [
@@ -49,8 +49,8 @@ buildPythonPackage rec {
     lua = [
       lupa
     ];
-    aioredis = [
-      aioredis
+    json = [
+      jsonpath-ng
     ];
     bf = [
       pyprobables
diff --git a/nixpkgs/pkgs/development/python-modules/falcon/default.nix b/nixpkgs/pkgs/development/python-modules/falcon/default.nix
index b0880c384dba..5dc0dd2e0b56 100644
--- a/nixpkgs/pkgs/development/python-modules/falcon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/falcon/default.nix
@@ -1,11 +1,12 @@
 { lib
 , buildPythonPackage
+, pythonAtLeast
 , pythonOlder
 , isPyPy
 , fetchFromGitHub
 
 # build
-, cython
+, cython_3
 , setuptools
 
 # tests
@@ -17,6 +18,7 @@
 , orjson
 , pytest-asyncio
 , pytestCheckHook
+, pytest_7
 , pyyaml
 , rapidjson
 , requests
@@ -28,7 +30,7 @@
 
 buildPythonPackage rec {
   pname = "falcon";
-  version = "3.1.1";
+  version = "3.1.3";
   format = "pyproject";
   disabled = pythonOlder "3.5";
 
@@ -36,13 +38,13 @@ buildPythonPackage rec {
     owner = "falconry";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-5Lhz4qI/x7yK9tqQg4CvYNug+fp9l6ErNGH1pVybZ6c=";
+    hash = "sha256-7719gOM8WQVjODwOSo7HpH3HMFFeCGQQYBKktBAevig=";
   };
 
   nativeBuildInputs = [
     setuptools
   ] ++ lib.optionals (!isPyPy) [
-    cython
+    cython_3
   ];
 
   __darwinAllowLocalNetworking = true;
@@ -59,7 +61,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     # https://github.com/falconry/falcon/blob/master/requirements/tests
-    pytestCheckHook
+    (pytestCheckHook.override { pytest = pytest_7; })
     pyyaml
     requests
     rapidjson
@@ -88,6 +90,9 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # needs a running server
     "tests/asgi/test_asgi_servers.py"
+  ] ++ lib.optionals (pythonAtLeast "3.12") [
+    # ModuleNotFoundError: No module named 'distutils'
+    "tests/asgi/test_cythonized_asgi.py"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix b/nixpkgs/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
index 99df6317604e..b906a22bea57 100644
--- a/nixpkgs/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "faraday-agent-parameters-types";
-  version = "1.5.0";
+  version = "1.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "faraday_agent_parameters_types";
     inherit version;
-    hash = "sha256-Txw7fXDnuFB9fTETkMhEgjOsjllPQB8IEG3lN3Yj/4k=";
+    hash = "sha256-Bh1s0IeUEa4EnGElQn5ruBxFSbcOqsrDqbw1nVjdi5s=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/faraday-plugins/default.nix b/nixpkgs/pkgs/development/python-modules/faraday-plugins/default.nix
index c1c5dbac14fe..6919123258da 100644
--- a/nixpkgs/pkgs/development/python-modules/faraday-plugins/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/faraday-plugins/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "faraday-plugins";
-  version = "1.16.0";
+  version = "1.17.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "infobyte";
     repo = "faraday_plugins";
     rev = "refs/tags/${version}";
-    hash = "sha256-1haWRuWK9WCgdR4geT2w3E95+CapBYDohGowUmnJ2H4=";
+    hash = "sha256-EE61RPantD1u9NNhyPRjoRkBifM3u16b0BC2aQC8UBA=";
   };
 
   postPatch = ''
@@ -78,6 +78,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Security tools report parsers for Faraday";
+    mainProgram = "faraday-plugins";
     homepage = "https://github.com/infobyte/faraday_plugins";
     changelog = "https://github.com/infobyte/faraday_plugins/releases/tag/${version}";
     license = with licenses; [ gpl3Only ];
diff --git a/nixpkgs/pkgs/development/python-modules/farm-haystack/default.nix b/nixpkgs/pkgs/development/python-modules/farm-haystack/default.nix
index efc68f4cb0ad..e090778735d3 100644
--- a/nixpkgs/pkgs/development/python-modules/farm-haystack/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/farm-haystack/default.nix
@@ -91,14 +91,14 @@
 
 buildPythonPackage rec {
   pname = "farm-haystack";
-  version = "1.23.0";
+  version = "1.25.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "deepset-ai";
     repo = "haystack";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rZG7768kEV1fa9zyAu7DsXlX+2eV8FcDnEssGD2qvII=";
+    hash = "sha256-lAXzWnHpOBVjgleFTYqlZ34hmZkcrPJ/h1kk4iVVvec=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/fastai/default.nix b/nixpkgs/pkgs/development/python-modules/fastai/default.nix
index 81459a860488..ff8ac701cf27 100644
--- a/nixpkgs/pkgs/development/python-modules/fastai/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastai/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/fastai/fastai";
     description = "The fastai deep learning library";
+    mainProgram = "configure_accelerate";
     changelog = "https://github.com/fastai/fastai/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ rxiao ];
diff --git a/nixpkgs/pkgs/development/python-modules/fastapi-sso/default.nix b/nixpkgs/pkgs/development/python-modules/fastapi-sso/default.nix
index bde53ac71325..3af37ecd587d 100644
--- a/nixpkgs/pkgs/development/python-modules/fastapi-sso/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastapi-sso/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "fastapi-sso";
-  version = "0.12.1";
+  version = "0.13.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "tomasvotava";
     repo = "fastapi-sso";
     rev = "refs/tags/${version}";
-    hash = "sha256-/Mt0pmZYsWp/n9YHCy/bFKUPzmoRFB0cHKCNxEfxMLs=";
+    hash = "sha256-7gBJ6Etb9X2mJzrWYpNGAl3NFoI1bz+PcGfUsMgRlN8=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/fastapi/default.nix b/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
index 74f816d9b8a6..67193638dd5a 100644
--- a/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
@@ -38,16 +38,16 @@
 
 buildPythonPackage rec {
   pname = "fastapi";
-  version = "0.109.0";
+  version = "0.110.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "tiangolo";
-    repo = pname;
+    repo = "fastapi";
     rev = "refs/tags/${version}";
-    hash = "sha256-iZBc0tYGmhQuOL/pdthhBYYnZhe+wEttoinePNAIgEs=";
+    hash = "sha256-OXWJ1PKJSJGzYNT8HHXvxMxjUtI4K6edpI+Z5B3TvhI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/fastavro/default.nix b/nixpkgs/pkgs/development/python-modules/fastavro/default.nix
index f685d210b87b..fed754d72945 100644
--- a/nixpkgs/pkgs/development/python-modules/fastavro/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastavro/default.nix
@@ -10,12 +10,13 @@
 , python-dateutil
 , python-snappy
 , pythonOlder
+, zlib-ng
 , zstandard
 }:
 
 buildPythonPackage rec {
   pname = "fastavro";
-  version = "1.9.0";
+  version = "1.9.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-10r12Ya+FKMgdOTmgYH1xb6vOXNLLw073VzCvo2x9kg=";
+    hash = "sha256-UWvNEi6vzQknUws+b7UCFUajMUJkfnQkfBeCR0XfqQY=";
   };
 
   preBuild = ''
@@ -55,7 +56,8 @@ buildPythonPackage rec {
     pandas
     pytestCheckHook
     python-dateutil
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+    zlib-ng
+  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
   # Fails with "AttributeError: module 'fastavro._read_py' has no attribute
   # 'CYTHON_MODULE'." Doesn't appear to be serious. See https://github.com/fastavro/fastavro/issues/112#issuecomment-387638676.
@@ -68,6 +70,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Fast read/write of AVRO files";
+    mainProgram = "fastavro";
     homepage = "https://github.com/fastavro/fastavro";
     changelog = "https://github.com/fastavro/fastavro/blob/${version}/ChangeLog";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/fastembed/default.nix b/nixpkgs/pkgs/development/python-modules/fastembed/default.nix
index 0302770761ed..a2c8173fe42a 100644
--- a/nixpkgs/pkgs/development/python-modules/fastembed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastembed/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "fastembed";
-  version = "0.1.2";
+  version = "0.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "qdrant";
     repo = "fastembed";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FW85xeRcrPL3euXcQ3dS40SapimFgpWtRu6XiIzdzSM=";
+    hash = "sha256-ufgco5wPBG19GM99rZV7LKQqEzzCv24I8026SMz0CH4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/fastentrypoints/default.nix b/nixpkgs/pkgs/development/python-modules/fastentrypoints/default.nix
index 83c1fcaee866..5e18509e79fd 100644
--- a/nixpkgs/pkgs/development/python-modules/fastentrypoints/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastentrypoints/default.nix
@@ -12,6 +12,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Makes entry_points specified in setup.py load more quickly";
+    mainProgram = "fastep";
     homepage = "https://github.com/ninjaaron/fast-entry_points";
     license = licenses.bsd2;
     maintainers = with maintainers; [ nixy ];
diff --git a/nixpkgs/pkgs/development/python-modules/fastjsonschema/default.nix b/nixpkgs/pkgs/development/python-modules/fastjsonschema/default.nix
index 93edef365178..c5381986d1c9 100644
--- a/nixpkgs/pkgs/development/python-modules/fastjsonschema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastjsonschema/default.nix
@@ -25,6 +25,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   dontUseSetuptoolsCheck = true;
 
   disabledTests = [
diff --git a/nixpkgs/pkgs/development/python-modules/faust-cchardet/default.nix b/nixpkgs/pkgs/development/python-modules/faust-cchardet/default.nix
index 6ee8b07137ee..6a1c8ad2ed81 100644
--- a/nixpkgs/pkgs/development/python-modules/faust-cchardet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/faust-cchardet/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
   meta = {
     changelog = "https://github.com/faust-streaming/cChardet/blob/${src.rev}/CHANGES.rst";
     description = "High-speed universal character encoding detector";
+    mainProgram = "cchardetect";
     homepage = "https://github.com/faust-streaming/cChardet";
     license = lib.licenses.mpl11;
     maintainers = with lib.maintainers; [ dotlambda ivan ];
diff --git a/nixpkgs/pkgs/development/python-modules/favicon/default.nix b/nixpkgs/pkgs/development/python-modules/favicon/default.nix
index 1b42710b16fc..0800994eb61d 100644
--- a/nixpkgs/pkgs/development/python-modules/favicon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/favicon/default.nix
@@ -34,6 +34,10 @@ buildPythonPackage rec {
     requests-mock
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   pythonImportsCheck = [
     "favicon"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/feedfinder2/default.nix b/nixpkgs/pkgs/development/python-modules/feedfinder2/default.nix
new file mode 100644
index 000000000000..bb5528815294
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/feedfinder2/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+
+, setuptools
+
+, six
+, requests
+, beautifulsoup4
+}:
+
+buildPythonPackage rec {
+  pname = "feedfinder2";
+  version = "0.0.4";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-NwHuAabIX4uGWgScMLoLRgiFjIA/6OMNHSif2+idDv4=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    six
+    requests
+    beautifulsoup4
+  ];
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "feedfinder2" ];
+
+  meta = with lib; {
+    description = "A Python library for finding feed links on websites";
+    homepage = "https://github.com/dfm/feedfinder2";
+    license = licenses.mit;
+    maintainers = with maintainers; [ vizid ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/feedgen/default.nix b/nixpkgs/pkgs/development/python-modules/feedgen/default.nix
index b430b1a200a2..46e51c49bda1 100644
--- a/nixpkgs/pkgs/development/python-modules/feedgen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/feedgen/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "feedgen";
-  version = "0.9.0";
+  version = "1.0.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0jl0b87l7v6c0f1nx6k81skjhdj5i11kmchdjls00mynpvdip0cf";
+    sha256 = "sha256-2b1Rw7XpVqKlKZjDcIxNLHKfL8wxEYjh5dO5cmOTVGo=";
   };
 
   propagatedBuildInputs = [ python-dateutil lxml ];
diff --git a/nixpkgs/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix b/nixpkgs/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
index 6d0f35e27887..fc3cad7892e3 100644
--- a/nixpkgs/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Run an ffmpeg command with progress";
+    mainProgram = "ffmpeg-progress-yield";
     homepage = "https://github.com/slhck/ffmpeg-progress-yield";
     changelog = "https://github.com/slhck/ffmpeg-progress-yield/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/filecheck/default.nix b/nixpkgs/pkgs/development/python-modules/filecheck/default.nix
index 9d8c22756fb9..2ce3e7c1fe8a 100644
--- a/nixpkgs/pkgs/development/python-modules/filecheck/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/filecheck/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/mull-project/FileCheck.py";
     license = licenses.asl20;
     description = "Python port of LLVM's FileCheck, flexible pattern matching file verifier";
+    mainProgram = "filecheck";
     maintainers = with maintainers; [ yorickvp ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/filetype/default.nix b/nixpkgs/pkgs/development/python-modules/filetype/default.nix
index f0d1caa25d27..b4479e61baa3 100644
--- a/nixpkgs/pkgs/development/python-modules/filetype/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/filetype/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Infer file type and MIME type of any file/buffer";
+    mainProgram = "filetype";
     homepage = "https://github.com/h2non/filetype.py";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/find-libpython/default.nix b/nixpkgs/pkgs/development/python-modules/find-libpython/default.nix
index 7a26be2b38ed..33dcb7e812a6 100644
--- a/nixpkgs/pkgs/development/python-modules/find-libpython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/find-libpython/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Finds the libpython associated with your environment, wherever it may be hiding";
+    mainProgram = "find_libpython";
     changelog = "https://github.com/ktbarrett/find_libpython/releases/tag/v${version}";
     homepage = "https://github.com/ktbarrett/find_libpython";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/findimports/default.nix b/nixpkgs/pkgs/development/python-modules/findimports/default.nix
index b809d7835d96..edd442729237 100644
--- a/nixpkgs/pkgs/development/python-modules/findimports/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/findimports/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for the analysis of Python import statements";
+    mainProgram = "findimports";
     homepage = "https://github.com/mgedmin/findimports";
     changelog = "https://github.com/mgedmin/findimports/blob/${version}/CHANGES.rst";
     license = with licenses; [ gpl2Only /* or */ gpl3Only ];
diff --git a/nixpkgs/pkgs/development/python-modules/findpython/default.nix b/nixpkgs/pkgs/development/python-modules/findpython/default.nix
index 7ada2d813dd4..a405ab3d6ec0 100644
--- a/nixpkgs/pkgs/development/python-modules/findpython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/findpython/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "A utility to find python versions on your system";
+    mainProgram = "findpython";
     homepage = "https://github.com/frostming/findpython";
     changelog = "https://github.com/frostming/findpython/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/fiona/default.nix b/nixpkgs/pkgs/development/python-modules/fiona/default.nix
index 8513c723bf00..e19875296ff0 100644
--- a/nixpkgs/pkgs/development/python-modules/fiona/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fiona/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "fiona";
-  version = "1.9.5";
+  version = "1.9.6";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "Toblerity";
     repo = "Fiona";
     rev = "refs/tags/${version}";
-    hash = "sha256-fq/BuyzuK4iOxdpE4h+KRH0CxOEk/wdmbb9KgCfJ1cw=";
+    hash = "sha256-MboM3IwGF8cuz+jMQ3QVZFAHjpspQ6kVJincq7OEkCM=";
   };
 
   nativeBuildInputs = [
@@ -93,6 +93,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/Toblerity/Fiona/blob/${src.rev}/CHANGES.txt";
     description = "OGR's neat, nimble, no-nonsense API for Python";
+    mainProgram = "fio";
     homepage = "https://fiona.readthedocs.io/";
     license = licenses.bsd3;
     maintainers = teams.geospatial.members;
diff --git a/nixpkgs/pkgs/development/python-modules/firebase-messaging/default.nix b/nixpkgs/pkgs/development/python-modules/firebase-messaging/default.nix
index bc5a4d1dbdf7..5acd1ff48022 100644
--- a/nixpkgs/pkgs/development/python-modules/firebase-messaging/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/firebase-messaging/default.nix
@@ -1,40 +1,35 @@
 { lib
+, async-timeout
 , buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, poetry-core
-
-# dependencies
 , cryptography
+, fetchFromGitHub
 , http-ece
+, poetry-core
 , protobuf
+, pytest-asyncio
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
 , requests
-
-# docs
+, requests-mock
 , sphinx
-, sphinxHook
 , sphinx-autodoc-typehints
 , sphinx-rtd-theme
-
-# tests
-, async-timeout
-, requests-mock
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
+, sphinxHook
 }:
 
 buildPythonPackage rec {
   pname = "firebase-messaging";
-  version = "0.2.0";
+  version = "0.2.1";
   pyproject = true;
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "sdb9696";
     repo = "firebase-messaging";
-    rev = version;
-    hash = "sha256-e3Ny3pnAfOpNERvvtE/jqSDIsM+YwLq/hbw753QpJ6o=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-8e+S12ZMqAmK7OR7O45QsRa0UKQq6cngeaqz2ugi6iY=";
   };
 
   outputs = [
@@ -75,9 +70,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A library to subscribe to GCM/FCM and receive notifications within a python application";
+    description = "Library to subscribe to GCM/FCM and receive notifications within a python application";
     homepage = "https://github.com/sdb9696/firebase-messaging";
-    changelog = "https://github.com/sdb9696/firebase-messaging/blob/${src.rev}/CHANGELOG.rst";
+    changelog = "https://github.com/sdb9696/firebase-messaging/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/fireflyalgorithm/default.nix b/nixpkgs/pkgs/development/python-modules/fireflyalgorithm/default.nix
index 38ddb6772a70..2a51a96f114f 100644
--- a/nixpkgs/pkgs/development/python-modules/fireflyalgorithm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fireflyalgorithm/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "An implementation of the stochastic nature-inspired algorithm for optimization";
+    mainProgram = "firefly-algorithm";
     homepage = "https://github.com/firefly-cpp/FireflyAlgorithm";
     changelog = "https://github.com/firefly-cpp/FireflyAlgorithm/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/firetv/default.nix b/nixpkgs/pkgs/development/python-modules/firetv/default.nix
index 652f69033dde..71525fe802f7 100644
--- a/nixpkgs/pkgs/development/python-modules/firetv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/firetv/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Communicate with an Amazon Fire TV device via ADB over a network";
+    mainProgram = "firetv-server";
     homepage = "https://github.com/happyleavesaoc/python-firetv/";
     license = licenses.mit;
     maintainers = [ maintainers.makefu ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix b/nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix
index 68c9895f2b90..3598500e37f5 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "flask-appbuilder";
-  version = "4.3.10";
+  version = "4.4.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Flask-AppBuilder";
     inherit version;
-    hash = "sha256-QXPIeOVrgcasrF48gMEz9Bg/Q0Qv2URVK9n0Aj9brOs=";
+    hash = "sha256-pk1MO1GXVHdEx8QffrD+Aga6Fnc2nOR5A90Iw8m3U70=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/flask-marshmallow/default.nix b/nixpkgs/pkgs/development/python-modules/flask-marshmallow/default.nix
index fdc40c244303..9d1c889dda4c 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-marshmallow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-marshmallow/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "flask-marshmallow";
-  version = "1.2.0";
+  version = "1.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "marshmallow-code";
     repo = "flask-marshmallow";
     rev = "refs/tags/${version}";
-    hash = "sha256-QoktZcyVJXkHr8fCVYt3ZkYq52nxCsZu+AgaDyrZHWs=";
+    hash = "sha256-GQLkt/CJf/QI8emvlW8xSRziGnncwfMSxBccW0Bb8I0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix b/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix
index a7a5da621630..804eed53ab04 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-migrate/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "flask-migrate";
-  version = "4.0.5";
+  version = "4.0.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "miguelgrinberg";
     repo = "Flask-Migrate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fdnoX7ypTpH2mQ+7Xuhzdh706Of7PIVhHQGVbe0jv1s=";
+    hash = "sha256-TnihrZ+JQ1XCBlFp6k8lrNpZr4P2/Z6AmFwWZbabz+8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/flask-security-too/default.nix b/nixpkgs/pkgs/development/python-modules/flask-security-too/default.nix
index 9fab0385e463..e922b3d54341 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-security-too/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-security-too/default.nix
@@ -3,7 +3,6 @@
 , fetchPypi
 , pythonOlder
 , setuptools
-, fetchpatch
 
 # extras: babel
 , babel
@@ -37,18 +36,18 @@
 
 # tests
 , argon2-cffi
+, freezegun
 , mongoengine
 , mongomock
 , peewee
 , pony
 , pytestCheckHook
-, python-dateutil
 , zxcvbn
 }:
 
 buildPythonPackage rec {
   pname = "flask-security-too";
-  version = "5.3.3";
+  version = "5.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -56,19 +55,9 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Flask-Security-Too";
     inherit version;
-    hash = "sha256-we2TquU28qP/ir4eE67J0Nlft/8IL8w7Ny3ypSE5cNk=";
+    hash = "sha256-dzVHHC5Lsh6rUC+cOyNEe/uHVTzkObhFffgSvFOfKoI=";
   };
 
-  patches = [
-    # https://github.com/Flask-Middleware/flask-security/pull/901
-    (fetchpatch {
-      name = "fixes-for-py_webauthn-2.0.patch";
-      url = "https://github.com/Flask-Middleware/flask-security/commit/5725f7021343567ec0b25c890e859f4e84c93ba6.patch";
-      hash = "sha256-4EgwT4zRj0mh4ZaoZFz7H5KeiZ9zs+BY4siYm8DwMfU=";
-      excludes = [ "CHANGES.rst" ];
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools
   ];
@@ -109,13 +98,14 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     argon2-cffi
+    freezegun
     mongoengine
     mongomock
     peewee
     pony
     pytestCheckHook
-    python-dateutil
     zxcvbn
+    freezegun
   ]
   ++ passthru.optional-dependencies.babel
   ++ passthru.optional-dependencies.common
diff --git a/nixpkgs/pkgs/development/python-modules/flask-session-captcha/default.nix b/nixpkgs/pkgs/development/python-modules/flask-session-captcha/default.nix
index 8a71b99c1539..539fd49c613b 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-session-captcha/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-session-captcha/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitHub
-, fetchpatch
 , buildPythonPackage
 
 # build-system
@@ -18,24 +17,16 @@
 
 buildPythonPackage rec {
   pname = "flask-session-captcha";
-  version = "1.3.0";
+  version = "1.4.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Tethik";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-V0f3mXCfqwH2l3OtJKOHGdrlKAFxs2ynqXvNve7Amkc=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-0g8nnnmTfcb9VqrtJ6kkfCFm+AYVrPZNWUPNQSjVTgQ=";
   };
 
-  patches = [
-    (fetchpatch {
-      # https://github.com/Tethik/flask-session-captcha/pull/44
-      url = "https://github.com/Tethik/flask-session-captcha/commit/3f79c22a71c60dd60e9df61b550cce641603dcb6.patch";
-      hash = "sha256-MXsoSytBNbcg3HU6IWlvf2MgNUL78T5ToxKGv4YMtZw=";
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask-swagger/default.nix b/nixpkgs/pkgs/development/python-modules/flask-swagger/default.nix
index 45afea65a4a5..4f968505edaa 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-swagger/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-swagger/default.nix
@@ -23,6 +23,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/gangverk/flask-swagger";
     license = licenses.mit;
     description = "Extract swagger specs from your flask project";
+    mainProgram = "flaskswagger";
     maintainers = with maintainers; [ vanschelven ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/flask/default.nix b/nixpkgs/pkgs/development/python-modules/flask/default.nix
index 083cf33c88fd..8c60066b1975 100644
--- a/nixpkgs/pkgs/development/python-modules/flask/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask/default.nix
@@ -31,12 +31,12 @@
 
 buildPythonPackage rec {
   pname = "flask";
-  version = "3.0.1";
+  version = "3.0.2";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZIn1G7Nmbe9vMU4V8Z1QoYaaGa4OjJo2Qf/mbHfUJAM=";
+    hash = "sha256-giwD9LeZIEJQp+6Ese3cQGZTlTM5c9+53uv+Ql/vy30=";
   };
 
   nativeBuildInputs = [
@@ -76,6 +76,7 @@ buildPythonPackage rec {
     changelog = "https://flask.palletsprojects.com/en/${versions.majorMinor version}.x/changes/#version-${replaceStrings [ "." ] [ "-" ] version}";
     homepage = "https://flask.palletsprojects.com/";
     description = "The Python micro framework for building web applications";
+    mainProgram = "flask";
     longDescription = ''
       Flask is a lightweight WSGI web application framework. It is
       designed to make getting started quick and easy, with the ability
diff --git a/nixpkgs/pkgs/development/python-modules/flax/default.nix b/nixpkgs/pkgs/development/python-modules/flax/default.nix
index b906ba9d4322..c7fc681955a3 100644
--- a/nixpkgs/pkgs/development/python-modules/flax/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flax/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "flax";
-  version = "0.7.5";
+  version = "0.8.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "google";
     repo = "flax";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NDah0ayQbiO1/sTU1DDf/crPq5oLTnSuosV7cFHlTM8=";
+    hash = "sha256-3UzMSJoKw+V1WLBJ+Zf7aF7CDNBsvWnRUfNgb3K4v1A=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/flet-core/default.nix b/nixpkgs/pkgs/development/python-modules/flet-core/default.nix
index 9b1a00107a67..99612c52b5ad 100644
--- a/nixpkgs/pkgs/development/python-modules/flet-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flet-core/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, flet-client-flutter
 
 # build-system
 , poetry-core
@@ -12,14 +12,10 @@
 
 buildPythonPackage rec {
   pname = "flet-core";
-  version = "0.20.2";
+  inherit (flet-client-flutter) version src;
   pyproject = true;
 
-  src = fetchPypi {
-    pname = "flet_core";
-    inherit version;
-    hash = "sha256-czkboJD/PjJA3F/z42qClErxNbQUgMt7QtbLd7yxhhw=";
-  };
+  sourceRoot = "${src.name}/sdk/python/packages/flet-core";
 
   nativeBuildInputs = [
     poetry-core
@@ -37,6 +33,6 @@ buildPythonPackage rec {
     description = "The library is the foundation of Flet framework and is not intended to be used directly";
     homepage = "https://flet.dev/";
     license = lib.licenses.asl20;
-    maintainers = [ lib.maintainers.heyimnova ];
+    maintainers = with lib.maintainers; [ heyimnova lucasew ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/flet-runtime/_setup_runtime.py b/nixpkgs/pkgs/development/python-modules/flet-runtime/_setup_runtime.py
new file mode 100644
index 000000000000..3a25fb7b959a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/flet-runtime/_setup_runtime.py
@@ -0,0 +1,3 @@
+import os
+if 'FLET_VIEW_PATH' not in os.environ:
+  os.environ["FLET_VIEW_PATH"] = "@flet-client-flutter@/bin"
diff --git a/nixpkgs/pkgs/development/python-modules/flet-runtime/default.nix b/nixpkgs/pkgs/development/python-modules/flet-runtime/default.nix
index 9e643fa81289..e2cae32ad418 100644
--- a/nixpkgs/pkgs/development/python-modules/flet-runtime/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flet-runtime/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, flet-client-flutter
 , poetry-core
 , pythonRelaxDepsHook
 , flet-core
@@ -10,14 +10,18 @@
 
 buildPythonPackage rec {
   pname = "flet-runtime";
-  version = "0.20.2";
+  inherit (flet-client-flutter) version src;
+
   pyproject = true;
 
-  src = fetchPypi {
-    pname = "flet_runtime";
-    inherit version;
-    hash = "sha256-92gyaMME2R7k3AAFKsl7kIv8mVwi8pwQsGLD0ml82Q0=";
-  };
+  sourceRoot = "${src.name}/sdk/python/packages/flet-runtime";
+
+  postPatch = ''
+    substitute ${./_setup_runtime.py} src/flet_runtime/_setup_runtime.py \
+      --replace @flet-client-flutter@ ${flet-client-flutter}
+
+    echo -e "import flet_runtime._setup_runtime\n$(cat src/flet_runtime/__init__.py)" > src/flet_runtime/__init__.py
+  '';
 
   nativeBuildInputs = [
     poetry-core
@@ -43,6 +47,6 @@ buildPythonPackage rec {
     description = "A base package for Flet desktop and Flet mobile";
     homepage = "https://flet.dev/";
     license = lib.licenses.asl20;
-    maintainers = [ lib.maintainers.wegank ];
+    maintainers = with lib.maintainers; [ lucasew wegank ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/flet/default.nix b/nixpkgs/pkgs/development/python-modules/flet/default.nix
index 961267915d4b..0dbed81022a6 100644
--- a/nixpkgs/pkgs/development/python-modules/flet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flet/default.nix
@@ -1,12 +1,13 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, flet-client-flutter
 , pythonRelaxDepsHook
 
 # build-system
 , poetry-core
 
 # propagates
+, fastapi
 , flet-core
 , flet-runtime
 , httpx
@@ -14,6 +15,7 @@
 , packaging
 , qrcode
 , cookiecutter
+, uvicorn
 , watchdog
 , websocket-client
 , websockets
@@ -22,13 +24,11 @@
 
 buildPythonPackage rec {
   pname = "flet";
-  version = "0.20.2";
+  inherit (flet-client-flutter) version src;
+
   pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-3LhQI/hjenTxG/1DZP/zn2zs00rT5BviDAQYb2vucBM=";
-  };
+  sourceRoot = "${src.name}/sdk/python/packages/flet";
 
   nativeBuildInputs = [
     poetry-core
@@ -37,11 +37,15 @@ buildPythonPackage rec {
 
   pythonRelaxDeps = [
     "websockets"
+    "cookiecutter"
+    "watchdog"
   ];
 
   propagatedBuildInputs = [
+    fastapi
     flet-core
     flet-runtime
+    uvicorn
     websocket-client
     watchdog
     oauthlib
@@ -50,6 +54,8 @@ buildPythonPackage rec {
     packaging
     qrcode
     cookiecutter
+    fastapi
+    uvicorn
   ];
 
   doCheck = false;
@@ -63,7 +69,7 @@ buildPythonPackage rec {
     homepage = "https://flet.dev/";
     changelog = "https://github.com/flet-dev/flet/releases/tag/v${version}";
     license = lib.licenses.asl20;
-    maintainers = [ lib.maintainers.heyimnova ];
+    maintainers = with lib.maintainers; [ heyimnova lucasew ];
     mainProgram = "flet";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/flipr-api/default.nix b/nixpkgs/pkgs/development/python-modules/flipr-api/default.nix
index 43b865b9faa3..650573d73fc5 100644
--- a/nixpkgs/pkgs/development/python-modules/flipr-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flipr-api/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python client for Flipr API";
+    mainProgram = "flipr-api";
     homepage = "https://github.com/cnico/flipr-api";
     changelog = "https://github.com/cnico/flipr-api/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/flit-core/default.nix b/nixpkgs/pkgs/development/python-modules/flit-core/default.nix
index fc4d6479caee..a4e0716cf344 100644
--- a/nixpkgs/pkgs/development/python-modules/flit-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flit-core/default.nix
@@ -10,7 +10,7 @@ buildPythonPackage rec {
 
   inherit (flit) src patches;
 
-  sourceRoot = "source/flit_core";
+  sourceRoot = "${src.name}/flit_core";
 
   # Tests are run in the "flit" package.
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/flit/default.nix b/nixpkgs/pkgs/development/python-modules/flit/default.nix
index a1be6821b2f7..a2e2ddfcdb7f 100644
--- a/nixpkgs/pkgs/development/python-modules/flit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flit/default.nix
@@ -53,6 +53,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/pypa/flit/blob/${version}/doc/history.rst";
     description = "A simple packaging tool for simple packages";
+    mainProgram = "flit";
     homepage = "https://github.com/pypa/flit";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fridh ];
diff --git a/nixpkgs/pkgs/development/python-modules/flow-record/default.nix b/nixpkgs/pkgs/development/python-modules/flow-record/default.nix
index 4dbce567c700..b3a57c134a12 100644
--- a/nixpkgs/pkgs/development/python-modules/flow-record/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flow-record/default.nix
@@ -6,6 +6,7 @@
 , lz4
 , msgpack
 , pytestCheckHook
+, pytest_7
 , pythonOlder
 , setuptools
 , setuptools-scm
@@ -51,7 +52,7 @@ buildPythonPackage rec {
   };
 
   nativeCheckInputs = [
-    pytestCheckHook
+    (pytestCheckHook.override { pytest = pytest_7; })
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/flowlogs-reader/default.nix b/nixpkgs/pkgs/development/python-modules/flowlogs-reader/default.nix
index 41b1970ca780..7769bdcb427b 100644
--- a/nixpkgs/pkgs/development/python-modules/flowlogs-reader/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flowlogs-reader/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library to make retrieving Amazon VPC Flow Logs from CloudWatch Logs a bit easier";
+    mainProgram = "flowlogs_reader";
     homepage = "https://github.com/obsrvbl/flowlogs-reader";
     license = licenses.asl20;
     maintainers = with maintainers; [ cransom ];
diff --git a/nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix b/nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix
index 2afef24b9b1c..8d9610d2d448 100644
--- a/nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix
@@ -1,24 +1,41 @@
-{ lib, buildPythonPackage, fetchPypi, msgpack }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+# build-system
+, hatchling
+
+# dependencies
+, msgpack
+
+# tests
+, pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "fluent-logger";
-  version = "0.10.0";
-  format = "setuptools";
+  version = "0.11.0";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "678bda90c513ff0393964b64544ce41ef25669d2089ce6c3b63d9a18554b9bfa";
+  src = fetchFromGitHub {
+    owner = "fluent";
+    repo = "fluent-logger-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-PfyjJZT5K/IMsyyWNZdh/CZf+uZHeJGfhyAPuu0IhJk=";
   };
 
-  prePatch = ''
-    substituteInPlace setup.py \
-      --replace "msgpack<1.0.0" "msgpack"
-  '';
+  build-system  = [
+    hatchling
+  ];
 
-  propagatedBuildInputs = [ msgpack ];
+  dependencies = [
+    msgpack
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
-  # Tests fail because absent in package
-  doCheck = false;
   pythonImportsCheck = [
     "fluent"
     "fluent.event"
diff --git a/nixpkgs/pkgs/development/python-modules/flux-led/default.nix b/nixpkgs/pkgs/development/python-modules/flux-led/default.nix
index 252c602f9371..d33e21a43a24 100644
--- a/nixpkgs/pkgs/development/python-modules/flux-led/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flux-led/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library to communicate with the flux_led smart bulbs";
+    mainProgram = "flux_led";
     homepage = "https://github.com/Danielhiversen/flux_led";
     changelog = "https://github.com/Danielhiversen/flux_led/releases/tag/${version}";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/flynt/default.nix b/nixpkgs/pkgs/development/python-modules/flynt/default.nix
index ab513e09c63a..0e0b73d20f4e 100644
--- a/nixpkgs/pkgs/development/python-modules/flynt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flynt/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "command line tool to automatically convert a project's Python code from old format style strings into Python 3.6+'s f-strings";
+    mainProgram = "flynt";
     homepage = "https://github.com/ikamensh/flynt";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/nixpkgs/pkgs/development/python-modules/folium/default.nix b/nixpkgs/pkgs/development/python-modules/folium/default.nix
index 3efaaa38cbe1..9c2df4de6322 100644
--- a/nixpkgs/pkgs/development/python-modules/folium/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/folium/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "folium";
-  version = "0.15.1";
+  version = "0.16.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "python-visualization";
     repo = "folium";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CHPHxp8xEZhEEMLvhs/xAiOr2Hw6B+5svFNY+QvQa+U=";
+    hash = "sha256-ADDqjZUQVI4K/Bf38905g1K9TD2/e1RYvYWddvFtdrU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/font-v/default.nix b/nixpkgs/pkgs/development/python-modules/font-v/default.nix
index 9ff5bc1c351b..09ed7270ebd3 100644
--- a/nixpkgs/pkgs/development/python-modules/font-v/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/font-v/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python utility for manipulating font version headers";
+    mainProgram = "font-v";
     homepage = "https://github.com/source-foundry/font-v";
     license = licenses.mit;
     maintainers = with maintainers; [ danc86 ];
diff --git a/nixpkgs/pkgs/development/python-modules/fontbakery/default.nix b/nixpkgs/pkgs/development/python-modules/fontbakery/default.nix
index 3d1a2331e5e8..15404df86d81 100644
--- a/nixpkgs/pkgs/development/python-modules/fontbakery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fontbakery/default.nix
@@ -44,12 +44,12 @@
 
 buildPythonPackage rec {
   pname = "fontbakery";
-  version = "0.10.4";
+  version = "0.11.2";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ye/TMGvURxSU2yoohwYbSo5RvrmbHKdMnFNj2lUvtMk=";
+    hash = "sha256-61EXlf+d5kJeUF41OEnGNLaOcSvFWUDFgarVvHQZYmw=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/fontmake/default.nix b/nixpkgs/pkgs/development/python-modules/fontmake/default.nix
index 2269e18c32a9..7911750bbeeb 100644
--- a/nixpkgs/pkgs/development/python-modules/fontmake/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fontmake/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "fontmake";
-  version = "3.7.1";
+  version = "3.8.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Nb09/BRPR0H3rHrbDIhcrgOyJp55KCIdPvUr/vh2Z0U=";
+    hash = "sha256-m0cRLm9Jbqlsf9NwR7Lma2NZYUjy5IDJYOorVbdLDuw=";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/fonttools/default.nix b/nixpkgs/pkgs/development/python-modules/fonttools/default.nix
index e07ab3c0d953..6d48088a2660 100644
--- a/nixpkgs/pkgs/development/python-modules/fonttools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fonttools/default.nix
@@ -4,6 +4,7 @@
 , pythonOlder
 , isPyPy
 , fetchFromGitHub
+, setuptools
 , setuptools-scm
 , fs
 , lxml
@@ -14,38 +15,43 @@
 , lz4
 , scipy
 , munkres
+, pycairo
 , matplotlib
 , sympy
 , xattr
 , skia-pathops
 , uharfbuzz
 , pytestCheckHook
+, pytest_7
 }:
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "4.46.0";
-  format = "setuptools";
+  version = "4.49.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-QpC1OWpqhJpzS59OG8A/nndWDoeYyAFUTIcsppLzM8Y=";
+    hash = "sha256-8xQVuAnIS/mwYKwI+ow0YArIP8wFTKWGLZ+NCgIFYok=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
 
-  passthru.optional-dependencies = let
+  optional-dependencies = let
     extras = {
       ufo = [ fs ];
       lxml = [ lxml ];
       woff = [ (if isPyPy then brotlicffi else brotli) zopfli ];
       unicode = lib.optional (pythonOlder "3.11") unicodedata2;
       graphite = [ lz4 ];
-      interpolatable = [ (if isPyPy then munkres else scipy) ];
+      interpolatable = [ pycairo (if isPyPy then munkres else scipy) ];
       plot = [ matplotlib ];
       symfont = [ sympy ];
       type1 = lib.optional stdenv.isDarwin xattr;
@@ -57,7 +63,9 @@ buildPythonPackage rec {
   };
 
   nativeCheckInputs = [
-    pytestCheckHook
+    # test suite fails with pytest>=8.0.1
+    # https://github.com/fonttools/fonttools/issues/3458
+    (pytestCheckHook.override { pytest = pytest_7; })
   ] ++ lib.concatLists (lib.attrVals ([
     "woff"
     # "interpolatable" is not included because it only contains 2 tests at the time of writing but adds 270 extra dependencies
@@ -66,7 +74,7 @@ buildPythonPackage rec {
     "pathops" # broken
   ] ++ [
     "repacker"
-  ]) passthru.optional-dependencies);
+  ]) optional-dependencies);
 
   pythonImportsCheck = [ "fontTools" ];
 
@@ -89,11 +97,17 @@ buildPythonPackage rec {
     "Tests/misc/plistlib_test.py"
     "Tests/pens"
     "Tests/ufoLib"
+
+    # test suite fails with pytest>=8.0.1
+    # https://github.com/fonttools/fonttools/issues/3458
+    "Tests/ttLib/woff2_test.py"
+    "Tests/ttx/ttx_test.py"
   ];
 
   meta = with lib; {
     homepage = "https://github.com/fonttools/fonttools";
     description = "A library to manipulate font files from Python";
+    changelog = "https://github.com/fonttools/fonttools/blob/${version}/NEWS.rst";
     license = licenses.mit;
     maintainers = [ maintainers.sternenseemann ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/fordpass/default.nix b/nixpkgs/pkgs/development/python-modules/fordpass/default.nix
index f5a4ea3b0d43..3ddef9d172c3 100644
--- a/nixpkgs/pkgs/development/python-modules/fordpass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fordpass/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module for the FordPass API";
+    mainProgram = "demo.py";
     homepage = "https://github.com/clarkd/fordpass-python";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/formbox/default.nix b/nixpkgs/pkgs/development/python-modules/formbox/default.nix
index 418cd3d958cd..7f825cb251e3 100644
--- a/nixpkgs/pkgs/development/python-modules/formbox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/formbox/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A script to format mbox as HTML/XML";
+    mainProgram = "formbox";
     homepage = "https://trong.loang.net/~cnx/formbox";
     license = licenses.agpl3Plus;
     maintainers = [ maintainers.McSinyx ];
diff --git a/nixpkgs/pkgs/development/python-modules/formulae/default.nix b/nixpkgs/pkgs/development/python-modules/formulae/default.nix
index d8b6088124d4..02dcfd0fbd6e 100644
--- a/nixpkgs/pkgs/development/python-modules/formulae/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/formulae/default.nix
@@ -3,6 +3,7 @@
 , pythonOlder
 , fetchFromGitHub
 , setuptools
+, setuptools-scm
 , pytestCheckHook
 , numpy
 , pandas
@@ -11,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "formulae";
-  version = "0.5.1";
+  version = "0.5.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,10 +21,13 @@ buildPythonPackage rec {
     owner = "bambinos";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-nmqGdXqsesRhR06FDS5t64C6+Bz1B97W+PkHrfV7Qmg=";
+    hash = "sha256-A0CI0bpoRYFAcPiNAf5haQu9BEqmBgxF7HfIl4qcML0=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
 
   propagatedBuildInputs = [
     numpy
diff --git a/nixpkgs/pkgs/development/python-modules/foxdot/default.nix b/nixpkgs/pkgs/development/python-modules/foxdot/default.nix
index 4b606f277249..7b989e3e3608 100644
--- a/nixpkgs/pkgs/development/python-modules/foxdot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/foxdot/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Live coding music with SuperCollider";
+    mainProgram = "FoxDot";
     homepage = "https://foxdot.org/";
     license = licenses.cc-by-sa-40;
     maintainers = with maintainers; [ mrmebelman ];
diff --git a/nixpkgs/pkgs/development/python-modules/fpdf2/default.nix b/nixpkgs/pkgs/development/python-modules/fpdf2/default.nix
index 292478ea2557..fdd43f1ca5c8 100644
--- a/nixpkgs/pkgs/development/python-modules/fpdf2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fpdf2/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "fpdf2";
-  version = "2.7.7";
+  version = "2.7.8";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "py-pdf";
     repo = "fpdf2";
-    rev = version;
-    hash = "sha256-6B68kwxAW3cHpwMTDhj3C4zEOR6o6USqpSXB7uxcEXs=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-6aedXr8Yhes1aYIslBvw2HzRc4BwYDIiGJvEdp1tFSc=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/fpylll/default.nix b/nixpkgs/pkgs/development/python-modules/fpylll/default.nix
index 97abc4562fe6..54d3d8f34f79 100644
--- a/nixpkgs/pkgs/development/python-modules/fpylll/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fpylll/default.nix
@@ -1,6 +1,7 @@
 { lib
 , fetchFromGitHub
 , buildPythonPackage
+, fetchpatch
 
 # build-system
 , cysignals
@@ -30,6 +31,13 @@ buildPythonPackage rec {
     hash = "sha256-M3ZnDL0Ui3UAa5Jn/Wr5pAHhghP7EAaQD/sx5QZ58ZQ=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/fplll/fpylll/commit/fc432b21fa7e4b9891f5b761b3539989eb958f2b.diff";
+      hash = "sha256-+UidQ5xnlmjeVeVvR4J2zDzAuXP5LUPXCh4RP4o9oGA=";
+    })
+  ];
+
   nativeBuildInputs = [
     cython_3
     cysignals
diff --git a/nixpkgs/pkgs/development/python-modules/freebox-api/default.nix b/nixpkgs/pkgs/development/python-modules/freebox-api/default.nix
index 4758712f0fb4..cb56a789deda 100644
--- a/nixpkgs/pkgs/development/python-modules/freebox-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/freebox-api/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to interact with the Freebox OS API";
+    mainProgram = "freebox_api";
     homepage = "https://github.com/hacf-fr/freebox-api";
     changelog = "https://github.com/hacf-fr/freebox-api/releases/tag/v${version}";
     license = with licenses; [ gpl3Only ];
diff --git a/nixpkgs/pkgs/development/python-modules/freezegun/default.nix b/nixpkgs/pkgs/development/python-modules/freezegun/default.nix
index e8c564a477ba..2279e70ada6a 100644
--- a/nixpkgs/pkgs/development/python-modules/freezegun/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/freezegun/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "freezegun";
-  version = "1.3.1";
+  version = "1.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SJhDl7O1jvXfxkXWowSwBg9hK87P2q9Fzor/AHemy2o=";
+    hash = "sha256-EJObC6D/Wtrs87BqXC9zBx2WeOUHxertsjx2HVasd0s=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/frozenlist2/default.nix b/nixpkgs/pkgs/development/python-modules/frozenlist2/default.nix
new file mode 100644
index 000000000000..2cbac731c577
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/frozenlist2/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "frozenlist2";
+  version = "1.0.0";
+
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "rohanpm";
+    repo = "frozenlist2";
+    rev = "v${version}";
+    hash = "sha256-fF0oFZ2q1wRH7IKBlCjm3Za4xtEMSHyEaGL09rHgtTY=";
+  };
+
+  propagatedBuildInputs = [
+    setuptools
+  ];
+
+  pythonImportsCheck = [ "frozenlist2" ];
+
+  meta = with lib; {
+    description = "An immutable list for Python";
+    homepage = "https://github.com/rohanpm/frozenlist2";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ t4ccer ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fsspec/default.nix b/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
index a90fe66a48cc..648879ec85cb 100644
--- a/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
@@ -29,7 +29,7 @@
 
 buildPythonPackage rec {
   pname = "fsspec";
-  version = "2023.10.0";
+  version = "2024.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     owner = "fsspec";
     repo = "filesystem_spec";
     rev = "refs/tags/${version}";
-    hash = "sha256-cLkCQQbb/AakDSz1NTrVlHh8LdgoqtjX8OPT+Nb1NA4=";
+    hash = "sha256-C+47BcIELZTEARXW8fAMHMjyKUWxU1tNKWGoPPtt/fQ=";
   };
 
   propagatedBuildInputs = [
@@ -126,6 +126,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
   __darwinAllowLocalNetworking = true;
 
   disabledTests = [
@@ -144,6 +148,8 @@ buildPythonPackage rec {
     # this two tests however, assume nanosecond resolution
     "test_modified"
     "test_touch"
+    # tries to access /home, ignores $HOME
+    "test_directories"
   ];
 
   disabledTestPaths = [
diff --git a/nixpkgs/pkgs/development/python-modules/ftfy/default.nix b/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
index f0a096ae87d9..36469c4ea82a 100644
--- a/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Given Unicode text, make its representation consistent and possibly less broken";
+    mainProgram = "ftfy";
     homepage = "https://github.com/LuminosoInsight/python-ftfy";
     license = licenses.mit;
     maintainers = with maintainers; [ aborsu ];
diff --git a/nixpkgs/pkgs/development/python-modules/future-fstrings/default.nix b/nixpkgs/pkgs/development/python-modules/future-fstrings/default.nix
index 389c3b3f1278..57cf42f38ab5 100644
--- a/nixpkgs/pkgs/development/python-modules/future-fstrings/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/future-fstrings/default.nix
@@ -17,6 +17,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/asottile/future-fstrings";
     description = "A backport of fstrings to python<3.6";
+    mainProgram = "future-fstrings-show";
     license = licenses.mit;
     maintainers = with maintainers; [ nyanloutre ];
     broken = pythonOlder "3.6"; # dependency tokenize-rt not packaged
diff --git a/nixpkgs/pkgs/development/python-modules/future-typing/default.nix b/nixpkgs/pkgs/development/python-modules/future-typing/default.nix
index e2c9a76c6920..04d4af30e07a 100644
--- a/nixpkgs/pkgs/development/python-modules/future-typing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/future-typing/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Use generic type hints and new union syntax `|` with python 3.6+";
+    mainProgram = "future_typing";
     homepage = "https://github.com/PrettyWood/future-typing";
     license = licenses.mit;
     maintainers = with maintainers; [ kfollesdal ];
diff --git a/nixpkgs/pkgs/development/python-modules/future/default.nix b/nixpkgs/pkgs/development/python-modules/future/default.nix
index 7c6c21d4d356..cc54a7744292 100644
--- a/nixpkgs/pkgs/development/python-modules/future/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/future/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 
 # build-system
 , setuptools
@@ -9,25 +8,14 @@
 
 buildPythonPackage rec {
   pname = "future";
-  version = "0.18.3";
+  version = "1.0.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-NKF0Nu0elml6hvnePRWjsL4B2LyN6cHf/Vn7gjTtUwc=";
+    hash = "sha256-vSloMJMHhh7a4UWKT4pPNZjAO+Q7l1IQdq6/XZTAewU=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/PythonCharmers/python-future/commit/1901c1c347bcad603e8404b64656994eb2cc0439.patch";
-      hash = "sha256-wUSWVs7+KTsTmEM4OkpViAjDGWqx5h0SLPIacMZCpWU=";
-      excludes = [
-        "build.sh"
-        "docs/whatsnew.rst"
-      ];
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/fvs/default.nix b/nixpkgs/pkgs/development/python-modules/fvs/default.nix
index 2f075f4be8f0..8a8df6b325ac 100644
--- a/nixpkgs/pkgs/development/python-modules/fvs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fvs/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "File Versioning System with hash comparison and data storage to create unlinked states that can be deleted";
+    mainProgram = "fvs";
     homepage = "https://github.com/mirkobrombin/FVS";
     license = licenses.mit;
     maintainers = with maintainers; [ bryanasdev000 ];
diff --git a/nixpkgs/pkgs/development/python-modules/fx2/default.nix b/nixpkgs/pkgs/development/python-modules/fx2/default.nix
index 6991c3f4ab1b..3fa79dbe3f1c 100644
--- a/nixpkgs/pkgs/development/python-modules/fx2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fx2/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Chip support package for Cypress EZ-USB FX2 series microcontrollers";
+    mainProgram = "fx2tool";
     homepage = "https://github.com/whitequark/libfx2";
     license = licenses.bsd0;
     maintainers = with maintainers; [ emily ];
diff --git a/nixpkgs/pkgs/development/python-modules/gaphas/default.nix b/nixpkgs/pkgs/development/python-modules/gaphas/default.nix
index 52428bc3c4eb..479d51683023 100644
--- a/nixpkgs/pkgs/development/python-modules/gaphas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gaphas/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "gaphas";
-  version = "3.11.3";
+  version = "4.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-NpmNIwZqvWAJDkUEb6+GpfQaRCVtjQk4odkaOd2D2ok=";
+    hash = "sha256-x4CVY2i/SCjq/c1Xfx3gdx7jTims1aKd05ziN4DdE1g=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/garminconnect/default.nix b/nixpkgs/pkgs/development/python-modules/garminconnect/default.nix
index 42363ecdcdd4..3e039ec5aac9 100644
--- a/nixpkgs/pkgs/development/python-modules/garminconnect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/garminconnect/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "garminconnect";
-  version = "0.2.13";
+  version = "0.2.15";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "cyberjunky";
     repo = "python-garminconnect";
     rev = "refs/tags/${version}";
-    hash = "sha256-9At9v+7jOt43qPOhZpFYBEXA2zUfp8MAGO4/676kcBU=";
+    hash = "sha256-N6PJLsT8BnjGaOLeohDo3ACOyVb/iOCw3LAXZMjwoyw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/garth/default.nix b/nixpkgs/pkgs/development/python-modules/garth/default.nix
index f6612811a692..c3e6bae9ed42 100644
--- a/nixpkgs/pkgs/development/python-modules/garth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/garth/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "garth";
-  version = "0.4.44";
+  version = "0.4.45";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-CgLWstmhWXI2w6KBSpIGp8G1smWAKXC0goHKw3I9rJ4=";
+    hash = "sha256-dN4WQZ2FLkyqCGYFBICodHR7yBdrLvx4NE6OqB0SgZo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/gassist-text/default.nix b/nixpkgs/pkgs/development/python-modules/gassist-text/default.nix
index b413c19d4093..a8e7b14de892 100644
--- a/nixpkgs/pkgs/development/python-modules/gassist-text/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gassist-text/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "gassist-text";
-  version = "0.0.10";
+  version = "0.0.11";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "tronikos";
     repo = "gassist_text";
     rev = "refs/tags/${version}";
-    hash = "sha256-BSMflCSYNAaQVTOqKWyr9U9Q70ley1jjF6ndOVum+GA=";
+    hash = "sha256-XFHyI48TuPBJjHA4dLSpYv62Y5zK0knrIqNKBoWnEeU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/gatt/default.nix b/nixpkgs/pkgs/development/python-modules/gatt/default.nix
index ae43ba4c5215..9543aa6a5e04 100644
--- a/nixpkgs/pkgs/development/python-modules/gatt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gatt/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Bluetooth (Generic Attribute Profile) GATT SDK for Python";
+    mainProgram = "gattctl";
     homepage = "https://github.com/getsenic/gatt-python/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/gawd/default.nix b/nixpkgs/pkgs/development/python-modules/gawd/default.nix
new file mode 100644
index 000000000000..3fee09a5d5b5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/gawd/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, wheel
+, ruamel-yaml
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "gawd";
+  version = "1.1.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "pooya-rostami";
+    repo = "gawd";
+    rev = version;
+    hash = "sha256-DCcU7vO5VApRsO+ljVs827TrHIfe3R+1/2wgBEcp1+c=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    ruamel-yaml
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "gawd" ];
+
+  meta = {
+    changelog = "https://github.com/pooya-rostami/gawd/releases/tag/${version}";
+    description = "Gawd is a Python library and command-line tool for computing syntactic differences between two GitHub Actions workflow files";
+    mainProgram = "gawd";
+    homepage = "https://github.com/pooya-rostami/gawd";
+    license = lib.licenses.lgpl3Only;
+    maintainers = with lib.maintainers; [ drupol ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/gcovr/default.nix b/nixpkgs/pkgs/development/python-modules/gcovr/default.nix
index 81fe8ae04295..7b8b32b2c5de 100644
--- a/nixpkgs/pkgs/development/python-modules/gcovr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gcovr/default.nix
@@ -1,28 +1,33 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, colorlog
 , jinja2
 , lxml
 , pygments
 , pythonOlder
+, tomli
 }:
 
 buildPythonPackage rec {
   pname = "gcovr";
-  version = "6.0";
+  version = "7.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-hjjV9E3vEOOOMWbIozvvZkPsIEaH4Kx9NFzkGpjFdQs=";
+    hash = "sha256-4+lctWyojbvnQctdaaor5JTrL8KgnuT2UWRKZw7lrrM=";
   };
 
   propagatedBuildInputs = [
+    colorlog
     jinja2
     lxml
     pygments
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    tomli
   ];
 
   # There are no unit tests in the pypi tarball. Most of the unit tests on the
@@ -32,12 +37,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [
     "gcovr"
-    "gcovr.workers"
     "gcovr.configuration"
   ];
 
   meta = with lib; {
     description = "Python script for summarizing gcov data";
+    mainProgram = "gcovr";
     homepage = "https://www.gcovr.com/";
     changelog = "https://github.com/gcovr/gcovr/blob/${version}/CHANGELOG.rst";
     license = licenses.bsd0;
diff --git a/nixpkgs/pkgs/development/python-modules/gcsfs/default.nix b/nixpkgs/pkgs/development/python-modules/gcsfs/default.nix
index 04af8e58ef79..71d52947b0c4 100644
--- a/nixpkgs/pkgs/development/python-modules/gcsfs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gcsfs/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "gcsfs";
-  version = "2023.4.0";
+  version = "2024.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "fsspec";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-FHS+g0SuYH9OPiE/+p2SHrsWfzBQ82GM6hTph8koh+o=";
+    hash = "sha256-6O09lP2cWLzeMTBathb3O/tVGZPEHSqujfUPWZIBUJI=";
   };
 
   propagatedBuildInputs = [
@@ -50,11 +50,18 @@ buildPythonPackage rec {
     vcrpy
   ];
 
+  disabledTests =[
+    # Cannot connect to host storage.googleapis.com:443
+    "test_credentials_from_raw_token"
+  ];
+
   disabledTestPaths = [
     # Tests require a running Docker instance
     "gcsfs/tests/test_core.py"
     "gcsfs/tests/test_mapping.py"
     "gcsfs/tests/test_retry.py"
+    "gcsfs/tests/derived/gcsfs_test.py"
+    "gcsfs/tests/test_inventory_report_listing.py"
   ];
 
   pytestFlagsArray = [
diff --git a/nixpkgs/pkgs/development/python-modules/gdown/default.nix b/nixpkgs/pkgs/development/python-modules/gdown/default.nix
index 0fe18c1a96de..1b0b3aa70b92 100644
--- a/nixpkgs/pkgs/development/python-modules/gdown/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gdown/default.nix
@@ -2,6 +2,9 @@
 , beautifulsoup4
 , buildPythonPackage
 , fetchPypi
+, hatchling
+, hatch-vcs
+, hatch-fancy-pypi-readme
 , filelock
 , requests
 , tqdm
@@ -12,16 +15,22 @@
 
 buildPythonPackage rec {
   pname = "gdown";
-  version = "4.7.3";
-  format = "setuptools";
+  version = "5.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-N+3DoO3aGn/l68xjHDqtBhJYJ2ZGBjDuUvSBuh7Hrv4=";
+    hash = "sha256-VQpy3FyigZ/kvMFdgNBdfJjAuQ5XJWJUt30CVrnfRoM=";
   };
 
+  build-system = [
+    hatchling
+    hatch-vcs
+    hatch-fancy-pypi-readme
+  ];
+
   propagatedBuildInputs = [
     beautifulsoup4
     filelock
@@ -41,6 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A CLI tool for downloading large files from Google Drive";
+    mainProgram = "gdown";
     homepage = "https://github.com/wkentaro/gdown";
     changelog = "https://github.com/wkentaro/gdown/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/gehomesdk/default.nix b/nixpkgs/pkgs/development/python-modules/gehomesdk/default.nix
index 3cbc255ec7a0..62fca9823a12 100644
--- a/nixpkgs/pkgs/development/python-modules/gehomesdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gehomesdk/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python SDK for GE smart appliances";
+    mainProgram = "gehome-appliance-data";
     homepage = "https://github.com/simbaja/gehome";
     changelog = "https://github.com/simbaja/gehome/blob/master/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/gemfileparser/default.nix b/nixpkgs/pkgs/development/python-modules/gemfileparser/default.nix
index 5a6f76d720bc..e6b91d24f804 100644
--- a/nixpkgs/pkgs/development/python-modules/gemfileparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gemfileparser/default.nix
@@ -23,6 +23,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A library to parse Ruby Gemfile, .gemspec and Cocoapod .podspec file using Python";
+    mainProgram = "parsegemfile";
     homepage = "https://github.com/gemfileparser/gemfileparser";
     license = with licenses; [ gpl3Plus /* or */ mit ];
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix b/nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix
index b7a2cc1d64a7..7ab4c747f21d 100644
--- a/nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Automatically generated zsh completion function for Python's option parser modules";
+    mainProgram = "genzshcomp";
     homepage = "https://bitbucket.org/hhatto/genzshcomp/";
     license = licenses.bsd0;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/geoip/default.nix b/nixpkgs/pkgs/development/python-modules/geoip/default.nix
index f1e84bd8c3be..6f66b3d67e1f 100644
--- a/nixpkgs/pkgs/development/python-modules/geoip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geoip/default.nix
@@ -1,15 +1,14 @@
-{lib, buildPythonPackage, fetchPypi
-, libgeoip, nose}:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, libgeoip
+}:
 
 buildPythonPackage rec {
   pname = "geoip";
   version = "1.3.2";
-  format = "setuptools";
-
-  nativeCheckInputs = [ nose ];
-  propagatedBuildInputs = [
-    libgeoip
-  ];
+  pyproject = true;
 
   src = fetchPypi {
     pname = "GeoIP";
@@ -17,9 +16,17 @@ buildPythonPackage rec {
     sha256 = "1rphxf3vrn8wywjgr397f49s0s22m83lpwcq45lm0h2p45mdm458";
   };
 
+  build-system = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    libgeoip
+  ];
+
   # Tests cannot be run because they require data that isn't included in the
   # release tarball.
-  checkPhase = "true";
+  doCheck = false;
 
   meta = {
     description = "MaxMind GeoIP Legacy Database - Python API";
diff --git a/nixpkgs/pkgs/development/python-modules/geoip2/default.nix b/nixpkgs/pkgs/development/python-modules/geoip2/default.nix
index dea210a9a6cc..4a0bec9476e8 100644
--- a/nixpkgs/pkgs/development/python-modules/geoip2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geoip2/default.nix
@@ -2,6 +2,8 @@
 , aiohttp
 , buildPythonPackage
 , fetchPypi
+, setuptools
+, setuptools-scm
 , maxminddb
 , mocket
 , pytestCheckHook
@@ -14,16 +16,21 @@
 
 buildPythonPackage rec {
   pname = "geoip2";
-  version = "4.7.0";
-  format = "setuptools";
+  version = "4.8.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-O93kmU9ryRfq+rW1Hnctc3sq4AA3pbhQAfsG3Gj3ed8=";
+    hash = "sha256-3ZzBgLfUFyQkDqSB1dU5FJ5lsjT2QoKyMbkXB5SprDU=";
   };
 
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     maxminddb
diff --git a/nixpkgs/pkgs/development/python-modules/geomet/default.nix b/nixpkgs/pkgs/development/python-modules/geomet/default.nix
index 0f9742c34381..622027f8aff7 100644
--- a/nixpkgs/pkgs/development/python-modules/geomet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geomet/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Convert GeoJSON to WKT/WKB (Well-Known Text/Binary) and vice versa";
+    mainProgram = "geomet";
     homepage = "https://github.com/geomet/geomet";
     changelog = "https://github.com/geomet/geomet/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/geometric/default.nix b/nixpkgs/pkgs/development/python-modules/geometric/default.nix
index 3178b959475a..becd876ee860 100644
--- a/nixpkgs/pkgs/development/python-modules/geometric/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geometric/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Geometry optimization code for molecular structures";
+    mainProgram = "geometric-optimize";
     homepage = "https://github.com/leeping/geomeTRIC";
     license = [ licenses.bsd3 ];
     maintainers = [ maintainers.markuskowa ];
diff --git a/nixpkgs/pkgs/development/python-modules/gerbonara/default.nix b/nixpkgs/pkgs/development/python-modules/gerbonara/default.nix
index 2e79e8aa3d43..15ec60ccc385 100644
--- a/nixpkgs/pkgs/development/python-modules/gerbonara/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gerbonara/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Pythonic library for reading/modifying/writing Gerber/Excellon/IPC-356 files";
+    mainProgram = "gerbonara";
     homepage = "https://github.com/jaseg/gerbonara";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ wulfsta ];
diff --git a/nixpkgs/pkgs/development/python-modules/getmac/default.nix b/nixpkgs/pkgs/development/python-modules/getmac/default.nix
index 0340642417c4..a62f47c2ece5 100644
--- a/nixpkgs/pkgs/development/python-modules/getmac/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/getmac/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python package to get the MAC address of network interfaces and hosts on the local network";
+    mainProgram = "getmac";
     homepage = "https://github.com/GhostofGoes/getmac";
     changelog = "https://github.com/GhostofGoes/getmac/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/gevent/default.nix b/nixpkgs/pkgs/development/python-modules/gevent/default.nix
index 0863a52d003d..d6264794a505 100644
--- a/nixpkgs/pkgs/development/python-modules/gevent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gevent/default.nix
@@ -23,14 +23,14 @@
 
 buildPythonPackage rec {
   pname = "gevent";
-  version = "23.9.1";
+  version = "24.2.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-csACI1OQ1G+Uk4qWkg2IVtT/2d32KjA6DXwRiJQJfjQ=";
+    hash = "sha256-Qy/Hb2gKz3zxiMLuD106tztjwfAxFMfNijTOu+WqIFY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/gflanguages/default.nix b/nixpkgs/pkgs/development/python-modules/gflanguages/default.nix
index 626495ed6f77..2e1e2ab36fde 100644
--- a/nixpkgs/pkgs/development/python-modules/gflanguages/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gflanguages/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "gflanguages";
-  version = "0.5.13";
+  version = "5.0.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LoppJHzX0dOpHnwMCyS1ACdIO4cqwb370ksvsXDFHzQ=";
+    hash = "sha256-AGXpg9EhwdhrcbdcHqz2v9TLaWH1F5gr0QhSuEN2GDA=";
   };
 
   # Relax the dependency on protobuf 3. Other packages in the Google Fonts
diff --git a/nixpkgs/pkgs/development/python-modules/ghdiff/default.nix b/nixpkgs/pkgs/development/python-modules/ghdiff/default.nix
index b4a5e584ed52..4bcde153ba32 100644
--- a/nixpkgs/pkgs/development/python-modules/ghdiff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ghdiff/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
     homepage =  "https://github.com/kilink/ghdiff";
     license = licenses.mit;
     description = "Generate Github-style HTML for unified diffs.";
+    mainProgram = "ghdiff";
     maintainers = [ maintainers.mic92 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ghp-import/default.nix b/nixpkgs/pkgs/development/python-modules/ghp-import/default.nix
index 956b1098e33f..8d7ec98b13c7 100644
--- a/nixpkgs/pkgs/development/python-modules/ghp-import/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ghp-import/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Copy your docs directly to the gh-pages branch";
+    mainProgram = "ghp-import";
     homepage = "https://github.com/c-w/ghp-import";
     license = licenses.asl20;
     maintainers = with maintainers; [ veehaitch ];
diff --git a/nixpkgs/pkgs/development/python-modules/ghrepo-stats/default.nix b/nixpkgs/pkgs/development/python-modules/ghrepo-stats/default.nix
index c7f3c0d52cda..18bd6124b152 100644
--- a/nixpkgs/pkgs/development/python-modules/ghrepo-stats/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ghrepo-stats/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module and CLI tool for GitHub repo statistics";
+    mainProgram = "show-ghstats";
     homepage = "https://github.com/mrbean-bremen/ghrepo-stats";
     changelog = "https://github.com/mrbean-bremen/ghrepo-stats/blob/v${version}/CHANGES.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/gibberish-detector/default.nix b/nixpkgs/pkgs/development/python-modules/gibberish-detector/default.nix
index c1ac1a5148b8..b9d06fc34cce 100644
--- a/nixpkgs/pkgs/development/python-modules/gibberish-detector/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gibberish-detector/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to detect gibberish strings";
+    mainProgram = "gibberish-detector";
     homepage = "https://github.com/domanchi/gibberish-detector";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/git-filter-repo/default.nix b/nixpkgs/pkgs/development/python-modules/git-filter-repo/default.nix
index 5f4fede287d1..fa0fa0148b8d 100644
--- a/nixpkgs/pkgs/development/python-modules/git-filter-repo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/git-filter-repo/default.nix
@@ -1,15 +1,19 @@
 { lib
 , buildPythonPackage
-, fetchpatch
+, fetchFromGitHub
 , fetchPypi
+, fetchpatch
+, installShellFiles
 , pythonOlder
 , setuptools-scm
+, writeScript
 }:
 
 buildPythonPackage rec {
   pname = "git-filter-repo";
   version = "2.38.0";
-  format = "setuptools";
+  docs_version = "01ead411966a83dfcfb35f9d2e8a9f7f215eaa65";
+  pyproject = true;
 
   disabled = pythonOlder "3.5";
 
@@ -18,6 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-/hdT4Y8L1tPJtXhoyAEa59BWpuurcGcGOWoV71MScl4=";
   };
 
+  docs = fetchFromGitHub {
+    owner = "newren";
+    repo = "git-filter-repo";
+    rev = docs_version;
+    hash = "sha256-Z/3w3Rguo8sfuc/OQ25eFbMfiOHjxQqPY6S32zuvoY4=";
+  };
+
   patches = [
     # https://github.com/newren/git-filter-repo/pull/498
     (fetchpatch {
@@ -28,8 +39,13 @@ buildPythonPackage rec {
     })
   ];
 
+  postInstall = ''
+    installManPage ${docs}/man1/git-filter-repo.1
+  '';
+
   nativeBuildInputs = [
     setuptools-scm
+    installShellFiles
   ];
 
   # Project has no tests
@@ -41,8 +57,23 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Quickly rewrite git repository history";
+    mainProgram = "git-filter-repo";
     homepage = "https://github.com/newren/git-filter-repo";
     license = with licenses; [ mit /* or */ gpl2Plus ];
-    maintainers = with maintainers; [ fab ];
+    maintainers = with maintainers; [ aiotter fab ];
   };
+
+  passthru.updateScript = writeScript "update-${pname}" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p common-updater-scripts curl jq nix-update
+
+    set -eu -o pipefail
+
+    # Update program
+    nix-update ${pname}
+
+    # Update docs
+    docs_latest=$(curl -s https://api.github.com/repos/newren/git-filter-repo/commits/heads/docs/status | jq -r '.sha')
+    [[ "${docs_version}" = "$docs_latest" ]] || update-source-version ${pname} "$docs_latest" --version-key=docs_version --source-key=docs
+  '';
 }
diff --git a/nixpkgs/pkgs/development/python-modules/git-revise/default.nix b/nixpkgs/pkgs/development/python-modules/git-revise/default.nix
index 5f1879638d1c..f64e4afa61ad 100644
--- a/nixpkgs/pkgs/development/python-modules/git-revise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/git-revise/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/mystor/git-revise";
     changelog = "https://github.com/mystor/git-revise/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
+    mainProgram = "git-revise";
     maintainers = with maintainers; [ emily ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/git-sweep/default.nix b/nixpkgs/pkgs/development/python-modules/git-sweep/default.nix
index 0f223b03760a..ac18f2604f83 100644
--- a/nixpkgs/pkgs/development/python-modules/git-sweep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/git-sweep/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A command-line tool that helps you clean up Git branches";
+    mainProgram = "git-sweep";
     homepage = "https://github.com/arc90/git-sweep";
     license = licenses.mit;
     maintainers = with maintainers; [ pSub ];
diff --git a/nixpkgs/pkgs/development/python-modules/github-to-sqlite/default.nix b/nixpkgs/pkgs/development/python-modules/github-to-sqlite/default.nix
index 0dfeb4244939..67ec970bda7b 100644
--- a/nixpkgs/pkgs/development/python-modules/github-to-sqlite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/github-to-sqlite/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Save data from GitHub to a SQLite database";
+    mainProgram = "github-to-sqlite";
     homepage = "https://github.com/dogsheep/github-to-sqlite";
     license = licenses.asl20;
     maintainers = with maintainers; [ sarcasticadmin ];
diff --git a/nixpkgs/pkgs/development/python-modules/githubkit/default.nix b/nixpkgs/pkgs/development/python-modules/githubkit/default.nix
index 50ec8128885c..ad737eb7b3bc 100644
--- a/nixpkgs/pkgs/development/python-modules/githubkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/githubkit/default.nix
@@ -7,6 +7,7 @@
 , poetry-core
 , pydantic
 , pyjwt
+, pytest-xdist
 , pytestCheckHook
 , pythonOlder
 , pythonRelaxDepsHook
@@ -15,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "githubkit";
-  version = "0.11.1";
+  version = "0.11.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "yanyongyu";
     repo = "githubkit";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nPXs6thXAshDojgHSNyEeBN/jNJkfFECSuY5f51Zozo=";
+    hash = "sha256-GRuEzRqDfhLCanuQnCkMXmDnfNkLFb35Gixl9pWmA8w=";
   };
 
   pythonRelaxDeps = [
@@ -33,15 +34,15 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--cov=githubkit --cov-append --cov-report=term-missing" ""
+      --replace-fail "--cov=githubkit --cov-append --cov-report=term-missing" ""
   '';
 
-  nativeBuildInputs = [
+  build-systems = [
     poetry-core
     pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     hishel
     httpx
     pydantic
@@ -70,6 +71,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
+    pytest-xdist
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/gitpython/default.nix b/nixpkgs/pkgs/development/python-modules/gitpython/default.nix
index 50afd5ea4aa8..d76d0366c461 100644
--- a/nixpkgs/pkgs/development/python-modules/gitpython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gitpython/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "gitpython";
-  version = "3.1.40";
+  version = "3.1.42";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "gitpython-developers";
     repo = "GitPython";
     rev = "refs/tags/${version}";
-    hash = "sha256-a5Ez6SuSqrJE306FrFjEnSoVhALVvubF1pLW4awK4gM=";
+    hash = "sha256-qpADumkfm8DHNlB2JeH/7sYrJqtYdFLv5YQAV0q5//s=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/glad/default.nix b/nixpkgs/pkgs/development/python-modules/glad/default.nix
index 889012b648ab..def3766765e8 100644
--- a/nixpkgs/pkgs/development/python-modules/glad/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glad/default.nix
@@ -12,6 +12,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Multi-Language Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs";
+    mainProgram = "glad";
     homepage = "https://github.com/Dav1dde/glad";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/glad2/default.nix b/nixpkgs/pkgs/development/python-modules/glad2/default.nix
index 57ee88c4997a..c4e03c164e6d 100644
--- a/nixpkgs/pkgs/development/python-modules/glad2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glad2/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "glad2";
-  version = "2.0.4";
+  version = "2.0.5";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7eFjn2nyugjx9JikCnB/NKYJ0k6y6g1sk2RomnmM99A=";
+    hash = "sha256-ugdXtqo6IEtjeHOxPQubQIZa4ZbfcpD8bAHYGOWK+Bw=";
   };
 
   propagatedBuildInputs = [
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Multi-Language GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specifications";
+    mainProgram = "glad";
     homepage = "https://github.com/Dav1dde/glad";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
diff --git a/nixpkgs/pkgs/development/python-modules/glean-parser/default.nix b/nixpkgs/pkgs/development/python-modules/glean-parser/default.nix
index 380ada5d33a6..7f0dfe2d5e87 100644
--- a/nixpkgs/pkgs/development/python-modules/glean-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glean-parser/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "glean-parser";
-  version = "11.0.1";
+  version = "13.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "glean_parser";
     inherit version;
-    hash = "sha256-eeUjtRsP3c6fbGMJ+oxkMou3BrLWyEelP4ipPQFpXkM=";
+    hash = "sha256-gzeAyrfgVwNLNSeGIDr5TyGvywCUy+1gEEcfXcIaX5E=";
   };
 
   postPatch = ''
@@ -57,6 +57,7 @@ buildPythonPackage rec {
   disabledTests = [
     # Network access
     "test_validate_ping"
+    "test_logging"
     # Fails since yamllint 1.27.x
     "test_yaml_lint"
   ];
@@ -67,6 +68,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tools for parsing the metadata for Mozilla's glean telemetry SDK";
+    mainProgram = "glean_parser";
     homepage = "https://github.com/mozilla/glean_parser";
     changelog = "https://github.com/mozilla/glean_parser/blob/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix
index 6ad0646401a0..cd8528125780 100644
--- a/nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "globus-sdk";
-  version = "3.32.0";
+  version = "3.39.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "globus";
     repo = "globus-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-otf1A8onfi6u3Vv7IxBtziLEy2UqVeJxw1u+XIfSchA=";
+    hash = "sha256-DjGwwpXzYRq5/hiUs/l8kD/yA58vbhvrKirKDlWoAmY=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/glom/default.nix b/nixpkgs/pkgs/development/python-modules/glom/default.nix
index 05c6110ae7c9..eb770051f09d 100644
--- a/nixpkgs/pkgs/development/python-modules/glom/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glom/default.nix
@@ -57,6 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Restructuring data, the Python way";
+    mainProgram = "glom";
     longDescription = ''
       glom helps pull together objects from other objects in a
       declarative, dynamic, and downright simple way.
diff --git a/nixpkgs/pkgs/development/python-modules/glyphsets/default.nix b/nixpkgs/pkgs/development/python-modules/glyphsets/default.nix
index 98fdd3d9aa4c..ac1625471011 100644
--- a/nixpkgs/pkgs/development/python-modules/glyphsets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glyphsets/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "glyphsets";
-  version = "0.6.11";
+  version = "0.6.14";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ACeD9O/kOE2we95gW4ak8504Y+azoqNyMeeVaWmEzak=";
+    hash = "sha256-lMRgchadgKyfFLw6ZF1sJAKBAK75zmw77L34MW9p7TI=";
   };
 
   patches = [
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Google Fonts glyph set metadata";
+    mainProgram = "glyphsets";
     homepage = "https://github.com/googlefonts/glyphsets";
     license = licenses.asl20;
     maintainers = with maintainers; [ danc86 ];
diff --git a/nixpkgs/pkgs/development/python-modules/glyphslib/default.nix b/nixpkgs/pkgs/development/python-modules/glyphslib/default.nix
index 7cf9adbb3bf6..41b257f4d975 100644
--- a/nixpkgs/pkgs/development/python-modules/glyphslib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glyphslib/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "glyphslib";
-  version = "6.6.0";
+  version = "6.6.6";
 
   format = "pyproject";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "googlefonts";
     repo = "glyphsLib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-2Y7JhaZJXKERQXEI9cDCx7m95El6AicU0t+X3Gntbxk=";
+    hash = "sha256-IF/mm6JOulB4kLZ1rRnZHjQth5RkgroDWuZ+HzMZYjM=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/gntp/default.nix b/nixpkgs/pkgs/development/python-modules/gntp/default.nix
index c334ebe5ce37..4376a0378223 100644
--- a/nixpkgs/pkgs/development/python-modules/gntp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gntp/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/kfdm/gntp/";
     description = "Python library for working with the Growl Notification Transport Protocol";
+    mainProgram = "gntp";
     license = licenses.mit;
     maintainers = [ maintainers.jfroche ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/goobook/default.nix b/nixpkgs/pkgs/development/python-modules/goobook/default.nix
index 16125400c94b..2f3884aa07ff 100644
--- a/nixpkgs/pkgs/development/python-modules/goobook/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/goobook/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Access your Google contacts from the command line";
+    mainProgram = "goobook";
     longDescription = ''
       The purpose of GooBook is to make it possible to use your Google Contacts
       from the command-line and from MUAs such as Mutt.
diff --git a/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix b/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix
index fa7086b7719d..fa2ee6aa8d6d 100644
--- a/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-api-python-client";
-  version = "2.120.0";
+  version = "2.121.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-oMh2nK2VdnaLyzGRyx9VD2qzKQy6BCutsPsXu6A/cMw=";
+    hash = "sha256-34Y+zk24s2zhBT69mD5D+8W2ZCCe7XjoLMhK5W3axsA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-auth/default.nix b/nixpkgs/pkgs/development/python-modules/google-auth/default.nix
index 905f301c2cc8..efe5dcd33541 100644
--- a/nixpkgs/pkgs/development/python-modules/google-auth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-auth/default.nix
@@ -26,14 +26,14 @@
 
 buildPythonPackage rec {
   pname = "google-auth";
-  version = "2.27.0";
+  version = "2.28.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6GOlbMwtjvqD33qAJyYB5DSH+ppyijdiBchsJqrvqCE=";
+    hash = "sha256-NPwwRsJXztzxYi/Esx/Cvnkj2bTUSXPUgRJezFDYOIU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix
index 3fa39efec8d5..ab3466c621c7 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix
@@ -19,21 +19,21 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-asset";
-  version = "3.24.3";
+  version = "3.25.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-owRdxr4Kr6VehuHl/mZuZo7XqixX2glWwJ3F/tq82bc=";
+    hash = "sha256-xKiqk55Ccm6DaB2aG5xo08nVqL69q8hvro+BPaY0/m4=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     grpc-google-iam-v1
     google-api-core
     google-cloud-access-context-manager
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
index d6952abe84f0..1cda61e13757 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
@@ -62,6 +62,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "BigQuery Storage API API client library";
+    mainProgram = "fixup_bigquery_storage_v1_keywords.py";
     homepage = "https://github.com/googleapis/python-bigquery-storage";
     changelog = "https://github.com/googleapis/python-bigquery-storage/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix
index 0a7c67ec7aa7..baeb3a72644e 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery/default.nix
@@ -28,14 +28,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery";
-  version = "3.18.0";
+  version = "3.19.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dPD8bwupR3+AjSWSTcigUsVffKkQZOg+FtPuX7fKd6s=";
+    hash = "sha256-jjEdrkl2jhUB/NxekWv/S34WlHHlcHkZ9Kb3igKztaY=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-container/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-container/default.nix
index 8dc787ddf0cd..0125fbe66c12 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-container/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-container/default.nix
@@ -14,21 +14,21 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-container";
-  version = "2.41.0";
+  version = "2.44.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-5DUFaQqzIvN/8Vo7MJNBrsMaB4HANO7Eb2nuzx3nDJc=";
+    hash = "sha256-heNvRcepXqayn/impyP5h4L+eOJjGV1hMrZyg96aZKU=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     google-api-core
     libcst
     proto-plus
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix
index 091729e95f69..84168c911f28 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-core";
-  version = "2.3.3";
+  version = "2.4.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-N7gCc8jX7uGugWs6IK5DWF6lBQbLDmDzz1vl+H8Tc8s=";
+    hash = "sha256-m3dJJyqBK95Y//KIaNDF4vWFuC834JofbtLU0Q8TQHM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-datacatalog/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
index 17f57f943099..4248a857bb48 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
@@ -15,21 +15,21 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-datacatalog";
-  version = "3.18.3";
+  version = "3.19.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-d4MTAZgseV5iI83A7lSkbe/SEgX9ZfQ0pLHfYBStfp4=";
+    hash = "sha256-Oo0O94fw7dRwPn4nyRobX4W9vgTWFgkTLsdyaffVJpI=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     google-api-core
     grpc-google-iam-v1
     libcst
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-dlp/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-dlp/default.nix
index 49f45dcc6b8b..f3895b8e3ef1 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-dlp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-dlp/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dlp";
-  version = "3.15.3";
+  version = "3.16.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9BCV3jYq8svvMbhKoQVMAlGYTggyi1qreG6T/yEIfy8=";
+    hash = "sha256-DWmh96XviHVsmeVrivTDnq5A0hBog/DieUxcs2QmltU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-iam/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-iam/default.nix
index 9e1ca821bdae..93c85687dd4c 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-iam/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-iam/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-iam";
-  version = "2.12.2";
+  version = "2.14.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-YDHQwZEfx5zguLuPb+FkUoO5wakYi0g9rmI7U7TYGBw=";
+    hash = "sha256-yC6ZP4qSGcW6H84TnDSu1vAZ3V+bRc6VbVQwWD0q8m4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-kms/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-kms/default.nix
index deab86952e76..45fd8082d3d0 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-kms/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-kms/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-kms";
-  version = "2.21.2";
+  version = "2.21.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8GrZ38gBVE+6EYN4i5ZPawF0g6Zgkapoa1Gr0HSAbIQ=";
+    hash = "sha256-XofVp7fY9bXJ8PZI81KniGlRqLTHJwPrnOe6gHb8JTM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix
index c6d253d9cb07..546ab8cb544e 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix
@@ -22,14 +22,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-logging";
-  version = "3.9.0";
+  version = "3.10.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TeyxsL7UoOPA5Yo3ZkbmAC1r58rQOeNGaCLoZlBy6jM=";
+    hash = "sha256-2T00c1EkDdsUz+IBmHotMs+df0eLiy+r7TAVtCWzJ08=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-netapp/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-netapp/default.nix
index 2730c971cc47..6f9162b757a7 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-netapp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-netapp/default.nix
@@ -14,21 +14,21 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-netapp";
-  version = "0.3.7";
+  version = "0.3.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-g+tH/u2lEbQDdMPo/4+kl03+d9mrLzR2Eo/H8e8Niic=";
+    hash = "sha256-Vohliy9W+fkY4YmSIvw6WiWVlLBk+Fo9CvZG/VKeU1o=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     google-api-core
     google-auth
     proto-plus
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix
index 5c4ce89104c2..c4517465a55c 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -17,21 +17,21 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "2.20.1";
+  version = "2.20.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ttBvGCeWgnPEK1egn2QkYmSclQTcD4dW+Zdw9OPnVa0=";
+    hash = "sha256-dq8PF5UJ5DHSu+P1H0JiVng9yVm49FjBNwyxnW974LE=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     google-api-core
     grpc-google-iam-v1
     grpcio
@@ -69,6 +69,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Google Cloud Pub/Sub API client library";
+    mainProgram = "fixup_pubsub_v1_keywords.py";
     homepage = "https://github.com/googleapis/python-pubsub";
     changelog = "https://github.com/googleapis/python-pubsub/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
index 69009eb54678..e3e5939e1b60 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
@@ -13,21 +13,21 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-secret-manager";
-  version = "2.18.3";
+  version = "2.19.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-HbL0CTJFNuNPmFCB04njl0yjo2aN94RcrQvgOrjA+n0=";
+    hash = "sha256-u5GENYNaFOuUeF9NTZCHvc8bbeMGQy1+2qfWLn94DDA=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     google-api-core
     grpc-google-iam-v1
     proto-plus
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-securitycenter/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
index d27b35b56b1e..a553d67e0670 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-securitycenter/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-securitycenter";
-  version = "1.28.0";
+  version = "1.29.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-80syqWoK2J+CjsBFO6LJEuF+pimJGpufgRLObHSKcAw=";
+    hash = "sha256-4c7tuLxO3+B8ZojVpSKWcl35doqoqHrofY6n80t9UrY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix
index 27794f0cc958..c8c055555d3f 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-spanner";
-  version = "3.43.0";
+  version = "3.44.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-BmLpX+MUZ0o7iy+jwZ6B5UTZT1hMppZbmMlQg6iGQiI=";
+    hash = "sha256-NTzAsG/UVn2BxPwUxE/ZnXqkCA9LwhmDRoq3LdstLIo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix
index 72d95a9410d6..146f4c726d1c 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "System test utilities for google-cloud-python";
+    mainProgram = "lower-bound-checker";
     homepage = "https://github.com/googleapis/python-test-utils";
     changelog  ="https://github.com/googleapis/python-test-utils/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix b/nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
index 3188af54d1de..4703ba3aadb0 100644
--- a/nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-websecurityscanner";
-  version = "1.14.2";
+  version = "1.14.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-loiKMV7guByukm9XBohVbCDsV607i8PXiQaJ8GZS6Go=";
+    hash = "sha256-Wp88cJqlAaAkaemHzkgKuhU4v4dFpgn5Sf+uqGKTeWQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-generativeai/default.nix b/nixpkgs/pkgs/development/python-modules/google-generativeai/default.nix
index 920cd984df33..dfcc2e06034a 100644
--- a/nixpkgs/pkgs/development/python-modules/google-generativeai/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-generativeai/default.nix
@@ -7,14 +7,16 @@
 , protobuf
 , pythonOlder
 , pythonRelaxDepsHook
+, pydantic
+, setuptools
 , tqdm
 , typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "google-generativeai";
-  version = "0.3.2";
-  format = "setuptools";
+  version = "0.4.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -22,22 +24,24 @@ buildPythonPackage rec {
     owner = "google";
     repo = "generative-ai-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-SL0jnuDHjeiqDq1VvWr4vQPFZ5yyea/OAGArmxztwB4=";
+    hash = "sha256-+PRsxwy8Um6wCku9s7h8ERKEhcFsomEYAwYg+vpAGyg=";
   };
 
   pythonRelaxDeps = [
     "google-ai-generativelanguage"
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     pythonRelaxDepsHook
+    setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     google-ai-generativelanguage
     google-auth
     google-api-core
     protobuf
+    pydantic
     tqdm
     typing-extensions
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-i18n-address/default.nix b/nixpkgs/pkgs/development/python-modules/google-i18n-address/default.nix
index 3cc5c3d43664..88c60e45e134 100644
--- a/nixpkgs/pkgs/development/python-modules/google-i18n-address/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-i18n-address/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Google's i18n address data packaged for Python";
+    mainProgram = "update-validation-files";
     homepage = "https://github.com/mirumee/google-i18n-address";
     changelog = "https://github.com/mirumee/google-i18n-address/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/google-nest-sdm/default.nix b/nixpkgs/pkgs/development/python-modules/google-nest-sdm/default.nix
index 31564a0536d9..44cd15ba33cd 100644
--- a/nixpkgs/pkgs/development/python-modules/google-nest-sdm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-nest-sdm/default.nix
@@ -57,6 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for Google Nest Device Access using the Smart Device Management API";
+    mainProgram = "google_nest";
     homepage = "https://github.com/allenporter/python-google-nest-sdm";
     changelog = "https://github.com/allenporter/python-google-nest-sdm/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/google-pasta/default.nix b/nixpkgs/pkgs/development/python-modules/google-pasta/default.nix
index 912b444541ad..99a2a98f1fdb 100644
--- a/nixpkgs/pkgs/development/python-modules/google-pasta/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-pasta/default.nix
@@ -14,6 +14,11 @@ buildPythonPackage rec {
     sha256 = "0vm1r1jlaiagj0l9yf7j6zn9w3733dr2169911c0svgrr3gwiwn9";
   };
 
+  postPatch = ''
+    substituteInPlace pasta/augment/inline_test.py \
+      --replace-fail assertRaisesRegexp assertRaisesRegex
+  '';
+
   propagatedBuildInputs = [
     six
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/google-resumable-media/default.nix b/nixpkgs/pkgs/development/python-modules/google-resumable-media/default.nix
index 846b390b9c9d..e740bc404867 100644
--- a/nixpkgs/pkgs/development/python-modules/google-resumable-media/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-resumable-media/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-resumable-media";
-  version = "2.6.0";
+  version = "2.7.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lyhS9sZfkz4VpKIQwrlpMHY7Rxl830ql9b6kNe+2Juc=";
+    hash = "sha256-Xxj1+pg29LCDFiBkocLJjBcjm/2pylCtlwzPkF8+Yls=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google/default.nix b/nixpkgs/pkgs/development/python-modules/google/default.nix
index 7dc34933d452..3dc2cdb34514 100644
--- a/nixpkgs/pkgs/development/python-modules/google/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python bindings to the Google search engine";
+    mainProgram = "google";
     homepage = "https://pypi.org/project/google/";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/googleapis-common-protos/default.nix b/nixpkgs/pkgs/development/python-modules/googleapis-common-protos/default.nix
index e8a469e51b06..a56c73b173a7 100644
--- a/nixpkgs/pkgs/development/python-modules/googleapis-common-protos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/googleapis-common-protos/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "googleapis-common-protos";
-  version = "1.61.0";
+  version = "1.62.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-imSGapf2MEpxeYc6Rl1u7pe3ok7Gz9eOD1delrghJAs=";
+    hash = "sha256-g/Ds6flOVnLM7YL1ktKl7fUnqW7ReU8LqzbVc1yZYnc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/googletrans/default.nix b/nixpkgs/pkgs/development/python-modules/googletrans/default.nix
index d1dd1de8e82f..3ffd029c2692 100644
--- a/nixpkgs/pkgs/development/python-modules/googletrans/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/googletrans/default.nix
@@ -21,6 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Googletrans is python library to interact with Google Translate API";
+    mainProgram = "translate";
     homepage = "https://py-googletrans.readthedocs.io";
     license = licenses.mit;
     maintainers = with maintainers; [ unode ];
diff --git a/nixpkgs/pkgs/development/python-modules/gotailwind/default.nix b/nixpkgs/pkgs/development/python-modules/gotailwind/default.nix
index 8c86b44df353..f1ae7880a279 100644
--- a/nixpkgs/pkgs/development/python-modules/gotailwind/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gotailwind/default.nix
@@ -71,6 +71,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Modul to communicate with Tailwind garage door openers";
+    mainProgram = "tailwind";
     homepage = "https://github.com/frenck/python-gotailwind";
     changelog = "https://github.com/frenck/python-gotailwind/releases/tag/v$version";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/gplaycli/default.nix b/nixpkgs/pkgs/development/python-modules/gplaycli/default.nix
index 769670edf433..1c70d37b0dbb 100644
--- a/nixpkgs/pkgs/development/python-modules/gplaycli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gplaycli/default.nix
@@ -69,6 +69,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Google Play Downloader via Command line";
+    mainProgram = "gplaycli";
     homepage = "https://github.com/matlink/gplaycli";
     changelog = "https://github.com/matlink/gplaycli/releases/tag/${version}";
     license = licenses.agpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/gprof2dot/default.nix b/nixpkgs/pkgs/development/python-modules/gprof2dot/default.nix
index cd0ef5b174a6..f9823ffbdfdb 100644
--- a/nixpkgs/pkgs/development/python-modules/gprof2dot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gprof2dot/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python script to convert the output from many profilers into a dot graph";
+    mainProgram = "gprof2dot";
     homepage = "https://github.com/jrfonseca/gprof2dot";
     changelog = "https://github.com/jrfonseca/gprof2dot/releases/tag/${version}";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/gptcache/default.nix b/nixpkgs/pkgs/development/python-modules/gptcache/default.nix
index ce04d7df2273..8b5405507292 100644
--- a/nixpkgs/pkgs/development/python-modules/gptcache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gptcache/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Semantic cache for LLMs and fully integrated with LangChain and llama_index";
+    mainProgram = "gptcache_server";
     homepage = "https://github.com/zilliztech/GPTCache";
     changelog = "https://github.com/zilliztech/GPTCache/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/gpuctypes/0001-fix-dlopen-cuda.patch b/nixpkgs/pkgs/development/python-modules/gpuctypes/0001-fix-dlopen-cuda.patch
new file mode 100644
index 000000000000..bc9f6c7ec64b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/gpuctypes/0001-fix-dlopen-cuda.patch
@@ -0,0 +1,44 @@
+From d448321436e8314d3e2a6a09d4017c4bc10f612d Mon Sep 17 00:00:00 2001
+From: Gaetan Lepage <gaetan@glepage.com>
+Date: Sat, 17 Feb 2024 17:37:22 +0100
+Subject: [PATCH] fix-dlopen-cuda
+
+---
+ gpuctypes/cuda.py | 20 ++++++++++++++++++--
+ 1 file changed, 18 insertions(+), 2 deletions(-)
+
+diff --git a/gpuctypes/cuda.py b/gpuctypes/cuda.py
+index acba81c..091f7f7 100644
+--- a/gpuctypes/cuda.py
++++ b/gpuctypes/cuda.py
+@@ -143,9 +143,25 @@ def char_pointer_cast(string, encoding='utf-8'):
+ 
+ 
+ 
++NAME_TO_PATHS = {
++    "libcuda.so": ["@driverLink@/lib/libcuda.so"],
++    "libnvrtc.so": ["@libnvrtc@"],
++}
++def _try_dlopen(name):
++    try:
++        return ctypes.CDLL(name)
++    except OSError:
++        pass
++    for candidate in NAME_TO_PATHS.get(name, []):
++        try:
++            return ctypes.CDLL(candidate)
++        except OSError:
++	        pass
++    raise RuntimeError(f"{name} not found")
++
+ _libraries = {}
+-_libraries['libcuda.so'] = ctypes.CDLL(ctypes.util.find_library('cuda'))
+-_libraries['libnvrtc.so'] = ctypes.CDLL(ctypes.util.find_library('nvrtc'))
++_libraries['libcuda.so'] = _try_dlopen('libcuda.so')
++_libraries['libnvrtc.so'] = _try_dlopen('libnvrtc.so')
+ 
+ 
+ cuuint32_t = ctypes.c_uint32
+-- 
+2.43.0
+
diff --git a/nixpkgs/pkgs/development/python-modules/gpuctypes/default.nix b/nixpkgs/pkgs/development/python-modules/gpuctypes/default.nix
new file mode 100644
index 000000000000..e5987f78ee07
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/gpuctypes/default.nix
@@ -0,0 +1,127 @@
+{ lib
+, config
+, buildPythonPackage
+, fetchFromGitHub
+, substituteAll
+, addDriverRunpath
+, cudaSupport ? config.cudaSupport
+, rocmSupport ? config.rocmSupport
+, cudaPackages
+, setuptools
+, ocl-icd
+, rocmPackages
+, pytestCheckHook
+, gpuctypes
+, testCudaRuntime ? false
+, testOpenclRuntime ? false
+, testRocmRuntime ? false
+}:
+assert testCudaRuntime -> cudaSupport;
+assert testRocmRuntime -> rocmSupport;
+
+buildPythonPackage rec {
+  pname = "gpuctypes";
+  version = "0.3.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    repo = "gpuctypes";
+    owner = "tinygrad";
+    rev = "refs/tags/${version}";
+    hash = "sha256-xUMvMBK1UhZaMZfik0Ia6+siyZGpCkBV+LTnQvzt/rw=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./0001-fix-dlopen-cuda.patch;
+      inherit (addDriverRunpath) driverLink;
+      libnvrtc =
+        if cudaSupport
+        then "${lib.getLib cudaPackages.cuda_nvrtc}/lib/libnvrtc.so"
+        else "Please import nixpkgs with `config.cudaSupport = true`";
+    })
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  postPatch = ''
+    substituteInPlace gpuctypes/opencl.py \
+      --replace "ctypes.util.find_library('OpenCL')" "'${ocl-icd}/lib/libOpenCL.so'"
+  ''
+  # hipGetDevicePropertiesR0600 is a symbol from rocm-6. We are currently at rocm-5.
+  # We are not sure that this works. Remove when rocm gets updated to version 6.
+  + lib.optionalString rocmSupport ''
+    substituteInPlace gpuctypes/hip.py \
+      --replace "/opt/rocm/lib/libamdhip64.so" "${rocmPackages.clr}/lib/libamdhip64.so" \
+      --replace "/opt/rocm/lib/libhiprtc.so" "${rocmPackages.clr}/lib/libhiprtc.so" \
+      --replace "hipGetDevicePropertiesR0600" "hipGetDeviceProperties"
+
+    substituteInPlace gpuctypes/comgr.py \
+      --replace "/opt/rocm/lib/libamd_comgr.so" "${rocmPackages.rocm-comgr}/lib/libamd_comgr.so"
+  '';
+
+  pythonImportsCheck = [ "gpuctypes" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = lib.optionals (!testOpenclRuntime) [
+    "test/test_opencl.py"
+  ] ++ lib.optionals (!rocmSupport) [
+    "test/test_hip.py"
+  ] ++ lib.optionals (!cudaSupport) [
+    "test/test_cuda.py"
+  ];
+
+  # Require GPU access to run (not available in the sandbox)
+  pytestFlagsArray = lib.optionals (!testCudaRuntime) [
+    "-k" "'not TestCUDADevice'"
+  ] ++ lib.optionals (!testRocmRuntime) [
+    "-k" "'not TestHIPDevice'"
+  ] ++ lib.optionals (testCudaRuntime || testOpenclRuntime || testRocmRuntime) [
+    "-v"
+  ];
+
+  # Running these tests requires special configuration on the builder.
+  # e.g. https://github.com/NixOS/nixpkgs/pull/256230 implements a nix
+  # pre-build hook which exposes the devices and the drivers in the sandbox
+  # based on requiredSystemFeatures:
+  requiredSystemFeatures = lib.optionals testCudaRuntime [
+    "cuda"
+  ] ++ lib.optionals testOpenclRuntime [
+    "opencl"
+  ] ++ lib.optionals testRocmRuntime [
+    "rocm"
+  ];
+
+  passthru.gpuChecks = {
+    cuda = gpuctypes.override {
+      cudaSupport = true;
+      testCudaRuntime = true;
+    };
+    opencl = gpuctypes.override {
+      testOpenclRuntime = true;
+    };
+    rocm = gpuctypes.override {
+      rocmSupport = true;
+      testRocmRuntime = true;
+    };
+  };
+
+  preCheck = lib.optionalString (cudaSupport && !testCudaRuntime) ''
+    addToSearchPath LD_LIBRARY_PATH ${lib.getLib cudaPackages.cuda_cudart}/lib/stubs
+  '';
+
+  # If neither rocmSupport or cudaSupport is enabled, no tests are selected
+  dontUsePytestCheck = !(rocmSupport || cudaSupport) && (!testOpenclRuntime);
+
+  meta = with lib; {
+    description = "Ctypes wrappers for HIP, CUDA, and OpenCL";
+    homepage = "https://github.com/tinygrad/gpuctypes";
+    license = licenses.mit;
+    maintainers = with maintainers; [ GaetanLepage matthewcroughan wozeparrot ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/gpuctypes/fix-dlopen-cuda.patch b/nixpkgs/pkgs/development/python-modules/gpuctypes/fix-dlopen-cuda.patch
new file mode 100644
index 000000000000..8d3b69e35e11
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/gpuctypes/fix-dlopen-cuda.patch
@@ -0,0 +1,32 @@
+diff --git a/gpuctypes/cuda.py b/gpuctypes/cuda.py
+index acba81c..aac5fc7 100644
+--- a/gpuctypes/cuda.py
++++ b/gpuctypes/cuda.py
+@@ -143,9 +143,25 @@ def char_pointer_cast(string, encoding='utf-8'):
+ 
+ 
+ 
++NAME_TO_PATHS = {
++    "libcuda.so": ["@driverLink@/lib/libcuda.so"],
++    "libnvrtc.so": ["@libnvrtc@"],
++}
++def _try_dlopen(name):
++    try:
++        return ctypes.CDLL(name)
++    except OSError:
++        pass
++    for candidate in NAME_TO_PATHS.get(name, []):
++        try:
++            return ctypes.CDLL(candidate)
++        except OSError:
++	     pass
++    raise RuntimeError(f"{name} not found")
++
+ _libraries = {}
+-_libraries['libcuda.so'] = ctypes.CDLL(ctypes.util.find_library('cuda'))
+-_libraries['libnvrtc.so'] = ctypes.CDLL(ctypes.util.find_library('nvrtc'))
++_libraries['libcuda.so'] = _try_dlopen('libcuda.so')
++_libraries['libnvrtc.so'] = _try_dlopen('libnvrtc.so')
+ 
+ 
+ cuuint32_t = ctypes.c_uint32
diff --git a/nixpkgs/pkgs/development/python-modules/gpustat/default.nix b/nixpkgs/pkgs/development/python-modules/gpustat/default.nix
index 8952e84c5c12..e6a35531f55f 100644
--- a/nixpkgs/pkgs/development/python-modules/gpustat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gpustat/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A simple command-line utility for querying and monitoring GPU status";
+    mainProgram = "gpustat";
     homepage = "https://github.com/wookayin/gpustat";
     changelog = "https://github.com/wookayin/gpustat/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/gpxpy/default.nix b/nixpkgs/pkgs/development/python-modules/gpxpy/default.nix
index 40708972823a..2f8e07cccf45 100644
--- a/nixpkgs/pkgs/development/python-modules/gpxpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gpxpy/default.nix
@@ -21,6 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python GPX (GPS eXchange format) parser";
+    mainProgram = "gpxinfo";
     homepage = "https://github.com/tkrajina/gpxpy";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/python-modules/gpy/default.nix b/nixpkgs/pkgs/development/python-modules/gpy/default.nix
index e4fbda924760..33da65d155cc 100644
--- a/nixpkgs/pkgs/development/python-modules/gpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gpy/default.nix
@@ -14,7 +14,7 @@
 }:
 
 buildPythonPackage rec {
-  pname = "GPy";
+  pname = "gpy";
   version = "1.13.0";
   pyproject = true;
 
diff --git a/nixpkgs/pkgs/development/python-modules/gql/default.nix b/nixpkgs/pkgs/development/python-modules/gql/default.nix
index 9827f8d5a71a..25b5ed25bae4 100644
--- a/nixpkgs/pkgs/development/python-modules/gql/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gql/default.nix
@@ -1,11 +1,13 @@
 { lib
 , aiofiles
 , aiohttp
+, anyio
 , backoff
 , botocore
 , buildPythonPackage
 , fetchFromGitHub
 , graphql-core
+, httpx
 , mock
 , parse
 , pytest-asyncio
@@ -14,6 +16,7 @@
 , pythonOlder
 , requests
 , requests-toolbelt
+, setuptools
 , urllib3
 , vcrpy
 , websockets
@@ -22,8 +25,8 @@
 
 buildPythonPackage rec {
   pname = "gql";
-  version = "3.4.1";
-  format = "setuptools";
+  version = "3.5.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -31,7 +34,7 @@ buildPythonPackage rec {
     owner = "graphql-python";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-/uPaRju2AJCjMCfA29IKQ4Hu71RBu/Yz8jHwk9EE1Eg=";
+    hash = "sha256-jm0X+X8gQyQYn03gT14bdr79+Wd5KL9ryvrU/0VUtEU=";
   };
 
   postPatch = ''
@@ -40,7 +43,12 @@ buildPythonPackage rec {
       "websockets>=10,<12;python_version>'3.6'"
   '';
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    anyio
     backoff
     graphql-core
     yarl
@@ -54,12 +62,13 @@ buildPythonPackage rec {
     pytest-console-scripts
     pytestCheckHook
     vcrpy
-  ] ++ passthru.optional-dependencies.all;
+  ] ++ optional-dependencies.all;
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     all = [
       aiohttp
       botocore
+      httpx
       requests
       requests-toolbelt
       urllib3
@@ -68,6 +77,9 @@ buildPythonPackage rec {
     aiohttp = [
       aiohttp
     ];
+    httpx = [
+      httpx
+    ];
     requests = [
       requests
       requests-toolbelt
@@ -123,6 +135,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "GraphQL client in Python";
+    mainProgram = "gql-cli";
     homepage = "https://github.com/graphql-python/gql";
     changelog = "https://github.com/graphql-python/gql/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/gradient/default.nix b/nixpkgs/pkgs/development/python-modules/gradient/default.nix
index 99037dc332db..584de835e0d0 100644
--- a/nixpkgs/pkgs/development/python-modules/gradient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gradient/default.nix
@@ -73,6 +73,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "The command line interface for Gradient";
+    mainProgram = "gradient";
     homepage = "https://github.com/Paperspace/gradient-cli";
     license = licenses.isc;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/python-modules/gradio/default.nix b/nixpkgs/pkgs/development/python-modules/gradio/default.nix
index c87c41631291..bfcf10a2ea1c 100644
--- a/nixpkgs/pkgs/development/python-modules/gradio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gradio/default.nix
@@ -57,7 +57,7 @@
 
 buildPythonPackage rec {
   pname = "gradio";
-  version = "4.19.2";
+  version = "4.20.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -66,7 +66,7 @@ buildPythonPackage rec {
   # and upstream has stopped tagging releases since 3.41.0
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-b+WBW7Tfru0fx0Ijv/2R2nChtGMVivjF4D0BuwkGih0=";
+    hash = "sha256-nvuIpOFib09FJGfkX0TDfb2LV/eDn3EybsFp5A3lzas=";
   };
 
   # fix packaging.ParserSyntaxError, which can't handle comments
diff --git a/nixpkgs/pkgs/development/python-modules/graphene-django/default.nix b/nixpkgs/pkgs/development/python-modules/graphene-django/default.nix
index 6b6527c3bbd9..64d07a538429 100644
--- a/nixpkgs/pkgs/development/python-modules/graphene-django/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphene-django/default.nix
@@ -61,6 +61,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    # pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   disabledTests = lib.optionals (pythonAtLeast "3.11") [
     # Python 3.11 support, https://github.com/graphql-python/graphene-django/pull/1365
     "test_django_objecttype_convert_choices_enum_naming_collisions"
diff --git a/nixpkgs/pkgs/development/python-modules/graphene/default.nix b/nixpkgs/pkgs/development/python-modules/graphene/default.nix
index e87dc333558f..551ff8a86e64 100644
--- a/nixpkgs/pkgs/development/python-modules/graphene/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphene/default.nix
@@ -2,15 +2,13 @@
 , aniso8601
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
 , graphql-core
 , graphql-relay
-, promise
-, py
 , pytest-asyncio
 , pytest-benchmark
 , pytest-mock
 , pytestCheckHook
-, pythonAtLeast
 , pythonOlder
 , pytz
 , snapshottest
@@ -19,7 +17,7 @@
 buildPythonPackage rec {
   pname = "graphene";
   version = "3.3.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -30,15 +28,17 @@ buildPythonPackage rec {
     hash = "sha256-DGxicCXZp9kW/OFkr0lAWaQ+GaECx+HD8+X4aW63vgQ=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     aniso8601
     graphql-core
     graphql-relay
   ];
 
   nativeCheckInputs = [
-    promise
-    py
     pytestCheckHook
     pytest-asyncio
     pytest-benchmark
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [
     "--benchmark-disable"
+    "-W ignore::pytest.PytestRemovedIn8Warning"
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/graphlib-backport/default.nix b/nixpkgs/pkgs/development/python-modules/graphlib-backport/default.nix
new file mode 100644
index 000000000000..54d166a88ba2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/graphlib-backport/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, setuptools
+, poetry-core
+}:
+
+buildPythonPackage rec {
+  pname = "graphlib-backport";
+  version = "1.1.0";
+
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "mariushelf";
+    repo = "graphlib_backport";
+    rev = version;
+    hash = "sha256-ssJLtBQH8sSnccgcAKLKfYpPyw5U0RIm1F66/Er81lo=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml        \
+      --replace 'poetry>=1.0' 'poetry-core' \
+      --replace 'poetry.masonry.api' 'poetry.core.masonry.api'
+  '';
+
+  propagatedBuildInputs = [
+    setuptools
+    poetry-core
+  ];
+
+  pythonImportsCheck = [ "graphlib" ];
+
+  meta = with lib; {
+    description = "Backport of the Python 3.9 graphlib module for Python 3.6+";
+    homepage = "https://github.com/mariushelf/graphlib_backport";
+    license = licenses.psfl;
+    maintainers = with maintainers; [ t4ccer ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/graphtage/default.nix b/nixpkgs/pkgs/development/python-modules/graphtage/default.nix
index fa5026a52a2e..815e6775c177 100644
--- a/nixpkgs/pkgs/development/python-modules/graphtage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphtage/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "graphtage";
-  version = "0.3.0";
+  version = "0.3.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "trailofbits";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-rzX5pSSPm3CjpnCm0gxsgUaeXho9dP7WTanCzBK6Yps=";
+    hash = "sha256-Bz2T8tVdVOdXt23yPITkDNL46Y5LZPhY3SXZ5bF3CHw=";
   };
 
   postPatch = ''
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A utility to diff tree-like files such as JSON and XML";
+    mainProgram = "graphtage";
     homepage = "https://github.com/trailofbits/graphtage";
     changelog = "https://github.com/trailofbits/graphtage/releases/tag/v${version}";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/graphviz/default.nix b/nixpkgs/pkgs/development/python-modules/graphviz/default.nix
index 8a5286c65609..513e7c858494 100644
--- a/nixpkgs/pkgs/development/python-modules/graphviz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphviz/default.nix
@@ -11,7 +11,7 @@
 , freefont_ttf
 , setuptools
 , mock
-, pytest
+, pytest_7
 , pytest-mock
 , python
 }:
@@ -60,7 +60,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     mock
-    pytest
+    pytest_7
     pytest-mock
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/greatfet/default.nix b/nixpkgs/pkgs/development/python-modules/greatfet/default.nix
index 7859d2f4c087..7f7c53f70ea3 100644
--- a/nixpkgs/pkgs/development/python-modules/greatfet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/greatfet/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, buildPythonPackage, isPy3k, future, pyusb, ipython, pygreat }:
 
 buildPythonPackage rec {
-  pname = "GreatFET";
+  pname = "greatfet";
   version = "2019.5.1.dev0";
 
   src = fetchFromGitHub {
@@ -30,5 +30,3 @@ buildPythonPackage rec {
     maintainers = with lib.maintainers; [ mog ];
   };
 }
-
-
diff --git a/nixpkgs/pkgs/development/python-modules/green/default.nix b/nixpkgs/pkgs/development/python-modules/green/default.nix
index 56f6bfae2a42..40b4851b0c77 100644
--- a/nixpkgs/pkgs/development/python-modules/green/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/green/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "green";
-  version = "3.4.3";
+  version = "4.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-iGXQt3tcsThR3WAaWK0sgry1LafKEG8FOMV4fxJzaKY=";
+    hash = "sha256-O178HRtyKg/2fYD9jHzfbUfNGPlRpGuEvbx7H7yr0/w=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/green/tests.patch b/nixpkgs/pkgs/development/python-modules/green/tests.patch
index 7e1c3be62e3f..82826834518f 100644
--- a/nixpkgs/pkgs/development/python-modules/green/tests.patch
+++ b/nixpkgs/pkgs/development/python-modules/green/tests.patch
@@ -1,22 +1,23 @@
 diff --git a/green/test/test_integration.py b/green/test/test_integration.py
-index 0cf8cbb..40d9f6b 100644
+index 9a2d824..372e6e0 100644
 --- a/green/test/test_integration.py
 +++ b/green/test/test_integration.py
-@@ -41,9 +41,7 @@ class TestFinalizer(unittest.TestCase):
+@@ -37,9 +37,7 @@ class TestFinalizer(unittest.TestCase):
+                 )
              )
-             fh.close()
          args = [
 -            sys.executable,
 -            "-m",
 -            "green.cmdline",
-+            "@green@",
-             "--finalizer=test_finalizer0.msg",
++            "@green@"
+             "--finalizer=test_finalizer.msg",
              "--maxtasksperchild=1",
          ]
-@@ -58,6 +56,5 @@ class TestFinalizer(unittest.TestCase):
+@@ -54,7 +52,6 @@ class TestFinalizer(unittest.TestCase):
              stdout=subprocess.PIPE,
              stderr=subprocess.STDOUT,
              env=env,
 -            timeout=10,
-         ).stdout.decode("utf-8")
-         self.assertIn("finalizer worked", output)
+             encoding="utf-8",
+             check=True,
+         ).stdout
diff --git a/nixpkgs/pkgs/development/python-modules/greenlet/default.nix b/nixpkgs/pkgs/development/python-modules/greenlet/default.nix
index 8b885133cf2a..6839b2340961 100644
--- a/nixpkgs/pkgs/development/python-modules/greenlet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/greenlet/default.nix
@@ -14,12 +14,12 @@
 
 let greenlet = buildPythonPackage rec {
   pname = "greenlet";
-  version = "3.0.1";
+  version = "3.0.3";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gWvZSIqUy6eNk+GrtYAA6CZvqcwqqczdbrBpasskAFs=";
+    hash = "sha256-QzdEQjUyWVVM4zWZ2otpLVqpb4l21WfUut8mM3H75JE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/greynoise/default.nix b/nixpkgs/pkgs/development/python-modules/greynoise/default.nix
index 2f328434c067..0e127c6ce825 100644
--- a/nixpkgs/pkgs/development/python-modules/greynoise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/greynoise/default.nix
@@ -54,6 +54,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python3 library and command line for GreyNoise";
+    mainProgram = "greynoise";
     homepage = "https://github.com/GreyNoise-Intelligence/pygreynoise";
     changelog = "https://github.com/GreyNoise-Intelligence/pygreynoise/blob/${src.rev}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/griffe/default.nix b/nixpkgs/pkgs/development/python-modules/griffe/default.nix
index 562fc92a2851..0ae203f6331f 100644
--- a/nixpkgs/pkgs/development/python-modules/griffe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/griffe/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "griffe";
-  version = "0.41.3";
+  version = "0.42.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = "griffe";
     rev = "refs/tags/${version}";
-    hash = "sha256-bRg7pqoGrsSO7wQLA0FKMmIBcYPNGIUueOfXjuvazrE=";
+    hash = "sha256-KaD3j96FJJx43m/nfHa4kAft4FcDOdq+2dsiaMY7PPY=";
   };
 
   nativeBuildInputs = [
@@ -50,6 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Signatures for entire Python programs";
+    mainProgram = "griffe";
     homepage = "https://github.com/mkdocstrings/griffe";
     changelog = "https://github.com/mkdocstrings/griffe/blob/${version}/CHANGELOG.md";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/development/python-modules/grip/default.nix b/nixpkgs/pkgs/development/python-modules/grip/default.nix
index 37319e1ede7b..f76fd2548b03 100644
--- a/nixpkgs/pkgs/development/python-modules/grip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grip/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Preview GitHub Markdown files like Readme locally before committing them";
+    mainProgram = "grip";
     homepage = "https://github.com/joeyespo/grip";
     license = licenses.mit;
     maintainers = with maintainers; [ koral ];
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio-channelz/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio-channelz/default.nix
index 7e62bf091b38..ba66ffe4e344 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio-channelz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio-channelz/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-channelz";
-  version = "1.62.0";
+  version = "1.62.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MjL6BjQx2G3TpQ4Pe8uB3zIgGrykLtI/6eLLQ8AyKnk=";
+    hash = "sha256-e+8XBt/tt4lNbgNGemBjrBCxUAR7aWXi+0gU1MKmQkU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio-health-checking/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio-health-checking/default.nix
index a6c76e8bfea6..dbadab943219 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio-health-checking/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio-health-checking/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-health-checking";
-  version = "1.62.0";
+  version = "1.62.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-f8JjBFMP2KwGukvtvcGUpWPFXiGKv/QJy68d5xkUk3s=";
+    hash = "sha256-nlYYCpQbHTKgd9dJHgYR0Eg8OWNYr9U0m/ABUmEuRYM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio-reflection/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio-reflection/default.nix
index 365c7beabf2b..799a805ba564 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio-reflection/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio-reflection/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-reflection";
-  version = "1.62.0";
+  version = "1.62.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-rxcHOZ7yghx5Xss3lVC/Wnb7ZAmxSeuzRjEM/QHaKYo=";
+    hash = "sha256-q9RTABmRhxAxMV7y2Cr/6TCAwEM/o6AHvjS/Qn4oqIo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio-status/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio-status/default.nix
index eb91900864ca..4fd21a8bf159 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio-status/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio-status/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "grpcio-status";
-  version = "1.62.0";
+  version = "1.62.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-DWk+nAmIDa6qwGDQw9uhrkcKQ8meXSDf6v1iz34IqF0=";
+    hash = "sha256-NDHIq7qwBUkSxB31xy8D3fO3pnvoooe7PBijRW+W/3c=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio-testing/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio-testing/default.nix
index d6ecbe9d3aa5..c5cdf76a5ef6 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio-testing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio-testing/default.nix
@@ -5,25 +5,30 @@
 , protobuf
 , pythonOlder
 , pythonRelaxDepsHook
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "grpcio-testing";
-  version = "1.62.0";
-  format = "setuptools";
+  version = "1.62.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-T/CiuWYEuwA9Oa1v8li3XVVa13lePMFEr+2yDa/erJk=";
+    hash = "sha256-yyaVEAqykAtRz9vbVv4SEA1JWA8QrgZ6LKsRfo/HRu0=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace '"grpcio>={version}".format(version=grpc_version.VERSION)' '"grpcio"'
+      --replace-fail '"grpcio>={version}".format(version=grpc_version.VERSION)' '"grpcio"'
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     grpcio
     protobuf
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
index 62eae894a267..4aef9f5fbd0f 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-tools";
-  version = "1.62.0";
+  version = "1.62.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-f8puz7vwVJBYuyncxuQ12IW4eNB3Aed6xY4eH1kXNtw=";
+    hash = "sha256-pJkeXuipereRKW079+hwCxRFY1zBgozJjflFyhgC1/I=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio/default.nix
index 934ac1077ce4..e890280c676c 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio/default.nix
@@ -18,11 +18,11 @@
 buildPythonPackage rec {
   pname = "grpcio";
   format = "setuptools";
-  version = "1.62.0";
+  version = "1.62.1";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dISWr5I4rHjc2YzOZUIfGtzijDl5OT42CWg/zX84gNc=";
+    hash = "sha256-bEVeAI+obZ6anYW7dtpCd8DX2WaKO/pw2+hunzx1mUc=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/python-modules/gruut-ipa/default.nix b/nixpkgs/pkgs/development/python-modules/gruut-ipa/default.nix
index bca9611b7e21..717a439393e1 100644
--- a/nixpkgs/pkgs/development/python-modules/gruut-ipa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gruut-ipa/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for manipulating pronunciations using the International Phonetic Alphabet (IPA)";
+    mainProgram = "gruut-ipa";
     homepage = "https://github.com/rhasspy/gruut-ipa";
     license = licenses.mit;
     maintainers = teams.tts.members;
diff --git a/nixpkgs/pkgs/development/python-modules/gruut/default.nix b/nixpkgs/pkgs/development/python-modules/gruut/default.nix
index bd6e95909d99..8d18dee9cd8e 100644
--- a/nixpkgs/pkgs/development/python-modules/gruut/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gruut/default.nix
@@ -85,6 +85,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A tokenizer, text cleaner, and phonemizer for many human languages";
+    mainProgram = "gruut";
     homepage = "https://github.com/rhasspy/gruut";
     license = licenses.mit;
     maintainers = teams.tts.members;
diff --git a/nixpkgs/pkgs/development/python-modules/gsd/default.nix b/nixpkgs/pkgs/development/python-modules/gsd/default.nix
index 54062ec39f14..3148c3f2e70c 100644
--- a/nixpkgs/pkgs/development/python-modules/gsd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gsd/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "General simulation data file format";
+    mainProgram = "gsd";
     homepage = "https://github.com/glotzerlab/gsd";
     changelog = "https://github.com/glotzerlab/gsd/blob/v${version}/CHANGELOG.rst";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/gspread/default.nix b/nixpkgs/pkgs/development/python-modules/gspread/default.nix
index 6f107cc610a0..8ed4c6d9beea 100644
--- a/nixpkgs/pkgs/development/python-modules/gspread/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gspread/default.nix
@@ -7,12 +7,12 @@
 , pytest-vcr
 , pytestCheckHook
 , pythonOlder
-, requests
+, strenum
 }:
 
 buildPythonPackage rec {
   pname = "gspread";
-  version = "5.12.4";
+  version = "6.0.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "burnash";
     repo = "gspread";
     rev = "refs/tags/v${version}";
-    hash = "sha256-i+QbnF0Y/kUMvt91Wzb8wseO/1rZn9xzeA5BWg1haks=";
+    hash = "sha256-NY6Q45/XuidDUeBG0QfVaStwp2+BqMSgefDifHu2erU=";
   };
 
   nativeBuildInputs = [
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     google-auth
     google-auth-oauthlib
-    requests
+    strenum
   ];
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/gto/default.nix b/nixpkgs/pkgs/development/python-modules/gto/default.nix
index 80f41bb4d683..79347e1ce3d8 100644
--- a/nixpkgs/pkgs/development/python-modules/gto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gto/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "gto";
-  version = "1.6.2";
+  version = "1.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -32,14 +32,14 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = "gto";
     rev = "refs/tags/${version}";
-    hash = "sha256-1+Owhp2otGC/FIdsSz+4vn0sZR696+zOMGNDvjM6KH8=";
+    hash = "sha256-fUi+/PW05EvgTnoEv1Im1BjZ07VzpZhyW0EjhLUqJGI=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace ', "setuptools_scm_git_archive==1.4.1"' ""
+      --replace-fail ', "setuptools_scm_git_archive==1.4.1"' ""
     substituteInPlace setup.cfg \
-      --replace " --cov=gto --cov-report=term-missing --cov-report=xml" ""
+      --replace-fail " --cov=gto --cov-report=term-missing --cov-report=xml" ""
   '';
 
   nativeBuildInputs = [
@@ -92,5 +92,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/iterative/gto/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "gto";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/gtts/default.nix b/nixpkgs/pkgs/development/python-modules/gtts/default.nix
index 0b08a400888f..d53fd34abd69 100644
--- a/nixpkgs/pkgs/development/python-modules/gtts/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gtts/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
 , beautifulsoup4
 , click
 , gtts-token
@@ -25,7 +26,11 @@ buildPythonPackage rec {
     hash = "sha256-CCxD73fpHGsO4zSifWLQtgDkbPvPEnA2357umhOCNoI=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     beautifulsoup4
     click
     gtts-token
@@ -47,6 +52,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python library and CLI tool to interface with Google Translate text-to-speech API";
+    mainProgram = "gtts-cli";
     homepage = "https://gtts.readthedocs.io";
     changelog = "https://gtts.readthedocs.io/en/latest/changelog.html";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/guessit/default.nix b/nixpkgs/pkgs/development/python-modules/guessit/default.nix
index 4e9fbe4bab23..fce9cc928b51 100644
--- a/nixpkgs/pkgs/development/python-modules/guessit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/guessit/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python library that extracts as much information as possible from a video filename";
+    mainProgram = "guessit";
     homepage = "https://guessit-io.github.io/guessit/";
     changelog = "https://github.com/guessit-io/guessit/raw/v${version}/CHANGELOG.md";
     license = licenses.lgpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/guidance/default.nix b/nixpkgs/pkgs/development/python-modules/guidance/default.nix
index a8d382310d60..732a107f2a39 100644
--- a/nixpkgs/pkgs/development/python-modules/guidance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/guidance/default.nix
@@ -8,22 +8,24 @@
 , wheel
 , aiohttp
 , diskcache
+, fastapi
 , gptcache
 , msal
-, nest-asyncio
 , numpy
 , openai
 , ordered-set
 , platformdirs
+, protobuf
 , pyformlang
 , requests
 , tiktoken
 , torch
+, uvicorn
 }:
 
 buildPythonPackage rec {
   pname = "guidance";
-  version = "0.1.6";
+  version = "0.1.11";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -32,28 +34,33 @@ buildPythonPackage rec {
     owner = "guidance-ai";
     repo = "guidance";
     rev = "refs/tags/${version}";
-    hash = "sha256-Z3EuHAQPPXf/i0HnbDhGv5KBUBP0aZDHTwpff7g2E3g=";
+    hash = "sha256-dvIJeSur3DdNBhrEPNPghxqmDEEig59Iz83LWksim6U=";
   };
 
   nativeBuildInputs = [
     pybind11
+  ];
+
+  build-system = [
     setuptools
     wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     diskcache
+    fastapi
     gptcache
     msal
-    nest-asyncio
     numpy
     openai
     ordered-set
     platformdirs
+    protobuf
     pyformlang
     requests
     tiktoken
+    uvicorn
   ];
 
   nativeCheckInputs = [
@@ -86,6 +93,8 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "guidance" ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "A guidance language for controlling large language models";
     homepage = "https://github.com/guidance-ai/guidance";
diff --git a/nixpkgs/pkgs/development/python-modules/gurobipy/darwin.nix b/nixpkgs/pkgs/development/python-modules/gurobipy/darwin.nix
index 3bd3b3b2a329..ec74f46c180a 100644
--- a/nixpkgs/pkgs/development/python-modules/gurobipy/darwin.nix
+++ b/nixpkgs/pkgs/development/python-modules/gurobipy/darwin.nix
@@ -1,33 +1,49 @@
-{ fetchurl, python, xar, cpio, cctools, insert_dylib }:
-assert python.pkgs.isPy27 && python.ucsEncoding == 2;
-python.pkgs.buildPythonPackage
-  { pname = "gurobipy";
-    version = "7.5.2";
-    src = fetchurl
-      { url = "http://packages.gurobi.com/7.5/gurobi7.5.2_mac64.pkg";
-        sha256 = "10zgn8741x48xjdiknj59x66mwj1azhihi1j5a1ajxi2n5fsak2h";
-      };
-    buildInputs = [ xar cpio cctools insert_dylib ];
-    unpackPhase =
-      ''
-        xar -xf $src
-        zcat gurobi*mac64tar.pkg/Payload | cpio -i
-        tar xf gurobi*_mac64.tar.gz
-        sourceRoot=$(echo gurobi*/*64)
-        runHook postUnpack
-      '';
-    patches = [ ./no-clever-setup.patch ];
-    postInstall = "mv lib/lib*.so $out/lib";
-    postFixup =
-      ''
-        install_name_tool -change \
-          /System/Library/Frameworks/Python.framework/Versions/2.7/Python \
-          ${python}/lib/libpython2.7.dylib \
-          $out/lib/python2.7/site-packages/gurobipy/gurobipy.so
-        install_name_tool -change /Library/gurobi752/mac64/lib/libgurobi75.so \
-          $out/lib/libgurobi75.so \
-          $out/lib/python2.7/site-packages/gurobipy/gurobipy.so
-        insert_dylib --inplace $out/lib/libaes75.so \
-          $out/lib/python2.7/site-packages/gurobipy/gurobipy.so
-      '';
-  }
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  python,
+  fetchPypi,
+}:
+
+let
+  format = "wheel";
+  pyShortVersion = "cp" + builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
+  platforms = rec {
+    aarch64-darwin = "macosx_10_9_universal2";
+    x86_64-darwin = aarch64-darwin;
+  };
+  platform = platforms.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
+  hashes = rec {
+    cp311-aarch64-darwin = "sha256-pMwq4TXvr0mrKxZppeW2MQE/KrplWWFGmjKRLKwbHCI=";
+    cp311-x86_64-darwin = cp311-aarch64-darwin;
+    cp312-aarch64-darwin = "sha256-5+1QxYOhjbs01S3gqhkQ9Bx/0/NhbXEi710BGpiC5kM=";
+    cp312-x86_64-darwin = cp312-aarch64-darwin;
+  };
+  hash =
+    hashes."${pyShortVersion}-${stdenv.system}"
+      or (throw "Unsupported Python version: ${python.pythonVersion}");
+in
+buildPythonPackage rec {
+  pname = "gurobipy";
+  version = "11.0.1";
+  inherit format;
+
+  src = fetchPypi {
+    inherit pname version;
+    python = pyShortVersion;
+    abi = pyShortVersion;
+    dist = pyShortVersion;
+    inherit format platform hash;
+  };
+
+  pythonImportsCheck = [ "gurobipy" ];
+
+  meta = {
+    description = "Python interface to Gurobi";
+    homepage = "https://www.gurobi.com";
+    license = lib.licenses.unfree;
+    maintainers = with lib.maintainers; [ wegank ];
+    platforms = builtins.attrNames platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/gvm-tools/default.nix b/nixpkgs/pkgs/development/python-modules/gvm-tools/default.nix
index cd6a4bfcd25b..59d0da14b17d 100644
--- a/nixpkgs/pkgs/development/python-modules/gvm-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gvm-tools/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "gvm-tools";
-  version = "24.1.0";
+  version = "24.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "greenbone";
     repo = "gvm-tools";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4uYOhsnprYybt5EB/b4LW8/9cn0Nahc1lYQ+DwPNlOU=";
+    hash = "sha256-LLXMdT1q6IWsbsRjflpGN5pcjUCXWzdFK3gMw4mBm0U=";
   };
 
   __darwinAllowLocalNetworking = true;
diff --git a/nixpkgs/pkgs/development/python-modules/gymnasium/default.nix b/nixpkgs/pkgs/development/python-modules/gymnasium/default.nix
index 6e9e33913fb7..ca7ba30927ab 100644
--- a/nixpkgs/pkgs/development/python-modules/gymnasium/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gymnasium/default.nix
@@ -20,6 +20,7 @@
 , pygame
 , pytestCheckHook
 , scipy
+, stdenv
 }:
 
 buildPythonPackage rec {
@@ -60,6 +61,12 @@ buildPythonPackage rec {
     scipy
   ];
 
+  # if `doCheck = true` on Darwin, `jaxlib` is evaluated, which is both
+  # marked as broken and throws an error during evaluation if the package is evaluated anyway.
+  # disabling checks on Darwin avoids this and allows the package to be built.
+  # if jaxlib is ever fixed on Darwin, remove this.
+  doCheck = !stdenv.isDarwin;
+
   disabledTestPaths = [
     # mujoco is required for those tests but the mujoco python bindings are not packaged in nixpkgs.
     "tests/envs/mujoco/test_mujoco_custom_env.py"
diff --git a/nixpkgs/pkgs/development/python-modules/gyp/default.nix b/nixpkgs/pkgs/development/python-modules/gyp/default.nix
index 81726be3ca6c..50e60cfe7bfd 100644
--- a/nixpkgs/pkgs/development/python-modules/gyp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gyp/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "A tool to generate native build files";
+    mainProgram = "gyp";
     homepage = "https://gyp.gsrc.io";
     license = licenses.bsd3;
     maintainers = with maintainers; [ codyopel ];
diff --git a/nixpkgs/pkgs/development/python-modules/h3/default.nix b/nixpkgs/pkgs/development/python-modules/h3/default.nix
index f5413e544843..64be91a04fd9 100644
--- a/nixpkgs/pkgs/development/python-modules/h3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/h3/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "h3";
-  version = "3.7.6";
+  version = "3.7.7";
   format = "setuptools";
 
   # pypi version does not include tests
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "uber";
     repo = "h3-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-QNiuiHJ4IMxpi39iobPSSlYUUj5oxpxO4B2+HXVQ/Zk=";
+    hash = "sha256-wXQaSMXQI0f7zfyj37mubxdqGFv7vhHQd6rH08H57d4=";
   };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix b/nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix
index 0da05c75f2db..5a11243d594e 100644
--- a/nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ha-ffmpeg/default.nix
@@ -3,20 +3,25 @@
 , fetchPypi
 , pythonOlder
 , async-timeout
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "ha-ffmpeg";
-  version = "3.1.0";
-  format = "setuptools";
+  version = "3.2.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sheNYtmp1panthglpEqJTdaCgGBTUJRswikl5hu9k7s=";
+    hash = "sha256-FW8WlrhVL+ryupHAKii8fKBku/6uxdw1uLCKUszkP50=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     async-timeout
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/habitipy/default.nix b/nixpkgs/pkgs/development/python-modules/habitipy/default.nix
index 5e01610d6965..5ec42c4df5e4 100644
--- a/nixpkgs/pkgs/development/python-modules/habitipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/habitipy/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tools and library for Habitica restful API";
+    mainProgram = "habitipy";
     homepage = "https://github.com/ASMfreaK/habitipy";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/hacking/default.nix b/nixpkgs/pkgs/development/python-modules/hacking/default.nix
index 5a01f5246f85..cd121822e651 100644
--- a/nixpkgs/pkgs/development/python-modules/hacking/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hacking/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "hacking";
-  version = "6.0.1";
+  version = "6.1.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-YdeEb8G58m7CFnjpkHQmkJX5ZNe72M1kbrbIxML4jcE=";
+    hash = "sha256-3lBqMSQDThi046acld5JjDRgvLxJwWQ9MXjRW8barBQ=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/hahomematic/default.nix b/nixpkgs/pkgs/development/python-modules/hahomematic/default.nix
index 2a78e7c96d37..dae2aae43bf2 100644
--- a/nixpkgs/pkgs/development/python-modules/hahomematic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hahomematic/default.nix
@@ -2,7 +2,6 @@
 , aiohttp
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , freezegun
 , orjson
 , pydevccu
@@ -19,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "hahomematic";
-  version = "2024.3.0";
+  version = "2024.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -28,19 +27,9 @@ buildPythonPackage rec {
     owner = "danielperna84";
     repo = "hahomematic";
     rev = "refs/tags/${version}";
-    hash = "sha256-zSGzdj51StlLMmFZzprQUn6Ry9ahJPUq/Z9hVlKn8oA=";
+    hash = "sha256-/ulqUyplNu8YTHJKcfNPYzyzPvGkLFtoJDu5SqvfQrs=";
   };
 
-  patches = [
-    # Update pydevccu, extend ruff usage
-    # https://github.com/danielperna84/hahomematic/pull/1454
-    (fetchpatch {
-      url = "https://github.com/danielperna84/hahomematic/commit/81a9a1c9291e2271ac0b995e7dd4725cfe99c7fe.patch";
-      includes = [ "tests/test_central_pydevccu.py" ];
-      hash = "sha256-l/wNK0/nOZHyrFp+in3ozmMyN5ifo514esGPJVZlb1g=";
-    })
-  ];
-
   __darwinAllowLocalNetworking = true;
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix b/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
index 3730f653ead1..9ee4c0e3f968 100644
--- a/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -8,6 +8,7 @@
 , cryptography
 , fetchFromGitHub
 , pycognito
+, pyjwt
 , pytest-aiohttp
 , pytest-timeout
 , pytestCheckHook
@@ -21,16 +22,16 @@
 
 buildPythonPackage rec {
   pname = "hass-nabucasa";
-  version = "0.78.0";
+  version = "0.79.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.10";
+  disabled = pythonOlder "3.11";
 
   src = fetchFromGitHub {
     owner = "nabucasa";
-    repo = pname;
+    repo = "hass-nabucasa";
     rev = "refs/tags/${version}";
-    hash = "sha256-ZqBYmh+MA4ZuhnUQPn/C8d7CVPrwp6mirsWnoB/ZMFw=";
+    hash = "sha256-7VhafefF7imvnhdFo6K+18h5kmXvIatKerJ+Qn5zwdQ=";
   };
 
   nativeBuildInputs = [
@@ -50,6 +51,7 @@ buildPythonPackage rec {
     ciso8601
     cryptography
     pycognito
+    pyjwt
     snitun
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/hassil/default.nix b/nixpkgs/pkgs/development/python-modules/hassil/default.nix
index 229abe5f4a52..98c4181d48c2 100644
--- a/nixpkgs/pkgs/development/python-modules/hassil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hassil/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage {
   meta = with lib; {
     changelog  = "https://github.com/home-assistant/hassil/blob/v${version}/CHANGELOG.md";
     description = "Intent parsing for Home Assistant";
+    mainProgram = "hassil";
     homepage = "https://github.com/home-assistant/hassil";
     license = licenses.asl20;
     maintainers = teams.home-assistant.members;
diff --git a/nixpkgs/pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix b/nixpkgs/pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix
index 63789c90debd..b3f71b73eed3 100644
--- a/nixpkgs/pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "hatch-fancy-pypi-readme";
-  version = "23.1.0";
+  version = "24.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "hatch_fancy_pypi_readme";
     inherit version;
-    hash = "sha256-sd9EBjCUrx6CSM6s1HqSyc8xPWuYI79mr4qSfDlgKH0=";
+    hash = "sha256-RN0jnxp3m53PjryUAaYR/X9+PhRXjc8iwmXfr3wVFLg=";
   };
 
   nativeBuildInputs = [
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Fancy PyPI READMEs with Hatch";
+    mainProgram = "hatch-fancy-pypi-readme";
     homepage = "https://github.com/hynek/hatch-fancy-pypi-readme";
     license = licenses.mit;
     maintainers = with maintainers; [ tjni ];
diff --git a/nixpkgs/pkgs/development/python-modules/hatch-jupyter-builder/default.nix b/nixpkgs/pkgs/development/python-modules/hatch-jupyter-builder/default.nix
index fe641977812f..cc9b2c18fd14 100644
--- a/nixpkgs/pkgs/development/python-modules/hatch-jupyter-builder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hatch-jupyter-builder/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/jupyterlab/hatch-jupyter-builder/releases/tag/v${version}";
     description = "hatch plugin to help build Jupyter packages";
+    mainProgram = "hatch-jupyter-builder";
     homepage = "https://github.com/jupyterlab/hatch-jupyter-builder";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/hatchling/default.nix b/nixpkgs/pkgs/development/python-modules/hatchling/default.nix
index 6dca631c967e..49af4f0fb0ff 100644
--- a/nixpkgs/pkgs/development/python-modules/hatchling/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hatchling/default.nix
@@ -67,6 +67,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Modern, extensible Python build backend";
+    mainProgram = "hatchling";
     homepage = "https://hatch.pypa.io/latest/";
     changelog = "https://github.com/pypa/hatch/releases/tag/hatchling-v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/helpdev/default.nix b/nixpkgs/pkgs/development/python-modules/helpdev/default.nix
index b03b3320153c..160797c9327c 100644
--- a/nixpkgs/pkgs/development/python-modules/helpdev/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/helpdev/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Extracts information about the Python environment easily";
+    mainProgram = "helpdev";
     license = lib.licenses.mit;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/hetzner/default.nix b/nixpkgs/pkgs/development/python-modules/hetzner/default.nix
index ea29c27563d8..07b8f0ed2d42 100644
--- a/nixpkgs/pkgs/development/python-modules/hetzner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hetzner/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/RedMoonStudios/hetzner";
     description = "High-level Python API for accessing the Hetzner robot";
+    mainProgram = "hetznerctl";
     license = licenses.bsd3;
     maintainers = with maintainers; [ aszlig ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/heudiconv/default.nix b/nixpkgs/pkgs/development/python-modules/heudiconv/default.nix
index e8ce48aab0ad..9c78027e0a83 100644
--- a/nixpkgs/pkgs/development/python-modules/heudiconv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/heudiconv/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "heudiconv";
-  version = "1.0.1";
+  version = "1.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KMEvuxRFFbnyAez+cpcHKDDXdrHfeZcqlGNwy8RWTxg=";
+    hash = "sha256-zRLRdP3LpytHCTrehhPYMmJnss5v6ojjkIPuB8fKR5w=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix b/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
index c742b0a57e66..92235b6ce58a 100644
--- a/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "hg-evolve";
-  version = "11.1.1";
+  version = "11.1.2";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-HFZN/JJQPlVB57xcUUxyXrrD4EqPg9vYCRAa4PAQHow=";
+    hash = "sha256-ug+T1sRSB+J5FyqzdTR7xZtvybhdzBZYI7g4rX14DHo=";
   };
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/hg-git/default.nix b/nixpkgs/pkgs/development/python-modules/hg-git/default.nix
index 1e1803c9061f..86145ee03ab4 100644
--- a/nixpkgs/pkgs/development/python-modules/hg-git/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hg-git/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "hg-git";
-  version = "1.1.0";
+  version = "1.1.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-btEamGLqCC5PRigxHbe49/bnJNVGm6Czf852JaAdB38=";
+    hash = "sha256-r04Q6zbt8VM1jYkoGOdJZqKPPxXy4jC1X1d9nJ+fEWY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/hid-parser/default.nix b/nixpkgs/pkgs/development/python-modules/hid-parser/default.nix
index 56aeb503b49c..15b7f3c587f3 100644
--- a/nixpkgs/pkgs/development/python-modules/hid-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hid-parser/default.nix
@@ -25,6 +25,10 @@ buildPythonPackage rec {
     hypothesis
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   pythonImportsCheck = [ "hid_parser" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/hiredis/default.nix b/nixpkgs/pkgs/development/python-modules/hiredis/default.nix
index c6bb5e7d8015..2408fa2d7e1c 100644
--- a/nixpkgs/pkgs/development/python-modules/hiredis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hiredis/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "hiredis";
-  version = "2.3.0";
+  version = "2.3.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     repo = "hiredis-py";
     rev = "refs/tags/v${version}";
     fetchSubmodules = true;
-    hash = "sha256-OT8zFEHKSAebXV+VzagZDJRPidAhSrqvD2/F1YezVGs=";
+    hash = "sha256-7hTGXHNECy+dSsop0ULsNZvGFecCIEv+q46s7t/K7k8=";
   };
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/hishel/default.nix b/nixpkgs/pkgs/development/python-modules/hishel/default.nix
index 4f8dae862c55..2deba68019e5 100644
--- a/nixpkgs/pkgs/development/python-modules/hishel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hishel/default.nix
@@ -69,6 +69,12 @@ buildPythonPackage rec {
     "test_redis"
   ];
 
+  disabledTestPaths = [
+    # ImportError: cannot import name 'mock_s3' from 'moto'
+    "tests/_async/test_storages.py"
+    "tests/_sync/test_storages.py"
+  ];
+
   meta = with lib; {
     description = "HTTP Cache implementation for HTTPX and HTTP Core";
     homepage = "https://github.com/karpetrosyan/hishel";
diff --git a/nixpkgs/pkgs/development/python-modules/hist/default.nix b/nixpkgs/pkgs/development/python-modules/hist/default.nix
index 8d47c7de0f73..17bca6ecb8fa 100644
--- a/nixpkgs/pkgs/development/python-modules/hist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hist/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Histogramming for analysis powered by boost-histogram";
+    mainProgram = "hist";
     homepage = "https://hist.readthedocs.io/";
     changelog = "https://github.com/scikit-hep/hist/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/histoprint/default.nix b/nixpkgs/pkgs/development/python-modules/histoprint/default.nix
index 66f06feac946..94f38aacb674 100644
--- a/nixpkgs/pkgs/development/python-modules/histoprint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/histoprint/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Pretty print histograms to the console";
+    mainProgram = "histoprint";
     homepage = "https://github.com/scikit-hep/histoprint";
     license = licenses.mit;
     maintainers = with maintainers; [ veprbl ];
diff --git a/nixpkgs/pkgs/development/python-modules/hjson/default.nix b/nixpkgs/pkgs/development/python-modules/hjson/default.nix
index 6b606297813d..44aa789f0d04 100644
--- a/nixpkgs/pkgs/development/python-modules/hjson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hjson/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A user interface for JSON";
+    mainProgram = "hjson";
     homepage = "https://github.com/hjson/hjson-py";
     license = licenses.mit;
     maintainers = with maintainers; [ bhipple ];
diff --git a/nixpkgs/pkgs/development/python-modules/hmmlearn/default.nix b/nixpkgs/pkgs/development/python-modules/hmmlearn/default.nix
index a7c673c38cad..84014ba12899 100644
--- a/nixpkgs/pkgs/development/python-modules/hmmlearn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hmmlearn/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "hmmlearn";
-  version = "0.3.0";
+  version = "0.3.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0TqR6jaV34gUZePTYTLX7vToTUg/S6U4pLRuJLXqEA8=";
+    hash = "sha256-7a9IX9seqI2prGQrIAbGPZlQ3RXU0TL3IFMF04Pm90U=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/hologram/default.nix b/nixpkgs/pkgs/development/python-modules/hologram/default.nix
index 005834fc99b8..30f50456bad9 100644
--- a/nixpkgs/pkgs/development/python-modules/hologram/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hologram/default.nix
@@ -5,6 +5,7 @@
 , jsonschema
 , pytestCheckHook
 , python-dateutil
+, pythonRelaxDepsHook
 , setuptools
 , wheel
 }:
@@ -31,6 +32,7 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
+    pythonRelaxDepsHook
     setuptools
     wheel
   ];
@@ -44,6 +46,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pythonRelaxDeps = [
+    "python-dateutil"
+  ];
+
   pythonImportsCheck = [
     "hologram"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/holoviews/default.nix b/nixpkgs/pkgs/development/python-modules/holoviews/default.nix
index 74f7b2dd9deb..03e4d80a4dfa 100644
--- a/nixpkgs/pkgs/development/python-modules/holoviews/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/holoviews/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python data analysis and visualization seamless and simple";
+    mainProgram = "holoviews";
     homepage = "https://www.holoviews.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix b/nixpkgs/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
index 6ffdda58a6ce..969bc3a9533c 100644
--- a/nixpkgs/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-chip-clusters";
-  version = "2024.2.1";
+  version = "2024.2.2";
   format = "wheel";
 
   src = fetchPypi {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     pname = "home_assistant_chip_clusters";
     dist = "py3";
     python = "py3";
-    hash = "sha256-QMsfs9gUWeaz1LfMZF5J2OFVCPnuckZvvF9x5bQ5uZY=";
+    hash = "sha256-OWDOJfVQJSJFng5xAQqBNpqB0nXnYVCTq1MwyPtwfIM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/home-assistant-chip-core/default.nix b/nixpkgs/pkgs/development/python-modules/home-assistant-chip-core/default.nix
index b3d5a232c10a..b7ca71bbb257 100644
--- a/nixpkgs/pkgs/development/python-modules/home-assistant-chip-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/home-assistant-chip-core/default.nix
@@ -28,7 +28,7 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-chip-core";
-  version = "2024.2.1";
+  version = "2024.2.2";
   format = "wheel";
 
   disabled = pythonOlder "3.7";
@@ -37,11 +37,11 @@ buildPythonPackage rec {
     system = {
       "aarch64-linux" = {
         name = "aarch64";
-        hash = "sha256-gHnTuiyCD9A9Ru8xhniNEpCyn+W9zYnCAoTJeGOW7TI=";
+        hash = "sha256-lo6upkkZYQCtggNU+4/S/JTUqJnAWaWFA6NTt4C2gEM=";
       };
       "x86_64-linux" = {
         name = "x86_64";
-        hash = "sha256-gKZKcCXQ8PvZAPV2QRQl+u+r95CVLBDDDgtC0MT7xw4=";
+        hash = "sha256-VwiIH/PK4fOQCc+KSHXP1VwHVK1gYnmBXTgKDT1Yt58=";
       };
     }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
   in fetchPypi {
diff --git a/nixpkgs/pkgs/development/python-modules/homeassistant-bring-api/default.nix b/nixpkgs/pkgs/development/python-modules/homeassistant-bring-api/default.nix
index 47730748ae1a..2912e26f5c80 100644
--- a/nixpkgs/pkgs/development/python-modules/homeassistant-bring-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/homeassistant-bring-api/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "homeassistant-bring-api";
-  version = "0.1.0";
+  version = "0.5.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "miaucl";
     repo = "homeassistant-bring-api";
     rev = "refs/tags/${version}";
-    hash = "sha256-EQ1Qv4B7axwERKvuMnLizpfA6jRNf/SyB6ktQ2BjFtM=";
+    hash = "sha256-vfc4xKLeGF2FuBFwqU99qbkUDBK5Uz66S4F2ODRDPa8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/homematicip/default.nix b/nixpkgs/pkgs/development/python-modules/homematicip/default.nix
index ca5355fcb9a8..4de61606e0c6 100644
--- a/nixpkgs/pkgs/development/python-modules/homematicip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/homematicip/default.nix
@@ -6,6 +6,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pytestCheckHook
+, pytest_7
 , pythonAtLeast
 , pythonOlder
 , pytest-aiohttp
@@ -49,7 +50,7 @@ buildPythonPackage rec {
     aiohttp-wsgi
     pytest-aiohttp
     pytest-asyncio
-    pytestCheckHook
+    (pytestCheckHook.override { pytest = pytest_7; })
   ];
 
   pytestFlagsArray = [
diff --git a/nixpkgs/pkgs/development/python-modules/hpccm/default.nix b/nixpkgs/pkgs/development/python-modules/hpccm/default.nix
index 99a0c42b8fa8..35380d7171b6 100644
--- a/nixpkgs/pkgs/development/python-modules/hpccm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hpccm/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "HPC Container Maker";
+    mainProgram = "hpccm";
     homepage = "https://github.com/NVIDIA/hpc-container-maker";
     license = licenses.asl20;
     platforms = platforms.x86;
diff --git a/nixpkgs/pkgs/development/python-modules/html-sanitizer/default.nix b/nixpkgs/pkgs/development/python-modules/html-sanitizer/default.nix
index c859952214ef..e1ecf2764e4f 100644
--- a/nixpkgs/pkgs/development/python-modules/html-sanitizer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/html-sanitizer/default.nix
@@ -10,16 +10,16 @@
 
 buildPythonPackage rec {
   pname = "html-sanitizer";
-  version = "2.3";
-  format = "pyproject";
+  version = "2.3.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "matthiask";
-    repo = pname;
+    repo = "html-sanitizer";
     rev = "refs/tags/${version}";
-    hash = "sha256-lQ8E3hdHX0YR3HJUTz1pVBegLo4lhvyiylLVFMDY1+s=";
+    hash = "sha256-NWJLD70783Ie6efyCvGopxMIlP3rLz0uM/D1rLQwBXE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/html2text/default.nix b/nixpkgs/pkgs/development/python-modules/html2text/default.nix
index 37843196c9cb..bda7879eab0a 100644
--- a/nixpkgs/pkgs/development/python-modules/html2text/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/html2text/default.nix
@@ -3,28 +3,36 @@
 , fetchFromGitHub
 , pythonOlder
 , pytestCheckHook
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "html2text";
-  version = "2020.1.16";
-  format = "setuptools";
-  disabled = pythonOlder "3.5";
+  version = "2024.2.26";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Alir3z4";
-    repo = pname;
-    rev = version;
-    sha256 = "1y924clp2hiqg3a9437z808p29mqcx537j5fmz71plx8qrcm5jf9";
+    repo = "html2text";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-1CLkTFR+/XQ428WjMF7wliyAG6CB+n8JSsLDdLHPO7I=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "html2text" ];
 
   meta = with lib; {
+    changelog = "https://github.com/Alir3z4/html2text/blob/${src.rev}/ChangeLog.rst";
     description = "Turn HTML into equivalent Markdown-structured text";
     homepage = "https://github.com/Alir3z4/html2text/";
     license = licenses.gpl3Only;
+    mainProgram = "html2text";
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/htmldate/default.nix b/nixpkgs/pkgs/development/python-modules/htmldate/default.nix
index 5226a7eb7634..68602cb2cdc9 100644
--- a/nixpkgs/pkgs/development/python-modules/htmldate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/htmldate/default.nix
@@ -1,28 +1,34 @@
 { lib
+, backports-datetime-fromisoformat
 , buildPythonPackage
-, fetchPypi
-, pythonOlder
 , charset-normalizer
 , dateparser
+, faust-cchardet
+, fetchPypi
 , lxml
 , pytestCheckHook
 , python-dateutil
+, pythonOlder
+, setuptools
 , urllib3
-, backports-datetime-fromisoformat
 }:
 
 buildPythonPackage rec {
   pname = "htmldate";
-  version = "1.7.0";
-  format = "setuptools";
+  version = "1.8.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-AqgA3SJMv3S/SDsEL2ThT1e6DkDGtEBLKE6YvGwwto0=";
+    hash = "sha256-+Ux9AX9Coc9CLlp8XvEMrLridohjFPJ6mGRkYn8wuxU=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     charset-normalizer
     dateparser
@@ -33,6 +39,21 @@ buildPythonPackage rec {
     backports-datetime-fromisoformat
   ];
 
+  passthru.optional-dependencies = {
+    speed = [
+      faust-cchardet
+      urllib3
+    ] ++ lib.optionals (pythonOlder "3.11") [
+      backports-datetime-fromisoformat
+    ] ++ urllib3.optional-dependencies.brotli;
+    all = [
+      faust-cchardet
+      urllib3
+    ] ++ lib.optionals (pythonOlder "3.11") [
+      backports-datetime-fromisoformat
+    ] ++ urllib3.optional-dependencies.brotli;
+  };
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
@@ -44,13 +65,16 @@ buildPythonPackage rec {
     "test_download"
   ];
 
-  pythonImportsCheck = [ "htmldate" ];
+  pythonImportsCheck = [
+    "htmldate"
+  ];
 
   meta = with lib; {
-    description = "Fast and robust extraction of original and updated publication dates from URLs and web pages";
+    description = "Module for the extraction of original and updated publication dates from URLs and web pages";
     homepage = "https://htmldate.readthedocs.io";
     changelog = "https://github.com/adbar/htmldate/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jokatzke ];
+    mainProgram = "htmldate";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/htmllistparse/default.nix b/nixpkgs/pkgs/development/python-modules/htmllistparse/default.nix
index ae13f6585a1d..01fa41eae2fe 100644
--- a/nixpkgs/pkgs/development/python-modules/htmllistparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/htmllistparse/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/gumblex/htmllisting-parser";
     description = "Python parser for Apache/nginx-style HTML directory listing";
+    mainProgram = "rehttpfs";
     license = licenses.mit;
     maintainers = with maintainers; [ hexchen ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/htmlmin/default.nix b/nixpkgs/pkgs/development/python-modules/htmlmin/default.nix
index 9be7dd90abd6..0f0d5222feae 100644
--- a/nixpkgs/pkgs/development/python-modules/htmlmin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/htmlmin/default.nix
@@ -14,6 +14,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A configurable HTML Minifier with safety features";
+    mainProgram = "htmlmin";
     homepage = "https://pypi.python.org/pypi/htmlmin";
     license = licenses.bsd3;
     maintainers = [];
diff --git a/nixpkgs/pkgs/development/python-modules/httpbin/default.nix b/nixpkgs/pkgs/development/python-modules/httpbin/default.nix
index 0fbc8bc73ee9..076babe49b46 100644
--- a/nixpkgs/pkgs/development/python-modules/httpbin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpbin/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 , pythonRelaxDepsHook
 
 # build-system
@@ -26,22 +25,14 @@
 
 buildPythonPackage rec {
   pname = "httpbin";
-  version = "0.10.1";
+  version = "0.10.2";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-e4WWvrDnWntlPDnR888mPW1cR20p4d9ve7K3C/nwaj0=";
+    hash = "sha256-YyFIaYJhyGhOotK2JM3qhFtAKx/pFzbonfiGQIxjF6k=";
   };
 
-  patches = [
-    (fetchpatch {
-      # backport flask 3.0 support; drop after 0.10.1
-      url = "https://github.com/psf/httpbin/commit/c1d9e33049263fed3cb27806a97f094acc350905.patch";
-      hash = "sha256-SYJgQN3ERDgLIaBc4eqDfey+EX4z6CSxLoAA7j+16xI=";
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools
     pythonRelaxDepsHook
diff --git a/nixpkgs/pkgs/development/python-modules/httpserver/default.nix b/nixpkgs/pkgs/development/python-modules/httpserver/default.nix
index 58d6c48c4e8a..6d1374075886 100644
--- a/nixpkgs/pkgs/development/python-modules/httpserver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpserver/default.nix
@@ -21,6 +21,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Asyncio implementation of an HTTP server";
+    mainProgram = "httpserver";
     homepage = "https://github.com/thomwiggers/httpserver";
     license = with lib.licenses; [ bsd3 ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/httpx-auth/default.nix b/nixpkgs/pkgs/development/python-modules/httpx-auth/default.nix
index a21e05a567ef..5fc267bfb25f 100644
--- a/nixpkgs/pkgs/development/python-modules/httpx-auth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpx-auth/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "httpx-auth";
-  version = "0.21.0";
+  version = "0.22.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Colin-b";
     repo = "httpx_auth";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tKEYFoIHxiBG18JWyCHzQEwUvrWk/zuCWqj1uYsmh84=";
+    hash = "sha256-7azPyep+R55CdRwbdo20y4YNV47c8CwXgOj4q4t25oc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/httpx/default.nix b/nixpkgs/pkgs/development/python-modules/httpx/default.nix
index 9641597a516d..5c6a296820be 100644
--- a/nixpkgs/pkgs/development/python-modules/httpx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpx/default.nix
@@ -30,7 +30,7 @@
 
 buildPythonPackage rec {
   pname = "httpx";
-  version = "0.26.0";
+  version = "0.27.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     owner = "encode";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-qMMx1CYu2/yH4NRvZFzJOflAPIbcvMYJqU4r+chuzl0=";
+    hash = "sha256-13EnSzrCkseK6s6Yz9OpLzqo/2PTFiB31m5fAIJLoZg=";
   };
 
   nativeBuildInputs = [
@@ -118,6 +118,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/encode/httpx/blob/${src.rev}/CHANGELOG.md";
     description = "The next generation HTTP client";
+    mainProgram = "httpx";
     homepage = "https://github.com/encode/httpx";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/huggingface-hub/default.nix b/nixpkgs/pkgs/development/python-modules/huggingface-hub/default.nix
index f206bebc4e1b..29786a67e187 100644
--- a/nixpkgs/pkgs/development/python-modules/huggingface-hub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/huggingface-hub/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Download and publish models and other files on the huggingface.co hub";
+    mainProgram = "huggingface-cli";
     homepage = "https://github.com/huggingface/huggingface_hub";
     changelog = "https://github.com/huggingface/huggingface_hub/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix b/nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix
index 5d0dbd1763da..d8a3fa92e483 100644
--- a/nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Human friendly output for text interfaces using Python";
+    mainProgram = "humanfriendly";
     homepage = "https://humanfriendly.readthedocs.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ montag451 ];
diff --git a/nixpkgs/pkgs/development/python-modules/hupper/default.nix b/nixpkgs/pkgs/development/python-modules/hupper/default.nix
index b0650310cc14..315370de4c2c 100644
--- a/nixpkgs/pkgs/development/python-modules/hupper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hupper/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "hupper";
-  version = "1.12";
+  version = "1.12.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GLFlPZgyyfjn00AZhsfnryrmeDYWvgvEBr/gsUE0pcY=";
+    hash = "sha256-Br9UFw/07PTIStXxiN7jkBFzq0ScJgitBbm/1rE+Mus=";
   };
 
   # FIXME: watchdog dependency is disabled on Darwin because of #31865, which causes very silent
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "In-process file monitor/reloader for reloading your code automatically during development";
+    mainProgram = "hupper";
     homepage = "https://github.com/Pylons/hupper";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/hydra-check/default.nix b/nixpkgs/pkgs/development/python-modules/hydra-check/default.nix
index 4da98f083c37..78e96dea26ce 100644
--- a/nixpkgs/pkgs/development/python-modules/hydra-check/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hydra-check/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "check hydra for the build status of a package";
+    mainProgram = "hydra-check";
     homepage = "https://github.com/nix-community/hydra-check";
     license = licenses.mit;
     maintainers = with maintainers; [ makefu artturin ];
diff --git a/nixpkgs/pkgs/development/python-modules/hydra-core/default.nix b/nixpkgs/pkgs/development/python-modules/hydra-core/default.nix
index 436a4e7e6213..fb73910aaf1f 100644
--- a/nixpkgs/pkgs/development/python-modules/hydra-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hydra-core/default.nix
@@ -64,11 +64,17 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::UserWarning"
+  ];
+
   # Test environment setup broken under Nix for a few tests:
   disabledTests = [
     "test_bash_completion_with_dot_in_path"
     "test_install_uninstall"
     "test_config_search_path"
+    # does not raise UserWarning
+    "test_initialize_compat_version_base"
   ];
 
   disabledTestPaths = [
diff --git a/nixpkgs/pkgs/development/python-modules/hypercorn/default.nix b/nixpkgs/pkgs/development/python-modules/hypercorn/default.nix
index d8e6936e8dc3..57d56fa417ca 100644
--- a/nixpkgs/pkgs/development/python-modules/hypercorn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hypercorn/default.nix
@@ -15,14 +15,14 @@
 }:
 
 buildPythonPackage rec {
-  pname = "Hypercorn";
+  pname = "hypercorn";
   version = "0.14.3";
   disabled = pythonOlder "3.7";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pgjones";
-    repo = pname;
+    repo = "Hypercorn";
     rev = version;
     hash = "sha256-ECREs8UwqTWUweUrwnUwpVotCII2v4Bz7ZCk3DSAd8I=";
   };
@@ -49,6 +49,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/pgjones/hypercorn";
     description = "The ASGI web server inspired by Gunicorn";
+    mainProgram = "hypercorn";
     license = licenses.mit;
     maintainers = with maintainers; [ dgliwka ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/hyperopt/default.nix b/nixpkgs/pkgs/development/python-modules/hyperopt/default.nix
index 605377a2ec39..6cc92ff3ae79 100644
--- a/nixpkgs/pkgs/development/python-modules/hyperopt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hyperopt/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Distributed Asynchronous Hyperparameter Optimization";
+    mainProgram = "hyperopt-mongo-worker";
     homepage = "http://hyperopt.github.io/hyperopt/";
     license = licenses.bsd2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/python-modules/hyperscan/default.nix b/nixpkgs/pkgs/development/python-modules/hyperscan/default.nix
index 51ea23baf4a2..0d568e15f25b 100644
--- a/nixpkgs/pkgs/development/python-modules/hyperscan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hyperscan/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "hyperscan";
-  version = "0.7.0";
+  version = "0.7.7";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "darvid";
     repo = "python-hyperscan";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XIsYBu2YPbSIZGIhJjPap1ymg7cr0+ozwZtpOj8GFm8=";
+    hash = "sha256-TNiGh89SnGi0WAqfYudsj7GaVhOifi8ZcmTrMtVbk+c=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix b/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
index c74631817866..2c99b43f9487 100644
--- a/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "hypothesis";
-  version = "6.91.0";
+  version = "6.98.17";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "HypothesisWorks";
     repo = "hypothesis";
     rev = "hypothesis-python-${version}";
-    hash = "sha256-2iBeB5pLVOunOJb6aGNQ/ZTj8HyeH+UkqvLPF3YVuLk=";
+    hash = "sha256-2knFmaa334vFo8bbLCmrWAXRDXFcC+GPRqj7RG3FqEQ=";
   };
 
   # I tried to package sphinx-selective-exclude, but it throws
@@ -79,6 +79,14 @@ buildPythonPackage rec {
     "tests/cover"
   ];
 
+  disabledTests = if (pythonOlder "3.10") then [
+    # not sure why these tests fail with only 3.9
+    # FileNotFoundError: [Errno 2] No such file or directory: 'git'
+    "test_observability"
+    "test_assume_has_status_reason"
+    "test_observability_captures_stateful_reprs"
+  ] else null;
+
   pythonImportsCheck = [
     "hypothesis"
   ];
@@ -109,6 +117,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for property based testing";
+    mainProgram = "hypothesis";
     homepage = "https://github.com/HypothesisWorks/hypothesis";
     changelog = "https://hypothesis.readthedocs.io/en/latest/changes.html#v${lib.replaceStrings [ "." ] [ "-" ] version}";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/hypothesmith/default.nix b/nixpkgs/pkgs/development/python-modules/hypothesmith/default.nix
index 5754612b1f29..9aa3406c6006 100644
--- a/nixpkgs/pkgs/development/python-modules/hypothesmith/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hypothesmith/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "hypothesmith";
-  version = "0.3.1";
+  version = "0.3.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-h5kXemST6DLIF0aEKoaGdSs7G7lTDW6DK64XWEENrzo=";
+    hash = "sha256-lsFIAtbI6F2JdSZBdoeNtUso0u2SH9v+3C5rjOPIFxY=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/i2csense/default.nix b/nixpkgs/pkgs/development/python-modules/i2csense/default.nix
index 064a1e792f42..6923b1d0c3c8 100644
--- a/nixpkgs/pkgs/development/python-modules/i2csense/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/i2csense/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A library to handle i2c sensors with the Raspberry Pi";
+    mainProgram = "i2csense";
     homepage = "https://github.com/azogue/i2csense";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/ical/default.nix b/nixpkgs/pkgs/development/python-modules/ical/default.nix
index 01755d640c8c..fa904248f3e6 100644
--- a/nixpkgs/pkgs/development/python-modules/ical/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ical/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "ical";
-  version = "7.0.0";
+  version = "7.0.3";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "allenporter";
     repo = "ical";
     rev = "refs/tags/${version}";
-    hash = "sha256-S/6zyUFXSWcnnLNSwz1smovSyodhKeRVbT9lj7+KLWo=";
+    hash = "sha256-RiwWnRSe0HdeGVo592A+Rk+IvA1Lfp6mY+/ZEyqJBDU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/icalendar/default.nix b/nixpkgs/pkgs/development/python-modules/icalendar/default.nix
index c1237dc58829..28b5d1b81abb 100644
--- a/nixpkgs/pkgs/development/python-modules/icalendar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/icalendar/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/collective/icalendar/blob/v${version}/CHANGES.rst";
     description = "A parser/generator of iCalendar files";
+    mainProgram = "icalendar";
     homepage = "https://github.com/collective/icalendar";
     license = licenses.bsd2;
     maintainers = with maintainers; [ olcai ];
diff --git a/nixpkgs/pkgs/development/python-modules/idasen/default.nix b/nixpkgs/pkgs/development/python-modules/idasen/default.nix
index e6950edaa127..122ff64eb088 100644
--- a/nixpkgs/pkgs/development/python-modules/idasen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/idasen/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python API and CLI for the ikea IDÃ…SEN desk";
+    mainProgram = "idasen";
     homepage = "https://github.com/newAM/idasen";
     changelog = "https://github.com/newAM/idasen/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/identify/default.nix b/nixpkgs/pkgs/development/python-modules/identify/default.nix
index ba8b8b67ec93..1a29450f1da5 100644
--- a/nixpkgs/pkgs/development/python-modules/identify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/identify/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "File identification library for Python";
+    mainProgram = "identify-cli";
     homepage = "https://github.com/chriskuehl/identify";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/ifcopenshell/default.nix b/nixpkgs/pkgs/development/python-modules/ifcopenshell/default.nix
index 99f2ae1c6276..3fc63b13bb39 100644
--- a/nixpkgs/pkgs/development/python-modules/ifcopenshell/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ifcopenshell/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "ifcopenshell";
-  version = "231201";
+  version = "240306";
   format = "other";
 
   src = fetchFromGitHub {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     repo   = "IfcOpenShell";
     rev = "refs/tags/blenderbim-${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-T7XT5gvfzhagecB3jrTyWOawOm4iye7SCsmYhnjtOTE=";
+    sha256 = "sha256-DtA8KeWipPfOnztKG/lrgLZeOCUG3nWR9oW7OST7koc=";
   };
 
   nativeBuildInputs = [ gcc10 cmake ];
diff --git a/nixpkgs/pkgs/development/python-modules/igraph/default.nix b/nixpkgs/pkgs/development/python-modules/igraph/default.nix
index e2f555121f93..98f38528c144 100644
--- a/nixpkgs/pkgs/development/python-modules/igraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/igraph/default.nix
@@ -69,6 +69,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "High performance graph data structures and algorithms";
+    mainProgram = "igraph";
     homepage = "https://igraph.org/python/";
     changelog = "https://github.com/igraph/python-igraph/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/ilua/default.nix b/nixpkgs/pkgs/development/python-modules/ilua/default.nix
index 9eba6781a413..119c6b17f5e3 100644
--- a/nixpkgs/pkgs/development/python-modules/ilua/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ilua/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Portable Lua kernel for Jupyter";
+    mainProgram = "ilua";
     homepage = "https://github.com/guysv/ilua";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ wolfangaukang ];
diff --git a/nixpkgs/pkgs/development/python-modules/image-diff/default.nix b/nixpkgs/pkgs/development/python-modules/image-diff/default.nix
index d120737c3ffc..8f65994b3885 100644
--- a/nixpkgs/pkgs/development/python-modules/image-diff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/image-diff/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "CLI tool for comparing images";
+    mainProgram = "image-diff";
     homepage = "https://github.com/simonw/image-diff";
     license = licenses.asl20;
     maintainers = with maintainers; [ evils ];
diff --git a/nixpkgs/pkgs/development/python-modules/imagehash/default.nix b/nixpkgs/pkgs/development/python-modules/imagehash/default.nix
index e2e20b4f6c27..55ce39e8648a 100644
--- a/nixpkgs/pkgs/development/python-modules/imagehash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imagehash/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python Perceptual Image Hashing Module";
+    mainProgram = "find_similar_images.py";
     homepage = "https://github.com/JohannesBuchner/imagehash";
     license = licenses.bsd2;
     maintainers = with maintainers; [ e1mo ];
diff --git a/nixpkgs/pkgs/development/python-modules/imgdiff/default.nix b/nixpkgs/pkgs/development/python-modules/imgdiff/default.nix
index 586ed19b2572..6cb92f329334 100644
--- a/nixpkgs/pkgs/development/python-modules/imgdiff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imgdiff/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Compare two images side-by-side";
+    mainProgram = "imgdiff";
     homepage = "https://github.com/mgedmin/imgdiff";
     changelog = "https://github.com/mgedmin/imgdiff/blob/${src.rev}/CHANGES.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/imgtool/default.nix b/nixpkgs/pkgs/development/python-modules/imgtool/default.nix
index 54bd8026d9a6..dc8a9ec63089 100644
--- a/nixpkgs/pkgs/development/python-modules/imgtool/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imgtool/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "MCUboot's image signing and key management";
+    mainProgram = "imgtool";
     homepage = "https://github.com/mcu-tools/mcuboot";
     license = licenses.asl20;
     maintainers = with maintainers; [ samueltardieu ];
diff --git a/nixpkgs/pkgs/development/python-modules/importlab/default.nix b/nixpkgs/pkgs/development/python-modules/importlab/default.nix
index 2d7fddb9e5db..65b2df8bef6a 100644
--- a/nixpkgs/pkgs/development/python-modules/importlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/importlab/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A library that automatically infers dependencies for Python files";
+    mainProgram = "importlab";
     homepage = "https://github.com/google/importlab";
     license = licenses.mit;
     maintainers = with maintainers; [ sei40kr ];
diff --git a/nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix b/nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix
index 8e8346fffdd7..995d625f5604 100644
--- a/nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "importlib-metadata";
-  version = "6.9.0";
+  version = "7.0.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "importlib_metadata";
     inherit version;
-    hash = "sha256-6Ky1I8M1qRgiZ04Um0bAOZ7E0yjE0fbknCc9pf8CAbk=";
+    hash = "sha256-GY9WjzIwh4yxtE+9eXX4eQbCIzbbouSn8FJ4woH715I=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix b/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
index 80533173c9bb..79012fa9677a 100644
--- a/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
@@ -1,38 +1,45 @@
 { lib
-, isPy27
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
+
+# build-system
+, setuptools
 , setuptools-scm
+
+# dependencies
 , importlib-metadata
-, typing ? null
-, pythonOlder
-, unittestCheckHook
+
+# tests
+, jaraco-collections
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "importlib-resources";
-  version = "6.1.1";
-  format = "pyproject";
-  disabled = isPy27;
+  version = "6.1.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     pname = "importlib_resources";
     inherit version;
-    hash = "sha256-OJOgASLq/eaJTFmRREalEvcooMGkX5u5tjchtrrPC0o=";
+    hash = "sha256-VvtFJRl7eFRKM1TqJ3k5UquT+TW7S/dGuEa7EBUCDys=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
+    setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     importlib-metadata
-  ] ++ lib.optionals (pythonOlder "3.5") [
-    typing
   ];
 
   nativeCheckInputs = [
-    unittestCheckHook
+    pytestCheckHook
+    jaraco-collections
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/imread/default.nix b/nixpkgs/pkgs/development/python-modules/imread/default.nix
index 69eb79ddbcaa..8d2823356e32 100644
--- a/nixpkgs/pkgs/development/python-modules/imread/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imread/default.nix
@@ -12,7 +12,7 @@
 }:
 
 buildPythonPackage rec {
-  pname = "python-imread";
+  pname = "imread";
   version = "0.7.5";
   pyproject = true;
 
diff --git a/nixpkgs/pkgs/development/python-modules/imutils/default.nix b/nixpkgs/pkgs/development/python-modules/imutils/default.nix
index e9103831363b..655fb82c8b79 100644
--- a/nixpkgs/pkgs/development/python-modules/imutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imutils/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/jrosebr1/imutils";
     description = "A series of convenience functions to make basic image processing functions";
+    mainProgram = "range-detector";
     license = licenses.mit;
     maintainers = [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/in-n-out/default.nix b/nixpkgs/pkgs/development/python-modules/in-n-out/default.nix
index b35e4588a4dd..39c7a3f7de88 100644
--- a/nixpkgs/pkgs/development/python-modules/in-n-out/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/in-n-out/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "in-n-out";
-  version = "0.1.9";
+  version = "0.2.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "in_n_out";
     inherit version;
-    hash = "sha256-if65ROQg+vQtPCVCFFaBtNVxRDVZMsK4WWlfzcT5oto=";
+    hash = "sha256-hKJb2/DKl2Dd+rgndujNJWddriHKDpVuIKwOcwL8oZ8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/indexed-bzip2/default.nix b/nixpkgs/pkgs/development/python-modules/indexed-bzip2/default.nix
index b75a10b98222..53788b566e52 100644
--- a/nixpkgs/pkgs/development/python-modules/indexed-bzip2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/indexed-bzip2/default.nix
@@ -23,6 +23,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for parallel decompression and seeking within compressed bzip2 files";
+    mainProgram = "ibzip2";
     homepage = "https://github.com/mxmlnkn/indexed_bzip2";
     license = licenses.mit; # dual MIT and asl20, https://internals.rust-lang.org/t/rationale-of-apache-dual-licensing/8952
     maintainers = with lib.maintainers; [ mxmlnkn ];
diff --git a/nixpkgs/pkgs/development/python-modules/inquirer/default.nix b/nixpkgs/pkgs/development/python-modules/inquirer/default.nix
index 8ca4ed136fe9..ff73187938f2 100644
--- a/nixpkgs/pkgs/development/python-modules/inquirer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/inquirer/default.nix
@@ -8,7 +8,7 @@
 
 # propagated
 , blessed
-, python-editor
+, editor
 , readchar
 
 # tests
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "inquirer";
-  version = "3.1.4";
+  version = "3.2.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "magmax";
     repo = "python-inquirer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1xaxLIk4GFRpcodhBX+Co9TgpYkWhB/D4OE4Nny4ijM=";
+    hash = "sha256-LsZ2SYgBOKZegk7b9DwForwMA49XvIe+Z6WvI1/YscY=";
   };
 
   nativeBuildInputs = [
@@ -37,7 +37,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     blessed
-    python-editor
+    editor
     readchar
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/inscriptis/default.nix b/nixpkgs/pkgs/development/python-modules/inscriptis/default.nix
index e62e7f17e874..454106d28b56 100644
--- a/nixpkgs/pkgs/development/python-modules/inscriptis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/inscriptis/default.nix
@@ -1,7 +1,10 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, poetry-core
 , lxml
+, fastapi
+, httpx
 , pytestCheckHook
 , pythonOlder
 , requests
@@ -9,8 +12,8 @@
 
 buildPythonPackage rec {
   pname = "inscriptis";
-  version = "2.3.2";
-  format = "setuptools";
+  version = "2.5.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -18,15 +21,21 @@ buildPythonPackage rec {
     owner = "weblyzard";
     repo = "inscriptis";
     rev = "refs/tags/${version}";
-    hash = "sha256-grsyHqt7ahiNsYKcZN/c5cJaag/nTWTBcaHaXnW1SpU=";
+    hash = "sha256-9KEkXcdZ7USXfyIXGDrp4p4kJTzF2q30fvOccxF1hBU=";
   };
 
+  build-system = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
     lxml
     requests
   ];
 
   nativeCheckInputs = [
+    fastapi
+    httpx
     pytestCheckHook
   ];
 
@@ -36,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "HTML to text converter";
+    mainProgram = "inscript.py";
     homepage = "https://github.com/weblyzard/inscriptis";
     changelog = "https://github.com/weblyzard/inscriptis/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/insightface/default.nix b/nixpkgs/pkgs/development/python-modules/insightface/default.nix
index 6d5c4a66239c..35d434de760f 100644
--- a/nixpkgs/pkgs/development/python-modules/insightface/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/insightface/default.nix
@@ -70,6 +70,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "State-of-the-art 2D and 3D Face Analysis Project";
+    mainProgram = "insightface-cli";
     homepage = "https://github.com/deepinsight/insightface";
     license = licenses.mit;
     maintainers = with maintainers; [ oddlama ];
diff --git a/nixpkgs/pkgs/development/python-modules/instructor/default.nix b/nixpkgs/pkgs/development/python-modules/instructor/default.nix
new file mode 100644
index 000000000000..476741835116
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/instructor/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, python3
+, fetchPypi
+, buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "instructor";
+  version = "0.6.4";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-Af52TGnkqY/t0cPkHoRfhFqa/tuOpQXAI/fFfMTcM4Y=";
+  };
+
+  nativeBuildInputs = [
+    python3.pkgs.poetry-core
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    aiohttp
+    docstring-parser
+    openai
+    pydantic
+    rich
+    tenacity
+    typer
+  ];
+
+  pythonImportsCheck = [ "instructor" ];
+
+  meta = with lib; {
+    description = "Structured outputs for llm";
+    homepage = "https://github.com/jxnl/instructor";
+    changelog = "https://github.com/jxnl/instructor/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mic92 ];
+    mainProgram = "instructor";
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix b/nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix
index 15045b4695c4..ccfd6afe3125 100644
--- a/nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/intellifire4py/default.nix
@@ -2,7 +2,8 @@
 , aenum
 , buildPythonPackage
 , fetchFromGitHub
-, httpx
+, aiohttp
+, aioresponses
 , poetry-core
 , pydantic
 , pytest-asyncio
@@ -14,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "intellifire4py";
-  version = "3.6.1";
+  version = "4.1.9";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     owner = "jeeftor";
     repo = "intellifire4py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ovJUL8Z98F6gyKG04CoOiQE5dJbp9yTVHcTgniJBvOw=";
+    hash = "sha256-dMhm2gntLV7ev6UIfHFMATytZo5blTlALuh9sBirkqI=";
   };
 
   nativeBuildInputs = [
@@ -31,13 +32,14 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    aiohttp
     aenum
-    httpx
     pydantic
     rich
   ];
 
   nativeCheckInputs = [
+    aioresponses
     pytest-asyncio
     pytest-httpx
     pytestCheckHook
@@ -49,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to read Intellifire fireplace status data";
+    mainProgram = "intellifire4py";
     homepage = "https://github.com/jeeftor/intellifire4py";
     changelog = "https://github.com/jeeftor/intellifire4py/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix b/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
index 797f24eee83a..6df7a76dadd5 100644
--- a/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
@@ -11,32 +11,36 @@
 , tqdm
 , urllib3
 , pythonOlder
+, importlib-metadata
 }:
 
 buildPythonPackage rec {
   pname = "internetarchive";
-  version = "3.6.0";
+  version = "3.7.0";
+  pyproject = true;
 
-  format = "pyproject";
+  disabled = pythonOlder "3.8";
 
-  disabled = pythonOlder "3.7";
-
-  # no tests data included in PyPI tarball
   src = fetchFromGitHub {
     owner = "jjjake";
     repo = "internetarchive";
-    rev = "v${version}";
-    hash = "sha256-hy5e6DEAwLKn0l2nJD7fyW5r4ZZiH+fuTEDLQen+dNk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-krMOjXzI9tmLGLEswXLLqc8J68Gwnl1VrRO2fLbDv0o=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     tqdm
     docopt
     requests
     jsonpatch
     schema
-    setuptools # needs pkg_resources at runtime
     urllib3
+  ] ++ lib.optionals (pythonOlder "3.10") [
+    importlib-metadata
   ];
 
   nativeCheckInputs = [
@@ -67,7 +71,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A Python and Command-Line Interface to Archive.org";
     homepage = "https://github.com/jjjake/internetarchive";
-    changelog = "https://github.com/jjjake/internetarchive/raw/v${version}/HISTORY.rst";
+    changelog = "https://github.com/jjjake/internetarchive/blob/v${version}/HISTORY.rst";
     license = licenses.agpl3Plus;
     maintainers = [ maintainers.marsam ];
     mainProgram = "ia";
diff --git a/nixpkgs/pkgs/development/python-modules/invisible-watermark/default.nix b/nixpkgs/pkgs/development/python-modules/invisible-watermark/default.nix
index eab0c1c360aa..a69a0f8f85f6 100644
--- a/nixpkgs/pkgs/development/python-modules/invisible-watermark/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/invisible-watermark/default.nix
@@ -69,6 +69,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A library for creating and decoding invisible image watermarks";
+    mainProgram = "invisible-watermark";
     homepage = "https://github.com/ShieldMnt/invisible-watermark";
     license = licenses.mit;
     maintainers = with maintainers; [ Luflosi ];
diff --git a/nixpkgs/pkgs/development/python-modules/iocextract/default.nix b/nixpkgs/pkgs/development/python-modules/iocextract/default.nix
index 3353d912b393..fd00ff991f00 100644
--- a/nixpkgs/pkgs/development/python-modules/iocextract/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/iocextract/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to extract Indicator of Compromises (IOC)";
+    mainProgram = "iocextract";
     homepage = "https://github.com/InQuest/python-iocextract";
     changelog = "https://github.com/InQuest/python-iocextract/releases/tag/v${version}";
     license = licenses.gpl2Only;
diff --git a/nixpkgs/pkgs/development/python-modules/iocsearcher/default.nix b/nixpkgs/pkgs/development/python-modules/iocsearcher/default.nix
new file mode 100644
index 000000000000..a485e3df6219
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/iocsearcher/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, beautifulsoup4
+, buildPythonPackage
+, fetchFromGitHub
+, base58
+, bech32
+, cashaddress
+, cbor
+, eth-hash
+, intervaltree
+, langdetect
+, lxml
+, pdfminer-six
+, phonenumbers
+, python-magic
+, readabilipy
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "iocsearcher";
+  version = "2.3-unstable-2024-03-04";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "malicialab";
+    repo = "iocsearcher";
+    rev = "5f7b87761f2195eb358006f3492f0beac7ecc4b0";
+    hash = "sha256-SYh0+JEZa95iBznNzXut/9Vwof6VFeSlt0/g+XmMPC0=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    base58
+    beautifulsoup4
+    bech32
+    cashaddress
+    cbor
+    eth-hash
+    intervaltree
+    langdetect
+    lxml
+    pdfminer-six
+    phonenumbers
+    python-magic
+    readabilipy
+  ] ++ eth-hash.optional-dependencies.pycryptodome;
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "iocsearcher"
+  ];
+
+  meta = with lib; {
+    description = "Library and command line tool for extracting indicators of compromise (IOCs)";
+    mainProgram = "iocsearcher";
+    homepage = "https://github.com/malicialab/iocsearcher";
+    changelog = "https://github.com/malicialab/iocsearcher/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/iodata/default.nix b/nixpkgs/pkgs/development/python-modules/iodata/default.nix
index 64021cc051b1..50a6a87eac86 100644
--- a/nixpkgs/pkgs/development/python-modules/iodata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/iodata/default.nix
@@ -20,6 +20,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for reading, writing, and converting computational chemistry file formats and generating input files";
+    mainProgram = "iodata-convert";
     homepage = "https://github.com/theochem/iodata";
     license = licenses.lgpl3Only;
     maintainers = [ maintainers.sheepforce ];
diff --git a/nixpkgs/pkgs/development/python-modules/ipdb/default.nix b/nixpkgs/pkgs/development/python-modules/ipdb/default.nix
index f5911b627c8d..96a4274bac1e 100644
--- a/nixpkgs/pkgs/development/python-modules/ipdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipdb/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/gotcha/ipdb";
     description = "IPython-enabled pdb";
+    mainProgram = "ipdb3";
     license = licenses.bsd0;
     maintainers = [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/IPy/default.nix b/nixpkgs/pkgs/development/python-modules/ipy/default.nix
index f8291ee8ac5b..8a2f64ce3638 100644
--- a/nixpkgs/pkgs/development/python-modules/IPy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipy/default.nix
@@ -1,12 +1,13 @@
 { lib, buildPythonPackage, fetchPypi, nose }:
 
 buildPythonPackage rec {
-  pname = "IPy";
+  pname = "ipy";
   version = "1.01";
   format = "setuptools";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "IPy";
+    inherit version;
     sha256 = "edeca741dea2d54aca568fa23740288c3fe86c0f3ea700344571e9ef14a7cc1a";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix b/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
index ff10be0092ca..1caa71211c5f 100644
--- a/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
@@ -22,14 +22,14 @@
 
 buildPythonPackage rec {
   pname = "ipykernel";
-  version = "6.29.2";
+  version = "6.29.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-O63igATj/2JO1Xl0lIEWZwYErF9nbRIzlpPzFCF20/A=";
+    hash = "sha256-4UwlDR+eo5iUkCJcwaVCeBsJWhihlEf88rXq99CsW9I=";
   };
 
   # debugpy is optional, see https://github.com/ipython/ipykernel/pull/767
diff --git a/nixpkgs/pkgs/development/python-modules/ipyparallel/default.nix b/nixpkgs/pkgs/development/python-modules/ipyparallel/default.nix
index 509b70b7fd3a..2ad3df50dfc9 100644
--- a/nixpkgs/pkgs/development/python-modules/ipyparallel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipyparallel/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "ipyparallel";
-  version = "8.6.1";
-  format = "pyproject";
+  version = "8.7.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-o5ql75VgFwvw6a/typ/wReG5wYMsSTAzd+3Mkc6p+3c=";
+    hash = "sha256-QDwJca5Wwrajn/6PNfMcf9FwzhJ5JGKUWc3X96C058M=";
   };
 
   # We do not need the jupyterlab build dependency, because we do not need to
@@ -33,14 +33,14 @@ buildPythonPackage rec {
   #
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace '"jupyterlab>=3.0.0,==3.*",' ""
+      --replace '"jupyterlab==4.*",' ""
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     decorator
     entrypoints
     ipykernel
@@ -64,6 +64,7 @@ buildPythonPackage rec {
   meta = with lib;{
     description = "Interactive Parallel Computing with IPython";
     homepage = "https://ipyparallel.readthedocs.io/";
+    changelog = "https://github.com/ipython/ipyparallel/blob/${version}/docs/source/changelog.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fridh ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/ipython/default.nix b/nixpkgs/pkgs/development/python-modules/ipython/default.nix
index e92d5fbbf656..7dacc7e2aa3c 100644
--- a/nixpkgs/pkgs/development/python-modules/ipython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipython/default.nix
@@ -8,14 +8,11 @@
 , setuptools
 
 # Runtime dependencies
-, appnope
-, backcall
 , decorator
 , exceptiongroup
 , jedi
 , matplotlib-inline
 , pexpect
-, pickleshare
 , prompt-toolkit
 , pygments
 , stack-data
@@ -23,19 +20,22 @@
 , typing-extensions
 
 # Test dependencies
+, pickleshare
+, pytest-asyncio
 , pytestCheckHook
+, pytest_7
 , testpath
 }:
 
 buildPythonPackage rec {
   pname = "ipython";
-  version = "8.20.0";
+  version = "8.22.2";
   pyproject = true;
   disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LyG9P8HVFVDInuOUSuBLvHvHnhKeoJN9pubGi/2/EXo=";
+    hash = "sha256-LcqtkEn5BW8f72NRTxdsfUH5MNqnjQW4KhdiAoGPLBQ=";
   };
 
   nativeBuildInputs = [
@@ -43,12 +43,10 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    backcall
     decorator
     jedi
     matplotlib-inline
     pexpect
-    pickleshare
     prompt-toolkit
     pygments
     stack-data
@@ -57,8 +55,6 @@ buildPythonPackage rec {
     exceptiongroup
   ] ++ lib.optionals (pythonOlder "3.10") [
     typing-extensions
-  ] ++ lib.optionals stdenv.isDarwin [
-    appnope
   ];
 
   pythonImportsCheck = [
@@ -74,7 +70,9 @@ buildPythonPackage rec {
   '';
 
   nativeCheckInputs = [
-    pytestCheckHook
+    pickleshare
+    pytest-asyncio
+    (pytestCheckHook.override { pytest = pytest_7; })
     testpath
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/ipyvuetify/default.nix b/nixpkgs/pkgs/development/python-modules/ipyvuetify/default.nix
index 28b39f74c4b9..0a55f0bb4a93 100644
--- a/nixpkgs/pkgs/development/python-modules/ipyvuetify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipyvuetify/default.nix
@@ -2,20 +2,44 @@
 , buildPythonPackage
 , fetchPypi
   # Python Inputs
+, jupyter-packaging
+, jupyterlab
+, setuptools
+, wheel
 , ipyvue
 }:
 
 buildPythonPackage rec {
   pname = "ipyvuetify";
-  version = "1.8.10";
-  format = "setuptools";
+  version = "1.9.1";
+  pyproject = true;
 
   # GitHub version tries to run npm (Node JS)
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-m6RCeUefM/XLg69AaqgTBQ7pYgGVXCy6CH/SOoQ9W04=";
+    hash = "sha256-MAqO6wREtnaVCgG88UXYsKlLpkizbtPqmeQ9u3UVnU0=";
   };
 
+  # drop pynpm which tries to install node_modules
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "jupyter_packaging~=0.7.9" "jupyter_packaging" \
+      --replace-fail "jupyterlab~=3.0" "jupyterlab" \
+      --replace-fail '"pynpm"' ""
+
+    substituteInPlace setup.py \
+      --replace-fail "from pynpm import NPMPackage" "" \
+      --replace-fail "from generate_source import generate_source" "" \
+      --replace-fail 'setup(cmdclass={"egg_info": js_prerelease(egg_info)})' 'setup()'
+  '';
+
+  nativeBuildInputs = [
+    jupyter-packaging
+    jupyterlab
+    setuptools
+    wheel
+  ];
+
   propagatedBuildInputs = [ ipyvue ];
 
   doCheck = false;  # no tests on PyPi/GitHub
diff --git a/nixpkgs/pkgs/development/python-modules/ipywidgets/default.nix b/nixpkgs/pkgs/development/python-modules/ipywidgets/default.nix
index 4e8377a9bd54..b4cefff029dd 100644
--- a/nixpkgs/pkgs/development/python-modules/ipywidgets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipywidgets/default.nix
@@ -44,6 +44,11 @@ buildPythonPackage rec {
     pytz
   ];
 
+  pytestFlagsArray = [
+    # pytest.PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   meta = {
     description = "IPython HTML widgets for Jupyter";
     homepage = "https://github.com/jupyter-widgets/ipywidgets";
diff --git a/nixpkgs/pkgs/development/python-modules/ipyxact/default.nix b/nixpkgs/pkgs/development/python-modules/ipyxact/default.nix
index 28652d156a87..5cf7bfa9b2e6 100644
--- a/nixpkgs/pkgs/development/python-modules/ipyxact/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipyxact/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/olofk/ipyxact";
     description = "IP-XACT parser";
+    mainProgram = "ipxact2v";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/iso-639/default.nix b/nixpkgs/pkgs/development/python-modules/iso-639/default.nix
index e9226d4aaee5..22d66ef9f14f 100644
--- a/nixpkgs/pkgs/development/python-modules/iso-639/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/iso-639/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/noumar/iso639";
     description = "ISO 639 library for Python";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ zraexy ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/isort/default.nix b/nixpkgs/pkgs/development/python-modules/isort/default.nix
index 6bf563af4784..a3e935907341 100644
--- a/nixpkgs/pkgs/development/python-modules/isort/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/isort/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "isort";
-  version = "5.12.0";
+  version = "5.13.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = "isort";
     rev = "refs/tags/${version}";
-    hash = "sha256-8ija4xWWZuYkElXLdziV7ulN8dubIsChcZQ5dx9hfO0=";
+    hash = "sha256-/1iKYmtNRw9u59zzJDwV7b9+EPxFJDHvhjTioGt5LLU=";
   };
 
   nativeBuildInputs = [
@@ -52,6 +52,8 @@ buildPythonPackage rec {
     "--ignore=tests/benchmark/" # requires pytest-benchmark
     "--ignore=tests/integration/" # pulls in 10 other packages
     "--ignore=tests/unit/profiles/test_black.py" # causes infinite recursion to include black
+    # pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
   ];
 
   disabledTests = [
diff --git a/nixpkgs/pkgs/development/python-modules/isosurfaces/default.nix b/nixpkgs/pkgs/development/python-modules/isosurfaces/default.nix
index 96227ed0aa75..c1caa00b980d 100644
--- a/nixpkgs/pkgs/development/python-modules/isosurfaces/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/isosurfaces/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "isosurfaces";
-  version = "0.1.0";
+  version = "0.1.2";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fa1b44e5e59d2f429add49289ab89e36f8dcda49b7badd99e0beea273be331f4";
+    sha256 = "sha256-+lHr6GTqk1WyaDDif91qQdWli0GfqNS0fjuLgHGNbiE=";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/nixpkgs/pkgs/development/python-modules/j2cli/default.nix b/nixpkgs/pkgs/development/python-modules/j2cli/default.nix
index cf66d9be21bd..b779010bc579 100644
--- a/nixpkgs/pkgs/development/python-modules/j2cli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/j2cli/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/kolypto/j2cli";
     description = "Jinja2 Command-Line Tool";
+    mainProgram = "j2";
     license = licenses.bsd2;
     longDescription = ''
       J2Cli is a command-line tool for templating in shell-scripts,
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco-abode/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco-abode/default.nix
index 821c11b01e27..c19c5c64286f 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco-abode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco-abode/default.nix
@@ -93,6 +93,7 @@ buildPythonPackage rec {
     changelog = "https://github.com/jaraco/jaraco.abode/blob/${version}/CHANGES.rst";
     homepage = "https://github.com/jaraco/jaraco.abode";
     description = "Library interfacing to the Abode home security system";
+    mainProgram = "abode";
     license = licenses.mit;
     maintainers = with maintainers; [ jamiemagee dotlambda ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco-classes/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco-classes/default.nix
index 6364f89e4cac..8408e80217b2 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco-classes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco-classes/default.nix
@@ -6,7 +6,7 @@
 
 buildPythonPackage rec {
   pname = "jaraco-classes";
-  version = "3.3.0";
+  version = "3.3.1";
   format = "pyproject";
 
   disabled = isPy27;
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "jaraco";
     repo = "jaraco.classes";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-DW8qf6G6997vBOaO1+Bdx4LBvKfpl/MiiFqWJYKE/pg=";
+    sha256 = "sha256-ds84jNEx/2/BnMTbLMvXf/nxKSqyCBM7B7S0NNYagVE=";
   };
 
   pythonNamespaces = [ "jaraco" ];
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco-collections/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco-collections/default.nix
index 3c0d0b6a9aa6..bab89a3f7a60 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco-collections/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco-collections/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "jaraco-collections";
-  version = "4.3.0";
+  version = "5.0.0";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "jaraco.collections";
     inherit version;
-    hash = "sha256-dP/CP8z+5N4KLr9VajNnW2o8AD1jNZR9MSKgvIgiyOQ=";
+    hash = "sha256-FoDo0J8pX2Jce6kmiAF1om/b5wkrTHbRmOMEdrIc/mg=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco-email/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco-email/default.nix
index 7e4ca68deb04..b6ff349a533b 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco-email/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco-email/default.nix
@@ -1,11 +1,10 @@
 { lib
-, stdenv
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
-, fetchpatch
 , setuptools
 , setuptools-scm
+, aiosmtpd
 , jaraco-text
 , jaraco-collections
 , keyring
@@ -14,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "jaraco-email";
-  version = "3.1.0";
+  version = "3.1.1";
 
   disabled = pythonOlder "3.7";
 
@@ -24,28 +23,16 @@ buildPythonPackage rec {
     owner = "jaraco";
     repo = "jaraco.email";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MR/SX5jmZvEMULgvQbh0JBZjIosNCPWl1wvEoJbdw4Y=";
+    hash = "sha256-2dU+tbrP86Oy8ej1Xa0+fNRB83tGBTUsOWbZyQsMKu8=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "dos2unix-line-endings.patch";
-      url = "https://github.com/jaraco/jaraco.email/commit/ab9643598e26cca9c9cdbd34b00c972f547b9236.patch";
-      hash = "sha256-Z2WOnR+ELzQciVyUiUq4jaP+Vnc4aseLP7+LWJZoOU8=";
-    })
-    (fetchpatch {
-      name = "jaraco-collections-4-compatibility.patch";
-      url = "https://github.com/jaraco/jaraco.email/commit/e65e5fed0178ddcd009d16883b381c5582f1a9df.patch";
-      hash = "sha256-mKxa0ZU1JFeQPemrjQl94buLNY5gXnMCCRKBxdO870M=";
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools
     setuptools-scm
   ];
 
   propagatedBuildInputs = [
+    aiosmtpd
     jaraco-text
     jaraco-collections
     keyring
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco-net/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco-net/default.nix
index 4765c1dc301c..e278c1a3832d 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco-net/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco-net/default.nix
@@ -11,6 +11,7 @@
 , keyring
 , requests
 , feedparser
+, icmplib
 , jaraco-text
 , jaraco-logging
 , jaraco-email
@@ -31,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "jaraco-net";
-  version = "9.3.1";
+  version = "10.2.0";
 
   disabled = pythonOlder "3.7";
 
@@ -41,7 +42,7 @@ buildPythonPackage rec {
     owner = "jaraco";
     repo = "jaraco.net";
     rev = "refs/tags/v${version}";
-    hash = "sha256-aq5v4QlapmMTrqwNA0GtRi/xZCcyoR1giZECBsYwymw=";
+    hash = "sha256-z9+gz6Sos0uluU5icXJN9OMmWFErVrJXBvoBcKv6Wwg=";
   };
 
   nativeBuildInputs = [
@@ -56,6 +57,7 @@ buildPythonPackage rec {
     keyring
     requests
     feedparser
+    icmplib
     jaraco-text
     jaraco-logging
     jaraco-email
diff --git a/nixpkgs/pkgs/development/python-modules/jax/default.nix b/nixpkgs/pkgs/development/python-modules/jax/default.nix
index d41987c9a539..22e4c5aa838d 100644
--- a/nixpkgs/pkgs/development/python-modules/jax/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jax/default.nix
@@ -29,7 +29,7 @@ let
 in
 buildPythonPackage rec {
   pname = "jax";
-  version = "0.4.24";
+  version = "0.4.25";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -38,8 +38,8 @@ buildPythonPackage rec {
     owner = "google";
     repo = "jax";
     # google/jax contains tags for jax and jaxlib. Only use jax tags!
-    rev = "refs/tags/${pname}-v${version}";
-    hash = "sha256-hmx7eo3pephc6BQfoJ3U0QwWBWmhkAc+7S4QmW32qQs=";
+    rev = "refs/tags/jaxlib-v${version}";
+    hash = "sha256-poQQo2ZgEhPYzK3aCs+BjaHTNZbezJAECd+HOdY1Yok=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix b/nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix
index 199b352b2aa2..e2260aec4b14 100644
--- a/nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaxlib/bin.nix
@@ -23,7 +23,7 @@
 }:
 
 let
-  inherit (cudaPackagesGoogle) autoAddOpenGLRunpathHook cudaVersion;
+  inherit (cudaPackagesGoogle) autoAddDriverRunpath cudaVersion;
 
   version = "0.4.24";
 
@@ -180,7 +180,7 @@ buildPythonPackage {
   # Prebuilt wheels are dynamically linked against things that nix can't find.
   # Run `autoPatchelfHook` to automagically fix them.
   nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ]
-    ++ lib.optionals cudaSupport [ autoAddOpenGLRunpathHook ];
+    ++ lib.optionals cudaSupport [ autoAddDriverRunpath ];
   # Dynamic link dependencies
   buildInputs = [ stdenv.cc.cc.lib ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/jaxlib/default.nix b/nixpkgs/pkgs/development/python-modules/jaxlib/default.nix
index 657a6e52c084..cbce801888e2 100644
--- a/nixpkgs/pkgs/development/python-modules/jaxlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaxlib/default.nix
@@ -51,7 +51,7 @@
 }@inputs:
 
 let
-  inherit (cudaPackagesGoogle) autoAddOpenGLRunpathHook cudaFlags cudaVersion cudnn nccl;
+  inherit (cudaPackagesGoogle) autoAddDriverRunpath cudaFlags cudaVersion cudnn nccl;
 
   pname = "jaxlib";
   version = "0.4.24";
@@ -420,7 +420,7 @@ buildPythonPackage {
     done
   '';
 
-  nativeBuildInputs = lib.optionals cudaSupport [ autoAddOpenGLRunpathHook ];
+  nativeBuildInputs = lib.optionals cudaSupport [ autoAddDriverRunpath ];
 
   propagatedBuildInputs = [
     absl-py
diff --git a/nixpkgs/pkgs/development/python-modules/jedi-language-server/default.nix b/nixpkgs/pkgs/development/python-modules/jedi-language-server/default.nix
index fca4a554d328..fdc1d1a5a9b1 100644
--- a/nixpkgs/pkgs/development/python-modules/jedi-language-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jedi-language-server/default.nix
@@ -11,12 +11,11 @@
 , pytestCheckHook
 , python-lsp-jsonrpc
 , pythonOlder
-, pythonRelaxDepsHook
 }:
 
 buildPythonPackage rec {
   pname = "jedi-language-server";
-  version = "0.41.1-unstable-2023-10-04";
+  version = "0.41.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -24,17 +23,12 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "pappasam";
     repo = pname;
-    rev = "c4c470cff67e54593a626b22d1b6b05e56fde3a3";
-    hash = "sha256-qFBni97B/GkabbznnZtWTG4dCHFkOx5UQjuevxq+Uvo=";
+    rev = "v${version}";
+    hash = "sha256-+k4WOoEbVe7mlPyPj0ttBM+kmjq8V739yHi36BDYK2U=";
   };
 
-  pythonRelaxDeps = [
-    "pygls"
-  ];
-
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -61,6 +55,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Language Server for the latest version(s) of Jedi";
+    mainProgram = "jedi-language-server";
     homepage = "https://github.com/pappasam/jedi-language-server";
     changelog = "https://github.com/pappasam/jedi-language-server/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/jello/default.nix b/nixpkgs/pkgs/development/python-modules/jello/default.nix
index 01525078bcaa..0b2d6cff7882 100644
--- a/nixpkgs/pkgs/development/python-modules/jello/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jello/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "CLI tool to filter JSON and JSON Lines data with Python syntax";
+    mainProgram = "jello";
     homepage = "https://github.com/kellyjonbrazil/jello";
     changelog = "https://github.com/kellyjonbrazil/jello/blob/${src.rev}/CHANGELOG";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix b/nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix
index 19d6b9e33339..86f89015a001 100644
--- a/nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix
@@ -28,6 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Jenkins Job Builder is a system for configuring Jenkins jobs using simple YAML files stored in Git";
+    mainProgram = "jenkins-jobs";
     homepage = "https://jenkins-job-builder.readthedocs.io/en/latest/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/jira/default.nix b/nixpkgs/pkgs/development/python-modules/jira/default.nix
index 9b8a808b878f..b569483f9211 100644
--- a/nixpkgs/pkgs/development/python-modules/jira/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jira/default.nix
@@ -6,6 +6,7 @@
 , ipython
 , keyring
 , packaging
+, pillow
 , pyjwt
 , pytestCheckHook
 , pythonOlder
@@ -21,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "jira";
-  version = "3.5.2";
+  version = "3.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,7 +31,7 @@ buildPythonPackage rec {
     owner = "pycontribs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-9hzKN57OHi2be9C2mtHZU1KcpbcKxiiYDj9Vw7MxTK4=";
+    hash = "sha256-Wv6xjk1nyFIDKAypyQRlqFglzxe9Ems2ON3PEehUP/Q=";
   };
 
   nativeBuildInputs = [
@@ -44,6 +45,7 @@ buildPythonPackage rec {
     requests
     requests-oauthlib
     requests-toolbelt
+    pillow
     typing-extensions
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/jiwer/default.nix b/nixpkgs/pkgs/development/python-modules/jiwer/default.nix
index d042726daa6a..2c1566350246 100644
--- a/nixpkgs/pkgs/development/python-modules/jiwer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jiwer/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A simple and fast python package to evaluate an automatic speech recognition system";
+    mainProgram = "jiwer";
     homepage = "https://github.com/jitsi/jiwer";
     changelog = "https://github.com/jitsi/jiwer/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/jmespath/default.nix b/nixpkgs/pkgs/development/python-modules/jmespath/default.nix
index db761a982305..6a5ef26c4fa5 100644
--- a/nixpkgs/pkgs/development/python-modules/jmespath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jmespath/default.nix
@@ -23,6 +23,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/jmespath/jmespath.py";
     description = "JMESPath allows you to declaratively specify how to extract elements from a JSON document";
+    mainProgram = "jp.py";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/josepy/default.nix b/nixpkgs/pkgs/development/python-modules/josepy/default.nix
index 1206c816b3d8..5332bf6c4381 100644
--- a/nixpkgs/pkgs/development/python-modules/josepy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/josepy/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/certbot/josepy/blob/v${version}/CHANGELOG.rst";
     description = "JOSE protocol implementation in Python";
+    mainProgram = "jws";
     homepage = "https://github.com/certbot/josepy";
     license = licenses.asl20;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/joserfc/default.nix b/nixpkgs/pkgs/development/python-modules/joserfc/default.nix
new file mode 100644
index 000000000000..ce5e18ec1349
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/joserfc/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+# build-system
+, setuptools
+
+# dependencies
+, cryptography
+, pycryptodome
+
+# tests
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "joserfc";
+  version = "0.9.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "authlib";
+    repo = "joserfc";
+    rev = version;
+    hash = "sha256-+NFCveMPzE0hSs2Qe20/MDHApXVtU3cR/GPFKPqfVV4=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    cryptography
+  ];
+
+  optional-dependencies = {
+    drafts = [
+      pycryptodome
+    ];
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ]
+  ++ lib.flatten (lib.attrValues optional-dependencies);
+
+  pythonImportsCheck = [
+    "joserfc"
+  ];
+
+  meta = with lib; {
+    description = "Implementations of JOSE RFCs in Python";
+    homepage = "https://github.com/authlib/joserfc";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jproperties/default.nix b/nixpkgs/pkgs/development/python-modules/jproperties/default.nix
index b7c2a1e296ef..b01f39d0432a 100644
--- a/nixpkgs/pkgs/development/python-modules/jproperties/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jproperties/default.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Java Property file parser and writer for Python";
+    mainProgram = "propconv";
     homepage = "https://github.com/Tblue/python-jproperties";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/jpylyzer/default.nix b/nixpkgs/pkgs/development/python-modules/jpylyzer/default.nix
index 9a33ecf46d4b..64b616382518 100644
--- a/nixpkgs/pkgs/development/python-modules/jpylyzer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jpylyzer/default.nix
@@ -1,5 +1,4 @@
 { lib
-, stdenv
 , fetchFromGitHub
 , buildPythonPackage
 , six
@@ -24,14 +23,14 @@ let
 
 in buildPythonPackage rec {
   pname = "jpylyzer";
-  version = "2.1.0";
+  version = "2.2.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "openpreserve";
     repo = pname;
     rev = version;
-    hash = "sha256-LBVOwjWC/HEvGgoi8WxEdl33M4JrfdHEj1Dk7f1NAiA=";
+    hash = "sha256-SK6Z+JkFBD9V99reRZf+jM8Z2SiDNSG72gusp2FPfmI=";
   };
 
   propagatedBuildInputs = [ six ];
@@ -43,6 +42,12 @@ in buildPythonPackage rec {
   preCheck = lib.optionalString doFullCheck ''
     sed -i '/^testFilesDir = /ctestFilesDir = "${testFiles}"' tests/unit/test_testfiles.py
   '';
+
+  disabledTests = [
+    # missing file, but newer test files breaks other tests
+    "test_groundtruth_complete"
+  ];
+
   disabledTestPaths = lib.optionals (!doFullCheck) [
     "tests/unit/test_testfiles.py"
   ];
@@ -57,6 +62,7 @@ in buildPythonPackage rec {
 
   meta = with lib; {
     description = "JP2 (JPEG 2000 Part 1) image validator and properties extractor";
+    mainProgram = "jpylyzer";
     homepage = "https://jpylyzer.openpreservation.org/";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ ris ];
diff --git a/nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix b/nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix
index d3fc765f4c86..85da49876eb3 100644
--- a/nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "JavaScript unobfuscator and beautifier";
+    mainProgram = "js-beautify";
     homepage = "http://jsbeautifier.org";
     changelog = "https://github.com/beautify-web/js-beautify/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/json-merge-patch/default.nix b/nixpkgs/pkgs/development/python-modules/json-merge-patch/default.nix
index 5b8c0a2fa4be..9cafcc30fd4b 100644
--- a/nixpkgs/pkgs/development/python-modules/json-merge-patch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/json-merge-patch/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "JSON Merge Patch library";
+    mainProgram = "json-merge-patch";
     homepage = "https://github.com/open-contracting/json-merge-patch";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/json-schema-for-humans/default.nix b/nixpkgs/pkgs/development/python-modules/json-schema-for-humans/default.nix
index 9bd62060457c..f758ae924496 100644
--- a/nixpkgs/pkgs/development/python-modules/json-schema-for-humans/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/json-schema-for-humans/default.nix
@@ -70,6 +70,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Quickly generate HTML documentation from a JSON schema";
+    mainProgram = "generate-schema-doc";
     homepage = "https://github.com/coveooss/json-schema-for-humans";
     changelog = "https://github.com/coveooss/json-schema-for-humans/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/json-tricks/default.nix b/nixpkgs/pkgs/development/python-modules/json-tricks/default.nix
index b75020c0e5bf..2d348403c499 100644
--- a/nixpkgs/pkgs/development/python-modules/json-tricks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/json-tricks/default.nix
@@ -29,6 +29,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   pythonImportsCheck = [
     "json_tricks"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/json5/default.nix b/nixpkgs/pkgs/development/python-modules/json5/default.nix
index 786f33b385dc..b244a79114c0 100644
--- a/nixpkgs/pkgs/development/python-modules/json5/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/json5/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/dpranke/pyjson5";
     description = "A Python implementation of the JSON5 data format";
+    mainProgram = "pyjson5";
     license = licenses.asl20;
     maintainers = with maintainers; [ veehaitch ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/jsonargparse/default.nix b/nixpkgs/pkgs/development/python-modules/jsonargparse/default.nix
index 23a4200500a4..55cf2a95d773 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonargparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonargparse/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "jsonargparse";
-  version = "4.27.5";
+  version = "4.27.7";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "omni-us";
     repo = "jsonargparse";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MSvgOF/5X78HSSRvv1TBmaYZgcUVMKGaHfzXu3lIGVY=";
+    hash = "sha256-JWa08jCdtP9xwLaTYw0024DogDC0WQvKZ8xRDTEhsvE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jsonconversion/default.nix b/nixpkgs/pkgs/development/python-modules/jsonconversion/default.nix
index d9f6d5556fb5..49e3974e7350 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonconversion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonconversion/default.nix
@@ -1,26 +1,51 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, numpy }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonRelaxDepsHook
+, pytestCheckHook
+, pdm-backend
+, numpy
+, setuptools
+}:
 
 buildPythonPackage rec {
   pname = "jsonconversion";
-  version = "0.2.13";
-  format = "setuptools";
+  version = "1.0.1";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-4hMY0N/Px+g5zn3YzNfDWPyi8Pglvd/c2N9SeC4JoZ0=";
+  src = fetchFromGitHub {
+    owner = "DLR-RM";
+    repo = "python-jsonconversion";
+    rev = "refs/tags/${version}";
+    hash = "sha256-XmAQXu9YkkMUvpf/QVk4u1p8UyNfRb0NeoLxC1evCT4=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "'pytest-runner'" ""
-  '';
+  build-system = [
+    pdm-backend
+    pythonRelaxDepsHook
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook numpy ];
+  pythonRemoveDeps = [
+    "pytest-runner"
+    "pytest"
+  ];
 
-  pythonImportsCheck = [ "jsonconversion" ];
+  dependencies = [
+    numpy
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "jsonconversion"
+  ];
 
   meta = with lib; {
     description = "This python module helps converting arbitrary Python objects into JSON strings and back";
-    homepage = "https://pypi.org/project/jsonconversion/";
+    homepage = "https://github.com/DLR-RM/python-jsonconversion";
     license = licenses.bsd2;
     maintainers = [ maintainers.terlar ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/jsondiff/default.nix b/nixpkgs/pkgs/development/python-modules/jsondiff/default.nix
index 6985a6edba3a..dcfa56d686ae 100644
--- a/nixpkgs/pkgs/development/python-modules/jsondiff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsondiff/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Diff JSON and JSON-like structures in Python";
+    mainProgram = "jdiff";
     homepage = "https://github.com/ZoomerAnalytics/jsondiff";
     license = lib.licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/jsonformatter/default.nix b/nixpkgs/pkgs/development/python-modules/jsonformatter/default.nix
new file mode 100644
index 000000000000..f800493b2c93
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/jsonformatter/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "jsonformatter";
+  version = "0.3.2";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "MyColorfulDays";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-oK419J/MIxRT+1j/5Yklj1F+4d3wuMXR8IVqJAMKPNw=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  pythonImportsCheck = [
+    "jsonformatter"
+  ];
+
+  meta = with lib; {
+    description = "jsonformatter is a formatter for python output json log, e.g. output LogStash needed log";
+    homepage = "https://github.com/MyColorfulDays/jsonformatter";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ gador ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jsonpath-ng/default.nix b/nixpkgs/pkgs/development/python-modules/jsonpath-ng/default.nix
index 104c7cc3e422..0496df1622ff 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonpath-ng/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonpath-ng/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "JSONPath implementation";
+    mainProgram = "jsonpath_ng";
     homepage = "https://github.com/h2non/jsonpath-ng";
     changelog = "https://github.com/h2non/jsonpath-ng/blob/v${version}/History.md";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/jsonpath-rw/default.nix b/nixpkgs/pkgs/development/python-modules/jsonpath-rw/default.nix
index d2b177c742ab..5801ba47e21f 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonpath-rw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonpath-rw/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/kennknowles/python-jsonpath-rw";
     description = "A robust and significantly extended implementation of JSONPath for Python, with a clear AST for metaprogramming";
+    mainProgram = "jsonpath.py";
     license = licenses.asl20;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix b/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix
index bff05f256247..4e3fd813144b 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "jsonpickle";
-  version = "3.0.2";
+  version = "3.0.3";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-43q7pL+zykpGR9KLufRwZDb3tGyKgzO0pxirr6jkazc=";
+    hash = "sha256-VpH0RJUyeFirOpW5xECnm0HjVCG+Gm4JpHtsm5Qh/QY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jsonpointer/default.nix b/nixpkgs/pkgs/development/python-modules/jsonpointer/default.nix
index 455acd531146..ff44d8ff978c 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonpointer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonpointer/default.nix
@@ -15,6 +15,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Resolve JSON Pointers in Python";
+    mainProgram = "jsonpointer";
     homepage = "https://github.com/stefankoegl/python-json-pointer";
     license = licenses.bsd2; # "Modified BSD license, says pypi"
   };
diff --git a/nixpkgs/pkgs/development/python-modules/jsonschema-path/default.nix b/nixpkgs/pkgs/development/python-modules/jsonschema-path/default.nix
index 598b0fdf3e83..1fad4ed64e10 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonschema-path/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonschema-path/default.nix
@@ -3,6 +3,7 @@
 , pythonOlder
 , fetchFromGitHub
 , poetry-core
+, pythonRelaxDepsHook
 , pathable
 , pyyaml
 , referencing
@@ -31,6 +32,11 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "referencing"
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jsonschema-spec/default.nix b/nixpkgs/pkgs/development/python-modules/jsonschema-spec/default.nix
index 7e8c668a0791..c41d8b35cf09 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonschema-spec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonschema-spec/default.nix
@@ -60,6 +60,8 @@ buildPythonPackage rec {
     responses
   ];
 
+  passthru.skipBulkUpdate = true; # newer versions under the jsonschema-path name
+
   meta = with lib; {
     changelog = "https://github.com/p1c2u/jsonschema-spec/releases/tag/${version}";
     description = "JSONSchema Spec with object-oriented paths";
diff --git a/nixpkgs/pkgs/development/python-modules/jsonschema-specifications/default.nix b/nixpkgs/pkgs/development/python-modules/jsonschema-specifications/default.nix
index 07fd3dcd5895..6d4a6478374b 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonschema-specifications/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonschema-specifications/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "jsonschema-specifications";
-  version = "2023.11.2";
+  version = "2023.12.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "jsonschema_specifications";
     inherit version;
-    hash = "sha256-lHL8T+pHTNdL6korGQ2uzLWp5NsuqA7896G1gvyagbg=";
+    hash = "sha256-SKdnh7PnD17VPxFg0rgfWG5MptFUjF3nCF0WgmdHZMw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jsonschema/default.nix b/nixpkgs/pkgs/development/python-modules/jsonschema/default.nix
index 10074463f80a..97147b055e93 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonschema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonschema/default.nix
@@ -28,14 +28,14 @@
 
 buildPythonPackage rec {
   pname = "jsonschema";
-  version = "4.20.0";
+  version = "4.21.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-T2FP1G2NYSWGEJmJl3Q+xUkqZIszz0eMHdwj7UWYpfo=";
+    hash = "sha256-hXJ8ACefX6a+2+YjjSqmQDvt2LSGSrESB9B988wbLuU=";
   };
 
   postPatch = ''
@@ -92,6 +92,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "An implementation of JSON Schema validation";
+    mainProgram = "jsonschema";
     homepage = "https://github.com/python-jsonschema/jsonschema";
     license = licenses.mit;
     maintainers = with maintainers; [ domenkozar ];
diff --git a/nixpkgs/pkgs/development/python-modules/junitparser/default.nix b/nixpkgs/pkgs/development/python-modules/junitparser/default.nix
index 988fde1f4408..490f919a712a 100644
--- a/nixpkgs/pkgs/development/python-modules/junitparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/junitparser/default.nix
@@ -27,6 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Manipulates JUnit/xUnit Result XML files";
+    mainProgram = "junitparser";
     license = licenses.asl20;
     homepage = "https://github.com/weiwei/junitparser";
     maintainers = with maintainers; [ multun ];
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-c-kernel/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-c-kernel/default.nix
index 7b03afc86af7..c15d8dff3f6f 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-c-kernel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-c-kernel/default.nix
@@ -28,6 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Minimalistic C kernel for Jupyter";
+    mainProgram = "install_c_kernel";
     homepage = "https://github.com/brendanrius/jupyter-c-kernel/";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-cache/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-cache/default.nix
index 7a2501f317b7..4a7ebfbd8319 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-cache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-cache/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A defined interface for working with a cache of jupyter notebooks";
+    mainProgram = "jcache";
     homepage = "https://github.com/executablebooks/jupyter-cache";
     changelog = "https://github.com/executablebooks/jupyter-cache/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-collaboration/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-collaboration/default.nix
index b131e347393c..3f20ac8b4da0 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-collaboration/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-collaboration/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "jupyter-collaboration";
-  version = "2.0.2";
+  version = "2.0.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "jupyter_collaboration";
     inherit version;
-    hash = "sha256-EpWFsVWCi/6IOuM/zgPIer3arMDGjPPxhm/tZC4aji4=";
+    hash = "sha256-3N3w6JJ0SHa1EYBED/aU1g0IX9nDHf4iseGPwEK1zpw=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-console/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-console/default.nix
index 715557bad733..81276bcc411e 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-console/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-console/default.nix
@@ -71,6 +71,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Jupyter terminal console";
+    mainProgram = "jupyter-console";
     homepage = "https://github.com/jupyter/jupyter_console";
     changelog = "https://github.com/jupyter/jupyter_console/releases/tag/v${version}";
     license = lib.licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-contrib-core/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-contrib-core/default.nix
index 7bd1c29eb6ea..0da8c5f4f151 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-contrib-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-contrib-core/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Common utilities for jupyter-contrib projects";
+    mainProgram = "jupyter-contrib";
     homepage = "https://github.com/jupyter-contrib/jupyter_contrib_core";
     license = licenses.bsd3;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-events/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-events/default.nix
index 28aa80927763..c4ea9f7b704e 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-events/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-events/default.nix
@@ -74,6 +74,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/jupyter/jupyter_events/releases/tag/v${version}";
     description = "Configurable event system for Jupyter applications and extensions";
+    mainProgram = "jupyter-events";
     homepage = "https://github.com/jupyter/jupyter_events";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-lsp/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-lsp/default.nix
index 51161435e917..74fc46f39afa 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-lsp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-lsp/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "jupyter-lsp";
-  version = "2.2.2";
+  version = "2.2.4";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JW0kYgVCrku6BKUPwfb/4ggJOgfY5pf+oKjRuMobfls=";
+    hash = "sha256-XlADMUk0QGU0jmiGCPPG1lTvBtmFa2dlW9e2usnuLVk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix
index 5fc0a95fc7bf..bf3506e9572a 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix
@@ -60,6 +60,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A jupyter notebook serverextension providing config interfaces for nbextensions";
+    mainProgram = "jupyter-nbextensions_configurator";
     homepage = "https://github.com/jupyter-contrib/jupyter_nbextensions_configurator";
     license = licenses.bsd3;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-server-fileid/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-server-fileid/default.nix
index 302a521cdc4e..300f4bb835dd 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-server-fileid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-server-fileid/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
   meta = {
     changelog = "https://github.com/jupyter-server/jupyter_server_fileid/blob/${src.rev}/CHANGELOG.md";
     description = "An extension that maintains file IDs for documents in a running Jupyter Server";
+    mainProgram = "jupyter-fileid";
     homepage = "https://github.com/jupyter-server/jupyter_server_fileid";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-server/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-server/default.nix
index 77993d24fd2c..6b0160202d87 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-server/default.nix
@@ -34,14 +34,14 @@
 
 buildPythonPackage rec {
   pname = "jupyter-server";
-  version = "2.12.5";
+  version = "2.13.0";
   pyproject = true;
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     pname = "jupyter_server";
     inherit version;
-    hash = "sha256-DttibJS6oigJvhMj+XcM8cAKlSsXCXWS5A0D5qOVFok=";
+    hash = "sha256-yAv7BJ6iAFPD2WQcKt1ISLOAc7958XKc6h+u0y/Bx44=";
   };
 
   nativeBuildInputs = [
@@ -118,6 +118,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/jupyter-server/jupyter_server/blob/v${version}/CHANGELOG.md";
     description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications";
+    mainProgram = "jupyter-server";
     homepage = "https://github.com/jupyter-server/jupyter_server";
     license = licenses.bsdOriginal;
     maintainers = lib.teams.jupyter.members;
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
index 409539ccb4a7..1f45886c84e5 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
@@ -53,6 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "JupyterHub Spawner using systemd for resource isolation";
+    mainProgram = "check-kernel.bash";
     homepage = "https://github.com/jupyterhub/systemdspawner";
     changelog = "https://github.com/jupyterhub/systemdspawner/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab-lsp/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab-lsp/default.nix
index eba16194d69c..deecae0b7ea5 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterlab-lsp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab-lsp/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab-lsp";
-  version = "5.0.3";
+  version = "5.1.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qcijpkZJS+SE1+MXSrHSQV7WD0dzzshHmqW6N+XwS8k=";
+    hash = "sha256-rqyECTrabSDvV64Ol4EcxXlqDKtyN7Mvjt35k8C7A1Y=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab-server/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab-server/default.nix
index 4eed7af804c0..c1470c58893d 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterlab-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab-server/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab-server";
-  version = "2.25.2";
+  version = "2.25.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "jupyterlab_server";
     inherit version;
-    hash = "sha256-vQ7HqZ687ci8/5Oe+G5Sw3jkTCcH4FP82B0EbOl57mM=";
+    hash = "sha256-IJgZjh6C4NuYJED5tRNhddc76izUKmSAqm/VAssjxPk=";
   };
 
   postPatch = ''
@@ -70,6 +70,10 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
+  pytestFlagsArray = [
+    "-W" "ignore::DeprecationWarning"
+  ];
+
   disabledTestPaths = [
     # require optional language pack packages for tests
     "tests/test_translation_api.py"
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
index ed909d15f6a6..4be3dc7b1487 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
@@ -4,6 +4,7 @@
 , hatch-jupyter-builder
 , hatchling
 , async-lru
+, httpx
 , packaging
 , tornado
 , ipykernel
@@ -19,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "4.0.12";
+  version = "4.1.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ll2S76gqU47XDMs5aNmqu6eIhA2oguE9ewYXgM3tw7c=";
+    hash = "sha256-4DyCwSStigiS5Ji53eecUIaLLCZ4Gayj9VzkfFfr6x0=";
   };
 
   nativeBuildInputs = [
@@ -36,6 +37,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     async-lru
+    httpx
     packaging
     tornado
     ipykernel
diff --git a/nixpkgs/pkgs/development/python-modules/jwcrypto/default.nix b/nixpkgs/pkgs/development/python-modules/jwcrypto/default.nix
index d9d666c8e60c..2c00e2be9f8d 100644
--- a/nixpkgs/pkgs/development/python-modules/jwcrypto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jwcrypto/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "jwcrypto";
-  version = "1.5.5";
+  version = "1.5.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-WefV5FidGwcXDzaOIMMusyoCORGAapcjsfQ6DYswKNY=";
+    hash = "sha256-dxqHdioMCBrmFmlYqVT4CEiCCyqwZpN9yLg3nWWxsDk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/k5test/default.nix b/nixpkgs/pkgs/development/python-modules/k5test/default.nix
index aa7d1c172c67..dbab01e01a54 100644
--- a/nixpkgs/pkgs/development/python-modules/k5test/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/k5test/default.nix
@@ -1,23 +1,24 @@
 { lib
+, stdenv
 , buildPythonPackage
 , pythonOlder
 , fetchPypi
 , substituteAll
 , findutils
 , krb5
-, stdenv
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "k5test";
-  version = "0.10.3";
-  format = "setuptools";
+  version = "0.10.4";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nJ3uvK1joxXoGDPUXp/RK/IBZmQ7iry5/29NaxhMVx8=";
+    hash = "sha256-4VJJHmYC9qk7PVM9OHvUWQ8kdgk7aEIXD/C5PeZL7zA=";
   };
 
   patches = [
@@ -29,16 +30,23 @@ buildPythonPackage rec {
     })
   ];
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # No tests
   doCheck = false;
 
-  pythonImportsCheck = [ "k5test" ];
+  pythonImportsCheck = [
+    "k5test"
+  ];
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "Library for setting up self-contained Kerberos 5 environment";
     homepage = "https://github.com/pythongssapi/k5test";
+    changelog = "https://github.com/pythongssapi/k5test/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/kaggle/default.nix b/nixpkgs/pkgs/development/python-modules/kaggle/default.nix
index 1de5eff46285..e2d0f67bc2cb 100644
--- a/nixpkgs/pkgs/development/python-modules/kaggle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kaggle/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Official API for https://www.kaggle.com, accessible using a command line tool implemented in Python 3";
+    mainProgram = "kaggle";
     homepage = "https://github.com/Kaggle/kaggle-api";
     license = licenses.asl20;
     maintainers = with maintainers; [ mbalatsko ];
diff --git a/nixpkgs/pkgs/development/python-modules/kajiki/default.nix b/nixpkgs/pkgs/development/python-modules/kajiki/default.nix
index e11e16fbedbc..a4c92ea35ed7 100644
--- a/nixpkgs/pkgs/development/python-modules/kajiki/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kajiki/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module provides fast well-formed XML templates";
+    mainProgram = "kajiki";
     homepage = "https://github.com/nandoflorestan/kajiki";
     changelog = "https://github.com/jackrosenthal/kajiki/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/kanidm/default.nix b/nixpkgs/pkgs/development/python-modules/kanidm/default.nix
index fc53fc81ed70..88b98a1b5e79 100644
--- a/nixpkgs/pkgs/development/python-modules/kanidm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kanidm/default.nix
@@ -22,7 +22,7 @@ let
   pname = "kanidm";
   version = "0.0.3-unstable-2023-08-23";
 in
-buildPythonPackage {
+buildPythonPackage rec {
   inherit pname version;
   pyproject = true;
 
@@ -35,7 +35,7 @@ buildPythonPackage {
     hash = "sha256-5qQb+Itguw2v1Wdvc2vp00zglfvNd3LFEDvaweRJcOc=";
   };
 
-  sourceRoot = "source/pykanidm";
+  sourceRoot = "${src.name}/pykanidm";
 
   nativeBuildInputs = [
     poetry-core
diff --git a/nixpkgs/pkgs/development/python-modules/kaptan/default.nix b/nixpkgs/pkgs/development/python-modules/kaptan/default.nix
index c86e2a2d6f3a..d570ae3b0066 100644
--- a/nixpkgs/pkgs/development/python-modules/kaptan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kaptan/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Configuration manager for python applications";
+    mainProgram = "kaptan";
     homepage = "https://kaptan.readthedocs.io/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/karton-asciimagic/default.nix b/nixpkgs/pkgs/development/python-modules/karton-asciimagic/default.nix
index fee502989ba0..ffed577e7222 100644
--- a/nixpkgs/pkgs/development/python-modules/karton-asciimagic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/karton-asciimagic/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Decoders for ascii-encoded executables for the Karton framework";
+    mainProgram = "karton-asciimagic";
     homepage = "https://github.com/CERT-Polska/karton-asciimagic";
     changelog = "https://github.com/CERT-Polska/karton-asciimagic/releases/tag/v${version}";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/karton-autoit-ripper/default.nix b/nixpkgs/pkgs/development/python-modules/karton-autoit-ripper/default.nix
index 7bdac115385f..f4a8e2f5868b 100644
--- a/nixpkgs/pkgs/development/python-modules/karton-autoit-ripper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/karton-autoit-ripper/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "AutoIt script ripper for Karton framework";
+    mainProgram = "karton-autoit-ripper";
     homepage = "https://github.com/CERT-Polska/karton-autoit-ripper";
     changelog = "https://github.com/CERT-Polska/karton-autoit-ripper/releases/tag/v${version}";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/karton-classifier/default.nix b/nixpkgs/pkgs/development/python-modules/karton-classifier/default.nix
index 9f19e1ab6b9e..bb104b291491 100644
--- a/nixpkgs/pkgs/development/python-modules/karton-classifier/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/karton-classifier/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "File type classifier for the Karton framework";
+    mainProgram = "karton-classifier";
     homepage = "https://github.com/CERT-Polska/karton-classifier";
     changelog = "https://github.com/CERT-Polska/karton-classifier/releases/tag/v${version}";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/karton-config-extractor/default.nix b/nixpkgs/pkgs/development/python-modules/karton-config-extractor/default.nix
index 8d8b51bc842f..90ede387f922 100644
--- a/nixpkgs/pkgs/development/python-modules/karton-config-extractor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/karton-config-extractor/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Static configuration extractor for the Karton framework";
+    mainProgram = "karton-config-extractor";
     homepage = "https://github.com/CERT-Polska/karton-config-extractor";
     changelog = "https://github.com/CERT-Polska/karton-config-extractor/releases/tag/v${version}";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/karton-dashboard/default.nix b/nixpkgs/pkgs/development/python-modules/karton-dashboard/default.nix
index 60e21e63b116..b90653dddd46 100644
--- a/nixpkgs/pkgs/development/python-modules/karton-dashboard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/karton-dashboard/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Web application that allows for Karton task and queue introspection";
+    mainProgram = "karton-dashboard";
     homepage = "https://github.com/CERT-Polska/karton-dashboard";
     changelog = "https://github.com/CERT-Polska/karton-dashboard/releases/tag/v${version}";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/karton-mwdb-reporter/default.nix b/nixpkgs/pkgs/development/python-modules/karton-mwdb-reporter/default.nix
index 090b19f02ce7..0fd9713beaf6 100644
--- a/nixpkgs/pkgs/development/python-modules/karton-mwdb-reporter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/karton-mwdb-reporter/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Karton service that uploads analyzed artifacts and metadata to MWDB Core";
+    mainProgram = "karton-mwdb-reporter";
     homepage = "https://github.com/CERT-Polska/karton-mwdb-reporter";
     changelog = "https://github.com/CERT-Polska/karton-mwdb-reporter/releases/tag/v${version}";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/karton-yaramatcher/default.nix b/nixpkgs/pkgs/development/python-modules/karton-yaramatcher/default.nix
index 2c6dc57d9966..1d5c4d56173e 100644
--- a/nixpkgs/pkgs/development/python-modules/karton-yaramatcher/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/karton-yaramatcher/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "File and analysis artifacts yara matcher for the Karton framework";
+    mainProgram = "karton-yaramatcher";
     homepage = "https://github.com/CERT-Polska/karton-yaramatcher";
     changelog = "https://github.com/CERT-Polska/karton-yaramatcher/releases/tag/v${version}";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/kazoo/default.nix b/nixpkgs/pkgs/development/python-modules/kazoo/default.nix
index fe11b2538cce..eedbd7da41f1 100644
--- a/nixpkgs/pkgs/development/python-modules/kazoo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kazoo/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "kazoo";
-  version = "2.9.0";
+  version = "2.10.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gAMYx/PatkjN9hbfslvavu+rKmg3qmlR4Po/+A5laWk=";
+    hash = "sha256-kFeWrk9MEr1OSukubl0BhDnmtWyM+7JIJTYuebIw2rE=";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/keep/default.nix b/nixpkgs/pkgs/development/python-modules/keep/default.nix
index e381feb6dd4e..354ce597e6ec 100644
--- a/nixpkgs/pkgs/development/python-modules/keep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keep/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/orkohunter/keep";
     description = "A Meta CLI toolkit: Personal shell command keeper and snippets manager";
+    mainProgram = "keep";
     platforms = platforms.all;
     license = licenses.mit;
     maintainers = with maintainers; [ ris ];
diff --git a/nixpkgs/pkgs/development/python-modules/keepkey/default.nix b/nixpkgs/pkgs/development/python-modules/keepkey/default.nix
index a65116524633..d4a62c74a639 100644
--- a/nixpkgs/pkgs/development/python-modules/keepkey/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keepkey/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "KeepKey Python client";
+    mainProgram = "keepkeyctl";
     homepage = "https://github.com/keepkey/python-keepkey";
     license = licenses.gpl3;
     maintainers = with maintainers; [ np ];
diff --git a/nixpkgs/pkgs/development/python-modules/keras/default.nix b/nixpkgs/pkgs/development/python-modules/keras/default.nix
index b91925b574e6..c74579296223 100644
--- a/nixpkgs/pkgs/development/python-modules/keras/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keras/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "keras";
-  version = "3.0.0";
+  version = "3.0.5";
   format = "wheel";
 
   src = fetchPypi {
     inherit format pname version;
-    hash = "sha256-/z8++iqlzBNLHYuFaTqrMlWLHZyGBjChP1iTTm0ckI0=";
+    hash = "sha256-SgIvLpfqWj2xLtgJ/8t84e+NNP6urFIxXshVPe0tz5c=";
     python = "py3";
     dist = "py3";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/keyring-pass/default.nix b/nixpkgs/pkgs/development/python-modules/keyring-pass/default.nix
index c9ac11c9313a..6c8d5f1e915b 100644
--- a/nixpkgs/pkgs/development/python-modules/keyring-pass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keyring-pass/default.nix
@@ -9,7 +9,7 @@
 }:
 buildPythonPackage rec {
   pname = "keyring-pass";
-  version = "0.9.2";
+  version = "0.9.3";
   disabled = pythonOlder "3.6";
 
   pyproject = true;
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "nazarewk";
     repo = "keyring_pass";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Sf7eDOB3prH2s6BzdBtxewSweC0ibLXVxNHBJRRaJe4=";
+    hash = "sha256-EsM+RUhYtelslRpxR5NQbqpOt8KaeCsFqkqZ1ZFx0I0=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/keyring/default.nix b/nixpkgs/pkgs/development/python-modules/keyring/default.nix
index 28df79fb9998..ba2c56d99682 100644
--- a/nixpkgs/pkgs/development/python-modules/keyring/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keyring/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "keyring";
-  version = "24.3.0";
+  version = "24.3.1";
   pyproject = true;
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-5zDs/9MJZYoI7oJTWjtexLTIZpqb4R77ZiSdjgrrmiU=";
+    hash = "sha256-wzJ7b/r8DovvvbWXys20ko/+XBIS92RfGG5tmVeomNs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/keyrings-cryptfile/default.nix b/nixpkgs/pkgs/development/python-modules/keyrings-cryptfile/default.nix
index 6265ef7bb756..1621bcb30d95 100644
--- a/nixpkgs/pkgs/development/python-modules/keyrings-cryptfile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keyrings-cryptfile/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Encrypted file keyring backend";
+    mainProgram = "cryptfile-convert";
     homepage = "https://github.com/frispete/keyrings.cryptfile";
     changelog = "https://github.com/frispete/keyrings.cryptfile/blob/v${version}/CHANGES.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/keystoneauth1/default.nix b/nixpkgs/pkgs/development/python-modules/keystoneauth1/default.nix
index c3e13d8b0fc4..412080ba846f 100644
--- a/nixpkgs/pkgs/development/python-modules/keystoneauth1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keystoneauth1/default.nix
@@ -25,12 +25,12 @@
 
 buildPythonPackage rec {
   pname = "keystoneauth1";
-  version = "5.4.0";
+  version = "5.6.0";
   pyproject= true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GsE0FRzrAuULaK143smCG/if5TvTb8hlhQHEewfL31M=";
+    hash = "sha256-7LfzR1nr4QPbNyqwlTwLghkp3dSX8zKqaz72yqz/7Yg=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/khanaa/default.nix b/nixpkgs/pkgs/development/python-modules/khanaa/default.nix
new file mode 100644
index 000000000000..8548def29c3d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/khanaa/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+, pythonOlder
+
+, unittestCheckHook
+
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "khanaa";
+  version = "0.0.6";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "cakimpei";
+    repo = "khanaa";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-BzxNHYMkp5pdJYQ80EI5jlP654yX9woW7wz1jArCln4=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
+
+  unittestFlagsArray = [ "-s" "tests" ];
+
+  pythonImportsCheck = [ "khanaa" ];
+
+  meta = with lib;
+    {
+      description = "A tool to make spelling Thai more convenient";
+      homepage = "https://github.com/cakimpei/khanaa";
+      changelog = "https://github.com/cakimpei/khanaa/blob/main/CHANGELOG.md";
+      license = licenses.mit;
+      maintainers = with maintainers; [ vizid ];
+    };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/kinparse/default.nix b/nixpkgs/pkgs/development/python-modules/kinparse/default.nix
index 3352d25a3c07..9c3286d1c62c 100644
--- a/nixpkgs/pkgs/development/python-modules/kinparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kinparse/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "A Parser for KiCad EESCHEMA netlists";
+    mainProgram = "kinparse";
     homepage = "https://github.com/xesscorp/kinparse";
     license = licenses.mit;
     maintainers = with maintainers; [ matthuszagh ];
diff --git a/nixpkgs/pkgs/development/python-modules/kivy/default.nix b/nixpkgs/pkgs/development/python-modules/kivy/default.nix
index dd04b97010dd..d9b8e23fe416 100644
--- a/nixpkgs/pkgs/development/python-modules/kivy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kivy/default.nix
@@ -10,7 +10,7 @@
 }:
 
 buildPythonPackage rec {
-  pname = "Kivy";
+  pname = "kivy";
   version = "2.1.0";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/development/python-modules/klaus/default.nix b/nixpkgs/pkgs/development/python-modules/klaus/default.nix
index b46c2c65eee3..6b60c78465bb 100644
--- a/nixpkgs/pkgs/development/python-modules/klaus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/klaus/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "The first Git web viewer that Just Works";
+    mainProgram = "klaus";
     homepage    = "https://github.com/jonashaag/klaus";
     license     = licenses.isc;
     maintainers = with maintainers; [ pSub ];
diff --git a/nixpkgs/pkgs/development/python-modules/kml2geojson/default.nix b/nixpkgs/pkgs/development/python-modules/kml2geojson/default.nix
index 489e80f94f04..50f0097df7e8 100644
--- a/nixpkgs/pkgs/development/python-modules/kml2geojson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kml2geojson/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to convert KML to GeoJSON";
+    mainProgram = "k2g";
     homepage = "https://github.com/mrcagney/kml2geojson";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/kombu/default.nix b/nixpkgs/pkgs/development/python-modules/kombu/default.nix
index 27190f8733e8..1651d25c69ea 100644
--- a/nixpkgs/pkgs/development/python-modules/kombu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kombu/default.nix
@@ -92,6 +92,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
+  pytestFlagsArray = [
+    # pytest.PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   pythonImportsCheck = [
     "kombu"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/lacuscore/default.nix b/nixpkgs/pkgs/development/python-modules/lacuscore/default.nix
new file mode 100644
index 000000000000..fa7949eff097
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/lacuscore/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, async-timeout
+, buildPythonPackage
+, defang
+, dnspython
+, fetchFromGitHub
+, playwrightcapture
+, poetry-core
+, pythonOlder
+, redis
+, requests
+, pythonRelaxDepsHook
+, sphinx
+, ua-parser
+}:
+
+buildPythonPackage rec {
+  pname = "lacuscore";
+  version = "1.8.10";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "ail-project";
+    repo = "LacusCore";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-X3Bs/eMkpobRqiGB70ujvaIO1xWftEBZFyR9i5eN7/A=";
+  };
+
+  pythonRelaxDeps = [
+    "redis"
+  ];
+
+  nativeBuildInputs = [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = [
+    async-timeout
+    defang
+    dnspython
+    playwrightcapture
+    redis
+    requests
+    sphinx
+    ua-parser
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "lacuscore"
+  ];
+
+  meta = with lib; {
+    description = "The modulable part of Lacus";
+    homepage = "https://github.com/ail-project/LacusCore";
+    changelog = "https://github.com/ail-project/LacusCore/releases/tag/v${version}";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/langchain-community/default.nix b/nixpkgs/pkgs/development/python-modules/langchain-community/default.nix
index 6e7d6423384c..0f0492c1c4b4 100644
--- a/nixpkgs/pkgs/development/python-modules/langchain-community/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/langchain-community/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "langchain-community";
-  version = "0.0.26";
+  version = "0.0.27";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "langchain_community";
     inherit version;
-    hash = "sha256-K3W+HVDEWqMap4WYDnuFN0gUeJPSEe9nljJKYuqfrCg=";
+    hash = "sha256-Jm3/vUwWZtsYicrZU/pRAtTev/eCM1NTtteGNqdhd40=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/langchain-core/default.nix b/nixpkgs/pkgs/development/python-modules/langchain-core/default.nix
index 6e7b52a16b70..350e9a903690 100644
--- a/nixpkgs/pkgs/development/python-modules/langchain-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/langchain-core/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "langchain-core";
-  version = "0.1.30";
+  version = "0.1.32";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "langchain_core";
     inherit version;
-    hash = "sha256-4ToBblXn8IL/Pu7aLQy1BbiaiDDjojwdE00KideHGJQ=";
+    hash = "sha256-1iaDvsvyD1HxKHV5GgQjIPReqgyHomfTC8A7waB/XsI=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/langchain/default.nix b/nixpkgs/pkgs/development/python-modules/langchain/default.nix
index a0153b28ef7b..f9352c5f9876 100644
--- a/nixpkgs/pkgs/development/python-modules/langchain/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/langchain/default.nix
@@ -185,6 +185,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Building applications with LLMs through composability";
+    mainProgram = "langchain-server";
     homepage = "https://github.com/langchain-ai/langchain";
     changelog = "https://github.com/langchain-ai/langchain/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/langid/default.nix b/nixpkgs/pkgs/development/python-modules/langid/default.nix
index fe8f07e85b23..1f1c16777300 100644
--- a/nixpkgs/pkgs/development/python-modules/langid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/langid/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Langid.py is a standalone Language Identification (LangID) tool";
+    mainProgram = "langid";
     homepage = "https://pypi.org/project/langid/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ mbalatsko ];
diff --git a/nixpkgs/pkgs/development/python-modules/langsmith/default.nix b/nixpkgs/pkgs/development/python-modules/langsmith/default.nix
index f74f7d4bd431..33fcdcad63f0 100644
--- a/nixpkgs/pkgs/development/python-modules/langsmith/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/langsmith/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "langsmith";
-  version = "0.1.22";
+  version = "0.1.31";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langsmith-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pxmlxx31bDojwEx7+UgMWS1jfhZufSeeCGOWpRp3y3M=";
+    hash = "sha256-eQ2oP1I7uc9s9vrDqKCIqMGuh1+MjUpLFukp3Fg0RM0=";
   };
 
   sourceRoot = "${src.name}/python";
@@ -82,6 +82,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform";
+    mainProgram = "langsmith";
     homepage = "https://github.com/langchain-ai/langsmith-sdk";
     changelog = "https://github.com/langchain-ai/langsmith-sdk/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/lark/default.nix b/nixpkgs/pkgs/development/python-modules/lark/default.nix
index 50f74dc2d811..93c900e307c3 100644
--- a/nixpkgs/pkgs/development/python-modules/lark/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lark/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "lark";
-  version = "1.1.8";
+  version = "1.1.9";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "lark-parser";
     repo = "lark";
     rev = "refs/tags/${version}";
-    hash = "sha256-bGNoQeiAC2JIFOhgYUnc+nApa2ovFzXnpl9JQAE11hM=";
+    hash = "sha256-pWLKjELy10VNumpBHjBYCO2TltKsZx1GhQcGMHsYJNk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/laspy/default.nix b/nixpkgs/pkgs/development/python-modules/laspy/default.nix
index 1cc46f2a36de..5375ed6f9ebe 100644
--- a/nixpkgs/pkgs/development/python-modules/laspy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/laspy/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Interface for reading/modifying/creating .LAS LIDAR files";
+    mainProgram = "laspy";
     homepage = "https://github.com/laspy/laspy";
     changelog = "https://github.com/laspy/laspy/blob/${version}/CHANGELOG.md";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/latexcodec/default.nix b/nixpkgs/pkgs/development/python-modules/latexcodec/default.nix
index ef677b82e03d..9286792de21b 100644
--- a/nixpkgs/pkgs/development/python-modules/latexcodec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/latexcodec/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "latexcodec";
-  version = "2.0.1";
+  version = "3.0.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16pynfnn8y8xp55yp06i721fccv5dlx9ba6k5bzcwq9j6wf5b8ia";
+    sha256 = "sha256-kX3F/iQnYswZ2WPmVItC1joRgCjN0zYdYjl+O2OLa8U=";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix b/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix
index 2eec2c6e2827..4026bbbe5531 100644
--- a/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "lazy-object-proxy";
-  version = "1.9.0";
+  version = "1.10.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZZ+1gJ+kYpuKGsUQb2ac/HvvJvuzid2lOz4BDRrE664=";
+    hash = "sha256-eCR7bUX0OlLvNcJbVYFFnoURciVAikEoo9r4v5ZIrGk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/lcov-cobertura/default.nix b/nixpkgs/pkgs/development/python-modules/lcov-cobertura/default.nix
index 2c9a3595fca5..a2f91b8436de 100644
--- a/nixpkgs/pkgs/development/python-modules/lcov-cobertura/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lcov-cobertura/default.nix
@@ -23,6 +23,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Converts code coverage from lcov format to Cobertura's XML format";
+    mainProgram = "lcov_cobertura";
     homepage = "https://eriwen.github.io/lcov-to-cobertura-xml/";
     license = lib.licenses.asl20;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/ldfparser/default.nix b/nixpkgs/pkgs/development/python-modules/ldfparser/default.nix
index 4b83fb53252e..d012e32da0f0 100644
--- a/nixpkgs/pkgs/development/python-modules/ldfparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ldfparser/default.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "LIN Description File parser written in Python";
+    mainProgram = "ldfparser";
     homepage = "https://github.com/c4deszes/ldfparser";
     changelog = "https://github.com/c4deszes/ldfparser/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/leather/default.nix b/nixpkgs/pkgs/development/python-modules/leather/default.nix
index e51f5f458868..138a412017fe 100644
--- a/nixpkgs/pkgs/development/python-modules/leather/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/leather/default.nix
@@ -4,17 +4,17 @@
 , six
 , cssselect
 , lxml
-, nose
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "leather";
-  version = "0.3.4";
+  version = "0.4.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b43e21c8fa46b2679de8449f4d953c06418666dc058ce41055ee8a8d3bb40918";
+    sha256 = "sha256-+WS+wghvMVOmwW5wfyDLcY+BH1evEWB19MD0gFxgi5U=";
   };
 
   propagatedBuildInputs = [ six ];
@@ -22,15 +22,9 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     cssselect
     lxml
-    nose
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    runHook preCheck
-    nosetests
-    runHook postCheck
-  '';
-
   meta = with lib; {
     homepage = "http://leather.rtfd.io";
     description = "Python charting library";
diff --git a/nixpkgs/pkgs/development/python-modules/ledgercomm/default.nix b/nixpkgs/pkgs/development/python-modules/ledgercomm/default.nix
index 94466d2dfaed..b4493eaa1a88 100644
--- a/nixpkgs/pkgs/development/python-modules/ledgercomm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ledgercomm/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library to send and receive APDU through HID or TCP socket. It can be used with a Ledger Nano S/X or with the Speculos emulator.";
+    mainProgram = "ledgercomm-send";
     homepage = "https://github.com/LedgerHQ/ledgercomm";
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/ledgerwallet/default.nix b/nixpkgs/pkgs/development/python-modules/ledgerwallet/default.nix
index c13f57ffd3f0..a8d9c612e157 100644
--- a/nixpkgs/pkgs/development/python-modules/ledgerwallet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ledgerwallet/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/LedgerHQ/ledgerctl";
     description = "A library to control Ledger devices";
+    mainProgram = "ledgerctl";
     license = licenses.mit;
     maintainers = with maintainers; [ d-xo erdnaxe ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/lexid/default.nix b/nixpkgs/pkgs/development/python-modules/lexid/default.nix
index 788cb1e2056b..42ebe98dccc9 100644
--- a/nixpkgs/pkgs/development/python-modules/lexid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lexid/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "micro library to increment lexically ordered numerical ids";
+    mainProgram = "lexid_incr";
     homepage = "https://pypi.org/project/lexid/";
     license = licenses.mit;
     maintainers = with maintainers; [ kfollesdal ];
diff --git a/nixpkgs/pkgs/development/python-modules/libretranslate/default.nix b/nixpkgs/pkgs/development/python-modules/libretranslate/default.nix
index 9dab13428a95..8afdbf97e184 100644
--- a/nixpkgs/pkgs/development/python-modules/libretranslate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libretranslate/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "libretranslate";
-  version = "1.5.2";
+  version = "1.5.6";
 
   format = "setuptools";
 
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "LibreTranslate";
     repo = "LibreTranslate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-8bbVpC53wH9GvwwHHlPEYQd/zqMXIqrwixwn4HY6FMg=";
+    hash = "sha256-43VnxgtapMRKyXxqsvBgSMUxvpbLI+iOfW3FA0/POpE=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/librouteros/default.nix b/nixpkgs/pkgs/development/python-modules/librouteros/default.nix
index 1de2afd290a6..5bb2072b7117 100644
--- a/nixpkgs/pkgs/development/python-modules/librouteros/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/librouteros/default.nix
@@ -30,6 +30,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    # pytest.PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   disabledTests = [
     # Disable tests which require QEMU to run
     "test_login"
diff --git a/nixpkgs/pkgs/development/python-modules/libsass/default.nix b/nixpkgs/pkgs/development/python-modules/libsass/default.nix
index 8c84a76dc994..85f4b24533e6 100644
--- a/nixpkgs/pkgs/development/python-modules/libsass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libsass/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python binding for libsass to compile Sass/SCSS";
+    mainProgram = "pysassc";
     homepage = "https://sass.github.io/libsass-python/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/libtmux/default.nix b/nixpkgs/pkgs/development/python-modules/libtmux/default.nix
index fbccd1be7363..7204e502d8ec 100644
--- a/nixpkgs/pkgs/development/python-modules/libtmux/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libtmux/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "libtmux";
-  version = "0.31.0";
+  version = "0.35.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "tmux-python";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-MzHS/HzEZ4vDfNRpJ9AU9vFkw7LwloltxyibxEGWRSw=";
+    hash = "sha256-1Xt2sl4L56TnveufD2j9k6eQQ+HllDxagv1APrErQYc=";
   };
 
   postPatch = ''
@@ -64,6 +64,6 @@ buildPythonPackage rec {
     homepage = "https://libtmux.git-pull.com/";
     changelog = "https://github.com/tmux-python/libtmux/raw/v${version}/CHANGES";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ otavio ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/liccheck/default.nix b/nixpkgs/pkgs/development/python-modules/liccheck/default.nix
index 713fc3cca23c..fc2f1945888c 100644
--- a/nixpkgs/pkgs/development/python-modules/liccheck/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/liccheck/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Check python packages from requirement.txt and report issues";
+    mainProgram = "liccheck";
     homepage = "https://github.com/dhatim/python-license-check";
     changelog = "https://github.com/dhatim/python-license-check/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/license-expression/default.nix b/nixpkgs/pkgs/development/python-modules/license-expression/default.nix
index 4988a3d25674..a17f4e829cae 100644
--- a/nixpkgs/pkgs/development/python-modules/license-expression/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/license-expression/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "license-expression";
-  version = "30.2.0";
+  version = "30.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "nexB";
     repo = "license-expression";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vsQsHi2jdB0OiV6stm1APjQvr+238UoKgaaeXVx/isI=";
+    hash = "sha256-nHqfnetVyz4W2Q6onH0mU/4x9e/vD4rbl9DF4TYqWzs=";
   };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/development/python-modules/lightning-utilities/default.nix b/nixpkgs/pkgs/development/python-modules/lightning-utilities/default.nix
index 53b0941fc36b..f1d94bad1af2 100644
--- a/nixpkgs/pkgs/development/python-modules/lightning-utilities/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lightning-utilities/default.nix
@@ -12,6 +12,7 @@
 # tests
 , pytest-timeout
 , pytestCheckHook
+, pytest_7
 }:
 
 buildPythonPackage rec {
@@ -41,7 +42,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytest-timeout
-    pytestCheckHook
+    (pytestCheckHook.override { pytest = pytest_7; })
   ];
 
   disabledTests = [
diff --git a/nixpkgs/pkgs/development/python-modules/limits/default.nix b/nixpkgs/pkgs/development/python-modules/limits/default.nix
index e0c1fcf9a14c..4fafc1180baf 100644
--- a/nixpkgs/pkgs/development/python-modules/limits/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/limits/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "limits";
-  version = "3.7.0";
+  version = "3.9.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/limits/_version.py"
     '';
-    hash = "sha256-0h3ofungHkjycUvNJ3jf+VB/GSrshgUDECN2YoPGzzg=";
+    hash = "sha256-X4nf9ifhJjTNKnQuAxRNK9j/MzfAC58kv+19zMWtKg8=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/line-profiler/default.nix b/nixpkgs/pkgs/development/python-modules/line-profiler/default.nix
index 10decb4f3f52..d50b3fa36f49 100644
--- a/nixpkgs/pkgs/development/python-modules/line-profiler/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/line-profiler/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Line-by-line profiler";
+    mainProgram = "kernprof";
     homepage = "https://github.com/pyutils/line_profiler";
     changelog = "https://github.com/pyutils/line_profiler/blob/v${version}/CHANGELOG.rst";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/linien-client/default.nix b/nixpkgs/pkgs/development/python-modules/linien-client/default.nix
index 0cbd9b2d9adb..8997c3454a38 100644
--- a/nixpkgs/pkgs/development/python-modules/linien-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/linien-client/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   inherit (linien-common) src version;
 
-  sourceRoot = "source/linien-client";
+  sourceRoot = "${src.name}/linien-client";
 
   preBuild = ''
     export HOME=$(mktemp -d)
diff --git a/nixpkgs/pkgs/development/python-modules/linien-common/default.nix b/nixpkgs/pkgs/development/python-modules/linien-common/default.nix
index 605fdd6f740e..f0fd4b920707 100644
--- a/nixpkgs/pkgs/development/python-modules/linien-common/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/linien-common/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-ZgAp1SEiHijyjK74VZyRLYY3Hzfc3BQ6cnoO3hZzvbE=";
   };
 
-  sourceRoot = "source/linien-common";
+  sourceRoot = "${src.name}/linien-common";
 
   preBuild = ''
     export HOME=$(mktemp -d)
diff --git a/nixpkgs/pkgs/development/python-modules/linkify-it-py/default.nix b/nixpkgs/pkgs/development/python-modules/linkify-it-py/default.nix
index 660e3cd2d9b9..f539303a5933 100644
--- a/nixpkgs/pkgs/development/python-modules/linkify-it-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/linkify-it-py/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "linkify-it-py";
-  version = "2.0.2";
+  version = "2.0.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "tsutsu3";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-e3k2RblqvzWSSIrJL6ib2dxFw7T5vXlN8DrCV1qEr6w=";
+    hash = "sha256-BLwIityUZDVdSbvTpLf6QUlZUavWzG/45Nfffn18/vU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/linknlink/default.nix b/nixpkgs/pkgs/development/python-modules/linknlink/default.nix
index 7bd25ff01545..44a2a15a8f81 100644
--- a/nixpkgs/pkgs/development/python-modules/linknlink/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/linknlink/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "linknlink";
-  version = "0.1.9";
+  version = "0.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "xuanxuan000";
     repo = "python-linknlink";
     rev = "refs/tags/${version}";
-    hash = "sha256-msKunZsAxA9xpCJmG4MVXuJDMEqrCeShvAqOw8zjSPM=";
+    hash = "sha256-MOZw+7oFHeH7Vaj6pylR7wqe3ZyHcsiG+n8jnRAQ8PA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/linode-api/default.nix b/nixpkgs/pkgs/development/python-modules/linode-api/default.nix
index c0c54862c6e8..1e94825cedc5 100644
--- a/nixpkgs/pkgs/development/python-modules/linode-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/linode-api/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "linode-api";
-  version = "5.10.0";
+  version = "5.13.1";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "linode";
     repo = "python-linode-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LQW1AKgCbsE2OxZHtuU6zSHv7/Ak2S07O8YuoC9mS+U=";
+    hash = "sha256-WB4CurdokRKh1eD6FZR2SeMpa3Z0BzLb0ldI7SYPEVI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/lit/default.nix b/nixpkgs/pkgs/development/python-modules/lit/default.nix
index d7dd857c360b..9b63a4e88377 100644
--- a/nixpkgs/pkgs/development/python-modules/lit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lit/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Portable tool for executing LLVM and Clang style test suites";
+    mainProgram = "lit";
     homepage = "http://llvm.org/docs/CommandGuide/lit.html";
     license = lib.licenses.ncsa;
     maintainers = with lib.maintainers; [ dtzWill ];
diff --git a/nixpkgs/pkgs/development/python-modules/litellm/default.nix b/nixpkgs/pkgs/development/python-modules/litellm/default.nix
index b11a4ba49cc7..c65bf018ed04 100644
--- a/nixpkgs/pkgs/development/python-modules/litellm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/litellm/default.nix
@@ -33,7 +33,7 @@
 
 buildPythonPackage rec {
   pname = "litellm";
-  version = "1.28.11";
+  version = "1.33.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     owner = "BerriAI";
     repo = "litellm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6RhJjrPS62f+qoNFQ8qRelZmA8Er9Myz8CF1c/fhBTc=";
+    hash = "sha256-o2MqZ9d2YDe0eQtao9OO9Ysl3cKTGiHqaYknOvcyCT4=";
   };
 
   postPatch = ''
@@ -97,6 +97,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Use any LLM as a drop in replacement for gpt-3.5-turbo. Use Azure, OpenAI, Cohere, Anthropic, Ollama, VLLM, Sagemaker, HuggingFace, Replicate (100+ LLMs)";
+    mainProgram = "litellm";
     homepage = "https://github.com/BerriAI/litellm";
     changelog = "https://github.com/BerriAI/litellm/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/livereload/default.nix b/nixpkgs/pkgs/development/python-modules/livereload/default.nix
index 5943671d6fc2..15b9d121862f 100644
--- a/nixpkgs/pkgs/development/python-modules/livereload/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/livereload/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Runs a local server that reloads as you develop";
+    mainProgram = "livereload";
     homepage = "https://github.com/lepture/python-livereload";
     license = lib.licenses.bsd3;
     maintainers = with lib; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/lizard/default.nix b/nixpkgs/pkgs/development/python-modules/lizard/default.nix
index fa3140a9f661..027fcc2a15af 100644
--- a/nixpkgs/pkgs/development/python-modules/lizard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lizard/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/terryyin/lizard/blob/${version}/CHANGELOG.md";
     description = "Code analyzer without caring the C/C++ header files";
+    mainProgram = "lizard";
     downloadPage = "https://github.com/terryyin/lizard";
     homepage = "http://www.lizard.ws";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/llama-index-core/default.nix b/nixpkgs/pkgs/development/python-modules/llama-index-core/default.nix
index 96b5b4a41b5e..df6e3b92e289 100644
--- a/nixpkgs/pkgs/development/python-modules/llama-index-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/llama-index-core/default.nix
@@ -30,7 +30,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-core";
-  version = "0.10.17";
+  version = "0.10.20";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     owner = "run-llama";
     repo = "llama_index";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RxBALghAXVs6nn1ITdU/sDp9QU/kJAy7GdFxjE592lI=";
+    hash = "sha256-F7k5gtmhFdn369Ws5PSJ/xTid6ONstoWPotk+DmDtLw=";
   };
 
   sourceRoot = "${src.name}/${pname}";
diff --git a/nixpkgs/pkgs/development/python-modules/llama-parse/default.nix b/nixpkgs/pkgs/development/python-modules/llama-parse/default.nix
index dd03d12d827a..284f03f67a59 100644
--- a/nixpkgs/pkgs/development/python-modules/llama-parse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/llama-parse/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "llama-parse";
-  version = "0.3.7";
+  version = "0.3.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_parse";
     inherit version;
-    hash = "sha256-MXBqYQ0ocpwrR0FFXJqcHt9HEXG0udKnE4qgZGVnEqY=";
+    hash = "sha256-vra6Tbt6V3CKtvEPfVMUFZjjneGgQKYeb1pxw6XVaxM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/lmcloud/default.nix b/nixpkgs/pkgs/development/python-modules/lmcloud/default.nix
index 5b048bf3e346..9712527f86a7 100644
--- a/nixpkgs/pkgs/development/python-modules/lmcloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lmcloud/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "lmcloud";
-  version = "0.4.35";
+  version = "1.1.4";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -20,14 +20,14 @@ buildPythonPackage rec {
     owner = "zweckj";
     repo = "lmcloud";
     rev = "refs/tags/v${version}";
-    hash = "sha256-TUve21yamtEmEceK/V1w7IZjnMgKConMfSY/GlqFpp8=";
+    hash = "sha256-uiyZGFfSJrTjw0CvHrCor4Ef5hdkMbEHGHQH3+NxYWE=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     authlib
     bleak
     httpx
diff --git a/nixpkgs/pkgs/development/python-modules/lnkparse3/default.nix b/nixpkgs/pkgs/development/python-modules/lnkparse3/default.nix
new file mode 100644
index 000000000000..94fd7aaee190
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/lnkparse3/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "lnkparse3";
+  version = "1.4.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Matmaus";
+    repo = "LnkParse3";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-aWMkLFbmikdj4mlAPpo0qrxfE8zgRcSV83aiws03XsQ=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "LnkParse3"
+  ];
+
+  meta = with lib; {
+    description = "Windows Shortcut file (LNK) parser";
+    homepage = "https://github.com/Matmaus/LnkParse3";
+    changelog = "https://github.com/Matmaus/LnkParse3/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/localstack-ext/default.nix b/nixpkgs/pkgs/development/python-modules/localstack-ext/default.nix
index 1386ce2cb712..23423950c23a 100644
--- a/nixpkgs/pkgs/development/python-modules/localstack-ext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/localstack-ext/default.nix
@@ -28,12 +28,12 @@
 
 buildPythonPackage rec {
   pname = "localstack-ext";
-  version = "3.0.2";
+  version = "3.2.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KNM/HjSWVwenLqtXbaRP70k7b7YXk//aKGEkBxPp1fA=";
+    hash = "sha256-53pbt7kNaYQRsLb+OI8gLwR3cBE18ZKLZmG4aP1/93E=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/localstack/default.nix b/nixpkgs/pkgs/development/python-modules/localstack/default.nix
index 39b27be9f93f..13a791482296 100644
--- a/nixpkgs/pkgs/development/python-modules/localstack/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/localstack/default.nix
@@ -21,14 +21,14 @@
 
 buildPythonPackage rec {
   pname = "localstack";
-  version = "3.0.2";
+  version = "3.2.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "localstack";
     repo = "localstack";
     rev = "refs/tags/v${version}";
-    hash = "sha256-HncD/lhYfBrqtXF8F1Gz7JqwrASoHbsXvp1HXM5rldw=";
+    hash = "sha256-r0KRPtsLr6Pyn/va93reLdHHKtiOLB1uflAJ2L/uZmU=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/logilab/common.nix b/nixpkgs/pkgs/development/python-modules/logilab/common.nix
index cc08451950fe..b8fadc0832ad 100644
--- a/nixpkgs/pkgs/development/python-modules/logilab/common.nix
+++ b/nixpkgs/pkgs/development/python-modules/logilab/common.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python packages and modules used by Logilab ";
+    mainProgram = "logilab-pytest";
     homepage = "https://logilab-common.readthedocs.io/";
     changelog = "https://forge.extranet.logilab.fr/open-source/logilab-common/-/blob/branch/default/CHANGELOG.md";
     license = licenses.lgpl21Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/logster/default.nix b/nixpkgs/pkgs/development/python-modules/logster/default.nix
index d0603fcdf0b3..2bc6981955b1 100644
--- a/nixpkgs/pkgs/development/python-modules/logster/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/logster/default.nix
@@ -16,6 +16,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Parses log files, generates metrics for Graphite and Ganglia";
+    mainProgram = "logster";
     license = licenses.gpl3Plus;
     homepage = "https://github.com/etsy/logster";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/loopy/default.nix b/nixpkgs/pkgs/development/python-modules/loopy/default.nix
index 8bdde865df9b..995c99e100ec 100644
--- a/nixpkgs/pkgs/development/python-modules/loopy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/loopy/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "loopy";
-  version = "2020.2.1";
+  version = "2024.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,8 +25,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "inducer";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-GL2GY3fbP9yMEQYyuh4CRHpeN9DGnZxbMt6jC+O/C0g=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-R0Wry4r8Y7VKqsyrZ3odEOUy4T9di9rFQzq7BD0LG58=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/lpc-checksum/default.nix b/nixpkgs/pkgs/development/python-modules/lpc-checksum/default.nix
index 2ebdba9fe095..9a0249980360 100644
--- a/nixpkgs/pkgs/development/python-modules/lpc-checksum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lpc-checksum/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python script to calculate LPC firmware checksums";
+    mainProgram = "lpc_checksum";
     homepage = "https://pypi.org/project/lpc-checksum/";
     license = licenses.mit;
     maintainers = with maintainers; [ otavio ];
diff --git a/nixpkgs/pkgs/development/python-modules/lsassy/default.nix b/nixpkgs/pkgs/development/python-modules/lsassy/default.nix
index a7860e91542e..dea8c8d194aa 100644
--- a/nixpkgs/pkgs/development/python-modules/lsassy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lsassy/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to extract data from Local Security Authority Subsystem Service (LSASS)";
+    mainProgram = "lsassy";
     homepage = "https://github.com/Hackndo/lsassy";
     changelog = "https://github.com/Hackndo/lsassy/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/ltpycld2/default.nix b/nixpkgs/pkgs/development/python-modules/ltpycld2/default.nix
index 558dab085dd9..b8e19ae49990 100644
--- a/nixpkgs/pkgs/development/python-modules/ltpycld2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ltpycld2/default.nix
@@ -5,13 +5,14 @@
 }:
 
 buildPythonPackage rec {
-  pname = "LTpycld2";
+  pname = "ltpycld2";
   version = "0.42";
 
   format = "setuptools";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "LTpycld2";
+    inherit version;
     sha256 = "948d0c1ab5518ab4efcbcc3cd73bb29f809f1dfb30f4d2fbd81b175a1ffeb516";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/luddite/default.nix b/nixpkgs/pkgs/development/python-modules/luddite/default.nix
index d6ff66594f47..4059288da674 100644
--- a/nixpkgs/pkgs/development/python-modules/luddite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/luddite/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "luddite";
-  version = "1.0.3";
+  version = "1.0.4";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "jumptrading";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-JXIM7/5LO95oabM16GwAt3v3a8uldGpGXDWmVic8Ins=";
+    hash = "sha256-iJ3h1XRBzLd4cBKFPNOlIV5Z5XJ/miscfIdkpPIpbJ8=";
   };
 
   postPatch = ''
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Checks for out-of-date package versions";
+    mainProgram = "luddite";
     homepage = "https://github.com/jumptrading/luddite";
     license = licenses.asl20;
     maintainers = with maintainers; [ emilytrau ];
diff --git a/nixpkgs/pkgs/development/python-modules/lunarcalendar/default.nix b/nixpkgs/pkgs/development/python-modules/lunarcalendar/default.nix
index e5233fec6cb7..03a94e5e4cdc 100644
--- a/nixpkgs/pkgs/development/python-modules/lunarcalendar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lunarcalendar/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
   meta = {
     homepage = "https://github.com/wolfhong/LunarCalendar";
     description = "A Lunar-Solar Converter, containing a number of lunar and solar festivals in China";
+    mainProgram = "lunar-find";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ tomasajt ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/lupupy/default.nix b/nixpkgs/pkgs/development/python-modules/lupupy/default.nix
index 7be84dae9bc3..946d79da85dc 100644
--- a/nixpkgs/pkgs/development/python-modules/lupupy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lupupy/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to control Lupusec alarm control panels";
+    mainProgram = "lupupy";
     homepage = "https://github.com/majuss/lupupy";
     changelog = "https://github.com/majuss/lupupy/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/lxmf/default.nix b/nixpkgs/pkgs/development/python-modules/lxmf/default.nix
index 2ce4565ecf82..6a3f45b414b7 100644
--- a/nixpkgs/pkgs/development/python-modules/lxmf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lxmf/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "lxmf";
-  version = "0.4.1";
+  version = "0.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "lxmf";
     rev = "refs/tags/${version}";
-    hash = "sha256-sEim7bCLLkHo6A1onbDQruyNigVKtim5DDAQI8CYUVo=";
+    hash = "sha256-JDD1X0/5xuqGN/Qw67tTFqfoWUd7Ah80/mimK01tG6Y=";
   };
 
   nativeBuildInputs = [
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Lightweight Extensible Message Format for Reticulum";
+    mainProgram = "lxmd";
     homepage = "https://github.com/markqvist/lxmf";
     changelog = "https://github.com/markqvist/LXMF/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/lyricwikia/default.nix b/nixpkgs/pkgs/development/python-modules/lyricwikia/default.nix
index 6f2bed6acb20..05360af054fc 100644
--- a/nixpkgs/pkgs/development/python-modules/lyricwikia/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lyricwikia/default.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "LyricWikia API for song lyrics";
+    mainProgram = "lyrics";
     homepage = "https://github.com/enricobacis/lyricwikia";
     changelog = "https://github.com/enricobacis/lyricwikia/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/lz4/default.nix b/nixpkgs/pkgs/development/python-modules/lz4/default.nix
index 8bc09d315a3a..4110a96a3328 100644
--- a/nixpkgs/pkgs/development/python-modules/lz4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lz4/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "python-lz4";
-  version = "4.3.2";
+  version = "4.3.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-aVnXCrTh+0Ip+FgYWN7hLw8N3iQCmXSywhReD5RTUfI=";
+    hash = "sha256-ZvGUkb9DoheYY2/sejUhxgh2lS5eoBrFCXR4E0IcFcs=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/m2crypto/default.nix b/nixpkgs/pkgs/development/python-modules/m2crypto/default.nix
index 7353831bad39..48a4cba83ddb 100644
--- a/nixpkgs/pkgs/development/python-modules/m2crypto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/m2crypto/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "m2crypto";
-  version = "0.40.1";
+  version = "0.41.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "M2Crypto";
     inherit version;
-    hash = "sha256-u/0RPsVXCMBYFiUqTwnkI33087v8gXHLvDMFfSV7uzA=";
+    hash = "sha256-OhNYx+6EkEbZF4Knd/F4a/AnocHVG1+vjxlDW/w/FJU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/m3u8/default.nix b/nixpkgs/pkgs/development/python-modules/m3u8/default.nix
index 9ff8dfbf0e73..af3681f453ca 100644
--- a/nixpkgs/pkgs/development/python-modules/m3u8/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/m3u8/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "m3u8";
-  version = "3.6.0";
+  version = "4.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "globocom";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-JLYRkibcvmNct2eIBfBP7z3gR680xhZL/Kn/1S7feoo=";
+    hash = "sha256-sxLT3a9f38RZqzEzqyZos3G38vzHPzhMexfBN2qzbxQ=";
   };
 
   propagatedBuildInputs = [
@@ -35,6 +35,7 @@ buildPythonPackage rec {
     "test_load_should_create_object_from_uri"
     "test_load_should_create_object_from_uri_with_relative_segments"
     "test_load_should_remember_redirect"
+    "test_raise_timeout_exception_if_timeout_happens_when_loading_from_uri"
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/mac-alias/default.nix b/nixpkgs/pkgs/development/python-modules/mac-alias/default.nix
index 159dfa1d89ad..913ea42403ed 100644
--- a/nixpkgs/pkgs/development/python-modules/mac-alias/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mac-alias/default.nix
@@ -27,6 +27,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/al45tair/mac_alias";
     description = "Generate or read binary Alias and Bookmark records from Python code";
+    mainProgram = "mac_alias";
     longDescription = ''
       mac_alias lets you generate or read binary Alias and Bookmark records from Python code.
 
diff --git a/nixpkgs/pkgs/development/python-modules/mac-vendor-lookup/default.nix b/nixpkgs/pkgs/development/python-modules/mac-vendor-lookup/default.nix
index d4a1be562f9e..dbbd16dd6ea2 100644
--- a/nixpkgs/pkgs/development/python-modules/mac-vendor-lookup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mac-vendor-lookup/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Find the vendor for a given MAC address";
+    mainProgram = "mac_vendor_lookup";
     homepage = "https://github.com/bauerj/mac_vendor_lookup";
     license = licenses.asl20;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/development/python-modules/macfsevents/default.nix b/nixpkgs/pkgs/development/python-modules/macfsevents/default.nix
index aa65bb91bad0..b999706dafde 100644
--- a/nixpkgs/pkgs/development/python-modules/macfsevents/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/macfsevents/default.nix
@@ -6,11 +6,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "MacFSEvents";
+  pname = "macfsevents";
   version = "0.8.4";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "MacFSEvents";
+    inherit version;
     sha256 = "sha256-v3KD8dUXdkzNyBlbIWMdu6wcUGuSC/mo6ilWsxJ2Ucs=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/maestral/default.nix b/nixpkgs/pkgs/development/python-modules/maestral/default.nix
index 4645174e122f..92c8dee9b0be 100644
--- a/nixpkgs/pkgs/development/python-modules/maestral/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/maestral/default.nix
@@ -23,6 +23,7 @@
 , watchdog
 , pytestCheckHook
 , nixosTests
+, pythonRelaxDepsHook
 }:
 
 buildPythonPackage rec {
@@ -67,6 +68,14 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    # https://github.com/samschott/maestral/commit/2c50d2ddb49a845ea97bd6b0f68c45d723fb304c
+    # Allow the use of survey >= 5
+    # Remove after new maestral release along with pythonRelaxDepsHook
+    "survey"
   ];
 
   preCheck = ''
@@ -96,6 +105,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Open-source Dropbox client for macOS and Linux";
+    mainProgram = "maestral";
     homepage = "https://maestral.app";
     changelog = "https://github.com/samschott/maestral/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/magika/default.nix b/nixpkgs/pkgs/development/python-modules/magika/default.nix
new file mode 100644
index 000000000000..6e4099004317
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/magika/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, click
+, fetchPypi
+, magika
+, numpy
+, onnxruntime
+, poetry-core
+, python-dotenv
+, pythonOlder
+, stdenv
+, tabulate
+, testers
+, tqdm
+}:
+
+buildPythonPackage rec {
+  pname = "magika";
+  version = "0.5.0";
+  pyproject = true;
+  disabled = pythonOlder "3.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-r6C7iDCG/o3JEvweQGb4upr+LuHvmNtkwtduZGehCsc=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    click
+    numpy
+    onnxruntime
+    python-dotenv
+    tabulate
+    tqdm
+  ];
+
+  pythonImportsCheck = [ "magika" ];
+
+  passthru.tests.version = testers.testVersion { package = magika; };
+
+  meta = with lib; {
+    description = "Magika: Detect file content types with deep learning";
+    homepage = "https://github.com/google/magika";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mihaimaruseac ];
+    mainProgram = "magika";
+    # Currently, disabling on AArch64 as it onnx runtime crashes on ofborg
+    broken = stdenv.isAarch64 && stdenv.isLinux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mail-parser/default.nix b/nixpkgs/pkgs/development/python-modules/mail-parser/default.nix
index 4ecb12642ccd..5364fd25c21f 100644
--- a/nixpkgs/pkgs/development/python-modules/mail-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mail-parser/default.nix
@@ -28,6 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A mail parser for python 2 and 3";
+    mainProgram = "mailparser";
     homepage = "https://github.com/SpamScope/mail-parser";
     license = licenses.asl20;
     maintainers = with maintainers; [ psyanticy ];
diff --git a/nixpkgs/pkgs/development/python-modules/maison/default.nix b/nixpkgs/pkgs/development/python-modules/maison/default.nix
index d28c5cc6c69d..d05376bcb279 100644
--- a/nixpkgs/pkgs/development/python-modules/maison/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/maison/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to read settings from config files";
+    mainProgram = "maison";
     homepage = "https://github.com/dbatten5/maison";
     changelog = "https://github.com/dbatten5/maison/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mako/default.nix b/nixpkgs/pkgs/development/python-modules/mako/default.nix
index 0a84359b27b6..0f512f8ec3a7 100644
--- a/nixpkgs/pkgs/development/python-modules/mako/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mako/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "mako";
-  version = "1.3.0";
+  version = "1.3.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Mako";
     inherit version;
-    hash = "sha256-46nTiP0A6HBD7b6HkvRYgKwBFOnErcafbpv7LFXjsRs=";
+    hash = "sha256-KgyK1/YnQnGzu3Rn3TfPnMbatLwZy2mk7xBmlALeaY4=";
   };
 
   nativeBuildInputs = [
@@ -68,6 +68,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Super-fast templating language";
+    mainProgram = "mako-render";
     homepage = "https://www.makotemplates.org/";
     changelog = "https://docs.makotemplates.org/en/latest/changelog.html";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/malduck/default.nix b/nixpkgs/pkgs/development/python-modules/malduck/default.nix
index ed521cf6d247..0f15b6a1066c 100644
--- a/nixpkgs/pkgs/development/python-modules/malduck/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/malduck/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Helper for malware analysis";
+    mainProgram = "malduck";
     homepage = "https://github.com/CERT-Polska/malduck";
     changelog = "https://github.com/CERT-Polska/malduck/releases/tag/v${version}";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/managesieve/default.nix b/nixpkgs/pkgs/development/python-modules/managesieve/default.nix
index 74a12d9a5866..1f0c911d5df8 100644
--- a/nixpkgs/pkgs/development/python-modules/managesieve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/managesieve/default.nix
@@ -2,19 +2,33 @@
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
+, pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "managesieve";
-  version = "0.7.1";
-  format = "setuptools";
+  version = "0.8";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "44930a3b48332d23b35a5305ae7ba47904d4485ed1b7a22208b7d5ad9d60427a";
+    hash = "sha256-2CCb6h69H58YT1byj/fkrfzGsMUbr0GHpJLcMpsSE/M=";
   };
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "managesieve"
+  ];
 
   meta = with lib; {
     description = "ManageSieve client library for remotely managing Sieve scripts";
@@ -22,5 +36,6 @@ buildPythonPackage rec {
     # PSFL for the python module, GPLv3 only for sieveshell
     license = with licenses; [ gpl3Only psfl ];
     maintainers = with maintainers; [ dadada ];
+    mainProgram = "sieveshell";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/manhole/default.nix b/nixpkgs/pkgs/development/python-modules/manhole/default.nix
index 26c76cbb1659..94aa5f443596 100644
--- a/nixpkgs/pkgs/development/python-modules/manhole/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/manhole/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/ionelmc/python-manhole";
     description = "Debugging manhole for Python applications";
+    mainProgram = "manhole-cli";
     license = licenses.bsd2;
     maintainers = with maintainers; [ ivan ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/manifest-ml/default.nix b/nixpkgs/pkgs/development/python-modules/manifest-ml/default.nix
index 8bc2710c5a43..0d3e02ed732c 100644
--- a/nixpkgs/pkgs/development/python-modules/manifest-ml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/manifest-ml/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "manifest-ml";
-  version = "0.1.8";
+  version = "0.1.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     owner = "HazyResearch";
     repo = "manifest";
     rev = "refs/tags/v${version}";
-    hash = "sha256-d34TIZYDB8EDEIZUH5mDzfDHzFT290DwjPLJkNneklc=";
+    hash = "sha256-6m1XZOXzflBYyq9+PinbrW+zqvNGFN/aRDHH1b2Me5E=";
   };
 
   __darwinAllowLocalNetworking = true;
diff --git a/nixpkgs/pkgs/development/python-modules/manifestoo-core/default.nix b/nixpkgs/pkgs/development/python-modules/manifestoo-core/default.nix
index fae1981b1a86..e0101a6672aa 100644
--- a/nixpkgs/pkgs/development/python-modules/manifestoo-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/manifestoo-core/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "manifestoo-core";
-  version = "1.4";
+  version = "1.5";
   format = "pyproject";
 
   src = fetchPypi {
     inherit version;
     pname = "manifestoo_core";
-    hash = "sha256-ETvsxUKAP0xiFqpVO921Rup+1/A2DKyaK/oBr1K315I=";
+    hash = "sha256-a3v2WfJ42bh2LlAsH9ekpLFsAlOiTTLGNknTW2mTxCI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/marimo/default.nix b/nixpkgs/pkgs/development/python-modules/marimo/default.nix
new file mode 100644
index 000000000000..8873ac724c68
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/marimo/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, setuptools
+, click
+, jedi
+, markdown
+, pymdown-extensions
+, pygments
+, tomlkit
+, uvicorn
+, starlette
+, websockets
+, docutils
+, black
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "marimo";
+  version = "0.3.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-nCH8JmeU81aJHHGJ1DOOCL9iarBXTBGauQKyHpU66Rk=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    click
+    jedi
+    markdown
+    pymdown-extensions
+    pygments
+    tomlkit
+    uvicorn
+    starlette
+    websockets
+    docutils
+    black
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "marimo"
+  ];
+
+  meta = with lib; {
+    description = "A reactive Python notebook that's reproducible, git-friendly, and deployable as scripts or apps";
+    homepage = "https://github.com/marimo-team/marimo";
+    license = licenses.asl20;
+    mainProgram = "marimo";
+    maintainers = with maintainers; [ akshayka dmadisetti ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/markdown/default.nix b/nixpkgs/pkgs/development/python-modules/markdown/default.nix
index d7be3fabfab7..f31af525f1e6 100644
--- a/nixpkgs/pkgs/development/python-modules/markdown/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/markdown/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/Python-Markdown/markdown/blob/${src.rev}/docs/changelog.md";
     description = "Python implementation of John Gruber's Markdown";
+    mainProgram = "markdown_py";
     homepage = "https://github.com/Python-Markdown/markdown";
     license = licenses.bsd3;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/markdown2/default.nix b/nixpkgs/pkgs/development/python-modules/markdown2/default.nix
index 91c10116e1bd..1c375523ae60 100644
--- a/nixpkgs/pkgs/development/python-modules/markdown2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/markdown2/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/trentm/python-markdown2/blob/${src.rev}/CHANGES.md";
     description = "A fast and complete Python implementation of Markdown";
+    mainProgram = "markdown2";
     homepage =  "https://github.com/trentm/python-markdown2";
     license = licenses.mit;
     maintainers = with maintainers; [ hbunke ];
diff --git a/nixpkgs/pkgs/development/python-modules/markdownify/default.nix b/nixpkgs/pkgs/development/python-modules/markdownify/default.nix
index 00af58297b92..19f842938007 100644
--- a/nixpkgs/pkgs/development/python-modules/markdownify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/markdownify/default.nix
@@ -21,6 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "HTML to Markdown converter";
+    mainProgram = "markdownify";
     homepage = "https://github.com/matthewwithanm/python-markdownify";
     license = licenses.mit;
     maintainers = [ maintainers.McSinyx ];
diff --git a/nixpkgs/pkgs/development/python-modules/marshmallow-dataclass/default.nix b/nixpkgs/pkgs/development/python-modules/marshmallow-dataclass/default.nix
index 2883b6b31add..7b5b2932407a 100644
--- a/nixpkgs/pkgs/development/python-modules/marshmallow-dataclass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/marshmallow-dataclass/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "marshmallow-dataclass";
-  version = "8.6.0";
+  version = "8.6.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "lovasoa";
     repo = "marshmallow_dataclass";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+1bMo5D+7kbkZHcAvmgC1WxNk6Ba04iLccMqTKrxt80=";
+    hash = "sha256-IHHYYtQrdSAtZxbd/YV9J+c4B23HLr9gr01OE6Tgj94=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/marshmallow-enum/default.nix b/nixpkgs/pkgs/development/python-modules/marshmallow-enum/default.nix
index d375901a0f3f..17f674271194 100644
--- a/nixpkgs/pkgs/development/python-modules/marshmallow-enum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/marshmallow-enum/default.nix
@@ -31,6 +31,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    # pytest.PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   disabledTests = [
     "test_custom_error_in_deserialize_by_name"
     "test_custom_error_in_deserialize_by_value"
diff --git a/nixpkgs/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix b/nixpkgs/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
index e74072692398..cc73a3c229a3 100644
--- a/nixpkgs/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , pythonOlder
 , fetchPypi
+, flit-core
 , marshmallow
 , packaging
 , sqlalchemy
@@ -11,16 +12,21 @@
 
 buildPythonPackage rec {
   pname = "marshmallow-sqlalchemy";
-  version = "0.30.0";
-  format = "setuptools";
+  version = "1.0.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-Ka0KT9G0oeUtywf5Zz0oSmsHlRQZFswhadTuml0Ac0c=";
+    pname = "marshmallow_sqlalchemy";
+    inherit version;
+    hash = "sha256-IKDy/N1b3chkRPoBRh8X+bahKo3dTKjJs0/i8uNdAKI=";
   };
 
+  build-system = [
+    flit-core
+  ];
+
   propagatedBuildInputs = [
     marshmallow
     packaging
diff --git a/nixpkgs/pkgs/development/python-modules/masky/default.nix b/nixpkgs/pkgs/development/python-modules/masky/default.nix
index 4d03c4d57d93..aadd429fa881 100644
--- a/nixpkgs/pkgs/development/python-modules/masky/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/masky/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to remotely dump domain credentials";
+    mainProgram = "masky";
     homepage = "https://github.com/Z4kSec/Masky";
     changelog = "https://github.com/Z4kSec/Masky/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mathlibtools/default.nix b/nixpkgs/pkgs/development/python-modules/mathlibtools/default.nix
index 4f90bb7f3698..0d7ad7b2528a 100644
--- a/nixpkgs/pkgs/development/python-modules/mathlibtools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mathlibtools/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Supporting tool for Lean's mathlib";
+    mainProgram = "leanproject";
     homepage = "https://github.com/leanprover-community/mathlib-tools";
     changelog = "https://github.com/leanprover-community/mathlib-tools/raw/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix b/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
index 8fb5c7c292cf..788df3d9458e 100644
--- a/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
@@ -77,7 +77,7 @@ let
 in
 
 buildPythonPackage rec {
-  version = "3.8.2";
+  version = "3.8.3";
   pname = "matplotlib";
   format = "pyproject";
 
@@ -85,7 +85,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Aal4uHG4ge52AXFS8fGgy/a9X3uP+Mlt8N8b1X2HVaE=";
+    hash = "sha256-e0FiOemuOL5UsCirv5BIr/UFSpq6VBa+8L0X+RYs4WE=";
   };
 
   env.XDG_RUNTIME_DIR = "/tmp";
diff --git a/nixpkgs/pkgs/development/python-modules/matplotx/default.nix b/nixpkgs/pkgs/development/python-modules/matplotx/default.nix
index f20812606869..77643ece548d 100644
--- a/nixpkgs/pkgs/development/python-modules/matplotx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/matplotx/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
   meta = {
     homepage = "https://github.com/nschloe/matplotx";
     description = "More styles and useful extensions for Matplotlib";
+    mainProgram = "matplotx";
     changelog = "https://github.com/nschloe/matplotx/releases/tag/v${version}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ swflint ];
diff --git a/nixpkgs/pkgs/development/python-modules/maxminddb/default.nix b/nixpkgs/pkgs/development/python-modules/maxminddb/default.nix
index 1bd579afe70c..3f95408364db 100644
--- a/nixpkgs/pkgs/development/python-modules/maxminddb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/maxminddb/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "maxminddb";
-  version = "2.5.1";
+  version = "2.5.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SAfTdOZFvWgzTk9Ie6haJxidvBJnqY5kSqaGp5J+BVk=";
+    hash = "sha256-s8M+T8eCHubJ9Ag3EW4Wq2F1hj1KZO7gJMW+xoZpCoc=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/maya/default.nix b/nixpkgs/pkgs/development/python-modules/maya/default.nix
index e96d66826583..96387c8f2575 100644
--- a/nixpkgs/pkgs/development/python-modules/maya/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/maya/default.nix
@@ -1,30 +1,28 @@
 { lib
-, fetchFromGitHub
 , buildPythonPackage
-
-# build-system
-, setuptools
-
-# dependencies
 , dateparser
+, fetchFromGitHub
+, freezegun
 , humanize
-, tzlocal
 , pendulum
-, snaptime
-, pytz
-
-# tests
-, freezegun
+, pytest-mock
 , pytestCheckHook
+, pythonOlder
+, pytz
+, setuptools
+, snaptime
+, tzlocal
 }:
 
 buildPythonPackage rec {
   pname = "maya";
   version = "0.6.1";
-  format = "pyproject";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
-    owner = "kennethreitz";
+    owner = "timofurrer";
     repo = "maya";
     rev = "refs/tags/v${version}";
     hash = "sha256-4fUyUqVQk/AcQL3xMnU1cQlF5yiD/N9NPAsUPuDTTNY=";
@@ -33,7 +31,7 @@ buildPythonPackage rec {
   postPatch = ''
     # function was made private in humanize
     substituteInPlace maya/core.py \
-      --replace "humanize.time.abs_timedelta" "humanize.time._abs_timedelta"
+      --replace-fail "humanize.time.abs_timedelta" "humanize.time._abs_timedelta"
   '';
 
   nativeBuildInputs = [
@@ -51,12 +49,24 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     freezegun
+    pytest-mock
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [
+    "maya"
+  ];
+
+  disabledTests = [
+    # https://github.com/timofurrer/maya/issues/202
+    "test_parse_iso8601"
+  ];
+
   meta = with lib; {
     description = "Datetimes for Humans";
-    homepage = "https://github.com/kennethreitz/maya";
+    homepage = "https://github.com/timofurrer/maya";
+    changelog = "https://github.com/timofurrer/maya/releases/tag/v${version}";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/mcstatus/default.nix b/nixpkgs/pkgs/development/python-modules/mcstatus/default.nix
index cf817adbaaaa..886cf432f7ba 100644
--- a/nixpkgs/pkgs/development/python-modules/mcstatus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mcstatus/default.nix
@@ -62,6 +62,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for checking the status of Minecraft servers";
+    mainProgram = "mcstatus";
     homepage = "https://github.com/py-mine/mcstatus";
     changelog = "https://github.com/py-mine/mcstatus/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/md-toc/default.nix b/nixpkgs/pkgs/development/python-modules/md-toc/default.nix
index 7789104db892..34887cc91fa7 100644
--- a/nixpkgs/pkgs/development/python-modules/md-toc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/md-toc/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Table of contents generator for Markdown";
+    mainProgram = "md_toc";
     homepage = "https://docs.franco.net.eu.org/md-toc/";
     changelog = "https://blog.franco.net.eu.org/software/CHANGELOG-md-toc.html";
     license = with licenses; [ gpl3Plus ];
diff --git a/nixpkgs/pkgs/development/python-modules/mdformat-admon/default.nix b/nixpkgs/pkgs/development/python-modules/mdformat-admon/default.nix
index cbd95d35fbf3..10be705e1440 100644
--- a/nixpkgs/pkgs/development/python-modules/mdformat-admon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mdformat-admon/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "mdformat-admon";
-  version = "2.0.0";
+  version = "2.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "KyleKing";
     repo = "mdformat-admon";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MRcNExMPH/HIXB2DmN9fA89plo0IZPWXryySK9OZHg8=";
+    hash = "sha256-TybbkF6+dIfG+1fGYp+bTEdw2GXINZJfOX0QiAaqiWY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mdformat-mkdocs/default.nix b/nixpkgs/pkgs/development/python-modules/mdformat-mkdocs/default.nix
index 52ad5f97b20e..d399036684e9 100644
--- a/nixpkgs/pkgs/development/python-modules/mdformat-mkdocs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mdformat-mkdocs/default.nix
@@ -3,15 +3,18 @@
 , fetchFromGitHub
 , flit-core
 , mdformat
+, mdformat-admon
 , mdformat-gfm
 , mdit-py-plugins
+, more-itertools
 , pythonOlder
+, pytest-snapshot
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "mdformat-mkdocs";
-  version = "1.1.2";
+  version = "2.0.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +23,7 @@ buildPythonPackage rec {
     owner = "KyleKing";
     repo = "mdformat-mkdocs";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GUSoGx4cwhjQO4AiC9s0YIcK3N/Gr+PrYR3+B8G9CoQ=";
+    hash = "sha256-cqzsrEsYFX9HnC6fRKqefysT0ZSgAllTJEXleOdepXc=";
   };
 
   nativeBuildInputs = [
@@ -29,14 +32,22 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     mdformat
+    mdformat-admon
     mdformat-gfm
     mdit-py-plugins
+    more-itertools
   ];
 
   nativeCheckInputs = [
+    pytest-snapshot
     pytestCheckHook
   ];
 
+  disabledTestPaths = [
+    # AssertionError: assert ParsedText(lines=[LineResult(parsed=ParsedLine(line_...
+    "tests/format/test_parsed_result.py"
+  ];
+
   pythonImportsCheck = [
     "mdformat_mkdocs"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/mediafile/default.nix b/nixpkgs/pkgs/development/python-modules/mediafile/default.nix
index 00a657800da8..9faed762afaa 100644
--- a/nixpkgs/pkgs/development/python-modules/mediafile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mediafile/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "mediafile";
-  version = "0.10.1";
+  version = "0.12.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "beetbox";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-2h17FA0GTY4R+WhZiQtPFYf6gH7XLbI3aOB/nUXFtJI=";
+    hash = "sha256-5HHfG1hCIbM/QSXgB61yHNNWJTsuyAh6CQJ7SZhZuvo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/meilisearch/default.nix b/nixpkgs/pkgs/development/python-modules/meilisearch/default.nix
index 61c57c8e47d5..e5e47b934fd3 100644
--- a/nixpkgs/pkgs/development/python-modules/meilisearch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/meilisearch/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "meilisearch";
-  version = "0.30.0";
+  version = "0.31.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "meilisearch";
     repo = "meilisearch-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-gcDJUTg84JugytbUzQzvm3I9YAIboiyvcHe4AcBmpFM=";
+    hash = "sha256-mgslzRd2hvDI0SbQR3eY2vzvaaOVI6mUihdNPKe4jcg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/memory-profiler/default.nix b/nixpkgs/pkgs/development/python-modules/memory-profiler/default.nix
index 2176b652597f..9264f136940c 100644
--- a/nixpkgs/pkgs/development/python-modules/memory-profiler/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/memory-profiler/default.nix
@@ -21,6 +21,7 @@ python.pkgs.buildPythonPackage rec {
 
   meta = with lib; {
     description = "A module for monitoring memory usage of a process";
+    mainProgram = "mprof";
     longDescription = ''
       This is a python module for monitoring memory consumption of a process as
       well as line-by-line analysis of memory consumption for python programs.
diff --git a/nixpkgs/pkgs/development/python-modules/mercantile/default.nix b/nixpkgs/pkgs/development/python-modules/mercantile/default.nix
index 1523eaf4c8e3..8f496bca53c5 100644
--- a/nixpkgs/pkgs/development/python-modules/mercantile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mercantile/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Spherical mercator tile and coordinate utilities";
+    mainProgram = "mercantile";
     homepage = "https://github.com/mapbox/mercantile";
     license = licenses.bsd3;
     maintainers = with maintainers; [ sikmir ];
diff --git a/nixpkgs/pkgs/development/python-modules/merge3/default.nix b/nixpkgs/pkgs/development/python-modules/merge3/default.nix
index e06556dddf35..906c00911737 100644
--- a/nixpkgs/pkgs/development/python-modules/merge3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/merge3/default.nix
@@ -28,6 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python implementation of 3-way merge";
+    mainProgram = "merge3";
     homepage = "https://github.com/breezy-team/merge3";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ marsam ];
diff --git a/nixpkgs/pkgs/development/python-modules/mergedb/default.nix b/nixpkgs/pkgs/development/python-modules/mergedb/default.nix
index 3c78026632ba..e5973aa280d2 100644
--- a/nixpkgs/pkgs/development/python-modules/mergedb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mergedb/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A tool/library for deep merging YAML files";
+    mainProgram = "mergedb";
     homepage = "https://github.com/graysonhead/mergedb";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ graysonhead ];
diff --git a/nixpkgs/pkgs/development/python-modules/mesa/default.nix b/nixpkgs/pkgs/development/python-modules/mesa/default.nix
index 4a9001ff1b9c..a7a8fa175ca6 100644
--- a/nixpkgs/pkgs/development/python-modules/mesa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mesa/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "mesa";
-  version = "2.1.5";
+  version = "2.2.4";
   format = "setuptools";
 
   # According to their docs, this library is for Python 3+.
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Mesa";
     inherit version;
-    hash = "sha256-UMf3z1bEElygfqwgY65qhOEK4i9K9gH42muId3mZUjY=";
+    hash = "sha256-5og3ACS2r36BEGWfqtw6WG6yJwNF5p3M9K25sSmHosM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/meshcat/default.nix b/nixpkgs/pkgs/development/python-modules/meshcat/default.nix
index 8f79a1477451..ff1ef37b22e5 100644
--- a/nixpkgs/pkgs/development/python-modules/meshcat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/meshcat/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/rdeits/meshcat-python";
     description = "WebGL-based 3D visualizer for Python";
+    mainProgram = "meshcat-server";
     license = licenses.mit;
     maintainers = with maintainers; [ wegank ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/meshio/default.nix b/nixpkgs/pkgs/development/python-modules/meshio/default.nix
index 313c1bd0920e..f0c170202683 100644
--- a/nixpkgs/pkgs/development/python-modules/meshio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/meshio/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/nschloe/meshio";
     description = "I/O for mesh files.";
+    mainProgram = "meshio";
     license = licenses.mit;
     maintainers = with maintainers; [ wd15 ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/meshlabxml/default.nix b/nixpkgs/pkgs/development/python-modules/meshlabxml/default.nix
index e0793f3ec978..5f62a773a3d1 100644
--- a/nixpkgs/pkgs/development/python-modules/meshlabxml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/meshlabxml/default.nix
@@ -5,11 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "MeshLabXML";
+  pname = "meshlabxml";
   version = "2018.3";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "MeshLabXML";
+    inherit version;
     sha256 = "1villmg46hqby5jjkkpxr5bxydr72y5b3cbfngwpyxxdljn091w8";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/meshtastic/default.nix b/nixpkgs/pkgs/development/python-modules/meshtastic/default.nix
index bbc125443e3a..c531b78130bc 100644
--- a/nixpkgs/pkgs/development/python-modules/meshtastic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/meshtastic/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "meshtastic";
-  version = "2.2.22";
+  version = "2.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "meshtastic";
     repo = "Meshtastic-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-bAg7Rr17Q+a+S0ZuHcFmmTM0sRcX2w0zRClKdFwix30=";
+    hash = "sha256-HiksPxV5VTIOV71J0zlC8iiXmF85a0dTYjjnWthhdGY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/meteofrance-api/default.nix b/nixpkgs/pkgs/development/python-modules/meteofrance-api/default.nix
index 1a1e14d8ee41..ce3dbe1b44f7 100644
--- a/nixpkgs/pkgs/development/python-modules/meteofrance-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/meteofrance-api/default.nix
@@ -69,6 +69,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to access information from the Meteo-France API";
+    mainProgram = "meteofrance-api";
     homepage = "https://github.com/hacf-fr/meteofrance-api";
     changelog = "https://github.com/hacf-fr/meteofrance-api/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mezzanine/default.nix b/nixpkgs/pkgs/development/python-modules/mezzanine/default.nix
index 0f13239756d9..18d06579a8a8 100644
--- a/nixpkgs/pkgs/development/python-modules/mezzanine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mezzanine/default.nix
@@ -66,6 +66,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Content management platform built using the Django framework";
+    mainProgram = "mezzanine-project";
     longDescription = ''
       Mezzanine is a powerful, consistent, and flexible content
       management platform. Built using the Django framework, Mezzanine
diff --git a/nixpkgs/pkgs/development/python-modules/miauth/default.nix b/nixpkgs/pkgs/development/python-modules/miauth/default.nix
index 486878140e04..c28c5ed96a77 100644
--- a/nixpkgs/pkgs/development/python-modules/miauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/miauth/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Authenticate and interact with Xiaomi devices over BLE";
+    mainProgram = "miauth";
     homepage = "https://github.com/dnandha/miauth";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/micloud/default.nix b/nixpkgs/pkgs/development/python-modules/micloud/default.nix
index 641581298340..ab934962e216 100644
--- a/nixpkgs/pkgs/development/python-modules/micloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/micloud/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Xiaomi cloud connect library";
+    mainProgram = "micloud";
     homepage = "https://github.com/Squachen/micloud";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/microdata/default.nix b/nixpkgs/pkgs/development/python-modules/microdata/default.nix
index 140aa10314e1..f7dcfc92f8b9 100644
--- a/nixpkgs/pkgs/development/python-modules/microdata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/microdata/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for extracting html microdata";
+    mainProgram = "microdata";
     homepage = "https://github.com/edsu/microdata";
     license = licenses.cc0;
     maintainers = with maintainers; [ ambroisie ];
diff --git a/nixpkgs/pkgs/development/python-modules/microsoft-kiota-serialization-json/default.nix b/nixpkgs/pkgs/development/python-modules/microsoft-kiota-serialization-json/default.nix
index 40840436fa01..21bc6f76feaa 100644
--- a/nixpkgs/pkgs/development/python-modules/microsoft-kiota-serialization-json/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/microsoft-kiota-serialization-json/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "kiota-serialization-json";
-  version = "1.0.0";
+  version = "1.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = "kiota-serialization-json-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DhuDIRTm6xATnXpQ+xLpMuaBcWxZHdr8dO1Rl8OvCKQ=";
+    hash = "sha256-igMqwoKArfQ37pzdjUICgXY795dfg/MX65iwTVe0sLM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/midiutil/default.nix b/nixpkgs/pkgs/development/python-modules/midiutil/default.nix
index a3527bc6e1cf..6f1e51ae9339 100644
--- a/nixpkgs/pkgs/development/python-modules/midiutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/midiutil/default.nix
@@ -1,11 +1,12 @@
 { lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
-  pname = "MIDIUtil";
+  pname = "midiutil";
   version = "1.2.1";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "MIDIUtil";
+    inherit version;
     sha256 = "02m9sqv36zrzgz5zg2w9qmz8snzlm27yg3ways2hgipgs4xriykr";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/mike/default.nix b/nixpkgs/pkgs/development/python-modules/mike/default.nix
index f107d8e632bd..9a48dca54699 100644
--- a/nixpkgs/pkgs/development/python-modules/mike/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mike/default.nix
@@ -53,6 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Manage multiple versions of your MkDocs-powered documentation";
+    mainProgram = "mike";
     homepage = "https://github.com/jimporter/mike";
     license = licenses.bsd3;
     maintainers = with maintainers; [ marsam ];
diff --git a/nixpkgs/pkgs/development/python-modules/milc/default.nix b/nixpkgs/pkgs/development/python-modules/milc/default.nix
index aa168fd0dea0..59c8eb6f68eb 100644
--- a/nixpkgs/pkgs/development/python-modules/milc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/milc/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "An Opinionated Batteries-Included Python 3 CLI Framework";
+    mainProgram = "milc-color";
     homepage = "https://milc.clueboard.co";
     license = licenses.mit;
     maintainers = with maintainers; [ bhipple ];
diff --git a/nixpkgs/pkgs/development/python-modules/mindsdb-evaluator/default.nix b/nixpkgs/pkgs/development/python-modules/mindsdb-evaluator/default.nix
index 7e18975095b0..9cc654911fc5 100644
--- a/nixpkgs/pkgs/development/python-modules/mindsdb-evaluator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mindsdb-evaluator/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "mindsdb-evaluator";
-  version = "0.0.11";
+  version = "0.0.12";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "mindsdb_evaluator";
     inherit version;
-    hash = "sha256-pEfY+ocLEE8qcDjf6AzJxtXo1cqD2LhcBmlLjN0llTA=";
+    hash = "sha256-SqcBtoY7WZcorAaoyhqNDscf1MkSz0pE993mz1MRXCU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/minidump/default.nix b/nixpkgs/pkgs/development/python-modules/minidump/default.nix
index 2829a6351ace..58d59512e8b5 100644
--- a/nixpkgs/pkgs/development/python-modules/minidump/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/minidump/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library to parse and read Microsoft minidump file format";
+    mainProgram = "minidump";
     homepage = "https://github.com/skelsec/minidump";
     changelog = "https://github.com/skelsec/minidump/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/minio/default.nix b/nixpkgs/pkgs/development/python-modules/minio/default.nix
index 5dec8321d700..e86f1ae1d7bc 100644
--- a/nixpkgs/pkgs/development/python-modules/minio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/minio/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "minio";
-  version = "7.2.4";
+  version = "7.2.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "minio";
     repo = "minio-py";
     rev = "refs/tags/${version}";
-    hash = "sha256-26naoSccz/LEf56iQIePrNKllq6XkEQD9Peld7VeGqY=";
+    hash = "sha256-Xb6XaGI/bwkhp6YKgoqi5Tbs74pSXc6aJpWVUgG5uR4=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/misaka/default.nix b/nixpkgs/pkgs/development/python-modules/misaka/default.nix
index c257c7f735a6..369196b15276 100644
--- a/nixpkgs/pkgs/development/python-modules/misaka/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/misaka/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A CFFI binding for Hoedown, a markdown parsing library";
+    mainProgram = "misaka";
     homepage = "https://misaka.61924.nl";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
diff --git a/nixpkgs/pkgs/development/python-modules/mistletoe/default.nix b/nixpkgs/pkgs/development/python-modules/mistletoe/default.nix
index c95a26eb6e04..aad3a5111da0 100644
--- a/nixpkgs/pkgs/development/python-modules/mistletoe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mistletoe/default.nix
@@ -1,21 +1,24 @@
 { lib
-, fetchPypi
+, fetchFromGitHub
 , buildPythonPackage
 , parameterized
+, pygments
 , pythonOlder
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "mistletoe";
-  version = "1.2.1";
+  version = "1.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-fQwas3RwR9Fp+fxLkl0cuj9cE+rwuQw2W3LkflnQCgI=";
+  src = fetchFromGitHub {
+    owner = "miyuchina";
+    repo = "mistletoe";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-MMBfH4q5AtC/azQUj1a1tMz1MdUf4ad5/tl7lcQCTOw=";
   };
 
   pythonImportsCheck = [
@@ -24,11 +27,13 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     parameterized
+    pygments
     pytestCheckHook
   ];
 
   meta = with lib; {
     description = "Fast and extensible Markdown parser";
+    mainProgram = "mistletoe";
     homepage = "https://github.com/miyuchina/mistletoe";
     changelog = "https://github.com/miyuchina/mistletoe/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix b/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix
index 64b6602e04ec..860900902794 100644
--- a/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix
@@ -45,7 +45,7 @@
 
 buildPythonPackage rec {
   pname = "mitmproxy";
-  version = "10.2.3";
+  version = "10.2.4";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -54,7 +54,7 @@ buildPythonPackage rec {
     owner = "mitmproxy";
     repo = "mitmproxy";
     rev = "refs/tags/${version}";
-    hash = "sha256-hlZ5d4J3SDQp80C8lhwZkms/rc0uj8LslRmBqB5eIEw=";
+    hash = "sha256-6TPhxprrP6Bgc1yAhN3pBdr98WpvfGnVNvkNtFxROgE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mixpanel/default.nix b/nixpkgs/pkgs/development/python-modules/mixpanel/default.nix
index 473520177177..64e1f45d29de 100644
--- a/nixpkgs/pkgs/development/python-modules/mixpanel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mixpanel/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "mixpanel";
-  version = "4.10.0";
+  version = "4.10.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "mixpanel";
     repo = "mixpanel-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jV2NLEc23uaI5Q7ZXDwGaZV9iAKQLMAETRTw8epZwQA=";
+    hash = "sha256-i5vT5FTnw+BanHHrlRsPJ3EooZjQcaosbaHoh/uPRmQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mkdocs-autorefs/default.nix b/nixpkgs/pkgs/development/python-modules/mkdocs-autorefs/default.nix
index 1a0b64efe1e1..4fedc2ff0ff3 100644
--- a/nixpkgs/pkgs/development/python-modules/mkdocs-autorefs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mkdocs-autorefs/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocs-autorefs";
-  version = "0.5.0";
+  version = "1.0.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = "autorefs";
     rev = "refs/tags/${version}";
-    hash = "sha256-GZKQlOXhQIQhS/z4cbmS6fhAKYgnVhSXh5a8Od7+TWc=";
+    hash = "sha256-YORrIQ+iZQZ1U/fe/IH3B/5gN0QxQF73s9vF6qvKL7Q=";
   };
 
   postPatch = ''
@@ -40,6 +40,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # missing pymdownx
+    "test_reference_implicit_with_code_inlinehilite_plain"
+    "test_reference_implicit_with_code_inlinehilite_python"
+  ];
+
   pythonImportsCheck = [
     "mkdocs_autorefs"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix b/nixpkgs/pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix
index 9dfae93cfec9..01eb0fa2375e 100644
--- a/nixpkgs/pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocs-git-authors-plugin";
-  version = "0.7.2";
+  version = "0.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,8 +15,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "timvink";
     repo = "mkdocs-git-authors-plugin";
-    rev = "v${version}";
-    hash = "sha256-jhYwi9HO6kxOS1QmEKb1YnXGSJ4Eyo4Sm07jI4lxXnA=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ie6kDrj7ulmdQ7w3n7MnKgIWs321uPFxpQC3DNUGsTg=";
   };
 
   propagatedBuildInputs = [ mkdocs ];
diff --git a/nixpkgs/pkgs/development/python-modules/mkdocs-linkcheck/default.nix b/nixpkgs/pkgs/development/python-modules/mkdocs-linkcheck/default.nix
index 1f83c11a35dd..18d9a9a9ab29 100644
--- a/nixpkgs/pkgs/development/python-modules/mkdocs-linkcheck/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mkdocs-linkcheck/default.nix
@@ -28,6 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Validate links in Markdown files for static site generators like MkDocs, Hugo or Jekyll";
+    mainProgram = "mkdocs-linkcheck";
     longDescription = ''
       This is not a MkDocs plugin, but a companion tool that is useful to validate links in Markdown files for
       static site generators like MkDocs, Hugo or Jekyll. It can be used with any text files containing links.
diff --git a/nixpkgs/pkgs/development/python-modules/mkdocs-material/default.nix b/nixpkgs/pkgs/development/python-modules/mkdocs-material/default.nix
index 0aeb5cbe3421..021c9645e321 100644
--- a/nixpkgs/pkgs/development/python-modules/mkdocs-material/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mkdocs-material/default.nix
@@ -32,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocs-material";
-  version = "9.5.13";
+  version = "9.5.14";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     owner = "squidfunk";
     repo = "mkdocs-material";
     rev = "refs/tags/${version}";
-    hash = "sha256-SFLCNFJNlyJ09d4VsWsxdw7Ctyv1pFHXdqPgBflH294=";
+    hash = "sha256-VqfjqsTEi5C33MSb83ku37i0hgDyujrdaZbeqpMOvko=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mkdocs/default.nix b/nixpkgs/pkgs/development/python-modules/mkdocs/default.nix
index 8a402510ec18..a20958dbb747 100644
--- a/nixpkgs/pkgs/development/python-modules/mkdocs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mkdocs/default.nix
@@ -88,6 +88,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/mkdocs/mkdocs/releases/tag/${version}";
     description = "Project documentation with Markdown / static website generator";
+    mainProgram = "mkdocs";
     downloadPage = "https://github.com/mkdocs/mkdocs";
     longDescription = ''
       MkDocs is a fast, simple and downright gorgeous static site generator that's
diff --git a/nixpkgs/pkgs/development/python-modules/mkdocstrings-python/default.nix b/nixpkgs/pkgs/development/python-modules/mkdocstrings-python/default.nix
index d73ccba23041..de1ae5e6c72e 100644
--- a/nixpkgs/pkgs/development/python-modules/mkdocstrings-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mkdocstrings-python/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocstrings-python";
-  version = "1.8.0";
+  version = "1.9.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = "python";
     rev = "refs/tags/${version}";
-    hash = "sha256-beLZpf0Zjk6LjveD7c+1XEi4SpQnmmZZOM8dIvzqZGI=";
+    hash = "sha256-RzyOhlfjLtiG5jelrRG8yS7AWQJuaJMVuNkGpNBGO64=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mlflow/default.nix b/nixpkgs/pkgs/development/python-modules/mlflow/default.nix
index 1ec7760eaeb7..0a0efaab4372 100644
--- a/nixpkgs/pkgs/development/python-modules/mlflow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mlflow/default.nix
@@ -6,11 +6,11 @@
 , databricks-cli
 , docker
 , entrypoints
-, fetchpatch
 , fetchPypi
 , flask
 , gitpython
 , gorilla
+, graphene
 , gunicorn
 , importlib-metadata
 , markdown
@@ -28,9 +28,9 @@
 , pyyaml
 , querystring-parser
 , requests
+, setuptools
 , scikit-learn
 , scipy
-, shap
 , simplejson
 , sqlalchemy
 , sqlparse
@@ -38,25 +38,23 @@
 
 buildPythonPackage rec {
   pname = "mlflow";
-  version = "2.10.2";
-  format = "setuptools";
+  version = "2.11.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Pd8yuiwB2seeTQd9S7ntRtgqCC3JkiMgfVYsfua+5nE=";
+    hash = "sha256-ouwp7oYvGZVSCPuOBeUeXp0u3HF143zxNtlDuYGoJOk=";
   };
 
-  postPatch = ''
-    substituteInPlace requirements/core-requirements.txt \
-      --replace "gunicorn<21" "gunicorn"
-  '';
-
   # Remove currently broken dependency `shap`, a model explainability package.
   # This seems quite unprincipled especially with tests not being enabled,
   # but not mlflow has a 'skinny' install option which does not require `shap`.
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+    setuptools
+  ];
   pythonRemoveDeps = [ "shap" ];
   pythonRelaxDeps = [ "pytz" "pyarrow" ];
 
@@ -70,6 +68,7 @@ buildPythonPackage rec {
     flask
     gitpython
     gorilla
+    graphene
     gunicorn
     importlib-metadata
     markdown
@@ -104,6 +103,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Open source platform for the machine learning lifecycle";
+    mainProgram = "mlflow";
     homepage = "https://github.com/mlflow/mlflow";
     changelog = "https://github.com/mlflow/mlflow/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/mlx/default.nix b/nixpkgs/pkgs/development/python-modules/mlx/default.nix
index 036bbfac0418..d2d4d32d7a9a 100644
--- a/nixpkgs/pkgs/development/python-modules/mlx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mlx/default.nix
@@ -29,13 +29,13 @@ let
 in
 buildPythonPackage rec {
   pname = "mlx";
-  version = "0.1.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "ml-explore";
     repo = "mlx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xNJPG8XGbC0fy6RGcn1cxCsejyHsgnV35PuP8F1I4R4=";
+    hash = "sha256-FihdI+3ACKMJfPT2POjTRdtkXs7x+KiQpdpo3RcczBE=";
   };
 
   pyproject = true;
diff --git a/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix b/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix
index 7f84aaac49ba..4a743ac664a9 100644
--- a/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mlxtend/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "mlxtend";
-  version = "0.23.0";
+  version = "0.23.1";
   pyproject = true;
 
   disabled = isPy27;
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "rasbt";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-TUZ8SdQAOV1CaIlDl4uXYVHvdlEkOz6E48S3pUS6UE0=";
+    hash = "sha256-FlP6UqX/Ejk9c3Enm0EJ0xqy7iOhDlFqjWWxd4VIczQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mne-python/default.nix b/nixpkgs/pkgs/development/python-modules/mne-python/default.nix
index 4e93aaf3311c..c34d2649cda8 100644
--- a/nixpkgs/pkgs/development/python-modules/mne-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mne-python/default.nix
@@ -85,6 +85,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Magnetoencephelography and electroencephalography in Python";
+    mainProgram = "mne";
     homepage = "https://mne.tools";
     changelog = "https://mne.tools/stable/changes/v${version}.html";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/mobi/default.nix b/nixpkgs/pkgs/development/python-modules/mobi/default.nix
index 3241eab8cafc..b5c04d0bae89 100644
--- a/nixpkgs/pkgs/development/python-modules/mobi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mobi/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for unpacking unencrypted mobi files";
+    mainProgram = "mobiunpack";
     homepage = "https://github.com/iscc/mobi";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/mobly/default.nix b/nixpkgs/pkgs/development/python-modules/mobly/default.nix
index 73d4d7d3df99..e89a36199393 100644
--- a/nixpkgs/pkgs/development/python-modules/mobly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mobly/default.nix
@@ -2,7 +2,10 @@
 , buildPythonPackage
 , fetchFromGitHub
 
-# runtime
+# build-system
+, setuptools
+
+# dependencies
 , portpicker
 , pyserial
 , pyyaml
@@ -17,17 +20,21 @@
 
 buildPythonPackage rec {
   pname = "mobly";
-  version = "1.12.2";
-  format = "setuptools";
+  version = "1.12.3";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "mobly";
     rev = "refs/tags/${version}";
-    hash = "sha256-leUOC8AQwbuPNphDg4bIFWW+9tTnYvM3/ejHgZDMR44=";
+    hash = "sha256-hhI1jrHJk4wo49MK8J4VTS2dGmHG2kwzgZeSWBXdXkA=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     portpicker
     pyserial
     pyyaml
diff --git a/nixpkgs/pkgs/development/python-modules/mocket/default.nix b/nixpkgs/pkgs/development/python-modules/mocket/default.nix
index fe7ca40ccf05..2a44707bff1b 100644
--- a/nixpkgs/pkgs/development/python-modules/mocket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mocket/default.nix
@@ -23,6 +23,7 @@
 , fastapi
 , gevent
 , httpx
+, psutil
 , pytest-asyncio
 , pytestCheckHook
 , redis
@@ -34,12 +35,12 @@
 
 buildPythonPackage rec {
   pname = "mocket";
-  version = "3.12.2";
+  version = "3.12.4";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-BN9S5/mku+HT1vglyobgHZPWsY0yvbfQfpMRUKrnJQQ=";
+    hash = "sha256-O+IRX59Z4D188XEmiSCT8H3sg1jhtaboHS3QINEnE0s=";
   };
 
   nativeBuildInputs = [
@@ -67,6 +68,7 @@ buildPythonPackage rec {
     fastapi
     gevent
     httpx
+    psutil
     pytest-asyncio
     pytestCheckHook
     redis
@@ -95,6 +97,8 @@ buildPythonPackage rec {
     "test_truesendall_with_dump_from_recording"
     "test_asyncio_record_replay"
     "test_gethostbyname"
+    # httpx read failure
+    "test_no_dangling_fds"
   ];
 
   disabledTestPaths = lib.optionals stdenv.isDarwin [
diff --git a/nixpkgs/pkgs/development/python-modules/molecule/default.nix b/nixpkgs/pkgs/development/python-modules/molecule/default.nix
index 6b46ae62258c..309a3cdcfadf 100644
--- a/nixpkgs/pkgs/development/python-modules/molecule/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/molecule/default.nix
@@ -63,6 +63,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Molecule aids in the development and testing of Ansible roles";
+    mainProgram = "molecule";
     homepage = "https://github.com/ansible-community/molecule";
     maintainers = with maintainers; [ dawidd6 ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/monai-deploy/default.nix b/nixpkgs/pkgs/development/python-modules/monai-deploy/default.nix
index 74b88ca8dc73..3f200cb59fc5 100644
--- a/nixpkgs/pkgs/development/python-modules/monai-deploy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/monai-deploy/default.nix
@@ -66,6 +66,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Framework and tools to design, develop and verify AI applications in healthcare imaging";
+    mainProgram = "monai-deploy";
     homepage = "https://monai.io/deploy.html";
     changelog = "https://github.com/Project-MONAI/monai-deploy-app-sdk/blob/main/docs/source/release_notes/v${version}.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/mongoengine/default.nix b/nixpkgs/pkgs/development/python-modules/mongoengine/default.nix
index 3e63330d5ac2..644f87521a2c 100644
--- a/nixpkgs/pkgs/development/python-modules/mongoengine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mongoengine/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "mongoengine";
-  version = "0.27.0";
+  version = "0.28.2";
   format = "setuptools";
   disabled = isPy27;
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "MongoEngine";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-UCd7RpsSNDKh3vgVRYrFYWYVLQuK7WI0n/Moukhq5dM=";
+    hash = "sha256-5wcviRqUTOKqaeusHxS4Er3LD1BpTMW02Tip3d4zAPM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/monitorcontrol/default.nix b/nixpkgs/pkgs/development/python-modules/monitorcontrol/default.nix
index 669077c1376f..920074b65f0b 100644
--- a/nixpkgs/pkgs/development/python-modules/monitorcontrol/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/monitorcontrol/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python monitor controls using DDC-CI";
+    mainProgram = "monitorcontrol";
     homepage = "https://github.com/newAM/monitorcontrol";
     changelog = "https://github.com/newAM/monitorcontrol/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/more-itertools/default.nix b/nixpkgs/pkgs/development/python-modules/more-itertools/default.nix
index df3804095665..6ebdc9801030 100644
--- a/nixpkgs/pkgs/development/python-modules/more-itertools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/more-itertools/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "more-itertools";
-  version = "10.1.0";
+  version = "10.2.0";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ymw2n6DrN7rAKRvOglmzMv1ZrHkvpUl7WYNzCc1bEUo=";
+    hash = "sha256-j8y0gMQ9PpmgAIdjTAbdArDVD78IizgN5aQaAV7COeE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/morfessor/default.nix b/nixpkgs/pkgs/development/python-modules/morfessor/default.nix
index 5301438d4ecd..cf72937a7060 100644
--- a/nixpkgs/pkgs/development/python-modules/morfessor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/morfessor/default.nix
@@ -4,13 +4,14 @@
 }:
 
 buildPythonPackage rec {
-  pname = "Morfessor";
+  pname = "morfessor";
   version = "2.0.6";
 
   format = "setuptools";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "Morfessor";
+    inherit version;
     sha256 = "bb3beac234341724c5f640f65803071f62373a50dba854d5a398567f9aefbab2";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/moto/default.nix b/nixpkgs/pkgs/development/python-modules/moto/default.nix
index 071b7f3ddb64..b8f7b60c9798 100644
--- a/nixpkgs/pkgs/development/python-modules/moto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/moto/default.nix
@@ -20,19 +20,17 @@
 # optional-dependencies
 , aws-xray-sdk
 , cfn-lint
-, docker
-, ecdsa
 , flask
 , flask-cors
+, docker
 , graphql-core
+, joserfc
 , jsondiff
 , multipart
 , openapi-spec-validator
 , py-partiql-parser
 , pyparsing
-, python-jose
 , pyyaml
-, sshpubkeys
 
 # tests
 , freezegun
@@ -43,14 +41,14 @@
 
 buildPythonPackage rec {
   pname = "moto";
-  version = "4.2.13";
+  version = "5.0.3";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Aa72pImnJcjXJb09xvcP8b7a7j4mQXUuS0cf8O3ktNc=";
+    hash = "sha256-BwrC7fia167ihTRIHOaOLzRMimqP7+xUJ+6g1Zm/29s=";
   };
 
   nativeBuildInputs = [
@@ -75,20 +73,21 @@ buildPythonPackage rec {
       aws-xray-sdk
       cfn-lint
       docker
-      ecdsa
       flask
       flask-cors
       graphql-core
+      joserfc
       jsondiff
       multipart
       openapi-spec-validator
-      py-partiql-parser
       pyparsing
-      python-jose
+      py-partiql-parser
       pyyaml
       setuptools
-      sshpubkeys
-    ] ++ python-jose.optional-dependencies.cryptography;
+    ];
+    cognitoidp = [
+      joserfc
+    ];
   };
 
   __darwinAllowLocalNetworking = true;
@@ -121,6 +120,11 @@ buildPythonPackage rec {
     "--deselect=tests/test_firehose/test_firehose_put.py::test_put_record_http_destination"
     "--deselect=tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination"
 
+    # Fails at resolving s3.amazonaws.com
+    "--deselect=tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_wildcard_urls"
+    "--deselect=tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_specific_url"
+    "--deselect=tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_entire_service"
+
     # Download recordings returns faulty JSON
     "--deselect=tests/test_moto_api/recorder/test_recorder.py::TestRecorder::test_ec2_instance_creation_recording_on"
     "--deselect=tests/test_moto_api/recorder/test_recorder.py::TestRecorder::test_ec2_instance_creation__recording_off"
diff --git a/nixpkgs/pkgs/development/python-modules/mouseinfo/default.nix b/nixpkgs/pkgs/development/python-modules/mouseinfo/default.nix
index f5c76b875241..9d4fe2af480f 100644
--- a/nixpkgs/pkgs/development/python-modules/mouseinfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mouseinfo/default.nix
@@ -7,7 +7,7 @@
 , pillow
 }:
 buildPythonPackage rec {
-  pname = "MouseInfo";
+  pname = "mouseinfo";
   version = "0.1.3";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/development/python-modules/mplhep/default.nix b/nixpkgs/pkgs/development/python-modules/mplhep/default.nix
index cb42de13cca7..436baf50202e 100644
--- a/nixpkgs/pkgs/development/python-modules/mplhep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mplhep/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "mplhep";
-  version = "0.3.35";
+  version = "0.3.41";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0l89Vh/vmi8kHeNer2ExGE1ehn1Kw3AbEUm8C55a92w=";
+    hash = "sha256-1L9e2A2u+4+QEWJW2ikuENLD0x5Khjfr7I6p+Vt4nwE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mpris-server/default.nix b/nixpkgs/pkgs/development/python-modules/mpris-server/default.nix
index 59a668a61e8d..cd790275e085 100644
--- a/nixpkgs/pkgs/development/python-modules/mpris-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mpris-server/default.nix
@@ -40,6 +40,10 @@ buildPythonPackage rec {
   # upstream has no tests
   doCheck = false;
 
+  # update doesn't support python311 and monophony, the only consumer requires
+  # 0.4.2
+  passthru.skipBulkUpdate = true;
+
   meta = with lib; {
     description = "Publish a MediaPlayer2 MPRIS device to D-Bus";
     homepage = "https://pypi.org/project/mpris-server/";
diff --git a/nixpkgs/pkgs/development/python-modules/mpyq/default.nix b/nixpkgs/pkgs/development/python-modules/mpyq/default.nix
index 815c41a80afc..f23feb21f054 100644
--- a/nixpkgs/pkgs/development/python-modules/mpyq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mpyq/default.nix
@@ -15,6 +15,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "A Python library for extracting MPQ (MoPaQ) files.";
+    mainProgram = "mpyq";
     homepage = "https://github.com/eagleflo/mpyq";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/mqtt2influxdb/default.nix b/nixpkgs/pkgs/development/python-modules/mqtt2influxdb/default.nix
index e7892732fcdf..351e1ab69085 100644
--- a/nixpkgs/pkgs/development/python-modules/mqtt2influxdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mqtt2influxdb/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/hardwario/bch-mqtt2influxdb";
     description = "Flexible MQTT to InfluxDB Bridge";
+    mainProgram = "mqtt2influxdb";
     platforms = platforms.linux;
     license = licenses.mit;
     maintainers = with maintainers; [ cynerd ];
diff --git a/nixpkgs/pkgs/development/python-modules/mrsqm/default.nix b/nixpkgs/pkgs/development/python-modules/mrsqm/default.nix
index d9748df70785..89d64611836e 100644
--- a/nixpkgs/pkgs/development/python-modules/mrsqm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mrsqm/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "mrsqm";
-  version = "0.0.6";
+  version = "0.0.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dBwWiJEL76aXqM2vKn4uQsd86Rm3bMeDSsRRs/aLWCE=";
+    hash = "sha256-kZwgRazvPCmARcfhLByh1E8VPurrb8gVZc96hFfDOvs=";
   };
 
   buildInputs = [ fftw ];
diff --git a/nixpkgs/pkgs/development/python-modules/msg-parser/default.nix b/nixpkgs/pkgs/development/python-modules/msg-parser/default.nix
index 9670403e640e..5e45338d0787 100644
--- a/nixpkgs/pkgs/development/python-modules/msg-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msg-parser/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Python module to read, parse and converting Microsoft Outlook MSG E-Mail files.";
+    mainProgram = "msg_parser";
     homepage = "https://github.com/vikramarsid/msg_parser";
     license = licenses.bsd2;
     maintainers = with maintainers; [ happysalada ];
diff --git a/nixpkgs/pkgs/development/python-modules/msgpack/default.nix b/nixpkgs/pkgs/development/python-modules/msgpack/default.nix
index 7bcdb42095b3..e1a114d9344b 100644
--- a/nixpkgs/pkgs/development/python-modules/msgpack/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msgpack/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "msgpack";
-  version = "1.0.7";
+  version = "1.0.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Vy78k9t6TSfkBFAZdcptLZd1cFwtkiOQ2Hj892jZLIc=";
+    hash = "sha256-lcArDifnBuSNDlQm0XEMp44PBijW6J1bWluRpfEidPM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/msgraph-core/default.nix b/nixpkgs/pkgs/development/python-modules/msgraph-core/default.nix
index a1df35addf03..f8ee81afbac2 100644
--- a/nixpkgs/pkgs/development/python-modules/msgraph-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msgraph-core/default.nix
@@ -2,46 +2,55 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
-, flit-core
+, setuptools
+, httpx
+, microsoft-kiota-abstractions
+, microsoft-kiota-authentication-azure
+ ,microsoft-kiota-http
 , requests
+, azure-identity
 , pytestCheckHook
 , responses
 }:
 
 buildPythonPackage rec {
   pname = "msgraph-core";
-  version = "0.2.2";
+  version = "1.0.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.5";
 
-  format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "microsoftgraph";
     repo = "msgraph-sdk-python-core";
-    rev = "v${version}";
-    hash = "sha256-eRRlG3GJX3WeKTNJVWgNTTHY56qiUGOlxtvEZ2xObLA=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-VizjN7sXqPvo9VOSaaUnogTlUDJ1OA2COYNTcVRqhJA=";
   };
 
   nativeBuildInputs = [
-    flit-core
+    setuptools
   ];
 
   propagatedBuildInputs = [
+    httpx
+    microsoft-kiota-abstractions
+    microsoft-kiota-authentication-azure
+    microsoft-kiota-http
     requests
+
   ];
 
   nativeCheckInputs = [
+    azure-identity
     pytestCheckHook
     responses
   ];
 
-  disabledTestPaths = [
-    "tests/integration"
+  pythonImportsCheck = [
+    "msgraph_core"
   ];
 
-  pythonImportsCheck = [ "msgraph.core" ];
-
   meta = {
     description = "Core component of the Microsoft Graph Python SDK";
     homepage = "https://github.com/microsoftgraph/msgraph-sdk-python-core";
diff --git a/nixpkgs/pkgs/development/python-modules/msldap/default.nix b/nixpkgs/pkgs/development/python-modules/msldap/default.nix
index a53ec6152e37..6b013aa02a63 100644
--- a/nixpkgs/pkgs/development/python-modules/msldap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msldap/default.nix
@@ -1,38 +1,45 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, asn1crypto
+, pythonOlder
+, setuptools
+, unicrypto
 , asyauth
 , asysocks
-, minikerberos
+, asn1crypto
+, winacl
 , prompt-toolkit
 , tqdm
-, winacl
-, winsspi
-, pythonOlder
+, wcwidth
+, tabulate
 }:
 
 buildPythonPackage rec {
   pname = "msldap";
-  version = "0.5.9";
-  format = "setuptools";
+  version = "0.5.10";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-XzxONiKW4OHrpEftqfIwmIp7KgiCb3s+007JYS68/jM=";
+    hash = "sha256-Zb/g5QLJTSb0XTZvVnzbYkYvJ/ZVvQri8CKP48n5ibg=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
-    asn1crypto
+    unicrypto
     asyauth
     asysocks
-    minikerberos
+    asn1crypto
+    winacl
     prompt-toolkit
     tqdm
-    winacl
-    winsspi
+    wcwidth
+    tabulate
   ];
 
   # Project doesn't have tests
diff --git a/nixpkgs/pkgs/development/python-modules/msoffcrypto-tool/default.nix b/nixpkgs/pkgs/development/python-modules/msoffcrypto-tool/default.nix
index 4bc2e80642e6..fd297474eb70 100644
--- a/nixpkgs/pkgs/development/python-modules/msoffcrypto-tool/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msoffcrypto-tool/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python tool and library for decrypting MS Office files with passwords or other keys";
+    mainProgram = "msoffcrypto-tool";
     homepage = "https://github.com/nolze/msoffcrypto-tool";
     changelog = "https://github.com/nolze/msoffcrypto-tool/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/mss/default.nix b/nixpkgs/pkgs/development/python-modules/mss/default.nix
index 6a82bffaa6c0..ecc0787062f8 100644
--- a/nixpkgs/pkgs/development/python-modules/mss/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mss/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Cross-platform multiple screenshots module";
+    mainProgram = "mss";
     homepage = "https://github.com/BoboTiG/python-mss";
     changelog = "https://github.com/BoboTiG/python-mss/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/mullvad-closest/default.nix b/nixpkgs/pkgs/development/python-modules/mullvad-closest/default.nix
index c5d45dfd1751..62537c244491 100644
--- a/nixpkgs/pkgs/development/python-modules/mullvad-closest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mullvad-closest/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Find Mullvad servers with the lowest latency at your location";
+    mainProgram = "mullvad-closest";
     homepage = "https://github.com/Ch00k/mullvad-closest";
     license = licenses.unlicense;
     maintainers = with maintainers; [ siraben ];
diff --git a/nixpkgs/pkgs/development/python-modules/multiprocess/default.nix b/nixpkgs/pkgs/development/python-modules/multiprocess/default.nix
index 647281b8b4ee..2852fbcbd0d6 100644
--- a/nixpkgs/pkgs/development/python-modules/multiprocess/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/multiprocess/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "multiprocess";
-  version = "0.70.15";
+  version = "0.70.16";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "uqfoundation";
     repo = pname;
-    rev = "refs/tags/multiprocess-${version}";
-    hash = "sha256-fpyFBrQXy5TwbHmce3qg1RiM8JnH3J5skl3es1IQPiw=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-77F5fkZbljq/tuBTkquKEYVubfghUrMZsAdhp1QpH2k=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/multiset/default.nix b/nixpkgs/pkgs/development/python-modules/multiset/default.nix
index 0e6e143676bc..c8d813047d5f 100644
--- a/nixpkgs/pkgs/development/python-modules/multiset/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/multiset/default.nix
@@ -1,32 +1,21 @@
 { lib
 , buildPythonPackage
-, fetchpatch
 , fetchPypi
 , setuptools
 , setuptools-scm
-, wheel
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "multiset";
-  version = "3.0.1";
+  version = "3.0.2";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-5FZxyug4Wo5iSKmwejqDKAwtDMQxJxMFjPus3F7Jlz4=";
+    hash = "sha256-oqUSMaQtkiriJFwpTCNaKfioiOBoZdL84hxuyvER//8=";
   };
 
-  patches = [
-    # https://github.com/wheerd/multiset/pull/115
-    (fetchpatch {
-      name = "relax-setuptools-scm-dependency.patch";
-      url = "https://github.com/wheerd/multiset/commit/296187b07691c94b783f65504afc580a355abd96.patch";
-      hash = "sha256-vnZR1cyM/2/JfbLuVOxJuC9oMVVVploUHpbzagmo+AE=";
-    })
-  ];
-
   postPatch = ''
     # Drop broken version specifier
     sed -i '/python_requires/d' setup.cfg
@@ -35,7 +24,6 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     setuptools
     setuptools-scm
-    wheel
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/mutag/default.nix b/nixpkgs/pkgs/development/python-modules/mutag/default.nix
index f6e8020337c7..9076464d457c 100644
--- a/nixpkgs/pkgs/development/python-modules/mutag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mutag/default.nix
@@ -23,6 +23,7 @@ buildPythonPackage {
   meta = with lib; {
     homepage = "https://github.com/aroig/mutag";
     description = "A script to change email tags in a mu indexed maildir";
+    mainProgram = "mutag";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/mwdblib/default.nix b/nixpkgs/pkgs/development/python-modules/mwdblib/default.nix
index 28e7f8c89f8a..363c909c303b 100644
--- a/nixpkgs/pkgs/development/python-modules/mwdblib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mwdblib/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python client library for the mwdb service";
+    mainProgram = "mwdb";
     homepage = "https://github.com/CERT-Polska/mwdblib";
     changelog = "https://github.com/CERT-Polska/mwdblib/releases/tag/v${version}";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/mwxml/default.nix b/nixpkgs/pkgs/development/python-modules/mwxml/default.nix
index 0c0471537432..28d303325209 100644
--- a/nixpkgs/pkgs/development/python-modules/mwxml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mwxml/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A set of utilities for processing MediaWiki XML dump data";
+    mainProgram = "mwxml";
     homepage = "https://github.com/mediawiki-utilities/python-mwxml";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix b/nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix
index ca654c0b9947..27ffdad65e70 100644
--- a/nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix
@@ -69,6 +69,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to access meal tracking data stored in MyFitnessPal";
+    mainProgram = "myfitnesspal";
     homepage = "https://github.com/coddingtonbear/python-myfitnesspal";
     license = licenses.mit;
     maintainers = with maintainers; [ bhipple ];
diff --git a/nixpkgs/pkgs/development/python-modules/mypy-boto3-builder/default.nix b/nixpkgs/pkgs/development/python-modules/mypy-boto3-builder/default.nix
index a51b5df67c23..1e19b77c9c9c 100644
--- a/nixpkgs/pkgs/development/python-modules/mypy-boto3-builder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mypy-boto3-builder/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "mypy-boto3-builder";
-  version = "7.23.1";
+  version = "7.23.2";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "youtype";
     repo = "mypy_boto3_builder";
     rev = "refs/tags/${version}";
-    hash = "sha256-dbf2rHDQSeHEIN31yIm1142Z7AxTZzMf9FGvrWsJblA=";
+    hash = "sha256-v5/3TCEtDXbmitb3e15XWkW8VO5nJk8TCVvVyh5rAMs=";
   };
 
   nativeBuildInputs = [
@@ -66,6 +66,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Type annotations builder for boto3";
+    mainProgram = "mypy_boto3_builder";
     homepage = "https://github.com/youtype/mypy_boto3_builder";
     changelog = "https://github.com/youtype/mypy_boto3_builder/releases/tag/${version}";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/mypy-boto3/default.nix b/nixpkgs/pkgs/development/python-modules/mypy-boto3/default.nix
index e55ed4314375..fa22b57526a1 100644
--- a/nixpkgs/pkgs/development/python-modules/mypy-boto3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mypy-boto3/default.nix
@@ -47,7 +47,7 @@ let
     };
 in
 rec {
-  mypy-boto3-accessanalyzer = buildMypyBoto3Package "accessanalyzer" "1.34.54" "sha256-ZglQkseFlqe160S+v5baZ3rfI5QqKsh9IIRPOJEcD3E=";
+  mypy-boto3-accessanalyzer = buildMypyBoto3Package "accessanalyzer" "1.34.67" "sha256-tgiKSWgKebdPAsyuJTQoFGR9BSLfGMeTVbi1rnPnvfQ=";
 
   mypy-boto3-account = buildMypyBoto3Package "account" "1.34.0" "sha256-C2iAiA83tZ/7XRlccf1iddDfDNkuO2F0B5aOxKbHy2Q=";
 
@@ -59,7 +59,7 @@ rec {
 
   mypy-boto3-amp = buildMypyBoto3Package "amp" "1.34.39" "sha256-XOousDfEQsZ9z48iH2wVHuUaIwoECwbkHvIAlV3+zu4=";
 
-  mypy-boto3-amplify = buildMypyBoto3Package "amplify" "1.34.45" "sha256-hV0fg6Y39NkZ6Qa6GyIYicMERjCBAjZYcSsJ+1jXAfA=";
+  mypy-boto3-amplify = buildMypyBoto3Package "amplify" "1.34.63" "sha256-alOtCCZwBcx6g3lm80AzI5aF8WbEABd44A0e6gfZ42o=";
 
   mypy-boto3-amplifybackend = buildMypyBoto3Package "amplifybackend" "1.34.0" "sha256-wP6fOHAUg4dvrlQ2rUNk/lgIr6JnpWu/0Tr2prTckOk=";
 
@@ -71,7 +71,7 @@ rec {
 
   mypy-boto3-apigatewayv2 = buildMypyBoto3Package "apigatewayv2" "1.34.0" "sha256-ydpZ3osSSMwTtGsnRn1SygX5d9Kq8jHwqdQDKcmKXTY=";
 
-  mypy-boto3-appconfig = buildMypyBoto3Package "appconfig" "1.34.0" "sha256-mhA3LnS9upyI89XPjdTOaTKWbHMRF/xIhnYl432s6x4=";
+  mypy-boto3-appconfig = buildMypyBoto3Package "appconfig" "1.34.58" "sha256-f073cXEkDyzkPeOPclhS0O6ZVvEmYPkGPMXrAD8LkE4=";
 
   mypy-boto3-appconfigdata = buildMypyBoto3Package "appconfigdata" "1.34.24" "sha256-pSo1Qw6ZKN0XzERlCRmCtvJEOjgyd+a82t6Q3pPaU8Q=";
 
@@ -105,13 +105,13 @@ rec {
 
   mypy-boto3-autoscaling-plans = buildMypyBoto3Package "autoscaling-plans" "1.34.0" "sha256-16siojcxNe5MuSZSRJXPAz2UudJozEEyCYUrsGNDAM8=";
 
-  mypy-boto3-backup = buildMypyBoto3Package "backup" "1.34.0" "sha256-H4wIDyA+/6sH6X5zp/HGP2vfWIY5HzgTfa1ThXfXwYM=";
+  mypy-boto3-backup = buildMypyBoto3Package "backup" "1.34.64" "sha256-RvxhEmrOtkvagjaj8x2H7AAp+uK9qDIDe7T9p52rKRc=";
 
   mypy-boto3-backup-gateway = buildMypyBoto3Package "backup-gateway" "1.34.0" "sha256-nSIEEDKJfI852/WBQ7OuDPuVijEiMr1vhpkzODbhRRc=";
 
   mypy-boto3-backupstorage = buildMypyBoto3Package "backupstorage" "1.34.0" "sha256-Y8kjZ+ov8OsiJ8Sm1LlvP8YbgVc+AkLkbZIhOh4y7ZY=";
 
-  mypy-boto3-batch = buildMypyBoto3Package "batch" "1.34.52" "sha256-W0dT3QK7KhBghfV+a7eaY6PY10RldURvhi5PkxkGNDQ=";
+  mypy-boto3-batch = buildMypyBoto3Package "batch" "1.34.59" "sha256-rsXdh8f3KRAROftePejdLxChRqtiaDFsJyhctX7jRUQ=";
 
   mypy-boto3-billingconductor = buildMypyBoto3Package "billingconductor" "1.34.1" "sha256-uXxQkoe2u3idcYta9YFbjxoK8HsvUiRQSyYrYhVi1kU=";
 
@@ -141,7 +141,7 @@ rec {
 
   mypy-boto3-clouddirectory = buildMypyBoto3Package "clouddirectory" "1.34.0" "sha256-lWJQClNEhyq9CN8ThcHtVcEsowIp+V8RXh4rgHAclfM=";
 
-  mypy-boto3-cloudformation = buildMypyBoto3Package "cloudformation" "1.34.55" "sha256-3p9NRdCk5Xu174uNegNHb47yT/olPWNs2CTN4GEidDk=";
+  mypy-boto3-cloudformation = buildMypyBoto3Package "cloudformation" "1.34.66" "sha256-KV3bh48/S2FIm4O9S62Uk4LeuKR4/1rmbCLKP/urvpU=";
 
   mypy-boto3-cloudfront = buildMypyBoto3Package "cloudfront" "1.34.0" "sha256-3n/WEiQdcE253J+CFsskoYlNMXASdzkhPTWneSHDKoM=";
 
@@ -153,7 +153,7 @@ rec {
 
   mypy-boto3-cloudsearchdomain = buildMypyBoto3Package "cloudsearchdomain" "1.34.0" "sha256-jhhwFXH80aZjVqVMZulwoCvu3EmXj4BbJ3DQ6eJPS4E=";
 
-  mypy-boto3-cloudtrail = buildMypyBoto3Package "cloudtrail" "1.34.22" "sha256-lymfB2xWjxHtHfB/A543RRX3haY0uEbTppfH0tYZAV4=";
+  mypy-boto3-cloudtrail = buildMypyBoto3Package "cloudtrail" "1.34.59" "sha256-0gwq1zhZcLc8gVGo337AqqC39w8MJR6JK948No/yzVA=";
 
   mypy-boto3-cloudtrail-data = buildMypyBoto3Package "cloudtrail-data" "1.34.0" "sha256-ACiJrI+VTHr06i8PKgDY/K8houFUZQNS1lluouadCTQ=";
 
@@ -161,7 +161,7 @@ rec {
 
   mypy-boto3-codeartifact = buildMypyBoto3Package "codeartifact" "1.34.0" "sha256-iUgoanqMSyxRopVctyFLiu+otFSgRvdgQPw4mKX3QIk=";
 
-  mypy-boto3-codebuild = buildMypyBoto3Package "codebuild" "1.34.23" "sha256-zTqQCOuWdodXQqOY7u86LDMkmyUgMRQXtp4Lxn968Ps=";
+  mypy-boto3-codebuild = buildMypyBoto3Package "codebuild" "1.34.67" "sha256-Kvd8zAHfepA4dulpiQCaT2pfKCH567d6CYd5QlweXIY=";
 
   mypy-boto3-codecatalyst = buildMypyBoto3Package "codecatalyst" "1.34.0" "sha256-TsXVy8bx6kaj84PJiNNU+075Tx3WW0mrtZFOyLx9yT4=";
 
@@ -179,13 +179,13 @@ rec {
 
   mypy-boto3-codestar = buildMypyBoto3Package "codestar" "1.34.0" "sha256-BAueRLlYZGDiF6DtjxL24twLYYZqD3ErdJ73fsFoG1k=";
 
-  mypy-boto3-codestar-connections = buildMypyBoto3Package "codestar-connections" "1.34.10" "sha256-xAYeABwDIbIELhjcRA4ErYaAsChZD1vCPWAw7/PNXL0=";
+  mypy-boto3-codestar-connections = buildMypyBoto3Package "codestar-connections" "1.34.60" "sha256-WH/cN8BXG7c79gGR/0m3xvEPNdPAFRosInmO9DeAVdM=";
 
   mypy-boto3-codestar-notifications = buildMypyBoto3Package "codestar-notifications" "1.34.0" "sha256-JmXEpHbOhcO9F++G+ohXPuXoNILbcL9r5qyH4OooCtc=";
 
   mypy-boto3-cognito-identity = buildMypyBoto3Package "cognito-identity" "1.34.0" "sha256-6UlyNX0a1wG5FR/WHMZOwysikGffNCX6Fo1MYvFuFwM=";
 
-  mypy-boto3-cognito-idp = buildMypyBoto3Package "cognito-idp" "1.34.33" "sha256-1YDEVgaXP3atrIezWiR/nhjeXYF/tLQNoPQjyWjvn2E=";
+  mypy-boto3-cognito-idp = buildMypyBoto3Package "cognito-idp" "1.34.59" "sha256-kZpXb5MzK4IceWnNs9tWWLhQnysfWGuOLf00J4/ypvw=";
 
   mypy-boto3-cognito-sync = buildMypyBoto3Package "cognito-sync" "1.34.0" "sha256-JTkmpEHwKN5IyoGVs4beVAEOr1fZPxBoYjzNBgjTEY0=";
 
@@ -197,7 +197,7 @@ rec {
 
   mypy-boto3-config = buildMypyBoto3Package "config" "1.34.45" "sha256-LN1CcIOj9cgzSNCvnUVwLRNPXlitHAlt+5jj6wu6i8E=";
 
-  mypy-boto3-connect = buildMypyBoto3Package "connect" "1.34.29" "sha256-ITp3AxmopIkeVPezwN27Xcy5TnDn8O0rzWHokPzTGdE=";
+  mypy-boto3-connect = buildMypyBoto3Package "connect" "1.34.67" "sha256-kWjC/FacCsC0xevx2dOs67UxaKG1WM3xMahcO3CqZL8=";
 
   mypy-boto3-connect-contact-lens = buildMypyBoto3Package "connect-contact-lens" "1.34.0" "sha256-Wx9vcjlgXdWZ2qP3Y/hTY2LAeTd+hyyV5JSIuKQ5I5k=";
 
@@ -245,15 +245,15 @@ rec {
 
   mypy-boto3-ds = buildMypyBoto3Package "ds" "1.34.0" "sha256-qVtMpsnVLF2rN4WaEhrqlTvWvW28RcHIBjsZYwmYapc=";
 
-  mypy-boto3-dynamodb = buildMypyBoto3Package "dynamodb" "1.34.57" "sha256-itDqozgR636w+OK8wtvO+obJHXohsTr1AMOousvpnbA=";
+  mypy-boto3-dynamodb = buildMypyBoto3Package "dynamodb" "1.34.67" "sha256-CUR+8+pr3+C+TjLKIyg4IFczQdNAvqMGXe0hU8xZPSI=";
 
   mypy-boto3-dynamodbstreams = buildMypyBoto3Package "dynamodbstreams" "1.34.0" "sha256-Zx5cJE+fU9NcvK5rLR966AGIKUvfIwdpLaWWdLmuDzc=";
 
   mypy-boto3-ebs = buildMypyBoto3Package "ebs" "1.34.0" "sha256-xIrrXOayZed+Jcn4CFXXNgKz/G+RdiuwA04wq+Ry/fs=";
 
-  mypy-boto3-ec2 = buildMypyBoto3Package "ec2" "1.34.54" "sha256-zjTC13Qb4ZGMr1tGyvsMt7H2rIHsb72IRrvoXJPUMQE=";
+  mypy-boto3-ec2 = buildMypyBoto3Package "ec2" "1.34.66" "sha256-Io0ExXqdar+5A4H66ryaApWIQnEcspQysfBsOit4WyY=";
 
-  mypy-boto3-ec2-instance-connect = buildMypyBoto3Package "ec2-instance-connect" "1.34.0" "sha256-95TXW9HJHciM+lZCdlUYOwcLhkKE8RJpRx9/dEnu3FU=";
+  mypy-boto3-ec2-instance-connect = buildMypyBoto3Package "ec2-instance-connect" "1.34.63" "sha256-kExmGXEJ5jrvOewmWx7AjVb3boD5GU0cEUp/2PQhzlw=";
 
   mypy-boto3-ecr = buildMypyBoto3Package "ecr" "1.34.0" "sha256-uD+wMR6WikLUyoIbAGwY1KPj42S4zr7nWOpPqXxaw0U=";
 
@@ -267,7 +267,7 @@ rec {
 
   mypy-boto3-elastic-inference = buildMypyBoto3Package "elastic-inference" "1.34.0" "sha256-gbWKw0zDQf3qBlp1KeO7MX1j/GqRUpFAxLG0BKFrHBk=";
 
-  mypy-boto3-elasticache = buildMypyBoto3Package "elasticache" "1.34.0" "sha256-ArUBQ5XbBz4kTABHwgpE6VoRCu2ILVSEvLb2yQWMbvU=";
+  mypy-boto3-elasticache = buildMypyBoto3Package "elasticache" "1.34.60" "sha256-D3WLH1FS8dddD6WKUmQApvtehGMmjWYzdaMwTHzvzYk=";
 
   mypy-boto3-elasticbeanstalk = buildMypyBoto3Package "elasticbeanstalk" "1.34.0" "sha256-ftVFUwY81mg/9zJ4xxVjhXF1HgKpzj1koIS32cMKRLw=";
 
@@ -275,7 +275,7 @@ rec {
 
   mypy-boto3-elb = buildMypyBoto3Package "elb" "1.34.0" "sha256-5Eh5D872pVDd7Q+DDh3zpGMVgS8fUJsV+63H1fet73s=";
 
-  mypy-boto3-elbv2 = buildMypyBoto3Package "elbv2" "1.34.32" "sha256-jDrQb4A0PVBSxH7vuPXehpEYdU8Hwgv2Sc2+j0OGVJg=";
+  mypy-boto3-elbv2 = buildMypyBoto3Package "elbv2" "1.34.63" "sha256-snXMLMHLEpJjfX1GJp6FfYgIjkS8vkbf/hESBdhxIfk=";
 
   mypy-boto3-emr = buildMypyBoto3Package "emr" "1.34.44" "sha256-zM1VpAaBSxqdZiSrNiaAKfvliNRXMLEmvFvXcFmkZO0=";
 
@@ -291,13 +291,13 @@ rec {
 
   mypy-boto3-evidently = buildMypyBoto3Package "evidently" "1.34.0" "sha256-MkBB5iTYJYg2cWFYHR3Qu7TcsDglLPEw0MnoHqij6+A=";
 
-  mypy-boto3-finspace = buildMypyBoto3Package "finspace" "1.34.24" "sha256-GMHF1MWsAt0EfwcK/OSG14AP80L+9dLNsWygvpU5344=";
+  mypy-boto3-finspace = buildMypyBoto3Package "finspace" "1.34.66" "sha256-G5FMKm9HymvRPtkjvYZt6NVhPUVuBwCR4kQq8/naUFs=";
 
   mypy-boto3-finspace-data = buildMypyBoto3Package "finspace-data" "1.34.0" "sha256-8mND5BbdKY5srFwdpxSyfCUTIP4fa9hztP4daUJOB8k=";
 
   mypy-boto3-firehose = buildMypyBoto3Package "firehose" "1.34.46" "sha256-Fgs7wrwKPK79cYduCR/RYQ2FEZvghDuWI1hXKzFLfJo=";
 
-  mypy-boto3-fis = buildMypyBoto3Package "fis" "1.34.0" "sha256-0TJ7iAF9hTOiKoW305p8a5fE0lZrdtoFDj/jjZzfdf0=";
+  mypy-boto3-fis = buildMypyBoto3Package "fis" "1.34.63" "sha256-TJnzgQGDcybpVqg+p7Tuvw/RoY79cQPPChyHWlMxhiY=";
 
   mypy-boto3-fms = buildMypyBoto3Package "fms" "1.34.0" "sha256-tzaSecIXzkC+Zr5MGpU7GaoiGHGsywEglZ8+Ja0XDDo=";
 
@@ -319,7 +319,7 @@ rec {
 
   mypy-boto3-glue = buildMypyBoto3Package "glue" "1.34.35" "sha256-+Kvk8uB9KZp7mw3sMAM6mHdBTnkO5J8nSVClttndMDY=";
 
-  mypy-boto3-grafana = buildMypyBoto3Package "grafana" "1.34.0" "sha256-J8ccxvUnjvC6aITCuLHnEXMlQ3Bdh6HxP+Spu326ZwA=";
+  mypy-boto3-grafana = buildMypyBoto3Package "grafana" "1.34.58" "sha256-dr+fCDf0DcWGxPPLMnzqrOCRMfoLhznyv6n679fFU/0=";
 
   mypy-boto3-greengrass = buildMypyBoto3Package "greengrass" "1.34.0" "sha256-ZU/xVWGlMngX0JiAhy9NEFDoXS4fsZvmLAkWqv2pocQ=";
 
@@ -327,7 +327,7 @@ rec {
 
   mypy-boto3-groundstation = buildMypyBoto3Package "groundstation" "1.34.0" "sha256-CR3w42iyXmyGMzjCM7M1LKqsIROMjXxxGM8coSTtJ3o=";
 
-  mypy-boto3-guardduty = buildMypyBoto3Package "guardduty" "1.34.43" "sha256-TPzHvXp5Tfs/1grsS6Eu1bGJpz34DjKatMyBqUFByi8=";
+  mypy-boto3-guardduty = buildMypyBoto3Package "guardduty" "1.34.59" "sha256-Q5itLyYcSK7tzlYjT4Dgdcm4bE2Dr+bl5kfHqV4D9Pg=";
 
   mypy-boto3-health = buildMypyBoto3Package "health" "1.34.0" "sha256-st3ygy9yZbAbh1ZWnT8XDZTBz1qWhRWXCEfr5ILQHpo=";
 
@@ -385,11 +385,11 @@ rec {
 
   mypy-boto3-ivs = buildMypyBoto3Package "ivs" "1.34.45" "sha256-Ilrtk6ZF1p3GNuZrtiEiNXi3bHI3MYNr6bDpJ8sf4Fg=";
 
-  mypy-boto3-ivs-realtime = buildMypyBoto3Package "ivs-realtime" "1.34.0" "sha256-x+B14roN4jNXeLp+Tmwtj28OMeGe80qLMaIbVCzulbY=";
+  mypy-boto3-ivs-realtime = buildMypyBoto3Package "ivs-realtime" "1.34.62" "sha256-/8P/S2xdYub8/tC0yaUbUfcxfDKpDnfAvmqneXFcAOo=";
 
   mypy-boto3-ivschat = buildMypyBoto3Package "ivschat" "1.34.0" "sha256-eNwL7uUI7x30KJwNO5U/0XSV1O4YZYu/zYvGQgz7p+8=";
 
-  mypy-boto3-kafka = buildMypyBoto3Package "kafka" "1.34.0" "sha256-fBTouiFX1z8WvIECcu8gocENiWMl50hbCEk7K+4OCV0=";
+  mypy-boto3-kafka = buildMypyBoto3Package "kafka" "1.34.61" "sha256-nXd3Qi8IZsQN595vnsMLSn6pfZU70yPb6Ebhv4SijfE=";
 
   mypy-boto3-kafkaconnect = buildMypyBoto3Package "kafkaconnect" "1.34.50" "sha256-frPPAQeFyO92uMqqzBcSC3MVK4V4hbdO9tx4awAKAUU=";
 
@@ -411,15 +411,15 @@ rec {
 
   mypy-boto3-kinesisanalytics = buildMypyBoto3Package "kinesisanalytics" "1.34.0" "sha256-eEoSmwMTa/hsbKbuKuzAZv4jHljGKq3b5Rw7K2Pgc50=";
 
-  mypy-boto3-kinesisanalyticsv2 = buildMypyBoto3Package "kinesisanalyticsv2" "1.34.0" "sha256-ZxVW6BKUdgnWKk4J3B2I0vlSLZRR+Dua3Sb/mzIDFNE=";
+  mypy-boto3-kinesisanalyticsv2 = buildMypyBoto3Package "kinesisanalyticsv2" "1.34.64" "sha256-7sJyrWtBcbrWlCjR7pLdBLgW7sXcRazDPBW+OGwh4Xg=";
 
   mypy-boto3-kinesisvideo = buildMypyBoto3Package "kinesisvideo" "1.34.48" "sha256-uYSkwOuYKF3B+sj5IWbDL789Xue2yNY9g14j/2b6k6w=";
 
-  mypy-boto3-kms = buildMypyBoto3Package "kms" "1.34.14" "sha256-fGuTdVCmgdqaYdJcEJY7vhvNw+Qi1NXYFST16mXp0UA=";
+  mypy-boto3-kms = buildMypyBoto3Package "kms" "1.34.65" "sha256-jot13mfxhgvayvQkMxnDvjdwkpGLkwsC2eeAQpMW0II=";
 
   mypy-boto3-lakeformation = buildMypyBoto3Package "lakeformation" "1.34.7" "sha256-/IPOF44ohg59XX+lmMbx8WsaHFpBaMH440Wm5jgrKD4=";
 
-  mypy-boto3-lambda = buildMypyBoto3Package "lambda" "1.34.46" "sha256-J1KXlExeNqFws3znAinyHbbdNWFgZ5nxjZbjasXfaHY=";
+  mypy-boto3-lambda = buildMypyBoto3Package "lambda" "1.34.58" "sha256-kDgix0vRs0dI6y1y6rDxMvvDs5LIBBqo/k2VUqRLDGU=";
 
   mypy-boto3-lex-models = buildMypyBoto3Package "lex-models" "1.34.0" "sha256-LkD3CCjJYGwlSYRP0meJUCEdVSGGdSRrL9uBtimX4GU=";
 
@@ -439,7 +439,7 @@ rec {
 
   mypy-boto3-location = buildMypyBoto3Package "location" "1.34.18" "sha256-rsjIGenXgdEdgxvilA3IKJkYkpDDQNDfjDQRoj/mxSU=";
 
-  mypy-boto3-logs = buildMypyBoto3Package "logs" "1.34.36" "sha256-FUm1TaiKhphSRY4YbliUSdU6eAU1S1r9fVO00nXFPC4=";
+  mypy-boto3-logs = buildMypyBoto3Package "logs" "1.34.66" "sha256-z1+sSAHdkvBQB/sbRET/mCWFRNHyHmTpIo40GIBG+EE=";
 
   mypy-boto3-lookoutequipment = buildMypyBoto3Package "lookoutequipment" "1.34.47" "sha256-M7NaoRHxlH5/zkuMnOlrco2BCPXErv/N7TAVwv2oZuA=";
 
@@ -457,7 +457,7 @@ rec {
 
   mypy-boto3-managedblockchain = buildMypyBoto3Package "managedblockchain" "1.34.0" "sha256-gUPuS8/ygIdsfCx6S1zpxP936Ah0o5BT4TaDiEW4wPQ=";
 
-  mypy-boto3-managedblockchain-query = buildMypyBoto3Package "managedblockchain-query" "1.34.33" "sha256-HByCyc+gnBu2+5qdtRw6LuRWCu7sVVXxmOJJZgWMFsI=";
+  mypy-boto3-managedblockchain-query = buildMypyBoto3Package "managedblockchain-query" "1.34.67" "sha256-c2BoAKpgurKaNOTkl3cqc3X1CiaQVfQL5kvQV3/WLww=";
 
   mypy-boto3-marketplace-catalog = buildMypyBoto3Package "marketplace-catalog" "1.34.41" "sha256-SZqNZO/36iGuf0jqNIZrbD1BOE7p6xMWhs5Y5VkUl8c=";
 
@@ -475,13 +475,13 @@ rec {
 
   mypy-boto3-mediapackage-vod = buildMypyBoto3Package "mediapackage-vod" "1.34.0" "sha256-XwGc3+WD8o/MUfcBocl52TPK/RhiCjEb2qDqcuYwB+g=";
 
-  mypy-boto3-mediapackagev2 = buildMypyBoto3Package "mediapackagev2" "1.34.0" "sha256-8UYtTNJDsu0CkxQguWOtNI0viERJ4bRBKNa/In4iIA0=";
+  mypy-boto3-mediapackagev2 = buildMypyBoto3Package "mediapackagev2" "1.34.60" "sha256-tm54AEKAAuhp8+KeoW/yesl0M8utg7iIbkOpLyotpa8=";
 
   mypy-boto3-mediastore = buildMypyBoto3Package "mediastore" "1.34.0" "sha256-v2G2wDXGJwMalYnHTRGvdRTUv41bm8adIOj9tgQV0ys=";
 
   mypy-boto3-mediastore-data = buildMypyBoto3Package "mediastore-data" "1.34.0" "sha256-bYlKkBh7Kq4PsToHQ4+K5B3h8+IwyS+7ngEJ5AALBus=";
 
-  mypy-boto3-mediatailor = buildMypyBoto3Package "mediatailor" "1.34.45" "sha256-r1rzW4TQ2pZ/Bw+ina6sSLUTEk9+fakZEWYA5gOxXhY=";
+  mypy-boto3-mediatailor = buildMypyBoto3Package "mediatailor" "1.34.65" "sha256-JJDQuyACp+y5PntLhMZ2rIb1wR/IW0PPPqS8HB54mNk=";
 
   mypy-boto3-medical-imaging = buildMypyBoto3Package "medical-imaging" "1.34.0" "sha256-3lAWDWzf1MjTDh0+HDnewq0Yo3bUuhSGSSKJvJf6k8g=";
 
@@ -541,7 +541,7 @@ rec {
 
   mypy-boto3-payment-cryptography = buildMypyBoto3Package "payment-cryptography" "1.34.20" "sha256-WdyhWl00Khf3gA6OeWeKrlgFnTvWhk+AFoS2UhM5Haw=";
 
-  mypy-boto3-payment-cryptography-data = buildMypyBoto3Package "payment-cryptography-data" "1.34.0" "sha256-+A49ZU8ITWkdUmGf57szMwIGzEHe6cx9egBEMDPsUKY=";
+  mypy-boto3-payment-cryptography-data = buildMypyBoto3Package "payment-cryptography-data" "1.34.58" "sha256-mc4NO3yjdLlXc9TBkmIsGFqNfW2RT7/jVMC9uhug4tc=";
 
   mypy-boto3-pca-connector-ad = buildMypyBoto3Package "pca-connector-ad" "1.34.0" "sha256-pSGVZPLuj8xcSfLqa+xvf4UL/l2Xb5t43KuXlTCfskc=";
 
@@ -581,7 +581,7 @@ rec {
 
   mypy-boto3-rbin = buildMypyBoto3Package "rbin" "1.34.0" "sha256-Y+a/p3r5IgWk4oH6MOeq0e7rMiNvLCqoz1ZE+xXNtOw=";
 
-  mypy-boto3-rds = buildMypyBoto3Package "rds" "1.34.57" "sha256-9DhBIpPcJgMWGiAwnqSHKlf8LB1VRHcHXkkKb2+JbEk=";
+  mypy-boto3-rds = buildMypyBoto3Package "rds" "1.34.65" "sha256-uEgsI/MsacidGZEYWhvXDVE2RUFdtuh027YZbL4Lyb8=";
 
   mypy-boto3-rds-data = buildMypyBoto3Package "rds-data" "1.34.6" "sha256-d+WXt3cSUe5ZxynSjPSJxXgv6evP/rhZrX1ua9rtSx8=";
 
@@ -619,13 +619,13 @@ rec {
 
   mypy-boto3-rum = buildMypyBoto3Package "rum" "1.34.49" "sha256-Mq2H+13cjxYRwFfxJpWTAb+W5bx+Vew+jl+zbreRIkQ=";
 
-  mypy-boto3-s3 = buildMypyBoto3Package "s3" "1.34.14" "sha256-ccOasGI820QtIltxwXg/alE8/0xKE1BaLvuy46/y6WU=";
+  mypy-boto3-s3 = buildMypyBoto3Package "s3" "1.34.65" "sha256-L830Es4pJLLws021mr8GqcC75M0zYfFPDSweIRwPfd0=";
 
   mypy-boto3-s3control = buildMypyBoto3Package "s3control" "1.34.18" "sha256-53s5ii1gFX9toigiazEtS5Jogg3VFFr+1/uiLzoU7Uo=";
 
   mypy-boto3-s3outposts = buildMypyBoto3Package "s3outposts" "1.34.0" "sha256-xLuGP9Fe0S7zRimt1AKd9KOrytmNd/GTRg5OVi5Xpos=";
 
-  mypy-boto3-sagemaker = buildMypyBoto3Package "sagemaker" "1.34.53" "sha256-IgZzJstoOg1wzucKqPBx47baLbagrUk1kW4P8cI++cg=";
+  mypy-boto3-sagemaker = buildMypyBoto3Package "sagemaker" "1.34.64" "sha256-Sf1T1aqRMIEZmuA2KH5tzuhTDN8yfFID/+h0DCWxws0=";
 
   mypy-boto3-sagemaker-a2i-runtime = buildMypyBoto3Package "sagemaker-a2i-runtime" "1.34.0" "sha256-jMZ3aWKQPhNec4A/02S1waQi6Mx9JVdENc3kblhsKjA=";
 
@@ -639,7 +639,7 @@ rec {
 
   mypy-boto3-sagemaker-runtime = buildMypyBoto3Package "sagemaker-runtime" "1.34.0" "sha256-OJYEdi4xILUZoePcGBcLRHAhwppeybNO+l0kyW3a0Co=";
 
-  mypy-boto3-savingsplans = buildMypyBoto3Package "savingsplans" "1.34.0" "sha256-HaloEU3+2VgDekIQ5JltgCCG1jJ/ap1qqDGWR51ggtU=";
+  mypy-boto3-savingsplans = buildMypyBoto3Package "savingsplans" "1.34.67" "sha256-t+0Ko+Onv24p1Sn59mvR/auXkDTowOEpKwpzuMUqk8w=";
 
   mypy-boto3-scheduler = buildMypyBoto3Package "scheduler" "1.34.0" "sha256-+gnQjWPtp7KVI/qIY2aXHD9iM7RZIDl0JwRostfhjzc=";
 
@@ -647,7 +647,7 @@ rec {
 
   mypy-boto3-sdb = buildMypyBoto3Package "sdb" "1.34.0" "sha256-13BuAQD8uDwwDhCw+8O3V882H6/oor5Z8mBmjb7HHAU=";
 
-  mypy-boto3-secretsmanager = buildMypyBoto3Package "secretsmanager" "1.34.43" "sha256-q79WB3XC/g3Dg7f3DBahv3U9mz/8DKpeNUR+aFeDpos=";
+  mypy-boto3-secretsmanager = buildMypyBoto3Package "secretsmanager" "1.34.63" "sha256-oZM3PXGPdH1Th4tcx/7y6bj944kuR4isaQ/SsWo1Vkw=";
 
   mypy-boto3-securityhub = buildMypyBoto3Package "securityhub" "1.34.20" "sha256-EcLY5SXSN2kJEuo8s2sYJJfq/X78BM1msyI9TfYD7Xw=";
 
@@ -679,13 +679,13 @@ rec {
 
   mypy-boto3-snow-device-management = buildMypyBoto3Package "snow-device-management" "1.34.0" "sha256-buPLN3Qu+asEf2qrv1Jvhu3gKN6aBrK55jB8IxPoFMs=";
 
-  mypy-boto3-snowball = buildMypyBoto3Package "snowball" "1.34.30" "sha256-I46b9Ome7klpxD5dr809Vzhv37j6pJPdtuaSqTajNIk=";
+  mypy-boto3-snowball = buildMypyBoto3Package "snowball" "1.34.58" "sha256-z60jinh1shgZv2Q4uW2eFphJXRC0ONVN5bPE1UBgC9Y=";
 
   mypy-boto3-sns = buildMypyBoto3Package "sns" "1.34.44" "sha256-qYW1KB0AoVbdfJCT5YE8EMTqa5Hy67cVZ/57t7IQplI=";
 
   mypy-boto3-sqs = buildMypyBoto3Package "sqs" "1.34.0" "sha256-C/iZX1iRmrKVOYEA5y6qfaiYrc/Z0zmkLzxIzkc0GdU=";
 
-  mypy-boto3-ssm = buildMypyBoto3Package "ssm" "1.34.47" "sha256-vnDMMvmgfmcBdG6+ZfuhTVnD8kqFEdJ1/YMiyTZfInA=";
+  mypy-boto3-ssm = buildMypyBoto3Package "ssm" "1.34.61" "sha256-TLyZ9CtpE8U2xsxBwC0/Flkg0ee6u5uxd4K0EFVs3gA=";
 
   mypy-boto3-ssm-contacts = buildMypyBoto3Package "ssm-contacts" "1.34.0" "sha256-wkKPGLm24/zgMKitcF9ZaPt/W4m+yHerR1wbEqJALBM=";
 
@@ -715,7 +715,7 @@ rec {
 
   mypy-boto3-textract = buildMypyBoto3Package "textract" "1.34.0" "sha256-AeukQ85jOCNpUxfnedEyacm/bK6pFA32tmhQrieLoMo=";
 
-  mypy-boto3-timestream-query = buildMypyBoto3Package "timestream-query" "1.34.0" "sha256-YriLmrbBd3zPny4MBMJV5G0WB4mQZElBZDOd3DTin74=";
+  mypy-boto3-timestream-query = buildMypyBoto3Package "timestream-query" "1.34.65" "sha256-RSGOulFIOZi/9Z5grP/Zv0A5fy3MJTzph+D9a45MkHA=";
 
   mypy-boto3-timestream-write = buildMypyBoto3Package "timestream-write" "1.34.0" "sha256-fKi5nIyU5BffflHVh21HjcuYE+RXDiq0gXbFOKOAYPE=";
 
@@ -723,7 +723,7 @@ rec {
 
   mypy-boto3-transcribe = buildMypyBoto3Package "transcribe" "1.34.0" "sha256-cKiJ306Y96xLHB7vX46uaw145BPLK/1g3OrMIMB0pPo=";
 
-  mypy-boto3-transfer = buildMypyBoto3Package "transfer" "1.34.18" "sha256-c6aqahkdObJppwmew4Av3GIczU+a6nWsRzPiNkAwWsY=";
+  mypy-boto3-transfer = buildMypyBoto3Package "transfer" "1.34.59" "sha256-bx3Ur5TzB/1kxfYT91Aww148ppFmcvjs2rdM/1bWBUo=";
 
   mypy-boto3-translate = buildMypyBoto3Package "translate" "1.34.0" "sha256-4tjjmwMtIPpMwKZ3yqB96XEb1WidCxMIj2Cfjn0nTy8=";
 
@@ -737,7 +737,7 @@ rec {
 
   mypy-boto3-waf-regional = buildMypyBoto3Package "waf-regional" "1.34.0" "sha256-zv/IPDU6lqmmIfTq57d7VH3SyA7UkgWW2Hysk2zamcM=";
 
-  mypy-boto3-wafv2 = buildMypyBoto3Package "wafv2" "1.34.52" "sha256-5uC1GaEetDqrJLBLGtGk9ATvdYK/Nhd3D1etgwvgits=";
+  mypy-boto3-wafv2 = buildMypyBoto3Package "wafv2" "1.34.58" "sha256-gPNY3XJr/50nejQFzti9igktryZHsgQDiB9BOYnT94I=";
 
   mypy-boto3-wellarchitected = buildMypyBoto3Package "wellarchitected" "1.34.0" "sha256-tzXpOWC6/WJ+/wUgwYtgI7scq7wRpACW8q1z9RwyhbA=";
 
@@ -751,7 +751,7 @@ rec {
 
   mypy-boto3-workmailmessageflow = buildMypyBoto3Package "workmailmessageflow" "1.34.0" "sha256-e4wgFvtlfx0u6eGphRU7viGzZ4gbZijj4vjziPLPWX8=";
 
-  mypy-boto3-workspaces = buildMypyBoto3Package "workspaces" "1.34.38" "sha256-i/Tt5bB5McJJR/pgLa4/pSAH1c/hqNpIx0b2vp/ALV8=";
+  mypy-boto3-workspaces = buildMypyBoto3Package "workspaces" "1.34.58" "sha256-EtAL93MtIZppL57xP4JDGoWT/SqgptRgCJyq/3bm9ts=";
 
   mypy-boto3-workspaces-web = buildMypyBoto3Package "workspaces-web" "1.34.0" "sha256-RImlbT5Lpu2IoTrEQv5Bzk3NnkMV9jQjHGDnxCK3x18=";
 
diff --git a/nixpkgs/pkgs/development/python-modules/mypy/default.nix b/nixpkgs/pkgs/development/python-modules/mypy/default.nix
index 97d7c86e7d90..c94b83bbb4fb 100644
--- a/nixpkgs/pkgs/development/python-modules/mypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mypy/default.nix
@@ -9,6 +9,7 @@
 , setuptools
 , types-psutil
 , types-setuptools
+, wheel
 
 # propagates
 , mypy-extensions
@@ -23,44 +24,42 @@
 , attrs
 , filelock
 , pytest-xdist
-, pytest-forked
 , pytestCheckHook
-, py
-, six
 }:
 
 buildPythonPackage rec {
   pname = "mypy";
-  version = "1.8.0";
-  format = "pyproject";
+  version = "1.9.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "python";
     repo = "mypy";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-1YgAswqLadOVV5ZSi5ZXWYK3p114882IlSx0nKChGPs=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-uOOZX8bKRunTOgYVbmetu2m0B7kijxBgWdNiLCAhiQ4=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     mypy-extensions
     setuptools
     types-psutil
     types-setuptools
     typing-extensions
+    wheel
   ] ++ lib.optionals (pythonOlder "3.11") [
     tomli
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     mypy-extensions
     typing-extensions
   ] ++ lib.optionals (pythonOlder "3.11") [
     tomli
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     dmypy = [
       psutil
     ];
@@ -89,19 +88,20 @@ buildPythonPackage rec {
     "mypy.report"
   ];
 
-  checkInputs = [
+  nativeCheckInputs = [
     attrs
     filelock
     pytest-xdist
-    pytest-forked
     pytestCheckHook
-    py
     setuptools
-    six
     tomli
-  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
-  disabledTests = lib.optionals (pythonAtLeast "3.12") [
+  disabledTests = [
+    # fails with typing-extensions>=4.10
+    # https://github.com/python/mypy/issues/17005
+    "test_runtime_typing_objects"
+  ] ++ lib.optionals (pythonAtLeast "3.12") [
     # requires distutils
     "test_c_unit_test"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/nameko/default.nix b/nixpkgs/pkgs/development/python-modules/nameko/default.nix
index aec20b0f43e7..93bc03bcde95 100644
--- a/nixpkgs/pkgs/development/python-modules/nameko/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nameko/default.nix
@@ -63,6 +63,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A microservices framework that lets service developers concentrate on application logic and encourages testability";
+    mainProgram = "nameko";
     homepage = "https://www.nameko.io/";
     changelog = "https://github.com/nameko/nameko/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/names/default.nix b/nixpkgs/pkgs/development/python-modules/names/default.nix
index 89ca958582c2..3661e7f0d119 100644
--- a/nixpkgs/pkgs/development/python-modules/names/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/names/default.nix
@@ -28,6 +28,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Generate random names";
+    mainProgram = "names";
     homepage = "https://github.com/treyhunner/names";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [
diff --git a/nixpkgs/pkgs/development/python-modules/nampa/default.nix b/nixpkgs/pkgs/development/python-modules/nampa/default.nix
index 24a27c84bbd5..d5d411728315 100644
--- a/nixpkgs/pkgs/development/python-modules/nampa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nampa/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python implementation of the FLIRT technology";
+    mainProgram = "dumpsig.py";
     homepage = "https://github.com/thebabush/nampa";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/napari-npe2/default.nix b/nixpkgs/pkgs/development/python-modules/napari-npe2/default.nix
index 95ae7bfb39bb..298a333f3206 100644
--- a/nixpkgs/pkgs/development/python-modules/napari-npe2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/napari-npe2/default.nix
@@ -58,6 +58,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Plugin system for napari (the image visualizer)";
+    mainProgram = "npe2";
     homepage = "https://github.com/napari/npe2";
     license = licenses.bsd3;
     maintainers = with maintainers; [ SomeoneSerge ];
diff --git a/nixpkgs/pkgs/development/python-modules/napari/default.nix b/nixpkgs/pkgs/development/python-modules/napari/default.nix
index 9997d58eb50b..0bccb016570c 100644
--- a/nixpkgs/pkgs/development/python-modules/napari/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/napari/default.nix
@@ -38,7 +38,7 @@
 
 mkDerivationWith buildPythonPackage rec {
   pname = "napari";
-  version = "0.4.18";
+  version = "0.4.19.post1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -47,7 +47,7 @@ mkDerivationWith buildPythonPackage rec {
     owner = "napari";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-xF0DYK+226MZpB050IukNvTg2iHMQAIZW0serKRJd/0=";
+    hash = "sha256-qw5WdFPySNkmm+dNu+hqsmr+csBpHnSl9bMpb4nKEqI=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/natsort/default.nix b/nixpkgs/pkgs/development/python-modules/natsort/default.nix
index b39460f71aa6..aef526b4290e 100644
--- a/nixpkgs/pkgs/development/python-modules/natsort/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/natsort/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Natural sorting for Python";
+    mainProgram = "natsort";
     homepage = "https://github.com/SethMMorton/natsort";
     changelog = "https://github.com/SethMMorton/natsort/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/navec/default.nix b/nixpkgs/pkgs/development/python-modules/navec/default.nix
index 2f39e56b492c..e5712212eb69 100644
--- a/nixpkgs/pkgs/development/python-modules/navec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/navec/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Compact high quality word embeddings for Russian language";
+    mainProgram = "navec-train";
     homepage = "https://github.com/natasha/navec";
     license = licenses.mit;
     maintainers = with maintainers; [ npatsakula ];
diff --git a/nixpkgs/pkgs/development/python-modules/nbclient/default.nix b/nixpkgs/pkgs/development/python-modules/nbclient/default.nix
index e2d4fc2810c5..d25509f0184e 100644
--- a/nixpkgs/pkgs/development/python-modules/nbclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbclient/default.nix
@@ -67,6 +67,7 @@ let nbclient = buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/jupyter/nbclient";
     description = "A client library for executing notebooks";
+    mainProgram = "jupyter-execute";
     license = licenses.bsd3;
     maintainers = [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/nbconflux/default.nix b/nixpkgs/pkgs/development/python-modules/nbconflux/default.nix
index 306d927faa4b..25d9cc73df53 100644
--- a/nixpkgs/pkgs/development/python-modules/nbconflux/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbconflux/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Converts Jupyter Notebooks to Atlassian Confluence (R) pages using nbconvert";
+    mainProgram = "nbconflux";
     homepage = "https://github.com/Valassis-Digital-Media/nbconflux";
     license = licenses.bsd3;
     maintainers = [ maintainers.arnoldfarkas ];
diff --git a/nixpkgs/pkgs/development/python-modules/nbconvert/default.nix b/nixpkgs/pkgs/development/python-modules/nbconvert/default.nix
index 27d977173e3e..8f4d2a53e811 100644
--- a/nixpkgs/pkgs/development/python-modules/nbconvert/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbconvert/default.nix
@@ -33,14 +33,14 @@ let
   };
 in buildPythonPackage rec {
   pname = "nbconvert";
-  version = "7.16.0";
+  version = "7.16.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gT5lU3ljYkia5XLjm6G/+XhTYZL7UY4QgmsOjK3wPsg=";
+    hash = "sha256-gxDt1B4cQ5R+Ts8WYUxhRp68AkiY64CMzgmZhg/J+xY=";
   };
 
   # Add $out/share/jupyter to the list of paths that are used to search for
diff --git a/nixpkgs/pkgs/development/python-modules/nbexec/default.nix b/nixpkgs/pkgs/development/python-modules/nbexec/default.nix
index 5eec122cdc59..faed2eedb471 100644
--- a/nixpkgs/pkgs/development/python-modules/nbexec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbexec/default.nix
@@ -53,6 +53,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "A dead-simple tool for executing Jupyter notebooks from the command line.";
+    mainProgram = "nbexec";
     homepage = "https://github.com/jsvine/nbexec";
     changelog = "https://github.com/jsvine/nbexec/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/nbformat/default.nix b/nixpkgs/pkgs/development/python-modules/nbformat/default.nix
index 290663e78a81..f1ef3cd81521 100644
--- a/nixpkgs/pkgs/development/python-modules/nbformat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbformat/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "The Jupyter Notebook format";
+    mainProgram = "jupyter-trust";
     homepage = "https://jupyter.org/";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ fridh globin ];
diff --git a/nixpkgs/pkgs/development/python-modules/nbtlib/default.nix b/nixpkgs/pkgs/development/python-modules/nbtlib/default.nix
index b70259c9c76d..3ec7ade6a90b 100644
--- a/nixpkgs/pkgs/development/python-modules/nbtlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbtlib/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A python library to read and edit nbt data";
+    mainProgram = "nbt";
     homepage = "https://github.com/vberlier/nbtlib";
     changelog = "https://github.com/vberlier/nbtlib/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/nbval/default.nix b/nixpkgs/pkgs/development/python-modules/nbval/default.nix
index 9eaa2c60de29..cce567bfacb3 100644
--- a/nixpkgs/pkgs/development/python-modules/nbval/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbval/default.nix
@@ -2,13 +2,13 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, setuptools
 , coverage
 , ipykernel
 , jupyter-client
 , nbformat
 , pytestCheckHook
 , pytest
-, six
 , glibcLocales
 , matplotlib
 , sympy
@@ -16,21 +16,25 @@
 
 buildPythonPackage rec {
   pname = "nbval";
-  version = "0.10.0";
-  format = "setuptools";
+  version = "0.11.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tKzv3BEyrvihtbYr+ak9Eo66UoObKFTqPkJZj023vrM=";
+    hash = "sha256-d8lXl2B7CpaLq9JZfuNJQQLSXDrTdDXeu9rA5G43kJQ=";
   };
 
   buildInputs = [
     glibcLocales
   ];
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     coverage
     ipykernel
     jupyter-client
@@ -68,6 +72,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A py.test plugin to validate Jupyter notebooks";
     homepage = "https://github.com/computationalmodelling/nbval";
+    changelog = "https://github.com/computationalmodelling/nbval/releases/tag/${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/nclib/default.nix b/nixpkgs/pkgs/development/python-modules/nclib/default.nix
index c2717746bf69..f803a2b39980 100644
--- a/nixpkgs/pkgs/development/python-modules/nclib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nclib/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module that provides netcat features";
+    mainProgram = "serve-stdio";
     homepage = "https://nclib.readthedocs.io/";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/ndg-httpsclient/default.nix b/nixpkgs/pkgs/development/python-modules/ndg-httpsclient/default.nix
index d3d129efa2dc..71acebc14e01 100644
--- a/nixpkgs/pkgs/development/python-modules/ndg-httpsclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ndg-httpsclient/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/cedadev/ndg_httpsclient/";
     description = "Provide enhanced HTTPS support for httplib and urllib2 using PyOpenSSL";
+    mainProgram = "ndg_httpclient";
     license = licenses.bsd2;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/ndindex/default.nix b/nixpkgs/pkgs/development/python-modules/ndindex/default.nix
index de40dc3d71cf..5e98ea185700 100644
--- a/nixpkgs/pkgs/development/python-modules/ndindex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ndindex/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 
 # build-system
-, cython
+, cython_3
 
 # optional
 , numpy
@@ -16,18 +16,18 @@
 
 buildPythonPackage rec {
   pname = "ndindex";
-  version = "1.7";
+  version = "1.8";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "Quansight-Labs";
     repo = "ndindex";
     rev = "refs/tags/${version}";
-    hash = "sha256-JP0cEuxXfPTWc1EIUtMsy5Hx6eIo9vDzD0IUXm1lFME=";
+    hash = "sha256-F52ly3NkrZ0H9XoomMqmWfLl+8X0z26Yx67DB8DUqyU=";
   };
 
   nativeBuildInputs = [
-    cython
+    cython_3
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/nessclient/default.nix b/nixpkgs/pkgs/development/python-modules/nessclient/default.nix
index 542ed4f94b64..73b6d83dbe86 100644
--- a/nixpkgs/pkgs/development/python-modules/nessclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nessclient/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python implementation/abstraction of the Ness D8x/D16x Serial Interface ASCII protocol";
+    mainProgram = "ness-cli";
     homepage = "https://github.com/nickw444/nessclient";
     changelog = "https://github.com/nickw444/nessclient/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/netaddr/default.nix b/nixpkgs/pkgs/development/python-modules/netaddr/default.nix
index 65f4fcd61421..bcb478e238b9 100644
--- a/nixpkgs/pkgs/development/python-modules/netaddr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/netaddr/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "netaddr";
-  version = "0.9.0";
+  version = "1.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-e0b6mxotcf1d6eSjeE7zOXAKU6CMgEDwi69fEZTaASg=";
+    sha256 = "sha256-brj+3wQSxtKU0GiFwRDelFz00i0rUQ0EBPTgaVCFeYc=";
   };
 
   nativeBuildInputs = [
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A network address manipulation library for Python";
+    mainProgram = "netaddr";
     homepage = "https://netaddr.readthedocs.io/";
     downloadPage = "https://github.com/netaddr/netaddr/releases";
     changelog = "https://github.com/netaddr/netaddr/blob/${version}/CHANGELOG";
diff --git a/nixpkgs/pkgs/development/python-modules/netapp-ontap/default.nix b/nixpkgs/pkgs/development/python-modules/netapp-ontap/default.nix
index 7516c5da20e3..a770cb63b0b2 100644
--- a/nixpkgs/pkgs/development/python-modules/netapp-ontap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/netapp-ontap/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A library for working with ONTAP's REST APIs simply in Python";
+    mainProgram = "ontap-cli";
     homepage = "https://devnet.netapp.com/restapi.php";
     license = licenses.bsd3;
     maintainers = with maintainers; [ SuperSandro2000 ];
diff --git a/nixpkgs/pkgs/development/python-modules/netio/default.nix b/nixpkgs/pkgs/development/python-modules/netio/default.nix
index 30e9fc1af53a..29159d6288ba 100644
--- a/nixpkgs/pkgs/development/python-modules/netio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/netio/default.nix
@@ -4,8 +4,8 @@
 , poetry-core
 , pyopenssl
 , pythonOlder
+, pythonRelaxDepsHook
 , requests
-, setuptools
 }:
 
 buildPythonPackage rec {
@@ -24,6 +24,11 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "pyopenssl"
   ];
 
   propagatedBuildInputs = [
@@ -40,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for interacting with NETIO devices";
+    mainProgram = "Netio";
     homepage = "https://github.com/netioproducts/PyNetio";
     changelog = "https://github.com/netioproducts/PyNetio/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/netutils/default.nix b/nixpkgs/pkgs/development/python-modules/netutils/default.nix
index 182485253875..c7a1580ba951 100644
--- a/nixpkgs/pkgs/development/python-modules/netutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/netutils/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "netutils";
-  version = "1.6.0";
+  version = "1.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "networktocode";
     repo = "netutils";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ocajE7E4xIatEmv58/9gEpWF2plJdiZXjk6ajD2vTzw=";
+    hash = "sha256-B2epTqG0PzcD876Bk222nDSorHHB8Znepp+cgl1++gY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/networkx/default.nix b/nixpkgs/pkgs/development/python-modules/networkx/default.nix
index 51e580af4eb2..0c4993cdd694 100644
--- a/nixpkgs/pkgs/development/python-modules/networkx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/networkx/default.nix
@@ -58,6 +58,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # No warnings of type (<class 'DeprecationWarning'>, <class 'PendingDeprecationWarning'>, <class 'FutureWarning'>) were emitted.
+    "test_connected_raise"
+  ];
+
   meta = {
     changelog = "https://github.com/networkx/networkx/blob/networkx-${version}/doc/release/release_${version}.rst";
     homepage = "https://networkx.github.io/";
diff --git a/nixpkgs/pkgs/development/python-modules/nevow/default.nix b/nixpkgs/pkgs/development/python-modules/nevow/default.nix
index 808427e241d9..af5b5374b5b0 100644
--- a/nixpkgs/pkgs/development/python-modules/nevow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nevow/default.nix
@@ -1,12 +1,13 @@
 { lib, buildPythonPackage, fetchPypi, isPy3k, twisted }:
 
 buildPythonPackage rec {
-  pname = "Nevow";
+  pname = "nevow";
   version = "0.14.5";
   disabled = isPy3k;
 
   src = fetchPypi {
-    inherit version pname;
+    pname = "Nevow";
+    inherit version;
     sha256 = "afb6ba85a5351953578c018fcdb9dfbd62f29a8d46c58bc9652bc000a27223f3";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/newversion/default.nix b/nixpkgs/pkgs/development/python-modules/newversion/default.nix
index 769750163663..fec4f1b0f41f 100644
--- a/nixpkgs/pkgs/development/python-modules/newversion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/newversion/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "PEP 440 version manager";
+    mainProgram = "newversion";
     homepage = "https://github.com/vemel/newversion";
     changelog = "https://github.com/vemel/newversion/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/nh3/default.nix b/nixpkgs/pkgs/development/python-modules/nh3/default.nix
index 2bcdb6d49cde..5c627edadeeb 100644
--- a/nixpkgs/pkgs/development/python-modules/nh3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nh3/default.nix
@@ -9,12 +9,12 @@
 }:
 let
   pname = "nh3";
-  version = "0.2.13";
+  version = "0.2.15";
   src = fetchFromGitHub {
     owner = "messense";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-NILPy+lC0jhOF6ykriUPZWHLlSYBC00tpDdfJ6XjcjA=";
+    hash = "sha256-OyTehgnjmDALU2qPRL/HrvoAMyIsmYuTKFlOJT8r+Gk=";
   };
 in
 buildPythonPackage {
@@ -25,7 +25,7 @@ buildPythonPackage {
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-Ror2KcIdSeXHa44eUWGiPsKiD935hsBREREySbGedxA=";
+    hash = "sha256-fetAE3cj9hh4SoPE72Bqco5ytUMiDqbazeS2MHdUibM=";
   };
 
   nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/niaarm/default.nix b/nixpkgs/pkgs/development/python-modules/niaarm/default.nix
index c3343f842a99..747cf394f4ad 100644
--- a/nixpkgs/pkgs/development/python-modules/niaarm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/niaarm/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "niaarm";
-  version = "0.3.7";
+  version = "0.3.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "firefly-cpp";
     repo = "NiaARM";
     rev = "refs/tags/${version}";
-    hash = "sha256-0YBjYpeu1eagy9hp/EuXN1cfHztEjR/i4/YFKXS33Co=";
+    hash = "sha256-p07SuCl433rj6IEMO1eg5QHAUTVfgqYo5gsprMvQg2Y=";
   };
 
   nativeBuildInputs = [
@@ -53,6 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A minimalistic framework for Numerical Association Rule Mining";
+    mainProgram = "niaarm";
     homepage = "https://github.com/firefly-cpp/NiaARM";
     changelog = "https://github.com/firefly-cpp/NiaARM/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/nikola/default.nix b/nixpkgs/pkgs/development/python-modules/nikola/default.nix
index 461d65a00f8f..2b9e37d62dae 100644
--- a/nixpkgs/pkgs/development/python-modules/nikola/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nikola/default.nix
@@ -1,5 +1,4 @@
 { lib
-, stdenv
 , aiohttp
 , babel
 , blinker
@@ -8,6 +7,7 @@
 , doit
 , feedparser
 , fetchPypi
+, fetchpatch2
 , freezegun
 , ghp-import
 , hsluv
@@ -54,6 +54,14 @@ buildPythonPackage rec {
     hash = "sha256-VYuhiGLMTHcOZM8/bGZT7Xx5BOHo9gsMPjufYglrBL0=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      name = "nikola-pytest8-compat.patch";
+      url = "https://github.com/getnikola/nikola/commit/5f1003f91cd59f62622d379efe9be5fb19a1ed3e.patch";
+      hash = "sha256-2H3125RUnwvN/XgwgfRe1139rhAz/9viMEcUYRGQMPs=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace setup.cfg \
       --replace-fail "--cov nikola --cov-report term-missing" ""
@@ -120,6 +128,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Static website and blog generator";
+    mainProgram = "nikola";
     homepage = "https://getnikola.com/";
     changelog = "https://github.com/getnikola/nikola/blob/v${version}/CHANGES.txt";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ninebot-ble/default.nix b/nixpkgs/pkgs/development/python-modules/ninebot-ble/default.nix
index c13d96fe700c..79f00a7e19ff 100644
--- a/nixpkgs/pkgs/development/python-modules/ninebot-ble/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ninebot-ble/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Ninebot scooter BLE client";
+    mainProgram = "ninebot-ble";
     homepage = "https://github.com/ownbee/ninebot-ble";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/ninja/default.nix b/nixpkgs/pkgs/development/python-modules/ninja/default.nix
index 808bf9fb8c0e..4bf4c83ad434 100644
--- a/nixpkgs/pkgs/development/python-modules/ninja/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ninja/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A small build system with a focus on speed";
+    mainProgram = "ninja";
     longDescription = ''
       This is a stub of the ninja package on PyPI that uses the ninja program
       provided by nixpkgs instead of downloading ninja from the web.
diff --git a/nixpkgs/pkgs/development/python-modules/nipy/default.nix b/nixpkgs/pkgs/development/python-modules/nipy/default.nix
index 63e6989d4dac..1a1813ebb8af 100644
--- a/nixpkgs/pkgs/development/python-modules/nipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nipy/default.nix
@@ -1,55 +1,77 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pythonOlder
-, cython
-, nose
-, matplotlib
-, nibabel
+
+# build-system
+, cython_3
+, meson-python
+, ninja
+, setuptools
+
+# dependencies
 , numpy
 , scipy
+, nibabel
 , sympy
-, python
+, transforms3d
+
+# optional-dependencies
+, matplotlib
+
+# tests
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
-  version = "0.5.0";
-  format = "setuptools";
+  version = "0.6.0";
   pname = "nipy";
-  disabled = pythonOlder "2.6";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a8a2c97ce854fece4aced5a6394b9fdca5846150ad6d2a36b86590924af3c848";
+    hash = "sha256-BTn2nV4VMeT8bxTOJTHjRU8I2bxFZCzIZCZVn/QcUrk=";
   };
 
-  nativeBuildInputs = [ cython ];
-  buildInputs = lib.optionals doCheck [ nose ];
-  propagatedBuildInputs = [ matplotlib nibabel numpy scipy sympy ];
-
-  preBuild = ''
-    make recythonize
+  postPatch = ''
+    patchShebangs nipy/_build_utils/cythoner.py
   '';
 
-  checkPhase = ''    # wants to be run in a different directory
-    mkdir nosetests
-    cd nosetests
-    ${python.interpreter} -c "import nipy; nipy.test()"
-    rm -rf .
-  '';
+  build-system = [
+    cython_3
+    meson-python
+    setuptools
+    ninja
+    numpy
+  ];
+
+  dependencies = [
+    nibabel
+    numpy
+    scipy
+    sympy
+    transforms3d
+  ];
+
+  optional-dependencies.optional = [
+    matplotlib
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ] ++ optional-dependencies.optional;
+
+  doCheck = false; # partial imports … circular dependencies. needs more time to figure out.
 
-  # failing test:
-  # nipy.algorithms.statistics.models.tests.test_olsR.test_results(11.593139639404727, 11.593140144880794, 6)  # disagrees by 1 at 6th decimal place
-  # erroring tests:
-  # nipy.modalities.fmri.fmristat.tests.test_FIAC.test_altprotocol
-  # nipy.modalities.fmri.fmristat.tests.test_FIAC.test_agreement
-  # nipy.tests.test_scripts.test_nipy_4d_realign   # because `nipy_4d_realign` script isn't found at test time; works from nix-shell, so could be patched
-  # nipy.tests.test_scripts.test_nipy_3_4d         # ditto re.: `nipy_3_4d` script
-  doCheck = false;
+  pythonImportsCheck = [
+    "nipy"
+    "nipy.testing"
+    "nipy.algorithms"
+  ];
 
   meta = with lib; {
     homepage = "https://nipy.org/nipy";
     description = "Software for structural and functional neuroimaging analysis";
+    downloadPage = "https://github.com/nipy/nipy";
     license = licenses.bsd3;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/nipype/default.nix b/nixpkgs/pkgs/development/python-modules/nipype/default.nix
index 9386729d30b7..2c6d00517df1 100644
--- a/nixpkgs/pkgs/development/python-modules/nipype/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nipype/default.nix
@@ -106,6 +106,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://nipy.org/nipype/";
     description = "Neuroimaging in Python: Pipelines and Interfaces";
+    mainProgram = "nipypecli";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ashgillman ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/nitransforms/default.nix b/nixpkgs/pkgs/development/python-modules/nitransforms/default.nix
index 3132d1900847..a05c9661e69e 100644
--- a/nixpkgs/pkgs/development/python-modules/nitransforms/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nitransforms/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://nitransforms.readthedocs.io";
     description = "Geometric transformations for images and surfaces";
+    mainProgram = "nb-transform";
     changelog = "https://github.com/nipy/nitransforms/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
diff --git a/nixpkgs/pkgs/development/python-modules/niworkflows/default.nix b/nixpkgs/pkgs/development/python-modules/niworkflows/default.nix
index 494a834c937a..1616cfff4637 100644
--- a/nixpkgs/pkgs/development/python-modules/niworkflows/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/niworkflows/default.nix
@@ -29,14 +29,14 @@
 
 buildPythonPackage rec {
   pname = "niworkflows";
-  version = "1.10.0";
+  version = "1.10.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "nipreps";
     repo = "niworkflows";
     rev = "refs/tags/${version}";
-    hash = "sha256-wQPk9imDvomg+NTWk+VeW1TE2QlvMyi1YYVVaznhktU=";
+    hash = "sha256-ZOn3KSaPAA8zTdyexrjF9Wkb5C5qA/5eSJahg2DcX20=";
   };
 
   postPatch = ''
@@ -93,6 +93,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Common workflows for MRI (anatomical, functional, diffusion, etc.)";
+    mainProgram = "niworkflows-boldref";
     homepage = "https://github.com/nipreps/niworkflows";
     changelog = "https://github.com/nipreps/niworkflows/blob/${src.rev}/CHANGES.rst";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/nkdfu/default.nix b/nixpkgs/pkgs/development/python-modules/nkdfu/default.nix
index 35d6fa16e1d3..28274467efb9 100644
--- a/nixpkgs/pkgs/development/python-modules/nkdfu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nkdfu/default.nix
@@ -28,6 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python tool for Nitrokeys' firmware update";
+    mainProgram = "nkdfu";
     homepage = "https://github.com/Nitrokey/nkdfu";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ frogamic ];
diff --git a/nixpkgs/pkgs/development/python-modules/nltk/default.nix b/nixpkgs/pkgs/development/python-modules/nltk/default.nix
index 77ed843d47cd..cfac189b06f5 100644
--- a/nixpkgs/pkgs/development/python-modules/nltk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nltk/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Natural Language Processing ToolKit";
+    mainProgram = "nltk";
     homepage = "http://nltk.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ lheckemann ];
diff --git a/nixpkgs/pkgs/development/python-modules/nocasedict/default.nix b/nixpkgs/pkgs/development/python-modules/nocasedict/default.nix
index 5a8139288183..9ab5c801da5c 100644
--- a/nixpkgs/pkgs/development/python-modules/nocasedict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nocasedict/default.nix
@@ -23,6 +23,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   pythonImportsCheck = [
     "nocasedict"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/nocaselist/default.nix b/nixpkgs/pkgs/development/python-modules/nocaselist/default.nix
index 3972833e1069..d5f886ab1a1e 100644
--- a/nixpkgs/pkgs/development/python-modules/nocaselist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nocaselist/default.nix
@@ -26,6 +26,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   pythonImportsCheck = [
     "nocaselist"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/nodeenv/default.nix b/nixpkgs/pkgs/development/python-modules/nodeenv/default.nix
index 92d3bbb5d4c6..8efd0b492e76 100644
--- a/nixpkgs/pkgs/development/python-modules/nodeenv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nodeenv/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Node.js virtual environment builder";
+    mainProgram = "nodeenv";
     homepage = "https://github.com/ekalinin/nodeenv";
     changelog = "https://github.com/ekalinin/nodeenv/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/nomadnet/default.nix b/nixpkgs/pkgs/development/python-modules/nomadnet/default.nix
index 2b7b4533ee30..d7548d3f8bd8 100644
--- a/nixpkgs/pkgs/development/python-modules/nomadnet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nomadnet/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Off-grid, resilient mesh communication";
+    mainProgram = "nomadnet";
     homepage = "https://github.com/markqvist/NomadNet";
     changelog = "https://github.com/markqvist/NomadNet/releases/tag/${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/nose/default.nix b/nixpkgs/pkgs/development/python-modules/nose/default.nix
index dc9dc51da5b8..d59dd0db6461 100644
--- a/nixpkgs/pkgs/development/python-modules/nose/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nose/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
   meta = with lib; {
     broken = isPyPy; # missing 2to3 conversion utility
     description = "A unittest-based testing framework for python that makes writing and running tests easier";
+    mainProgram = "nosetests";
     homepage = "https://nose.readthedocs.io/";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/nose2/default.nix b/nixpkgs/pkgs/development/python-modules/nose2/default.nix
index de96b74709ed..4d6e6b3e5c83 100644
--- a/nixpkgs/pkgs/development/python-modules/nose2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nose2/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/nose-devs/nose2/blob/${version}/docs/changelog.rst";
     description = "Test runner for Python";
+    mainProgram = "nose2";
     homepage = "https://github.com/nose-devs/nose2";
     license = licenses.bsd0;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/nosejs/default.nix b/nixpkgs/pkgs/development/python-modules/nosejs/default.nix
index 7a63713d2d09..782673d4e498 100644
--- a/nixpkgs/pkgs/development/python-modules/nosejs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nosejs/default.nix
@@ -5,11 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "NoseJS";
+  pname = "nosejs";
   version = "0.9.4";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "NoseJS";
+    inherit version;
     sha256 = "0qrhkd3sga56qf6k0sqyhwfcladwi05gl6aqmr0xriiq1sgva5dy";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/notebook-shim/default.nix b/nixpkgs/pkgs/development/python-modules/notebook-shim/default.nix
index 3bdb11416863..c352bd00083c 100644
--- a/nixpkgs/pkgs/development/python-modules/notebook-shim/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/notebook-shim/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "notebook-shim";
-  version = "0.2.3";
+  version = "0.2.4";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "jupyter";
     repo = "notebook_shim";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eAYZuNYqOMKC6joDbbKk4Q4nrfdbO7b+yZeSvMdWWrI=";
+    hash = "sha256-CWnXOKE1xvr+a/qWNY6XCTB5+G/fg2O/glgeLzYD+Zc=";
   };
 
   nativeBuildInputs = [ hatchling ];
diff --git a/nixpkgs/pkgs/development/python-modules/notebook/default.nix b/nixpkgs/pkgs/development/python-modules/notebook/default.nix
index f10bbe9dc1fa..2ef7bcec3440 100644
--- a/nixpkgs/pkgs/development/python-modules/notebook/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/notebook/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "7.0.8";
+  version = "7.1.1";
   disabled = pythonOlder "3.8";
 
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OVfs2VYFawAUZ3r8dtO7RMLS8pZJ+Hsk0TYG/x0Yk48=";
+    hash = "sha256-gY50IPoh9ALnJq+58C3388EPKUwC44PtGYUoZsMWEIs=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/notedown/default.nix b/nixpkgs/pkgs/development/python-modules/notedown/default.nix
index 9301fb13dd0d..f272f5cb0d4b 100644
--- a/nixpkgs/pkgs/development/python-modules/notedown/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/notedown/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
   meta = {
     homepage = "https://github.com/aaren/notedown";
     description = "Convert IPython Notebooks to markdown (and back)";
+    mainProgram = "notedown";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ vcanadi ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/notify-py/default.nix b/nixpkgs/pkgs/development/python-modules/notify-py/default.nix
index 61c1c9026e0b..9e4a97238699 100644
--- a/nixpkgs/pkgs/development/python-modules/notify-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/notify-py/default.nix
@@ -87,6 +87,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Cross-platform desktop notification library for Python";
+    mainProgram = "notifypy";
     homepage = "https://github.com/ms7m/notify-py";
     changelog = "https://github.com/ms7m/notify-py/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/notion-client/default.nix b/nixpkgs/pkgs/development/python-modules/notion-client/default.nix
index 0e24bb60ad48..1f9f5f1d65e9 100644
--- a/nixpkgs/pkgs/development/python-modules/notion-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/notion-client/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "notion-client";
-  version = "2.1.0";
+  version = "2.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "ramnes";
     repo = "notion-sdk-py";
     rev = "refs/tags/${version}";
-    hash = "sha256-u10iPSbFPv9RewEYru3V6MpwhhySzmnymmv4CsefGC8=";
+    hash = "sha256-IEWFrdqrawFbuwA8bUewanmBoGWsjHJ7ucgvHQEaMcA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/nox/default.nix b/nixpkgs/pkgs/development/python-modules/nox/default.nix
index 0b6067cb1cfb..6fee91c77fce 100644
--- a/nixpkgs/pkgs/development/python-modules/nox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nox/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "nox";
-  version = "2023.04.22";
+  version = "2024.03.02";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "wntrblm";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-WuyNp3jxIktI72zbk+1CK8xflTKrYE5evn/gVdMx+cQ=";
+    hash = "sha256-P86Jy/5MQnuWHelJFQ4kUCFg86Dwzx0Sm/sRonf0pZk=";
   };
 
   nativeBuildInputs = [
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     importlib-metadata
   ];
 
-  checkInputs = [
+  nativeCheckInputs = [
     jinja2
     tox
     pytestCheckHook
@@ -52,6 +52,11 @@ buildPythonPackage rec {
     "nox"
   ];
 
+  disabledTests = [
+    # our conda is not available on 3.11
+    "test__create_venv_options"
+  ];
+
   disabledTestPaths = [
     # AttributeError: module 'tox.config' has...
     "tests/test_tox_to_nox.py"
diff --git a/nixpkgs/pkgs/development/python-modules/nsz/default.nix b/nixpkgs/pkgs/development/python-modules/nsz/default.nix
index 05bbad2d2180..7e8c3b4cdf8d 100644
--- a/nixpkgs/pkgs/development/python-modules/nsz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nsz/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/nicoboss/nsz";
     description = "Homebrew compatible NSP/XCI compressor/decompressor";
+    mainProgram = "nsz";
     changelog = "https://github.com/nicoboss/nsz/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ eyjhb ];
diff --git a/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix b/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix
index 38927877146a..dc4ba155bedb 100644
--- a/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix
@@ -4,14 +4,16 @@
 , pythonOlder
 , poetry-core
 , textfsm
+, invoke
 , pytestCheckHook
 , ruamel-yaml
+, toml
 , yamllint
 }:
 
 buildPythonPackage rec {
   pname = "ntc-templates";
-  version = "4.0.1";
+  version = "4.3.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +22,7 @@ buildPythonPackage rec {
     owner = "networktocode";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-tenztWqSjVVDJygBvJpdLFbKmz+TPKYu0UhscqJBhLc=";
+    hash = "sha256-zTJNatg5s5Y9uJ/42uhBltvP69qDsdTRIOCt5OuLwQc=";
   };
 
   nativeBuildInputs = [
@@ -32,8 +34,10 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    invoke
     pytestCheckHook
     ruamel-yaml
+    toml
     yamllint
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/num2words/default.nix b/nixpkgs/pkgs/development/python-modules/num2words/default.nix
index 10529adf74a7..0a492b32f310 100644
--- a/nixpkgs/pkgs/development/python-modules/num2words/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/num2words/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Modules to convert numbers to words. 42 --> forty-two";
+    mainProgram = "num2words";
     homepage = "https://github.com/savoirfairelinux/num2words";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ jonringer ];
diff --git a/nixpkgs/pkgs/development/python-modules/numexpr/default.nix b/nixpkgs/pkgs/development/python-modules/numexpr/default.nix
index 6316ba29356c..4de1e4a7de05 100644
--- a/nixpkgs/pkgs/development/python-modules/numexpr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numexpr/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "numexpr";
-  version = "2.8.7";
+  version = "2.9.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-WW7rO7/ryRL0tuqvhCthunIs69uLxC3++mV9OnSVOEk=";
+    hash = "sha256-8h0S9sQyzjSQieuVNCur9mKa67P93xh6RJLTqtqtqvA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/numpy/default.nix b/nixpkgs/pkgs/development/python-modules/numpy/default.nix
index d25d436d9fdd..b3c80a49798c 100644
--- a/nixpkgs/pkgs/development/python-modules/numpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numpy/default.nix
@@ -183,6 +183,7 @@ in buildPythonPackage rec {
   meta = {
     changelog = "https://github.com/numpy/numpy/releases/tag/v${version}";
     description = "Scientific tools for Python";
+    mainProgram = "f2py";
     homepage = "https://numpy.org/";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ fridh ];
diff --git a/nixpkgs/pkgs/development/python-modules/numpydoc/default.nix b/nixpkgs/pkgs/development/python-modules/numpydoc/default.nix
index 428ea03ed287..aabc55278e6f 100644
--- a/nixpkgs/pkgs/development/python-modules/numpydoc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numpydoc/default.nix
@@ -58,6 +58,7 @@ buildPythonPackage rec {
   meta = {
     changelog = "https://github.com/numpy/numpydoc/releases/tag/v${version}";
     description = "Sphinx extension to support docstrings in Numpy format";
+    mainProgram = "validate-docstrings";
     homepage = "https://github.com/numpy/numpydoc";
     license = lib.licenses.free;
    };
diff --git a/nixpkgs/pkgs/development/python-modules/nunavut/default.nix b/nixpkgs/pkgs/development/python-modules/nunavut/default.nix
index 52a6d1c18259..a0b82d76ff2a 100644
--- a/nixpkgs/pkgs/development/python-modules/nunavut/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nunavut/default.nix
@@ -45,6 +45,7 @@
 
   meta = with lib; {
     description = "A UAVCAN DSDL template engine";
+    mainProgram = "nnvg";
     longDescription = ''
       It exposes a pydsdl abstract syntax tree to Jinja2 templates allowing
       authors to generate code, schemas, metadata, documentation, etc.
diff --git a/nixpkgs/pkgs/development/python-modules/nutils/default.nix b/nixpkgs/pkgs/development/python-modules/nutils/default.nix
index 803a4f1c04fd..3447f4deddf3 100644
--- a/nixpkgs/pkgs/development/python-modules/nutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nutils/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "nutils";
-  version = "8.4";
+  version = "8.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "evalf";
     repo = "nutils";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cwMo3ixTK7UO9sxhcQBN4/gNZNAoBH/xL2tZ1Orh8LE=";
+    hash = "sha256-vfdb7+jcJ5EuWDoZyRExWEPEWt+lgbzmAL3QhguLtHE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix b/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix
index b375d6111ae0..96288f52e493 100644
--- a/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix
@@ -14,6 +14,9 @@
 , structlog
 , tomli
 , tornado
+, awesomeversion
+, packaging
+, lxml
 }:
 
 buildPythonPackage rec {
@@ -71,6 +74,13 @@ buildPythonPackage rec {
     "-m 'not needs_net'"
   ];
 
+  optional-dependencies = {
+    # vercmp = [ pyalpm ];
+    awesomeversion = [ awesomeversion ];
+    pypi = [ packaging ];
+    htmlparser = [ lxml ];
+  };
+
   meta = with lib; {
     description = "New version checker for software";
     homepage = "https://github.com/lilydjwg/nvchecker";
diff --git a/nixpkgs/pkgs/development/python-modules/nxt-python/default.nix b/nixpkgs/pkgs/development/python-modules/nxt-python/default.nix
index fb953bce13dd..efbec58b936a 100644
--- a/nixpkgs/pkgs/development/python-modules/nxt-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nxt-python/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, poetry-core
 , pybluez
 , pytestCheckHook
 , pythonOlder
@@ -9,8 +10,8 @@
 
 buildPythonPackage rec {
   pname = "nxt-python";
-  version = "3.2.0";
-  format = "setuptools";
+  version = "3.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -18,14 +19,18 @@ buildPythonPackage rec {
     owner = "schodet";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-PWeR8xteLMxlOHcJJCtTI0o8QNzwGJVkUACmvf4tXWY=";
+    hash = "sha256-v65KEP5DuJsZAifd1Rh46x9lSAgBZgyo+e8PKSDKnhw=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
     pyusb
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     bluetooth = [
       pybluez
     ];
diff --git a/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix b/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
index de26b60caac2..45914454052e 100644
--- a/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "oauthenticator";
-  version = "16.2.1";
+  version = "16.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qJrreq2GhJxrX9keZOYVzjihs0RCymad+MGErW5ecPc=";
+    hash = "sha256-QMddGJUfafXoBxMCjlx1lH45a4Bab3AP4j8Px7JxYaQ=";
   };
 
   postPatch = ''
@@ -30,11 +30,11 @@ buildPythonPackage rec {
       --replace-fail " --cov=oauthenticator" ""
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     jupyterhub
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/objgraph/default.nix b/nixpkgs/pkgs/development/python-modules/objgraph/default.nix
index bd0aa88262df..c0c88870f352 100644
--- a/nixpkgs/pkgs/development/python-modules/objgraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/objgraph/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "objgraph";
-  version = "3.6.0";
+  version = "3.6.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7" || isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-NpVnw3tPL5KBYLb27e3L6o/H6SmDGHf9EFbHipAMF9M=";
+    hash = "sha256-/pbHQUe7yq6GZbOW5TiL3MMZfe67pOY4HwUgLuW0U6c=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/oci/default.nix b/nixpkgs/pkgs/development/python-modules/oci/default.nix
index ca6660e5e700..c57a77771098 100644
--- a/nixpkgs/pkgs/development/python-modules/oci/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oci/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "oci";
-  version = "2.124.0";
+  version = "2.124.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "oracle";
     repo = "oci-python-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/I86zjhQsDYljgde7L2lPFHiMykRmOgNOaqk5SxNMlg=";
+    hash = "sha256-IYINga1qCCmdu1j6ix2GcZtx6twPwfHCxU8fPOqF4eE=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/oelint-parser/default.nix b/nixpkgs/pkgs/development/python-modules/oelint-parser/default.nix
index 57750768e4db..ab9f362de4e6 100644
--- a/nixpkgs/pkgs/development/python-modules/oelint-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oelint-parser/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "oelint-parser";
-  version = "3.3.1";
+  version = "3.4.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "oelint_parser";
-    hash = "sha256-+u0whEnzA5XZlqgTpQtGH25/krLLvNPycWXzBUedMRc=";
+    hash = "sha256-knMxVBibaX3wK7VNBODHeLeAbBOXHKNbyxjItiNcIfw=";
   };
 
   buildInputs = [ pip ];
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Alternative parser for bitbake recipes";
     homepage = "https://github.com/priv-kweihmann/oelint-parser";
-    changelog = "https://github.com/priv-kweihmann/oelint-parser/releases/tag/v${version}";
+    changelog = "https://github.com/priv-kweihmann/oelint-parser/releases/tag/${version}";
     license = licenses.bsd2;
     maintainers = with maintainers; [ otavio ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/ofxclient/default.nix b/nixpkgs/pkgs/development/python-modules/ofxclient/default.nix
index 8ebac1d06a56..c0c06b1ca91e 100644
--- a/nixpkgs/pkgs/development/python-modules/ofxclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ofxclient/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/captin411/ofxclient";
     description = "OFX client for dowloading transactions from banks";
+    mainProgram = "ofxclient";
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ofxtools/default.nix b/nixpkgs/pkgs/development/python-modules/ofxtools/default.nix
index a9306b2dca4b..67bb7ded1042 100644
--- a/nixpkgs/pkgs/development/python-modules/ofxtools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ofxtools/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/csingley/ofxtools";
     description = "Library for working with Open Financial Exchange (OFX) formatted data used by financial institutions";
+    mainProgram = "ofxget";
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/oldest-supported-numpy/default.nix b/nixpkgs/pkgs/development/python-modules/oldest-supported-numpy/default.nix
index 7349a63a2c2a..a0ec902984e1 100644
--- a/nixpkgs/pkgs/development/python-modules/oldest-supported-numpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oldest-supported-numpy/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "oldest-supported-numpy";
-  version = "2023.10.25";
+  version = "2023.12.21";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dBqJrxLoyCMl9zEmtTORXc4QYNoPnk7GQtpGZoBoYpY=";
+    hash = "sha256-cdicMbtWeBTkfi4mjrLpK2+Z9c529MPbMIM2JOnvKeA=";
   };
 
   # The purpose of oldest-supported-numpy is to build a project against the
diff --git a/nixpkgs/pkgs/development/python-modules/olefile/default.nix b/nixpkgs/pkgs/development/python-modules/olefile/default.nix
index 6bf379aacd90..f0df020d39c3 100644
--- a/nixpkgs/pkgs/development/python-modules/olefile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/olefile/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "olefile";
-  version = "0.46";
+  version = "0.47";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "133b031eaf8fd2c9399b78b8bc5b8fcbe4c31e85295749bb17a87cba8f3c3964";
+    sha256 = "sha256-WZODOBoL89+9kyygymUVrNF07UiHDL9/7hI9aYwZLBw=";
   };
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ollama/default.nix b/nixpkgs/pkgs/development/python-modules/ollama/default.nix
new file mode 100644
index 000000000000..5e46474e1129
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ollama/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, httpx
+, pillow
+, poetry-core
+, pytest-asyncio
+, pytest-httpserver
+, pytestCheckHook
+, pythonOlder
+, pythonRelaxDepsHook
+}:
+
+buildPythonPackage rec {
+  pname = "ollama";
+  version = "0.1.7";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "ollama";
+    repo = "ollama-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-xNH9kAjSdVXrCI7zkyR7tYxJ/NG8/08ykkDZQJI8Za4=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "0.0.0" "${version}"
+  '';
+
+  pythonRelaxDeps = [
+    "httpx"
+  ];
+
+  nativeBuildInputs = [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = [
+    httpx
+  ];
+
+  nativeCheckInputs = [
+    pillow
+    pytest-asyncio
+    pytest-httpserver
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "ollama"
+  ];
+
+  meta = with lib; {
+    description = "Ollama Python library";
+    homepage = "https://github.com/ollama/ollama-python";
+    changelog = "https://github.com/ollama/ollama-python/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ome-zarr/default.nix b/nixpkgs/pkgs/development/python-modules/ome-zarr/default.nix
index fa038770a093..f7f54671669b 100644
--- a/nixpkgs/pkgs/development/python-modules/ome-zarr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ome-zarr/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "ome-zarr";
-  version = "0.8.0";
+  version = "0.8.3";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "ome";
     repo = "ome-zarr-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DMBTrDyUmNsrjOsFKrqukJNZ1f/mAjz4aunNUcwVMKg=";
+    hash = "sha256-JuNXVse/n/lFbNaLwMcir8NBHiRxcbYvtbxePwI6YoY=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ondilo/default.nix b/nixpkgs/pkgs/development/python-modules/ondilo/default.nix
index c766e2cb158d..1c5a25e048f4 100644
--- a/nixpkgs/pkgs/development/python-modules/ondilo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ondilo/default.nix
@@ -5,23 +5,28 @@
 , pythonOlder
 , requests
 , requests-oauthlib
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "ondilo";
-  version = "0.3.0";
-  format = "setuptools";
+  version = "0.4.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "JeromeHXP";
-    repo = pname;
-    rev = version;
-    hash = "sha256-MI6K+41I/IVi+GRBdmRIHbljULDFLAwpo3W8tdxCOBM=";
+    repo = "ondilo";
+    rev = "refs/tags/${version}";
+    hash = "sha256-BieWdPakQts0QxzQzJYlP6a7ieZ40rAyYqhy8zEvU38=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     oauthlib
     requests
     requests-oauthlib
@@ -37,6 +42,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python package to access Ondilo ICO APIs";
     homepage = "https://github.com/JeromeHXP/ondilo";
+    changelog = "https://github.com/JeromeHXP/ondilo/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/onetimepad/default.nix b/nixpkgs/pkgs/development/python-modules/onetimepad/default.nix
index cca4a06d6027..a1baab63934a 100644
--- a/nixpkgs/pkgs/development/python-modules/onetimepad/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/onetimepad/default.nix
@@ -21,6 +21,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "A hacky implementation of one-time pad";
+    mainProgram = "onetimepad";
     homepage = "https://jailuthra.in/onetimepad";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/onkyo-eiscp/default.nix b/nixpkgs/pkgs/development/python-modules/onkyo-eiscp/default.nix
index 066d1d89ce8f..2a54df8e5e8c 100644
--- a/nixpkgs/pkgs/development/python-modules/onkyo-eiscp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/onkyo-eiscp/default.nix
@@ -15,6 +15,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Control Onkyo receivers over ethernet";
+    mainProgram = "onkyo";
     homepage = "https://github.com/miracle2k/onkyo-eiscp";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/development/python-modules/online-judge-api-client/default.nix b/nixpkgs/pkgs/development/python-modules/online-judge-api-client/default.nix
index 0a1268e5264f..8c17aed69179 100644
--- a/nixpkgs/pkgs/development/python-modules/online-judge-api-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/online-judge-api-client/default.nix
@@ -54,6 +54,7 @@ in buildPythonPackage rec {
 
   meta = with lib; {
     description = "API client to develop tools for competitive programming";
+    mainProgram = "oj-api";
     homepage = "https://github.com/online-judge-tools/api-client";
     license = licenses.mit;
     maintainers = with maintainers; [ sei40kr ];
diff --git a/nixpkgs/pkgs/development/python-modules/online-judge-tools/default.nix b/nixpkgs/pkgs/development/python-modules/online-judge-tools/default.nix
index 58d535e6ab78..a86b41145237 100644
--- a/nixpkgs/pkgs/development/python-modules/online-judge-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/online-judge-tools/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tools for various online judges. Download sample cases, generate additional test cases, test your code, and submit it.";
+    mainProgram = "oj";
     homepage = "https://github.com/online-judge-tools/oj";
     license = licenses.mit;
     maintainers = with maintainers; [ sei40kr ];
diff --git a/nixpkgs/pkgs/development/python-modules/onlykey-solo-python/default.nix b/nixpkgs/pkgs/development/python-modules/onlykey-solo-python/default.nix
index ad01e5b2f820..23e11bc7c307 100644
--- a/nixpkgs/pkgs/development/python-modules/onlykey-solo-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/onlykey-solo-python/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/trustcrypto/onlykey-solo-python";
     description = "Python library for OnlyKey with Solo FIDO2";
+    mainProgram = "solo";
     maintainers = with maintainers; [ kalbasit ];
     license = licenses.asl20;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/onnx/1.15.0-CVE-2024-27318.patch b/nixpkgs/pkgs/development/python-modules/onnx/1.15.0-CVE-2024-27318.patch
new file mode 100644
index 000000000000..3b95d1fc588c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/onnx/1.15.0-CVE-2024-27318.patch
@@ -0,0 +1,360 @@
+Based on upstream 66b7fb630903fdcf3e83b6b6d56d82e904264a20, adjusted to
+apply to 1.15.0 & avoid implicit inclusion of changes from other
+intermediate commits
+
+diff --git a/onnx/checker.cc b/onnx/checker.cc
+index fac56f56..c9fda9b2 100644
+--- a/onnx/checker.cc
++++ b/onnx/checker.cc
+@@ -13,7 +13,6 @@
+ #include <vector>
+ 
+ #include "onnx/common/file_utils.h"
+-#include "onnx/common/path.h"
+ #include "onnx/defs/schema.h"
+ #include "onnx/defs/tensor_proto_util.h"
+ #include "onnx/proto_utils.h"
+@@ -135,85 +134,7 @@ void check_tensor(const TensorProto& tensor, const CheckerContext& ctx) {
+     for (const StringStringEntryProto& entry : tensor.external_data()) {
+       if (entry.has_key() && entry.has_value() && entry.key() == "location") {
+         has_location = true;
+-#ifdef _WIN32
+-        auto file_path = std::filesystem::path(utf8str_to_wstring(entry.value()));
+-        if (file_path.is_absolute()) {
+-          fail_check(
+-              "Location of external TensorProto ( tensor name: ",
+-              tensor.name(),
+-              ") should be a relative path, but it is an absolute path: ",
+-              entry.value());
+-        }
+-        auto relative_path = file_path.lexically_normal().make_preferred().wstring();
+-        // Check that normalized relative path contains ".." on Windows.
+-        if (relative_path.find(L"..", 0) != std::string::npos) {
+-          fail_check(
+-              "Data of TensorProto ( tensor name: ",
+-              tensor.name(),
+-              ") should be file inside the ",
+-              ctx.get_model_dir(),
+-              ", but the '",
+-              entry.value(),
+-              "' points outside the directory");
+-        }
+-        std::wstring data_path = path_join(utf8str_to_wstring(ctx.get_model_dir()), relative_path);
+-        struct _stat64 buff;
+-        if (_wstat64(data_path.c_str(), &buff) != 0) {
+-          fail_check(
+-              "Data of TensorProto ( tensor name: ",
+-              tensor.name(),
+-              ") should be stored in ",
+-              entry.value(),
+-              ", but it doesn't exist or is not accessible.");
+-        }
+-#else // POSIX
+-        if (entry.value().empty()) {
+-          fail_check("Location of external TensorProto ( tensor name: ", tensor.name(), ") should not be empty.");
+-        } else if (entry.value()[0] == '/') {
+-          fail_check(
+-              "Location of external TensorProto ( tensor name: ",
+-              tensor.name(),
+-              ") should be a relative path, but it is an absolute path: ",
+-              entry.value());
+-        }
+-        std::string relative_path = clean_relative_path(entry.value());
+-        // Check that normalized relative path contains ".." on POSIX
+-        if (relative_path.find("..", 0) != std::string::npos) {
+-          fail_check(
+-              "Data of TensorProto ( tensor name: ",
+-              tensor.name(),
+-              ") should be file inside the ",
+-              ctx.get_model_dir(),
+-              ", but the '",
+-              entry.value(),
+-              "' points outside the directory");
+-        }
+-        std::string data_path = path_join(ctx.get_model_dir(), relative_path);
+-        // use stat64 to check whether the file exists
+-#if defined(__APPLE__) || defined(__wasm__) || !defined(__GLIBC__)
+-        struct stat buffer; // APPLE, wasm and non-glic stdlibs do not have stat64
+-        if (stat((data_path).c_str(), &buffer) != 0) {
+-#else
+-        struct stat64 buffer; // All POSIX under glibc except APPLE and wasm have stat64
+-        if (stat64((data_path).c_str(), &buffer) != 0) {
+-#endif
+-          fail_check(
+-              "Data of TensorProto ( tensor name: ",
+-              tensor.name(),
+-              ") should be stored in ",
+-              data_path,
+-              ", but it doesn't exist or is not accessible.");
+-        }
+-        // Do not allow symlinks or directories.
+-        if (!S_ISREG(buffer.st_mode)) {
+-          fail_check(
+-              "Data of TensorProto ( tensor name: ",
+-              tensor.name(),
+-              ") should be stored in ",
+-              data_path,
+-              ", but it is not regular file.");
+-        }
+-#endif
++        resolve_external_data_location(ctx.get_model_dir(), entry.value(), tensor.name());
+       }
+     }
+     if (!has_location) {
+@@ -1054,6 +975,93 @@ void check_model(const ModelProto& model, bool full_check, bool skip_opset_compa
+   }
+ }
+ 
++std::string resolve_external_data_location(
++    const std::string& base_dir,
++    const std::string& location,
++    const std::string& tensor_name) {
++#ifdef _WIN32
++  auto file_path = std::filesystem::path(utf8str_to_wstring(location));
++  if (file_path.is_absolute()) {
++    fail_check(
++        "Location of external TensorProto ( tensor name: ",
++        tensor_name,
++        ") should be a relative path, but it is an absolute path: ",
++        location);
++  }
++  auto relative_path = file_path.lexically_normal().make_preferred().wstring();
++  // Check that normalized relative path contains ".." on Windows.
++  if (relative_path.find(L"..", 0) != std::string::npos) {
++    fail_check(
++        "Data of TensorProto ( tensor name: ",
++        tensor_name,
++        ") should be file inside the ",
++        base_dir,
++        ", but the '",
++        location,
++        "' points outside the directory");
++  }
++  std::wstring data_path = path_join(utf8str_to_wstring(base_dir), relative_path);
++  struct _stat64 buff;
++  if (_wstat64(data_path.c_str(), &buff) != 0) {
++    fail_check(
++        "Data of TensorProto ( tensor name: ",
++        tensor_name,
++        ") should be stored in ",
++        location,
++        ", but it doesn't exist or is not accessible.");
++  }
++  return wstring_to_utf8str(data_path);
++#else // POSIX
++  if (location.empty()) {
++    fail_check("Location of external TensorProto ( tensor name: ", tensor_name, ") should not be empty.");
++  } else if (location[0] == '/') {
++    fail_check(
++        "Location of external TensorProto ( tensor name: ",
++        tensor_name,
++        ") should be a relative path, but it is an absolute path: ",
++        location);
++  }
++  std::string relative_path = clean_relative_path(location);
++  // Check that normalized relative path contains ".." on POSIX
++  if (relative_path.find("..", 0) != std::string::npos) {
++    fail_check(
++        "Data of TensorProto ( tensor name: ",
++        tensor_name,
++        ") should be file inside the ",
++        base_dir,
++        ", but the '",
++        location,
++        "' points outside the directory");
++  }
++  std::string data_path = path_join(base_dir, relative_path);
++  // use stat64 to check whether the file exists
++#if defined(__APPLE__) || defined(__wasm__) || !defined(__GLIBC__)
++  struct stat buffer; // APPLE, wasm and non-glic stdlibs do not have stat64
++  if (stat((data_path).c_str(), &buffer) != 0) {
++#else
++  struct stat64 buffer; // All POSIX under glibc except APPLE and wasm have stat64
++  if (stat64((data_path).c_str(), &buffer) != 0) {
++#endif
++    fail_check(
++        "Data of TensorProto ( tensor name: ",
++        tensor_name,
++        ") should be stored in ",
++        data_path,
++        ", but it doesn't exist or is not accessible.");
++  }
++  // Do not allow symlinks or directories.
++  if (!S_ISREG(buffer.st_mode)) {
++    fail_check(
++        "Data of TensorProto ( tensor name: ",
++        tensor_name,
++        ") should be stored in ",
++        data_path,
++        ", but it is not regular file.");
++  }
++  return data_path;
++#endif
++}
++
+ std::set<std::string> experimental_ops = {
+     "ATen",
+     "Affine",
+diff --git a/onnx/checker.h b/onnx/checker.h
+index 6796acab..83012213 100644
+--- a/onnx/checker.h
++++ b/onnx/checker.h
+@@ -160,7 +160,10 @@ void check_model_local_functions(
+ 
+ void check_model(const ModelProto& model, bool full_check = false, bool skip_opset_compatibility_check = false);
+ void check_model(const std::string& model_path, bool full_check = false, bool skip_opset_compatibility_check = false);
+-
++std::string resolve_external_data_location(
++    const std::string& base_dir,
++    const std::string& location,
++    const std::string& tensor_name);
+ bool check_is_experimental_op(const NodeProto& node);
+ 
+ } // namespace checker
+diff --git a/onnx/common/path.h b/onnx/common/path.h
+index 6eaf5e67..09212747 100644
+--- a/onnx/common/path.h
++++ b/onnx/common/path.h
+@@ -31,11 +31,22 @@ inline std::wstring utf8str_to_wstring(const std::string& utf8str) {
+   if (utf8str.size() > INT_MAX) {
+     fail_check("utf8str_to_wstring: string is too long for converting to wstring.");
+   }
+-  int size_required = MultiByteToWideChar(CP_UTF8, 0, utf8str.c_str(), (int)utf8str.size(), NULL, 0);
++  int size_required = MultiByteToWideChar(CP_UTF8, 0, utf8str.c_str(), static_cast<int>(utf8str.size()), NULL, 0);
+   std::wstring ws_str(size_required, 0);
+-  MultiByteToWideChar(CP_UTF8, 0, utf8str.c_str(), (int)utf8str.size(), &ws_str[0], size_required);
++  MultiByteToWideChar(CP_UTF8, 0, utf8str.c_str(), static_cast<int>(utf8str.size()), &ws_str[0], size_required);
+   return ws_str;
+ }
++inline std::string wstring_to_utf8str(const std::wstring& ws_str) {
++  if (ws_str.size() > INT_MAX) {
++    fail_check("wstring_to_utf8str: string is too long for converting to UTF-8.");
++  }
++  int size_required =
++      WideCharToMultiByte(CP_UTF8, 0, ws_str.c_str(), static_cast<int>(ws_str.size()), NULL, 0, NULL, NULL);
++  std::string utf8str(size_required, 0);
++  WideCharToMultiByte(
++      CP_UTF8, 0, ws_str.c_str(), static_cast<int>(ws_str.size()), &utf8str[0], size_required, NULL, NULL);
++  return utf8str;
++}
+ 
+ #else
+ std::string path_join(const std::string& origin, const std::string& append);
+diff --git a/onnx/cpp2py_export.cc b/onnx/cpp2py_export.cc
+index bc2594db..83cea68f 100644
+--- a/onnx/cpp2py_export.cc
++++ b/onnx/cpp2py_export.cc
+@@ -545,6 +545,8 @@ PYBIND11_MODULE(onnx_cpp2py_export, onnx_cpp2py_export) {
+       "full_check"_a = false,
+       "skip_opset_compatibility_check"_a = false);
+ 
++  checker.def("_resolve_external_data_location", &checker::resolve_external_data_location);
++
+   // Submodule `version_converter`
+   auto version_converter = onnx_cpp2py_export.def_submodule("version_converter");
+   version_converter.doc() = "VersionConverter submodule";
+diff --git a/onnx/external_data_helper.py b/onnx/external_data_helper.py
+index bbc2717f..05c486c6 100644
+--- a/onnx/external_data_helper.py
++++ b/onnx/external_data_helper.py
+@@ -8,6 +8,7 @@ import uuid
+ from itertools import chain
+ from typing import Callable, Iterable, Optional
+ 
++import onnx.onnx_cpp2py_export.checker as c_checker
+ from onnx.onnx_pb import AttributeProto, GraphProto, ModelProto, TensorProto
+ 
+ 
+@@ -39,9 +40,9 @@ def load_external_data_for_tensor(tensor: TensorProto, base_dir: str) -> None:
+         base_dir: directory that contains the external data.
+     """
+     info = ExternalDataInfo(tensor)
+-    file_location = _sanitize_path(info.location)
+-    external_data_file_path = os.path.join(base_dir, file_location)
+-
++    external_data_file_path = c_checker._resolve_external_data_location(  # type: ignore[attr-defined]
++        base_dir, info.location, tensor.name
++    )
+     with open(external_data_file_path, "rb") as data_file:
+         if info.offset:
+             data_file.seek(info.offset)
+@@ -259,14 +260,6 @@ def _get_attribute_tensors(onnx_model_proto: ModelProto) -> Iterable[TensorProto
+     yield from _get_attribute_tensors_from_graph(onnx_model_proto.graph)
+ 
+ 
+-def _sanitize_path(path: str) -> str:
+-    """Remove path components which would allow traversing up a directory tree from a base path.
+-
+-    Note: This method is currently very basic and should be expanded.
+-    """
+-    return path.lstrip("/.")
+-
+-
+ def _is_valid_filename(filename: str) -> bool:
+     """Utility to check whether the provided filename is valid."""
+     exp = re.compile('^[^<>:;,?"*|/]+$')
+diff --git a/onnx/test/test_external_data.py b/onnx/test/test_external_data.py
+index 63f6b4ef..bb14d279 100644
+--- a/onnx/test/test_external_data.py
++++ b/onnx/test/test_external_data.py
+@@ -3,6 +3,7 @@
+ # SPDX-License-Identifier: Apache-2.0
+ from __future__ import annotations
+ 
++import itertools
+ import os
+ import pathlib
+ import tempfile
+@@ -204,6 +205,52 @@ class TestLoadExternalDataSingleFile(TestLoadExternalDataBase):
+         attribute_tensor = new_model.graph.node[0].attribute[0].t
+         np.testing.assert_allclose(to_array(attribute_tensor), self.attribute_value)
+ 
++    @parameterized.parameterized.expand(itertools.product((True, False), (True, False)))
++    def test_save_external_invalid_single_file_data_and_check(
++        self, use_absolute_path: bool, use_model_path: bool
++    ) -> None:
++        model = onnx.load_model(self.model_filename, self.serialization_format)
++
++        model_dir = os.path.join(self.temp_dir, "save_copy")
++        os.mkdir(model_dir)
++
++        traversal_external_data_dir = os.path.join(
++            self.temp_dir, "invlid_external_data"
++        )
++        os.mkdir(traversal_external_data_dir)
++
++        if use_absolute_path:
++            traversal_external_data_location = os.path.join(
++                traversal_external_data_dir, "tensors.bin"
++            )
++        else:
++            traversal_external_data_location = "../invlid_external_data/tensors.bin"
++
++        external_data_dir = os.path.join(self.temp_dir, "external_data")
++        os.mkdir(external_data_dir)
++        new_model_filepath = os.path.join(model_dir, "model.onnx")
++
++        def convert_model_to_external_data_no_check(model: ModelProto, location: str):
++            for tensor in model.graph.initializer:
++                if tensor.HasField("raw_data"):
++                    set_external_data(tensor, location)
++
++        convert_model_to_external_data_no_check(
++            model,
++            location=traversal_external_data_location,
++        )
++
++        onnx.save_model(model, new_model_filepath, self.serialization_format)
++        if use_model_path:
++            with self.assertRaises(onnx.checker.ValidationError):
++                _ = onnx.load_model(new_model_filepath, self.serialization_format)
++        else:
++            onnx_model = onnx.load_model(
++                new_model_filepath, self.serialization_format, load_external_data=False
++            )
++            with self.assertRaises(onnx.checker.ValidationError):
++                load_external_data_for_model(onnx_model, external_data_dir)
++
+ 
+ @parameterized.parameterized_class(
+     [
diff --git a/nixpkgs/pkgs/development/python-modules/onnx/default.nix b/nixpkgs/pkgs/development/python-modules/onnx/default.nix
index 7d5e27138ecc..bcfd0cf6e3cf 100644
--- a/nixpkgs/pkgs/development/python-modules/onnx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/onnx/default.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , cmake
 , fetchFromGitHub
+, fetchpatch
 , gtest
 , nbval
 , numpy
@@ -35,6 +36,15 @@ in buildPythonPackage rec {
     hash = "sha256-Jzga1IiUO5LN5imSUmnbsjYtapRatTihx38EOUjm9Os=";
   };
 
+  patches = [
+    ./1.15.0-CVE-2024-27318.patch
+    (fetchpatch {
+      name = "CVE-2024-27319.patch";
+      url = "https://github.com/onnx/onnx/commit/08a399ba75a805b7813ab8936b91d0e274b08287.patch";
+      hash = "sha256-9X92N9i/hpQjDGe4I/C+FwUcTUTtP2Nf7+pcTA2sXoA=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
     pybind11
diff --git a/nixpkgs/pkgs/development/python-modules/onvif-zeep-async/default.nix b/nixpkgs/pkgs/development/python-modules/onvif-zeep-async/default.nix
index 3d70ef77fb86..aacdb41fda1f 100644
--- a/nixpkgs/pkgs/development/python-modules/onvif-zeep-async/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/onvif-zeep-async/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "ONVIF Client Implementation in Python";
+    mainProgram = "onvif-cli";
     homepage = "https://github.com/hunterjm/python-onvif-zeep-async";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/onvif-zeep/default.nix b/nixpkgs/pkgs/development/python-modules/onvif-zeep/default.nix
index c1d60fd6bf26..2c2946d53c00 100644
--- a/nixpkgs/pkgs/development/python-modules/onvif-zeep/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/onvif-zeep/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python Client for ONVIF Camera";
+    mainProgram = "onvif-cli";
     homepage = "https://github.com/quatanium/python-onvif";
     license = licenses.mit;
     maintainers = with maintainers; [ fleaz ];
diff --git a/nixpkgs/pkgs/development/python-modules/openai-whisper/default.nix b/nixpkgs/pkgs/development/python-modules/openai-whisper/default.nix
index 7983abd2e985..26c2bbb0a312 100644
--- a/nixpkgs/pkgs/development/python-modules/openai-whisper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openai-whisper/default.nix
@@ -78,6 +78,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/openai/whisper/blob/v${version}/CHANGELOG.md";
     description = "General-purpose speech recognition model";
+    mainProgram = "whisper";
     homepage = "https://github.com/openai/whisper";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa MayNiklas ];
diff --git a/nixpkgs/pkgs/development/python-modules/openai/default.nix b/nixpkgs/pkgs/development/python-modules/openai/default.nix
index fb05e0a18dd3..7c8397dc304f 100644
--- a/nixpkgs/pkgs/development/python-modules/openai/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openai/default.nix
@@ -82,6 +82,9 @@ buildPythonPackage rec {
     # Tests make network requests
     "test_streaming_response"
     "test_copy_build_request"
+
+    # Test fails with pytest>=8
+    "test_basic_attribute_access_works"
   ];
 
   disabledTestPaths = [
@@ -91,6 +94,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python client library for the OpenAI API";
+    mainProgram = "openai";
     homepage = "https://github.com/openai/openai-python";
     changelog = "https://github.com/openai/openai-python/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/openant/default.nix b/nixpkgs/pkgs/development/python-modules/openant/default.nix
index 639ea62a17f3..0a655030a37d 100644
--- a/nixpkgs/pkgs/development/python-modules/openant/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openant/default.nix
@@ -54,6 +54,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/Tigge/openant";
     description = "ANT and ANT-FS Python Library";
+    mainProgram = "openant";
     license = licenses.mit;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/openapi-core/default.nix b/nixpkgs/pkgs/development/python-modules/openapi-core/default.nix
index a6ddc2f5a61c..59611e1af362 100644
--- a/nixpkgs/pkgs/development/python-modules/openapi-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openapi-core/default.nix
@@ -1,10 +1,11 @@
 { lib
 , aiohttp
+, aioitertools
 , asgiref
 , buildPythonPackage
 , django
-, djangorestframework
 , falcon
+, fastapi
 , fetchFromGitHub
 , flask
 , httpx
@@ -12,12 +13,14 @@
 , jsonschema
 , jsonschema-spec
 , more-itertools
+, multidict
 , openapi-schema-validator
 , openapi-spec-validator
 , parse
 , poetry-core
 , pytest-aiohttp
 , pytestCheckHook
+, pytest_7
 , pythonOlder
 , responses
 , requests
@@ -28,7 +31,7 @@
 
 buildPythonPackage rec {
   pname = "openapi-core";
-  version = "0.18.2";
+  version = "0.19.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -37,7 +40,7 @@ buildPythonPackage rec {
     owner = "p1c2u";
     repo = "openapi-core";
     rev = "refs/tags/${version}";
-    hash = "sha256-5sNI6ujqDQ5L4afVHYZkm2pKa8yATtHFo7MF3eFF8Ig=";
+    hash = "sha256-+YYcSNX717JjVHMk4Seb145iq9/rQZEVQn27Ulk1A3E=";
   };
 
   postPatch = ''
@@ -63,6 +66,7 @@ buildPythonPackage rec {
   passthru.optional-dependencies = {
     aiohttp = [
       aiohttp
+      multidict
     ];
     django = [
       django
@@ -70,6 +74,9 @@ buildPythonPackage rec {
     falcon = [
       falcon
     ];
+    fastapi = [
+      fastapi
+    ];
     flask = [
       flask
     ];
@@ -77,7 +84,7 @@ buildPythonPackage rec {
       requests
     ];
     starlette = [
-      httpx
+      aioitertools
       starlette
     ];
   };
@@ -85,12 +92,17 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   nativeCheckInputs = [
+    httpx
     pytest-aiohttp
-    pytestCheckHook
+    (pytestCheckHook.override { pytest = pytest_7; })
     responses
     webob
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
+  pytestFlagsArray = [
+    "-W" "ignore::DeprecationWarning"
+  ];
+
   disabledTestPaths = [
     # Requires secrets and additional configuration
     "tests/integration/contrib/django/"
diff --git a/nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix b/nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix
index 4c89b6999907..c43439e36ba0 100644
--- a/nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix
@@ -68,6 +68,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/p1c2u/openapi-spec-validator/releases/tag/${version}";
     description = "Validates OpenAPI Specs against the OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0.0 specification";
+    mainProgram = "openapi-spec-validator";
     homepage = "https://github.com/p1c2u/openapi-spec-validator";
     license = licenses.asl20;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/openllm-client/default.nix b/nixpkgs/pkgs/development/python-modules/openllm-client/default.nix
index 08ac4e9ae02e..221f0ab8011c 100644
--- a/nixpkgs/pkgs/development/python-modules/openllm-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openllm-client/default.nix
@@ -21,12 +21,13 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.8";
 
-  sourceRoot = "source/openllm-client";
+  sourceRoot = "${src.name}/openllm-client";
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace-fail "hatchling==1.18.0" "hatchling" \
-      --replace-fail "hatch-vcs==0.3.0" "hatch-vcs"
+      --replace-fail "hatch-vcs==0.3.0" "hatch-vcs" \
+      --replace-fail "hatch-fancy-pypi-readme==23.1.0" "hatch-fancy-pypi-readme"
   '';
 
   build-system = [
diff --git a/nixpkgs/pkgs/development/python-modules/openllm-core/default.nix b/nixpkgs/pkgs/development/python-modules/openllm-core/default.nix
index c87e75fbc4d1..f59d92615cf8 100644
--- a/nixpkgs/pkgs/development/python-modules/openllm-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openllm-core/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     hash = "sha256-kRR715Vnt9ZAmxuWvtH0z093crH0JFrEKPtbjO3QMRc=";
   };
 
-  sourceRoot = "source/openllm-core";
+  sourceRoot = "${src.name}/openllm-core";
 
   nativeBuildInputs = [
     pythonRelaxDepsHook
@@ -44,8 +44,9 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "hatch-vcs==0.3.0" "hatch-vcs" \
-      --replace "hatchling==1.18.0" "hatchling"
+      --replace-fail "hatch-vcs==0.3.0" "hatch-vcs" \
+      --replace-fail "hatchling==1.18.0" "hatchling" \
+      --replace-fail "hatch-fancy-pypi-readme==23.1.0" "hatch-fancy-pypi-readme"
   '';
 
   pythonRelaxDeps = [
@@ -89,7 +90,7 @@ buildPythonPackage rec {
     full = with optional-dependencies; (
       vllm
       # use absolute path to disambiguate with derivbation argument
-      ++ passthru.optional-dependencies.bentoml
+      ++ optional-dependencies.bentoml
       ++ fine-tune );
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/openllm/default.nix b/nixpkgs/pkgs/development/python-modules/openllm/default.nix
index ae2cedd9ce1a..8a37e257ffa9 100644
--- a/nixpkgs/pkgs/development/python-modules/openllm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openllm/default.nix
@@ -51,7 +51,7 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.8";
 
-  sourceRoot = "source/openllm-python";
+  sourceRoot = "${src.name}/openllm-python";
 
   nativeBuildInputs = [
     pythonRelaxDepsHook
diff --git a/nixpkgs/pkgs/development/python-modules/openrazer/daemon.nix b/nixpkgs/pkgs/development/python-modules/openrazer/daemon.nix
index ea90e089ec34..bf2005d06e5d 100644
--- a/nixpkgs/pkgs/development/python-modules/openrazer/daemon.nix
+++ b/nixpkgs/pkgs/development/python-modules/openrazer/daemon.nix
@@ -52,5 +52,6 @@ buildPythonPackage (common // {
 
   meta = common.meta // {
     description = "An entirely open source user-space daemon that allows you to manage your Razer peripherals on GNU/Linux";
+    mainProgram = "openrazer-daemon";
   };
 })
diff --git a/nixpkgs/pkgs/development/python-modules/opensfm/default.nix b/nixpkgs/pkgs/development/python-modules/opensfm/default.nix
index 2c9c57500ecb..674ec572e140 100644
--- a/nixpkgs/pkgs/development/python-modules/opensfm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opensfm/default.nix
@@ -43,12 +43,12 @@ let
     else ceres-solver;
 in
 buildPythonPackage rec {
-  pname = "OpenSfM";
+  pname = "opensfm";
   version = "unstable-2023-12-09";
 
   src = fetchFromGitHub {
     owner = "mapillary";
-    repo = pname;
+    repo = "OpenSfM";
     rev = "7f170d0dc352340295ff480378e3ac37d0179f8e";
     sha256 = "sha256-l/HTVenC+L+GpMNnDgnSGZ7+Qd2j8b8cuTs3SmORqrg=";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/openstackdocstheme/default.nix b/nixpkgs/pkgs/development/python-modules/openstackdocstheme/default.nix
index 819bf7508d41..1ac6b6cae546 100644
--- a/nixpkgs/pkgs/development/python-modules/openstackdocstheme/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openstackdocstheme/default.nix
@@ -4,6 +4,7 @@
 , dulwich
 , pbr
 , sphinx
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
@@ -11,6 +12,9 @@ buildPythonPackage rec {
   version = "3.2.0";
   format = "setuptools";
 
+  # breaks on import due to distutils import through pbr.packaging
+  disabled = pythonAtLeast "3.12";
+
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-PwSWLJr5Hjwz8cRXXutnE4Jc+vLcL3TJTZl6biK/4E4=";
diff --git a/nixpkgs/pkgs/development/python-modules/openstacksdk/default.nix b/nixpkgs/pkgs/development/python-modules/openstacksdk/default.nix
index f6cc42e67f75..94d2c1b7c216 100644
--- a/nixpkgs/pkgs/development/python-modules/openstacksdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openstacksdk/default.nix
@@ -57,6 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "An SDK for building applications to work with OpenStack";
+    mainProgram = "openstack-inventory";
     homepage = "https://github.com/openstack/openstacksdk";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-api/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-api/default.nix
index 5b59d43e7816..135518ce3f8c 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-api/default.nix
@@ -14,30 +14,32 @@
 let
   self = buildPythonPackage rec {
     pname = "opentelemetry-api";
-    version = "1.22.0";
-    disabled = pythonOlder "3.7";
+    version = "1.23.0";
+    pyproject = true;
+
+    disabled = pythonOlder "3.8";
 
     # to avoid breakage, every package in opentelemetry-python must inherit this version, src, and meta
     src = fetchFromGitHub {
       owner = "open-telemetry";
       repo = "opentelemetry-python";
       rev = "refs/tags/v${version}";
-      hash = "sha256-6BmBmooVaH1FOpgXpFlYth0r9XaNtmb9UezeP8hWEok=";
+      hash = "sha256-Ge/DjVG7ajoS0nJLZxtfn4Mmx0SffAE/91dViA5qWAA=";
     };
 
     sourceRoot = "${src.name}/opentelemetry-api";
 
-    format = "pyproject";
-
     nativeBuildInputs = [
-      hatchling
       pythonRelaxDepsHook
     ];
 
-    propagatedBuildInputs = [
+    build-system = [
+      hatchling
+    ];
+
+    dependencies = [
       deprecated
       importlib-metadata
-      setuptools
     ];
 
     pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-common/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-common/default.nix
index 8a43e9b4cda4..bc8bbec64e97 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-common/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-common/default.nix
@@ -2,10 +2,8 @@
 , buildPythonPackage
 , pythonOlder
 , hatchling
-, backoff
 , opentelemetry-api
 , opentelemetry-proto
-, opentelemetry-sdk
 , opentelemetry-test-utils
 , pytestCheckHook
 }:
@@ -13,19 +11,17 @@
 buildPythonPackage {
   inherit (opentelemetry-api) version src;
   pname = "opentelemetry-exporter-otlp-proto-common";
-  disabled = pythonOlder "3.7";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-otlp-proto-common";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-otlp-proto-common";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    backoff
-    opentelemetry-sdk
+  dependencies = [
     opentelemetry-proto
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-grpc/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-grpc/default.nix
index b727d16b8e65..9f1fe62dfbb4 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-grpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-grpc/default.nix
@@ -1,35 +1,37 @@
 { lib
 , buildPythonPackage
 , pythonOlder
-, backoff
+, deprecated
 , googleapis-common-protos
 , grpcio
 , hatchling
 , opentelemetry-api
-, opentelemetry-test-utils
 , opentelemetry-exporter-otlp-proto-common
-, pytest-grpc
+, opentelemetry-proto
+, opentelemetry-test-utils
 , pytestCheckHook
 }:
 
 buildPythonPackage {
   inherit (opentelemetry-api) version src;
   pname = "opentelemetry-exporter-otlp-proto-grpc";
-  disabled = pythonOlder "3.7";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-otlp-proto-grpc";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-otlp-proto-grpc";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    backoff
+  dependencies = [
+    deprecated
     googleapis-common-protos
     grpcio
+    opentelemetry-api
     opentelemetry-exporter-otlp-proto-common
+    opentelemetry-proto
   ];
 
   nativeCheckInputs = [
@@ -43,6 +45,8 @@ buildPythonPackage {
 
   pythonImportsCheck = [ "opentelemetry.exporter.otlp.proto.grpc" ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = opentelemetry-api.meta // {
     homepage = "https://github.com/open-telemetry/opentelemetry-python/tree/main/exporter/opentelemetry-exporter-otlp-proto-grpc";
     description = "OpenTelemetry Collector Protobuf over gRPC Exporter";
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-http/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-http/default.nix
index 2478826cd67e..8c82d0b8b580 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-http/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-http/default.nix
@@ -1,11 +1,13 @@
 { lib
 , buildPythonPackage
 , pythonOlder
-, backoff
+, deprecated
 , googleapis-common-protos
 , hatchling
 , opentelemetry-api
 , opentelemetry-exporter-otlp-proto-common
+, opentelemetry-proto
+, opentelemetry-sdk
 , opentelemetry-test-utils
 , requests
 , responses
@@ -15,20 +17,23 @@
 buildPythonPackage {
   inherit (opentelemetry-api) version src;
   pname = "opentelemetry-exporter-otlp-proto-http";
-  disabled = pythonOlder "3.7";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-otlp-proto-http";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-otlp-proto-http";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    backoff
+  dependencies = [
+    deprecated
     googleapis-common-protos
+    opentelemetry-api
     opentelemetry-exporter-otlp-proto-common
+    opentelemetry-proto
+    opentelemetry-sdk
     requests
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp/default.nix
index 7dcc282e1536..75748e3b70ac 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-otlp/default.nix
@@ -1,33 +1,34 @@
 { lib
 , buildPythonPackage
 , pythonOlder
-, backoff
 , hatchling
 , opentelemetry-api
 , opentelemetry-exporter-otlp-proto-grpc
 , opentelemetry-exporter-otlp-proto-http
+, opentelemetry-test-utils
 , pytestCheckHook
 }:
 
 buildPythonPackage {
   inherit (opentelemetry-api) version src;
   pname = "opentelemetry-exporter-otlp";
-  disabled = pythonOlder "3.7";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-otlp";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-otlp";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     opentelemetry-exporter-otlp-proto-grpc
     opentelemetry-exporter-otlp-proto-http
   ];
 
   nativeCheckInputs = [
+    opentelemetry-test-utils
     pytestCheckHook
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix
index 7708b404a980..1ccd6b472e18 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix
@@ -10,19 +10,20 @@
 }:
 
 buildPythonPackage {
-  inherit (opentelemetry-api) version src;
+  inherit (opentelemetry-api) src;
   pname = "opentelemetry-exporter-prometheus";
-  disabled = pythonOlder "3.7";
+  version = "0.44b0";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-prometheus";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-prometheus";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     opentelemetry-api
     opentelemetry-sdk
     prometheus-client
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-aiohttp-client/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-aiohttp-client/default.nix
index cdd40d447050..df5a9b037652 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-aiohttp-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-aiohttp-client/default.nix
@@ -15,23 +15,23 @@
 buildPythonPackage {
   inherit (opentelemetry-instrumentation) version src;
   pname = "opentelemetry-instrumentation-aiohttp-client";
-  disabled = pythonOlder "3.7";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-aiohttp-client";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-aiohttp-client";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    aiohttp
     opentelemetry-api
     opentelemetry-instrumentation
     opentelemetry-semantic-conventions
     opentelemetry-util-http
     wrapt
-    aiohttp
   ];
 
   # missing https://github.com/ezequielramos/http-server-mock
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-asgi/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-asgi/default.nix
index 952824cd1b72..7eb2a6679745 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-asgi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-asgi/default.nix
@@ -14,17 +14,17 @@
 buildPythonPackage {
   inherit (opentelemetry-instrumentation) version src;
   pname = "opentelemetry-instrumentation-asgi";
-  disabled = pythonOlder "3.7";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-asgi";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-asgi";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     asgiref
     opentelemetry-instrumentation
     opentelemetry-api
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-django/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-django/default.nix
index 39058d16e259..9e27e60e2dde 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-django/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-django/default.nix
@@ -13,33 +13,36 @@
 , pytestCheckHook
 }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   inherit (opentelemetry-instrumentation) version src;
   pname = "opentelemetry-instrumentation-django";
-  disabled = pythonOlder "3.7";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-django";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-django";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     django
     opentelemetry-api
     opentelemetry-instrumentation
-    opentelemetry-instrumentation-asgi
     opentelemetry-instrumentation-wsgi
     opentelemetry-semantic-conventions
     opentelemetry-util-http
   ];
 
+  passthru.optional-dependencies = {
+    asgi = [ opentelemetry-instrumentation-asgi ];
+  };
+
   nativeCheckInputs = [
     opentelemetry-test-utils
     pytestCheckHook
-  ];
+  ] ++ passthru.optional-dependencies.asgi;
 
   pythonImportsCheck = [ "opentelemetry.instrumentation.django" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-fastapi/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-fastapi/default.nix
index 41de5bb8b60f..a4da7665172e 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-fastapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-fastapi/default.nix
@@ -19,15 +19,15 @@ buildPythonPackage {
   pname = "opentelemetry-instrumentation-fastapi";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-fastapi";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     fastapi
     opentelemetry-api
     opentelemetry-instrumentation
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-flask/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-flask/default.nix
index 71860dd8fd74..0e1daa3f3a91 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-flask/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-flask/default.nix
@@ -7,6 +7,7 @@
 , opentelemetry-semantic-conventions
 , opentelemetry-test-utils
 , opentelemetry-util-http
+, packaging
 , pytestCheckHook
 , pythonOlder
 }:
@@ -14,21 +15,22 @@
 buildPythonPackage {
   inherit (opentelemetry-instrumentation) version src;
   pname = "opentelemetry-instrumentation-flask";
-  disabled = pythonOlder "3.7";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-flask";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-flask";
 
-  nativeBuildInputs = [ hatchling ];
+  build-system = [ hatchling ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     flask
     opentelemetry-api
     opentelemetry-instrumentation
     opentelemetry-instrumentation-wsgi
     opentelemetry-semantic-conventions
     opentelemetry-util-http
+    packaging
   ];
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-grpc/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-grpc/default.nix
index ad408c3dfbaa..2a2cae6f6de4 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-grpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-grpc/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , pythonOlder
 , hatchling
@@ -15,17 +16,17 @@
 buildPythonPackage {
   inherit (opentelemetry-instrumentation) version src;
   pname = "opentelemetry-instrumentation-grpc";
-  disabled = pythonOlder "3.7";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-grpc";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-grpc";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     opentelemetry-api
     opentelemetry-instrumentation
     opentelemetry-sdk
@@ -43,8 +44,15 @@ buildPythonPackage {
     pytestCheckHook
   ];
 
+  disabledTests = lib.optionals stdenv.isDarwin [
+    # RuntimeError: Failed to bind to address
+    "TestOpenTelemetryServerInterceptorUnix"
+  ];
+
   pythonImportsCheck = [ "opentelemetry.instrumentation.grpc" ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = opentelemetry-instrumentation.meta // {
     homepage = "https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-grpc";
     description = "OpenTelemetry Instrumentation for grpc";
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-wsgi/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-wsgi/default.nix
index 0b1fda0276c9..2e3d60b28442 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-wsgi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation-wsgi/default.nix
@@ -13,17 +13,17 @@
 buildPythonPackage {
   inherit (opentelemetry-instrumentation) version src;
   pname = "opentelemetry-instrumentation-wsgi";
-  disabled = pythonOlder "3.7";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-wsgi";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-wsgi";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     opentelemetry-instrumentation
     opentelemetry-api
     opentelemetry-semantic-conventions
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix
index f5e76507d3ab..965276da78f1 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix
@@ -4,7 +4,6 @@
 , fetchFromGitHub
 , hatchling
 , opentelemetry-api
-, opentelemetry-sdk
 , opentelemetry-test-utils
 , setuptools
 , wrapt
@@ -13,28 +12,27 @@
 
 buildPythonPackage rec {
   pname = "opentelemetry-instrumentation";
-  version = "0.43b0";
-  disabled = pythonOlder "3.7";
+  version = "0.44b0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   # to avoid breakage, every package in opentelemetry-python-contrib must inherit this version, src, and meta
   src = fetchFromGitHub {
     owner = "open-telemetry";
     repo = "opentelemetry-python-contrib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fUyA3cPXAxO506usEWxOUX9xiapc8Ocnbx73LP6ghRE=";
+    hash = "sha256-r+k/YdK7YqYme8nKoy3ig3krvZjxYRKgLBkcdEtFy3k=";
   };
 
   sourceRoot = "${src.name}/opentelemetry-instrumentation";
 
-  format = "pyproject";
-
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     opentelemetry-api
-    opentelemetry-sdk
     setuptools
     wrapt
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-proto/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-proto/default.nix
index 21b84dd5898f..58869327a1ae 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-proto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-proto/default.nix
@@ -10,17 +10,17 @@
 buildPythonPackage {
   inherit (opentelemetry-api) version src;
   pname = "opentelemetry-proto";
-  disabled = pythonOlder "3.7";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-api.src.name}/opentelemetry-proto";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-api.src.name}/opentelemetry-proto";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     protobuf
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-sdk/default.nix
index ba5e7de5db83..bee9dc01e6b0 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-sdk/default.nix
@@ -15,20 +15,19 @@ let
   self = buildPythonPackage {
     inherit (opentelemetry-api) version src;
     pname = "opentelemetry-sdk";
-    disabled = pythonOlder "3.7";
+    pyproject = true;
 
-    sourceRoot = "${opentelemetry-api.src.name}/opentelemetry-sdk";
+    disabled = pythonOlder "3.8";
 
-    format = "pyproject";
+    sourceRoot = "${opentelemetry-api.src.name}/opentelemetry-sdk";
 
-    nativeBuildInputs = [
+    build-system = [
       hatchling
     ];
 
-    propagatedBuildInputs = [
+    dependencies = [
       opentelemetry-api
       opentelemetry-semantic-conventions
-      setuptools
       typing-extensions
     ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix
index d57a7f13fa53..a2a88906ec07 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix
@@ -7,15 +7,16 @@
 }:
 
 buildPythonPackage {
-  inherit (opentelemetry-api) version src;
+  inherit (opentelemetry-api) src;
   pname = "opentelemetry-semantic-conventions";
-  disabled = pythonOlder "3.7";
+  version = "0.44b0";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-api.src.name}/opentelemetry-semantic-conventions";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-api.src.name}/opentelemetry-semantic-conventions";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-test-utils/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-test-utils/default.nix
index 4e2405058b86..d255845658c2 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-test-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-test-utils/default.nix
@@ -1,5 +1,4 @@
 { lib
-, callPackage
 , buildPythonPackage
 , pythonOlder
 , asgiref
@@ -9,19 +8,20 @@
 }:
 
 buildPythonPackage {
-  inherit (opentelemetry-api) version src;
+  inherit (opentelemetry-api) src;
   pname = "opentelemetry-test-utils";
-  disabled = pythonOlder "3.7";
+  version = "0.44b0";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-api.src.name}/tests/opentelemetry-test-utils";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-api.src.name}/tests/opentelemetry-test-utils";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     asgiref
     opentelemetry-api
     opentelemetry-sdk
diff --git a/nixpkgs/pkgs/development/python-modules/opentelemetry-util-http/default.nix b/nixpkgs/pkgs/development/python-modules/opentelemetry-util-http/default.nix
index e14338ffcbce..128f503d832d 100644
--- a/nixpkgs/pkgs/development/python-modules/opentelemetry-util-http/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentelemetry-util-http/default.nix
@@ -3,8 +3,6 @@
 , pythonOlder
 , hatchling
 , opentelemetry-instrumentation
-, opentelemetry-sdk
-, opentelemetry-semantic-conventions
 , opentelemetry-test-utils
 , pytestCheckHook
 }:
@@ -12,23 +10,18 @@
 buildPythonPackage {
   inherit (opentelemetry-instrumentation) version src;
   pname = "opentelemetry-util-http";
-  disabled = pythonOlder "3.7";
+  pyproject = true;
 
-  sourceRoot = "${opentelemetry-instrumentation.src.name}/util/opentelemetry-util-http";
+  disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  sourceRoot = "${opentelemetry-instrumentation.src.name}/util/opentelemetry-util-http";
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    opentelemetry-instrumentation
-    opentelemetry-sdk
-    opentelemetry-semantic-conventions
-  ];
-
   nativeCheckInputs = [
+    opentelemetry-instrumentation
     opentelemetry-test-utils
     pytestCheckHook
   ];
@@ -41,6 +34,8 @@ buildPythonPackage {
 
   pythonImportsCheck = [ "opentelemetry.util.http" ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = opentelemetry-instrumentation.meta // {
     homepage = "https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/util/opentelemetry-util-http";
     description = "Web util for OpenTelemetry";
diff --git a/nixpkgs/pkgs/development/python-modules/openusd/default.nix b/nixpkgs/pkgs/development/python-modules/openusd/default.nix
index 590bae1823c9..4b323b25669d 100644
--- a/nixpkgs/pkgs/development/python-modules/openusd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openusd/default.nix
@@ -1,35 +1,43 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, writeShellScriptBin
-, cmake
-, doxygen
-, draco
-, graphviz-nox
-, ninja
-, setuptools
-, pyqt6
-, pyopengl
-, jinja2
-, pyside6
-, boost
-, numpy
-, git
-, tbb
-, opensubdiv
-, openimageio
-, opencolorio
-, osl
-, ptex
-, embree
-, alembic
-, imath
-, flex
-, bison
-, qt6
-, python
-, darwin
+{
+  alembic,
+  bison,
+  boost,
+  buildPythonPackage,
+  cmake,
+  darwin,
+  doxygen,
+  draco,
+  embree,
+  fetchFromGitHub,
+  flex,
+  git,
+  graphviz-nox,
+  imath,
+  jinja2,
+  lib,
+  libGL,
+  libX11,
+  ninja,
+  numpy,
+  opencolorio,
+  openimageio,
+  opensubdiv,
+  osl,
+  ptex,
+  pyopengl,
+  pyqt6,
+  pyside6,
+  python,
+  qt6,
+  setuptools,
+  tbb,
+  withDocs ? false,
+  withOsl ? true,
+  withTools ? false,
+  withUsdView ? false,
+  writeShellScriptBin,
 }:
+
 let
   # Matches the pyside6-uic implementation
   # https://code.qt.io/cgit/pyside/pyside-setup.git/tree/sources/pyside-tools/pyside_tool.py?id=e501cad66146a49c7a259579c7bb94bc93a67a08#n82
@@ -37,95 +45,112 @@ let
     exec ${qt6.qtbase}/libexec/uic -g python "$@"
   '';
 in
+
 buildPythonPackage rec {
-  pname = "OpenUSD";
+  pname = "openusd";
   version = "23.11";
+
   src = fetchFromGitHub {
     owner = "PixarAnimationStudios";
-    repo = pname;
+    repo = "OpenUSD";
     rev = "refs/tags/v${version}";
     hash = "sha256-5zQrfB14kXs75WbL3s4eyhxELglhLNxU2L2aVXiyVjg=";
   };
 
-  stdenv = if python.stdenv.isDarwin then
-    darwin.apple_sdk_11_0.stdenv
-  else
-    python.stdenv;
+  stdenv = if python.stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else python.stdenv;
 
-  outputs = ["out" "doc"];
+  outputs = [ "out" ] ++ lib.optional withDocs "doc";
 
   format = "other";
 
-  propagatedBuildInputs = [
-    setuptools
-    pyqt6
-    pyopengl
-    jinja2
-    pyside6
-    pyside-tools-uic
-    boost
-    numpy
-  ];
-
   cmakeFlags = [
-    "-DPXR_BUILD_EXAMPLES=OFF"
-    "-DPXR_BUILD_TUTORIALS=OFF"
-    "-DPXR_BUILD_USD_TOOLS=ON"
-    "-DPXR_BUILD_IMAGING=ON"
-    "-DPXR_BUILD_USD_IMAGING=ON"
-    "-DPXR_BUILD_USDVIEW=ON"
-    "-DPXR_BUILD_DOCUMENTATION=ON"
-    "-DPXR_BUILD_PYTHON_DOCUMENTATION=ON"
-    "-DPXR_BUILD_EMBREE_PLUGIN=ON"
     "-DPXR_BUILD_ALEMBIC_PLUGIN=ON"
     "-DPXR_BUILD_DRACO_PLUGIN=ON"
+    "-DPXR_BUILD_EMBREE_PLUGIN=ON"
+    "-DPXR_BUILD_EXAMPLES=OFF"
+    "-DPXR_BUILD_IMAGING=ON"
     "-DPXR_BUILD_MONOLITHIC=ON" # Seems to be commonly linked to monolithically
-    (lib.cmakeBool "PXR_ENABLE_OSL_SUPPORT" (!stdenv.isDarwin))
+    "-DPXR_BUILD_TESTS=OFF"
+    "-DPXR_BUILD_TUTORIALS=OFF"
+    "-DPXR_BUILD_USD_IMAGING=ON"
+    (lib.cmakeBool "PXR_BUILD_DOCUMENTATION" withDocs)
+    (lib.cmakeBool "PXR_BUILD_PYTHON_DOCUMENTATION" withDocs)
+    (lib.cmakeBool "PXR_BUILD_USDVIEW" withUsdView)
+    (lib.cmakeBool "PXR_BUILD_USD_TOOLS" withTools)
+    (lib.cmakeBool "PXR_ENABLE_OSL_SUPPORT" (!stdenv.isDarwin && withOsl))
   ];
 
-  nativeBuildInputs = [
-    cmake
-    ninja
-    git
-    qt6.wrapQtAppsHook
-    doxygen
-    graphviz-nox
-  ];
-  buildInputs = [
-    tbb
-    opensubdiv
-    openimageio
-    opencolorio
-    osl
-    ptex
-    embree
-    alembic.dev
-    imath
-    flex
-    bison
-    boost
-    draco
-    qt6.qtbase
-  ]
-    ++ lib.optionals stdenv.isLinux [ qt6.qtwayland ]
-    ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [
-      Cocoa
-    ])
-  ;
+  nativeBuildInputs =
+    [
+      cmake
+      ninja
+      setuptools
+    ]
+    ++ lib.optionals withDocs [
+      git
+      graphviz-nox
+      doxygen
+    ]
+    ++ lib.optionals withUsdView [ qt6.wrapQtAppsHook ];
 
-  pythonImportsCheck = [ "pxr" "pxr.Usd" ];
+  buildInputs =
+    [
+      alembic.dev
+      bison
+      boost
+      draco
+      embree
+      flex
+      imath
+      opencolorio
+      openimageio
+      opensubdiv
+      ptex
+      tbb
+    ]
+    ++ lib.optionals stdenv.isLinux [
+      libGL
+      libX11
+    ]
+    ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [ Cocoa ])
+    ++ lib.optionals withOsl [ osl ]
+    ++ lib.optionals withUsdView [ qt6.qtbase ]
+    ++ lib.optionals (withUsdView && stdenv.isLinux) [
+      qt6.qtbase
+      qt6.qtwayland
+    ];
 
-  postInstall = ''
-    # Make python lib properly accessible
-    target_dir=$out/${python.sitePackages}
-    mkdir -p $(dirname $target_dir)
-    mv $out/lib/python $target_dir
+  propagatedBuildInputs =
+    [
+      boost
+      jinja2
+      numpy
+      pyopengl
+    ]
+    ++ lib.optionals (withTools || withUsdView) [
+      pyside-tools-uic
+      pyside6
+    ]
+    ++ lib.optionals withUsdView [ pyqt6 ];
 
-    mv $out/docs $doc
+  pythonImportsCheck = [
+    "pxr"
+    "pxr.Usd"
+  ];
 
-    rm $out/share -r # only examples
-    rm $out/tests -r
-  '';
+  postInstall =
+    ''
+      # Make python lib properly accessible
+      target_dir=$out/${python.sitePackages}
+      mkdir -p $(dirname $target_dir)
+      mv $out/lib/python $target_dir
+    ''
+    + lib.optionalString withDocs ''
+      mv $out/docs $doc
+    ''
+    + ''
+      rm $out/share -r # only examples
+    '';
 
   meta = {
     description = "Universal Scene Description";
diff --git a/nixpkgs/pkgs/development/python-modules/openwrt-luci-rpc/default.nix b/nixpkgs/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
index 7c507cba15e0..b1e47f13c436 100644
--- a/nixpkgs/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "openwrt-luci-rpc";
-  version = "1.1.16";
+  version = "1.1.17";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZvPMJbYCNKMXuTrHwXQvBZ/mMenYTsV1X4COiVxvJGY=";
+    hash = "sha256-RFZCnQTDs3vre0qbedIEnng7lGo3Ikp0Bw4+7sbPRJk=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/opower/default.nix b/nixpkgs/pkgs/development/python-modules/opower/default.nix
index 306f0431bfae..0d25314befdf 100644
--- a/nixpkgs/pkgs/development/python-modules/opower/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opower/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "opower";
-  version = "0.4.0";
+  version = "0.4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "tronikos";
     repo = "opower";
     rev = "refs/tags/v${version}";
-    hash = "sha256-O+yIxEFqD6hel1H9aUnSz/wJoEhVrg6DDZptNcJVkSw=";
+    hash = "sha256-PB6t1ltxJs7aYn/OthCORHbyRXqMkTZ6YE2He0k/2mc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/opsdroid-get-image-size/default.nix b/nixpkgs/pkgs/development/python-modules/opsdroid-get-image-size/default.nix
index edd09d2750e2..777788eeb48d 100644
--- a/nixpkgs/pkgs/development/python-modules/opsdroid-get-image-size/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opsdroid-get-image-size/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Get image width and height given a file path using minimal dependencies";
+    mainProgram = "get-image-size";
     license = licenses.mit;
     homepage = "https://github.com/opsdroid/image_size";
     maintainers = with maintainers; [ globin ];
diff --git a/nixpkgs/pkgs/development/python-modules/optax/default.nix b/nixpkgs/pkgs/development/python-modules/optax/default.nix
index b693afc4771c..dd36a90864f2 100644
--- a/nixpkgs/pkgs/development/python-modules/optax/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/optax/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "optax";
-  version = "0.1.7";
+  version = "0.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "deepmind";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-zSMJxagPe2rkhrawJ+TWXUzk6V58IY6MhWmEqLVtOoA=";
+    hash = "sha256-vimsVZV5Z11euLxsu998pMQZ0hG3xl96D3h9iONtl/E=";
   };
 
   outputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/optimum/default.nix b/nixpkgs/pkgs/development/python-modules/optimum/default.nix
index 7b6be6027a6e..d30873b91537 100644
--- a/nixpkgs/pkgs/development/python-modules/optimum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/optimum/default.nix
@@ -107,6 +107,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Accelerate training and inference of 🤗 Transformers and 🤗 Diffusers with easy to use hardware optimization tools";
+    mainProgram = "optimum-cli";
     homepage = "https://github.com/huggingface/optimum";
     changelog = "https://github.com/huggingface/optimum/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/optuna/default.nix b/nixpkgs/pkgs/development/python-modules/optuna/default.nix
index 39b1455b76ba..dd423b87a226 100644
--- a/nixpkgs/pkgs/development/python-modules/optuna/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/optuna/default.nix
@@ -43,8 +43,8 @@
 
 buildPythonPackage rec {
   pname = "optuna";
-  version = "3.5.0";
-  format = "pyproject";
+  version = "3.6.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -52,7 +52,7 @@ buildPythonPackage rec {
     owner = "optuna";
     repo = "optuna";
     rev = "refs/tags/v${version}";
-    hash = "sha256-lNurMkZZKpKXXQoqhuRUv8LCbdSi1ryj3kYYioYZPF0=";
+    hash = "sha256-KYSefIVGBUsN+A7nOWPBJyD4a+Wa+pO9WLyTpg8Cuy4=";
   };
 
   nativeBuildInputs = [
@@ -124,6 +124,8 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # require unpackaged kaleido and building it is a bit difficult
     "tests/visualization_tests"
+    # ImportError: cannot import name 'mock_s3' from 'moto'
+    "tests/artifacts_tests/test_boto3.py"
   ];
 
   pythonImportsCheck = [
@@ -133,8 +135,9 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A hyperparameter optimization framework";
     homepage = "https://optuna.org/";
-    changelog = "https://github.com/optuna/optuna/releases/tag/${src.rev}";
+    changelog = "https://github.com/optuna/optuna/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ natsukium ];
+    mainProgram = "optuna";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/oracledb/default.nix b/nixpkgs/pkgs/development/python-modules/oracledb/default.nix
index 33dc53175f58..2fe7db175ff8 100644
--- a/nixpkgs/pkgs/development/python-modules/oracledb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oracledb/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "oracledb";
-  version = "2.0.1";
+  version = "2.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wSI1qe7xIwOBhOV/O5sUXhSbImVOgkICTPToHNiQ9SM=";
+    hash = "sha256-HJpEjJhD2zPxC3d9aSD7k5XqsLD9wX8WIPrHw+7NtXo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/orange-canvas-core/default.nix b/nixpkgs/pkgs/development/python-modules/orange-canvas-core/default.nix
index 37683a999488..592aa2afa509 100644
--- a/nixpkgs/pkgs/development/python-modules/orange-canvas-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/orange-canvas-core/default.nix
@@ -18,12 +18,12 @@
 
 buildPythonPackage rec {
   pname = "orange-canvas-core";
-  version = "0.1.35";
+  version = "0.2.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-xLCwjeNDx9RqxlNkIWMo0Pcrg7akGuu4Rv9oRDgOK18=";
+    hash = "sha256-KMEFZkAZkDhuDPpAts+u825p5pFJZbyrsMW/S1AArp4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/orange-widget-base/default.nix b/nixpkgs/pkgs/development/python-modules/orange-widget-base/default.nix
index 3a1d5cd6e893..95dadbb04d79 100644
--- a/nixpkgs/pkgs/development/python-modules/orange-widget-base/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/orange-widget-base/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "orange-widget-base";
-  version = "4.22.0";
+  version = "4.23.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nV2aBPZzn7K+QECtCVoLLh5smG31zE2G9jFTKlxh9qM=";
+    hash = "sha256-mz+BcZEdg1p9V0ewYRrw3jKBWLMbL9RR6o4hUEUx9DA=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/orange3/default.nix b/nixpkgs/pkgs/development/python-modules/orange3/default.nix
index fe7f77554182..1c4531254ae8 100644
--- a/nixpkgs/pkgs/development/python-modules/orange3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/orange3/default.nix
@@ -4,7 +4,10 @@
 , buildPythonPackage
 , chardet
 , copyDesktopItems
+, pythonRelaxDepsHook
 , cython
+, catboost
+, xgboost
 , fetchFromGitHub
 , fetchurl
 , httpx
@@ -45,7 +48,7 @@ let
   self = buildPythonPackage rec {
     pname = "orange3";
     version = "3.36.2";
-    format = "setuptools";
+    pyproject = true;
 
     disabled = pythonOlder "3.7";
 
@@ -58,15 +61,17 @@ let
 
     postPatch = ''
       substituteInPlace pyproject.toml \
-        --replace "setuptools>=41.0.0,<50.0" "setuptools"
-      sed -i 's;\(scikit-learn\)[^$]*;\1;g' requirements-core.txt
-      sed -i 's;pyqtgraph[^$]*;;g' requirements-gui.txt # TODO: remove after bump with a version greater than 0.13.1
+          --replace-fail 'cython>=3.0' 'cython'
+
+      # disable update checking
+      echo -e "def check_for_updates():\n\tpass" >> Orange/canvas/__main__.py
     '';
 
     nativeBuildInputs = [
       copyDesktopItems
-      cython
+      pythonRelaxDepsHook
       oldest-supported-numpy
+      cython
       qt5.wrapQtAppsHook
       recommonmark
       setuptools
@@ -76,13 +81,18 @@ let
 
     enableParallelBuilding = true;
 
+    pythonRelaxDeps = [ "scikit-learn" ];
+
     propagatedBuildInputs = [
       numpy
       scipy
       chardet
+      catboost
+      xgboost
       openpyxl
       opentsne
       qtconsole
+      setuptools
       bottleneck
       matplotlib
       joblib
@@ -107,6 +117,9 @@ let
     # FIXME: ImportError: cannot import name '_variable' from partially initialized module 'Orange.data' (most likely due to a circular import) (/build/source/Orange/data/__init__.py)
     doCheck = false;
 
+    # FIXME: pythonRelaxDeps is not relaxing the scikit-learn version constraint, had to disable this
+    dontCheckRuntimeDeps = true;
+
     pythonImportsCheck = [ "Orange" "Orange.data._variable" ];
 
     desktopItems = [
diff --git a/nixpkgs/pkgs/development/python-modules/oras/default.nix b/nixpkgs/pkgs/development/python-modules/oras/default.nix
index c43a92524e01..b1d0c07b0c3c 100644
--- a/nixpkgs/pkgs/development/python-modules/oras/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oras/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "oras";
-  version = "0.1.27";
+  version = "0.1.28";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "oras-project";
     repo = "oras-py";
     rev = "refs/tags/${version}";
-    hash = "sha256-T2zuflew91UsEjhPKPjNxPBN+C//S1vWvXKVT602EVI=";
+    hash = "sha256-yka4TypKqGczW+NugmCGa8PgtaSJeaQ4sPphPsIPLow=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/orbax-checkpoint/default.nix b/nixpkgs/pkgs/development/python-modules/orbax-checkpoint/default.nix
index 0f9d467335ce..c1787fe86747 100644
--- a/nixpkgs/pkgs/development/python-modules/orbax-checkpoint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/orbax-checkpoint/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "orbax-checkpoint";
-  version = "0.5.3";
+  version = "0.5.5";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "orbax_checkpoint";
     inherit version;
-    hash = "sha256-FXKQTLv+hROSfg2A+AtzDg7y9oAzLTwoENhENTKTi0U=";
+    hash = "sha256-zry5byLxFzah+e52x4yIi6roU3Jox/9mY62cujB2xlU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/orgparse/default.nix b/nixpkgs/pkgs/development/python-modules/orgparse/default.nix
new file mode 100644
index 000000000000..67988d5529ff
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/orgparse/default.nix
@@ -0,0 +1,22 @@
+{ lib, python3Packages, fetchPypi }:
+
+python3Packages.buildPythonPackage rec {
+  pname = "orgparse";
+  version = "0.4.20231004";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-pOOK6tq/mYiw9npmrNCCedGCILy8QioSkGDCiQu6kaA=";
+  };
+
+  nativeBuildInputs = [ python3Packages.setuptools-scm ];
+
+  pyproject = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/karlicoss/orgparse";
+    description = "orgparse - Emacs org-mode parser in Python";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ twitchy0 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/osc-diagram/default.nix b/nixpkgs/pkgs/development/python-modules/osc-diagram/default.nix
index 6f9b9b68b468..f2802ed08e76 100644
--- a/nixpkgs/pkgs/development/python-modules/osc-diagram/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/osc-diagram/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Build Outscale cloud diagrams";
+    mainProgram = "osc-diagram";
     homepage = "https://github.com/outscale-mgo/osc-diagram";
     license = licenses.free;
     maintainers = with maintainers; [ nicolas-goudry ];
diff --git a/nixpkgs/pkgs/development/python-modules/osc/default.nix b/nixpkgs/pkgs/development/python-modules/osc/default.nix
index b2e50a316a37..a51352785f53 100644
--- a/nixpkgs/pkgs/development/python-modules/osc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/osc/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
     broken = stdenv.isDarwin;
     homepage = "https://github.com/openSUSE/osc";
     description = "opensuse-commander with svn like handling";
+    mainProgram = "osc";
     maintainers = [ maintainers.peti ];
     license = licenses.gpl2;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/oscpy/default.nix b/nixpkgs/pkgs/development/python-modules/oscpy/default.nix
index a783889e38ab..9ccbedb18060 100644
--- a/nixpkgs/pkgs/development/python-modules/oscpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oscpy/default.nix
@@ -27,6 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A modern implementation of OSC for python2/3";
+    mainProgram = "oscli";
     license = licenses.mit;
     homepage = "https://github.com/kivy/oscpy";
     maintainers = [ maintainers.yurkobb ];
diff --git a/nixpkgs/pkgs/development/python-modules/oslo-concurrency/default.nix b/nixpkgs/pkgs/development/python-modules/oslo-concurrency/default.nix
index a42e9950066c..13fbdbcaac64 100644
--- a/nixpkgs/pkgs/development/python-modules/oslo-concurrency/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oslo-concurrency/default.nix
@@ -72,6 +72,7 @@ buildPythonPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Oslo Concurrency library";
+    mainProgram = "lockutils-wrapper";
     homepage = "https://github.com/openstack/oslo.concurrency";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/nixpkgs/pkgs/development/python-modules/oslo-config/default.nix b/nixpkgs/pkgs/development/python-modules/oslo-config/default.nix
index 11384932218d..f73090cf812a 100644
--- a/nixpkgs/pkgs/development/python-modules/oslo-config/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oslo-config/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "oslo-config";
-  version = "9.2.0";
+  version = "9.4.0";
   format = "setuptools";
 
   src = fetchPypi {
     pname = "oslo.config";
     inherit version;
-    hash = "sha256-/+sBymWmA9VSWQXxqIozGb4Jzixqw3bEMSquwoMJWHg=";
+    hash = "sha256-NbEaZhtgjttQMF2tkeTjCBnZDveUt9fbpb2LLvLrjA0=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/oslo-i18n/default.nix b/nixpkgs/pkgs/development/python-modules/oslo-i18n/default.nix
index 99e22ea54993..814c7dfc0dc1 100644
--- a/nixpkgs/pkgs/development/python-modules/oslo-i18n/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oslo-i18n/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "oslo-i18n";
-  version = "6.2.0";
+  version = "6.3.0";
   pyproject = true;
 
   src = fetchPypi {
     pname = "oslo.i18n";
     inherit version;
-    hash = "sha256-cPikzphxKRvGCdB+MeblAyZmVWmS/xrlPnjy7SpavoI=";
+    hash = "sha256-ZKJR7e+L8bsdTm9403fhSdTxXBqSRd538XIBbaYmdEQ=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/oslo-log/default.nix b/nixpkgs/pkgs/development/python-modules/oslo-log/default.nix
index d8904b0cdefc..ab1084750996 100644
--- a/nixpkgs/pkgs/development/python-modules/oslo-log/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oslo-log/default.nix
@@ -58,6 +58,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "oslo.log library";
+    mainProgram = "convert-json";
     homepage = "https://github.com/openstack/oslo.log";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/nixpkgs/pkgs/development/python-modules/oslo-utils/default.nix b/nixpkgs/pkgs/development/python-modules/oslo-utils/default.nix
index 196228ce37ce..503143f75d31 100644
--- a/nixpkgs/pkgs/development/python-modules/oslo-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oslo-utils/default.nix
@@ -25,13 +25,13 @@
 
 buildPythonPackage rec {
   pname = "oslo-utils";
-  version = "6.3.0";
+  version = "7.1.0";
   pyproject = true;
 
   src = fetchPypi {
     pname = "oslo.utils";
     inherit version;
-    hash = "sha256-dY2UWyutW+qBq+2ArTP/6h0deTNIrF61s4Zrp0WxHVU=";
+    hash = "sha256-XkLzOU0fH5duiZSsSgkYlm0vfq98dzgN1hLEpBSN2Y4=";
   };
 
   postPatch = ''
@@ -67,12 +67,18 @@ buildPythonPackage rec {
     pyyaml
   ];
 
-  checkPhase = ''
+  # disabled tests:
+  # https://bugs.launchpad.net/oslo.utils/+bug/2054134
+  # netaddr default behaviour changed to be stricter
+  checkPhase =''
     echo "nameserver 127.0.0.1" > resolv.conf
     export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols:/etc/resolv.conf=$(realpath resolv.conf)
     export LD_PRELOAD=${libredirect}/lib/libredirect.so
 
-    stestr run
+    stestr run -e <(echo "
+      oslo_utils.tests.test_netutils.NetworkUtilsTest.test_is_valid_ip
+      oslo_utils.tests.test_netutils.NetworkUtilsTest.test_is_valid_ipv4
+    ")
   '';
 
   pythonImportsCheck = [ "oslo_utils" ];
diff --git a/nixpkgs/pkgs/development/python-modules/oslotest/default.nix b/nixpkgs/pkgs/development/python-modules/oslotest/default.nix
index 7d89f5778c73..2f400b0312a1 100644
--- a/nixpkgs/pkgs/development/python-modules/oslotest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oslotest/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "oslotest";
-  version = "4.5.0";
+  version = "5.0.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "360ad2c41ba3ad6f059c7c6e7291450d082c2e5dbb0012e839a829978053dfe6";
+    sha256 = "sha256-97skDGy+8voLq7lRP/PafQ8ozDja+Y70Oy6ISDZ/vSA=";
   };
 
   nativeBuildInputs = [ pbr ];
diff --git a/nixpkgs/pkgs/development/python-modules/osqp/default.nix b/nixpkgs/pkgs/development/python-modules/osqp/default.nix
index f58a3fec14c8..38004632402b 100644
--- a/nixpkgs/pkgs/development/python-modules/osqp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/osqp/default.nix
@@ -8,6 +8,7 @@
 , oldest-supported-numpy
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 , qdldl
 , scipy
 , setuptools-scm
@@ -15,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "osqp";
-  version = "0.6.3";
+  version = "0.6.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-A+Rg5oPsLOD4OTU936PEyP+lCauM9qKyr7tYb6RT4YA=";
+    hash = "sha256-soEK7nviNzrdi2wL5a2ZuBAoh3SrykIXUcsDLWpa7e8=";
   };
 
   dontUseCmakeConfigure = true;
@@ -31,6 +32,11 @@ buildPythonPackage rec {
     cmake
     oldest-supported-numpy
     setuptools-scm
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "scipy"
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/overrides/default.nix b/nixpkgs/pkgs/development/python-modules/overrides/default.nix
index 220f7dcbed14..93dea37791a5 100644
--- a/nixpkgs/pkgs/development/python-modules/overrides/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/overrides/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "overrides";
-  version = "7.6.0";
+  version = "7.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "mkorpela";
     repo = "overrides";
     rev = "refs/tags/${version}";
-    hash = "sha256-UdahbhmRfuxKTxb6Afjny/hMgXX1UuDUrIcLjZ0Jtak=";
+    hash = "sha256-gQDw5/RpAFNYWFOuxIAArPkCOoBYWUnsDtv1FEFteHo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ovmfvartool/default.nix b/nixpkgs/pkgs/development/python-modules/ovmfvartool/default.nix
index 8c5f43565617..fd15a3a12a4f 100644
--- a/nixpkgs/pkgs/development/python-modules/ovmfvartool/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ovmfvartool/default.nix
@@ -21,6 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Parse and generate OVMF_VARS.fd from Yaml";
+    mainProgram = "ovmfvartool";
     homepage = "https://github.com/hlandau/ovmfvartool";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ baloo raitobezarius ];
diff --git a/nixpkgs/pkgs/development/python-modules/owslib/default.nix b/nixpkgs/pkgs/development/python-modules/owslib/default.nix
index 5e5e5a07b9c5..8bf7b8bcbe85 100644
--- a/nixpkgs/pkgs/development/python-modules/owslib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/owslib/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "owslib";
-  version = "0.29.3";
+  version = "0.30.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "geopython";
     repo = "OWSLib";
     rev = "refs/tags/${version}";
-    hash = "sha256-yAJXknSsGXcerzaOVSrFO4j5E6B/4/0JfoSxZ+Szmws=";
+    hash = "sha256-miKAgZBiqZ6+0qDvlf8+VZ6omH5hlImO0E7AVK7FuD0=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/packageurl-python/default.nix b/nixpkgs/pkgs/development/python-modules/packageurl-python/default.nix
index a5bed4644e5f..430cd58024dd 100644
--- a/nixpkgs/pkgs/development/python-modules/packageurl-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/packageurl-python/default.nix
@@ -3,20 +3,25 @@
 , fetchPypi
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "packageurl-python";
-  version = "0.13.4";
-  format = "setuptools";
+  version = "0.15.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-brXplQCcxzOHCV4LUHq2XfUTV9Jd3F/OPTVFrW3Lvug=";
+    hash = "sha256-8hmyzmNIGFonvWpy5v3J+YTmyfoVfv+ny5PjQcSc3MI=";
   };
 
+  build-system = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/pandas/default.nix b/nixpkgs/pkgs/development/python-modules/pandas/default.nix
index 30d35747ee62..6cb46d6777c9 100644
--- a/nixpkgs/pkgs/development/python-modules/pandas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pandas/default.nix
@@ -64,7 +64,7 @@
 
 let pandas = buildPythonPackage rec {
   pname = "pandas";
-  version = "2.2.0";
+  version = "2.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -73,7 +73,7 @@ let pandas = buildPythonPackage rec {
     owner = "pandas-dev";
     repo = "pandas";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PMrqniyyFYRnAeFBruPrTrGKzX2dRxMRct8AHeghstA=";
+    hash = "sha256-eyVUIYG0KCAEJbh/qZiEjGpdXq7A+2Lab+5bp+7t4cw=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pandoc-xnos/default.nix b/nixpkgs/pkgs/development/python-modules/pandoc-xnos/default.nix
index ad2aa6dd43b6..8d5a4694b1ac 100644
--- a/nixpkgs/pkgs/development/python-modules/pandoc-xnos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pandoc-xnos/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Pandoc filter suite providing facilities for cross-referencing in markdown documents";
+    mainProgram = "pandoc-xnos";
     homepage = "https://github.com/tomduck/pandoc-xnos";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ppenguin ];
diff --git a/nixpkgs/pkgs/development/python-modules/pandocfilters/default.nix b/nixpkgs/pkgs/development/python-modules/pandocfilters/default.nix
index 8ddaa9d78a09..b9310fdbae84 100644
--- a/nixpkgs/pkgs/development/python-modules/pandocfilters/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pandocfilters/default.nix
@@ -4,13 +4,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.5.0";
+  version = "1.5.1";
   format = "setuptools";
   pname = "pandocfilters";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38";
+    sha256 = "sha256-ACtKVV7k68A/i2Ywfih/pJLkp3tOoU0/k0MoKXu0k54=";
   };
 
   # No tests available
diff --git a/nixpkgs/pkgs/development/python-modules/panel/default.nix b/nixpkgs/pkgs/development/python-modules/panel/default.nix
index dc7892df3228..4a4b93035d73 100644
--- a/nixpkgs/pkgs/development/python-modules/panel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/panel/default.nix
@@ -58,6 +58,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A high level dashboarding library for python visualization libraries";
+    mainProgram = "panel";
     homepage = "https://github.com/holoviz/panel";
     changelog = "https://github.com/holoviz/panel/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/papermill/default.nix b/nixpkgs/pkgs/development/python-modules/papermill/default.nix
index 28f5c9b6f9e1..6124b14b4b93 100644
--- a/nixpkgs/pkgs/development/python-modules/papermill/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/papermill/default.nix
@@ -91,11 +91,20 @@ buildPythonPackage rec {
     "papermill"
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   disabledTests = lib.optionals stdenv.isDarwin [
     # might fail due to the sandbox
     "test_end2end_autosave_slow_notebook"
   ];
 
+  disabledTestPaths = [
+    # ImportError: cannot import name 'mock_s3' from 'moto'
+    "papermill/tests/test_s3.py"
+  ];
+
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/papis/default.nix b/nixpkgs/pkgs/development/python-modules/papis/default.nix
index 34980fb0c1ad..8617c4ac7365 100644
--- a/nixpkgs/pkgs/development/python-modules/papis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/papis/default.nix
@@ -113,6 +113,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Powerful command-line document and bibliography manager";
+    mainProgram = "papis";
     homepage = "https://papis.readthedocs.io/";
     changelog = "https://github.com/papis/papis/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/param/default.nix b/nixpkgs/pkgs/development/python-modules/param/default.nix
index 638a3182ca1b..b80f6199ad56 100644
--- a/nixpkgs/pkgs/development/python-modules/param/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/param/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "param";
-  version = "2.0.2";
+  version = "2.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "holoviz";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-kVuab6+l4KOtSvj6aI9zsQJ91tfCDJkHrSTcRL9SViY=";
+    hash = "sha256-9264KfRDuHsvDyIpGKs2VTPcTZOZIFLKe7xuplkfzf4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/paramiko/default.nix b/nixpkgs/pkgs/development/python-modules/paramiko/default.nix
index 278bb0583e35..2b3b6ff2507e 100644
--- a/nixpkgs/pkgs/development/python-modules/paramiko/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/paramiko/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "paramiko";
-  version = "3.3.1";
+  version = "3.4.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ajd3qWGshtvvN1xfW41QAUoaltD9fwVKQ7yIATSw/3c=";
+    hash = "sha256-qsCPJqMdxN/9koIVJ9FoLZnVL572hRloEUqHKPPCdNM=";
   };
 
   patches = [
@@ -52,6 +52,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   disabledTestPaths = [
     # disable tests that require pytest-relaxed, which is broken
     "tests/test_client.py"
diff --git a/nixpkgs/pkgs/development/python-modules/parfive/default.nix b/nixpkgs/pkgs/development/python-modules/parfive/default.nix
index c30dc40891bd..b6c98c9a2e6c 100644
--- a/nixpkgs/pkgs/development/python-modules/parfive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parfive/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A HTTP and FTP parallel file downloader";
+    mainProgram = "parfive";
     homepage = "https://parfive.readthedocs.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/parquet/default.nix b/nixpkgs/pkgs/development/python-modules/parquet/default.nix
index 0e6cd2222f73..85eb41fa51d4 100644
--- a/nixpkgs/pkgs/development/python-modules/parquet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parquet/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python implementation of the parquet columnar file format";
+    mainProgram = "parquet";
     homepage = "https://github.com/jcrobak/parquet-python";
     license = licenses.bsd2;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/parse/default.nix b/nixpkgs/pkgs/development/python-modules/parse/default.nix
index 9c6272e94a5c..b1aa2baedfac 100644
--- a/nixpkgs/pkgs/development/python-modules/parse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parse/default.nix
@@ -5,14 +5,14 @@
 }:
 buildPythonPackage rec {
   pname = "parse";
-  version = "1.20.0";
+  version = "1.20.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "r1chardj0n3s";
     repo = "parse";
     rev = "refs/tags/${version}";
-    hash = "sha256-InYOgqTvMvQ/HWIa0WrJ4M2LL4LL87KwBst8yYnt3dk=";
+    hash = "sha256-FAAs39peR+Ibv0RKLrcnY2w0Z2EjVYyZ8U4HcbjTiew=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/parsedmarc/default.nix b/nixpkgs/pkgs/development/python-modules/parsedmarc/default.nix
index ac859c0c825f..a5c59338fcdc 100644
--- a/nixpkgs/pkgs/development/python-modules/parsedmarc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parsedmarc/default.nix
@@ -40,14 +40,14 @@ let
 in
 buildPythonPackage rec {
   pname = "parsedmarc";
-  version = "8.6.4";
+  version = "8.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ibxSp1M85WngQKdjlRC4JvLxn0rEn9oVkid/V4iD6zY=";
+    hash = "sha256-tK/cxOw50awcDAGRDTQ+Nxb9aJl2+zLZHuJq88xNmXM=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/parsley/default.nix b/nixpkgs/pkgs/development/python-modules/parsley/default.nix
index 17e05b6027f2..f8972ac33805 100644
--- a/nixpkgs/pkgs/development/python-modules/parsley/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parsley/default.nix
@@ -4,10 +4,11 @@
 }:
 
 buildPythonPackage rec {
-  pname = "Parsley";
+  pname = "parsley";
   version = "1.3";
   src = fetchPypi {
-    inherit pname version;
+    pname = "Parsley";
+    inherit version;
     sha256 = "0hcd41bl07a8sx7nmx12p16xprnblc4phxkawwmmy78n8y6jfi4l";
   };
   # Tests fail although the package works just fine.  Unfortunately
diff --git a/nixpkgs/pkgs/development/python-modules/paste/default.nix b/nixpkgs/pkgs/development/python-modules/paste/default.nix
index 3a8ec63f3e9a..9248eca81255 100644
--- a/nixpkgs/pkgs/development/python-modules/paste/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/paste/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "paste";
-  version = "3.7.1";
+  version = "3.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "cdent";
     repo = "paste";
     rev = "refs/tags/${version}";
-    hash = "sha256-xp8FU4MR79/leBSJvSk8J2GdWW32AW2I5i3Y6DsRPLw=";
+    hash = "sha256-T9VG91Y8hap1nt3FkuCGsv8nglWNlRajvsvljXexH3Y=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pastescript/default.nix b/nixpkgs/pkgs/development/python-modules/pastescript/default.nix
index 70094b5aaafb..3d42c40c1230 100644
--- a/nixpkgs/pkgs/development/python-modules/pastescript/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pastescript/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pastescript";
-  version = "3.4.0";
+  version = "3.5.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PasteScript";
     inherit version;
-    hash = "sha256-k0jvBlr/Is8ViMEt+wIMx1HGSC4hb4o8dRL6QKQ/kNw=";
+    hash = "sha256-zRtgbNReloT/20SL1tmq70IN0u/n5rYsbTc6Rv9DyDU=";
   };
 
   propagatedBuildInputs = [
@@ -53,6 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A pluggable command-line frontend, including commands to setup package file layouts";
+    mainProgram = "paster";
     homepage = "https://github.com/cdent/pastescript/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/path/default.nix b/nixpkgs/pkgs/development/python-modules/path/default.nix
index ee0329c4050d..e88a7efd60f5 100644
--- a/nixpkgs/pkgs/development/python-modules/path/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/path/default.nix
@@ -1,30 +1,32 @@
 { lib
-, appdirs
 , buildPythonPackage
 , fetchPypi
-, packaging
+, more-itertools
 , pytestCheckHook
 , pythonOlder
+, setuptools
 , setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "path";
-  version = "16.7.1";
-  format = "pyproject";
+  version = "16.10.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-K0d/WIcDPzy+oc/YVT7mpqSY6yVAoZ9KoIKCKq3Oowo=";
+    hash = "sha256-sysit2/oEKje1tE2JozItmmK58R8KblKnqEmI/MFHkY=";
   };
 
   nativeBuildInputs = [
+    setuptools
     setuptools-scm
   ];
 
   nativeCheckInputs = [
+    more-itertools
     pytestCheckHook
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pathlib-abc/default.nix b/nixpkgs/pkgs/development/python-modules/pathlib-abc/default.nix
new file mode 100644
index 000000000000..891b6d348561
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pathlib-abc/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, hatchling
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pathlib-abc";
+  version = "0.1.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    pname = "pathlib_abc";
+    inherit version;
+    hash = "sha256-CE573ZGbD3d0kUqeZM2GobOYYPgfeB3XJCWGMfKRWr4=";
+  };
+
+  build-system = [
+    hatchling
+  ];
+
+  pythonImportsCheck = [
+    "pathlib_abc"
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Python base classes for rich path objects";
+    homepage = "https://github.com/barneygale/pathlib-abc";
+    changelog = "https://github.com/barneygale/pathlib-abc/blob/${version}/CHANGES.rst";
+    license = licenses.psfl;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pathspec/default.nix b/nixpkgs/pkgs/development/python-modules/pathspec/default.nix
index 5b97cea17b79..dc3c854cfe72 100644
--- a/nixpkgs/pkgs/development/python-modules/pathspec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pathspec/default.nix
@@ -14,12 +14,12 @@
 
 buildPythonPackage rec {
   pname = "pathspec";
-  version = "0.11.2";
+  version = "0.12.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4NjQrC8S2mGVbrIwa2n5RptC9N6w88tu1HuczpmWztM=";
+    hash = "sha256-pILVFQOhqzOxxnpsOBOiaVPb3HHDHayu+ag4xOKfVxI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pathy/default.nix b/nixpkgs/pkgs/development/python-modules/pathy/default.nix
index c5fc0852b868..559a3d71ecfc 100644
--- a/nixpkgs/pkgs/development/python-modules/pathy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pathy/default.nix
@@ -1,29 +1,42 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
-, google-cloud-storage
 , mock
+, pathlib-abc
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
+, setuptools
 , smart-open
 , typer
 }:
 
 buildPythonPackage rec {
   pname = "pathy";
-  version = "0.10.3";
-  format = "setuptools";
+  version = "0.11.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tFGF0G+bGMbTNG06q4gauWh0VT9mHuiMzS5gJG4QPCI=";
+    hash = "sha256-uz0OawuL92709jxxkeluCvLtZcj9tfoXSI+ch55jcG0=";
   };
 
-  propagatedBuildInputs = [
-    google-cloud-storage
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "smart-open"
+  ];
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    pathlib-abc
     smart-open
     typer
   ];
@@ -46,6 +59,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Path interface for local and cloud bucket storage";
+    mainProgram = "pathy";
     homepage = "https://github.com/justindujardin/pathy";
     license = licenses.asl20;
     maintainers = with maintainers; [ melling ];
diff --git a/nixpkgs/pkgs/development/python-modules/patiencediff/default.nix b/nixpkgs/pkgs/development/python-modules/patiencediff/default.nix
index 00d551885677..d75854a5cfeb 100644
--- a/nixpkgs/pkgs/development/python-modules/patiencediff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/patiencediff/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "C implementation of patiencediff algorithm for Python";
+    mainProgram = "patiencediff";
     homepage = "https://github.com/breezy-team/patiencediff";
     changelog = "https://github.com/breezy-team/patiencediff/releases/tag/v${version}";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/patool/default.nix b/nixpkgs/pkgs/development/python-modules/patool/default.nix
index ab4ef91d07a0..a81b25371870 100644
--- a/nixpkgs/pkgs/development/python-modules/patool/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/patool/default.nix
@@ -66,6 +66,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "portable archive file manager";
+    mainProgram = "patool";
     homepage = "https://wummel.github.io/patool/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ marius851000 ];
diff --git a/nixpkgs/pkgs/development/python-modules/patsy/default.nix b/nixpkgs/pkgs/development/python-modules/patsy/default.nix
index ae4022f86002..48797d05142b 100644
--- a/nixpkgs/pkgs/development/python-modules/patsy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/patsy/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "patsy";
-  version = "0.5.4";
+  version = "0.5.6";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-favFJ1lzCN4OjxiPqiCvfgaom9qjBnVt/HeDaT6havQ=";
+    hash = "sha256-lcbUenIiU1+Ev/f2PXMD8uKXdHpZjbic9cZ/DAx9LNs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/paver/default.nix b/nixpkgs/pkgs/development/python-modules/paver/default.nix
index d46d6eaa2934..525d28d34232 100644
--- a/nixpkgs/pkgs/development/python-modules/paver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/paver/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python-based build/distribution/deployment scripting tool";
+    mainProgram = "paver";
     homepage = "https://github.com/paver/paver";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lovek323 ];
diff --git a/nixpkgs/pkgs/development/python-modules/paypalrestsdk/default.nix b/nixpkgs/pkgs/development/python-modules/paypalrestsdk/default.nix
new file mode 100644
index 000000000000..ed6e60a19044
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/paypalrestsdk/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, pyopenssl
+, pythonOlder
+, requests
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "paypalrestsdk";
+  version = "1.13.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-2sI2SSqawSYKdgAUouVqs4sJ2BQylbXollRTWbYf7dY=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    pyopenssl
+    requests
+    six
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "paypalrestsdk"
+  ];
+
+  meta = with lib; {
+    description = "Python APIs to create, process and manage payment";
+    homepage = "https://github.com/paypal/PayPal-Python-SDK";
+    changelog = "https://github.com/paypal/PayPal-Python-SDK/blob/master/CHANGELOG.md";
+    license = {
+      fullName = "PayPal SDK License";
+      url = "https://github.com/paypal/PayPal-Python-SDK/blob/master/LICENSE";
+    };
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pbr/default.nix b/nixpkgs/pkgs/development/python-modules/pbr/default.nix
index dbf6afe6f330..7889471ebf29 100644
--- a/nixpkgs/pkgs/development/python-modules/pbr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pbr/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python Build Reasonableness";
+    mainProgram = "pbr";
     homepage = "https://github.com/openstack/pbr";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/nixpkgs/pkgs/development/python-modules/pcbnew-transition/default.nix b/nixpkgs/pkgs/development/python-modules/pcbnew-transition/default.nix
index 2f42e00a0847..bf9c6ae6430f 100644
--- a/nixpkgs/pkgs/development/python-modules/pcbnew-transition/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pcbnew-transition/default.nix
@@ -7,14 +7,14 @@
 }:
 buildPythonPackage rec {
   pname = "pcbnewTransition";
-  version = "0.4.0";
+  version = "0.4.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-M4r6IeARVZq+KO7Q0tbHFD/BMeLN6vmuxfnstmMPgdg=";
+    hash = "sha256-+mRExuDuEYxSSlrkEjSyPK+RRJZo+YJH7WnUVfjblRQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pcodedmp/default.nix b/nixpkgs/pkgs/development/python-modules/pcodedmp/default.nix
index c87cebe0f23b..9c9ae3f6f7cb 100644
--- a/nixpkgs/pkgs/development/python-modules/pcodedmp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pcodedmp/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python VBA p-code disassembler";
+    mainProgram = "pcodedmp";
     homepage = "https://github.com/bontchev/pcodedmp";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pcpp/default.nix b/nixpkgs/pkgs/development/python-modules/pcpp/default.nix
index e57934f4daf9..683c11332740 100644
--- a/nixpkgs/pkgs/development/python-modules/pcpp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pcpp/default.nix
@@ -19,6 +19,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/ned14/pcpp";
     description = "A C99 preprocessor written in pure Python";
+    mainProgram = "pcpp";
     license = licenses.bsd0;
     maintainers = with maintainers; [ rakesh4g ];
  };
diff --git a/nixpkgs/pkgs/development/python-modules/pdf2docx/default.nix b/nixpkgs/pkgs/development/python-modules/pdf2docx/default.nix
index 0b460879e726..88372271aa52 100644
--- a/nixpkgs/pkgs/development/python-modules/pdf2docx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pdf2docx/default.nix
@@ -16,7 +16,7 @@
 , python-docx
 }:
 let
-  version = "0.5.7";
+  version = "0.5.8";
 in
 buildPythonPackage {
   pname = "pdf2docx";
@@ -27,7 +27,7 @@ buildPythonPackage {
     owner = "dothinking";
     repo = "pdf2docx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GDftANn+ioaNR28VfRFDuFgdKoy7D4xiy0ezvWJ3zy0=";
+    hash = "sha256-tMITDm2NkxWS+H/hhd2LlaPbyuI86ZKaALqqHJqb8V0=";
   };
 
   nativeBuildInputs = [
@@ -68,6 +68,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Convert PDF to DOCX";
+    mainProgram = "pdf2docx";
     homepage = "https://github.com/dothinking/pdf2docx";
     changelog = "https://github.com/dothinking/pdf2docx/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/pdfplumber/default.nix b/nixpkgs/pkgs/development/python-modules/pdfplumber/default.nix
index 2138d7181978..80e937d4c48c 100644
--- a/nixpkgs/pkgs/development/python-modules/pdfplumber/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pdfplumber/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pdfplumber";
-  version = "0.10.3";
+  version = "0.11.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "jsvine";
     repo = "pdfplumber";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fd/4I6jjc0Wz2+XHGXAGg0Am3Dmw9R2ZX7nymIj/UnA=";
+    hash = "sha256-sjiCxE2WcvBASANCeookNn1n9M+mY0/8QGOCen+pzqM=";
   };
 
   postPatch = ''
@@ -71,6 +71,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Plumb a PDF for detailed information about each char, rectangle, line, et cetera — and easily extract text and tables";
+    mainProgram = "pdfplumber";
     homepage = "https://github.com/jsvine/pdfplumber";
     changelog = "https://github.com/jsvine/pdfplumber/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pdfx/default.nix b/nixpkgs/pkgs/development/python-modules/pdfx/default.nix
index 8f1049cc18e9..500db4812f2a 100644
--- a/nixpkgs/pkgs/development/python-modules/pdfx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pdfx/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Extract references (pdf, url, doi, arxiv) and metadata from a PDF";
+    mainProgram = "pdfx";
     license = licenses.asl20;
     maintainers = with maintainers; [ marsam ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pdoc/default.nix b/nixpkgs/pkgs/development/python-modules/pdoc/default.nix
index b87b76afdc04..d1356c9a9940 100644
--- a/nixpkgs/pkgs/development/python-modules/pdoc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pdoc/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
     changelog = "https://github.com/mitmproxy/pdoc/blob/${src.rev}/CHANGELOG.md";
     homepage = "https://pdoc.dev/";
     description = "API Documentation for Python Projects";
+    mainProgram = "pdoc";
     license = licenses.unlicense;
     maintainers = with maintainers; [ pbsds ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pebble/default.nix b/nixpkgs/pkgs/development/python-modules/pebble/default.nix
index 756c7c294690..b576c7d4c1fc 100644
--- a/nixpkgs/pkgs/development/python-modules/pebble/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pebble/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pebble";
-  version = "5.0.6";
+  version = "5.0.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Pebble";
     inherit version;
-    hash = "sha256-5/fs/QEHq3zsnzu0EahWxNfVUiAtTpqLA46aZK4x/Yw=";
+    hash = "sha256-J4TBR3ZvBjiM6nhAhLFL7JP9uqeTgw8ZgxVaozCipuQ=";
   };
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/peewee/default.nix b/nixpkgs/pkgs/development/python-modules/peewee/default.nix
index deeccfe69881..d839ad705ea7 100644
--- a/nixpkgs/pkgs/development/python-modules/peewee/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/peewee/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "peewee";
-  version = "3.17.0";
+  version = "3.17.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "coleifer";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-QbbwC55q/BjMGtm3fH8HPd0aETMzLAFwVYFvOS/4dqA=";
+    hash = "sha256-Gob2qBPPxAeIO/I7+9r4dBIxhvKnnZWD2nYcrMANM8U=";
   };
 
   buildInputs = [
@@ -57,6 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python ORM with support for various database implementation";
+    mainProgram = "pwiz.py";
     homepage = "http://peewee-orm.com";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/pelican/default.nix b/nixpkgs/pkgs/development/python-modules/pelican/default.nix
index 71682cd62c41..23e0ae1aff94 100644
--- a/nixpkgs/pkgs/development/python-modules/pelican/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pelican/default.nix
@@ -126,7 +126,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Static site generator that requires no database or server-side logic";
     homepage = "https://getpelican.com/";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ offline prikhi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pendulum/3.nix b/nixpkgs/pkgs/development/python-modules/pendulum/3.nix
deleted file mode 100644
index 78e9c675ea8d..000000000000
--- a/nixpkgs/pkgs/development/python-modules/pendulum/3.nix
+++ /dev/null
@@ -1,99 +0,0 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, isPyPy
-
-# build-system
-, poetry-core
-, rustPlatform
-
-# native dependencies
-, iconv
-
-# dependencies
-, backports-zoneinfo
-, importlib-resources
-, python-dateutil
-, time-machine
-, tzdata
-
-# tests
-, pytestCheckHook
-, pytz
-}:
-
-buildPythonPackage rec {
-  pname = "pendulum";
-  version = "3.0.0";
-  pyproject = true;
-
-  src = fetchFromGitHub {
-    owner = "sdispater";
-    repo = "pendulum";
-    rev = "refs/tags/${version}";
-    hash = "sha256-v0kp8dklvDeC7zdTDOpIbpuj13aGub+oCaYz2ytkEpI=";
-  };
-
-  postPatch = ''
-    substituteInPlace rust/Cargo.lock \
-      --replace "3.0.0-beta-1" "3.0.0"
-  '';
-
-  cargoRoot = "rust";
-  cargoDeps = rustPlatform.fetchCargoTarball {
-    inherit src;
-    sourceRoot = "source/rust";
-    name = "${pname}-${version}";
-    hash = "sha256-6fw0KgnPIMfdseWcunsGjvjVB+lJNoG3pLDqkORPJ0I=";
-    postPatch = ''
-      substituteInPlace Cargo.lock \
-        --replace "3.0.0-beta-1" "3.0.0"
-    '';
-  };
-
-  nativeBuildInputs = [
-    poetry-core
-    rustPlatform.maturinBuildHook
-    rustPlatform.cargoSetupHook
-  ];
-
-  buildInputs = lib.optionals stdenv.isDarwin [
-    iconv
-  ];
-
-  propagatedBuildInputs = [
-    python-dateutil
-    tzdata
-  ] ++ lib.optional (!isPyPy) [
-    time-machine
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-    importlib-resources
-  ];
-
-  pythonImportsCheck = [
-    "pendulum"
-  ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
-    pytz
-  ];
-
-  disabledTestPaths = [
-    "tests/benchmarks"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # PermissionError: [Errno 1] Operation not permitted: '/etc/localtime'
-    "tests/testing/test_time_travel.py"
-  ];
-
-  meta = with lib; {
-    description = "Python datetimes made easy";
-    homepage = "https://github.com/sdispater/pendulum";
-    changelog = "https://github.com/sdispater/pendulum/blob/${src.rev}/CHANGELOG.md";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/pendulum/default.nix b/nixpkgs/pkgs/development/python-modules/pendulum/default.nix
index 631494a1d9a3..78e9c675ea8d 100644
--- a/nixpkgs/pkgs/development/python-modules/pendulum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pendulum/default.nix
@@ -1,36 +1,99 @@
-{ lib, fetchPypi, buildPythonPackage, pythonOlder
-, python-dateutil
-, importlib-metadata
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, isPyPy
+
+# build-system
 , poetry-core
-, pytzdata
-, typing
+, rustPlatform
+
+# native dependencies
+, iconv
+
+# dependencies
+, backports-zoneinfo
+, importlib-resources
+, python-dateutil
+, time-machine
+, tzdata
+
+# tests
+, pytestCheckHook
+, pytz
 }:
 
 buildPythonPackage rec {
   pname = "pendulum";
-  version = "2.1.2";
-  format = "pyproject";
+  version = "3.0.0";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b06a0ca1bfe41c990bbf0c029f0b6501a7f2ec4e38bfec730712015e8860f207";
+  src = fetchFromGitHub {
+    owner = "sdispater";
+    repo = "pendulum";
+    rev = "refs/tags/${version}";
+    hash = "sha256-v0kp8dklvDeC7zdTDOpIbpuj13aGub+oCaYz2ytkEpI=";
   };
 
-  preBuild = ''
-    export HOME=$TMPDIR
+  postPatch = ''
+    substituteInPlace rust/Cargo.lock \
+      --replace "3.0.0-beta-1" "3.0.0"
   '';
 
-  build-system = [ poetry-core ];
-  dependencies = [ python-dateutil pytzdata ]
-  ++ lib.optional (pythonOlder "3.5") typing
-  ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+  cargoRoot = "rust";
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    sourceRoot = "source/rust";
+    name = "${pname}-${version}";
+    hash = "sha256-6fw0KgnPIMfdseWcunsGjvjVB+lJNoG3pLDqkORPJ0I=";
+    postPatch = ''
+      substituteInPlace Cargo.lock \
+        --replace "3.0.0-beta-1" "3.0.0"
+    '';
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+    rustPlatform.maturinBuildHook
+    rustPlatform.cargoSetupHook
+  ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    iconv
+  ];
+
+  propagatedBuildInputs = [
+    python-dateutil
+    tzdata
+  ] ++ lib.optional (!isPyPy) [
+    time-machine
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    backports-zoneinfo
+    importlib-resources
+  ];
+
+  pythonImportsCheck = [
+    "pendulum"
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytz
+  ];
 
-  # No tests
-  doCheck = false;
+  disabledTestPaths = [
+    "tests/benchmarks"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # PermissionError: [Errno 1] Operation not permitted: '/etc/localtime'
+    "tests/testing/test_time_travel.py"
+  ];
 
   meta = with lib; {
     description = "Python datetimes made easy";
     homepage = "https://github.com/sdispater/pendulum";
+    changelog = "https://github.com/sdispater/pendulum/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pep440/default.nix b/nixpkgs/pkgs/development/python-modules/pep440/default.nix
index 0faa3c324b37..e083bb622b87 100644
--- a/nixpkgs/pkgs/development/python-modules/pep440/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pep440/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to check whether versions number match PEP 440";
+    mainProgram = "pep440";
     homepage = "https://github.com/Carreau/pep440";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pep8/default.nix b/nixpkgs/pkgs/development/python-modules/pep8/default.nix
index 74bf420452b9..425ad42e787c 100644
--- a/nixpkgs/pkgs/development/python-modules/pep8/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pep8/default.nix
@@ -19,6 +19,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://pep8.readthedocs.org/";
     description = "Python style guide checker";
+    mainProgram = "pep8";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/percol/default.nix b/nixpkgs/pkgs/development/python-modules/percol/default.nix
index a1061d8310d4..2a58aa4f8678 100644
--- a/nixpkgs/pkgs/development/python-modules/percol/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/percol/default.nix
@@ -21,6 +21,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/mooz/percol";
     description = "Adds flavor of interactive filtering to the traditional pipe concept of shell";
+    mainProgram = "percol";
     license = licenses.mit;
     maintainers = with maintainers; [ koral ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/periodiq/default.nix b/nixpkgs/pkgs/development/python-modules/periodiq/default.nix
index 5ed6a028aa38..478168de30d0 100644
--- a/nixpkgs/pkgs/development/python-modules/periodiq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/periodiq/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Simple Scheduler for Dramatiq Task Queue";
+    mainProgram = "periodiq";
     homepage = "https://pypi.org/project/periodiq/";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ traxys ];
diff --git a/nixpkgs/pkgs/development/python-modules/persim/default.nix b/nixpkgs/pkgs/development/python-modules/persim/default.nix
index 869fb6146f2e..45114af407c4 100644
--- a/nixpkgs/pkgs/development/python-modules/persim/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/persim/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "persim";
-  version = "0.3.2";
+  version = "0.3.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-p6Vumfr+vRDr0D9PnEZItp9vNlCLIb59HpBg1KdyHGE=";
+    hash = "sha256-qyly3kIx9HQ7zDT0SfUlsqZGqibdXsfW1dL9HNpQZJg=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pg8000/default.nix b/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
index 12144a0bb8d2..3bd937c6d492 100644
--- a/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pg8000";
-  version = "1.30.3";
+  version = "1.30.5";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Tnx1dHpDpJwVYj+SWDu24dAj6ubq8sLh5t5Nf7f6QE8=";
+    hash = "sha256-By960AzXI2lcsun8AsHfuEx4FFXpe43m9MQoHuoIB4w=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pgcli/default.nix b/nixpkgs/pkgs/development/python-modules/pgcli/default.nix
index aff6d3d2149b..f60a5fd9dae5 100644
--- a/nixpkgs/pkgs/development/python-modules/pgcli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pgcli/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Command-line interface for PostgreSQL";
+    mainProgram = "pgcli";
     longDescription = ''
       Rich command-line interface for PostgreSQL with auto-completion and
       syntax highlighting.
diff --git a/nixpkgs/pkgs/development/python-modules/pgmpy/default.nix b/nixpkgs/pkgs/development/python-modules/pgmpy/default.nix
index e9ca2003fa81..a953b575b591 100644
--- a/nixpkgs/pkgs/development/python-modules/pgmpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pgmpy/default.nix
@@ -23,7 +23,7 @@
 }:
 let
   pname = "pgmpy";
-  version = "0.1.24";
+  version = "0.1.25";
   # optional-dependencies = {
   #   all = [ daft ];
   # };
@@ -38,7 +38,7 @@ buildPythonPackage {
     owner = "pgmpy";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-IMlo4SBxO9sPoZl0rQGc3FcvvIN/V/WZz+1BD7aBfzs=";
+    hash = "sha256-d2TNcJQ82XxTWdetLgtKXRpFulAEEzrr+cyRewoA6YI=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pgsanity/default.nix b/nixpkgs/pkgs/development/python-modules/pgsanity/default.nix
index 510d5e66bdbb..ea133ad8c200 100644
--- a/nixpkgs/pkgs/development/python-modules/pgsanity/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pgsanity/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/markdrago/pgsanity";
     description = "Checks the syntax of Postgresql SQL files";
+    mainProgram = "pgsanity";
     longDescription = ''
       PgSanity checks the syntax of Postgresql SQL files by
       taking a file that has a list of bare SQL in it,
diff --git a/nixpkgs/pkgs/development/python-modules/phe/default.nix b/nixpkgs/pkgs/development/python-modules/phe/default.nix
index e943afa3caef..0dc423883c4b 100644
--- a/nixpkgs/pkgs/development/python-modules/phe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phe/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "A library for Partially Homomorphic Encryption in Python";
+    mainProgram = "pheutil";
     homepage = "https://github.com/n1analytics/python-paillier";
     license = licenses.gpl3;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/phik/default.nix b/nixpkgs/pkgs/development/python-modules/phik/default.nix
index bbc26de99cf7..b2dae6f29b1e 100644
--- a/nixpkgs/pkgs/development/python-modules/phik/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phik/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "phik";
-  version = "0.12.3";
+  version = "0.12.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "KaveIO";
     repo = "PhiK";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9o3EDhgmne2J1QfzjjNQc1mUcyCzoVrCnWXqjWkiZU0=";
+    hash = "sha256-YsH7vVn6gzejunUjUY/RIcvWtaQ/W1gbciJWKi5LDTk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/phonemizer/default.nix b/nixpkgs/pkgs/development/python-modules/phonemizer/default.nix
index 2e8dcb85570b..26a95b1d5847 100644
--- a/nixpkgs/pkgs/development/python-modules/phonemizer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phonemizer/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/bootphon/phonemizer";
     changelog = "https://github.com/bootphon/phonemizer/blob/v${version}/CHANGELOG.md";
     description = "Simple text to phones converter for multiple languages";
+    mainProgram = "phonemize";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix b/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
index 6370a8fa72cc..b2bb4cbfd01d 100644
--- a/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "phonenumbers";
-  version = "8.13.26";
+  version = "8.13.31";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-k31wrs6zF/WDHf7CjehVpgJg70qdVRlkvsjnp9DPgc0=";
+    hash = "sha256-J0IHHJ0K8JJ0yKWyom2aNqy/LqXLYpQ8ws6ttcDIdkE=";
   };
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/phonopy/default.nix b/nixpkgs/pkgs/development/python-modules/phonopy/default.nix
index 6afa9e1f5ff6..fc39ba10083f 100644
--- a/nixpkgs/pkgs/development/python-modules/phonopy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phonopy/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "phonopy";
-  version = "2.21.2";
+  version = "2.22.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3DCfMI41J/H9RjKj0376NnADp2VzHKnGcvgYoLnluTY=";
+    hash = "sha256-9opygqCRxKGNQo52cS7BiUYdmknIk9ygubPgpylcy8o=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/piccolo-theme/default.nix b/nixpkgs/pkgs/development/python-modules/piccolo-theme/default.nix
index ece887f14328..51ed9b136f3f 100644
--- a/nixpkgs/pkgs/development/python-modules/piccolo-theme/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/piccolo-theme/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "piccolo-theme";
-  version = "0.19.0";
+  version = "0.20.0";
   format = "setuptools";
 
   src = fetchPypi {
     pname = "piccolo_theme";
     inherit version;
-    hash = "sha256-pGMOc/GSh3q2HW1mfW+XFgpOyiXd3cdh56cvXatseuc=";
+    hash = "sha256-/I6Q///oZ1OlSQEOwQ4KtUuj73ra6poyDhfhiF5nJrE=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/picosvg/default.nix b/nixpkgs/pkgs/development/python-modules/picosvg/default.nix
index 87f3eccfdb0e..74a6b408f6a8 100644
--- a/nixpkgs/pkgs/development/python-modules/picosvg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/picosvg/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool to simplify SVGs";
+    mainProgram = "picosvg";
     homepage = "https://github.com/googlefonts/picosvg";
     license = licenses.asl20;
     maintainers = with maintainers; [ _999eagle ];
diff --git a/nixpkgs/pkgs/development/python-modules/pijuice/default.nix b/nixpkgs/pkgs/development/python-modules/pijuice/default.nix
index a42c7ad8c1ed..ecbe9343008b 100644
--- a/nixpkgs/pkgs/development/python-modules/pijuice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pijuice/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library and resources for PiJuice HAT for Raspberry Pi";
+    mainProgram = "pijuice_cli";
     homepage = "https://github.com/PiSupply/PiJuice";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hexagonal-sun ];
diff --git a/nixpkgs/pkgs/development/python-modules/pillow-heif/default.nix b/nixpkgs/pkgs/development/python-modules/pillow-heif/default.nix
index e846109a31de..10edc6edb8bd 100644
--- a/nixpkgs/pkgs/development/python-modules/pillow-heif/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pillow-heif/default.nix
@@ -75,7 +75,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = lib.optionals stdenv.isDarwin [
+  disabledTests = [
+    # Time based
+    "test_decode_threads"
+  ] ++ lib.optionals stdenv.isDarwin [
     # https://github.com/bigcat88/pillow_heif/issues/89
     # not reproducible in nixpkgs
     "test_opencv_crash"
diff --git a/nixpkgs/pkgs/development/python-modules/pinboard/default.nix b/nixpkgs/pkgs/development/python-modules/pinboard/default.nix
index 83fe4a330c3d..b7dab8e44fc8 100644
--- a/nixpkgs/pkgs/development/python-modules/pinboard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pinboard/default.nix
@@ -17,6 +17,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python wrapper for Pinboard.in";
+    mainProgram = "pinboard";
     maintainers = with maintainers; [ djanatyn ];
     license = licenses.asl20;
     homepage = "https://github.com/lionheart/pinboard.py";
diff --git a/nixpkgs/pkgs/development/python-modules/ping3/default.nix b/nixpkgs/pkgs/development/python-modules/ping3/default.nix
index 133775eb7915..998904bd9875 100644
--- a/nixpkgs/pkgs/development/python-modules/ping3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ping3/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A pure python3 version of ICMP ping implementation using raw socket";
+    mainProgram = "ping3";
     homepage = "https://pypi.org/project/ping3";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
diff --git a/nixpkgs/pkgs/development/python-modules/pint/default.nix b/nixpkgs/pkgs/development/python-modules/pint/default.nix
index 3dfe10c8d9bc..99e8da4cdd30 100644
--- a/nixpkgs/pkgs/development/python-modules/pint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pint/default.nix
@@ -62,6 +62,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/hgrecco/pint/blob/${version}/CHANGES";
     description = "Physical quantities module";
+    mainProgram = "pint-convert";
     license = licenses.bsd3;
     homepage = "https://github.com/hgrecco/pint/";
     maintainers = with maintainers; [ doronbehar ];
diff --git a/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix b/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix
index 154a9c712c5a..8052c574d336 100644
--- a/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "pip-tools";
-  version = "7.3.0";
+  version = "7.4.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jpyZEn/gJMAltGoLLRXHvUfxjzMibPczDTVJNmP8HR0=";
+    hash = "sha256-hkgm9Qc4ZEUOJNvuuFzjkgzfsJhIo9aev1N7Uh8UvMk=";
   };
 
   patches = [ ./fix-setup-py-bad-syntax-detection.patch ];
diff --git a/nixpkgs/pkgs/development/python-modules/pip/default.nix b/nixpkgs/pkgs/development/python-modules/pip/default.nix
index f597887ddd2c..72b7eb88df72 100644
--- a/nixpkgs/pkgs/development/python-modules/pip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pip/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "pip";
-  version = "23.3.1";
+  version = "24.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pypa";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-mJesZxFyZkGTR1s8/C88eWprW6WVGlwORXoKXc6NnoM=";
+    hash = "sha256-yojk2T5wuPkS1OKusilj253AT+xyKwXCWKBNUEH2Mgo=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pipdate/default.nix b/nixpkgs/pkgs/development/python-modules/pipdate/default.nix
index 172401620a59..41aaf498d917 100644
--- a/nixpkgs/pkgs/development/python-modules/pipdate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pipdate/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "pip update helpers";
+    mainProgram = "pipdate";
     homepage = "https://github.com/nschloe/pipdate";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/pipdeptree/default.nix b/nixpkgs/pkgs/development/python-modules/pipdeptree/default.nix
index 3537c151e6f4..d4d289e07888 100644
--- a/nixpkgs/pkgs/development/python-modules/pipdeptree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pipdeptree/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Command line utility to show dependency tree of packages";
+    mainProgram = "pipdeptree";
     homepage = "https://github.com/tox-dev/pipdeptree";
     changelog = "https://github.com/tox-dev/pipdeptree/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix b/nixpkgs/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix
index 6cfaf7eccb73..31a182de17ad 100644
--- a/nixpkgs/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "This is simple migration script, migrate pipenv to poetry";
+    mainProgram = "pipenv-poetry-migrate";
     homepage = "https://github.com/yhino/pipenv-poetry-migrate";
     changelog = "https://github.com/yhino/pipenv-poetry-migrate/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pipx/default.nix b/nixpkgs/pkgs/development/python-modules/pipx/default.nix
index 330abf560fb7..8d11aa835422 100644
--- a/nixpkgs/pkgs/development/python-modules/pipx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pipx/default.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , hatchling
+, hatch-vcs
 , importlib-metadata
 , packaging
 , pip
@@ -15,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pipx";
-  version = "1.3.1";
+  version = "1.4.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -24,11 +25,12 @@ buildPythonPackage rec {
     owner = "pipxproject";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-JZt4I0zw/Kmdgpd5tw6c+fHrHuxkN6jvN3fDmk0//vc=";
+    hash = "sha256-NxXOeVXwBhGqi4DUABV8UV+cDER0ROBFdgiyYTzdvuo=";
   };
 
   nativeBuildInputs = [
     hatchling
+    hatch-vcs
   ];
 
   propagatedBuildInputs = [
@@ -79,6 +81,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Install and run Python applications in isolated environments";
+    mainProgram = "pipx";
     homepage = "https://github.com/pipxproject/pipx";
     changelog = "https://github.com/pypa/pipx/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pixcat/default.nix b/nixpkgs/pkgs/development/python-modules/pixcat/default.nix
index b5629cebb937..e316e2c51630 100644
--- a/nixpkgs/pkgs/development/python-modules/pixcat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pixcat/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Display images on a kitty terminal with optional resizing";
+    mainProgram = "pixcat";
     homepage = "https://github.com/mirukan/pixcat";
     license = licenses.lgpl3;
     maintainers = [ maintainers.tilcreator ];
diff --git a/nixpkgs/pkgs/development/python-modules/pixel-font-builder/default.nix b/nixpkgs/pkgs/development/python-modules/pixel-font-builder/default.nix
index d541cd00dc5a..bd67a88905f7 100644
--- a/nixpkgs/pkgs/development/python-modules/pixel-font-builder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pixel-font-builder/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "pixel-font-builder";
-  version = "0.0.10";
+  version = "0.0.15";
 
   disabled = pythonOlder "3.11";
 
   src = fetchPypi {
     pname = "pixel_font_builder";
     inherit version;
-    hash = "sha256-evLsNRSC9sPZfhNc8tYbZ/bIrBxSbLuiGRD3ld7Jkbo=";
+    hash = "sha256-2QnbnJk3onwxmjZ6aUgXFGsx6GtqJDV9Bgs3p5Czvns=";
   };
 
   format = "pyproject";
diff --git a/nixpkgs/pkgs/development/python-modules/pixel-ring/default.nix b/nixpkgs/pkgs/development/python-modules/pixel-ring/default.nix
index c88715270bd7..b0a7e3527328 100644
--- a/nixpkgs/pkgs/development/python-modules/pixel-ring/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pixel-ring/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "RGB LED library for ReSpeaker 4 Mic Array, ReSpeaker V2 & ReSpeaker USB 6+1 Mic Array";
+    mainProgram = "pixel_ring_check";
     homepage = "https://github.com/respeaker/pixel_ring/tree/master";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/development/python-modules/pkginfo/default.nix b/nixpkgs/pkgs/development/python-modules/pkginfo/default.nix
index 9fd8fa40dc79..3a79cdbbf012 100644
--- a/nixpkgs/pkgs/development/python-modules/pkginfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pkginfo/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pkginfo";
-  version = "1.9.6";
+  version = "1.10.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-j9WJbocYpDcvDqnMnZb2QXybmG4jpNEW3aJrYswp0EY=";
+    hash = "sha256-Xfc4NTmNENt5+O7NXNhrH20pMXWJ6nB5aZTUk5mvYpc=";
   };
 
   nativeCheckInputs = [
@@ -24,6 +24,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Query metadatdata from sdists, bdists or installed packages";
+    mainProgram = "pkginfo";
     homepage = "https://pythonhosted.org/pkginfo/";
     longDescription = ''
       This package provides an API for querying the distutils metadata
diff --git a/nixpkgs/pkgs/development/python-modules/pkginfo2/default.nix b/nixpkgs/pkgs/development/python-modules/pkginfo2/default.nix
index 0c841adf406a..74d05de7ad97 100644
--- a/nixpkgs/pkgs/development/python-modules/pkginfo2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pkginfo2/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Query metadatdata from sdists, bdists or installed packages";
+    mainProgram = "pkginfo2";
     homepage = "https://github.com/nexB/pkginfo2";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/plac/default.nix b/nixpkgs/pkgs/development/python-modules/plac/default.nix
index 70a57168b12a..bc00253aafde 100644
--- a/nixpkgs/pkgs/development/python-modules/plac/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plac/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Parsing the Command Line the Easy Way";
+    mainProgram = "plac_runner.py";
     homepage = "https://github.com/micheles/plac";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/platformdirs/default.nix b/nixpkgs/pkgs/development/python-modules/platformdirs/default.nix
index 6cf9822c5e41..7c45f33cb598 100644
--- a/nixpkgs/pkgs/development/python-modules/platformdirs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/platformdirs/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "platformdirs";
-  version = "4.0.0";
+  version = "4.2.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-27Cy8VEmbrO96G2mVStxkoWSRXlwZLWirI3tH6kBsus=";
+    hash = "sha256-DjRqOIkyhkA3Z1gl2o78R4kp23qJBj+pRmDBld8AbDI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/playwright-stealth/default.nix b/nixpkgs/pkgs/development/python-modules/playwright-stealth/default.nix
new file mode 100644
index 000000000000..a805d36f432f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/playwright-stealth/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, playwright
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "playwright-stealth";
+  version = "1.0.6-unstable-2023-09-11";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "AtuboDad";
+    repo = "playwright_stealth";
+    # https://github.com/AtuboDad/playwright_stealth/issues/25
+    rev = "43f7433057906945b1648179304d7dbd8eb10874";
+    hash = "sha256-ZWmuVwjEgrPmfxjvws3TdocW6tyNH++fyRfKQ0oJ6bo=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    playwright
+  ];
+
+  # Tests require Chromium binary
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "playwright_stealth"
+  ];
+
+  meta = with lib; {
+    description = "Playwright stealth";
+    homepage = "https://github.com/AtuboDad/playwright_stealth";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/playwright/default.nix b/nixpkgs/pkgs/development/python-modules/playwright/default.nix
index 31ded41872f1..ff22cdf0cb8d 100644
--- a/nixpkgs/pkgs/development/python-modules/playwright/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/playwright/default.nix
@@ -20,7 +20,7 @@ in
 buildPythonPackage rec {
   pname = "playwright";
   # run ./pkgs/development/python-modules/playwright/update.sh to update
-  version = "1.40.0";
+  version = "1.42.0";
   pyproject = true;
   disabled = pythonOlder "3.7";
 
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = "playwright-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+gq/aFq/rQpl04LbaZXGxL35iIX1Wi/motYg5jwv91I=";
+    hash = "sha256-GfaZ6wMbJShyTTcV9uulmsL8OI/OA+YDMvS2s3ePnjs=";
   };
 
   patches = [
@@ -54,7 +54,7 @@ buildPythonPackage rec {
       --replace "wheel==0.41.2" "wheel"
 
     substituteInPlace pyproject.toml \
-      --replace 'requires = ["setuptools==68.2.2", "setuptools-scm==8.0.4", "wheel==0.41.2", "auditwheel==5.4.0"]' \
+      --replace 'requires = ["setuptools==68.2.2", "setuptools-scm==8.0.4", "wheel==0.42.0", "auditwheel==5.4.0"]' \
                 'requires = ["setuptools", "setuptools-scm", "wheel"]'
 
     # Skip trying to download and extract the driver.
@@ -106,6 +106,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python version of the Playwright testing and automation library";
+    mainProgram = "playwright";
     homepage = "https://github.com/microsoft/playwright-python";
     license = licenses.asl20;
     maintainers = with maintainers; [ techknowlogick yrd ];
diff --git a/nixpkgs/pkgs/development/python-modules/playwrightcapture/default.nix b/nixpkgs/pkgs/development/python-modules/playwrightcapture/default.nix
new file mode 100644
index 000000000000..40fb7397c70a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/playwrightcapture/default.nix
@@ -0,0 +1,82 @@
+{ lib
+, beautifulsoup4
+, buildPythonPackage
+, dateparser
+, fetchFromGitHub
+, playwright
+, playwright-stealth
+, poetry-core
+, puremagic
+, pydub
+, pythonOlder
+, pythonRelaxDepsHook
+, pytz
+, requests
+, setuptools
+, speechrecognition
+, tzdata
+, w3lib
+}:
+
+buildPythonPackage rec {
+  pname = "playwrightcapture";
+  version = "1.23.13";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "Lookyloo";
+    repo = "PlaywrightCapture";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-jNTVdGrUQaYHgTxz6zYTdxNQoXEfy/zshherC/gGmng=";
+  };
+
+  pythonRelaxDeps = [
+    "beautifulsoup4"
+    "playwright"
+    "setuptools"
+    "tzdata"
+  ];
+
+  nativeBuildInputs = [
+    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = [
+    beautifulsoup4
+    dateparser
+    playwright
+    playwright-stealth
+    puremagic
+    pytz
+    requests
+    setuptools
+    tzdata
+    w3lib
+  ];
+
+  passthru.optional-dependencies = {
+    recaptcha = [
+      speechrecognition
+      pydub
+      requests
+    ];
+  };
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "playwrightcapture"
+  ];
+
+  meta = with lib; {
+    description = "Capture a URL with Playwright";
+    homepage = "https://github.com/Lookyloo/PlaywrightCapture";
+    changelog = "https://github.com/Lookyloo/PlaywrightCapture/releases/tag/v${version}";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pleroma-bot/default.nix b/nixpkgs/pkgs/development/python-modules/pleroma-bot/default.nix
index 65dd403c21da..773b9bccdf5f 100644
--- a/nixpkgs/pkgs/development/python-modules/pleroma-bot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pleroma-bot/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Bot for mirroring one or multiple Twitter accounts in Pleroma/Mastodon";
+    mainProgram = "pleroma-bot";
     homepage = "https://robertoszek.github.io/pleroma-bot/";
     license = licenses.mit;
     maintainers = with maintainers; [ robertoszek ];
diff --git a/nixpkgs/pkgs/development/python-modules/plotext/default.nix b/nixpkgs/pkgs/development/python-modules/plotext/default.nix
index 8c6d0b39985c..7342067b8ead 100644
--- a/nixpkgs/pkgs/development/python-modules/plotext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plotext/default.nix
@@ -23,6 +23,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Plotting directly in the terminal";
+    mainProgram = "plotext";
     homepage = "https://github.com/piccolomo/plotext";
     license = licenses.mit;
     maintainers = with maintainers; [ samuela ];
diff --git a/nixpkgs/pkgs/development/python-modules/plotly/default.nix b/nixpkgs/pkgs/development/python-modules/plotly/default.nix
index 13d9334fd950..3a076ac6fde4 100644
--- a/nixpkgs/pkgs/development/python-modules/plotly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plotly/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "plotly";
-  version = "5.18.0";
+  version = "5.19.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ngox5vu0nRKwBwNutpKVITQ9a+4iNvhFmRWCG676LLs=";
+    hash = "sha256-XqkaVlcSkq3j47yb9xLroLlaH7CpQTddl4zHlDLgVfQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/plotnine/default.nix b/nixpkgs/pkgs/development/python-modules/plotnine/default.nix
index af402da40045..cc446f300bf1 100644
--- a/nixpkgs/pkgs/development/python-modules/plotnine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plotnine/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "plotnine";
-  version = "0.13.1";
+  version = "0.13.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "has2k1";
     repo = "plotnine";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VgR7T8pDrVMBYqtvTfRmFwW61IREYiRCMXbpCOj/a4Q=";
+    hash = "sha256-GgkaFiRRVpr0TreAetpaiOjpsyLV2wfGQWvUdHJN2mg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pluthon/default.nix b/nixpkgs/pkgs/development/python-modules/pluthon/default.nix
new file mode 100644
index 000000000000..51f73a7381c6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pluthon/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, setuptools
+, pythonOlder
+# Python deps
+, uplc
+, graphlib-backport
+, ordered-set
+}:
+
+buildPythonPackage rec {
+  pname = "pluthon";
+  version = "0.4.6";
+
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "OpShin";
+    repo = "pluthon";
+    rev = version;
+    hash = "sha256-ZmBkbglSbBfVhA4yP0tJdwpJiFpJ7vX0A321ldQF0lA=";
+  };
+
+  propagatedBuildInputs = [
+    setuptools
+    uplc
+    ordered-set
+  ] ++ lib.optionals (pythonOlder "3.9") graphlib-backport;
+
+  pythonImportsCheck = [ "pluthon" ];
+
+  meta = with lib; {
+    description = "Pluto-like programming language for Cardano Smart Contracts in Python";
+    homepage = "https://github.com/OpShin/pluthon";
+    license = licenses.mit;
+    maintainers = with maintainers; [ t4ccer ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/plyplus/default.nix b/nixpkgs/pkgs/development/python-modules/plyplus/default.nix
index 4b9f1a9a0841..209985815ffc 100644
--- a/nixpkgs/pkgs/development/python-modules/plyplus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plyplus/default.nix
@@ -1,10 +1,11 @@
 { lib, fetchPypi, buildPythonPackage, ply, isPy3k }:
 buildPythonPackage rec {
-  pname = "PlyPlus";
+  pname = "plyplus";
   version = "0.7.5";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "PlyPlus";
+    inherit version;
     sha256 = "0g3flgfm3jpb2d8v9z0qmbwca5gxdqr10cs3zvlfhv5cs06ahpnp";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pmdarima/default.nix b/nixpkgs/pkgs/development/python-modules/pmdarima/default.nix
index 2ddb03b8afe1..3223d071bdec 100644
--- a/nixpkgs/pkgs/development/python-modules/pmdarima/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pmdarima/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , cython
 , joblib
+, matplotlib
 , numpy
 , pandas
 , scikit-learn
@@ -46,7 +47,15 @@ buildPythonPackage rec {
     cd $out/${python.sitePackages}
   '';
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  nativeCheckInputs = [
+    matplotlib
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   disabledTests= [
     # touches internet
     "test_load_from_web"
diff --git a/nixpkgs/pkgs/development/python-modules/pnglatex/default.nix b/nixpkgs/pkgs/development/python-modules/pnglatex/default.nix
index d953678942bf..05b36b224839 100644
--- a/nixpkgs/pkgs/development/python-modules/pnglatex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pnglatex/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/MaT1g3R/pnglatex";
     description = "a small program that converts LaTeX snippets to png";
+    mainProgram = "pnglatex";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ GaetanLepage ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/podcats/default.nix b/nixpkgs/pkgs/development/python-modules/podcats/default.nix
index ba4778123ae9..e1cb4a05a784 100644
--- a/nixpkgs/pkgs/development/python-modules/podcats/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/podcats/default.nix
@@ -21,6 +21,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Application that generates RSS feeds for podcast episodes from local audio files";
+    mainProgram = "podcats";
     homepage = "https://github.com/jakubroztocil/podcats";
     license = lib.licenses.bsd2;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/podman/default.nix b/nixpkgs/pkgs/development/python-modules/podman/default.nix
index e3174a0a93ac..92a73abb4538 100644
--- a/nixpkgs/pkgs/development/python-modules/podman/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/podman/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "podman";
-  version = "4.9.0";
+  version = "5.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,10 +24,10 @@ buildPythonPackage rec {
     owner = "containers";
     repo = "podman-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fLuWOfv4kW5a9h658s8pBgXsBfcYdkXNp9+bWtgKHv8=";
+    hash = "sha256-3tbhTg060/K4ejT/xjItSu9zf05LR/d0vkg4XDsspEE=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix b/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix
index 9b3174a3b3bd..c7010ef0432c 100644
--- a/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , pythonOlder
 , build
 , git
@@ -15,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "poetry-core";
-  version = "1.8.1";
+  version = "1.9.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -24,7 +23,7 @@ buildPythonPackage rec {
     owner = "python-poetry";
     repo = pname;
     rev = version;
-    hash = "sha256-RnCJ67jaL2knwv+Uo7p0zOejHAT73f40weaJnfqOYoM=";
+    hash = "sha256-vvwKbzGlvv2LTbXfJxQVM3nUXFGntgJxsku6cbRxCzw=";
   };
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix b/nixpkgs/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix
index 052cb9c4d7d6..6e375def3c65 100644
--- a/nixpkgs/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix
@@ -58,6 +58,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Plugin for Poetry to enable dynamic versioning based on VCS tags";
+    mainProgram = "poetry-dynamic-versioning";
     homepage = "https://github.com/mtkennerly/poetry-dynamic-versioning";
     changelog = "https://github.com/mtkennerly/poetry-dynamic-versioning/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/polars/Cargo.lock b/nixpkgs/pkgs/development/python-modules/polars/Cargo.lock
index 505a370fb586..caba522cc143 100644
--- a/nixpkgs/pkgs/development/python-modules/polars/Cargo.lock
+++ b/nixpkgs/pkgs/development/python-modules/polars/Cargo.lock
@@ -25,9 +25,9 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
 
 [[package]]
 name = "ahash"
-version = "0.8.7"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if",
  "const-random",
@@ -90,15 +90,15 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
 
 [[package]]
 name = "anstyle"
-version = "1.0.5"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2faccea4cc4ab4a667ce676a30e8ec13922a692c99bb8f5b11f1502c72e04220"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anyhow"
-version = "1.0.79"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
+checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
 
 [[package]]
 name = "apache-avro"
@@ -127,9 +127,9 @@ dependencies = [
 
 [[package]]
 name = "argminmax"
-version = "0.6.1"
+version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "202108b46429b765ef483f8a24d5c46f48c14acfdacc086dd4ab6dddf6bcdbd2"
+checksum = "52424b59d69d69d5056d508b260553afd91c57e21849579cd1f50ee8b8b88eaa"
 dependencies = [
  "num-traits",
 ]
@@ -224,7 +224,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -235,7 +235,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -277,9 +277,9 @@ dependencies = [
 
 [[package]]
 name = "aws-config"
-version = "1.1.4"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b30c39ebe61f75d1b3785362b1586b41991873c9ab3e317a9181c246fb71d82"
+checksum = "0b96342ea8948ab9bef3e6234ea97fc32e2d8a88d8fb6a084e52267317f94b6b"
 dependencies = [
  "aws-credential-types",
  "aws-runtime",
@@ -296,7 +296,7 @@ dependencies = [
  "bytes",
  "fastrand",
  "hex",
- "http 0.2.11",
+ "http 0.2.12",
  "hyper",
  "ring",
  "time",
@@ -307,9 +307,9 @@ dependencies = [
 
 [[package]]
 name = "aws-credential-types"
-version = "1.1.4"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33cc49dcdd31c8b6e79850a179af4c367669150c7ac0135f176c61bec81a70f7"
+checksum = "273fa47dafc9ef14c2c074ddddbea4561ff01b7f68d5091c0e9737ced605c01d"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-runtime-api",
@@ -319,9 +319,9 @@ dependencies = [
 
 [[package]]
 name = "aws-runtime"
-version = "1.1.4"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb031bff99877c26c28895766f7bb8484a05e24547e370768d6cc9db514662aa"
+checksum = "6e38bab716c8bf07da24be07ecc02e0f5656ce8f30a891322ecdcb202f943b85"
 dependencies = [
  "aws-credential-types",
  "aws-sigv4",
@@ -333,7 +333,7 @@ dependencies = [
  "aws-types",
  "bytes",
  "fastrand",
- "http 0.2.11",
+ "http 0.2.12",
  "http-body",
  "percent-encoding",
  "pin-project-lite",
@@ -343,9 +343,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sdk-s3"
-version = "1.14.0"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "951f7730f51a2155c711c85c79f337fbc02a577fa99d2a0a8059acfce5392113"
+checksum = "93d35d39379445970fc3e4ddf7559fff2c32935ce0b279f9cb27080d6b7c6d94"
 dependencies = [
  "aws-credential-types",
  "aws-runtime",
@@ -361,7 +361,7 @@ dependencies = [
  "aws-smithy-xml",
  "aws-types",
  "bytes",
- "http 0.2.11",
+ "http 0.2.12",
  "http-body",
  "once_cell",
  "percent-encoding",
@@ -372,9 +372,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sdk-sso"
-version = "1.12.0"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f486420a66caad72635bc2ce0ff6581646e0d32df02aa39dc983bfe794955a5b"
+checksum = "d84bd3925a17c9adbf6ec65d52104a44a09629d8f70290542beeee69a95aee7f"
 dependencies = [
  "aws-credential-types",
  "aws-runtime",
@@ -386,7 +386,7 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes",
- "http 0.2.11",
+ "http 0.2.12",
  "once_cell",
  "regex-lite",
  "tracing",
@@ -394,9 +394,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sdk-ssooidc"
-version = "1.12.0"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39ddccf01d82fce9b4a15c8ae8608211ee7db8ed13a70b514bbfe41df3d24841"
+checksum = "2c2dae39e997f58bc4d6292e6244b26ba630c01ab671b6f9f44309de3eb80ab8"
 dependencies = [
  "aws-credential-types",
  "aws-runtime",
@@ -408,7 +408,7 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes",
- "http 0.2.11",
+ "http 0.2.12",
  "once_cell",
  "regex-lite",
  "tracing",
@@ -416,9 +416,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sdk-sts"
-version = "1.12.0"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a591f8c7e6a621a501b2b5d2e88e1697fcb6274264523a6ad4d5959889a41ce"
+checksum = "17fd9a53869fee17cea77e352084e1aa71e2c5e323d974c13a9c2bcfd9544c7f"
 dependencies = [
  "aws-credential-types",
  "aws-runtime",
@@ -431,7 +431,7 @@ dependencies = [
  "aws-smithy-types",
  "aws-smithy-xml",
  "aws-types",
- "http 0.2.11",
+ "http 0.2.12",
  "once_cell",
  "regex-lite",
  "tracing",
@@ -439,9 +439,9 @@ dependencies = [
 
 [[package]]
 name = "aws-sigv4"
-version = "1.1.4"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c371c6b0ac54d4605eb6f016624fb5c7c2925d315fdf600ac1bf21b19d5f1742"
+checksum = "8ada00a4645d7d89f296fe0ddbc3fe3554f03035937c849a05d37ddffc1f29a1"
 dependencies = [
  "aws-credential-types",
  "aws-smithy-eventstream",
@@ -453,8 +453,8 @@ dependencies = [
  "form_urlencoded",
  "hex",
  "hmac",
- "http 0.2.11",
- "http 1.0.0",
+ "http 0.2.12",
+ "http 1.1.0",
  "once_cell",
  "p256",
  "percent-encoding",
@@ -468,9 +468,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-async"
-version = "1.1.4"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72ee2d09cce0ef3ae526679b522835d63e75fb427aca5413cd371e490d52dcc6"
+checksum = "fcf7f09a27286d84315dfb9346208abb3b0973a692454ae6d0bc8d803fcce3b4"
 dependencies = [
  "futures-util",
  "pin-project-lite",
@@ -479,9 +479,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-checksums"
-version = "0.60.4"
+version = "0.60.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be2acd1b9c6ae5859999250ed5a62423aedc5cf69045b844432de15fa2f31f2b"
+checksum = "0fd4b66f2a8e7c84d7e97bda2666273d41d2a2e25302605bcf906b7b2661ae5e"
 dependencies = [
  "aws-smithy-http",
  "aws-smithy-types",
@@ -489,7 +489,7 @@ dependencies = [
  "crc32c",
  "crc32fast",
  "hex",
- "http 0.2.11",
+ "http 0.2.12",
  "http-body",
  "md-5",
  "pin-project-lite",
@@ -511,9 +511,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-http"
-version = "0.60.4"
+version = "0.60.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dab56aea3cd9e1101a0a999447fb346afb680ab1406cebc44b32346e25b4117d"
+checksum = "b6ca214a6a26f1b7ebd63aa8d4f5e2194095643023f9608edf99a58247b9d80d"
 dependencies = [
  "aws-smithy-eventstream",
  "aws-smithy-runtime-api",
@@ -521,7 +521,7 @@ dependencies = [
  "bytes",
  "bytes-utils",
  "futures-core",
- "http 0.2.11",
+ "http 0.2.12",
  "http-body",
  "once_cell",
  "percent-encoding",
@@ -532,18 +532,18 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-json"
-version = "0.60.4"
+version = "0.60.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd3898ca6518f9215f62678870064398f00031912390efd03f1f6ef56d83aa8e"
+checksum = "1af80ecf3057fb25fe38d1687e94c4601a7817c6a1e87c1b0635f7ecb644ace5"
 dependencies = [
  "aws-smithy-types",
 ]
 
 [[package]]
 name = "aws-smithy-query"
-version = "0.60.4"
+version = "0.60.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bda4b1dfc9810e35fba8a620e900522cd1bd4f9578c446e82f49d1ce41d2e9f9"
+checksum = "eb27084f72ea5fc20033efe180618677ff4a2f474b53d84695cfe310a6526cbc"
 dependencies = [
  "aws-smithy-types",
  "urlencoding",
@@ -551,9 +551,9 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-runtime"
-version = "1.1.4"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fafdab38f40ad7816e7da5dec279400dd505160780083759f01441af1bbb10ea"
+checksum = "fbb5fca54a532a36ff927fbd7407a7c8eb9c3b4faf72792ba2965ea2cad8ed55"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-http",
@@ -562,7 +562,7 @@ dependencies = [
  "bytes",
  "fastrand",
  "h2",
- "http 0.2.11",
+ "http 0.2.12",
  "http-body",
  "hyper",
  "hyper-rustls",
@@ -576,14 +576,15 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-runtime-api"
-version = "1.1.4"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c18276dd28852f34b3bf501f4f3719781f4999a51c7bff1a5c6dc8c4529adc29"
+checksum = "22389cb6f7cac64f266fb9f137745a9349ced7b47e0d2ba503e9e40ede4f7060"
 dependencies = [
  "aws-smithy-async",
  "aws-smithy-types",
  "bytes",
- "http 0.2.11",
+ "http 0.2.12",
+ "http 1.1.0",
  "pin-project-lite",
  "tokio",
  "tracing",
@@ -592,15 +593,15 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-types"
-version = "1.1.4"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb3e134004170d3303718baa2a4eb4ca64ee0a1c0a7041dca31b38be0fb414f3"
+checksum = "f081da5481210523d44ffd83d9f0740320050054006c719eae0232d411f024d3"
 dependencies = [
  "base64-simd",
  "bytes",
  "bytes-utils",
  "futures-core",
- "http 0.2.11",
+ "http 0.2.12",
  "http-body",
  "itoa",
  "num-integer",
@@ -615,24 +616,24 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-xml"
-version = "0.60.4"
+version = "0.60.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8604a11b25e9ecaf32f9aa56b9fe253c5e2f606a3477f0071e96d3155a5ed218"
+checksum = "0fccd8f595d0ca839f9f2548e66b99514a85f92feb4c01cf2868d93eb4888a42"
 dependencies = [
  "xmlparser",
 ]
 
 [[package]]
 name = "aws-types"
-version = "1.1.4"
+version = "1.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "789bbe008e65636fe1b6dbbb374c40c8960d1232b96af5ff4aec349f9c4accf4"
+checksum = "d07c63521aa1ea9a9f92a701f1a08ce3fd20b46c6efc0d5c8947c1fd879e3df1"
 dependencies = [
  "aws-credential-types",
  "aws-smithy-async",
  "aws-smithy-runtime-api",
  "aws-smithy-types",
- "http 0.2.11",
+ "http 0.2.12",
  "rustc_version",
  "tracing",
 ]
@@ -747,15 +748,15 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.1"
+version = "1.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed2490600f404f2b94c167e31d3ed1d5f3c225a0f3b80230053b3e0b7b962bd9"
+checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
 dependencies = [
  "bytemuck_derive",
 ]
@@ -768,7 +769,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -816,9 +817,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 dependencies = [
  "jobserver",
  "libc",
@@ -832,22 +833,22 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.33"
+version = "0.4.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "num-traits",
  "serde",
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
 name = "chrono-tz"
-version = "0.8.5"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91d7b79e99bfaa0d47da0687c43aa3b7381938a62ad3a6498599039321f660b7"
+checksum = "d59ae0466b83e838b81a54256c39d5d7c20b9d7daa10510a242d9b75abd5936e"
 dependencies = [
  "chrono",
  "chrono-tz-build",
@@ -894,18 +895,18 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.4.18"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
+checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651"
 dependencies = [
  "clap_builder",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.4.18"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
  "anstyle",
  "clap_lex",
@@ -913,9 +914,9 @@ dependencies = [
 
 [[package]]
 name = "clap_lex"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
 name = "cmake"
@@ -946,9 +947,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
 
 [[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",
 ]
@@ -1015,18 +1016,18 @@ checksum = "ccaeedb56da03b09f598226e25e80088cb4cd25f316e6e4df7d695f0feeb1403"
 
 [[package]]
 name = "crc32c"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8f48d60e5b4d2c53d5c2b1d8a58c849a70ae5e5509b08a48d047e3b65714a74"
+checksum = "89254598aa9b9fa608de44b3ae54c810f0f06d755e24c50177f1f8f31ff50ce2"
 dependencies = [
  "rustc_version",
 ]
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
@@ -1069,9 +1070,9 @@ dependencies = [
 
 [[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",
 ]
@@ -1214,9 +1215,9 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
 
 [[package]]
 name = "dyn-clone"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d"
+checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
 
 [[package]]
 name = "ecdsa"
@@ -1232,9 +1233,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "elliptic-curve"
@@ -1274,7 +1275,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1434,7 +1435,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -1498,9 +1499,9 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "git2"
-version = "0.18.1"
+version = "0.18.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbf97ba92db08df386e10c8ede66a2a0369bd277090afd8710e19e38de9ec0cd"
+checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd"
 dependencies = [
  "bitflags 2.4.2",
  "libc",
@@ -1537,7 +1538,7 @@ dependencies = [
  "futures-core",
  "futures-sink",
  "futures-util",
- "http 0.2.11",
+ "http 0.2.12",
  "indexmap",
  "slab",
  "tokio",
@@ -1547,9 +1548,9 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "2.3.1"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
 dependencies = [
  "cfg-if",
  "crunchy",
@@ -1558,11 +1559,11 @@ dependencies = [
 
 [[package]]
 name = "halfbrown"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5681137554ddff44396e5f149892c769d45301dd9aa19c51602a89ee214cb0ec"
+checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f"
 dependencies = [
- "hashbrown 0.13.2",
+ "hashbrown 0.14.3",
  "serde",
 ]
 
@@ -1600,9 +1601,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.4"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -1630,9 +1631,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
 dependencies = [
  "bytes",
  "fnv",
@@ -1641,9 +1642,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "1.0.0"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
 dependencies = [
  "bytes",
  "fnv",
@@ -1657,7 +1658,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
- "http 0.2.11",
+ "http 0.2.12",
  "pin-project-lite",
 ]
 
@@ -1690,7 +1691,7 @@ dependencies = [
  "futures-core",
  "futures-util",
  "h2",
- "http 0.2.11",
+ "http 0.2.12",
  "http-body",
  "httparse",
  "httpdate",
@@ -1710,7 +1711,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
  "futures-util",
- "http 0.2.11",
+ "http 0.2.12",
  "hyper",
  "log",
  "rustls",
@@ -1721,9 +1722,9 @@ dependencies = [
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.59"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -1754,9 +1755,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.2"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -1783,12 +1784,12 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "is-terminal"
-version = "0.4.10"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
  "hermit-abi",
- "rustix",
+ "libc",
  "windows-sys 0.52.0",
 ]
 
@@ -1844,26 +1845,27 @@ dependencies = [
 
 [[package]]
 name = "jobserver"
-version = "0.1.27"
+version = "0.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.67"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
-name = "jsonpath_lib"
-version = "0.3.0"
-source = "git+https://github.com/ritchie46/jsonpath?branch=improve_compiled#24eaf0b4416edff38a4d1b6b17bc4b9f3f047b4b"
+name = "jsonpath_lib_polars_vendor"
+version = "0.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4bd9354947622f7471ff713eacaabdb683ccb13bba4edccaab9860abf480b7d"
 dependencies = [
  "log",
  "serde",
@@ -1992,9 +1994,9 @@ dependencies = [
 
 [[package]]
 name = "libgit2-sys"
-version = "0.16.1+1.7.1"
+version = "0.16.2+1.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2a2bb3680b094add03bb3732ec520ece34da31a8cd2d633d1389d0f0fb60d0c"
+checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8"
 dependencies = [
  "cc",
  "libc",
@@ -2004,12 +2006,12 @@ dependencies = [
 
 [[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",
- "windows-sys 0.48.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -2068,9 +2070,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 = "lz4"
@@ -2153,18 +2155,18 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
 ]
 
 [[package]]
 name = "mio"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "wasi",
@@ -2251,9 +2253,9 @@ dependencies = [
 
 [[package]]
 name = "num-complex"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
 dependencies = [
  "num-traits",
 ]
@@ -2266,19 +2268,18 @@ checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
 
 [[package]]
 name = "num-integer"
-version = "0.1.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
 [[package]]
 name = "num-iter"
-version = "0.1.43"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -2299,9 +2300,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
  "libm",
@@ -2343,9 +2344,9 @@ dependencies = [
 
 [[package]]
 name = "object_store"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d139f545f64630e2e3688fd9f81c470888ab01edeb72d13b4e86c566f1130000"
+checksum = "b8718f8b65fdf67a45108d1548347d4af7d71fb81ce727bbf9e3b2535e079db3"
 dependencies = [
  "async-trait",
  "base64",
@@ -2355,13 +2356,14 @@ dependencies = [
  "humantime",
  "hyper",
  "itertools 0.12.1",
+ "md-5",
  "parking_lot",
  "percent-encoding",
  "quick-xml",
  "rand",
  "reqwest",
  "ring",
- "rustls-pemfile 2.0.0",
+ "rustls-pemfile 2.1.1",
  "serde",
  "serde_json",
  "snafu",
@@ -2516,9 +2518,9 @@ dependencies = [
 
 [[package]]
 name = "pkg-config"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "planus"
@@ -2559,27 +2561,38 @@ dependencies = [
 
 [[package]]
 name = "polars"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "ahash",
+ "apache-avro",
+ "avro-schema",
+ "either",
+ "ethnum",
+ "futures",
  "getrandom",
+ "polars-arrow",
  "polars-core",
+ "polars-error",
  "polars-io",
  "polars-lazy",
  "polars-ops",
+ "polars-parquet",
  "polars-plan",
  "polars-sql",
  "polars-time",
+ "polars-utils",
+ "proptest",
  "rand",
+ "tokio",
+ "tokio-util",
  "version_check",
 ]
 
 [[package]]
 name = "polars-arrow"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "ahash",
- "apache-avro",
  "arrow-array",
  "arrow-buffer",
  "arrow-data",
@@ -2619,7 +2632,7 @@ dependencies = [
  "regex-syntax 0.8.2",
  "ryu",
  "sample-arrow2",
- "sample-std",
+ "sample-std 0.1.1",
  "sample-test",
  "serde",
  "simdutf8",
@@ -2645,7 +2658,7 @@ dependencies = [
 
 [[package]]
 name = "polars-compute"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "bytemuck",
  "either",
@@ -2653,13 +2666,14 @@ dependencies = [
  "polars-arrow",
  "polars-error",
  "polars-utils",
+ "rand",
  "strength_reduce",
  "version_check",
 ]
 
 [[package]]
 name = "polars-core"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "ahash",
  "arrow-array",
@@ -2694,7 +2708,7 @@ dependencies = [
 
 [[package]]
 name = "polars-doc-examples"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "aws-config",
  "aws-sdk-s3",
@@ -2707,7 +2721,7 @@ dependencies = [
 
 [[package]]
 name = "polars-error"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "avro-schema",
  "object_store",
@@ -2719,7 +2733,7 @@ dependencies = [
 
 [[package]]
 name = "polars-ffi"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "polars-arrow",
  "polars-core",
@@ -2727,7 +2741,7 @@ dependencies = [
 
 [[package]]
 name = "polars-io"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "ahash",
  "async-trait",
@@ -2771,7 +2785,7 @@ dependencies = [
 
 [[package]]
 name = "polars-json"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "ahash",
  "chrono",
@@ -2790,7 +2804,7 @@ dependencies = [
 
 [[package]]
 name = "polars-lazy"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "ahash",
  "bitflags 2.4.2",
@@ -2816,7 +2830,7 @@ dependencies = [
 
 [[package]]
 name = "polars-ops"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "ahash",
  "aho-corasick",
@@ -2829,7 +2843,7 @@ dependencies = [
  "hashbrown 0.14.3",
  "hex",
  "indexmap",
- "jsonpath_lib",
+ "jsonpath_lib_polars_vendor",
  "memchr",
  "num-traits",
  "polars-arrow",
@@ -2851,7 +2865,7 @@ dependencies = [
 
 [[package]]
 name = "polars-parquet"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "ahash",
  "async-stream",
@@ -2878,7 +2892,7 @@ dependencies = [
 
 [[package]]
 name = "polars-pipe"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "crossbeam-channel",
  "crossbeam-queue",
@@ -2897,12 +2911,13 @@ dependencies = [
  "rayon",
  "smartstring",
  "tokio",
+ "uuid",
  "version_check",
 ]
 
 [[package]]
 name = "polars-plan"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "ahash",
  "bytemuck",
@@ -2933,8 +2948,9 @@ dependencies = [
 
 [[package]]
 name = "polars-row"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
+ "bytemuck",
  "polars-arrow",
  "polars-error",
  "polars-utils",
@@ -2942,7 +2958,7 @@ dependencies = [
 
 [[package]]
 name = "polars-sql"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "hex",
  "polars-arrow",
@@ -2958,7 +2974,7 @@ dependencies = [
 
 [[package]]
 name = "polars-time"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "atoi",
  "chrono",
@@ -2977,7 +2993,7 @@ dependencies = [
 
 [[package]]
 name = "polars-utils"
-version = "0.37.0"
+version = "0.38.1"
 dependencies = [
  "ahash",
  "bytemuck",
@@ -2986,6 +3002,8 @@ dependencies = [
  "num-traits",
  "once_cell",
  "polars-error",
+ "rand",
+ "raw-cpuid",
  "rayon",
  "smartstring",
  "sysinfo",
@@ -2993,6 +3011,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "portable-atomic"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[package]]
 name = "powerfmt"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3054,7 +3078,7 @@ dependencies = [
 
 [[package]]
 name = "py-polars"
-version = "0.20.7"
+version = "0.20.15"
 dependencies = [
  "ahash",
  "built",
@@ -3085,9 +3109,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3"
-version = "0.20.2"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a89dc7a5850d0e983be1ec2a463a171d20990487c3cfcd68b5363f1ee3d6fe0"
+checksum = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233"
 dependencies = [
  "cfg-if",
  "indoc",
@@ -3095,6 +3119,7 @@ dependencies = [
  "libc",
  "memoffset",
  "parking_lot",
+ "portable-atomic",
  "pyo3-build-config",
  "pyo3-ffi",
  "pyo3-macros",
@@ -3103,9 +3128,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-build-config"
-version = "0.20.2"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07426f0d8fe5a601f26293f300afd1a7b1ed5e78b2a705870c5f30893c5163be"
+checksum = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7"
 dependencies = [
  "once_cell",
  "target-lexicon",
@@ -3119,9 +3144,9 @@ checksum = "be6d574e0f8cab2cdd1eeeb640cbf845c974519fa9e9b62fa9c08ecece0ca5de"
 
 [[package]]
 name = "pyo3-ffi"
-version = "0.20.2"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb7dec17e17766b46bca4f1a4215a85006b4c2ecde122076c562dd058da6cf1"
+checksum = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
 dependencies = [
  "libc",
  "pyo3-build-config",
@@ -3129,26 +3154,27 @@ dependencies = [
 
 [[package]]
 name = "pyo3-macros"
-version = "0.20.2"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05f738b4e40d50b5711957f142878cfa0f28e054aa0ebdfc3fd137a843f74ed3"
+checksum = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158"
 dependencies = [
  "proc-macro2",
  "pyo3-macros-backend",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "pyo3-macros-backend"
-version = "0.20.2"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fc910d4851847827daf9d6cdd4a823fbdaab5b8818325c5e97a86da79e8881f"
+checksum = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
 dependencies = [
  "heck",
  "proc-macro2",
+ "pyo3-build-config",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3247,6 +3273,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "raw-cpuid"
+version = "11.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d86a7c4638d42c44551f4791a20e687dbb4c3de1f33c43dd71e355cd429def1"
+dependencies = [
+ "bitflags 2.4.2",
+]
+
+[[package]]
 name = "rawpointer"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3254,9 +3289,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
 
 [[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",
@@ -3298,7 +3333,7 @@ checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3315,9 +3350,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",
@@ -3354,7 +3389,7 @@ dependencies = [
  "futures-core",
  "futures-util",
  "h2",
- "http 0.2.11",
+ "http 0.2.12",
  "http-body",
  "hyper",
  "hyper-rustls",
@@ -3398,16 +3433,17 @@ dependencies = [
 
 [[package]]
 name = "ring"
-version = "0.17.7"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
 dependencies = [
  "cc",
+ "cfg-if",
  "getrandom",
  "libc",
  "spin",
  "untrusted",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3439,9 +3475,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.30"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
  "bitflags 2.4.2",
  "errno",
@@ -3485,9 +3521,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-pemfile"
-version = "2.0.0"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4"
+checksum = "f48172685e6ff52a556baa527774f61fcaa884f59daf3375c62a3f1cd2549dab"
 dependencies = [
  "base64",
  "rustls-pki-types",
@@ -3495,9 +3531,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-pki-types"
-version = "1.1.0"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e9d979b3ce68192e42760c7810125eb6cf2ea10efae545a156063e61f314e2a"
+checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8"
 
 [[package]]
 name = "rustls-webpki"
@@ -3517,9 +3553,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "ryu"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "same-file"
@@ -3532,12 +3568,12 @@ dependencies = [
 
 [[package]]
 name = "sample-arrow2"
-version = "0.17.1"
+version = "0.17.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "722050f91586506195398fd22d834eb8768716084f6ebf9f32b917ed422b6afb"
+checksum = "502b30097ae5cc57ee8359bb59d8af349db022492de04596119d83f561ab8977"
 dependencies = [
  "arrow2",
- "sample-std",
+ "sample-std 0.2.1",
 ]
 
 [[package]]
@@ -3554,13 +3590,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "sample-std"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "948bd219c6eb2b2ca1e004d8aefa8bbcf12614f60e0139b1758b49f9a94358c8"
+dependencies = [
+ "casey",
+ "quickcheck",
+ "rand",
+ "rand_regex",
+ "regex",
+]
+
+[[package]]
 name = "sample-test"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "713e500947ff19fc1ae2805afa33ef45f3bb2ec656c77d92252d24cf9e3091b2"
 dependencies = [
  "quickcheck",
- "sample-std",
+ "sample-std 0.1.1",
  "sample-test-macros",
 ]
 
@@ -3572,7 +3621,7 @@ checksum = "df1a2c832a259aae95b6ed1da3aa377111ffde38d4282fa734faa3fff356534e"
 dependencies = [
  "proc-macro2",
  "quote",
- "sample-std",
+ "sample-std 0.1.1",
  "syn 1.0.109",
 ]
 
@@ -3640,9 +3689,9 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.21"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 dependencies = [
  "serde",
 ]
@@ -3655,29 +3704,29 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
 
 [[package]]
 name = "serde"
-version = "1.0.196"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.196"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.113"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "indexmap",
  "itoa",
@@ -3834,12 +3883,12 @@ checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3910,7 +3959,7 @@ dependencies = [
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -3932,9 +3981,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.48"
+version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -3949,9 +3998,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
 
 [[package]]
 name = "sysinfo"
-version = "0.30.5"
+version = "0.30.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2"
+checksum = "0c385888ef380a852a16209afc8cfad22795dd8873d69c9a14d2e2088f118d18"
 dependencies = [
  "cfg-if",
  "core-foundation-sys",
@@ -3990,48 +4039,47 @@ checksum = "cfb5fa503293557c5158bd215fdc225695e567a77e453f5d4452a50a193969bd"
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.13"
+version = "0.12.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "tempfile"
-version = "3.9.0"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand",
- "redox_syscall",
  "rustix",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "time"
-version = "0.3.32"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe80ced77cbfb4cb91a94bf72b378b4b6791a0d9b7f09d0be747d1bdff4e68bd"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
  "deranged",
  "num-conv",
@@ -4093,9 +4141,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.35.1"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
  "backtrace",
  "bytes",
@@ -4117,7 +4165,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -4204,7 +4252,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -4239,7 +4287,7 @@ checksum = "f03ca4cb38206e2bef0700092660bb74d696f808514dae47fa1467cbfe26e96e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -4268,9 +4316,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
@@ -4286,9 +4334,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-width"
@@ -4331,6 +4379,7 @@ version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 dependencies = [
+ "getrandom",
  "serde",
 ]
 
@@ -4366,9 +4415,9 @@ checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64"
 
 [[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",
@@ -4391,9 +4440,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -4401,24 +4450,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.40"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -4428,9 +4477,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -4438,22 +4487,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.90"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "wasm-streams"
@@ -4470,9 +4519,9 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.67"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -4516,7 +4565,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
  "windows-core",
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -4525,7 +4574,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -4543,7 +4592,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -4563,17 +4612,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -4584,9 +4633,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -4596,9 +4645,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -4608,9 +4657,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -4620,9 +4669,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -4632,9 +4681,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -4644,9 +4693,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -4656,15 +4705,15 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "winnow"
-version = "0.5.36"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "818ce546a11a9986bc24f93d0cdf38a8a1a400f1473ea8c82e59f6e0ffab9249"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
 dependencies = [
  "memchr",
 ]
@@ -4687,9 +4736,9 @@ checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
 
 [[package]]
 name = "xxhash-rust"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53be06678ed9e83edb1745eb72efc0bbcd7b5c3c35711a860906aed827a13d61"
+checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03"
 
 [[package]]
 name = "zerocopy"
@@ -4708,7 +4757,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.48",
+ "syn 2.0.52",
 ]
 
 [[package]]
diff --git a/nixpkgs/pkgs/development/python-modules/polars/default.nix b/nixpkgs/pkgs/development/python-modules/polars/default.nix
index 2dca53b7bb6c..4d1d1c0f14d0 100644
--- a/nixpkgs/pkgs/development/python-modules/polars/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/polars/default.nix
@@ -13,12 +13,12 @@
 }:
 let
   pname = "polars";
-  version = "0.20.7";
+  version = "0.20.15";
   rootSource = fetchFromGitHub {
     owner = "pola-rs";
     repo = "polars";
     rev = "refs/tags/py-${version}";
-    hash = "sha256-R3by/e28HE+1xq+HQd9wYy/iK+fDM6/IfKuc563atX4=";
+    hash = "sha256-N/VIi0s5unYWqlR5Mpaq9cqXl2ccbzWPuOtE2UbmQw8=";
   };
   rust-jemalloc-sys' = rust-jemalloc-sys.override {
     jemalloc = jemalloc.override {
@@ -43,9 +43,6 @@ buildPythonPackage {
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
-    outputHashes = {
-      "jsonpath_lib-0.3.0" = "sha256-NKszYpDGG8VxfZSMbsTlzcMGFHBOUeFojNw4P2wM3qk=";
-    };
   };
 
   buildAndTestSubdir = "py-polars";
@@ -77,6 +74,7 @@ buildPythonPackage {
   ] ++ lib.optionals stdenv.isDarwin [
     libiconv
     darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
   # nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/policy-sentry/default.nix b/nixpkgs/pkgs/development/python-modules/policy-sentry/default.nix
index 26db669e94ba..19cfbf29192c 100644
--- a/nixpkgs/pkgs/development/python-modules/policy-sentry/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/policy-sentry/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module for generating IAM least privilege policies";
+    mainProgram = "policy_sentry";
     homepage = "https://github.com/salesforce/policy_sentry";
     changelog = "https://github.com/salesforce/policy_sentry/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pontos/default.nix b/nixpkgs/pkgs/development/python-modules/pontos/default.nix
index f1477f5b2424..8716316d5779 100644
--- a/nixpkgs/pkgs/development/python-modules/pontos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pontos/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "pontos";
-  version = "24.3.1";
+  version = "24.3.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "greenbone";
     repo = "pontos";
     rev = "refs/tags/v${version}";
-    hash = "sha256-EYfhbIFD2p6ZZ4i6NCA22LS6mAZoJCJSYlTmRExWgw4=";
+    hash = "sha256-DXZDXipYBClqSdlTJsaPWaKr3qTiJ3osm3hHPp/MPow=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pooch/default.nix b/nixpkgs/pkgs/development/python-modules/pooch/default.nix
index 6c3e28cd9b4c..63228be0d9dc 100644
--- a/nixpkgs/pkgs/development/python-modules/pooch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pooch/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "pooch";
-  version = "1.8.0";
+  version = "1.8.1";
   format = "pyproject";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9ZmB/VubXQMtzej0oR6qSSwqxjQ/rjWWov2uNfxUsKA=";
+    hash = "sha256-J+9jCX3ZpuT50mlPXPvy8KXe+kT8yv7AjWAecx10YnA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pook/default.nix b/nixpkgs/pkgs/development/python-modules/pook/default.nix
index fffca3cccaae..b40f93b04af5 100644
--- a/nixpkgs/pkgs/development/python-modules/pook/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pook/default.nix
@@ -6,7 +6,9 @@
 , hatchling
 , jsonschema
 , pytest-asyncio
+, pytest-httpbin
 , pytestCheckHook
+, pytest_7
 , pythonOlder
 , requests
 , xmltodict
@@ -14,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pook";
-  version = "1.3.0";
+  version = "1.4.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +25,7 @@ buildPythonPackage rec {
     owner = "h2non";
     repo = "pook";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0sS2QJcshMuxxCGlrcVHeIQnVMZbBoJfLsRIxpvl7pM=";
+    hash = "sha256-sdfkMvPSlVK7EoDUEuJbiuocOjGJygqiCiftrsjnDhU=";
   };
 
   nativeBuildInputs = [
@@ -40,7 +42,8 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytest-asyncio
-    pytestCheckHook
+    pytest-httpbin
+    (pytestCheckHook.override { pytest = pytest_7; })
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/port-for/default.nix b/nixpkgs/pkgs/development/python-modules/port-for/default.nix
index 9efcd9acfaff..ae3c00e6d435 100644
--- a/nixpkgs/pkgs/development/python-modules/port-for/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/port-for/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/kmike/port-for";
     description = "Command-line utility and library that helps with TCP port managment";
+    mainProgram = "port-for";
     changelog = "https://github.com/kmike/port-for/blob/v${version}/CHANGES.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
diff --git a/nixpkgs/pkgs/development/python-modules/portpicker/default.nix b/nixpkgs/pkgs/development/python-modules/portpicker/default.nix
index 2595e20622d9..65c4059b4fc2 100644
--- a/nixpkgs/pkgs/development/python-modules/portpicker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/portpicker/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to choose unique available network ports";
+    mainProgram = "portserver.py";
     homepage = "https://github.com/google/python_portpicker";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/pox/default.nix b/nixpkgs/pkgs/development/python-modules/pox/default.nix
index fd2303197b83..e3926ed045b0 100644
--- a/nixpkgs/pkgs/development/python-modules/pox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pox/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Utilities for filesystem exploration and automated builds";
+    mainProgram = "pox";
     homepage = "https://pox.readthedocs.io/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/ppft/default.nix b/nixpkgs/pkgs/development/python-modules/ppft/default.nix
index 3c721320d995..d72fe679c226 100644
--- a/nixpkgs/pkgs/development/python-modules/ppft/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ppft/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Distributed and parallel Python";
+    mainProgram = "ppserver";
     homepage = "https://ppft.readthedocs.io/";
     changelog = "https://github.com/uqfoundation/ppft/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pprintpp/default.nix b/nixpkgs/pkgs/development/python-modules/pprintpp/default.nix
index b72eeeebce47..c0f98eca75e1 100644
--- a/nixpkgs/pkgs/development/python-modules/pprintpp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pprintpp/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A drop-in replacement for pprint that's actually pretty";
+    mainProgram = "pypprint";
     homepage = "https://github.com/wolever/pprintpp";
     changelog = "https://github.com/wolever/pprintpp/blob/${version}/CHANGELOG.txt";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/pproxy/default.nix b/nixpkgs/pkgs/development/python-modules/pproxy/default.nix
index e37c43baf34b..a7028757b0ba 100644
--- a/nixpkgs/pkgs/development/python-modules/pproxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pproxy/default.nix
@@ -1,33 +1,45 @@
 { lib
-, isPy27
 , buildPythonPackage
 , fetchFromGitHub
 , pycryptodome
 , uvloop
+, setuptools
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pproxy";
-  version = "2.3.7";
-  format = "setuptools";
+  version = "2.7.9";
+  pyproject = true;
 
-  disabled = isPy27;
+  disabled = pythonOlder "3.6";
 
-  # doesn't use tagged releases. Tests not in PyPi versioned releases
   src = fetchFromGitHub {
     owner = "qwj";
     repo = "python-proxy";
     rev = "7fccf8dd62204f34b0aa3a70fc568fd6ddff7728";
-    sha256 = "1sl2i0kymnbsk49ina81yjnkxjy09541f7pmic8r6rwsv1s87skc";
+    sha256 = "sha256-bOqDdNiaZ5MRi/UeF0hJwMs+rfQBKRsTmXrZ6ieIguo=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     pycryptodome
     uvloop
   ];
 
-  pythonImportsCheck = [ "pproxy" ];
-  disabledTests = [ "api_server" "api_client" ];  # try to connect to outside Internet, so disabled
+  pythonImportsCheck = [
+    "pproxy"
+  ];
+
+  disabledTests = [
+    # Tests try to connect to outside Internet, so disabled
+    "api_server"
+    "api_client"
+  ];
+
   # test suite doesn't use test runner. so need to run ``python ./tests/*``
   checkPhase = ''
     shopt -s extglob
@@ -39,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Proxy server that can tunnel among remote servers by regex rules";
+    mainProgram = "pproxy";
     homepage = "https://github.com/qwj/python-proxy";
     license = licenses.mit;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/nixpkgs/pkgs/development/python-modules/prance/default.nix b/nixpkgs/pkgs/development/python-modules/prance/default.nix
index 33ad076f9338..b479451e065c 100644
--- a/nixpkgs/pkgs/development/python-modules/prance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prance/default.nix
@@ -75,6 +75,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/RonnyPfannschmidt/prance/blob/${src.rev}/CHANGES.rst";
     description = "Resolving Swagger/OpenAPI 2.0 and 3.0.0 Parser";
+    mainProgram = "prance";
     homepage = "https://github.com/RonnyPfannschmidt/prance";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/prayer-times-calculator/default.nix b/nixpkgs/pkgs/development/python-modules/prayer-times-calculator/default.nix
index e60bc33383d3..88699a077bbe 100644
--- a/nixpkgs/pkgs/development/python-modules/prayer-times-calculator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prayer-times-calculator/default.nix
@@ -3,22 +3,27 @@
 , fetchFromGitHub
 , pythonOlder
 , requests
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "prayer-times-calculator";
-  version = "0.0.10";
-  format = "setuptools";
+  version = "0.0.12";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "uchagani";
-    repo = pname;
+    repo = "prayer-times-calculator";
     rev = "refs/tags/${version}";
-    hash = "sha256-T+rXJy+9haepF6TKSoOjb6o75YQwQnzAaWRtLMwfGOw=";
+    hash = "sha256-HeGUnApQZ12aieaV/UBbJqqpEn4i/ZZKw41H/Yx3+cY=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     requests
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/preprocess-cancellation/default.nix b/nixpkgs/pkgs/development/python-modules/preprocess-cancellation/default.nix
index dc571f076fe3..22d3936b248e 100644
--- a/nixpkgs/pkgs/development/python-modules/preprocess-cancellation/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/preprocess-cancellation/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "preprocess-cancellation";
-  version = "0.2.0";
+  version = "0.2.1";
   disabled = pythonOlder "3.6"; # >= 3.6
   format = "pyproject";
 
@@ -18,14 +18,10 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "kageurufu";
     repo = "cancelobject-preprocessor";
-    rev = version;
-    hash = "sha256-mn3/etXA5dkL+IsyxwD4/XjU/t4/roYFVyqQxlLOoOI=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-MJ4mwOFswLYHhg2LNZ+/ZwDvSjoxElVxlaWjArHV2NY=";
   };
 
-  patches = [
-    ./pep-621.patch
-  ];
-
   postPatch = ''
     sed -i "/^addopts/d" pyproject.toml
 
diff --git a/nixpkgs/pkgs/development/python-modules/preprocess-cancellation/pep-621.patch b/nixpkgs/pkgs/development/python-modules/preprocess-cancellation/pep-621.patch
deleted file mode 100644
index 48d8db33d465..000000000000
--- a/nixpkgs/pkgs/development/python-modules/preprocess-cancellation/pep-621.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/pyproject.toml b/pyproject.toml
-index da1376e..88298a7 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -1,11 +1,11 @@
--[tool.poetry]

-+[project]

- name = "preprocess_cancellation"

- version = "0.2.0"

- description = "GCode processor to add klipper cancel-object markers"

- readme = "README.md"

--authors = ["Franklyn Tackitt <im@frank.af>"]

--repository = "https://github.com/kageurufu/cancelobject-preprocessor"

--license = "GPL-3.0-only"

-+authors = [ { name = "Franklyn Tackitt", email = "im@frank.af" } ]

-+urls.repository = "https://github.com/kageurufu/cancelobject-preprocessor"

-+license.text = "GPL-3.0-only"

- 

- [tool.poetry.urls]

- "Bug Tracker" = "https://github.com/kageurufu/cancelobject-preprocessor/issues"

diff --git a/nixpkgs/pkgs/development/python-modules/preshed/default.nix b/nixpkgs/pkgs/development/python-modules/preshed/default.nix
index e0d37c51a2b1..557045649425 100644
--- a/nixpkgs/pkgs/development/python-modules/preshed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/preshed/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "preshed";
-  version = "3.0.9";
+  version = "4.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-chhjxSRP/NJlGtCSiVGix8d7EC9OEaJRrYXTfudiFmA=";
+    hash = "sha256-XisLKgfdGo3uqtZhIBmEXGAu4kkH9pNuqvF6q9VuVEw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/prisma/default.nix b/nixpkgs/pkgs/development/python-modules/prisma/default.nix
index 7d1a74a7f5b9..ac0b85d0ad54 100644
--- a/nixpkgs/pkgs/development/python-modules/prisma/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prisma/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "prisma";
-  version = "0.12.0";
+  version = "0.13.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,14 +26,14 @@ buildPythonPackage rec {
     owner = "RobertCraigie";
     repo = "prisma-client-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vmcYBUPDhFbxgWyrF+AjoXwAAH2R/tJYttFD+41bPbA=";
+    hash = "sha256-j9HJZTt4VTq29Q+nynYmRWKx02GVdyA+iZzxZwspXn8=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     click
     httpx
     jinja2
diff --git a/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix b/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix
index 349757bcffb0..082cff10b8a8 100644
--- a/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix
@@ -1,33 +1,42 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, dill
 , freezegun
 , pytestCheckHook
 , python-utils
 , pythonOlder
+, setuptools
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "progressbar2";
-  version = "4.2.0";
-  format = "setuptools";
+  version = "4.4.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-E5OSL8tkWYlErUV1afvrSzrBie9Qta25zvMoTofjlM4=";
+    hash = "sha256-P9ouDGBpNgCmWFp4TJ07xOHaxX6Z4TP4wPXIzz3zdKI=";
   };
 
   postPatch = ''
     sed -i "/-cov/d" pytest.ini
   '';
 
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
     python-utils
   ];
 
   nativeCheckInputs = [
+    dill
     freezegun
     pytestCheckHook
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/prometheus-client/default.nix b/nixpkgs/pkgs/development/python-modules/prometheus-client/default.nix
index 4c4c2338445a..e81613a7062b 100644
--- a/nixpkgs/pkgs/development/python-modules/prometheus-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prometheus-client/default.nix
@@ -1,29 +1,40 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
+, twisted
 , pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "prometheus-client";
-  version = "0.19.0";
-  format = "setuptools";
+  version = "0.20.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "prometheus";
     repo = "client_python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-7mVqfzK0E8RQAlQyQD8/DIcPJZ52V13JqU22tsQJp+Q=";
+    hash = "sha256-IMw0mpOUzjXBy4bMTeSFMc5pdibI5lGxZHKiufjPLbM=";
   };
 
+  build-system = [
+    setuptools
+  ];
+
+  optional-dependencies.twisted = [
+    twisted
+  ];
+
   __darwinAllowLocalNetworking = true;
 
   nativeCheckInputs = [
     pytestCheckHook
-  ];
+  ]
+  ++ lib.flatten (lib.attrValues optional-dependencies);
 
   pythonImportsCheck = [
     "prometheus_client"
diff --git a/nixpkgs/pkgs/development/python-modules/prompt-toolkit/default.nix b/nixpkgs/pkgs/development/python-modules/prompt-toolkit/default.nix
index 034203068baa..faadc19f7a6e 100644
--- a/nixpkgs/pkgs/development/python-modules/prompt-toolkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prompt-toolkit/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "prompt-toolkit";
-  version = "3.0.41";
+  version = "3.0.43";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "prompt_toolkit";
     inherit version;
-    hash = "sha256-lBNn2X/IFVSIIqomwqJp/cTrIensBfxdRHzwm61ddfA=";
+    hash = "sha256-NSe3ryYQbLxloEC8yEg5o1ZuwbBRuwv+lTYx5wSw/30=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/prophet/default.nix b/nixpkgs/pkgs/development/python-modules/prophet/default.nix
index 07ee3e76021b..5c1e07961204 100644
--- a/nixpkgs/pkgs/development/python-modules/prophet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prophet/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     hash = "sha256-liTg5Hm+FPpRQajBnnJKBh3JPGyu0Hflntf0isj1FiQ=";
   };
 
-  sourceRoot = "source/python";
+  sourceRoot = "${src.name}/python";
 
   env.PROPHET_REPACKAGE_CMDSTAN = "false";
 
diff --git a/nixpkgs/pkgs/development/python-modules/propka/default.nix b/nixpkgs/pkgs/development/python-modules/propka/default.nix
index 08a85586411c..2e29476774d1 100644
--- a/nixpkgs/pkgs/development/python-modules/propka/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/propka/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A predictor of the pKa values of ionizable groups in proteins and protein-ligand complexes based in the 3D structure";
+    mainProgram = "propka3";
     homepage = "https://github.com/jensengroup/propka";
     changelog = "https://github.com/jensengroup/propka/releases/tag/v${version}";
     license = licenses.lgpl21Only;
diff --git a/nixpkgs/pkgs/development/python-modules/proto-plus/default.nix b/nixpkgs/pkgs/development/python-modules/proto-plus/default.nix
index a6c49c51b722..e7997e71b7a8 100644
--- a/nixpkgs/pkgs/development/python-modules/proto-plus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/proto-plus/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "proto-plus";
-  version = "1.22.3";
+  version = "1.23.0";
   format = "setuptools";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-/c0JcTy9QkgHQNL+KcmQ9/vYhaZ+/DKKqL5u4+n3ams=";
+    hash = "sha256-iQdRce8RmIs/oVf129i5zwnWX//ul+Kc5APNje+6GdI=";
   };
 
   propagatedBuildInputs = [ protobuf ];
diff --git a/nixpkgs/pkgs/development/python-modules/protonvpn-nm-lib/default.nix b/nixpkgs/pkgs/development/python-modules/protonvpn-nm-lib/default.nix
index 2c1818434ac4..7d4b65db3dda 100644
--- a/nixpkgs/pkgs/development/python-modules/protonvpn-nm-lib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/protonvpn-nm-lib/default.nix
@@ -73,6 +73,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "ProtonVPN NetworkManager Library intended for every ProtonVPN service user";
+    mainProgram = "protonvpn_reconnector.py";
     homepage = "https://github.com/ProtonVPN/protonvpn-nm-lib";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
diff --git a/nixpkgs/pkgs/development/python-modules/proxy-db/default.nix b/nixpkgs/pkgs/development/python-modules/proxy-db/default.nix
index 1a6781b763f9..a4a6fef11188 100644
--- a/nixpkgs/pkgs/development/python-modules/proxy-db/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/proxy-db/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to manage proxies in a local database";
+    mainProgram = "proxy-db";
     homepage = "https://github.com/Nekmo/proxy-db/";
     changelog = "https://github.com/Nekmo/proxy-db/blob/v${version}/HISTORY.rst";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix b/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix
index efa364a09de0..f9a59e620d90 100644
--- a/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "psd-tools";
-  version = "1.9.28";
+  version = "1.9.31";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "psd-tools";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-+oxXuZaHkLPuMIsiFOkvW6VLuGxpV7YKs6Gxp/lexVQ=";
+    hash = "sha256-HUFJ2FP9WGcG9pkukS2LHIgPYFRAXAneiVK6VfYQ+zU=";
   };
 
   nativeBuildInputs = [
@@ -53,6 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python package for reading Adobe Photoshop PSD files";
+    mainProgram = "psd-tools";
     homepage = "https://github.com/kmike/psd-tools";
     changelog = "https://github.com/psd-tools/psd-tools/blob/v${version}/CHANGES.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/psycopg/default.nix b/nixpkgs/pkgs/development/python-modules/psycopg/default.nix
index 3563aa2ecc89..84161d1a8781 100644
--- a/nixpkgs/pkgs/development/python-modules/psycopg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/psycopg/default.nix
@@ -206,6 +206,8 @@ buildPythonPackage rec {
   pytestFlagsArray = [
     "-o" "cache_dir=$TMPDIR"
     "-m" "'not refcount and not timing'"
+    # pytest.PytestRemovedIn9Warning: Marks applied to fixtures have no effect
+    "-W" "ignore::pytest.PytestRemovedIn9Warning"
   ];
 
   postCheck = ''
diff --git a/nixpkgs/pkgs/development/python-modules/psygnal/default.nix b/nixpkgs/pkgs/development/python-modules/psygnal/default.nix
index 890d397c532f..701834561673 100644
--- a/nixpkgs/pkgs/development/python-modules/psygnal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/psygnal/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "psygnal";
-  version = "0.9.5";
+  version = "0.10.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "pyapp-kit";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-eDfGWmTKJrkkzRy1I3wl3WYPCxtPHSRzqAoOiO7QQ9Y=";
+    hash = "sha256-RckzvOclV2UUZLYq3buLeLLBN/Q/CmCAqmGmjzYPqbM=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ptable/default.nix b/nixpkgs/pkgs/development/python-modules/ptable/default.nix
index 7a3980ceb9b9..8589ed16277f 100644
--- a/nixpkgs/pkgs/development/python-modules/ptable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ptable/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage {
   meta = with lib; {
     homepage = "https://github.com/kxxoling/PTable";
     description = "A simple Python library designed to make it quick and easy to represent tabular data in visually appealing ASCII tables";
+    mainProgram = "ptable";
     license = licenses.bsd3;
     maintainers = [ maintainers.mmahut ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/ptpython/default.nix b/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
index 9db2e9c1d2c0..437608956649 100644
--- a/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "ptpython";
-  version = "3.0.23";
+  version = "3.0.26";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-n8m+wsxRvEAAwSJNjFYkHOikBrPUnsjcJm94zTzQS6Q=";
+    hash = "sha256-yPsUBlAtw0nZnFfq8G5xFvOy3qyU8C80K65ocIkJ90M=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/publicsuffixlist/default.nix b/nixpkgs/pkgs/development/python-modules/publicsuffixlist/default.nix
index 2e197ba9300d..6d0e49bcb3e3 100644
--- a/nixpkgs/pkgs/development/python-modules/publicsuffixlist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/publicsuffixlist/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "publicsuffixlist";
-  version = "0.10.0.20240305";
+  version = "0.10.0.20240312";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bnnqc7AnjOGxAvOtaBXypbaDhk2plIugsOqzGAxBn38=";
+    hash = "sha256-ApEvPghPrWfiRjNl/UMVRJIdnbP1H21DzqcWnIax8Yg=";
   };
 
   nativeBuildInputs = [
@@ -47,6 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Public Suffix List parser implementation";
+    mainProgram = "publicsuffixlist-download";
     homepage = "https://github.com/ko-zu/psl";
     license = licenses.mpl20;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pubnub/default.nix b/nixpkgs/pkgs/development/python-modules/pubnub/default.nix
index 73318da35818..174139f5aaf4 100644
--- a/nixpkgs/pkgs/development/python-modules/pubnub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pubnub/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pubnub";
-  version = "7.4.1";
+  version = "7.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XaTvLX1YA1lCSMrEEmiD2JsXoMkeQz1x0MgmnF7cjcM=";
+    hash = "sha256-fmRFxSVzKN2ynuXJlpZcuIt4XIe7XHU4HSzSN1kCi2g=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pudb/default.nix b/nixpkgs/pkgs/development/python-modules/pudb/default.nix
index 160e74d5c7b6..2ab448e77f1c 100644
--- a/nixpkgs/pkgs/development/python-modules/pudb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pudb/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A full-screen, console-based Python debugger";
+    mainProgram = "pudb";
     homepage = "https://github.com/inducer/pudb";
     changelog = "https://github.com/inducer/pudb/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pulp/default.nix b/nixpkgs/pkgs/development/python-modules/pulp/default.nix
index ab55157ed207..8e318822f086 100644
--- a/nixpkgs/pkgs/development/python-modules/pulp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pulp/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to generate MPS or LP files";
+    mainProgram = "pulptest";
     homepage = "https://github.com/coin-or/pulp";
     license = licenses.mit;
     maintainers = with maintainers; [ teto ];
diff --git a/nixpkgs/pkgs/development/python-modules/pulsar-client/default.nix b/nixpkgs/pkgs/development/python-modules/pulsar-client/default.nix
index 65ce904eed4b..075fe4b99d84 100644
--- a/nixpkgs/pkgs/development/python-modules/pulsar-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pulsar-client/default.nix
@@ -108,7 +108,8 @@ in buildPythonPackage {
 
   format = "wheel";
 
-  src = Srcs."${pythonVersion}-${stdenv.hostPlatform.system}";
+  src = Srcs."${pythonVersion}-${stdenv.hostPlatform.system}"
+    or (throw "Unsupported '${pythonVersion}-${stdenv.hostPlatform.system}' target");
 
   meta = with lib; {
     description = "Client for pulsar";
diff --git a/nixpkgs/pkgs/development/python-modules/pulumi-aws/default.nix b/nixpkgs/pkgs/development/python-modules/pulumi-aws/default.nix
index a0c0e144c3ba..1255e4b9b7aa 100644
--- a/nixpkgs/pkgs/development/python-modules/pulumi-aws/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pulumi-aws/default.nix
@@ -12,7 +12,7 @@
 buildPythonPackage rec {
   pname = "pulumi-aws";
   # Version is independant of pulumi's.
-  version = "6.13.0";
+  version = "6.25.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "pulumi";
     repo = "pulumi-aws";
     rev = "refs/tags/v${version}";
-    hash = "sha256-K1Ov8yp6cD7h2kAXNRfcoJp24WA9VpO/y0Aga+9BHz4=";
+    hash = "sha256-RtJIl90rTMFv4mLrDd2SxLYYLf0yKS//7+sxVBdNX8g=";
   };
 
   sourceRoot = "${src.name}/sdk/python";
diff --git a/nixpkgs/pkgs/development/python-modules/pure-protobuf/default.nix b/nixpkgs/pkgs/development/python-modules/pure-protobuf/default.nix
index 29cdf21cf3dc..2a7082049703 100644
--- a/nixpkgs/pkgs/development/python-modules/pure-protobuf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pure-protobuf/default.nix
@@ -2,17 +2,17 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
-, setuptools-scm
-, toml
+, poetry-core
+, poetry-dynamic-versioning
+, pydantic
 , pytestCheckHook
 , pytest-benchmark
-, hatch-vcs
-, hatchling
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "pure-protobuf";
-  version = "2.3.0";  # Komikku not launching w/ 3.0.0, #280551
+  version = "3.0.1";  # Komikku not launching w/ 3.0.0, #280551
 
   format = "pyproject";
   disabled = pythonOlder "3.7";
@@ -21,19 +21,32 @@ buildPythonPackage rec {
     owner = "eigenein";
     repo = "protobuf";
     rev = "refs/tags/${version}";
-    hash = "sha256-nJ3F8dUrqMeWqTV9ErGqrMvofJwBKwNUDfxWIqFh4nY=";
+    hash = "sha256-sGKnta+agrpJkQB0twFkqRreD5WB2O/06g75N0ic4mc=";
   };
 
-  nativeBuildInputs = [
-    hatch-vcs
-    hatchling
+  postPatch = ''
+    sed -i "/addopts =/d" pyproject.toml
+  '';
+
+  build-system = [
+    poetry-core
+    poetry-dynamic-versioning
+  ];
+
+  dependencies = [
+    typing-extensions
   ];
 
-  checkInputs = [
+  nativeCheckInputs = [
+    pydantic
     pytestCheckHook
     pytest-benchmark
   ];
 
+  pytestFlagsArray = [
+    "--benchmark-disable"
+  ];
+
   pythonImportsCheck = [
     "pure_protobuf"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/pvlib/default.nix b/nixpkgs/pkgs/development/python-modules/pvlib/default.nix
index 2c8894cbb11f..986fd4ed8b4d 100644
--- a/nixpkgs/pkgs/development/python-modules/pvlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pvlib/default.nix
@@ -21,14 +21,14 @@
 
 buildPythonPackage rec {
   pname = "pvlib";
-  version = "0.10.3";
-  format = "pyproject";
+  version = "0.10.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi{
     inherit pname version;
-    hash = "sha256-AkobUj1zpjMyNhLn8xWhcJzwbR/UP/CCGQH2akBostk=";
+    hash = "sha256-DF+ov+ixSjmjC/7+WmzwFksuvYKikSbbPZBqhNk5+HI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix b/nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix
index 6cf165d8b093..714cd613fcea 100644
--- a/nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-air-control-exporter/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Exports Air Quality Metrics to Prometheus";
+    mainProgram = "py-air-control-exporter";
     homepage = "https://github.com/urbas/py-air-control-exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ urbas ];
diff --git a/nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix b/nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix
index 68301c0e499f..ed6bdab5cfa4 100644
--- a/nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-cpuinfo/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Get CPU info with pure Python";
+    mainProgram = "cpuinfo";
     longDescription = ''
       Py-cpuinfo gets CPU info with pure Python and should work without any
       extra programs or libraries, beyond what your OS provides. It does not
diff --git a/nixpkgs/pkgs/development/python-modules/py-partiql-parser/default.nix b/nixpkgs/pkgs/development/python-modules/py-partiql-parser/default.nix
index 7cb4ab94761c..9289ae14f69a 100644
--- a/nixpkgs/pkgs/development/python-modules/py-partiql-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-partiql-parser/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "py-partiql-parser";
-  version = "0.5.0";
+  version = "0.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "getmoto";
     repo = "py-partiql-parser";
     rev = "refs/tags/${version}";
-    hash = "sha256-b18PY5LCU2NOSmzOHh0NBFQFCJ2N9oAhusn6QTdlb7o=";
+    hash = "sha256-BPap4f9ro269K50qpVlTiEPNyyMCvBHCr2obuSfuNos=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/py-radix-sr/default.nix b/nixpkgs/pkgs/development/python-modules/py-radix-sr/default.nix
index da14d8a95799..26a9d2f555de 100644
--- a/nixpkgs/pkgs/development/python-modules/py-radix-sr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-radix-sr/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pytestCheckHook
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
@@ -19,12 +20,21 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace setup.py \
       --replace "name='py-radix'" "name='py-radix-sr'"
+
+    substituteInPlace tests/test_{compat,regression}.py \
+      --replace-fail assertEquals assertEqual \
+      --replace-warn assertNotEquals assertNotEqual
   '';
 
   pythonImportsCheck = [ "radix" ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [
+    # test does not complete on 3.12+
+    "test_000_check_incref"
+  ];
+
   meta = with lib; {
     description = "Python radix tree for IPv4 and IPv6 prefix matching";
     homepage = "https://github.com/SEKOIA-IO/py-radix";
diff --git a/nixpkgs/pkgs/development/python-modules/py-scrypt/default.nix b/nixpkgs/pkgs/development/python-modules/py-scrypt/default.nix
index 5525c62b4e16..a997bc11ef0d 100644
--- a/nixpkgs/pkgs/development/python-modules/py-scrypt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-scrypt/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "py-scrypt";
-  version = "0.8.20";
+  version = "0.8.24";
 
   src = fetchPypi {
     pname = "scrypt";
     inherit version;
-    hash = "sha256-DSJsHGdE+y4wizkUEGabHfXP6CY3/8te1Im/grLS63g=";
+    hash = "sha256-mP/eReSpVGHXPe1UunomhXZ5kg1Pj/Mg9vet5uKVMb0=";
   };
 
   buildInputs = [ openssl ];
diff --git a/nixpkgs/pkgs/development/python-modules/py-sneakers/default.nix b/nixpkgs/pkgs/development/python-modules/py-sneakers/default.nix
index 62174c3dfc26..b69516d47a77 100644
--- a/nixpkgs/pkgs/development/python-modules/py-sneakers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-sneakers/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to emulate the Sneakers movie effect";
+    mainProgram = "py-sneakers";
     homepage = "https://github.com/aenima-x/py-sneakers";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/py-stringmatching/default.nix b/nixpkgs/pkgs/development/python-modules/py-stringmatching/default.nix
index b5bdffca7590..305451aeb165 100644
--- a/nixpkgs/pkgs/development/python-modules/py-stringmatching/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-stringmatching/default.nix
@@ -10,15 +10,14 @@
 
 buildPythonPackage rec {
   pname = "py-stringmatching";
-  version = "0.4.3";
+  version = "0.4.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    pname = "py_stringmatching";
-    inherit version;
-    hash = "sha256-khubsWOzEN80HDOCORMgT3sMqfajGfW0UUCDAL03je4=";
+    inherit pname version;
+    hash = "sha256-2XuhtWKtmO/8lGaHxdqwdMF6UVEUqw3PUCIC1c7J8rU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/py-synologydsm-api/default.nix b/nixpkgs/pkgs/development/python-modules/py-synologydsm-api/default.nix
index a8019318e538..26a101389eb7 100644
--- a/nixpkgs/pkgs/development/python-modules/py-synologydsm-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-synologydsm-api/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python API for Synology DSM";
+    mainProgram = "synologydsm-api";
     homepage = "https://github.com/mib1185/py-synologydsm-api";
     changelog = "https://github.com/mib1185/py-synologydsm-api/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/py-tree-sitter/default.nix b/nixpkgs/pkgs/development/python-modules/py-tree-sitter/default.nix
deleted file mode 100644
index 9358a0fbca88..000000000000
--- a/nixpkgs/pkgs/development/python-modules/py-tree-sitter/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-}:
-
-buildPythonPackage rec {
-  pname = "py-tree-sitter";
-  version = "0.20.4";
-  format = "pyproject";
-
-  src = fetchFromGitHub {
-    owner = "tree-sitter";
-    repo = "py-tree-sitter";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-R97WcsHQMcuEOCg/QQ9YbGTRD30G9PRv0xAbxuoFyC4=";
-    fetchSubmodules = true;
-  };
-
-  nativeBuildInputs = [
-    setuptools
-  ];
-
-  pythonImportsCheck = [ "tree_sitter" ];
-
-  meta = with lib; {
-    homepage = "https://github.com/tree-sitter/py-tree-sitter";
-    description = "Python bindings for tree-sitter";
-    license = licenses.mit;
-    maintainers = with maintainers; [ siraben ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/py-vapid/default.nix b/nixpkgs/pkgs/development/python-modules/py-vapid/default.nix
index 25dd99816d0f..89b7a045d0c1 100644
--- a/nixpkgs/pkgs/development/python-modules/py-vapid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-vapid/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for VAPID header generation";
+    mainProgram = "vapid";
     homepage = "https://github.com/mozilla-services/vapid";
     license = licenses.mpl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/py3langid/default.nix b/nixpkgs/pkgs/development/python-modules/py3langid/default.nix
index 02631320c4af..84e758bfc5ef 100644
--- a/nixpkgs/pkgs/development/python-modules/py3langid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py3langid/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Fork of the language identification tool langid.py, featuring a modernized codebase and faster execution times";
+    mainProgram = "langid";
     homepage = "https://github.com/adbar/py3langid";
     changelog = "https://github.com/adbar/py3langid/blob/v${version}/HISTORY.rst";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/py3nvml/default.nix b/nixpkgs/pkgs/development/python-modules/py3nvml/default.nix
index 3cd3b122d867..e551298e69fe 100644
--- a/nixpkgs/pkgs/development/python-modules/py3nvml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py3nvml/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python 3 Bindings for the NVIDIA Management Library";
+    mainProgram = "py3smi";
     homepage = "https://pypi.org/project/py3nvml/";
     license = with licenses; [ bsd3 bsd2 ];
     maintainers = with maintainers; [ happysalada ];
diff --git a/nixpkgs/pkgs/development/python-modules/py65/default.nix b/nixpkgs/pkgs/development/python-modules/py65/default.nix
index 5748b8c16938..3c06f5932f00 100644
--- a/nixpkgs/pkgs/development/python-modules/py65/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py65/default.nix
@@ -27,6 +27,7 @@ buildPythonPackage rec {
   meta = {
     homepage = "https://py65.readthedocs.io/";
     description = "Emulate 6502-based microcomputer systems in Python";
+    mainProgram = "py65mon";
     longDescription = ''
       Py65 includes a program called Py65Mon that functions as a machine
       language monitor. This kind of program is sometimes also called a
diff --git a/nixpkgs/pkgs/development/python-modules/pyamg/default.nix b/nixpkgs/pkgs/development/python-modules/pyamg/default.nix
index 4180edaebde3..6c33a2d9ca24 100644
--- a/nixpkgs/pkgs/development/python-modules/pyamg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyamg/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pyamg";
-  version = "5.0.1";
-  format = "setuptools";
+  version = "5.1.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-XwSKAXQzQ64NTIYjBgBzhs+5sURTxHrf2tJ363mkbVA=";
+    hash = "sha256-+Q+d55W04pWJ7dLrRG0R3bRmZ46+gj7TKfzzV1nqOQw=";
   };
 
   nativeBuildInputs = [
@@ -54,6 +54,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/pyamg/pyamg";
     changelog = "https://github.com/pyamg/pyamg/blob/v${version}/changelog.md";
     license = licenses.mit;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyaml/default.nix b/nixpkgs/pkgs/development/python-modules/pyaml/default.nix
index 70c660e0daad..7a52c601ef35 100644
--- a/nixpkgs/pkgs/development/python-modules/pyaml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyaml/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "pyaml";
-  version = "23.9.7";
+  version = "23.12.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-WB6k6Z8OMIhkQH4EwDxgkkGu+joV37qJZNp2RLrzshc=";
+    hash = "sha256-zm9kjv37GzpVefjO2wT6zw+h6PZIRrY5MJtYW7MitOU=";
   };
 
   nativeBuildInputs = [
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "PyYAML-based module to produce pretty and readable YAML-serialized data";
+    mainProgram = "pyaml";
     homepage = "https://github.com/mk-fg/pretty-yaml";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyannotate/default.nix b/nixpkgs/pkgs/development/python-modules/pyannotate/default.nix
index 053844d71fe9..abf751e88afd 100644
--- a/nixpkgs/pkgs/development/python-modules/pyannotate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyannotate/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Auto-generate PEP-484 annotations";
+    mainProgram = "pyannotate";
     homepage = "https://github.com/dropbox/pyannotate";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyannote-database/default.nix b/nixpkgs/pkgs/development/python-modules/pyannote-database/default.nix
index 0b90e9ce224b..e3e3ac56ca70 100644
--- a/nixpkgs/pkgs/development/python-modules/pyannote-database/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyannote-database/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Reproducible experimental protocols for multimedia (audio, video, text) database";
+    mainProgram = "pyannote-database";
     homepage = "https://github.com/pyannote/pyannote-database";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewcroughan ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyannote-metrics/default.nix b/nixpkgs/pkgs/development/python-modules/pyannote-metrics/default.nix
index e5c26d3d410a..1ab1a9668160 100644
--- a/nixpkgs/pkgs/development/python-modules/pyannote-metrics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyannote-metrics/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A toolkit for reproducible evaluation, diagnostic, and error analysis of speaker diarization systems";
+    mainProgram = "pyannote-metrics";
     homepage = "https://github.com/pyannote/pyannote-metrics";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyannote-pipeline/default.nix b/nixpkgs/pkgs/development/python-modules/pyannote-pipeline/default.nix
index 52e96b05ed14..00b7eab6344a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyannote-pipeline/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyannote-pipeline/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tunable pipelines";
+    mainProgram = "pyannote-pipeline";
     homepage = "https://github.com/pyannote/pyannote-pipeline";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyathena/default.nix b/nixpkgs/pkgs/development/python-modules/pyathena/default.nix
index 5c7930601745..369131a06433 100644
--- a/nixpkgs/pkgs/development/python-modules/pyathena/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyathena/default.nix
@@ -5,8 +5,8 @@
 , fastparquet
 , fetchPypi
 , fsspec
+, hatchling
 , pandas
-, poetry-core
 , pyarrow
 , pythonOlder
 , sqlalchemy
@@ -15,18 +15,18 @@
 
 buildPythonPackage rec {
   pname = "pyathena";
-  version = "3.1.0";
+  version = "3.3.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-cOTkKKeNzHcqRDfZaXR0CrL75SgH5102H89tuF4L9M4=";
+    hash = "sha256-3S5iQembhaQ1McxAJyZEgG0z60S5UhEWGv7BtJbkPTc=";
   };
 
   nativeBuildInputs = [
-    poetry-core
+    hatchling
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyatome/default.nix b/nixpkgs/pkgs/development/python-modules/pyatome/default.nix
index efc0a8ba554b..2022260d4817 100644
--- a/nixpkgs/pkgs/development/python-modules/pyatome/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyatome/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to get energy consumption data from Atome";
+    mainProgram = "pyatome";
     homepage = "https://github.com/baqs/pyAtome";
     license = licenses.asl20;
     maintainers = with maintainers; [ uvnikita ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix b/nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix
index e3826a9a3698..818ea47fc497 100644
--- a/nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyaxmlparser/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python3 Parser for Android XML file and get Application Name without using Androguard";
+    mainProgram = "apkinfo";
     homepage = "https://github.com/appknox/pyaxmlparser";
     # Files from Androguard are licensed ASL 2.0
     license = with licenses; [ mit asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pybase64/default.nix b/nixpkgs/pkgs/development/python-modules/pybase64/default.nix
index 944247e1fac9..fdc65a0abe72 100644
--- a/nixpkgs/pkgs/development/python-modules/pybase64/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybase64/default.nix
@@ -27,6 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Fast Base64 encoding/decoding";
+    mainProgram = "pybase64";
     homepage = "https://github.com/mayeut/pybase64";
     changelog = "https://github.com/mayeut/pybase64/releases/tag/v${version}";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/pybids/default.nix b/nixpkgs/pkgs/development/python-modules/pybids/default.nix
index f6f5a8fc18ed..d702b4d509d3 100644
--- a/nixpkgs/pkgs/development/python-modules/pybids/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybids/default.nix
@@ -67,6 +67,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python tools for querying and manipulating BIDS datasets";
+    mainProgram = "pybids";
     homepage = "https://github.com/bids-standard/pybids";
     changelog = "https://github.com/bids-standard/pybids/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pybind11/default.nix b/nixpkgs/pkgs/development/python-modules/pybind11/default.nix
index 223c505df146..cfb7d42a6f46 100644
--- a/nixpkgs/pkgs/development/python-modules/pybind11/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybind11/default.nix
@@ -115,6 +115,7 @@ in buildPythonPackage rec {
     homepage = "https://github.com/pybind/pybind11";
     changelog = "https://github.com/pybind/pybind11/blob/${src.rev}/docs/changelog.rst";
     description = "Seamless operability between C++11 and Python";
+    mainProgram = "pybind11-config";
     longDescription = ''
       Pybind11 is a lightweight header-only library that exposes
       C++ types in Python and vice versa, mainly to create Python
diff --git a/nixpkgs/pkgs/development/python-modules/pycairo/default.nix b/nixpkgs/pkgs/development/python-modules/pycairo/default.nix
index 628853a89ce0..a2b865e7b71c 100644
--- a/nixpkgs/pkgs/development/python-modules/pycairo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycairo/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pycairo";
-  version = "1.25.1";
+  version = "1.26.0";
 
   disabled = pythonOlder "3.6";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "pygobject";
     repo = "pycairo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-HH4BjdSkdL8lI8L/Z2ltuuWWOkfetfgv4WQm6PIoEa0=";
+    hash = "sha256-AUnMPsGFkCgVKUdQfym35ZqrA48wq31BNsvc2puoCl8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pycaption/default.nix b/nixpkgs/pkgs/development/python-modules/pycaption/default.nix
index c6d65db362ae..3384ad516b5f 100644
--- a/nixpkgs/pkgs/development/python-modules/pycaption/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycaption/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pycaption";
-  version = "2.2.4";
+  version = "2.2.5";
 
   disabled = pythonOlder "3.8";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "pbs";
     repo = "pycaption";
     rev = "refs/tags/${version}";
-    hash = "sha256-aUhNvqeSNtbnRVp4yxsk4q3szNfR0m1zo0MpkBOCokY=";
+    hash = "sha256-zI5zRjvtsVgiIgWsQQgBQHhbYSGRBB6RLYgpbZWJQHs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pycardano/default.nix b/nixpkgs/pkgs/development/python-modules/pycardano/default.nix
index 118e4ed66b5e..75bef6723d5d 100644
--- a/nixpkgs/pkgs/development/python-modules/pycardano/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycardano/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, pythonRelaxDepsHook
 # Python deps
 , blockfrost-python
 , cachetools
@@ -41,6 +42,10 @@ in buildPythonPackage rec {
     hash = "sha256-LP/W8IC2del476fGFq10VMWwMrbAoCCcZOngA8unBM0=";
   };
 
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
   propagatedBuildInputs = [
     blockfrost-python
     cachetools
@@ -58,6 +63,8 @@ in buildPythonPackage rec {
     websocket-client
   ];
 
+  pythonRelaxDeps = [ "typeguard" ];
+
   pythonImportsCheck = [ "pycardano" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pycec/default.nix b/nixpkgs/pkgs/development/python-modules/pycec/default.nix
index 58da1c55b934..831b12efa987 100644
--- a/nixpkgs/pkgs/development/python-modules/pycec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycec/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python modules to access HDMI CEC devices";
+    mainProgram = "pycec";
     homepage = "https://github.com/konikvranik/pycec/";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pycflow2dot/default.nix b/nixpkgs/pkgs/development/python-modules/pycflow2dot/default.nix
index 34ea15664c4b..7bcd95e30d90 100644
--- a/nixpkgs/pkgs/development/python-modules/pycflow2dot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycflow2dot/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Layout C call graphs from cflow using GraphViz dot";
+    mainProgram = "cflow2dot";
     homepage    = "https://github.com/johnyf/pycflow2dot";
     license     = licenses.gpl3Plus;
     maintainers = with maintainers; [ evils ];
diff --git a/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix b/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
index f5e6029e8560..5e4e971432ed 100644
--- a/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pychromecast";
-  version = "14.0.0";
+  version = "14.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyChromecast";
     inherit version;
-    hash = "sha256-3E+LBS52CpeNqbJWi3kCDLea9gigJkZfB1RM/+Q5c88=";
+    hash = "sha256-4W4Kf5SIMZGRuLT6IcoL60vxLu2lyb9kAkEYjyvqCj4=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pyclip/default.nix b/nixpkgs/pkgs/development/python-modules/pyclip/default.nix
index c9819b523ad9..88fd8db0419e 100644
--- a/nixpkgs/pkgs/development/python-modules/pyclip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyclip/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
   meta = {
     broken = stdenv.isDarwin;
     description = "Cross-platform clipboard utilities supporting both binary and text data";
+    mainProgram = "pyclip";
     homepage = "https://github.com/spyoungtech/pyclip";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ mcaju ];
diff --git a/nixpkgs/pkgs/development/python-modules/pycodestyle/default.nix b/nixpkgs/pkgs/development/python-modules/pycodestyle/default.nix
index 761e9c0562a4..f17001efdda1 100644
--- a/nixpkgs/pkgs/development/python-modules/pycodestyle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycodestyle/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/PyCQA/pycodestyle/blob/${version}/CHANGES.txt";
     description = "Python style guide checker";
+    mainProgram = "pycodestyle";
     homepage = "https://pycodestyle.pycqa.org/";
     license = licenses.mit;
     maintainers = with maintainers; [
diff --git a/nixpkgs/pkgs/development/python-modules/pycognito/default.nix b/nixpkgs/pkgs/development/python-modules/pycognito/default.nix
index aa503a379cf1..e0f4e1d190a7 100644
--- a/nixpkgs/pkgs/development/python-modules/pycognito/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycognito/default.nix
@@ -7,15 +7,15 @@
 , freezegun
 , mock
 , moto
+, pyjwt
 , pytestCheckHook
-, python-jose
 , requests
 , requests-mock
 }:
 
 buildPythonPackage rec {
   pname = "pycognito";
-  version = "2023.5.0";
+  version = "2024.2.0";
   format = "setuptools";
   disabled = isPy27;
 
@@ -23,15 +23,16 @@ buildPythonPackage rec {
     owner = "pvizeli";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-2Aqid2bd5BAnWQ+Wtji0zXjLAmSpyJNGqJ0VroGi6lY=";
+    hash = "sha256-VYko5KcJvnhPUceTll2BBJWb88SYnSL7S3mZ7XSLPSQ=";
   };
 
   propagatedBuildInputs = [
     boto3
     envs
-    python-jose
+    pyjwt
     requests
-  ];
+  ]
+  ++ pyjwt.optional-dependencies.crypto;
 
   nativeCheckInputs = [
     freezegun
@@ -39,7 +40,8 @@ buildPythonPackage rec {
     moto
     pytestCheckHook
     requests-mock
-  ];
+  ]
+  ++ moto.optional-dependencies.cognitoidp;
 
   postPatch = ''
     substituteInPlace setup.py \
diff --git a/nixpkgs/pkgs/development/python-modules/pycontracts/default.nix b/nixpkgs/pkgs/development/python-modules/pycontracts/default.nix
index 2a90bef72567..bc17546643d5 100644
--- a/nixpkgs/pkgs/development/python-modules/pycontracts/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycontracts/default.nix
@@ -2,11 +2,12 @@
 , nose, pyparsing, decorator, six, future }:
 
 buildPythonPackage rec {
-  pname = "PyContracts";
+  pname = "pycontracts";
   version = "1.8.14";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "PyContracts";
+    inherit version;
     sha256 = "03q5m595ysjrc9h57m7prrca6b9l4yrzvdijnzxnhd61p7jzbh49";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pycountry/default.nix b/nixpkgs/pkgs/development/python-modules/pycountry/default.nix
index 49a1ad025000..75287c6cbf6b 100644
--- a/nixpkgs/pkgs/development/python-modules/pycountry/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycountry/default.nix
@@ -1,22 +1,41 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, setuptools
+, pythonOlder
+, fetchFromGitHub
+, fetchpatch2
+, poetry-core
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pycountry";
-  version = "22.3.5";
-  format = "setuptools";
+  version = "23.12.11";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-shY6JGxYWJTYCPGHg+GRN8twoMGPs2dI3AH8bxCcFkY=";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "pycountry";
+    repo = "pycountry";
+    rev = "refs/tags/${version}";
+    hash = "sha256-B6kphZZZgK0YuPSmkiQNbEqEfqOQb+WZGnO2UeEqQN4=";
   };
 
-  propagatedBuildInputs = [
-    setuptools
+  patches = [
+    (fetchpatch2 {
+      name = "fix-usage-of-importlib_metadata.patch";
+      url = "https://github.com/pycountry/pycountry/commit/824d2535833d061c04a1f1b6b964f42bb53bced2.patch";
+      excludes = [ "HISTORY.txt" "poetry.lock" "pyproject.toml" ];
+      hash = "sha256-U4fbZP++d6YfTJkVG3k2rBC8nOF9NflM6+ONlwBNu+g=";
+    })
+  ];
+
+  postPatch = ''
+    sed -i "/addopts/d" pytest.ini
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
   ];
 
   nativeCheckInputs = [
@@ -27,11 +46,11 @@ buildPythonPackage rec {
     "pycountry"
   ];
 
-  meta = with lib; {
-    homepage = "https://github.com/flyingcircusio/pycountry";
+  meta = {
+    homepage = "https://github.com/pycountry/pycountry";
+    changelog = "https://github.com/pycountry/pycountry/blob/${src.rev}/HISTORY.txt";
     description = "ISO country, subdivision, language, currency and script definitions and their translations";
-    license = licenses.lgpl2;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.lgpl21Plus;
+    maintainers = with lib.maintainers; [ dotlambda ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pycrc/default.nix b/nixpkgs/pkgs/development/python-modules/pycrc/default.nix
index ca65f784038a..71404dd4d5ad 100644
--- a/nixpkgs/pkgs/development/python-modules/pycrc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycrc/default.nix
@@ -1,11 +1,12 @@
 { lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
-  pname = "PyCRC";
+  pname = "pycrc";
   version = "1.21";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "PyCRC";
+    inherit version;
     sha256 = "d3b0e788b501f48ae2ff6eeb34652343c9095e4356a65df217ed29b51e4045b6";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pycrdt-websocket/default.nix b/nixpkgs/pkgs/development/python-modules/pycrdt-websocket/default.nix
index 4ed22901637e..74e34811279f 100644
--- a/nixpkgs/pkgs/development/python-modules/pycrdt-websocket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycrdt-websocket/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pycrdt-websocket";
-  version = "0.12.6";
+  version = "0.12.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "jupyter-server";
     repo = "pycrdt-websocket";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VYD1OrerqwzjaT1Eb6q+kryf15iHCMSHJZbon225bio=";
+    hash = "sha256-e4VEEudsdtfC2ek8wODxxoFuaOwl4GKS1cX3QeshuD8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pycrdt/Cargo.lock b/nixpkgs/pkgs/development/python-modules/pycrdt/Cargo.lock
index d638e9082b3b..ac98cbf0d09f 100644
--- a/nixpkgs/pkgs/development/python-modules/pycrdt/Cargo.lock
+++ b/nixpkgs/pkgs/development/python-modules/pycrdt/Cargo.lock
@@ -3,6 +3,12 @@
 version = 3
 
 [[package]]
+name = "arc-swap"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f"
+
+[[package]]
 name = "atomic_refcell"
 version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -22,9 +28,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "cfg-if"
@@ -33,10 +39,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
 name = "getrandom"
-version = "0.1.16"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -46,10 +61,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
 name = "indoc"
-version = "1.0.9"
+version = "2.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
+checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
 
 [[package]]
 name = "itoa"
@@ -59,18 +80,18 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "js-sys"
-version = "0.3.66"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "libc"
-version = "0.2.151"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "lock_api"
@@ -84,9 +105,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 = "memoffset"
@@ -127,23 +148,23 @@ dependencies = [
 ]
 
 [[package]]
-name = "ppv-lite86"
-version = "0.2.17"
+name = "portable-atomic"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.71"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "pycrdt"
-version = "0.8.2"
+version = "0.8.13"
 dependencies = [
  "pyo3",
  "yrs",
@@ -151,15 +172,16 @@ dependencies = [
 
 [[package]]
 name = "pyo3"
-version = "0.19.2"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38"
+checksum = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233"
 dependencies = [
  "cfg-if",
  "indoc",
  "libc",
  "memoffset",
  "parking_lot",
+ "portable-atomic",
  "pyo3-build-config",
  "pyo3-ffi",
  "pyo3-macros",
@@ -168,9 +190,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-build-config"
-version = "0.19.2"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5"
+checksum = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7"
 dependencies = [
  "once_cell",
  "target-lexicon",
@@ -178,9 +200,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-ffi"
-version = "0.19.2"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9"
+checksum = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
 dependencies = [
  "libc",
  "pyo3-build-config",
@@ -188,78 +210,39 @@ dependencies = [
 
 [[package]]
 name = "pyo3-macros"
-version = "0.19.2"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1"
+checksum = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158"
 dependencies = [
  "proc-macro2",
  "pyo3-macros-backend",
  "quote",
- "syn 1.0.109",
+ "syn",
 ]
 
 [[package]]
 name = "pyo3-macros-backend"
-version = "0.19.2"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536"
+checksum = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
 dependencies = [
+ "heck",
  "proc-macro2",
+ "pyo3-build-config",
  "quote",
- "syn 1.0.109",
+ "syn",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
-name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom",
- "libc",
- "rand_chacha",
- "rand_core",
- "rand_hc",
-]
-
-[[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",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core",
-]
-
-[[package]]
 name = "redox_syscall"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -270,9 +253,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.16"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "scopeguard"
@@ -282,29 +265,29 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.43",
+ "syn",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.108"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -322,26 +305,15 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
-
-[[package]]
-name = "syn"
-version = "1.0.109"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "syn"
-version = "2.0.43"
+version = "2.0.53"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53"
+checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -350,28 +322,28 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.12"
+version = "0.12.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "thiserror"
-version = "1.0.52"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83a48fd946b02c0a526b2e9481c8e2a17755e47039164a86c4070446e3a4614d"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.52"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7fbe9b594d6568a6a1443250a7e67d80b74e1e96f6d1715e1e21cc1888291d3"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.43",
+ "syn",
 ]
 
 [[package]]
@@ -382,21 +354,21 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unindent"
-version = "0.1.11"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
+checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
 
 [[package]]
 name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
+version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -404,24 +376,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.43",
+ "syn",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -429,22 +401,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.43",
+ "syn",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "windows-targets"
@@ -505,12 +477,13 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "yrs"
-version = "0.17.2"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68aea14c6c33f2edd8a5ff9415360cfa5b98d90cce30c5ee3be59a8419fb15a9"
+checksum = "5ad19cd99f9c036345d66331db64c7b2c823ca1ac2c30c5ca26eed149c6b4672"
 dependencies = [
+ "arc-swap",
  "atomic_refcell",
- "rand",
+ "fastrand",
  "serde",
  "serde_json",
  "smallstr",
diff --git a/nixpkgs/pkgs/development/python-modules/pycrdt/default.nix b/nixpkgs/pkgs/development/python-modules/pycrdt/default.nix
index d33a8622733c..c77c360516a0 100644
--- a/nixpkgs/pkgs/development/python-modules/pycrdt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycrdt/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "pycrdt";
-  version = "0.8.2";
+  version = "0.8.13";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jupyter-server";
     repo = "pycrdt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RY0ndkMW4a2KxkebkoSEAzCgdUyHujglHJCzkoFCJZA=";
+    hash = "sha256-puYJ0mR1JpwD823P6JrXmNjFvqZUPqEj2T4Wk81oBMU=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pycritty/default.nix b/nixpkgs/pkgs/development/python-modules/pycritty/default.nix
index 18101f057587..1044d2e72e77 100644
--- a/nixpkgs/pkgs/development/python-modules/pycritty/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycritty/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A CLI tool for changing your alacritty configuration on the fly";
+    mainProgram = "pycritty";
     homepage = "https://github.com/antoniosarosi/pycritty";
     license = licenses.mit;
     maintainers = with maintainers; [ jperras ];
diff --git a/nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix b/nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix
index 444d673100bb..358348d865d8 100644
--- a/nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix
@@ -10,14 +10,14 @@ let
 in
 buildPythonPackage rec {
   pname = "pycryptodome";
-  version = "3.19.1";
+  version = "3.20.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "Legrandin";
     repo = "pycryptodome";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+m0gF47l3c9gZ9dLdOUNW0I2W1O+OGrmsdysu7QdjvI=";
+    hash = "sha256-RPaBUj/BJCO+10maGDmugeEXxaIrlk2UHIvkbrQVM8c=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pycryptodome/vectors.nix b/nixpkgs/pkgs/development/python-modules/pycryptodome/vectors.nix
index 89df4507867e..3b6e2844df4c 100644
--- a/nixpkgs/pkgs/development/python-modules/pycryptodome/vectors.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycryptodome/vectors.nix
@@ -1,19 +1,24 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pycryptodome-test-vectors";
-  version = "1.0.10";
-  format = "setuptools";
+  version = "1.0.14";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-oqgHWAw0Xrc22eAuY6+Q/H90tL9Acz6V0EJp060hH2Q=";
+    hash = "sha256-1De0SjXcr8BibDVhv7G1BqG3x0RcxfudNuI3QWG8mjc=";
     extension = "zip";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # Module has no tests
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyct/default.nix b/nixpkgs/pkgs/development/python-modules/pyct/default.nix
index 1aed69b85fe6..4897a7e54917 100644
--- a/nixpkgs/pkgs/development/python-modules/pyct/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyct/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "ClI for Python common tasks for users";
+    mainProgram = "pyct";
     homepage = "https://github.com/pyviz/pyct";
     changelog = "https://github.com/pyviz-dev/pyct/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pycurl/default.nix b/nixpkgs/pkgs/development/python-modules/pycurl/default.nix
index 80a9458e32c6..3e966057bb24 100644
--- a/nixpkgs/pkgs/development/python-modules/pycurl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycurl/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "pycurl";
-  version = "7.45.2";
+  version = "7.45.3";
   format = "setuptools";
   disabled = isPyPy || (pythonOlder "3.5"); # https://github.com/pycurl/pycurl/issues/208
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-VzBZC+AnE2Slvd2eJFycwPtxDEy6y92VJkoxItIyJMo=";
+    hash = "sha256-jCRxr5B5rXmOFkXsCw09QiPbaHN50X3TanBjdEn4HWs=";
   };
 
   preConfigure = ''
@@ -74,6 +74,8 @@ buildPythonPackage rec {
     "test_multi_socket_action"
     # https://github.com/pycurl/pycurl/issues/822
     "test_request_with_verifypeer"
+    # https://github.com/pycurl/pycurl/issues/836
+    "test_proxy_tlsauth"
   ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
     # Fatal Python error: Segmentation fault
     "cadata_test"
diff --git a/nixpkgs/pkgs/development/python-modules/pydaikin/default.nix b/nixpkgs/pkgs/development/python-modules/pydaikin/default.nix
index eb1029837435..d669efbffbeb 100644
--- a/nixpkgs/pkgs/development/python-modules/pydaikin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydaikin/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python Daikin HVAC appliances interface";
+    mainProgram = "pydaikin";
     homepage = "https://bitbucket.org/mustang51/pydaikin";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pydantic-core/default.nix b/nixpkgs/pkgs/development/python-modules/pydantic-core/default.nix
index 8efa37dd65fa..6242c205ea70 100644
--- a/nixpkgs/pkgs/development/python-modules/pydantic-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydantic-core/default.nix
@@ -17,14 +17,14 @@
 let
   pydantic-core = buildPythonPackage rec {
     pname = "pydantic-core";
-    version = "2.14.6";
-    format = "pyproject";
+    version = "2.16.3";
+    pyproject = true;
 
     src = fetchFromGitHub {
       owner = "pydantic";
       repo = "pydantic-core";
       rev = "refs/tags/v${version}";
-      hash = "sha256-Y3RdDqFrH5C8Jt45FV6jLRV8G9odkqM1fBz6axeXF+4=";
+      hash = "sha256-RXytujvx/23Z24TWpvnHdjJ4/dXqjs5uiavUmukaD9A=";
     };
 
     patches = [
@@ -34,14 +34,17 @@ let
     cargoDeps = rustPlatform.fetchCargoTarball {
       inherit src;
       name = "${pname}-${version}";
-      hash = "sha256-tx8eS+MciP1C6U8FrKdTgelHb/yxU2eSdSydIMKh4rs=";
+      hash = "sha256-wj9u6s/3E3EWfQydkLrwHbJBvm8DwcGCoQQpSw1+q7U=";
     };
 
     nativeBuildInputs = [
       cargo
       rustPlatform.cargoSetupHook
-      rustPlatform.maturinBuildHook
       rustc
+    ];
+
+    build-system = [
+      rustPlatform.maturinBuildHook
       typing-extensions
     ];
 
@@ -49,7 +52,7 @@ let
       libiconv
     ];
 
-    propagatedBuildInputs = [
+    dependencies = [
       typing-extensions
     ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pydantic-extra-types/default.nix b/nixpkgs/pkgs/development/python-modules/pydantic-extra-types/default.nix
index 539873a1a4be..7595ac0b1d57 100644
--- a/nixpkgs/pkgs/development/python-modules/pydantic-extra-types/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydantic-extra-types/default.nix
@@ -3,21 +3,23 @@
 , fetchFromGitHub
 , hatchling
 , pydantic
+, pendulum
 , phonenumbers
 , pycountry
+, python-ulid
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pydantic-extra-types";
-  version = "2.1.0";
-  format = "pyproject";
+  version = "2.6.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pydantic";
     repo = "pydantic-extra-types";
-    rev = "v${version}";
-    hash = "sha256-QPBOHIssTsWQlEg2WRpLRKrB6zmae43EExnPn5P4oAY=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-XLVhoZ3+TfVYEuk/5fORaGpCBaB5NcuskWhHgt+llS0=";
   };
 
   nativeBuildInputs = [
@@ -30,8 +32,10 @@ buildPythonPackage rec {
 
   passthru.optional-dependencies = {
     all = [
+      pendulum
       phonenumbers
       pycountry
+      python-ulid
     ];
   };
 
@@ -41,11 +45,8 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ passthru.optional-dependencies.all;
 
-  pytestFlagsArray = [
-    "-W" "ignore::DeprecationWarning"
-  ];
-
   meta = with lib; {
+    changelog = "https://github.com/pydantic/pydantic-extra-types/blob/${src.rev}/HISTORY.md";
     description = "Extra Pydantic types";
     homepage = "https://github.com/pydantic/pydantic-extra-types";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pydantic-settings/default.nix b/nixpkgs/pkgs/development/python-modules/pydantic-settings/default.nix
index 000f0dd52a17..250c1b875630 100644
--- a/nixpkgs/pkgs/development/python-modules/pydantic-settings/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydantic-settings/default.nix
@@ -12,7 +12,7 @@
 
 let self = buildPythonPackage rec {
   pname = "pydantic-settings";
-  version = "2.1.0";
+  version = "2.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,8 +20,8 @@ let self = buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "pydantic";
     repo = "pydantic-settings";
-    rev = "v${version}";
-    hash = "sha256-hU7u/AzaqCHKSUDHybsgXTW8IWi9hzBttPYDmMqdZbI=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-4o8LlIFVizoxb484lVT67e24jhtUl49otr1lX/2zZ4M=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pydantic/1.nix b/nixpkgs/pkgs/development/python-modules/pydantic/1.nix
index 42ce2745d727..6a1f5c52116c 100644
--- a/nixpkgs/pkgs/development/python-modules/pydantic/1.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydantic/1.nix
@@ -5,6 +5,7 @@
 , fetchFromGitHub
 , pytest-mock
 , pytestCheckHook
+, pytest_7
 , python-dotenv
 , pythonAtLeast
 , pythonOlder
@@ -51,7 +52,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytest-mock
-    pytestCheckHook
+    (pytestCheckHook.override { pytest = pytest_7; })
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
   pytestFlagsArray = [
diff --git a/nixpkgs/pkgs/development/python-modules/pydantic/default.nix b/nixpkgs/pkgs/development/python-modules/pydantic/default.nix
index c81b46a20586..bb0a4bedde49 100644
--- a/nixpkgs/pkgs/development/python-modules/pydantic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydantic/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , pythonOlder
 
 # build-system
@@ -26,28 +27,37 @@
 
 buildPythonPackage rec {
   pname = "pydantic";
-  version = "2.5.3";
+  version = "2.6.3";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pydantic";
     repo = "pydantic";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YTNV67uKGRag6ICkNjjY9YrOiKFB1hSZkKcUXjSrhwM=";
+    hash = "sha256-neTdG/IcXopCmevzFY5/XDlhPHmOb6dhyAnzaobmeG8=";
   };
 
+  patches = [
+    (fetchpatch {
+      # https://github.com/pydantic/pydantic/pull/8678
+      name = "fix-pytest8-compatibility.patch";
+      url = "https://github.com/pydantic/pydantic/commit/825a6920e177a3b65836c13c7f37d82b810ce482.patch";
+      hash = "sha256-Dap5DtDzHw0jS/QUo5CRI9sLDJ719GRyC4ZNDWEdzus=";
+     })
+  ];
+
   buildInputs = lib.optionals (pythonOlder "3.9") [
     libxcrypt
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-fancy-pypi-readme
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     annotated-types
     pydantic-core
     typing-extensions
@@ -76,6 +86,17 @@ buildPythonPackage rec {
       --replace "'--benchmark-disable'," ""
   '';
 
+  pytestFlagsArray = [
+    # suppress warnings with pytest>=8
+    "-Wignore::pydantic.warnings.PydanticDeprecatedSince20"
+    "-Wignore::pydantic.json_schema.PydanticJsonSchemaWarning"
+  ];
+
+  disabledTests = [
+    # disable failing test with pytest>=8
+    "test_assert_raises_validation_error"
+  ];
+
   disabledTestPaths = [
     "tests/benchmarks"
 
diff --git a/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix b/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix
index f64913c32d33..f9de6f4ad880 100644
--- a/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydeconz/default.nix
@@ -54,6 +54,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library wrapping the Deconz REST API";
+    mainProgram = "pydeconz";
     homepage = "https://github.com/Kane610/deconz";
     changelog = "https://github.com/Kane610/deconz/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/pydeps/default.nix b/nixpkgs/pkgs/development/python-modules/pydeps/default.nix
index 9da4ff12b771..0488e35a1be8 100644
--- a/nixpkgs/pkgs/development/python-modules/pydeps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydeps/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pydeps";
-  version = "1.12.19";
+  version = "1.12.20";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "thebjorn";
     repo = "pydeps";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3z/7pkeP6R8GsWvSaCChcf0DZPrC3KdwLeGdNm4m6Jc=";
+    hash = "sha256-d6EeeNem+HfuipKF5ZOI48c11j0ozGrBP4XlqTx+fJ4=";
   };
 
   nativeBuildInputs = [
@@ -60,6 +60,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module dependency visualization";
+    mainProgram = "pydeps";
     homepage = "https://github.com/thebjorn/pydeps";
     changelog = "https://github.com/thebjorn/pydeps/releases/tag/v${version}";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/pydevd/default.nix b/nixpkgs/pkgs/development/python-modules/pydevd/default.nix
index df840a24db8f..25ca54297f25 100644
--- a/nixpkgs/pkgs/development/python-modules/pydevd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydevd/default.nix
@@ -73,6 +73,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "PyDev.Debugger (used in PyDev, PyCharm and VSCode Python)";
+    mainProgram = "pydevd";
     homepage = "https://github.com/fabioz/PyDev.Debugger";
     license = licenses.epl10;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/development/python-modules/pydicom/default.nix b/nixpkgs/pkgs/development/python-modules/pydicom/default.nix
index 48824469b230..6bcb0c42fa58 100644
--- a/nixpkgs/pkgs/development/python-modules/pydicom/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydicom/default.nix
@@ -82,6 +82,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Python package for working with DICOM files";
+    mainProgram = "pydicom";
     homepage = "https://pydicom.github.io";
     changelog = "https://github.com/pydicom/pydicom/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pydiscourse/default.nix b/nixpkgs/pkgs/development/python-modules/pydiscourse/default.nix
index f897509c182e..faffa9e619ee 100644
--- a/nixpkgs/pkgs/development/python-modules/pydiscourse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydiscourse/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python library for working with Discourse";
+    mainProgram = "pydiscoursecli";
     homepage = "https://github.com/pydiscourse/pydiscourse";
     changelog = "https://github.com/pydiscourse/pydiscourse/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pydmd/default.nix b/nixpkgs/pkgs/development/python-modules/pydmd/default.nix
index d77caf7e4ad0..3cf1f14f70e2 100644
--- a/nixpkgs/pkgs/development/python-modules/pydmd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydmd/default.nix
@@ -2,57 +2,68 @@
 , stdenv
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
 , future
 , matplotlib
 , numpy
 , pytestCheckHook
+, pytest-mock
 , pythonOlder
 , scipy
 , ezyrb
 }:
 
-buildPythonPackage rec {
-  pname = "pydmd";
-  version = "0.4.0.post2302";
-  format = "setuptools";
+let
+  self = buildPythonPackage rec {
+    pname = "pydmd";
+    version = "1.0.0";
+    pyproject = true;
 
-  disabled = pythonOlder "3.6";
+    disabled = pythonOlder "3.6";
 
-  src = fetchFromGitHub {
-    owner = "mathLab";
-    repo = "PyDMD";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-EYVmaxwOxje3KVrNbvsjwRqQBD7Rje/JK+qB1F7EqA0=";
-  };
+    src = fetchFromGitHub {
+      owner = "PyDMD";
+      repo = "PyDMD";
+      rev = "refs/tags/v${version}";
+      hash = "sha256-vprvq3sl/eNtu4cqg0A4XV96dzUt0nOtPmfwEv0h+PI=";
+    };
 
-  propagatedBuildInputs = [
-    future
-    matplotlib
-    numpy
-    scipy
-    ezyrb
+    build-system = [
+      setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+    propagatedBuildInputs = [
+      future
+      matplotlib
+      numpy
+      scipy
+      ezyrb
+    ];
 
-  pytestFlagsArray = [
-    # test suite takes over 100 vCPU hours, just run small subset of it.
-    # TODO: Add a passthru.tests with all tests
-    "tests/test_dmdbase.py"
-  ];
+    nativeCheckInputs = [
+      pytestCheckHook
+      pytest-mock
+    ];
 
-  pythonImportsCheck = [
-    "pydmd"
-  ];
+    pytestFlagsArray = [
+      "tests/test_dmdbase.py"
+    ];
+
+    pythonImportsCheck = [
+      "pydmd"
+    ];
+
+    passthru.tests = self.overrideAttrs (old: {
+      pytestFlagsArray = [];
+    });
 
-  meta = with lib; {
-    description = "Python Dynamic Mode Decomposition";
-    homepage = "https://mathlab.github.io/PyDMD/";
-    changelog = "https://github.com/mathLab/PyDMD/releases/tag/v${version}";
-    license = licenses.mit;
-    maintainers = with maintainers; [ yl3dy ];
-    broken = stdenv.hostPlatform.isAarch64;
+    meta = with lib; {
+      description = "Python Dynamic Mode Decomposition";
+      homepage = "https://pydmd.github.io/PyDMD/";
+      changelog = "https://github.com/PyDMD/PyDMD/releases/tag/v${version}";
+      license = licenses.mit;
+      maintainers = with maintainers; [ yl3dy ];
+      broken = stdenv.hostPlatform.isAarch64;
+    };
   };
-}
+in self
diff --git a/nixpkgs/pkgs/development/python-modules/pydocstyle/default.nix b/nixpkgs/pkgs/development/python-modules/pydocstyle/default.nix
index 62905e2a0865..d8207e37b600 100644
--- a/nixpkgs/pkgs/development/python-modules/pydocstyle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydocstyle/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
+, fetchpatch2
 , poetry-core
 , snowballstemmer
 , tomli
@@ -11,7 +12,7 @@
 buildPythonPackage rec {
   pname = "pydocstyle";
   version = "6.3.0";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -22,6 +23,15 @@ buildPythonPackage rec {
     hash = "sha256-MjRrnWu18f75OjsYIlOLJK437X3eXnlW8WkkX7vdS6k=";
   };
 
+  patches = [
+    # https://github.com/PyCQA/pydocstyle/pull/656
+    (fetchpatch2 {
+      name = "python312-compat.patch";
+      url = "https://github.com/PyCQA/pydocstyle/commit/306c7c8f2d863bdc098a65d2dadbd4703b9b16d5.patch";
+      hash = "sha256-bqnoLz1owzDpFqlZn8z4Z+RzKCYBsI0PqqeOtjLxnMo=";
+    })
+  ];
+
   nativeBuildInputs = [
     poetry-core
   ];
@@ -51,6 +61,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python docstring style checker";
+    mainProgram = "pydocstyle";
     homepage = "https://github.com/PyCQA/pydocstyle";
     changelog = "https://github.com/PyCQA/pydocstyle/blob/${version}/docs/release_notes.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pydoe/default.nix b/nixpkgs/pkgs/development/python-modules/pydoe/default.nix
index e361d09ced3b..5767442bef25 100644
--- a/nixpkgs/pkgs/development/python-modules/pydoe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydoe/default.nix
@@ -8,12 +8,13 @@
 }:
 
 buildPythonPackage rec {
-  pname = "pyDOE";
+  pname = "pydoe";
   version = "0.3.8";
   pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "pyDOE";
+    inherit version;
     hash = "sha256-y9bxSuJtPJ9zYBMgX1PqEZGt1FZwM8Pud7fdNWVmxLY=";
     extension = "zip";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pydot/default.nix b/nixpkgs/pkgs/development/python-modules/pydot/default.nix
index ac965f8404e0..94494842a9d0 100644
--- a/nixpkgs/pkgs/development/python-modules/pydot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydot/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pydot";
-  version = "1.4.2";
+  version = "2.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "248081a39bcb56784deb018977e428605c1c758f10897a339fce1dd728ff007d";
+    sha256 = "sha256-YCRq8hUSP6Bi8hzXkb5n3aI6bygN8J9okZ5jeh5PMjU=";
   };
 
   propagatedBuildInputs = [
@@ -53,9 +53,8 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    "test_exception_msg"
-    # Hash mismatch
-    "test_my_regression_tests"
+    # broken, fixed after 2.0.0
+    "test_graph_with_shapefiles"
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/pydot/hardcode-graphviz-path.patch b/nixpkgs/pkgs/development/python-modules/pydot/hardcode-graphviz-path.patch
index e862f1e7c2c3..29c3265f4335 100644
--- a/nixpkgs/pkgs/development/python-modules/pydot/hardcode-graphviz-path.patch
+++ b/nixpkgs/pkgs/development/python-modules/pydot/hardcode-graphviz-path.patch
@@ -1,13 +1,13 @@
-diff --git a/pydot.py b/pydot.py
-index 3c7da4d..582c5bc 100644
---- a/pydot.py
-+++ b/pydot.py
-@@ -124,7 +124,7 @@ def call_graphviz(program, arguments, working_dir, **kwargs):
-         'LD_LIBRARY_PATH': os.environ.get('LD_LIBRARY_PATH', ''),
+diff --git a/src/pydot/core.py b/src/pydot/core.py
+index 26f526b..78c27f5 100644
+--- a/src/pydot/core.py
++++ b/src/pydot/core.py
+@@ -209,7 +209,7 @@ def call_graphviz(program, arguments, working_dir, **kwargs):
+         "SYSTEMROOT": os.environ.get("SYSTEMROOT", ""),
      }
  
--    program_with_args = [program, ] + arguments
-+    program_with_args = ['@graphviz@/bin/' + program, ] + arguments
+-    program_with_args = [program] + arguments
++    program_with_args = [f"@graphviz@/bin/{program}"] + arguments
  
      process = subprocess.Popen(
          program_with_args,
diff --git a/nixpkgs/pkgs/development/python-modules/pyelftools/default.nix b/nixpkgs/pkgs/development/python-modules/pyelftools/default.nix
index 206062b5316f..84cdda65f1f9 100644
--- a/nixpkgs/pkgs/development/python-modules/pyelftools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyelftools/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for analyzing ELF files and DWARF debugging information";
+    mainProgram = "readelf.py";
     homepage = "https://github.com/eliben/pyelftools";
     changelog = "https://github.com/eliben/pyelftools/blob/v${version}/CHANGES";
     license = licenses.publicDomain;
diff --git a/nixpkgs/pkgs/development/python-modules/pyemvue/default.nix b/nixpkgs/pkgs/development/python-modules/pyemvue/default.nix
index d8502aaf4333..22e7e667929d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyemvue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyemvue/default.nix
@@ -14,12 +14,12 @@
 
 buildPythonPackage rec {
   pname = "pyemvue";
-  version = "0.18.0";
+  version = "0.18.4";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-s1Uuoiog3OkqOb6PSTqh79vgyLDGFIuZMCyQKH+qG3g=";
+    hash = "sha256-PTRVabYbT7Xwjkm+Oz56YjNb5Xwcgxn+IvXeazKsHyY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyenphase/default.nix b/nixpkgs/pkgs/development/python-modules/pyenphase/default.nix
index 05514f610ad1..549d0b8e8263 100644
--- a/nixpkgs/pkgs/development/python-modules/pyenphase/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyenphase/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "pyenphase";
-  version = "1.19.1";
+  version = "1.20.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -27,19 +27,19 @@ buildPythonPackage rec {
     owner = "pyenphase";
     repo = "pyenphase";
     rev = "refs/tags/v${version}";
-    hash = "sha256-2dKBqGIT4D4QUMixg4ZCxWXjE2zcXoji5i2v+vAPhL4=";
+    hash = "sha256-/TyQ6oSA361at1VSr6dLefOOmbZP4otBgb/JDA2sNWo=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace " --cov=pyenphase --cov-report=term-missing:skip-covered" ""
+      --replace-fail " --cov=pyenphase --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     awesomeversion
     envoy-utils
     httpx
diff --git a/nixpkgs/pkgs/development/python-modules/pyevmasm/default.nix b/nixpkgs/pkgs/development/python-modules/pyevmasm/default.nix
index 3b544036ce5a..581825f0d16b 100644
--- a/nixpkgs/pkgs/development/python-modules/pyevmasm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyevmasm/default.nix
@@ -23,6 +23,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Ethereum Virtual Machine (EVM) assembler and disassembler";
+    mainProgram = "evmasm";
     homepage = "https://github.com/crytic/pyevmasm";
     changelog = "https://github.com/crytic/pyevmasm/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pyezviz/default.nix b/nixpkgs/pkgs/development/python-modules/pyezviz/default.nix
index 5ef572c48175..1f3f6662f386 100644
--- a/nixpkgs/pkgs/development/python-modules/pyezviz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyezviz/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python interface for for Ezviz cameras";
+    mainProgram = "pyezviz";
     homepage = "https://github.com/baqs/pyEzviz/";
     changelog = "https://github.com/BaQs/pyEzviz/releases/tag/${version}";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix b/nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix
index ed7997a842ae..4999b1dcddf9 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/mdshw5/pyfaidx";
     description = "Python classes for indexing, retrieval, and in-place modification of FASTA files using a samtools compatible index";
+    mainProgram = "faidx";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jbedo ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix b/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
index fdd7982a7898..c588607f5c12 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
@@ -9,18 +9,19 @@
 
 # tests
 , pytestCheckHook
+, undefined
 }:
 
 buildPythonPackage rec {
   pname = "pyfakefs";
-  version = "5.3.2";
+  version = "5.3.5";
   pyproject = true;
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qDd2o8EEbU0QPy9TACmqbN/18Dht/9WcFe4WkmE1STw=";
+    hash = "sha256-fNxQCzWiFMt6YU4ZQFQ6zGZQ5pqUrHbjDzPJNzvZz5A=";
   };
 
   postPatch = ''
@@ -46,12 +47,9 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
+    undefined
   ];
 
-  # https://github.com/jmcgeheeiv/pyfakefs/issues/581 (OSError: [Errno 9] Bad file descriptor)
-  #disabledTests = [ "test_open_existing_pipe" ];
-
-
   meta = with lib; {
     description = "Fake file system that mocks the Python file system modules";
     homepage = "http://pyfakefs.org/";
diff --git a/nixpkgs/pkgs/development/python-modules/pyfido/default.nix b/nixpkgs/pkgs/development/python-modules/pyfido/default.nix
index b07c8d1a5e11..8a092e7e934d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfido/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfido/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python client to get fido account data";
+    mainProgram = "pyfido";
     homepage = "https://github.com/titilambert/pyfido";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyfiglet/default.nix b/nixpkgs/pkgs/development/python-modules/pyfiglet/default.nix
index a434ed3351eb..4226fca32f7f 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfiglet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfiglet/default.nix
@@ -14,6 +14,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "FIGlet in pure Python";
+    mainProgram = "pyfiglet";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ thoughtpolice ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix b/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix
index c0ef2f45f2b7..fab3c7d789b2 100644
--- a/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/PyCQA/pyflakes";
     changelog = "https://github.com/PyCQA/pyflakes/blob/${src.rev}/NEWS.rst";
     description = "A simple program which checks Python source files for errors";
+    mainProgram = "pyflakes";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pyfluidsynth/default.nix b/nixpkgs/pkgs/development/python-modules/pyfluidsynth/default.nix
index 1e837b67129a..f037b3c4bada 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfluidsynth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfluidsynth/default.nix
@@ -6,30 +6,19 @@
 , numpy
 , fluidsynth
 , stdenv
-, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "pyfluidsynth";
-  version = "1.3.2";
+  version = "1.3.3";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "pyFluidSynth";
     inherit version;
-    hash = "sha256-+i5oOXV4UG6z4rQGuguOP0mHo7V7fJZZRwOnJKB1VfQ=";
+    hash = "sha256-1Q1LVQc+dYCyo8pHCZK2xRwnnbocVRLchRNVlfQtaIE=";
   };
 
-  patches = [
-    # fixes error: Unknown integer parameter 'synth.sample-rate'
-    # https://github.com/nwhitehead/pyfluidsynth/pull/44
-    (fetchpatch {
-      name = "add-fluid-synth-get-status-and-fix-some-typing-bugs.patch";
-      url = "https://github.com/nwhitehead/pyfluidsynth/commit/1b31ca6ab00930dbb515c4cc00bb31a65578b7c0.patch";
-      hash = "sha256-ZCqy7aIv5iAAJrWOD7e538xltj11gy5fakIXnAbUsu8=";
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools
     wheel
diff --git a/nixpkgs/pkgs/development/python-modules/pyformlang/default.nix b/nixpkgs/pkgs/development/python-modules/pyformlang/default.nix
index 9a76ec2a1dfa..ce3923e0f8a6 100644
--- a/nixpkgs/pkgs/development/python-modules/pyformlang/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyformlang/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "pyformlang";
-  version = "1.0.7";
+  version = "1.0.9";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-i4ib18Ktyc9pRu4P+tQIHoZ/IbAOk8Dn0MXJoxw8gAA=";
+    hash = "sha256-oCwYM4yQ1KYZpC7vVpeHSIDH2Q930JAuTDq9mds9zoc=";
   };
 
   nativeBuildInputs = [
@@ -34,11 +34,13 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "pyformlang" ];
+  pythonImportsCheck = [
+    "pyformlang"
+  ];
 
   meta = with lib; {
     description = "A python framework for formal grammars";
-    homepage = "https://pypi.org/project/pyformlang/";
+    homepage = "https://github.com/Aunsiels/pyformlang";
     license = licenses.mit;
     maintainers = with maintainers; [ natsukium ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pyfritzhome/default.nix b/nixpkgs/pkgs/development/python-modules/pyfritzhome/default.nix
index 982e9b1509d6..32450e254ea1 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfritzhome/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfritzhome/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python Library to access AVM FRITZ!Box homeautomation";
+    mainProgram = "fritzhome";
     homepage = "https://github.com/hthiery/python-fritzhome";
     changelog = "https://github.com/hthiery/python-fritzhome/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyftpdlib/default.nix b/nixpkgs/pkgs/development/python-modules/pyftpdlib/default.nix
index 2ada48a2be0d..5ff81a268f2e 100644
--- a/nixpkgs/pkgs/development/python-modules/pyftpdlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyftpdlib/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Asynchronous FTP server library";
+    mainProgram = "ftpbench";
     homepage = "https://github.com/giampaolo/pyftpdlib/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyfttt/default.nix b/nixpkgs/pkgs/development/python-modules/pyfttt/default.nix
index 8b3687928121..e630fe2c4150 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfttt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfttt/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Package for sending events to the IFTTT Webhooks Channel";
+    mainProgram = "pyfttt";
     homepage = "https://github.com/briandconnelly/pyfttt";
     maintainers = with maintainers; [ peterhoeg ];
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/pyfxa/default.nix b/nixpkgs/pkgs/development/python-modules/pyfxa/default.nix
index 0df1538c9ced..39794d592103 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfxa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfxa/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "pyfxa";
-  version = "0.7.7";
+  version = "0.7.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyFxA";
     inherit version;
-    hash = "sha256-bIXNCM8F9xON7hzyqKHWj9Qot7WtSIkXxwoqdj1lHNs=";
+    hash = "sha256-DMFZl1hbYNaScOTWkAbK2nKti6wD5SS5A30q7TW5vO4=";
   };
 
   propagatedBuildInputs = [
@@ -57,6 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Firefox Accounts client library";
+    mainProgram = "fxa-client";
     homepage = "https://github.com/mozilla/PyFxA";
     license = licenses.mpl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/pygal/default.nix b/nixpkgs/pkgs/development/python-modules/pygal/default.nix
index 4b6de769859b..6defbca5e5df 100644
--- a/nixpkgs/pkgs/development/python-modules/pygal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygal/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
     changelog = "https://github.com/Kozea/pygal/blob/${version}/docs/changelog.rst";
     downloadPage = "https://github.com/Kozea/pygal";
     description = "Sexy and simple python charting";
+    mainProgram = "pygal_gen.py";
     homepage = "http://www.pygal.org";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/pygetwindow/default.nix b/nixpkgs/pkgs/development/python-modules/pygetwindow/default.nix
index 3ffd83ee0026..2969fe850d48 100644
--- a/nixpkgs/pkgs/development/python-modules/pygetwindow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygetwindow/default.nix
@@ -4,11 +4,12 @@
 , pyrect
 }:
 buildPythonPackage rec {
-  pname = "PyGetWindow";
+  pname = "pygetwindow";
   version = "0.0.9";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "PyGetWindow";
+    inherit version;
     hash = "sha256-F4lDVefSswXNgy1xdwg4QBfBaYqQziT29/vwJC3Qpog=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pygithub/default.nix b/nixpkgs/pkgs/development/python-modules/pygithub/default.nix
index 1efcb940f1a4..c207ef8b12a1 100644
--- a/nixpkgs/pkgs/development/python-modules/pygithub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygithub/default.nix
@@ -5,16 +5,17 @@
 , pynacl
 , typing-extensions
 , pyjwt
-, python-dateutil
 , pythonOlder
 , requests
+, setuptools
 , setuptools-scm
+, urllib3
 }:
 
 buildPythonPackage rec {
   pname = "pygithub";
-  version = "2.1.1";
-  format = "setuptools";
+  version = "2.2.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -22,20 +23,21 @@ buildPythonPackage rec {
     owner = "PyGithub";
     repo = "PyGithub";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ysa1RAWuFFQCF6bYwAUVFou7nxCKHLZbUtrUtXiSpPk=";
+    hash = "sha256-RNv/6Rs7NapP/XOdBFIWPg+/BmaK1+OY0+bP/i2YKaA=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
+    setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     deprecated
     pyjwt
     pynacl
-    python-dateutil
     requests
     typing-extensions
+    urllib3
   ] ++ pyjwt.optional-dependencies.crypto;
 
   # Test suite makes REST calls against github.com
diff --git a/nixpkgs/pkgs/development/python-modules/pygnmi/default.nix b/nixpkgs/pkgs/development/python-modules/pygnmi/default.nix
index a5218555b36b..a83aaabfc575 100644
--- a/nixpkgs/pkgs/development/python-modules/pygnmi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygnmi/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pygnmi";
-  version = "0.8.13";
+  version = "0.8.14";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "akarneliuk";
     repo = "pygnmi";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-NkByimHk1DoBjMMD7ywplo38VxBpp1pnClYUzhtKwY4=";
+    sha256 = "sha256-ncp/OwELy/QOvGhLUZW2qTQZsckWI4CGrlEAZ20RtQI=";
   };
 
   propagatedBuildInputs = [
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Pure Python gNMI client to manage network functions and collect telemetry";
+    mainProgram = "pygnmicli";
     homepage = "https://github.com/akarneliuk/pygnmi";
     changelog = "https://github.com/akarneliuk/pygnmi/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pygount/default.nix b/nixpkgs/pkgs/development/python-modules/pygount/default.nix
index 6239ac9dd841..4b1236428836 100644
--- a/nixpkgs/pkgs/development/python-modules/pygount/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygount/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Count lines of code for hundreds of languages using pygments";
+    mainProgram = "pygount";
     homepage = "https://github.com/roskakori/pygount";
     changelog = "https://github.com/roskakori/pygount/blob/${src.rev}/CHANGES.md";
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pygtail/default.nix b/nixpkgs/pkgs/development/python-modules/pygtail/default.nix
index d6e7206ae6c6..02f0dce14b59 100644
--- a/nixpkgs/pkgs/development/python-modules/pygtail/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygtail/default.nix
@@ -20,6 +20,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A library for reading log file lines that have not been read";
+    mainProgram = "pygtail";
     license = licenses.gpl2Plus;
     homepage = "https://github.com/bgreenlee/pygtail";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pygtfs/default.nix b/nixpkgs/pkgs/development/python-modules/pygtfs/default.nix
index aeb65d92556d..cabb211d484c 100644
--- a/nixpkgs/pkgs/development/python-modules/pygtfs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygtfs/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module for GTFS";
+    mainProgram = "gtfs2db";
     homepage = "https://github.com/jarondl/pygtfs";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyhanko/default.nix b/nixpkgs/pkgs/development/python-modules/pyhanko/default.nix
index 89864ebd6261..68d777bd1b28 100644
--- a/nixpkgs/pkgs/development/python-modules/pyhanko/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyhanko/default.nix
@@ -139,6 +139,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Sign and stamp PDF files";
+    mainProgram = "pyhanko";
     homepage = "https://github.com/MatthiasValvekens/pyHanko";
     changelog = "https://github.com/MatthiasValvekens/pyHanko/blob/v${version}/docs/changelog.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyhcl/default.nix b/nixpkgs/pkgs/development/python-modules/pyhcl/default.nix
index da522b98cec2..efa9bed66613 100644
--- a/nixpkgs/pkgs/development/python-modules/pyhcl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyhcl/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "HCL is a configuration language. pyhcl is a python parser for it";
+    mainProgram = "hcltool";
     homepage = "https://github.com/virtuald/pyhcl";
     license = licenses.mpl20;
     maintainers = with maintainers; [
diff --git a/nixpkgs/pkgs/development/python-modules/pyhocon/default.nix b/nixpkgs/pkgs/development/python-modules/pyhocon/default.nix
index 3d560076865e..a7c2bb2b6576 100644
--- a/nixpkgs/pkgs/development/python-modules/pyhocon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyhocon/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "HOCON parser for Python";
+    mainProgram = "pyhocon";
     homepage = "https://github.com/chimpler/pyhocon/";
     longDescription = ''
       A HOCON parser for Python. It additionally provides a tool (pyhocon) to convert
diff --git a/nixpkgs/pkgs/development/python-modules/pyicloud/default.nix b/nixpkgs/pkgs/development/python-modules/pyicloud/default.nix
index 2765f457991b..daa442a57305 100644
--- a/nixpkgs/pkgs/development/python-modules/pyicloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyicloud/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "PyiCloud is a module which allows pythonistas to interact with iCloud webservices";
+    mainProgram = "icloud";
     homepage = "https://github.com/picklepete/pyicloud";
     license = licenses.mit;
     maintainers = [ maintainers.mic92 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyinfra/default.nix b/nixpkgs/pkgs/development/python-modules/pyinfra/default.nix
index d21fcddc42ee..1a32aa2ac6fb 100644
--- a/nixpkgs/pkgs/development/python-modules/pyinfra/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyinfra/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "pyinfra";
-  version = "2.8";
+  version = "2.9.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -28,18 +28,9 @@ buildPythonPackage rec {
     owner = "Fizzadar";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-BYd2UYQJD/HsmpnlQjZvjfg17ShPuA3j4rtv6fTQK/A=";
+    hash = "sha256-lzbFwAg1aLCfBnSnqq4oVteArpkRBa7hU8V3vB5ODa8=";
   };
 
-  patches = [
-    # https://github.com/Fizzadar/pyinfra/pull/1018
-    (fetchpatch {
-      name = "bump-paramiko-major-version.patch";
-      url = "https://github.com/Fizzadar/pyinfra/commit/62a8f081279779c4f1eed246139f615cf5fed642.patch";
-      hash = "sha256-aT9SeSqXOD76LFzf6R/MWTtavcW6fZT7chkVg9aXiBg=";
-    })
-  ];
-
   propagatedBuildInputs = [
     click
     colorama
@@ -69,6 +60,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python-based infrastructure automation";
+    mainProgram = "pyinfra";
     longDescription = ''
       pyinfra automates/provisions/manages/deploys infrastructure. It can be used for
       ad-hoc command execution, service deployment, configuration management and more.
diff --git a/nixpkgs/pkgs/development/python-modules/pyinstaller-versionfile/default.nix b/nixpkgs/pkgs/development/python-modules/pyinstaller-versionfile/default.nix
index 85ab4112e5ea..b198bae9ec15 100644
--- a/nixpkgs/pkgs/development/python-modules/pyinstaller-versionfile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyinstaller-versionfile/default.nix
@@ -23,6 +23,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Create a windows version-file from a simple YAML file that can be used by PyInstaller.";
+    mainProgram = "create-version-file";
     homepage = "https://pypi.org/project/pyinstaller-versionfile/";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix b/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix
index 9a6e1b54ec36..e2e25aa18dcd 100644
--- a/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyinsteon/default.nix
@@ -8,6 +8,7 @@
 , pyserial
 , pyserial-asyncio
 , pytestCheckHook
+, pythonAtLeast
 , pythonOlder
 , setuptools
 , voluptuous
@@ -47,12 +48,29 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [
+    # AssertionError: Failed test 'read_eeprom_response' with argument 'group' value X vs expected value Z
+    "test_async_send"
+    "test_nak_response"
+    "test_no_direct_ack"
+    "test_on_level"
+    "test_on_level_group"
+    "test_on_level_nak"
+    # AssertionError: Failed test 'read_eeprom_response' with argument 'target' value X vs expected value Y
+    "test_other_status"
+    "test_status_command"
+    "test_status_request_hub"
+    # stuck in epoll
+    "test_read_all_peek"
+  ];
+
   pythonImportsCheck = [
     "pyinsteon"
   ];
 
   meta = with lib; {
     description = "Python library to support Insteon home automation projects";
+    mainProgram = "insteon_tools";
     longDescription = ''
       This is a Python package to interface with an Insteon Modem. It has been
       tested to work with most USB or RS-232 serial based devices such as the
diff --git a/nixpkgs/pkgs/development/python-modules/pyinstrument/default.nix b/nixpkgs/pkgs/development/python-modules/pyinstrument/default.nix
index 58fcc8c515ce..1646fcd1d115 100644
--- a/nixpkgs/pkgs/development/python-modules/pyinstrument/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyinstrument/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Call stack profiler for Python";
+    mainProgram = "pyinstrument";
     homepage = "https://github.com/joerick/pyinstrument";
     changelog = "https://github.com/joerick/pyinstrument/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pyipp/default.nix b/nixpkgs/pkgs/development/python-modules/pyipp/default.nix
index 3046d879ba61..bfeb5e4a5eee 100644
--- a/nixpkgs/pkgs/development/python-modules/pyipp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyipp/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pyipp";
-  version = "0.14.5";
+  version = "0.15.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
    owner = "ctalkington";
    repo = "python-ipp";
    rev = "refs/tags/${version}";
-   hash = "sha256-2YaQZWHrvz1OwD47WUl4UKoYXQBiemCWLM8m/zkipCU=";
+   hash = "sha256-k7NSCmugGov+lJXWeopUwKkGKL/EGhvxSSiby4CcmFM=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pyixapi/default.nix b/nixpkgs/pkgs/development/python-modules/pyixapi/default.nix
index ce5a265ba263..e452224d9e4f 100644
--- a/nixpkgs/pkgs/development/python-modules/pyixapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyixapi/default.nix
@@ -1,24 +1,25 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools-scm
+, poetry-core
 , requests
 , pyjwt
 }:
 
 buildPythonPackage rec {
   pname = "pyixapi";
-  version = "0.2.1";
-  format = "setuptools";
+  version = "0.2.3";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-c5a8Ldbzgh8gXuCDYbKk9zR6AoiBF3Y/VQvGlSwXpR4=";
+    hash = "sha256-qkgPBIYv9xzGa29RiPAU3zNhcyutTUX1Vkmpd9YdeJU=";
   };
 
   nativeBuildInputs = [
-    setuptools-scm
+    poetry-core
   ];
+
   propagatedBuildInputs = [
     requests
     pyjwt
diff --git a/nixpkgs/pkgs/development/python-modules/pykakasi/default.nix b/nixpkgs/pkgs/development/python-modules/pykakasi/default.nix
index 76e2711ee18c..79ce3eeca8f4 100644
--- a/nixpkgs/pkgs/development/python-modules/pykakasi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykakasi/default.nix
@@ -55,6 +55,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python converter for Japanese Kana-kanji sentences into Kana-Roman";
+    mainProgram = "kakasi";
     homepage = "https://github.com/miurahr/pykakasi";
     changelog = "https://github.com/miurahr/pykakasi/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pykaleidescape/default.nix b/nixpkgs/pkgs/development/python-modules/pykaleidescape/default.nix
index af2645006e18..eac53807b5d4 100644
--- a/nixpkgs/pkgs/development/python-modules/pykaleidescape/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykaleidescape/default.nix
@@ -7,22 +7,27 @@
 , pytestCheckHook
 , pythonAtLeast
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pykaleidescape";
-  version = "2022.2.3";
-  format = "setuptools";
+  version = "1.0.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "SteveEasley";
-    repo = pname;
+    repo = "pykaleidescape";
     rev = "refs/tags/v${version}";
-    hash = "sha256-h5G7wV4Z+sf8Qq4GNFsp8DVDSgQgS0dLGf+DzK/egYM=";
+    hash = "sha256-KM/gtpsQ27QZz2uI1t/yVN5no0zp9LZag1duAJzK55g=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     dnspython
diff --git a/nixpkgs/pkgs/development/python-modules/pykdtree/default.nix b/nixpkgs/pkgs/development/python-modules/pykdtree/default.nix
index 46e4b24ceef6..b81bba27f1a4 100644
--- a/nixpkgs/pkgs/development/python-modules/pykdtree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykdtree/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "pykdtree";
-  version = "1.3.10";
+  version = "1.3.11";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QefF1mnK3CGIrMS7tLC03K9JLYRRLx5lF6erLRIskR0=";
+    hash = "sha256-bBI8e65SE68iPFKai0FhwH64VKb+QDizaVK62iEx68s=";
   };
 
   nativeBuildInputs = [
@@ -40,7 +40,8 @@ buildPythonPackage rec {
 
   preCheck = ''
     # make sure we don't import pykdtree from the source tree
-    mv pykdtree tests
+    mv pykdtree/test_tree.py .
+    rm -rf pykdtree
   '';
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pykeyatome/default.nix b/nixpkgs/pkgs/development/python-modules/pykeyatome/default.nix
index 363b078cad32..18f6fb7a9ee8 100644
--- a/nixpkgs/pkgs/development/python-modules/pykeyatome/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykeyatome/default.nix
@@ -52,6 +52,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to get data from Atome Key";
+    mainProgram = "pykeyatome";
     homepage = "https://github.com/jugla/pyKeyAtome";
     changelog = "https://github.com/jugla/pyKeyAtome/releases/tag/V${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pykoplenti/default.nix b/nixpkgs/pkgs/development/python-modules/pykoplenti/default.nix
index a8930149b1bb..6078562a9714 100644
--- a/nixpkgs/pkgs/development/python-modules/pykoplenti/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykoplenti/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python REST client API for Kostal Plenticore Inverters";
+    mainProgram = "pykoplenti";
     homepage = "https://github.com/stegm/pykoplenti/";
     changelog = "https://github.com/stegm/pykoplenti/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pykulersky/default.nix b/nixpkgs/pkgs/development/python-modules/pykulersky/default.nix
index 6c1d9bf00fae..a748191ba9d1 100644
--- a/nixpkgs/pkgs/development/python-modules/pykulersky/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykulersky/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to control Brightech Kuler Sky Bluetooth LED devices";
+    mainProgram = "pykulersky";
     homepage = "https://github.com/emlove/pykulersky";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pykwalify/default.nix b/nixpkgs/pkgs/development/python-modules/pykwalify/default.nix
index a49967ee6c3e..991e822d42a2 100644
--- a/nixpkgs/pkgs/development/python-modules/pykwalify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykwalify/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/Grokzen/pykwalify";
     description = "YAML/JSON validation library";
+    mainProgram = "pykwalify";
     longDescription = ''
       This framework is a port with a lot of added functionality
       of the Java version of the framework kwalify that can be found at
diff --git a/nixpkgs/pkgs/development/python-modules/pylacrosse/default.nix b/nixpkgs/pkgs/development/python-modules/pylacrosse/default.nix
index f247f42e975b..f173d8569646 100644
--- a/nixpkgs/pkgs/development/python-modules/pylacrosse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylacrosse/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , mock
-, nose
+, pynose
 , pyserial
 , pytestCheckHook
 , pythonOlder
@@ -33,7 +33,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     mock
-    nose
+    pynose
     pytestCheckHook
   ];
 
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for Jeelink LaCrosse";
+    mainProgram = "pylacrosse";
     homepage = "https://github.com/hthiery/python-lacrosse";
     license = with licenses; [ lgpl2Plus ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pylacus/default.nix b/nixpkgs/pkgs/development/python-modules/pylacus/default.nix
new file mode 100644
index 000000000000..1f2790ad2031
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pylacus/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pylacus";
+  version = "1.8.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "ail-project";
+    repo = "PyLacus";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-wXdQe/4Xw/D0MRFqNfSKimJ99aCE7M7k1neT/+t7ixY=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    requests
+  ];
+
+  # Tests require network access
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pylacus"
+  ];
+
+  meta = with lib; {
+    description = "Module to enqueue and query a remote Lacus instance";
+    homepage = "https://github.com/ail-project/PyLacus";
+    changelog = "https://github.com/ail-project/PyLacus/releases/tag/v${version}";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pylama/default.nix b/nixpkgs/pkgs/development/python-modules/pylama/default.nix
index e62d356f70ee..5e379cefac63 100644
--- a/nixpkgs/pkgs/development/python-modules/pylama/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylama/default.nix
@@ -75,6 +75,7 @@ let pylama = buildPythonPackage rec {
 
   meta = with lib; {
     description = "Code audit tool for python";
+    mainProgram = "pylama";
     homepage = "https://github.com/klen/pylama";
     changelog = "https://github.com/klen/pylama/blob/${version}/Changelog";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pylddwrap/default.nix b/nixpkgs/pkgs/development/python-modules/pylddwrap/default.nix
index d228c1a39ec9..dc0ca98f186c 100644
--- a/nixpkgs/pkgs/development/python-modules/pylddwrap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylddwrap/default.nix
@@ -52,6 +52,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python wrapper around ldd *nix utility to determine shared libraries of a program";
+    mainProgram = "pylddwrap";
     homepage = "https://github.com/Parquery/pylddwrap";
     changelog = "https://github.com/Parquery/pylddwrap/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pylint/default.nix b/nixpkgs/pkgs/development/python-modules/pylint/default.nix
index 948b2afc5a15..2d46d041df47 100644
--- a/nixpkgs/pkgs/development/python-modules/pylint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylint/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "pylint";
-  version = "3.0.3";
+  version = "3.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "pylint-dev";
     repo = "pylint";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JwSzit4oDxAqrQFlvTNF7lrirhaHbJ15MRKbl7c7bEg=";
+    hash = "sha256-JHtMaZNwl+yLwEDD4Nl0vOt9NQ9DO7iIy5LR/9ta1Pw=";
   };
 
   nativeBuildInputs = [
@@ -96,6 +96,8 @@ buildPythonPackage rec {
     "test_save_and_load_not_a_linter_stats"
     # Truncated string expectation mismatch
     "test_truncated_compare"
+    # Probably related to pytest versions, see pylint-dev/pylint#9477 and pylint-dev/pylint#9483
+    "test_functional"
     # AssertionError: assert [('specializa..., 'Ancestor')] == [('aggregatio..., 'Ancestor')]
     "test_functional_relation_extraction"
   ] ++ lib.optionals stdenv.isDarwin [
diff --git a/nixpkgs/pkgs/development/python-modules/pylnk3/default.nix b/nixpkgs/pkgs/development/python-modules/pylnk3/default.nix
index 8a48fb731b85..819c7d6c5a23 100644
--- a/nixpkgs/pkgs/development/python-modules/pylnk3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylnk3/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for reading and writing Windows shortcut files (.lnk)";
+    mainProgram = "pylnk3";
     homepage = "https://github.com/strayge/pylnk";
     license = with licenses; [ lgpl3Only ];
     maintainers = with maintainers; [ fedx-sudo ];
diff --git a/nixpkgs/pkgs/development/python-modules/pylsp-rope/default.nix b/nixpkgs/pkgs/development/python-modules/pylsp-rope/default.nix
index 4204499b16c3..22776d4dc6af 100644
--- a/nixpkgs/pkgs/development/python-modules/pylsp-rope/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylsp-rope/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "pylsp-rope";
-  version = "0.1.11";
+  version = "0.1.16";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SKrfmT2vpej8oRCLSlQxMUz4C8eM/91WQA6tnEB1U74=";
+    hash = "sha256-1oC2iMYKQCV6iELsgIpuDeFZakelMA8irs/caVVQIKc=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pymdown-extensions/default.nix b/nixpkgs/pkgs/development/python-modules/pymdown-extensions/default.nix
index d9387a62bec9..d760b9cd0dd4 100644
--- a/nixpkgs/pkgs/development/python-modules/pymdown-extensions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymdown-extensions/default.nix
@@ -44,14 +44,14 @@ let
 in
 buildPythonPackage rec {
   pname = "pymdown-extensions";
-  version = "10.7";
+  version = "10.7.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "facelessuser";
     repo = "pymdown-extensions";
     rev = "refs/tags/${version}";
-    hash = "sha256-jeU3mXaARToN1NZ+pcogCu70foGc5xAmijLUSfd9k9U=";
+    hash = "sha256-P2MkGD0B9mn34ia3Kd4MQej1XryNVXWVMF4JHaPTS0M=";
   };
 
   nativeBuildInputs = [ hatchling ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyment/default.nix b/nixpkgs/pkgs/development/python-modules/pyment/default.nix
index 768bc459b5b5..f3077acdd2ce 100644
--- a/nixpkgs/pkgs/development/python-modules/pyment/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyment/default.nix
@@ -17,6 +17,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/dadadel/pyment";
     description = "Create, update or convert docstrings in existing Python files, managing several styles";
+    mainProgram = "pyment";
     license = licenses.gpl3;
     maintainers = with maintainers; [ jethro ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pymetar/default.nix b/nixpkgs/pkgs/development/python-modules/pymetar/default.nix
index f8371a4db057..70bf0a4f8142 100644
--- a/nixpkgs/pkgs/development/python-modules/pymetar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymetar/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A command-line tool to show the weather report by a given station ID";
+    mainProgram = "pymetar";
     homepage = "https://github.com/klausman/pymetar";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ erosennin ];
diff --git a/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix b/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
index ee5c25d177da..4229d30c022d 100644
--- a/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "pymodbus";
-  version = "3.6.5";
+  version = "3.6.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "pymodbus-dev";
     repo = "pymodbus";
     rev = "refs/tags/v${version}";
-    hash = "sha256-BWoonOmKTvl5pKvdysmrCTHL6Bf3NGULXI6dpP5t/C0=";
+    hash = "sha256-CnMCHFwzNyzTgVyFDSlE7ggI6eXXYbtGuERIomUa3uA=";
   };
 
   postPatch = ''
@@ -85,6 +85,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python implementation of the Modbus protocol";
+    mainProgram = "pymodbus.simulator";
     longDescription = ''
       Pymodbus is a full Modbus protocol implementation using twisted,
       torndo or asyncio for its asynchronous communications core. It can
diff --git a/nixpkgs/pkgs/development/python-modules/pymongo-inmemory/default.nix b/nixpkgs/pkgs/development/python-modules/pymongo-inmemory/default.nix
index f0930c8c54c0..604f0c1c3cd3 100644
--- a/nixpkgs/pkgs/development/python-modules/pymongo-inmemory/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymongo-inmemory/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pymongo-inmemory";
-  version = "0.4.0";
+  version = "0.4.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "kaizendorks";
     repo = "pymongo_inmemory";
     rev = "refs/tags/v${version}";
-    hash = "sha256-h6/yKvAHqvw0L3Z1+PUQi36Ja6yvFiaX7Cn5Ypcg1Zs=";
+    hash = "sha256-vYWVMSawk+03ie3PtqOyzd6wxiviq+IzyQ8bvEHNHfc=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pymongo/default.nix b/nixpkgs/pkgs/development/python-modules/pymongo/default.nix
index 6d69cc3556c4..13fbc9ebe768 100644
--- a/nixpkgs/pkgs/development/python-modules/pymongo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymongo/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pymongo";
-  version = "4.6.1";
+  version = "4.6.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Mdqx8+HQzdV+jfAbZF9S1DzBtlPtOv1TXSiR9PxPlxI=";
+    hash = "sha256-q30BrIMqFmPa1ZLMvZK7Dwd1vI+YoZI8Xhp9f+rUla8=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pymorphy2/default.nix b/nixpkgs/pkgs/development/python-modules/pymorphy2/default.nix
index 300a9230d2e1..57b843e54590 100644
--- a/nixpkgs/pkgs/development/python-modules/pymorphy2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymorphy2/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Morphological analyzer/inflection engine for Russian and Ukrainian";
+    mainProgram = "pymorphy";
     homepage = "https://github.com/kmike/pymorphy2";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/pymorphy3/default.nix b/nixpkgs/pkgs/development/python-modules/pymorphy3/default.nix
index 4c071939740e..eea5aa474634 100644
--- a/nixpkgs/pkgs/development/python-modules/pymorphy3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymorphy3/default.nix
@@ -1,6 +1,7 @@
 { lib
 , fetchFromGitHub
 , buildPythonPackage
+, click
 , dawg-python
 , docopt
 , pytestCheckHook
@@ -10,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "pymorphy3";
-  version = "1.2.1";
+  version = "2.0.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "no-plagiarism";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-JTRG+UtNXnS9GFUrgHNVCktb3HdH98wDFgzDPp6oVcQ=";
+    hash = "sha256-AIAccIxv3lCZcTKHfE/s2n3A5fUWqon+dk0SvczritY=";
   };
 
   propagatedBuildInputs = [
@@ -27,14 +28,19 @@ buildPythonPackage rec {
     pymorphy3-dicts-uk
   ];
 
+  optional-dependencies.CLI = [
+    click
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
-  ];
+  ] ++ optional-dependencies.CLI;
 
   pythonImportsCheck = [ "pymorphy3" ];
 
   meta = with lib; {
     description = "Morphological analyzer/inflection engine for Russian and Ukrainian";
+    mainProgram = "pymorphy";
     homepage = "https://github.com/no-plagiarism/pymorphy3";
     license = licenses.mit;
     maintainers = with maintainers; [ jboy ];
diff --git a/nixpkgs/pkgs/development/python-modules/pymsgbox/default.nix b/nixpkgs/pkgs/development/python-modules/pymsgbox/default.nix
index a04923c18140..c05533638e65 100644
--- a/nixpkgs/pkgs/development/python-modules/pymsgbox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymsgbox/default.nix
@@ -1,11 +1,12 @@
 { lib, fetchPypi, buildPythonPackage, tkinter }:
 
 buildPythonPackage rec {
-  pname = "PyMsgBox";
+  pname = "pymsgbox";
   version = "1.0.9";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "PyMsgBox";
+    inherit version;
     hash = "sha256-IZQifei/96PW2lQYSHBaFV3LsqBu4SDZ8oCh1/USY/8=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pymupdf/default.nix b/nixpkgs/pkgs/development/python-modules/pymupdf/default.nix
index fb9603c18d5f..bf40f44732d3 100644
--- a/nixpkgs/pkgs/development/python-modules/pymupdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymupdf/default.nix
@@ -33,7 +33,7 @@ let
   mupdf-cxx = mupdf.override { enableOcr = true; enableCxx = true; enablePython = true; python3 = python; };
 in buildPythonPackage rec {
   pname = "pymupdf";
-  version = "1.23.7";
+  version = "1.23.26";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -42,7 +42,7 @@ in buildPythonPackage rec {
     owner = "pymupdf";
     repo = "PyMuPDF";
     rev = "refs/tags/${version}";
-    hash = "sha256-XVf9nKbcTS/rxRCD2u5u8ecCf0bWZ3FXXN/YulI9etU=";
+    hash = "sha256-m2zq04+PDnlzFuqeSt27UhdHXTHxpHdMPIg5RQl/5bQ=";
   };
 
   # swig is not wrapped as python package
@@ -107,7 +107,7 @@ in buildPythonPackage rec {
 
   pythonImportsCheck = [
     "fitz"
-    "fitz_new"
+    "fitz_old"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pymysensors/default.nix b/nixpkgs/pkgs/development/python-modules/pymysensors/default.nix
index 58bdf10ab5b1..ee8c5be2a60a 100644
--- a/nixpkgs/pkgs/development/python-modules/pymysensors/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymysensors/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python API for talking to a MySensors gateway";
+    mainProgram = "pymysensors";
     homepage = "https://github.com/theolind/pymysensors";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pynamodb/default.nix b/nixpkgs/pkgs/development/python-modules/pynamodb/default.nix
index 8f75abea64fd..d22ed78e02d1 100644
--- a/nixpkgs/pkgs/development/python-modules/pynamodb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynamodb/default.nix
@@ -3,17 +3,17 @@
 , botocore
 , buildPythonPackage
 , fetchFromGitHub
+, pytest-env
 , pytest-mock
 , pytestCheckHook
-, python-dateutil
 , pythonOlder
-, requests
+, setuptools
 , typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "pynamodb";
-  version = "5.5.1";
+  version = "6.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,26 +22,30 @@ buildPythonPackage rec {
     owner = "pynamodb";
     repo = "PynamoDB";
     rev = "refs/tags/${version}";
-    hash = "sha256-VZHEXAuHGn10EMkyd8hibipu6tw5JvOP4XwdB+xdjN8=";
+    hash = "sha256-Ag/ivZ2SDYX0kwXbExt3kE/pMJgfoGc6gWoy+Rr6GTw=";
   };
 
-  propagatedBuildInputs = [
-    python-dateutil
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     botocore
-  ] ++ lib.optionals (pythonOlder "3.8") [
+  ] ++ lib.optionals (pythonOlder "3.11") [
     typing-extensions
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     signal = [
       blinker
     ];
   };
 
   nativeCheckInputs = [
+    pytest-env
     pytest-mock
     pytestCheckHook
-  ] ++ passthru.optional-dependencies.signal;
+  ] ++ optional-dependencies.signal;
 
   pythonImportsCheck = [
     "pynamodb"
@@ -57,6 +61,9 @@ buildPythonPackage rec {
     "test_sign_request"
     "test_table_integration"
     "test_transact"
+    # require a local dynamodb instance
+    "test_create_table"
+    "test_create_table__incompatible_indexes"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pynello/default.nix b/nixpkgs/pkgs/development/python-modules/pynello/default.nix
index a7a75d7c5ddd..4435bb7ec30e 100644
--- a/nixpkgs/pkgs/development/python-modules/pynello/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynello/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for nello.io intercoms";
+    mainProgram = "nello";
     homepage = "https://github.com/pschmitt/pynello";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyngo/default.nix b/nixpkgs/pkgs/development/python-modules/pyngo/default.nix
index a52a09166c5e..ab2cce0b5652 100644
--- a/nixpkgs/pkgs/development/python-modules/pyngo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyngo/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   pythonRelaxDeps = [
     "pydantic"
+    "typing-extensions"
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyngrok/default.nix b/nixpkgs/pkgs/development/python-modules/pyngrok/default.nix
index 0ed02cd477ba..7837e99cf424 100644
--- a/nixpkgs/pkgs/development/python-modules/pyngrok/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyngrok/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pyngrok";
-  version = "7.1.4";
+  version = "7.1.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MlTT2a4VvazWP+EPLb1W3KZIf284OM4mI6LA8ToBtVY=";
+    hash = "sha256-9oS/iBuAWQ3COlnhgeN0e7CFj6VNbkfpPe35tO0BSpo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pynose/default.nix b/nixpkgs/pkgs/development/python-modules/pynose/default.nix
index 12730465b7a1..e58681cbe966 100644
--- a/nixpkgs/pkgs/development/python-modules/pynose/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynose/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "pynose";
-  version = "1.4.8";
+  version = "1.5.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "mdmintz";
     repo = "pynose";
-    rev = "v${version}";
-    hash = "sha256-V6jZBEkEAKzClA/3s+Lyfm9xExgCEJbLCNnIHmZ94E4=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-Oi+vwInqgsdZfr5abJUa4zkTktpEuG0m89d1O8Oot0Q=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/pynvml/default.nix b/nixpkgs/pkgs/development/python-modules/pynvml/default.nix
index b18fac7652f9..f73f5bd7d56d 100644
--- a/nixpkgs/pkgs/development/python-modules/pynvml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynvml/default.nix
@@ -1,20 +1,24 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , substituteAll
 , pythonOlder
 , addOpenGLRunpath
+, setuptools
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pynvml";
   version = "11.5.0";
-  format = "setuptools";
+  pyproject = true;
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-0CeyG5WxCIufwngRf59ht8Z/jjOnh+n4P3NfD3GsMtA=";
+  src = fetchFromGitHub {
+    owner = "gpuopenanalytics";
+    repo = "pynvml";
+    rev = "refs/tags/${version}";
+    hash = "sha256-K3ZENjgi+TVDxr55dRK1y8SwzfgVIzcnD4oEI+KHRa4=";
   };
 
   patches = [
@@ -24,12 +28,22 @@ buildPythonPackage rec {
     })
   ];
 
-  doCheck = false;  # no tests in PyPi dist
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   pythonImportsCheck = [ "pynvml" "pynvml.smi" ];
 
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  # OSError: /run/opengl-driver/lib/libnvidia-ml.so.1: cannot open shared object file: No such file or directory
+  doCheck = false;
+
   meta = with lib; {
     description = "Python bindings for the NVIDIA Management Library";
-    homepage = "https://www.nvidia.com";
+    homepage = "https://github.com/gpuopenanalytics/pynvml";
     license = licenses.bsd3;
     maintainers = [ maintainers.bcdarwin ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pyoctoprintapi/default.nix b/nixpkgs/pkgs/development/python-modules/pyoctoprintapi/default.nix
index 59db986ad44f..8dfd9cdf57f3 100644
--- a/nixpkgs/pkgs/development/python-modules/pyoctoprintapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyoctoprintapi/default.nix
@@ -14,7 +14,7 @@
 
 let
   pname = "pyoctoprintapi";
-  version = "0.1.12";
+  version = "0.1.14";
 in
 buildPythonPackage {
   inherit pname version;
@@ -26,7 +26,7 @@ buildPythonPackage {
     owner = "rfleming71";
     repo = "pyoctoprintapi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Jf/zYnBHVl3TYxFy9Chy6qNH/eCroZkmUOEWfd62RIo=";
+    hash = "sha256-DKqkT0Wyxf4grXBqei9IYBGMOgPxjzuo955M/nHDLo8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyodbc/default.nix b/nixpkgs/pkgs/development/python-modules/pyodbc/default.nix
index b20d4618167d..da48d0d828ae 100644
--- a/nixpkgs/pkgs/development/python-modules/pyodbc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyodbc/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pyodbc";
-  version = "5.0.1";
+  version = "5.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7" || isPyPy; # use pypypdbc instead
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-A9fQsE1akVYJnOjQPpLzlWeDdG+pI0629bXPwStkUBE=";
+    hash = "sha256-OX/u5EVhplgL4IztvphkNoWVY/S7N49IIkZVyOmH6mA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyomo/default.nix b/nixpkgs/pkgs/development/python-modules/pyomo/default.nix
index 8667ed08fe76..35ab0ecec509 100644
--- a/nixpkgs/pkgs/development/python-modules/pyomo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyomo/default.nix
@@ -53,6 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python Optimization Modeling Objects";
+    mainProgram = "pyomo";
     homepage = "http://pyomo.org";
     changelog = "https://github.com/Pyomo/pyomo/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix b/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix
index 79623f749b40..99d9a3038b16 100644
--- a/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix
@@ -27,22 +27,14 @@ let
     if stdenv.isDarwin then [ mesa_drivers.dev ] else [ ocl-icd ];
 in buildPythonPackage rec {
   pname = "pyopencl";
-  version = "2023.1.4";
+  version = "2024.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-IgF078qQDp1d5a7yqht3pvJVBQHekrA1qRATrq5NTF4=";
+    hash = "sha256-7NVy7pQK2L2hY5w6e+tog0/JqYrX6z9uAarE99nUusE=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-conditions-for-CL_UNORM_INT24-availability.patch";
-      url = "https://github.com/inducer/pyopencl/pull/706.patch";
-      hash = "sha256-31aiqYlhbEw3F2k/x3W2rbOX0A90cHwIlfXMivFucMA=";
-    })
-  ];
-
   nativeBuildInputs = [
     oldest-supported-numpy
     setuptools
diff --git a/nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix b/nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix
index 611666e851d3..31e9e810c9ed 100644
--- a/nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyopenssl/default.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , fetchPypi
 , openssl
+, setuptools
 , cryptography
 , pytestCheckHook
 , pretend
@@ -13,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "pyopenssl";
-  version = "23.3.0";
-  format = "setuptools";
+  version = "24.0.0";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "pyOpenSSL";
     inherit version;
-    hash = "sha256-ayy6XMRugidQ7D5age4SgZhQsRMDYw1XXpgQigecKxI=";
+    hash = "sha256-aqMwOak//6RWPmVbYdETZNASZL6My0mQYQHgKjNFML8=";
   };
 
   outputs = [
@@ -30,6 +31,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     openssl
+    setuptools
     sphinxHook
     sphinx-rtd-theme
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyoppleio/default.nix b/nixpkgs/pkgs/development/python-modules/pyoppleio/default.nix
index f0d11d86c7c2..4487647ca81d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyoppleio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyoppleio/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for interacting with OPPLE lights";
+    mainProgram = "oppleio";
     homepage = "https://github.com/jedmeng/python-oppleio";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyp/default.nix b/nixpkgs/pkgs/development/python-modules/pyp/default.nix
deleted file mode 100644
index 49f4c0a96577..000000000000
--- a/nixpkgs/pkgs/development/python-modules/pyp/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, coreutils
-, pythonOlder
-, astunparse
-, flit-core
-, jq
-, bc
-}:
-
-buildPythonPackage rec {
-  pname = "pyp";
-  version = "1.2.0";
-  format = "pyproject";
-
-  disabled = pythonOlder "3.6";
-
-  src = fetchFromGitHub {
-    owner = "hauntsaninja";
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    hash = "sha256-hnEgqWOIVj2ugOhd2aS9IulfkVnrlkhwOtrgH4qQqO8=";
-  };
-
-  nativeBuildInputs = [
-    flit-core
-  ];
-
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [
-    astunparse
-  ];
-
-  preCheck = ''
-    export PATH=$out/bin:$PATH
-  '';
-
-  nativeCheckInputs = [
-    pytestCheckHook
-    coreutils
-    jq
-    bc
-  ];
-
-  pythonImportsCheck = [
-    "pyp"
-  ];
-
-  meta = with lib; {
-    description = "Easily run Python at the shell! Magical, but never mysterious";
-    homepage = "https://github.com/hauntsaninja/pyp";
-    license = licenses.mit;
-    maintainers = with maintainers; [ rmcgibbo ];
-   };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/pyparsing/default.nix b/nixpkgs/pkgs/development/python-modules/pyparsing/default.nix
index 9fbf388e7d2d..05d2586ff18d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyparsing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyparsing/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pyparsing";
-  version = "3.1.1";
+  version = "3.1.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pyparsing";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-54XMw5ahMZH4cevTFg2GXhgSu0QX1mfITWFezWirt1E=";
+    hash = "sha256-0B8DjO4kLgvt4sYsk8CZI+5icdKy73XE2tWeqVLqO5A=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pypass/default.nix b/nixpkgs/pkgs/development/python-modules/pypass/default.nix
index 73a261d07a21..7e609cbe1ccd 100644
--- a/nixpkgs/pkgs/development/python-modules/pypass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypass/default.nix
@@ -77,6 +77,7 @@ buildPythonPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Password manager pass in Python";
+    mainProgram = "pypass";
     homepage = "https://github.com/aviau/python-pass";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/python-modules/pypca/default.nix b/nixpkgs/pkgs/development/python-modules/pypca/default.nix
index 28e958e4b626..7ca099f2d865 100644
--- a/nixpkgs/pkgs/development/python-modules/pypca/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypca/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for interacting with the PCA 301 smart plugs";
+    mainProgram = "pypca";
     homepage = "https://github.com/majuss/pypca";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pypck/default.nix b/nixpkgs/pkgs/development/python-modules/pypck/default.nix
index 3eef4a86ce8f..c4819b9a012a 100644
--- a/nixpkgs/pkgs/development/python-modules/pypck/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypck/default.nix
@@ -2,18 +2,16 @@
 , stdenv
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , pytest-asyncio
 , pytest-timeout
 , pytestCheckHook
 , pythonOlder
 , setuptools
-, wheel
 }:
 
 buildPythonPackage rec {
   pname = "pypck";
-  version = "0.7.17";
+  version = "0.7.19";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -22,21 +20,15 @@ buildPythonPackage rec {
     owner = "alengwenus";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-Vlt4+fRULb9mB0ceRmc7MJ50DnF9DAJPHA8iCbNVvcE=";
+    hash = "sha256-D4uUR8A1mrT+mxUswS34hSRczjRkRro/pz9NbMUCPjM=";
   };
 
-  patches = [
-    # https://github.com/alengwenus/pypck/pull/109
-    (fetchpatch {
-      name = "relax-setuptools-dependency.patch";
-      url = "https://github.com/alengwenus/pypck/commit/17023ebe8082120b1eec086842ca809ec6e9df2b.patch";
-      hash = "sha256-kTu1+IwDrcdqelyK/vfhxw8MQBis5I1jag7YTytKQhs=";
-    })
-  ];
+  postPatch = ''
+    echo "${version}" > VERSION
+  '';
 
   nativeBuildInputs = [
     setuptools
-    wheel
   ];
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pypdf/default.nix b/nixpkgs/pkgs/development/python-modules/pypdf/default.nix
index 5ff98d82eb3c..5e48ca58781c 100644
--- a/nixpkgs/pkgs/development/python-modules/pypdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypdf/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch2
 , pythonOlder
 
 # build-system
@@ -26,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "pypdf";
-  version = "3.17.4";
+  version = "4.1.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
@@ -35,9 +36,20 @@ buildPythonPackage rec {
     rev = "refs/tags/${version}";
     # fetch sample files used in tests
     fetchSubmodules = true;
-    hash = "sha256-2FKTBN1VZX0LGiDEghix4DBt1gO9NRNB/lAUefu5EUA=";
+    hash = "sha256-Z3flDC102FwEaNtef0YAfmAFSxpimQNyxt9tRfpKueg=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      # add missing test marker on networked test
+      url = "https://github.com/py-pdf/pypdf/commit/f43268734a529d4098e6258bf346148fd24c54f0.patch";
+      includes = [
+        "tests/test_generic.py"
+      ];
+      hash = "sha256-Ow32UB4crs3OgT+AmA9TNmcO5Y9SoSahybzD3AmWmVk=";
+    })
+  ];
+
   outputs = [
     "out"
     "doc"
diff --git a/nixpkgs/pkgs/development/python-modules/pyperf/default.nix b/nixpkgs/pkgs/development/python-modules/pyperf/default.nix
index 567f54e1712e..76065f353171 100644
--- a/nixpkgs/pkgs/development/python-modules/pyperf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyperf/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to generate and modify perf";
+    mainProgram = "pyperf";
     homepage = "https://pyperf.readthedocs.io/";
     changelog = "https://github.com/psf/pyperf/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyphotonfile/default.nix b/nixpkgs/pkgs/development/python-modules/pyphotonfile/default.nix
index 9d7a30213869..c18d8c60d478 100644
--- a/nixpkgs/pkgs/development/python-modules/pyphotonfile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyphotonfile/default.nix
@@ -5,26 +5,28 @@
 , numpy
 }:
 let
-  version = "0.2.1";
-  format = "setuptools";
+  version = "0.2.1+";
 in
 buildPythonPackage {
   pname = "pyphotonfile";
+  format = "setuptools";
   inherit version;
+
+  dontUseSetuptoolsCheck = true;
   propagatedBuildInputs = [ pillow numpy ];
 
   src = fetchFromGitHub {
-    owner = "fookatchu";
+    owner = "cab404";
     repo = "pyphotonfile";
-    rev = "v${version}";
-    sha256 = "1hh1fcn7q3kyk2413pjs18xnxvzrchrisbpj2cd59jrdp0qzgv2s";
+    rev = "b7ee92a0071007bb1d6a5984262651beec26543d";
+    sha256 = "iB5ky4fPX8ZnvXlDpggqS/345k2x/mPC4cIgb9M0f/c=";
   };
 
   meta = with lib; {
     maintainers = [ maintainers.cab404 ];
     license = licenses.gpl3Plus;
     description = "Library for reading and writing files for the Anycubic Photon 3D-Printer";
-    homepage = "https://github.com/fookatchu/pyphotonfile";
+    homepage = "https://github.com/cab404/pyphotonfile";
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pypinyin/default.nix b/nixpkgs/pkgs/development/python-modules/pypinyin/default.nix
index f42315c33198..882e62505e92 100644
--- a/nixpkgs/pkgs/development/python-modules/pypinyin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypinyin/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pypinyin";
-  version = "0.50.0";
+  version = "0.51.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "mozillazg";
     repo = "python-pinyin";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9RnuC9AvTlUtZqep6kn5y1xQcq/dzA9jTZXAsMpKZWc=";
+    hash = "sha256-kbUVif3a3L7BHj1b37FME5wicalK/iild0pvwPawr6Q=";
   };
 
   postPatch = ''
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Chinese Characters to Pinyin - 汉字转拼音";
+    mainProgram = "pypinyin";
     homepage = "https://github.com/mozillazg/python-pinyin";
     changelog = "https://github.com/mozillazg/python-pinyin/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pypiserver/default.nix b/nixpkgs/pkgs/development/python-modules/pypiserver/default.nix
index f598eb4df90a..83cf132ed5c6 100644
--- a/nixpkgs/pkgs/development/python-modules/pypiserver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypiserver/default.nix
@@ -83,6 +83,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Minimal PyPI server for use with pip/easy_install";
+    mainProgram = "pypi-server";
     homepage = "https://github.com/pypiserver/pypiserver";
     changelog = "https://github.com/pypiserver/pypiserver/releases/tag/v${version}";
     license = with licenses; [ mit zlib ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix b/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix
index b0276c77bc05..186d3828f4ca 100644
--- a/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyppeteer/default.nix
@@ -89,6 +89,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Headless chrome/chromium automation library (unofficial port of puppeteer)";
+    mainProgram = "pyppeteer-install";
     homepage = "https://github.com/pyppeteer/pyppeteer";
     changelog = "https://github.com/pyppeteer/pyppeteer/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyprof2calltree/default.nix b/nixpkgs/pkgs/development/python-modules/pyprof2calltree/default.nix
index c0f71dc8b64f..db979ae4297e 100644
--- a/nixpkgs/pkgs/development/python-modules/pyprof2calltree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyprof2calltree/default.nix
@@ -16,6 +16,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Help visualize profiling data from cProfile with kcachegrind and qcachegrind";
+    mainProgram = "pyprof2calltree";
     homepage = "https://github.com/pwaller/pyprof2calltree";
     changelog = "https://github.com/pwaller/pyprof2calltree/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyproj/default.nix b/nixpkgs/pkgs/development/python-modules/pyproj/default.nix
index 11ec1ef47ad4..bb98e96e02a1 100644
--- a/nixpkgs/pkgs/development/python-modules/pyproj/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyproj/default.nix
@@ -106,6 +106,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python interface to PROJ library";
+    mainProgram = "pyproj";
     homepage = "https://github.com/pyproj4/pyproj";
     changelog = "https://github.com/pyproj4/pyproj/blob/${src.rev}/docs/history.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pyprosegur/default.nix b/nixpkgs/pkgs/development/python-modules/pyprosegur/default.nix
index 3eba1a1df3b8..f1be9de65abb 100644
--- a/nixpkgs/pkgs/development/python-modules/pyprosegur/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyprosegur/default.nix
@@ -6,22 +6,27 @@
 , click
 , fetchFromGitHub
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pyprosegur";
-  version = "0.0.9";
-  format = "setuptools";
+  version = "0.0.10";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "dgomes";
-    repo = pname;
+    repo = "pyprosegur";
     rev = "refs/tags/${version}";
-    hash = "sha256-FTCQ2noxodFKN7qXdc7DG3Zt4j/pR6DeuWIs0GtGRy8=";
+    hash = "sha256-OHFJhufymD181FODHlIu+O5xh9dfKwEIVQX/zTOC6ks=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     aiofiles
     aiohttp
@@ -42,5 +47,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/dgomes/pyprosegur/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "pyprosegur";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyprusalink/default.nix b/nixpkgs/pkgs/development/python-modules/pyprusalink/default.nix
index 0356f899594b..7e8a924c96c7 100644
--- a/nixpkgs/pkgs/development/python-modules/pyprusalink/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyprusalink/default.nix
@@ -1,14 +1,14 @@
 { lib
-, aiohttp
 , buildPythonPackage
 , fetchFromGitHub
+, httpx
 , pythonOlder
 , setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pyprusalink";
-  version = "2.0.1";
+  version = "2.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-wwH4LE8wi8eb7QwT7N1mNtVleoWscDEOu2vrXKDktwU=";
+    hash = "sha256-Opip696hXV1gqFC1cWfrSCkrsldl7M7XZAqUaVkDy7M=";
   };
 
   nativeBuildInputs = [
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    aiohttp
+    httpx
   ];
 
   # Module doesn't have tests
diff --git a/nixpkgs/pkgs/development/python-modules/pypugjs/default.nix b/nixpkgs/pkgs/development/python-modules/pypugjs/default.nix
index 9b8ebad61eeb..6f8bf6c67a25 100644
--- a/nixpkgs/pkgs/development/python-modules/pypugjs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypugjs/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "PugJS syntax template adapter for Django, Jinja2, Mako and Tornado templates";
+    mainProgram = "pypugjs";
     homepage = "https://github.com/kakulukia/pypugjs";
     license = licenses.mit;
     maintainers = with maintainers; [ lopsided98 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pypykatz/default.nix b/nixpkgs/pkgs/development/python-modules/pypykatz/default.nix
index 4a93fb19c1f6..84d92530f9c5 100644
--- a/nixpkgs/pkgs/development/python-modules/pypykatz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypykatz/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Mimikatz implementation in Python";
+    mainProgram = "pypykatz";
     homepage = "https://github.com/skelsec/pypykatz";
     changelog = "https://github.com/skelsec/pypykatz/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyqt/6.x.nix b/nixpkgs/pkgs/development/python-modules/pyqt/6.x.nix
index db37cab6ac1a..92984dadc796 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqt/6.x.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqt/6.x.nix
@@ -22,14 +22,15 @@
 }:
 
 buildPythonPackage rec {
-  pname = "PyQt6";
+  pname = "pyqt6";
   version = "6.6.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "PyQt6";
+    inherit version;
     hash = "sha256-nxWKop0gUULFbw810HeEuN8L4oN40gqXvNqL1k/9A3k=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyqt5-stubs/default.nix b/nixpkgs/pkgs/development/python-modules/pyqt5-stubs/default.nix
index 505c64253971..957a2ac56c93 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqt5-stubs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqt5-stubs/default.nix
@@ -11,7 +11,7 @@
 }:
 
 buildPythonPackage rec {
-  pname = "PyQt5-stubs";
+  pname = "pyqt5-stubs";
   version = "5.15.6.0";
   format = "setuptools";
   disabled = pythonOlder "3.7";
diff --git a/nixpkgs/pkgs/development/python-modules/pyqt6-charts.nix b/nixpkgs/pkgs/development/python-modules/pyqt6-charts/default.nix
index 258a9c2eb8f4..fd969f6a805a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqt6-charts.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqt6-charts/default.nix
@@ -10,14 +10,15 @@
 }:
 
 buildPythonPackage rec {
-  pname = "PyQt6_Charts";
+  pname = "pyqt6-charts";
   version = "6.6.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "PyQt6_Charts";
+    inherit version;
     sha256 = "sha256-FMxuXRnK6AEpUkpC+mMy0NXa2kKCqUI0Jea5rhtrxW0=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyqt6-webengine.nix b/nixpkgs/pkgs/development/python-modules/pyqt6-webengine/default.nix
index 1b42da5731e8..637a686f00cb 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqt6-webengine.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqt6-webengine/default.nix
@@ -12,14 +12,15 @@
 }:
 
 buildPythonPackage rec {
-  pname = "PyQt6_WebEngine";
+  pname = "pyqt6-webengine";
   version = "6.6.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "PyQt6_WebEngine";
+    inherit version;
     hash = "sha256-1QuYTD+F5AnmkrFWEychUi1OjPm2wl4M+Sfuot+zlIc=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix b/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix
index 9e8a876213e8..e3e96571b1e8 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix
@@ -20,14 +20,14 @@ let
 in
 buildPythonPackage rec {
   pname = "pyqtgraph";
-  version = "0.13.3";
+  version = "0.13.4";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pyqtgraph";
     repo = "pyqtgraph";
     rev = "refs/tags/pyqtgraph-${version}";
-    hash = "sha256-kFTNhv8pgIRSJX0ePmp1I0+MGfCaW8b86baIYZ2bZQM=";
+    hash = "sha256-KVgsfvaVbR3eMRNqhJSBO4Hfk7KJgMdsZjKffx6vt84=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix b/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix
index 4ad16f6ea0a6..ec15596b4048 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix
@@ -9,14 +9,15 @@ let
   inherit (pythonPackages) buildPythonPackage python isPy27 pyqt5 sip pyqt-builder;
   inherit (darwin) autoSignDarwinBinariesHook;
 in buildPythonPackage (rec {
-  pname = "PyQtWebEngine";
+  pname = "pyqtwebengine";
   version = "5.15.6";
   format = "pyproject";
 
   disabled = isPy27;
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "PyQtWebEngine";
+    inherit version;
     sha256 = "sha256-riQe8qYceCk5xYtSwq6lOtmbMPOTTINY1eCm67P9ByE=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyquil/default.nix b/nixpkgs/pkgs/development/python-modules/pyquil/default.nix
index 9acc287798d2..bbc45f49cc37 100644
--- a/nixpkgs/pkgs/development/python-modules/pyquil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyquil/default.nix
@@ -15,7 +15,6 @@
 , pytest-asyncio
 , pytest-mock
 , pytestCheckHook
-, pythonAtLeast
 , pythonOlder
 , pythonRelaxDepsHook
 , qcs-sdk-python
@@ -31,7 +30,7 @@
 
 buildPythonPackage rec {
   pname = "pyquil";
-  version = "4.6.1";
+  version = "4.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -40,13 +39,9 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "pyquil";
     rev = "refs/tags/v${version}";
-    hash = "sha256-93dHujgGEh9/r9epAiUcUCiFCG7SFTAFoQbjQwwKhN0=";
+    hash = "sha256-jzQv9XBJSxdpSWDEEPuHwYfIemelpmVKJUigpz6NWdo=";
   };
 
-  patches = [
-    ./pydantic.patch
-  ];
-
   pythonRelaxDeps = [
     "lark"
     "networkx"
diff --git a/nixpkgs/pkgs/development/python-modules/pyquil/pydantic.patch b/nixpkgs/pkgs/development/python-modules/pyquil/pydantic.patch
deleted file mode 100644
index 689e87d65f74..000000000000
--- a/nixpkgs/pkgs/development/python-modules/pyquil/pydantic.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/pyproject.toml b/pyproject.toml
-index 2677758..5bbe863 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -30,7 +30,7 @@ scipy = [
- ]
- lark = "^0.11.1"
- rpcq = "^3.10.0"
--pydantic = "^1.10.7"
-+pydantic = ">=1.10.7"
- networkx = ">=2.5"
- importlib-metadata = { version = ">=3.7.3,<5", python = "<3.8" }
- qcs-sdk-python = "0.14.3"
-diff --git a/pyquil/external/rpcq.py b/pyquil/external/rpcq.py
-index 719eca1..d814d7b 100644
---- a/pyquil/external/rpcq.py
-+++ b/pyquil/external/rpcq.py
-@@ -1,6 +1,9 @@
- from typing import Dict, List, Union, Optional, Any
- from typing_extensions import Literal
--from pydantic import BaseModel, Field
-+try:
-+    from pydantic.v1 import BaseModel, Field
-+except ImportError:
-+    from pydantic import BaseModel, Field
- from rpcq.messages import TargetDevice as TargetQuantumProcessor
- 
- 
diff --git a/nixpkgs/pkgs/development/python-modules/pyradiomics/default.nix b/nixpkgs/pkgs/development/python-modules/pyradiomics/default.nix
index 606f542f8f96..2d77f8f1df0b 100644
--- a/nixpkgs/pkgs/development/python-modules/pyradiomics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyradiomics/default.nix
@@ -64,6 +64,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://pyradiomics.readthedocs.io";
     description = "Extraction of Radiomics features from 2D and 3D images and binary masks";
+    mainProgram = "pyradiomics";
     changelog = "https://github.com/AIM-Harvard/pyradiomics/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bcdarwin ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyrate-limiter/default.nix b/nixpkgs/pkgs/development/python-modules/pyrate-limiter/default.nix
index 3aa0d42e2d50..8dc1c5c9426a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyrate-limiter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyrate-limiter/default.nix
@@ -24,6 +24,11 @@ buildPythonPackage rec {
     "pyrate_limiter"
   ];
 
+  # The only consumer of this is Lutris (via python-moddb), and it requires 2.x,
+  # so don't auto-update it and break Lutris every python-updates.
+  # FIXME: remove when python-moddb updates.
+  passthru.skipBulkUpdate = true;
+
   meta = with lib; {
     description = "Python Rate-Limiter using Leaky-Bucket Algorimth Family";
     homepage = "https://github.com/vutran1710/PyrateLimiter";
diff --git a/nixpkgs/pkgs/development/python-modules/pyrdfa3/default.nix b/nixpkgs/pkgs/development/python-modules/pyrdfa3/default.nix
index 51f6411cb4fb..6526824fd9ae 100644
--- a/nixpkgs/pkgs/development/python-modules/pyrdfa3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyrdfa3/default.nix
@@ -1,16 +1,16 @@
 { lib
 , buildPythonPackage
-, fetchpatch
 , fetchPypi
 , html5lib
 , pythonOlder
 , rdflib
+, requests
 , setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pyrdfa3";
-  version = "3.5.3";
+  version = "3.6.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,27 +18,9 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit version;
     pname = "pyRdfa3";
-    hash = "sha256-FXZjqSuH3zRbb2m94jXf9feXiRYI4S/h5PqNrWhxMa4=";
+    hash = "sha256-c2gdq5V/YJAWlnZziLlWpXaccwvEUdpv+y8ONvGDFMI=";
   };
 
-  patches = [
-    (fetchpatch {
-      # https://github.com/RDFLib/pyrdfa3/pull/40
-      name = "CVE-2022-4396.patch";
-      url = "https://github.com/RDFLib/pyrdfa3/commit/ffd1d62dd50d5f4190013b39cedcdfbd81f3ce3e.patch";
-      hash = "sha256-prRrOwylYcEqKLr/8LIpyJ5Yyt+6+HTUqH5sQXU8tqc=";
-    })
-  ];
-
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "'html = pyRdfa.rdflibparsers:StructuredDataParser'" "'html = pyRdfa.rdflibparsers:StructuredDataParser'," \
-      --replace "'hturtle = pyRdfa.rdflibparsers:HTurtleParser'" "'hturtle = pyRdfa.rdflibparsers:HTurtleParser',"
-    # https://github.com/RDFLib/pyrdfa3/issues/31
-    substituteInPlace pyRdfa/utils.py \
-      --replace "imp," ""
-  '';
-
   nativeBuildInputs = [
     setuptools
   ];
@@ -46,6 +28,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     rdflib
     html5lib
+    requests
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyroma/default.nix b/nixpkgs/pkgs/development/python-modules/pyroma/default.nix
index 99fb8bec5f09..51816799034f 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroma/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroma/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Test your project's packaging friendliness";
+    mainProgram = "pyroma";
     homepage = "https://github.com/regebro/pyroma";
     license = licenses.mit;
     maintainers = with maintainers; [ kamadorueda ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyscaffold/default.nix b/nixpkgs/pkgs/development/python-modules/pyscaffold/default.nix
index ae7d7d5fff9c..c394f9550fdc 100644
--- a/nixpkgs/pkgs/development/python-modules/pyscaffold/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyscaffold/default.nix
@@ -101,6 +101,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Template tool for putting up the scaffold of a Python project";
+    mainProgram = "putup";
     homepage = "https://pypi.org/project/PyScaffold/";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewcroughan ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyscard/default.nix b/nixpkgs/pkgs/development/python-modules/pyscard/default.nix
index 6e7a1ec29cbe..b2a0256415d1 100644
--- a/nixpkgs/pkgs/development/python-modules/pyscard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyscard/default.nix
@@ -16,7 +16,7 @@ let
 in
 
 buildPythonPackage rec {
-  version = "2.0.7";
+  version = "2.0.8";
   pname = "pyscard";
   pyproject = true;
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "LudovicRousseau";
     repo = "pyscard";
     rev = "refs/tags/${version}";
-    hash = "sha256-nkDI1OPQ4SsNhWkg53ZTsG7j0+mvpkJI7dsyaOl1a/8=";
+    hash = "sha256-UpTSbq4mf42tcSWL8wR54MQDZ+z2YjrTW0Ud2F5/J2E=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyscf/default.nix b/nixpkgs/pkgs/development/python-modules/pyscf/default.nix
index 779af5e7f4f8..7b60a47c44c3 100644
--- a/nixpkgs/pkgs/development/python-modules/pyscf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyscf/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "pyscf";
-  version = "2.4.0";
+  version = "2.5.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "pyscf";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-+dZsXiLqqyRWr1eOEVSHZ1KMM760hrDaT07ylZUcGmo=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-UCchzoYsqeIGViewPf4KedmhYktXLmp5Me4lzb1i8p0=";
   };
 
   # setup.py calls Cmake and passes the arguments in CMAKE_CONFIGURE_ARGS to cmake.
diff --git a/nixpkgs/pkgs/development/python-modules/pyscreeze/default.nix b/nixpkgs/pkgs/development/python-modules/pyscreeze/default.nix
index 4d09929bf0e6..d5261471c8f1 100644
--- a/nixpkgs/pkgs/development/python-modules/pyscreeze/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyscreeze/default.nix
@@ -7,7 +7,7 @@
 , scrot
 }:
 buildPythonPackage rec {
-  pname = "PyScreeze";
+  pname = "pyscreeze";
   version = "0.1.26";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/development/python-modules/pysdl2/default.nix b/nixpkgs/pkgs/development/python-modules/pysdl2/default.nix
index 4903dbbbc241..0ab7010f0923 100644
--- a/nixpkgs/pkgs/development/python-modules/pysdl2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysdl2/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, substituteAll, fetchPypi, buildPythonPackage, SDL2, SDL2_ttf, SDL2_image, SDL2_gfx, SDL2_mixer }:
 
 buildPythonPackage rec {
-  pname = "PySDL2";
+  pname = "pysdl2";
   version = "0.9.16";
 
   # The tests use OpenGL using find_library, which would have to be
@@ -12,7 +12,8 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sdl2" ];
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "PySDL2";
+    inherit version;
     hash = "sha256-ECdAa62+zdMP5W6AClp2rX1ycaOuwLes94DuJqAPLUA=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pysecuritas/default.nix b/nixpkgs/pkgs/development/python-modules/pysecuritas/default.nix
index 7579e014b69c..0c777bca224d 100644
--- a/nixpkgs/pkgs/development/python-modules/pysecuritas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysecuritas/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python client to access Securitas Direct Mobile API";
+    mainProgram = "pysecuritas";
     homepage = "https://github.com/Cebeerre/pysecuritas";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pysiaalarm/default.nix b/nixpkgs/pkgs/development/python-modules/pysiaalarm/default.nix
index 4da347ad8969..c5a7cdae56a5 100644
--- a/nixpkgs/pkgs/development/python-modules/pysiaalarm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysiaalarm/default.nix
@@ -8,6 +8,7 @@
 , pytest-asyncio
 , pytest-cases
 , pytestCheckHook
+, pytest_7
 , pytz
 }:
 
@@ -43,7 +44,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     pytest-asyncio
     pytest-cases
-    pytestCheckHook
+    (pytestCheckHook.override { pytest = pytest_7; })
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/pysimplegui/default.nix b/nixpkgs/pkgs/development/python-modules/pysimplegui/default.nix
index c5c71810a938..30e5de7abd8d 100644
--- a/nixpkgs/pkgs/development/python-modules/pysimplegui/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysimplegui/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pysimplegui";
-  version = "4.60.5";
+  version = "5.0.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PySimpleGUI";
     inherit version;
-    hash = "sha256-MQFNHMXu8Tc9fpNWT/JgRmJkXMd0qTmx8BqiU+f514s=";
+    hash = "sha256-bnjPVGMVfma/tn8oCg6FLMI1W+9rtHMKNdarbNg61GM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyslurm/default.nix b/nixpkgs/pkgs/development/python-modules/pyslurm/default.nix
index c960cfedfdde..b910da5b69e2 100644
--- a/nixpkgs/pkgs/development/python-modules/pyslurm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyslurm/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pyslurm";
-  version = "23.2.2";
+  version = "23.11.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     repo = "pyslurm";
     owner = "PySlurm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-M8seh5pkw2OTiDU4O96D0Lg3+FrlB2w4ehy53kSxyoU=";
+    hash = "sha256-Qi0XftneKj7hdDiLY2hoRONRrPv49mfQlvlNkudH54Y=";
   };
 
   patches = [ (fetchpatch {
diff --git a/nixpkgs/pkgs/development/python-modules/pysmt/default.nix b/nixpkgs/pkgs/development/python-modules/pysmt/default.nix
index 6a08234312ab..61283ce4ad3b 100644
--- a/nixpkgs/pkgs/development/python-modules/pysmt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysmt/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for SMT formulae manipulation and solving";
+    mainProgram = "pysmt-install";
     homepage = "https://github.com/pysmt/pysmt";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pysnmp-lextudio/default.nix b/nixpkgs/pkgs/development/python-modules/pysnmp-lextudio/default.nix
index 89df55d5fd70..ef50f244a430 100644
--- a/nixpkgs/pkgs/development/python-modules/pysnmp-lextudio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysnmp-lextudio/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "pysnmp-lextudio";
-  version = "6.0.6";
+  version = "6.0.11";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "lextudio";
     repo = "pysnmp";
-    rev = "v${version}";
-    hash = "sha256-Mbzpe2wVoW4m7hnfsdcSO/8uOgWl5f1sLLqvdpQP2gU=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-h/FxiGjBZqO82omkVqz+fws398Iz1EkHbZPMYIzG+t0=";
   };
 
   nativeBuildInputs = [
@@ -57,6 +57,8 @@ buildPythonPackage rec {
     # pysnmp.smi.error.MibNotFoundError
     "test_send_v3_trap_notification"
     "test_addAsn1MibSource"
+    "test_v1_walk"
+    "test_v2_walk"
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/pysol-cards/default.nix b/nixpkgs/pkgs/development/python-modules/pysol-cards/default.nix
index 88c38fc59827..f2837b93568e 100644
--- a/nixpkgs/pkgs/development/python-modules/pysol-cards/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysol-cards/default.nix
@@ -15,6 +15,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Generates Solitaire deals";
+    mainProgram = "pysol_cards";
     homepage = "https://github.com/shlomif/pysol_cards";
     license = licenses.mit;
     maintainers = with maintainers; [ mwolfe ];
diff --git a/nixpkgs/pkgs/development/python-modules/pysolcast/default.nix b/nixpkgs/pkgs/development/python-modules/pysolcast/default.nix
index 1eab58761440..891856f35b8c 100644
--- a/nixpkgs/pkgs/development/python-modules/pysolcast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysolcast/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pysolcast";
-  version = "2.0.0";
+  version = "2.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "mcaulifn";
     repo = "solcast";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jLhM47o6LvkPux0kusOrRk4TDS6VLWE0QMEiQxlBCwo=";
+    hash = "sha256-JzGrE6zKj16Uzm3EC8ysMbgP5ouA00Gact7NYXbEkXI=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyspnego/default.nix b/nixpkgs/pkgs/development/python-modules/pyspnego/default.nix
index ae1d4f2d1beb..dca383ce6d9c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyspnego/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyspnego/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/jborean93/pyspnego/blob/v${version}/CHANGELOG.md";
     description = "Python SPNEGO authentication library";
+    mainProgram = "pyspnego-parse";
     homepage = "https://github.com/jborean93/pyspnego";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pysrt/default.nix b/nixpkgs/pkgs/development/python-modules/pysrt/default.nix
index 17122d24089e..3c62043d9e7f 100644
--- a/nixpkgs/pkgs/development/python-modules/pysrt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysrt/default.nix
@@ -28,5 +28,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/byroot/pysrt";
     license = licenses.gpl3;
     description = "Python library used to edit or create SubRip files";
+    mainProgram = "srt";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyssim/default.nix b/nixpkgs/pkgs/development/python-modules/pyssim/default.nix
index 820400e9e4ec..e7632e67905c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyssim/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyssim/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for computing Structured Similarity Image Metric (SSIM) in Python";
+    mainProgram = "pyssim";
     homepage = "https://github.com/jterrace/pyssim";
     license = licenses.mit;
     maintainers = with maintainers; [ jluttine ];
diff --git a/nixpkgs/pkgs/development/python-modules/pysubs2/default.nix b/nixpkgs/pkgs/development/python-modules/pysubs2/default.nix
index 3ae2de440750..bd17cd369535 100644
--- a/nixpkgs/pkgs/development/python-modules/pysubs2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysubs2/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/tkarabela/pysubs2";
     description = "A Python library for editing subtitle files";
+    mainProgram = "pysubs2";
     license = licenses.mit;
     maintainers = with maintainers; [ Benjamin-L ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pysuez/default.nix b/nixpkgs/pkgs/development/python-modules/pysuez/default.nix
index a8f8774256b7..8af1c7ff006b 100644
--- a/nixpkgs/pkgs/development/python-modules/pysuez/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysuez/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to get water consumption data from Suez";
+    mainProgram = "pysuez";
     homepage = "https://github.com/ooii/pySuez";
     changelog = "https://github.com/ooii/pySuez/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/pysyncobj/default.nix b/nixpkgs/pkgs/development/python-modules/pysyncobj/default.nix
index d5623fff6313..3909f1626dc3 100644
--- a/nixpkgs/pkgs/development/python-modules/pysyncobj/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysyncobj/default.nix
@@ -27,6 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for replicating your class";
+    mainProgram = "syncobj_admin";
     homepage = "https://github.com/bakwc/PySyncObj";
     changelog = "https://github.com/bakwc/PySyncObj/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytado/default.nix b/nixpkgs/pkgs/development/python-modules/pytado/default.nix
index f6c26a60b338..8a9a3f4cf2fa 100644
--- a/nixpkgs/pkgs/development/python-modules/pytado/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytado/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pytado";
-  version = "0.17.4";
+  version = "0.17.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "wmalgadey";
     repo = "PyTado";
     rev = "refs/tags/${version}";
-    hash = "sha256-Wdd9HdsQjaYlL8knhMuO87+dom+aTsmrLRK0UdrpsbQ=";
+    hash = "sha256-FjdqZc4Zt2sLYJpnD/MAzr8Y9lGHteHB5psQqheS84I=";
   };
 
   nativeBuildInputs = [
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python binding for Tado web API";
+    mainProgram = "pytado";
     homepage = "https://github.com/wmalgadey/PyTado";
     changelog = "https://github.com/wmalgadey/PyTado/releases/tag/${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/pytaglib/default.nix b/nixpkgs/pkgs/development/python-modules/pytaglib/default.nix
index a3fd95133a66..e31ea59c546d 100644
--- a/nixpkgs/pkgs/development/python-modules/pytaglib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytaglib/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python bindings for the Taglib audio metadata library";
+    mainProgram = "pyprinttags";
     homepage = "https://github.com/supermihi/pytaglib";
     changelog = "https://github.com/supermihi/pytaglib/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/pytapo/default.nix b/nixpkgs/pkgs/development/python-modules/pytapo/default.nix
index d0f7f79c5636..d369ace859f6 100644
--- a/nixpkgs/pkgs/development/python-modules/pytapo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytapo/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pytapo";
-  version = "3.3.18";
+  version = "3.3.19";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-CiLZ+FUmawZaKQxkDxYCv0Qs/djFuIVSyQ0eSi41HDg=";
+    hash = "sha256-Zm/ll6vOFW05euRgJN+SghVmMkSGQc9CVZkRu3h6AQQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytedee-async/default.nix b/nixpkgs/pkgs/development/python-modules/pytedee-async/default.nix
index a89b4fd03e8c..cdb89a843c13 100644
--- a/nixpkgs/pkgs/development/python-modules/pytedee-async/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytedee-async/default.nix
@@ -1,14 +1,14 @@
 { lib
+, aiohttp
 , buildPythonPackage
 , fetchFromGitHub
-, setuptools
 , pythonOlder
-, aiohttp
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pytedee-async";
-  version = "0.2.15";
+  version = "0.2.17";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -17,14 +17,14 @@ buildPythonPackage rec {
     owner = "zweckj";
     repo = "pytedee_async";
     rev = "refs/tags/v${version}";
-    hash = "sha256-in5umB3ewrx5de1OaWI1XpDaNgy2ZtLYr4lCswhcayg=";
+    hash = "sha256-5mCHCzoDJ6+ao2guhAtVjvPaAS6Hutn+NwaQIjWDlgo=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytenable/default.nix b/nixpkgs/pkgs/development/python-modules/pytenable/default.nix
index 2810332d42bb..0bf5ef3de39f 100644
--- a/nixpkgs/pkgs/development/python-modules/pytenable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytenable/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "pytenable";
-  version = "1.4.20";
+  version = "1.4.21";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "tenable";
     repo = "pyTenable";
     rev = "refs/tags/${version}";
-    hash = "sha256-NiAv0zNITpKIQ2TarNoU4HwKuHm22LTu8pJUi0SDlfE=";
+    hash = "sha256-+P+6EmKpR+qlvLMgeg6iIxSx7jtC995v2eijkjJdc70=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytensor/default.nix b/nixpkgs/pkgs/development/python-modules/pytensor/default.nix
index e8e8056ab811..849006e1f18e 100644
--- a/nixpkgs/pkgs/development/python-modules/pytensor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytensor/default.nix
@@ -93,6 +93,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library to define, optimize, and efficiently evaluate mathematical expressions involving multi-dimensional arrays";
+    mainProgram = "pytensor-cache";
     homepage = "https://github.com/pymc-devs/pytensor";
     changelog = "https://github.com/pymc-devs/pytensor/releases";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix b/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix
index 77dd73e30155..f6a220c02eba 100644
--- a/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
     homepage = "https://pypi.org/project/pytesseract/";
     license = licenses.asl20;
     description = "A Python wrapper for Google Tesseract";
+    mainProgram = "pytesseract";
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix
index fd81aab3838a..8b74f5314930 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pytest-asyncio";
-  version = "0.23.5"; # N.B.: when updating, tests bleak and aioesphomeapi tests
+  version = "0.23.5.post1"; # N.B.: when updating, tests bleak and aioesphomeapi tests
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "pytest-dev";
     repo = "pytest-asyncio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sA9ix69oywr1D6ByAxzAFWrAPHJOuq4C8UMiMNkmGJs=";
+    hash = "sha256-k+EmbUptZB2ZLiygwY9WwFA4PNJA+9fEAZYu0xaPZSQ=";
   };
 
   outputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-base-url/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-base-url/default.nix
index a6aa15890b85..1d8a3cb6396a 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-base-url/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-base-url/default.nix
@@ -1,9 +1,11 @@
 { lib
 , fetchFromGitHub
 , buildPythonPackage
-, poetry-core
+, hatchling
+, hatch-vcs
 , pytest
 , pytest-localserver
+, pytest-metadata
 , requests
 , pytestCheckHook
 , pythonOlder
@@ -11,20 +13,21 @@
 
 buildPythonPackage rec {
   pname = "pytest-base-url";
-  version = "2.0.0";
+  version = "2.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "pytest-dev";
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    hash = "sha256-v6pLejWNeb9Do6x2EJqmLKj8DNqcMtmYIs+7iDYsbjk=";
+    repo = "pytest-base-url";
+    rev = "refs/tags/${version}";
+    hash = "sha256-3P3Uk3QoznAtNODLjXFbeNn3AOfp9owWU2jqkxTEAa4=";
   };
 
   nativeBuildInputs = [
-    poetry-core
+    hatchling
+    hatch-vcs
   ];
 
   buildInputs = [
@@ -40,6 +43,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     pytestCheckHook
     pytest-localserver
+    pytest-metadata
   ];
 
   pytestFlagsArray = [
@@ -58,7 +62,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "pytest plugin for URL based tests";
     homepage = "https://github.com/pytest-dev/pytest-base-url";
-    changelog = "https://github.com/pytest-dev/pytest-base-url/blob/v${version}/CHANGES.rst";
+    changelog = "https://github.com/pytest-dev/pytest-base-url/blob/${src.rev}/CHANGES.rst";
     license = licenses.mpl20;
     maintainers = with maintainers; [ sephi ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
index b5b558a0faf5..3660dc709f31 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
@@ -63,6 +63,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "BDD library for the pytest";
+    mainProgram = "pytest-bdd";
     homepage = "https://github.com/pytest-dev/pytest-bdd";
     license = licenses.mit;
     maintainers = with maintainers; [ jm2dev ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix
index 6bb6463d0088..e49f02ce30dc 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-dependency/default.nix
@@ -1,38 +1,40 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 , pytest
+, pytestCheckHook
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "pytest-dependency";
-  version = "0.5.1";
-  format = "setuptools";
+  version = "0.6.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wqiSkGGSZj+FAwpquRME5QjlRs3f5VfWktYexXodlGs=";
+    hash = "sha256-k0sOajnZWZUGLBk/fq7tio/6Bv8bzvS2Kw3HSnCLrME=";
   };
 
-  patches = [
-    # Fix build with pytest >= 6.2.0, https://github.com/RKrahl/pytest-dependency/pull/51
-    (fetchpatch {
-      url = "https://github.com/RKrahl/pytest-dependency/commit/0930889a13e2b9baa7617f05dc9b55abede5209d.patch";
-      hash = "sha256-xRreoIz8+yW0mAUb4FvKVlPjALzMAZDmdpbmDKRISE0=";
-    })
+  nativeBuildInputs = [
+    setuptools
   ];
 
-  buildInputs = [ pytest ];
+  buildInputs = [
+    pytest
+  ];
 
-  nativeCheckInputs = [ pytest ];
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-    pytest
-  '';
+  pythonImportsCheck = [
+    "pytest_dependency"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/RKrahl/pytest-dependency";
+    changelog = "https://github.com/RKrahl/pytest-dependency/blob/${version}/CHANGES.rst";
     description = "Manage dependencies of tests";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix
index 531ad08dec46..af7169bffc60 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix
@@ -10,12 +10,12 @@
 }:
 buildPythonPackage rec {
   pname = "pytest-django";
-  version = "4.7.0";
+  version = "4.8.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ktb9RrHXm1T7awYLuzlCgHM5bOxxfV8uEiqZDUtqpeg=";
+    hash = "sha256-XQVP4BHFbzsQ+Xj0Go77Llrfx+aA7zb7VxraHyR3nZA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
index d4f5a3c5c5ab..c54179d9b690 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, gitMinimal
 , numpy
 , packaging
 , pytest
@@ -12,16 +13,21 @@
 
 buildPythonPackage rec {
   pname = "pytest-doctestplus";
-  version = "1.0.0";
+  version = "1.2.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9lBEDcrt4T7W19pzv7SsWF1AqAREujVC0+buzbJ11J8=";
+    hash = "sha256-xa12Oi+uXu5bZ4jPVedU1AQOxJsOIoj8ncmgFe+buTI=";
   };
 
+  postPatch = ''
+    substituteInPlace pytest_doctestplus/plugin.py \
+      --replace-fail '"git"' '"${lib.getExe gitMinimal}"'
+  '';
+
   nativeBuildInputs = [
     setuptools-scm
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-examples/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-examples/default.nix
index 8a53bc17f12b..03df14e8c7b9 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-examples/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-examples/default.nix
@@ -2,6 +2,7 @@
 , black
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , hatchling
 , pytest
 , pytestCheckHook
@@ -24,6 +25,17 @@ buildPythonPackage rec {
     hash = "sha256-jCxOGDJlFkMH9VtaaPsE5zt+p3Z/mrVzhdNSI51/nVM=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/pydantic/pytest-examples/commit/551ba911713c2859caabc91b664723dd6bc800c5.patch";
+      hash = "sha256-Y3OU4fNyLADhBQGwX2jY0gagVV2q2dcn3kJRLUyCtZI=";
+    })
+    (fetchpatch {
+      url = "https://github.com/pydantic/pytest-examples/commit/3bef5d644fe3fdb076270833768e4c6df9148530.patch";
+      hash = "sha256-pf+WKzZNqgjbJiblMMLHWk23kjg4W9nm+KBmC8rG8Lw=";
+    })
+  ];
+
   postPatch = ''
     # ruff binary is used directly, the ruff Python package is not needed
     substituteInPlace pytest_examples/lint.py \
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
index 054170408be6..af173182f313 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-filter-subpackage";
-  version = "0.1.2";
+  version = "0.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-H66jZxeAPlJFiNbBCdJtINOzRCLo1qloEnWJd9ygF4I=";
+    hash = "sha256-P0aPGzZRgSiGm5Xeq2YbpF7WKThUMp/vFNpMjKx4r1Y=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix
index 2aa92cc3e21f..c7ed502e7a41 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix
@@ -1,7 +1,10 @@
 { lib
+, stdenv
 , buildPythonPackage
 , pythonOlder
+, pythonAtLeast
 , fetchFromGitHub
+, fetchpatch2
 , setuptools
 , setuptools-scm
 , wheel
@@ -25,6 +28,15 @@ buildPythonPackage rec {
     hash = "sha256-owkGwF5WQ17/CXwTsIYJ2AgktekRB4qhtsDxR0LCI/k=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      # https://github.com/pytest-dev/pytest-forked/actions
+      name = "pytest8-compat.patch";
+      url = "https://github.com/pytest-dev/pytest-forked/commit/b2742322d39ebda97d5170922520f3bb9c73f614.patch";
+      hash = "sha256-tTRW0p3tOotQMtjjJ6RUKdynsAnKRz0RAV8gAUHiNNA=";
+    })
+  ];
+
   nativeBuildInputs = [
     setuptools
     setuptools-scm
@@ -44,6 +56,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = if (pythonAtLeast "3.12" && stdenv.isDarwin && stdenv.isx86_64) then [
+    # non reproducible test failure on hydra, works on community builder
+    # https://hydra.nixos.org/build/252537267
+    "test_xfail"
+  ] else null;
+
   setupHook = ./setup-hook.sh;
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-harvest/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-harvest/default.nix
index 32c195171934..3cfcd6635997 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-harvest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-harvest/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "pytest-harvest";
-  version = "1.10.4";
+  version = "1.10.5";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "smarie";
     repo = "python-pytest-harvest";
     rev = "refs/tags/${version}";
-    hash = "sha256-ebzE63d7zt9G9HgbLHaE/USZZpUd3y3vd0kNdT/wWw0=";
+    hash = "sha256-s8QiuUFRTTRhSpLa0DHScKFC9xdu+w2rssWCg8sIjsg=";
   };
 
   # create file, that is created by setuptools_scm
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-httpserver/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-httpserver/default.nix
index 2c825897edb1..5759f180ff70 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-httpserver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-httpserver/default.nix
@@ -11,16 +11,16 @@
 
 buildPythonPackage rec {
   pname = "pytest-httpserver";
-  version = "1.0.8";
-  format = "pyproject";
+  version = "1.0.10";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "csernazs";
-    repo = pname;
+    repo = "pytest-httpserver";
     rev = "refs/tags/${version}";
-    hash = "sha256-hbhS1kL5VNiGjvnYkDI1LwgkqqfBMqgcao3zy716q+A=";
+    hash = "sha256-KCsZs4MGENByF/wB+aj3yvMp7lssHNVKx8jLhDQ1u4k=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-jupyter/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-jupyter/default.nix
index 63771bf4cf3c..2246c5826725 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-jupyter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-jupyter/default.nix
@@ -22,14 +22,14 @@
 
 let self = buildPythonPackage rec {
   pname = "pytest-jupyter";
-  version = "0.8.0";
+  version = "0.9.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jupyter-server";
     repo = "pytest-jupyter";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ND51UpPsvZGH6LdEaNFXaBLoCMB4n7caPoo1/Go9fNs=";
+    hash = "sha256-8pQNtzMylW9b3vk0kp7NcJnXAJKYeoFsHy/lyQFCNzc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-lazy-fixture/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-lazy-fixture/default.nix
index 1b49ea4ce8e5..b4006b700783 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-lazy-fixture/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-lazy-fixture/default.nix
@@ -1,26 +1,41 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, setuptools
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pytest-lazy-fixture";
   version = "0.6.3";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "1b0hmnsxw4s2wf9pks8dg6dfy5cx3zcbzs8517lfccxsfizhqz8f";
   };
 
+  patches = [
+    # fix build with pytest>=8
+    # https://github.com/TvoroG/pytest-lazy-fixture/issues/65#issuecomment-1915829980
+    ./pytest-8-compatible.patch
+  ];
+
+  build-system = [
+    setuptools
+  ];
+
+  pythonImportsCheck = [
+    "pytest_lazyfixture"
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
 
   meta = with lib; {
     description = "Helps to use fixtures in pytest.mark.parametrize";
-    homepage = "https://github.com/pytest-dev/pytest-repeat";
+    homepage = "https://github.com/tvorog/pytest-lazy-fixture";
     license = licenses.mit;
     maintainers = with maintainers; [ tobim ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-lazy-fixture/pytest-8-compatible.patch b/nixpkgs/pkgs/development/python-modules/pytest-lazy-fixture/pytest-8-compatible.patch
new file mode 100644
index 000000000000..26fcd7716667
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-lazy-fixture/pytest-8-compatible.patch
@@ -0,0 +1,66 @@
+diff --git a/pytest_lazyfixture.py b/pytest_lazyfixture.py
+index abf5db5..df83ce7 100644
+--- a/pytest_lazyfixture.py
++++ b/pytest_lazyfixture.py
+@@ -71,14 +71,13 @@ def pytest_make_parametrize_id(config, val, argname):
+ def pytest_generate_tests(metafunc):
+     yield
+ 
+-    normalize_metafunc_calls(metafunc, 'funcargs')
+-    normalize_metafunc_calls(metafunc, 'params')
++    normalize_metafunc_calls(metafunc)
+ 
+ 
+-def normalize_metafunc_calls(metafunc, valtype, used_keys=None):
++def normalize_metafunc_calls(metafunc, used_keys=None):
+     newcalls = []
+     for callspec in metafunc._calls:
+-        calls = normalize_call(callspec, metafunc, valtype, used_keys)
++        calls = normalize_call(callspec, metafunc, used_keys)
+         newcalls.extend(calls)
+     metafunc._calls = newcalls
+ 
+@@ -98,17 +97,21 @@ def copy_metafunc(metafunc):
+     return copied
+ 
+ 
+-def normalize_call(callspec, metafunc, valtype, used_keys):
++def normalize_call(callspec, metafunc, used_keys):
+     fm = metafunc.config.pluginmanager.get_plugin('funcmanage')
+ 
+     used_keys = used_keys or set()
+-    valtype_keys = set(getattr(callspec, valtype).keys()) - used_keys
++    keys = set(callspec.params.keys()) - used_keys
++    print(used_keys, keys)
+ 
+-    for arg in valtype_keys:
+-        val = getattr(callspec, valtype)[arg]
++    for arg in keys:
++        val = callspec.params[arg]
+         if is_lazy_fixture(val):
+             try:
+-                _, fixturenames_closure, arg2fixturedefs = fm.getfixtureclosure([val.name], metafunc.definition.parent)
++                if pytest.version_tuple >= (8, 0, 0):
++                    fixturenames_closure, arg2fixturedefs = fm.getfixtureclosure(metafunc.definition.parent, [val.name], {})
++                else:
++                    _, fixturenames_closure, arg2fixturedefs = fm.getfixtureclosure([val.name], metafunc.definition.parent)
+             except ValueError:
+                 # 3.6.0 <= pytest < 3.7.0; `FixtureManager.getfixtureclosure` returns 2 values
+                 fixturenames_closure, arg2fixturedefs = fm.getfixtureclosure([val.name], metafunc.definition.parent)
+@@ -117,14 +120,14 @@ def normalize_call(callspec, metafunc, valtype, used_keys):
+                 fixturenames_closure, arg2fixturedefs = fm.getfixtureclosure([val.name], current_node)
+ 
+             extra_fixturenames = [fname for fname in fixturenames_closure
+-                                  if fname not in callspec.params and fname not in callspec.funcargs]
++                                  if fname not in callspec.params]# and fname not in callspec.funcargs]
+ 
+             newmetafunc = copy_metafunc(metafunc)
+             newmetafunc.fixturenames = extra_fixturenames
+             newmetafunc._arg2fixturedefs.update(arg2fixturedefs)
+             newmetafunc._calls = [callspec]
+             fm.pytest_generate_tests(newmetafunc)
+-            normalize_metafunc_calls(newmetafunc, valtype, used_keys | set([arg]))
++            normalize_metafunc_calls(newmetafunc, used_keys | set([arg]))
+             return newmetafunc._calls
+ 
+         used_keys.add(arg)
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
index 7b4a285e3552..d4eb108053b1 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pytest-metadata";
-  version = "3.0.0";
+  version = "3.1.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pytest_metadata";
     inherit version;
-    hash = "sha256-dpqcZdKIS9WDvGJrCs53rRXb4C3ZGpEG1H/UbZwlaco=";
+    hash = "sha256-0qKbA1X7wD8WiqltQf+IsaO0SjsCrL5JGAHJigSAF8g=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-mypy-plugins/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-mypy-plugins/default.nix
index fb91609a027c..fecc71372159 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-mypy-plugins/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-mypy-plugins/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "pytest-mypy-plugins";
-  version = "3.1.0";
+  version = "3.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "typeddjango";
     repo = "pytest-mypy-plugins";
     rev = "refs/tags/${version}";
-    hash = "sha256-FXJWOeHXeKH8kDzgujOQyu3ZtIwZ5+gc4Fxod3mRRio=";
+    hash = "sha256-kZbTCdZM+809yFkKWMpeyBOq6hcqcYk7rEYqee9hZwk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-plt/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-plt/default.nix
index c1163516500e..55051359d7e4 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-plt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-plt/default.nix
@@ -7,14 +7,18 @@
 
 buildPythonPackage rec {
   pname = "pytest-plt";
-  version = "1.1.0";
+  version = "1.1.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-IkTNlierFXIG9WSVUfVoirfQ6z7JOYlCaa5NhnBSuxc=";
+    hash = "sha256-TOuyVH2wKKruy7SBNW3z62yzpmBT6l6RcKhoO1XUFhE=";
   };
 
+  postPatch = ''
+    sed -i '/addopts =/d' setup.cfg
+  '';
+
   nativeCheckInputs = [
     pytestCheckHook
     matplotlib
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-runner/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-runner/default.nix
index ddea7f405bcf..f0c7acda466a 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-runner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-runner/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-runner";
-  version = "6.0.0";
+  version = "6.0.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tNhTYu0ptMNIZ43nl99Djw8FCUl924xkcJbAKm2HtoU=";
+    hash = "sha256-cNRzlYWnAI83v0kzwBP9sye4h4paafy7MxbIiILw9Js=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix
index b0b5e8bfb98a..29f26251b022 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-server-fixtures/default.nix
@@ -4,12 +4,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-server-fixtures";
-  version = "1.7.0";
+  version = "1.7.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07vdv3y89qzv89ws0y48h92yplqsx208b9cizx80w644dazb398g";
+    sha256 = "sha256-xecz0gqNDnc8pRPjYOS6JkeVLqlCj6K9BVFsYoHqPOc=";
   };
 
   buildInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix
index 91094c81ab41..0b6a8f8f87b5 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix
@@ -1,25 +1,43 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, isPy3k
-, requests
+, fetchFromGitHub
+, fetchpatch
 , psutil
+, pylibmc
 , pytest
+, pytestCheckHook
+, pythonOlder
+, requests
+, setuptools
 , setuptools-scm
 , toml
+, mysqlclient
 , zc-lockfile
 }:
 
 buildPythonPackage rec {
   pname = "pytest-services";
   version = "2.2.1";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "2da740487d08ea63dfdf718f5d4ba11e590c99ddf5481549edebf7a3a42ca536";
+  src = fetchFromGitHub {
+    owner = "pytest-dev";
+    repo = "pytest-services";
+    rev = "refs/tags/${version}";
+    hash = "sha256-E/VcKcAb1ekypm5jP4lsSz1LYJTcTSed6i5OY5ihP30=";
   };
 
+  patches = [
+    # Replace distutils.spawn.find_executable with shutil.which, https://github.com/pytest-dev/pytest-services/pull/46
+    (fetchpatch {
+      name = "replace-distutils.patch";
+      url = "https://github.com/pytest-dev/pytest-services/commit/e0e2a85434a2dcbcc0584299c5b2b751efe0b6db.patch";
+      hash = "sha256-hvr7EedfjfonHDn6v2slwUBqz1xQoF7Ez/kqAhZRXEc=";
+    })
+  ];
+
   nativeBuildInputs = [
     setuptools-scm
     toml
@@ -33,14 +51,27 @@ buildPythonPackage rec {
     zc-lockfile
   ];
 
-  # no tests in PyPI tarball
-  doCheck = false;
+  nativeCheckInputs = [
+    mysqlclient
+    pylibmc
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "pytest_services"
+  ];
 
-  pythonImportsCheck = [ "pytest_services" ];
+  disabledTests = [
+    # Tests require binaries and additional parts
+    "test_memcached"
+    "test_mysql"
+    "test_xvfb "
+  ];
 
   meta = with lib; {
     description = "Services plugin for pytest testing framework";
     homepage = "https://github.com/pytest-dev/pytest-services";
+    changelog = "https://github.com/pytest-dev/pytest-services/blob/${version}/CHANGES.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix
index f8f207c64b6a..60b81487a987 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-snapshot/default.nix
@@ -5,6 +5,7 @@
 , pytest
 , setuptools-scm
 , pytestCheckHook
+, pytest_7
 , pythonOlder
 }:
 
@@ -35,7 +36,8 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    pytestCheckHook
+    # https://github.com/joseph-roitman/pytest-snapshot/issues/71
+    (pytestCheckHook.override { pytest = pytest_7; })
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-socket/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-socket/default.nix
index 67ee191b85cb..9a420c1a0986 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-socket/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-socket/default.nix
@@ -9,16 +9,16 @@
 
 buildPythonPackage rec {
   pname = "pytest-socket";
-  version = "0.6.0";
-  format = "pyproject";
+  version = "0.7.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "miketheman";
-    repo = pname;
+    repo = "pytest-socket";
     rev = "refs/tags/${version}";
-    hash = "sha256-RPHpqknjpuAMXYg4nFOtLp8CXh10/w0RuO/bseTBN5o=";
+    hash = "sha256-19YF3q85maCVdVg2HOOPbN45RNjBf6kiFAhLut8B2tQ=";
   };
 
   nativeBuildInputs = [
@@ -39,6 +39,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Pytest Plugin to disable socket calls during tests";
     homepage = "https://github.com/miketheman/pytest-socket";
+    changelog = "https://github.com/miketheman/pytest-socket/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-subtests/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-subtests/default.nix
index eb292e61537d..d9afd5f0c9a9 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-subtests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-subtests/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-subtests";
-  version = "0.11.0";
+  version = "0.12.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UYZciEV1RfUftyARlC8KPGkB7p4ky/ttG53BNIuvvjc=";
+    hash = "sha256-1mBdy4hkfgt8GInQJ/jvHBfXosYJJ+v9wJx7DYEgR20=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix
index e916e0e00516..8076c639e7d4 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-sugar";
-  version = "0.9.7";
+  version = "1.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8edMGr+lX3JBz3CIAytuN4Vm8WuTjz8IkF4s9ElO3UY=";
+    hash = "sha256-ZCLoMlj1sMBM58YyF2x3Msq1/bkJyznMpckTn4EnbAo=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-timeout/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-timeout/default.nix
index c0a97dd414ac..3ea96b52634c 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-timeout/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-timeout/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-timeout";
-  version = "2.2.0";
+  version = "2.3.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OwuV2r88tQusnvXKkS+gz8KGUmrxevyAaCTfIML3LJA=";
+    hash = "sha256-Ejl3KRJcbsvaygEDW55SOdTblzUjIK8VWz9d4bpRZdk=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-twisted/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-twisted/default.nix
index 198d21083e27..37aaf0038052 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-twisted/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-twisted/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-twisted";
-  version = "1.14.0";
+  version = "1.14.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-IJv1pkUs+/th3o8BWQLBTsgSZACRFQcHS7LuTOjf4xM=";
+    sha256 = "sha256-qbGLyfykfSiG+O/j/SeHmoHxwLtJ8cVgZmyedkSRtjI=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-unordered/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-unordered/default.nix
index b47536983e6a..b14a1e12ada5 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-unordered/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-unordered/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pytest
+, pytest_7
 , pytestCheckHook
 }:
 
@@ -22,7 +23,8 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    pytestCheckHook
+    # https://github.com/utapyngo/pytest-unordered/issues/15
+    (pytestCheckHook.override { pytest = pytest_7; })
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest/7.nix b/nixpkgs/pkgs/development/python-modules/pytest/7.nix
new file mode 100644
index 000000000000..835e8ff42b3c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest/7.nix
@@ -0,0 +1,116 @@
+{ lib
+, buildPythonPackage
+, callPackage
+, pythonOlder
+, fetchPypi
+, writeText
+
+# build-system
+, setuptools
+, setuptools-scm
+
+# dependencies
+, attrs
+, exceptiongroup
+, iniconfig
+, packaging
+, pluggy
+, tomli
+
+# optional-dependencies
+, argcomplete
+, hypothesis
+, mock
+, nose
+, pygments
+, requests
+, xmlschema
+}:
+
+let self = buildPythonPackage rec {
+  pname = "pytest";
+  version = "7.4.4";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-LPAAWSLGrOSj4uyLQIDrDZdT/ckxB0FTMvUM6eeZQoA=";
+  };
+
+  outputs = [
+    "out"
+    "testout"
+  ];
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    iniconfig
+    packaging
+    pluggy
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    exceptiongroup
+    tomli
+  ];
+
+  passthru.optional-dependencies = {
+    testing = [
+      argcomplete
+      attrs
+      hypothesis
+      mock
+      nose
+      pygments
+      requests
+      setuptools
+      xmlschema
+    ];
+  };
+
+  postInstall = ''
+    mkdir $testout
+    cp -R testing $testout/testing
+  '';
+
+  doCheck = false;
+  passthru.tests.pytest = callPackage ./tests.nix {
+    pytest = self;
+  };
+
+  # Remove .pytest_cache when using py.test in a Nix build
+  setupHook = writeText "pytest-hook" ''
+    pytestcachePhase() {
+        find $out -name .pytest_cache -type d -exec rm -rf {} +
+    }
+    preDistPhases+=" pytestcachePhase"
+
+    # pytest generates it's own bytecode files to improve assertion messages.
+    # These files similar to cpython's bytecode files but are never laoded
+    # by python interpreter directly. We remove them for a few reasons:
+    # - files are non-deterministic: https://github.com/NixOS/nixpkgs/issues/139292
+    #   (file headers are generatedt by pytest directly and contain timestamps)
+    # - files are not needed after tests are finished
+    pytestRemoveBytecodePhase () {
+        # suffix is defined at:
+        #    https://github.com/pytest-dev/pytest/blob/7.2.1/src/_pytest/assertion/rewrite.py#L51-L53
+        find $out -name "*-pytest-*.py[co]" -delete
+    }
+    preDistPhases+=" pytestRemoveBytecodePhase"
+  '';
+
+  pythonImportsCheck = [
+    "pytest"
+  ];
+
+  meta = with lib; {
+    description = "Framework for writing tests";
+    homepage = "https://docs.pytest.org";
+    changelog = "https://github.com/pytest-dev/pytest/releases/tag/${version}";
+    maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
+    license = licenses.mit;
+  };
+};
+in self
diff --git a/nixpkgs/pkgs/development/python-modules/pytest/default.nix b/nixpkgs/pkgs/development/python-modules/pytest/default.nix
index 88398d5ab438..86dc3f8f9aef 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest/default.nix
@@ -29,12 +29,12 @@
 
 buildPythonPackage rec {
   pname = "pytest";
-  version = "7.4.4";
+  version = "8.0.2";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LPAAWSLGrOSj4uyLQIDrDZdT/ckxB0FTMvUM6eeZQoA=";
+    hash = "sha256-1AUdYjouC35RlgupYxk7Cc5trrl1mkUYRKIeTd7fwb0=";
   };
 
   outputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-barcode/default.nix b/nixpkgs/pkgs/development/python-modules/python-barcode/default.nix
index 1e56b59c1fd4..4c4d9b367993 100644
--- a/nixpkgs/pkgs/development/python-modules/python-barcode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-barcode/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Create standard barcodes with Python";
+    mainProgram = "python-barcode";
     homepage = "https://github.com/WhyNotHugo/python-barcode";
     changelog = "https://github.com/WhyNotHugo/python-barcode/blob/v${version}/docs/changelog.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-bidi/default.nix b/nixpkgs/pkgs/development/python-modules/python-bidi/default.nix
index ea180de55d56..c88a2de6a177 100644
--- a/nixpkgs/pkgs/development/python-modules/python-bidi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-bidi/default.nix
@@ -15,6 +15,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/MeirKriheli/python-bidi";
     description = "Pure python implementation of the BiDi layout algorithm";
+    mainProgram = "pybidi";
     platforms = platforms.unix;
     maintainers = with maintainers; [ freezeboy ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/python-cinderclient/default.nix b/nixpkgs/pkgs/development/python-modules/python-cinderclient/default.nix
index baff1ddce3fe..037d93adb4a6 100644
--- a/nixpkgs/pkgs/development/python-modules/python-cinderclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-cinderclient/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "OpenStack Block Storage API Client Library";
+    mainProgram = "cinder";
     homepage = "https://github.com/openstack/python-cinderclient";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/nixpkgs/pkgs/development/python-modules/dateutil/default.nix b/nixpkgs/pkgs/development/python-modules/python-dateutil/default.nix
index fb7280fd2a16..dd7cc0f2ea1a 100644
--- a/nixpkgs/pkgs/development/python-modules/dateutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-dateutil/default.nix
@@ -1,28 +1,24 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 , setuptools-scm
 , six
 }:
 
 buildPythonPackage rec {
   pname = "python-dateutil";
-  version = "2.8.2";
+  version = "2.9.0.post0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ASPKzBYnrhnd88J6XeW9Z+5FhvvdZEDZdI+Ku0g9PoY=";
+    hash = "sha256-N91UII2n4c2HU4ghfV4A69QXkkn5D7ckN+kaNUWaCtM=";
   };
 
-  patches = [
-    # https://github.com/dateutil/dateutil/pull/1285
-    (fetchpatch {
-      url = "https://github.com/dateutil/dateutil/commit/f2293200747fb03d56c6c5997bfebeabe703576f.patch";
-      relative = "src";
-      hash = "sha256-BVEFGV/WGUz9H/8q+l62jnyN9VDnoSR71DdL+LIkb0o=";
-    })
-  ];
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "setuptools_scm<8.0" "setuptools_scm"
+  '';
 
   nativeBuildInputs = [ setuptools-scm ];
 
@@ -42,6 +38,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
+    changelog = "https://github.com/dateutil/dateutil/blob/${version}/NEWS";
     description = "Powerful extensions to the standard datetime module";
     homepage = "https://github.com/dateutil/dateutil/";
     license = with licenses; [ asl20 bsd3 ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-dbusmock/default.nix b/nixpkgs/pkgs/development/python-modules/python-dbusmock/default.nix
index 7d296d4be06d..2a676f72832e 100644
--- a/nixpkgs/pkgs/development/python-modules/python-dbusmock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-dbusmock/default.nix
@@ -20,14 +20,14 @@ let
   '';
 in buildPythonPackage rec {
   pname = "python-dbusmock";
-  version = "0.29.1";
+  version = "0.31.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "martinpitt";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-sfvVLPTSTXjwyB0a2NyDIONv01FXZ40nHZwwo3oqI90=";
+    hash = "sha256-DdV78o089Jkc7mSsGvlJgVpv8kPpMILo7lC6EbLxkxg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-docs-theme/default.nix b/nixpkgs/pkgs/development/python-modules/python-docs-theme/default.nix
index 316f55e4a89d..364f40f7ce26 100644
--- a/nixpkgs/pkgs/development/python-modules/python-docs-theme/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-docs-theme/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "python-docs-theme";
-  version = "2024.2";
+  version = "2024.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "python";
     repo = "python-docs-theme";
     rev = "refs/tags/${version}";
-    hash = "sha256-5qn/bROc3wekTyYq+e7rLpJjeI8IBByKvrOE4Kw0fjQ=";
+    hash = "sha256-caQqoXKdKA0W5qLphYbTxrP8Qx5teJD5+MSyaifyf/A=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix b/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix
index 0854d354c2fe..5a860279bc46 100644
--- a/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Add .env support to your django/flask apps in development and deployments";
+    mainProgram = "dotenv";
     homepage = "https://github.com/theskumar/python-dotenv";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ erikarvstedt ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-fontconfig/default.nix b/nixpkgs/pkgs/development/python-modules/python-fontconfig/default.nix
index 9a1416e0dbd6..7eab74cb280e 100644
--- a/nixpkgs/pkgs/development/python-modules/python-fontconfig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-fontconfig/default.nix
@@ -5,11 +5,12 @@ let
     fontDirectories = [ freefont_ttf ];
   };
 in buildPythonPackage rec {
-  pname = "Python-fontconfig";
+  pname = "python-fontconfig";
   version = "0.5.1";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "Python-fontconfig";
+    inherit version;
     sha256 = "154rfd0ygcbj9y8m32n537b457yijpfx9dvmf76vi0rg4ikf7kxp";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/python-fsutil/default.nix b/nixpkgs/pkgs/development/python-modules/python-fsutil/default.nix
index 5a347071f620..c1c433ddd2db 100644
--- a/nixpkgs/pkgs/development/python-modules/python-fsutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-fsutil/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "python-fsutil";
-  version = "0.13.1";
+  version = "0.14.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "fabiocaccamo";
     repo = "python-fsutil";
     rev = "refs/tags/${version}";
-    hash = "sha256-yY8hhw6uNKqrcj0geoQeGN/JCDJVja7pCPUHwoViL64=";
+    hash = "sha256-Cs78zpf3W5UZJkkUBEP6l6fi2J4OtJXGvqqQ8PWKx+8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-fx/default.nix b/nixpkgs/pkgs/development/python-modules/python-fx/default.nix
index d505e0a19654..8e7de3b6a336 100644
--- a/nixpkgs/pkgs/development/python-modules/python-fx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-fx/default.nix
@@ -92,6 +92,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to view JSON in a TUI";
+    mainProgram = "pyfx";
     homepage = "https://github.com/cielong/pyfx";
     changelog = "https://github.com/cielong/pyfx/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix b/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
index 6931a0d4ee45..3703843091d2 100644
--- a/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
@@ -52,6 +52,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Interact with GitLab API";
+    mainProgram = "gitlab";
     homepage = "https://github.com/python-gitlab/python-gitlab";
     changelog = "https://github.com/python-gitlab/python-gitlab/blob/v${version}/CHANGELOG.md";
     license = licenses.lgpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/python-glanceclient/default.nix b/nixpkgs/pkgs/development/python-modules/python-glanceclient/default.nix
index de8c5d000163..9fd1f21a083d 100644
--- a/nixpkgs/pkgs/development/python-modules/python-glanceclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-glanceclient/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "python-glanceclient";
-  version = "4.4.0";
+  version = "4.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ejZuH/Zr23bmJ+7PfNQFO9lPNfo83GkNKa/0fpduBTI=";
+    hash = "sha256-ZGTE1be+S/4Tbhw6Px+9qMgkNTZgoDn6lnAJhNvVYuA=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/python-gnupg/default.nix b/nixpkgs/pkgs/development/python-modules/python-gnupg/default.nix
index 03290d2e99c5..95ebc2b954e8 100644
--- a/nixpkgs/pkgs/development/python-modules/python-gnupg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-gnupg/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "python-gnupg";
-  version = "0.5.1";
+  version = "0.5.2";
 
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-VnS61Ok4dsCw0xl+MU1/lC05AYvzHiuDP2eIpoE8P7g=";
+    hash = "sha256-AdgBOTHJ+j9Fgku+pwVMA9bhHyWKcufghuFo28uRhUw=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/python-heatclient/default.nix b/nixpkgs/pkgs/development/python-modules/python-heatclient/default.nix
index 2319ecda0bfe..d29b07a94e50 100644
--- a/nixpkgs/pkgs/development/python-modules/python-heatclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-heatclient/default.nix
@@ -65,6 +65,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for Heat built on the Heat orchestration API";
+    mainProgram = "heat";
     homepage = "https://github.com/openstack/python-heatclient";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/nixpkgs/pkgs/development/python-modules/python-hl7/default.nix b/nixpkgs/pkgs/development/python-modules/python-hl7/default.nix
index 98a73c8252ba..1c2b05860869 100644
--- a/nixpkgs/pkgs/development/python-modules/python-hl7/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-hl7/default.nix
@@ -28,6 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A simple library for parsing messages of Health Level 7 (HL7) version 2.x into Python objects";
+    mainProgram = "mllp_send";
     homepage = "https://python-hl7.readthedocs.org";
     changelog = "https://python-hl7.readthedocs.io/en/latest/changelog.html";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/python-hpilo/default.nix b/nixpkgs/pkgs/development/python-modules/python-hpilo/default.nix
index 8ee2dafc47b2..6fdfc5d14031 100644
--- a/nixpkgs/pkgs/development/python-modules/python-hpilo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-hpilo/default.nix
@@ -21,6 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to access the HP iLO XML interface";
+    mainProgram = "hpilo_cli";
     homepage = "https://seveas.github.io/python-hpilo/";
     license = with licenses; [ asl20 gpl3Plus ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-idzip/default.nix b/nixpkgs/pkgs/development/python-modules/python-idzip/default.nix
index 6c64bb6c257e..c754bb144554 100644
--- a/nixpkgs/pkgs/development/python-modules/python-idzip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-idzip/default.nix
@@ -61,6 +61,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Seekable, gzip compatible, compression format";
+    mainProgram = "idzip";
     homepage = "https://github.com/bauman/python-idzip";
     changelog = "https://github.com/bauman/python-idzip/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-ipmi/default.nix b/nixpkgs/pkgs/development/python-modules/python-ipmi/default.nix
index b6ded2ff8c2c..4cb05be7257b 100644
--- a/nixpkgs/pkgs/development/python-modules/python-ipmi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-ipmi/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python IPMI Library";
+    mainProgram = "ipmitool.py";
     homepage = "https://github.com/kontron/python-ipmi";
     license = with licenses; [ lgpl2Plus ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-ironicclient/default.nix b/nixpkgs/pkgs/development/python-modules/python-ironicclient/default.nix
index 5839498bbe96..7e9a3b4ee7c2 100644
--- a/nixpkgs/pkgs/development/python-modules/python-ironicclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-ironicclient/default.nix
@@ -57,6 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A client for OpenStack bare metal provisioning API, includes a Python module (ironicclient) and CLI (baremetal).";
+    mainProgram = "baremetal";
     homepage = "https://github.com/openstack/python-ironicclient";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/nixpkgs/pkgs/development/python-modules/python-kasa/default.nix b/nixpkgs/pkgs/development/python-modules/python-kasa/default.nix
index 2c5262a47ec1..807d5d5af9a7 100644
--- a/nixpkgs/pkgs/development/python-modules/python-kasa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-kasa/default.nix
@@ -73,6 +73,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python API for TP-Link Kasa Smarthome products";
+    mainProgram = "kasa";
     homepage = "https://python-kasa.readthedocs.io/";
     changelog = "https://github.com/python-kasa/python-kasa/blob/${version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/python-linux-procfs/default.nix b/nixpkgs/pkgs/development/python-modules/python-linux-procfs/default.nix
index f6593574a7f2..e72b2e362098 100644
--- a/nixpkgs/pkgs/development/python-modules/python-linux-procfs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-linux-procfs/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python classes to extract information from the Linux kernel /proc files";
+    mainProgram = "pflags";
     homepage = "https://git.kernel.org/pub/scm/libs/python/python-linux-procfs/python-linux-procfs.git/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ elohmeier ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-louvain/default.nix b/nixpkgs/pkgs/development/python-modules/python-louvain/default.nix
index c6161735d435..b9f264755991 100644
--- a/nixpkgs/pkgs/development/python-modules/python-louvain/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-louvain/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/taynaud/python-louvain";
     description = "Louvain Community Detection";
+    mainProgram = "community";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/python-lsp-black/default.nix b/nixpkgs/pkgs/development/python-modules/python-lsp-black/default.nix
index 59b4cdaa76f0..6387e833b7fc 100644
--- a/nixpkgs/pkgs/development/python-modules/python-lsp-black/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-lsp-black/default.nix
@@ -7,6 +7,7 @@
 , python-lsp-server
 , setuptools
 , tomli
+, fetchpatch
 }:
 
 buildPythonPackage rec {
@@ -22,6 +23,17 @@ buildPythonPackage rec {
     hash = "sha256-nV6mePSWzfPW2RwXg/mxgzfT9wD95mmTuPnPEro1kEY=";
   };
 
+  patches =
+    /** fix test failure with black<24.2.0;
+        remove this patch once python-lsp-black>2.0.0 */
+    lib.optional
+      (with lib; (versionOlder version "2.0.1") && (versionAtLeast black.version "24.2.0"))
+      (fetchpatch {
+        url = "https://patch-diff.githubusercontent.com/raw/python-lsp/python-lsp-black/pull/56.patch";
+        hash = "sha256-38bYU27+xtA8Kq3appXTkNnkG5/XgrUJ2nQ5+yuSU2U=";
+      })
+    ++ [ ];
+
   nativeBuildInputs = [
     setuptools
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-lsp-server/default.nix b/nixpkgs/pkgs/development/python-modules/python-lsp-server/default.nix
index 9d5630a22360..881e7e33d91b 100644
--- a/nixpkgs/pkgs/development/python-modules/python-lsp-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-lsp-server/default.nix
@@ -35,7 +35,7 @@
 
 buildPythonPackage rec {
   pname = "python-lsp-server";
-  version = "1.10.0";
+  version = "1.10.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -44,7 +44,7 @@ buildPythonPackage rec {
     owner = "python-lsp";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-dh33m7wgOwUETjdNqqDKZnpTgbrYCg9/XXC296tHm4w=";
+    hash = "sha256-tY+BE8DAajZKwlZ2D7uCr9LC7D61ULkhV8Z9EpRu6j0=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/python-manilaclient/default.nix b/nixpkgs/pkgs/development/python-modules/python-manilaclient/default.nix
index 4a79b823ef05..b2fbfef19f8c 100644
--- a/nixpkgs/pkgs/development/python-modules/python-manilaclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-manilaclient/default.nix
@@ -71,6 +71,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Client library for OpenStack Manila API";
+    mainProgram = "manila";
     homepage = "https://github.com/openstack/python-manilaclient";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/nixpkgs/pkgs/development/python-modules/python-matter-server/default.nix b/nixpkgs/pkgs/development/python-modules/python-matter-server/default.nix
index a451aed79092..034a90844508 100644
--- a/nixpkgs/pkgs/development/python-modules/python-matter-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-matter-server/default.nix
@@ -129,6 +129,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/home-assistant-libs/python-matter-server/releases/tag/${version}";
     description = "Python server to interact with Matter";
+    mainProgram = "matter-server";
     homepage = "https://github.com/home-assistant-libs/python-matter-server";
     license = licenses.asl20;
     maintainers = teams.home-assistant.members;
diff --git a/nixpkgs/pkgs/development/python-modules/python-mystrom/default.nix b/nixpkgs/pkgs/development/python-modules/python-mystrom/default.nix
index 2d663e71ff89..5b2f76d2571e 100644
--- a/nixpkgs/pkgs/development/python-modules/python-mystrom/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-mystrom/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python API client for interacting with myStrom devices";
+    mainProgram = "mystrom";
     longDescription = ''
       Asynchronous Python API client for interacting with myStrom devices.
       There is support for bulbs, motion sensors, plugs and buttons.
diff --git a/nixpkgs/pkgs/development/python-modules/python-novaclient/default.nix b/nixpkgs/pkgs/development/python-modules/python-novaclient/default.nix
index 866e4cb097ec..8ce053cab37c 100644
--- a/nixpkgs/pkgs/development/python-modules/python-novaclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-novaclient/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "python-novaclient";
-  version = "18.5.0";
+  version = "18.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4j7kQMDI6uK1OvqIHTCsrsBof8660kY5HsKblsVDA40=";
+    hash = "sha256-VzwQqkILCJjTX7FG7di7AFgGv/8BMa4rWjDKIqyJR3s=";
   };
 
   propagatedBuildInputs = [
@@ -55,6 +55,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Client library for OpenStack Compute API";
+    mainProgram = "nova";
     homepage = "https://github.com/openstack/python-novaclient";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/nixpkgs/pkgs/development/python-modules/python-nvd3/default.nix b/nixpkgs/pkgs/development/python-modules/python-nvd3/default.nix
index 7abdfd1ab3d5..3674cb9bf568 100644
--- a/nixpkgs/pkgs/development/python-modules/python-nvd3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-nvd3/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/areski/python-nvd3";
     description = "Python Wrapper for NVD3 - It's time for beautiful charts";
+    mainProgram = "nvd3";
     license = licenses.mit;
     maintainers = [ maintainers.ivan-tkatchev ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/python-on-whales/default.nix b/nixpkgs/pkgs/development/python-modules/python-on-whales/default.nix
index 791bf2545051..3cd8f85e6a40 100644
--- a/nixpkgs/pkgs/development/python-modules/python-on-whales/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-on-whales/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "python-on-whales";
-  version = "0.68.0";
+  version = "0.69.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "gabrieldemarmiesse";
     repo = "python-on-whales";
     rev = "refs/tags/v${version}";
-    hash = "sha256-S9IfCCGMVXo7IPyOtu7TIeWRovE1fLQ9pjRO6tVJ4bU=";
+    hash = "sha256-2ZrbiHvcYwerhGQmtC/903W/WpuqgYqapRzLpu30sRs=";
   };
 
   nativeBuildInputs = [ setuptools ];
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Docker client for Python, designed to be fun and intuitive";
+    mainProgram = "python-on-whales";
     homepage = "https://github.com/gabrieldemarmiesse/python-on-whales";
     changelog = "https://github.com/gabrieldemarmiesse/python-on-whales/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-openstackclient/default.nix b/nixpkgs/pkgs/development/python-modules/python-openstackclient/default.nix
index 79306e4d11ab..9663fce022f1 100644
--- a/nixpkgs/pkgs/development/python-modules/python-openstackclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-openstackclient/default.nix
@@ -17,12 +17,12 @@
 
 buildPythonPackage rec {
   pname = "python-openstackclient";
-  version = "6.5.0";
+  version = "6.6.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-EvwZNH9rGb/iw28Rx6GEH0FaLufxi5WUE8ISGZe4SVE=";
+    hash = "sha256-u+8e00gpxBBSsuyiZIDinKH3K+BY0UMNpTQexExPKVw=";
   };
 
   nativeBuildInputs = [
@@ -59,6 +59,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "OpenStack Command-line Client";
+    mainProgram = "openstack";
     homepage = "https://github.com/openstack/python-openstackclient";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix b/nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix
index 790f1e58c295..496987c94e4a 100644
--- a/nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix
@@ -1,27 +1,30 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, six
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "python-ptrace";
-  version = "0.9.8";
-  format = "setuptools";
+  version = "0.9.9";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1e3bc6223f626aaacde8a7979732691c11b13012e702fee9ae16c87f71633eaa";
+    hash = "sha256-Vrv+9E6vOne+SBOMyldnzfRx6CeP4Umfm3LxUZB/Jc8=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # requires distorm, which is optionally
   doCheck = false;
 
-  propagatedBuildInputs = [ six ];
-
   meta = with lib; {
     description = "Python binding of ptrace library";
     homepage = "https://github.com/vstinner/python-ptrace";
+    changelog = "https://github.com/vstinner/python-ptrace/blob/${version}/doc/changelog.rst";
     license = licenses.gpl2;
     maintainers = with maintainers; [ mic92 ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/python-roborock/default.nix b/nixpkgs/pkgs/development/python-modules/python-roborock/default.nix
index ec103fc421a4..d874ec9c2a7a 100644
--- a/nixpkgs/pkgs/development/python-modules/python-roborock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-roborock/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "python-roborock";
-  version = "0.40.0";
+  version = "0.41.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -28,12 +28,12 @@ buildPythonPackage rec {
     owner = "humbertogontijo";
     repo = "python-roborock";
     rev = "refs/tags/v${version}";
-    hash = "sha256-H4xwgulNLs3R1Q5GhvQffpAZ1CWXZUJAja8BskW+YJk=";
+    hash = "sha256-Kh7u1UWqmfmxY6yWaBaUpe20Xc/DTryoymKgIYg/kiM=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "poetry-core==1.7.1" "poetry-core"
+      --replace "poetry-core==1.8.0" "poetry-core"
   '';
 
   pythonRelaxDeps = [
@@ -68,6 +68,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library & console tool for controlling Roborock vacuum";
+    mainProgram = "roborock";
     homepage = "https://github.com/humbertogontijo/python-roborock";
     changelog = "https://github.com/humbertogontijo/python-roborock/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/python-secp256k1-cardano/default.nix b/nixpkgs/pkgs/development/python-modules/python-secp256k1-cardano/default.nix
new file mode 100644
index 000000000000..d5becf5d8626
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-secp256k1-cardano/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, fetchFromGitHub
+, python3
+, pkg-config
+}:
+
+python3.pkgs.buildPythonPackage {
+  pname = "python-secp256k1-cardano";
+  version = "0.2.3";
+
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "OpShin";
+    repo = "python-secp256k1";
+    rev = "5a8f761a4b9a1594653cc4deebadc3398b07533c"; # No tags in repo
+    hash = "sha256-6bE4/G2gW2F8h5FWtI3TZ6FtijsB/slvFT/SIVv7VIY=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  propagatedBuildInputs = with python3.pkgs; [ cffi secp256k1 ];
+
+  nativeCheckInputs = [ python3.pkgs.pytestCheckHook ];
+
+  # Tests expect .so files and are failing
+  doCheck = false;
+
+  preConfigure = ''
+    cp -r ${python3.pkgs.secp256k1.src} libsecp256k1
+    export INCLUDE_DIR=${python3.pkgs.secp256k1}/include
+    export LIB_DIR=${python3.pkgs.secp256k1}/lib
+  '';
+
+  meta = {
+    homepage = "https://github.com/OpShin/python-secp256k1";
+    description = "A fork of python-secp256k1, fixing the commit hash of libsecp256k1 to a Cardano compatible version";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ t4ccer ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix b/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix
index 6ad8a1dc9a54..39ce7b39baca 100644
--- a/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python Slugify application that handles Unicode";
+    mainProgram = "slugify";
     homepage = "https://github.com/un33k/python-slugify";
     changelog = "https://github.com/un33k/python-slugify/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-snap7/default.nix b/nixpkgs/pkgs/development/python-modules/python-snap7/default.nix
index 069b57bd8c89..d33bdc77f8b0 100644
--- a/nixpkgs/pkgs/development/python-modules/python-snap7/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-snap7/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python wrapper for the snap7 PLC communication library";
+    mainProgram = "snap7-server";
     homepage = "https://github.com/gijzelaerr/python-snap7";
     license = licenses.mit;
     maintainers = with maintainers; [ freezeboy ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-snappy/default.nix b/nixpkgs/pkgs/development/python-modules/python-snappy/default.nix
index 05fcdda421dc..1dfb5b83a6b5 100644
--- a/nixpkgs/pkgs/development/python-modules/python-snappy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-snappy/default.nix
@@ -1,31 +1,38 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPyPy
+, cramjam
+, setuptools
 , snappy
-, cffi
 , unittestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "python-snappy";
-  version = "0.6.1";
-  format = "setuptools";
+  version = "0.7.1";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tqEHqwYgasxTWdTFYyvZsi1EhwKnmzFpsMYuD7gIuyo=";
+    hash = "sha256-G8KdNiEdRLufBPPXzPuurrvC9ittQPT8Tt0fsWvFLBM=";
   };
 
+  build-system = [
+    cramjam
+    setuptools
+  ];
+
   buildInputs = [ snappy ];
 
-  propagatedBuildInputs = lib.optional isPyPy cffi;
+  dependencies = [
+    cramjam
+  ];
 
   nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
     description = "Python library for the snappy compression library from Google";
-    homepage = "https://github.com/andrix/python-snappy";
+    homepage = "https://github.com/intake/python-snappy";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/python-socks/default.nix b/nixpkgs/pkgs/development/python-modules/python-socks/default.nix
index 77f694dbb249..3bf501791b30 100644
--- a/nixpkgs/pkgs/development/python-modules/python-socks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-socks/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "python-socks";
-  version = "2.4.3";
+  version = "2.4.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.6.2";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "romis2012";
     repo = "python-socks";
     rev = "refs/tags/v${version}";
-    hash = "sha256-go8MH/ZW+W4aBOqscvcGim8KOW249sSCrmvCMLrQ5HU=";
+    hash = "sha256-c1fjSHi7LvaOeZwTOTSY/ZVr27/j03CdAra1PSa9Jt0=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-songpal/default.nix b/nixpkgs/pkgs/development/python-modules/python-songpal/default.nix
index 916288860fb5..0a8e0abafff4 100644
--- a/nixpkgs/pkgs/development/python-modules/python-songpal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-songpal/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for interfacing with Sony's Songpal devices";
+    mainProgram = "songpal";
     homepage = "https://github.com/rytilahti/python-songpal";
     changelog = "https://github.com/rytilahti/python-songpal/blob/release/${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/python-stdnum/default.nix b/nixpkgs/pkgs/development/python-modules/python-stdnum/default.nix
index f251b47c6086..d8bdc0574dc9 100644
--- a/nixpkgs/pkgs/development/python-modules/python-stdnum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-stdnum/default.nix
@@ -3,26 +3,31 @@
 , fetchPypi
 , pytestCheckHook
 , pythonOlder
+, setuptools
 , zeep
 }:
 
 buildPythonPackage rec {
   pname = "python-stdnum";
-  version = "1.19";
-  format = "setuptools";
+  version = "1.20";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ez7IL1Y5DqdMGQVp6Y8vsUuGmAix1UeFcI8i0P6tiz8=";
+    hash = "sha256-rSos8usCXeQIIQI182tK4xJS3jGGJAzKqBJuEXy4JpA=";
   };
 
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace " --cov=stdnum --cov-report=term-missing:skip-covered --cov-report=html" ""
+      --replace-fail " --cov=stdnum --cov-report=term-missing:skip-covered --cov-report=html" ""
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-swiftclient/default.nix b/nixpkgs/pkgs/development/python-modules/python-swiftclient/default.nix
index 8c0239e2bc50..4e7c02371071 100644
--- a/nixpkgs/pkgs/development/python-modules/python-swiftclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-swiftclient/default.nix
@@ -61,6 +61,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/openstack/python-swiftclient";
     description = "Python bindings to the OpenStack Object Storage API";
+    mainProgram = "swift";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/python-tado/default.nix b/nixpkgs/pkgs/development/python-modules/python-tado/default.nix
index 60247f15d95b..a273b33a2084 100644
--- a/nixpkgs/pkgs/development/python-modules/python-tado/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-tado/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "python-tado";
-  version = "0.17.4";
+  version = "0.17.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "wmalgadey";
     repo = "PyTado";
     rev = "refs/tags/${version}";
-    hash = "sha256-Wdd9HdsQjaYlL8knhMuO87+dom+aTsmrLRK0UdrpsbQ=";
+    hash = "sha256-FjdqZc4Zt2sLYJpnD/MAzr8Y9lGHteHB5psQqheS84I=";
   };
 
   propagatedBuildInputs = [
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python binding for Tado web API. Pythonize your central heating!";
+    mainProgram = "pytado";
     homepage = "https://github.com/wmalgadey/PyTado";
     changelog = "https://github.com/wmalgadey/PyTado/releases/tag/${version}";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix b/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
index 9ac37aa4f596..238f5742ccc8 100644
--- a/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "python-telegram-bot";
-  version = "20.8";
+  version = "21.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "python-telegram-bot";
     repo = "python-telegram-bot";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FvVUl0bV95IDPbG+6N9b3ZIsnLAUwVcdS4cu0I1aNDw=";
+    hash = "sha256-jyDEfHkbB95fzFkRFKgV4y46AxT+yUPwfq1DJ3sF//I=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-ulid/default.nix b/nixpkgs/pkgs/development/python-modules/python-ulid/default.nix
index e70c1004ecf7..af437c8f23fe 100644
--- a/nixpkgs/pkgs/development/python-modules/python-ulid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-ulid/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "ULID implementation for Python";
+    mainProgram = "ulid";
     homepage = "https://github.com/mdomke/python-ulid";
     changelog = "https://github.com/mdomke/python-ulid/blob/${src.rev}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix b/nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix
index 24eefdce0fe6..7455408f0bc6 100644
--- a/nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A free software implementation of Symantec's VIP Access application and protocol";
+    mainProgram = "vipaccess";
     homepage = "https://github.com/dlenski/python-vipaccess";
     license = licenses.asl20;
     maintainers = with maintainers; [ aw ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-yate/default.nix b/nixpkgs/pkgs/development/python-modules/python-yate/default.nix
index a35773f298de..a6cc7ac6575f 100644
--- a/nixpkgs/pkgs/development/python-modules/python-yate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-yate/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for the yate telephony engine";
+    mainProgram = "yate_callgen";
     homepage = "https://github.com/eventphone/python-yate";
     changelog = "https://github.com/eventphone/python-yate/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-zbar/default.nix b/nixpkgs/pkgs/development/python-modules/python-zbar/default.nix
index 4d85b26875cd..a7c28b2992d4 100644
--- a/nixpkgs/pkgs/development/python-modules/python-zbar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-zbar/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "python-zbar";
-  version = "0.23.90";
+  version = "0.23.93";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "mchehab";
     repo = "zbar";
-    rev = version;
-    hash = "sha256-FvV7TMc4JbOiRjWLka0IhtpGGqGm5fis7h870OmJw2U=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-6gOqMsmlYy6TK+iYPIBsCPAk8tYDliZYMYeTOidl4XQ=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/pythonfinder/default.nix b/nixpkgs/pkgs/development/python-modules/pythonfinder/default.nix
index c9e0ca669c9a..37535e49f998 100644
--- a/nixpkgs/pkgs/development/python-modules/pythonfinder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pythonfinder/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pythonfinder";
-  version = "2.0.6";
+  version = "2.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "sarugaku";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-C/Em8Vmv7q030hmH3jU/apBRSSC9QFK9mbBWjBjJHXg=";
+    hash = "sha256-CbaKXD7Sde8euRqvc/IHoXoSMF+dNd7vT9LkLWq4/IU=";
   };
 
   patches = [
@@ -75,6 +75,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Cross platform search tool for finding Python";
+    mainProgram = "pyfinder";
     homepage = "https://github.com/sarugaku/pythonfinder";
     changelog = "https://github.com/sarugaku/pythonfinder/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytibber/default.nix b/nixpkgs/pkgs/development/python-modules/pytibber/default.nix
index f18402db6bb0..e0c55bf0e9e9 100644
--- a/nixpkgs/pkgs/development/python-modules/pytibber/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytibber/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pytibber";
-  version = "0.28.2";
+  version = "0.29.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "pyTibber";
     rev = "refs/tags/${version}";
-    hash = "sha256-vi5f4V0nPb9K3nwdmwMDoNE85Or6haOWjMY4d/2Fj2s=";
+    hash = "sha256-rj/uIgIDjmEGD6muUllTb0PdLkedarMgVq38qqNoMI4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytools/default.nix b/nixpkgs/pkgs/development/python-modules/pytools/default.nix
index b3fa77915ea2..7689e40c5b8e 100644
--- a/nixpkgs/pkgs/development/python-modules/pytools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytools/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "pytools";
-  version = "2023.1.1";
+  version = "2024.1.1";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gGN4c9IG9rzt9820atk+horLTqIlbbBS38yocr3QMh8=";
+    hash = "sha256-LIjt+pkMjjJRZ8N2WfseEKPBEz3691K719hFZAK43P8=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch-pfn-extras/default.nix b/nixpkgs/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
index fad1ff1d13fd..2e3455b677e4 100644
--- a/nixpkgs/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "pytorch-pfn-extras";
-  version = "0.7.4";
+  version = "0.7.6";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pfnet";
     repo = "pytorch-pfn-extras";
     rev = "refs/tags/v${version}";
-    hash = "sha256-X7N2RQS8he9FJPfEjPJH6GdxkAPV6uxOIfRVOnJId0U=";
+    hash = "sha256-vSon/0GxQfaRtSPsQbYAvE3s/F0HEN59VpzE3w1PnVE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytrydan/default.nix b/nixpkgs/pkgs/development/python-modules/pytrydan/default.nix
index ef54cf77b4f2..5a191bf800fe 100644
--- a/nixpkgs/pkgs/development/python-modules/pytrydan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytrydan/default.nix
@@ -58,6 +58,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to interface with V2C EVSE Trydan";
+    mainProgram = "pytrydan";
     homepage = "https://github.com/dgomes/pytrydan";
     changelog = "https://github.com/dgomes/pytrydan/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/pytube/default.nix b/nixpkgs/pkgs/development/python-modules/pytube/default.nix
index 2c8f714e500e..2e173e5f482b 100644
--- a/nixpkgs/pkgs/development/python-modules/pytube/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytube/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python 3 library for downloading YouTube Videos";
+    mainProgram = "pytube";
     homepage = "https://github.com/nficano/pytube";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyunifiprotect/default.nix b/nixpkgs/pkgs/development/python-modules/pyunifiprotect/default.nix
index 79b940d5be1d..9cf0773b0cb5 100644
--- a/nixpkgs/pkgs/development/python-modules/pyunifiprotect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyunifiprotect/default.nix
@@ -32,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "pyunifiprotect";
-  version = "4.23.4";
+  version = "5.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     owner = "briis";
     repo = "pyunifiprotect";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sBdu4XJkEtHf6dlHgJKFQvONp1x89NiS2EgxMiJFX7A=";
+    hash = "sha256-bZjfpatw4lcOgMCqung/DMfRijxwtuIht6QusIYaCQ0=";
   };
 
   env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -102,6 +102,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for interacting with the Unifi Protect API";
+    mainProgram = "unifi-protect";
     homepage = "https://github.com/briis/pyunifiprotect";
     changelog = "https://github.com/AngellusMortis/pyunifiprotect/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix b/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix
index 8d5bc83ed165..04ccee1bc757 100644
--- a/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyupgrade/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool to automatically upgrade syntax for newer versions of the language";
+    mainProgram = "pyupgrade";
     homepage = "https://github.com/asottile/pyupgrade";
     license = licenses.mit;
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyvex/default.nix b/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
index fad27ac9a574..3259d3133d87 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvex/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.2.84";
+  version = "9.2.93";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-asTvaSwoT1yD6nqHTr6vICeukynMq1WRRn3gEvvnoVA=";
+    hash = "sha256-44F1EE8TRsmYRnMNQakxIaFdAuZKpHIDsq+M1cK/pQk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyvisa-py/default.nix b/nixpkgs/pkgs/development/python-modules/pyvisa-py/default.nix
index 58d538ec98ad..d64213c2c540 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvisa-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvisa-py/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pyvisa-py";
-  version = "0.7.1";
+  version = "0.7.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "pyvisa";
     repo = "pyvisa-py";
     rev = "refs/tags/${version}";
-    hash = "sha256-zsa4TGDvvPAogOC0ljXC9uwWC9mteldUYprLmwrXNMQ=";
+    hash = "sha256-UFAKLrZ1ZrTmFXwVuyTCPVo3Y1YIDOvkx5krpsz71BM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyvista/default.nix b/nixpkgs/pkgs/development/python-modules/pyvista/default.nix
index 6f6e909f1a56..3c1d7d2982e2 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvista/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvista/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pyvista";
-  version = "0.43.3";
+  version = "0.43.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-yJEggiWK73zzUPvOsPucpalmSMxywinE9t2e2dqBM9M=";
+    hash = "sha256-nesI3rYGPCih+rckT6E6pyy6kZdfxBOjpfwvzKt8c6I=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyvizio/default.nix b/nixpkgs/pkgs/development/python-modules/pyvizio/default.nix
index 41b42b85b0d9..930e6e77bfa9 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvizio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvizio/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python client for Vizio SmartCast";
+    mainProgram = "pyvizio";
     homepage = "https://github.com/vkorn/pyvizio";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pywal/default.nix b/nixpkgs/pkgs/development/python-modules/pywal/default.nix
index 2f73d23eb70a..a37a52f14663 100644
--- a/nixpkgs/pkgs/development/python-modules/pywal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywal/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Generate and change colorschemes on the fly. A 'wal' rewrite in Python 3";
+    mainProgram = "wal";
     homepage = "https://github.com/dylanaraps/pywal";
     license = licenses.mit;
     maintainers = with maintainers; [ Fresheyeball ];
diff --git a/nixpkgs/pkgs/development/python-modules/pywatchman/default.nix b/nixpkgs/pkgs/development/python-modules/pywatchman/default.nix
index 013ca015df94..b4448ecdbe1d 100644
--- a/nixpkgs/pkgs/development/python-modules/pywatchman/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywatchman/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "pywatchman";
-  version = "1.4.1";
+  version = "2.0.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1yf2gm20wc3djpb5larxii3l55xxby0il2ns3q0v1byyfnr7w16h";
+    sha256 = "sha256-JTVNnjZH+UQRpME+UQyDoc7swXl3sFJbpBsW5wGceww=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pywavelets/default.nix b/nixpkgs/pkgs/development/python-modules/pywavelets/default.nix
index 778148178cfb..a4d8117fc372 100644
--- a/nixpkgs/pkgs/development/python-modules/pywavelets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywavelets/default.nix
@@ -9,12 +9,13 @@
 }:
 
 buildPythonPackage rec {
-  pname = "PyWavelets";
+  pname = "pywavelets";
   version = "1.4.1";
   disabled = isPy27;
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "PyWavelets";
+    inherit version;
     hash = "sha256-ZDevPd8IMRjCbY+Xq0OwckuVbJ+Vjp6niGWfaig0upM=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pywayland/default.nix b/nixpkgs/pkgs/development/python-modules/pywayland/default.nix
index 6930f4ba374d..97e75684e8f4 100644
--- a/nixpkgs/pkgs/development/python-modules/pywayland/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywayland/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/flacjacket/pywayland";
     description = "Python bindings to wayland using cffi";
+    mainProgram = "pywayland-scanner";
     license = licenses.ncsa;
     maintainers = with maintainers; [ chvp ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pywaze/default.nix b/nixpkgs/pkgs/development/python-modules/pywaze/default.nix
index e3b8ab0bded4..70734fd59da3 100644
--- a/nixpkgs/pkgs/development/python-modules/pywaze/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywaze/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pywaze";
-  version = "0.5.1";
+  version = "1.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "eifinger";
     repo = "pywaze";
     rev = "refs/tags/v${version}";
-    hash = "sha256-r7ROEdgHdjXkveVUbuALHtwCX4IO0lwx9Zo3u6R9I58=";
+    hash = "sha256-n5W8TdZZJmT7SECXE8k6WK2lmCcucA6eLm+LZpojERo=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pywebpush/default.nix b/nixpkgs/pkgs/development/python-modules/pywebpush/default.nix
index 38d605317a60..903ad646b8b5 100644
--- a/nixpkgs/pkgs/development/python-modules/pywebpush/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywebpush/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Webpush Data encryption library for Python";
+    mainProgram = "pywebpush";
     homepage = "https://github.com/web-push-libs/pywebpush";
     license = licenses.mpl20;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/development/python-modules/pywebview/default.nix b/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
index 93b881435cb5..b2d832275221 100644
--- a/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "pywebview";
-  version = "4.4.1";
+  version = "5.0.5";
   pyproject = true;
 
   disabled = pythonOlder "3.5";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "r0x0r";
     repo = "pywebview";
     rev = "refs/tags/${version}";
-    hash = "sha256-uanv6v/xwi4COY0WjoyxG4khK1kAucBmpr/plCKYxkQ=";
+    hash = "sha256-Mep4r5OujsefXFQA09OospqnzgQ3xn8HHdZFKNo3oM4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pywerview/default.nix b/nixpkgs/pkgs/development/python-modules/pywerview/default.nix
index a7e7976a1019..e3fb6770f365 100644
--- a/nixpkgs/pkgs/development/python-modules/pywerview/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywerview/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for PowerSploit's PowerView support";
+    mainProgram = "pywerview";
     homepage = "https://github.com/the-useless-one/pywerview";
     changelog = "https://github.com/the-useless-one/pywerview/releases/tag/v${version}";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/pywizlight/default.nix b/nixpkgs/pkgs/development/python-modules/pywizlight/default.nix
index e6ce3013515d..860ce91d7144 100644
--- a/nixpkgs/pkgs/development/python-modules/pywizlight/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywizlight/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python connector for WiZ light bulbs";
+    mainProgram = "wizlight";
     homepage = "https://github.com/sbidy/pywizlight";
     changelog = "https://github.com/sbidy/pywizlight/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix b/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix
index 80b26e7080fc..6fc74602a8a8 100644
--- a/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix
@@ -67,6 +67,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://pyxnat.github.io/pyxnat";
     description = "Python API to XNAT";
+    mainProgram = "sessionmirror.py";
     changelog = "https://github.com/pyxnat/pyxnat/releases/tag/${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bcdarwin ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyzerproc/default.nix b/nixpkgs/pkgs/development/python-modules/pyzerproc/default.nix
index b5eb54916717..6270b26bb718 100644
--- a/nixpkgs/pkgs/development/python-modules/pyzerproc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyzerproc/default.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library to control Zerproc Bluetooth LED smart string lights";
+    mainProgram = "pyzerproc";
     homepage = "https://github.com/emlove/pyzerproc";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyzmq/default.nix b/nixpkgs/pkgs/development/python-modules/pyzmq/default.nix
index 442577fcc5e3..0493381718c1 100644
--- a/nixpkgs/pkgs/development/python-modules/pyzmq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyzmq/default.nix
@@ -23,14 +23,14 @@
 
 buildPythonPackage rec {
   pname = "pyzmq";
-  version = "25.1.1";
+  version = "25.1.2";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JZwiSFtxq6zfqL95cgzXvPS50SizDqVU8BrnH9v9qiM=";
+    hash = "sha256-k/GqMR6LuRLjTwBM8YZAek6Q7sTw7MDv0mBWv37aAiY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyzufall/default.nix b/nixpkgs/pkgs/development/python-modules/pyzufall/default.nix
index 7ca619efa38d..71418c1607d0 100644
--- a/nixpkgs/pkgs/development/python-modules/pyzufall/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyzufall/default.nix
@@ -1,11 +1,12 @@
 { lib, fetchPypi, python, buildPythonPackage, nose, future, coverage }:
 
 buildPythonPackage rec {
-  pname = "PyZufall";
+  pname = "pyzufall";
   version = "0.13.2";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "PyZufall";
+    inherit version;
     sha256 = "1jffhi20m82fdf78bjhncbdxkfzcskrlipxlrqq9741xdvrn14b5";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/qcengine/default.nix b/nixpkgs/pkgs/development/python-modules/qcengine/default.nix
index c1464c233a93..7c572c98ea76 100644
--- a/nixpkgs/pkgs/development/python-modules/qcengine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qcengine/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Quantum chemistry program executor and IO standardizer (QCSchema) for quantum chemistry";
+    mainProgram = "qcengine";
     homepage = "http://docs.qcarchive.molssi.org/projects/qcelemental/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ sheepforce ];
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix
index c8c6883342f6..6f6f42f8fd76 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix
@@ -31,7 +31,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aer";
-  version = "0.13.1";
+  version = "0.13.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-aer";
     rev = "refs/tags/${version}";
-    hash = "sha256-GxQgqCUDwalgM9m+XeRiZCRL93KrCSUPoLvDgHJJGCQ=";
+    hash = "sha256-xE5P4o6/I8Y/trK0e8GQ0oAOAyMvYWfzyuVvAoZExwk=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-finance/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-finance/default.nix
index 115a3dd9e5fc..62584bb17165 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-finance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-finance/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-finance";
-  version = "0.4.0";
+  version = "0.4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "qiskit";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-V0o3U2Tn8OXTe2n84tqAhQql4sQ3UBZ8bLNt8S9Iz9w=";
+    hash = "sha256-zYhYhojCzlENzgYSenwewjeVHUBX2X6eQbbzc9znBsk=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-machine-learning/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-machine-learning/default.nix
index 16ed373894e9..1ad1b138af87 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-machine-learning/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-machine-learning/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-machine-learning";
-  version = "0.7.1";
+  version = "0.7.2";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "qiskit";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-qTHacEUTp0RY2piplE6XoYKpJyeFswTPBvjfQ9Gvwt0=";
+    hash = "sha256-EBjWWoNRuIZFWQkrjf9IyZZ648rP5d7MZkjeIYifgGk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-nature/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-nature/default.nix
index 660762f2d2fd..483f9f67cc42 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-nature/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-nature/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-nature";
-  version = "0.7.1";
+  version = "0.7.2";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-RspjHEFYdu1k6azmifbpd57tH+SxPeepw5EQzWP/Yc8=";
+    hash = "sha256-SVzg3McB885RMyAp90Kr6/iVKw3Su9ucTob2jBckBo0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-optimization/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-optimization/default.nix
index f377a2b9caba..3e1d6b3e49e0 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-optimization/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-optimization/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-optimization";
-  version = "0.6.0";
+  version = "0.6.1";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "qiskit";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-vVSFvLVjptSgGocGR6i1Fp0BSRaT3uBBxf0OrFaF9EQ=";
+    hash = "sha256-kzEuICajlV8mgD0YLhwFJaDQVxYZo9jv3sr/r/P0VG0=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit/default.nix
index b7c0a2677bf6..0977a1944e93 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit/default.nix
@@ -32,7 +32,7 @@ in
 buildPythonPackage rec {
   pname = "qiskit";
   # NOTE: This version denotes a specific set of subpackages. See https://qiskit.org/documentation/release_notes.html#version-history
-  version = "0.45.1";
+  version = "1.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit";
     rev = "refs/tags/${version}";
-    hash = "sha256-XAAQc6oX9zy9MFze1UQbalUBfhbkY5u/0xOmc5J66kM=";
+    hash = "sha256-Cjfn+9h8W08FcAlVC7b7O8Z+VGx5UeHosSgYJin/evE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/qrcode/default.nix b/nixpkgs/pkgs/development/python-modules/qrcode/default.nix
index 0b8f69889c33..b5c3d2aec6b3 100644
--- a/nixpkgs/pkgs/development/python-modules/qrcode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qrcode/default.nix
@@ -55,6 +55,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python QR Code image generator";
+    mainProgram = "qr";
     homepage = "https://github.com/lincolnloop/python-qrcode";
     changelog = "https://github.com/lincolnloop/python-qrcode/blob/v${version}/CHANGES.rst";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/qtawesome/default.nix b/nixpkgs/pkgs/development/python-modules/qtawesome/default.nix
index a00a4683d08e..e1bd21ba0054 100644
--- a/nixpkgs/pkgs/development/python-modules/qtawesome/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qtawesome/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Iconic fonts in PyQt and PySide applications";
+    mainProgram = "qta-browser";
     homepage = "https://github.com/spyder-ide/qtawesome";
     changelog = "https://github.com/spyder-ide/qtawesome/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/qtconsole/default.nix b/nixpkgs/pkgs/development/python-modules/qtconsole/default.nix
index 101239257853..6228fc088af0 100644
--- a/nixpkgs/pkgs/development/python-modules/qtconsole/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qtconsole/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Jupyter Qt console";
+    mainProgram = "jupyter-qtconsole";
     homepage = "https://qtconsole.readthedocs.io/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fridh ];
diff --git a/nixpkgs/pkgs/development/python-modules/qtile/default.nix b/nixpkgs/pkgs/development/python-modules/qtile/default.nix
index 43e6cb00bfe2..09a0c21a1f88 100644
--- a/nixpkgs/pkgs/development/python-modules/qtile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qtile/default.nix
@@ -95,6 +95,7 @@ buildPythonPackage rec {
     homepage = "http://www.qtile.org/";
     license = licenses.mit;
     description = "A small, flexible, scriptable tiling window manager written in Python";
+    mainProgram = "qtile";
     platforms = platforms.linux;
     maintainers = with maintainers; [ kamilchm arjan-s ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/qtpy/default.nix b/nixpkgs/pkgs/development/python-modules/qtpy/default.nix
index e534704a7c4a..8ffe6bb91a58 100644
--- a/nixpkgs/pkgs/development/python-modules/qtpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qtpy/default.nix
@@ -13,14 +13,15 @@
 }:
 
 buildPythonPackage rec {
-  pname = "QtPy";
+  pname = "qtpy";
   version = "2.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "QtPy";
+    inherit version;
     hash = "sha256-2y1QgWeqYQZ4FWXI2lxvFIfeusujNRnO3DX6iZfUJNQ=";
   };
 
@@ -47,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Abstraction layer for PyQt5/PyQt6/PySide2/PySide6";
+    mainProgram = "qtpy";
     homepage = "https://github.com/spyder-ide/qtpy";
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/quantulum3/default.nix b/nixpkgs/pkgs/development/python-modules/quantulum3/default.nix
index 259871b4ef0c..ae35505d8648 100644
--- a/nixpkgs/pkgs/development/python-modules/quantulum3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/quantulum3/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Library for unit extraction - fork of quantulum for python3";
+    mainProgram = "quantulum3-training";
     homepage = "https://github.com/nielstron/quantulum3";
     license = licenses.mit;
     maintainers = with maintainers; [ happysalada ];
diff --git a/nixpkgs/pkgs/development/python-modules/quart/default.nix b/nixpkgs/pkgs/development/python-modules/quart/default.nix
index 1effbadf3b67..5a79054e8951 100644
--- a/nixpkgs/pkgs/development/python-modules/quart/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/quart/default.nix
@@ -79,8 +79,14 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    # pytest.PytestRemovedIn8Warning: Passing None has been deprecated.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   meta = with lib; {
     description = "An async Python micro framework for building web applications";
+    mainProgram = "quart";
     homepage = "https://github.com/pallets/quart/";
     changelog = "https://github.com/pallets/quart/blob/${src.rev}/CHANGES.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/quaternion/default.nix b/nixpkgs/pkgs/development/python-modules/quaternion/default.nix
index 3b3e6a1ea790..6307334edfdf 100644
--- a/nixpkgs/pkgs/development/python-modules/quaternion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/quaternion/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "quaternion";
-  version = "2023.0.2";
+  version = "2023.0.3";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "moble";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-G5Xbo6Ns98oqtY/AKz9CE7nt8j2b6+Hv14ZoKtlDCMQ=";
+    hash = "sha256-vSkFHYXcT14aW3OTfqYymVQbpWnKFEVkhh3IQTi5xS4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/radian/default.nix b/nixpkgs/pkgs/development/python-modules/radian/default.nix
index a1b0a4309554..820e10a40934 100644
--- a/nixpkgs/pkgs/development/python-modules/radian/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/radian/default.nix
@@ -69,6 +69,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A 21 century R console";
+    mainProgram = "radian";
     homepage = "https://github.com/randy3k/radian";
     changelog = "https://github.com/randy3k/radian/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/radicale-infcloud/default.nix b/nixpkgs/pkgs/development/python-modules/radicale-infcloud/default.nix
index 214c1dcffe87..a59b8221f5d8 100644
--- a/nixpkgs/pkgs/development/python-modules/radicale-infcloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/radicale-infcloud/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage {
   meta = with lib; {
     homepage = "https://github.com/Unrud/RadicaleInfCloud/";
     description = "Integrate InfCloud into Radicale's web interface";
-    license = with licenses; [ agpl3 gpl3 ];
+    license = with licenses; [ agpl3Plus gpl3 ];
     maintainers = with maintainers; [ erictapen ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/radios/default.nix b/nixpkgs/pkgs/development/python-modules/radios/default.nix
index 73630f59fd3a..5831579f7df5 100644
--- a/nixpkgs/pkgs/development/python-modules/radios/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/radios/default.nix
@@ -3,6 +3,7 @@
 , pythonOlder
 , fetchFromGitHub
 , poetry-core
+, pythonRelaxDepsHook
 , aiodns
 , aiohttp
 , awesomeversion
@@ -19,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "radios";
-  version = "0.3.0";
+  version = "0.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -29,7 +30,7 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-radios";
     rev = "v${version}";
-    hash = "sha256-bzo+SA8kqc2GcxSV0TiIJyPVG+JshdsMoXSUhZYSphU=";
+    hash = "sha256-c0zfpfEdZvjvKtwGcNLLgEkBihhtz/wouHuYRLCxtBY=";
   };
 
   postPatch = ''
@@ -40,6 +41,11 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "pycountry"
   ];
 
   propagatedBuildInputs = [
@@ -65,6 +71,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
+    changelog = "https://github.com/frenck/python-radios/releases/tag/v${version}";
     description = "Asynchronous Python client for the Radio Browser API";
     homepage = "https://github.com/frenck/python-radios";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/rainbowstream/default.nix b/nixpkgs/pkgs/development/python-modules/rainbowstream/default.nix
index 9d20fa6a09f6..5f2f4c5904c5 100644
--- a/nixpkgs/pkgs/development/python-modules/rainbowstream/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rainbowstream/default.nix
@@ -74,6 +74,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Streaming command-line twitter client";
+    mainProgram = "rainbowstream";
     homepage = "https://github.com/orakaro/rainbowstream";
     license = licenses.mit;
     maintainers = with maintainers; [ thoughtpolice ];
diff --git a/nixpkgs/pkgs/development/python-modules/ramlfications/default.nix b/nixpkgs/pkgs/development/python-modules/ramlfications/default.nix
index 3c2be0da4792..e58cbeeb7947 100644
--- a/nixpkgs/pkgs/development/python-modules/ramlfications/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ramlfications/default.nix
@@ -5,16 +5,17 @@
 
 buildPythonPackage rec {
   pname = "ramlfications";
-  version = "0.1.9";
+  version = "0.2.2";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xvnna7kaq4nm5nfnwcwbr5bcm2s532hgyp7kq4v9iivn48rrf3v";
+    sha256 = "sha256-wcQd5j74y7d0xFeWlwlhceZj95ixUmv5upnv/6Rl1ew=";
   };
 
   meta = with lib; {
     description = "A Python RAML parser.";
+    mainProgram = "ramlfications";
     homepage    = "https://ramlfications.readthedocs.org";
     license     = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/rapidfuzz/default.nix b/nixpkgs/pkgs/development/python-modules/rapidfuzz/default.nix
index 3dcffdd2ecc5..60900c8ce178 100644
--- a/nixpkgs/pkgs/development/python-modules/rapidfuzz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rapidfuzz/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "rapidfuzz";
-  version = "3.6.1";
+  version = "3.6.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -27,12 +27,12 @@ buildPythonPackage rec {
     owner = "maxbachmann";
     repo = "RapidFuzz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-QJVRT+d/IIGxkWfSNoXFSmbW017+8CTKuWD4W+TzvBs=";
+    hash = "sha256-rezyw0v1VijMe78ip3U+Jd+NQExW+gQXjs8qkcPNcUk=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "Cython==3.0.3" "Cython"
+      --replace-fail "Cython >=3.0.9, <3.1.0" "Cython"
   '';
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/rapidgzip/default.nix b/nixpkgs/pkgs/development/python-modules/rapidgzip/default.nix
index 867f432a6d52..f50537524cbf 100644
--- a/nixpkgs/pkgs/development/python-modules/rapidgzip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rapidgzip/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "rapidgzip";
-  version = "0.12.1";
+  version = "0.13.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-s4MLxhwoGS7Zvx6k5qh1PWpyTRBUBGVIkPW9q94u+2Q=";
+    hash = "sha256-MwT4+wzlNXfDLT/o/oT1iy9cVlFIIXc18r7dg+x5SXY=";
   };
 
   nativeBuildInputs = [ nasm ];
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for parallel decompression and seeking within compressed gzip files";
+    mainProgram = "rapidgzip";
     homepage = "https://github.com/mxmlnkn/rapidgzip";
     changelog = "https://github.com/mxmlnkn/rapidgzip/blob/rapidgzip-v${version}/python/rapidgzip/CHANGELOG.md";
     license = licenses.mit; # dual MIT and asl20, https://internals.rust-lang.org/t/rationale-of-apache-dual-licensing/8952
diff --git a/nixpkgs/pkgs/development/python-modules/rasterio/default.nix b/nixpkgs/pkgs/development/python-modules/rasterio/default.nix
index 324c65849433..eef18524c217 100644
--- a/nixpkgs/pkgs/development/python-modules/rasterio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rasterio/default.nix
@@ -119,6 +119,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python package to read and write geospatial raster data";
+    mainProgram = "rio";
     homepage = "https://rasterio.readthedocs.io/";
     changelog = "https://github.com/rasterio/rasterio/blob/${version}/CHANGES.txt";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/ratarmount/default.nix b/nixpkgs/pkgs/development/python-modules/ratarmount/default.nix
index cc235710a689..21bd26c45c86 100644
--- a/nixpkgs/pkgs/development/python-modules/ratarmount/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ratarmount/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Mounts archives as read-only file systems by way of indexing";
+    mainProgram = "ratarmount";
     homepage = "https://github.com/mxmlnkn/ratarmount";
     license = licenses.mit;
     maintainers = with lib.maintainers; [ mxmlnkn ];
diff --git a/nixpkgs/pkgs/development/python-modules/raven/default.nix b/nixpkgs/pkgs/development/python-modules/raven/default.nix
index dec666782d12..f49230494e48 100644
--- a/nixpkgs/pkgs/development/python-modules/raven/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/raven/default.nix
@@ -28,6 +28,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Legacy Python client for Sentry (getsentry.com) — replaced by sentry-python";
+    mainProgram = "raven";
     homepage = "https://github.com/getsentry/raven-python";
     license = [ lib.licenses.bsd3 ];
     maintainers = with lib.maintainers; [ primeos ];
diff --git a/nixpkgs/pkgs/development/python-modules/razdel/default.nix b/nixpkgs/pkgs/development/python-modules/razdel/default.nix
index 66c2f4fae5e2..0c9ade3931f8 100644
--- a/nixpkgs/pkgs/development/python-modules/razdel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/razdel/default.nix
@@ -20,6 +20,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Rule-based system for Russian sentence and word tokenization";
+    mainProgram = "razdel-ctl";
     homepage = "https://github.com/natasha/razdel";
     license = licenses.mit;
     maintainers = with maintainers; [ npatsakula ];
diff --git a/nixpkgs/pkgs/development/python-modules/rbtools/default.nix b/nixpkgs/pkgs/development/python-modules/rbtools/default.nix
index 470a8051020f..57887196cbae 100644
--- a/nixpkgs/pkgs/development/python-modules/rbtools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rbtools/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://www.reviewboard.org/docs/rbtools/dev/";
     description = "RBTools is a set of command line tools for working with Review Board and RBCommons";
+    mainProgram = "rbt";
     license = licenses.mit;
     maintainers = with maintainers; [ domenkozar ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/rdflib/default.nix b/nixpkgs/pkgs/development/python-modules/rdflib/default.nix
index 04f5206b96a5..cef9ea902bb6 100644
--- a/nixpkgs/pkgs/development/python-modules/rdflib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rdflib/default.nix
@@ -24,6 +24,7 @@
 , pip
 , pytest-cov
 , pytestCheckHook
+, pytest_7
 , setuptools
 }:
 
@@ -67,7 +68,8 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     pip
     pytest-cov
-    pytestCheckHook
+    # Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted.
+    (pytestCheckHook.override { pytest = pytest_7; })
     setuptools
   ]
   ++ passthru.optional-dependencies.networkx
diff --git a/nixpkgs/pkgs/development/python-modules/readabilipy/default.nix b/nixpkgs/pkgs/development/python-modules/readabilipy/default.nix
new file mode 100644
index 000000000000..e97b238ac599
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/readabilipy/default.nix
@@ -0,0 +1,67 @@
+{ lib
+, beautifulsoup4
+, buildPythonPackage
+, fetchFromGitHub
+, html5lib
+, lxml
+, pytestCheckHook
+, pythonOlder
+, regex
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "readabilipy";
+  version = "0.2.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "alan-turing-institute";
+    repo = "ReadabiliPy";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-XrmdQjLFYdadWeO5DoKAQeEdta+6T6BqfvGlDkzLMyM=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    beautifulsoup4
+    html5lib
+    lxml
+    regex
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "readabilipy"
+  ];
+
+  disabledTests = [
+    # AssertionError
+    "test_extract_simple_article_with_readability_js"
+    "test_extract_article_from_page_with_readability_js"
+    "test_plain_element_with_comments"
+    "test_content_digest_on_filled_and_empty_elements"
+  ];
+
+  disabledTestPaths = [
+    # Exclude benchmarks
+    "tests/test_benchmarking.py"
+  ];
+
+  meta = with lib; {
+    description = "HTML content extractor";
+    mainProgram = "readabilipy";
+    homepage = "https://github.com/alan-turing-institute/ReadabiliPy";
+    changelog = "https://github.com/alan-turing-institute/ReadabiliPy/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/readchar/default.nix b/nixpkgs/pkgs/development/python-modules/readchar/default.nix
index aab318a38178..115e0c284a2a 100644
--- a/nixpkgs/pkgs/development/python-modules/readchar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/readchar/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "readchar";
-  version = "4.0.5";
+  version = "4.0.6";
   pyproject = true;
 
   # Don't use wheels on PyPI
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "magmax";
     repo = "python-${pname}";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ru18lh+9tXtvttypnob0HNPKBiGF7E9HDL21l1AAGa8=";
+    hash = "sha256-XowLJ9YAHhP9nInFVYtoLEOmlWBRWQX259vwm9SVVZU=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/readmdict/default.nix b/nixpkgs/pkgs/development/python-modules/readmdict/default.nix
index d6ef1447a7b8..5ce332df5504 100644
--- a/nixpkgs/pkgs/development/python-modules/readmdict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/readmdict/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Read mdx/mdd files (repacking of readmdict from mdict-analysis)";
+    mainProgram = "readmdict";
     homepage = "https://github.com/ffreemt/readmdict";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/readme-renderer/default.nix b/nixpkgs/pkgs/development/python-modules/readme-renderer/default.nix
index 983de37f3932..13a8074a5690 100644
--- a/nixpkgs/pkgs/development/python-modules/readme-renderer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/readme-renderer/default.nix
@@ -4,41 +4,44 @@
 , cmarkgfm
 , docutils
 , fetchPypi
-, mock
+, nh3
 , pygments
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "readme-renderer";
-  version = "37.3";
-  format = "setuptools";
+  version = "43.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     pname = "readme_renderer";
     inherit version;
-    hash = "sha256-zWUxht/HMFVlbwkPIn9csioEbX9xqEHfowX1XJpRMnM=";
+    hash = "sha256-GBjdKBQIE1Ce7tjWJof3zU97rZDU21hgAcXcCdT94xE=";
   };
 
-  propagatedBuildInputs = [
-    bleach
-    cmarkgfm
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     docutils
+    nh3
     pygments
   ];
 
-  nativeCheckInputs = [
-    mock
-    pytestCheckHook
+  optional-dependencies.md = [
+    cmarkgfm
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "cmarkgfm>=0.5.0,<0.7.0" "cmarkgfm>=0.5.0,<1"
-  '';
+  nativeCheckInputs = [
+    pytestCheckHook
+  ]
+  ++ optional-dependencies.md;
 
   disabledTests = [
     # https://github.com/pypa/readme_renderer/issues/221
diff --git a/nixpkgs/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix b/nixpkgs/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
index 3490b6a914b9..7d114a5fe23e 100644
--- a/nixpkgs/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "readthedocs-sphinx-ext";
-  version = "2.2.3";
+  version = "2.2.5";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZYPCZ5GlhT7p5Xzp24ZOL7BoCLpHD4BddNU/xQgR4BI=";
+    hash = "sha256-7l/VuZ258MGAsjlsvOUoqjZnGVG5UmuwJy2/zlUXvSc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/recipe-scrapers/default.nix b/nixpkgs/pkgs/development/python-modules/recipe-scrapers/default.nix
index 30d0efc83432..70a852bfb1a0 100644
--- a/nixpkgs/pkgs/development/python-modules/recipe-scrapers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/recipe-scrapers/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "recipe-scrapers";
-  version = "14.54.0";
+  version = "14.55.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "hhursev";
     repo = "recipe-scrapers";
     rev = "refs/tags/${version}";
-    hash = "sha256-Q7ubT7SBHNxyvfqFhDmBjnW7ssoXBsMZR+eYg5CntHY=";
+    hash = "sha256-HjR4Lwlcrpeqv6BXI+aYCL9e7ZTaTa522z0lSW03wW0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/recurring-ical-events/default.nix b/nixpkgs/pkgs/development/python-modules/recurring-ical-events/default.nix
index 8903d0134646..b4f5df6e42da 100644
--- a/nixpkgs/pkgs/development/python-modules/recurring-ical-events/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/recurring-ical-events/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "recurring-ical-events";
-  version = "2.1.2";
+  version = "2.1.3";
 
   disabled = pythonOlder "3.7";
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "niccokunzmann";
     repo = "python-recurring-ical-events";
     rev = "v${version}";
-    hash = "sha256-6qFUw5xfZvDuM/UBEGtoiHON15/6oq1S8H0Z1qk3k8s=";
+    hash = "sha256-K2pflwHpzuYDMNUB7YQu6NX21O0aOwRChBgjdiwFQ+Y=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/red-black-tree-mod/default.nix b/nixpkgs/pkgs/development/python-modules/red-black-tree-mod/default.nix
new file mode 100644
index 000000000000..dd17a45bc8ea
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/red-black-tree-mod/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "red-black-tree-mod";
+  version = "1.22";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-OONlKQOiv5Y3nCfCCCygt7kFFYZi3X7wyX9P2TqaqQg=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  # Module has no test
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "red_black_dict_mod"
+  ];
+
+  meta = with lib; {
+    description = "Flexible python implementation of red black trees";
+    homepage = "https://stromberg.dnsalias.org/~strombrg/red-black-tree-mod/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/redis-om/default.nix b/nixpkgs/pkgs/development/python-modules/redis-om/default.nix
index df49fd470d1e..551a251bc174 100644
--- a/nixpkgs/pkgs/development/python-modules/redis-om/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/redis-om/default.nix
@@ -84,6 +84,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Object mapping, and more, for Redis and Python";
+    mainProgram = "migrate";
     homepage = "https://github.com/redis/redis-om-python";
     changelog = "https://github.com/redis/redis-om-python/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/referencing/default.nix b/nixpkgs/pkgs/development/python-modules/referencing/default.nix
index 8de065b054f2..0113f23e4742 100644
--- a/nixpkgs/pkgs/development/python-modules/referencing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/referencing/default.nix
@@ -15,7 +15,7 @@
 let
   self = buildPythonPackage rec {
     pname = "referencing";
-    version = "0.31.1";
+    version = "0.33.0";
     format = "pyproject";
 
     disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ let
       repo = "referencing";
       rev = "refs/tags/v${version}";
       fetchSubmodules = true;
-      hash = "sha256-6Kol8TdOxImRq0aff+aAR/jbDrkHX/EPrIv1ZEMRWZU=";
+      hash = "sha256-QP/F6UNiKHGNMhGphDJgEFZnpGU5izExcI/A9WJjA5Q=";
     };
 
     nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/regenmaschine/default.nix b/nixpkgs/pkgs/development/python-modules/regenmaschine/default.nix
index d76c06fe5d34..9c8cd8053f5f 100644
--- a/nixpkgs/pkgs/development/python-modules/regenmaschine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/regenmaschine/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "regenmaschine";
-  version = "2024.01.0";
+  version = "2024.03.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = "regenmaschine";
     rev = "refs/tags/${version}";
-    hash = "sha256-Vd8ACF2AXbT7FE/b0koIPUrNd9DgmjgS5unBuRiq784=";
+    hash = "sha256-RdmK6oK92j4xqLoAjjqlONYu3IfNNWudo4v7jcc+VGU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/regex/default.nix b/nixpkgs/pkgs/development/python-modules/regex/default.nix
index 66bb26fb6007..0ada0fe50ba2 100644
--- a/nixpkgs/pkgs/development/python-modules/regex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/regex/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "regex";
-  version = "2023.10.3";
+  version = "2023.12.25";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-P+9PhE0ikO4LpXrdzsF+7J499z8QonSEhd/Wo6GIzA8=";
+    hash = "sha256-KRcaoSjaaa/fS95BLVvtwzXyyo/P5EiQOFd9BfFhgeU=";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/relatorio/default.nix b/nixpkgs/pkgs/development/python-modules/relatorio/default.nix
index 05a18ff34eee..14460fb9b17b 100644
--- a/nixpkgs/pkgs/development/python-modules/relatorio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/relatorio/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
     homepage = "https://relatorio.tryton.org/";
     changelog = "https://hg.tryton.org/relatorio/file/${version}/CHANGELOG";
     description = "A templating library able to output odt and pdf files";
+    mainProgram = "relatorio-render";
     maintainers = with lib.maintainers; [ johbo ];
     license = lib.licenses.gpl2Plus;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/remarshal/default.nix b/nixpkgs/pkgs/development/python-modules/remarshal/default.nix
index 32916774ee36..0d8829201afc 100644
--- a/nixpkgs/pkgs/development/python-modules/remarshal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/remarshal/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, pythonRelaxDepsHook
 
 # build deps
 , poetry-core
@@ -30,6 +31,11 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "pytest"
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/remotezip/default.nix b/nixpkgs/pkgs/development/python-modules/remotezip/default.nix
index e7ed4b1c356d..ec81726cd243 100644
--- a/nixpkgs/pkgs/development/python-modules/remotezip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/remotezip/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to access single members of a zip archive without downloading the full content";
+    mainProgram = "remotezip";
     homepage = "https://github.com/gtsystem/python-remotezip";
     license = licenses.mit;
     maintainers = with maintainers; [ nickcao ];
diff --git a/nixpkgs/pkgs/development/python-modules/renault-api/default.nix b/nixpkgs/pkgs/development/python-modules/renault-api/default.nix
index 6310d70d2cc6..c28ef79f6d21 100644
--- a/nixpkgs/pkgs/development/python-modules/renault-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/renault-api/default.nix
@@ -57,6 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library to interact with the Renault API";
+    mainProgram = "renault-api";
     homepage = "https://github.com/hacf-fr/renault-api";
     changelog = "https://github.com/hacf-fr/renault-api/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/reorder-python-imports/default.nix b/nixpkgs/pkgs/development/python-modules/reorder-python-imports/default.nix
index e3af1cb11cc5..b00896c801f0 100644
--- a/nixpkgs/pkgs/development/python-modules/reorder-python-imports/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/reorder-python-imports/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool for automatically reordering python imports";
+    mainProgram = "reorder-python-imports";
     homepage = "https://github.com/asottile/reorder_python_imports";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
diff --git a/nixpkgs/pkgs/development/python-modules/repocheck/default.nix b/nixpkgs/pkgs/development/python-modules/repocheck/default.nix
index 0fbfbbb25269..9b73dabf027e 100644
--- a/nixpkgs/pkgs/development/python-modules/repocheck/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/repocheck/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Check the status of code repositories under a root directory";
+    mainProgram = "repocheck";
     license = licenses.gpl3Plus;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/reportlab/default.nix b/nixpkgs/pkgs/development/python-modules/reportlab/default.nix
index af73624d1ae6..ef0a575789e7 100644
--- a/nixpkgs/pkgs/development/python-modules/reportlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/reportlab/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, chardet
 , fetchPypi
 , freetype
 , pillow
@@ -13,15 +14,15 @@ let
   ft = freetype.overrideAttrs (oldArgs: { dontDisableStatic = true; });
 in buildPythonPackage rec {
   pname = "reportlab";
-  version = "4.0.7";
-  format = "pyproject";
+  version = "4.1.0";
+  pyproject = true;
 
   # See https://bitbucket.org/pypy/compatibility/wiki/reportlab%20toolkit
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lnx38A79kYzCMc+LbY9OR33Jc7XBZVfjvRjfrrWnAjQ=";
+    hash = "sha256-Opn69BJpEVnAaLP/AcFTB84v0s9rhgGZQ0h04AIECoQ=";
   };
 
   postPatch = ''
@@ -44,6 +45,7 @@ in buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    chardet
     pillow
   ];
 
@@ -61,7 +63,7 @@ in buildPythonPackage rec {
 
   meta = with lib; {
     description = "An Open Source Python library for generating PDFs and graphics";
-    homepage = "http://www.reportlab.com/";
+    homepage = "https://www.reportlab.com/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/reptor/default.nix b/nixpkgs/pkgs/development/python-modules/reptor/default.nix
index db85c6b3edcb..d31cbc667510 100644
--- a/nixpkgs/pkgs/development/python-modules/reptor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/reptor/default.nix
@@ -32,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "reptor";
-  version = "0.12";
+  version = "0.13";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     owner = "Syslifters";
     repo = "reptor";
     rev = "refs/tags/${version}";
-    hash = "sha256-8XjEWs+LKKc7ztNchNVmW+YGdYpmi5ee4eOoXIUBoM8=";
+    hash = "sha256-7jFS3GCaPeGBBxB++XTtIYh+m0uXTm5NHuLeIen0KYc=";
   };
 
   pythonRelaxDeps = true;
@@ -109,6 +109,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to do automated pentest reporting with SysReptor";
+    mainProgram = "reptor";
     homepage = "https://github.com/Syslifters/reptor";
     changelog = "https://github.com/Syslifters/reptor/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/reqif/default.nix b/nixpkgs/pkgs/development/python-modules/reqif/default.nix
index f3a37488a225..0a13af92ee51 100644
--- a/nixpkgs/pkgs/development/python-modules/reqif/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/reqif/default.nix
@@ -54,6 +54,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for ReqIF format";
+    mainProgram = "reqif";
     homepage = "https://github.com/strictdoc-project/reqif";
     changelog = "https://github.com/strictdoc-project/reqif/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/requests-file/default.nix b/nixpkgs/pkgs/development/python-modules/requests-file/default.nix
index de7a94c75aa0..294c3c76d872 100644
--- a/nixpkgs/pkgs/development/python-modules/requests-file/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests-file/default.nix
@@ -1,24 +1,29 @@
 { lib
 , fetchPypi
 , buildPythonPackage
+, setuptools
+, setuptools-scm
 , pytestCheckHook
 , requests
-, six
 }:
 
 buildPythonPackage rec {
   pname = "requests-file";
-  version = "1.5.1";
-  format = "setuptools";
+  version = "2.0.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-B9dCCNM4nQHDirie9AOvDP7GOVfVOgCB2OynONAkfY4=";
+    hash = "sha256-IMWTFinFWP2lZsrMEM/izVAkM+Yo9WjDTIDZagzJWXI=";
   };
 
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
     requests
-    six
   ];
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/requests-gssapi/default.nix b/nixpkgs/pkgs/development/python-modules/requests-gssapi/default.nix
new file mode 100644
index 000000000000..ac762c7c20b3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/requests-gssapi/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, gssapi
+, pytestCheckHook
+, pythonOlder
+, requests
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "requests-gssapi";
+  version = "1.2.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-IHhFCJgUAfcVPJM+7QlTOJM6QIGNplolnb8tgNzLFQ4=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    gssapi
+    requests
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportCheck = [
+    "requests_gssapi"
+  ];
+
+  meta = with lib; {
+    description = "A GSSAPI authentication handler for python-requests";
+    homepage = "https://github.com/pythongssapi/requests-gssapi";
+    changelog = "https://github.com/pythongssapi/requests-gssapi/blob/v${version}/HISTORY.rst";
+    license = licenses.isc;
+    maintainers = with maintainers; [ javimerino ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/requirements-detector/default.nix b/nixpkgs/pkgs/development/python-modules/requirements-detector/default.nix
index e679937dbd4c..aab180853d5a 100644
--- a/nixpkgs/pkgs/development/python-modules/requirements-detector/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requirements-detector/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python tool to find and list requirements of a Python project";
+    mainProgram = "detect-requirements";
     homepage = "https://github.com/landscapeio/requirements-detector";
     changelog = "https://github.com/landscapeio/requirements-detector/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/resampy/default.nix b/nixpkgs/pkgs/development/python-modules/resampy/default.nix
index f9827dca48d6..84ded2238993 100644
--- a/nixpkgs/pkgs/development/python-modules/resampy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/resampy/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "resampy";
-  version = "0.4.2";
+  version = "0.4.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "bmcfee";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-t5I7NJmIeV0uucPyvR+UJ24NK7fIzYlNJ8bECkbvdjI=";
+    hash = "sha256-LOWpOPAEK+ga7c3bR15QvnHmON6ARS1Qee/7U/VMlTY=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/responses/default.nix b/nixpkgs/pkgs/development/python-modules/responses/default.nix
index 37294dba1e21..5a9960cbac59 100644
--- a/nixpkgs/pkgs/development/python-modules/responses/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/responses/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch2
 , pytest-asyncio
 , pytest-httpserver
 , pytestCheckHook
@@ -17,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "responses";
-  version = "0.24.1";
+  version = "0.25.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -28,9 +29,17 @@ buildPythonPackage rec {
     owner = "getsentry";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-fvfEHJioyjQoEvIgZZKt9/AKtzTgo0APGUK7lDrbahs=";
+    hash = "sha256-FHtuZ6NUmCveAJOXEajfTLRMR8W1Jz/pjFKdE6PHW2g=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      # adds missing pytest asyncio markers
+      url = "https://github.com/getsentry/responses/commit/d5e7402f1782692d04742562370abaca8d54a972.patch";
+      hash = "sha256-A/DYSKvuangolkcQX4k/uom//AQ9in7BsTmVtlCqmXQ=";
+    })
+  ];
+
   nativeBuildInputs = [
     setuptools
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/restrictedpython/default.nix b/nixpkgs/pkgs/development/python-modules/restrictedpython/default.nix
index 169e28773b42..64dbb3016829 100644
--- a/nixpkgs/pkgs/development/python-modules/restrictedpython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/restrictedpython/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "restrictedpython";
-  version = "7.0";
+  version = "7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "RestrictedPython";
     inherit version;
-    hash = "sha256-U3BK+7w1D9yPskVEE2e+Zxyfg4CGkgGy6EUudPzj2xQ=";
+    hash = "sha256-h1rrUcE51440zvhgXcZTCbRJFoBg3QhVGh/p7bR8uaU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/restview/default.nix b/nixpkgs/pkgs/development/python-modules/restview/default.nix
index 88004743d73b..e5694e92137d 100644
--- a/nixpkgs/pkgs/development/python-modules/restview/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/restview/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "ReStructuredText viewer";
+    mainProgram = "restview";
     homepage = "https://mg.pov.lt/restview/";
     changelog = "https://github.com/mgedmin/restview/blob/${version}/CHANGES.rst";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/rich-click/default.nix b/nixpkgs/pkgs/development/python-modules/rich-click/default.nix
index 570ad4690a27..e10c6b496a9f 100644
--- a/nixpkgs/pkgs/development/python-modules/rich-click/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rich-click/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "rich-click";
-  version = "1.7.3";
+  version = "1.7.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "ewels";
     repo = "rich-click";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZTUJbW39SBaqgVG+ytmnPG6DK7J2XGPwmC2w3TCodBo=";
+    hash = "sha256-eqpxNurMHn4ClD0KjTQ7Yfny61tcYBRKlW74axjLI8A=";
   };
 
   nativeBuildInputs = [
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to format click help output nicely with rich";
+    mainProgram = "rich-click";
     homepage = "https://github.com/ewels/rich-click";
     changelog = "https://github.com/ewels/rich-click/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/rich/default.nix b/nixpkgs/pkgs/development/python-modules/rich/default.nix
index 0fb67ed8a805..518be3f4e2fe 100644
--- a/nixpkgs/pkgs/development/python-modules/rich/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rich/default.nix
@@ -28,7 +28,7 @@
 
 buildPythonPackage rec {
   pname = "rich";
-  version = "13.7.0";
+  version = "13.7.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     owner = "Textualize";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-L72an7vHC+aBj8NlLOjofDrQGvmFxJpdbfiEubfg0GM=";
+    hash = "sha256-7LvmPrCpHfPEfJ1r8IFnQhYkBstvtIrWYhGwcchlc0s=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ring-doorbell/default.nix b/nixpkgs/pkgs/development/python-modules/ring-doorbell/default.nix
index 82a24a3b3f41..9949789c3c49 100644
--- a/nixpkgs/pkgs/development/python-modules/ring-doorbell/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ring-doorbell/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "ring-doorbell";
-  version = "0.8.7";
+  version = "0.8.8";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "ring_doorbell";
     inherit version;
-    hash = "sha256-Awi0Wa/ayzhpecTCKWRt+2bQvvvDxbjN+bIKAdorETs=";
+    hash = "sha256-Rz12Qpawi4/u14ywJGt9Yw7IqjYP4bg6zNr9oN3iQxQ=";
   };
 
   nativeBuildInputs = [
@@ -61,6 +61,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library to communicate with Ring Door Bell";
+    mainProgram = "ring-doorbell";
     homepage = "https://github.com/tchellomello/python-ring-doorbell";
     changelog = "https://github.com/tchellomello/python-ring-doorbell/releases/tag/${version}";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/ripser/default.nix b/nixpkgs/pkgs/development/python-modules/ripser/default.nix
index 6e847e483636..c71d9f0a03fd 100644
--- a/nixpkgs/pkgs/development/python-modules/ripser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ripser/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "ripser";
-  version = "0.6.7";
+  version = "0.6.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UuxI1bA6H8s2D9xWVwCecXEHkCV0rhkxuoooaer/a8A=";
+    hash = "sha256-J5ctOvGtmg/e2ls7fN59LR4AbHedC9gKk6f8jIDIoFI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/riscof/default.nix b/nixpkgs/pkgs/development/python-modules/riscof/default.nix
index fc5874e39e33..eabaf0ded530 100644
--- a/nixpkgs/pkgs/development/python-modules/riscof/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/riscof/default.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "RISC-V Architectural Test Framework";
+    mainProgram = "riscof";
     homepage = "https://github.com/riscv-software-src/riscof";
     changelog = "https://github.com/riscv-software-src/riscof/blob/${version}/CHANGELOG.md";
     maintainers = with maintainers; [ genericnerdyusername ];
diff --git a/nixpkgs/pkgs/development/python-modules/riscv-config/default.nix b/nixpkgs/pkgs/development/python-modules/riscv-config/default.nix
index 6cc0471b854b..7cd0399dafcd 100644
--- a/nixpkgs/pkgs/development/python-modules/riscv-config/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/riscv-config/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "RISC-V configuration validator";
+    mainProgram = "riscv-config";
     homepage = "https://github.com/riscv/riscv-config";
     changelog = "https://github.com/riscv-software-src/riscv-config/blob/${version}/CHANGELOG.md";
     maintainers = with maintainers; [ genericnerdyusername ];
diff --git a/nixpkgs/pkgs/development/python-modules/riscv-isac/default.nix b/nixpkgs/pkgs/development/python-modules/riscv-isac/default.nix
index 651c27be676a..19a6eea71319 100644
--- a/nixpkgs/pkgs/development/python-modules/riscv-isac/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/riscv-isac/default.nix
@@ -54,6 +54,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "An ISA coverage extraction tool";
+    mainProgram = "riscv_isac";
     homepage = "https://github.com/riscv/riscv-isac";
     changelog = "https://github.com/riscv-software-src/riscv-isac/blob/${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/rmsd/default.nix b/nixpkgs/pkgs/development/python-modules/rmsd/default.nix
index 1def479816f6..caa13ff5299f 100644
--- a/nixpkgs/pkgs/development/python-modules/rmsd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rmsd/default.nix
@@ -20,6 +20,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Calculate root-mean-square deviation (RMSD) between two sets of cartesian coordinates";
+    mainProgram = "calculate_rmsd";
     homepage = "https://github.com/charnley/rmsd";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/python-modules/rnc2rng/default.nix b/nixpkgs/pkgs/development/python-modules/rnc2rng/default.nix
index e6abf4f189f0..bece0219a1c7 100644
--- a/nixpkgs/pkgs/development/python-modules/rnc2rng/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rnc2rng/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/djc/rnc2rng";
     description = "Compact to regular syntax conversion library for RELAX NG schemata";
+    mainProgram = "rnc2rng";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/rns/default.nix b/nixpkgs/pkgs/development/python-modules/rns/default.nix
index 6c2473f971c1..0df16e875cf1 100644
--- a/nixpkgs/pkgs/development/python-modules/rns/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rns/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "rns";
-  version = "0.7.2";
+  version = "0.7.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "Reticulum";
     rev = "refs/tags/${version}";
-    hash = "sha256-7j82M2T3bPypcXa3SsAflrN5T+d+JJlg3voYu8ALmXE=";
+    hash = "sha256-QcYjqqeXBKx+Ef00Bw1OJMWDMdQgp/fqh3r5yhsa0Kg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/roadlib/default.nix b/nixpkgs/pkgs/development/python-modules/roadlib/default.nix
new file mode 100644
index 000000000000..303024a90f52
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/roadlib/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, adal
+, buildPythonPackage
+, fetchPypi
+, pyjwt
+, pythonOlder
+, setuptools
+, sqlalchemy
+}:
+
+buildPythonPackage rec {
+  pname = "roadlib";
+  version = "0.23.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-0hDiuF0dBRyR2B9dp4c7/jsC6li8uOduQBbhs6fFLfU=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    adal
+    pyjwt
+    sqlalchemy
+  ];
+
+  # Module has no test
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "roadtools.roadlib"
+  ];
+
+  meta = with lib; {
+    description = "ROADtools common components library";
+    homepage = "https://pypi.org/project/roadlib/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/roadrecon/default.nix b/nixpkgs/pkgs/development/python-modules/roadrecon/default.nix
new file mode 100644
index 000000000000..0f1f412919b2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/roadrecon/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+, flask
+, flask-cors
+, flask-marshmallow
+, flask-sqlalchemy
+, marshmallow
+, marshmallow-sqlalchemy
+, openpyxl
+, pythonOlder
+, pythonRelaxDepsHook
+, roadlib
+, setuptools
+, sqlalchemy
+}:
+
+buildPythonPackage rec {
+  pname = "roadrecon";
+  version = "1.4.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-OEftVwU30tLP091Z5CIl67hkjjcqY+Qo04/wHZlbuFc=";
+  };
+
+  pythonRelaxDeps = [
+    "flask"
+  ];
+
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    flask
+    flask-cors
+    flask-marshmallow
+    flask-sqlalchemy
+    marshmallow
+    marshmallow-sqlalchemy
+    openpyxl
+    roadlib
+    sqlalchemy
+  ];
+
+  pythonImportsCheck = [
+    "roadtools.roadrecon"
+  ];
+
+  meta = with lib; {
+    description = "Azure AD recon";
+    homepage = "https://pypi.org/project/roadrecon/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/roadtools/default.nix b/nixpkgs/pkgs/development/python-modules/roadtools/default.nix
new file mode 100644
index 000000000000..6ea6bc5138b2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/roadtools/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, setuptools
+, roadrecon
+, roadlib
+, roadtx
+}:
+
+buildPythonPackage rec {
+  pname = "roadtools";
+  version = "0.0.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-Cqcd+bKkfYXCeJBXu6peMjBoA6gve2XBPdCAAuTKGEE=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    roadrecon
+    roadlib
+    roadtx
+  ];
+
+  pythonImportsCheck = [
+    "roadtools"
+  ];
+
+  meta = with lib; {
+    description = "Azure AD tooling framework";
+    homepage = "https://github.com/dirkjanm/ROADtools";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/roadtx/default.nix b/nixpkgs/pkgs/development/python-modules/roadtx/default.nix
new file mode 100644
index 000000000000..4ea50269cd76
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/roadtx/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pycryptodomex
+, pyotp
+, pythonOlder
+, requests
+, roadlib
+, selenium
+, selenium-wire
+, setuptools
+, signxml
+}:
+
+buildPythonPackage rec {
+  pname = "roadtx";
+  version = "1.7.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-qnumJbuBH+ajzfG+bLTrYPvB5uNnL8dJsTZoT2vo6g0=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    pycryptodomex
+    pyotp
+    requests
+    roadlib
+    selenium
+    selenium-wire
+    signxml
+  ];
+
+  pythonImportsCheck = [
+    "roadtools.roadtx"
+  ];
+
+  meta = with lib; {
+    description = "ROADtools Token eXchange";
+    homepage = "https://pypi.org/project/roadtx/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/robomachine/default.nix b/nixpkgs/pkgs/development/python-modules/robomachine/default.nix
index 613b47a8e601..afcdf0ed3599 100644
--- a/nixpkgs/pkgs/development/python-modules/robomachine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robomachine/default.nix
@@ -10,12 +10,13 @@
 }:
 
 buildPythonPackage rec {
-  pname = "RoboMachine";
+  pname = "robomachine";
   version = "0.10.0";
   format = "pyproject";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "RoboMachine";
+    inherit version;
     hash = "sha256-XrxHaV9U7mZ2TvySHGm6qw1AsoukppzwPq4wufIjL+k=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework-databaselibrary/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework-databaselibrary/default.nix
index 39b45d5816bd..e60162ea38d2 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework-databaselibrary/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework-databaselibrary/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "robotframework-databaselibrary";
-  version = "1.4.1";
+  version = "1.4.4";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "MarketSquare";
     repo = "Robotframework-Database-Library";
     rev = "refs/tags/v${version}";
-    hash = "sha256-BCVXmlrYOaG+Dh67OytUfQnJ9Ak3MtHR3swOXdAN/HU=";
+    hash = "sha256-WTcB1jEfBm8tOuQgsGUhYD4FDqpEEKA4UOmbHS/hac0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/rokuecp/default.nix b/nixpkgs/pkgs/development/python-modules/rokuecp/default.nix
index f9f6bc5cf001..0a204c11be28 100644
--- a/nixpkgs/pkgs/development/python-modules/rokuecp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rokuecp/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "rokuecp";
-  version = "0.19.1";
+  version = "0.19.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "ctalkington";
     repo = "python-rokuecp";
     rev = "refs/tags/${version}";
-    hash = "sha256-lBsfSiG1xSf+blNjQTLtTaG04ezE9eNVjqSAHVy57oY=";
+    hash = "sha256-L6uedckc2lEQ6CUlQGEyDhnuVsxRRgDQJUEsZTfm2sU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/rollbar/default.nix b/nixpkgs/pkgs/development/python-modules/rollbar/default.nix
index d5caebf899b0..26edb9046504 100644
--- a/nixpkgs/pkgs/development/python-modules/rollbar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rollbar/default.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Error tracking and logging from Python to Rollbar";
+    mainProgram = "rollbar";
     homepage = "https://github.com/rollbar/pyrollbar";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/roombapy/default.nix b/nixpkgs/pkgs/development/python-modules/roombapy/default.nix
index bef8114aa3cf..81841aadebee 100644
--- a/nixpkgs/pkgs/development/python-modules/roombapy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/roombapy/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "roombapy";
-  version = "1.6.13";
+  version = "1.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "pschmitt";
     repo = "roombapy";
     rev = "refs/tags/${version}";
-    hash = "sha256-5TFuOk3fj4kg5MyWz7HQ/zWdvceFa3mWnFx+Yuq2III=";
+    hash = "sha256-vB6+cGqeHFthCbz4q75EwsHb8w1H2vPSaKdtvquh5Kc=";
   };
 
   nativeBuildInputs = [
@@ -63,6 +63,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python program and library to control Wi-Fi enabled iRobot Roombas";
+    mainProgram = "roombapy";
     homepage = "https://github.com/pschmitt/roombapy";
     changelog = "https://github.com/pschmitt/roombapy/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ropgadget/default.nix b/nixpkgs/pkgs/development/python-modules/ropgadget/default.nix
index 04c934b4ed11..d0ae5b7aeec0 100644
--- a/nixpkgs/pkgs/development/python-modules/ropgadget/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ropgadget/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool to search for gadgets in binaries to facilitate ROP exploitation";
+    mainProgram = "ROPgadget";
     homepage = "http://shell-storm.org/project/ROPgadget/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bennofs ];
diff --git a/nixpkgs/pkgs/development/python-modules/ropper/default.nix b/nixpkgs/pkgs/development/python-modules/ropper/default.nix
index 1bc393fd44ee..973b11de4728 100644
--- a/nixpkgs/pkgs/development/python-modules/ropper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ropper/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Show information about files in different file formats";
+    mainProgram = "ropper";
     homepage = "https://scoding.de/ropper/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bennofs ];
diff --git a/nixpkgs/pkgs/development/python-modules/rotary-embedding-torch/default.nix b/nixpkgs/pkgs/development/python-modules/rotary-embedding-torch/default.nix
index f9467f63e48c..a04262e40173 100644
--- a/nixpkgs/pkgs/development/python-modules/rotary-embedding-torch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rotary-embedding-torch/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "rotary-embedding-torch";
-  version = "0.4.0";
+  version = "0.5.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "lucidrains";
     repo = "rotary-embedding-torch";
     rev = "refs/tags/${version}";
-    hash = "sha256-bwRfu3SM/+Y9B06vjwqOjd9YmmO+EwBVvhWSdHTaRAk=";
+    hash = "sha256-CCz/va5oydgU1JRDHKooRezbDbeGZHtD8Zy6fWJ2uRg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/rova/default.nix b/nixpkgs/pkgs/development/python-modules/rova/default.nix
index 57b1b2a8e318..32c0c97b3494 100644
--- a/nixpkgs/pkgs/development/python-modules/rova/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rova/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "rova";
-  version = "0.4.0";
+  version = "0.4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "GidoHakvoort";
     repo = "rova";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6tICjph+ffS6OSMxzR4ANB4Q6sG1AKAgUN83DyEGpvo=";
+    hash = "sha256-y73Vf/E2xDy+2vnvZEllRUgsDfX33Q7AsL/UY2pR1sI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/rpds-py/default.nix b/nixpkgs/pkgs/development/python-modules/rpds-py/default.nix
index b86ed00e3594..76798ccfc397 100644
--- a/nixpkgs/pkgs/development/python-modules/rpds-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rpds-py/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "rpds-py";
-  version = "0.10.6";
+  version = "0.17.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,13 +20,13 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "rpds_py";
     inherit version;
-    hash = "sha256-TOWnCNZajb83SNJHS1gNYGsbn5G1xqsqMW4LDPekulA=";
+    hash = "sha256-AhCyZo8kwHgwcmC/iL2snW8Qk2Nd9RI3ib/uTY1/yOc=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-8bXCTrZErdE7JhuoudU/4dDndCMwvjy2a+2IY0DWDzg=";
+    hash = "sha256-sFutrKLa2ISxtUN7hmw2P02nl4SM6Hn4yj1kkXrNWmI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/rplcd/default.nix b/nixpkgs/pkgs/development/python-modules/rplcd/default.nix
index 1022f40141c7..e521523ba697 100644
--- a/nixpkgs/pkgs/development/python-modules/rplcd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rplcd/default.nix
@@ -19,6 +19,7 @@ buildPythonPackage rec {
     description = ''
       Raspberry Pi LCD library for the widely used Hitachi HD44780 controller
     '';
+    mainProgram = "rplcd-tests";
     license = licenses.mit;
     maintainers = with maintainers; [ onny ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/rpmfile/default.nix b/nixpkgs/pkgs/development/python-modules/rpmfile/default.nix
index 2b4d718fc3d4..89401e4ac607 100644
--- a/nixpkgs/pkgs/development/python-modules/rpmfile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rpmfile/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Read rpm archive files";
+    mainProgram = "rpmfile";
     homepage = "https://github.com/srossross/rpmfile";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/rpy2/default.nix b/nixpkgs/pkgs/development/python-modules/rpy2/default.nix
index 027083232650..c10b23414b42 100644
--- a/nixpkgs/pkgs/development/python-modules/rpy2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rpy2/default.nix
@@ -2,6 +2,7 @@
 , lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , isPyPy
 , R
 , rWrapper
@@ -38,6 +39,12 @@ buildPythonPackage rec {
       # R_LIBS_SITE is used by the nix r package to point to the installed R libraries.
       # This patch sets R_LIBS_SITE when rpy2 is imported.
       ./rpy2-3.x-r-libs-site.patch
+
+      # https://github.com/rpy2/rpy2/pull/1094
+      (fetchpatch {
+        url = "https://github.com/rpy2/rpy2/commit/026d069a008163a62d12567bcb938410d0f9bf7a.diff";
+        hash = "sha256-x778upSY3zab5EiRyOcsbDpPj7vN/7XzefEs+wvkNg0=";
+      })
     ];
 
     postPatch = ''
@@ -82,10 +89,6 @@ buildPythonPackage rec {
 
     doCheck = !stdenv.isDarwin;
 
-    # newlines in environment variables are a problem due to
-    # https://github.com/rpy2/rpy2/issues/1066
-    preCheck = "unset postPatch";
-
     nativeCheckInputs = [
       pytestCheckHook
     ];
diff --git a/nixpkgs/pkgs/development/python-modules/rpyc/default.nix b/nixpkgs/pkgs/development/python-modules/rpyc/default.nix
index 0d02b9b3d93a..7c9a13fc4d17 100644
--- a/nixpkgs/pkgs/development/python-modules/rpyc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rpyc/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "rpyc";
-  version = "5.3.1";
+  version = "6.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "tomerfiliba";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-2b6ryqDqZPs5VniLhCwA1/c9+3CT+JJrr3VwP3G6tpY=";
+    hash = "sha256-BvXEXZlVbOmKBwnSBCDksUkbT7JPcMX48KZe/Gd5Y8Q=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/rpyc4/default.nix b/nixpkgs/pkgs/development/python-modules/rpyc4/default.nix
index c883ebef4dc6..1c543166d38a 100644
--- a/nixpkgs/pkgs/development/python-modules/rpyc4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rpyc4/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   pname = "rpyc4";
   # Pinned version for linien, see also:
   # https://github.com/linien-org/pyrp3/pull/10#discussion_r1302816237
-  version = "4.1.5";
+  version = "6.0.0";
   format = "pyproject";
 
   # Since this is an outdated version, upstream might have fixed the
@@ -24,8 +24,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "tomerfiliba";
     repo = "rpyc";
-    rev = version;
-    hash = "sha256-8NOcXZDR3w0TNj1+LZ7lzQAt7yDgspjOp2zk1bsbVls=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-BvXEXZlVbOmKBwnSBCDksUkbT7JPcMX48KZe/Gd5Y8Q=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/rq/default.nix b/nixpkgs/pkgs/development/python-modules/rq/default.nix
index b8e19d46f790..36ddd4d95b34 100644
--- a/nixpkgs/pkgs/development/python-modules/rq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rq/default.nix
@@ -1,15 +1,27 @@
 { lib
+, stdenv
 , fetchFromGitHub
 , buildPythonPackage
 , pythonOlder
+
+# build-system
+, hatchling
+
+# dependencies
 , click
 , redis
+
+# tests
+, psutil
+, pytestCheckHook
+, redis-server
+, sentry-sdk
 }:
 
 buildPythonPackage rec {
   pname = "rq";
-  version = "1.15.1";
-  format = "setuptools";
+  version = "1.16.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -17,16 +29,33 @@ buildPythonPackage rec {
     owner = "rq";
     repo = "rq";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cymNXFI+6YEVw2Pc7u6+vroC0428oW7BTLxyBgPqLng=";
+    hash = "sha256-1E7jPTSQCjuKZVFL4uZqL1WZHnxWSLTNcnpyvfHz7oY=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    hatchling
+  ];
+
+  dependencies = [
     click
     redis
   ];
 
-  # Tests require a running Redis rerver
-  doCheck = false;
+  nativeCheckInputs = [
+    psutil
+    pytestCheckHook
+    sentry-sdk
+  ];
+
+  preCheck = lib.optionalString stdenv.isLinux ''
+    PATH=$out/bin:$PATH
+    ${redis-server}/bin/redis-server &
+    REDIS_PID=$!
+  '';
+
+  postCheck = lib.optionalString stdenv.isLinux ''
+    kill $REDIS_PID
+  '';
 
   pythonImportsCheck = [
     "rq"
diff --git a/nixpkgs/pkgs/development/python-modules/rst2ansi/default.nix b/nixpkgs/pkgs/development/python-modules/rst2ansi/default.nix
index 763a3913bd60..4f1ca27137a2 100644
--- a/nixpkgs/pkgs/development/python-modules/rst2ansi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rst2ansi/default.nix
@@ -14,6 +14,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A rst converter to ansi-decorated console output";
+    mainProgram = "rst2ansi";
     homepage = "https://github.com/Snaipe/python-rst-to-ansi";
     license = licenses.mit;
     maintainers = with maintainers; [ vojta001 ];
diff --git a/nixpkgs/pkgs/development/python-modules/rst2pdf/default.nix b/nixpkgs/pkgs/development/python-modules/rst2pdf/default.nix
index 6fb44840f5b2..b2531886eaa8 100644
--- a/nixpkgs/pkgs/development/python-modules/rst2pdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rst2pdf/default.nix
@@ -68,6 +68,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Convert reStructured Text to PDF via ReportLab";
+    mainProgram = "rst2pdf";
     homepage = "https://rst2pdf.org/";
     changelog = "https://github.com/rst2pdf/rst2pdf/blob/${version}/CHANGES.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/rstcheck/default.nix b/nixpkgs/pkgs/development/python-modules/rstcheck/default.nix
index 22f160000830..3e648e792b20 100644
--- a/nixpkgs/pkgs/development/python-modules/rstcheck/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rstcheck/default.nix
@@ -71,6 +71,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Checks syntax of reStructuredText and code blocks nested within it";
+    mainProgram = "rstcheck";
     homepage = "https://github.com/myint/rstcheck";
     changelog = "https://github.com/rstcheck/rstcheck/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/rtfde/default.nix b/nixpkgs/pkgs/development/python-modules/rtfde/default.nix
new file mode 100644
index 000000000000..c986d7b0c5e3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/rtfde/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, lark
+, lxml
+, oletools
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "rtfde";
+  version = "0.1.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "seamustuohy";
+    repo = "RTFDE";
+    rev = "refs/tags/${version}";
+    hash = "sha256-ai9JQ3gphY/IievBNdHiblIpc0IPS9wp7CVvBIRzG/4=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    lark
+    oletools
+  ];
+
+  nativeCheckInputs = [
+    lxml
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "RTFDE"
+  ];
+
+  meta = with lib; {
+    description = "Library for extracting encapsulated HTML and plain text content from the RTF bodies";
+    homepage = "https://github.com/seamustuohy/RTFDE";
+    changelog = "https://github.com/seamustuohy/RTFDE/releases/tag/${version}";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/rtslib/default.nix b/nixpkgs/pkgs/development/python-modules/rtslib/default.nix
index d43065300fee..968a33607d92 100644
--- a/nixpkgs/pkgs/development/python-modules/rtslib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rtslib/default.nix
@@ -16,6 +16,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python object API for managing the Linux LIO kernel target";
+    mainProgram = "targetctl";
     homepage = "https://github.com/open-iscsi/rtslib-fb";
     license = licenses.asl20;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/ruamel-yaml/default.nix b/nixpkgs/pkgs/development/python-modules/ruamel-yaml/default.nix
index e06aaff73dc8..4ac0d552ebdf 100644
--- a/nixpkgs/pkgs/development/python-modules/ruamel-yaml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ruamel-yaml/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "ruamel-yaml";
-  version = "0.18.5";
+  version = "0.18.6";
   pyproject = true;
 
   src = fetchPypi {
     pname = "ruamel.yaml";
     inherit version;
-    hash = "sha256-YZF+OjWlacETOo93LhImlhv1oRmL6n4j8GoIQd6hqw4=";
+    hash = "sha256-iyfmohfnhsb75WNNjz8RvGPg+A9qWJDyiGPZxFqsMRs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/runs/default.nix b/nixpkgs/pkgs/development/python-modules/runs/default.nix
new file mode 100644
index 000000000000..ec751bfd7f4b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/runs/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, xmod
+, pytestCheckHook
+, tdir
+}:
+
+buildPythonPackage rec {
+  pname = "runs";
+  version = "1.2.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "rec";
+    repo = "runs";
+    rev = "v${version}";
+    hash = "sha256-aEamhXr3C+jYDzQGzcmGFyl5oEtovxlNacFM08y0ZEk=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    xmod
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    tdir
+  ];
+
+  disabledTests = [
+    # requires .git directory
+    "test_many"
+  ];
+
+  pythonImportsCheck = [
+    "runs"
+  ];
+
+  meta = with lib; {
+    description = "Run a block of text as a subprocess";
+    homepage = "https://github.com/rec/runs";
+    changelog = "https://github.com/rec/runs/blob/${src.rev}/CHANGELOG";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/s3-credentials/default.nix b/nixpkgs/pkgs/development/python-modules/s3-credentials/default.nix
index 458f21618caf..71bc5d4f4438 100644
--- a/nixpkgs/pkgs/development/python-modules/s3-credentials/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/s3-credentials/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python CLI utility for creating credentials for accessing S3 buckets";
+    mainProgram = "s3-credentials";
     homepage = "https://github.com/simonw/s3-credentials";
     license = licenses.asl20;
     maintainers = with maintainers; [ techknowlogick ];
diff --git a/nixpkgs/pkgs/development/python-modules/s3fs/default.nix b/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
index 2cc6bb9d7950..510c95fff9b6 100644
--- a/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/s3fs/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "s3fs";
-  version = "2024.2.0";
+  version = "2024.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+AZPUirQiLVrBDBHyCVzSEfAJp3xnyYTyVbUwg3hW2I=";
+    hash = "sha256-pmMjXIrbfmu8RadSksk5Ww+9WAuzlK3EztnorUvYZNo=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/sacrebleu/default.nix b/nixpkgs/pkgs/development/python-modules/sacrebleu/default.nix
index 411426eaa34d..7a0540b82c73 100644
--- a/nixpkgs/pkgs/development/python-modules/sacrebleu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sacrebleu/default.nix
@@ -60,6 +60,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Hassle-free computation of shareable, comparable, and reproducible BLEU, chrF, and TER scores";
+    mainProgram = "sacrebleu";
     homepage = "https://github.com/mjpost/sacrebleu";
     changelog = "https://github.com/mjpost/sacrebleu/blob/v{version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/sacremoses/default.nix b/nixpkgs/pkgs/development/python-modules/sacremoses/default.nix
index 63584a043778..c08589b66e25 100644
--- a/nixpkgs/pkgs/development/python-modules/sacremoses/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sacremoses/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/alvations/sacremoses";
     description = "Python port of Moses tokenizer, truecaser and normalizer";
+    mainProgram = "sacremoses";
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ pashashocky ];
diff --git a/nixpkgs/pkgs/development/python-modules/safety-schemas/default.nix b/nixpkgs/pkgs/development/python-modules/safety-schemas/default.nix
new file mode 100644
index 000000000000..0f9724e95f65
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/safety-schemas/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, hatchling
+, pythonRelaxDepsHook
+, dparse
+, packaging
+, pydantic
+, ruamel-yaml
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "safety-schemas";
+  version = "0.0.2";
+  pyproject = true;
+
+  src = fetchPypi {
+    pname = "safety_schemas";
+    inherit version;
+    hash = "sha256-fRsEDsBkgPBc/2tF6nqT4JyJQt+GT7DQHd62fDI8+ow=";
+  };
+
+  nativeBuildInputs = [
+    hatchling
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "dparse"
+  ];
+
+  propagatedBuildInputs = [
+    dparse
+    packaging
+    pydantic
+    ruamel-yaml
+    typing-extensions
+  ];
+
+  pythonImportsCheck = [ "safety_schemas" ];
+
+  # upstream has no tests
+  doCheck = false;
+
+  meta = {
+    description = "Schemas for Safety CLI";
+    homepage = "https://pypi.org/project/safety-schemas/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/safety/default.nix b/nixpkgs/pkgs/development/python-modules/safety/default.nix
index bb367629b5a3..529ed4d8d4c2 100644
--- a/nixpkgs/pkgs/development/python-modules/safety/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/safety/default.nix
@@ -5,33 +5,46 @@
 , pythonRelaxDepsHook
 , setuptools
 , click
+, urllib3
 , requests
 , packaging
 , dparse
 , ruamel-yaml
+, jinja2
+, marshmallow
+, authlib
+, jwt
+, rich
+, typer
+, pydantic
+, safety-schemas
+, typing-extensions
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "safety";
-  version = "2.3.5";
+  version = "3.0.1";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-pgwR+JUvQSy7Fl1wyx9nOjtDorqak84R+X5qTeg0qjo=";
+    hash = "sha256-HyAA8DZS86C/xn+P0emLxXI8y3bhXLG91oVFw9gD3wE=";
   };
 
   postPatch = ''
     substituteInPlace safety/safety.py \
-      --replace "telemetry=True" "telemetry=False"
+      --replace-fail "telemetry=True" "telemetry=False"
     substituteInPlace safety/util.py \
-      --replace "telemetry=True" "telemetry=False"
+      --replace-fail "telemetry = True" "telemetry = False"
     substituteInPlace safety/cli.py \
-      --replace "telemetry', default=True" "telemetry', default=False"
+      --replace-fail "disable-optional-telemetry', default=False" \
+                     "disable-optional-telemetry', default=True"
+    substituteInPlace safety/scan/finder/handlers.py \
+      --replace-fail "telemetry=True" "telemetry=False"
   '';
 
   nativeBuildInputs = [
@@ -41,15 +54,28 @@ buildPythonPackage rec {
 
   pythonRelaxDeps = [
     "packaging"
+    "dparse"
+    "authlib"
+    "pydantic"
   ];
 
   propagatedBuildInputs = [
     setuptools
     click
+    urllib3
     requests
     packaging
     dparse
     ruamel-yaml
+    jinja2
+    marshmallow
+    authlib
+    jwt
+    rich
+    typer
+    pydantic
+    safety-schemas
+    typing-extensions
   ];
 
   nativeCheckInputs = [
@@ -61,9 +87,8 @@ buildPythonPackage rec {
     "test_announcements_if_is_not_tty"
     "test_check_live"
     "test_check_live_cached"
-    "test_check_vulnerabilities"
-    "test_license"
-    "test_chained_review"
+    "test_get_packages_licenses_without_api_key"
+    "test_validate_with_policy_file_using_invalid_keyword"
   ];
 
   preCheck = ''
@@ -72,6 +97,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Checks installed dependencies for known vulnerabilities";
+    mainProgram = "safety";
     homepage = "https://github.com/pyupio/safety";
     changelog = "https://github.com/pyupio/safety/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix b/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix
index 1fc9889da7a6..4eaa44f0db38 100644
--- a/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "sagemaker";
-  version = "2.210.0";
+  version = "2.213.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "sagemaker-python-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LRBN8jChycHZKKO2SeYHbYwBKGE6qh9qUdGdvmMXdSQ=";
+    hash = "sha256-3V4boilVpqvwRBBuZv/AKEks+BH9PFnigfq6Z5kFhqQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix b/nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix
index 60b745a38455..4b821da0fe6c 100644
--- a/nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/salmon-mail/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
     broken = stdenv.isDarwin;
     homepage = "https://salmon-mail.readthedocs.org/";
     description = "Pythonic mail application server";
+    mainProgram = "salmon";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/samsungctl/default.nix b/nixpkgs/pkgs/development/python-modules/samsungctl/default.nix
index 665c740b4f63..f4f3653d94e9 100644
--- a/nixpkgs/pkgs/development/python-modules/samsungctl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/samsungctl/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Remote control Samsung televisions via a TCP/IP connection";
+    mainProgram = "samsungctl";
     homepage = "https://github.com/Ape/samsungctl";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix b/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix
index 813df37a84e5..23b38820ff22 100644
--- a/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix
@@ -7,12 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  pname = "Sanic-Auth";
+  pname = "sanic-auth";
   version = "0.3.0";
   format = "setuptools";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "Sanic-Auth";
+    inherit version;
     sha256 = "0dc24ynqjraqwgvyk0g9bj87zgpq4xnssl24hnsn7l5vlkmk8198";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/sanic/default.nix b/nixpkgs/pkgs/development/python-modules/sanic/default.nix
index fb1d5aba58db..c8cb16ecc137 100644
--- a/nixpkgs/pkgs/development/python-modules/sanic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sanic/default.nix
@@ -38,7 +38,7 @@
 
 buildPythonPackage rec {
   pname = "sanic";
-  version = "23.6.0";
+  version = "23.12.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -47,18 +47,9 @@ buildPythonPackage rec {
     owner = "sanic-org";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ffw92mlYNV+ikb6299uw24EI1XPpl3Ju2st1Yt/YHKw=";
+    hash = "sha256-TizjibqoLNMX0m5oPyncKgFnltXOLZUIPSzVIeKU25w=";
   };
 
-  patches = [
-    # https://github.com/sanic-org/sanic/pull/2801
-    (fetchpatch {
-      name = "fix-test-one-cpu.patch";
-      url = "https://github.com/sanic-org/sanic/commit/a1df2a6de1c9c88a85d166e7e2636d26f7925852.patch";
-      hash = "sha256-vljGuoP/Q9HrP+/AOoI1iUpbDQ4/1Pn7AURP1dncI00=";
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools
     wheel
@@ -171,6 +162,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Web server and web framework";
+    mainProgram = "sanic";
     homepage = "https://github.com/sanic-org/sanic/";
     changelog = "https://github.com/sanic-org/sanic/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/scapy/default.nix b/nixpkgs/pkgs/development/python-modules/scapy/default.nix
index 472bbe084319..970d355fff06 100644
--- a/nixpkgs/pkgs/development/python-modules/scapy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scapy/default.nix
@@ -63,6 +63,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python-based network packet manipulation program and library";
+    mainProgram = "scapy";
     longDescription = ''
       Scapy is a powerful Python-based interactive packet manipulation program
       and library.
diff --git a/nixpkgs/pkgs/development/python-modules/schema-salad/default.nix b/nixpkgs/pkgs/development/python-modules/schema-salad/default.nix
index 86a1ba65598d..7e20d1c39779 100644
--- a/nixpkgs/pkgs/development/python-modules/schema-salad/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/schema-salad/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "schema-salad";
-  version = "8.5.20240102191336.dev7+g8e95468";
+  version = "8.5.20240311110950";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,8 +24,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "common-workflow-language";
     repo = "schema_salad";
-    rev = "8e954684b08d222d54b7eff680eaa4d4e65920a9";
-    hash = "sha256-VoFFKe6XHDytj5UlmsN14RevKcgpl+DSDMGDVS2Ols4=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-bjeVgV9ovIVvGvSay24vKkzSXBbzgV05BkO5DojTX3o=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-build-core/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-build-core/default.nix
index 494cfa1a7606..0e4734d4a53b 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-build-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-build-core/default.nix
@@ -22,13 +22,13 @@
 
 buildPythonPackage rec {
   pname = "scikit-build-core";
-  version = "0.8.0";
+  version = "0.8.2";
   pyproject = true;
 
   src = fetchPypi {
     pname = "scikit_build_core";
     inherit version;
-    hash = "sha256-WAW/iYSXOemY/BuupG5WVVZi8cnZfEF8PgOHAtZTr+M=";
+    hash = "sha256-UOwkuVaMmqbicjPe6yl4kyvHmFYhKzBXXL+kBJZVxDY=";
   };
 
   postPatch = lib.optionalString (pythonOlder "3.11") ''
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-build/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-build/default.nix
index 7ced95754fe5..acaf74e10953 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-build/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-build/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , pythonOlder
 , fetchPypi
+, fetchpatch2
 , hatch-fancy-pypi-readme
 , hatch-vcs
 , hatchling
@@ -14,7 +15,6 @@
 , cmake
 , cython
 , git
-, path
 , pytestCheckHook
 , pytest-mock
 , requests
@@ -38,6 +38,13 @@ buildPythonPackage rec {
     # https://github.com/scikit-build/scikit-build/pull/1032
     # https://github.com/scikit-build/scikit-build/issues/1047
     ./python312-compatibility.patch
+
+    (fetchpatch2 {
+      # https://github.com/scikit-build/scikit-build/pull/1073
+      name = "skbuild-suppress-permissionerror.patch";
+      url = "https://github.com/scikit-build/scikit-build/commit/41183413e4f5ef29cf3d21e470a2cfa2305733f8.patch";
+      hash = "sha256-M5Sbt4CBuiAeGgN0D/toglVi1V2GlA9hPIOMzcqOwdo=";
+    })
   ];
 
   # This line in the filterwarnings section of the pytest configuration leads to this error:
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-fuzzy/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-fuzzy/default.nix
index 354c27f01915..5ed9d994c0e0 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-fuzzy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-fuzzy/default.nix
@@ -47,6 +47,10 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ networkx numpy scipy ];
   nativeCheckInputs = [ matplotlib nose pytestCheckHook ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   pythonImportsCheck = [ "skfuzzy" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-hep-testdata/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-hep-testdata/default.nix
index 94531f8a2213..58e8ceadd0d4 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-hep-testdata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-hep-testdata/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "scikit-hep-testdata";
-  version = "0.4.39";
+  version = "0.4.42";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-tcKEJrqB7cblcmH4PtSmx0heUew2+aDE4+mk2v9cUuo=";
+    hash = "sha256-2zUo/uGIQl0wSFWWxoTmttzUNq9rFGJRYr95PQJH/I8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-learn/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-learn/default.nix
index 4b33027fb99b..b6c703d7870d 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-learn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-learn/default.nix
@@ -4,12 +4,12 @@
 , fetchPypi
 
 # build-system
-, cython
+, cython_3
 , gfortran
 , numpy
-, oldest-supported-numpy
 , scipy
 , setuptools
+, wheel
 
 # native dependencies
 , glibcLocales
@@ -24,14 +24,14 @@
 
 buildPythonPackage rec {
   pname = "scikit-learn";
-  version = "1.4.0";
+  version = "1.4.1.post1";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-1Dc8mE66IOOTIW7dUaPj7t5Wy+k9QkdRbSBWQ8O5MSE=";
+    hash = "sha256-k9PUlv8ZZUcPmXfQXl7DN2+x5jsQ5P2l450jwtiWmjA=";
   };
 
   buildInputs = [
@@ -42,18 +42,24 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    cython
     gfortran
+  ];
+
+  build-system = [
+    cython_3
     numpy
-    oldest-supported-numpy
     scipy
     setuptools
+    wheel
   ];
 
   propagatedBuildInputs = [
+    numpy.blas
+  ];
+
+  dependencies = [
     joblib
     numpy
-    numpy.blas
     scipy
     threadpoolctl
   ];
@@ -69,18 +75,12 @@ buildPythonPackage rec {
     export SKLEARN_BUILD_PARALLEL=$NIX_BUILD_CORES
   '';
 
-  doCheck = !stdenv.isAarch64;
+  # PermissionError: [Errno 1] Operation not permitted: '/nix/nix-installer'
+  doCheck = !stdenv.isDarwin;
 
   disabledTests = [
     # Skip test_feature_importance_regression - does web fetch
     "test_feature_importance_regression"
-
-    # failing on macos
-    "check_regressors_train"
-    "check_classifiers_train"
-    "xfail_ignored_in_check_estimator"
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    "test_graphical_lasso"
   ];
 
   pytestFlagsArray = [
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-posthocs/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-posthocs/default.nix
index 17f0c2a1764e..e8f3933299a7 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-posthocs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-posthocs/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "scikit-posthocs";
-  version = "0.8.0";
+  version = "0.9.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "maximtrp";
     repo = "scikit-posthocs";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ojXVrsZsvX7UytldcWkhOndix4by1uBeVpG7nQrcvmA=";
+    hash = "sha256-sRop5DKakrZEBswzTvumn68wKqU15zM5aCLfZ/PdsFg=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-rf/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-rf/default.nix
index bde55615e7bf..aa49911009eb 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-rf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-rf/default.nix
@@ -32,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "scikit-rf";
-  version = "0.31.0";
+  version = "0.32.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -40,8 +40,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "scikit-rf";
     repo = pname;
-    rev = "refs/tags/v${version}";
-    hash = "sha256-MSFlajXdNZ/BfTLuegy+T9iNFdXk/TWN8J3TcYbYLbI=";
+    rev = "refs/tags/v.${version}";
+    hash = "sha256-J7V4nQ8OxW4w75OyiMdUal8k5oXSn96g4w6k1+KV1Dw=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/scipy/default.nix b/nixpkgs/pkgs/development/python-modules/scipy/default.nix
index b2a58d71c0b1..2870e5ec3bbd 100644
--- a/nixpkgs/pkgs/development/python-modules/scipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scipy/default.nix
@@ -13,10 +13,10 @@
 , pkg-config
 , pythran
 , wheel
-, nose
 , setuptools
 , hypothesis
 , pytestCheckHook
+, pytest_7
 , pytest-xdist
 , numpy
 , pybind11
@@ -115,9 +115,9 @@ in buildPythonPackage {
   __darwinAllowLocalNetworking = true;
 
   nativeCheckInputs = [
-    nose
     hypothesis
-    pytestCheckHook
+    # Failed: DID NOT WARN. No warnings of type (<class 'DeprecationWarning'>, <class 'PendingDeprecationWarning'>, <class 'FutureWarning'>) were emitted.
+    (pytestCheckHook.override { pytest = pytest_7; })
     pytest-xdist
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/scmrepo/default.nix b/nixpkgs/pkgs/development/python-modules/scmrepo/default.nix
index 611949ae6515..e902cac51101 100644
--- a/nixpkgs/pkgs/development/python-modules/scmrepo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scmrepo/default.nix
@@ -19,24 +19,24 @@
 
 buildPythonPackage rec {
   pname = "scmrepo";
-  version = "2.1.1";
-  format = "pyproject";
+  version = "3.3.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "iterative";
-    repo = pname;
+    repo = "scmrepo";
     rev = "refs/tags/${version}";
-    hash = "sha256-KG7Y+1qqsgDwgRYsb3XbZnF6FduHJCAEizfuugBi0Go=";
+    hash = "sha256-swv5uWsyM4mEXlurizUewnbdAOtjWgvzCO9IPfz2ZPE=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     asyncssh
     dulwich
     dvc-http
diff --git a/nixpkgs/pkgs/development/python-modules/scooby/default.nix b/nixpkgs/pkgs/development/python-modules/scooby/default.nix
index 6140fd13323c..869a1a589501 100644
--- a/nixpkgs/pkgs/development/python-modules/scooby/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scooby/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/banesullivan/scooby/releases/tag/v${version}";
     description = "A lightweight tool for reporting Python package versions and hardware resources";
+    mainProgram = "scooby";
     homepage = "https://github.com/banesullivan/scooby";
     license = licenses.mit;
     maintainers = with maintainers; [ wegank ];
diff --git a/nixpkgs/pkgs/development/python-modules/scour/default.nix b/nixpkgs/pkgs/development/python-modules/scour/default.nix
index 66f0613fc5f7..2b757d4dc3a2 100644
--- a/nixpkgs/pkgs/development/python-modules/scour/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scour/default.nix
@@ -17,6 +17,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "An SVG Optimizer / Cleaner ";
+    mainProgram = "scour";
     homepage    = "https://github.com/scour-project/scour";
     license     = licenses.asl20;
     maintainers = with maintainers; [ worldofpeace ];
diff --git a/nixpkgs/pkgs/development/python-modules/scrapy/default.nix b/nixpkgs/pkgs/development/python-modules/scrapy/default.nix
index 9548f9136e8c..09ed93f8481f 100644
--- a/nixpkgs/pkgs/development/python-modules/scrapy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scrapy/default.nix
@@ -142,6 +142,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "High-level web crawling and web scraping framework";
+    mainProgram = "scrapy";
     longDescription = ''
       Scrapy is a fast high-level web crawling and web scraping framework, used to crawl
       websites and extract structured data from their pages. It can be used for a wide
diff --git a/nixpkgs/pkgs/development/python-modules/screed/default.nix b/nixpkgs/pkgs/development/python-modules/screed/default.nix
index cc1b80153d3a..dd5a637e87c1 100644
--- a/nixpkgs/pkgs/development/python-modules/screed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/screed/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A simple read-only sequence database, designed for short reads";
+    mainProgram = "screed";
     homepage = "https://pypi.org/project/screed/";
     maintainers = with maintainers; [ luizirber ];
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix b/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix
index ad36d8d3347c..9245c427e15b 100644
--- a/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix
@@ -58,6 +58,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python interface for Pentair Screenlogic devices";
+    mainProgram = "screenlogicpy";
     homepage = "https://github.com/dieselrabbit/screenlogicpy";
     changelog = "https://github.com/dieselrabbit/screenlogicpy/releases/tag/v${version}";
     license = with licenses; [ gpl3Only ];
diff --git a/nixpkgs/pkgs/development/python-modules/sdkmanager/default.nix b/nixpkgs/pkgs/development/python-modules/sdkmanager/default.nix
index 7063adf94e18..2900c012cf79 100644
--- a/nixpkgs/pkgs/development/python-modules/sdkmanager/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sdkmanager/default.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://gitlab.com/fdroid/sdkmanager";
     description = "A drop-in replacement for sdkmanager from the Android SDK written in Python";
+    mainProgram = "sdkmanager";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ linsui ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/seabreeze/default.nix b/nixpkgs/pkgs/development/python-modules/seabreeze/default.nix
index 78750d84b24f..24aa665bccfc 100644
--- a/nixpkgs/pkgs/development/python-modules/seabreeze/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/seabreeze/default.nix
@@ -28,14 +28,14 @@
 
 buildPythonPackage rec {
   pname = "seabreeze";
-  version = "2.5.0";
+  version = "2.6.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ap--";
     repo = "python-seabreeze";
     rev = "refs/tags/v${version}";
-    hash = "sha256-25rFGpfwJKj9lLDO/ZsqJ2NfCsgSSJghLZxffjX/+7w=";
+    hash = "sha256-Ead9G4i8/mFwPqL2PGsndtmX93Njld3nvTTr6ROJTac=";
     leaveDotGit = true;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/seedir/default.nix b/nixpkgs/pkgs/development/python-modules/seedir/default.nix
index 46fca2c568f6..6c5e5bc899f2 100644
--- a/nixpkgs/pkgs/development/python-modules/seedir/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/seedir/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for for creating, editing, and reading folder tree diagrams";
+    mainProgram = "seedir";
     homepage = "https://github.com/earnestt1234/seedir";
     changelog = "https://github.com/earnestt1234/seedir/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/segments/default.nix b/nixpkgs/pkgs/development/python-modules/segments/default.nix
index 10d50ed59233..e55eb4c49bad 100644
--- a/nixpkgs/pkgs/development/python-modules/segments/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/segments/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/cldf/segments/blob/${src.rev}/CHANGES.md";
     description = "Unicode Standard tokenization routines and orthography profile segmentation";
+    mainProgram = "segments";
     homepage = "https://github.com/cldf/segments";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/segno/default.nix b/nixpkgs/pkgs/development/python-modules/segno/default.nix
index 98c332af7389..21a10677c5e1 100644
--- a/nixpkgs/pkgs/development/python-modules/segno/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/segno/default.nix
@@ -4,7 +4,7 @@
 , pythonOlder
 
 # build-system
-, setuptools
+, flit-core
 
 # dependencies
 , importlib-metadata
@@ -17,18 +17,18 @@
 
 buildPythonPackage rec {
   pname = "segno";
-  version = "1.6.0";
+  version = "1.6.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "heuer";
     repo = "segno";
     rev = "refs/tags/${version}";
-    hash = "sha256-lgitNnVHvvPLKtDqJvc/zsVlFu9Gw0D3S4lt/20TlhE=";
+    hash = "sha256-5CDrQhbgUydz1ORp4ktZwhcgbJxQq1snKIAA0v4mZ00=";
   };
 
   nativeBuildInputs = [
-    setuptools
+    flit-core
   ];
 
   propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
@@ -53,6 +53,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/heuer/segno/releases/tag/${version}";
     description = "QR Code and Micro QR Code encoder";
+    mainProgram = "segno";
     homepage = "https://github.com/heuer/segno/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ phaer ];
diff --git a/nixpkgs/pkgs/development/python-modules/selenium-wire/default.nix b/nixpkgs/pkgs/development/python-modules/selenium-wire/default.nix
new file mode 100644
index 000000000000..bbc98666394b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/selenium-wire/default.nix
@@ -0,0 +1,80 @@
+{ lib
+, blinker
+, brotli
+, buildPythonPackage
+, certifi
+, fetchFromGitHub
+, h2
+, hyperframe
+, kaitaistruct
+, pyasn1
+, httpbin
+, pyopenssl
+, pyparsing
+, pysocks
+, gunicorn
+, pytestCheckHook
+, pythonOlder
+, selenium
+, setuptools
+, wsproto
+, zstandard
+}:
+
+buildPythonPackage rec {
+  pname = "selenium-wire";
+  version = "5.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "wkeeling";
+    repo = "selenium-wire";
+    rev = "refs/tags/${version}";
+    hash = "sha256-KgaDxHS0dAK6CT53L1qqx1aORMmkeaiXAUtGC82hiIQ=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    blinker
+    brotli
+    certifi
+    h2
+    hyperframe
+    kaitaistruct
+    pyasn1
+    pyopenssl
+    pyparsing
+    pysocks
+    selenium
+    wsproto
+    zstandard
+  ];
+
+  nativeCheckInputs = [
+    gunicorn
+    httpbin
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "seleniumwire"
+  ];
+
+  disabledTestPaths = [
+    # Don't run End2End tests
+    "tests/end2end/test_end2end.py"
+  ];
+
+  meta = with lib; {
+    description = "Extends Selenium's Python bindings to give you the ability to inspect requests made by the browser";
+    homepage = "https://github.com/wkeeling/selenium-wire";
+    changelog = "https://github.com/wkeeling/selenium-wire/blob/${version}/HISTORY.rst";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/selenium/default.nix b/nixpkgs/pkgs/development/python-modules/selenium/default.nix
index 09ddebebe240..9f8336201eb9 100644
--- a/nixpkgs/pkgs/development/python-modules/selenium/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/selenium/default.nix
@@ -1,12 +1,13 @@
 { lib
 , fetchFromGitHub
 , buildPythonPackage
+, selenium-manager
 , certifi
-, geckodriver
 , pytestCheckHook
 , pythonOlder
 , trio
 , trio-websocket
+, typing-extensions
 , urllib3
 , pytest-trio
 , nixosTests
@@ -16,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "selenium";
-  version = "4.15.0";
+  version = "4.18.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +27,7 @@ buildPythonPackage rec {
     repo = "selenium";
     # check if there is a newer tag with or without -python suffix
     rev = "refs/tags/selenium-${version}";
-    hash = "sha256-AacpHZw6N6RruuBO+bZ3/cxOODe9VPGblKmIm1ffqrc=";
+    hash = "sha256-1C9Epsk9rFlShxHGGzbWl6smrMzPn2h3yCWlzUIMpY8=";
   };
 
   preConfigure = ''
@@ -44,10 +45,10 @@ buildPythonPackage rec {
     cp ../third_party/js/selenium/webdriver.json $DST_FF/webdriver_prefs.json
   '' + lib.optionalString stdenv.isDarwin ''
     mkdir -p $DST_PREFIX/common/macos
-    cp ../common/manager/macos/selenium-manager $DST_PREFIX/common/macos
+    ln -s ${lib.getExe selenium-manager} $DST_PREFIX/common/macos/
   '' + lib.optionalString stdenv.isLinux ''
     mkdir -p $DST_PREFIX/common/linux/
-    cp ../common/manager/linux/selenium-manager $DST_PREFIX/common/linux/
+    ln -s ${lib.getExe selenium-manager} $DST_PREFIX/common/linux/
   '';
 
   propagatedBuildInputs = [
@@ -55,6 +56,7 @@ buildPythonPackage rec {
     trio
     trio-websocket
     urllib3
+    typing-extensions
   ] ++ urllib3.optional-dependencies.socks;
 
   nativeCheckInputs = [
@@ -62,6 +64,8 @@ buildPythonPackage rec {
     pytest-trio
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   passthru.tests = {
     testing-vaultwarden = nixosTests.vaultwarden;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/semver/default.nix b/nixpkgs/pkgs/development/python-modules/semver/default.nix
index 3c752df0a62a..7260baa5aa10 100644
--- a/nixpkgs/pkgs/development/python-modules/semver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/semver/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python package to work with Semantic Versioning (http://semver.org/)";
+    mainProgram = "pysemver";
     homepage = "https://python-semver.readthedocs.io/";
     changelog = "https://github.com/python-semver/python-semver/releases/tag/3.0.0";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/send2trash/default.nix b/nixpkgs/pkgs/development/python-modules/send2trash/default.nix
index 0fab032f93a1..62bbea264e72 100644
--- a/nixpkgs/pkgs/development/python-modules/send2trash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/send2trash/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Send file to trash natively under macOS, Windows and Linux";
+    mainProgram = "send2trash";
     homepage = "https://github.com/hsoft/send2trash";
     changelog = "https://github.com/arsenetar/send2trash/blob/${version}/CHANGES.rst";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/sentence-transformers/default.nix b/nixpkgs/pkgs/development/python-modules/sentence-transformers/default.nix
index 9c439149964d..3803dc4d29c6 100644
--- a/nixpkgs/pkgs/development/python-modules/sentence-transformers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sentence-transformers/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "sentence-transformers";
-  version = "2.2.2";
+  version = "2.5.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "UKPLab";
     repo = "sentence-transformers";
-    rev = "v${version}";
-    hash = "sha256-hEYpDAL0lliaS1j+c5vaZ0q1hw802jfTUurx/FvgY9w=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-HIOizBf8YnPAj95cG1HopO9B/bhAmT0u3q5CM6POEjQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
index 74b3309602d9..f225853368b5 100644
--- a/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -38,7 +38,7 @@
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.40.6";
+  version = "1.42.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -47,7 +47,7 @@ buildPythonPackage rec {
     owner = "getsentry";
     repo = "sentry-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-cGAPSF+kjGsY9IeRxRZUiAEiDR2uNBheet5Z+fok/eY=";
+    hash = "sha256-LZn7oWwKdHi/KScitFnNDX7pI92mNkC6niGP+BixjtA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/seqdiag/default.nix b/nixpkgs/pkgs/development/python-modules/seqdiag/default.nix
index d2a61dcbb7ff..bbf7cca1293a 100644
--- a/nixpkgs/pkgs/development/python-modules/seqdiag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/seqdiag/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Generate sequence-diagram image from spec-text file (similar to Graphviz)";
+    mainProgram = "seqdiag";
     homepage = "http://blockdiag.com/";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/python-modules/servefile/default.nix b/nixpkgs/pkgs/development/python-modules/servefile/default.nix
index b90ab00a4789..327a278eff93 100644
--- a/nixpkgs/pkgs/development/python-modules/servefile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/servefile/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Serve files from shell via a small HTTP server";
+    mainProgram = "servefile";
     homepage = "https://github.com/sebageek/servefile";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ samuela ];
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools-gettext/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools-gettext/default.nix
index aff7572d3f62..394f4c4693fa 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools-gettext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-gettext/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "setuptools-gettext";
-  version = "0.1.7";
+  version = "0.1.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "breezy-team";
     repo = "setuptools-gettext";
     rev = "refs/tags/v${version}";
-    hash = "sha256-R1zgE1Ai2r23bve+sKo27XkUcIAmlWSreHZNt5yh2DY=";
+    hash = "sha256-yLKn4wwGgRdlsISAT71lD2vkIefsTJRB+OEA030adZY=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools-git-versioning/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools-git-versioning/default.nix
index b280650436b4..ea287302392c 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools-git-versioning/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-git-versioning/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "setuptools-git-versioning";
-  version = "1.13.5";
+  version = "1.13.6";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "dolfinus";
     repo = "setuptools-git-versioning";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MAHB6hMAcMo1+HCc6g7xQUD2sG+TLjM/6Oa/BKuXpRc=";
+    hash = "sha256-YUIh+dK4Sj85vhvI7u15a734tbQsox5VZ2WEAB/mpgc=";
   };
 
   nativeBuildInputs = [
@@ -65,6 +65,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Use git repo data (latest tag, current commit hash, etc) for building a version number according PEP-440";
+    mainProgram = "setuptools-git-versioning";
     homepage = "https://github.com/dolfinus/setuptools-git-versioning";
     changelog = "https://github.com/dolfinus/setuptools-git-versioning/blob/${src.rev}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools-odoo/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools-odoo/default.nix
index 5a6a9ac88819..cc2e767d2520 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools-odoo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-odoo/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "setuptools-odoo";
-  version = "3.2.1";
+  version = "3.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "acsone";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-aS2a1G9lssgGk3uqWgPPWpOpEnqUkCUzWsqPLQfU55k=";
+    hash = "sha256-38YlkDH/PuJ1yvQ43OYmdnRd1SGJULv6fC/+fitLDJ8=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix
index ddfcdcb4f67b..a4aae0742824 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools-rust/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "setuptools-rust";
-  version = "1.8.1";
+  version = "1.9.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lLHdXVMIsxONW5M8OitV5taSfRoiYy5Qn86p3dD35IY=";
+    hash = "sha256-cE3wlI8uTMYMJZatboQOpnn09D5Y7UrQwYV4ByQOq5Y=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools/default.nix
index 7cacc0ca5a4d..0185f2ca24d2 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "setuptools";
-  version = "69.0.3";
+  version = "69.1.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pypa";
     repo = "setuptools";
     rev = "refs/tags/v${version}";
-    hash = "sha256-38csULki+SBcg7StScj0/09A+JZesm8iwOBjSgXyXMA=";
+    hash = "sha256-TWW8kW7ZjRsl5Y0CEVHqhIVJsiRixSSYe/ctSO1c/78=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/sfrbox-api/default.nix b/nixpkgs/pkgs/development/python-modules/sfrbox-api/default.nix
index 7d620eeda34e..c1939e70a7e4 100644
--- a/nixpkgs/pkgs/development/python-modules/sfrbox-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sfrbox-api/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for the SFR Box API";
+    mainProgram = "sfrbox-api";
     homepage = "https://github.com/hacf-fr/sfrbox-api";
     changelog = "https://github.com/hacf-fr/sfrbox-api/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/shamir-mnemonic/default.nix b/nixpkgs/pkgs/development/python-modules/shamir-mnemonic/default.nix
index 9a5d5fe57a7a..8d8a5f535b77 100644
--- a/nixpkgs/pkgs/development/python-modules/shamir-mnemonic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shamir-mnemonic/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Reference implementation of SLIP-0039";
+    mainProgram = "shamir";
     homepage = "https://github.com/trezor/python-shamir-mnemonic";
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
diff --git a/nixpkgs/pkgs/development/python-modules/shap/default.nix b/nixpkgs/pkgs/development/python-modules/shap/default.nix
index cd51a145b67e..049074cbc18d 100644
--- a/nixpkgs/pkgs/development/python-modules/shap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shap/default.nix
@@ -22,16 +22,16 @@
 , scipy
 , sentencepiece
 , setuptools
+, setuptools-scm
 , slicer
 , tqdm
 , transformers
 , xgboost
-, wheel
 }:
 
 buildPythonPackage rec {
   pname = "shap";
-  version = "0.43.0";
+  version = "0.44.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -40,13 +40,13 @@ buildPythonPackage rec {
     owner = "slundberg";
     repo = "shap";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ylkpXhaLXsQiu6YMC3pUtlicptQmtjITzW+ydinB4ls=";
+    hash = "sha256-pC201Q/i3UAuJPZw0H+giebhJKVTmmKfxhFdonmkxtI=";
   };
 
   nativeBuildInputs = [
     oldest-supported-numpy
     setuptools
-    wheel
+    setuptools-scm
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/shapely/default.nix b/nixpkgs/pkgs/development/python-modules/shapely/default.nix
index 7f87ddf6befa..3db9ce9e2af6 100644
--- a/nixpkgs/pkgs/development/python-modules/shapely/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shapely/default.nix
@@ -1,27 +1,28 @@
 { lib
 , stdenv
 , buildPythonPackage
-, pythonOlder
 , fetchPypi
+, pytestCheckHook
+, pythonOlder
+
 , cython
 , geos
+, numpy
 , oldest-supported-numpy
 , setuptools
 , wheel
-, numpy
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "shapely";
-  version = "2.0.2";
-  format = "pyproject";
+  version = "2.0.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-FxPMBMFxuv/Fslm6hTHFiswqMBcHt/Ah2IoV7QkGSec=";
+    hash = "sha256-TWXQqnkQr3Hvpy/WRH4CqOXdRNqBqYPenXNtbmzL5nQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/shaperglot/default.nix b/nixpkgs/pkgs/development/python-modules/shaperglot/default.nix
index f1ea7e5a723a..c00f66394dda 100644
--- a/nixpkgs/pkgs/development/python-modules/shaperglot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shaperglot/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "shaperglot";
-  version = "0.3.1";
+  version = "0.5.0";
 
   # PyPI source tarballs omit tests, fetch from Github instead
   src = fetchFromGitHub {
     owner = "googlefonts";
     repo = "shaperglot";
-    rev = "v${version}";
-    hash = "sha256-29MzD42rgh+7n/0kjqKGDxXPnUEvj/xxEIKWZg03pxw=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-jmYB1tsMMpFs0X/FW3z9el2nFr8De2jR1dO658w7U4Q=";
   };
 
   pyproject = true;
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool to test OpenType fonts for language support";
+    mainProgram = "shaperglot";
     homepage = "https://github.com/googlefonts/shaperglot";
     license = licenses.asl20;
     maintainers = with maintainers; [ danc86 ];
diff --git a/nixpkgs/pkgs/development/python-modules/shazamio/default.nix b/nixpkgs/pkgs/development/python-modules/shazamio/default.nix
index 7190c1e2c0ae..e96776e60b8a 100644
--- a/nixpkgs/pkgs/development/python-modules/shazamio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shazamio/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "shazamio";
-  version = "0.4.0.1";
+  version = "0.5.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "dotX12";
     repo = "ShazamIO";
-    rev = version;
-    hash = "sha256-dfrdfbGkLYNjlS6Qv9Rnywv6nqiKrNXCICLSuAXpQBU=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-nzKvEoh1DrZegoRNqOCh9Qm+7B7uQ9dEH75mVueGxZI=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/shiboken2/default.nix b/nixpkgs/pkgs/development/python-modules/shiboken2/default.nix
index 593a7b7d82ea..45eecc6faebf 100644
--- a/nixpkgs/pkgs/development/python-modules/shiboken2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shiboken2/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Generator for the PySide2 Qt bindings";
+    mainProgram = "shiboken2";
     license = with licenses; [ gpl2 lgpl21 ];
     homepage = "https://wiki.qt.io/Qt_for_Python";
     maintainers = with maintainers; [ gebner ];
diff --git a/nixpkgs/pkgs/development/python-modules/shodan/default.nix b/nixpkgs/pkgs/development/python-modules/shodan/default.nix
index 29fc4789d177..43ea7bdba8a7 100644
--- a/nixpkgs/pkgs/development/python-modules/shodan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shodan/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library and command-line utility for Shodan";
+    mainProgram = "shodan";
     homepage = "https://github.com/achillean/shodan-python";
     changelog = "https://github.com/achillean/shodan-python/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/shortuuid/default.nix b/nixpkgs/pkgs/development/python-modules/shortuuid/default.nix
index fda1e1896a50..627f0af39a75 100644
--- a/nixpkgs/pkgs/development/python-modules/shortuuid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shortuuid/default.nix
@@ -1,22 +1,27 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, poetry-core
 , pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "shortuuid";
-  version = "1.0.11";
-  format = "setuptools";
+  version = "1.0.12";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-/HXyYVkUgVqOTLFQGzpRN0XLZu8P1fxvufjD+jSB94k=";
+    hash = "sha256-w58bNIs8HpsRWpVLM7dsjFItLRd6nSCs27INJPrDzP0=";
   };
 
+  build-system = [
+    poetry-core
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
@@ -27,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to generate concise, unambiguous and URL-safe UUIDs";
+    mainProgram = "shortuuid";
     homepage = "https://github.com/stochastic-technologies/shortuuid/";
     changelog = "https://github.com/skorokithakis/shortuuid/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/show-in-file-manager/default.nix b/nixpkgs/pkgs/development/python-modules/show-in-file-manager/default.nix
index c77d547bf6f8..e48268c7ef66 100644
--- a/nixpkgs/pkgs/development/python-modules/show-in-file-manager/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/show-in-file-manager/default.nix
@@ -2,31 +2,36 @@
 , stdenv
 , buildPythonPackage
 , fetchPypi
-, pythonOlder
-, importlib-metadata
+, argparse-manpage
+, setuptools
 , packaging
 , pyxdg
 }:
 
 buildPythonPackage rec {
   pname = "show-in-file-manager";
-  version = "1.1.4";
-  format = "setuptools";
+  version = "1.1.5";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-FdFuSodbniF7A40C8CnDgAxKatZF4/c8nhB+omurOts=";
+    hash = "sha256-7ROhgKHUj9iP3UxYv7yzhgJoZBo4gFGSyBTUE4cZLYQ=";
   };
 
+  nativeBuildInputs = [
+    argparse-manpage
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     packaging
   ]
-  ++ lib.optional (stdenv.isLinux) pyxdg
-  ++ lib.optional (pythonOlder "3.8") importlib-metadata;
+  ++ lib.optional (stdenv.isLinux) pyxdg;
 
   meta = with lib; {
     homepage = "https://github.com/damonlynch/showinfilemanager";
     description = "Open the system file manager and select files in it";
+    mainProgram = "showinfilemanager";
     longDescription = ''
       Show in File Manager is a Python package to open the system file
       manager and optionally select files in it. The point is not to
diff --git a/nixpkgs/pkgs/development/python-modules/shtab/default.nix b/nixpkgs/pkgs/development/python-modules/shtab/default.nix
index 37b3e1ca4c24..7ec98fce432b 100644
--- a/nixpkgs/pkgs/development/python-modules/shtab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shtab/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "shtab";
-  version = "1.7.0";
+  version = "1.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = "shtab";
     rev = "refs/tags/v${version}";
-    hash = "sha256-b2XXDyO/2AnlxViC6sEEYUGviF6+FGXBnBcdQOuTViY=";
+    hash = "sha256-8bAwLSdJCzFw5Vf9CKBrH5zOoojeXds7aIRncl+sLBI=";
   };
 
   postPatch = ''
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for shell tab completion of Python CLI applications";
+    mainProgram = "shtab";
     homepage = "https://docs.iterative.ai/shtab/";
     changelog = "https://github.com/iterative/shtab/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/signify/default.nix b/nixpkgs/pkgs/development/python-modules/signify/default.nix
index a1924902fe8e..1c7f503d33c1 100644
--- a/nixpkgs/pkgs/development/python-modules/signify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/signify/default.nix
@@ -3,7 +3,6 @@
 , buildPythonPackage
 , certvalidator
 , fetchFromGitHub
-, fetchpatch2
 , mscerts
 , oscrypto
 , pyasn1
@@ -11,30 +10,23 @@
 , pytestCheckHook
 , pythonOlder
 , setuptools
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "signify";
-  version = "0.5.2";
+  version = "0.6.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ralphje";
     repo = "signify";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+UhZF+QYuv8pq/sTu7GDPUrlPNNixFgVZL+L0ulj/ko=";
+    hash = "sha256-29SyzqtZ1cI+1xrSPLFr63vwB5st/9i5b3FYtJn6eok=";
   };
 
-  patches = [
-    # https://github.com/ralphje/signify/pull/42
-    (fetchpatch2 {
-      url = "https://github.com/ralphje/signify/commit/38cad57bf86f7498259b47bfef1354aec27c0955.patch";
-      hash = "sha256-dLmHSlj2Cj6jbbrZStgK2Rh/H5vOaIbi5lut5RAbd+s=";
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools
   ];
@@ -46,6 +38,7 @@ buildPythonPackage rec {
     oscrypto
     pyasn1
     pyasn1-modules
+    typing-extensions
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/signxml/default.nix b/nixpkgs/pkgs/development/python-modules/signxml/default.nix
new file mode 100644
index 000000000000..c6c6ccea9b15
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/signxml/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, buildPythonPackage
+, certifi
+, cryptography
+, fetchFromGitHub
+, lxml
+, pyopenssl
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "signxml";
+  version = "3.2.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "XML-Security";
+    repo = "signxml";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-TlOIHYvx1o46nr/3qq45pgeOqmuyWaaTGvOS0Jwz1zs=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    certifi
+    cryptography
+    lxml
+    pyopenssl
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "signxml"
+  ];
+
+  pytestFlagsArray = [
+    "test/test.py"
+  ];
+
+  meta = with lib; {
+    description = "Python XML Signature and XAdES library";
+    homepage = "https://github.com/XML-Security/signxml";
+    changelog = "https://github.com/XML-Security/signxml/blob/${src.rev}/Changes.rst";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sigstore-protobuf-specs/default.nix b/nixpkgs/pkgs/development/python-modules/sigstore-protobuf-specs/default.nix
index be58c8b5f4cd..5e89670edef6 100644
--- a/nixpkgs/pkgs/development/python-modules/sigstore-protobuf-specs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sigstore-protobuf-specs/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "sigstore-protobuf-specs";
-  version = "0.2.2";
+  version = "0.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "sigstore_protobuf_specs";
     inherit version;
-    hash = "sha256-wFwedHioCvDH3qnMLRHwR4JuTAKVc9VkE394jhE3c5E=";
+    hash = "sha256-MyKttzmSvKDz3G1MLDi6wpCGoR0mMamDrbJ5jljjKlQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sigstore-rekor-types/default.nix b/nixpkgs/pkgs/development/python-modules/sigstore-rekor-types/default.nix
index a58595ed19a9..b7d96f9ed10e 100644
--- a/nixpkgs/pkgs/development/python-modules/sigstore-rekor-types/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sigstore-rekor-types/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "sigstore-rekor-types";
-  version = "0.0.11";
+  version = "0.0.12";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "trailofbits";
     repo = "sigstore-rekor-types";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oOFdRiDp9USc3A+aaPExprEO2i/RERNahiyi2kVpkns=";
+    hash = "sha256-B6u2YbtZtgjYJoWL2DfgP7LL20onNaaTTFbC6JIA4bE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sigstore/default.nix b/nixpkgs/pkgs/development/python-modules/sigstore/default.nix
index 24322a18723e..144b1daac21c 100644
--- a/nixpkgs/pkgs/development/python-modules/sigstore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sigstore/default.nix
@@ -82,6 +82,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A codesigning tool for Python packages";
+    mainProgram = "sigstore";
     homepage = "https://github.com/sigstore/sigstore-python";
     changelog = "https://github.com/sigstore/sigstore-python/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix b/nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix
index 10d5f64385a0..e42d569b45e8 100644
--- a/nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simple-salesforce/default.nix
@@ -11,12 +11,13 @@
 , requests
 , responses
 , setuptools
+, typing-extensions
 , zeep
 }:
 
 buildPythonPackage rec {
   pname = "simple-salesforce";
-  version = "1.12.5";
+  version = "1.12.6";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "simple-salesforce";
     repo = "simple-salesforce";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mj7lbBGEybsEzWo4TYmPrN3mBXItdo/JomVIYmzIDAY=";
+    hash = "sha256-nrfIyXftS2X2HuuLFRZpWLz/IbRasqUzv+r/HvhxfAw=";
   };
 
   nativeBuildInputs = [
@@ -38,6 +39,7 @@ buildPythonPackage rec {
     pendulum
     pyjwt
     requests
+    typing-extensions
     zeep
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/simple-term-menu/default.nix b/nixpkgs/pkgs/development/python-modules/simple-term-menu/default.nix
index 9f21c327da97..7a348b1f602d 100644
--- a/nixpkgs/pkgs/development/python-modules/simple-term-menu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simple-term-menu/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python package which creates simple interactive menus on the command line";
+    mainProgram = "simple-term-menu";
     homepage = "https://github.com/IngoMeyer441/simple-term-menu";
     license = licenses.mit;
     changelog = "https://github.com/IngoMeyer441/simple-term-menu/releases/tag/v${version}";
diff --git a/nixpkgs/pkgs/development/python-modules/sip/4.x.nix b/nixpkgs/pkgs/development/python-modules/sip/4.x.nix
index 879dc6cd125a..9c89a01797e7 100644
--- a/nixpkgs/pkgs/development/python-modules/sip/4.x.nix
+++ b/nixpkgs/pkgs/development/python-modules/sip/4.x.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Creates C++ bindings for Python modules";
+    mainProgram = "sip";
     homepage    = "https://riverbankcomputing.com/";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ lovek323 sander ];
diff --git a/nixpkgs/pkgs/development/python-modules/sipyco/default.nix b/nixpkgs/pkgs/development/python-modules/sipyco/default.nix
index 568134d94d15..454876d16e8b 100644
--- a/nixpkgs/pkgs/development/python-modules/sipyco/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sipyco/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Simple Python Communications - used by the ARTIQ experimental control package";
+    mainProgram = "sipyco_rpctool";
     homepage = "https://github.com/m-labs/sipyco";
     changelog = "https://github.com/m-labs/sipyco/releases/tag/v${version}";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/skein/default.nix b/nixpkgs/pkgs/development/python-modules/skein/default.nix
index d21b21542e4c..ff0884330b39 100644
--- a/nixpkgs/pkgs/development/python-modules/skein/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/skein/default.nix
@@ -54,6 +54,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://jcristharif.com/skein";
     description = "A tool and library for easily deploying applications on Apache YARN";
+    mainProgram = "skein";
     license = licenses.bsd3;
     maintainers = with maintainers; [ alexbiehl illustris ];
     # https://github.com/NixOS/nixpkgs/issues/48663#issuecomment-1083031627
diff --git a/nixpkgs/pkgs/development/python-modules/skidl/default.nix b/nixpkgs/pkgs/development/python-modules/skidl/default.nix
index 5afcc931ac54..2203dee0ca3f 100644
--- a/nixpkgs/pkgs/development/python-modules/skidl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/skidl/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module that extends Python with the ability to design electronic circuits";
+    mainProgram = "netlist_to_skidl";
     homepage = "https://xess.com/skidl/docs/_site/";
     license = licenses.mit;
     maintainers = with maintainers; [ matthuszagh ];
diff --git a/nixpkgs/pkgs/development/python-modules/skybellpy/default.nix b/nixpkgs/pkgs/development/python-modules/skybellpy/default.nix
index d09939ea853c..69837c5d6853 100644
--- a/nixpkgs/pkgs/development/python-modules/skybellpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/skybellpy/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python wrapper for the Skybell alarm API";
+    mainProgram = "skybellpy";
     homepage = "https://github.com/MisterWil/skybellpy";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/skytemple-files/default.nix b/nixpkgs/pkgs/development/python-modules/skytemple-files/default.nix
index 5e60c73de699..483e2749b5c7 100644
--- a/nixpkgs/pkgs/development/python-modules/skytemple-files/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/skytemple-files/default.nix
@@ -85,6 +85,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/SkyTemple/skytemple-files";
     description = "Python library to edit the ROM of Pokémon Mystery Dungeon Explorers of Sky";
+    mainProgram = "skytemple_export_maps";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ xfix marius851000 ];
     broken = stdenv.isDarwin; # pyobjc is missing
diff --git a/nixpkgs/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix b/nixpkgs/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix
index 5e5d0c8d7951..da873a37dc51 100644
--- a/nixpkgs/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/SkyTemple/skytemple-ssb-debugger";
     description = "Script Engine Debugger for Pokémon Mystery Dungeon Explorers of Sky";
+    mainProgram = "skytemple-ssb-debugger";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ marius851000 xfix ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/slicedimage/default.nix b/nixpkgs/pkgs/development/python-modules/slicedimage/default.nix
index eb96fb50928c..680bb0f6a5be 100644
--- a/nixpkgs/pkgs/development/python-modules/slicedimage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slicedimage/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to access sliced imaging data";
+    mainProgram = "slicedimage";
     homepage = "https://github.com/spacetx/slicedimage";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/slimit/default.nix b/nixpkgs/pkgs/development/python-modules/slimit/default.nix
index 1166db2639c4..40b4f0ca67b0 100644
--- a/nixpkgs/pkgs/development/python-modules/slimit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slimit/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "SlimIt -  a JavaScript minifier/parser in Python";
+    mainProgram = "slimit";
     homepage = "https://github.com/rspivak/slimit";
     changelog = "https://github.com/rspivak/slimit/blob/${src.rev}/CHANGES";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix b/nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix
index 42d65ebdbe00..bccc5b97f728 100644
--- a/nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slither-analyzer/default.nix
@@ -11,6 +11,8 @@
 , solc
 , web3
 , withSolc ? false
+, testers
+, slither-analyzer
 }:
 
 buildPythonPackage rec {
@@ -44,9 +46,38 @@ buildPythonPackage rec {
       --prefix PATH : "${lib.makeBinPath [ solc ]}"
   '';
 
+  # required for pythonImportsCheck
+  postInstall = ''
+    export HOME="$TEMP"
+  '';
+
+  pythonImportsCheck = [
+    "slither"
+    "slither.all_exceptions"
+    "slither.analyses"
+    "slither.core"
+    "slither.detectors"
+    "slither.exceptions"
+    "slither.formatters"
+    "slither.printers"
+    "slither.slither"
+    "slither.slithir"
+    "slither.solc_parsing"
+    "slither.utils"
+    "slither.visitors"
+    "slither.vyper_parsing"
+  ];
+
   # No Python tests
   doCheck = false;
 
+  passthru.tests = {
+    version = testers.testVersion {
+      package = slither-analyzer;
+      command = "HOME=$TMPDIR slither --version";
+    };
+  };
+
   meta = with lib; {
     description = "Static Analyzer for Solidity";
     longDescription = ''
@@ -57,6 +88,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/trailofbits/slither";
     changelog = "https://github.com/crytic/slither/releases/tag/${version}";
     license = licenses.agpl3Plus;
+    mainProgram = "slither";
     maintainers = with maintainers; [ arturcygan fab hellwolf ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/slob/default.nix b/nixpkgs/pkgs/development/python-modules/slob/default.nix
index a615192aa7be..38b0c9d92bfd 100644
--- a/nixpkgs/pkgs/development/python-modules/slob/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/slob/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage {
   meta = with lib; {
     homepage = "https://github.com/itkach/slob/";
     description = "Reference implementation of the slob (sorted list of blobs) format";
+    mainProgram = "slob";
     license = licenses.gpl3Only;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/smart-open/default.nix b/nixpkgs/pkgs/development/python-modules/smart-open/default.nix
index df0cbdc8a01c..53aa2d76f6aa 100644
--- a/nixpkgs/pkgs/development/python-modules/smart-open/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/smart-open/default.nix
@@ -12,23 +12,34 @@
 , paramiko
 , pytestCheckHook
 , responses
+, setuptools
+, wrapt
+, zstandard
 }:
 
 buildPythonPackage rec {
   pname = "smart-open";
-  version = "6.4.0";
-  format = "setuptools";
+  version = "7.0.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "RaRe-Technologies";
     repo = "smart_open";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fciNaVw603FAcgrSrND+LEycJffmnFQij2ZpatYZ/e4=";
+    hash = "sha256-yGy4xNoHCE+LclBBTMVtTKP6GYZ5w09NJ0OmsUPnir4=";
   };
 
-  passthru.optional-dependencies = {
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    wrapt
+  ];
+
+  optional-dependencies = {
     s3 = [
       boto3
     ];
@@ -49,6 +60,9 @@ buildPythonPackage rec {
     ssh = [
       paramiko
     ];
+    zst = [
+      zstandard
+    ];
   };
 
   pythonImportsCheck = [
@@ -59,7 +73,7 @@ buildPythonPackage rec {
     moto
     pytestCheckHook
     responses
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (builtins.attrValues optional-dependencies);
 
   pytestFlagsArray = [
     "smart_open"
diff --git a/nixpkgs/pkgs/development/python-modules/smartypants/default.nix b/nixpkgs/pkgs/development/python-modules/smartypants/default.nix
index d2ca5f297322..3d0fd5ba6e2c 100644
--- a/nixpkgs/pkgs/development/python-modules/smartypants/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/smartypants/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python with the SmartyPants";
+    mainProgram = "smartypants";
     homepage = "https://github.com/leohemsted/smartypants.py";
     license = licenses.bsd3;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/snakebite/default.nix b/nixpkgs/pkgs/development/python-modules/snakebite/default.nix
index 898ba52a4eee..a5a1addf81b0 100644
--- a/nixpkgs/pkgs/development/python-modules/snakebite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snakebite/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Pure Python HDFS client";
+    mainProgram = "snakebite";
     homepage = "https://github.com/spotify/snakebite";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/snakeviz/default.nix b/nixpkgs/pkgs/development/python-modules/snakeviz/default.nix
index 1b8c1c81183b..6e3cc6244799 100644
--- a/nixpkgs/pkgs/development/python-modules/snakeviz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snakeviz/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Browser based viewer for profiling data";
+    mainProgram = "snakeviz";
     homepage = "https://jiffyclub.github.io/snakeviz";
     changelog = "https://github.com/jiffyclub/snakeviz/blob/v${version}/CHANGES.rst";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/snapcast/default.nix b/nixpkgs/pkgs/development/python-modules/snapcast/default.nix
index 0fa0e03b030b..89a2b814bedb 100644
--- a/nixpkgs/pkgs/development/python-modules/snapcast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snapcast/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "snapcast";
-  version = "2.3.5";
+  version = "2.3.6";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "happyleavesaoc";
     repo = "python-snapcast";
     rev = "refs/tags/${version}";
-    hash = "sha256-5TbwenEe3vMJovwKYfkvkXMRex0KgaXpsd4iCEk7uWE=";
+    hash = "sha256-gn+X0DZnox4mkJwDVgwNXae63iGbiqPIO15UV5pDwuY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sniffio/default.nix b/nixpkgs/pkgs/development/python-modules/sniffio/default.nix
index b16cebd557d8..9496f0cb081e 100644
--- a/nixpkgs/pkgs/development/python-modules/sniffio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sniffio/default.nix
@@ -1,24 +1,30 @@
 { buildPythonPackage
 , lib
 , fetchPypi
+, setuptools
+, setuptools-scm
 , glibcLocales
 , isPy3k
-, pythonOlder
 , pytestCheckHook
 , curio
 }:
 
 buildPythonPackage rec {
   pname = "sniffio";
-  version = "1.3.0";
-  format = "setuptools";
+  version = "1.3.1";
+  pyproject = true;
+
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-5gMFxeXTFPU4klm38iqqM9j33uSXYxGSNK83VcVbkQE=";
+    hash = "sha256-9DJO3GcKD0l1CoG4lfNcOtuEPMpG8FMPefwbq7I3idw=";
   };
 
-  disabled = !isPy3k;
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
 
   buildInputs = [
     glibcLocales
diff --git a/nixpkgs/pkgs/development/python-modules/snitun/default.nix b/nixpkgs/pkgs/development/python-modules/snitun/default.nix
index b0fe11d9f9bb..10df69781826 100644
--- a/nixpkgs/pkgs/development/python-modules/snitun/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snitun/default.nix
@@ -41,7 +41,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = lib.optionals stdenv.isDarwin [
+  disabledTests = [
+    # AssertionError: Expected 'fileno' to not have been called. Called 1 times.
+    "test_client_stop_no_wait"
+  ] ++ lib.optionals stdenv.isDarwin [
     "test_multiplexer_data_channel_abort_full" # https://github.com/NabuCasa/snitun/issues/61
     # port binding conflicts
     "test_snitun_single_runner_timeout"
diff --git a/nixpkgs/pkgs/development/python-modules/snscrape/default.nix b/nixpkgs/pkgs/development/python-modules/snscrape/default.nix
index cb39e27373a7..e834fc3226ff 100644
--- a/nixpkgs/pkgs/development/python-modules/snscrape/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snscrape/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A social networking service scraper";
+    mainProgram = "snscrape";
     homepage = "https://github.com/JustAnotherArchivist/snscrape";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ivan ];
diff --git a/nixpkgs/pkgs/development/python-modules/socialscan/default.nix b/nixpkgs/pkgs/development/python-modules/socialscan/default.nix
index 7a6cc52e3514..430cc1f5a725 100644
--- a/nixpkgs/pkgs/development/python-modules/socialscan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/socialscan/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library and CLI for accurately querying username and email usage on online platforms";
+    mainProgram = "socialscan";
     homepage = "https://github.com/iojw/socialscan";
     changelog = "https://github.com/iojw/socialscan/releases/tag/v${version}";
     license = with licenses; [ mpl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/socid-extractor/default.nix b/nixpkgs/pkgs/development/python-modules/socid-extractor/default.nix
index 2c163aa7b34b..6346d808127b 100644
--- a/nixpkgs/pkgs/development/python-modules/socid-extractor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/socid-extractor/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to extract details from personal pages";
+    mainProgram = "socid_extractor";
     homepage = "https://github.com/soxoj/socid-extractor";
     changelog = "https://github.com/soxoj/socid-extractor/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ gpl3Only ];
diff --git a/nixpkgs/pkgs/development/python-modules/socksipy-branch/default.nix b/nixpkgs/pkgs/development/python-modules/socksipy-branch/default.nix
index abfee3718b53..e9266bb27fe6 100644
--- a/nixpkgs/pkgs/development/python-modules/socksipy-branch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/socksipy-branch/default.nix
@@ -4,11 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "SocksiPy-branch";
+  pname = "socksipy-branch";
   version = "1.01";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "SocksiPy-branch";
+    inherit version;
     sha256 = "01l41v4g7fy9fzvinmjxy6zcbhgqaif8dhdqm4w90fwcw9h51a8p";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/somajo/default.nix b/nixpkgs/pkgs/development/python-modules/somajo/default.nix
index 02c716e0142a..2401bb9264a8 100644
--- a/nixpkgs/pkgs/development/python-modules/somajo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/somajo/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tokenizer and sentence splitter for German and English web texts";
+    mainProgram = "somajo-tokenizer";
     homepage = "https://github.com/tsproisl/SoMaJo";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/soundcloud-v2/default.nix b/nixpkgs/pkgs/development/python-modules/soundcloud-v2/default.nix
index 573d1a108027..a5c6a4faa5d3 100644
--- a/nixpkgs/pkgs/development/python-modules/soundcloud-v2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/soundcloud-v2/default.nix
@@ -3,19 +3,27 @@
 , fetchPypi
 , dacite
 , python-dateutil
+, pythonOlder
 , requests
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "soundcloud-v2";
-  version = "1.3.1";
-  format = "setuptools";
+  version = "1.3.7";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9a9c12aa22e71566e2ca6015267cabc1856afd79fa458f0fc43c44872c184741";
+    sha256 = "sha256-DiaCnIEXKSxyE4+MCq0KwdKWUGfWO3LAVwsMNEkOmqc=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     dacite
     python-dateutil
diff --git a/nixpkgs/pkgs/development/python-modules/sourmash/default.nix b/nixpkgs/pkgs/development/python-modules/sourmash/default.nix
index ac879c12886a..2a9dc470f145 100644
--- a/nixpkgs/pkgs/development/python-modules/sourmash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sourmash/default.nix
@@ -70,6 +70,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Quickly search, compare, and analyze genomic and metagenomic data sets";
+    mainProgram = "sourmash";
     homepage = "https://sourmash.bio";
     changelog = "https://github.com/sourmash-bio/sourmash/releases/tag/v${version}";
     maintainers = with maintainers; [ luizirber ];
diff --git a/nixpkgs/pkgs/development/python-modules/soxr/default.nix b/nixpkgs/pkgs/development/python-modules/soxr/default.nix
index b5d01a5ddbb2..b000900d3a7b 100644
--- a/nixpkgs/pkgs/development/python-modules/soxr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/soxr/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "soxr";
-  version = "0.3.6";
+  version = "0.3.7";
   format = "pyproject";
 
   src = fetchFromGitHub {
@@ -27,9 +27,14 @@ buildPythonPackage rec {
     repo = "python-soxr";
     rev = "refs/tags/v${version}";
     fetchSubmodules = true;
-    hash = "sha256-H2sueQq32o/9EHENANKVoiWlFoSF88P0LZ7DfEh/Esg=";
+    hash = "sha256-HGtoMfMQ5/2iEIFtik7mCrSxFnLXkSSx2W8wBul0+jk=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "SYS_LIBSOXR = False" "SYS_LIBSOXR = True"
+  '';
+
   nativeBuildInputs = [
     cython_3
     gnutar
@@ -39,6 +44,10 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
+  buildInputs = [
+    libsoxr
+  ];
+
   pythonImportsCheck = [
     "soxr"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/default.nix b/nixpkgs/pkgs/development/python-modules/spacy/default.nix
index 3fb467475fb7..1055f45f55b7 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spacy/default.nix
@@ -129,6 +129,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Industrial-strength Natural Language Processing (NLP)";
+    mainProgram = "spacy";
     homepage = "https://github.com/explosion/spaCy";
     changelog = "https://github.com/explosion/spaCy/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/spark-parser/default.nix b/nixpkgs/pkgs/development/python-modules/spark-parser/default.nix
index 2dabd3cc1003..690d9a295de4 100644
--- a/nixpkgs/pkgs/development/python-modules/spark-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spark-parser/default.nix
@@ -21,6 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "An Early-Algorithm Context-free grammar Parser";
+    mainProgram = "spark-parser-coverage";
     homepage = "https://github.com/rocky/python-spark";
     license = licenses.mit;
     maintainers = with maintainers; [raskin];
diff --git a/nixpkgs/pkgs/development/python-modules/sparklines/default.nix b/nixpkgs/pkgs/development/python-modules/sparklines/default.nix
index a41b8af8418d..d5d4e3312793 100644
--- a/nixpkgs/pkgs/development/python-modules/sparklines/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sparklines/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "This Python package implements Edward Tufte's concept of sparklines, but limited to text only";
+    mainProgram = "sparklines";
     homepage = "https://github.com/deeplook/sparklines";
     maintainers = with maintainers; [ rhoriguchi ];
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/sparqlwrapper/default.nix b/nixpkgs/pkgs/development/python-modules/sparqlwrapper/default.nix
index f3b85e5b0bec..1abea197499d 100644
--- a/nixpkgs/pkgs/development/python-modules/sparqlwrapper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sparqlwrapper/default.nix
@@ -27,6 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "This is a wrapper around a SPARQL service. It helps in creating the query URI and, possibly, convert the result into a more manageable format";
+    mainProgram = "rqw";
     homepage = "http://rdflib.github.io/sparqlwrapper";
     license = licenses.w3c;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/sparse/default.nix b/nixpkgs/pkgs/development/python-modules/sparse/default.nix
index 9b02a1c222f4..1ecf340e975e 100644
--- a/nixpkgs/pkgs/development/python-modules/sparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sparse/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , dask
-, fetchpatch
 , fetchPypi
 , numba
 , numpy
@@ -12,25 +11,16 @@
 
 buildPythonPackage rec {
   pname = "sparse";
-  version = "0.14.0";
+  version = "0.15.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-X1gno39s1vZzClQfmUyVxgo64jKeAfS6Ic7VM5rqAJg=";
+    hash = "sha256-lzrcuIqNuOPYBHlTMx4m0/ZKVlf5tGprhZxHZjw+75k=";
   };
 
-  patches = [
-    # https://github.com/pydata/sparse/issues/594
-    (fetchpatch {
-      name = "fix-test.patch";
-      url = "https://github.com/pydata/sparse/commit/a55651d630efaea6fd2758d083c6d02333b0eebe.patch";
-      hash = "sha256-Vrx7MDlKtA8fOuFZenEkvgA70Hzm+p/4SPZuCvwtLuo=";
-    })
-  ];
-
   propagatedBuildInputs = [
     numba
     numpy
diff --git a/nixpkgs/pkgs/development/python-modules/speechrecognition/default.nix b/nixpkgs/pkgs/development/python-modules/speechrecognition/default.nix
new file mode 100644
index 000000000000..4e50e8260a0f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/speechrecognition/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, pytestCheckHook
+, pythonOlder
+, torch
+, requests
+, setuptools
+, soundfile
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "speechrecognition";
+  version = "3.10.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "Uberi";
+    repo = "speech_recognition";
+    rev = "refs/tags/${version}";
+    hash = "sha256-lO1CW4j5aBnPtemNGsW8cytSa/H+Tb4Jpbfh4Z/0WHk=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    requests
+    typing-extensions
+  ];
+
+  nativeCheckInputs = [
+    numpy
+    pytestCheckHook
+    torch
+    soundfile
+  ];
+
+  pythonImportsCheck = [
+    "speech_recognition"
+  ];
+
+  disabledTests = [
+    # Test files are missing in source
+    "test_flac"
+    # Attribute error
+    "test_whisper"
+    # PocketSphinx is not available in Nixpkgs
+    "test_sphinx"
+  ];
+
+  meta = with lib; {
+    description = "Speech recognition module for Python, supporting several engines and APIs, online and offline";
+    homepage = "https://github.com/Uberi/speech_recognition";
+    license = with licenses; [ gpl2Only bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/spglib/default.nix b/nixpkgs/pkgs/development/python-modules/spglib/default.nix
index b7d172c93cfd..2939ab51989c 100644
--- a/nixpkgs/pkgs/development/python-modules/spglib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spglib/default.nix
@@ -8,6 +8,7 @@
 , pathspec
 , ninja
 , pyproject-metadata
+, setuptools-scm
 
 # dependencies
 , numpy
@@ -19,12 +20,12 @@
 
 buildPythonPackage rec {
   pname = "spglib";
-  version = "2.2.0";
+  version = "2.3.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Snxx9q24YMvhSs39bKQ9zSns2a7T84wCzXbagP+l0Bw=";
+    hash = "sha256-c24l7GfCIMsg+rcBfE/mOC7t7iIwdtV/QEc0KxvGjOM=";
   };
 
   nativeBuildInputs = [
@@ -33,6 +34,7 @@ buildPythonPackage rec {
     pathspec
     ninja
     pyproject-metadata
+    setuptools-scm
   ];
 
   dontUseCmakeConfigure = true;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix
index d090d2b8b56a..d4ad4cedab8c 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx-autobuild/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, flit-core
 , colorama
 , sphinx
 , livereload
@@ -8,15 +9,20 @@
 
 buildPythonPackage rec {
   pname = "sphinx-autobuild";
-  version = "2021.3.14";
-  format = "setuptools";
+  version = "2024.2.4";
+  pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "de1ca3b66e271d2b5b5140c35034c89e47f263f2cd5db302c9217065f7443f05";
+    pname = "sphinx_autobuild";
+    inherit version;
+    hash = "sha256-y50hIaF21i1FRxYkhyr8X613Va1mJzir5ADs9KeVQwM=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    flit-core
+  ];
+
+  dependencies = [
     colorama
     sphinx
     livereload
@@ -29,7 +35,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Rebuild Sphinx documentation on changes, with live-reload in the browser";
-    homepage = "https://github.com/executablebooks/sphinx-autobuild";
+    mainProgram = "sphinx-autobuild";
+    homepage = "https://github.com/sphinx-doc/sphinx-autobuild";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [holgerpeters];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx-autodoc-typehints/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx-autodoc-typehints/default.nix
index 7fff4b80debd..e5bba673e4ce 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx-autodoc-typehints/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx-autodoc-typehints/default.nix
@@ -10,7 +10,7 @@
 
 let
   pname = "sphinx-autodoc-typehints";
-  version = "1.25.2";
+  version = "2.0.0";
 in
 
 buildPythonPackage {
@@ -22,7 +22,7 @@ buildPythonPackage {
   src = fetchPypi {
     pname = "sphinx_autodoc_typehints";
     inherit version;
-    hash = "sha256-PKvCU34XmJsvkuZKOZQlxMi/Vh7XPwh7x0FKUANhalA=";
+    hash = "sha256-fyzawucP2Xh5Jrbp5UHNTe0eg40rRv2iobsKdexbfzo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx-automodapi/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx-automodapi/default.nix
index bc74fae5491e..e8e888204113 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx-automodapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx-automodapi/default.nix
@@ -14,15 +14,15 @@
 
 buildPythonPackage rec {
   pname = "sphinx-automodapi";
-  version = "0.16.0";
+  version = "0.17.0";
   pyproject = true;
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "astropy";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-ecOwBtJBkGsBShMG5fK22V1EHLe6pCmOdHPrS/k6rno=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-Suu81pWUIwIgp/iTaYambuYRTkC7njP6n5RWZscugnk=";
     leaveDotGit = true;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx-external-toc/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx-external-toc/default.nix
index 9812768a5de8..724877795f3e 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx-external-toc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx-external-toc/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A sphinx extension that allows the site-map to be defined in a single YAML file";
+    mainProgram = "sphinx-etoc";
     homepage = "https://github.com/executablebooks/sphinx-external-toc";
     changelog = "https://github.com/executablebooks/sphinx-external-toc/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx-serve/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx-serve/default.nix
index 1f1c7b0e071d..729118dd5096 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx-serve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx-serve/default.nix
@@ -19,6 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Spawns a simple HTTP server to preview your sphinx documents";
+    mainProgram = "sphinx-serve";
     homepage = "https://github.com/tlatsas/sphinx-serve";
     maintainers = with maintainers; [ FlorianFranzen ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinx/default.nix b/nixpkgs/pkgs/development/python-modules/sphinx/default.nix
index ddf9237918af..56c626d4591d 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinx/default.nix
@@ -31,6 +31,7 @@
 , filelock
 , html5lib
 , pytestCheckHook
+, pytest-xdist
 }:
 
 buildPythonPackage rec {
@@ -86,6 +87,7 @@ buildPythonPackage rec {
     filelock
     html5lib
     pytestCheckHook
+    pytest-xdist
   ];
 
   preCheck = ''
@@ -100,6 +102,12 @@ buildPythonPackage rec {
     "test_check_link_response_only"
     "test_anchors_ignored_for_url"
     "test_autodoc_default_options"
+    # racy with pytest-xdist
+    "test_domain_cpp_build_semicolon"
+    "test_class_alias"
+    "test_class_alias_having_doccomment"
+    "test_class_alias_for_imported_object_having_doccomment"
+    "test_decorators"
   ] ++ lib.optionals isPyPy [
     # PyPy has not __builtins__ which get asserted
     # https://doc.pypy.org/en/latest/cpython_differences.html#miscellaneous
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
index 8a47fc39c5d7..b5b52c92912e 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-applehelp";
-  version = "1.0.7";
+  version = "1.0.8";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "sphinxcontrib_applehelp";
     inherit version;
-    hash = "sha256-Of3I12LTOwGn2PAmo7fXFWPqO3J4fV8ArYRlvZ1t+/o=";
+    hash = "sha256-xApPlvN3bEOT2TNBIFOWL6wrhPTJmnmCukLglXanBhk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
index 6b282371f22b..4db4049a378b 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Confluence builder for sphinx";
+    mainProgram = "sphinx-build-confluence";
     homepage = "https://github.com/sphinx-contrib/confluencebuilder";
     license = licenses.bsd1;
     maintainers = with maintainers; [ graysonhead ];
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
index 8d326fe1e0f9..5e37386e5510 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-devhelp";
-  version = "1.0.5";
+  version = "1.0.6";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "sphinxcontrib_devhelp";
     inherit version;
-    hash = "sha256-Y7QeDTggfKQOu+q89NjlH3bAPnjNYavhGM9ENcc9QhI=";
+    hash = "sha256-mJP9P5BQa8S5e9uXfOuPvYI5ifQxayjDhB7BKFRDctM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
index 5a6b90fd3454..c49e3c49da31 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-htmlhelp";
-  version = "2.0.4";
+  version = "2.0.5";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "sphinxcontrib_htmlhelp";
     inherit version;
-    hash = "sha256-bCahGKBbdgAHOEKbckoFaNveW3I5GmiFd9oI8RiRCSo=";
+    hash = "sha256-Dch2N9XeU91e7DpqAXU7HM+ZSUvXVqr+zXS0+p5ykBU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
index 3cba5c5011da..6cfc2dc3d4c6 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-openapi";
-  version = "0.8.3";
+  version = "0.8.4";
   format = "setuptools";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nGIRdUC1J2AGrHrUrzRpbQKvJ4r6KZcSdAw2gKmp3mw=";
+    hash = "sha256-34g4CKW15LQROtaXGFxDo/Qt89znBFOveLpwdpB+miA=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix
index f99d32ec7e21..6e0b7802d03a 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-plantuml";
-  version = "0.28";
+  version = "0.29";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zpNirT1LvMTDDf38MIqsrSwHs0RjUxZoGnESabjgC+o=";
+    hash = "sha256-l6Tyomr5HbiHcMz4o7LgMwW82n7EGn+Wn8jLJ7hKPEQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
index e098f7c919bd..607060e2931d 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-qthelp";
-  version = "1.0.6";
+  version = "1.0.7";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "sphinxcontrib_qthelp";
     inherit version;
-    hash = "sha256-YrnRoYarf17jNW2Qb2SMrLemvblNIB7nrfJttVCSmC0=";
+    hash = "sha256-BT3tw4gjqApyCagIYLFrci6eAgnjL+qYyQ5OZiRYjtY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
index 0f06dce774c5..c2f09769d1ac 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-serializinghtml";
-  version = "1.1.9";
+  version = "1.1.10";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "sphinxcontrib_serializinghtml";
     inherit version;
-    hash = "sha256-DGT/iYM54frCmr0r9fEQePPsQTz+nARtMSDXymVTC1Q=";
+    hash = "sha256-k/P13EWLkbGS/hDDl+Mk8mLPFj158ygsFY6ENqLEUR8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
index fec28e068154..7371d8abdea8 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-websupport";
-  version = "1.2.6";
+  version = "1.2.7";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "sphinxcontrib_websupport";
     inherit version;
-    hash = "sha256-1ZK+jhEmG7vGRmjyWO/E/ULJOrYXQRFDtSRf4wxjPYw=";
+    hash = "sha256-4yKALr/V/nk2jv2GSuuHsGNWauYZEdzLJxTiikXtdWE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/spyder/default.nix b/nixpkgs/pkgs/development/python-modules/spyder/default.nix
index 47010b63a7c1..fb28f0bf6207 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder/default.nix
@@ -41,14 +41,14 @@
 
 buildPythonPackage rec {
   pname = "spyder";
-  version = "5.5.1";
+  version = "5.5.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+z8Jj0eA/mYH1r8ZQUyYUFMk7h1mBxjoTD5YZk0cH0k=";
+    hash = "sha256-i3OEKbiELfEmgff3EQfr6xGc74f1kMx1e+PbbXprkis=";
   };
 
   patches = [
@@ -123,6 +123,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Scientific python development environment";
+    mainProgram = "spyder";
     longDescription = ''
       Spyder (previously known as Pydee) is a powerful interactive development
       environment for the Python language with advanced editing, interactive
diff --git a/nixpkgs/pkgs/development/python-modules/spython/default.nix b/nixpkgs/pkgs/development/python-modules/spython/default.nix
index e5a2fdf161c8..4339a3ccfec2 100644
--- a/nixpkgs/pkgs/development/python-modules/spython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spython/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Streamlined singularity python client (spython) for singularity";
+    mainProgram = "spython";
     homepage = "https://github.com/singularityhub/singularity-cli";
     changelog = "https://github.com/singularityhub/singularity-cli/blob/${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/python-modules/sqlalchemy-continuum/default.nix b/nixpkgs/pkgs/development/python-modules/sqlalchemy-continuum/default.nix
index fa0d3ad6cade..7801b029e1f2 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlalchemy-continuum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlalchemy-continuum/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "sqlalchemy-continuum";
-  version = "1.4.0";
+  version = "1.4.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "SQLAlchemy-Continuum";
     inherit version;
-    hash = "sha256-Rk+aWxBjUrXuRPE5MSyzWMWS0l7qrjU3wOrHLC+vteU=";
+    hash = "sha256-4BZGzfv9azGiGwrrprv/ZhJY1b6Ed8dQDKs6HHSEjm4=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix b/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix
index 565ab218dd91..0d3ac845f608 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -40,7 +40,7 @@
 
 buildPythonPackage rec {
   pname = "SQLAlchemy";
-  version = "2.0.27";
+  version = "2.0.28";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -49,7 +49,7 @@ buildPythonPackage rec {
     owner = "sqlalchemy";
     repo = "sqlalchemy";
     rev = "refs/tags/rel_${lib.replaceStrings [ "." ] [ "_" ] version}";
-    hash = "sha256-6R+A7rVq1olRXj1wMolHhEq418bpr5rsmH8RjxajmmQ=";
+    hash = "sha256-Xl3w9v97tyOpL4vUYzlovGrUGIZtIZsAhbE5/FhqFiM=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix b/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix
index c103599b8b26..cd93626f08eb 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlite-utils/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python CLI utility and library for manipulating SQLite databases";
+    mainProgram = "sqlite-utils";
     homepage = "https://github.com/simonw/sqlite-utils";
     changelog = "https://github.com/simonw/sqlite-utils/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/sqlmap/default.nix b/nixpkgs/pkgs/development/python-modules/sqlmap/default.nix
index 8c4e09082622..0bb9375ebe44 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlmap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlmap/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Automatic SQL injection and database takeover tool";
+    mainProgram = "sqlmap";
     homepage = "https://sqlmap.org";
     changelog = "https://github.com/sqlmapproject/sqlmap/releases/tag/${version}";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/sqlparse/default.nix b/nixpkgs/pkgs/development/python-modules/sqlparse/default.nix
index 795647098caf..c0afa5eeb7c1 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlparse/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Non-validating SQL parser for Python";
+    mainProgram = "sqlformat";
     longDescription = ''
       Provides support for parsing, splitting and formatting SQL statements.
     '';
diff --git a/nixpkgs/pkgs/development/python-modules/sre-yield/default.nix b/nixpkgs/pkgs/development/python-modules/sre-yield/default.nix
index 33b64d38d629..68d8c43ebb13 100644
--- a/nixpkgs/pkgs/development/python-modules/sre-yield/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sre-yield/default.nix
@@ -27,6 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library to efficiently generate all values that can match a given regular expression";
+    mainProgram = "demo_sre_yield";
     homepage = "https://github.com/sre-yield/sre-yield";
     license = licenses.asl20;
     maintainers = with maintainers; [ danc86 ];
diff --git a/nixpkgs/pkgs/development/python-modules/srptools/default.nix b/nixpkgs/pkgs/development/python-modules/srptools/default.nix
index 9c80f4dbc90b..801980b9214d 100644
--- a/nixpkgs/pkgs/development/python-modules/srptools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/srptools/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to implement Secure Remote Password (SRP) authentication";
+    mainProgram = "srptools";
     homepage = "https://github.com/idlesign/srptools";
     changelog = "https://github.com/idlesign/srptools/blob/v${version}/CHANGELOG";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/ssdp/default.nix b/nixpkgs/pkgs/development/python-modules/ssdp/default.nix
index cc7c4e5667df..87e4181c9b63 100644
--- a/nixpkgs/pkgs/development/python-modules/ssdp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ssdp/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python asyncio library for Simple Service Discovery Protocol (SSDP)";
+    mainProgram = "ssdp";
     homepage = "https://github.com/codingjoe/ssdp";
     changelog = "https://github.com/codingjoe/ssdp/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/sshfs/default.nix b/nixpkgs/pkgs/development/python-modules/sshfs/default.nix
index c9550c57715b..37eb7a94e11f 100644
--- a/nixpkgs/pkgs/development/python-modules/sshfs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sshfs/default.nix
@@ -15,11 +15,11 @@
 buildPythonPackage rec {
   pname = "sshfs";
   version = "2023.10.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "fsspec";
-    repo = pname;
+    repo = "sshfs";
     rev = "refs/tags/${version}";
     hash = "sha256-6MueDHR+jZFDZg4zufEVhBtSwcgDd7KnW9gJp2hDu0A=";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/sshtunnel/default.nix b/nixpkgs/pkgs/development/python-modules/sshtunnel/default.nix
index 905ecc9258f0..dff398addf8a 100644
--- a/nixpkgs/pkgs/development/python-modules/sshtunnel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sshtunnel/default.nix
@@ -27,6 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Pure python SSH tunnels";
+    mainProgram = "sshtunnel";
     homepage = "https://github.com/pahaz/sshtunnel";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
diff --git a/nixpkgs/pkgs/development/python-modules/starlette/default.nix b/nixpkgs/pkgs/development/python-modules/starlette/default.nix
index 4f248044cc7f..6ea82d9b02a2 100644
--- a/nixpkgs/pkgs/development/python-modules/starlette/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/starlette/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchPypi
 
 # build-system
 , hatchling
@@ -17,6 +18,7 @@
 , httpx
 
 # tests
+, pytest
 , pytestCheckHook
 , pythonOlder
 , trio
@@ -27,16 +29,16 @@
 
 buildPythonPackage rec {
   pname = "starlette";
-  version = "0.35.1";
+  version = "0.37.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "encode";
-    repo = pname;
+    repo = "starlette";
     rev = "refs/tags/${version}";
-    hash = "sha256-ynT1KowVJ1QdKLSOXYWVe5Q/PrYEWQDUbj395ebfk6Y=";
+    hash = "sha256-SJdBss1WKC30oulVTYUwUAJ8WM0KF5xbn/gvV97WM2g=";
   };
 
   nativeBuildInputs = [
@@ -58,7 +60,18 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    pytestCheckHook
+    (pytestCheckHook.override {
+      # pytest 8 changes warning message
+      # see https://github.com/encode/starlette/commit/8da52c2243b8855426c40c16ae24b27734824078
+      pytest = pytest.overridePythonAttrs (old: rec {
+        version = "8.1.0";
+        src = fetchPypi {
+          pname = "pytest";
+          inherit version;
+          hash = "sha256-+PoEq4+Y0YUROuYOptecIvgUOxS8HK7O1EoKuESSgyM=";
+        };
+      });
+    })
     trio
     typing-extensions
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
@@ -77,7 +90,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    changelog = "https://github.com/encode/starlette/releases/tag/${version}";
+    changelog = "https://www.starlette.io/release-notes/#${lib.replaceStrings [ "." ] [ "" ] version}";
     downloadPage = "https://github.com/encode/starlette";
     homepage = "https://www.starlette.io/";
     description = "The little ASGI framework that shines";
diff --git a/nixpkgs/pkgs/development/python-modules/static3/default.nix b/nixpkgs/pkgs/development/python-modules/static3/default.nix
index 9156ea6d6089..cf0c6c8e30f4 100644
--- a/nixpkgs/pkgs/development/python-modules/static3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/static3/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/rmohr/static3/releases/tag/v${version}";
     description = "A really simple WSGI way to serve static (or mixed) content";
+    mainProgram = "static";
     homepage = "https://github.com/rmohr/static3";
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/development/python-modules/staticjinja/default.nix b/nixpkgs/pkgs/development/python-modules/staticjinja/default.nix
index 54a93398e1ff..a0e6659d0d25 100644
--- a/nixpkgs/pkgs/development/python-modules/staticjinja/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/staticjinja/default.nix
@@ -61,6 +61,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A library and cli tool that makes it easy to build static sites using Jinja2";
+    mainProgram = "staticjinja";
     homepage = "https://staticjinja.readthedocs.io/en/latest/";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
diff --git a/nixpkgs/pkgs/development/python-modules/statmake/default.nix b/nixpkgs/pkgs/development/python-modules/statmake/default.nix
index 6ddd9830bedc..0970b8f882dc 100644
--- a/nixpkgs/pkgs/development/python-modules/statmake/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/statmake/default.nix
@@ -62,6 +62,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Applies STAT information from a Stylespace to a variable font";
+    mainProgram = "statmake";
     homepage = "https://github.com/daltonmaag/statmake";
     changelog = "https://github.com/daltonmaag/statmake/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/statsmodels/default.nix b/nixpkgs/pkgs/development/python-modules/statsmodels/default.nix
index 7df922863174..bab094f39eef 100644
--- a/nixpkgs/pkgs/development/python-modules/statsmodels/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/statsmodels/default.nix
@@ -1,53 +1,47 @@
 { lib
 , buildPythonPackage
 , cython
-, fetchpatch
 , fetchPypi
-, matplotlib
 , numpy
 , oldest-supported-numpy
+, packaging
 , pandas
 , patsy
+, pythonAtLeast
 , pythonOlder
 , scipy
+, setuptools
 , setuptools-scm
-, wheel
 }:
 
 buildPythonPackage rec {
   pname = "statsmodels";
-  version = "0.14.0";
-  format = "pyproject";
+  version = "0.14.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aHXH1onpZtlI8V64FqtWFvSShwaxgM9HD9WQerb2R6Q=";
+    hash = "sha256-ImDv3B74nznGcKC9gVGx0IQ1Z3gbyv7GzaBTTrR6lPY=";
   };
 
-  patches = [
-    # https://github.com/statsmodels/statsmodels/pull/8969
-    (fetchpatch {
-      name = "unpin-setuptools-scm.patch";
-      url = "https://github.com/statsmodels/statsmodels/commit/cfad8d81166e9b1392ba99763b95983afdb6d61b.patch";
-      hash = "sha256-l7cQHodkPm399a+3qIVmXPk/Ca+CqJDyWXWgjb062nM=";
-    })
-  ];
-
-  nativeBuildInputs = [
+  build-system = [
     cython
     oldest-supported-numpy
+    scipy
+    setuptools
     setuptools-scm
-    wheel
+  ] ++ lib.optionals (pythonAtLeast "3.12") [
+    numpy
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     numpy
-    scipy
+    packaging
     pandas
     patsy
-    matplotlib
+    scipy
   ];
 
   # Huge test suites with several test failures
diff --git a/nixpkgs/pkgs/development/python-modules/std-uritemplate/default.nix b/nixpkgs/pkgs/development/python-modules/std-uritemplate/default.nix
index e11e26acc286..bc265fea72a3 100644
--- a/nixpkgs/pkgs/development/python-modules/std-uritemplate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/std-uritemplate/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "std-uritemplate";
-  version = "0.0.54";
+  version = "0.0.55";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "std_uritemplate";
     inherit version;
-    hash = "sha256-FVKnB3v/T7eV6IQkaKQ8CFumIMc3PPlAgNOFNohQf9Q=";
+    hash = "sha256-kHP1anfkTQWD+2ZFw35KZAo08iolXQDjeTzT8w2limg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/steamship/default.nix b/nixpkgs/pkgs/development/python-modules/steamship/default.nix
index 3501f9f4d85e..dc39e50aebcd 100644
--- a/nixpkgs/pkgs/development/python-modules/steamship/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/steamship/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "steamship";
-  version = "2.17.33";
+  version = "2.17.34";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-hvvXg+V/VKTWWdqXM7Q1K5awemkGhSz64gV7HeRBXfg=";
+    hash = "sha256-U9SA2Dvepl9BjrvhH+8bVBNjby8IWu5UE+/oor7YWzI=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/stem/default.nix b/nixpkgs/pkgs/development/python-modules/stem/default.nix
index 1dcaa22def4d..7d9dc7564a09 100644
--- a/nixpkgs/pkgs/development/python-modules/stem/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stem/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/torproject/stem/blob/${src.rev}/docs/change_log.rst";
     description = "Controller library that allows applications to interact with Tor";
+    mainProgram = "tor-prompt";
     downloadPage = "https://github.com/torproject/stem";
     homepage = "https://stem.torproject.org/";
     license = licenses.lgpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/stestr/default.nix b/nixpkgs/pkgs/development/python-modules/stestr/default.nix
index 8f23b1006051..723188d6c5ee 100644
--- a/nixpkgs/pkgs/development/python-modules/stestr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stestr/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A parallel Python test runner built around subunit";
+    mainProgram = "stestr";
     homepage = "https://github.com/mtreinish/stestr";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/nixpkgs/pkgs/development/python-modules/stevedore/default.nix b/nixpkgs/pkgs/development/python-modules/stevedore/default.nix
index b2328f8d9ff4..3e7d9dfab324 100644
--- a/nixpkgs/pkgs/development/python-modules/stevedore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stevedore/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "stevedore";
-  version = "5.1.0";
+  version = "5.2.0";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-pUU0rPm4m8ftJkgHATtQW/B/dNvkvPo30yvQY4cLCHw=";
+    hash = "sha256-Rrk8pA4RFM6pPXOKbB42U5aYG7a7eMJwRbdYfJRzVE0=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/stickytape/default.nix b/nixpkgs/pkgs/development/python-modules/stickytape/default.nix
index c3c9d4423fd0..99e63ebd3dfb 100644
--- a/nixpkgs/pkgs/development/python-modules/stickytape/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stickytape/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to convert Python packages into a single script";
+    mainProgram = "stickytape";
     homepage = "https://github.com/mwilliamson/stickytape";
     license = with licenses; [ bsd2 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/stim/default.nix b/nixpkgs/pkgs/development/python-modules/stim/default.nix
index 0e779f3850a4..46aba99fb178 100644
--- a/nixpkgs/pkgs/development/python-modules/stim/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stim/default.nix
@@ -68,6 +68,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A tool for high performance simulation and analysis of quantum stabilizer circuits, especially quantum error correction (QEC) circuits";
+    mainProgram = "stim";
     homepage = "https://github.com/quantumlib/stim";
     changelog = "https://github.com/quantumlib/Stim/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/stix2-patterns/default.nix b/nixpkgs/pkgs/development/python-modules/stix2-patterns/default.nix
index 3817a96fe99c..b291e2cd7242 100644
--- a/nixpkgs/pkgs/development/python-modules/stix2-patterns/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stix2-patterns/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Validate patterns used to express cyber observable content in STIX Indicators";
+    mainProgram = "validate-patterns";
     homepage = "https://github.com/oasis-open/cti-pattern-validator";
     changelog = "https://github.com/oasis-open/cti-pattern-validator/blob/${version}/CHANGELOG.rst";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/stm32loader/default.nix b/nixpkgs/pkgs/development/python-modules/stm32loader/default.nix
index 00de51ea66f5..fec3eb6b56e6 100644
--- a/nixpkgs/pkgs/development/python-modules/stm32loader/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stm32loader/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Flash firmware to STM32 microcontrollers in Python";
+    mainProgram = "stm32loader";
     homepage = "https://github.com/florisla/stm32loader";
     changelog = "https://github.com/florisla/stm32loader/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/python-modules/stone/default.nix b/nixpkgs/pkgs/development/python-modules/stone/default.nix
index a0d07fa51542..888c98cd6279 100644
--- a/nixpkgs/pkgs/development/python-modules/stone/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stone/default.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Official Api Spec Language for Dropbox";
+    mainProgram = "stone";
     homepage = "https://github.com/dropbox/stone";
     changelog = "https://github.com/dropbox/stone/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/strawberry-graphql/default.nix b/nixpkgs/pkgs/development/python-modules/strawberry-graphql/default.nix
index 8cdffc96759f..40ae06c91c8f 100644
--- a/nixpkgs/pkgs/development/python-modules/strawberry-graphql/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/strawberry-graphql/default.nix
@@ -42,7 +42,7 @@
 
 buildPythonPackage rec {
   pname = "strawberry-graphql";
-  version = "0.217.1";
+  version = "0.219.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -51,7 +51,7 @@ buildPythonPackage rec {
     owner = "strawberry-graphql";
     repo = "strawberry";
     rev = "refs/tags/${version}";
-    hash = "sha256-Rorbqh/YwBlrkVgS7rV5vb4n773V/EmGAMGP0fuF6V4=";
+    hash = "sha256-uIUETjzuDnlQp6wM7uxyLRSMT5uyrXFrI9NilcjP0BU=";
   };
 
   patches = [
@@ -186,6 +186,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A GraphQL library for Python that leverages type annotations";
+    mainProgram = "strawberry";
     homepage = "https://strawberry.rocks";
     changelog = "https://github.com/strawberry-graphql/strawberry/blob/${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/streamlit/default.nix b/nixpkgs/pkgs/development/python-modules/streamlit/default.nix
index a0f6111c6eab..94144c92ab08 100644
--- a/nixpkgs/pkgs/development/python-modules/streamlit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/streamlit/default.nix
@@ -32,14 +32,14 @@
 
 buildPythonPackage rec {
   pname = "streamlit";
-  version = "1.32.0";
+  version = "1.32.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Zb8i4ZDelzuRDAsSezPYDTHFJ17Ykcb950DeRuXgUyM=";
+    hash = "sha256-Eli5y8P/lXv30Jsb/IXO3DCPEGWzB0hUUpWpr41Vd6s=";
   };
 
   nativeBuildInputs = [
@@ -89,6 +89,7 @@ buildPythonPackage rec {
     homepage = "https://streamlit.io/";
     changelog = "https://github.com/streamlit/streamlit/releases/tag/${version}";
     description = "The fastest way to build custom ML tools";
+    mainProgram = "streamlit";
     maintainers = with maintainers; [ natsukium yrashk ];
     license = licenses.asl20;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/stripe/default.nix b/nixpkgs/pkgs/development/python-modules/stripe/default.nix
index 6fb53df48063..c4ea849251b7 100644
--- a/nixpkgs/pkgs/development/python-modules/stripe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stripe/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "7.11.0";
+  version = "8.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-vf8IJ/jZNopMXoOIdv+dwdXhYVsFrJirRQyB6589MDU=";
+    hash = "sha256-zz27JZGwSpLfxhbQ/gYqTTk+2Ca6ZkErmpLbu1fc3+A=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/striprtf/default.nix b/nixpkgs/pkgs/development/python-modules/striprtf/default.nix
index 95814c1c0603..d7024ef130de 100644
--- a/nixpkgs/pkgs/development/python-modules/striprtf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/striprtf/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage rec {
     changelog = "https://github.com/joshy/striprtf/blob/v${version}/CHANGELOG.md";
     homepage = "https://github.com/joshy/striprtf";
     description = "A simple library to convert rtf to text";
+    mainProgram = "striprtf";
     maintainers = with maintainers; [ aanderse ];
     license = with licenses; [ bsd3 ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/stupidartnet/default.nix b/nixpkgs/pkgs/development/python-modules/stupidartnet/default.nix
index 6092682d2afe..6ed5783f13d2 100644
--- a/nixpkgs/pkgs/development/python-modules/stupidartnet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stupidartnet/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "stupidartnet";
-  version = "1.4.0";
+  version = "1.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "cpvalente";
     repo = "stupidArtnet";
     rev = "refs/tags/${version}";
-    hash = "sha256-2LfK63FJcdnXfDLuUzYNlspj1jmtw00S6el49cH+RRM=";
+    hash = "sha256-6vEzInt1ofVVjTZAOH0Zw3BdwpX//1ZWwJqWPP5fIC8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/subarulink/default.nix b/nixpkgs/pkgs/development/python-modules/subarulink/default.nix
index 293d39cee3e2..1cff8ae459ff 100644
--- a/nixpkgs/pkgs/development/python-modules/subarulink/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/subarulink/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module for interacting with STARLINK-enabled vehicle";
+    mainProgram = "subarulink";
     homepage = "https://github.com/G-Two/subarulink";
     changelog = "https://github.com/G-Two/subarulink/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/subzerod/default.nix b/nixpkgs/pkgs/development/python-modules/subzerod/default.nix
index 5a3632336511..3739e595e00c 100644
--- a/nixpkgs/pkgs/development/python-modules/subzerod/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/subzerod/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to help with the enumeration of subdomains";
+    mainProgram = "subzerod";
     homepage = "https://github.com/sanderfoobar/subzerod";
     license = with licenses; [ wtfpl ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/succulent/default.nix b/nixpkgs/pkgs/development/python-modules/succulent/default.nix
index 0ddabc8c4554..74d369acefc1 100644
--- a/nixpkgs/pkgs/development/python-modules/succulent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/succulent/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "succulent";
-  version = "0.3.2";
+  version = "0.3.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "firefly-cpp";
     repo = "succulent";
     rev = "refs/tags/${version}";
-    hash = "sha256-2WiKrIQkgFIjmZkEA8veXcKCY4X0aygqoP7R3UCCljQ=";
+    hash = "sha256-+S4ekvaQvbBxjUQkG+Bd9lYdZwHB3oq7Ay9kWquCcyE=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/sudachidict/default.nix b/nixpkgs/pkgs/development/python-modules/sudachidict/default.nix
index 41a359110474..65f5d4630d06 100644
--- a/nixpkgs/pkgs/development/python-modules/sudachidict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sudachidict/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-xJ/iPywOZA2kzHaVU43Bc8TUboj3OpDg1kLFMIc/T90=";
   };
 
-  sourceRoot = "source/python";
+  sourceRoot = "${src.name}/python";
 
   # setup script tries to get data from the network but we use the nixpkgs' one
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/sunpy/default.nix b/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
index 732828e908ac..17aa79c34020 100644
--- a/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
@@ -31,14 +31,14 @@
 
 buildPythonPackage rec {
   pname = "sunpy";
-  version = "5.1.0";
+  version = "5.1.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-C5UnKp0EqzxSHTokdSJmfIOMBI6yXpWSazTxcSLOIvI=";
+    hash = "sha256-k2fsmvKjl/zVljiyAHII1O6vntJOPo3CWWwmsYlsLh8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sunweg/default.nix b/nixpkgs/pkgs/development/python-modules/sunweg/default.nix
index bd5a9cf31581..c662a01868ed 100644
--- a/nixpkgs/pkgs/development/python-modules/sunweg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sunweg/default.nix
@@ -4,22 +4,27 @@
 , pytestCheckHook
 , pythonOlder
 , requests
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "sunweg";
-  version = "2.1.0";
-  format = "setuptools";
+  version = "2.1.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "rokam";
-    repo = pname;
+    repo = "sunweg";
     rev = "refs/tags/${version}";
-    hash = "sha256-E5dwFfFzOMyYLAqoTdp22/qIS3+IXD6jkVUVZIumk6Y=";
+    hash = "sha256-fgNtxCBIuNulCfuDaEsM7kL1WpwNE9O+JQ1DMZrz5jA=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     requests
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/sure/default.nix b/nixpkgs/pkgs/development/python-modules/sure/default.nix
index aaa7cba6494e..9d16cd48af4c 100644
--- a/nixpkgs/pkgs/development/python-modules/sure/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sure/default.nix
@@ -42,6 +42,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Utility belt for automated testing";
+    mainProgram = "sure";
     homepage = "https://sure.readthedocs.io/";
     changelog = "https://github.com/gabrielfalcao/sure/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/surepy/default.nix b/nixpkgs/pkgs/development/python-modules/surepy/default.nix
index 41e83ccd5519..d590681fd7fc 100644
--- a/nixpkgs/pkgs/development/python-modules/surepy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/surepy/default.nix
@@ -64,6 +64,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library to interact with the Sure Petcare API";
+    mainProgram = "surepy";
     homepage = "https://github.com/benleb/surepy";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/survey/default.nix b/nixpkgs/pkgs/development/python-modules/survey/default.nix
index 2ce5a49b8d14..10373a9ecfa3 100644
--- a/nixpkgs/pkgs/development/python-modules/survey/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/survey/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "survey";
-  version = "4.5.4";
+  version = "5.2.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wjpO1+9AXi75uPXOTE5/owEiZgtffkkMAaZ+gDO0t5I=";
+    hash = "sha256-Hr7sYn6V2iw4r3P8mXhYVyUD8JpU2zGq4nG6hHM7gxU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/svglib/default.nix b/nixpkgs/pkgs/development/python-modules/svglib/default.nix
index 59841b4cecfd..61ac8a625656 100644
--- a/nixpkgs/pkgs/development/python-modules/svglib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/svglib/default.nix
@@ -48,6 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A pure-Python library for reading and converting SVG";
+    mainProgram = "svg2pdf";
     homepage = "https://github.com/deeplook/svglib";
     changelog = "https://github.com/deeplook/svglib/blob/v${version}/CHANGELOG.rst";
     license = licenses.lgpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/sybil/default.nix b/nixpkgs/pkgs/development/python-modules/sybil/default.nix
index 568c2dc67801..045c5f97501c 100644
--- a/nixpkgs/pkgs/development/python-modules/sybil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sybil/default.nix
@@ -1,24 +1,28 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "sybil";
-  version = "5.0.0";
-  format = "setuptools";
+  version = "6.0.3";
+  pyproject =  true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "simplistix";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-FeyamQDm/EqOWrRlxA8iIQniHI5xag+zUVfRGRHmslE=";
+    hash = "sha256-SqAP+hj+pivsuGxx9/TvmfVrfrLSWQRYIjKh0ui0AVc=";
   };
 
+  build-system = [
+    setuptools
+  ];
+
   # Circular dependency with testfixtures
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/sympy/default.nix b/nixpkgs/pkgs/development/python-modules/sympy/default.nix
index cf250568b609..d2a10492153e 100644
--- a/nixpkgs/pkgs/development/python-modules/sympy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sympy/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python library for symbolic mathematics";
+    mainProgram = "isympy";
     homepage    = "https://www.sympy.org/";
     license     = licenses.bsd3;
     maintainers = with maintainers; [ lovek323 ] ++ teams.sage.members;
diff --git a/nixpkgs/pkgs/development/python-modules/symspellpy/default.nix b/nixpkgs/pkgs/development/python-modules/symspellpy/default.nix
new file mode 100644
index 000000000000..ad3b732209ef
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/symspellpy/default.nix
@@ -0,0 +1,76 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+
+, pythonOlder
+
+, pytestCheckHook
+
+, setuptools
+
+  # for testing
+, numpy
+, importlib-resources
+
+  # requirements
+, editdistpy
+}:
+
+buildPythonPackage rec {
+  pname = "symspellpy";
+  version = "6.7.7";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  patches = [
+    # patch for fix tests
+    # https://github.com/mammothb/symspellpy/pull/151
+    (fetchpatch {
+      name = "fix-pkg-resources-deprecation-warning.patch";
+      url = "https://github.com/mammothb/symspellpy/commit/b0298f4936f28a79612f5509612210868548793f.patch";
+      hash = "sha256-mdUJMrcPv5zczIRP+8u5vicz2IE1AUN3YP0+zg3jqZg=";
+    })
+    (fetchpatch {
+      name = "fix-error-message-checking-py312.patch";
+      url = "https://github.com/mammothb/symspellpy/commit/f6f91e18316bed717036306c33d2ee82a922563a.patch";
+      hash = "sha256-a5KsESIEIzlbcEPq8sTB2+XkuT/vP81U8StZhaL0MbA=";
+    })
+  ];
+
+  src = fetchFromGitHub {
+    owner = "mammothb";
+    repo = "symspellpy";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-D8xdMCy4fSff3nuS2sD2QHWk0869AlFDE+lFRvayYDQ=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    editdistpy
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    numpy
+    importlib-resources
+  ];
+
+  pythonImportsCheck = [
+    "symspellpy"
+    "symspellpy.symspellpy"
+  ];
+
+  meta = with lib;
+    {
+      description = "Python port of SymSpell v6.7.1, which provides much higher speed and lower memory consumption";
+      homepage = "https://github.com/mammothb/symspellpy";
+      changelog = "https://github.com/mammothb/symspellpy/releases/tag/v${version}";
+      license = licenses.mit;
+      maintainers = with maintainers; [ vizid ];
+    };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/syncedlyrics/default.nix b/nixpkgs/pkgs/development/python-modules/syncedlyrics/default.nix
index f0e4fb97c6ba..a53740b37253 100644
--- a/nixpkgs/pkgs/development/python-modules/syncedlyrics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/syncedlyrics/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "syncedlyrics";
-  version = "0.8.0";
+  version = "0.9.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,10 +20,10 @@ buildPythonPackage rec {
     owner = "rtcq";
     repo = "syncedlyrics";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ro9HzI8N7Ry4xh91mO1Vyy3CScEi3FifweOO01/Ti0w=";
+    hash = "sha256-Q0Hu403Hxr4iDuZfGQjgTSuNMVgsqd9zLRl9Vc1YzyQ=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
     pythonRelaxDepsHook
   ];
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     "rapidfuzz"
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     requests
     rapidfuzz
     beautifulsoup4
@@ -47,6 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to get LRC format (synchronized) lyrics";
+    mainProgram = "syncedlyrics";
     homepage = "https://github.com/rtcq/syncedlyrics";
     changelog = "https://github.com/rtcq/syncedlyrics/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/synologydsm-api/default.nix b/nixpkgs/pkgs/development/python-modules/synologydsm-api/default.nix
index 52dc544acb4d..8be0564de4d7 100644
--- a/nixpkgs/pkgs/development/python-modules/synologydsm-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/synologydsm-api/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python API for communication with Synology DSM";
+    mainProgram = "synologydsm-api";
     homepage = "https://github.com/hacf-fr/synologydsm-api";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/development/python-modules/syrupy/default.nix b/nixpkgs/pkgs/development/python-modules/syrupy/default.nix
index 84bc944317e1..c5b860e84050 100644
--- a/nixpkgs/pkgs/development/python-modules/syrupy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/syrupy/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "syrupy";
-  version = "4.6.0";
+  version = "4.6.1";
   format = "pyproject";
 
   disabled = lib.versionOlder python.version "3.8.1";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "tophat";
     repo = "syrupy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FjDGwSOKvDWx+LwUCNGEOBKV3rFG+09gtFpLLi0xgD4=";
+    hash = "sha256-NBJJqQsZqqKHOdqGa/j/2KQvlenLCEJBqlfdjtFK00U=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/systembridgeconnector/default.nix b/nixpkgs/pkgs/development/python-modules/systembridgeconnector/default.nix
index 111517c6ca5e..04132ffe081a 100644
--- a/nixpkgs/pkgs/development/python-modules/systembridgeconnector/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/systembridgeconnector/default.nix
@@ -2,15 +2,19 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
+, fetchpatch2
 , setuptools
 , aiohttp
 , incremental
 , systembridgemodels
+, pytest-aiohttp
+, pytest-socket
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "systembridgeconnector";
-  version = "4.0.3";
+  version = "4.0.4";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -19,9 +23,21 @@ buildPythonPackage rec {
     owner = "timmo001";
     repo = "system-bridge-connector";
     rev = "refs/tags/${version}";
-    hash = "sha256-AjdWDEotz5AUo+auxBqXu7EMv/Kt97DZ6vOrFunZ2Fw=";
+    hash = "sha256-Guh9qbRLp+b2SuFgBx7jf16vRShuHJBi3WOVn9Akce8=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      url = "https://github.com/timmo001/system-bridge-connector/commit/25aa172775ee983dc4a29b8dda880aefbad70040.patch";
+      hash = "sha256-PedW1S1gZmWkS4sJBqSAx3aoA1KppYS5Xlhoaxqkcd4=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace systembridgeconnector/_version.py \
+      --replace-fail ", dev=0" ""
+  '';
+
   nativeBuildInputs = [
     setuptools
   ];
@@ -34,8 +50,16 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "systembridgeconnector" ];
 
-  # upstream has no tests
-  doCheck = false;
+  nativeCheckInputs = [
+    pytest-aiohttp
+    pytest-socket
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # ConnectionClosedException: Connection closed to server
+    "test_get_files"
+  ];
 
   meta = {
     changelog = "https://github.com/timmo001/system-bridge-connector/releases/tag/${version}";
diff --git a/nixpkgs/pkgs/development/python-modules/systembridgemodels/default.nix b/nixpkgs/pkgs/development/python-modules/systembridgemodels/default.nix
index 16a16b3a8da4..ee7945ee20b9 100644
--- a/nixpkgs/pkgs/development/python-modules/systembridgemodels/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/systembridgemodels/default.nix
@@ -2,14 +2,14 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
-, fetchpatch2
 , setuptools
 , incremental
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "systembridgemodels";
-  version = "4.0.0";
+  version = "4.0.3";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -18,15 +18,13 @@ buildPythonPackage rec {
     owner = "timmo001";
     repo = "system-bridge-models";
     rev = "refs/tags/${version}";
-    hash = "sha256-4nbTsVRqtoX4UhTrQS4HwoLtx0RO1VA8UewSAWOSsik=";
+    hash = "sha256-5rbj58E8iDu2Rjf0k9Y1UoF3hbN7ntkx6dm20HYpw6I=";
   };
 
-  patches = [
-    (fetchpatch2 {
-      url = "https://github.com/timmo001/system-bridge-models/commit/7cd506760fd47c0f3717b6fcfe127b673e3198f8.patch";
-      hash = "sha256-i+GCcoyX07ii9Kj46dtAlT85jUKfF0KHEH9++UTjiik=";
-    })
-  ];
+  postPatch = ''
+    substituteInPlace systembridgemodels/_version.py \
+      --replace-fail ", dev=0" ""
+  '';
 
   nativeBuildInputs = [
     setuptools
@@ -38,8 +36,9 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "systembridgemodels" ];
 
-  # upstream has no tests
-  doCheck = false;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   meta = {
     changelog = "https://github.com/timmo001/system-bridge-models/releases/tag/${version}";
diff --git a/nixpkgs/pkgs/development/python-modules/tabcmd/default.nix b/nixpkgs/pkgs/development/python-modules/tabcmd/default.nix
index 3958ace5aacf..2f7574a32f95 100644
--- a/nixpkgs/pkgs/development/python-modules/tabcmd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tabcmd/default.nix
@@ -24,14 +24,14 @@
 
 buildPythonPackage rec {
   pname = "tabcmd";
-  version = "2.0.12";
+  version = "2.0.13";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nsQJWDzSzSc1WRk5TBl/E7Mpfk8wGD1CsETAWILKxCM=";
+    hash = "sha256-f9zoYeb4RzcCtgcCYYvvuCuFrjqpP3Fhv38bUWH24+g=";
   };
 
   pythonRelaxDeps = [
@@ -90,6 +90,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A command line client for working with Tableau Server.";
+    mainProgram = "tabcmd";
     homepage = "https://github.com/tableau/tabcmd";
     changelog = "https://github.com/tableau/tabcmd/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/tabulate/default.nix b/nixpkgs/pkgs/development/python-modules/tabulate/default.nix
index f857585c9b23..87644ba51923 100644
--- a/nixpkgs/pkgs/development/python-modules/tabulate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tabulate/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Pretty-print tabular data";
+    mainProgram = "tabulate";
     homepage = "https://github.com/astanin/python-tabulate";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ fridh ];
diff --git a/nixpkgs/pkgs/development/python-modules/tabview/default.nix b/nixpkgs/pkgs/development/python-modules/tabview/default.nix
index 62eaf512357b..8d83fe4ef9ad 100644
--- a/nixpkgs/pkgs/development/python-modules/tabview/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tabview/default.nix
@@ -21,6 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python curses command line CSV and tabular data viewer";
+    mainProgram = "tabview";
     homepage = "https://github.com/TabViewer/tabview";
     changelog = "https://github.com/TabViewer/tabview/blob/main/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/tagoio-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/tagoio-sdk/default.nix
index b5bcc619eed8..626872794e03 100644
--- a/nixpkgs/pkgs/development/python-modules/tagoio-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tagoio-sdk/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "tagoio-sdk";
-  version = "4.2.1";
+  version = "4.3.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "tago-io";
     repo = "sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-R7qJIgL8/zejIuT6YMnC3bdm8lKLBTK5eVjVDEjvRKs=";
+    hash = "sha256-37/fg2vbwYPhYPvSJ2YxWAPrfspqTE3thIL/VR1+AkI=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/development/python-modules/tailer/default.nix b/nixpkgs/pkgs/development/python-modules/tailer/default.nix
index 8079d7d2c614..ffc7e3da17c8 100644
--- a/nixpkgs/pkgs/development/python-modules/tailer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tailer/default.nix
@@ -26,6 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python implementation implementation of GNU tail and head";
+    mainProgram = "pytail";
     homepage = "https://github.com/six8/pytailer";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/tank-utility/default.nix b/nixpkgs/pkgs/development/python-modules/tank-utility/default.nix
index 358ebbb0d82c..d9783789df7c 100644
--- a/nixpkgs/pkgs/development/python-modules/tank-utility/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tank-utility/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for the Tank Utility API";
+    mainProgram = "tank-utility";
     homepage = "https://github.com/krismolendyke/tank-utility";
     changelog = "https://github.com/krismolendyke/tank-utility/blob/${version}/HISTORY.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/tatsu/default.nix b/nixpkgs/pkgs/development/python-modules/tatsu/default.nix
index 7769c3b298a4..69b17a826fb5 100644
--- a/nixpkgs/pkgs/development/python-modules/tatsu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tatsu/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tatsu";
-  version = "5.11.3";
+  version = "5.12.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "neogeny";
     repo = "TatSu";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5tVvElM7pZF3rZJMMk0IIZBhiv+9J8KBLjfoVTPF198=";
+    hash = "sha256-55sTUqNwfWg5h9msByq2RuVx/z23ST7p7pA/ZsIeYr8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/taxi/default.nix b/nixpkgs/pkgs/development/python-modules/taxi/default.nix
index beda64f22eb5..98d998f92a40 100644
--- a/nixpkgs/pkgs/development/python-modules/taxi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/taxi/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/sephii/taxi/";
     description = "Timesheeting made easy";
+    mainProgram = "taxi";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ jocelynthode ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/tdir/default.nix b/nixpkgs/pkgs/development/python-modules/tdir/default.nix
new file mode 100644
index 000000000000..644adda75ff0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tdir/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, dek
+, xmod
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "tdir";
+  version = "1.8.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "rec";
+    repo = "tdir";
+    rev = "v${version}";
+    hash = "sha256-YYQ33Blhqk/CbocqkB9Nh6qbzMjQT07fmzx+fDTvdw8=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  dependencies = [
+    dek
+    xmod
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "tdir"
+  ];
+
+  meta = with lib; {
+    description = "Create, fill a temporary directory";
+    homepage = "https://github.com/rec/tdir";
+    changelog = "https://github.com/rec/tdir/blob/${src.rev}/CHANGELOG";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/telfhash/default.nix b/nixpkgs/pkgs/development/python-modules/telfhash/default.nix
index 787824d50388..f2f403765006 100644
--- a/nixpkgs/pkgs/development/python-modules/telfhash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/telfhash/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Symbol hash for ELF files";
+    mainProgram = "telfhash";
     homepage = "https://github.com/trendmicro/telfhash";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/tellduslive/default.nix b/nixpkgs/pkgs/development/python-modules/tellduslive/default.nix
index f933553dcdbe..b367c5d4417e 100644
--- a/nixpkgs/pkgs/development/python-modules/tellduslive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tellduslive/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module to communicate with Telldus Live";
+    mainProgram = "tellduslive";
     homepage = "https://github.com/molobrakos/tellduslive";
     license = with licenses; [ unlicense ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/templateflow/default.nix b/nixpkgs/pkgs/development/python-modules/templateflow/default.nix
index c879b7064d0f..8bdabc162a07 100644
--- a/nixpkgs/pkgs/development/python-modules/templateflow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/templateflow/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "templateflow";
-  version = "23.1.0";
+  version = "24.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "templateflow";
     repo = "python-client";
     rev = "refs/tags/${version}";
-    hash = "sha256-8AdXC1IFGfYZ5cvCAyBz0tD3zia+KBILX0tL9IcO2NA=";
+    hash = "sha256-UxYJnKOqIIf10UW5xJ7MrFHtZY5WNVi5oZgdozj65Z8=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/tempora/default.nix b/nixpkgs/pkgs/development/python-modules/tempora/default.nix
index 591cf9e3555f..b33d72b99b79 100644
--- a/nixpkgs/pkgs/development/python-modules/tempora/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tempora/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "tempora";
-  version = "5.5.0";
+  version = "5.5.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-E+T8yZfQUJwzBtaEHwPpOBt+Xkayvr+ukVGvkAhfDCY=";
+    hash = "sha256-ortR4hIZdtkxNHs+QzkXw2S4P91fZO8nM2yGW/H7D3U=";
   };
 
   nativeBuildInputs = [
@@ -46,6 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Objects and routines pertaining to date and time";
+    mainProgram = "calc-prorate";
     homepage = "https://github.com/jaraco/tempora";
     changelog = "https://github.com/jaraco/tempora/blob/v${version}/NEWS.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix b/nixpkgs/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
index 19662cf7a37e..34ce22a46136 100644
--- a/nixpkgs/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "tencentcloud-sdk-python";
-  version = "3.0.1102";
+  version = "3.0.1114";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "TencentCloud";
     repo = "tencentcloud-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-VEYFNu8z/PVn+CcQzRdKtUw+JkKzxSIS6t6NMEaNNDc=";
+    hash = "sha256-OqkXHnXoQE2BF2Lon9+3pPVvqXK9YQnoDewoQ13Aa1Q=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/tensorboard/default.nix b/nixpkgs/pkgs/development/python-modules/tensorboard/default.nix
index af45054bac42..9fdc3bb71192 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorboard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorboard/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "tensorboard";
-  version = "2.16.0";
+  version = "2.16.2";
   format = "wheel";
   disabled = pythonOlder "3.9";
 
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     inherit pname version format;
     dist = "py3";
     python = "py3";
-    hash = "sha256-JjuQmiAJyzp52qar5kwXhcwxfCWlTk2y/stkKf/FTFg=";
+    hash = "sha256-nytOfa2GZnYVwOXNBy8eqEA/wDKimfAHLW90hVd1zEU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/tensorboardx/default.nix b/nixpkgs/pkgs/development/python-modules/tensorboardx/default.nix
index e0a72af7a135..820b00744195 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorboardx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorboardx/default.nix
@@ -68,6 +68,9 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # we are not interested in linting errors
     "tests/test_lint.py"
+    # ImportError: cannot import name 'mock_s3' from 'moto'
+    "tests/test_embedding.py"
+    "tests/test_record_writer.py"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow-datasets/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow-datasets/default.nix
index e857a2916e20..8440eb58f4fc 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow-datasets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow-datasets/default.nix
@@ -48,14 +48,14 @@
 
 buildPythonPackage rec {
   pname = "tensorflow-datasets";
-  version = "4.9.3";
+  version = "4.9.4";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "tensorflow";
     repo = "datasets";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZXCcXChrWqs0FAK5Fe8cD+MuJpWa9Dwo/ny5fOX2lKU=";
+    hash = "sha256-HY/atBEWeEJgBNxEapq9jPFoZbFof2AHEDAiJa/lYAE=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/tensorrt/default.nix b/nixpkgs/pkgs/development/python-modules/tensorrt/default.nix
index e108b1a773cb..58a3e64d5610 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorrt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorrt/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     unzip
     autoPatchelfHook
-    cudaPackages.autoAddOpenGLRunpathHook
+    cudaPackages.autoAddDriverRunpath
   ];
 
   preUnpack = ''
diff --git a/nixpkgs/pkgs/development/python-modules/termgraph/default.nix b/nixpkgs/pkgs/development/python-modules/termgraph/default.nix
index 30d37d9f87d8..2e9f0a8c22bf 100644
--- a/nixpkgs/pkgs/development/python-modules/termgraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/termgraph/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A python command-line tool which draws basic graphs in the terminal";
+    mainProgram = "termgraph";
     homepage = "https://github.com/mkaz/termgraph";
     license = licenses.mit;
     maintainers = with maintainers; [ samuela ];
diff --git a/nixpkgs/pkgs/development/python-modules/tern/default.nix b/nixpkgs/pkgs/development/python-modules/tern/default.nix
index 9a07c2103518..45553889b1bd 100644
--- a/nixpkgs/pkgs/development/python-modules/tern/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tern/default.nix
@@ -61,6 +61,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A software composition analysis tool and Python library that generates a Software Bill of Materials for container images and Dockerfiles";
+    mainProgram = "tern";
     homepage = "https://github.com/tern-tools/tern";
     changelog = "https://github.com/tern-tools/tern/releases/tag/v${version}";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/tesla-fleet-api/default.nix b/nixpkgs/pkgs/development/python-modules/tesla-fleet-api/default.nix
index a9f70fdf92d9..e82fddf4c424 100644
--- a/nixpkgs/pkgs/development/python-modules/tesla-fleet-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tesla-fleet-api/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "tesla-fleet-api";
-  version = "0.4.9";
+  version = "0.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "Teslemetry";
     repo = "python-tesla-fleet-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GiDhVN6aBj0yeIg596ox2ES28Dca81pVnsYWvc1SZ+A=";
+    hash = "sha256-IRUH3qWRJoCEvzkkR8/qH5i735B030CLKKRRWO9DVuI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/tesla-powerwall/default.nix b/nixpkgs/pkgs/development/python-modules/tesla-powerwall/default.nix
index fcdab982a02d..95222f4de389 100644
--- a/nixpkgs/pkgs/development/python-modules/tesla-powerwall/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tesla-powerwall/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "tesla-powerwall";
-  version = "0.5.1";
+  version = "0.5.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "jrester";
     repo = "tesla_powerwall";
     rev = "refs/tags/v${version}";
-    hash = "sha256-if/FCfxAB48WGXZOMvCtdSOW2FWO43OrlcHZbXIPmGE=";
+    hash = "sha256-cAsJKFM0i0e7w2T4HP4a5ybJGuDvBAGCGmPEKFzNFAY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/testcontainers/default.nix b/nixpkgs/pkgs/development/python-modules/testcontainers/default.nix
index 4da0d7702317..8450fcde1126 100644
--- a/nixpkgs/pkgs/development/python-modules/testcontainers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/testcontainers/default.nix
@@ -7,15 +7,15 @@
 
 buildPythonPackage rec {
   pname = "testcontainers";
-  version = "3.7.1";
+  version = "4.0.0";
 
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "testcontainers";
     repo = "testcontainers-python";
-    rev = "v${version}";
-    hash = "sha256-OHuvUi5oa0fVcfo0FW9XwaUp52MEH4NTM6GqK4ic0oM=";
+    rev = "refs/tags/testcontainers-v${version}";
+    hash = "sha256-cVVP9nGRTLC09KHalQDz7KOszjuFVVpMlee4btPNgd4=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/testfixtures/default.nix b/nixpkgs/pkgs/development/python-modules/testfixtures/default.nix
index 911d1496165f..b8c0a5dc1371 100644
--- a/nixpkgs/pkgs/development/python-modules/testfixtures/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/testfixtures/default.nix
@@ -1,20 +1,17 @@
 { lib
 , buildPythonPackage
-, fetchpatch
 , fetchPypi
 , mock
 , pytestCheckHook
-, pythonAtLeast
 , pythonOlder
 , setuptools
 , sybil
 , twisted
-, zope-component
 }:
 
 buildPythonPackage rec {
   pname = "testfixtures";
-  version = "7.2.2";
+  version = "8.1.0";
   pyproject = true;
   # DO NOT CONTACT upstream.
   # https://github.com/simplistix/ is only concerned with internal CI process.
@@ -23,23 +20,14 @@ buildPythonPackage rec {
   # https://github.com/simplistix/testfixtures/issues/169
   # https://github.com/simplistix/testfixtures/issues/168
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gHdK7LAklFgnWreD9TCT++dXlf8rMhjSLOP/8KEsTaY=";
+    hash = "sha256-gISJkDBIWcOito3+S8r3e25kJaOSUEe8JaUnVSd7+m0=";
   };
 
-  patches = [
-    # https://github.com/simplistix/testfixtures/pull/188
-    (fetchpatch {
-      name = "python3.12-compatibility.patch";
-      url = "https://github.com/simplistix/testfixtures/commit/2b80b195e30e12c739dc4f98e9de17dec8f3558a.patch";
-      hash = "sha256-LrC0uI4k3F6ZGTqbKi319tRbVk5557xbyzQN36Y1160=";
-     })
-  ];
-
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
@@ -48,7 +36,6 @@ buildPythonPackage rec {
     pytestCheckHook
     sybil
     twisted
-    zope-component
   ];
 
   disabledTestPaths = [
diff --git a/nixpkgs/pkgs/development/python-modules/testrail-api/default.nix b/nixpkgs/pkgs/development/python-modules/testrail-api/default.nix
index e23563de6ec8..a5b35de14213 100644
--- a/nixpkgs/pkgs/development/python-modules/testrail-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/testrail-api/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "testrail-api";
-  version = "1.12.1";
+  version = "1.13.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "tolstislon";
     repo = "testrail-api";
     rev = "refs/tags/${version}";
-    hash = "sha256-lIlTrAdNtBJdwiSFwpcHA2e+fRC+MbHS0PX7prAN+RY=";
+    hash = "sha256-NGdNpNJ9ejwneSacNmifGJ8TMUuBqMu9tHTyLxTB5Uk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/testrepository/default.nix b/nixpkgs/pkgs/development/python-modules/testrepository/default.nix
index 60abdaa86384..27caf08a9104 100644
--- a/nixpkgs/pkgs/development/python-modules/testrepository/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/testrepository/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A database of test results which can be used as part of developer workflow";
+    mainProgram = "testr";
     homepage = "https://pypi.python.org/pypi/testrepository";
     license = licenses.bsd2;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/textfsm/default.nix b/nixpkgs/pkgs/development/python-modules/textfsm/default.nix
index d5bd84a8c634..84eba320791c 100644
--- a/nixpkgs/pkgs/development/python-modules/textfsm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/textfsm/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module for parsing semi-structured text into python tables";
+    mainProgram = "textfsm";
     homepage = "https://github.com/google/textfsm";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/textile/default.nix b/nixpkgs/pkgs/development/python-modules/textile/default.nix
index adae00ef3ec5..01686e4fc2ac 100644
--- a/nixpkgs/pkgs/development/python-modules/textile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/textile/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "MOdule for generating web text";
+    mainProgram = "pytextile";
     homepage = "https://github.com/textile/python-textile";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/textual-dev/default.nix b/nixpkgs/pkgs/development/python-modules/textual-dev/default.nix
index 5c58f63dcdbf..d8ca583d97b6 100644
--- a/nixpkgs/pkgs/development/python-modules/textual-dev/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/textual-dev/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Development tools for Textual";
+    mainProgram = "textual";
     homepage = "https://github.com/Textualize/textual-dev";
     license = licenses.mit;
     maintainers = with maintainers; [ yannip ];
diff --git a/nixpkgs/pkgs/development/python-modules/textual-universal-directorytree/default.nix b/nixpkgs/pkgs/development/python-modules/textual-universal-directorytree/default.nix
index b36ce6ed84e9..0e9e3e6d002c 100644
--- a/nixpkgs/pkgs/development/python-modules/textual-universal-directorytree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/textual-universal-directorytree/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , hatchling
 , textual
 , universal-pathlib
@@ -16,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "textual-universal-directorytree";
-  version = "1.0.2";
+  version = "1.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,18 +24,9 @@ buildPythonPackage rec {
     owner = "juftin";
     repo = "textual-universal-directorytree";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FL2bwPGqBmDn33Rhj7+VEpuqB4znEAw+GGAODTs25oo=";
+    hash = "sha256-ncQ3IRaZaCv1rMUWT9dkUKo6OAEC5pziMCM7adIBGWo=";
   };
 
-  patches = [
-    # universal-pathlib upgrade, https://github.com/juftin/textual-universal-directorytree/pull/2
-    (fetchpatch {
-      name = "universal-pathlib-upgrade.patch";
-      url = "https://github.com/juftin/textual-universal-directorytree/commit/e445aff21ddf756e3f180c8308a75c41487667c3.patch";
-      hash = "sha256-Fftx8rrLPb6lQ+HBdB5Ai55LHMWEO6XftmFfZXbXIyk=";
-    })
-  ];
-
   nativeBuildInputs = [
     hatchling
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/textual/default.nix b/nixpkgs/pkgs/development/python-modules/textual/default.nix
index 7b4dd5ac2efb..52a7715e2400 100644
--- a/nixpkgs/pkgs/development/python-modules/textual/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/textual/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, importlib-metadata
 , jinja2
 , markdown-it-py
 , poetry-core
@@ -17,31 +16,30 @@
 
 buildPythonPackage rec {
   pname = "textual";
-  version = "0.47.1";
+  version = "0.52.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Textualize";
-    repo = pname;
+    repo = "textual";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RFaZKQ+0o6ZvfZxx95a1FjSHVJ0VOIAfzkdxYQXYBKU=";
+    hash = "sha256-a5v8HS6ZswQOl/jIypFJTk+MuMsu89H2pAAlWMPkLjI=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
   ];
 
-  propagatedBuildInputs = [
-    importlib-metadata
+  dependencies = [
     markdown-it-py
     rich
     typing-extensions
   ] ++ markdown-it-py.optional-dependencies.plugins
     ++ markdown-it-py.optional-dependencies.linkify;
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     syntax = [
       tree-sitter
       # tree-sitter-languages
@@ -54,7 +52,7 @@ buildPythonPackage rec {
     pytestCheckHook
     syrupy
     time-machine
-  ] ++ passthru.optional-dependencies.syntax;
+  ] ++ optional-dependencies.syntax;
 
   disabledTestPaths = [
     # snapshot tests require syrupy<4
@@ -68,6 +66,7 @@ buildPythonPackage rec {
 
     # requires tree-sitter-languages which is not packaged in nixpkgs
     "test_register_language"
+    "test_language_binary_missing"
   ];
 
   pythonImportsCheck = [
diff --git a/nixpkgs/pkgs/development/python-modules/textx/default.nix b/nixpkgs/pkgs/development/python-modules/textx/default.nix
index e169cbdb9b81..46847572714c 100644
--- a/nixpkgs/pkgs/development/python-modules/textx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/textx/default.nix
@@ -79,6 +79,7 @@ let
 
     meta = with lib; {
       description = "Domain-specific languages and parsers in Python";
+      mainProgram = "textx";
       homepage = "https://github.com/textx/textx/";
       license = licenses.mit;
       maintainers = with maintainers; [ yuu ];
diff --git a/nixpkgs/pkgs/development/python-modules/tf2onnx/default.nix b/nixpkgs/pkgs/development/python-modules/tf2onnx/default.nix
index f1359e6fdaac..deb739ce162f 100644
--- a/nixpkgs/pkgs/development/python-modules/tf2onnx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tf2onnx/default.nix
@@ -24,14 +24,14 @@
 
 buildPythonPackage rec {
   pname = "tf2onnx";
-  version = "1.15.1";
+  version = "1.16.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "onnx";
     repo = "tensorflow-onnx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-HqzcoPPX9+NOj0uFfOSVI2MNCkxq1NmLqXflwdi5RF0=";
+    hash = "sha256-qtRzckw/KHWm3gjFwF+cPuBhGbfktjhYIwImwHn2CFk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/thelogrus/default.nix b/nixpkgs/pkgs/development/python-modules/thelogrus/default.nix
index 5fe496bda795..62011023516d 100644
--- a/nixpkgs/pkgs/development/python-modules/thelogrus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/thelogrus/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python 3 version of logrus";
+    mainProgram = "human-time";
     homepage = "https://github.com/unixorn/thelogrus";
     changelog = "https://github.com/unixorn/thelogrus/blob/${version}/ChangeLog.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/thinc/default.nix b/nixpkgs/pkgs/development/python-modules/thinc/default.nix
index 82ae98abc0c9..db5398550689 100644
--- a/nixpkgs/pkgs/development/python-modules/thinc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/thinc/default.nix
@@ -30,14 +30,14 @@
 
 buildPythonPackage rec {
   pname = "thinc";
-  version = "8.2.2";
+  version = "8.2.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-boW5RGcsD5UkGnH2f5iC4asxnESaR3QLDRWfTPhtFYc=";
+    hash = "sha256-9a/FIikSqAvai9zslYNiorpTjXAn3I22FUhF0oWdynY=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/threadpoolctl/default.nix b/nixpkgs/pkgs/development/python-modules/threadpoolctl/default.nix
index 54d7fa128293..50dbe491fdf8 100644
--- a/nixpkgs/pkgs/development/python-modules/threadpoolctl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/threadpoolctl/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "threadpoolctl";
-  version = "3.1.0";
+  version = "3.3.0";
 
   disabled = pythonOlder "3.6";
   format = "pyproject";
@@ -18,8 +18,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "joblib";
     repo = pname;
-    rev = version;
-    hash = "sha256-/qt7cgFbvpc1BLZC7a4S0RToqSggKXAqF1Xr6xOqzw8=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-mdOZcplqXrkKlL/SXipJg6A9Dh1lXGEHszBLGH/kxqs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/threat9-test-bed/default.nix b/nixpkgs/pkgs/development/python-modules/threat9-test-bed/default.nix
index b7d523b37684..cb4f47e6496e 100644
--- a/nixpkgs/pkgs/development/python-modules/threat9-test-bed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/threat9-test-bed/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for adding unittests.mock as view functions";
+    mainProgram = "test-bed";
     homepage = "https://github.com/threat9/threat9-test-bed";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/tidalapi/default.nix b/nixpkgs/pkgs/development/python-modules/tidalapi/default.nix
index 020417ece1df..8c3c2429dc72 100644
--- a/nixpkgs/pkgs/development/python-modules/tidalapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tidalapi/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "tidalapi";
-  version = "0.7.3";
+  version = "0.7.5";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sIPuo1kd08Quflf7oFxoo1H56cdUDlbNTfFkn8j3jVE=";
+    hash = "sha256-QzrIWQ7cWpPAu3+/zqAqX9eDWOF8F3Xj8Rt5D8I6h9M=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/tifffile/default.nix b/nixpkgs/pkgs/development/python-modules/tifffile/default.nix
index 20858e870c73..30d99043f04c 100644
--- a/nixpkgs/pkgs/development/python-modules/tifffile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tifffile/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "tifffile";
-  version = "2023.9.26";
+  version = "2024.2.12";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Z+NV5Flaqzl/hAXQSv4bSufG9ipE4i2TP+4aVxpIx64=";
+    hash = "sha256-SSCj7I6OAD5nPTxlMYY8me7dVw0bi34UHAcu14/4Aw0=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/tika/default.nix b/nixpkgs/pkgs/development/python-modules/tika/default.nix
index 7e2ce76f9f76..f9a645890084 100644
--- a/nixpkgs/pkgs/development/python-modules/tika/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tika/default.nix
@@ -23,6 +23,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python binding to the Apache Tikaâ„¢ REST services";
+    mainProgram = "tika-python";
     homepage = "https://github.com/chrismattmann/tika-python";
     license = licenses.asl20;
     maintainers = with maintainers; [ Flakebi ];
diff --git a/nixpkgs/pkgs/development/python-modules/tiledb/default.nix b/nixpkgs/pkgs/development/python-modules/tiledb/default.nix
index d7c724ab25d2..2c9fab82000c 100644
--- a/nixpkgs/pkgs/development/python-modules/tiledb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tiledb/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "tiledb";
-  version = "0.24.0";
+  version = "0.26.2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "TileDB-Inc";
     repo = "TileDB-Py";
     rev = "refs/tags/${version}";
-    hash = "sha256-EcWqh/xFyFvTuyzsPuAkT67O0y8TPWt2MvXVPnaQzrg=";
+    hash = "sha256-8c1l4zoD44SjaOUXlFUSho/y7oMNOEVM9ZlnRs1irV8=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/tilequant/default.nix b/nixpkgs/pkgs/development/python-modules/tilequant/default.nix
index 220f40354dcc..294a34d81177 100644
--- a/nixpkgs/pkgs/development/python-modules/tilequant/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tilequant/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool for quantizing image colors using tile-based palette restrictions";
+    mainProgram = "tilequant";
     homepage = "https://github.com/SkyTemple/tilequant";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ marius851000 xfix ];
diff --git a/nixpkgs/pkgs/development/python-modules/timetagger/default.nix b/nixpkgs/pkgs/development/python-modules/timetagger/default.nix
index d51cb5b35eee..b09d96871621 100644
--- a/nixpkgs/pkgs/development/python-modules/timetagger/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/timetagger/default.nix
@@ -55,6 +55,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to interact with TimeTagger";
+    mainProgram = "timetagger";
     homepage = "https://github.com/almarklein/timetagger";
     changelog = "https://github.com/almarklein/timetagger/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/timezonefinder/default.nix b/nixpkgs/pkgs/development/python-modules/timezonefinder/default.nix
index c39b04cd3fe7..79675ebc629a 100644
--- a/nixpkgs/pkgs/development/python-modules/timezonefinder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/timezonefinder/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "timezonefinder";
-  version = "6.4.1";
+  version = "6.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "jannikmi";
     repo = "timezonefinder";
     rev = "refs/tags/${version}";
-    hash = "sha256-e9Zx236X76GYFuADCw9+5HWs2craeq44gVNclkc4th0=";
+    hash = "sha256-V5g1zTdXWeJba71/eUGQbF9XOhMQuzivtGkqGD4OHMY=";
   };
 
   nativeBuildInputs = [
@@ -54,6 +54,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/jannikmi/timezonefinder/blob/${version}/CHANGELOG.rst";
     description = "Module for finding the timezone of any point on earth (coordinates) offline";
+    mainProgram = "timezonefinder";
     homepage = "https://github.com/MrMinimal64/timezonefinder";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/tinygrad/default.nix b/nixpkgs/pkgs/development/python-modules/tinygrad/default.nix
new file mode 100644
index 000000000000..25b1f049bf69
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tinygrad/default.nix
@@ -0,0 +1,111 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, wheel
+, gpuctypes
+, numpy
+, tqdm
+, hypothesis
+, librosa
+, onnx
+, pillow
+, pytest-xdist
+, pytestCheckHook
+, safetensors
+, sentencepiece
+, tiktoken
+, torch
+, transformers
+}:
+
+buildPythonPackage rec {
+  pname = "tinygrad";
+  version = "0.8.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tinygrad";
+    repo = "tinygrad";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-QAccZ79qUbe27yUykIf22WdkxYUlOffnMlShakKfp60=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    gpuctypes
+    numpy
+    tqdm
+  ];
+
+  pythonImportsCheck = [ "tinygrad" ];
+
+  nativeCheckInputs = [
+    hypothesis
+    librosa
+    onnx
+    pillow
+    pytest-xdist
+    pytestCheckHook
+    safetensors
+    sentencepiece
+    tiktoken
+    torch
+    transformers
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  disabledTests = [
+    # Require internet access
+    "test_benchmark_openpilot_model"
+    "test_bn_alone"
+    "test_bn_linear"
+    "test_bn_mnist"
+    "test_car"
+    "test_chicken"
+    "test_chicken_bigbatch"
+    "test_conv_mnist"
+    "testCopySHMtoDefault"
+    "test_data_parallel_resnet"
+    "test_e2e_big"
+    "test_fetch_small"
+    "test_huggingface_enet_safetensors"
+    "test_linear_mnist"
+    "test_load_convnext"
+    "test_load_enet"
+    "test_load_enet_alt"
+    "test_load_llama2bfloat"
+    "test_load_resnet"
+    "test_openpilot_model"
+    "test_resnet"
+    "test_shufflenet"
+    "test_transcribe_batch12"
+    "test_transcribe_batch21"
+    "test_transcribe_file1"
+    "test_transcribe_file2"
+    "test_transcribe_long"
+    "test_transcribe_long_no_batch"
+    "test_vgg7"
+  ];
+
+  disabledTestPaths = [
+    "test/extra/test_lr_scheduler.py"
+    "test/models/test_mnist.py"
+    "test/models/test_real_world.py"
+  ];
+
+  meta = with lib; {
+    description = "A simple and powerful neural network framework";
+    homepage = "https://github.com/tinygrad/tinygrad";
+    changelog = "https://github.com/tinygrad/tinygrad/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tinysegmenter/default.nix b/nixpkgs/pkgs/development/python-modules/tinysegmenter/default.nix
new file mode 100644
index 000000000000..2b56544061b7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tinysegmenter/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+
+, unittestCheckHook
+
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "tinysegmenter";
+  version = "0.4";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-ZEWL26VLp0gsAseF+WDPPWz2FZSk2rPWTDJUOQlPwbc=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
+
+  unittestFlagsArray = [ "-s" "tests" ];
+
+  pythonImportsCheck = [ "tinysegmenter" ];
+
+  meta = with lib; {
+    description = "Very compact Japanese tokenizer";
+    homepage = "https://tinysegmenter.tuxfamily.org";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ vizid ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/titlecase/default.nix b/nixpkgs/pkgs/development/python-modules/titlecase/default.nix
index 026a033357fd..73d6f7b8876d 100644
--- a/nixpkgs/pkgs/development/python-modules/titlecase/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/titlecase/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library to capitalize strings as specified by the New York Times";
+    mainProgram = "titlecase";
     homepage = "https://github.com/ppannuto/python-titlecase";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/tld/default.nix b/nixpkgs/pkgs/development/python-modules/tld/default.nix
index a8a25bba00cf..8ec2c85d63a1 100644
--- a/nixpkgs/pkgs/development/python-modules/tld/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tld/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Extracts the top level domain (TLD) from the URL given";
+    mainProgram = "update-tld-names";
     homepage = "https://github.com/barseghyanartur/tld";
     changelog = "https://github.com/barseghyanartur/tld/blob/${version}/CHANGELOG.rst";
     # https://github.com/barseghyanartur/tld/blob/master/README.rst#license
diff --git a/nixpkgs/pkgs/development/python-modules/tldextract/default.nix b/nixpkgs/pkgs/development/python-modules/tldextract/default.nix
index 12b6c51a7679..2aab849ae5f0 100644
--- a/nixpkgs/pkgs/development/python-modules/tldextract/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tldextract/default.nix
@@ -11,11 +11,12 @@
 , responses
 , setuptools
 , setuptools-scm
+, syrupy
 }:
 
 buildPythonPackage rec {
   pname = "tldextract";
-  version = "5.1.1";
+  version = "5.1.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "john-kurkowski";
     repo = "tldextract";
     rev = "refs/tags/${version}";
-    hash = "sha256-/VBbU8FuB8MEuX6MgGO44+gfqVjl1aHHDHncHY2Jo38=";
+    hash = "sha256-rieDDSCit9UcMpCMs2X3+cCS41Wbrp4WWVMzKj/jwEM=";
   };
 
   nativeBuildInputs = [
@@ -43,6 +44,7 @@ buildPythonPackage rec {
     pytest-mock
     pytestCheckHook
     responses
+    syrupy
   ];
 
   pythonImportsCheck = [
@@ -59,5 +61,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/john-kurkowski/tldextract/blob/${version}/CHANGELOG.md";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "tldextract";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix b/nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix
index ee0dfefab645..92481399143d 100644
--- a/nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/toggl-cli/default.nix
@@ -88,6 +88,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Command line tool and set of Python wrapper classes for interacting with toggl's API";
+    mainProgram = "toggl";
     homepage = "https://toggl.uhlir.dev/";
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
diff --git a/nixpkgs/pkgs/development/python-modules/tokenize-rt/default.nix b/nixpkgs/pkgs/development/python-modules/tokenize-rt/default.nix
index 695ce44c20a8..662f96479834 100644
--- a/nixpkgs/pkgs/development/python-modules/tokenize-rt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tokenize-rt/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A wrapper around the stdlib `tokenize` which roundtrips";
+    mainProgram = "tokenize-rt";
     homepage = "https://github.com/asottile/tokenize-rt";
     license = licenses.mit;
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/nixpkgs/pkgs/development/python-modules/tololib/default.nix b/nixpkgs/pkgs/development/python-modules/tololib/default.nix
index 040dc6c1ed29..f0204e08f8d8 100644
--- a/nixpkgs/pkgs/development/python-modules/tololib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tololib/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python Library for Controlling TOLO Sauna/Steam Bath Devices";
+    mainProgram = "tolo-cli";
     homepage = "https://gitlab.com/MatthiasLohr/tololib";
     changelog = "https://gitlab.com/MatthiasLohr/tololib/-/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/toml-adapt/default.nix b/nixpkgs/pkgs/development/python-modules/toml-adapt/default.nix
index a3a8cfc71f39..6af7f0940ed2 100644
--- a/nixpkgs/pkgs/development/python-modules/toml-adapt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/toml-adapt/default.nix
@@ -10,16 +10,16 @@
 
 buildPythonPackage rec {
   pname = "toml-adapt";
-  version = "0.3.2";
-  format = "pyproject";
+  version = "0.3.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "firefly-cpp";
-    repo = pname;
+    repo = "toml-adapt";
     rev = "refs/tags/${version}";
-    hash = "sha256-Za2v1Mon6e0mmGGTNXf1bCV5CIL8hrl7jGz4Lk3N8xc=";
+    hash = "sha256-KD5dTr/wxFbDg3AbfE0jUbgNjvxqDmbHwjY5Dmp6JFI=";
   };
 
   nativeBuildInputs = [
@@ -42,7 +42,9 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A simple Command-line interface for manipulating toml files";
     homepage = "https://github.com/firefly-cpp/toml-adapt";
+    changelog = "https://github.com/firefly-cpp/toml-adapt/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ firefly-cpp ];
+    mainProgram = "toml-adapt";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/tomlkit/default.nix b/nixpkgs/pkgs/development/python-modules/tomlkit/default.nix
index fa978be73bbd..94f63be259a6 100644
--- a/nixpkgs/pkgs/development/python-modules/tomlkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tomlkit/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "tomlkit";
-  version = "0.12.3";
+  version = "0.12.4";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dbr1AS0GUB8HvuW/joAbnzQ+eqxaklgfIPgM5jLmtaQ=";
+    hash = "sha256-fKHPwSIygGUXqFFQR7pmoZNp5x7fJDnQ9YJPkQMrbMM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/toolz/default.nix b/nixpkgs/pkgs/development/python-modules/toolz/default.nix
index 60e38571a759..ccec8644b070 100644
--- a/nixpkgs/pkgs/development/python-modules/toolz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/toolz/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "toolz";
-  version = "0.12.0";
+  version = "0.12.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-iMVwhhxEDuPy9gN8RlRhMij/QMk6bCXg66cNFygsYZQ=";
+    hash = "sha256-7Mo0JmSJPxd6E9rA5rQcvYrCWjWOXyFTFtQ+IQAiT00=";
   };
 
   nativeCheckInputs = [ pytestCheckHook ];
diff --git a/nixpkgs/pkgs/development/python-modules/torch/bin.nix b/nixpkgs/pkgs/development/python-modules/torch/bin.nix
index 0bb415574e39..bee32b616345 100644
--- a/nixpkgs/pkgs/development/python-modules/torch/bin.nix
+++ b/nixpkgs/pkgs/development/python-modules/torch/bin.nix
@@ -40,7 +40,7 @@ in buildPythonPackage {
   nativeBuildInputs = lib.optionals stdenv.isLinux [
     addOpenGLRunpath
     autoPatchelfHook
-    cudaPackages.autoAddOpenGLRunpathHook
+    cudaPackages.autoAddDriverRunpath
   ];
 
   buildInputs = lib.optionals stdenv.isLinux (with cudaPackages; [
diff --git a/nixpkgs/pkgs/development/python-modules/torch/default.nix b/nixpkgs/pkgs/development/python-modules/torch/default.nix
index d6c51904bd9d..10eecd1de99b 100644
--- a/nixpkgs/pkgs/development/python-modules/torch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/torch/default.nix
@@ -338,7 +338,7 @@ in buildPythonPackage rec {
     pythonRelaxDepsHook
     removeReferencesTo
   ] ++ lib.optionals cudaSupport (with cudaPackages; [
-    autoAddOpenGLRunpathHook
+    autoAddDriverRunpath
     cuda_nvcc
   ])
   ++ lib.optionals rocmSupport [ rocmtoolkit_joined ];
diff --git a/nixpkgs/pkgs/development/python-modules/torchmetrics/default.nix b/nixpkgs/pkgs/development/python-modules/torchmetrics/default.nix
index 19885c488c5e..e5c05c6dd497 100644
--- a/nixpkgs/pkgs/development/python-modules/torchmetrics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/torchmetrics/default.nix
@@ -20,7 +20,7 @@
 
 let
   pname = "torchmetrics";
-  version = "1.3.1";
+  version = "1.3.2";
 in
 buildPythonPackage {
   inherit pname version;
@@ -32,7 +32,7 @@ buildPythonPackage {
     owner = "Lightning-AI";
     repo = "torchmetrics";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZFpLoF4t1ld2c3exX9H8AYG0XQM7MKmWe/I8XZmdrZw=";
+    hash = "sha256-0lverGF8HVlnwWmnCjScWoSfWPLZlMF2cHDG+uxNCCQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/torchsde/default.nix b/nixpkgs/pkgs/development/python-modules/torchsde/default.nix
index ba7b2e923612..bffbeeaa2c97 100644
--- a/nixpkgs/pkgs/development/python-modules/torchsde/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/torchsde/default.nix
@@ -52,6 +52,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   disabledTests = [
     # RuntimeError: a view of a leaf Variable that requires grad is being used in an in-place operation.
     "test_adjoint"
diff --git a/nixpkgs/pkgs/development/python-modules/torrent-parser/default.nix b/nixpkgs/pkgs/development/python-modules/torrent-parser/default.nix
index 2e946229747f..bd46ea57e0fb 100644
--- a/nixpkgs/pkgs/development/python-modules/torrent-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/torrent-parser/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "A .torrent file parser and creator for both Python 2 and 3";
+    mainProgram = "pytp";
     homepage    = "https://github.com/7sDream/torrent_parser";
     changelog = "https://github.com/7sDream/torrent_parser/blob/${src.rev}/CHANGELOG.md";
     license     = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/towncrier/default.nix b/nixpkgs/pkgs/development/python-modules/towncrier/default.nix
index e90648ec0810..507160291b56 100644
--- a/nixpkgs/pkgs/development/python-modules/towncrier/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/towncrier/default.nix
@@ -62,6 +62,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Utility to produce useful, summarised news files";
+    mainProgram = "towncrier";
     homepage = "https://github.com/twisted/towncrier/";
     changelog = "https://github.com/twisted/towncrier/blob/${version}/NEWS.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/tox/default.nix b/nixpkgs/pkgs/development/python-modules/tox/default.nix
index 8d227bb5df85..28176021d3bf 100644
--- a/nixpkgs/pkgs/development/python-modules/tox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tox/default.nix
@@ -24,14 +24,14 @@
 
 buildPythonPackage rec {
   pname = "tox";
-  version = "4.11.4";
+  version = "4.14.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "tox-dev";
     repo = "tox";
     rev = "refs/tags/${version}";
-    hash = "sha256-pZmT8392YuHzCrAquPpveByYw3x6bkMGCUToCAqAGc8=";
+    hash = "sha256-b+HOv0xMIE3k0u39YAAyVbiJPnOAamATZeZYTBUyAZM=";
   };
 
   postPatch = ''
@@ -70,6 +70,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/tox-dev/tox/releases/tag/${version}";
     description = "A generic virtualenv management and test command line tool";
+    mainProgram = "tox";
     homepage = "https://github.com/tox-dev/tox";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/tplink-omada-client/default.nix b/nixpkgs/pkgs/development/python-modules/tplink-omada-client/default.nix
index d71d2c86194f..82150d9e0518 100644
--- a/nixpkgs/pkgs/development/python-modules/tplink-omada-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tplink-omada-client/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tplink-omada-client";
-  version = "1.3.11";
+  version = "1.3.12";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "tplink_omada_client";
     inherit version;
-    hash = "sha256-/mH9VqdF1l89qtAhug+ii4PCRO0PxKDr7LzvevjuZgc=";
+    hash = "sha256-ND+n2KCj5g1KdSWf/MxJwzprLZOkSUUC4Sp9Z51Tzkw=";
   };
 
   nativeBuildInputs = [
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for the TP-Link Omada SDN Controller API";
+    mainProgram = "omada";
     homepage = "https://github.com/MarkGodwin/tplink-omada-api";
     changelog = "https://github.com/MarkGodwin/tplink-omada-api/releases/tag/release%2Fv${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/tpm2-pytss/default.nix b/nixpkgs/pkgs/development/python-modules/tpm2-pytss/default.nix
index b6f43516f3a3..484f3dc2d16e 100644
--- a/nixpkgs/pkgs/development/python-modules/tpm2-pytss/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tpm2-pytss/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
 , pythonOlder
 , asn1crypto
 , cffi
@@ -20,50 +19,17 @@
 
 buildPythonPackage rec {
   pname = "tpm2-pytss";
-  version = "2.1.0";
+  version = "2.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-W1tLFFb9wa7vPSw5cL6qB4yPfyZIyXppvPYMWi+VyJc=";
+    hash = "sha256-uPFUc0IvN39ZxyF9zRR5FlzOYt+jOTTsl2oni68unv4=";
   };
 
   patches = [
-    # This patches the call to the C preprocessor not to include types
-    # pycparser does not handle.
-    # `hardeningDisable = [ "fortify" ]` would have the same effect but
-    # would also disable hardening from generated FFI objects.
-    #
-    # backport of https://github.com/tpm2-software/tpm2-pytss/pull/523
-    (fetchpatch {
-      url = "https://github.com/baloo/tpm2-pytss/commit/099c069f28cfcd0a3019adebfeafa976f9395221.patch";
-      sha256 = "sha256-wU2WfLYFDmkhGzYornZ386tB3zb3GYfGOTc+/QOFb1o=";
-    })
-
-    # Lookup tcti via getinfo not system's ld_library_path
-    # https://github.com/tpm2-software/tpm2-pytss/pull/525
-    (fetchpatch {
-      url = "https://github.com/tpm2-software/tpm2-pytss/commit/97289a08ddf44f7bdccdd122d6055c69e12dc584.patch";
-      sha256 = "sha256-VFq3Hv4I8U8ifP/aSjyu0BiW/4jfPlRDKqRcqUGw6UQ=";
-    })
-
-    (fetchpatch {
-      name = "test-new-cryptography.patch";
-      url = "https://github.com/tpm2-software/tpm2-pytss/commit/e4006e6066c015d9ed55befa9b98247fbdcafd7d.diff";
-      sha256 = "sha256-Wxe9u7Cvv2vKMGTcK3X8W1Mq/nCt70zrzWUKA+83Sas=";
-    })
-
-    # Inheritance in newer cryptography is not possible anymore
-    # for `RSAPrivateNumbers` because of a Rust implementation.
-    # https://github.com/tpm2-software/tpm2-pytss/pull/562
-    (fetchpatch {
-      name = "fix-newer-cryptography-42-0-1-support.patch";
-      url = "https://github.com/tpm2-software/tpm2-pytss/commit/0fbb9d099370c0a7031dd13990986538f586836a.patch";
-      sha256 = "sha256-xnQIr4/iJra0+rn5estVqSvG8pXcuwWykmmayBpCzgw=";
-    })
-
     # Fix hardcoded `fapi-config.json` configuration path
     ./fapi-config.patch
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/tqdm/default.nix b/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
index 2cd490e844e5..1fcc2b082766 100644
--- a/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
@@ -17,12 +17,12 @@
 
 buildPythonPackage rec {
   pname = "tqdm";
-  version = "4.66.1";
+  version = "4.66.2";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2I5lH5242FUaYlVtPP+eMDQnTKXWbpMZfPJJDi3Lacc=";
+    hash = "sha256-bNUs3w/vDg9UMpnPyW/skNe4p+iHRfQR7DPrRNXtNTE=";
   };
 
   nativeBuildInputs = [
@@ -63,6 +63,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Fast, Extensible Progress Meter";
+    mainProgram = "tqdm";
     homepage = "https://github.com/tqdm/tqdm";
     changelog = "https://tqdm.github.io/releases/";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/trafilatura/default.nix b/nixpkgs/pkgs/development/python-modules/trafilatura/default.nix
index 5ebb2280f31b..cdfbf4b04600 100644
--- a/nixpkgs/pkgs/development/python-modules/trafilatura/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trafilatura/default.nix
@@ -10,20 +10,25 @@
 , justext
 , lxml
 , urllib3
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "trafilatura";
-  version = "1.7.0";
-  format = "setuptools";
+  version = "1.8.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-oWbmfwBaahLvGU9Ix8n6ThsONnVv3Stk4CRzw1aWLwQ=";
+    hash = "sha256-6lSHXtJPPq+vGZuKD4m1g1x880NzPDLvvEr50wV6j3I=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     certifi
     charset-normalizer
@@ -34,10 +39,12 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
-  # disable tests that require an internet connection
   disabledTests = [
+    # Disable tests that require an internet connection
     "test_download"
     "test_fetch"
     "test_redirection"
@@ -51,17 +58,22 @@ buildPythonPackage rec {
   # patch out gui cli because it is not supported in this packaging
   # nixify path to the trafilatura binary in the test suite
   postPatch = ''
-    substituteInPlace setup.py --replace '"trafilatura_gui=trafilatura.gui:main",' ""
-    substituteInPlace tests/cli_tests.py --replace "trafilatura_bin = 'trafilatura'" "trafilatura_bin = '$out/bin/trafilatura'"
+    substituteInPlace setup.py \
+      --replace-fail '"trafilatura_gui=trafilatura.gui:main",' ""
+    substituteInPlace tests/cli_tests.py \
+      --replace-fail "trafilatura_bin = 'trafilatura'" "trafilatura_bin = '$out/bin/trafilatura'"
   '';
 
-  pythonImportsCheck = [ "trafilatura" ];
+  pythonImportsCheck = [
+    "trafilatura"
+  ];
 
   meta = with lib; {
     description = "Python package and command-line tool designed to gather text on the Web";
     homepage = "https://trafilatura.readthedocs.io";
     changelog = "https://github.com/adbar/trafilatura/blob/v${version}/HISTORY.md";
-    license = licenses.gpl3Plus;
+    license = licenses.asl20;
     maintainers = with maintainers; [ jokatzke ];
+    mainProgram = "trafilatura";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/traitlets/default.nix b/nixpkgs/pkgs/development/python-modules/traitlets/default.nix
index f138489cf2bf..012347e2f76b 100644
--- a/nixpkgs/pkgs/development/python-modules/traitlets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/traitlets/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "traitlets";
-  version = "5.14.0";
+  version = "5.14.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-/NqorEnATfoO0+4zhO9t/bXW83QVAr4kcnlAdnkpZ3I=";
+    hash = "sha256-hYUQWzcaBLgxakPVzinAmFdcLkd4ULYrhIuWTxREUn4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/transformers/default.nix b/nixpkgs/pkgs/development/python-modules/transformers/default.nix
index 0a0af07b89ee..ac2af381ff02 100644
--- a/nixpkgs/pkgs/development/python-modules/transformers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transformers/default.nix
@@ -53,7 +53,7 @@
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "4.38.2";
+  version = "4.39.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -62,7 +62,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "transformers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/rt2XHN46NcFwlM9MOygVvpQkfPVu2eCNybYmSj711M=";
+    hash = "sha256-OzuiKzhgI9eRTPq3l7x4aw3fxvCe4080pK1RKzcC1RQ=";
   };
 
   propagatedBuildInputs = [
@@ -185,6 +185,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/huggingface/transformers";
     description = "Natural Language Processing for TensorFlow 2.0 and PyTorch";
+    mainProgram = "transformers-cli";
     changelog = "https://github.com/huggingface/transformers/releases/tag/v${version}";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/python-modules/translatepy/default.nix b/nixpkgs/pkgs/development/python-modules/translatepy/default.nix
index cb3c6c19d8b1..0fc86af44cc4 100644
--- a/nixpkgs/pkgs/development/python-modules/translatepy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/translatepy/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A module grouping multiple translation APIs";
+    mainProgram = "translatepy";
     homepage = "https://github.com/Animenosekai/translate";
     license = with licenses; [ agpl3Only ];
     maintainers = with maintainers; [ emilytrau ];
diff --git a/nixpkgs/pkgs/development/python-modules/tree-sitter/default.nix b/nixpkgs/pkgs/development/python-modules/tree-sitter/default.nix
index cd572618a2fd..039b9ce21cea 100644
--- a/nixpkgs/pkgs/development/python-modules/tree-sitter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tree-sitter/default.nix
@@ -1,37 +1,52 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, fetchpatch
 , pytestCheckHook
 , pythonOlder
 , setuptools
-, wheel
 }:
 
 buildPythonPackage rec {
   pname = "tree-sitter";
-  version = "0.20.4";
-  format = "pyproject";
+  version = "0.21.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    pname = "tree_sitter";
-    inherit version;
-    hash = "sha256-atsSPi8+VjmbvyNZkkYzyILMQO6DRIhSALygki9xO+U=";
+  src = fetchFromGitHub {
+    owner = "tree-sitter";
+    repo = "py-tree-sitter";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-U4ZdU0lxjZO/y0q20bG5CLKipnfpaxzV3AFR6fGS7m4=";
+    fetchSubmodules = true;
   };
 
+  patches = [
+    #  Replace distutils with setuptools, https://github.com/tree-sitter/py-tree-sitter/pull/214
+    (fetchpatch {
+      name = "replace-distutils.patch";
+      url = "https://github.com/tree-sitter/py-tree-sitter/commit/80d3cae493c4a47e49cc1d2ebab0a8eaf7617825.patch";
+      hash = "sha256-00coI8/COpYMiSflAECwh6yJCMJj/ucFEn18Npj2g+Q=";
+    })
+  ];
+
   nativeBuildInputs = [
     setuptools
-    wheel
   ];
 
-  # PyPI tarball doesn't contains tests and source has additional requirements
-  doCheck = false;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [
     "tree_sitter"
   ];
 
+  preCheck = ''
+    rm -r tree_sitter
+  '';
+
   meta = with lib; {
     description = "Python bindings to the Tree-sitter parsing library";
     homepage = "https://github.com/tree-sitter/py-tree-sitter";
diff --git a/nixpkgs/pkgs/development/python-modules/trezor/default.nix b/nixpkgs/pkgs/development/python-modules/trezor/default.nix
index 42e1352049b5..7a4403550964 100644
--- a/nixpkgs/pkgs/development/python-modules/trezor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trezor/default.nix
@@ -80,6 +80,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for communicating with Trezor Hardware Wallet";
+    mainProgram = "trezorctl";
     homepage = "https://github.com/trezor/trezor-firmware/tree/master/python";
     license = licenses.gpl3;
     maintainers = with maintainers; [ np prusnak mmahut ];
diff --git a/nixpkgs/pkgs/development/python-modules/trimesh/default.nix b/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
index c3f43507af33..79540ea997ee 100644
--- a/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "trimesh";
-  version = "4.1.7";
+  version = "4.2.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bO7fIrk+ScSvz1iwLMdPN+fK9T5VhIEitxdZRnLBSxA=";
+    hash = "sha256-uS6oVNS+JBN61SEVDwLQDoCf60SwqXV7831E2J+hb7I=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/trio-asyncio/default.nix b/nixpkgs/pkgs/development/python-modules/trio-asyncio/default.nix
index de238ddc7c23..a74b3889facd 100644
--- a/nixpkgs/pkgs/development/python-modules/trio-asyncio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trio-asyncio/default.nix
@@ -2,19 +2,19 @@
 , buildPythonPackage
 , fetchPypi
 , setuptools
+, greenlet
 , trio
 , outcome
 , sniffio
 , exceptiongroup
 , pytest-trio
 , pytestCheckHook
-, pythonAtLeast
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "trio-asyncio";
-  version = "0.13.0";
+  version = "0.14.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,12 +22,12 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "trio_asyncio";
     inherit version;
-    hash = "sha256-fKJLIaGxes3mV1LWkziGuiQoTlL0srDe/k6o7YpjSmI=";
+    hash = "sha256-msSKQ8vhZxtBIh7HNq4M2qc0yKOErGNiCWLBXXse3WQ=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "'pytest-runner'" ""
+      --replace '"pytest-runner"' ""
   '';
 
   nativeBuildInputs = [
@@ -35,6 +35,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    greenlet
     trio
     outcome
     sniffio
@@ -42,6 +43,9 @@ buildPythonPackage rec {
     exceptiongroup
   ];
 
+  # RuntimeWarning: Can't run the Python asyncio tests because they're not installed. On a Debian/Ubuntu system, you might need to install the libpython3.11-testsuite package.
+  doCheck = false;
+
   nativeCheckInputs = [
     pytest-trio
     pytestCheckHook
diff --git a/nixpkgs/pkgs/development/python-modules/trio/default.nix b/nixpkgs/pkgs/development/python-modules/trio/default.nix
index 648f91f07b9b..cc276fef5c52 100644
--- a/nixpkgs/pkgs/development/python-modules/trio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trio/default.nix
@@ -37,16 +37,21 @@ let
 in
 buildPythonPackage rec {
   pname = "trio";
-  version = "0.23.1";
+  version = "0.24.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-FviffcyPe53N7B/Nhj4MA5r20PmiL439Vvdddexz/Ug=";
+    hash = "sha256-/6CadKa/gbhPhhOQn7C+ruhHV0UBg6ei4LR7RVwMrF0=";
   };
 
+  postPatch = ''
+    substituteInPlace src/trio/_tests/test_subprocess.py \
+      --replace "/bin/sleep" "${coreutils}/bin/sleep"
+  '';
+
   nativeBuildInputs = [
     setuptools
   ];
@@ -75,10 +80,9 @@ buildPythonPackage rec {
   ];
 
   preCheck = ''
-    substituteInPlace trio/_tests/test_subprocess.py \
-      --replace "/bin/sleep" "${coreutils}/bin/sleep"
-
     export HOME=$TMPDIR
+    # $out is first in path which causes "import file mismatch"
+    PYTHONPATH=$PWD/src:$PYTHONPATH
   '';
 
   # It appears that the build sandbox doesn't include /etc/services, and these tests try to use it.
@@ -96,7 +100,7 @@ buildPythonPackage rec {
 
   disabledTestPaths = [
     # linters
-    "trio/_tests/tools/test_gen_exports.py"
+    "src/trio/_tests/tools/test_gen_exports.py"
   ];
 
   pytestFlagsArray = [
diff --git a/nixpkgs/pkgs/development/python-modules/troposphere/default.nix b/nixpkgs/pkgs/development/python-modules/troposphere/default.nix
index adb4df9753a3..f4645afc461b 100644
--- a/nixpkgs/pkgs/development/python-modules/troposphere/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/troposphere/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "troposphere";
-  version = "4.6.0";
+  version = "4.7.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "cloudtools";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-DxLgAEuIfO8K42DbkOaPjE+MS6/WKnybDsszuCXwufM=";
+    hash = "sha256-9zzbBtIJ4v+eI0eJZ6vGUABN4i9GLJcMAzerRSnzpqQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/trove-classifiers/default.nix b/nixpkgs/pkgs/development/python-modules/trove-classifiers/default.nix
index f65c9e651bed..64829175c198 100644
--- a/nixpkgs/pkgs/development/python-modules/trove-classifiers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trove-classifiers/default.nix
@@ -10,14 +10,14 @@
 let
   self = buildPythonPackage rec {
     pname = "trove-classifiers";
-    version = "2024.1.8";
+    version = "2024.3.3";
     pyproject = true;
 
     disabled = pythonOlder "3.7";
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-bjbK9DD/ZIXEtXpMazZKE/aomNFrlBfGw3Rn5ZwUsFo=";
+      hash = "sha256-337f+cZ/+GtzNiiZgzCxgOgdElseCWU22DrA/XlnP9w=";
     };
 
     postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/tsfresh/default.nix b/nixpkgs/pkgs/development/python-modules/tsfresh/default.nix
index a4541ba7b98c..42cd12eb9d00 100644
--- a/nixpkgs/pkgs/development/python-modules/tsfresh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tsfresh/default.nix
@@ -85,6 +85,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Automatic extraction of relevant features from time series";
+    mainProgram = "run_tsfresh";
     homepage = "https://github.com/blue-yonder/tsfresh";
     changelog = "https://github.com/blue-yonder/tsfresh/blob/${src.rev}/CHANGES.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/tskit/default.nix b/nixpkgs/pkgs/development/python-modules/tskit/default.nix
index 522d4a57adbc..c76b3c497295 100644
--- a/nixpkgs/pkgs/development/python-modules/tskit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tskit/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "The tree sequence toolkit";
+    mainProgram = "tskit";
     homepage = "https://github.com/tskit-dev/tskit";
     license = licenses.mit;
     maintainers = with maintainers; [ alxsimon ];
diff --git a/nixpkgs/pkgs/development/python-modules/ttls/default.nix b/nixpkgs/pkgs/development/python-modules/ttls/default.nix
index e2bfe61504af..c3f18f3d5d40 100644
--- a/nixpkgs/pkgs/development/python-modules/ttls/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ttls/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to interact with Twinkly LEDs";
+    mainProgram = "ttls";
     homepage = "https://github.com/jschlyter/ttls";
     changelog = "https://github.com/jschlyter/ttls/blob/v${version}/CHANGES.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ttn-client/default.nix b/nixpkgs/pkgs/development/python-modules/ttn-client/default.nix
new file mode 100644
index 000000000000..ada7cc390b69
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ttn-client/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, hatchling
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "ttn-client";
+  version = "0.0.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "angelnu";
+    repo = "thethingsnetwork_python_client";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-oHGv9huk400nPl4ytV8uxzK7eENpoBHt8uFjD2Ck67w=";
+  };
+
+  nativeBuildInputs = [
+    hatchling
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "ttn_client"
+  ];
+
+  meta = with lib; {
+    description = "Module to fetch/receive and parse uplink messages from The Thinks Network";
+    homepage = "https://github.com/angelnu/thethingsnetwork_python_client";
+    changelog = "https://github.com/angelnu/thethingsnetwork_python_client/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ttp/default.nix b/nixpkgs/pkgs/development/python-modules/ttp/default.nix
index 29d9bf7cc5f5..3df86d13cf3a 100644
--- a/nixpkgs/pkgs/development/python-modules/ttp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ttp/default.nix
@@ -104,6 +104,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/dmulyalin/ttp/releases/tag/${version}";
     description = "Template Text Parser";
+    mainProgram = "ttp";
     homepage = "https://github.com/dmulyalin/ttp";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/tubeup/default.nix b/nixpkgs/pkgs/development/python-modules/tubeup/default.nix
index df06e4bd0263..aeeee4a81edd 100644
--- a/nixpkgs/pkgs/development/python-modules/tubeup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tubeup/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Youtube (and other video site) to Internet Archive Uploader";
+    mainProgram = "tubeup";
     homepage = "https://github.com/bibanon/tubeup";
     changelog = "https://github.com/bibanon/tubeup/releases/tag/${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/turnt/default.nix b/nixpkgs/pkgs/development/python-modules/turnt/default.nix
index b003f134004a..27aaee039d3b 100644
--- a/nixpkgs/pkgs/development/python-modules/turnt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/turnt/default.nix
@@ -31,6 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Snapshot testing tool";
+    mainProgram = "turnt";
     homepage = "https://github.com/cucapra/turnt";
     license = licenses.mit;
     maintainers = with maintainers; [ leungbk ];
diff --git a/nixpkgs/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix
new file mode 100644
index 000000000000..dd95baba855d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, requests
+, paho-mqtt
+, cryptography
+}:
+let
+  pname = "tuya-device-sharing-sdk";
+  version = "0.2.0";
+in
+buildPythonPackage {
+  inherit pname version;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-fu8zh59wlnxtstNbNL8mIm10tiXy22oPbi6oUy5x8c8=";
+  };
+
+  # workaround needed, upstream issue: https://github.com/tuya/tuya-device-sharing-sdk/issues/10
+  postPatch = ''
+    touch requirements.txt
+  '';
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    requests
+    paho-mqtt
+    cryptography
+  ];
+
+  doCheck = false; # no tests
+
+  meta = with lib; {
+    description = "Tuya Device Sharing SDK";
+    homepage = "https://github.com/tuya/tuya-device-sharing-sdk";
+    license = licenses.mit;
+    maintainers = with maintainers; [ aciceri ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/twilio/default.nix b/nixpkgs/pkgs/development/python-modules/twilio/default.nix
index 3ca58dba99bb..e62ee37e4024 100644
--- a/nixpkgs/pkgs/development/python-modules/twilio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twilio/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "9.0.0";
+  version = "9.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "twilio";
     repo = "twilio-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-5PhINmG1y+oAEpfxaB8ZFHfWlo0jRZnUKO5oUPcnFuM=";
+    hash = "sha256-xFl+Ucu7ve7She8zUaW5YdK0gE733NNadDka4NeJ8Tg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/twill/default.nix b/nixpkgs/pkgs/development/python-modules/twill/default.nix
index f15a45509e58..ddea5117a6c0 100644
--- a/nixpkgs/pkgs/development/python-modules/twill/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twill/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "twill";
-  version = "3.2.1";
+  version = "3.2.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JJheUl/Ar8BWNpzJzMvVgk4KeitoQZ8GjbFPN9dEd+g=";
+    hash = "sha256-m4jrxx7udWkRXzYS0Yfd14tKVHt8kGYPn2eTa4unOdc=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/twine/default.nix b/nixpkgs/pkgs/development/python-modules/twine/default.nix
index e656970ef627..265008731bd1 100644
--- a/nixpkgs/pkgs/development/python-modules/twine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twine/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "twine";
-  version = "4.0.2";
+  version = "5.0.0";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nhAu9f3VogZh64j61GM4gGw70yzx23KWA/42l7G8g8g=";
+    hash = "sha256-ibDMfTcKS2ZCHMYQLyaaqRD+DxhhwST1c88t3tvBDPQ=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
@@ -46,6 +46,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Collection of utilities for interacting with PyPI";
+    mainProgram = "twine";
     homepage = "https://github.com/pypa/twine";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ fridh ];
diff --git a/nixpkgs/pkgs/development/python-modules/twisted/default.nix b/nixpkgs/pkgs/development/python-modules/twisted/default.nix
index f641afea9b66..d919aa568d9d 100644
--- a/nixpkgs/pkgs/development/python-modules/twisted/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twisted/default.nix
@@ -54,7 +54,7 @@
 
 buildPythonPackage rec {
   pname = "twisted";
-  version = "23.10.0";
+  version = "24.3.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -62,7 +62,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit pname version;
     extension = "tar.gz";
-    hash = "sha256-mHhHoHkKLFlxl2E2huJ4T9VBZ986VdD7F8hBIwXXbOU=";
+    hash = "sha256-azi27Ocpa14SLJ6xfaLuqz2YoZj1DKnv0A+wPltP1K4=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/type-infer/default.nix b/nixpkgs/pkgs/development/python-modules/type-infer/default.nix
index 7983ac8d29bf..55af22a1c94b 100644
--- a/nixpkgs/pkgs/development/python-modules/type-infer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/type-infer/default.nix
@@ -24,7 +24,7 @@ let
 in
 buildPythonPackage rec {
   pname = "type-infer";
-  version = "0.0.17";
+  version = "0.0.18";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "type_infer";
     inherit version;
-    hash = "sha256-2bPXJuGDXTVoYUP9IfwyRy8LbMT/ySoHDzuelrOq/DU=";
+    hash = "sha256-nA5TlyHpCueFWqUggS7T/eKSLlffp0pIyGCouwXPZ28=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/typed-settings/default.nix b/nixpkgs/pkgs/development/python-modules/typed-settings/default.nix
index 6415e590af06..4b28386a1192 100644
--- a/nixpkgs/pkgs/development/python-modules/typed-settings/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/typed-settings/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "typed-settings";
-  version = "23.1.1";
+  version = "24.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "typed_settings";
     inherit version;
-    hash = "sha256-0esWiZ0dVnIJ+TDSD+0+zq63I1JcKH3iVe34pFRQX9U=";
+    hash = "sha256-luUfVsN6uNYZkXfcAUc5P6Y+WYpfAdU6D01kgQMNniw=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/types-colorama/default.nix b/nixpkgs/pkgs/development/python-modules/types-colorama/default.nix
index 6651855d9569..a3e5cfba04bd 100644
--- a/nixpkgs/pkgs/development/python-modules/types-colorama/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-colorama/default.nix
@@ -1,18 +1,23 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "types-colorama";
-  version = "0.4.15.20240205";
-  format = "setuptools";
+  version = "0.4.15.20240311";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-euT1jUB9OH9PmLJNgeG3ZX7HVOodxGGa5b0n8MNnY34=";
+    hash = "sha256-oo5/mNF9KxT7lWXTI4jkGfQQj1V6fZOaZjGZabK5nHo=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # Module has no tests
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/types-dateutil/default.nix b/nixpkgs/pkgs/development/python-modules/types-dateutil/default.nix
index a0e4c6e9121d..c02934519ca8 100644
--- a/nixpkgs/pkgs/development/python-modules/types-dateutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-dateutil/default.nix
@@ -1,19 +1,24 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "types-dateutil";
-  version = "2.8.19.20240106";
-  format = "setuptools";
+  version = "2.9.0.20240316";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "types-python-dateutil";
     inherit version;
-    hash = "sha256-H42yIcO5jmygLqg6WDcbIsN09Crlu98YbbnJp2WBRZ8=";
+    hash = "sha256-XS8uJAuGkF5AlE3Xh9ttqSY/Deq+8Qdt2u15c1HsAgI=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   pythonImportsCheck = [
     "dateutil-stubs"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/types-decorator/default.nix b/nixpkgs/pkgs/development/python-modules/types-decorator/default.nix
index d118f349ebd0..3cc020d8a9f2 100644
--- a/nixpkgs/pkgs/development/python-modules/types-decorator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-decorator/default.nix
@@ -1,18 +1,23 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "types-decorator";
-  version = "5.1.8.20240106";
-  format = "setuptools";
+  version = "5.1.8.20240310";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Mv+SszYVBg0judN2ASS9s1BsSqjZ61CWPPGjwguey78=";
+    hash = "sha256-UuMWsDeDiGqKKr3CKPcHFoC6ZYlFRc0ghevjz4hoSg4=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # Modules doesn't have tests
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/types-deprecated/default.nix b/nixpkgs/pkgs/development/python-modules/types-deprecated/default.nix
index 443a605a03c2..374ed108b7a2 100644
--- a/nixpkgs/pkgs/development/python-modules/types-deprecated/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-deprecated/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "types-deprecated";
-  version = "1.2.9.20240106";
+  version = "1.2.9.20240311";
   pyproject = true;
 
   src = fetchPypi {
     pname = "types-Deprecated";
     inherit version;
-    hash = "sha256-r+uBnpoD0KV5XxjIj+YgfEjtE8Y56TKBvZ2be7bTQxA=";
+    hash = "sha256-BoDomYmoFCcH3oED8V0YJEWlM8EEf9m36MVFkQHpuQo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/types-docutils/default.nix b/nixpkgs/pkgs/development/python-modules/types-docutils/default.nix
index 8726d18bdabf..e8ebd39a07db 100644
--- a/nixpkgs/pkgs/development/python-modules/types-docutils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-docutils/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-docutils";
-  version = "0.20.0.20240308";
+  version = "0.20.0.20240317";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-djDh9+aBlyJOaDSvrVEuhmGOB55zeAoVr4PZCjhO/JA=";
+    hash = "sha256-I2V6qw3lhjTREZFLZ3sYVYZ/Fs2anqEQJU4jtIZT4ag=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/types-markdown/default.nix b/nixpkgs/pkgs/development/python-modules/types-markdown/default.nix
index e0b1301062a6..3ea38cde3d83 100644
--- a/nixpkgs/pkgs/development/python-modules/types-markdown/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-markdown/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "types-markdown";
-  version = "3.5.0.20240129";
+  version = "3.6.0.20240316";
   pyproject = true;
 
   src = fetchPypi {
     pname = "types-Markdown";
     inherit version;
-    hash = "sha256-ms02/vJk2e1aljRcRffYDw2WcFnpIhOZizBG+7ZPZ/w=";
+    hash = "sha256-3p+4SGC1W2R7FwyldolfzKYbk0puzcZcMZMsZ5W0QLg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/types-mock/default.nix b/nixpkgs/pkgs/development/python-modules/types-mock/default.nix
index b6a626536480..cde1a52b9319 100644
--- a/nixpkgs/pkgs/development/python-modules/types-mock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-mock/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-mock";
-  version = "5.1.0.20240106";
+  version = "5.1.0.20240311";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-E8o3nVcQzLPxj2mt5bCIgYdMuDOD2PtJsdTaydXF0JA=";
+    hash = "sha256-dHJ5eYbYMBb5b95/c1d9EpsM2KjQt4NIenvjMNV7pDE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/types-pillow/default.nix b/nixpkgs/pkgs/development/python-modules/types-pillow/default.nix
index a622e86996cd..b6b882218d19 100644
--- a/nixpkgs/pkgs/development/python-modules/types-pillow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-pillow/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "types-pillow";
-  version = "10.2.0.20240206";
+  version = "10.2.0.20240311";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "types-Pillow";
-    hash = "sha256-8N5RB/+DYv/bvVPsiWICrJBearIq54S0a82tFg6hQ7k=";
+    hash = "sha256-9hH2uvfDeE/lUO6SsQgGD1VEpHw3xzrLgaeF8cYxJ3I=";
   };
 
   # Modules doesn't have tests
diff --git a/nixpkgs/pkgs/development/python-modules/types-protobuf/default.nix b/nixpkgs/pkgs/development/python-modules/types-protobuf/default.nix
index 362681861f59..fb7da185e2ce 100644
--- a/nixpkgs/pkgs/development/python-modules/types-protobuf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-protobuf/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-protobuf";
-  version = "4.24.0.20240129";
+  version = "4.24.0.20240302";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ioPdO5t2oz4I2GNsXaohKs4TlkGO2Rg3Y1/NVkpiSJE=";
+    hash = "sha256-8iwAzAzqlyLnHhTTibukKa+eNadKlJcZwWcgOlq74uQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/types-psutil/default.nix b/nixpkgs/pkgs/development/python-modules/types-psutil/default.nix
index fcfd7f5d0a65..0d51f30d12aa 100644
--- a/nixpkgs/pkgs/development/python-modules/types-psutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-psutil/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-psutil";
-  version = "5.9.5.17";
+  version = "5.9.5.20240205";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-99h2mBLXKktRPX7J61WA/i9gE/wnA5SmA8tlNIEfPk0=";
+    hash = "sha256-Ud82o2GqWXv0g9zFtY8qt6qHRSo20tqXyQmU1qge90M=";
   };
 
   # Module doesn't have tests
diff --git a/nixpkgs/pkgs/development/python-modules/types-psycopg2/default.nix b/nixpkgs/pkgs/development/python-modules/types-psycopg2/default.nix
index b2fef1134aa1..4dce98b9c379 100644
--- a/nixpkgs/pkgs/development/python-modules/types-psycopg2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-psycopg2/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-psycopg2";
-  version = "2.9.21.20240218";
+  version = "2.9.21.20240311";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MITNgHA4piyA+1vni0HYVbSKBgMWEB6ln9hcMC77V9Q=";
+    hash = "sha256-cilF3/pqcpvrxmDxQTfzft/OrVosFesjQhKn0BfugHI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/types-pyopenssl/default.nix b/nixpkgs/pkgs/development/python-modules/types-pyopenssl/default.nix
index 32859f099955..d7cf53e4ff68 100644
--- a/nixpkgs/pkgs/development/python-modules/types-pyopenssl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-pyopenssl/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "types-pyopenssl";
-  version = "24.0.0.20240228";
+  version = "24.0.0.20240311";
   format = "setuptools";
 
   src = fetchPypi {
     pname = "types-pyOpenSSL";
     inherit version;
-    hash = "sha256-zZkHF9iqN0PvDnPg9GLmS1TZDDBCSSMtSP7OTw98PGo=";
+    hash = "sha256-e8oAz8Tn75xdJmPGocBow1eY5ZZwWVQ59ilue6PVgIM=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/types-redis/default.nix b/nixpkgs/pkgs/development/python-modules/types-redis/default.nix
index c5515cf1f70f..9a3685c1bb0d 100644
--- a/nixpkgs/pkgs/development/python-modules/types-redis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-redis/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "types-redis";
-  version = "4.6.0.20240218";
+  version = "4.6.0.20240311";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UQPX5pDlx0yXShYTF7LVmsIwPPi+8kF1sEwqTDSGyzk=";
+    hash = "sha256-4Em73/DgofjnAbZGNoESkdIb/3m/HnhQhQpEBVIkqF8=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/types-requests/default.nix b/nixpkgs/pkgs/development/python-modules/types-requests/default.nix
index 520927662c2b..ef7b45698158 100644
--- a/nixpkgs/pkgs/development/python-modules/types-requests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-requests/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.31.0.20240218";
+  version = "2.31.0.20240311";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8XIduoOFlY9QSlOGJAuS3kc04EegikB1HBZU0awzScU=";
+    hash = "sha256-scG2ar+3+nmq4JCXqBHEqpcTDriDHGDkeu5Mo0RzHKU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/types-setuptools/default.nix b/nixpkgs/pkgs/development/python-modules/types-setuptools/default.nix
index 7b9da3aed9d7..881db628ede5 100644
--- a/nixpkgs/pkgs/development/python-modules/types-setuptools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/types-setuptools/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-setuptools";
-  version = "69.1.0.20240308";
+  version = "69.1.0.20240310";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-rU9eUSUe7cvkqo2whEr2ZUBUqvycD20/H6APcHPBd2c=";
+    hash = "sha256-/A4QgvVcl0YRvOhEseW+stGolVAfSkZOSDBVkqQmgQA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/typeshed-client/default.nix b/nixpkgs/pkgs/development/python-modules/typeshed-client/default.nix
index 03877756e572..153f8a79daf4 100644
--- a/nixpkgs/pkgs/development/python-modules/typeshed-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/typeshed-client/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "typeshed-client";
-  version = "2.4.0";
+  version = "2.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "JelleZijlstra";
     repo = "typeshed_client";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g3FECKebKeM3JPWem6+Y9T27PcAxVxj1SiBd5siLSJ4=";
+    hash = "sha256-lITreXYn/ZOc1fF2Sqcn8UDrZAjWYfjFSEaAxqTHb4s=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix b/nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix
index 6a908dfd8e54..eb1c9c58d690 100644
--- a/nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "typing-extensions";
-  version = "4.8.0";
+  version = "4.10.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "typing_extensions";
     inherit version;
-    hash = "sha256-345DOenLdzV1WMvbzsozwwNxTPhh0e7xXhBwBVrot+8=";
+    hash = "sha256-sKvXyJ6PuW+Y2xjYYQb/HZCraSAE63Rs9u2iaC+Rs8s=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/tzdata/default.nix b/nixpkgs/pkgs/development/python-modules/tzdata/default.nix
index 91bbc854a26d..ac25b071a31b 100644
--- a/nixpkgs/pkgs/development/python-modules/tzdata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tzdata/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "tzdata";
-  version = "2023.3";
+  version = "2024.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ee8eCOVKyw1Plb2xvgXaZZZz3krL0hv5xp6UzF6Qejo=";
+    hash = "sha256-JnQSD42JGQl1HDirzf04asCloRJ5VPvDMq9rXOrgfv0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/uamqp/default.nix b/nixpkgs/pkgs/development/python-modules/uamqp/default.nix
index a868fde95be0..334a4ce20e4b 100644
--- a/nixpkgs/pkgs/development/python-modules/uamqp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uamqp/default.nix
@@ -8,7 +8,6 @@
 , CFNetwork
 , cmake
 , CoreFoundation
-, libcxxabi
 , openssl
 , Security
 , pytestCheckHook
@@ -84,10 +83,6 @@ buildPythonPackage rec {
     certifi
   ];
 
-  LDFLAGS = lib.optionals stdenv.isDarwin [
-    "-L${lib.getLib libcxxabi}/lib"
-  ];
-
   dontUseCmakeConfigure = true;
 
   preCheck = ''
diff --git a/nixpkgs/pkgs/development/python-modules/uarray/default.nix b/nixpkgs/pkgs/development/python-modules/uarray/default.nix
index 74ad0eb708a0..7429ed5750ac 100644
--- a/nixpkgs/pkgs/development/python-modules/uarray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uarray/default.nix
@@ -38,7 +38,7 @@ buildPythonPackage rec {
   preCheck = ''
     cd $TMP
   '';
-  pytestFlagsArray = ["--pyargs" "uarray"];
+  pytestFlagsArray = ["--pyargs" "uarray" "-W" "ignore::pytest.PytestRemovedIn8Warning" ];
   pythonImportsCheck = [ "uarray" ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/uc-micro-py/default.nix b/nixpkgs/pkgs/development/python-modules/uc-micro-py/default.nix
index f6aa059d709c..77f7eb1625d9 100644
--- a/nixpkgs/pkgs/development/python-modules/uc-micro-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uc-micro-py/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "uc-micro-py";
-  version = "1.0.2";
+  version = "1.0.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "tsutsu3";
     repo = "uc.micro-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PUeWYG/VyxCfhB7onAcDFow1yYqArjmfMT99+058P7U=";
+    hash = "sha256-Z7XHWeV5I/y19EKg4lzcl9pwRexWnSQ7d8CpQu5xdnI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/udatetime/default.nix b/nixpkgs/pkgs/development/python-modules/udatetime/default.nix
index 6b378f4aa365..46824549ba27 100644
--- a/nixpkgs/pkgs/development/python-modules/udatetime/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/udatetime/default.nix
@@ -20,6 +20,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Fast RFC3339 compliant Python date-time library";
+    mainProgram = "bench_udatetime.py";
     homepage = "https://github.com/freach/udatetime";
     license = licenses.asl20;
     maintainers = with maintainers; [ globin ];
diff --git a/nixpkgs/pkgs/development/python-modules/ueberzug/default.nix b/nixpkgs/pkgs/development/python-modules/ueberzug/default.nix
index e216bdc71412..2e16ea7f2f82 100644
--- a/nixpkgs/pkgs/development/python-modules/ueberzug/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ueberzug/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/seebye/ueberzug";
     description = "An alternative for w3mimgdisplay";
+    mainProgram = "ueberzug";
     license = licenses.gpl3;
     maintainers = with maintainers; [ Br1ght0ne ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/ufmt/default.nix b/nixpkgs/pkgs/development/python-modules/ufmt/default.nix
index cc510c0fa76f..3d1f9033cda6 100644
--- a/nixpkgs/pkgs/development/python-modules/ufmt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ufmt/default.nix
@@ -53,6 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Safe, atomic formatting with black and usort";
+    mainProgram = "ufmt";
     homepage = "https://github.com/omnilib/ufmt";
     changelog = "https://github.com/omnilib/ufmt/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/ufo2ft/default.nix b/nixpkgs/pkgs/development/python-modules/ufo2ft/default.nix
index 6daa54a31e81..5cbcf1370372 100644
--- a/nixpkgs/pkgs/development/python-modules/ufo2ft/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ufo2ft/default.nix
@@ -9,6 +9,7 @@
 , fonttools
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 , setuptools-scm
 , skia-pathops
 , ufolib2
@@ -16,18 +17,23 @@
 
 buildPythonPackage rec {
   pname = "ufo2ft";
-  version = "2.33.4";
+  version = "3.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-e6p/H1Vub0Ln0VhQvwsVLuD/p8uNG5oCPhfQPCTl1nY=";
+    hash = "sha256-5EUrML1Yd88tVEP+Kd9TmXm+5Ejk/XIH/USYBakK/wQ=";
   };
 
   nativeBuildInputs = [
     setuptools-scm
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "cffsubr"
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ufolint/default.nix b/nixpkgs/pkgs/development/python-modules/ufolint/default.nix
index ab997b30097d..0b561bf6f830 100644
--- a/nixpkgs/pkgs/development/python-modules/ufolint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ufolint/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Linter for Unified Font Object (UFO) source code";
+    mainProgram = "ufolint";
     homepage = "https://github.com/source-foundry/ufolint";
     license = licenses.mit;
     maintainers = with maintainers; [ danc86 ];
diff --git a/nixpkgs/pkgs/development/python-modules/ufonormalizer/default.nix b/nixpkgs/pkgs/development/python-modules/ufonormalizer/default.nix
index dd1e6bd08a1d..bfc354c116e0 100644
--- a/nixpkgs/pkgs/development/python-modules/ufonormalizer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ufonormalizer/default.nix
@@ -17,6 +17,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Script to normalize the XML and other data inside of a UFO";
+    mainProgram = "ufonormalizer";
     homepage = "https://github.com/unified-font-object/ufoNormalizer";
     license = licenses.bsd3;
     maintainers = [ maintainers.sternenseemann ];
diff --git a/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix b/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix
index 540aadd90132..dda782897b8d 100644
--- a/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix
@@ -5,11 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "ufoProcessor";
+  pname = "ufoprocessor";
   version = "1.9.0";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "ufoProcessor";
+    inherit version;
     sha256 = "0ns11aamgavgsfj8qf5kq7dvzmgl0mhr1cbych2f075ipfdvva5s";
     extension = "zip";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/uharfbuzz/default.nix b/nixpkgs/pkgs/development/python-modules/uharfbuzz/default.nix
index c7e823b74a2d..15c0d79984b2 100644
--- a/nixpkgs/pkgs/development/python-modules/uharfbuzz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uharfbuzz/default.nix
@@ -3,7 +3,8 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
-, cython
+, cython_3
+, setuptools
 , setuptools-scm
 , pytestCheckHook
 , ApplicationServices
@@ -11,8 +12,8 @@
 
 buildPythonPackage rec {
   pname = "uharfbuzz";
-  version = "0.37.3";
-  format = "setuptools";
+  version = "0.39.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.5";
 
@@ -21,11 +22,12 @@ buildPythonPackage rec {
     repo = "uharfbuzz";
     rev = "refs/tags/v${version}";
     fetchSubmodules = true;
-    hash = "sha256-876gFYyMqeGYoXMdBguV6bi7DJKHJs9HNLw9xRu+Mxk=";
+    hash = "sha256-I4fCaomq26FdkpiJdj+zyrbdqdynnD2hIutYTuTFvQs=";
   };
 
   nativeBuildInputs = [
-    cython
+    cython_3
+    setuptools
     setuptools-scm
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/ujson/default.nix b/nixpkgs/pkgs/development/python-modules/ujson/default.nix
index 7eb4e5e3814b..1dd98186e26f 100644
--- a/nixpkgs/pkgs/development/python-modules/ujson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ujson/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "ujson";
-  version = "5.8.0";
+  version = "5.9.0";
   format = "setuptools";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-eOMY3vSt6JikYbPZKnn5RB5+Dk0q1UGavtQzbXAsdCU=";
+    hash = "sha256-icyS5z1VAbin9IV17rFK0nFWrQksLp/H48+UnwfnVTI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/undefined/default.nix b/nixpkgs/pkgs/development/python-modules/undefined/default.nix
new file mode 100644
index 000000000000..5348688680e1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/undefined/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, flit
+}:
+
+buildPythonPackage rec {
+  pname = "undefined";
+  version = "0.0.8";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-xvI3wOPX51GWlLIb1HHcJe48M3nZwjt06/Aqo0nFz/c=";
+  };
+
+  nativeBuildInputs = [
+    flit
+  ];
+
+  pythonImportsCheck = [
+    "undefined"
+  ];
+
+  meta = with lib; {
+    description = "Ever needed a global object that act as None but not quite?";
+    homepage = "https://github.com/Carreau/undefined";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/unearth/default.nix b/nixpkgs/pkgs/development/python-modules/unearth/default.nix
index 649e305aeeb3..60307ca4051d 100644
--- a/nixpkgs/pkgs/development/python-modules/unearth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unearth/default.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A utility to fetch and download Python packages";
+    mainProgram = "unearth";
     homepage = "https://github.com/frostming/unearth";
     changelog = "https://github.com/frostming/unearth/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/unidecode/default.nix b/nixpkgs/pkgs/development/python-modules/unidecode/default.nix
index 5fcf87e9ced9..23263403fbd2 100644
--- a/nixpkgs/pkgs/development/python-modules/unidecode/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unidecode/default.nix
@@ -3,22 +3,27 @@
 , fetchFromGitHub
 , pytestCheckHook
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "unidecode";
-  version = "1.3.6";
-  format = "setuptools";
+  version = "1.3.8";
+  pyproject = true;
 
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "avian2";
-    repo = pname;
-    rev = "${pname}-${version}";
-    hash = "sha256-75E2OlrGIxvwR9MeZEB4bDLdFd1SdprCVcBIJCPS3hM=";
+    repo = "unidecode";
+    rev = "refs/tags/${pname}-${version}";
+    hash = "sha256-OoJSY+dNNISyVwKuRboMH7Je8nYFKxus2c4v3VsmyRE=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   nativeCheckInputs = [
     pytestCheckHook
   ];
@@ -29,6 +34,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "ASCII transliterations of Unicode text";
+    mainProgram = "unidecode";
     homepage = "https://github.com/avian2/unidecode";
     changelog = "https://github.com/avian2/unidecode/blob/unidecode-${version}/ChangeLog";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/unidiff/default.nix b/nixpkgs/pkgs/development/python-modules/unidiff/default.nix
index 3dd206d509f5..a0c1f24a5c56 100644
--- a/nixpkgs/pkgs/development/python-modules/unidiff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unidiff/default.nix
@@ -18,6 +18,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Unified diff python parsing/metadata extraction library";
+    mainProgram = "unidiff";
     homepage = "https://github.com/matiasb/python-unidiff";
     changelog = "https://github.com/matiasb/python-unidiff/raw/v${version}/HISTORY";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/unify/default.nix b/nixpkgs/pkgs/development/python-modules/unify/default.nix
index fc0cd0d4f67e..52c6ba64e59f 100644
--- a/nixpkgs/pkgs/development/python-modules/unify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unify/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Modifies strings to all use the same quote where possible";
+    mainProgram = "unify";
     homepage = "https://github.com/myint/unify";
     license = licenses.mit;
     maintainers = with maintainers; [ FlorianFranzen ];
diff --git a/nixpkgs/pkgs/development/python-modules/universal-pathlib/default.nix b/nixpkgs/pkgs/development/python-modules/universal-pathlib/default.nix
index 23667d02c283..195d6cbfe2a8 100644
--- a/nixpkgs/pkgs/development/python-modules/universal-pathlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/universal-pathlib/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "universal-pathlib";
-  version = "0.1.4";
+  version = "0.2.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "universal_pathlib";
     inherit version;
-    hash = "sha256-guXYbRaifg6hrcfYisvLqdAtWkVIgWMXT5bZrCidsuQ=";
+    hash = "sha256-a8IVVIeSrV2zVTcIscGbr9ni+hZn3JJe1ATJXlKuLxM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/universal-silabs-flasher/default.nix b/nixpkgs/pkgs/development/python-modules/universal-silabs-flasher/default.nix
index e9b8e0294d80..8c73bc5205ef 100644
--- a/nixpkgs/pkgs/development/python-modules/universal-silabs-flasher/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/universal-silabs-flasher/default.nix
@@ -72,6 +72,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/NabuCasa/universal-silabs-flasher/releases/tag/v${version}";
     description = "Flashes Silicon Labs radios running EmberZNet or CPC multi-pan firmware";
+    mainProgram = "universal-silabs-flasher";
     homepage = "https://github.com/NabuCasa/universal-silabs-flasher";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/development/python-modules/unrpa/default.nix b/nixpkgs/pkgs/development/python-modules/unrpa/default.nix
index eeddbd1d6b62..f02056506b11 100644
--- a/nixpkgs/pkgs/development/python-modules/unrpa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unrpa/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/Lattyware/unrpa";
     changelog = "https://github.com/Lattyware/unrpa/releases/tag/${version}";
     description = "A program to extract files from the RPA archive format";
+    mainProgram = "unrpa";
     license = licenses.gpl3;
     maintainers = with maintainers; [ leo60228 ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/unstructured-api-tools/default.nix b/nixpkgs/pkgs/development/python-modules/unstructured-api-tools/default.nix
index b3c904ba2f24..6909d95eb26b 100644
--- a/nixpkgs/pkgs/development/python-modules/unstructured-api-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unstructured-api-tools/default.nix
@@ -85,6 +85,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "";
+    mainProgram = "unstructured_api_tools";
     homepage = "https://github.com/Unstructured-IO/unstructured-api-tools";
     changelog = "https://github.com/Unstructured-IO/unstructured-api-tools/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/unstructured-inference/default.nix b/nixpkgs/pkgs/development/python-modules/unstructured-inference/default.nix
index fe3ae5d9ccd3..82cda0652a51 100644
--- a/nixpkgs/pkgs/development/python-modules/unstructured-inference/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unstructured-inference/default.nix
@@ -22,14 +22,14 @@
 
 buildPythonPackage rec {
   pname = "unstructured-inference";
-  version = "0.7.21";
+  version = "0.7.24";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "Unstructured-IO";
     repo = "unstructured-inference";
     rev = "refs/tags/${version}";
-    hash = "sha256-EuLzQHtcAPNuKCrUXHPbgF5i3QDvst/XOZ9RcCck+N8=";
+    hash = "sha256-AxQHTUgE4CyiinT7HEh6fvbw+uVi7lKUgfOc1KZOezU=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/unstructured/default.nix b/nixpkgs/pkgs/development/python-modules/unstructured/default.nix
index 388cd89371ed..faae85664bfb 100644
--- a/nixpkgs/pkgs/development/python-modules/unstructured/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unstructured/default.nix
@@ -56,7 +56,7 @@
 , grpcio
 }:
 let
-  version = "0.12.5";
+  version = "0.12.6";
   optional-dependencies = {
     huggingflace = [
       langdetect
@@ -90,7 +90,7 @@ buildPythonPackage {
     owner = "Unstructured-IO";
     repo = "unstructured";
     rev = "refs/tags/${version}";
-    hash = "sha256-69GukU2R38tM43vAk+l9vjypgjTS/Bcmcdcj1HXnzv4=";
+    hash = "sha256-K2ilPDkxXICb66rOgz18AZ92u5VBgRh6bLiDVEgleDU=";
   };
 
   propagatedBuildInputs = [
@@ -137,6 +137,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Open source libraries and APIs to build custom preprocessing pipelines for labeling, training, or production machine learning pipelines";
+    mainProgram = "unstructured-ingest";
     homepage = "https://github.com/Unstructured-IO/unstructured";
     changelog = "https://github.com/Unstructured-IO/unstructured/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/upass/default.nix b/nixpkgs/pkgs/development/python-modules/upass/default.nix
index 342cd79e6837..d8473bd51851 100644
--- a/nixpkgs/pkgs/development/python-modules/upass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/upass/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Console UI for pass";
+    mainProgram = "upass";
     homepage = "https://github.com/Kwpolska/upass";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/update-copyright/default.nix b/nixpkgs/pkgs/development/python-modules/update-copyright/default.nix
index 1502e92f9e7b..2abb9945ece2 100644
--- a/nixpkgs/pkgs/development/python-modules/update-copyright/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/update-copyright/default.nix
@@ -17,6 +17,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "An automatic copyright update tool";
+    mainProgram = "update-copyright.py";
     homepage = "http://blog.tremily.us/posts/update-copyright";
     license = licenses.gpl3;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/update-dotdee/default.nix b/nixpkgs/pkgs/development/python-modules/update-dotdee/default.nix
index 00e4e51ebb78..7b9f4e3ccc9e 100644
--- a/nixpkgs/pkgs/development/python-modules/update-dotdee/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/update-dotdee/default.nix
@@ -54,6 +54,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Generic modularized configuration file manager";
+    mainProgram = "update-dotdee";
     homepage = "https://github.com/xolox/python-update-dotdee";
     license = licenses.mit;
     maintainers = with maintainers; [ eyjhb ];
diff --git a/nixpkgs/pkgs/development/python-modules/uplc/default.nix b/nixpkgs/pkgs/development/python-modules/uplc/default.nix
new file mode 100644
index 000000000000..a3aa8d10e7ad
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/uplc/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, pythonRelaxDepsHook
+# Python deps
+, frozenlist2
+, python-secp256k1-cardano
+, setuptools
+, poetry-core
+, frozendict
+, cbor2
+, rply
+, pycardano
+}:
+
+buildPythonPackage rec {
+  pname = "uplc";
+  version = "0.6.9";
+
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "OpShin";
+    repo = "uplc";
+    rev = version;
+    hash = "sha256-djJMNXijMVzMVzw8NZSe3YFRGyAPqdvr0P374Za5XkU=";
+  };
+
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
+  propagatedBuildInputs = [
+    setuptools
+    poetry-core
+    frozendict
+    cbor2
+    frozenlist2
+    rply
+    pycardano
+    python-secp256k1-cardano
+  ];
+
+  pythonRelaxDeps = [ "pycardano" "rply" ];
+
+  pythonImportsCheck = [ "uplc" ];
+
+  meta = with lib; {
+    description = "Python implementation of untyped plutus language core";
+    homepage = "https://opshin.dev";
+    license = licenses.mit;
+    maintainers = with maintainers; [ t4ccer ];
+    mainProgram = "opshin";
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/urlextract/default.nix b/nixpkgs/pkgs/development/python-modules/urlextract/default.nix
index df2b134f9a65..a5701ee65160 100644
--- a/nixpkgs/pkgs/development/python-modules/urlextract/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/urlextract/default.nix
@@ -54,6 +54,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Collects and extracts URLs from given text";
+    mainProgram = "urlextract";
     homepage = "https://github.com/lipoja/URLExtract";
     changelog = "https://github.com/lipoja/URLExtract/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/urlgrabber/default.nix b/nixpkgs/pkgs/development/python-modules/urlgrabber/default.nix
index 18c7ba59b584..f991bff5db11 100644
--- a/nixpkgs/pkgs/development/python-modules/urlgrabber/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/urlgrabber/default.nix
@@ -16,6 +16,7 @@ buildPythonPackage rec {
     homepage = "http://urlgrabber.baseurl.org";
     license = licenses.lgpl2Plus;
     description = "Python module for downloading files";
+    mainProgram = "urlgrabber";
     maintainers = with maintainers; [ qknight ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/urllib3/default.nix b/nixpkgs/pkgs/development/python-modules/urllib3/default.nix
index 3c7da587cdde..70d8750a84d0 100644
--- a/nixpkgs/pkgs/development/python-modules/urllib3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/urllib3/default.nix
@@ -22,12 +22,12 @@
 
 let self = buildPythonPackage rec {
   pname = "urllib3";
-  version = "2.1.0";
+  version = "2.2.1";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-33qor7AUj6eEiOeJmyxZtfT/z6gubFTMud03wde1LVQ=";
+    hash = "sha256-0FcIdsYaueUg13bDisu7WwWndtP5/5ilyP1RYqREzxk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/us/default.nix b/nixpkgs/pkgs/development/python-modules/us/default.nix
index e489879bd502..6b15bec2684d 100644
--- a/nixpkgs/pkgs/development/python-modules/us/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/us/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A package for easily working with US and state metadata";
+    mainProgram = "states";
     longDescription = ''
       All US states and territories, postal abbreviations, Associated Press style
       abbreviations, FIPS codes, capitals, years of statehood, time zones, phonetic
diff --git a/nixpkgs/pkgs/development/python-modules/userpath/default.nix b/nixpkgs/pkgs/development/python-modules/userpath/default.nix
index 014de3cfeb1e..17783bef05c0 100644
--- a/nixpkgs/pkgs/development/python-modules/userpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/userpath/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Cross-platform tool for adding locations to the user PATH";
+    mainProgram = "userpath";
     homepage = "https://github.com/ofek/userpath";
     changelog = "https://github.com/ofek/userpath/releases/tag/v${version}";
     license = with licenses; [ asl20 mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/usort/default.nix b/nixpkgs/pkgs/development/python-modules/usort/default.nix
index 2bea93e08275..68dbe6a9b7d5 100644
--- a/nixpkgs/pkgs/development/python-modules/usort/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/usort/default.nix
@@ -55,6 +55,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Safe, minimal import sorting for Python projects";
+    mainProgram = "usort";
     homepage = "https://github.com/facebook/usort";
     changelog = "https://github.com/facebook/usort/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/uvcclient/default.nix b/nixpkgs/pkgs/development/python-modules/uvcclient/default.nix
index 8cd0a28b533d..6be1dc84065c 100644
--- a/nixpkgs/pkgs/development/python-modules/uvcclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uvcclient/default.nix
@@ -28,6 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Client for Ubiquiti's Unifi Camera NVR";
+    mainProgram = "uvc";
     homepage = "https://github.com/kk7ds/uvcclient";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/development/python-modules/uvicorn/default.nix b/nixpkgs/pkgs/development/python-modules/uvicorn/default.nix
index 112d25ef6403..6201bb615726 100644
--- a/nixpkgs/pkgs/development/python-modules/uvicorn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uvicorn/default.nix
@@ -72,6 +72,7 @@ buildPythonPackage rec {
     homepage = "https://www.uvicorn.org/";
     changelog = "https://github.com/encode/uvicorn/blob/${src.rev}/CHANGELOG.md";
     description = "The lightning-fast ASGI server";
+    mainProgram = "uvicorn";
     license = licenses.bsd3;
     maintainers = with maintainers; [ wd15 ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/vallox-websocket-api/default.nix b/nixpkgs/pkgs/development/python-modules/vallox-websocket-api/default.nix
index 22be3621a458..3d38c9a17ccb 100644
--- a/nixpkgs/pkgs/development/python-modules/vallox-websocket-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vallox-websocket-api/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "vallox-websocket-api";
-  version = "5.1.0";
+  version = "5.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "yozik04";
     repo = "vallox_websocket_api";
     rev = "refs/tags/${version}";
-    hash = "sha256-ZYcLoOYwQK1+txiBuCEIDp+tYM3eXFtOSR0iNIrIP0w=";
+    hash = "sha256-BhAI/bGzaSckyZJq7GYUldziotr2bMlA5cWgQEwiUcQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/vcrpy/default.nix b/nixpkgs/pkgs/development/python-modules/vcrpy/default.nix
index fc4283766b52..c60d3310cda7 100644
--- a/nixpkgs/pkgs/development/python-modules/vcrpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vcrpy/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "vcrpy";
-  version = "5.1.0";
+  version = "6.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-u/FTLyYYoE8RvOKpmvOpZHoyyICVcpP/keCl8Ye2s9I=";
+    hash = "sha256-ngI/7n+JK6oLvaL32nyKxRFlwcbjj/hohoOhKkvekng=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/vector/default.nix b/nixpkgs/pkgs/development/python-modules/vector/default.nix
index 11e20dfc1d56..7edad1b6321a 100644
--- a/nixpkgs/pkgs/development/python-modules/vector/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vector/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "vector";
-  version = "1.2.0";
+  version = "1.3.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-I7esW9qyc7T5MGFn/YZmajd3pSgE0CgqVW2YkTDLV6Q=";
+    hash = "sha256-GpQhDCGl04020Po2wa+5LChXuh0JyCSw1LhhXVH08uU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/versioneer/default.nix b/nixpkgs/pkgs/development/python-modules/versioneer/default.nix
index bbd43887025c..6bd7384c9890 100644
--- a/nixpkgs/pkgs/development/python-modules/versioneer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/versioneer/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Version-string management for VCS-controlled trees";
+    mainProgram = "versioneer";
     homepage = "https://github.com/python-versioneer/python-versioneer";
     changelog = "https://github.com/python-versioneer/python-versioneer/blob/${version}/NEWS.md";
     license = licenses.publicDomain;
diff --git a/nixpkgs/pkgs/development/python-modules/versioningit/default.nix b/nixpkgs/pkgs/development/python-modules/versioningit/default.nix
index b87ec1e1a9aa..a58f2d6133aa 100644
--- a/nixpkgs/pkgs/development/python-modules/versioningit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/versioningit/default.nix
@@ -4,27 +4,27 @@
 , fetchPypi
 , importlib-metadata
 , packaging
-, setuptools
 , tomli
 , pytestCheckHook
 , build
 , hatchling
 , pydantic
 , pytest-mock
+, setuptools
 , git
 , mercurial
 }:
 
 buildPythonPackage rec {
   pname = "versioningit";
-  version = "2.3.0";
+  version = "3.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-HQ1xz6PCvE+N+z1KFcFE64qmoJ2dqYkj1BCZSi74Juo=";
+    hash = "sha256-TjzkemQk2FCunlXhsTSgIOn8vLiVM48QfytcUdNMnBs=";
   };
 
   postPatch = ''
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [
-    setuptools
+    hatchling
   ];
 
   propagatedBuildInputs = [
@@ -52,6 +52,7 @@ buildPythonPackage rec {
     hatchling
     pydantic
     pytest-mock
+    setuptools
     git
     mercurial
   ];
@@ -67,6 +68,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "setuptools plugin for determining package version from VCS";
+    mainProgram = "versioningit";
     homepage = "https://github.com/jwodder/versioningit";
     changelog = "https://versioningit.readthedocs.io/en/latest/changelog.html";
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/vharfbuzz/default.nix b/nixpkgs/pkgs/development/python-modules/vharfbuzz/default.nix
index 27ea9d84f256..6551ef2cbb7a 100644
--- a/nixpkgs/pkgs/development/python-modules/vharfbuzz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vharfbuzz/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "vharfbuzz";
-  version = "0.2.0";
+  version = "0.3.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-uDX2fYqxV4wmAAIMfA3dBohWmq1N0VurSTEFOjSRpmY=";
+    hash = "sha256-bBKmVvLuc/CtQF+TSri8ngglnj4QCh77FV+JHPzsFAI=";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/vine/default.nix b/nixpkgs/pkgs/development/python-modules/vine/default.nix
index 47e9c7b7a3c7..033e50ba2c40 100644
--- a/nixpkgs/pkgs/development/python-modules/vine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vine/default.nix
@@ -23,6 +23,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    # pytest.PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   pythonImportsCheck = [
     "vine"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/virtualenv-clone/default.nix b/nixpkgs/pkgs/development/python-modules/virtualenv-clone/default.nix
index 1c464101bf7e..51c1d12b184d 100644
--- a/nixpkgs/pkgs/development/python-modules/virtualenv-clone/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/virtualenv-clone/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/edwardgeorge/virtualenv-clone";
     description = "Script to clone virtualenvs";
+    mainProgram = "virtualenv-clone";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix b/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
index a79b5bcd6cc1..44ca0ff4f4f3 100644
--- a/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
@@ -21,14 +21,14 @@
 
 buildPythonPackage rec {
   pname = "virtualenv";
-  version = "20.25.0";
+  version = "20.25.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-v1HA2cfdY+qORAhvoeT7EJOjHpY7hpWSVzeK7wIOHxs=";
+    hash = "sha256-4I4T7NynoL1TeY81bVgxQ0r6Wwe5Pwq98Hl7egb/4Zc=";
   };
 
   nativeBuildInputs = [
@@ -71,6 +71,8 @@ buildPythonPackage rec {
     "test_seed_link_via_app_data"
     # Permission Error
     "test_bad_exe_py_info_no_raise"
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    "test_help"
   ] ++ lib.optionals (isPyPy) [
     # encoding problems
     "test_bash"
@@ -86,6 +88,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A tool to create isolated Python environments";
+    mainProgram = "virtualenv";
     homepage = "http://www.virtualenv.org";
     changelog = "https://github.com/pypa/virtualenv/blob/${version}/docs/changelog.rst";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/virtualenvwrapper/default.nix b/nixpkgs/pkgs/development/python-modules/virtualenvwrapper/default.nix
index 93af1ab0c4ac..c7f6dad7c8ce 100644
--- a/nixpkgs/pkgs/development/python-modules/virtualenvwrapper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/virtualenvwrapper/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "virtualenvwrapper";
-  version = "4.8.4";
+  version = "6.1.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "51a1a934e7ed0ff221bdd91bf9d3b604d875afbb3aa2367133503fee168f5bfa";
+    sha256 = "sha256-1Ge+rFpEvgD7XNG88zI5jD2rX7O9OveBXqhrTWuz06Q=";
   };
 
   # pip depend on $HOME setting
diff --git a/nixpkgs/pkgs/development/python-modules/vispy/default.nix b/nixpkgs/pkgs/development/python-modules/vispy/default.nix
index ad8d696f91d9..21d8c68e7438 100644
--- a/nixpkgs/pkgs/development/python-modules/vispy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vispy/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "vispy";
-  version = "0.14.1";
+  version = "0.14.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JJpQl5/ACotlEJKDNU3PEs9BXBpdz5gh4RP25ZC5uTw=";
+    hash = "sha256-7ti0TW9ch70pWySqmi4OTm3GqQXM7gGy1ByPvwp2ez0=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/vmprof/default.nix b/nixpkgs/pkgs/development/python-modules/vmprof/default.nix
index 8ffdf319013d..755417803a2e 100644
--- a/nixpkgs/pkgs/development/python-modules/vmprof/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vmprof/default.nix
@@ -11,13 +11,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.4.15";
+  version = "0.4.17";
   format = "setuptools";
   pname = "vmprof";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a2d872a40196404386d1e0d960e97b37c86c3f72a4f9d5a2b5f9ca1adaff5b62";
+    sha256 = "sha256-ACYj7Lb/QT6deG0uuiPCj850QXhaw4XuQX6aZu8OM2U=";
   };
 
   buildInputs = [ libunwind ];
@@ -53,6 +53,7 @@ buildPythonPackage rec {
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     description = "A vmprof client";
+    mainProgram = "vmprofshow";
     license = licenses.mit;
     homepage = "https://vmprof.readthedocs.org/";
   };
diff --git a/nixpkgs/pkgs/development/python-modules/voluptuous/default.nix b/nixpkgs/pkgs/development/python-modules/voluptuous/default.nix
index 47e3d029106b..1f9d53412d3d 100644
--- a/nixpkgs/pkgs/development/python-modules/voluptuous/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/voluptuous/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "voluptuous";
-  version = "0.14.1";
+  version = "0.14.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "alecthomas";
     repo = "voluptuous";
     rev = "refs/tags/${version}";
-    hash = "sha256-7KXuypcKoqZboHTzoNKK5sYUR57wWGJu6y9zkLecep0=";
+    hash = "sha256-2a4lid9NibbvhHfs/fcyHgPRZ2HirIKuPYxMsl5oA4o=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/vpk/default.nix b/nixpkgs/pkgs/development/python-modules/vpk/default.nix
index d61a6107baad..5a3a841a064d 100644
--- a/nixpkgs/pkgs/development/python-modules/vpk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vpk/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for working with Valve Pak files";
+    mainProgram = "vpk";
     homepage = "https://github.com/ValvePython/vpk";
     license = licenses.mit;
     maintainers = with maintainers; [ joshuafern ];
diff --git a/nixpkgs/pkgs/development/python-modules/vsure/default.nix b/nixpkgs/pkgs/development/python-modules/vsure/default.nix
index 441969da6137..941c753f0e50 100644
--- a/nixpkgs/pkgs/development/python-modules/vsure/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vsure/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python library for working with verisure devices";
+    mainProgram = "vsure";
     homepage = "https://github.com/persandstrom/python-verisure";
     changelog = "https://github.com/persandstrom/python-verisure#version-history";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/vtjp/default.nix b/nixpkgs/pkgs/development/python-modules/vtjp/default.nix
index 4e193ea2eb48..006374ee4ec7 100644
--- a/nixpkgs/pkgs/development/python-modules/vtjp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vtjp/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Python wrapper and cli for Västtrafik public API";
+    mainProgram = "vtjp";
     homepage = "https://github.com/Miicroo/python-vasttrafik";
     changelog = "https://github.com/Miicroo/python-vasttrafik/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/vulture/default.nix b/nixpkgs/pkgs/development/python-modules/vulture/default.nix
index 43d6f8b00fcd..e3a723ae0743 100644
--- a/nixpkgs/pkgs/development/python-modules/vulture/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vulture/default.nix
@@ -46,6 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Finds unused code in Python programs";
+    mainProgram = "vulture";
     homepage = "https://github.com/jendrikseipp/vulture";
     changelog = "https://github.com/jendrikseipp/vulture/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/vxi11/default.nix b/nixpkgs/pkgs/development/python-modules/vxi11/default.nix
index e33fb6dbc045..ff88abb41453 100644
--- a/nixpkgs/pkgs/development/python-modules/vxi11/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vxi11/default.nix
@@ -19,6 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "VXI-11 driver for controlling instruments over Ethernet";
+    mainProgram = "vxi11-cli";
     homepage = "https://github.com/python-ivi/python-vxi11";
     license = licenses.mit;
     maintainers = with maintainers; [ bgamari ];
diff --git a/nixpkgs/pkgs/development/python-modules/w1thermsensor/default.nix b/nixpkgs/pkgs/development/python-modules/w1thermsensor/default.nix
index e1592ab86287..7aa81b158e24 100644
--- a/nixpkgs/pkgs/development/python-modules/w1thermsensor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/w1thermsensor/default.nix
@@ -61,6 +61,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python interface to 1-Wire temperature sensors";
+    mainProgram = "w1thermsensor";
     longDescription = ''
       A Python package and CLI tool to work with w1 temperature sensors like
       DS1822, DS18S20 & DS18B20 on the Raspberry Pi, Beagle Bone and other
diff --git a/nixpkgs/pkgs/development/python-modules/wagtail/default.nix b/nixpkgs/pkgs/development/python-modules/wagtail/default.nix
index 0e7bf3a3f185..f5ac78b6cb17 100644
--- a/nixpkgs/pkgs/development/python-modules/wagtail/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wagtail/default.nix
@@ -24,14 +24,14 @@
 
 buildPythonPackage rec {
   pname = "wagtail";
-  version = "5.2.2";
+  version = "6.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SOTCm3Kw5T60ejF41rDyxpmqKE0/Oiq/0vBPV49EtVo=";
+    hash = "sha256-Q89luoQwtB5TMWfudbJ2YKeobrBt2L156NZPtK8Feos=";
   };
 
   postPatch = ''
@@ -72,6 +72,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A Django content management system focused on flexibility and user experience";
+    mainProgram = "wagtail";
     homepage = "https://github.com/wagtail/wagtail";
     changelog = "https://github.com/wagtail/wagtail/blob/v${version}/CHANGELOG.txt";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/waitress-django/default.nix b/nixpkgs/pkgs/development/python-modules/waitress-django/default.nix
index 1d50b312b619..fad82f4952ce 100644
--- a/nixpkgs/pkgs/development/python-modules/waitress-django/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/waitress-django/default.nix
@@ -11,6 +11,7 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "A waitress WSGI server serving django";
+    mainProgram = "waitress-serve-django";
     license = licenses.mit;
     maintainers = with maintainers; [ basvandijk ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/waitress/default.nix b/nixpkgs/pkgs/development/python-modules/waitress/default.nix
index a79863c1e835..cf8d0eac97b2 100644
--- a/nixpkgs/pkgs/development/python-modules/waitress/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/waitress/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "waitress";
-  version = "2.1.2";
+  version = "3.0.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "780a4082c5fbc0fde6a2fcfe5e26e6efc1e8f425730863c04085769781f51eba";
+    sha256 = "sha256-AF2kebBBNM3Z3WAtHufEnXneBTdhDWU2dMxsveIiuKE=";
   };
 
   doCheck = false;
@@ -18,6 +18,7 @@ buildPythonPackage rec {
   meta = with lib; {
      homepage = "https://github.com/Pylons/waitress";
      description = "Waitress WSGI server";
+     mainProgram = "waitress-serve";
      license = licenses.zpl20;
      maintainers = with maintainers; [ domenkozar ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix b/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix
index 97ceedec0d26..ea4f215a129e 100644
--- a/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python module for wake on lan";
+    mainProgram = "wakeonlan";
     homepage = "https://github.com/remcohaszing/pywakeonlan";
     changelog = "https://github.com/remcohaszing/pywakeonlan/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/wallet-py3k/default.nix b/nixpkgs/pkgs/development/python-modules/wallet-py3k/default.nix
new file mode 100644
index 000000000000..f78463e6748a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/wallet-py3k/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, substituteAll
+, openssl
+, setuptools
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "wallet-py3k";
+  version = "0.0.4";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-kyHSh8qHbzK6gFLGnL6dUJ/GLJHTNC86jjXa/APqIzI=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./openssl-path.patch;
+      openssl = lib.getExe openssl;
+    })
+  ];
+
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    six
+  ];
+
+  doCheck = false; # no tests
+
+  pythonImportsCheck = [
+    "wallet"
+  ];
+
+  meta = with lib; {
+    description = "Passbook file generator";
+    homepage = "https://pypi.org/project/wallet-py3k";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/wallet-py3k/openssl-path.patch b/nixpkgs/pkgs/development/python-modules/wallet-py3k/openssl-path.patch
new file mode 100644
index 000000000000..8864818b13f7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/wallet-py3k/openssl-path.patch
@@ -0,0 +1,13 @@
+diff --git a/wallet/models.py b/wallet/models.py
+index 1b75402..ad115de 100644
+--- a/wallet/models.py
++++ b/wallet/models.py
+@@ -320,7 +320,7 @@ class Pass(object):
+     def _createSignature(self, manifest, certificate, key,
+                          wwdr_certificate, password):
+         openssl_cmd = [
+-            'openssl',
++            '@openssl@',
+             'smime',
+             '-binary',
+             '-sign',
diff --git a/nixpkgs/pkgs/development/python-modules/wandb/default.nix b/nixpkgs/pkgs/development/python-modules/wandb/default.nix
index 654d63981a65..b2f22092638b 100644
--- a/nixpkgs/pkgs/development/python-modules/wandb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wandb/default.nix
@@ -55,7 +55,7 @@
 
 buildPythonPackage rec {
   pname = "wandb";
-  version = "0.16.0";
+  version = "0.16.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -64,7 +64,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-XXs9KjiAPzZ932r4UJ87RpM+qhg/bNDWEYsq2Ua6SRw=";
+    hash = "sha256-Q4NHUHay1/xb+V494n96jxE1VyAP7uVyQbIbS0/E85c=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/warcio/default.nix b/nixpkgs/pkgs/development/python-modules/warcio/default.nix
index fe9f7bdeb0f1..3121a49b5b28 100644
--- a/nixpkgs/pkgs/development/python-modules/warcio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/warcio/default.nix
@@ -63,6 +63,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Streaming WARC/ARC library for fast web archive IO";
+    mainProgram = "warcio";
     homepage = "https://github.com/webrecorder/warcio";
     changelog = "https://github.com/webrecorder/warcio/blob/master/CHANGELIST.rst";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/ward/default.nix b/nixpkgs/pkgs/development/python-modules/ward/default.nix
index 9d438d74258f..f73cae95e25e 100644
--- a/nixpkgs/pkgs/development/python-modules/ward/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ward/default.nix
@@ -57,6 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Test framework for Python";
+    mainProgram = "ward";
     homepage = "https://github.com/darrenburns/ward";
     changelog = "https://github.com/darrenburns/ward/releases/tag/release%2F${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/watchdog/default.nix b/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
index 4e4f491e23ae..9ac39683ba39 100644
--- a/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "watchdog";
-  version = "3.0.0";
+  version = "4.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TZijIFldp6fFoY/EjLYzwuc82nj5PKwu9C1Cv2CaM/k=";
+    hash = "sha256-4+cGXL2r5hg6uCGZ16T2s7oKQ4xaUSpoVZhGzLdqeOw=";
   };
 
   # force kqueue on x86_64-darwin, because our api version does
@@ -102,6 +102,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python API and shell utilities to monitor file system events";
+    mainProgram = "watchmedo";
     homepage = "https://github.com/gorakhargosh/watchdog";
     changelog = "https://github.com/gorakhargosh/watchdog/blob/v${version}/changelog.rst";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/watchfiles/default.nix b/nixpkgs/pkgs/development/python-modules/watchfiles/default.nix
index cb113420006b..47b6e0a4eb26 100644
--- a/nixpkgs/pkgs/development/python-modules/watchfiles/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/watchfiles/default.nix
@@ -82,6 +82,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "File watching and code reload";
+    mainProgram = "watchfiles";
     homepage = "https://watchfiles.helpmanual.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/watchgod/default.nix b/nixpkgs/pkgs/development/python-modules/watchgod/default.nix
index fcbddeec2d65..988fb53601b9 100644
--- a/nixpkgs/pkgs/development/python-modules/watchgod/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/watchgod/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Simple, modern file watching and code reload in python";
+    mainProgram = "watchgod";
     homepage = "https://github.com/samuelcolvin/watchgod";
     license = licenses.mit;
     maintainers = with maintainers; [ globin ];
diff --git a/nixpkgs/pkgs/development/python-modules/waterfurnace/default.nix b/nixpkgs/pkgs/development/python-modules/waterfurnace/default.nix
index eabd7de20ad0..6b7dce28924f 100644
--- a/nixpkgs/pkgs/development/python-modules/waterfurnace/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/waterfurnace/default.nix
@@ -45,6 +45,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python interface to waterfurnace geothermal systems";
+    mainProgram = "waterfurnace-debug";
     homepage = "https://github.com/sdague/waterfurnace";
     changelog = "https://github.com/sdague/waterfurnace/blob/v${version}/HISTORY.rst";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/wavedrom/default.nix b/nixpkgs/pkgs/development/python-modules/wavedrom/default.nix
index 32fa68a9dabd..3cf3eb30111c 100644
--- a/nixpkgs/pkgs/development/python-modules/wavedrom/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wavedrom/default.nix
@@ -51,6 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "WaveDrom compatible Python command line";
+    mainProgram = "wavedrompy";
     homepage = "https://github.com/wallento/wavedrompy";
     license = licenses.mit;
     maintainers = with maintainers; [ airwoodix ];
diff --git a/nixpkgs/pkgs/development/python-modules/weasel/default.nix b/nixpkgs/pkgs/development/python-modules/weasel/default.nix
index a5433c81db0e..26418749c80f 100644
--- a/nixpkgs/pkgs/development/python-modules/weasel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/weasel/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   pythonRelaxDeps = [
     "cloudpathlib"
+    "smart-open"
   ];
 
   nativeBuildInputs = [
@@ -64,6 +65,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A small and easy workflow system";
+    mainProgram = "weasel";
     homepage = "https://github.com/explosion/weasel/";
     changelog = "https://github.com/explosion/weasel/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/weasyprint/default.nix b/nixpkgs/pkgs/development/python-modules/weasyprint/default.nix
index 403c577d6554..5d53bcbb7078 100644
--- a/nixpkgs/pkgs/development/python-modules/weasyprint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/weasyprint/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "weasyprint";
-  version = "61.1";
+  version = "61.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit version;
     pname = "weasyprint";
-    hash = "sha256-fLyCTcQCbYKpc2Jkd1X4N90VeZlJY5zIpCjdM9OFAJo=";
+    hash = "sha256-R99s/u/4xsKM8uTK+DfN4XcV7+RicIradLqi6zkbYFk=";
   };
 
   patches = [
@@ -100,6 +100,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Converts web documents to PDF";
+    mainProgram = "weasyprint";
     homepage = "https://weasyprint.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ elohmeier ];
diff --git a/nixpkgs/pkgs/development/python-modules/weaviate-client/default.nix b/nixpkgs/pkgs/development/python-modules/weaviate-client/default.nix
index 35a4c5527533..5db198141293 100644
--- a/nixpkgs/pkgs/development/python-modules/weaviate-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/weaviate-client/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "weaviate-client";
-  version = "3.26.2";
+  version = "4.5.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Y+xwg5tkkJgQpkqns+W4UIhGLpPH4u08MuvvtwLzZyM=";
+    hash = "sha256-gElboFIwEMiwN6HhpPPT+tcmh0pMiDjq7R8TG2eMMKI=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/webassets/default.nix b/nixpkgs/pkgs/development/python-modules/webassets/default.nix
index 1b1c0f77d4d2..75a127d475ef 100644
--- a/nixpkgs/pkgs/development/python-modules/webassets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/webassets/default.nix
@@ -19,6 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Media asset management for Python, with glue code for various web frameworks";
+    mainProgram = "webassets";
     homepage = "https://github.com/miracle2k/webassets/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ abbradar ];
diff --git a/nixpkgs/pkgs/development/python-modules/webdataset/default.nix b/nixpkgs/pkgs/development/python-modules/webdataset/default.nix
index 786862e44c08..5f18d28f9fbd 100644
--- a/nixpkgs/pkgs/development/python-modules/webdataset/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/webdataset/default.nix
@@ -76,6 +76,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A high-performance Python-based I/O system for large (and small) deep learning problems, with strong support for PyTorch";
+    mainProgram = "widsindex";
     homepage = "https://github.com/webdataset/webdataset";
     license = licenses.bsd3;
     maintainers = with maintainers; [ iynaix ];
diff --git a/nixpkgs/pkgs/development/python-modules/webdav4/default.nix b/nixpkgs/pkgs/development/python-modules/webdav4/default.nix
index cc353777f632..831ebbe43dd4 100644
--- a/nixpkgs/pkgs/development/python-modules/webdav4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/webdav4/default.nix
@@ -90,6 +90,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for interacting with WebDAV";
+    mainProgram = "dav";
     homepage = "https://skshetry.github.io/webdav4/";
     changelog = "https://github.com/skshetry/webdav4/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/webdavclient3/default.nix b/nixpkgs/pkgs/development/python-modules/webdavclient3/default.nix
index e44c1eb29259..0cd96d389bd0 100644
--- a/nixpkgs/pkgs/development/python-modules/webdavclient3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/webdavclient3/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Easy to use WebDAV Client for Python 3.x";
+    mainProgram = "wdc";
     homepage = "https://github.com/ezhov-evgeny/webdav-client-python-3";
     license = licenses.mit;
     maintainers = with maintainers; [ dmrauh ];
diff --git a/nixpkgs/pkgs/development/python-modules/websocket-client/default.nix b/nixpkgs/pkgs/development/python-modules/websocket-client/default.nix
index f4d33df53144..1903c6cb6466 100644
--- a/nixpkgs/pkgs/development/python-modules/websocket-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/websocket-client/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "websocket-client";
-  version = "1.6.4";
+  version = "1.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-szJAGbPChXIIbEoxn5HR3NRObhHNNAIyl4xoSnZQ0N8=";
+    hash = "sha256-EOUR6jqMdEYx07135h6xftCTBMQTrULPbd+kx3h+j+Y=";
   };
 
   nativeBuildInputs = [
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Websocket client for Python";
+    mainProgram = "wsdump";
     homepage = "https://github.com/websocket-client/websocket-client";
     changelog = "https://github.com/websocket-client/websocket-client/blob/v${version}/ChangeLog";
     license = licenses.lgpl21Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/websockify/default.nix b/nixpkgs/pkgs/development/python-modules/websockify/default.nix
index b456de718c7e..1dd941379274 100644
--- a/nixpkgs/pkgs/development/python-modules/websockify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/websockify/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "WebSockets support for any application/server";
+    mainProgram = "websockify";
     homepage = "https://github.com/kanaka/websockify";
     changelog = "https://github.com/novnc/websockify/releases/tag/v${version}";
     license = licenses.lgpl3Only;
diff --git a/nixpkgs/pkgs/development/python-modules/webssh/default.nix b/nixpkgs/pkgs/development/python-modules/webssh/default.nix
index dd7fcaa5bcf9..4681b186c9ca 100644
--- a/nixpkgs/pkgs/development/python-modules/webssh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/webssh/default.nix
@@ -37,6 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Web based SSH client";
+    mainProgram = "wssh";
     homepage = "https://github.com/huashengdun/webssh/";
     changelog = "https://github.com/huashengdun/webssh/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/weconnect-mqtt/default.nix b/nixpkgs/pkgs/development/python-modules/weconnect-mqtt/default.nix
index 5e00ef399e61..003614876b98 100644
--- a/nixpkgs/pkgs/development/python-modules/weconnect-mqtt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/weconnect-mqtt/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "weconnect-mqtt";
-  version = "0.48.4";
+  version = "0.49.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "tillsteinbach";
     repo = "WeConnect-mqtt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Yv6CAGTDi4P9pImLxVk2QkZ014iqQ8UMBUeiyZWnYiQ=";
+    hash = "sha256-V96fdy6h012SbP3tyOMniAwLf/1+iKzTc9WnevAVwTI=";
   };
 
   postPatch = ''
@@ -53,6 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python client that publishes data from Volkswagen WeConnect";
+    mainProgram = "weconnect-mqtt";
     homepage = "https://github.com/tillsteinbach/WeConnect-mqtt";
     changelog = "https://github.com/tillsteinbach/WeConnect-mqtt/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix b/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
index e59eda006e6e..51e380ece2a1 100644
--- a/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , pythonOlder
 , fetchPypi
+, fetchpatch2
 
 # build-system
 , flit-core
@@ -38,6 +39,14 @@ buildPythonPackage rec {
     hash = "sha256-UH6BHs6nKxikBJR63tSzOQ4duPgmtJTXZVDvRbs7Hcw=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      name = "werkzeug-pytest8-compat.patch";
+      url = "https://github.com/pallets/werkzeug/commit/4e5bdca7f8227d10cae828f8064fb98190ace4aa.patch";
+      hash = "sha256-lVknzvC+HIM6TagpyIOhnb+7tx0UXuGw0tINjsujISI=";
+    })
+  ];
+
   nativeBuildInputs = [
     flit-core
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/west/default.nix b/nixpkgs/pkgs/development/python-modules/west/default.nix
index b3cfcaa30b60..55ad178d0b38 100644
--- a/nixpkgs/pkgs/development/python-modules/west/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/west/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Zephyr RTOS meta tool";
+    mainProgram = "west";
     longDescription = ''
       West lets you manage multiple Git repositories under a single directory using a single file,
       called the west manifest file, or manifest for short.
diff --git a/nixpkgs/pkgs/development/python-modules/wheel-filename/default.nix b/nixpkgs/pkgs/development/python-modules/wheel-filename/default.nix
index 1937d7710f3c..fd1ec9d946a2 100644
--- a/nixpkgs/pkgs/development/python-modules/wheel-filename/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wheel-filename/default.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Parse wheel filenames";
+    mainProgram = "wheel-filename";
     homepage = "https://github.com/jwodder/wheel-filename";
     license = with licenses; [ mit ];
     maintainers = with lib.maintainers; [ ayazhafiz ];
diff --git a/nixpkgs/pkgs/development/python-modules/wheel-inspect/default.nix b/nixpkgs/pkgs/development/python-modules/wheel-inspect/default.nix
index 17195fa67dae..bf2ff4ece67b 100644
--- a/nixpkgs/pkgs/development/python-modules/wheel-inspect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wheel-inspect/default.nix
@@ -68,6 +68,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Extract information from wheels";
+    mainProgram = "wheel2json";
     homepage = "https://github.com/jwodder/wheel-inspect";
     changelog = "https://github.com/wheelodex/wheel-inspect/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/wheel/default.nix b/nixpkgs/pkgs/development/python-modules/wheel/default.nix
index 2b9626190500..14339d2056f3 100644
--- a/nixpkgs/pkgs/development/python-modules/wheel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wheel/default.nix
@@ -34,6 +34,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/pypa/wheel";
     description = "A built-package format for Python";
+    mainProgram = "wheel";
     longDescription = ''
       This library is the reference implementation of the Python wheel packaging standard,
       as defined in PEP 427.
diff --git a/nixpkgs/pkgs/development/python-modules/wheezy-template/default.nix b/nixpkgs/pkgs/development/python-modules/wheezy-template/default.nix
index ef70345c1a18..0baba9c564e5 100644
--- a/nixpkgs/pkgs/development/python-modules/wheezy-template/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wheezy-template/default.nix
@@ -17,6 +17,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://wheezytemplate.readthedocs.io/en/latest/";
     description = "A lightweight template library";
+    mainProgram = "wheezy.template";
     license = licenses.mit;
     maintainers = with maintainers; [ lilyinstarlight ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/whenever/default.nix b/nixpkgs/pkgs/development/python-modules/whenever/default.nix
index 20d05c8bbaf3..732c22d09575 100644
--- a/nixpkgs/pkgs/development/python-modules/whenever/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/whenever/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "whenever";
-  version = "0.3.4";
+  version = "0.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,8 +21,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "ariebovenberg";
     repo = "whenever";
-    rev = version;
-    hash = "sha256-pVbR9KYothEPJUhvFA3hDnLcKp7hvU8ntxvkYrKxQfQ=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-5Ik9+i5T5ztb+2zqFZ+SBmrZFLDxji66e3lK0z2w92c=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/whispers/default.nix b/nixpkgs/pkgs/development/python-modules/whispers/default.nix
index 5106ee3b0556..357d8d271ff4 100644
--- a/nixpkgs/pkgs/development/python-modules/whispers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/whispers/default.nix
@@ -86,6 +86,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool to identify hardcoded secrets in static structured text";
+    mainProgram = "whispers";
     homepage = "https://github.com/adeptex/whispers";
     changelog = "https://github.com/adeptex/whispers/releases/tag/${version}";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/whitenoise/default.nix b/nixpkgs/pkgs/development/python-modules/whitenoise/default.nix
index 13168c3757eb..04f9528c8d74 100644
--- a/nixpkgs/pkgs/development/python-modules/whitenoise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/whitenoise/default.nix
@@ -11,10 +11,10 @@
 
 buildPythonPackage rec {
   pname = "whitenoise";
-  version = "6.5.0";
-  format = "pyproject";
+  version = "6.6.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   __darwinAllowLocalNetworking = true;
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "evansd";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-g1D0tjGsAP3y1fWvODWwNvxnTSZJuTpyZ0Otk83Oq9E=";
+    hash = "sha256-Z59GjrOL+BPHqBCirg9T4qBOrjiuBng6Q5lTuLQx9ac=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/whoisdomain/default.nix b/nixpkgs/pkgs/development/python-modules/whoisdomain/default.nix
index 08dd213c3bec..eb28f68c957c 100644
--- a/nixpkgs/pkgs/development/python-modules/whoisdomain/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/whoisdomain/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to perform whois lookups";
+    mainProgram = "whoisdomain";
     homepage = "https://github.com/mboot-github/WhoisDomain";
     changelog = "https://github.com/mboot-github/WhoisDomain/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/whoosh/default.nix b/nixpkgs/pkgs/development/python-modules/whoosh/default.nix
index 10053bc27918..52831486f2b7 100644
--- a/nixpkgs/pkgs/development/python-modules/whoosh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/whoosh/default.nix
@@ -1,30 +1,51 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
 
 buildPythonPackage rec {
-  pname = "Whoosh";
+  pname = "whoosh";
   version = "2.7.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "10qsqdjpbc85fykc1vgcs8xwbgn4l2l52c8d83xf1q59pwyn79bw";
+    pname = "Whoosh";
+    inherit version;
+    hash = "sha256-fKVjPb+p4OD6QA0xUaigxL7FO9Ls7cCmdwWxdWXDGoM=";
   };
 
-  nativeCheckInputs = [ pytest ];
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
 
   # Wrong encoding
   postPatch = ''
     rm tests/test_reading.py
-    substituteInPlace setup.cfg --replace "[pytest]" "[tool:pytest]"
-  '';
-  checkPhase =  ''
-    # FIXME: test_minimize_dfa fails on python 3.6
-    py.test -k "not test_timelimit and not test_minimize_dfa"
+    substituteInPlace setup.cfg \
+      --replace-fail "[pytest]" "[tool:pytest]"
   '';
 
+  pythonImportsCheck = [
+    "whoosh"
+  ];
+
+  disabledTests = [
+    "test_minimize_dfa"
+  ];
+
   meta = with lib; {
-    description = "Fast, pure-Python full text indexing, search, and spell
-checking library.";
-    homepage    = "https://bitbucket.org/mchaput/whoosh";
-    license     = licenses.bsd2;
+    description = "Fast, pure-Python full text indexing, search, and spell checking library";
+    homepage = "https://github.com/mchaput/whoosh";
+    license = licenses.bsd2;
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/wifi/default.nix b/nixpkgs/pkgs/development/python-modules/wifi/default.nix
index 01a867f008f8..260f7e8a937f 100644
--- a/nixpkgs/pkgs/development/python-modules/wifi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wifi/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Provides a command line wrapper for iwlist and /etc/network/interfaces";
+    mainProgram = "wifi";
     homepage = "https://github.com/rockymeza/wifi";
     maintainers = with maintainers; [ rhoriguchi ];
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/wikipedia-api/default.nix b/nixpkgs/pkgs/development/python-modules/wikipedia-api/default.nix
index bb1fbd67dabb..e8959b078c75 100644
--- a/nixpkgs/pkgs/development/python-modules/wikipedia-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wikipedia-api/default.nix
@@ -6,7 +6,7 @@
 }:
 
 buildPythonPackage rec {
-  pname = "Wikipedia-API";
+  pname = "wikipedia-api";
   version = "0.6.0";
   format = "setuptools";
 
diff --git a/nixpkgs/pkgs/development/python-modules/wikipedia2vec/default.nix b/nixpkgs/pkgs/development/python-modules/wikipedia2vec/default.nix
index f28addf30f4f..12f7ef753a59 100644
--- a/nixpkgs/pkgs/development/python-modules/wikipedia2vec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wikipedia2vec/default.nix
@@ -57,6 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool for learning vector representations of words and entities from Wikipedia";
+    mainProgram = "wikipedia2vec";
     homepage = "https://wikipedia2vec.github.io/wikipedia2vec/";
     changelog = "https://github.com/wikipedia2vec/wikipedia2vec/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/withings-sync/default.nix b/nixpkgs/pkgs/development/python-modules/withings-sync/default.nix
index bf6c2153c7e0..6200082bc9fd 100644
--- a/nixpkgs/pkgs/development/python-modules/withings-sync/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/withings-sync/default.nix
@@ -40,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Synchronisation of Withings weight";
+    mainProgram = "withings-sync";
     homepage = "https://github.com/jaroslawhartman/withings-sync";
     changelog = "https://github.com/jaroslawhartman/withings-sync/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/woob/default.nix b/nixpkgs/pkgs/development/python-modules/woob/default.nix
index 72f390df41f5..0887533adb9a 100644
--- a/nixpkgs/pkgs/development/python-modules/woob/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/woob/default.nix
@@ -3,21 +3,19 @@
 , buildPythonPackage
 , fetchFromGitLab
 , fetchpatch
-, gnupg
 , html2text
-, libyaml
 , lxml
-, nose
 , packaging
 , pillow
 , prettytable
 , pycountry
+, pytestCheckHook
 , python-dateutil
 , pythonOlder
 , pyyaml
 , requests
 , rich
-, termcolor
+, setuptools
 , testers
 , unidecode
 , woob
@@ -26,27 +24,25 @@
 buildPythonPackage rec {
   pname = "woob";
   version = "3.6";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitLab {
     owner = "woob";
-    repo = pname;
+    repo = "woob";
     rev = version;
     hash = "sha256-M9AjV954H1w64YGCVxDEGGSnoEbmocG3zwltob6IW04=";
   };
 
   nativeBuildInputs = [
-    packaging
+    setuptools
   ];
 
   propagatedBuildInputs = [
     babel
     python-dateutil
-    gnupg
     html2text
-    libyaml
     lxml
     packaging
     pillow
@@ -55,17 +51,18 @@ buildPythonPackage rec {
     pyyaml
     requests
     rich
-    termcolor
     unidecode
   ];
 
   nativeCheckInputs = [
-    nose
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    nosetests
-  '';
+  disabledTests = [
+    # require networking
+    "test_ciphers"
+    "test_verify"
+  ];
 
   pythonImportsCheck = [
     "woob"
@@ -77,7 +74,9 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
+    changelog = "https://gitlab.com/woob/woob/-/blob/${src.rev}/ChangeLog";
     description = "Collection of applications and APIs to interact with websites";
+    mainProgram = "woob";
     homepage = "https://woob.tech";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ DamienCassou ];
diff --git a/nixpkgs/pkgs/development/python-modules/woodblock/default.nix b/nixpkgs/pkgs/development/python-modules/woodblock/default.nix
index 8dde484494e8..cb0d5bab3df1 100644
--- a/nixpkgs/pkgs/development/python-modules/woodblock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/woodblock/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A framework to generate file carving test data";
+    mainProgram = "woodblock";
     homepage = "https://github.com/fkie-cad/woodblock";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/python-modules/wordcloud/default.nix b/nixpkgs/pkgs/development/python-modules/wordcloud/default.nix
index 1bca71009a99..a2d0fbb68450 100644
--- a/nixpkgs/pkgs/development/python-modules/wordcloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wordcloud/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "wordcloud";
-  version = "1.9.1.1";
+  version = "1.9.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "amueller";
     repo = "word_cloud";
     rev = "refs/tags/${version}";
-    hash = "sha256-Tcle9otT1eBN/RzajwKZDUq8xX0Lhi2t74OvhUrvHZE=";
+    hash = "sha256-UbryGiu1AW6Razbf4BJIKGKKhG6JOeZUGb1k0w8f8XA=";
   };
 
   postPatch = ''
@@ -62,6 +62,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Word cloud generator in Python";
+    mainProgram = "wordcloud_cli";
     homepage = "https://github.com/amueller/word_cloud";
     changelog = "https://github.com/amueller/word_cloud/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/wsgidav/default.nix b/nixpkgs/pkgs/development/python-modules/wsgidav/default.nix
index bff7c88f1463..e9f65687a3ee 100644
--- a/nixpkgs/pkgs/development/python-modules/wsgidav/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wsgidav/default.nix
@@ -55,6 +55,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Generic and extendable WebDAV server based on WSGI";
+    mainProgram = "wsgidav";
     homepage = "https://wsgidav.readthedocs.io/";
     changelog = "https://github.com/mar10/wsgidav/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/wtforms/default.nix b/nixpkgs/pkgs/development/python-modules/wtforms/default.nix
index 4b724ce6acbd..9bb47be4a27a 100644
--- a/nixpkgs/pkgs/development/python-modules/wtforms/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wtforms/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "wtforms";
-  version = "3.1.1";
+  version = "3.1.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "wtforms";
     repo = "wtforms";
     rev = "refs/tags/${version}";
-    hash = "sha256-9EryEXGlGCtDH/XPM4Oihla42HnY0nho9DaauHfYnNQ=";
+    hash = "sha256-L6DmB7iVpJR775oRxuEkCKWlUJnmw8VPZTr2dZbqeEc=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/wunsen/default.nix b/nixpkgs/pkgs/development/python-modules/wunsen/default.nix
new file mode 100644
index 000000000000..5fc6ea2d3803
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/wunsen/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+, pythonOlder
+
+, unittestCheckHook
+
+, hatchling
+
+, khanaa
+}:
+
+buildPythonPackage rec {
+  pname = "wunsen";
+  version = "0.0.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "cakimpei";
+    repo = "wunsen";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-lMEhtcWG+S3vAz+Y/qDxhaZslsO0pbs5xUn5QgZNs2U=";
+  };
+
+  build-system = [
+    hatchling
+  ];
+
+  dependencies = [
+    khanaa
+  ];
+
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
+
+  unittestFlagsArray = [ "-s" "tests" ];
+
+  pythonImportsCheck = [ "wunsen" ];
+
+  meta = with lib;
+    {
+      description = "Transliterate/transcribe other languages into Thai Topics";
+      homepage = "https://github.com/cakimpei/wunsen";
+      changelog = "https://github.com/cakimpei/wunsen/releases/tag/v${version}";
+      license = licenses.mit;
+      maintainers = with maintainers; [ vizid ];
+    };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/x-wr-timezone/default.nix b/nixpkgs/pkgs/development/python-modules/x-wr-timezone/default.nix
index 17afeaf5a348..f71e1c062869 100644
--- a/nixpkgs/pkgs/development/python-modules/x-wr-timezone/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/x-wr-timezone/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
 , icalendar
 , pytz
 , pytestCheckHook
@@ -10,17 +11,20 @@
 
 buildPythonPackage rec {
   pname = "x-wr-timezone";
-  version = "0.0.6";
-
-  format = "setuptools";
+  version = "0.0.7";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "niccokunzmann";
     repo = "x-wr-timezone";
     rev = "v${version}";
-    hash = "sha256-9B1gXabpZsJSHYUHLu6bBGidO3C5m/I0oOc5U/mbX0I=";
+    hash = "sha256-itqsVYYUcpbKTh0BM6IHk6F9xhB+pAQnnJsnZAVpNL4=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     icalendar
     pytz
@@ -36,8 +40,10 @@ buildPythonPackage rec {
     export PATH=$out/bin:$PATH
   '';
 
-  # https://github.com/niccokunzmann/x-wr-timezone/issues/8
-  doCheck = false;
+  disabledTests = [
+    "test_input_to_output"
+    "test_output_stays_the_same"
+  ];
 
   pythonImportsCheck = [ "x_wr_timezone" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/xapian/default.nix b/nixpkgs/pkgs/development/python-modules/xapian/default.nix
index 2daf40454974..824ce8620839 100644
--- a/nixpkgs/pkgs/development/python-modules/xapian/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xapian/default.nix
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   src = fetchurl {
     url = "https://oligarchy.co.uk/xapian/${version}/xapian-bindings-${version}.tar.xz";
-    hash = "sha256-UT1XhIgnkZis4TrUl1ENKyIgTV15S2QUPQW3vpdOts8=";
+    hash = "sha256-BoMU/KP1RSRwFJLfQy+lTEhf1OOWE8os0nXhNpZOgak=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/development/python-modules/xapp/default.nix b/nixpkgs/pkgs/development/python-modules/xapp/default.nix
index 8b8b795edda9..b5dc4e3e82ea 100644
--- a/nixpkgs/pkgs/development/python-modules/xapp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xapp/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "xapp";
-  version = "21";
+  version = "22";
 
   format = "other";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "linuxmint";
     repo = "python-xapp";
     rev = "refs/tags/master.mint${version}";
-    hash = "sha256-Kvhp+biZ+KK9FYma/8cUEaQCHPKMLjOO909kbyMLQ3o=";
+    hash = "sha256-2Gx85y0ARu6EfDYAT9ZL154RH0R1HY78tm3rceODnZU=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/xarray/default.nix b/nixpkgs/pkgs/development/python-modules/xarray/default.nix
index aa89ff792eea..e3e3865ce588 100644
--- a/nixpkgs/pkgs/development/python-modules/xarray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xarray/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, flaky
 , numpy
 , packaging
 , pandas
@@ -12,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "xarray";
-  version = "2024.1.1";
+  version = "2024.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-oboth6dIkuITycg/SkYtvN9oISMgpOMbNL14m6emTjU=";
+    hash = "sha256-oQXwJ5EILIiOviYiCQvq/y57aFcUiNYv5q/as1tLcX8=";
   };
 
   nativeBuildInputs = [
@@ -34,9 +35,15 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    flaky
     pytestCheckHook
   ];
 
+  pytestFlagsArray =[
+    # ModuleNotFoundError: No module named 'xarray.datatree_'
+    "--ignore xarray/tests/datatree"
+  ];
+
   pythonImportsCheck = [
     "xarray"
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/xattr/default.nix b/nixpkgs/pkgs/development/python-modules/xattr/default.nix
index 3ef8332cae21..6d24e5dffc8f 100644
--- a/nixpkgs/pkgs/development/python-modules/xattr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xattr/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python wrapper for extended filesystem attributes";
+    mainProgram = "xattr";
     homepage = "https://github.com/xattr/xattr";
     changelog = "https://github.com/xattr/xattr/blob/v${version}/CHANGES.txt";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/xdot/default.nix b/nixpkgs/pkgs/development/python-modules/xdot/default.nix
index 5f4970f4fd13..f0bfe71fcbb0 100644
--- a/nixpkgs/pkgs/development/python-modules/xdot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xdot/default.nix
@@ -56,6 +56,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "An interactive viewer for graphs written in Graphviz's dot";
+    mainProgram = "xdot";
     homepage = "https://github.com/jrfonseca/xdot.py";
     license = licenses.lgpl3Plus;
   };
diff --git a/nixpkgs/pkgs/development/python-modules/xhtml2pdf/default.nix b/nixpkgs/pkgs/development/python-modules/xhtml2pdf/default.nix
index f1c0d836bf74..f223e63c7f0e 100644
--- a/nixpkgs/pkgs/development/python-modules/xhtml2pdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xhtml2pdf/default.nix
@@ -2,36 +2,59 @@
 , arabic-reshaper
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch2
 , html5lib
 , pillow
 , pyhanko
+, pyhanko-certvalidator
 , pypdf
 , pytestCheckHook
 , python-bidi
 , pythonOlder
+, pythonRelaxDepsHook
 , reportlab
+, setuptools
 , svglib
 }:
 
 buildPythonPackage rec {
   pname = "xhtml2pdf";
-  version = "0.2.13";
+  version = "0.2.15";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "xhtml2pdf";
+    repo = "xhtml2pdf";
     rev = "refs/tags/v${version}";
-    hash = "sha256-K7gsTLYcXmKmEQzOXrJ2kvvLzKaDkZ/NRLRc0USii5M=";
+    hash = "sha256-JXxh/n1kUsy3O4P/6WTfa5p+mYy/t4ZBUhlHp+ypoQc=";
   };
 
+  patches = [
+    # https://github.com/xhtml2pdf/xhtml2pdf/pull/754
+    (fetchpatch2 {
+      name = "reportlab-compat.patch";
+      url = "https://github.com/xhtml2pdf/xhtml2pdf/commit/1252510bd23b833b45b4d252aeac62c1eb51eeef.patch";
+      hash = "sha256-9Fkn086uh2biabmiChbBna8Q4lJV/604yX1ng9j5TGs=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+    setuptools
+  ];
+
+  pythonRelaxDeps = [
+    "reportlab"
+  ];
+
   propagatedBuildInputs = [
     arabic-reshaper
     html5lib
     pillow
     pyhanko
+    pyhanko-certvalidator
     pypdf
     python-bidi
     reportlab
diff --git a/nixpkgs/pkgs/development/python-modules/xiaomi-ble/default.nix b/nixpkgs/pkgs/development/python-modules/xiaomi-ble/default.nix
index 18de691f5398..548609caaaa2 100644
--- a/nixpkgs/pkgs/development/python-modules/xiaomi-ble/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xiaomi-ble/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "xiaomi-ble";
-  version = "0.26.1";
+  version = "0.27.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = "xiaomi-ble";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ENs+n8YgOSQpN+UpYU6CI1McWPyh8hKKMUjPDUYRWjI=";
+    hash = "sha256-/LOq35YrGacXXP1Izl9xoF5rrCQGONPGj/u2zGOqbt0=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix b/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix
index 7ae231f03f89..3c5a946935ab 100644
--- a/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xkcdpass/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Generate secure multiword passwords/passphrases, inspired by XKCD";
+    mainProgram = "xkcdpass";
     homepage = "https://github.com/redacted/XKCD-password-generator";
     license = licenses.bsd3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/development/python-modules/xlrd/default.nix b/nixpkgs/pkgs/development/python-modules/xlrd/default.nix
index 8b2612f59af2..ce17ca1502ad 100644
--- a/nixpkgs/pkgs/development/python-modules/xlrd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xlrd/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://www.python-excel.org/";
     description = "Library for developers to extract data from Microsoft Excel (tm) spreadsheet files";
+    mainProgram = "runxlrd.py";
     license = licenses.bsd0;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix b/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix
index fec07f101cd8..5d4b37342f6f 100644
--- a/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix
@@ -25,6 +25,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/dilshod/xlsx2csv";
     description = "Convert xlsx to csv";
+    mainProgram = "xlsx2csv";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jb55 ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/xlsxwriter/default.nix b/nixpkgs/pkgs/development/python-modules/xlsxwriter/default.nix
index 5bd96b3aa1b6..9eb6c83716aa 100644
--- a/nixpkgs/pkgs/development/python-modules/xlsxwriter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xlsxwriter/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for creating Excel XLSX files";
+    mainProgram = "vba_extract.py";
     homepage = "https://xlsxwriter.readthedocs.io/";
     changelog = "https://xlsxwriter.readthedocs.io/changes.html";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix b/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix
index a4d23e9580dd..fd027903d714 100644
--- a/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "xml2rfc";
-  version = "3.20.0";
+  version = "3.20.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     owner = "ietf-tools";
     repo = "xml2rfc";
     rev = "refs/tags/v${version}";
-    hash = "sha256-w4wmjY+yA5Nc1roAXBRTqQxqaSI1vzdMhK9hGkbv7Rk=";
+    hash = "sha256-JDJZegJR34aaIzMdq/GYzOpIBH7epe9yHnUaI7OzRes=";
   };
 
   postPatch = ''
@@ -87,6 +87,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tool generating IETF RFCs and drafts from XML sources";
+    mainProgram = "xml2rfc";
     homepage = "https://github.com/ietf-tools/xml2rfc";
     changelog = "https://github.com/ietf-tools/xml2rfc/blob/v${version}/CHANGELOG.md";
     # Well, parts might be considered unfree, if being strict; see:
diff --git a/nixpkgs/pkgs/development/python-modules/xmljson/default.nix b/nixpkgs/pkgs/development/python-modules/xmljson/default.nix
index dee35921e41e..441a0e571dc2 100644
--- a/nixpkgs/pkgs/development/python-modules/xmljson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xmljson/default.nix
@@ -20,6 +20,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Converts XML into dictionary structures and vice-versa";
+    mainProgram = "xml2json";
     homepage = "https://github.com/sanand0/xmljson";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ rakesh4g ];
diff --git a/nixpkgs/pkgs/development/python-modules/xmod/default.nix b/nixpkgs/pkgs/development/python-modules/xmod/default.nix
new file mode 100644
index 000000000000..d5ba4bf1a322
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/xmod/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "xmod";
+  version = "1.8.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "rec";
+    repo = "xmod";
+    rev = "v${version}";
+    hash = "sha256-pfFxtDQ4kaBrx4XzYMQO1vE4dUr2zs8jgGUQUdXB798=";
+  };
+
+  build-system = [
+    poetry-core
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    "test_partial_function"
+  ];
+
+  pythonImportsCheck = [
+    "xmod"
+  ];
+
+  meta = with lib; {
+    description = "Turn any object into a module";
+    homepage = "https://github.com/rec/xmod";
+    changelog = "https://github.com/rec/xmod/blob/${src.rev}/CHANGELOG";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/xsdata/default.nix b/nixpkgs/pkgs/development/python-modules/xsdata/default.nix
index 097c2e1cc07c..b57fff4a94f0 100644
--- a/nixpkgs/pkgs/development/python-modules/xsdata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xsdata/default.nix
@@ -93,6 +93,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Naive XML & JSON bindings for Python";
+    mainProgram = "xsdata";
     homepage = "https://github.com/tefra/xsdata";
     changelog = "https://github.com/tefra/xsdata/blob/${src.rev}/CHANGES.md";
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/xstatic-asciinema-player/default.nix b/nixpkgs/pkgs/development/python-modules/xstatic-asciinema-player/default.nix
index d970f0888aa8..7651ce57c10d 100644
--- a/nixpkgs/pkgs/development/python-modules/xstatic-asciinema-player/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xstatic-asciinema-player/default.nix
@@ -4,11 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "XStatic-asciinema-player";
+  pname = "xstatic-asciinema-player";
   version = "2.6.1.1";
 
   src = fetchPypi {
-    inherit version pname;
+    pname = "XStatic-asciinema-player";
+    inherit version;
     sha256 = "sha256-yA6WC067St82Dm6StaCKdWrRBhmNemswetIO8iodfcw=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/xstatic-bootbox/default.nix b/nixpkgs/pkgs/development/python-modules/xstatic-bootbox/default.nix
index 6e5200d2a887..49c0f7d783fb 100644
--- a/nixpkgs/pkgs/development/python-modules/xstatic-bootbox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xstatic-bootbox/default.nix
@@ -4,11 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "XStatic-Bootbox";
+  pname = "xstatic-bootbox";
   version = "5.5.1.1";
 
   src = fetchPypi {
-    inherit version pname;
+    pname = "XStatic-Bootbox";
+    inherit version;
     sha256 = "4b2120bb33a1d8ada8f9e0532ad99987aa03879b17b08bfdc6b8326d6eb7c205";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/xstatic-bootstrap/default.nix b/nixpkgs/pkgs/development/python-modules/xstatic-bootstrap/default.nix
index 0d9962e5faf5..808957f70d14 100644
--- a/nixpkgs/pkgs/development/python-modules/xstatic-bootstrap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xstatic-bootstrap/default.nix
@@ -4,11 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "XStatic-Bootstrap";
+  pname = "xstatic-bootstrap";
   version = "4.5.3.1";
 
   src = fetchPypi {
-    inherit version pname;
+    pname = "XStatic-Bootstrap";
+    inherit version;
     sha256 = "cf67d205437b32508a88b69a7e7c5bbe2ca5a8ae71097391a6a6f510ebfd2820";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/xstatic-font-awesome/default.nix b/nixpkgs/pkgs/development/python-modules/xstatic-font-awesome/default.nix
index 71028393dc8c..07bce6f3c4c0 100644
--- a/nixpkgs/pkgs/development/python-modules/xstatic-font-awesome/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xstatic-font-awesome/default.nix
@@ -4,11 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "XStatic-Font-Awesome";
+  pname = "xstatic-font-awesome";
   version = "6.2.1.1";
 
   src = fetchPypi {
-    inherit version pname;
+    pname = "XStatic-Font-Awesome";
+    inherit version;
     sha256 = "sha256-8HWHEJYShjjy4VOQINgid1TD2IXdaOfubemgEjUHaCg=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/xstatic-jquery-file-upload/default.nix b/nixpkgs/pkgs/development/python-modules/xstatic-jquery-file-upload/default.nix
index ce3f8c76dfa6..29ab4f1cb062 100644
--- a/nixpkgs/pkgs/development/python-modules/xstatic-jquery-file-upload/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xstatic-jquery-file-upload/default.nix
@@ -5,11 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "XStatic-jQuery-File-Upload";
+  pname = "xstatic-jquery-file-upload";
   version = "10.31.0.1";
 
   src = fetchPypi {
-    inherit version pname;
+    pname = "XStatic-jQuery-File-Upload";
+    inherit version;
     sha256 = "7d716f26aca14732c35c54f0ba6d38187600ab472fc98a91d972d12c5a70db27";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/xstatic-jquery-ui/default.nix b/nixpkgs/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
index f5509676d114..0f74a49f929c 100644
--- a/nixpkgs/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
@@ -5,11 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "XStatic-jquery-ui";
+  pname = "xstatic-jquery-ui";
   version = "1.13.0.1";
 
   src = fetchPypi {
-    inherit version pname;
+    pname = "XStatic-jquery-ui";
+    inherit version;
     sha256 = "3697e5f0ef355b8f4a1c724221592683c2db031935cbb57b46224eef474bd294";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/xstatic-jquery/default.nix b/nixpkgs/pkgs/development/python-modules/xstatic-jquery/default.nix
index e2a8f8266111..bd48c889f3f0 100644
--- a/nixpkgs/pkgs/development/python-modules/xstatic-jquery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xstatic-jquery/default.nix
@@ -4,11 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "XStatic-jQuery";
+  pname = "xstatic-jquery";
   version = "3.5.1.1";
 
   src = fetchPypi {
-    inherit version pname;
+    pname = "XStatic-jQuery";
+    inherit version;
     sha256 = "e0ae8f8ec5bbd28045ba4bca06767a38bd5fc27cf9b71f434589f59370dcd323";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/xstatic-pygments/default.nix b/nixpkgs/pkgs/development/python-modules/xstatic-pygments/default.nix
index 68fc2339f559..6d8391dcb8aa 100644
--- a/nixpkgs/pkgs/development/python-modules/xstatic-pygments/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xstatic-pygments/default.nix
@@ -4,11 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "XStatic-Pygments";
+  pname = "xstatic-pygments";
   version = "2.9.0.1";
 
   src = fetchPypi {
-    inherit version pname;
+    pname = "XStatic-Pygments";
+    inherit version;
     sha256 = "082c1e9fe606fbbef474f78b6fdb19e9a2efcc7a9b7d94163cf66f7bfae75762";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/xstatic/default.nix b/nixpkgs/pkgs/development/python-modules/xstatic/default.nix
index d9d6e0398355..593dd7e9dd9e 100644
--- a/nixpkgs/pkgs/development/python-modules/xstatic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xstatic/default.nix
@@ -4,11 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  pname = "XStatic";
+  pname = "xstatic";
   version = "1.0.3";
 
   src = fetchPypi {
-    inherit version pname;
+    pname = "XStatic";
+    inherit version;
     sha256 = "sha256-QCVEzJ4XlIlEEFTwnIB4BOEV6iRpB96HwDVftPWjEmg=";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/yalexs/default.nix b/nixpkgs/pkgs/development/python-modules/yalexs/default.nix
index 4f515f9b7bbb..2111d5fa4d6b 100644
--- a/nixpkgs/pkgs/development/python-modules/yalexs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yalexs/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "yalexs";
-  version = "2.0.0";
+  version = "3.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "bdraco";
     repo = "yalexs";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ozohIzw80YfyB0sxXQ9MY6VpF+EDDvXZYfkpuloE4AU=";
+    hash = "sha256-hY46hUUmbQUWmI+Oa9qIQ1rZdXT5daGo1Vd5JRKfDHE=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/yamale/default.nix b/nixpkgs/pkgs/development/python-modules/yamale/default.nix
index f4e90d649a71..ae5705d9970d 100644
--- a/nixpkgs/pkgs/development/python-modules/yamale/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yamale/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "yamale";
-  version = "4.0.4";
+  version = "5.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,8 +17,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "23andMe";
     repo = pname;
-    rev = version;
-    hash = "sha256-1GFvgfy3MDsJGKSEm0yaQoLM7VqIS2wphw16trNTUOc=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-WLI3cL6i7eLfaX1nN8K/fHlrkOm+JdTEscelql6jO44=";
   };
 
   propagatedBuildInputs = [
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A schema and validator for YAML";
+    mainProgram = "yamale";
     homepage = "https://github.com/23andMe/Yamale";
     license = licenses.mit;
     maintainers = with maintainers; [ rtburns-jpl ];
diff --git a/nixpkgs/pkgs/development/python-modules/yamllint/default.nix b/nixpkgs/pkgs/development/python-modules/yamllint/default.nix
index 9200d7d508ac..79687d6cf621 100644
--- a/nixpkgs/pkgs/development/python-modules/yamllint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yamllint/default.nix
@@ -52,6 +52,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A linter for YAML files";
+    mainProgram = "yamllint";
     homepage = "https://github.com/adrienverge/yamllint";
     changelog = "https://github.com/adrienverge/yamllint/blob/v${version}/CHANGELOG.rst";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/python-modules/yangson/default.nix b/nixpkgs/pkgs/development/python-modules/yangson/default.nix
index d402f1478b16..aea6481b6c1a 100644
--- a/nixpkgs/pkgs/development/python-modules/yangson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yangson/default.nix
@@ -1,27 +1,33 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, setuptools-scm
+, fetchFromGitHub
+, poetry-core
 , elementpath
+, pyyaml
+, setuptools
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "yangson";
-  version = "1.4.19";
-  format = "setuptools";
+  version = "1.5.2";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-rYUxv3TEdyr2D3UEmmHcJJtlG6gXJnp1c2pez4H13SU=";
+  src = fetchFromGitHub {
+    owner = "CZ-NIC";
+    repo = "yangson";
+    rev = "refs/tags/${version}";
+    hash = "sha256-c/UWyfJdVz6wSluL1Ej9cSV3EpDUTkP0GTeHPYfAduE=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
+  build-system = [
+    poetry-core
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     elementpath
+    pyyaml
+    setuptools
   ];
 
   nativeCheckInputs = [
@@ -34,6 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library for working with data modelled in YANG";
+    mainProgram = "yangson";
     homepage = "https://github.com/CZ-NIC/yangson";
     license = with licenses; [
       gpl3Plus
diff --git a/nixpkgs/pkgs/development/python-modules/yappi/default.nix b/nixpkgs/pkgs/development/python-modules/yappi/default.nix
index 1e20c1ba2eab..7160245e8ec0 100644
--- a/nixpkgs/pkgs/development/python-modules/yappi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yappi/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python profiler that supports multithreading and measuring CPU time";
+    mainProgram = "yappi";
     homepage = "https://github.com/sumerc/yappi";
     license = licenses.mit;
     maintainers = with maintainers; [ orivej ];
diff --git a/nixpkgs/pkgs/development/python-modules/yark/default.nix b/nixpkgs/pkgs/development/python-modules/yark/default.nix
index 7bbf5288cf26..cdcd1ab08afd 100644
--- a/nixpkgs/pkgs/development/python-modules/yark/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yark/default.nix
@@ -53,6 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module for YouTube archiving";
+    mainProgram = "yark";
     homepage = "https://github.com/Owez/yark";
     changelog = "https://github.com/Owez/yark/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/yasi/default.nix b/nixpkgs/pkgs/development/python-modules/yasi/default.nix
index 08068ed6b6b4..dbcbfe1a5378 100644
--- a/nixpkgs/pkgs/development/python-modules/yasi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yasi/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A dialect-aware s-expression indenter written in Python and newLISP";
+    mainProgram = "yasi";
     homepage = "https://github.com/nkmathew/yasi-sexp-indenter";
     changelog = "https://github.com/nkmathew/yasi-sexp-indenter/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/yaswfp/default.nix b/nixpkgs/pkgs/development/python-modules/yaswfp/default.nix
index f4f6b8bc22be..65542562df94 100644
--- a/nixpkgs/pkgs/development/python-modules/yaswfp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yaswfp/default.nix
@@ -24,6 +24,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python SWF Parser";
+    mainProgram = "swfparser";
     homepage = "https://github.com/facundobatista/yaswfp";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/python-modules/ydiff/default.nix b/nixpkgs/pkgs/development/python-modules/ydiff/default.nix
index 46c9f1a3d7a9..04f9be193aac 100644
--- a/nixpkgs/pkgs/development/python-modules/ydiff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ydiff/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "View colored, incremental diff in workspace or from stdin with side by side and auto pager support (Was \"cdiff\")";
+    mainProgram = "ydiff";
     longDescription = ''
       Term based tool to view colored, incremental diff in a version
       controlled workspace (supports Git, Mercurial, Perforce and Svn
diff --git a/nixpkgs/pkgs/development/python-modules/yfinance/default.nix b/nixpkgs/pkgs/development/python-modules/yfinance/default.nix
index 06db089ca835..18e86dc16102 100644
--- a/nixpkgs/pkgs/development/python-modules/yfinance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yfinance/default.nix
@@ -52,6 +52,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Module to doiwnload Yahoo! Finance market data";
+    mainProgram = "sample";
     homepage = "https://github.com/ranaroussi/yfinance";
     changelog = "https://github.com/ranaroussi/yfinance/blob/${version}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/yolink-api/default.nix b/nixpkgs/pkgs/development/python-modules/yolink-api/default.nix
index e1e43b34a7ae..b52b2268a400 100644
--- a/nixpkgs/pkgs/development/python-modules/yolink-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yolink-api/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "yolink-api";
-  version = "0.3.9";
+  version = "0.4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,14 +20,14 @@ buildPythonPackage rec {
     owner = "YoSmart-Inc";
     repo = "yolink-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RXO++8Dh0hLkjXev/WDhPixLHKXlqRabbrPW6Hs/xoM=";
+    hash = "sha256-YDfwF9ldL43yrhz1TibTatkZIccYTpNODdjqBkzeh1s=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     aiomqtt
     pydantic
diff --git a/nixpkgs/pkgs/development/python-modules/youseedee/0001-use-packaged-unicode-data.patch b/nixpkgs/pkgs/development/python-modules/youseedee/0001-use-packaged-unicode-data.patch
index 26af7ad24c92..73aadac9a3de 100644
--- a/nixpkgs/pkgs/development/python-modules/youseedee/0001-use-packaged-unicode-data.patch
+++ b/nixpkgs/pkgs/development/python-modules/youseedee/0001-use-packaged-unicode-data.patch
@@ -1,25 +1,16 @@
-From 9013d36cfe7b2958eb18ce373f49193b66a0bbf6 Mon Sep 17 00:00:00 2001
-From: Dan Callaghan <djc@djc.id.au>
-Date: Sun, 23 Apr 2023 16:14:55 +1000
-Subject: [PATCH] use packaged unicode data
-
-
 diff --git a/lib/youseedee/__init__.py b/lib/youseedee/__init__.py
-index 4424ef1..9a72f52 100644
+index d2aeab3..c706277 100644
 --- a/lib/youseedee/__init__.py
 +++ b/lib/youseedee/__init__.py
-@@ -11,10 +11,7 @@
- UCD_URL = "https://unicode.org/Public/UCD/latest/ucd/UCD.zip"
+@@ -29,10 +29,7 @@ UCD_URL = "https://unicode.org/Public/UCD/latest/ucd/UCD.zip"
+ 
  
  def ucd_dir():
--  ucddir = os.path.expanduser("~/.youseedee")
--  if not os.path.isdir(ucddir):
--    os.mkdir(ucddir)
--  return ucddir
-+  return "@ucd_dir@"
+-    ucddir = os.path.expanduser("~/.youseedee")
+-    if not os.path.isdir(ucddir):
+-        os.mkdir(ucddir)
+-    return ucddir
++    return "@ucd_dir@"
+ 
  
  def ensure_files():
-   if os.path.isfile(os.path.join(ucd_dir(), "UnicodeData.txt")):
--- 
-2.38.4
-
diff --git a/nixpkgs/pkgs/development/python-modules/youseedee/default.nix b/nixpkgs/pkgs/development/python-modules/youseedee/default.nix
index e2d9456110ab..3e04540dc577 100644
--- a/nixpkgs/pkgs/development/python-modules/youseedee/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/youseedee/default.nix
@@ -2,18 +2,19 @@
 , buildPythonPackage
 , fetchPypi
 , substituteAll
+, filelock
 , requests
 , unicode-character-database
 }:
 
 buildPythonPackage rec {
   pname = "youseedee";
-  version = "0.4.1";
+  version = "0.5.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-fdI4CBUSMbdKW0qg4y22wjWI6bhotgDkQdFMc9X00as=";
+    hash = "sha256-hQkI8kdropLiO86LXDy6eQma3FEg48gLldU7bFg9dzI=";
   };
 
   patches = [
@@ -26,6 +27,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    filelock
     requests
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/youtokentome/default.nix b/nixpkgs/pkgs/development/python-modules/youtokentome/default.nix
index 2adb7480f906..0dfe0336c056 100644
--- a/nixpkgs/pkgs/development/python-modules/youtokentome/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/youtokentome/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Unsupervised text tokenizer";
+    mainProgram = "yttm";
     homepage = "https://github.com/VKCOM/YouTokenToMe";
     changelog = "https://github.com/VKCOM/YouTokenToMe/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/youtube-transcript-api/default.nix b/nixpkgs/pkgs/development/python-modules/youtube-transcript-api/default.nix
index 79d9c4a174b8..e76038267a80 100644
--- a/nixpkgs/pkgs/development/python-modules/youtube-transcript-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/youtube-transcript-api/default.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python API which allows you to get the transcripts/subtitles for a given YouTube video";
+    mainProgram = "youtube_transcript_api";
     homepage = "https://github.com/jdepoix/youtube-transcript-api";
     changelog = "https://github.com/jdepoix/youtube-transcript-api/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/yowsup/default.nix b/nixpkgs/pkgs/development/python-modules/yowsup/default.nix
index 1754dab10d36..bc79ff51823f 100644
--- a/nixpkgs/pkgs/development/python-modules/yowsup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yowsup/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/tgalal/yowsup";
     description = "The python WhatsApp library";
+    mainProgram = "yowsup-cli";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/yte/default.nix b/nixpkgs/pkgs/development/python-modules/yte/default.nix
index 3056659cacbf..6b8bcfb95be1 100644
--- a/nixpkgs/pkgs/development/python-modules/yte/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yte/default.nix
@@ -52,6 +52,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "YAML template engine with Python expressions";
+    mainProgram = "yte";
     homepage = "https://github.com/koesterlab/yte";
     changelog = "https://github.com/yte-template-engine/yte/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix b/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
index 6f0d61b7c642..380738008361 100644
--- a/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "1.5.4";
+  version = "1.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "sigma67";
     repo = "ytmusicapi";
     rev = "refs/tags/${version}";
-    hash = "sha256-Bg2Ikxkaq+dJkX842GCdIevgxULYSfE7s61YviqUln8=";
+    hash = "sha256-DqTcdWVivE2R51qm3XQ7cDnD1a90AocmX9TG+M5reto=";
   };
 
   nativeBuildInputs = [
@@ -38,6 +38,7 @@ buildPythonPackage rec {
 
   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;
diff --git a/nixpkgs/pkgs/development/python-modules/z3c-checkversions/default.nix b/nixpkgs/pkgs/development/python-modules/z3c-checkversions/default.nix
index 25b0fb7ba9e6..9f6a7ed4258e 100644
--- a/nixpkgs/pkgs/development/python-modules/z3c-checkversions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/z3c-checkversions/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/zopefoundation/z3c.checkversions";
     changelog = "https://github.com/zopefoundation/z3c.checkversions/blob/${version}/CHANGES.rst";
     description = "Find newer package versions on PyPI";
+    mainProgram = "checkversions";
     license = licenses.zpl21;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/zarr/default.nix b/nixpkgs/pkgs/development/python-modules/zarr/default.nix
index 8be14e23e7d0..fcb57b3731dd 100644
--- a/nixpkgs/pkgs/development/python-modules/zarr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zarr/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "zarr";
-  version = "2.16.1";
+  version = "2.17.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QnbPS0plNDEELNU/8igrxNKSpoQkEeiFKZZFBPsHMoY=";
+    hash = "sha256-Vks6oHISJUb+aaD6IXNvRmsg+tQXVDNLYmGfCIzkYmE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zc-lockfile/default.nix b/nixpkgs/pkgs/development/python-modules/zc-lockfile/default.nix
index 5104a221e1e8..8b7818ef119b 100644
--- a/nixpkgs/pkgs/development/python-modules/zc-lockfile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zc-lockfile/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "zc-lockfile";
-  version = "3.0";
+  version = "3.0.post1";
 
   src = fetchPypi {
     pname = "zc.lockfile";
     inherit version;
-    hash = "sha256-5Y/9ndYsbUMuhoK/oZbJDKw+XB4/JNrjuJ1ggihV14g=";
+    hash = "sha256-rbLubZ5qIzPJEXjcssm5aldEx47bdxLceEp9dWSOgew=";
   };
 
   buildInputs = [ mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/zcbor/default.nix b/nixpkgs/pkgs/development/python-modules/zcbor/default.nix
index 9bce9e925c1d..0ac5f5323b64 100644
--- a/nixpkgs/pkgs/development/python-modules/zcbor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zcbor/default.nix
@@ -35,6 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A low footprint CBOR library in the C language (C++ compatible), tailored for use in microcontrollers";
+    mainProgram = "zcbor";
     homepage = "https://pypi.org/project/zcbor/";
     changelog = "https://github.com/NordicSemiconductor/zcbor/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/zdaemon/default.nix b/nixpkgs/pkgs/development/python-modules/zdaemon/default.nix
index 4434ceb09545..54c096b64257 100644
--- a/nixpkgs/pkgs/development/python-modules/zdaemon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zdaemon/default.nix
@@ -30,6 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A daemon process control library and tools for Unix-based systems";
+    mainProgram = "zdaemon";
     homepage = "https://pypi.python.org/pypi/zdaemon";
     changelog = "https://github.com/zopefoundation/zdaemon/blob/${version}/CHANGES.rst";
     license = licenses.zpl21;
diff --git a/nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix b/nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix
index 39ee5b6cba7d..d68c90edd161 100644
--- a/nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zeroc-ice/default.nix
@@ -33,6 +33,7 @@ buildPythonPackage rec {
     homepage = "https://zeroc.com/";
     license = licenses.gpl2;
     description = "Comprehensive RPC framework with support for Python, C++, .NET, Java, JavaScript and more.";
+    mainProgram = "slice2py";
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/zerorpc/default.nix b/nixpkgs/pkgs/development/python-modules/zerorpc/default.nix
index 0cc61ac695e2..3734496531a1 100644
--- a/nixpkgs/pkgs/development/python-modules/zerorpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zerorpc/default.nix
@@ -16,6 +16,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "An easy to use, intuitive, and cross-language RPC";
+    mainProgram = "zerorpc";
     homepage = "https://www.zerorpc.io";
     license = licenses.mit;
     maintainers = with maintainers; [ xeji ];
diff --git a/nixpkgs/pkgs/development/python-modules/zipstream-ng/default.nix b/nixpkgs/pkgs/development/python-modules/zipstream-ng/default.nix
index fe6e8771c057..d4972f70e450 100644
--- a/nixpkgs/pkgs/development/python-modules/zipstream-ng/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zipstream-ng/default.nix
@@ -29,6 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to generate streamable zip files";
+    mainProgram = "zipserver";
     longDescription = ''
       A modern and easy to use streamable zip file generator. It can package and stream many files
       and folders on the fly without needing temporary files or excessive memory
diff --git a/nixpkgs/pkgs/development/python-modules/zlib-ng/default.nix b/nixpkgs/pkgs/development/python-modules/zlib-ng/default.nix
index 4f93df3c692b..7cb498bbb12f 100644
--- a/nixpkgs/pkgs/development/python-modules/zlib-ng/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zlib-ng/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "zlib-ng";
-  version = "0.4.0";
+  version = "0.4.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pycompression";
     repo = "python-zlib-ng";
     rev = "v${version}";
-    hash = "sha256-bVdt4GYdbzhoT6et+LOycg0Bt6dX9DtusNr8HPpgIFI=";
+    hash = "sha256-uK6Md8ZOVUNwXCjzM4zTVr3WBwzLdnvT9n8yBvf968k=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zope-configuration/default.nix b/nixpkgs/pkgs/development/python-modules/zope-configuration/default.nix
index 7a21ad79e29b..6a664daaf026 100644
--- a/nixpkgs/pkgs/development/python-modules/zope-configuration/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope-configuration/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "zope-configuration";
-  version = "5.0";
+  version = "5.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "zope.configuration";
     inherit version;
-    hash = "sha256-I0tKGMcfazub9rzyJSZLrgFJrGjeoHsHLw9pmkzsJuc=";
+    hash = "sha256-81h36tXpmANjhdLdxGkZ6ryZjmmcBZh5ZPFxrY3ZJxs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zope-proxy/default.nix b/nixpkgs/pkgs/development/python-modules/zope-proxy/default.nix
index 3c2a6d4be9f8..6084a86f65ae 100644
--- a/nixpkgs/pkgs/development/python-modules/zope-proxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope-proxy/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "zope-proxy";
-  version = "5.1";
+  version = "5.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "zope.proxy";
     inherit version;
-    hash = "sha256-d3e9P4986nRSFyYgLhptUVPb9knyBOJQBYrQOvRqQxg=";
+    hash = "sha256-93fVbCqy/PQNAmraHmfx45z2MY497rmhzVCH/MsfKG4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zope-testrunner/default.nix b/nixpkgs/pkgs/development/python-modules/zope-testrunner/default.nix
index 742adb082fad..0f91e35462b5 100644
--- a/nixpkgs/pkgs/development/python-modules/zope-testrunner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope-testrunner/default.nix
@@ -23,6 +23,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A flexible test runner with layer support";
+    mainProgram = "zope-testrunner";
     homepage = "https://pypi.python.org/pypi/zope.testrunner";
     license = licenses.zpl20;
     maintainers = [ maintainers.goibhniu ];
diff --git a/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix b/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix
index bd5db6bf2baf..8ebdf0f596f6 100644
--- a/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zwave-js-server-python/default.nix
@@ -43,6 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python wrapper for zwave-js-server";
+    mainProgram = "zwave-js-server-python";
     homepage = "https://github.com/home-assistant-libs/zwave-js-server-python";
     changelog = "https://github.com/home-assistant-libs/zwave-js-server-python/releases/tag/${version}";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/python-modules/zxcvbn/default.nix b/nixpkgs/pkgs/development/python-modules/zxcvbn/default.nix
index e9a8f32700c6..91b9d03ccc2e 100644
--- a/nixpkgs/pkgs/development/python-modules/zxcvbn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zxcvbn/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python implementation of Dropbox's realistic password strength estimator";
+    mainProgram = "zxcvbn";
     homepage = "https://github.com/dwolfhub/zxcvbn-python";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
diff --git a/nixpkgs/pkgs/development/r-modules/default.nix b/nixpkgs/pkgs/development/r-modules/default.nix
index 3a13beb7e789..80faec70b36b 100644
--- a/nixpkgs/pkgs/development/r-modules/default.nix
+++ b/nixpkgs/pkgs/development/r-modules/default.nix
@@ -309,6 +309,7 @@ let
   };
 
   packagesWithNativeBuildInputs = {
+    adbcpostgresql = [ pkgs.postgresql ];
     arrow = [ pkgs.pkg-config pkgs.arrow-cpp ];
     adimpro = [ pkgs.imagemagick ];
     animation = [ pkgs.which ];
@@ -316,11 +317,13 @@ let
     BayesSAE = [ pkgs.gsl ];
     BayesVarSel = [ pkgs.gsl ];
     BayesXsrc = with pkgs; [ readline.dev ncurses gsl ];
+    bioacoustics = [ pkgs.fftw.dev pkgs.cmake ];
     bigGP = [ pkgs.mpi ];
     bio3d = [ pkgs.zlib ];
     BiocCheck = [ pkgs.which ];
     Biostrings = [ pkgs.zlib ];
     CellBarcode = [ pkgs.zlib ];
+    cld3 = [ pkgs.protobuf ];
     bnpmr = [ pkgs.gsl ];
     cairoDevice = [ pkgs.gtk2.dev ];
     Cairo = with pkgs; [ libtiff libjpeg cairo.dev xorg.libXt.dev fontconfig.lib ];
@@ -338,6 +341,7 @@ let
     fftwtools = with pkgs; [ fftw.dev pkg-config ];
     Formula = [ pkgs.gmp ];
     gdtools = with pkgs; [ cairo.dev fontconfig.lib freetype.dev ];
+    GeneralizedWendland = [ pkgs.gsl ];
     ggiraph = with pkgs; [ pkgs.libpng.dev ];
     git2r = with pkgs; [ zlib.dev openssl.dev libssh2.dev libgit2 pkg-config ];
     GLAD = [ pkgs.gsl ];
@@ -346,10 +350,12 @@ let
     GPBayes = [ pkgs.gsl ];
     graphscan = [ pkgs.gsl ];
     gsl = [ pkgs.gsl ];
+    gslnls = [ pkgs.gsl ];
     gert = [ pkgs.libgit2 ];
     haven = with pkgs; [ zlib.dev ];
     h5vc = [ pkgs.zlib.dev ];
     highs = [ pkgs.which pkgs.cmake ];
+    rbedrock = [ pkgs.zlib.dev pkgs.which pkgs.cmake ];
     HiCseg = [ pkgs.gsl ];
     imager = [ pkgs.xorg.libX11.dev ];
     iBMQ = [ pkgs.gsl ];
@@ -359,6 +365,7 @@ let
     jqr = [ pkgs.jq.dev ];
     KFKSDS = [ pkgs.gsl ];
     kza = [ pkgs.fftw.dev ];
+    leidenAlg = [ pkgs.gmp.dev ];
     Libra = [ pkgs.gsl ];
     LOMAR = [ pkgs.gmp.dev ];
     lpsymphony = with pkgs; [ pkg-config gfortran gettext ];
@@ -375,11 +382,13 @@ let
     nloptr = with pkgs; [ nlopt pkg-config ];
     n1qn1 = [ pkgs.gfortran ];
     odbc = [ pkgs.unixODBC ];
+    opencv = [ pkgs.pkg-config ];
     pak = [ pkgs.curl.dev ];
     pander = with pkgs; [ pandoc which ];
     pbdMPI = [ pkgs.mpi ];
     pbdPROF = [ pkgs.mpi ];
     pbdZMQ = [ pkgs.pkg-config ] ++ lib.optionals stdenv.isDarwin [ pkgs.which ];
+    pcaL1 = [ pkgs.pkg-config pkgs.clp ];
     pdftools = [ pkgs.poppler.dev ];
     phytools = [ pkgs.which ];
     PKI = [ pkgs.openssl.dev ];
@@ -426,6 +435,7 @@ let
     httpuv = [ pkgs.zlib.dev ];
     clustermq = [ pkgs.zeromq ];
     SAVE = with pkgs; [ zlib bzip2 icu xz pcre ];
+    salso = [ pkgs.cargo ];
     sdcTable = with pkgs; [ gmp glpk ];
     seewave = with pkgs; [ fftw.dev libsndfile.dev ];
     seqinr = [ pkgs.zlib.dev ];
@@ -435,6 +445,7 @@ let
     strawr = with pkgs; [ curl.dev ];
     terra = with pkgs; [ gdal proj geos ];
     apcf = with pkgs; [ geos ];
+    SemiCompRisks = [ pkgs.gsl ];
     showtext = with pkgs; [ zlib libpng icu freetype.dev ];
     simplexreg = [ pkgs.gsl ];
     spate = [ pkgs.fftw.dev ];
@@ -446,6 +457,7 @@ let
     sysfonts = with pkgs; [ zlib libpng freetype.dev ];
     systemfonts = with pkgs; [ fontconfig.dev freetype.dev ];
     TAQMNGR = [ pkgs.zlib.dev ];
+    TDA = [ pkgs.gmp ];
     tesseract = with pkgs; [ tesseract leptonica ];
     tiff = [ pkgs.libtiff.dev ];
     tkrplot = with pkgs; [ xorg.libX11 tk.dev ];
@@ -501,6 +513,7 @@ let
     RDieHarder = [ pkgs.gsl ];
     QF = [ pkgs.gsl ];
     PICS = [ pkgs.gsl ];
+    RationalMatrix = [ pkgs.pkg-config pkgs.gmp.dev];
     RcppCWB = [ pkgs.pkg-config pkgs.pcre2 ];
     redux = [ pkgs.pkg-config ];
     rrd = [ pkgs.pkg-config ];
@@ -513,27 +526,37 @@ let
     textshaping = [ pkgs.pkg-config ];
     ragg = [ pkgs.pkg-config ];
     qqconf = [ pkgs.pkg-config ];
+    vapour = [ pkgs.pkg-config ];
   };
 
   packagesWithBuildInputs = {
     # sort -t '=' -k 2
     asciicast = with pkgs; [ xz.dev bzip2.dev zlib.dev icu.dev ];
+    island = [ pkgs.gsl.dev ];
     svKomodo = [ pkgs.which ];
+    ulid = [ pkgs.zlib.dev ];
+    unrtf = with pkgs; [ xz.dev bzip2.dev zlib.dev icu.dev ];
     nat = [ pkgs.which ];
     nat_templatebrains = [ pkgs.which ];
     pbdZMQ = [ pkgs.zeromq ] ++ lib.optionals stdenv.isDarwin [ pkgs.darwin.binutils ];
     bigmemory = lib.optionals stdenv.isLinux [ pkgs.libuuid.dev ];
+    bayesWatch = [ pkgs.boost.dev ];
     clustermq = [  pkgs.pkg-config ];
+    coga = [ pkgs.gsl.dev ];
+    gpg = [ pkgs.gpgme ];
     webp = [ pkgs.libwebp ];
     RMark = [ pkgs.which ];
     RPushbullet = [ pkgs.which ];
+    stpphawkes = [ pkgs.gsl ];
     RCurl = [ pkgs.curl.dev ];
     R2SWF = [ pkgs.pkg-config ];
+    rDEA = [ pkgs.glpk ];
     rgl = with pkgs; [ libGLU libGLU.dev libGL xorg.libX11.dev freetype.dev libpng.dev ];
     RGtk2 = [ pkgs.pkg-config ];
     RProtoBuf = [ pkgs.pkg-config ];
     Rpoppler = [ pkgs.pkg-config ];
     XML = [ pkgs.pkg-config ];
+    apsimx = [ pkgs.which ];
     cairoDevice = [ pkgs.pkg-config ];
     chebpol = [ pkgs.pkg-config ];
     fftw = [ pkgs.pkg-config ];
@@ -587,6 +610,7 @@ let
     DiffBind = with pkgs; [ zlib.dev ];
     CNEr = with pkgs; [ zlib ];
     GMMAT = with pkgs; [ zlib.dev bzip2.dev ];
+    rmumps = with pkgs; [ zlib.dev ];
     HiCDCPlus = [ pkgs.zlib.dev ];
     PopGenome = [ pkgs.zlib.dev ];
     QuasR = [ pkgs.zlib.dev ];
@@ -641,6 +665,7 @@ let
     redux = [ pkgs.hiredis ];
     RmecabKo = [ pkgs.mecab ];
     PoissonBinomial = [ pkgs.fftw.dev ];
+    poisbinom = [ pkgs.fftw.dev ];
     PoissonMultinomial = [ pkgs.fftw.dev ];
     rrd = [ pkgs.rrdtool ];
     flowWorkspace = [ pkgs.zlib.dev ];
@@ -656,6 +681,7 @@ let
     ijtiff = [ pkgs.libtiff ];
     ragg = with pkgs; [ freetype.dev libpng.dev libtiff.dev zlib.dev libjpeg.dev bzip2.dev ];
     qqconf = [ pkgs.fftw.dev ];
+    vapour = with pkgs; [ proj.dev gdal ];
   };
 
   packagesRequiringX = [
@@ -834,6 +860,7 @@ let
     "svWidgets"
     "SYNCSA"
     "SyNet"
+    "switchboard"
     "tcltk2"
     "TestScorer"
     "TIMP"
@@ -866,10 +893,13 @@ let
     "R_filesets"
     "RKorAPClient"
     "R_rsp"
+    "salso"
     "scholar"
     "stepR"
     "styler"
+    "teal_code"
     "TreeTools"
+    "TreeSearch"
     "ACNE"
     "APAlyzer"
     "EstMix"
@@ -895,6 +925,7 @@ let
     "fixest"
     "paxtoolsr"
     "systemPipeShiny"
+    "matlab2r"
   ];
 
   packagesToSkipCheck = [
@@ -1334,6 +1365,12 @@ let
       ];
     });
 
+    xslt = old.xslt.overrideAttrs (attrs: {
+      env = (attrs.env or { }) // {
+        NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -fpermissive";
+      };
+    });
+
     sparklyr = old.sparklyr.overrideAttrs (attrs: {
       # Pyspark's spark is full featured and better maintained than pkgs.spark
       preConfigure = ''
@@ -1388,6 +1425,13 @@ let
       RGL_USE_NULL = "true";
     });
 
+
+    opencv = let
+      opencvGtk = pkgs.opencv.override (old : { enableGtk2 = true; });
+    in old.opencv.overrideAttrs (attrs: {
+      buildInputs = attrs.buildInputs ++ [ opencvGtk ];
+    });
+
     Rhdf5lib = let
       hdf5 = pkgs.hdf5_1_10.overrideAttrs (attrs: {configureFlags = attrs.configureFlags ++ ["--enable-cxx"];});
     in old.Rhdf5lib.overrideAttrs (attrs: {
diff --git a/nixpkgs/pkgs/development/rocm-modules/5/clang-ocl/default.nix b/nixpkgs/pkgs/development/rocm-modules/5/clang-ocl/default.nix
index c29223dd8c7f..65c2ea80b2a5 100644
--- a/nixpkgs/pkgs/development/rocm-modules/5/clang-ocl/default.nix
+++ b/nixpkgs/pkgs/development/rocm-modules/5/clang-ocl/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "OpenCL compilation with clang compiler";
+    mainProgram = "clang-ocl";
     homepage = "https://github.com/ROCm/clang-ocl";
     license = with licenses; [ mit ];
     maintainers = teams.rocm.members;
diff --git a/nixpkgs/pkgs/development/rocm-modules/5/composable_kernel/default.nix b/nixpkgs/pkgs/development/rocm-modules/5/composable_kernel/default.nix
index 78416b77a07b..7e7de3cf7368 100644
--- a/nixpkgs/pkgs/development/rocm-modules/5/composable_kernel/default.nix
+++ b/nixpkgs/pkgs/development/rocm-modules/5/composable_kernel/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Performance portable programming model for machine learning tensor operators";
+    mainProgram = "ckProfiler";
     homepage = "https://github.com/ROCm/composable_kernel";
     license = with licenses; [ mit ];
     maintainers = teams.rocm.members;
diff --git a/nixpkgs/pkgs/development/rocm-modules/5/hipfort/default.nix b/nixpkgs/pkgs/development/rocm-modules/5/hipfort/default.nix
index 092c6e758195..13e02d439c01 100644
--- a/nixpkgs/pkgs/development/rocm-modules/5/hipfort/default.nix
+++ b/nixpkgs/pkgs/development/rocm-modules/5/hipfort/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Fortran interfaces for ROCm libraries";
+    mainProgram = "hipfc";
     homepage = "https://github.com/ROCm/hipfort";
     license = with licenses; [ mit ]; # mitx11
     maintainers = teams.rocm.members;
diff --git a/nixpkgs/pkgs/development/rocm-modules/5/rocm-smi/default.nix b/nixpkgs/pkgs/development/rocm-modules/5/rocm-smi/default.nix
index 91b730f03b37..3598f70b7709 100644
--- a/nixpkgs/pkgs/development/rocm-modules/5/rocm-smi/default.nix
+++ b/nixpkgs/pkgs/development/rocm-modules/5/rocm-smi/default.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "System management interface for AMD GPUs supported by ROCm";
+    mainProgram = "rocm-smi";
     homepage = "https://github.com/ROCm/rocm_smi_lib";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members;
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/clang-ocl/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/clang-ocl/default.nix
new file mode 100644
index 000000000000..7d366e53ae56
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/clang-ocl/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, rocm-device-libs
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "clang-ocl";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "clang-ocl";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-uMSvcVJj+me2E+7FsXZ4l4hTcK6uKEegXpkHGcuist0=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+  ];
+
+  buildInputs = [ rocm-device-libs ];
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "OpenCL compilation with clang compiler";
+    homepage = "https://github.com/ROCm/clang-ocl";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/clr/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/clr/default.nix
new file mode 100644
index 000000000000..05acf86478d3
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/clr/default.nix
@@ -0,0 +1,189 @@
+{ lib
+, stdenv
+, callPackage
+, fetchFromGitHub
+, fetchpatch
+, rocmUpdateScript
+, makeWrapper
+, cmake
+, perl
+, clang
+, hip-common
+, hipcc
+, rocm-device-libs
+, rocm-comgr
+, rocm-runtime
+, roctracer
+, rocminfo
+, rocm-smi
+, numactl
+, libGL
+, libxml2
+, libX11
+, python3Packages
+}:
+
+let
+  wrapperArgs = [
+    "--prefix PATH : $out/bin"
+    "--prefix LD_LIBRARY_PATH : ${rocm-runtime}"
+    "--set HIP_PLATFORM amd"
+    "--set HIP_PATH $out"
+    "--set HIP_CLANG_PATH ${clang}/bin"
+    "--set DEVICE_LIB_PATH ${rocm-device-libs}/amdgcn/bitcode"
+    "--set HSA_PATH ${rocm-runtime}"
+    "--set ROCM_PATH $out"
+  ];
+in stdenv.mkDerivation (finalAttrs: {
+  pname = "clr";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+    "icd"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "clr";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-ZMpA7vCW2CcpGdBLZfPimMHcgjhN1PHuewJiYwZMgGY=";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+    cmake
+    perl
+    python3Packages.python
+    python3Packages.cppheaderparser
+  ];
+
+  buildInputs = [
+    numactl
+    libGL
+    libxml2
+    libX11
+  ];
+
+  propagatedBuildInputs = [
+    rocm-device-libs
+    rocm-comgr
+    rocm-runtime
+    rocminfo
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_POLICY_DEFAULT_CMP0072=NEW" # Prefer newer OpenGL libraries
+    "-DCLR_BUILD_HIP=ON"
+    "-DCLR_BUILD_OCL=ON"
+    "-DHIP_COMMON_DIR=${hip-common}"
+    "-DHIPCC_BIN_DIR=${hipcc}/bin"
+    "-DHIP_PLATFORM=amd"
+    "-DPROF_API_HEADER_PATH=${roctracer.src}/inc/ext"
+    "-DROCM_PATH=${rocminfo}"
+
+    # Temporarily set variables to work around upstream CMakeLists issue
+    # Can be removed once https://github.com/ROCm/rocm-cmake/issues/121 is fixed
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+  ];
+
+  patches = [
+    (fetchpatch {
+      name = "add-missing-operators.patch";
+      url = "https://github.com/ROCm/clr/commit/86bd518981b364c138f9901b28a529899d8654f3.patch";
+      hash = "sha256-lbswri+zKLxif0hPp4aeJDeVfadhWZz4z+m+G2XcCPI=";
+    })
+    (fetchpatch {
+      name = "static-functions.patch";
+      url = "https://github.com/ROCm/clr/commit/77c581a3ebd47b5e2908973b70adea66891159ee.patch";
+      hash = "sha256-auBedbd7rghlKav7A9V6l64J7VmtE9GizIdi5gWj+fs=";
+    })
+  ];
+
+  postPatch = ''
+    patchShebangs hipamd/*.sh
+    patchShebangs hipamd/src
+
+    # We're not on Windows so these are never installed to hipcc...
+    substituteInPlace hipamd/CMakeLists.txt \
+      --replace "install(PROGRAMS \''${HIPCC_BIN_DIR}/hipcc.bat DESTINATION bin)" "" \
+      --replace "install(PROGRAMS \''${HIPCC_BIN_DIR}/hipconfig.bat DESTINATION bin)" ""
+
+    substituteInPlace hipamd/src/hip_embed_pch.sh \
+      --replace "\''$LLVM_DIR/bin/clang" "${clang}/bin/clang"
+  '';
+
+  postInstall = ''
+    patchShebangs $out/bin
+
+    # hipcc.bin and hipconfig.bin is mysteriously never installed
+    cp -a ${hipcc}/bin/{hipcc.bin,hipconfig.bin} $out/bin
+
+    wrapProgram $out/bin/hipcc.bin ${lib.concatStringsSep " " wrapperArgs}
+    wrapProgram $out/bin/hipconfig.bin ${lib.concatStringsSep " " wrapperArgs}
+    wrapProgram $out/bin/hipcc.pl ${lib.concatStringsSep " " wrapperArgs}
+    wrapProgram $out/bin/hipconfig.pl ${lib.concatStringsSep " " wrapperArgs}
+
+    # Just link rocminfo, it's easier
+    ln -s ${rocminfo}/bin/* $out/bin
+
+    # Replace rocm-opencl-icd functionality
+    mkdir -p $icd/etc/OpenCL/vendors
+    echo "$out/lib/libamdocl64.so" > $icd/etc/OpenCL/vendors/amdocl64.icd
+
+    # add version info to output (downstream rocmPackages look for this)
+    mkdir $out/.info
+    echo "${finalAttrs.version}" > $out/.info/version
+  '';
+
+  passthru = {
+    # All known and valid general GPU targets
+    # We cannot use this for each ROCm library, as each defines their own supported targets
+    # See: https://github.com/ROCm/ROCm/blob/77cbac4abab13046ee93d8b5bf410684caf91145/README.md#library-target-matrix
+    gpuTargets = lib.forEach [
+      "803"
+      "900"
+      "906"
+      "908"
+      "90a"
+      "940"
+      "941"
+      "942"
+      "1010"
+      "1012"
+      "1030"
+      "1100"
+      "1101"
+      "1102"
+    ] (target: "gfx${target}");
+
+    updateScript = rocmUpdateScript {
+      name = finalAttrs.pname;
+      owner = finalAttrs.src.owner;
+      repo = finalAttrs.src.repo;
+      page = "tags?per_page=1";
+      filter = ".[0].name | split(\"-\") | .[1]";
+    };
+
+    impureTests = {
+      rocm-smi = callPackage ./test-rocm-smi.nix {
+        inherit rocm-smi;
+        clr = finalAttrs.finalPackage;
+      };
+      opencl-example = callPackage ./test-opencl-example.nix {
+        clr = finalAttrs.finalPackage;
+      };
+    };
+  };
+
+  meta = with lib; {
+    description = "AMD Common Language Runtime for hipamd, opencl, and rocclr";
+    homepage = "https://github.com/ROCm/clr";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/clr/test-opencl-example.nix b/nixpkgs/pkgs/development/rocm-modules/6/clr/test-opencl-example.nix
new file mode 100644
index 000000000000..24fc483847d3
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/clr/test-opencl-example.nix
@@ -0,0 +1,75 @@
+{ lib
+, stdenv
+, makeImpureTest
+, fetchFromGitHub
+, clr
+, cmake
+, pkg-config
+, glew
+, freeglut
+, opencl-headers
+, ocl-icd
+}:
+
+let
+
+  examples = stdenv.mkDerivation {
+    pname = "amd-app-samples";
+    version = "2018-06-10";
+
+    src = fetchFromGitHub {
+      owner = "OpenCL";
+      repo = "AMD_APP_samples";
+      rev = "54da6ca465634e78fc51fc25edf5840467ee2411";
+      hash = "sha256-qARQpUiYsamHbko/I1gPZE9pUGJ+3396Vk2n7ERSftA=";
+    };
+
+    nativeBuildInputs = [ cmake pkg-config ];
+
+    buildInputs = [ glew freeglut opencl-headers ocl-icd ];
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/bin
+      # Example path is bin/x86_64/Release/cl/Reduction/Reduction
+      cp -r bin/*/*/*/*/* $out/bin/
+
+      runHook postInstall
+    '';
+
+    cmakeFlags = [ "-DBUILD_CPP_CL=OFF" ];
+
+    meta = with lib; {
+      description = "Samples from the AMD APP SDK (with OpenCRun support) ";
+      homepage    = "https://github.com/OpenCL/AMD_APP_samples";
+      license     = licenses.bsd2;
+      platforms   = platforms.linux;
+      maintainers = lib.teams.rocm.members;
+    };
+  };
+
+in
+makeImpureTest {
+  name = "opencl-example";
+  testedPackage = "rocmPackages_6.clr";
+
+  sandboxPaths = [ "/sys" "/dev/dri" "/dev/kfd" ];
+
+  nativeBuildInputs = [ examples ];
+
+  OCL_ICD_VENDORS = "${clr.icd}/etc/OpenCL/vendors";
+
+  testScript = ''
+    # Examples load resources from current directory
+    cd ${examples}/bin
+    echo OCL_ICD_VENDORS=$OCL_ICD_VENDORS
+    pwd
+
+    HelloWorld | grep HelloWorld
+  '';
+
+  meta = with lib; {
+    maintainers = teams.rocm.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/clr/test-rocm-smi.nix b/nixpkgs/pkgs/development/rocm-modules/6/clr/test-rocm-smi.nix
new file mode 100644
index 000000000000..6f2d3c788289
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/clr/test-rocm-smi.nix
@@ -0,0 +1,23 @@
+{ lib
+, makeImpureTest
+, clinfo
+, clr
+, rocm-smi
+}:
+
+makeImpureTest {
+  name = "rocm-smi";
+  testedPackage = "rocmPackages_6.clr";
+  nativeBuildInputs = [ clinfo rocm-smi ];
+  OCL_ICD_VENDORS = "${clr.icd}/etc/OpenCL/vendors";
+
+  testScript = ''
+    # Test fails if the number of platforms is 0
+    clinfo | grep -E 'Number of platforms * [1-9]'
+    rocm-smi | grep -A1 GPU
+  '';
+
+  meta = with lib; {
+    maintainers = teams.rocm.members;
+  };
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/composable_kernel/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/composable_kernel/default.nix
new file mode 100644
index 000000000000..ac360482f4af
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/composable_kernel/default.nix
@@ -0,0 +1,94 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, clr
+, openmp
+, clang-tools-extra
+, git
+, gtest
+, buildTests ? false
+, buildExamples ? false
+, gpuTargets ? [ ] # gpuTargets = [ "gfx803" "gfx900" "gfx1030" ... ]
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "composable_kernel";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ] ++ lib.optionals buildExamples [
+    "example"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "composable_kernel";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-NCqMganmNyQfz3X+KQOrfrimnrgd3HbAGK5DeC4+J+o=";
+  };
+
+  nativeBuildInputs = [
+    git
+    cmake
+    rocm-cmake
+    clr
+    clang-tools-extra
+  ];
+
+  buildInputs = [ openmp ];
+
+  cmakeFlags = [
+    "-DCMAKE_C_COMPILER=hipcc"
+    "-DCMAKE_CXX_COMPILER=hipcc"
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+    "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ] ++ lib.optionals buildTests [
+    "-DGOOGLETEST_DIR=${gtest.src}" # Custom linker names
+  ];
+
+  # No flags to build selectively it seems...
+  postPatch = lib.optionalString (!buildTests) ''
+    substituteInPlace CMakeLists.txt \
+      --replace "add_subdirectory(test)" ""
+  '' + lib.optionalString (!buildExamples) ''
+    substituteInPlace CMakeLists.txt \
+      --replace "add_subdirectory(example)" ""
+  '' + ''
+    substituteInPlace CMakeLists.txt \
+      --replace "add_subdirectory(profiler)" ""
+  ''
+  ;
+
+  postInstall = lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    mv $out/bin/test_* $test/bin
+  '' + lib.optionalString buildExamples ''
+    mkdir -p $example/bin
+    mv $out/bin/example_* $example/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  # Times out otherwise
+  requiredSystemFeatures = [ "big-parallel" ];
+
+  meta = with lib; {
+    description = "Performance portable programming model for machine learning tensor operators";
+    homepage = "https://github.com/ROCm/composable_kernel";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/default.nix
new file mode 100644
index 000000000000..e4e745f74b56
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/default.nix
@@ -0,0 +1,524 @@
+{ stdenv
+, callPackage
+, recurseIntoAttrs
+, symlinkJoin
+, fetchFromGitHub
+, cudaPackages
+, python3Packages
+, elfutils
+, boost179
+, opencv
+, ffmpeg_4
+, libjpeg_turbo
+, rapidjson-unstable
+}:
+
+let
+  rocmUpdateScript = callPackage ./update.nix { };
+in rec {
+  ## ROCm ##
+  llvm = recurseIntoAttrs (callPackage ./llvm/default.nix { inherit rocmUpdateScript rocm-device-libs rocm-runtime rocm-thunk clr; });
+
+  rocm-core = callPackage ./rocm-core {
+    inherit rocmUpdateScript;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocm-cmake = callPackage ./rocm-cmake {
+    inherit rocmUpdateScript;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocm-thunk = callPackage ./rocm-thunk {
+    inherit rocmUpdateScript;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocm-smi = python3Packages.callPackage ./rocm-smi {
+    inherit rocmUpdateScript;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  # Eventually will be in the LLVM repo
+  rocm-device-libs = callPackage ./rocm-device-libs {
+    inherit rocmUpdateScript rocm-cmake;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocm-runtime = callPackage ./rocm-runtime {
+    inherit rocmUpdateScript rocm-device-libs rocm-thunk;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  # Eventually will be in the LLVM repo
+  rocm-comgr = callPackage ./rocm-comgr {
+    inherit rocmUpdateScript rocm-cmake rocm-device-libs;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocminfo = callPackage ./rocminfo {
+    inherit rocmUpdateScript rocm-cmake rocm-runtime;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  clang-ocl = callPackage ./clang-ocl {
+    inherit rocmUpdateScript rocm-cmake rocm-device-libs;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  # Unfree
+  hsa-amd-aqlprofile-bin = callPackage ./hsa-amd-aqlprofile-bin {
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  # Broken, too many errors
+  rdc = callPackage ./rdc {
+    inherit rocmUpdateScript rocm-smi rocm-runtime stdenv;
+    # stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocm-docs-core = python3Packages.callPackage ./rocm-docs-core { inherit stdenv; };
+
+  hip-common = callPackage ./hip-common {
+    inherit rocmUpdateScript;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  # Eventually will be in the LLVM repo
+  hipcc = callPackage ./hipcc {
+    inherit rocmUpdateScript;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  # Replaces hip, opencl-runtime, and rocclr
+  clr = callPackage ./clr {
+    inherit rocmUpdateScript hip-common hipcc rocm-device-libs rocm-comgr rocm-runtime roctracer rocminfo rocm-smi;
+    inherit (llvm) clang;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  hipify = callPackage ./hipify {
+    inherit rocmUpdateScript;
+    inherit (llvm) clang;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  # Needs GCC
+  rocprofiler = callPackage ./rocprofiler {
+    inherit rocmUpdateScript clr rocm-core rocm-thunk rocm-device-libs roctracer rocdbgapi rocm-smi hsa-amd-aqlprofile-bin stdenv;
+    inherit (llvm) clang;
+  };
+
+  # Needs GCC
+  roctracer = callPackage ./roctracer {
+    inherit rocmUpdateScript rocm-device-libs rocm-runtime clr stdenv;
+  };
+
+  rocgdb = callPackage ./rocgdb {
+    inherit rocmUpdateScript;
+    elfutils = elfutils.override { enableDebuginfod = true; };
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocdbgapi = callPackage ./rocdbgapi {
+    inherit rocmUpdateScript rocm-cmake rocm-comgr rocm-runtime;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocr-debug-agent = callPackage ./rocr-debug-agent {
+    inherit rocmUpdateScript clr rocdbgapi;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocprim = callPackage ./rocprim {
+    inherit rocmUpdateScript rocm-cmake clr;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocsparse = callPackage ./rocsparse {
+    inherit rocmUpdateScript rocm-cmake rocprim clr;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocthrust = callPackage ./rocthrust {
+    inherit rocmUpdateScript rocm-cmake rocprim clr;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocrand = callPackage ./rocrand {
+    inherit rocmUpdateScript rocm-cmake clr;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  hiprand = rocrand; # rocrand includes hiprand
+
+  rocfft = callPackage ./rocfft {
+    inherit rocmUpdateScript rocm-cmake rocrand rocfft clr;
+    inherit (llvm) openmp;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rccl = callPackage ./rccl {
+    inherit rocmUpdateScript rocm-cmake rocm-smi clr hipify;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  hipcub = callPackage ./hipcub {
+    inherit rocmUpdateScript rocm-cmake rocprim clr;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  hipsparse = callPackage ./hipsparse {
+    inherit rocmUpdateScript rocm-cmake rocsparse clr;
+    inherit (llvm) openmp;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  hipfort = callPackage ./hipfort {
+    inherit rocmUpdateScript rocm-cmake;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  hipfft = callPackage ./hipfft {
+    inherit rocmUpdateScript rocm-cmake rocfft clr;
+    inherit (llvm) openmp;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  tensile = python3Packages.callPackage ./tensile {
+    inherit rocmUpdateScript rocminfo;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocblas = callPackage ./rocblas {
+    inherit rocblas rocmUpdateScript rocm-cmake clr tensile;
+    inherit (llvm) openmp;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocsolver = callPackage ./rocsolver {
+    inherit rocmUpdateScript rocm-cmake rocblas rocsparse clr;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocwmma = callPackage ./rocwmma {
+    inherit rocmUpdateScript rocm-cmake rocm-smi rocblas clr;
+    inherit (llvm) openmp;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocalution = callPackage ./rocalution {
+    inherit rocmUpdateScript rocm-cmake rocprim rocsparse rocrand rocblas clr;
+    inherit (llvm) openmp;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocmlir = callPackage ./rocmlir {
+    inherit rocmUpdateScript rocm-cmake rocminfo clr;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rocmlir-rock = rocmlir.override {
+    buildRockCompiler = true;
+  };
+
+  hipsolver = callPackage ./hipsolver {
+    inherit rocmUpdateScript rocm-cmake rocblas rocsolver clr;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  hipblas = callPackage ./hipblas {
+    inherit rocmUpdateScript rocm-cmake rocblas rocsolver clr;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  # hipBlasLt - Very broken with Tensile at the moment, only supports GFX9
+  # hipTensor - Only supports GFX9
+
+  miopengemm= throw ''
+    'miopen-opencl' has been deprecated.
+    It is still available for some time as part of rocmPackages_5.
+  ''; # Added 2024-3-3;
+
+  composable_kernel = callPackage ./composable_kernel {
+    inherit rocmUpdateScript rocm-cmake clr;
+    inherit (llvm) openmp clang-tools-extra;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  half = callPackage ./half {
+    inherit rocmUpdateScript rocm-cmake;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  miopen = callPackage ./miopen {
+    inherit rocmUpdateScript rocm-cmake rocblas clang-ocl composable_kernel rocm-comgr clr rocm-docs-core half roctracer;
+    inherit (llvm) clang-tools-extra;
+    stdenv = llvm.rocmClangStdenv;
+    rocmlir = rocmlir-rock;
+    boost = boost179.override { enableStatic = true; };
+  };
+
+  miopen-hip = miopen;
+
+  miopen-opencl= throw ''
+    'miopen-opencl' has been deprecated.
+    It is still available for some time as part of rocmPackages_5.
+  ''; # Added 2024-3-3;
+
+  migraphx = callPackage ./migraphx {
+    inherit rocmUpdateScript rocm-cmake rocblas composable_kernel miopen clr half rocm-device-libs;
+    inherit (llvm) openmp clang-tools-extra;
+    stdenv = llvm.rocmClangStdenv;
+    rocmlir = rocmlir-rock;
+  };
+
+  rpp = callPackage ./rpp {
+    inherit rocmUpdateScript rocm-cmake rocm-docs-core clr half;
+    inherit (llvm) openmp;
+    stdenv = llvm.rocmClangStdenv;
+  };
+
+  rpp-hip = rpp.override {
+    useOpenCL = false;
+    useCPU = false;
+  };
+
+  rpp-opencl = rpp.override {
+    useOpenCL = true;
+    useCPU = false;
+  };
+
+  rpp-cpu = rpp.override {
+    useOpenCL = false;
+    useCPU = true;
+  };
+
+  mivisionx = callPackage ./mivisionx {
+    inherit rocmUpdateScript rocm-cmake rocm-device-libs clr rpp rocblas miopen migraphx half rocm-docs-core;
+    inherit (llvm) clang openmp;
+    opencv = opencv.override { enablePython = true; };
+    ffmpeg = ffmpeg_4;
+    rapidjson = rapidjson-unstable;
+    stdenv = llvm.rocmClangStdenv;
+
+    # Unfortunately, rocAL needs a custom libjpeg-turbo until further notice
+    # See: https://github.com/ROCm/MIVisionX/issues/1051
+    libjpeg_turbo = libjpeg_turbo.overrideAttrs {
+      version = "2.0.6.1";
+
+      src = fetchFromGitHub {
+        owner = "rrawther";
+        repo = "libjpeg-turbo";
+        rev = "640d7ee1917fcd3b6a5271aa6cf4576bccc7c5fb";
+        sha256 = "sha256-T52whJ7nZi8jerJaZtYInC2YDN0QM+9tUDqiNr6IsNY=";
+      };
+    };
+  };
+
+  mivisionx-hip = mivisionx.override {
+    rpp = rpp-hip;
+    useOpenCL = false;
+    useCPU = false;
+  };
+
+  mivisionx-opencl = mivisionx.override {
+    rpp = rpp-opencl;
+    miopen = miopen-opencl;
+    useOpenCL = true;
+    useCPU = false;
+  };
+
+  mivisionx-cpu = mivisionx.override {
+    rpp = rpp-cpu;
+    useOpenCL = false;
+    useCPU = true;
+  };
+
+  ## Meta ##
+  # Emulate common ROCm meta layout
+  # These are mainly for users. I strongly suggest NOT using these in nixpkgs derivations
+  # Don't put these into `propagatedBuildInputs` unless you want PATH/PYTHONPATH issues!
+  # See: https://rocm.docs.amd.com/en/docs-5.7.1/_images/image.004.png
+  # See: https://rocm.docs.amd.com/en/docs-5.7.1/deploy/linux/os-native/package_manager_integration.html
+  meta = rec {
+    rocm-developer-tools = symlinkJoin {
+      name = "rocm-developer-tools-meta";
+
+      paths = [
+        hsa-amd-aqlprofile-bin
+        rocm-core
+        rocr-debug-agent
+        roctracer
+        rocdbgapi
+        rocprofiler
+        rocgdb
+        rocm-language-runtime
+      ];
+    };
+
+    rocm-ml-sdk = symlinkJoin {
+      name = "rocm-ml-sdk-meta";
+
+      paths = [
+        rocm-core
+        miopen-hip
+        rocm-hip-sdk
+        rocm-ml-libraries
+      ];
+    };
+
+    rocm-ml-libraries = symlinkJoin {
+      name = "rocm-ml-libraries-meta";
+
+      paths = [
+        llvm.clang
+        llvm.mlir
+        llvm.openmp
+        rocm-core
+        miopen-hip
+        rocm-hip-libraries
+      ];
+    };
+
+    rocm-hip-sdk = symlinkJoin {
+      name = "rocm-hip-sdk-meta";
+
+      paths = [
+        rocprim
+        rocalution
+        hipfft
+        rocm-core
+        hipcub
+        hipblas
+        rocrand
+        rocfft
+        rocsparse
+        rccl
+        rocthrust
+        rocblas
+        hipsparse
+        hipfort
+        rocwmma
+        hipsolver
+        rocsolver
+        rocm-hip-libraries
+        rocm-hip-runtime-devel
+      ];
+    };
+
+    rocm-hip-libraries = symlinkJoin {
+      name = "rocm-hip-libraries-meta";
+
+      paths = [
+        rocblas
+        hipfort
+        rocm-core
+        rocsolver
+        rocalution
+        rocrand
+        hipblas
+        rocfft
+        hipfft
+        rccl
+        rocsparse
+        hipsparse
+        hipsolver
+        rocm-hip-runtime
+      ];
+    };
+
+    rocm-openmp-sdk = symlinkJoin {
+      name = "rocm-openmp-sdk-meta";
+
+      paths = [
+        rocm-core
+        llvm.clang
+        llvm.mlir
+        llvm.openmp # openmp-extras-devel (https://github.com/ROCm/aomp)
+        rocm-language-runtime
+      ];
+    };
+
+    rocm-opencl-sdk = symlinkJoin {
+      name = "rocm-opencl-sdk-meta";
+
+      paths = [
+        rocm-core
+        rocm-runtime
+        clr
+        clr.icd
+        rocm-thunk
+        rocm-opencl-runtime
+      ];
+    };
+
+    rocm-opencl-runtime = symlinkJoin {
+      name = "rocm-opencl-runtime-meta";
+
+      paths = [
+        rocm-core
+        clr
+        clr.icd
+        rocm-language-runtime
+      ];
+    };
+
+    rocm-hip-runtime-devel = symlinkJoin {
+      name = "rocm-hip-runtime-devel-meta";
+
+      paths = [
+        clr
+        rocm-core
+        hipify
+        rocm-cmake
+        llvm.clang
+        llvm.mlir
+        llvm.openmp
+        rocm-thunk
+        rocm-runtime
+        rocm-hip-runtime
+      ];
+    };
+
+    rocm-hip-runtime = symlinkJoin {
+      name = "rocm-hip-runtime-meta";
+
+      paths = [
+        rocm-core
+        rocminfo
+        clr
+        rocm-language-runtime
+      ];
+    };
+
+    rocm-language-runtime = symlinkJoin {
+      name = "rocm-language-runtime-meta";
+
+      paths = [
+        rocm-runtime
+        rocm-core
+        rocm-comgr
+        llvm.openmp # openmp-extras-runtime (https://github.com/ROCm/aomp)
+      ];
+    };
+
+    rocm-all = symlinkJoin {
+      name = "rocm-all-meta";
+
+      paths = [
+        rocm-developer-tools
+        rocm-ml-sdk
+        rocm-ml-libraries
+        rocm-hip-sdk
+        rocm-hip-libraries
+        rocm-openmp-sdk
+        rocm-opencl-sdk
+        rocm-opencl-runtime
+        rocm-hip-runtime-devel
+        rocm-hip-runtime
+        rocm-language-runtime
+      ];
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/half/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/half/default.nix
new file mode 100644
index 000000000000..77f37790a890
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/half/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "half";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "half";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-wvl8ny7pbY9hUGGtJ70R7/4YIsahgI7qcVzUnxmUfZM=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+  ];
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "C++ library for half precision floating point arithmetics";
+    homepage = "https://github.com/ROCm/half";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.unix;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/hip-common/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/hip-common/default.nix
new file mode 100644
index 000000000000..8b0a4fc5add2
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/hip-common/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hip-common";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "HIP";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-51u3By0R4LKoWiklNacFP6HILL845jxpN6FD7rQB+zQ=";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    mv * $out
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "C++ Heterogeneous-Compute Interface for Portability";
+    homepage = "https://github.com/ROCm/HIP";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/hipblas/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/hipblas/default.nix
new file mode 100644
index 000000000000..5989aff90a7d
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/hipblas/default.nix
@@ -0,0 +1,99 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, clr
+, gfortran
+, rocblas
+, rocsolver
+, gtest
+, lapack-reference
+, buildTests ? false
+, buildBenchmarks ? false
+, buildSamples ? false
+}:
+
+# Can also use cuBLAS
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hipblas";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ] ++ lib.optionals buildBenchmarks [
+    "benchmark"
+  ] ++ lib.optionals buildSamples [
+    "sample"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "hipBLAS";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-Fq7o2sMmHlHIv9UKJw+u/h9K/ZhKVJWwosYTdYIsscA=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    clr
+    gfortran
+  ];
+
+  buildInputs = [
+    rocblas
+    rocsolver
+  ] ++ lib.optionals buildTests [
+    gtest
+  ] ++ lib.optionals (buildTests || buildBenchmarks) [
+    lapack-reference
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_C_COMPILER=hipcc"
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals buildTests [
+    "-DBUILD_CLIENTS_TESTS=ON"
+  ] ++ lib.optionals buildBenchmarks [
+    "-DBUILD_CLIENTS_BENCHMARKS=ON"
+  ] ++ lib.optionals buildSamples [
+    "-DBUILD_CLIENTS_SAMPLES=ON"
+  ];
+
+  postInstall = lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    mv $out/bin/hipblas-test $test/bin
+  '' + lib.optionalString buildBenchmarks ''
+    mkdir -p $benchmark/bin
+    mv $out/bin/hipblas-bench $benchmark/bin
+  '' + lib.optionalString buildSamples ''
+    mkdir -p $sample/bin
+    mv $out/bin/example-* $sample/bin
+  '' + lib.optionalString (buildTests || buildBenchmarks || buildSamples) ''
+    rmdir $out/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "ROCm BLAS marshalling library";
+    homepage = "https://github.com/ROCm/hipBLAS";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/hipcc/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/hipcc/default.nix
new file mode 100644
index 000000000000..96bc914e3a67
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/hipcc/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, lsb-release
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hipcc";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "HIPCC";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-/LRQN+RSMBPk2jS/tdp3psUL/B0RJZQhRri7e67KsG4=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  postPatch = ''
+    substituteInPlace src/hipBin_amd.h \
+      --replace "/usr/bin/lsb_release" "${lsb-release}/bin/lsb_release"
+  '';
+
+  postInstall = ''
+    rm -r $out/hip/bin
+    ln -s $out/bin $out/hip/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Compiler driver utility that calls clang or nvcc";
+    homepage = "https://github.com/ROCm/HIPCC";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/hipcub/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/hipcub/default.nix
new file mode 100644
index 000000000000..8f6f97ed5f20
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/hipcub/default.nix
@@ -0,0 +1,90 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, rocprim
+, clr
+, gtest
+, gbenchmark
+, buildTests ? false
+, buildBenchmarks ? false
+, gpuTargets ? [ ]
+}:
+
+# CUB can also be used as a backend instead of rocPRIM.
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hipcub";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ] ++ lib.optionals buildBenchmarks [
+    "benchmark"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "hipCUB";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-8QzVgj0JSb86zEG3sj5AAt9pG3frw+xrjEOTo7xCIrc=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    clr
+  ];
+
+  buildInputs = [
+    rocprim
+  ] ++ lib.optionals buildTests [
+    gtest
+  ] ++ lib.optionals buildBenchmarks [
+    gbenchmark
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    "-DHIP_ROOT_DIR=${clr}"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ] ++ lib.optionals buildTests [
+    "-DBUILD_TEST=ON"
+  ] ++ lib.optionals buildBenchmarks [
+    "-DBUILD_BENCHMARK=ON"
+  ];
+
+  postInstall = lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    mv $out/bin/test_* $test/bin
+  '' + lib.optionalString buildBenchmarks ''
+    mkdir -p $benchmark/bin
+    mv $out/bin/benchmark_* $benchmark/bin
+  '' + lib.optionalString (buildTests || buildBenchmarks) ''
+    rmdir $out/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Thin wrapper library on top of rocPRIM or CUB";
+    homepage = "https://github.com/ROCm/hipCUB";
+    license = with licenses; [ bsd3 ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/hipfft/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/hipfft/default.nix
new file mode 100644
index 000000000000..dca6337e6de8
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/hipfft/default.nix
@@ -0,0 +1,110 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, clr
+, git
+, rocfft
+, gtest
+, boost
+, fftw
+, fftwFloat
+, openmp
+, buildTests ? false
+, buildBenchmarks ? false
+, buildSamples ? false
+, gpuTargets ? [ ]
+}:
+
+# Can also use cuFFT
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hipfft";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ] ++ lib.optionals buildBenchmarks [
+    "benchmark"
+  ] ++ lib.optionals buildSamples [
+    "sample"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "hipFFT";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-DjjNQryJdl7RmaMQRQPWkleweEWMIwH/xXU84GGjoC0=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    clr
+    git
+    cmake
+    rocm-cmake
+  ];
+
+  buildInputs = [
+    rocfft
+  ] ++ lib.optionals (buildTests || buildBenchmarks || buildSamples) [
+    gtest
+    boost
+    fftw
+    fftwFloat
+    openmp
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_C_COMPILER=hipcc"
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    "-DCMAKE_MODULE_PATH=${clr}/lib/cmake/hip"
+    "-DHIP_ROOT_DIR=${clr}"
+    "-DHIP_PATH=${clr}"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ] ++ lib.optionals buildTests [
+    "-DBUILD_CLIENTS_TESTS=ON"
+  ] ++ lib.optionals buildBenchmarks [
+    "-DBUILD_CLIENTS_RIDER=ON"
+  ] ++ lib.optionals buildSamples [
+    "-DBUILD_CLIENTS_SAMPLES=ON"
+  ];
+
+  postInstall = lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    mv $out/bin/hipfft-test $test/bin
+  '' + lib.optionalString buildBenchmarks ''
+    mkdir -p $benchmark/bin
+    mv $out/bin/hipfft-rider $benchmark/bin
+  '' + lib.optionalString buildSamples ''
+    mkdir -p $sample/bin
+    mv clients/staging/hipfft_* $sample/bin
+    patchelf $sample/bin/hipfft_* --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE"
+  '' + lib.optionalString (buildTests || buildBenchmarks) ''
+    rmdir $out/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "FFT marshalling library";
+    homepage = "https://github.com/ROCm/hipFFT";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/hipfort/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/hipfort/default.nix
new file mode 100644
index 000000000000..73f583f1fe1d
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/hipfort/default.nix
@@ -0,0 +1,66 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, gfortran
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hipfort";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "hipfort";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-3PIqSDyDlY0oVSEx20EPlKGYNkc9xPZtIG3Sbw69esE=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    gfortran
+  ];
+
+  cmakeFlags = [
+    "-DHIPFORT_COMPILER=${gfortran}/bin/gfortran"
+    "-DHIPFORT_AR=${gfortran.cc}/bin/gcc-ar"
+    "-DHIPFORT_RANLIB=${gfortran.cc}/bin/gcc-ranlib"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ];
+
+  postPatch = ''
+    patchShebangs bin
+
+    substituteInPlace bin/hipfc bin/mymcpu \
+      --replace "/bin/cat" "cat"
+
+    substituteInPlace bin/CMakeLists.txt \
+      --replace "/bin/mkdir" "mkdir" \
+      --replace "/bin/cp" "cp" \
+      --replace "/bin/sed" "sed" \
+      --replace "/bin/chmod" "chmod" \
+      --replace "/bin/ln" "ln"
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Fortran interfaces for ROCm libraries";
+    homepage = "https://github.com/ROCm/hipfort";
+    license = with licenses; [ mit ]; # mitx11
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/hipify/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/hipify/default.nix
new file mode 100644
index 000000000000..29109a701856
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/hipify/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, clang
+, libxml2
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hipify";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "HIPIFY";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-nNyWrPPhUwT7FyASzc3kf5NCTzeqvHybVOc+6hBzkA4=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libxml2 ];
+
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace "\''${LLVM_TOOLS_BINARY_DIR}/clang" "${clang}/bin/clang"
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  postInstall = ''
+    patchShebangs $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Convert CUDA to Portable C++ Code";
+    homepage = "https://github.com/ROCm/HIPIFY";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/hipsolver/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/hipsolver/default.nix
new file mode 100644
index 000000000000..43971dc23ebf
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/hipsolver/default.nix
@@ -0,0 +1,100 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, clr
+, gfortran
+, rocblas
+, rocsolver
+, gtest
+, lapack-reference
+, buildTests ? false
+, buildBenchmarks ? false
+, buildSamples ? false
+}:
+
+# Can also use cuSOLVER
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hipsolver";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ] ++ lib.optionals buildBenchmarks [
+    "benchmark"
+  ] ++ lib.optionals buildSamples [
+    "sample"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "hipSOLVER";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-iMfaOv4TdTkmaRHCZOuqUfjO081J6on71+s8nIwwV00=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    clr
+    gfortran
+  ];
+
+  buildInputs = [
+    rocblas
+    rocsolver
+  ] ++ lib.optionals buildTests [
+    gtest
+  ] ++ lib.optionals (buildTests || buildBenchmarks) [
+    lapack-reference
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_C_COMPILER=hipcc"
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals buildTests [
+    "-DBUILD_CLIENTS_TESTS=ON"
+  ] ++ lib.optionals buildBenchmarks [
+    "-DBUILD_CLIENTS_BENCHMARKS=ON"
+  ] ++ lib.optionals buildSamples [
+    "-DBUILD_CLIENTS_SAMPLES=ON"
+  ];
+
+  postInstall = lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    mv $out/bin/hipsolver-test $test/bin
+  '' + lib.optionalString buildBenchmarks ''
+    mkdir -p $benchmark/bin
+    mv $out/bin/hipsolver-bench $benchmark/bin
+  '' + lib.optionalString buildSamples ''
+    mkdir -p $sample/bin
+    mv clients/staging/example-* $sample/bin
+    patchelf $sample/bin/example-* --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE"
+  '' + lib.optionalString (buildTests || buildBenchmarks) ''
+    rmdir $out/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "ROCm SOLVER marshalling library";
+    homepage = "https://github.com/ROCm/hipSOLVER";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/hipsparse/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/hipsparse/default.nix
new file mode 100644
index 000000000000..ba5854e01f39
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/hipsparse/default.nix
@@ -0,0 +1,136 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, rocsparse
+, clr
+, gfortran
+, git
+, gtest
+, openmp
+, buildTests ? false
+, buildSamples ? false
+, gpuTargets ? [ ]
+}:
+
+# This can also use cuSPARSE as a backend instead of rocSPARSE
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hipsparse";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ] ++ lib.optionals buildSamples [
+    "sample"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "hipSPARSE";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-fi5b0IF++OiezpM3JuUkhwpmW2apeFH4r5g6CcFseNY=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    clr
+    gfortran
+  ];
+
+  buildInputs = [
+    rocsparse
+    git
+  ] ++ lib.optionals buildTests [
+    gtest
+  ] ++ lib.optionals (buildTests || buildSamples) [
+    openmp
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_C_COMPILER=hipcc"
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    "-DBUILD_CLIENTS_SAMPLES=${if buildSamples then "ON" else "OFF"}"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ] ++ lib.optionals buildTests [
+    "-DBUILD_CLIENTS_TESTS=ON"
+  ];
+
+  # We have to manually generate the matrices
+  # CMAKE_MATRICES_DIR seems to be reset in clients/tests/CMakeLists.txt
+  postPatch = lib.optionalString buildTests ''
+    mkdir -p matrices
+
+    ln -s ${rocsparse.passthru.matrices.matrix-01}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-02}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-03}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-04}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-05}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-06}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-07}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-08}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-09}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-10}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-11}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-12}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-13}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-14}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-15}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-16}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-17}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-18}/*.mtx matrices
+    ln -s ${rocsparse.passthru.matrices.matrix-19}/*.mtx matrices
+
+    # Not used by the original cmake, causes an error
+    rm matrices/*_b.mtx
+
+    echo "deps/convert.cpp -> deps/mtx2csr"
+    hipcc deps/convert.cpp -O3 -o deps/mtx2csr
+
+    for mat in $(ls -1 matrices | cut -d "." -f 1); do
+      echo "mtx2csr: $mat.mtx -> $mat.bin"
+      deps/mtx2csr matrices/$mat.mtx matrices/$mat.bin
+      unlink matrices/$mat.mtx
+    done
+
+    substituteInPlace clients/tests/CMakeLists.txt \
+      --replace "\''${PROJECT_BINARY_DIR}/matrices" "/build/source/matrices"
+  '';
+
+  postInstall = lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    mv $out/bin/hipsparse-test $test/bin
+    mv /build/source/matrices $test
+    rmdir $out/bin
+  '' + lib.optionalString buildSamples ''
+    mkdir -p $sample/bin
+    mv clients/staging/example_* $sample/bin
+    patchelf --set-rpath $out/lib:${lib.makeLibraryPath (
+      finalAttrs.buildInputs ++ [ clr gfortran.cc ])} $sample/bin/example_*
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "ROCm SPARSE marshalling library";
+    homepage = "https://github.com/ROCm/hipSPARSE";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/default.nix
new file mode 100644
index 000000000000..b88485b5fa37
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchurl
+, callPackage
+, dpkg
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hsa-amd-aqlprofile-bin";
+  version = "6.0.2";
+
+  src = let
+    version = finalAttrs.version;
+    dotless = builtins.replaceStrings ["."] ["0"] version;
+    incremental = "115";
+    osRelease = "22.04";
+  in fetchurl {
+    url = "https://repo.radeon.com/rocm/apt/${version}/pool/main/h/hsa-amd-aqlprofile/hsa-amd-aqlprofile_1.0.0.${dotless}.${dotless}-${incremental}~${osRelease}_amd64.deb";
+    hash = "sha256-0XeKUKaof5pSMS/UgLwumBDBYgyH/pCex9jViUKENXY=";
+  };
+
+  nativeBuildInputs = [ dpkg ];
+  dontPatch = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -a opt/rocm-${finalAttrs.version}/* $out
+    chmod +x $out/lib/libhsa-amd-aqlprofile64.so.1.*
+    chmod +x $out/lib/hsa-amd-aqlprofile/librocprofv2_att.so
+
+    runHook postInstall
+  '';
+
+  passthru.updateScript = (callPackage ./update.nix { }) { inherit (finalAttrs) version; };
+
+  meta = with lib; {
+    description = "AQLPROFILE library for AMD HSA runtime API extension support";
+    homepage = "https://rocm.docs.amd.com/en/latest/";
+    license = with licenses; [ unfree ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/update.nix b/nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/update.nix
new file mode 100644
index 000000000000..7fdcfad85924
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/hsa-amd-aqlprofile-bin/update.nix
@@ -0,0 +1,57 @@
+{ lib
+, writeScript
+}:
+
+{ version }:
+
+let
+  prefix = "hsa-amd-aqlprofile";
+  extVersion = lib.strings.concatStrings (lib.strings.intersperse "0" (lib.versions.splitVersion version));
+  major = lib.versions.major version;
+  minor = lib.versions.minor version;
+  patch = lib.versions.patch version;
+
+  updateScript = writeScript "update.sh" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p curl common-updater-scripts
+    apt="https://repo.radeon.com/rocm/apt"
+    pool="pool/main/h/${prefix}/"
+    url="$apt/latest/$pool"
+    res="$(curl -sL "$url")"
+    deb="${prefix}$(echo "$res" | grep -o -P "(?<=href=\"${prefix}).*(?=\">)" | tail -1)"
+    patch="${patch}"
+
+    # Try up to 10 patch versions
+    for i in {1..10}; do
+      ((patch++))
+      extVersion="$(echo "$deb" | grep -o -P "(?<=\.....).*(?=\..*-)")"
+
+      if (( ''${#extVersion} == 6 )) && (( $extVersion <= ${extVersion} )); then
+        url="https://repo.radeon.com/rocm/apt/${major}.${minor}.$patch/pool/main/h/${prefix}/"
+        res="$(curl -sL "$url")"
+        deb="${prefix}$(echo "$res" | grep -o -P "(?<=href=\"${prefix}).*(?=\">)" | tail -1)"
+      else
+        break
+      fi
+    done
+
+    extVersion="$(echo $deb | grep -o -P "(?<=\.....).*(?=\..*-)")"
+    version="$(echo $extVersion | sed "s/0/./1" | sed "s/0/./1")"
+    IFS='.' read -a version_arr <<< "$version"
+
+    if (( ''${version_arr[0]} > 6 )); then
+      echo "'rocmPackages_6.${prefix}-bin' is already at it's maximum allowed version.''\nAny further upgrades should go into 'rocmPackages_X.${prefix}-bin'." 1>&2
+      exit 1
+    fi
+
+    if (( ''${#extVersion} == 6 )); then
+      repoVersion="$version"
+
+      if (( ''${version:4:1} == 0 )); then
+        repoVersion=''${version:0:3}
+      fi
+
+      update-source-version rocmPackages_6.${prefix}-bin "$version" "" "$apt/$repoVersion/$pool$deb" --ignore-same-hash
+    fi
+  '';
+in [ updateScript ]
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/base.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/base.nix
new file mode 100644
index 000000000000..95f57b052045
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/base.nix
@@ -0,0 +1,175 @@
+{ lib
+, stdenv
+, gcc12Stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, pkg-config
+, cmake
+, ninja
+, git
+, doxygen
+, sphinx
+, lit
+, libxml2
+, libxcrypt
+, libedit
+, libffi
+, mpfr
+, zlib
+, ncurses
+, python3Packages
+, buildDocs ? true
+, buildMan ? true
+, buildTests ? true
+, targetName ? "llvm"
+, targetDir ? "llvm"
+, targetProjects ? [ ]
+, targetRuntimes ? [ ]
+, llvmTargetsToBuild ? [ "NATIVE" ] # "NATIVE" resolves into x86 or aarch64 depending on stdenv
+, extraPatches ? [ ]
+, extraNativeBuildInputs ? [ ]
+, extraBuildInputs ? [ ]
+, extraCMakeFlags ? [ ]
+, extraPostPatch ? ""
+, checkTargets ? [(
+  lib.optionalString buildTests (
+    if targetDir == "runtimes"
+    then "check-runtimes"
+    else "check-all"
+  )
+)]
+, extraPostInstall ? ""
+, hardeningDisable ? [ ]
+, requiredSystemFeatures ? [ ]
+, extraLicenses ? [ ]
+, isBroken ? false
+}:
+
+let stdenv' = stdenv; in
+let stdenv =
+      if stdenv'.cc.cc.isGNU or false && lib.versionAtLeast stdenv'.cc.cc.version "13.0"
+      then gcc12Stdenv
+      else stdenv';
+in
+
+let
+  llvmNativeTarget =
+    if stdenv.isx86_64 then "X86"
+    else if stdenv.isAarch64 then "AArch64"
+    else throw "Unsupported ROCm LLVM platform";
+  inferNativeTarget = t: if t == "NATIVE" then llvmNativeTarget else t;
+  llvmTargetsToBuild' = [ "AMDGPU" ] ++ builtins.map inferNativeTarget llvmTargetsToBuild;
+in stdenv.mkDerivation (finalAttrs: {
+  pname = "rocm-llvm-${targetName}";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildDocs [
+    "doc"
+  ] ++ lib.optionals buildMan [
+    "man"
+    "info" # Avoid `attribute 'info' missing` when using with wrapCC
+  ];
+
+  patches = extraPatches;
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "llvm-project";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-uGxalrwMNCOSqSFVrYUBi3ijkMEFFTrzFImmvZKQf6I=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    ninja
+    git
+    python3Packages.python
+  ] ++ lib.optionals (buildDocs || buildMan) [
+    doxygen
+    sphinx
+    python3Packages.recommonmark
+  ] ++ lib.optionals (buildTests && !finalAttrs.passthru.isLLVM) [
+    lit
+  ] ++ extraNativeBuildInputs;
+
+  buildInputs = [
+    libxml2
+    libxcrypt
+    libedit
+    libffi
+    mpfr
+  ] ++ extraBuildInputs;
+
+  propagatedBuildInputs = lib.optionals finalAttrs.passthru.isLLVM [
+    zlib
+    ncurses
+  ];
+
+  sourceRoot = "${finalAttrs.src.name}/${targetDir}";
+
+  cmakeFlags = [
+    "-DLLVM_TARGETS_TO_BUILD=${builtins.concatStringsSep ";" llvmTargetsToBuild'}"
+  ] ++ lib.optionals (finalAttrs.passthru.isLLVM && targetProjects != [ ]) [
+    "-DLLVM_ENABLE_PROJECTS=${lib.concatStringsSep ";" targetProjects}"
+  ] ++ lib.optionals ((finalAttrs.passthru.isLLVM || targetDir == "runtimes") && targetRuntimes != [ ]) [
+    "-DLLVM_ENABLE_RUNTIMES=${lib.concatStringsSep ";" targetRuntimes}"
+  ] ++ lib.optionals finalAttrs.passthru.isLLVM [
+    "-DLLVM_INSTALL_UTILS=ON"
+    "-DLLVM_INSTALL_GTEST=ON"
+  ] ++ lib.optionals (buildDocs || buildMan) [
+    "-DLLVM_INCLUDE_DOCS=ON"
+    "-DLLVM_BUILD_DOCS=ON"
+    # "-DLLVM_ENABLE_DOXYGEN=ON" Way too slow, only uses one core
+    "-DLLVM_ENABLE_SPHINX=ON"
+    "-DSPHINX_OUTPUT_HTML=ON"
+    "-DSPHINX_OUTPUT_MAN=ON"
+    "-DSPHINX_WARNINGS_AS_ERRORS=OFF"
+  ] ++ lib.optionals buildTests [
+    "-DLLVM_INCLUDE_TESTS=ON"
+    "-DLLVM_BUILD_TESTS=ON"
+    "-DLLVM_EXTERNAL_LIT=${lit}/bin/.lit-wrapped"
+  ] ++ extraCMakeFlags;
+
+  postPatch = lib.optionalString finalAttrs.passthru.isLLVM ''
+    patchShebangs lib/OffloadArch/make_generated_offload_arch_h.sh
+  '' + lib.optionalString (buildTests && finalAttrs.passthru.isLLVM) ''
+    # FileSystem permissions tests fail with various special bits
+    rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test
+    rm unittests/Support/Path.cpp
+
+    substituteInPlace unittests/Support/CMakeLists.txt \
+      --replace "Path.cpp" ""
+  '' + extraPostPatch;
+
+  doCheck = buildTests;
+  checkTarget = lib.concatStringsSep " " checkTargets;
+
+  postInstall = lib.optionalString buildMan ''
+    mkdir -p $info
+  '' + extraPostInstall;
+
+  passthru = {
+    isLLVM = targetDir == "llvm";
+    isClang = targetDir == "clang" || builtins.elem "clang" targetProjects;
+
+    updateScript = rocmUpdateScript {
+      name = finalAttrs.pname;
+      owner = finalAttrs.src.owner;
+      repo = finalAttrs.src.repo;
+    };
+  };
+
+  inherit hardeningDisable requiredSystemFeatures;
+
+  meta = with lib; {
+    description = "ROCm fork of the LLVM compiler infrastructure";
+    homepage = "https://github.com/ROCm/llvm-project";
+    license = with licenses; [ ncsa ] ++ extraLicenses;
+    maintainers = with maintainers; [ acowley lovesegfault ] ++ teams.rocm.members;
+    platforms = platforms.linux;
+    broken = isBroken || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/default.nix
new file mode 100644
index 000000000000..9c8919165a51
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/default.nix
@@ -0,0 +1,58 @@
+{ # stdenv FIXME: Try changing back to this with a new ROCm release https://github.com/NixOS/nixpkgs/issues/271943
+  gcc12Stdenv
+, callPackage
+, rocmUpdateScript
+, wrapBintoolsWith
+, overrideCC
+, rocm-device-libs
+, rocm-runtime
+, rocm-thunk
+, clr
+}:
+
+let
+  ## Stage 1 ##
+  # Projects
+  llvm = callPackage ./stage-1/llvm.nix { inherit rocmUpdateScript; stdenv = gcc12Stdenv; };
+  clang-unwrapped = callPackage ./stage-1/clang-unwrapped.nix { inherit rocmUpdateScript llvm; stdenv = gcc12Stdenv; };
+  lld = callPackage ./stage-1/lld.nix { inherit rocmUpdateScript llvm; stdenv = gcc12Stdenv; };
+
+  # Runtimes
+  runtimes = callPackage ./stage-1/runtimes.nix { inherit rocmUpdateScript llvm; stdenv = gcc12Stdenv; };
+
+  ## Stage 2 ##
+  # Helpers
+  bintools-unwrapped = callPackage ./stage-2/bintools-unwrapped.nix { inherit llvm lld; };
+  bintools = wrapBintoolsWith { bintools = bintools-unwrapped; };
+  rStdenv = callPackage ./stage-2/rstdenv.nix { inherit llvm clang-unwrapped lld runtimes bintools; stdenv = gcc12Stdenv; };
+in rec {
+  inherit
+  llvm
+  clang-unwrapped
+  lld
+  bintools;
+
+  # Runtimes
+  libc = callPackage ./stage-2/libc.nix { inherit rocmUpdateScript; stdenv = rStdenv; };
+  libunwind = callPackage ./stage-2/libunwind.nix { inherit rocmUpdateScript; stdenv = rStdenv; };
+  libcxxabi = callPackage ./stage-2/libcxxabi.nix { inherit rocmUpdateScript; stdenv = rStdenv; };
+  libcxx = callPackage ./stage-2/libcxx.nix { inherit rocmUpdateScript; stdenv = rStdenv; };
+  compiler-rt = callPackage ./stage-2/compiler-rt.nix { inherit rocmUpdateScript llvm; stdenv = rStdenv; };
+
+  ## Stage 3 ##
+  # Helpers
+  clang = callPackage ./stage-3/clang.nix { inherit llvm lld clang-unwrapped bintools libc libunwind libcxxabi libcxx compiler-rt; stdenv = gcc12Stdenv; };
+  rocmClangStdenv = overrideCC gcc12Stdenv clang;
+
+  # Projects
+  clang-tools-extra = callPackage ./stage-3/clang-tools-extra.nix { inherit rocmUpdateScript llvm clang-unwrapped; stdenv = rocmClangStdenv; };
+  libclc = callPackage ./stage-3/libclc.nix { inherit rocmUpdateScript llvm clang; stdenv = rocmClangStdenv; };
+  lldb = callPackage ./stage-3/lldb.nix { inherit rocmUpdateScript clang; stdenv = rocmClangStdenv; };
+  mlir = callPackage ./stage-3/mlir.nix { inherit rocmUpdateScript clr; stdenv = rocmClangStdenv; };
+  polly = callPackage ./stage-3/polly.nix { inherit rocmUpdateScript; stdenv = rocmClangStdenv; };
+  flang = callPackage ./stage-3/flang.nix { inherit rocmUpdateScript clang-unwrapped mlir; stdenv = rocmClangStdenv; };
+  openmp = callPackage ./stage-3/openmp.nix { inherit rocmUpdateScript llvm clang-unwrapped clang rocm-device-libs rocm-runtime rocm-thunk; stdenv = rocmClangStdenv; };
+
+  # Runtimes
+  pstl = callPackage ./stage-3/pstl.nix { inherit rocmUpdateScript; stdenv = rocmClangStdenv; };
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/clang-unwrapped.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/clang-unwrapped.nix
new file mode 100644
index 000000000000..5a61732ffd2d
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/clang-unwrapped.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, callPackage
+, rocmUpdateScript
+, llvm
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  targetName = "clang-unwrapped";
+  targetDir = "clang";
+  extraBuildInputs = [ llvm ];
+
+  extraCMakeFlags = [
+    "-DCLANG_INCLUDE_DOCS=ON"
+    "-DCLANG_INCLUDE_TESTS=ON"
+  ];
+
+  extraPostPatch = ''
+    # Looks like they forgot to add finding libedit to the standalone build
+    ln -s ../cmake/Modules/FindLibEdit.cmake cmake/modules
+
+    substituteInPlace CMakeLists.txt \
+      --replace "include(CheckIncludeFile)" "include(CheckIncludeFile)''\nfind_package(LibEdit)"
+
+    # `No such file or directory: '/build/source/clang/tools/scan-build/bin/scan-build'`
+    rm test/Analysis/scan-build/*.test
+    rm test/Analysis/scan-build/rebuild_index/rebuild_index.test
+
+    # `does not depend on a module exporting 'baz.h'`
+    rm test/Modules/header-attribs.cpp
+
+    # We do not have HIP or the ROCm stack available yet
+    rm test/Driver/hip-options.hip
+
+    # ???? `ld: cannot find crti.o: No such file or directory` linker issue?
+    rm test/Interpreter/dynamic-library.cpp
+
+    # `fatal error: 'stdio.h' file not found`
+    rm test/OpenMP/amdgcn_emit_llvm.c
+  '';
+
+  extraPostInstall = ''
+    mv bin/clang-tblgen $out/bin
+  '';
+
+  requiredSystemFeatures = [ "big-parallel" ];
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/lld.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/lld.nix
new file mode 100644
index 000000000000..5ca8bca25a33
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/lld.nix
@@ -0,0 +1,14 @@
+{ stdenv
+, callPackage
+, rocmUpdateScript
+, llvm
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  buildMan = false; # No man pages to build
+  targetName = "lld";
+  targetDir = targetName;
+  extraBuildInputs = [ llvm ];
+  checkTargets = [ "check-${targetName}" ];
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/llvm.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/llvm.nix
new file mode 100644
index 000000000000..f601e96f0a35
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/llvm.nix
@@ -0,0 +1,10 @@
+{ stdenv
+, callPackage
+, rocmUpdateScript
+}:
+
+callPackage ../base.nix {
+  inherit stdenv rocmUpdateScript;
+  requiredSystemFeatures = [ "big-parallel" ];
+  isBroken = stdenv.isAarch64; # https://github.com/ROCm/ROCm/issues/1831#issuecomment-1278205344
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/runtimes.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/runtimes.nix
new file mode 100644
index 000000000000..0364a02e6e59
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-1/runtimes.nix
@@ -0,0 +1,31 @@
+{ lib
+, stdenv
+, callPackage
+, rocmUpdateScript
+, llvm
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  buildDocs = false;
+  buildMan = false;
+  buildTests = false;
+  targetName = "runtimes";
+  targetDir = targetName;
+
+  targetRuntimes = [
+    "libunwind"
+    "libcxxabi"
+    "libcxx"
+    "compiler-rt"
+  ];
+
+  extraBuildInputs = [ llvm ];
+
+  extraCMakeFlags = [
+    "-DLIBCXX_INCLUDE_BENCHMARKS=OFF"
+    "-DLIBCXX_CXX_ABI=libcxxabi"
+  ];
+
+  extraLicenses = [ lib.licenses.mit ];
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/1000-libcxx-failing-tests.list b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/1000-libcxx-failing-tests.list
new file mode 100644
index 000000000000..e005d6c928c2
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/1000-libcxx-failing-tests.list
@@ -0,0 +1,171 @@
+../libcxx/test/libcxx/containers/gnu_cxx/hash_map.pass.cpp
+../libcxx/test/libcxx/containers/gnu_cxx/hash_set.pass.cpp
+../libcxx/test/libcxx/depr/depr.default.allocator/allocator.members/allocate.cxx2a.pass.cpp
+../libcxx/test/libcxx/depr/depr.default.allocator/allocator.members/construct.cxx2a.pass.cpp
+../libcxx/test/libcxx/input.output/filesystems/class.directory_entry/directory_entry.mods/last_write_time.pass.cpp
+../libcxx/test/libcxx/input.output/filesystems/class.path/path.member/path.native.obs/string_alloc.pass.cpp
+../libcxx/test/libcxx/language.support/support.dynamic/libcpp_deallocate.sh.cpp
+../libcxx/test/libcxx/localization/locales/locale/locale.types/locale.facet/no_allocation.pass.cpp
+../libcxx/test/libcxx/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_underaligned_buffer.pass.cpp
+../libcxx/test/libcxx/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_in_geometric_progression.pass.cpp
+../libcxx/test/std/containers/associative/map/map.access/index_key.pass.cpp
+../libcxx/test/std/containers/associative/map/map.access/index_rv_key.pass.cpp
+../libcxx/test/std/containers/associative/map/map.modifiers/insert_and_emplace_allocator_requirements.pass.cpp
+../libcxx/test/std/containers/associative/multimap/multimap.modifiers/insert_allocator_requirements.pass.cpp
+../libcxx/test/std/containers/associative/multiset/insert_emplace_allocator_requirements.pass.cpp
+../libcxx/test/std/containers/associative/set/insert_and_emplace_allocator_requirements.pass.cpp
+../libcxx/test/std/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp
+../libcxx/test/std/containers/sequences/list/list.modifiers/insert_iter_size_value.pass.cpp
+../libcxx/test/std/containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp
+../libcxx/test/std/containers/sequences/vector.bool/ctor_exceptions.pass.cpp
+../libcxx/test/std/containers/sequences/vector/vector.cons/exceptions.pass.cpp
+../libcxx/test/std/containers/unord/unord.map/unord.map.elem/index.pass.cpp
+../libcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_and_emplace_allocator_requirements.pass.cpp
+../libcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_allocator_requirements.pass.cpp
+../libcxx/test/std/containers/unord/unord.multiset/insert_emplace_allocator_requirements.pass.cpp
+../libcxx/test/std/containers/unord/unord.set/insert_and_emplace_allocator_requirements.pass.cpp
+../libcxx/test/std/experimental/memory/memory.resource.global/new_delete_resource.pass.cpp
+../libcxx/test/std/experimental/memory/memory.resource.global/null_memory_resource.pass.cpp
+../libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/pbackfail.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy_assign.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move_assign.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/path.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/assign.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/refresh.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/replace_filename.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_size.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/hard_link_count.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/last_write_time.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/status.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/ctor.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/increment.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.append.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.assign/move.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.assign/source.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.concat.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.construct/move.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.decompose/path.decompose.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_normal.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_relative_and_proximate.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/named_overloads.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.modifiers/clear.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.modifiers/make_preferred.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.modifiers/remove_filename.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_extension.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_filename.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.modifiers/swap.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.member/path.native.obs/named_overloads.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.nonmember/path.factory.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp
+../libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.canonical/canonical.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file_large.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy/copy.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory_symlink/create_directory_symlink.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_symlink/create_symlink.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.current_path/current_path.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.exists/exists.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.file_size/file_size.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_other/is_other.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.permissions/permissions.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.proximate/proximate.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.relative/relative.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove_all/toctou.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove/remove.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.resize_file/resize_file.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.space/space.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp
+../libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp
+../libcxx/test/std/localization/locale.categories/category.ctype/facet.ctype.special/facet.ctype.char.dtor/dtor.pass.cpp
+../libcxx/test/std/localization/locale.stdcvt/codecvt_utf16.pass.cpp
+../libcxx/test/std/localization/locale.stdcvt/codecvt_utf8.pass.cpp
+../libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/ctor.pass.cpp
+../libcxx/test/std/localization/locales/locale/locale.members/combine.pass.cpp
+../libcxx/test/std/strings/basic.string/string.cons/substr_rvalue.pass.cpp
+../libcxx/test/std/utilities/any/any.class/any.assign/copy.pass.cpp
+../libcxx/test/std/utilities/any/any.class/any.assign/value.pass.cpp
+../libcxx/test/std/utilities/any/any.class/any.cons/copy.pass.cpp
+../libcxx/test/std/utilities/any/any.class/any.cons/default.pass.cpp
+../libcxx/test/std/utilities/any/any.class/any.cons/in_place_type.pass.cpp
+../libcxx/test/std/utilities/any/any.class/any.cons/move.pass.cpp
+../libcxx/test/std/utilities/any/any.class/any.cons/value.pass.cpp
+../libcxx/test/std/utilities/any/any.class/any.modifiers/emplace.pass.cpp
+../libcxx/test/std/utilities/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp
+../libcxx/test/std/utilities/any/any.nonmembers/make_any.pass.cpp
+../libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.alg/swap.pass.cpp
+../libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp
+../libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp
+../libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_assign.pass.cpp
+../libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F.pass.cpp
+../libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/nullptr_t_assign.pass.cpp
+../libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.mod/swap.pass.cpp
+../libcxx/test/std/utilities/memory/default.allocator/allocator.members/allocate_at_least.pass.cpp
+../libcxx/test/std/utilities/memory/default.allocator/allocator.members/allocate.pass.cpp
+../libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.enab/enable_shared_from_this.pass.cpp
+../libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_throw.pass.cpp
+../libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_throw.pass.cpp
+../libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_throw.pass.cpp
+../libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp
+../libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.global/new_delete_resource.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.global/null_memory_resource.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.ctor/without_buffer.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_deallocate.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_exception_safety.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_initial_buffer.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_from_zero_sized_buffer.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_in_geometric_progression.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_overaligned_request.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_with_initial_size.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.ctor/ctor_does_not_allocate.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/equality.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate_overaligned_request.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate_reuse_blocks.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/sync_allocate.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate_overaligned_request.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate_reuse_blocks.pass.cpp
+../libcxx/test/std/utilities/utility/mem.res/mem.res.pool/mem.res.pool.mem/unsync_allocate.pass.cpp
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/bintools-unwrapped.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/bintools-unwrapped.nix
new file mode 100644
index 000000000000..ef40dd4d3824
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/bintools-unwrapped.nix
@@ -0,0 +1,28 @@
+{ runCommand
+, llvm
+, lld
+}:
+
+runCommand "rocm-llvm-binutils-${llvm.version}" { preferLocalBuild = true; } ''
+  mkdir -p $out/bin
+
+  for prog in ${lld}/bin/*; do
+    ln -s $prog $out/bin/$(basename $prog)
+  done
+
+  for prog in ${llvm}/bin/*; do
+    ln -sf $prog $out/bin/$(basename $prog)
+  done
+
+  ln -s ${llvm}/bin/llvm-ar $out/bin/ar
+  ln -s ${llvm}/bin/llvm-as $out/bin/as
+  ln -s ${llvm}/bin/llvm-dwp $out/bin/dwp
+  ln -s ${llvm}/bin/llvm-nm $out/bin/nm
+  ln -s ${llvm}/bin/llvm-objcopy $out/bin/objcopy
+  ln -s ${llvm}/bin/llvm-objdump $out/bin/objdump
+  ln -s ${llvm}/bin/llvm-ranlib $out/bin/ranlib
+  ln -s ${llvm}/bin/llvm-readelf $out/bin/readelf
+  ln -s ${llvm}/bin/llvm-size $out/bin/size
+  ln -s ${llvm}/bin/llvm-strip $out/bin/strip
+  ln -s ${lld}/bin/lld $out/bin/ld
+''
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/compiler-rt.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/compiler-rt.nix
new file mode 100644
index 000000000000..3b8e41705e1a
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/compiler-rt.nix
@@ -0,0 +1,63 @@
+{ lib
+, stdenv
+, callPackage
+, rocmUpdateScript
+, llvm
+, glibc
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  buildDocs = false; # No documentation to build
+  buildMan = false; # No man pages to build
+  targetName = "compiler-rt";
+  targetDir = "runtimes";
+
+  targetRuntimes = [
+    "libunwind"
+    "libcxxabi"
+    "libcxx"
+    targetName
+  ];
+
+  extraCMakeFlags = [
+    "-DCOMPILER_RT_INCLUDE_TESTS=ON"
+    "-DCOMPILER_RT_USE_LLVM_UNWINDER=ON"
+    "-DCOMPILER_RT_CXX_LIBRARY=libcxx"
+    "-DCOMPILER_RT_CAN_EXECUTE_TESTS=OFF" # We can't run most of these
+
+    # Workaround having to build combined
+    "-DLIBUNWIND_INCLUDE_DOCS=OFF"
+    "-DLIBUNWIND_INCLUDE_TESTS=OFF"
+    "-DLIBUNWIND_USE_COMPILER_RT=ON"
+    "-DLIBUNWIND_INSTALL_LIBRARY=OFF"
+    "-DLIBUNWIND_INSTALL_HEADERS=OFF"
+    "-DLIBCXXABI_INCLUDE_TESTS=OFF"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+    "-DLIBCXXABI_USE_COMPILER_RT=ON"
+    "-DLIBCXXABI_INSTALL_LIBRARY=OFF"
+    "-DLIBCXXABI_INSTALL_HEADERS=OFF"
+    "-DLIBCXX_INCLUDE_DOCS=OFF"
+    "-DLIBCXX_INCLUDE_TESTS=OFF"
+    "-DLIBCXX_USE_COMPILER_RT=ON"
+    "-DLIBCXX_CXX_ABI=libcxxabi"
+    "-DLIBCXX_INSTALL_LIBRARY=OFF"
+    "-DLIBCXX_INSTALL_HEADERS=OFF"
+  ];
+
+  extraPostPatch = ''
+    # `No such file or directory: 'ldd'`
+    substituteInPlace ../compiler-rt/test/lit.common.cfg.py \
+      --replace "'ldd'," "'${glibc.bin}/bin/ldd',"
+
+    # We can run these
+    substituteInPlace ../compiler-rt/test/CMakeLists.txt \
+      --replace "endfunction()" "endfunction()''\nadd_subdirectory(builtins)''\nadd_subdirectory(shadowcallstack)"
+
+    # Could not launch llvm-config in /build/source/runtimes/build/bin
+    mkdir -p build/bin
+    ln -s ${llvm}/bin/llvm-config build/bin
+  '';
+
+  extraLicenses = [ lib.licenses.mit ];
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libc.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libc.nix
new file mode 100644
index 000000000000..7e7cf9c2a608
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libc.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, callPackage
+, rocmUpdateScript
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  buildMan = false; # No man pages to build
+  targetName = "libc";
+  targetDir = "runtimes";
+  targetRuntimes = [ targetName ];
+
+  extraPostPatch = ''
+    # `Failed to match ... against ...` `Match value not within tolerance value of MPFR result:`
+    # We need a better way, but I don't know enough sed magic and patching `CMakeLists.txt` isn't working...
+    substituteInPlace ../libc/test/src/math/log10_test.cpp \
+      --replace "i < N" "i < 0" \
+      --replace "test(mpfr::RoundingMode::Nearest);" "" \
+      --replace "test(mpfr::RoundingMode::Downward);" "" \
+      --replace "test(mpfr::RoundingMode::Upward);" "" \
+      --replace "test(mpfr::RoundingMode::TowardZero);" ""
+  '';
+
+  checkTargets = [ "check-${targetName}" ];
+  hardeningDisable = [ "fortify" ]; # Prevent `error: "Assumed value of MB_LEN_MAX wrong"`
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libcxx.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libcxx.nix
new file mode 100644
index 000000000000..473227242765
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libcxx.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, callPackage
+, rocmUpdateScript
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  buildMan = false; # No man pages to build
+  targetName = "libcxx";
+  targetDir = "runtimes";
+
+  targetRuntimes = [
+    "libunwind"
+    "libcxxabi"
+    targetName
+  ];
+
+  extraCMakeFlags = [
+    "-DLIBCXX_INCLUDE_DOCS=ON"
+    "-DLIBCXX_INCLUDE_TESTS=ON"
+    "-DLIBCXX_USE_COMPILER_RT=ON"
+    "-DLIBCXX_CXX_ABI=libcxxabi"
+
+    # Workaround having to build combined
+    "-DLIBUNWIND_INCLUDE_DOCS=OFF"
+    "-DLIBUNWIND_INCLUDE_TESTS=OFF"
+    "-DLIBUNWIND_USE_COMPILER_RT=ON"
+    "-DLIBUNWIND_INSTALL_LIBRARY=OFF"
+    "-DLIBUNWIND_INSTALL_HEADERS=OFF"
+    "-DLIBCXXABI_INCLUDE_TESTS=OFF"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+    "-DLIBCXXABI_USE_COMPILER_RT=ON"
+    "-DLIBCXXABI_INSTALL_LIBRARY=OFF"
+    "-DLIBCXXABI_INSTALL_HEADERS=OFF"
+  ];
+
+  # Most of these can't find `bash` or `mkdir`, might just be hard-coded paths, or PATH is altered
+  extraPostPatch = ''
+    chmod +w -R ../libcxx/test/{libcxx,std}
+    cat ${./1000-libcxx-failing-tests.list} | xargs -d \\n rm
+  '';
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libcxxabi.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libcxxabi.nix
new file mode 100644
index 000000000000..e15ec777ff61
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libcxxabi.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, callPackage
+, rocmUpdateScript
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  buildDocs = false; # No documentation to build
+  buildMan = false; # No man pages to build
+  targetName = "libcxxabi";
+  targetDir = "runtimes";
+
+  targetRuntimes = [
+    "libunwind"
+    targetName
+    "libcxx"
+  ];
+
+  extraCMakeFlags = [
+    "-DLIBCXXABI_INCLUDE_TESTS=ON"
+    "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
+    "-DLIBCXXABI_USE_COMPILER_RT=ON"
+
+    # Workaround having to build combined
+    "-DLIBUNWIND_INCLUDE_DOCS=OFF"
+    "-DLIBUNWIND_INCLUDE_TESTS=OFF"
+    "-DLIBUNWIND_USE_COMPILER_RT=ON"
+    "-DLIBUNWIND_INSTALL_LIBRARY=OFF"
+    "-DLIBUNWIND_INSTALL_HEADERS=OFF"
+    "-DLIBCXX_INCLUDE_DOCS=OFF"
+    "-DLIBCXX_INCLUDE_TESTS=OFF"
+    "-DLIBCXX_USE_COMPILER_RT=ON"
+    "-DLIBCXX_CXX_ABI=libcxxabi"
+    "-DLIBCXX_INSTALL_LIBRARY=OFF"
+    "-DLIBCXX_INSTALL_HEADERS=OFF"
+  ];
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libunwind.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libunwind.nix
new file mode 100644
index 000000000000..3d599e0d4b32
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/libunwind.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, callPackage
+, rocmUpdateScript
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  buildMan = false; # No man pages to build
+  targetName = "libunwind";
+  targetDir = "runtimes";
+  targetRuntimes = [ targetName ];
+
+  extraCMakeFlags = [
+    "-DLIBUNWIND_INCLUDE_DOCS=ON"
+    "-DLIBUNWIND_INCLUDE_TESTS=ON"
+    "-DLIBUNWIND_USE_COMPILER_RT=ON"
+  ];
+
+  extraPostPatch = ''
+    # `command had no output on stdout or stderr` (Says these unsupported tests)
+    chmod +w -R ../libunwind/test
+    rm ../libunwind/test/floatregister.pass.cpp
+    rm ../libunwind/test/unwind_leaffunction.pass.cpp
+    rm ../libunwind/test/libunwind_02.pass.cpp
+  '';
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/rstdenv.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/rstdenv.nix
new file mode 100644
index 000000000000..3820d45a2b81
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-2/rstdenv.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, overrideCC
+, wrapCCWith
+, llvm
+, clang-unwrapped
+, lld
+, runtimes
+, bintools
+}:
+
+overrideCC stdenv (wrapCCWith rec {
+  inherit bintools;
+  libcxx = runtimes;
+  cc = clang-unwrapped;
+  gccForLibs = stdenv.cc.cc;
+
+  extraPackages = [
+    llvm
+    lld
+  ];
+
+  nixSupport.cc-cflags = [
+    "-resource-dir=$out/resource-root"
+    "-fuse-ld=lld"
+    "-rtlib=compiler-rt"
+    "-unwindlib=libunwind"
+    "-Wno-unused-command-line-argument"
+  ];
+
+  extraBuildCommands = ''
+    clang_version=`${cc}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
+    mkdir -p $out/resource-root
+    ln -s ${cc}/lib/clang/$clang_version/include $out/resource-root
+    ln -s ${runtimes}/lib $out/resource-root
+  '';
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/0000-mlir-fix-debugtranslation.patch b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/0000-mlir-fix-debugtranslation.patch
new file mode 100644
index 000000000000..f4221a088136
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/0000-mlir-fix-debugtranslation.patch
@@ -0,0 +1,36 @@
+From f1d1e10ec7e1061bf0b90abbc1e298d9438a5e74 Mon Sep 17 00:00:00 2001
+From: Scott Linder <Scott.Linder@amd.com>
+Date: Mon, 11 Sep 2023 18:37:37 +0000
+Subject: [PATCH] [HeterogeneousDWARF] Update MLIR DI Metadata handling
+
+Pass a default DW_MSPACE_LLVM_none to satisfy new API
+
+Change-Id: I50df461f00b5510a715f55f61107122318102d22
+---
+ lib/Target/LLVMIR/DebugTranslation.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/lib/Target/LLVMIR/DebugTranslation.cpp b/lib/Target/LLVMIR/DebugTranslation.cpp
+index 2053f5bcef06aa6..635ee5d7e5fefdc 100644
+--- a/lib/Target/LLVMIR/DebugTranslation.cpp
++++ b/lib/Target/LLVMIR/DebugTranslation.cpp
+@@ -148,7 +148,8 @@ llvm::DIDerivedType *DebugTranslation::translateImpl(DIDerivedTypeAttr attr) {
+       /*File=*/nullptr, /*Line=*/0,
+       /*Scope=*/nullptr, translate(attr.getBaseType()), attr.getSizeInBits(),
+       attr.getAlignInBits(), attr.getOffsetInBits(),
+-      /*DWARFAddressSpace=*/std::nullopt, /*Flags=*/llvm::DINode::FlagZero);
++      /*DWARFAddressSpace=*/std::nullopt, llvm::dwarf::DW_MSPACE_LLVM_none,
++      /*Flags=*/llvm::DINode::FlagZero);
+ }
+ 
+ llvm::DIFile *DebugTranslation::translateImpl(DIFileAttr attr) {
+@@ -185,7 +186,8 @@ DebugTranslation::translateImpl(DILocalVariableAttr attr) {
+       llvmCtx, translate(attr.getScope()), getMDStringOrNull(attr.getName()),
+       translate(attr.getFile()), attr.getLine(), translate(attr.getType()),
+       attr.getArg(),
+-      /*Flags=*/llvm::DINode::FlagZero, attr.getAlignInBits(),
++      /*Flags=*/llvm::DINode::FlagZero, llvm::dwarf::DW_MSPACE_LLVM_none,
++      attr.getAlignInBits(),
+       /*Annotations=*/nullptr);
+ }
+ 
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/1000-openmp-failing-tests.list b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/1000-openmp-failing-tests.list
new file mode 100644
index 000000000000..e53b21b3c535
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/1000-openmp-failing-tests.list
@@ -0,0 +1,122 @@
+runtime/test/tasking/hidden_helper_task/gtid.cpp
+runtime/test/ompt/parallel/parallel_if0.c
+runtime/test/ompt/parallel/serialized.c
+runtime/test/ompt/teams/parallel_team.c
+runtime/test/ompt/teams/serial_teams.c
+runtime/test/ompt/teams/serialized.c
+runtime/test/ompt/teams/team.c
+libomptarget/test/api/assert.c
+libomptarget/test/api/omp_device_managed_memory.c
+libomptarget/test/api/omp_device_memory.c
+libomptarget/test/api/omp_get_device_num.c
+libomptarget/test/api/omp_host_pinned_memory.c
+libomptarget/test/api/omp_host_pinned_memory_alloc.c
+libomptarget/test/api/omp_target_memcpy_async1.c
+libomptarget/test/api/omp_target_memcpy_async2.c
+libomptarget/test/api/omp_target_memcpy_rect_async1.c
+libomptarget/test/api/omp_target_memcpy_rect_async2.c
+libomptarget/test/mapping/array_section_implicit_capture.c
+libomptarget/test/mapping/data_absent_at_exit.c
+libomptarget/test/mapping/data_member_ref.cpp
+libomptarget/test/mapping/declare_mapper_api.cpp
+libomptarget/test/mapping/declare_mapper_target.cpp
+libomptarget/test/mapping/declare_mapper_target_data.cpp
+libomptarget/test/mapping/declare_mapper_target_data_enter_exit.cpp
+libomptarget/test/mapping/firstprivate_aligned.cpp
+libomptarget/test/mapping/has_device_addr.cpp
+libomptarget/test/mapping/implicit_device_ptr.c
+libomptarget/test/mapping/is_device_ptr.cpp
+libomptarget/test/mapping/lambda_mapping.cpp
+libomptarget/test/mapping/low_alignment.c
+libomptarget/test/mapping/map_back_race.cpp
+libomptarget/test/mapping/power_of_two_alignment.c
+libomptarget/test/mapping/pr38704.c
+libomptarget/test/mapping/prelock.cpp
+libomptarget/test/mapping/present/target_data_at_exit.c
+libomptarget/test/mapping/private_mapping.c
+libomptarget/test/mapping/ptr_and_obj_motion.c
+libomptarget/test/mapping/reduction_implicit_map.cpp
+libomptarget/test/mapping/target_derefence_array_pointrs.cpp
+libomptarget/test/mapping/target_map_for_member_data.cpp
+libomptarget/test/mapping/target_update_array_extension.c
+libomptarget/test/mapping/target_use_device_addr.c
+libomptarget/test/offloading/atomic-compare-signedness.c
+libomptarget/test/offloading/bug47654.cpp
+libomptarget/test/offloading/bug49021.cpp
+libomptarget/test/offloading/bug49779.cpp
+libomptarget/test/offloading/bug50022.cpp
+libomptarget/test/offloading/bug51781.c
+libomptarget/test/offloading/bug51982.c
+libomptarget/test/offloading/bug53727.cpp
+libomptarget/test/offloading/complex_reduction.cpp
+libomptarget/test/offloading/cuda_no_devices.c
+libomptarget/test/offloading/d2d_memcpy.c
+libomptarget/test/offloading/dynamic_module.c
+libomptarget/test/offloading/dynamic_module_load.c
+libomptarget/test/offloading/global_constructor.cpp
+libomptarget/test/offloading/lone_target_exit_data.c
+libomptarget/test/offloading/memory_manager.cpp
+libomptarget/test/offloading/parallel_offloading_map.cpp
+libomptarget/test/offloading/static_linking.c
+libomptarget/test/offloading/std_complex_arithmetic.cpp
+libomptarget/test/offloading/target-teams-atomic.c
+libomptarget/test/offloading/target_constexpr_mapping.cpp
+libomptarget/test/offloading/target_critical_region.cpp
+libomptarget/test/offloading/target_depend_nowait.cpp
+libomptarget/test/offloading/target_nowait_target.cpp
+libomptarget/test/offloading/taskloop_offload_nowait.cpp
+libomptarget/test/offloading/test_libc.cpp
+libomptarget/test/ompt/veccopy.c
+libomptarget/test/ompt/veccopy_disallow_both.c
+libomptarget/test/ompt/veccopy_emi.c
+libomptarget/test/ompt/veccopy_emi_map.c
+libomptarget/test/ompt/veccopy_map.c
+libomptarget/test/ompt/veccopy_no_device_init.c
+libomptarget/test/ompt/veccopy_wrong_return.c
+libomptarget/test/api/is_initial_device.c
+libomptarget/test/mapping/declare_mapper_nested_default_mappers_array_subscript.cpp
+libomptarget/test/mapping/declare_mapper_nested_default_mappers_ptr_subscript.cpp
+libomptarget/test/mapping/declare_mapper_nested_default_mappers_var.cpp
+libomptarget/test/mapping/target_pointers_members_map.cpp
+libomptarget/test/api/omp_dynamic_shared_memory_mixed.c
+libomptarget/test/api/omp_env_vars.c
+libomptarget/test/api/omp_get_mapped_ptr.c
+libomptarget/test/api/omp_get_num_devices.c
+libomptarget/test/api/omp_get_num_devices_with_empty_target.c
+libomptarget/test/mapping/alloc_fail.c
+libomptarget/test/mapping/array_section_use_device_ptr.c
+libomptarget/test/mapping/declare_mapper_nested_default_mappers.cpp
+libomptarget/test/mapping/declare_mapper_nested_mappers.cpp
+libomptarget/test/mapping/declare_mapper_target_update.cpp
+libomptarget/test/mapping/delete_inf_refcount.c
+libomptarget/test/mapping/lambda_by_value.cpp
+libomptarget/test/mapping/ompx_hold/omp_target_disassociate_ptr.c
+libomptarget/test/mapping/ompx_hold/struct.c
+libomptarget/test/mapping/ompx_hold/target-data.c
+libomptarget/test/mapping/ompx_hold/target.c
+libomptarget/test/mapping/present/target.c
+libomptarget/test/mapping/present/target_array_extension.c
+libomptarget/test/mapping/present/target_data.c
+libomptarget/test/mapping/present/target_data_array_extension.c
+libomptarget/test/mapping/present/target_enter_data.c
+libomptarget/test/mapping/present/target_exit_data_delete.c
+libomptarget/test/mapping/present/target_exit_data_release.c
+libomptarget/test/mapping/present/target_update.c
+libomptarget/test/mapping/present/target_update_array_extension.c
+libomptarget/test/mapping/present/zero_length_array_section.c
+libomptarget/test/mapping/present/zero_length_array_section_exit.c
+libomptarget/test/mapping/target_data_array_extension_at_exit.c
+libomptarget/test/mapping/target_has_device_addr.c
+libomptarget/test/mapping/target_implicit_partial_map.c
+libomptarget/test/mapping/target_wrong_use_device_addr.c
+libomptarget/test/offloading/host_as_target.c
+libomptarget/test/offloading/info.c
+libomptarget/test/offloading/offloading_success.c
+libomptarget/test/offloading/offloading_success.cpp
+libomptarget/test/offloading/wtime.c
+libomptarget/test/unified_shared_memory/api.c
+libomptarget/test/unified_shared_memory/associate_ptr.c
+libomptarget/test/unified_shared_memory/close_enter_exit.c
+libomptarget/test/unified_shared_memory/close_manual.c
+libomptarget/test/unified_shared_memory/close_member.c
+libomptarget/test/unified_shared_memory/close_modifier.c
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/1001-mlir-failing-tests.list b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/1001-mlir-failing-tests.list
new file mode 100644
index 000000000000..0b3d2d22592d
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/1001-mlir-failing-tests.list
@@ -0,0 +1,11 @@
+./test/Target/LLVMIR/openmp-llvm.mlir
+./test/mlir-spirv-cpu-runner/double.mlir
+./test/mlir-spirv-cpu-runner/simple_add.mlir
+./test/mlir-vulkan-runner/addf.mlir
+./test/mlir-vulkan-runner/addi.mlir
+./test/mlir-vulkan-runner/addi8.mlir
+./test/mlir-vulkan-runner/mulf.mlir
+./test/mlir-vulkan-runner/smul_extended.mlir
+./test/mlir-vulkan-runner/subf.mlir
+./test/mlir-vulkan-runner/time.mlir
+./test/mlir-vulkan-runner/umul_extended.mlir
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/clang-tools-extra.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/clang-tools-extra.nix
new file mode 100644
index 000000000000..d18673ecb3db
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/clang-tools-extra.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, callPackage
+, rocmUpdateScript
+, llvm
+, clang-unwrapped
+, gtest
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  buildTests = false; # `invalid operands to binary expression ('std::basic_stringstream<char>' and 'const llvm::StringRef')`
+  targetName = "clang-tools-extra";
+
+  targetProjects = [
+    "clang"
+    "clang-tools-extra"
+  ];
+
+  extraBuildInputs = [ gtest ];
+
+  extraCMakeFlags = [
+    "-DLLVM_INCLUDE_DOCS=OFF"
+    "-DLLVM_INCLUDE_TESTS=OFF"
+    "-DCLANG_INCLUDE_DOCS=OFF"
+    "-DCLANG_INCLUDE_TESTS=ON"
+    "-DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=ON"
+  ];
+
+  extraPostInstall = ''
+    # Remove LLVM and Clang
+    for path in `find ${llvm} ${clang-unwrapped}`; do
+      if [ $path != ${llvm} ] && [ $path != ${clang-unwrapped} ]; then
+        rm -f $out''${path#${llvm}} $out''${path#${clang-unwrapped}} || true
+      fi
+    done
+
+    # Cleanup empty directories
+    find $out -type d -empty -delete
+  '';
+
+  requiredSystemFeatures = [ "big-parallel" ];
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/clang.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/clang.nix
new file mode 100644
index 000000000000..91f34265f85f
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/clang.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, wrapCCWith
+, llvm
+, lld
+, clang-unwrapped
+, bintools
+, libc
+, libunwind
+, libcxxabi
+, libcxx
+, compiler-rt
+}:
+
+wrapCCWith rec {
+  inherit libcxx bintools;
+
+  # We do this to avoid HIP pathing problems, and mimic a monolithic install
+  cc = stdenv.mkDerivation (finalAttrs: {
+    inherit (clang-unwrapped) version;
+    pname = "rocm-llvm-clang";
+    dontUnpack = true;
+
+    installPhase = ''
+      runHook preInstall
+
+      clang_version=`${clang-unwrapped}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
+      mkdir -p $out/{bin,include/c++/v1,lib/{cmake,clang/$clang_version/{include,lib}},libexec,share}
+
+      for path in ${llvm} ${clang-unwrapped} ${lld} ${libc} ${libunwind} ${libcxxabi} ${libcxx} ${compiler-rt}; do
+        cp -as $path/* $out
+        chmod +w $out/{*,include/c++/v1,lib/{clang/$clang_version/include,cmake}}
+        rm -f $out/lib/libc++.so
+      done
+
+      ln -s $out/lib/* $out/lib/clang/$clang_version/lib
+      ln -sf $out/include/* $out/lib/clang/$clang_version/include
+
+      runHook postInstall
+    '';
+
+    passthru.isClang = true;
+  });
+
+  extraPackages = [
+    llvm
+    lld
+    libc
+    libunwind
+    libcxxabi
+    compiler-rt
+  ];
+
+  nixSupport.cc-cflags = [
+    "-resource-dir=$out/resource-root"
+    "-fuse-ld=lld"
+    "-rtlib=compiler-rt"
+    "-unwindlib=libunwind"
+    "-Wno-unused-command-line-argument"
+  ];
+
+  extraBuildCommands = ''
+    clang_version=`${cc}/bin/clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
+    mkdir -p $out/resource-root
+    ln -s ${cc}/lib/clang/$clang_version/{include,lib} $out/resource-root
+
+    # Not sure why, but hardening seems to make things break
+    echo "" > $out/nix-support/add-hardening.sh
+
+    # GPU compilation uses builtin `lld`
+    substituteInPlace $out/bin/{clang,clang++} \
+      --replace "-MM) dontLink=1 ;;" "-MM | --cuda-device-only) dontLink=1 ;;''\n--cuda-host-only | --cuda-compile-host-device) dontLink=0 ;;"
+  '';
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/flang.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/flang.nix
new file mode 100644
index 000000000000..421663dcb1b7
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/flang.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, callPackage
+, rocmUpdateScript
+, clang-unwrapped
+, mlir
+, graphviz
+, python3Packages
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  targetName = "flang";
+  targetDir = targetName;
+
+  extraNativeBuildInputs = [
+    graphviz
+    python3Packages.sphinx-markdown-tables
+  ];
+
+  extraBuildInputs = [ mlir ];
+
+  extraCMakeFlags = [
+    "-DCLANG_DIR=${clang-unwrapped}/lib/cmake/clang"
+    "-DMLIR_TABLEGEN_EXE=${mlir}/bin/mlir-tblgen"
+    "-DCLANG_TABLEGEN_EXE=${clang-unwrapped}/bin/clang-tblgen"
+    "-DFLANG_INCLUDE_TESTS=OFF" # `The dependency target "Bye" of target ...`
+  ];
+
+  # `flang/lib/Semantics/check-omp-structure.cpp:1905:1: error: no member named 'v' in 'Fortran::parser::OmpClause::OmpxDynCgroupMem'`
+  isBroken = true;
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/libclc.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/libclc.nix
new file mode 100644
index 000000000000..1fd72ee67188
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/libclc.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, callPackage
+, rocmUpdateScript
+, llvm
+, clang
+, spirv-llvm-translator
+}:
+
+let
+  spirv = (spirv-llvm-translator.override { inherit llvm; });
+in callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  buildDocs = false; # No documentation to build
+  buildMan = false; # No man pages to build
+  targetName = "libclc";
+  targetDir = targetName;
+  extraBuildInputs = [ spirv ];
+
+  # `spirv-mesa3d` isn't compiling with LLVM 15.0.0, it does with LLVM 14.0.0
+  # Try removing the `spirv-mesa3d` and `clspv` patches next update
+  # `clspv` tests fail, unresolved calls
+  extraPostPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace "find_program( LLVM_CLANG clang PATHS \''${LLVM_BINDIR} NO_DEFAULT_PATH )" \
+        "find_program( LLVM_CLANG clang PATHS \"${clang}/bin\" NO_DEFAULT_PATH )" \
+      --replace "find_program( LLVM_SPIRV llvm-spirv PATHS \''${LLVM_BINDIR} NO_DEFAULT_PATH )" \
+        "find_program( LLVM_SPIRV llvm-spirv PATHS \"${spirv}/bin\" NO_DEFAULT_PATH )" \
+      --replace "  spirv-mesa3d-" "" \
+      --replace "  spirv64-mesa3d-" "" \
+      --replace "NOT \''${t} MATCHES" \
+        "NOT \''${ARCH} STREQUAL \"clspv\" AND NOT \''${ARCH} STREQUAL \"clspv64\" AND NOT \''${t} MATCHES"
+  '';
+
+  checkTargets = [ ];
+  isBroken = true; # ROCm 5.7.0 doesn't have IR/AttributeMask.h yet...?
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/lldb.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/lldb.nix
new file mode 100644
index 000000000000..9b7d25e06d9d
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/lldb.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, callPackage
+, rocmUpdateScript
+, clang
+, xz
+, swig
+, lua5_3
+, graphviz
+, gtest
+, python3Packages
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  buildTests = false; # FIXME: Bad pathing for clang executable in tests, using relative path most likely
+  targetName = "lldb";
+  targetDir = targetName;
+  extraNativeBuildInputs = [ python3Packages.sphinx-automodapi ];
+
+  extraBuildInputs = [
+    xz
+    swig
+    lua5_3
+    graphviz
+    gtest
+  ];
+
+  extraCMakeFlags = [
+    "-DLLDB_EXTERNAL_CLANG_RESOURCE_DIR=${clang}/resource-root/lib/clang/$clang_version"
+    "-DLLDB_INCLUDE_TESTS=ON"
+    "-DLLDB_INCLUDE_UNITTESTS=ON"
+  ];
+
+  extraPostPatch = ''
+    export clang_version=`clang -v 2>&1 | grep "clang version " | grep -E -o "[0-9.-]+"`
+  '';
+
+  checkTargets = [ "check-${targetName}" ];
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/mlir.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/mlir.nix
new file mode 100644
index 000000000000..6de685ea2771
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/mlir.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, callPackage
+, rocmUpdateScript
+, clr
+, vulkan-headers
+, vulkan-loader
+, glslang
+, shaderc
+, lit
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  buildDocs = false; # No decent way to hack this to work
+  buildMan = false; # No man pages to build
+  targetName = "mlir";
+  targetDir = targetName;
+
+  # Fix `DebugTranslation.cpp:139:10: error: no matching function for call to 'get'`
+  # We patch at a different source root, so we modify the patch and include it locally
+  # https://github.com/ROCm/llvm-project/commit/f1d1e10ec7e1061bf0b90abbc1e298d9438a5e74.patch
+  extraPatches = [ ./0000-mlir-fix-debugtranslation.patch ];
+  extraNativeBuildInputs = [ clr ];
+
+  extraBuildInputs = [
+    vulkan-headers
+    vulkan-loader
+    glslang
+    shaderc
+  ];
+
+  extraCMakeFlags = [
+    "-DMLIR_INCLUDE_DOCS=ON"
+    "-DMLIR_INCLUDE_TESTS=ON"
+    "-DMLIR_ENABLE_ROCM_RUNNER=ON"
+    "-DMLIR_ENABLE_SPIRV_CPU_RUNNER=ON"
+    "-DMLIR_ENABLE_VULKAN_RUNNER=ON"
+    "-DROCM_TEST_CHIPSET=gfx000" # CPU runner
+  ];
+
+  extraPostPatch = ''
+    # `add_library cannot create target "llvm_gtest" because an imported target with the same name already exists`
+    substituteInPlace CMakeLists.txt \
+      --replace "EXISTS \''${UNITTEST_DIR}/googletest/include/gtest/gtest.h" "FALSE"
+
+    # Mainly `No such file or directory`
+    cat ${./1001-mlir-failing-tests.list} | xargs -d \\n rm
+  '';
+
+  extraPostInstall = ''
+    mkdir -p $out/bin
+    mv bin/mlir-tblgen $out/bin
+  '';
+
+  checkTargets = [ "check-${targetName}" ];
+  requiredSystemFeatures = [ "big-parallel" ];
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/openmp.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/openmp.nix
new file mode 100644
index 000000000000..5fd7b6fd9aa3
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/openmp.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, callPackage
+, rocmUpdateScript
+, llvm
+, clang
+, clang-unwrapped
+, rocm-device-libs
+, rocm-runtime
+, rocm-thunk
+, perl
+, elfutils
+, libdrm
+, numactl
+, lit
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  targetName = "openmp";
+  targetDir = targetName;
+  extraNativeBuildInputs = [ perl ];
+
+  extraBuildInputs = [
+    rocm-device-libs
+    rocm-runtime
+    rocm-thunk
+    elfutils
+    libdrm
+    numactl
+  ];
+
+  extraCMakeFlags = [
+    "-DCMAKE_MODULE_PATH=/build/source/llvm/cmake/modules" # For docs
+    "-DCLANG_TOOL=${clang}/bin/clang"
+    "-DCLANG_OFFLOAD_BUNDLER_TOOL=${clang-unwrapped}/bin/clang-offload-bundler"
+    "-DPACKAGER_TOOL=${clang-unwrapped}/bin/clang-offload-packager"
+    "-DOPENMP_LLVM_TOOLS_DIR=${llvm}/bin"
+    "-DOPENMP_LLVM_LIT_EXECUTABLE=${lit}/bin/.lit-wrapped"
+    "-DDEVICELIBS_ROOT=${rocm-device-libs.src}"
+  ];
+
+  extraPostPatch = ''
+    # We can't build this target at the moment
+    substituteInPlace libomptarget/DeviceRTL/CMakeLists.txt \
+      --replace "gfx1010" ""
+
+    # No idea what's going on here...
+    cat ${./1000-openmp-failing-tests.list} | xargs -d \\n rm
+  '';
+
+  checkTargets = [ "check-${targetName}" ];
+  extraLicenses = [ lib.licenses.mit ];
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/polly.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/polly.nix
new file mode 100644
index 000000000000..e001f33dfd43
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/polly.nix
@@ -0,0 +1,18 @@
+{ stdenv
+, callPackage
+, rocmUpdateScript
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  targetName = "polly";
+  targetDir = targetName;
+
+  extraPostPatch = ''
+    # `add_library cannot create target "llvm_gtest" because an imported target with the same name already exists`
+    substituteInPlace CMakeLists.txt \
+      --replace "NOT TARGET gtest" "FALSE"
+  '';
+
+  checkTargets = [ "check-${targetName}" ];
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/pstl.nix b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/pstl.nix
new file mode 100644
index 000000000000..dc7d7cd6ccbf
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/llvm/stage-3/pstl.nix
@@ -0,0 +1,15 @@
+{ stdenv
+, callPackage
+, rocmUpdateScript
+}:
+
+callPackage ../base.nix rec {
+  inherit stdenv rocmUpdateScript;
+  buildDocs = false; # No documentation to build
+  buildMan = false; # No man pages to build
+  buildTests = false; # Too many errors
+  targetName = "pstl";
+  targetDir = "runtimes";
+  targetRuntimes = [ targetName ];
+  checkTargets = [ "check-${targetName}" ];
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/migraphx/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/migraphx/default.nix
new file mode 100644
index 000000000000..4cc2e4bd24b3
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/migraphx/default.nix
@@ -0,0 +1,171 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, pkg-config
+, cmake
+, rocm-cmake
+, clr
+, clang-tools-extra
+, openmp
+, rocblas
+, rocmlir
+, composable_kernel
+, miopen
+, protobuf
+, half
+, nlohmann_json
+, msgpack
+, sqlite
+, oneDNN_2
+, blaze
+, cppcheck
+, rocm-device-libs
+, texliveSmall
+, doxygen
+, sphinx
+, docutils
+, ghostscript
+, python3Packages
+, buildDocs ? false
+, buildTests ? false
+, gpuTargets ? clr.gpuTargets
+}:
+
+let
+  latex = lib.optionalAttrs buildDocs (texliveSmall.withPackages (ps: with ps; [
+    latexmk
+    tex-gyre
+    fncychap
+    wrapfig
+    capt-of
+    framed
+    needspace
+    tabulary
+    varwidth
+    titlesec
+    epstopdf
+  ]));
+in stdenv.mkDerivation (finalAttrs: {
+  pname = "migraphx";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildDocs [
+    "doc"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "AMDMIGraphX";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-VDYUSpWYAdJ63SKVCO26DVAC3RtZM7otqN0sYUA6DBQ=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    rocm-cmake
+    clr
+    clang-tools-extra
+    python3Packages.python
+  ] ++ lib.optionals buildDocs [
+    latex
+    doxygen
+    sphinx
+    docutils
+    ghostscript
+    python3Packages.sphinx-rtd-theme
+    python3Packages.breathe
+  ];
+
+  buildInputs = [
+    openmp
+    rocblas
+    rocmlir
+    composable_kernel
+    miopen
+    protobuf
+    half
+    nlohmann_json
+    msgpack
+    sqlite
+    oneDNN_2
+    blaze
+    cppcheck
+    python3Packages.pybind11
+    python3Packages.onnx
+  ];
+
+  cmakeFlags = [
+    "-DMIGRAPHX_ENABLE_GPU=ON"
+    "-DMIGRAPHX_ENABLE_CPU=ON"
+    "-DMIGRAPHX_ENABLE_FPGA=ON"
+    "-DMIGRAPHX_ENABLE_MLIR=OFF" # LLVM or rocMLIR mismatch?
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ];
+
+  postPatch = ''
+    # We need to not use hipcc and define the CXXFLAGS manually due to `undefined hidden symbol: tensorflow:: ...`
+    export CXXFLAGS+="--rocm-path=${clr} --rocm-device-lib-path=${rocm-device-libs}/amdgcn/bitcode"
+    patchShebangs tools
+
+    # `error: '__clang_hip_runtime_wrapper.h' file not found [clang-diagnostic-error]`
+    substituteInPlace CMakeLists.txt \
+      --replace "set(MIGRAPHX_TIDY_ERRORS ALL)" ""
+
+    # JIT library was removed from composable_kernel...
+    # https://github.com/ROCm/composable_kernel/issues/782
+    substituteInPlace src/targets/gpu/CMakeLists.txt \
+      --replace " COMPONENTS jit_library" "" \
+      --replace " composable_kernel::jit_library" "" \
+      --replace "if(WIN32)" "if(TRUE)"
+  '' + lib.optionalString (!buildDocs) ''
+    substituteInPlace CMakeLists.txt \
+      --replace "add_subdirectory(doc)" ""
+  '' + lib.optionalString (!buildTests) ''
+    substituteInPlace CMakeLists.txt \
+      --replace "add_subdirectory(test)" ""
+  '';
+
+  # Unfortunately, it seems like we have to call make on this manually
+  preInstall = lib.optionalString buildDocs ''
+    export HOME=$(mktemp -d)
+    make -j$NIX_BUILD_CORES doc
+    cd ../doc/pdf
+    make -j$NIX_BUILD_CORES
+    cd -
+  '';
+
+  postInstall = lib.optionalString buildDocs ''
+    mv ../doc/html $out/share/doc/migraphx
+    mv ../doc/pdf/MIGraphX.pdf $out/share/doc/migraphx
+  '' + lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    mv bin/test_* $test/bin
+    patchelf $test/bin/test_* --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE"
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "AMD's graph optimization engine";
+    homepage = "https://github.com/ROCm/AMDMIGraphX";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = true;
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/miopen/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/miopen/default.nix
new file mode 100644
index 000000000000..f78bcb602e69
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/miopen/default.nix
@@ -0,0 +1,234 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, rocmUpdateScript
+, runCommand
+, pkg-config
+, cmake
+, rocm-cmake
+, rocblas
+, rocmlir
+, clr
+, clang-tools-extra
+, clang-ocl
+, composable_kernel
+, frugally-deep
+, rocm-docs-core
+, half
+, boost
+, sqlite
+, bzip2
+, lbzip2
+, nlohmann_json
+, texliveSmall
+, doxygen
+, sphinx
+, zlib
+, gtest
+, rocm-comgr
+, roctracer
+, python3Packages
+, buildDocs ? false # Needs internet because of rocm-docs-core
+, buildTests ? false
+}:
+
+let
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "MIOpen";
+    rev = "rocm-${version}";
+    hash = "sha256-mbOdlSb0ESKi9hMkq3amv70Xkp/YKnZYre24d/y5TD0=";
+    fetchLFS = true;
+    leaveDotGit = true;
+
+    # If you're reading this, it's gonna take a bit of time.
+    # fetchSubModules doesn't work with postFetch???
+    # fetchLFS isn't actually fetching the LFS files...
+    postFetch = ''
+      export HOME=$(mktemp -d)
+      cd $out
+
+      # We need more history to fetch LFS files
+      git remote add origin $url
+      git fetch origin
+      git clean -fdx
+      git checkout rocm-${version}
+
+      # We need to do this manually since using leaveDotGit and fetchSubmodules errors
+      git submodule update --init
+
+      # Fetch the LFS files
+      git lfs install
+      git lfs fetch --all
+      git lfs checkout
+
+      # Remove the defunct .git folder
+      rm -rf .git
+    '';
+  };
+
+  latex = lib.optionalAttrs buildDocs (texliveSmall.withPackages (ps: with ps; [
+    latexmk
+    tex-gyre
+    fncychap
+    wrapfig
+    capt-of
+    framed
+    needspace
+    tabulary
+    varwidth
+    titlesec
+  ]));
+
+  gfx900 = runCommand "miopen-gfx900.kdb" { preferLocalBuild = true; } ''
+    ${lbzip2}/bin/lbzip2 -ckd ${src}/src/kernels/gfx900.kdb.bz2 > $out
+  '';
+
+  gfx906 = runCommand "miopen-gfx906.kdb" { preferLocalBuild = true; } ''
+    ${lbzip2}/bin/lbzip2 -ckd ${src}/src/kernels/gfx906.kdb.bz2 > $out
+  '';
+
+  gfx908 = runCommand "miopen-gfx908.kdb" { preferLocalBuild = true; } ''
+    ${lbzip2}/bin/lbzip2 -ckd ${src}/src/kernels/gfx908.kdb.bz2 > $out
+  '';
+
+  gfx90a = runCommand "miopen-gfx90a.kdb" { preferLocalBuild = true; } ''
+    ${lbzip2}/bin/lbzip2 -ckd ${src}/src/kernels/gfx90a.kdb.bz2 > $out
+  '';
+
+  gfx1030 = runCommand "miopen-gfx1030.kdb" { preferLocalBuild = true; } ''
+    ${lbzip2}/bin/lbzip2 -ckd ${src}/src/kernels/gfx1030.kdb.bz2 > $out
+  '';
+in stdenv.mkDerivation (finalAttrs: {
+  inherit version src;
+  pname = "miopen";
+
+  # Find zstd and add to target. Mainly for torch.
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/ROCm/MIOpen/commit/e608b4325646afeabb5e52846997b926d2019d19.patch";
+      hash = "sha256-oxa3qlIC2bzbwGxrQOZXoY/S7CpLsMrnWRB7Og0tk0M=";
+    })
+    (fetchpatch {
+      url = "https://github.com/ROCm/MIOpen/commit/3413d2daaeb44b7d6eadcc03033a5954a118491e.patch";
+      hash = "sha256-ST4snUcTmmSI1Ogx815KEX9GdMnmubsavDzXCGJkiKs=";
+    })
+  ];
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildDocs [
+    "doc"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    rocm-cmake
+    clr
+    clang-tools-extra
+  ];
+
+  buildInputs = [
+    rocblas
+    rocmlir
+    clang-ocl
+    composable_kernel
+    half
+    boost
+    sqlite
+    bzip2
+    nlohmann_json
+    frugally-deep
+    roctracer
+  ] ++ lib.optionals buildDocs [
+    latex
+    doxygen
+    sphinx
+    rocm-docs-core
+    python3Packages.sphinx-rtd-theme
+    python3Packages.breathe
+    python3Packages.myst-parser
+  ] ++ lib.optionals buildTests [
+    zlib
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_CXX_FLAGS=-Wno-#warnings" # <half> -> <half/half.hpp>
+    "-DUNZIPPER=${bzip2}/bin/bunzip2"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DCMAKE_C_COMPILER=hipcc"
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    "-DMIOPEN_BACKEND=HIP"
+  ] ++ lib.optionals buildTests [
+    "-DBUILD_TESTS=ON"
+    "-DMIOPEN_TEST_ALL=ON"
+  ];
+
+  postPatch = ''
+    patchShebangs test src/composable_kernel fin utils install_deps.cmake
+
+    substituteInPlace CMakeLists.txt \
+      --replace "unpack_db(\"\''${CMAKE_SOURCE_DIR}/src/kernels/\''${FILE_NAME}.kdb.bz2\")" "" \
+      --replace "MIOPEN_HIP_COMPILER MATCHES \".*clang\\\\+\\\\+$\"" "true" \
+      --replace "set(MIOPEN_TIDY_ERRORS ALL)" "" # error: missing required key 'key'
+
+    substituteInPlace test/gtest/CMakeLists.txt \
+      --replace "include(googletest)" ""
+
+    ln -sf ${gfx900} src/kernels/gfx900.kdb
+    ln -sf ${gfx906} src/kernels/gfx906.kdb
+    ln -sf ${gfx908} src/kernels/gfx908.kdb
+    ln -sf ${gfx90a} src/kernels/gfx90a.kdb
+    ln -sf ${gfx1030} src/kernels/gfx1030.kdb
+  '';
+
+  # Unfortunately, it seems like we have to call make on these manually
+  postBuild = lib.optionalString buildDocs ''
+    python -m sphinx -T -E -b html -d _build/doctrees -D language=en ../docs _build/html
+  '' + lib.optionalString buildTests ''
+    make -j$NIX_BUILD_CORES check
+  '';
+
+  postInstall = ''
+    rm $out/bin/install_precompiled_kernels.sh
+    ln -sf ${gfx900} $out/share/miopen/db/gfx900.kdb
+    ln -sf ${gfx906} $out/share/miopen/db/gfx906.kdb
+    ln -sf ${gfx908} $out/share/miopen/db/gfx908.kdb
+    ln -sf ${gfx90a} $out/share/miopen/db/gfx90a.kdb
+    ln -sf ${gfx1030} $out/share/miopen/db/gfx1030.kdb
+  '' + lib.optionalString buildDocs ''
+    mv ../doc/html $out/share/doc/miopen-hip
+  '' + lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    mv bin/test_* $test/bin
+    patchelf --set-rpath $out/lib:${lib.makeLibraryPath (finalAttrs.buildInputs ++
+      [ clr rocm-comgr ])} $test/bin/*
+  '';
+
+  requiredSystemFeatures = [ "big-parallel" ];
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Machine intelligence library for ROCm";
+    homepage = "https://github.com/ROCm/MIOpen";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/mivisionx/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/mivisionx/default.nix
new file mode 100644
index 000000000000..e3e6172709fe
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/mivisionx/default.nix
@@ -0,0 +1,142 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, rocm-device-libs
+, clr
+, pkg-config
+, rpp
+, rocblas
+, miopen
+, migraphx
+, clang
+, openmp
+, protobuf
+, qtcreator
+, opencv
+, ffmpeg
+, boost
+, libjpeg_turbo
+, half
+, lmdb
+, rapidjson
+, rocm-docs-core
+, python3Packages
+, useOpenCL ? false
+, useCPU ? false
+, buildDocs ? false # Needs internet
+, gpuTargets ? [ ]
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "mivisionx-" + (
+    if (!useOpenCL && !useCPU) then "hip"
+    else if (!useOpenCL && !useCPU) then "opencl"
+    else "cpu"
+  );
+
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "MIVisionX";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-d32lcJq24MXeIWbNbo6putWaol5kF2io6cz4ZuL+DbE=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    clr
+    pkg-config
+  ] ++ lib.optionals buildDocs [
+    rocm-docs-core
+    python3Packages.python
+  ];
+
+  buildInputs = [
+    miopen
+    migraphx
+    rpp
+    rocblas
+    openmp
+    half
+    protobuf
+    qtcreator
+    opencv
+    ffmpeg
+    boost
+    libjpeg_turbo
+    lmdb
+    rapidjson
+    python3Packages.pybind11
+    python3Packages.numpy
+    python3Packages.torchWithRocm
+  ];
+
+  cmakeFlags = [
+    "-DROCM_PATH=${clr}"
+    "-DAMDRPP_PATH=${rpp}"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DCMAKE_INSTALL_PREFIX_PYTHON=lib"
+    # "-DAMD_FP16_SUPPORT=ON" `error: typedef redefinition with different types ('__half' vs 'half_float::half')`
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ] ++ lib.optionals (!useOpenCL && !useCPU) [
+    "-DBACKEND=HIP"
+  ] ++ lib.optionals (useOpenCL && !useCPU) [
+    "-DBACKEND=OCL"
+  ] ++ lib.optionals useCPU [
+    "-DBACKEND=CPU"
+  ];
+
+  postPatch = ''
+    # We need to not use hipcc and define the CXXFLAGS manually due to `undefined hidden symbol: tensorflow:: ...`
+    export CXXFLAGS+="--rocm-path=${clr} --rocm-device-lib-path=${rocm-device-libs}/amdgcn/bitcode"
+    patchShebangs rocAL/rocAL_pybind/examples
+
+    # Properly find miopen
+    substituteInPlace amd_openvx_extensions/CMakeLists.txt \
+      --replace "miopen     PATHS \''${ROCM_PATH} QUIET" "miopen PATHS ${miopen} QUIET" \
+      --replace "\''${ROCM_PATH}/include/miopen/config.h" "${miopen}/include/miopen/config.h"
+
+    # Properly find turbojpeg
+    substituteInPlace amd_openvx/cmake/FindTurboJpeg.cmake \
+      --replace "\''${TURBO_JPEG_PATH}/include" "${libjpeg_turbo.dev}/include" \
+      --replace "\''${TURBO_JPEG_PATH}/lib" "${libjpeg_turbo.out}/lib"
+
+    # Fix bad paths
+    substituteInPlace rocAL/rocAL/rocAL_hip/CMakeLists.txt amd_openvx_extensions/amd_nn/nn_hip/CMakeLists.txt amd_openvx/openvx/hipvx/CMakeLists.txt \
+      --replace "COMPILER_FOR_HIP \''${ROCM_PATH}/llvm/bin/clang++" "COMPILER_FOR_HIP ${clang}/bin/clang++"
+  '';
+
+  postBuild = lib.optionalString buildDocs ''
+    python3 -m sphinx -T -E -b html -d _build/doctrees -D language=en ../docs _build/html
+  '';
+
+  postInstall = lib.optionalString (!useOpenCL && !useCPU) ''
+    patchelf $out/lib/rocal_pybind*.so --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE"
+    chmod +x $out/lib/rocal_pybind*.so
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Set of comprehensive computer vision and machine intelligence libraries, utilities, and applications";
+    homepage = "https://github.com/ROCm/MIVisionX";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rccl/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rccl/default.nix
new file mode 100644
index 000000000000..cdbbd70440c2
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rccl/default.nix
@@ -0,0 +1,91 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, rocm-smi
+, clr
+, perl
+, hipify
+, gtest
+, chrpath
+, buildTests ? false
+, gpuTargets ? [ ]
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rccl";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rccl";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-Oyml47yGEB7fALxBcDjqFngS38cnI39sDj94/JV7wE0=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    clr
+    perl
+    hipify
+  ];
+
+  buildInputs = [
+    rocm-smi
+    gtest
+  ] ++ lib.optionals buildTests [
+    chrpath
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    "-DBUILD_BFD=OFF" # Can't get it to detect bfd.h
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ] ++ lib.optionals buildTests [
+    "-DBUILD_TESTS=ON"
+  ];
+
+  postPatch = ''
+    patchShebangs src tools
+
+    # Really strange behavior, `#!/usr/bin/env perl` should work...
+    substituteInPlace CMakeLists.txt \
+      --replace "\''$ \''${hipify-perl_executable}" "${perl}/bin/perl ${hipify}/bin/hipify-perl"
+  '';
+
+  postInstall = lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    mv $out/bin/* $test/bin
+    rmdir $out/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "ROCm communication collectives library";
+    homepage = "https://github.com/ROCm/rccl";
+    license = with licenses; [ bsd2 bsd3 ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rdc/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rdc/default.nix
new file mode 100644
index 000000000000..6591e55a0cc7
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rdc/default.nix
@@ -0,0 +1,125 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-smi
+, rocm-runtime
+, libcap
+, grpc
+, protobuf
+, openssl
+, doxygen
+, graphviz
+, texliveSmall
+, gtest
+, buildDocs ? true
+, buildTests ? false
+}:
+
+let
+  latex = lib.optionalAttrs buildDocs (texliveSmall.withPackages (ps: with ps; [
+    changepage
+    latexmk
+    varwidth
+    multirow
+    hanging
+    adjustbox
+    collectbox
+    stackengine
+    enumitem
+    alphalph
+    wasysym
+    sectsty
+    tocloft
+    newunicodechar
+    etoc
+    helvetic
+    wasy
+    courier
+  ]));
+in stdenv.mkDerivation (finalAttrs: {
+  pname = "rdc";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildDocs [
+    "doc"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rdc";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-QugcajxILmDeQiWG5uAUO41Wut45irg2Ynufgn1bmps=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    protobuf
+  ] ++ lib.optionals buildDocs [
+    doxygen
+    graphviz
+    latex
+  ];
+
+  buildInputs = [
+    rocm-smi
+    rocm-runtime
+    libcap
+    grpc
+    openssl
+  ] ++ lib.optionals buildTests [
+    gtest
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_VERBOSE_MAKEFILE=OFF"
+    "-DRDC_INSTALL_PREFIX=${placeholder "out"}"
+    "-DBUILD_ROCRTEST=ON"
+    "-DRSMI_INC_DIR=${rocm-smi}/include"
+    "-DRSMI_LIB_DIR=${rocm-smi}/lib"
+    "-DGRPC_ROOT=${grpc}"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DCMAKE_INSTALL_LIBEXECDIR=libexec"
+    "-DCMAKE_INSTALL_DOCDIR=doc"
+  ] ++ lib.optionals buildTests [
+    "-DBUILD_TESTS=ON"
+  ];
+
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace "file(STRINGS /etc/os-release LINUX_DISTRO LIMIT_COUNT 1 REGEX \"NAME=\")" "set(LINUX_DISTRO \"NixOS\")"
+  '';
+
+  postInstall = ''
+    find $out/bin -executable -type f -exec \
+      patchelf {} --shrink-rpath --allowed-rpath-prefixes "$NIX_STORE" \;
+  '' + lib.optionalString buildTests ''
+    mkdir -p $test
+    mv $out/bin/rdctst_tests $test/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Simplifies administration and addresses infrastructure challenges in cluster and datacenter environments";
+    homepage = "https://github.com/ROCm/rdc";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    # broken = versions.minor finalAttrs.version != versions.minor rocm-smi.version || versionAtLeast finalAttrs.version "7.0.0";
+    broken = true; # Too many errors, unsure how to fix
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocalution/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocalution/default.nix
new file mode 100644
index 000000000000..056cbb9b358c
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocalution/default.nix
@@ -0,0 +1,115 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, rocblas
+, rocsparse
+, rocprim
+, rocrand
+, clr
+, git
+, openmp
+, openmpi
+, gtest
+, buildTests ? false
+, buildBenchmarks ? false
+, buildSamples ? false
+, gpuTargets ? [ ] # gpuTargets = [ "gfx803" "gfx900:xnack-" "gfx906:xnack-" ... ]
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocalution";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ] ++ lib.optionals buildBenchmarks [
+    "benchmark"
+  ] ++ lib.optionals buildSamples [
+    "sample"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocALUTION";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-mrN+CI2mqaMi8oKxui7HAIE2qSn50aNaFipkWwYMtbc=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    clr
+    git
+  ];
+
+  buildInputs = [
+    rocblas
+    rocsparse
+    rocprim
+    rocrand
+    openmp
+    openmpi
+  ] ++ lib.optionals buildTests [
+    gtest
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    "-DROCM_PATH=${clr}"
+    "-DHIP_ROOT_DIR=${clr}"
+    "-DSUPPORT_HIP=ON"
+    "-DSUPPORT_OMP=ON"
+    "-DSUPPORT_MPI=ON"
+    "-DBUILD_CLIENTS_SAMPLES=${if buildSamples then "ON" else "OFF"}"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DAMDGPU_TARGETS=${lib.strings.concatStringsSep ";" gpuTargets}"
+  ] ++ lib.optionals buildTests [
+    "-DBUILD_CLIENTS_TESTS=ON"
+  ] ++ lib.optionals buildBenchmarks [
+    "-DBUILD_CLIENTS_BENCHMARKS=ON"
+  ];
+
+  postInstall = lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    mv $out/bin/rocalution-test $test/bin
+  '' + lib.optionalString buildBenchmarks ''
+    mkdir -p $benchmark/bin
+    mv $out/bin/rocalution-bench $benchmark/bin
+  '' + lib.optionalString buildSamples ''
+    mkdir -p $sample/bin
+    mv clients/staging/* $sample/bin
+    rm $sample/bin/rocalution-test || true
+    rm $sample/bin/rocalution-bench || true
+
+    patchelf --set-rpath \
+      $out/lib:${lib.makeLibraryPath (finalAttrs.buildInputs ++ [ clr ])} \
+      $sample/bin/*
+  '' + lib.optionalString (buildTests || buildBenchmarks) ''
+    rmdir $out/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Iterative sparse solvers for ROCm";
+    homepage = "https://github.com/ROCm/rocALUTION";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocblas/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocblas/default.nix
new file mode 100644
index 000000000000..296167bb6f28
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocblas/default.nix
@@ -0,0 +1,209 @@
+{ rocblas
+, lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, runCommand
+, cmake
+, rocm-cmake
+, clr
+, python3
+, tensile
+, msgpack
+, libxml2
+, gtest
+, gfortran
+, openmp
+, amd-blis
+, python3Packages
+, buildTensile ? true
+, buildTests ? false
+, buildBenchmarks ? false
+, tensileLogic ? "asm_full"
+, tensileCOVersion ? "default"
+, tensileSepArch ? true
+, tensileLazyLib ? true
+, tensileLibFormat ? "msgpack"
+, gpuTargets ? [ "all" ]
+}:
+
+let
+  # NOTE: Update the default GPU targets on every update
+  gfx80 = (rocblas.override {
+    gpuTargets = [
+      "gfx803"
+    ];
+  }).overrideAttrs { pname = "rocblas-tensile-gfx80"; };
+
+  gfx90 = (rocblas.override {
+    gpuTargets = [
+      "gfx900"
+      "gfx906:xnack-"
+      "gfx908:xnack-"
+      "gfx90a:xnack+"
+      "gfx90a:xnack-"
+    ];
+  }).overrideAttrs { pname = "rocblas-tensile-gfx90"; };
+
+  gfx94 = (rocblas.override {
+    gpuTargets = [
+      "gfx940"
+      "gfx941"
+      "gfx942"
+    ];
+  }).overrideAttrs { pname = "rocblas-tensile-gfx94"; };
+
+  gfx10 = (rocblas.override {
+    gpuTargets = [
+      "gfx1010"
+      "gfx1012"
+      "gfx1030"
+    ];
+  }).overrideAttrs { pname = "rocblas-tensile-gfx10"; };
+
+  gfx11 = (rocblas.override {
+    gpuTargets = [
+      "gfx1100"
+      "gfx1101"
+      "gfx1102"
+    ];
+  }).overrideAttrs { pname = "rocblas-tensile-gfx11"; };
+
+  # Unfortunately, we have to do two full builds, otherwise we get overlapping _fallback.dat files
+  fallbacks = rocblas.overrideAttrs { pname = "rocblas-tensile-fallbacks"; };
+in stdenv.mkDerivation (finalAttrs: {
+  pname = "rocblas";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ] ++ lib.optionals buildBenchmarks [
+    "benchmark"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocBLAS";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-G68d/gvBbTdNx8xR3xY+OkBm5Yxq1NFjxby9BbpOcUk=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    clr
+  ];
+
+  buildInputs = [
+    python3
+  ] ++ lib.optionals buildTensile [
+    msgpack
+    libxml2
+    python3Packages.msgpack
+    python3Packages.joblib
+  ] ++ lib.optionals buildTests [
+    gtest
+  ] ++ lib.optionals (buildTests || buildBenchmarks) [
+    gfortran
+    openmp
+    amd-blis
+  ] ++ lib.optionals (buildTensile || buildTests || buildBenchmarks) [
+    python3Packages.pyyaml
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_C_COMPILER=hipcc"
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    "-Dpython=python3"
+    "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+    "-DBUILD_WITH_TENSILE=${if buildTensile then "ON" else "OFF"}"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals buildTensile [
+    "-DVIRTUALENV_HOME_DIR=/build/source/tensile"
+    "-DTensile_TEST_LOCAL_PATH=/build/source/tensile"
+    "-DTensile_ROOT=/build/source/tensile/${python3.sitePackages}/Tensile"
+    "-DTensile_LOGIC=${tensileLogic}"
+    "-DTensile_CODE_OBJECT_VERSION=${tensileCOVersion}"
+    "-DTensile_SEPARATE_ARCHITECTURES=${if tensileSepArch then "ON" else "OFF"}"
+    "-DTensile_LAZY_LIBRARY_LOADING=${if tensileLazyLib then "ON" else "OFF"}"
+    "-DTensile_LIBRARY_FORMAT=${tensileLibFormat}"
+  ] ++ lib.optionals buildTests [
+    "-DBUILD_CLIENTS_TESTS=ON"
+  ] ++ lib.optionals buildBenchmarks [
+    "-DBUILD_CLIENTS_BENCHMARKS=ON"
+  ] ++ lib.optionals (buildTests || buildBenchmarks) [
+    "-DCMAKE_CXX_FLAGS=-I${amd-blis}/include/blis"
+  ];
+
+  postPatch = lib.optionalString (finalAttrs.pname != "rocblas") ''
+    # Return early and install tensile files manually
+    substituteInPlace library/src/CMakeLists.txt \
+      --replace "set_target_properties( TensileHost PROPERTIES OUTPUT_NAME" "return()''\nset_target_properties( TensileHost PROPERTIES OUTPUT_NAME"
+  '' + lib.optionalString (buildTensile && finalAttrs.pname == "rocblas") ''
+    # Link the prebuilt Tensile files
+    mkdir -p build/Tensile/library
+
+    for path in ${gfx80} ${gfx90} ${gfx94} ${gfx10} ${gfx11} ${fallbacks}; do
+      ln -s $path/lib/rocblas/library/* build/Tensile/library
+    done
+
+    unlink build/Tensile/library/TensileManifest.txt
+  '' + lib.optionalString buildTensile ''
+    # Tensile REALLY wants to write to the nix directory if we include it normally
+    cp -a ${tensile} tensile
+    chmod +w -R tensile
+
+    # Rewrap Tensile
+    substituteInPlace tensile/bin/{.t*,.T*,*} \
+      --replace "${tensile}" "/build/source/tensile"
+
+    substituteInPlace CMakeLists.txt \
+      --replace "include(virtualenv)" "" \
+      --replace "virtualenv_install(\''${Tensile_TEST_LOCAL_PATH})" ""
+  '';
+
+  postInstall = lib.optionalString (finalAttrs.pname == "rocblas") ''
+    ln -sf ${fallbacks}/lib/rocblas/library/TensileManifest.txt $out/lib/rocblas/library
+  '' + lib.optionalString (finalAttrs.pname != "rocblas") ''
+    mkdir -p $out/lib/rocblas/library
+    rm -rf $out/share
+  '' + lib.optionalString (finalAttrs.pname != "rocblas" && finalAttrs.pname != "rocblas-tensile-fallbacks") ''
+    rm Tensile/library/{TensileManifest.txt,*_fallback.dat}
+    mv Tensile/library/* $out/lib/rocblas/library
+  '' + lib.optionalString (finalAttrs.pname == "rocblas-tensile-fallbacks") ''
+    mv Tensile/library/{TensileManifest.txt,*_fallback.dat} $out/lib/rocblas/library
+  '' + lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    cp -a $out/bin/* $test/bin
+    rm $test/bin/*-bench || true
+  '' + lib.optionalString buildBenchmarks ''
+    mkdir -p $benchmark/bin
+    cp -a $out/bin/* $benchmark/bin
+    rm $benchmark/bin/*-test || true
+  '' + lib.optionalString (buildTests || buildBenchmarks ) ''
+    rm -rf $out/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  requiredSystemFeatures = [ "big-parallel" ];
+
+  meta = with lib; {
+    description = "BLAS implementation for ROCm platform";
+    homepage = "https://github.com/ROCm/rocBLAS";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocdbgapi/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocdbgapi/default.nix
new file mode 100644
index 000000000000..9d1006c32945
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocdbgapi/default.nix
@@ -0,0 +1,111 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, git
+, rocm-comgr
+, rocm-runtime
+, hwdata
+, texliveSmall
+, doxygen
+, graphviz
+, buildDocs ? true
+}:
+
+let
+  latex = lib.optionalAttrs buildDocs (texliveSmall.withPackages (ps: with ps; [
+    changepage
+    latexmk
+    varwidth
+    multirow
+    hanging
+    adjustbox
+    collectbox
+    stackengine
+    enumitem
+    alphalph
+    wasysym
+    sectsty
+    tocloft
+    newunicodechar
+    etoc
+    helvetic
+    wasy
+    courier
+  ]));
+in stdenv.mkDerivation (finalAttrs: {
+  pname = "rocdbgapi";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildDocs [
+    "doc"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "ROCdbgapi";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-+CxaTmxRt/RicqQddqIEHs8vvAPCMKXkWg7kbZvnUsQ=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    git
+  ] ++ lib.optionals buildDocs [
+    latex
+    doxygen
+    graphviz
+  ];
+
+  buildInputs = [
+    rocm-comgr
+    rocm-runtime
+    hwdata
+  ];
+
+  cmakeFlags = [
+    "-DPCI_IDS_PATH=${hwdata}/share/hwdata"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ];
+
+  # Unfortunately, it seems like we have to call make on this manually
+  postBuild = lib.optionalString buildDocs ''
+    export HOME=$(mktemp -d)
+    make -j$NIX_BUILD_CORES doc
+  '';
+
+  postInstall = ''
+    substituteInPlace $out/lib/cmake/amd-dbgapi/amd-dbgapi-config.cmake \
+      --replace "/build/source/build/" ""
+
+    substituteInPlace $out/lib/cmake/amd-dbgapi/amd-dbgapi-targets.cmake \
+      --replace "/build/source/build" "$out"
+  '' + lib.optionalString buildDocs ''
+    mv $out/share/html/amd-dbgapi $doc/share/doc/amd-dbgapi/html
+    rmdir $out/share/html
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Debugger support for control of execution and inspection state";
+    homepage = "https://github.com/ROCm/ROCdbgapi";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocfft/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocfft/default.nix
new file mode 100644
index 000000000000..9fd1f02398b3
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocfft/default.nix
@@ -0,0 +1,169 @@
+{ rocfft
+, lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, clr
+, python3
+, rocm-cmake
+, sqlite
+, boost
+, fftw
+, fftwFloat
+, gtest
+, openmp
+, rocrand
+, gpuTargets ? [ ]
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocfft";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocFFT";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-6Gjsy14GeR08VqnNmFhu8EyYDnQ+VZRlg+u9MAAWfHc=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    clr
+    python3
+    rocm-cmake
+  ];
+
+  buildInputs = [ sqlite ];
+
+  cmakeFlags = [
+    "-DCMAKE_C_COMPILER=hipcc"
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    "-DSQLITE_USE_SYSTEM_PACKAGE=ON"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ];
+
+  passthru = {
+    test = stdenv.mkDerivation {
+      pname = "${finalAttrs.pname}-test";
+      inherit (finalAttrs) version src;
+
+      sourceRoot = "${finalAttrs.src.name}/clients/tests";
+
+      nativeBuildInputs = [
+        cmake
+        clr
+        rocm-cmake
+      ];
+
+      buildInputs = [
+        boost
+        fftw
+        fftwFloat
+        finalAttrs.finalPackage
+        gtest
+        openmp
+        rocrand
+      ];
+
+      cmakeFlags = [
+        "-DCMAKE_C_COMPILER=hipcc"
+        "-DCMAKE_CXX_COMPILER=hipcc"
+      ];
+
+      postInstall = ''
+        rm -r "$out/lib/fftw"
+        rmdir "$out/lib"
+      '';
+    };
+
+    benchmark = stdenv.mkDerivation {
+      pname = "${finalAttrs.pname}-benchmark";
+      inherit (finalAttrs) version src;
+
+      sourceRoot = "${finalAttrs.src.name}/clients/rider";
+
+      nativeBuildInputs = [
+        cmake
+        clr
+        rocm-cmake
+      ];
+
+      buildInputs = [
+        boost
+        finalAttrs.finalPackage
+        openmp
+        (python3.withPackages (ps: with ps; [
+          pandas
+          scipy
+        ]))
+        rocrand
+      ];
+
+      cmakeFlags = [
+        "-DCMAKE_C_COMPILER=hipcc"
+        "-DCMAKE_CXX_COMPILER=hipcc"
+      ];
+
+      postInstall = ''
+        cp -a ../../../scripts/perf "$out/bin"
+      '';
+    };
+
+    samples = stdenv.mkDerivation {
+      pname = "${finalAttrs.pname}-samples";
+      inherit (finalAttrs) version src;
+
+      sourceRoot = "${finalAttrs.src.name}/clients/samples";
+
+      nativeBuildInputs = [
+        cmake
+        clr
+        rocm-cmake
+      ];
+
+      buildInputs = [
+        boost
+        finalAttrs.finalPackage
+        openmp
+        rocrand
+      ];
+
+      cmakeFlags = [
+        "-DCMAKE_C_COMPILER=hipcc"
+        "-DCMAKE_CXX_COMPILER=hipcc"
+      ];
+
+      installPhase = ''
+        runHook preInstall
+        mkdir "$out"
+        cp -a bin "$out"
+        runHook postInstall
+      '';
+    };
+
+    updateScript = rocmUpdateScript {
+      name = finalAttrs.pname;
+      owner = finalAttrs.src.owner;
+      repo = finalAttrs.src.repo;
+    };
+  };
+
+  requiredSystemFeatures = [ "big-parallel" ];
+
+  meta = with lib; {
+    description = "FFT implementation for ROCm";
+    homepage = "https://github.com/ROCm/rocFFT";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ kira-bruneau ] ++ teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocgdb/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocgdb/default.nix
new file mode 100644
index 000000000000..919b3e70f6e0
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocgdb/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, pkg-config
+, texinfo
+, bison
+, flex
+, zlib
+, elfutils
+, gmp
+, ncurses
+, expat
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocgdb";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "ROCgdb";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-XeX/k8gfo9HgcUSIjs35C7IqCmFhvBOqQJSOoPF6HK4=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    texinfo # For makeinfo
+    bison
+    flex
+  ];
+
+  buildInputs = [
+    zlib
+    elfutils
+    gmp
+    ncurses
+    expat
+  ];
+
+  # `-Wno-format-nonliteral` doesn't work
+  env.NIX_CFLAGS_COMPILE = "-Wno-error=format-security";
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "ROCm source-level debugger for Linux, based on GDB";
+    homepage = "https://github.com/ROCm/ROCgdb";
+    license = with licenses; [ gpl2 gpl3 bsd3 ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocm-cmake/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocm-cmake/default.nix
new file mode 100644
index 000000000000..cd3fd9c035da
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocm-cmake/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocm-cmake";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocm-cmake";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-qSjWT0KOQ5oDV06tfnKN+H/JzdoOnR9KY0c+SjvDepM=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "CMake modules for common build tasks for the ROCm stack";
+    homepage = "https://github.com/ROCm/rocm-cmake";
+    license = licenses.mit;
+    maintainers = teams.rocm.members;
+    platforms = platforms.unix;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocm-comgr/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocm-comgr/default.nix
new file mode 100644
index 000000000000..c610b63abf68
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocm-comgr/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, rocm-device-libs
+, libxml2
+}:
+
+let
+  llvmNativeTarget =
+    if stdenv.isx86_64 then "X86"
+    else if stdenv.isAarch64 then "AArch64"
+    else throw "Unsupported ROCm LLVM platform";
+in stdenv.mkDerivation (finalAttrs: {
+  pname = "rocm-comgr";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "ROCm-CompilerSupport";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-9HuNU/k+kPJMlzqOTM20gm6SAOWJe9tpAZXEj4erdmI=";
+  };
+
+  sourceRoot = "${finalAttrs.src.name}/lib/comgr";
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+  ];
+
+  buildInputs = [
+    rocm-device-libs
+    libxml2
+  ];
+
+  cmakeFlags = [ "-DLLVM_TARGETS_TO_BUILD=AMDGPU;X86" ];
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "APIs for compiling and inspecting AMDGPU code objects";
+    homepage = "https://github.com/ROCm/ROCm-CompilerSupport/tree/amd-stg-open/lib/comgr";
+    license = licenses.ncsa;
+    maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocm-core/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocm-core/default.nix
new file mode 100644
index 000000000000..2601918d9165
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocm-core/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocm-core";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocm-core";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-sgL1UMt3o01zA8v41dyCG1fAsK/PkTRsHQJOvlNatZ4=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  cmakeFlags = [ "-DROCM_VERSION=${finalAttrs.version}" ];
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+    page = "tags?per_page=1";
+    filter = ".[0].name | split(\"-\") | .[1]";
+  };
+
+  meta = with lib; {
+    description = "Utility for getting the ROCm release version";
+    homepage = "https://github.com/ROCm/rocm-core";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocm-device-libs/cmake.patch b/nixpkgs/pkgs/development/rocm-modules/6/rocm-device-libs/cmake.patch
new file mode 100644
index 000000000000..500ff37a9905
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocm-device-libs/cmake.patch
@@ -0,0 +1,43 @@
+diff --git a/cmake/Packages.cmake b/cmake/Packages.cmake
+index 07c60eb..c736b3e 100644
+--- a/cmake/Packages.cmake
++++ b/cmake/Packages.cmake
+@@ -12,24 +12,29 @@ set_target_properties(${target} PROPERTIES
+   IMPORTED_LOCATION \"${target_path}\")")
+ endforeach()
+ configure_file(AMDDeviceLibsConfig.cmake.in
+-  ${PACKAGE_PREFIX}/AMDDeviceLibsConfig.cmake
++  lib/cmake/AMDDeviceLibs/AMDDeviceLibsConfig.cmake
+   @ONLY)
+ 
+ 
+ set(install_path_suffix "amdgcn/bitcode")
+ 
+ # Generate the install-tree package.
+-# We do not know the absolute path to the intall tree until we are installed,
+-# so we calculate it dynamically in AMD_DEVICE_LIBS_PREFIX_CODE and use
+-# relative paths in the target imports in AMD_DEVICE_LIBS_TARGET_CODE.
+-set(AMD_DEVICE_LIBS_PREFIX_CODE "
++if(IS_ABSOLUTE "${CMAKE_INSTALL_PREFIX}")
++  set(AMD_DEVICE_LIBS_PREFIX_CODE "set(AMD_DEVICE_LIBS_PREFIX \"${CMAKE_INSTALL_PREFIX}\")")
++else()
++  # We do not know the absolute path to the install tree until we are installed,
++  # so we calculate it dynamically in AMD_DEVICE_LIBS_PREFIX_CODE and use
++  # relative paths in the target imports in AMD_DEVICE_LIBS_TARGET_CODE.
++  set(AMD_DEVICE_LIBS_PREFIX_CODE "
+ # Derive absolute install prefix from config file path.
+ get_filename_component(AMD_DEVICE_LIBS_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)")
+-string(REGEX REPLACE "/" ";" count "${PACKAGE_PREFIX}")
+-foreach(p ${count})
+-  set(AMD_DEVICE_LIBS_PREFIX_CODE "${AMD_DEVICE_LIBS_PREFIX_CODE}
++  string(REGEX REPLACE "/" ";" count "${PACKAGE_PREFIX}")
++  foreach(p ${count})
++    set(AMD_DEVICE_LIBS_PREFIX_CODE "${AMD_DEVICE_LIBS_PREFIX_CODE}
+ get_filename_component(AMD_DEVICE_LIBS_PREFIX \"\${AMD_DEVICE_LIBS_PREFIX}\" PATH)")
+-endforeach()
++  endforeach()
++endif()
++
+ set(AMD_DEVICE_LIBS_TARGET_CODE)
+ foreach(target ${AMDGCN_LIB_LIST})
+   get_target_property(target_name ${target} ARCHIVE_OUTPUT_NAME)
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocm-device-libs/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocm-device-libs/default.nix
new file mode 100644
index 000000000000..defcf2e60ecb
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocm-device-libs/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, libxml2
+}:
+
+let
+  llvmNativeTarget =
+    if stdenv.isx86_64 then "X86"
+    else if stdenv.isAarch64 then "AArch64"
+    else throw "Unsupported ROCm LLVM platform";
+in stdenv.mkDerivation (finalAttrs: {
+  pname = "rocm-device-libs";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "ROCm-Device-Libs";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-7XG7oSkJ3EPWTYGea0I50eB1/DPMD5agmjctxZYTbLQ=";
+  };
+
+  patches = [ ./cmake.patch ];
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+  ];
+
+  buildInputs = [ libxml2 ];
+  cmakeFlags = [ "-DLLVM_TARGETS_TO_BUILD=AMDGPU;${llvmNativeTarget}" ];
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Set of AMD-specific device-side language runtime libraries";
+    homepage = "https://github.com/ROCm/ROCm-Device-Libs";
+    license = licenses.ncsa;
+    maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocm-docs-core/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocm-docs-core/default.nix
new file mode 100644
index 000000000000..2462ac62110e
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocm-docs-core/default.nix
@@ -0,0 +1,66 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gitUpdater
+, buildPythonPackage
+, setuptools
+, beautifulsoup4
+, gitpython
+, pydata-sphinx-theme
+, pygithub
+, sphinx
+, breathe
+, myst-parser
+, sphinx-book-theme
+, sphinx-copybutton
+, sphinx-design
+, sphinx-external-toc
+, sphinx-notfound-page
+, pyyaml
+, fastjsonschema
+}:
+
+# FIXME: Move to rocmPackages_common
+buildPythonPackage rec {
+  pname = "rocm-docs-core";
+  version = "0.34.0";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocm-docs-core";
+    rev = "v${version}";
+    hash = "sha256-p75g68Dn0RrjX9vYY+AWNu0qOKTLsBCnOZekMO0Usho=";
+  };
+
+  buildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    beautifulsoup4
+    gitpython
+    pydata-sphinx-theme
+    pygithub
+    sphinx
+    breathe
+    myst-parser
+    sphinx-book-theme
+    sphinx-copybutton
+    sphinx-design
+    sphinx-external-toc
+    sphinx-notfound-page
+    pyyaml
+    fastjsonschema
+  ];
+
+  pythonImportsCheck = [ "rocm_docs" ];
+
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
+
+  meta = with lib; {
+    description = "ROCm Documentation Python package for ReadTheDocs build standardization";
+    homepage = "https://github.com/ROCm/rocm-docs-core";
+    license = with licenses; [ mit cc-by-40 ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocm-runtime/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocm-runtime/default.nix
new file mode 100644
index 000000000000..8c3d0cdc976d
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocm-runtime/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, pkg-config
+, cmake
+, xxd
+, rocm-device-libs
+, rocm-thunk
+, libelf
+, libdrm
+, numactl
+, valgrind
+, libxml2
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocm-runtime";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "ROCR-Runtime";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-xNMG954HI9SOfvYYB/62fhmm9mmR4I10uHP2nqn9EgI=";
+  };
+
+  sourceRoot = "${finalAttrs.src.name}/src";
+
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    xxd
+  ];
+
+  buildInputs = [
+    rocm-thunk
+    libelf
+    libdrm
+    numactl
+    valgrind
+    libxml2
+  ];
+
+  postPatch = ''
+    patchShebangs image/blit_src/create_hsaco_ascii_file.sh
+    patchShebangs core/runtime/trap_handler/create_trap_handler_header.sh
+    patchShebangs core/runtime/blit_shaders/create_blit_shader_header.sh
+
+    substituteInPlace CMakeLists.txt \
+      --replace 'hsa/include/hsa' 'include/hsa'
+
+    # We compile clang before rocm-device-libs, so patch it in afterwards
+    # Replace object version: https://github.com/ROCm/ROCR-Runtime/issues/166 (TODO: Remove on LLVM update?)
+    substituteInPlace image/blit_src/CMakeLists.txt \
+      --replace '-cl-denorms-are-zero' '-cl-denorms-are-zero --rocm-device-lib-path=${rocm-device-libs}/amdgcn/bitcode' \
+      --replace '-mcode-object-version=4' '-mcode-object-version=5'
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Platform runtime for ROCm";
+    homepage = "https://github.com/ROCm/ROCR-Runtime";
+    license = with licenses; [ ncsa ];
+    maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocm-smi/cmake.patch b/nixpkgs/pkgs/development/rocm-modules/6/rocm-smi/cmake.patch
new file mode 100644
index 000000000000..2634ea46a1f8
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocm-smi/cmake.patch
@@ -0,0 +1,89 @@
+diff --git a/rocm_smi-backward-compat.cmake b/rocm_smi-backward-compat.cmake
+index aa8fd9c..59afce5 100644
+--- a/rocm_smi-backward-compat.cmake
++++ b/rocm_smi-backward-compat.cmake
+@@ -72,7 +72,12 @@ function(generate_wrapper_header)
+     set(include_guard "${include_guard}COMGR_WRAPPER_INCLUDE_${INC_GAURD_NAME}_H")
+     #set #include statement
+     get_filename_component(file_name ${header_file} NAME)
+-    set(include_statements "${include_statements}#include \"../../../${CMAKE_INSTALL_INCLUDEDIR}/${ROCM_SMI}/${file_name}\"\n")
++    if(IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR})
++      set(include_dir "${CMAKE_INSTALL_INCLUDEDIR}")
++    else()
++      set(include_dir "../../../${CMAKE_INSTALL_INCLUDEDIR}")
++    endif()
++    set(include_statements "${include_statements}#include \"${include_dir}/${ROCM_SMI}/${file_name}\"\n")
+     configure_file(${RSMI_WRAPPER_DIR}/header.hpp.in ${RSMI_WRAPPER_INC_DIR}/${file_name})
+     unset(include_guard)
+     unset(include_statements)
+@@ -90,7 +95,12 @@ function(generate_wrapper_header)
+     set(include_guard "${include_guard}COMGR_WRAPPER_INCLUDE_${INC_GAURD_NAME}_H")
+     #set #include statement
+     get_filename_component(file_name ${header_file} NAME)
+-    set(include_statements "${include_statements}#include \"../../../${CMAKE_INSTALL_INCLUDEDIR}/${OAM_TARGET_NAME}/${file_name}\"\n")
++    if(IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR})
++      set(include_dir "${CMAKE_INSTALL_INCLUDEDIR}")
++    else()
++      set(include_dir "../../../${CMAKE_INSTALL_INCLUDEDIR}")
++    endif()
++    set(include_statements "${include_statements}#include \"${include_dir}/${OAM_TARGET_NAME}/${file_name}\"\n")
+     configure_file(${RSMI_WRAPPER_DIR}/header.hpp.in ${OAM_WRAPPER_INC_DIR}/${file_name})
+     unset(include_guard)
+     unset(include_statements)
+@@ -123,11 +133,16 @@ function(create_library_symlink)
+     set(library_files "${LIB_RSMI}")
+   endif()
+ 
++  if(IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR})
++    set(install_libdir "${CMAKE_INSTALL_LIBDIR}")
++  else()
++    set(install_libdir "../../${CMAKE_INSTALL_LIBDIR}")
++  endif()
+   foreach(file_name ${library_files})
+      add_custom_target(link_${file_name} ALL
+                   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+                   COMMAND ${CMAKE_COMMAND} -E create_symlink
+-                  ../../${CMAKE_INSTALL_LIBDIR}/${file_name} ${RSMI_WRAPPER_LIB_DIR}/${file_name})
++                  ${install_libdir}/${file_name} ${RSMI_WRAPPER_LIB_DIR}/${file_name})
+   endforeach()
+ 
+   file(MAKE_DIRECTORY ${OAM_WRAPPER_LIB_DIR})
+@@ -151,11 +166,16 @@ function(create_library_symlink)
+     set(library_files "${LIB_OAM}")
+   endif()
+ 
++  if(IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR})
++    set(install_libdir "${CMAKE_INSTALL_LIBDIR}")
++  else()
++    set(install_libdir "../../${CMAKE_INSTALL_LIBDIR}")
++  endif()
+   foreach(file_name ${library_files})
+      add_custom_target(link_${file_name} ALL
+                   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+                   COMMAND ${CMAKE_COMMAND} -E create_symlink
+-                  ../../${CMAKE_INSTALL_LIBDIR}/${file_name} ${OAM_WRAPPER_LIB_DIR}/${file_name})
++                  ${install_libdir}/${file_name} ${OAM_WRAPPER_LIB_DIR}/${file_name})
+   endforeach()
+ 
+ endfunction()
+diff --git a/rocm_smi/CMakeLists.txt b/rocm_smi/CMakeLists.txt
+index c594eeb..d3ed39d 100755
+--- a/rocm_smi/CMakeLists.txt
++++ b/rocm_smi/CMakeLists.txt
+@@ -105,10 +105,15 @@ endif ()
+ #file reorganization changes
+ #rocm_smi.py moved to libexec/rocm_smi. so creating rocm-smi symlink
+ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
++if(IS_ABSOLUTE ${CMAKE_INSTALL_LIBEXECDIR})
++  set(install_libexecdir "${CMAKE_INSTALL_LIBEXECDIR}")
++else()
++  set(install_libexecdir "../${CMAKE_INSTALL_LIBEXECDIR}")
++endif()
+ add_custom_target(link-rocm-smi ALL
+                   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+                   COMMAND ${CMAKE_COMMAND} -E create_symlink
+-                  ../${CMAKE_INSTALL_LIBEXECDIR}/${ROCM_SMI}/rocm_smi.py ${CMAKE_CURRENT_BINARY_DIR}/bin/rocm-smi)
++                  ${install_libexecdir}/${ROCM_SMI}/rocm_smi.py ${CMAKE_CURRENT_BINARY_DIR}/bin/rocm-smi)
+ 
+ ## Add the install directives for the runtime library.
+ install(TARGETS ${ROCM_SMI_TARGET}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocm-smi/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocm-smi/default.nix
new file mode 100644
index 000000000000..aeb38e4ad8de
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocm-smi/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, wrapPython
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocm-smi";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocm_smi_lib";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-fS52hpTv1WEycwkGZLXjz383WJWzyk8RvJRshEQSG/A=";
+  };
+
+  patches = [ ./cmake.patch ];
+
+  nativeBuildInputs = [
+    cmake
+    wrapPython
+  ];
+
+  cmakeFlags = [
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ];
+
+  postInstall = ''
+    wrapPythonProgramsIn $out
+    mv $out/libexec/rocm_smi/.rsmiBindings.py-wrapped $out/libexec/rocm_smi/rsmiBindings.py
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "System management interface for AMD GPUs supported by ROCm";
+    homepage = "https://github.com/ROCm/rocm_smi_lib";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members;
+    platforms = [ "x86_64-linux" ];
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocm-thunk/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocm-thunk/default.nix
new file mode 100644
index 000000000000..99a1d3c542d1
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocm-thunk/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, pkg-config
+, cmake
+, libdrm
+, numactl
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocm-thunk";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "ROCT-Thunk-Interface";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-F6Qi+A9DuSx2e4WSfp4cnniKr0CkCZcZqsKwQmmZHhk=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+  ];
+
+  buildInputs = [
+    libdrm
+    numactl
+  ];
+
+  cmakeFlags = [
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ];
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Radeon open compute thunk interface";
+    homepage = "https://github.com/ROCm/ROCT-Thunk-Interface";
+    license = with licenses; [ bsd2 mit ];
+    maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocminfo/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocminfo/default.nix
new file mode 100644
index 000000000000..cb1df3f1fd43
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocminfo/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, rocm-runtime
+, busybox
+, python3
+, gnugrep
+  # rocminfo requires that the calling user have a password and be in
+  # the video group. If we let rocm_agent_enumerator rely upon
+  # rocminfo's output, then it, too, has those requirements. Instead,
+  # we can specify the GPU targets for this system (e.g. "gfx803" for
+  # Polaris) such that no system call is needed for downstream
+  # compilers to determine the desired target.
+, defaultTargets ? []
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  version = "6.0.2";
+  pname = "rocminfo";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocminfo";
+    rev = "rocm-${finalAttrs.version}";
+    sha256 = "sha256-k0QeCyQcarGbAh4ft8Y7JBK6l2nWxDUc20XoYmtrMMs=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+  ];
+
+  buildInputs = [ rocm-runtime ];
+  propagatedBuildInputs = [ python3 ];
+  cmakeFlags = [ "-DROCRTST_BLD_TYPE=Release" ];
+
+  prePatch = ''
+    patchShebangs rocm_agent_enumerator
+    sed 's,lsmod | grep ,${busybox}/bin/lsmod | ${gnugrep}/bin/grep ,' -i rocminfo.cc
+  '';
+
+  postInstall = lib.optionalString (defaultTargets != [ ]) ''
+    echo '${lib.concatStringsSep "\n" defaultTargets}' > $out/bin/target.lst
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "ROCm Application for Reporting System Info";
+    homepage = "https://github.com/ROCm/rocminfo";
+    license = licenses.ncsa;
+    maintainers = with maintainers; [ lovesegfault ] ++ teams.rocm.members;
+    platforms = platforms.linux;
+    broken = stdenv.isAarch64 || versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocmlir/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocmlir/default.nix
new file mode 100644
index 000000000000..d8747009a10e
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocmlir/default.nix
@@ -0,0 +1,136 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, rocminfo
+, ninja
+, clr
+, git
+, libxml2
+, libedit
+, zstd
+, zlib
+, ncurses
+, python3Packages
+, buildRockCompiler ? false
+, buildTests ? false # `argument of type 'NoneType' is not iterable`
+}:
+
+# Theoretically, we could have our MLIR have an output
+# with the source and built objects so that we can just
+# use it as the external LLVM repo for this
+let
+  suffix =
+    if buildRockCompiler
+    then "-rock"
+    else "";
+
+  llvmNativeTarget =
+    if stdenv.isx86_64 then "X86"
+    else if stdenv.isAarch64 then "AArch64"
+    else throw "Unsupported ROCm LLVM platform";
+in stdenv.mkDerivation (finalAttrs: {
+  pname = "rocmlir${suffix}";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals (!buildRockCompiler) [
+    "external"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocMLIR";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-AypY0vL8Ij1zLycwpG2EPWWl4utp4ejXpAK0Jj/UvrA=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    ninja
+    clr
+    python3Packages.python
+    python3Packages.tomli
+  ];
+
+  buildInputs = [
+    git
+    libxml2
+    libedit
+  ];
+
+  propagatedBuildInputs = [
+    zstd
+    zlib
+    ncurses
+  ];
+
+  cmakeFlags = [
+    "-DLLVM_TARGETS_TO_BUILD=AMDGPU;${llvmNativeTarget}"
+    "-DLLVM_ENABLE_ZSTD=ON"
+    "-DLLVM_ENABLE_ZLIB=ON"
+    "-DLLVM_ENABLE_TERMINFO=ON"
+    "-DROCM_PATH=${clr}"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals buildRockCompiler [
+    "-DBUILD_FAT_LIBROCKCOMPILER=ON"
+  ] ++ lib.optionals (!buildRockCompiler) [
+    "-DROCM_TEST_CHIPSET=gfx000"
+  ];
+
+  postPatch = ''
+    patchShebangs mlir
+    patchShebangs external/llvm-project/mlir/lib/Dialect/GPU/AmdDeviceLibsIncGen.py
+
+    # remove when no longer required
+    substituteInPlace mlir/test/{e2e/generateE2ETest.py,fusion/e2e/generate-fusion-tests.py} \
+      --replace-fail "\"/opt/rocm/bin" "\"${rocminfo}/bin"
+
+    substituteInPlace mlir/utils/performance/common/CMakeLists.txt \
+      --replace-fail "/opt/rocm" "${clr}"
+  '';
+
+  dontBuild = true;
+  doCheck = true;
+
+  # Certain libs aren't being generated, try enabling tests next update
+  checkTarget = if buildRockCompiler
+                then "librockCompiler"
+                else if buildTests
+                then "check-rocmlir"
+                else "check-rocmlir-build-only";
+
+  postInstall = let
+    libPath = lib.makeLibraryPath [ zstd zlib ncurses clr stdenv.cc.cc ];
+  in lib.optionals (!buildRockCompiler) ''
+    mkdir -p $external/lib
+    cp -a external/llvm-project/llvm/lib/{*.a*,*.so*} $external/lib
+    patchelf --set-rpath $external/lib:$out/lib:${libPath} $external/lib/*.so*
+    patchelf --set-rpath $out/lib:$external/lib:${libPath} $out/{bin/*,lib/*.so*}
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+    page = "tags?per_page=2";
+    filter = ".[1].name | split(\"-\") | .[1]";
+  };
+
+  meta = with lib; {
+    description = "MLIR-based convolution and GEMM kernel generator";
+    homepage = "https://github.com/ROCm/rocMLIR";
+    license = with licenses; [ asl20 ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocprim/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocprim/default.nix
new file mode 100644
index 000000000000..e9996cae61e7
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocprim/default.nix
@@ -0,0 +1,86 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, clr
+, gtest
+, gbenchmark
+, buildTests ? false
+, buildBenchmarks ? false
+, gpuTargets ? [ ]
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocprim";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ] ++ lib.optionals buildBenchmarks [
+    "benchmark"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocPRIM";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-nWvq26qRPZ6Au1rc5cR74TKArcdUFg7O9djFi8SvMeM=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    clr
+  ];
+
+  buildInputs = lib.optionals buildTests [
+    gtest
+  ] ++ lib.optionals buildBenchmarks [
+    gbenchmark
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ] ++ lib.optionals buildTests [
+    "-DBUILD_TEST=ON"
+  ] ++ lib.optionals buildBenchmarks [
+    "-DBUILD_BENCHMARK=ON"
+  ];
+
+  postInstall = lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    mv $out/bin/test_* $test/bin
+    mv $out/bin/rocprim $test/bin
+  '' + lib.optionalString buildBenchmarks ''
+    mkdir -p $benchmark/bin
+    mv $out/bin/benchmark_* $benchmark/bin
+  '' + lib.optionalString (buildTests || buildBenchmarks) ''
+    rmdir $out/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "ROCm parallel primitives";
+    homepage = "https://github.com/ROCm/rocPRIM";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/0000-dont-install-tests-hsaco.patch b/nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/0000-dont-install-tests-hsaco.patch
new file mode 100644
index 000000000000..70550d0119a9
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/0000-dont-install-tests-hsaco.patch
@@ -0,0 +1,15 @@
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 46efbd5..ca2cc3b 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -127,10 +127,6 @@ function(generate_hsaco TARGET_ID INPUT_FILE OUTPUT_FILE)
+         DEPENDS ${INPUT_FILE} clang
+         COMMENT "Building ${OUTPUT_FILE}..."
+         VERBATIM)
+-    install(
+-        FILES ${PROJECT_BINARY_DIR}/${OUTPUT_FILE}
+-        DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/tests-v1
+-        COMPONENT tests)
+     set(HSACO_TARGET_LIST
+         ${HSACO_TARGET_LIST} ${PROJECT_BINARY_DIR}/${OUTPUT_FILE}
+         PARENT_SCOPE)
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/0001-fix-shell-scripts.patch b/nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/0001-fix-shell-scripts.patch
new file mode 100644
index 000000000000..6dfc8e0d6e55
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/0001-fix-shell-scripts.patch
@@ -0,0 +1,109 @@
+diff --git a/bin/rocprofv2 b/bin/rocprofv2
+index d0445e7..6079af8 100755
+--- a/bin/rocprofv2
++++ b/bin/rocprofv2
+@@ -7,7 +7,8 @@ if [ -n "${ROCP_PRELOAD}" ]; then LD_PRELOAD="${ROCP_PRELOAD}"; fi
+ 
+ CURRENT_DIR="$( dirname -- "$0"; )";
+ ROCPROFV2_DIR=$(dirname -- $(realpath ${BASH_SOURCE[0]}));
+-ROCM_DIR=$( dirname -- "$ROCPROFV2_DIR"; )
++ROCPROFILER_DIR=$( dirname -- "$ROCPROFV2_DIR"; )
++ROCM_DIR=@rocmtoolkit_merged@
+ PLUGIN_LIST=("ctf" "perfetto" "file" "att" "cli")
+ RUN_FROM_BUILD=0
+ if [[ $ROCPROFV2_DIR == *"/build"* ]]; then
+@@ -15,7 +16,7 @@ if [[ $ROCPROFV2_DIR == *"/build"* ]]; then
+   ROCM_DIR=$ROCPROFV2_DIR
+ fi
+ 
+-export ROCPROFILER_METRICS_PATH=$ROCM_DIR/libexec/rocprofiler/counters/derived_counters.xml
++export ROCPROFILER_METRICS_PATH=$ROCPROFILER_DIR/libexec/rocprofiler/counters/derived_counters.xml
+ export LD_LIBRARY_PATH=$ROCM_DIR/lib:$LD_LIBRARY_PATH
+ 
+ # Define color code
+@@ -83,7 +84,7 @@ while [ 1 ]; do
+       exit 1
+     fi
+   elif [[ "$1" == "--list-counters" ]]; then
+-    export LD_PRELOAD=$LD_PRELOAD:$ROCM_DIR/lib/rocprofiler/librocprofiler_tool.so
++    export LD_PRELOAD=$LD_PRELOAD:$ROC_DIR/lib/rocprofiler/librocprofiler_tool.so
+     eval $ROCM_DIR/libexec/rocprofiler/ctrl
+     exit 1
+   elif [[ "$1" == "-i" || "$1" == "--input" ]]; then
+@@ -221,7 +222,7 @@ while [ 1 ]; do
+       if [ $RUN_FROM_BUILD == 1 ]; then
+         ATT_PATH=$ROCM_DIR/plugin/att/att/att.py
+       else
+-        ATT_PATH=$ROCM_DIR/libexec/rocprofiler/att/att.py
++        ATT_PATH=$ROCPROFILER_DIR/libexec/rocprofiler/att/att.py
+         export ROCPROFV2_ATT_LIB_PATH=$ROCM_DIR/lib/hsa-amd-aqlprofile/librocprofv2_att.so
+       fi
+       ATT_ARGV=$3
+@@ -294,13 +295,13 @@ if [ -n "$PMC_LINES" ] && [ ! -n "$ATT_ARGV" ]; then
+       export OUTPUT_PATH=$FINAL_PATH
+     fi
+     let COUNTER=COUNTER+1
+-    LD_PRELOAD=$LD_PRELOAD:$ROCM_DIR/lib/rocprofiler/librocprofiler_tool.so $*
++    LD_PRELOAD=$LD_PRELOAD:$ROCPROFILER_DIR/lib/rocprofiler/librocprofiler_tool.so $*
+     if [ -n "$OUTPUT_PATH" ]; then
+       echo -e "\nThe output path for the following counters: $OUTPUT_PATH"
+     fi
+   done
+ else
+-  LD_PRELOAD=$LD_PRELOAD:$ROCM_DIR/lib/rocprofiler/librocprofiler_tool.so $*
++  LD_PRELOAD=$LD_PRELOAD:$ROCPROFILER_DIR/lib/rocprofiler/librocprofiler_tool.so $*
+ fi
+ 
+ get_pmc_results_txt_path() {
+diff --git a/bin/rpl_run.sh b/bin/rpl_run.sh
+index 6b236ed..a9c233c 100755
+--- a/bin/rpl_run.sh
++++ b/bin/rpl_run.sh
+@@ -25,16 +25,17 @@
+ ROCPROF_ARGS="$*"
+ time_stamp=`date +%y%m%d_%H%M%S`
+ BIN_DIR=$(dirname $(realpath ${BASH_SOURCE[0]}))
+-ROOT_DIR=$(dirname $BIN_DIR)
++ROCPROFILER_DIR=$(dirname $BIN_DIR)
++ROOT_DIR=@rocmtoolkit_merged@
+ RUN_DIR=`pwd`
+ TMP_DIR="/tmp"
+ DATA_DIR="rpl_data_${time_stamp}_$$"
+ 
+-RPL_PATH=$ROOT_DIR/lib
++RPL_PATH=$ROCPROFILER_DIR/lib
+ TLIB_PATH=$RPL_PATH/rocprofiler
+ TTLIB_PATH=$ROOT_DIR/lib/roctracer
+ ROCM_LIB_PATH=$ROOT_DIR/lib
+-PROF_BIN_DIR=$ROOT_DIR/libexec/rocprofiler
++PROF_BIN_DIR=$ROCPROFILER_DIR/libexec/rocprofiler
+ 
+ # check if rocprof is supportd on this gpu arch
+ V1_SUPPORTED_GPU_ARCHS=("gfx80x","gfx90x","gfx10xx","gfx94x")
+@@ -80,7 +81,7 @@ unset ROCP_PROXY_QUEUE
+ # Disable AQL-profile read API
+ export AQLPROFILE_READ_API=0
+ # ROC Profiler package path
+-export ROCP_PACKAGE_DIR=$ROOT_DIR
++export ROCP_PACKAGE_DIR=$ROCPROFILER_DIR
+ # enabled SPM KFD mode
+ export ROCP_SPM_KFD_MODE=1
+ 
+@@ -400,7 +401,7 @@ unset_v1_envs() {
+ 
+ ################################################################################################
+ # main
+-echo "RPL: on '$time_stamp' from '$ROOT_DIR' in '$RUN_DIR'"
++echo "RPL: on '$time_stamp' from '$ROCPROFILER_DIR' in '$RUN_DIR'"
+ # Parsing arguments
+ if [ -z "$1" ] ; then
+   usage
+@@ -633,7 +634,7 @@ elif [ "$input_type" = "txt" -o "$input_type" = "none" ] ; then
+   else
+     echo "<metric></metric>" > $RES_DIR/input.xml
+   fi
+-  input_list=`/bin/ls $RES_DIR/input*.xml`
++  input_list=`ls $RES_DIR/input*.xml`
+   export ROCPROFILER_SESS=$RES_DIR
+ else
+   fatal "Bad input file type '$INPUT_FILE'"
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/0002-include-stdint-in-version.patch b/nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/0002-include-stdint-in-version.patch
new file mode 100644
index 000000000000..4e4aaad463d1
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/0002-include-stdint-in-version.patch
@@ -0,0 +1,12 @@
+diff --git a/src/tools/versioning/version.cpp b/src/tools/versioning/version.cpp
+index 11bdd00..339743c 100644
+--- a/src/tools/versioning/version.cpp
++++ b/src/tools/versioning/version.cpp
+@@ -1,6 +1,7 @@
+ #include <rocm-core/rocm_version.h>
+ #include <iostream>
+ #include <sstream>
++#include <stdint.h>
+ 
+ 
+ int main() {
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/default.nix
new file mode 100644
index 000000000000..ca6291992d85
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocprofiler/default.nix
@@ -0,0 +1,140 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, symlinkJoin
+, substituteAll
+, cmake
+, clang
+, clr
+, rocm-core
+, rocm-thunk
+, rocm-device-libs
+, roctracer
+, rocdbgapi
+, rocm-smi
+, hsa-amd-aqlprofile-bin
+, numactl
+, libpciaccess
+, libxml2
+, elfutils
+, mpi
+, systemd
+, gtest
+, python3Packages
+, gpuTargets ? clr.gpuTargets
+}:
+
+let
+  rocmtoolkit-merged = symlinkJoin {
+    name = "rocmtoolkit-merged";
+
+    paths = [
+      rocm-core
+      rocm-thunk
+      rocm-device-libs
+      roctracer
+      rocdbgapi
+      rocm-smi
+      hsa-amd-aqlprofile-bin
+      clr
+    ];
+
+    postBuild = ''
+      rm -rf $out/nix-support
+    '';
+  };
+in stdenv.mkDerivation (finalAttrs: {
+  pname = "rocprofiler";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocprofiler";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-yzgw9g5cHAZpdbU44+1ScZyUcZ2I4GGfjbm9GSqCClk=";
+  };
+
+  patches = [
+    # These just simply won't build
+    ./0000-dont-install-tests-hsaco.patch
+
+    # Fix bad paths
+    (substituteAll {
+      src = ./0001-fix-shell-scripts.patch;
+      rocmtoolkit_merged = rocmtoolkit-merged;
+    })
+
+    # Fix for missing uint32_t not defined
+    ./0002-include-stdint-in-version.patch
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    clang
+    clr
+    python3Packages.lxml
+    python3Packages.cppheaderparser
+    python3Packages.pyyaml
+    python3Packages.barectf
+    python3Packages.pandas
+  ];
+
+  buildInputs = [
+    numactl
+    libpciaccess
+    libxml2
+    elfutils
+    mpi
+    systemd
+    gtest
+  ];
+
+  propagatedBuildInputs = [ rocmtoolkit-merged ];
+
+  cmakeFlags = [
+    "-DCMAKE_MODULE_PATH=${clr}/lib/cmake/hip"
+    "-DHIP_ROOT_DIR=${clr}"
+    "-DGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ];
+
+  postPatch = ''
+    patchShebangs .
+
+    substituteInPlace tests-v2/featuretests/profiler/CMakeLists.txt \
+      --replace "--build-id=sha1" "--build-id=sha1 --rocm-path=${clr} --rocm-device-lib-path=${rocm-device-libs}/amdgcn/bitcode"
+
+    substituteInPlace test/CMakeLists.txt \
+      --replace "\''${ROCM_ROOT_DIR}/amdgcn/bitcode" "${rocm-device-libs}/amdgcn/bitcode"
+  '';
+
+  postInstall = ''
+    # Why do these not already have the executable bit set?
+    chmod +x $out/lib/rocprofiler/librocprof-tool.so
+    chmod +x $out/share/rocprofiler/tests-v1/test/ocl/SimpleConvolution
+
+    # Why do these have the executable bit set?
+    chmod -x $out/libexec/rocprofiler/counters/basic_counters.xml
+    chmod -x $out/libexec/rocprofiler/counters/derived_counters.xml
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Profiling with perf-counters and derived metrics";
+    homepage = "https://github.com/ROCm/rocprofiler";
+    license = with licenses; [ mit ]; # mitx11
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor clr.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocr-debug-agent/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocr-debug-agent/default.nix
new file mode 100644
index 000000000000..625a8ef5a364
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocr-debug-agent/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, clr
+, git
+, rocdbgapi
+, elfutils
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocr-debug-agent";
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocr_debug_agent";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-8Q800T7mwBy8/rujVNyCQ0ZpZ9uPKKk+Sv9ibpWou/8=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    clr
+    git
+  ];
+
+  buildInputs = [
+    rocdbgapi
+    elfutils
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_MODULE_PATH=${clr}/lib/cmake/hip"
+    "-DHIP_ROOT_DIR=${clr}"
+    "-DHIP_PATH=${clr}"
+  ];
+
+  # Weird install target
+  postInstall = ''
+    rm -rf $out/src
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Library that provides some debugging functionality for ROCr";
+    homepage = "https://github.com/ROCm/rocr_debug_agent";
+    license = with licenses; [ ncsa ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocrand/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocrand/default.nix
new file mode 100644
index 000000000000..f09ff3b12059
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocrand/default.nix
@@ -0,0 +1,88 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, clr
+, gtest
+, gbenchmark
+, buildTests ? false
+, buildBenchmarks ? false
+, gpuTargets ? [ ]
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocrand";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ] ++ lib.optionals buildBenchmarks [
+    "benchmark"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocRAND";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-BBkcYOP+zh3OQTxuSkeiJizwnE9Gr5Jbhx0e8SU/mmU=";
+    fetchSubmodules = true; # For inline hipRAND
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    clr
+  ];
+
+  buildInputs = lib.optionals buildTests [
+    gtest
+  ] ++ lib.optionals buildBenchmarks [
+    gbenchmark
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_C_COMPILER=hipcc"
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    "-DHIP_ROOT_DIR=${clr}"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ] ++ lib.optionals buildTests [
+    "-DBUILD_TEST=ON"
+  ] ++ lib.optionals buildBenchmarks [
+    "-DBUILD_BENCHMARK=ON"
+  ];
+
+  postInstall = lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    mv $out/bin/test_* $test/bin
+  '' + lib.optionalString buildBenchmarks ''
+    mkdir -p $benchmark/bin
+    mv $out/bin/benchmark_* $benchmark/bin
+  '' + lib.optionalString (buildTests || buildBenchmarks) ''
+    rmdir $out/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Generate pseudo-random and quasi-random numbers";
+    homepage = "https://github.com/ROCm/rocRAND";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocsolver/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocsolver/default.nix
new file mode 100644
index 000000000000..42334d396b04
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocsolver/default.nix
@@ -0,0 +1,100 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, rocblas
+, rocsparse
+, clr
+, fmt
+, gtest
+, gfortran
+, lapack-reference
+, buildTests ? false
+, buildBenchmarks ? false
+, gpuTargets ? [ ] # gpuTargets = [ "gfx803" "gfx900" "gfx906:xnack-" ]
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocsolver";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ] ++ lib.optionals buildBenchmarks [
+    "benchmark"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocSOLVER";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-tglQpwCSFABRuEDiJrzQVFIdx9p85E2MiUYN0aoTAXo=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    clr
+  ] ++ lib.optionals (buildTests || buildBenchmarks) [
+    gfortran
+  ];
+
+  buildInputs = [
+    rocblas
+    rocsparse
+    fmt
+  ] ++ lib.optionals buildTests [
+    gtest
+  ] ++ lib.optionals (buildTests || buildBenchmarks) [
+    lapack-reference
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    "-DCMAKE_CXX_FLAGS=-Wno-switch" # Way too many warnings
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ] ++ lib.optionals buildTests [
+    "-DBUILD_CLIENTS_TESTS=ON"
+  ] ++ lib.optionals buildBenchmarks [
+    "-DBUILD_CLIENTS_BENCHMARKS=ON"
+  ];
+
+  postInstall = lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    mv $out/bin/rocsolver-test $test/bin
+  '' + lib.optionalString buildBenchmarks ''
+    mkdir -p $benchmark/bin
+    mv $out/bin/rocsolver-bench $benchmark/bin
+  '' + lib.optionalString (buildTests || buildBenchmarks) ''
+    rmdir $out/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  requiredSystemFeatures = [ "big-parallel" ];
+
+  meta = with lib; {
+    description = "ROCm LAPACK implementation";
+    homepage = "https://github.com/ROCm/rocSOLVER";
+    license = with licenses; [ bsd2 ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    timeout = 14400; # 4 hours
+    maxSilent = 14400; # 4 hours
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocsparse/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocsparse/default.nix
new file mode 100644
index 000000000000..2a1043b33c05
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocsparse/default.nix
@@ -0,0 +1,149 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchzip
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, rocprim
+, clr
+, gfortran
+, git
+, gtest
+, boost
+, python3Packages
+, buildTests ? false
+, buildBenchmarks ? false # Seems to depend on tests
+, gpuTargets ? [ ]
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocsparse";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals (buildTests || buildBenchmarks) [
+    "test"
+  ] ++ lib.optionals buildBenchmarks [
+    "benchmark"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocSPARSE";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-nTYnEHkTtq0jBeMj4HXpqkJu8LQc+Z6mpjhMP7tJAHQ=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    clr
+    gfortran
+  ];
+
+  buildInputs = [
+    rocprim
+    git
+  ] ++ lib.optionals (buildTests || buildBenchmarks) [
+    gtest
+    boost
+    python3Packages.python
+    python3Packages.pyyaml
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ] ++ lib.optionals (buildTests || buildBenchmarks) [
+    "-DBUILD_CLIENTS_TESTS=ON"
+    "-DCMAKE_MATRICES_DIR=/build/source/matrices"
+    "-Dpython=python3"
+  ] ++ lib.optionals buildBenchmarks [
+    "-DBUILD_CLIENTS_BENCHMARKS=ON"
+  ];
+
+  # We have to manually generate the matrices
+  postPatch = lib.optionalString (buildTests || buildBenchmarks) ''
+    mkdir -p matrices
+
+    ln -s ${finalAttrs.passthru.matrices.matrix-01}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-02}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-03}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-04}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-05}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-06}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-07}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-08}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-09}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-10}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-11}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-12}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-13}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-14}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-15}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-16}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-17}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-18}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-19}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-20}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-21}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-22}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-23}/*.mtx matrices
+    ln -s ${finalAttrs.passthru.matrices.matrix-24}/*.mtx matrices
+
+    # Not used by the original cmake, causes an error
+    rm matrices/*_b.mtx
+
+    echo "deps/convert.cpp -> deps/mtx2csr"
+    hipcc deps/convert.cpp -O3 -o deps/mtx2csr
+
+    for mat in $(ls -1 matrices | cut -d "." -f 1); do
+      echo "mtx2csr: $mat.mtx -> $mat.csr"
+      deps/mtx2csr matrices/$mat.mtx matrices/$mat.csr
+      unlink matrices/$mat.mtx
+    done
+  '';
+
+  postInstall = lib.optionalString buildBenchmarks ''
+    mkdir -p $benchmark/bin
+    cp -a $out/bin/* $benchmark/bin
+    rm $benchmark/bin/rocsparse-test
+  '' + lib.optionalString (buildTests || buildBenchmarks) ''
+    mkdir -p $test/bin
+    mv $out/bin/* $test/bin
+    rm $test/bin/rocsparse-bench || true
+    mv /build/source/matrices $test
+    rmdir $out/bin
+  '';
+
+  passthru = {
+    matrices = import ./deps.nix {
+      inherit fetchzip;
+      mirror1 = "https://sparse.tamu.edu/MM";
+      mirror2 = "https://www.cise.ufl.edu/research/sparse/MM";
+    };
+
+    updateScript = rocmUpdateScript {
+      name = finalAttrs.pname;
+      owner = finalAttrs.src.owner;
+      repo = finalAttrs.src.repo;
+    };
+  };
+
+  meta = with lib; {
+    description = "ROCm SPARSE implementation";
+    homepage = "https://github.com/ROCm/rocSPARSE";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocsparse/deps.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocsparse/deps.nix
new file mode 100644
index 000000000000..cef880ab3232
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocsparse/deps.nix
@@ -0,0 +1,222 @@
+{ fetchzip
+, mirror1
+, mirror2
+}:
+
+{
+  matrix-01 = fetchzip {
+    sha256 = "sha256-AHur5ZIDZTFRrO2GV0ieXrffq4KUiGWiZ59pv0fUtEQ=";
+
+    urls = [
+      "${mirror1}/SNAP/amazon0312.tar.gz"
+      "${mirror2}/SNAP/amazon0312.tar.gz"
+    ];
+  };
+
+  matrix-02 = fetchzip {
+    sha256 = "sha256-0rSxaN4lQcdaCLsvlgicG70FXUxXeERPiEmQ4MzbRdE=";
+
+    urls = [
+      "${mirror1}/Muite/Chebyshev4.tar.gz"
+      "${mirror2}/Muite/Chebyshev4.tar.gz"
+    ];
+  };
+
+  matrix-03 = fetchzip {
+    sha256 = "sha256-hDzDWDUnHEyFedX/tMNq83ZH8uWyM4xtZYUUAD3rizo=";
+
+    urls = [
+      "${mirror1}/FEMLAB/sme3Dc.tar.gz"
+      "${mirror2}/FEMLAB/sme3Dc.tar.gz"
+    ];
+  };
+
+  matrix-04 = fetchzip {
+    sha256 = "sha256-GmN2yOt/MoX01rKe05aTyB3ypUP4YbQGOITZ0BqPmC0=";
+
+    urls = [
+      "${mirror1}/Williams/webbase-1M.tar.gz"
+      "${mirror2}/Williams/webbase-1M.tar.gz"
+    ];
+  };
+
+  matrix-05 = fetchzip {
+    sha256 = "sha256-gQNjfVyWzNM9RwImJGhkhahRmZz74LzDs1oijL7mI7k=";
+
+    urls = [
+      "${mirror1}/Williams/mac_econ_fwd500.tar.gz"
+      "${mirror2}/Williams/mac_econ_fwd500.tar.gz"
+    ];
+  };
+
+  matrix-06 = fetchzip {
+    sha256 = "sha256-87cdZjntNcTuz5BtO59irhcuRbPllWSbhCEX3Td02qc=";
+
+    urls = [
+      "${mirror1}/Williams/mc2depi.tar.gz"
+      "${mirror2}/Williams/mc2depi.tar.gz"
+    ];
+  };
+
+  matrix-07 = fetchzip {
+    sha256 = "sha256-WRamuJX3D8Tm+k0q67RjUDG3DeNAxhKiaPkk5afY5eU=";
+
+    urls = [
+      "${mirror1}/Bova/rma10.tar.gz"
+      "${mirror2}/Bova/rma10.tar.gz"
+    ];
+  };
+
+  matrix-08 = fetchzip {
+    sha256 = "sha256-5dhkm293Mc3lzakKxHy5W5XIn4Rw+gihVh7gyrjEHXo=";
+
+    urls = [
+      "${mirror1}/JGD_BIBD/bibd_22_8.tar.gz"
+      "${mirror2}/JGD_BIBD/bibd_22_8.tar.gz"
+    ];
+  };
+
+  matrix-09 = fetchzip {
+    sha256 = "sha256-czjLWCjXAjZCk5TGYHaEkwSAzQu3TQ3QyB6eNKR4G88=";
+
+    urls = [
+      "${mirror1}/Hamm/scircuit.tar.gz"
+      "${mirror2}/Hamm/scircuit.tar.gz"
+    ];
+  };
+
+  matrix-10 = fetchzip {
+    sha256 = "sha256-bYuLnJViAIcIejAkh69/bsNAVIDU4wfTLtD+nmHd6FM=";
+
+    urls = [
+      "${mirror1}/Sandia/ASIC_320k.tar.gz"
+      "${mirror2}/Sandia/ASIC_320k.tar.gz"
+    ];
+  };
+
+  matrix-11 = fetchzip {
+    sha256 = "sha256-aDwn8P1khYjo2Agbq5m9ZBInJUxf/knJNvyptt0fak0=";
+
+    urls = [
+      "${mirror1}/GHS_psdef/bmwcra_1.tar.gz"
+      "${mirror2}/GHS_psdef/bmwcra_1.tar.gz"
+    ];
+  };
+
+  matrix-12 = fetchzip {
+    sha256 = "sha256-8OJqA/byhlAZd869TPUzZFdsOiwOoRGfKyhM+RMjXoY=";
+
+    urls = [
+      "${mirror1}/HB/nos1.tar.gz"
+      "${mirror2}/HB/nos1.tar.gz"
+    ];
+  };
+
+  matrix-13 = fetchzip {
+    sha256 = "sha256-FS0rKqmg+uHwsM/yGfQLBdd7LH/rUrdutkNGBD/Mh1I=";
+
+    urls = [
+      "${mirror1}/HB/nos2.tar.gz"
+      "${mirror2}/HB/nos2.tar.gz"
+    ];
+  };
+
+  matrix-14 = fetchzip {
+    sha256 = "sha256-DANnlrNJikrI7Pst9vRedtbuxepyHmCIu2yhltc4Qcs=";
+
+    urls = [
+      "${mirror1}/HB/nos3.tar.gz"
+      "${mirror2}/HB/nos3.tar.gz"
+    ];
+  };
+
+  matrix-15 = fetchzip {
+    sha256 = "sha256-21mUgqjWGUfYgiWwSrKh9vH8Vdt3xzcefmqYNYRpxiY=";
+
+    urls = [
+      "${mirror1}/HB/nos4.tar.gz"
+      "${mirror2}/HB/nos4.tar.gz"
+    ];
+  };
+
+  matrix-16 = fetchzip {
+    sha256 = "sha256-FOuXvGqBBFNkVS6cexmkluret54hCfCOdK+DOZllE4c=";
+
+    urls = [
+      "${mirror1}/HB/nos5.tar.gz"
+      "${mirror2}/HB/nos5.tar.gz"
+    ];
+  };
+
+  matrix-17 = fetchzip {
+    sha256 = "sha256-+7NI1rA/qQxYPpjXKHvAaCZ+LSaAJ4xuJvMRMBEUYxg=";
+
+    urls = [
+      "${mirror1}/HB/nos6.tar.gz"
+      "${mirror2}/HB/nos6.tar.gz"
+    ];
+  };
+
+  matrix-18 = fetchzip {
+    sha256 = "sha256-q3NxJjbwGGcFiQ9nhWfUKgZmdVwCfPmgQoqy0AqOsNc=";
+
+    urls = [
+      "${mirror1}/HB/nos7.tar.gz"
+      "${mirror2}/HB/nos7.tar.gz"
+    ];
+  };
+
+  matrix-19 = fetchzip {
+    sha256 = "sha256-0GAN6qmVfD+tprIigzuUUUwm5KVhkN9X65wMEvFltDY=";
+
+    urls = [
+      "${mirror1}/DNVS/shipsec1.tar.gz"
+      "${mirror2}/DNVS/shipsec1.tar.gz"
+    ];
+  };
+
+  matrix-20 = fetchzip {
+    sha256 = "sha256-f28Du/Urxsiq5NkRmRO10Zz9vvGRjEchquzHzbZpZ7U=";
+
+    urls = [
+      "${mirror1}/Cote/mplate.tar.gz"
+      "${mirror2}/Cote/mplate.tar.gz"
+    ];
+  };
+
+  matrix-21 = fetchzip {
+    sha256 = "sha256-O+Wy0NfCU1hVUOfNR1dJpvDHLBwwa301IRJDrQJnhak=";
+
+    urls = [
+      "${mirror1}/Bai/qc2534.tar.gz"
+      "${mirror2}/Bai/qc2534.tar.gz"
+    ];
+  };
+
+  matrix-22 = fetchzip {
+    sha256 = "sha256-oxMnt8U5Cf1ILWcBdU6W9jdSMMm+U6bIVl8nm3n3+OA=";
+
+    urls = [
+      "${mirror1}/Chevron/Chevron2.tar.gz"
+      "${mirror2}/Chevron/Chevron2.tar.gz"
+    ];
+  };
+
+  matrix-23 = fetchzip {
+    sha256 = "sha256-MFD9BxFI/3IS7yatW121BAI04fbqrXpgYDT5UKjeKcU=";
+
+    urls = [
+      "${mirror1}/Chevron/Chevron3.tar.gz"
+      "${mirror2}/Chevron/Chevron3.tar.gz"
+    ];
+  };
+
+  matrix-24 = fetchzip {
+    sha256 = "sha256-ikS8O51pe1nt3BNyhvfvqCbVL0+bg/da9bqGqeBDkTg=";
+
+    urls = [
+      "${mirror1}/Chevron/Chevron4.tar.gz"
+      "${mirror2}/Chevron/Chevron4.tar.gz"
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocthrust/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocthrust/default.nix
new file mode 100644
index 000000000000..e34e3ada6b99
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocthrust/default.nix
@@ -0,0 +1,87 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, rocprim
+, clr
+, gtest
+, buildTests ? false
+, buildBenchmarks ? false
+, gpuTargets ? [ ]
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocthrust";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ] ++ lib.optionals buildBenchmarks [
+    "benchmark"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocThrust";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-Zk7FxcedaDUbx9RCX8aWN0xZO/B5cOs/l5MDqZKQpJo=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    rocprim
+    clr
+  ];
+
+  buildInputs = lib.optionals buildTests [
+    gtest
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    "-DHIP_ROOT_DIR=${clr}"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ] ++ lib.optionals buildTests [
+    "-DBUILD_TEST=ON"
+  ] ++ lib.optionals buildBenchmarks [
+    "-DBUILD_BENCHMARKS=ON"
+  ] ++ lib.optionals (buildTests || buildBenchmarks) [
+    "-DCMAKE_CXX_FLAGS=-Wno-deprecated-builtins" # Too much spam
+  ];
+
+  postInstall = lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    mv $out/bin/{test_*,*.hip} $test/bin
+  '' + lib.optionalString buildBenchmarks ''
+    mkdir -p $benchmark/bin
+    mv $out/bin/benchmark_* $benchmark/bin
+  '' + lib.optionalString (buildTests || buildBenchmarks) ''
+    rm -rf $out/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "ROCm parallel algorithm library";
+    homepage = "https://github.com/ROCm/rocThrust";
+    license = with licenses; [ asl20 ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/roctracer/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/roctracer/default.nix
new file mode 100644
index 000000000000..2523a9ab5330
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/roctracer/default.nix
@@ -0,0 +1,103 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, clr
+, rocm-device-libs
+, libxml2
+, doxygen
+, graphviz
+, gcc-unwrapped
+, libbacktrace
+, rocm-runtime
+, python3Packages
+, buildDocs ? false # Nothing seems to be generated, so not making the output
+, buildTests ? false
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "roctracer";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals buildDocs [
+    "doc"
+  ] ++ lib.optionals buildTests [
+    "test"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "roctracer";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-a6/N6W3JXVI0VZRGxlS3cVENC3VTP1w9UFnd0+EWAuo=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    clr
+  ] ++ lib.optionals buildDocs [
+    doxygen
+    graphviz
+  ];
+
+  buildInputs = [
+    libxml2
+    libbacktrace
+    python3Packages.python
+    python3Packages.cppheaderparser
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_MODULE_PATH=${clr}/hip/cmake"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ];
+
+  env.NIX_CFLAGS_COMPILE = toString [
+    # Needed with GCC 12
+    "-Wno-error=array-bounds"
+  ];
+
+  postPatch = ''
+    export HIP_DEVICE_LIB_PATH=${rocm-device-libs}/amdgcn/bitcode
+  '' + lib.optionalString (!buildTests) ''
+    substituteInPlace CMakeLists.txt \
+      --replace "add_subdirectory(test)" ""
+  '';
+
+  # Tests always fail, probably need GPU
+  # doCheck = buildTests;
+
+  postInstall = lib.optionalString buildDocs ''
+    mkdir -p $doc
+  '' + lib.optionalString buildTests ''
+    mkdir -p $test/bin
+    # Not sure why this is an install target
+    find $out/test -executable -type f -exec mv {} $test/bin \;
+    rm $test/bin/{*.sh,*.py}
+    patchelf --set-rpath $out/lib:${lib.makeLibraryPath (
+      finalAttrs.buildInputs ++ [ clr gcc-unwrapped.lib rocm-runtime ])} $test/bin/*
+    rm -rf $out/test
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Tracer callback/activity library";
+    homepage = "https://github.com/ROCm/roctracer";
+    license = with licenses; [ mit ]; # mitx11
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor clr.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocwmma/0000-dont-fetch-googletest.patch b/nixpkgs/pkgs/development/rocm-modules/6/rocwmma/0000-dont-fetch-googletest.patch
new file mode 100644
index 000000000000..fa47a3c42249
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocwmma/0000-dont-fetch-googletest.patch
@@ -0,0 +1,35 @@
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 0d00883..86ce282 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -30,30 +30,6 @@ cmake_dependent_option( ROCWMMA_BUILD_VALIDATION_TESTS "Build validation tests"
+ cmake_dependent_option( ROCWMMA_BUILD_BENCHMARK_TESTS "Build benchmarking tests" OFF "ROCWMMA_BUILD_TESTS" OFF )
+ cmake_dependent_option( ROCWMMA_BUILD_EXTENDED_TESTS "Build extended test parameter coverage" OFF "ROCWMMA_BUILD_TESTS" OFF )
+ 
+-# Test/benchmark requires additional dependencies
+-include( FetchContent )
+-
+-FetchContent_Declare(
+-  googletest
+-  GIT_REPOSITORY https://github.com/google/googletest.git
+-  GIT_TAG release-1.12.1
+-)
+-FetchContent_GetProperties(googletest)
+-if(NOT googletest_POPULATED)
+-
+-  # Fetch the content using default details
+-  FetchContent_Populate(googletest)
+-  # Save the shared libs setting, then force to static libs
+-  set(BUILD_SHARED_LIBS_OLD ${BUILD_SHARED_LIBS})
+-  set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "Build SHARED libraries" FORCE)
+-  
+-  # Add gtest targets as static libs
+-  add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR})
+-  
+-  # Restore shared libs setting
+-  set(BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS_OLD} CACHE INTERNAL "Build SHARED libraries" FORCE)
+-endif()
+-
+ set(ROCWMMA_TEST_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR})
+ set(ROCWMMA_COMMON_TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/hip_device.cpp
+                                 ${CMAKE_CURRENT_SOURCE_DIR}/rocwmma_gtest_main.cpp)
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rocwmma/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rocwmma/default.nix
new file mode 100644
index 000000000000..da7791f51a3a
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rocwmma/default.nix
@@ -0,0 +1,105 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, rocm-smi
+, clr
+, openmp
+, gtest
+, rocblas
+, buildTests ? false # Will likely fail building because wavefront shifts are not supported for certain archs
+, buildExtendedTests ? false
+, buildBenchmarks ? false
+, buildSamples ? false
+, gpuTargets ? [ ] # gpuTargets = [ "gfx908:xnack-" "gfx90a:xnack-" "gfx90a:xnack+" ... ]
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rocwmma";
+  version = "6.0.2";
+
+  outputs = [
+    "out"
+  ] ++ lib.optionals (buildTests || buildBenchmarks) [
+    "test"
+  ] ++ lib.optionals buildBenchmarks [
+    "benchmark"
+  ] ++ lib.optionals buildSamples [
+    "sample"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rocWMMA";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-vbC4OuCmEpD38lVq0uXNw86iS4KkL6isOVq6vmlu1oM=";
+  };
+
+  patches = lib.optionals (buildTests || buildBenchmarks) [
+    ./0000-dont-fetch-googletest.patch
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    clr
+  ];
+
+  buildInputs = [
+    openmp
+  ] ++ lib.optionals (buildTests || buildBenchmarks) [
+    rocm-smi
+    gtest
+    rocblas
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    "-DROCWMMA_BUILD_TESTS=${if buildTests || buildBenchmarks then "ON" else "OFF"}"
+    "-DROCWMMA_BUILD_SAMPLES=${if buildSamples then "ON" else "OFF"}"
+    # Manually define CMAKE_INSTALL_<DIR>
+    # See: https://github.com/NixOS/nixpkgs/pull/197838
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ] ++ lib.optionals buildExtendedTests [
+    "-DROCWMMA_BUILD_EXTENDED_TESTS=ON"
+  ] ++ lib.optionals buildBenchmarks [
+    "-DROCWMMA_BUILD_BENCHMARK_TESTS=ON"
+    "-DROCWMMA_BENCHMARK_WITH_ROCBLAS=ON"
+  ];
+
+  postInstall = lib.optionalString (buildTests || buildBenchmarks) ''
+    mkdir -p $test/bin
+    mv $out/bin/{*_test,*-validate} $test/bin
+  '' + lib.optionalString buildBenchmarks ''
+    mkdir -p $benchmark/bin
+    mv $out/bin/*-bench $benchmark/bin
+  '' + lib.optionalString buildSamples ''
+    mkdir -p $sample/bin
+    mv $out/bin/sgemmv $sample/bin
+    mv $out/bin/simple_gemm $sample/bin
+    mv $out/bin/simple_dlrm $sample/bin
+  '' + lib.optionalString (buildTests || buildBenchmarks || buildSamples) ''
+    rm -rf $out/bin
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Mixed precision matrix multiplication and accumulation";
+    homepage = "https://github.com/ROCm/rocWMMA";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/rpp/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/rpp/default.nix
new file mode 100644
index 000000000000..239c99017d02
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/rpp/default.nix
@@ -0,0 +1,88 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, cmake
+, rocm-cmake
+, rocm-docs-core
+, half
+, clr
+, openmp
+, boost
+, python3Packages
+, buildDocs ? false # Needs internet
+, useOpenCL ? false
+, useCPU ? false
+, gpuTargets ? [ ]
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "rpp-" + (
+    if (!useOpenCL && !useCPU) then "hip"
+    else if (!useOpenCL && !useCPU) then "opencl"
+    else "cpu"
+  );
+
+  version = "6.0.2";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "rpp";
+    rev = "rocm-${finalAttrs.version}";
+    hash = "sha256-AquAVoEqlsBVxd41hG2sVo9UoSS+255eCQzIfGkC/Tk=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    rocm-cmake
+    clr
+  ] ++ lib.optionals buildDocs [
+    rocm-docs-core
+    python3Packages.python
+  ];
+
+  buildInputs = [
+    half
+    openmp
+    boost
+  ];
+
+  cmakeFlags = [
+    "-DROCM_PATH=${clr}"
+  ] ++ lib.optionals (gpuTargets != [ ]) [
+    "-DAMDGPU_TARGETS=${lib.concatStringsSep ";" gpuTargets}"
+  ] ++ lib.optionals (!useOpenCL && !useCPU) [
+    "-DCMAKE_C_COMPILER=hipcc"
+    "-DCMAKE_CXX_COMPILER=hipcc"
+    "-DBACKEND=HIP"
+  ] ++ lib.optionals (useOpenCL && !useCPU) [
+    "-DBACKEND=OCL"
+  ] ++ lib.optionals useCPU [
+    "-DBACKEND=CPU"
+  ];
+
+  postPatch = lib.optionalString (!useOpenCL && !useCPU) ''
+    # Bad path
+    substituteInPlace CMakeLists.txt \
+      --replace "COMPILER_FOR_HIP \''${ROCM_PATH}/llvm/bin/clang++" "COMPILER_FOR_HIP ${clr}/bin/hipcc"
+  '';
+
+  postBuild = lib.optionalString buildDocs ''
+    python3 -m sphinx -T -E -b html -d _build/doctrees -D language=en ../docs _build/html
+  '';
+
+  passthru.updateScript = rocmUpdateScript {
+    name = finalAttrs.pname;
+    owner = finalAttrs.src.owner;
+    repo = finalAttrs.src.repo;
+  };
+
+  meta = with lib; {
+    description = "Comprehensive high-performance computer vision library for AMD processors";
+    homepage = "https://github.com/ROCm/rpp";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor finalAttrs.version != versions.minor stdenv.cc.version || versionAtLeast finalAttrs.version "7.0.0";
+  };
+})
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/tensile/default.nix b/nixpkgs/pkgs/development/rocm-modules/6/tensile/default.nix
new file mode 100644
index 000000000000..af33fd789e84
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/tensile/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rocmUpdateScript
+, buildPythonPackage
+, pytestCheckHook
+, setuptools
+, pyyaml
+, msgpack
+, pandas
+, joblib
+, filelock
+, rocminfo
+}:
+
+buildPythonPackage rec {
+  pname = "tensile";
+  version = "6.0.2";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "ROCm";
+    repo = "Tensile";
+    rev = "rocm-${version}";
+    hash = "sha256-B9/2Iw1chwDL6it1CKC8W8v4Qac/J2z9nwlpwjnllDc=";
+  };
+
+  buildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    pyyaml
+    msgpack
+    pandas
+    joblib
+  ];
+
+  doCheck = false; # Too many errors, not sure how to set this up properly
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    filelock
+    rocminfo
+  ];
+
+  preCheck = ''
+    export ROCM_PATH=${rocminfo}
+  '';
+
+  pythonImportsCheck = [ "Tensile" ];
+
+  passthru.updateScript = rocmUpdateScript {
+    name = pname;
+    owner = src.owner;
+    repo = src.repo;
+  };
+
+  meta = with lib; {
+    description = "GEMMs and tensor contractions";
+    homepage = "https://github.com/ROCm/Tensile";
+    license = with licenses; [ mit ];
+    maintainers = teams.rocm.members;
+    platforms = platforms.linux;
+    broken = versions.minor version != versions.minor stdenv.cc.version || versionAtLeast version "7.0.0";
+  };
+}
diff --git a/nixpkgs/pkgs/development/rocm-modules/6/update.nix b/nixpkgs/pkgs/development/rocm-modules/6/update.nix
new file mode 100644
index 000000000000..4d531e6bb176
--- /dev/null
+++ b/nixpkgs/pkgs/development/rocm-modules/6/update.nix
@@ -0,0 +1,33 @@
+{ lib
+, writeScript
+}:
+
+{ name ? ""
+, owner ? ""
+, repo ? ""
+, page ? "releases/latest"
+, filter ? ".tag_name | split(\"-\") | .[1]"
+}:
+
+let
+  pname =
+    if lib.hasPrefix "rocm-llvm-" name
+    then "llvm.${lib.removePrefix "rocm-llvm-" name}"
+    else name;
+
+  updateScript = writeScript "update.sh" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p curl jq common-updater-scripts
+    version="$(curl ''${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
+      -sL "https://api.github.com/repos/${owner}/${repo}/${page}" | jq '${filter}' --raw-output)"
+
+    IFS='.' read -a version_arr <<< "$version"
+
+    if (( ''${version_arr[0]} > 6 )); then
+      echo "'rocmPackages_6.${pname}' is already at it's maximum allowed version.''\nAny further upgrades should go into 'rocmPackages_X.${pname}'." 1>&2
+      exit 1
+    fi
+
+    update-source-version rocmPackages_6.${pname} "$version" --ignore-same-hash
+  '';
+in [ updateScript ]
diff --git a/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix b/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
index f433a398d6e3..45de779fcdaf 100644
--- a/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
@@ -312,8 +312,8 @@ in
           cp -R ext/fast_mmaped_file_rs $out
         '';
       };
-      hash = if lib.versionAtLeast attrs.version "1.1.0"
-        then "sha256-tSyoCEBtMMkFfPynaMx8oc9bO7I+Pf6Y/f3Ld8uwlEE="
+      hash = if lib.versionAtLeast attrs.version "1.1.1"
+        then "sha256-RsN5XWX7Mj2ORccM0eczY+44WXsbXNTnJVcCMvnOATk="
         else "sha256-XuQZPbFWqPHlrJvllkvLl1FjKeoAUbi8oKDrS2rY1KM=";
     };
     nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/ruby-modules/rbenv/default.nix b/nixpkgs/pkgs/development/ruby-modules/rbenv/default.nix
index 5eeeaa4b3913..ef8b4c47818b 100644
--- a/nixpkgs/pkgs/development/ruby-modules/rbenv/default.nix
+++ b/nixpkgs/pkgs/development/ruby-modules/rbenv/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Groom your app’s Ruby environment";
+    mainProgram = "rbenv";
     longDescription = ''
       Use rbenv to pick a Ruby version for your application and guarantee that your development environment matches production.
       Put rbenv to work with Bundler for painless Ruby upgrades and bulletproof deployments.
diff --git a/nixpkgs/pkgs/development/skaware-packages/sdnotify-wrapper/default.nix b/nixpkgs/pkgs/development/skaware-packages/sdnotify-wrapper/default.nix
index b4b6a7f42a7e..e86f6ab12679 100644
--- a/nixpkgs/pkgs/development/skaware-packages/sdnotify-wrapper/default.nix
+++ b/nixpkgs/pkgs/development/skaware-packages/sdnotify-wrapper/default.nix
@@ -14,6 +14,7 @@ in runCommandCC "sdnotify-wrapper" {
    meta = {
      homepage = "https://skarnet.org/software/misc/sdnotify-wrapper.c";
      description = "Use systemd sd_notify without having to link against libsystemd";
+     mainProgram = "sdnotify-wrapper";
      platforms = lib.platforms.linux;
      license = lib.licenses.isc;
      maintainers = with lib.maintainers; [ Profpatsch ];
diff --git a/nixpkgs/pkgs/development/tools/aapt/default.nix b/nixpkgs/pkgs/development/tools/aapt/default.nix
index 0d59f3ae6f8a..c02e644c158b 100644
--- a/nixpkgs/pkgs/development/tools/aapt/default.nix
+++ b/nixpkgs/pkgs/development/tools/aapt/default.nix
@@ -38,6 +38,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = {
     description = "A build tool that compiles and packages Android app's resources";
+    mainProgram = "aapt2";
     homepage = "https://developer.android.com/tools/aapt2";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ linsui ];
diff --git a/nixpkgs/pkgs/development/tools/air/default.nix b/nixpkgs/pkgs/development/tools/air/default.nix
index ce51efafdbad..bb2c13a2e11c 100644
--- a/nixpkgs/pkgs/development/tools/air/default.nix
+++ b/nixpkgs/pkgs/development/tools/air/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Live reload for Go apps";
+    mainProgram = "air";
     homepage = "https://github.com/cosmtrek/air";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Gonzih ];
diff --git a/nixpkgs/pkgs/development/tools/algolia-cli/default.nix b/nixpkgs/pkgs/development/tools/algolia-cli/default.nix
index 86135d232bc0..a7216cbfbe31 100644
--- a/nixpkgs/pkgs/development/tools/algolia-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/algolia-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "algolia-cli";
-  version = "1.6.1";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "algolia";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-XcsVU/yV6c6jzuJdZvqs+kAu6XwR8ygVcJ6KEI04x9I=";
+    hash = "sha256-xRGWPJx4AVdUT9f7L2B5SHEOneuIlscFTHIk7XtPzS8=";
   };
 
   vendorHash = "sha256-cNuBTH7L2K4TgD0H9FZ9CjhE5AGXADaniGLD9Lhrtrk=";
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Algolia’s official CLI devtool";
+    mainProgram = "algolia";
     homepage = "https://algolia.com/doc/tools/cli/";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
diff --git a/nixpkgs/pkgs/development/tools/allure/default.nix b/nixpkgs/pkgs/development/tools/allure/default.nix
index 9580a6431fd2..82c05637c10a 100644
--- a/nixpkgs/pkgs/development/tools/allure/default.nix
+++ b/nixpkgs/pkgs/development/tools/allure/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://docs.qameta.io/allure/";
     description = "Allure Report is a flexible, lightweight multi-language test reporting tool.";
+    mainProgram = "allure";
     longDescription = "Allure Report is a flexible, lightweight multi-language test reporting tool. It provides clear graphical reports and allows everyone involved in the development process to extract the maximum of information from the everyday testing process";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
diff --git a/nixpkgs/pkgs/development/tools/altair-graphql-client/default.nix b/nixpkgs/pkgs/development/tools/altair-graphql-client/default.nix
index f0c93071d83a..d959c4eba3e6 100644
--- a/nixpkgs/pkgs/development/tools/altair-graphql-client/default.nix
+++ b/nixpkgs/pkgs/development/tools/altair-graphql-client/default.nix
@@ -29,6 +29,7 @@ appimageTools.wrapType2 {
 
   meta = with lib; {
     description = "A feature-rich GraphQL Client IDE";
+    mainProgram = "altair";
     homepage = "https://github.com/imolorhe/altair";
     license = licenses.mit;
     maintainers = with maintainers; [ evalexpr ];
diff --git a/nixpkgs/pkgs/development/tools/ameba/default.nix b/nixpkgs/pkgs/development/tools/ameba/default.nix
index ef133b6f983b..adf392669635 100644
--- a/nixpkgs/pkgs/development/tools/ameba/default.nix
+++ b/nixpkgs/pkgs/development/tools/ameba/default.nix
@@ -15,6 +15,7 @@ crystal.buildCrystalPackage rec {
 
   meta = with lib; {
     description = "A static code analysis tool for Crystal";
+    mainProgram = "ameba";
     homepage = "https://crystal-ameba.github.io";
     changelog = "https://github.com/crystal-ameba/ameba/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/ammonite/default.nix b/nixpkgs/pkgs/development/tools/ammonite/default.nix
index 39f69f402b94..aa38d17cda6b 100644
--- a/nixpkgs/pkgs/development/tools/ammonite/default.nix
+++ b/nixpkgs/pkgs/development/tools/ammonite/default.nix
@@ -7,7 +7,7 @@ let
   common = { scalaVersion, sha256 }:
     stdenv.mkDerivation rec {
       pname = "ammonite";
-      version = "2.5.3";
+      version = "3.0.0-M1";
 
       src = fetchurl {
         url =
@@ -82,10 +82,10 @@ let
 in {
   ammonite_2_12 = common {
     scalaVersion = "2.12";
-    sha256 = "sha256-Iov55ohFjcGhur5UEng7aAZJPVua1H/JaKKW6OKS6Zg=";
+    sha256 = "sha256-SlweOVHudknbInM4rfEPJ9bLd3Z/EImLhVLzeKfjfMQ=";
   };
   ammonite_2_13 = common {
     scalaVersion = "2.13";
-    sha256 = "sha256-dzUhKUQDHrYZ4WyCk4z4CTxb6vK05qfApR/WPOwhA5s=";
+    sha256 = "sha256-2BydXmF6AkWDdG5rbRLD2I/6z3w3UD0dCd5Tp+3lU7c=";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/amqpcat/default.nix b/nixpkgs/pkgs/development/tools/amqpcat/default.nix
index 774af838b63a..09094fae8e10 100644
--- a/nixpkgs/pkgs/development/tools/amqpcat/default.nix
+++ b/nixpkgs/pkgs/development/tools/amqpcat/default.nix
@@ -25,6 +25,7 @@ crystal.buildCrystalPackage rec {
 
   meta = with lib; {
     description = "A CLI tool for publishing to and consuming from AMQP servers";
+    mainProgram = "amqpcat";
     homepage = "https://github.com/cloudamqp/amqpcat";
     license = licenses.mit;
     maintainers = with maintainers; [ aaronjheng ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/bingrep/default.nix b/nixpkgs/pkgs/development/tools/analysis/bingrep/default.nix
index f8cbc806250d..6a5e2041e57d 100644
--- a/nixpkgs/pkgs/development/tools/analysis/bingrep/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/bingrep/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Greps through binaries from various OSs and architectures, and colors them";
+    mainProgram = "bingrep";
     homepage = "https://github.com/m4b/bingrep";
     license = licenses.mit;
     maintainers = with maintainers; [ minijackson ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix b/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
index 75f6ee44bf99..8a4a812b889c 100644
--- a/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A code coverage tool for Rust projects";
+    mainProgram = "cargo-tarpaulin";
     homepage = "https://github.com/xd009642/tarpaulin";
     changelog = "https://github.com/xd009642/tarpaulin/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/cccc/default.nix b/nixpkgs/pkgs/development/tools/analysis/cccc/default.nix
index 49c8fb140e59..b0fd8769bdbe 100644
--- a/nixpkgs/pkgs/development/tools/analysis/cccc/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/cccc/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "C and C++ Code Counter";
+    mainProgram = "cccc";
     longDescription = ''
       CCCC is a tool which analyzes C++ and Java files and generates a report
       on various metrics of the code. Metrics supported include lines of code, McCabe's
diff --git a/nixpkgs/pkgs/development/tools/analysis/checkov/default.nix b/nixpkgs/pkgs/development/tools/analysis/checkov/default.nix
index 09bb334659ce..c1732d180d5a 100644
--- a/nixpkgs/pkgs/development/tools/analysis/checkov/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/checkov/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "checkov";
-  version = "3.2.32";
+  version = "3.2.43";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = "checkov";
     rev = "refs/tags/${version}";
-    hash = "sha256-brebisU7YhbLHEojJUu5Ei0F6hMHg1lsYjppBAXewYQ=";
+    hash = "sha256-XzkMhI/+dOU0NJs9XW+jwbI6fZfC6cHFq0xFNw57kc8=";
   };
 
   patches = [
@@ -29,6 +29,7 @@ python3.pkgs.buildPythonApplication rec {
     "license-expression"
     "networkx"
     "openai"
+    "packageurl-python"
     "pycep-parser"
     "termcolor"
   ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix b/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix
index 01c701048783..916895a64735 100644
--- a/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenvNoCC, fetchurl, makeBinaryWrapper, jre }:
 
 stdenvNoCC.mkDerivation rec {
-  version = "10.14.0";
+  version = "10.14.2";
   pname = "checkstyle";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "sha256-suPuRdKIXP9gzPKkIWku6P+QAQOts781wQRoz1FKs58=";
+    sha256 = "sha256-5OR/HJ0DqquvhWcB35TsKueGUfo7cM3b9mNszMJAz2o=";
   };
 
   nativeBuildInputs = [ makeBinaryWrapper ];
@@ -24,6 +24,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     description = "Checks Java source against a coding standard";
+    mainProgram = "checkstyle";
     longDescription = ''
       checkstyle is a development tool to help programmers write Java code that
       adheres to a coding standard. By default it supports the Sun Code
diff --git a/nixpkgs/pkgs/development/tools/analysis/coan/default.nix b/nixpkgs/pkgs/development/tools/analysis/coan/default.nix
index d88a4a8a92eb..7104074a6a74 100644
--- a/nixpkgs/pkgs/development/tools/analysis/coan/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/coan/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The C preprocessor chainsaw";
+    mainProgram = "coan";
     longDescription = ''
       A software engineering tool for analysing preprocessor-based
       configurations of C or C++ source code. Its principal use is to simplify
diff --git a/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix b/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
index 2d67f6211f19..a82b19a9d299 100644
--- a/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "codeql";
-  version = "2.16.3";
+  version = "2.16.4";
 
   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-jpmnT3Knr/0Pk9Z0zRi3zyB8CH31z3kJxU0nBXg8iXY=";
+    hash = "sha256-wpiySSAs4x0KfzBLHzP4YC2GB1NpeEHQlbfAWCUaV90=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/tools/analysis/coz/default.nix b/nixpkgs/pkgs/development/tools/analysis/coz/default.nix
index 17968a466bf4..2938a60b46de 100644
--- a/nixpkgs/pkgs/development/tools/analysis/coz/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/coz/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://github.com/plasma-umass/coz";
     description = "Profiler based on casual profiling";
+    mainProgram = "coz";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ zimbatm ];
   };
diff --git a/nixpkgs/pkgs/development/tools/analysis/cpplint/default.nix b/nixpkgs/pkgs/development/tools/analysis/cpplint/default.nix
index 87344d747bf6..f380f7086e82 100644
--- a/nixpkgs/pkgs/development/tools/analysis/cpplint/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/cpplint/default.nix
@@ -42,6 +42,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/cpplint/cpplint";
     description = "Static code checker for C++";
+    mainProgram = "cpplint";
     maintainers = [ maintainers.bhipple ];
     license = [ licenses.bsd3 ];
   };
diff --git a/nixpkgs/pkgs/development/tools/analysis/dotenv-linter/default.nix b/nixpkgs/pkgs/development/tools/analysis/dotenv-linter/default.nix
index fec39c962a66..75745be0148f 100644
--- a/nixpkgs/pkgs/development/tools/analysis/dotenv-linter/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/dotenv-linter/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Lightning-fast linter for .env files. Written in Rust";
+    mainProgram = "dotenv-linter";
     homepage = "https://dotenv-linter.github.io";
     license = licenses.mit;
     maintainers = with maintainers; [ humancalico ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/egypt/default.nix b/nixpkgs/pkgs/development/tools/analysis/egypt/default.nix
index 026650220991..5c9b4ef0453d 100644
--- a/nixpkgs/pkgs/development/tools/analysis/egypt/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/egypt/default.nix
@@ -17,6 +17,7 @@ perlPackages.buildPerlPackage rec {
 
   meta = with lib; {
     description = "Tool for making call graphs of C programmes";
+    mainProgram = "egypt";
     longDescription = ''
       Egypt is a simple tool for creating call graphs of C programs. It neither
       analyzes source code nor lays out graphs. Instead, it leaves the source
diff --git a/nixpkgs/pkgs/development/tools/analysis/evmdis/default.nix b/nixpkgs/pkgs/development/tools/analysis/evmdis/default.nix
index eb23a0aae51f..99181764dd04 100644
--- a/nixpkgs/pkgs/development/tools/analysis/evmdis/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/evmdis/default.nix
@@ -23,6 +23,7 @@ buildGoModule {
   meta = with lib; {
     homepage = "https://github.com/Arachnid/evmdis";
     description = "Ethereum EVM disassembler";
+    mainProgram = "evmdis";
     license = [ licenses.asl20 ];
     maintainers = with maintainers; [ asymmetric ];
   };
diff --git a/nixpkgs/pkgs/development/tools/analysis/flow/default.nix b/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
index dc7edb5c79bd..44b8a095ef69 100644
--- a/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.230.0";
+  version = "0.231.0";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "flow";
     rev = "v${version}";
-    hash = "sha256-8sfyjUlyJ9A96xD7n6BeJxDNhT7FMq/7HlVC373uLM8=";
+    hash = "sha256-xZ6hyAnfWMwNZfkDIPV+0Cjs/HBMwBME6tZwQW38Cmk=";
   };
 
   postPatch = ''
@@ -17,11 +17,6 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "FLOW_RELEASE=1" ];
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   installPhase = ''
     install -Dm755 bin/flow $out/bin/flow
     install -Dm644 resources/shell/bash-completion $out/share/bash-completion/completions/flow
@@ -36,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A static type checker for JavaScript";
+    mainProgram = "flow";
     homepage = "https://flow.org/";
     changelog = "https://github.com/facebook/flow/blob/v${version}/Changelog.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix b/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix
index 1bf477cf3d16..37b44e1f8044 100644
--- a/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix
@@ -37,12 +37,12 @@ in
 
 stdenv.mkDerivation rec {
   pname = "frama-c";
-  version = "28.0";
+  version = "28.1";
   slang   = "Nickel";
 
   src = fetchurl {
     url  = "https://frama-c.com/download/frama-c-${version}-${slang}.tar.gz";
-    hash = "sha256-KWEogjMOy27d0LTKOvwEkrcND+szeaG46JMZTG4XOYM=";
+    hash = "sha256-AiC8dDt9okaM65JvMx7cfd+qfGA7pHli3j4zyOHj9ZM=";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilegen/default.nix b/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilegen/default.nix
index f7f5e84c012b..4623c42e8191 100644
--- a/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilegen/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilegen/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Automatically generate all types of basic memory management operations and write into trace files";
+    mainProgram = "TraceFileGen";
     homepage = "https://github.com/GarCoSim";
     maintainers = [ maintainers.cmcdragonkai ];
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilesim/default.nix b/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilesim/default.nix
index a76b6b9239e1..cd1682a1f5e7 100644
--- a/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilesim/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilesim/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Ease the analysis of existing memory management techniques, as well as the prototyping of new memory management techniques";
+    mainProgram = "traceFileSim";
     homepage = "https://github.com/GarCoSim";
     maintainers = [ maintainers.cmcdragonkai ];
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/development/tools/analysis/hotspot/default.nix b/nixpkgs/pkgs/development/tools/analysis/hotspot/default.nix
index bbf91ec28fb4..7d36f4323283 100644
--- a/nixpkgs/pkgs/development/tools/analysis/hotspot/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/hotspot/default.nix
@@ -68,6 +68,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A GUI for Linux perf";
+    mainProgram = "hotspot";
     longDescription = ''
       hotspot is a GUI replacement for `perf report`.
       It takes a perf.data file, parses and evaluates its contents and
diff --git a/nixpkgs/pkgs/development/tools/analysis/jacoco/default.nix b/nixpkgs/pkgs/development/tools/analysis/jacoco/default.nix
index 3bcd7b59160f..62835c61d0f3 100644
--- a/nixpkgs/pkgs/development/tools/analysis/jacoco/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/jacoco/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A free code coverage library for Java";
+    mainProgram = "jacoco";
     homepage = "https://www.jacoco.org/jacoco";
     changelog = "https://www.jacoco.org/jacoco/trunk/doc/changes.html";
     license = licenses.epl20;
diff --git a/nixpkgs/pkgs/development/tools/analysis/jdepend/default.nix b/nixpkgs/pkgs/development/tools/analysis/jdepend/default.nix
index 498a484a89f0..1f2e9605b117 100644
--- a/nixpkgs/pkgs/development/tools/analysis/jdepend/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/jdepend/default.nix
@@ -4,7 +4,7 @@
 , ant
 , jdk
 , makeWrapper
-, canonicalize-jars-hook
+, stripJavaArchivesHook
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
     ant
     jdk
     makeWrapper
-    canonicalize-jars-hook
+    stripJavaArchivesHook
   ];
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/analysis/massif-visualizer/default.nix b/nixpkgs/pkgs/development/tools/analysis/massif-visualizer/default.nix
index 78f8bbeb683e..4e969baf3763 100644
--- a/nixpkgs/pkgs/development/tools/analysis/massif-visualizer/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/massif-visualizer/default.nix
@@ -23,6 +23,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Tool that visualizes massif data generated by valgrind";
+    mainProgram = "massif-visualizer";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ zraexy ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix b/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix
index 4e01fba57798..06fe22a42abd 100644
--- a/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix
@@ -46,7 +46,6 @@ rustPlatform.buildRustPackage rec {
     '';
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ leenaars ];
-    # never built on aarch64-linux since first introduction in nixpkgs
-    broken = stdenv.isDarwin || (stdenv.isLinux && stdenv.isAarch64);
+    broken = true; # Added 2024-03-16
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/rizin/0001-fix-compilation-with-clang.patch b/nixpkgs/pkgs/development/tools/analysis/rizin/0001-fix-compilation-with-clang.patch
new file mode 100644
index 000000000000..adb1eebb3e17
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/analysis/rizin/0001-fix-compilation-with-clang.patch
@@ -0,0 +1,30 @@
+From 93acbc13cf271faf6025e96991eb3ab65062f90f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
+Date: Sat, 9 Mar 2024 09:35:24 +0100
+Subject: [PATCH] fix compilation with clang
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
+---
+ librz/analysis/p/analysis_xtensa.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/librz/analysis/p/analysis_xtensa.c b/librz/analysis/p/analysis_xtensa.c
+index 4a32d2037c..f7331ae376 100644
+--- a/librz/analysis/p/analysis_xtensa.c
++++ b/librz/analysis/p/analysis_xtensa.c
+@@ -21,7 +21,8 @@ typedef struct {
+ static bool xtensa_init(void **user) {
+ 	XtensaContext *ctx = RZ_NEW0(XtensaContext);
+ 	rz_return_val_if_fail(ctx, false);
+-	memcpy(ctx->length_table, (int[16]){ 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 8, 8 }, sizeof(ctx->length_table));
++	int temp_length_table[16] = { 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 8, 8 };
++	memcpy(ctx->length_table, temp_length_table, sizeof(ctx->length_table));
+ 	ctx->insn_buffer = NULL;
+ 	ctx->slot_buffer = NULL;
+ 	*user = ctx;
+-- 
+2.43.1
+
diff --git a/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix b/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix
index 480f20f04f49..44954c62a3c2 100644
--- a/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitHub
-, fetchpatch
 , stdenv
 # for passthru.plugins
 , pkgs
@@ -23,25 +22,16 @@
 
 let cutter = stdenv.mkDerivation rec {
   pname = "cutter";
-  version = "2.3.2";
+  version = "2.3.4";
 
   src = fetchFromGitHub {
     owner = "rizinorg";
     repo = "cutter";
     rev = "v${version}";
-    hash = "sha256-88yIqFYIv7o6aC2YSJwWJ46fZJBnOmifv+SirsfS4tw=";
+    hash = "sha256-TSEi1mXVvvaGo4koo3EnN/veXPUHF747g+gifnl4IDQ=";
     fetchSubmodules = true;
   };
 
-  patches = [
-    # tracking: https://github.com/rizinorg/cutter/pull/3268
-    (fetchpatch {
-      name = "cutter-simplify-python-binding-include-handling.patch";
-      url = "https://github.com/rizinorg/cutter/compare/7256fbb00e92ab12a24d14a92364db482ed295cb..ca5949d9d7c907185cf3d062d9fa71c34c5960d4.diff";
-      hash = "sha256-bqV2FTA8lMNpHBDXdenNx+1cLYa7MH47XKo1YatmLV4=";
-    })
-  ];
-
   nativeBuildInputs = [
     cmake
     pkg-config
diff --git a/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix b/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix
index 9f8524e68995..e298b1690405 100644
--- a/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix
@@ -1,13 +1,13 @@
 { lib
 , pkgs # for passthru.plugins
 , stdenv
-, fetchpatch
 , fetchurl
 , pkg-config
 , libusb-compat-0_1
 , readline
 , libewf
 , perl
+, pcre2
 , zlib
 , openssl
 , file
@@ -22,15 +22,16 @@
 , ninja
 , capstone
 , tree-sitter
+, zstd
 }:
 
 let rizin = stdenv.mkDerivation rec {
   pname = "rizin";
-  version = "0.6.3";
+  version = "0.7.2";
 
   src = fetchurl {
     url = "https://github.com/rizinorg/rizin/releases/download/v${version}/rizin-src-v${version}.tar.xz";
-    hash = "sha256-lfZMarnm2qnp+lY0OY649s206/LoFNouTLlp0x9FCcI=";
+    hash = "sha256-/P8/tFrit14/YEvHoIB24yLm4U3veQmBhjeAZcyzWCo=";
   };
 
   mesonFlags = [
@@ -39,11 +40,13 @@ let rizin = stdenv.mkDerivation rec {
     "-Duse_sys_libzip=enabled"
     "-Duse_sys_zlib=enabled"
     "-Duse_sys_lz4=enabled"
+    "-Duse_sys_libzstd=enabled"
     "-Duse_sys_lzma=enabled"
     "-Duse_sys_xxhash=enabled"
     "-Duse_sys_openssl=enabled"
     "-Duse_sys_libmspack=enabled"
     "-Duse_sys_tree_sitter=enabled"
+    "-Duse_sys_pcre2=enabled"
     # this is needed for wrapping (adding plugins) to work
     "-Dportable=true"
   ];
@@ -55,12 +58,8 @@ let rizin = stdenv.mkDerivation rec {
     # caching it. This patch replaces the entire logic to only look at
     # the env var NIX_RZ_PREFIX
     ./librz-wrapper-support.patch
-    # Fix tree-sitter 0.20.9 build failure: https://github.com/rizinorg/rizin/pull/4165
-    (fetchpatch {
-      name = "tree-sitter-0.20.9.patch";
-      url = "https://github.com/rizinorg/rizin/commit/1bb08712dbc9e062bb439a65dcebeb4221ded699.patch";
-      hash = "sha256-mE0eQAFhyxX5bwrz+S1IVl6HNV9ITQ+tRRvGLLif5VI=";
-    })
+
+    ./0001-fix-compilation-with-clang.patch
   ];
 
 
@@ -96,6 +95,7 @@ let rizin = stdenv.mkDerivation rec {
     readline
     libusb-compat-0_1
     libewf
+    pcre2
     perl
     zlib
     lz4
@@ -104,6 +104,7 @@ let rizin = stdenv.mkDerivation rec {
     tree-sitter
     xxHash
     xz
+    zstd
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/tools/analysis/rizin/jsdec.nix b/nixpkgs/pkgs/development/tools/analysis/rizin/jsdec.nix
index df291d169eb5..a1c0bc7ed67f 100644
--- a/nixpkgs/pkgs/development/tools/analysis/rizin/jsdec.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/rizin/jsdec.nix
@@ -8,28 +8,41 @@
 , openssl
 }:
 
-stdenv.mkDerivation rec {
+let
+  libquickjs = fetchFromGitHub {
+    owner = "frida";
+    repo = "quickjs";
+    rev = "c81f05c9859cea5f83a80057416a0c7affe9b876";
+    hash = "sha256-nAws0ae9kAwvCFcw/yR7XRMwU8EbHoq7kp7iBFpZEZc=";
+  };
+in
+stdenv.mkDerivation (finalAttrs: {
   pname = "jsdec";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "rizinorg";
     repo = "jsdec";
-    rev = "v${version}";
-    hash = "sha256-iVaxxPBIJRhZrmejAOL/Fb4k66mGsZOBs7UikgMj5WA=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-UuFA0YKH+0n4Ec3CTiSUFlKXMY4k+tooaEFJYrj6Law=";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config ];
-  preConfigure = ''
-    cd p
+  postUnpack = ''
+    cp -r --no-preserve=mode ${libquickjs} $sourceRoot/subprojects/libquickjs
+  '';
+
+  postPatch = ''
+    cp subprojects/packagefiles/libquickjs/* subprojects/libquickjs
   '';
-  mesonFlags = [ "-Djsc_folder=.." ];
+
+  nativeBuildInputs = [ meson ninja pkg-config ];
   buildInputs = [ openssl rizin ];
 
   meta = with lib; {
     description = "Simple decompiler for Rizin";
-    homepage = src.meta.homepage;
+    homepage = finalAttrs.src.meta.homepage;
+    changelog = "${finalAttrs.src.meta.homepage}/releases/tag/${finalAttrs.src.rev}";
     license = with licenses; [ asl20 bsd3 mit ];
     maintainers = with maintainers; [ chayleaf ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/tools/analysis/rizin/rz-ghidra.nix b/nixpkgs/pkgs/development/tools/analysis/rizin/rz-ghidra.nix
index d2cb95f2d962..fcc014f9944d 100644
--- a/nixpkgs/pkgs/development/tools/analysis/rizin/rz-ghidra.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/rizin/rz-ghidra.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 # buildInputs
 , rizin
@@ -15,25 +14,18 @@
 , qtsvg
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "rz-ghidra";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "rizinorg";
     repo = "rz-ghidra";
-    rev = "v${version}";
-    hash = "sha256-tQAurouRr6fP1tbIkfd0a9UfeYcwiU1BpjOTcooXkT0=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-W9VcKrDAh7GNRbE4eyWbtHlsYLmrjBBgVvWNyMUhlDk=";
     fetchSubmodules = true;
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/rizinorg/rz-ghidra/pull/327/commits/eba20e2c743ed3dfc5d1be090a5018f7267baa49.patch";
-      hash = "sha256-aoXFClXZBcOnHl+6lLYrnui7sRb3cRJQhQfNDLxHtcs=";
-    })
-  ];
-
   nativeBuildInputs = [ cmake ];
   buildInputs = [
     openssl
@@ -59,9 +51,10 @@ stdenv.mkDerivation rec {
     # errors out with undefined symbols from Cutter
     broken = enableCutterPlugin && stdenv.isDarwin;
     description = "Deep ghidra decompiler and sleigh disassembler integration for rizin";
-    homepage = src.meta.homepage;
+    homepage = finalAttrs.src.meta.homepage;
+    changelog = "${finalAttrs.src.meta.homepage}/releases/tag/${finalAttrs.src.rev}";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ chayleaf ];
     inherit (rizin.meta) platforms;
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/tools/analysis/rizin/sigdb.nix b/nixpkgs/pkgs/development/tools/analysis/rizin/sigdb.nix
index 2c4bdaebbaba..40d0fe62f259 100644
--- a/nixpkgs/pkgs/development/tools/analysis/rizin/sigdb.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/rizin/sigdb.nix
@@ -5,15 +5,15 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "rizin-sigdb";
-  version = "unstable-2023-02-13";
+  version = "unstable-2023-08-23";
 
   src = fetchFromGitHub {
     owner = "rizinorg";
     # sigdb-source: source files (.pat and etc), around 2.5gb total
     # sigdb: built and deflated .sig files, around 50mb total
     repo = "sigdb";
-    rev = "829baf835e3515923266898fd597f7f75046ebd2";
-    hash = "sha256-zvGna2CEsDctc9P7hWTaz7kdtxAtPsXHNWOrRQ9ocdc=";
+    rev = "4addbed50cd3b50eeef5a41d72533d079ebbfbf8";
+    hash = "sha256-Fy92MTuLswEgQ/XEUExqdU1Z4a5MP2Ahzi/gGxd5BtA=";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/analysis/rr/zen_workaround.nix b/nixpkgs/pkgs/development/tools/analysis/rr/zen_workaround.nix
index 3ec69aabf8d2..64a44b18fe29 100644
--- a/nixpkgs/pkgs/development/tools/analysis/rr/zen_workaround.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/rr/zen_workaround.nix
@@ -6,11 +6,11 @@
 */
 stdenv.mkDerivation rec {
   pname = "rr-zen_workaround";
-  version = "2020-09-22";
+  version = "2023-11-23";
 
   src = fetchzip {
-    url = "https://gist.github.com/glandium/01d54cefdb70561b5f6675e08f2990f2/archive/2f430f0c136a69b0886281d0c76708997d8878af.zip";
-    sha256 = "1mbmbyymgl75wparv3rgnyxnc44rd6n935jziz9anl9apy031ryi";
+    url = "https://gist.github.com/glandium/01d54cefdb70561b5f6675e08f2990f2/archive/f9d2070a7d87388da39acd157e0e53666a7d6ee0.zip";
+    sha256 = "sha256-VqqKYjd8J7Uh5ea+PjLT93cNdQFvGIwGu4bzx+weSvo=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/snyk/default.nix b/nixpkgs/pkgs/development/tools/analysis/snyk/default.nix
index 4eacb2b476f5..67f8516c49b9 100644
--- a/nixpkgs/pkgs/development/tools/analysis/snyk/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/snyk/default.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "snyk";
-  version = "1.1281.0";
+  version = "1.1284.0";
 
   src = fetchFromGitHub {
     owner = "snyk";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-QxmYArH9HRq2vkGzfhWlCPLS++UiwdzAStUQxhGF85Q=";
+    hash = "sha256-CM9172gSeWf+12e6tsro6O1NtiZqUAT0EsA6LAhZ+8s=";
   };
 
-  npmDepsHash = "sha256-JxX4r1I/F3PEzg9rLfFNEIa4Q8jwuUWC6krH1oSoc8s=";
+  npmDepsHash = "sha256-aode80HyGSyZoEiCdsnEPrVo8KSqTW0GxxsGdRyNdiQ=";
 
   postPatch = ''
     substituteInPlace package.json --replace '"version": "1.0.0-monorepo"' '"version": "${version}"'
@@ -29,6 +29,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     description = "Scans and monitors projects for security vulnerabilities";
+    mainProgram = "snyk";
     homepage = "https://snyk.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/splint/default.nix b/nixpkgs/pkgs/development/tools/analysis/splint/default.nix
index 954342550eac..e22a8b380926 100644
--- a/nixpkgs/pkgs/development/tools/analysis/splint/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/splint/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.splint.org/";
     description = "Annotation-assisted lightweight static analyzer for C";
+    mainProgram = "splint";
 
     longDescription = ''
       Splint is a tool for statically checking C programs for security
diff --git a/nixpkgs/pkgs/development/tools/analysis/stylelint/default.nix b/nixpkgs/pkgs/development/tools/analysis/stylelint/default.nix
index 23afd1aff86e..1149bed3fd5f 100644
--- a/nixpkgs/pkgs/development/tools/analysis/stylelint/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/stylelint/default.nix
@@ -17,6 +17,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     description = "Mighty CSS linter that helps you avoid errors and enforce conventions";
+    mainProgram = "stylelint";
     homepage = "https://stylelint.io";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix b/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix
index a879e0a81153..07693196a956 100644
--- a/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "SystemVerilog linter";
+    mainProgram = "svlint";
     homepage = "https://github.com/dalance/svlint";
     changelog = "https://github.com/dalance/svlint/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/analysis/swarm/default.nix b/nixpkgs/pkgs/development/tools/analysis/swarm/default.nix
index cc67ce8123c8..18ecc912915f 100644
--- a/nixpkgs/pkgs/development/tools/analysis/swarm/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/swarm/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Verification script generator for Spin";
+    mainProgram = "swarm";
     homepage = "http://spinroot.com/";
     license = licenses.free;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-aws.nix b/nixpkgs/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-aws.nix
index 5aa610fafa85..92a35d9b3bc3 100644
--- a/nixpkgs/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-aws.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-aws.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "tflint-ruleset-aws";
-  version = "0.29.0";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-tqHlvJyLRhREKnuMUP479xuD0PjdCZfIMj4L44skiSE=";
+    hash = "sha256-mgYvzxIzh/HibPM+BQoJ7dKqEifMcuoqfOIZU4KcRC4=";
   };
 
-  vendorHash = "sha256-vEkrDwsetW4HtbcgkhcaK42v/CKfRlIoHgYzjoTavqk=";
+  vendorHash = "sha256-JaOVNWF4JMXwGo+JVyknGZrd/M6F9c2PTgGadCqoRsk=";
 
   # upstream Makefile also does a  go test $(go list ./... | grep -v integration)
   preCheck = ''
diff --git a/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix b/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
index e59d0ad11d0f..93f3596bf171 100644
--- a/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
@@ -45,6 +45,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Terraform linter focused on possible errors, best practices, and so on";
+    mainProgram = "tflint";
     homepage = "https://github.com/terraform-linters/tflint";
     changelog = "https://github.com/terraform-linters/tflint/blob/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/tools/analysis/uefi-firmware-parser/default.nix b/nixpkgs/pkgs/development/tools/analysis/uefi-firmware-parser/default.nix
index b879a6ef2374..9981ac8b0388 100644
--- a/nixpkgs/pkgs/development/tools/analysis/uefi-firmware-parser/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/uefi-firmware-parser/default.nix
@@ -17,6 +17,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/theopolis/uefi-firmware-parser/";
     description = "Parse BIOS/Intel ME/UEFI firmware related structures: Volumes, FileSystems, Files, etc";
+    mainProgram = "uefi-firmware-parser";
     # MIT + license headers in some files
     license = with licenses; [
       mit
diff --git a/nixpkgs/pkgs/development/tools/analysis/yallback/default.nix b/nixpkgs/pkgs/development/tools/analysis/yallback/default.nix
index 4e62ff5b9ed8..19ad53d038df 100644
--- a/nixpkgs/pkgs/development/tools/analysis/yallback/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/yallback/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Callbacks for YARA rule matches";
+    mainProgram = "yallback";
     homepage = "https://github.com/abathur/yallback";
     license = licenses.mit;
     maintainers = with maintainers; [ abathur ];
diff --git a/nixpkgs/pkgs/development/tools/apkid/default.nix b/nixpkgs/pkgs/development/tools/apkid/default.nix
index b4c02c8eac19..d54a6564908a 100644
--- a/nixpkgs/pkgs/development/tools/apkid/default.nix
+++ b/nixpkgs/pkgs/development/tools/apkid/default.nix
@@ -40,6 +40,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Android Application Identifier";
+    mainProgram = "apkid";
     homepage = "https://github.com/rednaga/APKiD";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/tools/apko/default.nix b/nixpkgs/pkgs/development/tools/apko/default.nix
index ca056a7f4d94..ee115b939a17 100644
--- a/nixpkgs/pkgs/development/tools/apko/default.nix
+++ b/nixpkgs/pkgs/development/tools/apko/default.nix
@@ -70,6 +70,7 @@ buildGoModule rec {
     homepage = "https://apko.dev/";
     changelog = "https://github.com/chainguard-dev/apko/blob/main/NEWS.md";
     description = "Build OCI images using APK directly without Dockerfile";
+    mainProgram = "apko";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk developer-guy ];
   };
diff --git a/nixpkgs/pkgs/development/tools/apksigcopier/default.nix b/nixpkgs/pkgs/development/tools/apksigcopier/default.nix
index 13cb0300d7f8..1262c9eaaa75 100644
--- a/nixpkgs/pkgs/development/tools/apksigcopier/default.nix
+++ b/nixpkgs/pkgs/development/tools/apksigcopier/default.nix
@@ -57,6 +57,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Copy/extract/patch android apk signatures & compare APKs";
+    mainProgram = "apksigcopier";
     longDescription = ''
       apksigcopier is a tool for copying android APK signatures from a signed
       APK to an unsigned one (in order to verify reproducible builds).
diff --git a/nixpkgs/pkgs/development/tools/apksigner/default.nix b/nixpkgs/pkgs/development/tools/apksigner/default.nix
index 95656dd20303..7b2017c4d9da 100644
--- a/nixpkgs/pkgs/development/tools/apksigner/default.nix
+++ b/nixpkgs/pkgs/development/tools/apksigner/default.nix
@@ -86,6 +86,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Command line tool to sign and verify Android APKs";
+    mainProgram = "apksigner";
     homepage = "https://developer.android.com/studio/command-line/apksigner";
     license = licenses.asl20;
     maintainers = with maintainers; [ linsui ];
diff --git a/nixpkgs/pkgs/development/tools/apktool/default.nix b/nixpkgs/pkgs/development/tools/apktool/default.nix
index f475fb54d1cb..9af6d2c9f90b 100644
--- a/nixpkgs/pkgs/development/tools/apktool/default.nix
+++ b/nixpkgs/pkgs/development/tools/apktool/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A tool for reverse engineering Android apk files";
+    mainProgram = "apktool";
     homepage = "https://ibotpeaches.github.io/Apktool/";
     changelog = "https://github.com/iBotPeaches/Apktool/releases/tag/v${version}";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/nixpkgs/pkgs/development/tools/argc/default.nix b/nixpkgs/pkgs/development/tools/argc/default.nix
index 43e9076110d9..89ee93b1c5d8 100644
--- a/nixpkgs/pkgs/development/tools/argc/default.nix
+++ b/nixpkgs/pkgs/development/tools/argc/default.nix
@@ -28,6 +28,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A command-line options, arguments and sub-commands parser for bash";
+    mainProgram = "argc";
     homepage = "https://github.com/sigoden/argc";
     changelog = "https://github.com/sigoden/argc/releases/tag/v${version}";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/ashpd-demo/default.nix b/nixpkgs/pkgs/development/tools/ashpd-demo/default.nix
index a6122e106092..ba844a6250dd 100644
--- a/nixpkgs/pkgs/development/tools/ashpd-demo/default.nix
+++ b/nixpkgs/pkgs/development/tools/ashpd-demo/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Tool for playing with XDG desktop portals";
+    mainProgram = "ashpd-demo";
     homepage = "https://github.com/bilelmoussaoui/ashpd/tree/master/ashpd-demo";
     license = licenses.mit;
     maintainers = with maintainers; [ jtojnar ];
diff --git a/nixpkgs/pkgs/development/tools/asmfmt/default.nix b/nixpkgs/pkgs/development/tools/asmfmt/default.nix
index a6f15c15c0b5..1c22f3ea1781 100644
--- a/nixpkgs/pkgs/development/tools/asmfmt/default.nix
+++ b/nixpkgs/pkgs/development/tools/asmfmt/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Go assembler formatter";
+    mainProgram = "asmfmt";
     longDescription = ''
       This will format your assembler code in a similar way that gofmt formats
       your Go code.
diff --git a/nixpkgs/pkgs/development/tools/async/default.nix b/nixpkgs/pkgs/development/tools/async/default.nix
index ffff8af8b661..ba6b62281eb8 100644
--- a/nixpkgs/pkgs/development/tools/async/default.nix
+++ b/nixpkgs/pkgs/development/tools/async/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool to parallelize shell commands";
+    mainProgram = "async";
     longDescription = ''
       `async` is a tool to run shell commands in parallel and is designed to be
       able to quickly parallelize shell scripts with minimal changes. It was
diff --git a/nixpkgs/pkgs/development/tools/avro-tools/default.nix b/nixpkgs/pkgs/development/tools/avro-tools/default.nix
index 0868ab8e7f8c..7ee16a2972e1 100644
--- a/nixpkgs/pkgs/development/tools/avro-tools/default.nix
+++ b/nixpkgs/pkgs/development/tools/avro-tools/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage    = "https://avro.apache.org/";
     description = "Avro command-line tools and utilities";
+    mainProgram = "avro-tools";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license     = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix b/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix
index 5ab92dbe8b18..8e55c5884bbd 100644
--- a/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix
@@ -10,7 +10,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "aws-sam-cli";
-  version = "1.110.0";
+  version = "1.113.0";
   pyproject = true;
 
   disabled = python3.pythonOlder "3.8";
@@ -19,10 +19,10 @@ python3.pkgs.buildPythonApplication rec {
     owner = "aws";
     repo = "aws-sam-cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FJHHEsdi2uGP9/GxrANsVEuxZiS4M4BPBGoARQBQpkA=";
+    hash = "sha256-9DHqjhJfWkMJxu2gccbbuzoW9IxDqCBoi8slWnugeJM=";
   };
 
-  nativeBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [
     pythonRelaxDepsHook
     setuptools
   ];
@@ -42,7 +42,7 @@ python3.pkgs.buildPythonApplication rec {
     "tzlocal"
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     aws-lambda-builders
     aws-sam-translator
     boto3
diff --git a/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix b/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix
index 708fbb23c80e..76301b5f4820 100644
--- a/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix
+++ b/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix
@@ -91,6 +91,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Command-line tool for accessing the Backblaze B2 storage service";
+    mainProgram = "backblaze-b2";
     homepage = "https://github.com/Backblaze/B2_Command_Line_Tool";
     changelog = "https://github.com/Backblaze/B2_Command_Line_Tool/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/bacon/default.nix b/nixpkgs/pkgs/development/tools/bacon/default.nix
index 4deaf6a6011c..8270e53493e7 100644
--- a/nixpkgs/pkgs/development/tools/bacon/default.nix
+++ b/nixpkgs/pkgs/development/tools/bacon/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Background rust code checker";
+    mainProgram = "bacon";
     homepage = "https://github.com/Canop/bacon";
     changelog = "https://github.com/Canop/bacon/blob/v${version}/CHANGELOG.md";
     license = licenses.agpl3Only;
diff --git a/nixpkgs/pkgs/development/tools/bashate/default.nix b/nixpkgs/pkgs/development/tools/bashate/default.nix
index f46e9667cbef..69538a923d14 100644
--- a/nixpkgs/pkgs/development/tools/bashate/default.nix
+++ b/nixpkgs/pkgs/development/tools/bashate/default.nix
@@ -38,6 +38,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Style enforcement for bash programs";
+    mainProgram = "bashate";
     homepage = "https://opendev.org/openstack/bashate";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/tools/bazelisk/default.nix b/nixpkgs/pkgs/development/tools/bazelisk/default.nix
index be59f6686d5b..8ca8b416c702 100644
--- a/nixpkgs/pkgs/development/tools/bazelisk/default.nix
+++ b/nixpkgs/pkgs/development/tools/bazelisk/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A user-friendly launcher for Bazel";
+    mainProgram = "bazelisk";
     longDescription = ''
       BEWARE: This package does not work on NixOS.
     '';
diff --git a/nixpkgs/pkgs/development/tools/bbin/default.nix b/nixpkgs/pkgs/development/tools/bbin/default.nix
index ab8638e5033c..7edce1e48998 100644
--- a/nixpkgs/pkgs/development/tools/bbin/default.nix
+++ b/nixpkgs/pkgs/development/tools/bbin/default.nix
@@ -41,6 +41,7 @@ stdenvNoCC.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/babashka/bbin";
     description = "Install any Babashka script or project with one command";
+    mainProgram = "bbin";
     license = licenses.mit;
     inherit (babashka-unwrapped.meta) platforms;
     maintainers = with maintainers; [ sohalt ];
diff --git a/nixpkgs/pkgs/development/tools/bearer/default.nix b/nixpkgs/pkgs/development/tools/bearer/default.nix
index 75b264effdc9..7e1ccc646b3a 100644
--- a/nixpkgs/pkgs/development/tools/bearer/default.nix
+++ b/nixpkgs/pkgs/development/tools/bearer/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "bearer";
-  version = "1.41.0";
+  version = "1.43.1";
 
   src = fetchFromGitHub {
     owner = "bearer";
     repo = "bearer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RwoUyEIwKGDRqkETGEo6x1U14lqBogDzsoOHQKt8lHc=";
+    hash = "sha256-T5JiGoiVs6crbWiOPbjLpcHRdIovHAVUDAaa4e3ZDPc=";
   };
 
-  vendorHash = "sha256-KCsCUVO2WsKJKU/aiXgeyS01341Xf9yQnKvQ7hAkYbQ=";
+  vendorHash = "sha256-g0AnL6r3dUfCIAytTknAD5aCPBsohDUMNfMAYKBebi4=";
 
   subPackages = [
     "cmd/bearer"
diff --git a/nixpkgs/pkgs/development/tools/benthos/default.nix b/nixpkgs/pkgs/development/tools/benthos/default.nix
index 12466c8cfe82..12d132a38e08 100644
--- a/nixpkgs/pkgs/development/tools/benthos/default.nix
+++ b/nixpkgs/pkgs/development/tools/benthos/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Fancy stream processing made operationally mundane";
+    mainProgram = "benthos";
     homepage = "https://www.benthos.dev";
     changelog = "https://github.com/benthosdev/benthos/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/bin2c/default.nix b/nixpkgs/pkgs/development/tools/bin2c/default.nix
index 02039caf457c..2528b1ea0961 100644
--- a/nixpkgs/pkgs/development/tools/bin2c/default.nix
+++ b/nixpkgs/pkgs/development/tools/bin2c/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Embed binary & text files inside C binaries";
+    mainProgram = "bin2c";
     homepage = "https://github.com/adobe/bin2c";
     license = licenses.asl20;
     maintainers = [ maintainers.shadowrz ];
diff --git a/nixpkgs/pkgs/development/tools/bingo/default.nix b/nixpkgs/pkgs/development/tools/bingo/default.nix
index f12f0709ac7c..9d9863ca3203 100644
--- a/nixpkgs/pkgs/development/tools/bingo/default.nix
+++ b/nixpkgs/pkgs/development/tools/bingo/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Like `go get` but for Go tools! CI Automating versioning of Go binaries in a nested, isolated Go modules.";
+    mainProgram = "bingo";
     homepage = "https://github.com/bwplotka/bingo";
     license = licenses.asl20;
     maintainers = with maintainers; [ aaronjheng ];
diff --git a/nixpkgs/pkgs/development/tools/biome/default.nix b/nixpkgs/pkgs/development/tools/biome/default.nix
index 2f1a5da293c5..dc49507bb96f 100644
--- a/nixpkgs/pkgs/development/tools/biome/default.nix
+++ b/nixpkgs/pkgs/development/tools/biome/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "biome";
-  version = "1.5.3";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "biomejs";
     repo = "biome";
     rev = "cli/v${version}";
-    hash = "sha256-70LHsmS01ssD4yCbHfBouV+NyhMIlBbX0jcHFu8aLMw=";
+    hash = "sha256-JApGz2vDGU1IFmhyaT1noCRIP0YoucVvHq395/CJ1zA=";
   };
 
-  cargoHash = "sha256-wf6X6aY1O9EABQ6sDNAb3XsVrC0lgUtpgoieiPZ7r3k=";
+  cargoHash = "sha256-4m2xtj3FHd8DTS3BeUMVoo8Pzjkol96B6tvNyzqPhEo=";
 
   nativeBuildInputs = [
     pkg-config
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoBuildFlags = [ "-p=biome_cli" ];
   cargoTestFlags = cargoBuildFlags ++
-    # skip a broken test from v1.5.3 release
+    # skip a broken test from v1.6.1 release
     # this will be removed on the next version
     [ "-- --skip=diagnostics::test::termination_diagnostic_size" ];
 
diff --git a/nixpkgs/pkgs/development/tools/bloaty/default.nix b/nixpkgs/pkgs/development/tools/bloaty/default.nix
index 96a6d28e9787..147d882d50af 100644
--- a/nixpkgs/pkgs/development/tools/bloaty/default.nix
+++ b/nixpkgs/pkgs/development/tools/bloaty/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "a size profiler for binaries";
+    mainProgram = "bloaty";
     homepage = "https://github.com/google/bloaty";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/bodyclose/default.nix b/nixpkgs/pkgs/development/tools/bodyclose/default.nix
index e252223b883f..6f8686a7b7b1 100644
--- a/nixpkgs/pkgs/development/tools/bodyclose/default.nix
+++ b/nixpkgs/pkgs/development/tools/bodyclose/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Golang linter to check whether HTTP response body is closed and a re-use of TCP connection is not blocked";
+    mainProgram = "bodyclose";
     homepage = "https://github.com/timakin/bodyclose";
     license = licenses.mit;
     maintainers = with maintainers; [ meain ];
diff --git a/nixpkgs/pkgs/development/tools/bpf-linker/default.nix b/nixpkgs/pkgs/development/tools/bpf-linker/default.nix
index 8c5cb8863e3d..5f594deba7c9 100644
--- a/nixpkgs/pkgs/development/tools/bpf-linker/default.nix
+++ b/nixpkgs/pkgs/development/tools/bpf-linker/default.nix
@@ -31,13 +31,9 @@ rustPlatform.buildRustPackage rec {
   # rust-src and `-Z build-std=core` are required to properly run the tests
   doCheck = false;
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   meta = with lib; {
     description = "Simple BPF static linker";
+    mainProgram = "bpf-linker";
     homepage = "https://github.com/aya-rs/bpf-linker";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ nickcao ];
diff --git a/nixpkgs/pkgs/development/tools/buf/default.nix b/nixpkgs/pkgs/development/tools/buf/default.nix
index 85ad114c93df..814e13417471 100644
--- a/nixpkgs/pkgs/development/tools/buf/default.nix
+++ b/nixpkgs/pkgs/development/tools/buf/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "buf";
-  version = "1.29.0";
+  version = "1.30.0";
 
   src = fetchFromGitHub {
     owner = "bufbuild";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-X3/t+hMcZXR3X+XtbW2eItTgeP1NIuqrkMT4bX5VJog=";
+    hash = "sha256-SHwmX9/9qqhpTDVKf+0HAJqPvSKKoUyxHqCe8WXhMUc=";
   };
 
-  vendorHash = "sha256-0wW938eU9my92dpwHEJ0Obt4XSIK5vuDa1P27nbhzao=";
+  vendorHash = "sha256-4ccctJ5C4/Ff+wLrZPR1oS0tjqkULAsTjKm3X8WDr6o=";
 
   patches = [
     # Skip a test that requires networking to be available to work,
diff --git a/nixpkgs/pkgs/development/tools/build-managers/alire/default.nix b/nixpkgs/pkgs/development/tools/build-managers/alire/default.nix
index eaa87d573f8c..2eb837442ac4 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/alire/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/alire/default.nix
@@ -1,31 +1,41 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , gprbuild
 , gnat
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "alire";
-  version = "1.2.2";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "alire-project";
     repo = "alire";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-rwNiSXOIIQR1I8wwp1ROVOfEChT6SCa5c6XnTRqekDc=";
+    hash = "sha256-WF7spXwQR04zIGWazUrbCdeLYOzsk8C6G+cfSS6bwdE=";
 
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ gprbuild gnat ];
 
-  # on HEAD (roughly 2c4e5a3), alire provides a dev/build.sh script. for now,
-  # just use gprbuild.
+  patches = [(fetchpatch {
+    name = "control-build-jobs.patch";
+    url = "https://github.com/alire-project/alire/pull/1651.patch";
+    hash = "sha256-CBQm8Doydze/KouLWuYm+WYlvnDguR/OuX8A4y4F6fo=";
+  })];
+
+  postPatch = ''
+    patchShebangs ./dev/build.sh
+  '';
+
   buildPhase = ''
     runHook preBuild
 
-    gprbuild -j$NIX_BUILD_CORES -P alr_env
+    export ALIRE_BUILD_JOBS="$NIX_BUILD_CORES"
+    ./dev/build.sh
 
     runHook postBuild
   '';
diff --git a/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix b/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix
index 3cf880499944..9e3ff98f285d 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix
@@ -81,6 +81,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://ant.apache.org/";
     description = "A Java-based build tool";
+    mainProgram = "ant";
 
     longDescription = ''
       Apache Ant is a Java-based build tool.  In theory, it is kind of like
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bam/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bam/default.nix
index 556725cca6c4..c435e2fa16ec 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bam/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bam/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Yet another build manager";
+    mainProgram = "bam";
     maintainers = with maintainers;
     [
       raskin
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
index 1692058dcac8..9f1058bd9e48 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/buchgr/bazel-remote";
     description = "A remote HTTP/1.1 cache for Bazel";
+    mainProgram = "bazel-remote";
     changelog = "https://github.com/buchgr/bazel-remote/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = lib.teams.bazel.members;
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch
deleted file mode 100644
index 1fa1e5748333..000000000000
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
-index 6fff2af..7e2877e 100644
---- a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
-+++ b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
-@@ -47,6 +47,16 @@ public final class PosixLocalEnvProvider implements LocalEnvProvider {
-       Map<String, String> env, BinTools binTools, String fallbackTmpDir) {
-     ImmutableMap.Builder<String, String> result = ImmutableMap.builder();
-     result.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR")));
-+
-+    // In case we are running on NixOS.
-+    // If bash is called with an unset PATH on this platform,
-+    // it will set it to /no-such-path and default tools will be missings.
-+    // See, https://github.com/NixOS/nixpkgs/issues/94222
-+    // So we ensure that minimal dependencies are present.
-+    if (!env.containsKey("PATH")){
-+        result.put("PATH", "@actionsPathPatch@");
-+    }
-+ 
-     String p = clientEnv.get("TMPDIR");
-     if (Strings.isNullOrEmpty(p)) {
-       // Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR
-index 95642767c6..39d3c62461 100644
---- a/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
-+++ b/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
-@@ -74,6 +74,16 @@ public final class XcodeLocalEnvProvider implements LocalEnvProvider {
-
-     ImmutableMap.Builder<String, String> newEnvBuilder = ImmutableMap.builder();
-     newEnvBuilder.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR")));
-+
-+    // In case we are running on NixOS.
-+    // If bash is called with an unset PATH on this platform,
-+    // it will set it to /no-such-path and default tools will be missings.
-+    // See, https://github.com/NixOS/nixpkgs/issues/94222
-+    // So we ensure that minimal dependencies are present.
-+    if (!env.containsKey("PATH")){
-+      newEnvBuilder.put("PATH", "@actionsPathPatch@");
-+    }
-+
-     String p = clientEnv.get("TMPDIR");
-     if (Strings.isNullOrEmpty(p)) {
-       // Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
deleted file mode 100644
index f4fee72f6bf3..000000000000
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
+++ /dev/null
@@ -1,662 +0,0 @@
-{ stdenv, callPackage, lib, fetchurl, fetchpatch, fetchFromGitHub, installShellFiles
-, runCommand, runCommandCC, makeWrapper, recurseIntoAttrs
-# this package (through the fixpoint glass)
-, bazel_self
-, lr, xe, zip, unzip, bash, writeCBin, coreutils
-, which, gawk, gnused, gnutar, gnugrep, gzip, findutils
-# updater
-, python3, writeScript
-# Apple dependencies
-, cctools, libcxx, CoreFoundation, CoreServices, Foundation
-# Allow to independently override the jdks used to build and run respectively
-, buildJdk, runJdk
-, buildJdkName
-, runtimeShell
-# Always assume all markers valid (this is needed because we remove markers; they are non-deterministic).
-# Also, don't clean up environment variables (so that NIX_ environment variables are passed to compilers).
-, enableNixHacks ? false
-, gcc-unwrapped
-, autoPatchelfHook
-, file
-, substituteAll
-, writeTextFile
-}:
-
-let
-  version = "4.2.2";
-  sourceRoot = ".";
-
-  src = fetchurl {
-    url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
-    sha256 = "mYHQ1To1bE6HlihHdQqXyegFTkYIVHSABsgPDX4rLTM=";
-  };
-
-  # Update with `eval $(nix-build -A bazel.updater)`,
-  # then add new dependencies from the dict in ./src-deps.json as required.
-  srcDeps = lib.attrsets.attrValues srcDepsSet;
-  srcDepsSet =
-    let
-      srcs = lib.importJSON ./src-deps.json;
-      toFetchurl = d: lib.attrsets.nameValuePair d.name (fetchurl {
-        urls = d.urls;
-        sha256 = d.sha256;
-        });
-        in builtins.listToAttrs (map toFetchurl [
-      srcs.desugar_jdk_libs
-      srcs.io_bazel_skydoc
-      srcs.bazel_skylib
-      srcs.io_bazel_rules_sass
-      srcs.platforms
-      (if stdenv.hostPlatform.isDarwin
-       then srcs."java_tools_javac11_darwin-v10.6.zip"
-       else srcs."java_tools_javac11_linux-v10.6.zip")
-      srcs."coverage_output_generator-v2.5.zip"
-      srcs.build_bazel_rules_nodejs
-      srcs."android_tools_pkg-0.23.0.tar.gz"
-      srcs.bazel_toolchains
-      srcs.com_github_grpc_grpc
-      srcs.upb
-      srcs.com_google_protobuf
-      srcs.rules_pkg
-      srcs.rules_cc
-      srcs.rules_java
-      srcs.rules_proto
-      srcs.com_google_absl
-      srcs.com_github_google_re2
-      srcs.com_github_cares_cares
-      ]);
-
-  distDir = runCommand "bazel-deps" {} ''
-    mkdir -p $out
-    for i in ${builtins.toString srcDeps}; do cp $i $out/$(stripHash $i); done
-  '';
-
-  defaultShellUtils =
-    # Keep this list conservative. For more exotic tools, prefer to use
-    # @rules_nixpkgs to pull in tools from the nix repository. Example:
-    #
-    # WORKSPACE:
-    #
-    #     nixpkgs_git_repository(
-    #         name = "nixpkgs",
-    #         revision = "def5124ec8367efdba95a99523dd06d918cb0ae8",
-    #     )
-    #
-    #     # This defines an external Bazel workspace.
-    #     nixpkgs_package(
-    #         name = "bison",
-    #         repositories = { "nixpkgs": "@nixpkgs//:default.nix" },
-    #     )
-    #
-    # some/BUILD.bazel:
-    #
-    #     genrule(
-    #        ...
-    #        cmd = "$(location @bison//:bin/bison) -other -args",
-    #        tools = [
-    #            ...
-    #            "@bison//:bin/bison",
-    #        ],
-    #     )
-    [
-      bash
-      coreutils
-      file
-      findutils
-      gawk
-      gnugrep
-      gnused
-      gnutar
-      gzip
-      python3
-      unzip
-      which
-      zip
-    ];
-
-  defaultShellPath = lib.makeBinPath defaultShellUtils;
-
-  # Java toolchain used for the build and tests
-  javaToolchain = "@bazel_tools//tools/jdk:toolchain_${buildJdkName}";
-
-  platforms = lib.platforms.linux ++ lib.platforms.darwin;
-
-  # This repository is fetched by bazel at runtime
-  # however it contains prebuilt java binaries, with wrong interpreter
-  # and libraries path.
-  # We prefetch it, patch it, and override it in a global bazelrc.
-  system = if stdenv.hostPlatform.isDarwin then "darwin" else "linux";
-
-  # on aarch64 Darwin, `uname -m` returns "arm64"
-  arch = with stdenv.hostPlatform; if isDarwin && isAarch64 then "arm64" else parsed.cpu.name;
-
-  remote_java_tools = stdenv.mkDerivation {
-    name = "remote_java_tools_${system}";
-
-    src = srcDepsSet."java_tools_javac11_${system}-v10.6.zip";
-
-    nativeBuildInputs = [ unzip ]
-      ++ lib.optional stdenv.isLinux autoPatchelfHook;
-    buildInputs = [ gcc-unwrapped ];
-
-    sourceRoot = ".";
-
-    buildPhase = ''
-      runHook preBuild
-
-      mkdir $out;
-
-      runHook postBuild
-    '';
-
-    installPhase = ''
-      runHook preInstall
-
-      cp -Ra * $out/
-      touch $out/WORKSPACE
-
-      runHook postInstall
-    '';
-  };
-
-  bazelRC = writeTextFile {
-    name = "bazel-rc";
-    text = ''
-      startup --server_javabase=${runJdk}
-
-      # Can't use 'common'; https://github.com/bazelbuild/bazel/issues/3054
-      # Most commands inherit from 'build' anyway.
-      build --distdir=${distDir}
-      fetch --distdir=${distDir}
-      query --distdir=${distDir}
-
-      build --override_repository=${remote_java_tools.name}=${remote_java_tools}
-      fetch --override_repository=${remote_java_tools.name}=${remote_java_tools}
-      query --override_repository=${remote_java_tools.name}=${remote_java_tools}
-
-      # Provide a default java toolchain, this will be the same as ${runJdk}
-      build --host_javabase='@local_jdk//:jdk'
-
-      # load default location for the system wide configuration
-      try-import /etc/bazel.bazelrc
-    '';
-  };
-
-in
-stdenv.mkDerivation rec {
-  pname = "bazel";
-  inherit version;
-
-  meta = with lib; {
-    homepage = "https://github.com/bazelbuild/bazel/";
-    description = "Build tool that builds code quickly and reliably";
-    sourceProvenance = with sourceTypes; [
-      fromSource
-      binaryBytecode  # source bundles dependencies as jars
-    ];
-    license = licenses.asl20;
-    maintainers = lib.teams.bazel.members;
-    inherit platforms;
-  };
-
-  inherit src;
-  inherit sourceRoot;
-  patches = [
-    ./upb-clang16.patch
-
-    # On Darwin, the last argument to gcc is coming up as an empty string. i.e: ''
-    # This is breaking the build of any C target. This patch removes the last
-    # argument if it's found to be an empty string.
-    ../trim-last-argument-to-gcc-if-empty.patch
-
-    # On Darwin, using clang 6 to build fails because of a linker error (see #105573),
-    # but using clang 7 fails because libarclite_macosx.a cannot be found when linking
-    # the xcode_locator tool.
-    # This patch removes using the -fobjc-arc compiler option and makes the code
-    # compile without automatic reference counting. Caveat: this leaks memory, but
-    # we accept this fact because xcode_locator is only a short-lived process used during the build.
-    ./no-arc.patch
-
-    # --experimental_strict_action_env (which may one day become the default
-    # see bazelbuild/bazel#2574) hardcodes the default
-    # action environment to a non hermetic value (e.g. "/usr/local/bin").
-    # This is non hermetic on non-nixos systems. On NixOS, bazel cannot find the required binaries.
-    # So we are replacing this bazel paths by defaultShellPath,
-    # improving hermeticity and making it work in nixos.
-    (substituteAll {
-      src = ../strict_action_env.patch;
-      strictActionEnvPatch = defaultShellPath;
-    })
-
-    (substituteAll {
-      src = ./actions_path.patch;
-      actionsPathPatch = defaultShellPath;
-    })
-
-    # bazel reads its system bazelrc in /etc
-    # override this path to a builtin one
-    (substituteAll {
-      src = ../bazel_rc.patch;
-      bazelSystemBazelRCPath = bazelRC;
-    })
-
-    # disable suspend detection during a build inside Nix as this is
-    # not available inside the darwin sandbox
-    ../bazel_darwin_sandbox.patch
-  ] ++ lib.optional enableNixHacks ../nix-hacks.patch;
-
-
-  # Additional tests that check bazel’s functionality. Execute
-  #
-  #     nix-build . -A bazel.tests
-  #
-  # in the nixpkgs checkout root to exercise them locally.
-  passthru.tests =
-    let
-      runLocal = name: attrs: script:
-      let
-        attrs' = removeAttrs attrs [ "buildInputs" ];
-        buildInputs = attrs.buildInputs or [];
-      in
-      runCommandCC name ({
-        inherit buildInputs;
-        preferLocalBuild = true;
-        meta.platforms = platforms;
-      } // attrs') script;
-
-      # bazel wants to extract itself into $install_dir/install every time it runs,
-      # so let’s do that only once.
-      extracted = bazelPkg:
-        let install_dir =
-          # `install_base` field printed by `bazel info`, minus the hash.
-          # yes, this path is kinda magic. Sorry.
-          "$HOME/.cache/bazel/_bazel_nixbld";
-        in runLocal "bazel-extracted-homedir" { passthru.install_dir = install_dir; } ''
-            export HOME=$(mktemp -d)
-            touch WORKSPACE # yeah, everything sucks
-            install_base="$(${bazelPkg}/bin/bazel info | grep install_base)"
-            # assert it’s actually below install_dir
-            [[ "$install_base" =~ ${install_dir} ]] \
-              || (echo "oh no! $install_base but we are \
-            trying to copy ${install_dir} to $out instead!"; exit 1)
-            cp -R ${install_dir} $out
-          '';
-
-      bazelTest = { name, bazelScript, workspaceDir, bazelPkg, buildInputs ? [] }:
-        let
-          be = extracted bazelPkg;
-        in runLocal name { inherit buildInputs; } (
-          # skip extraction caching on Darwin, because nobody knows how Darwin works
-          (lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
-            # set up home with pre-unpacked bazel
-            export HOME=$(mktemp -d)
-            mkdir -p ${be.install_dir}
-            cp -R ${be}/install ${be.install_dir}
-
-            # https://stackoverflow.com/questions/47775668/bazel-how-to-skip-corrupt-installation-on-centos6
-            # Bazel checks whether the mtime of the install dir files
-            # is >9 years in the future, otherwise it extracts itself again.
-            # see PosixFileMTime::IsUntampered in src/main/cpp/util
-            # What the hell bazel.
-            ${lr}/bin/lr -0 -U ${be.install_dir} | ${xe}/bin/xe -N0 -0 touch --date="9 years 6 months" {}
-          '')
-          +
-          ''
-            # Note https://github.com/bazelbuild/bazel/issues/5763#issuecomment-456374609
-            # about why to create a subdir for the workspace.
-            cp -r ${workspaceDir} wd && chmod u+w wd && cd wd
-
-            ${bazelScript}
-
-            touch $out
-          '');
-
-      bazelWithNixHacks = bazel_self.override { enableNixHacks = true; };
-
-      bazel-examples = fetchFromGitHub {
-        owner = "bazelbuild";
-        repo = "examples";
-        rev = "4183fc709c26a00366665e2d60d70521dc0b405d";
-        sha256 = "1mm4awx6sa0myiz9j4hwp71rpr7yh8vihf3zm15n2ii6xb82r31k";
-      };
-
-    in (lib.optionalAttrs (!stdenv.hostPlatform.isDarwin) {
-      # `extracted` doesn’t work on darwin
-      shebang = callPackage ../shebang-test.nix { inherit runLocal extracted bazelTest distDir; bazel = bazel_self; };
-    }) // {
-      bashTools = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self; };
-      cpp = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazel_self; };
-      java = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazel_self; };
-      protobuf = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self; };
-      pythonBinPath = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self; };
-
-      bashToolsWithNixHacks = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
-
-      cppWithNixHacks = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazelWithNixHacks; };
-      javaWithNixHacks = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazelWithNixHacks; };
-      protobufWithNixHacks = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
-      pythonBinPathWithNixHacks = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
-    };
-
-  src_for_updater = stdenv.mkDerivation rec {
-    name = "updater-sources";
-    inherit src;
-    nativeBuildInputs = [ unzip ];
-    inherit sourceRoot;
-    installPhase = ''
-      runHook preInstall
-
-      cp -r . "$out"
-
-      runHook postInstall
-    '';
-  };
-  # update the list of workspace dependencies
-  passthru.updater = writeScript "update-bazel-deps.sh" ''
-    #!${runtimeShell}
-    (cd "${src_for_updater}" &&
-        BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \
-        "${bazel_self}"/bin/bazel \
-            query 'kind(http_archive, //external:all) + kind(http_file, //external:all) + kind(distdir_tar, //external:all) + kind(git_repository, //external:all)' \
-            --loading_phase_threads=1 \
-            --output build) \
-    | "${python3}"/bin/python3 "${./update-srcDeps.py}" \
-      "${builtins.toString ./src-deps.json}"
-  '';
-
-  # Necessary for the tests to pass on Darwin with sandbox enabled.
-  # Bazel starts a local server and needs to bind a local address.
-  __darwinAllowLocalNetworking = true;
-
-  postPatch = let
-
-    darwinPatches = ''
-      bazelLinkFlags () {
-        eval set -- "$NIX_LDFLAGS"
-        local flag
-        for flag in "$@"; do
-          printf ' -Wl,%s' "$flag"
-        done
-      }
-
-      # Disable Bazel's Xcode toolchain detection which would configure compilers
-      # and linkers from Xcode instead of from PATH
-      export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
-
-      # Explicitly configure gcov since we don't have it on Darwin, so autodetection fails
-      export GCOV=${coreutils}/bin/false
-
-      # Framework search paths aren't added by bintools hook
-      # https://github.com/NixOS/nixpkgs/pull/41914
-      export NIX_LDFLAGS+=" -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks"
-
-      # libcxx includes aren't added by libcxx hook
-      # https://github.com/NixOS/nixpkgs/pull/41589
-      export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${lib.getDev libcxx}/include/c++/v1"
-      # for CLang 16 compatibility in third_party/{zlib}, external/{upb} dependencies
-      export NIX_CFLAGS_COMPILE+=" -Wno-implicit-function-declaration -Wno-gnu-offsetof-extensions"
-
-      # don't use system installed Xcode to run clang, use Nix clang instead
-      sed -i -E "s;/usr/bin/xcrun (--sdk macosx )?clang;${stdenv.cc}/bin/clang $NIX_CFLAGS_COMPILE $(bazelLinkFlags) -framework CoreFoundation;g" \
-        scripts/bootstrap/compile.sh \
-        src/tools/xcode/realpath/BUILD \
-        src/tools/xcode/stdredirect/BUILD \
-        tools/osx/BUILD
-
-      substituteInPlace scripts/bootstrap/compile.sh --replace ' -mmacosx-version-min=10.9' ""
-
-      # nixpkgs's libSystem cannot use pthread headers directly, must import GCD headers instead
-      sed -i -e "/#include <pthread\/spawn.h>/i #include <dispatch/dispatch.h>" src/main/cpp/blaze_util_darwin.cc
-
-      # clang installed from Xcode has a compatibility wrapper that forwards
-      # invocations of gcc to clang, but vanilla clang doesn't
-      sed -i -e 's;_find_generic(repository_ctx, "gcc", "CC", overriden_tools);_find_generic(repository_ctx, "clang", "CC", overriden_tools);g' tools/cpp/unix_cc_configure.bzl
-
-      sed -i -e 's;/usr/bin/libtool;${cctools}/bin/libtool;g' tools/cpp/unix_cc_configure.bzl
-      wrappers=( tools/cpp/osx_cc_wrapper.sh tools/cpp/osx_cc_wrapper.sh.tpl )
-      for wrapper in "''${wrappers[@]}"; do
-        sed -i -e "s,/usr/bin/install_name_tool,${cctools}/bin/install_name_tool,g" $wrapper
-      done
-    '';
-
-    genericPatches = ''
-      # Substitute j2objc and objc wrapper's python shebang to plain python path.
-      substituteInPlace tools/j2objc/j2objc_header_map.py --replace "$!/usr/bin/python2.7" "#!${python3.interpreter}"
-      substituteInPlace tools/j2objc/j2objc_wrapper.py --replace "$!/usr/bin/python2.7" "#!${python3.interpreter}"
-      substituteInPlace tools/objc/j2objc_dead_code_pruner.py --replace "$!/usr/bin/python2.7" "#!${python3.interpreter}"
-
-      # md5sum is part of coreutils
-      sed -i 's|/sbin/md5|md5sum|g' \
-        src/BUILD third_party/ijar/test/testenv.sh tools/objc/libtool.sh
-
-      # replace initial value of pythonShebang variable in BazelPythonSemantics.java
-      substituteInPlace src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java \
-        --replace '"#!/usr/bin/env " + pythonExecutableName' "\"#!${python3}/bin/python\""
-
-      # substituteInPlace is rather slow, so prefilter the files with grep
-      grep -rlZ /bin/ src/main/java/com/google/devtools | while IFS="" read -r -d "" path; do
-        # If you add more replacements here, you must change the grep above!
-        # Only files containing /bin are taken into account.
-        substituteInPlace "$path" \
-          --replace /bin/bash ${bash}/bin/bash \
-          --replace "/usr/bin/env bash" ${bash}/bin/bash \
-          --replace "/usr/bin/env python" ${python3}/bin/python \
-          --replace /usr/bin/env ${coreutils}/bin/env \
-          --replace /bin/true ${coreutils}/bin/true
-      done
-
-      # bazel test runner include references to /bin/bash
-      substituteInPlace tools/build_rules/test_rules.bzl \
-        --replace /bin/bash ${bash}/bin/bash
-
-      for i in $(find tools/cpp/ -type f)
-      do
-        substituteInPlace $i \
-          --replace /bin/bash ${bash}/bin/bash
-      done
-
-      # Fixup scripts that generate scripts. Not fixed up by patchShebangs below.
-      substituteInPlace scripts/bootstrap/compile.sh \
-          --replace /bin/bash ${bash}/bin/bash
-
-      # add nix environment vars to .bazelrc
-      cat >> .bazelrc <<EOF
-      # Limit the resources Bazel is allowed to use during the build to 1/2 the
-      # available RAM and 3/4 the available CPU cores. This should help avoid
-      # overwhelming the build machine.
-      build --local_ram_resources=HOST_RAM*.5
-      build --local_cpu_resources=HOST_CPUS*.75
-
-      build --distdir=${distDir}
-      fetch --distdir=${distDir}
-      build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
-      build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
-      build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
-      build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
-      build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
-      build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
-      build --host_javabase='@local_jdk//:jdk'
-      build --host_java_toolchain='${javaToolchain}'
-      build --verbose_failures
-      build --curses=no
-      EOF
-
-      # add the same environment vars to compile.sh
-      sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
-          -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
-          -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
-          -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
-          -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
-          -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
-          -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
-          -e "/\$command \\\\$/a --host_java_toolchain='${javaToolchain}' \\\\" \
-          -e "/\$command \\\\$/a --verbose_failures \\\\" \
-          -e "/\$command \\\\$/a --curses=no \\\\" \
-          -i scripts/bootstrap/compile.sh
-
-      # This is necessary to avoid:
-      # "error: no visible @interface for 'NSDictionary' declares the selector
-      # 'initWithContentsOfURL:error:'"
-      # This can be removed when the apple_sdk is upgraded beyond 10.13+
-      sed -i '/initWithContentsOfURL:versionPlistUrl/ {
-        N
-        s/error:nil\];/\];/
-      }' tools/osx/xcode_locator.m
-
-      # append the PATH with defaultShellPath in tools/bash/runfiles/runfiles.bash
-      echo "PATH=\$PATH:${defaultShellPath}" >> runfiles.bash.tmp
-      cat tools/bash/runfiles/runfiles.bash >> runfiles.bash.tmp
-      mv runfiles.bash.tmp tools/bash/runfiles/runfiles.bash
-
-      patchShebangs .
-    '';
-    in lib.optionalString stdenv.hostPlatform.isDarwin darwinPatches
-     + genericPatches;
-
-  buildInputs = [buildJdk] ++ defaultShellUtils;
-
-  # when a command can’t be found in a bazel build, you might also
-  # need to add it to `defaultShellPath`.
-  nativeBuildInputs = [
-    installShellFiles
-    makeWrapper
-    python3
-    unzip
-    which
-    zip
-    python3.pkgs.absl-py   # Needed to build fish completion
-  ] ++ lib.optionals (stdenv.isDarwin) [ cctools libcxx CoreFoundation CoreServices Foundation ];
-
-  # Bazel makes extensive use of symlinks in the WORKSPACE.
-  # This causes problems with infinite symlinks if the build output is in the same location as the
-  # Bazel WORKSPACE. This is why before executing the build, the source code is moved into a
-  # subdirectory.
-  # Failing to do this causes "infinite symlink expansion detected"
-  preBuildPhases = ["preBuildPhase"];
-  preBuildPhase = ''
-    mkdir bazel_src
-    shopt -s dotglob extglob
-    mv !(bazel_src) bazel_src
-  '';
-  buildPhase = ''
-    runHook preBuild
-
-    # Increasing memory during compilation might be necessary.
-    # export BAZEL_JAVAC_OPTS="-J-Xmx2g -J-Xms200m"
-
-    # If EMBED_LABEL isn't set, it'd be auto-detected from CHANGELOG.md
-    # and `git rev-parse --short HEAD` which would result in
-    # "3.7.0- (@non-git)" due to non-git build and incomplete changelog.
-    # Actual bazel releases use scripts/release/common.sh which is based
-    # on branch/tag information which we don't have with tarball releases.
-    # Note that .bazelversion is always correct and is based on bazel-*
-    # executable name, version checks should work fine
-    export EMBED_LABEL="${version}- (@non-git)"
-    ${bash}/bin/bash ./bazel_src/compile.sh
-    ./bazel_src/scripts/generate_bash_completion.sh \
-        --bazel=./bazel_src/output/bazel \
-        --output=./bazel_src/output/bazel-complete.bash \
-        --prepend=./bazel_src/scripts/bazel-complete-header.bash \
-        --prepend=./bazel_src/scripts/bazel-complete-template.bash
-    ${python3}/bin/python3 ./bazel_src/scripts/generate_fish_completion.py \
-        --bazel=./bazel_src/output/bazel \
-        --output=./bazel_src/output/bazel-complete.fish
-
-    # need to change directory for bazel to find the workspace
-    cd ./bazel_src
-    # build execlog tooling
-    export HOME=$(mktemp -d)
-    ./output/bazel build  src/tools/execlog:parser_deploy.jar
-    cd -
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/bin
-
-    # official wrapper scripts that searches for $WORKSPACE_ROOT/tools/bazel
-    # if it can’t find something in tools, it calls $out/bin/bazel-{version}-{os_arch}
-    # The binary _must_ exist with this naming if your project contains a .bazelversion
-    # file.
-    cp ./bazel_src/scripts/packages/bazel.sh $out/bin/bazel
-    wrapProgram $out/bin/bazel $wrapperfile --suffix PATH : ${defaultShellPath}
-    mv ./bazel_src/output/bazel $out/bin/bazel-${version}-${system}-${arch}
-
-    mkdir $out/share
-    cp ./bazel_src/bazel-bin/src/tools/execlog/parser_deploy.jar $out/share/parser_deploy.jar
-    cat <<EOF > $out/bin/bazel-execlog
-    #!${runtimeShell} -e
-    ${runJdk}/bin/java -jar $out/share/parser_deploy.jar \$@
-    EOF
-    chmod +x $out/bin/bazel-execlog
-
-    # shell completion files
-    installShellCompletion --bash \
-      --name bazel.bash \
-      ./bazel_src/output/bazel-complete.bash
-    installShellCompletion --zsh \
-      --name _bazel \
-      ./bazel_src/scripts/zsh_completion/_bazel
-    installShellCompletion --fish \
-      --name bazel.fish \
-      ./bazel_src/output/bazel-complete.fish
-  '';
-
-  # Install check fails on `aarch64-darwin`
-  # https://github.com/NixOS/nixpkgs/issues/145587
-  doInstallCheck = stdenv.hostPlatform.system != "aarch64-darwin";
-  installCheckPhase = ''
-    export TEST_TMPDIR=$(pwd)
-
-    hello_test () {
-      $out/bin/bazel test \
-        --test_output=errors \
-        --java_toolchain='${javaToolchain}' \
-        examples/cpp:hello-success_test \
-        examples/java-native/src/test/java/com/example/myproject:hello
-    }
-
-    cd ./bazel_src
-
-    # test whether $WORKSPACE_ROOT/tools/bazel works
-
-    mkdir -p tools
-    cat > tools/bazel <<"EOF"
-    #!${runtimeShell} -e
-    exit 1
-    EOF
-    chmod +x tools/bazel
-
-    # first call should fail if tools/bazel is used
-    ! hello_test
-
-    cat > tools/bazel <<"EOF"
-    #!${runtimeShell} -e
-    exec "$BAZEL_REAL" "$@"
-    EOF
-
-    # second call succeeds because it defers to $out/bin/bazel-{version}-{os_arch}
-    hello_test
-
-    runHook postInstall
-  '';
-
-  # Save paths to hardcoded dependencies so Nix can detect them.
-  # This is needed because the templates get tar’d up into a .jar.
-  postFixup = ''
-    mkdir -p $out/nix-support
-    echo "${defaultShellPath}" >> $out/nix-support/depends
-    # The string literal specifying the path to the bazel-rc file is sometimes
-    # stored non-contiguously in the binary due to gcc optimisations, which leads
-    # Nix to miss the hash when scanning for dependencies
-    echo "${bazelRC}" >> $out/nix-support/depends
-  '' + lib.optionalString stdenv.isDarwin ''
-    echo "${cctools}" >> $out/nix-support/depends
-  '';
-
-  dontStrip = true;
-  dontPatchELF = true;
-}
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/no-arc.patch b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/no-arc.patch
deleted file mode 100644
index 012e613c2f19..000000000000
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/no-arc.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- a/tools/osx/xcode_locator.m	2020-12-10 13:27:29.000000000 +0100
-+++ b/tools/osx/xcode_locator.m	2021-02-01 09:09:32.159557051 +0100
-@@ -21,10 +21,6 @@
- // 6,6.4,6.4.1 = 6.4.1
- // 6.3,6.3.0 = 6.3
- 
--#if !defined(__has_feature) || !__has_feature(objc_arc)
--#error "This file requires ARC support."
--#endif
--
- #import <CoreServices/CoreServices.h>
- #import <Foundation/Foundation.h>
- 
---- a/tools/osx/xcode_configure.bzl	1980-01-01 01:00:00.000000000 +0100
-+++ b/tools/osx/xcode_configure.bzl	2021-02-01 09:36:57.773418444 +0100
-@@ -123,7 +123,6 @@
-         "macosx",
-         "clang",
-         "-mmacosx-version-min=10.9",
--        "-fobjc-arc",
-         "-framework",
-         "CoreServices",
-         "-framework",
---- a/tools/osx/BUILD	2021-02-01 11:01:02.191659553 +0100
-+++ b/tools/osx/BUILD	2021-02-01 11:04:29.735071019 +0100
-@@ -27,7 +27,7 @@
- ])
- 
- DARWIN_XCODE_LOCATOR_COMPILE_COMMAND = """
--  /usr/bin/xcrun --sdk macosx clang -mmacosx-version-min=10.9 -fobjc-arc -framework CoreServices \
-+  /usr/bin/xcrun --sdk macosx clang -mmacosx-version-min=10.9 -framework CoreServices \
-       -framework Foundation -o $@ $<
- """
- 
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/src-deps.json b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/src-deps.json
deleted file mode 100644
index 4496343ec691..000000000000
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/src-deps.json
+++ /dev/null
@@ -1,1585 +0,0 @@
-{
-    "1.25.0.zip": {
-        "name": "1.25.0.zip",
-        "sha256": "c78be58f5e0a29a04686b628cf54faaee0094322ae0ac99da5a8a8afca59a647",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.25.0.zip",
-            "https://github.com/bazelbuild/rules_sass/archive/1.25.0.zip"
-        ]
-    },
-    "1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz": {
-        "name": "1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
-        "sha256": "5a725b777976b77aa122b707d1b6f0f39b6020f66cd427bb111a585599c857b1",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
-            "https://github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz"
-        ]
-    },
-    "382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz": {
-        "name": "382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz",
-        "sha256": "7992217989f3156f8109931c1fc6db3434b7414957cb82371552377beaeb9d6c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz",
-            "https://github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz"
-        ]
-    },
-    "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": {
-        "name": "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
-        "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
-            "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
-        ]
-    },
-    "7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz": {
-        "name": "7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz",
-        "sha256": "8e7d59a5b12b233be5652e3d29f42fba01c7cbab09f6b3a8d0a57ed6d1e9a0da",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz",
-            "https://github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz"
-        ]
-    },
-    "aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz": {
-        "name": "aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz",
-        "sha256": "9f385e146410a8150b6f4cb1a57eab7ec806ced48d427554b1e754877ff26c3e",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/re2/archive/aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz",
-            "https://github.com/google/re2/archive/aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz"
-        ]
-    },
-    "android_tools": {
-        "name": "android_tools",
-        "sha256": "ea5c0589a01e2a9f43c20e5c145d3530e3b3bdbe7322789bc5da38d0ca49b837",
-        "url": "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.19.0rc3.tar.gz"
-    },
-    "android_tools_for_testing": {
-        "name": "android_tools_for_testing",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "ed5290594244c2eeab41f0104519bcef51e27c699ff4b379fcbd25215270513e",
-        "url": "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.23.0.tar.gz"
-    },
-    "android_tools_pkg-0.23.0.tar.gz": {
-        "name": "android_tools_pkg-0.23.0.tar.gz",
-        "sha256": "ed5290594244c2eeab41f0104519bcef51e27c699ff4b379fcbd25215270513e",
-        "urls": [
-            "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.23.0.tar.gz"
-        ]
-    },
-    "b1c40e1de81913a3c40e5948f78719c28152486d.zip": {
-        "name": "b1c40e1de81913a3c40e5948f78719c28152486d.zip",
-        "sha256": "d0c573b94a6ef20ef6ff20154a23d0efcb409fb0e1ff0979cec318dfe42f0cdd",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip",
-            "https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip"
-        ]
-    },
-    "bazel-skylib-1.0.3.tar.gz": {
-        "name": "bazel-skylib-1.0.3.tar.gz",
-        "sha256": "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz",
-            "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz"
-        ]
-    },
-    "bazel-toolchains-3.1.0.tar.gz": {
-        "name": "bazel-toolchains-3.1.0.tar.gz",
-        "sha256": "726b5423e1c7a3866a3a6d68e7123b4a955e9fcbe912a51e0f737e6dab1d0af2",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz",
-            "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz"
-        ]
-    },
-    "bazel_j2objc": {
-        "name": "bazel_j2objc",
-        "sha256": "8d3403b5b7db57e347c943d214577f6879e5b175c2b59b7e075c0b6453330e9b",
-        "strip_prefix": "j2objc-2.5",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip",
-            "https://github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip"
-        ]
-    },
-    "bazel_skylib": {
-        "name": "bazel_skylib",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz",
-            "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz"
-        ]
-    },
-    "bazel_toolchains": {
-        "name": "bazel_toolchains",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "726b5423e1c7a3866a3a6d68e7123b4a955e9fcbe912a51e0f737e6dab1d0af2",
-        "strip_prefix": "bazel-toolchains-3.1.0",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz",
-            "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz"
-        ]
-    },
-    "bazel_website": {
-        "build_file_content": "\nexports_files([\"_sass/style.scss\"])\n",
-        "name": "bazel_website",
-        "sha256": "a5f531dd1d62e6947dcfc279656ffc2fdf6f447c163914c5eabf7961b4cb6eb4",
-        "strip_prefix": "bazel-website-c174fa288aa079b68416d2ce2cc97268fa172f42",
-        "urls": [
-            "https://github.com/bazelbuild/bazel-website/archive/c174fa288aa079b68416d2ce2cc97268fa172f42.tar.gz"
-        ]
-    },
-    "boringssl": {
-        "generator_function": "grpc_deps",
-        "generator_name": "boringssl",
-        "name": "boringssl",
-        "sha256": "cb0fd3eda612d4ae4be21108938800a19b015717a7627ea7f530e3469d207707",
-        "strip_prefix": "boringssl-88aeb757f1a415c71fb4cbf5af936ecae4bc8179",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/88aeb757f1a415c71fb4cbf5af936ecae4bc8179.tar.gz",
-            "https://github.com/google/boringssl/archive/88aeb757f1a415c71fb4cbf5af936ecae4bc8179.tar.gz"
-        ]
-    },
-    "build_bazel_apple_support": {
-        "generator_function": "grpc_deps",
-        "generator_name": "build_bazel_apple_support",
-        "name": "build_bazel_apple_support",
-        "sha256": "122ebf7fe7d1c8e938af6aeaee0efe788a3a2449ece5a8d6a428cb18d6f88033",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/apple_support/releases/download/0.7.1/apple_support.0.7.1.tar.gz",
-            "https://github.com/bazelbuild/apple_support/releases/download/0.7.1/apple_support.0.7.1.tar.gz"
-        ]
-    },
-    "build_bazel_rules_apple": {
-        "generator_function": "grpc_deps",
-        "generator_name": "build_bazel_rules_apple",
-        "name": "build_bazel_rules_apple",
-        "sha256": "bdc8e66e70b8a75da23b79f1f8c6207356df07d041d96d2189add7ee0780cf4e",
-        "strip_prefix": "rules_apple-b869b0d3868d78a1d4ffd866ccb304fb68aa12c3",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/rules_apple/archive/b869b0d3868d78a1d4ffd866ccb304fb68aa12c3.tar.gz",
-            "https://github.com/bazelbuild/rules_apple/archive/b869b0d3868d78a1d4ffd866ccb304fb68aa12c3.tar.gz"
-        ]
-    },
-    "build_bazel_rules_nodejs": {
-        "name": "build_bazel_rules_nodejs",
-        "sha256": "f2194102720e662dbf193546585d705e645314319554c6ce7e47d8b59f459e9c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/releases/download/2.2.2/rules_nodejs-2.2.2.tar.gz",
-            "https://github.com/bazelbuild/rules_nodejs/releases/download/2.2.2/rules_nodejs-2.2.2.tar.gz"
-        ]
-    },
-    "com_github_cares_cares": {
-        "build_file": "@com_github_grpc_grpc//third_party:cares/cares.BUILD",
-        "generator_function": "grpc_deps",
-        "generator_name": "com_github_cares_cares",
-        "name": "com_github_cares_cares",
-        "sha256": "e8c2751ddc70fed9dc6f999acd92e232d5846f009ee1674f8aee81f19b2b915a",
-        "strip_prefix": "c-ares-e982924acee7f7313b4baa4ee5ec000c5e373c30",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/c-ares/c-ares/archive/e982924acee7f7313b4baa4ee5ec000c5e373c30.tar.gz",
-            "https://github.com/c-ares/c-ares/archive/e982924acee7f7313b4baa4ee5ec000c5e373c30.tar.gz"
-        ]
-    },
-    "com_github_gflags_gflags": {
-        "generator_function": "grpc_deps",
-        "generator_name": "com_github_gflags_gflags",
-        "name": "com_github_gflags_gflags",
-        "sha256": "63ae70ea3e05780f7547d03503a53de3a7d2d83ad1caaa443a31cb20aea28654",
-        "strip_prefix": "gflags-28f50e0fed19872e0fd50dd23ce2ee8cd759338e",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/gflags/gflags/archive/28f50e0fed19872e0fd50dd23ce2ee8cd759338e.tar.gz",
-            "https://github.com/gflags/gflags/archive/28f50e0fed19872e0fd50dd23ce2ee8cd759338e.tar.gz"
-        ]
-    },
-    "com_github_google_benchmark": {
-        "generator_function": "grpc_deps",
-        "generator_name": "com_github_google_benchmark",
-        "name": "com_github_google_benchmark",
-        "sha256": "f68aec93154d010324c05bcd8c5cc53468b87af88d87acb5ddcfaa1bba044837",
-        "strip_prefix": "benchmark-090faecb454fbd6e6e17a75ef8146acb037118d4",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/benchmark/archive/090faecb454fbd6e6e17a75ef8146acb037118d4.tar.gz",
-            "https://github.com/google/benchmark/archive/090faecb454fbd6e6e17a75ef8146acb037118d4.tar.gz"
-        ]
-    },
-    "com_github_google_re2": {
-        "generator_function": "grpc_deps",
-        "generator_name": "com_github_google_re2",
-        "name": "com_github_google_re2",
-        "sha256": "9f385e146410a8150b6f4cb1a57eab7ec806ced48d427554b1e754877ff26c3e",
-        "strip_prefix": "re2-aecba11114cf1fac5497aeb844b6966106de3eb6",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/re2/archive/aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz",
-            "https://github.com/google/re2/archive/aecba11114cf1fac5497aeb844b6966106de3eb6.tar.gz"
-        ]
-    },
-    "com_github_grpc_grpc": {
-        "name": "com_github_grpc_grpc",
-        "patch_args": [
-            "-p1"
-        ],
-        "patches": [
-            "//third_party/grpc:grpc_1.33.1.patch"
-        ],
-        "sha256": "58eaee5c0f1bd0b92ebe1fa0606ec8f14798500620e7444726afcaf65041cb63",
-        "strip_prefix": "grpc-1.33.1",
-        "urls": [
-            "https://mirror.bazel.build/github.com/grpc/grpc/archive/v1.33.1.tar.gz",
-            "https://github.com/grpc/grpc/archive/v1.33.1.tar.gz"
-        ]
-    },
-    "com_google_absl": {
-        "generator_function": "grpc_deps",
-        "generator_name": "com_google_absl",
-        "name": "com_google_absl",
-        "sha256": "f368a8476f4e2e0eccf8a7318b98dafbe30b2600f4e3cf52636e5eb145aba06a",
-        "strip_prefix": "abseil-cpp-df3ea785d8c30a9503321a3d35ee7d35808f190d",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/abseil/abseil-cpp/archive/df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz",
-            "https://github.com/abseil/abseil-cpp/archive/df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz"
-        ]
-    },
-    "com_google_googletest": {
-        "name": "com_google_googletest",
-        "sha256": "9dc9157a9a1551ec7a7e43daea9a694a0bb5fb8bec81235d8a1e6ef64c716dcb",
-        "strip_prefix": "googletest-release-1.10.0",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/googletest/archive/release-1.10.0.tar.gz",
-            "https://github.com/google/googletest/archive/release-1.10.0.tar.gz"
-        ]
-    },
-    "com_google_protobuf": {
-        "name": "com_google_protobuf",
-        "patch_args": [
-            "-p1"
-        ],
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "patches": [
-            "//third_party/protobuf:3.13.0.patch"
-        ],
-        "sha256": "9b4ee22c250fe31b16f1a24d61467e40780a3fbb9b91c3b65be2a376ed913a1a",
-        "strip_prefix": "protobuf-3.13.0",
-        "urls": [
-            "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.13.0.tar.gz",
-            "https://github.com/protocolbuffers/protobuf/archive/v3.13.0.tar.gz"
-        ]
-    },
-    "coverage_output_generator-v2.5.zip": {
-        "name": "coverage_output_generator-v2.5.zip",
-        "sha256": "cd14f1cb4559e4723e63b7e7b06d09fcc3bd7ba58d03f354cdff1439bd936a7d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.5.zip"
-        ]
-    },
-    "cython": {
-        "build_file": "@com_github_grpc_grpc//third_party:cython.BUILD",
-        "generator_function": "grpc_deps",
-        "generator_name": "cython",
-        "name": "cython",
-        "sha256": "d68138a2381afbdd0876c3cb2a22389043fa01c4badede1228ee073032b07a27",
-        "strip_prefix": "cython-c2b80d87658a8525ce091cbe146cb7eaa29fed5c",
-        "urls": [
-            "https://github.com/cython/cython/archive/c2b80d87658a8525ce091cbe146cb7eaa29fed5c.tar.gz"
-        ]
-    },
-    "desugar_jdk_libs": {
-        "name": "desugar_jdk_libs",
-        "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
-        "strip_prefix": "desugar_jdk_libs-e0b0291b2c51fbe5a7cfa14473a1ae850f94f021",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
-            "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
-        ]
-    },
-    "df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz": {
-        "name": "df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz",
-        "sha256": "f368a8476f4e2e0eccf8a7318b98dafbe30b2600f4e3cf52636e5eb145aba06a",
-        "urls": [
-            "https://mirror.bazel.build/github.com/abseil/abseil-cpp/archive/df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz",
-            "https://github.com/abseil/abseil-cpp/archive/df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz"
-        ]
-    },
-    "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip": {
-        "name": "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
-        "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
-        "urls": [
-            "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
-            "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
-        ]
-    },
-    "e982924acee7f7313b4baa4ee5ec000c5e373c30.tar.gz": {
-        "name": "e982924acee7f7313b4baa4ee5ec000c5e373c30.tar.gz",
-        "sha256": "e8c2751ddc70fed9dc6f999acd92e232d5846f009ee1674f8aee81f19b2b915a",
-        "urls": [
-            "https://mirror.bazel.build/github.com/c-ares/c-ares/archive/e982924acee7f7313b4baa4ee5ec000c5e373c30.tar.gz",
-            "https://github.com/c-ares/c-ares/archive/e982924acee7f7313b4baa4ee5ec000c5e373c30.tar.gz"
-        ]
-    },
-    "enum34": {
-        "build_file": "@com_github_grpc_grpc//third_party:enum34.BUILD",
-        "generator_function": "grpc_deps",
-        "generator_name": "enum34",
-        "name": "enum34",
-        "sha256": "8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1",
-        "strip_prefix": "enum34-1.1.6",
-        "urls": [
-            "https://files.pythonhosted.org/packages/bf/3e/31d502c25302814a7c2f1d3959d2a3b3f78e509002ba91aea64993936876/enum34-1.1.6.tar.gz"
-        ]
-    },
-    "envoy_api": {
-        "generator_function": "grpc_deps",
-        "generator_name": "envoy_api",
-        "name": "envoy_api",
-        "sha256": "466585f253471259ce17641348149f458270316e81ec6702fdd8bf0b1b681256",
-        "strip_prefix": "data-plane-api-9997e1137cdb59e622af13e57ca915a2f3c9f84f",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/envoyproxy/data-plane-api/archive/9997e1137cdb59e622af13e57ca915a2f3c9f84f.tar.gz",
-            "https://github.com/envoyproxy/data-plane-api/archive/9997e1137cdb59e622af13e57ca915a2f3c9f84f.tar.gz"
-        ]
-    },
-    "futures": {
-        "build_file": "@com_github_grpc_grpc//third_party:futures.BUILD",
-        "generator_function": "grpc_deps",
-        "generator_name": "futures",
-        "name": "futures",
-        "sha256": "7e033af76a5e35f58e56da7a91e687706faf4e7bdfb2cbc3f2cca6b9bcda9794",
-        "strip_prefix": "futures-3.3.0",
-        "urls": [
-            "https://files.pythonhosted.org/packages/47/04/5fc6c74ad114032cd2c544c575bffc17582295e9cd6a851d6026ab4b2c00/futures-3.3.0.tar.gz"
-        ]
-    },
-    "io_bazel_rules_go": {
-        "generator_function": "grpc_deps",
-        "generator_name": "io_bazel_rules_go",
-        "name": "io_bazel_rules_go",
-        "sha256": "a82a352bffae6bee4e95f68a8d80a70e87f42c4741e6a448bec11998fcc82329",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/bazelbuild/rules_go/releases/download/0.18.5/rules_go-0.18.5.tar.gz",
-            "https://github.com/bazelbuild/rules_go/releases/download/0.18.5/rules_go-0.18.5.tar.gz"
-        ]
-    },
-    "io_bazel_rules_python": {
-        "generator_function": "grpc_deps",
-        "generator_name": "io_bazel_rules_python",
-        "name": "io_bazel_rules_python",
-        "sha256": "aa96a691d3a8177f3215b14b0edc9641787abaaa30363a080165d06ab65e1161",
-        "url": "https://github.com/bazelbuild/rules_python/releases/download/0.0.1/rules_python-0.0.1.tar.gz"
-    },
-    "io_bazel_rules_sass": {
-        "name": "io_bazel_rules_sass",
-        "sha256": "c78be58f5e0a29a04686b628cf54faaee0094322ae0ac99da5a8a8afca59a647",
-        "strip_prefix": "rules_sass-1.25.0",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.25.0.zip",
-            "https://github.com/bazelbuild/rules_sass/archive/1.25.0.zip"
-        ]
-    },
-    "io_bazel_skydoc": {
-        "name": "io_bazel_skydoc",
-        "sha256": "5a725b777976b77aa122b707d1b6f0f39b6020f66cd427bb111a585599c857b1",
-        "strip_prefix": "stardoc-1ef781ced3b1443dca3ed05dec1989eca1a4e1cd",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
-            "https://github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz"
-        ]
-    },
-    "io_opencensus_cpp": {
-        "generator_function": "grpc_deps",
-        "generator_name": "io_opencensus_cpp",
-        "name": "io_opencensus_cpp",
-        "sha256": "90d6fafa8b1a2ea613bf662731d3086e1c2ed286f458a95c81744df2dbae41b1",
-        "strip_prefix": "opencensus-cpp-c9a4da319bc669a772928ffc55af4a61be1a1176",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/census-instrumentation/opencensus-cpp/archive/c9a4da319bc669a772928ffc55af4a61be1a1176.tar.gz",
-            "https://github.com/census-instrumentation/opencensus-cpp/archive/c9a4da319bc669a772928ffc55af4a61be1a1176.tar.gz"
-        ]
-    },
-    "java_tools_javac11_darwin-v10.6.zip": {
-        "name": "java_tools_javac11_darwin-v10.6.zip",
-        "sha256": "d15b05d2061382748f779dc566537ea567a46bcba6fa34b56d7cb6e6d668adab",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_darwin-v10.6.zip"
-        ]
-    },
-    "java_tools_javac11_linux-v10.6.zip": {
-        "name": "java_tools_javac11_linux-v10.6.zip",
-        "sha256": "085c0ba53ba764e81d4c195524f3c596085cbf9cdc01dd8e6d2ae677e726af35",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_linux-v10.6.zip"
-        ]
-    },
-    "java_tools_javac11_windows-v10.6.zip": {
-        "name": "java_tools_javac11_windows-v10.6.zip",
-        "sha256": "873f1e53d1fa9c8e46b717673816cd822bb7acc474a194a18ff849fd8fa6ff00",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_windows-v10.6.zip"
-        ]
-    },
-    "java_tools_langtools_javac11": {
-        "name": "java_tools_langtools_javac11",
-        "sha256": "cf0814fa002ef3d794582bb086516d8c9ed0958f83f19799cdb08949019fe4c7",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk11_v2.zip"
-        ]
-    },
-    "jekyll_tree_0_17_1": {
-        "name": "jekyll_tree_0_17_1",
-        "sha256": "02256ddd20eeaf70cf8fcfe9b2cdddd7be87aedd5848d549474fb0358e0031d3",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.17.1.tar"
-        ]
-    },
-    "jekyll_tree_0_17_2": {
-        "name": "jekyll_tree_0_17_2",
-        "sha256": "13b35dd309a0d52f0a2518a1193f42729c75255f5fae40cea68e4d4224bfaa2e",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.17.2.tar"
-        ]
-    },
-    "jekyll_tree_0_18_1": {
-        "name": "jekyll_tree_0_18_1",
-        "sha256": "98b77f48e37a50fc6f83100bf53f661e10732bb3ddbc226e02d0225cb7a9a7d8",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.18.1.tar"
-        ]
-    },
-    "jekyll_tree_0_19_1": {
-        "name": "jekyll_tree_0_19_1",
-        "sha256": "ec892c59ba18bb8de1f9ae2bde937db144e45f28d6d1c32a2cee847ee81b134d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.19.1.tar"
-        ]
-    },
-    "jekyll_tree_0_19_2": {
-        "name": "jekyll_tree_0_19_2",
-        "sha256": "3c2d9f21ec2fd1c0b8a310f6eb6043027c838810cdfc2457d4346a0e5cdcaa7a",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.19.2.tar"
-        ]
-    },
-    "jekyll_tree_0_20_0": {
-        "name": "jekyll_tree_0_20_0",
-        "sha256": "bb79a63810bf1b0aa1f89bd3bbbeb4a547a30ab9af70c9be656cc6866f4b015b",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.20.0.tar"
-        ]
-    },
-    "jekyll_tree_0_21_0": {
-        "name": "jekyll_tree_0_21_0",
-        "sha256": "23ec39c0138d358c544151e5c81586716d5d1c6124f10a742bead70516e6eb93",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.21.0.tar"
-        ]
-    },
-    "jekyll_tree_0_22_0": {
-        "name": "jekyll_tree_0_22_0",
-        "sha256": "bec5cfaa5560e082e41e33bde276cf93f0f7bcfd2914a3e868f921df8b3ab725",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.22.0.tar"
-        ]
-    },
-    "jekyll_tree_0_23_0": {
-        "name": "jekyll_tree_0_23_0",
-        "sha256": "56c80fcf49dc606fab8ed5e737a7409e9a486585b7b98673be69b5a4984dd774",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.23.0.tar"
-        ]
-    },
-    "jekyll_tree_0_24_0": {
-        "name": "jekyll_tree_0_24_0",
-        "sha256": "988fa567906a73e50d3669909285187ef88c76ecd4aa277f4d1f355fc06a90c8",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.24.0.tar"
-        ]
-    },
-    "jekyll_tree_0_25_0": {
-        "name": "jekyll_tree_0_25_0",
-        "sha256": "e8ab61c047225e808982a564ecd692fd63bd243dccc88a8768ed069a5362a685",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.25.0.tar"
-        ]
-    },
-    "jekyll_tree_0_26_0": {
-        "name": "jekyll_tree_0_26_0",
-        "sha256": "3907dfc6fb27d246e67877e553e8951fac239bb49f2dec7e06b6b09cb0b98b8d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.26.0.tar"
-        ]
-    },
-    "jekyll_tree_0_27_0": {
-        "name": "jekyll_tree_0_27_0",
-        "sha256": "97e2633fefee389daade775da43907aa68699b32212f4e48cb095abe18aa7e65",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.27.0.tar"
-        ]
-    },
-    "jekyll_tree_0_28_0": {
-        "name": "jekyll_tree_0_28_0",
-        "sha256": "64b3fc267fb1f4c56345d96f0ad9f07a2efe43bd15361f818368849cf941b3b7",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.28.0.tar"
-        ]
-    },
-    "jekyll_tree_0_29_0": {
-        "name": "jekyll_tree_0_29_0",
-        "sha256": "99d7a6bf9ef0145c59c54b4319fb31cb855681782080a5490909c4a5463c7215",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.29.0.tar"
-        ]
-    },
-    "jekyll_tree_0_29_1": {
-        "name": "jekyll_tree_0_29_1",
-        "sha256": "cf0a517f1660a7c4fd26a7ef6f3594bbefcf2b670bc0ed610bf3bb6ec3a9fdc3",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-0.29.1.tar"
-        ]
-    },
-    "jekyll_tree_1_0_0": {
-        "name": "jekyll_tree_1_0_0",
-        "sha256": "61ef65c738a8cd65059f58f2ee5f7eef493136ac4d5e5c3464787d17043febdf",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-1.0.0.tar"
-        ]
-    },
-    "jekyll_tree_1_1_0": {
-        "name": "jekyll_tree_1_1_0",
-        "sha256": "46d82c9249896903ee6be2295fc52a1346a9ee82f61f89b8a2181232c3bd999b",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-1.1.0.tar"
-        ]
-    },
-    "jekyll_tree_1_2_0": {
-        "name": "jekyll_tree_1_2_0",
-        "sha256": "d402a8391ca2624673f124ff42ba8d0d40d4139e5d23111f3995dc6c5f70f63d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-1.2.0.tar"
-        ]
-    },
-    "jekyll_tree_2_0_0": {
-        "name": "jekyll_tree_2_0_0",
-        "sha256": "7d7c424ede503856c61b645d8fdc2513ec6ea8600d76c5e87c45a9a45c16de3e",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-2.0.0.tar"
-        ]
-    },
-    "jekyll_tree_2_1_0": {
-        "name": "jekyll_tree_2_1_0",
-        "sha256": "b0fd257b1d6b1b05705742d55a13b9a20d3e99f49c89334750c872d620e5b88f",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-2.1.0.tar"
-        ]
-    },
-    "jekyll_tree_2_2_0": {
-        "name": "jekyll_tree_2_2_0",
-        "sha256": "4c1506786ab98df8039ec7354b82da7b586b2ae4ab7f7e7d08f3caf74ff28e3d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-2.2.0.tar"
-        ]
-    },
-    "jekyll_tree_3_0_0": {
-        "name": "jekyll_tree_3_0_0",
-        "sha256": "bd1096ad609c253fa7b1473edf4a3aa51f36243e188dbb62c68d8ed4aca2419d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.0.0.tar"
-        ]
-    },
-    "jekyll_tree_3_1_0": {
-        "name": "jekyll_tree_3_1_0",
-        "sha256": "f9d2e22e24af426d6c9de163d91abe6d8af7eb1eabb1d7ff5e9cf4bededf465a",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.1.0-807b377.tar"
-        ]
-    },
-    "jekyll_tree_3_2_0": {
-        "name": "jekyll_tree_3_2_0",
-        "sha256": "6cff8654e739a0c3062183a5a6cc82fcf9a77323051f8c007866d7f4101052a6",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.2.0.tar"
-        ]
-    },
-    "jekyll_tree_3_3_0": {
-        "name": "jekyll_tree_3_3_0",
-        "sha256": "36b81e8ddf4f3caccf41acc82d9e49f000c1be9e92c9cc82793d60ff70636176",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.3.0.tar"
-        ]
-    },
-    "jekyll_tree_3_4_0": {
-        "name": "jekyll_tree_3_4_0",
-        "sha256": "af82e775d911135bcff76e500bb003c4a9fccb949f8ddf4d93c58eca195bf5e8",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.4.0.tar"
-        ]
-    },
-    "jekyll_tree_3_5_0": {
-        "name": "jekyll_tree_3_5_0",
-        "sha256": "aa96cbad14cfab0b422d1d17eac3107a75eb05854d40ab4f1379a6fc87b2e1f8",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.5.0.tar"
-        ]
-    },
-    "jekyll_tree_3_5_1": {
-        "name": "jekyll_tree_3_5_1",
-        "sha256": "1c949ba8da353c93c74a70638e5cb321ea1cd5582eda1b6ad88c6d2d0b569f2f",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.5.1.tar"
-        ]
-    },
-    "jekyll_tree_3_6_0": {
-        "name": "jekyll_tree_3_6_0",
-        "sha256": "1b7a16a2098ca0c290c208a11db886e950d6c523b2cac2d0a0cba4a04aa832f3",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.6.0.tar"
-        ]
-    },
-    "jekyll_tree_3_7_0": {
-        "name": "jekyll_tree_3_7_0",
-        "sha256": "a534d37ef3867c92fae8692852f92820a34f63a5f9092bbbec6505c0f69d8094",
-        "urls": [
-            "https://mirror.bazel.build/bazel_versioned_docs/jekyll-tree-3.7.0.tar"
-        ]
-    },
-    "openjdk11_darwin_aarch64_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk11_darwin_aarch64_archive",
-        "sha256": "3dcc636e64ae58b922269c2dc9f20f6f967bee90e3f6847d643c4a566f1e8d8a",
-        "strip_prefix": "zulu11.45.27-ca-jdk11.0.10-macosx_aarch64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz"
-        ]
-    },
-    "openjdk11_darwin_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk11_darwin_archive",
-        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
-        ]
-    },
-    "openjdk11_linux_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk11_linux_archive",
-        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk11_windows_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk11_windows_archive",
-        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
-        ]
-    },
-    "openjdk14_darwin_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk14_darwin_archive",
-        "sha256": "088bd4d0890acc9f032b738283bf0f26b2a55c50b02d1c8a12c451d8ddf080dd",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-macosx_x64.tar.gz"
-        ]
-    },
-    "openjdk14_linux_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk14_linux_archive",
-        "sha256": "48bb8947034cd079ad1ef83335e7634db4b12a26743a0dc314b6b861480777aa",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk14_windows_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk14_windows_archive",
-        "sha256": "9cb078b5026a900d61239c866161f0d9558ec759aa15c5b4c7e905370e868284",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-win_x64.zip"
-        ]
-    },
-    "openjdk15_darwin_aarch64_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk15_darwin_aarch64_archive",
-        "sha256": "2613c3f15eef6b6ecd0fd102da92282b985e4573905dc902f1783d8059c1efc5",
-        "strip_prefix": "zulu15.29.15-ca-jdk15.0.2-macosx_aarch64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz"
-        ]
-    },
-    "openjdk15_darwin_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk15_darwin_archive",
-        "sha256": "f80b2e0512d9d8a92be24497334c974bfecc8c898fc215ce0e76594f00437482",
-        "strip_prefix": "zulu15.27.17-ca-jdk15.0.0-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-macosx_x64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-macosx_x64.tar.gz"
-        ]
-    },
-    "openjdk15_linux_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk15_linux_archive",
-        "sha256": "0a38f1138c15a4f243b75eb82f8ef40855afcc402e3c2a6de97ce8235011b1ad",
-        "strip_prefix": "zulu15.27.17-ca-jdk15.0.0-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk15_windows_archive": {
-        "build_file_content": "\njava_runtime(name = 'runtime', srcs =  glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
-        "name": "openjdk15_windows_archive",
-        "sha256": "f535a530151e6c20de8a3078057e332b08887cb3ba1a4735717357e72765cad6",
-        "strip_prefix": "zulu15.27.17-ca-jdk15.0.0-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-win_x64.zip",
-            "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-win_x64.zip"
-        ]
-    },
-    "openjdk_linux": {
-        "downloaded_file_path": "zulu-linux.tar.gz",
-        "name": "openjdk_linux",
-        "sha256": "65bfe4e0ffa74a680ee4410db46b17e30cd9397b664a92a886599fe1f3530969",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64-linux_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689070.tar.gz"
-        ]
-    },
-    "openjdk_linux_aarch64": {
-        "downloaded_file_path": "zulu-linux-aarch64.tar.gz",
-        "name": "openjdk_linux_aarch64",
-        "sha256": "6b245793087300db3ee82ab0d165614f193a73a60f2f011e347756c1e6ca5bac",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581690750.tar.gz"
-        ]
-    },
-    "openjdk_linux_aarch64_minimal": {
-        "downloaded_file_path": "zulu-linux-aarch64-minimal.tar.gz",
-        "name": "openjdk_linux_aarch64_minimal",
-        "sha256": "06f6520a877704c77614bcfc4f846cc7cbcbf5eaad149bf7f19f4f16e285c9de",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581690750.tar.gz"
-        ]
-    },
-    "openjdk_linux_aarch64_vanilla": {
-        "downloaded_file_path": "zulu-linux-aarch64-vanilla.tar.gz",
-        "name": "openjdk_linux_aarch64_vanilla",
-        "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
-        ]
-    },
-    "openjdk_linux_minimal": {
-        "downloaded_file_path": "zulu-linux-minimal.tar.gz",
-        "name": "openjdk_linux_minimal",
-        "sha256": "91f7d52f695c681d4e21499b4319d548aadef249a6b3053e306308992e1e29ae",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689068.tar.gz"
-        ]
-    },
-    "openjdk_linux_ppc64le_vanilla": {
-        "downloaded_file_path": "adoptopenjdk-ppc64le-vanilla.tar.gz",
-        "name": "openjdk_linux_ppc64le_vanilla",
-        "sha256": "a417db0295b1f4b538ecbaf7c774f3a177fab9657a665940170936c0eca4e71a",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz",
-            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz"
-        ]
-    },
-    "openjdk_linux_s390x_vanilla": {
-        "downloaded_file_path": "adoptopenjdk-s390x-vanilla.tar.gz",
-        "name": "openjdk_linux_s390x_vanilla",
-        "sha256": "d9b72e87a1d3ebc0c9552f72ae5eb150fffc0298a7cb841f1ce7bfc70dcd1059",
-        "urls": [
-            "https://mirror.bazel.build/github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz",
-            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz"
-        ]
-    },
-    "openjdk_linux_vanilla": {
-        "downloaded_file_path": "zulu-linux-vanilla.tar.gz",
-        "name": "openjdk_linux_vanilla",
-        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
-        ]
-    },
-    "openjdk_macos_aarch64": {
-        "downloaded_file_path": "zulu-macos-aarch64.tar.gz",
-        "name": "openjdk_macos_aarch64",
-        "sha256": "a900ef793cb34b03ac5d93ea2f67291b6842e99d500934e19393a8d8f9bfa6ff",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.45.27-ca-jdk11.0.10/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64-allmodules-1611665569.tar.gz"
-        ]
-    },
-    "openjdk_macos_aarch64_minimal": {
-        "downloaded_file_path": "zulu-macos-aarch64-minimal.tar.gz",
-        "name": "openjdk_macos_aarch64_minimal",
-        "sha256": "f4f606926e6deeaa8b8397e299313d9df87642fe464b0ccf1ed0432aeb00640b",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.45.27-ca-jdk11.0.10/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64-minimal-1611665562.tar.gz"
-        ]
-    },
-    "openjdk_macos_aarch64_vanilla": {
-        "downloaded_file_path": "zulu-macos-aarch64-vanilla.tar.gz",
-        "name": "openjdk_macos_aarch64_vanilla",
-        "sha256": "3dcc636e64ae58b922269c2dc9f20f6f967bee90e3f6847d643c4a566f1e8d8a",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz"
-        ]
-    },
-    "openjdk_macos_x86_64": {
-        "downloaded_file_path": "zulu-macos.tar.gz",
-        "name": "openjdk_macos_x86_64",
-        "sha256": "8e283cfd23c7555be8e17295ed76eb8f00324c88ab904b8de37bbe08f90e569b",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689066.tar.gz"
-        ]
-    },
-    "openjdk_macos_x86_64_minimal": {
-        "downloaded_file_path": "zulu-macos-minimal.tar.gz",
-        "name": "openjdk_macos_x86_64_minimal",
-        "sha256": "1bacb1c07035d4066d79f0b65b4ea0ebd1954f3662bdfe3618da382ac8fd23a6",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689063.tar.gz"
-        ]
-    },
-    "openjdk_macos_x86_64_vanilla": {
-        "downloaded_file_path": "zulu-macos-vanilla.tar.gz",
-        "name": "openjdk_macos_x86_64_vanilla",
-        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
-        ]
-    },
-    "openjdk_win": {
-        "downloaded_file_path": "zulu-win.zip",
-        "name": "openjdk_win",
-        "sha256": "8e1604b3a27dcf639bc6d1a73103f1211848139e4cceb081d0a74a99e1e6f995",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689080.zip"
-        ]
-    },
-    "openjdk_win_minimal": {
-        "downloaded_file_path": "zulu-win-minimal.zip",
-        "name": "openjdk_win_minimal",
-        "sha256": "b90a713c9c2d9ea23cad44d2c2dfcc9af22faba9bde55dedc1c3bb9f556ac1ae",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689080.zip"
-        ]
-    },
-    "openjdk_win_vanilla": {
-        "downloaded_file_path": "zulu-win-vanilla.zip",
-        "name": "openjdk_win_vanilla",
-        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
-        ]
-    },
-    "platforms": {
-        "name": "platforms",
-        "sha256": "079945598e4b6cc075846f7fd6a9d0857c33a7afc0de868c2ccb96405225135d",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.4/platforms-0.0.4.tar.gz",
-            "https://github.com/bazelbuild/platforms/releases/download/0.0.4/platforms-0.0.4.tar.gz"
-        ]
-    },
-    "platforms-0.0.4.tar.gz": {
-        "name": "platforms-0.0.4.tar.gz",
-        "sha256": "079945598e4b6cc075846f7fd6a9d0857c33a7afc0de868c2ccb96405225135d",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.4/platforms-0.0.4.tar.gz",
-            "https://github.com/bazelbuild/platforms/releases/download/0.0.4/platforms-0.0.4.tar.gz"
-        ]
-    },
-    "remote_coverage_tools": {
-        "name": "remote_coverage_tools",
-        "sha256": "cd14f1cb4559e4723e63b7e7b06d09fcc3bd7ba58d03f354cdff1439bd936a7d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.5.zip"
-        ]
-    },
-    "remote_coverage_tools_for_testing": {
-        "name": "remote_coverage_tools_for_testing",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "cd14f1cb4559e4723e63b7e7b06d09fcc3bd7ba58d03f354cdff1439bd936a7d",
-        "urls": [
-            "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.5.zip"
-        ]
-    },
-    "remote_java_tools_darwin": {
-        "generator_function": "maybe",
-        "generator_name": "remote_java_tools_darwin",
-        "name": "remote_java_tools_darwin",
-        "sha256": "64e5de2175dfccb96831573946b80d106edf3801d9db38b564514bf3581d466b",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.0/java_tools_javac11_darwin-v10.0.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.0/java_tools_javac11_darwin-v10.0.zip"
-        ]
-    },
-    "remote_java_tools_darwin_for_testing": {
-        "name": "remote_java_tools_darwin_for_testing",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "d15b05d2061382748f779dc566537ea567a46bcba6fa34b56d7cb6e6d668adab",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_darwin-v10.6.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.6/java_tools_javac11_darwin-v10.6.zip"
-        ]
-    },
-    "remote_java_tools_javac11_test_darwin": {
-        "name": "remote_java_tools_javac11_test_darwin",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "d15b05d2061382748f779dc566537ea567a46bcba6fa34b56d7cb6e6d668adab",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_darwin-v10.6.zip"
-        ]
-    },
-    "remote_java_tools_javac11_test_linux": {
-        "name": "remote_java_tools_javac11_test_linux",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "085c0ba53ba764e81d4c195524f3c596085cbf9cdc01dd8e6d2ae677e726af35",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_linux-v10.6.zip"
-        ]
-    },
-    "remote_java_tools_javac11_test_windows": {
-        "name": "remote_java_tools_javac11_test_windows",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "873f1e53d1fa9c8e46b717673816cd822bb7acc474a194a18ff849fd8fa6ff00",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_windows-v10.6.zip"
-        ]
-    },
-    "remote_java_tools_linux": {
-        "generator_function": "maybe",
-        "generator_name": "remote_java_tools_linux",
-        "name": "remote_java_tools_linux",
-        "sha256": "69e65353c2cd65780abcbcce4daae973599298273b0f8b4d469eed822cb220d1",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.0/java_tools_javac11_linux-v10.0.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.0/java_tools_javac11_linux-v10.0.zip"
-        ]
-    },
-    "remote_java_tools_linux_for_testing": {
-        "name": "remote_java_tools_linux_for_testing",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "085c0ba53ba764e81d4c195524f3c596085cbf9cdc01dd8e6d2ae677e726af35",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_linux-v10.6.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.6/java_tools_javac11_linux-v10.6.zip"
-        ]
-    },
-    "remote_java_tools_windows": {
-        "generator_function": "maybe",
-        "generator_name": "remote_java_tools_windows",
-        "name": "remote_java_tools_windows",
-        "sha256": "d2f62af8daa0a3d55789b605f6582e37038329c64843337c71e64515468e55c4",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.0/java_tools_javac11_windows-v10.0.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.0/java_tools_javac11_windows-v10.0.zip"
-        ]
-    },
-    "remote_java_tools_windows_for_testing": {
-        "name": "remote_java_tools_windows_for_testing",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "873f1e53d1fa9c8e46b717673816cd822bb7acc474a194a18ff849fd8fa6ff00",
-        "urls": [
-            "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v10.6/java_tools_javac11_windows-v10.6.zip",
-            "https://github.com/bazelbuild/java_tools/releases/download/javac11_v10.6/java_tools_javac11_windows-v10.6.zip"
-        ]
-    },
-    "remotejdk11_linux": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk11_linux",
-        "name": "remotejdk11_linux",
-        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
-        ]
-    },
-    "remotejdk11_linux_aarch64": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk11_linux_aarch64",
-        "name": "remotejdk11_linux_aarch64",
-        "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
-        "strip_prefix": "zulu11.37.48-ca-jdk11.0.6-linux_aarch64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
-        ]
-    },
-    "remotejdk11_linux_aarch64_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk11_linux_aarch64_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
-        "strip_prefix": "zulu11.37.48-ca-jdk11.0.6-linux_aarch64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
-        ]
-    },
-    "remotejdk11_linux_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk11_linux_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
-        ]
-    },
-    "remotejdk11_linux_ppc64le": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk11_linux_ppc64le",
-        "name": "remotejdk11_linux_ppc64le",
-        "sha256": "a417db0295b1f4b538ecbaf7c774f3a177fab9657a665940170936c0eca4e71a",
-        "strip_prefix": "jdk-11.0.7+10",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz",
-            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz"
-        ]
-    },
-    "remotejdk11_linux_ppc64le_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk11_linux_ppc64le_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "a417db0295b1f4b538ecbaf7c774f3a177fab9657a665940170936c0eca4e71a",
-        "strip_prefix": "jdk-11.0.7+10",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz",
-            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz"
-        ]
-    },
-    "remotejdk11_linux_s390x": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk11_linux_s390x",
-        "name": "remotejdk11_linux_s390x",
-        "sha256": "d9b72e87a1d3ebc0c9552f72ae5eb150fffc0298a7cb841f1ce7bfc70dcd1059",
-        "strip_prefix": "jdk-11.0.7+10",
-        "urls": [
-            "https://mirror.bazel.build/github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz",
-            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz"
-        ]
-    },
-    "remotejdk11_linux_s390x_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk11_linux_s390x_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "d9b72e87a1d3ebc0c9552f72ae5eb150fffc0298a7cb841f1ce7bfc70dcd1059",
-        "strip_prefix": "jdk-11.0.7+10",
-        "urls": [
-            "https://mirror.bazel.build/github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz",
-            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz"
-        ]
-    },
-    "remotejdk11_macos": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk11_macos",
-        "name": "remotejdk11_macos",
-        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
-        ]
-    },
-    "remotejdk11_macos_aarch64_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk11_macos_aarch64_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "3dcc636e64ae58b922269c2dc9f20f6f967bee90e3f6847d643c4a566f1e8d8a",
-        "strip_prefix": "zulu11.45.27-ca-jdk11.0.10-macosx_aarch64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz"
-        ]
-    },
-    "remotejdk11_macos_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk11_macos_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
-        ]
-    },
-    "remotejdk11_win": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk11_win",
-        "name": "remotejdk11_win",
-        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
-        ]
-    },
-    "remotejdk11_win_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk11_win_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
-        "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
-        ]
-    },
-    "remotejdk14_linux": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk14_linux",
-        "name": "remotejdk14_linux",
-        "sha256": "48bb8947034cd079ad1ef83335e7634db4b12a26743a0dc314b6b861480777aa",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-linux_x64.tar.gz"
-        ]
-    },
-    "remotejdk14_linux_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk14_linux_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "48bb8947034cd079ad1ef83335e7634db4b12a26743a0dc314b6b861480777aa",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-linux_x64.tar.gz"
-        ]
-    },
-    "remotejdk14_macos": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk14_macos",
-        "name": "remotejdk14_macos",
-        "sha256": "088bd4d0890acc9f032b738283bf0f26b2a55c50b02d1c8a12c451d8ddf080dd",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-macosx_x64.tar.gz"
-        ]
-    },
-    "remotejdk14_macos_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk14_macos_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "088bd4d0890acc9f032b738283bf0f26b2a55c50b02d1c8a12c451d8ddf080dd",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-macosx_x64.tar.gz"
-        ]
-    },
-    "remotejdk14_win": {
-        "build_file": "@bazel_tools//tools/jdk:jdk.BUILD",
-        "generator_function": "maybe",
-        "generator_name": "remotejdk14_win",
-        "name": "remotejdk14_win",
-        "sha256": "9cb078b5026a900d61239c866161f0d9558ec759aa15c5b4c7e905370e868284",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-win_x64.zip"
-        ]
-    },
-    "remotejdk14_win_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk14_win_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "9cb078b5026a900d61239c866161f0d9558ec759aa15c5b4c7e905370e868284",
-        "strip_prefix": "zulu14.28.21-ca-jdk14.0.1-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-win_x64.zip"
-        ]
-    },
-    "remotejdk15_linux_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk15_linux_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "0a38f1138c15a4f243b75eb82f8ef40855afcc402e3c2a6de97ce8235011b1ad",
-        "strip_prefix": "zulu15.27.17-ca-jdk15.0.0-linux_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz"
-        ]
-    },
-    "remotejdk15_macos_aarch64_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk15_macos_aarch64_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "2613c3f15eef6b6ecd0fd102da92282b985e4573905dc902f1783d8059c1efc5",
-        "strip_prefix": "zulu15.29.15-ca-jdk15.0.2-macosx_aarch64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz"
-        ]
-    },
-    "remotejdk15_macos_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk15_macos_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "f80b2e0512d9d8a92be24497334c974bfecc8c898fc215ce0e76594f00437482",
-        "strip_prefix": "zulu15.27.17-ca-jdk15.0.0-macosx_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-macosx_x64.tar.gz",
-            "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-macosx_x64.tar.gz"
-        ]
-    },
-    "remotejdk15_win_for_testing": {
-        "build_file": "@local_jdk//:BUILD.bazel",
-        "name": "remotejdk15_win_for_testing",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "f535a530151e6c20de8a3078057e332b08887cb3ba1a4735717357e72765cad6",
-        "strip_prefix": "zulu15.27.17-ca-jdk15.0.0-win_x64",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-win_x64.zip",
-            "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-win_x64.zip"
-        ]
-    },
-    "rules_cc": {
-        "name": "rules_cc",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "d0c573b94a6ef20ef6ff20154a23d0efcb409fb0e1ff0979cec318dfe42f0cdd",
-        "strip_prefix": "rules_cc-b1c40e1de81913a3c40e5948f78719c28152486d",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip",
-            "https://github.com/bazelbuild/rules_cc/archive/b1c40e1de81913a3c40e5948f78719c28152486d.zip"
-        ]
-    },
-    "rules_java": {
-        "name": "rules_java",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
-        "strip_prefix": "rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
-            "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
-        ]
-    },
-    "rules_nodejs-2.2.2.tar.gz": {
-        "name": "rules_nodejs-2.2.2.tar.gz",
-        "sha256": "f2194102720e662dbf193546585d705e645314319554c6ce7e47d8b59f459e9c",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/releases/download/2.2.2/rules_nodejs-2.2.2.tar.gz",
-            "https://github.com/bazelbuild/rules_nodejs/releases/download/2.2.2/rules_nodejs-2.2.2.tar.gz"
-        ]
-    },
-    "rules_pkg": {
-        "name": "rules_pkg",
-        "patch_cmds": [
-            "test -f BUILD && chmod u+w BUILD || true",
-            "echo >> BUILD",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "4ba8f4ab0ff85f2484287ab06c0d871dcb31cc54d439457d28fd4ae14b18450a",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz",
-            "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz"
-        ]
-    },
-    "rules_pkg-0.2.4.tar.gz": {
-        "name": "rules_pkg-0.2.4.tar.gz",
-        "sha256": "4ba8f4ab0ff85f2484287ab06c0d871dcb31cc54d439457d28fd4ae14b18450a",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz",
-            "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz"
-        ]
-    },
-    "rules_proto": {
-        "name": "rules_proto",
-        "patch_cmds": [
-            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
-            "echo >> BUILD.bazel",
-            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
-        ],
-        "patch_cmds_win": [
-            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
-        ],
-        "sha256": "8e7d59a5b12b233be5652e3d29f42fba01c7cbab09f6b3a8d0a57ed6d1e9a0da",
-        "strip_prefix": "rules_proto-7e4afce6fe62dbff0a4a03450143146f9f2d7488",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz",
-            "https://github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz"
-        ]
-    },
-    "six": {
-        "build_file": "@com_github_grpc_grpc//third_party:six.BUILD",
-        "generator_function": "grpc_deps",
-        "generator_name": "six",
-        "name": "six",
-        "sha256": "d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73",
-        "urls": [
-            "https://files.pythonhosted.org/packages/dd/bf/4138e7bfb757de47d1f4b6994648ec67a51efe58fa907c1e11e350cddfca/six-1.12.0.tar.gz"
-        ]
-    },
-    "upb": {
-        "generator_function": "grpc_deps",
-        "generator_name": "upb",
-        "name": "upb",
-        "sha256": "7992217989f3156f8109931c1fc6db3434b7414957cb82371552377beaeb9d6c",
-        "strip_prefix": "upb-382d5afc60e05470c23e8de19b19fc5ad231e732",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz",
-            "https://github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz"
-        ]
-    },
-    "v1.33.1.tar.gz": {
-        "name": "v1.33.1.tar.gz",
-        "sha256": "58eaee5c0f1bd0b92ebe1fa0606ec8f14798500620e7444726afcaf65041cb63",
-        "urls": [
-            "https://mirror.bazel.build/github.com/grpc/grpc/archive/v1.33.1.tar.gz",
-            "https://github.com/grpc/grpc/archive/v1.33.1.tar.gz"
-        ]
-    },
-    "v3.13.0.tar.gz": {
-        "name": "v3.13.0.tar.gz",
-        "sha256": "9b4ee22c250fe31b16f1a24d61467e40780a3fbb9b91c3b65be2a376ed913a1a",
-        "urls": [
-            "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.13.0.tar.gz",
-            "https://github.com/protocolbuffers/protobuf/archive/v3.13.0.tar.gz"
-        ]
-    },
-    "zlib": {
-        "build_file": "@com_github_grpc_grpc//third_party:zlib.BUILD",
-        "generator_function": "grpc_deps",
-        "generator_name": "zlib",
-        "name": "zlib",
-        "sha256": "6d4d6640ca3121620995ee255945161821218752b551a1a180f4215f7d124d45",
-        "strip_prefix": "zlib-cacf7f1d4e3d44d871b605da3b647f07d718623f",
-        "urls": [
-            "https://storage.googleapis.com/grpc-bazel-mirror/github.com/madler/zlib/archive/cacf7f1d4e3d44d871b605da3b647f07d718623f.tar.gz",
-            "https://github.com/madler/zlib/archive/cacf7f1d4e3d44d871b605da3b647f07d718623f.tar.gz"
-        ]
-    },
-    "zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz": {
-        "name": "zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz",
-        "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
-        ]
-    },
-    "zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz": {
-        "name": "zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz",
-        "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
-        ]
-    },
-    "zulu11.37.17-ca-jdk11.0.6-win_x64.zip": {
-        "name": "zulu11.37.17-ca-jdk11.0.6-win_x64.zip",
-        "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
-        ]
-    },
-    "zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz": {
-        "name": "zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz",
-        "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
-        "urls": [
-            "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
-        ]
-    },
-    "zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz": {
-        "name": "zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz",
-        "sha256": "3dcc636e64ae58b922269c2dc9f20f6f967bee90e3f6847d643c4a566f1e8d8a",
-        "urls": [
-            "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-macosx_aarch64.tar.gz"
-        ]
-    }
-}
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/upb-clang16.patch b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/upb-clang16.patch
deleted file mode 100644
index 34bb71747b17..000000000000
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/upb-clang16.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff --git a/WORKSPACE b/WORKSPACE
-index 2d995f095e..55fddef663 100644
---- a/WORKSPACE
-+++ b/WORKSPACE
-@@ -1232,7 +1232,7 @@ register_toolchains("//src/main/res:empty_rc_toolchain")
- http_archive(
-     name = "com_github_grpc_grpc",
-     patch_args = ["-p1"],
--    patches = ["//third_party/grpc:grpc_1.33.1.patch"],
-+    patches = ["//third_party/grpc:grpc_1.33.1.patch", "//:grpc-upb-clang16.patch"],
-     sha256 = "58eaee5c0f1bd0b92ebe1fa0606ec8f14798500620e7444726afcaf65041cb63",
-     strip_prefix = "grpc-1.33.1",
-     urls = [
-diff --git a/grpc-upb-clang16.patch b/grpc-upb-clang16.patch
-new file mode 100644
-index 0000000000..ae6a7ad0e0
---- /dev/null
-+++ b/grpc-upb-clang16.patch
-@@ -0,0 +1,13 @@
-+diff -r -u a/bazel/grpc_deps.bzl b/bazel/grpc_deps.bzl
-+--- a/bazel/grpc_deps.bzl
-++++ b/bazel/grpc_deps.bzl
-+@@ -285,6 +285,8 @@
-+             name = "upb",
-+             sha256 = "7992217989f3156f8109931c1fc6db3434b7414957cb82371552377beaeb9d6c",
-+             strip_prefix = "upb-382d5afc60e05470c23e8de19b19fc5ad231e732",
-++            patches = ["//:upb-clang16.patch"],
-++            patch_args = ["-p1"],
-+             urls = [
-+                 "https://storage.googleapis.com/grpc-bazel-mirror/github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz",
-+                 "https://github.com/protocolbuffers/upb/archive/382d5afc60e05470c23e8de19b19fc5ad231e732.tar.gz",
-+
-diff --git a/upb-clang16.patch b/upb-clang16.patch
-new file mode 100644
-index 0000000000..b799737fac
---- /dev/null
-+++ b/upb-clang16.patch
-@@ -0,0 +1,18 @@
-+--- a/BUILD
-++++ b/BUILD
-+@@ -34,6 +34,7 @@
-+     "-Wextra",
-+     # "-Wshorten-64-to-32",  # not in GCC (and my Kokoro images doesn't have Clang)
-+     "-Werror",
-++    "-Wno-gnu-offsetof-extensions",
-+     "-Wno-long-long",
-+     # copybara:strip_end
-+ ]
-+@@ -42,6 +43,7 @@
-+     # copybara:strip_for_google3_begin
-+     "-pedantic",
-+     "-Werror=pedantic",
-++    "-Wno-gnu-offsetof-extensions",
-+     "-Wstrict-prototypes",
-+     # copybara:strip_end
-+ ]
-
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/update-srcDeps.py b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/update-srcDeps.py
deleted file mode 100755
index 9e998e05875e..000000000000
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_4/update-srcDeps.py
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env python3
-import sys
-import json
-
-if len(sys.argv) != 2:
-    print("usage: ./this-script src-deps.json < WORKSPACE", file=sys.stderr)
-    print("Takes the bazel WORKSPACE file and reads all archives into a json dict (by evaling it as python code)", file=sys.stderr)
-    print("Hail Eris.", file=sys.stderr)
-    sys.exit(1)
-
-http_archives = []
-
-# just the kw args are the dict { name, sha256, urls … }
-def http_archive(**kw):
-    http_archives.append(kw)
-# like http_file
-def http_file(**kw):
-    http_archives.append(kw)
-
-# this is inverted from http_archive/http_file and bundles multiple archives
-def distdir_tar(**kw):
-    for archive_name in kw['archives']:
-        http_archives.append({
-            "name": archive_name,
-            "sha256": kw['sha256'][archive_name],
-            "urls": kw['urls'][archive_name]
-        })
-
-# TODO?
-def git_repository(**kw):
-    print(json.dumps(kw, sort_keys=True, indent=4), file=sys.stderr)
-    sys.exit(1)
-
-# execute the WORKSPACE like it was python code in this module,
-# using all the function stubs from above.
-exec(sys.stdin.read())
-
-# transform to a dict with the names as keys
-d = { el['name']: el for el in http_archives }
-
-def has_urls(el):
-    return ('url' in el and el['url']) or ('urls' in el and el['urls'])
-def has_sha256(el):
-    return 'sha256' in el and el['sha256']
-bad_archives = list(filter(lambda el: not has_urls(el) or not has_sha256(el), d.values()))
-if bad_archives:
-    print('Following bazel dependencies are missing url or sha256', file=sys.stderr)
-    print('Check bazel sources for master or non-checksummed dependencies', file=sys.stderr)
-    for el in bad_archives:
-        print(json.dumps(el, sort_keys=True, indent=4), file=sys.stderr)
-    sys.exit(1)
-
-with open(sys.argv[1], "w") as f:
-    print(json.dumps(d, sort_keys=True, indent=4), file=f)
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix
index 15854d524283..1761358c263e 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/cpp-test.nix
@@ -73,11 +73,6 @@ let
     '' + lib.optionalString (stdenv.isDarwin) ''
         --cxxopt=-x --cxxopt=c++ \
         --host_cxxopt=-x --host_cxxopt=c++ \
-    '' + lib.optionalString (stdenv.cc.isClang && stdenv ? cc.libcxx.cxxabi.libName) ''
-        --linkopt=-Wl,-l${stdenv.cc.libcxx.cxxabi.libName} \
-        --linkopt=-L${stdenv.cc.libcxx.cxxabi}/lib \
-        --host_linkopt=-Wl,-l${stdenv.cc.libcxx.cxxabi.libName} \
-        --host_linkopt=-L${stdenv.cc.libcxx.cxxabi}/lib \
     '' + lib.optionalString (stdenv.isDarwin && Foundation != null) ''
         --linkopt=-Wl,-F${Foundation}/Library/Frameworks \
         --linkopt=-L${darwin.libobjc}/lib \
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/default.nix
index b3b161db42f5..92f4a52e028a 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/default.nix
@@ -258,8 +258,6 @@ stdenv.mkDerivation rec {
 
   postPatch =
     let
-      # Workaround for https://github.com/NixOS/nixpkgs/issues/166205
-      nixpkgs166205ldflag = lib.optionalString stdenv.cc.isClang "-l${stdenv.cc.libcxx.cxxabi.libName}";
       darwinPatches = ''
         bazelLinkFlags () {
           eval set -- "$NIX_LDFLAGS"
@@ -274,7 +272,7 @@ stdenv.mkDerivation rec {
 
         # Framework search paths aren't added by bintools hook
         # https://github.com/NixOS/nixpkgs/pull/41914
-        export NIX_LDFLAGS+=" -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks -F${IOKit}/Library/Frameworks ${nixpkgs166205ldflag}"
+        export NIX_LDFLAGS+=" -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks -F${IOKit}/Library/Frameworks"
 
         # libcxx includes aren't added by libcxx hook
         # https://github.com/NixOS/nixpkgs/pull/41589
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix
index d50de32d4a3e..6658c0d5b0ed 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_7/protobuf-test.nix
@@ -157,11 +157,6 @@ let
         --javabase='@local_jdk//:jdk' \
     '' + lib.optionalString (stdenv.isDarwin) ''
         --cxxopt=-x --cxxopt=c++ --host_cxxopt=-x --host_cxxopt=c++ \
-    '' + lib.optionalString (stdenv.cc.isClang && stdenv ? cc.libcxx.cxxabi.libName) ''
-        --linkopt=-Wl,-l${stdenv.cc.libcxx.cxxabi.libName} \
-        --linkopt=-L${stdenv.cc.libcxx.cxxabi}/lib \
-        --host_linkopt=-Wl,-l${stdenv.cc.libcxx.cxxabi.libName} \
-        --host_linkopt=-L${stdenv.cc.libcxx.cxxabi}/lib \
     '' + ''
 
     '';
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bear/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bear/default.nix
index 431f7b1773f6..0e8b20c7a9d4 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bear/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bear/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool that generates a compilation database for clang tooling";
+    mainProgram = "bear";
     longDescription = ''
       Note: the bear command is very useful to generate compilation commands
       e.g. for YouCompleteMe.  You just enter your development nix-shell
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix
index e56344c40003..3870fa3f60a3 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     description = "A Scala build server and command-line tool to make the compile and test developer workflows fast and productive in a build-tool-agnostic way";
+    mainProgram = "bloop";
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ kubukoz tomahna ];
   };
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bob/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bob/default.nix
index 97e67ce97798..6821dc19116f 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bob/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bob/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A build system for microservices";
+    mainProgram = "bob";
     homepage = "https://bob.build";
     license = licenses.asl20;
     maintainers = with maintainers; [ zuzuleinen ];
diff --git a/nixpkgs/pkgs/development/tools/build-managers/boot/default.nix b/nixpkgs/pkgs/development/tools/build-managers/boot/default.nix
index 1590906206c1..dd296aa83188 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/boot/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/boot/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Build tooling for Clojure";
+    mainProgram = "boot";
     homepage = "https://boot-clj.github.io/";
     license = licenses.epl10;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/development/tools/build-managers/buck/default.nix b/nixpkgs/pkgs/development/tools/build-managers/buck/default.nix
index d283e1e321db..dff44f4cd240 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/buck/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/buck/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://buck.build/";
     description = "A high-performance build tool";
+    mainProgram = "buck";
     maintainers = [ maintainers.jgertm maintainers.marsam ];
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/build-managers/buck2/default.nix b/nixpkgs/pkgs/development/tools/build-managers/buck2/default.nix
index 20b1d184e8e1..3aad79ce1e58 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/buck2/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/buck2/default.nix
@@ -38,7 +38,7 @@ let
   buildHashes = builtins.fromJSON (builtins.readFile ./hashes.json);
 
   # our version of buck2; this should be a git tag
-  version = "2024-01-15";
+  version = "2024-03-15";
 
   # the platform-specific, statically linked binary — which is also
   # zstd-compressed
@@ -63,7 +63,7 @@ let
   # tooling
   prelude-src =
     let
-      prelude-hash = "ccf6f5d1693cfa215b60212cf9863d27c6fd6a69";
+      prelude-hash = "c68a0e4b35928891e72df1738c890bfcb76a6174";
       name = "buck2-prelude-${version}.tar.gz";
       hash = buildHashes."_prelude";
       url = "https://github.com/facebook/buck2-prelude/archive/${prelude-hash}.tar.gz";
diff --git a/nixpkgs/pkgs/development/tools/build-managers/buck2/hashes.json b/nixpkgs/pkgs/development/tools/build-managers/buck2/hashes.json
index 687a2f585f02..280228e6f4e8 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/buck2/hashes.json
+++ b/nixpkgs/pkgs/development/tools/build-managers/buck2/hashes.json
@@ -1,7 +1,7 @@
 { "_comment": "@generated by pkgs/development/tools/build-managers/buck2/update.sh"
-, "_prelude": "sha256-Bsd545xKass+Sua1sTFRNJgOokaHS62AKvhiLuqL58w="
-, "x86_64-linux": "sha256-Oxgz96x9INVDybJIRlBvIa76V7ngUxYh9Uo6Hdo/3pQ="
-, "x86_64-darwin": "sha256-tOlp6LKdQZg6TK2Ki8yf/e38Ibrx3fDrzOzC6bzGtrQ="
-, "aarch64-linux": "sha256-LmMbh/4tckZN1J8GJzMt8GyPmQbk3zc9DwXqJ004O7c="
-, "aarch64-darwin": "sha256-qsdHCxtJzu+UMVl1AcQh3cgDWQAITQNJEnfEN9A1W5M="
+, "_prelude": "sha256-PTetJetdpFU3bKLU1WESMwIEZox86IcrczvCxmaQzoE="
+, "x86_64-linux": "sha256-2vaKYCFRu2fNA/Nsu3HHT5DWtNeMnEfE8FVl7bat1HQ="
+, "x86_64-darwin": "sha256-zzB3sPOCDGWAb4CQO0yjb7Bph+ioi3cJoMYO/2YzXfU="
+, "aarch64-linux": "sha256-sx8rcADlfdAECL/SSHeB7vzxoedqx6+yT7yJp1qLBgM="
+, "aarch64-darwin": "sha256-GKQ8Xfe9iRpgq5SrM6nyyIPBh9gC25uN/vzGRjViQdQ="
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/build2/bdep.nix b/nixpkgs/pkgs/development/tools/build-managers/build2/bdep.nix
index 904217e29d3a..90a58e4f1b51 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/build2/bdep.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/build2/bdep.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "build2 project dependency manager";
+    mainProgram = "bdep";
     # https://build2.org/bdep/doc/bdep.xhtml
     longDescription = ''
       The build2 project dependency manager is used to manage the dependencies
diff --git a/nixpkgs/pkgs/development/tools/build-managers/build2/bpkg.nix b/nixpkgs/pkgs/development/tools/build-managers/build2/bpkg.nix
index 60b9d820ac2f..e395322df420 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/build2/bpkg.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/build2/bpkg.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "build2 package dependency manager";
+    mainProgram = "bpkg";
     # https://build2.org/bpkg/doc/bpkg.xhtml
     longDescription = ''
       The build2 package dependency manager is used to manipulate build
diff --git a/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix b/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
index 7226d4e3340a..a2f007a0fcf4 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
@@ -107,6 +107,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Decentralized and portable C/C++ package manager";
+    mainProgram = "conan";
     homepage = "https://conan.io";
     changelog = "https://github.com/conan-io/conan/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/build-managers/dub/default.nix b/nixpkgs/pkgs/development/tools/build-managers/dub/default.nix
index 8c9261628bfe..d815a9515dc6 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/dub/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/dub/default.nix
@@ -149,9 +149,10 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Package and build manager for D applications and libraries";
+    mainProgram = "dub";
     homepage = "https://code.dlang.org/";
     license = licenses.mit;
-    maintainers = with maintainers; [ ThomasMader jtbx ];
+    maintainers = with maintainers; [ jtbx ];
     platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/gn/generic.nix b/nixpkgs/pkgs/development/tools/build-managers/gn/generic.nix
index bb72e4bb20b4..dab03ebfb758 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/gn/generic.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/gn/generic.nix
@@ -1,6 +1,5 @@
 { stdenv, lib, fetchgit, darwin, writeText
 , ninja, python3
-, disable-warnings-if-gcc13
 , ...
 }:
 
@@ -18,7 +17,7 @@ let
     #endif  // OUT_LAST_COMMIT_POSITION_H_
   '';
 
-in disable-warnings-if-gcc13 (stdenv.mkDerivation {
+in stdenv.mkDerivation {
   pname = "gn-unstable";
   inherit version;
 
@@ -39,6 +38,8 @@ in disable-warnings-if-gcc13 (stdenv.mkDerivation {
     AppKit
   ]);
 
+  env.NIX_CFLAGS_COMPILE = "-Wno-error";
+
   buildPhase = ''
     python build/gen.py --no-last-commit-position
     ln -s ${lastCommitPosition} out/last_commit_position.h
@@ -53,9 +54,10 @@ in disable-warnings-if-gcc13 (stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A meta-build system that generates build files for Ninja";
+    mainProgram = "gn";
     homepage = "https://gn.googlesource.com/gn";
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ stesie matthewbauer primeos ];
   };
-})
+}
diff --git a/nixpkgs/pkgs/development/tools/build-managers/kati/default.nix b/nixpkgs/pkgs/development/tools/build-managers/kati/default.nix
index ed5923e74d0a..dba8eb6381fa 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/kati/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/kati/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "An experimental GNU make clone";
+    mainProgram = "ckati";
     homepage = "https://github.com/google/kati";
     platforms = platforms.all;
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/build-managers/knit/default.nix b/nixpkgs/pkgs/development/tools/build-managers/knit/default.nix
index df2898239b78..6a2779cd7136 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/knit/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/knit/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A simple and flexible build tool using Lua, similar to make/mk";
+    mainProgram = "knit";
     homepage = "https://github.com/zyedidia/knit";
     changelog = "https://github.com/zyedidia/knit/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix b/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix
index 2fdf1418f8ff..066bbef7d626 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Make/Rake-like Build Tool Using Go";
+    mainProgram = "mage";
     homepage = "https://magefile.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ swdunlop ];
diff --git a/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix b/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
index 4afc58bff65f..fc071b7e2122 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
     homepage = "https://com-lihaoyi.github.io/mill/";
     license = licenses.mit;
     description = "A build tool for Scala, Java and more";
+    mainProgram = "mill";
     longDescription = ''
       Mill is a build tool borrowing ideas from modern tools like Bazel, to let you build
       your projects in a way that's simple, fast, and predictable. Mill has built in
diff --git a/nixpkgs/pkgs/development/tools/build-managers/moon/default.nix b/nixpkgs/pkgs/development/tools/build-managers/moon/default.nix
index 69d067c9439b..192c7944fcd6 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/moon/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/moon/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "moon";
-  version = "1.22.4";
+  version = "1.22.10";
 
   src = fetchFromGitHub {
     owner = "moonrepo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Hx31oEvf6irURxtLBPaY2unCgW0tBurhSjhBNI1ifng=";
+    hash = "sha256-BJ3Src412WS1uWt04OaRIjhtZt+8vh15Ve/+c2qZFdU=";
   };
 
-  cargoHash = "sha256-DKktU8w+4TeGSzidjovK9xgis98Gz7BretrO+bpfnTc=";
+  cargoHash = "sha256-G/vZT/iOQtpr0gtT0pjRXIhhpPrjnR/kBg6fVAMuDB0=";
 
   env = {
     RUSTFLAGS = "-C strip=symbols";
@@ -37,6 +37,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A task runner and repo management tool for the web ecosystem, written in Rust";
+    mainProgram = "moon";
     homepage = "https://github.com/moonrepo/moon";
     license = licenses.mit;
     maintainers = with maintainers; [ flemzord ];
diff --git a/nixpkgs/pkgs/development/tools/build-managers/msbuild/default.nix b/nixpkgs/pkgs/development/tools/build-managers/msbuild/default.nix
index 1b561470af79..1f5261649b85 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/msbuild/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/msbuild/default.nix
@@ -150,6 +150,7 @@ EOF
 
   meta = with lib; {
     description = "Mono version of Microsoft Build Engine, the build platform for .NET, and Visual Studio";
+    mainProgram = "msbuild";
     homepage = "https://github.com/mono/msbuild";
     sourceProvenance = with sourceTypes; [
       fromSource
diff --git a/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix b/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix
index 7c2c79bf9e92..3402bcfca625 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix
@@ -93,6 +93,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Small build system with a focus on speed";
+    mainProgram = "ninja";
     longDescription = ''
       Ninja is a small build system with a focus on speed. It differs from
       other build systems in two major respects: it is designed to have its
diff --git a/nixpkgs/pkgs/development/tools/build-managers/rebar/default.nix b/nixpkgs/pkgs/development/tools/build-managers/rebar/default.nix
index 2bdafa5fcfb0..b73553466cbb 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/rebar/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/rebar/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://github.com/rebar/rebar";
     description = "Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases";
+    mainProgram = "rebar";
 
     longDescription = ''
       rebar is a self-contained Erlang script, so it's easy to
diff --git a/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix b/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix
index b39a9537ee4c..0dd651a9d3f0 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix
@@ -53,6 +53,7 @@ let
     meta = {
       homepage = "https://github.com/rebar/rebar3";
       description = "Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases";
+      mainProgram = "rebar3";
 
       longDescription = ''
         rebar is a self-contained Erlang script, so it's easy to distribute or
diff --git a/nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix b/nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix
index 093a825723c0..67dd66d8eeee 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Redo implementation in Bourne Shell";
     homepage = "http://news.dieweltistgarnichtso.net/bin/redo-sh.html";
-    license  = licenses.agpl3;
+    license  = licenses.agpl3Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ sternenseemann ];
   };
diff --git a/nixpkgs/pkgs/development/tools/build-managers/remake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/remake/default.nix
index f2589c1e75c6..886034e4a270 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/remake/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/remake/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "https://bashdb.sourceforge.net/remake/";
     license = lib.licenses.gpl3Plus;
     description = "GNU Make with comprehensible tracing and a debugger";
+    mainProgram = "remake";
     platforms = with lib.platforms; linux ++ darwin;
     maintainers = with lib.maintainers; [ bjornfor shamilton ];
   };
diff --git a/nixpkgs/pkgs/development/tools/build-managers/sbt/scala-native.nix b/nixpkgs/pkgs/development/tools/build-managers/sbt/scala-native.nix
index caa9feebb519..5dc5cf7eb3e0 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/sbt/scala-native.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/sbt/scala-native.nix
@@ -7,8 +7,8 @@ sbt.overrideAttrs(previousAttrs: {
     wrapProgram $out/bin/sbt \
       --set CLANG_PATH      "${llvmPackages.clang}/bin/clang" \
       --set CLANGPP_PATH    "${llvmPackages.clang}/bin/clang" \
-      --set CPATH           "${lib.makeSearchPathOutput "dev" "include" [ re2 zlib boehmgc libunwind llvmPackages.libcxxabi llvmPackages.libcxx ]}/c++/v1" \
-      --set LIBRARY_PATH    "${lib.makeLibraryPath [ re2 zlib boehmgc libunwind llvmPackages.libcxxabi llvmPackages.libcxx ]}" \
-      --set NIX_CFLAGS_LINK "-lc++abi -lc++"
+      --set CPATH           "${lib.makeSearchPathOutput "dev" "include" [ re2 zlib boehmgc libunwind llvmPackages.libcxx ]}/c++/v1" \
+      --set LIBRARY_PATH    "${lib.makeLibraryPath [ re2 zlib boehmgc libunwind llvmPackages.libcxx ]}" \
+      --set NIX_CFLAGS_LINK "-lc++"
   '';
 })
diff --git a/nixpkgs/pkgs/development/tools/build-managers/scala-cli/default.nix b/nixpkgs/pkgs/development/tools/build-managers/scala-cli/default.nix
index 293607bf3d6b..5e2058899393 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/scala-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/scala-cli/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     description = "Command-line tool to interact with the Scala language";
+    mainProgram = "scala-cli";
     maintainers = [ maintainers.kubukoz ];
     inherit platforms;
   };
diff --git a/nixpkgs/pkgs/development/tools/build-managers/scala-cli/sources.json b/nixpkgs/pkgs/development/tools/build-managers/scala-cli/sources.json
index f6a82483343f..54e1ce307a93 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/scala-cli/sources.json
+++ b/nixpkgs/pkgs/development/tools/build-managers/scala-cli/sources.json
@@ -1,21 +1,21 @@
 {
-  "version": "1.1.3",
+  "version": "1.2.0",
   "assets": {
     "aarch64-darwin": {
       "asset": "scala-cli-aarch64-apple-darwin.gz",
-      "sha256": "03rxllpnr93ms6j0fny7h2sym9pj1q8xrj0jmhapdjv582j4by82"
+      "sha256": "1d9r45k9j7hniik5f6x9ym4lhkk6f1hs5rlxngsjb9v19jaik1nw"
     },
     "aarch64-linux": {
       "asset": "scala-cli-aarch64-pc-linux.gz",
-      "sha256": "1msi2ylx2qf6k5gm1jj31qh9qbrxp5fydybzb25zclnpwwg1jlyc"
+      "sha256": "0rvw4ahcq546nxcrkm16b9bra4398d3glgj3911bpp1zbyhzihz0"
     },
     "x86_64-darwin": {
       "asset": "scala-cli-x86_64-apple-darwin.gz",
-      "sha256": "1sl3q59mb56g6795c8sm9kjpdgmpcdd23fxhaw49px2dvyryvxyy"
+      "sha256": "1z3rgsny3fk3jqzqkyggvjx4ha1xj3v0f2ascd8a2qkxhzr6gl77"
     },
     "x86_64-linux": {
       "asset": "scala-cli-x86_64-pc-linux.gz",
-      "sha256": "17cp6mq0046y21pd7cadxj90aqkqnlz7zx7sdp7mmn3pzjcaynqc"
+      "sha256": "00vgp421967iyz13rhfhfbq6xqc2g17grm4vabh9dzb5rmrpga8g"
     }
   }
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix b/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix
index 721a70d22457..94e0bc9a2784 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix
@@ -28,6 +28,7 @@ let
 
       meta = with lib; {
         description = "Dependency manager for the Crystal language";
+        mainProgram = "shards";
         license = licenses.asl20;
         maintainers = with maintainers; [ peterhoeg ];
         inherit (crystal.meta) homepage platforms;
diff --git a/nixpkgs/pkgs/development/tools/build-managers/xmake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/xmake/default.nix
index b6d2f8ab6909..441ed8067cec 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/xmake/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/xmake/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xmake";
-  version = "2.8.7";
+  version = "2.8.9";
 
   src = fetchurl {
     url = "https://github.com/xmake-io/xmake/releases/download/v${version}/xmake-v${version}.tar.gz";
-    hash = "sha256-jHqMb3ex/BcF54ViTpoelEcWhEqDeP7Oc0HeJ7mfC4k=";
+    hash = "sha256-X3k8OTNG74Dkfwg63k08L9/ESGWKeRf9o1zNe9K5Ebg=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/tools/buildah/default.nix b/nixpkgs/pkgs/development/tools/buildah/default.nix
index f8f9a6b1decf..1814d46ac384 100644
--- a/nixpkgs/pkgs/development/tools/buildah/default.nix
+++ b/nixpkgs/pkgs/development/tools/buildah/default.nix
@@ -17,13 +17,13 @@
 
 buildGoModule rec {
   pname = "buildah";
-  version = "1.35.0";
+  version = "1.35.1";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "buildah";
     rev = "v${version}";
-    hash = "sha256-xVcqbcKb6qm/XXRBi2vSIeISjfg5EivXpEbif96f+6U=";
+    hash = "sha256-Jow4A0deh6Y54KID9uLsIjBSgH5NWmR82IH7m56Y990=";
   };
 
   outputs = [ "out" "man" ];
@@ -70,6 +70,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool which facilitates building OCI images";
+    mainProgram = "buildah";
     homepage = "https://buildah.io/";
     changelog = "https://github.com/containers/buildah/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/buildkit/default.nix b/nixpkgs/pkgs/development/tools/buildkit/default.nix
index 6dd7d9a3746d..325d51e939a4 100644
--- a/nixpkgs/pkgs/development/tools/buildkit/default.nix
+++ b/nixpkgs/pkgs/development/tools/buildkit/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "buildkit";
-  version = "0.13.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "moby";
     repo = "buildkit";
     rev = "v${version}";
-    hash = "sha256-A6BncEyuAWyDlBK9ZuBoDl8gbQo0NAaVWXvy2mZs0GA=";
+    hash = "sha256-BrLDY3T40ndkjuWCx5kLZvMBp8xI5d3MFg9M3IpafWM=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/development/tools/buildpack/default.nix b/nixpkgs/pkgs/development/tools/buildpack/default.nix
index f097695c69e1..d2eb4cc531c5 100644
--- a/nixpkgs/pkgs/development/tools/buildpack/default.nix
+++ b/nixpkgs/pkgs/development/tools/buildpack/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
     homepage = "https://buildpacks.io/";
     changelog = "https://github.com/buildpacks/pack/releases/tag/v${version}";
     description = "CLI for building apps using Cloud Native Buildpacks";
+    mainProgram = "pack";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/nixpkgs/pkgs/development/tools/bundletool/default.nix b/nixpkgs/pkgs/development/tools/bundletool/default.nix
index 56c3a72ea7f1..46aa9902e717 100644
--- a/nixpkgs/pkgs/development/tools/bundletool/default.nix
+++ b/nixpkgs/pkgs/development/tools/bundletool/default.nix
@@ -21,6 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     description = "Command-line tool to manipulate Android App Bundles";
+    mainProgram = "bundletool";
     homepage = "https://developer.android.com/studio/command-line/bundletool";
     changelog = "https://github.com/google/bundletool/releases/tag/${version}";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/nixpkgs/pkgs/development/tools/butane/default.nix b/nixpkgs/pkgs/development/tools/butane/default.nix
index 4e9dc2d59dc1..3c13c8971af8 100644
--- a/nixpkgs/pkgs/development/tools/butane/default.nix
+++ b/nixpkgs/pkgs/development/tools/butane/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Translates human-readable Butane configs into machine-readable Ignition configs";
+    mainProgram = "butane";
     license = licenses.asl20;
     homepage = "https://github.com/coreos/butane";
     maintainers = with maintainers; [ elijahcaine ruuda ];
diff --git a/nixpkgs/pkgs/development/tools/cambalache/default.nix b/nixpkgs/pkgs/development/tools/cambalache/default.nix
index a6918b0476e4..757ab10583a7 100644
--- a/nixpkgs/pkgs/development/tools/cambalache/default.nix
+++ b/nixpkgs/pkgs/development/tools/cambalache/default.nix
@@ -95,6 +95,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/jpu/cambalache";
     description = "RAD tool for GTK 4 and 3 with data model first philosophy";
+    mainProgram = "cambalache";
     maintainers = teams.gnome.members;
     license = with licenses; [
       lgpl21Only # Cambalache
diff --git a/nixpkgs/pkgs/development/tools/capnproto-java/default.nix b/nixpkgs/pkgs/development/tools/capnproto-java/default.nix
index b96aa44a779c..fa59a5ad2abf 100644
--- a/nixpkgs/pkgs/development/tools/capnproto-java/default.nix
+++ b/nixpkgs/pkgs/development/tools/capnproto-java/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Cap'n Proto codegen plugin for Java";
+    mainProgram = "capnpc-java";
     longDescription = "Only includes compiler plugin, the Java runtime/library that the generated code will link to must be built separately with Maven.";
     homepage = "https://dwrensha.github.io/capnproto-java/index.html";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/castxml/default.nix b/nixpkgs/pkgs/development/tools/castxml/default.nix
index 1a7c15d9a963..0547df5d4cc5 100644
--- a/nixpkgs/pkgs/development/tools/castxml/default.nix
+++ b/nixpkgs/pkgs/development/tools/castxml/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://github.com/CastXML/CastXML";
     description = "C-family Abstract Syntax Tree XML Output";
+    mainProgram = "castxml";
     license = licenses.asl20;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/cbfmt/default.nix b/nixpkgs/pkgs/development/tools/cbfmt/default.nix
index 17340d7a7a76..f4af306400ab 100644
--- a/nixpkgs/pkgs/development/tools/cbfmt/default.nix
+++ b/nixpkgs/pkgs/development/tools/cbfmt/default.nix
@@ -13,15 +13,13 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-6oZCpjQ8t/QLFhEtF7td8KGI/kFE04pg7OELutsrJKo=";
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-  env = lib.optionalAttrs stdenv.cc.isClang { NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}"; };
-
   passthru.tests.version = testers.testVersion {
     package = cbfmt;
   };
 
   meta = with lib; {
     description = "A tool to format codeblocks inside markdown and org documents";
+    mainProgram = "cbfmt";
     homepage = "https://github.com/lukas-reineke/cbfmt";
     license = licenses.mit;
     maintainers = [ maintainers.stehessel ];
diff --git a/nixpkgs/pkgs/development/tools/cdecrypt/default.nix b/nixpkgs/pkgs/development/tools/cdecrypt/default.nix
index bcbe34c886c1..9f742a34a002 100644
--- a/nixpkgs/pkgs/development/tools/cdecrypt/default.nix
+++ b/nixpkgs/pkgs/development/tools/cdecrypt/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A utility that decrypts Wii U NUS content files";
+    mainProgram = "cdecrypt";
     homepage = "https://github.com/VitaSmith/cdecrypt";
     changelog = "https://github.com/VitaSmith/cdecrypt/releases/tag/v${version}";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/tools/changie/default.nix b/nixpkgs/pkgs/development/tools/changie/default.nix
index bd52641f2be5..a4050744f09a 100644
--- a/nixpkgs/pkgs/development/tools/changie/default.nix
+++ b/nixpkgs/pkgs/development/tools/changie/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Automated changelog tool for preparing releases with lots of customization options";
+    mainProgram = "changie";
     homepage = "https://changie.dev";
     changelog = "https://github.com/miniscruff/changie/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/check-jsonschema/default.nix b/nixpkgs/pkgs/development/tools/check-jsonschema/default.nix
index 54b6b8926bf1..06a0abbf5562 100644
--- a/nixpkgs/pkgs/development/tools/check-jsonschema/default.nix
+++ b/nixpkgs/pkgs/development/tools/check-jsonschema/default.nix
@@ -41,6 +41,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "A jsonschema CLI and pre-commit hook";
+    mainProgram = "check-jsonschema";
     homepage = "https://github.com/python-jsonschema/check-jsonschema";
     changelog = "https://github.com/python-jsonschema/check-jsonschema/blob/${version}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/checkmake/default.nix b/nixpkgs/pkgs/development/tools/checkmake/default.nix
index f25a825e37d9..8e4d4c326141 100644
--- a/nixpkgs/pkgs/development/tools/checkmake/default.nix
+++ b/nixpkgs/pkgs/development/tools/checkmake/default.nix
@@ -48,6 +48,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Experimental tool for linting and checking Makefiles";
+    mainProgram = "checkmake";
     homepage = "https://github.com/mrtazz/checkmake";
     changelog = "https://github.com/mrtazz/checkmake/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/checkmate/default.nix b/nixpkgs/pkgs/development/tools/checkmate/default.nix
index 82fb04f344b0..ca036f967661 100644
--- a/nixpkgs/pkgs/development/tools/checkmate/default.nix
+++ b/nixpkgs/pkgs/development/tools/checkmate/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Pluggable code security analysis tool";
+    mainProgram = "checkmate";
     homepage = "https://github.com/adedayo/checkmate";
     changelog = "https://github.com/adedayo/checkmate/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/tools/chit/default.nix b/nixpkgs/pkgs/development/tools/chit/default.nix
index 5abc6e49aa0e..d3f0ffa2e3b5 100644
--- a/nixpkgs/pkgs/development/tools/chit/default.nix
+++ b/nixpkgs/pkgs/development/tools/chit/default.nix
@@ -37,6 +37,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Crate help in terminal: A tool for looking up details about rust crates without going to crates.io";
+    mainProgram = "chit";
     longDescription = ''
       Chit helps answer these questions:
 
diff --git a/nixpkgs/pkgs/development/tools/circup/default.nix b/nixpkgs/pkgs/development/tools/circup/default.nix
index b6aa75a36fc8..e63e0d06ea14 100644
--- a/nixpkgs/pkgs/development/tools/circup/default.nix
+++ b/nixpkgs/pkgs/development/tools/circup/default.nix
@@ -48,6 +48,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "CircuitPython library updater";
+    mainProgram = "circup";
     homepage = "https://github.com/adafruit/circup";
     changelog = "https://github.com/adafruit/circup/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/tools/clickable/default.nix b/nixpkgs/pkgs/development/tools/clickable/default.nix
index dfbac9aac0ba..82a276f9aff0 100644
--- a/nixpkgs/pkgs/development/tools/clickable/default.nix
+++ b/nixpkgs/pkgs/development/tools/clickable/default.nix
@@ -76,6 +76,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "A build system for Ubuntu Touch apps";
+    mainProgram = "clickable";
     homepage = "https://clickable-ut.dev";
     changelog = "https://clickable-ut.dev/en/latest/changelog.html";
     license = lib.licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/tools/clj-kondo/default.nix b/nixpkgs/pkgs/development/tools/clj-kondo/default.nix
index a11029c1514f..f1900ed9a330 100644
--- a/nixpkgs/pkgs/development/tools/clj-kondo/default.nix
+++ b/nixpkgs/pkgs/development/tools/clj-kondo/default.nix
@@ -3,12 +3,12 @@
 
 buildGraalvmNativeImage rec {
   pname = "clj-kondo";
-  version = "2024.02.12";
+  version = "2024.03.13";
 
   src = fetchurl {
     url =
       "https://github.com/clj-kondo/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "sha256-up98q1/GWP9wZP95lHNE1z2xhzGzb8ZyTeuhP7a+qHw=";
+    sha256 = "sha256-4V0YtGRbSzebxGYkoyCJEA4e1vtYWNbIHyXOlTfvGTU=";
   };
 
   graalvmDrv = graalvmCEPackages.graalvm-ce;
diff --git a/nixpkgs/pkgs/development/tools/clog-cli/default.nix b/nixpkgs/pkgs/development/tools/clog-cli/default.nix
index 077eac32aa20..f1d67bddc66f 100644
--- a/nixpkgs/pkgs/development/tools/clog-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/clog-cli/default.nix
@@ -20,5 +20,7 @@ rustPlatform.buildRustPackage rec {
     platforms = lib.platforms.unix;
     maintainers = [lib.maintainers.nthorne];
     mainProgram = "clog";
+    # error: could not compile `rustc-serialize`
+    broken = true; # Added 2024-03-16
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix b/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix
index 032d7d722c2e..0891cbd57f15 100644
--- a/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix
+++ b/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "cloud-nuke";
-  version = "0.33.0";
+  version = "0.34.0";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-yTCeltueOxGkOin6Cq6RzY7YNmHMz64wza8e0Pwr36E=";
+    hash = "sha256-p/b+s5/5Q58qYTfZwN6qHpMzgJ2ErUEP/FLB1oDXN8g=";
   };
 
-  vendorHash = "sha256-BnfWivu7xRmgDQgPIkjF48dOpU7hkw+Qkvb11eASDEk=";
+  vendorHash = "sha256-Fmfr9feTibAjiZaakJalGTS7X2RhGz6engMNhy48Zus=";
 
   nativeBuildInputs = [
     makeBinaryWrapper
@@ -36,6 +36,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/gruntwork-io/cloud-nuke";
     description = "A tool for cleaning up your cloud accounts by nuking (deleting) all resources within it";
+    mainProgram = "cloud-nuke";
     changelog = "https://github.com/gruntwork-io/cloud-nuke/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ marsam ];
diff --git a/nixpkgs/pkgs/development/tools/cloudsmith-cli/default.nix b/nixpkgs/pkgs/development/tools/cloudsmith-cli/default.nix
index 48952c0616fb..58c01f7078a3 100644
--- a/nixpkgs/pkgs/development/tools/cloudsmith-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/cloudsmith-cli/default.nix
@@ -40,6 +40,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://help.cloudsmith.io/docs/cli/";
     description = "Cloudsmith Command Line Interface";
+    mainProgram = "cloudsmith";
     changelog = "https://github.com/cloudsmith-io/cloudsmith-cli/blob/v${version}/CHANGELOG.md";
     maintainers = with maintainers; [ ];
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/cobra-cli/default.nix b/nixpkgs/pkgs/development/tools/cobra-cli/default.nix
index 5d123a046dc5..d94ef657d741 100644
--- a/nixpkgs/pkgs/development/tools/cobra-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/cobra-cli/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Cobra CLI tool to generate applications and commands";
+    mainProgram = "cobra-cli";
     homepage = "https://github.com/spf13/cobra-cli/";
     changelog = "https://github.com/spf13/cobra-cli/releases/tag/${version}";
     license = licenses.afl20;
diff --git a/nixpkgs/pkgs/development/tools/cocoapods/Gemfile-beta.lock b/nixpkgs/pkgs/development/tools/cocoapods/Gemfile-beta.lock
index a6de12d37758..363d1f9a30a0 100644
--- a/nixpkgs/pkgs/development/tools/cocoapods/Gemfile-beta.lock
+++ b/nixpkgs/pkgs/development/tools/cocoapods/Gemfile-beta.lock
@@ -1,7 +1,9 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    CFPropertyList (3.0.6)
+    CFPropertyList (3.0.7)
+      base64
+      nkf
       rexml
     activesupport (7.1.3)
       base64
@@ -22,10 +24,10 @@ GEM
     base64 (0.2.0)
     bigdecimal (3.1.6)
     claide (1.1.0)
-    cocoapods (1.15.1)
+    cocoapods (1.15.2)
       addressable (~> 2.8)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.15.1)
+      cocoapods-core (= 1.15.2)
       cocoapods-deintegrate (>= 1.0.3, < 2.0)
       cocoapods-downloader (>= 2.1, < 3.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -40,7 +42,7 @@ GEM
       nap (~> 1.0)
       ruby-macho (>= 2.3.0, < 3.0)
       xcodeproj (>= 1.23.0, < 2.0)
-    cocoapods-core (1.15.1)
+    cocoapods-core (1.15.2)
       activesupport (>= 5.0, < 8)
       addressable (~> 2.8)
       algoliasearch (~> 1.0)
@@ -75,12 +77,13 @@ GEM
     i18n (1.14.1)
       concurrent-ruby (~> 1.0)
     json (2.7.1)
-    minitest (5.22.0)
+    minitest (5.22.2)
     molinillo (0.8.0)
     mutex_m (0.2.0)
     nanaimo (0.3.0)
     nap (1.1.0)
     netrc (0.11.0)
+    nkf (0.2.0)
     public_suffix (4.0.7)
     rexml (3.2.6)
     ruby-macho (2.5.1)
diff --git a/nixpkgs/pkgs/development/tools/cocoapods/Gemfile.lock b/nixpkgs/pkgs/development/tools/cocoapods/Gemfile.lock
index 82951ab2233d..194f5e8a84bf 100644
--- a/nixpkgs/pkgs/development/tools/cocoapods/Gemfile.lock
+++ b/nixpkgs/pkgs/development/tools/cocoapods/Gemfile.lock
@@ -1,7 +1,9 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    CFPropertyList (3.0.6)
+    CFPropertyList (3.0.7)
+      base64
+      nkf
       rexml
     activesupport (7.1.3)
       base64
@@ -22,10 +24,10 @@ GEM
     base64 (0.2.0)
     bigdecimal (3.1.6)
     claide (1.1.0)
-    cocoapods (1.15.1)
+    cocoapods (1.15.2)
       addressable (~> 2.8)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.15.1)
+      cocoapods-core (= 1.15.2)
       cocoapods-deintegrate (>= 1.0.3, < 2.0)
       cocoapods-downloader (>= 2.1, < 3.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -40,7 +42,7 @@ GEM
       nap (~> 1.0)
       ruby-macho (>= 2.3.0, < 3.0)
       xcodeproj (>= 1.23.0, < 2.0)
-    cocoapods-core (1.15.1)
+    cocoapods-core (1.15.2)
       activesupport (>= 5.0, < 8)
       addressable (~> 2.8)
       algoliasearch (~> 1.0)
@@ -75,12 +77,13 @@ GEM
     i18n (1.14.1)
       concurrent-ruby (~> 1.0)
     json (2.7.1)
-    minitest (5.22.0)
+    minitest (5.22.2)
     molinillo (0.8.0)
     mutex_m (0.2.0)
     nanaimo (0.3.0)
     nap (1.1.0)
     netrc (0.11.0)
+    nkf (0.2.0)
     public_suffix (4.0.7)
     rexml (3.2.6)
     ruby-macho (2.5.1)
diff --git a/nixpkgs/pkgs/development/tools/cocoapods/gemset-beta.nix b/nixpkgs/pkgs/development/tools/cocoapods/gemset-beta.nix
index 44e3397129f6..022ce3a0f668 100644
--- a/nixpkgs/pkgs/development/tools/cocoapods/gemset-beta.nix
+++ b/nixpkgs/pkgs/development/tools/cocoapods/gemset-beta.nix
@@ -63,15 +63,15 @@
     version = "3.1.6";
   };
   CFPropertyList = {
-    dependencies = ["rexml"];
+    dependencies = ["base64" "nkf" "rexml"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1a36zn77yyibqsfpka0i8vgf3yv98ic2b9wwlbc29566y8wpa2bq";
+      sha256 = "0k1w5i4lb1z941m7ds858nly33f3iv12wvr1zav5x3fa99hj2my4";
       type = "gem";
     };
-    version = "3.0.6";
+    version = "3.0.7";
   };
   claide = {
     groups = ["default"];
@@ -89,10 +89,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19rmw9518zlcalr7vy6f10rbiya7ch86z3nfk2d6klw41ihc5hrq";
+      sha256 = "02h9lk5w0ilz39cdl7fil0fpmfbzyc23whkgp4rx2a6hx0yibxgh";
       type = "gem";
     };
-    version = "1.15.1";
+    version = "1.15.2";
   };
   cocoapods-core = {
     dependencies = ["activesupport" "addressable" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "public_suffix" "typhoeus"];
@@ -100,10 +100,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03dh7vfr9r248c8vbkssa6q0y9imvv1ms6mx28w06ysmdvn4vbgv";
+      sha256 = "0di1g9k1f6i80yxzdl3rdlfdk2w89dv6k5m06444rbg1gzcm09ij";
       type = "gem";
     };
-    version = "1.15.1";
+    version = "1.15.2";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
@@ -305,10 +305,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hv03j1ac349pjymis7jxmbqr5jalc60cg27529bbb3zymswhdjz";
+      sha256 = "0667vf0zglacry87nkcl3ns8421aydvz71vfa3g3yjhiq8zh19f5";
       type = "gem";
     };
-    version = "5.22.0";
+    version = "5.22.2";
   };
   molinillo = {
     groups = ["default"];
@@ -360,6 +360,16 @@
     };
     version = "0.11.0";
   };
+  nkf = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09piyp2pd74klb9wcn0zw4mb5l0k9wzwppxggxi1yi95l2ym3hgv";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
   public_suffix = {
     groups = ["default"];
     platforms = [];
diff --git a/nixpkgs/pkgs/development/tools/cocoapods/gemset.nix b/nixpkgs/pkgs/development/tools/cocoapods/gemset.nix
index efb58a05224c..d89ae9ca3aa4 100644
--- a/nixpkgs/pkgs/development/tools/cocoapods/gemset.nix
+++ b/nixpkgs/pkgs/development/tools/cocoapods/gemset.nix
@@ -61,15 +61,15 @@
     version = "3.1.6";
   };
   CFPropertyList = {
-    dependencies = ["rexml"];
+    dependencies = ["base64" "nkf" "rexml"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1a36zn77yyibqsfpka0i8vgf3yv98ic2b9wwlbc29566y8wpa2bq";
+      sha256 = "0k1w5i4lb1z941m7ds858nly33f3iv12wvr1zav5x3fa99hj2my4";
       type = "gem";
     };
-    version = "3.0.6";
+    version = "3.0.7";
   };
   claide = {
     groups = ["default"];
@@ -87,10 +87,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19rmw9518zlcalr7vy6f10rbiya7ch86z3nfk2d6klw41ihc5hrq";
+      sha256 = "02h9lk5w0ilz39cdl7fil0fpmfbzyc23whkgp4rx2a6hx0yibxgh";
       type = "gem";
     };
-    version = "1.15.1";
+    version = "1.15.2";
   };
   cocoapods-core = {
     dependencies = ["activesupport" "addressable" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "public_suffix" "typhoeus"];
@@ -98,10 +98,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03dh7vfr9r248c8vbkssa6q0y9imvv1ms6mx28w06ysmdvn4vbgv";
+      sha256 = "0di1g9k1f6i80yxzdl3rdlfdk2w89dv6k5m06444rbg1gzcm09ij";
       type = "gem";
     };
-    version = "1.15.1";
+    version = "1.15.2";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
@@ -293,10 +293,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hv03j1ac349pjymis7jxmbqr5jalc60cg27529bbb3zymswhdjz";
+      sha256 = "0667vf0zglacry87nkcl3ns8421aydvz71vfa3g3yjhiq8zh19f5";
       type = "gem";
     };
-    version = "5.22.0";
+    version = "5.22.2";
   };
   molinillo = {
     groups = ["default"];
@@ -344,6 +344,16 @@
     };
     version = "0.11.0";
   };
+  nkf = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09piyp2pd74klb9wcn0zw4mb5l0k9wzwppxggxi1yi95l2ym3hgv";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
   public_suffix = {
     groups = ["default"];
     platforms = [];
diff --git a/nixpkgs/pkgs/development/tools/cocogitto/default.nix b/nixpkgs/pkgs/development/tools/cocogitto/default.nix
index 825f07666456..e193ce4e0941 100644
--- a/nixpkgs/pkgs/development/tools/cocogitto/default.nix
+++ b/nixpkgs/pkgs/development/tools/cocogitto/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cocogitto";
-  version = "6.0.1";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "oknozor";
     repo = pname;
     rev = version;
-    sha256 = "sha256-iJH2uXlKsq7I94D3/Fe3pB8SzPfO0CodEk3XNdGleMk=";
+    sha256 = "sha256-yGwGWXME9ZjFJk/3pVDRTa1phG6kd8+YhXe/MxOEdF0=";
   };
 
-  cargoHash = "sha256-srcAUrPrrZoNUn7OeyzSRpOiEuyEizxTiEUbaNg9llE=";
+  cargoHash = "sha256-iS/nRfy63bgo7MeL/5jJ3Vn6S7dG49erIZ+0516YxKM=";
 
   # Test depend on git configuration that would likely exist in a normal user environment
   # and might be failing to create the test repository it works in.
@@ -30,6 +30,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A set of cli tools for the conventional commit and semver specifications";
+    mainProgram = "cog";
     homepage = "https://github.com/oknozor/cocogitto";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/tools/code-maat/default.nix b/nixpkgs/pkgs/development/tools/code-maat/default.nix
index 4d7be6c4b061..c5aa3c0b5d84 100644
--- a/nixpkgs/pkgs/development/tools/code-maat/default.nix
+++ b/nixpkgs/pkgs/development/tools/code-maat/default.nix
@@ -37,6 +37,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A command line tool to mine and analyze data from version-control systems";
+    mainProgram = "code-maat";
     homepage = "https://github.com/adamtornhill/code-maat";
     platforms = platforms.unix;
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/tools/codeowners/default.nix b/nixpkgs/pkgs/development/tools/codeowners/default.nix
index 186b8b4fdb73..3a92def28895 100644
--- a/nixpkgs/pkgs/development/tools/codeowners/default.nix
+++ b/nixpkgs/pkgs/development/tools/codeowners/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A CLI and Go library for Github's CODEOWNERS file";
+    mainProgram = "codeowners";
     homepage = "https://github.com/hmarr/codeowners";
     license = licenses.mit;
     maintainers = with maintainers; [ yorickvp ];
diff --git a/nixpkgs/pkgs/development/tools/coder/default.nix b/nixpkgs/pkgs/development/tools/coder/default.nix
index e00fd43b3a24..b12247a76d6f 100644
--- a/nixpkgs/pkgs/development/tools/coder/default.nix
+++ b/nixpkgs/pkgs/development/tools/coder/default.nix
@@ -84,7 +84,7 @@ buildGoModule rec {
   meta = {
     description = "Provision software development environments via Terraform on Linux, macOS, Windows, X86, ARM, and of course, Kubernetes";
     homepage = "https://coder.com";
-    license = lib.licenses.agpl3;
+    license = lib.licenses.agpl3Only;
     maintainers = [ lib.maintainers.ghuntley lib.maintainers.urandom ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/codespell/default.nix b/nixpkgs/pkgs/development/tools/codespell/default.nix
index 158e0971e633..e76a980f7427 100644
--- a/nixpkgs/pkgs/development/tools/codespell/default.nix
+++ b/nixpkgs/pkgs/development/tools/codespell/default.nix
@@ -48,6 +48,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Fix common misspellings in source code";
+    mainProgram = "codespell";
     homepage = "https://github.com/codespell-project/codespell";
     license = with licenses; [ gpl2Only cc-by-sa-30 ];
     maintainers = with maintainers; [ johnazoidberg SuperSandro2000 ];
diff --git a/nixpkgs/pkgs/development/tools/comby/default.nix b/nixpkgs/pkgs/development/tools/comby/default.nix
index ac2d36c92391..f6f7357c1557 100644
--- a/nixpkgs/pkgs/development/tools/comby/default.nix
+++ b/nixpkgs/pkgs/development/tools/comby/default.nix
@@ -47,6 +47,7 @@ let
 
       meta = {
         description = "Tool for searching and changing code structure";
+        mainProgram = "comby";
         license = lib.licenses.asl20;
         homepage = "https://comby.dev";
       };
diff --git a/nixpkgs/pkgs/development/tools/conftest/default.nix b/nixpkgs/pkgs/development/tools/conftest/default.nix
index 0f0b14e44bfd..da3c2cc54f72 100644
--- a/nixpkgs/pkgs/development/tools/conftest/default.nix
+++ b/nixpkgs/pkgs/development/tools/conftest/default.nix
@@ -6,15 +6,15 @@
 
 buildGoModule rec {
   pname = "conftest";
-  version = "0.49.1";
+  version = "0.50.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "conftest";
     rev = "refs/tags/v${version}";
-    hash = "sha256-k7wmWfBm/MYMCya6G+Iu12hqXTYthvnD26SVku3BZfU=";
+    hash = "sha256-DqZl16CQR88n5etJvX+5wxpOQsyWq/UWjJou23pjpWk=";
   };
-  vendorHash = "sha256-qdJK6uoXp8dsgqj3q/pM3xKgUcqDJ+oxuKYwCJR3Xq0=";
+  vendorHash = "sha256-9afq6ccgiaeZqyM3Le1NQ0ADB/wmBW+qdT+uVtbARC8=";
 
   ldflags = [
     "-s"
@@ -45,6 +45,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Write tests against structured configuration data";
+    mainProgram = "conftest";
     downloadPage = "https://github.com/open-policy-agent/conftest";
     homepage = "https://www.conftest.dev";
     changelog = "https://github.com/open-policy-agent/conftest/releases/tag/v${version}";
diff --git a/nixpkgs/pkgs/development/tools/container2wasm/default.nix b/nixpkgs/pkgs/development/tools/container2wasm/default.nix
index 36fffe0117da..132e80c3b5dd 100644
--- a/nixpkgs/pkgs/development/tools/container2wasm/default.nix
+++ b/nixpkgs/pkgs/development/tools/container2wasm/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "container2wasm";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "ktock";
     repo = "container2wasm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Vsy3K9gLWgfKK7aszpSX4JbiNSL6ao9vbQUgIxkVr2M=";
+    hash = "sha256-WMtkMBiAlHLwOgbnyrbERXaf4eGEVwpVvffaES6bSbo=";
   };
 
-  vendorHash = "sha256-xVHBL0bWXisXoRdGb4638+m9mxZZivkoo1U5rr6jG/0=";
+  vendorHash = "sha256-3gI2ZT+8GXttbX1985fSWmMbQzrERFKnlSwFvSQIGBg=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/buildbot/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/buildbot/default.nix
index 019ba4579d4a..b2ec827f7526 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/buildbot/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/buildbot/default.nix
@@ -1,36 +1,31 @@
-{ python3
-, fetchPypi
+{ lib
+, newScope
+, python3
 , recurseIntoAttrs
-, callPackage
 }:
-let
+# Take packages from self first, then python.pkgs (and secondarily pkgs)
+lib.makeScope (self: newScope (self.python.pkgs // self)) (self: {
   python = python3.override {
     packageOverrides = self: super: {
       sqlalchemy = super.sqlalchemy_1_4;
-      moto = super.moto.overridePythonAttrs (oldAttrs: rec {
+      moto = super.moto.overridePythonAttrs (oldAttrs: {
         # a lot of tests -> very slow, we already build them when building python packages
         doCheck = false;
       });
     };
   };
 
-  buildbot-pkg = python.pkgs.callPackage ./pkg.nix {
-    inherit buildbot;
-  };
-  buildbot-worker = python3.pkgs.callPackage ./worker.nix {
-    inherit buildbot;
-  };
-  buildbot = python.pkgs.callPackage ./master.nix {
-    inherit buildbot-pkg buildbot-worker buildbot-plugins;
-  };
-  buildbot-plugins = recurseIntoAttrs (callPackage ./plugins.nix {
-    inherit buildbot-pkg;
-  });
-in
-{
-  inherit buildbot buildbot-plugins buildbot-worker;
-  buildbot-ui = buildbot.withPlugins (with buildbot-plugins; [ www ]);
-  buildbot-full = buildbot.withPlugins (with buildbot-plugins; [
+  buildbot-pkg = self.callPackage ./pkg.nix { };
+
+  buildbot-worker = self.callPackage ./worker.nix { };
+
+  buildbot = self.callPackage ./master.nix { };
+
+  buildbot-plugins = recurseIntoAttrs (self.callPackage ./plugins.nix { });
+
+  buildbot-ui = self.buildbot.withPlugins (with self.buildbot-plugins; [ www ]);
+
+  buildbot-full = self.buildbot.withPlugins (with self.buildbot-plugins; [
     www console-view waterfall-view grid-view wsgi-dashboards badges
   ]);
-}
+})
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/buildbot/master.nix b/nixpkgs/pkgs/development/tools/continuous-integration/buildbot/master.nix
index 98626ed36bf4..8de60461f730 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/buildbot/master.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/buildbot/master.nix
@@ -1,11 +1,14 @@
 { lib
 , stdenv
-, buildPythonPackage
 , buildPythonApplication
 , fetchPypi
 , makeWrapper
+# Tie withPlugins through the fixed point here, so it will receive an
+# overridden version properly
+, buildbot
 , pythonOlder
 , python
+, pythonRelaxDepsHook
 , twisted
 , jinja2
 , msgpack
@@ -38,13 +41,12 @@
 , unidiff
 , glibcLocales
 , nixosTests
-, callPackage
 }:
 
 let
   withPlugins = plugins: buildPythonApplication {
-    pname = "${package.pname}-with-plugins";
-    inherit (package) version;
+    pname = "${buildbot.pname}-with-plugins";
+    inherit (buildbot) version;
     format = "other";
 
     dontUnpack = true;
@@ -55,110 +57,117 @@ let
       makeWrapper
     ];
 
-    propagatedBuildInputs = plugins ++ package.propagatedBuildInputs;
+    propagatedBuildInputs = plugins ++ buildbot.propagatedBuildInputs;
 
     installPhase = ''
-      makeWrapper ${package}/bin/buildbot $out/bin/buildbot \
-        --prefix PYTHONPATH : "${package}/${python.sitePackages}:$PYTHONPATH"
-      ln -sfv ${package}/lib $out/lib
+      makeWrapper ${buildbot}/bin/buildbot $out/bin/buildbot \
+        --prefix PYTHONPATH : "${buildbot}/${python.sitePackages}:$PYTHONPATH"
+      ln -sfv ${buildbot}/lib $out/lib
     '';
 
-    passthru = package.passthru // {
+    passthru = buildbot.passthru // {
       withPlugins = morePlugins: withPlugins (morePlugins ++ plugins);
     };
   };
+in
+buildPythonApplication rec {
+  pname = "buildbot";
+  version = "3.11.1";
+  format = "pyproject";
 
-  package = buildPythonApplication rec {
-    pname = "buildbot";
-    version = "3.11.1";
-    format = "pyproject";
+  disabled = pythonOlder "3.8";
 
-    disabled = pythonOlder "3.8";
-
-    src = fetchPypi {
-      inherit pname version;
-      hash = "sha256-ruYW1sVoGvFMi+NS+xiNsn0Iq2RmKlax4bxHgYrj6ZY=";
-    };
-
-    propagatedBuildInputs = [
-      # core
-      twisted
-      jinja2
-      msgpack
-      zope-interface
-      sqlalchemy
-      alembic
-      python-dateutil
-      txaio
-      autobahn
-      pyjwt
-      pyyaml
-      setuptools
-      croniter
-      importlib-resources
-      packaging
-      unidiff
-    ]
-      # tls
-      ++ twisted.optional-dependencies.tls;
-
-    nativeCheckInputs = [
-      treq
-      txrequests
-      pypugjs
-      boto3
-      moto
-      markdown
-      lz4
-      setuptools-trial
-      buildbot-worker
-      buildbot-pkg
-      buildbot-plugins.www
-      parameterized
-      git
-      openssh
-      glibcLocales
-    ];
-
-    patches = [
-      # This patch disables the test that tries to read /etc/os-release which
-      # is not accessible in sandboxed builds.
-      ./skip_test_linux_distro.patch
-    ];
-
-    postPatch = ''
-      substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
-    '';
-
-    # Silence the depreciation warning from SqlAlchemy
-    SQLALCHEMY_SILENCE_UBER_WARNING = 1;
-
-    # TimeoutErrors on slow machines -> aarch64
-    doCheck = !stdenv.isAarch64;
-
-    preCheck = ''
-      export LC_ALL="en_US.UTF-8"
-      export PATH="$out/bin:$PATH"
-
-      # remove testfile which is missing configuration file from sdist
-      rm buildbot/test/integration/test_graphql.py
-      # tests in this file are flaky, see https://github.com/buildbot/buildbot/issues/6776
-      rm buildbot/test/integration/test_try_client.py
-    '';
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-ruYW1sVoGvFMi+NS+xiNsn0Iq2RmKlax4bxHgYrj6ZY=";
+  };
 
-    passthru = {
-      inherit withPlugins;
-      tests.buildbot = nixosTests.buildbot;
-      updateScript = ./update.sh;
-    };
+  build-system = [
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "twisted"
+  ];
+
+  propagatedBuildInputs = [
+    # core
+    twisted
+    jinja2
+    msgpack
+    zope-interface
+    sqlalchemy
+    alembic
+    python-dateutil
+    txaio
+    autobahn
+    pyjwt
+    pyyaml
+    setuptools
+    croniter
+    importlib-resources
+    packaging
+    unidiff
+  ]
+    # tls
+    ++ twisted.optional-dependencies.tls;
+
+  nativeCheckInputs = [
+    treq
+    txrequests
+    pypugjs
+    boto3
+    moto
+    markdown
+    lz4
+    setuptools-trial
+    buildbot-worker
+    buildbot-pkg
+    buildbot-plugins.www
+    parameterized
+    git
+    openssh
+    glibcLocales
+  ];
+
+  patches = [
+    # This patch disables the test that tries to read /etc/os-release which
+    # is not accessible in sandboxed builds.
+    ./skip_test_linux_distro.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
+  '';
+
+  # Silence the depreciation warning from SqlAlchemy
+  SQLALCHEMY_SILENCE_UBER_WARNING = 1;
+
+  # TimeoutErrors on slow machines -> aarch64
+  doCheck = !stdenv.isAarch64;
+
+  preCheck = ''
+    export LC_ALL="en_US.UTF-8"
+    export PATH="$out/bin:$PATH"
+
+    # remove testfile which is missing configuration file from sdist
+    rm buildbot/test/integration/test_graphql.py
+    # tests in this file are flaky, see https://github.com/buildbot/buildbot/issues/6776
+    rm buildbot/test/integration/test_try_client.py
+  '';
+
+  passthru = {
+    inherit withPlugins;
+    tests.buildbot = nixosTests.buildbot;
+    updateScript = ./update.sh;
+  };
 
-    meta = with lib; {
-      description = "An open-source continuous integration framework for automating software build, test, and release processes";
-      homepage = "https://buildbot.net/";
-      changelog = "https://github.com/buildbot/buildbot/releases/tag/v${version}";
-      maintainers = teams.buildbot.members;
-      license = licenses.gpl2Only;
-      broken = stdenv.isDarwin;
-    };
+  meta = with lib; {
+    description = "An open-source continuous integration framework for automating software build, test, and release processes";
+    homepage = "https://buildbot.net/";
+    changelog = "https://github.com/buildbot/buildbot/releases/tag/v${version}";
+    maintainers = teams.buildbot.members;
+    license = licenses.gpl2Only;
+    broken = stdenv.isDarwin;
   };
-in package
+}
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-test-collector-rust/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-test-collector-rust/default.nix
index 7f1e6c55f5fa..bae57ea74d79 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-test-collector-rust/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-test-collector-rust/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Rust adapter for Buildkite Test Analytics";
+    mainProgram = "buildkite-test-collector";
     homepage = "https://buildkite.com/test-analytics";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ jfroche ];
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix
index 51ed01e27d58..997eff21adf6 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/cirrus-cli/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "cirrus-cli";
-  version = "0.112.1";
+  version = "0.113.0";
 
   src = fetchFromGitHub {
     owner = "cirruslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-v0VYjG1GJwfXXabk9aBs99xGk6F0bFPFBBe//T7P4yQ=";
+    sha256 = "sha256-ws1OFcAz41uBgRIjLVU19nRdIIgdGnnBs6xthztyDmE=";
   };
 
-  vendorHash = "sha256-tHEbHExdbWeZm3+rwRYpRILyPYEYdeVJ91Qr/yNIKV8=";
+  vendorHash = "sha256-NPtQM4nm8QiHY2wSd7VHx6T5LRb7EB39x+xFzHOUcNs=";
 
   ldflags = [
     "-X github.com/cirruslabs/cirrus-cli/internal/version.Version=v${version}"
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix
index 29a593acc306..1c85e501e6b0 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Continuous Integration platform built on container technology";
+    mainProgram = "drone-server";
     homepage = "https://github.com/harness/drone";
     maintainers = with maintainers; [ elohmeier vdemeester techknowlogick ];
     license = with licenses; if enableUnfree then unfreeRedistributable else asl20;
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix
index f53b0810f6f7..42aa1e5ab71d 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command line interface to Concourse CI";
+    mainProgram = "fly";
     homepage = "https://concourse-ci.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ ivanbrennan SuperSandro2000 ];
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index 21b2a5a6afde..374e46b87f5b 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,7 +1,7 @@
 { lib, buildGoModule, fetchFromGitLab, fetchurl, bash }:
 
 let
-  version = "16.7.0";
+  version = "16.9.1";
 in
 buildGoModule rec {
   inherit version;
@@ -17,13 +17,13 @@ buildGoModule rec {
   # For patchShebangs
   buildInputs = [ bash ];
 
-  vendorHash = "sha256-SHtxkB4qJMfhjo3UVjqBzD647AWIXIk10VtH/CMIB1I=";
+  vendorHash = "sha256-ErDwGjU6085/on5qazLME3stTLYhP8quHV/EoIZOO04=";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "sha256-pVD3DCrujsrDJPt/DXelMYSK+u25aV2YUMDW+22QHwI=";
+    sha256 = "sha256-NEDqXgc0hbQc5BzyPuxddW+rvAWUz8KxnqSkzTDDu/I=";
   };
 
   patches = [
@@ -40,6 +40,7 @@ buildGoModule rec {
 
     # No writable developer environment
     rm common/build_test.go
+    rm common/build_settings_test.go
     rm executors/custom/custom_test.go
 
     # No docker during build
@@ -67,7 +68,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "GitLab Runner the continuous integration executor of GitLab";
     license = licenses.mit;
-    homepage = "https://about.gitlab.com/gitlab-ci/";
+    homepage = "https://docs.gitlab.com/runner/";
     platforms = platforms.unix ++ platforms.darwin;
     maintainers = with maintainers; [ bachp zimbatm ] ++ teams.gitlab.members;
   };
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/woodpecker/common.nix b/nixpkgs/pkgs/development/tools/continuous-integration/woodpecker/common.nix
index b8fb8b871c64..214e1c35b276 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/woodpecker/common.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/woodpecker/common.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 let
-  version = "2.3.0";
-  srcHash = "sha256-r5TV5WJW2klSlrOG6EjfUgLyHhMI+BMUTY/2JIUgd0Q=";
+  version = "2.4.1";
+  srcHash = "sha256-03y0xLXgdvw1NAtH2FDW91wp13ohimqjz3kl2mWc11E=";
   # The tarball contains vendored dependencies
   vendorHash = null;
 in
diff --git a/nixpkgs/pkgs/development/tools/cotton/default.nix b/nixpkgs/pkgs/development/tools/cotton/default.nix
index 57b4ef020581..1fce291cc4b5 100644
--- a/nixpkgs/pkgs/development/tools/cotton/default.nix
+++ b/nixpkgs/pkgs/development/tools/cotton/default.nix
@@ -28,6 +28,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A package manager for JavaScript projects";
+    mainProgram = "cotton";
     homepage = "https://github.com/danielhuang/cotton";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ dit7ya figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/coursier/default.nix b/nixpkgs/pkgs/development/tools/coursier/default.nix
index 01a37c78c170..7c4c9e936cae 100644
--- a/nixpkgs/pkgs/development/tools/coursier/default.nix
+++ b/nixpkgs/pkgs/development/tools/coursier/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://get-coursier.io/";
     description = "Scala library to fetch dependencies from Maven / Ivy repositories";
+    mainProgram = "cs";
     license = licenses.asl20;
     maintainers = with maintainers; [ adelbertc nequissimus ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/cppclean/default.nix b/nixpkgs/pkgs/development/tools/cppclean/default.nix
index 460d7cddb83d..d48e21fffb5d 100644
--- a/nixpkgs/pkgs/development/tools/cppclean/default.nix
+++ b/nixpkgs/pkgs/development/tools/cppclean/default.nix
@@ -23,6 +23,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Finds problems in C++ source that slow development of large code bases";
+    mainProgram = "cppclean";
     homepage    = "https://github.com/myint/cppclean";
     license     = licenses.asl20;
     maintainers = with maintainers; [ nthorne ];
diff --git a/nixpkgs/pkgs/development/tools/crd2pulumi/default.nix b/nixpkgs/pkgs/development/tools/crd2pulumi/default.nix
index b2f43c954b1c..aacf30600805 100644
--- a/nixpkgs/pkgs/development/tools/crd2pulumi/default.nix
+++ b/nixpkgs/pkgs/development/tools/crd2pulumi/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Generate typed CustomResources from a Kubernetes CustomResourceDefinition";
+    mainProgram = "crd2pulumi";
     homepage = "https://github.com/pulumi/crd2pulumi";
     license = licenses.asl20;
     maintainers = with maintainers; [ flokli ];
diff --git a/nixpkgs/pkgs/development/tools/csvq/default.nix b/nixpkgs/pkgs/development/tools/csvq/default.nix
index d8438b85b815..74121fa83219 100644
--- a/nixpkgs/pkgs/development/tools/csvq/default.nix
+++ b/nixpkgs/pkgs/development/tools/csvq/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "SQL-like query language for CSV";
+    mainProgram = "csvq";
     homepage = "https://mithrandie.github.io/csvq/";
     changelog = "https://github.com/mithrandie/csvq/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/cucumber/Gemfile.lock b/nixpkgs/pkgs/development/tools/cucumber/Gemfile.lock
deleted file mode 100644
index 56928d9368e9..000000000000
--- a/nixpkgs/pkgs/development/tools/cucumber/Gemfile.lock
+++ /dev/null
@@ -1,43 +0,0 @@
-GEM
-  remote: https://rubygems.org/
-  specs:
-    builder (3.2.4)
-    cucumber (9.1.0)
-      builder (~> 3.2, >= 3.2.4)
-      cucumber-ci-environment (~> 9.2, >= 9.2.0)
-      cucumber-core (~> 12.0)
-      cucumber-cucumber-expressions (~> 17.0)
-      cucumber-gherkin (>= 24, < 27)
-      cucumber-html-formatter (~> 20.4, >= 20.4.0)
-      cucumber-messages (>= 19, < 23)
-      diff-lcs (~> 1.5, >= 1.5.0)
-      mini_mime (~> 1.1, >= 1.1.5)
-      multi_test (~> 1.1, >= 1.1.0)
-      sys-uname (~> 1.2, >= 1.2.3)
-    cucumber-ci-environment (9.2.0)
-    cucumber-core (12.0.0)
-      cucumber-gherkin (>= 25, < 27)
-      cucumber-messages (>= 20, < 23)
-      cucumber-tag-expressions (~> 5.0, >= 5.0.4)
-    cucumber-cucumber-expressions (17.0.1)
-    cucumber-gherkin (26.2.0)
-      cucumber-messages (>= 19.1.4, < 22.1)
-    cucumber-html-formatter (20.4.0)
-      cucumber-messages (>= 18.0, < 22.1)
-    cucumber-messages (22.0.0)
-    cucumber-tag-expressions (5.0.6)
-    diff-lcs (1.5.0)
-    ffi (1.16.3)
-    mini_mime (1.1.5)
-    multi_test (1.1.0)
-    sys-uname (1.2.3)
-      ffi (~> 1.1)
-
-PLATFORMS
-  ruby
-
-DEPENDENCIES
-  cucumber
-
-BUNDLED WITH
-   2.4.22
diff --git a/nixpkgs/pkgs/development/tools/cue/default.nix b/nixpkgs/pkgs/development/tools/cue/default.nix
index ad89197fcf64..9ff5cc631b1f 100644
--- a/nixpkgs/pkgs/development/tools/cue/default.nix
+++ b/nixpkgs/pkgs/development/tools/cue/default.nix
@@ -45,6 +45,7 @@ buildGoModule rec {
 
   meta = with lib;  {
     description = "A data constraint language which aims to simplify tasks involving defining and using data";
+    mainProgram = "cue";
     homepage = "https://cuelang.org/";
     license = lib.licenses.asl20;
     maintainers = with maintainers; [ aaronjheng ];
diff --git a/nixpkgs/pkgs/development/tools/cuelsp/default.nix b/nixpkgs/pkgs/development/tools/cuelsp/default.nix
index 719c0bed271c..b7a269843b35 100644
--- a/nixpkgs/pkgs/development/tools/cuelsp/default.nix
+++ b/nixpkgs/pkgs/development/tools/cuelsp/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Language Server implementation for CUE, with built-in support for Dagger";
+    mainProgram = "cuelsp";
     homepage = "https://github.com/dagger/cuelsp";
     license = licenses.asl20;
     maintainers = with maintainers; [ sagikazarmark ];
diff --git a/nixpkgs/pkgs/development/tools/dapper/default.nix b/nixpkgs/pkgs/development/tools/dapper/default.nix
index c2b6066f61bd..5e141bfee852 100644
--- a/nixpkgs/pkgs/development/tools/dapper/default.nix
+++ b/nixpkgs/pkgs/development/tools/dapper/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Docker build wrapper";
+    mainProgram = "dapper";
     homepage = "https://github.com/rancher/dapper";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/darklua/default.nix b/nixpkgs/pkgs/development/tools/darklua/default.nix
index 06679211bdee..adcce178dfef 100644
--- a/nixpkgs/pkgs/development/tools/darklua/default.nix
+++ b/nixpkgs/pkgs/development/tools/darklua/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "darklua";
-  version = "0.12.1";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "seaofvoices";
     repo = "darklua";
     rev = "v${version}";
-    hash = "sha256-hCyTsXSeingVRrohAGTzzcHoYv+hqOXPpWhBrbA70CA=";
+    hash = "sha256-FF0UEvylHFrGYgE3ASs0IwnYrh7gIClZUREtXjyVsPM=";
   };
 
-  cargoHash = "sha256-D274Dx3ad14VnJxQMhf//NEA7EIZZ1RFzFITI4YoJTc=";
+  cargoHash = "sha256-XrWhOosQM+BaqViIju7urCi1B8+6kq8Taxe5T8LFzVE=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreServices
@@ -30,6 +30,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A command line tool that transforms Lua code";
+    mainProgram = "darklua";
     homepage = "https://darklua.com";
     changelog = "https://github.com/seaofvoices/darklua/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/database/apgdiff/default.nix b/nixpkgs/pkgs/development/tools/database/apgdiff/default.nix
index d96e3dbd99d0..2aa53fbabd29 100644
--- a/nixpkgs/pkgs/development/tools/database/apgdiff/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/apgdiff/default.nix
@@ -26,6 +26,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Another PostgreSQL diff tool";
+    mainProgram = "apgdiff";
     homepage = "https://apgdiff.com";
     license = licenses.mit;
     inherit (jre.meta) platforms;
diff --git a/nixpkgs/pkgs/development/tools/database/atlas/default.nix b/nixpkgs/pkgs/development/tools/database/atlas/default.nix
index eb59eee43f37..581f0b51f922 100644
--- a/nixpkgs/pkgs/development/tools/database/atlas/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/atlas/default.nix
@@ -2,19 +2,19 @@
 
 buildGoModule rec {
   pname = "atlas";
-  version = "0.19.2";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "ariga";
     repo = "atlas";
     rev = "v${version}";
-    hash = "sha256-P3KatCF9zoqGRh2N1Rc89wJmsE0bRM5Uoq3zTSdAhTY=";
+    hash = "sha256-PQPf3cHlKP+0PIOkR/SZ4f9sBv+gJ+bJuJl9/OLRpb0=";
   };
 
   modRoot = "cmd/atlas";
 
   proxyVendor = true;
-  vendorHash = "sha256-roMEd/R+WmsWdCT9eye0ijqCcYzSSqVFU9mRN1Sw0jk=";
+  vendorHash = "sha256-48UmLwp93SjwPPrdySFVApjVf1Rsj3oNhi1lha4ZvyE=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/development/tools/database/clickhouse-backup/default.nix b/nixpkgs/pkgs/development/tools/database/clickhouse-backup/default.nix
index 58a305d38886..18e12b613041 100644
--- a/nixpkgs/pkgs/development/tools/database/clickhouse-backup/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/clickhouse-backup/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool for easy ClickHouse backup and restore with cloud storages support";
+    mainProgram = "clickhouse-backup";
     homepage = "https://github.com/AlexAkulov/clickhouse-backup";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/tools/database/dblab/default.nix b/nixpkgs/pkgs/development/tools/database/dblab/default.nix
index cc4f6a9cfd8e..52a0aefdcc93 100644
--- a/nixpkgs/pkgs/development/tools/database/dblab/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/dblab/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "dblab";
-  version = "0.21.0";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "danvergara";
     repo = "dblab";
     rev = "v${version}";
-    hash = "sha256-3Bmus2yVTwvy0CpoNE1mzVvocpBnRoI11Sf+x2JXhgM=";
+    hash = "sha256-eIkHaNFvXU9GGyYOH8lqzvwQQ6pz8zWeO4xY9jP25dU=";
   };
 
-  vendorHash = "sha256-vf0CeiLBVqMGV2oqxRHzhvL7SoT9zcg8P5c63z3UR3g=";
+  vendorHash = "sha256-WzyH3Ja/Znk/9aavIoBQRpJVnGb5o/ded0g92MTa4M4=";
 
   ldflags = [ "-s -w -X main.version=${version}" ];
 
diff --git a/nixpkgs/pkgs/development/tools/database/dbmate/default.nix b/nixpkgs/pkgs/development/tools/database/dbmate/default.nix
index 30d41b21f950..e7d5be602cdc 100644
--- a/nixpkgs/pkgs/development/tools/database/dbmate/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/dbmate/default.nix
@@ -5,21 +5,22 @@
 
 buildGoModule rec {
   pname = "dbmate";
-  version = "2.12.0";
+  version = "2.13.0";
 
   src = fetchFromGitHub {
     owner = "amacneil";
     repo = "dbmate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-TXQXG6FdDFtUp1VuM3iWifyRI/6NKa1iPDT8riZxux0=";
+    hash = "sha256-4Ur9LGYcC9C2EUWLLppcVSf+PLgfPITbKGp2qLRnxVY=";
   };
 
-  vendorHash = "sha256-4l3OYn7p+dbGieQ56klyNjuI0jk1ccgBXKeJGOamCjY=";
+  vendorHash = "sha256-le2AWHqTElo95GQJ8jEk3jjNrxu63YyWVtq+CI6+SbY=";
 
   doCheck = false;
 
   meta = with lib; {
     description = "Database migration tool";
+    mainProgram = "dbmate";
     homepage = "https://github.com/amacneil/dbmate";
     changelog = "https://github.com/amacneil/dbmate/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/database/dynein/default.nix b/nixpkgs/pkgs/development/tools/database/dynein/default.nix
index af88654101c2..618ca16417db 100644
--- a/nixpkgs/pkgs/development/tools/database/dynein/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/dynein/default.nix
@@ -40,6 +40,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "DynamoDB CLI written in Rust";
+    mainProgram = "dy";
     homepage = "https://github.com/awslabs/dynein";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/database/liquibase/default.nix b/nixpkgs/pkgs/development/tools/database/liquibase/default.nix
index bd6b37304987..94f0d4c79fce 100644
--- a/nixpkgs/pkgs/development/tools/database/liquibase/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/liquibase/default.nix
@@ -87,6 +87,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Version Control for your database";
+    mainProgram = "liquibase";
     homepage = "https://www.liquibase.org/";
     changelog = "https://raw.githubusercontent.com/liquibase/liquibase/v${version}/changelog.txt";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/nixpkgs/pkgs/development/tools/database/litecli/default.nix b/nixpkgs/pkgs/development/tools/database/litecli/default.nix
index 2cda1e05c609..6b6125992b58 100644
--- a/nixpkgs/pkgs/development/tools/database/litecli/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/litecli/default.nix
@@ -35,6 +35,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Command-line interface for SQLite";
+    mainProgram = "litecli";
     longDescription = ''
       A command-line client for SQLite databases that has auto-completion and syntax highlighting.
     '';
diff --git a/nixpkgs/pkgs/development/tools/database/litestream/default.nix b/nixpkgs/pkgs/development/tools/database/litestream/default.nix
index 27b37eff489b..fa47959a333c 100644
--- a/nixpkgs/pkgs/development/tools/database/litestream/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/litestream/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Streaming replication for SQLite";
+    mainProgram = "litestream";
     license = licenses.asl20;
     homepage = "https://litestream.io/";
     maintainers = with maintainers; [ fbrs ];
diff --git a/nixpkgs/pkgs/development/tools/database/mermerd/default.nix b/nixpkgs/pkgs/development/tools/database/mermerd/default.nix
index 90f274d66113..7331f5f61750 100644
--- a/nixpkgs/pkgs/development/tools/database/mermerd/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/mermerd/default.nix
@@ -37,6 +37,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Create Mermaid-Js ERD diagrams from existing tables";
+    mainProgram = "mermerd";
     homepage = "https://github.com/KarnerTh/mermerd";
     changelog = "https://github.com/KarnerTh/mermerd/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/database/movine/default.nix b/nixpkgs/pkgs/development/tools/database/movine/default.nix
index a0342bcfc0a4..6aba244be3ac 100644
--- a/nixpkgs/pkgs/development/tools/database/movine/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/movine/default.nix
@@ -30,6 +30,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A migration manager written in Rust, that attempts to be smart yet minimal";
+    mainProgram = "movine";
     homepage = "https://github.com/byronwasti/movine";
     license = licenses.mit;
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/tools/database/pg_activity/default.nix b/nixpkgs/pkgs/development/tools/database/pg_activity/default.nix
index 32fdeae69e2f..4fa280942dd2 100644
--- a/nixpkgs/pkgs/development/tools/database/pg_activity/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/pg_activity/default.nix
@@ -24,6 +24,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A top like application for PostgreSQL server activity monitoring";
+    mainProgram = "pg_activity";
     homepage = "https://github.com/dalibo/pg_activity";
     license = licenses.postgresql;
     maintainers = with maintainers; [ mausch ];
diff --git a/nixpkgs/pkgs/development/tools/database/pgweb/default.nix b/nixpkgs/pkgs/development/tools/database/pgweb/default.nix
index ef0f64a73a17..9fa1436bee1b 100644
--- a/nixpkgs/pkgs/development/tools/database/pgweb/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/pgweb/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "pgweb";
-  version = "0.14.3";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "sosedoff";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-We7MyKOdauf93tBihvjouEiZ4FnkvsUtfJpswK6ef7Q=";
+    hash = "sha256-n8MFYwne25MdzVwYmmXt9d9rqKU37patAazb3Wn9coM=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/tools/database/replibyte/Cargo.lock b/nixpkgs/pkgs/development/tools/database/replibyte/Cargo.lock
new file mode 100644
index 000000000000..f6811141c49d
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/database/replibyte/Cargo.lock
@@ -0,0 +1,4205 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+dependencies = [
+ "gimli 0.28.1",
+]
+
+[[package]]
+name = "adler"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+[[package]]
+name = "aead"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "aes"
+version = "0.7.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cipher",
+ "cpufeatures",
+ "opaque-debug",
+]
+
+[[package]]
+name = "aes-gcm"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6"
+dependencies = [
+ "aead",
+ "aes",
+ "cipher",
+ "ctr",
+ "ghash",
+ "subtle",
+]
+
+[[package]]
+name = "ahash"
+version = "0.7.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
+dependencies = [
+ "getrandom 0.2.12",
+ "once_cell",
+ "version_check",
+]
+
+[[package]]
+name = "ahash"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
+dependencies = [
+ "cfg-if 1.0.0",
+ "getrandom 0.2.12",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.80"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+
+[[package]]
+name = "arrayref"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
+
+[[package]]
+name = "arrayvec"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi 0.1.19",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78"
+dependencies = [
+ "autocfg 1.1.0",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "aws-config"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2da63196d2d0dd38667b404459a35d32562a8d83c1f46c5b789ab89ab176fd53"
+dependencies = [
+ "aws-http",
+ "aws-sdk-sso",
+ "aws-sdk-sts",
+ "aws-smithy-async",
+ "aws-smithy-client",
+ "aws-smithy-http",
+ "aws-smithy-http-tower",
+ "aws-smithy-json",
+ "aws-smithy-types",
+ "aws-types",
+ "bytes",
+ "hex",
+ "http",
+ "hyper",
+ "ring 0.16.20",
+ "tokio",
+ "tower",
+ "tracing",
+ "zeroize",
+]
+
+[[package]]
+name = "aws-endpoint"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5279590d48e92b287f864e099c7e851af03a5e184a57cec0959872cee297c7a0"
+dependencies = [
+ "aws-smithy-http",
+ "aws-types",
+ "http",
+ "regex",
+ "tracing",
+]
+
+[[package]]
+name = "aws-http"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7046bdd807c70caf28d6dbc69b9d6d8dda1728577866d3ff3862de585b8b0eb"
+dependencies = [
+ "aws-smithy-http",
+ "aws-smithy-types",
+ "aws-types",
+ "http",
+ "lazy_static",
+ "percent-encoding",
+ "tracing",
+]
+
+[[package]]
+name = "aws-sdk-s3"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4fd99b22cbdb894925468005ad55defcfe0ce294fadcc5f7be9d9119646b0de"
+dependencies = [
+ "aws-endpoint",
+ "aws-http",
+ "aws-sig-auth",
+ "aws-sigv4",
+ "aws-smithy-async",
+ "aws-smithy-client",
+ "aws-smithy-eventstream",
+ "aws-smithy-http",
+ "aws-smithy-http-tower",
+ "aws-smithy-types",
+ "aws-smithy-xml",
+ "aws-types",
+ "bytes",
+ "http",
+ "md5",
+ "tokio-stream",
+ "tower",
+]
+
+[[package]]
+name = "aws-sdk-sso"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96f9038b498944025a39e426ae38f64e3e8481a9d675469580e1de7397b46ed5"
+dependencies = [
+ "aws-endpoint",
+ "aws-http",
+ "aws-sig-auth",
+ "aws-smithy-async",
+ "aws-smithy-client",
+ "aws-smithy-http",
+ "aws-smithy-http-tower",
+ "aws-smithy-json",
+ "aws-smithy-types",
+ "aws-types",
+ "bytes",
+ "http",
+ "tokio-stream",
+ "tower",
+]
+
+[[package]]
+name = "aws-sdk-sts"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e717e67debcd7f9d87563d08e7d40e3c5c28634a8badc491650d5ad2305befd3"
+dependencies = [
+ "aws-endpoint",
+ "aws-http",
+ "aws-sig-auth",
+ "aws-smithy-async",
+ "aws-smithy-client",
+ "aws-smithy-http",
+ "aws-smithy-http-tower",
+ "aws-smithy-query",
+ "aws-smithy-types",
+ "aws-smithy-xml",
+ "aws-types",
+ "bytes",
+ "http",
+ "tower",
+]
+
+[[package]]
+name = "aws-sig-auth"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0e6e4ba09f502057ad6a4ebf3627f9dae8402e366cf7b36ca1c09cbff8b5834"
+dependencies = [
+ "aws-sigv4",
+ "aws-smithy-eventstream",
+ "aws-smithy-http",
+ "aws-types",
+ "http",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "aws-sigv4"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b746b4628b27221170f81a0f35a7f8cefa9988d7958249f4b78a7b3bae77d7f1"
+dependencies = [
+ "aws-smithy-eventstream",
+ "aws-smithy-http",
+ "bytes",
+ "form_urlencoded",
+ "hex",
+ "http",
+ "once_cell",
+ "percent-encoding",
+ "regex",
+ "ring 0.16.20",
+ "time 0.3.34",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-async"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66ab5373d24e1651860240f122a8d956f7a2094d4553c78979617a7fac640030"
+dependencies = [
+ "futures-util",
+ "pin-project-lite",
+ "tokio",
+ "tokio-stream",
+]
+
+[[package]]
+name = "aws-smithy-client"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88e8a92747322eace67f666402a5949da27675f60a2b9098b84b63edef8e6980"
+dependencies = [
+ "aws-smithy-async",
+ "aws-smithy-http",
+ "aws-smithy-http-tower",
+ "aws-smithy-types",
+ "bytes",
+ "fastrand 1.9.0",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-rustls",
+ "lazy_static",
+ "pin-project",
+ "pin-project-lite",
+ "tokio",
+ "tower",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-eventstream"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775b1de8d55fd1cda393c3d81cb5c3dc0e1cac38170883049e2d7a8e16cefad1"
+dependencies = [
+ "aws-smithy-types",
+ "bytes",
+ "crc32fast",
+]
+
+[[package]]
+name = "aws-smithy-http"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "579d0c2ae96c700499c5330f082c4170b0535835f01eb845056324aa0abd04b4"
+dependencies = [
+ "aws-smithy-eventstream",
+ "aws-smithy-types",
+ "bytes",
+ "bytes-utils",
+ "futures-core",
+ "http",
+ "http-body",
+ "hyper",
+ "once_cell",
+ "percent-encoding",
+ "pin-project",
+ "tokio",
+ "tokio-util 0.6.10",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-http-tower"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "101a2e213acebe624cfb9bfc944de5e33c849e0df0f09c3d3aa3b54368dbe7af"
+dependencies = [
+ "aws-smithy-http",
+ "bytes",
+ "http",
+ "http-body",
+ "pin-project",
+ "tower",
+ "tracing",
+]
+
+[[package]]
+name = "aws-smithy-json"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd21f28535a2538b77274aa590abfb6d37aece3281dfc4c9411c1625d3b9239e"
+dependencies = [
+ "aws-smithy-types",
+]
+
+[[package]]
+name = "aws-smithy-query"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb5a2c90311b0d20cf23212a15961cad2b76480863b1f7ce0608d9ece8dacdfb"
+dependencies = [
+ "aws-smithy-types",
+ "urlencoding",
+]
+
+[[package]]
+name = "aws-smithy-types"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "962f2da621cd29f272636eebce39ca321c91e02bbb7eb848c4587ac14933d339"
+dependencies = [
+ "itoa",
+ "num-integer",
+ "ryu",
+ "time 0.3.34",
+]
+
+[[package]]
+name = "aws-smithy-xml"
+version = "0.39.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "829c7efd92b7a6d0536ceb48fd93a289ddf8763c67bffe875d82eae3f9886546"
+dependencies = [
+ "thiserror",
+ "xmlparser",
+]
+
+[[package]]
+name = "aws-types"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68159725aa77553dbc6028f36d8378563cd45b18ef9cf03d1515ac469efacf13"
+dependencies = [
+ "aws-smithy-async",
+ "aws-smithy-client",
+ "aws-smithy-types",
+ "rustc_version 0.4.0",
+ "tracing",
+ "zeroize",
+]
+
+[[package]]
+name = "backtrace"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+dependencies = [
+ "addr2line",
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+ "miniz_oxide",
+ "object 0.32.2",
+ "rustc-demangle",
+]
+
+[[package]]
+name = "base-x"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270"
+
+[[package]]
+name = "base64"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+
+[[package]]
+name = "base64"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+
+[[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
+[[package]]
+name = "blake2b_simd"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "constant_time_eq",
+]
+
+[[package]]
+name = "bson"
+version = "2.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce21468c1c9c154a85696bb25c20582511438edb6ad67f846ba1378ffdd80222"
+dependencies = [
+ "ahash 0.8.11",
+ "base64 0.13.1",
+ "bitvec",
+ "hex",
+ "indexmap 2.2.5",
+ "js-sys",
+ "once_cell",
+ "rand 0.8.5",
+ "serde",
+ "serde_bytes",
+ "serde_json",
+ "time 0.3.34",
+ "uuid",
+]
+
+[[package]]
+name = "build_const"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7"
+
+[[package]]
+name = "bumpalo"
+version = "3.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
+
+[[package]]
+name = "bytecheck"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
+dependencies = [
+ "bytecheck_derive",
+ "ptr_meta",
+ "simdutf8",
+]
+
+[[package]]
+name = "bytecheck_derive"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "bytes-utils"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35"
+dependencies = [
+ "bytes",
+ "either",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.90"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+
+[[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 = "chrono"
+version = "0.4.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "serde",
+ "wasm-bindgen",
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "cipher"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "clap"
+version = "3.2.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
+dependencies = [
+ "atty",
+ "bitflags 1.3.2",
+ "clap_derive",
+ "clap_lex",
+ "indexmap 1.9.3",
+ "once_cell",
+ "strsim",
+ "termcolor",
+ "textwrap",
+]
+
+[[package]]
+name = "clap_derive"
+version = "3.2.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "cloudabi"
+version = "0.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "console"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
+dependencies = [
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "console_error_panic_hook"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
+dependencies = [
+ "cfg-if 1.0.0",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "const_fn"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935"
+
+[[package]]
+name = "constant_time_eq"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+
+[[package]]
+name = "core-foundation"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "corosensei"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80128832c58ea9cbd041d2a759ec449224487b2c1e400453d99d244eead87a8e"
+dependencies = [
+ "autocfg 1.1.0",
+ "cfg-if 1.0.0",
+ "libc",
+ "scopeguard",
+ "windows-sys 0.33.0",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "cranelift-bforest"
+version = "0.82.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75"
+dependencies = [
+ "cranelift-entity",
+]
+
+[[package]]
+name = "cranelift-codegen"
+version = "0.82.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b"
+dependencies = [
+ "cranelift-bforest",
+ "cranelift-codegen-meta",
+ "cranelift-codegen-shared",
+ "cranelift-entity",
+ "gimli 0.26.2",
+ "log",
+ "regalloc",
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cranelift-codegen-meta"
+version = "0.82.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24"
+dependencies = [
+ "cranelift-codegen-shared",
+]
+
+[[package]]
+name = "cranelift-codegen-shared"
+version = "0.82.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc"
+
+[[package]]
+name = "cranelift-entity"
+version = "0.82.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf"
+
+[[package]]
+name = "cranelift-frontend"
+version = "0.82.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce"
+dependencies = [
+ "cranelift-codegen",
+ "log",
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "crc"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb"
+dependencies = [
+ "build_const",
+]
+
+[[package]]
+name = "crc32fast"
+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-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "csv"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
+dependencies = [
+ "csv-core",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "csv-core"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "ct-logs"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8"
+dependencies = [
+ "sct 0.6.1",
+]
+
+[[package]]
+name = "ctr"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
+name = "ctrlc"
+version = "3.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "672465ae37dc1bc6380a6547a8883d5dd397b0f1faaad4f265726cc7042a5345"
+dependencies = [
+ "nix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
+
+[[package]]
+name = "deunicode"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6e854126756c496b8c81dec88f9a706b15b875c5849d4097a3854476b9fdf94"
+
+[[package]]
+name = "dirs"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "discard"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
+
+[[package]]
+name = "dump-parser"
+version = "0.10.0"
+dependencies = [
+ "bson",
+ "crc",
+ "serde",
+]
+
+[[package]]
+name = "either"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+
+[[package]]
+name = "encode_unicode"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "enum-iterator"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6"
+dependencies = [
+ "enum-iterator-derive",
+]
+
+[[package]]
+name = "enum-iterator-derive"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "enumset"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "226c0da7462c13fb57e5cc9e0dc8f0635e7d27f276a3a7fd30054647f669007d"
+dependencies = [
+ "enumset_derive",
+]
+
+[[package]]
+name = "enumset_derive"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e08b6c6ab82d70f08844964ba10c7babb716de2ecaeab9be5717918a5177d3af"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7"
+dependencies = [
+ "atty",
+ "humantime",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "failure"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
+dependencies = [
+ "backtrace",
+ "failure_derive",
+]
+
+[[package]]
+name = "failure_derive"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "synstructure",
+]
+
+[[package]]
+name = "fake"
+version = "2.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c25829bde82205da46e1823b2259db6273379f626fc211f126f65654a2669be"
+dependencies = [
+ "deunicode",
+ "rand 0.8.5",
+]
+
+[[package]]
+name = "fallible-iterator"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
+
+[[package]]
+name = "fastrand"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+
+[[package]]
+name = "flate2"
+version = "1.0.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+dependencies = [
+ "crc32fast",
+ "miniz_oxide",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "fuchsia-cprng"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+
+[[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "generational-arena"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "877e94aff08e743b651baaea359664321055749b398adff8740a7399af7796e7"
+dependencies = [
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.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.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+]
+
+[[package]]
+name = "ghash"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99"
+dependencies = [
+ "opaque-debug",
+ "polyval",
+]
+
+[[package]]
+name = "gimli"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d"
+dependencies = [
+ "fallible-iterator",
+ "indexmap 1.9.3",
+ "stable_deref_trait",
+]
+
+[[package]]
+name = "gimli"
+version = "0.28.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+
+[[package]]
+name = "h2"
+version = "0.3.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap 2.2.5",
+ "slab",
+ "tokio",
+ "tokio-util 0.7.10",
+ "tracing",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+dependencies = [
+ "ahash 0.7.8",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+dependencies = [
+ "ahash 0.7.8",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+[[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "http"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "hyper"
+version = "0.14.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64"
+dependencies = [
+ "ct-logs",
+ "futures-util",
+ "hyper",
+ "log",
+ "rustls 0.19.1",
+ "rustls-native-certs",
+ "tokio",
+ "tokio-rustls",
+ "webpki 0.21.4",
+]
+
+[[package]]
+name = "hyper-tls"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+dependencies = [
+ "bytes",
+ "hyper",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+dependencies = [
+ "autocfg 1.1.0",
+ "hashbrown 0.12.3",
+ "serde",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.3",
+]
+
+[[package]]
+name = "indicatif"
+version = "0.16.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b"
+dependencies = [
+ "console",
+ "lazy_static",
+ "number_prefix",
+ "regex",
+]
+
+[[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",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
+
+[[package]]
+name = "isolang"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "265ef164908329e47e753c769b14cbb27434abf0c41984dca201484022f09ce5"
+dependencies = [
+ "phf",
+ "phf_codegen",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+
+[[package]]
+name = "js-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "leb128"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
+
+[[package]]
+name = "libc"
+version = "0.2.153"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[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",
+ "winapi",
+]
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "lock_api"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+dependencies = [
+ "autocfg 1.1.0",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "loupe"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b6a72dfa44fe15b5e76b94307eeb2ff995a8c5b283b55008940c02e0c5b634d"
+dependencies = [
+ "indexmap 1.9.3",
+ "loupe-derive",
+ "rustversion",
+]
+
+[[package]]
+name = "loupe-derive"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0fbfc88337168279f2e9ae06e157cfed4efd3316e14dc96ed074d4f2e6c5952"
+dependencies = [
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "mach"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "machine-uid"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f1595709b0a7386bcd56ba34d250d626e5503917d05d32cdccddcd68603e212"
+dependencies = [
+ "winreg 0.6.2",
+]
+
+[[package]]
+name = "md5"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
+
+[[package]]
+name = "memchr"
+version = "2.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+
+[[package]]
+name = "memmap2"
+version = "0.5.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memoffset"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+dependencies = [
+ "autocfg 1.1.0",
+]
+
+[[package]]
+name = "memory_units"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3"
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "miniz_oxide"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+dependencies = [
+ "adler",
+]
+
+[[package]]
+name = "mio"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+dependencies = [
+ "libc",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "mongodb-schema-parser"
+version = "0.5.0"
+source = "git+https://github.com/mongodb-rust/mongodb-schema-parser.git?rev=2d489307dd70b63b216a9968f7dec7c217108b32#2d489307dd70b63b216a9968f7dec7c217108b32"
+dependencies = [
+ "bson",
+ "console_error_panic_hook",
+ "failure",
+ "js-sys",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "wasm-bindgen",
+ "wasm-bindgen-test",
+ "web-sys",
+ "wee_alloc",
+]
+
+[[package]]
+name = "more-asserts"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389"
+
+[[package]]
+name = "native-tls"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if 1.0.0",
+ "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-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg 1.1.0",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi 0.3.9",
+ "libc",
+]
+
+[[package]]
+name = "number_prefix"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
+
+[[package]]
+name = "object"
+version = "0.28.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424"
+dependencies = [
+ "crc32fast",
+ "hashbrown 0.11.2",
+ "indexmap 1.9.3",
+ "memchr",
+]
+
+[[package]]
+name = "object"
+version = "0.32.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "opaque-debug"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
+
+[[package]]
+name = "openssl"
+version = "0.10.64"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
+dependencies = [
+ "bitflags 2.4.2",
+ "cfg-if 1.0.0",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.101"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "os_str_bytes"
+version = "6.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "redox_syscall 0.4.1",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "phf"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18"
+dependencies = [
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662"
+dependencies = [
+ "phf_shared",
+ "rand 0.6.5",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "polyval"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1"
+dependencies = [
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "opaque-debug",
+ "universal-hash",
+]
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "prettytable-rs"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fd04b170004fa2daccf418a7f8253aaf033c27760b5f225889024cf66d7ac2e"
+dependencies = [
+ "atty",
+ "csv",
+ "encode_unicode",
+ "lazy_static",
+ "term",
+ "unicode-width",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.20+deprecated"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.78"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "ptr_meta"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
+dependencies = [
+ "ptr_meta_derive",
+]
+
+[[package]]
+name = "ptr_meta_derive"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[package]]
+name = "rand"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
+dependencies = [
+ "autocfg 0.1.8",
+ "libc",
+ "rand_chacha 0.1.1",
+ "rand_core 0.4.2",
+ "rand_hc",
+ "rand_isaac",
+ "rand_jitter",
+ "rand_os",
+ "rand_pcg",
+ "rand_xorshift",
+ "winapi",
+]
+
+[[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.4",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
+dependencies = [
+ "autocfg 0.1.8",
+ "rand_core 0.3.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.4",
+]
+
+[[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.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom 0.2.12",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "rand_isaac"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "rand_jitter"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
+dependencies = [
+ "libc",
+ "rand_core 0.4.2",
+ "winapi",
+]
+
+[[package]]
+name = "rand_os"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+dependencies = [
+ "cloudabi",
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.4.2",
+ "rdrand",
+ "winapi",
+]
+
+[[package]]
+name = "rand_pcg"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
+dependencies = [
+ "autocfg 0.1.8",
+ "rand_core 0.4.2",
+]
+
+[[package]]
+name = "rand_xorshift"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "rayon"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "rdrand"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.1.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
+dependencies = [
+ "getrandom 0.1.16",
+ "redox_syscall 0.1.57",
+ "rust-argon2",
+]
+
+[[package]]
+name = "regalloc"
+version = "0.0.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02"
+dependencies = [
+ "log",
+ "rustc-hash",
+ "smallvec",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+
+[[package]]
+name = "region"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+ "mach",
+ "winapi",
+]
+
+[[package]]
+name = "rend"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
+dependencies = [
+ "bytecheck",
+]
+
+[[package]]
+name = "replibyte"
+version = "0.10.0"
+dependencies = [
+ "aes-gcm",
+ "anyhow",
+ "aws-config",
+ "aws-sdk-s3",
+ "aws-smithy-client",
+ "aws-smithy-http",
+ "aws-types",
+ "bson",
+ "chrono",
+ "clap",
+ "ctrlc",
+ "dump-parser",
+ "env_logger",
+ "fake",
+ "flate2",
+ "http",
+ "indicatif",
+ "lazy_static",
+ "log",
+ "machine-uid",
+ "mongodb-schema-parser",
+ "percent-encoding",
+ "prettytable-rs",
+ "rand 0.8.5",
+ "reqwest",
+ "rustls 0.20.9",
+ "serde",
+ "serde_json",
+ "serde_yaml",
+ "subset",
+ "tempfile",
+ "timeago",
+ "tokio",
+ "url",
+ "wasmer",
+ "wasmer-wasi",
+ "which",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.11.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eea5a9eb898d3783f17c6407670e3592fd174cb81a10e51d4c37f49450b9946"
+dependencies = [
+ "base64 0.21.7",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-tls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "native-tls",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls-pemfile",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
+ "tokio",
+ "tokio-native-tls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "winreg 0.50.0",
+]
+
+[[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 0.7.1",
+ "web-sys",
+ "winapi",
+]
+
+[[package]]
+name = "ring"
+version = "0.17.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
+dependencies = [
+ "cc",
+ "cfg-if 1.0.0",
+ "getrandom 0.2.12",
+ "libc",
+ "spin 0.9.8",
+ "untrusted 0.9.0",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rkyv"
+version = "0.7.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0"
+dependencies = [
+ "bitvec",
+ "bytecheck",
+ "bytes",
+ "hashbrown 0.12.3",
+ "ptr_meta",
+ "rend",
+ "rkyv_derive",
+ "seahash",
+ "tinyvec",
+ "uuid",
+]
+
+[[package]]
+name = "rkyv_derive"
+version = "0.7.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "rust-argon2"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
+dependencies = [
+ "base64 0.13.1",
+ "blake2b_simd",
+ "constant_time_eq",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustc_version"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+dependencies = [
+ "semver 0.9.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.22",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+dependencies = [
+ "bitflags 2.4.2",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.19.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
+dependencies = [
+ "base64 0.13.1",
+ "log",
+ "ring 0.16.20",
+ "sct 0.6.1",
+ "webpki 0.21.4",
+]
+
+[[package]]
+name = "rustls"
+version = "0.20.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99"
+dependencies = [
+ "log",
+ "ring 0.16.20",
+ "sct 0.7.1",
+ "webpki 0.22.4",
+]
+
+[[package]]
+name = "rustls-native-certs"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092"
+dependencies = [
+ "openssl-probe",
+ "rustls 0.19.1",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64 0.21.7",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+
+[[package]]
+name = "schannel"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "sct"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce"
+dependencies = [
+ "ring 0.16.20",
+ "untrusted 0.7.1",
+]
+
+[[package]]
+name = "sct"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
+dependencies = [
+ "ring 0.17.8",
+ "untrusted 0.9.0",
+]
+
+[[package]]
+name = "seahash"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
+
+[[package]]
+name = "security-framework"
+version = "2.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "semver"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+dependencies = [
+ "semver-parser",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+
+[[package]]
+name = "semver-parser"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+
+[[package]]
+name = "serde"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_bytes"
+version = "0.11.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.197"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.114"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+dependencies = [
+ "indexmap 2.2.5",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_yaml"
+version = "0.8.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b"
+dependencies = [
+ "indexmap 1.9.3",
+ "ryu",
+ "serde",
+ "yaml-rust",
+]
+
+[[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 = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "simdutf8"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
+
+[[package]]
+name = "siphasher"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg 1.1.0",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+
+[[package]]
+name = "socket2"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "spin"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
+[[package]]
+name = "stable_deref_trait"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+
+[[package]]
+name = "standback"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "stdweb"
+version = "0.4.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
+dependencies = [
+ "discard",
+ "rustc_version 0.2.3",
+ "stdweb-derive",
+ "stdweb-internal-macros",
+ "stdweb-internal-runtime",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "stdweb-derive"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "serde",
+ "serde_derive",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "stdweb-internal-macros"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
+dependencies = [
+ "base-x",
+ "proc-macro2",
+ "quote",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "sha1",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "stdweb-internal-runtime"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "subset"
+version = "0.10.0"
+dependencies = [
+ "dump-parser",
+ "md5",
+ "tempfile",
+]
+
+[[package]]
+name = "subtle"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.52"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
+name = "synstructure"
+version = "0.12.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "unicode-xid",
+]
+
+[[package]]
+name = "system-configuration"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "658bc6ee10a9b4fcf576e9b0819d95ec16f4d2c02d39fd83ac1c8789785c4a42"
+dependencies = [
+ "bitflags 2.4.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if 1.0.0",
+ "fastrand 2.0.1",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "term"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42"
+dependencies = [
+ "byteorder",
+ "dirs",
+ "winapi",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
+
+[[package]]
+name = "thiserror"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "time"
+version = "0.2.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242"
+dependencies = [
+ "const_fn",
+ "libc",
+ "standback",
+ "stdweb",
+ "time-macros 0.1.1",
+ "version_check",
+ "winapi",
+]
+
+[[package]]
+name = "time"
+version = "0.3.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+dependencies = [
+ "deranged",
+ "itoa",
+ "num-conv",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros 0.2.17",
+]
+
+[[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.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1"
+dependencies = [
+ "proc-macro-hack",
+ "time-macros-impl",
+]
+
+[[package]]
+name = "time-macros"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
+[[package]]
+name = "time-macros-impl"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "standback",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "timeago"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ec32dde57efb15c035ac074118d7f32820451395f28cb0524a01d4e94983b26"
+dependencies = [
+ "chrono",
+ "isolang",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "tokio"
+version = "1.36.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "num_cpus",
+ "parking_lot",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6"
+dependencies = [
+ "rustls 0.19.1",
+ "tokio",
+ "webpki 0.21.4",
+]
+
+[[package]]
+name = "tokio-stream"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.6.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "log",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "tower"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "pin-project",
+ "pin-project-lite",
+ "tokio",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower-layer"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "log",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+
+[[package]]
+name = "universal-hash"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05"
+dependencies = [
+ "generic-array",
+ "subtle",
+]
+
+[[package]]
+name = "untrusted"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+
+[[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
+name = "url"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "urlencoding"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a1f0175e03a0973cf4afd476bef05c26e228520400eb1fd473ad417b1c00ffb"
+
+[[package]]
+name = "uuid"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+dependencies = [
+ "getrandom 0.2.12",
+ "serde",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "want"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+dependencies = [
+ "cfg-if 1.0.0",
+ "serde",
+ "serde_json",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
+dependencies = [
+ "cfg-if 1.0.0",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+
+[[package]]
+name = "wasm-bindgen-test"
+version = "0.3.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9bf62a58e0780af3e852044583deee40983e5886da43a271dd772379987667b"
+dependencies = [
+ "console_error_panic_hook",
+ "js-sys",
+ "scoped-tls",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-test-macro"
+version = "0.3.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7f89739351a2e03cb94beb799d47fb2cac01759b40ec441f7de39b00cbf7ef0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "wasm-encoder"
+version = "0.201.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9c7d2731df60006819b013f64ccc2019691deccf6e11a1804bc850cd6748f1a"
+dependencies = [
+ "leb128",
+]
+
+[[package]]
+name = "wasmer"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf"
+dependencies = [
+ "cfg-if 1.0.0",
+ "indexmap 1.9.3",
+ "js-sys",
+ "loupe",
+ "more-asserts",
+ "target-lexicon",
+ "thiserror",
+ "wasm-bindgen",
+ "wasmer-artifact",
+ "wasmer-compiler",
+ "wasmer-compiler-cranelift",
+ "wasmer-derive",
+ "wasmer-engine",
+ "wasmer-engine-dylib",
+ "wasmer-engine-universal",
+ "wasmer-types",
+ "wasmer-vm",
+ "wat",
+ "winapi",
+]
+
+[[package]]
+name = "wasmer-artifact"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7aaf9428c29c1d8ad2ac0e45889ba8a568a835e33fd058964e5e500f2f7ce325"
+dependencies = [
+ "enumset",
+ "loupe",
+ "thiserror",
+ "wasmer-compiler",
+ "wasmer-types",
+]
+
+[[package]]
+name = "wasmer-compiler"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e67a6cd866aed456656db2cfea96c18baabbd33f676578482b85c51e1ee19d2c"
+dependencies = [
+ "enumset",
+ "loupe",
+ "rkyv",
+ "serde",
+ "serde_bytes",
+ "smallvec",
+ "target-lexicon",
+ "thiserror",
+ "wasmer-types",
+ "wasmparser",
+]
+
+[[package]]
+name = "wasmer-compiler-cranelift"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48be2f9f6495f08649e4f8b946a2cbbe119faf5a654aa1457f9504a99d23dae0"
+dependencies = [
+ "cranelift-codegen",
+ "cranelift-entity",
+ "cranelift-frontend",
+ "gimli 0.26.2",
+ "loupe",
+ "more-asserts",
+ "rayon",
+ "smallvec",
+ "target-lexicon",
+ "tracing",
+ "wasmer-compiler",
+ "wasmer-types",
+]
+
+[[package]]
+name = "wasmer-derive"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00e50405cc2a2f74ff574584710a5f2c1d5c93744acce2ca0866084739284b51"
+dependencies = [
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "wasmer-engine"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f98f010978c244db431b392aeab0661df7ea0822343334f8f2a920763548e45"
+dependencies = [
+ "backtrace",
+ "enumset",
+ "lazy_static",
+ "loupe",
+ "memmap2",
+ "more-asserts",
+ "rustc-demangle",
+ "serde",
+ "serde_bytes",
+ "target-lexicon",
+ "thiserror",
+ "wasmer-artifact",
+ "wasmer-compiler",
+ "wasmer-types",
+ "wasmer-vm",
+]
+
+[[package]]
+name = "wasmer-engine-dylib"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53"
+dependencies = [
+ "cfg-if 1.0.0",
+ "enum-iterator",
+ "enumset",
+ "leb128",
+ "libloading",
+ "loupe",
+ "object 0.28.4",
+ "rkyv",
+ "serde",
+ "tempfile",
+ "tracing",
+ "wasmer-artifact",
+ "wasmer-compiler",
+ "wasmer-engine",
+ "wasmer-object",
+ "wasmer-types",
+ "wasmer-vm",
+ "which",
+]
+
+[[package]]
+name = "wasmer-engine-universal"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15"
+dependencies = [
+ "cfg-if 1.0.0",
+ "enumset",
+ "leb128",
+ "loupe",
+ "region",
+ "rkyv",
+ "wasmer-compiler",
+ "wasmer-engine",
+ "wasmer-engine-universal-artifact",
+ "wasmer-types",
+ "wasmer-vm",
+ "winapi",
+]
+
+[[package]]
+name = "wasmer-engine-universal-artifact"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68f1db3f54152657eb6e86c44b66525ff7801dad8328fe677da48dd06af9ad41"
+dependencies = [
+ "enum-iterator",
+ "enumset",
+ "loupe",
+ "rkyv",
+ "thiserror",
+ "wasmer-artifact",
+ "wasmer-compiler",
+ "wasmer-types",
+]
+
+[[package]]
+name = "wasmer-object"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d831335ff3a44ecf451303f6f891175c642488036b92ceceb24ac8623a8fa8b"
+dependencies = [
+ "object 0.28.4",
+ "thiserror",
+ "wasmer-compiler",
+ "wasmer-types",
+]
+
+[[package]]
+name = "wasmer-types"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39df01ea05dc0a9bab67e054c7cb01521e53b35a7bb90bd02eca564ed0b2667f"
+dependencies = [
+ "backtrace",
+ "enum-iterator",
+ "indexmap 1.9.3",
+ "loupe",
+ "more-asserts",
+ "rkyv",
+ "serde",
+ "thiserror",
+]
+
+[[package]]
+name = "wasmer-vfs"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9302eae3edc53cb540c2d681e7f16d8274918c1ce207591f04fed351649e97c0"
+dependencies = [
+ "libc",
+ "thiserror",
+ "tracing",
+]
+
+[[package]]
+name = "wasmer-vm"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd"
+dependencies = [
+ "backtrace",
+ "cc",
+ "cfg-if 1.0.0",
+ "corosensei",
+ "enum-iterator",
+ "indexmap 1.9.3",
+ "lazy_static",
+ "libc",
+ "loupe",
+ "mach",
+ "memoffset",
+ "more-asserts",
+ "region",
+ "rkyv",
+ "scopeguard",
+ "serde",
+ "thiserror",
+ "wasmer-artifact",
+ "wasmer-types",
+ "winapi",
+]
+
+[[package]]
+name = "wasmer-wasi"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fadbe31e3c1b6f3e398ad172b169152ae1a743ae6efd5f9ffb34019983319d99"
+dependencies = [
+ "cfg-if 1.0.0",
+ "generational-arena",
+ "getrandom 0.2.12",
+ "libc",
+ "thiserror",
+ "tracing",
+ "wasm-bindgen",
+ "wasmer",
+ "wasmer-vfs",
+ "wasmer-wasi-types",
+ "winapi",
+]
+
+[[package]]
+name = "wasmer-wasi-types"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22dc83aadbdf97388de3211cb6f105374f245a3cf2a5c65a16776e7a087a8468"
+dependencies = [
+ "byteorder",
+ "time 0.2.27",
+ "wasmer-types",
+]
+
+[[package]]
+name = "wasmparser"
+version = "0.83.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a"
+
+[[package]]
+name = "wast"
+version = "201.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ef6e1ef34d7da3e2b374fd2b1a9c0227aff6cad596e1b24df9b58d0f6222faa"
+dependencies = [
+ "bumpalo",
+ "leb128",
+ "memchr",
+ "unicode-width",
+ "wasm-encoder",
+]
+
+[[package]]
+name = "wat"
+version = "1.201.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "453d5b37a45b98dee4f4cb68015fc73634d7883bbef1c65e6e9c78d454cf3f32"
+dependencies = [
+ "wast",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webpki"
+version = "0.21.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
+dependencies = [
+ "ring 0.16.20",
+ "untrusted 0.7.1",
+]
+
+[[package]]
+name = "webpki"
+version = "0.22.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53"
+dependencies = [
+ "ring 0.17.8",
+ "untrusted 0.9.0",
+]
+
+[[package]]
+name = "wee_alloc"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e"
+dependencies = [
+ "cfg-if 0.1.10",
+ "libc",
+ "memory_units",
+ "winapi",
+]
+
+[[package]]
+name = "which"
+version = "4.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
+dependencies = [
+ "either",
+ "home",
+ "once_cell",
+ "rustix",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43dbb096663629518eb1dfa72d80243ca5a6aca764cae62a2df70af760a9be75"
+dependencies = [
+ "windows_aarch64_msvc 0.33.0",
+ "windows_i686_gnu 0.33.0",
+ "windows_i686_msvc 0.33.0",
+ "windows_x86_64_gnu 0.33.0",
+ "windows_x86_64_msvc 0.33.0",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.4",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.33.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+
+[[package]]
+name = "winreg"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if 1.0.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
+[[package]]
+name = "xmlparser"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "114ba2b24d2167ef6d67d7d04c8cc86522b87f490025f39f0303b7db5bf5e3d8"
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
+name = "zerocopy"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
diff --git a/nixpkgs/pkgs/development/tools/database/replibyte/default.nix b/nixpkgs/pkgs/development/tools/database/replibyte/default.nix
index ed47d29cffe3..4437e4738e16 100644
--- a/nixpkgs/pkgs/development/tools/database/replibyte/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/replibyte/default.nix
@@ -2,36 +2,37 @@
 , stdenv
 , rustPlatform
 , fetchFromGitHub
-, fetchpatch
 , pkg-config
 , openssl
 , Security
+, SystemConfiguration
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "replibyte";
-  version = "0.9.7";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "Qovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "02bdz0464d6gbkgbvn67sgn6cc6p6pjqacblh8nimy0r8b13x2ki";
+    hash = "sha256-VExA92g+1y65skxLKU62ZPUPOwdm9N73Ne9xW7Q0Sic=";
   };
 
-  # Lockfile was updated in a commit after the release
-  cargoPatches = [
-    (fetchpatch {
-      url = "https://github.com/Qovery/Replibyte/commit/15f122cc83fff03ae410be705779ab964fa7b375.patch";
-      sha256 = "sha256-v95V4pl/2WN2do2SLVTJIO+5J7esqhC2BZaGBEtDhe0=";
-    })
-  ];
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "mongodb-schema-parser-0.5.0" = "sha256-P3srDY4bEDDYyic7Am2Cg+75j/kETf0uC7ui61TUJQA=";
+    };
+  };
 
-  cargoSha256 = "sha256-Y9CXpJTY/uszAVAbafa2+FumWKWFGaOLhK1FY+Nc+EU=";
+  postPatch = ''
+    cp ${./Cargo.lock} Cargo.lock
+  '';
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
   cargoBuildFlags = [ "--all-features" ];
 
@@ -39,6 +40,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Seed your development database with real data";
+    mainProgram = "replibyte";
     homepage = "https://github.com/Qovery/replibyte";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ dit7ya ];
diff --git a/nixpkgs/pkgs/development/tools/database/schemaspy/default.nix b/nixpkgs/pkgs/development/tools/database/schemaspy/default.nix
index 6847b9aa20a7..5e07beaff6f7 100644
--- a/nixpkgs/pkgs/development/tools/database/schemaspy/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/schemaspy/default.nix
@@ -59,6 +59,7 @@ maven.buildMavenPackage rec {
   meta = with lib; {
     homepage = "https://schemaspy.org";
     description = "Document your database simply and easily";
+    mainProgram = "schemaspy";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ jraygauthier ];
   };
diff --git a/nixpkgs/pkgs/development/tools/database/shmig/default.nix b/nixpkgs/pkgs/development/tools/database/shmig/default.nix
index 5bb023931388..3e7e640c88b5 100644
--- a/nixpkgs/pkgs/development/tools/database/shmig/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/shmig/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Minimalistic database migration tool with MySQL, PostgreSQL and SQLite support";
+    mainProgram = "shmig";
     homepage = "https://github.com/mbucc/shmig";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/tools/database/sqlboiler-crdb/default.nix b/nixpkgs/pkgs/development/tools/database/sqlboiler-crdb/default.nix
index 559c8f277581..df439bce808e 100644
--- a/nixpkgs/pkgs/development/tools/database/sqlboiler-crdb/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/sqlboiler-crdb/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CockroachDB generator for usage with SQLBoiler";
+    mainProgram = "sqlboiler-crdb";
     homepage = "https://github.com/glerchundi/sqlboiler-crdb/";
     maintainers = with maintainers; [ dgollings ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/database/sqlc/default.nix b/nixpkgs/pkgs/development/tools/database/sqlc/default.nix
index 8908d27ad000..68e75f602549 100644
--- a/nixpkgs/pkgs/development/tools/database/sqlc/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/sqlc/default.nix
@@ -21,6 +21,7 @@ buildGoModule {
 
   meta = {
     description = "Generate type-safe code from SQL";
+    mainProgram = "sqlc";
     homepage = "https://sqlc.dev/";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.adisbladis ];
diff --git a/nixpkgs/pkgs/development/tools/database/sqlcheck/default.nix b/nixpkgs/pkgs/development/tools/database/sqlcheck/default.nix
index 28f8b174cbc7..54faf9f993d0 100644
--- a/nixpkgs/pkgs/development/tools/database/sqlcheck/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/sqlcheck/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Automatically identify anti-patterns in SQL queries";
+    mainProgram = "sqlcheck";
     license = licenses.asl20;
     platforms = platforms.all;
     maintainers = [ maintainers.marsam ];
diff --git a/nixpkgs/pkgs/development/tools/database/sqlcmd/default.nix b/nixpkgs/pkgs/development/tools/database/sqlcmd/default.nix
index 956a28a0d976..c11475a3caa4 100644
--- a/nixpkgs/pkgs/development/tools/database/sqlcmd/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/sqlcmd/default.nix
@@ -47,6 +47,7 @@ buildGoModule rec {
 
   meta = {
     description = "A command line tool for working with Microsoft SQL Server, Azure SQL Database, and Azure Synapse";
+    mainProgram = "sqlcmd";
     homepage = "https://github.com/microsoft/go-sqlcmd";
     changelog = "https://github.com/microsoft/go-sqlcmd/releases/tag/v${version}";
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/database/sqlfluff/default.nix b/nixpkgs/pkgs/development/tools/database/sqlfluff/default.nix
index 89ae63369ff4..8db953a8dca5 100644
--- a/nixpkgs/pkgs/development/tools/database/sqlfluff/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/sqlfluff/default.nix
@@ -5,16 +5,20 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sqlfluff";
-  version = "2.3.5";
-  format = "setuptools";
+  version = "3.0.2";
+  pyproject = true;
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "sqlfluff";
+    repo = "sqlfluff";
     rev = "refs/tags/${version}";
-    hash = "sha256-l9py+qMI8t5L+FcUmJYXwemjUy/pcugbvhdW3oUOZMo=";
+    hash = "sha256-GJpSBDxgI0UpIIVeF9dl9XzKJ2TuwWf/IOCzoTGJNRQ=";
   };
 
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     appdirs
     cached-property
@@ -67,5 +71,6 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/sqlfluff/sqlfluff/blob/${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "sqlfluff";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/database/sqlite-web/default.nix b/nixpkgs/pkgs/development/tools/database/sqlite-web/default.nix
index 01c4712440ca..dc5960fd9ee2 100644
--- a/nixpkgs/pkgs/development/tools/database/sqlite-web/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/sqlite-web/default.nix
@@ -19,6 +19,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Web-based SQLite database browser";
+    mainProgram = "sqlite_web";
     homepage = "https://github.com/coleifer/sqlite-web";
     license = licenses.mit;
     maintainers = [ maintainers.costrouc ];
diff --git a/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix b/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix
index aa5e2d8f6e0e..a622d3481ce2 100644
--- a/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix
@@ -27,6 +27,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "DB Browser for SQLite";
+    mainProgram = "sqlitebrowser";
     homepage = "https://sqlitebrowser.org/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/development/tools/database/squirrel-sql/default.nix b/nixpkgs/pkgs/development/tools/database/squirrel-sql/default.nix
index 2d0795dee76b..bd23f523276a 100644
--- a/nixpkgs/pkgs/development/tools/database/squirrel-sql/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/squirrel-sql/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Universal SQL Client";
+    mainProgram = "squirrel-sql";
     homepage = "http://squirrel-sql.sourceforge.net/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.lgpl21Plus;
diff --git a/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix b/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix
index 24c4aeb8538a..37bad3e03d63 100644
--- a/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Bulk, parallel insert of CSV records into PostgreSQL";
+    mainProgram = "timescaledb-parallel-copy";
     homepage = "https://github.com/timescale/timescaledb-parallel-copy";
     license = licenses.asl20;
     maintainers = with maintainers; [ thoughtpolice ];
diff --git a/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix b/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix
index 38bbd1cb157f..444e947cdf4b 100644
--- a/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool for tuning your TimescaleDB for better performance";
+    mainProgram = "timescaledb-tune";
     homepage = "https://github.com/timescale/timescaledb-tune";
     license = licenses.asl20;
     maintainers = with maintainers; [ marsam ];
diff --git a/nixpkgs/pkgs/development/tools/database/trino-cli/default.nix b/nixpkgs/pkgs/development/tools/database/trino-cli/default.nix
index 899fa72d673a..b43fbc180194 100644
--- a/nixpkgs/pkgs/development/tools/database/trino-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/trino-cli/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The Trino CLI provides a terminal-based, interactive shell for running queries";
+    mainProgram = "trino";
     homepage = "https://github.com/trinodb/trino";
     license = licenses.asl20;
     maintainers = with maintainers; [ regadas cpcloud ];
diff --git a/nixpkgs/pkgs/development/tools/database/webdis/default.nix b/nixpkgs/pkgs/development/tools/database/webdis/default.nix
index eec952817e90..d9f23d93d4a5 100644
--- a/nixpkgs/pkgs/development/tools/database/webdis/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/webdis/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "A Redis HTTP interface with JSON output";
+    mainProgram = "webdis";
     homepage = "https://webd.is/";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ wucke13 ];
diff --git a/nixpkgs/pkgs/development/tools/datree/default.nix b/nixpkgs/pkgs/development/tools/datree/default.nix
index 829de7447c74..79e352deb532 100644
--- a/nixpkgs/pkgs/development/tools/datree/default.nix
+++ b/nixpkgs/pkgs/development/tools/datree/default.nix
@@ -44,6 +44,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI tool to ensure K8s manifests and Helm charts follow best practices";
+    mainProgram = "datree";
     longDescription = ''
       Datree provides an E2E policy enforcement solution to run automatic checks
       for rule violations. Datree can be used on the command line, admission
diff --git a/nixpkgs/pkgs/development/tools/dbus-test-runner/default.nix b/nixpkgs/pkgs/development/tools/dbus-test-runner/default.nix
index c4951f0193c5..f9ccd41f6835 100644
--- a/nixpkgs/pkgs/development/tools/dbus-test-runner/default.nix
+++ b/nixpkgs/pkgs/development/tools/dbus-test-runner/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A small little utility to run a couple of executables under a new DBus session for testing";
+    mainProgram = "dbus-test-runner";
     homepage = "https://launchpad.net/dbus-test-runner";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/dcadec/default.nix b/nixpkgs/pkgs/development/tools/dcadec/default.nix
index 9f5f4f0a3b52..bf531476566e 100644
--- a/nixpkgs/pkgs/development/tools/dcadec/default.nix
+++ b/nixpkgs/pkgs/development/tools/dcadec/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "DTS Coherent Acoustics decoder with support for HD extensions";
+    mainProgram = "dcadec";
     maintainers = with maintainers; [ edwtjo ];
     homepage = "https://github.com/foo86/dcadec";
     license = licenses.lgpl21;
diff --git a/nixpkgs/pkgs/development/tools/ddosify/default.nix b/nixpkgs/pkgs/development/tools/ddosify/default.nix
index b1e659ec8d6d..0f47035721e6 100644
--- a/nixpkgs/pkgs/development/tools/ddosify/default.nix
+++ b/nixpkgs/pkgs/development/tools/ddosify/default.nix
@@ -35,6 +35,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "High-performance load testing tool, written in Golang";
+    mainProgram = "ddosify";
     homepage = "https://ddosify.com/";
     changelog = "https://github.com/ddosify/ddosify/releases/tag/v${version}";
     license = licenses.agpl3Plus;
diff --git a/nixpkgs/pkgs/development/tools/dec-decode/default.nix b/nixpkgs/pkgs/development/tools/dec-decode/default.nix
index 2d85f41e33ab..621e119dc090 100644
--- a/nixpkgs/pkgs/development/tools/dec-decode/default.nix
+++ b/nixpkgs/pkgs/development/tools/dec-decode/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Nintendo Wii iso.dec decoder";
+    mainProgram = "dec-decode";
     homepage = "https://github.com/sammiq/dec-decode";
     license = licenses.unlicense;
     maintainers = with maintainers; [ hughobrien ];
diff --git a/nixpkgs/pkgs/development/tools/dep2nix/default.nix b/nixpkgs/pkgs/development/tools/dep2nix/default.nix
index 5d98ecd57296..fc15ecff7c9a 100644
--- a/nixpkgs/pkgs/development/tools/dep2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/dep2nix/default.nix
@@ -27,6 +27,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "Convert `Gopkg.lock` files from golang dep into `deps.nix`";
+    mainProgram = "dep2nix";
     license = licenses.bsd3;
     homepage = "https://github.com/nixcloud/dep2nix";
     maintainers = [ maintainers.mic92 ];
diff --git a/nixpkgs/pkgs/development/tools/detekt/default.nix b/nixpkgs/pkgs/development/tools/detekt/default.nix
index ff643693daec..5881997e6dbe 100644
--- a/nixpkgs/pkgs/development/tools/detekt/default.nix
+++ b/nixpkgs/pkgs/development/tools/detekt/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Static code analysis for Kotlin";
+    mainProgram = "detekt";
     homepage = "https://detekt.dev/";
     license = licenses.asl20;
     platforms = jre_headless.meta.platforms;
diff --git a/nixpkgs/pkgs/development/tools/devbox/default.nix b/nixpkgs/pkgs/development/tools/devbox/default.nix
index 38649859cea7..3b25558a4266 100644
--- a/nixpkgs/pkgs/development/tools/devbox/default.nix
+++ b/nixpkgs/pkgs/development/tools/devbox/default.nix
@@ -5,13 +5,13 @@
 }:
 buildGoModule rec {
   pname = "devbox";
-  version = "0.9.1";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "jetpack-io";
     repo = pname;
     rev = version;
-    hash = "sha256-3KZWXVwvzy3mZkh6pGZpeQQp2aU4V9TyBcJXU4Au4Rs=";
+    hash = "sha256-iKWOGp5Clk+YFXHv/5k+7DZMA9TQzyIQoTlQs4IMbu4=";
   };
 
   ldflags = [
@@ -23,7 +23,7 @@ buildGoModule rec {
   # integration tests want file system access
   doCheck = false;
 
-  vendorHash = "sha256-8G1JX4vdpDAicx6A9Butl8XTjszlHMbh34pJVQyzEs4=";
+  vendorHash = "sha256-QnmU8+J+5IIajfVQ5XPrtuo2ELB7AD56KsHsT8wLDws=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/development/tools/devd/default.nix b/nixpkgs/pkgs/development/tools/devd/default.nix
index 05ed14dfcd6e..5d2e0a83b441 100644
--- a/nixpkgs/pkgs/development/tools/devd/default.nix
+++ b/nixpkgs/pkgs/development/tools/devd/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A local webserver for developers";
+    mainProgram = "devd";
     homepage = "https://github.com/cortesi/devd";
     license = licenses.mit;
     maintainers = with maintainers; [ brianhicks ];
diff --git a/nixpkgs/pkgs/development/tools/devpi-client/default.nix b/nixpkgs/pkgs/development/tools/devpi-client/default.nix
index a481bf8804fe..66d84e5a3b12 100644
--- a/nixpkgs/pkgs/development/tools/devpi-client/default.nix
+++ b/nixpkgs/pkgs/development/tools/devpi-client/default.nix
@@ -74,6 +74,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Client for devpi, a pypi index server and packaging meta tool";
+    mainProgram = "devpi";
     homepage = "http://doc.devpi.net";
     changelog = "https://github.com/devpi/devpi/blob/client-${version}/client/CHANGELOG";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/devpi-server/default.nix b/nixpkgs/pkgs/development/tools/devpi-server/default.nix
index 0b64f8c615af..0923182afa4f 100644
--- a/nixpkgs/pkgs/development/tools/devpi-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/devpi-server/default.nix
@@ -13,6 +13,7 @@
 , platformdirs
 , pluggy
 , py
+, httpx
 , pyramid
 , pytestCheckHook
 , repoze-lru
@@ -27,7 +28,7 @@
 
 buildPythonApplication rec {
   pname = "devpi-server";
-  version = "6.9.2";
+  version = "6.10.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -36,7 +37,7 @@ buildPythonApplication rec {
     owner = "devpi";
     repo = "devpi";
     rev = "server-${version}";
-    hash = "sha256-HnxWLxOK+6B8O/7lpNjuSUQ0Z7NOmV2n01WFyjow6oU=";
+    hash = "sha256-JqYWWItdAgtUtiYSqxUd40tT7ON4oHiDA4/3Uhb01b8=";
   };
 
   sourceRoot = "${src.name}/server";
@@ -67,6 +68,7 @@ buildPythonApplication rec {
     strictyaml
     waitress
     py
+    httpx
   ] ++ passlib.optional-dependencies.argon2;
 
   nativeCheckInputs = [
@@ -86,7 +88,6 @@ buildPythonApplication rec {
   '';
   pytestFlagsArray = [
     "./test_devpi_server"
-    "--slow"
     "-rfsxX"
     "--ignore=test_devpi_server/test_nginx_replica.py"
     "--ignore=test_devpi_server/test_streaming_nginx.py"
@@ -98,6 +99,7 @@ buildPythonApplication rec {
     "test_auth_mirror_url_no_hash"
     "test_auth_mirror_url_with_hash"
     "test_auth_mirror_url_hidden_in_logs"
+    "test_simplelinks_timeout"
   ];
 
   __darwinAllowLocalNetworking = true;
diff --git a/nixpkgs/pkgs/development/tools/devpod/default.nix b/nixpkgs/pkgs/development/tools/devpod/default.nix
index e4fbfcc9bd5e..6b66869828d1 100644
--- a/nixpkgs/pkgs/development/tools/devpod/default.nix
+++ b/nixpkgs/pkgs/development/tools/devpod/default.nix
@@ -34,6 +34,7 @@ let
 
   meta = with lib; {
     description = "Codespaces but open-source, client-only and unopinionated: Works with any IDE and lets you use any cloud, kubernetes or just localhost docker";
+    mainProgram = "devpod";
     homepage = "https://devpod.sh";
     license = licenses.mpl20;
     maintainers = with maintainers; [ maxbrunet ];
diff --git a/nixpkgs/pkgs/development/tools/diesel-cli/default.nix b/nixpkgs/pkgs/development/tools/diesel-cli/default.nix
index 47b01955868f..458f0ea32951 100644
--- a/nixpkgs/pkgs/development/tools/diesel-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/diesel-cli/default.nix
@@ -12,7 +12,7 @@
 , libiconv
 , sqlite
 , postgresql
-, mariadb
+, libmysqlclient
 , zlib
 }:
 
@@ -42,7 +42,7 @@ rustPlatform.buildRustPackage rec {
     ++ optional (stdenv.isDarwin && mysqlSupport) libiconv
     ++ optional sqliteSupport sqlite
     ++ optional postgresqlSupport postgresql
-    ++ optionals mysqlSupport [ mariadb zlib ];
+    ++ optionals mysqlSupport [ libmysqlclient zlib ];
 
   buildNoDefaultFeatures = true;
   buildFeatures = optional sqliteSupport "sqlite"
diff --git a/nixpkgs/pkgs/development/tools/distgen/default.nix b/nixpkgs/pkgs/development/tools/distgen/default.nix
index 083bc3ed854c..c405aa3fd354 100644
--- a/nixpkgs/pkgs/development/tools/distgen/default.nix
+++ b/nixpkgs/pkgs/development/tools/distgen/default.nix
@@ -25,6 +25,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Templating system/generator for distributions";
+    mainProgram = "dg";
     license = licenses.gpl2Plus;
     homepage = "https://distgen.readthedocs.io/";
     maintainers = with maintainers; [ bachp ];
diff --git a/nixpkgs/pkgs/development/tools/dive/default.nix b/nixpkgs/pkgs/development/tools/dive/default.nix
index 6981e83f7086..6bba0c97cc4e 100644
--- a/nixpkgs/pkgs/development/tools/dive/default.nix
+++ b/nixpkgs/pkgs/development/tools/dive/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool for exploring each layer in a docker image";
+    mainProgram = "dive";
     homepage = "https://github.com/wagoodman/dive";
     changelog = "https://github.com/wagoodman/dive/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/djlint/default.nix b/nixpkgs/pkgs/development/tools/djlint/default.nix
index cbba45b686b9..d84afa203e5b 100644
--- a/nixpkgs/pkgs/development/tools/djlint/default.nix
+++ b/nixpkgs/pkgs/development/tools/djlint/default.nix
@@ -43,6 +43,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "HTML Template Linter and Formatter. Django - Jinja - Nunjucks - Handlebars - GoLang";
+    mainProgram = "djlint";
     homepage = "https://github.com/Riverside-Healthcare/djlint";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ traxys ];
diff --git a/nixpkgs/pkgs/development/tools/doc2go/default.nix b/nixpkgs/pkgs/development/tools/doc2go/default.nix
index fc2e2e8151c0..68b0f7f5e1e8 100644
--- a/nixpkgs/pkgs/development/tools/doc2go/default.nix
+++ b/nixpkgs/pkgs/development/tools/doc2go/default.nix
@@ -35,6 +35,7 @@ buildGoModule rec {
     homepage = "https://github.com/abhinav/doc2go";
     changelog = "https://github.com/abhinav/doc2go/blob/${src.rev}/CHANGELOG.md";
     description = "Your Go project's documentation, to-go";
+    mainProgram = "doc2go";
     longDescription = ''
       doc2go is a command line tool that generates static HTML documentation
       from your Go code. It is a self-hosted static alternative to
diff --git a/nixpkgs/pkgs/development/tools/dockfmt/default.nix b/nixpkgs/pkgs/development/tools/dockfmt/default.nix
index e2a2210fa649..3ca4fc9a1624 100644
--- a/nixpkgs/pkgs/development/tools/dockfmt/default.nix
+++ b/nixpkgs/pkgs/development/tools/dockfmt/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Dockerfile format";
+    mainProgram = "dockfmt";
     homepage = "https://github.com/jessfraz/dockfmt";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/nixpkgs/pkgs/development/tools/dockle/default.nix b/nixpkgs/pkgs/development/tools/dockle/default.nix
index a1f5d433646c..6dc04fef038b 100644
--- a/nixpkgs/pkgs/development/tools/dockle/default.nix
+++ b/nixpkgs/pkgs/development/tools/dockle/default.nix
@@ -39,6 +39,7 @@ buildGoModule rec {
     homepage = "https://containers.goodwith.tech";
     changelog = "https://github.com/goodwithtech/dockle/releases/tag/v${version}";
     description = "Container Image Linter for Security";
+    mainProgram = "dockle";
     longDescription = ''
       Container Image Linter for Security.
       Helping build the Best-Practice Docker Image.
diff --git a/nixpkgs/pkgs/development/tools/doctl/default.nix b/nixpkgs/pkgs/development/tools/doctl/default.nix
index d82c24979dfb..5f70e6a489d3 100644
--- a/nixpkgs/pkgs/development/tools/doctl/default.nix
+++ b/nixpkgs/pkgs/development/tools/doctl/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A command line tool for DigitalOcean services";
+    mainProgram = "doctl";
     homepage = "https://github.com/digitalocean/doctl";
     license = licenses.asl20;
     maintainers = [ maintainers.siddharthist ];
diff --git a/nixpkgs/pkgs/development/tools/documentation/antora/default.nix b/nixpkgs/pkgs/development/tools/documentation/antora/default.nix
index 6ac43313e962..34625022df6b 100644
--- a/nixpkgs/pkgs/development/tools/documentation/antora/default.nix
+++ b/nixpkgs/pkgs/development/tools/documentation/antora/default.nix
@@ -26,6 +26,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     description = "A modular documentation site generator. Designed for users of Asciidoctor.";
+    mainProgram = "antora";
     homepage = "https://antora.org";
     license = licenses.mpl20;
     maintainers = [ maintainers.ehllie ];
diff --git a/nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix b/nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix
index ddf27b35dbd0..35fcdc709521 100644
--- a/nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix
@@ -2,12 +2,14 @@
 , stdenv
 , cmake
 , fetchFromGitHub
+, fetchpatch
 , python3
 , flex
 , bison
 , qt5
 , CoreServices
 , libiconv
+, spdlog
 , sqlite
 }:
 
@@ -22,6 +24,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-FPI5ICdn9Tne/g9SP6jAQS813AAyoDNooDR/Hyvq6R4=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "sys-spdlog-fix.patch";
+      url = "https://github.com/doxygen/doxygen/commit/0df6da616f01057d28b11c8bee28443c102dd424.patch";
+      hash = "sha256-7efkCQFYGslwqhIuPsLYTEiA1rq+mO0DuyQBMt0O+m0=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
     python3
@@ -29,12 +39,13 @@ stdenv.mkDerivation rec {
     bison
   ];
 
-  buildInputs = [ libiconv sqlite ]
+  buildInputs = [ libiconv spdlog sqlite ]
     ++ lib.optionals (qt5 != null) (with qt5; [ qtbase wrapQtAppsHook ])
     ++ lib.optionals stdenv.isDarwin [ CoreServices ];
 
   cmakeFlags = [
     "-DICONV_INCLUDE_DIR=${libiconv}/include"
+    "-Duse_sys_spdlog=ON"
     "-Duse_sys_sqlite3=ON"
   ] ++ lib.optional (qt5 != null) "-Dbuild_wizard=YES";
 
@@ -52,6 +63,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.doxygen.nl/";
     changelog = "https://www.doxygen.nl/manual/changelog.html";
     description = "Source code documentation generator tool";
+    mainProgram = "doxygen";
 
     longDescription = ''
       Doxygen is the de facto standard tool for generating documentation from
diff --git a/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix b/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix
index bed660615179..b2652f6ca9fd 100644
--- a/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix
+++ b/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix
@@ -52,6 +52,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Documentation generator for GObject-based libraries";
+    mainProgram = "gi-docgen";
     homepage = "https://gitlab.gnome.org/GNOME/gi-docgen";
     license = licenses.asl20; # OR GPL-3.0-or-later
     maintainers = teams.gnome.members;
diff --git a/nixpkgs/pkgs/development/tools/drm_info/default.nix b/nixpkgs/pkgs/development/tools/drm_info/default.nix
index 26124b1054fb..e4f81e56456e 100644
--- a/nixpkgs/pkgs/development/tools/drm_info/default.nix
+++ b/nixpkgs/pkgs/development/tools/drm_info/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Small utility to dump info about DRM devices";
+    mainProgram = "drm_info";
     homepage = "https://github.com/ascent12/drm_info";
     license = licenses.mit;
     maintainers = with maintainers; [ tadeokondrak ];
diff --git a/nixpkgs/pkgs/development/tools/dstp/default.nix b/nixpkgs/pkgs/development/tools/dstp/default.nix
index 15093060d628..bbfac9b19941 100644
--- a/nixpkgs/pkgs/development/tools/dstp/default.nix
+++ b/nixpkgs/pkgs/development/tools/dstp/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Run common networking tests against your site";
+    mainProgram = "dstp";
     homepage = "https://github.com/ycd/dstp";
     license = licenses.mit;
     maintainers = with maintainers; [ jlesquembre ];
diff --git a/nixpkgs/pkgs/development/tools/dtools/default.nix b/nixpkgs/pkgs/development/tools/dtools/default.nix
index de4038fd346d..0c2f94bd7fe8 100644
--- a/nixpkgs/pkgs/development/tools/dtools/default.nix
+++ b/nixpkgs/pkgs/development/tools/dtools/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     description = "Ancillary tools for the D programming language compiler";
     homepage = "https://github.com/dlang/tools";
     license = lib.licenses.boost;
-    maintainers = with maintainers; [ ThomasMader jtbx ];
+    maintainers = with maintainers; [ jtbx ];
     platforms = lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/dum/default.nix b/nixpkgs/pkgs/development/tools/dum/default.nix
index f9683f2e821f..85b89979960d 100644
--- a/nixpkgs/pkgs/development/tools/dum/default.nix
+++ b/nixpkgs/pkgs/development/tools/dum/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "An npm scripts runner written in Rust";
+    mainProgram = "dum";
     homepage = "https://github.com/egoist/dum";
     changelog = "https://github.com/egoist/dum/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/dump_syms/default.nix b/nixpkgs/pkgs/development/tools/dump_syms/default.nix
index 858e16583177..67454a738278 100644
--- a/nixpkgs/pkgs/development/tools/dump_syms/default.nix
+++ b/nixpkgs/pkgs/development/tools/dump_syms/default.nix
@@ -7,6 +7,7 @@
 
 # darwin
 , Security
+, SystemConfiguration
 
 # tests
 , firefox-esr-unwrapped
@@ -16,7 +17,7 @@
 
 let
   pname = "dump_syms";
-  version = "2.3.0";
+  version = "2.3.1";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -25,15 +26,10 @@ rustPlatform.buildRustPackage {
     owner = "mozilla";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-F+yXFT6PsHpluxyF+aUiuLTLqlsjfQ5tk/JjcHgJkQ8=";
+    hash = "sha256-mSup3AMYsPu/Az6QXhdCFSxGcIpel4zNN0g/95gPDS0=";
   };
 
-  cargoSha256 = "sha256-I5CfrLWVTUwOtZrje3eATFen5u9MEH79Rk30ZNhaG98=";
-
-  # Workaround for https://github.com/nixos/nixpkgs/issues/166205
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
+  cargoSha256 = "sha256-INzCyF/tvCp4L6Btrw8AGTBAgdFiBlywzO3+SSE4beI=";
 
   nativeBuildInputs = [
     pkg-config
@@ -43,6 +39,7 @@ rustPlatform.buildRustPackage {
     openssl
   ] ++ lib.optionals (stdenv.isDarwin) [
     Security
+    SystemConfiguration
   ];
 
   checkFlags = [
@@ -59,6 +56,7 @@ rustPlatform.buildRustPackage {
   meta = with lib; {
     changelog = "https://github.com/mozilla/dump_syms/releases/tag/v${version}";
     description = "Command-line utility for parsing the debugging information the compiler provides in ELF or stand-alone PDB files";
+    mainProgram = "dump_syms";
     license = licenses.asl20;
     homepage = "https://github.com/mozilla/dump_syms/";
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/development/tools/dyff/default.nix b/nixpkgs/pkgs/development/tools/dyff/default.nix
index 0e16e37e274d..7557af0d9735 100644
--- a/nixpkgs/pkgs/development/tools/dyff/default.nix
+++ b/nixpkgs/pkgs/development/tools/dyff/default.nix
@@ -42,6 +42,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A diff tool for YAML files, and sometimes JSON";
+    mainProgram = "dyff";
     longDescription = ''
       dyff is inspired by the way the old BOSH v1 deployment output reported
       changes from one version to another by only showing the parts of a YAML
diff --git a/nixpkgs/pkgs/development/tools/earthly/default.nix b/nixpkgs/pkgs/development/tools/earthly/default.nix
index ce44264021da..0e3413043b54 100644
--- a/nixpkgs/pkgs/development/tools/earthly/default.nix
+++ b/nixpkgs/pkgs/development/tools/earthly/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "earthly";
-  version = "0.8.4";
+  version = "0.8.6";
 
   src = fetchFromGitHub {
     owner = "earthly";
     repo = "earthly";
     rev = "v${version}";
-    hash = "sha256-8grH07Vt6mrsKJ8FsG1yZcfLv5R8UIEBu19f1kal7Us=";
+    hash = "sha256-APmWF3RrUvXqfvs8MpOMeV3Q6N6GRJXd/sTd9EmIGnQ=";
   };
 
-  vendorHash = "sha256-zYueMiU3eL2vb2fn1dMkbfge+jZzM3Ry/AeLJerlMFg=";
+  vendorHash = "sha256-cdq0gbaTY7IXSoqZcxqkN5in5xtZZTaP0MQRypqJoCU=";
   subPackages = [ "cmd/earthly" "cmd/debugger" ];
 
   CGO_ENABLED = 0;
diff --git a/nixpkgs/pkgs/development/tools/easyjson/default.nix b/nixpkgs/pkgs/development/tools/easyjson/default.nix
index b724dd213ab0..6b97424e0e46 100644
--- a/nixpkgs/pkgs/development/tools/easyjson/default.nix
+++ b/nixpkgs/pkgs/development/tools/easyjson/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/mailru/easyjson";
     description = "Fast JSON serializer for Go";
+    mainProgram = "easyjson";
     license = licenses.mit;
     maintainers = with maintainers; [ Madouura ];
   };
diff --git a/nixpkgs/pkgs/development/tools/ec2-metadata-mock/default.nix b/nixpkgs/pkgs/development/tools/ec2-metadata-mock/default.nix
index 968656fa9da2..4b398629cab1 100644
--- a/nixpkgs/pkgs/development/tools/ec2-metadata-mock/default.nix
+++ b/nixpkgs/pkgs/development/tools/ec2-metadata-mock/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Amazon EC2 Metadata Mock";
+    mainProgram = "ec2-metadata-mock";
     homepage = "https://github.com/aws/amazon-ec2-metadata-mock";
     license = licenses.asl20;
     maintainers = with maintainers; [ ymatsiuk ];
diff --git a/nixpkgs/pkgs/development/tools/eclint/default.nix b/nixpkgs/pkgs/development/tools/eclint/default.nix
index 933a19fc12c1..3f449489743a 100644
--- a/nixpkgs/pkgs/development/tools/eclint/default.nix
+++ b/nixpkgs/pkgs/development/tools/eclint/default.nix
@@ -22,6 +22,7 @@ rec {
   meta = with lib; {
     homepage = "https://gitlab.com/greut/eclint";
     description = "EditorConfig linter written in Go";
+    mainProgram = "eclint";
     license = licenses.mit;
     maintainers = with maintainers; [ lucperkins ];
   };
diff --git a/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix b/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix
index 309a3e02bd6f..5aea91699a22 100644
--- a/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix
+++ b/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix
@@ -99,6 +99,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fast and feature-rich Java heap analyzer";
+    mainProgram = "eclipse-mat";
     longDescription = ''
       The Eclipse Memory Analyzer is a tool that helps you find memory
       leaks and reduce memory consumption. Use the Memory Analyzer to
diff --git a/nixpkgs/pkgs/development/tools/efm-langserver/default.nix b/nixpkgs/pkgs/development/tools/efm-langserver/default.nix
index 5bed978959cd..3bf9d0a1eb62 100644
--- a/nixpkgs/pkgs/development/tools/efm-langserver/default.nix
+++ b/nixpkgs/pkgs/development/tools/efm-langserver/default.nix
@@ -2,20 +2,21 @@
 
 buildGoModule rec {
   pname = "efm-langserver";
-  version = "0.0.50";
+  version = "0.0.53";
 
   src = fetchFromGitHub {
     owner = "mattn";
     repo = "efm-langserver";
     rev = "v${version}";
-    sha256 = "sha256-3WnMEkDa1boExyOg30wiFqs1Nw/zMtBqoUmtjluTQ0Y=";
+    sha256 = "sha256-Csm+2C9hP+dTXliADUquAb1nC+8f5j1rJ+66cqWDrCk=";
   };
 
-  vendorHash = "sha256-ZChHQ0Bcu9sVHvhdrmTfLryRwsFQNQSFDOKRu0keUIo=";
+  vendorHash = "sha256-0YkUak6+dpxvXn6nVVn33xrTEthWqnC9MhMLm/yjFMA=";
   subPackages = [ "." ];
 
   meta = with lib; {
     description = "General purpose Language Server";
+    mainProgram = "efm-langserver";
     maintainers = with maintainers; [ Philipp-M ];
     homepage = "https://github.com/mattn/efm-langserver";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/ejson/default.nix b/nixpkgs/pkgs/development/tools/ejson/default.nix
index 5c2efc0ab9a6..c6ec3e3b6b25 100644
--- a/nixpkgs/pkgs/development/tools/ejson/default.nix
+++ b/nixpkgs/pkgs/development/tools/ejson/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A small library to manage encrypted secrets using asymmetric encryption";
+    mainProgram = "ejson";
     license = licenses.mit;
     homepage = "https://github.com/Shopify/ejson";
     maintainers = [ maintainers.manveru ];
diff --git a/nixpkgs/pkgs/development/tools/electron/binary/default.nix b/nixpkgs/pkgs/development/tools/electron/binary/default.nix
index 0cdb42a3a0b8..2411316a4a0b 100644
--- a/nixpkgs/pkgs/development/tools/electron/binary/default.nix
+++ b/nixpkgs/pkgs/development/tools/electron/binary/default.nix
@@ -4,141 +4,7 @@ let
   mkElectron = callPackage ./generic.nix { };
 in
 rec {
-  electron-bin = electron_26-bin;
-
-  electron_10-bin = mkElectron "10.4.7" {
-    x86_64-linux = "e3ea75fcedce588c6b59cfa3a6e46ba67b789e14dc2e5b9dfe1ddf3f82b0f995";
-    x86_64-darwin = "8f01e020563b7fce68dc2e3d4bbf419320d13b088e89eb64f9645e9d73ad88fb";
-    i686-linux = "dd7fde9b3993538333ec701101554050b27d0b680196d0883ab563e8e696fc79";
-    armv7l-linux = "56f11ed14f8a620650d31c21ebd095ce59ef4286c98276802b18f9cc85560ddd";
-    aarch64-linux = "0550584518c8e98fe1113706c10fd7456ec519f7aa6867fbff17c8913327d758";
-    headers = "01x6a0r2jawjpl09ixgzap3g0z6znj34hsnnhzanavkbds0ri4k6";
-  };
-
-  electron_11-bin = mkElectron "11.5.0" {
-    x86_64-linux = "613ef8ac00c5abda425dfa48778a68f58a2e9c7c1f82539bb1a41afabbd6193f";
-    x86_64-darwin = "32937dca29fc397f0b15dbab720ed3edb88eee24f00f911984b307bf12dc8fd5";
-    i686-linux = "cd154c56d02d7b1f16e2bcd5650bddf0de9141fdbb8248adc64f6d607e5fb725";
-    armv7l-linux = "3f5a41037aaad658051d8bc8b04e8dece72b729dd1a1ed8311b365daa8deea76";
-    aarch64-linux = "f698a7743962f553fe36673f1c85bccbd918efba8f6dca3a3df39d41c8e2de3e";
-    aarch64-darwin = "749fb6bd676e174de66845b8ac959985f30a773dcb2c05553890bd99b94c9d60";
-    headers = "1zkdgpjrh1dc9j8qyrrrh49v24960yhvwi2c530qbpf2azgqj71b";
-  };
-
-  electron_12-bin = mkElectron "12.2.3" {
-    armv7l-linux = "4de83c34987ac7b3b2d0c8c84f27f9a34d9ea2764ae1e54fb609a95064e7e71a";
-    aarch64-linux = "d29d234c09ba810d89ed1fba9e405b6975916ea208d001348379f89b50d1835c";
-    x86_64-linux = "deae6d0941762147716b8298476080d961df2a32d0f6f57b244cbe3a2553cd24";
-    i686-linux = "11b4f159cd3b89d916cc05b5231c2cde53f0c6fb5be8e881824fde00daa5e8c2";
-    x86_64-darwin = "5af34f1198ce9fd17e9fa581f57a8ad2c9333187fb617fe943f30b8cde9e6231";
-    aarch64-darwin = "0db2c021a047a4cd5b28eea16490e16bc82592e3f8a4b96fbdc72a292ce13f50";
-    headers = "1idam1xirxqxqg4g7n33kdx2skk0r351m00g59a8yx9z82g06ah9";
-  };
-
-  electron_13-bin = mkElectron "13.6.9" {
-    armv7l-linux = "e70cf80ac17850f3291c19a89235c59a7a6e0c791e7965805872ce584479c419";
-    aarch64-linux = "cb570f77e46403a75b99740c41b297154f057dc3b9aa75fd235dccc5619972cf";
-    x86_64-linux = "5e29701394041ba2acd8a9bb042d77967c399b8fe007d7ffbd1d3e6bfdb9eb8a";
-    i686-linux = "7c31b60ee0e1d9966b8cf977528ace91e10ce25bb289a46eabbcf6087bee50e6";
-    x86_64-darwin = "3393f0e87f30be325b76fb2275fe2d5614d995457de77fe00fa6eef2d60f331e";
-    aarch64-darwin = "8471777eafc6fb641148a9c6acff2ea41c02a989d4d0a3a460322672d85169df";
-    headers = "0vvizddmhprprbdf6bklasz6amwc254bpc9j0zlx23d1pgyxpnhc";
-  };
-
-  electron_14-bin = mkElectron "14.2.9" {
-    armv7l-linux = "02ae6cd9ec9c2dcb2f550923576a0c851fff3e796a5048dd3806947c541fd564";
-    aarch64-linux = "631ba0f716d0272931418de42468114360bd21ec72875605fc32d67620743d2c";
-    x86_64-linux = "0a62a41e8ac4592aba347c82f9c40f3fb4c84c7d00b6bb9501d02375cd49cb7d";
-    i686-linux = "55e395a209d4a90e2dcd20a78af4724355feaba86411a39e66b977ed39de4d05";
-    x86_64-darwin = "1df5b4c4414ade75c6cbfe13d3024702b8ae7c77f3f07b8955b2459fde6a5842";
-    aarch64-darwin = "17089e54830976c4216d26e7e2e15ad2224e3b288d94973fed7e67e9b1c213b3";
-    headers = "181b2agnf4b5s81p2rdnd6wkw9c2ri4cv1x0wwf7rj60axvzvydm";
-  };
-
-  electron_15-bin = mkElectron "15.5.7" {
-    armv7l-linux = "58efcdbdd4fc88b4f9d051a0af25a9d38709d870694c9447358fcbddd2c6cdf4";
-    aarch64-linux = "994becc7d1b6ded8131cb15d2c80cd0ff443e40784adc25e55acae0c61e06697";
-    x86_64-linux = "ecafc973ba31248defad83d5f618b13278a271f5ba8f220509ec21153f5939b0";
-    i686-linux = "841f3ba960272692123134bd203b1de657aff0694fa85b2ccc59daffcebc0eb3";
-    x86_64-darwin = "c71390382371715bed1e667e2cc2525dd10784519edc4351fe2db82b5ba4f217";
-    aarch64-darwin = "55c476877d5d7040a114cc5821f7dced4d65c6110bb205b02c472420b4f4a1d9";
-    headers = "00ic356iss1pshb7r06xriqkh9zn75nd1i6cgxcm6al43bxn6vq1";
-  };
-
-  electron_16-bin = mkElectron "16.2.8" {
-    armv7l-linux = "93ba85035ab57537c3388c7b22a7ba66f9c49368aa8fea9816000c3f0f72e513";
-    aarch64-linux = "29024df822cca9a2bbb2b71d82f2ddf5af5cada80c0bd38e8ede420700297c6a";
-    x86_64-linux = "68dd612c503a82f9c0ad147e5f1d94213685bfc8fba6c4346fb542ec6fcd14e7";
-    i686-linux = "f00ac4d64bb0c4f6c4c6b317a2a7e5731eb6150f2768ccca2526b41cce612df6";
-    x86_64-darwin = "d40b00dbf2ef0e42f70b5269255101d3978e709dc3f0b6dbe0c7725fc828b3e1";
-    aarch64-darwin = "8b68d24e4902c42b934d1b4de2c0e675039d4289a2e9a4caccc6ad13c3faa5ef";
-    headers = "0b09whq5m7qbwy09ni29c23yip3k40sm88sa7ya5i1ysvp5p1v3c";
-  };
-
-  electron_17-bin = mkElectron "17.4.11" {
-    armv7l-linux = "2f148ad481fe0e06dade070caecf23b7e1564b1b27d775c9350c7a5245998af2";
-    aarch64-linux = "53618dc3fc6c04a4b4a44261987969850ad6ae56c8a5dbf21167cf0db7fc99bf";
-    x86_64-linux = "c40cc41da8f7958b4edbef953e9b0b4e830689467d1f1993c4d298677e6d0047";
-    i686-linux = "9654be64612f157a89928166f220792b5ab76240081a40594d01f763902d1007";
-    x86_64-darwin = "abd190e66826500fd5082f083d2795aca08503eff4b38cacf43d575933c99b85";
-    aarch64-darwin = "3fa2de3e6f67cc23051c23151c6aaac4d00c7595dda2adca4199242f44ab66bd";
-    headers = "1k4aay9p65vi2gkdwk2f9r3lvxn20wkf0krr5arivg1kpi03bzf6";
-  };
-
-  electron_18-bin = mkElectron "18.3.15" {
-    armv7l-linux = "2cc18781bdc5069878e544603fd66bccb9e8bf098f0250637cb5643cdc23d8bb";
-    aarch64-linux = "8fc93d852acc6722d6c4f62a74bc62d56abacb27c2b4ab644415b73e45c2e6b5";
-    x86_64-linux = "482101648dbf22e0e2c6be16cf36a9abf57028024abee56e23c143207d6ecdec";
-    i686-linux = "1a417ec687b6591800b7123fe60207984fb686156ca3b90dfd56e4ad0c1da4aa";
-    x86_64-darwin = "12927ceba4a56abaa96b28eb028f7e92e3b557c45c8b4e03a2178e7494d67ad5";
-    aarch64-darwin = "e588cbef49094a7a9d6f104f35a92a74a800a7bdadc52862d243c5e8524ed01b";
-    headers = "1rxslb022i45jd84fl311w5v0ski391s3i43kl75zyk4kha7japs";
-  };
-
-  electron_19-bin = mkElectron "19.1.9" {
-    armv7l-linux = "90b4afbf03dde52953ada2d7082fed9a8954e7547d1d93c6286ba04f9ef68987";
-    aarch64-linux = "473e07a6db8a92d4627ef1012dda590c5a04fb3d9804cc5237b033fdb6f52211";
-    x86_64-linux = "fd320675f1647e03d96764a906c51c567bf0bcbe0301550e4559d66dd76796df";
-    x86_64-darwin = "891545c70cbaed8c09b80c43587d5b517a592a2476de978ac1c6dd96cab8868f";
-    aarch64-darwin = "3d38b7f867e32d71bb75e8ba5616835cc5cfac130a70313f5de252040636bc1d";
-    headers = "06x325qksh9p4r8q9y3sqwhnk6vmvnjr1qb3f656a646vhjhp4bb";
-  };
-
-  electron_20-bin = mkElectron "20.3.12" {
-    armv7l-linux = "3319634fe22a8938e5bbabd5b7158ac5691df359aec5f6959bf0ad9fcc0d2af0";
-    aarch64-linux = "fb25d52f9416bb626fc9e2b02f06d032653cfa1d96918dd13643bbd3ffcb4529";
-    x86_64-linux = "3d21d14e528980327a328f6bab3195ed7bfa1cab97ab7d3dbb023e657f663244";
-    x86_64-darwin = "e6c8126a9e40c9b348ab4950b53472de13b66add5ba07ea0f3278ad202b35879";
-    aarch64-darwin = "e94465a1e233df6b1bebd565fdc5bb5cc180e87dd7945933ee0f9355bcdbdded";
-    headers = "0268rcqvwzjhxz32kd7djfw9dda93cm8xvzqyik0065hwgxwhcn1";
-  };
-
-  electron_21-bin = mkElectron "21.4.4" {
-    armv7l-linux = "220d9a4fe374f01dd99fe0db5670698d2b1a5c371aaa7fe04385efefb0bbacbe";
-    aarch64-linux = "b9214c775f4a767d534890d37de4625ace178b7b38ac0c0d56d87ac8e32bb7e5";
-    x86_64-linux = "9a61c8f0ad986dfc3b45d52814ff60fc1190f47a337156ecddee1d8ec34dc086";
-    x86_64-darwin = "78ad44ffac3bd2cae4fd4fea14d8ebf9087700b5074eacdb1764527c9d9baa1b";
-    aarch64-darwin = "08a362473cdd3db2e8ce21e100680b90968150741809740db75cde4d4dd2af90";
-    headers = "03mb1v5xzn2lp317r0mik9dx2nnxc7m26imygk13dgmafydd6aah";
-  };
-
-  electron_22-bin = mkElectron "22.3.27" {
-    armv7l-linux = "9f8372606e5ede83cf1c73a3d8ff07047e4e3ef614aa89a76cd497dc06cf119d";
-    aarch64-linux = "60279395a5ce4eaf3c08f1e717771b203830902d3fe3a7c311bc37deb1a0e15e";
-    x86_64-linux = "631d8eb08098c48ce2b29421e74c69ac0312b1e42f445d8a805414ba1242bf3a";
-    x86_64-darwin = "01f053d08cb2855acb14f0465f4e36324a41bd13b3b2ead142970a56df3e9db1";
-    aarch64-darwin = "2b87e9f766692caaa16d7750bfab2f609c0eab906f55996c7d438d8e18ac8867";
-    headers = "0hxp7jn30jncffw5xn8imk1hww56af34npp8ma58ha3qdm89146q";
-  };
-
-  electron_23-bin = mkElectron "23.3.13" {
-    armv7l-linux = "b88424ef80d59ebafe1ded3a48d2f92160921e5973eaad64775173825212a8a9";
-    aarch64-linux = "d353329f796798404a09a1f7271a6d824ced5dbe015e5c1d8e809aaa701a3907";
-    x86_64-linux = "2f9ab1c3bbacaa74b64f4f6ad92423302cc6b69a135ff1438a84233611e2f440";
-    x86_64-darwin = "ee6ccd4ce6c2c7bf3a0fd90b2b6347970df1663d8e48eabfc12136f9d8e2c479";
-    aarch64-darwin = "d1091c1444b9dadc39b505808d241269cd988532e7576f506acbf6d9d4e2aa80";
-    headers = "04k25z0d6xs2ar5mbbnr0phcs97kvxg28df3njhaniws6wf6qcmg";
-  };
+  electron-bin = electron_29-bin;
 
   electron_24-bin = mkElectron "24.8.6" {
     armv7l-linux = "8f46901667a904a62df7043991f20dc1c2a00370a42159976855458562cda8fc";
@@ -149,24 +15,6 @@ rec {
     headers = "009p1ffh2cyn98fcmprrjzq79jysp7h565v4f54wvjxjsq2nkr97";
   };
 
-  electron_25-bin = mkElectron "25.9.0" {
-    armv7l-linux = "dab54628685fc08f9a060de6bb5c9a7910eb2f6d0118ceb257447ace42378b36";
-    aarch64-linux = "7f80fe6016aca69ded956cdd5b64f35a34c1a92a6c16d945465ba00708a4556c";
-    x86_64-linux = "c762b14eb72749b9b400f3b7fff565b6722e0974c1cfb4b6d71b9df9fa364d07";
-    x86_64-darwin = "9b676a67c6ae62b2b8972281934405861539e0c0f1dd5bf892e013d325927746";
-    aarch64-darwin = "098d3673fbca3421021477f0639cb40a54856b35b8af4fa979d0defa1ba75801";
-    headers = "0wcqz4vgkyz1zcd0ybx1ywzv9kz96hdxwk9an98v87nb1gfhk05c";
-  };
-
-  electron_26-bin = mkElectron "26.3.0" {
-    armv7l-linux = "c444d805381a8125eb16f24369bbc370751c1f6bfaa0d4613a7a94ad797f5059";
-    aarch64-linux = "740b779bf3a2032fedb6c1902e537f61e88c5e245a4e8815ec8cf471ff38aceb";
-    x86_64-linux = "38e2a68361566faa2e7f2a4639cfedee3a5889d5f64018b2ad055c8f40516312";
-    x86_64-darwin = "ea9434ad717f12771f8c508b664ed8d18179b397910ce81f4b6e21efce90b754";
-    aarch64-darwin = "97cb2d00d06f331b4c028fa96373abdd7b5a71c2aa31b56cdf67d391f889f384";
-    headers = "00r11n0i0j7brkjbb8b0b4df6kgkwdplic4l50y9l4a7sbg6i43m";
-  };
-
   electron_27-bin = mkElectron "27.0.0" {
     armv7l-linux = "81070012b0abbd763c59301044585be7a0f0092d80f9a8507744720e267dae2e";
     aarch64-linux = "202c5c6817081739e7bf15127c17c84ce2e553457c69a17557dec0928d40f354";
@@ -184,4 +32,13 @@ rec {
     aarch64-darwin = "d64947fee370a3b111f170399969977959848f2a2f544a1ae5dc081fc2df75cf";
     headers = "1lrwc03ffrf4bi2faampkx7yg0iqsrcp86znp9fw6ajwdwgqsc81";
   };
+
+  electron_29-bin = mkElectron "29.1.4" {
+    armv7l-linux = "12a7e6a8ef214d104ee72eb6636a055c9c6d41bcc58f31a8dc48b9bc8fd0fcb5";
+    aarch64-linux = "0d41a51d45712d0312dd24d79a395e80280bd8365ebb8e46c252cadcb780354b";
+    x86_64-linux = "83a37103b67378a9073898541cfc4af8b5de708da15135f060bf26993ab426b5";
+    x86_64-darwin = "e7887396018840ca482eb481edbff2e9a5580998412ffd217f70fad02f23969d";
+    aarch64-darwin = "7ad63253fd6de9dbb337efbf4a6d0161f0e4c5953243bec27de488db98ef8a6c";
+    headers = "0plc831v1fva2yrwg1zal5n9wkgy0f6v1by6b3jh8wjgrsrkhk00";
+  };
 }
diff --git a/nixpkgs/pkgs/development/tools/electron/binary/generic.nix b/nixpkgs/pkgs/development/tools/electron/binary/generic.nix
index daa0c81d2e05..58b3154a2941 100644
--- a/nixpkgs/pkgs/development/tools/electron/binary/generic.nix
+++ b/nixpkgs/pkgs/development/tools/electron/binary/generic.nix
@@ -41,7 +41,7 @@ let
       ++ optionals (versionAtLeast version "11.0.0") [ "aarch64-darwin" ]
       ++ optionals (versionOlder version "19.0.0") [ "i686-linux" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    knownVulnerabilities = optional (versionOlder version "26.0.0") "Electron version ${version} is EOL";
+    knownVulnerabilities = optional (versionOlder version "27.0.0") "Electron version ${version} is EOL";
   };
 
   fetcher = vers: tag: hash: fetchurl {
diff --git a/nixpkgs/pkgs/development/tools/electron/common.nix b/nixpkgs/pkgs/development/tools/electron/common.nix
index 823b45971139..9881c26f659e 100644
--- a/nixpkgs/pkgs/development/tools/electron/common.nix
+++ b/nixpkgs/pkgs/development/tools/electron/common.nix
@@ -22,6 +22,8 @@ let
     opts = removeAttrs dep ["fetcher"];
   in pkgs.${dep.fetcher} opts;
 
+  fetchedDeps = lib.mapAttrs (name: fetchdep) info.deps;
+
 in (chromium.override { upstream-info = info.chromium; }).mkDerivation (base: {
   packageName = "electron";
   inherit (info) version;
@@ -31,21 +33,24 @@ in (chromium.override { upstream-info = info.chromium; }).mkDerivation (base: {
   buildInputs = base.buildInputs ++ [ libnotify ];
 
   electronOfflineCache = fetchYarnDeps {
-    yarnLock = (fetchdep info.deps."src/electron") + "/yarn.lock";
+    yarnLock = fetchedDeps."src/electron" + "/yarn.lock";
     sha256 = info.electron_yarn_hash;
   };
-  npmDeps = fetchNpmDeps {
-    src = fetchdep info.deps."src";
-    sourceRoot = "source/third_party/node";
+  npmDeps = fetchNpmDeps rec {
+    src = fetchedDeps."src";
+    # Assume that the fetcher always unpack the source,
+    # based on update.py
+    sourceRoot = "${src.name}/third_party/node";
     hash = info.chromium_npm_hash;
   };
 
   src = null;
 
-  patches = base.patches ++ lib.optional (lib.versionOlder info.version "27")
+  patches = base.patches ++ lib.optional (lib.versionAtLeast info.version "29")
     (substituteAll {
-      name = "version.patch";
-      src = ./version.patch;
+      # disable a component that requires CIPD blobs
+      name = "disable-screen-ai.patch";
+      src = ./disable-screen-ai.patch;
       inherit (info) version;
     })
   ;
@@ -55,9 +60,9 @@ in (chromium.override { upstream-info = info.chromium; }).mkDerivation (base: {
   '' + (
     lib.concatStrings (lib.mapAttrsToList (path: dep: ''
       mkdir -p ${builtins.dirOf path}
-      cp -r ${fetchdep dep}/. ${path}
+      cp -r ${dep}/. ${path}
       chmod u+w -R ${path}
-    '') info.deps)
+    '') fetchedDeps)
   ) + ''
     sourceRoot=src
     runHook postUnpack
@@ -115,13 +120,14 @@ in (chromium.override { upstream-info = info.chromium; }).mkDerivation (base: {
       cd ..
       PATH=$PATH:${lib.makeBinPath (with pkgsBuildHost; [ jq git ])}
       config=src/electron/patches/config.json
-      for key in $(jq -r "keys[]" $config)
+      for entry in $(cat $config | jq -c ".[]")
       do
-        value=$(jq -r ".\"$key\"" $config)
-        for patch in $(cat $key/.patches)
+        patch_dir=$(echo $entry | jq -r ".patch_dir")
+        repo=$(echo $entry | jq -r ".repo")
+        for patch in $(cat $patch_dir/.patches)
         do
-          echo applying in $value: $patch
-          git apply -p1 --directory=$value --exclude='src/third_party/blink/web_tests/*' $key/$patch
+          echo applying in $repo: $patch
+          git apply -p1 --directory=$repo --exclude='src/third_party/blink/web_tests/*' $patch_dir/$patch
         done
       done
     )
@@ -148,7 +154,6 @@ in (chromium.override { upstream-info = info.chromium; }).mkDerivation (base: {
     v8_promise_internal_field_count = 1;
     v8_embedder_string = "-electron.0";
     v8_enable_snapshot_native_code_counters = false;
-    v8_scriptormodule_legacy_lifetime = true;
     v8_enable_javascript_promise_hooks = true;
     enable_cdm_host_verification = false;
     proprietary_codecs = true;
@@ -161,11 +166,18 @@ in (chromium.override { upstream-info = info.chromium; }).mkDerivation (base: {
     enable_cet_shadow_stack = false;
     is_cfi = false;
     use_qt = false;
-
-    enable_widevine = false;
     use_perfetto_client_library = false;
-    enable_check_raw_ptr_fields = false;
-  } // lib.optionalAttrs (lib.versionAtLeast info.version "27")  {
+    v8_builtins_profiling_log_file = "";
+    enable_dangling_raw_ptr_checks = false;
+  } // lib.optionalAttrs (lib.versionAtLeast info.version "28") {
+    dawn_use_built_dxc = false;
+    v8_enable_private_mapping_fork_optimization = true;
+  } // lib.optionalAttrs (lib.versionAtLeast info.version "29") {
+    v8_expose_public_symbols = true;
+  } // {
+
+    # other
+    enable_widevine = false;
     override_electron_version = info.version;
   };
 
@@ -181,11 +193,11 @@ in (chromium.override { upstream-info = info.chromium; }).mkDerivation (base: {
   requiredSystemFeatures = [ "big-parallel" ];
 
   passthru = {
-    inherit info;
+    inherit info fetchedDeps;
     headers = stdenv.mkDerivation rec {
       name = "node-v${info.node}-headers.tar.gz";
       nativeBuildInputs = [ python3 ];
-      src = fetchdep info.deps."src/third_party/electron_node";
+      src = fetchedDeps."src/third_party/electron_node";
       buildPhase = ''
         runHook preBuild
         make tar-headers
diff --git a/nixpkgs/pkgs/development/tools/electron/disable-screen-ai.patch b/nixpkgs/pkgs/development/tools/electron/disable-screen-ai.patch
new file mode 100644
index 000000000000..0738942fded0
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/electron/disable-screen-ai.patch
@@ -0,0 +1,16 @@
+--- a/chrome/test/BUILD.gn
++++ b/chrome/test/BUILD.gn
+@@ -3114,13 +3114,6 @@ if (!is_android && !is_fuchsia) {
+         "//pdf/loader",
+       ]
+ 
+-      if (is_linux) {
+-        # Add a data dependency for pdf_extension_accessibility_test.cc to
+-        # notify testing builders that this test needs this library, which will
+-        # need to be downloaded from CIPD as defined in //DEPS.
+-        data_deps += [ "//third_party/screen-ai:screen_ai_linux" ]
+-      }
+-
+       if (enable_printing) {
+         sources += [ "../browser/pdf/pdf_extension_printing_test.cc" ]
+ 
diff --git a/nixpkgs/pkgs/development/tools/electron/info.json b/nixpkgs/pkgs/development/tools/electron/info.json
index 6a493f49d435..153b9b6ff164 100644
--- a/nixpkgs/pkgs/development/tools/electron/info.json
+++ b/nixpkgs/pkgs/development/tools/electron/info.json
@@ -3,16 +3,16 @@
         "deps": {
             "src/electron": {
                 "fetcher": "fetchFromGitHub",
-                "hash": "sha256-FH1M/usdQ4BibO6PSoUPZG2MgsMTG/SfIcBJATrgZcE=",
+                "hash": "sha256-jvrXVi/l7KBIoHYoWhFq4Kd3nZQ9XGoKjXAHdAj3yxM=",
                 "owner": "electron",
                 "repo": "electron",
-                "rev": "v28.2.2"
+                "rev": "v28.2.6"
             },
             "src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-AVCD/B0Zb0/FhX+w40UAV3Z0awOn089kt3FrWJGULUw=",
+                "hash": "sha256-g0aRiWCPrXPKBsOsAgtLmRbOeYigtm05MrWH6/fhQs0=",
                 "url": "https://chromium.googlesource.com/chromium/src.git",
-                "rev": "120.0.6099.276",
+                "rev": "120.0.6099.291",
                 "postFetch": "rm -r $out/third_party/blink/web_tests; rm -r $out/third_party/hunspell/tests; rm -r $out/content/test/data; rm -r $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; "
             },
             "src/third_party/clang-format/script": {
@@ -873,12 +873,12 @@
                 "rev": "78d3966b3c331292ea29ec38661b25df0a245948"
             }
         },
-        "version": "28.2.2",
+        "version": "28.2.6",
         "modules": "119",
-        "chrome": "120.0.6099.276",
+        "chrome": "120.0.6099.291",
         "node": "18.18.2",
         "chromium": {
-            "version": "120.0.6099.276",
+            "version": "120.0.6099.291",
             "deps": {
                 "gn": {
                     "version": "2023-10-23",
@@ -895,10 +895,10 @@
         "deps": {
             "src/electron": {
                 "fetcher": "fetchFromGitHub",
-                "hash": "sha256-FgHDK/z2Hq/jLTPUn40iSH5Q6vu1xlNu1PSSQxL+kOw=",
+                "hash": "sha256-cklX+avErA79ib94VIhKNSyEP2k7CxlvTDGRDdPXu/w=",
                 "owner": "electron",
                 "repo": "electron",
-                "rev": "v27.3.2"
+                "rev": "v27.3.5"
             },
             "src": {
                 "fetcher": "fetchFromGitiles",
@@ -1765,7 +1765,7 @@
                 "rev": "78d3966b3c331292ea29ec38661b25df0a245948"
             }
         },
-        "version": "27.3.2",
+        "version": "27.3.5",
         "modules": "118",
         "chrome": "118.0.5993.159",
         "node": "18.17.1",
@@ -1780,48 +1780,48 @@
                 }
             }
         },
-        "electron_yarn_hash": "1yq854829a4q0yqyjyn2lq4l3amsqdhfd7fjcnc3mz8l2ci3n964",
-        "chromium_npm_hash": "sha256-5cjqpYB45nw2gop54VP+tL7/0w63nQGfQ4x6a6KS7XQ="
+        "chromium_npm_hash": "sha256-5cjqpYB45nw2gop54VP+tL7/0w63nQGfQ4x6a6KS7XQ=",
+        "electron_yarn_hash": "1yq854829a4q0yqyjyn2lq4l3amsqdhfd7fjcnc3mz8l2ci3n964"
     },
-    "26": {
+    "29": {
         "deps": {
             "src/electron": {
                 "fetcher": "fetchFromGitHub",
-                "hash": "sha256-jIoRqmPge36KJBM+zXF2CXlPjjIVm9dEnt/EryHr7X4=",
+                "hash": "sha256-wUxpoBBlZzmOIsdQDVAirpCNReDFwZpSe15tsU9Sqqk=",
                 "owner": "electron",
                 "repo": "electron",
-                "rev": "v26.6.9"
+                "rev": "v29.1.2"
             },
             "src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-yctASyLtsBAxK7S34wVJB64QKnQkV3jGXshKWVpMjVo=",
+                "hash": "sha256-QW8r1ALMBzyUNbYPi7miaefsKlBHL5gBwz6JnfluX54=",
                 "url": "https://chromium.googlesource.com/chromium/src.git",
-                "rev": "116.0.5845.228",
+                "rev": "122.0.6261.112",
                 "postFetch": "rm -r $out/third_party/blink/web_tests; rm -r $out/third_party/hunspell/tests; rm -r $out/content/test/data; rm -r $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; "
             },
             "src/third_party/clang-format/script": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-IL6ReGM6+urkXfGYe1BBOv+0XgCZv5i3Lib1q9COhig=",
+                "hash": "sha256-7VvofDDQe+SoMRBfVk26q+C+OPyOE7QH35wVWkfDKxs=",
                 "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git",
-                "rev": "f97059df7f8b205064625cdb5f97b56668a125ef"
+                "rev": "e5337933f2951cacd3aeacd238ce4578163ca0b9"
             },
-            "src/buildtools/third_party/libc++/trunk": {
+            "src/third_party/libc++/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Sdhhr/tSo7B1tvFY7jFUw82pDrF0n5cEMq567WzD1uE=",
+                "hash": "sha256-/3VxptC6qAv9NCt8y1peJKTXTFI7blbvnpZ6D0VYyDk=",
                 "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git",
-                "rev": "055b2e17ae4f0e2c025ad0c7508b01787df17758"
+                "rev": "28aa23ffb4c7344914a5b4ac7169f12e5a12333f"
             },
-            "src/buildtools/third_party/libc++abi/trunk": {
+            "src/third_party/libc++abi/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-pZy10+P+RWGQavLqCI4M4bGHcxPnKulwC3WSE5lIXfU=",
+                "hash": "sha256-O337gqiB4uiTWUgIfPdEa1Du+/ww+xYpmmZW9Py7uyQ=",
                 "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git",
-                "rev": "8d21803b9076b16d46c32e2f10da191ee758520c"
+                "rev": "9986707a5f2fc6d5d1ffa7f224a032bdd45c95fd"
             },
-            "src/buildtools/third_party/libunwind/trunk": {
+            "src/third_party/libunwind/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-DVacn5wSGeXLfjEQoCo2qLySgzkA79cdWktDkZ2dLY8=",
+                "hash": "sha256-WPd6BlhNNF9n/qFU8atEh1fagbc05dWsFzBugw55boY=",
                 "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git",
-                "rev": "b5a43ecdac82a248f8a700a68c722b4d98708377"
+                "rev": "f400fdb561d4416b59b8f8a33d8ec8b79da60495"
             },
             "src/chrome/test/data/perf/canvas_bench": {
                 "fetcher": "fetchFromGitiles",
@@ -1843,9 +1843,9 @@
             },
             "src/docs/website": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-+iC1NPdw6LzzPbtLgO9ipvkeJjDAfBIODOtyIURlUX8=",
+                "hash": "sha256-sKbrY/m75LVWjWjhhjaeQnfXQP5AkEsEkZ+GmMNQJVo=",
                 "url": "https://chromium.googlesource.com/website.git",
-                "rev": "715769197cbe967605f24842ffcfb733d31b40fd"
+                "rev": "7474472013397bdb177cda70099f6411a5bd8212"
             },
             "src/media/cdm/api": {
                 "fetcher": "fetchFromGitiles",
@@ -1855,15 +1855,15 @@
             },
             "src/net/third_party/quiche/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-GMlLTzjU592zIc8hhFyAupY95+qR49r8x0q2l80XHDI=",
+                "hash": "sha256-mrnKQh2d6ewg1X8sCx8U4frHXyFKHuIUpvi0WBzg+PU=",
                 "url": "https://quiche.googlesource.com/quiche.git",
-                "rev": "037705cdfae29714daa24852021c2e5998a54446"
+                "rev": "0e39ce016ee1ec8271aa7216d547917c239db525"
             },
             "src/third_party/angle": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-v4eIJssxzb2hE4NrKZMyhbzxwNc3koqcADVcBrw8iT8=",
+                "hash": "sha256-h2b/f8MmldZSk3c84rvwO5+UZK36BFf/H9BStWFbDoo=",
                 "url": "https://chromium.googlesource.com/angle/angle.git",
-                "rev": "b48983ab8c74d2fcd9ef17c80727affb9e690c53"
+                "rev": "f9bad5e27d61e2ab6a7504b1793be5aa14eb1414"
             },
             "src/third_party/angle/third_party/glmark2/src": {
                 "fetcher": "fetchFromGitiles",
@@ -1879,33 +1879,33 @@
             },
             "src/third_party/angle/third_party/VK-GL-CTS/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-aiSGPLKRUErLohhLlcY/fWIJuUMzazDPIxiohiuCs6o=",
+                "hash": "sha256-zBY7MY6FXazzTW+nXvknkNar/odL0tzHXxHPmpYuy7E=",
                 "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS",
-                "rev": "f29bd2feeafff80013d4b52a8abbc960cbbb7dbd"
+                "rev": "0f6fd3de81102058dc2ae299af1ad5287d2145dd"
             },
             "src/third_party/anonymous_tokens/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-TcNIocV0p53NJCudvy8wf+fIPIP2tnkoBf1F7mEBFLs=",
+                "hash": "sha256-3+/zvwYAv3OGoKJatg+/c3OM1IyGq2iCyFWgu3b8VoU=",
                 "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git",
-                "rev": "8c8d20953d502db31fec2353b199e6c22ef0236e"
+                "rev": "d024f05b39e21bb2a0b8205a7ce72b1b185b84c2"
             },
             "src/third_party/content_analysis_sdk/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-p4N3zAUoM/ApBlYvLsCcH9QLArz7T4+miDGVuTbrZEc=",
+                "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=",
                 "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git",
-                "rev": "b8744f00646d175057f0be7443c7c72a311b5381"
+                "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc"
             },
             "src/third_party/dav1d/libdav1d": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-KSo2s3M3S13gY84NlAdnPsjoKfJZy7ipTlWSvUHD9Ak=",
+                "hash": "sha256-9SrbxiOqXKTFf4qZ4Wqg9aoOMY8zv7NczTqN2+lXwCI=",
                 "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git",
-                "rev": "f8ae94eca0f53502a2cddd29a263c1edea4822a0"
+                "rev": "47107e384bd1dc25674acf04d000a8cdc6195234"
             },
             "src/third_party/dawn": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-rX6wJVOoTnkpniDWjwMoneszAokXXkdcpXNE/JXayEY=",
+                "hash": "sha256-lVEaLONx+64ustD31+SWHoOS73kVgpMP3JYzs3cMCpc=",
                 "url": "https://dawn.googlesource.com/dawn.git",
-                "rev": "5318d39e47819212769b974ed3a0b42e373df59e"
+                "rev": "8917c648bdd68007c96b8ca9995533cc3ee995c2"
             },
             "src/third_party/dawn/third_party/glfw": {
                 "fetcher": "fetchFromGitiles",
@@ -1913,11 +1913,35 @@
                 "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
                 "rev": "62e175ef9fae75335575964c845a302447c012c7"
             },
+            "src/third_party/dawn/third_party/dxc": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-bPn+8v5CGv6CQe6brsPCYEJgpSoIa+ETtop1dZ9F42c=",
+                "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler",
+                "rev": "00e170f3485dc5a83628f716c0944f2b8cf58028"
+            },
+            "src/third_party/dawn/third_party/dxheaders": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=",
+                "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers",
+                "rev": "980971e835876dc0cde415e8f9bc646e64667bf7"
+            },
+            "src/third_party/dawn/third_party/khronos/OpenGL-Registry": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry",
+                "rev": "5bae8738b23d06968e7c3a41308568120943ae77"
+            },
+            "src/third_party/dawn/third_party/khronos/EGL-Registry": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry",
+                "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071"
+            },
             "src/third_party/dawn/third_party/webgpu-cts": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-DoS9lSP9nVxeKpAtvWQbdYRSaiF0m+MXysfRC8bxqrY=",
+                "hash": "sha256-wlneFqVEhM6fe9p10T22dx4dxnZzWwKHw+35eIlDGVM=",
                 "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts",
-                "rev": "b033a4f1ae4a0e19ae4d5563fae023001bbf570f"
+                "rev": "dedb6316202c8c55b898e52248f1345241299125"
             },
             "src/third_party/highway/src": {
                 "fetcher": "fetchFromGitiles",
@@ -1933,27 +1957,27 @@
             },
             "src/third_party/boringssl/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-ZPao/g4Tqc6s/ZLDe3FDuw8rmO0ON07/t7y1c/C2bAs=",
+                "hash": "sha256-shqUB+x7oXgtQqqfhkwXHwLLaJW1/L1vh1O+jvdsDP8=",
                 "url": "https://boringssl.googlesource.com/boringssl.git",
-                "rev": "ae88f198a49d77993e9c44b017d0e69c810dc668"
+                "rev": "414f69504d30d0848b69f6453ea7fb5e88004cb4"
             },
             "src/third_party/breakpad/breakpad": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-8AkC/8oX4OWAcV21laJ0AeMRB9G04rFc6UJFy7Wus4A=",
+                "hash": "sha256-7SmO5e/U2shYVslmCRPVLyfU5N4Rp1mzls8lLqIW8x8=",
                 "url": "https://chromium.googlesource.com/breakpad/breakpad.git",
-                "rev": "8988364bcddd9b194b0bf931c10bc125987330ed"
+                "rev": "62ecd463583d09eb7d15b1d410055f30b2c7bcb4"
             },
             "src/third_party/cast_core/public/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-pyjxQQYnsASHV2SxwZeIqkZJSpTrqyGg7Uee/GRp9VU=",
+                "hash": "sha256-AalRQhJmornCqmvE2+36J/3LubaA0jr6P1PXy32lX4I=",
                 "url": "https://chromium.googlesource.com/cast_core/public",
-                "rev": "e42ef68aa05ac0c163805f60b9b19284f3c2dee3"
+                "rev": "71f51fd6fa45fac73848f65421081edd723297cd"
             },
             "src/third_party/catapult": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-MkkIztmLGRmxkRAPGZgeb+cc4Dn9Z24p+umwFzAxhpQ=",
+                "hash": "sha256-ixfmLcWTgVcHi2CXAulMXTaAyPYT42Q8VflStxmNRXc=",
                 "url": "https://chromium.googlesource.com/catapult.git",
-                "rev": "cef5cf05b2410be6cae210e4ae7de0ab808736c3"
+                "rev": "ab03292694695864b523636060e2a96b2c9b2df2"
             },
             "src/third_party/ced/src": {
                 "fetcher": "fetchFromGitiles",
@@ -1961,6 +1985,12 @@
                 "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git",
                 "rev": "ba412eaaacd3186085babcd901679a48863c7dd5"
             },
+            "src/third_party/chromium-variations": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-px8BHI5Cp3vBRyei50dbxCTn/gydLsps1/SmJxxeGKw=",
+                "url": "https://chromium.googlesource.com/chromium-variations.git",
+                "rev": "d0dcd8802c22c1ac4a7d112782a4c75f0c6ca8ee"
+            },
             "src/third_party/cld_3/src": {
                 "fetcher": "fetchFromGitiles",
                 "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=",
@@ -1981,9 +2011,9 @@
             },
             "src/third_party/cpuinfo/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-1XazrNQwwIFeiUgFxiZq8lU1jdlusdld9ddssVLccEM=",
+                "hash": "sha256-56XE95dvaDF8E89V/le19Gk52fR0pqqyE38UgQo+GQM=",
                 "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git",
-                "rev": "f44a9dabb2192ffb203ddd0c71f6373c7d82faed"
+                "rev": "76cc10d627add77922dc24521b332a055a4d6d77"
             },
             "src/third_party/crc32c/src": {
                 "fetcher": "fetchFromGitiles",
@@ -1993,27 +2023,27 @@
             },
             "src/third_party/cros_system_api": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-SlIa4iN8FAGrR5/T2JlPA0RRDkwKmJ+z6FAe83Doo9c=",
+                "hash": "sha256-Tzn7Sx6k7BpH/UqMZHdLTk26FBp5QNcX0xWhztgRKrw=",
                 "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git",
-                "rev": "ea8d35b6f6762ff618dabf307be7a03971afa02e"
+                "rev": "12d5e386005a211570cfdf9849d2fa6a3b38594b"
             },
             "src/third_party/crossbench": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-IM81ppJX/ib//P2ESbQXMSL+BiOSVKbdXZdcMsq4xn0=",
+                "hash": "sha256-VxH1eOsJGQUk93EYexl1QrCpHTpgCOQP7H+oN0MZNpA=",
                 "url": "https://chromium.googlesource.com/crossbench.git",
-                "rev": "cdc33384bfa900dfec28e6cf7b5f22cd7ff2c92f"
+                "rev": "1983b3f517da56c35c91296467458f71ad5b9340"
             },
             "src/third_party/depot_tools": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-UuF8ft26lKDc4tOmYN8yyGQ6J8YFFcK0oJ5aVskooLQ=",
+                "hash": "sha256-C1l4piDzNENx6Vvtzu03HsBZTHIavO5AkmO6QXErh3Y=",
                 "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git",
-                "rev": "fc75af35d41df6c7742caef751428aa875199990"
+                "rev": "6fc0c97ab284021b72e3bc962f7fa879ffcad65b"
             },
             "src/third_party/devtools-frontend/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-xq+qY3WZPRCGSmdk71wVCOAFbK4f4C87IVkSQkA5oeA=",
+                "hash": "sha256-Y7XPBkKU8p210dj7ydIDVJgiXx6ZQPP4D5Jfw3t9FCc=",
                 "url": "https://chromium.googlesource.com/devtools/devtools-frontend",
-                "rev": "f7c236f0555abbe40cebfdc2d4148ea8dfdf0f10"
+                "rev": "3fa1fc736f46022f45c7ba7d817d1df1519c55d7"
             },
             "src/third_party/dom_distiller_js/dist": {
                 "fetcher": "fetchFromGitiles",
@@ -2023,9 +2053,9 @@
             },
             "src/third_party/eigen3/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-ycpxfxQBCMZzPBJNwkJanLUoRenC6Ja4k2KnxPZ73aA=",
+                "hash": "sha256-a9QAnv6vIM8a9Bn8ZmfeMT0+kbtb0QGxM0+m5xwIqm8=",
                 "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git",
-                "rev": "7d7576f3262fa15c34d5575637bd8d7ff4a83f16"
+                "rev": "454f89af9d6f3525b1df5f9ef9c86df58bf2d4d3"
             },
             "src/third_party/farmhash/src": {
                 "fetcher": "fetchFromGitiles",
@@ -2035,9 +2065,9 @@
             },
             "src/third_party/ffmpeg": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-dvn/4ufK0lbfB9GKpNKKS/aImSVRBAyEss5cWm8iA84=",
+                "hash": "sha256-NRyMXRxnHJi5JiEJUxOxJyPGe5BGTxNbNyEOu1GyO8E=",
                 "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git",
-                "rev": "881c5c3f6412020c37e97e178e0f5da9ddd2ae90"
+                "rev": "17525de887d54b970ffdd421a0879c1db1952307"
             },
             "src/third_party/flac": {
                 "fetcher": "fetchFromGitiles",
@@ -2047,15 +2077,15 @@
             },
             "src/third_party/flatbuffers/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-sKBf+en13jDX84/2adz10Z248MifhZg+YaMABIqaduE=",
+                "hash": "sha256-LecJwLDG6szZZ/UOCFD+MDqH3NKawn0sdEwgnMt8wMM=",
                 "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git",
-                "rev": "13fc75cb6b7b44793f3f5b4ba025ff403d012c9f"
+                "rev": "bcb9ef187628fe07514e57756d05e6a6296f7dc5"
             },
             "src/third_party/fontconfig/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-0R+FEhtGXFiQWHEPRrJqaBW1JVfCojYI4NPDvYMBhoU=",
+                "hash": "sha256-7PFmgr/+KNEYxCMuxMD2Zi9Ydcbp88IU7exr55a392Q=",
                 "url": "https://chromium.googlesource.com/external/fontconfig.git",
-                "rev": "06929a556fdc39c8fe12965b69070c8df520a33e"
+                "rev": "2fb3419a92156569bc1ec707401258c922cd0d99"
             },
             "src/third_party/fp16/src": {
                 "fetcher": "fetchFromGitiles",
@@ -2077,9 +2107,9 @@
             },
             "src/third_party/freetype/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-JN7Mw+Osobx3LqAf7lR1EK3Tv2M0JCvd/8oNFEENH/k=",
+                "hash": "sha256-ogBt+haM+MoETsPIhwPDPZCLwQB9u9+w7OHL4us6kg8=",
                 "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git",
-                "rev": "3829fdaae5f12590f93807e9bcb866be131a201a"
+                "rev": "57617782464411201ce7bbc93b086c1b4d7d84a5"
             },
             "src/third_party/freetype-testing/src": {
                 "fetcher": "fetchFromGitiles",
@@ -2095,9 +2125,9 @@
             },
             "src/third_party/harfbuzz-ng/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-+fClyD9Rsge9qdGF8WCv8taLTWNL8iManpXZUzDL2LM=",
+                "hash": "sha256-VAan6P8PHSq8RsGE4YbI/wCfFAhzl3nJMt0cQBYi5Ls=",
                 "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git",
-                "rev": "db700b5670d9475cc8ed4880cc9447b232c5e432"
+                "rev": "155015f4bec434ecc2f94621665844218f05ce51"
             },
             "src/third_party/emoji-segmenter/src": {
                 "fetcher": "fetchFromGitiles",
@@ -2113,9 +2143,9 @@
             },
             "src/third_party/libgav1/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-DY2BBK+bH1lGZNEl3rMDsPb7Z52YMIQy/3N0achugE0=",
+                "hash": "sha256-ySRgjJUYFXTw5kys9WDSuxnmfzj1I4ImvTWi+7q0HXE=",
                 "url": "https://chromium.googlesource.com/codecs/libgav1.git",
-                "rev": "cd53f7c0d6a1c005e38874d143c8876d375bae70"
+                "rev": "35fea10bfdb790cf131ae74a4ee346905f34dc3c"
             },
             "src/third_party/googletest/src": {
                 "fetcher": "fetchFromGitiles",
@@ -2131,9 +2161,9 @@
             },
             "src/third_party/icu": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-SPWi626Y5WL+cBiedyofb7FRxzM+maQ+1Mp5sx/i1EA=",
+                "hash": "sha256-9yFRBrHdWcYgrZAaigS8XnxNsqJNklGdFkAAgVdHXFU=",
                 "url": "https://chromium.googlesource.com/chromium/deps/icu.git",
-                "rev": "e8c3bc9ea97d4423ad0515e5f1c064f486dae8b1"
+                "rev": "a622de35ac311c5ad390a7af80724634e5dc61ed"
             },
             "src/third_party/jsoncpp/source": {
                 "fetcher": "fetchFromGitiles",
@@ -2149,15 +2179,15 @@
             },
             "src/third_party/libFuzzer/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Zp8Ea/7GwmEl964MEIk3UM6IR5+FtUz8InlqZaOniDA=",
+                "hash": "sha256-T0dO+1A0r6kLFoleMkY8heu80biPntCpvA6YfqA7b+E=",
                 "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git",
-                "rev": "26cc39e59b2bf5cbc20486296248a842c536878d"
+                "rev": "758bd21f103a501b362b1ca46fa8fcb692eaa303"
             },
             "src/third_party/fuzztest/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-SiZAiHQt37PdWYiVOexqoQnRqk+EbsZk8ELJ9eJ1iSk=",
+                "hash": "sha256-YEg+/562AX/hK0Adx9bUZqATt+5VDZjn/csWVhRji2M=",
                 "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git",
-                "rev": "0e6385f1b48865f35889749046083586e110e390"
+                "rev": "12e7428ab0847b1d1dc6c4b89203adfd1f16a1ad"
             },
             "src/third_party/libaddressinput/src": {
                 "fetcher": "fetchFromGitiles",
@@ -2167,33 +2197,33 @@
             },
             "src/third_party/libaom/source/libaom": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-pghv17RmD8w7eWiSB2pdR3ZWSFyhFEky0p7jfGKIu34=",
+                "hash": "sha256-f65sdsMAWCWpsdTgyTzx5fwM/2ESm/cBCvU41s2BEV0=",
                 "url": "https://aomedia.googlesource.com/aom.git",
-                "rev": "414a2fcbb1bb0f4ac471613e12004651f4d67c25"
+                "rev": "1a72ea323d65e46eb90d08d492c04891abb91926"
             },
             "src/third_party/libavif/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-roT/0RLGNKlz8gx209UtyM3YpM29y27P4zjZJMqnUPY=",
+                "hash": "sha256-rglws6GR11X8SdpYhK9CoxElWuPFYfp5b+vETjEoJOY=",
                 "url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git",
-                "rev": "781d6a6467d82d8ba36256f31b6593a33c03345d"
+                "rev": "e170c9366090cdc389d5f47ee3c2d7db71d263bc"
             },
             "src/third_party/libavifinfo/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-9HrWIuA3nuvqT6Hy8DHoBRCEKEG/p9UHY5gPYd/5oaI=",
+                "hash": "sha256-UAc4iYWrKWteH98hD3QLkD3JWmV/rsvWhFIVJN7tc+Q=",
                 "url": "https://aomedia.googlesource.com/libavifinfo.git",
-                "rev": "8ed46385f4b6fb0b4680d791002cbd674b2b9cb6"
+                "rev": "b496868f7c3fd17dfeeecc0364fe37e19edd548a"
             },
             "src/third_party/nearby/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-WLmEKIxTm7Aae/riw2HLcNmITvBHG4Z6fDA1Ue9J0tM=",
+                "hash": "sha256-XsQrfj0R88qf0C/LtRUsset/lnRpBkbpGUr/ZE3qmyk=",
                 "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git",
-                "rev": "44fb9b4fa24e1140202c53a7c56bea90a0426adb"
+                "rev": "4bdb5000ee7919724530cf89d50969e7b0ed58a7"
             },
             "src/third_party/beto-core/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-qlExr/AFxJL7JLDz7bDCCk9Ios++5/n/iT9Mv8YnYxY=",
+                "hash": "sha256-PkvHqVKjGHxAYntylJxR5xnUVU1o8DJuBmsd9qkl/Yo=",
                 "url": "https://beto-core.googlesource.com/beto-core.git",
-                "rev": "45756ea770c41085d5c71156b2c46da0b10117d6"
+                "rev": "4d202dab960a0b6a6e4757ab4393945aca5a09db"
             },
             "src/third_party/securemessage/src": {
                 "fetcher": "fetchFromGitiles",
@@ -2201,6 +2231,12 @@
                 "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git",
                 "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84"
             },
+            "src/third_party/speedometer/v3.0": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-FDsK5sNy3YOrmaGpN3AhSExzBY9D8RGwoZKkjg/5vo0=",
+                "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git",
+                "rev": "2ee210ca20767c949c4ff29bdffa1138eb0501fe"
+            },
             "src/third_party/ukey2/src": {
                 "fetcher": "fetchFromGitiles",
                 "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=",
@@ -2209,9 +2245,9 @@
             },
             "src/third_party/cros-components/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-a58NnOGa2bcQ2WNULnFyjyYnw3QXUAWjsB7UAxuRakg=",
+                "hash": "sha256-2FuyB/TLKMbqgjvw0q19lcG85fedwlOmKKNlGevEzos=",
                 "url": "https://chromium.googlesource.com/external/google3/cros_components.git",
-                "rev": "81d1ad8e0ba89d207657f124de3d0829829484d7"
+                "rev": "ab7bdff32543991f52872c25cecf1f926702dfe3"
             },
             "src/third_party/libdrm/src": {
                 "fetcher": "fetchFromGitiles",
@@ -2233,9 +2269,9 @@
             },
             "src/third_party/libjpeg_turbo": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-QnXMR9qqRiYfV1sUJvKVvLQ9A022lYKbsrI9HOU9LCs=",
+                "hash": "sha256-+t75ZAdOXc7Nd1/8zEQLX+enZb8upqIQuR6qzb9z7Cg=",
                 "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git",
-                "rev": "aa4075f116e4312537d0d3e9dbd5e31096539f94"
+                "rev": "9b894306ec3b28cea46e84c32b56773a98c483da"
             },
             "src/third_party/liblouis/src": {
                 "fetcher": "fetchFromGitiles",
@@ -2269,9 +2305,9 @@
             },
             "src/third_party/libvpx/source/libvpx": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-9zyYyamGsDO+a6ggdlxJ78xIGmaNyD7NcmQVIZW9oLA=",
+                "hash": "sha256-VdNl1P+nHidhYcdyx0ceHmxweO0ypMFQKKUokvP9SEA=",
                 "url": "https://chromium.googlesource.com/webm/libvpx.git",
-                "rev": "278d0acd32c3fd544e6f99cbfd714df3430a6442"
+                "rev": "b95d17572629c676bdcfd535fb3990b9f6f8fb11"
             },
             "src/third_party/libwebm/source": {
                 "fetcher": "fetchFromGitiles",
@@ -2281,9 +2317,9 @@
             },
             "src/third_party/libwebp/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-isuuqzfc7cBxVEFrpHQP79B3s/5Jwu3qC4x3VPw7MuE=",
+                "hash": "sha256-Wa33opOFgcmYtycezDUt2f6PqZBse6xYB5kLuSaw95o=",
                 "url": "https://chromium.googlesource.com/webm/libwebp.git",
-                "rev": "4619a48fc3292743d7ce9658bee4245406734109"
+                "rev": "ca332209cb5567c9b249c86788cb2dbf8847e760"
             },
             "src/third_party/libyuv": {
                 "fetcher": "fetchFromGitiles",
@@ -2299,9 +2335,9 @@
             },
             "src/third_party/material_color_utilities/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Cv1TjvOcswhp60LXblrLwY5jrudqKuDUqs1c//x49YE=",
+                "hash": "sha256-sYLpJbgwR5POWqbUqu7IdWJ2Gibjz1PsMdSK+7yPDt4=",
                 "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git",
-                "rev": "bd6537fb1c4aa2164d97f96e78a9c826e360a0ed"
+                "rev": "bec7bab60e6431201a82761ea4482b98b54c2af9"
             },
             "src/third_party/minigbm/src": {
                 "fetcher": "fetchFromGitiles",
@@ -2311,9 +2347,9 @@
             },
             "src/third_party/nasm": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-L+b3X3vsfpY6FSlIK/AHhxhmq2cXd50vND6uT6yn8Qs=",
+                "hash": "sha256-SiRXHsUlWXtH6dbDjDjqNAm105ibEB3jOfNtQAM4CaY=",
                 "url": "https://chromium.googlesource.com/chromium/deps/nasm.git",
-                "rev": "7fc833e889d1afda72c06220e5bed8fb43b2e5ce"
+                "rev": "f477acb1049f5e043904b87b825c5915084a9a29"
             },
             "src/third_party/neon_2_sse/src": {
                 "fetcher": "fetchFromGitiles",
@@ -2329,9 +2365,15 @@
             },
             "src/third_party/openscreen/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-+Ea+CVr59WUyVk7sLdelPPwt/n5CLBNnAOW6XD7k/qM=",
+                "hash": "sha256-habWfKhK66T537zJb/fm0IWpDbD2xgd9Upg97xRBy/M=",
                 "url": "https://chromium.googlesource.com/openscreen",
-                "rev": "2a4dbe656f38bf7617df013b54c683e461ed064d"
+                "rev": "b70c552bedf189fc238e98f8f69e6c30e7925207"
+            },
+            "src/third_party/openscreen/src/buildtools": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-o974IZvLUG2KlB1pQPYFwnoPGo239CV96pQPoQO7lvM=",
+                "url": "https://chromium.googlesource.com/chromium/src/buildtools",
+                "rev": "a9a6f0c49d0e8fa0cda37337430b4736ab3dc944"
             },
             "src/third_party/openscreen/src/third_party/tinycbor/src": {
                 "fetcher": "fetchFromGitiles",
@@ -2341,21 +2383,21 @@
             },
             "src/third_party/pdfium": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-xYvjBv4gkVhpx8a4C1kmp6/Ngd0w9BFKizsTFR0weHM=",
+                "hash": "sha256-XJAQBQjM0JzyeNy5ZU1KpfxE1U6lQtTEhg21riHHJ0E=",
                 "url": "https://pdfium.googlesource.com/pdfium.git",
-                "rev": "6c2c8ce87dfbf69b533e97f78807dff28c95f014"
+                "rev": "4c4f9ab25dab142d7888f3258ab54df24b97b44f"
             },
             "src/third_party/perfetto": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-mkfzktiI1aEOcBF8S1LPH9lEXaWFURV/q9RrcXrP4Yk=",
+                "hash": "sha256-DLu7p6tDImRC7sk+PqIZvyjpOVIZl3I/8rYX498DVTk=",
                 "url": "https://android.googlesource.com/platform/external/perfetto.git",
-                "rev": "271c226bfba2965bb5c72fd6964f016ed1f85c05"
+                "rev": "1e15d01da5d619ca617dcdd870efe3c35046a89c"
             },
             "src/third_party/pthreadpool/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Pfvievhma1rOpbLdSrIX4KaZyRpdvrnjRzzPYl3fDQo=",
+                "hash": "sha256-R4YmNzWEELSkAws/ejmNVxqXDTJwcqjLU/o/HvgRn2E=",
                 "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/pthreadpool.git",
-                "rev": "1787867f6183f056420e532eec640cba25efafea"
+                "rev": "4fe0e1e183925bf8cfa6aae24237e724a96479b8"
             },
             "src/third_party/pyelftools": {
                 "fetcher": "fetchFromGitiles",
@@ -2377,21 +2419,21 @@
             },
             "src/third_party/re2/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-j2v1NVMGqMieHdj/5/mgC+flpWCzxoCwLLmtZa3N5+0=",
+                "hash": "sha256-3eAhiKUIMnpVCEuLWVCVOK3alVsxAJrEWtHBzvdjZkY=",
                 "url": "https://chromium.googlesource.com/external/github.com/google/re2.git",
-                "rev": "7c5e396af825562ec8321fdbf2f1cf276b26e3ae"
+                "rev": "826ad10e58a042faf57d7c329b0fd0a04b797e0b"
             },
             "src/third_party/ruy/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-voWwpijTX+AZJPGH5Rgy4ISKpFV3i86/KJBU9S1IT0g=",
+                "hash": "sha256-gvzxHQEAK6D9qIr/Wf/s6TfBp9QorHlNi4qzSx5Ih/c=",
                 "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git",
-                "rev": "caa244343de289f913c505100e6a463d46c174de"
+                "rev": "cd7b92695b5d3f0c9ff65b865c2a1e19b99d766d"
             },
             "src/third_party/skia": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-y0v/eFfrFlEcVGT1W173bgqlFfWzz32TACAdV68uqrY=",
+                "hash": "sha256-GR9qVnqCCd49Itc74h8e7TMkfttPbXQ9DH8iqEZ2MV0=",
                 "url": "https://skia.googlesource.com/skia.git",
-                "rev": "bb40886d43b5fcbcdfb5587a2d20db418622990a"
+                "rev": "c6835e2d5ff641dad9347ce4c2ff79dbc29cf9aa"
             },
             "src/third_party/smhasher/src": {
                 "fetcher": "fetchFromGitiles",
@@ -2407,15 +2449,15 @@
             },
             "src/third_party/sqlite/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-35rSG+ptFMC62FsprLvAqfXZknKu40Ee6H2qpAcA3wI=",
+                "hash": "sha256-brDFYmagGIH7fvRAP/JaCAMyuFLJKrc0jf0106gofiw=",
                 "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git",
-                "rev": "b7e480172bb2411f9afedefdcc69a57a12f18b7b"
+                "rev": "a5270ae741714a5aad187ba8dcd8bddca39f791f"
             },
             "src/third_party/swiftshader": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-KDBfCZeWZWdx+nkMQO4UxjYl96eLo2qksqC9mL+U+ls=",
+                "hash": "sha256-k0WzWDa/+48ogpbmECNDJKIED4wGu/Hm0DyGnCT9xoU=",
                 "url": "https://swiftshader.googlesource.com/SwiftShader.git",
-                "rev": "b8f1a3ad5f9e077cd4c67e2f612e42bc8ef2fd30"
+                "rev": "2fa7e9b99ae4e70ea5ae2cc9c8d3afb43391384f"
             },
             "src/third_party/text-fragments-polyfill/src": {
                 "fetcher": "fetchFromGitiles",
@@ -2425,81 +2467,87 @@
             },
             "src/third_party/tflite/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-roL+P9fJskz+9h2vK0eYud7J+IFPD1+ByHIL95JPahs=",
+                "hash": "sha256-LOQH+qtltrahcPIutw/zYvEhmvbSjFBWT1mrg/pUD/0=",
                 "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git",
-                "rev": "f3e12f6b28647da499edb69794745f14869f0df9"
+                "rev": "296f1e3cce03308c7fd5cdc7a76fbc3e41ec5214"
             },
             "src/third_party/vulkan-deps": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-disqOHrly1sqqBrDdRbpPlRE9EHSSdMxJXr+Kn7sia0=",
+                "hash": "sha256-bxg82G3dkugLXpTkfk/kNcKHKWn2i8+cCKPgfbaIVZ8=",
                 "url": "https://chromium.googlesource.com/vulkan-deps",
-                "rev": "73a4816c4b451e0e47b35478ba204acb7848b6b9"
+                "rev": "c00c99b8e979ca1b1eba221a60cb1e1d3b12f956"
             },
             "src/third_party/vulkan-deps/glslang/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-EKV4kjmLfChKmx3ozAVNx8CJii6hQGAUTTPQmLevkX0=",
+                "hash": "sha256-QKSPJuIJe44vVNZ8fjqRKc73CZV0fECcnXvY6QRec+0=",
                 "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang",
-                "rev": "6a7ec4be7b8a22ab16cea0f294b5973dbcdd637a"
+                "rev": "57d86ab763da7b2cd1e00ecec8aa697403a8fd20"
             },
             "src/third_party/vulkan-deps/spirv-cross/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-8Xw0pKn6puTpALAkKMHQKbzBLENm37Iep8JnslooJI8=",
+                "hash": "sha256-VxwAs6mNOK/46VIJ0BroR41cNy2ywU+FQCgBatY1sBY=",
                 "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross",
-                "rev": "2d3a152081ca6e6bea7093940d0f81088fe4d01c"
+                "rev": "b82536766d1b81631b126d1ddbe49baf42929bd3"
             },
             "src/third_party/vulkan-deps/spirv-headers/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-JwgV3kDFvljDoWagDRjTIRRZRX5f6r9UUUxnCj1GEyc=",
+                "hash": "sha256-TVfaGY9YjVHvR38OvuphsS68UIpBF21ghBg/2LL3gmE=",
                 "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers",
-                "rev": "6e09e44cd88a5297433411b2ee52f4cf9f50fa90"
+                "rev": "7b0309708da5126b89e4ce6f19835f36dc912f2f"
             },
             "src/third_party/vulkan-deps/spirv-tools/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-/JyTxpmh57gr1OrzCvLvbPL/iqQeplA5mKpvY6+x1Ag=",
+                "hash": "sha256-yUaUBCj3MqBwkGNC8ElJ/uvcm0Pl5BAdiWAw/Pi52Xo=",
                 "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools",
-                "rev": "a63ac9f73d29cd27cdb6e3388d98d1d934e512bb"
+                "rev": "c96fe8b943564fbab3424219d924d21cac2e877a"
             },
             "src/third_party/vulkan-deps/vulkan-headers/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-4erHZKx4jksAtyG8ZHtlVoEY3EqE4p2pEtcGHqv7G7A=",
+                "hash": "sha256-kBOkj7mr4stPXUCBhNJpNL3A+9BebEwrIBEIroxdH8Y=",
                 "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers",
-                "rev": "c1a8560c5cf5e7bd6dbc71fe69b1a317411c36b8"
+                "rev": "217e93c664ec6704ec2d8c36fa116c1a4a1e2d40"
             },
             "src/third_party/vulkan-deps/vulkan-loader/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-PfVpvtBc80ZdL1SUJuoo8BGk90XSXX3l4mRVv3jdARA=",
+                "hash": "sha256-qvpwu4mmmLAFolLZt5q9XYgZff6BHO2Yapg93JUpBVA=",
                 "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader",
-                "rev": "db51885950c860961279168997b5cde12a77abf9"
+                "rev": "0b2b71306aebf1e11304b9f961f9a29ab0234756"
             },
             "src/third_party/vulkan-deps/vulkan-tools/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-L+WNkMyIJNKjCRuhgoU6OvjcfQpwAtPtquIngYYrf1M=",
+                "hash": "sha256-C4xJwYkMqzmYk6lP7SQNXhCt6FyuH4+pqOHltuxJkOA=",
                 "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools",
-                "rev": "0cab6e8055fb0f3a54d8314552fd523a3da57c2c"
+                "rev": "7c6d640a5ca3ab73c1f42d22312f672b54babfaf"
+            },
+            "src/third_party/vulkan-deps/vulkan-utility-libraries/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-gvia+Xb9BpOjPARKo3Sgp85Bfh1roFZ2PzCtXVFYeIU=",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries",
+                "rev": "4cfc176e3242b4dbdfd3f6c5680c5d8f2cb7db45"
             },
             "src/third_party/vulkan-deps/vulkan-validation-layers/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-Ycvj5oOTE1fKHWk5Ubzr4lrzHQUjQXjguR2onXv3T5g=",
+                "hash": "sha256-6YUjvPKjuuZdhBRfM+84btXvAHR2rj7ovocZnLS31JY=",
                 "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers",
-                "rev": "e2be2287f4820ed578d1adeca981736146a74d9a"
+                "rev": "d26b50b03815ff226e6df478b4ddc4b98d8deaee"
             },
             "src/third_party/vulkan_memory_allocator": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-rARuPHa/gEAOTM8/Fnob0bU0Jv+UKLiwe3o0UGWYlME=",
+                "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=",
                 "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git",
-                "rev": "ebe84bec02c041d28f902da0214bf442743fc907"
+                "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21"
             },
             "src/third_party/wayland/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-aVcy7bW1cqEKbowlVgfa9FI8/oG7k5CzPZbRl+cPcX8=",
+                "hash": "sha256-By+3qSfYs4dM4Hcjq2j4ZlSSPhagwqtNl//HKMrc5LY=",
                 "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git",
-                "rev": "a8c7553ec9af6462474524fd2bb4e9a7dc7217dd"
+                "rev": "af7f44122127b86a8c74cb7432909180f4899eaa"
             },
             "src/third_party/wayland-protocols/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-3QK+ZN6IFUFkDxySSoQwP1J3JnTlD7JPaUk6Tr/d/k4=",
+                "hash": "sha256-ljMcY59iOdGYeToadCuQ3t0lrBnsBdot+NiT6e+JJ04=",
                 "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git",
-                "rev": "4624cfaaf563cd7be5e2e2087c8de6d3a48ea867"
+                "rev": "681c33c8547d6aefe24455ba2bffe1c5ae11fee5"
             },
             "src/third_party/wayland-protocols/kde": {
                 "fetcher": "fetchFromGitiles",
@@ -2521,71 +2569,77 @@
             },
             "src/third_party/webgl/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-jn0HFVHFGjbScUchFBynMekZIktPp25k8O/HfjvJHRU=",
+                "hash": "sha256-dubsIPZKBGOzANGvMtQxFKFIHr0laDUGpzgRyEOjHMU=",
                 "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git",
-                "rev": "b934957d2423492a9a8682f48517f07607503f3f"
+                "rev": "f4bf599a8b575df685c31d9c4729a70a04e377ed"
             },
             "src/third_party/webgpu-cts/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-AW0VnZF9W1otb9+UGLGwrjXI6yqz7X0lqAMYtHVX6L8=",
+                "hash": "sha256-RC2t+H44HyIvHLRcZyebSgVZvbmtw0vsy2KJRUlvTKs=",
                 "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git",
-                "rev": "82ed433cbcb632d6700551067a6d3acc6c2ab46e"
+                "rev": "e082b08475761a2ba6a3349dfea72f704c8b68d4"
             },
             "src/third_party/webrtc": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-MoEeE9iXW4bbwhugT40njlxPWO04LomykQk/hZb6TwQ=",
+                "hash": "sha256-KipyGhohU2fQF67dDm4tPeH9xbFC2FNxhU4yiga5pwg=",
                 "url": "https://webrtc.googlesource.com/src.git",
-                "rev": "402f60c2eabefbc7a120ec01659690c7fdf89769"
+                "rev": "6b419a0536b1a0ccfff3682f997c6f19bcbd9bd8"
             },
             "src/third_party/wuffs/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-HP8Vf1C9DuA9H+busf3lFoF9SsYqviLKv0l73CxmNEI=",
+                "hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=",
                 "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git",
-                "rev": "fe9d08f2b6e80af691bfb1a718e144c49a1b9eba"
+                "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8"
             },
             "src/third_party/weston/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-EKl6oIM8Vml9wtSIb9ExFIuuJohbU/rsG3JVS5thaUU=",
+                "hash": "sha256-y2srFaPUOoB2umzpo4+hFfhNlqXM2AoMGOpUy/ZSacg=",
                 "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git",
-                "rev": "420cfd00f2de91de74bd9d4d8348e43c582d29f0"
+                "rev": "ccf29cb237c3ed09c5f370f35239c93d07abfdd7"
             },
             "src/third_party/xdg-utils": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-t3uV9JkkQQIwmezzSoEdTMLSizZdLQB7eLKTRQGH4kQ=",
+                "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=",
                 "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git",
-                "rev": "d80274d5869b17b8c9067a1022e4416ee7ed5e0d"
+                "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44"
             },
             "src/third_party/xnnpack/src": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-vsn3lrog5affus0qxc4TK2Z/tdd/E6hBYeUQRWoDZPQ=",
+                "hash": "sha256-JE3qg3lTpKTLgnpiNw6+wkhVXGx55MiyVDuvEp7Dk0Y=",
                 "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git",
-                "rev": "b9d4073a6913891ce9cbd8965c8d506075d2a45a"
+                "rev": "a68aa0a24b0d3e1c75f2f7c0915b70121cee0470"
             },
             "src/tools/page_cycler/acid3": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-+7Ynz7k/dWdd4Wo7Rjzvc8GY9gTsjzjG3GdNsuDKszY=",
+                "hash": "sha256-s/49EaYQRsyxuLejXc1zGDYTD7uO0ddaQIJBP50Bvw0=",
                 "url": "https://chromium.googlesource.com/chromium/deps/acid3.git",
-                "rev": "6be0a66a1ebd7ebc5abc1b2f405a945f6d871521"
+                "rev": "a926d0a32e02c4c03ae95bb798e6c780e0e184ba"
+            },
+            "src/third_party/zstd/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-9FxRLrcbJoWAd+3Elr9mJ3vG6ilT6ZQZqdY9OiTpcWw=",
+                "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git",
+                "rev": "050fec5c378d676fede8b2171ec5e84f6afa1504"
             },
             "src/v8": {
                 "fetcher": "fetchFromGitiles",
-                "hash": "sha256-FniqsFWFZUclDsA+cOvX+FFxsnVd8lfMVCfrjiOn9fQ=",
+                "hash": "sha256-ssM6nI9E0xF1BT6iIqN7u1kgQe8oGIzsJbFouGJi4Aw=",
                 "url": "https://chromium.googlesource.com/v8/v8.git",
-                "rev": "47bf74e7ed48d3a0d6ea92f46c32be46ebed08fe"
+                "rev": "ddbcde1a3adf125ed72dbfcb4f90040d0c7e5dae"
             },
             "src/third_party/nan": {
                 "fetcher": "fetchFromGitHub",
-                "hash": "sha256-tur5CExvwuSmwqBwH9o8OZWzDuifRybjEb+4/tm6exk=",
+                "hash": "sha256-cwti+BWmF/l/dqa/cN0C587EK4WwRWcWy6gjFVkaMTg=",
                 "owner": "nodejs",
                 "repo": "nan",
-                "rev": "16fa32231e2ccd89d2804b3f765319128b20c4ac"
+                "rev": "e14bdcd1f72d62bca1d541b66da43130384ec213"
             },
             "src/third_party/electron_node": {
                 "fetcher": "fetchFromGitHub",
-                "hash": "sha256-VwG8Q+PZudblqG+m4uuWEowNWlq/MUuyEpFs8k8NbHE=",
+                "hash": "sha256-lGNDwe3IiQMLg5o0AMhLfNpyfu4dXVk05YRO0yMzg0I=",
                 "owner": "nodejs",
                 "repo": "node",
-                "rev": "v18.16.1"
+                "rev": "v20.9.0"
             },
             "src/third_party/squirrel.mac": {
                 "fetcher": "fetchFromGitHub",
@@ -2607,24 +2661,31 @@
                 "owner": "Mantle",
                 "repo": "Mantle",
                 "rev": "78d3966b3c331292ea29ec38661b25df0a245948"
+            },
+            "src/third_party/engflow-reclient-configs": {
+                "fetcher": "fetchFromGitHub",
+                "hash": "sha256-aZXYPj9KYBiZnljqOLlWJWS396Fg3EhjiQLZmkwCBsY=",
+                "owner": "EngFlow",
+                "repo": "reclient-configs",
+                "rev": "955335c30a752e9ef7bff375baab5e0819b6c00d"
             }
         },
-        "version": "26.6.9",
-        "modules": "116",
-        "chrome": "116.0.5845.228",
-        "node": "18.16.1",
+        "version": "29.1.2",
+        "modules": "121",
+        "chrome": "122.0.6261.112",
+        "node": "20.9.0",
         "chromium": {
-            "version": "116.0.5845.228",
+            "version": "122.0.6261.112",
             "deps": {
                 "gn": {
-                    "version": "2023-06-09",
+                    "version": "2024-01-22",
                     "url": "https://gn.googlesource.com/gn",
-                    "rev": "4bd1a77e67958fb7f6739bd4542641646f264e5d",
-                    "hash": "sha256-XP+NQG8kjzXPzQ25YaZiPymexZwAGwhpodqgdTWWCZI="
+                    "rev": "f99e015ac35f689cfdbf46e4eb174e5d2da78d8e",
+                    "hash": "sha256-UhdDsq9JyP0efGpAaJ/nLp723BbjM6pkFPcAnQbgMKY="
                 }
             }
         },
-        "chromium_npm_hash": "sha256-5cjqpYB45nw2gop54VP+tL7/0w63nQGfQ4x6a6KS7XQ=",
-        "electron_yarn_hash": "05wkb1m0yjbai4153y49kwr1v2lj14fg75aqlvmmrhf3bxp9lg5g"
+        "electron_yarn_hash": "0spwnax6g3050z2bjylzs67l7m551is86nizzy4hp0306v57xdpz",
+        "chromium_npm_hash": "sha256-9eFsK673j3pTDOcsU35RN4hagFygA/v/ahCqVVEV0Rs="
     }
 }
diff --git a/nixpkgs/pkgs/development/tools/electron/version.patch b/nixpkgs/pkgs/development/tools/electron/version.patch
deleted file mode 100644
index 00562225d767..000000000000
--- a/nixpkgs/pkgs/development/tools/electron/version.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff --git a/electron/BUILD.gn b/electron/BUILD.gn
-index c905891eb8..f2cf11fe88 100644
---- a/electron/BUILD.gn
-+++ b/electron/BUILD.gn
-@@ -111,8 +111,6 @@ electron_version = exec_script("script/print-version.py",
-                                [],
-                                "trim string",
-                                [
--                                 ".git/packed-refs",
--                                 ".git/HEAD",
-                                  "script/lib/get-version.js",
-                                ])
- 
-diff --git a/electron/script/lib/get-version.js b/electron/script/lib/get-version.js
-index 45a120482b..ddaf8ab60e 100644
---- a/electron/script/lib/get-version.js
-+++ b/electron/script/lib/get-version.js
-@@ -1,22 +1 @@
--const { spawnSync } = require('child_process');
--const path = require('path');
--
--module.exports.getElectronVersion = () => {
--  // Find the nearest tag to the current HEAD
--  // This is equivilant to our old logic of "use a value in package.json" for the following reasons
--  //
--  // 1. Whenever we updated the package.json we ALSO pushed a tag with the same version
--  // 2. Whenever we _reverted_ a bump all we actually did was push a commit that deleted the tag and changed the version number back
--  //
--  // The only difference in the "git describe" technique is that technically a commit can "change" it's version
--  // number if a tag is created / removed retroactively.  i.e. the first time a commit is pushed it will be 1.2.3
--  // and after the tag is made rebuilding the same commit will result in it being 1.2.4
--  const output = spawnSync('git', ['describe', '--tags', '--abbrev=0'], {
--    cwd: path.resolve(__dirname, '..', '..')
--  });
--  if (output.status !== 0) {
--    console.error(output.stderr);
--    throw new Error('Failed to get current electron version');
--  }
--  return output.stdout.toString().trim().replace(/^v/g, '');
--};
-+module.exports.getElectronVersion = () => "@version@";
-
diff --git a/nixpkgs/pkgs/development/tools/eliot-tree/default.nix b/nixpkgs/pkgs/development/tools/eliot-tree/default.nix
index 21dfccd33e42..9a1a8978598b 100644
--- a/nixpkgs/pkgs/development/tools/eliot-tree/default.nix
+++ b/nixpkgs/pkgs/development/tools/eliot-tree/default.nix
@@ -32,6 +32,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/jonathanj/eliottree";
     description = "Render Eliot logs as an ASCII tree";
+    mainProgram = "eliot-tree";
     license = licenses.mit;
     maintainers = [ maintainers.dpausp ];
   };
diff --git a/nixpkgs/pkgs/development/tools/enochecker-test/default.nix b/nixpkgs/pkgs/development/tools/enochecker-test/default.nix
index ae1fb411861a..7e0f25317eac 100644
--- a/nixpkgs/pkgs/development/tools/enochecker-test/default.nix
+++ b/nixpkgs/pkgs/development/tools/enochecker-test/default.nix
@@ -61,6 +61,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Automatically test services/checker using the enochecker API";
+    mainProgram = "enochecker_test";
     homepage = "https://github.com/enowars/enochecker_test";
     changelog = "https://github.com/enowars/enochecker_test/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/errcheck/default.nix b/nixpkgs/pkgs/development/tools/errcheck/default.nix
index 4ebcb8169527..be79ea2f574d 100644
--- a/nixpkgs/pkgs/development/tools/errcheck/default.nix
+++ b/nixpkgs/pkgs/development/tools/errcheck/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Checks for unchecked errors in go programs";
+    mainProgram = "errcheck";
     homepage = "https://github.com/kisielk/errcheck";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/nixpkgs/pkgs/development/tools/esbuild/default.nix b/nixpkgs/pkgs/development/tools/esbuild/default.nix
index 246acd48bdf0..49463ccda004 100644
--- a/nixpkgs/pkgs/development/tools/esbuild/default.nix
+++ b/nixpkgs/pkgs/development/tools/esbuild/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "esbuild";
-  version = "0.20.1";
+  version = "0.20.2";
 
   src = fetchFromGitHub {
     owner = "evanw";
     repo = "esbuild";
     rev = "v${version}";
-    hash = "sha256-p8ScB1mFwcc+gqmVFV/17yExP6DYZxMbHDHEiWM7/Xs=";
+    hash = "sha256-h/Vqwax4B4nehRP9TaYbdixAZdb1hx373dNxNHvDrtY=";
   };
 
   vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
diff --git a/nixpkgs/pkgs/development/tools/evans/default.nix b/nixpkgs/pkgs/development/tools/evans/default.nix
index a9ea7bc2f8a4..89ed0fbfb173 100644
--- a/nixpkgs/pkgs/development/tools/evans/default.nix
+++ b/nixpkgs/pkgs/development/tools/evans/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "More expressive universal gRPC client";
+    mainProgram = "evans";
     homepage = "https://evans.syfm.me/";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ diogox ];
diff --git a/nixpkgs/pkgs/development/tools/exhaustive/default.nix b/nixpkgs/pkgs/development/tools/exhaustive/default.nix
index 7445ae5236db..078d886b0973 100644
--- a/nixpkgs/pkgs/development/tools/exhaustive/default.nix
+++ b/nixpkgs/pkgs/development/tools/exhaustive/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Check exhaustiveness of switch statements of enum-like constants in Go code";
+    mainProgram = "exhaustive";
     homepage = "https://github.com/nishanths/exhaustive";
     license = licenses.bsd2;
     maintainers = with maintainers; [ meain ];
diff --git a/nixpkgs/pkgs/development/tools/explain/default.nix b/nixpkgs/pkgs/development/tools/explain/default.nix
index 47a9622be944..66334b12d996 100644
--- a/nixpkgs/pkgs/development/tools/explain/default.nix
+++ b/nixpkgs/pkgs/development/tools/explain/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library and utility to explain system call errors";
+    mainProgram = "explain";
     homepage = "https://libexplain.sourceforge.net";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ McSinyx ];
diff --git a/nixpkgs/pkgs/development/tools/extism-cli/default.nix b/nixpkgs/pkgs/development/tools/extism-cli/default.nix
index 8787a2674447..f683338c69ab 100644
--- a/nixpkgs/pkgs/development/tools/extism-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/extism-cli/default.nix
@@ -7,18 +7,18 @@
 
 buildGoModule rec {
   pname = "extism-cli";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "extism";
     repo = "cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-QC21BrT7uAbKPyLGjx0lBnQHN1nHek+BdCJ7EpJGV6s=";
+    hash = "sha256-xQtCg1U2wwH2zSWPyIfGLluATi8hYQVWy6lxgD6BDNA=";
   };
 
   modRoot = "./extism";
 
-  vendorHash = "sha256-UaMPtWmBKCcBR2KiubhW6F7knP6dM8sXQzUEaT59cRQ=";
+  vendorHash = "sha256-toDT9zpe/5QOCoPl/DFxdNsQDCkat06T3UHbCY+sW+A=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/development/tools/faas-cli/default.nix b/nixpkgs/pkgs/development/tools/faas-cli/default.nix
index 9eaadd43cedb..35db119791cc 100644
--- a/nixpkgs/pkgs/development/tools/faas-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/faas-cli/default.nix
@@ -58,6 +58,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Official CLI for OpenFaaS ";
+    mainProgram = "faas-cli";
     homepage = "https://github.com/openfaas/faas-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ welteki techknowlogick ];
diff --git a/nixpkgs/pkgs/development/tools/fable/default.nix b/nixpkgs/pkgs/development/tools/fable/default.nix
index 28eda474ce32..999b9c5f9df0 100644
--- a/nixpkgs/pkgs/development/tools/fable/default.nix
+++ b/nixpkgs/pkgs/development/tools/fable/default.nix
@@ -9,6 +9,7 @@ buildDotnetGlobalTool {
 
   meta = with lib; {
     description = "Fable is an F# to JavaScript compiler";
+    mainProgram = "fable";
     homepage = "https://github.com/fable-compiler/fable";
     changelog = "https://github.com/fable-compiler/fable/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/faq/default.nix b/nixpkgs/pkgs/development/tools/faq/default.nix
index 6a36ba73570b..c955174a4aff 100644
--- a/nixpkgs/pkgs/development/tools/faq/default.nix
+++ b/nixpkgs/pkgs/development/tools/faq/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "faq is a tool intended to be a more flexible jq, supporting additional formats";
+    mainProgram = "faq";
     homepage = "https://github.com/jzelinskie/faq";
     license = licenses.asl20;
     maintainers = with maintainers; [ quentin-m ];
diff --git a/nixpkgs/pkgs/development/tools/fastddsgen/default.nix b/nixpkgs/pkgs/development/tools/fastddsgen/default.nix
index b5a436d3be9f..ec4523e270c2 100644
--- a/nixpkgs/pkgs/development/tools/fastddsgen/default.nix
+++ b/nixpkgs/pkgs/development/tools/fastddsgen/default.nix
@@ -83,6 +83,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Fast-DDS IDL code generator tool";
+    mainProgram = "fastddsgen";
     homepage = "https://github.com/eProsima/Fast-DDS-Gen";
     license = licenses.asl20;
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/tools/fastgron/default.nix b/nixpkgs/pkgs/development/tools/fastgron/default.nix
index 3e30d87d0dde..5b5796cc7014 100644
--- a/nixpkgs/pkgs/development/tools/fastgron/default.nix
+++ b/nixpkgs/pkgs/development/tools/fastgron/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     changelog = "https://github.com/adamritter/fastgron/releases/tag/${finalAttrs.src.rev}";
     description = "High-performance JSON to GRON (greppable, flattened JSON) converter";
+    mainProgram = "fastgron";
     homepage = "https://github.com/adamritter/fastgron";
     license = licenses.mit;
     maintainers = with maintainers; [ zowoq ];
diff --git a/nixpkgs/pkgs/development/tools/fatcat/default.nix b/nixpkgs/pkgs/development/tools/fatcat/default.nix
index d5caaea08a4b..fe333dc9e10d 100644
--- a/nixpkgs/pkgs/development/tools/fatcat/default.nix
+++ b/nixpkgs/pkgs/development/tools/fatcat/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "FAT filesystems explore, extract, repair, and forensic tool";
+    mainProgram = "fatcat";
     homepage = "https://github.com/Gregwar/fatcat";
     license = licenses.mit;
     maintainers = with maintainers; [ cynerd ];
diff --git a/nixpkgs/pkgs/development/tools/fblog/default.nix b/nixpkgs/pkgs/development/tools/fblog/default.nix
index b24981ffc49c..7294b199273c 100644
--- a/nixpkgs/pkgs/development/tools/fblog/default.nix
+++ b/nixpkgs/pkgs/development/tools/fblog/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A small command-line JSON log viewer";
+    mainProgram = "fblog";
     homepage = "https://github.com/brocode/fblog";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/firebase-tools/default.nix b/nixpkgs/pkgs/development/tools/firebase-tools/default.nix
index fd455607e098..68968222bd3e 100644
--- a/nixpkgs/pkgs/development/tools/firebase-tools/default.nix
+++ b/nixpkgs/pkgs/development/tools/firebase-tools/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "firebase-tools";
-  version = "13.4.0";
+  version = "13.5.2";
 
   src = fetchFromGitHub {
     owner = "firebase";
     repo = "firebase-tools";
     rev = "v${version}";
-    hash = "sha256-15u6upX9xPSlXhRrCxqmAuzjkfnpkXk8vwt1pI7c7Tk=";
+    hash = "sha256-uHh9schpVs9PNivZkIp8geG60MrEDwrlo58WN3499OM=";
   };
 
-  npmDepsHash = "sha256-on4NKTGpdEb9l0JoybbssUN6z63Yg5AT8sHeGRGUEDA=";
+  npmDepsHash = "sha256-O3+9qqXbNLVqMP6Grh7p5rHWjOc3stG1e6zBxZSt/5M=";
 
   postPatch = ''
     ln -s npm-shrinkwrap.json package-lock.json
diff --git a/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix b/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix
index c3c59f1b2ba8..5752925e1451 100644
--- a/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix
+++ b/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix
@@ -3,18 +3,18 @@
 , substituteAll
 , nixosTests
 
-, autoreconfHook
-, docbook_xml_dtd_412
-, docbook_xml_dtd_42
-, docbook_xml_dtd_43
+, docbook_xml_dtd_45
 , docbook_xsl
 , gettext
 , libxml2
 , libxslt
 , pkg-config
 , xmlto
+, meson
+, ninja
 
 , acl
+, appstream
 , breezy
 , binutils
 , bzip2
@@ -36,23 +36,24 @@
 , libyaml
 , ostree
 , patch
-, python2
 , rpm
 , unzip
+, attr
 }:
 
 let
   installed_testdir = "${placeholder "installedTests"}/libexec/installed-tests/flatpak-builder";
-  installed_test_metadir = "${placeholder "installedTests"}/share/installed-tests/flatpak-builder";
-in stdenv.mkDerivation rec {
+in stdenv.mkDerivation (finalAttrs: {
   pname = "flatpak-builder";
-  version = "1.2.3";
+  version = "1.4.2";
 
   outputs = [ "out" "doc" "man" "installedTests" ];
 
+  # fetchFromGitHub fetches an archive which does not contain the full source (https://github.com/flatpak/flatpak-builder/issues/558)
   src = fetchurl {
-    url = "https://github.com/flatpak/flatpak-builder/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-4leCWkf3o+ceMPsPgPLZrG5IAfdG9VLfrw5WTj7jUcg=";
+    # TODO: remove the '-fixed-libglnx' in the next release
+    url = "https://github.com/flatpak/flatpak-builder/releases/download/${finalAttrs.version}/flatpak-builder-${finalAttrs.version}-fixed-libglnx.tar.xz";
+    hash = "sha256-wEG5dOA6LC082oig7+Hs9p+a30KhdY6sNB1VXnedBZY=";
   };
 
   patches = [
@@ -76,19 +77,17 @@ in stdenv.mkDerivation rec {
       euelfcompress = "${elfutils}/bin/eu-elfcompress";
     })
 
-    # The test scripts in Flatpak repo were updated so we are basing
-    # this on our patch for Flatpak 0.99.
     (substituteAll {
       src = ./fix-test-paths.patch;
       inherit glibcLocales;
-      # FIXME use python3 for tests that rely on python2
-      # inherit python2;
     })
+    ./fix-test-prefix.patch
   ];
 
   nativeBuildInputs = [
-    autoreconfHook
-    docbook_xml_dtd_43
+    meson
+    ninja
+    docbook_xml_dtd_45
     docbook_xsl
     gettext
     libxml2
@@ -99,6 +98,7 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [
     acl
+    appstream
     bzip2
     curl
     debugedit
@@ -113,14 +113,9 @@ in stdenv.mkDerivation rec {
     ostree
   ];
 
-  configureFlags = [
-    "--enable-installed-tests"
-    "--with-system-debugedit"
-  ];
-
-  makeFlags = [
-    "installed_testdir=${installed_testdir}"
-    "installed_test_metadir=${installed_test_metadir}"
+  mesonFlags = [
+    "-Dinstalled_tests=true"
+    "-Dinstalled_test_prefix=${placeholder "installedTests"}"
   ];
 
   # Some scripts used by tests  need to use shebangs that are available in Flatpak runtimes.
@@ -130,7 +125,7 @@ in stdenv.mkDerivation rec {
 
   # Installed tests
   postFixup = ''
-    for file in ${installed_testdir}/{test-builder.sh,test-builder-python.sh}; do
+    for file in ${installed_testdir}/{test-builder.sh,test-builder-python.sh,test-builder-deprecated.sh}; do
       patchShebangs $file
     done
   '';
@@ -139,8 +134,10 @@ in stdenv.mkDerivation rec {
     installedTestsDependencies = [
       gnupg
       ostree
-      # FIXME python2
       gnumake
+      attr
+      libxml2
+      appstream
     ];
 
     tests = {
@@ -150,9 +147,10 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool to build flatpaks from source";
+    mainProgram = "flatpak-builder";
     homepage = "https://github.com/flatpak/flatpak-builder";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ arthsmn ];
     platforms = platforms.linux;
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/tools/flatpak-builder/fix-paths.patch b/nixpkgs/pkgs/development/tools/flatpak-builder/fix-paths.patch
index c0df2c6cbe7e..10b630156681 100644
--- a/nixpkgs/pkgs/development/tools/flatpak-builder/fix-paths.patch
+++ b/nixpkgs/pkgs/development/tools/flatpak-builder/fix-paths.patch
@@ -43,28 +43,28 @@ index ef517adb..6ab095f0 100644
  
    return res;
 diff --git a/src/builder-source-archive.c b/src/builder-source-archive.c
-index 3c694e57..0de62318 100644
+index ed66d5b..9ca9486 100644
 --- a/src/builder-source-archive.c
 +++ b/src/builder-source-archive.c
-@@ -443,7 +443,7 @@ tar (GFile   *dir,
+@@ -484,7 +484,7 @@ tar (GFile   *dir,
    va_list ap;
- 
+
    va_start (ap, error);
 -  res = flatpak_spawn (dir, NULL, 0, error, "tar", ap);
 +  res = flatpak_spawn (dir, NULL, 0, error, "@tar@", ap);
    va_end (ap);
- 
-   return res;
-@@ -458,7 +458,7 @@ unzip (GFile   *dir,
-   va_list ap;
- 
-   va_start (ap, error);
--  res = flatpak_spawn (dir, NULL, 0, error, "unzip", ap);
-+  res = flatpak_spawn (dir, NULL, 0, error, "@unzip@", ap);
-   va_end (ap);
- 
+
    return res;
-@@ -483,7 +483,7 @@ unrpm (GFile   *dir,
+@@ -496,7 +496,7 @@ unzip (GFile       *dir,
+        GError     **error)
+ {
+   gboolean res;
+-  const char *argv[] = { "unzip", "-q", zip_path, NULL };
++  const char *argv[] = { "@unzip@", "-q", zip_path, NULL };
+
+   res = flatpak_spawnv (dir, NULL, 0, error, argv, NULL);
+
+@@ -522,7 +522,7 @@ unrpm (GFile   *dir,
         GError **error)
  {
    gboolean res;
@@ -73,14 +73,14 @@ index 3c694e57..0de62318 100644
        "sh", /* shell's $0 */
        rpm_path, /* shell's $1 */
        NULL };
-@@ -631,7 +631,7 @@ git (GFile   *dir,
+@@ -677,7 +677,7 @@ git (GFile   *dir,
    va_list ap;
- 
+
    va_start (ap, error);
 -  res = flatpak_spawn (dir, NULL, 0, error, "git", ap);
 +  res = flatpak_spawn (dir, NULL, 0, error, "@git@", ap);
    va_end (ap);
- 
+
    return res;
 diff --git a/src/builder-source-bzr.c b/src/builder-source-bzr.c
 index ceeec94a..8abe6f53 100644
diff --git a/nixpkgs/pkgs/development/tools/flatpak-builder/fix-test-prefix.patch b/nixpkgs/pkgs/development/tools/flatpak-builder/fix-test-prefix.patch
new file mode 100644
index 000000000000..fcfc5dcaddcf
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/flatpak-builder/fix-test-prefix.patch
@@ -0,0 +1,29 @@
+diff --git a/meson_options.txt b/meson_options.txt
+index d5a0bd22..7d69d3d2 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -22,6 +22,12 @@ option(
+   value: true,
+   description: 'Whether to build and run unit tests'
+ )
++option(
++  'installed_test_prefix',
++  type: 'string',
++  value: '',
++  description: 'Prefix for installed tests'
++)
+ option(
+   'fuse',
+   type: 'combo',
+diff --git a/tests/meson.build b/tests/meson.build
+index 6ec405d1..f43c165c 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -1,5 +1,5 @@
+-installed_testdir = get_option('prefix') / get_option('libexecdir') / 'installed-tests' / 'flatpak-builder'
+-installed_tests_metadir = get_option('prefix') / get_option('datadir') / 'installed-tests' / 'flatpak-builder'
++installed_testdir = get_option('installed_test_prefix') / get_option('libexecdir') / 'installed-tests' / 'flatpak-builder'
++installed_tests_metadir = get_option('installed_test_prefix') / get_option('datadir') / 'installed-tests' / 'flatpak-builder'
+
+ test_env = environment()
+ test_env.set('FLATPAK_TESTS_DEBUG', '1')
diff --git a/nixpkgs/pkgs/development/tools/flawfinder/default.nix b/nixpkgs/pkgs/development/tools/flawfinder/default.nix
index 0129cf73741b..09560acc1d21 100644
--- a/nixpkgs/pkgs/development/tools/flawfinder/default.nix
+++ b/nixpkgs/pkgs/development/tools/flawfinder/default.nix
@@ -19,6 +19,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to examines C/C++ source code for security flaws";
+    mainProgram = "flawfinder";
     homepage = "https://dwheeler.com/flawfinder/";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/tools/flip-link/default.nix b/nixpkgs/pkgs/development/tools/flip-link/default.nix
index 794d87a482d3..deb13d050b49 100644
--- a/nixpkgs/pkgs/development/tools/flip-link/default.nix
+++ b/nixpkgs/pkgs/development/tools/flip-link/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Adds zero-cost stack overflow protection to your embedded programs";
+    mainProgram = "flip-link";
     homepage = "https://github.com/knurling-rs/flip-link";
     changelog = "https://github.com/knurling-rs/flip-link/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/tools/flootty/default.nix b/nixpkgs/pkgs/development/tools/flootty/default.nix
index 42829649c605..9440b0b61946 100644
--- a/nixpkgs/pkgs/development/tools/flootty/default.nix
+++ b/nixpkgs/pkgs/development/tools/flootty/default.nix
@@ -11,6 +11,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A collaborative terminal. In practice, it's similar to a shared screen or tmux session";
+    mainProgram = "flootty";
     homepage = "https://floobits.com/help/flootty";
     license = licenses.asl20;
     maintainers = with maintainers; [ sellout ];
diff --git a/nixpkgs/pkgs/development/tools/fnm/default.nix b/nixpkgs/pkgs/development/tools/fnm/default.nix
index 3cb367e820fe..75bde7489678 100644
--- a/nixpkgs/pkgs/development/tools/fnm/default.nix
+++ b/nixpkgs/pkgs/development/tools/fnm/default.nix
@@ -36,6 +36,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Fast and simple Node.js version manager";
+    mainProgram = "fnm";
     homepage = "https://github.com/Schniz/fnm";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ kidonng ];
diff --git a/nixpkgs/pkgs/development/tools/fprettify/default.nix b/nixpkgs/pkgs/development/tools/fprettify/default.nix
index a5eed6bdc28c..b2c37f163b26 100644
--- a/nixpkgs/pkgs/development/tools/fprettify/default.nix
+++ b/nixpkgs/pkgs/development/tools/fprettify/default.nix
@@ -21,6 +21,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "An auto-formatter for modern Fortran code that imposes strict whitespace formatting, written in Python.";
+    mainProgram = "fprettify";
     homepage = "https://pypi.org/project/fprettify/";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fabiangd ];
diff --git a/nixpkgs/pkgs/development/tools/fq/default.nix b/nixpkgs/pkgs/development/tools/fq/default.nix
index 69aa0299c931..661757d1513d 100644
--- a/nixpkgs/pkgs/development/tools/fq/default.nix
+++ b/nixpkgs/pkgs/development/tools/fq/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "jq for binary formats";
+    mainProgram = "fq";
     homepage = "https://github.com/wader/fq";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
diff --git a/nixpkgs/pkgs/development/tools/frece/default.nix b/nixpkgs/pkgs/development/tools/frece/default.nix
index 64de6d162f0a..c8b6a3a85f9c 100644
--- a/nixpkgs/pkgs/development/tools/frece/default.nix
+++ b/nixpkgs/pkgs/development/tools/frece/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Maintain a database sorted by frecency (frequency + recency)";
+    mainProgram = "frece";
     homepage = "https://github.com/YodaEmbedding/frece";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/frugal/default.nix b/nixpkgs/pkgs/development/tools/frugal/default.nix
index 27ea8143e7d0..0bea6b4e5785 100644
--- a/nixpkgs/pkgs/development/tools/frugal/default.nix
+++ b/nixpkgs/pkgs/development/tools/frugal/default.nix
@@ -2,21 +2,22 @@
 
 buildGoModule rec {
   pname = "frugal";
-  version = "3.17.8";
+  version = "3.17.9";
 
   src = fetchFromGitHub {
     owner = "Workiva";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-R9v/qWR+XuirMT2wM6UR2LrSpehkEtoRG73bBlni03k=";
+    sha256 = "sha256-VNzTrJ5sY6JHfUXLlY3LOQYfzoWPYltPQBZWx9FopSU=";
   };
 
   subPackages = [ "." ];
 
-  vendorHash = "sha256-BC8G41SWWecNiqj/8iez3debvpU9+PWHUya8V77zKj8=";
+  vendorHash = "sha256-5o2r392gT5mNvO7mFVRgOGgoy5d+1K2kIitBo+dzhFQ=";
 
   meta = with lib; {
     description = "Thrift improved";
+    mainProgram = "frugal";
     homepage = "https://github.com/Workiva/frugal";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ diogox ];
diff --git a/nixpkgs/pkgs/development/tools/fsautocomplete/default.nix b/nixpkgs/pkgs/development/tools/fsautocomplete/default.nix
index a1e846f482f8..b6f174bd5c70 100644
--- a/nixpkgs/pkgs/development/tools/fsautocomplete/default.nix
+++ b/nixpkgs/pkgs/development/tools/fsautocomplete/default.nix
@@ -30,6 +30,7 @@ buildDotnetModule rec {
 
   meta = with lib; {
     description = "The FsAutoComplete project (FSAC) provides a backend service for rich editing or intellisense features for editors.";
+    mainProgram = "fsautocomplete";
     homepage = "https://github.com/fsharp/FsAutoComplete";
     changelog = "https://github.com/fsharp/FsAutoComplete/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/fundoc/default.nix b/nixpkgs/pkgs/development/tools/fundoc/default.nix
index b53298046a21..72c572e3e4f1 100644
--- a/nixpkgs/pkgs/development/tools/fundoc/default.nix
+++ b/nixpkgs/pkgs/development/tools/fundoc/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Language agnostic documentation generator";
+    mainProgram = "fundoc";
     homepage = "https://github.com/daynin/fundoc";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/fusee-launcher/default.nix b/nixpkgs/pkgs/development/tools/fusee-launcher/default.nix
index 117bd0c9450e..776f5c064aef 100644
--- a/nixpkgs/pkgs/development/tools/fusee-launcher/default.nix
+++ b/nixpkgs/pkgs/development/tools/fusee-launcher/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/Cease-and-DeSwitch/fusee-launcher";
     description = "Work-in-progress launcher for one of the Tegra X1 bootROM exploits";
+    mainProgram = "fusee-launcher";
     license = licenses.gpl2;
     maintainers = with maintainers; [ pneumaticat ];
   };
diff --git a/nixpkgs/pkgs/development/tools/fusee-nano/default.nix b/nixpkgs/pkgs/development/tools/fusee-nano/default.nix
index e1c552002619..67706b726f97 100644
--- a/nixpkgs/pkgs/development/tools/fusee-nano/default.nix
+++ b/nixpkgs/pkgs/development/tools/fusee-nano/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "A minimalist re-implementation of the Fusée Gelée exploit";
+    mainProgram = "fusee-nano";
     homepage = "https://github.com/DavidBuchanan314/fusee-nano";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/fx/default.nix b/nixpkgs/pkgs/development/tools/fx/default.nix
index 05589b5c9747..3448a41378ea 100644
--- a/nixpkgs/pkgs/development/tools/fx/default.nix
+++ b/nixpkgs/pkgs/development/tools/fx/default.nix
@@ -2,19 +2,20 @@
 
 buildGoModule rec {
   pname = "fx";
-  version = "31.0.0";
+  version = "32.0.0";
 
   src = fetchFromGitHub {
     owner = "antonmedv";
     repo = pname;
     rev = version;
-    hash = "sha256-AVaMViu+65xyYW3TzIigNXf5FfKb2v+TU/BMZqCX/Js=";
+    hash = "sha256-AbMm/vXt/s/evTxB2oE/6qGbfNtNXVSiYj4n4261iNk=";
   };
 
-  vendorHash = "sha256-kE6JotKP3YQ0B3HvyNU3fTvuwbnqTW8cwGVBYpiBvso=";
+  vendorHash = "sha256-fnWjeQo5370ofFRQRmUnqvj2vutcZcnKar+/sTS2mJw=";
 
   meta = with lib; {
     description = "Terminal JSON viewer";
+    mainProgram = "fx";
     homepage = "https://github.com/antonmedv/fx";
     changelog = "https://github.com/antonmedv/fx/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/galen/default.nix b/nixpkgs/pkgs/development/tools/galen/default.nix
index d1e02f411cd3..581a6f99374e 100644
--- a/nixpkgs/pkgs/development/tools/galen/default.nix
+++ b/nixpkgs/pkgs/development/tools/galen/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://galenframework.com";
     description = "Automated layout testing for websites";
+    mainProgram = "galen";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/tools/gauge/default.nix b/nixpkgs/pkgs/development/tools/gauge/default.nix
index 2a2b17e73ed6..865588fcd1b2 100644
--- a/nixpkgs/pkgs/development/tools/gauge/default.nix
+++ b/nixpkgs/pkgs/development/tools/gauge/default.nix
@@ -2,21 +2,22 @@
 
 buildGoModule rec {
   pname = "gauge";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "getgauge";
     repo = "gauge";
     rev = "v${version}";
-    hash = "sha256-ymnyoQRMr3s74PnDSmXCoWGSMBhxy/CRDpRvEZHOrFU=";
+    hash = "sha256-Hefhhexy3Kl4fmYXlNBgZBSdOGPJefS1BjKWoblIVaw=";
   };
 
-  vendorHash = "sha256-5kBjxhmBrC5ZzD7CSzRvIzQrJYRRU/X+n9L9JPvyJkY=";
+  vendorHash = "sha256-csS7lRTczno77LIDq2q3DeuJxQcOLr1cQf11NuWixG8=";
 
   excludedPackages = [ "build" "man" ];
 
   meta = with lib; {
     description = "Light weight cross-platform test automation";
+    mainProgram = "gauge";
     homepage = "https://gauge.org";
     license = licenses.asl20;
     maintainers = [ maintainers.vdemeester ];
diff --git a/nixpkgs/pkgs/development/tools/gci/default.nix b/nixpkgs/pkgs/development/tools/gci/default.nix
index 105d55ecaa9c..1b5f2f0be97e 100644
--- a/nixpkgs/pkgs/development/tools/gci/default.nix
+++ b/nixpkgs/pkgs/development/tools/gci/default.nix
@@ -5,16 +5,16 @@
 }:
 buildGoModule rec {
   pname = "gci";
-  version = "0.13.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "daixiang0";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-k+Keyuz/P3WmLg6jcGC/1gv8WWqMbDQdsFjbiG/hpT4=";
+    sha256 = "sha256-02dJ8qiQqUojAlpAQOI/or37nrwgE7phJCMDWr+LI8s=";
   };
 
-  vendorHash = "sha256-g7htGfU6C2rzfu8hAn6SGr0ZRwB8ZzSf9CgHYmdupE8=";
+  vendorHash = "sha256-7SXTMzc59f9JEyud0UuSkMdqBig5xb4FM5qSamBPMJQ=";
 
   meta = with lib; {
     description = "Controls golang package import order and makes it always deterministic";
diff --git a/nixpkgs/pkgs/development/tools/gcov2lcov/default.nix b/nixpkgs/pkgs/development/tools/gcov2lcov/default.nix
index 5ee3476eac2c..0ac499923f2a 100644
--- a/nixpkgs/pkgs/development/tools/gcov2lcov/default.nix
+++ b/nixpkgs/pkgs/development/tools/gcov2lcov/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Convert go coverage files to lcov format";
+    mainProgram = "gcov2lcov";
     homepage = "https://github.com/jandelgado/gcov2lcov";
     changelog = "https://github.com/jandelgado/gcov2lcov/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/gdlv/default.nix b/nixpkgs/pkgs/development/tools/gdlv/default.nix
index 0992dc90b686..0d2cc49c9e02 100644
--- a/nixpkgs/pkgs/development/tools/gdlv/default.nix
+++ b/nixpkgs/pkgs/development/tools/gdlv/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "GUI frontend for Delve";
+    mainProgram = "gdlv";
     homepage = "https://github.com/aarzilli/gdlv";
     maintainers = with maintainers; [ mmlb ];
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/tools/gen-license/default.nix b/nixpkgs/pkgs/development/tools/gen-license/default.nix
index a3495866576d..fda5322d4cca 100644
--- a/nixpkgs/pkgs/development/tools/gen-license/default.nix
+++ b/nixpkgs/pkgs/development/tools/gen-license/default.nix
@@ -20,6 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Create licenses for your projects right from your terminal";
+    mainProgram = "gen-license";
     homepage = "https://github.com/nexxeln/license-generator";
     license = licenses.mit;
     maintainers = [ maintainers.ryanccn ];
diff --git a/nixpkgs/pkgs/development/tools/gendef/default.nix b/nixpkgs/pkgs/development/tools/gendef/default.nix
index 9b2418486f17..431c2a644b12 100644
--- a/nixpkgs/pkgs/development/tools/gendef/default.nix
+++ b/nixpkgs/pkgs/development/tools/gendef/default.nix
@@ -10,10 +10,11 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-0vbAHSN+uwxoXXZtbuycP67PxjcB8Ftxd/Oij1gqE3Y=";
   };
 
-  sourceRoot = "mingw-w64/mingw-w64-tools/gendef";
+  sourceRoot = "${finalAttrs.src.name}/mingw-w64-tools/gendef";
 
   meta = {
     description = "A tool which generate def files from DLLs";
+    mainProgram = "gendef";
     homepage = "https://sourceforge.net/p/mingw-w64/wiki2/gendef/";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ hughobrien ];
diff --git a/nixpkgs/pkgs/development/tools/ginkgo/default.nix b/nixpkgs/pkgs/development/tools/ginkgo/default.nix
index 4805760ec3e3..b5472d796e7a 100644
--- a/nixpkgs/pkgs/development/tools/ginkgo/default.nix
+++ b/nixpkgs/pkgs/development/tools/ginkgo/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ginkgo";
-  version = "2.16.0";
+  version = "2.17.0";
 
   src = fetchFromGitHub {
     owner = "onsi";
     repo = "ginkgo";
     rev = "v${version}";
-    sha256 = "sha256-7pxGDWNVTB7N91yYnGvxo7h2xvYWeBdbceU2F/opRTs=";
+    sha256 = "sha256-g34kXd2Xcw7+iyS5F6fiMbyUbKLTUxFUrpxl+ueyl1U=";
   };
   vendorHash = "sha256-XtO7HiaE/xCT3tjVZzzMcO9y8Yk8Wyy1S3S1qioMaQU=";
 
@@ -27,6 +27,7 @@ buildGoModule rec {
     homepage = "https://onsi.github.io/ginkgo/";
     changelog = "https://github.com/onsi/ginkgo/blob/master/CHANGELOG.md";
     description = "A Modern Testing Framework for Go";
+    mainProgram = "ginkgo";
     longDescription = ''
       Ginkgo is a testing framework for Go designed to help you write expressive
       tests. It is best paired with the Gomega matcher library. When combined,
diff --git a/nixpkgs/pkgs/development/tools/git-ps-rs/default.nix b/nixpkgs/pkgs/development/tools/git-ps-rs/default.nix
index 5ca3686baee7..6d4a5be75418 100644
--- a/nixpkgs/pkgs/development/tools/git-ps-rs/default.nix
+++ b/nixpkgs/pkgs/development/tools/git-ps-rs/default.nix
@@ -27,6 +27,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Tool for working with a stack of patches";
+    mainProgram = "gps";
     homepage = "https://git-ps.sh/";
     license = licenses.mit;
     maintainers = with maintainers; [ alizter ];
diff --git a/nixpkgs/pkgs/development/tools/github-commenter/default.nix b/nixpkgs/pkgs/development/tools/github-commenter/default.nix
index e40a3117e91b..50a12e0eb0a8 100644
--- a/nixpkgs/pkgs/development/tools/github-commenter/default.nix
+++ b/nixpkgs/pkgs/development/tools/github-commenter/default.nix
@@ -2,19 +2,20 @@
 
 buildGoModule rec {
   pname = "github-commenter";
-  version = "0.27.0";
+  version = "0.28.0";
 
   src = fetchFromGitHub {
     owner = "cloudposse";
     repo = pname;
     rev = version;
-    hash = "sha256-LF8ydXe+wAES0l5Lip6+30PXThGpciQgsclTE0YGxqg=";
+    hash = "sha256-x3/ae22ub9Us3mvSmvq9ohlkujvZCUfSrmZeQNvIWzE=";
   };
 
-  vendorHash = "sha256-SzXouH7xVZ/J8sReT1m9UBAA567crgxoUiYqJIEFBlw=";
+  vendorHash = "sha256-DS2cTYQasIKmyqHS3kTpNMA4fuLxSv4n7ZQjeRWE0gI=";
 
   meta = with lib; {
     description = "Command line utility for creating GitHub comments on Commits, Pull Request Reviews or Issues";
+    mainProgram = "github-commenter";
     license = licenses.asl20;
     homepage = "https://github.com/cloudposse/github-commenter";
     maintainers = [ maintainers.mmahut ];
diff --git a/nixpkgs/pkgs/development/tools/github/bump/default.nix b/nixpkgs/pkgs/development/tools/github/bump/default.nix
index 2ba546699f17..52c3117b1ef9 100644
--- a/nixpkgs/pkgs/development/tools/github/bump/default.nix
+++ b/nixpkgs/pkgs/development/tools/github/bump/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
     license = licenses.mit;
     homepage = "https://github.com/mroth/bump";
     description = "CLI tool to draft a GitHub Release for the next semantic version";
+    mainProgram = "bump";
     maintainers = with maintainers; [ doronbehar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/github/cligh/default.nix b/nixpkgs/pkgs/development/tools/github/cligh/default.nix
index 426a9735a90e..29976464479b 100644
--- a/nixpkgs/pkgs/development/tools/github/cligh/default.nix
+++ b/nixpkgs/pkgs/development/tools/github/cligh/default.nix
@@ -18,6 +18,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "http://the-brannons.com/software/cligh.html";
     description = "A simple command-line interface to the facilities of Github";
+    mainProgram = "cligh";
     longDescription = ''
         Cligh is a simple command-line interface to the facilities of GitHub.
         It is written by Christopher Brannon chris@the-brannons.com. The
diff --git a/nixpkgs/pkgs/development/tools/github/github-release/default.nix b/nixpkgs/pkgs/development/tools/github/github-release/default.nix
index 40fe1575d045..6960c6dada55 100644
--- a/nixpkgs/pkgs/development/tools/github/github-release/default.nix
+++ b/nixpkgs/pkgs/development/tools/github/github-release/default.nix
@@ -37,6 +37,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Commandline app to create and edit releases on Github (and upload artifacts)";
+    mainProgram = "github-release";
     longDescription = ''
       A small commandline app written in Go that allows you to easily create and
       delete releases of your projects on Github.
diff --git a/nixpkgs/pkgs/development/tools/glock/default.nix b/nixpkgs/pkgs/development/tools/glock/default.nix
index b2d1e09e74f3..503877328973 100644
--- a/nixpkgs/pkgs/development/tools/glock/default.nix
+++ b/nixpkgs/pkgs/development/tools/glock/default.nix
@@ -19,6 +19,7 @@ buildGoPackage rec {
   meta = with lib; {
     homepage = "https://github.com/robfig/glock";
     description = "A command-line tool to lock Go dependencies to specific revisions";
+    mainProgram = "glock";
     license = licenses.mit;
     maintainers = [ maintainers.rushmorem ];
   };
diff --git a/nixpkgs/pkgs/development/tools/glpaper/default.nix b/nixpkgs/pkgs/development/tools/glpaper/default.nix
index 3a2cb1c63c6e..f6f285d45a0b 100644
--- a/nixpkgs/pkgs/development/tools/glpaper/default.nix
+++ b/nixpkgs/pkgs/development/tools/glpaper/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description =
       "Wallpaper program for wlroots based Wayland compositors such as sway that allows you to render glsl shaders as your wallpaper";
+    mainProgram = "glpaper";
     homepage = "https://hg.sr.ht/~scoopta/glpaper";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/go-bindata-assetfs/default.nix b/nixpkgs/pkgs/development/tools/go-bindata-assetfs/default.nix
index dff78895fa57..021887077602 100644
--- a/nixpkgs/pkgs/development/tools/go-bindata-assetfs/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-bindata-assetfs/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Serve embedded files from jteeuwen/go-bindata";
+    mainProgram = "go-bindata-assetfs";
     license = licenses.bsd2;
     maintainers = with maintainers; [ avnik ];
   };
diff --git a/nixpkgs/pkgs/development/tools/go-bindata/default.nix b/nixpkgs/pkgs/development/tools/go-bindata/default.nix
index 5d3e5d714f25..c5d25a7a949e 100644
--- a/nixpkgs/pkgs/development/tools/go-bindata/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-bindata/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
     homepage = "https://github.com/kevinburke/go-bindata";
     changelog = "https://github.com/kevinburke/go-bindata/blob/v${version}/CHANGELOG.md";
     description = "A small utility which generates Go code from any file, useful for embedding binary data in a Go program";
+    mainProgram = "go-bindata";
     maintainers = with maintainers; [ ];
     license = licenses.cc0;
   };
diff --git a/nixpkgs/pkgs/development/tools/go-callvis/default.nix b/nixpkgs/pkgs/development/tools/go-callvis/default.nix
index d45ebc4ab60b..a954781fb28f 100644
--- a/nixpkgs/pkgs/development/tools/go-callvis/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-callvis/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Visualize call graph of a Go program using Graphviz";
+    mainProgram = "go-callvis";
     homepage = "https://github.com/ofabry/go-callvis";
     license = licenses.mit;
     maintainers = with maintainers; [ meain ];
diff --git a/nixpkgs/pkgs/development/tools/go-containerregistry/default.nix b/nixpkgs/pkgs/development/tools/go-containerregistry/default.nix
index a6e0d9c47681..ed1db7612411 100644
--- a/nixpkgs/pkgs/development/tools/go-containerregistry/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-containerregistry/default.nix
@@ -4,13 +4,13 @@ let bins = [ "crane" "gcrane" ]; in
 
 buildGoModule rec {
   pname = "go-containerregistry";
-  version = "0.19.0";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9sKJM1QnQcGF9d5oT1YEoSeIlg0wh2VOQ6cC1QCrcgY=";
+    sha256 = "sha256-mHuxwIyPNUWuP4QmMyLMdRlpwSueyKkk9VezJ4Sv2Nw=";
   };
   vendorHash = null;
 
diff --git a/nixpkgs/pkgs/development/tools/go-junit-report/default.nix b/nixpkgs/pkgs/development/tools/go-junit-report/default.nix
index 2a7379db0847..c8a7322b42c5 100644
--- a/nixpkgs/pkgs/development/tools/go-junit-report/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-junit-report/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Convert go test output to junit xml";
+    mainProgram = "go-junit-report";
     homepage = "https://github.com/jstemmer/go-junit-report";
     license = licenses.mit;
     maintainers = with maintainers; [ cryptix ];
diff --git a/nixpkgs/pkgs/development/tools/go-motion/default.nix b/nixpkgs/pkgs/development/tools/go-motion/default.nix
index 7505522d46fd..3db974affe13 100644
--- a/nixpkgs/pkgs/development/tools/go-motion/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-motion/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Navigation and insight in Go";
+    mainProgram = "motion";
     longDescription = ''
       Motion is a tool that was designed to work with editors. It is providing
       contextual information for a given offset(option) from a file or
diff --git a/nixpkgs/pkgs/development/tools/go-outline/default.nix b/nixpkgs/pkgs/development/tools/go-outline/default.nix
index 1d23818a96fb..c8f7f4efa502 100644
--- a/nixpkgs/pkgs/development/tools/go-outline/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-outline/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Utility to extract JSON representation of declarations from a Go source file";
+    mainProgram = "go-outline";
     homepage = "https://github.com/ramya-rao-a/go-outline";
     maintainers = with maintainers; [ vdemeester ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/go-swag/default.nix b/nixpkgs/pkgs/development/tools/go-swag/default.nix
index 0fc2781e5fe0..25ceb20089e0 100644
--- a/nixpkgs/pkgs/development/tools/go-swag/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-swag/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-swag";
-  version = "1.8.12";
+  version = "1.16.3";
 
   src = fetchFromGitHub {
     owner = "swaggo";
     repo = "swag";
     rev = "v${version}";
-    sha256 = "sha256-2rnaPN4C4pn9Whk5X2z1VVxm679EUpQdumJZx5uulr4=";
+    sha256 = "sha256-wS5m3dBiILxmVb6P559fGcONdCWc/5hhLAVMC+G1QZs=";
   };
 
-  vendorHash = "sha256-yQPmiK1CQNn3sr482OEkdRLK6YP8CvPMA/nPGdVJbMc=";
+  vendorHash = "sha256-BxWmEcx5IIT/yI46CJGE0vE1BRm5zwngc0x1dVy/04s=";
 
   subPackages = [ "cmd/swag" ];
 
diff --git a/nixpkgs/pkgs/development/tools/go-symbols/default.nix b/nixpkgs/pkgs/development/tools/go-symbols/default.nix
index a259b768561b..c6683c067a34 100644
--- a/nixpkgs/pkgs/development/tools/go-symbols/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-symbols/default.nix
@@ -16,6 +16,7 @@ buildGoPackage rec {
 
   meta = {
     description = "A utility for extracting a JSON representation of the package symbols from a go source tree";
+    mainProgram = "go-symbols";
     homepage = "https://github.com/acroca/go-symbols";
     maintainers = with lib.maintainers; [ vdemeester ];
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/go-task/default.nix b/nixpkgs/pkgs/development/tools/go-task/default.nix
index 8b3e3eb7c350..67a6ad2c0863 100644
--- a/nixpkgs/pkgs/development/tools/go-task/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-task/default.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "go-task";
-  version = "3.35.0";
+  version = "3.35.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "task";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jjhWo/rQeGcZvvpYisCujFuExJrFiJqIiDytRo8lH1k=";
+    hash = "sha256-HFjoLzGF62noA9NQk1Delq6vOcuTZzsyq6kH6QtR7zI=";
   };
 
   vendorHash = "sha256-HhnherRx5YQn4ArcavVZutze9usYP+PRI07lEXyw8a0=";
diff --git a/nixpkgs/pkgs/development/tools/go-toml/default.nix b/nixpkgs/pkgs/development/tools/go-toml/default.nix
index b9907280e387..fa36ca7eee1a 100644
--- a/nixpkgs/pkgs/development/tools/go-toml/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-toml/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-toml";
-  version = "2.1.1";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "pelletier";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-SnSdVBIIir7QSexk//ozpxnbNr92KyWP2sSBg87jGcw=";
+    sha256 = "sha256-oXFZoGAlHRGGqbjjyI0pz1fIg8h6GN0SKOyRQyS4UA0=";
   };
 
-  vendorHash = "sha256-XOcCsb3zUChiYLTfOCbRQF71E2khzSt/ApFI8NAS13U=";
+  vendorHash = "sha256-4t/ft3XTfc7yrsFVMSfjdCur8QULho3NI2ym6gqjexI=";
 
   excludedPackages = [ "cmd/gotoml-test-decoder" "cmd/tomltestgen" ];
 
diff --git a/nixpkgs/pkgs/development/tools/goa/default.nix b/nixpkgs/pkgs/development/tools/goa/default.nix
index 4928bf501ab8..6b96bbcc696a 100644
--- a/nixpkgs/pkgs/development/tools/goa/default.nix
+++ b/nixpkgs/pkgs/development/tools/goa/default.nix
@@ -5,20 +5,21 @@
 
 buildGoModule rec {
   pname = "goa";
-  version = "3.15.0";
+  version = "3.15.2";
 
   src = fetchFromGitHub {
     owner = "goadesign";
     repo = "goa";
     rev = "v${version}";
-    hash = "sha256-F5ynJn3uuKSNZYZy+S6OV0AGv9HMpp4oo7lacQ+q3bw=";
+    hash = "sha256-jzhvElHOBzekW3cyXf7wJG+8E1GObWVtPbBw18/dpCk=";
   };
-  vendorHash = "sha256-SvNuSSLL/zj7rg+k0wNiJazQgZBWrUrpGgumbADkHQY=";
+  vendorHash = "sha256-Z31hTOMmxFM0zmHoZRJaIz7ka2adV0crdhou6EudDWw=";
 
   subPackages = [ "cmd/goa" ];
 
   meta = with lib; {
     description = "Design-based APIs and microservices in Go";
+    mainProgram = "goa";
     homepage = "https://goa.design";
     license = licenses.mit;
     maintainers = with maintainers; [ rushmorem ];
diff --git a/nixpkgs/pkgs/development/tools/gocode-gomod/default.nix b/nixpkgs/pkgs/development/tools/gocode-gomod/default.nix
index 9c1752b9ad11..cf10eda0d1f4 100644
--- a/nixpkgs/pkgs/development/tools/gocode-gomod/default.nix
+++ b/nixpkgs/pkgs/development/tools/gocode-gomod/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An autocompletion daemon for the Go programming language";
+    mainProgram = "gocode-gomod";
     longDescription = ''
       Gocode is a helper tool which is intended to be integrated with your
       source code editor, like vim, neovim and emacs. It provides several
diff --git a/nixpkgs/pkgs/development/tools/goconst/default.nix b/nixpkgs/pkgs/development/tools/goconst/default.nix
index da4e9e90ef8b..d080a4fe3754 100644
--- a/nixpkgs/pkgs/development/tools/goconst/default.nix
+++ b/nixpkgs/pkgs/development/tools/goconst/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "goconst";
-  version = "1.7.0";
+  version = "1.7.1";
 
   excludedPackages = [ "tests" ];
 
@@ -10,7 +10,7 @@ buildGoModule rec {
     owner = "jgautheron";
     repo = "goconst";
     rev = "v${version}";
-    sha256 = "sha256-yhvZucbFldjTPVdo0epNPFMgmvz0JFPF7Gra0t11zXU=";
+    sha256 = "sha256-GpOZJ5/5aNw1o8fk2RSAx200v6AZ+pbNu/25i8OSS1Y=";
   };
 
   vendorHash = null;
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Find in Go repeated strings that could be replaced by a constant";
+    mainProgram = "goconst";
     homepage = "https://github.com/jgautheron/goconst";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/nixpkgs/pkgs/development/tools/goconvey/default.nix b/nixpkgs/pkgs/development/tools/goconvey/default.nix
index c7477d48e55a..0ec9afb6101c 100644
--- a/nixpkgs/pkgs/development/tools/goconvey/default.nix
+++ b/nixpkgs/pkgs/development/tools/goconvey/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "goconvey";
-  version = "1.8.1";
+  version = "1.8.1-unstable-2024-03-06";
 
   excludedPackages = "web/server/watch/integration_testing";
 
   src = fetchFromGitHub {
     owner = "smartystreets";
     repo = "goconvey";
-    rev = "v${version}";
-    hash = "sha256-6SrlPsOqRxNNwEYx2t1v+rEHnQ58GvJtjo87SZo/Omk=";
+    rev = "a50310f1e3e53e63e2d23eb904f853aa388a5988";
+    hash = "sha256-w5eX/n6Wu2gYgCIhgtjqH3lNckWIDaN4r80cJW3JqFo=";
   };
 
-  vendorHash = "sha256-020bxa0LErrvRKe3HirCWZDaBQFfKsWgl4mxfLtl1lg=";
+  vendorHash = "sha256-P4J/CZY95ks08DC+gSqG+eanL3zoiaoz1d9/ZvBoc9Q=";
 
   ldflags = [ "-s" "-w" ];
 
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = {
     description = "Go testing in the browser. Integrates with `go test`. Write behavioral tests in Go";
+    mainProgram = "goconvey";
     homepage = "https://github.com/smartystreets/goconvey";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ vdemeester ];
diff --git a/nixpkgs/pkgs/development/tools/gocover-cobertura/default.nix b/nixpkgs/pkgs/development/tools/gocover-cobertura/default.nix
index 78f69d3b260d..f1d005a47059 100644
--- a/nixpkgs/pkgs/development/tools/gocover-cobertura/default.nix
+++ b/nixpkgs/pkgs/development/tools/gocover-cobertura/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/boumenot/gocover-cobertura";
     description = "This is a simple helper tool for generating XML output in Cobertura format for CIs like Jenkins and others from go tool cover output.";
+    mainProgram = "gocover-cobertura";
     license = licenses.mit;
     maintainers = with maintainers; [ hmajid2301 ];
   };
diff --git a/nixpkgs/pkgs/development/tools/gocyclo/default.nix b/nixpkgs/pkgs/development/tools/gocyclo/default.nix
index 6dc87ccdc91c..49aa20f2be70 100644
--- a/nixpkgs/pkgs/development/tools/gocyclo/default.nix
+++ b/nixpkgs/pkgs/development/tools/gocyclo/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Calculate cyclomatic complexities of functions in Go source code";
+    mainProgram = "gocyclo";
     homepage = "https://github.com/fzipp/gocyclo";
     license = licenses.bsd3;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/nixpkgs/pkgs/development/tools/godef/default.nix b/nixpkgs/pkgs/development/tools/godef/default.nix
index 085e996f350f..d79406a2ac43 100644
--- a/nixpkgs/pkgs/development/tools/godef/default.nix
+++ b/nixpkgs/pkgs/development/tools/godef/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = {
     description = "Print where symbols are defined in Go source code";
+    mainProgram = "godef";
     homepage = "https://github.com/rogpeppe/godef/";
     maintainers = with lib.maintainers; [ vdemeester rvolosatovs ];
     license = lib.licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/tools/gogetdoc/default.nix b/nixpkgs/pkgs/development/tools/gogetdoc/default.nix
index adbb01ea7e3d..ed6f586a01ba 100644
--- a/nixpkgs/pkgs/development/tools/gogetdoc/default.nix
+++ b/nixpkgs/pkgs/development/tools/gogetdoc/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Gets documentation for items in Go source code";
+    mainProgram = "gogetdoc";
     homepage = "https://github.com/zmb3/gogetdoc";
     license = licenses.bsd3;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/nixpkgs/pkgs/development/tools/goimports-reviser/default.nix b/nixpkgs/pkgs/development/tools/goimports-reviser/default.nix
index 30cf393334c9..437b27ce8435 100644
--- a/nixpkgs/pkgs/development/tools/goimports-reviser/default.nix
+++ b/nixpkgs/pkgs/development/tools/goimports-reviser/default.nix
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Right imports sorting & code formatting tool (goimports alternative)";
+    mainProgram = "goimports-reviser";
     homepage = "https://github.com/incu6us/goimports-reviser";
     license = licenses.mit;
     maintainers = with maintainers; [ jk ];
diff --git a/nixpkgs/pkgs/development/tools/gojsontoyaml/default.nix b/nixpkgs/pkgs/development/tools/gojsontoyaml/default.nix
index 88708f5b19fb..f05d0405aebf 100644
--- a/nixpkgs/pkgs/development/tools/gojsontoyaml/default.nix
+++ b/nixpkgs/pkgs/development/tools/gojsontoyaml/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Simply tool to convert json to yaml written in Go";
+    mainProgram = "gojsontoyaml";
     homepage = "https://github.com/brancz/gojsontoyaml";
     license = licenses.mit;
     maintainers = [ maintainers.bryanasdev000 ];
diff --git a/nixpkgs/pkgs/development/tools/gokart/default.nix b/nixpkgs/pkgs/development/tools/gokart/default.nix
index 9521fcad96a4..11e68b9bede1 100644
--- a/nixpkgs/pkgs/development/tools/gokart/default.nix
+++ b/nixpkgs/pkgs/development/tools/gokart/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Static analysis tool for securing Go code";
+    mainProgram = "gokart";
     homepage = "https://github.com/praetorian-inc/gokart";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/tools/golangci-lint/default.nix b/nixpkgs/pkgs/development/tools/golangci-lint/default.nix
index 395303c57861..071dd6740869 100644
--- a/nixpkgs/pkgs/development/tools/golangci-lint/default.nix
+++ b/nixpkgs/pkgs/development/tools/golangci-lint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "golangci-lint";
-  version = "1.56.2";
+  version = "1.57.1";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    hash = "sha256-P1bgyYJCzHWWcmAHmBAyghFzKCwiQW3KNkbk5gogpn8=";
+    hash = "sha256-CDk0lmspteeewLzvixjIJr16M8Ko8uSgdnJZfJ1SqOA=";
   };
 
-  vendorHash = "sha256-9M9BPLEtNlhmZbS/Kn9yh2att2oIgF+smP7y1XCvrjI=";
+  vendorHash = "sha256-lBRVnsttq6M9gyZfV4I/EOwsp6yGARCSYYefRvZvHEA=";
 
   subPackages = [ "cmd/golangci-lint" ];
 
diff --git a/nixpkgs/pkgs/development/tools/golint/default.nix b/nixpkgs/pkgs/development/tools/golint/default.nix
index 34876a1e6400..47e1ee0a5455 100644
--- a/nixpkgs/pkgs/development/tools/golint/default.nix
+++ b/nixpkgs/pkgs/development/tools/golint/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://golang.org";
     description = "Linter for Go source code";
+    mainProgram = "golint";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jhillyerd tomberek ];
   };
diff --git a/nixpkgs/pkgs/development/tools/gomacro/default.nix b/nixpkgs/pkgs/development/tools/gomacro/default.nix
index c172945b9067..1b2a45da7a42 100644
--- a/nixpkgs/pkgs/development/tools/gomacro/default.nix
+++ b/nixpkgs/pkgs/development/tools/gomacro/default.nix
@@ -2,22 +2,22 @@
 
 buildGoModule rec {
   pname = "gomacro";
-  rev = "b4c3ab9b218fd12f22759354f4f3e37635828d1f";
-  version = "20210131-${lib.strings.substring 0 7 rev}";
+  version = "2.7-unstable-2024-01-07";
 
   src = fetchFromGitHub {
     owner = "cosmos72";
     repo = "gomacro";
-    inherit rev;
-    hash = "sha256-zxiEt/RR7g5Q0wMLuRaybnT5dFfPCyvt0PvDjL9BJDI=";
+    rev = "bf232d031933810d4a5382e17ce6c4b042a24304";
+    hash = "sha256-16u3eByFmnY12M2CEhSJKLIT0KP9nbvTv+BnqWwNTcg=";
   };
 
-  vendorHash = "sha256-fQYuav0pT+/fGq0fmOWlsiVxA9tGV4JV8X7G3E6BZMU=";
+  vendorHash = "sha256-ok71QlBHGasGVt+CGwGqhgmx5JLkQcdlU/KX+W1A5Ws=";
 
   subPackages = [ "." ];
 
   meta = with lib; {
     description = "Interactive Go interpreter and debugger with generics and macros";
+    mainProgram = "gomacro";
     homepage = "https://github.com/cosmos72/gomacro";
     license = licenses.mpl20;
     maintainers = with maintainers; [ shofius ];
diff --git a/nixpkgs/pkgs/development/tools/gomodifytags/default.nix b/nixpkgs/pkgs/development/tools/gomodifytags/default.nix
index 08f95346306e..2d256bbf7280 100644
--- a/nixpkgs/pkgs/development/tools/gomodifytags/default.nix
+++ b/nixpkgs/pkgs/development/tools/gomodifytags/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = {
     description = "Go tool to modify struct field tags";
+    mainProgram = "gomodifytags";
     homepage = "https://github.com/fatih/gomodifytags";
     maintainers = with lib.maintainers; [ vdemeester ];
     license = lib.licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/tools/gomplate/default.nix b/nixpkgs/pkgs/development/tools/gomplate/default.nix
index d9268a40386b..9be7b5a87fc7 100644
--- a/nixpkgs/pkgs/development/tools/gomplate/default.nix
+++ b/nixpkgs/pkgs/development/tools/gomplate/default.nix
@@ -39,6 +39,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A flexible commandline tool for template rendering";
+    mainProgram = "gomplate";
     homepage = "https://gomplate.ca/";
     changelog = "https://github.com/hairyhenderson/gomplate/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/google-clasp/default.nix b/nixpkgs/pkgs/development/tools/google-clasp/default.nix
index 99520de7349c..2b2d6758410b 100644
--- a/nixpkgs/pkgs/development/tools/google-clasp/default.nix
+++ b/nixpkgs/pkgs/development/tools/google-clasp/default.nix
@@ -21,6 +21,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     description = "Develop Apps Script Projects locally";
+    mainProgram = "clasp";
     homepage = "https://github.com/google/clasp#readme";
     changelog = "https://github.com/google/clasp/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/gopkgs/default.nix b/nixpkgs/pkgs/development/tools/gopkgs/default.nix
index 7b57354e3ea7..ba7d9ffccde3 100644
--- a/nixpkgs/pkgs/development/tools/gopkgs/default.nix
+++ b/nixpkgs/pkgs/development/tools/gopkgs/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = {
     description = "Tool to get list available Go packages";
+    mainProgram = "gopkgs";
     homepage = "https://github.com/uudashr/gopkgs";
     maintainers = with lib.maintainers; [ vdemeester ];
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/gops/default.nix b/nixpkgs/pkgs/development/tools/gops/default.nix
index 6b191d00bf3b..853be3e71caa 100644
--- a/nixpkgs/pkgs/development/tools/gops/default.nix
+++ b/nixpkgs/pkgs/development/tools/gops/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool to list and diagnose Go processes currently running on your system";
+    mainProgram = "gops";
     homepage = "https://github.com/google/gops";
     license = licenses.bsd3;
     maintainers = with maintainers; [ pborzenkov ];
diff --git a/nixpkgs/pkgs/development/tools/gore/default.nix b/nixpkgs/pkgs/development/tools/gore/default.nix
index 4c6eac9f652a..af9b48e85a38 100644
--- a/nixpkgs/pkgs/development/tools/gore/default.nix
+++ b/nixpkgs/pkgs/development/tools/gore/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Yet another Go REPL that works nicely";
+    mainProgram = "gore";
     homepage = "https://github.com/motemen/gore";
     license = licenses.mit;
     maintainers = with maintainers; [ offline ];
diff --git a/nixpkgs/pkgs/development/tools/goresym/default.nix b/nixpkgs/pkgs/development/tools/goresym/default.nix
index 14d4d959020c..feec2b1aecb1 100644
--- a/nixpkgs/pkgs/development/tools/goresym/default.nix
+++ b/nixpkgs/pkgs/development/tools/goresym/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Go symbol recovery tool";
+    mainProgram = "GoReSym";
     homepage = "https://github.com/mandiant/GoReSym";
     license = licenses.mit;
     maintainers = with maintainers; [ thehedgeh0g ];
diff --git a/nixpkgs/pkgs/development/tools/gosec/default.nix b/nixpkgs/pkgs/development/tools/gosec/default.nix
index a59a331d2360..34d26d853e6b 100644
--- a/nixpkgs/pkgs/development/tools/gosec/default.nix
+++ b/nixpkgs/pkgs/development/tools/gosec/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/securego/gosec";
     description = "Golang security checker";
+    mainProgram = "gosec";
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit nilp0inter ];
   };
diff --git a/nixpkgs/pkgs/development/tools/gotags/default.nix b/nixpkgs/pkgs/development/tools/gotags/default.nix
index 9fa71187aa31..f73bfa69693d 100644
--- a/nixpkgs/pkgs/development/tools/gotags/default.nix
+++ b/nixpkgs/pkgs/development/tools/gotags/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "ctags-compatible tag generator for Go";
+    mainProgram = "gotags";
     homepage = "https://github.com/jstemmer/gotags";
     license = licenses.mit;
     maintainers = with maintainers; [ urandom ];
diff --git a/nixpkgs/pkgs/development/tools/gotemplate/default.nix b/nixpkgs/pkgs/development/tools/gotemplate/default.nix
index 706fa7312d54..57dbba5db01e 100644
--- a/nixpkgs/pkgs/development/tools/gotemplate/default.nix
+++ b/nixpkgs/pkgs/development/tools/gotemplate/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI for go text/template";
+    mainProgram = "gotemplate";
     changelog = "https://github.com/coveooss/gotemplate/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ giorgiga ];
diff --git a/nixpkgs/pkgs/development/tools/gotest/default.nix b/nixpkgs/pkgs/development/tools/gotest/default.nix
index e618b3e9532d..172d2eb12edf 100644
--- a/nixpkgs/pkgs/development/tools/gotest/default.nix
+++ b/nixpkgs/pkgs/development/tools/gotest/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "go test with colors";
+    mainProgram = "gotest";
     homepage = "https://github.com/rakyll/gotest";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/tools/gotests/default.nix b/nixpkgs/pkgs/development/tools/gotests/default.nix
index 70d1861e7416..2086df1051ba 100644
--- a/nixpkgs/pkgs/development/tools/gotests/default.nix
+++ b/nixpkgs/pkgs/development/tools/gotests/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Generate Go tests from your source code";
+    mainProgram = "gotests";
     homepage = "https://github.com/cweill/gotests";
     maintainers = with maintainers; [ vdemeester ];
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/gotestsum/default.nix b/nixpkgs/pkgs/development/tools/gotestsum/default.nix
index a944f344470c..b5baad2037e4 100644
--- a/nixpkgs/pkgs/development/tools/gotestsum/default.nix
+++ b/nixpkgs/pkgs/development/tools/gotestsum/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
     homepage = "https://github.com/gotestyourself/gotestsum";
     changelog = "https://github.com/gotestyourself/gotestsum/releases/tag/v${version}";
     description = "A human friendly `go test` runner";
+    mainProgram = "gotestsum";
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.asl20;
     maintainers = with maintainers; [ endocrimes ];
diff --git a/nixpkgs/pkgs/development/tools/gotraceui/default.nix b/nixpkgs/pkgs/development/tools/gotraceui/default.nix
index 15cc09ffebd2..8f1bbb6a601e 100644
--- a/nixpkgs/pkgs/development/tools/gotraceui/default.nix
+++ b/nixpkgs/pkgs/development/tools/gotraceui/default.nix
@@ -37,6 +37,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An efficient frontend for Go execution traces";
+    mainProgram = "gotraceui";
     homepage = "https://github.com/dominikh/gotraceui";
     platforms = platforms.linux;
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/govers/default.nix b/nixpkgs/pkgs/development/tools/govers/default.nix
index eb234c82fc08..dbcb38e08e18 100644
--- a/nixpkgs/pkgs/development/tools/govers/default.nix
+++ b/nixpkgs/pkgs/development/tools/govers/default.nix
@@ -17,4 +17,5 @@ buildGoPackage rec {
 
   doCheck = false; # fails, silently
 
+  meta.mainProgram = "govers";
 }
diff --git a/nixpkgs/pkgs/development/tools/gox/default.nix b/nixpkgs/pkgs/development/tools/gox/default.nix
index 2cd8bbd8e06c..f36c546a1fe5 100644
--- a/nixpkgs/pkgs/development/tools/gox/default.nix
+++ b/nixpkgs/pkgs/development/tools/gox/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/mitchellh/gox";
     description = "A dead simple, no frills Go cross compile tool";
+    mainProgram = "gox";
     license = licenses.mpl20;
     maintainers = with maintainers; [ azahi ];
   };
diff --git a/nixpkgs/pkgs/development/tools/gpp/default.nix b/nixpkgs/pkgs/development/tools/gpp/default.nix
index 9e49b0c0284f..902c0bbf02b5 100644
--- a/nixpkgs/pkgs/development/tools/gpp/default.nix
+++ b/nixpkgs/pkgs/development/tools/gpp/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "General-purpose preprocessor with customizable syntax";
+    mainProgram = "gpp";
     homepage = "https://logological.org/gpp";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ nmattia ];
diff --git a/nixpkgs/pkgs/development/tools/gptcommit/default.nix b/nixpkgs/pkgs/development/tools/gptcommit/default.nix
index 19d18edf1c42..2d5251a4126c 100644
--- a/nixpkgs/pkgs/development/tools/gptcommit/default.nix
+++ b/nixpkgs/pkgs/development/tools/gptcommit/default.nix
@@ -39,6 +39,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "A git prepare-commit-msg hook for authoring commit messages with GPT-3. ";
+    mainProgram = "gptcommit";
     homepage = "https://github.com/zurawiki/gptcommit";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ happysalada ];
diff --git a/nixpkgs/pkgs/development/tools/gqlgenc/default.nix b/nixpkgs/pkgs/development/tools/gqlgenc/default.nix
index 252713e6848e..fff705c4051a 100644
--- a/nixpkgs/pkgs/development/tools/gqlgenc/default.nix
+++ b/nixpkgs/pkgs/development/tools/gqlgenc/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Go tool for building GraphQL client with gqlgen";
+    mainProgram = "gqlgenc";
     homepage = "https://github.com/Yamashou/gqlgenc";
     license = licenses.mit;
     maintainers = with maintainers; [ milran ];
diff --git a/nixpkgs/pkgs/development/tools/grabserial/default.nix b/nixpkgs/pkgs/development/tools/grabserial/default.nix
index 2ce3ff49c417..e26dcf63f77b 100644
--- a/nixpkgs/pkgs/development/tools/grabserial/default.nix
+++ b/nixpkgs/pkgs/development/tools/grabserial/default.nix
@@ -18,6 +18,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Python based serial dump and timing program";
+    mainProgram = "grabserial";
     homepage = "https://github.com/tbird20d/grabserial";
     license = licenses.gpl2;
     maintainers = with maintainers; [ vmandela ];
diff --git a/nixpkgs/pkgs/development/tools/graphql-client/default.nix b/nixpkgs/pkgs/development/tools/graphql-client/default.nix
index b41a7a02bdc6..428ebf9080da 100644
--- a/nixpkgs/pkgs/development/tools/graphql-client/default.nix
+++ b/nixpkgs/pkgs/development/tools/graphql-client/default.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A GraphQL tool for Rust projects";
+    mainProgram = "graphql-client";
     homepage = "https://github.com/graphql-rust/graphql-client";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ bbigras ];
diff --git a/nixpkgs/pkgs/development/tools/gron/default.nix b/nixpkgs/pkgs/development/tools/gron/default.nix
index cc8a72190277..4ef6216c370b 100644
--- a/nixpkgs/pkgs/development/tools/gron/default.nix
+++ b/nixpkgs/pkgs/development/tools/gron/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Make JSON greppable!";
+    mainProgram = "gron";
     longDescription = ''
       gron transforms JSON into discrete assignments to make it easier to grep
       for what you want and see the absolute 'path' to it. It eases the
diff --git a/nixpkgs/pkgs/development/tools/guile/g-wrap/default.nix b/nixpkgs/pkgs/development/tools/guile/g-wrap/default.nix
index 516076012423..30aa5d12a849 100644
--- a/nixpkgs/pkgs/development/tools/guile/g-wrap/default.nix
+++ b/nixpkgs/pkgs/development/tools/guile/g-wrap/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A wrapper generator for Guile";
+    mainProgram = "g-wrap-config";
     longDescription = ''
       G-Wrap is a tool (and Guile library) for generating function wrappers for
       inter-language calls.  It currently only supports generating Guile
diff --git a/nixpkgs/pkgs/development/tools/guile/guile-hall/default.nix b/nixpkgs/pkgs/development/tools/guile/guile-hall/default.nix
index b786a3427373..3c57fb4da8ce 100644
--- a/nixpkgs/pkgs/development/tools/guile/guile-hall/default.nix
+++ b/nixpkgs/pkgs/development/tools/guile/guile-hall/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Project manager and build tool for GNU guile";
+    mainProgram = "hall";
     homepage = "https://gitlab.com/a-sassmannshausen/guile-hall";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ sikmir ];
diff --git a/nixpkgs/pkgs/development/tools/halfempty/default.nix b/nixpkgs/pkgs/development/tools/halfempty/default.nix
index 113647da9ff8..62b0d161b412 100644
--- a/nixpkgs/pkgs/development/tools/halfempty/default.nix
+++ b/nixpkgs/pkgs/development/tools/halfempty/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Fast, parallel test case minimization tool";
+    mainProgram = "halfempty";
     homepage = "https://github.com/googleprojectzero/halfempty/";
     maintainers = with lib.maintainers; [ fpletz ];
     license = with lib.licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/haskell/hadrian/hadrian-9.8.1-allow-Cabal-3.10.patch b/nixpkgs/pkgs/development/tools/haskell/hadrian/hadrian-9.8.1-allow-Cabal-3.10.patch
new file mode 100644
index 000000000000..d813fef31c8d
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/haskell/hadrian/hadrian-9.8.1-allow-Cabal-3.10.patch
@@ -0,0 +1,13 @@
+diff --git a/hadrian.cabal b/hadrian.cabal
+index 70fded11aa..3893537f05 100644
+--- a/hadrian.cabal
++++ b/hadrian.cabal
+@@ -150,7 +150,7 @@ executable hadrian
+                        , TypeOperators
+     other-extensions:    MultiParamTypeClasses
+                        , TypeFamilies
+-    build-depends:       Cabal                >= 3.2     && < 3.9
++    build-depends:       Cabal                >= 3.2     && < 3.11
+                        , base                 >= 4.11    && < 5
+                        , bytestring           >= 0.10    && < 0.13
+                        , containers           >= 0.5     && < 0.7
diff --git a/nixpkgs/pkgs/development/tools/haskell/hadrian/hadrian.nix b/nixpkgs/pkgs/development/tools/haskell/hadrian/hadrian.nix
index 1be21d6f4519..7a44e2eeffc2 100644
--- a/nixpkgs/pkgs/development/tools/haskell/hadrian/hadrian.nix
+++ b/nixpkgs/pkgs/development/tools/haskell/hadrian/hadrian.nix
@@ -23,6 +23,10 @@ mkDerivation {
   '';
   patches = lib.optionals (!enableHyperlinkedSource) [
     ./disable-hyperlinked-source.patch
+  ] ++ lib.optionals (lib.elem ghcVersion [ "9.8.1" "9.8.2" ]) [
+    # Incorrect bounds on Cabal
+    # https://gitlab.haskell.org/ghc/ghc/-/issues/24100
+    ./hadrian-9.8.1-allow-Cabal-3.10.patch
   ];
   # Overwrite UserSettings.hs with a provided custom one
   postPatch = lib.optionalString (userSettings != null) ''
diff --git a/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix b/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix
index 59a1303764ba..14cc0760be22 100644
--- a/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix
+++ b/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix
@@ -8,7 +8,7 @@
 # Run
 #  $ nix-instantiate --eval -E 'with import <nixpkgs> {}; builtins.attrNames pkgs.haskell.packages'
 # to list for your nixpkgs version.
-, supportedGhcVersions ? [ "94" ]
+, supportedGhcVersions ? [ "96" ]
 
 # Whether to build hls with the dynamic run-time system.
 # See https://haskell-language-server.readthedocs.io/en/latest/troubleshooting.html#static-binaries for more information.
diff --git a/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix b/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix
deleted file mode 100644
index 2b3fb76903e5..000000000000
--- a/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib, stdenvNoCC, fetchFromGitHub, jshon, electron_10
-, runtimeShell, hyper-haskell-server, extra-packages ? [] }:
-
-let
-  binPath = lib.makeBinPath ([ hyper-haskell-server ] ++ extra-packages);
-  electron = electron_10;
-in stdenvNoCC.mkDerivation rec {
-  pname = "hyper-haskell";
-  version = "0.2.3.0";
-
-  src = fetchFromGitHub {
-    owner = "HeinrichApfelmus";
-    repo = "hyper-haskell";
-    rev = "v${version}";
-    sha256 = "1nmkry4wh6a2dy98fcs81mq2p7zhxp1k0f4m3szr6fm3j1zwrd43";
-  };
-
-  propagatedBuildInputs = extra-packages;
-
-  dontBuild = true;
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/hyper-haskell/worksheets $out/share/applications $out/share/icons/hicolor/scalable/apps $out/share/mime/packages
-
-    # Electron app
-    cp -R app $out
-
-    # Desktop Launcher
-    cp resources/hyper-haskell.desktop $out/share/applications/hyper-haskell.desktop
-    cp resources/icons/icon.svg $out/share/icons/hicolor/scalable/apps/hyper-haskell.svg
-    cp resources/shared-mime-info.xml $out/share/mime/packages/hyper-haskell.xml
-
-    # install example worksheets with backend set to nix
-    for worksheet in "worksheets/"*.hhs; do
-      ${jshon}/bin/jshon -e settings -s nix -i packageTool -p < $worksheet > $out/share/hyper-haskell/worksheets/`basename $worksheet`
-    done
-
-    # install electron wrapper script
-    cat > $out/bin/hyper-haskell <<EOF
-    #!${runtimeShell}
-    export PATH="${binPath}:\$PATH"
-    exec ${electron}/bin/electron $out/app "\$@"
-    EOF
-    chmod 755 $out/bin/hyper-haskell
-  '';
-
-  meta = with lib; {
-    description = "The strongly hyped graphical interpreter for the Haskell programming language";
-    homepage = "https://github.com/HeinrichApfelmus/hyper-haskell";
-    license = licenses.bsd3;
-    maintainers = [ maintainers.rvl ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/server.nix b/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/server.nix
deleted file mode 100644
index ca272eb36262..000000000000
--- a/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/server.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, ghcWithPackages, makeWrapper, packages, lib }:
-
-let
-hyperHaskellEnv = ghcWithPackages (self: [ self.hyper-haskell-server ] ++ packages self);
-in stdenv.mkDerivation {
-  pname = "hyper-haskell-server-with-packages";
-  version = hyperHaskellEnv.version;
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  buildCommand = ''
-    mkdir -p $out/bin
-    makeWrapper ${hyperHaskellEnv}/bin/hyper-haskell-server $out/bin/hyper-haskell-server \
-      --set NIX_GHC ${hyperHaskellEnv}/bin/ghc \
-      --set NIX_GHCPKG ${hyperHaskellEnv}/bin/ghc-pkg \
-      --set NIX_GHC_LIBDIR ${hyperHaskellEnv}/lib/ghc-*
-  '';
-
-  # trivial derivation
-  preferLocalBuild = true;
-  allowSubstitutes = false;
-
-  meta = {
-    # Marked as broken because the underlying
-    # haskellPackages.hyper-haskell-server is marked as broken.
-    hydraPlatforms = lib.platforms.none;
-    broken = true;
-  };
-}
diff --git a/nixpkgs/pkgs/development/tools/haskell/mueval/default.nix b/nixpkgs/pkgs/development/tools/haskell/mueval/default.nix
index 0cbe57387282..aaa3ad98e7e1 100644
--- a/nixpkgs/pkgs/development/tools/haskell/mueval/default.nix
+++ b/nixpkgs/pkgs/development/tools/haskell/mueval/default.nix
@@ -25,4 +25,5 @@ in stdenv.mkDerivation {
   '';
 
   passthru = { inherit defaultPkgs; };
+  meta.mainProgram = "mueval";
 }
diff --git a/nixpkgs/pkgs/development/tools/hatch/default.nix b/nixpkgs/pkgs/development/tools/hatch/default.nix
index 2e967097d065..4f3dec85ff67 100644
--- a/nixpkgs/pkgs/development/tools/hatch/default.nix
+++ b/nixpkgs/pkgs/development/tools/hatch/default.nix
@@ -94,6 +94,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Modern, extensible Python project manager";
+    mainProgram = "hatch";
     homepage = "https://hatch.pypa.io/latest/";
     changelog = "https://github.com/pypa/hatch/blob/hatch-v${version}/docs/history/hatch.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/hcloud/default.nix b/nixpkgs/pkgs/development/tools/hcloud/default.nix
index 6cfebf31ec89..621defa3e455 100644
--- a/nixpkgs/pkgs/development/tools/hcloud/default.nix
+++ b/nixpkgs/pkgs/development/tools/hcloud/default.nix
@@ -35,6 +35,7 @@ buildGoModule rec {
   meta = with lib; {
     changelog = "https://github.com/hetznercloud/cli/releases/tag/v${version}";
     description = "A command-line interface for Hetzner Cloud, a provider for cloud virtual private servers";
+    mainProgram = "hcloud";
     homepage = "https://github.com/hetznercloud/cli";
     license = licenses.mit;
     maintainers = with maintainers; [ zauberpony techknowlogick ];
diff --git a/nixpkgs/pkgs/development/tools/headache/default.nix b/nixpkgs/pkgs/development/tools/headache/default.nix
index 7ed249290136..52e7da939b22 100644
--- a/nixpkgs/pkgs/development/tools/headache/default.nix
+++ b/nixpkgs/pkgs/development/tools/headache/default.nix
@@ -22,6 +22,7 @@ buildDunePackage rec {
   meta = with lib; {
     homepage = "https://github.com/frama-c/${pname}";
     description = "Lightweight tool for managing headers in source code files";
+    mainProgram = "headache";
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ niols ];
   };
diff --git a/nixpkgs/pkgs/development/tools/heroku/default.nix b/nixpkgs/pkgs/development/tools/heroku/default.nix
index 1958517a95c9..da7b0b196893 100644
--- a/nixpkgs/pkgs/development/tools/heroku/default.nix
+++ b/nixpkgs/pkgs/development/tools/heroku/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
   pname = "heroku";
-  version = "8.10.0";
+  version = "8.11.0";
 
   src = fetchzip {
-    url = "https://cli-assets.heroku.com/versions/8.10.0/25f0948/heroku-v8.10.0-25f0948-linux-x64.tar.xz";
-    hash = "sha256-t2EQeOc6gi5lb7xrAc3WSqwUaczXN5pZXl0QkZ0Gk74=";
+    url = "https://cli-assets.heroku.com/versions/8.11.0/a525d5e/heroku-v8.11.0-a525d5e-linux-x64.tar.xz";
+    hash = "sha256-0G/ZRffPUHQy5iU64x92pjLd6pFCfEABugnSfYiUXHQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -38,6 +38,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "https://devcenter.heroku.com/articles/heroku-cli";
     description = "Everything you need to get started using Heroku";
+    mainProgram = "heroku";
     maintainers = with lib.maintainers; [ aflatter mirdhyn marsam ];
     license = lib.licenses.mit;
     platforms = with lib.platforms; unix;
diff --git a/nixpkgs/pkgs/development/tools/hors/default.nix b/nixpkgs/pkgs/development/tools/hors/default.nix
index 579a2a27922f..39710ad74acd 100644
--- a/nixpkgs/pkgs/development/tools/hors/default.nix
+++ b/nixpkgs/pkgs/development/tools/hors/default.nix
@@ -20,6 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Instant coding answers via the command line";
+    mainProgram = "hors";
     homepage = "https://github.com/windsoilder/hors";
     changelog = "https://github.com/WindSoilder/hors/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/tools/hostess/default.nix b/nixpkgs/pkgs/development/tools/hostess/default.nix
index 7bf78c403318..f15f67e3b7cb 100644
--- a/nixpkgs/pkgs/development/tools/hostess/default.nix
+++ b/nixpkgs/pkgs/development/tools/hostess/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An idempotent command-line utility for managing your /etc/hosts* file.";
+    mainProgram = "hostess";
     license = licenses.mit;
     maintainers = with maintainers; [ edlimerkaj ];
   };
diff --git a/nixpkgs/pkgs/development/tools/hred/default.nix b/nixpkgs/pkgs/development/tools/hred/default.nix
index 5e9b7f9122b9..040035dbe0dc 100644
--- a/nixpkgs/pkgs/development/tools/hred/default.nix
+++ b/nixpkgs/pkgs/development/tools/hred/default.nix
@@ -25,6 +25,7 @@ buildNpmPackage rec {
 
   meta = {
     description = "A command-line tool to extract data from HTML";
+    mainProgram = "hred";
     license = lib.licenses.mit;
     homepage = "https://github.com/danburzo/hred";
     maintainers = with lib.maintainers; [ tejing ];
diff --git a/nixpkgs/pkgs/development/tools/htmltest/default.nix b/nixpkgs/pkgs/development/tools/htmltest/default.nix
index 4d9db942cdbc..cbb82695a46e 100644
--- a/nixpkgs/pkgs/development/tools/htmltest/default.nix
+++ b/nixpkgs/pkgs/development/tools/htmltest/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to test generated HTML output";
+    mainProgram = "htmltest";
     longDescription = ''
       htmltest runs your HTML output through a series of checks to ensure all your
       links, images, scripts references work, your alt tags are filled in, etc.
diff --git a/nixpkgs/pkgs/development/tools/icr/default.nix b/nixpkgs/pkgs/development/tools/icr/default.nix
index 7f6b0440b949..21c1b5324459 100644
--- a/nixpkgs/pkgs/development/tools/icr/default.nix
+++ b/nixpkgs/pkgs/development/tools/icr/default.nix
@@ -38,6 +38,7 @@ crystal.buildCrystalPackage rec {
 
   meta = with lib; {
     description = "Interactive console for the Crystal programming language";
+    mainProgram = "icr";
     homepage = "https://github.com/crystal-community/icr";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/development/tools/iferr/default.nix b/nixpkgs/pkgs/development/tools/iferr/default.nix
index 0e8f797f77ce..9a7b25a4cb40 100644
--- a/nixpkgs/pkgs/development/tools/iferr/default.nix
+++ b/nixpkgs/pkgs/development/tools/iferr/default.nix
@@ -20,6 +20,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = ''Generate "if err != nil {" block'';
+    mainProgram = "iferr";
     homepage = "https://github.com/koron/iferr";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/nixpkgs/pkgs/development/tools/ijq/default.nix b/nixpkgs/pkgs/development/tools/ijq/default.nix
index 45a8ca79d236..aa7d7724acba 100644
--- a/nixpkgs/pkgs/development/tools/ijq/default.nix
+++ b/nixpkgs/pkgs/development/tools/ijq/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Interactive wrapper for jq";
+    mainProgram = "ijq";
     homepage = "https://git.sr.ht/~gpanders/ijq";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ justinas SuperSandro2000 ];
diff --git a/nixpkgs/pkgs/development/tools/ilspycmd/default.nix b/nixpkgs/pkgs/development/tools/ilspycmd/default.nix
index 265a17f224d9..b04bb86f4443 100644
--- a/nixpkgs/pkgs/development/tools/ilspycmd/default.nix
+++ b/nixpkgs/pkgs/development/tools/ilspycmd/default.nix
@@ -34,6 +34,7 @@ buildDotnetModule rec {
 
   meta = with lib; {
     description = "Tool for decompiling .NET assemblies and generating portable PDBs";
+    mainProgram = "ilspycmd";
     homepage = "https://github.com/icsharpcode/ILSpy";
     changelog = "https://github.com/icsharpcode/ILSpy/releases/tag/${src.rev}";
     license = with licenses; [
diff --git a/nixpkgs/pkgs/development/tools/img/default.nix b/nixpkgs/pkgs/development/tools/img/default.nix
index b14e6e3b2615..0dab6b28dc74 100644
--- a/nixpkgs/pkgs/development/tools/img/default.nix
+++ b/nixpkgs/pkgs/development/tools/img/default.nix
@@ -48,6 +48,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder. ";
+    mainProgram = "img";
     license = licenses.mit;
     homepage = "https://github.com/genuinetools/img";
     maintainers = with maintainers; [ bryanasdev000 ];
diff --git a/nixpkgs/pkgs/development/tools/impl/default.nix b/nixpkgs/pkgs/development/tools/impl/default.nix
index bec08cb7e90c..c4f5ec41c4ad 100644
--- a/nixpkgs/pkgs/development/tools/impl/default.nix
+++ b/nixpkgs/pkgs/development/tools/impl/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Generate method stubs for implementing an interface";
+    mainProgram = "impl";
     homepage = "https://github.com/josharian/impl";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/nixpkgs/pkgs/development/tools/ineffassign/default.nix b/nixpkgs/pkgs/development/tools/ineffassign/default.nix
index cd4f41ad670e..0febc4db51e7 100644
--- a/nixpkgs/pkgs/development/tools/ineffassign/default.nix
+++ b/nixpkgs/pkgs/development/tools/ineffassign/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Detect ineffectual assignments in Go code";
+    mainProgram = "ineffassign";
     homepage = "https://github.com/gordonklaus/ineffassign";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/nixpkgs/pkgs/development/tools/infisical/default.nix b/nixpkgs/pkgs/development/tools/infisical/default.nix
index 55218252e2f4..e7321f826417 100644
--- a/nixpkgs/pkgs/development/tools/infisical/default.nix
+++ b/nixpkgs/pkgs/development/tools/infisical/default.nix
@@ -15,7 +15,7 @@ let
   buildHashes = builtins.fromJSON (builtins.readFile ./hashes.json);
 
   # the version of infisical
-  version = "0.17.1";
+  version = "0.19.0";
 
   # the platform-specific, statically linked binary
   src =
diff --git a/nixpkgs/pkgs/development/tools/infisical/hashes.json b/nixpkgs/pkgs/development/tools/infisical/hashes.json
index 416bd8fd5dec..c6b10ee1d2fb 100644
--- a/nixpkgs/pkgs/development/tools/infisical/hashes.json
+++ b/nixpkgs/pkgs/development/tools/infisical/hashes.json
@@ -1,6 +1,6 @@
 { "_comment": "@generated by pkgs/development/tools/infisical/update.sh"
-, "x86_64-linux": "sha256-RfZP7au3F9GN7W8ksbqE167y28GhLMvX6Xy5qI920Vs="
-, "x86_64-darwin": "sha256-Ye0hdk5m/LX7uAMdysSZmJihhV6+J35cn02M7PQziSk="
-, "aarch64-linux": "sha256-6bcli2zJW6Y5zx860WFLqg0iPnvDKdq9RqnA5r8nv5E="
-, "aarch64-darwin": "sha256-QaqYt0aPhPOuq4TY/kjSejnL5c3TrrYAVrLmYX6btuM="
+, "x86_64-linux": "sha256-c01Nu6Avdh2nAu5HG0YVIvhpCnSmOsVSmdqw27+1CD8="
+, "x86_64-darwin": "sha256-yTjBoG6/6OXpUnG757ZNHt7brLGqnGaV1Y/XexLmAkA="
+, "aarch64-linux": "sha256-iEHP6BNCnZUhRh+dh70Hl/j8GpiQowEstJTS7gqW6ps="
+, "aarch64-darwin": "sha256-WhmHoOA3diHWmt7z+KETJ3GPX0EwrxkXQP4G6ykyLfY="
 }
diff --git a/nixpkgs/pkgs/development/tools/initool/default.nix b/nixpkgs/pkgs/development/tools/initool/default.nix
index 5658ba1eafdf..a37d74afbd6a 100644
--- a/nixpkgs/pkgs/development/tools/initool/default.nix
+++ b/nixpkgs/pkgs/development/tools/initool/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
     inherit (mlton.meta) platforms;
 
     description = "Manipulate INI files from the command line";
+    mainProgram = "initool";
     homepage = "https://github.com/dbohdan/initool";
     license = licenses.mit;
     maintainers = with maintainers; [ e1mo ];
diff --git a/nixpkgs/pkgs/development/tools/irony-server/default.nix b/nixpkgs/pkgs/development/tools/irony-server/default.nix
index 192a33ad7ca7..d3c0818a829c 100644
--- a/nixpkgs/pkgs/development/tools/irony-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/irony-server/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "The server part of irony";
+    mainProgram = "irony-server";
     homepage = "https://melpa.org/#/irony";
     maintainers = [ maintainers.deepfire ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/java/cfr/default.nix b/nixpkgs/pkgs/development/tools/java/cfr/default.nix
index 7dfd1a084162..9604b8df2ff1 100644
--- a/nixpkgs/pkgs/development/tools/java/cfr/default.nix
+++ b/nixpkgs/pkgs/development/tools/java/cfr/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Another java decompiler";
+    mainProgram = "cfr";
     longDescription = ''
       CFR will decompile modern Java features - Java 8 lambdas (pre and post
       Java beta 103 changes), Java 7 String switches etc, but is written
diff --git a/nixpkgs/pkgs/development/tools/java/java-language-server/default.nix b/nixpkgs/pkgs/development/tools/java/java-language-server/default.nix
index d1f050f326f1..0cca4d4ca56e 100644
--- a/nixpkgs/pkgs/development/tools/java/java-language-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/java/java-language-server/default.nix
@@ -53,6 +53,7 @@ maven.buildMavenPackage rec {
 
   meta = with lib; {
     description = "A Java language server based on v3.0 of the protocol and implemented using the Java compiler API";
+    mainProgram = "java-language-server";
     homepage = "https://github.com/georgewfraser/java-language-server";
     license = licenses.mit;
     maintainers = with maintainers; [ hqurve ];
diff --git a/nixpkgs/pkgs/development/tools/java/jextract/default.nix b/nixpkgs/pkgs/development/tools/java/jextract/default.nix
index d4b514d43fef..45879c8c64cc 100644
--- a/nixpkgs/pkgs/development/tools/java/jextract/default.nix
+++ b/nixpkgs/pkgs/development/tools/java/jextract/default.nix
@@ -89,6 +89,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A tool which mechanically generates Java bindings from a native library headers";
+    mainProgram = "jextract";
     homepage = "https://github.com/openjdk/jextract";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ sharzy ];
diff --git a/nixpkgs/pkgs/development/tools/java/sawjap/default.nix b/nixpkgs/pkgs/development/tools/java/sawjap/default.nix
index 0686d4fb2ed4..bc48b0342ab2 100644
--- a/nixpkgs/pkgs/development/tools/java/sawjap/default.nix
+++ b/nixpkgs/pkgs/development/tools/java/sawjap/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation {
 
   meta = sawja.meta // {
     description = "Pretty-print .class files";
+    mainProgram = "sawjap";
   };
 
 }
diff --git a/nixpkgs/pkgs/development/tools/java/visualvm/default.nix b/nixpkgs/pkgs/development/tools/java/visualvm/default.nix
index 04b74bc52570..6b5a53e92105 100644
--- a/nixpkgs/pkgs/development/tools/java/visualvm/default.nix
+++ b/nixpkgs/pkgs/development/tools/java/visualvm/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A visual interface for viewing information about Java applications";
+    mainProgram = "visualvm";
     longDescription = ''
       VisualVM is a visual tool integrating several commandline JDK
       tools and lightweight profiling capabilities. Designed for both
diff --git a/nixpkgs/pkgs/development/tools/jbang/default.nix b/nixpkgs/pkgs/development/tools/jbang/default.nix
index abd08c6c9aa0..472218015039 100644
--- a/nixpkgs/pkgs/development/tools/jbang/default.nix
+++ b/nixpkgs/pkgs/development/tools/jbang/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, fetchzip, jdk, makeWrapper, coreutils, curl }:
 
 stdenv.mkDerivation rec {
-  version = "0.114.0";
+  version = "0.115.0";
   pname = "jbang";
 
   src = fetchzip {
     url = "https://github.com/jbangdev/jbang/releases/download/v${version}/${pname}-${version}.tar";
-    sha256 = "sha256-pLikm68JPG42XE5LCU/PB5rTUywWoQxtmHXYBDPASNE=";
+    sha256 = "sha256-JTyMX3120h+xtXnkTW313zc7OkWMB4DayeRW6hNc4/A=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Run java as scripts anywhere";
+    mainProgram = "jbang";
     longDescription = ''
       jbang uses the java language to build scripts similar to groovy scripts. Dependencies are automatically
       downloaded and the java code runs.
diff --git a/nixpkgs/pkgs/development/tools/jf/default.nix b/nixpkgs/pkgs/development/tools/jf/default.nix
index f28a02bbb24c..2c32a888f34e 100644
--- a/nixpkgs/pkgs/development/tools/jf/default.nix
+++ b/nixpkgs/pkgs/development/tools/jf/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A small utility to safely format and print JSON objects in the commandline";
+    mainProgram = "jf";
     homepage = "https://github.com/sayanarijit/jf";
     license = licenses.mit;
     maintainers = [ maintainers.sayanarijit ];
diff --git a/nixpkgs/pkgs/development/tools/jfmt/default.nix b/nixpkgs/pkgs/development/tools/jfmt/default.nix
index 45a18edfffbe..98fe184e0329 100644
--- a/nixpkgs/pkgs/development/tools/jfmt/default.nix
+++ b/nixpkgs/pkgs/development/tools/jfmt/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "CLI utility to format json files";
+    mainProgram = "jfmt";
     homepage = "https://github.com/scruffystuffs/jfmt.rs";
     changelog = "https://github.com/scruffystuffs/jfmt.rs/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/jid/default.nix b/nixpkgs/pkgs/development/tools/jid/default.nix
index c4c891778114..cecb179c467e 100644
--- a/nixpkgs/pkgs/development/tools/jid/default.nix
+++ b/nixpkgs/pkgs/development/tools/jid/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
 
   meta = {
     description = "A command-line tool to incrementally drill down JSON";
+    mainProgram = "jid";
     homepage = "https://github.com/simeji/jid";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ stesie ];
diff --git a/nixpkgs/pkgs/development/tools/jless/default.nix b/nixpkgs/pkgs/development/tools/jless/default.nix
index 6c6c70f89092..a07db6781ef3 100644
--- a/nixpkgs/pkgs/development/tools/jless/default.nix
+++ b/nixpkgs/pkgs/development/tools/jless/default.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A command-line pager for JSON data";
+    mainProgram = "jless";
     homepage = "https://jless.io";
     changelog = "https://github.com/PaulJuliusMartinez/jless/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/jp/default.nix b/nixpkgs/pkgs/development/tools/jp/default.nix
index f606fd19d48f..7c59234f6f93 100644
--- a/nixpkgs/pkgs/development/tools/jp/default.nix
+++ b/nixpkgs/pkgs/development/tools/jp/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A command line interface to the JMESPath expression language for JSON";
+    mainProgram = "jp";
     homepage = "https://github.com/jmespath/jp";
     maintainers = with maintainers; [ cransom ];
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/jpexs/default.nix b/nixpkgs/pkgs/development/tools/jpexs/default.nix
index c61246016a8b..f9ba57b10e8b 100644
--- a/nixpkgs/pkgs/development/tools/jpexs/default.nix
+++ b/nixpkgs/pkgs/development/tools/jpexs/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Flash SWF decompiler and editor";
+    mainProgram = "ffdec";
     longDescription = ''
       Open-source Flash SWF decompiler and editor. Extract resources,
       convert SWF to FLA, edit ActionScript, replace images, sounds,
diff --git a/nixpkgs/pkgs/development/tools/jqp/default.nix b/nixpkgs/pkgs/development/tools/jqp/default.nix
index 58902f43d31b..9c604d5cab4c 100644
--- a/nixpkgs/pkgs/development/tools/jqp/default.nix
+++ b/nixpkgs/pkgs/development/tools/jqp/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A TUI playground to experiment with jq";
+    mainProgram = "jqp";
     homepage = "https://github.com/noahgorstein/jqp";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
diff --git a/nixpkgs/pkgs/development/tools/jsduck/default.nix b/nixpkgs/pkgs/development/tools/jsduck/default.nix
index 5c11b87f76ff..debd33c80745 100644
--- a/nixpkgs/pkgs/development/tools/jsduck/default.nix
+++ b/nixpkgs/pkgs/development/tools/jsduck/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple JavaScript Duckumentation generator";
+    mainProgram = "jsduck";
     homepage    = "https://github.com/senchalabs/jsduck";
     license     = with licenses; gpl3;
     maintainers = with maintainers; [ periklis nicknovitski ];
diff --git a/nixpkgs/pkgs/development/tools/json2hcl/default.nix b/nixpkgs/pkgs/development/tools/json2hcl/default.nix
index 47ee2cfe4bf1..39fa629df62b 100644
--- a/nixpkgs/pkgs/development/tools/json2hcl/default.nix
+++ b/nixpkgs/pkgs/development/tools/json2hcl/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Convert JSON to HCL, and vice versa";
+    mainProgram = "json2hcl";
     homepage = "https://github.com/kvz/json2hcl";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewbauer ];
diff --git a/nixpkgs/pkgs/development/tools/jtc/default.nix b/nixpkgs/pkgs/development/tools/jtc/default.nix
index c8a13c07cb60..399b9a0f7066 100644
--- a/nixpkgs/pkgs/development/tools/jtc/default.nix
+++ b/nixpkgs/pkgs/development/tools/jtc/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "JSON manipulation and transformation tool";
+    mainProgram = "jtc";
     homepage = "https://github.com/ldn-softdev/jtc";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
diff --git a/nixpkgs/pkgs/development/tools/k6/default.nix b/nixpkgs/pkgs/development/tools/k6/default.nix
index c5c8f85e9126..407a7c79760e 100644
--- a/nixpkgs/pkgs/development/tools/k6/default.nix
+++ b/nixpkgs/pkgs/development/tools/k6/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A modern load testing tool, using Go and JavaScript";
+    mainProgram = "k6";
     homepage = "https://k6.io/";
     changelog = "https://github.com/grafana/k6/releases/tag/v${version}";
     license = licenses.agpl3Plus;
diff --git a/nixpkgs/pkgs/development/tools/kaf/default.nix b/nixpkgs/pkgs/development/tools/kaf/default.nix
index 7ca0f6d7a26d..eb098c272873 100644
--- a/nixpkgs/pkgs/development/tools/kaf/default.nix
+++ b/nixpkgs/pkgs/development/tools/kaf/default.nix
@@ -2,22 +2,23 @@
 
 buildGoModule rec {
   pname = "kaf";
-  version = "0.2.7";
+  version = "0.2.8";
 
   src = fetchFromGitHub {
     owner = "birdayz";
     repo = "kaf";
     rev = "v${version}";
-    hash = "sha256-H21l8TXCl5UH7h0WXnJqFv/rozIzxBKJJcNzfqIATsQ=";
+    hash = "sha256-12xPBBLV0jtQQI/inNlWTFBZtYBF0GF1GoD1kv1/thQ=";
   };
 
-  vendorHash = "sha256-//16AAQ2NK3yf9BKWECz5Mdy0lYuft9Em5cyM8osans=";
+  vendorHash = "sha256-otKz8ECSb2N3vwU5c1+u7zGvXU4iRvQWWggw9WwG78c=";
 
   # Many tests require a running Kafka instance
   doCheck = false;
 
   meta = with lib; {
     description = "Modern CLI for Apache Kafka, written in Go";
+    mainProgram = "kaf";
     homepage = "https://github.com/birdayz/kaf";
     license = licenses.asl20;
     maintainers = with maintainers; [ zarelit ];
diff --git a/nixpkgs/pkgs/development/tools/kafka-delta-ingest/default.nix b/nixpkgs/pkgs/development/tools/kafka-delta-ingest/default.nix
index 9f8983305f7c..2af697dac688 100644
--- a/nixpkgs/pkgs/development/tools/kafka-delta-ingest/default.nix
+++ b/nixpkgs/pkgs/development/tools/kafka-delta-ingest/default.nix
@@ -44,6 +44,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "A highly efficient daemon for streaming data from Kafka into Delta Lake";
+    mainProgram = "kafka-delta-ingest";
     homepage = "https://github.com/delta-io/kafka-delta-ingest";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/tools/kafkactl/default.nix b/nixpkgs/pkgs/development/tools/kafkactl/default.nix
index ef5aafa501e6..9bb202fee67b 100644
--- a/nixpkgs/pkgs/development/tools/kafkactl/default.nix
+++ b/nixpkgs/pkgs/development/tools/kafkactl/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "kafkactl";
-  version = "4.0.0";
+  version = "5.0.6";
 
   src = fetchFromGitHub {
     owner = "deviceinsight";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-GtveC2W9y/mBuiZjpxCXjCE6WO0ub4wX85Is6MUTvlw=";
+    hash = "sha256-pAi60t0mtRlAL+z6s5moWwxw0hC6CeiljjjFyzyN+nI=";
   };
 
-  vendorHash = "sha256-B7kP1ksH7t/1PQrI8mSgIEGdH02RhgN4A1z4S0UJG/g=";
+  vendorHash = "sha256-7ibev9Po8is+PXH0BC8ZLiTMJsPMR6VUwjNA/c1y/g0=";
 
   doCheck = false;
 
@@ -22,6 +22,7 @@ buildGoModule rec {
     homepage = "https://github.com/deviceinsight/kafkactl";
     changelog = "https://github.com/deviceinsight/kafkactl/blob/v${version}/CHANGELOG.md";
     description = "Command Line Tool for managing Apache Kafka";
+    mainProgram = "kafkactl";
     longDescription = ''
       A command-line interface for interaction with Apache Kafka.
       Features:
diff --git a/nixpkgs/pkgs/development/tools/karate/default.nix b/nixpkgs/pkgs/development/tools/karate/default.nix
index bd99903e984f..1b5a08d5e674 100644
--- a/nixpkgs/pkgs/development/tools/karate/default.nix
+++ b/nixpkgs/pkgs/development/tools/karate/default.nix
@@ -20,6 +20,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     description = "API Test Automation Made Simple";
+    mainProgram = "karate";
     longDescription = ''
       Karate is the only open-source tool to combine API
       test-automation, mocks, performance-testing and even UI
diff --git a/nixpkgs/pkgs/development/tools/kcat/default.nix b/nixpkgs/pkgs/development/tools/kcat/default.nix
index f363e4e51039..8ece67da031e 100644
--- a/nixpkgs/pkgs/development/tools/kcat/default.nix
+++ b/nixpkgs/pkgs/development/tools/kcat/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A generic non-JVM producer and consumer for Apache Kafka";
+    mainProgram = "kcat";
     homepage = "https://github.com/edenhill/kcat";
     license = licenses.bsd2;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/development/tools/kdash/default.nix b/nixpkgs/pkgs/development/tools/kdash/default.nix
index 73746875247d..505aead90fd6 100644
--- a/nixpkgs/pkgs/development/tools/kdash/default.nix
+++ b/nixpkgs/pkgs/development/tools/kdash/default.nix
@@ -30,6 +30,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple and fast dashboard for Kubernetes";
+    mainProgram = "kdash";
     homepage = "https://github.com/kdash-rs/kdash";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/kgt/default.nix b/nixpkgs/pkgs/development/tools/kgt/default.nix
index cb716e317d6f..e0ef6bd6d15d 100644
--- a/nixpkgs/pkgs/development/tools/kgt/default.nix
+++ b/nixpkgs/pkgs/development/tools/kgt/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "BNF wrangling and railroad diagrams";
+    mainProgram = "kgt";
     longDescription = ''
       KGT: Kate's Grammar Tool
 
diff --git a/nixpkgs/pkgs/development/tools/knightos/genkfs/default.nix b/nixpkgs/pkgs/development/tools/knightos/genkfs/default.nix
index fc13b68258ab..c3bf1a1e7a75 100644
--- a/nixpkgs/pkgs/development/tools/knightos/genkfs/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/genkfs/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage    = "https://knightos.org/";
     description = "Utility to write a KFS filesystem into a ROM file";
+    mainProgram = "genkfs";
     license     = licenses.mit;
     maintainers = with maintainers; [ siraben ];
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix b/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix
index 90a493697c8a..3de660ce065c 100644
--- a/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage    = "https://knightos.org/";
     description = "KnightOS C compiler";
+    mainProgram = "kcc";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ siraben ];
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix b/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix
index 70eea0f7b6a4..b987d11ce4bd 100644
--- a/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage    = "https://knightos.org/";
     description = "Converts image formats supported by stb_image to the KnightOS image format";
+    mainProgram = "kimg";
     license     = licenses.mit;
     maintainers = with maintainers; [ siraben ];
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix b/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix
index 447959a1e612..5035b064b655 100644
--- a/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage    = "https://knightos.org/";
     description = "A tool to create or extract KnightOS packages";
+    mainProgram = "kpack";
     license     = licenses.lgpl2Only;
     maintainers = with maintainers; [ siraben ];
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix b/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix
index 21caa5b8b32a..a95f9530992a 100644
--- a/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage    = "https://knightos.org/";
     description = "Packages KnightOS distribution files into a ROM";
+    mainProgram = "mkrom";
     license     = licenses.mit;
     maintainers = with maintainers; [ siraben ];
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/knightos/mktiupgrade/default.nix b/nixpkgs/pkgs/development/tools/knightos/mktiupgrade/default.nix
index efe8d454b2c4..0cd855345866 100644
--- a/nixpkgs/pkgs/development/tools/knightos/mktiupgrade/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/mktiupgrade/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage    = "https://knightos.org/";
     description = "Makes TI calculator upgrade files from ROM dumps";
+    mainProgram = "mktiupgrade";
     license     = licenses.mit;
     maintainers = with maintainers; [ siraben ];
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/knightos/patchrom/default.nix b/nixpkgs/pkgs/development/tools/knightos/patchrom/default.nix
index 67d7159e5021..6eb4e2b308b4 100644
--- a/nixpkgs/pkgs/development/tools/knightos/patchrom/default.nix
+++ b/nixpkgs/pkgs/development/tools/knightos/patchrom/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage    = "https://knightos.org/";
     description = "Patches jumptables into TI calculator ROM files and generates an include file";
+    mainProgram = "patchrom";
     license     = licenses.mit;
     maintainers = with maintainers; [ siraben ];
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/ko/default.nix b/nixpkgs/pkgs/development/tools/ko/default.nix
index 26ce9b428cf1..f8fa01526b9d 100644
--- a/nixpkgs/pkgs/development/tools/ko/default.nix
+++ b/nixpkgs/pkgs/development/tools/ko/default.nix
@@ -59,6 +59,7 @@ buildGoModule rec {
     homepage = "https://github.com/ko-build/ko";
     changelog = "https://github.com/ko-build/ko/releases/tag/v${version}";
     description = "Build and deploy Go applications on Kubernetes";
+    mainProgram = "ko";
     longDescription = ''
       ko is a simple, fast container image builder for Go applications.
       It's ideal for use cases where your image contains a single Go application without any/many dependencies on the OS base image (e.g. no cgo, no OS package dependencies).
diff --git a/nixpkgs/pkgs/development/tools/konf/default.nix b/nixpkgs/pkgs/development/tools/konf/default.nix
index 5a1a4c7bc547..bfbf71b6f5f1 100644
--- a/nixpkgs/pkgs/development/tools/konf/default.nix
+++ b/nixpkgs/pkgs/development/tools/konf/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Lightweight and blazing fast kubeconfig manager which allows to use different kubeconfigs at the same time";
+    mainProgram = "konf-go";
     homepage = "https://github.com/SimonTheLeg/konf-go";
     license = licenses.asl20;
     maintainers = with maintainers; [ arikgrahl ];
diff --git a/nixpkgs/pkgs/development/tools/konstraint/default.nix b/nixpkgs/pkgs/development/tools/konstraint/default.nix
index b60011095f44..f015e08453d6 100644
--- a/nixpkgs/pkgs/development/tools/konstraint/default.nix
+++ b/nixpkgs/pkgs/development/tools/konstraint/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "konstraint";
-  version = "0.33.0";
+  version = "0.35.0";
 
   src = fetchFromGitHub {
     owner = "plexsystems";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rZDLnr3FNLNOadmST70p5ZusK+p9SiUmVrnc5TrKuK4=";
+    sha256 = "sha256-6MYpZm5Uc5l06wRo6/15bmyVkdqjFuxHV3B3TriauQg=";
   };
-  vendorHash = "sha256-gaY3U6+Emk6La5wPyT5TvgTwPsh2Ws2t7C8B5T4c46E=";
+  vendorHash = "sha256-NyNQivJM9bFP/EBfjso+13sWMnubG/fjYafCGUnsvdU=";
 
   # Exclude go within .github folder
   excludedPackages = ".github";
@@ -38,6 +38,7 @@ buildGoModule rec {
     homepage = "https://github.com/plexsystems/konstraint";
     changelog = "https://github.com/plexsystems/konstraint/releases/tag/v${version}";
     description = "A policy management tool for interacting with Gatekeeper";
+    mainProgram = "konstraint";
     longDescription = ''
       konstraint is a CLI tool to assist with the creation and management of templates and constraints when using
       Gatekeeper. Automatically copy Rego to the ConstraintTemplate. Automatically update all ConstraintTemplates with
diff --git a/nixpkgs/pkgs/development/tools/krankerl/default.nix b/nixpkgs/pkgs/development/tools/krankerl/default.nix
index 6951b358b6b0..0e04733e375e 100644
--- a/nixpkgs/pkgs/development/tools/krankerl/default.nix
+++ b/nixpkgs/pkgs/development/tools/krankerl/default.nix
@@ -39,6 +39,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A CLI helper to manage, package and publish Nextcloud apps";
+    mainProgram = "krankerl";
     homepage = "https://github.com/ChristophWurst/krankerl";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/krew/default.nix b/nixpkgs/pkgs/development/tools/krew/default.nix
index 900698989a45..8fc0570800a9 100644
--- a/nixpkgs/pkgs/development/tools/krew/default.nix
+++ b/nixpkgs/pkgs/development/tools/krew/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Package manager for kubectl plugins";
+    mainProgram = "krew";
     homepage = "https://github.com/kubernetes-sigs/krew";
     maintainers = with maintainers; [ vdemeester ];
     license = lib.licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/kube-prompt/default.nix b/nixpkgs/pkgs/development/tools/kube-prompt/default.nix
index 52449342630e..cdf2632811fc 100644
--- a/nixpkgs/pkgs/development/tools/kube-prompt/default.nix
+++ b/nixpkgs/pkgs/development/tools/kube-prompt/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An interactive kubernetes client featuring auto-complete";
+    mainProgram = "kube-prompt";
     license = licenses.mit;
     homepage = "https://github.com/c-bata/kube-prompt";
     maintainers = with maintainers; [ vdemeester ];
diff --git a/nixpkgs/pkgs/development/tools/kubeprompt/default.nix b/nixpkgs/pkgs/development/tools/kubeprompt/default.nix
index 28f628389d29..b1122ac69cb4 100644
--- a/nixpkgs/pkgs/development/tools/kubeprompt/default.nix
+++ b/nixpkgs/pkgs/development/tools/kubeprompt/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubernetes prompt";
+    mainProgram = "kubeprompt";
     homepage = "https://github.com/jlesquembre/kubeprompt";
     license = licenses.epl20;
     maintainers = with maintainers; [ jlesquembre ];
diff --git a/nixpkgs/pkgs/development/tools/kubie/default.nix b/nixpkgs/pkgs/development/tools/kubie/default.nix
index 550e99d97e08..ee0e34f144c9 100644
--- a/nixpkgs/pkgs/development/tools/kubie/default.nix
+++ b/nixpkgs/pkgs/development/tools/kubie/default.nix
@@ -23,6 +23,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Shell independent context and namespace switcher for kubectl";
+    mainProgram = "kubie";
     homepage = "https://github.com/sbstp/kubie";
     license = with licenses; [ zlib ];
     maintainers = with maintainers; [ illiusdope ];
diff --git a/nixpkgs/pkgs/development/tools/kustomize/4.nix b/nixpkgs/pkgs/development/tools/kustomize/4.nix
index bb31aeefc39a..9b3b73e04868 100644
--- a/nixpkgs/pkgs/development/tools/kustomize/4.nix
+++ b/nixpkgs/pkgs/development/tools/kustomize/4.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Customization of kubernetes YAML configurations";
+    mainProgram = "kustomize";
     longDescription = ''
       kustomize lets you customize raw, template-free YAML files for
       multiple purposes, leaving the original YAML untouched and usable
diff --git a/nixpkgs/pkgs/development/tools/kustomize/default.nix b/nixpkgs/pkgs/development/tools/kustomize/default.nix
index 3906f98510bc..153b211d95ab 100644
--- a/nixpkgs/pkgs/development/tools/kustomize/default.nix
+++ b/nixpkgs/pkgs/development/tools/kustomize/default.nix
@@ -34,6 +34,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Customization of kubernetes YAML configurations";
+    mainProgram = "kustomize";
     longDescription = ''
       kustomize lets you customize raw, template-free YAML files for
       multiple purposes, leaving the original YAML untouched and usable
diff --git a/nixpkgs/pkgs/development/tools/language-servers/ansible-language-server/default.nix b/nixpkgs/pkgs/development/tools/language-servers/ansible-language-server/default.nix
index 2f0907d36b7d..a6287cc52c0d 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/ansible-language-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/ansible-language-server/default.nix
@@ -36,6 +36,7 @@ buildNpmPackage rec {
   meta = with lib; {
     changelog = "https://github.com/ansible/ansible-language-server/releases/tag/v${version}";
     description = "Ansible Language Server";
+    mainProgram = "ansible-language-server";
     homepage = "https://github.com/ansible/ansible-language-server";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/development/tools/language-servers/beancount-language-server/default.nix b/nixpkgs/pkgs/development/tools/language-servers/beancount-language-server/default.nix
index 844bc89567d0..aaebce089126 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/beancount-language-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/beancount-language-server/default.nix
@@ -17,11 +17,6 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-NMSNCURSO1iIWHH27FI5Y0q7+Ghds8VSxRGBOp+fH6A=";
 
-  # Workaround for https://github.com/NixOS/nixpkgs/issues/166205
-  env = lib.optionalAttrs (stdenv.cc.libcxx != null) {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   doInstallCheck = true;
   postInstallCheck = ''
     $out/bin/beancount-language-server --help > /dev/null
@@ -29,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A Language Server Protocol (LSP) for beancount files";
+    mainProgram = "beancount-language-server";
     homepage = "https://github.com/polarmutex/beancount-language-server";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ polarmutex ];
diff --git a/nixpkgs/pkgs/development/tools/language-servers/buf-language-server/default.nix b/nixpkgs/pkgs/development/tools/language-servers/buf-language-server/default.nix
index 8cfa35a1639a..012041064f21 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/buf-language-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/buf-language-server/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Language server for protocol buffers";
+    mainProgram = "bufls";
     homepage = "https://github.com/bufbuild/buf-language-server";
     license = licenses.asl20;
     maintainers = with maintainers; [ svrana ];
diff --git a/nixpkgs/pkgs/development/tools/language-servers/ccls/default.nix b/nixpkgs/pkgs/development/tools/language-servers/ccls/default.nix
index 6afbc1d4d9ab..078d9129f58a 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/ccls/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/ccls/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A c/c++ language server powered by clang";
+    mainProgram = "ccls";
     homepage    = "https://github.com/MaskRay/ccls";
     license     = licenses.asl20;
     platforms   = platforms.linux ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/development/tools/language-servers/crystalline/default.nix b/nixpkgs/pkgs/development/tools/language-servers/crystalline/default.nix
index 67ecfdcb7fb8..7e0bc27faceb 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/crystalline/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/crystalline/default.nix
@@ -41,6 +41,7 @@ crystal.buildCrystalPackage {
 
   meta = with lib; {
     description = "A Language Server Protocol implementation for Crystal";
+    mainProgram = "crystalline";
     homepage = "https://github.com/elbywan/crystalline";
     license = licenses.mit;
     maintainers = with maintainers; [ donovanglover ];
diff --git a/nixpkgs/pkgs/development/tools/language-servers/csharp-ls/default.nix b/nixpkgs/pkgs/development/tools/language-servers/csharp-ls/default.nix
index f3c412232136..ffe6d0cf15d1 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/csharp-ls/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/csharp-ls/default.nix
@@ -17,6 +17,7 @@ buildDotnetGlobalTool rec {
 
   meta = with lib; {
     description = "Roslyn-based LSP language server for C#";
+    mainProgram = "csharp-ls";
     homepage = "https://github.com/razzmatazz/csharp-language-server";
     changelog = "https://github.com/razzmatazz/csharp-language-server/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/language-servers/dot-language-server/default.nix b/nixpkgs/pkgs/development/tools/language-servers/dot-language-server/default.nix
index d269b63ecf81..8d25faa611ae 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/dot-language-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/dot-language-server/default.nix
@@ -17,6 +17,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     description = "A language server for the DOT language";
+    mainProgram = "dot-language-server";
     homepage = "https://github.com/nikeee/dot-language-server";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
diff --git a/nixpkgs/pkgs/development/tools/language-servers/fortls/default.nix b/nixpkgs/pkgs/development/tools/language-servers/fortls/default.nix
index 74f07f84ffc1..1fc614150b54 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/fortls/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/fortls/default.nix
@@ -26,6 +26,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Fortran Language Server ";
+    mainProgram = "fortls";
     homepage = "https://github.com/fortran-lang/fortls";
     license = [ licenses.mit ];
     maintainers = [ maintainers.sheepforce ];
diff --git a/nixpkgs/pkgs/development/tools/language-servers/fortran-language-server/default.nix b/nixpkgs/pkgs/development/tools/language-servers/fortran-language-server/default.nix
index 2c606ab715b5..81ecf59c6d43 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/fortran-language-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/fortran-language-server/default.nix
@@ -14,6 +14,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "FORTRAN Language Server for the Language Server Protocol";
+    mainProgram = "fortls";
     homepage = "https://pypi.org/project/fortran-language-server/";
     license = [ licenses.mit ];
     maintainers = [ maintainers.sheepforce ];
diff --git a/nixpkgs/pkgs/development/tools/language-servers/glslls/default.nix b/nixpkgs/pkgs/development/tools/language-servers/glslls/default.nix
index 093f6c583b16..3c282f1a23d1 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/glslls/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/glslls/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "A language server implementation for GLSL";
+    mainProgram = "glslls";
     homepage = "https://github.com/svenstaro/glsl-language-server";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ declan ];
diff --git a/nixpkgs/pkgs/development/tools/language-servers/gopls/default.nix b/nixpkgs/pkgs/development/tools/language-servers/gopls/default.nix
index 84470fcfe110..63937dbfe865 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/gopls/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/gopls/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "gopls";
-  version = "0.15.1";
+  version = "0.15.2";
 
   src = fetchFromGitHub {
     owner = "golang";
     repo = "tools";
     rev = "gopls/v${version}";
-    hash = "sha256-GJ2zc5OgZXwEq12f0PyvgOOUd7cctUbFvdp095VQb9E=";
+    hash = "sha256-GgJ92nj94jRX3GnrOozG43wl8K/+UPOCbmp7Wt5E96U=";
   };
 
   modRoot = "gopls";
-  vendorHash = "sha256-Xxik0t1BHQPqzrE3Oh3VhODn+IqIVa+TCNqQSnmbBM0=";
+  vendorHash = "sha256-q7vWiXJAX4u8B4RyFc7kg1BvMCPaTBFOVkWXeE78Emo=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/tools/language-servers/jsonnet-language-server/default.nix b/nixpkgs/pkgs/development/tools/language-servers/jsonnet-language-server/default.nix
index 1331d02810fd..5e3759aba06b 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/jsonnet-language-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/jsonnet-language-server/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Language Server Protocol server for Jsonnet";
+    mainProgram = "jsonnet-language-server";
     homepage = "https://github.com/grafana/jsonnet-language-server";
     changelog = "https://github.com/grafana/jsonnet-language-server/releases/tag/v${version}";
     license = licenses.agpl3Only;
diff --git a/nixpkgs/pkgs/development/tools/language-servers/lua-language-server/default.nix b/nixpkgs/pkgs/development/tools/language-servers/lua-language-server/default.nix
index e56d3240cafb..7491968b1b5a 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/lua-language-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/lua-language-server/default.nix
@@ -43,11 +43,6 @@ stdenv.mkDerivation (finalAttrs: {
       -e '/cxx_/s,$cc,clang++,'
   '';
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   ninjaFlags = [
     "-fcompile/ninja/${if stdenv.isDarwin then "macos" else "linux"}.ninja"
   ];
diff --git a/nixpkgs/pkgs/development/tools/language-servers/metals/default.nix b/nixpkgs/pkgs/development/tools/language-servers/metals/default.nix
index 45c061ee439c..894b83a72f8c 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/metals/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/metals/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "metals";
-  version = "1.2.1";
+  version = "1.2.2";
 
   deps = stdenv.mkDerivation {
     name = "${pname}-deps-${version}";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash = "sha256-L/ltoLlr4TdsDYwYtaCs6+Q2yTiyzoa2GQ3VK28AlzE=";
+    outputHash = "sha256-xk2ionn/lBV8AR7n7OR03UuRCoP1/K6KuohhpRwFock=";
   };
 
   nativeBuildInputs = [ makeWrapper setJavaClassPath ];
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
     homepage = "https://scalameta.org/metals/";
     license = licenses.asl20;
     description = "Language server for Scala";
+    mainProgram = "metals";
     maintainers = with maintainers; [ fabianhjr tomahna ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/language-servers/neocmakelsp/default.nix b/nixpkgs/pkgs/development/tools/language-servers/neocmakelsp/default.nix
index 0b8c3b5f7b49..3bdcf8a7a588 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/neocmakelsp/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/neocmakelsp/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "neocmakelsp";
-  version = "0.6.19";
+  version = "0.6.20";
 
   src = fetchFromGitHub {
     owner = "Decodetalkers";
     repo = "neocmakelsp";
     rev = "v${version}";
-    hash = "sha256-nYZ9H66sA5umOTn/w/P62kJy3WHLwYPWWs1B74bTAEM=";
+    hash = "sha256-ZeaQgGD8XsbSfg5vxT165JLPybPsmmqqsbJiG0CaL7Y=";
   };
 
-  cargoHash = "sha256-1jpKo/fSWLf0pFgzTvnkaghz/Fdy+MJhZsKQPaJHlfs=";
+  cargoHash = "sha256-ljbJ+ZeCtDr8OlGgZ5kgO31chs7/ZD3UfHkq3vWx+h8=";
 
   meta = with lib; {
     description = "A cmake lsp based on tower-lsp and treesitter";
diff --git a/nixpkgs/pkgs/development/tools/language-servers/openscad-lsp/default.nix b/nixpkgs/pkgs/development/tools/language-servers/openscad-lsp/default.nix
index c09a80119897..5b93b979cf3d 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/openscad-lsp/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/openscad-lsp/default.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A LSP (Language Server Protocol) server for OpenSCAD";
+    mainProgram = "openscad-lsp";
     homepage = "https://github.com/Leathong/openscad-LSP";
     license = licenses.asl20;
     maintainers = with maintainers; [ c-h-johnson ];
diff --git a/nixpkgs/pkgs/development/tools/language-servers/rnix-lsp/default.nix b/nixpkgs/pkgs/development/tools/language-servers/rnix-lsp/default.nix
deleted file mode 100644
index 41b50afb01d9..000000000000
--- a/nixpkgs/pkgs/development/tools/language-servers/rnix-lsp/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, lib, fetchFromGitHub, rustPlatform, nix }:
-
-rustPlatform.buildRustPackage rec {
-  pname = "rnix-lsp";
-  version = "unstable-2022-11-27";
-
-  src = fetchFromGitHub {
-    owner = "nix-community";
-    repo = "rnix-lsp";
-    rev = "95d40673fe43642e2e1144341e86d0036abd95d9";
-    sha256 = "sha256-F0s0m62S5bHNVWNHLZD6SeHiLrsDx98VQbRjDyIu+qQ=";
-  };
-
-  cargoSha256 = "sha256-RKHBp+/bEH9FEPLcf1MKmTugk1A8rQU447mNm9Le3DE=";
-
-  nativeCheckInputs = lib.optional (!stdenv.isDarwin) nix;
-
-  meta = with lib; {
-    description = "A work-in-progress language server for Nix, with syntax checking and basic completion";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
-    mainProgram = "rnix-lsp";
-  };
-}
diff --git a/nixpkgs/pkgs/development/tools/language-servers/svls/default.nix b/nixpkgs/pkgs/development/tools/language-servers/svls/default.nix
index 88cfac40bfb0..fc4ebb51e1ca 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/svls/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/svls/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "SystemVerilog language server";
+    mainProgram = "svls";
     homepage = "https://github.com/dalance/svls";
     license = licenses.mit;
     maintainers = with maintainers; [ trepetti ];
diff --git a/nixpkgs/pkgs/development/tools/language-servers/typst-lsp/Cargo.lock b/nixpkgs/pkgs/development/tools/language-servers/typst-lsp/Cargo.lock
index 3f457a74403c..28c424379fd0 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/typst-lsp/Cargo.lock
+++ b/nixpkgs/pkgs/development/tools/language-servers/typst-lsp/Cargo.lock
@@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "ahash"
-version = "0.7.7"
+version = "0.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd"
+checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
 dependencies = [
  "getrandom",
  "once_cell",
@@ -54,9 +54,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
 
 [[package]]
 name = "approx"
@@ -92,9 +92,9 @@ dependencies = [
 
 [[package]]
 name = "async-compression"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5"
+checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c"
 dependencies = [
  "flate2",
  "futures-core",
@@ -105,25 +105,24 @@ dependencies = [
 
 [[package]]
 name = "async-trait"
-version = "0.1.74"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
 name = "auto_impl"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89"
+checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42"
 dependencies = [
- "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn",
 ]
 
 [[package]]
@@ -155,15 +154,21 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.21.5"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "base64"
+version = "0.22.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
 
 [[package]]
 name = "biblatex"
-version = "0.9.1"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a3638fc10f65e552d53318e042cefa542418633451163228fcbfb1a58a0ca85"
+checksum = "27fe7285040d0227cd8b5395e1c4783f44f0b673eca5a657f4432ae401f2b7b8"
 dependencies = [
  "numerals",
  "paste",
@@ -204,18 +209,18 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.1"
+version = "2.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
+checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "bpaf"
-version = "0.9.6"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "565688a36ddfcfc189cc927c94a6b69cc96c9f8a69030151ae8f0ed2b54a2ad3"
+checksum = "edc932b40b31d9bea0196f54c5b1b721b9aff3882fc08d9fe4082970c7e94d3d"
 dependencies = [
  "owo-colors",
  "supports-color",
@@ -223,9 +228,9 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.8.0"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
 dependencies = [
  "memchr",
  "serde",
@@ -233,15 +238,15 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.14.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "bytemuck"
-version = "1.14.0"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
 
 [[package]]
 name = "byteorder"
@@ -266,9 +271,9 @@ dependencies = [
 
 [[package]]
 name = "cargo-platform"
-version = "0.1.5"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff"
+checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f"
 dependencies = [
  "serde",
 ]
@@ -295,12 +300,9 @@ checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.90"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
+checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
 
 [[package]]
 name = "cfg-if"
@@ -310,9 +312,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chinese-number"
-version = "0.7.4"
+version = "0.7.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3b2ffc31f235dfd4a5fa440c9b9822144183821be28aeb269e205d5541164dd"
+checksum = "49fccaef6346f6d6a741908d3b79fe97c2debe2fbb5eb3a7d00ff5981b52bb6c"
 dependencies = [
  "chinese-variant",
  "enum-ordinalize",
@@ -322,27 +324,27 @@ dependencies = [
 
 [[package]]
 name = "chinese-variant"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17df2e16b0704fc5413214165d1bfdd619f18b1044d5991d5c5351b05fee852e"
+checksum = "7588475145507237ded760e52bf2f1085495245502033756d28ea72ade0e498b"
 
 [[package]]
 name = "chrono"
-version = "0.4.31"
+version = "0.4.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38"
+checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "num-traits",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
 name = "ciborium"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
 dependencies = [
  "ciborium-io",
  "ciborium-ll",
@@ -351,15 +353,15 @@ dependencies = [
 
 [[package]]
 name = "ciborium-io"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
 
 [[package]]
 name = "ciborium-ll"
-version = "0.2.1"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
 dependencies = [
  "ciborium-io",
  "half",
@@ -367,11 +369,11 @@ dependencies = [
 
 [[package]]
 name = "citationberg"
-version = "0.1.1"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c15a0bf8014b266d11f20451dc9202d8d26180ffd8b094d73ecbe74d821f01fb"
+checksum = "82108f2b676c954076d2e5044f19a6a03887b24bd42804f322e0650d13035899"
 dependencies = [
- "quick-xml 0.28.2",
+ "quick-xml",
  "serde",
 ]
 
@@ -393,7 +395,19 @@ version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bf5705468fa80602ee6a5f9318306e6c428bffd53e43209a78bc05e6e667c6f4"
 dependencies = [
- "comemo-macros",
+ "comemo-macros 0.3.1",
+ "siphasher 1.0.0",
+]
+
+[[package]]
+name = "comemo"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df6916408a724339aa77b18214233355f3eb04c42eb895e5f8909215bd8a7a91"
+dependencies = [
+ "comemo-macros 0.4.0",
+ "once_cell",
+ "parking_lot",
  "siphasher 1.0.0",
 ]
 
@@ -405,7 +419,18 @@ checksum = "54af6ac68ada2d161fa9cc1ab52676228e340866d094d6542107e74b82acc095"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
+]
+
+[[package]]
+name = "comemo-macros"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8936e42f9b4f5bdfaf23700609ac1f11cb03ad4c1ec128a4ee4fd0903e228db"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
 ]
 
 [[package]]
@@ -444,55 +469,52 @@ dependencies = [
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.15"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
 
 [[package]]
 name = "csv"
@@ -517,24 +539,24 @@ dependencies = [
 
 [[package]]
 name = "curl"
-version = "0.4.44"
+version = "0.4.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22"
+checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6"
 dependencies = [
  "curl-sys",
  "libc",
  "openssl-probe",
  "openssl-sys",
  "schannel",
- "socket2 0.4.10",
- "winapi",
+ "socket2",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "curl-sys"
-version = "0.4.68+curl-8.4.0"
+version = "0.4.72+curl-8.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4a0d18d88360e374b16b2273c832b5e57258ffc1d4aa4f96b108e0738d5752f"
+checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea"
 dependencies = [
  "cc",
  "libc",
@@ -542,7 +564,7 @@ dependencies = [
  "openssl-sys",
  "pkg-config",
  "vcpkg",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -566,9 +588,9 @@ checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a"
 
 [[package]]
 name = "deranged"
-version = "0.3.10"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
  "powerfmt",
 ]
@@ -602,7 +624,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
@@ -622,18 +644,18 @@ dependencies = [
 
 [[package]]
 name = "ecow"
-version = "0.2.0"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ea5e3f9cda726431da9d1a8d5a29785d544b31e98e1ca7a210906244002e02"
+checksum = "dba31a30727c42ff5e60468d695c7f21e43a6db2808b7195adcab908fbd9f794"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
 name = "elsa"
@@ -661,24 +683,22 @@ dependencies = [
 
 [[package]]
 name = "enum-ordinalize"
-version = "4.2.0"
+version = "4.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b365ed566a2be6c61cb68e4faca9e74687004c5fd9a7291be8bc30992dd9195c"
+checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5"
 dependencies = [
  "enum-ordinalize-derive",
 ]
 
 [[package]]
 name = "enum-ordinalize-derive"
-version = "4.2.4"
+version = "4.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ac2fa9cc04a3dec245e68a29ac309a03c1fe638522b0d8c24ec14bbe9c08323"
+checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff"
 dependencies = [
- "num-bigint",
- "num-traits",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
@@ -736,23 +756,23 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.1"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
 
 [[package]]
 name = "filetime"
-version = "0.2.22"
+version = "0.2.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.3.5",
- "windows-sys 0.48.0",
+ "redox_syscall 0.4.1",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -779,37 +799,25 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "fontconfig-parser"
-version = "0.5.3"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "674e258f4b5d2dcd63888c01c68413c51f565e8af99d2f7701c7b81d79ef41c4"
+checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d"
 dependencies = [
  "roxmltree",
 ]
 
 [[package]]
 name = "fontdb"
-version = "0.15.0"
+version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "020e203f177c0fb250fb19455a252e838d2bbbce1f80f25ecc42402aafa8cd38"
-dependencies = [
- "log",
- "slotmap",
- "tinyvec",
- "ttf-parser 0.19.2",
-]
-
-[[package]]
-name = "fontdb"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98b88c54a38407f7352dd2c4238830115a6377741098ffd1f997c813d0e088a6"
+checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3"
 dependencies = [
  "fontconfig-parser",
  "log",
  "memmap2",
  "slotmap",
  "tinyvec",
- "ttf-parser 0.20.0",
+ "ttf-parser",
 ]
 
 [[package]]
@@ -838,9 +846,9 @@ dependencies = [
 
 [[package]]
 name = "futures"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -853,9 +861,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -863,15 +871,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -880,9 +888,9 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
@@ -901,32 +909,32 @@ dependencies = [
 
 [[package]]
 name = "futures-macro"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -942,9 +950,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
  "cfg-if",
  "libc",
@@ -962,6 +970,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "gif"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
+dependencies = [
+ "color_quant",
+ "weezl",
+]
+
+[[package]]
 name = "gimli"
 version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -994,14 +1012,14 @@ dependencies = [
  "bstr",
  "log",
  "regex-automata",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "h2"
-version = "0.3.22"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178"
+checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb"
 dependencies = [
  "bytes",
  "fnv",
@@ -1018,9 +1036,13 @@ dependencies = [
 
 [[package]]
 name = "half"
-version = "1.8.2"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
+checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+]
 
 [[package]]
 name = "hashbrown"
@@ -1039,9 +1061,9 @@ checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
 name = "hayagriva"
-version = "0.5.1"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9f97c07366b7f686741521ca63cc14baf18cea53c39b0c09873cd1d4a1b2b8c"
+checksum = "cc2e670de5191df083ddd112cd253049f8213277ccf0c15e18a8bf10e6c666cc"
 dependencies = [
  "biblatex",
  "ciborium",
@@ -1066,15 +1088,15 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.3"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "http"
-version = "0.2.11"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
 dependencies = [
  "bytes",
  "fnv",
@@ -1083,9 +1105,9 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
  "http",
@@ -1106,9 +1128,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "hyper"
-version = "0.14.27"
+version = "0.14.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -1121,7 +1143,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.10",
+ "socket2",
  "tokio",
  "tower-service",
  "tracing",
@@ -1157,15 +1179,15 @@ dependencies = [
 
 [[package]]
 name = "hypher"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94bf16dd62ea2bec617a6f8a3e1ba03107311783069a647787ac689d1f35321e"
+checksum = "3b24ad5637230df201ab1034d593f1d09bf7f2a9274f2e8897638078579f4265"
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.58"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
@@ -1306,7 +1328,7 @@ checksum = "d2abdd3a62551e8337af119c5899e600ca0c88ec8f23a46c60ba216c803dcf1a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
@@ -1350,16 +1372,15 @@ checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
 
 [[package]]
 name = "image"
-version = "0.24.7"
+version = "0.24.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
- "gif",
+ "gif 0.13.1",
  "jpeg-decoder",
- "num-rational",
  "num-traits",
  "png",
 ]
@@ -1372,9 +1393,9 @@ checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284"
 
 [[package]]
 name = "indexmap"
-version = "2.1.0"
+version = "2.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
+checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -1420,20 +1441,20 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "is-terminal"
-version = "0.4.9"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
  "hermit-abi",
- "rustix",
- "windows-sys 0.48.0",
+ "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "is_ci"
-version = "1.1.1"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "616cde7c720bb2bb5824a224687d8f77bfd38922027f01d825cd7453be5099fb"
+checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45"
 
 [[package]]
 name = "isahc"
@@ -1471,35 +1492,44 @@ dependencies = [
 
 [[package]]
 name = "itertools"
-version = "0.12.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
 name = "jpeg-decoder"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
+checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 
 [[package]]
 name = "js-sys"
-version = "0.3.66"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
+name = "kamadak-exif"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef4fc70d0ab7e5b6bafa30216a6b48705ea964cdfc29c050f2412295eba58077"
+dependencies = [
+ "mutate_once",
+]
+
+[[package]]
 name = "kurbo"
 version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1516,9 +1546,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.150"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libm"
@@ -1532,16 +1562,16 @@ version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "libc",
  "redox_syscall 0.4.1",
 ]
 
 [[package]]
 name = "libz-sys"
-version = "1.1.12"
+version = "1.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
+checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
 dependencies = [
  "cc",
  "libc",
@@ -1566,15 +1596,15 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.12"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "lipsum"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c5e9ef2d2ad6fe67a59ace27c203c8d3a71d195532ee82e3bbe0d5f9a9ca541"
+checksum = "636860251af8963cc40f6b4baadee105f02e21b28131d76eba8e40ce84ab8064"
 dependencies = [
  "rand",
  "rand_chacha",
@@ -1601,9 +1631,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 = "lsp-types"
@@ -1620,29 +1650,20 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
-version = "0.9.0"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375"
+checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
 dependencies = [
  "libc",
 ]
 
 [[package]]
-name = "memoffset"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
 name = "mime"
 version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1650,9 +1671,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -1660,9 +1681,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.9"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "wasi",
@@ -1670,6 +1691,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "mutate_once"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b"
+
+[[package]]
 name = "native-tls"
 version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1699,31 +1726,25 @@ dependencies = [
 ]
 
 [[package]]
-name = "num-integer"
-version = "0.1.45"
+name = "num-conv"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
 
 [[package]]
-name = "num-rational"
-version = "0.4.1"
+name = "num-integer"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
- "num-integer",
  "num-traits",
 ]
 
 [[package]]
 name = "num-traits"
-version = "0.2.17"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
 ]
@@ -1746,9 +1767,9 @@ checksum = "e25be21376a772d15f97ae789845340a9651d3c4246ff5ebb6a2b35f9c37bd31"
 
 [[package]]
 name = "object"
-version = "0.32.1"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
@@ -1761,11 +1782,11 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "openssl"
-version = "0.10.60"
+version = "0.10.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -1782,7 +1803,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
@@ -1793,9 +1814,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.96"
+version = "0.9.101"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f"
+checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff"
 dependencies = [
  "cc",
  "libc",
@@ -1862,9 +1883,9 @@ dependencies = [
 
 [[package]]
 name = "opentelemetry_sdk"
-version = "0.21.1"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "968ba3f2ca03e90e5187f5e4f46c791ef7f2c163ae87789c8ce5f5ca3b7b7de5"
+checksum = "2f16aec8a98a457a52664d69e0091bac3a0abd18ead9b641cb00202ba4e0efe4"
 dependencies = [
  "async-trait",
  "crossbeam-channel",
@@ -1874,7 +1895,7 @@ dependencies = [
  "glob",
  "once_cell",
  "opentelemetry",
- "ordered-float 4.1.1",
+ "ordered-float 4.2.0",
  "percent-encoding",
  "rand",
  "thiserror",
@@ -1899,24 +1920,24 @@ dependencies = [
 
 [[package]]
 name = "ordered-float"
-version = "4.1.1"
+version = "4.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "536900a8093134cf9ccf00a27deb3532421099e958d9dd431135d0c7543ca1e8"
+checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e"
 dependencies = [
  "num-traits",
 ]
 
 [[package]]
 name = "owo-colors"
-version = "3.5.0"
+version = "4.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
+checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f"
 
 [[package]]
 name = "palette"
-version = "0.7.3"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2e2f34147767aa758aa649415b50a69eeb46a67f9dc7db8011eeb3d84b351dc"
+checksum = "ebfc23a4b76642983d57e4ad00bb4504eb30a8ce3c70f4aee1f725610e36d97a"
 dependencies = [
  "approx",
  "fast-srgb8",
@@ -1926,13 +1947,13 @@ dependencies = [
 
 [[package]]
 name = "palette_derive"
-version = "0.7.3"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7db010ec5ff3d4385e4f133916faacd9dad0f6a09394c92d825b3aed310fa0a"
+checksum = "e8890702dbec0bad9116041ae586f84805b13eecd1d8b1df27c29998a9969d6d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
@@ -1989,6 +2010,48 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_macros",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_macros"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher 0.3.11",
+]
+
+[[package]]
 name = "pico-args"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1996,22 +2059,22 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
 
 [[package]]
 name = "pin-project"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
@@ -2028,9 +2091,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "plist"
@@ -2038,19 +2101,19 @@ version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "indexmap",
  "line-wrap",
- "quick-xml 0.31.0",
+ "quick-xml",
  "serde",
  "time",
 ]
 
 [[package]]
 name = "png"
-version = "0.17.10"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -2076,6 +2139,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "portable-atomic"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
+
+[[package]]
 name = "postcard"
 version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2099,34 +2168,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
-name = "proc-macro-error"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-dependencies = [
- "proc-macro-error-attr",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-dependencies = [
- "proc-macro2",
- "quote",
- "version_check",
-]
-
-[[package]]
 name = "proc-macro2"
-version = "1.0.70"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
@@ -2141,14 +2186,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "quick-xml"
-version = "0.28.2"
+name = "qcms"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
-dependencies = [
- "memchr",
- "serde",
-]
+checksum = "edecfcd5d755a5e5d98e24cf43113e7cdaec5a070edd0f6b250c03a573da30fa"
 
 [[package]]
 name = "quick-xml"
@@ -2157,13 +2198,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
+ "serde",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -2200,9 +2242,9 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd"
 dependencies = [
  "either",
  "rayon-core",
@@ -2210,21 +2252,15 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
 ]
 
 [[package]]
-name = "rctree"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
-
-[[package]]
 name = "redox_syscall"
 version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2255,46 +2291,40 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.2"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
  "aho-corasick",
  "memchr",
  "regex-automata",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "regex-automata"
-version = "0.4.3"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.8.2",
+ "regex-syntax",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
-
-[[package]]
-name = "regex-syntax"
 version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
-version = "0.11.22"
+version = "0.11.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
+checksum = "78bf93c4af7a8bb7d879d51cebe797356ff10ae8516ace542b5182d9dcac10b2"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "bytes",
  "encoding_rs",
  "futures-core",
@@ -2318,6 +2348,7 @@ dependencies = [
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "sync_wrapper",
  "system-configuration",
  "tokio",
  "tokio-native-tls",
@@ -2334,27 +2365,51 @@ dependencies = [
 ]
 
 [[package]]
+name = "resvg"
+version = "0.38.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c34501046959e06470ba62a2dc7f31c15f94ac250d842a45f9e012f4ee40c1e"
+dependencies = [
+ "gif 0.12.0",
+ "jpeg-decoder",
+ "log",
+ "pico-args",
+ "png",
+ "rgb",
+ "svgtypes",
+ "tiny-skia",
+ "usvg",
+]
+
+[[package]]
+name = "rgb"
+version = "0.8.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
 name = "ring"
-version = "0.17.6"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "684d5e6e18f669ccebf64a92236bb7db9a34f07be010e3627368182027180866"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
 dependencies = [
  "cc",
+ "cfg-if",
  "getrandom",
  "libc",
  "spin",
  "untrusted",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "roxmltree"
-version = "0.18.1"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "862340e351ce1b271a378ec53f304a5558f7db87f3769dc655a8f6ecbb68b302"
-dependencies = [
- "xmlparser",
-]
+checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
 
 [[package]]
 name = "rustc-demangle"
@@ -2364,11 +2419,11 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
 
 [[package]]
 name = "rustix"
-version = "0.38.26"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "errno",
  "libc",
  "linux-raw-sys",
@@ -2377,9 +2432,9 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.21.9"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
  "ring",
@@ -2393,7 +2448,7 @@ version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
- "base64",
+ "base64 0.21.7",
 ]
 
 [[package]]
@@ -2414,14 +2469,14 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "rustybuzz"
-version = "0.10.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71cd15fef9112a1f94ac64b58d1e4628192631ad6af4dc69997f995459c874e7"
+checksum = "f0ae5692c5beaad6a9e22830deeed7874eae8a4e3ba4076fb48e12c56856222c"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.2",
  "bytemuck",
  "smallvec",
- "ttf-parser 0.19.2",
+ "ttf-parser",
  "unicode-bidi-mirroring",
  "unicode-ccc",
  "unicode-properties",
@@ -2430,9 +2485,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "safemem"
@@ -2451,11 +2506,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2499,38 +2554,38 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.20"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde"
-version = "1.0.193"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.193"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.108"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -2539,20 +2594,20 @@ dependencies = [
 
 [[package]]
 name = "serde_repr"
-version = "0.1.17"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145"
+checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
@@ -2571,9 +2626,9 @@ dependencies = [
 
 [[package]]
 name = "serde_yaml"
-version = "0.9.27"
+version = "0.9.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c"
+checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f"
 dependencies = [
  "indexmap",
  "itoa",
@@ -2649,28 +2704,18 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
-
-[[package]]
-name = "socket2"
-version = "0.4.10"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
-dependencies = [
- "libc",
- "winapi",
-]
+checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
 name = "socket2"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2709,24 +2754,24 @@ dependencies = [
 
 [[package]]
 name = "strum"
-version = "0.25.0"
+version = "0.26.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
 dependencies = [
  "strum_macros",
 ]
 
 [[package]]
 name = "strum_macros"
-version = "0.25.3"
+version = "0.26.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
@@ -2747,22 +2792,24 @@ dependencies = [
 
 [[package]]
 name = "svg2pdf"
-version = "0.9.1"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a81da66842e426278f20062cd249779565e13f9ab4bfe0ac9e94eb476bc3a0f3"
+checksum = "ba36b330062be8497fd96597227a757b621b86c4d24d164b06e4522b52b3693e"
 dependencies = [
  "image",
  "miniz_oxide",
  "once_cell",
  "pdf-writer",
+ "resvg",
+ "tiny-skia",
  "usvg",
 ]
 
 [[package]]
 name = "svgtypes"
-version = "0.12.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71499ff2d42f59d26edb21369a308ede691421f79ebc0f001e2b1fd3a7c9e52"
+checksum = "6e44e288cd960318917cbd540340968b90becc8bc81f171345d706e7a89d9d70"
 dependencies = [
  "kurbo",
  "siphasher 0.3.11",
@@ -2770,9 +2817,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "1.0.109"
+version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2780,33 +2827,27 @@ dependencies = [
 ]
 
 [[package]]
-name = "syn"
-version = "2.0.39"
+name = "sync_wrapper"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
 
 [[package]]
 name = "synstructure"
-version = "0.13.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06"
+checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
- "unicode-xid",
+ "syn",
 ]
 
 [[package]]
 name = "syntect"
-version = "5.1.0"
+version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91"
+checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1"
 dependencies = [
  "bincode",
  "bitflags 1.3.2",
@@ -2815,8 +2856,9 @@ dependencies = [
  "fnv",
  "once_cell",
  "plist",
- "regex-syntax 0.7.5",
+ "regex-syntax",
  "serde",
+ "serde_derive",
  "serde_json",
  "thiserror",
  "walkdir",
@@ -2846,48 +2888,47 @@ dependencies = [
 
 [[package]]
 name = "temp-dir"
-version = "0.1.11"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
+checksum = "dd16aa9ffe15fe021c6ee3766772132c6e98dfa395a167e16864f61a9cfb71d6"
 
 [[package]]
 name = "tempfile"
-version = "3.8.1"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand 2.0.1",
- "redox_syscall 0.4.1",
  "rustix",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -2917,12 +2958,13 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.30"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
  "deranged",
  "itoa",
+ "num-conv",
  "powerfmt",
  "serde",
  "time-core",
@@ -2937,18 +2979,34 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.15"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
 [[package]]
+name = "tiny-skia"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "bytemuck",
+ "cfg-if",
+ "log",
+ "png",
+ "tiny-skia-path",
+]
+
+[[package]]
 name = "tiny-skia-path"
-version = "0.11.3"
+version = "0.11.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5de35e8a90052baaaf61f171680ac2f8e925a1e43ea9d2e3a00514772250e541"
+checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
 dependencies = [
  "arrayref",
  "bytemuck",
@@ -2983,9 +3041,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.35.1"
+version = "1.36.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
+checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
 dependencies = [
  "backtrace",
  "bytes",
@@ -2993,7 +3051,7 @@ dependencies = [
  "mio",
  "num_cpus",
  "pin-project-lite",
- "socket2 0.5.5",
+ "socket2",
  "tokio-macros",
  "windows-sys 0.48.0",
 ]
@@ -3006,7 +3064,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
@@ -3031,9 +3089,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-stream"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -3083,14 +3141,14 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.8"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
+checksum = "af06656561d28735e9c1cd63dfd57132c8155426aa6af24f36a00a351f88c48e"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.21.0",
+ "toml_edit 0.22.7",
 ]
 
 [[package]]
@@ -3112,20 +3170,20 @@ dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.5.40",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.21.0"
+version = "0.22.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
+checksum = "18769cd1cec395d70860ceb4d932812a0b4d06b1a4bb336745a4d21b9496e992"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.5",
 ]
 
 [[package]]
@@ -3179,7 +3237,7 @@ checksum = "84fd902d4e0b9a4b27f2f440108dc034e1758628a9b702f8ec61ad66355422fa"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
@@ -3208,7 +3266,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
@@ -3273,21 +3331,26 @@ dependencies = [
 
 [[package]]
 name = "try-lock"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "ttf-parser"
-version = "0.19.2"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1"
+checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
 
 [[package]]
-name = "ttf-parser"
-version = "0.20.0"
+name = "two-face"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
+checksum = "37bed2135b2459c7eefba72c906d374697eb15949c205f2f124e3636a46b5eeb"
+dependencies = [
+ "once_cell",
+ "serde",
+ "syntect",
+]
 
 [[package]]
 name = "typed-arena"
@@ -3297,17 +3360,18 @@ checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
 
 [[package]]
 name = "typst"
-version = "0.10.0"
-source = "git+https://github.com/typst/typst.git?tag=v0.10.0#70ca0d257bb4ba927f63260e20443f244e0bb58c"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82ce6533a33d2cc4b5eba6b009b862e75c8f9146a584f84ca154c94463e43993"
 dependencies = [
  "az",
- "bitflags 2.4.1",
+ "bitflags 2.4.2",
  "chinese-number",
  "ciborium",
- "comemo",
+ "comemo 0.4.0",
  "csv",
- "ecow 0.2.0",
- "fontdb 0.15.0",
+ "ecow 0.2.1",
+ "fontdb",
  "hayagriva",
  "hypher",
  "icu_properties",
@@ -3315,13 +3379,19 @@ dependencies = [
  "icu_provider_adapters",
  "icu_provider_blob",
  "icu_segmenter",
+ "if_chain",
  "image",
  "indexmap",
+ "kamadak-exif",
  "kurbo",
  "lipsum",
  "log",
  "once_cell",
  "palette",
+ "phf",
+ "png",
+ "portable-atomic",
+ "qcms",
  "rayon",
  "regex",
  "roxmltree",
@@ -3334,12 +3404,14 @@ dependencies = [
  "stacker",
  "syntect",
  "time",
- "toml 0.8.8",
- "tracing",
- "ttf-parser 0.19.2",
+ "toml 0.8.11",
+ "ttf-parser",
+ "two-face",
  "typed-arena",
+ "typst-assets",
  "typst-macros",
- "typst-syntax 0.10.0",
+ "typst-syntax 0.11.0",
+ "typst-timing",
  "unicode-bidi",
  "unicode-math-class",
  "unicode-script",
@@ -3349,12 +3421,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "typst-assets"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f13f85360328da54847dd7fefaf272dfa5b6d1fdeb53f32938924c39bf5b2c6c"
+
+[[package]]
 name = "typst-ide"
-version = "0.10.0"
-source = "git+https://github.com/typst/typst.git?tag=v0.10.0#70ca0d257bb4ba927f63260e20443f244e0bb58c"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcb5654d91e00dc20e9bf0c427b4558392b03d59e684e10fae45ce915766be5e"
 dependencies = [
- "comemo",
- "ecow 0.2.0",
+ "comemo 0.4.0",
+ "ecow 0.2.1",
  "if_chain",
  "log",
  "serde",
@@ -3364,7 +3443,7 @@ dependencies = [
 
 [[package]]
 name = "typst-lsp"
-version = "0.12.1"
+version = "0.13.0"
 dependencies = [
  "anyhow",
  "async-compression",
@@ -3372,15 +3451,15 @@ dependencies = [
  "bpaf",
  "cargo_metadata",
  "chrono",
- "comemo",
+ "comemo 0.4.0",
  "dirs",
  "elsa",
- "fontdb 0.16.0",
+ "fontdb",
  "futures",
  "if_chain",
  "indexmap",
  "internment",
- "itertools 0.12.0",
+ "itertools 0.12.1",
  "lazy_static",
  "once_cell",
  "opentelemetry",
@@ -3412,33 +3491,37 @@ dependencies = [
 
 [[package]]
 name = "typst-macros"
-version = "0.10.0"
-source = "git+https://github.com/typst/typst.git?tag=v0.10.0#70ca0d257bb4ba927f63260e20443f244e0bb58c"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54e48fdd6dabf48a0e595960aaef6ae43dac7d243e8c1c6926a0787d5b8a9ba7"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
 
 [[package]]
 name = "typst-pdf"
-version = "0.10.0"
-source = "git+https://github.com/typst/typst.git?tag=v0.10.0#70ca0d257bb4ba927f63260e20443f244e0bb58c"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c27957bbe3e17b961746a7ddf6f0831479674331457680bb8e3b84f7b83bd58"
 dependencies = [
- "base64",
+ "base64 0.22.0",
  "bytemuck",
- "comemo",
- "ecow 0.2.0",
+ "comemo 0.4.0",
+ "ecow 0.2.1",
  "image",
  "miniz_oxide",
  "once_cell",
  "pdf-writer",
  "subsetter",
  "svg2pdf",
- "tracing",
- "ttf-parser 0.19.2",
+ "ttf-parser",
  "typst",
+ "typst-assets",
+ "typst-macros",
+ "typst-timing",
  "unicode-properties",
  "unscanny",
  "xmp-writer",
@@ -3449,7 +3532,7 @@ name = "typst-syntax"
 version = "0.7.0"
 source = "git+https://github.com/typst/typst.git?tag=v0.7.0#da8367e189b02918a8fe1a98fd3059fd11a82cd9"
 dependencies = [
- "comemo",
+ "comemo 0.3.1",
  "ecow 0.1.2",
  "once_cell",
  "serde",
@@ -3462,14 +3545,14 @@ dependencies = [
 
 [[package]]
 name = "typst-syntax"
-version = "0.10.0"
-source = "git+https://github.com/typst/typst.git?tag=v0.10.0#70ca0d257bb4ba927f63260e20443f244e0bb58c"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "367d86bf18f0363146bea1ea76fad19b54458695fdfad5e74ead3ede574b75fe"
 dependencies = [
- "comemo",
- "ecow 0.2.0",
+ "comemo 0.4.0",
+ "ecow 0.2.1",
  "once_cell",
  "serde",
- "tracing",
  "unicode-ident",
  "unicode-math-class",
  "unicode-script",
@@ -3478,6 +3561,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "typst-timing"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b2629933cde6f299c43627b90c83bb006cb906c56cc5dec7324f0a5017d5fd8"
+dependencies = [
+ "parking_lot",
+ "serde",
+ "serde_json",
+ "typst-syntax 0.11.0",
+]
+
+[[package]]
 name = "typstfmt_lib"
 version = "0.2.7"
 source = "git+https://github.com/astrale-sharp/typstfmt?tag=0.2.7#46b4ec34b4726c3c6541012f433c68c22d9e509c"
@@ -3494,18 +3589,18 @@ dependencies = [
 
 [[package]]
 name = "unic-langid"
-version = "0.9.1"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "398f9ad7239db44fd0f80fe068d12ff22d78354080332a5077dc6f52f14dcf2f"
+checksum = "238722e6d794ed130f91f4ea33e01fcff4f188d92337a21297892521c72df516"
 dependencies = [
  "unic-langid-impl",
 ]
 
 [[package]]
 name = "unic-langid-impl"
-version = "0.9.1"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e35bfd2f2b8796545b55d7d3fd3e89a0613f68a0d1c8bc28cb7ff96b411a35ff"
+checksum = "4bd55a2063fdea4ef1f8633243a7b0524cbeef1905ae04c31a1c9b9775c55bc6"
 dependencies = [
  "serde",
  "tinystr",
@@ -3513,9 +3608,9 @@ dependencies = [
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-bidi-mirroring"
@@ -3543,30 +3638,30 @@ checksum = "7d246cf599d5fae3c8d56e04b20eb519adb89a8af8d0b0fbcded369aa3647d65"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-properties"
-version = "0.1.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7f91c8b21fbbaa18853c3d0801c78f4fc94cdb976699bb03e832e75f7fd22f0"
+checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
 
 [[package]]
 name = "unicode-script"
-version = "0.5.5"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d817255e1bed6dfd4ca47258685d14d2bdcfbc64fdc9e3819bd5848057b8ecc"
+checksum = "ad8d71f5726e5f285a935e9fe8edfd53f0491eb6e9a5774097fdabee7cd8c9cd"
 
 [[package]]
 name = "unicode-segmentation"
-version = "1.10.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
 name = "unicode-vo"
@@ -3575,12 +3670,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94"
 
 [[package]]
-name = "unicode-xid"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-
-[[package]]
 name = "unsafe-libyaml"
 version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3618,11 +3707,11 @@ checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
 
 [[package]]
 name = "usvg"
-version = "0.36.0"
+version = "0.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c51daa774fe9ee5efcf7b4fec13019b8119cda764d9a8b5b06df02bb1445c656"
+checksum = "377f62b4a3c173de8654c1aa80ab1dac1154e6f13a779a9943e53780120d1625"
 dependencies = [
- "base64",
+ "base64 0.21.7",
  "log",
  "pico-args",
  "usvg-parser",
@@ -3633,9 +3722,9 @@ dependencies = [
 
 [[package]]
 name = "usvg-parser"
-version = "0.36.0"
+version = "0.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45c88a5ffaa338f0e978ecf3d4e00d8f9f493e29bed0752e1a808a1db16afc40"
+checksum = "351a05e6f2023d6b4e946f734240a3927aefdcf930d7d42587a2c8a8869814b0"
 dependencies = [
  "data-url",
  "flate2",
@@ -3651,11 +3740,11 @@ dependencies = [
 
 [[package]]
 name = "usvg-text-layout"
-version = "0.36.0"
+version = "0.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d2374378cb7a3fb8f33894e0fdb8625e1bbc4f25312db8d91f862130b541593"
+checksum = "8c41888b9d5cf431fe852eaf9d047bbde83251b98f1749c2f08b1071e6db46e2"
 dependencies = [
- "fontdb 0.15.0",
+ "fontdb",
  "kurbo",
  "log",
  "rustybuzz",
@@ -3667,11 +3756,10 @@ dependencies = [
 
 [[package]]
 name = "usvg-tree"
-version = "0.36.0"
+version = "0.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6cacb0c5edeaf3e80e5afcf5b0d4004cc1d36318befc9a7c6606507e5d0f4062"
+checksum = "18863e0404ed153d6e56362c5b1146db9f4f262a3244e3cf2dbe7d8a85909f05"
 dependencies = [
- "rctree",
  "strict-num",
  "svgtypes",
  "tiny-skia-path",
@@ -3709,9 +3797,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",
@@ -3734,9 +3822,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -3744,24 +3832,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.39"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -3771,9 +3859,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -3781,28 +3869,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.89"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "wasm-streams"
-version = "0.3.0"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7"
+checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129"
 dependencies = [
  "futures-util",
  "js-sys",
@@ -3813,9 +3901,9 @@ dependencies = [
 
 [[package]]
 name = "wasmi"
-version = "0.31.1"
+version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acfc1e384a36ca532d070a315925887247f3c7e23567e23e0ac9b1c5d6b8bf76"
+checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7"
 dependencies = [
  "smallvec",
  "spin",
@@ -3826,9 +3914,9 @@ dependencies = [
 
 [[package]]
 name = "wasmi_arena"
-version = "0.4.0"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468"
+checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073"
 
 [[package]]
 name = "wasmi_core"
@@ -3853,9 +3941,9 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.66"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -3863,9 +3951,9 @@ dependencies = [
 
 [[package]]
 name = "web-time"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57099a701fb3a8043f993e8228dc24229c7b942e2b009a1b962e54489ba1d3bf"
+checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -3873,15 +3961,15 @@ dependencies = [
 
 [[package]]
 name = "webpki-roots"
-version = "0.25.3"
+version = "0.25.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
 
 [[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "winapi"
@@ -3916,11 +4004,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows-core"
-version = "0.51.1"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.48.5",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -3938,7 +4026,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -3958,17 +4046,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -3979,9 +4067,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -3991,9 +4079,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -4003,9 +4091,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -4015,9 +4103,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -4027,9 +4115,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -4039,9 +4127,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -4051,15 +4139,24 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "winnow"
-version = "0.5.19"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
@@ -4082,20 +4179,16 @@ checksum = "dad7bb64b8ef9c0aa27b6da38b452b0ee9fd82beaf276a87dd796fb55cbae14e"
 
 [[package]]
 name = "xattr"
-version = "1.0.1"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
 dependencies = [
  "libc",
+ "linux-raw-sys",
+ "rustix",
 ]
 
 [[package]]
-name = "xmlparser"
-version = "0.13.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
-
-[[package]]
 name = "xmlwriter"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4136,7 +4229,7 @@ checksum = "9e6936f0cce458098a201c245a11bef556c6a0181129c7034d10d76d1ec3a2b8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
  "synstructure",
 ]
 
@@ -4157,7 +4250,7 @@ checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
  "synstructure",
 ]
 
@@ -4193,5 +4286,5 @@ checksum = "7b4e5997cbf58990550ef1f0e5124a05e47e1ebd33a84af25739be6031a62c20"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.39",
+ "syn",
 ]
diff --git a/nixpkgs/pkgs/development/tools/language-servers/typst-lsp/default.nix b/nixpkgs/pkgs/development/tools/language-servers/typst-lsp/default.nix
index 5fcde6476d11..1945a71863a7 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/typst-lsp/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/typst-lsp/default.nix
@@ -9,19 +9,18 @@ rustPlatform.buildRustPackage rec {
   pname = "typst-lsp";
   # Please update the corresponding vscode extension when updating
   # this derivation.
-  version = "0.12.1";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "nvarner";
     repo = "typst-lsp";
     rev = "v${version}";
-    hash = "sha256-KFW2CzdDi/z3Tk9qEubssy/iTh7Awl/tLQGv9CVkdXw=";
+    hash = "sha256-OubKtSHw9L4GzVzZY0AVdHY7LzKg/XQIhUfUc2OYAG0=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "typst-0.10.0" = "sha256-qiskc0G/ZdLRZjTicoKIOztRFem59TM4ki23Rl55y9s=";
       "typst-syntax-0.7.0" = "sha256-yrtOmlFAKOqAmhCP7n0HQCOQpU3DWyms5foCdUb9QTg=";
       "typstfmt_lib-0.2.7" = "sha256-LBYsTCjZ+U+lgd7Z3H1sBcWwseoHsuepPd66bWgfvhI=";
     };
diff --git a/nixpkgs/pkgs/development/tools/language-servers/vala-language-server/default.nix b/nixpkgs/pkgs/development/tools/language-servers/vala-language-server/default.nix
index 40710ad83da3..0a8b3ef124a5 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/vala-language-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/vala-language-server/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Code Intelligence for Vala & Genie";
+    mainProgram = "vala-language-server";
     homepage = "https://github.com/vala-lang/vala-language-server";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ andreasfelix ];
diff --git a/nixpkgs/pkgs/development/tools/language-servers/zls/default.nix b/nixpkgs/pkgs/development/tools/language-servers/zls/default.nix
index 2188af2a1166..b8ef6ec8988d 100644
--- a/nixpkgs/pkgs/development/tools/language-servers/zls/default.nix
+++ b/nixpkgs/pkgs/development/tools/language-servers/zls/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Zig LSP implementation + Zig Language Server";
+    mainProgram = "zls";
     changelog = "https://github.com/zigtools/zls/releases/tag/${finalAttrs.version}";
     homepage = "https://github.com/zigtools/zls";
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/lazygit/default.nix b/nixpkgs/pkgs/development/tools/lazygit/default.nix
index 97233ab11582..4ed99c20ebf7 100644
--- a/nixpkgs/pkgs/development/tools/lazygit/default.nix
+++ b/nixpkgs/pkgs/development/tools/lazygit/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lazygit";
-  version = "0.40.2";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-xj5WKAduaJWA3NhWuMsF5EXF91+NTGAXkbdhpeFqLxE=";
+    hash = "sha256-Ok6QnXw3oDeSzBekft8cDXM/YsADgF1NZznfNoGNvck=";
   };
 
   vendorHash = null;
@@ -25,7 +25,7 @@ buildGoModule rec {
     homepage = "https://github.com/jesseduffield/lazygit";
     changelog = "https://github.com/jesseduffield/lazygit/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ Br1ght0ne equirosa paveloom ];
+    maintainers = with maintainers; [ Br1ght0ne equirosa paveloom starsep ];
     mainProgram = "lazygit";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/leaps/default.nix b/nixpkgs/pkgs/development/tools/leaps/default.nix
index a0f99496a438..57df58ebaf4a 100644
--- a/nixpkgs/pkgs/development/tools/leaps/default.nix
+++ b/nixpkgs/pkgs/development/tools/leaps/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A pair programming tool and library written in Golang";
+    mainProgram = "leaps";
     homepage = "https://github.com/jeffail/leaps/";
     license = licenses.mit;
     maintainers = with lib.maintainers; [ qknight ];
diff --git a/nixpkgs/pkgs/development/tools/legitify/default.nix b/nixpkgs/pkgs/development/tools/legitify/default.nix
index 8a6e9387fed3..24ef9d6a6dc0 100644
--- a/nixpkgs/pkgs/development/tools/legitify/default.nix
+++ b/nixpkgs/pkgs/development/tools/legitify/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to detect and remediate misconfigurations and security risks of GitHub assets";
+    mainProgram = "legitify";
     homepage = "https://github.com/Legit-Labs/legitify";
     changelog = "https://github.com/Legit-Labs/legitify/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/librarian-puppet-go/default.nix b/nixpkgs/pkgs/development/tools/librarian-puppet-go/default.nix
index 411660a1f0be..303f6ce2ebaf 100644
--- a/nixpkgs/pkgs/development/tools/librarian-puppet-go/default.nix
+++ b/nixpkgs/pkgs/development/tools/librarian-puppet-go/default.nix
@@ -18,6 +18,7 @@ buildGoPackage rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "librarian-puppet implementation in go";
+    mainProgram = "librarian-puppet-go";
     license = licenses.mit;
     maintainers = with maintainers; [ womfoo ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/development/tools/license-scanner/default.nix b/nixpkgs/pkgs/development/tools/license-scanner/default.nix
index c1ea963f44b1..6fcb17e4f4b2 100644
--- a/nixpkgs/pkgs/development/tools/license-scanner/default.nix
+++ b/nixpkgs/pkgs/development/tools/license-scanner/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Utility that provides an API and CLI to identify licenses and legal terms";
+    mainProgram = "license-scanner";
     homepage = "https://github.com/CycloneDX/license-scanner";
     changelog = "https://github.com/CycloneDX/license-scanner/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/literate-programming/eweb/default.nix b/nixpkgs/pkgs/development/tools/literate-programming/eweb/default.nix
index 7ad966c6b69f..b0c897252b68 100644
--- a/nixpkgs/pkgs/development/tools/literate-programming/eweb/default.nix
+++ b/nixpkgs/pkgs/development/tools/literate-programming/eweb/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://eweb.sourceforge.net/";
     description = "An Asciidoc-based literate programming tool, written in Python";
+    mainProgram = "etangle.py";
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.AndersonTorres ];
diff --git a/nixpkgs/pkgs/development/tools/literate-programming/funnelweb/default.nix b/nixpkgs/pkgs/development/tools/literate-programming/funnelweb/default.nix
index 56d53104a206..94fbaa698b74 100644
--- a/nixpkgs/pkgs/development/tools/literate-programming/funnelweb/default.nix
+++ b/nixpkgs/pkgs/development/tools/literate-programming/funnelweb/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     version = "3.20";
     description = "A simple, reliable literate-programming macro preprocessor";
+    mainProgram = "fw";
     homepage = "http://www.ross.net/funnelweb/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/literate-programming/md-tangle/default.nix b/nixpkgs/pkgs/development/tools/literate-programming/md-tangle/default.nix
index fd895c96c047..c9a0c01ea02d 100644
--- a/nixpkgs/pkgs/development/tools/literate-programming/md-tangle/default.nix
+++ b/nixpkgs/pkgs/development/tools/literate-programming/md-tangle/default.nix
@@ -22,6 +22,7 @@ python3.pkgs.buildPythonPackage rec {
   meta = with lib;{
     homepage = "https://github.com/joakimmj/md-tangle/";
     description = "Generates (\"tangles\") source code from Markdown documents";
+    mainProgram = "md-tangle";
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
   };
diff --git a/nixpkgs/pkgs/development/tools/literate-programming/nuweb/default.nix b/nixpkgs/pkgs/development/tools/literate-programming/nuweb/default.nix
index 9bc67375e269..c63f840a1547 100644
--- a/nixpkgs/pkgs/development/tools/literate-programming/nuweb/default.nix
+++ b/nixpkgs/pkgs/development/tools/literate-programming/nuweb/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple literate programming tool";
+    mainProgram = "nuweb";
     homepage = "https://nuweb.sourceforge.net";
     license = licenses.free;
     maintainers = [ maintainers.AndersonTorres ];
diff --git a/nixpkgs/pkgs/development/tools/ls-lint/default.nix b/nixpkgs/pkgs/development/tools/ls-lint/default.nix
index 7a6ae03aea78..6deb41082e46 100644
--- a/nixpkgs/pkgs/development/tools/ls-lint/default.nix
+++ b/nixpkgs/pkgs/development/tools/ls-lint/default.nix
@@ -2,19 +2,20 @@
 
 buildGoModule rec {
   pname = "ls-lint";
-  version = "2.2.2";
+  version = "2.2.3";
 
   src = fetchFromGitHub {
     owner = "loeffel-io";
     repo = "ls-lint";
     rev = "v${version}";
-    sha256 = "sha256-twXaiPccc6DZdzKdvB+BzHbRuwgDy05C3jNg7Ur8yrA=";
+    sha256 = "sha256-blhb7+SmB3p6udGcbA8eCpSaqlTCca8J0Y/8riNRjW0=";
   };
 
-  vendorHash = "sha256-uyNOcIjrICr76Q8izXGRMhofDcjQrzbB/ISHTqRY5fI=";
+  vendorHash = "sha256-qXx83jtkVzN+ydXjW4Nkz49rhSLbAS2597iuYUDsEo4=";
 
   meta = with lib; {
     description = "An extremely fast file and directory name linter";
+    mainProgram = "ls_lint";
     homepage = "https://ls-lint.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ flokli ];
diff --git a/nixpkgs/pkgs/development/tools/lurk/default.nix b/nixpkgs/pkgs/development/tools/lurk/default.nix
index b7ab1f95dead..a9412f2ca6eb 100644
--- a/nixpkgs/pkgs/development/tools/lurk/default.nix
+++ b/nixpkgs/pkgs/development/tools/lurk/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple and pretty alternative to strace";
+    mainProgram = "lurk";
     homepage = "https://github.com/jakwai01/lurk";
     changelog = "https://github.com/jakwai01/lurk/releases/tag/${src.rev}";
     license = licenses.agpl3Only;
diff --git a/nixpkgs/pkgs/development/tools/makerpm/default.nix b/nixpkgs/pkgs/development/tools/makerpm/default.nix
index 5b7fc83df407..ba4d87d41342 100644
--- a/nixpkgs/pkgs/development/tools/makerpm/default.nix
+++ b/nixpkgs/pkgs/development/tools/makerpm/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/ivan-tkatchev/makerpm/";
     description = "A clean, simple RPM packager reimplemented completely from scratch";
+    mainProgram = "makerpm";
     license = licenses.free;
     platforms = platforms.all;
     maintainers = [ maintainers.ivan-tkatchev ];
diff --git a/nixpkgs/pkgs/development/tools/maligned/default.nix b/nixpkgs/pkgs/development/tools/maligned/default.nix
index 96290040761b..ae38fdc91e3d 100644
--- a/nixpkgs/pkgs/development/tools/maligned/default.nix
+++ b/nixpkgs/pkgs/development/tools/maligned/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to detect Go structs that would take less memory if their fields were sorted";
+    mainProgram = "maligned";
     homepage = "https://github.com/mdempsky/maligned";
     license = licenses.bsd3;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/nixpkgs/pkgs/development/tools/mani/default.nix b/nixpkgs/pkgs/development/tools/mani/default.nix
index 19b1d673962a..add490154d66 100644
--- a/nixpkgs/pkgs/development/tools/mani/default.nix
+++ b/nixpkgs/pkgs/development/tools/mani/default.nix
@@ -34,6 +34,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI tool to help you manage multiple repositories";
+    mainProgram = "mani";
     longDescription = ''
       mani is a CLI tool that helps you manage multiple repositories. It's useful
       when you are working with microservices, multi-project systems, many
diff --git a/nixpkgs/pkgs/development/tools/manifest-tool/default.nix b/nixpkgs/pkgs/development/tools/manifest-tool/default.nix
index bba035d01e7c..8bf6ed9804c6 100644
--- a/nixpkgs/pkgs/development/tools/manifest-tool/default.nix
+++ b/nixpkgs/pkgs/development/tools/manifest-tool/default.nix
@@ -55,6 +55,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command line tool to create and query container image manifest list/indexes";
+    mainProgram = "manifest-tool";
     homepage = "https://github.com/estesp/manifest-tool";
     license = licenses.asl20;
     maintainers = with maintainers; [ tricktron ];
diff --git a/nixpkgs/pkgs/development/tools/mars-mips/default.nix b/nixpkgs/pkgs/development/tools/mars-mips/default.nix
index 4fafaabaa3dc..66b9684175c3 100644
--- a/nixpkgs/pkgs/development/tools/mars-mips/default.nix
+++ b/nixpkgs/pkgs/development/tools/mars-mips/default.nix
@@ -1,25 +1,42 @@
-{ lib, stdenvNoCC, fetchurl, makeWrapper, copyDesktopItems, makeDesktopItem, unzip, imagemagick, jre }:
+{ lib
+, stdenv
+, fetchurl
+, makeBinaryWrapper
+, copyDesktopItems
+, makeDesktopItem
+, desktopToDarwinBundle
+, unzip
+, imagemagick
+, jre
+}:
 
-stdenvNoCC.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "mars-mips";
   version = "4.5";
 
   src = fetchurl {
-    url = "https://courses.missouristate.edu/KenVollmar/MARS/MARS_${lib.replaceStrings ["."] ["_"] version}_Aug2014/Mars${lib.replaceStrings ["."] ["_"] version}.jar";
-    sha256 = "15kh1fahkkbbf4wvb6ijzny4fi5dh4pycxyzp5325dm2ddkhnd5c";
+    url = "https://courses.missouristate.edu/KenVollmar/MARS/MARS_${lib.replaceStrings ["."] ["_"] finalAttrs.version}_Aug2014/Mars${lib.replaceStrings ["."] ["_"] finalAttrs.version}.jar";
+    hash = "sha256-rDQLZ2uitiJGud935i+BrURHvP0ymrU5cWvNCZULcJY=";
   };
 
   dontUnpack = true;
 
-  nativeBuildInputs = [ makeWrapper copyDesktopItems unzip imagemagick ];
+  nativeBuildInputs = [
+    makeBinaryWrapper
+    copyDesktopItems
+    unzip
+    imagemagick
+  ] ++ lib.optionals stdenv.isDarwin [
+    desktopToDarwinBundle
+  ];
 
   desktopItems = [
     (makeDesktopItem {
-      name = pname;
+      name = "mars";
       desktopName = "MARS";
-      exec = "mars-mips";
-      icon = "mars-mips";
-      comment = "An IDE for programming in MIPS assembly language";
+      exec = "Mars";
+      icon = "mars";
+      comment = finalAttrs.meta.description;
       categories = [ "Development" "IDE" ];
     })
   ];
@@ -27,24 +44,28 @@ stdenvNoCC.mkDerivation rec {
   installPhase = ''
     runHook preInstall
 
-    export JAR=$out/share/java/${pname}/${pname}.jar
-    install -D $src $JAR
-    makeWrapper ${jre}/bin/java $out/bin/${pname} \
+    export JAR=$out/share/java/mars/Mars.jar
+    install -Dm444 $src $JAR
+    makeWrapper ${jre}/bin/java $out/bin/Mars \
       --add-flags "-jar $JAR"
 
-    unzip ${src} images/MarsThumbnail.gif
-    mkdir -p $out/share/pixmaps
-    convert images/MarsThumbnail.gif $out/share/pixmaps/mars-mips.png
+    unzip $src images/MarsThumbnail.gif
+    for size in 16 24 32 48 64 128 256 512
+    do
+      mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
+      convert -resize "$size"x"$size" images/MarsThumbnail.gif $out/share/icons/hicolor/"$size"x"$size"/apps/mars.png
+    done
 
     runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
     description = "An IDE for programming in MIPS assembly language intended for educational-level use";
+    mainProgram = "Mars";
     homepage = "https://courses.missouristate.edu/KenVollmar/MARS/";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
-    license = licenses.mit;
-    maintainers = with maintainers; [ emilytrau ];
-    platforms = platforms.all;
+    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ emilytrau ];
+    platforms = lib.platforms.all;
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/tools/mask/default.nix b/nixpkgs/pkgs/development/tools/mask/default.nix
index e936535779b5..3c9d62ddd26d 100644
--- a/nixpkgs/pkgs/development/tools/mask/default.nix
+++ b/nixpkgs/pkgs/development/tools/mask/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A CLI task runner defined by a simple markdown file";
+    mainProgram = "mask";
     homepage = "https://github.com/jacobdeichert/mask";
     changelog = "https://github.com/jacobdeichert/mask/blob/mask/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/melange/default.nix b/nixpkgs/pkgs/development/tools/melange/default.nix
index 1f726919bb98..40f4fa598731 100644
--- a/nixpkgs/pkgs/development/tools/melange/default.nix
+++ b/nixpkgs/pkgs/development/tools/melange/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "melange";
-  version = "0.6.5";
+  version = "0.6.9";
 
   src = fetchFromGitHub {
     owner = "chainguard-dev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Itb1FMdn/k5HBeJ4RGjsH0f5VVL8xeNiGo9tjkeec3Q=";
+    hash = "sha256-txyfoGl0MPMHQFOhdCQPVSLveYBVFIiDxJct1W6xYKM=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -25,7 +25,7 @@ buildGoModule rec {
     '';
   };
 
-  vendorHash = "sha256-qI7BAd0H5k6AjVZIjm5gd6+TF4YUXufskKinfj8y+So=";
+  vendorHash = "sha256-uMdphe78cEwypVZOyIvFgUJQuVQ3scd6SQc8y5Sqjdo=";
 
   subPackages = [ "." ];
 
@@ -66,6 +66,7 @@ buildGoModule rec {
     homepage = "https://github.com/chainguard-dev/melange";
     changelog = "https://github.com/chainguard-dev/melange/blob/${src.rev}/NEWS.md";
     description = "Build APKs from source code";
+    mainProgram = "melange";
     license = licenses.asl20;
     maintainers = with maintainers; [ developer-guy ];
   };
diff --git a/nixpkgs/pkgs/development/tools/micronaut/default.nix b/nixpkgs/pkgs/development/tools/micronaut/default.nix
index 83b3be70a0be..7304aa9e3ddb 100644
--- a/nixpkgs/pkgs/development/tools/micronaut/default.nix
+++ b/nixpkgs/pkgs/development/tools/micronaut/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "micronaut";
-  version = "4.3.4";
+  version = "4.3.6";
 
   src = fetchzip {
     url = "https://github.com/micronaut-projects/micronaut-starter/releases/download/v${version}/micronaut-cli-${version}.zip";
-    sha256 = "sha256-bvxVxmy2mPf9BDjoy3YvWk6LGUFoHZFAVKf3eFNHe1Y=";
+    sha256 = "sha256-iwV+yo9NkQr78ZMFiUAnFXPdK4ItB4o+75HNFpd7wpU=";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/nixpkgs/pkgs/development/tools/minizinc/ide.nix b/nixpkgs/pkgs/development/tools/minizinc/ide.nix
index ce115971f944..42dda7c4235d 100644
--- a/nixpkgs/pkgs/development/tools/minizinc/ide.nix
+++ b/nixpkgs/pkgs/development/tools/minizinc/ide.nix
@@ -5,13 +5,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "minizinc-ide";
-  version = "2.8.2";
+  version = "2.8.3";
 
   src = fetchFromGitHub {
     owner = "MiniZinc";
     repo = "MiniZincIDE";
     rev = version;
-    hash = "sha256-3L/hulNI7e2wE9gMt2h3mS0ubHZ4kcVpwALCmWQtv7A=";
+    hash = "sha256-/x4mWjAk24s6Ax22Q15WUPLLwm7YrzwaoMIINjQr5zU=";
     fetchSubmodules = true;
   };
 
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.minizinc.org/";
     description = "IDE for MiniZinc, a medium-level constraint modelling language";
+    mainProgram = "MiniZincIDE";
     longDescription = ''
       MiniZinc is a medium-level constraint modelling
       language. It is high-level enough to express most
diff --git a/nixpkgs/pkgs/development/tools/misc/abi-compliance-checker/default.nix b/nixpkgs/pkgs/development/tools/misc/abi-compliance-checker/default.nix
index c4dda95a7f25..3b3888861ba5 100644
--- a/nixpkgs/pkgs/development/tools/misc/abi-compliance-checker/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/abi-compliance-checker/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://lvc.github.io/abi-compliance-checker";
     description = "A tool for checking backward API/ABI compatibility of a C/C++ library";
+    mainProgram = "abi-compliance-checker";
     license = licenses.lgpl21;
     maintainers = [ maintainers.bhipple ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/misc/abi-dumper/default.nix b/nixpkgs/pkgs/development/tools/misc/abi-dumper/default.nix
index 6dd2bf41ba6f..09b30b6c6231 100644
--- a/nixpkgs/pkgs/development/tools/misc/abi-dumper/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/abi-dumper/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lvc/abi-dumper";
     description = "Dump ABI of an ELF object containing DWARF debug info";
+    mainProgram = "abi-dumper";
     license = licenses.lgpl21;
     maintainers = [ maintainers.bhipple ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/misc/act/default.nix b/nixpkgs/pkgs/development/tools/misc/act/default.nix
index 23b9c24fe95c..7f4e992f0983 100644
--- a/nixpkgs/pkgs/development/tools/misc/act/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/act/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Run your GitHub Actions locally";
+    mainProgram = "act";
     homepage = "https://github.com/nektos/act";
     changelog = "https://github.com/nektos/act/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/misc/astyle/default.nix b/nixpkgs/pkgs/development/tools/misc/astyle/default.nix
index 880530511e1b..6620207ae752 100644
--- a/nixpkgs/pkgs/development/tools/misc/astyle/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/astyle/default.nix
@@ -2,17 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "astyle";
-  version = "3.4.12";
+  version = "3.4.13";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    hash = "sha256-B3RZsp9zhvJWnBQsaKW2YHaAsMvaAhAgn/6m/w9atg4=";
+    hash = "sha256-eKYQq9OelOD5E+nuXNoehbtizWM1U97LngDT2SAQGc4=";
   };
 
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
     description = "Source code indenter, formatter, and beautifier for C, C++, C# and Java";
+    mainProgram = "astyle";
     homepage = "https://astyle.sourceforge.net/";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ carlossless ];
diff --git a/nixpkgs/pkgs/development/tools/misc/autogen/default.nix b/nixpkgs/pkgs/development/tools/misc/autogen/default.nix
index a1e543f30fa0..3cb6760842f5 100644
--- a/nixpkgs/pkgs/development/tools/misc/autogen/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/autogen/default.nix
@@ -51,6 +51,12 @@ stdenv.mkDerivation rec {
       url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-devel/autogen/files/autogen-5.18.16-guile-3.patch?id=43bcc61c56a5a7de0eaf806efec7d8c0e4c01ae7";
       sha256 = "18d7y1f6164dm1wlh7rzbacfygiwrmbc35a7qqsbdawpkhydm5lr";
     })
+    (fetchpatch {
+      name = "lfs64.patch";
+      url = "https://cygwin.com/cgit/cygwin-packages/autogen/plain/5.16.2-cygwin17.patch?id=6f39882873b3d1290ba3739e0557a84bfe05ba60";
+      stripLen = 1;
+      hash = "sha256-6dk2imqForUHKhI82CTronWaS3KUWW/EKfA/JZZcRe0=";
+    })
   ];
 
   outputs = [ "bin" "dev" "lib" "out" "man" "info" ];
@@ -79,6 +85,7 @@ stdenv.mkDerivation rec {
     # If you are curious about the number 78, it has been cargo-culted from
     # Debian: https://salsa.debian.org/debian/autogen/-/blob/master/debian/rules#L21
     "--enable-timeout=78"
+    "CFLAGS=-D_FILE_OFFSET_BITS=64"
   ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     # the configure check for regcomp wants to run a host program
     "libopts_cv_with_libregex=yes"
diff --git a/nixpkgs/pkgs/development/tools/misc/automaticcomponenttoolkit/default.nix b/nixpkgs/pkgs/development/tools/misc/automaticcomponenttoolkit/default.nix
index cf84a98467d6..59a9914891d7 100644
--- a/nixpkgs/pkgs/development/tools/misc/automaticcomponenttoolkit/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/automaticcomponenttoolkit/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Toolkit to automatically generate software components: abstract API, implementation stubs and language bindings";
+    mainProgram = "act";
     homepage = "https://github.com/Autodesk/AutomaticComponentToolkit";
     license = licenses.bsd2;
     maintainers = with maintainers; [ gebner ];
diff --git a/nixpkgs/pkgs/development/tools/misc/aviator/default.nix b/nixpkgs/pkgs/development/tools/misc/aviator/default.nix
index fe7e1bc9cf81..69b076834f7e 100644
--- a/nixpkgs/pkgs/development/tools/misc/aviator/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/aviator/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Merge YAML/JSON files in a in a convenient fashion";
+    mainProgram = "aviator";
     homepage = "https://github.com/herrjulz/aviator";
     license = licenses.mit;
     maintainers = with maintainers; [ risson ];
diff --git a/nixpkgs/pkgs/development/tools/misc/bashdb/default.nix b/nixpkgs/pkgs/development/tools/misc/bashdb/default.nix
index 2babde7afa6b..52119250f69c 100644
--- a/nixpkgs/pkgs/development/tools/misc/bashdb/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/bashdb/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Bash script debugger";
+    mainProgram = "bashdb";
     homepage = "https://bashdb.sourceforge.net/";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/misc/blackfire/default.nix b/nixpkgs/pkgs/development/tools/misc/blackfire/default.nix
index 5561ea866738..a1bc14653478 100644
--- a/nixpkgs/pkgs/development/tools/misc/blackfire/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/blackfire/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "blackfire";
-  version = "2.26.0";
+  version = "2.26.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 = "MCEMWKKTvmenMsQ6Vxmi8rQ25kuOeUEES43tHaexAA8=";
+        sha256 = "Ujl9Uicz3erD6+eerlyk7JU07X9gkqVTAgEZipwWPLQ=";
       };
       "i686-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_i386.deb";
-        sha256 = "afDtzRpdvgbA/1zRbnQJsKrvSTfGLbjIgA88pAch7mA=";
+        sha256 = "aVXxPvS8ZbMYFVg5IlUwNCJTh3mPpG/r71mHvKw/tuQ=";
       };
       "aarch64-linux" = fetchurl {
         url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_arm64.deb";
-        sha256 = "Noqle0K/H0wKwl4U8idoMT5wWY12W7p7nHMybbf3Ztc=";
+        sha256 = "I82I9+0IFPLkyfQJM1q/yYtX1QQhxPK0ZMm2tJaeDA8=";
       };
       "aarch64-darwin" = fetchurl {
         url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_arm64.pkg.tar.gz";
-        sha256 = "5AWsUUHTpCakG3WLUq+SZDjj0lvnYllzbBojpOgUQtA=";
+        sha256 = "yT3zZqtP7mInyjnfaalONvMNGywGylXsmReE3kzgKVg=";
       };
       "x86_64-darwin" = fetchurl {
         url = "https://packages.blackfire.io/blackfire/${version}/blackfire-darwin_amd64.pkg.tar.gz";
-        sha256 = "67xVi+FXztNIJe+kjXSwYHsX/1PWHP0QeFI8AwnrdP0=";
+        sha256 = "TlOa7/W1ChHV4Wwu6jEp9Jxl+PA/l48Te1H+u9sfiWc=";
       };
     };
 
diff --git a/nixpkgs/pkgs/development/tools/misc/bonnmotion/default.nix b/nixpkgs/pkgs/development/tools/misc/bonnmotion/default.nix
index cdd583bf4484..558902debd12 100644
--- a/nixpkgs/pkgs/development/tools/misc/bonnmotion/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/bonnmotion/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A mobility scenario generation and analysis tool";
+    mainProgram = "bm";
     longDescription = ''
       BonnMotion is a Java software which creates and analyzes mobility
       scenarios and is most commonly used as a tool for the investigation of
diff --git a/nixpkgs/pkgs/development/tools/misc/c2ffi/default.nix b/nixpkgs/pkgs/development/tools/misc/c2ffi/default.nix
index 77998dc339a0..a66ae2aa35ea 100644
--- a/nixpkgs/pkgs/development/tools/misc/c2ffi/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/c2ffi/default.nix
@@ -50,6 +50,7 @@ llvmPackages.stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/rpav/c2ffi";
     description = "An LLVM based tool for extracting definitions from C, C++, and Objective C header files for use with foreign function call interfaces";
+    mainProgram = "c2ffi";
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ ];
  };
diff --git a/nixpkgs/pkgs/development/tools/misc/cbrowser/default.nix b/nixpkgs/pkgs/development/tools/misc/cbrowser/default.nix
index a8f6e32f1e08..3bd4d3fc721c 100644
--- a/nixpkgs/pkgs/development/tools/misc/cbrowser/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/cbrowser/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Tcl/Tk GUI front-end to cscope";
+    mainProgram = "cbrowser";
 
     license = lib.licenses.gpl2Plus;
 
diff --git a/nixpkgs/pkgs/development/tools/misc/cflow/default.nix b/nixpkgs/pkgs/development/tools/misc/cflow/default.nix
index ab9966c6fca6..9cdd8595a421 100644
--- a/nixpkgs/pkgs/development/tools/misc/cflow/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/cflow/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool to analyze the control flow of C programs";
+    mainProgram = "cflow";
 
     longDescription = ''
       GNU cflow analyzes a collection of C source files and prints a
diff --git a/nixpkgs/pkgs/development/tools/misc/cgdb/default.nix b/nixpkgs/pkgs/development/tools/misc/cgdb/default.nix
index 62d26c09e514..6bf752cb5bcf 100644
--- a/nixpkgs/pkgs/development/tools/misc/cgdb/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/cgdb/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A curses interface to gdb";
+    mainProgram = "cgdb";
 
     homepage = "https://cgdb.github.io/";
 
diff --git a/nixpkgs/pkgs/development/tools/misc/checkbashisms/default.nix b/nixpkgs/pkgs/development/tools/misc/checkbashisms/default.nix
index b648a082fa3f..a9840a7cf277 100644
--- a/nixpkgs/pkgs/development/tools/misc/checkbashisms/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/checkbashisms/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://sourceforge.net/projects/checkbaskisms/";
     description = "Check shell scripts for non-portable syntax";
+    mainProgram = "checkbashisms";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ kaction ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/misc/chrpath/default.nix b/nixpkgs/pkgs/development/tools/misc/chrpath/default.nix
index 97da80cc7339..32cb4864a357 100644
--- a/nixpkgs/pkgs/development/tools/misc/chrpath/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/chrpath/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Command line tool to adjust the RPATH or RUNPATH of ELF binaries";
+    mainProgram = "chrpath";
     longDescription = ''
       chrpath changes, lists or removes the rpath or runpath setting in a
       binary. The rpath, or runpath if it is present, is where the runtime
diff --git a/nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix b/nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix
index 5b3ac8eeb27f..4afcebe5d98f 100644
--- a/nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "circleci-cli";
-  version = "0.1.30401";
+  version = "0.1.30549";
 
   src = fetchFromGitHub {
     owner = "CircleCI-Public";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ebZEZ24KQgGOimCIRHlI5Uwv1dO1W7s0dTrY/n3y9Ao=";
+    sha256 = "sha256-dzKMj1JKalbdID113cfFA1hbOW7PQk3pfJaRqIJdpts=";
   };
 
-  vendorHash = "sha256-GOC1ZL0F/VwLuQ5d8OpAczw59lnyindp8LKmBd+jwgI=";
+  vendorHash = "sha256-60edYYhbSPiJWmuQXXEt+xCnSxsHf8Q38RgyWwdP6vQ=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/development/tools/misc/complgen/default.nix b/nixpkgs/pkgs/development/tools/misc/complgen/default.nix
index 2f8d5e345678..8a540e77cfe2 100644
--- a/nixpkgs/pkgs/development/tools/misc/complgen/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/complgen/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Generate {bash,fish,zsh} completions from a single EBNF-like grammar";
+    mainProgram = "complgen";
     homepage = "https://github.com/adaszko/complgen";
     changelog = "https://github.com/adaszko/complgen/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/misc/cppi/default.nix b/nixpkgs/pkgs/development/tools/misc/cppi/default.nix
index b0dcfc6aa5ca..d8144dd5e9b0 100644
--- a/nixpkgs/pkgs/development/tools/misc/cppi/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/cppi/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
     homepage = "https://savannah.gnu.org/projects/cppi/";
 
     description = "A C preprocessor directive indenter";
+    mainProgram = "cppi";
 
     longDescription =
       '' GNU cppi indents C preprocessor directives to reflect their nesting
diff --git a/nixpkgs/pkgs/development/tools/misc/cproto/default.nix b/nixpkgs/pkgs/development/tools/misc/cproto/default.nix
index 9131a1795a25..976f34f35fb5 100644
--- a/nixpkgs/pkgs/development/tools/misc/cproto/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/cproto/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool to generate C function prototypes from C source code";
+    mainProgram = "cproto";
     homepage = "https://invisible-island.net/cproto/";
     license = licenses.publicDomain;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/misc/creduce/default.nix b/nixpkgs/pkgs/development/tools/misc/creduce/default.nix
index 918bd2efab73..90da97ae9e18 100644
--- a/nixpkgs/pkgs/development/tools/misc/creduce/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/creduce/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A C program reducer";
+    mainProgram = "creduce";
     homepage = "https://embed.cs.utah.edu/creduce";
     # Officially, the license is: https://github.com/csmith-project/creduce/blob/master/COPYING
     license = licenses.ncsa;
diff --git a/nixpkgs/pkgs/development/tools/misc/ctags/default.nix b/nixpkgs/pkgs/development/tools/misc/ctags/default.nix
index b33d6cafbe4a..228de9300b0c 100644
--- a/nixpkgs/pkgs/development/tools/misc/ctags/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ctags/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A tool for fast source code browsing (exuberant ctags)";
+    mainProgram = "ctags";
     longDescription = ''
       Ctags generates an index (or tag) file of language objects found
       in source files that allows these items to be quickly and easily
diff --git a/nixpkgs/pkgs/development/tools/misc/cvise/default.nix b/nixpkgs/pkgs/development/tools/misc/cvise/default.nix
index f65b0386cfd8..129b534339ee 100644
--- a/nixpkgs/pkgs/development/tools/misc/cvise/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/cvise/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonApplication
 , fetchFromGitHub
-, fetchpatch
 , bash
 , cmake
 , colordiff
@@ -17,27 +16,19 @@
 
 buildPythonApplication rec {
   pname = "cvise";
-  version = "2.9.0";
+  version = "2.10.0";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "marxin";
     repo = "cvise";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4LEKVh3jNU3xOq75+IQezjhbL/6uAGQ3r0Au2cxx1WA=";
+    hash = "sha256-0gk4O1q90eH1FMhj4ncNVqX/MfVyaU0nckh1xny2wlM=";
   };
 
   patches = [
     # Refer to unifdef by absolute path.
     ./unifdef.patch
-
-    # Refer to shell via /usr/bin/env:
-    #   https://github.com/marxin/cvise/pull/121
-    (fetchpatch {
-      name = "env-shell.patch";
-      url = "https://github.com/marxin/cvise/commit/6a416eb590be978a2ad25c610974fdde84e88651.patch";
-      hash = "sha256-Kn6+TXP+wJpMs6jrgsa9OwjXf6vmIgGzny8jg3dfKWA=";
-    })
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/tools/misc/d-feet/default.nix b/nixpkgs/pkgs/development/tools/misc/d-feet/default.nix
deleted file mode 100644
index c59ed440b7c0..000000000000
--- a/nixpkgs/pkgs/development/tools/misc/d-feet/default.nix
+++ /dev/null
@@ -1,90 +0,0 @@
-{ lib
-, pkg-config
-, fetchurl
-, fetchpatch
-, meson
-, ninja
-, glib
-, gtk3
-, python3
-, wrapGAppsHook
-, gnome
-, libwnck
-, gobject-introspection
-, gettext
-, itstool
-}:
-
-python3.pkgs.buildPythonApplication rec {
-  pname = "d-feet";
-  version = "0.3.16";
-
-  format = "other";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/d-feet/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "hzPOS5qaVOwYWx2Fv02p2dEQUogqiAdg/2D5d5stHMs=";
-  };
-
-  patches = [
-    # Fix build with meson 0.61
-    # data/meson.build:15:0: ERROR: Function does not take positional arguments.
-    # data/meson.build:27:0: ERROR: Function does not take positional arguments.
-    # Patch taken from https://gitlab.gnome.org/GNOME/d-feet/-/merge_requests/32
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/d-feet/-/commit/05465d486afdba116dbc22fc22c1e6573aea4f22.patch";
-      sha256 = "sFI3nd0YE/deGws/YcTpzC/em9QNgicyb4j7cTfOdhY=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    gettext
-    gobject-introspection
-    itstool
-    meson
-    ninja
-    pkg-config
-    python3
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    glib
-    gnome.adwaita-icon-theme
-    gtk3
-    libwnck
-  ];
-
-  propagatedBuildInputs = with python3.pkgs; [
-    pygobject3
-  ];
-
-  mesonFlags = [
-    "-Dtests=false" # needs dbus
-  ];
-
-  postPatch = ''
-    chmod +x meson_post_install.py
-    patchShebangs meson_post_install.py
-  '';
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "dfeet";
-      versionPolicy = "none";
-    };
-  };
-
-  meta = with lib; {
-    description = "D-Feet is an easy to use D-Bus debugger";
-    longDescription = ''
-      D-Feet can be used to inspect D-Bus interfaces of running programs
-      and invoke methods on those interfaces.
-    '';
-    homepage = "https://wiki.gnome.org/Apps/DFeet";
-    platforms = platforms.linux;
-    license = licenses.gpl2;
-    maintainers = teams.gnome.members;
-  };
-}
diff --git a/nixpkgs/pkgs/development/tools/misc/d-spy/default.nix b/nixpkgs/pkgs/development/tools/misc/d-spy/default.nix
index 2d2ca20c0bc4..e48a51f4870f 100644
--- a/nixpkgs/pkgs/development/tools/misc/d-spy/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/d-spy/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "D-Bus exploration tool";
+    mainProgram = "d-spy";
     homepage = "https://gitlab.gnome.org/GNOME/d-spy";
     license = with licenses; [
       lgpl3Plus # library
diff --git a/nixpkgs/pkgs/development/tools/misc/dart-sass/default.nix b/nixpkgs/pkgs/development/tools/misc/dart-sass/default.nix
index da8db73ebabb..e4c9f9f63747 100644
--- a/nixpkgs/pkgs/development/tools/misc/dart-sass/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/dart-sass/default.nix
@@ -21,13 +21,13 @@ let
 in
 buildDartApplication rec {
   pname = "dart-sass";
-  version = "1.71.1";
+  version = "1.72.0";
 
   src = fetchFromGitHub {
     owner = "sass";
     repo = pname;
     rev = version;
-    hash = "sha256-MFBAc89Ib++Qve+SjkOOeZhdpH8Kwoic9U+d2ldt8W8=";
+    hash = "sha256-wDZz7tR3AfUoRD0JXetXOH73W2WDFnwV4vUHRPGxiDc=";
   };
 
   pubspecLock = lib.importJSON ./pubspec.lock.json;
diff --git a/nixpkgs/pkgs/development/tools/misc/dart-sass/pubspec.lock.json b/nixpkgs/pkgs/development/tools/misc/dart-sass/pubspec.lock.json
index dd6f237f3405..632630aec9f8 100644
--- a/nixpkgs/pkgs/development/tools/misc/dart-sass/pubspec.lock.json
+++ b/nixpkgs/pkgs/development/tools/misc/dart-sass/pubspec.lock.json
@@ -84,11 +84,11 @@
       "dependency": "direct main",
       "description": {
         "name": "cli_pkg",
-        "sha256": "b15d9558c6a44f20840198e385e3e4fe1fcb17d1a45e60e0657d9bd42e630a61",
+        "sha256": "f812467b5d6a5f26ad0fba5dcfc95133df02edbae47dfa4ade3df5d2b5afdcf2",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.9.0"
+      "version": "2.10.0"
     },
     "cli_repl": {
       "dependency": "direct main",
@@ -160,35 +160,45 @@
       "source": "hosted",
       "version": "1.0.0"
     },
+    "dart_mappable": {
+      "dependency": "transitive",
+      "description": {
+        "name": "dart_mappable",
+        "sha256": "f9f272f2af6c11adf4abc22574eb946df110251052a0d00c03519ecf2442defc",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "4.2.1"
+    },
     "dart_style": {
       "dependency": "direct dev",
       "description": {
         "name": "dart_style",
-        "sha256": "40ae61a5d43feea6d24bd22c0537a6629db858963b99b4bc1c3db80676f32368",
+        "sha256": "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.3.4"
+      "version": "2.3.6"
     },
     "dartdoc": {
       "dependency": "direct dev",
       "description": {
         "name": "dartdoc",
-        "sha256": "6b147cb40a72557749d7a6594eb4e065057be54b44000cd57273e4a450c3b84e",
+        "sha256": "09c07e4b5313a301f8a6fe5a3b43d2dd7fd2b0817d51d563f7dcacdac62ecf68",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "8.0.5"
+      "version": "8.0.7"
     },
     "ffi": {
       "dependency": "transitive",
       "description": {
         "name": "ffi",
-        "sha256": "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878",
+        "sha256": "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.1.0"
+      "version": "2.1.2"
     },
     "file": {
       "dependency": "transitive",
@@ -254,11 +264,11 @@
       "dependency": "direct main",
       "description": {
         "name": "http",
-        "sha256": "a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba",
+        "sha256": "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "1.2.0"
+      "version": "1.2.1"
     },
     "http_multi_server": {
       "dependency": "transitive",
@@ -334,11 +344,11 @@
       "dependency": "transitive",
       "description": {
         "name": "markdown",
-        "sha256": "1b134d9f8ff2da15cb298efe6cd8b7d2a78958c1b00384ebcbdf13fe340a6c90",
+        "sha256": "ef2a1298144e3f985cc736b22e0ccdaf188b5b3970648f2d9dc13efd1d9df051",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "7.2.1"
+      "version": "7.2.2"
     },
     "matcher": {
       "dependency": "transitive",
@@ -494,11 +504,11 @@
       "dependency": "direct dev",
       "description": {
         "name": "pub_api_client",
-        "sha256": "d456816ef5142906a22dc56e37be6bef6cb0276f0a26c11d1f7d277868202e71",
+        "sha256": "cc3d2c93df3823553de6a3e7d3ac09a3f43f8c271af4f43c2795266090ac9625",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.6.0"
+      "version": "2.7.0"
     },
     "pub_semver": {
       "dependency": "direct main",
@@ -720,6 +730,16 @@
       "source": "hosted",
       "version": "2.1.0"
     },
+    "type_plus": {
+      "dependency": "transitive",
+      "description": {
+        "name": "type_plus",
+        "sha256": "2e33cfac2e129297d5874567bdf7587502ec359881e9318551e014d91b02f84a",
+        "url": "https://pub.dev"
+      },
+      "source": "hosted",
+      "version": "2.1.0"
+    },
     "typed_data": {
       "dependency": "direct main",
       "description": {
@@ -744,11 +764,11 @@
       "dependency": "transitive",
       "description": {
         "name": "vm_service",
-        "sha256": "a2662fb1f114f4296cf3f5a50786a2d888268d7776cf681aa17d660ffa23b246",
+        "sha256": "e7d5ecd604e499358c5fe35ee828c0298a320d54455e791e9dcf73486bc8d9f0",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "14.0.0"
+      "version": "14.1.0"
     },
     "watcher": {
       "dependency": "direct main",
@@ -764,21 +784,21 @@
       "dependency": "transitive",
       "description": {
         "name": "web",
-        "sha256": "4188706108906f002b3a293509234588823c8c979dc83304e229ff400c996b05",
+        "sha256": "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "0.4.2"
+      "version": "0.5.1"
     },
     "web_socket_channel": {
       "dependency": "transitive",
       "description": {
         "name": "web_socket_channel",
-        "sha256": "939ab60734a4f8fa95feacb55804fa278de28bdeef38e616dc08e44a84adea23",
+        "sha256": "1d8e795e2a8b3730c41b8a98a2dff2e0fb57ae6f0764a1c46ec5915387d257b2",
         "url": "https://pub.dev"
       },
       "source": "hosted",
-      "version": "2.4.3"
+      "version": "2.4.4"
     },
     "webkit_inspection_protocol": {
       "dependency": "transitive",
@@ -812,6 +832,6 @@
     }
   },
   "sdks": {
-    "dart": ">=3.2.0 <4.0.0"
+    "dart": ">=3.3.0 <4.0.0"
   }
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/dbench/default.nix b/nixpkgs/pkgs/development/tools/misc/dbench/default.nix
index bb95f21f68d6..796536b9e2aa 100644
--- a/nixpkgs/pkgs/development/tools/misc/dbench/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/dbench/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Filesystem benchmark tool based on load patterns";
+    mainProgram = "dbench";
     homepage = "https://dbench.samba.org/";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/misc/ddd/default.nix b/nixpkgs/pkgs/development/tools/misc/ddd/default.nix
index e3d55472faac..10f3fa161f73 100644
--- a/nixpkgs/pkgs/development/tools/misc/ddd/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ddd/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://www.gnu.org/software/ddd";
     description = "Graphical front-end for command-line debuggers";
+    mainProgram = "ddd";
     license = lib.licenses.gpl3Plus;
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ emilytrau ];
diff --git a/nixpkgs/pkgs/development/tools/misc/deheader/default.nix b/nixpkgs/pkgs/development/tools/misc/deheader/default.nix
index 7847c29f67c5..5c2fdb20376f 100644
--- a/nixpkgs/pkgs/development/tools/misc/deheader/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/deheader/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool to find and optionally remove unneeded includes in C or C++ source files";
+    mainProgram = "deheader";
     longDescription = ''
       This tool takes a list of C or C++ sourcefiles and generates a report
       on which #includes can be omitted from them -- the test, for each foo.c
diff --git a/nixpkgs/pkgs/development/tools/misc/dfu-programmer/default.nix b/nixpkgs/pkgs/development/tools/misc/dfu-programmer/default.nix
index 062f68c83438..71658e18d552 100644
--- a/nixpkgs/pkgs/development/tools/misc/dfu-programmer/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/dfu-programmer/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     license = licenses.gpl2;
     description = "A Device Firmware Update based USB programmer for Atmel chips with a USB bootloader";
+    mainProgram = "dfu-programmer";
     homepage = "http://dfu-programmer.sourceforge.net/";
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/tools/misc/direvent/default.nix b/nixpkgs/pkgs/development/tools/misc/direvent/default.nix
index 79a238ad0c0c..bc7b7b5160a1 100644
--- a/nixpkgs/pkgs/development/tools/misc/direvent/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/direvent/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Directory event monitoring daemon";
+    mainProgram = "direvent";
     homepage = "https://www.gnu.org.ua/software/direvent/";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/misc/dura/default.nix b/nixpkgs/pkgs/development/tools/misc/dura/default.nix
index eba3f16c3659..f82205dacaa7 100644
--- a/nixpkgs/pkgs/development/tools/misc/dura/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/dura/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A background process that saves uncommitted changes on git";
+    mainProgram = "dura";
     longDescription = ''
       Dura is a background process that watches your Git repositories and
       commits your uncommitted changes without impacting HEAD, the current
diff --git a/nixpkgs/pkgs/development/tools/misc/dwz/default.nix b/nixpkgs/pkgs/development/tools/misc/dwz/default.nix
index 0a13d4a68dd0..852201cf7114 100644
--- a/nixpkgs/pkgs/development/tools/misc/dwz/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/dwz/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://sourceware.org/dwz/";
     description = "DWARF optimization and duplicate removal tool";
+    mainProgram = "dwz";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ jbcrail ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/misc/edb/default.nix b/nixpkgs/pkgs/development/tools/misc/edb/default.nix
index fdde4064698c..d6fac75190f6 100644
--- a/nixpkgs/pkgs/development/tools/misc/edb/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/edb/default.nix
@@ -34,6 +34,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Cross platform AArch32/x86/x86-64 debugger";
+    mainProgram = "edb";
     homepage = "https://github.com/eteran/edb-debugger";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ lihop maxxk ];
diff --git a/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix b/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix
index 3aedd876de6d..2b3844cefcbc 100644
--- a/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
   meta = with lib; {
     changelog = "https://github.com/editorconfig-checker/editorconfig-checker/releases/tag/${src.rev}";
     description = "A tool to verify that your files are in harmony with your .editorconfig";
+    mainProgram = "editorconfig-checker";
     homepage = "https://editorconfig-checker.github.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ uri-canva zowoq ];
diff --git a/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix b/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix
index 5ea97b77eeb8..6b0c5b21af41 100644
--- a/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Small utility for showing information about ELF files";
+    mainProgram = "elfinfo";
     homepage = "https://elfinfo.roboticoverlords.org/";
     changelog = "https://github.com/xyproto/elfinfo/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/tools/misc/ezno/default.nix b/nixpkgs/pkgs/development/tools/misc/ezno/default.nix
index a31ab1560746..89654eef5c56 100644
--- a/nixpkgs/pkgs/development/tools/misc/ezno/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ezno/default.nix
@@ -26,6 +26,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A JavaScript compiler and TypeScript checker with a focus on static analysis and runtime performance";
+    mainProgram = "ezno";
     homepage = "https://github.com/kaleidawave/ezno";
     changelog = "https://github.com/kaleidawave/ezno/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/misc/findnewest/default.nix b/nixpkgs/pkgs/development/tools/misc/findnewest/default.nix
index 6773e9bc0bd4..adf791cf6030 100644
--- a/nixpkgs/pkgs/development/tools/misc/findnewest/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/findnewest/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/0-wiz-0/findnewest";
     description = "Recursively find newest file in a hierarchy and print its timestamp";
+    mainProgram = "fn";
     license = licenses.bsd2;
     maintainers = with maintainers; [ bhipple ];
   };
diff --git a/nixpkgs/pkgs/development/tools/misc/fsatrace/default.nix b/nixpkgs/pkgs/development/tools/misc/fsatrace/default.nix
index 408a88687e64..d99374ac5373 100644
--- a/nixpkgs/pkgs/development/tools/misc/fsatrace/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/fsatrace/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/jacereda/fsatrace";
     description = "filesystem access tracer";
+    mainProgram = "fsatrace";
     license = licenses.isc;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix b/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix
index 7b8f9638b7b9..0422da98839b 100644
--- a/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A cross-platform file change monitor with multiple backends";
+    mainProgram = "fswatch";
     homepage = "https://github.com/emcrisostomo/fswatch";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/misc/fzf-make/default.nix b/nixpkgs/pkgs/development/tools/misc/fzf-make/default.nix
index faf9a8740e11..c51e14bc3cd6 100644
--- a/nixpkgs/pkgs/development/tools/misc/fzf-make/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/fzf-make/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fzf-make";
-  version = "0.24.0";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "kyu08";
     repo = "fzf-make";
     rev = "v${version}";
-    hash = "sha256-2RA4EVhmn8edolUeL7y9b8PssPSGIZZjHx340J0GqVE=";
+    hash = "sha256-jElKCOCTG33ysePz4SfrbN9xWdTB83G+/9DUqNKI6x8=";
   };
 
-  cargoHash = "sha256-Jfh+PMOep1WWTyt+LTGg+3f9pb6DlWu4ZLE9qvv8QyQ=";
+  cargoHash = "sha256-kXp/2F32aJFQ5z0TeggZWv1S2rDpnTPEYyHNZCtEjtg=";
 
   nativeBuildInputs = [ makeBinaryWrapper ];
 
diff --git a/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix b/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix
index d42639892062..8702fc32b481 100644
--- a/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix
@@ -44,6 +44,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "A browser-based frontend for GDB";
+    mainProgram = "gdbgui";
     homepage = "https://www.gdbgui.com/";
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/misc/gede/default.nix b/nixpkgs/pkgs/development/tools/misc/gede/default.nix
index 12fe5b19a986..6ae512657666 100644
--- a/nixpkgs/pkgs/development/tools/misc/gede/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gede/default.nix
@@ -27,6 +27,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical frontend (GUI) to GDB";
+    mainProgram = "gede";
     homepage = "http://gede.dexar.se";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/misc/gef/default.nix b/nixpkgs/pkgs/development/tools/misc/gef/default.nix
index ddd1bf746e6c..9b9d81ca5c0e 100644
--- a/nixpkgs/pkgs/development/tools/misc/gef/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gef/default.nix
@@ -75,6 +75,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A modern experience for GDB with advanced debugging features for exploit developers & reverse engineers";
+    mainProgram = "gef";
     homepage = "https://github.com/hugsy/gef";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/misc/gengetopt/default.nix b/nixpkgs/pkgs/development/tools/misc/gengetopt/default.nix
index 6420d56bba2f..9ef5ec24d545 100644
--- a/nixpkgs/pkgs/development/tools/misc/gengetopt/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gengetopt/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Command-line option parser generator";
+    mainProgram = "gengetopt";
 
     longDescription =
       '' GNU Gengetopt program generates a C function that uses getopt_long
diff --git a/nixpkgs/pkgs/development/tools/misc/go-licenses/default.nix b/nixpkgs/pkgs/development/tools/misc/go-licenses/default.nix
index d6bea02c05bd..6d1e6dce1609 100644
--- a/nixpkgs/pkgs/development/tools/misc/go-licenses/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/go-licenses/default.nix
@@ -53,6 +53,7 @@ buildGoModule rec {
   meta = with lib; {
     changelog = "https://github.com/google/go-licenses/releases/tag/v${version}";
     description = "Reports on the licenses used by a Go package and its dependencies";
+    mainProgram = "go-licenses";
     homepage = "https://github.com/google/go-licenses";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ Luflosi ];
diff --git a/nixpkgs/pkgs/development/tools/misc/go-md2man/default.nix b/nixpkgs/pkgs/development/tools/misc/go-md2man/default.nix
index e569009f273d..86d27a587b73 100644
--- a/nixpkgs/pkgs/development/tools/misc/go-md2man/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/go-md2man/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Go tool to convert markdown to man pages";
+    mainProgram = "go-md2man";
     license = licenses.mit;
     homepage = "https://github.com/cpuguy83/go-md2man";
     maintainers = with maintainers; [offline];
diff --git a/nixpkgs/pkgs/development/tools/misc/gob2/default.nix b/nixpkgs/pkgs/development/tools/misc/gob2/default.nix
index 06487845fb3d..deef55569e90 100644
--- a/nixpkgs/pkgs/development/tools/misc/gob2/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gob2/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Preprocessor for making GObjects with inline C code";
+    mainProgram = "gob2";
     homepage = "https://www.jirka.org/gob.html";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/misc/gopatch/default.nix b/nixpkgs/pkgs/development/tools/misc/gopatch/default.nix
index 162f60cb30c1..afa2bd752296 100644
--- a/nixpkgs/pkgs/development/tools/misc/gopatch/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gopatch/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Refactoring and code transformation tool for Go";
+    mainProgram = "gopatch";
     homepage = "https://github.com/uber-go/gopatch";
     changelog = "https://github.com/uber-go/gopatch/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/misc/gperf/3.0.x.nix b/nixpkgs/pkgs/development/tools/misc/gperf/3.0.x.nix
index 8a2fdf6ec4b3..bceef7502a87 100644
--- a/nixpkgs/pkgs/development/tools/misc/gperf/3.0.x.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gperf/3.0.x.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Perfect hash function generator";
+    mainProgram = "gperf";
 
     longDescription = ''
       GNU gperf is a perfect hash function generator.  For a given
diff --git a/nixpkgs/pkgs/development/tools/misc/gpuvis/default.nix b/nixpkgs/pkgs/development/tools/misc/gpuvis/default.nix
index c0a10a09b02b..d553f29db06e 100644
--- a/nixpkgs/pkgs/development/tools/misc/gpuvis/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gpuvis/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GPU Trace Visualizer";
+    mainProgram = "gpuvis";
     homepage = "https://github.com/mikesart/gpuvis";
     license = licenses.mit;
     maintainers = with maintainers; [ emantor ];
diff --git a/nixpkgs/pkgs/development/tools/misc/grcov/default.nix b/nixpkgs/pkgs/development/tools/misc/grcov/default.nix
index c40fea7f397e..d097f389deb9 100644
--- a/nixpkgs/pkgs/development/tools/misc/grcov/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/grcov/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description =
       "Rust tool to collect and aggregate code coverage data for multiple source files";
+    mainProgram = "grcov";
     homepage = "https://github.com/mozilla/grcov";
     license = licenses.mpl20;
     maintainers = with maintainers; [ DieracDelta ];
diff --git a/nixpkgs/pkgs/development/tools/misc/grpc-client-cli/default.nix b/nixpkgs/pkgs/development/tools/misc/grpc-client-cli/default.nix
index a44a550c2fb8..5a337aafb9e9 100644
--- a/nixpkgs/pkgs/development/tools/misc/grpc-client-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/grpc-client-cli/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "generic gRPC command line client";
+    mainProgram = "grpc-client-cli";
     maintainers = with maintainers; [ Philipp-M ];
     homepage = "https://github.com/vadimi/grpc-client-cli";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/misc/gtkdialog/default.nix b/nixpkgs/pkgs/development/tools/misc/gtkdialog/default.nix
index 995a6bb9cdb9..378cdb5705d2 100644
--- a/nixpkgs/pkgs/development/tools/misc/gtkdialog/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gtkdialog/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
     homepage = "https://code.google.com/archive/p/gtkdialog/";
     # community links: http://murga-linux.com/puppy/viewtopic.php?t=111923 -> https://github.com/01micko/gtkdialog
     description = "Small utility for fast and easy GUI building from many scripted and compiled languages";
+    mainProgram = "gtkdialog";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/development/tools/misc/gtkperf/default.nix b/nixpkgs/pkgs/development/tools/misc/gtkperf/default.nix
index c977ca3070e4..a478306cad67 100644
--- a/nixpkgs/pkgs/development/tools/misc/gtkperf/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gtkperf/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Application designed to test GTK performance";
+    mainProgram = "gtkperf";
     homepage = "https://gtkperf.sourceforge.net/";
     license = with licenses; [ gpl2 ];
     maintainers = with maintainers; [ dtzWill ];
diff --git a/nixpkgs/pkgs/development/tools/misc/help2man/default.nix b/nixpkgs/pkgs/development/tools/misc/help2man/default.nix
index 5c54941b9077..9fd35a094db8 100644
--- a/nixpkgs/pkgs/development/tools/misc/help2man/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/help2man/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Generate man pages from `--help' output";
+    mainProgram = "help2man";
     longDescription = ''
       help2man produces simple manual pages from the ‘--help’ and ‘--version’ output of other commands.
     '';
diff --git a/nixpkgs/pkgs/development/tools/misc/highlight-assertions/default.nix b/nixpkgs/pkgs/development/tools/misc/highlight-assertions/default.nix
index 9e4ed0e61dd8..5db0a722dc10 100644
--- a/nixpkgs/pkgs/development/tools/misc/highlight-assertions/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/highlight-assertions/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool for unit testing tree sitter highlights for nvim-treesitter";
+    mainProgram = "highlight-assertions";
     homepage = "https://github.com/thehamsta/highlight-assertions";
     license = licenses.asl20;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/misc/httpref/default.nix b/nixpkgs/pkgs/development/tools/misc/httpref/default.nix
index 4417a81b66ec..f2c0f58a3094 100644
--- a/nixpkgs/pkgs/development/tools/misc/httpref/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/httpref/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command line, offline, access to HTTP status code, common header, and port references";
+    mainProgram = "httpref";
     homepage = "https://github.com/dnnrly/httpref";
     changelog = "https://github.com/dnnrly/httpref/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/misc/husky/default.nix b/nixpkgs/pkgs/development/tools/misc/husky/default.nix
index dd2fef2a6026..cd613b925b2d 100644
--- a/nixpkgs/pkgs/development/tools/misc/husky/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/husky/default.nix
@@ -15,6 +15,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     description = "Git hooks made easy 🶠woof!";
+    mainProgram = "husky";
     homepage = "https://github.com/typicode/husky";
     changelog = "https://github.com/typicode/husky/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix b/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix
index 05829eb0c999..6044aa99216b 100644
--- a/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix
@@ -41,6 +41,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A client for the Hydra CI";
+    mainProgram = "hydra-cli";
     homepage = "https://github.com/nlewo/hydra-cli";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ gilligan lewo ];
diff --git a/nixpkgs/pkgs/development/tools/misc/hydra/unstable.nix b/nixpkgs/pkgs/development/tools/misc/hydra/unstable.nix
index 3d5d81452af3..a45cb9883b39 100644
--- a/nixpkgs/pkgs/development/tools/misc/hydra/unstable.nix
+++ b/nixpkgs/pkgs/development/tools/misc/hydra/unstable.nix
@@ -234,8 +234,6 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  dontStrip = true;
-
   doCheck = true;
 
   passthru = {
diff --git a/nixpkgs/pkgs/development/tools/misc/indent/default.nix b/nixpkgs/pkgs/development/tools/misc/indent/default.nix
index 8e6ba9b70c04..c7cef90d0a43 100644
--- a/nixpkgs/pkgs/development/tools/misc/indent/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/indent/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://www.gnu.org/software/indent/";
     description = "A source code reformatter";
+    mainProgram = "indent";
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.mmahut ];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/misc/itstool/default.nix b/nixpkgs/pkgs/development/tools/misc/itstool/default.nix
index 0f2633d71e6f..c8889d33401b 100644
--- a/nixpkgs/pkgs/development/tools/misc/itstool/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/itstool/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://itstool.org/";
     description = "XML to PO and back again";
+    mainProgram = "itstool";
     license = lib.licenses.gpl3Plus;
     platforms = lib.platforms.all;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/development/tools/misc/jcli/default.nix b/nixpkgs/pkgs/development/tools/misc/jcli/default.nix
index 0333b74e3e0c..f5d9d7a85899 100644
--- a/nixpkgs/pkgs/development/tools/misc/jcli/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/jcli/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Jenkins CLI allows you to manage your Jenkins in an easy way";
+    mainProgram = "jcli";
     homepage = "https://jcli.jenkins-zh.cn/";
     license = licenses.mit;
     maintainers = with maintainers; [ sikmir ];
diff --git a/nixpkgs/pkgs/development/tools/misc/jiq/default.nix b/nixpkgs/pkgs/development/tools/misc/jiq/default.nix
index 2a0f0ed822c0..34177e142d1c 100644
--- a/nixpkgs/pkgs/development/tools/misc/jiq/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/jiq/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
     homepage = "https://github.com/fiatjaf/jiq";
     license = licenses.mit;
     description = "jid on jq - interactive JSON query tool using jq expressions";
+    mainProgram = "jiq";
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/k2tf/default.nix b/nixpkgs/pkgs/development/tools/misc/k2tf/default.nix
index 35eb679281aa..0da0d51f3bc4 100644
--- a/nixpkgs/pkgs/development/tools/misc/k2tf/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/k2tf/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubernetes YAML to Terraform HCL converter";
+    mainProgram = "k2tf";
     homepage = "https://github.com/sl1pm4t/k2tf";
     license = licenses.mpl20;
     maintainers = [ maintainers.flokli ];
diff --git a/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix b/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix
index 283089abb99a..cd3284023944 100644
--- a/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
       intuitive interface for setting breakpoints, inspecting variables, and
       stepping through code.
     '';
+    mainProgram = "kdbg";
     license = licenses.gpl2;
     maintainers = [ maintainers.catern ];
   };
diff --git a/nixpkgs/pkgs/development/tools/misc/kool/default.nix b/nixpkgs/pkgs/development/tools/misc/kool/default.nix
index fc747a476bdc..dd5a79f17ee4 100644
--- a/nixpkgs/pkgs/development/tools/misc/kool/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/kool/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "From local development to the cloud: development workflow made easy";
+    mainProgram = "kool";
     homepage = "https://kool.dev";
     changelog = "https://github.com/kool-dev/kool/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/misc/libtree/default.nix b/nixpkgs/pkgs/development/tools/misc/libtree/default.nix
index 24083a60d28e..621ab218669e 100644
--- a/nixpkgs/pkgs/development/tools/misc/libtree/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/libtree/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Tree ldd with an option to bundle dependencies into a single folder";
+    mainProgram = "libtree";
     homepage = "https://github.com/haampie/libtree";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/misc/libwhich/default.nix b/nixpkgs/pkgs/development/tools/misc/libwhich/default.nix
index aee79b826444..915e1018c561 100644
--- a/nixpkgs/pkgs/development/tools/misc/libwhich/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/libwhich/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Like `which`, for dynamic libraries";
+    mainProgram = "libwhich";
     homepage = "https://github.com/vtjnash/libwhich";
     license = licenses.mit;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/nixpkgs/pkgs/development/tools/misc/licenseclassifier/default.nix b/nixpkgs/pkgs/development/tools/misc/licenseclassifier/default.nix
index 05a858130b39..11e986c245b0 100644
--- a/nixpkgs/pkgs/development/tools/misc/licenseclassifier/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/licenseclassifier/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A License Classifier";
+    mainProgram = "identify_license";
     longDescription = ''
       The license classifier can analyze text to determine what type of license
       it contains. It searches for license texts in a file and compares them to
diff --git a/nixpkgs/pkgs/development/tools/misc/linuxkit/default.nix b/nixpkgs/pkgs/development/tools/misc/linuxkit/default.nix
index 73ea58a17e4d..ebad2ed30f3b 100644
--- a/nixpkgs/pkgs/development/tools/misc/linuxkit/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/linuxkit/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "linuxkit";
-  version = "1.0.1";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "linuxkit";
     repo = "linuxkit";
     rev = "v${version}";
-    sha256 = "sha256-8x9oJaYb/mN2TUaVrGOYi5/6TETD78jif0SwCSc0kyo=";
+    sha256 = "sha256-PrHGIP74mDt+mJDRaCsroiJ4QEW4/tzgsZI2JlZ8TEA=";
   };
 
   vendorHash = null;
@@ -53,6 +53,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A toolkit for building secure, portable and lean operating systems for containers";
+    mainProgram = "linuxkit";
     license = licenses.asl20;
     homepage = "https://github.com/linuxkit/linuxkit";
     maintainers = with maintainers; [ nicknovitski ];
diff --git a/nixpkgs/pkgs/development/tools/misc/loccount/default.nix b/nixpkgs/pkgs/development/tools/misc/loccount/default.nix
index d51cec639c1d..fa128cf3cb5c 100644
--- a/nixpkgs/pkgs/development/tools/misc/loccount/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/loccount/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Re-implementation of sloccount in Go";
+    mainProgram = "loccount";
     longDescription = ''
       loccount is a re-implementation of David A. Wheeler's sloccount tool
       in Go.  It is faster and handles more different languages. Because
diff --git a/nixpkgs/pkgs/development/tools/misc/lsof/default.nix b/nixpkgs/pkgs/development/tools/misc/lsof/default.nix
index eece4f972231..4cce674820af 100644
--- a/nixpkgs/pkgs/development/tools/misc/lsof/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/lsof/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lsof-org/lsof";
     description = "A tool to list open files";
+    mainProgram = "lsof";
     longDescription = ''
       List open files. Can show what process has opened some file,
       socket (IPv6/IPv4/UNIX local), or partition (by opening a file
diff --git a/nixpkgs/pkgs/development/tools/misc/ltrace/default.nix b/nixpkgs/pkgs/development/tools/misc/ltrace/default.nix
index 9114e7cf4cef..c9ba073f6b34 100644
--- a/nixpkgs/pkgs/development/tools/misc/ltrace/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ltrace/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library call tracer";
+    mainProgram = "ltrace";
     homepage = "https://www.ltrace.org/";
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/development/tools/misc/lttng-tools/default.nix b/nixpkgs/pkgs/development/tools/misc/lttng-tools/default.nix
index b3660f7cad9b..bce8c2583fe6 100644
--- a/nixpkgs/pkgs/development/tools/misc/lttng-tools/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/lttng-tools/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tracing tools (kernel + user space) for Linux";
+    mainProgram = "lttng";
     homepage = "https://lttng.org/";
     license = with licenses; [ lgpl21Only gpl2Only ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/misc/lttng-ust/generic.nix b/nixpkgs/pkgs/development/tools/misc/lttng-ust/generic.nix
index 60b133f73144..89bc888828e2 100644
--- a/nixpkgs/pkgs/development/tools/misc/lttng-ust/generic.nix
+++ b/nixpkgs/pkgs/development/tools/misc/lttng-ust/generic.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "LTTng Userspace Tracer libraries";
+    mainProgram = "lttng-gen-tp";
     homepage = "https://lttng.org/";
     license = with licenses; [ lgpl21Only gpl2Only mit ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/misc/luarocks/default.nix b/nixpkgs/pkgs/development/tools/misc/luarocks/default.nix
index 8936f4a15b57..8622ca5acd38 100644
--- a/nixpkgs/pkgs/development/tools/misc/luarocks/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/luarocks/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "luarocks";
-  version = "3.9.2";
+  version = "3.10.0";
 
   src = fetchFromGitHub {
     owner = "luarocks";
     repo = "luarocks";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-D5jH7QuPayDNskIhiPeqKzI9m33MjRjQ8ReghFIUlPo=";
+    hash = "sha256-lM0jbKbV1fNz6AgJX6Pu6rlAzos/wEzn8wTvCBrOOe4=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/tools/misc/micronucleus/default.nix b/nixpkgs/pkgs/development/tools/misc/micronucleus/default.nix
index 560cfa0c0dce..d7141324dc97 100644
--- a/nixpkgs/pkgs/development/tools/misc/micronucleus/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/micronucleus/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Upload tool for micronucleus";
+    mainProgram = "micronucleus";
     homepage = "https://github.com/micronucleus/micronucleus";
     license = licenses.gpl3;
     maintainers = [ maintainers.cab404 ];
diff --git a/nixpkgs/pkgs/development/tools/misc/mkcert/default.nix b/nixpkgs/pkgs/development/tools/misc/mkcert/default.nix
index 0022dd003cd9..8da04668ec13 100644
--- a/nixpkgs/pkgs/development/tools/misc/mkcert/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/mkcert/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/FiloSottile/mkcert";
     description = "A simple tool for making locally-trusted development certificates";
+    mainProgram = "mkcert";
     license = licenses.bsd3;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/nixpkgs/pkgs/development/tools/misc/namaka/default.nix b/nixpkgs/pkgs/development/tools/misc/namaka/default.nix
index 185f24b47211..50259d691cbc 100644
--- a/nixpkgs/pkgs/development/tools/misc/namaka/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/namaka/default.nix
@@ -40,6 +40,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Snapshot testing tool for Nix based on haumea";
+    mainProgram = "namaka";
     homepage = "https://github.com/nix-community/namaka";
     changelog = "https://github.com/nix-community/namaka/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/tools/misc/ninka/default.nix b/nixpkgs/pkgs/development/tools/misc/ninka/default.nix
index 2b45af77e7a9..cfdf1d5bb3dc 100644
--- a/nixpkgs/pkgs/development/tools/misc/ninka/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ninka/default.nix
@@ -26,6 +26,7 @@ perlPackages.buildPerlPackage {
 
   meta = with lib; {
     description = "A sentence based license detector";
+    mainProgram = "ninka";
     homepage = "http://ninka.turingmachine.org/";
     license = licenses.gpl2;
     maintainers = [ maintainers.vrthra ];
diff --git a/nixpkgs/pkgs/development/tools/misc/nix-build-uncached/default.nix b/nixpkgs/pkgs/development/tools/misc/nix-build-uncached/default.nix
index 960b744dc738..4471b30fc7c0 100644
--- a/nixpkgs/pkgs/development/tools/misc/nix-build-uncached/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/nix-build-uncached/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A CI friendly wrapper around nix-build";
+    mainProgram = "nix-build-uncached";
     license = licenses.mit;
     homepage = "https://github.com/Mic92/nix-build-uncached";
     maintainers = [ maintainers.mic92 ];
diff --git a/nixpkgs/pkgs/development/tools/misc/nixbang/default.nix b/nixpkgs/pkgs/development/tools/misc/nixbang/default.nix
index bcddf4479eb0..cc5edb162a4c 100644
--- a/nixpkgs/pkgs/development/tools/misc/nixbang/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/nixbang/default.nix
@@ -15,6 +15,7 @@ pythonPackages.buildPythonApplication rec {
   meta = {
     homepage = "https://github.com/madjar/nixbang";
     description = "A special shebang to run scripts in a nix-shell";
+    mainProgram = "nixbang";
     maintainers = [ lib.maintainers.madjar ];
     platforms = lib.platforms.all;
   };
diff --git a/nixpkgs/pkgs/development/tools/misc/objconv/default.nix b/nixpkgs/pkgs/development/tools/misc/objconv/default.nix
index ec0f5a367d1c..9eee3cca1051 100644
--- a/nixpkgs/pkgs/development/tools/misc/objconv/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/objconv/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Object and executable file converter, modifier and disassembler";
+    mainProgram = "objconv";
     homepage = "https://www.agner.org/optimize/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ orivej vrthra ];
diff --git a/nixpkgs/pkgs/development/tools/misc/opengrok/default.nix b/nixpkgs/pkgs/development/tools/misc/opengrok/default.nix
index bf566188e5d7..88639c752fab 100644
--- a/nixpkgs/pkgs/development/tools/misc/opengrok/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/opengrok/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Source code search and cross reference engine";
+    mainProgram = "opengrok";
     homepage = "https://opengrok.github.io/OpenGrok/";
     changelog = "https://github.com/oracle/opengrok/releases/tag/${version}";
     license = licenses.cddl;
diff --git a/nixpkgs/pkgs/development/tools/misc/pahole/default.nix b/nixpkgs/pkgs/development/tools/misc/pahole/default.nix
index 8b8d4e8c6e2f..275044ee40c0 100644
--- a/nixpkgs/pkgs/development/tools/misc/pahole/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/pahole/default.nix
@@ -13,10 +13,10 @@
 
 stdenv.mkDerivation rec {
   pname = "pahole";
-  version = "1.25";
+  version = "1.26";
   src = fetchzip {
     url = "https://git.kernel.org/pub/scm/devel/pahole/pahole.git/snapshot/pahole-${version}.tar.gz";
-    hash = "sha256-s0YVT2UnMSO8jS/4XCt06wNPV4czHH6bmZRy/snO3jg=";
+    hash = "sha256-Lf9Z4vHRFplMrUf4VhJ7EDPn+S4RaS1Emm0wyEcG2HU=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/development/tools/misc/patchelf/default.nix b/nixpkgs/pkgs/development/tools/misc/patchelf/default.nix
index fc71c4aa4ea4..94c05394a901 100644
--- a/nixpkgs/pkgs/development/tools/misc/patchelf/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/patchelf/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/NixOS/patchelf";
     license = licenses.gpl3Plus;
     description = "A small utility to modify the dynamic linker and RPATH of ELF executables";
+    mainProgram = "patchelf";
     maintainers = [ maintainers.eelco ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix b/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix
index a4061855d997..c2d9b2c0bede 100644
--- a/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix
+++ b/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/NixOS/patchelf";
     license = licenses.gpl3;
     description = "A small utility to modify the dynamic linker and RPATH of ELF executables";
+    mainProgram = "patchelf";
     maintainers = [ maintainers.eelco ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/development/tools/misc/patsh/default.nix b/nixpkgs/pkgs/development/tools/misc/patsh/default.nix
index 9fabbf789db9..0e8bafc86bd7 100644
--- a/nixpkgs/pkgs/development/tools/misc/patsh/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/patsh/default.nix
@@ -43,6 +43,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A command-line tool for patching shell scripts inspired by resholve";
+    mainProgram = "patsh";
     homepage = "https://github.com/nix-community/patsh";
     changelog = "https://github.com/nix-community/patsh/blob/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/tools/misc/perfect-hash/default.nix b/nixpkgs/pkgs/development/tools/misc/perfect-hash/default.nix
index 71747f0d1172..124758e571e9 100644
--- a/nixpkgs/pkgs/development/tools/misc/perfect-hash/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/perfect-hash/default.nix
@@ -20,6 +20,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Minimal perfect hash function generator";
+    mainProgram = "perfect-hash";
     longDescription = ''
       Generate a minimal perfect hash function for a given set of keys.
       A given code template is filled with parameters, such that the
diff --git a/nixpkgs/pkgs/development/tools/misc/planus/default.nix b/nixpkgs/pkgs/development/tools/misc/planus/default.nix
index 9074debb2633..6580c7b21304 100644
--- a/nixpkgs/pkgs/development/tools/misc/planus/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/planus/default.nix
@@ -30,6 +30,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "An alternative compiler for flatbuffers";
+    mainProgram = "planus";
     homepage = "https://github.com/planus-org/planus";
     changelog = "https://github.com/planus-org/planus/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
diff --git a/nixpkgs/pkgs/development/tools/misc/polylith/default.nix b/nixpkgs/pkgs/development/tools/misc/polylith/default.nix
index 06aadb009207..66e274026a0c 100644
--- a/nixpkgs/pkgs/development/tools/misc/polylith/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/polylith/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A tool used to develop Polylith based architectures in Clojure";
+    mainProgram = "poly";
     homepage = "https://github.com/polyfy/polylith";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.epl10;
diff --git a/nixpkgs/pkgs/development/tools/misc/premake/3.nix b/nixpkgs/pkgs/development/tools/misc/premake/3.nix
index c05581f5591a..f0891873eb58 100644
--- a/nixpkgs/pkgs/development/tools/misc/premake/3.nix
+++ b/nixpkgs/pkgs/development/tools/misc/premake/3.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://premake.github.io/";
     description = "A simple build configuration and project generation tool using lua";
+    mainProgram = "premake";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/tools/misc/premake/5.nix b/nixpkgs/pkgs/development/tools/misc/premake/5.nix
index a42d4c1a7b6e..841e8480da1a 100644
--- a/nixpkgs/pkgs/development/tools/misc/premake/5.nix
+++ b/nixpkgs/pkgs/development/tools/misc/premake/5.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://premake.github.io";
     description = "A simple build configuration and project generation tool using lua";
+    mainProgram = "premake5";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.darwin ++ lib.platforms.linux;
     broken = stdenv.isDarwin && stdenv.isAarch64;
diff --git a/nixpkgs/pkgs/development/tools/misc/protox/default.nix b/nixpkgs/pkgs/development/tools/misc/protox/default.nix
index 82849b6d9478..415f19aa71b0 100644
--- a/nixpkgs/pkgs/development/tools/misc/protox/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/protox/default.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A rust implementation of the protobuf compiler";
+    mainProgram = "protox";
     homepage = "https://github.com/andrewhickman/protox";
     changelog = "https://github.com/andrewhickman/protox/blob/${version}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
diff --git a/nixpkgs/pkgs/development/tools/misc/ptags/default.nix b/nixpkgs/pkgs/development/tools/misc/ptags/default.nix
index 8af08bd8311f..aa7980158356 100644
--- a/nixpkgs/pkgs/development/tools/misc/ptags/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ptags/default.nix
@@ -34,6 +34,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A parallel universal-ctags wrapper for git repository";
+    mainProgram = "ptags";
     homepage = "https://github.com/dalance/ptags";
     maintainers = with maintainers; [ pamplemousse ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix b/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix
index d80fa230c8a4..b9156abf84b8 100644
--- a/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix
@@ -52,6 +52,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Exploit Development and Reverse Engineering with GDB Made Easy";
+    mainProgram = "pwndbg";
     homepage = "https://github.com/pwndbg/pwndbg";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/misc/pwninit/default.nix b/nixpkgs/pkgs/development/tools/misc/pwninit/default.nix
index 92cfa6f4fcb0..341532d00422 100644
--- a/nixpkgs/pkgs/development/tools/misc/pwninit/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/pwninit/default.nix
@@ -33,6 +33,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = {
     description = "Automate starting binary exploit challenges";
+    mainProgram = "pwninit";
     homepage = "https://github.com/io12/pwninit";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.scoder12 ];
diff --git a/nixpkgs/pkgs/development/tools/misc/qtspim/default.nix b/nixpkgs/pkgs/development/tools/misc/qtspim/default.nix
index 1ef63f1a431d..15fd8dd13b2c 100644
--- a/nixpkgs/pkgs/development/tools/misc/qtspim/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/qtspim/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "New user interface for spim, a MIPS simulator";
+    mainProgram = "qtspim";
     homepage = "https://spimsimulator.sourceforge.net/";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ emilytrau ];
diff --git a/nixpkgs/pkgs/development/tools/misc/regex-cli/default.nix b/nixpkgs/pkgs/development/tools/misc/regex-cli/default.nix
index 4ce731042589..f30d02bcf29f 100644
--- a/nixpkgs/pkgs/development/tools/misc/regex-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/regex-cli/default.nix
@@ -16,6 +16,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A command line tool for debugging, ad hoc benchmarking and generating regular expressions";
+    mainProgram = "regex-cli";
     homepage = "https://github.com/rust-lang/regex/tree/master/regex-cli";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/misc/replacement/default.nix b/nixpkgs/pkgs/development/tools/misc/replacement/default.nix
index 75c5363ff672..dde607419cae 100644
--- a/nixpkgs/pkgs/development/tools/misc/replacement/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/replacement/default.nix
@@ -28,6 +28,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/siriobalmelli/replacement";
     description = "A tool to execute yaml templates and output text";
+    mainProgram = "replacement";
     longDescription = ''
         Replacement is a python utility
         that parses a yaml template and outputs text.
diff --git a/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix b/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix
index 2ed07f4579f1..8339c0625100 100644
--- a/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "reviewdog";
-  version = "0.17.1";
+  version = "0.17.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-l7jQaOFNhhWqkYaTd8BdH9au/wjlnWZnV5DAco93qlQ=";
+    hash = "sha256-NjVw+GU27ARqytpupJETAGGh0DfyuFsP637Mv+P4+zs=";
   };
 
-  vendorHash = "sha256-p/WvGGadf/O2DFIUWjw7mpg8DhcaIYlgp1xgKV89+GM=";
+  vendorHash = "sha256-HZpRHFmEaE+MBvKJ8f5IEMmg2eIIrVGxM/jxhIgEqi0=";
 
   doCheck = false;
 
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Automated code review tool integrated with any code analysis tools regardless of programming language";
+    mainProgram = "reviewdog";
     homepage = "https://github.com/reviewdog/reviewdog";
     changelog = "https://github.com/reviewdog/reviewdog/blob/v${version}/CHANGELOG.md";
     maintainers = [ maintainers.marsam ];
diff --git a/nixpkgs/pkgs/development/tools/misc/riff/default.nix b/nixpkgs/pkgs/development/tools/misc/riff/default.nix
index 94096a2bc5e2..fe2e2f310fa1 100644
--- a/nixpkgs/pkgs/development/tools/misc/riff/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/riff/default.nix
@@ -38,6 +38,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool that automatically provides external dependencies for software projects";
+    mainProgram = "riff";
     homepage = "https://riff.sh";
     changelog = "https://github.com/DeterminateSystems/riff/releases/tag/v${version}";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix b/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix
index 7b084fae891e..cd90d1cda963 100644
--- a/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/nickjj/rolespec";
     description = "A test library for testing Ansible roles";
+    mainProgram = "rolespec";
     longDescription = ''
       A shell based test library for Ansible that works both locally and over
       Travis-CI.
diff --git a/nixpkgs/pkgs/development/tools/misc/rsass/default.nix b/nixpkgs/pkgs/development/tools/misc/rsass/default.nix
index 1804c1301230..0e2e4d57823a 100644
--- a/nixpkgs/pkgs/development/tools/misc/rsass/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/rsass/default.nix
@@ -14,6 +14,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Sass reimplemented in rust with nom";
+    mainProgram = "rsass";
     homepage = "https://github.com/kaj/rsass";
     changelog = "https://github.com/kaj/rsass/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/misc/rtss/default.nix b/nixpkgs/pkgs/development/tools/misc/rtss/default.nix
index cb5b55b8894c..4172919d42f2 100644
--- a/nixpkgs/pkgs/development/tools/misc/rtss/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/rtss/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Annotate output with relative durations between lines";
+    mainProgram = "rtss";
     homepage = "https://github.com/Freaky/rtss";
     license = licenses.mit;
     maintainers = with maintainers; [ djanatyn ];
diff --git a/nixpkgs/pkgs/development/tools/misc/runme/default.nix b/nixpkgs/pkgs/development/tools/misc/runme/default.nix
index d7850c18fabe..8299ceba5395 100644
--- a/nixpkgs/pkgs/development/tools/misc/runme/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/runme/default.nix
@@ -67,6 +67,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Execute commands inside your runbooks, docs, and READMEs";
+    mainProgram = "runme";
     homepage = "https://runme.dev";
     changelog = "https://github.com/stateful/runme/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/misc/rustywind/default.nix b/nixpkgs/pkgs/development/tools/misc/rustywind/default.nix
index 5fe1e15b8fa5..f8281f9ca10c 100644
--- a/nixpkgs/pkgs/development/tools/misc/rustywind/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/rustywind/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rustywind";
-  version = "0.21.0";
+  version = "0.21.1";
 
   src = fetchFromGitHub {
     owner = "avencera";
     repo = "rustywind";
     rev = "v${version}";
-    hash = "sha256-gcSpifeOWq9kKmOqyO02DbcvR9tyTlE2kVkezpy7D5k=";
+    hash = "sha256-cRgMTM4u8Nm+5eD3rNsx/1+PdS08+0N53m8NAlzVcXc=";
   };
 
-  cargoHash = "sha256-m++IeB0XvfeARkh+yO9WQtc7luz+ThGD5niwwOPobKY=";
+  cargoHash = "sha256-utqo3w5itQa5pJTDWhEYIRj9OAZ+K6SgrPHXi3WE6+Q=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "CLI for organizing Tailwind CSS classes";
+    mainProgram = "rustywind";
     homepage = "https://github.com/avencera/rustywind";
     changelog = "https://github.com/avencera/rustywind/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/misc/samply/default.nix b/nixpkgs/pkgs/development/tools/misc/samply/default.nix
index 9d70b9bc14d6..9109de361779 100644
--- a/nixpkgs/pkgs/development/tools/misc/samply/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/samply/default.nix
@@ -47,6 +47,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A command line profiler for macOS and Linux";
+    mainProgram = "samply";
     homepage = "https://github.com/mstange/samply";
     changelog = "https://github.com/mstange/samply/releases/tag/samply-v${version}";
     license = with licenses; [ asl20 mit ];
diff --git a/nixpkgs/pkgs/development/tools/misc/sccache/default.nix b/nixpkgs/pkgs/development/tools/misc/sccache/default.nix
index 9b9311529b77..1f6e6e7a040b 100644
--- a/nixpkgs/pkgs/development/tools/misc/sccache/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/sccache/default.nix
@@ -36,6 +36,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Ccache with Cloud Storage";
+    mainProgram = "sccache";
     homepage = "https://github.com/mozilla/sccache";
     changelog = "https://github.com/mozilla/sccache/releases/tag/v${version}";
     maintainers = with maintainers; [ doronbehar figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/misc/scip/default.nix b/nixpkgs/pkgs/development/tools/misc/scip/default.nix
index 176ddccbe34e..c36d4c5b0886 100644
--- a/nixpkgs/pkgs/development/tools/misc/scip/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/scip/default.nix
@@ -39,6 +39,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "SCIP Code Intelligence Protocol CLI";
+    mainProgram = "scip";
     homepage = "https://github.com/sourcegraph/scip";
     changelog = "https://github.com/sourcegraph/scip/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/misc/scriptisto/default.nix b/nixpkgs/pkgs/development/tools/misc/scriptisto/default.nix
index 9b7b287fce5d..f3a3ba18240b 100644
--- a/nixpkgs/pkgs/development/tools/misc/scriptisto/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/scriptisto/default.nix
@@ -27,6 +27,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A language-agnostic \"shebang interpreter\" that enables you to write scripts in compiled languages";
+    mainProgram = "scriptisto";
     homepage = "https://github.com/igor-petruk/scriptisto";
     changelog = "https://github.com/igor-petruk/scriptisto/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/misc/seer/default.nix b/nixpkgs/pkgs/development/tools/misc/seer/default.nix
index 92bc871185ff..b797287a02dc 100644
--- a/nixpkgs/pkgs/development/tools/misc/seer/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/seer/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Qt gui frontend for GDB";
+    mainProgram = "seergdb";
     homepage = "https://github.com/epasveer/seer";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/misc/sipp/default.nix b/nixpkgs/pkgs/development/tools/misc/sipp/default.nix
index 297669733c0e..43dcd2aea9b4 100644
--- a/nixpkgs/pkgs/development/tools/misc/sipp/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/sipp/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://sipp.sf.net";
     description = "The SIPp testing tool";
+    mainProgram = "sipp";
     license = licenses.gpl3;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/tools/misc/slint-lsp/default.nix b/nixpkgs/pkgs/development/tools/misc/slint-lsp/default.nix
index 85977e549797..126167b475e6 100644
--- a/nixpkgs/pkgs/development/tools/misc/slint-lsp/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/slint-lsp/default.nix
@@ -25,14 +25,14 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "slint-lsp";
-  version = "1.4.1";
+  version = "1.5.1";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-m1W+Q/SD5DmI3XGRZRAWj/dVY7fQM9CeIvX3E1GQdlU=";
+    sha256 = "sha256-wqAcHBHWtYavAakHLhHHCI+Yercgdtzo1EAOilsZOK0=";
   };
 
-  cargoHash = "sha256-X4xBPU49XskmRg8TuLtiAqpoeZOBTIFvhj7WWFNBRDw=";
+  cargoHash = "sha256-XjVXhXoGEhxWc+LZa0EsPiw3Gq2pg03YjKONTptSQvA=";
 
   nativeBuildInputs = [ cmake pkg-config fontconfig ];
   buildInputs = rpathLibs ++ [ xorg.libxcb.dev ]
@@ -54,6 +54,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Language Server Protocol (LSP) for Slint UI language";
+    mainProgram = "slint-lsp";
     homepage = "https://slint-ui.com/";
     changelog = "https://github.com/slint-ui/slint/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ gpl3Plus ];
diff --git a/nixpkgs/pkgs/development/tools/misc/spruce/default.nix b/nixpkgs/pkgs/development/tools/misc/spruce/default.nix
index 2cf0f184a729..4c03d0acfab6 100644
--- a/nixpkgs/pkgs/development/tools/misc/spruce/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/spruce/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A BOSH template merge tool";
+    mainProgram = "spruce";
     homepage = "https://github.com/geofffranks/spruce";
     license = licenses.mit;
     maintainers = with maintainers; [ risson ];
diff --git a/nixpkgs/pkgs/development/tools/misc/sqitch/default.nix b/nixpkgs/pkgs/development/tools/misc/sqitch/default.nix
index 32235e85c48d..612ef223e67b 100644
--- a/nixpkgs/pkgs/development/tools/misc/sqitch/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/sqitch/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation {
 
   meta = {
     inherit (sqitch.meta) description homepage license platforms;
+    mainProgram = "sqitch";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/strace-analyzer/default.nix b/nixpkgs/pkgs/development/tools/misc/strace-analyzer/default.nix
index db0591cab10a..33371bee9373 100644
--- a/nixpkgs/pkgs/development/tools/misc/strace-analyzer/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/strace-analyzer/default.nix
@@ -27,6 +27,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Analyzes strace output";
+    mainProgram = "strace-analyzer";
     homepage = "https://github.com/wookietreiber/strace-analyzer";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/misc/strace/default.nix b/nixpkgs/pkgs/development/tools/misc/strace/default.nix
index 5dc67a627a55..3cae7fc017d4 100644
--- a/nixpkgs/pkgs/development/tools/misc/strace/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/strace/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "strace";
-  version = "6.7";
+  version = "6.8";
 
   src = fetchurl {
     url = "https://strace.io/files/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-IJAgHho/8yhG9P5CHBFjsV9EC7OOMTVdCfgtOUmSKvc=";
+    sha256 = "sha256-umlQqWgkzfk6WE+gTwpzOJbSprxfCtn/5QXZtB6XAUk=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/nixpkgs/pkgs/development/tools/misc/swig/default.nix b/nixpkgs/pkgs/development/tools/misc/swig/default.nix
index 41f33f4db67f..ad7b64c25568 100644
--- a/nixpkgs/pkgs/development/tools/misc/swig/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/swig/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "SWIG, an interface compiler that connects C/C++ code to higher-level languages";
+    mainProgram = "swig";
     homepage = "https://swig.org/";
     # Different types of licenses available: http://www.swig.org/Release/LICENSE .
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/tools/misc/sysbench/default.nix b/nixpkgs/pkgs/development/tools/misc/sysbench/default.nix
index 85d289e49b7a..6bba1ebfd611 100644
--- a/nixpkgs/pkgs/development/tools/misc/sysbench/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/sysbench/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Modular, cross-platform and multi-threaded benchmark tool";
+    mainProgram = "sysbench";
     longDescription = ''
       sysbench is a scriptable multi-threaded benchmark tool based on LuaJIT.
       It is most frequently used for database benchmarks, but can also be used
diff --git a/nixpkgs/pkgs/development/tools/misc/tcptrack/default.nix b/nixpkgs/pkgs/development/tools/misc/tcptrack/default.nix
index cf3cdf586cc4..5c1fe8c5b9b7 100644
--- a/nixpkgs/pkgs/development/tools/misc/tcptrack/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/tcptrack/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "libpcap based program for live TCP connection monitoring";
+    mainProgram = "tcptrack";
     license = licenses.lgpl21;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor maintainers.vrthra ];
diff --git a/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix b/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix
index 55b13dad748b..b01d73ecc172 100644
--- a/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration";
+    mainProgram = "terracognita";
     homepage = "https://github.com/cycloidio/terracognita";
     changelog = "https://github.com/cycloidio/terracognita/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix b/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
index 9e37ce1713f2..4499d113e838 100644
--- a/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "terraform-ls";
-  version = "0.32.7";
+  version = "0.32.8";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-gH0wJRf64XloBfnvtNdZlONESjxG5mS5Ok9HTX1PJUA=";
+    hash = "sha256-ZXtzQEi5aLiYa4KjH3DkFPFi6EEEjxof6Y+8cRJkSCM=";
   };
 
-  vendorHash = "sha256-YvzUdcCjkCApufLk5CZv6L/mIlOuo9qEBoxHOxv2Ljc=";
+  vendorHash = "sha256-DGomEJ0IGs8uOrn50N+R3tRZJvw7iyHlPVpH3CVvjsU=";
 
   ldflags = [ "-s" "-w" ];
 
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Terraform Language Server (official)";
+    mainProgram = "terraform-ls";
     homepage = "https://github.com/hashicorp/terraform-ls";
     changelog = "https://github.com/hashicorp/terraform-ls/blob/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/tools/misc/terraform-lsp/default.nix b/nixpkgs/pkgs/development/tools/misc/terraform-lsp/default.nix
index 332913e71130..74070bd6ea8c 100644
--- a/nixpkgs/pkgs/development/tools/misc/terraform-lsp/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/terraform-lsp/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Language Server Protocol for Terraform";
+    mainProgram = "terraform-lsp";
     homepage = "https://github.com/juliosueiras/terraform-lsp";
     license = licenses.mit;
     maintainers = with maintainers; [ marsam ];
diff --git a/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix b/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix
index 4b6001a17c70..dc8ad0644fcb 100644
--- a/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI tool to generate terraform files from existing infrastructure (reverse Terraform). Infrastructure to Code";
+    mainProgram = "terraformer";
     homepage = "https://github.com/GoogleCloudPlatform/terraformer";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
diff --git a/nixpkgs/pkgs/development/tools/misc/terser/default.nix b/nixpkgs/pkgs/development/tools/misc/terser/default.nix
index 8b862bcc2cd3..2b9052ad79e6 100644
--- a/nixpkgs/pkgs/development/tools/misc/terser/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/terser/default.nix
@@ -2,19 +2,20 @@
 
 buildNpmPackage rec {
   pname = "terser";
-  version = "5.19.3";
+  version = "5.29.2";
 
   src = fetchFromGitHub {
     owner = "terser";
     repo = "terser";
     rev = "v${version}";
-    hash = "sha256-ZI5ElHnQwoCJspGL/v0PqddMUAAhQGWDZA9utWZD/nM=";
+    hash = "sha256-VGQ/mgMeeNA0koYgmb6PAZqBdVljgqY3MwuG0RLllCU=";
   };
 
-  npmDepsHash = "sha256-M7LGXoZFBQrXpkiofnam7tgFkk6+N7ckPxTcwAAuqxU=";
+  npmDepsHash = "sha256-8wKvV3vSzF6WdHzox1LXVi2FmeZf7qSo2rg93uCN3fI=";
 
   meta = with lib; {
     description = "JavaScript parser, mangler and compressor toolkit for ES6+";
+    mainProgram = "terser";
     homepage = "https://terser.org";
     license = licenses.bsd2;
     maintainers = with maintainers; [ talyz ];
diff --git a/nixpkgs/pkgs/development/tools/misc/texi2html/default.nix b/nixpkgs/pkgs/development/tools/misc/texi2html/default.nix
index 98f846b7c2f7..66609d8d17e1 100644
--- a/nixpkgs/pkgs/development/tools/misc/texi2html/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/texi2html/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Perl script which converts Texinfo source files to HTML output";
+    mainProgram = "texi2html";
     homepage = "https://www.nongnu.org/texi2html/";
     license = licenses.gpl2;
     maintainers = [ maintainers.marcweber ];
diff --git a/nixpkgs/pkgs/development/tools/misc/texlab/default.nix b/nixpkgs/pkgs/development/tools/misc/texlab/default.nix
index 4497865ee857..9a6a1ad33139 100644
--- a/nixpkgs/pkgs/development/tools/misc/texlab/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/texlab/default.nix
@@ -15,16 +15,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "texlab";
-  version = "5.12.4";
+  version = "5.13.1";
 
   src = fetchFromGitHub {
     owner = "latex-lsp";
     repo = "texlab";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kLf0EG6jKJeKowNZ21cwE0a9w630GoljNwRckHrkajg=";
+    hash = "sha256-fmtNalpOOPEiMO5zDD6m01cDfFuaLQsYPk6cc7yvjog=";
   };
 
-  cargoHash = "sha256-5vEoreDRHRxsVNPwZpgmeClEFZ0SzLjb5EZLfmlqEJM=";
+  cargoHash = "sha256-5ojXplzkBwchnSZLkwR5jz8WgyEA14Y1iVQ+Q19U8Tg=";
 
   outputs = [ "out" ] ++ lib.optional (!isCross) "man";
 
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
   # generate the man page
   postInstall = lib.optionalString (!isCross) ''
     # TexLab builds man page separately in CI:
-    # https://github.com/latex-lsp/texlab/blob/v5.12.0/.github/workflows/publish.yml#L117-L121
+    # https://github.com/latex-lsp/texlab/blob/v5.13.1/.github/workflows/publish.yml#L117-L121
     help2man --no-info "$out/bin/texlab" > texlab.1
     installManPage texlab.1
   '';
@@ -50,6 +50,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "An implementation of the Language Server Protocol for LaTeX";
+    mainProgram = "texlab";
     homepage = "https://github.com/latex-lsp/texlab";
     changelog = "https://github.com/latex-lsp/texlab/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/misc/tie/default.nix b/nixpkgs/pkgs/development/tools/misc/tie/default.nix
index 52a740ed1c8c..70d64af37186 100644
--- a/nixpkgs/pkgs/development/tools/misc/tie/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/tie/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.ctan.org/tex-archive/web/tie";
     description = "Allow multiple web change files";
+    mainProgram = "tie";
     platforms = platforms.all;
     maintainers = with maintainers; [ vrthra ];
     license = licenses.abstyles;
diff --git a/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix b/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix
index fbca0b0359de..d81760daa5fc 100644
--- a/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix
@@ -32,6 +32,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for programming Tock onto hardware boards";
+    mainProgram = "tockloader";
     homepage = "https://github.com/tock/tockloader";
     changelog = "https://github.com/tock/tockloader/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/misc/topiary/default.nix b/nixpkgs/pkgs/development/tools/misc/topiary/default.nix
index cb4f3884d79f..467cd8cbacd8 100644
--- a/nixpkgs/pkgs/development/tools/misc/topiary/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/topiary/default.nix
@@ -35,12 +35,7 @@ rustPlatform.buildRustPackage rec {
   cargoBuildFlags = [ "-p" "topiary-cli" ];
   cargoTestFlags = cargoBuildFlags;
 
-  env = {
-    TOPIARY_LANGUAGE_DIR = "${placeholder "out"}/share/queries";
-  } // lib.optionalAttrs stdenv.cc.isClang {
-    # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
+  env.TOPIARY_LANGUAGE_DIR = "${placeholder "out"}/share/queries";
 
   postInstall = ''
     install -Dm444 queries/* -t $out/share/queries
@@ -50,6 +45,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A uniform formatter for simple languages, as part of the Tree-sitter ecosystem";
+    mainProgram = "topiary";
     homepage = "https://github.com/tweag/topiary";
     changelog = "https://github.com/tweag/topiary/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/misc/travis/default.nix b/nixpkgs/pkgs/development/tools/misc/travis/default.nix
index 0be7721fe080..494604e975f1 100644
--- a/nixpkgs/pkgs/development/tools/misc/travis/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/travis/default.nix
@@ -9,6 +9,7 @@ bundlerEnv {
 
   meta = with lib; {
     description = "CLI and Ruby client library for Travis CI";
+    mainProgram = "travis";
     homepage    = "https://github.com/travis-ci/travis.rb";
     license     = licenses.mit;
     maintainers = with maintainers; [ zimbatm nicknovitski ];
diff --git a/nixpkgs/pkgs/development/tools/misc/ttags/default.nix b/nixpkgs/pkgs/development/tools/misc/ttags/default.nix
index f07f2d3ef5e8..c765d0c308d4 100644
--- a/nixpkgs/pkgs/development/tools/misc/ttags/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ttags/default.nix
@@ -21,6 +21,7 @@ in rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "Generate tags using tree-sitter";
+    mainProgram = "ttags";
     longDescription = ''
       ttags generates tags (similar to ctags) for various
       languages, using tree-sitter.
diff --git a/nixpkgs/pkgs/development/tools/misc/typical/default.nix b/nixpkgs/pkgs/development/tools/misc/typical/default.nix
index 7944f14ca4d6..8c094a2e1f18 100644
--- a/nixpkgs/pkgs/development/tools/misc/typical/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/typical/default.nix
@@ -35,6 +35,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Data interchange with algebraic data types";
+    mainProgram = "typical";
     homepage = "https://github.com/stepchowfun/typical";
     changelog = "https://github.com/stepchowfun/typical/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/misc/tyson/default.nix b/nixpkgs/pkgs/development/tools/misc/tyson/default.nix
index b10b78708b58..2809c881c945 100644
--- a/nixpkgs/pkgs/development/tools/misc/tyson/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/tyson/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "TypeScript as a configuration language";
+    mainProgram = "tyson";
     homepage = "https://github.com/jetpack-io/tyson";
     changelog = "https://github.com/jetpack-io/tyson/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/misc/uncrustify/default.nix b/nixpkgs/pkgs/development/tools/misc/uncrustify/default.nix
index d57010a4bad3..a8fef714cada 100644
--- a/nixpkgs/pkgs/development/tools/misc/uncrustify/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/uncrustify/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Source code beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA";
+    mainProgram = "uncrustify";
     homepage = "https://uncrustify.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/misc/usbsdmux/default.nix b/nixpkgs/pkgs/development/tools/misc/usbsdmux/default.nix
index 31d6566a4214..86ed8b11acf9 100644
--- a/nixpkgs/pkgs/development/tools/misc/usbsdmux/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/usbsdmux/default.nix
@@ -9,9 +9,20 @@ python3Packages.buildPythonApplication rec {
     sha256 = "sha256-OtGgToDGUr6pBu9+LS/DxaYw/9+Pd6jPhxVDAM22HB4=";
   };
 
+  # Remove the wrong GROUP=plugdev.
+  # The udev rule already has TAG+="uaccess", which is sufficient.
+  postPatch = ''
+    substituteInPlace contrib/udev/99-usbsdmux.rules \
+      --replace-fail 'TAG+="uaccess", GROUP="plugdev"' 'TAG+="uaccess"'
+  '';
+
   # usbsdmux is not meant to be used as an importable module and has no tests
   doCheck = false;
 
+  postInstall = ''
+    install -Dm0444 -t $out/lib/udev/rules.d/ contrib/udev/99-usbsdmux.rules
+  '';
+
   meta = with lib; {
     description = "Control software for the LXA USB-SD-Mux";
     homepage = "https://github.com/linux-automation/usbsdmux";
diff --git a/nixpkgs/pkgs/development/tools/misc/vtable-dumper/default.nix b/nixpkgs/pkgs/development/tools/misc/vtable-dumper/default.nix
index 1bd59aa9944a..deed8e3af962 100644
--- a/nixpkgs/pkgs/development/tools/misc/vtable-dumper/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/vtable-dumper/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lvc/vtable-dumper";
     description = "A tool to list content of virtual tables in a C++ shared library";
+    mainProgram = "vtable-dumper";
     license = licenses.lgpl21;
     maintainers = [ maintainers.bhipple ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/misc/wasmer-pack/default.nix b/nixpkgs/pkgs/development/tools/misc/wasmer-pack/default.nix
index 0f5e85349833..7c1d84de885d 100644
--- a/nixpkgs/pkgs/development/tools/misc/wasmer-pack/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/wasmer-pack/default.nix
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Import your WebAssembly code just like any other dependency";
+    mainProgram = "wasmer-pack";
     homepage = "https://github.com/wasmerio/wasmer-pack";
     changelog = "https://github.com/wasmerio/wasmer-pack/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/misc/whatstyle/default.nix b/nixpkgs/pkgs/development/tools/misc/whatstyle/default.nix
index 08f5b85bc5ed..4293a458977b 100644
--- a/nixpkgs/pkgs/development/tools/misc/whatstyle/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/whatstyle/default.nix
@@ -22,6 +22,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Find a code format style that fits given source files";
+    mainProgram = "whatstyle";
     homepage = "https://github.com/mikr/whatstyle";
     license = licenses.mit;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/nixpkgs/pkgs/development/tools/misc/wishbone-tool/default.nix b/nixpkgs/pkgs/development/tools/misc/wishbone-tool/default.nix
index 0465fb74aa1a..829ccd8775f6 100644
--- a/nixpkgs/pkgs/development/tools/misc/wishbone-tool/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/wishbone-tool/default.nix
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "Manipulate a Wishbone device over some sort of bridge";
+    mainProgram = "wishbone-tool";
     homepage = "https://github.com/litex-hub/wishbone-utils";
     license = licenses.bsd2;
     maintainers = with maintainers; [ edef ];
diff --git a/nixpkgs/pkgs/development/tools/misc/xxdiff/default.nix b/nixpkgs/pkgs/development/tools/misc/xxdiff/default.nix
index 8f30a165df3c..87097ef819e3 100644
--- a/nixpkgs/pkgs/development/tools/misc/xxdiff/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/xxdiff/default.nix
@@ -43,6 +43,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical file and directories comparator and merge tool";
+    mainProgram = "xxdiff";
     homepage = "http://furius.ca/xxdiff/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ pSub raskin ];
diff --git a/nixpkgs/pkgs/development/tools/misc/xxgdb/default.nix b/nixpkgs/pkgs/development/tools/misc/xxgdb/default.nix
index cc093476fec7..eee3a860e9fe 100644
--- a/nixpkgs/pkgs/development/tools/misc/xxgdb/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/xxgdb/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "A simple but powerful graphical interface to gdb";
+    mainProgram = "xxgdb";
     license = licenses.mit;
     maintainers = with maintainers; [ emilytrau ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/misc/ycmd/default.nix b/nixpkgs/pkgs/development/tools/misc/ycmd/default.nix
index ae741234a8e2..4d5230f3159b 100644
--- a/nixpkgs/pkgs/development/tools/misc/ycmd/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ycmd/default.nix
@@ -84,6 +84,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A code-completion and comprehension server";
+    mainProgram = "ycmd";
     homepage = "https://github.com/ycm-core/ycmd";
     license = licenses.gpl3;
     maintainers = with maintainers; [ rasendubi lnl7 siriobalmelli ];
diff --git a/nixpkgs/pkgs/development/tools/mix2nix/default.nix b/nixpkgs/pkgs/development/tools/mix2nix/default.nix
index 7c2d773884d9..4c7b7951370c 100644
--- a/nixpkgs/pkgs/development/tools/mix2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/mix2nix/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Generate nix expressions from mix.lock file.";
+    mainProgram = "mix2nix";
     license = licenses.mit;
     maintainers = with maintainers; [ ydlr ] ++ teams.beam.members;
   };
diff --git a/nixpkgs/pkgs/development/tools/mod/default.nix b/nixpkgs/pkgs/development/tools/mod/default.nix
index fb5abd0fe6ad..8e71eb969b6b 100644
--- a/nixpkgs/pkgs/development/tools/mod/default.nix
+++ b/nixpkgs/pkgs/development/tools/mod/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Automated Semantic Import Versioning Upgrades for Go";
+    mainProgram = "mod";
     longDescription = ''
       Command line tool to upgrade/downgrade Semantic Import Versioning in Go
       Modules.
diff --git a/nixpkgs/pkgs/development/tools/modd/default.nix b/nixpkgs/pkgs/development/tools/modd/default.nix
index 4ad15ecfc80f..efd74ce98244 100644
--- a/nixpkgs/pkgs/development/tools/modd/default.nix
+++ b/nixpkgs/pkgs/development/tools/modd/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A flexible developer tool that runs processes and responds to filesystem changes";
+    mainProgram = "modd";
     homepage = "https://github.com/cortesi/modd";
     license = licenses.mit;
     maintainers = with maintainers; [ kierdavis ];
diff --git a/nixpkgs/pkgs/development/tools/mold/default.nix b/nixpkgs/pkgs/development/tools/mold/default.nix
index a44c28c18bca..0caa0513d84b 100644
--- a/nixpkgs/pkgs/development/tools/mold/default.nix
+++ b/nixpkgs/pkgs/development/tools/mold/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mold";
-  version = "2.4.1";
+  version = "2.30.0";
 
   src = fetchFromGitHub {
     owner = "rui314";
     repo = "mold";
     rev = "v${version}";
-    hash = "sha256-wwlpYAWP8sAsEkTq0w3s2jAWGayW3v9QcaVRKWHTlGE=";
+    hash = "sha256-VVgJDKf21V7Mkfalh8tJ0Tx73VG1ong+8C6uPC23154=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/tools/mongosh/package-lock.json b/nixpkgs/pkgs/development/tools/mongosh/package-lock.json
index 9b4bde253802..f0fae4c8e245 100644
--- a/nixpkgs/pkgs/development/tools/mongosh/package-lock.json
+++ b/nixpkgs/pkgs/development/tools/mongosh/package-lock.json
@@ -1,15 +1,15 @@
 {
   "name": "mongosh",
-  "version": "2.1.5",
+  "version": "2.2.1",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "mongosh",
-      "version": "2.1.5",
+      "version": "2.2.1",
       "license": "Apache-2.0",
       "dependencies": {
-        "@mongosh/cli-repl": "2.1.5"
+        "@mongosh/cli-repl": "2.2.1"
       },
       "bin": {
         "mongosh": "bin/mongosh.js"
@@ -19,12 +19,12 @@
       }
     },
     "node_modules/@ampproject/remapping": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz",
-      "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz",
+      "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
       "dependencies": {
-        "@jridgewell/gen-mapping": "^0.3.0",
-        "@jridgewell/trace-mapping": "^0.3.9"
+        "@jridgewell/gen-mapping": "^0.3.5",
+        "@jridgewell/trace-mapping": "^0.3.24"
       },
       "engines": {
         "node": ">=6.0.0"
@@ -122,532 +122,532 @@
       "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
     },
     "node_modules/@aws-sdk/client-cognito-identity": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.515.0.tgz",
-      "integrity": "sha512-e51ImjjRLzXkPEYguvGCbhWPNhoV2OGS6mKHCR940XEeImt04yE1tytYP1vXYpPICmuYgz79BV0FOC9J5N9bvg==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.535.0.tgz",
+      "integrity": "sha512-7n9WAXAQzDgdaNkZlgdX+dmCW30tCrq3NpPs/f1WFWcF6g+s06ULkuWywTU+usG6ZTuRtajFKy2oMkMv9Wor0g==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/client-sts": "3.515.0",
-        "@aws-sdk/core": "3.513.0",
-        "@aws-sdk/credential-provider-node": "3.515.0",
-        "@aws-sdk/middleware-host-header": "3.515.0",
-        "@aws-sdk/middleware-logger": "3.515.0",
-        "@aws-sdk/middleware-recursion-detection": "3.515.0",
-        "@aws-sdk/middleware-user-agent": "3.515.0",
-        "@aws-sdk/region-config-resolver": "3.515.0",
-        "@aws-sdk/types": "3.515.0",
-        "@aws-sdk/util-endpoints": "3.515.0",
-        "@aws-sdk/util-user-agent-browser": "3.515.0",
-        "@aws-sdk/util-user-agent-node": "3.515.0",
-        "@smithy/config-resolver": "^2.1.1",
-        "@smithy/core": "^1.3.2",
-        "@smithy/fetch-http-handler": "^2.4.1",
-        "@smithy/hash-node": "^2.1.1",
-        "@smithy/invalid-dependency": "^2.1.1",
-        "@smithy/middleware-content-length": "^2.1.1",
-        "@smithy/middleware-endpoint": "^2.4.1",
-        "@smithy/middleware-retry": "^2.1.1",
-        "@smithy/middleware-serde": "^2.1.1",
-        "@smithy/middleware-stack": "^2.1.1",
-        "@smithy/node-config-provider": "^2.2.1",
-        "@smithy/node-http-handler": "^2.3.1",
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/smithy-client": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/url-parser": "^2.1.1",
-        "@smithy/util-base64": "^2.1.1",
-        "@smithy/util-body-length-browser": "^2.1.1",
-        "@smithy/util-body-length-node": "^2.2.1",
-        "@smithy/util-defaults-mode-browser": "^2.1.1",
-        "@smithy/util-defaults-mode-node": "^2.2.0",
-        "@smithy/util-endpoints": "^1.1.1",
-        "@smithy/util-middleware": "^2.1.1",
-        "@smithy/util-retry": "^2.1.1",
-        "@smithy/util-utf8": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/client-sts": "3.535.0",
+        "@aws-sdk/core": "3.535.0",
+        "@aws-sdk/credential-provider-node": "3.535.0",
+        "@aws-sdk/middleware-host-header": "3.535.0",
+        "@aws-sdk/middleware-logger": "3.535.0",
+        "@aws-sdk/middleware-recursion-detection": "3.535.0",
+        "@aws-sdk/middleware-user-agent": "3.535.0",
+        "@aws-sdk/region-config-resolver": "3.535.0",
+        "@aws-sdk/types": "3.535.0",
+        "@aws-sdk/util-endpoints": "3.535.0",
+        "@aws-sdk/util-user-agent-browser": "3.535.0",
+        "@aws-sdk/util-user-agent-node": "3.535.0",
+        "@smithy/config-resolver": "^2.2.0",
+        "@smithy/core": "^1.4.0",
+        "@smithy/fetch-http-handler": "^2.5.0",
+        "@smithy/hash-node": "^2.2.0",
+        "@smithy/invalid-dependency": "^2.2.0",
+        "@smithy/middleware-content-length": "^2.2.0",
+        "@smithy/middleware-endpoint": "^2.5.0",
+        "@smithy/middleware-retry": "^2.2.0",
+        "@smithy/middleware-serde": "^2.3.0",
+        "@smithy/middleware-stack": "^2.2.0",
+        "@smithy/node-config-provider": "^2.3.0",
+        "@smithy/node-http-handler": "^2.5.0",
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/smithy-client": "^2.5.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/url-parser": "^2.2.0",
+        "@smithy/util-base64": "^2.3.0",
+        "@smithy/util-body-length-browser": "^2.2.0",
+        "@smithy/util-body-length-node": "^2.3.0",
+        "@smithy/util-defaults-mode-browser": "^2.2.0",
+        "@smithy/util-defaults-mode-node": "^2.3.0",
+        "@smithy/util-endpoints": "^1.2.0",
+        "@smithy/util-middleware": "^2.2.0",
+        "@smithy/util-retry": "^2.2.0",
+        "@smithy/util-utf8": "^2.3.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/client-sso": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso/-/client-sso-3.515.0.tgz",
-      "integrity": "sha512-4oGBLW476zmkdN98lAns3bObRNO+DLOfg4MDUSR6l6GYBV/zGAtoy2O/FhwYKgA2L5h2ZtElGopLlk/1Q0ePLw==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso/-/client-sso-3.535.0.tgz",
+      "integrity": "sha512-h9eQRdFnjDRVBnPJIKXuX7D+isSAioIfZPC4PQwsL5BscTRlk4c90DX0R0uk64YUtp7LZu8TNtrosFZ/1HtTrQ==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/core": "3.513.0",
-        "@aws-sdk/middleware-host-header": "3.515.0",
-        "@aws-sdk/middleware-logger": "3.515.0",
-        "@aws-sdk/middleware-recursion-detection": "3.515.0",
-        "@aws-sdk/middleware-user-agent": "3.515.0",
-        "@aws-sdk/region-config-resolver": "3.515.0",
-        "@aws-sdk/types": "3.515.0",
-        "@aws-sdk/util-endpoints": "3.515.0",
-        "@aws-sdk/util-user-agent-browser": "3.515.0",
-        "@aws-sdk/util-user-agent-node": "3.515.0",
-        "@smithy/config-resolver": "^2.1.1",
-        "@smithy/core": "^1.3.2",
-        "@smithy/fetch-http-handler": "^2.4.1",
-        "@smithy/hash-node": "^2.1.1",
-        "@smithy/invalid-dependency": "^2.1.1",
-        "@smithy/middleware-content-length": "^2.1.1",
-        "@smithy/middleware-endpoint": "^2.4.1",
-        "@smithy/middleware-retry": "^2.1.1",
-        "@smithy/middleware-serde": "^2.1.1",
-        "@smithy/middleware-stack": "^2.1.1",
-        "@smithy/node-config-provider": "^2.2.1",
-        "@smithy/node-http-handler": "^2.3.1",
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/smithy-client": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/url-parser": "^2.1.1",
-        "@smithy/util-base64": "^2.1.1",
-        "@smithy/util-body-length-browser": "^2.1.1",
-        "@smithy/util-body-length-node": "^2.2.1",
-        "@smithy/util-defaults-mode-browser": "^2.1.1",
-        "@smithy/util-defaults-mode-node": "^2.2.0",
-        "@smithy/util-endpoints": "^1.1.1",
-        "@smithy/util-middleware": "^2.1.1",
-        "@smithy/util-retry": "^2.1.1",
-        "@smithy/util-utf8": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/core": "3.535.0",
+        "@aws-sdk/middleware-host-header": "3.535.0",
+        "@aws-sdk/middleware-logger": "3.535.0",
+        "@aws-sdk/middleware-recursion-detection": "3.535.0",
+        "@aws-sdk/middleware-user-agent": "3.535.0",
+        "@aws-sdk/region-config-resolver": "3.535.0",
+        "@aws-sdk/types": "3.535.0",
+        "@aws-sdk/util-endpoints": "3.535.0",
+        "@aws-sdk/util-user-agent-browser": "3.535.0",
+        "@aws-sdk/util-user-agent-node": "3.535.0",
+        "@smithy/config-resolver": "^2.2.0",
+        "@smithy/core": "^1.4.0",
+        "@smithy/fetch-http-handler": "^2.5.0",
+        "@smithy/hash-node": "^2.2.0",
+        "@smithy/invalid-dependency": "^2.2.0",
+        "@smithy/middleware-content-length": "^2.2.0",
+        "@smithy/middleware-endpoint": "^2.5.0",
+        "@smithy/middleware-retry": "^2.2.0",
+        "@smithy/middleware-serde": "^2.3.0",
+        "@smithy/middleware-stack": "^2.2.0",
+        "@smithy/node-config-provider": "^2.3.0",
+        "@smithy/node-http-handler": "^2.5.0",
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/smithy-client": "^2.5.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/url-parser": "^2.2.0",
+        "@smithy/util-base64": "^2.3.0",
+        "@smithy/util-body-length-browser": "^2.2.0",
+        "@smithy/util-body-length-node": "^2.3.0",
+        "@smithy/util-defaults-mode-browser": "^2.2.0",
+        "@smithy/util-defaults-mode-node": "^2.3.0",
+        "@smithy/util-endpoints": "^1.2.0",
+        "@smithy/util-middleware": "^2.2.0",
+        "@smithy/util-retry": "^2.2.0",
+        "@smithy/util-utf8": "^2.3.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/client-sso-oidc": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.515.0.tgz",
-      "integrity": "sha512-zACa8LNlPUdlNUBqQRf5a3MfouLNtcBfm84v2c8M976DwJrMGONPe1QjyLLsD38uESQiXiVQRruj/b000iMXNw==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.535.0.tgz",
+      "integrity": "sha512-M2cG4EQXDpAJQyq33ORIr6abmdX9p9zX0ssVy8XwFNB7lrgoIKxuVoGL+fX+XMgecl24x7ELz6b4QlILOevbCw==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/client-sts": "3.515.0",
-        "@aws-sdk/core": "3.513.0",
-        "@aws-sdk/middleware-host-header": "3.515.0",
-        "@aws-sdk/middleware-logger": "3.515.0",
-        "@aws-sdk/middleware-recursion-detection": "3.515.0",
-        "@aws-sdk/middleware-user-agent": "3.515.0",
-        "@aws-sdk/region-config-resolver": "3.515.0",
-        "@aws-sdk/types": "3.515.0",
-        "@aws-sdk/util-endpoints": "3.515.0",
-        "@aws-sdk/util-user-agent-browser": "3.515.0",
-        "@aws-sdk/util-user-agent-node": "3.515.0",
-        "@smithy/config-resolver": "^2.1.1",
-        "@smithy/core": "^1.3.2",
-        "@smithy/fetch-http-handler": "^2.4.1",
-        "@smithy/hash-node": "^2.1.1",
-        "@smithy/invalid-dependency": "^2.1.1",
-        "@smithy/middleware-content-length": "^2.1.1",
-        "@smithy/middleware-endpoint": "^2.4.1",
-        "@smithy/middleware-retry": "^2.1.1",
-        "@smithy/middleware-serde": "^2.1.1",
-        "@smithy/middleware-stack": "^2.1.1",
-        "@smithy/node-config-provider": "^2.2.1",
-        "@smithy/node-http-handler": "^2.3.1",
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/smithy-client": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/url-parser": "^2.1.1",
-        "@smithy/util-base64": "^2.1.1",
-        "@smithy/util-body-length-browser": "^2.1.1",
-        "@smithy/util-body-length-node": "^2.2.1",
-        "@smithy/util-defaults-mode-browser": "^2.1.1",
-        "@smithy/util-defaults-mode-node": "^2.2.0",
-        "@smithy/util-endpoints": "^1.1.1",
-        "@smithy/util-middleware": "^2.1.1",
-        "@smithy/util-retry": "^2.1.1",
-        "@smithy/util-utf8": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/client-sts": "3.535.0",
+        "@aws-sdk/core": "3.535.0",
+        "@aws-sdk/middleware-host-header": "3.535.0",
+        "@aws-sdk/middleware-logger": "3.535.0",
+        "@aws-sdk/middleware-recursion-detection": "3.535.0",
+        "@aws-sdk/middleware-user-agent": "3.535.0",
+        "@aws-sdk/region-config-resolver": "3.535.0",
+        "@aws-sdk/types": "3.535.0",
+        "@aws-sdk/util-endpoints": "3.535.0",
+        "@aws-sdk/util-user-agent-browser": "3.535.0",
+        "@aws-sdk/util-user-agent-node": "3.535.0",
+        "@smithy/config-resolver": "^2.2.0",
+        "@smithy/core": "^1.4.0",
+        "@smithy/fetch-http-handler": "^2.5.0",
+        "@smithy/hash-node": "^2.2.0",
+        "@smithy/invalid-dependency": "^2.2.0",
+        "@smithy/middleware-content-length": "^2.2.0",
+        "@smithy/middleware-endpoint": "^2.5.0",
+        "@smithy/middleware-retry": "^2.2.0",
+        "@smithy/middleware-serde": "^2.3.0",
+        "@smithy/middleware-stack": "^2.2.0",
+        "@smithy/node-config-provider": "^2.3.0",
+        "@smithy/node-http-handler": "^2.5.0",
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/smithy-client": "^2.5.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/url-parser": "^2.2.0",
+        "@smithy/util-base64": "^2.3.0",
+        "@smithy/util-body-length-browser": "^2.2.0",
+        "@smithy/util-body-length-node": "^2.3.0",
+        "@smithy/util-defaults-mode-browser": "^2.2.0",
+        "@smithy/util-defaults-mode-node": "^2.3.0",
+        "@smithy/util-endpoints": "^1.2.0",
+        "@smithy/util-middleware": "^2.2.0",
+        "@smithy/util-retry": "^2.2.0",
+        "@smithy/util-utf8": "^2.3.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/credential-provider-node": "^3.515.0"
+        "@aws-sdk/credential-provider-node": "^3.535.0"
       }
     },
     "node_modules/@aws-sdk/client-sts": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sts/-/client-sts-3.515.0.tgz",
-      "integrity": "sha512-ScYuvaIDgip3atOJIA1FU2n0gJkEdveu1KrrCPathoUCV5zpK8qQmO/n+Fj/7hKFxeKdFbB+4W4CsJWYH94nlg==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sts/-/client-sts-3.535.0.tgz",
+      "integrity": "sha512-ii9OOm3TJwP3JmO1IVJXKWIShVKPl0VtdlgROc/SkDglO/kuAw9eDdlROgc+qbFl+gm6bBTguOVTUXt3tS3flw==",
       "dependencies": {
         "@aws-crypto/sha256-browser": "3.0.0",
         "@aws-crypto/sha256-js": "3.0.0",
-        "@aws-sdk/core": "3.513.0",
-        "@aws-sdk/middleware-host-header": "3.515.0",
-        "@aws-sdk/middleware-logger": "3.515.0",
-        "@aws-sdk/middleware-recursion-detection": "3.515.0",
-        "@aws-sdk/middleware-user-agent": "3.515.0",
-        "@aws-sdk/region-config-resolver": "3.515.0",
-        "@aws-sdk/types": "3.515.0",
-        "@aws-sdk/util-endpoints": "3.515.0",
-        "@aws-sdk/util-user-agent-browser": "3.515.0",
-        "@aws-sdk/util-user-agent-node": "3.515.0",
-        "@smithy/config-resolver": "^2.1.1",
-        "@smithy/core": "^1.3.2",
-        "@smithy/fetch-http-handler": "^2.4.1",
-        "@smithy/hash-node": "^2.1.1",
-        "@smithy/invalid-dependency": "^2.1.1",
-        "@smithy/middleware-content-length": "^2.1.1",
-        "@smithy/middleware-endpoint": "^2.4.1",
-        "@smithy/middleware-retry": "^2.1.1",
-        "@smithy/middleware-serde": "^2.1.1",
-        "@smithy/middleware-stack": "^2.1.1",
-        "@smithy/node-config-provider": "^2.2.1",
-        "@smithy/node-http-handler": "^2.3.1",
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/smithy-client": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/url-parser": "^2.1.1",
-        "@smithy/util-base64": "^2.1.1",
-        "@smithy/util-body-length-browser": "^2.1.1",
-        "@smithy/util-body-length-node": "^2.2.1",
-        "@smithy/util-defaults-mode-browser": "^2.1.1",
-        "@smithy/util-defaults-mode-node": "^2.2.0",
-        "@smithy/util-endpoints": "^1.1.1",
-        "@smithy/util-middleware": "^2.1.1",
-        "@smithy/util-retry": "^2.1.1",
-        "@smithy/util-utf8": "^2.1.1",
-        "fast-xml-parser": "4.2.5",
-        "tslib": "^2.5.0"
+        "@aws-sdk/core": "3.535.0",
+        "@aws-sdk/middleware-host-header": "3.535.0",
+        "@aws-sdk/middleware-logger": "3.535.0",
+        "@aws-sdk/middleware-recursion-detection": "3.535.0",
+        "@aws-sdk/middleware-user-agent": "3.535.0",
+        "@aws-sdk/region-config-resolver": "3.535.0",
+        "@aws-sdk/types": "3.535.0",
+        "@aws-sdk/util-endpoints": "3.535.0",
+        "@aws-sdk/util-user-agent-browser": "3.535.0",
+        "@aws-sdk/util-user-agent-node": "3.535.0",
+        "@smithy/config-resolver": "^2.2.0",
+        "@smithy/core": "^1.4.0",
+        "@smithy/fetch-http-handler": "^2.5.0",
+        "@smithy/hash-node": "^2.2.0",
+        "@smithy/invalid-dependency": "^2.2.0",
+        "@smithy/middleware-content-length": "^2.2.0",
+        "@smithy/middleware-endpoint": "^2.5.0",
+        "@smithy/middleware-retry": "^2.2.0",
+        "@smithy/middleware-serde": "^2.3.0",
+        "@smithy/middleware-stack": "^2.2.0",
+        "@smithy/node-config-provider": "^2.3.0",
+        "@smithy/node-http-handler": "^2.5.0",
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/smithy-client": "^2.5.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/url-parser": "^2.2.0",
+        "@smithy/util-base64": "^2.3.0",
+        "@smithy/util-body-length-browser": "^2.2.0",
+        "@smithy/util-body-length-node": "^2.3.0",
+        "@smithy/util-defaults-mode-browser": "^2.2.0",
+        "@smithy/util-defaults-mode-node": "^2.3.0",
+        "@smithy/util-endpoints": "^1.2.0",
+        "@smithy/util-middleware": "^2.2.0",
+        "@smithy/util-retry": "^2.2.0",
+        "@smithy/util-utf8": "^2.3.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/credential-provider-node": "^3.515.0"
+        "@aws-sdk/credential-provider-node": "^3.535.0"
       }
     },
     "node_modules/@aws-sdk/core": {
-      "version": "3.513.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/core/-/core-3.513.0.tgz",
-      "integrity": "sha512-L+9DL4apWuqNKVOMJ8siAuWoRM9rZf9w1iPv8S2o83WO2jVK7E/m+rNW1dFo9HsA5V1ccDl2H2qLXx24HiHmOw==",
-      "dependencies": {
-        "@smithy/core": "^1.3.2",
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/signature-v4": "^2.1.1",
-        "@smithy/smithy-client": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/core/-/core-3.535.0.tgz",
+      "integrity": "sha512-+Yusa9HziuaEDta1UaLEtMAtmgvxdxhPn7jgfRY6PplqAqgsfa5FR83sxy5qr2q7xjQTwHtV4MjQVuOjG9JsLw==",
+      "dependencies": {
+        "@smithy/core": "^1.4.0",
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/signature-v4": "^2.2.0",
+        "@smithy/smithy-client": "^2.5.0",
+        "@smithy/types": "^2.12.0",
+        "fast-xml-parser": "4.2.5",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-cognito-identity": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.515.0.tgz",
-      "integrity": "sha512-pWMJFhNc6bLbCpKhYXWWa23wMyhpFFyw3kF/6ea+95JQHF0FY2l4wDQa7ynE4hW4Wf5oA3Sf7Wf87pp9iAHubQ==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.535.0.tgz",
+      "integrity": "sha512-Lc+RJTNzp22H31W/O7iSmCZUP+KYZMuzK8hKU4/RXo7D8t/cFLb4VpvvcCCa4UOZqdmxVqEhwc1oXyMkoszITQ==",
       "dependencies": {
-        "@aws-sdk/client-cognito-identity": "3.515.0",
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/property-provider": "^2.1.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/client-cognito-identity": "3.535.0",
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/property-provider": "^2.2.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-env": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.515.0.tgz",
-      "integrity": "sha512-45vxdyqhTAaUMERYVWOziG3K8L2TV9G4ryQS/KZ84o7NAybE9GMdoZRVmGHAO7mJJ1wQiYCM/E+i5b3NW9JfNA==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.535.0.tgz",
+      "integrity": "sha512-XppwO8c0GCGSAvdzyJOhbtktSEaShg14VJKg8mpMa1XcgqzmcqqHQjtDWbx5rZheY1VdpXZhpEzJkB6LpQejpA==",
       "dependencies": {
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/property-provider": "^2.1.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/property-provider": "^2.2.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-http": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.515.0.tgz",
-      "integrity": "sha512-Ba6FXK77vU4WyheiamNjEuTFmir0eAXuJGPO27lBaA8g+V/seXGHScsbOG14aQGDOr2P02OPwKGZrWWA7BFpfQ==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.535.0.tgz",
+      "integrity": "sha512-kdj1wCmOMZ29jSlUskRqN04S6fJ4dvt0Nq9Z32SA6wO7UG8ht6Ot9h/au/eTWJM3E1somZ7D771oK7dQt9b8yw==",
       "dependencies": {
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/fetch-http-handler": "^2.4.1",
-        "@smithy/node-http-handler": "^2.3.1",
-        "@smithy/property-provider": "^2.1.1",
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/smithy-client": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/util-stream": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/fetch-http-handler": "^2.5.0",
+        "@smithy/node-http-handler": "^2.5.0",
+        "@smithy/property-provider": "^2.2.0",
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/smithy-client": "^2.5.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/util-stream": "^2.2.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-ini": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.515.0.tgz",
-      "integrity": "sha512-ouDlNZdv2TKeVEA/YZk2+XklTXyAAGdbWnl4IgN9ItaodWI+lZjdIoNC8BAooVH+atIV/cZgoGTGQL7j2TxJ9A==",
-      "dependencies": {
-        "@aws-sdk/client-sts": "3.515.0",
-        "@aws-sdk/credential-provider-env": "3.515.0",
-        "@aws-sdk/credential-provider-process": "3.515.0",
-        "@aws-sdk/credential-provider-sso": "3.515.0",
-        "@aws-sdk/credential-provider-web-identity": "3.515.0",
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/credential-provider-imds": "^2.2.1",
-        "@smithy/property-provider": "^2.1.1",
-        "@smithy/shared-ini-file-loader": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.535.0.tgz",
+      "integrity": "sha512-bm3XOYlyCjtAb8eeHXLrxqRxYVRw2Iqv9IufdJb4gM13TbNSYniUT1WKaHxGIZ5p+FuNlXVhvk1OpHFM13+gXA==",
+      "dependencies": {
+        "@aws-sdk/client-sts": "3.535.0",
+        "@aws-sdk/credential-provider-env": "3.535.0",
+        "@aws-sdk/credential-provider-process": "3.535.0",
+        "@aws-sdk/credential-provider-sso": "3.535.0",
+        "@aws-sdk/credential-provider-web-identity": "3.535.0",
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/credential-provider-imds": "^2.3.0",
+        "@smithy/property-provider": "^2.2.0",
+        "@smithy/shared-ini-file-loader": "^2.4.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-node": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.515.0.tgz",
-      "integrity": "sha512-Y4kHSpbxksiCZZNcvsiKUd8Fb2XlyUuONEwqWFNL82ZH6TCCjBGS31wJQCSxBHqYcOL3tiORUEJkoO7uS30uQA==",
-      "dependencies": {
-        "@aws-sdk/credential-provider-env": "3.515.0",
-        "@aws-sdk/credential-provider-http": "3.515.0",
-        "@aws-sdk/credential-provider-ini": "3.515.0",
-        "@aws-sdk/credential-provider-process": "3.515.0",
-        "@aws-sdk/credential-provider-sso": "3.515.0",
-        "@aws-sdk/credential-provider-web-identity": "3.515.0",
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/credential-provider-imds": "^2.2.1",
-        "@smithy/property-provider": "^2.1.1",
-        "@smithy/shared-ini-file-loader": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.535.0.tgz",
+      "integrity": "sha512-6JXp/EuL6euUkH5k4d+lQFF6gBwukrcCOWfNHCmq14mNJf/cqT3HAX1VMtWFRSK20am0IxfYQGccb0/nZykdKg==",
+      "dependencies": {
+        "@aws-sdk/credential-provider-env": "3.535.0",
+        "@aws-sdk/credential-provider-http": "3.535.0",
+        "@aws-sdk/credential-provider-ini": "3.535.0",
+        "@aws-sdk/credential-provider-process": "3.535.0",
+        "@aws-sdk/credential-provider-sso": "3.535.0",
+        "@aws-sdk/credential-provider-web-identity": "3.535.0",
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/credential-provider-imds": "^2.3.0",
+        "@smithy/property-provider": "^2.2.0",
+        "@smithy/shared-ini-file-loader": "^2.4.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-process": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.515.0.tgz",
-      "integrity": "sha512-pSjiOA2FM63LHRKNDvEpBRp80FVGT0Mw/gzgbqFXP+sewk0WVonYbEcMDTJptH3VsLPGzqH/DQ1YL/aEIBuXFQ==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.535.0.tgz",
+      "integrity": "sha512-9O1OaprGCnlb/kYl8RwmH7Mlg8JREZctB8r9sa1KhSsWFq/SWO0AuJTyowxD7zL5PkeS4eTvzFFHWCa3OO5epA==",
       "dependencies": {
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/property-provider": "^2.1.1",
-        "@smithy/shared-ini-file-loader": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/property-provider": "^2.2.0",
+        "@smithy/shared-ini-file-loader": "^2.4.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-sso": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.515.0.tgz",
-      "integrity": "sha512-j7vUkiSmuhpBvZYoPTRTI4ePnQbiZMFl6TNhg9b9DprC1zHkucsZnhRhqjOVlrw/H6J4jmcPGcHHTZ5WQNI5xQ==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.535.0.tgz",
+      "integrity": "sha512-2Dw0YIr8ETdFpq65CC4zK8ZIEbX78rXoNRZXUGNQW3oSKfL0tj8O8ErY6kg1IdEnYbGnEQ35q6luZ5GGNKLgDg==",
       "dependencies": {
-        "@aws-sdk/client-sso": "3.515.0",
-        "@aws-sdk/token-providers": "3.515.0",
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/property-provider": "^2.1.1",
-        "@smithy/shared-ini-file-loader": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/client-sso": "3.535.0",
+        "@aws-sdk/token-providers": "3.535.0",
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/property-provider": "^2.2.0",
+        "@smithy/shared-ini-file-loader": "^2.4.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-web-identity": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.515.0.tgz",
-      "integrity": "sha512-66+2g4z3fWwdoGReY8aUHvm6JrKZMTRxjuizljVmMyOBttKPeBYXvUTop/g3ZGUx1f8j+C5qsGK52viYBvtjuQ==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.535.0.tgz",
+      "integrity": "sha512-t2/JWrKY0H66A7JW7CqX06/DG2YkJddikt5ymdQvx/Q7dRMJ3d+o/vgjoKr7RvEx/pNruCeyM1599HCvwrVMrg==",
       "dependencies": {
-        "@aws-sdk/client-sts": "3.515.0",
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/property-provider": "^2.1.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/client-sts": "3.535.0",
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/property-provider": "^2.2.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/credential-providers": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-providers/-/credential-providers-3.515.0.tgz",
-      "integrity": "sha512-XQ9maVLTtv6iJbOYiRS+IvaPlFkJDuxfpfxuky3aPzQpxDilU4cf1CfIDua8qivZKQ4QQOd1EaBMXPIpLI1ZTQ==",
-      "dependencies": {
-        "@aws-sdk/client-cognito-identity": "3.515.0",
-        "@aws-sdk/client-sso": "3.515.0",
-        "@aws-sdk/client-sts": "3.515.0",
-        "@aws-sdk/credential-provider-cognito-identity": "3.515.0",
-        "@aws-sdk/credential-provider-env": "3.515.0",
-        "@aws-sdk/credential-provider-http": "3.515.0",
-        "@aws-sdk/credential-provider-ini": "3.515.0",
-        "@aws-sdk/credential-provider-node": "3.515.0",
-        "@aws-sdk/credential-provider-process": "3.515.0",
-        "@aws-sdk/credential-provider-sso": "3.515.0",
-        "@aws-sdk/credential-provider-web-identity": "3.515.0",
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/credential-provider-imds": "^2.2.1",
-        "@smithy/property-provider": "^2.1.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-providers/-/credential-providers-3.535.0.tgz",
+      "integrity": "sha512-rC3TguTFbeua3EyTwGm84xeARKE1RO0oIWdtuTmSS5ZCPwllcePGkOVg7gQiPRc01Ebj816S/6P2QbvAfSUxqA==",
+      "dependencies": {
+        "@aws-sdk/client-cognito-identity": "3.535.0",
+        "@aws-sdk/client-sso": "3.535.0",
+        "@aws-sdk/client-sts": "3.535.0",
+        "@aws-sdk/credential-provider-cognito-identity": "3.535.0",
+        "@aws-sdk/credential-provider-env": "3.535.0",
+        "@aws-sdk/credential-provider-http": "3.535.0",
+        "@aws-sdk/credential-provider-ini": "3.535.0",
+        "@aws-sdk/credential-provider-node": "3.535.0",
+        "@aws-sdk/credential-provider-process": "3.535.0",
+        "@aws-sdk/credential-provider-sso": "3.535.0",
+        "@aws-sdk/credential-provider-web-identity": "3.535.0",
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/credential-provider-imds": "^2.3.0",
+        "@smithy/property-provider": "^2.2.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/middleware-host-header": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.515.0.tgz",
-      "integrity": "sha512-I1MwWPzdRKM1luvdDdjdGsDjNVPhj9zaIytEchjTY40NcKOg+p2evLD2y69ozzg8pyXK63r8DdvDGOo9QPuh0A==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.535.0.tgz",
+      "integrity": "sha512-0h6TWjBWtDaYwHMQJI9ulafeS4lLaw1vIxRjbpH0svFRt6Eve+Sy8NlVhECfTU2hNz/fLubvrUxsXoThaLBIew==",
       "dependencies": {
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/middleware-logger": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-logger/-/middleware-logger-3.515.0.tgz",
-      "integrity": "sha512-qXomJzg2m/5seQOxHi/yOXOKfSjwrrJSmEmfwJKJyQgdMbBcjz3Cz0H/1LyC6c5hHm6a/SZgSTzDAbAoUmyL+Q==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-logger/-/middleware-logger-3.535.0.tgz",
+      "integrity": "sha512-huNHpONOrEDrdRTvSQr1cJiRMNf0S52NDXtaPzdxiubTkP+vni2MohmZANMOai/qT0olmEVX01LhZ0ZAOgmg6A==",
       "dependencies": {
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/middleware-recursion-detection": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.515.0.tgz",
-      "integrity": "sha512-dokHLbTV3IHRIBrw9mGoxcNTnQsjlm7TpkJhPdGT9T4Mq399EyQo51u6IsVMm07RXLl2Zw7u+u9p+qWBFzmFRA==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.535.0.tgz",
+      "integrity": "sha512-am2qgGs+gwqmR4wHLWpzlZ8PWhm4ktj5bYSgDrsOfjhdBlWNxvPoID9/pDAz5RWL48+oH7I6SQzMqxXsFDikrw==",
       "dependencies": {
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/middleware-user-agent": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.515.0.tgz",
-      "integrity": "sha512-nOqZjGA/GkjuJ5fUshec9Fv6HFd7ovOTxMJbw3MfAhqXuVZ6dKF41lpVJ4imNsgyFt3shUg9WDY8zGFjlYMB3g==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.535.0.tgz",
+      "integrity": "sha512-Uvb2WJ+zdHdCOtsWVPI/M0BcfNrjOYsicDZWtaljucRJKLclY5gNWwD+RwIC+8b5TvfnVOlH+N5jhvpi5Impog==",
       "dependencies": {
-        "@aws-sdk/types": "3.515.0",
-        "@aws-sdk/util-endpoints": "3.515.0",
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/types": "3.535.0",
+        "@aws-sdk/util-endpoints": "3.535.0",
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/region-config-resolver": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.515.0.tgz",
-      "integrity": "sha512-RIRx9loxMgEAc/r1wPfnfShOuzn4RBi8pPPv6/jhhITEeMnJe6enAh2k5y9DdiVDDgCWZgVFSv0YkAIfzAFsnQ==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.535.0.tgz",
+      "integrity": "sha512-IXOznDiaItBjsQy4Fil0kzX/J3HxIOknEphqHbOfUf+LpA5ugcsxuQQONrbEQusCBnfJyymrldBvBhFmtlU9Wg==",
       "dependencies": {
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/node-config-provider": "^2.2.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/util-config-provider": "^2.2.1",
-        "@smithy/util-middleware": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/node-config-provider": "^2.3.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/util-config-provider": "^2.3.0",
+        "@smithy/util-middleware": "^2.2.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/token-providers": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/token-providers/-/token-providers-3.515.0.tgz",
-      "integrity": "sha512-MQuf04rIcTXqwDzmyHSpFPF1fKEzRl64oXtCRUF3ddxTdK6wxXkePfK6wNCuL+GEbEcJAoCtIGIRpzGPJvQjHA==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/token-providers/-/token-providers-3.535.0.tgz",
+      "integrity": "sha512-4g+l/B9h1H/SiDtFRosW3pMwc+3PTXljZit+5NUBcET2XqcdUyHmgj3lBdu+CJ9CHdIMggRalYMAFXnRFe3Psg==",
       "dependencies": {
-        "@aws-sdk/client-sso-oidc": "3.515.0",
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/property-provider": "^2.1.1",
-        "@smithy/shared-ini-file-loader": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/client-sso-oidc": "3.535.0",
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/property-provider": "^2.2.0",
+        "@smithy/shared-ini-file-loader": "^2.4.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/types": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/types/-/types-3.515.0.tgz",
-      "integrity": "sha512-B3gUpiMlpT6ERaLvZZ61D0RyrQPsFYDkCncLPVkZOKkCOoFU46zi1o6T5JcYiz8vkx1q9RGloQ5exh79s5pU/w==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/types/-/types-3.535.0.tgz",
+      "integrity": "sha512-aY4MYfduNj+sRR37U7XxYR8wemfbKP6lx00ze2M2uubn7mZotuVrWYAafbMSXrdEMSToE5JDhr28vArSOoLcSg==",
       "dependencies": {
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/util-endpoints": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-endpoints/-/util-endpoints-3.515.0.tgz",
-      "integrity": "sha512-UJi+jdwcGFV/F7d3+e2aQn5yZOVpDiAgfgNhPnEtgV0WozJ5/ZUeZBgWvSc/K415N4A4D/9cbBc7+I+35qzcDQ==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-endpoints/-/util-endpoints-3.535.0.tgz",
+      "integrity": "sha512-c8TlaQsiPchOOmTTR6qvHCO2O7L7NJwlKWAoQJ2GqWDZuC5es/fyuF2rp1h+ZRrUVraUomS0YdGkAmaDC7hJQg==",
       "dependencies": {
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/types": "^2.9.1",
-        "@smithy/util-endpoints": "^1.1.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/util-endpoints": "^1.2.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/util-locate-window": {
-      "version": "3.495.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-locate-window/-/util-locate-window-3.495.0.tgz",
-      "integrity": "sha512-MfaPXT0kLX2tQaR90saBT9fWQq2DHqSSJRzW+MZWsmF+y5LGCOhO22ac/2o6TKSQm7h0HRc2GaADqYYYor62yg==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-locate-window/-/util-locate-window-3.535.0.tgz",
+      "integrity": "sha512-PHJ3SL6d2jpcgbqdgiPxkXpu7Drc2PYViwxSIqvvMKhDwzSB1W3mMvtpzwKM4IE7zLFodZo0GKjJ9AsoXndXhA==",
       "dependencies": {
-        "tslib": "^2.5.0"
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@aws-sdk/util-user-agent-browser": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.515.0.tgz",
-      "integrity": "sha512-pTWQb0JCafTmLHLDv3Qqs/nAAJghcPdGQIBpsCStb0YEzg3At/dOi2AIQ683yYnXmeOxLXJDzmlsovfVObJScw==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.535.0.tgz",
+      "integrity": "sha512-RWMcF/xV5n+nhaA/Ff5P3yNP3Kur/I+VNZngog4TEs92oB/nwOdAg/2JL8bVAhUbMrjTjpwm7PItziYFQoqyig==",
       "dependencies": {
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/types": "^2.9.1",
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/types": "^2.12.0",
         "bowser": "^2.11.0",
-        "tslib": "^2.5.0"
+        "tslib": "^2.6.2"
       }
     },
     "node_modules/@aws-sdk/util-user-agent-node": {
-      "version": "3.515.0",
-      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.515.0.tgz",
-      "integrity": "sha512-A/KJ+/HTohHyVXLH+t/bO0Z2mPrQgELbQO8tX+B2nElo8uklj70r5cT7F8ETsI9oOy+HDVpiL5/v45ZgpUOiPg==",
+      "version": "3.535.0",
+      "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.535.0.tgz",
+      "integrity": "sha512-dRek0zUuIT25wOWJlsRm97nTkUlh1NDcLsQZIN2Y8KxhwoXXWtJs5vaDPT+qAg+OpcNj80i1zLR/CirqlFg/TQ==",
       "dependencies": {
-        "@aws-sdk/types": "3.515.0",
-        "@smithy/node-config-provider": "^2.2.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@aws-sdk/types": "3.535.0",
+        "@smithy/node-config-provider": "^2.3.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
@@ -670,40 +670,40 @@
       }
     },
     "node_modules/@babel/code-frame": {
-      "version": "7.23.5",
-      "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.23.5.tgz",
-      "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+      "version": "7.24.2",
+      "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.2.tgz",
+      "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
       "dependencies": {
-        "@babel/highlight": "^7.23.4",
-        "chalk": "^2.4.2"
+        "@babel/highlight": "^7.24.2",
+        "picocolors": "^1.0.0"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/compat-data": {
-      "version": "7.23.5",
-      "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.23.5.tgz",
-      "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
+      "version": "7.24.1",
+      "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.24.1.tgz",
+      "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==",
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/core": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.23.9.tgz",
-      "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
+      "version": "7.24.1",
+      "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.24.1.tgz",
+      "integrity": "sha512-F82udohVyIgGAY2VVj/g34TpFUG606rumIHjTfVbssPg2zTR7PuuEpZcX8JA6sgBfIYmJrFtWgPvHQuJamVqZQ==",
       "dependencies": {
         "@ampproject/remapping": "^2.2.0",
-        "@babel/code-frame": "^7.23.5",
-        "@babel/generator": "^7.23.6",
+        "@babel/code-frame": "^7.24.1",
+        "@babel/generator": "^7.24.1",
         "@babel/helper-compilation-targets": "^7.23.6",
         "@babel/helper-module-transforms": "^7.23.3",
-        "@babel/helpers": "^7.23.9",
-        "@babel/parser": "^7.23.9",
-        "@babel/template": "^7.23.9",
-        "@babel/traverse": "^7.23.9",
-        "@babel/types": "^7.23.9",
+        "@babel/helpers": "^7.24.1",
+        "@babel/parser": "^7.24.1",
+        "@babel/template": "^7.24.0",
+        "@babel/traverse": "^7.24.1",
+        "@babel/types": "^7.24.0",
         "convert-source-map": "^2.0.0",
         "debug": "^4.1.0",
         "gensync": "^1.0.0-beta.2",
@@ -723,13 +723,13 @@
       }
     },
     "node_modules/@babel/generator": {
-      "version": "7.23.6",
-      "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.23.6.tgz",
-      "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
+      "version": "7.24.1",
+      "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.24.1.tgz",
+      "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==",
       "dependencies": {
-        "@babel/types": "^7.23.6",
-        "@jridgewell/gen-mapping": "^0.3.2",
-        "@jridgewell/trace-mapping": "^0.3.17",
+        "@babel/types": "^7.24.0",
+        "@jridgewell/gen-mapping": "^0.3.5",
+        "@jridgewell/trace-mapping": "^0.3.25",
         "jsesc": "^2.5.1"
       },
       "engines": {
@@ -791,11 +791,11 @@
       }
     },
     "node_modules/@babel/helper-module-imports": {
-      "version": "7.22.15",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
-      "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+      "version": "7.24.1",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.1.tgz",
+      "integrity": "sha512-HfEWzysMyOa7xI5uQHc/OcZf67/jc+xe/RZlznWQHhbb8Pg1SkRdbK4yEi61aY8wxQA7PkSfoojtLQP/Kpe3og==",
       "dependencies": {
-        "@babel/types": "^7.22.15"
+        "@babel/types": "^7.24.0"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -820,9 +820,9 @@
       }
     },
     "node_modules/@babel/helper-plugin-utils": {
-      "version": "7.22.5",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
-      "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+      "version": "7.24.0",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz",
+      "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==",
       "engines": {
         "node": ">=6.9.0"
       }
@@ -850,9 +850,9 @@
       }
     },
     "node_modules/@babel/helper-string-parser": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
-      "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
+      "version": "7.24.1",
+      "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz",
+      "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==",
       "engines": {
         "node": ">=6.9.0"
       }
@@ -874,35 +874,36 @@
       }
     },
     "node_modules/@babel/helpers": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.23.9.tgz",
-      "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
+      "version": "7.24.1",
+      "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.24.1.tgz",
+      "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==",
       "dependencies": {
-        "@babel/template": "^7.23.9",
-        "@babel/traverse": "^7.23.9",
-        "@babel/types": "^7.23.9"
+        "@babel/template": "^7.24.0",
+        "@babel/traverse": "^7.24.1",
+        "@babel/types": "^7.24.0"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/highlight": {
-      "version": "7.23.4",
-      "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.23.4.tgz",
-      "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+      "version": "7.24.2",
+      "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.2.tgz",
+      "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
       "dependencies": {
         "@babel/helper-validator-identifier": "^7.22.20",
         "chalk": "^2.4.2",
-        "js-tokens": "^4.0.0"
+        "js-tokens": "^4.0.0",
+        "picocolors": "^1.0.0"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/parser": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.9.tgz",
-      "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
+      "version": "7.24.1",
+      "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.24.1.tgz",
+      "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==",
       "bin": {
         "parser": "bin/babel-parser.js"
       },
@@ -911,11 +912,11 @@
       }
     },
     "node_modules/@babel/plugin-transform-destructuring": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz",
-      "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==",
+      "version": "7.24.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz",
+      "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==",
       "dependencies": {
-        "@babel/helper-plugin-utils": "^7.22.5"
+        "@babel/helper-plugin-utils": "^7.24.0"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -925,11 +926,11 @@
       }
     },
     "node_modules/@babel/plugin-transform-parameters": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz",
-      "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==",
+      "version": "7.24.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz",
+      "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==",
       "dependencies": {
-        "@babel/helper-plugin-utils": "^7.22.5"
+        "@babel/helper-plugin-utils": "^7.24.0"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -939,11 +940,11 @@
       }
     },
     "node_modules/@babel/plugin-transform-shorthand-properties": {
-      "version": "7.23.3",
-      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz",
-      "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==",
+      "version": "7.24.1",
+      "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz",
+      "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==",
       "dependencies": {
-        "@babel/helper-plugin-utils": "^7.22.5"
+        "@babel/helper-plugin-utils": "^7.24.0"
       },
       "engines": {
         "node": ">=6.9.0"
@@ -953,31 +954,31 @@
       }
     },
     "node_modules/@babel/template": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.23.9.tgz",
-      "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
+      "version": "7.24.0",
+      "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.24.0.tgz",
+      "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==",
       "dependencies": {
         "@babel/code-frame": "^7.23.5",
-        "@babel/parser": "^7.23.9",
-        "@babel/types": "^7.23.9"
+        "@babel/parser": "^7.24.0",
+        "@babel/types": "^7.24.0"
       },
       "engines": {
         "node": ">=6.9.0"
       }
     },
     "node_modules/@babel/traverse": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.23.9.tgz",
-      "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
+      "version": "7.24.1",
+      "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.24.1.tgz",
+      "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==",
       "dependencies": {
-        "@babel/code-frame": "^7.23.5",
-        "@babel/generator": "^7.23.6",
+        "@babel/code-frame": "^7.24.1",
+        "@babel/generator": "^7.24.1",
         "@babel/helper-environment-visitor": "^7.22.20",
         "@babel/helper-function-name": "^7.23.0",
         "@babel/helper-hoist-variables": "^7.22.5",
         "@babel/helper-split-export-declaration": "^7.22.6",
-        "@babel/parser": "^7.23.9",
-        "@babel/types": "^7.23.9",
+        "@babel/parser": "^7.24.1",
+        "@babel/types": "^7.24.0",
         "debug": "^4.3.1",
         "globals": "^11.1.0"
       },
@@ -986,9 +987,9 @@
       }
     },
     "node_modules/@babel/types": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.23.9.tgz",
-      "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
+      "version": "7.24.0",
+      "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.24.0.tgz",
+      "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==",
       "dependencies": {
         "@babel/helper-string-parser": "^7.23.4",
         "@babel/helper-validator-identifier": "^7.22.20",
@@ -1047,13 +1048,13 @@
       }
     },
     "node_modules/@jridgewell/gen-mapping": {
-      "version": "0.3.3",
-      "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
-      "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
+      "version": "0.3.5",
+      "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+      "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
       "dependencies": {
-        "@jridgewell/set-array": "^1.0.1",
+        "@jridgewell/set-array": "^1.2.1",
         "@jridgewell/sourcemap-codec": "^1.4.10",
-        "@jridgewell/trace-mapping": "^0.3.9"
+        "@jridgewell/trace-mapping": "^0.3.24"
       },
       "engines": {
         "node": ">=6.0.0"
@@ -1068,9 +1069,9 @@
       }
     },
     "node_modules/@jridgewell/set-array": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz",
-      "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+      "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
       "engines": {
         "node": ">=6.0.0"
       }
@@ -1081,29 +1082,52 @@
       "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
     },
     "node_modules/@jridgewell/trace-mapping": {
-      "version": "0.3.22",
-      "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
-      "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
+      "version": "0.3.25",
+      "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+      "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
       "dependencies": {
         "@jridgewell/resolve-uri": "^3.1.0",
         "@jridgewell/sourcemap-codec": "^1.4.14"
       }
     },
+    "node_modules/@lukeed/csprng": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/@lukeed/csprng/-/csprng-1.1.0.tgz",
+      "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/@lukeed/uuid": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/@lukeed/uuid/-/uuid-2.0.1.tgz",
+      "integrity": "sha512-qC72D4+CDdjGqJvkFMMEAtancHUQ7/d/tAiHf64z8MopFDmcrtbcJuerDtFceuAfQJ2pDSfCKCtbqoGBNnwg0w==",
+      "dependencies": {
+        "@lukeed/csprng": "^1.1.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
     "node_modules/@mongodb-js/devtools-connect": {
-      "version": "2.4.3",
-      "resolved": "https://registry.npmmirror.com/@mongodb-js/devtools-connect/-/devtools-connect-2.4.3.tgz",
-      "integrity": "sha512-JS288VVm/Mu8+kHL8ybKCpL2/AiA4CWhWun7FR3iRNH5NXbT9c6aovEc2pxjsCbmYUjzuTsRoIo9LTrNoCvNrQ==",
+      "version": "2.6.0",
+      "resolved": "https://registry.npmmirror.com/@mongodb-js/devtools-connect/-/devtools-connect-2.6.0.tgz",
+      "integrity": "sha512-UIMOCfsfhmIj5TWXRfhMSPTfg7zNSGDphlKGABLZ/SP03aI5cAOi1krHTxBjx4p9iTs5E+A6eF+9GTKOTVXISQ==",
       "dependencies": {
+        "@mongodb-js/oidc-http-server-pages": "1.1.0",
         "lodash.merge": "^4.6.2",
         "mongodb-connection-string-url": "^3.0.0",
+        "socks": "^2.7.3",
         "system-ca": "^1.0.2"
       },
       "optionalDependencies": {
+        "kerberos": "^2.1.0",
+        "mongodb-client-encryption": "^6.0.0",
         "os-dns-native": "^1.2.0",
         "resolve-mongodb-srv": "^1.1.1"
       },
       "peerDependencies": {
-        "@mongodb-js/oidc-plugin": "^0.3.0",
+        "@mongodb-js/oidc-plugin": "^0.4.0",
         "mongodb": "^5.8.1 || ^6.0.0",
         "mongodb-log-writer": "^1.2.0"
       }
@@ -1116,35 +1140,40 @@
         "semver": "^7.5.4"
       }
     },
+    "node_modules/@mongodb-js/oidc-http-server-pages": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/@mongodb-js/oidc-http-server-pages/-/oidc-http-server-pages-1.1.0.tgz",
+      "integrity": "sha512-mRzOeYXV1oRnwifRaeV43HZq2s0USLwm9JPYO6Kb0T1oqZhMjzf1VIPSxktiwCf8gKw37uZ8knPdX5aDfQuQ4g=="
+    },
     "node_modules/@mongodb-js/oidc-plugin": {
-      "version": "0.3.1",
-      "resolved": "https://registry.npmmirror.com/@mongodb-js/oidc-plugin/-/oidc-plugin-0.3.1.tgz",
-      "integrity": "sha512-oEM7/AVyjH8C63WM4Q0JAFVA/Q77ZzlFXJCWPn/rIbDk3a4uVLFC9L8OlH8D0bawdI1fpVii2tsDo6msDtoovQ==",
+      "version": "0.4.0",
+      "resolved": "https://registry.npmmirror.com/@mongodb-js/oidc-plugin/-/oidc-plugin-0.4.0.tgz",
+      "integrity": "sha512-tinXSz6O2AmgMAgorXUcCJtDhayghkmsXVVTd5UiXhzSA/NNVtlleZXSVkG6tr46WXGzLISgVX+lUzzcEIiwJQ==",
       "dependencies": {
         "abort-controller": "^3.0.0",
         "express": "^4.18.2",
         "open": "^9.1.0",
-        "openid-client": "^5.4.0"
+        "openid-client": "^5.6.4"
       },
       "engines": {
         "node": ">= 14.18.0"
       }
     },
     "node_modules/@mongodb-js/saslprep": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmmirror.com/@mongodb-js/saslprep/-/saslprep-1.1.4.tgz",
-      "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==",
+      "version": "1.1.5",
+      "resolved": "https://registry.npmmirror.com/@mongodb-js/saslprep/-/saslprep-1.1.5.tgz",
+      "integrity": "sha512-XLNOMH66KhJzUJNwT/qlMnS4WsNDWD5ASdyaSH3EtK+F4r/CFGa3jT4GNi4mfOitGvWXtdLgQJkQjxSVrio+jA==",
       "dependencies": {
         "sparse-bitfield": "^3.0.3"
       }
     },
     "node_modules/@mongosh/arg-parser": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/arg-parser/-/arg-parser-2.1.5.tgz",
-      "integrity": "sha512-E6IlJhxpxVdb0VWrgrVJeMjSHwEhoFCMGLE487/j0DXgWDm6odui48+qcE+5xvGPcqy1Ka4P9wC7msz4xTn7Rg==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/arg-parser/-/arg-parser-2.2.1.tgz",
+      "integrity": "sha512-qz/RDf0go1irs/c/B5ZjN1OwPNplm8cQJU8eB037NVg0jCuDn/V+ERw3cSkinYdN1iZgLDtE/l3rgmEvkxz9Yg==",
       "dependencies": {
-        "@mongosh/errors": "2.1.5",
-        "@mongosh/i18n": "2.1.5",
+        "@mongosh/errors": "2.2.1",
+        "@mongosh/i18n": "2.2.1",
         "mongodb-connection-string-url": "^3.0.0"
       },
       "engines": {
@@ -1152,9 +1181,9 @@
       }
     },
     "node_modules/@mongosh/async-rewriter2": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/async-rewriter2/-/async-rewriter2-2.1.5.tgz",
-      "integrity": "sha512-gq5OX1STb9NkKO98k+edsdBkEySHlmZOdqJljvJMYEiCl3cw0wy/AUqPRBVAoqFPN9eTzOA3U9ps/fX27aPPtg==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/async-rewriter2/-/async-rewriter2-2.2.1.tgz",
+      "integrity": "sha512-xlSoweQUlX5nwW2FTOssQPpoJGZX1gZhfkaZ8qoanUdUMGDN+FfwjhUxMf8vUlOP8s899PUqDktCfc4UYo31mQ==",
       "dependencies": {
         "@babel/core": "^7.22.8",
         "@babel/plugin-transform-destructuring": "^7.22.5",
@@ -1171,12 +1200,12 @@
       }
     },
     "node_modules/@mongosh/autocomplete": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/autocomplete/-/autocomplete-2.1.5.tgz",
-      "integrity": "sha512-qOg9PjPp5fIRdUGT08xJS+0IPmIi2lOYTW1HIrdo7y8U61aS/ZlhrZMd94/b8yO7FzUsAP3rVwwxEVtk87MFDA==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/autocomplete/-/autocomplete-2.2.1.tgz",
+      "integrity": "sha512-M02TfYQvIXy7HWWXT36aEvZ/LfkurET4F1M7y4J9aVb5GL6j3pkSmubOjJNzwkt9vEIJlHFlJFQfPDgq5DWFUA==",
       "dependencies": {
         "@mongodb-js/mongodb-constants": "^0.8.10",
-        "@mongosh/shell-api": "2.1.5",
+        "@mongosh/shell-api": "2.2.1",
         "semver": "^7.5.4"
       },
       "engines": {
@@ -1184,28 +1213,30 @@
       }
     },
     "node_modules/@mongosh/cli-repl": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/cli-repl/-/cli-repl-2.1.5.tgz",
-      "integrity": "sha512-xN3W/CCm4GRTjMGWkSjOMqJHN5L8/JjeqUDM7SYNbz6Yb8PwRC9nG6lca/RtcjKbeUSyy4+LTEws/o77A/gV7A==",
-      "dependencies": {
-        "@mongosh/arg-parser": "2.1.5",
-        "@mongosh/autocomplete": "2.1.5",
-        "@mongosh/editor": "2.1.5",
-        "@mongosh/errors": "2.1.5",
-        "@mongosh/history": "2.1.5",
-        "@mongosh/i18n": "2.1.5",
-        "@mongosh/js-multiline-to-singleline": "2.1.5",
-        "@mongosh/logging": "2.1.5",
-        "@mongosh/service-provider-core": "2.1.5",
-        "@mongosh/service-provider-server": "2.1.5",
-        "@mongosh/shell-api": "2.1.5",
-        "@mongosh/shell-evaluator": "2.1.5",
-        "@mongosh/snippet-manager": "2.1.5",
-        "@mongosh/types": "2.1.5",
-        "analytics-node": "^5.1.2",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/cli-repl/-/cli-repl-2.2.1.tgz",
+      "integrity": "sha512-KrnRS5IzdIvWG46n274Ay2c9ZhiMJqJryExNjs00H56VjepGq2HY7hop3U9vY31eQ/s+xLjzChR9qNJ+2E9WwA==",
+      "dependencies": {
+        "@mongosh/arg-parser": "2.2.1",
+        "@mongosh/autocomplete": "2.2.1",
+        "@mongosh/editor": "2.2.1",
+        "@mongosh/errors": "2.2.1",
+        "@mongosh/history": "2.2.1",
+        "@mongosh/i18n": "2.2.1",
+        "@mongosh/import-node-fetch": "2.2.1",
+        "@mongosh/js-multiline-to-singleline": "2.2.1",
+        "@mongosh/logging": "2.2.1",
+        "@mongosh/service-provider-core": "2.2.1",
+        "@mongosh/service-provider-server": "2.2.1",
+        "@mongosh/shell-api": "2.2.1",
+        "@mongosh/shell-evaluator": "2.2.1",
+        "@mongosh/snippet-manager": "2.2.1",
+        "@mongosh/types": "2.2.1",
+        "@segment/analytics-node": "^1.3.0",
         "ansi-escape-sequences": "^5.1.2",
         "askcharacter": "^1.0.0",
         "askpassword": "^1.2.4",
+        "escape-string-regexp": "^4.0.0",
         "is-recoverable-error": "^1.0.3",
         "js-yaml": "^4.1.0",
         "mongodb-connection-string-url": "^3.0.0",
@@ -1231,15 +1262,15 @@
       }
     },
     "node_modules/@mongosh/editor": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/editor/-/editor-2.1.5.tgz",
-      "integrity": "sha512-ORcMDyvKHMPBk/eQ0dVHeRpsBsRz7wFwLoJWe/G5J7AfCdNBOoEN3kUVvR4ZfisXMfwVCt/FcdmlfugGhBcHOw==",
-      "dependencies": {
-        "@mongosh/js-multiline-to-singleline": "2.1.5",
-        "@mongosh/service-provider-core": "2.1.5",
-        "@mongosh/shell-api": "2.1.5",
-        "@mongosh/shell-evaluator": "2.1.5",
-        "@mongosh/types": "2.1.5",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/editor/-/editor-2.2.1.tgz",
+      "integrity": "sha512-z0nxSIVvCiR+kG2md24diMNou/9NBQvhn5334OeGyNk6y3/EEp52VN9Grmk9HL70d1tfr0A8F7c3kUpwJ6Q3XQ==",
+      "dependencies": {
+        "@mongosh/js-multiline-to-singleline": "2.2.1",
+        "@mongosh/service-provider-core": "2.2.1",
+        "@mongosh/shell-api": "2.2.1",
+        "@mongosh/shell-evaluator": "2.2.1",
+        "@mongosh/types": "2.2.1",
         "js-beautify": "^1.14.0"
       },
       "engines": {
@@ -1247,17 +1278,17 @@
       }
     },
     "node_modules/@mongosh/errors": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/errors/-/errors-2.1.5.tgz",
-      "integrity": "sha512-ieewW766BnNZKBanlaKx+2B9r2wzDdBnnVxSsMbgsUz3qgztLp8YpZ6yM9t64tv55+JWlqEhFJdLQ1AymOXc1Q==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/errors/-/errors-2.2.1.tgz",
+      "integrity": "sha512-pwBI8Bv1KWYUSBoY2gh48dzvabCH8WlWYfo3Kzci7DPVK1vOccZpzr4PZony6ajvJ0KUswGGSaRFVdS54lO9QA==",
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/history": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/history/-/history-2.1.5.tgz",
-      "integrity": "sha512-cwsoxy4m+JT3Ey2XXSUkjOOw8oEcasLdPSrpKw/y3Z0KERcSH6h1Z4bxYRljTxW7Du7HeACzGhjEX5+OQ+cGVA==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/history/-/history-2.2.1.tgz",
+      "integrity": "sha512-AfqtzjrfvJl0EwM3co4fTYGs12E76WUOfJbRejaBI1aLZZ7h36cjQjOG0bAckEuPYRw0sygkql5X0DLjZHDB/A==",
       "dependencies": {
         "mongodb-connection-string-url": "^3.0.0",
         "mongodb-redact": "^0.2.2"
@@ -1267,21 +1298,32 @@
       }
     },
     "node_modules/@mongosh/i18n": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/i18n/-/i18n-2.1.5.tgz",
-      "integrity": "sha512-V/NPDFeJv2Z5KeMTg1EjitauOol3QMFlphJp1NJr+oNGY5D0coDtw9Ofo8lCPhl6QsNYgPcavS0g8WmIrL+fTw==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/i18n/-/i18n-2.2.1.tgz",
+      "integrity": "sha512-ZbWV4Sykz4WIsLLGq9MfKR5baNXo5caM2pdBFVF6fwJMOcR87meBFcQ3SkbI7ZKezrMaQi/o9l6o6amI0vr2Rg==",
       "dependencies": {
-        "@mongosh/errors": "2.1.5",
+        "@mongosh/errors": "2.2.1",
         "mustache": "^4.0.0"
       },
       "engines": {
         "node": ">=14.15.1"
       }
     },
+    "node_modules/@mongosh/import-node-fetch": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/import-node-fetch/-/import-node-fetch-2.2.1.tgz",
+      "integrity": "sha512-rN9BBe3Z/zhnNjTc4cBYpt4oDa+JS7Th5grg/rYurb6Bs8f68Rzn1BTDACix7jzzHM6pVtptuk+b2QXIb2sAlw==",
+      "dependencies": {
+        "node-fetch": "^3.3.2"
+      },
+      "engines": {
+        "node": ">=14.15.1"
+      }
+    },
     "node_modules/@mongosh/js-multiline-to-singleline": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/js-multiline-to-singleline/-/js-multiline-to-singleline-2.1.5.tgz",
-      "integrity": "sha512-xXiTM3bO3SHJkw7F6F+lgHSn77E1qxzQ5+RatrMNEJQfCefISCBMy1aRdmPGJxIg9x3NNOysAKka/jtrfNW/Fw==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/js-multiline-to-singleline/-/js-multiline-to-singleline-2.2.1.tgz",
+      "integrity": "sha512-e3F8ukzBfJibVaT22lqNdTKMW2UnOTGwEGmAgJC6MLElNjo+zR2z+OBWdLbuOdkY5nsXFDYB2IWgPYbKFiWu/A==",
       "dependencies": {
         "@babel/core": "^7.16.12",
         "@babel/types": "^7.21.2"
@@ -1291,14 +1333,14 @@
       }
     },
     "node_modules/@mongosh/logging": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/logging/-/logging-2.1.5.tgz",
-      "integrity": "sha512-Vob9Z4dcm8ZUyhmMUhHZOiZ0XE96KGWoTkelxA3aghMlU2MZSce9s4a2BOFKxJ+6jOTkf+X5cofwAJ9WK6xsAA==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/logging/-/logging-2.2.1.tgz",
+      "integrity": "sha512-2YYLnBvx5GI4zof0sQw8bqLULGf/hOsn8rNIhosfbHKNUPrCCyWlPnjeFD3npaAt7zffkI7Acpev6hWlEDuulA==",
       "dependencies": {
-        "@mongodb-js/devtools-connect": "^2.4.3",
-        "@mongosh/errors": "2.1.5",
-        "@mongosh/history": "2.1.5",
-        "@mongosh/types": "2.1.5",
+        "@mongodb-js/devtools-connect": "^2.6.0",
+        "@mongosh/errors": "2.2.1",
+        "@mongosh/history": "2.2.1",
+        "@mongosh/types": "2.2.1",
         "mongodb-log-writer": "^1.4.0",
         "mongodb-redact": "^0.2.2"
       },
@@ -1307,14 +1349,14 @@
       }
     },
     "node_modules/@mongosh/service-provider-core": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-core/-/service-provider-core-2.1.5.tgz",
-      "integrity": "sha512-4ZNtaTdhXuZqZS0aMHFLOGIQMy327AeYhaDWyYC3qK5oS3fdPRY8Th4PZGwY+6BCZWuUnRX4gltxZnPdVIZkIw==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-core/-/service-provider-core-2.2.1.tgz",
+      "integrity": "sha512-D+sGmdKjeuTln5vTDqgg3Yx6DfidNuS/8keM14VGafRpVV8CEBD0My8F3kHpimV9w7xZnrAMKBqczcL1ZcJeww==",
       "dependencies": {
-        "@aws-sdk/credential-providers": "^3.347.1",
-        "@mongosh/errors": "2.1.5",
-        "bson": "^6.2.0",
-        "mongodb": "^6.3.0",
+        "@aws-sdk/credential-providers": "^3.525.0",
+        "@mongosh/errors": "2.2.1",
+        "bson": "^6.5.0",
+        "mongodb": "^6.5.0",
         "mongodb-build-info": "^1.7.1"
       },
       "engines": {
@@ -1325,20 +1367,20 @@
       }
     },
     "node_modules/@mongosh/service-provider-server": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-server/-/service-provider-server-2.1.5.tgz",
-      "integrity": "sha512-NHcep3YQBJl9+JsTuSWYJH14Wcnxkt5ZCunysdRwhZx9OZtJnci2quX4MuaJ7ycw4Nd6G2NmPcDOSEdptZQNpA==",
-      "dependencies": {
-        "@mongodb-js/devtools-connect": "^2.4.3",
-        "@mongodb-js/oidc-plugin": "^0.3.1",
-        "@mongosh/errors": "2.1.5",
-        "@mongosh/service-provider-core": "2.1.5",
-        "@mongosh/types": "2.1.5",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/service-provider-server/-/service-provider-server-2.2.1.tgz",
+      "integrity": "sha512-dZ2YlTWANFnfwSjDNxpMbdbFDAqru2pMXoxIyPzEW3ISnathRfJjObiSO0+i56AoGPPG0lTFEdHAb0r9lPgxew==",
+      "dependencies": {
+        "@mongodb-js/devtools-connect": "^2.6.0",
+        "@mongodb-js/oidc-plugin": "^0.4.0",
+        "@mongosh/errors": "2.2.1",
+        "@mongosh/service-provider-core": "2.2.1",
+        "@mongosh/types": "2.2.1",
         "@types/sinon-chai": "^3.2.4",
-        "aws4": "^1.11.0",
-        "mongodb": "^6.3.0",
+        "aws4": "^1.12.0",
+        "mongodb": "^6.5.0",
         "mongodb-connection-string-url": "^3.0.0",
-        "socks": "^2.7.3"
+        "socks": "^2.8.1"
       },
       "engines": {
         "node": ">=14.15.1"
@@ -1349,15 +1391,15 @@
       }
     },
     "node_modules/@mongosh/shell-api": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/shell-api/-/shell-api-2.1.5.tgz",
-      "integrity": "sha512-Cm2ThXSldpjRAL0o2un2Qkj5wheLZwnybHR5s8L0gqMfFobr7Mmr4xwmeHA14nDj5XY6xkYV5TOHEcxQ4TkPtg==",
-      "dependencies": {
-        "@mongosh/arg-parser": "2.1.5",
-        "@mongosh/errors": "2.1.5",
-        "@mongosh/history": "2.1.5",
-        "@mongosh/i18n": "2.1.5",
-        "@mongosh/service-provider-core": "2.1.5",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/shell-api/-/shell-api-2.2.1.tgz",
+      "integrity": "sha512-v7SNBBYms8SoHgDdDqN+jkG6V9GlpEJe5pY7tpLwlrQJ7ioBc8SOidsmHviStYP4oMzhkWQMXWETayWO92Fn+g==",
+      "dependencies": {
+        "@mongosh/arg-parser": "2.2.1",
+        "@mongosh/errors": "2.2.1",
+        "@mongosh/history": "2.2.1",
+        "@mongosh/i18n": "2.2.1",
+        "@mongosh/service-provider-core": "2.2.1",
         "mongodb-redact": "^0.2.2"
       },
       "engines": {
@@ -1365,31 +1407,31 @@
       }
     },
     "node_modules/@mongosh/shell-evaluator": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/shell-evaluator/-/shell-evaluator-2.1.5.tgz",
-      "integrity": "sha512-5o9kbxP+JqKXgqqCbNzNJswdhpy2+ZenMBFWQlSy9jHU10B/xZN9Tl/tiYSRmAYY47p+qKozo5fxWfA5wGCqOg==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/shell-evaluator/-/shell-evaluator-2.2.1.tgz",
+      "integrity": "sha512-drs0wUGjMwsh5RCcTatuUE+xOcggASmMnRfJTrCF/qq/Zvt4Jdx2g0VYfU6QjwPU7X1xqRC+0efMo9ixEVIDVQ==",
       "dependencies": {
-        "@mongosh/async-rewriter2": "2.1.5",
-        "@mongosh/history": "2.1.5",
-        "@mongosh/shell-api": "2.1.5"
+        "@mongosh/async-rewriter2": "2.2.1",
+        "@mongosh/history": "2.2.1",
+        "@mongosh/shell-api": "2.2.1"
       },
       "engines": {
         "node": ">=14.15.1"
       }
     },
     "node_modules/@mongosh/snippet-manager": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/snippet-manager/-/snippet-manager-2.1.5.tgz",
-      "integrity": "sha512-2UmraDUqyNIU2TwUAflH2VxhHQOwRwncplQJ9CqMOpA/JBzBguOUB41bLDx3BkhkjoSjazxWkFb9cgKkbGENmA==",
-      "dependencies": {
-        "@mongosh/errors": "2.1.5",
-        "@mongosh/shell-api": "2.1.5",
-        "@mongosh/types": "2.1.5",
-        "bson": "^6.2.0",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/snippet-manager/-/snippet-manager-2.2.1.tgz",
+      "integrity": "sha512-jjDAjaPCdWQAmlbWhZ1Jso7D19oKaxuEl3avn6vkxMIQIMML4IWrNOHoqWkfx5Z3NPteyx4grVfPyzjvipi94g==",
+      "dependencies": {
+        "@mongosh/errors": "2.2.1",
+        "@mongosh/import-node-fetch": "2.2.1",
+        "@mongosh/shell-api": "2.2.1",
+        "@mongosh/types": "2.2.1",
+        "bson": "^6.5.0",
         "cross-spawn": "^7.0.3",
         "escape-string-regexp": "^4.0.0",
         "joi": "^17.4.0",
-        "node-fetch": "^2.6.1",
         "tar": "^6.1.15"
       },
       "engines": {
@@ -1397,11 +1439,11 @@
       }
     },
     "node_modules/@mongosh/types": {
-      "version": "2.1.5",
-      "resolved": "https://registry.npmmirror.com/@mongosh/types/-/types-2.1.5.tgz",
-      "integrity": "sha512-bw1CZARQQVCwAzwpiXnf3RpmctfMKguopFAid8Ok1ZxF39PiO1UW5vN4yqHAeZo+7Lji67mIuwMRS0qJa9Fk/A==",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmmirror.com/@mongosh/types/-/types-2.2.1.tgz",
+      "integrity": "sha512-lV1khTdJ8s3ldithGRa06nl4wlmKZm6eDnILPqW3QrZa0j6a2GBBe0GSUFo8kZkq4x3Y6SkT05ZHe1mnhh1gJQ==",
       "dependencies": {
-        "@mongodb-js/devtools-connect": "^2.4.3"
+        "@mongodb-js/devtools-connect": "^2.6.0"
       },
       "engines": {
         "node": ">=14.15.1"
@@ -1421,13 +1463,77 @@
         "node": ">=14"
       }
     },
-    "node_modules/@segment/loosely-validate-event": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmmirror.com/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz",
-      "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==",
+    "node_modules/@segment/analytics-core": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmmirror.com/@segment/analytics-core/-/analytics-core-1.4.1.tgz",
+      "integrity": "sha512-kV0Pf33HnthuBOVdYNani21kYyj118Fn+9757bxqoksiXoZlYvBsFq6giNdCsKcTIE1eAMqNDq3xE1VQ0cfsHA==",
+      "dependencies": {
+        "@lukeed/uuid": "^2.0.0",
+        "@segment/analytics-generic-utils": "1.1.1",
+        "dset": "^3.1.2",
+        "tslib": "^2.4.1"
+      }
+    },
+    "node_modules/@segment/analytics-generic-utils": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/@segment/analytics-generic-utils/-/analytics-generic-utils-1.1.1.tgz",
+      "integrity": "sha512-THTIzBPHnvu1HYJU3fARdJ3qIkukO3zDXsmDm+kAeUks5R9CBXOQ6rPChiASVzSmwAIIo5uFIXXnCraojlq/Gw==",
+      "dependencies": {
+        "tslib": "^2.4.1"
+      }
+    },
+    "node_modules/@segment/analytics-node": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/@segment/analytics-node/-/analytics-node-1.3.0.tgz",
+      "integrity": "sha512-lRLz1WZaDokMoUe299yP5JkInc3OgJuqNNlxb6j0q22umCiq6b5iDo2gRmFn93reirIvJxWIicQsGrHd93q8GQ==",
+      "dependencies": {
+        "@lukeed/uuid": "^2.0.0",
+        "@segment/analytics-core": "1.4.1",
+        "@segment/analytics-generic-utils": "1.1.1",
+        "buffer": "^6.0.3",
+        "node-fetch": "^2.6.7",
+        "tslib": "^2.4.1"
+      },
+      "engines": {
+        "node": ">=14"
+      }
+    },
+    "node_modules/@segment/analytics-node/node_modules/node-fetch": {
+      "version": "2.7.0",
+      "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz",
+      "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+      "dependencies": {
+        "whatwg-url": "^5.0.0"
+      },
+      "engines": {
+        "node": "4.x || >=6.0.0"
+      },
+      "peerDependencies": {
+        "encoding": "^0.1.0"
+      },
+      "peerDependenciesMeta": {
+        "encoding": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/@segment/analytics-node/node_modules/tr46": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz",
+      "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+    },
+    "node_modules/@segment/analytics-node/node_modules/webidl-conversions": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+      "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+    },
+    "node_modules/@segment/analytics-node/node_modules/whatwg-url": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz",
+      "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
       "dependencies": {
-        "component-type": "^1.2.1",
-        "join-component": "^1.1.0"
+        "tr46": "~0.0.3",
+        "webidl-conversions": "^3.0.0"
       }
     },
     "node_modules/@sideway/address": {
@@ -1449,165 +1555,165 @@
       "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
     },
     "node_modules/@smithy/abort-controller": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/abort-controller/-/abort-controller-2.1.1.tgz",
-      "integrity": "sha512-1+qdrUqLhaALYL0iOcN43EP6yAXXQ2wWZ6taf4S2pNGowmOc5gx+iMQv+E42JizNJjB0+gEadOXeV1Bf7JWL1Q==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/abort-controller/-/abort-controller-2.2.0.tgz",
+      "integrity": "sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==",
       "dependencies": {
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/config-resolver": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/config-resolver/-/config-resolver-2.1.1.tgz",
-      "integrity": "sha512-lxfLDpZm+AWAHPFZps5JfDoO9Ux1764fOgvRUBpHIO8HWHcSN1dkgsago1qLRVgm1BZ8RCm8cgv99QvtaOWIhw==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/config-resolver/-/config-resolver-2.2.0.tgz",
+      "integrity": "sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==",
       "dependencies": {
-        "@smithy/node-config-provider": "^2.2.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/util-config-provider": "^2.2.1",
-        "@smithy/util-middleware": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@smithy/node-config-provider": "^2.3.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/util-config-provider": "^2.3.0",
+        "@smithy/util-middleware": "^2.2.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/core": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmmirror.com/@smithy/core/-/core-1.3.2.tgz",
-      "integrity": "sha512-tYDmTp0f2TZVE18jAOH1PnmkngLQ+dOGUlMd1u67s87ieueNeyqhja6z/Z4MxhybEiXKOWFOmGjfTZWFxljwJw==",
+      "version": "1.4.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/core/-/core-1.4.0.tgz",
+      "integrity": "sha512-uu9ZDI95Uij4qk+L6kyFjdk11zqBkcJ3Lv0sc6jZrqHvLyr0+oeekD3CnqMafBn/5PRI6uv6ulW3kNLRBUHeVw==",
       "dependencies": {
-        "@smithy/middleware-endpoint": "^2.4.1",
-        "@smithy/middleware-retry": "^2.1.1",
-        "@smithy/middleware-serde": "^2.1.1",
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/smithy-client": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/util-middleware": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@smithy/middleware-endpoint": "^2.5.0",
+        "@smithy/middleware-retry": "^2.2.0",
+        "@smithy/middleware-serde": "^2.3.0",
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/smithy-client": "^2.5.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/util-middleware": "^2.2.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/credential-provider-imds": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.2.1.tgz",
-      "integrity": "sha512-7XHjZUxmZYnONheVQL7j5zvZXga+EWNgwEAP6OPZTi7l8J4JTeNh9aIOfE5fKHZ/ee2IeNOh54ZrSna+Vc6TFA==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz",
+      "integrity": "sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==",
       "dependencies": {
-        "@smithy/node-config-provider": "^2.2.1",
-        "@smithy/property-provider": "^2.1.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/url-parser": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@smithy/node-config-provider": "^2.3.0",
+        "@smithy/property-provider": "^2.2.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/url-parser": "^2.2.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/eventstream-codec": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/eventstream-codec/-/eventstream-codec-2.1.1.tgz",
-      "integrity": "sha512-E8KYBxBIuU4c+zrpR22VsVrOPoEDzk35bQR3E+xm4k6Pa6JqzkDOdMyf9Atac5GPNKHJBdVaQ4JtjdWX2rl/nw==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/eventstream-codec/-/eventstream-codec-2.2.0.tgz",
+      "integrity": "sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw==",
       "dependencies": {
         "@aws-crypto/crc32": "3.0.0",
-        "@smithy/types": "^2.9.1",
-        "@smithy/util-hex-encoding": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@smithy/types": "^2.12.0",
+        "@smithy/util-hex-encoding": "^2.2.0",
+        "tslib": "^2.6.2"
       }
     },
     "node_modules/@smithy/fetch-http-handler": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.4.1.tgz",
-      "integrity": "sha512-VYGLinPsFqH68lxfRhjQaSkjXM7JysUOJDTNjHBuN/ykyRb2f1gyavN9+VhhPTWCy32L4yZ2fdhpCs/nStEicg==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz",
+      "integrity": "sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==",
       "dependencies": {
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/querystring-builder": "^2.1.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/util-base64": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/querystring-builder": "^2.2.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/util-base64": "^2.3.0",
+        "tslib": "^2.6.2"
       }
     },
     "node_modules/@smithy/hash-node": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/hash-node/-/hash-node-2.1.1.tgz",
-      "integrity": "sha512-Qhoq0N8f2OtCnvUpCf+g1vSyhYQrZjhSwvJ9qvR8BUGOtTXiyv2x1OD2e6jVGmlpC4E4ax1USHoyGfV9JFsACg==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/hash-node/-/hash-node-2.2.0.tgz",
+      "integrity": "sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==",
       "dependencies": {
-        "@smithy/types": "^2.9.1",
-        "@smithy/util-buffer-from": "^2.1.1",
-        "@smithy/util-utf8": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@smithy/types": "^2.12.0",
+        "@smithy/util-buffer-from": "^2.2.0",
+        "@smithy/util-utf8": "^2.3.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/invalid-dependency": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/invalid-dependency/-/invalid-dependency-2.1.1.tgz",
-      "integrity": "sha512-7WTgnKw+VPg8fxu2v9AlNOQ5yaz6RA54zOVB4f6vQuR0xFKd+RzlCpt0WidYTsye7F+FYDIaS/RnJW4pxjNInw==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz",
+      "integrity": "sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==",
       "dependencies": {
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       }
     },
     "node_modules/@smithy/is-array-buffer": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/is-array-buffer/-/is-array-buffer-2.1.1.tgz",
-      "integrity": "sha512-xozSQrcUinPpNPNPds4S7z/FakDTh1MZWtRP/2vQtYB/u3HYrX2UXuZs+VhaKBd6Vc7g2XPr2ZtwGBNDN6fNKQ==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
+      "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
       "dependencies": {
-        "tslib": "^2.5.0"
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/middleware-content-length": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-content-length/-/middleware-content-length-2.1.1.tgz",
-      "integrity": "sha512-rSr9ezUl9qMgiJR0UVtVOGEZElMdGFyl8FzWEF5iEKTlcWxGr2wTqGfDwtH3LAB7h+FPkxqv4ZU4cpuCN9Kf/g==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz",
+      "integrity": "sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==",
       "dependencies": {
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/middleware-endpoint": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.4.1.tgz",
-      "integrity": "sha512-XPZTb1E2Oav60Ven3n2PFx+rX9EDsU/jSTA8VDamt7FXks67ekjPY/XrmmPDQaFJOTUHJNKjd8+kZxVO5Ael4Q==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.0.tgz",
+      "integrity": "sha512-OBhI9ZEAG8Xen0xsFJwwNOt44WE2CWkfYIxTognC8x42Lfsdf0VN/wCMqpdkySMDio/vts10BiovAxQp0T0faA==",
       "dependencies": {
-        "@smithy/middleware-serde": "^2.1.1",
-        "@smithy/node-config-provider": "^2.2.1",
-        "@smithy/shared-ini-file-loader": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/url-parser": "^2.1.1",
-        "@smithy/util-middleware": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@smithy/middleware-serde": "^2.3.0",
+        "@smithy/node-config-provider": "^2.3.0",
+        "@smithy/shared-ini-file-loader": "^2.4.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/url-parser": "^2.2.0",
+        "@smithy/util-middleware": "^2.2.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/middleware-retry": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-retry/-/middleware-retry-2.1.1.tgz",
-      "integrity": "sha512-eMIHOBTXro6JZ+WWzZWd/8fS8ht5nS5KDQjzhNMHNRcG5FkNTqcKpYhw7TETMYzbLfhO5FYghHy1vqDWM4FLDA==",
-      "dependencies": {
-        "@smithy/node-config-provider": "^2.2.1",
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/service-error-classification": "^2.1.1",
-        "@smithy/smithy-client": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/util-middleware": "^2.1.1",
-        "@smithy/util-retry": "^2.1.1",
-        "tslib": "^2.5.0",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-retry/-/middleware-retry-2.2.0.tgz",
+      "integrity": "sha512-PsjDOLpbevgn37yJbawmfVoanru40qVA8UEf2+YA1lvOefmhuhL6ZbKtGsLAWDRnE1OlAmedsbA/htH6iSZjNA==",
+      "dependencies": {
+        "@smithy/node-config-provider": "^2.3.0",
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/service-error-classification": "^2.1.5",
+        "@smithy/smithy-client": "^2.5.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/util-middleware": "^2.2.0",
+        "@smithy/util-retry": "^2.2.0",
+        "tslib": "^2.6.2",
         "uuid": "^8.3.2"
       },
       "engines": {
@@ -1615,356 +1721,357 @@
       }
     },
     "node_modules/@smithy/middleware-serde": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-serde/-/middleware-serde-2.1.1.tgz",
-      "integrity": "sha512-D8Gq0aQBeE1pxf3cjWVkRr2W54t+cdM2zx78tNrVhqrDykRA7asq8yVJij1u5NDtKzKqzBSPYh7iW0svUKg76g==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz",
+      "integrity": "sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==",
       "dependencies": {
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/middleware-stack": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/middleware-stack/-/middleware-stack-2.1.1.tgz",
-      "integrity": "sha512-KPJhRlhsl8CjgGXK/DoDcrFGfAqoqvuwlbxy+uOO4g2Azn1dhH+GVfC3RAp+6PoL5PWPb+vt6Z23FP+Mr6qeCw==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz",
+      "integrity": "sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==",
       "dependencies": {
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/node-config-provider": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/node-config-provider/-/node-config-provider-2.2.1.tgz",
-      "integrity": "sha512-epzK3x1xNxA9oJgHQ5nz+2j6DsJKdHfieb+YgJ7ATWxzNcB7Hc+Uya2TUck5MicOPhDV8HZImND7ZOecVr+OWg==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz",
+      "integrity": "sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==",
       "dependencies": {
-        "@smithy/property-provider": "^2.1.1",
-        "@smithy/shared-ini-file-loader": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/property-provider": "^2.2.0",
+        "@smithy/shared-ini-file-loader": "^2.4.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/node-http-handler": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/node-http-handler/-/node-http-handler-2.3.1.tgz",
-      "integrity": "sha512-gLA8qK2nL9J0Rk/WEZSvgin4AppvuCYRYg61dcUo/uKxvMZsMInL5I5ZdJTogOvdfVug3N2dgI5ffcUfS4S9PA==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz",
+      "integrity": "sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==",
       "dependencies": {
-        "@smithy/abort-controller": "^2.1.1",
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/querystring-builder": "^2.1.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/abort-controller": "^2.2.0",
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/querystring-builder": "^2.2.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/property-provider": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/property-provider/-/property-provider-2.1.1.tgz",
-      "integrity": "sha512-FX7JhhD/o5HwSwg6GLK9zxrMUrGnb3PzNBrcthqHKBc3dH0UfgEAU24xnJ8F0uow5mj17UeBEOI6o3CF2k7Mhw==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/property-provider/-/property-provider-2.2.0.tgz",
+      "integrity": "sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==",
       "dependencies": {
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/protocol-http": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-3.1.1.tgz",
-      "integrity": "sha512-6ZRTSsaXuSL9++qEwH851hJjUA0OgXdQFCs+VDw4tGH256jQ3TjYY/i34N4vd24RV3nrjNsgd1yhb57uMoKbzQ==",
+      "version": "3.3.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-3.3.0.tgz",
+      "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==",
       "dependencies": {
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/querystring-builder": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/querystring-builder/-/querystring-builder-2.1.1.tgz",
-      "integrity": "sha512-C/ko/CeEa8jdYE4gt6nHO5XDrlSJ3vdCG0ZAc6nD5ZIE7LBp0jCx4qoqp7eoutBu7VrGMXERSRoPqwi1WjCPbg==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz",
+      "integrity": "sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==",
       "dependencies": {
-        "@smithy/types": "^2.9.1",
-        "@smithy/util-uri-escape": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@smithy/types": "^2.12.0",
+        "@smithy/util-uri-escape": "^2.2.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/querystring-parser": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/querystring-parser/-/querystring-parser-2.1.1.tgz",
-      "integrity": "sha512-H4+6jKGVhG1W4CIxfBaSsbm98lOO88tpDWmZLgkJpt8Zkk/+uG0FmmqMuCAc3HNM2ZDV+JbErxr0l5BcuIf/XQ==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz",
+      "integrity": "sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==",
       "dependencies": {
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/service-error-classification": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/service-error-classification/-/service-error-classification-2.1.1.tgz",
-      "integrity": "sha512-txEdZxPUgM1PwGvDvHzqhXisrc5LlRWYCf2yyHfvITWioAKat7srQvpjMAvgzf0t6t7j8yHrryXU9xt7RZqFpw==",
+      "version": "2.1.5",
+      "resolved": "https://registry.npmmirror.com/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz",
+      "integrity": "sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==",
       "dependencies": {
-        "@smithy/types": "^2.9.1"
+        "@smithy/types": "^2.12.0"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/shared-ini-file-loader": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.3.1.tgz",
-      "integrity": "sha512-2E2kh24igmIznHLB6H05Na4OgIEilRu0oQpYXo3LCNRrawHAcfDKq9004zJs+sAMt2X5AbY87CUCJ7IpqpSgdw==",
+      "version": "2.4.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz",
+      "integrity": "sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==",
       "dependencies": {
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/signature-v4": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/signature-v4/-/signature-v4-2.1.1.tgz",
-      "integrity": "sha512-Hb7xub0NHuvvQD3YwDSdanBmYukoEkhqBjqoxo+bSdC0ryV9cTfgmNjuAQhTPYB6yeU7hTR+sPRiFMlxqv6kmg==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/signature-v4/-/signature-v4-2.2.0.tgz",
+      "integrity": "sha512-+B5TNzj/fRZzVW3z8UUJOkNx15+4E0CLuvJmJUA1JUIZFp3rdJ/M2H5r2SqltaVPXL0oIxv/6YK92T9TsFGbFg==",
       "dependencies": {
-        "@smithy/eventstream-codec": "^2.1.1",
-        "@smithy/is-array-buffer": "^2.1.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/util-hex-encoding": "^2.1.1",
-        "@smithy/util-middleware": "^2.1.1",
-        "@smithy/util-uri-escape": "^2.1.1",
-        "@smithy/util-utf8": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@smithy/eventstream-codec": "^2.2.0",
+        "@smithy/is-array-buffer": "^2.2.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/util-hex-encoding": "^2.2.0",
+        "@smithy/util-middleware": "^2.2.0",
+        "@smithy/util-uri-escape": "^2.2.0",
+        "@smithy/util-utf8": "^2.3.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/smithy-client": {
-      "version": "2.3.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/smithy-client/-/smithy-client-2.3.1.tgz",
-      "integrity": "sha512-YsTdU8xVD64r2pLEwmltrNvZV6XIAC50LN6ivDopdt+YiF/jGH6PY9zUOu0CXD/d8GMB8gbhnpPsdrjAXHS9QA==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/smithy-client/-/smithy-client-2.5.0.tgz",
+      "integrity": "sha512-DDXWHWdimtS3y/Kw1Jo46KQ0ZYsDKcldFynQERUGBPDpkW1lXOTHy491ALHjwfiBQvzsVKVxl5+ocXNIgJuX4g==",
       "dependencies": {
-        "@smithy/middleware-endpoint": "^2.4.1",
-        "@smithy/middleware-stack": "^2.1.1",
-        "@smithy/protocol-http": "^3.1.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/util-stream": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@smithy/middleware-endpoint": "^2.5.0",
+        "@smithy/middleware-stack": "^2.2.0",
+        "@smithy/protocol-http": "^3.3.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/util-stream": "^2.2.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/types": {
-      "version": "2.9.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/types/-/types-2.9.1.tgz",
-      "integrity": "sha512-vjXlKNXyprDYDuJ7UW5iobdmyDm6g8dDG+BFUncAg/3XJaN45Gy5RWWWUVgrzIK7S4R1KWgIX5LeJcfvSI24bw==",
+      "version": "2.12.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/types/-/types-2.12.0.tgz",
+      "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==",
       "dependencies": {
-        "tslib": "^2.5.0"
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/url-parser": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/url-parser/-/url-parser-2.1.1.tgz",
-      "integrity": "sha512-qC9Bv8f/vvFIEkHsiNrUKYNl8uKQnn4BdhXl7VzQRP774AwIjiSMMwkbT+L7Fk8W8rzYVifzJNYxv1HwvfBo3Q==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/url-parser/-/url-parser-2.2.0.tgz",
+      "integrity": "sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==",
       "dependencies": {
-        "@smithy/querystring-parser": "^2.1.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/querystring-parser": "^2.2.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       }
     },
     "node_modules/@smithy/util-base64": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-base64/-/util-base64-2.1.1.tgz",
-      "integrity": "sha512-UfHVpY7qfF/MrgndI5PexSKVTxSZIdz9InghTFa49QOvuu9I52zLPLUHXvHpNuMb1iD2vmc6R+zbv/bdMipR/g==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-base64/-/util-base64-2.3.0.tgz",
+      "integrity": "sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==",
       "dependencies": {
-        "@smithy/util-buffer-from": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@smithy/util-buffer-from": "^2.2.0",
+        "@smithy/util-utf8": "^2.3.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/util-body-length-browser": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.1.1.tgz",
-      "integrity": "sha512-ekOGBLvs1VS2d1zM2ER4JEeBWAvIOUKeaFch29UjjJsxmZ/f0L3K3x0dEETgh3Q9bkZNHgT+rkdl/J/VUqSRag==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz",
+      "integrity": "sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==",
       "dependencies": {
-        "tslib": "^2.5.0"
+        "tslib": "^2.6.2"
       }
     },
     "node_modules/@smithy/util-body-length-node": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-body-length-node/-/util-body-length-node-2.2.1.tgz",
-      "integrity": "sha512-/ggJG+ta3IDtpNVq4ktmEUtOkH1LW64RHB5B0hcr5ZaWBmo96UX2cIOVbjCqqDickTXqBWZ4ZO0APuaPrD7Abg==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz",
+      "integrity": "sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==",
       "dependencies": {
-        "tslib": "^2.5.0"
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/util-buffer-from": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-buffer-from/-/util-buffer-from-2.1.1.tgz",
-      "integrity": "sha512-clhNjbyfqIv9Md2Mg6FffGVrJxw7bgK7s3Iax36xnfVj6cg0fUG7I4RH0XgXJF8bxi+saY5HR21g2UPKSxVCXg==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
+      "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
       "dependencies": {
-        "@smithy/is-array-buffer": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@smithy/is-array-buffer": "^2.2.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/util-config-provider": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-config-provider/-/util-config-provider-2.2.1.tgz",
-      "integrity": "sha512-50VL/tx9oYYcjJn/qKqNy7sCtpD0+s8XEBamIFo4mFFTclKMNp+rsnymD796uybjiIquB7VCB/DeafduL0y2kw==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz",
+      "integrity": "sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==",
       "dependencies": {
-        "tslib": "^2.5.0"
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/util-defaults-mode-browser": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.1.1.tgz",
-      "integrity": "sha512-lqLz/9aWRO6mosnXkArtRuQqqZBhNpgI65YDpww4rVQBuUT7qzKbDLG5AmnQTCiU4rOquaZO/Kt0J7q9Uic7MA==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.0.tgz",
+      "integrity": "sha512-2okTdZaCBvOJszAPU/KSvlimMe35zLOKbQpHhamFJmR7t95HSe0K3C92jQPjKY3PmDBD+7iMkOnuW05F5OlF4g==",
       "dependencies": {
-        "@smithy/property-provider": "^2.1.1",
-        "@smithy/smithy-client": "^2.3.1",
-        "@smithy/types": "^2.9.1",
+        "@smithy/property-provider": "^2.2.0",
+        "@smithy/smithy-client": "^2.5.0",
+        "@smithy/types": "^2.12.0",
         "bowser": "^2.11.0",
-        "tslib": "^2.5.0"
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">= 10.0.0"
       }
     },
     "node_modules/@smithy/util-defaults-mode-node": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.2.0.tgz",
-      "integrity": "sha512-iFJp/N4EtkanFpBUtSrrIbtOIBf69KNuve03ic1afhJ9/korDxdM0c6cCH4Ehj/smI9pDCfVv+bqT3xZjF2WaA==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.0.tgz",
+      "integrity": "sha512-hfKXnNLmsW9cmLb/JXKIvtuO6Cf4SuqN5PN1C2Ru/TBIws+m1wSgb+A53vo0r66xzB6E82inKG2J7qtwdi+Kkw==",
       "dependencies": {
-        "@smithy/config-resolver": "^2.1.1",
-        "@smithy/credential-provider-imds": "^2.2.1",
-        "@smithy/node-config-provider": "^2.2.1",
-        "@smithy/property-provider": "^2.1.1",
-        "@smithy/smithy-client": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/config-resolver": "^2.2.0",
+        "@smithy/credential-provider-imds": "^2.3.0",
+        "@smithy/node-config-provider": "^2.3.0",
+        "@smithy/property-provider": "^2.2.0",
+        "@smithy/smithy-client": "^2.5.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">= 10.0.0"
       }
     },
     "node_modules/@smithy/util-endpoints": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-endpoints/-/util-endpoints-1.1.1.tgz",
-      "integrity": "sha512-sI4d9rjoaekSGEtq3xSb2nMjHMx8QXcz2cexnVyRWsy4yQ9z3kbDpX+7fN0jnbdOp0b3KSTZJZ2Yb92JWSanLw==",
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-endpoints/-/util-endpoints-1.2.0.tgz",
+      "integrity": "sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ==",
       "dependencies": {
-        "@smithy/node-config-provider": "^2.2.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/node-config-provider": "^2.3.0",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">= 14.0.0"
       }
     },
     "node_modules/@smithy/util-hex-encoding": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.1.1.tgz",
-      "integrity": "sha512-3UNdP2pkYUUBGEXzQI9ODTDK+Tcu1BlCyDBaRHwyxhA+8xLP8agEKQq4MGmpjqb4VQAjq9TwlCQX0kP6XDKYLg==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz",
+      "integrity": "sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==",
       "dependencies": {
-        "tslib": "^2.5.0"
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/util-middleware": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-middleware/-/util-middleware-2.1.1.tgz",
-      "integrity": "sha512-mKNrk8oz5zqkNcbcgAAepeJbmfUW6ogrT2Z2gDbIUzVzNAHKJQTYmH9jcy0jbWb+m7ubrvXKb6uMjkSgAqqsFA==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-middleware/-/util-middleware-2.2.0.tgz",
+      "integrity": "sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==",
       "dependencies": {
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/util-retry": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-retry/-/util-retry-2.1.1.tgz",
-      "integrity": "sha512-Mg+xxWPTeSPrthpC5WAamJ6PW4Kbo01Fm7lWM1jmGRvmrRdsd3192Gz2fBXAMURyXpaNxyZf6Hr/nQ4q70oVEA==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-retry/-/util-retry-2.2.0.tgz",
+      "integrity": "sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==",
       "dependencies": {
-        "@smithy/service-error-classification": "^2.1.1",
-        "@smithy/types": "^2.9.1",
-        "tslib": "^2.5.0"
+        "@smithy/service-error-classification": "^2.1.5",
+        "@smithy/types": "^2.12.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">= 14.0.0"
       }
     },
     "node_modules/@smithy/util-stream": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-stream/-/util-stream-2.1.1.tgz",
-      "integrity": "sha512-J7SMIpUYvU4DQN55KmBtvaMc7NM3CZ2iWICdcgaovtLzseVhAqFRYqloT3mh0esrFw+3VEK6nQFteFsTqZSECQ==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-stream/-/util-stream-2.2.0.tgz",
+      "integrity": "sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==",
       "dependencies": {
-        "@smithy/fetch-http-handler": "^2.4.1",
-        "@smithy/node-http-handler": "^2.3.1",
-        "@smithy/types": "^2.9.1",
-        "@smithy/util-base64": "^2.1.1",
-        "@smithy/util-buffer-from": "^2.1.1",
-        "@smithy/util-hex-encoding": "^2.1.1",
-        "@smithy/util-utf8": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@smithy/fetch-http-handler": "^2.5.0",
+        "@smithy/node-http-handler": "^2.5.0",
+        "@smithy/types": "^2.12.0",
+        "@smithy/util-base64": "^2.3.0",
+        "@smithy/util-buffer-from": "^2.2.0",
+        "@smithy/util-hex-encoding": "^2.2.0",
+        "@smithy/util-utf8": "^2.3.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/util-uri-escape": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-uri-escape/-/util-uri-escape-2.1.1.tgz",
-      "integrity": "sha512-saVzI1h6iRBUVSqtnlOnc9ssU09ypo7n+shdQ8hBTZno/9rZ3AuRYvoHInV57VF7Qn7B+pFJG7qTzFiHxWlWBw==",
+      "version": "2.2.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz",
+      "integrity": "sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==",
       "dependencies": {
-        "tslib": "^2.5.0"
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
       }
     },
     "node_modules/@smithy/util-utf8": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-2.1.1.tgz",
-      "integrity": "sha512-BqTpzYEcUMDwAKr7/mVRUtHDhs6ZoXDi9NypMvMfOr/+u1NW7JgqodPDECiiLboEm6bobcPcECxzjtQh865e9A==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
+      "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
       "dependencies": {
-        "@smithy/util-buffer-from": "^2.1.1",
-        "tslib": "^2.5.0"
+        "@smithy/util-buffer-from": "^2.2.0",
+        "tslib": "^2.6.2"
       },
       "engines": {
         "node": ">=14.0.0"
@@ -2008,9 +2115,9 @@
       }
     },
     "node_modules/@types/chai": {
-      "version": "4.3.11",
-      "resolved": "https://registry.npmmirror.com/@types/chai/-/chai-4.3.11.tgz",
-      "integrity": "sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ=="
+      "version": "4.3.13",
+      "resolved": "https://registry.npmmirror.com/@types/chai/-/chai-4.3.13.tgz",
+      "integrity": "sha512-+LxQEbg4BDUf88utmhpUpTyYn1zHao443aGnXIAQak9ZMt9Rtsic0Oig0OS1xyIqdDXc5uMekoC6NaiUlkT/qA=="
     },
     "node_modules/@types/sinon": {
       "version": "17.0.3",
@@ -2154,24 +2261,6 @@
         "acorn": "^6.1.0 || ^7 || ^8"
       }
     },
-    "node_modules/analytics-node": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmmirror.com/analytics-node/-/analytics-node-5.1.2.tgz",
-      "integrity": "sha512-WZ8gkXtLuqD2Q2xEOr/2/LJiR0AnhWHfXZhfPnMZpB7vEwCsh3HapYAUmA1cPj1abrhAqBX7POWuWo/1wUu/Fw==",
-      "dependencies": {
-        "@segment/loosely-validate-event": "^2.0.0",
-        "axios": "^0.21.4",
-        "axios-retry": "3.2.0",
-        "lodash.isstring": "^4.0.1",
-        "md5": "^2.2.1",
-        "ms": "^2.0.0",
-        "remove-trailing-slash": "^0.1.0",
-        "uuid": "^8.3.2"
-      },
-      "engines": {
-        "node": ">=4"
-      }
-    },
     "node_modules/ansi-escape-sequences": {
       "version": "5.1.2",
       "resolved": "https://registry.npmmirror.com/ansi-escape-sequences/-/ansi-escape-sequences-5.1.2.tgz",
@@ -2242,22 +2331,6 @@
       "resolved": "https://registry.npmmirror.com/aws4/-/aws4-1.12.0.tgz",
       "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
     },
-    "node_modules/axios": {
-      "version": "0.21.4",
-      "resolved": "https://registry.npmmirror.com/axios/-/axios-0.21.4.tgz",
-      "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
-      "dependencies": {
-        "follow-redirects": "^1.14.0"
-      }
-    },
-    "node_modules/axios-retry": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmmirror.com/axios-retry/-/axios-retry-3.2.0.tgz",
-      "integrity": "sha512-RK2cLMgIsAQBDhlIsJR5dOhODPigvel18XUv1dDXW+4k1FzebyfRk+C+orot6WPZOYFKSfhLwHPwVmTVOODQ5w==",
-      "dependencies": {
-        "is-retry-allowed": "^1.1.0"
-      }
-    },
     "node_modules/balanced-match": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -2266,8 +2339,7 @@
     "node_modules/base64-js": {
       "version": "1.5.1",
       "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
-      "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
-      "optional": true
+      "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
     },
     "node_modules/big-integer": {
       "version": "1.6.52",
@@ -2297,13 +2369,23 @@
         "readable-stream": "^3.4.0"
       }
     },
+    "node_modules/bl/node_modules/buffer": {
+      "version": "5.7.1",
+      "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz",
+      "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+      "optional": true,
+      "dependencies": {
+        "base64-js": "^1.3.1",
+        "ieee754": "^1.1.13"
+      }
+    },
     "node_modules/body-parser": {
-      "version": "1.20.1",
-      "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.1.tgz",
-      "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
+      "version": "1.20.2",
+      "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.2.tgz",
+      "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
       "dependencies": {
         "bytes": "3.1.2",
-        "content-type": "~1.0.4",
+        "content-type": "~1.0.5",
         "debug": "2.6.9",
         "depd": "2.0.0",
         "destroy": "1.2.0",
@@ -2311,7 +2393,7 @@
         "iconv-lite": "0.4.24",
         "on-finished": "2.4.1",
         "qs": "6.11.0",
-        "raw-body": "2.5.1",
+        "raw-body": "2.5.2",
         "type-is": "~1.6.18",
         "unpipe": "1.0.0"
       },
@@ -2375,21 +2457,20 @@
       }
     },
     "node_modules/bson": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmmirror.com/bson/-/bson-6.3.0.tgz",
-      "integrity": "sha512-balJfqwwTBddxfnidJZagCBPP/f48zj9Sdp3OJswREOgsJzHiQSaOIAtApSgDQFYgHqAvFkp53AFSqjMDZoTFw==",
+      "version": "6.5.0",
+      "resolved": "https://registry.npmmirror.com/bson/-/bson-6.5.0.tgz",
+      "integrity": "sha512-DXf1BTAS8vKyR90BO4x5v3rKVarmkdkzwOrnYDFdjAY694ILNDkmA3uRh1xXJEl+C1DAh8XCvAQ+Gh3kzubtpg==",
       "engines": {
         "node": ">=16.20.1"
       }
     },
     "node_modules/buffer": {
-      "version": "5.7.1",
-      "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz",
-      "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
-      "optional": true,
+      "version": "6.0.3",
+      "resolved": "https://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz",
+      "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
       "dependencies": {
         "base64-js": "^1.3.1",
-        "ieee754": "^1.1.13"
+        "ieee754": "^1.2.1"
       }
     },
     "node_modules/bundle-name": {
@@ -2427,9 +2508,9 @@
       }
     },
     "node_modules/caniuse-lite": {
-      "version": "1.0.30001588",
-      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001588.tgz",
-      "integrity": "sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ=="
+      "version": "1.0.30001599",
+      "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz",
+      "integrity": "sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA=="
     },
     "node_modules/chalk": {
       "version": "2.4.2",
@@ -2452,14 +2533,6 @@
         "node": ">=0.8.0"
       }
     },
-    "node_modules/charenc": {
-      "version": "0.0.2",
-      "resolved": "https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz",
-      "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
-      "engines": {
-        "node": "*"
-      }
-    },
     "node_modules/chownr": {
       "version": "2.0.0",
       "resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz",
@@ -2489,11 +2562,6 @@
         "node": ">=14"
       }
     },
-    "node_modules/component-type": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmmirror.com/component-type/-/component-type-1.2.2.tgz",
-      "integrity": "sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA=="
-    },
     "node_modules/config-chain": {
       "version": "1.1.13",
       "resolved": "https://registry.npmmirror.com/config-chain/-/config-chain-1.1.13.tgz",
@@ -2553,12 +2621,12 @@
         "node": ">= 8"
       }
     },
-    "node_modules/crypt": {
-      "version": "0.0.2",
-      "resolved": "https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz",
-      "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
+    "node_modules/data-uri-to-buffer": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
+      "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
       "engines": {
-        "node": "*"
+        "node": ">= 12"
       }
     },
     "node_modules/debug": {
@@ -2577,11 +2645,6 @@
         }
       }
     },
-    "node_modules/debug/node_modules/ms": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
-      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
-    },
     "node_modules/decompress-response": {
       "version": "6.0.0",
       "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-6.0.0.tgz",
@@ -2668,14 +2731,22 @@
       }
     },
     "node_modules/detect-libc": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.0.2.tgz",
-      "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==",
+      "version": "2.0.3",
+      "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.0.3.tgz",
+      "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
       "optional": true,
       "engines": {
         "node": ">=8"
       }
     },
+    "node_modules/dset": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmmirror.com/dset/-/dset-3.1.3.tgz",
+      "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==",
+      "engines": {
+        "node": ">=4"
+      }
+    },
     "node_modules/eastasianwidth": {
       "version": "0.2.0",
       "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
@@ -2704,9 +2775,9 @@
       "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
     },
     "node_modules/electron-to-chromium": {
-      "version": "1.4.675",
-      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.675.tgz",
-      "integrity": "sha512-+1u3F/XPNIdUwv8i1lDxHAxCvNNU0QIqgb1Ycn+Jnng8ITzWSvUqixRSM7NOazJuwhf65IV17f/VbKj8DmL26A=="
+      "version": "1.4.711",
+      "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.711.tgz",
+      "integrity": "sha512-hRg81qzvUEibX2lDxnFlVCHACa+LtrCPIsWAxo161LDYIB3jauf57RGsMZV9mvGwE98yGH06icj3zBEoOkxd/w=="
     },
     "node_modules/emoji-regex": {
       "version": "9.2.2",
@@ -2888,13 +2959,13 @@
       }
     },
     "node_modules/express": {
-      "version": "4.18.2",
-      "resolved": "https://registry.npmmirror.com/express/-/express-4.18.2.tgz",
-      "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
+      "version": "4.18.3",
+      "resolved": "https://registry.npmmirror.com/express/-/express-4.18.3.tgz",
+      "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==",
       "dependencies": {
         "accepts": "~1.3.8",
         "array-flatten": "1.1.1",
-        "body-parser": "1.20.1",
+        "body-parser": "1.20.2",
         "content-disposition": "0.5.4",
         "content-type": "~1.0.4",
         "cookie": "0.5.0",
@@ -2960,6 +3031,18 @@
         "format": "^0.2.0"
       }
     },
+    "node_modules/fetch-blob": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmmirror.com/fetch-blob/-/fetch-blob-3.2.0.tgz",
+      "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+      "dependencies": {
+        "node-domexception": "^1.0.0",
+        "web-streams-polyfill": "^3.0.3"
+      },
+      "engines": {
+        "node": "^12.20 || >= 14.13"
+      }
+    },
     "node_modules/file-uri-to-path": {
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
@@ -2996,19 +3079,6 @@
       "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
       "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
     },
-    "node_modules/follow-redirects": {
-      "version": "1.15.5",
-      "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.5.tgz",
-      "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
-      "engines": {
-        "node": ">=4.0"
-      },
-      "peerDependenciesMeta": {
-        "debug": {
-          "optional": true
-        }
-      }
-    },
     "node_modules/foreground-child": {
       "version": "3.1.1",
       "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.1.1.tgz",
@@ -3029,6 +3099,17 @@
         "node": ">=0.4.x"
       }
     },
+    "node_modules/formdata-polyfill": {
+      "version": "4.0.10",
+      "resolved": "https://registry.npmmirror.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+      "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
+      "dependencies": {
+        "fetch-blob": "^3.1.2"
+      },
+      "engines": {
+        "node": ">=12.20.0"
+      }
+    },
     "node_modules/forwarded": {
       "version": "0.2.0",
       "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
@@ -3206,9 +3287,9 @@
       }
     },
     "node_modules/hasown": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.1.tgz",
-      "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
+      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
       "dependencies": {
         "function-bind": "^1.1.2"
       },
@@ -3217,9 +3298,9 @@
       }
     },
     "node_modules/heap-js": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/heap-js/-/heap-js-2.3.0.tgz",
-      "integrity": "sha512-E5303mzwQ+4j/n2J0rDvEPBN7GKjhis10oHiYOgjxsmxYgqG++hz9NyLLOXttzH8as/DyiBHYpUrJTZWYaMo8Q==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmmirror.com/heap-js/-/heap-js-2.5.0.tgz",
+      "integrity": "sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ==",
       "engines": {
         "node": ">=10.0.0"
       }
@@ -3274,8 +3355,7 @@
     "node_modules/ieee754": {
       "version": "1.2.1",
       "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz",
-      "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
-      "optional": true
+      "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
     },
     "node_modules/inherits": {
       "version": "2.0.4",
@@ -3313,11 +3393,6 @@
       "integrity": "sha512-Bm6H79i01DjgGTCWjUuCjJ6QDo1HB96PT/xCYuyJUP9WFbVDrLSbG4EZCvOCun2rNswZb0c3e4Jt/ws795esHA==",
       "optional": true
     },
-    "node_modules/is-buffer": {
-      "version": "1.1.6",
-      "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz",
-      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
-    },
     "node_modules/is-docker": {
       "version": "3.0.0",
       "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-3.0.0.tgz",
@@ -3363,14 +3438,6 @@
         "acorn-static-class-features": "^1.0.0"
       }
     },
-    "node_modules/is-retry-allowed": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
-      "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
     "node_modules/is-stream": {
       "version": "3.0.0",
       "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz",
@@ -3421,9 +3488,9 @@
       }
     },
     "node_modules/joi": {
-      "version": "17.12.1",
-      "resolved": "https://registry.npmmirror.com/joi/-/joi-17.12.1.tgz",
-      "integrity": "sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ==",
+      "version": "17.12.2",
+      "resolved": "https://registry.npmmirror.com/joi/-/joi-17.12.2.tgz",
+      "integrity": "sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==",
       "dependencies": {
         "@hapi/hoek": "^9.3.0",
         "@hapi/topo": "^5.1.0",
@@ -3432,15 +3499,10 @@
         "@sideway/pinpoint": "^2.0.0"
       }
     },
-    "node_modules/join-component": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmmirror.com/join-component/-/join-component-1.1.0.tgz",
-      "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ=="
-    },
     "node_modules/jose": {
-      "version": "4.15.4",
-      "resolved": "https://registry.npmmirror.com/jose/-/jose-4.15.4.tgz",
-      "integrity": "sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ=="
+      "version": "4.15.5",
+      "resolved": "https://registry.npmmirror.com/jose/-/jose-4.15.5.tgz",
+      "integrity": "sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg=="
     },
     "node_modules/js-beautify": {
       "version": "1.15.1",
@@ -3539,11 +3601,6 @@
       "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
       "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
     },
-    "node_modules/lodash.isstring": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmmirror.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
-      "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
-    },
     "node_modules/lodash.merge": {
       "version": "4.6.2",
       "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
@@ -3580,16 +3637,6 @@
         "node-addon-api": "^4.3.0"
       }
     },
-    "node_modules/md5": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz",
-      "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
-      "dependencies": {
-        "charenc": "0.0.2",
-        "crypt": "0.0.2",
-        "is-buffer": "~1.1.6"
-      }
-    },
     "node_modules/media-typer": {
       "version": "0.3.0",
       "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
@@ -3739,12 +3786,12 @@
       "optional": true
     },
     "node_modules/mongodb": {
-      "version": "6.3.0",
-      "resolved": "https://registry.npmmirror.com/mongodb/-/mongodb-6.3.0.tgz",
-      "integrity": "sha512-tt0KuGjGtLUhLoU263+xvQmPHEGTw5LbcNC73EoFRYgSHwZt5tsoJC110hDyO1kjQzpgNrpdcSza9PknWN4LrA==",
+      "version": "6.5.0",
+      "resolved": "https://registry.npmmirror.com/mongodb/-/mongodb-6.5.0.tgz",
+      "integrity": "sha512-Fozq68InT+JKABGLqctgtb8P56pRrJFkbhW0ux+x1mdHeyinor8oNzJqwLjV/t5X5nJGfTlluxfyMnOXNggIUA==",
       "dependencies": {
-        "@mongodb-js/saslprep": "^1.1.0",
-        "bson": "^6.2.0",
+        "@mongodb-js/saslprep": "^1.1.5",
+        "bson": "^6.4.0",
         "mongodb-connection-string-url": "^3.0.0"
       },
       "engines": {
@@ -3847,9 +3894,9 @@
       }
     },
     "node_modules/ms": {
-      "version": "2.1.3",
-      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
-      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+      "version": "2.1.2",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
     },
     "node_modules/mustache": {
       "version": "4.2.0",
@@ -3874,9 +3921,9 @@
       }
     },
     "node_modules/node-abi": {
-      "version": "3.54.0",
-      "resolved": "https://registry.npmmirror.com/node-abi/-/node-abi-3.54.0.tgz",
-      "integrity": "sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==",
+      "version": "3.56.0",
+      "resolved": "https://registry.npmmirror.com/node-abi/-/node-abi-3.56.0.tgz",
+      "integrity": "sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==",
       "optional": true,
       "dependencies": {
         "semver": "^7.3.5"
@@ -3891,42 +3938,25 @@
       "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==",
       "optional": true
     },
-    "node_modules/node-fetch": {
-      "version": "2.7.0",
-      "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz",
-      "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
-      "dependencies": {
-        "whatwg-url": "^5.0.0"
-      },
+    "node_modules/node-domexception": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/node-domexception/-/node-domexception-1.0.0.tgz",
+      "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
       "engines": {
-        "node": "4.x || >=6.0.0"
-      },
-      "peerDependencies": {
-        "encoding": "^0.1.0"
-      },
-      "peerDependenciesMeta": {
-        "encoding": {
-          "optional": true
-        }
+        "node": ">=10.5.0"
       }
     },
-    "node_modules/node-fetch/node_modules/tr46": {
-      "version": "0.0.3",
-      "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz",
-      "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
-    },
-    "node_modules/node-fetch/node_modules/webidl-conversions": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
-      "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
-    },
-    "node_modules/node-fetch/node_modules/whatwg-url": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz",
-      "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+    "node_modules/node-fetch": {
+      "version": "3.3.2",
+      "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-3.3.2.tgz",
+      "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
       "dependencies": {
-        "tr46": "~0.0.3",
-        "webidl-conversions": "^3.0.0"
+        "data-uri-to-buffer": "^4.0.0",
+        "fetch-blob": "^3.1.4",
+        "formdata-polyfill": "^4.0.10"
+      },
+      "engines": {
+        "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
       }
     },
     "node_modules/node-forge": {
@@ -3958,9 +3988,9 @@
       }
     },
     "node_modules/npm-run-path": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.2.0.tgz",
-      "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==",
+      "version": "5.3.0",
+      "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.3.0.tgz",
+      "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
       "dependencies": {
         "path-key": "^4.0.0"
       },
@@ -4051,11 +4081,11 @@
       }
     },
     "node_modules/openid-client": {
-      "version": "5.6.4",
-      "resolved": "https://registry.npmmirror.com/openid-client/-/openid-client-5.6.4.tgz",
-      "integrity": "sha512-T1h3B10BRPKfcObdBklX639tVz+xh34O7GjofqrqiAQdm7eHsQ00ih18x6wuJ/E6FxdtS2u3FmUGPDeEcMwzNA==",
+      "version": "5.6.5",
+      "resolved": "https://registry.npmmirror.com/openid-client/-/openid-client-5.6.5.tgz",
+      "integrity": "sha512-5P4qO9nGJzB5PI0LFlhj4Dzg3m4odt0qsJTfyEtZyOlkgpILwEioOhVVJOrS1iVH494S4Ee5OCjjg6Bf5WOj3w==",
       "dependencies": {
-        "jose": "^4.15.4",
+        "jose": "^4.15.5",
         "lru-cache": "^6.0.0",
         "object-hash": "^2.2.0",
         "oidc-token-hash": "^5.0.3"
@@ -4289,9 +4319,9 @@
       }
     },
     "node_modules/raw-body": {
-      "version": "2.5.1",
-      "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz",
-      "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+      "version": "2.5.2",
+      "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz",
+      "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
       "dependencies": {
         "bytes": "3.1.2",
         "http-errors": "2.0.0",
@@ -4331,11 +4361,6 @@
         "node": ">= 6"
       }
     },
-    "node_modules/remove-trailing-slash": {
-      "version": "0.1.1",
-      "resolved": "https://registry.npmmirror.com/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz",
-      "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA=="
-    },
     "node_modules/resolve-mongodb-srv": {
       "version": "1.1.3",
       "resolved": "https://registry.npmmirror.com/resolve-mongodb-srv/-/resolve-mongodb-srv-1.1.3.tgz",
@@ -4513,6 +4538,11 @@
       "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
       "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
     },
+    "node_modules/send/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+    },
     "node_modules/serve-static": {
       "version": "1.15.0",
       "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz",
@@ -4528,16 +4558,16 @@
       }
     },
     "node_modules/set-function-length": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.1.tgz",
-      "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==",
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.2.2.tgz",
+      "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
       "dependencies": {
-        "define-data-property": "^1.1.2",
+        "define-data-property": "^1.1.4",
         "es-errors": "^1.3.0",
         "function-bind": "^1.1.2",
-        "get-intrinsic": "^1.2.3",
+        "get-intrinsic": "^1.2.4",
         "gopd": "^1.0.1",
-        "has-property-descriptors": "^1.0.1"
+        "has-property-descriptors": "^1.0.2"
       },
       "engines": {
         "node": ">= 0.4"
@@ -4568,11 +4598,11 @@
       }
     },
     "node_modules/side-channel": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.5.tgz",
-      "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==",
+      "version": "1.0.6",
+      "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.6.tgz",
+      "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
       "dependencies": {
-        "call-bind": "^1.0.6",
+        "call-bind": "^1.0.7",
         "es-errors": "^1.3.0",
         "get-intrinsic": "^1.2.4",
         "object-inspect": "^1.13.1"
@@ -4616,9 +4646,9 @@
       }
     },
     "node_modules/socks": {
-      "version": "2.7.3",
-      "resolved": "https://registry.npmmirror.com/socks/-/socks-2.7.3.tgz",
-      "integrity": "sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw==",
+      "version": "2.8.1",
+      "resolved": "https://registry.npmmirror.com/socks/-/socks-2.8.1.tgz",
+      "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==",
       "dependencies": {
         "ip-address": "^9.0.5",
         "smart-buffer": "^4.2.0"
@@ -4967,6 +4997,14 @@
         "node": ">= 0.8"
       }
     },
+    "node_modules/web-streams-polyfill": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmmirror.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
+      "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
     "node_modules/webidl-conversions": {
       "version": "7.0.0",
       "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
diff --git a/nixpkgs/pkgs/development/tools/mongosh/source.json b/nixpkgs/pkgs/development/tools/mongosh/source.json
index 842f2c19a376..8f771e9917ee 100644
--- a/nixpkgs/pkgs/development/tools/mongosh/source.json
+++ b/nixpkgs/pkgs/development/tools/mongosh/source.json
@@ -1,6 +1,6 @@
 {
-  "version": "2.1.5",
-  "integrity": "sha512-+FYryX5zOiMSc26CscDADeXxC733YMGLpQcfYUC0r8w3q9PPW7MqMvJN1nFzmsiKsojuV/yyMP+ImIE1j3YX1g==",
-  "filename": "mongosh-2.1.5.tgz",
-  "deps": "sha256-A0m/9EuNRNhmtLt/bbC/fih+fmkBpdsf6bU0acQc6wg="
+  "version": "2.2.1",
+  "integrity": "sha512-jqgOlNl5ZE/jasl6LIDZ8lKP658I+XFZh1e16eYo+c9UfL+NqRXwVJCRWKaZ/tph9Hc3dzCd9dKCN7OC0T50iQ==",
+  "filename": "mongosh-2.2.1.tgz",
+  "deps": "sha256-sZ2zSFi2tuYhjLHHrewNHcmSxwIHggL+wbHvEScK38Y="
 }
diff --git a/nixpkgs/pkgs/development/tools/moq/default.nix b/nixpkgs/pkgs/development/tools/moq/default.nix
index 1c94ce10d5d5..bd78d3d92b56 100644
--- a/nixpkgs/pkgs/development/tools/moq/default.nix
+++ b/nixpkgs/pkgs/development/tools/moq/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/matryer/moq";
     description = "Interface mocking tool for go generate";
+    mainProgram = "moq";
     longDescription = ''
       Moq is a tool that generates a struct from any interface. The struct can
       be used in test code as a mock of the interface.
diff --git a/nixpkgs/pkgs/development/tools/mpfshell/default.nix b/nixpkgs/pkgs/development/tools/mpfshell/default.nix
index e8a2a9b89217..331e80140bb8 100644
--- a/nixpkgs/pkgs/development/tools/mpfshell/default.nix
+++ b/nixpkgs/pkgs/development/tools/mpfshell/default.nix
@@ -21,6 +21,7 @@ python3Packages.buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/wendlers/mpfshell";
     description = "A simple shell based file explorer for ESP8266 Micropython based devices";
+    mainProgram = "mpfshell";
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/mutmut/default.nix b/nixpkgs/pkgs/development/tools/mutmut/default.nix
index 85d981961d16..3d9c8078060c 100644
--- a/nixpkgs/pkgs/development/tools/mutmut/default.nix
+++ b/nixpkgs/pkgs/development/tools/mutmut/default.nix
@@ -29,6 +29,7 @@ let self = with python3.pkgs; buildPythonApplication rec {
 
   meta = with lib; {
     description = "mutation testing system for Python, with a strong focus on ease of use";
+    mainProgram = "mutmut";
     homepage = "https://github.com/boxed/mutmut";
     changelog = "https://github.com/boxed/mutmut/blob/${version}/HISTORY.rst";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/tools/nap/default.nix b/nixpkgs/pkgs/development/tools/nap/default.nix
index fdc585fd5e18..aad1a6c53a3a 100644
--- a/nixpkgs/pkgs/development/tools/nap/default.nix
+++ b/nixpkgs/pkgs/development/tools/nap/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = {
     description = "Code snippets in your terminal 🛌";
+    mainProgram = "nap";
     homepage = "https://github.com/maaslalani/nap";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ phdcybersec maaslalani ];
diff --git a/nixpkgs/pkgs/development/tools/napi-rs-cli/default.nix b/nixpkgs/pkgs/development/tools/napi-rs-cli/default.nix
index 3b73a05a7c88..86b714dbb0c4 100644
--- a/nixpkgs/pkgs/development/tools/napi-rs-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/napi-rs-cli/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "CLI tools for napi-rs";
+    mainProgram = "napi";
     homepage = "https://napi.rs";
     license = licenses.mit;
     maintainers = with maintainers; [ winter ];
diff --git a/nixpkgs/pkgs/development/tools/nasmfmt/default.nix b/nixpkgs/pkgs/development/tools/nasmfmt/default.nix
index 413d7df67885..eda6940f079f 100644
--- a/nixpkgs/pkgs/development/tools/nasmfmt/default.nix
+++ b/nixpkgs/pkgs/development/tools/nasmfmt/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Formatter for NASM source files";
+    mainProgram = "nasmfmt";
     homepage = "https://github.com/yamnikov-oleg/nasmfmt";
     license = licenses.mit;
     maintainers = with maintainers; [ ckie ];
diff --git a/nixpkgs/pkgs/development/tools/neil/default.nix b/nixpkgs/pkgs/development/tools/neil/default.nix
index 96eb34f09170..e126111b5cb3 100644
--- a/nixpkgs/pkgs/development/tools/neil/default.nix
+++ b/nixpkgs/pkgs/development/tools/neil/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/babashka/neil";
     description = "A CLI to add common aliases and features to deps.edn-based projects";
+    mainProgram = "neil";
     license = licenses.mit;
     platforms = babashka.meta.platforms;
     maintainers = with maintainers; [ jlesquembre ];
diff --git a/nixpkgs/pkgs/development/tools/nemiver/default.nix b/nixpkgs/pkgs/development/tools/nemiver/default.nix
index 7894dfe797d6..af0224658212 100644
--- a/nixpkgs/pkgs/development/tools/nemiver/default.nix
+++ b/nixpkgs/pkgs/development/tools/nemiver/default.nix
@@ -81,6 +81,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wiki.gnome.org/Apps/Nemiver";
     description = "Easy to use standalone C/C++ debugger";
+    mainProgram = "nemiver";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.juliendehos ];
diff --git a/nixpkgs/pkgs/development/tools/nodenv/default.nix b/nixpkgs/pkgs/development/tools/nodenv/default.nix
index 657492966cf2..cdda869aa16a 100644
--- a/nixpkgs/pkgs/development/tools/nodenv/default.nix
+++ b/nixpkgs/pkgs/development/tools/nodenv/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Manage multiple NodeJS versions";
+    mainProgram = "nodenv";
     homepage = "https://github.com/nodenv/nodenv/";
     changelog = "https://github.com/nodenv/nodenv/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/norminette/default.nix b/nixpkgs/pkgs/development/tools/norminette/default.nix
index 0be1693d5d2a..90a978e09948 100644
--- a/nixpkgs/pkgs/development/tools/norminette/default.nix
+++ b/nixpkgs/pkgs/development/tools/norminette/default.nix
@@ -24,6 +24,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Open source norminette to apply 42's norme to C files";
+    mainProgram = "norminette";
     homepage = "https://github.com/42School/norminette";
     license = licenses.mit;
     maintainers = with maintainers; [ wegank ];
diff --git a/nixpkgs/pkgs/development/tools/npm-check/default.nix b/nixpkgs/pkgs/development/tools/npm-check/default.nix
index 3e1ad56e4414..131048f10cbe 100644
--- a/nixpkgs/pkgs/development/tools/npm-check/default.nix
+++ b/nixpkgs/pkgs/development/tools/npm-check/default.nix
@@ -22,6 +22,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     description = "Check for outdated, incorrect, and unused dependencies";
+    mainProgram = "npm-check";
     homepage = "https://github.com/dylang/npm-check";
     changelog = "https://github.com/dylang/npm-check/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/ocaml/camlidl/default.nix b/nixpkgs/pkgs/development/tools/ocaml/camlidl/default.nix
index 22104d3d4dc0..5522406c7e74 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/camlidl/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/camlidl/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A stub code generator and COM binding for Objective Caml";
+    mainProgram = "camlidl";
     homepage = "https://xavierleroy.org/camlidl/";
     license = lib.licenses.lgpl21;
     maintainers = [ lib.maintainers.roconnor ];
diff --git a/nixpkgs/pkgs/development/tools/ocaml/cppo/default.nix b/nixpkgs/pkgs/development/tools/ocaml/cppo/default.nix
index 2f057ada92b9..f5b002c59e64 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/cppo/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/cppo/default.nix
@@ -7,6 +7,7 @@ let
 
   meta = with lib; {
     description = "The C preprocessor for OCaml";
+    mainProgram = "cppo";
     longDescription = ''
       Cppo is an equivalent of the C preprocessor targeted at the OCaml language and its variants.
     '';
diff --git a/nixpkgs/pkgs/development/tools/ocaml/crunch/default.nix b/nixpkgs/pkgs/development/tools/ocaml/crunch/default.nix
index d7b4d64096ca..8a9e91b55432 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/crunch/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/crunch/default.nix
@@ -25,6 +25,7 @@ buildDunePackage rec {
   meta = {
     homepage = "https://github.com/mirage/ocaml-crunch";
     description = "Convert a filesystem into a static OCaml module";
+    mainProgram = "ocaml-crunch";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
   };
diff --git a/nixpkgs/pkgs/development/tools/ocaml/dune-release/default.nix b/nixpkgs/pkgs/development/tools/ocaml/dune-release/default.nix
index c404144b05a2..796410828f77 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/dune-release/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/dune-release/default.nix
@@ -58,6 +58,7 @@ in buildDunePackage rec {
 
   meta = with lib; {
     description = "Release dune packages in opam";
+    mainProgram = "dune-release";
     homepage = "https://github.com/ocamllabs/dune-release";
     changelog = "https://github.com/tarides/dune-release/blob/${version}/CHANGES.md";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix b/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
index 65f8c7eda3ca..0d2d3b7d5324 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://dune.build/";
     description = "A composable build system";
+    mainProgram = "dune";
     changelog = "https://github.com/ocaml/dune/raw/${version}/CHANGES.md";
     maintainers = [ lib.maintainers.vbgl lib.maintainers.marsam ];
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/ocaml/dune/3.nix b/nixpkgs/pkgs/development/tools/ocaml/dune/3.nix
index 780739c83004..b168e7e13c3c 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/dune/3.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/dune/3.nix
@@ -6,11 +6,11 @@ else
 
 stdenv.mkDerivation rec {
   pname = "dune";
-  version = "3.14.0";
+  version = "3.14.2";
 
   src = fetchurl {
     url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz";
-    hash = "sha256-9NCdiRYmIf3/QkwlP6UMSSDSF5+1s9Heure76Xxosvw=";
+    hash = "sha256-6AhnyzYrJ0nZ2eDLqymC+Yrx2vRFm4EWTKCqxrTmrOE=";
   };
 
   nativeBuildInputs = [ ocaml findlib ];
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://dune.build/";
     description = "A composable build system";
+    mainProgram = "dune";
     changelog = "https://github.com/ocaml/dune/raw/${version}/CHANGES.md";
     maintainers = [ lib.maintainers.vbgl lib.maintainers.marsam ];
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/ocaml/merlin/4.x.nix b/nixpkgs/pkgs/development/tools/ocaml/merlin/4.x.nix
index fb6282054c50..2a3eb8e52eec 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/merlin/4.x.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/merlin/4.x.nix
@@ -23,6 +23,7 @@ let
     "4.13.1" = "4.7-413";
     "4.14.0" = "4.14-414";
     "4.14.1" = "4.14-414";
+    "4.14.2" = "4.14-414";
     "5.0.0" = "4.14-500";
     "5.1.0" = "4.14-501";
     "5.1.1" = "4.14-501";
diff --git a/nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix b/nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix
index 89af62ed70e6..2d572364005a 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix
@@ -16,6 +16,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     description = "Reads config files for merlin";
+    mainProgram = "dot-merlin-reader";
     homepage = "https://github.com/ocaml/merlin";
     license = licenses.mit;
     maintainers = [ maintainers.hongchangwu ];
diff --git a/nixpkgs/pkgs/development/tools/ocaml/obelisk/default.nix b/nixpkgs/pkgs/development/tools/ocaml/obelisk/default.nix
index 938fa24374af..2775f72d79d1 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/obelisk/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/obelisk/default.nix
@@ -18,6 +18,7 @@ ocamlPackages.buildDunePackage rec {
 
   meta = {
     description = "A simple tool which produces pretty-printed output from a Menhir parser file (.mly)";
+    mainProgram = "obelisk";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
     homepage = "https://github.com/Lelio-Brun/Obelisk";
diff --git a/nixpkgs/pkgs/development/tools/ocaml/ocaml-top/default.nix b/nixpkgs/pkgs/development/tools/ocaml/ocaml-top/default.nix
index 57b457bff293..b5c506ad9b82 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/ocaml-top/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/ocaml-top/default.nix
@@ -17,6 +17,7 @@ with ocamlPackages; buildDunePackage rec {
     homepage = "https://www.typerex.org/ocaml-top.html";
     license = lib.licenses.gpl3;
     description = "A simple cross-platform OCaml code editor built for top-level evaluation";
+    mainProgram = "ocaml-top";
     maintainers = with lib.maintainers; [ vbgl ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix b/nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix
index 649e1bcd3559..6fd31d54d999 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix
@@ -21,6 +21,7 @@ buildDunePackage rec {
   meta = with lib; {
     homepage = "https://www.typerex.org/ocp-indent.html";
     description = "A customizable tool to indent OCaml code";
+    mainProgram = "ocp-indent";
     license = licenses.gpl3;
     maintainers = [ maintainers.jirkamarsik ];
   };
diff --git a/nixpkgs/pkgs/development/tools/ocaml/opaline/default.nix b/nixpkgs/pkgs/development/tools/ocaml/opaline/default.nix
index b6bc9c9b9f6f..e8fbae0f241b 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/opaline/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/opaline/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "OPAm Light INstaller Engine";
+    mainProgram = "opaline";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
     inherit (src.meta) homepage;
diff --git a/nixpkgs/pkgs/development/tools/ocaml/opam-publish/default.nix b/nixpkgs/pkgs/development/tools/ocaml/opam-publish/default.nix
index dec119bc762c..b18b3e6707be 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/opam-publish/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/opam-publish/default.nix
@@ -28,6 +28,7 @@ buildDunePackage rec {
   meta = with lib; {
     homepage = "https://github.com/ocaml-opam/${pname}";
     description = "A tool to ease contributions to opam repositories";
+    mainProgram = "opam-publish";
     license = with licenses; [ lgpl21Only ocamlLgplLinkingException ];
     maintainers = with maintainers; [ niols ];
   };
diff --git a/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix b/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix
index 4f85fc52343a..a60b12667fa7 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix
@@ -122,11 +122,6 @@ in stdenv.mkDerivation {
   outputs = [ "out" "installer" ];
   setOutputFlags = false;
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   # change argv0 to "opam" as a workaround for
   # https://github.com/ocaml/opam/issues/2142
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/tools/ocaml/opam/installer.nix b/nixpkgs/pkgs/development/tools/ocaml/opam/installer.nix
index 9b3b7a5617ba..a56621267df3 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/opam/installer.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/opam/installer.nix
@@ -13,5 +13,6 @@ ocamlPackages.buildDunePackage {
 
   meta = opam.meta // {
     description = "Handle (un)installation from opam install files";
+    mainProgram = "opam-installer";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl b/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl
index 77c574cb9321..412a1a30e70d 100755
--- a/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl
+++ b/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl
@@ -112,11 +112,6 @@ print <<'EOF';
   outputs = [ "out" "installer" ];
   setOutputFlags = false;
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   # change argv0 to "opam" as a workaround for
   # https://github.com/ocaml/opam/issues/2142
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/tools/ocaml/opam2json/default.nix b/nixpkgs/pkgs/development/tools/ocaml/opam2json/default.nix
index a3ca535d3f86..844e6f816134 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/opam2json/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/opam2json/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     platforms = platforms.all;
     description = "convert opam file syntax to JSON";
+    mainProgram = "opam2json";
     maintainers = [ maintainers.balsoft ];
     license = licenses.gpl3;
     homepage = "https://github.com/tweag/opam2json";
diff --git a/nixpkgs/pkgs/development/tools/ofono-phonesim/default.nix b/nixpkgs/pkgs/development/tools/ofono-phonesim/default.nix
index 395211cd13c1..81a513edd687 100644
--- a/nixpkgs/pkgs/development/tools/ofono-phonesim/default.nix
+++ b/nixpkgs/pkgs/development/tools/ofono-phonesim/default.nix
@@ -31,6 +31,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Phone Simulator for modem testing";
+    mainProgram = "phonesim";
     homepage = "https://01.org/ofono";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/tools/oh-my-posh/default.nix b/nixpkgs/pkgs/development/tools/oh-my-posh/default.nix
index 92cc9ac1803a..13a8de6550b2 100644
--- a/nixpkgs/pkgs/development/tools/oh-my-posh/default.nix
+++ b/nixpkgs/pkgs/development/tools/oh-my-posh/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "oh-my-posh";
-  version = "19.11.7";
+  version = "19.13.0";
 
   src = fetchFromGitHub {
     owner = "jandedobbeleer";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-CBAIojr+J84spnd0SQHT0xLoLuOPQsZEhWfKZMuj12Q=";
+    hash = "sha256-nQJs+Kj0sxEI15QPLVFyVQWcM6HU6KzsSpW0ogYMzpQ=";
   };
 
-  vendorHash = "sha256-OkcwcQfI1CeKIQaaS/Bd1Hct2yebp0TB98lsGAVRWqk=";
+  vendorHash = "sha256-LIxOlU9YRA3xdHoilOBpo7P68ThVDOdiqXt47du/20g=";
 
   sourceRoot = "${src.name}/src";
 
@@ -53,6 +53,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A prompt theme engine for any shell";
+    mainProgram = "oh-my-posh";
     homepage = "https://ohmyposh.dev";
     changelog = "https://github.com/JanDeDobbeleer/oh-my-posh/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/okteto/default.nix b/nixpkgs/pkgs/development/tools/okteto/default.nix
index c604d997ef26..67446277bf5d 100644
--- a/nixpkgs/pkgs/development/tools/okteto/default.nix
+++ b/nixpkgs/pkgs/development/tools/okteto/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "okteto";
-  version = "2.25.2";
+  version = "2.25.3";
 
   src = fetchFromGitHub {
     owner = "okteto";
     repo = "okteto";
     rev = version;
-    hash = "sha256-6ss1dWHgvsp56Ua2AejJsLC5j7de7iW80m785+F9Ur4=";
+    hash = "sha256-jxt6YfYcpwOygzxMlqX+icwKFXrDljS1vmg+OpA3pWc=";
   };
 
   vendorHash = "sha256-+Adnveutg8soqK2Zwn2SNq7SEHd/Z91diHbPYHrGVrA=";
@@ -47,6 +47,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Develop your applications directly in your Kubernetes Cluster";
+    mainProgram = "okteto";
     homepage = "https://okteto.com/";
     license = licenses.asl20;
     maintainers = with maintainers; [ aaronjheng ];
diff --git a/nixpkgs/pkgs/development/tools/ols/default.nix b/nixpkgs/pkgs/development/tools/ols/default.nix
index 9357cdd9ae01..05839dcdcba7 100644
--- a/nixpkgs/pkgs/development/tools/ols/default.nix
+++ b/nixpkgs/pkgs/development/tools/ols/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     inherit (odin.meta) platforms;
     description = "Language server for the Odin programming language";
+    mainProgram = "ols";
     homepage = "https://github.com/DanielGavin/ols";
     license = licenses.mit;
     maintainers = with maintainers; [ astavie znaniye ];
diff --git a/nixpkgs/pkgs/development/tools/operator-sdk/default.nix b/nixpkgs/pkgs/development/tools/operator-sdk/default.nix
index dde9361926fe..62bf98c593f4 100644
--- a/nixpkgs/pkgs/development/tools/operator-sdk/default.nix
+++ b/nixpkgs/pkgs/development/tools/operator-sdk/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "operator-sdk";
-  version = "1.34.0";
+  version = "1.34.1";
 
   src = fetchFromGitHub {
     owner = "operator-framework";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-7Kkx1XMWoi1P3UA2HlCsqVxr2d5jjs9JxMUvHWs1nlk=";
+    hash = "sha256-3S7jR76b9MZpqn4Hj9yhjfravBk1PiESJEbG5XR4tnI=";
   };
 
   vendorHash = "sha256-YspUrnSS6d8Ta8dmUjx9A5D/V5Bqm08DQJrRBaIGyQg=";
diff --git a/nixpkgs/pkgs/development/tools/oq/default.nix b/nixpkgs/pkgs/development/tools/oq/default.nix
index 8e23e72912b0..8508fbc2d741 100644
--- a/nixpkgs/pkgs/development/tools/oq/default.nix
+++ b/nixpkgs/pkgs/development/tools/oq/default.nix
@@ -38,6 +38,7 @@ crystal.buildCrystalPackage rec {
 
   meta = with lib; {
     description = "A performant, and portable jq wrapper";
+    mainProgram = "oq";
     homepage = "https://blacksmoke16.github.io/oq/";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
diff --git a/nixpkgs/pkgs/development/tools/oras/default.nix b/nixpkgs/pkgs/development/tools/oras/default.nix
index 50727b811c21..fe1c0d5db36b 100644
--- a/nixpkgs/pkgs/development/tools/oras/default.nix
+++ b/nixpkgs/pkgs/development/tools/oras/default.nix
@@ -51,6 +51,7 @@ buildGoModule rec {
     homepage = "https://oras.land/";
     changelog = "https://github.com/oras-project/oras/releases/tag/v${version}";
     description = "The ORAS project provides a way to push and pull OCI Artifacts to and from OCI Registries";
+    mainProgram = "oras";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk developer-guy ];
   };
diff --git a/nixpkgs/pkgs/development/tools/oshka/default.nix b/nixpkgs/pkgs/development/tools/oshka/default.nix
index 489f41b718df..0161382491cf 100644
--- a/nixpkgs/pkgs/development/tools/oshka/default.nix
+++ b/nixpkgs/pkgs/development/tools/oshka/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool for extracting nested CI/CD supply chains and executing commands";
+    mainProgram = "oshka";
     homepage = "https://github.com/k1LoW/oshka";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/development/tools/osslsigncode/default.nix b/nixpkgs/pkgs/development/tools/osslsigncode/default.nix
index a581dd04ec48..f622e11b14d0 100644
--- a/nixpkgs/pkgs/development/tools/osslsigncode/default.nix
+++ b/nixpkgs/pkgs/development/tools/osslsigncode/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/mtrojnar/osslsigncode";
     description = "OpenSSL based Authenticode signing for PE/MSI/Java CAB files";
+    mainProgram = "osslsigncode";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mmahut prusnak ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/out-of-tree/default.nix b/nixpkgs/pkgs/development/tools/out-of-tree/default.nix
index a96156ca7109..72f7d8b76a60 100644
--- a/nixpkgs/pkgs/development/tools/out-of-tree/default.nix
+++ b/nixpkgs/pkgs/development/tools/out-of-tree/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "kernel {module, exploit} development tool";
+    mainProgram = "out-of-tree";
     homepage = "https://out-of-tree.io";
     maintainers = [ maintainers.dump_stack ];
     license = licenses.agpl3Plus;
diff --git a/nixpkgs/pkgs/development/tools/oxlint/default.nix b/nixpkgs/pkgs/development/tools/oxlint/default.nix
index 0d7eb08b41a1..e24b78a4bd29 100644
--- a/nixpkgs/pkgs/development/tools/oxlint/default.nix
+++ b/nixpkgs/pkgs/development/tools/oxlint/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "oxlint";
-  version = "0.2.12";
+  version = "0.2.14";
 
   src = fetchFromGitHub {
     owner = "web-infra-dev";
     repo = "oxc";
     rev = "oxlint_v${version}";
-    hash = "sha256-uI+zzRRsRaO3OpDhhrp4VW7mHjwmOENHkPl5htYJ2dA=";
+    hash = "sha256-nIY80YWZpDJSFkPLMBjXyk2SYx2tnVhFrxiBrYFu/e4=";
   };
 
-  cargoHash = "sha256-FV79CORqCXj24CCgGLKew5/tpnjMgVEek0cL2FTFq1A=";
+  cargoHash = "sha256-BRrF0Ad6tbN+xajzPhDHP7ZJPbruRrcdwjZBFukMKfs=";
 
   buildInputs = [
     rust-jemalloc-sys
diff --git a/nixpkgs/pkgs/development/tools/package-project-cmake/default.nix b/nixpkgs/pkgs/development/tools/package-project-cmake/default.nix
index e768a74c427d..239ba515ea2b 100644
--- a/nixpkgs/pkgs/development/tools/package-project-cmake/default.nix
+++ b/nixpkgs/pkgs/development/tools/package-project-cmake/default.nix
@@ -39,7 +39,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
       packaging process into a single, easy-to-use command.
     '';
     license = licenses.mit;
-    maintainers = with maintainers; [ ken-matsui ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.all;
   };
 })
diff --git a/nixpkgs/pkgs/development/tools/packcc/default.nix b/nixpkgs/pkgs/development/tools/packcc/default.nix
index 4f618665573c..b1ec078c9c5d 100644
--- a/nixpkgs/pkgs/development/tools/packcc/default.nix
+++ b/nixpkgs/pkgs/development/tools/packcc/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A parser generator for C";
+    mainProgram = "packcc";
     longDescription = ''
       PackCC is a parser generator for C. Its main features are as follows:
       - Generates your parser in C from a grammar described in a PEG,
diff --git a/nixpkgs/pkgs/development/tools/packet/default.nix b/nixpkgs/pkgs/development/tools/packet/default.nix
index 61e9b210683f..056c9a3527ed 100644
--- a/nixpkgs/pkgs/development/tools/packet/default.nix
+++ b/nixpkgs/pkgs/development/tools/packet/default.nix
@@ -17,6 +17,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "a CLI tool to manage packet.net services";
+    mainProgram = "packet";
     homepage = "https://github.com/ebsarr/packet";
     license = licenses.mit;
     maintainers = with maintainers; [ grahamc ];
diff --git a/nixpkgs/pkgs/development/tools/pactorio/default.nix b/nixpkgs/pkgs/development/tools/pactorio/default.nix
index 5d7558669045..851c2c895444 100644
--- a/nixpkgs/pkgs/development/tools/pactorio/default.nix
+++ b/nixpkgs/pkgs/development/tools/pactorio/default.nix
@@ -34,6 +34,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Mod packager for factorio";
+    mainProgram = "pactorio";
     homepage = "https://github.com/figsoda/pactorio";
     changelog = "https://github.com/figsoda/pactorio/blob/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/tools/paging-calculator/default.nix b/nixpkgs/pkgs/development/tools/paging-calculator/default.nix
index b3cf80588142..d9241d81ac88 100644
--- a/nixpkgs/pkgs/development/tools/paging-calculator/default.nix
+++ b/nixpkgs/pkgs/development/tools/paging-calculator/default.nix
@@ -16,6 +16,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = {
     description = "CLI utility that helps calculating page table indices from a virtual address";
+    mainProgram = "paging-calculator";
     longDescription = ''
       paging-calculator is a CLI utility written in Rust that helps you finding the indices that a
       virtual address will have into the page tables on different architectures.
diff --git a/nixpkgs/pkgs/development/tools/pandoc/default.nix b/nixpkgs/pkgs/development/tools/pandoc/default.nix
index a2ceef50eb6f..9d0c511f6479 100644
--- a/nixpkgs/pkgs/development/tools/pandoc/default.nix
+++ b/nixpkgs/pkgs/development/tools/pandoc/default.nix
@@ -6,15 +6,6 @@ let
 
 in
   (haskell.lib.compose.overrideCabal (drv: {
-    # pandoc-cli's pandoc executable report the libraries version via --version, match that,
-    inherit (static.scope.pandoc) version;
-    # but prevent haskellPackages.mkDerivation from recomputing the src tarball based on that.
-    inherit (static) src;
-    # Make it possible to recover the cli version if necessary.
-    passthru = drv.passthru or {} // {
-      cliVersion = static.version;
-    };
-
     configureFlags = drv.configureFlags or [] ++ ["-fembed_data_files"];
     buildDepends = drv.buildDepends or [] ++ [haskellPackages.file-embed];
     buildTools = (drv.buildTools or []) ++ [
@@ -37,7 +28,7 @@ in
         -t ${haskellPackages.warp} \
         $out/bin/pandoc
       remove-references-to \
-        -t ${haskellPackages.pandoc_3_1_11} \
+        -t ${haskellPackages.pandoc} \
         $out/bin/pandoc
     '' + lib.optionalString (stdenv.buildPlatform == stdenv.hostPlatform) ''
       mkdir -p $out/share/bash-completion/completions
@@ -53,5 +44,5 @@ in
     # lead to a transitive runtime dependency on the whole GHC distribution.
     # This should ideally be fixed in haskellPackages (or even Cabal),
     # but a minimal pandoc is important enough to patch it manually.
-    disallowedReferences = [ haskellPackages.pandoc-types haskellPackages.warp haskellPackages.pandoc_3_1_11 ];
+    disallowedReferences = [ haskellPackages.pandoc-types haskellPackages.warp haskellPackages.pandoc ];
   })
diff --git a/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix b/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix
index ade168b81614..7d7ea67417e0 100644
--- a/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix
+++ b/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix
@@ -27,6 +27,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Infer parentheses for Clojure, Lisp, and Scheme";
+    mainProgram = "parinfer-rust";
     homepage = "https://github.com/eraserhd/parinfer-rust";
     license = licenses.isc;
     maintainers = with maintainers; [ eraserhd ];
diff --git a/nixpkgs/pkgs/development/tools/parse-cli-bin/default.nix b/nixpkgs/pkgs/development/tools/parse-cli-bin/default.nix
index 33dbd0fec181..0ece2bb4afb0 100644
--- a/nixpkgs/pkgs/development/tools/parse-cli-bin/default.nix
+++ b/nixpkgs/pkgs/development/tools/parse-cli-bin/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Parse Command Line Interface";
+    mainProgram = "parse";
     homepage    = "https://parse.com";
     platforms   = platforms.linux;
     license     = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/tools/parsing/bisonc++/default.nix b/nixpkgs/pkgs/development/tools/parsing/bisonc++/default.nix
index 5a38c6679eb2..5994da022631 100644
--- a/nixpkgs/pkgs/development/tools/parsing/bisonc++/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/bisonc++/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A parser generator like bison, but it generates C++ code";
+    mainProgram = "bisonc++";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/parsing/flex/2.5.35.nix b/nixpkgs/pkgs/development/tools/parsing/flex/2.5.35.nix
index c13abf071c56..d6a09929d4f8 100644
--- a/nixpkgs/pkgs/development/tools/parsing/flex/2.5.35.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/flex/2.5.35.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
     branch = "2.5.35";
     homepage = "https://flex.sourceforge.net/";
     description = "A fast lexical analyser generator";
+    mainProgram = "flex";
     license = licenses.bsd2;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/tools/parsing/flexc++/default.nix b/nixpkgs/pkgs/development/tools/parsing/flexc++/default.nix
index e4db5631e7fe..1a56818b4d65 100644
--- a/nixpkgs/pkgs/development/tools/parsing/flexc++/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/flexc++/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "C++ tool for generating lexical scanners";
+    mainProgram = "flexc++";
     longDescription = ''
       Flexc++ was designed after `flex'. Flexc++ offers a cleaner class design
       and requires simpler specification files than offered by flex's C++
diff --git a/nixpkgs/pkgs/development/tools/parsing/javacc/default.nix b/nixpkgs/pkgs/development/tools/parsing/javacc/default.nix
index 42e1a536de04..a601ac15221f 100644
--- a/nixpkgs/pkgs/development/tools/parsing/javacc/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/javacc/default.nix
@@ -5,7 +5,7 @@
 , jdk
 , jre
 , makeWrapper
-, canonicalize-jars-hook
+, stripJavaArchivesHook
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
     ant
     jdk
     makeWrapper
-    canonicalize-jars-hook
+    stripJavaArchivesHook
   ];
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/parsing/jikespg/default.nix b/nixpkgs/pkgs/development/tools/parsing/jikespg/default.nix
index e9bd83416933..aec4682cec2e 100644
--- a/nixpkgs/pkgs/development/tools/parsing/jikespg/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/jikespg/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://jikes.sourceforge.net/";
     description = "The Jikes Parser Generator";
+    mainProgram = "jikespg";
     platforms = platforms.all;
     license = licenses.ipl10;
     maintainers = with maintainers; [ pSub ];
diff --git a/nixpkgs/pkgs/development/tools/parsing/jshon/default.nix b/nixpkgs/pkgs/development/tools/parsing/jshon/default.nix
index 977c4bb398c2..7e167aa729d2 100644
--- a/nixpkgs/pkgs/development/tools/parsing/jshon/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/jshon/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://kmkeen.com/jshon";
     description = "JSON parser designed for maximum convenience within the shell";
+    mainProgram = "jshon";
     license = licenses.free;
     platforms = platforms.all;
     maintainers = with maintainers; [ rushmorem ];
diff --git a/nixpkgs/pkgs/development/tools/parsing/lemon/default.nix b/nixpkgs/pkgs/development/tools/parsing/lemon/default.nix
index 9c8786950d22..5e59d7441e7e 100644
--- a/nixpkgs/pkgs/development/tools/parsing/lemon/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/lemon/default.nix
@@ -32,6 +32,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "An LALR(1) parser generator";
+    mainProgram = "lemon";
     longDescription = ''
       The Lemon program is an LALR(1) parser generator that takes a
       context-free grammar and converts it into a subroutine that will parse a
diff --git a/nixpkgs/pkgs/development/tools/parsing/nex/default.nix b/nixpkgs/pkgs/development/tools/parsing/nex/default.nix
index 287098ed8d36..2d3f18cacedd 100644
--- a/nixpkgs/pkgs/development/tools/parsing/nex/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/nex/default.nix
@@ -20,6 +20,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "Lexer for Go";
+    mainProgram = "nex";
     homepage = "https://github.com/blynn/nex";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ urandom ];
diff --git a/nixpkgs/pkgs/development/tools/parsing/ragel/default.nix b/nixpkgs/pkgs/development/tools/parsing/ragel/default.nix
index db5590ccbb96..72e77a55a152 100644
--- a/nixpkgs/pkgs/development/tools/parsing/ragel/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/ragel/default.nix
@@ -30,6 +30,7 @@ let
       meta = with lib; {
         homepage = "https://www.colm.net/open-source/ragel/";
         description = "State machine compiler";
+        mainProgram = "ragel";
         inherit broken license;
         platforms = platforms.unix;
         maintainers = with maintainers; [ pSub ];
diff --git a/nixpkgs/pkgs/development/tools/parsing/re-flex/default.nix b/nixpkgs/pkgs/development/tools/parsing/re-flex/default.nix
index 645d4e280288..524a900ec422 100644
--- a/nixpkgs/pkgs/development/tools/parsing/re-flex/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/re-flex/default.nix
@@ -1,30 +1,32 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, autoreconfHook
-, boost
-, autoconf
-, automake
+, cmake
 }:
 
 stdenv.mkDerivation rec {
   pname = "re-flex";
-  version = "4.0.1";
+  version = "4.1.2";
 
   src = fetchFromGitHub {
     owner = "Genivia";
     repo = "RE-flex";
     rev = "v${version}";
-    sha256 = "sha256-eQ2+RthvOKCd2Dl6i+9DahJArFfOhPJkn6PI/yuaqos=";
+    hash = "sha256-w1aH04VGe9nPvwGdbTEsAcIPb7oC739LZjTI/1Ck7bU=";
   };
 
-  nativeBuildInputs = [ boost autoconf automake ];
+  outputs = [ "out" "bin" "dev" ];
+
+  nativeBuildInputs = [
+    cmake
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/Genivia/RE-flex";
+    homepage = "https://www.genivia.com/doc/reflex/html";
     description = "The regex-centric, fast lexical analyzer generator for C++ with full Unicode support";
     license = licenses.bsd3;
-    platforms = platforms.unix;
+    platforms = platforms.all;
     maintainers = with lib.maintainers; [ prrlvr ];
+    mainProgram = "reflex";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
index 2a6fd3374d8f..84f505caeb5a 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -156,6 +156,7 @@ rustPlatform.buildRustPackage {
   meta = with lib; {
     homepage = "https://github.com/tree-sitter/tree-sitter";
     description = "A parser generator tool and an incremental parsing library";
+    mainProgram = "tree-sitter";
     longDescription = ''
       Tree-sitter is a parser generator tool and an incremental parsing library.
       It can build a concrete syntax tree for a source file and efficiently update the syntax tree as the source file is edited.
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
index 1544e737c0b9..53c06662793c 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
@@ -28,6 +28,7 @@
   tree-sitter-fish = lib.importJSON ./tree-sitter-fish.json;
   tree-sitter-fortran = lib.importJSON ./tree-sitter-fortran.json;
   tree-sitter-gdscript = lib.importJSON ./tree-sitter-gdscript.json;
+  tree-sitter-gleam = lib.importJSON ./tree-sitter-gleam.json;
   tree-sitter-glimmer = lib.importJSON ./tree-sitter-glimmer.json;
   tree-sitter-glsl = lib.importJSON ./tree-sitter-glsl.json;
   tree-sitter-go = lib.importJSON ./tree-sitter-go.json;
@@ -50,6 +51,7 @@
   tree-sitter-jsonnet = lib.importJSON ./tree-sitter-jsonnet.json;
   tree-sitter-julia = lib.importJSON ./tree-sitter-julia.json;
   tree-sitter-just = lib.importJSON ./tree-sitter-just.json;
+  tree-sitter-koka = lib.importJSON ./tree-sitter-koka.json;
   tree-sitter-kotlin = lib.importJSON ./tree-sitter-kotlin.json;
   tree-sitter-latex = lib.importJSON ./tree-sitter-latex.json;
   tree-sitter-ledger = lib.importJSON ./tree-sitter-ledger.json;
@@ -91,6 +93,7 @@
   tree-sitter-supercollider = lib.importJSON ./tree-sitter-supercollider.json;
   tree-sitter-surface = lib.importJSON ./tree-sitter-surface.json;
   tree-sitter-svelte = lib.importJSON ./tree-sitter-svelte.json;
+  tree-sitter-talon = lib.importJSON ./tree-sitter-talon.json;
   tree-sitter-templ = lib.importJSON ./tree-sitter-templ.json;
   tree-sitter-tiger = lib.importJSON ./tree-sitter-tiger.json;
   tree-sitter-tlaplus = lib.importJSON ./tree-sitter-tlaplus.json;
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gleam.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gleam.json
new file mode 100644
index 000000000000..1a8bee300c6e
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gleam.json
@@ -0,0 +1,12 @@
+{
+  "url": "https://github.com/gleam-lang/tree-sitter-gleam",
+  "rev": "2012f294baacf30e7a62414754021284377366c6",
+  "date": "2023-03-04T16:19:15-05:00",
+  "path": "/nix/store/qc0bxfrv9rb95cg5q8nf0prpz4gs93wd-tree-sitter-gleam",
+  "sha256": "sha256-W+PfxqPUKHhLH5UBATmQ1mlSfLPAWIQyDgiSQBWBtBs=",
+  "hash": "sha256-W+PfxqPUKHhLH5UBATmQ1mlSfLPAWIQyDgiSQBWBtBs=",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-koka.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-koka.json
new file mode 100644
index 000000000000..56153f9ac2a5
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-koka.json
@@ -0,0 +1,12 @@
+{
+  "url": "https://github.com/mtoohey31/tree-sitter-koka",
+  "rev": "96d070c3700692858035f3524cc0ad944cef2594",
+  "date": "2024-01-21T20:56:11-05:00",
+  "path": "/nix/store/n0cy7vhsiw6i2s9i2hzwcm0ddj7d4ffi-tree-sitter-koka",
+  "sha256": "1bxmflc8ynqpdkzwc74fqqcjhzkggkzxbzhbx0ji4g7kfknc0ldk",
+  "hash": "sha256-s1HA7HTzPBIl6Av+1f98b34oGcaOHMb/bBdbjxh1ta8=",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-talon.json b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-talon.json
new file mode 100644
index 000000000000..baa13c0a37dc
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-talon.json
@@ -0,0 +1,12 @@
+{
+  "url": "https://github.com/wenkokke/tree-sitter-talon",
+  "rev": "dafc9fabf7acc1a46d51cce379cec00c07661aa7",
+  "date": "2023-11-05T13:07:41+00:00",
+  "path": "/nix/store/df67djinw8sjwf6lbfv6gdckxckv0y65-tree-sitter-talon",
+  "sha256": "1clmmb3pgvc54fsp83f2jmz6n21pmmjkb15yk9bfqlkzdm12sirw",
+  "hash": "sha256-PEctQm1/UuxWmr6ENWWtNwhrfpXCDXS1I4Xtd8eqlbI=",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix
index aad4a6c9a029..c4d64cbd25aa 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix
@@ -157,6 +157,10 @@ let
       repo = "tree-sitter-sql";
       branch = "gh-pages";
     };
+    "tree-sitter-talon" = {
+      orga = "wenkokke";
+      repo = "tree-sitter-talon";
+    };
     "tree-sitter-typst" = {
       orga = "uben0";
       repo = "tree-sitter-typst";
@@ -409,6 +413,14 @@ let
       orga = "vrischmann";
       repo = "tree-sitter-templ";
     };
+    "tree-sitter-gleam" = {
+      orga = "gleam-lang";
+      repo = "tree-sitter-gleam";
+    };
+    "tree-sitter-koka" = {
+      orga = "mtoohey31";
+      repo = "tree-sitter-koka";
+    };
   };
 
   allGrammars =
diff --git a/nixpkgs/pkgs/development/tools/patatt/default.nix b/nixpkgs/pkgs/development/tools/patatt/default.nix
index aed80b94ac6b..b50fae18ae49 100644
--- a/nixpkgs/pkgs/development/tools/patatt/default.nix
+++ b/nixpkgs/pkgs/development/tools/patatt/default.nix
@@ -17,6 +17,7 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://git.kernel.org/pub/scm/utils/patatt/patatt.git/about/";
     license = licenses.mit0;
     description = "Add cryptographic attestation to patches sent via email";
+    mainProgram = "patatt";
     longDescription = ''
       This utility allows an easy way to add end-to-end cryptographic
       attestation to patches sent via mail.  It does so by adapting the
diff --git a/nixpkgs/pkgs/development/tools/patcher9x/default.nix b/nixpkgs/pkgs/development/tools/patcher9x/default.nix
index 33dad487b3f6..090f902c75b9 100644
--- a/nixpkgs/pkgs/development/tools/patcher9x/default.nix
+++ b/nixpkgs/pkgs/development/tools/patcher9x/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation (finalAttr: {
 
   meta = with lib; {
     description = "Patch for Windows 95/98/98 SE/Me to fix CPU issues";
+    mainProgram = "patcher9x";
     homepage = "https://github.com/JHRobotics/patcher9x";
     license = licenses.mit;
     maintainers = with maintainers; [ hughobrien ];
diff --git a/nixpkgs/pkgs/development/tools/pet/default.nix b/nixpkgs/pkgs/development/tools/pet/default.nix
index 14f50820f2e5..3250107cbf0e 100644
--- a/nixpkgs/pkgs/development/tools/pet/default.nix
+++ b/nixpkgs/pkgs/development/tools/pet/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "pet";
-  version = "0.6.3";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "knqyf263";
     repo = "pet";
     rev = "v${version}";
-    sha256 = "sha256-NnnutXVwyWlPO7yJk8BAZJqtNl8sodDx/ZnX+TL8sWs=";
+    sha256 = "sha256-2C87oqMyq85cbN2rq8aEkEyFC5IZCw75TMQSjzR+RrY=";
   };
 
   vendorHash = "sha256-ebdPWKNL9i3sEGpfDCXIfOaFQjV5LXohug2qFXeWenk=";
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Simple command-line snippet manager, written in Go";
+    mainProgram = "pet";
     homepage = "https://github.com/knqyf263/pet";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/nixpkgs/pkgs/development/tools/pew/default.nix b/nixpkgs/pkgs/development/tools/pew/default.nix
index f0c9d7d62b6e..adcfc0efd4c7 100644
--- a/nixpkgs/pkgs/development/tools/pew/default.nix
+++ b/nixpkgs/pkgs/development/tools/pew/default.nix
@@ -23,6 +23,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/berdario/pew";
     description = "Tools to manage multiple virtualenvs written in pure python";
+    mainProgram = "pew";
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ berdario ];
diff --git a/nixpkgs/pkgs/development/tools/pgloader/default.nix b/nixpkgs/pkgs/development/tools/pgloader/default.nix
index dce892451c1c..59f3eeeaeaa9 100644
--- a/nixpkgs/pkgs/development/tools/pgloader/default.nix
+++ b/nixpkgs/pkgs/development/tools/pgloader/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://pgloader.io/";
     description = "Loads data into PostgreSQL and allows you to implement Continuous Migration from your current database to PostgreSQL";
+    mainProgram = "pgloader";
     maintainers = with maintainers; [ mguentner ];
     license = licenses.postgresql;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/pgtop/default.nix b/nixpkgs/pkgs/development/tools/pgtop/default.nix
index 722f701892e4..4007bc5abec1 100644
--- a/nixpkgs/pkgs/development/tools/pgtop/default.nix
+++ b/nixpkgs/pkgs/development/tools/pgtop/default.nix
@@ -22,6 +22,7 @@ perlPackages.buildPerlPackage rec {
 
   meta = with lib; {
     description = "a PostgreSQL clone of `mytop', which in turn is a `top' clone for MySQL";
+    mainProgram = "pgtop";
     homepage = "https://github.com/cosimo/pgtop";
     changelog = "https://github.com/cosimo/pgtop/releases/tag/v${version}";
     maintainers = [ maintainers.hagl ];
diff --git a/nixpkgs/pkgs/development/tools/picotool/default.nix b/nixpkgs/pkgs/development/tools/picotool/default.nix
index 03d3d440c297..a31f46808353 100644
--- a/nixpkgs/pkgs/development/tools/picotool/default.nix
+++ b/nixpkgs/pkgs/development/tools/picotool/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/raspberrypi/picotool";
     description = "Tool for interacting with a RP2040 device in BOOTSEL mode, or with a RP2040 binary";
+    mainProgram = "picotool";
     license = licenses.bsd3;
     maintainers = with maintainers; [ muscaln ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/pifpaf/default.nix b/nixpkgs/pkgs/development/tools/pifpaf/default.nix
index e11baa783ba6..80d9c26f506c 100644
--- a/nixpkgs/pkgs/development/tools/pifpaf/default.nix
+++ b/nixpkgs/pkgs/development/tools/pifpaf/default.nix
@@ -36,6 +36,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Suite of tools and fixtures to manage daemons for testing";
+    mainProgram = "pifpaf";
     homepage = "https://github.com/jd/pifpaf";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/tools/pigeon/default.nix b/nixpkgs/pkgs/development/tools/pigeon/default.nix
index 74b2a69c4c7c..38fcd75f391d 100644
--- a/nixpkgs/pkgs/development/tools/pigeon/default.nix
+++ b/nixpkgs/pkgs/development/tools/pigeon/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
   meta = {
     homepage = "https://github.com/mna/pigeon";
     description = "A PEG parser generator for Go";
+    mainProgram = "pigeon";
     maintainers = with lib.maintainers; [ zimbatm ];
     license = with lib.licenses; [ bsd3 ];
   };
diff --git a/nixpkgs/pkgs/development/tools/pip-audit/default.nix b/nixpkgs/pkgs/development/tools/pip-audit/default.nix
index 9ff8f51b672d..6adcf5529e56 100644
--- a/nixpkgs/pkgs/development/tools/pip-audit/default.nix
+++ b/nixpkgs/pkgs/development/tools/pip-audit/default.nix
@@ -60,6 +60,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for scanning Python environments for known vulnerabilities";
+    mainProgram = "pip-audit";
     homepage = "https://github.com/trailofbits/pip-audit";
     changelog = "https://github.com/pypa/pip-audit/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/pqrs/default.nix b/nixpkgs/pkgs/development/tools/pqrs/default.nix
index 56c99d30babc..730bc67fbbe8 100644
--- a/nixpkgs/pkgs/development/tools/pqrs/default.nix
+++ b/nixpkgs/pkgs/development/tools/pqrs/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "CLI tool to inspect Parquet files";
+    mainProgram = "pqrs";
     homepage = "https://github.com/manojkarthick/pqrs";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = [ maintainers.manojkarthick ];
diff --git a/nixpkgs/pkgs/development/tools/profiling/pprof/default.nix b/nixpkgs/pkgs/development/tools/profiling/pprof/default.nix
index 05539f665861..e81446d7f12e 100644
--- a/nixpkgs/pkgs/development/tools/profiling/pprof/default.nix
+++ b/nixpkgs/pkgs/development/tools/profiling/pprof/default.nix
@@ -5,19 +5,20 @@
 
 buildGoModule rec {
   pname = "pprof";
-  version = "unstable-2023-07-05";
+  version = "unstable-2024-02-27";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "pprof";
-    rev = "200ffdc848b879f8aff937ffeba601c186916257";
-    hash = "sha256-/Y1Tj9z+2MNe+b2vzd4F+PwHGSbCYP7HpbaDUL9ZzKQ=";
+    rev = "401108e1b7e7e113ef887df16b6227698eb5bb0f";
+    hash = "sha256-TD285HHXkePQA2J9W/dEciK5tOLmvbDPr54KNXeE1b4=";
   };
 
-  vendorHash = "sha256-MuejFoK49VMmLt7xsiX/4Av7TijPwM9/mewXlfdufd8=";
+  vendorHash = "sha256-XOcOt+pe1lZj4XHafxROLslhyJk4mTC72yn7R1k2JCk=";
 
   meta = with lib; {
     description = "A tool for visualization and analysis of profiling data";
+    mainProgram = "pprof";
     homepage = "https://github.com/google/pprof";
     license = licenses.asl20;
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-connect-go/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-connect-go/default.nix
index 60b7199fe19e..2b963d53c672 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-connect-go/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-connect-go/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "protoc-gen-connect-go";
-  version = "1.15.0";
+  version = "1.16.0";
 
   src = fetchFromGitHub {
     owner = "connectrpc";
     repo = "connect-go";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0jQYZ4T3fE+TEQ/z9RooRqMtDCWHQUWzVCqEak6JKmQ=";
+    hash = "sha256-TtYqJCiXZh+ELYJ55D2g19kDYCESLLbMb5B/iaUMACc=";
   };
 
-  vendorHash = "sha256-rQCKj1L0kQccxWCmR0+D4itypZqJ2YuBuzCkdOVLO/U=";
+  vendorHash = "sha256-+bWw4/ZqMeqnkXnV+vwq2mxgvew0KmLwNcu/xA2l4HI=";
 
   subPackages = [
     "cmd/protoc-gen-connect-go"
@@ -27,6 +27,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Simple, reliable, interoperable, better gRPC";
+    mainProgram = "protoc-gen-connect-go";
     homepage = "https://github.com/connectrpc/connect-go";
     changelog = "https://github.com/connectrpc/connect-go/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-dart/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-dart/default.nix
index 82f1c0de125d..b09322e29701 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-dart/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-dart/default.nix
@@ -19,6 +19,7 @@ buildDartApplication rec {
 
   meta = with lib; {
     description = "Protobuf plugin for generating Dart code";
+    mainProgram = "protoc-gen-dart";
     homepage = "https://pub.dev/packages/protoc_plugin";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lelgenio ];
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-doc/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-doc/default.nix
index 31e86f85cd08..09eb0a057aee 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-doc/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-doc/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Documentation generator plugin for Google Protocol Buffers";
+    mainProgram = "protoc-gen-doc";
     longDescription = ''
       This is a documentation generator plugin for the Google Protocol Buffers
       compiler (protoc). The plugin can generate HTML, JSON, DocBook and
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-entgrpc/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-entgrpc/default.nix
index 2047974cf286..53d7d4338776 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-entgrpc/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-entgrpc/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Generator of an implementation of the service interface for ent protobuff";
+    mainProgram = "protoc-gen-entgrpc";
     downloadPage = "https://github.com/ent/contrib/";
     license = licenses.asl20;
     homepage = "https://entgo.io/";
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-go-grpc/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-go-grpc/default.nix
index fab6bfec12f0..1cf06dd34e21 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-go-grpc/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-go-grpc/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The Go language implementation of gRPC. HTTP/2 based RPC";
+    mainProgram = "protoc-gen-go-grpc";
     license = licenses.asl20;
     maintainers = [ maintainers.raboof ];
   };
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-go-vtproto/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-go-vtproto/default.nix
index e1e716eee13a..85816b725f34 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-go-vtproto/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-go-vtproto/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Protocol Buffers compiler that generates optimized marshaling & unmarshaling Go code for ProtoBuf APIv2";
+    mainProgram = "protoc-gen-go-vtproto";
     homepage = "https://github.com/planetscale/vtprotobuf";
     license = licenses.bsd3;
     maintainers = [ maintainers.zane ];
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-go/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-go/default.nix
index 55c0efc62a8a..626d80eef577 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-go/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-go/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Go support for Google's protocol buffers";
+    mainProgram = "protoc-gen-go";
     homepage = "https://google.golang.org/protobuf";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jojosch ];
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-grpc-web/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-grpc-web/default.nix
index 7308414504ed..6c8d8c541760 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-grpc-web/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-grpc-web/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/grpc/grpc-web";
     changelog = "https://github.com/grpc/grpc-web/blob/${finalAttrs.version}/CHANGELOG.md";
     description = "gRPC web support for Google's protocol buffers";
+    mainProgram = "protoc-gen-grpc-web";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-prost-crate/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-prost-crate/default.nix
index 8503e9266944..1a2a1450a4bc 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-prost-crate/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-prost-crate/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A protoc plugin that generates Cargo crates and include files for `protoc-gen-prost`";
+    mainProgram = "protoc-gen-prost-crate";
     homepage = "https://github.com/neoeinstein/protoc-gen-prost";
     changelog = "https://github.com/neoeinstein/protoc-gen-prost/blob/main/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-prost-serde/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-prost-serde/default.nix
index 843dc4fc684b..7ee87e622119 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-prost-serde/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-prost-serde/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A protoc plugin that generates serde serialization implementations for `protoc-gen-prost`";
+    mainProgram = "protoc-gen-prost-serde";
     homepage = "https://github.com/neoeinstein/protoc-gen-prost";
     changelog = "https://github.com/neoeinstein/protoc-gen-prost/blob/main/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-prost/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-prost/default.nix
index 645ecdee3081..6012af0acf3c 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-prost/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-prost/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Protocol Buffers compiler plugin powered by Prost";
+    mainProgram = "protoc-gen-prost";
     homepage = "https://github.com/neoeinstein/protoc-gen-prost";
     changelog = "https://github.com/neoeinstein/protoc-gen-prost/blob/main/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-rust/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-rust/default.nix
index 7a1dcb4b3e48..bba32dd81a4e 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-rust/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-rust/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Protobuf plugin for generating Rust code";
+    mainProgram = "protoc-gen-rust";
     homepage = "https://github.com/stepancheg/rust-protobuf";
     license = licenses.mit;
     maintainers = with maintainers; [ lucperkins ];
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-tonic/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-tonic/default.nix
index 7bc6fa52e54d..fc5e98b49b40 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-tonic/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-tonic/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A protoc plugin that generates Tonic gRPC server and client code using the Prost code generation engine";
+    mainProgram = "protoc-gen-tonic";
     homepage = "https://github.com/neoeinstein/protoc-gen-prost";
     changelog = "https://github.com/neoeinstein/protoc-gen-prost/blob/main/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-twirp/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-twirp/default.nix
index 4b8ee1f35f65..76ce9a922cc9 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-twirp/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-twirp/default.nix
@@ -21,6 +21,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "A simple RPC framework with protobuf service definitions";
+    mainProgram = "protoc-gen-twirp";
     homepage = "https://github.com/twitchtv/twirp";
     license = licenses.asl20;
     maintainers = with maintainers; [ jojosch ];
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-twirp_php/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-twirp_php/default.nix
index 30b2ff3ce78d..7fc04ae81ae3 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-twirp_php/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-twirp_php/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "PHP port of Twitch's Twirp RPC framework";
+    mainProgram = "protoc-gen-twirp_php";
     homepage = "https://github.com/twirphp/twirp";
     license = licenses.mit;
     maintainers = with maintainers; [ jojosch ];
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-twirp_swagger/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-twirp_swagger/default.nix
index 0b651a6ce0b4..1445f60f676f 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-twirp_swagger/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-twirp_swagger/default.nix
@@ -17,6 +17,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "Swagger generator for twirp";
+    mainProgram = "protoc-gen-twirp_swagger";
     homepage = "https://github.com/elliots/protoc-gen-twirp_swagger";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jojosch ];
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-twirp_typescript/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-twirp_typescript/default.nix
index 259b2a8871a7..340b21784712 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-twirp_typescript/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-twirp_typescript/default.nix
@@ -18,6 +18,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "Protobuf Plugin for Generating a Twirp Typescript Client";
+    mainProgram = "protoc-gen-twirp_typescript";
     homepage = "https://github.com/larrymyers/protoc-gen-twirp_typescript";
     license = licenses.mit;
     maintainers = with maintainers; [ jojosch dgollings ];
diff --git a/nixpkgs/pkgs/development/tools/protolint/default.nix b/nixpkgs/pkgs/development/tools/protolint/default.nix
index 02c5b18ad2e3..1bf0909c4fe5 100644
--- a/nixpkgs/pkgs/development/tools/protolint/default.nix
+++ b/nixpkgs/pkgs/development/tools/protolint/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoModule, fetchFromGitHub }:
 buildGoModule rec {
   pname = "protolint";
-  version = "0.47.5";
+  version = "0.49.3";
 
   src = fetchFromGitHub {
     owner = "yoheimuta";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-xXl9MY0oBjyDlLVvpdV7nquxUxahfPslxJeOeUmwFgk=";
+    hash = "sha256-V3xsjaqW5PaEmvEAn85c+eMRzb2DHpsPd9rUyzXDe9o=";
   };
 
-  vendorHash = "sha256-62SxRvoN4ejmAczs823jftXUmeI4ozfb6plHYT1JwZ0=";
+  vendorHash = "sha256-8yV/YyNSn6O2UjAQlzM90fOoi3TdxO+v4YPtmSQMFC0=";
 
   # Something about the way we run tests causes issues. It doesn't happen
   # when using "go test" directly:
diff --git a/nixpkgs/pkgs/development/tools/protoscope/default.nix b/nixpkgs/pkgs/development/tools/protoscope/default.nix
index 70eeab5f1575..98ebbc995617 100644
--- a/nixpkgs/pkgs/development/tools/protoscope/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoscope/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Simple, human-editable language for representing and emitting the Protobuf wire format";
+    mainProgram = "protoscope";
     homepage = "https://github.com/protocolbuffers/protoscope";
     license = licenses.asl20;
     maintainers = with maintainers; [ aaronjheng ];
diff --git a/nixpkgs/pkgs/development/tools/prototool/default.nix b/nixpkgs/pkgs/development/tools/prototool/default.nix
index 3e7c9b0b87db..d47676fd6fa2 100644
--- a/nixpkgs/pkgs/development/tools/prototool/default.nix
+++ b/nixpkgs/pkgs/development/tools/prototool/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/uber/prototool";
     description = "Your Swiss Army Knife for Protocol Buffers";
+    mainProgram = "prototool";
     maintainers = [ maintainers.marsam ];
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/development/tools/pscale/default.nix b/nixpkgs/pkgs/development/tools/pscale/default.nix
index 06a152e8fcb1..ec8e0c644732 100644
--- a/nixpkgs/pkgs/development/tools/pscale/default.nix
+++ b/nixpkgs/pkgs/development/tools/pscale/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The CLI for PlanetScale Database";
+    mainProgram = "pscale";
     changelog = "https://github.com/planetscale/cli/releases/tag/v${version}";
     homepage = "https://www.planetscale.com/";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/pulumictl/default.nix b/nixpkgs/pkgs/development/tools/pulumictl/default.nix
index 8a18b4424201..b96c87bdf32c 100644
--- a/nixpkgs/pkgs/development/tools/pulumictl/default.nix
+++ b/nixpkgs/pkgs/development/tools/pulumictl/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Swiss Army Knife for Pulumi Development";
+    mainProgram = "pulumictl";
     homepage = "https://github.com/pulumi/pulumictl";
     license = licenses.asl20;
     maintainers = with maintainers; [ vincentbernat ];
diff --git a/nixpkgs/pkgs/development/tools/pup/default.nix b/nixpkgs/pkgs/development/tools/pup/default.nix
index d7ca815babd4..501d5613930c 100644
--- a/nixpkgs/pkgs/development/tools/pup/default.nix
+++ b/nixpkgs/pkgs/development/tools/pup/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Parsing HTML at the command line";
+    mainProgram = "pup";
     homepage = "https://github.com/ericchiang/pup";
     license = licenses.mit;
     maintainers = with maintainers; [ yana ];
diff --git a/nixpkgs/pkgs/development/tools/pur/default.nix b/nixpkgs/pkgs/development/tools/pur/default.nix
index 9f8527b34765..6c33f5f0016e 100644
--- a/nixpkgs/pkgs/development/tools/pur/default.nix
+++ b/nixpkgs/pkgs/development/tools/pur/default.nix
@@ -29,6 +29,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Python library for update and track the requirements";
+    mainProgram = "pur";
     homepage = "https://github.com/alanhamlett/pip-update-requirements";
     changelog = "https://github.com/alanhamlett/pip-update-requirements/blob/${version}/HISTORY.rst";
     license = with licenses; [ bsd2 ];
diff --git a/nixpkgs/pkgs/development/tools/pxview/default.nix b/nixpkgs/pkgs/development/tools/pxview/default.nix
index 84bf11c44830..53698261560e 100644
--- a/nixpkgs/pkgs/development/tools/pxview/default.nix
+++ b/nixpkgs/pkgs/development/tools/pxview/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Program to convert Paradox databases";
+    mainProgram = "pxview";
     homepage = "https://pxlib.sourceforge.net/pxview/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/py-spy/default.nix b/nixpkgs/pkgs/development/tools/py-spy/default.nix
index 3b907c201089..8ac80ee1dade 100644
--- a/nixpkgs/pkgs/development/tools/py-spy/default.nix
+++ b/nixpkgs/pkgs/development/tools/py-spy/default.nix
@@ -50,6 +50,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Sampling profiler for Python programs";
+    mainProgram = "py-spy";
     homepage = "https://github.com/benfred/py-spy";
     changelog = "https://github.com/benfred/py-spy/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/pypi-mirror/default.nix b/nixpkgs/pkgs/development/tools/pypi-mirror/default.nix
index f2a629042fd6..9eafecca465d 100644
--- a/nixpkgs/pkgs/development/tools/pypi-mirror/default.nix
+++ b/nixpkgs/pkgs/development/tools/pypi-mirror/default.nix
@@ -17,6 +17,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A script to create a partial PyPI mirror";
+    mainProgram = "pypi-mirror";
     homepage = "https://github.com/montag451/pypi-mirror";
     license = licenses.mit;
     maintainers = with maintainers; [ kamadorueda ];
diff --git a/nixpkgs/pkgs/development/tools/qc/default.nix b/nixpkgs/pkgs/development/tools/qc/default.nix
index 786ab73758a8..e02df42fa1cc 100644
--- a/nixpkgs/pkgs/development/tools/qc/default.nix
+++ b/nixpkgs/pkgs/development/tools/qc/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "QOwnNotes command-line snippet manager";
+    mainProgram = "qc";
     homepage = "https://github.com/qownnotes/qc";
     license = licenses.mit;
     maintainers = with maintainers; [ pbek totoroot ];
diff --git a/nixpkgs/pkgs/development/tools/quick-lint-js/default.nix b/nixpkgs/pkgs/development/tools/quick-lint-js/default.nix
index 0de8496c014e..86b76bf99c07 100644
--- a/nixpkgs/pkgs/development/tools/quick-lint-js/default.nix
+++ b/nixpkgs/pkgs/development/tools/quick-lint-js/default.nix
@@ -1,13 +1,13 @@
 { buildPackages, cmake, fetchFromGitHub, lib, ninja, stdenv, testers, quick-lint-js }:
 
 let
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "quick-lint";
     repo = "quick-lint-js";
     rev = version;
-    hash = "sha256-bgyjpFYGU+uZLVBJ3gpl8UOrRzvz+7qibQD2RllSY38=";
+    hash = "sha256-L2LCRm1Fsg+xRdPc8YmgxDnuXJo92nxs862ewzObZ3I=";
   };
 
   quick-lint-js-build-tools = buildPackages.stdenv.mkDerivation {
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Find bugs in Javascript programs";
+    mainProgram = "quick-lint-js";
     homepage = "https://quick-lint-js.com";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ratsclub ];
diff --git a/nixpkgs/pkgs/development/tools/rain/default.nix b/nixpkgs/pkgs/development/tools/rain/default.nix
index 2f263848e020..878d9827a12a 100644
--- a/nixpkgs/pkgs/development/tools/rain/default.nix
+++ b/nixpkgs/pkgs/development/tools/rain/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A development workflow tool for working with AWS CloudFormation";
+    mainProgram = "rain";
     homepage = "https://github.com/aws-cloudformation/rain";
     license = licenses.asl20;
     maintainers = with maintainers; [ jiegec ];
diff --git a/nixpkgs/pkgs/development/tools/rakkess/default.nix b/nixpkgs/pkgs/development/tools/rakkess/default.nix
index 83ee3c9ec115..6b101e0b890c 100644
--- a/nixpkgs/pkgs/development/tools/rakkess/default.nix
+++ b/nixpkgs/pkgs/development/tools/rakkess/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
     homepage = "https://github.com/corneliusweig/rakkess";
     changelog = "https://github.com/corneliusweig/rakkess/releases/tag/v${version}";
     description = "Review Access - kubectl plugin to show an access matrix for k8s server resources";
+    mainProgram = "rakkess";
     longDescription = ''
       Have you ever wondered what access rights you have on a provided
       kubernetes cluster? For single resources you can use
diff --git a/nixpkgs/pkgs/development/tools/rars/default.nix b/nixpkgs/pkgs/development/tools/rars/default.nix
index 8d51fc95cf4f..b1ce9eecde52 100644
--- a/nixpkgs/pkgs/development/tools/rars/default.nix
+++ b/nixpkgs/pkgs/development/tools/rars/default.nix
@@ -24,6 +24,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     description = "RISC-V Assembler and Runtime Simulator";
+    mainProgram = "rars";
     homepage = "https://github.com/TheThirdOne/rars";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/rbspy/default.nix b/nixpkgs/pkgs/development/tools/rbspy/default.nix
index 309f8dbd9065..6ae0df232727 100644
--- a/nixpkgs/pkgs/development/tools/rbspy/default.nix
+++ b/nixpkgs/pkgs/development/tools/rbspy/default.nix
@@ -54,6 +54,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://rbspy.github.io/";
     description = "A Sampling CPU Profiler for Ruby";
+    mainProgram = "rbspy";
     changelog = "https://github.com/rbspy/rbspy/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ viraptor ];
diff --git a/nixpkgs/pkgs/development/tools/rcodesign/default.nix b/nixpkgs/pkgs/development/tools/rcodesign/default.nix
index 34227dfa705e..e3999ebff952 100644
--- a/nixpkgs/pkgs/development/tools/rcodesign/default.nix
+++ b/nixpkgs/pkgs/development/tools/rcodesign/default.nix
@@ -35,6 +35,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A cross-platform CLI interface to interact with Apple code signing.";
+    mainProgram = "rcodesign";
     longDescription = ''
       rcodesign provides various commands to interact with Apple signing,
       including signing and notarizing binaries, generating signing
diff --git a/nixpkgs/pkgs/development/tools/rdocker/default.nix b/nixpkgs/pkgs/development/tools/rdocker/default.nix
index 098d7a593148..fa823ec4d4c9 100644
--- a/nixpkgs/pkgs/development/tools/rdocker/default.nix
+++ b/nixpkgs/pkgs/development/tools/rdocker/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Securely control a remote docker daemon CLI using ssh forwarding, no SSL setup needed";
+    mainProgram = "rdocker";
     homepage = "https://github.com/dvddarias/rdocker";
     maintainers = [ lib.maintainers.pneumaticat ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix b/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix
index b3cece960186..b11e1da40b36 100644
--- a/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix
+++ b/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix
@@ -111,6 +111,7 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     description = "The standalone app based on official debugger of React Native, and includes React Inspector / Redux DevTools";
+    mainProgram = "react-native-debugger";
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rebazel/default.nix b/nixpkgs/pkgs/development/tools/rebazel/default.nix
index c28701f96a21..6cc64e116981 100644
--- a/nixpkgs/pkgs/development/tools/rebazel/default.nix
+++ b/nixpkgs/pkgs/development/tools/rebazel/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "tool for expediting bazel build workflows";
+    mainProgram = "rebazel";
     homepage = "https://github.com/meetup/rebazel";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
diff --git a/nixpkgs/pkgs/development/tools/refinery-cli/default.nix b/nixpkgs/pkgs/development/tools/refinery-cli/default.nix
index 140efe5bfd1b..7e3f7c0f4c8d 100644
--- a/nixpkgs/pkgs/development/tools/refinery-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/refinery-cli/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Run migrations for the Refinery ORM for Rust via the CLI";
+    mainProgram = "refinery";
     homepage = "https://github.com/rust-db/refinery";
     changelog = "https://github.com/rust-db/refinery/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/reflex/default.nix b/nixpkgs/pkgs/development/tools/reflex/default.nix
index 406740e784f0..98cb6141003c 100644
--- a/nixpkgs/pkgs/development/tools/reflex/default.nix
+++ b/nixpkgs/pkgs/development/tools/reflex/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A small tool to watch a directory and rerun a command when certain files change";
+    mainProgram = "reflex";
     homepage = "https://github.com/cespare/reflex";
     license = licenses.mit;
     maintainers = with maintainers; [ nicknovitski ];
diff --git a/nixpkgs/pkgs/development/tools/refmt/default.nix b/nixpkgs/pkgs/development/tools/refmt/default.nix
index efcb03a49b8f..5946e75f3f20 100644
--- a/nixpkgs/pkgs/development/tools/refmt/default.nix
+++ b/nixpkgs/pkgs/development/tools/refmt/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Reformat HCL <-> JSON <-> YAML";
+    mainProgram = "refmt";
     homepage = "https://github.com/rjeczalik/refmt";
     license = licenses.agpl3Only;
     maintainers = with lib.maintainers; [ deemp ];
diff --git a/nixpkgs/pkgs/development/tools/refurb/default.nix b/nixpkgs/pkgs/development/tools/refurb/default.nix
index 17c32d78d288..a51f15ce5b8e 100644
--- a/nixpkgs/pkgs/development/tools/refurb/default.nix
+++ b/nixpkgs/pkgs/development/tools/refurb/default.nix
@@ -5,14 +5,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "refurb";
-  version = "1.28.0";
+  version = "2.0.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "dosisod";
     repo = "refurb";
     rev = "refs/tags/v${version}";
-    hash = "sha256-b7Id2Oyjw3NZno56IMDIq7fn5u9+jn42nuae8ix90fM=";
+    hash = "sha256-6MchaqRKJPmvwiDyhCK4kFyIYl2B+2dGL8H8X2ES+VQ=";
   };
 
   postPatch = ''
@@ -56,6 +56,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A tool for refurbishing and modernizing Python codebases";
+    mainProgram = "refurb";
     homepage = "https://github.com/dosisod/refurb";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ knl ];
diff --git a/nixpkgs/pkgs/development/tools/reindeer/default.nix b/nixpkgs/pkgs/development/tools/reindeer/default.nix
index 179cf46045f2..8b6925e860e2 100644
--- a/nixpkgs/pkgs/development/tools/reindeer/default.nix
+++ b/nixpkgs/pkgs/development/tools/reindeer/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "reindeer";
-  version = "unstable-2024-02-20";
+  version = "2024.03.11.00";
 
   src = fetchFromGitHub {
     owner = "facebookincubator";
-    repo = pname;
-    rev = "40e0e40eac95c859a36b4a0fe8ad8f1363620fb0";
-    sha256 = "sha256-bxRxFxoBt1nOXKBaYQcDYV2KB4OAnhJCaQ8iWvve8sw=";
+    repo = "reindeer";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-cClbSJuEs4yIjx+13GSIevZO2PWEEHVDaMEmf729keA=";
   };
 
-  cargoSha256 = "sha256-sQk8HXPb0tnafOdVQrtpZmn0QaoNNxBj63QW7P6tZkU=";
+  cargoHash = "sha256-TtbkzU48j3dmqRocJdY8KJz/3YHYIi3SZYM/eB9zoIg=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs =
@@ -36,6 +36,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Reindeer is a tool which takes Rust Cargo dependencies and generates Buck build rules";
+    mainProgram = "reindeer";
     homepage = "https://github.com/facebookincubator/reindeer";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ nickgerace ];
diff --git a/nixpkgs/pkgs/development/tools/relic/default.nix b/nixpkgs/pkgs/development/tools/relic/default.nix
index 4029dfe028a7..2fa4fcb13571 100644
--- a/nixpkgs/pkgs/development/tools/relic/default.nix
+++ b/nixpkgs/pkgs/development/tools/relic/default.nix
@@ -34,6 +34,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/sassoftware/relic";
     description = "A service and a tool for adding digital signatures to operating system packages for Linux and Windows";
+    mainProgram = "relic";
     license = licenses.asl20;
     maintainers = with maintainers; [ strager ];
   };
diff --git a/nixpkgs/pkgs/development/tools/remodel/default.nix b/nixpkgs/pkgs/development/tools/remodel/default.nix
index 75c5ff2df3da..c9374d3a8dec 100644
--- a/nixpkgs/pkgs/development/tools/remodel/default.nix
+++ b/nixpkgs/pkgs/development/tools/remodel/default.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Roblox file manipulation tool";
+    mainProgram = "remodel";
     longDescription = ''
       Remodel is a command line tool for manipulating Roblox files and the instances contained within them.
     '';
diff --git a/nixpkgs/pkgs/development/tools/renderizer/default.nix b/nixpkgs/pkgs/development/tools/renderizer/default.nix
index 7a1540f13800..61f06a3bf44f 100644
--- a/nixpkgs/pkgs/development/tools/renderizer/default.nix
+++ b/nixpkgs/pkgs/development/tools/renderizer/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI to render Go template text files";
+    mainProgram = "renderizer";
     inherit (src.meta) homepage;
     license = licenses.gpl3;
     maintainers = [];
diff --git a/nixpkgs/pkgs/development/tools/reno/default.nix b/nixpkgs/pkgs/development/tools/reno/default.nix
index c895deb4f34f..f687583888f2 100644
--- a/nixpkgs/pkgs/development/tools/reno/default.nix
+++ b/nixpkgs/pkgs/development/tools/reno/default.nix
@@ -52,6 +52,7 @@ with python3Packages; buildPythonApplication rec {
 
   meta = with lib; {
     description = "Release Notes Manager";
+    mainProgram = "reno";
     homepage = "https://docs.openstack.org/reno/latest";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger guillaumekoenig ];
diff --git a/nixpkgs/pkgs/development/tools/rep/default.nix b/nixpkgs/pkgs/development/tools/rep/default.nix
index 0b1294abd1ef..78b9c2612e42 100644
--- a/nixpkgs/pkgs/development/tools/rep/default.nix
+++ b/nixpkgs/pkgs/development/tools/rep/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Single-shot nREPL client";
+    mainProgram = "rep";
     homepage = "https://github.com/eraserhd/rep";
     license = licenses.epl10;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/reshape/default.nix b/nixpkgs/pkgs/development/tools/reshape/default.nix
index d0bf9110c14e..82eeb6e7b0b6 100644
--- a/nixpkgs/pkgs/development/tools/reshape/default.nix
+++ b/nixpkgs/pkgs/development/tools/reshape/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "An easy-to-use, zero-downtime schema migration tool for Postgres";
+    mainProgram = "reshape";
     homepage = "https://github.com/fabianlindfors/reshape";
     changelog = "https://github.com/fabianlindfors/reshape/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/resolve-march-native/default.nix b/nixpkgs/pkgs/development/tools/resolve-march-native/default.nix
index ae15c490f186..a5db33e712ab 100644
--- a/nixpkgs/pkgs/development/tools/resolve-march-native/default.nix
+++ b/nixpkgs/pkgs/development/tools/resolve-march-native/default.nix
@@ -22,6 +22,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to determine what GCC flags -march=native would resolve into";
+    mainProgram = "resolve-march-native";
     homepage = "https://github.com/hartwork/resolve-march-native";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/nixpkgs/pkgs/development/tools/revive/default.nix b/nixpkgs/pkgs/development/tools/revive/default.nix
index 5e410ec1dab1..099bc7476c91 100644
--- a/nixpkgs/pkgs/development/tools/revive/default.nix
+++ b/nixpkgs/pkgs/development/tools/revive/default.nix
@@ -46,6 +46,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Fast, configurable, extensible, flexible, and beautiful linter for Go";
+    mainProgram = "revive";
     homepage = "https://revive.run";
     license = licenses.mit;
     maintainers = with maintainers; [ maaslalani ];
diff --git a/nixpkgs/pkgs/development/tools/richgo/default.nix b/nixpkgs/pkgs/development/tools/richgo/default.nix
index cef70f62ab68..3435572580ac 100644
--- a/nixpkgs/pkgs/development/tools/richgo/default.nix
+++ b/nixpkgs/pkgs/development/tools/richgo/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Enrich `go test` outputs with text decorations";
+    mainProgram = "richgo";
     homepage = "https://github.com/kyoh86/richgo";
     license = licenses.mit;
     maintainers = with maintainers; [ rvolosatovs ];
diff --git a/nixpkgs/pkgs/development/tools/riot-redis/default.nix b/nixpkgs/pkgs/development/tools/riot-redis/default.nix
index 55ac4e8399f8..755228361b1f 100644
--- a/nixpkgs/pkgs/development/tools/riot-redis/default.nix
+++ b/nixpkgs/pkgs/development/tools/riot-redis/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/redis-developer/riot";
     description = "Get data in and out of Redis";
+    mainProgram = "riot-redis";
     license = licenses.asl20;
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     maintainers = with maintainers; [ wesnel ];
diff --git a/nixpkgs/pkgs/development/tools/rojo/default.nix b/nixpkgs/pkgs/development/tools/rojo/default.nix
index 0ed91bd18e3e..746d269f76a2 100644
--- a/nixpkgs/pkgs/development/tools/rojo/default.nix
+++ b/nixpkgs/pkgs/development/tools/rojo/default.nix
@@ -43,6 +43,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Project management tool for Roblox";
+    mainProgram = "rojo";
     longDescription = ''
       Rojo is a tool designed to enable Roblox developers to use professional-grade software engineering tools.
     '';
diff --git a/nixpkgs/pkgs/development/tools/ronn/default.nix b/nixpkgs/pkgs/development/tools/ronn/default.nix
index c3f0d2631848..3e0d49271177 100644
--- a/nixpkgs/pkgs/development/tools/ronn/default.nix
+++ b/nixpkgs/pkgs/development/tools/ronn/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "markdown-based tool for building manpages";
+    mainProgram = "ronn";
     homepage = "https://github.com/apjanke/ronn-ng";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm nicknovitski ];
diff --git a/nixpkgs/pkgs/development/tools/rover/default.nix b/nixpkgs/pkgs/development/tools/rover/default.nix
index 90b3d91413f7..244c61f46792 100644
--- a/nixpkgs/pkgs/development/tools/rover/default.nix
+++ b/nixpkgs/pkgs/development/tools/rover/default.nix
@@ -47,6 +47,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A CLI for interacting with ApolloGraphQL's developer tooling, including managing self-hosted and GraphOS graphs.";
+    mainProgram = "rover";
     homepage = "https://www.apollographql.com/docs/rover";
     license = licenses.mit;
     maintainers = [ maintainers.ivanbrennan maintainers.aaronarinder ];
diff --git a/nixpkgs/pkgs/development/tools/rq/default.nix b/nixpkgs/pkgs/development/tools/rq/default.nix
index 17a85c0145e8..d8ec2c9db8c3 100644
--- a/nixpkgs/pkgs/development/tools/rq/default.nix
+++ b/nixpkgs/pkgs/development/tools/rq/default.nix
@@ -28,6 +28,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool for doing record analysis and transformation";
+    mainProgram = "rq";
     homepage = "https://github.com/dflemstr/rq";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ aristid Br1ght0ne figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/ruff/default.nix b/nixpkgs/pkgs/development/tools/ruff/default.nix
index 81cffa4c721d..25ef6c14921d 100644
--- a/nixpkgs/pkgs/development/tools/ruff/default.nix
+++ b/nixpkgs/pkgs/development/tools/ruff/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ruff";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "astral-sh";
     repo = "ruff";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MuvVpMBEQSOz6vSEhw7fmvAwgUu/7hrbtP8/MsIL57c=";
+    hash = "sha256-2Pt2HuDB9JLD9E1q0JH7jyVoc0II5uVL1l8pAod+9V4=";
   };
 
-  cargoHash = "sha256-zC4rXgqT0nw22adtoe51wN8XVbr6drXvqWqyJeqSGYc=";
+  cargoHash = "sha256-njHpqWXFNdwenV58+VGznnqbaNK1GoGtHSTfKU2MRbs=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/development/tools/run/default.nix b/nixpkgs/pkgs/development/tools/run/default.nix
index ea7b8880636e..794fb32c5cfe 100644
--- a/nixpkgs/pkgs/development/tools/run/default.nix
+++ b/nixpkgs/pkgs/development/tools/run/default.nix
@@ -16,6 +16,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Easily manage and invoke small scripts and wrappers";
+    mainProgram = "run";
     homepage    = "https://github.com/TekWizely/run";
     license     = licenses.mit;
     maintainers = with maintainers; [ rawkode Br1ght0ne ];
diff --git a/nixpkgs/pkgs/development/tools/rund/default.nix b/nixpkgs/pkgs/development/tools/rund/default.nix
index 186e044318e0..e02e58fb893c 100644
--- a/nixpkgs/pkgs/development/tools/rund/default.nix
+++ b/nixpkgs/pkgs/development/tools/rund/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A compiler-wrapper that runs and caches D programs";
+    mainProgram = "rund";
     homepage = "https://github.com/dragon-lang/rund";
     license = lib.licenses.boost;
     maintainers = with maintainers; [ jonathanmarler ];
diff --git a/nixpkgs/pkgs/development/tools/rust-code-analysis/default.nix b/nixpkgs/pkgs/development/tools/rust-code-analysis/default.nix
index eaf87a1908f9..d558752d04e5 100644
--- a/nixpkgs/pkgs/development/tools/rust-code-analysis/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust-code-analysis/default.nix
@@ -12,11 +12,6 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-axrtFZQOm1/UUBq1CDFkaZCks1mWoLWmfajDfsqSBmY=";
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   meta = with lib; {
     description = "Analyze and collect metrics on source code";
     homepage = "https://github.com/mozilla/rust-code-analysis";
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-apk/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-apk/default.nix
index 6bb05552e079..130894a72ade 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-apk/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-apk/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Tool for creating Android packages";
+    mainProgram = "cargo-apk";
     homepage = "https://github.com/rust-windowing/android-ndk-rs";
     license = with licenses;[ mit asl20 ];
     maintainers = with maintainers; [ nickcao ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-audit/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-audit/default.nix
index c48b34e0d668..8660eff6f638 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-audit/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-audit/default.nix
@@ -39,6 +39,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Audit Cargo.lock files for crates with security vulnerabilities";
+    mainProgram = "cargo-audit";
     homepage = "https://rustsec.org";
     changelog = "https://github.com/rustsec/rustsec/blob/cargo-audit/v${version}/cargo-audit/CHANGELOG.md";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-bazel/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-bazel/default.nix
index 26409d25002b..3cb68b11c62e 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-bazel/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-bazel/default.nix
@@ -23,6 +23,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Part of the `crate_universe` collection of tools which use Cargo to generate build targets for Bazel";
+    mainProgram = "cargo-bazel";
     homepage = "https://github.com/bazelbuild/rules_rust";
     license = licenses.asl20;
     maintainers = with maintainers; [ rickvanprim ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-benchcmp/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-benchcmp/default.nix
index d46a57355d73..c12d496e1315 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-benchcmp/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-benchcmp/default.nix
@@ -33,6 +33,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A small utility to compare Rust micro-benchmarks";
+    mainProgram = "cargo-benchcmp";
     homepage = "https://github.com/BurntSushi/cargo-benchcmp";
     license = with licenses; [ mit unlicense ];
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-binstall/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-binstall/default.nix
index 85e635307cfc..8f0ae1b22dd0 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-binstall/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-binstall/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-binstall";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "cargo-bins";
     repo = "cargo-binstall";
     rev = "v${version}";
-    hash = "sha256-DevAkIzgt39V5vp+a15TBCMeYbny/TkJzyub425N7/o=";
+    hash = "sha256-xG2eLKqGv+wqpSGBUMoYGSQ22lrMHDpQzrSyxyHMHoc=";
   };
 
-  cargoHash = "sha256-gcYCTKa+i2v/T1C0j89rJjD73tmiUow11E+59oiR7sk=";
+  cargoHash = "sha256-xNTSvJZWX19kmaFoLLHNKIrcsTFYWwN+7Ubym0hCwTA=";
 
   nativeBuildInputs = [
     pkg-config
@@ -56,6 +56,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool for installing rust binaries as an alternative to building from source";
+    mainProgram = "cargo-binstall";
     homepage = "https://github.com/cargo-bins/cargo-binstall";
     changelog = "https://github.com/cargo-bins/cargo-binstall/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
index da57b85e083e..5c7d0d57fde0 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
@@ -55,6 +55,7 @@ rustPlatform.buildRustPackage rec {
 
   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 ];
     maintainers = with maintainers; [ davidtwco ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-bitbake/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-bitbake/default.nix
index 2d26cf97da4d..ed3f5a243cb3 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-bitbake/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-bitbake/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo extension that can generate BitBake recipes utilizing the classes from meta-rust";
+    mainProgram = "cargo-bitbake";
     homepage = "https://github.com/meta-rust/cargo-bitbake";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ rvarago ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-bolero/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-bolero/default.nix
index 15a3a28183a0..c242732b237b 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-bolero/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-bolero/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Fuzzing and property testing front-end framework for Rust";
+    mainProgram = "cargo-bolero";
     homepage = "https://github.com/camshaft/bolero";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ekleog ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-bundle-licenses/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-bundle-licenses/default.nix
index 0274f80e01b8..1a6cc5ca0746 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-bundle-licenses/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-bundle-licenses/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Generate a THIRDPARTY file with all licenses in a cargo project";
+    mainProgram = "cargo-bundle-licenses";
     homepage = "https://github.com/sstadick/cargo-bundle-licenses";
     changelog = "https://github.com/sstadick/cargo-bundle-licenses/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ mit asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-bundle/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-bundle/default.nix
index 73924d1c599a..daf4bc230b8d 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-bundle/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-bundle/default.nix
@@ -35,6 +35,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "Wrap rust executables in OS-specific app bundles";
+    mainProgram = "cargo-bundle";
     homepage = "https://github.com/burtonageo/cargo-bundle";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix
index 7ea4f6067bec..3356eee034bc 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix
@@ -13,16 +13,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-c";
-  version = "0.9.24";
+  version = "0.9.29";
 
   src = fetchCrate {
     inherit pname;
     # this version may need to be updated along with package version
-    version = "${version}+cargo-0.73.0";
-    hash = "sha256-eNaK+SRrHz/DXkCcJP040R6bdhyFmjxkwHbXVFlHub8=";
+    version = "${version}+cargo-0.76.0";
+    hash = "sha256-Uy5Bm8WwN3jQO2btnV/ayxTlIJAe5q2FUvhxCCrn9U8=";
   };
 
-  cargoHash = "sha256-Us50BbdNSJAx7JTKkvA4tjbGNueCJsAwGEelc1sP5pc=";
+  cargoHash = "sha256-fkekUCZReiexdtiQcWx+Hqz4XDDbRGa4fGheBCNZ3Qw=";
 
   nativeBuildInputs = [ pkg-config (lib.getDev curl) ];
   buildInputs = [ openssl curl ] ++ lib.optionals stdenv.isDarwin [
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix
index 8e37c1489dfd..a1151c161ffd 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Manage cargo cache (\${CARGO_HOME}, ~/.cargo/), print sizes of dirs and remove dirs selectively";
+    mainProgram = "cargo-cache";
     homepage = "https://github.com/matthiaskrgr/cargo-cache";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ Br1ght0ne matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-careful/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-careful/default.nix
index 7d147241b46e..a4d5abfd0233 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-careful/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-careful/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool to execute Rust code carefully, with extra checking along the way";
+    mainProgram = "cargo-careful";
     homepage = "https://github.com/RalfJung/cargo-careful";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ figsoda matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-chef/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-chef/default.nix
index 19591518b445..27cc6e1042d7 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-chef/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-chef/default.nix
@@ -2,17 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-chef";
-  version = "0.1.65";
+  version = "0.1.66";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-3G2mgQDSj+IL6gqdhr3Sov9FHwLA6B+MRazLNF+zKZk=";
+    sha256 = "sha256-I4lD3+WFaW0kPmw5lPybDCRkG/at6VQH6l7pmngwoLU=";
   };
 
-  cargoHash = "sha256-hWkUvUFYAOqRkoU52bKzEmvNaqASfWLlnWtIuFLMDc8=";
+  cargoHash = "sha256-tSr4m10zS+/JynGmNY0+aoiYDATYwuyfr1VGKmIkHg4=";
 
   meta = with lib; {
     description = "A cargo-subcommand to speed up Rust Docker builds using Docker layer caching";
+    mainProgram = "cargo-chef";
     homepage = "https://github.com/LukeMathWalker/cargo-chef";
     license = licenses.mit;
     maintainers = with maintainers; [ kkharji ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-clone/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-clone/default.nix
index 6a8f432ecab7..4ad07b579347 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-clone/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-clone/default.nix
@@ -33,6 +33,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A cargo subcommand to fetch the source code of a Rust crate";
+    mainProgram = "cargo-clone";
     homepage = "https://github.com/janlikar/cargo-clone";
     changelog = "https://github.com/janlikar/cargo-clone/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-component/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-component/default.nix
index 88cecd3e0043..2fb1cfa5244a 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-component/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-component/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-component";
-  version = "0.9.1";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = "cargo-component";
     rev = "v${version}";
-    hash = "sha256-hST3mQqL+RNG/R/ewNjtk9KNTbjD5GwKPmx++Tv/LkE=";
+    hash = "sha256-1mq6tH3jFzyzQ0nsen9r08RrXMn16O7gOz7GS3nr10I=";
   };
 
-  cargoHash = "sha256-JoVwaqtSoaHH4h2ViqDYD4XDUtiH9jsHhCUAxPdsIps=";
+  cargoHash = "sha256-BtdMsJqAU9Y1QntUBymlYLJdfx9aP7hf/Za8G8D6w54=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-cranky/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-cranky/default.nix
index 1af60f183fdc..78acf1006508 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-cranky/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-cranky/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "An easy to configure wrapper for Rust's clippy";
+    mainProgram = "cargo-cranky";
     homepage = "https://github.com/ericseppanen/cargo-cranky";
     changelog = "https://github.com/ericseppanen/cargo-cranky/releases/tag/${src.rev}";
     license = with licenses; [ asl20 mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
index 26606ecd5ee7..832d736a9771 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
@@ -39,6 +39,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A cryptographically verifiable code review system for the cargo (Rust) package manager";
+    mainProgram = "cargo-crev";
     homepage = "https://github.com/crev-dev/cargo-crev";
     license = with licenses; [ asl20 mit mpl20 ];
     maintainers = with maintainers; [ b4dm4n matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-criterion/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-criterion/default.nix
index cc9f5ae255cc..986892a68b4d 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-criterion/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-criterion/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo extension for running Criterion.rs benchmarks";
+    mainProgram = "cargo-criterion";
     homepage = "https://github.com/bheisler/cargo-criterion";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ humancalico matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-cyclonedx/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-cyclonedx/default.nix
index c4290a6e9cfa..79f0b5d2eb3d 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-cyclonedx/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-cyclonedx/default.nix
@@ -38,6 +38,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Creates CycloneDX Software Bill of Materials (SBOM) from Rust (Cargo) projects";
+    mainProgram = "cargo-cyclonedx";
     longDescription = ''
       The CycloneDX module for Rust (Cargo) creates a valid CycloneDX Software
       Bill-of-Material (SBOM) containing an aggregate of all project
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-deb/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-deb/default.nix
index 0d3af8268ece..b70f742772c0 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-deb/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-deb/default.nix
@@ -35,6 +35,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A cargo subcommand that generates Debian packages from information in Cargo.toml";
+    mainProgram = "cargo-deb";
     homepage = "https://github.com/kornelski/cargo-deb";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix
index c3bc211a9c0e..f4bdb252d400 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deny";
-  version = "0.14.15";
+  version = "0.14.18";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = "cargo-deny";
     rev = version;
-    hash = "sha256-soDLgxEbeNk8mQHwUzBZK5QqTURzXQKZb2LtJA6fnhc=";
+    hash = "sha256-aVWr7YXGpRDItub4CaUg9LYxj9Nf0Pe1L0FUr9bJoG0=";
   };
 
-  cargoHash = "sha256-XblrLV3AMmFFXOr3K/Sq4Vb6MknI7H92H/bDvUEUOko=";
+  cargoHash = "sha256-AD4WFM0yAIKgi9y8015qxukAa3YBJmPnkUhV7qp0quk=";
 
   nativeBuildInputs = [
     pkg-config
@@ -40,6 +40,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo plugin to generate list of all licenses for a crate";
+    mainProgram = "cargo-deny";
     homepage = "https://github.com/EmbarkStudios/cargo-deny";
     changelog = "https://github.com/EmbarkStudios/cargo-deny/blob/${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-depgraph/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-depgraph/default.nix
index 1e7c63574c99..1918501d1d92 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-depgraph/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-depgraph/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Create dependency graphs for cargo projects using `cargo metadata` and graphviz";
+    mainProgram = "cargo-depgraph";
     homepage = "https://sr.ht/~jplatte/cargo-depgraph";
     changelog = "https://git.sr.ht/~jplatte/cargo-depgraph/tree/${src.rev}/item/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-dephell/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-dephell/default.nix
index b01a722e5ea1..fd1bd84836f6 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-dephell/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-dephell/default.nix
@@ -49,6 +49,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool to analyze the third-party dependencies imported by a rust crate or rust workspace";
+    mainProgram = "cargo-dephell";
     homepage = "https://github.com/mimoo/cargo-dephell";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-deps/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-deps/default.nix
index 0cbba27cf15f..4265873a71ac 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-deps/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-deps/default.nix
@@ -13,6 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo subcommand for building dependency graphs of Rust projects";
+    mainProgram = "cargo-deps";
     homepage = "https://github.com/m-cat/cargo-deps";
     license = licenses.mit;
     maintainers = with maintainers; [ arcnmx matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-diet/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-diet/default.nix
index 60aadca13d00..b7b4e2d11d1b 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-diet/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-diet/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Help computing optimal include directives for your Cargo.toml manifest";
+    mainProgram = "cargo-diet";
     homepage = "https://github.com/the-lean-crate/cargo-diet";
     changelog = "https://github.com/the-lean-crate/cargo-diet/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-dist/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-dist/default.nix
index df0ab6cabd67..87026163fb90 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-dist/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-dist/default.nix
@@ -55,6 +55,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool for building final distributable artifacts and uploading them to an archive";
+    mainProgram = "cargo-dist";
     homepage = "https://github.com/axodotdev/cargo-dist";
     changelog = "https://github.com/axodotdev/cargo-dist/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-docset/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-docset/default.nix
index 95fa48e4aba9..54328186e8b7 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-docset/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-docset/default.nix
@@ -26,6 +26,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo subcommand to generate a Dash/Zeal docset for your Rust packages";
+    mainProgram = "cargo-docset";
     homepage = "https://github.com/Robzz/cargo-docset";
     changelog = "https://github.com/Robzz/cargo-docset/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-duplicates/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-duplicates/default.nix
index 781764d3c313..d2f3b9c7a09d 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-duplicates/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-duplicates/default.nix
@@ -39,6 +39,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A cargo subcommand for displaying when different versions of a same dependency are pulled in";
+    mainProgram = "cargo-duplicates";
     homepage = "https://github.com/Keruspe/cargo-duplicates";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix
index a51b972921da..86c322f7116c 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A utility and Cargo subcommand designed to let people expand macros in their Rust source code";
+    mainProgram = "cargo-expand";
     homepage = "https://github.com/dtolnay/cargo-expand";
     changelog = "https://github.com/dtolnay/cargo-expand/releases/tag/${version}";
     license = with licenses; [ mit asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix
index 855fb65fdfb7..c09447ebbc04 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo plugin to manage dependency features";
+    mainProgram = "cargo-feature";
     homepage = "https://github.com/Riey/cargo-feature";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix
index 54a04f29a012..42f703aaa240 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Discover funding links for your project's dependencies";
+    mainProgram = "cargo-fund";
     homepage = "https://github.com/acfoltzer/cargo-fund";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ johntitor ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
index b41bdbe32f68..fc60b761fe4e 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Command line helpers for fuzzing";
+    mainProgram = "cargo-fuzz";
     homepage = "https://github.com/rust-fuzz/cargo-fuzz";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ ekleog matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix
index 5c48aeeb3829..3fbf1af9ad46 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix
@@ -47,6 +47,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rust-secure-code/cargo-geiger";
     changelog = "https://github.com/rust-secure-code/cargo-geiger/blob/${pname}-${version}/CHANGELOG.md";
     description = "Detects usage of unsafe Rust in a Rust crate and its dependencies";
+    mainProgram = "cargo-geiger";
     longDescription = ''
       A cargo plugin that detects the usage of unsafe Rust in a Rust crate and
       its dependencies. It provides information to aid auditing and guide
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix
index 299bcd7ffad7..4cf34bbe6a3d 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix
@@ -54,6 +54,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool to generate a new Rust project by leveraging a pre-existing git repository as a template";
+    mainProgram = "cargo-generate";
     homepage = "https://github.com/cargo-generate/cargo-generate";
     changelog = "https://github.com/cargo-generate/cargo-generate/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-graph/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-graph/default.nix
deleted file mode 100644
index 81416af36cfc..000000000000
--- a/nixpkgs/pkgs/development/tools/rust/cargo-graph/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib, rustPlatform, fetchFromGitHub }:
-rustPlatform.buildRustPackage rec {
-  pname = "cargo-graph";
-  version = "0.2.0-d895af1";
-
-  src = fetchFromGitHub {
-    owner = "kbknapp";
-    repo = "cargo-graph";
-    # The last release (v0.2.0) is from 2015. Since then there have been some
-    # bug fixes committed that would be good to have.
-    rev = "d895af1b7840c7ae8eddaf4e990bfa594c22ba01";
-    sha256 = "0myg26cssmbakz53dl61lswsbaqnjqlbc30c2571pq8f7gvz2qv5";
-  };
-
-  cargoSha256 = "0wyvly7aq4njlxnmgpfgbh08fxgqh85kw7d938pm6qxmj27zn4p2";
-
-  meta = with lib; {
-    description = "A cargo subcommand for creating GraphViz DOT files and dependency graphs";
-    license = with licenses; [ mit ];
-    maintainers = with maintainers; [ basvandijk matthiasbeyer ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-guppy/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-guppy/default.nix
index e62a0a9925fd..488c4284b175 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-guppy/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-guppy/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A command-line frontend for guppy";
+    mainProgram = "cargo-guppy";
     homepage = "https://github.com/guppy-rs/guppy/tree/main/cargo-guppy";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-hack/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-hack/default.nix
index dae53fafcc9f..a24fa814fc02 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-hack/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-hack/default.nix
@@ -2,20 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-hack";
-  version = "0.6.21";
+  version = "0.6.22";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-5vWrnujojleGUS7Ays8YX1TncK61+XHEJFqRhfxF3Ow=";
+    hash = "sha256-TlTm4pQrviKHusBBYLbpIX1dGcS4dSs1G/TfZT32CvY=";
   };
 
-  cargoHash = "sha256-yzunrPAo6/kgEomu5AHk/AB8EFqs96Jal1KHODSlyWc=";
+  cargoHash = "sha256-OFzeD15m6Ie2GrRlItsqDO3QGTBWkcsvSkanbzPdne4=";
 
   # some necessary files are absent in the crate version
   doCheck = false;
 
   meta = with lib; {
     description = "Cargo subcommand to provide various options useful for testing and continuous integration";
+    mainProgram = "cargo-hack";
     homepage = "https://github.com/taiki-e/cargo-hack";
     changelog = "https://github.com/taiki-e/cargo-hack/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-hakari/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-hakari/default.nix
index e58bf32863a8..6cf225e8de60 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-hakari/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-hakari/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Manage workspace-hack packages to speed up builds in large workspaces.";
+    mainProgram = "cargo-hakari";
     longDescription = ''
       cargo hakari is a command-line application to manage workspace-hack crates.
       Use it to speed up local cargo build and cargo check commands by 15-95%,
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-hf2/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-hf2/default.nix
index 92a0a5458175..b49f7904812f 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-hf2/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-hf2/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo Subcommand for Microsoft HID Flashing Library for UF2 Bootloaders ";
+    mainProgram = "cargo-hf2";
     homepage = "https://lib.rs/crates/cargo-hf2";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ astrobeastie ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-info/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-info/default.nix
index 9e05699e6c43..c2892ab70783 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-info/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-info/default.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo subcommand to show crates info from crates.io";
+    mainProgram = "cargo-info";
     homepage = "https://gitlab.com/imp/cargo-info";
     changelog = "https://gitlab.com/imp/cargo-info/-/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ mit asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix
index 4a9f642b700f..db646ec07c9e 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "See what Rust is doing behind the curtains";
+    mainProgram = "cargo-inspect";
     homepage = "https://github.com/mre/cargo-inspect";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ minijackson matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-insta/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-insta/default.nix
index 36f13c7fc890..50fc9abaac4d 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-insta/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-insta/default.nix
@@ -20,6 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A Cargo subcommand for snapshot testing";
+    mainProgram = "cargo-insta";
     homepage = "https://github.com/mitsuhiko/insta";
     changelog = "https://github.com/mitsuhiko/insta/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-kcov/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-kcov/default.nix
index 1b7c3b0eead9..68ed13d1ad01 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-kcov/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-kcov/default.nix
@@ -28,6 +28,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo subcommand to run kcov to get coverage report on Linux";
+    mainProgram = "cargo-kcov";
     homepage = "https://github.com/kennytm/cargo-kcov";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ saschagrunert matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-lambda/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-lambda/default.nix
index c93679d63d05..ada381da6f08 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-lambda/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-lambda/default.nix
@@ -69,6 +69,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A Cargo subcommand to help you work with AWS Lambda";
+    mainProgram = "cargo-lambda";
     homepage = "https://cargo-lambda.info";
     license = licenses.mit;
     maintainers = with maintainers; [ taylor1791 calavera ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-leptos/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-leptos/default.nix
index fd6bcf5aac68..be3a4af0a48d 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-leptos/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-leptos/default.nix
@@ -15,16 +15,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "cargo-leptos";
-  version = "0.2.15";
+  version = "0.2.16";
 
   src = fetchFromGitHub {
     owner = "leptos-rs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ojLAdudgset/5ynOoue8oJ5L3Z43GHDQBf0xnpkKDOg=";
+    hash = "sha256-yDBVo3GarKvcuMX7mxdxx0SJSJ5VOX3bUx6XmYxLfq4=";
   };
 
-  cargoHash = "sha256-OjA1M/PcMxQ7MvBf6hIn+TSCnFvIwQ+08xPcY+jWs9s=";
+  cargoHash = "sha256-DZbZ3SHGWvje0gEqlx2mdLvCR4U3Xzkp8gS9FIbxW6g=";
 
   buildInputs = optionals isDarwin [
     SystemConfiguration
@@ -38,6 +38,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A build tool for the Leptos web framework";
+    mainProgram = "cargo-leptos";
     homepage = "https://github.com/leptos-rs/cargo-leptos";
     changelog = "https://github.com/leptos-rs/cargo-leptos/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-license/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-license/default.nix
index 27798f4ca85e..ee00c71c11da 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-license/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-license/default.nix
@@ -13,6 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo subcommand to see license of dependencies";
+    mainProgram = "cargo-license";
     homepage = "https://github.com/onur/cargo-license";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ basvandijk figsoda matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-llvm-cov/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-llvm-cov/default.nix
index 34f524d5d102..ee945b4edc26 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-llvm-cov/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-llvm-cov/default.nix
@@ -26,7 +26,7 @@
 
 let
   pname = "cargo-llvm-cov";
-  version = "0.6.6";
+  version = "0.6.7";
 
   owner = "taiki-e";
   homepage = "https://github.com/${owner}/${pname}";
@@ -37,7 +37,7 @@ let
   cargoLock = fetchurl {
     name = "Cargo.lock";
     url = "https://crates.io/api/v1/crates/${pname}/${version}/download";
-    sha256 = "sha256-kY0Nb7bwF3o6DKQemZSwoZ55vw57jFGftNTpyprFxM0=";
+    sha256 = "sha256-2DjHXZ80sqr5uNqTwoECdzU1dxtu3hw9wJLA1XZq02Y=";
     downloadToTemp = true;
     postFetch = ''
       tar xzf $downloadedFile ${pname}-${version}/Cargo.lock
@@ -55,7 +55,7 @@ rustPlatform.buildRustPackage {
     inherit owner;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lcB/GWEIg5Y+VUSWphNwzmTuFROfMaTm17HyokoKzrI=";
+    sha256 = "sha256-wvyiIJd448EjqtBjrzS8XcWJerRSBctggwTZA0ku7pU=";
     leaveDotGit = true;
   };
 
@@ -64,7 +64,7 @@ rustPlatform.buildRustPackage {
     cp ${cargoLock} source/Cargo.lock
   '';
 
-  cargoSha256 = "sha256-DjWKjq5Vf4wOu6sDPT2yrGB00g80Z59oEpIUvIObjsQ=";
+  cargoSha256 = "sha256-TMBKsZsIPw42ZHVcUnwsTzJseD+6Z3o+ZlB2FzbjnBY=";
 
   # `cargo-llvm-cov` reads these environment variables to find these binaries,
   # which are needed to run the tests
@@ -86,6 +86,7 @@ rustPlatform.buildRustPackage {
     inherit homepage;
     changelog = homepage + "/blob/v${version}/CHANGELOG.md";
     description = "Cargo subcommand to easily use LLVM source-based code coverage";
+    mainProgram = "cargo-llvm-cov";
     longDescription = ''
       In order for this to work, you either need to run `rustup component add llvm-
       tools-preview` or install the `llvm-tools-preview` component using your Nix
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-llvm-lines/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-llvm-lines/default.nix
index 083494fb0b37..3a0edf3a54cb 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-llvm-lines/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-llvm-lines/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Count the number of lines of LLVM IR across all instantiations of a generic function";
+    mainProgram = "cargo-llvm-lines";
     homepage = "https://github.com/dtolnay/cargo-llvm-lines";
     changelog = "https://github.com/dtolnay/cargo-llvm-lines/releases/tag/${src.rev}";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-local-registry/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-local-registry/default.nix
index 6d7addf4117c..0b2f31d05a80 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-local-registry/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-local-registry/default.nix
@@ -49,6 +49,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A cargo subcommand to manage local registries";
+    mainProgram = "cargo-local-registry";
     homepage = "https://github.com/dhovart/cargo-local-registry";
     changelog = "https://github.com/dhovart/cargo-local-registry/releases/tag/${src.rev}";
     license = with licenses; [ asl20 mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-lock/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-lock/default.nix
index af5f5eae1719..6c1f35b1244d 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-lock/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-lock/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Self-contained Cargo.lock parser with graph analysis";
+    mainProgram = "cargo-lock";
     homepage = "https://github.com/rustsec/rustsec/tree/main/cargo-lock";
     changelog = "https://github.com/rustsec/rustsec/blob/cargo-lock/v${version}/cargo-lock/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-machete/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-machete/default.nix
index b9bbafafb380..9bd05294bec7 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-machete/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-machete/default.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A Cargo tool that detects unused dependencies in Rust projects";
+    mainProgram = "cargo-machete";
     homepage = "https://github.com/bnjbvr/cargo-machete";
     changelog = "https://github.com/bnjbvr/cargo-machete/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-mobile2/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-mobile2/default.nix
index 01184fe5007d..55ac718795d6 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-mobile2/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-mobile2/default.nix
@@ -12,7 +12,7 @@
 let
   inherit (darwin.apple_sdk.frameworks) CoreServices;
   pname = "cargo-mobile2";
-  version = "0.10.3";
+  version = "0.11.0";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -20,14 +20,14 @@ rustPlatform.buildRustPackage {
     owner = "tauri-apps";
     repo = pname;
     rev = "cargo-mobile2-v${version}";
-    hash = "sha256-awf4BvDUeRfg66mv7unN0uKviLI6f1m7s1sQKEeBm2E=";
+    hash = "sha256-1P9ImNyYU1dwGdwc1f6QSGm7H7D5uEozfSJqfEzla+A=";
   };
 
   # Manually specify the sourceRoot since this crate depends on other crates in the workspace. Relevant info at
   # https://discourse.nixos.org/t/difficulty-using-buildrustpackage-with-a-src-containing-multiple-cargo-workspaces/10202
   # sourceRoot = "${src.name}/tooling/cli";
 
-  cargoHash = "sha256-rqNhkuQVQ6MHUX1hcwqPS46LpsDZwJ6COvJztap7X4w=";
+  cargoHash = "sha256-DmZ7Bdx5EHFkN528EhhJnNOLXEcLglFHvdgywpE59uo=";
 
   preBuild = ''
     mkdir -p $out/share/
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-modules/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-modules/default.nix
index 122bbe2a0e90..b237c64dc2af 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-modules/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-modules/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A cargo plugin for showing a tree-like overview of a crate's modules";
+    mainProgram = "cargo-modules";
     homepage = "https://github.com/regexident/cargo-modules";
     changelog = "https://github.com/regexident/cargo-modules/blob/${version}/CHANGELOG.md";
     license = with licenses; [ mpl20 ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-mommy/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-mommy/default.nix
index 22bfe3ac1f20..e62f87969d7c 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-mommy/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-mommy/default.nix
@@ -13,6 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo wrapper that encourages you after running commands";
+    mainProgram = "cargo-mommy";
     homepage = "https://github.com/Gankra/cargo-mommy";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ GoldsteinE ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-msrv/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-msrv/default.nix
index f1b9e8eb0ec0..1492de85daa0 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-msrv/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-msrv/default.nix
@@ -47,6 +47,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo subcommand \"msrv\": assists with finding your minimum supported Rust version (MSRV)";
+    mainProgram = "cargo-msrv";
     homepage = "https://github.com/foresterre/cargo-msrv";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ otavio matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-mutants/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-mutants/default.nix
index 874195aaf842..ba54eeb56bd7 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-mutants/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-mutants/default.nix
@@ -27,6 +27,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A mutation testing tool for Rust";
+    mainProgram = "cargo-mutants";
     homepage = "https://github.com/sourcefrog/cargo-mutants";
     changelog = "https://github.com/sourcefrog/cargo-mutants/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-ndk/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-ndk/default.nix
index 4b1bccb1596e..12b0b7bbdfbf 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-ndk/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-ndk/default.nix
@@ -26,6 +26,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo extension for building Android NDK projects";
+    mainProgram = "cargo-ndk";
     homepage = "https://github.com/bbqsrc/cargo-ndk";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ mglolenstine ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-nextest/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-nextest/default.nix
index a9418f51c5fe..8972fef8825a 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-nextest/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-nextest/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-nextest";
-  version = "0.9.67";
+  version = "0.9.68";
 
   src = fetchFromGitHub {
     owner = "nextest-rs";
     repo = "nextest";
     rev = "cargo-nextest-${version}";
-    hash = "sha256-M2WkgECTAKux+sq+1rYt2rg/LP4ctMMprY3MsBO5cn4=";
+    hash = "sha256-LC+0s38ufmMrhNaKSn13jka/M7PG1+gJnqZCXJ7ef6I=";
   };
 
-  cargoHash = "sha256-hJAsmT8T3YGSWjishSQeVMFty6HmdNewRR9nr66fRN0=";
+  cargoHash = "sha256-E/bsVbSdFr1LMrIewsh15Vuk4Dt5UwETLCIhE7TT3kA=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.SystemConfiguration
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Next-generation test runner for Rust projects";
+    mainProgram = "cargo-nextest";
     homepage = "https://github.com/nextest-rs/nextest";
     changelog = "https://nexte.st/CHANGELOG.html";
     license = with licenses; [ mit asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-outdated/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-outdated/default.nix
index 2f3c6ae76c79..1df9d8d916de 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-outdated/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-outdated/default.nix
@@ -13,14 +13,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-outdated";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-rbfCrq9AwjrynNSklR1un3BUGv0kblwIxy72lTjEDVc=";
+    sha256 = "sha256-+GPP8Mdoc3LsR2puNu3/pzKg4Umvjd7CxivkHC8YxgM=";
   };
 
-  cargoHash = "sha256-kBolewLzKGq3rmSeWlLMDqKb4QQfWf3J6DnXTB0SV54=";
+  cargoHash = "sha256-Lkl7F5ZVlYLBeL3tubdMQ4/KbHYd2dD5IJAX9FO0XUg=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -34,6 +34,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A cargo subcommand for displaying when Rust dependencies are out of date";
+    mainProgram = "cargo-outdated";
     homepage = "https://github.com/kbknapp/cargo-outdated";
     changelog = "https://github.com/kbknapp/cargo-outdated/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-pgrx/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-pgrx/default.nix
index a0d2657702a5..3aa7003b7567 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-pgrx/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-pgrx/default.nix
@@ -1,38 +1,74 @@
-{ lib, stdenv, fetchCrate, rustPlatform, pkg-config, openssl, Security }:
+{ lib
+, darwin
+, fetchCrate
+, openssl
+, pkg-config
+, rustPlatform
+, stdenv
+}:
 
 let
-  pname = "cargo-pgrx";
-  version = "0.11.2";
-in
-rustPlatform.buildRustPackage rec {
-  inherit version pname;
+  generic =
+    { version
+    , hash
+    , cargoHash
+    }:
+    rustPlatform.buildRustPackage rec {
+      pname = "cargo-pgrx";
 
-  src = fetchCrate {
-    inherit version pname;
-    hash = "sha256-8NlpMDFaltTIA8G4JioYm8LaPJ2RGKH5o6sd6lBHmmM=";
-  };
+      inherit version;
+
+      src = fetchCrate {
+        inherit version pname hash;
+      };
+
+      inherit cargoHash;
 
-  cargoHash = "sha256-qTb3JV3u42EilaK2jP9oa5D09mkuHyRbGGRs9Rg4TzI=";
+      nativeBuildInputs = lib.optionals stdenv.isLinux [
+        pkg-config
+      ];
 
-  nativeBuildInputs = [ pkg-config ];
+      buildInputs = lib.optionals stdenv.isLinux [
+        openssl
+      ] ++ lib.optionals stdenv.isDarwin [
+        darwin.apple_sdk.frameworks.Security
+      ];
 
-  buildInputs = [ openssl ]
-    ++ lib.optionals stdenv.isDarwin [ Security ];
+      preCheck = ''
+        export PGRX_HOME=$(mktemp -d)
+      '';
 
-  preCheck = ''
-    export PGRX_HOME=$(mktemp -d)
-  '';
+      checkFlags = [
+        # requires pgrx to be properly initialized with cargo pgrx init
+        "--skip=command::schema::tests::test_parse_managed_postmasters"
+      ];
 
-  checkFlags = [
-    # requires pgrx to be properly initialized with cargo pgrx init
-    "--skip=command::schema::tests::test_parse_managed_postmasters"
-  ];
+      meta = with lib; {
+        description = "Build Postgres Extensions with Rust";
+        homepage = "https://github.com/pgcentralfoundation/pgrx";
+        changelog = "https://github.com/pgcentralfoundation/pgrx/releases/tag/v${version}";
+        license = licenses.mit;
+        maintainers = with maintainers; [ happysalada ];
+        mainProgram = "cargo-pgrx";
+      };
+    };
+in
+{
+  cargo-pgrx_0_10_2 = generic {
+    version = "0.10.2";
+    hash = "sha256-FqjfbJmSy5UCpPPPk4bkEyvQCnaH9zYtkI7txgIn+ls=";
+    cargoHash = "sha256-syZ3cQq8qDHBLvqmNDGoxeK6zXHJ47Jwkw3uhaXNCzI=";
+  };
+
+  cargo-pgrx_0_11_2 = generic {
+    version = "0.11.2";
+    hash = "sha256-8NlpMDFaltTIA8G4JioYm8LaPJ2RGKH5o6sd6lBHmmM=";
+    cargoHash = "sha256-qTb3JV3u42EilaK2jP9oa5D09mkuHyRbGGRs9Rg4TzI=";
+  };
 
-  meta = with lib; {
-    description = "Build Postgres Extensions with Rust!";
-    homepage = "https://github.com/tcdi/pgrx";
-    changelog = "https://github.com/tcdi/pgrx/releases/tag/v${version}";
-    license = licenses.mit;
-    maintainers = with maintainers; [ happysalada ];
+  cargo-pgrx_0_11_3 = generic {
+    version = "0.11.3";
+    hash = "sha256-UHIfwOdXoJvR4Svha6ud0FxahP1wPwUtviUwUnTmLXU=";
+    cargoHash = "sha256-j4HnD8Zt9uhlV5N7ldIy9564o9qFEqs5KfXHmnQ1WEw=";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_6_1.nix b/nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_6_1.nix
index 004b6ed27543..8dbc22cdfd49 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_6_1.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_6_1.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo subcommand for ‘pgx’ to make Postgres extension development easy";
+    mainProgram = "cargo-pgx";
     homepage = "https://github.com/tcdi/pgx/tree/v${version}/cargo-pgx";
     license = licenses.mit;
     maintainers = with maintainers; [ typetetris ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_7_1.nix b/nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_7_1.nix
index 408244f638be..6dd8a0661bed 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_7_1.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_7_1.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo subcommand for ‘pgx’ to make Postgres extension development easy";
+    mainProgram = "cargo-pgx";
     homepage = "https://github.com/tcdi/pgx/tree/v${version}/cargo-pgx";
     license = licenses.mit;
     maintainers = with maintainers; [ typetetris ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_7_4.nix b/nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_7_4.nix
index e54a3c6a877e..0f2b3ef35c22 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_7_4.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-pgx/0_7_4.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo subcommand for ‘pgx’ to make Postgres extension development easy";
+    mainProgram = "cargo-pgx";
     homepage = "https://github.com/tcdi/pgx/tree/v${version}/cargo-pgx";
     license = licenses.mit;
     maintainers = with maintainers; [ typetetris ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-play/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-play/default.nix
index 441b906ab343..94520d0d5669 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-play/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-play/default.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Run your rust code without setting up cargo";
+    mainProgram = "cargo-play";
     homepage = "https://github.com/fanzeyi/cargo-play";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-profiler/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-profiler/default.nix
index 88a04885a740..595bf6d8d032 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-profiler/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-profiler/default.nix
@@ -26,6 +26,7 @@ in buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo subcommand for profiling Rust binaries";
+    mainProgram = "cargo-profiler";
     homepage = "https://github.com/svenstaro/cargo-profiler";
     license = licenses.mit;
     maintainers = with maintainers; [ lucperkins ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-public-api/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-public-api/default.nix
index 2b5a83f8d0c1..da51224ccc65 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-public-api/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-public-api/default.nix
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "List and diff the public API of Rust library crates between releases and commits. Detect breaking API changes and semver violations";
+    mainProgram = "cargo-public-api";
     homepage = "https://github.com/Enselic/cargo-public-api";
     changelog = "https://github.com/Enselic/cargo-public-api/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-readme/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-readme/default.nix
index 15c5ad514524..2b5fb7abc69b 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-readme/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-readme/default.nix
@@ -20,6 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Generate README.md from docstrings";
+    mainProgram = "cargo-readme";
     homepage = "https://github.com/livioribeiro/cargo-readme";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ baloo matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-release/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-release/default.nix
index 8e9c84797d94..31e03dfeaa4e 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-release/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-release/default.nix
@@ -49,6 +49,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = ''Cargo subcommand "release": everything about releasing a rust crate'';
+    mainProgram = "cargo-release";
     homepage = "https://github.com/crate-ci/cargo-release";
     changelog = "https://github.com/crate-ci/cargo-release/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-risczero/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-risczero/default.nix
index 1bb68d7bbd98..51969c9fef96 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-risczero/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-risczero/default.nix
@@ -33,6 +33,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo extension to help create, manage, and test RISC Zero projects.";
+    mainProgram = "cargo-risczero";
     homepage = "https://risczero.com";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ cameronfyfe ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-rr/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-rr/default.nix
index 84ec62adf87c..6c3780719f89 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-rr/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-rr/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cargo subcommand \"rr\": a light wrapper around rr, the time-travelling debugger";
+    mainProgram = "cargo-rr";
     homepage = "https://github.com/danielzfranklin/cargo-rr";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ otavio matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-run-bin/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-run-bin/default.nix
index d19cf8e9333e..a12ebb8caf9b 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-run-bin/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-run-bin/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Build, cache, and run binaries scoped in Cargo.toml rather than installing globally. This acts similarly to npm run and gomodrun, and allows your teams to always be running the same tooling versions";
+    mainProgram = "cargo-bin";
     homepage = "https://github.com/dustinblackman/cargo-run-bin";
     changelog = "https://github.com/dustinblackman/cargo-run-bin/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-semver-checks/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-semver-checks/default.nix
index 77e46ececc5a..fa6bc5ce3634 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-semver-checks/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-semver-checks/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-semver-checks";
-  version = "0.29.1";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner = "obi1kenobi";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Eq8NLfgFoO/Upq+eO8kKDMtxgEMQYTG9B6TdCZjGdzc=";
+    hash = "sha256-5+UE1Ka2pciuNrkrPDCJMp12+IUbgq7k3cKSP5pahw4=";
   };
 
-  cargoHash = "sha256-AMI997Tz1l7qUmdGPVOtb2KENX27ZfM0P7snzP3aRXU=";
+  cargoHash = "sha256-GuajrFdPlgneL95eWT3n2MdzfsbuID/pI9ED8TlVOCo=";
 
   nativeBuildInputs = [
     cmake
@@ -52,6 +52,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool to scan your Rust crate for semver violations";
+    mainProgram = "cargo-semver-checks";
     homepage = "https://github.com/obi1kenobi/cargo-semver-checks";
     changelog = "https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v${version}";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-shuttle/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-shuttle/default.nix
index befba6ffac56..fcc7ff4756f9 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-shuttle/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-shuttle/default.nix
@@ -49,6 +49,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A cargo command for the shuttle platform";
+    mainProgram = "cargo-shuttle";
     homepage = "https://shuttle.rs";
     changelog = "https://github.com/shuttle-hq/shuttle/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-sort/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-sort/default.nix
index bb0d96bdd638..ab85a75d916e 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-sort/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-sort/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool to check that your Cargo.toml dependencies are sorted alphabetically";
+    mainProgram = "cargo-sort";
     homepage = "https://github.com/devinr528/cargo-sort";
     changelog = "https://github.com/devinr528/cargo-sort/blob/v${version}/changelog.md";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-spellcheck/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-spellcheck/default.nix
index 374517aeef2d..23de1bc2a070 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-spellcheck/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-spellcheck/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Checks rust documentation for spelling and grammar mistakes";
+    mainProgram = "cargo-spellcheck";
     homepage = "https://github.com/drahnr/cargo-spellcheck";
     changelog = "https://github.com/drahnr/cargo-spellcheck/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-supply-chain/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-supply-chain/default.nix
index bedbc17a22a6..395a48498237 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-supply-chain/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-supply-chain/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Gather author, contributor and publisher data on crates in your dependency graph";
+    mainProgram = "cargo-supply-chain";
     homepage = "https://github.com/rust-secure-code/cargo-supply-chain";
     changelog = "https://github.com/rust-secure-code/cargo-supply-chain/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit zlib ]; # any of three
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix
index 1c5564c72332..0fc6a01be099 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix
@@ -20,6 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A Cargo subcommand for cleaning up unused build files generated by Cargo";
+    mainProgram = "cargo-sweep";
     homepage = "https://github.com/holmgr/cargo-sweep";
     license = licenses.mit;
     maintainers = with maintainers; [ xrelkd matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix
index a761e42c1540..c4205fb1a660 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A cargo plugin that generates a Markdown section in your README based on your Rust documentation";
+    mainProgram = "cargo-sync-readme";
     homepage = "https://github.com/phaazon/cargo-sync-readme";
     changelog = "https://github.com/phaazon/cargo-sync-readme/blob/${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-tally/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-tally/default.nix
index cac76677c331..8e1bd746857a 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-tally/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-tally/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-tally";
-  version = "1.0.39";
+  version = "1.0.41";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-7YUS+MaUmZ9dopeailASZQdmJiyVLwdXV0agA1upXsE=";
+    hash = "sha256-HUhFy+7BlFHmffmyQ4zJSPBI6kBxemWAHQlElfuTJn0=";
   };
 
-  cargoHash = "sha256-eEfuFYl949Ps9cstO61j4GTdMHk2SjpRpWxK4onTgfw=";
+  cargoHash = "sha256-KtyzDx8xWjaepdt1bej3X/iofGV5UHBub3EzhO5cxBY=";
 
   buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [
     DiskArbitration
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Graph the number of crates that depend on your crate over time";
+    mainProgram = "cargo-tally";
     homepage = "https://github.com/dtolnay/cargo-tally";
     changelog = "https://github.com/dtolnay/cargo-tally/releases/tag/${version}";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-tauri/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-tauri/default.nix
index 870285879d76..02a06edf5d23 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-tauri/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-tauri/default.nix
@@ -38,6 +38,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Build smaller, faster, and more secure desktop applications with a web frontend";
+    mainProgram = "cargo-tauri";
     homepage = "https://tauri.app/";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ dit7ya happysalada ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-temp/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-temp/default.nix
index 9df84462efa7..d5a0e2bba146 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-temp/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-temp/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A CLI tool that allow you to create a temporary new Rust project using cargo with already installed dependencies";
+    mainProgram = "cargo-temp";
     homepage = "https://github.com/yozhgoor/cargo-temp";
     changelog = "https://github.com/yozhgoor/cargo-temp/releases/tag/${src.rev}";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-toml-lint/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-toml-lint/default.nix
index 187dc636afbc..53595043342b 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-toml-lint/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-toml-lint/default.nix
@@ -16,6 +16,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple linter for Cargo.toml manifests";
+    mainProgram = "cargo-toml-lint";
     homepage = "https://github.com/fuellabs/cargo-toml-lint";
     changelog = "https://github.com/fuellabs/cargo-toml-lint/releases/tag/v${version}";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix
index e82d9b01ce1f..e54021554004 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-udeps";
-  version = "0.1.45";
+  version = "0.1.47";
 
   src = fetchFromGitHub {
     owner = "est31";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-pfEvztV/DAPPOxm8An/PsBdoF8S/AK+/S+vllezYCeo=";
+    sha256 = "sha256-1XnCGbOkAmQycwAAEbkoX9xHqBZWYM9v5fp8BdFv7RM=";
   };
 
-  cargoHash = "sha256-SYlFENdnMeKxeDDHw73/edu1807rgrg8ncWTBsmgPtY=";
+  cargoHash = "sha256-awEqrvmu9Kgqlz43/yJFM45WfUXZPLix5LKLtwiXV7U=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-ui/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-ui/default.nix
index 870b411afc9e..e58c34a03f4f 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-ui/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-ui/default.nix
@@ -54,6 +54,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A GUI for Cargo";
+    mainProgram = "cargo-ui";
     homepage = "https://github.com/slint-ui/cargo-ui";
     changelog = "https://github.com/slint-ui/cargo-ui/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit asl20 gpl3Only ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix
index aa6b38bf398b..e084c528c9c2 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-valgrind/default.nix
@@ -36,6 +36,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = ''Cargo subcommand "valgrind": runs valgrind and collects its output in a helpful manner'';
+    mainProgram = "cargo-valgrind";
     homepage = "https://github.com/jfrimmel/cargo-valgrind";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ otavio matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-vet/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-vet/default.nix
index 817307c55a59..a27e2f375ebd 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-vet/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-vet/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool to help projects ensure that third-party Rust dependencies have been audited by a trusted source";
+    mainProgram = "cargo-vet";
     homepage = "https://mozilla.github.io/cargo-vet";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ figsoda jk ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-wasi/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-wasi/default.nix
index 7fcdf761ad2f..bead01fed4ed 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-wasi/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-wasi/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A lightweight Cargo subcommand to build code for the wasm32-wasi target";
+    mainProgram = "cargo-wasi";
     homepage = "https://bytecodealliance.github.io/cargo-wasi";
     license = licenses.asl20;
     maintainers = with maintainers; [ lucperkins ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix
index fe748a7dbeb5..ff9d72db58d9 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A Cargo subcommand for watching over Cargo project's source";
+    mainProgram = "cargo-watch";
     homepage = "https://github.com/watchexec/cargo-watch";
     license = licenses.cc0;
     maintainers = with maintainers; [ xrelkd ivan matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-web/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-web/default.nix
index 2c35e951cda1..462e98d6eaa6 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-web/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-web/default.nix
@@ -20,6 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A Cargo subcommand for the client-side Web";
+    mainProgram = "cargo-web";
     homepage = "https://github.com/koute/cargo-web";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ kevincox ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-whatfeatures/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-whatfeatures/default.nix
index b2a5993343ef..fdae63bd50b4 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-whatfeatures/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-whatfeatures/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-whatfeatures";
-  version = "0.9.9";
+  version = "0.9.10";
 
   src = fetchFromGitHub {
     owner = "museun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-YENzXU7sud3gsh32zh1EwGEgfvnIIa4FzHMwGKuI3JA=";
+    sha256 = "sha256-80VbQyOg6jvX98QRcCVN/wwhAm4bO/UfHEIv4gP8IlA=";
   };
 
-  cargoSha256 = "sha256-mUBqygJBisZl3wJh/pXVLLq7P6EWz0Pd2j+iu2pz7Os=";
+  cargoHash = "sha256-mp9KUJuwSwRuxQAEilYwNZwqe3ipN4JzsaO5Pi3V9xg=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -20,6 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple cargo plugin to get a list of features for a specific crate";
+    mainProgram = "cargo-whatfeatures";
     homepage = "https://github.com/museun/cargo-whatfeatures";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ ivan-babrou matthiasbeyer ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-wipe/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-wipe/default.nix
index c14f842a7398..86a2dc58050b 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-wipe/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-wipe/default.nix
@@ -23,6 +23,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = ''Cargo subcommand "wipe": recursively finds and optionally wipes all "target" or "node_modules" folders'';
+    mainProgram = "cargo-wipe";
     homepage = "https://github.com/mihai-dinculescu/cargo-wipe";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ otavio ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-zigbuild/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-zigbuild/default.nix
index adc845c67ea7..ab0c149a09d5 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-zigbuild/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-zigbuild/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool to compile Cargo projects with zig as the linker";
+    mainProgram = "cargo-zigbuild";
     homepage = "https://github.com/messense/cargo-zigbuild";
     changelog = "https://github.com/messense/cargo-zigbuild/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo2junit/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo2junit/default.nix
index dd65d2422a3c..6e10cc1fcb35 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo2junit/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo2junit/default.nix
@@ -13,6 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Converts cargo's json output (from stdin) to JUnit XML (to stdout).";
+    mainProgram = "cargo2junit";
     homepage = "https://github.com/johnterickson/cargo2junit";
     license = licenses.mit;
     maintainers = with maintainers; [ alekseysidorov ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cauwugo/default.nix b/nixpkgs/pkgs/development/tools/rust/cauwugo/default.nix
index 119e0f59841d..a4a199a2c70c 100644
--- a/nixpkgs/pkgs/development/tools/rust/cauwugo/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cauwugo/default.nix
@@ -23,6 +23,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "An alternative cargo frontend that implements dynamic shell completion for usual cargo commands";
+    mainProgram = "cauwugo";
     homepage = "https://github.com/pacak/bpaf/tree/master/bpaf_cauwugo";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix b/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix
index 2d351adf5ad1..ed4841505bce 100644
--- a/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix
@@ -44,6 +44,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     changelog = "https://github.com/mozilla/cbindgen/blob/v${version}/CHANGES";
     description = "A project for generating C bindings from Rust code";
+    mainProgram = "cbindgen";
     homepage = "https://github.com/mozilla/cbindgen";
     license = licenses.mpl20;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix b/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix
index 62084be4b5a8..a19c47271c57 100644
--- a/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/crate2nix/default.nix
@@ -43,6 +43,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A Nix build file generator for Rust crates.";
+    mainProgram = "crate2nix";
     longDescription = ''
       Crate2nix generates Nix files from Cargo.toml/lock files
       so that you can build every crate individually in a Nix sandbox.
diff --git a/nixpkgs/pkgs/development/tools/rust/critcmp/default.nix b/nixpkgs/pkgs/development/tools/rust/critcmp/default.nix
index dd735f1adc49..3035e6b97937 100644
--- a/nixpkgs/pkgs/development/tools/rust/critcmp/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/critcmp/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A command line tool for comparing benchmarks run by Criterion";
+    mainProgram = "critcmp";
     homepage = "https://github.com/BurntSushi/critcmp";
     license = with licenses; [ mit unlicense ];
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/rust/genemichaels/default.nix b/nixpkgs/pkgs/development/tools/rust/genemichaels/default.nix
index 673519aeabc4..aec8003bbd52 100644
--- a/nixpkgs/pkgs/development/tools/rust/genemichaels/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/genemichaels/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
   };
   meta = {
     description = "Even formats macros";
+    mainProgram = "genemichaels";
     homepage = "https://github.com/andrewbaxter/genemichaels";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.anselmschueler ];
diff --git a/nixpkgs/pkgs/development/tools/rust/gitlab-clippy/default.nix b/nixpkgs/pkgs/development/tools/rust/gitlab-clippy/default.nix
index 2269f812f424..62b3046f05d8 100644
--- a/nixpkgs/pkgs/development/tools/rust/gitlab-clippy/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/gitlab-clippy/default.nix
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage rec {
   meta = {
     homepage = "https://gitlab.com/dlalic/gitlab-clippy";
     description = "Convert clippy warnings into GitLab Code Quality report";
+    mainProgram = "gitlab-clippy";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ wucke13 ];
   };
diff --git a/nixpkgs/pkgs/development/tools/rust/humility/default.nix b/nixpkgs/pkgs/development/tools/rust/humility/default.nix
index 399d9dcf41b3..a8c157f9ac4d 100644
--- a/nixpkgs/pkgs/development/tools/rust/humility/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/humility/default.nix
@@ -45,6 +45,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Debugger for Hubris";
+    mainProgram = "humility";
     homepage = "https://github.com/oxidecomputer/humility";
     license = with licenses; [ mpl20 ];
     maintainers = with maintainers; [ therishidesai ];
diff --git a/nixpkgs/pkgs/development/tools/rust/leptosfmt/default.nix b/nixpkgs/pkgs/development/tools/rust/leptosfmt/default.nix
index 2730453d2ae2..7c174c4249ef 100644
--- a/nixpkgs/pkgs/development/tools/rust/leptosfmt/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/leptosfmt/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A formatter for the leptos view! macro";
+    mainProgram = "leptosfmt";
     homepage = "https://github.com/bram209/leptosfmt";
     changelog = "https://github.com/bram209/leptosfmt/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/maturin/default.nix b/nixpkgs/pkgs/development/tools/rust/maturin/default.nix
index fa17f4f03624..aa95fcf3dbec 100644
--- a/nixpkgs/pkgs/development/tools/rust/maturin/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/maturin/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "maturin";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "PyO3";
     repo = "maturin";
     rev = "v${version}";
-    hash = "sha256-mD/7wWeclV5Xqii9hcZMustvR6tf7MoyTZ3WsvEc61U=";
+    hash = "sha256-DXPhe6QI1IEPA/Y+qDMu92i18uhXCN0VVJpCoAIDs4c=";
   };
 
-  cargoHash = "sha256-w8XpCJ8GS2VszW/9/O2suy82zVO1UpWTrU1lFGYwhvw=";
+  cargoHash = "sha256-3K131d7bDvfmAhYWFNyY+qwi7F8vKk3kw4L+fM0LKMo=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ];
 
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Build and publish Rust crates Python packages";
+    mainProgram = "maturin";
     longDescription = ''
       Build and publish Rust crates with PyO3, rust-cpython, and
       cffi bindings as well as Rust binaries as Python packages.
diff --git a/nixpkgs/pkgs/development/tools/rust/ograc/default.nix b/nixpkgs/pkgs/development/tools/rust/ograc/default.nix
index 4361a225498d..83938a505316 100644
--- a/nixpkgs/pkgs/development/tools/rust/ograc/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/ograc/default.nix
@@ -13,6 +13,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "like cargo, but backwards";
+    mainProgram = "ograc";
     homepage = "https://crates.io/crates/ograc";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ sciencentistguy ];
diff --git a/nixpkgs/pkgs/development/tools/rust/panamax/default.nix b/nixpkgs/pkgs/development/tools/rust/panamax/default.nix
index a86867eded08..4eb496376039 100644
--- a/nixpkgs/pkgs/development/tools/rust/panamax/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/panamax/default.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Mirror rustup and crates.io repositories for offline Rust and cargo usage";
+    mainProgram = "panamax";
     homepage = "https://github.com/panamax-rs/panamax";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/rust/probe-run/default.nix b/nixpkgs/pkgs/development/tools/rust/probe-run/default.nix
index 30ca65f776b0..2081d41eb015 100644
--- a/nixpkgs/pkgs/development/tools/rust/probe-run/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/probe-run/default.nix
@@ -37,6 +37,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Run embedded programs just like native ones";
+    mainProgram = "probe-run";
     homepage = "https://github.com/knurling-rs/probe-run";
     changelog = "https://github.com/knurling-rs/probe-run/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/tools/rust/ra-multiplex/default.nix b/nixpkgs/pkgs/development/tools/rust/ra-multiplex/default.nix
index ce579c76eeb0..4dd7d2cd063d 100644
--- a/nixpkgs/pkgs/development/tools/rust/ra-multiplex/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/ra-multiplex/default.nix
@@ -27,6 +27,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "A multiplexer for rust-analyzer";
+    mainProgram = "ra-multiplex";
     homepage = "https://github.com/pr2502/ra-multiplex";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ norfair ];
diff --git a/nixpkgs/pkgs/development/tools/rust/rhack/default.nix b/nixpkgs/pkgs/development/tools/rust/rhack/default.nix
index d141c43dd914..967a8a9216f7 100644
--- a/nixpkgs/pkgs/development/tools/rust/rhack/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rhack/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Temporary edit external crates that your project depends on";
+    mainProgram = "rhack";
     homepage = "https://github.com/nakabonne/rhack";
     license = licenses.bsd3;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/rust/roogle/default.nix b/nixpkgs/pkgs/development/tools/rust/roogle/default.nix
index 7def38d19913..f95cad8588d4 100644
--- a/nixpkgs/pkgs/development/tools/rust/roogle/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/roogle/default.nix
@@ -20,6 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A Rust API search engine which allows you to search functions by names and type signatures";
+    mainProgram = "roogle";
     homepage = "https://github.com/hkmatsumoto/roogle";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
index e202baeb92f6..04bb998ab551 100644
--- a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -13,14 +13,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-analyzer-unwrapped";
-  version = "2024-02-26";
-  cargoSha256 = "sha256-qlLHynifRrMo1ZHFKDTXjsUnF6BFiiBH87ILBWCkDmE=";
+  version = "2024-03-18";
+  cargoSha256 = "sha256-CZC90HtAuK66zXDCHam9YJet9C62psxkHeJ/+1vIjTg=";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = "rust-analyzer";
     rev = version;
-    sha256 = "sha256-IBHMNEe3lspVdIzjpM2OVZiBFmFw1DKtdgVN5G41pRc=";
+    sha256 = "sha256-Jd6pmXlwKk5uYcjyO/8BfbUVmx8g31Qfk7auI2IG66A=";
   };
 
   cargoBuildFlags = [ "--bin" "rust-analyzer" "--bin" "rust-analyzer-proc-macro-srv" ];
diff --git a/nixpkgs/pkgs/development/tools/rust/rust-audit-info/default.nix b/nixpkgs/pkgs/development/tools/rust/rust-audit-info/default.nix
index fbfae0042d59..afd53df7e147 100644
--- a/nixpkgs/pkgs/development/tools/rust/rust-audit-info/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rust-audit-info/default.nix
@@ -13,6 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A command-line tool to extract the dependency trees embedded in binaries by cargo-auditable";
+    mainProgram = "rust-audit-info";
     homepage = "https://github.com/rust-secure-code/cargo-auditable/tree/master/rust-audit-info";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/rust/rust-script/default.nix b/nixpkgs/pkgs/development/tools/rust/rust-script/default.nix
index 417b173935f5..95f60f19011a 100644
--- a/nixpkgs/pkgs/development/tools/rust/rust-script/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rust-script/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Run Rust files and expressions as scripts without any setup or compilation step";
+    mainProgram = "rust-script";
     homepage = "https://rust-script.org";
     changelog = "https://github.com/fornwall/rust-script/releases/tag/${version}";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/rust/rustup-toolchain-install-master/default.nix b/nixpkgs/pkgs/development/tools/rust/rustup-toolchain-install-master/default.nix
index 8289e56e81d4..d71b1e655d78 100644
--- a/nixpkgs/pkgs/development/tools/rust/rustup-toolchain-install-master/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rustup-toolchain-install-master/default.nix
@@ -58,6 +58,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Install a rustc master toolchain usable from rustup";
+    mainProgram = "rustup-toolchain-install-master";
     homepage = "https://github.com/kennytm/rustup-toolchain-install-master";
     license = licenses.mit;
     maintainers = with maintainers; [ davidtwco ];
diff --git a/nixpkgs/pkgs/development/tools/rust/rusty-man/default.nix b/nixpkgs/pkgs/development/tools/rust/rusty-man/default.nix
index 879cec5ebe6d..34524106c988 100644
--- a/nixpkgs/pkgs/development/tools/rust/rusty-man/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rusty-man/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A command-line viewer for documentation generated by rustdoc";
+    mainProgram = "rusty-man";
     homepage = "https://git.sr.ht/~ireas/rusty-man";
     changelog = "https://git.sr.ht/~ireas/rusty-man/tree/v${version}/item/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/rust/rustycli/default.nix b/nixpkgs/pkgs/development/tools/rust/rustycli/default.nix
index 451ae2f95611..09bc2e44f748 100644
--- a/nixpkgs/pkgs/development/tools/rust/rustycli/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rustycli/default.nix
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Access the rust playground right in terminal";
+    mainProgram = "rustycli";
     homepage = "https://github.com/pwnwriter/rustycli";
     changelog = "https://github.com/pwnwriter/rustycli/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/rust/specr-transpile/default.nix b/nixpkgs/pkgs/development/tools/rust/specr-transpile/default.nix
index 10a1acfac757..bb15e8c3fa3f 100644
--- a/nixpkgs/pkgs/development/tools/rust/specr-transpile/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/specr-transpile/default.nix
@@ -16,6 +16,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Converts Specr lang code to Rust";
+    mainProgram = "specr-transpile";
     homepage = "https://github.com/RalfJung/minirust-tooling";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix b/nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix
index 55cf34bdac28..81c02a0d636b 100644
--- a/nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/sqlx-cli/default.nix
@@ -16,16 +16,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sqlx-cli";
-  version = "0.7.3";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "launchbadge";
     repo = "sqlx";
     rev = "v${version}";
-    hash = "sha256-AKVNyuV9jwzmsy6tHkGkLj1fhVT8XYvEn2Ip2wCKDxI=";
+    hash = "sha256-q1o2pNKfvenpRwiYgIKkOYNcajgIhrhCjFC7bbEyLE4=";
   };
 
-  cargoHash = "sha256-F3FLu/n57F8psk+d0Hf+HnqV/DvEFQwRefu/4C8A1sU=";
+  cargoHash = "sha256-sMyK1v4pJmmlN47mvgUkpLBjcpmT346VSp984IpvVWY=";
 
   # Prepare the Cargo.lock for offline use.
   # See https://github.com/NixOS/nixpkgs/issues/261412
diff --git a/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix b/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix
index ad7c55489482..095018c4e862 100644
--- a/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Generate Rust register maps (`struct`s) from SVD files";
+    mainProgram = "svd2rust";
     homepage = "https://github.com/rust-embedded/svd2rust";
     changelog = "https://github.com/rust-embedded/svd2rust/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit asl20 ];
diff --git a/nixpkgs/pkgs/development/tools/rust/typeshare/default.nix b/nixpkgs/pkgs/development/tools/rust/typeshare/default.nix
index 9d9c554daaee..85880dca6571 100644
--- a/nixpkgs/pkgs/development/tools/rust/typeshare/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/typeshare/default.nix
@@ -30,6 +30,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Command Line Tool for generating language files with typeshare";
+    mainProgram = "typeshare";
     homepage = "https://github.com/1password/typeshare";
     changelog = "https://github.com/1password/typeshare/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/tools/rye/Cargo.lock b/nixpkgs/pkgs/development/tools/rye/Cargo.lock
index 0bec4dca2991..4fa64e779282 100644
--- a/nixpkgs/pkgs/development/tools/rye/Cargo.lock
+++ b/nixpkgs/pkgs/development/tools/rye/Cargo.lock
@@ -631,6 +631,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "dotenvy"
+version = "0.15.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
+
+[[package]]
 name = "either"
 version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1795,7 +1801,7 @@ dependencies = [
 
 [[package]]
 name = "rye"
-version = "0.28.0"
+version = "0.31.0"
 dependencies = [
  "age",
  "anyhow",
@@ -1808,6 +1814,7 @@ dependencies = [
  "curl",
  "decompress",
  "dialoguer",
+ "dotenvy",
  "flate2",
  "fslock",
  "git-testament",
diff --git a/nixpkgs/pkgs/development/tools/rye/default.nix b/nixpkgs/pkgs/development/tools/rye/default.nix
index b6452b19afa8..ac748516386e 100644
--- a/nixpkgs/pkgs/development/tools/rye/default.nix
+++ b/nixpkgs/pkgs/development/tools/rye/default.nix
@@ -12,13 +12,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rye";
-  version = "0.28.0";
+  version = "0.31.0";
 
   src = fetchFromGitHub {
     owner = "mitsuhiko";
     repo = "rye";
     rev = "refs/tags/${version}";
-    hash = "sha256-i40VpPDK991mgBdGtufMFXuQuKuvqr0qIvl7q2KXQrg=";
+    hash = "sha256-hPfMKp5FUbIKKKFfoS/pxseWmhqW8UOts7DOcRzgHWU=";
   };
 
   cargoLock = {
@@ -67,12 +67,14 @@ rustPlatform.buildRustPackage rec {
     "--skip=test_config_incompatible_format_and_show_path"
     "--skip=test_config_save_missing_folder"
     "--skip=test_config_show_path"
+    "--skip=test_dotenv"
     "--skip=test_empty_sync"
     "--skip=test_fetch"
     "--skip=test_init_default"
     "--skip=test_init_lib"
     "--skip=test_init_script"
     "--skip=test_lint_and_format"
+    "--skip=test_publish_outside_project"
     "--skip=test_version"
   ];
 
diff --git a/nixpkgs/pkgs/development/tools/sca2d/default.nix b/nixpkgs/pkgs/development/tools/sca2d/default.nix
index eb745e5bd2c6..c23714bc872f 100644
--- a/nixpkgs/pkgs/development/tools/sca2d/default.nix
+++ b/nixpkgs/pkgs/development/tools/sca2d/default.nix
@@ -42,6 +42,7 @@ python.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "An experimental static code analyser for OpenSCAD";
+    mainProgram = "sca2d";
     homepage = "https://gitlab.com/bath_open_instrumentation_group/sca2d";
     changelog = "https://gitlab.com/bath_open_instrumentation_group/sca2d/-/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/development/tools/scalafix/default.nix b/nixpkgs/pkgs/development/tools/scalafix/default.nix
index 3d57bdbd92c5..36e79c74365f 100644
--- a/nixpkgs/pkgs/development/tools/scalafix/default.nix
+++ b/nixpkgs/pkgs/development/tools/scalafix/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Refactoring and linting tool for Scala";
+    mainProgram = "scalafix";
     homepage = "https://scalacenter.github.io/scalafix/";
     license = licenses.bsd3;
     maintainers = [ maintainers.tomahna ];
diff --git a/nixpkgs/pkgs/development/tools/scenebuilder/default.nix b/nixpkgs/pkgs/development/tools/scenebuilder/default.nix
index 44e81b20bc2b..e10ebf1e5519 100644
--- a/nixpkgs/pkgs/development/tools/scenebuilder/default.nix
+++ b/nixpkgs/pkgs/development/tools/scenebuilder/default.nix
@@ -66,6 +66,7 @@ maven'.buildMavenPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "A visual, drag'n'drop, layout tool for designing JavaFX application user interfaces.";
+    mainProgram = "scenebuilder";
     homepage = "https://gluonhq.com/products/scene-builder/";
     sourceProvenance = with sourceTypes; [
       fromSource
diff --git a/nixpkgs/pkgs/development/tools/scenic-view/default.nix b/nixpkgs/pkgs/development/tools/scenic-view/default.nix
index 3d0c69d66cf7..ff09f0cb4707 100644
--- a/nixpkgs/pkgs/development/tools/scenic-view/default.nix
+++ b/nixpkgs/pkgs/development/tools/scenic-view/default.nix
@@ -105,6 +105,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "JavaFx application to visualize and modify the scenegraph of running JavaFx applications.";
+    mainProgram = "scenic-view";
     longDescription = ''
       A JavaFX application designed to make it simple to understand the current state of your application scenegraph
       and to also easily manipulate properties of the scenegraph without having to keep editing your code.
diff --git a/nixpkgs/pkgs/development/tools/schemacrawler/default.nix b/nixpkgs/pkgs/development/tools/schemacrawler/default.nix
index 29cb24f1faf2..0d4ffad56977 100644
--- a/nixpkgs/pkgs/development/tools/schemacrawler/default.nix
+++ b/nixpkgs/pkgs/development/tools/schemacrawler/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Database schema discovery and comprehension tool";
+    mainProgram = "schemacrawler";
     homepage = "https://www.schemacrawler.com/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = with licenses; [ epl10 gpl3Only lgpl3Only ];
diff --git a/nixpkgs/pkgs/development/tools/sd-local/default.nix b/nixpkgs/pkgs/development/tools/sd-local/default.nix
index d31bd992f147..29c1c2de4575 100644
--- a/nixpkgs/pkgs/development/tools/sd-local/default.nix
+++ b/nixpkgs/pkgs/development/tools/sd-local/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "screwdriver.cd local mode";
+    mainProgram = "sd-local";
     homepage = "https://github.com/screwdriver-cd/sd-local";
     license = licenses.bsd3;
     maintainers = with maintainers; [ midchildan ];
diff --git a/nixpkgs/pkgs/development/tools/selene/default.nix b/nixpkgs/pkgs/development/tools/selene/default.nix
index dbaeb264b358..b464bee86e06 100644
--- a/nixpkgs/pkgs/development/tools/selene/default.nix
+++ b/nixpkgs/pkgs/development/tools/selene/default.nix
@@ -35,6 +35,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A blazing-fast modern Lua linter written in Rust";
+    mainProgram = "selene";
     homepage = "https://github.com/kampfkarren/selene";
     changelog = "https://github.com/kampfkarren/selene/blob/${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/development/tools/semantic-release/default.nix b/nixpkgs/pkgs/development/tools/semantic-release/default.nix
index 2b81e5bef401..7f55da0e2ff7 100644
--- a/nixpkgs/pkgs/development/tools/semantic-release/default.nix
+++ b/nixpkgs/pkgs/development/tools/semantic-release/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "semantic-release";
-  version = "23.0.2";
+  version = "23.0.5";
 
   src = fetchFromGitHub {
     owner = "semantic-release";
     repo = "semantic-release";
     rev = "v${version}";
-    hash = "sha256-zwc21Ug/x1jP+litn8ij8eEvqpVmtMSiQT3jN4+RhNc=";
+    hash = "sha256-/VOa/V6kly92JjhW5a0b9xNdxVYCPYRJx5IiwmQ2d1U=";
   };
 
-  npmDepsHash = "sha256-8iCb6s9VCuXfgU6Qc/bUHMiLgEgreEa7LU0j+1CYVI0=";
+  npmDepsHash = "sha256-CG2LcIAfX5dfJz0oSMwt83ra804U/qLpnNDilSEgRSI=";
 
   dontNpmBuild = true;
 
@@ -34,6 +34,7 @@ buildNpmPackage rec {
 
   meta = {
     description = "Fully automated version management and package publishing";
+    mainProgram = "semantic-release";
     homepage = "https://semantic-release.gitbook.io/semantic-release/";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.sestrella ];
diff --git a/nixpkgs/pkgs/development/tools/sentry-cli/default.nix b/nixpkgs/pkgs/development/tools/sentry-cli/default.nix
index 738a2c659ddb..06b77135d484 100644
--- a/nixpkgs/pkgs/development/tools/sentry-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/sentry-cli/default.nix
@@ -11,13 +11,13 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "sentry-cli";
-  version = "2.29.1";
+  version = "2.30.2";
 
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-cli";
     rev = version;
-    sha256 = "sha256-hSAd+fGEVpCAyG2HzrF0W09yk6ghxX/lwdPQNuGsZW0=";
+    sha256 = "sha256-ThZb6/Mprz9qgEGsJ+EbENvjmgehDsjVgFGBq4PZMRM=";
   };
   doCheck = false;
 
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ];
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
-  cargoHash = "sha256-g+rGWS/wZncyq9zPOOI+Zq1WEsQarMK2TkccVohJTUs=";
+  cargoHash = "sha256-yoBoPk5PvMLGvhU/kg+WwO5WgwEnfKQlnkCC6IctfAI=";
 
   postInstall = ''
     installShellCompletion --cmd sentry-cli \
@@ -40,6 +40,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://docs.sentry.io/cli/";
     license = licenses.bsd3;
     description = "A command line utility to work with Sentry";
+    mainProgram = "sentry-cli";
     changelog = "https://github.com/getsentry/sentry-cli/raw/${version}/CHANGELOG.md";
     maintainers = with maintainers; [ rizary loewenheim ];
   };
diff --git a/nixpkgs/pkgs/development/tools/shellharden/default.nix b/nixpkgs/pkgs/development/tools/shellharden/default.nix
index 5006c5fe9cba..dbf903e923bf 100644
--- a/nixpkgs/pkgs/development/tools/shellharden/default.nix
+++ b/nixpkgs/pkgs/development/tools/shellharden/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "The corrective bash syntax highlighter";
+    mainProgram = "shellharden";
     longDescription = ''
       Shellharden is a syntax highlighter and a tool to semi-automate the
       rewriting of scripts to ShellCheck conformance, mainly focused on quoting.
diff --git a/nixpkgs/pkgs/development/tools/sigrok-cli/default.nix b/nixpkgs/pkgs/development/tools/sigrok-cli/default.nix
index 0e8d697ef36d..f239d03cb6a4 100644
--- a/nixpkgs/pkgs/development/tools/sigrok-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/sigrok-cli/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Command-line frontend for the sigrok signal analysis software suite";
+    mainProgram = "sigrok-cli";
     homepage = "https://sigrok.org/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/development/tools/simavr/default.nix b/nixpkgs/pkgs/development/tools/simavr/default.nix
index db3f9e6664e1..3ce0a3cddf90 100644
--- a/nixpkgs/pkgs/development/tools/simavr/default.nix
+++ b/nixpkgs/pkgs/development/tools/simavr/default.nix
@@ -45,6 +45,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A lean and mean Atmel AVR simulator";
+    mainProgram = "simavr";
     homepage    = "https://github.com/buserror/simavr";
     license     = licenses.gpl3;
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/skaffold/default.nix b/nixpkgs/pkgs/development/tools/skaffold/default.nix
index 3d98bf472770..bac6c119e350 100644
--- a/nixpkgs/pkgs/development/tools/skaffold/default.nix
+++ b/nixpkgs/pkgs/development/tools/skaffold/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
     homepage = "https://skaffold.dev/";
     changelog = "https://github.com/GoogleContainerTools/skaffold/releases/tag/v${version}";
     description = "Easy and Repeatable Kubernetes Development";
+    mainProgram = "skaffold";
     longDescription = ''
       Skaffold is a command line tool that facilitates continuous development for Kubernetes applications.
       You can iterate on your application source code locally then deploy to local or remote Kubernetes clusters.
diff --git a/nixpkgs/pkgs/development/tools/skopeo/default.nix b/nixpkgs/pkgs/development/tools/skopeo/default.nix
index 7afeb6313946..b8f4ab5dc68d 100644
--- a/nixpkgs/pkgs/development/tools/skopeo/default.nix
+++ b/nixpkgs/pkgs/development/tools/skopeo/default.nix
@@ -18,13 +18,13 @@
 
 buildGoModule rec {
   pname = "skopeo";
-  version = "1.14.2";
+  version = "1.15.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "containers";
     repo = "skopeo";
-    hash = "sha256-js1Y7EGXinzOMMX9LjsG6D57UhGtZcvesOw/JDEKvoU=";
+    hash = "sha256-GMZjmKM2bFv57b2u7VjiA2OF6gD7vtoQ3ofS2rQfNrk=";
   };
 
   outputs = [ "out" "man" ];
@@ -71,6 +71,7 @@ buildGoModule rec {
   meta = with lib; {
     changelog = "https://github.com/containers/skopeo/releases/tag/${src.rev}";
     description = "A command line utility for various operations on container images and image repositories";
+    mainProgram = "skopeo";
     homepage = "https://github.com/containers/skopeo";
     maintainers = with maintainers; [ lewo developer-guy ] ++ teams.podman.members;
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/slimerjs/default.nix b/nixpkgs/pkgs/development/tools/slimerjs/default.nix
index f800dedf615f..dd3c5fd6d09b 100644
--- a/nixpkgs/pkgs/development/tools/slimerjs/default.nix
+++ b/nixpkgs/pkgs/development/tools/slimerjs/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Gecko-based programmatically-driven browser";
+    mainProgram = "slimerjs";
     license = licenses.mpl20;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/smlfmt/default.nix b/nixpkgs/pkgs/development/tools/smlfmt/default.nix
index 2094cde2ffcb..b0cf14e8a5dd 100644
--- a/nixpkgs/pkgs/development/tools/smlfmt/default.nix
+++ b/nixpkgs/pkgs/development/tools/smlfmt/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A custom parser/auto-formatter for Standard ML";
+    mainProgram = "smlfmt";
     longDescription = ''
       A custom parser and code formatter for Standard ML, with helpful error messages.
 
diff --git a/nixpkgs/pkgs/development/tools/snazy/default.nix b/nixpkgs/pkgs/development/tools/snazy/default.nix
index 7abe2fd98cfc..2b3a719d33d2 100644
--- a/nixpkgs/pkgs/development/tools/snazy/default.nix
+++ b/nixpkgs/pkgs/development/tools/snazy/default.nix
@@ -36,6 +36,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A snazzy json log viewer";
+    mainProgram = "snazy";
     longDescription = ''
       Snazy is a simple tool to parse json logs and output them in a nice format
       with nice colors.
diff --git a/nixpkgs/pkgs/development/tools/so/default.nix b/nixpkgs/pkgs/development/tools/so/default.nix
index 6d3e3fab0b7c..e057d5290561 100644
--- a/nixpkgs/pkgs/development/tools/so/default.nix
+++ b/nixpkgs/pkgs/development/tools/so/default.nix
@@ -20,6 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A TUI interface to the StackExchange network";
+    mainProgram = "so";
     homepage = "https://github.com/samtay/so";
     license = licenses.mit;
     maintainers = with maintainers; [ mredaelli ];
diff --git a/nixpkgs/pkgs/development/tools/solarus-quest-editor/default.nix b/nixpkgs/pkgs/development/tools/solarus-quest-editor/default.nix
index 3dc60021b757..e0743d13c1fc 100644
--- a/nixpkgs/pkgs/development/tools/solarus-quest-editor/default.nix
+++ b/nixpkgs/pkgs/development/tools/solarus-quest-editor/default.nix
@@ -28,6 +28,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "The editor for the Zelda-like ARPG game engine, Solarus";
+    mainProgram = "solarus-quest-editor";
     longDescription = ''
       Solarus is a game engine for Zelda-like ARPG games written in lua.
       Many full-fledged games have been writen for the engine.
diff --git a/nixpkgs/pkgs/development/tools/spr/default.nix b/nixpkgs/pkgs/development/tools/spr/default.nix
index a9ed5c3c2128..f2689c4692b1 100644
--- a/nixpkgs/pkgs/development/tools/spr/default.nix
+++ b/nixpkgs/pkgs/development/tools/spr/default.nix
@@ -20,6 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Submit pull requests for individual, amendable, rebaseable commits to GitHub";
+    mainProgram = "spr";
     homepage = "https://github.com/getcord/spr";
     license = licenses.mit;
     maintainers = with maintainers; [ sven-of-cord ];
diff --git a/nixpkgs/pkgs/development/tools/sq/default.nix b/nixpkgs/pkgs/development/tools/sq/default.nix
index 16fd797cca82..97e31162b773 100644
--- a/nixpkgs/pkgs/development/tools/sq/default.nix
+++ b/nixpkgs/pkgs/development/tools/sq/default.nix
@@ -42,6 +42,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Swiss army knife for data";
+    mainProgram = "sq";
     homepage = "https://sq.io/";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/sqsh/default.nix b/nixpkgs/pkgs/development/tools/sqsh/default.nix
index ba4a681a594d..ec071f739efa 100644
--- a/nixpkgs/pkgs/development/tools/sqsh/default.nix
+++ b/nixpkgs/pkgs/development/tools/sqsh/default.nix
@@ -37,6 +37,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Command line tool for querying Sybase/MSSQL databases";
+    mainProgram = "sqsh";
     longDescription = ''
       Sqsh (pronounced skwish) is short for SQshelL (pronounced s-q-shell),
       it is intended as a replacement for the venerable 'isql' program supplied
diff --git a/nixpkgs/pkgs/by-name/rw/rwpspread/Cargo.lock b/nixpkgs/pkgs/development/tools/sshs/Cargo.lock
index c965723f5420..1b4c04235ee7 100644
--- a/nixpkgs/pkgs/by-name/rw/rwpspread/Cargo.lock
+++ b/nixpkgs/pkgs/development/tools/sshs/Cargo.lock
@@ -3,16 +3,37 @@
 version = 3
 
 [[package]]
-name = "adler"
-version = "1.0.2"
+name = "ahash"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "allocator-api2"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
 
 [[package]]
 name = "anstream"
-version = "0.6.12"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -57,16 +78,16 @@ dependencies = [
 ]
 
 [[package]]
-name = "autocfg"
-version = "1.1.0"
+name = "anyhow"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
 
 [[package]]
-name = "bit_field"
-version = "0.10.2"
+name = "autocfg"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "bitflags"
@@ -81,50 +102,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
-name = "bytemuck"
-version = "1.14.3"
+name = "block-buffer"
+version = "0.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f"
-
-[[package]]
-name = "byteorder"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
-
-[[package]]
-name = "calloop"
-version = "0.12.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
 dependencies = [
- "bitflags 2.4.2",
- "log",
- "polling",
- "rustix",
- "slab",
- "thiserror",
+ "generic-array",
 ]
 
 [[package]]
-name = "calloop-wayland-source"
-version = "0.2.0"
+name = "cassowary"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
-dependencies = [
- "calloop",
- "rustix",
- "wayland-backend",
- "wayland-client",
-]
+checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
 
 [[package]]
-name = "cc"
-version = "1.0.83"
+name = "castaway"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "8a17ed5635fc8536268e5d4de1e22e81ac34419e5f052d4d51f4e01dcc263fcc"
 dependencies = [
- "libc",
+ "rustversion",
 ]
 
 [[package]]
@@ -164,7 +162,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.52",
 ]
 
 [[package]]
@@ -174,161 +172,133 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
 
 [[package]]
-name = "color_quant"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
-
-[[package]]
 name = "colorchoice"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
-name = "concurrent-queue"
-version = "2.4.0"
+name = "compact_str"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f"
 dependencies = [
- "crossbeam-utils",
+ "castaway",
+ "cfg-if",
+ "itoa",
+ "ryu",
+ "static_assertions",
 ]
 
 [[package]]
-name = "crc32fast"
-version = "1.4.0"
+name = "cpufeatures"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
- "cfg-if",
+ "libc",
 ]
 
 [[package]]
-name = "crossbeam-deque"
-version = "0.8.5"
+name = "crossterm"
+version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
 dependencies = [
- "crossbeam-epoch",
- "crossbeam-utils",
+ "bitflags 2.4.2",
+ "crossterm_winapi",
+ "libc",
+ "mio",
+ "parking_lot",
+ "signal-hook",
+ "signal-hook-mio",
+ "winapi",
 ]
 
 [[package]]
-name = "crossbeam-epoch"
-version = "0.9.18"
+name = "crossterm_winapi"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
 dependencies = [
- "crossbeam-utils",
+ "winapi",
 ]
 
 [[package]]
-name = "crossbeam-utils"
-version = "0.8.19"
+name = "crypto-common"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
-
-[[package]]
-name = "crunchy"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
-
-[[package]]
-name = "cursor-icon"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
-
-[[package]]
-name = "dlib"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
 dependencies = [
- "libloading",
+ "generic-array",
+ "typenum",
 ]
 
 [[package]]
-name = "downcast-rs"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
-
-[[package]]
-name = "either"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
-
-[[package]]
-name = "equivalent"
-version = "1.0.1"
+name = "digest"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+]
 
 [[package]]
-name = "errno"
-version = "0.3.8"
+name = "dirs"
+version = "5.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
 dependencies = [
- "libc",
- "windows-sys 0.52.0",
+ "dirs-sys",
 ]
 
 [[package]]
-name = "exr"
-version = "1.72.0"
+name = "dirs-sys"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
 dependencies = [
- "bit_field",
- "flume",
- "half",
- "lebe",
- "miniz_oxide",
- "rayon-core",
- "smallvec",
- "zune-inflate",
+ "libc",
+ "option-ext",
+ "redox_users",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "fdeflate"
-version = "0.3.4"
+name = "either"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
-dependencies = [
- "simd-adler32",
-]
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
 
 [[package]]
-name = "flate2"
-version = "1.0.28"
+name = "fuzzy-matcher"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94"
 dependencies = [
- "crc32fast",
- "miniz_oxide",
+ "thread_local",
 ]
 
 [[package]]
-name = "flume"
-version = "0.11.0"
+name = "generic-array"
+version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 dependencies = [
- "spin",
+ "typenum",
+ "version_check",
 ]
 
 [[package]]
-name = "gif"
-version = "0.12.0"
+name = "getrandom"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
+checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
 dependencies = [
- "color_quant",
- "weezl",
+ "cfg-if",
+ "libc",
+ "wasi",
 ]
 
 [[package]]
@@ -338,13 +308,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
-name = "half"
-version = "2.3.1"
+name = "handlebars"
+version = "5.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
+checksum = "ab283476b99e66691dee3f1640fea91487a8d81f50fb5ecc75538f8f8879a1e4"
 dependencies = [
- "cfg-if",
- "crunchy",
+ "log",
+ "pest",
+ "pest_derive",
+ "serde",
+ "serde_json",
+ "thiserror",
 ]
 
 [[package]]
@@ -352,6 +326,10 @@ name = "hashbrown"
 version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+dependencies = [
+ "ahash",
+ "allocator-api2",
+]
 
 [[package]]
 name = "heck"
@@ -360,31 +338,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
-name = "image"
-version = "0.24.8"
+name = "indoc"
+version = "2.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23"
-dependencies = [
- "bytemuck",
- "byteorder",
- "color_quant",
- "exr",
- "gif",
- "jpeg-decoder",
- "num-traits",
- "png",
- "qoi",
- "tiff",
-]
+checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
 
 [[package]]
-name = "indexmap"
-version = "2.2.3"
+name = "itertools"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
 dependencies = [
- "equivalent",
- "hashbrown",
+ "either",
 ]
 
 [[package]]
@@ -394,43 +359,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
-name = "jpeg-decoder"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
-dependencies = [
- "rayon",
-]
-
-[[package]]
-name = "lebe"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
-
-[[package]]
 name = "libc"
 version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
-name = "libloading"
-version = "0.8.1"
+name = "libredox"
+version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "cfg-if",
- "windows-sys 0.48.0",
+ "bitflags 2.4.2",
+ "libc",
+ "redox_syscall",
 ]
 
 [[package]]
-name = "linux-raw-sys"
-version = "0.4.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
-
-[[package]]
 name = "lock_api"
 version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -442,9 +387,18 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.20"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "lru"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
+dependencies = [
+ "hashbrown",
+]
 
 [[package]]
 name = "memchr"
@@ -453,97 +407,110 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
-name = "memmap2"
-version = "0.9.4"
+name = "mio"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
+ "log",
+ "wasi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "miniz_oxide"
-version = "0.7.2"
+name = "once_cell"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
-dependencies = [
- "adler",
- "simd-adler32",
-]
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
 
 [[package]]
-name = "num-traits"
-version = "0.2.18"
+name = "parking_lot"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
 dependencies = [
- "autocfg",
+ "lock_api",
+ "parking_lot_core",
 ]
 
 [[package]]
-name = "pin-project-lite"
-version = "0.2.13"
+name = "parking_lot_core"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.48.5",
+]
 
 [[package]]
-name = "pkg-config"
-version = "0.3.30"
+name = "paste"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
-name = "png"
-version = "0.17.13"
+name = "pest"
+version = "2.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
+checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8"
 dependencies = [
- "bitflags 1.3.2",
- "crc32fast",
- "fdeflate",
- "flate2",
- "miniz_oxide",
+ "memchr",
+ "thiserror",
+ "ucd-trie",
 ]
 
 [[package]]
-name = "polling"
-version = "3.5.0"
+name = "pest_derive"
+version = "2.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9"
+checksum = "b0d24f72393fd16ab6ac5738bc33cdb6a9aa73f8b902e8fe29cf4e67d7dd1026"
 dependencies = [
- "cfg-if",
- "concurrent-queue",
- "pin-project-lite",
- "rustix",
- "tracing",
- "windows-sys 0.52.0",
+ "pest",
+ "pest_generator",
 ]
 
 [[package]]
-name = "proc-macro2"
-version = "1.0.78"
+name = "pest_generator"
+version = "2.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "fdc17e2a6c7d0a492f0158d7a4bd66cc17280308bbaff78d5bef566dca35ab80"
 dependencies = [
- "unicode-ident",
+ "pest",
+ "pest_meta",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
 ]
 
 [[package]]
-name = "qoi"
-version = "0.4.1"
+name = "pest_meta"
+version = "2.7.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001"
+checksum = "934cd7631c050f4674352a6e835d5f6711ffbfb9345c2fc0107155ac495ae293"
 dependencies = [
- "bytemuck",
+ "once_cell",
+ "pest",
+ "sha2",
 ]
 
 [[package]]
-name = "quick-xml"
-version = "0.31.0"
+name = "proc-macro2"
+version = "1.0.78"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
 dependencies = [
- "memchr",
+ "unicode-ident",
 ]
 
 [[package]]
@@ -556,63 +523,85 @@ dependencies = [
 ]
 
 [[package]]
-name = "rayon"
-version = "1.8.1"
+name = "ratatui"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
+checksum = "bcb12f8fbf6c62614b0d56eb352af54f6a22410c3b079eb53ee93c7b97dd31d8"
 dependencies = [
- "either",
- "rayon-core",
+ "bitflags 2.4.2",
+ "cassowary",
+ "compact_str",
+ "crossterm",
+ "indoc",
+ "itertools",
+ "lru",
+ "paste",
+ "stability",
+ "strum",
+ "unicode-segmentation",
+ "unicode-width",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
 ]
 
 [[package]]
-name = "rayon-core"
-version = "1.12.1"
+name = "redox_users"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
- "crossbeam-deque",
- "crossbeam-utils",
+ "getrandom",
+ "libredox",
+ "thiserror",
 ]
 
 [[package]]
-name = "rustix"
-version = "0.38.31"
+name = "regex"
+version = "1.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
 dependencies = [
- "bitflags 2.4.2",
- "errno",
- "libc",
- "linux-raw-sys",
- "windows-sys 0.52.0",
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
 ]
 
 [[package]]
-name = "rwpspread"
-version = "0.2.1-1"
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
- "clap",
- "glob",
- "image",
- "rayon",
- "serde",
- "serde_json",
- "smithay-client-toolkit",
- "toml",
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
 ]
 
 [[package]]
-name = "ryu"
-version = "1.0.17"
+name = "regex-syntax"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
-name = "scoped-tls"
-version = "1.0.1"
+name = "rustversion"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
+
+[[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "scopeguard"
@@ -622,29 +611,29 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "serde"
-version = "1.0.196"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.196"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "syn 2.0.52",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.113"
+version = "1.0.114"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
+checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
 dependencies = [
  "itoa",
  "ryu",
@@ -652,27 +641,59 @@ dependencies = [
 ]
 
 [[package]]
-name = "serde_spanned"
-version = "0.6.5"
+name = "sha2"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
- "serde",
+ "cfg-if",
+ "cpufeatures",
+ "digest",
 ]
 
 [[package]]
-name = "simd-adler32"
-version = "0.3.7"
+name = "shellexpand"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b"
+dependencies = [
+ "dirs",
+]
 
 [[package]]
-name = "slab"
-version = "0.4.9"
+name = "shlex"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
+name = "signal-hook"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
 dependencies = [
- "autocfg",
+ "libc",
+ "signal-hook-registry",
+]
+
+[[package]]
+name = "signal-hook-mio"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
+dependencies = [
+ "libc",
+ "mio",
+ "signal-hook",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
+dependencies = [
+ "libc",
 ]
 
 [[package]]
@@ -682,248 +703,202 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
 
 [[package]]
-name = "smithay-client-toolkit"
-version = "0.18.0"
-source = "git+https://github.com/Smithay/client-toolkit#f3587a933ad822f729513cd1e1db3667b342ee72"
+name = "sshs"
+version = "4.2.1"
 dependencies = [
- "bitflags 2.4.2",
- "calloop",
- "calloop-wayland-source",
- "cursor-icon",
- "libc",
- "log",
- "memmap2",
- "rustix",
- "thiserror",
- "wayland-backend",
- "wayland-client",
- "wayland-csd-frame",
- "wayland-cursor",
- "wayland-protocols",
- "wayland-protocols-wlr",
- "wayland-scanner",
- "xkeysym",
+ "anyhow",
+ "clap",
+ "crossterm",
+ "fuzzy-matcher",
+ "glob",
+ "handlebars",
+ "itertools",
+ "ratatui",
+ "regex",
+ "serde",
+ "shellexpand",
+ "shlex",
+ "strum",
+ "strum_macros",
+ "tui-input",
+ "unicode-width",
 ]
 
 [[package]]
-name = "spin"
-version = "0.9.8"
+name = "stability"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+checksum = "ebd1b177894da2a2d9120208c3386066af06a488255caabc5de8ddca22dbc3ce"
 dependencies = [
- "lock_api",
+ "quote",
+ "syn 1.0.109",
 ]
 
 [[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
 name = "strsim"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
 
 [[package]]
-name = "syn"
-version = "2.0.49"
+name = "strum"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496"
+checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f"
 dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
+ "strum_macros",
 ]
 
 [[package]]
-name = "thiserror"
-version = "1.0.57"
+name = "strum_macros"
+version = "0.26.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18"
 dependencies = [
- "thiserror-impl",
+ "heck",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 2.0.52",
 ]
 
 [[package]]
-name = "thiserror-impl"
-version = "1.0.57"
+name = "syn"
+version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn",
+ "unicode-ident",
 ]
 
 [[package]]
-name = "tiff"
-version = "0.9.1"
+name = "syn"
+version = "2.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
+checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
 dependencies = [
- "flate2",
- "jpeg-decoder",
- "weezl",
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
 ]
 
 [[package]]
-name = "toml"
-version = "0.8.10"
+name = "thiserror"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
 dependencies = [
- "serde",
- "serde_spanned",
- "toml_datetime",
- "toml_edit",
+ "thiserror-impl",
 ]
 
 [[package]]
-name = "toml_datetime"
-version = "0.6.5"
+name = "thiserror-impl"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
 dependencies = [
- "serde",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
 ]
 
 [[package]]
-name = "toml_edit"
-version = "0.22.6"
+name = "thread_local"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
- "indexmap",
- "serde",
- "serde_spanned",
- "toml_datetime",
- "winnow",
+ "cfg-if",
+ "once_cell",
 ]
 
 [[package]]
-name = "tracing"
-version = "0.1.40"
+name = "tui-input"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+checksum = "b3e785f863a3af4c800a2a669d0b64c879b538738e352607e2624d03f868dc01"
 dependencies = [
- "pin-project-lite",
- "tracing-core",
+ "crossterm",
+ "unicode-width",
 ]
 
 [[package]]
-name = "tracing-core"
-version = "0.1.32"
+name = "typenum"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
-name = "unicode-ident"
-version = "1.0.12"
+name = "ucd-trie"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
 
 [[package]]
-name = "utf8parse"
-version = "0.2.1"
+name = "unicode-ident"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
-name = "wayland-backend"
-version = "0.3.3"
+name = "unicode-segmentation"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
-dependencies = [
- "cc",
- "downcast-rs",
- "rustix",
- "scoped-tls",
- "smallvec",
- "wayland-sys",
-]
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
 
 [[package]]
-name = "wayland-client"
-version = "0.31.2"
+name = "unicode-width"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
-dependencies = [
- "bitflags 2.4.2",
- "rustix",
- "wayland-backend",
- "wayland-scanner",
-]
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
-name = "wayland-csd-frame"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
-dependencies = [
- "bitflags 2.4.2",
- "cursor-icon",
- "wayland-backend",
-]
-
-[[package]]
-name = "wayland-cursor"
-version = "0.31.1"
+name = "utf8parse"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
-dependencies = [
- "rustix",
- "wayland-client",
- "xcursor",
-]
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
-name = "wayland-protocols"
-version = "0.31.2"
+name = "version_check"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
-dependencies = [
- "bitflags 2.4.2",
- "wayland-backend",
- "wayland-client",
- "wayland-scanner",
-]
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
-name = "wayland-protocols-wlr"
-version = "0.2.0"
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
-dependencies = [
- "bitflags 2.4.2",
- "wayland-backend",
- "wayland-client",
- "wayland-protocols",
- "wayland-scanner",
-]
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
-name = "wayland-scanner"
-version = "0.31.1"
+name = "winapi"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 dependencies = [
- "proc-macro2",
- "quick-xml",
- "quote",
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
 ]
 
 [[package]]
-name = "wayland-sys"
-version = "0.31.1"
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
-dependencies = [
- "dlib",
- "log",
- "pkg-config",
-]
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
-name = "weezl"
-version = "0.1.8"
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
 name = "windows-sys"
@@ -940,7 +915,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.0",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -960,17 +935,17 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.0",
- "windows_aarch64_msvc 0.52.0",
- "windows_i686_gnu 0.52.0",
- "windows_i686_msvc 0.52.0",
- "windows_x86_64_gnu 0.52.0",
- "windows_x86_64_gnullvm 0.52.0",
- "windows_x86_64_msvc 0.52.0",
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
@@ -981,9 +956,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -993,9 +968,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -1005,9 +980,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -1017,9 +992,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -1029,9 +1004,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -1041,9 +1016,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -1053,36 +1028,26 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.0"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
-name = "winnow"
-version = "0.6.1"
+name = "zerocopy"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d90f4e0f530c4c69f62b80d839e9ef3855edc9cba471a160c4d692deed62b401"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
 dependencies = [
- "memchr",
+ "zerocopy-derive",
 ]
 
 [[package]]
-name = "xcursor"
-version = "0.3.5"
+name = "zerocopy-derive"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911"
-
-[[package]]
-name = "xkeysym"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621"
-
-[[package]]
-name = "zune-inflate"
-version = "0.2.54"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
- "simd-adler32",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.52",
 ]
diff --git a/nixpkgs/pkgs/development/tools/sshs/Cargo.toml b/nixpkgs/pkgs/development/tools/sshs/Cargo.toml
new file mode 100644
index 000000000000..1bab1b60c9f9
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/sshs/Cargo.toml
@@ -0,0 +1,31 @@
+[package]
+name = "sshs"
+version = "4.2.1"
+edition = "2021"
+
+[[bin]]
+name = "sshs"
+path = "src/main.rs"
+
+[profile.release]
+strip = true
+lto = true
+codegen-units = 1
+
+[dependencies]
+anyhow = "1.0.80"
+clap = { version = "4.5.0", features = ["derive"] }
+crossterm = "0.27.0"
+fuzzy-matcher = "0.3.7"
+glob = "0.3.1"
+handlebars = "5.1.0"
+itertools = "0.12.1"
+ratatui = "0.26.1"
+regex = { version = "1.10.3", default-features = false, features = ["std"] }
+serde = { version = "1.0.197", features = ["derive"] }
+shellexpand = "3.1.0"
+shlex = "1.3.0"
+strum = "0.26.1"
+strum_macros = "0.26.1"
+tui-input = "0.8.0"
+unicode-width = "0.1.11"
diff --git a/nixpkgs/pkgs/development/tools/sshs/default.nix b/nixpkgs/pkgs/development/tools/sshs/default.nix
index 74eecc7979c0..6929957294c1 100644
--- a/nixpkgs/pkgs/development/tools/sshs/default.nix
+++ b/nixpkgs/pkgs/development/tools/sshs/default.nix
@@ -1,30 +1,40 @@
 { lib
-, buildGoModule
+, rustPlatform
 , fetchFromGitHub
-, nix-update-script
+, testers
+, sshs
 }:
 
-buildGoModule rec {
+rustPlatform.buildRustPackage rec {
   pname = "sshs";
-  version = "3.4.0";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "quantumsheep";
     repo = pname;
     rev = version;
-    hash = "sha256-KD971dGm1oQt9GbiUGZm2k4SJrBAA9rnHj7Gu0t3SJw=";
+    hash = "sha256-phVwNPElQOTgsrDxzyUcDMByxi7t1IIPFCEHJTXiBdY=";
   };
 
-  vendorHash = "sha256-OCh37wjSs40Q0VQmoc1nXQ4nWddnoUCrI5xgxpxR/Ec=";
+  cargoLock = {
+    # Patch version output
+    lockFile = ./Cargo.lock;
+  };
 
-  ldflags = [ "-s" "-w" "-X github.com/quantumsheep/sshs/cmd.Version=${version}" ];
+  postPatch = ''
+    ln -sf ${./Cargo.toml} Cargo.toml
+    ln -sf ${./Cargo.lock} Cargo.lock
+  '';
 
-  passthru.updateScript = nix-update-script { };
+  passthru.tests.version = testers.testVersion {
+    package = sshs;
+  };
 
   meta = with lib; {
     description = "Terminal user interface for SSH";
     homepage = "https://github.com/quantumsheep/sshs";
     license = licenses.mit;
     maintainers = with maintainers; [ not-my-segfault ];
+    mainProgram = "sshs";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/sslmate/default.nix b/nixpkgs/pkgs/development/tools/sslmate/default.nix
index 836b0bc1b08e..2dded22da82f 100644
--- a/nixpkgs/pkgs/development/tools/sslmate/default.nix
+++ b/nixpkgs/pkgs/development/tools/sslmate/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
     homepage = "https://sslmate.com";
     maintainers = [ maintainers.domenkozar ];
     description = "Easy to buy, deploy, and manage your SSL certs";
+    mainProgram = "sslmate";
     platforms = platforms.unix;
     license = licenses.mit; # X11
   };
diff --git a/nixpkgs/pkgs/development/tools/statik/default.nix b/nixpkgs/pkgs/development/tools/statik/default.nix
index e77cf8f3bb0b..8b4386860e0a 100644
--- a/nixpkgs/pkgs/development/tools/statik/default.nix
+++ b/nixpkgs/pkgs/development/tools/statik/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/rakyll/statik";
     description = "Embed files into a Go executable ";
+    mainProgram = "statik";
     license = licenses.asl20;
     maintainers = with maintainers; [ Madouura ];
   };
diff --git a/nixpkgs/pkgs/development/tools/steamos-devkit/default.nix b/nixpkgs/pkgs/development/tools/steamos-devkit/default.nix
index 43c4af73f2a7..4b2cabac6396 100644
--- a/nixpkgs/pkgs/development/tools/steamos-devkit/default.nix
+++ b/nixpkgs/pkgs/development/tools/steamos-devkit/default.nix
@@ -128,6 +128,7 @@ python3.pkgs.buildPythonPackage rec {
 
   meta = with lib; {
     description = "SteamOS Devkit Client";
+    mainProgram = "steamos-devkit";
     homepage = "https://gitlab.steamos.cloud/devkit/steamos-devkit";
     license = licenses.mit;
     maintainers = with maintainers; [ myaats ];
diff --git a/nixpkgs/pkgs/development/tools/subxt/default.nix b/nixpkgs/pkgs/development/tools/subxt/default.nix
index fd557c96b04f..2090fe1aacac 100644
--- a/nixpkgs/pkgs/development/tools/subxt/default.nix
+++ b/nixpkgs/pkgs/development/tools/subxt/default.nix
@@ -35,6 +35,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://github.com/paritytech/subxt";
     description = "Submit transactions to a substrate node via RPC.";
+    mainProgram = "subxt";
     license = with licenses; [ gpl3Plus asl20 ];
     maintainers = [ maintainers.FlorianFranzen ];
   };
diff --git a/nixpkgs/pkgs/development/tools/summon/default.nix b/nixpkgs/pkgs/development/tools/summon/default.nix
index 598e8fab6392..014655616b7b 100644
--- a/nixpkgs/pkgs/development/tools/summon/default.nix
+++ b/nixpkgs/pkgs/development/tools/summon/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
   meta = with lib; {
     description =
       "CLI that provides on-demand secrets access for common DevOps tools";
+    mainProgram = "summon";
     homepage = "https://cyberark.github.io/summon";
     license = lib.licenses.mit;
     maintainers = with maintainers; [ quentini ];
diff --git a/nixpkgs/pkgs/development/tools/swc/default.nix b/nixpkgs/pkgs/development/tools/swc/default.nix
index afb4ad5d5899..7847c253e7e5 100644
--- a/nixpkgs/pkgs/development/tools/swc/default.nix
+++ b/nixpkgs/pkgs/development/tools/swc/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Rust-based platform for the Web";
+    mainProgram = "swc";
     homepage = "https://github.com/swc-project/swc";
     license = licenses.asl20;
     maintainers = with maintainers; [ dit7ya kashw2 ];
diff --git a/nixpkgs/pkgs/development/tools/swiftpm2nix/default.nix b/nixpkgs/pkgs/development/tools/swiftpm2nix/default.nix
index 25d6b06ef98b..d9f50cb801d5 100644
--- a/nixpkgs/pkgs/development/tools/swiftpm2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/swiftpm2nix/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Generate a Nix expression to fetch swiftpm dependencies";
+    mainProgram = "swiftpm2nix";
     maintainers = with lib.maintainers; [ dtzWill trepetti dduan trundle stephank ];
     platforms = lib.platforms.all;
   };
diff --git a/nixpkgs/pkgs/development/tools/systemfd/default.nix b/nixpkgs/pkgs/development/tools/systemfd/default.nix
index a695cf83a295..001015af2d8b 100644
--- a/nixpkgs/pkgs/development/tools/systemfd/default.nix
+++ b/nixpkgs/pkgs/development/tools/systemfd/default.nix
@@ -23,6 +23,7 @@ rustPlatform.buildRustPackage {
 
   meta = {
     description = "A convenient helper for passing sockets into another process";
+    mainProgram = "systemfd";
     homepage = "https://github.com/mitsuhiko/systemfd";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.adisbladis ];
diff --git a/nixpkgs/pkgs/development/tools/tapview/default.nix b/nixpkgs/pkgs/development/tools/tapview/default.nix
index 19c1113c5cd4..fa8b0d1a2774 100644
--- a/nixpkgs/pkgs/development/tools/tapview/default.nix
+++ b/nixpkgs/pkgs/development/tools/tapview/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A minimalist pure consumer for TAP (Test Anything Protocol)";
+    mainProgram = "tapview";
     homepage = "https://gitlab.com/esr/tapview";
     license = licenses.bsd2;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/tarmac/default.nix b/nixpkgs/pkgs/development/tools/tarmac/default.nix
index b8383fc5031d..34471106d73a 100644
--- a/nixpkgs/pkgs/development/tools/tarmac/default.nix
+++ b/nixpkgs/pkgs/development/tools/tarmac/default.nix
@@ -39,6 +39,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Resource compiler and asset manager for Roblox";
+    mainProgram = "tarmac";
     longDescription = ''
       Tarmac is a resource compiler and asset manager for Roblox projects.
       It helps enable hermetic place builds when used with tools like Rojo.
diff --git a/nixpkgs/pkgs/development/tools/teller/default.nix b/nixpkgs/pkgs/development/tools/teller/default.nix
index a906e6c1f5e5..a918e6759bfe 100644
--- a/nixpkgs/pkgs/development/tools/teller/default.nix
+++ b/nixpkgs/pkgs/development/tools/teller/default.nix
@@ -63,6 +63,7 @@ buildGoModule {
   meta = with lib; {
     homepage = "https://github.com/tellerops/teller/";
     description = "Cloud native secrets management for developers";
+    mainProgram = "teller";
     license = licenses.asl20;
     maintainers = with maintainers; [ wahtique ];
   };
diff --git a/nixpkgs/pkgs/development/tools/templ/default.nix b/nixpkgs/pkgs/development/tools/templ/default.nix
index 63dd98bd54ab..f3eda5a55975 100644
--- a/nixpkgs/pkgs/development/tools/templ/default.nix
+++ b/nixpkgs/pkgs/development/tools/templ/default.nix
@@ -5,7 +5,7 @@
 
 buildGoModule rec {
   pname = "templ";
-  version = "0.2.598";
+  version = "0.2.639";
 
   subPackages = [ "cmd/templ" ];
 
@@ -21,7 +21,7 @@ buildGoModule rec {
     owner = "a-h";
     repo = "templ";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jMoAocMDq8U1JsYoH3PFzZbnjSAzhifLwNZoKY+ambA=";
+    hash = "sha256-W1efknPo45mmKYuiFakJ0AigmfQqlfQ/u+de0zTRwwY=";
   };
 
   vendorHash = "sha256-Upd5Wq4ajsyOMDiAWS2g2iNO1sm1XJc43AFQLIo5eDM=";
diff --git a/nixpkgs/pkgs/development/tools/textql/default.nix b/nixpkgs/pkgs/development/tools/textql/default.nix
index 74953d0e3fab..1523a30d18f8 100644
--- a/nixpkgs/pkgs/development/tools/textql/default.nix
+++ b/nixpkgs/pkgs/development/tools/textql/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Execute SQL against structured text like CSV or TSV";
+    mainProgram = "textql";
     homepage = "https://github.com/dinedal/textql";
     license = licenses.mit;
     maintainers = with maintainers; [ vrthra ];
diff --git a/nixpkgs/pkgs/development/tools/tf2pulumi/default.nix b/nixpkgs/pkgs/development/tools/tf2pulumi/default.nix
index c108515ee6ad..bc5c92a98f22 100644
--- a/nixpkgs/pkgs/development/tools/tf2pulumi/default.nix
+++ b/nixpkgs/pkgs/development/tools/tf2pulumi/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Convert Terraform projects to Pulumi TypeScript programs";
+    mainProgram = "tf2pulumi";
     homepage = "https://www.pulumi.com/tf2pulumi/";
     license = licenses.asl20;
     maintainers = with maintainers; [ mausch ];
diff --git a/nixpkgs/pkgs/development/tools/the-way/default.nix b/nixpkgs/pkgs/development/tools/the-way/default.nix
index 9418afb6cfa6..6b43e603a6e7 100644
--- a/nixpkgs/pkgs/development/tools/the-way/default.nix
+++ b/nixpkgs/pkgs/development/tools/the-way/default.nix
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Terminal code snippets manager";
+    mainProgram = "the-way";
     homepage = "https://github.com/out-of-cheese-error/the-way";
     changelog = "https://github.com/out-of-cheese-error/the-way/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/development/tools/thrust/default.nix b/nixpkgs/pkgs/development/tools/thrust/default.nix
index 5e7b90641704..889d3bc3af36 100644
--- a/nixpkgs/pkgs/development/tools/thrust/default.nix
+++ b/nixpkgs/pkgs/development/tools/thrust/default.nix
@@ -38,6 +38,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Chromium-based cross-platform / cross-language application framework";
+    mainProgram = "thrust_shell";
     homepage = "https://github.com/breach/thrust";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/time-ghc-modules/default.nix b/nixpkgs/pkgs/development/tools/time-ghc-modules/default.nix
index e57495b8fb1c..bbe0e4152fc0 100644
--- a/nixpkgs/pkgs/development/tools/time-ghc-modules/default.nix
+++ b/nixpkgs/pkgs/development/tools/time-ghc-modules/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "time-ghc-modules";
-  version = "1.0.1";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "codedownio";
     repo = "time-ghc-modules";
     rev = version;
-    sha256 = "0s6540gllhjn7366inhwa70rdnngnhbi07jn1h6x8a0pi71wdfm9";
+    sha256 = "sha256-/PhJAhP3KCWFyeSk8e5JV0cpBueH/eVDwQTMZSnnZCo=";
   };
 
   nativeBuildInputs = [makeWrapper];
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Analyze GHC .dump-timings files";
+    mainProgram = "time-ghc-modules";
     homepage = "https://github.com/codedownio/time-ghc-modules";
     license = licenses.mit;
     maintainers = [ maintainers.thomasjm ];
diff --git a/nixpkgs/pkgs/development/tools/toast/default.nix b/nixpkgs/pkgs/development/tools/toast/default.nix
index c4b486b96527..a7fa40f035b1 100644
--- a/nixpkgs/pkgs/development/tools/toast/default.nix
+++ b/nixpkgs/pkgs/development/tools/toast/default.nix
@@ -20,6 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Containerize your development and continuous integration environments";
+    mainProgram = "toast";
     homepage = "https://github.com/stepchowfun/toast";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
diff --git a/nixpkgs/pkgs/development/tools/toml2json/default.nix b/nixpkgs/pkgs/development/tools/toml2json/default.nix
index b2abf4eb7211..4d7fed800e21 100644
--- a/nixpkgs/pkgs/development/tools/toml2json/default.nix
+++ b/nixpkgs/pkgs/development/tools/toml2json/default.nix
@@ -13,6 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A very small CLI for converting TOML to JSON";
+    mainProgram = "toml2json";
     homepage = "https://github.com/woodruffw/toml2json";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ rvarago ];
diff --git a/nixpkgs/pkgs/development/tools/toml2nix/default.nix b/nixpkgs/pkgs/development/tools/toml2nix/default.nix
index 6987619dbcb5..60eb3901318f 100644
--- a/nixpkgs/pkgs/development/tools/toml2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/toml2nix/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool to convert TOML files to Nix expressions";
+    mainProgram = "toml2nix";
     homepage = "https://crates.io/crates/toml2nix";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/development/tools/tora/default.nix b/nixpkgs/pkgs/development/tools/tora/default.nix
index bb85babe7c46..512d5adc0a7f 100644
--- a/nixpkgs/pkgs/development/tools/tora/default.nix
+++ b/nixpkgs/pkgs/development/tools/tora/default.nix
@@ -48,6 +48,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Tora SQL tool";
+    mainProgram = "tora";
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/toxiproxy/default.nix b/nixpkgs/pkgs/development/tools/toxiproxy/default.nix
index fdeb362ee946..22dd5d2f6eeb 100644
--- a/nixpkgs/pkgs/development/tools/toxiproxy/default.nix
+++ b/nixpkgs/pkgs/development/tools/toxiproxy/default.nix
@@ -1,17 +1,22 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, testers
+, toxiproxy
+}:
 
 buildGoModule rec {
   pname = "toxiproxy";
-  version = "2.5.0";
+  version = "2.9.0";
 
   src = fetchFromGitHub {
     owner = "Shopify";
     repo = "toxiproxy";
     rev = "v${version}";
-    sha256 = "sha256-SL3YHsNeFw8K8lPrzJXAoTkHxS+1sTREfzjawBxdnf0=";
+    sha256 = "sha256-zwKeJ8LMMSSHvE0x0/9j3wBdAJG43RiGcszKz0B3dG8=";
   };
 
-  vendorHash = "sha256-CmENxPAdjz0BAyvhLKIaJjSbK/mvRzHGCQOfGIiA3yI=";
+  vendorHash = "sha256-eSQvLsSWWypA5vXR/GiEf5j7TzzsL8ZFRPOeICsIrlY=";
 
   excludedPackages = [ "test/e2e" ];
 
@@ -20,14 +25,31 @@ buildGoModule rec {
   # Fixes tests on Darwin
   __darwinAllowLocalNetworking = true;
 
-  checkFlags = [ "-short" ];
+  checkFlags = [
+    "-short"
+    "-skip=TestVersionEndpointReturnsVersion|TestFullstreamLatencyBiasDown"
+  ];
 
   postInstall = ''
     mv $out/bin/cli $out/bin/toxiproxy-cli
     mv $out/bin/server $out/bin/toxiproxy-server
   '';
 
+  passthru.tests = {
+    cliVersion = testers.testVersion {
+      inherit version;
+      package = toxiproxy;
+      command = "${toxiproxy}/bin/toxiproxy-cli -version";
+    };
+    serverVersion = testers.testVersion {
+      inherit version;
+      package = toxiproxy;
+      command = "${toxiproxy}/bin/toxiproxy-server -version";
+    };
+  };
+
   meta = {
+    changelog = "https://github.com/Shopify/toxiproxy/releases/tag/v${version}";
     description = "Proxy for for simulating network conditions";
     homepage = "https://github.com/Shopify/toxiproxy";
     maintainers = with lib.maintainers; [ avnik ];
diff --git a/nixpkgs/pkgs/development/tools/tradcpp/default.nix b/nixpkgs/pkgs/development/tools/tradcpp/default.nix
index 7d2606eba84e..73d0cf5e81a4 100644
--- a/nixpkgs/pkgs/development/tools/tradcpp/default.nix
+++ b/nixpkgs/pkgs/development/tools/tradcpp/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A traditional (K&R-style) C macro preprocessor";
+    mainProgram = "tradcpp";
     platforms = platforms.all;
     license = licenses.bsd2;
   };
diff --git a/nixpkgs/pkgs/development/tools/trunk/default.nix b/nixpkgs/pkgs/development/tools/trunk/default.nix
index d752db90ca03..13352f11c5c9 100644
--- a/nixpkgs/pkgs/development/tools/trunk/default.nix
+++ b/nixpkgs/pkgs/development/tools/trunk/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
   version = "0.18.8";
 
   src = fetchFromGitHub {
-    owner = "thedodd";
+    owner = "trunk-rs";
     repo = "trunk";
     rev = "v${version}";
     hash = "sha256-cx14IVqsu1SQezs8T1HFZ75+MPWkvf5RcvGCodW5G4A=";
@@ -52,8 +52,9 @@ rustPlatform.buildRustPackage rec {
   };
 
   meta = with lib; {
-    homepage = "https://github.com/thedodd/trunk";
+    homepage = "https://github.com/trunk-rs/trunk";
     description = "Build, bundle & ship your Rust WASM application to the web";
+    mainProgram = "trunk";
     maintainers = with maintainers; [ freezeboy ];
     license = with licenses; [ asl20 ];
   };
diff --git a/nixpkgs/pkgs/development/tools/ttfb/default.nix b/nixpkgs/pkgs/development/tools/ttfb/default.nix
index f024280c0870..e8a86c21bc5d 100644
--- a/nixpkgs/pkgs/development/tools/ttfb/default.nix
+++ b/nixpkgs/pkgs/development/tools/ttfb/default.nix
@@ -26,6 +26,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = {
     description = "CLI-Tool to measure the TTFB (time to first byte) of HTTP(S) requests";
+    mainProgram = "ttfb";
     longDescription = ''
       ttfb measure the TTFB (time to first byte) of HTTP(S) requests. This includes data
       of intermediate steps, such as the relative and absolute timings of DNS lookup, TCP
diff --git a/nixpkgs/pkgs/development/tools/turso-cli/default.nix b/nixpkgs/pkgs/development/tools/turso-cli/default.nix
index 374fe9f3bfaf..9414d1114bcb 100644
--- a/nixpkgs/pkgs/development/tools/turso-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/turso-cli/default.nix
@@ -8,16 +8,16 @@
 }:
 buildGoModule rec {
   pname = "turso-cli";
-  version = "0.88.8";
+  version = "0.89.0";
 
   src = fetchFromGitHub {
     owner = "tursodatabase";
     repo = "turso-cli";
     rev = "v${version}";
-    hash = "sha256-F+/xCs35ugdr2KlHbZ01wE9AX3qhsxvfaly/yDCcGJI=";
+    hash = "sha256-BFL5D4GkcYdHkEc5448jgQflhhncePYfHMTprPynvmU=";
   };
 
-  vendorHash = "sha256-rTeW2RQhcdwJTAMQELm4cdObJbm8gk/I2Qz3Wk3+zpI=";
+  vendorHash = "sha256-oxlIaSSLZ6JirvUPOIHirp43G5qrDFJhNd6HjA9UYKo=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/development/tools/twiggy/default.nix b/nixpkgs/pkgs/development/tools/twiggy/default.nix
index f1ee4c68fb19..25d8ab244d9e 100644
--- a/nixpkgs/pkgs/development/tools/twiggy/default.nix
+++ b/nixpkgs/pkgs/development/tools/twiggy/default.nix
@@ -16,6 +16,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://rustwasm.github.io/twiggy/";
     description = "A code size profiler for Wasm";
+    mainProgram = "twiggy";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ lucperkins ];
   };
diff --git a/nixpkgs/pkgs/development/tools/twilio-cli/default.nix b/nixpkgs/pkgs/development/tools/twilio-cli/default.nix
index 032796e760ca..f93643de351c 100644
--- a/nixpkgs/pkgs/development/tools/twilio-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/twilio-cli/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "twilio-cli";
-  version = "5.19.0";
+  version = "5.19.1";
 
   src = fetchzip {
     url = "https://twilio-cli-prod.s3.amazonaws.com/twilio-v${finalAttrs.version}/twilio-v${finalAttrs.version}.tar.gz";
-    hash = "sha256-BU4ozZbBNtHdcyaxyvvZ966/FGydqbSnGxSSuky9LtM=";
+    hash = "sha256-8IZaEL+F0FMR44KCnxYNC/8mLKBlAGdmgHG7Lv90thE=";
   };
 
   buildInputs = [ nodejs-slim ];
diff --git a/nixpkgs/pkgs/development/tools/twitch-cli/default.nix b/nixpkgs/pkgs/development/tools/twitch-cli/default.nix
index cc145b08ed58..8417bf10a5d2 100644
--- a/nixpkgs/pkgs/development/tools/twitch-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/twitch-cli/default.nix
@@ -42,6 +42,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The official Twitch CLI to make developing on Twitch easier";
+    mainProgram = "twitch-cli";
     homepage = "https://github.com/twitchdev/twitch-cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ benediktbroich ];
diff --git a/nixpkgs/pkgs/development/tools/txtpbfmt/default.nix b/nixpkgs/pkgs/development/tools/txtpbfmt/default.nix
index 384320bb3b95..af69078fe18c 100644
--- a/nixpkgs/pkgs/development/tools/txtpbfmt/default.nix
+++ b/nixpkgs/pkgs/development/tools/txtpbfmt/default.nix
@@ -17,6 +17,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "Formatter for text proto files";
+    mainProgram = "txtpbfmt";
     homepage = "https://github.com/protocolbuffers/txtpbfmt";
     license = licenses.asl20;
     maintainers = with maintainers; [ aaronjheng ];
diff --git a/nixpkgs/pkgs/development/tools/typos/default.nix b/nixpkgs/pkgs/development/tools/typos/default.nix
index 6aa8e5558dcc..cb33025cf183 100644
--- a/nixpkgs/pkgs/development/tools/typos/default.nix
+++ b/nixpkgs/pkgs/development/tools/typos/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Source code spell checker";
+    mainProgram = "typos";
     homepage = "https://github.com/crate-ci/typos";
     changelog = "https://github.com/crate-ci/typos/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/development/tools/uftrace/default.nix b/nixpkgs/pkgs/development/tools/uftrace/default.nix
index 26bb1cf60e00..17be739ea02b 100644
--- a/nixpkgs/pkgs/development/tools/uftrace/default.nix
+++ b/nixpkgs/pkgs/development/tools/uftrace/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Function (graph) tracer for user-space";
+    mainProgram = "uftrace";
     homepage = "https://github.com/namhyung/uftrace";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/development/tools/unconvert/default.nix b/nixpkgs/pkgs/development/tools/unconvert/default.nix
index ac49ad1f9696..21c0d08ab5ac 100644
--- a/nixpkgs/pkgs/development/tools/unconvert/default.nix
+++ b/nixpkgs/pkgs/development/tools/unconvert/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Remove unnecessary type conversions from Go source";
+    mainProgram = "unconvert";
     homepage = "https://github.com/mdempsky/unconvert";
     license = licenses.bsd3;
     maintainers = with maintainers; [ kalbasit ];
diff --git a/nixpkgs/pkgs/development/tools/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch b/nixpkgs/pkgs/development/tools/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch
index 75b8f0cf8dfe..ae0b3f37d505 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch
+++ b/nixpkgs/pkgs/development/tools/vagrant/0001-Revert-Merge-pull-request-12225-from-chrisroberts-re.patch
@@ -78,18 +78,18 @@ index c019f30ff..ba7e40076 100755
    at_exit(&Vagrant::Bundler.instance.method(:deinit))
  
 diff --git a/lib/vagrant.rb b/lib/vagrant.rb
-index f3dcba0bc..d696bdff8 100644
+index f790039d3..97e67e3b8 100644
 --- a/lib/vagrant.rb
 +++ b/lib/vagrant.rb
-@@ -81,7 +81,7 @@ if ENV["VAGRANT_LOG"] && ENV["VAGRANT_LOG"] != ""
-     # See https://github.com/rest-client/rest-client/issues/34#issuecomment-290858
-     # for more information
-     class VagrantLogger < Log4r::Logger
--      def << msg
-+      def << (msg)
-         debug(msg.strip)
-       end
-     end
+@@ -59,7 +59,7 @@ require "vagrant/plugin/manager"
+ # See https://github.com/rest-client/rest-client/issues/34#issuecomment-290858
+ # for more information
+ class VagrantLogger < Log4r::Logger
+-  def << msg
++  def << (msg)
+     debug(msg.strip)
+   end
+ end
 diff --git a/lib/vagrant/bundler.rb b/lib/vagrant/bundler.rb
 index eb2caabb0..d75f54362 100644
 --- a/lib/vagrant/bundler.rb
diff --git a/nixpkgs/pkgs/development/tools/vagrant/default.nix b/nixpkgs/pkgs/development/tools/vagrant/default.nix
index 5dc9e46671e9..cfd8d91f10cf 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/default.nix
+++ b/nixpkgs/pkgs/development/tools/vagrant/default.nix
@@ -1,13 +1,14 @@
 { stdenv, lib, fetchurl, buildRubyGem, bundlerEnv, ruby, libarchive
 , libguestfs, qemu, writeText, withLibvirt ? stdenv.isLinux
+, openssl
 }:
 
 let
   # NOTE: bumping the version and updating the hash is insufficient;
   # you must use bundix to generate a new gemset.nix in the Vagrant source.
-  version = "2.3.7";
+  version = "2.4.1";
   url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
-  hash = "sha256-+oqWMZqnuf9fSpkbd8vzf1SVSdhHN2JLzr76jyAEv0U=";
+  hash = "sha256-Gc+jBuP/rl3b8wUE9hoaMSSqmodyGxMKFAmNTqH+v4k=";
 
   deps = bundlerEnv rec {
     name = "${pname}-${version}";
@@ -50,6 +51,11 @@ in buildRubyGem rec {
   dontBuild = false;
   src = fetchurl { inherit url hash; };
 
+  # Some reports indicate that some connection types, particularly
+  # WinRM, suffer from "Digest initialization failed" errors. Adding
+  # openssl as a build input resolves this runtime error.
+  buildInputs = [ openssl ];
+
   patches = [
     ./unofficial-installation-nowarn.patch
     ./use-system-bundler-version.patch
@@ -105,8 +111,8 @@ in buildRubyGem rec {
   meta = with lib; {
     description = "A tool for building complete development environments";
     homepage = "https://www.vagrantup.com/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    license = licenses.bsl11;
+    maintainers = with maintainers; [ tylerjl ];
     platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/vagrant/gemset.nix b/nixpkgs/pkgs/development/tools/vagrant/gemset.nix
index ba76a4f8d8bf..d69322bc17c7 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/gemset.nix
+++ b/nixpkgs/pkgs/development/tools/vagrant/gemset.nix
@@ -9,6 +9,16 @@
     };
     version = "1.1.0";
   };
+  bigdecimal = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00db5v09k1z3539g1zrk7vkjrln9967k08adh6qx33ng97a2gg5w";
+      type = "gem";
+    };
+    version = "3.1.6";
+  };
   builder = {
     groups = ["default"];
     platforms = [];
@@ -34,30 +44,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q";
+      sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.2.3";
   };
   date = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03skfikihpx37rc27vr3hwrb057gxnmdzxhmzd4bf4jpkl0r55w1";
+      sha256 = "149jknsq999gnhy865n33fkk22s0r447k76x9pmcnnwldfv2q7wp";
       type = "gem";
     };
-    version = "3.3.3";
+    version = "3.3.4";
   };
   diff-lcs = {
     groups = ["default" "development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rwvjahnp7cpmracd8x732rjgnilqv2sx7d1gfrysslc3h039fa9";
+      sha256 = "1znxccz83m4xgpd239nyqxlifdb7m8rlfayk6s259186nkgj6ci7";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.5.1";
   };
   ed25519 = {
     groups = ["default"];
@@ -84,10 +94,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j826kfvzn7nc5pv950n270r0sx1702k988ad11cdlav3dcxxw09";
+      sha256 = "1kmmwgjzlrnc3nnrdnw1z67c95nbw0hv54a73yj8jw6pcvl9585x";
       type = "gem";
     };
-    version = "0.99.0";
+    version = "0.109.0";
   };
   fake_ftp = {
     groups = ["development"];
@@ -104,20 +114,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
+      sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
       type = "gem";
     };
-    version = "1.15.5";
+    version = "1.16.3";
   };
   google-protobuf = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zqyy07ps6zh0gi9nppmnsngzv5nx1qjv726mzhv83sh90rc25nm";
+      sha256 = "1mnxzcq8kmyfb9bkzqnp019d1hx1vprip3yzdkkha6b3qz5rgg9r";
       type = "gem";
     };
-    version = "3.22.2";
+    version = "3.25.3";
   };
   googleapis-common-protos-types = {
     dependencies = ["google-protobuf"];
@@ -125,10 +135,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12w5bwaziz2iqb9dvgnskp2a7ifml6n4lyl9ypvnxj5bfrrwysap";
+      sha256 = "1zrxnv9s2q39f2nh32x7nbfi8lpwzmmn3ji4adglg8dlfr1xrz16";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.13.0";
   };
   grpc = {
     dependencies = ["google-protobuf" "googleapis-common-protos-types"];
@@ -136,20 +146,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kj4j1g6l9v92k3byqyfq2kmawy12cj898daxqn1jsw0b458k0dh";
+      sha256 = "1ndyis4hyq5wyypvy5j2pxaax73k9xd9cdsc5hyvpk3vbnn26rdb";
       type = "gem";
     };
-    version = "1.53.0";
+    version = "1.56.2";
   };
   grpc-tools = {
     groups = ["development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dal0xca2f301jrh049agmrbab21yjqd8npizzz55dhqn9dkwdsl";
+      sha256 = "0pwwsmw402y8f8l3s3v433lx1f3cahzh2bj3i6jhkg1z87z83pqm";
       type = "gem";
     };
-    version = "1.53.0";
+    version = "1.62.0";
   };
   gssapi = {
     dependencies = ["ffi"];
@@ -199,20 +209,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vdcchz7jli1p0gnc669a7bj3q1fv09y9ppf0y3k0vb1jwdwrqwi";
+      sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
       type = "gem";
     };
-    version = "1.12.0";
+    version = "1.14.1";
   };
   ipaddr = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ypic2hrmvvcgw7al72raphqv5cs1zvq4w284pwrkvfqsrqrqrsf";
+      sha256 = "0p98v9b6rn5ma04qwvzs0nrg0hmnwpm70s9jshzdsrkqapcw4sh2";
       type = "gem";
     };
-    version = "1.2.5";
+    version = "1.2.6";
   };
   listen = {
     dependencies = ["rb-fsevent" "rb-inotify"];
@@ -220,10 +230,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13rgkfar8pp31z1aamxf5y7cfq88wv6rxxcwy7cmm177qq508ycn";
+      sha256 = "0rwwsmvq79qwzl6324yc53py02kbrcww35si720490z5w0j497nv";
       type = "gem";
     };
-    version = "3.8.0";
+    version = "3.9.0";
   };
   little-plugger = {
     groups = ["default"];
@@ -262,20 +272,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb";
+      sha256 = "1r64z0m5zrn4k37wabfnv43wa6yivgdfk6cf2rpmmirlz889yaf1";
       type = "gem";
     };
-    version = "3.4.1";
+    version = "3.5.2";
   };
   mime-types-data = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pky3vzaxlgm9gw5wlqwwi7wsw3jrglrfflrppvvnsrlaiz043z9";
+      sha256 = "0zpn5brxdf5akh7ij511bkrd30fxd7697shmxxszahqj9m62zvn5";
       type = "gem";
     };
-    version = "3.2023.0218.1";
+    version = "3.2024.0206";
   };
   multi_json = {
     groups = ["default"];
@@ -293,10 +303,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bqy9xg5225x102873j1qqq1bvnwfbi8lnf4357mpq6wimnw9pf9";
+      sha256 = "1pi67ywf8yvv18vr8kvyb1igdv8nsjafyy9c86fny5wvi10qcwqv";
       type = "gem";
     };
-    version = "0.2.0";
+    version = "0.3.4";
   };
   net-protocol = {
     dependencies = ["timeout"];
@@ -304,10 +314,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dxckrlw4q1lcn3qg4mimmjazmg9bma5gllv72f8js3p36fb3b91";
+      sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa";
       type = "gem";
     };
-    version = "0.2.1";
+    version = "0.2.2";
   };
   net-scp = {
     dependencies = ["net-ssh"];
@@ -336,40 +346,52 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yx0pb5fmziz92bw8qzbh8vf20lr56nd3s6q8h0gsgr307lki687";
+      sha256 = "1i01340c4i144vvn3x54lc2rb77ch829qipl1rh6rqwm3yxzml9w";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "7.2.1";
   };
   nori = {
+    dependencies = ["bigdecimal"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "066wc774a2zp4vrq3k7k8p0fhv30ymqmxma1jj7yg5735zls8agn";
+      sha256 = "12wfv36jzc0978ij5c56nnfh5k8ax574njawigs98ysmp1x5s2ql";
       type = "gem";
     };
-    version = "2.6.0";
+    version = "2.7.0";
   };
   pairing_heap = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15rcn0bd9z25dgbrsnjp9zva1hs22vnr54pzi9wjy62js2nfmx9r";
+      sha256 = "059kqpw53cancnp0bp7y1s74y1955riw33w3lqfbnms4b4mdh5zj";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "3.1.0";
   };
   rake = {
     groups = ["development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy";
       type = "gem";
     };
-    version = "13.0.6";
+    version = "13.1.0";
+  };
+  rake-compiler = {
+    dependencies = ["rake"];
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vhdkwblhzp4wp1jh95qiibly2zsnmg3659r6d5xp1mzgd9ghxji";
+      type = "gem";
+    };
+    version = "1.2.7";
   };
   rb-fsevent = {
     groups = ["default"];
@@ -408,10 +430,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
+      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
       type = "gem";
     };
-    version = "3.2.5";
+    version = "3.2.6";
   };
   rgl = {
     dependencies = ["pairing_heap" "rexml" "stream"];
@@ -430,10 +452,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "171rc90vcgjl8p1bdrqa92ymrj8a87qf6w20x05xq29mljcigi6c";
+      sha256 = "14xrp8vq6i9zx37vh0yp4h9m0anx9paw200l1r5ad9fmq559346l";
       type = "gem";
     };
-    version = "3.12.0";
+    version = "3.13.0";
   };
   rspec-core = {
     dependencies = ["rspec-support"];
@@ -441,10 +463,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0da45cvllbv39sdbsl65vp5djb2xf5m10mxc9jm7rsqyyxjw4h1f";
+      sha256 = "0k252n7s80bvjvpskgfm285a3djjjqyjcarlh3aq7a4dx2s94xsm";
       type = "gem";
     };
-    version = "3.12.1";
+    version = "3.13.0";
   };
   rspec-expectations = {
     dependencies = ["diff-lcs" "rspec-support"];
@@ -452,10 +474,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03ba3lfdsj9zl00v1yvwgcx87lbadf87livlfa5kgqssn9qdnll6";
+      sha256 = "0bhhjzwdk96vf3gq3rs7mln80q27fhq82hda3r15byb24b34h7b2";
       type = "gem";
     };
-    version = "3.12.2";
+    version = "3.13.0";
   };
   rspec-its = {
     dependencies = ["rspec-core" "rspec-expectations"];
@@ -474,20 +496,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hfm17xakfvwya236graj6c2arr4sb9zasp35q5fykhyz8mhs0w2";
+      sha256 = "0rkzkcfk2x0qjr5fxw6ib4wpjy0hqbziywplnp6pg3bm2l98jnkk";
       type = "gem";
     };
-    version = "3.12.5";
+    version = "3.13.0";
   };
   rspec-support = {
     groups = ["default" "development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12y52zwwb3xr7h91dy9k3ndmyyhr3mjcayk0nnarnrzz8yr48kfx";
+      sha256 = "03z7gpqz5xkw9rf53835pa8a9vgj4lic54rnix9vfwmp2m7pv1s8";
       type = "gem";
     };
-    version = "3.12.0";
+    version = "3.13.1";
   };
   rubyntlm = {
     groups = ["default"];
@@ -535,20 +557,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13pzdsgf3v06mymzipcpa7p80shyw328ybn775nzpnhc6n8y9g30";
+      sha256 = "0c15v19hyxjcfzaviqlwhgajgyrrlb0pjilza6mkv49bhspy6av6";
       type = "gem";
     };
-    version = "0.2.2";
+    version = "0.3.0";
   };
   timeout = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pfddf51n5fnj4f9ggwj3wbf23ynj0nbxlxqpz12y1gvl9g7d6r6";
+      sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg";
       type = "gem";
     };
-    version = "0.3.2";
+    version = "0.4.1";
   };
   vagrant-spec = {
     dependencies = ["childprocess" "log4r" "rspec" "thor"];
@@ -556,8 +578,8 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "708be5c53ea10131b19921c536eae012d1396a96";
-      sha256 = "0xnyai6wdx3xi5nhdvn7bpz73dlvnam4dckkwzd03apdssg6pnr6";
+      rev = "2a5afa7512753288b4ec1e26ec13bc6479b2fabb";
+      sha256 = "08l0qc7566126pqwn3cr91j5wgd2zqij8sacngr5yfsk2anl8fw0";
       type = "git";
       url = "https://github.com/hashicorp/vagrant-spec.git";
     };
@@ -569,10 +591,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0np0d8rjca130si5iaxasbqmfbbx4l3kd9mxdsa3p5mqiia7za3b";
+      sha256 = "0jhwciki5i8hjbgv2f1p544bi92s9wdsfrjympzslysdzk95djpg";
       type = "gem";
     };
-    version = "3.0.5";
+    version = "3.1.1";
   };
   wdm = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/development/tools/vendir/default.nix b/nixpkgs/pkgs/development/tools/vendir/default.nix
index 0420ef5e73a6..d7be7022a9d8 100644
--- a/nixpkgs/pkgs/development/tools/vendir/default.nix
+++ b/nixpkgs/pkgs/development/tools/vendir/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI tool to vendor portions of git repos, github releases, helm charts, docker image contents, etc. declaratively";
+    mainProgram = "vendir";
     homepage = "https://carvel.dev/vendir/";
     license = licenses.asl20;
     maintainers = with maintainers; [ russell ];
diff --git a/nixpkgs/pkgs/development/tools/viceroy/default.nix b/nixpkgs/pkgs/development/tools/viceroy/default.nix
index 9ac438f36df2..46b4240bfaf8 100644
--- a/nixpkgs/pkgs/development/tools/viceroy/default.nix
+++ b/nixpkgs/pkgs/development/tools/viceroy/default.nix
@@ -2,18 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "viceroy";
-  version = "0.9.4";
+  version = "0.9.5";
 
   src = fetchFromGitHub {
     owner = "fastly";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-0eihk5zekp7sJ8fj1P0FT/JXWZ79j0U/hw5fjlbAJEo=";
+    hash = "sha256-FdAUcKey3FamMWKKVDCL+ndXC4bBZHo1om9IUeLMZkA=";
   };
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
-  cargoHash = "sha256-pSFeBA3ux90bCX9iIW6aTGMCytWW/euYHpYppIJoYGc=";
+  cargoHash = "sha256-+zlRLs/m9ThiBgzKWkIpUIL3jWMz/o+hD0m0Vks4HzY=";
 
   cargoTestFlags = [
     "--package viceroy-lib"
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Viceroy provides local testing for developers working with Compute@Edge";
+    mainProgram = "viceroy";
     homepage = "https://github.com/fastly/Viceroy";
     license = licenses.asl20;
     maintainers = with maintainers; [ ereslibre shyim ];
diff --git a/nixpkgs/pkgs/development/tools/vndr/default.nix b/nixpkgs/pkgs/development/tools/vndr/default.nix
index d4e665adc414..29668e3097e7 100644
--- a/nixpkgs/pkgs/development/tools/vndr/default.nix
+++ b/nixpkgs/pkgs/development/tools/vndr/default.nix
@@ -17,6 +17,7 @@ buildGoPackage rec {
 
   meta = {
     description = "Stupid golang vendoring tool, inspired by docker vendor script";
+    mainProgram = "vndr";
     homepage = "https://github.com/LK4D4/vndr";
     maintainers = with lib.maintainers; [ vdemeester rvolosatovs ];
     license = lib.licenses.asl20;
diff --git a/nixpkgs/pkgs/development/tools/vultr-cli/default.nix b/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
index fc557907e4df..c380a2c45bc8 100644
--- a/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
@@ -1,23 +1,23 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "vultr-cli";
-  version = "3.0.1";
+  version = "3.0.3";
 
   src = fetchFromGitHub {
     owner = "vultr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-9akEDsBj2EpZtUBh0+Dck5otsmFzdvJshXxOtYVdi1o=";
+    hash = "sha256-6OVigI2eHE8qFC5nmH67NcKkDD0iFXl3ynYJyFcpmGw=";
   };
 
-  vendorHash = "sha256-jkl36S7h1l6FeeHEhc+PKOQO9Uq/4L5wTb8+PhG2exY=";
+  vendorHash = "sha256-MDzYiLMYoR9qOTPVnlzTDbgVvg72HDP2DpM6NKUFNdg=";
 
   nativeBuildInputs = [ installShellFiles ];
 
   ldflags = [ "-s" "-w" ];
 
-  postInstall = ''
+  postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
     installShellCompletion --cmd vultr-cli \
       --bash <($out/bin/vultr-cli completion bash) \
       --fish <($out/bin/vultr-cli completion fish) \
diff --git a/nixpkgs/pkgs/development/tools/vultr/default.nix b/nixpkgs/pkgs/development/tools/vultr/default.nix
index 71a048455787..e7f600b9765f 100644
--- a/nixpkgs/pkgs/development/tools/vultr/default.nix
+++ b/nixpkgs/pkgs/development/tools/vultr/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Vultr CLI and API client library";
+    mainProgram = "vultr";
     homepage = "https://jamesclonk.github.io/vultr";
     changelog = "https://github.com/JamesClonk/vultr/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/wails/default.nix b/nixpkgs/pkgs/development/tools/wails/default.nix
index c94139f7feda..34c4ae6aa371 100644
--- a/nixpkgs/pkgs/development/tools/wails/default.nix
+++ b/nixpkgs/pkgs/development/tools/wails/default.nix
@@ -66,6 +66,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Build applications using Go + HTML + CSS + JS";
+    mainProgram = "wails";
     homepage = "https://wails.io";
     license = licenses.mit;
     maintainers = with maintainers; [ ianmjones ];
diff --git a/nixpkgs/pkgs/development/tools/wally-cli/default.nix b/nixpkgs/pkgs/development/tools/wally-cli/default.nix
index 547f68bf8f33..b0f3375984b4 100644
--- a/nixpkgs/pkgs/development/tools/wally-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/wally-cli/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool to flash firmware to mechanical keyboards";
+    mainProgram = "wally-cli";
     homepage = "https://ergodox-ez.com/pages/wally-planck";
     platforms = with platforms; linux ++ darwin;
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/wambo/default.nix b/nixpkgs/pkgs/development/tools/wambo/default.nix
index f5e277d415ef..fe79c186259b 100644
--- a/nixpkgs/pkgs/development/tools/wambo/default.nix
+++ b/nixpkgs/pkgs/development/tools/wambo/default.nix
@@ -16,6 +16,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = {
     description = "All-in-one tool to convert decimal/bin/oct/hex and interpret bits as integers";
+    mainProgram = "wambo";
     longDescription = ''
       wambo is a binary that can easily shows you a numeric value in all important numeral systems
       (bin, hex, dec) + interprets the input as both signed and unsigned values (from i8 to i64,
diff --git a/nixpkgs/pkgs/development/tools/wasm-pack/default.nix b/nixpkgs/pkgs/development/tools/wasm-pack/default.nix
index d805b529d678..4354019aa0be 100644
--- a/nixpkgs/pkgs/development/tools/wasm-pack/default.nix
+++ b/nixpkgs/pkgs/development/tools/wasm-pack/default.nix
@@ -26,6 +26,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A utility that builds rust-generated WebAssembly package";
+    mainProgram = "wasm-pack";
     homepage = "https://github.com/rustwasm/wasm-pack";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.dhkl ];
diff --git a/nixpkgs/pkgs/development/tools/wasmserve/default.nix b/nixpkgs/pkgs/development/tools/wasmserve/default.nix
index 3248082e2a4c..1372534d05e5 100644
--- a/nixpkgs/pkgs/development/tools/wasmserve/default.nix
+++ b/nixpkgs/pkgs/development/tools/wasmserve/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An HTTP server for testing Wasm";
+    mainProgram = "wasmserve";
     homepage = "https://github.com/hajimehoshi/wasmserve";
     license = licenses.asl20;
     maintainers = with maintainers; [ kirillrdy ];
diff --git a/nixpkgs/pkgs/development/tools/wgo/default.nix b/nixpkgs/pkgs/development/tools/wgo/default.nix
index 3ed1fc89bf4e..9733cfd07343 100644
--- a/nixpkgs/pkgs/development/tools/wgo/default.nix
+++ b/nixpkgs/pkgs/development/tools/wgo/default.nix
@@ -31,6 +31,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "Live reload for Go apps";
+    mainProgram = "wgo";
     homepage = "https://github.com/bokwoon95/wgo";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/development/tools/wiggle/default.nix b/nixpkgs/pkgs/development/tools/wiggle/default.nix
index 2da789fdc603..bb2ea2665749 100644
--- a/nixpkgs/pkgs/development/tools/wiggle/default.nix
+++ b/nixpkgs/pkgs/development/tools/wiggle/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://blog.neil.brown.name/category/wiggle/";
     description = "Tool for applying patches with conflicts";
+    mainProgram = "wiggle";
     longDescription = ''
       Wiggle applies patches to a file in a similar manner to the patch(1)
       program. The distinctive difference is, however, that wiggle will
diff --git a/nixpkgs/pkgs/development/tools/wiiload/default.nix b/nixpkgs/pkgs/development/tools/wiiload/default.nix
index 3d7f1b798633..f2ff285cb745 100644
--- a/nixpkgs/pkgs/development/tools/wiiload/default.nix
+++ b/nixpkgs/pkgs/development/tools/wiiload/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Load homebrew apps over network/usbgecko to your Wii";
+    mainProgram = "wiiload";
     homepage = "https://wiibrew.org/wiki/Wiiload";
     license = licenses.gpl2;
     maintainers = with maintainers; [ tomsmeets ];
diff --git a/nixpkgs/pkgs/development/tools/winhelpcgi/default.nix b/nixpkgs/pkgs/development/tools/winhelpcgi/default.nix
index 608ab00f50b6..c2d4dd31bf1c 100644
--- a/nixpkgs/pkgs/development/tools/winhelpcgi/default.nix
+++ b/nixpkgs/pkgs/development/tools/winhelpcgi/default.nix
@@ -14,6 +14,7 @@
 
   meta = {
     description = "CGI module for Linux, Solaris, MacOS X and AIX to read Windows Help Files";
+    mainProgram = "winhelpcgi.cgi";
     homepage = "http://www.herdsoft.com/linux/produkte/winhelpcgi.html";
     license = lib.licenses.gpl2Only;
     maintainers = [ lib.maintainers.shlevy ];
diff --git a/nixpkgs/pkgs/development/tools/wire/default.nix b/nixpkgs/pkgs/development/tools/wire/default.nix
index 601c7fa8df7c..540f5c6a845e 100644
--- a/nixpkgs/pkgs/development/tools/wire/default.nix
+++ b/nixpkgs/pkgs/development/tools/wire/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/google/wire";
     description = "A code generation tool that automates connecting components using dependency injection";
+    mainProgram = "wire";
     license = licenses.asl20;
     maintainers = with maintainers; [ svrana ];
   };
diff --git a/nixpkgs/pkgs/development/tools/wizer/default.nix b/nixpkgs/pkgs/development/tools/wizer/default.nix
index 29a9c7420129..0f8e25e54bd6 100644
--- a/nixpkgs/pkgs/development/tools/wizer/default.nix
+++ b/nixpkgs/pkgs/development/tools/wizer/default.nix
@@ -8,7 +8,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wizer";
-  version = "4.0.0";
+  version = "5.0.0";
 
   # the crate does not contain files which are necessary for the tests
   # see https://github.com/bytecodealliance/wizer/commit/3a95e27ce42f1fdaef07b52988e4699eaa221e04
@@ -16,10 +16,10 @@ rustPlatform.buildRustPackage rec {
     owner = "bytecodealliance";
     repo = "wizer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KFMfNgoKZWVLXNUYHWpAP8CCnVQLv/cDmQgzz29lKxQ=";
+    hash = "sha256-VkWnmwOnlNkfgUyFXV+iwsUdJcJgzUCNus+FiV9sg0Y=";
   };
 
-  cargoHash = "sha256-kKN2JwzuFe7q8VZcKOjc5PkN3isHzzQcTJAvapGBdAE=";
+  cargoHash = "sha256-KSdQqt9szk8qmg3DxBatkJvv//KbSx/MEulJx1gNmB8=";
 
   cargoBuildFlags = [ "--bin" pname ];
 
@@ -37,6 +37,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "The WebAssembly pre-initializer";
+    mainProgram = "wizer";
     homepage = "https://github.com/bytecodealliance/wizer";
     license = licenses.asl20;
     maintainers = with maintainers; [ lucperkins amesgen ];
diff --git a/nixpkgs/pkgs/development/tools/worker-build/default.nix b/nixpkgs/pkgs/development/tools/worker-build/default.nix
index 620fd87142ff..8f78048e8e19 100644
--- a/nixpkgs/pkgs/development/tools/worker-build/default.nix
+++ b/nixpkgs/pkgs/development/tools/worker-build/default.nix
@@ -27,6 +27,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "This is a tool to be used as a custom build command for a Cloudflare Workers `workers-rs` project.";
+    mainProgram = "worker-build";
     homepage = "https://github.com/cloudflare/workers-rs";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ happysalada ];
diff --git a/nixpkgs/pkgs/development/tools/wp4nix/default.nix b/nixpkgs/pkgs/development/tools/wp4nix/default.nix
index 08a202784ce0..6a829b4ae267 100644
--- a/nixpkgs/pkgs/development/tools/wp4nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/wp4nix/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Packaging helper for Wordpress themes and plugins";
+    mainProgram = "wp4nix";
     homepage = "https://git.helsinki.tools/helsinki-systems/wp4nix";
     license = licenses.mit;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/development/tools/wrangler_1/default.nix b/nixpkgs/pkgs/development/tools/wrangler_1/default.nix
index 44bd00cf69aa..0302e40492aa 100644
--- a/nixpkgs/pkgs/development/tools/wrangler_1/default.nix
+++ b/nixpkgs/pkgs/development/tools/wrangler_1/default.nix
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A CLI tool designed for folks who are interested in using Cloudflare Workers";
+    mainProgram = "wrangler";
     homepage = "https://github.com/cloudflare/wrangler";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ Br1ght0ne ];
diff --git a/nixpkgs/pkgs/development/tools/xc/default.nix b/nixpkgs/pkgs/development/tools/xc/default.nix
index 0e09b77e453e..9acf27ca3c33 100644
--- a/nixpkgs/pkgs/development/tools/xc/default.nix
+++ b/nixpkgs/pkgs/development/tools/xc/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Markdown defined task runner";
+    mainProgram = "xc";
     homepage = "https://xcfile.dev/";
     changelog = "https://github.com/joerdav/xc/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/xqilla/default.nix b/nixpkgs/pkgs/development/tools/xqilla/default.nix
index 342ca426801d..352f41f47bb4 100644
--- a/nixpkgs/pkgs/development/tools/xqilla/default.nix
+++ b/nixpkgs/pkgs/development/tools/xqilla/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An XQuery and XPath 2 library and command line utility written in C++, implemented on top of the Xerces-C library";
+    mainProgram = "xqilla";
     license     = licenses.asl20 ;
     maintainers = with maintainers; [ obadz ];
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/development/tools/yaml2json/default.nix b/nixpkgs/pkgs/development/tools/yaml2json/default.nix
index 444b0b0017e1..908d650e16c7 100644
--- a/nixpkgs/pkgs/development/tools/yaml2json/default.nix
+++ b/nixpkgs/pkgs/development/tools/yaml2json/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/bronze1man/yaml2json";
     description = "Convert yaml to json";
+    mainProgram = "yaml2json";
     license = with licenses; [ mit ];
     maintainers = [ ];
   };
diff --git a/nixpkgs/pkgs/development/tools/yarn/default.nix b/nixpkgs/pkgs/development/tools/yarn/default.nix
index 330212545020..1a9a619c7b15 100644
--- a/nixpkgs/pkgs/development/tools/yarn/default.nix
+++ b/nixpkgs/pkgs/development/tools/yarn/default.nix
@@ -10,11 +10,11 @@ let
 in
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "yarn";
-  version = "1.22.19";
+  version = "1.22.22";
 
   src = fetchzip {
     url = "https://github.com/yarnpkg/yarn/releases/download/v${finalAttrs.version}/yarn-v${finalAttrs.version}.tar.gz";
-    sha256 = "sha256-12wUuWH+kkqxAgVYkyhIYVtexjv8DFP9kLpFLWg+h0o=";
+    sha256 = "sha256-kFa+kmnBerTB7fY/IvfAFy/4LWvrl9lrRHMOUdOZ+Wg=";
   };
 
   buildInputs = [ nodejs ];
diff --git a/nixpkgs/pkgs/development/tools/ytt/default.nix b/nixpkgs/pkgs/development/tools/ytt/default.nix
index 0520871d698c..ea1cd39a6ccf 100644
--- a/nixpkgs/pkgs/development/tools/ytt/default.nix
+++ b/nixpkgs/pkgs/development/tools/ytt/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "YAML templating tool that allows configuration of complex software via reusable templates with user-provided values";
+    mainProgram = "ytt";
     homepage = "https://get-ytt.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ brodes techknowlogick ];
diff --git a/nixpkgs/pkgs/development/tools/yuicompressor/default.nix b/nixpkgs/pkgs/development/tools/yuicompressor/default.nix
index fdde9941bd5e..281aaee522c2 100644
--- a/nixpkgs/pkgs/development/tools/yuicompressor/default.nix
+++ b/nixpkgs/pkgs/development/tools/yuicompressor/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A JavaScript and CSS minifier";
+    mainProgram = "yuicompressor";
     homepage = "http://yui.github.io/yuicompressor/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/tools/zprint/default.nix b/nixpkgs/pkgs/development/tools/zprint/default.nix
index 6e76f0819fc1..0d8f66d436f8 100644
--- a/nixpkgs/pkgs/development/tools/zprint/default.nix
+++ b/nixpkgs/pkgs/development/tools/zprint/default.nix
@@ -7,11 +7,11 @@
 
 buildGraalvmNativeImage rec {
   pname = "zprint";
-  version = "1.2.8";
+  version = "1.2.9";
 
   src = fetchurl {
     url = "https://github.com/kkinnear/${pname}/releases/download/${version}/${pname}-filter-${version}";
-    sha256 = "sha256-o0yoW45a5r+sTGvjEqr5VZgQKm72qsPH/kbLTbMTgEM=";
+    sha256 = "sha256-4gSGD7Jiu1mqyPMoQrrPT60EFXs7ySfjpT9wSyhp3ig=";
   };
 
   extraNativeImageBuildArgs = [
diff --git a/nixpkgs/pkgs/development/tools/zsv/default.nix b/nixpkgs/pkgs/development/tools/zsv/default.nix
index d9575d92bb38..c311a4de9df4 100644
--- a/nixpkgs/pkgs/development/tools/zsv/default.nix
+++ b/nixpkgs/pkgs/development/tools/zsv/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "World's fastest (simd) CSV parser, with an extensible CLI";
+    mainProgram = "zsv";
     homepage = "https://github.com/liquidaty/zsv";
     changelog = "https://github.com/liquidaty/zsv/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/web/boa/default.nix b/nixpkgs/pkgs/development/web/boa/default.nix
index 003e98290298..93755932b33b 100644
--- a/nixpkgs/pkgs/development/web/boa/default.nix
+++ b/nixpkgs/pkgs/development/web/boa/default.nix
@@ -47,6 +47,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "An embeddable and experimental Javascript engine written in Rust";
+    mainProgram = "boa";
     homepage = "https://github.com/boa-dev/boa";
     changelog = "https://github.com/boa-dev/boa/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ mit /* or */ unlicense ];
diff --git a/nixpkgs/pkgs/development/web/bun/default.nix b/nixpkgs/pkgs/development/web/bun/default.nix
index 916f125dcc49..faf6a4af7986 100644
--- a/nixpkgs/pkgs/development/web/bun/default.nix
+++ b/nixpkgs/pkgs/development/web/bun/default.nix
@@ -12,7 +12,7 @@
 }:
 
 stdenvNoCC.mkDerivation rec {
-  version = "1.0.29";
+  version = "1.0.33";
   pname = "bun";
 
   src = passthru.sources.${stdenvNoCC.hostPlatform.system} or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}");
@@ -51,19 +51,19 @@ stdenvNoCC.mkDerivation rec {
     sources = {
       "aarch64-darwin" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-aarch64.zip";
-        hash = "sha256-tcrFHzGJkpVDkrEUff6OR4i76E2+dmYIXuwJ3BiNvQc=";
+        hash = "sha256-tAZi8AJswFe9iQy68Ul9mcr7OYQN4TeP2THSvYewPRU=";
       };
       "aarch64-linux" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-aarch64.zip";
-        hash = "sha256-ujiVw1Pemlo+OHPj8JtazNzYVziq8a65mYdXcS5ViL4=";
+        hash = "sha256-6cog3hl/SfAN+G63F4HIT4avlxy47COkv6FQPjhyr2k=";
       };
       "x86_64-darwin" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-x64.zip";
-        hash = "sha256-rY9VixMXgn8E2NzZpJg873eADM9ZnJnAkdAVnj91S2o=";
+        hash = "sha256-O13dENBJ9mBkKrsLjGgBCGDFvzp5jkF7+7m65Z7Rj8Q=";
       };
       "x86_64-linux" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-x64.zip";
-        hash = "sha256-mhDFX6Z1UFGXLqDbUAt8TP/8Ejavzu+WdFGayrtS2Ns=";
+        hash = "sha256-nYohWMmsYv8SzdEoHSTPUveuwlhYdmLYFS7R2aqeou0=";
       };
     };
     updateScript = writeShellScript "update-bun" ''
diff --git a/nixpkgs/pkgs/development/web/deno/default.nix b/nixpkgs/pkgs/development/web/deno/default.nix
index 557913e957dd..ef291d6fee82 100644
--- a/nixpkgs/pkgs/development/web/deno/default.nix
+++ b/nixpkgs/pkgs/development/web/deno/default.nix
@@ -9,20 +9,20 @@
 , libiconv
 , darwin
 , librusty_v8 ? callPackage ./librusty_v8.nix { }
+,
 }:
-
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.41.1";
+  version = "1.41.3";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-dbURsob4FLdTK8TiHUnmY4Gjd0bw+EDZu1R0WZJnJG8=";
+    hash = "sha256-Urcy3kvwBz5Ey0LnoT6/N7V/QJg2SIBHVmWa12WOTKw=";
   };
 
-  cargoHash = "sha256-8pENTx8BG23L7m3hlv++KvFY/xOjcXAHuw5V60p4Nh8=";
+  cargoHash = "sha256-NhJ3Uldncjx/KHAMVCd6U4Q0fbmc+u4E7JNZHcy/zQY=";
 
   postPatch = ''
     # upstream uses lld on aarch64-darwin for faster builds
@@ -40,8 +40,8 @@ rustPlatform.buildRustPackage rec {
     installShellFiles
   ];
   buildInputs = lib.optionals stdenv.isDarwin (
-    [ libiconv darwin.libobjc ] ++
-    (with darwin.apple_sdk_11_0.frameworks; [
+    [ libiconv darwin.libobjc ]
+    ++ (with darwin.apple_sdk_11_0.frameworks; [
       Security
       CoreServices
       Metal
diff --git a/nixpkgs/pkgs/development/web/deno/librusty_v8.nix b/nixpkgs/pkgs/development/web/deno/librusty_v8.nix
index 7e8f9eafc498..4ced5309ffda 100644
--- a/nixpkgs/pkgs/development/web/deno/librusty_v8.nix
+++ b/nixpkgs/pkgs/development/web/deno/librusty_v8.nix
@@ -10,11 +10,11 @@ let
   };
 in
 fetch_librusty_v8 {
-  version = "0.83.2";
+  version = "0.85.0";
   shas = {
-    x86_64-linux = "sha256-RJNdy5jRZK3dTgrHsWuZZAHUyy1EogyNNuBekZ3Arrk=";
-    aarch64-linux = "sha256-mpOmuqtd7ob6xvrgH4P/6GLa/hXTS/ok0WOYo7+7ZhI=";
-    x86_64-darwin = "sha256-2o8CvJ3r5+4PLNGTySqPPDTqbU0piX4D1UtZMscMdHU=";
-    aarch64-darwin = "sha256-WHeITWSHjZxfQJndxcjsp4yIERKrKXSHFZ0UBc43p8o=";
+    x86_64-linux = "sha256-Ma6JewYaHuPLihKnwwq8pAo+6sraXMghnl+wMvRfP1Y=";
+    aarch64-linux = "sha256-Y55ZXuyB2kq2a/cJwIo7DxClg2juAsGYpyTmwYE2W3Q=";
+    x86_64-darwin = "sha256-njP3obzJxr8I4G3jhDNbiVL8Cxa9D4KPGXW7VFrAZQY=";
+    aarch64-darwin = "sha256-/8UFpUgdSKihxd4qsBoxYFrjEKUG3cDSkwJ5NSdmSQs=";
   };
 }
diff --git a/nixpkgs/pkgs/development/web/edge-runtime/default.nix b/nixpkgs/pkgs/development/web/edge-runtime/default.nix
index a84e232bbb4c..a8e9dbe824a4 100644
--- a/nixpkgs/pkgs/development/web/edge-runtime/default.nix
+++ b/nixpkgs/pkgs/development/web/edge-runtime/default.nix
@@ -65,6 +65,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "A server based on Deno runtime, capable of running JavaScript, TypeScript, and WASM services";
+    mainProgram = "edge-runtime";
     homepage = "https://github.com/supabase/edge-runtime";
     license = licenses.mit;
     maintainers = with maintainers; [ happysalada ];
diff --git a/nixpkgs/pkgs/development/web/flyctl/default.nix b/nixpkgs/pkgs/development/web/flyctl/default.nix
index 2c7da6ad3569..0d7f9f2c38f6 100644
--- a/nixpkgs/pkgs/development/web/flyctl/default.nix
+++ b/nixpkgs/pkgs/development/web/flyctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGo122Module rec {
   pname = "flyctl";
-  version = "0.2.6";
+  version = "0.2.17";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    hash = "sha256-A0mlfTeAAeMvmzIvWGALmvMGtGOgVU3X9kvSyrvtK54=";
+    hash = "sha256-XE1kZdR9ZbWMqp0neouZBvNtIJbOdzp/aMe+uA85zL8=";
   };
 
-  vendorHash = "sha256-9l9zft37cGqVp6SBCc4bQcyNLpzSrLDbC++0ywkpDYU=";
+  vendorHash = "sha256-ZX7hcxQJdSLwY37DnV3vKcBW+K9F5RMPUeMtWzm48Dc=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/development/web/function-runner/default.nix b/nixpkgs/pkgs/development/web/function-runner/default.nix
index a3526a0c5584..ba1be2863f81 100644
--- a/nixpkgs/pkgs/development/web/function-runner/default.nix
+++ b/nixpkgs/pkgs/development/web/function-runner/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A CLI tool which allows you to run Wasm Functions intended for the Shopify Functions infrastructure";
+    mainProgram = "function-runner";
     homepage = "https://github.com/Shopify/function-runner";
     license = licenses.asl20;
     maintainers = with maintainers; [ nintron ];
diff --git a/nixpkgs/pkgs/development/web/grails/default.nix b/nixpkgs/pkgs/development/web/grails/default.nix
index 95660e2f3d60..3daeaa7d41b4 100644
--- a/nixpkgs/pkgs/development/web/grails/default.nix
+++ b/nixpkgs/pkgs/development/web/grails/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Full stack, web application framework for the JVM";
+    mainProgram = "grails";
     longDescription = ''
       Grails is an Open Source, full stack, web application framework for the
       JVM. It takes advantage of the Groovy programming language and convention
diff --git a/nixpkgs/pkgs/development/web/ihp-new/default.nix b/nixpkgs/pkgs/development/web/ihp-new/default.nix
index a11203238441..63cd36581078 100644
--- a/nixpkgs/pkgs/development/web/ihp-new/default.nix
+++ b/nixpkgs/pkgs/development/web/ihp-new/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Project generator for the IHP (Integrated Haskell Platform) web framework";
+    mainProgram = "ihp-new";
     homepage = "https://ihp.digitallyinduced.com";
     license = licenses.mit;
     maintainers = [ maintainers.mpscholten ];
diff --git a/nixpkgs/pkgs/development/web/insomnia/default.nix b/nixpkgs/pkgs/development/web/insomnia/default.nix
index 597ff71a6fc8..422c6b737889 100644
--- a/nixpkgs/pkgs/development/web/insomnia/default.nix
+++ b/nixpkgs/pkgs/development/web/insomnia/default.nix
@@ -90,6 +90,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://insomnia.rest/";
     description = "The most intuitive cross-platform REST API Client";
+    mainProgram = "insomnia";
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/development/web/kore/default.nix b/nixpkgs/pkgs/development/web/kore/default.nix
index 878737ce706f..13caf0e781fc 100644
--- a/nixpkgs/pkgs/development/web/kore/default.nix
+++ b/nixpkgs/pkgs/development/web/kore/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchFromGitHub, openssl, curl, postgresql, yajl }:
 
+
 stdenv.mkDerivation rec {
   pname = "kore";
   version = "4.2.3";
@@ -27,9 +28,14 @@ stdenv.mkDerivation rec {
     make platform.h
   '';
 
-  # added to fix build w/gcc7 and clang5
-  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=pointer-compare"
-    + lib.optionalString stdenv.cc.isClang " -Wno-error=unknown-warning-option";
+  env.NIX_CFLAGS_COMPILE = toString ([
+    "-Wno-error=deprecated-declarations"
+  ] ++ lib.optionals stdenv.cc.isGNU [
+    "-Wno-error=pointer-compare"
+    "-Wno-error=discarded-qualifiers"
+  ] ++ lib.optionals stdenv.cc.isClang [
+    "-Wno-error=incompatible-pointer-types-discards-qualifiers"
+  ]);
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/web/newman/default.nix b/nixpkgs/pkgs/development/web/newman/default.nix
index 020db1ac5b03..d06331b6badb 100644
--- a/nixpkgs/pkgs/development/web/newman/default.nix
+++ b/nixpkgs/pkgs/development/web/newman/default.nix
@@ -21,6 +21,7 @@ buildNpmPackage rec {
   meta = with lib; {
     homepage = "https://www.getpostman.com";
     description = "A command-line collection runner for Postman";
+    mainProgram = "newman";
     changelog = "https://github.com/postmanlabs/newman/releases/tag/v${version}";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/web/nodejs/v18.nix b/nixpkgs/pkgs/development/web/nodejs/v18.nix
index e5551dc29c55..bc86d6c89dbd 100644
--- a/nixpkgs/pkgs/development/web/nodejs/v18.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/v18.nix
@@ -7,7 +7,6 @@ let
     if packages.stdenv.cc.isClang && lib.versionAtLeast (lib.getVersion packages.stdenv.cc.cc) "16"
       then overrideCC packages.llvmPackages_15.stdenv (packages.llvmPackages_15.stdenv.cc.override {
         inherit (packages.llvmPackages) libcxx;
-        extraPackages = [ packages.llvmPackages.libcxxabi ];
       })
       else packages.stdenv;
 
diff --git a/nixpkgs/pkgs/development/web/nodejs/v21.nix b/nixpkgs/pkgs/development/web/nodejs/v21.nix
index 51460f6ce786..d71480602d54 100644
--- a/nixpkgs/pkgs/development/web/nodejs/v21.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/v21.nix
@@ -8,8 +8,8 @@ let
 in
 buildNodejs {
   inherit enableNpm;
-  version = "21.7.0";
-  sha256 = "sha256-5B7v4eWWJO5/MSw4+PffwRWVZBrLIpPSEXbwPSdj6dQ=";
+  version = "21.7.1";
+  sha256 = "sha256-EnK24SnVZNveF1J7hEIQuXHCCnCucpJoGGt8udmQpks=";
   patches = [
     ./disable-darwin-v8-system-instrumentation-node19.patch
     ./bypass-darwin-xcrun-node16.patch
diff --git a/nixpkgs/pkgs/development/web/playwright/driver.nix b/nixpkgs/pkgs/development/web/playwright/driver.nix
index 7f755eda21ce..3e6f3f233965 100644
--- a/nixpkgs/pkgs/development/web/playwright/driver.nix
+++ b/nixpkgs/pkgs/development/web/playwright/driver.nix
@@ -79,6 +79,7 @@ let
       }.${system} or throwSystem;
       browsers-chromium = browsers-linux {};
     };
+    meta.mainProgram = "playwright";
   });
 
   browsers-mac = stdenv.mkDerivation {
diff --git a/nixpkgs/pkgs/development/web/pnpm-lock-export/default.nix b/nixpkgs/pkgs/development/web/pnpm-lock-export/default.nix
index 4c39eab90fef..e965befb5700 100644
--- a/nixpkgs/pkgs/development/web/pnpm-lock-export/default.nix
+++ b/nixpkgs/pkgs/development/web/pnpm-lock-export/default.nix
@@ -24,6 +24,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     description = "A utility for converting pnpm-lock.yaml to other lockfile formats";
+    mainProgram = "pnpm-lock-export";
     homepage = "https://github.com/cvent/pnpm-lock-export";
     license = licenses.mit;
     maintainers = with maintainers; [ ambroisie ];
diff --git a/nixpkgs/pkgs/development/web/publii/default.nix b/nixpkgs/pkgs/development/web/publii/default.nix
index e6dbca0e71df..e09e21f174a7 100644
--- a/nixpkgs/pkgs/development/web/publii/default.nix
+++ b/nixpkgs/pkgs/development/web/publii/default.nix
@@ -25,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = "publii";
-  version = "0.45.1";
+  version = "0.45.2";
 
   src = fetchurl {
     url = "https://getpublii.com/download/Publii-${version}.deb";
-    hash = "sha256-R+TlxF6j5qv7wOr4lxCqd1pulyiEXPUe4B2HFMhD020=";
+    hash = "sha256-NGS5ovaJ6XskCimN48mqvUdoA+N9eDlIpazV0GDEs3E=";
   };
 
   dontConfigure = true;
@@ -88,6 +88,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Static Site CMS with GUI to build privacy-focused SEO-friendly website.";
+    mainProgram = "Publii";
     longDescription = ''
       Creating a website doesn't have to be complicated or expensive. With Publii, the most
       intuitive static site CMS, you can create a beautiful, safe, and privacy-friendly website
diff --git a/nixpkgs/pkgs/development/web/shopify-themekit/default.nix b/nixpkgs/pkgs/development/web/shopify-themekit/default.nix
index 5d20a9102475..5472f38fd727 100644
--- a/nixpkgs/pkgs/development/web/shopify-themekit/default.nix
+++ b/nixpkgs/pkgs/development/web/shopify-themekit/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "shopify-themekit";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "Shopify";
     repo = "themekit";
     rev = "v${version}";
-    sha256 = "sha256-HtgA+R6THZ49WYtGlHS1EzekjuuGgPe657Y6ewraD4o=";
+    sha256 = "sha256-A/t6yQW2xRFZYuYRyNN/0v4zdivch3tiv65a7TdHm2c=";
   };
 
-  vendorHash = "sha256-8QpkYj0fQb4plzvk6yCrZho8rq9VBiLft/EO3cczciI=";
+  vendorHash = "sha256-o928qjp7+/U1W03esYTwVEfQ4A3TmPnmgmh4oWpqJoo=";
 
   ldflags = [ "-s" "-w" ];
 
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A command line tool for shopify themes";
+    mainProgram = "theme";
     homepage = "https://shopify.github.io/themekit/";
     license = licenses.mit;
     maintainers = with maintainers; [ _1000101 ];
diff --git a/nixpkgs/pkgs/development/web/xmlindent/default.nix b/nixpkgs/pkgs/development/web/xmlindent/default.nix
index 0edbf41e2af2..a860c102a219 100644
--- a/nixpkgs/pkgs/development/web/xmlindent/default.nix
+++ b/nixpkgs/pkgs/development/web/xmlindent/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "XML stream reformatter";
+    mainProgram = "xmlindent";
     homepage = "https://xmlindent.sourceforge.net/";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/games/2048-in-terminal/default.nix b/nixpkgs/pkgs/games/2048-in-terminal/default.nix
index 2ffefb601125..e7347c8fe880 100644
--- a/nixpkgs/pkgs/games/2048-in-terminal/default.nix
+++ b/nixpkgs/pkgs/games/2048-in-terminal/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Animated console version of the 2048 game";
+    mainProgram = "2048-in-terminal";
     license = licenses.mit;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/games/20kly/default.nix b/nixpkgs/pkgs/games/20kly/default.nix
index 0cc61367e28e..c2ab35019516 100644
--- a/nixpkgs/pkgs/games/20kly/default.nix
+++ b/nixpkgs/pkgs/games/20kly/default.nix
@@ -39,6 +39,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A steampunk-themed strategy game where you have to manage a steam supply network";
+    mainProgram = "lightyears";
     homepage = "http://jwhitham.org.uk/20kly/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ fgaz ];
diff --git a/nixpkgs/pkgs/games/90secondportraits/default.nix b/nixpkgs/pkgs/games/90secondportraits/default.nix
index fd6bb9239938..bd60c836b636 100644
--- a/nixpkgs/pkgs/games/90secondportraits/default.nix
+++ b/nixpkgs/pkgs/games/90secondportraits/default.nix
@@ -43,9 +43,10 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A silly speed painting game";
+    mainProgram = "90secondportraits";
     maintainers = with maintainers; [ leenaars ];
     platforms = platforms.linux;
-    license = licenses.free;
+    license = with licenses; [ zlib cc-by-sa-40 cc-by-sa-30 /* vendored */ x11 mit ];
     downloadPage = "http://tangramgames.dk/games/90secondportraits";
   };
 
diff --git a/nixpkgs/pkgs/games/BeatSaberModManager/default.nix b/nixpkgs/pkgs/games/BeatSaberModManager/default.nix
index a4b53810244d..5c0f73d329f2 100644
--- a/nixpkgs/pkgs/games/BeatSaberModManager/default.nix
+++ b/nixpkgs/pkgs/games/BeatSaberModManager/default.nix
@@ -56,6 +56,7 @@ buildDotnetModule rec {
 
   meta = with lib; {
     description = "Yet another mod installer for Beat Saber, heavily inspired by ModAssistant";
+    mainProgram = "BeatSaberModManager";
     homepage = "https://github.com/affederaffe/BeatSaberModManager";
     longDescription = ''
       BeatSaberModManager is yet another mod installer for Beat Saber, heavily inspired by ModAssistant
diff --git a/nixpkgs/pkgs/games/abbaye-des-morts/default.nix b/nixpkgs/pkgs/games/abbaye-des-morts/default.nix
index 3cf03ed22119..1461c45a0b79 100644
--- a/nixpkgs/pkgs/games/abbaye-des-morts/default.nix
+++ b/nixpkgs/pkgs/games/abbaye-des-morts/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://locomalito.com/abbaye_des_morts.php";
     description = "A retro arcade video game";
+    mainProgram = "abbayev2";
     license = licenses.gpl3;
     maintainers = [ maintainers.marius851000 ];
   };
diff --git a/nixpkgs/pkgs/games/airshipper/default.nix b/nixpkgs/pkgs/games/airshipper/default.nix
index a785d6035e41..0791aa8dfa27 100644
--- a/nixpkgs/pkgs/games/airshipper/default.nix
+++ b/nixpkgs/pkgs/games/airshipper/default.nix
@@ -114,6 +114,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "Provides automatic updates for the voxel RPG Veloren";
+    mainProgram = "airshipper";
     homepage = "https://www.veloren.net";
     license = licenses.gpl3;
     maintainers = with maintainers; [ yusdacra ];
diff --git a/nixpkgs/pkgs/games/airstrike/default.nix b/nixpkgs/pkgs/games/airstrike/default.nix
index 8441ac7a2fee..63b2686e97c9 100644
--- a/nixpkgs/pkgs/games/airstrike/default.nix
+++ b/nixpkgs/pkgs/games/airstrike/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A 2d dogfighting game";
+    mainProgram = "airstrike";
     homepage = "https://icculus.org/airstrike/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ pSub ];
diff --git a/nixpkgs/pkgs/games/among-sus/default.nix b/nixpkgs/pkgs/games/among-sus/default.nix
index be9ecc7adf57..d53d98f5e7af 100644
--- a/nixpkgs/pkgs/games/among-sus/default.nix
+++ b/nixpkgs/pkgs/games/among-sus/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://git.sr.ht/~martijnbraam/among-sus";
     description = "Among us, but it's a text adventure";
+    mainProgram = "among-sus";
     license = licenses.agpl3Plus;
     maintainers = [ maintainers.eyjhb ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/games/angband/default.nix b/nixpkgs/pkgs/games/angband/default.nix
index 24348460d3b5..1d3ac929d337 100644
--- a/nixpkgs/pkgs/games/angband/default.nix
+++ b/nixpkgs/pkgs/games/angband/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://angband.github.io/angband";
     description = "A single-player roguelike dungeon exploration game";
+    mainProgram = "angband";
     maintainers = [ maintainers.kenran ];
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/games/animatch/default.nix b/nixpkgs/pkgs/games/animatch/default.nix
index b6bf5473807c..261612374ace 100644
--- a/nixpkgs/pkgs/games/animatch/default.nix
+++ b/nixpkgs/pkgs/games/animatch/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://gitlab.com/HolyPangolin/animatch/";
     description = "A cute match three game for the Librem 5 smartphone";
+    mainProgram = "animatch";
     license = with lib.licenses; [ gpl3Plus ];
     maintainers = with lib.maintainers; [ colinsane ];
   };
diff --git a/nixpkgs/pkgs/games/anki/default.nix b/nixpkgs/pkgs/games/anki/default.nix
index 3cd623c4d6ef..eca62c640bcf 100644
--- a/nixpkgs/pkgs/games/anki/default.nix
+++ b/nixpkgs/pkgs/games/anki/default.nix
@@ -277,6 +277,7 @@ python3.pkgs.buildPythonApplication {
 
   meta = with lib; {
     description = "Spaced repetition flashcard program";
+    mainProgram = "anki";
     longDescription = ''
       Anki is a program which makes remembering things easy. Because it is a lot
       more efficient than traditional study methods, you can either greatly
diff --git a/nixpkgs/pkgs/games/antsimulator/default.nix b/nixpkgs/pkgs/games/antsimulator/default.nix
index bac481c88f35..69cd7ad1894b 100644
--- a/nixpkgs/pkgs/games/antsimulator/default.nix
+++ b/nixpkgs/pkgs/games/antsimulator/default.nix
@@ -33,7 +33,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/johnBuffer/AntSimulator";
     description = "Simple Ants simulator";
-    license = licenses.free;
+    mainProgram = "antsimulator";
+    license = licenses.mit;
     maintainers = with maintainers; [ ivar ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/games/armagetronad/default.nix b/nixpkgs/pkgs/games/armagetronad/default.nix
index 6bcc30ac011f..20f253dcfc2f 100644
--- a/nixpkgs/pkgs/games/armagetronad/default.nix
+++ b/nixpkgs/pkgs/games/armagetronad/default.nix
@@ -176,6 +176,7 @@ let
       meta = with lib; {
         homepage = "http://armagetronad.org";
         description = "A multiplayer networked arcade racing game in 3D similar to Tron";
+        mainProgram = "armagetronad-dedicated";
         maintainers = with maintainers; [ numinit ];
         license = licenses.gpl2Plus;
         platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/atanks/default.nix b/nixpkgs/pkgs/games/atanks/default.nix
index 197cadfea29c..8a77be6f16eb 100644
--- a/nixpkgs/pkgs/games/atanks/default.nix
+++ b/nixpkgs/pkgs/games/atanks/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Atomic Tanks ballistics game";
+    mainProgram = "atanks";
     homepage = "http://atanks.sourceforge.net/";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/augustus/default.nix b/nixpkgs/pkgs/games/augustus/default.nix
index 5aec0186cfc4..1ccbd14f5f33 100644
--- a/nixpkgs/pkgs/games/augustus/default.nix
+++ b/nixpkgs/pkgs/games/augustus/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An open source re-implementation of Caesar III. Fork of Julius incorporating gameplay changes";
+    mainProgram = "augustus";
     homepage = "https://github.com/Keriew/augustus";
     license = licenses.agpl3Only;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/games/azimuth/default.nix b/nixpkgs/pkgs/games/azimuth/default.nix
index ed03c2afd71c..84d50211dc37 100644
--- a/nixpkgs/pkgs/games/azimuth/default.nix
+++ b/nixpkgs/pkgs/games/azimuth/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A metroidvania game using only vectorial graphic";
+    mainProgram = "azimuth";
     longDescription = ''
       Azimuth is a metroidvania game, and something of an homage to the previous
       greats of the genre (Super Metroid in particular). You will need to pilot
diff --git a/nixpkgs/pkgs/games/ballerburg/default.nix b/nixpkgs/pkgs/games/ballerburg/default.nix
index b15abdbc4703..c8d5fb793832 100644
--- a/nixpkgs/pkgs/games/ballerburg/default.nix
+++ b/nixpkgs/pkgs/games/ballerburg/default.nix
@@ -44,6 +44,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Classic cannon combat game";
+    mainProgram = "ballerburg";
     longDescription = ''
       Two castles, separated by a mountain, try to defeat each other with their cannonballs,
       either by killing the opponent's king or by weakening the opponent enough so that the king capitulates.'';
diff --git a/nixpkgs/pkgs/games/banner/default.nix b/nixpkgs/pkgs/games/banner/default.nix
index befb29f6ffc9..af54f59999c8 100644
--- a/nixpkgs/pkgs/games/banner/default.nix
+++ b/nixpkgs/pkgs/games/banner/default.nix
@@ -2,18 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "banner";
-  version = "1.3.5";
+  version = "1.3.6";
 
   src = fetchFromGitHub {
     owner = "pronovic";
     repo = "banner";
     rev = "BANNER_V${version}";
-    sha256 = "ISSnGzrFSzSj/+KxgeFtaw4H+4Ea5x5S5C8xjcjKWqQ=";
+    sha256 = "sha256-g9i460W0SanW2xIfZk9Am/vDsRlL7oxJOUhksa+I8zY=";
   };
 
   meta = with lib; {
     homepage = "https://github.com/pronovic/banner";
     description = "Print large banners to ASCII terminals";
+    mainProgram = "banner";
     license = licenses.gpl2Only;
 
     longDescription = ''
diff --git a/nixpkgs/pkgs/games/bastet/default.nix b/nixpkgs/pkgs/games/bastet/default.nix
index 0b9f41507303..5fde8064d755 100644
--- a/nixpkgs/pkgs/games/bastet/default.nix
+++ b/nixpkgs/pkgs/games/bastet/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tetris clone with 'bastard' block-choosing AI";
+    mainProgram = "bastet";
     homepage = "http://fph.altervista.org/prog/bastet.html";
     license = licenses.gpl3;
     maintainers = [ maintainers.dezgeg ];
diff --git a/nixpkgs/pkgs/games/black-hole-solver/default.nix b/nixpkgs/pkgs/games/black-hole-solver/default.nix
index 0d5f2eab9786..1950403e10c6 100644
--- a/nixpkgs/pkgs/games/black-hole-solver/default.nix
+++ b/nixpkgs/pkgs/games/black-hole-solver/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A solver for Solitaire variants Golf, Black Hole, and All in a Row";
+    mainProgram = "black-hole-solve";
     homepage = "https://www.shlomifish.org/open-source/projects/black-hole-solitaire-solver/";
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/games/blightmud/default.nix b/nixpkgs/pkgs/games/blightmud/default.nix
index 3267c36a370e..e62ab2437082 100644
--- a/nixpkgs/pkgs/games/blightmud/default.nix
+++ b/nixpkgs/pkgs/games/blightmud/default.nix
@@ -51,6 +51,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A terminal MUD client written in Rust";
+    mainProgram = "blightmud";
     longDescription = ''
       Blightmud is a terminal client for connecting to Multi User Dungeon (MUD)
       games. It is written in Rust and supports TLS, GMCP, MSDP, MCCP2, tab
diff --git a/nixpkgs/pkgs/games/blobwars/default.nix b/nixpkgs/pkgs/games/blobwars/default.nix
index dd94fc109696..6c01e8d5a604 100644
--- a/nixpkgs/pkgs/games/blobwars/default.nix
+++ b/nixpkgs/pkgs/games/blobwars/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Platform action game featuring a blob with lots of weapons";
+    mainProgram = "blobwars";
     homepage = "https://www.parallelrealities.co.uk/games/metalBlobSolid/";
     license = with licenses; [ gpl2Plus free ];
     maintainers = with maintainers; [ iblech ];
diff --git a/nixpkgs/pkgs/games/blockattack/default.nix b/nixpkgs/pkgs/games/blockattack/default.nix
index 6deba7987ada..d59b93ae600c 100644
--- a/nixpkgs/pkgs/games/blockattack/default.nix
+++ b/nixpkgs/pkgs/games/blockattack/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://blockattack.net/";
     description = "An open source clone of Panel de Pon (aka Tetris Attack)";
+    mainProgram = "blockattack";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/games/boohu/default.nix b/nixpkgs/pkgs/games/boohu/default.nix
index 708d8d7510bc..6d90106521ad 100644
--- a/nixpkgs/pkgs/games/boohu/default.nix
+++ b/nixpkgs/pkgs/games/boohu/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A new coffee-break roguelike game";
+    mainProgram = "boohu";
     longDescription = ''
       Break Out Of Hareka's Underground (Boohu) is a roguelike game mainly
       inspired from DCSS and its tavern, with some ideas from Brogue, but
diff --git a/nixpkgs/pkgs/games/braincurses/default.nix b/nixpkgs/pkgs/games/braincurses/default.nix
index f3f862b97ef9..bbbc35b412a2 100644
--- a/nixpkgs/pkgs/games/braincurses/default.nix
+++ b/nixpkgs/pkgs/games/braincurses/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/bderrly/braincurses";
     description = "A version of the classic game Mastermind";
+    mainProgram = "braincurses";
     license = licenses.gpl2;
     maintainers = with maintainers; [ dotlambda ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/brogue-ce/default.nix b/nixpkgs/pkgs/games/brogue-ce/default.nix
index 32ca328492bc..ee2862f9c445 100644
--- a/nixpkgs/pkgs/games/brogue-ce/default.nix
+++ b/nixpkgs/pkgs/games/brogue-ce/default.nix
@@ -55,8 +55,9 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A community-lead fork of the minimalist roguelike game Brogue";
+    mainProgram = "brogue-ce";
     homepage = "https://github.com/tmewett/BrogueCE";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     maintainers = with maintainers; [ AndersonTorres fgaz ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/games/brogue/default.nix b/nixpkgs/pkgs/games/brogue/default.nix
index 770ff3622923..f502c710afbf 100644
--- a/nixpkgs/pkgs/games/brogue/default.nix
+++ b/nixpkgs/pkgs/games/brogue/default.nix
@@ -51,8 +51,9 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A roguelike game";
+    mainProgram = "brogue";
     homepage = "https://sites.google.com/site/broguegame/";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     maintainers =  with maintainers; [ AndersonTorres fgaz ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/nixpkgs/pkgs/games/brutalmaze/default.nix b/nixpkgs/pkgs/games/brutalmaze/default.nix
index 8f8930ce0c63..124134eafc14 100644
--- a/nixpkgs/pkgs/games/brutalmaze/default.nix
+++ b/nixpkgs/pkgs/games/brutalmaze/default.nix
@@ -27,6 +27,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Minimalist thrilling shoot 'em up game";
+    mainProgram = "brutalmaze";
     homepage = "https://brutalmaze.rtfd.io";
     license = licenses.agpl3Plus;
     maintainers = [ maintainers.McSinyx ];
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/common.nix b/nixpkgs/pkgs/games/cataclysm-dda/common.nix
index fb54efee1dd5..b2aa2878080b 100644
--- a/nixpkgs/pkgs/games/cataclysm-dda/common.nix
+++ b/nixpkgs/pkgs/games/cataclysm-dda/common.nix
@@ -72,6 +72,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A free, post apocalyptic, zombie infested rogue-like";
+    mainProgram = "cataclysm-tiles";
     longDescription = ''
       Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world.
       Surviving is difficult: you have been thrown, ill-equipped, into a
diff --git a/nixpkgs/pkgs/games/cbonsai/default.nix b/nixpkgs/pkgs/games/cbonsai/default.nix
index 2dc131aba6db..3898a42e476f 100644
--- a/nixpkgs/pkgs/games/cbonsai/default.nix
+++ b/nixpkgs/pkgs/games/cbonsai/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Grow bonsai trees in your terminal";
+    mainProgram = "cbonsai";
     homepage = "https://gitlab.com/jallbrit/cbonsai";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ manveru ];
diff --git a/nixpkgs/pkgs/games/cgoban/default.nix b/nixpkgs/pkgs/games/cgoban/default.nix
index 3d202985f1b0..ce0cd1e5ffcc 100644
--- a/nixpkgs/pkgs/games/cgoban/default.nix
+++ b/nixpkgs/pkgs/games/cgoban/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Client for the KGS Go Server";
+    mainProgram = "cgoban";
     homepage = "https://www.gokgs.com/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.free;
diff --git a/nixpkgs/pkgs/games/chiaki4deck/default.nix b/nixpkgs/pkgs/games/chiaki4deck/default.nix
index fcb2ed831fb7..4c2aeb172e1f 100644
--- a/nixpkgs/pkgs/games/chiaki4deck/default.nix
+++ b/nixpkgs/pkgs/games/chiaki4deck/default.nix
@@ -1,38 +1,52 @@
 { lib
 , fetchFromGitHub
-, mkDerivation
+, fetchpatch
+, stdenv
 , cmake
 , pkg-config
 , protobuf
 , python3
 , ffmpeg_6
 , libopus
+, wrapQtAppsHook
 , qtbase
 , qtmultimedia
 , qtsvg
+, qtwayland
+, qtdeclarative
+, qtwebengine
 , SDL2
 , libevdev
 , udev
 , hidapi
 , fftw
 , speexdsp
+, libplacebo
+, vulkan-loader
+, vulkan-headers
+, libunwind
+, shaderc
+, lcms2
+, libdovi
+, xxHash
 }:
 
-mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "chiaki4deck";
-  version = "1.5.1";
+  version = "1.6.5";
 
   src = fetchFromGitHub {
     owner = "streetpea";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-XNpD9JPbckiq0HgpV/QJR8hDmvGTptxBMoGihHz44lc=";
+    hash = "sha256-ogNfls7RPvzIVat0zlBlCWHWt22YfzGawjfgu5y9Gyk=";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [
     cmake
     pkg-config
+    wrapQtAppsHook
     protobuf
     python3
     python3.pkgs.wrapPython
@@ -46,6 +60,9 @@ mkDerivation rec {
     qtbase
     qtmultimedia
     qtsvg
+    qtdeclarative
+    qtwayland
+    qtwebengine
     protobuf
     SDL2
     hidapi
@@ -53,6 +70,21 @@ mkDerivation rec {
     libevdev
     udev
     speexdsp
+    libplacebo
+    vulkan-headers
+    libunwind
+    shaderc
+    lcms2
+    libdovi
+    xxHash
+  ];
+
+  cmakeFlags = [
+    "-Wno-dev"
+  ];
+
+  qtWrapperArgs = [
+    "--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib"
   ];
 
   pythonPath = [
diff --git a/nixpkgs/pkgs/games/chromium-bsu/default.nix b/nixpkgs/pkgs/games/chromium-bsu/default.nix
index 1ab2fb8722b0..cd403c704e58 100644
--- a/nixpkgs/pkgs/games/chromium-bsu/default.nix
+++ b/nixpkgs/pkgs/games/chromium-bsu/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://chromium-bsu.sourceforge.net/";
     description = "A fast paced, arcade-style, top-scrolling space shooter";
+    mainProgram = "chromium-bsu";
     license = licenses.artistic1;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/games/ckan/default.nix b/nixpkgs/pkgs/games/ckan/default.nix
index c19b1e20812d..ed025ecee5d6 100644
--- a/nixpkgs/pkgs/games/ckan/default.nix
+++ b/nixpkgs/pkgs/games/ckan/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Mod manager for Kerbal Space Program";
+    mainProgram = "ckan";
     homepage = "https://github.com/KSP-CKAN/CKAN";
     license = licenses.mit;
     maintainers = with maintainers; [ Baughn ymarkus ];
diff --git a/nixpkgs/pkgs/games/construo/default.nix b/nixpkgs/pkgs/games/construo/default.nix
index 2565d8599a53..4c9419a54c65 100644
--- a/nixpkgs/pkgs/games/construo/default.nix
+++ b/nixpkgs/pkgs/games/construo/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Masses and springs simulation game";
+    mainProgram = "construo.x11";
     homepage = "http://fs.fsf.org/construo/";
     license = lib.licenses.gpl3;
   };
diff --git a/nixpkgs/pkgs/games/corsix-th/default.nix b/nixpkgs/pkgs/games/corsix-th/default.nix
index fed831146385..04cfd263c9ee 100644
--- a/nixpkgs/pkgs/games/corsix-th/default.nix
+++ b/nixpkgs/pkgs/games/corsix-th/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A reimplementation of the 1997 Bullfrog business sim Theme Hospital";
+    mainProgram = "corsix-th";
     homepage = "https://corsixth.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ hughobrien ];
diff --git a/nixpkgs/pkgs/games/crack-attack/default.nix b/nixpkgs/pkgs/games/crack-attack/default.nix
index 69395e1c44aa..71e15f562d45 100644
--- a/nixpkgs/pkgs/games/crack-attack/default.nix
+++ b/nixpkgs/pkgs/games/crack-attack/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A fast-paced puzzle game inspired by the classic Super NES title Tetris Attack!";
+    mainProgram = "crack-attack";
     homepage = "https://www.nongnu.org/crack-attack/";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/games/crossfire/crossfire-client.nix b/nixpkgs/pkgs/games/crossfire/crossfire-client.nix
index 0d335b4f529a..bc3a6bbf8b06 100644
--- a/nixpkgs/pkgs/games/crossfire/crossfire-client.nix
+++ b/nixpkgs/pkgs/games/crossfire/crossfire-client.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GTKv2 client for the Crossfire free MMORPG";
+    mainProgram = "crossfire-client-gtk2";
     homepage = "http://crossfire.real-time.com/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/crrcsim/default.nix b/nixpkgs/pkgs/games/crrcsim/default.nix
index 741f402870a8..447b1e75d6f7 100644
--- a/nixpkgs/pkgs/games/crrcsim/default.nix
+++ b/nixpkgs/pkgs/games/crrcsim/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A model-airplane flight simulator";
+    mainProgram = "crrcsim";
     maintainers = with lib.maintainers; [ raskin ];
     platforms = [ "i686-linux" "x86_64-linux" ];
     license = lib.licenses.gpl2;
diff --git a/nixpkgs/pkgs/games/cutemaze/default.nix b/nixpkgs/pkgs/games/cutemaze/default.nix
index bf3c0eae6385..658511b02dad 100644
--- a/nixpkgs/pkgs/games/cutemaze/default.nix
+++ b/nixpkgs/pkgs/games/cutemaze/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     changelog = "https://github.com/gottcode/cutemaze/blob/v${version}/ChangeLog";
     description = "Simple, top-down game in which mazes are randomly generated";
+    mainProgram = "cutemaze";
     homepage = "https://gottcode.org/cutemaze/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/games/cuyo/default.nix b/nixpkgs/pkgs/games/cuyo/default.nix
index 871812e097a9..6132b33a3b89 100644
--- a/nixpkgs/pkgs/games/cuyo/default.nix
+++ b/nixpkgs/pkgs/games/cuyo/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation {
   meta = {
      homepage = "http://karimmi.de/cuyo";
      description = "Stacking blocks game, with different rules for each level";
+     mainProgram = "cuyo";
      license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/games/ddnet/default.nix b/nixpkgs/pkgs/games/ddnet/default.nix
index aabbc49ea51f..e21325198de2 100644
--- a/nixpkgs/pkgs/games/ddnet/default.nix
+++ b/nixpkgs/pkgs/games/ddnet/default.nix
@@ -35,19 +35,19 @@
 
 stdenv.mkDerivation rec {
   pname = "ddnet";
-  version = "18.0.3";
+  version = "18.1";
 
   src = fetchFromGitHub {
     owner = "ddnet";
     repo = pname;
     rev = version;
-    hash = "sha256-XirN16XywTtF+gLQT3G3HjqStkNk+NVO7j+FEecq54E=";
+    hash = "sha256-kAMKeYYMCFMgG3+G/05DwA3mj4JkJdrXadjFUMPDAbM=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "${pname}-${version}";
     inherit src;
-    hash = "sha256-dFYrvnVxOelRIuqtTiSwBIFher/b/dCdyZvqIne3Lng=";
+    hash = "sha256-8mUo2I5FsA3ym/hrlGaUW8yltLuh/0H6wetCbzvRga0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/games/devilutionx/default.nix b/nixpkgs/pkgs/games/devilutionx/default.nix
index 94838596a129..7f98cbccff3a 100644
--- a/nixpkgs/pkgs/games/devilutionx/default.nix
+++ b/nixpkgs/pkgs/games/devilutionx/default.nix
@@ -121,6 +121,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/diasurgical/devilutionX";
     description = "Diablo build for modern operating systems";
+    mainProgram = "devilutionx";
     longDescription = "In order to play this game a copy of diabdat.mpq is required. Place a copy of diabdat.mpq in ~/.local/share/diasurgical/devilution before executing the game.";
     license = licenses.unlicense;
     maintainers = with maintainers; [ karolchmist aanderse ];
diff --git a/nixpkgs/pkgs/games/doom-ports/dhewm3/default.nix b/nixpkgs/pkgs/games/doom-ports/dhewm3/default.nix
index 20e9f986f0c9..7740d00b5fb2 100644
--- a/nixpkgs/pkgs/games/doom-ports/dhewm3/default.nix
+++ b/nixpkgs/pkgs/games/doom-ports/dhewm3/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/dhewm/dhewm3";
     description = "Doom 3 port to SDL";
+    mainProgram = "dhewm3";
     license = lib.licenses.gpl3;
     maintainers = with maintainers; [ MP2E ];
     platforms = with platforms; linux;
diff --git a/nixpkgs/pkgs/games/doom-ports/doomretro/default.nix b/nixpkgs/pkgs/games/doom-ports/doomretro/default.nix
index 5ff5b502f653..127220603bdf 100644
--- a/nixpkgs/pkgs/games/doom-ports/doomretro/default.nix
+++ b/nixpkgs/pkgs/games/doom-ports/doomretro/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "doomretro";
-  version = "5.2.1";
+  version = "5.3";
 
   src = fetchFromGitHub {
     owner = "bradharding";
     repo = "doomretro";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-jM7SNZ8VsF0caB2Q2qOX8W6SuFxyZWpCo3+jD53R3qU=";
+    hash = "sha256-LCCBtsDEyjzsPS5ADPzsup714p84MO65FQDVjAHhSts=";
   };
 
   nativeBuildInputs = [
@@ -36,6 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://www.doomretro.com/";
     description = "A classic, refined DOOM source port";
+    mainProgram = "doomretro";
     longDescription = ''
       DOOM Retro is the classic, refined DOOM source port for Windows PC. It
       represents how I like my DOOM to be today, in all its dark and gritty,
diff --git a/nixpkgs/pkgs/games/doom-ports/doomrunner/default.nix b/nixpkgs/pkgs/games/doom-ports/doomrunner/default.nix
index 3c1e574ca5b1..72b6ad15517d 100644
--- a/nixpkgs/pkgs/games/doom-ports/doomrunner/default.nix
+++ b/nixpkgs/pkgs/games/doom-ports/doomrunner/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Graphical launcher of ZDoom and derivatives";
+    mainProgram = "DoomRunner";
     homepage = "https://github.com/Youda008/DoomRunner/";
     changelog = "https://github.com/Youda008/DoomRunner/blob/${finalAttrs.src.rev}/changelog.txt";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/games/doom-ports/doomseeker/default.nix b/nixpkgs/pkgs/games/doom-ports/doomseeker/default.nix
index 48ea1a0296cf..fb8fb1308491 100644
--- a/nixpkgs/pkgs/games/doom-ports/doomseeker/default.nix
+++ b/nixpkgs/pkgs/games/doom-ports/doomseeker/default.nix
@@ -21,6 +21,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "http://doomseeker.drdteam.org/";
     description = "Multiplayer server browser for many Doom source ports";
+    mainProgram = "doomseeker";
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = [ maintainers.MP2E ];
diff --git a/nixpkgs/pkgs/games/doom-ports/enyo-launcher/default.nix b/nixpkgs/pkgs/games/doom-ports/enyo-launcher/default.nix
index 8bc782bb36a8..857e2a543e63 100644
--- a/nixpkgs/pkgs/games/doom-ports/enyo-launcher/default.nix
+++ b/nixpkgs/pkgs/games/doom-ports/enyo-launcher/default.nix
@@ -18,6 +18,7 @@ mkDerivation rec {
   meta = {
     homepage = "https://gitlab.com/sdcofer70/enyo-launcher";
     description = "Frontend for Doom engines";
+    mainProgram = "enyo-launcher";
     license = lib.licenses.gpl3Plus;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.usrfriendly ];
diff --git a/nixpkgs/pkgs/games/doom-ports/eternity-engine/default.nix b/nixpkgs/pkgs/games/doom-ports/eternity-engine/default.nix
index cdff7fab1e12..7afef923e08b 100644
--- a/nixpkgs/pkgs/games/doom-ports/eternity-engine/default.nix
+++ b/nixpkgs/pkgs/games/doom-ports/eternity-engine/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://doomworld.com/eternity";
     description = "New school Doom port by James Haley";
+    mainProgram = "eternity";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ MP2E ];
diff --git a/nixpkgs/pkgs/games/doom-ports/eureka-editor/default.nix b/nixpkgs/pkgs/games/doom-ports/eureka-editor/default.nix
index 6beae458d293..2d547f959048 100644
--- a/nixpkgs/pkgs/games/doom-ports/eureka-editor/default.nix
+++ b/nixpkgs/pkgs/games/doom-ports/eureka-editor/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://eureka-editor.sourceforge.net";
     description = "A map editor for the classic DOOM games, and a few related games such as Heretic and Hexen";
+    mainProgram = "eureka";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     badPlatforms = platforms.darwin;
diff --git a/nixpkgs/pkgs/games/doom-ports/gzdoom/default.nix b/nixpkgs/pkgs/games/doom-ports/gzdoom/default.nix
index 768a4936d821..d063393210c4 100644
--- a/nixpkgs/pkgs/games/doom-ports/gzdoom/default.nix
+++ b/nixpkgs/pkgs/games/doom-ports/gzdoom/default.nix
@@ -103,6 +103,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/ZDoom/gzdoom";
     description = "Modder-friendly OpenGL and Vulkan source port based on the DOOM engine";
+    mainProgram = "gzdoom";
     longDescription = ''
       GZDoom is a feature centric port for all DOOM engine games, based on
       ZDoom, adding an OpenGL renderer and powerful scripting capabilities.
diff --git a/nixpkgs/pkgs/games/doom-ports/rbdoom-3-bfg/default.nix b/nixpkgs/pkgs/games/doom-ports/rbdoom-3-bfg/default.nix
index 7ec57b715138..07f809662d6b 100644
--- a/nixpkgs/pkgs/games/doom-ports/rbdoom-3-bfg/default.nix
+++ b/nixpkgs/pkgs/games/doom-ports/rbdoom-3-bfg/default.nix
@@ -81,6 +81,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/RobertBeckebans/RBDOOM-3-BFG";
     description = "Doom 3 BFG Edition with modern engine features";
+    mainProgram = "RBDoom3BFG";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ Zaechus ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/games/doom-ports/zandronum/default.nix b/nixpkgs/pkgs/games/doom-ports/zandronum/default.nix
index 0006ea3c7ce5..c8e1927aafed 100644
--- a/nixpkgs/pkgs/games/doom-ports/zandronum/default.nix
+++ b/nixpkgs/pkgs/games/doom-ports/zandronum/default.nix
@@ -96,6 +96,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://zandronum.com/";
     description = "Multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software";
+    mainProgram = "zandronum-server";
     maintainers = with maintainers; [ lassulus MP2E ];
     license = licenses.sleepycat;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/doom-ports/zdoom/bcc-git.nix b/nixpkgs/pkgs/games/doom-ports/zdoom/bcc-git.nix
index aa3fdeca183a..5263ef9bac32 100644
--- a/nixpkgs/pkgs/games/doom-ports/zdoom/bcc-git.nix
+++ b/nixpkgs/pkgs/games/doom-ports/zdoom/bcc-git.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Compiler for Doom/Hexen scripts (ACS, BCS)";
+    mainProgram = "bcc";
     homepage = "https://github.com/wormt/bcc";
     license = licenses.mit;
     maintainers = with maintainers; [ertes];
diff --git a/nixpkgs/pkgs/games/doom-ports/zdoom/zdbsp.nix b/nixpkgs/pkgs/games/doom-ports/zdoom/zdbsp.nix
index d18eb144292f..8949febdefea 100644
--- a/nixpkgs/pkgs/games/doom-ports/zdoom/zdbsp.nix
+++ b/nixpkgs/pkgs/games/doom-ports/zdoom/zdbsp.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://zdoom.org/wiki/ZDBSP";
     description = "ZDoom's internal node builder for DOOM maps";
+    mainProgram = "zdbsp";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ lassulus siraben ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
index 42dd74a766b2..55de9ffdf45e 100644
--- a/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
+++ b/nixpkgs/pkgs/games/dwarf-fortress/dwarf-therapist/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool to manage dwarves in a running game of Dwarf Fortress";
+    mainProgram = "dwarftherapist";
     maintainers = with maintainers; [ abbradar bendlas numinit jonringer ];
     license = licenses.mit;
     platforms = platforms.x86;
diff --git a/nixpkgs/pkgs/games/ecwolf/default.nix b/nixpkgs/pkgs/games/ecwolf/default.nix
index 542b414d8a45..08b24deee0d4 100644
--- a/nixpkgs/pkgs/games/ecwolf/default.nix
+++ b/nixpkgs/pkgs/games/ecwolf/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Enhanched SDL-based port of Wolfenstein 3D for various platforms";
+    mainProgram = "ecwolf";
     homepage = "https://maniacsvault.net/ecwolf/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ jayman2000 sander ];
diff --git a/nixpkgs/pkgs/games/eduke32/default.nix b/nixpkgs/pkgs/games/eduke32/default.nix
index 051e097eb3a3..1ddcccd27f9d 100644
--- a/nixpkgs/pkgs/games/eduke32/default.nix
+++ b/nixpkgs/pkgs/games/eduke32/default.nix
@@ -1,16 +1,16 @@
 { lib
 , stdenv
-, fetchurl
+, fetchFromGitLab
 , makeWrapper
 , pkg-config
 , nasm
 , makeDesktopItem
+, copyDesktopItems
 , alsa-lib
 , flac
 , gtk2
 , libvorbis
 , libvpx
-, libGLU
 , libGL
 , SDL2
 , SDL2_mixer
@@ -18,29 +18,23 @@
 , Cocoa
 , GLUT
 , OpenGL
+, graphicsmagick
 }:
 
 let
-  desktopItem = makeDesktopItem {
-    name = "eduke32";
-    exec = "@out@/bin/${wrapper}";
-    comment = "Duke Nukem 3D port";
-    desktopName = "Enhanced Duke Nukem 3D";
-    genericName = "Duke Nukem 3D port";
-    categories = [ "Game" ];
-  };
-
   wrapper = "eduke32-wrapper";
+  swWrapper = "voidsw-wrapper";
 
-in stdenv.mkDerivation rec {
+in stdenv.mkDerivation (finalAttrs: {
   pname = "eduke32";
-  version = "20230926";
-  rev = "10459";
-  revExtra = "8feaf6c25";
-
-  src = fetchurl {
-    url = "https://dukeworld.com/eduke32/synthesis/${version}-${rev}-${revExtra}/eduke32_src_${version}-${rev}-${revExtra}.tar.xz";
-    hash = "sha256-GQOpDQm2FeaOMyYu9L5zhrM6XFvZAHMAwn1tSK7RCB8=";
+  version = "0-unstable-2024-02-17";
+
+  src = fetchFromGitLab {
+    domain = "voidpoint.io";
+    owner = "terminx";
+    repo = "eduke32";
+    rev = "8afa42e388e0434b38979fdddc763363717a2727";
+    hash = "sha256-dyZ4JtDBxsTDe9uQDWxJe7M74X7m+5wpEHm+i+s9hwo=";
   };
 
   buildInputs = [
@@ -53,7 +47,6 @@ in stdenv.mkDerivation rec {
     alsa-lib
     gtk2
     libGL
-    libGLU
   ] ++ lib.optionals stdenv.isDarwin [
     AGL
     Cocoa
@@ -61,21 +54,24 @@ in stdenv.mkDerivation rec {
     OpenGL
   ];
 
-  nativeBuildInputs = [ makeWrapper pkg-config ]
-    ++ lib.optional (stdenv.hostPlatform.system == "i686-linux") nasm;
+  nativeBuildInputs = [
+    makeWrapper
+    pkg-config
+    copyDesktopItems
+    graphicsmagick
+  ] ++ lib.optionals (stdenv.hostPlatform.system == "i686-linux") [
+    nasm
+  ];
 
   postPatch = ''
     substituteInPlace source/imgui/src/imgui_impl_sdl2.cpp \
-      --replace '#include <SDL.h>' '#include <SDL2/SDL.h>' \
-      --replace '#include <SDL_syswm.h>' '#include <SDL2/SDL_syswm.h>' \
-      --replace '#include <SDL_vulkan.h>' '#include <SDL2/SDL_vulkan.h>'
+      --replace-fail '#include <SDL.h>' '#include <SDL2/SDL.h>' \
+      --replace-fail '#include <SDL_syswm.h>' '#include <SDL2/SDL_syswm.h>' \
+      --replace-fail '#include <SDL_vulkan.h>' '#include <SDL2/SDL_vulkan.h>'
   '' + lib.optionalString stdenv.isLinux ''
-    substituteInPlace source/build/src/glbuild.cpp \
-      --replace libGLU.so ${libGLU}/lib/libGLU.so
-
     for f in glad.c glad_wgl.c ; do
       substituteInPlace source/glad/src/$f \
-        --replace libGL.so ${libGL}/lib/libGL.so
+        --replace-fail libGL.so ${libGL}/lib/libGL.so
     done
   '';
 
@@ -86,38 +82,72 @@ in stdenv.mkDerivation rec {
     "LTO=0"
   ];
 
+  buildFlags = [
+    "duke3d"
+    "sw"
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "eduke32";
+      icon = "eduke32";
+      exec = "${wrapper}";
+      comment = "Duke Nukem 3D port";
+      desktopName = "Enhanced Duke Nukem 3D";
+      genericName = "Duke Nukem 3D port";
+      categories = [ "Game" ];
+    })
+    (makeDesktopItem {
+      name = "voidsw";
+      icon = "voidsw";
+      exec = "${swWrapper}";
+      comment = "Shadow Warrior eduke32 source port";
+      desktopName = "VoidSW";
+      genericName = "Shadow Warrior source port";
+      categories = [ "Game" ];
+    })
+  ];
+
   enableParallelBuilding = true;
 
   installPhase = ''
     runHook preInstall
 
-    install -Dm755 -t $out/bin eduke32 mapster32
+    install -Dm755 -t $out/bin eduke32 mapster32 voidsw wangulator
   '' + lib.optionalString stdenv.isLinux ''
     makeWrapper $out/bin/eduke32 $out/bin/${wrapper} \
       --set-default EDUKE32_DATA_DIR /var/lib/games/eduke32 \
       --add-flags '-g "$EDUKE32_DATA_DIR/DUKE3D.GRP"'
-
-    cp -rv ${desktopItem}/share $out
-    substituteInPlace $out/share/applications/eduke32.desktop \
-      --subst-var out
+    makeWrapper $out/bin/voidsw $out/bin/${swWrapper} \
+      --set-default EDUKE32_DATA_DIR /var/lib/games/eduke32 \
+      --add-flags '-g"$EDUKE32_DATA_DIR/SW.GRP"'
+    mkdir -p $out/share/icons/hicolor/scalable/apps
+    gm convert "./source/duke3d/rsrc/game_icon.ico[10]" $out/share/icons/hicolor/scalable/apps/eduke32.png
+    install -Dm644 ./source/sw/rsrc/game_icon.svg $out/share/icons/hicolor/scalable/apps/voidsw.svg
   '' + lib.optionalString stdenv.isDarwin ''
     mkdir -p $out/Applications/EDuke32.app/Contents/MacOS
     mkdir -p $out/Applications/Mapster32.app/Contents/MacOS
+    mkdir -p $out/Applications/VoidSW.app/Contents/MacOS
+    mkdir -p $out/Applications/Wangulator.app/Contents/MacOS
 
     cp -r platform/Apple/bundles/EDuke32.app/* $out/Applications/EDuke32.app/
     cp -r platform/Apple/bundles/Mapster32.app/* $out/Applications/Mapster32.app/
+    cp -r platform/Apple/bundles/VoidSW.app/* $out/Applications/VoidSW.app/
+    cp -r platform/Apple/bundles/Wangulator.app/* $out/Applications/Wangulator.app/
 
     ln -sf $out/bin/eduke32 $out/Applications/EDuke32.app/Contents/MacOS/eduke32
     ln -sf $out/bin/mapster32 $out/Applications/Mapster32.app/Contents/MacOS/mapster32
+    ln -sf $out/bin/voidsw $out/Applications/VoidSW.app/Contents/MacOS/voidsw
+    ln -sf $out/bin/wangulator $out/Applications/Wangulator.app/Contents/MacOS/wangulator
   '' + ''
     runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Enhanched port of Duke Nukem 3D for various platforms";
     homepage = "http://eduke32.com";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ mikroskeem sander ];
-    platforms = platforms.all;
+    license = with lib.licenses; [ gpl2Plus ];
+    maintainers = with lib.maintainers; [ mikroskeem sander ];
+    platforms = lib.platforms.all;
   };
-}
+})
diff --git a/nixpkgs/pkgs/games/eidolon/default.nix b/nixpkgs/pkgs/games/eidolon/default.nix
index 34bfd4151894..fbb5d86deb91 100644
--- a/nixpkgs/pkgs/games/eidolon/default.nix
+++ b/nixpkgs/pkgs/games/eidolon/default.nix
@@ -30,6 +30,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A single TUI-based registry for drm-free, wine and steam games on linux, accessed through a rofi launch menu";
+    mainProgram = "eidolon";
     homepage = "https://github.com/nicohman/eidolon";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ _0x4A6F ];
diff --git a/nixpkgs/pkgs/games/empty-epsilon/default.nix b/nixpkgs/pkgs/games/empty-epsilon/default.nix
index ba41431eb5ca..20f4f5855a35 100644
--- a/nixpkgs/pkgs/games/empty-epsilon/default.nix
+++ b/nixpkgs/pkgs/games/empty-epsilon/default.nix
@@ -77,6 +77,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Open source bridge simulator based on Artemis";
+    mainProgram = "EmptyEpsilon";
     homepage = "https://daid.github.io/EmptyEpsilon/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ fpletz lheckemann ma27 ];
diff --git a/nixpkgs/pkgs/games/endless-sky/default.nix b/nixpkgs/pkgs/games/endless-sky/default.nix
index ffb71f393ca2..7648bbd9b771 100644
--- a/nixpkgs/pkgs/games/endless-sky/default.nix
+++ b/nixpkgs/pkgs/games/endless-sky/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A sandbox-style space exploration game similar to Elite, Escape Velocity, or Star Control";
+    mainProgram = "endless-sky";
     homepage = "https://endless-sky.github.io/";
     license = with licenses; [
       gpl3Plus
diff --git a/nixpkgs/pkgs/games/enigma/default.nix b/nixpkgs/pkgs/games/enigma/default.nix
index e2e9ca1338c2..8deac27e579f 100644
--- a/nixpkgs/pkgs/games/enigma/default.nix
+++ b/nixpkgs/pkgs/games/enigma/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Puzzle game inspired by Oxyd on the Atari ST and Rock'n'Roll on the Amiga";
+    mainProgram = "enigma";
     license = with licenses; [ gpl2 free ]; # source + bundles libs + art
     platforms = platforms.unix;
     broken = stdenv.hostPlatform.isDarwin;
diff --git a/nixpkgs/pkgs/games/ezquake/default.nix b/nixpkgs/pkgs/games/ezquake/default.nix
index a562b9353ebe..46efa6c7b982 100644
--- a/nixpkgs/pkgs/games/ezquake/default.nix
+++ b/nixpkgs/pkgs/games/ezquake/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://ezquake.com/";
     description = "A modern QuakeWorld client focused on competitive online play";
+    mainProgram = "ezquake";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ edwtjo ];
diff --git a/nixpkgs/pkgs/games/fairymax/default.nix b/nixpkgs/pkgs/games/fairymax/default.nix
index b493f4dcfa27..79468b320811 100644
--- a/nixpkgs/pkgs/games/fairymax/default.nix
+++ b/nixpkgs/pkgs/games/fairymax/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://home.hccnet.nl/h.g.muller/dwnldpage.html";
     description = "A small chess engine supporting fairy pieces";
+    mainProgram = "fairymax";
     longDescription = ''
        A version of micro-Max that reads the piece description from a file
        fmax.ini, so that arbitrary fairy pieces can be implemented. This version
diff --git a/nixpkgs/pkgs/games/ferium/default.nix b/nixpkgs/pkgs/games/ferium/default.nix
index 903dd70222f6..2f98970c7065 100644
--- a/nixpkgs/pkgs/games/ferium/default.nix
+++ b/nixpkgs/pkgs/games/ferium/default.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Fast and multi-source CLI program for managing Minecraft mods and modpacks from Modrinth, CurseForge, and GitHub Releases";
+    mainProgram = "ferium";
     homepage = "https://github.com/gorilla-devs/ferium";
     license = licenses.mpl20;
     maintainers = with maintainers; [ leo60228 soupglasses ];
diff --git a/nixpkgs/pkgs/games/fheroes2/default.nix b/nixpkgs/pkgs/games/fheroes2/default.nix
index a2e6943a00d3..fa6c4b4d8a23 100644
--- a/nixpkgs/pkgs/games/fheroes2/default.nix
+++ b/nixpkgs/pkgs/games/fheroes2/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/ihhub/fheroes2";
     description = "Free implementation of Heroes of Might and Magic II game engine";
+    mainProgram = "fheroes2";
     longDescription = ''
         In order to play this game, an original game data is required.
         Please refer to README of the project for instructions.
diff --git a/nixpkgs/pkgs/games/fish-fillets-ng/default.nix b/nixpkgs/pkgs/games/fish-fillets-ng/default.nix
index 787795828f4f..3b83f732df74 100644
--- a/nixpkgs/pkgs/games/fish-fillets-ng/default.nix
+++ b/nixpkgs/pkgs/games/fish-fillets-ng/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A puzzle game";
+    mainProgram = "fillets";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/flare/default.nix b/nixpkgs/pkgs/games/flare/default.nix
index 45e1ee765426..0e1b4571e5ce 100644
--- a/nixpkgs/pkgs/games/flare/default.nix
+++ b/nixpkgs/pkgs/games/flare/default.nix
@@ -16,6 +16,7 @@ buildEnv {
 
   meta = with lib; {
     description = "Fantasy action RPG using the FLARE engine";
+    mainProgram = "flare";
     homepage = "https://flarerpg.org/";
     maintainers = with maintainers; [ aanderse McSinyx ];
     license = [ licenses.gpl3 licenses.cc-by-sa-30 ];
diff --git a/nixpkgs/pkgs/games/freedroid/default.nix b/nixpkgs/pkgs/games/freedroid/default.nix
index 38eb60e7e045..ab7c36ba5d5a 100644
--- a/nixpkgs/pkgs/games/freedroid/default.nix
+++ b/nixpkgs/pkgs/games/freedroid/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A clone of the classic game 'Paradroid' on Commodore 64";
+    mainProgram = "freedroid";
     homepage    = "https://github.com/ReinhardPrix/FreedroidClassic";
     license     = licenses.gpl2Only;
     maintainers = with maintainers; [ iblech ];
diff --git a/nixpkgs/pkgs/games/freedroidrpg/default.nix b/nixpkgs/pkgs/games/freedroidrpg/default.nix
index 254d9b2ce6a6..1f31c20c7e48 100644
--- a/nixpkgs/pkgs/games/freedroidrpg/default.nix
+++ b/nixpkgs/pkgs/games/freedroidrpg/default.nix
@@ -31,6 +31,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Isometric 3D RPG similar to game Diablo";
+    mainProgram = "freedroidRPG";
 
     longDescription = ''
       <para>
diff --git a/nixpkgs/pkgs/games/freeorion/default.nix b/nixpkgs/pkgs/games/freeorion/default.nix
index 8c2c4ef86a08..204223e6094d 100644
--- a/nixpkgs/pkgs/games/freeorion/default.nix
+++ b/nixpkgs/pkgs/games/freeorion/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "freeorion";
-  version = "0.5";
+  version = "0.5.0.1";
 
   src = fetchFromGitHub {
     owner = "freeorion";
     repo = "freeorion";
     rev = "v${version}";
-    sha256 = "sha256-uJRDU0Xd+sHL2IDvMiElUSOhvchVMW9wYMSLSN7pYtQ=";
+    sha256 = "sha256-VvTq6TcLc5BMvRTjVsZ2HA9ug3WAqFuTHIoFQ/9/zWc=";
   };
 
   buildInputs = [
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
     makeWrapper
   ];
 
-  # as of 0.5 FreeOrion doesn't work with "-DOpenGL_GL_PREFERENCE=GLVND"
+  # as of 0.5.0.1 FreeOrion doesn't work with "-DOpenGL_GL_PREFERENCE=GLVND"
   cmakeFlags = [ "-DOpenGL_GL_PREFERENCE=LEGACY" ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/games/freesweep/default.nix b/nixpkgs/pkgs/games/freesweep/default.nix
index feba049a5cf0..8add760f930b 100644
--- a/nixpkgs/pkgs/games/freesweep/default.nix
+++ b/nixpkgs/pkgs/games/freesweep/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A console minesweeper-style game written in C for Unix-like systems";
+    mainProgram = "freesweep";
     homepage = "https://github.com/rwestlund/freesweep";
     license = licenses.gpl2;
     maintainers = with maintainers; [ kierdavis ];
diff --git a/nixpkgs/pkgs/games/frotz/default.nix b/nixpkgs/pkgs/games/frotz/default.nix
index 9bc7ae5ae512..af9efd96318f 100644
--- a/nixpkgs/pkgs/games/frotz/default.nix
+++ b/nixpkgs/pkgs/games/frotz/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
     homepage = "https://davidgriffith.gitlab.io/frotz/";
     changelog = "https://gitlab.com/DavidGriffith/frotz/-/raw/${version}/NEWS";
     description = "A z-machine interpreter for Infocom games and other interactive fiction";
+    mainProgram = "frotz";
     platforms = platforms.unix;
     maintainers = with maintainers; [ nicknovitski ddelabru ];
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/games/fsg/default.nix b/nixpkgs/pkgs/games/fsg/default.nix
index 282030023f74..d5680669df9e 100644
--- a/nixpkgs/pkgs/games/fsg/default.nix
+++ b/nixpkgs/pkgs/games/fsg/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Cellular automata engine tuned towards the likes of Falling Sand";
+    mainProgram = "fsg";
     maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/games/gambit/default.nix b/nixpkgs/pkgs/games/gambit/default.nix
index 4bcd329171cc..90e23e9820c6 100644
--- a/nixpkgs/pkgs/games/gambit/default.nix
+++ b/nixpkgs/pkgs/games/gambit/default.nix
@@ -46,6 +46,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Play chess in your terminal";
+    mainProgram = "gambit";
     homepage = "https://github.com/maaslalani/gambit";
     changelog = "https://github.com/maaslalani/gambit/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/games/garden-of-coloured-lights/default.nix b/nixpkgs/pkgs/games/garden-of-coloured-lights/default.nix
index 7012449f6afc..27b0255eba09 100644
--- a/nixpkgs/pkgs/games/garden-of-coloured-lights/default.nix
+++ b/nixpkgs/pkgs/games/garden-of-coloured-lights/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Old-school vertical shoot-em-up / bullet hell";
+    mainProgram = "garden";
     homepage = "https://garden.sourceforge.net/drupal/";
     maintainers = with maintainers; [ ];
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/games/gargoyle/default.nix b/nixpkgs/pkgs/games/gargoyle/default.nix
index 9be95457b41c..35b8dc733031 100644
--- a/nixpkgs/pkgs/games/gargoyle/default.nix
+++ b/nixpkgs/pkgs/games/gargoyle/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
     homepage = "http://ccxvii.net/gargoyle/";
     license = licenses.gpl2Plus;
     description = "Interactive fiction interpreter GUI";
+    mainProgram = "gargoyle";
     platforms = platforms.unix;
     maintainers = with maintainers; [ orivej ];
   };
diff --git a/nixpkgs/pkgs/games/gav/default.nix b/nixpkgs/pkgs/games/gav/default.nix
index dc2868ba21b5..23f1fe7854b4 100644
--- a/nixpkgs/pkgs/games/gav/default.nix
+++ b/nixpkgs/pkgs/games/gav/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Remake of AV Arcade Volleyball";
+    mainProgram = "gav";
     homepage = "https://gav.sourceforge.net/";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/games/gl-117/default.nix b/nixpkgs/pkgs/games/gl-117/default.nix
index f135c93ff04f..493ca986d9c2 100644
--- a/nixpkgs/pkgs/games/gl-117/default.nix
+++ b/nixpkgs/pkgs/games/gl-117/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An air combat simulator";
+    mainProgram = "gl-117";
     homepage = "https://sourceforge.net/projects/gl-117";
     maintainers = with maintainers; [ raskin ];
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/games/gl-gsync-demo/default.nix b/nixpkgs/pkgs/games/gl-gsync-demo/default.nix
index 968d4d5e4a3d..2027b9d3b27e 100644
--- a/nixpkgs/pkgs/games/gl-gsync-demo/default.nix
+++ b/nixpkgs/pkgs/games/gl-gsync-demo/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ atemu ];
     description = "A very basic OpenGL demo for testing NVIDIA's G-SYNC technology on Linux";
+    mainProgram = "gl-gsync-demo";
     longDescription = ''
       The demo simply draws a vertical bar moving across the screen at constant speed, but deliberately rendered at a variable frame rate.
 
diff --git a/nixpkgs/pkgs/games/globulation/default.nix b/nixpkgs/pkgs/games/globulation/default.nix
index 039098f87da5..a444f18335fc 100644
--- a/nixpkgs/pkgs/games/globulation/default.nix
+++ b/nixpkgs/pkgs/games/globulation/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "RTS without micromanagement";
+    mainProgram = "glob2";
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/games/gltron/default.nix b/nixpkgs/pkgs/games/gltron/default.nix
index 540170c49b21..cbc8510775b9 100644
--- a/nixpkgs/pkgs/games/gltron/default.nix
+++ b/nixpkgs/pkgs/games/gltron/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.gltron.org/";
     description = "Game based on the movie Tron";
+    mainProgram = "gltron";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/games/gnome-hexgl/default.nix b/nixpkgs/pkgs/games/gnome-hexgl/default.nix
index 54d74ffa5fa0..1c7627582d61 100644
--- a/nixpkgs/pkgs/games/gnome-hexgl/default.nix
+++ b/nixpkgs/pkgs/games/gnome-hexgl/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Gthree port of HexGL";
+    mainProgram = "gnome-hexgl";
     homepage = "https://github.com/alexlarsson/gnome-hexgl";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/games/gnonograms/default.nix b/nixpkgs/pkgs/games/gnonograms/default.nix
index c021ca46f57a..69d45e32fe26 100644
--- a/nixpkgs/pkgs/games/gnonograms/default.nix
+++ b/nixpkgs/pkgs/games/gnonograms/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Nonograms puzzle game";
+    mainProgram = "com.github.jeremypw.gnonograms";
     longDescription = ''
       An implementation of the Japanese logic puzzle "Nonograms" written in
       Vala, allowing the user to:
diff --git a/nixpkgs/pkgs/games/gnugo/default.nix b/nixpkgs/pkgs/games/gnugo/default.nix
index 3b8449ab4c7f..82848ab00805 100644
--- a/nixpkgs/pkgs/games/gnugo/default.nix
+++ b/nixpkgs/pkgs/games/gnugo/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "GNU Go - A computer go player";
+    mainProgram = "gnugo";
     homepage = "https://www.gnu.org/software/gnugo/";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/games/gnujump/default.nix b/nixpkgs/pkgs/games/gnujump/default.nix
index 0fdffcf6fadb..10750f84da68 100644
--- a/nixpkgs/pkgs/games/gnujump/default.nix
+++ b/nixpkgs/pkgs/games/gnujump/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://jump.gnu.sinusoid.es/index.php?title=Main_Page";
     description = "A clone of the simple yet addictive game Xjump";
+    mainProgram = "gnujump";
     longDescription = ''
       The goal in this game is to jump to the next floor trying not to fall
       down. As you go upper in the Falling Tower the floors will fall faster.
diff --git a/nixpkgs/pkgs/games/gnushogi/default.nix b/nixpkgs/pkgs/games/gnushogi/default.nix
index 2557b0571ea9..38f76de1e7a0 100644
--- a/nixpkgs/pkgs/games/gnushogi/default.nix
+++ b/nixpkgs/pkgs/games/gnushogi/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GNU implementation of Shogi, also known as Japanese Chess";
+    mainProgram = "gnushogi";
     homepage = "https://www.gnu.org/software/gnushogi/";
     license = licenses.gpl3;
     maintainers = [ maintainers.ciil ];
diff --git a/nixpkgs/pkgs/games/gogdl/default.nix b/nixpkgs/pkgs/games/gogdl/default.nix
index 83bf90147b5f..91cfe972d9c6 100644
--- a/nixpkgs/pkgs/games/gogdl/default.nix
+++ b/nixpkgs/pkgs/games/gogdl/default.nix
@@ -32,6 +32,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "GOG Downloading module for Heroic Games Launcher";
+    mainProgram = "gogdl";
     homepage = "https://github.com/Heroic-Games-Launcher/heroic-gogdl";
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ aidalgol ];
diff --git a/nixpkgs/pkgs/games/gotypist/default.nix b/nixpkgs/pkgs/games/gotypist/default.nix
index 24afb9317c5b..12489a27e6a6 100644
--- a/nixpkgs/pkgs/games/gotypist/default.nix
+++ b/nixpkgs/pkgs/games/gotypist/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A touch-typing tutor";
+    mainProgram = "gotypist";
     longDescription = ''
       A simple touch-typing tutor that follows Steve Yegge's methodology of
       going in fast, slow, and medium cycles.
diff --git a/nixpkgs/pkgs/games/gshogi/default.nix b/nixpkgs/pkgs/games/gshogi/default.nix
index 77eab7918b91..350ab86aa22b 100644
--- a/nixpkgs/pkgs/games/gshogi/default.nix
+++ b/nixpkgs/pkgs/games/gshogi/default.nix
@@ -33,6 +33,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "http://johncheetham.com/projects/gshogi/";
     description = "A graphical implementation of the Shogi board game, also known as Japanese Chess";
+    mainProgram = "gshogi";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.ciil ];
diff --git a/nixpkgs/pkgs/games/gtetrinet/default.nix b/nixpkgs/pkgs/games/gtetrinet/default.nix
index af16d5e9f748..58ac8b2d77cc 100644
--- a/nixpkgs/pkgs/games/gtetrinet/default.nix
+++ b/nixpkgs/pkgs/games/gtetrinet/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Client for Tetrinet, a multiplayer online Tetris game";
+    mainProgram = "gtetrinet";
     longDescription = ''
       GTetrinet is a client program for Tetrinet, a multiplayer tetris game
       that is played over the internet.
diff --git a/nixpkgs/pkgs/games/gweled/default.nix b/nixpkgs/pkgs/games/gweled/default.nix
index fc187afbe806..484543ad8659 100644
--- a/nixpkgs/pkgs/games/gweled/default.nix
+++ b/nixpkgs/pkgs/games/gweled/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Bejeweled clone game";
+    mainProgram = "gweled";
     homepage = "https://gweled.org";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/harmonist/default.nix b/nixpkgs/pkgs/games/harmonist/default.nix
index cbb556cbc948..57e9a06ec9a5 100644
--- a/nixpkgs/pkgs/games/harmonist/default.nix
+++ b/nixpkgs/pkgs/games/harmonist/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A stealth coffee-break roguelike game";
+    mainProgram = "harmonist";
     longDescription = ''
       Harmonist is a stealth coffee-break roguelike game. The game has a heavy
       focus on tactical positioning, light and noise mechanisms, making use of
diff --git a/nixpkgs/pkgs/games/hase/default.nix b/nixpkgs/pkgs/games/hase/default.nix
index f807572455af..1e1ef23367fa 100644
--- a/nixpkgs/pkgs/games/hase/default.nix
+++ b/nixpkgs/pkgs/games/hase/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "An open-source artillery shooter";
+    mainProgram = "hase";
     longDescription = ''
       Hase is an open source gravity based artillery shooter. It is similar to
       Worms, Hedgewars or artillery, but the gravity force and direction
diff --git a/nixpkgs/pkgs/games/heroic/default.nix b/nixpkgs/pkgs/games/heroic/default.nix
index 03165fa5df7d..d3687f03df97 100644
--- a/nixpkgs/pkgs/games/heroic/default.nix
+++ b/nixpkgs/pkgs/games/heroic/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , fetchYarnDeps
 , yarn
 , prefetch-yarn-deps
@@ -45,6 +46,11 @@ in stdenv.mkDerivation rec {
     ./remove-drm-support.patch
     # Make Heroic create Steam shortcuts (to non-steam games) with the correct path to heroic.
     ./fix-non-steam-shortcuts.patch
+    (fetchpatch {
+      name = "adtraction-fallback.patch";
+      url = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/pull/3575.patch";
+      hash = "sha256-XhYYLQf/oSX3uK+0KzfnAb49iaGwhl9W64Tg2Fqi8Gg=";
+    })
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/games/hex-a-hop/default.nix b/nixpkgs/pkgs/games/hex-a-hop/default.nix
index c6eaed57a9ca..32a395195b5e 100644
--- a/nixpkgs/pkgs/games/hex-a-hop/default.nix
+++ b/nixpkgs/pkgs/games/hex-a-hop/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A puzzle game based on hexagonal tiles";
+    mainProgram = "hex-a-hop";
     homepage = "http://hexahop.sourceforge.net";
     license = with lib.licenses; [
       gpl2Plus # Main code
diff --git a/nixpkgs/pkgs/games/hexgui/default.nix b/nixpkgs/pkgs/games/hexgui/default.nix
index 49dae4217551..6fc66b870439 100644
--- a/nixpkgs/pkgs/games/hexgui/default.nix
+++ b/nixpkgs/pkgs/games/hexgui/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "GUI for the board game Hex";
+    mainProgram = "hexgui";
     homepage = "https://github.com/selinger/hexgui";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.ursi ];
diff --git a/nixpkgs/pkgs/games/hmcl/default.nix b/nixpkgs/pkgs/games/hmcl/default.nix
index fcaa01ea2d95..95a40f0a8d80 100644
--- a/nixpkgs/pkgs/games/hmcl/default.nix
+++ b/nixpkgs/pkgs/games/hmcl/default.nix
@@ -89,6 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://hmcl.huangyuhui.net";
     description = "A Minecraft Launcher which is multi-functional, cross-platform and popular";
+    mainProgram = "hmcl";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/games/hyperrogue/default.nix b/nixpkgs/pkgs/games/hyperrogue/default.nix
index ddbe41df430e..1177ad59413a 100644
--- a/nixpkgs/pkgs/games/hyperrogue/default.nix
+++ b/nixpkgs/pkgs/games/hyperrogue/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.roguetemple.com/z/hyper/";
     description = "A roguelike game set in hyperbolic geometry";
+    mainProgram = "hyperrogue";
     maintainers = with maintainers; [ rardiol ];
     license = licenses.gpl2;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/games/icbm3d/default.nix b/nixpkgs/pkgs/games/icbm3d/default.nix
index a166b4f83f2b..6f531f424228 100644
--- a/nixpkgs/pkgs/games/icbm3d/default.nix
+++ b/nixpkgs/pkgs/games/icbm3d/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.newbreedsoftware.com/icbm3d/";
     description = "3D vector-based clone of the atari game Missile Command";
+    mainProgram = "icbm3d";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/games/infra-arcana/default.nix b/nixpkgs/pkgs/games/infra-arcana/default.nix
index 6eb1f44aa8cc..c5c960d7deff 100644
--- a/nixpkgs/pkgs/games/infra-arcana/default.nix
+++ b/nixpkgs/pkgs/games/infra-arcana/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://sites.google.com/site/infraarcana";
     description = "A Lovecraftian single-player roguelike game";
+    mainProgram = "infra-arcana";
     longDescription = ''
       Infra Arcana is a Roguelike set in the early 20th century. The goal is to
       explore the lair of a dreaded cult called The Church of Starry Wisdom.
diff --git a/nixpkgs/pkgs/games/instawow/default.nix b/nixpkgs/pkgs/games/instawow/default.nix
index 7534f5f892a7..d1ed292f377c 100644
--- a/nixpkgs/pkgs/games/instawow/default.nix
+++ b/nixpkgs/pkgs/games/instawow/default.nix
@@ -42,6 +42,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/layday/instawow";
     description = "World of Warcraft add-on manager CLI and GUI";
+    mainProgram = "instawow";
     license = licenses.gpl3;
     maintainers = with maintainers; [ seirl ];
   };
diff --git a/nixpkgs/pkgs/games/jfsw/default.nix b/nixpkgs/pkgs/games/jfsw/default.nix
index e170f0024531..9b631551b579 100644
--- a/nixpkgs/pkgs/games/jfsw/default.nix
+++ b/nixpkgs/pkgs/games/jfsw/default.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "jfsw";
-  version = "20211225";
+  version = "20240303";
 
   src = fetchFromGitHub {
     owner = "jonof";
     repo = "jfsw";
     rev = "refs/tags/${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-oRJHVsVo+KQfJyd8TcPxTMPPi993qxQb0wnD9nR4vJY=";
+    hash = "sha256-bOUgRa9zWufTFEj5huXAKeRerV8PqfqQVDoVUvRrj2I=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/games/julius/default.nix b/nixpkgs/pkgs/games/julius/default.nix
index df1ff2bd1a06..5e1f046d9710 100644
--- a/nixpkgs/pkgs/games/julius/default.nix
+++ b/nixpkgs/pkgs/games/julius/default.nix
@@ -24,7 +24,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/bvschaik/julius";
     description = "An open source re-implementation of Caesar III";
-    license = licenses.agpl3;
+    mainProgram = "julius";
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ Thra11 ];
     platforms = platforms.all;
     broken = stdenv.isDarwin;
diff --git a/nixpkgs/pkgs/games/jumpy/default.nix b/nixpkgs/pkgs/games/jumpy/default.nix
index d4f8a8fcbdbc..29110d42ff82 100644
--- a/nixpkgs/pkgs/games/jumpy/default.nix
+++ b/nixpkgs/pkgs/games/jumpy/default.nix
@@ -77,6 +77,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tactical 2D shooter played by up to 4 players online or on a shared screen";
+    mainProgram = "jumpy";
     homepage = "https://fishfight.org/";
     changelog = "https://github.com/fishfolk/jumpy/releases/tag/v${version}";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/nixpkgs/pkgs/games/kabeljau/default.nix b/nixpkgs/pkgs/games/kabeljau/default.nix
index 0b5b1167ead3..b518121b6390 100644
--- a/nixpkgs/pkgs/games/kabeljau/default.nix
+++ b/nixpkgs/pkgs/games/kabeljau/default.nix
@@ -33,6 +33,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     description = "Survive as a stray cat in an ncurses game";
+    mainProgram = "kabeljau";
     homepage = "https://codeberg.org/annaaurora/kabeljau";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ annaaurora ];
diff --git a/nixpkgs/pkgs/games/katago/default.nix b/nixpkgs/pkgs/games/katago/default.nix
index 834ec0774d7a..e9ba507a3c95 100644
--- a/nixpkgs/pkgs/games/katago/default.nix
+++ b/nixpkgs/pkgs/games/katago/default.nix
@@ -98,6 +98,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Go engine modeled after AlphaGo Zero";
+    mainProgram = "katago";
     homepage    = "https://github.com/lightvector/katago";
     license     = licenses.mit;
     maintainers = [ maintainers.omnipotententity ];
diff --git a/nixpkgs/pkgs/games/keeperrl/default.nix b/nixpkgs/pkgs/games/keeperrl/default.nix
index c66ffdee920d..0cbcfd036702 100644
--- a/nixpkgs/pkgs/games/keeperrl/default.nix
+++ b/nixpkgs/pkgs/games/keeperrl/default.nix
@@ -82,6 +82,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A dungeon management rogue-like";
+    mainProgram = "keeper";
     homepage = "https://keeperrl.com/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/games/klavaro/default.nix b/nixpkgs/pkgs/games/klavaro/default.nix
index b99969bf6a81..58dda8d23a63 100644
--- a/nixpkgs/pkgs/games/klavaro/default.nix
+++ b/nixpkgs/pkgs/games/klavaro/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Free touch typing tutor program";
+    mainProgram = "klavaro";
     homepage = "http://klavaro.sourceforge.net/";
     changelog = "https://sourceforge.net/p/klavaro/code/HEAD/tree/trunk/ChangeLog";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/games/kobodeluxe/default.nix b/nixpkgs/pkgs/games/kobodeluxe/default.nix
index 9dea90824204..9a2d16c14bff 100644
--- a/nixpkgs/pkgs/games/kobodeluxe/default.nix
+++ b/nixpkgs/pkgs/games/kobodeluxe/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://olofson.net/kobodl/";
     description = "Enhanced version of Akira Higuchi's game XKobo  for Un*x systems with X11";
+    mainProgram = "kobodl";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/games/koboredux/default.nix b/nixpkgs/pkgs/games/koboredux/default.nix
index 91981fc85fba..46db8b1da57a 100644
--- a/nixpkgs/pkgs/games/koboredux/default.nix
+++ b/nixpkgs/pkgs/games/koboredux/default.nix
@@ -75,6 +75,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A frantic 80's style 2D shooter, similar to XKobo and Kobo Deluxe" +
       optionalString (!useProprietaryAssets) " (built without proprietary assets)";
+    mainProgram = "kobord";
     longDescription = ''
       Kobo Redux is a frantic 80's style 2D shooter, inspired by the look and
       feel of 90's arcade cabinets. The gameplay is fast and unforgiving,
diff --git a/nixpkgs/pkgs/games/koules/default.nix b/nixpkgs/pkgs/games/koules/default.nix
index 360415dc2e1d..a59199e949c8 100644
--- a/nixpkgs/pkgs/games/koules/default.nix
+++ b/nixpkgs/pkgs/games/koules/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.ucw.cz/~hubicka/koules/English/";
     description = "Fast arcade game based on the fundamental law of body attraction";
+    mainProgram = "xkoules";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.iblech ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/lgames/lbreakout2/default.nix b/nixpkgs/pkgs/games/lgames/lbreakout2/default.nix
deleted file mode 100644
index f554a1683eee..000000000000
--- a/nixpkgs/pkgs/games/lgames/lbreakout2/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, fetchpatch
-, SDL
-, SDL_mixer
-, libintl
-, libpng
-, zlib
-}:
-
-stdenv.mkDerivation rec {
-  pname = "lbreakout2";
-  version = "2.6.5";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/lgames/${pname}-${version}.tar.gz";
-    sha256 = "0vwdlyvh7c4y80q5vp7fyfpzbqk9lq3w8pvavi139njkalbxc14i";
-  };
-
-  # Can't exit from pause without this patch
-  patches = [(fetchpatch {
-    url = "https://sources.debian.org/data/main/l/lbreakout2/2.6.5-2/debian/patches/sdl_fix_pauses.patch";
-    hash = "sha256-ycsuxfokpOblLky42MwtJowdEp7v5dZRMFIR4id4ZBI=";
-  })];
-
-  buildInputs = [
-    SDL
-    SDL_mixer
-    libintl
-    libpng
-    zlib
-  ];
-
-  # With fortify it crashes at runtime:
-  #   *** buffer overflow detected ***: terminated
-  #   Aborted (core dumped)
-  hardeningDisable = [ "fortify" ];
-
-  meta = with lib; {
-    homepage = "http://lgames.sourceforge.net/LBreakout2/";
-    description = "Breakout clone from the LGames series";
-    license = licenses.gpl2Plus;
-    maintainers = [ maintainers.ciil ];
-    platforms = platforms.unix;
-    hydraPlatforms = lib.platforms.linux; # sdl-config times out on darwin
-  };
-}
diff --git a/nixpkgs/pkgs/games/lgogdownloader/default.nix b/nixpkgs/pkgs/games/lgogdownloader/default.nix
index a28ccea53ca1..a03a05bcb356 100644
--- a/nixpkgs/pkgs/games/lgogdownloader/default.nix
+++ b/nixpkgs/pkgs/games/lgogdownloader/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Unofficial downloader to GOG.com for Linux users. It uses the same API as the official GOGDownloader";
+    mainProgram = "lgogdownloader";
     homepage = "https://github.com/Sude-/lgogdownloader";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ _0x4A6F ];
diff --git a/nixpkgs/pkgs/games/liberation-circuit/default.nix b/nixpkgs/pkgs/games/liberation-circuit/default.nix
index 365fbb2983eb..533391082034 100644
--- a/nixpkgs/pkgs/games/liberation-circuit/default.nix
+++ b/nixpkgs/pkgs/games/liberation-circuit/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Real-time strategy game with programmable units";
+    mainProgram = "liberation-circuit";
     longDescription = ''
       Escape from a hostile computer system! Harvest data to create an armada of battle-processes to aid your escape! Take command directly and play the game as an RTS, or use the game's built-in editor and compiler to write your own unit AI in a simplified version of C.
     '';
diff --git a/nixpkgs/pkgs/games/libremines/default.nix b/nixpkgs/pkgs/games/libremines/default.nix
index fddc2ba92001..9177e337593e 100644
--- a/nixpkgs/pkgs/games/libremines/default.nix
+++ b/nixpkgs/pkgs/games/libremines/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Qt based Minesweeper game";
+    mainProgram = "libremines";
     longDescription = ''
       A Free/Libre and Open Source Software Qt based Minesweeper game available for GNU/Linux, FreeBSD and Windows systems.
     '';
diff --git a/nixpkgs/pkgs/games/lincity/default.nix b/nixpkgs/pkgs/games/lincity/default.nix
index 50b48f0a1582..e03dda491c4c 100644
--- a/nixpkgs/pkgs/games/lincity/default.nix
+++ b/nixpkgs/pkgs/games/lincity/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "City simulation game";
+    mainProgram = "xlincity";
     license = licenses.gpl2Plus;
     homepage = "https://sourceforge.net/projects/lincity";
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/games/lincity/ng.nix b/nixpkgs/pkgs/games/lincity/ng.nix
index 9901255be4dc..2bf4e9c6f8f8 100644
--- a/nixpkgs/pkgs/games/lincity/ng.nix
+++ b/nixpkgs/pkgs/games/lincity/ng.nix
@@ -77,6 +77,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "City building game";
+    mainProgram = "lincity-ng";
     license = licenses.gpl2;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/linthesia/default.nix b/nixpkgs/pkgs/games/linthesia/default.nix
index 0fd252e7ba5d..1200afa4f2f7 100644
--- a/nixpkgs/pkgs/games/linthesia/default.nix
+++ b/nixpkgs/pkgs/games/linthesia/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A game of playing music using a MIDI keyboard following a MIDI file";
+    mainProgram = "linthesia";
     inherit (src.meta) homepage;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/lugaru/default.nix b/nixpkgs/pkgs/games/lugaru/default.nix
index 9d10691fe49c..b989195bd5a3 100644
--- a/nixpkgs/pkgs/games/lugaru/default.nix
+++ b/nixpkgs/pkgs/games/lugaru/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Third person ninja rabbit fighting game";
+    mainProgram = "lugaru";
     homepage = "https://osslugaru.gitlab.io";
     maintainers = [ ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/lzwolf/default.nix b/nixpkgs/pkgs/games/lzwolf/default.nix
index 3f1e37c258a3..7e3e932ba5cf 100644
--- a/nixpkgs/pkgs/games/lzwolf/default.nix
+++ b/nixpkgs/pkgs/games/lzwolf/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://bitbucket.org/linuxwolf6/lzwolf";
     description = "Enhanced fork of ECWolf, a Wolfenstein 3D source port";
+    mainProgram = "lzwolf";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ tgunnoe ];
diff --git a/nixpkgs/pkgs/games/macopix/default.nix b/nixpkgs/pkgs/games/macopix/default.nix
index 277752dc91c3..ca9870727b2c 100644
--- a/nixpkgs/pkgs/games/macopix/default.nix
+++ b/nixpkgs/pkgs/games/macopix/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Mascot Constructive Pilot for X";
+    mainProgram = "macopix";
     homepage = "http://rosegray.sakura.ne.jp/macopix/index-e.html";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/games/maelstrom/default.nix b/nixpkgs/pkgs/games/maelstrom/default.nix
index 065784d605ef..9c408b2643cf 100644
--- a/nixpkgs/pkgs/games/maelstrom/default.nix
+++ b/nixpkgs/pkgs/games/maelstrom/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An arcade-style game resembling Asteroids";
+    mainProgram = "maelstrom";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ tmountain ];
diff --git a/nixpkgs/pkgs/games/maptool/default.nix b/nixpkgs/pkgs/games/maptool/default.nix
index ed505b32eda3..1e95e376825c 100644
--- a/nixpkgs/pkgs/games/maptool/default.nix
+++ b/nixpkgs/pkgs/games/maptool/default.nix
@@ -21,12 +21,13 @@ let
 
   meta = with lib; {
     description = "Virtual Tabletop for playing roleplaying games with remote players or face to face";
+    mainProgram = "maptool";
     homepage = "https://www.rptools.net/toolbox/maptool/";
     sourceProvenance = with sourceTypes; [
       binaryBytecode
       binaryNativeCode
     ];
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     maintainers = with maintainers; [ rhendric ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/nixpkgs/pkgs/games/mar1d/default.nix b/nixpkgs/pkgs/games/mar1d/default.nix
index 6b3fe5feb2de..b069e3fecc46 100644
--- a/nixpkgs/pkgs/games/mar1d/default.nix
+++ b/nixpkgs/pkgs/games/mar1d/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "First person Super Mario Bros";
+    mainProgram = "MAR1D";
     longDescription = ''
       The original Super Mario Bros as you've never seen it. Step into Mario's
       shoes in this first person clone of the classic Mario game. True to the
@@ -39,7 +40,7 @@ stdenv.mkDerivation rec {
       You must view the world as mario does, as a one dimensional line.
     '';
     homepage = "https://mar1d.com";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ taeer ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/games/marble-marcher-ce/default.nix b/nixpkgs/pkgs/games/marble-marcher-ce/default.nix
index 8bf7da44cadc..ee1422abc5b8 100644
--- a/nixpkgs/pkgs/games/marble-marcher-ce/default.nix
+++ b/nixpkgs/pkgs/games/marble-marcher-ce/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A community-developed version of the original Marble Marcher - a fractal physics game";
+    mainProgram = "marble-marcher-ce";
     homepage = "https://michaelmoroz.itch.io/mmce";
     license = with licenses; [
       gpl2Plus # Code
diff --git a/nixpkgs/pkgs/games/mari0/default.nix b/nixpkgs/pkgs/games/mari0/default.nix
index 6e644245c4fb..f75fbedebd7d 100644
--- a/nixpkgs/pkgs/games/mari0/default.nix
+++ b/nixpkgs/pkgs/games/mari0/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Crossover between Super Mario Bros. and Portal";
+    mainProgram = "mari0";
     platforms = platforms.linux;
     license = licenses.mit;
     downloadPage = "https://stabyourself.net/mari0/";
diff --git a/nixpkgs/pkgs/games/methane/default.nix b/nixpkgs/pkgs/games/methane/default.nix
index 071e1a64b545..5ab8843b33bf 100644
--- a/nixpkgs/pkgs/games/methane/default.nix
+++ b/nixpkgs/pkgs/games/methane/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/rombust/methane";
     description = "A clone of Taito's Bubble Bobble arcade game released for Amiga in 1993 by Apache Software";
+    mainProgram = "methane";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ nixinator ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/games/mindustry/default.nix b/nixpkgs/pkgs/games/mindustry/default.nix
index d901fba57af7..0562ff40ac2d 100644
--- a/nixpkgs/pkgs/games/mindustry/default.nix
+++ b/nixpkgs/pkgs/games/mindustry/default.nix
@@ -4,7 +4,7 @@
 , copyDesktopItems
 , fetchFromGitHub
 , gradle
-, jdk
+, jdk17
 , perl
 
 # for arc
@@ -40,6 +40,7 @@ let
   version = "146";
   buildVersion = makeBuildVersion version;
 
+  jdk = jdk17;
   gradleWithJdk = gradle.override { java = jdk; };
 
   selectedGlew = if enableWayland then glew-egl else glew;
diff --git a/nixpkgs/pkgs/games/mnemosyne/default.nix b/nixpkgs/pkgs/games/mnemosyne/default.nix
index 388aefe567b9..938e6aa53aca 100644
--- a/nixpkgs/pkgs/games/mnemosyne/default.nix
+++ b/nixpkgs/pkgs/games/mnemosyne/default.nix
@@ -53,6 +53,7 @@ python.pkgs.buildPythonApplication rec {
   meta = {
     homepage = "https://mnemosyne-proj.org/";
     description = "Spaced-repetition software";
+    mainProgram = "mnemosyne";
     longDescription = ''
       The Mnemosyne Project has two aspects:
 
diff --git a/nixpkgs/pkgs/games/moon-buggy/default.nix b/nixpkgs/pkgs/games/moon-buggy/default.nix
index 87e089eb9571..e0235e70a92d 100644
--- a/nixpkgs/pkgs/games/moon-buggy/default.nix
+++ b/nixpkgs/pkgs/games/moon-buggy/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A simple character graphics game where you drive some kind of car across the moon's surface";
+    mainProgram = "moon-buggy";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.rybern ];
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
diff --git a/nixpkgs/pkgs/games/mrrescue/default.nix b/nixpkgs/pkgs/games/mrrescue/default.nix
index a020a6b34f1b..17e24d3af1a3 100644
--- a/nixpkgs/pkgs/games/mrrescue/default.nix
+++ b/nixpkgs/pkgs/games/mrrescue/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Arcade-style fire fighting game";
+    mainProgram = "mrrescue";
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
     license = licenses.zlib;
diff --git a/nixpkgs/pkgs/games/n2048/default.nix b/nixpkgs/pkgs/games/n2048/default.nix
index ec3a4e2bbeec..2ae937ee6be2 100644
--- a/nixpkgs/pkgs/games/n2048/default.nix
+++ b/nixpkgs/pkgs/games/n2048/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   '';
   meta = with lib; {
     description = "Console implementation of 2048 game";
+    mainProgram = "n2048";
     license = licenses.bsd2;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/naev/default.nix b/nixpkgs/pkgs/games/naev/default.nix
index 6be1d6700fc4..962497bb73c0 100644
--- a/nixpkgs/pkgs/games/naev/default.nix
+++ b/nixpkgs/pkgs/games/naev/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "naev";
-  version = "0.11.3";
+  version = "0.11.4";
 
   src = fetchFromGitHub {
     owner = "naev";
     repo = "naev";
     rev = "v${version}";
-    sha256 = "sha256-2n7i5qCFdpjBpjeMv6aCd0zyD4c60FciHmSafbArnms=";
+    sha256 = "sha256-Cyun9BxIcv5V3HbMuFEhbYZnAuneTUwztc+ZlNaTp70=";
     fetchSubmodules = true;
   };
 
@@ -75,6 +75,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "2D action/rpg space game";
+    mainProgram = "naev";
     homepage = "http://www.naev.org";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ ralismark ];
diff --git a/nixpkgs/pkgs/games/nethack/default.nix b/nixpkgs/pkgs/games/nethack/default.nix
index fbbdfeabe31b..e45862b3025b 100644
--- a/nixpkgs/pkgs/games/nethack/default.nix
+++ b/nixpkgs/pkgs/games/nethack/default.nix
@@ -61,6 +61,7 @@ in stdenv.mkDerivation rec {
       -e 's,^WINTTYLIB=.*,WINTTYLIB=-lncurses,' \
       -i sys/unix/hints/linux
     sed \
+      -e 's,^#WANT_WIN_CURSES=1$,WANT_WIN_CURSES=1,' \
       -e 's,^CC=.*$,CC=${stdenv.cc.targetPrefix}cc,' \
       -e 's,^HACKDIR=.*$,HACKDIR=\$(PREFIX)/games/lib/\$(GAME)dir,' \
       -e 's,^SHELLDIR=.*$,SHELLDIR=\$(PREFIX)/games,' \
@@ -99,7 +100,8 @@ in stdenv.mkDerivation rec {
     popd
   '';
 
-  enableParallelBuilding = true;
+  # https://github.com/NixOS/nixpkgs/issues/294751
+  enableParallelBuilding = false;
 
   preFixup = lib.optionalString qtMode ''
     wrapQtApp "$out/games/nethack"
diff --git a/nixpkgs/pkgs/games/netris/default.nix b/nixpkgs/pkgs/games/netris/default.nix
index ff898128ca06..620f21f02902 100644
--- a/nixpkgs/pkgs/games/netris/default.nix
+++ b/nixpkgs/pkgs/games/netris/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A free networked version of T*tris";
+    mainProgram = "netris";
     license = licenses.gpl2;
     maintainers = with maintainers; [ patryk27 ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/newtonwars/default.nix b/nixpkgs/pkgs/games/newtonwars/default.nix
index 0be3d9bf7a0e..5541d9ade7d1 100644
--- a/nixpkgs/pkgs/games/newtonwars/default.nix
+++ b/nixpkgs/pkgs/games/newtonwars/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A space battle game with gravity as the main theme";
+    mainProgram = "nw";
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.linux;
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/games/nile/default.nix b/nixpkgs/pkgs/games/nile/default.nix
index d7eb2cfb3b8e..b83eda87f934 100644
--- a/nixpkgs/pkgs/games/nile/default.nix
+++ b/nixpkgs/pkgs/games/nile/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonApplication rec {
   pname = "nile";
-  version = "unstable-2024-02-05";
+  version = "unstable-2024-03-09";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "imLinguin";
     repo = "nile";
-    rev = "5e878e19f6caba74bfe18369d84476ceb6779ff1";
-    hash = "sha256-sGhceSW1bL5uQ726apfn9BJaO1FxjOBqzAdt2x7us9Q=";
+    rev = "ae09acfc20fe4e462762666871f78caae70f6c74";
+    hash = "sha256-hqhIacsbultY3CvvkYAZHmhCkQLi1mkPQwkztaUOd10=";
   };
 
   disabled = pythonOlder "3.8";
@@ -50,6 +50,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Unofficial Amazon Games client";
+    mainProgram = "nile";
     homepage = "https://github.com/imLinguin/nile";
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ aidalgol ];
diff --git a/nixpkgs/pkgs/games/ninvaders/default.nix b/nixpkgs/pkgs/games/ninvaders/default.nix
index c3f455b71b07..5fe9eb81be61 100644
--- a/nixpkgs/pkgs/games/ninvaders/default.nix
+++ b/nixpkgs/pkgs/games/ninvaders/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Space Invaders clone based on ncurses";
+    mainProgram = "ninvaders";
     homepage = "https://ninvaders.sourceforge.net/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ _1000101 ];
diff --git a/nixpkgs/pkgs/games/njam/default.nix b/nixpkgs/pkgs/games/njam/default.nix
index 971cd1d0726c..8fce2a1ca8cd 100644
--- a/nixpkgs/pkgs/games/njam/default.nix
+++ b/nixpkgs/pkgs/games/njam/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://trackballs.sourceforge.net/";
     description = "Cross-platform pacman-like game";
+    mainProgram = "njam";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/games/npush/default.nix b/nixpkgs/pkgs/games/npush/default.nix
index 7f4afb7b89f3..9fc465da38a8 100644
--- a/nixpkgs/pkgs/games/npush/default.nix
+++ b/nixpkgs/pkgs/games/npush/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
     broken = stdenv.isDarwin;
     homepage = "https://npush.sourceforge.net/";
     description = "A Sokoban-like game";
+    mainProgram = "npush";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; unix;
diff --git a/nixpkgs/pkgs/games/nsnake/default.nix b/nixpkgs/pkgs/games/nsnake/default.nix
index aa3f568ec009..a4ac391690ec 100644
--- a/nixpkgs/pkgs/games/nsnake/default.nix
+++ b/nixpkgs/pkgs/games/nsnake/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "ncurses based snake game for the terminal";
+    mainProgram = "nsnake";
     homepage = "https://github.com/alexdantas/nSnake";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ clerie ];
diff --git a/nixpkgs/pkgs/games/nudoku/default.nix b/nixpkgs/pkgs/games/nudoku/default.nix
index d3e3d039d986..11e6fc0d8f28 100644
--- a/nixpkgs/pkgs/games/nudoku/default.nix
+++ b/nixpkgs/pkgs/games/nudoku/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An ncurses based sudoku game";
+    mainProgram = "nudoku";
     homepage = "http://jubalh.github.io/nudoku/";
     license = licenses.gpl3;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/games/oh-my-git/default.nix b/nixpkgs/pkgs/games/oh-my-git/default.nix
index f2ac8b4289c6..9fe0fb9ac420 100644
--- a/nixpkgs/pkgs/games/oh-my-git/default.nix
+++ b/nixpkgs/pkgs/games/oh-my-git/default.nix
@@ -127,6 +127,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://ohmygit.org/";
     description = "An interactive Git learning game";
+    mainProgram = "oh-my-git";
     license = with licenses; [ blueOak100 ];
     platforms   = [ "x86_64-linux" ];
     maintainers = with maintainers; [ jojosch ];
diff --git a/nixpkgs/pkgs/games/onscripter-en/default.nix b/nixpkgs/pkgs/games/onscripter-en/default.nix
index aaa14e6b2bd0..edc9e20235ff 100644
--- a/nixpkgs/pkgs/games/onscripter-en/default.nix
+++ b/nixpkgs/pkgs/games/onscripter-en/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Japanese visual novel scripting engine";
+    mainProgram = "onscripter-en";
     homepage = "http://unclemion.com/onscripter/";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/games/opendune/default.nix b/nixpkgs/pkgs/games/opendune/default.nix
index 32e1ef4fca93..6df2a5b7a206 100644
--- a/nixpkgs/pkgs/games/opendune/default.nix
+++ b/nixpkgs/pkgs/games/opendune/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Dune, Reinvented";
+    mainProgram = "opendune";
     homepage = "https://github.com/OpenDUNE/OpenDUNE";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/games/opendungeons/default.nix b/nixpkgs/pkgs/games/opendungeons/default.nix
index 10bcf19a53e7..8755a07169bf 100644
--- a/nixpkgs/pkgs/games/opendungeons/default.nix
+++ b/nixpkgs/pkgs/games/opendungeons/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "An open source, real time strategy game sharing game elements with the Dungeon Keeper series and Evil Genius";
+    mainProgram = "opendungeons";
     homepage = "https://opendungeons.github.io";
     license = with licenses; [ gpl3Plus zlib mit cc-by-sa-30 cc0 ofl cc-by-30 ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/openjk/default.nix b/nixpkgs/pkgs/games/openjk/default.nix
index 5ef8aa3e43b4..07ef12b00365 100644
--- a/nixpkgs/pkgs/games/openjk/default.nix
+++ b/nixpkgs/pkgs/games/openjk/default.nix
@@ -32,13 +32,13 @@ let
   };
 in stdenv.mkDerivation {
   pname = "OpenJK";
-  version = "0-unstable-2024-02-20";
+  version = "0-unstable-2024-03-05";
 
   src = fetchFromGitHub {
     owner = "JACoders";
     repo = "OpenJK";
-    rev = "1e8a7998ca2fe434daebb41d586ac3cd5296433a";
-    sha256 = "sha256-TKJNaz+oWNYyReFZVefg1frPXyd3Yl96JDklp1qY1to=";
+    rev = "62124e18ef09b293ea66a1f673b827d83e073928";
+    sha256 = "sha256-2LgxRWoAfxNE6YDyrpNmDH9APhi2XH4ufNCNMd91llU=";
   };
 
   dontAddPrefix = true;
diff --git a/nixpkgs/pkgs/games/openspades/default.nix b/nixpkgs/pkgs/games/openspades/default.nix
index b72f3877a461..0f9060d235d7 100644
--- a/nixpkgs/pkgs/games/openspades/default.nix
+++ b/nixpkgs/pkgs/games/openspades/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A compatible client of Ace of Spades 0.75";
+    mainProgram = "openspades";
     homepage    = "https://github.com/yvt/openspades/";
     license     = licenses.gpl3;
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/games/openttd/default.nix b/nixpkgs/pkgs/games/openttd/default.nix
index 6122b586770e..69a2c75fa463 100644
--- a/nixpkgs/pkgs/games/openttd/default.nix
+++ b/nixpkgs/pkgs/games/openttd/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = ''Open source clone of the Microprose game "Transport Tycoon Deluxe"'';
+    mainProgram = "openttd";
     longDescription = ''
       OpenTTD is a transportation economics simulator. In single player mode,
       players control a transportation business, and use rail, road, sea, and air
diff --git a/nixpkgs/pkgs/games/openttd/nml.nix b/nixpkgs/pkgs/games/openttd/nml.nix
index 8ec8adf5f22b..65dddce236e3 100644
--- a/nixpkgs/pkgs/games/openttd/nml.nix
+++ b/nixpkgs/pkgs/games/openttd/nml.nix
@@ -23,6 +23,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "http://openttdcoop.org/";
     description = "Compiler for OpenTTD NML files";
+    mainProgram = "nmlc";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ToxicFrog ];
   };
diff --git a/nixpkgs/pkgs/games/opentyrian/default.nix b/nixpkgs/pkgs/games/opentyrian/default.nix
index f01874ce9435..1f0e9ae18a64 100644
--- a/nixpkgs/pkgs/games/opentyrian/default.nix
+++ b/nixpkgs/pkgs/games/opentyrian/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = ''Open source port of the game "Tyrian"'';
+    mainProgram = "opentyrian";
     homepage = "https://github.com/opentyrian/opentyrian";
     # This does not account of Tyrian data.
     # license = lib.licenses.gpl2;
diff --git a/nixpkgs/pkgs/games/openxcom/default.nix b/nixpkgs/pkgs/games/openxcom/default.nix
index c09bd5c28f2f..3ae8e23605da 100644
--- a/nixpkgs/pkgs/games/openxcom/default.nix
+++ b/nixpkgs/pkgs/games/openxcom/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Open source clone of UFO: Enemy Unknown";
+    mainProgram = "openxcom";
     homepage = "https://openxcom.org";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ cpages ];
diff --git a/nixpkgs/pkgs/games/orthorobot/default.nix b/nixpkgs/pkgs/games/orthorobot/default.nix
index 10bf3f9268e6..bd491ce5c913 100644
--- a/nixpkgs/pkgs/games/orthorobot/default.nix
+++ b/nixpkgs/pkgs/games/orthorobot/default.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Recharge the robot";
+    mainProgram = "orthorobot";
     maintainers = with maintainers; [ leenaars ];
     platforms = platforms.linux;
     license = licenses.free;
diff --git a/nixpkgs/pkgs/games/osu-lazer/bin.nix b/nixpkgs/pkgs/games/osu-lazer/bin.nix
index be46a964de88..a7c6ac667411 100644
--- a/nixpkgs/pkgs/games/osu-lazer/bin.nix
+++ b/nixpkgs/pkgs/games/osu-lazer/bin.nix
@@ -7,22 +7,22 @@
 
 let
   pname = "osu-lazer-bin";
-  version = "2024.302.1";
+  version = "2024.312.1";
 
   src = {
     aarch64-darwin = fetchzip {
       url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Apple.Silicon.zip";
-      hash = "sha256-fhjmYAgszAF0uNk94fDj1g4oi8PiHY5lgPc5SdF9L8I=";
+      hash = "sha256-1MsZ9gHTZKArXk1b6XEBNk/ZWAUHKjbVrrn++dLulaQ=";
       stripRoot = false;
     };
     x86_64-darwin = fetchzip {
       url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Intel.zip";
-      hash = "sha256-divrIWeBWjKvWxb+BANnsrUcSP2QlicFgPFpH+H2dpA=";
+      hash = "sha256-Xgl8lrMsL9O9YHbEx3Iwwh9fpLOnYZN0Kt28F5X5OwE=";
       stripRoot = false;
     };
     x86_64-linux = fetchurl {
       url = "https://github.com/ppy/osu/releases/download/${version}/osu.AppImage";
-      hash = "sha256-vYG3viY9GBtgaY8ThCSWss+zzjAyVa4fmrWrQdYcUow=";
+      hash = "sha256-1dzgs1p3/pf4eCdKvQ9JxowN+oBPBNaZv5e6qHeFPEM=";
     };
   }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported.");
 
diff --git a/nixpkgs/pkgs/games/osu-lazer/default.nix b/nixpkgs/pkgs/games/osu-lazer/default.nix
index 60e372a768ec..f40ea0634211 100644
--- a/nixpkgs/pkgs/games/osu-lazer/default.nix
+++ b/nixpkgs/pkgs/games/osu-lazer/default.nix
@@ -17,13 +17,13 @@
 
 buildDotnetModule rec {
   pname = "osu-lazer";
-  version = "2024.302.1";
+  version = "2024.312.1";
 
   src = fetchFromGitHub {
     owner = "ppy";
     repo = "osu";
     rev = version;
-    hash = "sha256-4+ACEWYgXvr8eoRJZHmTq74Bh159V+p2K+Pn1IPi2l4=";
+    hash = "sha256-7xxuVcBtC79EiDz+/x0IqbPofpgwMdz87XjRLqkCBb8=";
   };
 
   projectFile = "osu.Desktop/osu.Desktop.csproj";
diff --git a/nixpkgs/pkgs/games/osu-lazer/deps.nix b/nixpkgs/pkgs/games/osu-lazer/deps.nix
index 56cd9d37db82..23f435b7280b 100644
--- a/nixpkgs/pkgs/games/osu-lazer/deps.nix
+++ b/nixpkgs/pkgs/games/osu-lazer/deps.nix
@@ -5,12 +5,12 @@
   (fetchNuGet { pname = "AutoMapper"; version = "12.0.1"; sha256 = "0s0wjl4ck3sal8a50x786wxs9mbca7bxaqk3558yx5wpld4h4z3b"; })
   (fetchNuGet { pname = "Clowd.Squirrel"; version = "2.11.1"; sha256 = "0s8ar0cl1pz1cbh3xm79cyaqdnfdm89mxd18qkhbyavhn6kqgnm0"; })
   (fetchNuGet { pname = "CodeFileSanity"; version = "0.0.37"; sha256 = "03ja3g66lb0smjmkr3yf28h7fy52wwbdnf6p268zfla3azh006pq"; })
-  (fetchNuGet { pname = "DiffPlex"; version = "1.7.1"; sha256 = "1q78r70pirgb7j5wkh454ws237lihh0fig212cpbj02cz53c2h6j"; })
+  (fetchNuGet { pname = "DiffPlex"; version = "1.7.2"; sha256 = "04db3fs6cl380309kdsabss61f6gqjb8fd0yj47z5640vgazrjan"; })
   (fetchNuGet { pname = "DiscordRichPresence"; version = "1.2.1.24"; sha256 = "0maw0yd6xgwy0cgk593z3zva0r5j267zpdmmpq8avj3zbna6n4x1"; })
   (fetchNuGet { pname = "FFmpeg.AutoGen"; version = "4.3.0.1"; sha256 = "0n6x57mnnvcjnrs8zyvy07h5zm4bcfy9gh4n4bvd9fx5ys4pxkvv"; })
   (fetchNuGet { pname = "Fody"; version = "6.8.0"; sha256 = "1y159433n5wzlvc8hjjrhjarf7mjvngbmh34jkd452zlrjqrhmns"; })
   (fetchNuGet { pname = "HidSharpCore"; version = "1.2.1.1"; sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll"; })
-  (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.57"; sha256 = "0brswm659d2vb11021z7xylljlnaf344yf5q093bqxyhbxva8ijq"; })
+  (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.59"; sha256 = "0h4a2aq50x5hlgzp6qyqcly67j49rsrscrd83qmzqk6a7g1a50cz"; })
   (fetchNuGet { pname = "Humanizer"; version = "2.14.1"; sha256 = "18cycx9gvbc3735chdi2r583x73m2fkz1ws03yi3g640j9zv00fp"; })
   (fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; sha256 = "1ai7hgr0qwd7xlqfd92immddyi41j3ag91h3594yzfsgsy6yhyqi"; })
   (fetchNuGet { pname = "Humanizer.Core.af"; version = "2.14.1"; sha256 = "197lsky6chbmrixgsg6dvxbdbbpis0an8mn6vnwjcydhncis087h"; })
@@ -137,10 +137,10 @@
   (fetchNuGet { pname = "ppy.ManagedBass.Fx"; version = "2022.1216.0"; sha256 = "1vw573mkligpx9qiqasw1683cqaa1kgnxhlnbdcj9c4320b1pwjm"; })
   (fetchNuGet { pname = "ppy.ManagedBass.Mix"; version = "2022.1216.0"; sha256 = "185bpvgbnd8y20r7vxb1an4pd1aal9b7b5wvmv3knz0qg8j0chd9"; })
   (fetchNuGet { pname = "ppy.ManagedBass.Wasapi"; version = "2022.1216.0"; sha256 = "0h2ncf59sza8whvrwwqi8b6fcrkqrnfgfhd0vnhyw0s98nj74f0z"; })
-  (fetchNuGet { pname = "ppy.osu.Framework"; version = "2024.223.0"; sha256 = "0k97jd4kac3vzsyvgn7imx17lad8ibbrhfx1q8vglqy6w5mriqlw"; })
+  (fetchNuGet { pname = "ppy.osu.Framework"; version = "2024.306.0"; sha256 = "0fvjr0955n8y5cysdmwzqq3anj59qk3dv2x23mrgdr3hdc75xb92"; })
   (fetchNuGet { pname = "ppy.osu.Framework.NativeLibs"; version = "2023.1225.0-nativelibs"; sha256 = "008kj91i9486ff2q7fcgb8mmpinskvnmfsqza2m5vafh295y3h7m"; })
   (fetchNuGet { pname = "ppy.osu.Framework.SourceGeneration"; version = "2023.720.0"; sha256 = "001vvxyv483ibid25fdknvij77x0y983mp4psx2lbg3x2al7yxax"; })
-  (fetchNuGet { pname = "ppy.osu.Game.Resources"; version = "2024.207.0"; sha256 = "0960jg0a860f545phscimv5qw6bzijpc4pyplx126zcm1w1cpmfi"; })
+  (fetchNuGet { pname = "ppy.osu.Game.Resources"; version = "2024.309.0"; sha256 = "1ckl3yzxijnsg73awwvbs1rfnla29r88f2qarq51l8fd1ngcig26"; })
   (fetchNuGet { pname = "ppy.osuTK.NS20"; version = "1.0.211"; sha256 = "0j4a9n39pqm0cgdcps47p5n2mqph3h94r7hmf0bs59imif4jxvjy"; })
   (fetchNuGet { pname = "ppy.SDL2-CS"; version = "1.0.693-alpha"; sha256 = "15fgd3j9cs3adldiscqm0ffixf68h06wqdz1xy1286z4gczhi954"; })
   (fetchNuGet { pname = "ppy.Veldrid"; version = "4.9.5-gc8dfc5ca19"; sha256 = "0w0mimfwdgbywmvq2yv04p65wgi1plhlk1ya012yyxp13vvhfgi8"; })
@@ -198,12 +198,12 @@
   (fetchNuGet { pname = "SharpFNT"; version = "2.0.0"; sha256 = "1bgacgh9hbck0qvji6frbb50sdiqfdng2fvvfgfw8b9qaql91mx0"; })
   (fetchNuGet { pname = "SharpGen.Runtime"; version = "2.0.0-beta.13"; sha256 = "1250z6sa9ghf84czlkzvaysb29c0n229z1f0vh5qls89akrkl7h8"; })
   (fetchNuGet { pname = "SharpGen.Runtime.COM"; version = "2.0.0-beta.13"; sha256 = "1lmv3jp2g7mgy9j23pd3j0wr3p89qiq8v6c6qxqf688izyni1166"; })
-  (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "2.1.0"; sha256 = "0lmj3qs39v5jcf2rjwav43nqnc7g6sd4l226l2jw85nidzmpvkwr"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.1.7"; sha256 = "1pi9mpzy7wi0rcqpny0gkn7pxykg01b0x2pkv8sxl0ddzl8ywg7s"; })
+  (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "3.1.3"; sha256 = "0f36my2lzkgc5fvk6s0lh4gn15vxhbl2zg71rdql7vrzh8b77c6q"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.1.8"; sha256 = "0m5jhil1h0z9x9j38x0k4053s065z28bsdgy3fxa85d4b5898shw"; })
   (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.4"; sha256 = "09akxz92qipr1cj8mk2hw99i0b81wwbwx26gpk21471zh543f8ld"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.7"; sha256 = "1y3jl4c76g2i13xss72nfvx5qr6mzsbjvjc5f9arybh53a0wavd6"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.1.7"; sha256 = "1kbwf3fn8kcf1q3gm87m359yxmb6kcnclk2y469008yijvijwa26"; })
-  (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.1.7"; sha256 = "0kcbn0s7n3ck1s1x30zf9y7x8n6c09qgj7n20h4zj2hyxcp3ag9b"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.8"; sha256 = "1j67fs6qznkcsfnf2z2571vks1c0bhg4nzcbh8i286rz77hk9gcg"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.1.8"; sha256 = "1v193rgm734kymaia5ws4zkq2a9qri7sd2vhqxv0xlysbpsahs1s"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.1.8"; sha256 = "12x7z1i13571fbiddvp8bzhyxvvvwwd2wwd7c8kd11hpkfza0kbq"; })
   (fetchNuGet { pname = "StbiSharp"; version = "1.1.0"; sha256 = "0wbw20m7nyhxj32k153l668sxigamlwig0qpz8l8d0jqz35vizm0"; })
   (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
   (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
@@ -276,7 +276,6 @@
   (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.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
-  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0-rc.1.21451.13"; sha256 = "0v5bc80p35jj5b5xdgsn5r1v4w68gqz0sahi214rprrrlr3sl206"; })
   (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
@@ -305,7 +304,6 @@
   (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 = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
   (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
   (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
diff --git a/nixpkgs/pkgs/games/pacvim/default.nix b/nixpkgs/pkgs/games/pacvim/default.nix
index a4347550c1d2..a4458b0d085f 100644
--- a/nixpkgs/pkgs/games/pacvim/default.nix
+++ b/nixpkgs/pkgs/games/pacvim/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/jmoon018/PacVim";
     description = "A game that teaches you vim commands";
+    mainProgram = "pacvim";
     maintainers = with maintainers; [ infinisil ];
     license = licenses.lgpl3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/games/papermc/default.nix b/nixpkgs/pkgs/games/papermc/default.nix
index aa16e51a7ac8..29d5c6b85203 100644
--- a/nixpkgs/pkgs/games/papermc/default.nix
+++ b/nixpkgs/pkgs/games/papermc/default.nix
@@ -1,50 +1,15 @@
-{
-  lib,
-  stdenvNoCC,
-  fetchurl,
-  jre,
-  makeBinaryWrapper,
-}:
-stdenvNoCC.mkDerivation (finalAttrs: {
-  pname = "papermc";
-  version = "1.20.4.435";
-
-  src =
-    let
-      mcVersion = lib.versions.pad 3 finalAttrs.version;
-      buildNum = builtins.elemAt (lib.splitVersion finalAttrs.version) 3;
-    in
-    fetchurl {
-      url = "https://papermc.io/api/v2/projects/paper/versions/${mcVersion}/builds/${buildNum}/downloads/paper-${mcVersion}-${buildNum}.jar";
-      hash = "sha256-NrIsYLoAAWORw/S26NDFjYBVwpNITJxuWGZow3696wM=";
-    };
-
-  installPhase = ''
-    runHook preInstall
-
-    install -D $src $out/share/papermc/papermc.jar
-
-    makeWrapper ${lib.getExe jre} "$out/bin/minecraft-server" \
-      --append-flags "-jar $out/share/papermc/papermc.jar nogui"
-
-    runHook postInstall
-  '';
-
-  nativeBuildInputs = [
-    makeBinaryWrapper
-  ];
-
-  dontUnpack = true;
-  preferLocalBuild = true;
-  allowSubstitutes = false;
-
-  meta = {
-    description = "High-performance Minecraft Server";
-    homepage = "https://papermc.io/";
-    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
-    license = lib.licenses.gpl3Only;
-    platforms = lib.platforms.unix;
-    maintainers = with lib.maintainers; [ aaronjanse neonfuz ];
-    mainProgram = "minecraft-server";
-  };
+{ callPackage, lib, ... }:
+let
+  versions = lib.importJSON ./versions.json;
+  latestVersion = lib.last (builtins.sort lib.versionOlder (builtins.attrNames versions));
+  escapeVersion = builtins.replaceStrings [ "." ] [ "_" ];
+  packages = lib.mapAttrs'
+    (version: value: {
+      name = "papermc-${escapeVersion version}";
+      value = callPackage ./derivation.nix { inherit (value) version hash; };
+    })
+    versions;
+in
+lib.recurseIntoAttrs (packages // {
+  papermc = builtins.getAttr "papermc-${escapeVersion latestVersion}" packages;
 })
diff --git a/nixpkgs/pkgs/games/papermc/derivation.nix b/nixpkgs/pkgs/games/papermc/derivation.nix
new file mode 100644
index 000000000000..50796407c297
--- /dev/null
+++ b/nixpkgs/pkgs/games/papermc/derivation.nix
@@ -0,0 +1,50 @@
+{ lib, stdenvNoCC, fetchurl, makeBinaryWrapper, jre, version, hash }:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+  pname = "papermc";
+  inherit version hash;
+
+  src =
+    let
+      version-split = lib.strings.splitString "-" finalAttrs.version;
+      mcVersion = builtins.elemAt version-split 0;
+      buildNum = builtins.elemAt version-split 1;
+    in
+    fetchurl {
+      url = "https://papermc.io/api/v2/projects/paper/versions/${mcVersion}/builds/${buildNum}/downloads/paper-${mcVersion}-${buildNum}.jar";
+      inherit (finalAttrs) hash;
+    };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D $src $out/share/papermc/papermc.jar
+
+    makeWrapper ${lib.getExe jre} "$out/bin/minecraft-server" \
+      --append-flags "-jar $out/share/papermc/papermc.jar nogui"
+
+    runHook postInstall
+  '';
+
+  nativeBuildInputs = [
+    makeBinaryWrapper
+  ];
+
+  dontUnpack = true;
+  preferLocalBuild = true;
+  allowSubstitutes = false;
+
+  passthru = {
+    updateScript = ./update.py;
+  };
+
+  meta = {
+    description = "High-performance Minecraft Server";
+    homepage = "https://papermc.io/";
+    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
+    license = lib.licenses.gpl3Only;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ aaronjanse neonfuz MayNiklas ];
+    mainProgram = "minecraft-server";
+  };
+})
diff --git a/nixpkgs/pkgs/games/papermc/update.py b/nixpkgs/pkgs/games/papermc/update.py
new file mode 100755
index 000000000000..6e2d0ec9274e
--- /dev/null
+++ b/nixpkgs/pkgs/games/papermc/update.py
@@ -0,0 +1,145 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i python -p "python3.withPackages (ps: with ps; [ps.requests ])"
+
+import hashlib
+import base64
+import json
+
+import requests
+
+
+class Version:
+    def __init__(self, name: str):
+        self.name: str = name
+        self.hash: str | None = None
+        self.build_number: int | None = None
+
+    @property
+    def full_name(self):
+        v_name = f"{self.name}-{self.build_number}"
+
+        # this will probably never happen because the download of a build with NoneType in URL would fail
+        if not self.name or not self.build_number:
+            print(f"Warning: version '{v_name}' contains NoneType!")
+
+        return v_name
+
+
+class VersionManager:
+    def __init__(self, base_url: str = "https://api.papermc.io/v2/projects/paper"):
+        self.versions: list[Version] = []
+        self.base_url: str = base_url
+
+    def fetch_versions(self, not_before_minor_version: int = 18):
+        """
+        Fetch all versions after given minor release
+        """
+
+        response = requests.get(self.base_url)
+
+        try:
+            response.raise_for_status()
+
+        except requests.exceptions.HTTPError as e:
+            print(e)
+            return
+
+        # we only want versions that are no pre-releases
+        release_versions = filter(
+            lambda v_name: 'pre' not in v_name, response.json()["versions"])
+
+        for version_name in release_versions:
+
+            # split version string, convert to list ot int
+            version_split = version_name.split(".")
+            version_split = list(map(int, version_split))
+
+            # check if version is higher than 1.<not_before_sub_version>
+            if (version_split[0] > 1) or (version_split[0] == 1 and version_split[1] >= not_before_minor_version):
+                self.versions.append(Version(version_name))
+
+    def fetch_latest_version_builds(self):
+        """
+        Set latest build number to each version
+        """
+
+        for version in self.versions:
+            url = f"{self.base_url}/versions/{version.name}"
+            response = requests.get(url)
+
+            # check that we've got a good response
+            try:
+                response.raise_for_status()
+
+            except requests.exceptions.HTTPError as e:
+                print(e)
+                return
+
+            # the highest build in response.json()['builds']:
+            latest_build = response.json()['builds'][-1]
+            version.build_number = latest_build
+
+    def generate_version_hashes(self):
+        """
+        Generate and set the hashes for all registered versions (versions will are downloaded to memory)
+        """
+
+        for version in self.versions:
+            url = f"{self.base_url}/versions/{version.name}/builds/{version.build_number}/downloads/paper-{version.full_name}.jar"
+            version.hash = self.download_and_generate_sha256_hash(url)
+
+    def versions_to_json(self):
+        return json.dumps(
+            {version.name: {'hash': version.hash, 'version': version.full_name}
+                for version in self.versions},
+            indent=4
+        )
+
+    def write_versions(self, file_name: str):
+        """ write all processed versions to json """
+        # save json to versions.json
+        with open(file_name, 'w') as f:
+            f.write(self.versions_to_json() + "\n")
+
+    @staticmethod
+    def download_and_generate_sha256_hash(url: str) -> str | None:
+        """
+        Fetch the tarball from the given URL.
+        Then generate a sha256 hash of the tarball.
+        """
+
+        try:
+            # Download the file from the URL
+            response = requests.get(url)
+            response.raise_for_status()
+
+        except requests.exceptions.RequestException as e:
+            print(f"Error: {e}")
+            return None
+
+        # Create a new SHA-256 hash object
+        sha256_hash = hashlib.sha256()
+
+        # Update the hash object with chunks of the downloaded content
+        for byte_block in response.iter_content(4096):
+            sha256_hash.update(byte_block)
+
+        # Get the hexadecimal representation of the hash
+        hash_value = sha256_hash.digest()
+
+        # Encode the hash value in base64
+        base64_hash = base64.b64encode(hash_value).decode('utf-8')
+
+        # Format it as "sha256-{base64_hash}"
+        sri_representation = f"sha256-{base64_hash}"
+
+        return sri_representation
+
+
+if __name__ == '__main__':
+    version_manager = VersionManager()
+
+    version_manager.fetch_versions()
+    version_manager.fetch_latest_version_builds()
+    version_manager.generate_version_hashes()
+    version_manager.write_versions(file_name="versions.json")
diff --git a/nixpkgs/pkgs/games/papermc/versions.json b/nixpkgs/pkgs/games/papermc/versions.json
new file mode 100644
index 000000000000..0fa4bad8ba04
--- /dev/null
+++ b/nixpkgs/pkgs/games/papermc/versions.json
@@ -0,0 +1,50 @@
+{
+    "1.18": {
+        "hash": "sha256-PJlfINrk5OIdVVT6yVegqKXIW9W/NJFfrEtPFuDvEBs=",
+        "version": "1.18-66"
+    },
+    "1.18.1": {
+        "hash": "sha256-qUkXpEcsLLyZB6FcZmu7eE+V7Ne1PHe8CP5xED5Uh/U=",
+        "version": "1.18.1-216"
+    },
+    "1.18.2": {
+        "hash": "sha256-BXjxj01jK0lLRo7FaztBS1tW/qCH7n05z23N9MnQHwU=",
+        "version": "1.18.2-388"
+    },
+    "1.19": {
+        "hash": "sha256-DTnKzFGneysHHhzoYvy/C0pL1mjMfosxNZjYT6Cfq6w=",
+        "version": "1.19-81"
+    },
+    "1.19.1": {
+        "hash": "sha256-Wv4jofreksVHEk+odLx9kI+mdvSfCYefqHYiS2Lp1Rs=",
+        "version": "1.19.1-111"
+    },
+    "1.19.2": {
+        "hash": "sha256-LrXHRZ7JS83Fl+1xHVSaOrSw/aE+QSoHkqGgabWQOGQ=",
+        "version": "1.19.2-307"
+    },
+    "1.19.3": {
+        "hash": "sha256-MAfyxjjV8E7TK2raozBT/jY0zPp0NFyD0+pJgtONtdw=",
+        "version": "1.19.3-448"
+    },
+    "1.19.4": {
+        "hash": "sha256-5YfXjLo+me+MS8JM8gzDvbvonjOwtXIHBEavTra+XM8=",
+        "version": "1.19.4-550"
+    },
+    "1.20": {
+        "hash": "sha256-HkzPwFmfSR7m/uRFXTciMyrF14WE/M1Vy7O1HhFQRQU=",
+        "version": "1.20-17"
+    },
+    "1.20.1": {
+        "hash": "sha256-I0qbMgmBAMb8EWZk1k42zNtYtbZJrw+AvMywiwJV6uo=",
+        "version": "1.20.1-196"
+    },
+    "1.20.2": {
+        "hash": "sha256-ujQKg1rEC4Vjqn7aHNZHmhGnYjQJyJosNc2ddJDtF6c=",
+        "version": "1.20.2-318"
+    },
+    "1.20.4": {
+        "hash": "sha256-NrIsYLoAAWORw/S26NDFjYBVwpNITJxuWGZow3696wM=",
+        "version": "1.20.4-435"
+    }
+}
diff --git a/nixpkgs/pkgs/games/pegasus-frontend/default.nix b/nixpkgs/pkgs/games/pegasus-frontend/default.nix
index 051c8ccbe542..a6459943a98b 100644
--- a/nixpkgs/pkgs/games/pegasus-frontend/default.nix
+++ b/nixpkgs/pkgs/games/pegasus-frontend/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A cross platform, customizable graphical frontend for launching emulators and managing your game collection";
+    mainProgram = "pegasus-fe";
     homepage = "https://pegasus-frontend.org/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ tengkuizdihar ];
diff --git a/nixpkgs/pkgs/games/performous/default.nix b/nixpkgs/pkgs/games/performous/default.nix
index 1305d8409f97..20a40922544e 100644
--- a/nixpkgs/pkgs/games/performous/default.nix
+++ b/nixpkgs/pkgs/games/performous/default.nix
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Karaoke, band and dancing game";
+    mainProgram = "performous";
     homepage = "https://performous.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ wegank ];
diff --git a/nixpkgs/pkgs/games/pingus/default.nix b/nixpkgs/pkgs/games/pingus/default.nix
index 9dd219500390..adf393de9ed5 100644
--- a/nixpkgs/pkgs/games/pingus/default.nix
+++ b/nixpkgs/pkgs/games/pingus/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A puzzle game with mechanics similar to Lemmings";
+    mainProgram = "pingus";
     platforms = lib.platforms.linux;
     maintainers = [lib.maintainers.raskin];
     license = lib.licenses.gpl3;
diff --git a/nixpkgs/pkgs/games/pokerth/default.nix b/nixpkgs/pkgs/games/pokerth/default.nix
index 021fe4100eae..642cd7ad8cb0 100644
--- a/nixpkgs/pkgs/games/pokerth/default.nix
+++ b/nixpkgs/pkgs/games/pokerth/default.nix
@@ -67,6 +67,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.pokerth.net";
     description = "Poker game ${target}";
+    mainProgram = "pokerth";
     license = licenses.gpl3;
     maintainers = with maintainers; [ obadz yana ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/games/pokete/default.nix b/nixpkgs/pkgs/games/pokete/default.nix
index 73ff661e9d09..3a4d9a3c2031 100644
--- a/nixpkgs/pkgs/games/pokete/default.nix
+++ b/nixpkgs/pkgs/games/pokete/default.nix
@@ -49,6 +49,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A terminal based Pokemon like game";
+    mainProgram = "pokete";
     homepage = "https://lxgr-linux.github.io/pokete";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fgaz ];
diff --git a/nixpkgs/pkgs/games/powermanga/default.nix b/nixpkgs/pkgs/games/powermanga/default.nix
index 5f82eaebb8eb..0b0d27a0bead 100644
--- a/nixpkgs/pkgs/games/powermanga/default.nix
+++ b/nixpkgs/pkgs/games/powermanga/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://linux.tlk.fr/games/Powermanga/";
     downloadPage = "https://linux.tlk.fr/games/Powermanga/download/";
     description = "An arcade 2D shoot-em-up game";
+    mainProgram = "powermanga";
     longDescription = ''
       Powermanga is an arcade 2D shoot-em-up game with 41 levels and more than
       200 sprites. It runs in 320x200 or 640x400 pixels, with Window mode or
diff --git a/nixpkgs/pkgs/games/principia/default.nix b/nixpkgs/pkgs/games/principia/default.nix
index 3cf98dada027..e97fc509c5b0 100644
--- a/nixpkgs/pkgs/games/principia/default.nix
+++ b/nixpkgs/pkgs/games/principia/default.nix
@@ -1,13 +1,14 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, autoreconfHook
+, cmake
 , pkg-config
+, wrapGAppsHook
 
 , curl
 , freetype
 , glew
-, gtk2
+, gtk3
 , libGL
 , libjpeg
 , libpng
@@ -18,27 +19,28 @@
 , SDL2_ttf
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation (finalAttrs: {
   pname = "principia";
-  version = "unstable-2023-03-21";
+  version = "2024.02.29";
 
   src = fetchFromGitHub {
     owner = "Bithack";
     repo = "principia";
-    rev = "af2cfda21b6ce4c0725700e2a01b0597a97dbeff";
-    hash = "sha256-jBWdXzbPpk23elHcs5sWkxXfkekj+aa24VvEHzid8KE=";
+    rev = finalAttrs.version;
+    hash = "sha256-L37H261IGCcH2K7RhX8iTdHRkle83vKhgpyssRmSKN0=";
   };
 
   nativeBuildInputs = [
-    autoreconfHook
+    cmake
     pkg-config
+    wrapGAppsHook
   ];
 
   buildInputs = [
     curl
     freetype
     glew
-    gtk2
+    gtk3
     libGL
     libjpeg
     libpng
@@ -49,50 +51,19 @@ stdenv.mkDerivation {
     SDL2_ttf
   ];
 
-  preAutoreconf = ''
-    cd build-linux
-  '';
-
-  # Since we bypass the "build-linux/go" wrapper script so we can use nixpkgs'
-  # autotools/make integration, set the release flags manually.
-  # https://github.com/Bithack/principia/issues/98
-  preBuild = ''
-    RELEASE_SHARED="-ffast-math -DNDEBUG=1 -s -fomit-frame-pointer -fvisibility=hidden -fdata-sections -ffunction-sections"
-    makeFlagsArray+=(
-      CFLAGS="$RELEASE_SHARED -O1"
-      CXXFLAGS="$RELEASE_SHARED -O2 -fvisibility-inlines-hidden -fno-rtti"
-      LDFLAGS="-Wl,-O,-s,--gc-sections"
-    )
-  '';
-
-  # `make install` only installs the binary, and the binary looks for data
-  # files in its same directory, so we override installPhase, install the
-  # binary in $out/share, and link to it from $out/bin
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/bin
-    mkdir -p $out/share/principia
-    install -Dm755 principia $out/share/principia/principia
-    ln -s $out/share/principia/principia $out/bin/principia
-
-    cp -r --dereference data-pc data-shared $out/share/principia/
-    install -Dm644 principia.desktop $out/share/applications/principia.desktop
-    install -Dm644 principia-url-handler.desktop $out/share/applications/principia-url-handler.desktop
-    install -Dm644 principia.png $out/share/pixmaps/principia.png
-
-    runHook postInstall
-  '';
-
-  # The actual binary is here, see comment above installPhase
-  stripDebugList = [ "share/principia" ];
+  cmakeFlags = [
+    # Remove when https://github.com/NixOS/nixpkgs/issues/144170 is fixed
+    (lib.cmakeFeature "CMAKE_INSTALL_BINDIR" "bin")
+  ];
 
   meta = with lib; {
+    changelog = "https://principia-web.se/wiki/Changelog#${lib.replaceStrings ["."] ["-"] finalAttrs.version}";
     description = "Physics-based sandbox game";
+    mainProgram = "principia";
     homepage = "https://principia-web.se/";
     downloadPage = "https://principia-web.se/download";
     license = licenses.bsd3;
     maintainers = [ maintainers.fgaz ];
     platforms = platforms.linux;
   };
-}
+})
diff --git a/nixpkgs/pkgs/games/prismlauncher/default.nix b/nixpkgs/pkgs/games/prismlauncher/default.nix
index c4571ceaa71b..058516cdc9c6 100644
--- a/nixpkgs/pkgs/games/prismlauncher/default.nix
+++ b/nixpkgs/pkgs/games/prismlauncher/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, canonicalize-jars-hook
+, stripJavaArchivesHook
 , cmake
 , cmark
 , Cocoa
@@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-4VsoxZzi/EfEsnDvvwzg2xhj7j5B+k3gvaSqwJFDweE=";
   };
 
-  nativeBuildInputs = [ extra-cmake-modules cmake jdk17 ninja canonicalize-jars-hook ];
+  nativeBuildInputs = [ extra-cmake-modules cmake jdk17 ninja stripJavaArchivesHook ];
   buildInputs =
     [
       qtbase
diff --git a/nixpkgs/pkgs/games/pro-office-calculator/default.nix b/nixpkgs/pkgs/games/pro-office-calculator/default.nix
index 381a6e8742b0..d49bb69cec0c 100644
--- a/nixpkgs/pkgs/games/pro-office-calculator/default.nix
+++ b/nixpkgs/pkgs/games/pro-office-calculator/default.nix
@@ -16,6 +16,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A completely normal office calculator";
+    mainProgram = "procalc";
     homepage = "https://proofficecalculator.com/";
     maintainers = [ maintainers.pmiddend ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/pysolfc/default.nix b/nixpkgs/pkgs/games/pysolfc/default.nix
index 7315d5e2724f..fc0f95f6d831 100644
--- a/nixpkgs/pkgs/games/pysolfc/default.nix
+++ b/nixpkgs/pkgs/games/pysolfc/default.nix
@@ -60,6 +60,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "A collection of more than 1000 solitaire card games";
+    mainProgram = "pysol.py";
     homepage = "https://pysolfc.sourceforge.io";
     license = licenses.gpl3;
     maintainers = with maintainers; [ kierdavis ];
diff --git a/nixpkgs/pkgs/games/qgo/default.nix b/nixpkgs/pkgs/games/qgo/default.nix
index ec7986c6a36b..6493dff2d3c1 100644
--- a/nixpkgs/pkgs/games/qgo/default.nix
+++ b/nixpkgs/pkgs/games/qgo/default.nix
@@ -13,6 +13,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "A Go client based on Qt5";
+    mainProgram = "qgo";
     longDescription = ''
       qGo is a Go Client based on Qt 5. It supports playing online at
       IGS-compatible servers (including some special tweaks for WING and LGS,
diff --git a/nixpkgs/pkgs/games/qqwing/default.nix b/nixpkgs/pkgs/games/qqwing/default.nix
index 81a10b9ea2af..95764a767aa7 100644
--- a/nixpkgs/pkgs/games/qqwing/default.nix
+++ b/nixpkgs/pkgs/games/qqwing/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://qqwing.com";
     description = "Sudoku generating and solving software";
+    mainProgram = "qqwing";
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/games/qtads/default.nix b/nixpkgs/pkgs/games/qtads/default.nix
index 79a548a7134e..aef921900ae7 100644
--- a/nixpkgs/pkgs/games/qtads/default.nix
+++ b/nixpkgs/pkgs/games/qtads/default.nix
@@ -20,6 +20,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://realnc.github.io/qtads/";
     description = "Multimedia interpreter for TADS games";
+    mainProgram = "qtads";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ orivej ];
diff --git a/nixpkgs/pkgs/games/quakespasm/vulkan.nix b/nixpkgs/pkgs/games/quakespasm/vulkan.nix
index e9786a001e3a..81c49e5a017c 100644
--- a/nixpkgs/pkgs/games/quakespasm/vulkan.nix
+++ b/nixpkgs/pkgs/games/quakespasm/vulkan.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Vulkan Quake port based on QuakeSpasm";
+    mainProgram = "vkquake";
     homepage = src.meta.homepage;
     longDescription = ''
       vkQuake is a Quake 1 port using Vulkan instead of OpenGL for rendering.
diff --git a/nixpkgs/pkgs/games/quantumminigolf/default.nix b/nixpkgs/pkgs/games/quantumminigolf/default.nix
index 7ecafa5eab65..803529b7f638 100644
--- a/nixpkgs/pkgs/games/quantumminigolf/default.nix
+++ b/nixpkgs/pkgs/games/quantumminigolf/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Quantum mechanics-based minigolf-like game";
+    mainProgram = "quantumminigolf";
     license = licenses.gpl2;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/racer/default.nix b/nixpkgs/pkgs/games/racer/default.nix
index bdb56c85dbff..c6d9f654a480 100644
--- a/nixpkgs/pkgs/games/racer/default.nix
+++ b/nixpkgs/pkgs/games/racer/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Car racing game";
+    mainProgram = "racer";
     homepage = "http://hippo.nipax.cz/download.en.php";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/games/randtype/default.nix b/nixpkgs/pkgs/games/randtype/default.nix
index 97993a5ffdac..f7e6ee06ceac 100644
--- a/nixpkgs/pkgs/games/randtype/default.nix
+++ b/nixpkgs/pkgs/games/randtype/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "semi-random text typer";
+    mainProgram = "randtype";
     homepage = "https://benkibbey.wordpress.com/randtype/";
     maintainers = with maintainers; [ dandellion ];
     license = licenses.gpl2Only;
diff --git a/nixpkgs/pkgs/games/riko4/default.nix b/nixpkgs/pkgs/games/riko4/default.nix
index 7014bf9ca21b..e5e0738d8b0e 100644
--- a/nixpkgs/pkgs/games/riko4/default.nix
+++ b/nixpkgs/pkgs/games/riko4/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/incinirate/Riko4";
     description = "Fantasy console for pixel art game development";
+    mainProgram = "riko4";
     license = licenses.mit;
     maintainers = with maintainers; [ CrazedProgrammer ];
   };
diff --git a/nixpkgs/pkgs/games/rocksndiamonds/default.nix b/nixpkgs/pkgs/games/rocksndiamonds/default.nix
index feef993207ea..6b1d51ab290b 100644
--- a/nixpkgs/pkgs/games/rocksndiamonds/default.nix
+++ b/nixpkgs/pkgs/games/rocksndiamonds/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Scrolling tile-based arcade style puzzle game";
+    mainProgram = "rocksndiamonds";
     homepage = "https://www.artsoft.org/rocksndiamonds/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/rogue/default.nix b/nixpkgs/pkgs/games/rogue/default.nix
index 4865b85bbe38..a30b856eed9c 100644
--- a/nixpkgs/pkgs/games/rogue/default.nix
+++ b/nixpkgs/pkgs/games/rogue/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://rogue.rogueforge.net/rogue-5-4/";
     description = "The final version of the original Rogue game developed for the UNIX operating system";
+    mainProgram = "rogue";
     platforms = platforms.all;
     license = licenses.bsd3;
     maintainers = [ maintainers.eelco ];
diff --git a/nixpkgs/pkgs/games/rott/default.nix b/nixpkgs/pkgs/games/rott/default.nix
index 591275631fa9..534f14bcb289 100644
--- a/nixpkgs/pkgs/games/rott/default.nix
+++ b/nixpkgs/pkgs/games/rott/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "SDL port of Rise of the Triad";
+    mainProgram = "rott";
     homepage = "https://icculus.org/rott/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ sander ];
diff --git a/nixpkgs/pkgs/games/rpg-cli/default.nix b/nixpkgs/pkgs/games/rpg-cli/default.nix
index cad3b539d9ad..b72a4f78008e 100644
--- a/nixpkgs/pkgs/games/rpg-cli/default.nix
+++ b/nixpkgs/pkgs/games/rpg-cli/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Your filesystem as a dungeon";
+    mainProgram = "rpg-cli";
     homepage = "https://github.com/facundoolano/rpg-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ lom ];
diff --git a/nixpkgs/pkgs/games/rrootage/default.nix b/nixpkgs/pkgs/games/rrootage/default.nix
index a5b656a4044a..f1ad7b7e978d 100644
--- a/nixpkgs/pkgs/games/rrootage/default.nix
+++ b/nixpkgs/pkgs/games/rrootage/default.nix
@@ -74,6 +74,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Abstract shooter created by Kenta Cho";
+    mainProgram = "rrootage";
     homepage = "https://rrootage.sourceforge.net/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ fgaz ];
diff --git a/nixpkgs/pkgs/games/runelite/default.nix b/nixpkgs/pkgs/games/runelite/default.nix
index f6d205d473bc..d9a5da1a2af1 100644
--- a/nixpkgs/pkgs/games/runelite/default.nix
+++ b/nixpkgs/pkgs/games/runelite/default.nix
@@ -3,13 +3,19 @@
 , makeDesktopItem
 , makeWrapper
 , maven
+, jdk17
 , jre
 , xorg
 , gitUpdater
 , libGL
 }:
 
-maven.buildMavenPackage rec {
+let
+  mavenJdk17 = maven.override {
+    jdk = jdk17;
+  };
+in
+mavenJdk17.buildMavenPackage rec {
   pname = "runelite";
   version = "2.6.13";
 
diff --git a/nixpkgs/pkgs/games/scummvm/default.nix b/nixpkgs/pkgs/games/scummvm/default.nix
index 4d40dcc7686b..bc92c3abbda3 100644
--- a/nixpkgs/pkgs/games/scummvm/default.nix
+++ b/nixpkgs/pkgs/games/scummvm/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Program to run certain classic graphical point-and-click adventure games (such as Monkey Island)";
+    mainProgram = "scummvm";
     homepage = "https://www.scummvm.org/";
     license = licenses.gpl2;
     maintainers = [ maintainers.peterhoeg ];
diff --git a/nixpkgs/pkgs/games/sfrotz/default.nix b/nixpkgs/pkgs/games/sfrotz/default.nix
index e90f1639e170..1282e4d7258e 100644
--- a/nixpkgs/pkgs/games/sfrotz/default.nix
+++ b/nixpkgs/pkgs/games/sfrotz/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description =
       "Interpreter for Infocom and other Z-Machine games (SDL interface)";
+    mainProgram = "sfrotz";
     longDescription = ''
       Frotz is a Z-Machine interpreter. The Z-machine is a virtual machine
       designed by Infocom to run all of their text adventures. It went through
diff --git a/nixpkgs/pkgs/games/shticker-book-unwritten/default.nix b/nixpkgs/pkgs/games/shticker-book-unwritten/default.nix
index f19fe258f70b..9edefc940346 100644
--- a/nixpkgs/pkgs/games/shticker-book-unwritten/default.nix
+++ b/nixpkgs/pkgs/games/shticker-book-unwritten/default.nix
@@ -18,6 +18,7 @@ in buildFHSEnv {
 
   meta = with lib; {
     description = "Minimal CLI launcher for the Toontown Rewritten MMORPG";
+    mainProgram = "shticker_book_unwritten";
     homepage = "https://github.com/JonathanHelianthicusDoe/shticker_book_unwritten";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.reedrw ];
diff --git a/nixpkgs/pkgs/games/sienna/default.nix b/nixpkgs/pkgs/games/sienna/default.nix
index c6f8db0ea9e7..bee862ba2a08 100644
--- a/nixpkgs/pkgs/games/sienna/default.nix
+++ b/nixpkgs/pkgs/games/sienna/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fast-paced one button platformer";
+    mainProgram = "sienna";
     homepage = "https://tangramgames.dk/games/sienna";
     maintainers = with maintainers; [ leenaars ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/sil-q/default.nix b/nixpkgs/pkgs/games/sil-q/default.nix
index 9127d4e9afc0..e029d77a02db 100644
--- a/nixpkgs/pkgs/games/sil-q/default.nix
+++ b/nixpkgs/pkgs/games/sil-q/default.nix
@@ -56,6 +56,7 @@ in stdenv.mkDerivation rec {
 
   meta = {
     description = "A roguelike game set in the First Age of Middle-earth";
+    mainProgram = "sil-q";
     longDescription = ''
       A game of adventure set in the First Age of Middle-earth, when the world still
       rang with Elven song and gleamed with Dwarven mail.
diff --git a/nixpkgs/pkgs/games/simutrans/default.nix b/nixpkgs/pkgs/games/simutrans/default.nix
index cc8b864c1f3e..c89cdf7c8588 100644
--- a/nixpkgs/pkgs/games/simutrans/default.nix
+++ b/nixpkgs/pkgs/games/simutrans/default.nix
@@ -154,6 +154,7 @@ let
 
     meta = with lib; {
       description = "A simulation game in which the player strives to run a successful transport system";
+      mainProgram = "simutrans";
       longDescription = ''
         Simutrans is a cross-platform simulation game in which the
         player strives to run a successful transport system by
diff --git a/nixpkgs/pkgs/games/snipes/default.nix b/nixpkgs/pkgs/games/snipes/default.nix
index 01b24ee434c3..17a848402a51 100644
--- a/nixpkgs/pkgs/games/snipes/default.nix
+++ b/nixpkgs/pkgs/games/snipes/default.nix
@@ -40,6 +40,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Modern port of the classic 1982 text-mode game Snipes";
+    mainProgram = "snipes";
     homepage    = "https://www.vogons.org/viewtopic.php?f=7&t=49073";
     license     = licenses.free; # This reverse-engineered source code is released with the original authors' permission.
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/games/soi/default.nix b/nixpkgs/pkgs/games/soi/default.nix
index eb214752df84..e0526ff44235 100644
--- a/nixpkgs/pkgs/games/soi/default.nix
+++ b/nixpkgs/pkgs/games/soi/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A physics-based puzzle game";
+    mainProgram = "soi";
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
     license = licenses.free;
diff --git a/nixpkgs/pkgs/games/solicurses/default.nix b/nixpkgs/pkgs/games/solicurses/default.nix
index 3b0a60cb1e81..afa49bbd5ce1 100644
--- a/nixpkgs/pkgs/games/solicurses/default.nix
+++ b/nixpkgs/pkgs/games/solicurses/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A version of Solitaire written in C++ using the ncurses library";
+    mainProgram = "solicurses";
     homepage = "https://github.com/KaylaPP/SoliCurses";
     maintainers = with maintainers; [ laalsaas ];
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/games/space-orbit/default.nix b/nixpkgs/pkgs/games/space-orbit/default.nix
index 7e51d7a4b290..7762bde4cfa5 100644
--- a/nixpkgs/pkgs/games/space-orbit/default.nix
+++ b/nixpkgs/pkgs/games/space-orbit/default.nix
@@ -40,6 +40,7 @@ EOF
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "A space combat simulator";
+    mainProgram = "space-orbit";
     license = licenses.gpl2;
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/games/srb2kart/default.nix b/nixpkgs/pkgs/games/srb2kart/default.nix
deleted file mode 100644
index 441ffd284a0d..000000000000
--- a/nixpkgs/pkgs/games/srb2kart/default.nix
+++ /dev/null
@@ -1,87 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, fetchFromGitHub
-, substituteAll
-, cmake
-, curl
-, nasm
-, unzip
-, game-music-emu
-, libpng
-, SDL2
-, SDL2_mixer
-, zlib
-}:
-
-let
-
-  release_tag = "v1.6";
-
-  assets = fetchurl {
-    url = "https://github.com/STJr/Kart-Public/releases/download/${release_tag}/AssetsLinuxOnly.zip";
-    sha256 = "sha256-ejhPuZ1C8M9B0S4+2HN1T5pbormT1eVL3nlivqOszdE=";
-  };
-
-in stdenv.mkDerivation {
-  pname = "srb2kart";
-  version = "1.6.0";
-
-  src = fetchFromGitHub {
-    owner = "STJr";
-    repo = "Kart-Public";
-    rev = release_tag;
-    sha256 = "sha256-5sIHdeenWZjczyYM2q+F8Y1SyLqL+y77yxYDUM3dVA0=";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    nasm
-    unzip
-  ];
-
-  buildInputs = [
-    curl
-    game-music-emu
-    libpng
-    SDL2
-    SDL2_mixer
-    zlib
-  ];
-
-  cmakeFlags = [
-    "-DGME_INCLUDE_DIR=${game-music-emu}/include"
-    "-DSDL2_MIXER_INCLUDE_DIR=${lib.getDev SDL2_mixer}/include/SDL2"
-    "-DSDL2_INCLUDE_DIR=${lib.getDev SDL2}/include/SDL2"
-  ];
-
-  patches = [
-    ./wadlocation.patch
-  ];
-
-  postPatch = ''
-    substituteInPlace src/sdl/i_system.c \
-        --replace '@wadlocation@' $out
-  '';
-
-  preConfigure = ''
-    mkdir assets/installer
-    pushd assets/installer
-    unzip ${assets} "*.kart" srb2.srb
-    popd
-  '';
-
-  postInstall = ''
-    mkdir -p $out/bin $out/share/games/SRB2Kart
-    mv $out/srb2kart* $out/bin/
-    mv $out/*.kart $out/share/games/SRB2Kart
-  '';
-
-  meta = with lib; {
-    description = "SRB2Kart is a classic styled kart racer";
-    homepage = "https://mb.srb2.org/threads/srb2kart.25868/";
-    platforms = platforms.linux;
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ viric ];
-  };
-}
diff --git a/nixpkgs/pkgs/games/srb2kart/wadlocation.patch b/nixpkgs/pkgs/games/srb2kart/wadlocation.patch
deleted file mode 100644
index 1923cda041d2..000000000000
--- a/nixpkgs/pkgs/games/srb2kart/wadlocation.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c
-index 51f708d0..c4d971f7 100644
---- a/src/sdl/i_system.c
-+++ b/src/sdl/i_system.c
-@@ -139,7 +139,7 @@ typedef LPVOID (WINAPI *p_MapViewOfFile) (HANDLE, DWORD, DWORD, DWORD, SIZE_T);
- 
- // Locations for searching the srb2.srb
- #if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON)
--#define DEFAULTWADLOCATION1 "/usr/local/share/games/SRB2Kart"
-+#define DEFAULTWADLOCATION1 "@wadlocation@"
- #define DEFAULTWADLOCATION2 "/usr/local/games/SRB2Kart"
- #define DEFAULTWADLOCATION3 "/usr/share/games/SRB2Kart"
- #define DEFAULTWADLOCATION4 "/usr/games/SRB2Kart"
-@@ -3646,47 +3646,6 @@ static const char *locateWad(void)
- 	if (((envstr = I_GetEnv("SRB2WADDIR")) != NULL) && isWadPathOk(envstr))
- 		return envstr;
- 
--#ifndef NOCWD
--	I_OutputMsg(",.");
--	// examine current dir
--	strcpy(returnWadPath, ".");
--	if (isWadPathOk(returnWadPath))
--		return NULL;
--#endif
--
--
--#ifdef DEFAULTDIR
--	I_OutputMsg(",HOME/" DEFAULTDIR);
--	// examine user jart directory
--	if ((envstr = I_GetEnv("HOME")) != NULL)
--	{
--		sprintf(returnWadPath, "%s" PATHSEP DEFAULTDIR, envstr);
--		if (isWadPathOk(returnWadPath))
--			return returnWadPath;
--	}
--#endif
--
--
--#ifdef CMAKECONFIG
--#ifndef NDEBUG
--	I_OutputMsg(","CMAKE_ASSETS_DIR);
--	strcpy(returnWadPath, CMAKE_ASSETS_DIR);
--	if (isWadPathOk(returnWadPath))
--	{
--		return returnWadPath;
--	}
--#endif
--#endif
--
--#ifdef __APPLE__
--	OSX_GetResourcesPath(returnWadPath);
--	I_OutputMsg(",%s", returnWadPath);
--	if (isWadPathOk(returnWadPath))
--	{
--		return returnWadPath;
--	}
--#endif
--
- 	// examine default dirs
- #ifdef DEFAULTWADLOCATION1
- 	I_OutputMsg(","DEFAULTWADLOCATION1);
diff --git a/nixpkgs/pkgs/games/stardust/default.nix b/nixpkgs/pkgs/games/stardust/default.nix
index 2555950506ab..df9b2ca190c2 100644
--- a/nixpkgs/pkgs/games/stardust/default.nix
+++ b/nixpkgs/pkgs/games/stardust/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Space flight simulator";
+    mainProgram = "stardust";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/games/steam/fhsenv.nix b/nixpkgs/pkgs/games/steam/fhsenv.nix
index 9c68f241a7fe..936a3510b31d 100644
--- a/nixpkgs/pkgs/games/steam/fhsenv.nix
+++ b/nixpkgs/pkgs/games/steam/fhsenv.nix
@@ -304,11 +304,13 @@ in buildFHSEnv rec {
     then
       steam.meta // lib.optionalAttrs (!withGameSpecificLibraries) {
         description = steam.meta.description + " (without game specific libraries)";
+        mainProgram = "steam";
       }
     else {
       description = "Steam dependencies (dummy package, do not use)";
     };
 
+  passthru.steamargs = args;
   passthru.run = buildFHSEnv {
     name = "steam-run";
 
diff --git a/nixpkgs/pkgs/games/stockfish/default.nix b/nixpkgs/pkgs/games/stockfish/default.nix
index 21e3151b5844..74eff702add1 100644
--- a/nixpkgs/pkgs/games/stockfish/default.nix
+++ b/nixpkgs/pkgs/games/stockfish/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://stockfishchess.org/";
     description = "Strong open source chess engine";
+    mainProgram = "stockfish";
     longDescription = ''
       Stockfish is one of the strongest chess engines in the world. It is also
       much stronger than the best human chess grandmasters.
diff --git a/nixpkgs/pkgs/games/super-tux-kart/default.nix b/nixpkgs/pkgs/games/super-tux-kart/default.nix
index 3077d5b9443c..1d55465d0092 100644
--- a/nixpkgs/pkgs/games/super-tux-kart/default.nix
+++ b/nixpkgs/pkgs/games/super-tux-kart/default.nix
@@ -145,6 +145,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Free 3D kart racing game";
+    mainProgram = "supertuxkart";
     longDescription = ''
       SuperTuxKart is a Free 3D kart racing game, with many tracks,
       characters and items for you to try, similar in spirit to Mario
diff --git a/nixpkgs/pkgs/games/system-syzygy/default.nix b/nixpkgs/pkgs/games/system-syzygy/default.nix
index c6591749a69b..dee96f392c54 100644
--- a/nixpkgs/pkgs/games/system-syzygy/default.nix
+++ b/nixpkgs/pkgs/games/system-syzygy/default.nix
@@ -45,6 +45,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "A story and a puzzle game, where you solve a variety of puzzle";
+    mainProgram = "syzygy";
     homepage = "https://mdsteele.games/syzygy";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.marius851000 ];
diff --git a/nixpkgs/pkgs/games/taisei/default.nix b/nixpkgs/pkgs/games/taisei/default.nix
index 886768786c10..148329d32052 100644
--- a/nixpkgs/pkgs/games/taisei/default.nix
+++ b/nixpkgs/pkgs/games/taisei/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "A free and open-source Touhou Project clone and fangame";
+    mainProgram = "taisei";
     longDescription = ''
       Taisei is an open clone of the TÅhÅ Project series. TÅhÅ is a one-man
       project of shoot-em-up games set in an isolated world full of Japanese
diff --git a/nixpkgs/pkgs/games/tecnoballz/default.nix b/nixpkgs/pkgs/games/tecnoballz/default.nix
index f65383a37a89..b51cc1afed91 100644
--- a/nixpkgs/pkgs/games/tecnoballz/default.nix
+++ b/nixpkgs/pkgs/games/tecnoballz/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://linux.tlk.fr/games/TecnoballZ/";
     downloadPage = "https://linux.tlk.fr/games/TecnoballZ/download/";
     description = "A brick breaker game with a sophisticated system of weapons and bonuses";
+    mainProgram = "tecnoballz";
     longDescription = ''
       A exciting Brick Breaker with 50 levels of game and 11 special levels,
       distributed on the 2 modes of game to give the player a sophisticated
diff --git a/nixpkgs/pkgs/games/teeworlds/default.nix b/nixpkgs/pkgs/games/teeworlds/default.nix
index 30e4833d0666..505c61588e3e 100644
--- a/nixpkgs/pkgs/games/teeworlds/default.nix
+++ b/nixpkgs/pkgs/games/teeworlds/default.nix
@@ -95,6 +95,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Retro multiplayer shooter game";
+    mainProgram = "teeworlds_srv";
 
     longDescription = ''
       Teeworlds is a free online multiplayer game, available for all
diff --git a/nixpkgs/pkgs/games/tennix/default.nix b/nixpkgs/pkgs/games/tennix/default.nix
index e5b2b358f329..bcf30f947e23 100644
--- a/nixpkgs/pkgs/games/tennix/default.nix
+++ b/nixpkgs/pkgs/games/tennix/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://icculus.org/tennix/";
     description = "Classic Championship Tour 2011";
+    mainProgram = "tennix";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ pSub ];
diff --git a/nixpkgs/pkgs/games/tes3cmd/default.nix b/nixpkgs/pkgs/games/tes3cmd/default.nix
index 3778aadda9c5..b394c2323c21 100644
--- a/nixpkgs/pkgs/games/tes3cmd/default.nix
+++ b/nixpkgs/pkgs/games/tes3cmd/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A command line tool for examining and modifying plugins for the Elder Scrolls game Morrowind by Bethesda Softworks";
+    mainProgram = "tes3cmd";
     homepage = "https://github.com/john-moonsugar/tes3cmd";
     license = licenses.mit;
     maintainers = [ maintainers.marius851000 ];
diff --git a/nixpkgs/pkgs/games/the-butterfly-effect/default.nix b/nixpkgs/pkgs/games/the-butterfly-effect/default.nix
index 021dedc17bd9..1d77be3c5a8a 100644
--- a/nixpkgs/pkgs/games/the-butterfly-effect/default.nix
+++ b/nixpkgs/pkgs/games/the-butterfly-effect/default.nix
@@ -31,6 +31,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "A physics-based game vaguely similar to Incredible Machine";
+    mainProgram = "tbe";
     homepage = "http://the-butterfly-effect.org/";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/games/theforceengine/default.nix b/nixpkgs/pkgs/games/theforceengine/default.nix
index d2a843da42bc..8695045d3528 100644
--- a/nixpkgs/pkgs/games/theforceengine/default.nix
+++ b/nixpkgs/pkgs/games/theforceengine/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Modern \"Jedi Engine\" replacement supporting Dark Forces, mods, and in the future, Outlaws";
+    mainProgram = "theforceengine";
     homepage = "https://theforceengine.github.io";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ devusb ];
diff --git a/nixpkgs/pkgs/games/tinyfugue/default.nix b/nixpkgs/pkgs/games/tinyfugue/default.nix
index a787d0b25bff..d6b9647fcc02 100644
--- a/nixpkgs/pkgs/games/tinyfugue/default.nix
+++ b/nixpkgs/pkgs/games/tinyfugue/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://tinyfugue.sourceforge.net/";
     description = "A terminal UI, screen-oriented MUD client";
+    mainProgram = "tf";
     longDescription = ''
       TinyFugue, aka "tf", is a flexible, screen-oriented MUD client, for use
       with any type of text MUD.
diff --git a/nixpkgs/pkgs/games/titanion/default.nix b/nixpkgs/pkgs/games/titanion/default.nix
index 94e04a053c4e..6b74eb351dd4 100644
--- a/nixpkgs/pkgs/games/titanion/default.nix
+++ b/nixpkgs/pkgs/games/titanion/default.nix
@@ -84,6 +84,7 @@ in stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "http://www.asahi-net.or.jp/~cs8k-cyu/windows/ttn_e.html";
     description = "Strike down super high-velocity swooping insects";
+    mainProgram = "titanion";
     license = licenses.bsd2;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/games/tome4/default.nix b/nixpkgs/pkgs/games/tome4/default.nix
index c05fd006aaac..ffb52b01e291 100644
--- a/nixpkgs/pkgs/games/tome4/default.nix
+++ b/nixpkgs/pkgs/games/tome4/default.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tales of Maj'eyal (rogue-like game)";
+    mainProgram = "tome4";
     homepage = "https://te4.org/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/games/torus-trooper/default.nix b/nixpkgs/pkgs/games/torus-trooper/default.nix
index 6e39aac63ff6..5715be413b84 100644
--- a/nixpkgs/pkgs/games/torus-trooper/default.nix
+++ b/nixpkgs/pkgs/games/torus-trooper/default.nix
@@ -97,6 +97,7 @@ in stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "http://www.asahi-net.or.jp/~cs8k-cyu/windows/tt_e.html";
     description = "Fast-paced abstract scrolling shooter game";
+    mainProgram = "torus-trooper";
     license = licenses.bsd2;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/games/tr-patcher/default.nix b/nixpkgs/pkgs/games/tr-patcher/default.nix
index 0336ed1ac02f..77788e8f27f2 100644
--- a/nixpkgs/pkgs/games/tr-patcher/default.nix
+++ b/nixpkgs/pkgs/games/tr-patcher/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Allow to update dependancies of the Tamriel-Data mod for morrowind";
+    mainProgram = "tr-patcher";
     homepage = "https://gitlab.com/bmwinger/tr-patcher";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/games/trackballs/default.nix b/nixpkgs/pkgs/games/trackballs/default.nix
index 9ce9ad3ffc5e..3c3d50eafdb1 100644
--- a/nixpkgs/pkgs/games/trackballs/default.nix
+++ b/nixpkgs/pkgs/games/trackballs/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://trackballs.github.io/";
     description = "3D Marble Madness clone";
+    mainProgram = "trackballs";
     platforms = platforms.linux;
     # Music is licensed under Ethymonics Free Music License.
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/games/trigger/default.nix b/nixpkgs/pkgs/games/trigger/default.nix
index 57bc75d53820..218266717351 100644
--- a/nixpkgs/pkgs/games/trigger/default.nix
+++ b/nixpkgs/pkgs/games/trigger/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A fast-paced single-player racing game";
+    mainProgram = "trigger-rally";
     homepage = "http://trigger-rally.sourceforge.net/";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [viric];
diff --git a/nixpkgs/pkgs/games/tumiki-fighters/default.nix b/nixpkgs/pkgs/games/tumiki-fighters/default.nix
index 344d062e08c3..0049412b0e6c 100644
--- a/nixpkgs/pkgs/games/tumiki-fighters/default.nix
+++ b/nixpkgs/pkgs/games/tumiki-fighters/default.nix
@@ -90,6 +90,7 @@ in stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "http://www.asahi-net.or.jp/~cs8k-cyu/windows/tf_e.html";
     description = "Sticky 2D shooter";
+    mainProgram = "tumiki-fighters";
     license = licenses.bsd2;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/games/tuxtype/default.nix b/nixpkgs/pkgs/games/tuxtype/default.nix
index 0e32ebfbab97..822dac9808dc 100644
--- a/nixpkgs/pkgs/games/tuxtype/default.nix
+++ b/nixpkgs/pkgs/games/tuxtype/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An Educational Typing Tutor Game Starring Tux, the Linux Penguin";
+    mainProgram = "tuxtype";
     homepage = "https://github.com/tux4kids/tuxtype";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.aanderse ];
diff --git a/nixpkgs/pkgs/games/typespeed/default.nix b/nixpkgs/pkgs/games/typespeed/default.nix
index 92d8768e4ffd..483f631fcea9 100644
--- a/nixpkgs/pkgs/games/typespeed/default.nix
+++ b/nixpkgs/pkgs/games/typespeed/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A curses based typing game";
+    mainProgram = "typespeed";
     homepage = "https://typespeed.sourceforge.net/";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/games/uchess/default.nix b/nixpkgs/pkgs/games/uchess/default.nix
index 2d8c2efd4b76..fd0884bf6b18 100644
--- a/nixpkgs/pkgs/games/uchess/default.nix
+++ b/nixpkgs/pkgs/games/uchess/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Play chess against UCI engines in your terminal";
+    mainProgram = "uchess";
     homepage = "https://tmountain.github.io/uchess/";
     maintainers = with maintainers; [ tmountain ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/games/ultrastardx/default.nix b/nixpkgs/pkgs/games/ultrastardx/default.nix
index 7364b0a5e5b3..e7401ac9dfbe 100644
--- a/nixpkgs/pkgs/games/ultrastardx/default.nix
+++ b/nixpkgs/pkgs/games/ultrastardx/default.nix
@@ -31,13 +31,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "ultrastardx";
-  version = "2024.1.0";
+  version = "2024.3.0";
 
   src = fetchFromGitHub {
     owner = "UltraStar-Deluxe";
     repo = "USDX";
     rev = "v${version}";
-    hash = "sha256-pyX2zQiCp9lHSV1sGz0GaM5jTaBtyw50I6bFVbSm5S4=";
+    hash = "sha256-0+7PMSnQoNu6tcR9MB6b94fWlMRvH10ySUhdSicWU8U=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
@@ -80,7 +80,9 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://usdx.eu/";
     description = "Free and open source karaoke game";
+    mainProgram = "ultrastardx";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ Profpatsch ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/games/umoria/default.nix b/nixpkgs/pkgs/games/umoria/default.nix
index 13ec037afba7..91097ca54276 100644
--- a/nixpkgs/pkgs/games/umoria/default.nix
+++ b/nixpkgs/pkgs/games/umoria/default.nix
@@ -64,6 +64,7 @@ gcc9Stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://umoria.org/";
     description = "The Dungeons of Moria - the original roguelike";
+    mainProgram = "umoria";
     longDescription = ''
       The Dungeons of Moria is a single player dungeon simulation originally written
       by Robert Alan Koeneke, with its first public release in 1983.
diff --git a/nixpkgs/pkgs/games/unnethack/default.nix b/nixpkgs/pkgs/games/unnethack/default.nix
index f328b8c01eed..15c5b1a81ebc 100644
--- a/nixpkgs/pkgs/games/unnethack/default.nix
+++ b/nixpkgs/pkgs/games/unnethack/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fork of NetHack";
+    mainProgram = "unnethack";
     homepage = "https://unnethack.wordpress.com/";
     license = "nethack";
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/games/uqm/default.nix b/nixpkgs/pkgs/games/uqm/default.nix
index 7da4c1e597b5..f81a48af2a67 100644
--- a/nixpkgs/pkgs/games/uqm/default.nix
+++ b/nixpkgs/pkgs/games/uqm/default.nix
@@ -93,6 +93,7 @@ in stdenv.mkDerivation rec {
 
   meta = {
     description = "Remake of Star Control II";
+    mainProgram = "uqm";
     longDescription = ''
       The goals for the The Ur-Quan Masters project are:
         - to bring Star Control II to modern platforms, thereby making a lot of
diff --git a/nixpkgs/pkgs/games/vdrift/default.nix b/nixpkgs/pkgs/games/vdrift/default.nix
index 50fb4af1416a..a88adbdf19de 100644
--- a/nixpkgs/pkgs/games/vdrift/default.nix
+++ b/nixpkgs/pkgs/games/vdrift/default.nix
@@ -49,6 +49,7 @@ let
 
     meta = {
       description = "Car racing game";
+      mainProgram = "vdrift";
       homepage = "http://vdrift.net/";
       license = lib.licenses.gpl2Plus;
       maintainers = with lib.maintainers; [ viric ];
diff --git a/nixpkgs/pkgs/games/vectoroids/default.nix b/nixpkgs/pkgs/games/vectoroids/default.nix
index 82c157104439..c3e383a84b64 100644
--- a/nixpkgs/pkgs/games/vectoroids/default.nix
+++ b/nixpkgs/pkgs/games/vectoroids/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.newbreedsoftware.com/vectoroids/";
     description = "Clone of the classic arcade game Asteroids by Atari";
+    mainProgram = "vectoroids";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/games/vms-empire/default.nix b/nixpkgs/pkgs/games/vms-empire/default.nix
index b3e89617ef33..9da37789f7cd 100644
--- a/nixpkgs/pkgs/games/vms-empire/default.nix
+++ b/nixpkgs/pkgs/games/vms-empire/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://catb.org/~esr/vms-empire/";
     description = "The ancestor of all expand/explore/exploit/exterminate games";
+    mainProgram = "vms-empire";
     longDescription = ''
       Empire is a simulation of a full-scale war between two emperors, the
       computer and you. Naturally, there is only room for one, so the object of
diff --git a/nixpkgs/pkgs/games/warzone2100/default.nix b/nixpkgs/pkgs/games/warzone2100/default.nix
index 7e6b8986109e..a39b7915b187 100644
--- a/nixpkgs/pkgs/games/warzone2100/default.nix
+++ b/nixpkgs/pkgs/games/warzone2100/default.nix
@@ -123,6 +123,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A free RTS game, originally developed by Pumpkin Studios";
+    mainProgram = "warzone2100";
     longDescription = ''
         Warzone 2100 is an open source real-time strategy and real-time tactics
       hybrid computer game, originally developed by Pumpkin Studios and
diff --git a/nixpkgs/pkgs/games/wesnoth/default.nix b/nixpkgs/pkgs/games/wesnoth/default.nix
index df5b393ccded..9afbdf1913b0 100644
--- a/nixpkgs/pkgs/games/wesnoth/default.nix
+++ b/nixpkgs/pkgs/games/wesnoth/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , cmake, pkg-config, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf
 , pango, gettext, boost, libvorbis, fribidi, dbus, libpng, pcre, openssl, icu
 , Cocoa, Foundation
@@ -6,25 +6,15 @@
 
 stdenv.mkDerivation rec {
   pname = "wesnoth";
-  version = "1.16.9";
+  version = "1.16.11";
 
   src = fetchFromGitHub {
     rev = version;
     owner = "wesnoth";
     repo = "wesnoth";
-    hash = "sha256-KtAPc2nsqSoHNsLTLom/yaUECn+IWBdBFpiMclrUHxM=";
+    hash = "sha256-nnAMMc1pPYOziaHGUfh8LevECBb/lzCkaPyzFWs4zTY=";
   };
 
-  patches = [
-    # Pull upstream fix https://github.com/wesnoth/wesnoth/pull/6726
-    # for gcc-13 support.
-    (fetchpatch {
-      name = "gcc-134.patch";
-      url = "https://github.com/wesnoth/wesnoth/commit/f073493ebc279cefa391d364c48265058795e1d2.patch";
-      hash = "sha256-uTB65DEBZwHFRgDwNx/yVjzmnW3jRoiibadXhNcwMkI=";
-    })
-  ];
-
   nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_net SDL2_ttf pango gettext boost
diff --git a/nixpkgs/pkgs/games/wireworld/default.nix b/nixpkgs/pkgs/games/wireworld/default.nix
index 828d313d2a87..14a7310e7a97 100644
--- a/nixpkgs/pkgs/games/wireworld/default.nix
+++ b/nixpkgs/pkgs/games/wireworld/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fascinating electronics logic puzzles, game where you'll learn how to build clocks, diodes, and logic gates";
+    mainProgram = "Wireworld";
     license = with licenses; [
       mit
       ofl
diff --git a/nixpkgs/pkgs/games/wolfstoneextract/default.nix b/nixpkgs/pkgs/games/wolfstoneextract/default.nix
index 159e6ae3f15c..b2d76e41d57c 100644
--- a/nixpkgs/pkgs/games/wolfstoneextract/default.nix
+++ b/nixpkgs/pkgs/games/wolfstoneextract/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Utility to extract Wolfstone data from Wolfenstein II";
+    mainProgram = "wolfstoneextract";
     homepage = "https://bitbucket.org/ecwolf/wolfstoneextract/src/master/";
     platforms = [ "x86_64-linux" ];
     license = with licenses; [ gpl3Only bsd3 ];
diff --git a/nixpkgs/pkgs/games/wyvern/default.nix b/nixpkgs/pkgs/games/wyvern/default.nix
index 6eae1a4e71b2..705d6a33db5f 100644
--- a/nixpkgs/pkgs/games/wyvern/default.nix
+++ b/nixpkgs/pkgs/games/wyvern/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple CLI client for installing and maintaining linux GOG games";
+    mainProgram = "wyvern";
     homepage = "https://git.sr.ht/~nicohman/wyvern";
     license = licenses.gpl3;
     maintainers = with maintainers; [ _0x4A6F ];
diff --git a/nixpkgs/pkgs/games/xboard/default.nix b/nixpkgs/pkgs/games/xboard/default.nix
index af75ec79e730..ac8ae684f1df 100644
--- a/nixpkgs/pkgs/games/xboard/default.nix
+++ b/nixpkgs/pkgs/games/xboard/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GUI for chess engines";
+    mainProgram = "xboard";
     homepage = "https://www.gnu.org/software/xboard/";
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/games/xbomb/default.nix b/nixpkgs/pkgs/games/xbomb/default.nix
index 093f822a7e31..92227ec1ebd1 100644
--- a/nixpkgs/pkgs/games/xbomb/default.nix
+++ b/nixpkgs/pkgs/games/xbomb/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.gedanken.org.uk/software/xbomb/";
     description = "Minesweeper for X11 with various grid sizes and shapes";
+    mainProgram = "xbomb";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/games/xgalaga++/default.nix b/nixpkgs/pkgs/games/xgalaga++/default.nix
index daccc84e681e..9b2bd5a9af73 100644
--- a/nixpkgs/pkgs/games/xgalaga++/default.nix
+++ b/nixpkgs/pkgs/games/xgalaga++/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://marc.mongenet.ch/OSS/XGalaga/";
     description = "XGalaga++ is a classic single screen vertical shoot ’em up. It is inspired by XGalaga and reuses most of its sprites";
+    mainProgram = "xgalaga++";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/games/xivlauncher/default.nix b/nixpkgs/pkgs/games/xivlauncher/default.nix
index 63a0e5e4e35f..ec617ad0f0f5 100644
--- a/nixpkgs/pkgs/games/xivlauncher/default.nix
+++ b/nixpkgs/pkgs/games/xivlauncher/default.nix
@@ -3,7 +3,7 @@
 , useSteamRun ? true }:
 
 let
-  rev = "1.0.7";
+  rev = "1.0.8";
 in
   buildDotnetModule rec {
     pname = "XIVLauncher";
@@ -13,7 +13,7 @@ in
       owner = "goatcorp";
       repo = "XIVLauncher.Core";
       inherit rev;
-      hash = "sha256-bWrFGaNkcKo5vUhhrpzEMuX1Ws6ud57sJ0tM4CUuUEk=";
+      hash = "sha256-x4W5L4k+u0MYKDWJu82QcXARW0zjmqqwGiueR1IevMk=";
       fetchSubmodules = true;
     };
 
diff --git a/nixpkgs/pkgs/games/xjump/default.nix b/nixpkgs/pkgs/games/xjump/default.nix
index 2c56e0bba4f6..2113ffbda116 100644
--- a/nixpkgs/pkgs/games/xjump/default.nix
+++ b/nixpkgs/pkgs/games/xjump/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "The falling tower game";
+    mainProgram = "xjump";
     license = licenses.gpl2;
     maintainers = with maintainers; [ pmeunier ];
   };
diff --git a/nixpkgs/pkgs/games/xmage/default.nix b/nixpkgs/pkgs/games/xmage/default.nix
index 59752e72e50d..656eee3ce617 100644
--- a/nixpkgs/pkgs/games/xmage/default.nix
+++ b/nixpkgs/pkgs/games/xmage/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Magic Another Game Engine";
+    mainProgram = "xmage";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.mit;
     maintainers = with maintainers; [ matthiasbeyer abueide ];
diff --git a/nixpkgs/pkgs/games/xmoto/default.nix b/nixpkgs/pkgs/games/xmoto/default.nix
index 5909c3f20ee4..23ed54e6b8e4 100644
--- a/nixpkgs/pkgs/games/xmoto/default.nix
+++ b/nixpkgs/pkgs/games/xmoto/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A challenging 2D motocross platform game, where physics play an important role";
+    mainProgram = "xmoto";
     longDescription = ''
       X-Moto is a challenging 2D motocross platform game, where physics plays an all important role in the gameplay.
       You need to control your bike to its limits, if you want to have a chance to finish the most difficult challenges.
diff --git a/nixpkgs/pkgs/games/xpilot/bloodspilot-client.nix b/nixpkgs/pkgs/games/xpilot/bloodspilot-client.nix
index 8e603ef53f78..58eb7e815164 100644
--- a/nixpkgs/pkgs/games/xpilot/bloodspilot-client.nix
+++ b/nixpkgs/pkgs/games/xpilot/bloodspilot-client.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A multiplayer space combat game (client part)";
+    mainProgram = "bloodspilot-client-sdl";
     homepage = "http://bloodspilot.sf.net/";
     license = lib.licenses.gpl2Plus ;
     maintainers = [lib.maintainers.raskin];
diff --git a/nixpkgs/pkgs/games/xpilot/bloodspilot-server.nix b/nixpkgs/pkgs/games/xpilot/bloodspilot-server.nix
index a860c4e1d5ff..495412c0eab4 100644
--- a/nixpkgs/pkgs/games/xpilot/bloodspilot-server.nix
+++ b/nixpkgs/pkgs/games/xpilot/bloodspilot-server.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A multiplayer X11 space combat game (server part)";
+    mainProgram = "xpilots";
     homepage = "http://bloodspilot.sf.net/";
     license = licenses.gpl2Plus ;
     maintainers = [ maintainers.raskin ];
diff --git a/nixpkgs/pkgs/games/xskat/default.nix b/nixpkgs/pkgs/games/xskat/default.nix
index 0d9fc5fe312f..6f28a6846ea7 100644
--- a/nixpkgs/pkgs/games/xskat/default.nix
+++ b/nixpkgs/pkgs/games/xskat/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Famous german card game";
+    mainProgram = "xskat";
     platforms = platforms.unix;
     license = licenses.xskat;
     longDescription = "Play the german card game Skat against the AI or over IRC.";
diff --git a/nixpkgs/pkgs/games/xsnow/default.nix b/nixpkgs/pkgs/games/xsnow/default.nix
index ff34bfe729ba..fe744375d79b 100644
--- a/nixpkgs/pkgs/games/xsnow/default.nix
+++ b/nixpkgs/pkgs/games/xsnow/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An X-windows application that will let it snow on the root, in between and on windows";
+    mainProgram = "xsnow";
     homepage = "https://ratrabbit.nl/ratrabbit/xsnow/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ robberer ];
diff --git a/nixpkgs/pkgs/games/xsok/default.nix b/nixpkgs/pkgs/games/xsok/default.nix
index 53254ba98f91..51ca06a9091c 100644
--- a/nixpkgs/pkgs/games/xsok/default.nix
+++ b/nixpkgs/pkgs/games/xsok/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A generic Sokoban game for X11";
+    mainProgram = "xsok";
     license = lib.licenses.gpl2Plus;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/games/xsokoban/default.nix b/nixpkgs/pkgs/games/xsokoban/default.nix
index 4d8a6fa05056..51de995af4bc 100644
--- a/nixpkgs/pkgs/games/xsokoban/default.nix
+++ b/nixpkgs/pkgs/games/xsokoban/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "X sokoban";
+    mainProgram = "xsokoban";
     license = licenses.publicDomain;
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/kde/frameworks/kcmutils/default.nix b/nixpkgs/pkgs/kde/frameworks/kcmutils/default.nix
index bb6ecb110ee0..617fb5978d11 100644
--- a/nixpkgs/pkgs/kde/frameworks/kcmutils/default.nix
+++ b/nixpkgs/pkgs/kde/frameworks/kcmutils/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kcmutils";
 
   extraPropagatedBuildInputs = [qtdeclarative];
+  meta.mainProgram = "kcmshell6";
 }
diff --git a/nixpkgs/pkgs/kde/frameworks/kdbusaddons/default.nix b/nixpkgs/pkgs/kde/frameworks/kdbusaddons/default.nix
index f7d80a5746f3..6803331b1e36 100644
--- a/nixpkgs/pkgs/kde/frameworks/kdbusaddons/default.nix
+++ b/nixpkgs/pkgs/kde/frameworks/kdbusaddons/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kdbusaddons";
 
   extraNativeBuildInputs = [qttools];
+  meta.mainProgram = "kquitapp6";
 }
diff --git a/nixpkgs/pkgs/kde/frameworks/kded/default.nix b/nixpkgs/pkgs/kde/frameworks/kded/default.nix
index dc6fa84d5347..aa2ec5fc5ac2 100644
--- a/nixpkgs/pkgs/kde/frameworks/kded/default.nix
+++ b/nixpkgs/pkgs/kde/frameworks/kded/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kded";
+  meta.mainProgram = "kded6";
 }
diff --git a/nixpkgs/pkgs/kde/frameworks/kguiaddons/default.nix b/nixpkgs/pkgs/kde/frameworks/kguiaddons/default.nix
index 899786eefbda..3c1fb8034a0a 100644
--- a/nixpkgs/pkgs/kde/frameworks/kguiaddons/default.nix
+++ b/nixpkgs/pkgs/kde/frameworks/kguiaddons/default.nix
@@ -9,4 +9,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [pkg-config];
   extraBuildInputs = [qtwayland wayland];
+  meta.mainProgram = "kde-geo-uri-handler";
 }
diff --git a/nixpkgs/pkgs/kde/frameworks/kiconthemes/default.nix b/nixpkgs/pkgs/kde/frameworks/kiconthemes/default.nix
index 378a3f7f87b7..de93cd9d8360 100644
--- a/nixpkgs/pkgs/kde/frameworks/kiconthemes/default.nix
+++ b/nixpkgs/pkgs/kde/frameworks/kiconthemes/default.nix
@@ -12,4 +12,5 @@ mkKdeDerivation {
     qtsvg
     qttools
   ];
+  meta.mainProgram = "kiconfinder6";
 }
diff --git a/nixpkgs/pkgs/kde/frameworks/knewstuff/default.nix b/nixpkgs/pkgs/kde/frameworks/knewstuff/default.nix
index 934167daf055..26e3207764e7 100644
--- a/nixpkgs/pkgs/kde/frameworks/knewstuff/default.nix
+++ b/nixpkgs/pkgs/kde/frameworks/knewstuff/default.nix
@@ -13,4 +13,5 @@ mkKdeDerivation {
 
   extraBuildInputs = [qtdeclarative qttools];
   extraPropagatedBuildInputs = [kcmutils];
+  meta.mainProgram = "knewstuff-dialog6";
 }
diff --git a/nixpkgs/pkgs/kde/frameworks/kpackage/default.nix b/nixpkgs/pkgs/kde/frameworks/kpackage/default.nix
index 8f99e10047c0..19e4d7932a56 100644
--- a/nixpkgs/pkgs/kde/frameworks/kpackage/default.nix
+++ b/nixpkgs/pkgs/kde/frameworks/kpackage/default.nix
@@ -5,4 +5,5 @@ mkKdeDerivation {
   # Follow symlinks when resolving packages
   # FIXME(later): upstream
   patches = [./follow-symlinks.patch];
+  meta.mainProgram = "kpackagetool6";
 }
diff --git a/nixpkgs/pkgs/kde/frameworks/kservice/default.nix b/nixpkgs/pkgs/kde/frameworks/kservice/default.nix
index 3da4fd1fdd75..7451647081e5 100644
--- a/nixpkgs/pkgs/kde/frameworks/kservice/default.nix
+++ b/nixpkgs/pkgs/kde/frameworks/kservice/default.nix
@@ -7,4 +7,5 @@ mkKdeDerivation {
     # FIXME(later): upstream
     ./qdiriterator-follow-symlinks.patch
   ];
+  meta.mainProgram = "kbuildsycoca6";
 }
diff --git a/nixpkgs/pkgs/kde/frameworks/solid/default.nix b/nixpkgs/pkgs/kde/frameworks/solid/default.nix
index 941422848058..08419f4b9784 100644
--- a/nixpkgs/pkgs/kde/frameworks/solid/default.nix
+++ b/nixpkgs/pkgs/kde/frameworks/solid/default.nix
@@ -13,4 +13,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [qttools bison flex];
   extraBuildInputs = [libimobiledevice];
+  meta.mainProgram = "solid-hardware6";
 }
diff --git a/nixpkgs/pkgs/kde/frameworks/sonnet/default.nix b/nixpkgs/pkgs/kde/frameworks/sonnet/default.nix
index d0775de9bb18..b5b82f6e675c 100644
--- a/nixpkgs/pkgs/kde/frameworks/sonnet/default.nix
+++ b/nixpkgs/pkgs/kde/frameworks/sonnet/default.nix
@@ -11,4 +11,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [qttools pkg-config];
   extraBuildInputs = [qtdeclarative aspell hunspell];
+  meta.mainProgram = "parsetrigrams6";
 }
diff --git a/nixpkgs/pkgs/kde/frameworks/syntax-highlighting/default.nix b/nixpkgs/pkgs/kde/frameworks/syntax-highlighting/default.nix
index 4ce448e937d5..1a5430901f2e 100644
--- a/nixpkgs/pkgs/kde/frameworks/syntax-highlighting/default.nix
+++ b/nixpkgs/pkgs/kde/frameworks/syntax-highlighting/default.nix
@@ -9,4 +9,5 @@ mkKdeDerivation {
 
   extraBuildInputs = [qtdeclarative];
   extraNativeBuildInputs = [qttools perl];
+  meta.mainProgram = "ksyntaxhighlighter6";
 }
diff --git a/nixpkgs/pkgs/kde/gear/akonadi-calendar/default.nix b/nixpkgs/pkgs/kde/gear/akonadi-calendar/default.nix
index ffa28766a4e1..66c615e53b18 100644
--- a/nixpkgs/pkgs/kde/gear/akonadi-calendar/default.nix
+++ b/nixpkgs/pkgs/kde/gear/akonadi-calendar/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "akonadi-calendar";
+  meta.mainProgram = "kalendarac";
 }
diff --git a/nixpkgs/pkgs/kde/gear/akonadi-import-wizard/default.nix b/nixpkgs/pkgs/kde/gear/akonadi-import-wizard/default.nix
index 191944a9e90d..9037457ee8b0 100644
--- a/nixpkgs/pkgs/kde/gear/akonadi-import-wizard/default.nix
+++ b/nixpkgs/pkgs/kde/gear/akonadi-import-wizard/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "akonadi-import-wizard";
+  meta.mainProgram = "akonadiimportwizard";
 }
diff --git a/nixpkgs/pkgs/kde/gear/akonadi-search/default.nix b/nixpkgs/pkgs/kde/gear/akonadi-search/default.nix
index 87f743f86c30..3cc1a01bd878 100644
--- a/nixpkgs/pkgs/kde/gear/akonadi-search/default.nix
+++ b/nixpkgs/pkgs/kde/gear/akonadi-search/default.nix
@@ -7,7 +7,7 @@
   cargo,
   rustc,
   # provided as callPackage input to enable easier overrides through overlays
-  cargoHash ? "sha256-euUaB+QCwwwPjrUq+3NHt0hjDSW5gch8MwS57KmtIWI=",
+  cargoHash ? "sha256-Mo94kfA4w280YdazhuVaS/vw7B0y9W/LYaHLLnV/3IE=",
 }:
 mkKdeDerivation rec {
   pname = "akonadi-search";
diff --git a/nixpkgs/pkgs/kde/gear/akonadi/default.nix b/nixpkgs/pkgs/kde/gear/akonadi/default.nix
index 15d1436e9cb5..64966c4fad58 100644
--- a/nixpkgs/pkgs/kde/gear/akonadi/default.nix
+++ b/nixpkgs/pkgs/kde/gear/akonadi/default.nix
@@ -22,4 +22,10 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [qttools shared-mime-info];
   extraBuildInputs = [kaccounts-integration accounts-qt xz mariadb];
+
+  # Hardcoded as a QString, which is UTF-16 so Nix can't pick it up automatically
+  postFixup = ''
+    mkdir -p $out/nix-support
+    echo "${mariadb}" > $out/nix-support/depends
+  '';
 }
diff --git a/nixpkgs/pkgs/kde/gear/akonadiconsole/default.nix b/nixpkgs/pkgs/kde/gear/akonadiconsole/default.nix
index 4820faea5705..ca116910011c 100644
--- a/nixpkgs/pkgs/kde/gear/akonadiconsole/default.nix
+++ b/nixpkgs/pkgs/kde/gear/akonadiconsole/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "akonadiconsole";
 
   extraBuildInputs = [xapian];
+  meta.mainProgram = "akonadiconsole";
 }
diff --git a/nixpkgs/pkgs/kde/gear/alligator/default.nix b/nixpkgs/pkgs/kde/gear/alligator/default.nix
index bf3a4fb53b9d..c2f7a14734e2 100644
--- a/nixpkgs/pkgs/kde/gear/alligator/default.nix
+++ b/nixpkgs/pkgs/kde/gear/alligator/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "alligator";
+  meta.mainProgram = "alligator";
 }
diff --git a/nixpkgs/pkgs/kde/gear/angelfish/default.nix b/nixpkgs/pkgs/kde/gear/angelfish/default.nix
index 133509e78b7a..2a5f3fed9b3f 100644
--- a/nixpkgs/pkgs/kde/gear/angelfish/default.nix
+++ b/nixpkgs/pkgs/kde/gear/angelfish/default.nix
@@ -8,7 +8,7 @@
   cargo,
   rustc,
   # provided as callPackage input to enable easier overrides through overlays
-  cargoHash ? "sha256-kkoLWJvPx1Hq+MQkPgTffrTFYgVlVfKdmJq5ExAW1NE=",
+  cargoHash ? "sha256-9l28C8rcUAro/o9SY3rA6xRsman3SrfFLjhPJhiiWfc=",
   qcoro,
 }:
 mkKdeDerivation rec {
diff --git a/nixpkgs/pkgs/kde/gear/arianna/default.nix b/nixpkgs/pkgs/kde/gear/arianna/default.nix
index d3a63bc19455..9e56cfda9efe 100644
--- a/nixpkgs/pkgs/kde/gear/arianna/default.nix
+++ b/nixpkgs/pkgs/kde/gear/arianna/default.nix
@@ -18,4 +18,5 @@ mkKdeDerivation {
     kitemmodels
     kquickcharts
   ];
+  meta.mainProgram = "arianna";
 }
diff --git a/nixpkgs/pkgs/kde/gear/ark/default.nix b/nixpkgs/pkgs/kde/gear/ark/default.nix
index ae443c21cf84..fb9c3d8e596f 100644
--- a/nixpkgs/pkgs/kde/gear/ark/default.nix
+++ b/nixpkgs/pkgs/kde/gear/ark/default.nix
@@ -7,4 +7,5 @@ mkKdeDerivation {
   pname = "ark";
 
   extraBuildInputs = [libarchive libzip];
+  meta.mainProgram = "ark";
 }
diff --git a/nixpkgs/pkgs/kde/gear/audiotube/default.nix b/nixpkgs/pkgs/kde/gear/audiotube/default.nix
index 60e646cd71c1..c9ae14f3be9b 100644
--- a/nixpkgs/pkgs/kde/gear/audiotube/default.nix
+++ b/nixpkgs/pkgs/kde/gear/audiotube/default.nix
@@ -50,4 +50,5 @@ in
     qtWrapperArgs = [
       "--prefix PYTHONPATH : ${ps.makePythonPath pythonDeps}"
     ];
+    meta.mainProgram = "audiotube";
   }
diff --git a/nixpkgs/pkgs/kde/gear/baloo-widgets/default.nix b/nixpkgs/pkgs/kde/gear/baloo-widgets/default.nix
index ca638bef6074..7e576348f060 100644
--- a/nixpkgs/pkgs/kde/gear/baloo-widgets/default.nix
+++ b/nixpkgs/pkgs/kde/gear/baloo-widgets/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "baloo-widgets";
+  meta.mainProgram = "baloo_filemetadata_temp_extractor";
 }
diff --git a/nixpkgs/pkgs/kde/gear/blinken/default.nix b/nixpkgs/pkgs/kde/gear/blinken/default.nix
index ac5f4273ebd5..8b6fbc68066a 100644
--- a/nixpkgs/pkgs/kde/gear/blinken/default.nix
+++ b/nixpkgs/pkgs/kde/gear/blinken/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "blinken";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "blinken";
 }
diff --git a/nixpkgs/pkgs/kde/gear/bomber/default.nix b/nixpkgs/pkgs/kde/gear/bomber/default.nix
index a0e2ea97428c..611edb5d2c7a 100644
--- a/nixpkgs/pkgs/kde/gear/bomber/default.nix
+++ b/nixpkgs/pkgs/kde/gear/bomber/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "bomber";
 
   extraNativeBuildInputs = [_7zz];
+  meta.mainProgram = "bomber";
 }
diff --git a/nixpkgs/pkgs/kde/gear/bovo/default.nix b/nixpkgs/pkgs/kde/gear/bovo/default.nix
index bc48853616ef..9e8ae9b05153 100644
--- a/nixpkgs/pkgs/kde/gear/bovo/default.nix
+++ b/nixpkgs/pkgs/kde/gear/bovo/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "bovo";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "bovo";
 }
diff --git a/nixpkgs/pkgs/kde/gear/colord-kde/default.nix b/nixpkgs/pkgs/kde/gear/colord-kde/default.nix
index adacf19ba9a3..9e2aa630d688 100644
--- a/nixpkgs/pkgs/kde/gear/colord-kde/default.nix
+++ b/nixpkgs/pkgs/kde/gear/colord-kde/default.nix
@@ -9,4 +9,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [pkg-config];
   extraBuildInputs = [lcms2 xorg.libXrandr];
+  meta.mainProgram = "colord-kde-icc-importer";
 }
diff --git a/nixpkgs/pkgs/kde/gear/default.nix b/nixpkgs/pkgs/kde/gear/default.nix
index 629711d72286..1ffcdc770e21 100644
--- a/nixpkgs/pkgs/kde/gear/default.nix
+++ b/nixpkgs/pkgs/kde/gear/default.nix
@@ -2,12 +2,12 @@
   akonadi = callPackage ./akonadi {};
   akonadi-calendar = callPackage ./akonadi-calendar {};
   akonadi-calendar-tools = callPackage ./akonadi-calendar-tools {};
-  akonadiconsole = callPackage ./akonadiconsole {};
   akonadi-contacts = callPackage ./akonadi-contacts {};
   akonadi-import-wizard = callPackage ./akonadi-import-wizard {};
   akonadi-mime = callPackage ./akonadi-mime {};
   akonadi-notes = callPackage ./akonadi-notes {};
   akonadi-search = callPackage ./akonadi-search {};
+  akonadiconsole = callPackage ./akonadiconsole {};
   akregator = callPackage ./akregator {};
   alligator = callPackage ./alligator {};
   analitza = callPackage ./analitza {};
@@ -73,23 +73,23 @@
   kclock = callPackage ./kclock {};
   kcolorchooser = callPackage ./kcolorchooser {};
   kcron = callPackage ./kcron {};
-  kdebugsettings = callPackage ./kdebugsettings {};
-  kdeconnect-kde = callPackage ./kdeconnect-kde {};
   kde-dev-scripts = callPackage ./kde-dev-scripts {};
   kde-dev-utils = callPackage ./kde-dev-utils {};
+  kde-inotify-survey = callPackage ./kde-inotify-survey {};
+  kdebugsettings = callPackage ./kdebugsettings {};
+  kdeconnect-kde = callPackage ./kdeconnect-kde {};
   kdeedu-data = callPackage ./kdeedu-data {};
   kdegraphics-mobipocket = callPackage ./kdegraphics-mobipocket {};
   kdegraphics-thumbnailers = callPackage ./kdegraphics-thumbnailers {};
-  kde-inotify-survey = callPackage ./kde-inotify-survey {};
   kdenetwork-filesharing = callPackage ./kdenetwork-filesharing {};
   kdenlive = callPackage ./kdenlive {};
   kdepim-addons = callPackage ./kdepim-addons {};
   kdepim-runtime = callPackage ./kdepim-runtime {};
   kdesdk-kio = callPackage ./kdesdk-kio {};
   kdesdk-thumbnailers = callPackage ./kdesdk-thumbnailers {};
-  kdevelop = callPackage ./kdevelop {};
   kdev-php = callPackage ./kdev-php {};
   kdev-python = callPackage ./kdev-python {};
+  kdevelop = callPackage ./kdevelop {};
   kdf = callPackage ./kdf {};
   kdialog = callPackage ./kdialog {};
   kdiamond = callPackage ./kdiamond {};
@@ -226,9 +226,9 @@
   parley = callPackage ./parley {};
   partitionmanager = callPackage ./partitionmanager {};
   picmi = callPackage ./picmi {};
-  pimcommon = callPackage ./pimcommon {};
   pim-data-exporter = callPackage ./pim-data-exporter {};
   pim-sieve-editor = callPackage ./pim-sieve-editor {};
+  pimcommon = callPackage ./pimcommon {};
   plasmatube = callPackage ./plasmatube {};
   poxml = callPackage ./poxml {};
   qmlkonsole = callPackage ./qmlkonsole {};
diff --git a/nixpkgs/pkgs/kde/gear/dragon/default.nix b/nixpkgs/pkgs/kde/gear/dragon/default.nix
index 0b1900203c05..3b49b3372ce6 100644
--- a/nixpkgs/pkgs/kde/gear/dragon/default.nix
+++ b/nixpkgs/pkgs/kde/gear/dragon/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "dragon";
+  meta.mainProgram = "dragon";
 }
diff --git a/nixpkgs/pkgs/kde/gear/elisa/default.nix b/nixpkgs/pkgs/kde/gear/elisa/default.nix
index 4f4437a5794c..459fb247390b 100644
--- a/nixpkgs/pkgs/kde/gear/elisa/default.nix
+++ b/nixpkgs/pkgs/kde/gear/elisa/default.nix
@@ -1,10 +1,11 @@
 {
   mkKdeDerivation,
   qtmultimedia,
-  vlc,
+  libvlc,
 }:
 mkKdeDerivation {
   pname = "elisa";
 
-  extraBuildInputs = [qtmultimedia vlc];
+  extraBuildInputs = [qtmultimedia libvlc];
+  meta.mainProgram = "elisa";
 }
diff --git a/nixpkgs/pkgs/kde/gear/falkon/default.nix b/nixpkgs/pkgs/kde/gear/falkon/default.nix
index 3fb5a9e16dbb..bc8125b99ec8 100644
--- a/nixpkgs/pkgs/kde/gear/falkon/default.nix
+++ b/nixpkgs/pkgs/kde/gear/falkon/default.nix
@@ -11,4 +11,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [qttools qtwebchannel qtwebengine];
   extraBuildInputs = [extra-cmake-modules qtwebchannel qtwebengine python3Packages.pyside6];
+  meta.mainProgram = "falkon";
 }
diff --git a/nixpkgs/pkgs/kde/gear/filelight/default.nix b/nixpkgs/pkgs/kde/gear/filelight/default.nix
index 1136a3b68844..fa80c1ea2ab3 100644
--- a/nixpkgs/pkgs/kde/gear/filelight/default.nix
+++ b/nixpkgs/pkgs/kde/gear/filelight/default.nix
@@ -12,4 +12,5 @@ mkKdeDerivation {
     kquickcharts
     qqc2-desktop-style
   ];
+  meta.mainProgram = "filelight";
 }
diff --git a/nixpkgs/pkgs/kde/gear/ghostwriter/default.nix b/nixpkgs/pkgs/kde/gear/ghostwriter/default.nix
index b3620992ee40..f4b4a3cee21e 100644
--- a/nixpkgs/pkgs/kde/gear/ghostwriter/default.nix
+++ b/nixpkgs/pkgs/kde/gear/ghostwriter/default.nix
@@ -14,4 +14,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [pkg-config kdoctools];
   extraBuildInputs = [qtsvg qttools qtwebchannel qtwebengine qt5compat hunspell];
+  meta.mainProgram = "ghostwriter";
 }
diff --git a/nixpkgs/pkgs/kde/gear/granatier/default.nix b/nixpkgs/pkgs/kde/gear/granatier/default.nix
index 66a763a962fe..1c8593258ca3 100644
--- a/nixpkgs/pkgs/kde/gear/granatier/default.nix
+++ b/nixpkgs/pkgs/kde/gear/granatier/default.nix
@@ -8,4 +8,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "granatier";
 }
diff --git a/nixpkgs/pkgs/kde/gear/gwenview/default.nix b/nixpkgs/pkgs/kde/gear/gwenview/default.nix
index 0f9e64696e38..2788e592ef3e 100644
--- a/nixpkgs/pkgs/kde/gear/gwenview/default.nix
+++ b/nixpkgs/pkgs/kde/gear/gwenview/default.nix
@@ -2,6 +2,7 @@
   mkKdeDerivation,
   qtsvg,
   qtwayland,
+  qtimageformats,
   pkg-config,
   cfitsio,
   exiv2,
@@ -19,6 +20,8 @@ mkKdeDerivation {
   extraBuildInputs = [
     qtsvg
     qtwayland
+    # adds support for webp and other image formats
+    qtimageformats
 
     cfitsio
     exiv2
diff --git a/nixpkgs/pkgs/kde/gear/isoimagewriter/default.nix b/nixpkgs/pkgs/kde/gear/isoimagewriter/default.nix
index daad31ea436b..e9b41bcb84e9 100644
--- a/nixpkgs/pkgs/kde/gear/isoimagewriter/default.nix
+++ b/nixpkgs/pkgs/kde/gear/isoimagewriter/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "isoimagewriter";
 
   extraBuildInputs = [qgpgme];
+  meta.mainProgram = "isoimagewriter";
 }
diff --git a/nixpkgs/pkgs/kde/gear/itinerary/default.nix b/nixpkgs/pkgs/kde/gear/itinerary/default.nix
index 29c129132071..ca1872662f32 100644
--- a/nixpkgs/pkgs/kde/gear/itinerary/default.nix
+++ b/nixpkgs/pkgs/kde/gear/itinerary/default.nix
@@ -14,4 +14,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [pkg-config shared-mime-info];
   extraBuildInputs = [qtlocation qtpositioning libical];
+  meta.mainProgram = "itinerary";
 }
diff --git a/nixpkgs/pkgs/kde/gear/juk/default.nix b/nixpkgs/pkgs/kde/gear/juk/default.nix
index dec454d2385b..53eff6a9cc18 100644
--- a/nixpkgs/pkgs/kde/gear/juk/default.nix
+++ b/nixpkgs/pkgs/kde/gear/juk/default.nix
@@ -7,4 +7,5 @@ mkKdeDerivation {
   pname = "juk";
 
   extraBuildInputs = [qtsvg taglib];
+  meta.mainProgram = "juk";
 }
diff --git a/nixpkgs/pkgs/kde/gear/k3b/default.nix b/nixpkgs/pkgs/kde/gear/k3b/default.nix
index ab6b39a2f5e4..9eba27da8639 100644
--- a/nixpkgs/pkgs/kde/gear/k3b/default.nix
+++ b/nixpkgs/pkgs/kde/gear/k3b/default.nix
@@ -50,4 +50,5 @@ mkKdeDerivation {
       flac
     ]}"
   ];
+  meta.mainProgram = "k3b";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kaddressbook/default.nix b/nixpkgs/pkgs/kde/gear/kaddressbook/default.nix
index d4e2c5820038..a5ef9c659f4e 100644
--- a/nixpkgs/pkgs/kde/gear/kaddressbook/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kaddressbook/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kaddressbook";
+  meta.mainProgram = "kaddressbook";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kalarm/default.nix b/nixpkgs/pkgs/kde/gear/kalarm/default.nix
index 439f92206967..abc93984456f 100644
--- a/nixpkgs/pkgs/kde/gear/kalarm/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kalarm/default.nix
@@ -1,4 +1,9 @@
-{mkKdeDerivation}:
+{
+  mkKdeDerivation,
+  libcanberra,
+}:
 mkKdeDerivation {
   pname = "kalarm";
+
+  extraBuildInputs = [libcanberra];
 }
diff --git a/nixpkgs/pkgs/kde/gear/kalk/default.nix b/nixpkgs/pkgs/kde/gear/kalk/default.nix
index b2cce371346e..bc2afd2425bf 100644
--- a/nixpkgs/pkgs/kde/gear/kalk/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kalk/default.nix
@@ -22,4 +22,5 @@ mkKdeDerivation {
     mpfr
     libqalculate
   ];
+  meta.mainProgram = "kalk";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kalzium/default.nix b/nixpkgs/pkgs/kde/gear/kalzium/default.nix
index 7e46128dc967..1c45498294d0 100644
--- a/nixpkgs/pkgs/kde/gear/kalzium/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kalzium/default.nix
@@ -13,4 +13,5 @@ mkKdeDerivation {
   # FIXME: look into how to make it find libfacile
   extraNativeBuildInputs = [pkg-config ocaml];
   extraBuildInputs = [eigen openbabel qtsvg qtscxml];
+  meta.mainProgram = "kalzium";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kanagram/default.nix b/nixpkgs/pkgs/kde/gear/kanagram/default.nix
index 4a12b6153e15..e7d3d7b443ed 100644
--- a/nixpkgs/pkgs/kde/gear/kanagram/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kanagram/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kanagram";
 
   extraBuildInputs = [qtspeech];
+  meta.mainProgram = "kanagram";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kapman/default.nix b/nixpkgs/pkgs/kde/gear/kapman/default.nix
index 2b3599ccd3f3..61cfb1fdf3fa 100644
--- a/nixpkgs/pkgs/kde/gear/kapman/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kapman/default.nix
@@ -8,4 +8,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "kapman";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kapptemplate/default.nix b/nixpkgs/pkgs/kde/gear/kapptemplate/default.nix
index 0559bc33e522..9b4f350b1b65 100644
--- a/nixpkgs/pkgs/kde/gear/kapptemplate/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kapptemplate/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kapptemplate";
+  meta.mainProgram = "kapptemplate";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kasts/default.nix b/nixpkgs/pkgs/kde/gear/kasts/default.nix
index 94fa949a78d7..860af4a1f081 100644
--- a/nixpkgs/pkgs/kde/gear/kasts/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kasts/default.nix
@@ -18,4 +18,5 @@ mkKdeDerivation {
     taglib
     libvlc
   ];
+  meta.mainProgram = "kasts";
 }
diff --git a/nixpkgs/pkgs/kde/gear/katomic/default.nix b/nixpkgs/pkgs/kde/gear/katomic/default.nix
index 22ce4c19c216..9a0f9b743d9e 100644
--- a/nixpkgs/pkgs/kde/gear/katomic/default.nix
+++ b/nixpkgs/pkgs/kde/gear/katomic/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "katomic";
+  meta.mainProgram = "katomic";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kbackup/default.nix b/nixpkgs/pkgs/kde/gear/kbackup/default.nix
index aca459e19264..49e43996b932 100644
--- a/nixpkgs/pkgs/kde/gear/kbackup/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kbackup/default.nix
@@ -9,4 +9,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [shared-mime-info];
   extraBuildInputs = [qt5compat libarchive];
+  meta.mainProgram = "kbackup";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kblackbox/default.nix b/nixpkgs/pkgs/kde/gear/kblackbox/default.nix
index 2aba074ac562..3f8995ce537e 100644
--- a/nixpkgs/pkgs/kde/gear/kblackbox/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kblackbox/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kblackbox";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "kblackbox";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kblocks/default.nix b/nixpkgs/pkgs/kde/gear/kblocks/default.nix
index e184971a9491..1e4628b03037 100644
--- a/nixpkgs/pkgs/kde/gear/kblocks/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kblocks/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kblocks";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "kblocks";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kbounce/default.nix b/nixpkgs/pkgs/kde/gear/kbounce/default.nix
index d94cd2cbf351..8ddeef47bfb6 100644
--- a/nixpkgs/pkgs/kde/gear/kbounce/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kbounce/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kbounce";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "kbounce";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kbreakout/default.nix b/nixpkgs/pkgs/kde/gear/kbreakout/default.nix
index 34e9e8435779..541ae0789ed4 100644
--- a/nixpkgs/pkgs/kde/gear/kbreakout/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kbreakout/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kbreakout";
 
   extraNativeBuildInputs = [_7zz];
+  meta.mainProgram = "kbreakout";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kbruch/default.nix b/nixpkgs/pkgs/kde/gear/kbruch/default.nix
index ea034aa275b9..9533db2c30e5 100644
--- a/nixpkgs/pkgs/kde/gear/kbruch/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kbruch/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kbruch";
+  meta.mainProgram = "kbruch";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kcalc/default.nix b/nixpkgs/pkgs/kde/gear/kcalc/default.nix
index 66bffedbb3c0..fdc55b353278 100644
--- a/nixpkgs/pkgs/kde/gear/kcalc/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kcalc/default.nix
@@ -10,4 +10,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [kdoctools];
   extraBuildInputs = [qt5compat gmp mpfr];
+  meta.mainProgram = "kcalc";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kcharselect/default.nix b/nixpkgs/pkgs/kde/gear/kcharselect/default.nix
index 1fffb87d32cd..9ee054d9339a 100644
--- a/nixpkgs/pkgs/kde/gear/kcharselect/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kcharselect/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kcharselect";
+  meta.mainProgram = "kcharselect";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kcolorchooser/default.nix b/nixpkgs/pkgs/kde/gear/kcolorchooser/default.nix
index 5e82c5c2c36f..f4c5132800e3 100644
--- a/nixpkgs/pkgs/kde/gear/kcolorchooser/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kcolorchooser/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kcolorchooser";
+  meta.mainProgram = "kcolorchooser";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kde-inotify-survey/default.nix b/nixpkgs/pkgs/kde/gear/kde-inotify-survey/default.nix
index 810fa3984093..6e319b60c81d 100644
--- a/nixpkgs/pkgs/kde/gear/kde-inotify-survey/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kde-inotify-survey/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kde-inotify-survey";
+  meta.mainProgram = "kde-inotify-survey";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kdebugsettings/default.nix b/nixpkgs/pkgs/kde/gear/kdebugsettings/default.nix
index 47431c60aa2d..21477c665694 100644
--- a/nixpkgs/pkgs/kde/gear/kdebugsettings/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kdebugsettings/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kdebugsettings";
+  meta.mainProgram = "kdebugsettings";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kdepim-addons/default.nix b/nixpkgs/pkgs/kde/gear/kdepim-addons/default.nix
index 66c24a91bdee..9861da5879cd 100644
--- a/nixpkgs/pkgs/kde/gear/kdepim-addons/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kdepim-addons/default.nix
@@ -8,7 +8,7 @@
   discount,
   alpaka,
   # provided as callPackage input to enable easier overrides through overlays
-  cargoHash ? "sha256-z2W2TxyN6Ye+KUaqz5nPAG5zxeABu/UXWuz+XpDpNfc=",
+  cargoHash ? "sha256-MMCDfCtGDJ+yrfdpZEMxlSh7yWU6de/Pggw7Op7VxQI=",
 }:
 mkKdeDerivation rec {
   pname = "kdepim-addons";
diff --git a/nixpkgs/pkgs/kde/gear/kdiamond/default.nix b/nixpkgs/pkgs/kde/gear/kdiamond/default.nix
index a45a3c6f1093..1636a80fd727 100644
--- a/nixpkgs/pkgs/kde/gear/kdiamond/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kdiamond/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kdiamond";
 
   extraNativeBuildInputs = [_7zz];
+  meta.mainProgram = "kdiamond";
 }
diff --git a/nixpkgs/pkgs/kde/gear/keysmith/default.nix b/nixpkgs/pkgs/kde/gear/keysmith/default.nix
index a468409ff182..4d96f630a661 100644
--- a/nixpkgs/pkgs/kde/gear/keysmith/default.nix
+++ b/nixpkgs/pkgs/kde/gear/keysmith/default.nix
@@ -9,4 +9,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [pkg-config];
   extraBuildInputs = [qtsvg libsodium];
+  meta.mainProgram = "keysmith";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kfind/default.nix b/nixpkgs/pkgs/kde/gear/kfind/default.nix
index c0216e301575..b652b790eb7f 100644
--- a/nixpkgs/pkgs/kde/gear/kfind/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kfind/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kfind";
 
   extraBuildInputs = [qt5compat];
+  meta.mainProgram = "kfind";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kgeography/default.nix b/nixpkgs/pkgs/kde/gear/kgeography/default.nix
index aa9f878bbb9b..560faec8e010 100644
--- a/nixpkgs/pkgs/kde/gear/kgeography/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kgeography/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kgeography";
+  meta.mainProgram = "kgeography";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kget/default.nix b/nixpkgs/pkgs/kde/gear/kget/default.nix
index d6a4fadfd5d6..e88cd601bb0e 100644
--- a/nixpkgs/pkgs/kde/gear/kget/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kget/default.nix
@@ -7,4 +7,5 @@ mkKdeDerivation {
   pname = "kget";
 
   extraBuildInputs = [qgpgme libmms];
+  meta.mainProgram = "kget";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kgoldrunner/default.nix b/nixpkgs/pkgs/kde/gear/kgoldrunner/default.nix
index 8d303e07cac7..ba82b55cccad 100644
--- a/nixpkgs/pkgs/kde/gear/kgoldrunner/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kgoldrunner/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kgoldrunner";
 
   extraNativeBuildInputs = [_7zz];
+  meta.mainProgram = "kgoldrunner";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kgpg/default.nix b/nixpkgs/pkgs/kde/gear/kgpg/default.nix
index 65f9a55221b5..2b974de5123c 100644
--- a/nixpkgs/pkgs/kde/gear/kgpg/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kgpg/default.nix
@@ -8,4 +8,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [pkg-config];
   extraBuildInputs = [gpgme];
+  meta.mainProgram = "kgpg";
 }
diff --git a/nixpkgs/pkgs/kde/gear/khangman/default.nix b/nixpkgs/pkgs/kde/gear/khangman/default.nix
index 27da76e397e3..e3f95b7a6a5a 100644
--- a/nixpkgs/pkgs/kde/gear/khangman/default.nix
+++ b/nixpkgs/pkgs/kde/gear/khangman/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "khangman";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "khangman";
 }
diff --git a/nixpkgs/pkgs/kde/gear/khelpcenter/default.nix b/nixpkgs/pkgs/kde/gear/khelpcenter/default.nix
index d60e16e3c163..231d1036b0b1 100644
--- a/nixpkgs/pkgs/kde/gear/khelpcenter/default.nix
+++ b/nixpkgs/pkgs/kde/gear/khelpcenter/default.nix
@@ -7,4 +7,5 @@ mkKdeDerivation {
   pname = "khelpcenter";
 
   extraBuildInputs = [qtwebengine xapian];
+  meta.mainProgram = "khelpcenter";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kigo/default.nix b/nixpkgs/pkgs/kde/gear/kigo/default.nix
index 819fb69b0c0f..4fd00e721f81 100644
--- a/nixpkgs/pkgs/kde/gear/kigo/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kigo/default.nix
@@ -8,4 +8,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "kigo";
 }
diff --git a/nixpkgs/pkgs/kde/gear/killbots/default.nix b/nixpkgs/pkgs/kde/gear/killbots/default.nix
index 03dcdb0d31fe..592cb97ba681 100644
--- a/nixpkgs/pkgs/kde/gear/killbots/default.nix
+++ b/nixpkgs/pkgs/kde/gear/killbots/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "killbots";
 
   extraNativeBuildInputs = [_7zz];
+  meta.mainProgram = "killbots";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kimagemapeditor/default.nix b/nixpkgs/pkgs/kde/gear/kimagemapeditor/default.nix
index fa19f24cd34b..71efc86fd2ae 100644
--- a/nixpkgs/pkgs/kde/gear/kimagemapeditor/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kimagemapeditor/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kimagemapeditor";
 
   extraBuildInputs = [qtwebengine];
+  meta.mainProgram = "kimagemapeditor";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kiriki/default.nix b/nixpkgs/pkgs/kde/gear/kiriki/default.nix
index a8344ef973cb..50d04e49e939 100644
--- a/nixpkgs/pkgs/kde/gear/kiriki/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kiriki/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kiriki";
+  meta.mainProgram = "kiriki";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kjournald/default.nix b/nixpkgs/pkgs/kde/gear/kjournald/default.nix
index d03e8b815ae4..879e698db4d1 100644
--- a/nixpkgs/pkgs/kde/gear/kjournald/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kjournald/default.nix
@@ -9,4 +9,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [pkg-config];
   extraBuildInputs = [qtdeclarative systemd];
+  meta.mainProgram = "kjournaldbrowser";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kjumpingcube/default.nix b/nixpkgs/pkgs/kde/gear/kjumpingcube/default.nix
index c13ece29da89..1f1daf12d234 100644
--- a/nixpkgs/pkgs/kde/gear/kjumpingcube/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kjumpingcube/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kjumpingcube";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "kjumpingcube";
 }
diff --git a/nixpkgs/pkgs/kde/gear/klettres/default.nix b/nixpkgs/pkgs/kde/gear/klettres/default.nix
index ecf58d98fc37..ef6305d0f121 100644
--- a/nixpkgs/pkgs/kde/gear/klettres/default.nix
+++ b/nixpkgs/pkgs/kde/gear/klettres/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "klettres";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "klettres";
 }
diff --git a/nixpkgs/pkgs/kde/gear/klickety/default.nix b/nixpkgs/pkgs/kde/gear/klickety/default.nix
index 0df68937124b..574bddccf00b 100644
--- a/nixpkgs/pkgs/kde/gear/klickety/default.nix
+++ b/nixpkgs/pkgs/kde/gear/klickety/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "klickety";
+  meta.mainProgram = "klickety";
 }
diff --git a/nixpkgs/pkgs/kde/gear/klines/default.nix b/nixpkgs/pkgs/kde/gear/klines/default.nix
index 5399962382b0..58a8f6f8c465 100644
--- a/nixpkgs/pkgs/kde/gear/klines/default.nix
+++ b/nixpkgs/pkgs/kde/gear/klines/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "klines";
+  meta.mainProgram = "klines";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kmag/default.nix b/nixpkgs/pkgs/kde/gear/kmag/default.nix
index 24e6643b3b59..3d8046715dca 100644
--- a/nixpkgs/pkgs/kde/gear/kmag/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kmag/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kmag";
+  meta.mainProgram = "kmag";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kmahjongg/default.nix b/nixpkgs/pkgs/kde/gear/kmahjongg/default.nix
index 9ad776f3c6f4..9d01f435be00 100644
--- a/nixpkgs/pkgs/kde/gear/kmahjongg/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kmahjongg/default.nix
@@ -10,4 +10,5 @@ mkKdeDerivation {
   extraBuildInputs = [qtdeclarative qtsvg];
 
   qtWrapperArgs = ["--prefix XDG_DATA_DIRS : ${libkmahjongg}/share"];
+  meta.mainProgram = "kmahjongg";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kmail-account-wizard/default.nix b/nixpkgs/pkgs/kde/gear/kmail-account-wizard/default.nix
index d030eabcce01..acd23f72d683 100644
--- a/nixpkgs/pkgs/kde/gear/kmail-account-wizard/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kmail-account-wizard/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kmail-account-wizard";
+  meta.mainProgram = "accountwizard";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kmines/default.nix b/nixpkgs/pkgs/kde/gear/kmines/default.nix
index 32a8c179f0ec..5c333ae11da5 100644
--- a/nixpkgs/pkgs/kde/gear/kmines/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kmines/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kmines";
+  meta.mainProgram = "kmines";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kmousetool/default.nix b/nixpkgs/pkgs/kde/gear/kmousetool/default.nix
index 8ba8615cbbe6..78a73e45768b 100644
--- a/nixpkgs/pkgs/kde/gear/kmousetool/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kmousetool/default.nix
@@ -7,4 +7,5 @@ mkKdeDerivation {
   pname = "kmousetool";
 
   extraBuildInputs = [qtmultimedia xorg.libXt];
+  meta.mainProgram = "kmousetool";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kmouth/default.nix b/nixpkgs/pkgs/kde/gear/kmouth/default.nix
index 75d044b1c686..9abffa1d2da6 100644
--- a/nixpkgs/pkgs/kde/gear/kmouth/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kmouth/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kmouth";
 
   extraBuildInputs = [qtspeech];
+  meta.mainProgram = "kmouth";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kmplot/default.nix b/nixpkgs/pkgs/kde/gear/kmplot/default.nix
index 55f4a21d0e6a..b38941765747 100644
--- a/nixpkgs/pkgs/kde/gear/kmplot/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kmplot/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kmplot";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "kmplot";
 }
diff --git a/nixpkgs/pkgs/kde/gear/knavalbattle/default.nix b/nixpkgs/pkgs/kde/gear/knavalbattle/default.nix
index 6a98a2826d1f..3168f2b5729c 100644
--- a/nixpkgs/pkgs/kde/gear/knavalbattle/default.nix
+++ b/nixpkgs/pkgs/kde/gear/knavalbattle/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "knavalbattle";
+  meta.mainProgram = "knavalbattle";
 }
diff --git a/nixpkgs/pkgs/kde/gear/knetwalk/default.nix b/nixpkgs/pkgs/kde/gear/knetwalk/default.nix
index c77a714e5949..265e6d32f542 100644
--- a/nixpkgs/pkgs/kde/gear/knetwalk/default.nix
+++ b/nixpkgs/pkgs/kde/gear/knetwalk/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "knetwalk";
 
   extraNativeBuildInputs = [_7zz];
+  meta.mainProgram = "knetwalk";
 }
diff --git a/nixpkgs/pkgs/kde/gear/knights/default.nix b/nixpkgs/pkgs/kde/gear/knights/default.nix
index 1fa6519fe16e..4deca218d095 100644
--- a/nixpkgs/pkgs/kde/gear/knights/default.nix
+++ b/nixpkgs/pkgs/kde/gear/knights/default.nix
@@ -9,4 +9,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [_7zz];
   extraBuildInputs = [qtsvg qtspeech];
+  meta.mainProgram = "knights";
 }
diff --git a/nixpkgs/pkgs/kde/gear/koko/default.nix b/nixpkgs/pkgs/kde/gear/koko/default.nix
index c2b42bc693e7..faec24560b6c 100644
--- a/nixpkgs/pkgs/kde/gear/koko/default.nix
+++ b/nixpkgs/pkgs/kde/gear/koko/default.nix
@@ -43,4 +43,5 @@ in
       kirigami-addons
       kquickimageeditor
     ];
+    meta.mainProgram = "koko";
   }
diff --git a/nixpkgs/pkgs/kde/gear/kolf/default.nix b/nixpkgs/pkgs/kde/gear/kolf/default.nix
index 94e170ae6d33..51a31e5e753a 100644
--- a/nixpkgs/pkgs/kde/gear/kolf/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kolf/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kolf";
+  meta.mainProgram = "kolf";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kollision/default.nix b/nixpkgs/pkgs/kde/gear/kollision/default.nix
index 325510cdf2ee..f8e816437bb4 100644
--- a/nixpkgs/pkgs/kde/gear/kollision/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kollision/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kollision";
+  meta.mainProgram = "kollision";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kolourpaint/default.nix b/nixpkgs/pkgs/kde/gear/kolourpaint/default.nix
index d5dbacca3843..7cf5583345d2 100644
--- a/nixpkgs/pkgs/kde/gear/kolourpaint/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kolourpaint/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kolourpaint";
+  meta.mainProgram = "kolourpaint";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kompare/default.nix b/nixpkgs/pkgs/kde/gear/kompare/default.nix
index 93580fc90dbf..32bcaf2401d9 100644
--- a/nixpkgs/pkgs/kde/gear/kompare/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kompare/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kompare";
+  meta.mainProgram = "kompare";
 }
diff --git a/nixpkgs/pkgs/kde/gear/konquest/default.nix b/nixpkgs/pkgs/kde/gear/konquest/default.nix
index 54bd2f6048dd..538428d84c72 100644
--- a/nixpkgs/pkgs/kde/gear/konquest/default.nix
+++ b/nixpkgs/pkgs/kde/gear/konquest/default.nix
@@ -7,4 +7,5 @@ mkKdeDerivation {
   pname = "konquest";
 
   extraBuildInputs = [qtscxml qtsvg];
+  meta.mainProgram = "konquest";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kontact/default.nix b/nixpkgs/pkgs/kde/gear/kontact/default.nix
index fe258eea446b..7d6dc5cbb2ba 100644
--- a/nixpkgs/pkgs/kde/gear/kontact/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kontact/default.nix
@@ -20,4 +20,5 @@ mkKdeDerivation {
     korganizer
     zanshin
   ];
+  meta.mainProgram = "kontact";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kontrast/default.nix b/nixpkgs/pkgs/kde/gear/kontrast/default.nix
index 60bf03534ba1..1ad85ad64802 100644
--- a/nixpkgs/pkgs/kde/gear/kontrast/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kontrast/default.nix
@@ -7,4 +7,5 @@ mkKdeDerivation {
   pname = "kontrast";
 
   extraBuildInputs = [qtsvg qcoro];
+  meta.mainProgram = "kontrast";
 }
diff --git a/nixpkgs/pkgs/kde/gear/konversation/default.nix b/nixpkgs/pkgs/kde/gear/konversation/default.nix
index d7d5d3c2fb89..952b98fff649 100644
--- a/nixpkgs/pkgs/kde/gear/konversation/default.nix
+++ b/nixpkgs/pkgs/kde/gear/konversation/default.nix
@@ -8,4 +8,5 @@ mkKdeDerivation {
   pname = "konversation";
 
   extraBuildInputs = [qtmultimedia qt5compat qttools];
+  meta.mainProgram = "konversation";
 }
diff --git a/nixpkgs/pkgs/kde/gear/korganizer/default.nix b/nixpkgs/pkgs/kde/gear/korganizer/default.nix
index dfea744563e3..c20e6625e1bd 100644
--- a/nixpkgs/pkgs/kde/gear/korganizer/default.nix
+++ b/nixpkgs/pkgs/kde/gear/korganizer/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "korganizer";
 
   extraBuildInputs = [qttools];
+  meta.mainProgram = "korganizer";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kpat/default.nix b/nixpkgs/pkgs/kde/gear/kpat/default.nix
index 23b99dddb9f4..e770f5935705 100644
--- a/nixpkgs/pkgs/kde/gear/kpat/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kpat/default.nix
@@ -18,4 +18,5 @@ mkKdeDerivation {
   ];
 
   qtWrapperArgs = ["--prefix XDG_DATA_DIRS : ${libkdegames}/share"];
+  meta.mainProgram = "kpat";
 }
diff --git a/nixpkgs/pkgs/kde/gear/krdc/default.nix b/nixpkgs/pkgs/kde/gear/krdc/default.nix
index 75806e233b63..3707c0abc794 100644
--- a/nixpkgs/pkgs/kde/gear/krdc/default.nix
+++ b/nixpkgs/pkgs/kde/gear/krdc/default.nix
@@ -8,4 +8,5 @@ mkKdeDerivation {
   pname = "krdc";
 
   extraBuildInputs = [libssh libvncserver freerdp];
+  meta.mainProgram = "krdc";
 }
diff --git a/nixpkgs/pkgs/kde/gear/krecorder/default.nix b/nixpkgs/pkgs/kde/gear/krecorder/default.nix
index d6553f4d1fcb..a975f1b95684 100644
--- a/nixpkgs/pkgs/kde/gear/krecorder/default.nix
+++ b/nixpkgs/pkgs/kde/gear/krecorder/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "krecorder";
 
   extraBuildInputs = [qtmultimedia];
+  meta.mainProgram = "krecorder";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kreversi/default.nix b/nixpkgs/pkgs/kde/gear/kreversi/default.nix
index 8ad4233e1f1a..facc50b28b15 100644
--- a/nixpkgs/pkgs/kde/gear/kreversi/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kreversi/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kreversi";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "kreversi";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kruler/default.nix b/nixpkgs/pkgs/kde/gear/kruler/default.nix
index 311dcc3bd840..9eb9a917fc17 100644
--- a/nixpkgs/pkgs/kde/gear/kruler/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kruler/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kruler";
+  meta.mainProgram = "kruler";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kshisen/default.nix b/nixpkgs/pkgs/kde/gear/kshisen/default.nix
index efa2b024d716..3859610e0f1d 100644
--- a/nixpkgs/pkgs/kde/gear/kshisen/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kshisen/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kshisen";
+  meta.mainProgram = "kshisen";
 }
diff --git a/nixpkgs/pkgs/kde/gear/ksnakeduel/default.nix b/nixpkgs/pkgs/kde/gear/ksnakeduel/default.nix
index b741df477f33..3f07eaa0e48f 100644
--- a/nixpkgs/pkgs/kde/gear/ksnakeduel/default.nix
+++ b/nixpkgs/pkgs/kde/gear/ksnakeduel/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "ksnakeduel";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "ksnakeduel";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kspaceduel/default.nix b/nixpkgs/pkgs/kde/gear/kspaceduel/default.nix
index 1f4272b5cac9..34194d2322cf 100644
--- a/nixpkgs/pkgs/kde/gear/kspaceduel/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kspaceduel/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kspaceduel";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "kspaceduel";
 }
diff --git a/nixpkgs/pkgs/kde/gear/ksquares/default.nix b/nixpkgs/pkgs/kde/gear/ksquares/default.nix
index 683a64a5bf59..8dfbcf00244d 100644
--- a/nixpkgs/pkgs/kde/gear/ksquares/default.nix
+++ b/nixpkgs/pkgs/kde/gear/ksquares/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "ksquares";
+  meta.mainProgram = "ksquares";
 }
diff --git a/nixpkgs/pkgs/kde/gear/ksudoku/default.nix b/nixpkgs/pkgs/kde/gear/ksudoku/default.nix
index 6f293bd26e1e..b11d44f488f9 100644
--- a/nixpkgs/pkgs/kde/gear/ksudoku/default.nix
+++ b/nixpkgs/pkgs/kde/gear/ksudoku/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "ksudoku";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "ksudoku";
 }
diff --git a/nixpkgs/pkgs/kde/gear/ksystemlog/default.nix b/nixpkgs/pkgs/kde/gear/ksystemlog/default.nix
index 604a52cc560b..772a4f54b077 100644
--- a/nixpkgs/pkgs/kde/gear/ksystemlog/default.nix
+++ b/nixpkgs/pkgs/kde/gear/ksystemlog/default.nix
@@ -9,4 +9,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [pkg-config];
   extraBuildInputs = [qt5compat audit];
+  meta.mainProgram = "ksystemlog";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kteatime/default.nix b/nixpkgs/pkgs/kde/gear/kteatime/default.nix
index 81d20ec270be..408bc14883cf 100644
--- a/nixpkgs/pkgs/kde/gear/kteatime/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kteatime/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kteatime";
+  meta.mainProgram = "kteatime";
 }
diff --git a/nixpkgs/pkgs/kde/gear/ktimer/default.nix b/nixpkgs/pkgs/kde/gear/ktimer/default.nix
index 898b4a802e13..1b46f8b72c72 100644
--- a/nixpkgs/pkgs/kde/gear/ktimer/default.nix
+++ b/nixpkgs/pkgs/kde/gear/ktimer/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "ktimer";
 
   extraBuildInputs = [qt5compat];
+  meta.mainProgram = "ktimer";
 }
diff --git a/nixpkgs/pkgs/kde/gear/ktrip/default.nix b/nixpkgs/pkgs/kde/gear/ktrip/default.nix
index 87351e5e5490..0f8b001c7d6b 100644
--- a/nixpkgs/pkgs/kde/gear/ktrip/default.nix
+++ b/nixpkgs/pkgs/kde/gear/ktrip/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "ktrip";
+  meta.mainProgram = "ktrip";
 }
diff --git a/nixpkgs/pkgs/kde/gear/ktuberling/default.nix b/nixpkgs/pkgs/kde/gear/ktuberling/default.nix
index 5602ac870479..100301670bf3 100644
--- a/nixpkgs/pkgs/kde/gear/ktuberling/default.nix
+++ b/nixpkgs/pkgs/kde/gear/ktuberling/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "ktuberling";
 
   extraBuildInputs = [qtmultimedia];
+  meta.mainProgram = "ktuberling";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kturtle/default.nix b/nixpkgs/pkgs/kde/gear/kturtle/default.nix
index f55f7e92a03a..8997c051b189 100644
--- a/nixpkgs/pkgs/kde/gear/kturtle/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kturtle/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "kturtle";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "kturtle";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kubrick/default.nix b/nixpkgs/pkgs/kde/gear/kubrick/default.nix
index c8bedf44c2de..d5ca09e42887 100644
--- a/nixpkgs/pkgs/kde/gear/kubrick/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kubrick/default.nix
@@ -7,4 +7,5 @@ mkKdeDerivation {
   pname = "kubrick";
 
   extraBuildInputs = [qtsvg libGLU];
+  meta.mainProgram = "kubrick";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kwalletmanager/default.nix b/nixpkgs/pkgs/kde/gear/kwalletmanager/default.nix
index 72ebd76ffa3a..4ce00339a259 100644
--- a/nixpkgs/pkgs/kde/gear/kwalletmanager/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kwalletmanager/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kwalletmanager";
+  meta.mainProgram = "kwalletmanager5";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kweather/default.nix b/nixpkgs/pkgs/kde/gear/kweather/default.nix
index 51d17a0a1e59..561a646f0261 100644
--- a/nixpkgs/pkgs/kde/gear/kweather/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kweather/default.nix
@@ -9,4 +9,5 @@ mkKdeDerivation {
   pname = "kweather";
 
   extraBuildInputs = [qtsvg qtcharts qqc2-desktop-style kholidays];
+  meta.mainProgram = "kweather";
 }
diff --git a/nixpkgs/pkgs/kde/gear/kwordquiz/default.nix b/nixpkgs/pkgs/kde/gear/kwordquiz/default.nix
index 82989919f6e0..010fd80cacca 100644
--- a/nixpkgs/pkgs/kde/gear/kwordquiz/default.nix
+++ b/nixpkgs/pkgs/kde/gear/kwordquiz/default.nix
@@ -12,4 +12,5 @@ mkKdeDerivation {
     qtmultimedia
     qqc2-desktop-style
   ];
+  meta.mainProgram = "kwordquiz";
 }
diff --git a/nixpkgs/pkgs/kde/gear/lskat/default.nix b/nixpkgs/pkgs/kde/gear/lskat/default.nix
index e1b83925feb8..131cb34c0365 100644
--- a/nixpkgs/pkgs/kde/gear/lskat/default.nix
+++ b/nixpkgs/pkgs/kde/gear/lskat/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "lskat";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "lskat";
 }
diff --git a/nixpkgs/pkgs/kde/gear/mbox-importer/default.nix b/nixpkgs/pkgs/kde/gear/mbox-importer/default.nix
index 7d1a6730e84d..44092f401a43 100644
--- a/nixpkgs/pkgs/kde/gear/mbox-importer/default.nix
+++ b/nixpkgs/pkgs/kde/gear/mbox-importer/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "mbox-importer";
+  meta.mainProgram = "mboximporter";
 }
diff --git a/nixpkgs/pkgs/kde/gear/minuet/default.nix b/nixpkgs/pkgs/kde/gear/minuet/default.nix
index bbfe47b2796f..05e80a590128 100644
--- a/nixpkgs/pkgs/kde/gear/minuet/default.nix
+++ b/nixpkgs/pkgs/kde/gear/minuet/default.nix
@@ -8,4 +8,5 @@ mkKdeDerivation {
   pname = "minuet";
 
   extraBuildInputs = [qtdeclarative qtsvg fluidsynth];
+  meta.mainProgram = "minuet";
 }
diff --git a/nixpkgs/pkgs/kde/gear/neochat/default.nix b/nixpkgs/pkgs/kde/gear/neochat/default.nix
index ac50d06db8c9..a45aa2c328fc 100644
--- a/nixpkgs/pkgs/kde/gear/neochat/default.nix
+++ b/nixpkgs/pkgs/kde/gear/neochat/default.nix
@@ -8,4 +8,5 @@ mkKdeDerivation {
   pname = "neochat";
 
   extraBuildInputs = [qtlocation qtwebview kunifiedpush];
+  meta.mainProgram = "neochat";
 }
diff --git a/nixpkgs/pkgs/kde/gear/okular/default.nix b/nixpkgs/pkgs/kde/gear/okular/default.nix
index 4f2ad1f8e3b0..e500709a28b8 100644
--- a/nixpkgs/pkgs/kde/gear/okular/default.nix
+++ b/nixpkgs/pkgs/kde/gear/okular/default.nix
@@ -27,4 +27,5 @@ mkKdeDerivation {
     ebook_tools
     discount
   ];
+  meta.mainProgram = "okular";
 }
diff --git a/nixpkgs/pkgs/kde/gear/palapeli/default.nix b/nixpkgs/pkgs/kde/gear/palapeli/default.nix
index 01cc8774d06d..144ef589e51c 100644
--- a/nixpkgs/pkgs/kde/gear/palapeli/default.nix
+++ b/nixpkgs/pkgs/kde/gear/palapeli/default.nix
@@ -8,4 +8,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [shared-mime-info];
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "palapeli";
 }
diff --git a/nixpkgs/pkgs/kde/gear/parley/default.nix b/nixpkgs/pkgs/kde/gear/parley/default.nix
index 75f01c94e9d5..35342dd958cb 100644
--- a/nixpkgs/pkgs/kde/gear/parley/default.nix
+++ b/nixpkgs/pkgs/kde/gear/parley/default.nix
@@ -8,4 +8,5 @@ mkKdeDerivation {
   pname = "parley";
 
   extraBuildInputs = [qtsvg qtmultimedia qtwebengine];
+  meta.mainProgram = "parley";
 }
diff --git a/nixpkgs/pkgs/kde/gear/partitionmanager/default.nix b/nixpkgs/pkgs/kde/gear/partitionmanager/default.nix
index 1b3b06f8d68b..3d0215cb5e64 100644
--- a/nixpkgs/pkgs/kde/gear/partitionmanager/default.nix
+++ b/nixpkgs/pkgs/kde/gear/partitionmanager/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "partitionmanager";
 
   propagatedUserEnvPkgs = [kpmcore];
+  meta.mainProgram = "partitionmanager";
 }
diff --git a/nixpkgs/pkgs/kde/gear/picmi/default.nix b/nixpkgs/pkgs/kde/gear/picmi/default.nix
index a5dd853fba52..8838b657bc47 100644
--- a/nixpkgs/pkgs/kde/gear/picmi/default.nix
+++ b/nixpkgs/pkgs/kde/gear/picmi/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "picmi";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "picmi";
 }
diff --git a/nixpkgs/pkgs/kde/gear/pim-sieve-editor/default.nix b/nixpkgs/pkgs/kde/gear/pim-sieve-editor/default.nix
index 66df72016321..5cc193d0d7ee 100644
--- a/nixpkgs/pkgs/kde/gear/pim-sieve-editor/default.nix
+++ b/nixpkgs/pkgs/kde/gear/pim-sieve-editor/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "pim-sieve-editor";
+  meta.mainProgram = "sieveeditor";
 }
diff --git a/nixpkgs/pkgs/kde/gear/plasmatube/default.nix b/nixpkgs/pkgs/kde/gear/plasmatube/default.nix
index db28e47c78c8..05285f6b6c1d 100644
--- a/nixpkgs/pkgs/kde/gear/plasmatube/default.nix
+++ b/nixpkgs/pkgs/kde/gear/plasmatube/default.nix
@@ -1,15 +1,21 @@
 {
+  lib,
   mkKdeDerivation,
   qtquick3d,
   qtsvg,
   purpose,
+  qqc2-desktop-style,
   pkg-config,
   mpv,
+  yt-dlp,
 }:
 mkKdeDerivation {
   pname = "plasmatube";
 
   extraNativeBuildInputs = [pkg-config];
-  extraBuildInputs = [qtquick3d qtsvg mpv];
+  extraBuildInputs = [qtquick3d qtsvg mpv qqc2-desktop-style];
   extraPropagatedBuildInputs = [purpose];
+
+  qtWrapperArgs = ["--prefix" "PATH" ":" (lib.makeBinPath [ yt-dlp ])];
+  meta.mainProgram = "plasmatube";
 }
diff --git a/nixpkgs/pkgs/kde/gear/qmlkonsole/default.nix b/nixpkgs/pkgs/kde/gear/qmlkonsole/default.nix
index c48dbad18204..9be6552020f6 100644
--- a/nixpkgs/pkgs/kde/gear/qmlkonsole/default.nix
+++ b/nixpkgs/pkgs/kde/gear/qmlkonsole/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "qmlkonsole";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "qmlkonsole";
 }
diff --git a/nixpkgs/pkgs/kde/gear/skanlite/default.nix b/nixpkgs/pkgs/kde/gear/skanlite/default.nix
index c64594d3fd09..4a9c26e41588 100644
--- a/nixpkgs/pkgs/kde/gear/skanlite/default.nix
+++ b/nixpkgs/pkgs/kde/gear/skanlite/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "skanlite";
 
   extraBuildInputs = [qt5compat];
+  meta.mainProgram = "skanlite";
 }
diff --git a/nixpkgs/pkgs/kde/gear/skanpage/default.nix b/nixpkgs/pkgs/kde/gear/skanpage/default.nix
index a7352da8466c..b6db869472cf 100644
--- a/nixpkgs/pkgs/kde/gear/skanpage/default.nix
+++ b/nixpkgs/pkgs/kde/gear/skanpage/default.nix
@@ -11,4 +11,5 @@ mkKdeDerivation {
     (tesseract5.override {enableLanguages = tesseractLanguages;})
     leptonica
   ];
+  meta.mainProgram = "skanpage";
 }
diff --git a/nixpkgs/pkgs/kde/gear/spectacle/default.nix b/nixpkgs/pkgs/kde/gear/spectacle/default.nix
index 1b5539230cbd..3232b6402bd0 100644
--- a/nixpkgs/pkgs/kde/gear/spectacle/default.nix
+++ b/nixpkgs/pkgs/kde/gear/spectacle/default.nix
@@ -7,4 +7,5 @@ mkKdeDerivation {
   pname = "spectacle";
 
   extraBuildInputs = [qtwayland qtmultimedia];
+  meta.mainProgram = "spectacle";
 }
diff --git a/nixpkgs/pkgs/kde/gear/step/default.nix b/nixpkgs/pkgs/kde/gear/step/default.nix
index 7e403a24d902..f921df199128 100644
--- a/nixpkgs/pkgs/kde/gear/step/default.nix
+++ b/nixpkgs/pkgs/kde/gear/step/default.nix
@@ -13,4 +13,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [qttools qtsvg pkg-config shared-mime-info];
   extraBuildInputs = [eigen gsl libqalculate];
+  meta.mainProgram = "step";
 }
diff --git a/nixpkgs/pkgs/kde/gear/sweeper/default.nix b/nixpkgs/pkgs/kde/gear/sweeper/default.nix
index f914ce9574be..e2b7fd934436 100644
--- a/nixpkgs/pkgs/kde/gear/sweeper/default.nix
+++ b/nixpkgs/pkgs/kde/gear/sweeper/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "sweeper";
 
   extraBuildInputs = [plasma-activities-stats];
+  meta.mainProgram = "sweeper";
 }
diff --git a/nixpkgs/pkgs/kde/gear/telly-skout/default.nix b/nixpkgs/pkgs/kde/gear/telly-skout/default.nix
index c19ecf6b42d7..9bcae06c9049 100644
--- a/nixpkgs/pkgs/kde/gear/telly-skout/default.nix
+++ b/nixpkgs/pkgs/kde/gear/telly-skout/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "telly-skout";
+  meta.mainProgram = "telly-skout";
 }
diff --git a/nixpkgs/pkgs/kde/gear/tokodon/default.nix b/nixpkgs/pkgs/kde/gear/tokodon/default.nix
index 464f354f41ed..1e12163eb98b 100644
--- a/nixpkgs/pkgs/kde/gear/tokodon/default.nix
+++ b/nixpkgs/pkgs/kde/gear/tokodon/default.nix
@@ -14,4 +14,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [pkg-config];
   extraBuildInputs = [qtmultimedia qtsvg qtwebsockets qtwebview mpv kitemmodels sonnet];
+  meta.mainProgram = "tokodon";
 }
diff --git a/nixpkgs/pkgs/kde/gear/yakuake/default.nix b/nixpkgs/pkgs/kde/gear/yakuake/default.nix
index 420ec08f670b..a5955e5c2e18 100644
--- a/nixpkgs/pkgs/kde/gear/yakuake/default.nix
+++ b/nixpkgs/pkgs/kde/gear/yakuake/default.nix
@@ -6,4 +6,5 @@ mkKdeDerivation {
   pname = "yakuake";
 
   extraBuildInputs = [qtsvg];
+  meta.mainProgram = "yakuake";
 }
diff --git a/nixpkgs/pkgs/kde/generated/sources/gear.json b/nixpkgs/pkgs/kde/generated/sources/gear.json
index ba2b94b119b9..392a9c2db414 100644
--- a/nixpkgs/pkgs/kde/generated/sources/gear.json
+++ b/nixpkgs/pkgs/kde/generated/sources/gear.json
@@ -1,1232 +1,1232 @@
 {
   "akonadi": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/akonadi-24.02.0.tar.xz",
-    "hash": "sha256-ooDLUIgGxAim5i0vkwQDqD5MOn2hCo7x6BGFTl65Bh0="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-24.02.1.tar.xz",
+    "hash": "sha256-ACW6ZEOazIZBZImCxuyKdm4tKeikmTUERr5ZfIgMccA="
   },
   "akonadi-calendar": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/akonadi-calendar-24.02.0.tar.xz",
-    "hash": "sha256-wxXu+agOTtHuNimKWtTmllexirp3v810zdLVo9CH6j8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-calendar-24.02.1.tar.xz",
+    "hash": "sha256-Av2ZpYjIDe0wTocbH/lm91t9drrAu0fmbsYMxvM31f0="
   },
   "akonadi-calendar-tools": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/akonadi-calendar-tools-24.02.0.tar.xz",
-    "hash": "sha256-X9UbkWeptqDHo/Kz5FJFKg0J2EmTBH3Ene6zCtYOwFs="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-calendar-tools-24.02.1.tar.xz",
+    "hash": "sha256-ZKKFXfEmtk+901SH5Q8hlnNV4BxeFIm8bOocTWaHRDI="
   },
   "akonadiconsole": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/akonadiconsole-24.02.0.tar.xz",
-    "hash": "sha256-dcXQuNA8QABV2vqXgVfH5x0WxYnUaY9bPzPtFFcd36k="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadiconsole-24.02.1.tar.xz",
+    "hash": "sha256-JMTa5yfF05CwZ7xz2BjVAwNNE9iCBKtgqNWEXTN1P1o="
   },
   "akonadi-contacts": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/akonadi-contacts-24.02.0.tar.xz",
-    "hash": "sha256-yv2cLcSOiNydB8hokupUoz7hm7IxuSp2z697p7ssLgQ="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-contacts-24.02.1.tar.xz",
+    "hash": "sha256-LvKss2DcbUMrj4vpQI+bQYJNZSrrxj4LayM6bjVcacc="
   },
   "akonadi-import-wizard": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/akonadi-import-wizard-24.02.0.tar.xz",
-    "hash": "sha256-uOi+zHJ/8DmxoHwtvFAmBvu6kg58/dlKwuE4YEhgAos="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-import-wizard-24.02.1.tar.xz",
+    "hash": "sha256-rXuSdjQOUFUwgL4rZ2ADM1tFLxhN3fEMqOIs3jRDuwE="
   },
   "akonadi-mime": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/akonadi-mime-24.02.0.tar.xz",
-    "hash": "sha256-y87KziJ7TIwuPzG34W4AF+II3NlOn1j4Dvk+K4jWkys="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-mime-24.02.1.tar.xz",
+    "hash": "sha256-GC6GK0jMGH8eKb+cAGNztoi7PVd00GQdcAvP6Yg4DkE="
   },
   "akonadi-notes": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/akonadi-notes-24.02.0.tar.xz",
-    "hash": "sha256-XmkE4VqAx5ompVQwa+Z9u06aYDk0uFzFzO1iYvcg3tg="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-notes-24.02.1.tar.xz",
+    "hash": "sha256-CzNK9ydi4Qc55O2DXC4J2digGMyCEjWggq5ZmlwV1ZM="
   },
   "akonadi-search": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/akonadi-search-24.02.0.tar.xz",
-    "hash": "sha256-5ks8Y5mDBfvZe5xgOTRfUUyDWFTd6vAwsFjR5MXVvKU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/akonadi-search-24.02.1.tar.xz",
+    "hash": "sha256-kqpvnensD1/3jS120r+yzXwh1GURF6Gaqld/4o/2ENg="
   },
   "akregator": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/akregator-24.02.0.tar.xz",
-    "hash": "sha256-tQHuTKvdim1+ojBLdhqfYYelzrwyf5DA4QHbQ9Z7TgU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/akregator-24.02.1.tar.xz",
+    "hash": "sha256-CpAp3MFPP9xuAQdSXUVFIZxIW0kkNwCWHAdXVeHey1I="
   },
   "alligator": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/alligator-24.02.0.tar.xz",
-    "hash": "sha256-6nB+uUCCB2VYtExrY6dZOkXm3uPnv0AaKuayMZl8dNg="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/alligator-24.02.1.tar.xz",
+    "hash": "sha256-N8Q4EofbrRLZ3dYh9SHO/T+i/msA184AmxulBghsfZU="
   },
   "analitza": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/analitza-24.02.0.tar.xz",
-    "hash": "sha256-dEK3gEwCyFP3hjfPtLVRqxCGBtLWcxVhfVY4RgeRN7I="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/analitza-24.02.1.tar.xz",
+    "hash": "sha256-UQJFTDDzarfcGYfddrzvxNV9hjrO9wSQyUB6BjL4mU8="
   },
   "angelfish": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/angelfish-24.02.0.tar.xz",
-    "hash": "sha256-gg5uLbHddShRmXb/q8QqdN+NzTuhiddDwdJUjUGX6aA="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/angelfish-24.02.1.tar.xz",
+    "hash": "sha256-duoPmm2k+T9LESWY6lFRSDq6RxfiTOdm1IClXlNLUBQ="
   },
   "arianna": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/arianna-24.02.0.tar.xz",
-    "hash": "sha256-+T65E6LQKhi3Jr8eUsIgUeqNCyXS6rtWF5GRXLwUQTU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/arianna-24.02.1.tar.xz",
+    "hash": "sha256-YC1pp6/aKNJhOsBTPFXxXUhJp+aRevpGeOlc+mOzWWg="
   },
   "ark": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ark-24.02.0.tar.xz",
-    "hash": "sha256-/xH+k1LYqoAgeiHz4CThi0A1y75omrqtIKkf42xFVGk="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ark-24.02.1.tar.xz",
+    "hash": "sha256-h0DluVd8xfTriJ2IClan0e54xCK/PjCwDB+qheQUj2Q="
   },
   "artikulate": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/artikulate-24.02.0.tar.xz",
-    "hash": "sha256-z6yNeJzcgJz5T/89stBR7d1OfU44o8FEwTfjMYZZyHw="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/artikulate-24.02.1.tar.xz",
+    "hash": "sha256-S0QbrR2YEVHAEa3e5IeLNFp4JL8xLVgrAAVxBCyC0M8="
   },
   "audiocd-kio": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/audiocd-kio-24.02.0.tar.xz",
-    "hash": "sha256-Y105es7pxSgSqfq7Z05W0v85EAHDWVlevtU9+v5Ex+0="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/audiocd-kio-24.02.1.tar.xz",
+    "hash": "sha256-LBrYOxFNF18NuN7w4LsaJS8/hMia+vQZmIH4NtNkJuY="
   },
   "audiotube": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/audiotube-24.02.0.tar.xz",
-    "hash": "sha256-XtbcPB9pF9Nabe2QxHlTgmPTxRlDs6c69KVGYCd7lUU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/audiotube-24.02.1.tar.xz",
+    "hash": "sha256-Wf4yFQWlvhrKkAMpCk4BJ19FT9n1O23Cuhi5jwrSzpk="
   },
   "baloo-widgets": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/baloo-widgets-24.02.0.tar.xz",
-    "hash": "sha256-mJnW3Gw4PB9mY8EHs5rmHyIy+oPUtjPnkvY77O10yxw="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/baloo-widgets-24.02.1.tar.xz",
+    "hash": "sha256-t94o5H1HD6uohAzAKHMYgoTDcHVyF2qguCHM9G+24+8="
   },
   "blinken": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/blinken-24.02.0.tar.xz",
-    "hash": "sha256-nNV5c4W0BkT3Mpl8i/DTH3BcBofC7PrrlCwz1LKp/XQ="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/blinken-24.02.1.tar.xz",
+    "hash": "sha256-Fcvs7wjLe+i4N2yivpjGvayghlGXievK0EGty3xNDhc="
   },
   "bomber": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/bomber-24.02.0.tar.xz",
-    "hash": "sha256-zVsnjGobs3GqH8mDL2M+bh3uCY7lzKmZGm0F8doeyU0="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/bomber-24.02.1.tar.xz",
+    "hash": "sha256-xepCm6PEOL0x56bvytyNysUo8If6Mes0ehLuwPvrdpY="
   },
   "bovo": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/bovo-24.02.0.tar.xz",
-    "hash": "sha256-Zg/oKI+3qHa9zHsWsRlCdYhTS9ax6ahpOrcA5tWRu+E="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/bovo-24.02.1.tar.xz",
+    "hash": "sha256-L+Nsa2HjMihoNSOHkHlncW0Vn92w+zcTXpLL2oh/jY0="
   },
   "calendarsupport": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/calendarsupport-24.02.0.tar.xz",
-    "hash": "sha256-5GW/iQNSQ5nGeenl2grUVOLF5aQnmgUWKzj4UlreUAU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/calendarsupport-24.02.1.tar.xz",
+    "hash": "sha256-+k4xpqH6cO4Lr2d4okMJM8Rqk4kysrUx9ex7bL+4gs0="
   },
   "calindori": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/calindori-24.02.0.tar.xz",
-    "hash": "sha256-umV2DaNV56clCRw93uOVdVtRpW/JN0ldbfj1/BTz3pM="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/calindori-24.02.1.tar.xz",
+    "hash": "sha256-xOl/NExr7+S4R/EWJ3mukUpA7qlPdIfnyH2g7MiG7AU="
   },
   "cantor": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/cantor-24.02.0.tar.xz",
-    "hash": "sha256-FBMsAkFCf1tcv7eXoPtaXEqoJh0RB8+emsB2+ilJOBM="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/cantor-24.02.1.tar.xz",
+    "hash": "sha256-VeQu+Ug3obXOQTma6S6GY2b4yElr9gyAs1kZ6U2JZ3g="
   },
   "cervisia": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/cervisia-24.02.0.tar.xz",
-    "hash": "sha256-5gfIBPqqhCWtnjKxPJW5X7CncpMVpFv7DFhKG5cwoNk="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/cervisia-24.02.1.tar.xz",
+    "hash": "sha256-qwpJzKV21zH3IvEKYy9amAwhVx+9wP5T5fJg9XJKBz4="
   },
   "colord-kde": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/colord-kde-24.02.0.tar.xz",
-    "hash": "sha256-tY9FuIWeFpT+xqgkowH+Uqb4yXhPg6xjGH80A+wLas8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/colord-kde-24.02.1.tar.xz",
+    "hash": "sha256-ne0O+XzY/YIAtmd0z9nls7CohSOprptlJHpyK0mHI9A="
   },
   "dolphin": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/dolphin-24.02.0.tar.xz",
-    "hash": "sha256-EO8oRZfij5M9i06tddAnWaFd9LzJKO0QtU+AZbdDElc="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/dolphin-24.02.1.tar.xz",
+    "hash": "sha256-WXuxLFOYS65zEM2l4G2+2DH9rhpucx9Vu8ZgtKWD2g4="
   },
   "dolphin-plugins": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/dolphin-plugins-24.02.0.tar.xz",
-    "hash": "sha256-ounGHd/4Q/CDpWhtmHGYQTdCh4Ne+PxeHRxDwi/RK+A="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/dolphin-plugins-24.02.1.tar.xz",
+    "hash": "sha256-aOZBKa+BqILPbcGEMp7WuW8yfHj4QLXjlEBtv+F8/qw="
   },
   "dragon": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/dragon-24.02.0.tar.xz",
-    "hash": "sha256-djHdZhIpgo1dziL+nHgsd3GD0GWd6vIs1n7UsroCRts="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/dragon-24.02.1.tar.xz",
+    "hash": "sha256-hRfiNTrDFxDIw12N4afzcMs9UPjyePf1kdDiTYxMDTg="
   },
   "elisa": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/elisa-24.02.0.tar.xz",
-    "hash": "sha256-7LZwAFqjux3Q9AfCrAMxxwMZTPsrE0ZJL/wzYbhAuLQ="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/elisa-24.02.1.tar.xz",
+    "hash": "sha256-WYXRta6FCieaYDp9OulyTkqLabEdExeQFU4BbmknqA4="
   },
   "eventviews": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/eventviews-24.02.0.tar.xz",
-    "hash": "sha256-BBSMQ4ZdpR2+x1ZfJ5exNv2jW2mAAnJwhu1O2HjlWrs="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/eventviews-24.02.1.tar.xz",
+    "hash": "sha256-Ge8W9VBcoUqBFt7Y6n0ysT5LYCxy/EY6XRrfYFOiUrY="
   },
   "falkon": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/falkon-24.02.0.tar.xz",
-    "hash": "sha256-vkmP2e9LF8+oB2HEeS54Ln3B3jqKhVtI/MfJx9c5Fhc="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/falkon-24.02.1.tar.xz",
+    "hash": "sha256-cmvSrXk7+pPvAUNKJW4tGrgQMbpj5istI4J95i8u+L0="
   },
   "ffmpegthumbs": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ffmpegthumbs-24.02.0.tar.xz",
-    "hash": "sha256-OD3G1adGS0Q8Fmy0KoUHtZYAaTVtooqRkH12qBeNefE="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ffmpegthumbs-24.02.1.tar.xz",
+    "hash": "sha256-lPhtbpsyxQVPfGzlRJ18amKPCoP7ELU3354Ev5Maoog="
   },
   "filelight": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/filelight-24.02.0.tar.xz",
-    "hash": "sha256-B/kH6/xe2zkYo+A5psEexc/GnQ8WhZ2iyBPJmKTCB5Y="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/filelight-24.02.1.tar.xz",
+    "hash": "sha256-nTJvc7jslG1n2guEEoSEcZf20JnoUZaNcKuozhiHt3c="
   },
   "ghostwriter": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ghostwriter-24.02.0.tar.xz",
-    "hash": "sha256-Eool2WoiDLrGcpw3vI/T7mb03CFERbYoLIbdIPnAhUk="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ghostwriter-24.02.1.tar.xz",
+    "hash": "sha256-HwOef0LGwgTwG+0UprNl+q/ML8RUMwJY/lImVASnknQ="
   },
   "granatier": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/granatier-24.02.0.tar.xz",
-    "hash": "sha256-TBfFtGeozCPc8+yjQhav4E29a10ixLgfuf8JnlJRcTE="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/granatier-24.02.1.tar.xz",
+    "hash": "sha256-r+bAlAVDh/xqy54mx0BlLLQDW40GbKaiKWI7hI/cv4Q="
   },
   "grantlee-editor": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/grantlee-editor-24.02.0.tar.xz",
-    "hash": "sha256-tyCZ7eCMHAN2hrgrtPM5A7qrHkA4A347Km3HBml2RmI="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/grantlee-editor-24.02.1.tar.xz",
+    "hash": "sha256-qx9KHDp1OBinXdicgfA9nkLkTVi3Gvh3YI1B13zDr6o="
   },
   "grantleetheme": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/grantleetheme-24.02.0.tar.xz",
-    "hash": "sha256-+3+rHO2P6RU+1KxuihNboTNfO2NDD35btgKIRz+evGg="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/grantleetheme-24.02.1.tar.xz",
+    "hash": "sha256-oAIXmh6KXQZ+tICYFQTNLEzysvcnLGZstLOZeHYKS78="
   },
   "gwenview": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/gwenview-24.02.0.tar.xz",
-    "hash": "sha256-A2BtPLoVIPBFVqySsqpEn4Xn2so2pjcWLTPAXsQrsLQ="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/gwenview-24.02.1.tar.xz",
+    "hash": "sha256-N2YUJq1VB6jrRENA7XyyiqGYPKUrNHH/8dKThe279sw="
   },
   "incidenceeditor": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/incidenceeditor-24.02.0.tar.xz",
-    "hash": "sha256-m0AagRUFacYh52OhxbfqB9JD5KlEXS4m3L6QoUaT45g="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/incidenceeditor-24.02.1.tar.xz",
+    "hash": "sha256-MFvxp4yUEEttrmmStC8XZUSbceeaye5mHhtPsXyFIKM="
   },
   "isoimagewriter": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/isoimagewriter-24.02.0.tar.xz",
-    "hash": "sha256-SEu12ZECvXRGfBnHb1o7Ezbg9SlOBKNBEKExCucVn4Y="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/isoimagewriter-24.02.1.tar.xz",
+    "hash": "sha256-X6e0h5LuPkm1fmdhmfLy0iRAfDQtS50/jrZskGaKlmE="
   },
   "itinerary": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/itinerary-24.02.0.tar.xz",
-    "hash": "sha256-bWOrwT/OTNCATb/BybfGWVuDOXJ1i9jYIH4SEKXnyUM="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/itinerary-24.02.1.tar.xz",
+    "hash": "sha256-MxXLjWKkWsqBaiBNT/7oJuSJ9zyLY5hFgLfghY9VUYY="
   },
   "juk": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/juk-24.02.0.tar.xz",
-    "hash": "sha256-YvDfysvTJJ8vmxPxUdTRbuLClnWvBJxAnt6st+nxiIE="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/juk-24.02.1.tar.xz",
+    "hash": "sha256-xsBd/xGDy7bd1zBIIaHLeEvjehaqVizBbKBwu4N4m0U="
   },
   "k3b": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/k3b-24.02.0.tar.xz",
-    "hash": "sha256-LySlx84ps6u88Uqu6SR2I1bc8PXqwAUfg6kt75v3tRw="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/k3b-24.02.1.tar.xz",
+    "hash": "sha256-DFIJiptgT1kK6w1gdIioF3y/zIwr/4TO4qEYhtgk+bY="
   },
   "kaccounts-integration": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kaccounts-integration-24.02.0.tar.xz",
-    "hash": "sha256-V4hCWECE4TYop68C52cxIiRMmgMISoUmYfTc5MVtgA4="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kaccounts-integration-24.02.1.tar.xz",
+    "hash": "sha256-5WjxGpeRnG7dMR3pOyAbFTKAOT7Re45aGIbpq/DG5ow="
   },
   "kaccounts-providers": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kaccounts-providers-24.02.0.tar.xz",
-    "hash": "sha256-z2WVslg4ebPwwNFFnczrD5L6MqNknxsSzQ8eAinJV+4="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kaccounts-providers-24.02.1.tar.xz",
+    "hash": "sha256-LTJQuEMXQd05p6NfqQxnqY0SLBHeq8QKzG+sRonTJak="
   },
   "kaddressbook": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kaddressbook-24.02.0.tar.xz",
-    "hash": "sha256-ZJFhF7zun1SSOrvOr8cz2wClLDjjnhvJHi3Ibqq8yvU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kaddressbook-24.02.1.tar.xz",
+    "hash": "sha256-vQAs0OMNryyfN9vrIw2qVr93jEiYdjtdhe02Vq/9Rcc="
   },
   "kajongg": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kajongg-24.02.0.tar.xz",
-    "hash": "sha256-Z+jXMjDPZA7aHP3bi2z7yObjiiRibr5yylyZYxNdQws="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kajongg-24.02.1.tar.xz",
+    "hash": "sha256-3drKhXpjfmZLYWKdlEKbBF2YwjreZQ2mEReln6vH4FE="
   },
   "kalarm": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kalarm-24.02.0.tar.xz",
-    "hash": "sha256-AbS/EHNMlH4ohh34ljytllPYsWyFXRvjk3y+v58pWeY="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kalarm-24.02.1.tar.xz",
+    "hash": "sha256-PilL0nOvkRrbeQwU7p5/mXimsTmlTXab6/DTba2VV9k="
   },
   "kalgebra": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kalgebra-24.02.0.tar.xz",
-    "hash": "sha256-j6aVhapPHfbSCb4lpWVfjsIRbp9SX/h7tx6EYFAmKM4="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kalgebra-24.02.1.tar.xz",
+    "hash": "sha256-Kz/FUDjtTC+ORzKVaBmWJo+793OOboE2A4Qnqz+CAng="
   },
   "kalk": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kalk-24.02.0.tar.xz",
-    "hash": "sha256-ncrjNBgbtfUMDmSSV9M9xgSTnydDG3lvGlx2+eeV26k="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kalk-24.02.1.tar.xz",
+    "hash": "sha256-1vhwf/coKYE+f2HD2AK63wWnqshaHaKPPUX9SASXvi4="
   },
   "kalzium": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kalzium-24.02.0.tar.xz",
-    "hash": "sha256-DuxtcEFqvoJrNygPdOBelvKftrmxtkV1W4CPxYptlak="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kalzium-24.02.1.tar.xz",
+    "hash": "sha256-1MZNdbwbpJBt6RDTaxer6sWx48768qCmYAnQsIQchMg="
   },
   "kamera": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kamera-24.02.0.tar.xz",
-    "hash": "sha256-fU41VmagdArlDX0S/hkHG9RYfslutZvB1l2KWO1w5zI="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kamera-24.02.1.tar.xz",
+    "hash": "sha256-y2suGBR+WwIw4yn+oxPCm7uramx5Prvq6uRjt7gvBJM="
   },
   "kamoso": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kamoso-24.02.0.tar.xz",
-    "hash": "sha256-epVdLiMWDVUEG5bfdWdPLxPeJswJSwXUV3nBOY8/mrk="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kamoso-24.02.1.tar.xz",
+    "hash": "sha256-r38iH4VMzMr88L2oidf3I0+j3rZQTZzQoUAFJGGXeCk="
   },
   "kanagram": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kanagram-24.02.0.tar.xz",
-    "hash": "sha256-Wgc3wkuJ16RmH73J80NXdOPhe7bbRA60NwjYH0zagZU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kanagram-24.02.1.tar.xz",
+    "hash": "sha256-iVIkBFT9j1ZVTNQEIjWQII3eXhpqPB/88Ej6XEI7jJo="
   },
   "kapman": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kapman-24.02.0.tar.xz",
-    "hash": "sha256-VFzdFH0GWG1Q624zmQIWob45ezlIr9rWeEoeo769meg="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kapman-24.02.1.tar.xz",
+    "hash": "sha256-NBv611cCzlXRrP+yg0JMr78chI9woLveHnBFCYF19Vo="
   },
   "kapptemplate": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kapptemplate-24.02.0.tar.xz",
-    "hash": "sha256-3XWfNVlUBrackatgMith9yyKtVsSgiIrFm1dvaOu3uE="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kapptemplate-24.02.1.tar.xz",
+    "hash": "sha256-8pdu/O5XCAJqrcLTstBfsB6QVRmhnvr8L2NbLzvCYq4="
   },
   "kasts": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kasts-24.02.0.tar.xz",
-    "hash": "sha256-4h2+kJakb87fk7k+Ole7HYihk5zAUULk2ckN2XCHuec="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kasts-24.02.1.tar.xz",
+    "hash": "sha256-AebMpVbJpnzPl+S1xlCxrDjfvVcFeY1Rx89tPz7gf0w="
   },
   "kate": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kate-24.02.0.tar.xz",
-    "hash": "sha256-mx78zPTjbvzbwuraY5nNgSjOGHoZGCQAMTBi917jX0g="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kate-24.02.1.tar.xz",
+    "hash": "sha256-y3h/fUm7D5ubUL+A2DurGnE9MlqWvwnhBvY3IfwbAS0="
   },
   "katomic": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/katomic-24.02.0.tar.xz",
-    "hash": "sha256-HCADUPHtuGBJCGpi8+r0NZEOmqXOfinMhanEgCcgCP4="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/katomic-24.02.1.tar.xz",
+    "hash": "sha256-7QFXSPHe/FYsjWoruEpok4F+0OGK8vFAlAD/4H8G+zs="
   },
   "kbackup": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kbackup-24.02.0.tar.xz",
-    "hash": "sha256-6zDO95RC7D1Dp9mrAYtRdeuez8PDKmm65PpNdlxekr0="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kbackup-24.02.1.tar.xz",
+    "hash": "sha256-q1r+bz9oU3zPDILId9Kizm0na90a0wNRH3J/Cq8vS34="
   },
   "kblackbox": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kblackbox-24.02.0.tar.xz",
-    "hash": "sha256-hw6ONCbMwWRN3+9614vM14m6Ctvl7Ws0P95cRRYQc00="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kblackbox-24.02.1.tar.xz",
+    "hash": "sha256-nMiV7Sk18WJasbnRrrsZxNpmpBHULXkUXUk2ZdPqgOQ="
   },
   "kblocks": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kblocks-24.02.0.tar.xz",
-    "hash": "sha256-vVvjY9VfjNWMhNgA1y3n+nvx73p1GszZTJ6ZJyd1fXc="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kblocks-24.02.1.tar.xz",
+    "hash": "sha256-StHJx7ALrk+fgwkwxFQThR6jTlPnHnnScvQB1UMfBh8="
   },
   "kbounce": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kbounce-24.02.0.tar.xz",
-    "hash": "sha256-X1B1rBy1D4CEcBT7VpRmIUS2C0in4KaZsESVFHH+8lg="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kbounce-24.02.1.tar.xz",
+    "hash": "sha256-1hxzgufyV2qsjBl8Wi9uPi/kNVULpRdiwebE+wTPflw="
   },
   "kbreakout": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kbreakout-24.02.0.tar.xz",
-    "hash": "sha256-K5JdwUuyO517uUFIozLfaYcZ8ki8P0htz3rFqn/UHl4="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kbreakout-24.02.1.tar.xz",
+    "hash": "sha256-7hoh48B2wh8Jg2r55GY8yFOp3XXMad0pbd77OLPcn6o="
   },
   "kbruch": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kbruch-24.02.0.tar.xz",
-    "hash": "sha256-hC8ZOpn3PJ9dZQLA+czyHiORVx/tyJDi2D6QdM8m38U="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kbruch-24.02.1.tar.xz",
+    "hash": "sha256-3MVi4m1fRdJWcNM+4LaU6ufv6rqwi4kzBzW3O9b9LAU="
   },
   "kcachegrind": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kcachegrind-24.02.0.tar.xz",
-    "hash": "sha256-4R1RYWUKVNsiREsZPVIee9jJcLiwguFYgxmDdG4BZfU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kcachegrind-24.02.1.tar.xz",
+    "hash": "sha256-dN2VjEOSSbv7PmqPCCEHM4h6b5gVftMv5sJv1AL3EBU="
   },
   "kcalc": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kcalc-24.02.0.tar.xz",
-    "hash": "sha256-wZtjnWMr7h7fPp+DLnmB9WcaErRktGeLpS27H/8vx8U="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kcalc-24.02.1.tar.xz",
+    "hash": "sha256-38lcv0vVrLBgCs6tpL9hNrC+YfPOU9KzXsKxSnjhrK8="
   },
   "kcalutils": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kcalutils-24.02.0.tar.xz",
-    "hash": "sha256-gXZ+Fd8kNPxDpcfLi/YAKrNVDONP1Hxtzlh49VuSuD8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kcalutils-24.02.1.tar.xz",
+    "hash": "sha256-Q+2OQnGYKfDri64BexbADMLiEErmMcDBumuArKtT8bY="
   },
   "kcharselect": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kcharselect-24.02.0.tar.xz",
-    "hash": "sha256-YTDOe4n1Fk/taeiZ8xuxGMgASKIRYdLiK5Tlwg0GjaQ="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kcharselect-24.02.1.tar.xz",
+    "hash": "sha256-EfUYASrSHsT+9a7FV59b8pEqFaMEWoKfp2o54b6t5qE="
   },
   "kclock": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kclock-24.02.0.tar.xz",
-    "hash": "sha256-WwoZuoUwZ6JhdpKbxlOVAx3pMFVVZgYtGaLuFPiIYkY="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kclock-24.02.1.tar.xz",
+    "hash": "sha256-r4ILyI1KJrI19WCDp0cEkfto/RfDaC3zQi8Q0jYj6Fg="
   },
   "kcolorchooser": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kcolorchooser-24.02.0.tar.xz",
-    "hash": "sha256-Nic2tvUMD2EJtroFjRQUmifhaRgkvGQj5xhkldpBkSM="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kcolorchooser-24.02.1.tar.xz",
+    "hash": "sha256-/Bh1XVUd2YrALSrefK4XEqJsnuRZ49XvvDSkR0SUAs4="
   },
   "kcron": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kcron-24.02.0.tar.xz",
-    "hash": "sha256-X/hkM7avtAUMKEsfFf0lCBcreZWoZnY24nQqjZvPFaM="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kcron-24.02.1.tar.xz",
+    "hash": "sha256-Cjx+APBWa98vPPbFdAHveMw8fipluaBV3akHVmCUdoM="
   },
   "kdebugsettings": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdebugsettings-24.02.0.tar.xz",
-    "hash": "sha256-Kk1DsnxGel6uS/pWyxecBnflYyMipu+qHjmCVBctZqo="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdebugsettings-24.02.1.tar.xz",
+    "hash": "sha256-CyRldtyEjsf8Ltj+Kk1KisZxRbZ79A/c/xXvEJwzzzo="
   },
   "kdeconnect-kde": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdeconnect-kde-24.02.0.tar.xz",
-    "hash": "sha256-2VxbNpPRS5VPsJoi0vwXEoFapCR0DL9YcsQKWe1CTg0="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdeconnect-kde-24.02.1.tar.xz",
+    "hash": "sha256-tbmGuvBKUculcFEJrzQaGOz6FO7aZV7wgd5GzJDr7OI="
   },
   "kde-dev-scripts": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kde-dev-scripts-24.02.0.tar.xz",
-    "hash": "sha256-AOmjoUY5frMMQ2Oj1fsQVc0xDd5oRfBrWApgVmZ5tp0="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kde-dev-scripts-24.02.1.tar.xz",
+    "hash": "sha256-/yL24UopmlijxngpHG32JGZ1t1H9dz57wPONX/hpY44="
   },
   "kde-dev-utils": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kde-dev-utils-24.02.0.tar.xz",
-    "hash": "sha256-Ug4MlnOicBnOkGkHT3j/cujRiQ7ho/LpfFJyRPcEMUk="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kde-dev-utils-24.02.1.tar.xz",
+    "hash": "sha256-K+/xZoe65DtnczsXmz89DQiBCtnIwslq3fEKXeb136A="
   },
   "kdeedu-data": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdeedu-data-24.02.0.tar.xz",
-    "hash": "sha256-Cl2akMYUdnn/NszV0PhgdZjj2J/RPlKawdZQksoX728="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdeedu-data-24.02.1.tar.xz",
+    "hash": "sha256-FHoiFRO4qzNGCLOPrcgzagFJJdo9urw6PDePgxd7EBU="
   },
   "kdegraphics-mobipocket": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdegraphics-mobipocket-24.02.0.tar.xz",
-    "hash": "sha256-fCNtFpIZJqvY0TuAk0UG0XglrsSU99gUEEjmKydIS4I="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdegraphics-mobipocket-24.02.1.tar.xz",
+    "hash": "sha256-eT3rVPR8V8s8+aQXSFzfvTF4K+UZu94vWyIGqwLXE6g="
   },
   "kdegraphics-thumbnailers": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdegraphics-thumbnailers-24.02.0.tar.xz",
-    "hash": "sha256-GsDPFZgrHXcBKxOEXlJUwjCiYi0q/Z76d2lfaGElaos="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdegraphics-thumbnailers-24.02.1.tar.xz",
+    "hash": "sha256-qaoCAV9OOBYU/+RHANJ5Q0TngI0kVLs80QSjNb6BiXE="
   },
   "kde-inotify-survey": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kde-inotify-survey-24.02.0.tar.xz",
-    "hash": "sha256-UPil14KZALlNu9dtqTCFR8qggT3pMz3G54GV6BqG0+E="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kde-inotify-survey-24.02.1.tar.xz",
+    "hash": "sha256-NHjq4xJnIm3K357flSvR+fQIESxDTzhTg6zK0c3yl3w="
   },
   "kdenetwork-filesharing": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdenetwork-filesharing-24.02.0.tar.xz",
-    "hash": "sha256-I/MUm00NLduYUFRDJm6vzYy1+XAJ6RMnG5QSyTaczm0="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdenetwork-filesharing-24.02.1.tar.xz",
+    "hash": "sha256-Hw6RdVS/bIup/CxwQ+TRH1wLvwMCU9VD8FjZ/45subc="
   },
   "kdenlive": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdenlive-24.02.0.tar.xz",
-    "hash": "sha256-E1qR6ZGOtjH+uCK2eGJfNVfpW2pehr3h06wd9jQBUUY="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdenlive-24.02.1.tar.xz",
+    "hash": "sha256-H3dHUlmoLFui2U7pdfSuqpsMDbElUEwT73GLFAhXUFY="
   },
   "kdepim-addons": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdepim-addons-24.02.0.tar.xz",
-    "hash": "sha256-AOUdgRbc1HIqLhaPhwBPYjyIyHX28CvbeMFmrBoLfCc="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdepim-addons-24.02.1.tar.xz",
+    "hash": "sha256-svL5Zz5fbHvc8eoG3RGQvBDLot/55qyHqgubGRuhrcU="
   },
   "kdepim-runtime": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdepim-runtime-24.02.0.tar.xz",
-    "hash": "sha256-XNqKp7PYp71Sb73SDfMPVqLc8QqETYim9xuRIgZ7qzU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdepim-runtime-24.02.1.tar.xz",
+    "hash": "sha256-ryPUPhEt6uXGLr+EEXlhRjFvfC5L0vIQGiRqGe3lhVg="
   },
   "kdesdk-kio": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdesdk-kio-24.02.0.tar.xz",
-    "hash": "sha256-MMdAZZqtHukDGhnCo9dV/Xj4HwK7rCfJkM6iLezDoFk="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdesdk-kio-24.02.1.tar.xz",
+    "hash": "sha256-AskK0wqOfEd7FNgwF666l9kEGvZOVZu44oe4Eyw6JEU="
   },
   "kdesdk-thumbnailers": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdesdk-thumbnailers-24.02.0.tar.xz",
-    "hash": "sha256-RPh4+mDQPeznFzSnu5LqN3Y+2hDWAjll+rFfwuojMwc="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdesdk-thumbnailers-24.02.1.tar.xz",
+    "hash": "sha256-k9f7/AoAWhStHwk6IPuWOT2erCVSMXbpqpdfxFg+K4M="
   },
   "kdevelop": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdevelop-24.02.0.tar.xz",
-    "hash": "sha256-ICrN+1Oxve65kV6rGgBW0ZAEDYgJA4lQvy7I1E+oHhk="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdevelop-24.02.1.tar.xz",
+    "hash": "sha256-X8ySelNvTx5IrvvmMwNZPoix9mV+WItiQOlhazNKno8="
   },
   "kdev-php": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdev-php-24.02.0.tar.xz",
-    "hash": "sha256-c/SC70a3Glz7eLiGwmz9DWGCdISGgeYEdSj6ypbQ60k="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdev-php-24.02.1.tar.xz",
+    "hash": "sha256-FaJvtKymwgrB4AN3MWLbIlGnBzIuQ+8dZDQewsnT+Hs="
   },
   "kdev-python": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdev-python-24.02.0.tar.xz",
-    "hash": "sha256-qUsJfgsXoHBxWlG4f98xRWZ2frnlNaJ4Dt81Jl007Cs="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdev-python-24.02.1.tar.xz",
+    "hash": "sha256-ZisKfm1q/LGiDQNqe2Q7gXdEqW5Qz9bbLq8WxV4gUhk="
   },
   "kdf": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdf-24.02.0.tar.xz",
-    "hash": "sha256-vJ9rEouG1m7ZwRjndGSQQKY0L7dnsyfc4h9UuK3Mw08="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdf-24.02.1.tar.xz",
+    "hash": "sha256-OGla8UQrbjUS3F7xekOun8zrLKsvOeLijqlypOwI2kg="
   },
   "kdialog": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdialog-24.02.0.tar.xz",
-    "hash": "sha256-d0odH6oCW2iC72XoBtc6fRlWClYOnBzerMAgKwHwvd0="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdialog-24.02.1.tar.xz",
+    "hash": "sha256-GwPx/cJcCT6sXAjSWAYYu7L/r47xADr7ROaw7J9+Bwg="
   },
   "kdiamond": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kdiamond-24.02.0.tar.xz",
-    "hash": "sha256-0yKSPPbSn83ewxlPF55FtEAZXG3eXR7lsypLvxx5epo="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kdiamond-24.02.1.tar.xz",
+    "hash": "sha256-6jCltKvGAn2CCUyYPy6tIh0sMsgctESARL6s+Rnc/gg="
   },
   "keditbookmarks": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/keditbookmarks-24.02.0.tar.xz",
-    "hash": "sha256-GLvT+HyhIlVIjXDipYiS6YOFeB8epo/qvU/JZXtVhgc="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/keditbookmarks-24.02.1.tar.xz",
+    "hash": "sha256-dO9GQSe91o8og0MEbVcvOEsiyg/qAEROqEMbcg7bc+A="
   },
   "keysmith": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/keysmith-24.02.0.tar.xz",
-    "hash": "sha256-6V+kxaDMZuzGYoOSueOiszrN2zLZ/gV5JTQZWYv7IEs="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/keysmith-24.02.1.tar.xz",
+    "hash": "sha256-9lSvHpgX1olv72bkVSbyimahE6kycsibnb0tF/jjHGo="
   },
   "kfind": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kfind-24.02.0.tar.xz",
-    "hash": "sha256-wrhF9gz4z8VH7RgAZ/IdrgFdzKySLTxwXesLn1lDAAc="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kfind-24.02.1.tar.xz",
+    "hash": "sha256-MFXVeG+XsxqetpS0AdgxiSLm979QyJS7KohOWUj/gPQ="
   },
   "kfourinline": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kfourinline-24.02.0.tar.xz",
-    "hash": "sha256-liP40dPpgoBr5uFnzHsCD7FDjHKOTemIQNV6lHrto3M="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kfourinline-24.02.1.tar.xz",
+    "hash": "sha256-OGAJRLhtB5tOGKpAbBo3c+gPpk/RpmRSvMXJoFBLZps="
   },
   "kgeography": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kgeography-24.02.0.tar.xz",
-    "hash": "sha256-CUVKlvIaUF7aC20A/Fx3GvR48/3FivY3/iRBHobxcbY="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kgeography-24.02.1.tar.xz",
+    "hash": "sha256-cMjrZ8cY6QHV0alE4iS8e3M2cOm9IrbRkLZ/JQJwd9s="
   },
   "kget": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kget-24.02.0.tar.xz",
-    "hash": "sha256-Z4sJOWwHfKt/5euOJ1qFNElSKfMZW6xmldicV7i+Ru4="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kget-24.02.1.tar.xz",
+    "hash": "sha256-kavgEdXSwPZX1Z0gVw6apmEmDQ0fEIG/70nlPS0Cc7c="
   },
   "kgoldrunner": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kgoldrunner-24.02.0.tar.xz",
-    "hash": "sha256-9kEUKpW/YFUC5/8RwunRMGr/A0R8sUG1IlIK1pNDcBk="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kgoldrunner-24.02.1.tar.xz",
+    "hash": "sha256-ihBI+OwqJl6OV03acT4cidobbTHVW250igvG4jLodoM="
   },
   "kgpg": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kgpg-24.02.0.tar.xz",
-    "hash": "sha256-G+Jh+Gax8epW0a18wGuRsC54TQHsB+lER5vgQn32eAc="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kgpg-24.02.1.tar.xz",
+    "hash": "sha256-lXOR7KtG0HC/vL6wwmiHRhrH2hFKziJqXWdxqJZDBGM="
   },
   "khangman": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/khangman-24.02.0.tar.xz",
-    "hash": "sha256-DsBcVkZmEepMS4ba0vkNRtcyUp/R1LdJsPLxTS82pvE="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/khangman-24.02.1.tar.xz",
+    "hash": "sha256-CRb2ZXqcDII2SvUgiGXEoBFoDyNw5tmPb2hHyHvW5Gc="
   },
   "khealthcertificate": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/khealthcertificate-24.02.0.tar.xz",
-    "hash": "sha256-sDjTpv1FzmwZuA0piU0P/gNvfLr4/Pz9kopfui5rpEk="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/khealthcertificate-24.02.1.tar.xz",
+    "hash": "sha256-e6O8EK39YcwJNuQpMGMppymzSPVvFQd2il2dzp5eLAA="
   },
   "khelpcenter": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/khelpcenter-24.02.0.tar.xz",
-    "hash": "sha256-+YKRgB6Do66nVs5jdciWRs7dcVaW9oypDFpXOHGSkMY="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/khelpcenter-24.02.1.tar.xz",
+    "hash": "sha256-+UZLX3+obVIFY0bfAni2lGEVEp19X/quyB/seE3W0RQ="
   },
   "kidentitymanagement": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kidentitymanagement-24.02.0.tar.xz",
-    "hash": "sha256-/dTFko8UEiwztPl891h6B2iebRaLOlajG3+mDXFJBIw="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kidentitymanagement-24.02.1.tar.xz",
+    "hash": "sha256-yuz+AH6ypNSJE93/6KHvBQVqayWTAcgBKAUiU0DkZj0="
   },
   "kig": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kig-24.02.0.tar.xz",
-    "hash": "sha256-YLxI/ZxPybmoMP+AaZPfrLn2SwKmPgzliKFgxT+m4KM="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kig-24.02.1.tar.xz",
+    "hash": "sha256-AAy4xamCvZc65VqfJ1AuMDWahT7BB88UGlaH3atn03k="
   },
   "kigo": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kigo-24.02.0.tar.xz",
-    "hash": "sha256-atr3+yK3mBjznenbcHoWuQXUYZs9++727QtggeF8Km0="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kigo-24.02.1.tar.xz",
+    "hash": "sha256-meIDrWp+qdOWt0OAw8l0f+feZAcSLbsWkNuwMw2vS54="
   },
   "killbots": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/killbots-24.02.0.tar.xz",
-    "hash": "sha256-zMNzSdlypSwSFMofkSHSwSJOTWyUHNSjLGppBcuemaE="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/killbots-24.02.1.tar.xz",
+    "hash": "sha256-xHrFUsD0MMgxTPVw0LpsOh+LJFQydYgyr88+iuKN1to="
   },
   "kimagemapeditor": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kimagemapeditor-24.02.0.tar.xz",
-    "hash": "sha256-hBaiCHRMZ3WeK4eKnq+9fXCjwIdKJfTmUENVW4ip0ao="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kimagemapeditor-24.02.1.tar.xz",
+    "hash": "sha256-z2Zp7Bu2w7vrj2eHg8keERYIDio1R8qV/nhhdjCKPEw="
   },
   "kimap": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kimap-24.02.0.tar.xz",
-    "hash": "sha256-5e/gxzfBjDArMThPQ4HcgmaNZw346uPfGFPdieojtwY="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kimap-24.02.1.tar.xz",
+    "hash": "sha256-VUKXCdOYElGWvD6RWO32yfdVznFKs8/13zmPO7F5sO4="
   },
   "kio-admin": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kio-admin-24.02.0.tar.xz",
-    "hash": "sha256-z/rba5KQk00NkBpghVByi/X62o4FDY5fqUHDdaCHmQ8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kio-admin-24.02.1.tar.xz",
+    "hash": "sha256-xFObulemM3xn7Zg431fCShW4izNObBG1uiTz2WO9czI="
   },
   "kio-extras": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kio-extras-24.02.0.tar.xz",
-    "hash": "sha256-gFWWyWqZtSKzrraZK8YMFKHEzNIA4CcUPo3tlIyZYt8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kio-extras-24.02.1.tar.xz",
+    "hash": "sha256-f3CKF0U5k9t5ffeNU7aK81hsuhXg24iCjamsuDIKDMA="
   },
   "kio-extras-kf5": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kio-extras-kf5-24.02.0.tar.xz",
-    "hash": "sha256-LxNk8XF1rRzhkbw/IhaFRX9YZKVH1GzLcqYWKD2ArFM="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kio-extras-kf5-24.02.1.tar.xz",
+    "hash": "sha256-9bpXRQKYgyksaHli0CVJUQ2rR3TocMaePWi4oy+z1gk="
   },
   "kio-gdrive": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kio-gdrive-24.02.0.tar.xz",
-    "hash": "sha256-ufTXGrtoZydhFRrmapKugC8If0Ek6n5qpzZUIiRxkBM="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kio-gdrive-24.02.1.tar.xz",
+    "hash": "sha256-rA4vcxKhr3QVMnSXddTsrifrr2HhUp7CXfao2k2zVd8="
   },
   "kio-zeroconf": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kio-zeroconf-24.02.0.tar.xz",
-    "hash": "sha256-vW6U6K+KGlgDznjyDUDMxpR9tOsE0Gf5Uj18hpYfcU8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kio-zeroconf-24.02.1.tar.xz",
+    "hash": "sha256-+WychaU9d7PnW4G9sIBKozcXbK4QOhZMFMi3Xdn4k1U="
   },
   "kipi-plugins": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kipi-plugins-24.02.0.tar.xz",
-    "hash": "sha256-5Auv82sYRsypHu0KD2P2Wr9pfXYTxHM4iWJv8fPSGWA="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kipi-plugins-24.02.1.tar.xz",
+    "hash": "sha256-PvquTKHj4eKhwuHhYzm4Fr+f/OBPVZRMFrEF+iZlIz0="
   },
   "kirigami-gallery": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kirigami-gallery-24.02.0.tar.xz",
-    "hash": "sha256-G+pLnuMoJU72rsrdrh0djhHAADThWHvIKyp2yi5iTIw="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kirigami-gallery-24.02.1.tar.xz",
+    "hash": "sha256-o6rFvbPcYvVFMJBVqzo3KNpJRbBQeMpQrdOecYPSqG0="
   },
   "kiriki": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kiriki-24.02.0.tar.xz",
-    "hash": "sha256-4pbohCmFYQdO+KTAJ48/fCHxRFtkXW3H3mKVZe7FBrs="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kiriki-24.02.1.tar.xz",
+    "hash": "sha256-N97jHeNyHseLr34xI4EV804yaJsDfan0Vuw37cFZ0hA="
   },
   "kiten": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kiten-24.02.0.tar.xz",
-    "hash": "sha256-et2aCiEidVKUc8Wc5OR/hsmHu8ITY9yW7VwjvglZYYE="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kiten-24.02.1.tar.xz",
+    "hash": "sha256-An2TME2mmk+hlGGiQ2u5WH3aYCa/TJFq3zvJeIcWoJk="
   },
   "kitinerary": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kitinerary-24.02.0.tar.xz",
-    "hash": "sha256-4YxiNjYH3XaQkunhX84+ACUNcG940cfYrSg1vGINl3o="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kitinerary-24.02.1.tar.xz",
+    "hash": "sha256-kDEuG3nNpcTEDQ/yjMViy+0syWHD1m64Kh70uvhLsVg="
   },
   "kjournald": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kjournald-24.02.0.tar.xz",
-    "hash": "sha256-pPTLND/FD6UK7BYfKP9VznALXC9Fo4qrJtTNBCAounQ="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kjournald-24.02.1.tar.xz",
+    "hash": "sha256-FDF9ktlqZ0SNcq0M+psx/7dM0uPjFpnEu3XzR6wwYf4="
   },
   "kjumpingcube": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kjumpingcube-24.02.0.tar.xz",
-    "hash": "sha256-qfwO/Kmzxdalf+u0cS9pIXCJIt9HqfBG8IXVx5OoS7w="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kjumpingcube-24.02.1.tar.xz",
+    "hash": "sha256-VAhjxtdL+eX3Ipa8XP4GA6CgMxKKAtStsdzORyU96wU="
   },
   "kldap": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kldap-24.02.0.tar.xz",
-    "hash": "sha256-AT2c3pSO84rZRRAT5FTDnbcD/Hw3w6kWcKmp5kX8VRo="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kldap-24.02.1.tar.xz",
+    "hash": "sha256-YcToycp9CFxEPgxpJigLA9SfDlzjdKZKJDR9nVnsx6M="
   },
   "kleopatra": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kleopatra-24.02.0.tar.xz",
-    "hash": "sha256-uRSG9ACE2IaCQzkwHfA434RjKj2BuSVNh3NCQNzZmDg="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kleopatra-24.02.1.tar.xz",
+    "hash": "sha256-b4eQAX3mQyX/3vLij9VFC6ZRC1KXm0hrHbO/of3QK5U="
   },
   "klettres": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/klettres-24.02.0.tar.xz",
-    "hash": "sha256-uNL+4Ady3ZLHyE9S+ACb2AFoFKdd35DZh3bgbsrvYXs="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/klettres-24.02.1.tar.xz",
+    "hash": "sha256-3gHuaRDld2u2vhwci6O6BMvIgjKiRTDXcZeMKdFaYLM="
   },
   "klickety": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/klickety-24.02.0.tar.xz",
-    "hash": "sha256-4FiMmSQgF1bo/jgTZwb+32K8hGLZj2SBkr1denfnNag="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/klickety-24.02.1.tar.xz",
+    "hash": "sha256-EREo5aYkjqCldP0pr1rKdL6QfGGjABFaOoIR2hbTk1w="
   },
   "klines": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/klines-24.02.0.tar.xz",
-    "hash": "sha256-72TJ5HDcHIUcEAEqj6v10HEXBIfyfzyzHMahNgs8so4="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/klines-24.02.1.tar.xz",
+    "hash": "sha256-4kEckyk0Zm3Z08EjurtwoLBbI4lPGH9zF0ItFoR4J0Q="
   },
   "kmag": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kmag-24.02.0.tar.xz",
-    "hash": "sha256-puRJXUqvOU7mDf+L3ysEtLLT1vzeEJJdiP3cn2WTK/w="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kmag-24.02.1.tar.xz",
+    "hash": "sha256-lMN4nlaxv05D2iXPS+oyL9Rn6tNJgZFRlXyAag6QSuA="
   },
   "kmahjongg": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kmahjongg-24.02.0.tar.xz",
-    "hash": "sha256-aNWmPk40em68VIQjXhA6CEACqxYmNcBfCchx3zzdBh4="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kmahjongg-24.02.1.tar.xz",
+    "hash": "sha256-3FlxIZIXOMEn7yj0NBSldr0JBKQlKQL2OmUTbS0aKEE="
   },
   "kmail": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kmail-24.02.0.tar.xz",
-    "hash": "sha256-NDPwJTVR00DYoPI8HyotUQbhJ+DcnIK+PTCz/DPDd5k="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kmail-24.02.1.tar.xz",
+    "hash": "sha256-yK7BFWRCqrP8l/iHWposWCW9Eg0hcho3reIrqsyOBdE="
   },
   "kmail-account-wizard": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kmail-account-wizard-24.02.0.tar.xz",
-    "hash": "sha256-MShJn7xViuFpGQWgGr+OKPcQQm4VrPsoaOHKcWM0XcE="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kmail-account-wizard-24.02.1.tar.xz",
+    "hash": "sha256-1OeMfxGjKjI85Hw/ew4+N7g8mAivTxxMar5rqZw+ekY="
   },
   "kmailtransport": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kmailtransport-24.02.0.tar.xz",
-    "hash": "sha256-0esQYgfuuIss9vKzs6R++IGD21ATmpFJ26DXKAXgT6o="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kmailtransport-24.02.1.tar.xz",
+    "hash": "sha256-Vk1q7+VVk0nV3IUTzbVx7Sx0jCoN0YXfycdb3BMadLs="
   },
   "kmbox": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kmbox-24.02.0.tar.xz",
-    "hash": "sha256-bqjqQ0g0idRGf1KBYxAa9PsZ6jNmTHKFeyq/6KRo9AM="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kmbox-24.02.1.tar.xz",
+    "hash": "sha256-fx5uxNwNi6Hmpb88ml0tMUvj0CfgrG74Pwf2elm+pNo="
   },
   "kmime": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kmime-24.02.0.tar.xz",
-    "hash": "sha256-TxJRSE8Ytu7fYskhmlBOY1feWt/0AWzDSnFN0Mt0gGU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kmime-24.02.1.tar.xz",
+    "hash": "sha256-OQSnGenx2F+ozgueZ2PZvu+BOsR3kGMCh8SiMTn6cdY="
   },
   "kmines": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kmines-24.02.0.tar.xz",
-    "hash": "sha256-iuyasRb2vN+5Qo+DkLW3LvULiDqMOHikluDJqzjn/cU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kmines-24.02.1.tar.xz",
+    "hash": "sha256-KovvXvynhZhrfzwaFeNt/HT6mZKfZk3Ji773mmYyBGg="
   },
   "kmix": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kmix-24.02.0.tar.xz",
-    "hash": "sha256-kcmI6fq5xVPMWakgKzpkvQhmpOPDI2++1Hw4U7Z2gX8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kmix-24.02.1.tar.xz",
+    "hash": "sha256-8yN9RuxRgRIdnQ15qRjBKiPEaqUSEggOnzbtJV8jFj0="
   },
   "kmousetool": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kmousetool-24.02.0.tar.xz",
-    "hash": "sha256-iLM2UIgD2/t26aPIlx2kZ0JHOMmsNwZMr+UARXepbOo="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kmousetool-24.02.1.tar.xz",
+    "hash": "sha256-mFG4cm89fTqmok5Lt8ef2+pSF0hemVinpT5toPd4fJ0="
   },
   "kmouth": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kmouth-24.02.0.tar.xz",
-    "hash": "sha256-7aRXYrRkOMnUIZG6Ks2IaTKL9IpmSfGzRZ2G9+XJ5Gw="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kmouth-24.02.1.tar.xz",
+    "hash": "sha256-cCYOYk3jij58Wfv1cAmRg2xrkW/1pU0c41w+2Zby03s="
   },
   "kmplot": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kmplot-24.02.0.tar.xz",
-    "hash": "sha256-ui6FaOEBxKuXMHcqPg0+X04hwpk7rRee5hod+68EWHY="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kmplot-24.02.1.tar.xz",
+    "hash": "sha256-GQkcr4PdUG2bJK6kSilOwbCdWa2RCh7U6V4oWC9hTdA="
   },
   "knavalbattle": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/knavalbattle-24.02.0.tar.xz",
-    "hash": "sha256-VxD8HBZTIeczXpjGV/WDw9Qt2nMEyVvQElDmNlNU4ZI="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/knavalbattle-24.02.1.tar.xz",
+    "hash": "sha256-07heKsP8WAzOEuYtXWkkuKjZEW17o+ghYrnltcEW00g="
   },
   "knetwalk": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/knetwalk-24.02.0.tar.xz",
-    "hash": "sha256-PiBdDwXA8NMJ8nMqBENjsZkiLqdi+81wzzniAfbvN1w="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/knetwalk-24.02.1.tar.xz",
+    "hash": "sha256-WIQhgzMMzxOeIJLeVNo9biFXUB0496lWnb5HyZv/BbQ="
   },
   "knights": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/knights-24.02.0.tar.xz",
-    "hash": "sha256-QjCT6HJOzjNtFHbgD8zhFSe9OuVVeCGdoxOGh4e+HfA="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/knights-24.02.1.tar.xz",
+    "hash": "sha256-GEuoqesR0hU0ks4Z6nPmD9tR5G0ToTwPOxx9l8eqIGI="
   },
   "knotes": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/knotes-24.02.0.tar.xz",
-    "hash": "sha256-QELnoh1ac9ZvmhdyCxBBCDx9G6I+RfRlid+9eYMj/t0="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/knotes-24.02.1.tar.xz",
+    "hash": "sha256-k4ViH8ymUbSrO2Hb6XoY9AT+T4Pbc3A0IX9cdnjIZaY="
   },
   "koko": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/koko-24.02.0.tar.xz",
-    "hash": "sha256-b51ePO2XLLPB9UFinnFgLOJWy2omwzQH7xb+QCDL8do="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/koko-24.02.1.tar.xz",
+    "hash": "sha256-n88NiQIYRwWnT5hQX/ekQhrQbk0VrPUrM+FZNwajSzo="
   },
   "kolf": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kolf-24.02.0.tar.xz",
-    "hash": "sha256-g28WB/Ynb5Fa+4gyV9tQriTudp4XiW87rTpRpKgLFC4="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kolf-24.02.1.tar.xz",
+    "hash": "sha256-QyWutEJOqz9bJMS6+1QcC9XFH83v36lMVPsOcoVTfkk="
   },
   "kollision": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kollision-24.02.0.tar.xz",
-    "hash": "sha256-945+1QG9Y1wEHz9R9jyhZgqjho6gznmhVLxmGDughT4="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kollision-24.02.1.tar.xz",
+    "hash": "sha256-pmpnATag0bz8jBwwz0pObDEwcDIxO7w14Ac3xlsbERM="
   },
   "kolourpaint": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kolourpaint-24.02.0.tar.xz",
-    "hash": "sha256-TWUkBV91X13c66eXureQmubABLZpP7Svb8bw8incn08="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kolourpaint-24.02.1.tar.xz",
+    "hash": "sha256-eFXnoqPx5n6ctlAXsPzK5f+KvJ3M/DaeUeiEdaVNsdk="
   },
   "kompare": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kompare-24.02.0.tar.xz",
-    "hash": "sha256-b1gwy6sew3OkOLVxkb/hzRKPcnGmHLNN3aU5O47iN74="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kompare-24.02.1.tar.xz",
+    "hash": "sha256-S+U1U7/uwi5LP6AyNiGOkgY+ZAzlxIcUEJmIjzlURyo="
   },
   "kongress": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kongress-24.02.0.tar.xz",
-    "hash": "sha256-t4QsBIC8Bb3q5BZyG64qvxW1Vc5nF02ZZwXkqAvyJNk="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kongress-24.02.1.tar.xz",
+    "hash": "sha256-gKFwPMNBZL6clFdoJXEeVjqlakFqMMmLMwzWdj0k6lc="
   },
   "konqueror": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/konqueror-24.02.0.tar.xz",
-    "hash": "sha256-eWMepFIch+Soam/VinRA3sWrunK9gVcvwq+uyLG1NkE="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/konqueror-24.02.1.tar.xz",
+    "hash": "sha256-FQXVzeZEgBtOWKw30VLgWLDXdTA5YsBPnFmuMYFE84U="
   },
   "konquest": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/konquest-24.02.0.tar.xz",
-    "hash": "sha256-ez/sNbLqLjQK43QKNS9r7th9MghtBpyurF2vBGJ1m+c="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/konquest-24.02.1.tar.xz",
+    "hash": "sha256-Ar0nrb4VPXVKte89amcXbgQdLQ7wvyF6yVwxJPTZQns="
   },
   "konsole": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/konsole-24.02.0.tar.xz",
-    "hash": "sha256-KRXtzYVlUr1hme+yPcrxlGBe5PswfHXidgYZglPf3+A="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/konsole-24.02.1.tar.xz",
+    "hash": "sha256-xaJ324Si9hdRJQuJx/mE39t3UNntX2ik+uIo2JrnLIU="
   },
   "kontact": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kontact-24.02.0.tar.xz",
-    "hash": "sha256-4kVTXlOvLk/aQxWIAjKfWAuMivFprFew4rrqLDkk5Yw="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kontact-24.02.1.tar.xz",
+    "hash": "sha256-9/0jDEBVJzawVUclfHN8Lk+4oI1uHuIRagt9WxN9As8="
   },
   "kontactinterface": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kontactinterface-24.02.0.tar.xz",
-    "hash": "sha256-c4WDAWz/AexNYGiNOzKUiyvJ2U9VvnZtQU6LTM9+484="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kontactinterface-24.02.1.tar.xz",
+    "hash": "sha256-0rUauivPPGTeBP70fTgJcFVLrt6dIwQ3dhXVf0Frblg="
   },
   "kontrast": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kontrast-24.02.0.tar.xz",
-    "hash": "sha256-kZUHEuCNOSR4N+MqU73BFgP9SE10om3WNEQQ5oLGERw="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kontrast-24.02.1.tar.xz",
+    "hash": "sha256-jUbETKPfPYNTQhSVNclH2nTQu+kOOx/6tm4/gYsn5Yw="
   },
   "konversation": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/konversation-24.02.0.tar.xz",
-    "hash": "sha256-yNdUoY/x9olK1YHJe5TDJj5L4jihfjL5woyWBkuBguk="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/konversation-24.02.1.tar.xz",
+    "hash": "sha256-zGHf0FZoDD4GoNp03ALTGdEty60cLHg14AQV6TiGbA0="
   },
   "kopeninghours": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kopeninghours-24.02.0.tar.xz",
-    "hash": "sha256-CVo8wVkB/EGBat0MrLmNpGQ1ZnrCS+GOxV9vugWBhHc="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kopeninghours-24.02.1.tar.xz",
+    "hash": "sha256-3uYpi5DcWS4qo4qc15rIpSGMCcm/5pL33X6pSXrQBqs="
   },
   "korganizer": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/korganizer-24.02.0.tar.xz",
-    "hash": "sha256-QlHvzihgYE2yOqAjSy/tq+4irqL2k3klm/7HOwzQCTI="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/korganizer-24.02.1.tar.xz",
+    "hash": "sha256-7mkERr791pON8F0yOSqIVMbvU6seiHoUfUb67mkOLzE="
   },
   "kosmindoormap": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kosmindoormap-24.02.0.tar.xz",
-    "hash": "sha256-+Id+XQ4viBs16Jez1Y5Wue8jrs8eqL4MsvSwHLXXNjQ="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kosmindoormap-24.02.1.tar.xz",
+    "hash": "sha256-ZYxKngOYxe2F+sIwIlag3DiwXyCMJkPCF2oV5kfu+BM="
   },
   "kpat": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kpat-24.02.0.tar.xz",
-    "hash": "sha256-oPGn3s2Q9T5usfetmW2QqfxKtJzKpJdupNBA1XahxpI="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kpat-24.02.1.tar.xz",
+    "hash": "sha256-wgJzlfiX5fYzNfMlr8CiwUdke4wKltkwuYKH4RQmNSs="
   },
   "kpimtextedit": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kpimtextedit-24.02.0.tar.xz",
-    "hash": "sha256-8T3ON2k8xMlaAFp6zoniAeoQD/leLlshXFVMKnjwXzM="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kpimtextedit-24.02.1.tar.xz",
+    "hash": "sha256-bVVlBuUI6CXX6lxsDOyP4Lue8ozLXjRthW2+HsNhmpc="
   },
   "kpkpass": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kpkpass-24.02.0.tar.xz",
-    "hash": "sha256-ouOv4Ezasv17JTbZsOzzQDbSdNKqNk3gN81WCfs7CN8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kpkpass-24.02.1.tar.xz",
+    "hash": "sha256-g5w+snfXxDb2s4/cp3YPuIkH8tKQMJW+0ICONCGEJqM="
   },
   "kpmcore": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kpmcore-24.02.0.tar.xz",
-    "hash": "sha256-TFxQqVCupwU2FvmqhtKcHS4PG9sSHBfMMefh5zpi3tE="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kpmcore-24.02.1.tar.xz",
+    "hash": "sha256-hzWLOUD3Jbt+7XzyiVu7r0C7fKnOS/6DM1tkgLvqVXg="
   },
   "kpublictransport": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kpublictransport-24.02.0.tar.xz",
-    "hash": "sha256-it3FzeMe1U2dGMckeq79ZpveEKjNdkA3hN0Lz/nNIvg="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kpublictransport-24.02.1.tar.xz",
+    "hash": "sha256-ybOXJqJKVaY6mqVe7/lUezbcvzVaIm28fs7GWJTjlww="
   },
   "kqtquickcharts": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kqtquickcharts-24.02.0.tar.xz",
-    "hash": "sha256-fkgwCdCdZs6pkmBCqHO+u4Wx2Jcy2sAXRdEY2FghHM8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kqtquickcharts-24.02.1.tar.xz",
+    "hash": "sha256-URO0ju6e2dgW+/vorgMQnNG08AZ9GXtUyPwx6LMzweY="
   },
   "krdc": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/krdc-24.02.0.tar.xz",
-    "hash": "sha256-yA0xsjleWb2hXnp2Cx4dQUs2QWeREmCJKujh9gYyomE="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/krdc-24.02.1.tar.xz",
+    "hash": "sha256-LXpCIKSHMq8auNbHfbqe+vyLzyuX5Yk+qYfTa4xa3Hs="
   },
   "krecorder": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/krecorder-24.02.0.tar.xz",
-    "hash": "sha256-Aelia5F4KOfdrJsCCJHLD6A519RkpiL8uYPf478CdV0="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/krecorder-24.02.1.tar.xz",
+    "hash": "sha256-1paQ9V3Phg+vOgCxoUfE6oZfzvjiqJFScpja0KM2BE8="
   },
   "kreversi": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kreversi-24.02.0.tar.xz",
-    "hash": "sha256-w724cLuA8cZnE1NFmAj1qIN1YIIEwvcIS6KZbBjk880="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kreversi-24.02.1.tar.xz",
+    "hash": "sha256-O6ObAxrms3bqY6IQVgbN6YzMus4jrQVw50AtMMjFTAY="
   },
   "krfb": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/krfb-24.02.0.tar.xz",
-    "hash": "sha256-rglGiRVq5Gz1z0QPH0QXx60HxeLhNW7yAyT00KmofDo="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/krfb-24.02.1.tar.xz",
+    "hash": "sha256-gOcU6c7u7EWAo33CIA8VU2pN5rnIvmFqrL+qk5y16PE="
   },
   "kross-interpreters": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kross-interpreters-24.02.0.tar.xz",
-    "hash": "sha256-Prit+XIbYbKF+g3BU9ikbyNEtufMYjP5yGHkq78IogE="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kross-interpreters-24.02.1.tar.xz",
+    "hash": "sha256-a16KfyAcdQy16vEXiCQL/y/KnhRdDyD+IAnZAFWpxWM="
   },
   "kruler": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kruler-24.02.0.tar.xz",
-    "hash": "sha256-f9xZX0SwZ0O081hSWbcSfMISBXr1bpaq3tBOt6wPvNU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kruler-24.02.1.tar.xz",
+    "hash": "sha256-GlKxCBdiWi+Vq8tpNAhFwBfuh3IYXATmPYeoH57W0ZE="
   },
   "ksanecore": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ksanecore-24.02.0.tar.xz",
-    "hash": "sha256-kwh3N/xzTFTPIySSG2terw94ZDBsRJaUKUS5NSzbIds="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ksanecore-24.02.1.tar.xz",
+    "hash": "sha256-tP5YVU/i49afOZ1nTZR4yg6N6GXd+70Y+OaWY4Ryc3M="
   },
   "kshisen": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kshisen-24.02.0.tar.xz",
-    "hash": "sha256-nmaObTESP6O/uUAL/cm6h0iHI+WIHdpuiypp9AiyjA8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kshisen-24.02.1.tar.xz",
+    "hash": "sha256-G7qxIYVx9qjamvdJAGka/VJNF+Z4c5MjzdivU8Tcb7E="
   },
   "ksirk": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ksirk-24.02.0.tar.xz",
-    "hash": "sha256-NBBpFUJ8TGlEywsU8VhzNd5Q690EPWdTTIX7SuWnIyg="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ksirk-24.02.1.tar.xz",
+    "hash": "sha256-q1JPsk3JOtlCQhaa8XWq2ryIK+J//vLN7K/2POVGbGs="
   },
   "ksmtp": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ksmtp-24.02.0.tar.xz",
-    "hash": "sha256-Cp/7MrUGfJbZAuYl1Rolb7syn5gU8NpC07UWF7RYqQg="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ksmtp-24.02.1.tar.xz",
+    "hash": "sha256-+l9FJKNt+DK7FMQxYTMnUb9XaFCUpON+N45pQz+yA00="
   },
   "ksnakeduel": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ksnakeduel-24.02.0.tar.xz",
-    "hash": "sha256-oJJ0kNVrROMTGEbCuBRATby/40v2DtPrMnsylhIx9tw="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ksnakeduel-24.02.1.tar.xz",
+    "hash": "sha256-1pZ0QcR04K/gSwSYJYwBs9lzWJ801wng2ZEp3qHAQfU="
   },
   "kspaceduel": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kspaceduel-24.02.0.tar.xz",
-    "hash": "sha256-tGLVSZcKlE2QNFe4ByV87jeA2hhXJQPkxjPARq2YyvE="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kspaceduel-24.02.1.tar.xz",
+    "hash": "sha256-h0vf8JMJrn/naMulfWohKtP5SCvOGsIkL+/q3eh9cTw="
   },
   "ksquares": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ksquares-24.02.0.tar.xz",
-    "hash": "sha256-q5ISgFe3KKSFNgyTpAcCu54rdLlEJR8QOld/jVEfUJo="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ksquares-24.02.1.tar.xz",
+    "hash": "sha256-DboQSbWFohEq3BEkKDYBKXDGxSH5cILkNnrzP7rbOLo="
   },
   "ksudoku": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ksudoku-24.02.0.tar.xz",
-    "hash": "sha256-l9acSyIMd1NfAvWDtWPut3KIrjnBes3OCKLwhQ8SwCY="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ksudoku-24.02.1.tar.xz",
+    "hash": "sha256-k6COovaysFQOE14ttgj4hupg48uochBJuxqm6BXrit0="
   },
   "ksystemlog": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ksystemlog-24.02.0.tar.xz",
-    "hash": "sha256-digHzjZOgBQtG3GuG0jXkyCSBe17F6vIOPUUqLd3WB4="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ksystemlog-24.02.1.tar.xz",
+    "hash": "sha256-gKmG+fARxOPqxfJ1KMnDix4UgmiHuEAJJREtqbQIgE4="
   },
   "kteatime": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kteatime-24.02.0.tar.xz",
-    "hash": "sha256-S/g5mERK1NPOXnxqk2HkxjQHzad2mq+H6QSLWEUzY34="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kteatime-24.02.1.tar.xz",
+    "hash": "sha256-Auys6i81t4EmW9ckGd3+5ZY8dNyUkP0KNeno7w6W0+4="
   },
   "ktimer": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ktimer-24.02.0.tar.xz",
-    "hash": "sha256-cJM+CATWOSUrEb2MTWXBiFSHoriTPMgX/o26uOBzvV4="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ktimer-24.02.1.tar.xz",
+    "hash": "sha256-WXT188ue5fVlIfKnyGsMK90zKtye4Fikxn2+s/cB+P0="
   },
   "ktnef": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ktnef-24.02.0.tar.xz",
-    "hash": "sha256-t+GnG81B3aO3kjrvOeFbiZiFjWgMPXegAf7HAnE++xA="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ktnef-24.02.1.tar.xz",
+    "hash": "sha256-DRR9P0qb1OzGBImvdMFCZeAFKQRz8szfWGrTiXgl7JU="
   },
   "ktorrent": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ktorrent-24.02.0.tar.xz",
-    "hash": "sha256-A4Rafv53jU3H7TlvKE8J1nB9UG1rOmQDnsZLrKWJMFo="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ktorrent-24.02.1.tar.xz",
+    "hash": "sha256-KboMnk3IWJefLFjEPTkD+kQVrNWrhYh1ZsfBN5G2oG4="
   },
   "ktouch": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ktouch-24.02.0.tar.xz",
-    "hash": "sha256-fWaMAVhzGN1LeknttVXpblgYblhGbHKIuxeRZscjW1s="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ktouch-24.02.1.tar.xz",
+    "hash": "sha256-X8rmkJGEKe2e+ctYjcGbQ7r5v/d9O82F3D9waNkPc3w="
   },
   "ktrip": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ktrip-24.02.0.tar.xz",
-    "hash": "sha256-RPJv4m8r+jNCSXBRywS/NCEKp+/thhXaxFW7TznX+7s="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ktrip-24.02.1.tar.xz",
+    "hash": "sha256-MXS0gGHzR+1DLr7rBinuWBaYc58abCCSB6iluA1VMYE="
   },
   "ktuberling": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/ktuberling-24.02.0.tar.xz",
-    "hash": "sha256-73ODxkH6QxYI9O2wNwCO7cHdNQhwFqzUzBxrFuGfX6o="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/ktuberling-24.02.1.tar.xz",
+    "hash": "sha256-biTtI8oPNVLGiEaTD44pmRqfQiaJAP90JOK7gF3tRns="
   },
   "kturtle": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kturtle-24.02.0.tar.xz",
-    "hash": "sha256-rK1KUkW9iFcPpHJ4DleLwGXjPACtcsL6Lg/AojKHLPA="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kturtle-24.02.1.tar.xz",
+    "hash": "sha256-cDPogNA5A8PAZguFLXgy6olrFHzpC0Hxw32kgqNJqQA="
   },
   "kubrick": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kubrick-24.02.0.tar.xz",
-    "hash": "sha256-nVJHXUFodsFhHtEVZtNKJYGCViHPKiCaddXscwfQgUs="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kubrick-24.02.1.tar.xz",
+    "hash": "sha256-A1yfttn8Uo9JKOZDKxNcrPcY375HAfANXmNUCpbFaAs="
   },
   "kwalletmanager": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kwalletmanager-24.02.0.tar.xz",
-    "hash": "sha256-/EgwCPzay6WdobJYauZ8tJ6rF/g/+RRcnJlVqIzUOLI="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kwalletmanager-24.02.1.tar.xz",
+    "hash": "sha256-1D4p9VpZxxDZ/3DX+Esz3qzUzFZJxV9Gs2INTZIntGI="
   },
   "kwave": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kwave-24.02.0.tar.xz",
-    "hash": "sha256-9dRFHIBWD1+UOoVJ2mKCy9gwW5y41tdItDSUfMXI3vk="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kwave-24.02.1.tar.xz",
+    "hash": "sha256-CdAEU+84sujvS5mFpk7SV2RizipPvswPG8l9xoRTCXs="
   },
   "kweather": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kweather-24.02.0.tar.xz",
-    "hash": "sha256-hr6rcTLj0HSLfEApAu0JJbVz15tMY6ShlB5YiYRozK8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kweather-24.02.1.tar.xz",
+    "hash": "sha256-wjg5+Qc0Ud3rwvL9KzPFDBIrTV8ybUynUnBSEZ2kywY="
   },
   "kwordquiz": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/kwordquiz-24.02.0.tar.xz",
-    "hash": "sha256-ps3PCCOncBxuGTDX1RpxekyleUeBBU04zyeMZuDgL6Q="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/kwordquiz-24.02.1.tar.xz",
+    "hash": "sha256-dCpCCaCCBX5pSRwN6PR8h1v4F4prvAxEN/0KtRzmU8M="
   },
   "libgravatar": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libgravatar-24.02.0.tar.xz",
-    "hash": "sha256-0/5VBt3WgCj6IW9c0FADXmjI687MG5/SJNbtMrPntUk="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libgravatar-24.02.1.tar.xz",
+    "hash": "sha256-kfkI3LSBn11JNT/g3Yo7KaN5NyLt2CMFNLN/ym66sVA="
   },
   "libkcddb": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libkcddb-24.02.0.tar.xz",
-    "hash": "sha256-/aFpBy8m0T2oU3N6iFO2wcxKux1MWxTRuNEw26FH7c8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libkcddb-24.02.1.tar.xz",
+    "hash": "sha256-+yjDcJh0nXjoBZnYCv/ruboS/7UoYJRGB15ffuj0Kh0="
   },
   "libkcompactdisc": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libkcompactdisc-24.02.0.tar.xz",
-    "hash": "sha256-yQrLDIhQ6sfdQOlcpsxb1+dOUqg5C0ImAoq2EffXn1M="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libkcompactdisc-24.02.1.tar.xz",
+    "hash": "sha256-bwNpNFm8VvecUp8Fy/1wRSdbb87jPdosQhYwwgHNziI="
   },
   "libkdcraw": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libkdcraw-24.02.0.tar.xz",
-    "hash": "sha256-0TckttdYckBCEJh5ZgbWP3v1Ur6hYlgpSCuvLfmaqxo="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libkdcraw-24.02.1.tar.xz",
+    "hash": "sha256-rUHiD1jCJnHWa96+G+kzYOhIInaJGGdDibhYcri1zCA="
   },
   "libkdegames": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libkdegames-24.02.0.tar.xz",
-    "hash": "sha256-PRE0ItxlQ0iyAl3l/h3iVtBqPFW+nHsQQlPiVZWy4rE="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libkdegames-24.02.1.tar.xz",
+    "hash": "sha256-SUAXsGWJkoD1LpDwHH9QruqGNTKDa4SPpF93GiwUcQU="
   },
   "libkdepim": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libkdepim-24.02.0.tar.xz",
-    "hash": "sha256-1BJBnRdPy8X2qkaDHyyoFxjw2KeZcpNfoJfFS48u5+A="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libkdepim-24.02.1.tar.xz",
+    "hash": "sha256-8wRBYTXytxVt6No2SQ1DfJjrPDCwOYXFj/GCTLUgKow="
   },
   "libkeduvocdocument": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libkeduvocdocument-24.02.0.tar.xz",
-    "hash": "sha256-PItMxVX08jt3BEYVz4LLqRq4Z2RFtdJcE4+WIXrd4xs="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libkeduvocdocument-24.02.1.tar.xz",
+    "hash": "sha256-fsFeQxE/oP+nTo6xWDfbqjPJttkztBOibVpqMGYuGKw="
   },
   "libkexiv2": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libkexiv2-24.02.0.tar.xz",
-    "hash": "sha256-Ko1zP2Duee/4xZmL5jKqNppwURU5A/Acp01gOAlch04="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libkexiv2-24.02.1.tar.xz",
+    "hash": "sha256-PNYSJSdLCWhpGr0p5nbj0xtvD0iAJOWnhSXcObpn9ug="
   },
   "libkgapi": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libkgapi-24.02.0.tar.xz",
-    "hash": "sha256-7x+XLmKerhKQEDm7/Ld9E2WzzzBdjZeA9ySD7/OrOwo="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libkgapi-24.02.1.tar.xz",
+    "hash": "sha256-cuuDG4EnEixzfILcnsSnMVgRKh22X9Oy26UpjfTSM5U="
   },
   "libkipi": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libkipi-24.02.0.tar.xz",
-    "hash": "sha256-Ig9IWMF+fZuFMzLmSB3jUYKhE7QSr38tSf5PIJ7gOR4="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libkipi-24.02.1.tar.xz",
+    "hash": "sha256-9uaBdnTZTCrsK36ZGOedBNFWOYVK6YTNbRKr/bQ8wsI="
   },
   "libkleo": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libkleo-24.02.0.tar.xz",
-    "hash": "sha256-reQo2spUR5gxSjpbV37+hBfG0hgvdOQn89fHnDyhuWw="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libkleo-24.02.1.tar.xz",
+    "hash": "sha256-CHHvP64rRPj+AS7cVZAv14SZcyg6/jf44IO/03Av+b0="
   },
   "libkmahjongg": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libkmahjongg-24.02.0.tar.xz",
-    "hash": "sha256-pld2Ae17ry8cQhMK4ubRm5nqkm0U+CoEYaRrN0wZZ8U="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libkmahjongg-24.02.1.tar.xz",
+    "hash": "sha256-FXSmx1kKoobanQlDoxQqKv7GaaTjiDme0zQCQVsks78="
   },
   "libkomparediff2": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libkomparediff2-24.02.0.tar.xz",
-    "hash": "sha256-bNNk3ADzblPwsdZv+OWvGAXdWXNY6bK64+na9uxNVLg="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libkomparediff2-24.02.1.tar.xz",
+    "hash": "sha256-Y0BqQpdEvAQx8rTijg1hS/LJJef7oPpmQC0C+DX30G4="
   },
   "libksane": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libksane-24.02.0.tar.xz",
-    "hash": "sha256-jo9ZpawoD/dRLHcStGdfd4/KO4Apb7u9+NjPZQsXGrU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libksane-24.02.1.tar.xz",
+    "hash": "sha256-+AbdOzlqjjWDMgqKj6CBrBca43fAs3SP0eDorNrnG/8="
   },
   "libksieve": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libksieve-24.02.0.tar.xz",
-    "hash": "sha256-3vqFYnNCuqQYS7iALrGoui6KzZro3GRBHfinEqg3zK0="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libksieve-24.02.1.tar.xz",
+    "hash": "sha256-Yo/c+kZlhq/9/TZXmUqG90WhHNTQpjCSObxPbftRIDg="
   },
   "libktorrent": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/libktorrent-24.02.0.tar.xz",
-    "hash": "sha256-iGZX//AS4iVUMLHLKVWeT3k8L1TkfW7UhEIVQNl1uJo="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/libktorrent-24.02.1.tar.xz",
+    "hash": "sha256-kOR7wekWgRl6EI/pe9Q4W0E9mn+t9+DSBIzSyKdVvO4="
   },
   "lokalize": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/lokalize-24.02.0.tar.xz",
-    "hash": "sha256-WznIX/27WZ+UW5YErYgIitJUs0A3+hn777wzcaUVCt0="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/lokalize-24.02.1.tar.xz",
+    "hash": "sha256-GknHgvarWlXRr78shAJpQ0PqtbzNURUbmY/+TAlSHB0="
   },
   "lskat": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/lskat-24.02.0.tar.xz",
-    "hash": "sha256-kVALtkeet6C9w9pVm204nq+v4H5S63OSbJiE4qn4x2U="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/lskat-24.02.1.tar.xz",
+    "hash": "sha256-osjLg3VOaHFDSpJI/5DsZmgcxn0tvUIveU9in16twvI="
   },
   "mailcommon": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/mailcommon-24.02.0.tar.xz",
-    "hash": "sha256-d/kMdC5VeQp43LdbNKtNgi4cOF45KBeqceEf0cDCQ9o="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/mailcommon-24.02.1.tar.xz",
+    "hash": "sha256-zTVEKUMxTeLbh3MVPFOIGZMSuBBGjMYEoGDTKGUK9sM="
   },
   "mailimporter": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/mailimporter-24.02.0.tar.xz",
-    "hash": "sha256-3Z1rNH52BzidcBVfXmAyTnRfubqOnybu6skY8ImOdZU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/mailimporter-24.02.1.tar.xz",
+    "hash": "sha256-Oa0Ex/B5mBN8pg8QFJ6u4pJTfzU/XIrBoi/LxO5cwWc="
   },
   "marble": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/marble-24.02.0.tar.xz",
-    "hash": "sha256-kpkHPKYXJDUPMjbJkW6oHUvURQCexltzZmCkvwFu+Wo="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/marble-24.02.1.tar.xz",
+    "hash": "sha256-3KeieLNTzgzp/fpkGgNiu3ExBVvrcfr+qvWsaQJrDZ0="
   },
   "markdownpart": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/markdownpart-24.02.0.tar.xz",
-    "hash": "sha256-a79yKY8hxQIgiu0/76VTAticUGpe510lZdRkU0U0S8k="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/markdownpart-24.02.1.tar.xz",
+    "hash": "sha256-+2lCSm0b9+nBlEZ66daHemCvrEhVifEkicinNcGHpBE="
   },
   "mbox-importer": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/mbox-importer-24.02.0.tar.xz",
-    "hash": "sha256-LOLwaNlk9T7967HEy/+zimaXzy/jEIj6/JuyJrzIiXs="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/mbox-importer-24.02.1.tar.xz",
+    "hash": "sha256-nTu+1QIMciFcuRsKmMyAswtpTWoY/XPAApiUIQmVPFo="
   },
   "merkuro": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/merkuro-24.02.0.tar.xz",
-    "hash": "sha256-oxu1ZAfJCtTi5d+wGxee32WJ6b/G5hTYMXJjmsrUv1E="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/merkuro-24.02.1.tar.xz",
+    "hash": "sha256-X2Qcg2vJPmpEvfO/G+3Mt6I09dGHNo+VSyNBr3iE1xc="
   },
   "messagelib": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/messagelib-24.02.0.tar.xz",
-    "hash": "sha256-/0jfAZvD+aZVMhlpWpR+gwPRtW16oYW1Hz8klzQujz0="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/messagelib-24.02.1.tar.xz",
+    "hash": "sha256-sBOBrv6jI+yTr164RbqLv9wDFMjQ7/5MsCNcTcqaFN4="
   },
   "mimetreeparser": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/mimetreeparser-24.02.0.tar.xz",
-    "hash": "sha256-XQVGxJ6P1dY5umiuCnkCYKrl4dBoc3WH8r3FwRD/l+8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/mimetreeparser-24.02.1.tar.xz",
+    "hash": "sha256-vD9I5tjZdWB7c6G0XTEMy1hOjo9UcL1r9EOh+RTSoRs="
   },
   "minuet": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/minuet-24.02.0.tar.xz",
-    "hash": "sha256-eFrJR+LOW2f9anvA+9j1BdMwBN4MwZn8hlhitjsJFdM="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/minuet-24.02.1.tar.xz",
+    "hash": "sha256-pv4C4K9SM3TV8r5fAZq2IqvzmaJ5h4vZedi/Ssz/DlI="
   },
   "neochat": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/neochat-24.02.0.tar.xz",
-    "hash": "sha256-JOeLm8y90qQHJuO2g7XUHf370G1JA8tHT1mJ/4/gcDI="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/neochat-24.02.1.tar.xz",
+    "hash": "sha256-Bbbfokt5G7Ip8QinOCcHZIiKtYVBPf7Y8/o9MS+3/cY="
   },
   "okular": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/okular-24.02.0.tar.xz",
-    "hash": "sha256-/CZVSPhZVixUzUBYf/PGocLQ95JmF5UbBuYUXR9Ck4w="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/okular-24.02.1.tar.xz",
+    "hash": "sha256-1T+wcRxRAUx7fz0GDRxlR8LXuOYUmiC73mwWNL9Dctk="
   },
   "palapeli": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/palapeli-24.02.0.tar.xz",
-    "hash": "sha256-0F3kZGY2QIWcyuEaylrfW17Vz1UROc9oViLZxz36tTI="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/palapeli-24.02.1.tar.xz",
+    "hash": "sha256-3UKuXaAuUbElb6HnTDp+76MSzJ8l/MMD8cjL+FGzjhc="
   },
   "parley": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/parley-24.02.0.tar.xz",
-    "hash": "sha256-/b3RBQo/2D6u7wQjj3jU/10NTmRVQkw7ZKm7mC6ZDxc="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/parley-24.02.1.tar.xz",
+    "hash": "sha256-jX68fWi2rO8cyqxGY39RikqoxZBf9ms0acx6Snis0VQ="
   },
   "partitionmanager": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/partitionmanager-24.02.0.tar.xz",
-    "hash": "sha256-suxJFlgFvKW4BvZrTsU91KmN1GYzrtVOafBAod8VpKw="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/partitionmanager-24.02.1.tar.xz",
+    "hash": "sha256-i+xmaohjz4LNS4eex3A3OMQzGN2DpOHonLhYRngNGUY="
   },
   "picmi": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/picmi-24.02.0.tar.xz",
-    "hash": "sha256-/SeGR/MuCTQgVuS0NQ/JjccPTBW0D1XPUu90bIs8IM8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/picmi-24.02.1.tar.xz",
+    "hash": "sha256-0Sy+KmqgkdlMTV5lMCqfrNQMKtqcVaGPhGOMzagDgAs="
   },
   "pimcommon": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/pimcommon-24.02.0.tar.xz",
-    "hash": "sha256-Yypu3thy6A6Y/BHYv67KgoO34gn2ifJcT9toEsxpkxw="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/pimcommon-24.02.1.tar.xz",
+    "hash": "sha256-5YSgPUp3dU8Qrz0Ds6fH6qtiUKI3czPVMX2nO7xeH0Q="
   },
   "pim-data-exporter": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/pim-data-exporter-24.02.0.tar.xz",
-    "hash": "sha256-XmT0wgdRhbL9Ryq851MoF+n0zxD2UPiTR97gt7sDj78="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/pim-data-exporter-24.02.1.tar.xz",
+    "hash": "sha256-P6wJVBJmkAho9jS+CBV0nCpnXBGqh85YACMRS+VSakk="
   },
   "pim-sieve-editor": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/pim-sieve-editor-24.02.0.tar.xz",
-    "hash": "sha256-hJCWNj3IIuzNsxQqceqabCsFDBEambr6UUhv7k7zyeQ="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/pim-sieve-editor-24.02.1.tar.xz",
+    "hash": "sha256-F8dHU0uA8x8RcGQcTJ173/zGX6omvdOMucAm5UwwTFs="
   },
   "plasmatube": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/plasmatube-24.02.0.tar.xz",
-    "hash": "sha256-pTR53BqHz5hS44GVPy1aQ5v9Umaf7cn+7QqxTAn/eRk="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/plasmatube-24.02.1.tar.xz",
+    "hash": "sha256-kIpZ07T2OFKvcGr/ry020oATh+GuN+uxoHETgRzZXWo="
   },
   "poxml": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/poxml-24.02.0.tar.xz",
-    "hash": "sha256-psDlllkWEHOWtPzwEeMvbAIqHn25Vx/cZIZj+Sb+1To="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/poxml-24.02.1.tar.xz",
+    "hash": "sha256-MB/yYDCoKK5+z5iCZGIczsaNJnZF+Fqwxv11JbGnxos="
   },
   "qmlkonsole": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/qmlkonsole-24.02.0.tar.xz",
-    "hash": "sha256-dzCe7Zv0t6G/P8JrAiU/C5212uWWxDNLFoiEQiqqigY="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/qmlkonsole-24.02.1.tar.xz",
+    "hash": "sha256-DgQ2Q6vl1b9AHJMukXSC+swmRGxWb2hWU8YPc82aR08="
   },
   "rocs": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/rocs-24.02.0.tar.xz",
-    "hash": "sha256-Othj1cCeK/I1sNUEimsdvTwrArecH/xZ5Q0z86tgEwI="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/rocs-24.02.1.tar.xz",
+    "hash": "sha256-1dRiwZTIilT4ele9AphPRw8PxhSfRsmBNda9BUhKcJ0="
   },
   "signon-kwallet-extension": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/signon-kwallet-extension-24.02.0.tar.xz",
-    "hash": "sha256-62lx+1Ef1su7Ng+xolsAMzE7clOPcJUK2NLK+qr7nW4="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/signon-kwallet-extension-24.02.1.tar.xz",
+    "hash": "sha256-R8z5F48N6xRE6rzUV3S1nbqV77ysFljvtHJnZNdc9FI="
   },
   "skanlite": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/skanlite-24.02.0.tar.xz",
-    "hash": "sha256-wV7o3vz7Bdof0d7qLJqqPMb7MkiXlPVx7Andi02TiqY="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/skanlite-24.02.1.tar.xz",
+    "hash": "sha256-SysKRweI2FR1r0ernVc326xsweXdLSX+lvDyZd+pcC4="
   },
   "skanpage": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/skanpage-24.02.0.tar.xz",
-    "hash": "sha256-ifaShgBg6rDlPibDQPuLsu/dSZm6vx7JVy+moUT9by8="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/skanpage-24.02.1.tar.xz",
+    "hash": "sha256-MXU9s95pG/rEvp5wD9VHJvzj2vRfvPJhbkdhF5/cZaM="
   },
   "spectacle": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/spectacle-24.02.0.tar.xz",
-    "hash": "sha256-YUsQyZC1weKvU5xvYNpcq40ZdbbBeiwkWKgbldLkw9E="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/spectacle-24.02.1.tar.xz",
+    "hash": "sha256-V0a8AquJ3la6Pzu0rfcs2H0IsPtgA3CBSBtDp6Nk6lc="
   },
   "step": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/step-24.02.0.tar.xz",
-    "hash": "sha256-SfIQVPQjzEuDTzegc29ljm89GcJNuhXvIw2FfaH/HBM="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/step-24.02.1.tar.xz",
+    "hash": "sha256-kO2A/daKqhAoEjxx+N8N5oIcFUzLoljh9XKAcAlVtR0="
   },
   "svgpart": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/svgpart-24.02.0.tar.xz",
-    "hash": "sha256-JGjS2Cf1M8Mw2X28jrC4PPLYHHhfC7WUKNvOT/z6CGU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/svgpart-24.02.1.tar.xz",
+    "hash": "sha256-o2dq9PfsqOqy6MAtKz9XvoMVOW0eLSo+32WBrwktOM4="
   },
   "sweeper": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/sweeper-24.02.0.tar.xz",
-    "hash": "sha256-MtiaAsfpbSSBe4Q0DW1YvP8glecU1c3pYUbk6SWGIow="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/sweeper-24.02.1.tar.xz",
+    "hash": "sha256-9zvu1+R6FlLN9aQArEVpJvFt2pVCY4kG5g93Fbcjz1Y="
   },
   "telly-skout": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/telly-skout-24.02.0.tar.xz",
-    "hash": "sha256-u0y0kue+gaWQ4TF5o5J7PFfW7sjsNBkh6tyCraDIi7M="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/telly-skout-24.02.1.tar.xz",
+    "hash": "sha256-WKtAtUgjT6Pue3aH8CKScsseaIa0IT/HN/C4iy/n9Ng="
   },
   "tokodon": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/tokodon-24.02.0.tar.xz",
-    "hash": "sha256-DXSOQ/qBse39tBvCPzCeTQ6f1vJTPGY+z7DYw5AOz98="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/tokodon-24.02.1.tar.xz",
+    "hash": "sha256-Pq9spIdTIzb28c7/RSgblllaBJOh+q7kP97+X5f2gO8="
   },
   "umbrello": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/umbrello-24.02.0.tar.xz",
-    "hash": "sha256-AMuUHmihDvZNfU23Fr/OwGjhZV09VSCvl5Rv8z3tE8c="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/umbrello-24.02.1.tar.xz",
+    "hash": "sha256-Ub1NBse9SuGZBKheOHojXkJ2JkKcGYrrfPs7auuthNs="
   },
   "yakuake": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/yakuake-24.02.0.tar.xz",
-    "hash": "sha256-jwubjyV5jQpYriB+E8isVch+IgX6bIZRua8/l8AC9qQ="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/yakuake-24.02.1.tar.xz",
+    "hash": "sha256-aCTEHlOOWoxSphNli8dqa6KB/dueubT3AUFFM803QZw="
   },
   "zanshin": {
-    "version": "24.02.0",
-    "url": "mirror://kde/stable/release-service/24.02.0/src/zanshin-24.02.0.tar.xz",
-    "hash": "sha256-lgw1cPYmHbfbdEvVzpMe3qZH874suUY9CGm6/DDLZGU="
+    "version": "24.02.1",
+    "url": "mirror://kde/stable/release-service/24.02.1/src/zanshin-24.02.1.tar.xz",
+    "hash": "sha256-plh2l/67sUzh36AI1rZHtHJj0BTaG1DDdNDT+ZePfjg="
   }
 }
\ No newline at end of file
diff --git a/nixpkgs/pkgs/kde/generated/sources/plasma.json b/nixpkgs/pkgs/kde/generated/sources/plasma.json
index 18854156c38b..8bde42d99048 100644
--- a/nixpkgs/pkgs/kde/generated/sources/plasma.json
+++ b/nixpkgs/pkgs/kde/generated/sources/plasma.json
@@ -1,317 +1,317 @@
 {
   "bluedevil": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/bluedevil-6.0.1.tar.xz",
-    "hash": "sha256-7bpz4yNYWvTgzHhtCAZXclkRP9fLH6sPYsvHOL1/53k="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/bluedevil-6.0.2.tar.xz",
+    "hash": "sha256-gV4OEQ7zlQPsBaRr11+9IlVSuehQUKm0Py2KeAPh22A="
   },
   "breeze": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/breeze-6.0.1.tar.xz",
-    "hash": "sha256-IASCzv0Gbg1I4WqnOAqcsA5jSyujSDTNxzVPNjtgVE0="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/breeze-6.0.2.tar.xz",
+    "hash": "sha256-TGf1pZqaN8lnVFUselB20p6nhkrFD6l2Zxl2TtlPtMw="
   },
   "breeze-grub": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/breeze-grub-6.0.1.tar.xz",
-    "hash": "sha256-iI1vzXZ+j97dqgq/Uze81TSpeu+RqKXkf6oZcmdNguM="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/breeze-grub-6.0.2.tar.xz",
+    "hash": "sha256-XBZ8FyaLvD42Ua8SpV+bs4UIphig+IHmMpzRcOCNlEY="
   },
   "breeze-gtk": {
-    "version": "6.0.1.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/breeze-gtk-6.0.1.1.tar.xz",
-    "hash": "sha256-I8qWYBzJv/AENPf7/jkB+8uSNi0XUaMcCFIPtMESRhA="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/breeze-gtk-6.0.2.tar.xz",
+    "hash": "sha256-phKZCTfgwMbOOGwg8zv3tqWcMhtrb50qcFFj/96ufdo="
   },
   "breeze-plymouth": {
-    "version": "6.0.1.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/breeze-plymouth-6.0.1.1.tar.xz",
-    "hash": "sha256-Xk/enHtV4kwK4inPSrct34g1nvewvSrnFbuH4eDx94I="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/breeze-plymouth-6.0.2.tar.xz",
+    "hash": "sha256-SEVtmnGdxrM6tidOxMVveOQvEnLCWeAGTmpc5qLodOk="
   },
   "discover": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/discover-6.0.1.tar.xz",
-    "hash": "sha256-fVGh2NErdS2rcyHMKC/mT8L2H5OAfDUzi1BEp4ahoZo="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/discover-6.0.2.tar.xz",
+    "hash": "sha256-jDuWQYjuNySaob1KzVKWfYgDvEC3Xzt3GFk8HNbM9PA="
   },
   "drkonqi": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/drkonqi-6.0.1.tar.xz",
-    "hash": "sha256-X2YFQ8MKee/7SJANHrrZ+eViBRTaq96b2rwrXwGyAm0="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/drkonqi-6.0.2.tar.xz",
+    "hash": "sha256-S4HHlDGeBMVwqUh/Cd2gLxiIHiSFR7qFaqhKbt5wwxQ="
   },
   "flatpak-kcm": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/flatpak-kcm-6.0.1.tar.xz",
-    "hash": "sha256-sHI/1B0LYRm1cplSH0iy1jXeIsZ3mfK/UDxbfD+N5YM="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/flatpak-kcm-6.0.2.tar.xz",
+    "hash": "sha256-cxEOEmCqq9Alj632/WPg1mnG1lzBY3TyjNiMZkusJY0="
   },
   "kactivitymanagerd": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kactivitymanagerd-6.0.1.tar.xz",
-    "hash": "sha256-L5LCvqE8fGn2gjfoyHBvfNnP70CdWex8HcSd+JRvsrc="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kactivitymanagerd-6.0.2.tar.xz",
+    "hash": "sha256-6V6in4tvuIK+xR2UZJEqdDVO9Tlrs+q3iDDa40qk37A="
   },
   "kde-cli-tools": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kde-cli-tools-6.0.1.tar.xz",
-    "hash": "sha256-RuDbooTXS1BpScAw4/gX8RwpJiwRbT6aKp5l855DzRU="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kde-cli-tools-6.0.2.tar.xz",
+    "hash": "sha256-Sr7JMrS0eaQiTg7yVjBVmGVdM4mzaaYf5IY34rXOjlU="
   },
   "kde-gtk-config": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kde-gtk-config-6.0.1.tar.xz",
-    "hash": "sha256-u1Df3OqfIavqqAs91SiZMhrRi2bjNRYfZrRHKWCJflU="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kde-gtk-config-6.0.2.tar.xz",
+    "hash": "sha256-iEVwUAzthC8eHFRe32/dUDZnP4OnGIZE+Ln3YeJoL34="
   },
   "kdecoration": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kdecoration-6.0.1.tar.xz",
-    "hash": "sha256-gSDaTJyMrv6nYKj5egjz7P//uK8ncqtE34EJ9hn/NZY="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kdecoration-6.0.2.tar.xz",
+    "hash": "sha256-uZNhbMXXj854ey29BKr+VA6SnC7MzeFLzgxhkDUUvsI="
   },
   "kdeplasma-addons": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kdeplasma-addons-6.0.1.tar.xz",
-    "hash": "sha256-ZFjmBdJY4LKkLWAUwzaALBDfGvP+FPNND9v56THNK28="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kdeplasma-addons-6.0.2.tar.xz",
+    "hash": "sha256-Wl4L/PtA1Xpeu5/tXSOMZC0Y5+0tbduxJAthxZi7AgA="
   },
   "kgamma": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kgamma-6.0.1.tar.xz",
-    "hash": "sha256-+2CVNijflwfXuoMVXVgo1fRNCT7YQZdMeO6adOzjyRI="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kgamma-6.0.2.tar.xz",
+    "hash": "sha256-+A2xpuiVBAQNUcaxT6i6Bqxnh9w3wFvEHsbLzbRjmZA="
   },
   "kglobalacceld": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kglobalacceld-6.0.1.tar.xz",
-    "hash": "sha256-tA1DMo0CPXqxsmWj6FUNv+8rjQ0dsq2oWBEdzzwZTqc="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kglobalacceld-6.0.2.tar.xz",
+    "hash": "sha256-pPPG2MCGNujAI4xblFWgyXXVciXGYScybR3U3aGjJos="
   },
   "kinfocenter": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kinfocenter-6.0.1.tar.xz",
-    "hash": "sha256-FP7LO/ME5sI3eJ2WL+o/vHJWsEAwde2b9K661Y+IluA="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kinfocenter-6.0.2.tar.xz",
+    "hash": "sha256-XX1CmQt73K7ndlEP298n5EtbvhaMTk5NVJ9WHo/iyyA="
   },
   "kmenuedit": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kmenuedit-6.0.1.tar.xz",
-    "hash": "sha256-9wZA2Q88JbE5NFM5UDwAGax0Oy8ldd+d+Ywn0URcdiQ="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kmenuedit-6.0.2.tar.xz",
+    "hash": "sha256-0K7EynTFpVeMp7k0F1qex+ITJLvaVczpb0oN1TJtwZc="
   },
   "kpipewire": {
-    "version": "6.0.1.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kpipewire-6.0.1.1.tar.xz",
-    "hash": "sha256-GQLzlJBS/xq12nnGMJWG8+EaKcfASgRPc7P2rJglHEo="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kpipewire-6.0.2.tar.xz",
+    "hash": "sha256-APmGtilgMkYaNYcdvooS/CTC+TtiOdMJjJe3bcvUbMk="
   },
   "kscreen": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kscreen-6.0.1.tar.xz",
-    "hash": "sha256-WHLCDvu4mvi59SZWsFyYaE4PrOWAAdOw7g2nslgi9ho="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kscreen-6.0.2.tar.xz",
+    "hash": "sha256-8fVuPlxw5dt1pfwBtPCB7cgRy7NoAiu3DEr6viVaAoU="
   },
   "kscreenlocker": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kscreenlocker-6.0.1.tar.xz",
-    "hash": "sha256-Kd74dcQG41cCjekXiFh/3mtTrL0Q1LgXd1S+z12VYCg="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kscreenlocker-6.0.2.tar.xz",
+    "hash": "sha256-RRxpojVsVFwRjjLJ+LRYYnKymfjZ3cTJyISxnbQntT8="
   },
   "ksshaskpass": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/ksshaskpass-6.0.1.tar.xz",
-    "hash": "sha256-0kRZcKvMZXYVKLfTp7KAJAb6ykTYkowpUOR7dXMDIUY="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/ksshaskpass-6.0.2.tar.xz",
+    "hash": "sha256-C+p20xygb3QkQqzmk+LcSJYSMJtapWfRaXisJu4g+sk="
   },
   "ksystemstats": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/ksystemstats-6.0.1.tar.xz",
-    "hash": "sha256-Bxr+Zkw47Gq3spK5DmtVzC0r6yC+P4qlOxMWgok6XEk="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/ksystemstats-6.0.2.tar.xz",
+    "hash": "sha256-l1/8/okQHOVc8cDFbGZuAuXcPR+pJF4xWw0jAwNMqEA="
   },
   "kwallet-pam": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kwallet-pam-6.0.1.tar.xz",
-    "hash": "sha256-Gti7wB7F0cIUQSK9PYKyJn2nfQdq47+ku/HEGi1wulA="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kwallet-pam-6.0.2.tar.xz",
+    "hash": "sha256-QTIb6oKt0j+Gtry+bTiLyMNZI70df4pm0Iw/KrGrAnM="
   },
   "kwayland": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kwayland-6.0.1.tar.xz",
-    "hash": "sha256-0rTZqzHiVNZ1ek7GqxzngNvGwA1Mj2pdoHz5GB6MhZU="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kwayland-6.0.2.tar.xz",
+    "hash": "sha256-vcLnj1datajVor0xCKPMMEZ6M0lYs8/9rASDnbg12DM="
   },
   "kwayland-integration": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kwayland-integration-6.0.1.tar.xz",
-    "hash": "sha256-G4S88fPSm7FKvEVUR4r9srx8x5UboSwtPIgCM4uzLHM="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kwayland-integration-6.0.2.tar.xz",
+    "hash": "sha256-JcURgey49PxoX332lmXwBWNGp6ljESh8frD9z8NjFPo="
   },
   "kwin": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kwin-6.0.1.tar.xz",
-    "hash": "sha256-bmGFfFAwt7OVPMDaXulKJDdVmZpM4AegAxH5HbiXXwQ="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kwin-6.0.2.tar.xz",
+    "hash": "sha256-ZTQGIBVP7eWY2qdsxiRzmpgkaFqhqpQiTv3V8bmwdrs="
   },
   "kwrited": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/kwrited-6.0.1.tar.xz",
-    "hash": "sha256-YGx8Iojk9T9YmUPQhhjuFcOulE+HCDwJM7u+LeAhdBI="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/kwrited-6.0.2.tar.xz",
+    "hash": "sha256-+1IZTV5VmlaWevHIoaCAhex3t9ZRCrSGoPEMk/ro2Sg="
   },
   "layer-shell-qt": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/layer-shell-qt-6.0.1.tar.xz",
-    "hash": "sha256-PbMq6DC2f1Wl3ikrdXkRJKft0DOYm36T5L2RPFj9l58="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/layer-shell-qt-6.0.2.tar.xz",
+    "hash": "sha256-qtaCwTBihouUlwy2DeQAH6jRpL3YJ8Y3VuIV0EU95VA="
   },
   "libkscreen": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/libkscreen-6.0.1.tar.xz",
-    "hash": "sha256-8D3Px59OGyDSvT0WluRiKpW8TTtjYHgP3wxAj/o2KJs="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/libkscreen-6.0.2.tar.xz",
+    "hash": "sha256-L4ZclYm2Cuc5WxilMbHm+/6o4s5cFHgRsO8fjAXjBTc="
   },
   "libksysguard": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/libksysguard-6.0.1.tar.xz",
-    "hash": "sha256-kPDmZzBbmqucMqToAQyqzGqfsfyBpzuB0uu7SEXrLwM="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/libksysguard-6.0.2.tar.xz",
+    "hash": "sha256-lp+uvfmXygl+lN2HffJ+xb/0lnFPZnif5izUVXvsbdM="
   },
   "libplasma": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/libplasma-6.0.1.tar.xz",
-    "hash": "sha256-df7WkHW/Eazi++KfHRUnDIc3+6qReJBQSe/YAt52tHQ="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/libplasma-6.0.2.tar.xz",
+    "hash": "sha256-NaAhBL3H3BNHETIZdoplNmUDp99fr5i/ANAatgNNEb0="
   },
   "milou": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/milou-6.0.1.tar.xz",
-    "hash": "sha256-wC6xYOq3nUvsGvh3RDptPGVfS5UsUXHhmHAT2s1L5hA="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/milou-6.0.2.tar.xz",
+    "hash": "sha256-WKPbHv9ZfLIDlZ6jCqSWiOL0KK2tOIxU4suugQr0GhQ="
   },
   "ocean-sound-theme": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/ocean-sound-theme-6.0.1.tar.xz",
-    "hash": "sha256-YoctZEvuhcjofoyUcER3ttxIdyU8bqLfwGWeodN6sp0="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/ocean-sound-theme-6.0.2.tar.xz",
+    "hash": "sha256-+gHhW4qZfl3TTn3qZ6gnEph2WC5rD91EMjUvFrZ0VXc="
   },
   "oxygen": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/oxygen-6.0.1.tar.xz",
-    "hash": "sha256-Tdkt0bgp7pwlSRunoigb2cTsmV1ujdBM+ZDr+4lJ91Q="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/oxygen-6.0.2.tar.xz",
+    "hash": "sha256-Zhqp3BDNGzPOj1agJFD0YUhThKyex9vax8fGhPkiIOM="
   },
   "oxygen-sounds": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/oxygen-sounds-6.0.1.tar.xz",
-    "hash": "sha256-bMbU68dKW17oLbEg9tdX28F/m3CRJ5hACiATMjGbeo8="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/oxygen-sounds-6.0.2.tar.xz",
+    "hash": "sha256-Ndoo5SZSvpsabDsmkZ1SR9QapotXL7EMRYOg9cy3C2E="
   },
   "plasma-activities": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-activities-6.0.1.tar.xz",
-    "hash": "sha256-L9fe7g6q78KXoC5o4Ra09tqUdbtvJvc9fO0bWSK/TYY="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-activities-6.0.2.tar.xz",
+    "hash": "sha256-Cod9C2cV+x5YSOQC4QK9Buu4ke2FHLrX7/j68WTvMak="
   },
   "plasma-activities-stats": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-activities-stats-6.0.1.tar.xz",
-    "hash": "sha256-d5/1WkSbl0UpWn3L/5oiq7TU8PdKgHIZZ09iT3tVpuo="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-activities-stats-6.0.2.tar.xz",
+    "hash": "sha256-1+SS0HyVe16mxFMLHxnTiiq97Ga8pTRuCOfvya4VkGw="
   },
   "plasma-browser-integration": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-browser-integration-6.0.1.tar.xz",
-    "hash": "sha256-QpBJgaCwFxKG71tTAJHrXzZgBfEfzLlslcr2GQXYFjU="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-browser-integration-6.0.2.tar.xz",
+    "hash": "sha256-bA76Wl1cT6742zEp00V1Kmr/5bShwRCec/mAKlTfvzI="
   },
   "plasma-desktop": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-desktop-6.0.1.tar.xz",
-    "hash": "sha256-l9dA6OO1/5IXO5qQhlZ9/0D/dwyjTQzs/rNdZQgIovE="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-desktop-6.0.2.tar.xz",
+    "hash": "sha256-BBDldeDxfKqvFhMqo/zLumQx3WG6dG8+LiAtKU9UNgo="
   },
   "plasma-disks": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-disks-6.0.1.tar.xz",
-    "hash": "sha256-eC8HigBYUBU7uH3zZjRI/Uqpz/TMfMve+kClFq1+p/4="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-disks-6.0.2.tar.xz",
+    "hash": "sha256-PWeGm75GqCuYOx9twIYm0NNhdARGxwAFddc1RWUi8LY="
   },
   "plasma-firewall": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-firewall-6.0.1.tar.xz",
-    "hash": "sha256-K+GFZDSTYBGZiCUf4VLAdiBLR0LsDSFv5RtRjopzaec="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-firewall-6.0.2.tar.xz",
+    "hash": "sha256-IO4z6ATsdd9xN9a0c89dRqd5q2ZF3QlJT2f30Q7UqSg="
   },
   "plasma-integration": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-integration-6.0.1.tar.xz",
-    "hash": "sha256-FtEj3D9ZxJIlG44vupScddO/D2fzzs+WxRvkjcQUQp8="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-integration-6.0.2.tar.xz",
+    "hash": "sha256-Jqfbaw63VItADr+stNU/4bu8PAx7Pg6/duVVK8wCoPw="
   },
   "plasma-mobile": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-mobile-6.0.1.tar.xz",
-    "hash": "sha256-snOILhyWtKu57n9BInxHokC6v+9FkJ8N13ysBa02QAg="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-mobile-6.0.2.tar.xz",
+    "hash": "sha256-LQgMq0CvYObKPrA8E6XwttrRECxsCUEZOmTyTDeVf3I="
   },
   "plasma-nano": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-nano-6.0.1.tar.xz",
-    "hash": "sha256-IEHQFekEQButOtNaSjEC2kaGau6PycwMk9o3246plHQ="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-nano-6.0.2.tar.xz",
+    "hash": "sha256-xDxCj5OjxwOkfeODSur6ftjHEamwEyws17Zp/t/tcpw="
   },
   "plasma-nm": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-nm-6.0.1.tar.xz",
-    "hash": "sha256-cKIB7prSAiQrAP9QYZZkrFIFlE+J3yrDpyqfTOV4kyo="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-nm-6.0.2.tar.xz",
+    "hash": "sha256-QubzGz7G3lHuPO/bUimeZVzdIKXItNeIBCkYTi+S0MY="
   },
   "plasma-pa": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-pa-6.0.1.tar.xz",
-    "hash": "sha256-Jyjs2fHFEG/ovAfwsDvaMWA2rcXQOjrAAVEfdUPDN8c="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-pa-6.0.2.tar.xz",
+    "hash": "sha256-mY2o94MeFgBDFby0iNBdHVOXE0BuI1FVvb+7gNMB5a0="
   },
   "plasma-sdk": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-sdk-6.0.1.tar.xz",
-    "hash": "sha256-cuDXrIGZJI96emqO3nvc1geZDVhnqZmOHmrxT9cjKLc="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-sdk-6.0.2.tar.xz",
+    "hash": "sha256-twvRfWNrJvg3RZsfcusp/QuiJXEcjK73p2LdYL/0ZAU="
   },
   "plasma-systemmonitor": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-systemmonitor-6.0.1.tar.xz",
-    "hash": "sha256-L4l5l4s0jWtxrAePmJ3SH/TptrDSW15Zo3G+UA/JnVE="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-systemmonitor-6.0.2.tar.xz",
+    "hash": "sha256-vDVzeXuZ3pbjmaKTYuvPbhu5ic7UocQZ8jIgSEJsk4s="
   },
   "plasma-thunderbolt": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-thunderbolt-6.0.1.tar.xz",
-    "hash": "sha256-mzw6wQ94iaZr+rv2KCPsld/a2f9GZSltDCB9S9KIkr0="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-thunderbolt-6.0.2.tar.xz",
+    "hash": "sha256-CkWNmJNRiBP/dJeZ0cr068oFAbF5akLU496+F3StG2A="
   },
   "plasma-vault": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-vault-6.0.1.tar.xz",
-    "hash": "sha256-rWYoml4dP23zwX2xah+IwVi0z3h2VnJuiVhI0L5u0AU="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-vault-6.0.2.tar.xz",
+    "hash": "sha256-X4BqRrZAt+qK2fGNk5yhNDTOy+Ker0Y0k+5vnBl8HJA="
   },
   "plasma-welcome": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-welcome-6.0.1.tar.xz",
-    "hash": "sha256-+Lrjd8pQpMvsSpYwXy4rjowzNZ9ZamSFEQirCVC280E="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-welcome-6.0.2.tar.xz",
+    "hash": "sha256-PZiuRZBchM6kWNYmgKHCRx1E0Zu2HOkx47INBfDw908="
   },
   "plasma-workspace": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-workspace-6.0.1.tar.xz",
-    "hash": "sha256-1MNcsWi5kEh7OfG36xlGkJxedPAgDQ3i0xdlnBbxWgw="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-workspace-6.0.2.tar.xz",
+    "hash": "sha256-nM604rzgRZcPwXe/KEf/rli9OXgGuMz0TaWCCjvWAM4="
   },
   "plasma-workspace-wallpapers": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma-workspace-wallpapers-6.0.1.tar.xz",
-    "hash": "sha256-MWMiru1TqQSs+mk3gT320hZEmM2dTC8th7YQu1vPgs4="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma-workspace-wallpapers-6.0.2.tar.xz",
+    "hash": "sha256-0zDvbxeoltvd/jh7QSGuwFc3LAKcPMHS0iSIQru0vwA="
   },
   "plasma5support": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plasma5support-6.0.1.tar.xz",
-    "hash": "sha256-CyW9EyMGCEy1wNrgfFwP+noy2eserMDTS1bnhHEe0zU="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plasma5support-6.0.2.tar.xz",
+    "hash": "sha256-GLHeNGH183IcXTy7CEEToM7qW/PjdvIbJP6YylbVSm8="
   },
   "plymouth-kcm": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/plymouth-kcm-6.0.1.tar.xz",
-    "hash": "sha256-RQtov7L/0cuFzQLE1kEgg3iHB4SBGn+POngU1mM1Ink="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/plymouth-kcm-6.0.2.tar.xz",
+    "hash": "sha256-lZUuLTwQoXUyUy9yTnWoU0ZO7BLlThw8TyEoEAtXoTA="
   },
   "polkit-kde-agent-1": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/polkit-kde-agent-1-6.0.1.tar.xz",
-    "hash": "sha256-YpgXxuVqVkfDr5fW3JYOd0RGAzK9PeavgJCV6LUy2T0="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/polkit-kde-agent-1-6.0.2.tar.xz",
+    "hash": "sha256-Pi3sf38vQ0LHz4zcZJcr5XNQmoNWT/wa9+DZG/V0Yr0="
   },
   "powerdevil": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/powerdevil-6.0.1.tar.xz",
-    "hash": "sha256-CsSPI+gmRDhDQPBjkDeoQkFpqOGjS0nz9tJQUzJC0K8="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/powerdevil-6.0.2.tar.xz",
+    "hash": "sha256-MYjTyMrd32iVXvyW6eThKS6z0Wfk2lkCmtyZPiFR9Ug="
   },
   "print-manager": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/print-manager-6.0.1.tar.xz",
-    "hash": "sha256-qMam4P00JMAi1yEUEKP3dMNT+G7ny08Yrb06pnEhl0o="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/print-manager-6.0.2.tar.xz",
+    "hash": "sha256-Zs4HOBWDgO7sLCWcwtPyWdU+Kdv/Lf2FPlWgnTrKRv8="
   },
   "qqc2-breeze-style": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/qqc2-breeze-style-6.0.1.tar.xz",
-    "hash": "sha256-d4hSRmOyOT2I8DeYeKu9HlLAUg6zyofZVHh3aiUCkLQ="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/qqc2-breeze-style-6.0.2.tar.xz",
+    "hash": "sha256-kE5jmK7irTEpHAJ6sJahl8lC60pz7vf03kKCy8prMl0="
   },
   "sddm-kcm": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/sddm-kcm-6.0.1.tar.xz",
-    "hash": "sha256-f8538z7WWFkQNx2YP+LiCxB/7KvIZS+K+wjZrhk+4c8="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/sddm-kcm-6.0.2.tar.xz",
+    "hash": "sha256-GjF2qqTtS2uCFON0RuvVtK4LnigjuWQfHvfotnI7JMs="
   },
   "systemsettings": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/systemsettings-6.0.1.tar.xz",
-    "hash": "sha256-HGShWBnCxoPGaXJfEa6Fos3ElOR5lvalbLLYExiQTZU="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/systemsettings-6.0.2.tar.xz",
+    "hash": "sha256-3llQvu9jREmE+mHjh0xgE6T/7r/ObYGc97q3yCQCtgY="
   },
   "wacomtablet": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/wacomtablet-6.0.1.tar.xz",
-    "hash": "sha256-m4LCsY3YClBN6OAM1qT5ypB2vZj6b6EReCIj3pRdzj4="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/wacomtablet-6.0.2.tar.xz",
+    "hash": "sha256-s1Vn6OKtKB1csiJRdBPasKRK/iVbWSZPMHe+e9cUB5k="
   },
   "xdg-desktop-portal-kde": {
-    "version": "6.0.1",
-    "url": "mirror://kde/stable/plasma/6.0.1/xdg-desktop-portal-kde-6.0.1.tar.xz",
-    "hash": "sha256-2koLhkyhdujOGfbhXSfI+RkyOlGgck7II3gXnDFY2Zk="
+    "version": "6.0.2",
+    "url": "mirror://kde/stable/plasma/6.0.2/xdg-desktop-portal-kde-6.0.2.tar.xz",
+    "hash": "sha256-LX5j/LAr+jV/Ml2QA4dFau4Bk+pBSy7emLGhWbUg52U="
   }
 }
\ No newline at end of file
diff --git a/nixpkgs/pkgs/kde/lib/mk-kde-derivation.nix b/nixpkgs/pkgs/kde/lib/mk-kde-derivation.nix
index 042c7531f07e..13f938d69040 100644
--- a/nixpkgs/pkgs/kde/lib/mk-kde-derivation.nix
+++ b/nixpkgs/pkgs/kde/lib/mk-kde-derivation.nix
@@ -112,16 +112,15 @@ in
       "meta"
     ];
 
-    meta = let
-      pos = builtins.unsafeGetAttrPos "pname" args;
-    in {
+    meta = {
       description = projectInfo.${pname}.description;
       homepage = "https://invent.kde.org/${projectInfo.${pname}.repo_path}";
       license = lib.filter (l: l != null) (map (l: licensesBySpdxId.${l}) licenseInfo.${pname});
       maintainers = lib.teams.qt-kde.members;
       # Platforms are currently limited to what upstream tests in CI, but can be extended if there's interest.
       platforms = lib.platforms.linux ++ lib.platforms.freebsd;
-      position = "${pos.file}:${toString pos.line}";
     } // (args.meta or { });
+
+    pos = builtins.unsafeGetAttrPos "pname" args;
   in
-    stdenv.mkDerivation (defaultArgs // cleanArgs) // { inherit meta; }
+    stdenv.mkDerivation (defaultArgs // cleanArgs // { inherit meta pos; })
diff --git a/nixpkgs/pkgs/kde/misc/alpaka/default.nix b/nixpkgs/pkgs/kde/misc/alpaka/default.nix
index 6e4154c495d8..3b3c1828a8e1 100644
--- a/nixpkgs/pkgs/kde/misc/alpaka/default.nix
+++ b/nixpkgs/pkgs/kde/misc/alpaka/default.nix
@@ -22,4 +22,5 @@ mkKdeDerivation {
     gpl2Plus
     gpl3Only
   ];
+  meta.mainProgram = "alpaka";
 }
diff --git a/nixpkgs/pkgs/kde/misc/kunifiedpush/default.nix b/nixpkgs/pkgs/kde/misc/kunifiedpush/default.nix
index 54f902913901..9e7cb57ba3ad 100644
--- a/nixpkgs/pkgs/kde/misc/kunifiedpush/default.nix
+++ b/nixpkgs/pkgs/kde/misc/kunifiedpush/default.nix
@@ -21,4 +21,5 @@ mkKdeDerivation {
   extraBuildInputs = [qtwebsockets kdeclarative kpackage];
 
   meta.license = with lib.licenses; [bsd2 bsd3 cc0 lgpl2Plus];
+  meta.mainProgram = "kunifiedpush-distributor";
 }
diff --git a/nixpkgs/pkgs/kde/misc/phonon/default.nix b/nixpkgs/pkgs/kde/misc/phonon/default.nix
index 4706dd159ea5..ed0aad052746 100644
--- a/nixpkgs/pkgs/kde/misc/phonon/default.nix
+++ b/nixpkgs/pkgs/kde/misc/phonon/default.nix
@@ -33,4 +33,5 @@ mkKdeDerivation rec {
   cmakeFlags = ["-DPHONON_BUILD_QT5=0" "-DPHONON_BUILD_QT6=1"];
 
   meta.license = with lib.licenses; [lgpl21Plus gpl2Plus];
+  meta.mainProgram = "phononsettings";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/breeze/default.nix b/nixpkgs/pkgs/kde/plasma/breeze/default.nix
index 72dcbcae91f4..3b6fed6221fd 100644
--- a/nixpkgs/pkgs/kde/plasma/breeze/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/breeze/default.nix
@@ -41,4 +41,5 @@ mkKdeDerivation {
     mkdir -p $qt5/${libsForQt5.qtbase.qtPluginPrefix}/styles
     mv $out/${qtbase.qtPluginPrefix}/styles/breeze5.so $qt5/${libsForQt5.qtbase.qtPluginPrefix}/styles
   '';
+  meta.mainProgram = "breeze-settings6";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/kinfocenter/default.nix b/nixpkgs/pkgs/kde/plasma/kinfocenter/default.nix
index cc216dd22a7b..e48424305c1c 100644
--- a/nixpkgs/pkgs/kde/plasma/kinfocenter/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/kinfocenter/default.nix
@@ -26,4 +26,5 @@ mkKdeDerivation {
   '';
 
   extraBuildInputs = [libusb1];
+  meta.mainProgram = "kinfocenter";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/kmenuedit/default.nix b/nixpkgs/pkgs/kde/plasma/kmenuedit/default.nix
index 2cfd932af1bf..4f88e8013173 100644
--- a/nixpkgs/pkgs/kde/plasma/kmenuedit/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/kmenuedit/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kmenuedit";
+  meta.mainProgram = "kmenuedit";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/kscreen/default.nix b/nixpkgs/pkgs/kde/plasma/kscreen/default.nix
index 480912fe7fcb..3ceedb860de0 100644
--- a/nixpkgs/pkgs/kde/plasma/kscreen/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/kscreen/default.nix
@@ -12,4 +12,5 @@ mkKdeDerivation {
     substituteInPlace $out/share/kglobalaccel/org.kde.kscreen.desktop \
       --replace-fail dbus-send ${dbus}/bin/dbus-send
   '';
+  meta.mainProgram = "kscreen-console";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/ksshaskpass/default.nix b/nixpkgs/pkgs/kde/plasma/ksshaskpass/default.nix
index 86834f8fa7c2..dee8ae1e2ce8 100644
--- a/nixpkgs/pkgs/kde/plasma/ksshaskpass/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/ksshaskpass/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "ksshaskpass";
+  meta.mainProgram = "ksshaskpass";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/kwrited/default.nix b/nixpkgs/pkgs/kde/plasma/kwrited/default.nix
index 262f3b7c6493..c9bb0ff6e6ca 100644
--- a/nixpkgs/pkgs/kde/plasma/kwrited/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/kwrited/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "kwrited";
+  meta.mainProgram = "kwrited";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/libkscreen/default.nix b/nixpkgs/pkgs/kde/plasma/libkscreen/default.nix
index d6fdd87c7e9b..7f7e5d488d9f 100644
--- a/nixpkgs/pkgs/kde/plasma/libkscreen/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/libkscreen/default.nix
@@ -9,4 +9,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [qttools qtwayland jq];
   extraBuildInputs = [qtwayland];
+  meta.mainProgram = "kscreen-doctor";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/plasma-activities/default.nix b/nixpkgs/pkgs/kde/plasma/plasma-activities/default.nix
index 9ddd163e9fbb..c9fdd0821181 100644
--- a/nixpkgs/pkgs/kde/plasma/plasma-activities/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/plasma-activities/default.nix
@@ -7,4 +7,5 @@ mkKdeDerivation {
   pname = "plasma-activities";
 
   extraBuildInputs = [qtdeclarative boost];
+  meta.mainProgram = "plasma-activities-cli6";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/plasma-browser-integration/default.nix b/nixpkgs/pkgs/kde/plasma/plasma-browser-integration/default.nix
index 6277071f9a76..e069d067f294 100644
--- a/nixpkgs/pkgs/kde/plasma/plasma-browser-integration/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/plasma-browser-integration/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "plasma-browser-integration";
+  meta.mainProgram = "plasma-browser-integration-host";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/plasma-systemmonitor/default.nix b/nixpkgs/pkgs/kde/plasma/plasma-systemmonitor/default.nix
index 8a8bff96ecff..a8e20716ed56 100644
--- a/nixpkgs/pkgs/kde/plasma/plasma-systemmonitor/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/plasma-systemmonitor/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "plasma-systemmonitor";
+  meta.mainProgram = "plasma-systemmonitor";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/plasma-welcome/default.nix b/nixpkgs/pkgs/kde/plasma/plasma-welcome/default.nix
index 976a788a16e9..89f06a817b34 100644
--- a/nixpkgs/pkgs/kde/plasma/plasma-welcome/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/plasma-welcome/default.nix
@@ -7,4 +7,5 @@ mkKdeDerivation {
   pname = "plasma-welcome";
 
   extraBuildInputs = [qtsvg kuserfeedback];
+  meta.mainProgram = "plasma-welcome";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/plymouth-kcm/default.nix b/nixpkgs/pkgs/kde/plasma/plymouth-kcm/default.nix
index dcf339dd9b2e..ccb117f11a53 100644
--- a/nixpkgs/pkgs/kde/plasma/plymouth-kcm/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/plymouth-kcm/default.nix
@@ -8,4 +8,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [pkg-config];
   extraBuildInputs = [plymouth];
+  meta.mainProgram = "kplymouththemeinstaller";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/sddm-kcm/default.nix b/nixpkgs/pkgs/kde/plasma/sddm-kcm/default.nix
index d60c5e4e6ff7..d21ea6ac58f2 100644
--- a/nixpkgs/pkgs/kde/plasma/sddm-kcm/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/sddm-kcm/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "sddm-kcm";
+  meta.mainProgram = "sddmthemeinstaller";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/systemsettings/default.nix b/nixpkgs/pkgs/kde/plasma/systemsettings/default.nix
index 2dd529b9380e..10feafc859c3 100644
--- a/nixpkgs/pkgs/kde/plasma/systemsettings/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/systemsettings/default.nix
@@ -1,4 +1,5 @@
 {mkKdeDerivation}:
 mkKdeDerivation {
   pname = "systemsettings";
+  meta.mainProgram = "systemsettings";
 }
diff --git a/nixpkgs/pkgs/kde/plasma/wacomtablet/default.nix b/nixpkgs/pkgs/kde/plasma/wacomtablet/default.nix
index c24e8739f746..58b80fa9575f 100644
--- a/nixpkgs/pkgs/kde/plasma/wacomtablet/default.nix
+++ b/nixpkgs/pkgs/kde/plasma/wacomtablet/default.nix
@@ -9,4 +9,5 @@ mkKdeDerivation {
 
   extraNativeBuildInputs = [pkg-config];
   extraBuildInputs = [libwacom xf86_input_wacom];
+  meta.mainProgram = "kde_wacom_tabletfinder";
 }
diff --git a/nixpkgs/pkgs/misc/arm-trusted-firmware/default.nix b/nixpkgs/pkgs/misc/arm-trusted-firmware/default.nix
index f3025572429e..6fb9aea3bfeb 100644
--- a/nixpkgs/pkgs/misc/arm-trusted-firmware/default.nix
+++ b/nixpkgs/pkgs/misc/arm-trusted-firmware/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, openssl, pkgsCross, buildPackages
+{ lib, stdenv, fetchFromGitHub, fetchFromGitLab, openssl, pkgsCross, buildPackages
 
 # Warning: this blob (hdcp.bin) runs on the main CPU (not the GPU) at
 # privilege level EL3, which is above both the kernel and the
@@ -151,6 +151,25 @@ in {
     platformCanUseHDCPBlob = true;
   };
 
+  armTrustedFirmwareRK3588 = buildArmTrustedFirmware rec {
+    extraMakeFlags = [ "bl31" ];
+    platform = "rk3588";
+    extraMeta.platforms = ["aarch64-linux"];
+    filesToInstall = [ "build/${platform}/release/bl31/bl31.elf"];
+    platformCanUseHDCPBlob = true;
+
+    # TODO: remove this once the following get merged:
+    # 1: https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/21840
+    # 2: https://review.trustedfirmware.org/c/ci/tf-a-ci-scripts/+/21833
+    src = fetchFromGitLab {
+      domain = "gitlab.collabora.com";
+      owner = "hardware-enablement/rockchip-3588";
+      repo = "trusted-firmware-a";
+      rev = "002d8e85ce5f4f06ebc2c2c52b4923a514bfa701";
+      hash = "sha256-1XOG7ILIgWa3uXUmAh9WTfSGLD/76OsmWrUhIxm/zTg=";
+    };
+  };
+
   armTrustedFirmwareS905 = buildArmTrustedFirmware rec {
     extraMakeFlags = [ "bl31" ];
     platform = "gxbb";
diff --git a/nixpkgs/pkgs/misc/calaos/installer/default.nix b/nixpkgs/pkgs/misc/calaos/installer/default.nix
index 7b24ddb94d9d..fc312b1d519c 100644
--- a/nixpkgs/pkgs/misc/calaos/installer/default.nix
+++ b/nixpkgs/pkgs/misc/calaos/installer/default.nix
@@ -26,6 +26,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Calaos Installer, a tool to create calaos configuration";
+    mainProgram = "calaos_installer";
     homepage = "https://www.calaos.fr/";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/misc/cups/drivers/cups-drv-rastertosag-gdi/default.nix b/nixpkgs/pkgs/misc/cups/drivers/cups-drv-rastertosag-gdi/default.nix
index 4f1ad6c9911e..162910827f89 100644
--- a/nixpkgs/pkgs/misc/cups/drivers/cups-drv-rastertosag-gdi/default.nix
+++ b/nixpkgs/pkgs/misc/cups/drivers/cups-drv-rastertosag-gdi/default.nix
@@ -42,6 +42,7 @@ python3Packages.buildPythonApplication rec {
   '';
   meta = {
     description = "CUPS driver for Ricoh Aficio SP 1000S and SP 1100S printers";
+    mainProgram = "rastertosag-gdi";
     downloadPage = "https://www.openprinting.org/download/printing/rastertosag-gdi/";
     homepage = "https://www.openprinting.org/driver/rastertosag-gdi/";
     license = lib.licenses.free;  # just "GPL", according to README
diff --git a/nixpkgs/pkgs/misc/drivers/epsonscan2/default.nix b/nixpkgs/pkgs/misc/drivers/epsonscan2/default.nix
index 69c4c03b95e6..01d8e5c8f83b 100644
--- a/nixpkgs/pkgs/misc/drivers/epsonscan2/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/epsonscan2/default.nix
@@ -136,6 +136,7 @@ stdenv.mkDerivation {
 
   meta = {
     inherit description;
+    mainProgram = "epsonscan2";
     longDescription = ''
       Epson Scan 2 scanner driver including optional non-free plugins such as OCR and network
       scanning.
diff --git a/nixpkgs/pkgs/misc/drivers/foomatic-filters/default.nix b/nixpkgs/pkgs/misc/drivers/foomatic-filters/default.nix
index c9a7d10bd8b0..600ab615d89c 100644
--- a/nixpkgs/pkgs/misc/drivers/foomatic-filters/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/foomatic-filters/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Foomatic printing filters";
+    mainProgram = "foomatic-rip";
     maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/misc/drivers/m33-linux/default.nix b/nixpkgs/pkgs/misc/drivers/m33-linux/default.nix
index 188013d0c644..7d9f8a406290 100644
--- a/nixpkgs/pkgs/misc/drivers/m33-linux/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/m33-linux/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/donovan6000/M3D-Linux";
     description = "A Linux program that can communicate with the Micro 3D printer";
+    mainProgram = "m33-linux";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
diff --git a/nixpkgs/pkgs/misc/drivers/moltengamepad/default.nix b/nixpkgs/pkgs/misc/drivers/moltengamepad/default.nix
index 747866b9cfc9..65259d73f2c7 100644
--- a/nixpkgs/pkgs/misc/drivers/moltengamepad/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/moltengamepad/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/jgeumlek/MoltenGamepad";
     description = "Flexible Linux input device translator, geared for gamepads";
+    mainProgram = "moltengamepad";
     license = licenses.mit;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/misc/drivers/utsushi/default.nix b/nixpkgs/pkgs/misc/drivers/utsushi/default.nix
index e270a21f5d5f..d4e6c6ed4a96 100644
--- a/nixpkgs/pkgs/misc/drivers/utsushi/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/utsushi/default.nix
@@ -106,6 +106,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "SANE utsushi backend for some Epson scanners";
+    mainProgram = "utsushi";
     longDescription = ''
       ImageScanV3 (aka utsushi) scanner driver. Non-free plugins are not
       included, so no network support. To use the SANE backend, in
diff --git a/nixpkgs/pkgs/misc/drivers/xwiimote/default.nix b/nixpkgs/pkgs/misc/drivers/xwiimote/default.nix
index 69ffcdd78865..14f22c9463ed 100644
--- a/nixpkgs/pkgs/misc/drivers/xwiimote/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/xwiimote/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://dvdhrm.github.io/xwiimote";
     description = "Userspace utilities to control connected Nintendo Wii Remotes";
+    mainProgram = "xwiishow";
     platforms = lib.platforms.linux;
     license = lib.licenses.mit;
   };
diff --git a/nixpkgs/pkgs/misc/fastly/default.nix b/nixpkgs/pkgs/misc/fastly/default.nix
index 7c6f44e09730..447f582cb011 100644
--- a/nixpkgs/pkgs/misc/fastly/default.nix
+++ b/nixpkgs/pkgs/misc/fastly/default.nix
@@ -10,13 +10,13 @@
 
 buildGoModule rec {
   pname = "fastly";
-  version = "10.8.4";
+  version = "10.8.8";
 
   src = fetchFromGitHub {
     owner = "fastly";
     repo = "cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-l81DZUWP7/rCEkE/ZPuwcnVGOcbSFKe88lfduJdygu4=";
+    hash = "sha256-GdreswHR+avk5AYJwcoxqF/MlrcHX9NLNpgST5+0kVc=";
     # The git commit is part of the `fastly version` original output;
     # leave that output the same in nixpkgs. Use the `.git` directory
     # to retrieve the commit SHA, and remove the directory afterwards,
@@ -33,7 +33,7 @@ buildGoModule rec {
     "cmd/fastly"
   ];
 
-  vendorHash = "sha256-lTpj9fZ4SJzOdLwIVZxiZCUJxHC41BvwvDOctwckO5k=";
+  vendorHash = "sha256-irBqINffT7aMOn4NyuYmSuo+E4Rw7ifAIMV0QpKm0So=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/misc/ghostscript/default.nix b/nixpkgs/pkgs/misc/ghostscript/default.nix
index daf7758b1184..1420290055cb 100644
--- a/nixpkgs/pkgs/misc/ghostscript/default.nix
+++ b/nixpkgs/pkgs/misc/ghostscript/default.nix
@@ -188,7 +188,7 @@ stdenv.mkDerivation rec {
       operations in the PostScript language, and (iii) a wide variety
       of output drivers for various file formats and printers.
     '';
-    license = lib.licenses.agpl3;
+    license = lib.licenses.agpl3Plus;
     platforms = lib.platforms.all;
     maintainers = [ lib.maintainers.viric ];
     mainProgram = "gs";
diff --git a/nixpkgs/pkgs/misc/jitsi-meet-prosody/default.nix b/nixpkgs/pkgs/misc/jitsi-meet-prosody/default.nix
index a30856e42dc8..01ffc8ebea0c 100644
--- a/nixpkgs/pkgs/misc/jitsi-meet-prosody/default.nix
+++ b/nixpkgs/pkgs/misc/jitsi-meet-prosody/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "jitsi-meet-prosody";
-  version = "1.0.7762";
+  version = "1.0.7874";
   src = fetchurl {
     url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
-    sha256 = "AbIr+nJEccZFWDbuo+VeTEpLkreOBzKkrJFZFvY1ppI=";
+    sha256 = "VI43yeuc1fkKv94A1d7hp4ptATT5XrpLXkTnaBpl7Hc=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/misc/rivalcfg/default.nix b/nixpkgs/pkgs/misc/rivalcfg/default.nix
index f0a1d05d5f1c..7cfc23ffc367 100644
--- a/nixpkgs/pkgs/misc/rivalcfg/default.nix
+++ b/nixpkgs/pkgs/misc/rivalcfg/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "rivalcfg";
-  version = "4.11.0";
+  version = "4.12.0";
 
   src = fetchFromGitHub {
     owner = "flozz";
     repo = "rivalcfg";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-6hgGb2BlXbnJ6uHbk8EUqrS/G1y65jTcw0zVCKt5+3k=";
+    sha256 = "sha256-fkZvEaJJIfzyVyXhlb7Jlv5dASNKyclDIlyXU0uu5wo=";
   };
 
   propagatedBuildInputs = with python3Packages; [ hidapi setuptools ];
diff --git a/nixpkgs/pkgs/misc/scrcpy/default.nix b/nixpkgs/pkgs/misc/scrcpy/default.nix
index a1c8fb43c20f..6f2fde718dce 100644
--- a/nixpkgs/pkgs/misc/scrcpy/default.nix
+++ b/nixpkgs/pkgs/misc/scrcpy/default.nix
@@ -16,12 +16,12 @@
 }:
 
 let
-  version = "2.3.1";
+  version = "2.4";
   prebuilt_server = fetchurl {
     name = "scrcpy-server";
     inherit version;
     url = "https://github.com/Genymobile/scrcpy/releases/download/v${version}/scrcpy-server-v${version}";
-    hash = "sha256-9oFIIvwwinpTLyU0hckDgYPGKWpsXfRwqeODtPjnYFs=";
+    hash = "sha256-k8Jyt0OGBcBV4Sf3REBk7Xj6nKSfgRVnd/0gHnnOe6M=";
   };
 in
 stdenv.mkDerivation rec {
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     owner = "Genymobile";
     repo = "scrcpy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RM29WjzsYnn26x/Xr2RKp0p87/v+Jl8skEcAwxhZEtU=";
+    hash = "sha256-x1feZgCR3ZUi40/YZSjDULYk4W9Pjo17cn8RqcOoeoE=";
   };
 
   #   display.c: When run without a hardware accelerator, this allows the command to continue working rather than failing unexpectedly.
diff --git a/nixpkgs/pkgs/misc/screensavers/alock/default.nix b/nixpkgs/pkgs/misc/screensavers/alock/default.nix
index 46af4b303dd6..65a04839096f 100644
--- a/nixpkgs/pkgs/misc/screensavers/alock/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/alock/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Arkq/alock";
     description = "Simple screen lock application for X server";
+    mainProgram = "alock";
     longDescription = ''
       alock locks the X server until the user enters a password
       via the keyboard. If the authentication was successful
diff --git a/nixpkgs/pkgs/misc/screensavers/i3lock-pixeled/default.nix b/nixpkgs/pkgs/misc/screensavers/i3lock-pixeled/default.nix
index cb7a2fd1e184..ce7eab2b1dae 100644
--- a/nixpkgs/pkgs/misc/screensavers/i3lock-pixeled/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/i3lock-pixeled/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple i3lock helper which pixels a screenshot by scaling it down and up to get a pixeled version of the screen when the lock is active";
+    mainProgram = "i3lock-pixeled";
     homepage = "https://gitlab.com/Ma27/i3lock-pixeled";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/misc/screensavers/multilockscreen/default.nix b/nixpkgs/pkgs/misc/screensavers/multilockscreen/default.nix
index b0c157c778ad..ad8045e70528 100644
--- a/nixpkgs/pkgs/misc/screensavers/multilockscreen/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/multilockscreen/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Wrapper script for i3lock-color";
+    mainProgram = "multilockscreen";
     longDescription = ''
       multilockscreen is a wrapper script for i3lock-color.
       It allows you to cache background images for i3lock-color with a variety of different effects and adds a stylish indicator.
diff --git a/nixpkgs/pkgs/misc/screensavers/physlock/default.nix b/nixpkgs/pkgs/misc/screensavers/physlock/default.nix
index b5e9ba8d2b6a..dbe5e724835c 100644
--- a/nixpkgs/pkgs/misc/screensavers/physlock/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/physlock/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A secure suspend/hibernate-friendly alternative to `vlock -an`";
+    mainProgram = "physlock";
     license = licenses.gpl2;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/misc/screensavers/pipes-rs/default.nix b/nixpkgs/pkgs/misc/screensavers/pipes-rs/default.nix
index f0e4eca9fa54..858b63473945 100644
--- a/nixpkgs/pkgs/misc/screensavers/pipes-rs/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/pipes-rs/default.nix
@@ -26,6 +26,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "An over-engineered rewrite of pipes.sh in Rust";
+    mainProgram = "pipes-rs";
     homepage = "https://github.com/lhvy/pipes-rs";
     license = licenses.blueOak100;
     maintainers = [ maintainers.vanilla ];
diff --git a/nixpkgs/pkgs/misc/screensavers/slock/default.nix b/nixpkgs/pkgs/misc/screensavers/slock/default.nix
index 09fccd11d9e9..782557625338 100644
--- a/nixpkgs/pkgs/misc/screensavers/slock/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/slock/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://tools.suckless.org/slock";
     description = "Simple X display locker";
+    mainProgram = "slock";
     longDescription = ''
       Simple X display locker. This is the simplest X screen locker.
     '';
diff --git a/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix b/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix
index 2345c3bf9872..79b4adae6eb2 100644
--- a/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xlockmore";
-  version = "5.75";
+  version = "5.76";
 
   src = fetchurl {
     url = "http://sillycycle.com/xlock/xlockmore-${version}.tar.xz";
-    sha256 = "sha256-ldDfx1w+RO2CjowSqTiS6JU28dtIr0+4thZon2hIBrg=";
+    sha256 = "sha256-gnn7crvjflmW05+J8EIg0pbK11IGlXz/EbCqc7gFvfM=";
     curlOpts = "--user-agent 'Mozilla/5.0'";
   };
 
diff --git a/nixpkgs/pkgs/misc/screensavers/xssproxy/default.nix b/nixpkgs/pkgs/misc/screensavers/xssproxy/default.nix
index 6f28a9ce132e..2ec28be87649 100644
--- a/nixpkgs/pkgs/misc/screensavers/xssproxy/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/xssproxy/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Forward freedesktop.org Idle Inhibition Service calls to Xss";
+    mainProgram = "xssproxy";
     homepage = "https://github.com/vincentbernat/xssproxy";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ benley ];
diff --git a/nixpkgs/pkgs/misc/stabber/default.nix b/nixpkgs/pkgs/misc/stabber/default.nix
index 7ec9a8985e1d..c0b34982303d 100644
--- a/nixpkgs/pkgs/misc/stabber/default.nix
+++ b/nixpkgs/pkgs/misc/stabber/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Stubbed XMPP Server";
+    mainProgram = "stabber";
     homepage = "https://github.com/profanity-im/stabber";
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/misc/uboot/0001-configs-rpi-allow-for-bigger-kernels.patch b/nixpkgs/pkgs/misc/uboot/0001-configs-rpi-allow-for-bigger-kernels.patch
index 3a6fbeaef411..b90cc6ef0781 100644
--- a/nixpkgs/pkgs/misc/uboot/0001-configs-rpi-allow-for-bigger-kernels.patch
+++ b/nixpkgs/pkgs/misc/uboot/0001-configs-rpi-allow-for-bigger-kernels.patch
@@ -1,17 +1,8 @@
-From 3d0ce353cf62efea11aa88f814aa23bf8c04acc9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <milan@petabyte.dev>
-Date: Mon, 11 Jan 2021 15:13:10 +0100
-Subject: [PATCH] configs/rpi: allow for bigger kernels
-
----
- include/configs/rpi.h | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/include/configs/rpi.h b/include/configs/rpi.h
-index 834f1cd..10ab1e7 100644
---- a/include/configs/rpi.h
-+++ b/include/configs/rpi.h
-@@ -153,20 +153,20 @@
+diff --git a/board/raspberrypi/rpi/rpi.env b/board/raspberrypi/rpi/rpi.env
+index 30228285ed..0327ef74fa 100644
+--- a/board/raspberrypi/rpi/rpi.env
++++ b/board/raspberrypi/rpi/rpi.env
+@@ -55,11 +55,11 @@ dfu_alt_info+=zImage fat 0 1
   * more than ~700M away from the start of the kernel image but this number can
   * be larger OR smaller depending on e.g. the 'vmalloc=xxxM' command line
   * parameter given to the kernel. So reserving memory from low to high
@@ -25,21 +16,20 @@ index 834f1cd..10ab1e7 100644
 + * only 64M, the remaining 8M starting at 0x04800000 should allow reasonably
 + * sized initrds before they start colliding with U-Boot.
   */
- #define ENV_MEM_LAYOUT_SETTINGS \
- 	"fdt_high=" FDT_HIGH "\0" \
- 	"initrd_high=" INITRD_HIGH "\0" \
- 	"kernel_addr_r=0x00080000\0" \
--	"scriptaddr=0x02400000\0" \
--	"pxefile_addr_r=0x02500000\0" \
--	"fdt_addr_r=0x02600000\0" \
--	"ramdisk_addr_r=0x02700000\0"
-+	"scriptaddr=0x04500000\0" \
-+	"pxefile_addr_r=0x04600000\0" \
-+	"fdt_addr_r=0x04700000\0" \
-+	"ramdisk_addr_r=0x04800000\0"
+ #ifdef CONFIG_ARM64
+ fdt_high=ffffffffffffffff
+@@ -69,9 +69,9 @@ fdt_high=ffffffff
+ initrd_high=ffffffff
+ #endif
+ kernel_addr_r=0x00080000
+-scriptaddr=0x02400000
+-pxefile_addr_r=0x02500000
+-fdt_addr_r=0x02600000
+-ramdisk_addr_r=0x02700000
++scriptaddr=0x04500000
++pxefile_addr_r=0x04600000
++fdt_addr_r=0x04700000
++ramdisk_addr_r=0x04800000
  
- #if CONFIG_IS_ENABLED(CMD_MMC)
- 	#define BOOT_TARGET_MMC(func) \
--- 
-2.29.2
+ boot_targets=mmc usb pxe dhcp
 
diff --git a/nixpkgs/pkgs/misc/uboot/default.nix b/nixpkgs/pkgs/misc/uboot/default.nix
index 617b71a6b2a1..8063c663d3f7 100644
--- a/nixpkgs/pkgs/misc/uboot/default.nix
+++ b/nixpkgs/pkgs/misc/uboot/default.nix
@@ -13,6 +13,7 @@
 , meson-tools
 , ncurses
 , openssl
+, rkbin
 , swig
 , which
 , python3
@@ -21,15 +22,16 @@
 , armTrustedFirmwareAllwinnerH616
 , armTrustedFirmwareRK3328
 , armTrustedFirmwareRK3399
+, armTrustedFirmwareRK3588
 , armTrustedFirmwareS905
 , buildPackages
 }:
 
 let
-  defaultVersion = "2023.07.02";
+  defaultVersion = "2024.01";
   defaultSrc = fetchurl {
     url = "https://ftp.denx.de/pub/u-boot/u-boot-${defaultVersion}.tar.bz2";
-    hash = "sha256-a2pIWBwUq7D5W9h8GvTXQJIkBte4AQAqn5Ryf93gIdU=";
+    hash = "sha256-uZYR8e0je/NUG9yENLaMlqbgWWcGH5kkQ8swqr6+9bM=";
   };
 
   # Dependencies for the tools need to be included as either native or cross,
@@ -371,6 +373,20 @@ in {
     filesToInstall = ["u-boot-sunxi-with-spl.bin"];
   };
 
+  ubootOrangePi5 = buildUBoot {
+    defconfig = "orangepi-5-rk3588s_defconfig";
+    extraMeta.platforms = ["aarch64-linux"];
+    BL31 = "${armTrustedFirmwareRK3588}/bl31.elf";
+    ROCKCHIP_TPL = rkbin.TPL_RK3588;
+
+    # FIXME: applied upstream, remove in 2024.04
+    extraConfig = ''
+      CONFIG_ROCKCHIP_SPI_IMAGE=y
+    '';
+
+    filesToInstall = [ "u-boot.itb" "idbloader.img" "u-boot-rockchip.bin" "u-boot-rockchip-spi.bin" ];
+  };
+
   ubootOrangePiPc = buildUBoot {
     defconfig = "orangepi_pc_defconfig";
     extraMeta.platforms = ["armv7l-linux"];
@@ -515,6 +531,14 @@ in {
     filesToInstall = ["u-boot.bin"];
   };
 
+  ubootRock5ModelB = buildUBoot {
+    defconfig = "rock5b-rk3588_defconfig";
+    extraMeta.platforms = ["aarch64-linux"];
+    BL31 = "${armTrustedFirmwareRK3588}/bl31.elf";
+    ROCKCHIP_TPL = rkbin.TPL_RK3588;
+    filesToInstall = [ "u-boot.itb" "idbloader.img" "u-boot-rockchip.bin" "u-boot-rockchip-spi.bin" ];
+  };
+
   ubootRock64 = buildUBoot {
     defconfig = "rock64-rk3328_defconfig";
     extraMeta.platforms = [ "aarch64-linux" ];
diff --git a/nixpkgs/pkgs/misc/urbit/default.nix b/nixpkgs/pkgs/misc/urbit/default.nix
index fe31ca17f6aa..d601d4134703 100644
--- a/nixpkgs/pkgs/misc/urbit/default.nix
+++ b/nixpkgs/pkgs/misc/urbit/default.nix
@@ -10,15 +10,15 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "urbit";
-  version = "2.12";
+  version = "3.0";
 
   src = fetchzip {
     url = "https://github.com/urbit/vere/releases/download/vere-v${version}/${platform}.tgz";
     sha256 = {
-      x86_64-linux = "sha256-N8RYlafw0HcmtGAQMKQb1cG7AivOpWS/5rU8CESJWAw=";
-      aarch64-linux = "sha256-RsBtwxSdqHVXMk7or1nPAFWd6Ypa0SqjpTihv8riyk4=";
-      x86_64-darwin = "sha256-/QPI66/gl3mlQHc+8zrEyP4/Hv5vwXlEx1cW2mP33IY=";
-      aarch64-darwin = "sha256-+2DYohaBxVcR1ZOjuk6GWcNpzb6aJMXq6BxwWw1OeIY=";
+      x86_64-linux = "sha256-ip35d9YgwFEkNb+1h+8WYBgUm+QlckvHhlAT69TpeYg=";
+      aarch64-linux = "sha256-3TkK9YyFtEMpRjG/iKvxctD8pYRh0bWgH+3QWh++r5U=";
+      x86_64-darwin = "sha256-bvDZBSQmsXmJA2ZekWPr6krB0KzCFFly8KUqT5mVK1A=";
+      aarch64-darwin = "sha256-UybuCXpE/xwg4YmR3rpZiFTs1KQYAttpEjF/Fz+UD00=";
     }.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
   };
 
diff --git a/nixpkgs/pkgs/misc/vencord/default.nix b/nixpkgs/pkgs/misc/vencord/default.nix
index 50d62bb6cb95..3a3ea19b7c04 100644
--- a/nixpkgs/pkgs/misc/vencord/default.nix
+++ b/nixpkgs/pkgs/misc/vencord/default.nix
@@ -5,8 +5,8 @@
 , buildWebExtension ? false
 }:
 let
-  version = "1.7.0";
-  gitHash = "8ccd731";
+  version = "1.7.3";
+  gitHash = "caa14ec";
 in
 buildNpmPackage rec {
   pname = "vencord";
@@ -16,7 +16,7 @@ buildNpmPackage rec {
     owner = "Vendicated";
     repo = "Vencord";
     rev = "v${version}";
-    hash = "sha256-gbWmPRRLOXiLlkmcreuEkYRfY3dzrJS1dkM4/w4QmQ8=";
+    hash = "sha256-BsM7Gt1NEsZu/rxK58+Tix1xIJr6RvgbdjxVnro2soA=";
   };
 
   ESBUILD_BINARY_PATH = lib.getExe (esbuild.overrideAttrs (final: _: {
@@ -34,7 +34,7 @@ buildNpmPackage rec {
   npmRebuildFlags = [ "|| true" ];
 
   makeCacheWritable = true;
-  npmDepsHash = "sha256-uQj1dOBzMWNZoOHj2VlPJ0AX/5CSFH5Rv1Wgg4jwT2A=";
+  npmDepsHash = "sha256-XRVxF0dW0HIsLtijvxM/feW6rI/c4LsnA6Tmrp51arE=";
   npmFlags = [ "--legacy-peer-deps" ];
   npmBuildScript = if buildWebExtension then "buildWeb" else "build";
   npmBuildFlags = [ "--" "--standalone" "--disable-updater" ];
diff --git a/nixpkgs/pkgs/misc/vencord/package-lock.json b/nixpkgs/pkgs/misc/vencord/package-lock.json
index eaaec2ca45ea..5accca8740bf 100644
--- a/nixpkgs/pkgs/misc/vencord/package-lock.json
+++ b/nixpkgs/pkgs/misc/vencord/package-lock.json
@@ -1,12 +1,12 @@
 {
     "name": "vencord",
-    "version": "1.7.0",
+    "version": "1.7.3",
     "lockfileVersion": 3,
     "requires": true,
     "packages": {
         "": {
             "name": "vencord",
-            "version": "1.7.0",
+            "version": "1.7.3",
             "license": "GPL-3.0-or-later",
             "dependencies": {
                 "@sapphi-red/web-noise-suppressor": "0.3.3",
@@ -64,89 +64,18 @@
             }
         },
         "node_modules/@babel/code-frame": {
-            "version": "7.23.5",
-            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
-            "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
+            "version": "7.24.2",
+            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+            "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
             "dev": true,
             "dependencies": {
-                "@babel/highlight": "^7.23.4",
-                "chalk": "^2.4.2"
+                "@babel/highlight": "^7.24.2",
+                "picocolors": "^1.0.0"
             },
             "engines": {
                 "node": ">=6.9.0"
             }
         },
-        "node_modules/@babel/code-frame/node_modules/ansi-styles": {
-            "version": "3.2.1",
-            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-            "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-            "dev": true,
-            "dependencies": {
-                "color-convert": "^1.9.0"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/@babel/code-frame/node_modules/chalk": {
-            "version": "2.4.2",
-            "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-            "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-            "dev": true,
-            "dependencies": {
-                "ansi-styles": "^3.2.1",
-                "escape-string-regexp": "^1.0.5",
-                "supports-color": "^5.3.0"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/@babel/code-frame/node_modules/color-convert": {
-            "version": "1.9.3",
-            "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-            "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-            "dev": true,
-            "dependencies": {
-                "color-name": "1.1.3"
-            }
-        },
-        "node_modules/@babel/code-frame/node_modules/color-name": {
-            "version": "1.1.3",
-            "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-            "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
-            "dev": true
-        },
-        "node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
-            "version": "1.0.5",
-            "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-            "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
-            "dev": true,
-            "engines": {
-                "node": ">=0.8.0"
-            }
-        },
-        "node_modules/@babel/code-frame/node_modules/has-flag": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-            "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
-            "dev": true,
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/@babel/code-frame/node_modules/supports-color": {
-            "version": "5.5.0",
-            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-            "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-            "dev": true,
-            "dependencies": {
-                "has-flag": "^3.0.0"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
         "node_modules/@babel/helper-validator-identifier": {
             "version": "7.22.20",
             "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
@@ -157,14 +86,15 @@
             }
         },
         "node_modules/@babel/highlight": {
-            "version": "7.23.4",
-            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
-            "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
+            "version": "7.24.2",
+            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz",
+            "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
             "dev": true,
             "dependencies": {
                 "@babel/helper-validator-identifier": "^7.22.20",
                 "chalk": "^2.4.2",
-                "js-tokens": "^4.0.0"
+                "js-tokens": "^4.0.0",
+                "picocolors": "^1.0.0"
             },
             "engines": {
                 "node": ">=6.9.0"
@@ -242,9 +172,9 @@
             }
         },
         "node_modules/@csstools/css-parser-algorithms": {
-            "version": "2.6.0",
-            "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.0.tgz",
-            "integrity": "sha512-YfEHq0eRH98ffb5/EsrrDspVWAuph6gDggAE74ZtjecsmyyWpW768hOyiONa8zwWGbIWYfa2Xp4tRTrpQQ00CQ==",
+            "version": "2.6.1",
+            "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.1.tgz",
+            "integrity": "sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==",
             "dev": true,
             "funding": [
                 {
@@ -260,13 +190,13 @@
                 "node": "^14 || ^16 || >=18"
             },
             "peerDependencies": {
-                "@csstools/css-tokenizer": "^2.2.3"
+                "@csstools/css-tokenizer": "^2.2.4"
             }
         },
         "node_modules/@csstools/css-tokenizer": {
-            "version": "2.2.3",
-            "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz",
-            "integrity": "sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==",
+            "version": "2.2.4",
+            "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.4.tgz",
+            "integrity": "sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==",
             "dev": true,
             "funding": [
                 {
@@ -283,9 +213,9 @@
             }
         },
         "node_modules/@csstools/media-query-list-parser": {
-            "version": "2.1.8",
-            "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.8.tgz",
-            "integrity": "sha512-DiD3vG5ciNzeuTEoh74S+JMjQDs50R3zlxHnBnfd04YYfA/kh2KiBCGhzqLxlJcNq+7yNQ3stuZZYLX6wK/U2g==",
+            "version": "2.1.9",
+            "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.9.tgz",
+            "integrity": "sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA==",
             "dev": true,
             "funding": [
                 {
@@ -301,8 +231,8 @@
                 "node": "^14 || ^16 || >=18"
             },
             "peerDependencies": {
-                "@csstools/css-parser-algorithms": "^2.6.0",
-                "@csstools/css-tokenizer": "^2.2.3"
+                "@csstools/css-parser-algorithms": "^2.6.1",
+                "@csstools/css-tokenizer": "^2.2.4"
             }
         },
         "node_modules/@csstools/selector-specificity": {
@@ -855,9 +785,9 @@
             "dev": true
         },
         "node_modules/@types/filesystem": {
-            "version": "0.0.35",
-            "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.35.tgz",
-            "integrity": "sha512-1eKvCaIBdrD2mmMgy5dwh564rVvfEhZTWVQQGRNn0Nt4ZEnJ0C8oSUCzvMKRA4lGde5oEVo+q2MrTTbV/GHDCQ==",
+            "version": "0.0.36",
+            "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.36.tgz",
+            "integrity": "sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==",
             "dev": true,
             "dependencies": {
                 "@types/filewriter": "*"
@@ -882,9 +812,9 @@
             "dev": true
         },
         "node_modules/@types/lodash": {
-            "version": "4.14.202",
-            "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz",
-            "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==",
+            "version": "4.17.0",
+            "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz",
+            "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==",
             "dev": true
         },
         "node_modules/@types/minimist": {
@@ -894,9 +824,9 @@
             "dev": true
         },
         "node_modules/@types/node": {
-            "version": "18.19.19",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.19.tgz",
-            "integrity": "sha512-qqV6hSy9zACEhQUy5CEGeuXAZN0fNjqLWRIvOXOwdFYhFoKBiY08VKR5kgchr90+TitLVhpUEb54hk4bYaArUw==",
+            "version": "18.19.26",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.26.tgz",
+            "integrity": "sha512-+wiMJsIwLOYCvUqSdKTrfkS8mpTp+MPINe6+Np4TAGFWWRWiBQ5kSq9nZGCSPkzx9mvT+uEukzpX4MOSCydcvw==",
             "dev": true,
             "dependencies": {
                 "undici-types": "~5.26.4"
@@ -909,15 +839,15 @@
             "dev": true
         },
         "node_modules/@types/prop-types": {
-            "version": "15.7.11",
-            "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
-            "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==",
+            "version": "15.7.12",
+            "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz",
+            "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==",
             "dev": true
         },
         "node_modules/@types/react": {
-            "version": "18.2.60",
-            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.60.tgz",
-            "integrity": "sha512-dfiPj9+k20jJrLGOu9Nf6eqxm2EyJRrq2NvwOFsfbb7sFExZ9WELPs67UImHj3Ayxg8ruTtKtNnbjaF8olPq0A==",
+            "version": "18.2.69",
+            "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.69.tgz",
+            "integrity": "sha512-W1HOMUWY/1Yyw0ba5TkCV+oqynRjG7BnteBB+B7JmAK7iw3l2SW+VGOxL+akPweix6jk2NNJtyJKpn4TkpfK3Q==",
             "dev": true,
             "dependencies": {
                 "@types/prop-types": "*",
@@ -926,9 +856,9 @@
             }
         },
         "node_modules/@types/react-dom": {
-            "version": "18.2.19",
-            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.19.tgz",
-            "integrity": "sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==",
+            "version": "18.2.22",
+            "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz",
+            "integrity": "sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==",
             "dev": true,
             "dependencies": {
                 "@types/react": "*"
@@ -2833,9 +2763,9 @@
             }
         },
         "node_modules/get-tsconfig": {
-            "version": "4.7.2",
-            "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz",
-            "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==",
+            "version": "4.7.3",
+            "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz",
+            "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==",
             "dev": true,
             "dependencies": {
                 "resolve-pkg-maps": "^1.0.0"
@@ -3052,9 +2982,9 @@
             }
         },
         "node_modules/hasown": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
-            "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+            "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
             "dev": true,
             "dependencies": {
                 "function-bind": "^1.1.2"
@@ -4052,9 +3982,9 @@
             }
         },
         "node_modules/postcss": {
-            "version": "8.4.35",
-            "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
-            "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
+            "version": "8.4.38",
+            "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+            "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
             "dev": true,
             "funding": [
                 {
@@ -4073,7 +4003,7 @@
             "dependencies": {
                 "nanoid": "^3.3.7",
                 "picocolors": "^1.0.0",
-                "source-map-js": "^1.0.2"
+                "source-map-js": "^1.2.0"
             },
             "engines": {
                 "node": "^10 || ^12 || >=14"
@@ -4102,9 +4032,9 @@
             }
         },
         "node_modules/postcss-selector-parser": {
-            "version": "6.0.15",
-            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
-            "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
+            "version": "6.0.16",
+            "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
+            "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
             "dev": true,
             "dependencies": {
                 "cssesc": "^3.0.0",
@@ -4684,9 +4614,9 @@
             }
         },
         "node_modules/source-map-js": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
-            "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+            "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
             "dev": true,
             "engines": {
                 "node": ">=0.10.0"
@@ -5325,9 +5255,9 @@
             }
         },
         "node_modules/typescript": {
-            "version": "5.3.3",
-            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
-            "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+            "version": "5.4.3",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz",
+            "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==",
             "dev": true,
             "bin": {
                 "tsc": "bin/tsc",
diff --git a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix
index 7650dcdc8c70..14ede7949d0f 100644
--- a/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix
@@ -34,7 +34,7 @@ appleDerivation' (if headersOnly then stdenvNoCC else stdenv) (
       --replace "-Werror " ""
 
     substituteInPlace SETUP/kextsymboltool/Makefile \
-      --replace "-lstdc++" "-lc++ -lc++abi"
+      --replace "-lstdc++" "-lc++"
 
     substituteInPlace libsyscall/xcodescripts/mach_install_mig.sh \
       --replace "/usr/include" "/include" \
diff --git a/nixpkgs/pkgs/os-specific/darwin/libtapi/default.nix b/nixpkgs/pkgs/os-specific/darwin/libtapi/default.nix
index 5a72225eec30..cb6b3cf4b739 100644
--- a/nixpkgs/pkgs/os-specific/darwin/libtapi/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/libtapi/default.nix
@@ -40,15 +40,12 @@ stdenv.mkDerivation (finalAttrs: {
         let
           nativeCC = pkgsBuildBuild.stdenv.cc;
           nativeBintools = nativeCC.bintools.bintools;
-          nativeLibcxxabi = lib.getLib pkgsBuildBuild.libcxxabi;
           nativeToolchainFlags = [
             "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc"
             "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++"
             "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar"
             "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
             "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
-            "-DCMAKE_EXE_LINKER_FLAGS=-L${nativeLibcxxabi}/lib"
-            "-DCMAKE_SHARED_LINKER_FLAGS=-L${nativeLibcxxabi}/lib"
           ];
         in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
       )
@@ -70,6 +67,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Replaces the Mach-O Dynamic Library Stub files in Apple's SDKs to reduce the size";
+    mainProgram = "tapi";
     homepage = "https://github.com/tpoechtrager/apple-libtapi";
     license = licenses.ncsa;
     maintainers = with maintainers; [ matthewbauer ];
diff --git a/nixpkgs/pkgs/os-specific/darwin/maloader/default.nix b/nixpkgs/pkgs/os-specific/darwin/maloader/default.nix
deleted file mode 100644
index c59f854b8475..000000000000
--- a/nixpkgs/pkgs/os-specific/darwin/maloader/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, opencflite, clang, libcxx }:
-
-stdenv.mkDerivation {
-  pname = "maloader";
-  version = "unstable-2014-02-25";
-
-  src = fetchFromGitHub {
-    owner = "shinh";
-    repo = "maloader";
-    rev = "5f220393e0b7b9ad0cf1aba0e89df2b42a1f0442";
-    sha256 = "0dd1pn07x1y8pyn5wz8qcl1c1xwghyya4d060m3y9vx5dhv9xmzw";
-  };
-
-  postPatch = ''
-    sed -i \
-      -e '/if.*loadLibMac.*mypath/s|mypath|"'"$out/lib/"'"|' \
-      -e 's|libCoreFoundation\.so|${opencflite}/lib/&|' \
-      ld-mac.cc
-  '';
-
-  env.NIX_CFLAGS_COMPILE = "-I${lib.getDev libcxx}/include/c++/v1";
-  buildInputs = [ clang libcxx ];
-  buildFlags = [ "USE_LIBCXX=1" "release" ];
-
-  installPhase = ''
-    install -vD libmac.so "$out/lib/libmac.so"
-
-    for bin in extract macho2elf ld-mac; do
-      install -vD "$bin" "$out/bin/$bin"
-    done
-  '';
-
-  meta = {
-    description = "Mach-O loader for Linux";
-    homepage = "https://github.com/shinh/maloader";
-    license = lib.licenses.bsd2;
-    platforms = lib.platforms.linux;
-    broken = true; # 2018-09-08, no succesful build since 2017-08-21
-  };
-}
diff --git a/nixpkgs/pkgs/os-specific/darwin/moltenvk/MoltenVK.xcodeproj.patch b/nixpkgs/pkgs/os-specific/darwin/moltenvk/MoltenVK.xcodeproj.patch
deleted file mode 100644
index 83e020a1b848..000000000000
--- a/nixpkgs/pkgs/os-specific/darwin/moltenvk/MoltenVK.xcodeproj.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-diff --git a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj
-index c23afce4..12ac12f4 100644
---- a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj
-+++ b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj
-@@ -365,13 +365,6 @@
- /* End PBXBuildFile section */
- 
- /* Begin PBXContainerItemProxy section */
--		2F21D82E24983488009BEA5F /* PBXContainerItemProxy */ = {
--			isa = PBXContainerItemProxy;
--			containerPortal = A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */;
--			proxyType = 1;
--			remoteGlobalIDString = 2FEA0CFF2490381A00EEF3AD;
--			remoteInfo = "MoltenVKSPIRVToMSLConverter-tvOS";
--		};
- 		2FEA0D1B249040CA00EEF3AD /* PBXContainerItemProxy */ = {
- 			isa = PBXContainerItemProxy;
- 			containerPortal = A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */;
-@@ -400,27 +393,6 @@
- 			remoteGlobalIDString = A93903C71C57E9ED00FE90DC;
- 			remoteInfo = "MVKSPIRVToMSLConverter-macOS";
- 		};
--		A981499A1FB6B9CF005F00B4 /* PBXContainerItemProxy */ = {
--			isa = PBXContainerItemProxy;
--			containerPortal = A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */;
--			proxyType = 1;
--			remoteGlobalIDString = A93903B81C57E9D700FE90DC;
--			remoteInfo = "MVKSPIRVToMSLConverter-iOS";
--		};
--		A9B1C7F4251AA5AF001D12CC /* PBXContainerItemProxy */ = {
--			isa = PBXContainerItemProxy;
--			containerPortal = A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */;
--			proxyType = 1;
--			remoteGlobalIDString = A9092A8C1A81717B00051823;
--			remoteInfo = MoltenVKShaderConverter;
--		};
--		DCA2CEAE2A45DFD400FB75B6 /* PBXContainerItemProxy */ = {
--			isa = PBXContainerItemProxy;
--			containerPortal = A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */;
--			proxyType = 1;
--			remoteGlobalIDString = DCFD7F6F2A45BDA0007BBBF7;
--			remoteInfo = "MoltenVKShaderConverter-xrOS";
--		};
-		DCBC41212A45DB1000F49BD1 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = A9C86CB61C55B8350096CAF2 /* MoltenVKShaderConverter.xcodeproj */;
-@@ -1019,7 +998,6 @@
- 			buildRules = (
- 			);
- 			dependencies = (
--				2F21D82F24983488009BEA5F /* PBXTargetDependency */,
- 			);
- 			name = "MoltenVK-tvOS";
- 			productName = MoltenVK;
-@@ -1039,7 +1017,6 @@
- 			buildRules = (
- 			);
- 			dependencies = (
--				A981499B1FB6B9CF005F00B4 /* PBXTargetDependency */,
- 			);
- 			name = "MoltenVK-iOS";
- 			productName = MoltenVK;
-@@ -1059,7 +1036,6 @@
- 			buildRules = (
- 			);
- 			dependencies = (
--				A9B1C7F5251AA5AF001D12CC /* PBXTargetDependency */,
- 			);
- 			name = "MoltenVK-macOS";
- 			productName = MoltenVK;
-@@ -1476,29 +1452,6 @@
- 		};
- /* End PBXSourcesBuildPhase section */
- 
--/* Begin PBXTargetDependency section */
--		2F21D82F24983488009BEA5F /* PBXTargetDependency */ = {
--			isa = PBXTargetDependency;
--			name = "MoltenVKSPIRVToMSLConverter-tvOS";
--			targetProxy = 2F21D82E24983488009BEA5F /* PBXContainerItemProxy */;
--		};
--		A981499B1FB6B9CF005F00B4 /* PBXTargetDependency */ = {
--			isa = PBXTargetDependency;
--			name = "MVKSPIRVToMSLConverter-iOS";
--			targetProxy = A981499A1FB6B9CF005F00B4 /* PBXContainerItemProxy */;
--		};
--		A9B1C7F5251AA5AF001D12CC /* PBXTargetDependency */ = {
--			isa = PBXTargetDependency;
--			name = MoltenVKShaderConverter;
--			targetProxy = A9B1C7F4251AA5AF001D12CC /* PBXContainerItemProxy */;
--		};
--		DCA2CEAF2A45DFD400FB75B6 /* PBXTargetDependency */ = {
--			isa = PBXTargetDependency;
--			name = "MoltenVKShaderConverter-xrOS";
--			targetProxy = DCA2CEAE2A45DFD400FB75B6 /* PBXContainerItemProxy */;
--		};
--/* End PBXTargetDependency section */
--
- /* Begin XCBuildConfiguration section */
- 		2FEA0AB824902F9F00EEF3AD /* Debug */ = {
- 			isa = XCBuildConfiguration;
diff --git a/nixpkgs/pkgs/os-specific/darwin/moltenvk/MoltenVKShaderConverter.xcodeproj.patch b/nixpkgs/pkgs/os-specific/darwin/moltenvk/MoltenVKShaderConverter.xcodeproj.patch
deleted file mode 100644
index 3e48b2b5ba67..000000000000
--- a/nixpkgs/pkgs/os-specific/darwin/moltenvk/MoltenVKShaderConverter.xcodeproj.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj
-index c7842b63..d55f73ed 100644
---- a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj
-+++ b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj
-@@ -3,7 +3,7 @@
- 	archiveVersion = 1;
- 	classes = {
- 	};
--	objectVersion = 54;
-+	objectVersion = 48;
- 	objects = {
-
- /* Begin PBXBuildFile section */
-@@ -33,9 +33,6 @@
- 		A920A8AC251B75B70076851C /* GLSLToSPIRVConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = A920A8A2251B75B70076851C /* GLSLToSPIRVConverter.h */; };
- 		A920A8AD251B75B80076851C /* GLSLToSPIRVConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = A920A8A2251B75B70076851C /* GLSLToSPIRVConverter.h */; };
- 		A920A8AE251B75B80076851C /* GLSLToSPIRVConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = A920A8A2251B75B70076851C /* GLSLToSPIRVConverter.h */; };
--		A920A8AF251B77900076851C /* glslang.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A98386FD24EEE93700199A05 /* glslang.xcframework */; };
--		A920A8B0251B77910076851C /* glslang.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A98386FD24EEE93700199A05 /* glslang.xcframework */; };
--		A920A8B1251B77920076851C /* glslang.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A98386FD24EEE93700199A05 /* glslang.xcframework */; };
- 		A925B71B1C78DEB2006E7ECD /* libMoltenVKShaderConverter.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A93903C71C57E9ED00FE90DC /* libMoltenVKShaderConverter.a */; };
- 		A928C9191D0488DC00071B88 /* SPIRVConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A928C9171D0488DC00071B88 /* SPIRVConversion.h */; };
- 		A928C91A1D0488DC00071B88 /* SPIRVConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A928C9171D0488DC00071B88 /* SPIRVConversion.h */; };
-@@ -55,12 +52,6 @@
- 		A97CC7411C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A97CC73E1C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp */; };
- 		A98149681FB6A98A005F00B4 /* MVKStrings.h in Headers */ = {isa = PBXBuildFile; fileRef = A98149651FB6A98A005F00B4 /* MVKStrings.h */; };
- 		A98149691FB6A98A005F00B4 /* MVKStrings.h in Headers */ = {isa = PBXBuildFile; fileRef = A98149651FB6A98A005F00B4 /* MVKStrings.h */; };
--		A98386FA24EEE91A00199A05 /* SPIRVCross.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A98386F824EEE91A00199A05 /* SPIRVCross.xcframework */; };
--		A98386FB24EEE91A00199A05 /* SPIRVCross.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A98386F824EEE91A00199A05 /* SPIRVCross.xcframework */; };
--		A98386FC24EEE91A00199A05 /* SPIRVCross.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A98386F824EEE91A00199A05 /* SPIRVCross.xcframework */; };
--		A983870724EEE94800199A05 /* SPIRVTools.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A983870224EEE94800199A05 /* SPIRVTools.xcframework */; };
--		A983870824EEE94800199A05 /* SPIRVTools.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A983870224EEE94800199A05 /* SPIRVTools.xcframework */; };
--		A983870924EEE94800199A05 /* SPIRVTools.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A983870224EEE94800199A05 /* SPIRVTools.xcframework */; };
- 		A9A14E332244388700C080F3 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9A14E322244388700C080F3 /* Metal.framework */; };
- 		A9B51BDD225E98BB00AC74D2 /* MVKOSExtensions.mm in Sources */ = {isa = PBXBuildFile; fileRef = A9B51BDB225E98BB00AC74D2 /* MVKOSExtensions.mm */; };
- 		A9F042B21FB4D060009FCCB8 /* MVKCommonEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F042AA1FB4D060009FCCB8 /* MVKCommonEnvironment.h */; };
-@@ -115,9 +106,6 @@
- 			isa = PBXFrameworksBuildPhase;
- 			buildActionMask = 2147483647;
- 			files = (
--				A983870824EEE94800199A05 /* SPIRVTools.xcframework in Frameworks */,
--				A98386FB24EEE91A00199A05 /* SPIRVCross.xcframework in Frameworks */,
--				A920A8B0251B77910076851C /* glslang.xcframework in Frameworks */,
- 			);
- 			runOnlyForDeploymentPostprocessing = 0;
- 		};
-@@ -134,9 +122,6 @@
- 			isa = PBXFrameworksBuildPhase;
- 			buildActionMask = 2147483647;
- 			files = (
--				A983870724EEE94800199A05 /* SPIRVTools.xcframework in Frameworks */,
--				A98386FA24EEE91A00199A05 /* SPIRVCross.xcframework in Frameworks */,
--				A920A8AF251B77900076851C /* glslang.xcframework in Frameworks */,
- 			);
- 			runOnlyForDeploymentPostprocessing = 0;
- 		};
-@@ -144,9 +129,6 @@
- 			isa = PBXFrameworksBuildPhase;
- 			buildActionMask = 2147483647;
- 			files = (
--				A983870924EEE94800199A05 /* SPIRVTools.xcframework in Frameworks */,
--				A98386FC24EEE91A00199A05 /* SPIRVCross.xcframework in Frameworks */,
--				A920A8B1251B77920076851C /* glslang.xcframework in Frameworks */,
- 			);
- 			runOnlyForDeploymentPostprocessing = 0;
- 		};
-@@ -313,7 +295,7 @@
- 				A925B71D1C78DEBF006E7ECD /* PBXTargetDependency */,
- 			);
- 			name = MoltenVKShaderConverter;
--			productName = MetalGLShaderConverterTool;
-+			productName = MoltenVKShaderConverter;
- 			productReference = A964BD5F1C57EFBD00D930D8 /* MoltenVKShaderConverter */;
- 			productType = "com.apple.product-type.tool";
- 		};
-@@ -349,7 +331,7 @@
- 			dependencies = (
- 			);
- 			name = "MoltenVKShaderConverter-macOS";
--			productName = "MetalGLShaderConverter-macOS";
-+			productName = MoltenVKShaderConverter;
- 			productReference = A93903C71C57E9ED00FE90DC /* libMoltenVKShaderConverter.a */;
- 			productType = "com.apple.product-type.library.static";
- 		};
diff --git a/nixpkgs/pkgs/os-specific/darwin/moltenvk/default.nix b/nixpkgs/pkgs/os-specific/darwin/moltenvk/default.nix
index c6ada1f55d5f..4e332e6fe557 100644
--- a/nixpkgs/pkgs/os-specific/darwin/moltenvk/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/moltenvk/default.nix
@@ -1,26 +1,31 @@
-{ lib
-, overrideCC
-, stdenv
-, fetchFromGitHub
-, gitUpdater
-, cctools
-, sigtool
-, cereal
-, libcxx
-, glslang
-, spirv-cross
-, spirv-headers
-, spirv-tools
-, vulkan-headers
-, xcbuild
-, AppKit
-, Foundation
-, Libsystem
-, MacOSX-SDK
-, Metal
-, QuartzCore
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  gitUpdater,
+  cereal,
+  libcxx,
+  glslang,
+  simd,
+  spirv-cross,
+  spirv-headers,
+  spirv-tools,
+  vulkan-headers,
+  xcbuild,
+  AppKit,
+  Foundation,
+  Metal,
+  QuartzCore,
+  # MoltenVK supports using private APIs to implement some Vulkan functionality.
+  # Applications that use private APIs can’t be distributed on the App Store,
+  # but that’s not really a concern for nixpkgs, so use them by default.
+  # See: https://github.com/KhronosGroup/MoltenVK/blob/main/README.md#metal_private_api
+  enablePrivateAPIUsage ? true,
 }:
 
+let
+  inherit (stdenv.hostPlatform) isStatic;
+in
 stdenv.mkDerivation (finalAttrs: {
   pname = "MoltenVK";
   version = "1.2.7";
@@ -32,15 +37,20 @@ stdenv.mkDerivation (finalAttrs: {
     QuartzCore
     cereal
     glslang
+    simd
     spirv-cross
     spirv-headers
     spirv-tools
     vulkan-headers
   ];
 
-  nativeBuildInputs = [ cctools sigtool xcbuild ];
+  nativeBuildInputs = [ xcbuild ];
 
-  outputs = [ "out" "bin" "dev" ];
+  outputs = [
+    "out"
+    "bin"
+    "dev"
+  ];
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
@@ -49,106 +59,142 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-0+S/kueV+AEVt+oFnh4cgcDRVtEbUH1QiHFPhGhimCA=";
   };
 
-  patches = [
-    # Fix the Xcode projects to play nicely with `xcbuild`.
-    ./MoltenVKShaderConverter.xcodeproj.patch
-    ./MoltenVK.xcodeproj.patch
-  ];
-
   postPatch = ''
     # Move `mvkGitRevDerived.h` to a stable location
     substituteInPlace Scripts/gen_moltenvk_rev_hdr.sh \
       --replace-fail '$'''{BUILT_PRODUCTS_DIR}' "$NIX_BUILD_TOP/$sourceRoot/build/include" \
       --replace-fail '$(git rev-parse HEAD)' ${finalAttrs.src.rev}
-    # Use the SPIRV-Cross packaged in nixpkgs instead of one built specifically for MoltenVK.
-    substituteInPlace MoltenVK/MoltenVK.xcodeproj/project.pbxproj \
-      --replace-fail SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross SPIRV_CROSS_NAMESPACE_OVERRIDE=spirv_cross
+
+    # Modify MoltenVK Xcode projects to build with xcbuild and dependencies from nixpkgs.
+    for proj in MoltenVK MoltenVKShaderConverter; do
+      # Remove xcframework dependencies from the Xcode projects. The basic format is:
+      #     (children|files) = (
+      #         DCFD7F822A45BDA0007BBBF7 /* SPIRVCross.xcframework in Frameworks */,
+      #         etc
+      #     )
+      # This regex will only remove lines matching `xcframework` that are in these blocks
+      # to avoid accidentally corrupting the project.
+      sed -E -e '/(children|files) = /,/;/{/xcframework/d}' \
+        -i "$proj/$proj.xcodeproj/project.pbxproj"
+      # Ensure the namespace used is consistent with the spirv-cross package in nixpkgs.
+      substituteInPlace "$proj/$proj.xcodeproj/project.pbxproj" \
+        --replace-fail SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross SPIRV_CROSS_NAMESPACE_OVERRIDE=spirv_cross
+    done
     substituteInPlace MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj \
-      --replace-fail SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross SPIRV_CROSS_NAMESPACE_OVERRIDE=spirv_cross
-    # Adding all of `usr/include` from the SDK results in header conflicts with `libcxx.dev`.
-    # Work around it by symlinking just the SIMD stuff needed by MoltenVK.
+      --replace-fail MetalGLShaderConverterTool MoltenVKShaderConverter \
+      --replace-fail MetalGLShaderConverter-macOS MoltenVKShaderConverter
+
+    # Don’t try to build `xcframework`s because `xcbuild` can’t build them.
+    sed -e '/xcframework/d' -i Scripts/package_all.sh
+
+    # Remove vendored dependency links.
+    find . -lname '*/External/*' -delete
+
+    # The library will be linked in the install phase regardless of version,
+    # so truncate it if it exists to avoid link failures.
+    test -f Scripts/create_dylib.sh && truncate --size 0 Scripts/create_dylib.sh
+
+    # Link glslang source because MoltenVK needs non-public headers to build.
     mkdir -p build/include
-    ln -s "${MacOSX-SDK}/usr/include/simd" "build/include"
     ln -s "${glslang.src}" "build/include/glslang"
   '';
 
-  dontConfigure = true;
-
-  env.NIX_CFLAGS_COMPILE = toString [
-    "-isystem ${lib.getDev libcxx}/include/c++/v1"
-    "-I${lib.getDev spirv-cross}/include/spirv_cross"
-    "-I${lib.getDev spirv-headers}/include/spirv/unified1/"
+  env.NIX_CFLAGS_COMPILE = toString (
+    [
+      "-isystem ${lib.getDev libcxx}/include/c++/v1"
+      "-I${lib.getDev spirv-cross}/include/spirv_cross"
+      "-I${lib.getDev spirv-headers}/include/spirv/unified1"
+    ]
+    ++ lib.optional enablePrivateAPIUsage "-DMVK_USE_METAL_PRIVATE_API=1"
+  );
+
+  env.NIX_LDFLAGS = toString [
+    "-lMachineIndependent"
+    "-lGenericCodeGen"
+    "-lglslang"
+    "-lOSDependent"
+    "-lSPIRV"
+    "-lSPIRV-Tools"
+    "-lSPIRV-Tools-opt"
+    "-lspirv-cross-msl"
+    "-lspirv-cross-core"
+    "-lspirv-cross-glsl"
+    "-lspirv-cross-reflect"
   ];
 
   buildPhase = ''
+    runHook preBuild
+
     NIX_CFLAGS_COMPILE+=" \
       -I$NIX_BUILD_TOP/$sourceRoot/build/include \
       -I$NIX_BUILD_TOP/$sourceRoot/Common"
-    NIX_LDFLAGS+=" -L$NIX_BUILD_TOP/$sourceRoot/build/lib"
-
-    # Build each project on its own because `xcbuild` fails to build `MoltenVKPackaging.xcodeproj`.
-    build=$NIX_BUILD_TOP/$sourceRoot/build
-    mkdir -p "$build/bin" "$build/lib"
-
-    NIX_LDFLAGS+=" \
-      -lMachineIndependent \
-      -lGenericCodeGen \
-      -lglslang \
-      -lOSDependent \
-      -lSPIRV \
-      -lSPIRV-Tools \
-      -lSPIRV-Tools-opt \
-      -lspirv-cross-msl \
-      -lspirv-cross-core \
-      -lspirv-cross-glsl"
-
-    pushd MoltenVKShaderConverter
-    xcodebuild build \
-      -jobs $NIX_BUILD_CORES \
-      -configuration Release \
-      -project MoltenVKShaderConverter.xcodeproj \
-      -scheme MoltenVKShaderConverter \
-      -arch ${stdenv.hostPlatform.darwinArch}
-    declare -A products=( [MoltenVKShaderConverter]=bin [libMoltenVKShaderConverter.a]=lib )
-    for product in "''${!products[@]}"; do
-      cp MoltenVKShaderConverter-*/Build/Products/Release/$product "$build/''${products[$product]}/$product"
-    done
-    popd
-
-    NIX_LDFLAGS+=" \
-      -lobjc \
-      -lMoltenVKShaderConverter \
-      -lspirv-cross-reflect"
 
-    pushd MoltenVK
     xcodebuild build \
+      SYMROOT=$PWD/Products OBJROOT=$PWD/Intermedates \
       -jobs $NIX_BUILD_CORES \
       -configuration Release \
-      -project MoltenVK.xcodeproj \
-      -scheme MoltenVK-macOS \
+      -project MoltenVKPackaging.xcodeproj \
+      -scheme 'MoltenVK Package (macOS only)' \
+      -destination generic/platform=macOS \
       -arch ${stdenv.hostPlatform.darwinArch}
-    cp MoltenVK-*/Build/Products/Release/dynamic/libMoltenVK.dylib "$build/lib/libMoltenVK.dylib"
-    popd
+
+    runHook postBuild
   '';
 
+  postBuild =
+    if isStatic then
+      ''
+        mkdir -p Package/Release/MoltenVK/static
+        cp Products/Release/libMoltenVK.a Package/Release/MoltenVK/static
+      ''
+    else
+      ''
+        # MoltenVK’s Xcode project builds the dylib, but it doesn’t seem to work with
+        # xcbuild. This is based on the script versions prior to 1.2.8 used.
+        mkdir -p Package/Release/MoltenVK/dynamic/dylib
+        clang++ -Wl,-all_load -Wl,-w \
+          -dynamiclib \
+          -compatibility_version 1.0.0 -current_version 1.0.0 \
+          -LProducts/Release \
+          -framework AppKit \
+          -framework CoreGraphics \
+          -framework Foundation \
+          -framework IOKit \
+          -framework IOSurface \
+          -framework Metal \
+          -framework QuartzCore \
+          -lobjc \
+          -lMoltenVKShaderConverter \
+          -lspirv-cross-reflect \
+          -install_name "$out/lib/libMoltenVK.dylib" \
+          -o Package/Release/MoltenVK/dynamic/dylib/libMoltenVK.dylib \
+          -force_load Products/Release/libMoltenVK.a
+      '';
+
   installPhase = ''
-    mkdir -p "$out/lib" "$out/share/vulkan/icd.d" "$bin/bin" "$dev/include/MoltenVK"
-    cp build/bin/MoltenVKShaderConverter "$bin/bin/"
-    cp build/lib/libMoltenVK.dylib "$out/lib/"
-    cp MoltenVK/MoltenVK/API/* "$dev/include/MoltenVK"
-    install -m644 MoltenVK/icd/MoltenVK_icd.json "$out/share/vulkan/icd.d/MoltenVK_icd.json"
-    substituteInPlace $out/share/vulkan/icd.d/MoltenVK_icd.json \
+    runHook preInstall
+
+    libraryExtension=${if isStatic then ".a" else ".dylib"}
+    packagePath=${if isStatic then "static" else "dynamic/dylib"}
+
+    mkdir -p "$out/lib" "$out/share/vulkan/icd.d" "$bin/bin" "$dev"
+
+    cp Package/Release/MoltenVKShaderConverter/Tools/MoltenVKShaderConverter "$bin/bin"
+    cp -r Package/Release/MoltenVK/include "$dev"
+    cp Package/Release/MoltenVK/$packagePath/libMoltenVK$libraryExtension "$out/lib"
+
+    # Install ICD definition for use with vulkan-loader.
+    install -m644 MoltenVK/icd/MoltenVK_icd.json \
+      "$out/share/vulkan/icd.d/MoltenVK_icd.json"
+    substituteInPlace "$out/share/vulkan/icd.d/MoltenVK_icd.json" \
       --replace-fail ./libMoltenVK.dylib "$out/lib/libMoltenVK.dylib"
-  '';
 
-  postFixup = ''
-    install_name_tool -id "$out/lib/libMoltenVK.dylib" "$out/lib/libMoltenVK.dylib"
-    codesign -s - -f "$out/lib/libMoltenVK.dylib"
-    codesign -s - -f "$bin/bin/MoltenVKShaderConverter"
+    runHook postInstall
   '';
 
   passthru.updateScript = gitUpdater {
     rev-prefix = "v";
+    ignoredVersions = ".*-(beta|rc).*";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/os-specific/darwin/opencflite/default.nix b/nixpkgs/pkgs/os-specific/darwin/opencflite/default.nix
deleted file mode 100644
index 937d0763feff..000000000000
--- a/nixpkgs/pkgs/os-specific/darwin/opencflite/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, stdenv, fetchurl, icu, libuuid, tzdata }:
-
-stdenv.mkDerivation rec {
-  pname = "opencflite";
-  version = "476.19.0";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/opencflite/${pname}-${version}.tar.gz";
-    sha256 = "0jgmzs0ycl930hmzcvx0ykryik56704yw62w394q1q3xw5kkjn9v";
-  };
-
-  configureFlags = [ "--with-uuid=${libuuid.dev}" ];
-  buildInputs = [ icu tzdata.dev ];
-  enableParallelBuilding = true;
-
-  meta = {
-    description = "Cross platform port of the macOS CoreFoundation";
-    homepage = "https://sourceforge.net/projects/opencflite/";
-    license = lib.licenses.apsl20;
-  };
-}
diff --git a/nixpkgs/pkgs/os-specific/darwin/print-reexports/default.nix b/nixpkgs/pkgs/os-specific/darwin/print-reexports/default.nix
index 740bcb48ef59..992cf1bff8ea 100644
--- a/nixpkgs/pkgs/os-specific/darwin/print-reexports/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/print-reexports/default.nix
@@ -14,4 +14,5 @@ stdenv.mkDerivation {
     mkdir -p $out/bin
     mv print-reexports $out/bin
   '';
+  meta.mainProgram = "print-reexports";
 }
diff --git a/nixpkgs/pkgs/os-specific/darwin/rewrite-tbd/default.nix b/nixpkgs/pkgs/os-specific/darwin/rewrite-tbd/default.nix
index 7a5467dc92a4..527cca8e87c1 100644
--- a/nixpkgs/pkgs/os-specific/darwin/rewrite-tbd/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/rewrite-tbd/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/thefloweringash/rewrite-tbd/";
     description = "Rewrite filepath in .tbd to Nix applicable format";
+    mainProgram = "rewrite-tbd";
     platforms = platforms.unix;
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/os-specific/darwin/sketchybar/default.nix b/nixpkgs/pkgs/os-specific/darwin/sketchybar/default.nix
index 4ac6ef9c13c9..3081e40622c5 100644
--- a/nixpkgs/pkgs/os-specific/darwin/sketchybar/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/sketchybar/default.nix
@@ -22,13 +22,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "sketchybar";
-  version = "2.20.1";
+  version = "2.21.0";
 
   src = fetchFromGitHub {
     owner = "FelixKratz";
     repo = "SketchyBar";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-dyo4J3Qszq7SSXdAXmgm7xFhWE5Eqtr7yZpNGmtuphY=";
+    hash = "sha256-hTfQQjx6ai83zYFfccsz/KaoZUIj5Dfz4ENe59gS02E=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/os-specific/darwin/yabai/default.nix b/nixpkgs/pkgs/os-specific/darwin/yabai/default.nix
index cdae949ba982..fa8067d8d478 100644
--- a/nixpkgs/pkgs/os-specific/darwin/yabai/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/yabai/default.nix
@@ -17,7 +17,7 @@
 
 let
   pname = "yabai";
-  version = "6.0.15";
+  version = "7.0.2";
 
   test-version = testers.testVersion {
     package = yabai;
@@ -53,7 +53,7 @@ in
 
     src = fetchzip {
       url = "https://github.com/koekeishiya/yabai/releases/download/v${version}/yabai-v${version}.tar.gz";
-      hash = "sha256-L82N0IaC2OAZVhmu9NALencK78FeCZI2cWJyNkGH2vQ=";
+      hash = "sha256-FeNiJJM5vdzFT9s7N9cTjLYxKEfzZnKE9br13lkQhJo=";
     };
 
     nativeBuildInputs = [
@@ -89,7 +89,7 @@ in
       owner = "koekeishiya";
       repo = "yabai";
       rev = "v${version}";
-      hash = "sha256-buX6FRIXdM5VmYpA80eESDMPf+xeMfJJj0ulyx2g94M=";
+      hash = "sha256-/MOAKsY7MlRWdvUQwHeITTeGJbCUdX7blZZAl2zXuic=";
     };
 
     nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/os-specific/linux/915resolution/default.nix b/nixpkgs/pkgs/os-specific/linux/915resolution/default.nix
index b67d737034e4..6966a76cfa97 100644
--- a/nixpkgs/pkgs/os-specific/linux/915resolution/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/915resolution/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://915resolution.mango-lang.org/";
     description = "A tool to modify Intel 800/900 video BIOS";
+    mainProgram = "915resolution";
     platforms = [ "i686-linux" "x86_64-linux" ];
     license = licenses.publicDomain;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/acpi-call/default.nix b/nixpkgs/pkgs/os-specific/linux/acpi-call/default.nix
index b84ecd21293a..0da824b169e6 100644
--- a/nixpkgs/pkgs/os-specific/linux/acpi-call/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/acpi-call/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/nix-community/acpi_call";
     platforms = platforms.linux;
     description = "A module allowing arbitrary ACPI calls; use case: hybrid video";
+    mainProgram = "test_discrete_video_off.sh";
     license = licenses.gpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/acpi/default.nix b/nixpkgs/pkgs/os-specific/linux/acpi/default.nix
index d257553299cf..2b661e57c4cd 100644
--- a/nixpkgs/pkgs/os-specific/linux/acpi/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/acpi/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Show battery status and other ACPI information";
+    mainProgram = "acpi";
     longDescription = ''
       Linux ACPI client is a small command-line
       program that attempts to replicate the functionality of
diff --git a/nixpkgs/pkgs/os-specific/linux/acpitool/default.nix b/nixpkgs/pkgs/os-specific/linux/acpitool/default.nix
index d494e95e3db6..317ca54b7cde 100644
--- a/nixpkgs/pkgs/os-specific/linux/acpitool/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/acpitool/default.nix
@@ -44,6 +44,7 @@ in stdenv.mkDerivation rec {
 
   meta = {
     description = "A small, convenient command-line ACPI client with a lot of features";
+    mainProgram = "acpitool";
     homepage = "https://sourceforge.net/projects/acpitool/";
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.guibert ];
diff --git a/nixpkgs/pkgs/os-specific/linux/adcli/default.nix b/nixpkgs/pkgs/os-specific/linux/adcli/default.nix
index 66e017437f9d..5f94da21f207 100644
--- a/nixpkgs/pkgs/os-specific/linux/adcli/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/adcli/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.freedesktop.org/software/realmd/adcli/adcli.html";
     description = "A helper library and tools for Active Directory client operations.";
+    mainProgram = "adcli";
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ SohamG anthonyroussel ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/amdctl/default.nix b/nixpkgs/pkgs/os-specific/linux/amdctl/default.nix
index d0a15578857c..abc26aabf784 100644
--- a/nixpkgs/pkgs/os-specific/linux/amdctl/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/amdctl/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Set P-State voltages and clock speeds on recent AMD CPUs on Linux.";
+    mainProgram = "amdctl";
     homepage = "https://github.com/kevinlekiller/amdctl";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/os-specific/linux/apfs/default.nix b/nixpkgs/pkgs/os-specific/linux/apfs/default.nix
index 28505f8c9eee..68265f9f826c 100644
--- a/nixpkgs/pkgs/os-specific/linux/apfs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/apfs/default.nix
@@ -6,7 +6,7 @@
 }:
 
 let
-  tag = "0.3.7";
+  tag = "0.3.8";
 in
 stdenv.mkDerivation {
   pname = "apfs";
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
     owner = "linux-apfs";
     repo = "linux-apfs-rw";
     rev = "v${tag}";
-    hash = "sha256-LmUaIKZ1Msc4yAXNMzyDhPCPsQYeYnUbRF6pA9WvHYk=";
+    hash = "sha256-I/wuS4//bUiUW8NGW6aNVPzDtuY2lMUeFiv5y2c7TYY=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/aseq2json/default.nix b/nixpkgs/pkgs/os-specific/linux/aseq2json/default.nix
index ac1a8220d564..d828c808037a 100644
--- a/nixpkgs/pkgs/os-specific/linux/aseq2json/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/aseq2json/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Listens for MIDI events on the Alsa sequencer and outputs as JSON to stdout";
+    mainProgram = "aseq2json";
     homepage = "https://github.com/google/midi-dump-tools";
     license = licenses.asl20;
     maintainers = [ maintainers.queezle ];
diff --git a/nixpkgs/pkgs/os-specific/linux/autofs/default.nix b/nixpkgs/pkgs/os-specific/linux/autofs/default.nix
index 48d12abcf2f5..db0e7b48383f 100644
--- a/nixpkgs/pkgs/os-specific/linux/autofs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/autofs/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Kernel-based automounter";
+    mainProgram = "automount";
     homepage = "https://www.kernel.org/pub/linux/daemons/autofs/";
     license = lib.licenses.gpl2Plus;
     executables = [ "automount" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/batman-adv/batctl.nix b/nixpkgs/pkgs/os-specific/linux/batman-adv/batctl.nix
index b01f48a242a6..bb44ac5e99f5 100644
--- a/nixpkgs/pkgs/os-specific/linux/batman-adv/batctl.nix
+++ b/nixpkgs/pkgs/os-specific/linux/batman-adv/batctl.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://www.open-mesh.org/projects/batman-adv/wiki/Wiki";
     description = "B.A.T.M.A.N. routing protocol in a linux kernel module for layer 2, control tool";
+    mainProgram = "batctl";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ fpletz ];
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/beefi/default.nix b/nixpkgs/pkgs/os-specific/linux/beefi/default.nix
index 959a43faea91..39300b948976 100644
--- a/nixpkgs/pkgs/os-specific/linux/beefi/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/beefi/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A small script to create bootable EFISTUB kernel images";
+    mainProgram = "beefi";
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ tu-maurice ];
diff --git a/nixpkgs/pkgs/os-specific/linux/bolt/default.nix b/nixpkgs/pkgs/os-specific/linux/bolt/default.nix
index f81173095814..11973ba5a570 100644
--- a/nixpkgs/pkgs/os-specific/linux/bolt/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/bolt/default.nix
@@ -93,6 +93,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Thunderbolt 3 device management daemon";
+    mainProgram = "boltctl";
     homepage = "https://gitlab.freedesktop.org/bolt/bolt";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ callahad ];
diff --git a/nixpkgs/pkgs/os-specific/linux/bpfmon/default.nix b/nixpkgs/pkgs/os-specific/linux/bpfmon/default.nix
index f0815376c2a0..ca59dbde6bb8 100644
--- a/nixpkgs/pkgs/os-specific/linux/bpfmon/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/bpfmon/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "BPF based visual packet rate monitor";
+    mainProgram = "bpfmon";
     homepage = "https://github.com/bbonev/bpfmon";
     changelog = "https://github.com/bbonev/bpfmon/releases/tag/v${version}";
     maintainers = with maintainers; [ arezvov ];
diff --git a/nixpkgs/pkgs/os-specific/linux/bpftune/default.nix b/nixpkgs/pkgs/os-specific/linux/bpftune/default.nix
index 86c706ac2702..517cd04a455d 100644
--- a/nixpkgs/pkgs/os-specific/linux/bpftune/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/bpftune/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "BPF-based auto-tuning of Linux system parameters";
+    mainProgram = "bpftune";
     homepage = "https://github.com/oracle-samples/bpftune";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ nickcao ];
diff --git a/nixpkgs/pkgs/os-specific/linux/bridge-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/bridge-utils/default.nix
index a03cb12727ce..1753be599380 100644
--- a/nixpkgs/pkgs/os-specific/linux/bridge-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/bridge-utils/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "An userspace tool to configure linux bridges (deprecated in favour or iproute2).";
+    mainProgram = "brctl";
     homepage = "https://wiki.linuxfoundation.org/networking/bridge";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/cachefilesd/default.nix b/nixpkgs/pkgs/os-specific/linux/cachefilesd/default.nix
index 6c52eb4a7f60..12b9e1cf9919 100644
--- a/nixpkgs/pkgs/os-specific/linux/cachefilesd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/cachefilesd/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Local network file caching management daemon";
+    mainProgram = "cachefilesd";
     homepage = "https://people.redhat.com/dhowells/fscache/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/cannelloni/default.nix b/nixpkgs/pkgs/os-specific/linux/cannelloni/default.nix
index 0a27c53eefc8..86107d4f7aa0 100644
--- a/nixpkgs/pkgs/os-specific/linux/cannelloni/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/cannelloni/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A SocketCAN over Ethernet tunnel";
+    mainProgram = "cannelloni";
     homepage = "https://github.com/mguentner/cannelloni";
     platforms = platforms.linux;
     license = licenses.gpl2Only;
diff --git a/nixpkgs/pkgs/os-specific/linux/catfs/default.nix b/nixpkgs/pkgs/os-specific/linux/catfs/default.nix
index fb4d21820755..107dce2123db 100644
--- a/nixpkgs/pkgs/os-specific/linux/catfs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/catfs/default.nix
@@ -41,6 +41,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Caching filesystem written in Rust";
+    mainProgram = "catfs";
     homepage = "https://github.com/kahing/catfs";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/ch9344/default.nix b/nixpkgs/pkgs/os-specific/linux/ch9344/default.nix
index e7da864b90c1..42c26503ea15 100644
--- a/nixpkgs/pkgs/os-specific/linux/ch9344/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ch9344/default.nix
@@ -2,20 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "ch9344";
-  version = "1.9";
+  version = "2.0";
 
   src = fetchzip {
     name = "CH9344SER_LINUX.zip";
     url = "https://www.wch.cn/downloads/file/386.html#CH9344SER_LINUX.zip";
-    hash = "sha256-g55ftAfjKKlUFzGhI1a/O7Eqbz6rkGf1vWuEJjBZxBE=";
+    hash = "sha256-YKNMYpap7CjhgTIpd/M9+nB11NtpwGYT/P14J6q3XZg=";
   };
 
-  patches = lib.optionals (lib.versionAtLeast kernel.modDirVersion "6.1") [
-    # https://github.com/torvalds/linux/commit/a8c11c1520347be74b02312d10ef686b01b525f1
+  patches = [
     ./fix-incompatible-pointer-types.patch
-  ] ++ lib.optionals (lib.versionAtLeast kernel.modDirVersion "6.3") [
-    # https://github.com/torvalds/linux/commit/5d420399073770134d2b03e004b2c0201c7fa26f
-    ./fix-incompatible-pointer-types_6_3.patch
   ];
 
   sourceRoot = "${src.name}/driver";
diff --git a/nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch b/nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch
index 31088538733e..89c95347ed65 100644
--- a/nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch
+++ b/nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types.patch
@@ -1,22 +1,16 @@
 diff --git a/ch9344.c b/ch9344.c
-index 1e37293..a16af82 100644
+index bfa10bb..76a94a7 100644
 --- a/ch9344.c
 +++ b/ch9344.c
-@@ -79,7 +79,7 @@ static DEFINE_IDR(ch9344_minors);
- static DEFINE_MUTEX(ch9344_minors_lock);
- 
- static void ch9344_tty_set_termios(struct tty_struct *tty,
--                                   struct ktermios *termios_old);
-+                                   const struct ktermios *termios_old);
- 
- static int ch9344_get_portnum(int index);
- 
-@@ -1597,7 +1597,7 @@ u8 cal_recv_tmt(__le32 bd)
+@@ -837,7 +837,11 @@ static void ch9344_tty_close(struct tty_struct *tty, struct file *filp)
+ 	}
  }
  
- static void ch9344_tty_set_termios(struct tty_struct *tty,
--                                   struct ktermios *termios_old)
-+                                   const struct ktermios *termios_old)
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 6, 0))
++static ssize_t ch9344_tty_write(struct tty_struct *tty, const u8 *buf, size_t count)
++#else
+ static int ch9344_tty_write(struct tty_struct *tty, const unsigned char *buf, int count)
++#endif
  {
-     struct ch9344 *ch9344 = tty->driver_data;
-     struct ktermios *termios = &tty->termios;
+ 	struct ch9344 *ch9344 = tty->driver_data;
+ 	int stat;
diff --git a/nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types_6_3.patch b/nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types_6_3.patch
deleted file mode 100644
index b4cf265daac9..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/ch9344/fix-incompatible-pointer-types_6_3.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/ch9344.c b/ch9344.c
-index a16af82..8922ed9 100644
---- a/ch9344.c
-+++ b/ch9344.c
-@@ -774,7 +774,7 @@ static inline void *tty_get_portdata(struct ch9344_ttyport *port)
-     return (port->portdata);
- }
- 
--static void ch9344_port_dtr_rts(struct tty_port *port, int raise)
-+static void ch9344_port_dtr_rts(struct tty_port *port, bool raise)
- {
-     struct ch9344_ttyport *ttyport = container_of(port, struct ch9344_ttyport, port);
-     struct ch9344 *ch9344 = tty_get_portdata(ttyport);
diff --git a/nixpkgs/pkgs/os-specific/linux/checksec/default.nix b/nixpkgs/pkgs/os-specific/linux/checksec/default.nix
index 07574722cd20..488bfdff1a6a 100644
--- a/nixpkgs/pkgs/os-specific/linux/checksec/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/checksec/default.nix
@@ -97,6 +97,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool for checking security bits on executables";
+    mainProgram = "checksec";
     homepage = "https://www.trapkit.de/tools/checksec/";
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/compsize/default.nix b/nixpkgs/pkgs/os-specific/linux/compsize/default.nix
index 9d0dbeffaee3..441108b0e54f 100644
--- a/nixpkgs/pkgs/os-specific/linux/compsize/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/compsize/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "btrfs: Find compression type/ratio on a file or set of files";
+    mainProgram = "compsize";
     homepage = "https://github.com/kilobyte/compsize";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ CrazedProgrammer ];
diff --git a/nixpkgs/pkgs/os-specific/linux/conky/default.nix b/nixpkgs/pkgs/os-specific/linux/conky/default.nix
index ab55839c3408..0818850f7549 100644
--- a/nixpkgs/pkgs/os-specific/linux/conky/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/conky/default.nix
@@ -16,13 +16,14 @@
 
 , ncursesSupport      ? true      , ncurses       ? null
 , x11Support          ? true      , freetype, xorg
+, waylandSupport      ? true      , pango, wayland, wayland-protocols, wayland-scanner
 , xdamageSupport      ? x11Support, libXdamage    ? null
 , doubleBufferSupport ? x11Support
 , imlib2Support       ? x11Support, imlib2        ? null
 
 , luaSupport          ? true      , lua           ? null
 , luaImlib2Support    ? luaSupport && imlib2Support
-, luaCairoSupport     ? luaSupport && x11Support, cairo ? null
+, luaCairoSupport     ? luaSupport && (x11Support || waylandSupport), cairo ? null
 , toluapp ? null
 
 , wirelessSupport     ? true      , wirelesstools ? null
@@ -76,13 +77,13 @@ stdenv.mkDerivation rec {
     hash = "sha256-L8YSbdk+qQl17L4IRajFD/AEWRXb2w7xH9sM9qPGrQo=";
   };
 
-  postPatch = ''
-    sed -i -e '/include.*CheckIncludeFile)/i include(CheckIncludeFiles)' \
-      cmake/ConkyPlatformChecks.cmake
-  '' + optionalString docsSupport ''
+  postPatch = optionalString docsSupport ''
     substituteInPlace cmake/Conky.cmake --replace "# set(RELEASE true)" "set(RELEASE true)"
 
     cp ${catch2}/include/catch2/catch.hpp tests/catch2/catch.hpp
+  '' + optionalString waylandSupport ''
+    substituteInPlace src/CMakeLists.txt \
+      --replace 'COMMAND ''${Wayland_SCANNER}' 'COMMAND wayland-scanner'
   '';
 
   env = {
@@ -91,16 +92,21 @@ stdenv.mkDerivation rec {
     NIX_LDFLAGS = "-lgcc_s";
   };
 
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ glib libXinerama ]
+  nativeBuildInputs = [ cmake pkg-config ]
     ++ optionals docsSupport        [ docbook2x docbook_xsl docbook_xml_dtd_44 libxslt man less ]
+    ++ optional  waylandSupport     wayland-scanner
+    ++ optional  luaImlib2Support   toluapp
+    ++ optional  luaCairoSupport    toluapp
+    ;
+  buildInputs = [ glib libXinerama ]
     ++ optional  ncursesSupport     ncurses
     ++ optionals x11Support         [ freetype xorg.libICE xorg.libX11 xorg.libXext xorg.libXft xorg.libSM ]
+    ++ optionals waylandSupport     [ pango wayland wayland-protocols ]
     ++ optional  xdamageSupport     libXdamage
     ++ optional  imlib2Support      imlib2
     ++ optional  luaSupport         lua
-    ++ optionals luaImlib2Support   [ toluapp imlib2 ]
-    ++ optionals luaCairoSupport    [ toluapp cairo ]
+    ++ optional  luaImlib2Support   imlib2
+    ++ optional  luaCairoSupport    cairo
     ++ optional  wirelessSupport    wirelesstools
     ++ optional  curlSupport        curl
     ++ optional  rssSupport         libxml2
@@ -121,6 +127,7 @@ stdenv.mkDerivation rec {
     ++ optional (!ncursesSupport)   "-DBUILD_NCURSES=OFF"
     ++ optional rssSupport          "-DBUILD_RSS=ON"
     ++ optional (!x11Support)       "-DBUILD_X11=OFF"
+    ++ optional waylandSupport      "-DBUILD_WAYLAND=ON"
     ++ optional xdamageSupport      "-DBUILD_XDAMAGE=ON"
     ++ optional doubleBufferSupport "-DBUILD_XDBE=ON"
     ++ optional weatherMetarSupport "-DBUILD_WEATHER_METAR=ON"
@@ -141,6 +148,7 @@ stdenv.mkDerivation rec {
     homepage = "https://conky.cc";
     changelog = "https://github.com/brndnmtthws/conky/releases/tag/v${version}";
     description = "Advanced, highly configurable system monitor based on torsmo";
+    mainProgram = "conky";
     maintainers = [ maintainers.guibert ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/conspy/default.nix b/nixpkgs/pkgs/os-specific/linux/conspy/default.nix
index 00e97855e261..19b1565e435d 100644
--- a/nixpkgs/pkgs/os-specific/linux/conspy/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/conspy/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Linux text console viewer";
+    mainProgram = "conspy";
     license = licenses.epl10;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/cpupower-gui/default.nix b/nixpkgs/pkgs/os-specific/linux/cpupower-gui/default.nix
index 1f57bc9428f0..02a781d1f0cf 100644
--- a/nixpkgs/pkgs/os-specific/linux/cpupower-gui/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/cpupower-gui/default.nix
@@ -96,6 +96,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Change the frequency limits of your cpu and its governor";
+    mainProgram = "cpupower-gui";
     homepage = "https://github.com/vagnum08/cpupower-gui/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ unode ];
diff --git a/nixpkgs/pkgs/os-specific/linux/cpustat/default.nix b/nixpkgs/pkgs/os-specific/linux/cpustat/default.nix
index e5bbd388081e..3fb0e8e123a9 100644
--- a/nixpkgs/pkgs/os-specific/linux/cpustat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/cpustat/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "CPU usage monitoring tool";
+    mainProgram = "cpustat";
     homepage = "https://github.com/ColinIanKing/cpustat";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/cramfsswap/default.nix b/nixpkgs/pkgs/os-specific/linux/cramfsswap/default.nix
index f79921186388..c696df6f0084 100644
--- a/nixpkgs/pkgs/os-specific/linux/cramfsswap/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/cramfsswap/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Swap endianess of a cram filesystem (cramfs)";
+    mainProgram = "cramfsswap";
     homepage = "https://packages.debian.org/sid/utils/cramfsswap";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/cshatag/default.nix b/nixpkgs/pkgs/os-specific/linux/cshatag/default.nix
index 84de0c5dd11d..70fd5ccbb695 100644
--- a/nixpkgs/pkgs/os-specific/linux/cshatag/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/cshatag/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool to detect silent data corruption";
+    mainProgram = "cshatag";
     homepage = "https://github.com/rfjakob/cshatag";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/dcgm/default.nix b/nixpkgs/pkgs/os-specific/linux/dcgm/default.nix
index f3ebdf1427eb..cc9e26d2b707 100644
--- a/nixpkgs/pkgs/os-specific/linux/dcgm/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/dcgm/default.nix
@@ -105,10 +105,10 @@ in gcc11Stdenv.mkDerivation rec {
   strictDeps = true;
 
   nativeBuildInputs = [
-    # autoAddOpenGLRunpathHook does not actually depend on or incur any dependency
+    # autoAddDriverRunpath does not actually depend on or incur any dependency
     # of cudaPackages. It merely adds an impure, non-Nix PATH to the RPATHs of
     # executables that need to use cuda at runtime.
-    cudaPackages_12.autoAddOpenGLRunpathHook
+    cudaPackages_12.autoAddDriverRunpath
 
     cmake
     git
diff --git a/nixpkgs/pkgs/os-specific/linux/devmem2/default.nix b/nixpkgs/pkgs/os-specific/linux/devmem2/default.nix
index fbf47204b3e6..88a3877c37f2 100644
--- a/nixpkgs/pkgs/os-specific/linux/devmem2/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/devmem2/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Simple program to read/write from/to any location in memory";
+    mainProgram = "devmem2";
     homepage = "http://lartmaker.nl/lartware/port/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/disk-indicator/default.nix b/nixpkgs/pkgs/os-specific/linux/disk-indicator/default.nix
index f5c7f3bc774e..e0e238fd3560 100644
--- a/nixpkgs/pkgs/os-specific/linux/disk-indicator/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/disk-indicator/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "https://github.com/MeanEYE/Disk-Indicator";
     description = "A program that will turn a LED into a hard disk indicator";
+    mainProgram = "disk_indicator";
     longDescription = ''
       Small program for Linux that will turn your Scroll, Caps or Num Lock LED
       or LED on your ThinkPad laptop into a hard disk activity indicator.
diff --git a/nixpkgs/pkgs/os-specific/linux/dpdk-kmods/default.nix b/nixpkgs/pkgs/os-specific/linux/dpdk-kmods/default.nix
index a3e4f6663860..1dc026125c3d 100644
--- a/nixpkgs/pkgs/os-specific/linux/dpdk-kmods/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/dpdk-kmods/default.nix
@@ -2,20 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dpdk-kmods";
-  version = "2022-08-29";
+  version = "2023-02-05";
 
   src = fetchzip {
-    url = "https://git.dpdk.org/dpdk-kmods/snapshot/dpdk-kmods-4a589f7bed00fc7009c93d430bd214ac7ad2bb6b.tar.xz";
-    sha256 = "sha256-l9asJuw2nl63I1BxK6udy2pNunRiMJxyoXeg9V5+WgI=";
+    url = "https://git.dpdk.org/dpdk-kmods/snapshot/dpdk-kmods-e721c733cd24206399bebb8f0751b0387c4c1595.tar.xz";
+    sha256 = "sha256-AG5Lthp+CPR4R7I23DUmoWAmET8gLEFHHdjk2TUbQn4=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://git.launchpad.net/ubuntu/+source/dpdk-kmods/plain/debian/patches/0001-support-linux-5.18.patch?id=9d628c02c169d8190bc2cb6afd81e4d364c382cd";
-      sha256 = "sha256-j4kpx1DOnmf5lFxOhaVFNT7prEy1jrJERX2NFaybTPU=";
-    })
-  ];
-
   hardeningDisable = [ "pic" ];
 
   makeFlags = kernel.makeFlags ++ [
@@ -39,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = [ maintainers.mic92 ];
     platforms = platforms.linux;
+    broken = kernel.isHardened;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix b/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix
index c92f40e3935f..bd5d9db661a8 100644
--- a/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix
@@ -1,8 +1,7 @@
 { stdenv, lib
-, kernel
 , fetchurl
 , pkg-config, meson, ninja, makeWrapper
-, libbsd, numactl, libbpf, zlib, libelf, jansson, openssl, libpcap, rdma-core
+, libbsd, numactl, libbpf, zlib, elfutils, jansson, openssl, libpcap, rdma-core
 , doxygen, python3, pciutils
 , withExamples ? []
 , shared ? false
@@ -13,16 +12,13 @@
   )
 }:
 
-let
-  mod = kernel != null;
-  dpdkVersion = "23.07";
-in stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "dpdk";
-  version = "${dpdkVersion}" + lib.optionalString mod "-${kernel.version}";
+  version = "23.11";
 
   src = fetchurl {
-    url = "https://fast.dpdk.org/rel/dpdk-${dpdkVersion}.tar.xz";
-    sha256 = "sha256-4IYU6K65KUB9c9cWmZKJpE70A0NSJx8JOX7vkysjs9Y=";
+    url = "https://fast.dpdk.org/rel/dpdk-${version}.tar.xz";
+    sha256 = "sha256-ZPpY/fyelRDo5BTjvt0WW9PUykZaIxsoAyP4PNU/2GU=";
   };
 
   nativeBuildInputs = [
@@ -38,13 +34,13 @@ in stdenv.mkDerivation {
   buildInputs = [
     jansson
     libbpf
-    libelf
+    elfutils
     libpcap
     numactl
     openssl.dev
     zlib
     python3
-  ] ++ lib.optionals mod kernel.moduleBuildDependencies;
+  ];
 
   propagatedBuildInputs = [
     # Propagated to support current DPDK users in nixpkgs which statically link
@@ -56,21 +52,15 @@ in stdenv.mkDerivation {
 
   postPatch = ''
     patchShebangs config/arm buildtools
-  '' + lib.optionalString mod ''
-    # kernel_install_dir is hardcoded to `/lib/modules`; patch that.
-    sed -i "s,kernel_install_dir *= *['\"].*,kernel_install_dir = '$kmod/lib/modules/${kernel.modDirVersion}'," kernel/linux/meson.build
   '';
 
   mesonFlags = [
     "-Dtests=false"
     "-Denable_docs=true"
-    "-Denable_kmods=${lib.boolToString mod}"
+    "-Ddeveloper_mode=disabled"
   ]
-  # kni kernel driver is currently not compatble with 5.11
-  ++ lib.optional (mod && kernel.kernelOlder "5.11") "-Ddisable_drivers=kni"
   ++ [(if shared then "-Ddefault_library=shared" else "-Ddefault_library=static")]
   ++ lib.optional (machine != null) "-Dmachine=${machine}"
-  ++ lib.optional mod "-Dkernel_dir=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
   ++ lib.optional (withExamples != []) "-Dexamples=${builtins.concatStringsSep "," withExamples}";
 
   postInstall = ''
@@ -87,7 +77,6 @@ in stdenv.mkDerivation {
 
   outputs =
     [ "out" "doc" ]
-    ++ lib.optional mod "kmod"
     ++ lib.optional (withExamples != []) "examples";
 
   meta = with lib; {
@@ -96,6 +85,5 @@ in stdenv.mkDerivation {
     license = with licenses; [ lgpl21 gpl2 bsd2 ];
     platforms =  platforms.linux;
     maintainers = with maintainers; [ magenbluten orivej mic92 zhaofengli ];
-    broken = mod && kernel.isHardened;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/dstat/default.nix b/nixpkgs/pkgs/os-specific/linux/dstat/default.nix
index d79f9f4c61bf..75b613075e78 100644
--- a/nixpkgs/pkgs/os-specific/linux/dstat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/dstat/default.nix
@@ -34,6 +34,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "http://dag.wieers.com/home-made/dstat/";
     description = "Versatile resource statistics tool";
+    mainProgram = "dstat";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/os-specific/linux/earlyoom/default.nix b/nixpkgs/pkgs/os-specific/linux/earlyoom/default.nix
index ad7468bac0f5..d1d95b4d3f95 100644
--- a/nixpkgs/pkgs/os-specific/linux/earlyoom/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/earlyoom/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Early OOM Daemon for Linux";
+    mainProgram = "earlyoom";
     homepage = "https://github.com/rfjakob/earlyoom";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/ell/default.nix b/nixpkgs/pkgs/os-specific/linux/ell/default.nix
index 59f2a6965daf..9175f477bd60 100644
--- a/nixpkgs/pkgs/os-specific/linux/ell/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ell/default.nix
@@ -9,14 +9,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ell";
-  version = "0.62";
+  version = "0.63";
 
   outputs = [ "out" "dev" ];
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/libs/ell/ell.git";
     rev = version;
-    hash = "sha256-HgYwyE0jejEzg9LorjDz7F0GbiXUfYpKNJ+tFIBbYWA=";
+    hash = "sha256-husK3eurfL1NhRHgJUdFP6sYLqeZ4NSHa/tU8PUWmGo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/os-specific/linux/ethq/default.nix b/nixpkgs/pkgs/os-specific/linux/ethq/default.nix
index d103604294a4..5936447ac935 100644
--- a/nixpkgs/pkgs/os-specific/linux/ethq/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ethq/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Ethernet NIC Queue stats viewer";
+    mainProgram = "ethq";
     homepage = "https://github.com/isc-projects/ethq";
     license = licenses.mpl20;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/eventstat/default.nix b/nixpkgs/pkgs/os-specific/linux/eventstat/default.nix
index 0de1ded83543..3c551939c7cf 100644
--- a/nixpkgs/pkgs/os-specific/linux/eventstat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/eventstat/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple monitoring of system events";
+    mainProgram = "eventstat";
     homepage = "https://github.com/ColinIanKing/eventstat";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/fan2go/default.nix b/nixpkgs/pkgs/os-specific/linux/fan2go/default.nix
index c7176183018a..cb8ff5a84b74 100644
--- a/nixpkgs/pkgs/os-specific/linux/fan2go/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fan2go/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A simple daemon providing dynamic fan speed control based on temperature sensors";
+    mainProgram = "fan2go";
     homepage = "https://github.com/markusressel/fan2go";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ mtoohey ];
diff --git a/nixpkgs/pkgs/os-specific/linux/fanctl/default.nix b/nixpkgs/pkgs/os-specific/linux/fanctl/default.nix
index d8769b0f04de..f55779bd9165 100644
--- a/nixpkgs/pkgs/os-specific/linux/fanctl/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fanctl/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Replacement for fancontrol with more fine-grained control interface in its config file";
+    mainProgram = "fanctl";
     homepage = "https://gitlab.com/mcoffin/fanctl";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ icewind1991 ];
diff --git a/nixpkgs/pkgs/os-specific/linux/fbterm/default.nix b/nixpkgs/pkgs/os-specific/linux/fbterm/default.nix
index f762eca36beb..8704c72a21ba 100644
--- a/nixpkgs/pkgs/os-specific/linux/fbterm/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fbterm/default.nix
@@ -96,6 +96,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Framebuffer terminal emulator";
+    mainProgram = "fbterm";
     homepage = "https://salsa.debian.org/debian/fbterm";
     maintainers = with maintainers; [ lovesegfault raskin ];
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/b43-firmware-cutter/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/b43-firmware-cutter/default.nix
index fe7a3e9ae406..65e259667516 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/b43-firmware-cutter/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/b43-firmware-cutter/default.nix
@@ -18,8 +18,9 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Firmware extractor for cards supported by the b43 kernel module";
+    mainProgram = "b43-fwcutter";
     homepage = "http://wireless.kernel.org/en/users/Drivers/b43";
-    license = lib.licenses.free;
+    license = lib.licenses.bsd2;
     platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/bt-fw-converter/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/bt-fw-converter/default.nix
index a28189a9e474..988aabd85779 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/bt-fw-converter/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/bt-fw-converter/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation  rec {
   meta = with lib; {
     homepage = "https://github.com/winterheart/broadcom-bt-firmware/";
     description = "A tool that converts hex to hcd based on inf file";
+    mainProgram = "bt-fw-converter";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ zraexy ];
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/firmware-updater/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/firmware-updater/default.nix
index 2b280c72b1ca..98b9ff5d3388 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/firmware-updater/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/firmware-updater/default.nix
@@ -36,6 +36,7 @@ flutter.buildFlutterApplication rec {
 
   meta = with lib; {
     description = "Firmware Updater for Linux";
+    mainProgram = "firmware-updater";
     homepage = "https://github.com/canonical/firmware-updater";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ mkg20001 ];
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/ivsc-firmware/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/ivsc-firmware/default.nix
index 1a90380838a9..e2f2fd4f9fee 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/ivsc-firmware/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/ivsc-firmware/default.nix
@@ -23,6 +23,13 @@ stdenv.mkDerivation {
     cp --no-preserve=mode --recursive ./firmware/* $out/lib/firmware/vsc/
     install -D ./LICENSE $out/share/doc
 
+    mkdir -p $out/lib/firmware/vsc/soc_a1_prod
+    # According to Intel's documentation for prod platform the a1_prod postfix is need it (https://github.com/intel/ivsc-firmware)
+    # This fixes ipu6 webcams
+    for file in $out/lib/firmware/vsc/*.bin; do
+      ln -sf "$file" "$out/lib/firmware/vsc/soc_a1_prod/$(basename "$file" .bin)_a1_prod.bin"
+    done
+
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/linux-firmware/source.nix b/nixpkgs/pkgs/os-specific/linux/firmware/linux-firmware/source.nix
index 86dbbd11d92e..5088c1dc3320 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/linux-firmware/source.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/linux-firmware/source.nix
@@ -1,7 +1,7 @@
 # This file is autogenerated! Run ./update.sh to regenerate.
 {
-  version = "20240220";
-  revision = "20240220";
-  sourceHash = "sha256-IU2ak8L9kiVt/2hExSfhHJMqtD9QlYEuzW2qz3pP8aU=";
-  outputHash = "sha256-C5vt+tAQxVIMMht/QNQRMjD/9HQuLtL9bMvAwrLKXuo=";
+  version = "20240312";
+  revision = "20240312";
+  sourceHash = "sha256-fDrnI7H87vG4OpcmjMcRTio01oHI0Z2KUfe3NNeY3JY=";
+  outputHash = "sha256-GYmRaW6wsOR+pqeQDyGYUDh6HfEs+sEi5vQoBHEeX9I=";
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/fnotifystat/default.nix b/nixpkgs/pkgs/os-specific/linux/fnotifystat/default.nix
index c943ce26f91e..18afaaa6d29b 100644
--- a/nixpkgs/pkgs/os-specific/linux/fnotifystat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fnotifystat/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "File activity monitoring tool";
+    mainProgram = "fnotifystat";
     homepage = "https://github.com/ColinIanKing/fnotifystat";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/forkstat/default.nix b/nixpkgs/pkgs/os-specific/linux/forkstat/default.nix
index c87c69c07708..75ca64833a59 100644
--- a/nixpkgs/pkgs/os-specific/linux/forkstat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/forkstat/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Process fork/exec/exit monitoring tool";
+    mainProgram = "forkstat";
     homepage = "https://github.com/ColinIanKing/forkstat";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/freefall/default.nix b/nixpkgs/pkgs/os-specific/linux/freefall/default.nix
index 683b599e5beb..bad4849ca0bf 100644
--- a/nixpkgs/pkgs/os-specific/linux/freefall/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/freefall/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
     inherit (kernel.meta) homepage license;
 
     description = "Free-fall protection for spinning HP/Dell laptop hard drives";
+    mainProgram = "freefall";
     longDescription = ''
       Provides a shock protection facility in modern laptops with spinning hard
       drives, by stopping all input/output operations on the internal hard drive
diff --git a/nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix b/nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix
index fd925ab654fa..8b54a1f9a745 100644
--- a/nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
   meta = with lib; {
     description =
       "A high-level tool for the management of Linux filesystem encryption";
+    mainProgram = "fscrypt";
     longDescription = ''
       This tool manages metadata, key generation, key wrapping, PAM integration,
       and provides a uniform interface for creating and modifying encrypted
diff --git a/nixpkgs/pkgs/os-specific/linux/fscryptctl/default.nix b/nixpkgs/pkgs/os-specific/linux/fscryptctl/default.nix
index 2a2a9b41c9c2..4b38913b7122 100644
--- a/nixpkgs/pkgs/os-specific/linux/fscryptctl/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fscryptctl/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Small C tool for Linux filesystem encryption";
+    mainProgram = "fscryptctl";
     longDescription = ''
       fscryptctl is a low-level tool written in C that handles raw keys and
       manages policies for Linux filesystem encryption, specifically the
diff --git a/nixpkgs/pkgs/os-specific/linux/fsverity-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/fsverity-utils/default.nix
index b0b6286c8cfa..232fc1470465 100644
--- a/nixpkgs/pkgs/os-specific/linux/fsverity-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fsverity-utils/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.kernel.org/doc/html/latest/filesystems/fsverity.html#userspace-utility";
     changelog = "https://git.kernel.org/pub/scm/fs/fsverity/fsverity-utils.git/tree/NEWS.md";
     description = "A set of userspace utilities for fs-verity";
+    mainProgram = "fsverity";
     license = licenses.mit;
     maintainers = with maintainers; [ jk ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/fswebcam/default.nix b/nixpkgs/pkgs/os-specific/linux/fswebcam/default.nix
index 678e0d428419..1f45d7955da4 100644
--- a/nixpkgs/pkgs/os-specific/linux/fswebcam/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fswebcam/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Neat and simple webcam app";
+    mainProgram = "fswebcam";
     homepage = "http://www.sanslogic.co.uk/fswebcam";
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl2;
diff --git a/nixpkgs/pkgs/os-specific/linux/ftop/default.nix b/nixpkgs/pkgs/os-specific/linux/ftop/default.nix
index abd6d7884619..b199c84b9fb5 100644
--- a/nixpkgs/pkgs/os-specific/linux/ftop/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ftop/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Show progress of open files and file systems";
+    mainProgram = "ftop";
     homepage = "https://code.google.com/archive/p/ftop/";
     license = licenses.gpl3Plus;
     longDescription = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/fxload/default.nix b/nixpkgs/pkgs/os-specific/linux/fxload/default.nix
index e8b9d0648bd8..a4b204b571d4 100644
--- a/nixpkgs/pkgs/os-specific/linux/fxload/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fxload/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/libusb/libusb";
     description = "Tool to upload firmware to into an21, fx, fx2, fx2lp and fx3 ez-usb devices";
+    mainProgram = "fxload";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ realsnick ];
diff --git a/nixpkgs/pkgs/os-specific/linux/g15daemon/default.nix b/nixpkgs/pkgs/os-specific/linux/g15daemon/default.nix
index 823f523db242..90a818be4947 100644
--- a/nixpkgs/pkgs/os-specific/linux/g15daemon/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/g15daemon/default.nix
@@ -88,6 +88,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A daemon that makes it possible to use the Logitech keyboard G-Buttons and draw on various Logitech LCDs";
+    mainProgram = "g15daemon";
     inherit license maintainers;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/gfxtablet/default.nix b/nixpkgs/pkgs/os-specific/linux/gfxtablet/default.nix
index 608ca8e58cc5..3ee35844f999 100644
--- a/nixpkgs/pkgs/os-specific/linux/gfxtablet/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/gfxtablet/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Uinput driver for Android GfxTablet tablet-as-input-device app";
+    mainProgram = "networktablet";
     license = lib.licenses.mit ;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/google-authenticator/default.nix b/nixpkgs/pkgs/os-specific/linux/google-authenticator/default.nix
index fcf75ac7821a..02ca3d30d238 100644
--- a/nixpkgs/pkgs/os-specific/linux/google-authenticator/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/google-authenticator/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/google/google-authenticator-libpam";
     description = "Two-step verification, with pam module";
+    mainProgram = "google-authenticator";
     license = licenses.asl20;
     maintainers = with maintainers; [ aneeshusa ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/gpu-switch/default.nix b/nixpkgs/pkgs/os-specific/linux/gpu-switch/default.nix
index 17452a5e2446..d6f749aa8f1e 100644
--- a/nixpkgs/pkgs/os-specific/linux/gpu-switch/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/gpu-switch/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation {
   '';
   meta = with lib; {
     description = "Application that allows to switch between the graphic cards of dual-GPU MacBook Pro models";
+    mainProgram = "gpu-switch";
     homepage = "https://github.com/0xbb/gpu-switch";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/gt/default.nix b/nixpkgs/pkgs/os-specific/linux/gt/default.nix
index 85897b72585e..9d35556358b5 100644
--- a/nixpkgs/pkgs/os-specific/linux/gt/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/gt/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Linux command line tool for setting up USB gadgets using configfs";
+    mainProgram = "gt";
     license = with lib.licenses; [ asl20 ];
     maintainers = with lib.maintainers; [ lheckemann ];
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/guvcview/default.nix b/nixpkgs/pkgs/os-specific/linux/guvcview/default.nix
index 6e073662c4e6..e08203873011 100644
--- a/nixpkgs/pkgs/os-specific/linux/guvcview/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/guvcview/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple interface for devices supported by the linux UVC driver";
+    mainProgram = "guvcview";
     homepage = "https://guvcview.sourceforge.net";
     maintainers = [ maintainers.coconnor ];
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/os-specific/linux/hd-idle/default.nix b/nixpkgs/pkgs/os-specific/linux/hd-idle/default.nix
index 13cb397b1798..7c2ac2894a55 100644
--- a/nixpkgs/pkgs/os-specific/linux/hd-idle/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/hd-idle/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Spins down external disks after a period of idle time";
+    mainProgram = "hd-idle";
     homepage = "https://github.com/adelolmo/hd-idle";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/hdapsd/default.nix b/nixpkgs/pkgs/os-specific/linux/hdapsd/default.nix
index 959fa9ac6e8a..e9dca6fd8927 100644
--- a/nixpkgs/pkgs/os-specific/linux/hdapsd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/hdapsd/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib;
     { description = "Hard Drive Active Protection System Daemon";
+      mainProgram = "hdapsd";
       homepage = "http://hdaps.sf.net/";
       license = licenses.gpl2;
       platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/health-check/default.nix b/nixpkgs/pkgs/os-specific/linux/health-check/default.nix
index b8737eb15302..e63b7ca7fe25 100644
--- a/nixpkgs/pkgs/os-specific/linux/health-check/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/health-check/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Process monitoring tool";
+    mainProgram = "health-check";
     homepage = "https://github.com/ColinIanKing/health-check";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/hibernate/default.nix b/nixpkgs/pkgs/os-specific/linux/hibernate/default.nix
index 1a7dd01e9771..71a93e4a154e 100644
--- a/nixpkgs/pkgs/os-specific/linux/hibernate/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/hibernate/default.nix
@@ -33,6 +33,7 @@ in
 
     meta = {
       description = "The `hibernate' script for swsusp and Tux-on-Ice";
+      mainProgram = "hibernate";
       longDescription = ''
         This package provides the `hibernate' script, a command-line utility
         that saves the computer's state to disk and switches it off, turning
diff --git a/nixpkgs/pkgs/os-specific/linux/hwdata/default.nix b/nixpkgs/pkgs/os-specific/linux/hwdata/default.nix
index 7aeea8a8b59a..f7303b182ec7 100644
--- a/nixpkgs/pkgs/os-specific/linux/hwdata/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/hwdata/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hwdata";
-  version = "0.379";
+  version = "0.380";
 
   src = fetchFromGitHub {
     owner = "vcrhonek";
     repo = "hwdata";
     rev = "v${version}";
-    hash = "sha256-6IMvnXP9uy8kAKRyzV/raZzUnpVCzp7SHnGt8qDUDXY=";
+    hash = "sha256-Ioa0tUiwgOZO3qrtwAr9A/yGfYTBk83OON8Sr47J9Mg=";
   };
 
   configureFlags = [ "--datadir=${placeholder "out"}/share" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/hyperv-daemons/default.nix b/nixpkgs/pkgs/os-specific/linux/hyperv-daemons/default.nix
index 12033063c165..619318d7e04c 100644
--- a/nixpkgs/pkgs/os-specific/linux/hyperv-daemons/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/hyperv-daemons/default.nix
@@ -97,6 +97,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Integration Services for running NixOS under HyperV";
+    mainProgram = "lsvmbus";
     longDescription = ''
       This packages contains the daemons that are used by the Hyper-V hypervisor
       on the host.
diff --git a/nixpkgs/pkgs/os-specific/linux/i7z/default.nix b/nixpkgs/pkgs/os-specific/linux/i7z/default.nix
index 9af2aba3d806..9bd5ca302da3 100644
--- a/nixpkgs/pkgs/os-specific/linux/i7z/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/i7z/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A better i7 (and now i3, i5) reporting tool for Linux";
+    mainProgram = "i7z";
     homepage = "https://github.com/DimitryAndric/i7z";
     license = licenses.gpl2;
     maintainers = with maintainers; [ bluescreen303 ];
diff --git a/nixpkgs/pkgs/os-specific/linux/ifenslave/default.nix b/nixpkgs/pkgs/os-specific/linux/ifenslave/default.nix
index d23fc101bcc0..cc132c69faf7 100644
--- a/nixpkgs/pkgs/os-specific/linux/ifenslave/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ifenslave/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Utility for enslaving networking interfaces under a bond";
+    mainProgram = "ifenslave";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/iio-sensor-proxy/default.nix b/nixpkgs/pkgs/os-specific/linux/iio-sensor-proxy/default.nix
index 3da9396d618e..38c30dc43687 100644
--- a/nixpkgs/pkgs/os-specific/linux/iio-sensor-proxy/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iio-sensor-proxy/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Proxy for sending IIO sensor data to D-Bus";
+    mainProgram = "monitor-sensor";
     homepage = "https://gitlab.freedesktop.org/hadess/iio-sensor-proxy";
     license = licenses.gpl3;
     maintainers = with maintainers; [ _999eagle ];
diff --git a/nixpkgs/pkgs/os-specific/linux/ima-evm-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/ima-evm-utils/default.nix
index 34889783034c..fa90ceecdb2b 100644
--- a/nixpkgs/pkgs/os-specific/linux/ima-evm-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ima-evm-utils/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "evmctl utility to manage digital signatures of the Linux kernel integrity subsystem (IMA/EVM)";
+    mainProgram = "evmctl";
     homepage = "https://sourceforge.net/projects/linux-ima/";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/intel-compute-runtime/default.nix b/nixpkgs/pkgs/os-specific/linux/intel-compute-runtime/default.nix
index 073714bd57a0..c175916b9008 100644
--- a/nixpkgs/pkgs/os-specific/linux/intel-compute-runtime/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/intel-compute-runtime/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Intel Graphics Compute Runtime for OpenCL. Replaces Beignet for Gen8 (Broadwell) and beyond";
+    mainProgram = "ocloc";
     homepage = "https://github.com/intel/compute-runtime";
     changelog = "https://github.com/intel/compute-runtime/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/os-specific/linux/intel-speed-select/default.nix b/nixpkgs/pkgs/os-specific/linux/intel-speed-select/default.nix
index 2caad335d57c..9d9c9b134c64 100644
--- a/nixpkgs/pkgs/os-specific/linux/intel-speed-select/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/intel-speed-select/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Tool to enumerate and control the Intel Speed Select Technology features";
+    mainProgram = "intel-speed-select";
     homepage = "https://www.kernel.org/";
     license = licenses.gpl2;
     platforms = [ "i686-linux" "x86_64-linux" ]; # x86-specific
diff --git a/nixpkgs/pkgs/os-specific/linux/ipp-usb/default.nix b/nixpkgs/pkgs/os-specific/linux/ipp-usb/default.nix
index 38d9afddaca6..d02018f570c4 100644
--- a/nixpkgs/pkgs/os-specific/linux/ipp-usb/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ipp-usb/default.nix
@@ -1,13 +1,13 @@
 { buildGoModule, avahi, libusb1, pkg-config, lib, fetchFromGitHub, ronn }:
 buildGoModule rec {
   pname = "ipp-usb";
-  version = "0.9.24";
+  version = "0.9.25";
 
   src = fetchFromGitHub {
     owner = "openprinting";
     repo = "ipp-usb";
     rev = version;
-    sha256 = "sha256-06Kb4s9oN53llz/Yya45ig5rd86VvlcK+vRh3bL/MAw=";
+    sha256 = "sha256-ryKQDzb31JA192lbCYkwJrXgwErViqIzP4mD2NmWdgA=";
   };
 
   postPatch = ''
@@ -34,6 +34,7 @@ buildGoModule rec {
 
   meta = {
     description = "Daemon to use the IPP everywhere protocol with USB printers";
+    mainProgram = "ipp-usb";
     homepage = "https://github.com/OpenPrinting/ipp-usb";
     maintainers = [ lib.maintainers.symphorien ];
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/iptstate/default.nix b/nixpkgs/pkgs/os-specific/linux/iptstate/default.nix
index 4e3693aba6f1..d1e193f831ca 100644
--- a/nixpkgs/pkgs/os-specific/linux/iptstate/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iptstate/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Conntrack top like tool";
+    mainProgram = "iptstate";
     homepage = "https://github.com/jaymzh/iptstate";
     platforms = platforms.linux;
     maintainers = with maintainers; [ trevorj ];
diff --git a/nixpkgs/pkgs/os-specific/linux/iw/default.nix b/nixpkgs/pkgs/os-specific/linux/iw/default.nix
index bf7cb025bc1c..4c1d94f02e6b 100644
--- a/nixpkgs/pkgs/os-specific/linux/iw/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iw/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Tool to use nl80211";
+    mainProgram = "iw";
     longDescription = ''
       iw is a new nl80211 based CLI configuration utility for wireless devices.
       It supports all new drivers that have been added to the kernel recently.
diff --git a/nixpkgs/pkgs/os-specific/linux/iwd/default.nix b/nixpkgs/pkgs/os-specific/linux/iwd/default.nix
index ccaf54759d85..a15d21f2c3a1 100644
--- a/nixpkgs/pkgs/os-specific/linux/iwd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iwd/default.nix
@@ -13,12 +13,12 @@
 
 stdenv.mkDerivation rec {
   pname = "iwd";
-  version = "2.14";
+  version = "2.16";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git";
     rev = version;
-    hash = "sha256-35hKb8IVL8jQG80y48a5CcozUEWxLCdTqAHhZlPFCYE=";
+    hash = "sha256-YWtiI2HkGyIdUeBXerQtN5UvgaMaUs9eoG88ZUQRrDg=";
   };
 
   outputs = [ "out" "man" "doc" ]
diff --git a/nixpkgs/pkgs/os-specific/linux/joycond/default.nix b/nixpkgs/pkgs/os-specific/linux/joycond/default.nix
index e60e661f0c44..5edc227732f8 100644
--- a/nixpkgs/pkgs/os-specific/linux/joycond/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/joycond/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/DanielOgorchock/joycond";
     description = "Userspace daemon to combine joy-cons from the hid-nintendo kernel driver";
+    mainProgram = "joycond";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.ivar ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/kbdlight/default.nix b/nixpkgs/pkgs/os-specific/linux/kbdlight/default.nix
index 0ed575b82546..b41e4cd4da1c 100644
--- a/nixpkgs/pkgs/os-specific/linux/kbdlight/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kbdlight/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/hobarrera/kbdlight";
     description = "A very simple application that changes MacBooks' keyboard backlight level";
+    mainProgram = "kbdlight";
     license = licenses.isc;
     maintainers = [ maintainers.womfoo ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix b/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
index fb59bfecaa01..f46f413f9e0a 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
@@ -23,7 +23,7 @@ let
 
 
   # configuration items have to be part of a subattrs
-  flattenKConf =  nested: mapAttrs (_: head) (zipAttrs (attrValues nested));
+  flattenKConf = nested: mapAttrs (name: values: if length values == 1 then head values else throw "duplicate kernel configuration option: ${name}") (zipAttrs (attrValues nested));
 
   whenPlatformHasEBPFJit =
     mkIf (stdenv.hostPlatform.isAarch32 ||
@@ -62,10 +62,26 @@ let
       SUNRPC_DEBUG              = yes;
       # Provide access to tunables like sched_migration_cost_ns
       SCHED_DEBUG               = yes;
+
+      # Count IRQ and steal CPU time separately
+      IRQ_TIME_ACCOUNTING       = yes;
+      PARAVIRT_TIME_ACCOUNTING  = yes;
+
+      # Enable CPU lockup detection
+      LOCKUP_DETECTOR           = yes;
+      SOFTLOCKUP_DETECTOR       = yes;
+      HARDLOCKUP_DETECTOR       = yes;
+
+      # Enable streaming logs to a remote device over a network
+      NETCONSOLE                = module;
+      NETCONSOLE_DYNAMIC        = yes;
+
+      # Export known printks in debugfs
+      PRINTK_INDEX              = whenAtLeast "5.15" yes;
     };
 
     power-management = {
-      CPU_FREQ_DEFAULT_GOV_PERFORMANCE = yes;
+      CPU_FREQ_DEFAULT_GOV_SCHEDUTIL   = yes;
       CPU_FREQ_GOV_SCHEDUTIL           = yes;
       PM_ADVANCED_DEBUG                = yes;
       PM_WAKELOCKS                     = yes;
@@ -85,6 +101,27 @@ let
       # depends on HAVE_VIRT_CPU_ACCOUNTING_GEN depends on 64BIT,
       # so we can't force-enable this
       RCU_LAZY                         = whenAtLeast "6.2" (option yes);
+
+      # Auto suspend Bluetooth devices at idle
+      BT_HCIBTUSB_AUTOSUSPEND          = yes;
+
+      # Expose cpufreq stats in sysfs
+      CPU_FREQ_STAT                    = yes;
+
+      # Enable CPU energy model for scheduling
+      ENERGY_MODEL                     = whenAtLeast "5.0" yes;
+
+      # Enable thermal interface netlink API
+      THERMAL_NETLINK                  = whenAtLeast "5.9" yes;
+
+      # Prefer power-efficient workqueue implementation to per-CPU workqueues,
+      # which is slightly slower, but improves battery life.
+      # This is opt-in per workqueue, and can be disabled globally with a kernel command line option.
+      WQ_POWER_EFFICIENT_DEFAULT       = yes;
+
+      # Default SATA link power management to "medium with device initiated PM"
+      # for some extra power savings.
+      SATA_MOBILE_LPM_POLICY           = whenAtLeast "5.18" (freeform "3");
     } // optionalAttrs (stdenv.hostPlatform.isx86) {
       INTEL_IDLE                       = yes;
       INTEL_RAPL                       = whenAtLeast "5.3" module;
@@ -109,6 +146,9 @@ let
       CHT_DC_TI_PMIC_OPREGION          = whenAtLeast "5.10" yes;
       MFD_TPS68470                     = whenBetween "5.10" "5.13" yes;
       TPS68470_PMIC_OPREGION           = whenAtLeast "5.10" yes;
+
+      # Enable Intel thermal hardware feedback
+      INTEL_HFI_THERMAL                = whenAtLeast "5.18" yes;
     };
 
     external-firmware = {
@@ -136,6 +176,16 @@ let
       DAMON_DBGFS = whenAtLeast "5.15" yes;
       DAMON_RECLAIM = whenAtLeast "5.16" yes;
       DAMON_LRU_SORT = whenAtLeast "6.0" yes;
+      # Support recovering from memory failures on systems with ECC and MCA recovery.
+      MEMORY_FAILURE = yes;
+
+      # Collect ECC errors and retire pages that fail too often
+      RAS_CEC                   = yes;
+    } // optionalAttrs (stdenv.is32bit) {
+      # Enable access to the full memory range (aka PAE) on 32-bit architectures
+      # This check isn't super accurate but it's close enough
+      HIGHMEM                   = option yes;
+      BOUNCE                    = option yes;
     };
 
     memtest = {
@@ -154,6 +204,9 @@ let
       BFQ_GROUP_IOSCHED = yes;
       MQ_IOSCHED_KYBER = yes;
       IOSCHED_BFQ = module;
+      # Enable CPU utilization clamping for RT tasks
+      UCLAMP_TASK = whenAtLeast "5.3" yes;
+      UCLAMP_TASK_GROUP = whenAtLeast "5.4" yes;
     };
 
 
@@ -166,6 +219,7 @@ let
     # Enable NUMA.
     numa = {
       NUMA  = option yes;
+      NUMA_BALANCING = option yes;
     };
 
     networking = {
@@ -250,6 +304,9 @@ let
       # Bridge Netfilter Configuration
       NF_TABLES_BRIDGE            = mkMerge [ (whenOlder "5.3" yes)
                                               (whenAtLeast "5.3" module) ];
+      # Expose some debug info
+      NF_CONNTRACK_PROCFS         = yes;
+      NF_FLOW_TABLE_PROCFS        = whenAtLeast "6.0" yes;
 
       # needed for `dropwatch`
       # Builtin-only since https://github.com/torvalds/linux/commit/f4b6bcc7002f0e3a3428bac33cf1945abff95450
@@ -276,6 +333,10 @@ let
       INFINIBAND = module;
       INFINIBAND_IPOIB = module;
       INFINIBAND_IPOIB_CM = yes;
+
+      # Enable debugfs for wireless drivers
+      CFG80211_DEBUGFS = yes;
+      MAC80211_DEBUGFS = yes;
     } // optionalAttrs (stdenv.hostPlatform.system == "aarch64-linux") {
       # Not enabled by default, hides modules behind it
       NET_VENDOR_MEDIATEK = yes;
@@ -288,8 +349,8 @@ let
       CFG80211_WEXT               = option yes; # Without it, ipw2200 drivers don't build
       IPW2100_MONITOR             = option yes; # support promiscuous mode
       IPW2200_MONITOR             = option yes; # support promiscuous mode
-      HOSTAP_FIRMWARE             = option yes; # Support downloading firmware images with Host AP driver
-      HOSTAP_FIRMWARE_NVRAM       = option yes;
+      HOSTAP_FIRMWARE             = whenOlder "6.8" (option yes); # Support downloading firmware images with Host AP driver
+      HOSTAP_FIRMWARE_NVRAM       = whenOlder "6.8" (option yes);
       MAC80211_MESH               = option yes; # Enable 802.11s (mesh networking) support
       ATH9K_PCI                   = option yes; # Detect Atheros AR9xxx cards on PCI(e) bus
       ATH9K_AHB                   = option yes; # Ditto, AHB bus
@@ -345,8 +406,11 @@ let
       FONT_TER16x32 = whenAtLeast "5.0" yes;
     };
 
-    video = {
+    video = let
+      whenHasDevicePrivate = mkIf (!stdenv.isx86_32 && versionAtLeast version "5.1");
+    in {
       DRM_LEGACY = whenOlder "6.8" no;
+
       NOUVEAU_LEGACY_CTX_SUPPORT = whenBetween "5.2" "6.3" no;
 
       # Allow specifying custom EDID on the kernel command line
@@ -371,6 +435,25 @@ let
       DRM_AMD_DC_FP = whenAtLeast "6.4" yes;
       DRM_AMD_DC_HDCP = whenBetween "5.5" "6.4" yes;
       DRM_AMD_DC_SI = whenAtLeast "5.10" yes;
+
+      # Enable AMD Audio Coprocessor support for HDMI outputs
+      DRM_AMD_ACP = yes;
+
+      # Enable AMD secure display when available
+      DRM_AMD_SECURE_DISPLAY = whenAtLeast "5.13" yes;
+
+      # Enable new firmware (and by extension NVK) for compatible hardware on Nouveau
+      DRM_NOUVEAU_GSP_DEFAULT = whenAtLeast "6.8" yes;
+
+      # Enable Nouveau shared virtual memory (used by OpenCL)
+      DEVICE_PRIVATE = whenHasDevicePrivate yes;
+      DRM_NOUVEAU_SVM = whenHasDevicePrivate yes;
+
+      # Enable HDMI-CEC receiver support
+      MEDIA_CEC_RC = whenAtLeast "5.10" yes;
+
+      # Enable CEC over DisplayPort
+      DRM_DP_CEC = yes;
     } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") {
       # Intel GVT-g graphics virtualization supports 64-bit only
       DRM_I915_GVT = yes;
@@ -395,6 +478,11 @@ let
     sound = {
       SND_DYNAMIC_MINORS  = yes;
       SND_AC97_POWER_SAVE = yes; # AC97 Power-Saving Mode
+      # 10s for the idle timeout, Fedora does 1, Arch does 10.
+      # The kernel says we should do 10.
+      # Read: https://docs.kernel.org/sound/designs/powersave.html
+      SND_AC97_POWER_SAVE_DEFAULT = freeform "10";
+      SND_HDA_POWER_SAVE_DEFAULT = freeform "10";
       SND_HDA_INPUT_BEEP  = yes; # Support digital beep via input layer
       SND_HDA_RECONFIG    = yes; # Support reconfiguration of jack functions
       # Support configuring jack functions via fw mechanism at boot
@@ -402,6 +490,7 @@ let
       SND_HDA_CODEC_CA0132_DSP = whenOlder "5.7" yes; # Enable DSP firmware loading on Creative Soundblaster Z/Zx/ZxR/Recon
       SND_OSSEMUL         = yes;
       SND_USB_CAIAQ_INPUT = yes;
+      SND_USB_AUDIO_MIDI_V2 = whenAtLeast "6.5" yes;
     # Enable Sound Open Firmware support
     } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux" &&
                         versionAtLeast version "5.5") {
@@ -438,14 +527,23 @@ let
       SND_SOC_SOF_TIGERLAKE_SUPPORT     = whenOlder "5.12" yes;
     };
 
-    usb-serial = {
-      USB_SERIAL_GENERIC          = yes; # USB Generic Serial Driver
-    };
-
     usb = {
+      USB                  = yes; # compile USB core into kernel, so we can use USB_SERIAL_CONSOLE before modules
+
       USB_EHCI_ROOT_HUB_TT = yes; # Root Hub Transaction Translators
       USB_EHCI_TT_NEWSCHED = yes; # Improved transaction translator scheduling
       USB_HIDDEV = yes; # USB Raw HID Devices (like monitor controls and Uninterruptable Power Supplies)
+
+      # default to dual role mode
+      USB_DWC2_DUAL_ROLE = yes;
+      USB_DWC3_DUAL_ROLE = yes;
+    };
+
+    usb-serial = {
+      USB_SERIAL                  = yes;
+      USB_SERIAL_GENERIC          = yes; # USB Generic Serial Driver
+      USB_SERIAL_CONSOLE          = yes; # Allow using USB serial adapter as console
+      U_SERIAL_CONSOLE            = whenAtLeast "5.10" yes; # Allow using USB gadget as console
     };
 
     # Filesystem options - in particular, enable extended attributes and
@@ -526,6 +624,7 @@ let
 
       SQUASHFS_FILE_DIRECT         = yes;
       SQUASHFS_DECOMP_MULTI_PERCPU = whenOlder "6.2" yes;
+      SQUASHFS_CHOICE_DECOMP_BY_MOUNT = whenAtLeast "6.2" yes;
       SQUASHFS_XATTR               = yes;
       SQUASHFS_ZLIB                = yes;
       SQUASHFS_LZO                 = yes;
@@ -591,6 +690,16 @@ let
       CRYPTO_DRBG_HASH                 = yes;
       CRYPTO_DRBG_CTR                  = yes;
 
+      # Enable KFENCE
+      # See: https://docs.kernel.org/dev-tools/kfence.html
+      KFENCE                           = whenAtLeast "5.12" yes;
+
+      # Enable support for page poisoning. Still needs to be enabled on the command line to actually work.
+      PAGE_POISONING                   = yes;
+
+      # Enable stack smashing protections in schedule()
+      # See: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v4.8&id=0d9e26329b0c9263d4d9e0422d80a0e73268c52f
+      SCHED_STACK_END_CHECK            = yes;
     } // optionalAttrs stdenv.hostPlatform.isx86_64 {
       # Enable Intel SGX
       X86_SGX     = whenAtLeast "5.11" yes;
@@ -607,6 +716,9 @@ let
       SEV_GUEST       = whenAtLeast "5.19" module;
       # Shadow stacks
       X86_USER_SHADOW_STACK = whenAtLeast "6.6" yes;
+
+      # Mitigate straight line speculation at the cost of some file size
+      SLS = whenAtLeast "5.17" yes;
     };
 
     microcode = {
@@ -774,7 +886,6 @@ let
       NOTIFIER_ERROR_INJECTION = option no;
       RCU_PERF_TEST            = whenOlder "5.9" no;
       RCU_SCALE_TEST           = whenAtLeast "5.10" no;
-      RCU_TORTURE_TEST         = option no;
       TEST_ASYNC_DRIVER_PROBE  = option no;
       WW_MUTEX_SELFTEST        = option no;
       XZ_DEC_TEST              = option no;
@@ -784,6 +895,10 @@ let
       # Unconditionally enabled, because it is required for CRIU and
       # it provides the kcmp() system call that Mesa depends on.
       CHECKPOINT_RESTORE  = yes;
+
+      # Allows soft-dirty tracking on pages, used by CRIU.
+      # See https://docs.kernel.org/admin-guide/mm/soft-dirty.html
+      MEM_SOFT_DIRTY = mkIf (!stdenv.isx86_32) yes;
     };
 
     misc = let
@@ -798,6 +913,9 @@ let
       # enabled by default in x86_64 but not arm64, so we do that here
       HIDRAW               = yes;
 
+      # Enable loading HID fixups as eBPF from userspace
+      HID_BPF            = whenAtLeast "6.3" yes;
+
       HID_ACRUX_FF       = yes;
       DRAGONRISE_FF      = yes;
       GREENASIA_FF       = yes;
@@ -825,7 +943,10 @@ let
       # Enable initrd support.
       BLK_DEV_INITRD    = yes;
 
-      PM_TRACE_RTC         = no; # Disable some expensive (?) features.
+      # Allows debugging systems that get stuck during suspend/resume
+      PM_TRACE             = yes;
+      PM_TRACE_RTC         = yes;
+
       ACCESSIBILITY        = yes; # Accessibility support
       AUXDISPLAY           = yes; # Auxiliary Display support
       HIPPI                = yes;
@@ -850,6 +971,11 @@ let
 
       BLK_SED_OPAL = yes;
 
+      # Enable support for block layer inline encryption
+      BLK_INLINE_ENCRYPTION = whenAtLeast "5.8" yes;
+      # ...but fall back to CPU encryption if unavailable
+      BLK_INLINE_ENCRYPTION_FALLBACK = whenAtLeast "5.8" yes;
+
       BSD_PROCESS_ACCT_V3 = yes;
 
       SERIAL_DEV_BUS = yes; # enables support for serial devices
@@ -868,7 +994,6 @@ let
       # Removed on 5.17 as it was unused
       # upstream: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0a4ee518185e902758191d968600399f3bc2be31
       CLEANCACHE = whenOlder "5.17" (option yes);
-      CRASH_DUMP = option no;
 
       FSCACHE_STATS = yes;
 
@@ -964,7 +1089,7 @@ let
       # Disable the firmware helper fallback, udev doesn't implement it any more
       FW_LOADER_USER_HELPER_FALLBACK = option no;
 
-      FW_LOADER_COMPRESS = option yes;
+      FW_LOADER_COMPRESS = whenAtLeast "5.3" yes;
 
       HOTPLUG_PCI_ACPI = yes; # PCI hotplug using ACPI
       HOTPLUG_PCI_PCIE = yes; # PCI-Expresscard hotplug support
@@ -1011,6 +1136,13 @@ let
 
       # Set system time from RTC on startup and resume
       RTC_HCTOSYS = option yes;
+
+      # Expose watchdog information in sysfs
+      WATCHDOG_SYSFS = yes;
+
+      # Enable generic kernel watch queues
+      # See https://docs.kernel.org/core-api/watch_queue.html
+      WATCH_QUEUE = whenAtLeast "5.8" yes;
     } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux") {
       # Enable CPU/memory hotplug support
       # Allows you to dynamically add & remove CPUs/memory to a VM client running NixOS without requiring a reboot
@@ -1041,6 +1173,10 @@ let
       # https://github.com/torvalds/linux/blob/856deb866d16e29bd65952e0289066f6078af773/kernel/dma/contiguous.c#L35-L44
       CMA_SIZE_MBYTES = freeform "32";
 
+      # Add debug interfaces for CMA
+      CMA_DEBUGFS = yes;
+      CMA_SYSFS = yes;
+
       # Many ARM SBCs hand off a pre-configured framebuffer.
       # This always can can be replaced by the actual native driver.
       # Keeping it a built-in ensures it will be used if possible.
@@ -1086,6 +1222,24 @@ let
     } // optionalAttrs (versionAtLeast version "5.4" && stdenv.hostPlatform.system == "x86_64-linux") {
       CHROMEOS_LAPTOP = module;
       CHROMEOS_PSTORE = module;
+    } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") {
+      # Enable x86 resource control
+      X86_CPU_RESCTRL = whenAtLeast "5.0" yes;
+
+      # Enable TSX on CPUs where it's not vulnerable
+      X86_INTEL_TSX_MODE_AUTO = yes;
+
+      # Enable AMD Wi-Fi RF band mitigations
+      # See https://cateee.net/lkddb/web-lkddb/AMD_WBRF.html
+      AMD_WBRF = whenAtLeast "6.8" yes;
+
+      # Enable Intel Turbo Boost Max 3.0
+      INTEL_TURBO_MAX_3 = yes;
+    };
+
+    accel = {
+      # Build DRM accelerator devices
+      DRM_ACCEL = whenAtLeast "6.2" yes;
     };
   };
 in
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix b/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix
index 14c863b459b1..ae602ee0c112 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix
@@ -12,8 +12,10 @@
 , rustc
 , rustPlatform
 , rust-bindgen
+, nixosTests
+}:
 
-, # The kernel source tarball.
+lib.makeOverridable ({ # The kernel source tarball.
   src
 
 , # The kernel version.
@@ -66,7 +68,6 @@
 , preferBuiltin ? stdenv.hostPlatform.linux-kernel.preferBuiltin or false
 , kernelArch ? stdenv.hostPlatform.linuxArch
 , kernelTests ? []
-, nixosTests
 , ...
 }@args:
 
@@ -239,4 +240,4 @@ kernel.overrideAttrs (finalAttrs: previousAttrs: {
     in [ (nixosTests.kernel-generic.passthru.testsForKernel overridableKernel) ] ++ kernelTests;
   };
 
-})
+}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json b/nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json
index cb825a1adbac..21772b2e03eb 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -2,52 +2,52 @@
     "4.19": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-4.19.307-hardened1.patch",
-            "sha256": "01i15w3qzwag2v4r5r5bqyk337pidhmcfif228f286cnjnqz5d7h",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.307-hardened1/linux-hardened-4.19.307-hardened1.patch"
+            "name": "linux-hardened-4.19.309-hardened1.patch",
+            "sha256": "1hww72w5anmfr9czqbl31glzl70s34492k9qz9zax141zg1sf6sp",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.309-hardened1/linux-hardened-4.19.309-hardened1.patch"
         },
-        "sha256": "0lp3fc7sqy48vpcl2g0n1bz7i1hp9k0nlz3i1xfh9l056ihzzvl3",
-        "version": "4.19.307"
+        "sha256": "1yc45kfiwdqsqa11sxafs82b0day6qvgjcll8rx9vipidsmagbcm",
+        "version": "4.19.309"
     },
     "5.10": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.10.210-hardened1.patch",
-            "sha256": "1fdkkl303kvw9sg9lpzg83157xrl9jcl4jjli1gi2a4j0yz2479n",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.210-hardened1/linux-hardened-5.10.210-hardened1.patch"
+            "name": "linux-hardened-5.10.212-hardened1.patch",
+            "sha256": "0h04i94vshhcli5m4qpnqg4vsi5v1ifvdhhklk7c0bvkfk35cbml",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.212-hardened1/linux-hardened-5.10.212-hardened1.patch"
         },
-        "sha256": "0vggj3a71awc1w803cdzrnkn88rxr7l1xh9mmdcw9hzxj1d3r9jf",
-        "version": "5.10.210"
+        "sha256": "14vll2bghd52wngjxy78hgglydcxka59yziji0w56dcdpmky9wqc",
+        "version": "5.10.212"
     },
     "5.15": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.15.149-hardened1.patch",
-            "sha256": "1y56l5l50h673a4n2pb3i3wh494lpnlw9vvdfr6m0jr0vymldb57",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.149-hardened1/linux-hardened-5.15.149-hardened1.patch"
+            "name": "linux-hardened-5.15.151-hardened1.patch",
+            "sha256": "040jc5n9qsdz2wv5ksfvc28vd72nmya2i2f0ps0jiras6l2wlhjz",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.151-hardened1/linux-hardened-5.15.151-hardened1.patch"
         },
-        "sha256": "1c01fnaghj55mkgsgddznq1zq4mswsa05rz00kmh1d3y6sd8115x",
-        "version": "5.15.149"
+        "sha256": "0jby224ncdardjwmf8c59s5j71inpvdlzah984ilf2b6y85pc7la",
+        "version": "5.15.151"
     },
     "5.4": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.4.269-hardened1.patch",
-            "sha256": "06vf0mlp822i4bkpsxbyk1xjlbzabqpncy8qw9zajpjajwv87d7x",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.269-hardened1/linux-hardened-5.4.269-hardened1.patch"
+            "name": "linux-hardened-5.4.271-hardened1.patch",
+            "sha256": "0rw5il7885d0d3k2hmh46541svib6rp32g00fcl5bw37ydmq3z8b",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.271-hardened1/linux-hardened-5.4.271-hardened1.patch"
         },
-        "sha256": "1kqqm4hpif3jy2ycnb0dfjgzyn18vqhm1i5q7d7rkisks33bwm7z",
-        "version": "5.4.269"
+        "sha256": "0l2qv4xlhnry9crs90rkihsxyny6jz8kxw08bfad7nys9hrn3g6d",
+        "version": "5.4.271"
     },
     "6.1": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.1.79-hardened1.patch",
-            "sha256": "0inip6pmlwrj75vwjimkjgvh4jn6ldrq5312r02xh1i95qb0sg3a",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.79-hardened1/linux-hardened-6.1.79-hardened1.patch"
+            "name": "linux-hardened-6.1.81-hardened1.patch",
+            "sha256": "0af9dxdsa858zyqc0vsrzg098afhg5vpb2wpr6gj2ykwc13iaf07",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.81-hardened1/linux-hardened-6.1.81-hardened1.patch"
         },
-        "sha256": "16xkd0hcslqlcf55d4ivzhf1fkhfs5yy0m9arbax8pmm5yi9r97s",
-        "version": "6.1.79"
+        "sha256": "0arl96yrqplbmp2gjyqcfma1lgc30kbn95m0sflv0yyldwf8dg8f",
+        "version": "6.1.81"
     },
     "6.5": {
         "patch": {
@@ -62,12 +62,12 @@
     "6.6": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.6.18-hardened1.patch",
-            "sha256": "0svlck53b7bd38b9b0hzgppmhm59d35r2vqv30ga85ghkvc61byn",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.6.18-hardened1/linux-hardened-6.6.18-hardened1.patch"
+            "name": "linux-hardened-6.6.21-hardened1.patch",
+            "sha256": "0k35s5pj92lvfp6kw3isg78zc3gijsg0xbzcyvxdkmhzaq8j6i1i",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.6.21-hardened1/linux-hardened-6.6.21-hardened1.patch"
         },
-        "sha256": "07cv97l5jiakmmv35n0ganvqfr0590b02f3qb617qkx1zg2xhhsf",
-        "version": "6.6.18"
+        "sha256": "0mz420w99agr7jv1jgqfr4fjhzbv005xif086sqx556s900l62zf",
+        "version": "6.6.21"
     },
     "6.7": {
         "patch": {
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/kernels-org.json b/nixpkgs/pkgs/os-specific/linux/kernel/kernels-org.json
index e16804af99d3..b9207f0ac2f5 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/kernels-org.json
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/kernels-org.json
@@ -4,31 +4,35 @@
         "hash": "sha256:0q9isgv6lxzrmb4idl0spxv2l7fsk3nn4cdq0vdw9c8lyzrh5yy0"
     },
     "6.1": {
-        "version": "6.1.81",
-        "hash": "sha256:0arl96yrqplbmp2gjyqcfma1lgc30kbn95m0sflv0yyldwf8dg8f"
+        "version": "6.1.82",
+        "hash": "sha256:01pcrcjp5mifjjmfz7j1jb8nhq8nkxspavxmv1l7d1qnskcx4l6i"
     },
     "5.15": {
-        "version": "5.15.151",
-        "hash": "sha256:0jby224ncdardjwmf8c59s5j71inpvdlzah984ilf2b6y85pc7la"
+        "version": "5.15.152",
+        "hash": "sha256:0zm4wkryj4mim4fr7pf5g9rlzh31yb1c40lkp85lvcm5yhjm507h"
     },
     "5.10": {
-        "version": "5.10.212",
-        "hash": "sha256:14vll2bghd52wngjxy78hgglydcxka59yziji0w56dcdpmky9wqc"
+        "version": "5.10.213",
+        "hash": "sha256:105df7w6m5a3fngi6ajqs5qblaq4lbxsgcppllrk7v1r68i31kw4"
     },
     "5.4": {
-        "version": "5.4.271",
-        "hash": "sha256:0l2qv4xlhnry9crs90rkihsxyny6jz8kxw08bfad7nys9hrn3g6d"
+        "version": "5.4.272",
+        "hash": "sha256:0rp3waqrm489crcrms2ls7fxcw5jdkjhazvx82z68gj0kaaxb69m"
     },
     "4.19": {
-        "version": "4.19.309",
-        "hash": "sha256:1yc45kfiwdqsqa11sxafs82b0day6qvgjcll8rx9vipidsmagbcm"
+        "version": "4.19.310",
+        "hash": "sha256:0sfy2g9jzxd8ia0idll72l7npi2kssdkz29h8jjxhilgmg299v4m"
     },
     "6.6": {
-        "version": "6.6.21",
-        "hash": "sha256:0mz420w99agr7jv1jgqfr4fjhzbv005xif086sqx556s900l62zf"
+        "version": "6.6.22",
+        "hash": "sha256:1x52c6ywmspp3naishzsknhy7i0b7mv9baxx25a0y987cjsygqr3"
     },
     "6.7": {
-        "version": "6.7.9",
-        "hash": "sha256:0inkvyrvq60j9lxgivkivq3qh94lsfc1dpv6vwgxmy3q0zy37mqg"
+        "version": "6.7.10",
+        "hash": "sha256:00vw90mypcliq0d72jdh1ql2dfmm7gpswln2qycxdz7rfsrrzfd9"
+    },
+    "6.8": {
+        "version": "6.8.1",
+        "hash": "sha256:0s7zgk9m545v8y7qjhv7cprrh58j46gpmb8iynyhy2hlwcv8j34d"
     }
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix
index afdc6bb5fd01..01daee4015f0 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix
@@ -1,8 +1,8 @@
 { stdenv, lib, fetchsvn, linux
 , scripts ? fetchsvn {
     url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
-    rev = "19500";
-    sha256 = "1xlicxwb1j5m4yjyw9ybyffmilzg7xh847jxfl4jy318vjpkmffr";
+    rev = "19509";
+    sha256 = "0dkjvpb075jdasvic8sfpy0dj48fsxgj2yl0zrply7gkaahgns8q";
   }
 , ...
 }:
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
index 747d5aec7790..188ca24100b1 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.10.210-rt102"; # updated by ./update-rt.sh
+  version = "5.10.211-rt103"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -17,14 +17,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "0vggj3a71awc1w803cdzrnkn88rxr7l1xh9mmdcw9hzxj1d3r9jf";
+    sha256 = "1cir36s369fl6s46x16xnjg0wdlnkipsp2zhz11m9d3z205hly1s";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "1q4365ix990iw33a63cpn61qvgf8rkzf658xyi0hnr6292hlvajj";
+      sha256 = "07br63p90gwmijxq8ad7iyi4d3fkm6jwwl2s2k1549bbaldchbk6";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
index cd2f60d3921d..463385036292 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.4.264-rt88"; # updated by ./update-rt.sh
+  version = "5.4.271-rt89"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -14,14 +14,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "1c5n47dq9khb15hz24a000k3hj913vv1dda6famnm8wpjbfr176k";
+    sha256 = "0l2qv4xlhnry9crs90rkihsxyny6jz8kxw08bfad7nys9hrn3g6d";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "1yzdiip1fm9szx2hhvq9ph7jq00qglb1skis6gv0184g0ls2qddg";
+      sha256 = "15k9jja5yd9zf5yhd7hhydwh4hksg2mybk66jhdjsryh4w9jav7z";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix
index 514baa0ca598..4ff7e1c54b04 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "6.6.20-rt25"; # updated by ./update-rt.sh
+  version = "6.6.21-rt26"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -18,14 +18,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz";
-    sha256 = "08nxv2240d2ak6p2vsbjasnp7askamswby3h6cclhhihkgrwgxp2";
+    sha256 = "0mz420w99agr7jv1jgqfr4fjhzbv005xif086sqx556s900l62zf";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "1sfalbcfzzjmskxpix1850cypg4zixwzbd9rmpg37n8lclivn2gv";
+      sha256 = "1sh2jkm3h52a5dkc72xgrw1kz1faw1kzhpbqg64gsxbivmxfvf21";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/perf/default.nix b/nixpkgs/pkgs/os-specific/linux/kernel/perf/default.nix
index 172965f2a78f..02f0407425d1 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/perf/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/perf/default.nix
@@ -164,6 +164,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://perf.wiki.kernel.org/";
     description = "Linux tools to profile with performance counters";
+    mainProgram = "perf";
     maintainers = with maintainers; [ viric ];
     platforms = platforms.linux;
     broken = kernel.kernelOlder "5";
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/nixpkgs/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
index 348a4c36adc4..08e6f83a2ffe 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
@@ -6,14 +6,14 @@ let
   # NOTE: When updating these, please also take a look at the changes done to
   # kernel config in the xanmod version commit
   ltsVariant = {
-    version = "6.6.19";
-    hash = "sha256-DfoClySWV0vlDDRAJsujGj5ypnGr+HsVbszCYfi+2V0=";
+    version = "6.6.22";
+    hash = "sha256-vpWUdzgI8i/1r5nMp0tx+x67GDTnjQF5ueITIl36lvA=";
     variant = "lts";
   };
 
   mainVariant = {
-    version = "6.7.7";
-    hash = "sha256-Y+SvnvkFOGCxq+hGwpiiymNr1rYbNqppNA0d63TyUmo=";
+    version = "6.7.10";
+    hash = "sha256-uwlvQh11uf1skSdlIz7XdjRkdI/wf3VqEeOP20JO5OU=";
     variant = "main";
   };
 
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/zen-kernels.nix b/nixpkgs/pkgs/os-specific/linux/kernel/zen-kernels.nix
index 2994bf5064fe..d8261beb1764 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/zen-kernels.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/zen-kernels.nix
@@ -4,16 +4,16 @@ let
   # comments with variant added for update script
   # ./update-zen.py zen
   zenVariant = {
-    version = "6.7.7"; #zen
+    version = "6.8"; #zen
     suffix = "zen1"; #zen
-    sha256 = "18h2ng7m70bwl8b80a26rhmnc4ivxcv4ppkn1fviz43x6j2h81mg"; #zen
+    sha256 = "19rsi8747xw5lsq4pwizq2va6inmwrywgy8b5f2ppcd6ny0whn1i"; #zen
     isLqx = false;
   };
   # ./update-zen.py lqx
   lqxVariant = {
-    version = "6.7.6"; #lqx
+    version = "6.7.9"; #lqx
     suffix = "lqx1"; #lqx
-    sha256 = "1z737ma2ak2yddc416svr5s2f7pl31v1cs2bknl9v6syl6xm9sxk"; #lqx
+    sha256 = "0hhkn2098h69l8slz5f0krkckf3qm7hmh5z233j341jpc0qv8p6b"; #lqx
     isLqx = true;
   };
   zenKernelsFor = { version, suffix, sha256, isLqx }: buildLinux (args // {
diff --git a/nixpkgs/pkgs/os-specific/linux/klibc/default.nix b/nixpkgs/pkgs/os-specific/linux/klibc/default.nix
index 3a044cf9d84d..2b010e5c8bce 100644
--- a/nixpkgs/pkgs/os-specific/linux/klibc/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/klibc/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Minimalistic libc subset for initramfs usage";
+    mainProgram = "klcc";
     homepage = "https://kernel.org/pub/linux/libs/klibc/";
     maintainers = with lib.maintainers; [ fpletz ];
     license = lib.licenses.bsd3;
diff --git a/nixpkgs/pkgs/os-specific/linux/kmscon/default.nix b/nixpkgs/pkgs/os-specific/linux/kmscon/default.nix
index 2a60864ea6bf..18ac0370b855 100644
--- a/nixpkgs/pkgs/os-specific/linux/kmscon/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kmscon/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "KMS/DRM based System Console";
+    mainProgram = "kmscon";
     homepage = "https://www.freedesktop.org/wiki/Software/kmscon/";
     license = licenses.mit;
     maintainers = with maintainers; [ omasanori ];
diff --git a/nixpkgs/pkgs/os-specific/linux/latencytop/default.nix b/nixpkgs/pkgs/os-specific/linux/latencytop/default.nix
index a48abf85831f..023140e1f482 100644
--- a/nixpkgs/pkgs/os-specific/linux/latencytop/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/latencytop/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://latencytop.org";
     description = "Tool to show kernel reports on latencies (LATENCYTOP option)";
+    mainProgram = "latencytop";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.viric ];
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/ldm/default.nix b/nixpkgs/pkgs/os-specific/linux/ldm/default.nix
index f8a519de847e..0dea0ce4e8b0 100644
--- a/nixpkgs/pkgs/os-specific/linux/ldm/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ldm/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A lightweight device mounter, with libudev as only dependency";
+    mainProgram = "ldm";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/libselinux/default.nix b/nixpkgs/pkgs/os-specific/linux/libselinux/default.nix
index b42bffdc057d..c0711f693377 100644
--- a/nixpkgs/pkgs/os-specific/linux/libselinux/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libselinux/default.nix
@@ -39,6 +39,11 @@ stdenv.mkDerivation rec {
             -i 'a/libselinux/*' --strip 1 <$TMPDIR/patch >"$out"
       '';
     })
+
+    (fetchurl {
+      url = "https://git.yoctoproject.org/meta-selinux/plain/recipes-security/selinux/libselinux/0003-libselinux-restore-drop-the-obsolete-LSF-transitiona.patch?id=62b9c816a5000dc01b28e78213bde26b58cbca9d";
+      sha256 = "sha256-RiEUibLVzfiRU6N/J187Cs1iPAih87gCZrlyRVI2abU=";
+    })
   ];
 
   nativeBuildInputs = [ pkg-config python3 ] ++ optionals enablePython [
@@ -53,7 +58,7 @@ stdenv.mkDerivation rec {
   # command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
   hardeningDisable = [ "fortify" ];
 
-  env.NIX_CFLAGS_COMPILE = "-Wno-error";
+  env.NIX_CFLAGS_COMPILE = "-Wno-error -D_FILE_OFFSET_BITS=64";
 
   makeFlags = [
     "PREFIX=$(out)"
diff --git a/nixpkgs/pkgs/os-specific/linux/libtracefs/default.nix b/nixpkgs/pkgs/os-specific/linux/libtracefs/default.nix
index 2432a28e0c7b..3d99466c8f34 100644
--- a/nixpkgs/pkgs/os-specific/linux/libtracefs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libtracefs/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Linux kernel trace file system library";
+    mainProgram = "sqlhist";
     homepage    = "https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/";
     license     = licenses.lgpl21Only;
     platforms   = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/libzbd/default.nix b/nixpkgs/pkgs/os-specific/linux/libzbd/default.nix
index 0c77f73cf2fc..4675a1383758 100644
--- a/nixpkgs/pkgs/os-specific/linux/libzbd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libzbd/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Zoned block device manipulation library and tools";
+    mainProgram = "zbd";
     homepage = "https://github.com/westerndigitalcorporation/libzbd";
     maintainers = [ maintainers.fogti ];
     license = with licenses; [ lgpl3Plus gpl3Plus ];
diff --git a/nixpkgs/pkgs/os-specific/linux/lightum/default.nix b/nixpkgs/pkgs/os-specific/linux/lightum/default.nix
index e9925b95bcd6..46dd76e0d277 100644
--- a/nixpkgs/pkgs/os-specific/linux/lightum/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lightum/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "MacBook automatic light sensor daemon";
+    mainProgram = "lightum";
     homepage = "https://github.com/poliva/lightum";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ puffnfresh ];
diff --git a/nixpkgs/pkgs/os-specific/linux/lockdep/default.nix b/nixpkgs/pkgs/os-specific/linux/lockdep/default.nix
index 1ea2de63560b..be3967f0a858 100644
--- a/nixpkgs/pkgs/os-specific/linux/lockdep/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lockdep/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Userspace locking validation tool built on the Linux kernel";
+    mainProgram = "lockdep";
     homepage    = "https://kernel.org/";
     license     = lib.licenses.gpl2;
     platforms   = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/lsb-release/default.nix b/nixpkgs/pkgs/os-specific/linux/lsb-release/default.nix
index 7ab10bfac124..f79c6527539a 100644
--- a/nixpkgs/pkgs/os-specific/linux/lsb-release/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lsb-release/default.nix
@@ -14,6 +14,7 @@ substituteAll {
 
   meta = with lib; {
     description = "Prints certain LSB (Linux Standard Base) and Distribution information";
+    mainProgram = "lsb_release";
     license = [ licenses.mit ];
     maintainers = with maintainers; [ primeos ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix b/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix
index 1388b5360f12..00c7f6f5edbd 100644
--- a/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "FUSE filesystem for LXC";
+    mainProgram = "lxcfs";
     homepage = "https://linuxcontainers.org/lxcfs";
     changelog = "https://linuxcontainers.org/lxcfs/news/";
     license = lib.licenses.asl20;
diff --git a/nixpkgs/pkgs/os-specific/linux/mbpfan/default.nix b/nixpkgs/pkgs/os-specific/linux/mbpfan/default.nix
index 50fc74d7fa0a..4992fdbf1d46 100644
--- a/nixpkgs/pkgs/os-specific/linux/mbpfan/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/mbpfan/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   '';
   meta = with lib; {
     description = "Daemon that uses input from coretemp module and sets the fan speed using the applesmc module";
+    mainProgram = "mbpfan";
     homepage = "https://github.com/dgraziotin/mbpfan";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/mceinject/default.nix b/nixpkgs/pkgs/os-specific/linux/mceinject/default.nix
index 524225763742..f7cd199a5e8b 100644
--- a/nixpkgs/pkgs/os-specific/linux/mceinject/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/mceinject/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A tool to inject machine checks into x86 kernel for testing";
+    mainProgram = "mce-inject";
     longDescription = ''
       mce-inject allows to inject machine check errors on the software level
       into a running Linux kernel. This is intended for validation of the
diff --git a/nixpkgs/pkgs/os-specific/linux/mcelog/default.nix b/nixpkgs/pkgs/os-specific/linux/mcelog/default.nix
index 916c79a4298d..2a6727027f48 100644
--- a/nixpkgs/pkgs/os-specific/linux/mcelog/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/mcelog/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Log x86 machine checks: memory, IO, and CPU hardware errors";
+    mainProgram = "mcelog";
     longDescription = ''
       The mcelog daemon accounts memory and some other errors in various ways
       on modern x86 Linux systems. The daemon can be queried and/or execute
diff --git a/nixpkgs/pkgs/os-specific/linux/metastore/default.nix b/nixpkgs/pkgs/os-specific/linux/metastore/default.nix
index c9875297186e..76e4ae893287 100644
--- a/nixpkgs/pkgs/os-specific/linux/metastore/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/metastore/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Store and restore metadata from a filesystem";
+    mainProgram = "metastore";
     homepage = "https://software.przemoc.net/#metastore";
     license = licenses.gpl2;
     maintainers = with maintainers; [ sstef ];
diff --git a/nixpkgs/pkgs/os-specific/linux/microcode/intel.nix b/nixpkgs/pkgs/os-specific/linux/microcode/intel.nix
index de51beb2cc18..6953bbca8963 100644
--- a/nixpkgs/pkgs/os-specific/linux/microcode/intel.nix
+++ b/nixpkgs/pkgs/os-specific/linux/microcode/intel.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "microcode-intel";
-  version = "20231114";
+  version = "20240312";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "Intel-Linux-Processor-Microcode-Data-Files";
     rev = "microcode-${version}";
-    hash = "sha256-cZ7APDjwjarPCzk1HWxqIXdGwNOl6HG0KSCtffmEhx0=";
+    hash = "sha256-4ZSA+LVczfjZINXhImmFOCc/6kKNrrUQvrXPdOvMM8g=";
   };
 
   nativeBuildInputs = [ iucode-tool libarchive ];
diff --git a/nixpkgs/pkgs/os-specific/linux/microcode/iucode-tool.nix b/nixpkgs/pkgs/os-specific/linux/microcode/iucode-tool.nix
index d27e3ca6987b..316aaa22932d 100644
--- a/nixpkgs/pkgs/os-specific/linux/microcode/iucode-tool.nix
+++ b/nixpkgs/pkgs/os-specific/linux/microcode/iucode-tool.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Intel® 64 and IA-32 processor microcode tool";
+    mainProgram = "iucode_tool";
     homepage = "https://gitlab.com/iucode-tool/iucode-tool";
     license = licenses.gpl2;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix
index 0fea46da56d2..76b7d3ae1af1 100644
--- a/nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation {
   pname = "mmc-utils";
-  version = "unstable-2023-10-10";
+  version = "unstable-2024-03-07";
 
   src = fetchzip rec {
     url = "https://git.kernel.org/pub/scm/utils/mmc/mmc-utils.git/snapshot/mmc-utils-${passthru.rev}.tar.gz";
-    passthru.rev = "b5ca140312d279ad2f22068fd72a6230eea13436";
-    sha256 = "QU4r8eajrrhT6u6WHEf1xtB1iyecBeHxu4vS+QcwAgM=";
+    passthru.rev = "e1281d4de9166b7254ba30bb58f9191fc2c9e7fb";
+    sha256 = "/lkcZ/ArdBAStV9usavrbfjULXenqb+h2rbDJzxZjJk=";
   };
 
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "prefix=$(out)" ];
@@ -28,6 +28,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Configure MMC storage devices from userspace";
+    mainProgram = "mmc";
     homepage = "https://git.kernel.org/pub/scm/utils/mmc/mmc-utils.git/";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.dezgeg ];
diff --git a/nixpkgs/pkgs/os-specific/linux/msr/default.nix b/nixpkgs/pkgs/os-specific/linux/msr/default.nix
index 0ffc46012096..630fc983690d 100644
--- a/nixpkgs/pkgs/os-specific/linux/msr/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/msr/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.etallen.com/msr.html";
     description = "Linux tool to display or modify x86 model-specific registers (MSRs)";
+    mainProgram = "msr";
     license = licenses.bsd0;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/netatop/default.nix b/nixpkgs/pkgs/os-specific/linux/netatop/default.nix
index d7d04e8368db..68386173ed50 100644
--- a/nixpkgs/pkgs/os-specific/linux/netatop/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/netatop/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Network monitoring module for atop";
+    mainProgram = "netatopd";
     homepage = "https://www.atoptool.nl/downloadnetatop.php";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/nmon/default.nix b/nixpkgs/pkgs/os-specific/linux/nmon/default.nix
index 30285f9c5b25..9e3a6667d705 100644
--- a/nixpkgs/pkgs/os-specific/linux/nmon/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nmon/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "AIX & Linux Performance Monitoring tool";
+    mainProgram = "nmon";
     homepage = "https://nmon.sourceforge.net";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/nsncd/default.nix b/nixpkgs/pkgs/os-specific/linux/nsncd/default.nix
index 01cb6695b330..0ad11ee8b79f 100644
--- a/nixpkgs/pkgs/os-specific/linux/nsncd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nsncd/default.nix
@@ -26,6 +26,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "the name service non-caching daemon";
+    mainProgram = "nsncd";
     longDescription = ''
       nsncd is a nscd-compatible daemon that proxies lookups, without caching.
     '';
diff --git a/nixpkgs/pkgs/os-specific/linux/numad/default.nix b/nixpkgs/pkgs/os-specific/linux/numad/default.nix
index 24fc9e188741..2eabbc95fa13 100644
--- a/nixpkgs/pkgs/os-specific/linux/numad/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/numad/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A user-level daemon that monitors NUMA topology and processes resource consumption to facilitate good NUMA resource access";
+    mainProgram = "numad";
     homepage = "https://fedoraproject.org/wiki/Features/numad";
     license = licenses.lgpl21;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/numatop/default.nix b/nixpkgs/pkgs/os-specific/linux/numatop/default.nix
index f4995264b09e..159afa467dc3 100644
--- a/nixpkgs/pkgs/os-specific/linux/numatop/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/numatop/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool for runtime memory locality characterization and analysis of processes and threads on a NUMA system";
+    mainProgram = "numatop";
     homepage = "https://01.org/numatop";
     license = licenses.bsd3;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
index 132f46bf649d..9bfbe18f16ab 100644
--- a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -33,14 +33,12 @@ rec {
   stable = if stdenv.hostPlatform.system == "i686-linux" then legacy_390 else latest;
 
   production = generic {
-    version = "535.154.05";
-    sha256_64bit = "sha256-fpUGXKprgt6SYRDxSCemGXLrEsIA6GOinp+0eGbqqJg=";
-    sha256_aarch64 = "sha256-G0/GiObf/BZMkzzET8HQjdIcvCSqB1uhsinro2HLK9k=";
-    openSha256 = "sha256-wvRdHguGLxS0mR06P5Qi++pDJBCF8pJ8hr4T8O6TJIo=";
-    settingsSha256 = "sha256-9wqoDEWY4I7weWW05F4igj1Gj9wjHsREFMztfEmqm10=";
-    persistencedSha256 = "sha256-d0Q3Lk80JqkS1B54Mahu2yY/WocOqFFbZVBh+ToGhaE=";
-
-    patches = [ rcu_patch ];
+    version = "550.67";
+    sha256_64bit = "sha256-mSAaCccc/w/QJh6w8Mva0oLrqB+cOSO1YMz1Se/32uI=";
+    sha256_aarch64 = "sha256-+UuK0UniAsndN15VDb/xopjkdlc6ZGk5LIm/GNs5ivA=";
+    openSha256 = "sha256-M/1qAQxTm61bznAtCoNQXICfThh3hLqfd0s1n1BFj2A=";
+    settingsSha256 = "sha256-FUEwXpeUMH1DYH77/t76wF1UslkcW721x9BHasaRUaM=";
+    persistencedSha256 = "sha256-ojHbmSAOYl3lOi2X6HOBlokTXhTCK6VNsH6+xfGQsyo=";
   };
 
   latest = selectHighestVersion production (generic {
@@ -66,11 +64,11 @@ rec {
   # Vulkan developer beta driver
   # See here for more information: https://developer.nvidia.com/vulkan-driver
   vulkan_beta = generic rec {
-    version = "550.40.53";
+    version = "550.40.55";
     persistencedVersion = "550.54.14";
     settingsVersion = "550.54.14";
-    sha256_64bit = "sha256-ZA5pb1xjzDyEBrf3UYHta4T9laCOCW7LHJwhcdjw6MA=";
-    openSha256 = "sha256-p4FL0j9Ev4SJ3YcjfhFLxbMbc77dBblkrTYK50+OYqA=";
+    sha256_64bit = "sha256-i9FYgSZW0vLMEORg16+LxFBOacXXrAfWKbtCFuD8+IQ=";
+    openSha256 = "sha256-slb058rNKk/TEltGkdw6Shn/3SF3kjgsXQc8IyFMUB8=";
     settingsSha256 = "sha256-m2rNASJp0i0Ez2OuqL+JpgEF0Yd8sYVCyrOoo/ln2a4=";
     persistencedSha256 = "sha256-XaPN8jVTjdag9frLPgBtqvO/goB5zxeGzaTU0CdL6C4=";
     url = "https://developer.nvidia.com/downloads/vulkan-beta-${lib.concatStrings (lib.splitVersion version)}-linux";
diff --git a/nixpkgs/pkgs/os-specific/linux/nvmet-cli/default.nix b/nixpkgs/pkgs/os-specific/linux/nvmet-cli/default.nix
index 4196efeae672..eafa8501cdb7 100644
--- a/nixpkgs/pkgs/os-specific/linux/nvmet-cli/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nvmet-cli/default.nix
@@ -18,6 +18,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "NVMe target CLI";
+    mainProgram = "nvmetcli";
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ hoverbear ];
diff --git a/nixpkgs/pkgs/os-specific/linux/ocf-resource-agents/default.nix b/nixpkgs/pkgs/os-specific/linux/ocf-resource-agents/default.nix
index 0e6377452670..6c0157bb6cbb 100644
--- a/nixpkgs/pkgs/os-specific/linux/ocf-resource-agents/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ocf-resource-agents/default.nix
@@ -71,7 +71,17 @@ in
 
 # This combines together OCF definitions from other derivations.
 # https://github.com/ClusterLabs/resource-agents/blob/master/doc/dev-guides/ra-dev-guide.asc
-runCommand "ocf-resource-agents" {} ''
+runCommand "ocf-resource-agents" {
+  # Fix derivation location so things like
+  #   $ nix edit -f. ocf-resource-agents
+  # just work.
+  pos = builtins.unsafeGetAttrPos "version" resource-agentsForOCF;
+
+  # Useful to build and undate inputs individually:
+  passthru.inputs = {
+    inherit resource-agentsForOCF drbdForOCF pacemakerForOCF;
+  };
+} ''
   mkdir -p $out/usr/lib/ocf
   ${lndir}/bin/lndir -silent "${resource-agentsForOCF}/lib/ocf/" $out/usr/lib/ocf
   ${lndir}/bin/lndir -silent "${drbdForOCF}/usr/lib/ocf/" $out/usr/lib/ocf
diff --git a/nixpkgs/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix b/nixpkgs/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
index 61a27bd51f02..4f499197fbfd 100644
--- a/nixpkgs/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
@@ -53,6 +53,7 @@ buildGoModule rec {
     description = ''
       OCI hook to trace syscalls and generate a seccomp profile
     '';
+    mainProgram = "oci-seccomp-bpf-hook";
     license = licenses.asl20;
     maintainers = with maintainers; [ saschagrunert ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/odp-dpdk/default.nix b/nixpkgs/pkgs/os-specific/linux/odp-dpdk/default.nix
index 7ac560824db8..bc8bf488def9 100644
--- a/nixpkgs/pkgs/os-specific/linux/odp-dpdk/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/odp-dpdk/default.nix
@@ -10,8 +10,9 @@
 , numactl
 , openssl
 , zlib
+, zstd
 , libbsd
-, libelf
+, elfutils
 , jansson
 , libnl
 }:
@@ -37,8 +38,9 @@ stdenv.mkDerivation rec {
     numactl
     openssl
     zlib
+    zstd
     libbsd
-    libelf
+    elfutils
     jansson
     libbpf
     libnl
diff --git a/nixpkgs/pkgs/os-specific/linux/openrazer/driver.nix b/nixpkgs/pkgs/os-specific/linux/openrazer/driver.nix
index f98fe5cfc743..a2116797824c 100644
--- a/nixpkgs/pkgs/os-specific/linux/openrazer/driver.nix
+++ b/nixpkgs/pkgs/os-specific/linux/openrazer/driver.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation (common // {
 
   meta = common.meta // {
     description = "An entirely open source Linux driver that allows you to manage your Razer peripherals on GNU/Linux";
+    mainProgram = "razer_mount";
     broken = kernel.kernelOlder "4.19";
   };
 })
diff --git a/nixpkgs/pkgs/os-specific/linux/opensnitch-ebpf/default.nix b/nixpkgs/pkgs/os-specific/linux/opensnitch-ebpf/default.nix
index 70332abbe6ef..e012819254d7 100644
--- a/nixpkgs/pkgs/os-specific/linux/opensnitch-ebpf/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/opensnitch-ebpf/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   inherit (opensnitch) src;
 
-  sourceRoot = "source/ebpf_prog";
+  sourceRoot = "${src.name}/ebpf_prog";
 
   nativeBuildInputs = with llvmPackages; [
     bc
diff --git a/nixpkgs/pkgs/os-specific/linux/otpw/default.nix b/nixpkgs/pkgs/os-specific/linux/otpw/default.nix
index c379c149a358..45d0b77906d3 100644
--- a/nixpkgs/pkgs/os-specific/linux/otpw/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/otpw/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A one-time password login package";
+    mainProgram = "otpw-gen";
     homepage = "http://www.cl.cam.ac.uk/~mgk25/otpw.html";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/os-specific/linux/pagemon/default.nix b/nixpkgs/pkgs/os-specific/linux/pagemon/default.nix
index 2ce723913578..c05bd6183fc4 100644
--- a/nixpkgs/pkgs/os-specific/linux/pagemon/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pagemon/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Interactive memory/page monitor for Linux";
+    mainProgram = "pagemon";
     longDescription = ''
       pagemon is an ncurses based interactive memory/page monitoring tool
       allowing one to browse the memory map of an active running process
diff --git a/nixpkgs/pkgs/os-specific/linux/pam_ccreds/default.nix b/nixpkgs/pkgs/os-specific/linux/pam_ccreds/default.nix
index 4b2cc7a3822b..359636e74281 100644
--- a/nixpkgs/pkgs/os-specific/linux/pam_ccreds/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pam_ccreds/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.padl.com/OSS/pam_ccreds.html";
     description = "PAM module to locally authenticate using an enterprise identity when the network is unavailable";
+    mainProgram = "ccreds_chkpwd";
     license = licenses.gpl2;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/pam_tmpdir/default.nix b/nixpkgs/pkgs/os-specific/linux/pam_tmpdir/default.nix
index 859ebedc3340..2eee7c92f5c3 100644
--- a/nixpkgs/pkgs/os-specific/linux/pam_tmpdir/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pam_tmpdir/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://tracker.debian.org/pkg/pam-tmpdir";
     description = "PAM module for creating safe per-user temporary directories";
+    mainProgram = "pam-tmpdir-helper";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/paxctl/default.nix b/nixpkgs/pkgs/os-specific/linux/paxctl/default.nix
index da9928a66e3b..fbb0e00ebe91 100644
--- a/nixpkgs/pkgs/os-specific/linux/paxctl/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/paxctl/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A tool for controlling PaX flags on a per binary basis";
+    mainProgram = "paxctl";
     homepage    = "https://pax.grsecurity.net";
     license     = licenses.gpl2;
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/os-specific/linux/paxtest/default.nix b/nixpkgs/pkgs/os-specific/linux/paxtest/default.nix
index aae8c1296c63..acea7cbe49f7 100644
--- a/nixpkgs/pkgs/os-specific/linux/paxtest/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/paxtest/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Test various memory protection measures";
+    mainProgram = "paxtest";
     license     = licenses.gpl2;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ copumpkin joachifm ];
diff --git a/nixpkgs/pkgs/os-specific/linux/pcimem/default.nix b/nixpkgs/pkgs/os-specific/linux/pcimem/default.nix
index dda4d0fff0b9..2f41e4c7395e 100644
--- a/nixpkgs/pkgs/os-specific/linux/pcimem/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pcimem/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple method of reading and writing to memory registers on a PCI card";
+    mainProgram = "pcimem";
     homepage = "https://github.com/billfarrow/pcimem";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/pcm/default.nix b/nixpkgs/pkgs/os-specific/linux/pcm/default.nix
index 7a86a58ffa12..e464d113e2f7 100644
--- a/nixpkgs/pkgs/os-specific/linux/pcm/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pcm/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pcm";
-  version = "202401";
+  version = "202403";
 
   src = fetchFromGitHub {
     owner = "opcm";
     repo = "pcm";
     rev = version;
-    hash = "sha256-S4E9q4pdF9pT0ehKkeOMbJEFlTV9zB15BZA0R+cjVi8=";
+    hash = "sha256-qefqtuxRaQEsWpXNAuGxuIT3LiH2b8xQb54B0RkzKGA=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/os-specific/linux/pflask/default.nix b/nixpkgs/pkgs/os-specific/linux/pflask/default.nix
index 1270a9b9494f..0394a3311ba2 100644
--- a/nixpkgs/pkgs/os-specific/linux/pflask/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pflask/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Lightweight process containers for Linux";
+    mainProgram = "pflask";
     homepage = "https://ghedo.github.io/pflask/";
     license = lib.licenses.bsd2;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/piper/default.nix b/nixpkgs/pkgs/os-specific/linux/piper/default.nix
index 39b0eaf5325e..b1508dcb6a3e 100644
--- a/nixpkgs/pkgs/os-specific/linux/piper/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/piper/default.nix
@@ -33,6 +33,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "GTK frontend for ratbagd mouse config daemon";
+    mainProgram = "piper";
     homepage    = "https://github.com/libratbag/piper";
     license     = licenses.gpl2;
     maintainers = with maintainers; [ mvnetbiz ];
diff --git a/nixpkgs/pkgs/os-specific/linux/pipework/default.nix b/nixpkgs/pkgs/os-specific/linux/pipework/default.nix
index 3591303a8d0c..56d192ad308b 100644
--- a/nixpkgs/pkgs/os-specific/linux/pipework/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pipework/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
   '';
   meta = with lib; {
     description = "Software-Defined Networking tools for LXC";
+    mainProgram = "pipework";
     homepage = "https://github.com/jpetazzo/pipework";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/pktgen/default.nix b/nixpkgs/pkgs/os-specific/linux/pktgen/default.nix
index b81bf74a3d9e..66971444e71a 100644
--- a/nixpkgs/pkgs/os-specific/linux/pktgen/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pktgen/default.nix
@@ -18,23 +18,15 @@
 
 stdenv.mkDerivation rec {
   pname = "pktgen";
-  version = "22.07.1";
+  version = "23.10.0";
 
   src = fetchFromGitHub {
     owner = "pktgen";
     repo = "Pktgen-DPDK";
     rev = "pktgen-${version}";
-    sha256 = "sha256-wBLGwVdn3ymUTVv7J/kbQYz4WNIgV246PHg51+FStUo=";
+    sha256 = "sha256-eujVEU+XkxF1kIGQJoBW3oXXNSqBEzx6mwR2XYoHinM=";
   };
 
-  patches = [
-    (fetchpatch {
-      # Ealier DPDK deprecated some macros, which were finally removed in >= 22.11
-      url = "https://github.com/pktgen/Pktgen-DPDK/commit/089ef94ac04629f7380f5e618443bcacb2cef5ab.patch";
-      sha256 = "sha256-ITU/dIfu7QPpdIVYuCuDhDG9rVF+n8i1YYn9bFmQUME=";
-    })
-  ];
-
   nativeBuildInputs = [ meson ninja pkg-config ];
 
   buildInputs = [
@@ -47,9 +39,7 @@ stdenv.mkDerivation rec {
   GUI = lib.optionalString withGtk "true";
 
   env.NIX_CFLAGS_COMPILE = toString [
-    # Needed with GCC 12
-    "-Wno-error=address"
-    "-Wno-error=use-after-free"
+    "-Wno-error=sign-compare"
   ];
 
   # requires symbols from this file
diff --git a/nixpkgs/pkgs/os-specific/linux/ply/default.nix b/nixpkgs/pkgs/os-specific/linux/ply/default.nix
index dbd8925a5cb3..0c8e323b4349 100644
--- a/nixpkgs/pkgs/os-specific/linux/ply/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ply/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Dynamic tracing in Linux";
+    mainProgram = "ply";
     homepage = "https://wkz.github.io/ply/";
     license = [ licenses.gpl2Only ];
     maintainers = with maintainers; [ mic92 mbbx6spp ];
diff --git a/nixpkgs/pkgs/os-specific/linux/pommed-light/default.nix b/nixpkgs/pkgs/os-specific/linux/pommed-light/default.nix
index 113cedfab2e9..f92a9c1b5d1d 100644
--- a/nixpkgs/pkgs/os-specific/linux/pommed-light/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pommed-light/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A trimmed version of the pommed hotkey handler for MacBooks";
+    mainProgram = "pommed";
     longDescription = ''
       This is a stripped-down version of pommed with client, dbus, and
       ambient light sensor support removed, optimized for use with dwm
diff --git a/nixpkgs/pkgs/os-specific/linux/power-calibrate/default.nix b/nixpkgs/pkgs/os-specific/linux/power-calibrate/default.nix
index d4ae90cddd7c..d2ce5d4d4fa7 100644
--- a/nixpkgs/pkgs/os-specific/linux/power-calibrate/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/power-calibrate/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool to calibrate power consumption";
+    mainProgram = "power-calibrate";
     homepage = "https://github.com/ColinIanKing/power-calibrate";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/power-profiles-daemon/default.nix b/nixpkgs/pkgs/os-specific/linux/power-profiles-daemon/default.nix
index dcf146a01fa6..2ea7a06b46e1 100644
--- a/nixpkgs/pkgs/os-specific/linux/power-profiles-daemon/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/power-profiles-daemon/default.nix
@@ -109,6 +109,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.freedesktop.org/hadess/power-profiles-daemon";
     description = "Makes user-selected power profiles handling available over D-Bus";
+    mainProgram = "powerprofilesctl";
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mvnetbiz ];
diff --git a/nixpkgs/pkgs/os-specific/linux/powerstat/default.nix b/nixpkgs/pkgs/os-specific/linux/powerstat/default.nix
index 23378b67b4b5..83f0aa634efa 100644
--- a/nixpkgs/pkgs/os-specific/linux/powerstat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/powerstat/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Laptop power measuring tool";
+    mainProgram = "powerstat";
     homepage = "https://github.com/ColinIanKing/powerstat";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/powertop/default.nix b/nixpkgs/pkgs/os-specific/linux/powertop/default.nix
index 481cf1cd3bb5..756bd99816fb 100644
--- a/nixpkgs/pkgs/os-specific/linux/powertop/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/powertop/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
     inherit (src.meta) homepage;
     changelog = "https://github.com/fenrus75/powertop/releases/tag/v${version}";
     description = "Analyze power consumption on Intel-based laptops";
+    mainProgram = "powertop";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ fpletz anthonyroussel ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/prl-tools/default.nix b/nixpkgs/pkgs/os-specific/linux/prl-tools/default.nix
index f8196dba6157..6acb8eba3863 100644
--- a/nixpkgs/pkgs/os-specific/linux/prl-tools/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/prl-tools/default.nix
@@ -36,13 +36,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "prl-tools";
-  version = "19.2.1-54832";
+  version = "19.3.0-54924";
 
   # We download the full distribution to extract prl-tools-lin.iso from
   # => ${dmg}/Parallels\ Desktop.app/Contents/Resources/Tools/prl-tools-lin.iso
   src = fetchurl {
     url = "https://download.parallels.com/desktop/v${lib.versions.major finalAttrs.version}/${finalAttrs.version}/ParallelsDesktop-${finalAttrs.version}.dmg";
-    hash = "sha256-PmQSGoJbB0+Q7t56FOFxOVQ86CJLqAa6PTnWLx5CzpA=";
+    hash = "sha256-Hj1manQSZHiht6mmWes44RVk2Bdqp6QdNCdK322bzWc=";
   };
 
   hardeningDisable = [ "pic" "format" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/procdump/default.nix b/nixpkgs/pkgs/os-specific/linux/procdump/default.nix
index 05ec4b90ed70..0d648782e38c 100644
--- a/nixpkgs/pkgs/os-specific/linux/procdump/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/procdump/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Linux version of the ProcDump Sysinternals tool";
+    mainProgram = "procdump";
     homepage = "https://github.com/Microsoft/ProcDump-for-Linux";
     license = licenses.mit;
     maintainers = with maintainers; [ c0bw3b ];
diff --git a/nixpkgs/pkgs/os-specific/linux/pscircle/default.nix b/nixpkgs/pkgs/os-specific/linux/pscircle/default.nix
index a7ee92beb52b..712eea0c3651 100644
--- a/nixpkgs/pkgs/os-specific/linux/pscircle/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pscircle/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.com/mildlyparallel/pscircle";
     description = "Visualize Linux processes in a form of a radial tree";
+    mainProgram = "pscircle";
     license = licenses.gpl2;
     maintainers = [ maintainers.ldesgoui ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/psmisc/default.nix b/nixpkgs/pkgs/os-specific/linux/psmisc/default.nix
index f269c9146df4..0f920eeafb5d 100644
--- a/nixpkgs/pkgs/os-specific/linux/psmisc/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/psmisc/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "psmisc";
-  version = "23.6";
+  version = "23.7";
 
   src = fetchFromGitLab {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-TjnOn8a7HAgt11zcM0i5DM5ERmsvLJHvo1e5FOsl6IA=";
+    hash = "sha256-49YpdIh0DxLHfxos4sw1HUkV0XQBqmm4M9b0T4eN2xI=";
   };
 
   nativeBuildInputs = [ autoconf automake gettext ];
diff --git a/nixpkgs/pkgs/os-specific/linux/qperf/default.nix b/nixpkgs/pkgs/os-specific/linux/qperf/default.nix
index a074cde448d9..896b5f5c1ff4 100644
--- a/nixpkgs/pkgs/os-specific/linux/qperf/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/qperf/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Measure RDMA and IP performance";
+    mainProgram = "qperf";
     homepage = "https://github.com/linux-rdma/qperf";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/r8125/default.nix b/nixpkgs/pkgs/os-specific/linux/r8125/default.nix
index 4517cb29e75a..1c261355954a 100644
--- a/nixpkgs/pkgs/os-specific/linux/r8125/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/r8125/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   pname = "r8125";
   # On update please verify (using `diff -r`) that the source matches the
   # realtek version.
-  version = "9.011.01";
+  version = "9.012.03";
 
   # This is a mirror. The original website[1] doesn't allow non-interactive
   # downloads, instead emailing you a download link.
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     owner = "louistakepillz";
     repo = "r8125";
     rev = version;
-    sha256 = "sha256-QV1DKkWVtqcnuqgAdJnPpj6Z6ch+lw61zpouXKlyfqQ=";
+    sha256 = "sha256-+CrxvKB96QOcOo87McZOt/XUhriTtTV8jTQgpBG3ejs=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/radeontop/default.nix b/nixpkgs/pkgs/os-specific/linux/radeontop/default.nix
index 9e9cb5845e4e..49e2fdfd90b5 100644
--- a/nixpkgs/pkgs/os-specific/linux/radeontop/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/radeontop/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Top-like tool for viewing AMD Radeon GPU utilization";
+    mainProgram = "radeontop";
     longDescription = ''
       View GPU utilization, both for the total activity percent and individual
       blocks. Supports R600 and later cards: even Southern Islands should work.
diff --git a/nixpkgs/pkgs/os-specific/linux/rasdaemon/default.nix b/nixpkgs/pkgs/os-specific/linux/rasdaemon/default.nix
index c65a11fe8525..35478732fb8c 100644
--- a/nixpkgs/pkgs/os-specific/linux/rasdaemon/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rasdaemon/default.nix
@@ -2,6 +2,7 @@
 , autoreconfHook, pkg-config
 , glibcLocales, kmod, coreutils, perl
 , dmidecode, hwdata, sqlite, libtraceevent
+, fetchpatch
 , nixosTests
 }:
 
@@ -16,6 +17,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-BX3kc629FOh5cnD6Sa/69wKdhmhT3Rpz5ZvhnD4MclQ=";
   };
 
+  patches = [
+    (fetchpatch { # fix #295002 (segfault on AMD), will be in the release after 0.8.0
+      name = "fix crash on AMD";
+      url = "https://github.com/mchehab/rasdaemon/commit/f1ea76375281001cdf4a048c1a4a24d86c6fbe48.patch";
+      hash = "sha256-1VPDTrAsvZGiGbh52EUdG6tYV/n6wUS0mphOSXzran0=";
+    })
+  ];
+
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/os-specific/linux/reap/default.nix b/nixpkgs/pkgs/os-specific/linux/reap/default.nix
index fbbabc96c781..79bfe2936276 100644
--- a/nixpkgs/pkgs/os-specific/linux/reap/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/reap/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/leahneukirchen/reap";
     description = "run process until all its spawned processes are dead ";
+    mainProgram = "reap";
     license = with licenses; [ publicDomain ];
     platforms = platforms.linux;
     maintainers = [ maintainers.leahneukirchen ];
diff --git a/nixpkgs/pkgs/os-specific/linux/regionset/default.nix b/nixpkgs/pkgs/os-specific/linux/regionset/default.nix
index f685eec19488..07154a1fc9a1 100644
--- a/nixpkgs/pkgs/os-specific/linux/regionset/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/regionset/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
     inherit version;
     homepage = "http://linvdr.org/projects/regionset/";
     description = "Tool for changing the region code setting of DVD players";
+    mainProgram = "regionset";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/reptyr/default.nix b/nixpkgs/pkgs/os-specific/linux/reptyr/default.nix
index fadb9df98086..5a9e58c3f6f9 100644
--- a/nixpkgs/pkgs/os-specific/linux/reptyr/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/reptyr/default.nix
@@ -40,6 +40,7 @@ in stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [raskin];
     license = lib.licenses.mit;
     description = "Reparent a running program to a new terminal";
+    mainProgram = "reptyr";
     homepage = "https://github.com/nelhage/reptyr";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix b/nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix
index e1a14a80162c..53cbf68330c6 100644
--- a/nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix
@@ -50,6 +50,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     homepage = "http://wireless.kernel.org/en/users/Documentation/rfkill";
     description = "Rules+hook for udev to catch rfkill state changes";
+    mainProgram = "rfkill-hook.sh";
     platforms = platforms.linux;
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/rtkit/default.nix b/nixpkgs/pkgs/os-specific/linux/rtkit/default.nix
index 69d32079d5c7..c6bb4e0cbfcd 100644
--- a/nixpkgs/pkgs/os-specific/linux/rtkit/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rtkit/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/heftig/rtkit";
     description = "A daemon that hands out real-time priority to processes";
+    mainProgram = "rtkitctl";
     license = with licenses; [ gpl3 bsd0 ]; # lib is bsd license
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/rtl8814au/default.nix b/nixpkgs/pkgs/os-specific/linux/rtl8814au/default.nix
index 0b1522c96972..bef60b52814d 100644
--- a/nixpkgs/pkgs/os-specific/linux/rtl8814au/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rtl8814au/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "rtl8814au";
-  version = "${kernel.version}-unstable-2023-03-21";
+  version = "${kernel.version}-unstable-2024-03-19";
 
   src = fetchFromGitHub {
     owner = "morrownr";
     repo = "8814au";
-    rev = "6f80699e68fd2a9f2bba3f1a56ca06d1b7992bd8";
-    hash = "sha256-7dv+8vNI1OLLA4SdZQPL87pTS9HR6mGijzWo9WL7vc0=";
+    rev = "d7945c1e0244c83cbbad4da331648246f12eaee9";
+    hash = "sha256-idjHlvyFpQgLGfNAPpZKRnLdXnAogUW3qGHC1WzGVmA=";
   };
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
diff --git a/nixpkgs/pkgs/os-specific/linux/ryzenadj/default.nix b/nixpkgs/pkgs/os-specific/linux/ryzenadj/default.nix
index 0744ed2896ff..ef671b2f16c4 100644
--- a/nixpkgs/pkgs/os-specific/linux/ryzenadj/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ryzenadj/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, pciutils, cmake }:
 stdenv.mkDerivation rec {
   pname = "ryzenadj";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "FlyGoat";
     repo = "RyzenAdj";
     rev = "v${version}";
-    sha256 = "sha256-Lqq4LNRmqQyeIJfr/+tYdKMEk+P54VnwZAQZcE0ev8Y=";
+    sha256 = "sha256-aNkVP1fuPcb41Qk5YI1loJnqVmamSzoMFyTGkJtrnvg=";
   };
 
   nativeBuildInputs = [ pciutils cmake ];
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Adjust power management settings for Ryzen Mobile Processors.";
+    mainProgram = "ryzenadj";
     homepage = "https://github.com/FlyGoat/RyzenAdj";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ rhendric ];
diff --git a/nixpkgs/pkgs/os-specific/linux/schedtool/default.nix b/nixpkgs/pkgs/os-specific/linux/schedtool/default.nix
index 98d9248e3f42..d3d009db1714 100644
--- a/nixpkgs/pkgs/os-specific/linux/schedtool/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/schedtool/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Query or alter a process' scheduling policy under Linux";
+    mainProgram = "schedtool";
     homepage = "https://freequaos.host.sk/schedtool/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/sd-switch/default.nix b/nixpkgs/pkgs/os-specific/linux/sd-switch/default.nix
index b231f32d42a1..7750862c34c2 100644
--- a/nixpkgs/pkgs/os-specific/linux/sd-switch/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/sd-switch/default.nix
@@ -19,6 +19,7 @@ in rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "A systemd unit switcher for Home Manager";
+    mainProgram = "sd-switch";
     homepage = "https://gitlab.com/rycee/sd-switch";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ rycee ];
diff --git a/nixpkgs/pkgs/os-specific/linux/service-wrapper/default.nix b/nixpkgs/pkgs/os-specific/linux/service-wrapper/default.nix
index 381f0699697a..e7aa3ea9d49d 100644
--- a/nixpkgs/pkgs/os-specific/linux/service-wrapper/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/service-wrapper/default.nix
@@ -14,6 +14,7 @@ runCommand name {
 
   meta = with lib; {
     description = "A convenient wrapper for the systemctl commands, borrow from Ubuntu";
+    mainProgram = "service";
     license     = licenses.gpl2Plus;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ DerTim1 ];
diff --git a/nixpkgs/pkgs/os-specific/linux/seturgent/default.nix b/nixpkgs/pkgs/os-specific/linux/seturgent/default.nix
index 6d83e322ce8f..b8c02f47d0ee 100644
--- a/nixpkgs/pkgs/os-specific/linux/seturgent/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/seturgent/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     platforms = platforms.linux;
     description = "Set an application's urgency hint (or not)";
+    mainProgram = "seturgent";
     maintainers = with maintainers; [ yarr ];
     homepage = "https://codemadness.org/seturgent-set-urgency-hints-for-x-applications.html";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/os-specific/linux/shadow/default.nix b/nixpkgs/pkgs/os-specific/linux/shadow/default.nix
index 946299366c0a..8329e9e8f966 100644
--- a/nixpkgs/pkgs/os-specific/linux/shadow/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/shadow/default.nix
@@ -17,13 +17,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "shadow";
-  version = "4.14.5";
+  version = "4.14.6";
 
   src = fetchFromGitHub {
     owner = "shadow-maint";
     repo = pname;
     rev = version;
-    hash = "sha256-ogkPp6dxWHdvJvWcb5iauH81CVTH7BbonFXG1gGysUE=";
+    hash = "sha256-+klU1a0cSgHPwZkDnbCSjKnBUKIm2Z3OGUvR/zrqQxo=";
   };
 
   outputs = [ "out" "su" "dev" "man" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/sinit/default.nix b/nixpkgs/pkgs/os-specific/linux/sinit/default.nix
index a412461bfd51..3bf73a8f495e 100644
--- a/nixpkgs/pkgs/os-specific/linux/sinit/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/sinit/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A very minimal Linux init implementation from suckless.org";
+    mainProgram = "sinit";
     license = licenses.mit;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/smemstat/default.nix b/nixpkgs/pkgs/os-specific/linux/smemstat/default.nix
index e5d7fb1a13b6..05ad1ddb0335 100644
--- a/nixpkgs/pkgs/os-specific/linux/smemstat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/smemstat/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Memory usage monitoring tool";
+    mainProgram = "smemstat";
     homepage = "https://github.com/ColinIanKing/smemstat";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/statifier/default.nix b/nixpkgs/pkgs/os-specific/linux/statifier/default.nix
index eefd95d1153a..6aa11cad4f25 100644
--- a/nixpkgs/pkgs/os-specific/linux/statifier/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/statifier/default.nix
@@ -18,6 +18,7 @@ multiStdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool for creating static Linux binaries";
+    mainProgram = "statifier";
     platforms = platforms.linux;
     license = licenses.gpl2;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/swapview/default.nix b/nixpkgs/pkgs/os-specific/linux/swapview/default.nix
index 8eb455501052..3ef2426fad93 100644
--- a/nixpkgs/pkgs/os-specific/linux/swapview/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/swapview/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple program to view processes' swap usage on Linux";
+    mainProgram = "swapview";
     homepage = "https://github.com/lilydjwg/swapview";
     platforms = platforms.linux;
     license = with licenses; [ bsd3 ];
diff --git a/nixpkgs/pkgs/os-specific/linux/switcheroo-control/default.nix b/nixpkgs/pkgs/os-specific/linux/switcheroo-control/default.nix
index a749168f5bc4..a6993af54910 100644
--- a/nixpkgs/pkgs/os-specific/linux/switcheroo-control/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/switcheroo-control/default.nix
@@ -46,6 +46,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "D-Bus service to check the availability of dual-GPU";
+    mainProgram = "switcherooctl";
     homepage = "https://gitlab.freedesktop.org/hadess/switcheroo-control/";
     changelog = "https://gitlab.freedesktop.org/hadess/switcheroo-control/-/blob/${version}/NEWS";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/os-specific/linux/sysdig/default.nix b/nixpkgs/pkgs/os-specific/linux/sysdig/default.nix
index 0dbfbd29b6c3..302404b38e12 100644
--- a/nixpkgs/pkgs/os-specific/linux/sysdig/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/sysdig/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, kernel, installShellFiles, pkg-config
 , luajit, ncurses, perl, jsoncpp, openssl, curl, jq, gcc, elfutils, tbb, protobuf, grpc
-, yaml-cpp, nlohmann_json, re2, zstd, uthash, fetchpatch, fetchurl
+, yaml-cpp, nlohmann_json, re2, zstd, uthash
 }:
 
 let
@@ -26,13 +26,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "sysdig";
-  version = "0.35.1";
+  version = "0.35.3";
 
   src = fetchFromGitHub {
     owner = "draios";
     repo = "sysdig";
     rev = version;
-    hash = "sha256-nSCkKwhdEduepyvcyWEKMQtQ6TfhF3GnTSreRVoarsw=";
+    hash = "sha256-wvCnWzQbkkM8qEG93li22P67WX1bGX9orTk+2vsBHZY=";
   };
 
   nativeBuildInputs = [ cmake perl installShellFiles pkg-config ];
diff --git a/nixpkgs/pkgs/os-specific/linux/system76-power/default.nix b/nixpkgs/pkgs/os-specific/linux/system76-power/default.nix
index f1a4c9b7bb3b..6a5456080f59 100644
--- a/nixpkgs/pkgs/os-specific/linux/system76-power/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/system76-power/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "System76 Power Management";
+    mainProgram = "system76-power";
     homepage = "https://github.com/pop-os/system76-power";
     license = licenses.gpl3Plus;
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/system76-scheduler/default.nix b/nixpkgs/pkgs/os-specific/linux/system76-scheduler/default.nix
index 99c54900cf71..0608fd1c10d0 100644
--- a/nixpkgs/pkgs/os-specific/linux/system76-scheduler/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/system76-scheduler/default.nix
@@ -35,6 +35,7 @@ in rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "System76 Scheduler";
+    mainProgram = "system76-scheduler";
     homepage = "https://github.com/pop-os/system76-scheduler";
     license = licenses.mpl20;
     platforms = [ "x86_64-linux" "x86-linux" "aarch64-linux" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd-wait/default.nix b/nixpkgs/pkgs/os-specific/linux/systemd-wait/default.nix
index 348549a1bc64..99e07ebbf49c 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd-wait/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/systemd-wait/default.nix
@@ -19,6 +19,7 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/Stebalien/systemd-wait";
     license = lib.licenses.gpl3;
     description = "Wait for a systemd unit to enter a specific state";
+    mainProgram = "systemd-wait";
     maintainers = [ lib.maintainers.benley ];
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/default.nix b/nixpkgs/pkgs/os-specific/linux/systemd/default.nix
index c304cb1dc2f8..05e66dd704af 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/default.nix
@@ -5,6 +5,7 @@
 , nixosTests
 , pkgsCross
 , fetchFromGitHub
+, fetchpatch
 , fetchzip
 , buildPackages
 , makeBinaryWrapper
@@ -224,6 +225,15 @@ stdenv.mkDerivation (finalAttrs: {
     ./0017-meson.build-do-not-create-systemdstatedir.patch
   ] ++ lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isGnu) [
     ./0018-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch
+  ] ++ lib.optional (stdenv.hostPlatform.isPower || stdenv.hostPlatform.isRiscV) [
+    # Fixed upstream and included in the main and stable branches. Can be dropped
+    # when bumping to >= v255.5.
+    # https://github.com/systemd/systemd/issues/30448
+    # https://github.com/NixOS/nixpkgs/pull/282607
+    (fetchpatch {
+      url = "https://github.com/systemd/systemd/commit/8040fa55a1cbc34dede3205a902095ecd26c21e3.patch";
+      sha256 = "0c6z7bsndbkb8m130jnjpsl138sfv3q171726n5vkyl2n9ihnavk";
+    })
   ] ++ lib.optional stdenv.hostPlatform.isMusl (
     let
       oe-core = fetchzip {
@@ -856,8 +866,8 @@ stdenv.mkDerivation (finalAttrs: {
     # needed - and therefore `interfaceVersion` should be incremented.
     interfaceVersion = 2;
 
-    inherit withCryptsetup withHostnamed withImportd withKmod withLocaled
-      withMachined withPortabled withTimedated withUtmp util-linux kmod kbd;
+    inherit withBootloader withCryptsetup withEfi withHostnamed withImportd withKmod
+      withLocaled withMachined withPortabled withTimedated withUtmp util-linux kmod kbd;
 
     tests = {
       inherit (nixosTests)
diff --git a/nixpkgs/pkgs/os-specific/linux/tailor-gui/default.nix b/nixpkgs/pkgs/os-specific/linux/tailor-gui/default.nix
index d8aace99e4ef..531b956f1128 100644
--- a/nixpkgs/pkgs/os-specific/linux/tailor-gui/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/tailor-gui/default.nix
@@ -15,7 +15,7 @@
 }:
 let
   src = tuxedo-rs.src;
-  sourceRoot = "source/tailor_gui";
+  sourceRoot = "${src.name}/tailor_gui";
   pname = "tailor_gui";
   version = "0.2.3";
 in
@@ -48,6 +48,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Rust GUI for interacting with hardware from TUXEDO Computers";
+    mainProgram = "tailor_gui";
     longDescription = ''
       An alternative to the TUXEDO Control Center (https://www.tuxedocomputers.com/en/TUXEDO-Control-Center.tuxedo),
       written in Rust.
diff --git a/nixpkgs/pkgs/os-specific/linux/target-isns/default.nix b/nixpkgs/pkgs/os-specific/linux/target-isns/default.nix
index fdc0c52a0bf7..397e414490c2 100644
--- a/nixpkgs/pkgs/os-specific/linux/target-isns/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/target-isns/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "iSNS client for the Linux LIO iSCSI target";
+    mainProgram = "target-isns";
     homepage = "https://github.com/open-iscsi/target-isns";
     maintainers = [ maintainers.markuskowa ];
     license = licenses.gpl2Only;
diff --git a/nixpkgs/pkgs/os-specific/linux/tiscamera/0001-cmake-find-aravis-fix-pkg-cfg-include-dirs.patch b/nixpkgs/pkgs/os-specific/linux/tiscamera/0001-cmake-find-aravis-fix-pkg-cfg-include-dirs.patch
deleted file mode 100644
index 0e9821467850..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/tiscamera/0001-cmake-find-aravis-fix-pkg-cfg-include-dirs.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 90b540bd135de2587352719b14c385b20aa572be Mon Sep 17 00:00:00 2001
-From: Raymond Gauthier <jraygauthier@gmail.com>
-Date: Wed, 15 Jun 2022 16:09:58 -0400
-Subject: [PATCH] cmake-find-aravis: fix pkg cfg include dirs
-
----
- cmake/modules/FindAravis.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cmake/modules/FindAravis.cmake b/cmake/modules/FindAravis.cmake
-index 5dab5431..811302b9 100644
---- a/cmake/modules/FindAravis.cmake
-+++ b/cmake/modules/FindAravis.cmake
-@@ -20,7 +20,7 @@ find_path(aravis_INCLUDE_DIR
- 	arv.h
- 	PATHS
- 	${aravis_PKGCONF_INCLUDE_DIRS}
--	${aravis0_6_PKGCONF_INCLUDE_DIRS}
-+	${aravis0_8_PKGCONF_INCLUDE_DIRS}
- 	/usr/local/include
- 	# /usr/local/include/aravis-0.4
- 	/usr/local/include/aravis-0.8
--- 
-2.31.1
-
diff --git a/nixpkgs/pkgs/os-specific/linux/tiscamera/0001-tcamconvert-tcamsrc-add-missing-include-lib-dirs.patch b/nixpkgs/pkgs/os-specific/linux/tiscamera/0001-tcamconvert-tcamsrc-add-missing-include-lib-dirs.patch
deleted file mode 100644
index 3d1e5503bcd3..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/tiscamera/0001-tcamconvert-tcamsrc-add-missing-include-lib-dirs.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 5e7146e176cb1b01b47d16a66763469dccd87f25 Mon Sep 17 00:00:00 2001
-From: Raymond Gauthier <jraygauthier@gmail.com>
-Date: Thu, 9 Jun 2022 19:45:30 -0400
-Subject: [PATCH] tcamconvert&tcamsrc: add missing include/lib dirs
-
-These were building libraries with dependencies on gstreamer-video
-and gstreamer-base but weren't adding the proper include and
-lib directories which resulted in build failure on systems
-where video and base aren't installed in the same location
-as gstreamer itself (e.g: nix, nixos).
----
- src/gstreamer-1.0/tcamconvert/CMakeLists.txt |  2 ++
- src/gstreamer-1.0/tcamsrc/CMakeLists.txt     | 11 +++++++++++
- 2 files changed, 13 insertions(+)
-
-diff --git a/src/gstreamer-1.0/tcamconvert/CMakeLists.txt b/src/gstreamer-1.0/tcamconvert/CMakeLists.txt
-index 30563c38..066cb5d7 100644
---- a/src/gstreamer-1.0/tcamconvert/CMakeLists.txt
-+++ b/src/gstreamer-1.0/tcamconvert/CMakeLists.txt
-@@ -28,6 +28,8 @@ add_library(tcamconvert SHARED
- target_include_directories(tcamconvert
-   PRIVATE
-   ${GSTREAMER_INCLUDE_DIRS}
-+  ${GSTREAMER_BASE_INCLUDE_DIRS}
-+  ${GSTREAMER_VIDEO_INCLUDE_DIRS}
-   )
- 
- set_project_warnings(tcamconvert)
-diff --git a/src/gstreamer-1.0/tcamsrc/CMakeLists.txt b/src/gstreamer-1.0/tcamsrc/CMakeLists.txt
-index 3bc7ed97..ed5be37f 100644
---- a/src/gstreamer-1.0/tcamsrc/CMakeLists.txt
-+++ b/src/gstreamer-1.0/tcamsrc/CMakeLists.txt
-@@ -21,12 +21,15 @@ add_library(gsttcamstatistics SHARED
- target_include_directories(gsttcamstatistics
-   PRIVATE
-   ${GSTREAMER_INCLUDE_DIRS}
-+  ${GSTREAMER_BASE_INCLUDE_DIRS}
-+  ${GSTREAMER_VIDEO_INCLUDE_DIRS}
-   )
- 
- target_link_libraries( gsttcamstatistics
-   PRIVATE
-   ${GSTREAMER_LIBRARIES}
-   ${GSTREAMER_BASE_LIBRARIES}
-+  ${GSTREAMER_VIDEO_LIBRARIES}
-   )
- 
- 
-@@ -53,10 +56,18 @@ add_library(gsttcamsrc SHARED
- 	tcambind.cpp
-     )
- 
-+  target_include_directories(gsttcamsrc
-+    PRIVATE
-+    ${GSTREAMER_INCLUDE_DIRS}
-+    ${GSTREAMER_BASE_INCLUDE_DIRS}
-+    ${GSTREAMER_VIDEO_INCLUDE_DIRS}
-+    )
-+
-   target_link_libraries( gsttcamsrc
-     PRIVATE
- 	${GSTREAMER_LIBRARIES}
- 	${GSTREAMER_BASE_LIBRARIES}
-+    ${GSTREAMER_VIDEO_LIBRARIES}
- 
- 	tcamgstbase
- 	tcam::gst-helper
--- 
-2.31.1
-
diff --git a/nixpkgs/pkgs/os-specific/linux/tiscamera/0001-udev-rules-fix-install-location.patch b/nixpkgs/pkgs/os-specific/linux/tiscamera/0001-udev-rules-fix-install-location.patch
deleted file mode 100644
index 9b373516aa9b..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/tiscamera/0001-udev-rules-fix-install-location.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From fdbc0b74812b9afd663226715375b5688e5408b5 Mon Sep 17 00:00:00 2001
-From: Raymond Gauthier <jraygauthier@gmail.com>
-Date: Thu, 9 Jun 2022 20:23:02 -0400
-Subject: [PATCH] udev/rules: fix install location
-
----
- CMakeInstall.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeInstall.cmake b/CMakeInstall.cmake
-index 4773091f..962c9b09 100644
---- a/CMakeInstall.cmake
-+++ b/CMakeInstall.cmake
-@@ -92,7 +92,7 @@ else()
- 
-   else()
- 
--    set(TCAM_INSTALL_UDEV "${CMAKE_INSTALL_PREFIX}/udev/rules.d" CACHE PATH "udev rules installation path" FORCE)
-+    set(TCAM_INSTALL_UDEV "${CMAKE_INSTALL_PREFIX}/lib/udev/rules.d" CACHE PATH "udev rules installation path" FORCE)
-     set(TCAM_INSTALL_SYSTEMD "${CMAKE_INSTALL_PREFIX}/lib/systemd/system/" CACHE PATH "systemd unit installation path" FORCE)
- 
-     set(TCAM_INSTALL_PKGCONFIG "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" CACHE PATH "pkgconfig installation path" FORCE)
--- 
-2.31.1
-
diff --git a/nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix b/nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix
index ce59cea368b1..600655c447f7 100644
--- a/nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix
@@ -19,7 +19,8 @@
 , gobject-introspection
 , gst_all_1
 , wrapGAppsHook
-, withDoc ? true
+  # needs pkg_resources
+, withDoc ? false
 , sphinx
 , graphviz
 , withAravis ? true
@@ -32,21 +33,15 @@
 
 stdenv.mkDerivation rec {
   pname = "tiscamera";
-  version = "1.0.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "TheImagingSource";
-    repo = pname;
-    rev = "v-${pname}-${version}";
-    sha256 = "0msz33wvqrji11kszdswcvljqnjflmjpk0aqzmsv6i855y8xn6cd";
+    repo = "tiscamera";
+    rev = "v-tiscamera-${version}";
+    hash = "sha256-33U/8CbqNWIRwfDHXCZSN466WEQj9fip+Z5EJ7kIwRM=";
   };
 
-  patches = [
-    ./0001-tcamconvert-tcamsrc-add-missing-include-lib-dirs.patch
-    ./0001-udev-rules-fix-install-location.patch
-    ./0001-cmake-find-aravis-fix-pkg-cfg-include-dirs.patch
-  ];
-
   postPatch = ''
     cp ${catch2}/include/catch2/catch.hpp external/catch/catch.hpp
 
@@ -110,6 +105,8 @@ stdenv.mkDerivation rec {
     "-DTCAM_INSTALL_FORCE_PREFIX=ON"
   ];
 
+  env.CXXFLAGS = "-include cstdint";
+
   doCheck = true;
 
   # gstreamer tests requires, besides gst-plugins-bad, plugins installed by this expression.
diff --git a/nixpkgs/pkgs/os-specific/linux/tmon/default.nix b/nixpkgs/pkgs/os-specific/linux/tmon/default.nix
index 3a2697e0a712..a80724f19eb5 100644
--- a/nixpkgs/pkgs/os-specific/linux/tmon/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/tmon/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Monitoring and Testing Tool for Linux kernel thermal subsystem";
+    mainProgram = "tmon";
     homepage = "https://www.kernel.org/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/tpacpi-bat/default.nix b/nixpkgs/pkgs/os-specific/linux/tpacpi-bat/default.nix
index 455a36eb7aeb..42d8a0f9dbcf 100644
--- a/nixpkgs/pkgs/os-specific/linux/tpacpi-bat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/tpacpi-bat/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     maintainers = [lib.maintainers.orbekk];
     platforms = lib.platforms.linux;
     description = "Tool to set battery charging thresholds on Lenovo Thinkpad";
+    mainProgram = "tpacpi-bat";
     license = lib.licenses.gpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/trace-cmd/default.nix b/nixpkgs/pkgs/os-specific/linux/trace-cmd/default.nix
index d19754cdb5e0..80b20c555b4e 100644
--- a/nixpkgs/pkgs/os-specific/linux/trace-cmd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/trace-cmd/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "User-space tools for the Linux kernel ftrace subsystem";
+    mainProgram = "trace-cmd";
     homepage    = "https://www.trace-cmd.org/";
     license     = with licenses; [ lgpl21Only gpl2Only ];
     platforms   = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/trinity/default.nix b/nixpkgs/pkgs/os-specific/linux/trinity/default.nix
index e0ab2b2802f1..370620eef252 100644
--- a/nixpkgs/pkgs/os-specific/linux/trinity/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/trinity/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Linux System call fuzz tester";
+    mainProgram = "trinity";
     homepage = "https://github.com/kernelslacker/trinity";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.dezgeg ];
diff --git a/nixpkgs/pkgs/os-specific/linux/tuna/default.nix b/nixpkgs/pkgs/os-specific/linux/tuna/default.nix
index e3101cded09f..b57169369ca7 100644
--- a/nixpkgs/pkgs/os-specific/linux/tuna/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/tuna/default.nix
@@ -53,6 +53,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Thread and IRQ affinity setting GUI and cmd line tool";
+    mainProgram = "tuna";
     homepage = "https://git.kernel.org/pub/scm/utils/tuna/tuna.git";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/tunctl/default.nix b/nixpkgs/pkgs/os-specific/linux/tunctl/default.nix
index e71e349a2516..5e7fea75b6ab 100644
--- a/nixpkgs/pkgs/os-specific/linux/tunctl/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/tunctl/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://tunctl.sourceforge.net/";
     description = "Utility to set up and maintain TUN/TAP network interfaces";
+    mainProgram = "tunctl";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/turbostat/default.nix b/nixpkgs/pkgs/os-specific/linux/turbostat/default.nix
index fb1bcf582fba..4c51bca386d2 100644
--- a/nixpkgs/pkgs/os-specific/linux/turbostat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/turbostat/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Report processor frequency and idle statistics";
+    mainProgram = "turbostat";
     homepage = "https://www.kernel.org/";
     license = licenses.gpl2;
     platforms = [ "i686-linux" "x86_64-linux" ]; # x86-specific
diff --git a/nixpkgs/pkgs/os-specific/linux/ulogd/default.nix b/nixpkgs/pkgs/os-specific/linux/ulogd/default.nix
index a79a38389e4a..533db8f19c84 100644
--- a/nixpkgs/pkgs/os-specific/linux/ulogd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ulogd/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Userspace logging daemon for netfilter/iptables";
+    mainProgram = "ulogd";
 
     longDescription = ''
       Logging daemon that reads event messages coming from the Netfilter
diff --git a/nixpkgs/pkgs/os-specific/linux/ultrablue-server/default.nix b/nixpkgs/pkgs/os-specific/linux/ultrablue-server/default.nix
index bb162f1693ba..1d3cc69fae10 100644
--- a/nixpkgs/pkgs/os-specific/linux/ultrablue-server/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ultrablue-server/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "User-friendly Lightweight TPM Remote Attestation over Bluetooth";
+    mainProgram = "ultrablue-server";
     homepage = "https://github.com/ANSSI-FR/ultrablue";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/undervolt/default.nix b/nixpkgs/pkgs/os-specific/linux/undervolt/default.nix
index 4b9758494dca..d720031eb8ac 100644
--- a/nixpkgs/pkgs/os-specific/linux/undervolt/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/undervolt/default.nix
@@ -14,6 +14,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/georgewhewell/undervolt/";
     description = "A program for undervolting Intel CPUs on Linux";
+    mainProgram = "undervolt";
 
     longDescription = ''
       Undervolt is a program for undervolting Intel CPUs under Linux. It works in a similar
diff --git a/nixpkgs/pkgs/os-specific/linux/unscd/default.nix b/nixpkgs/pkgs/os-specific/linux/unscd/default.nix
index 82b8c7076271..9f77fa01b0ee 100644
--- a/nixpkgs/pkgs/os-specific/linux/unscd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/unscd/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://busybox.net/~vda/unscd/";
     description = "Less buggy replacement for the glibc name service cache daemon";
+    mainProgram = "nscd";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/os-specific/linux/unstick/default.nix b/nixpkgs/pkgs/os-specific/linux/unstick/default.nix
index ee82679de4ea..3c61e26b335b 100644
--- a/nixpkgs/pkgs/os-specific/linux/unstick/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/unstick/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://github.com/kwohlfahrt/unstick";
     description = "Silently eats chmod commands forbidden by Nix";
+    mainProgram = "unstick";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ kwohlfahrt ];
diff --git a/nixpkgs/pkgs/os-specific/linux/untie/default.nix b/nixpkgs/pkgs/os-specific/linux/untie/default.nix
index 947ae2ca8d8b..7d96631deb86 100644
--- a/nixpkgs/pkgs/os-specific/linux/untie/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/untie/default.nix
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A tool to run processes untied from some of the namespaces";
+    mainProgram = "untie";
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/os-specific/linux/upower/default.nix b/nixpkgs/pkgs/os-specific/linux/upower/default.nix
index b0b7b4f6776c..3b08318c965e 100644
--- a/nixpkgs/pkgs/os-specific/linux/upower/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/upower/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitLab
+, fetchpatch
 , makeWrapper
 , pkg-config
 , libxslt
@@ -51,6 +52,10 @@ stdenv.mkDerivation (finalAttrs: {
     ./i686-test-remove-battery-check.patch
   ] ++ [
     ./installed-tests-path.patch
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/upower/upower/-/merge_requests/207.diff";
+      hash = "sha256-ldr1bKbSAdYpwbbe/Iq9i0Q9zQrHWvIvBGym/F3+vxs=";
+    })
   ];
 
   strictDeps = true;
@@ -211,6 +216,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://upower.freedesktop.org/";
     changelog = "https://gitlab.freedesktop.org/upower/upower/-/blob/v${finalAttrs.version}/NEWS";
     description = "A D-Bus service for power management";
+    mainProgram = "upower";
     maintainers = teams.freedesktop.members;
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/os-specific/linux/usbrelay/default.nix b/nixpkgs/pkgs/os-specific/linux/usbrelay/default.nix
index 670de2028c4f..656808d8389b 100644
--- a/nixpkgs/pkgs/os-specific/linux/usbrelay/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/usbrelay/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Tool to control USB HID relays";
+    mainProgram = "usbrelay";
     homepage = "https://github.com/darrylb123/usbrelay";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ wentasah ];
diff --git a/nixpkgs/pkgs/os-specific/linux/usbtop/default.nix b/nixpkgs/pkgs/os-specific/linux/usbtop/default.nix
index fb3d32df09a0..ba97cae68bd0 100644
--- a/nixpkgs/pkgs/os-specific/linux/usbtop/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/usbtop/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/aguinet/usbtop";
     description = "A top utility that shows an estimated instantaneous bandwidth on USB buses and devices";
+    mainProgram = "usbtop";
     maintainers = with maintainers; [ ];
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/usbutils/default.nix b/nixpkgs/pkgs/os-specific/linux/usbutils/default.nix
index cfd94bf33c46..4e64f394d82f 100644
--- a/nixpkgs/pkgs/os-specific/linux/usbutils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/usbutils/default.nix
@@ -27,8 +27,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.linux-usb.org/";
     description = "Tools for working with USB devices, such as lsusb";
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ cafkafk ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    mainProgram = "lsusb";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/usermount/default.nix b/nixpkgs/pkgs/os-specific/linux/usermount/default.nix
index 475ccd848eb1..73135da548ed 100644
--- a/nixpkgs/pkgs/os-specific/linux/usermount/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/usermount/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "https://github.com/tom5760/usermount";
     description = "A simple tool to automatically mount removable drives using UDisks2 and D-Bus";
+    mainProgram = "usermount";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/v4l2-relayd/default.nix b/nixpkgs/pkgs/os-specific/linux/v4l2-relayd/default.nix
index a089ce8c77f8..77d7034b863b 100644
--- a/nixpkgs/pkgs/os-specific/linux/v4l2-relayd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/v4l2-relayd/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Streaming relay for v4l2loopback using GStreamer";
+    mainProgram = "v4l2-relayd";
     homepage = "https://git.launchpad.net/v4l2-relayd";
     license = licenses.gpl2;
     maintainers = with maintainers; [ betaboon ];
diff --git a/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix b/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix
index 3d16748f05a2..6fe83fd09eff 100644
--- a/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/v4l2loopback/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "v4l2loopback";
-  version = "unstable-2023-11-23-${kernel.version}";
+  version = "0.12.7-unstable-2024-02-12-${kernel.version}";
 
   src = fetchFromGitHub {
     owner = "umlaeute";
     repo = "v4l2loopback";
-    rev = "850a2e36849f6ad3c9bf74f2ae3f603452bd8a71";
-    hash = "sha256-LqP5R3oKbjUQUfDZUWpkrmyopWhOt4wlgSgGywTPJXM=";
+    rev = "5d72c17f92ee0e38efbb7eb85e34443ecbf1a80c";
+    hash = "sha256-ggmYH5MUXhMPvA8UZ2EAG+eGoPTNbw7B8UxmmgP6CsE=";
   };
 
   hardeningDisable = [ "format" "pic" ];
@@ -33,6 +33,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A kernel module to create V4L2 loopback devices";
+    mainProgram = "v4l2loopback-ctl";
     homepage = "https://github.com/umlaeute/v4l2loopback";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ moni ];
diff --git a/nixpkgs/pkgs/os-specific/linux/v4l2loopback/revert-pr518.patch b/nixpkgs/pkgs/os-specific/linux/v4l2loopback/revert-pr518.patch
deleted file mode 100644
index d5d2564c32c4..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/v4l2loopback/revert-pr518.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-diff --git a/v4l2loopback.c b/v4l2loopback.c
-index 2ab1f76..2514f09 100644
---- a/v4l2loopback.c
-+++ b/v4l2loopback.c
-@@ -92,17 +92,6 @@ MODULE_LICENSE("GPL");
- 		}                                                      \
- 	} while (0)
- 
--/* TODO: Make sure that function is never interrupted. */
--static inline int mod_inc(int *number, int mod)
--{
--	int result;
--	result = (*number + 1) % mod;
--	if (unlikely(result < 0))
--		result += mod;
--	*number = result;
--	return result;
--}
--
- static inline void v4l2l_get_timestamp(struct v4l2_buffer *b)
- {
- 	/* ktime_get_ts is considered deprecated, so use ktime_get_ts64 if possible */
-@@ -1424,8 +1413,9 @@ static int vidioc_reqbufs(struct file *file, void *fh,
- 			i = dev->write_position;
- 			list_for_each_entry(pos, &dev->outbufs_list,
- 					    list_head) {
--				dev->bufpos2index[mod_inc(&i, b->count)] =
-+				dev->bufpos2index[i % b->count] =
- 					pos->buffer.index;
-+				++i;
- 			}
- 		}
- 
-@@ -1489,9 +1479,10 @@ static void buffer_written(struct v4l2_loopback_device *dev,
- 	del_timer_sync(&dev->timeout_timer);
- 	spin_lock_bh(&dev->lock);
- 
--	dev->bufpos2index[mod_inc(&dev->write_position, dev->used_buffers)] =
-+	dev->bufpos2index[dev->write_position % dev->used_buffers] =
- 		buf->buffer.index;
- 	list_move_tail(&buf->list_head, &dev->outbufs_list);
-+	++dev->write_position;
- 	dev->reread_count = 0;
- 
- 	check_timers(dev);
-@@ -1586,7 +1577,8 @@ static int get_capture_buffer(struct file *file)
- 		if (dev->write_position >
- 		    opener->read_position + dev->used_buffers)
- 			opener->read_position = dev->write_position - 1;
--		pos = mod_inc(&opener->read_position, dev->used_buffers);
-+		pos = opener->read_position % dev->used_buffers;
-+		++opener->read_position;
- 	}
- 	timeout_happened = dev->timeout_happened;
- 	dev->timeout_happened = 0;
diff --git a/nixpkgs/pkgs/os-specific/linux/v86d/default.nix b/nixpkgs/pkgs/os-specific/linux/v86d/default.nix
index dbc98344c5ec..8597cc5ac9f9 100644
--- a/nixpkgs/pkgs/os-specific/linux/v86d/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/v86d/default.nix
@@ -39,6 +39,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A daemon to run x86 code in an emulated environment";
+    mainProgram = "v86d";
     homepage = "https://github.com/mjanusz/v86d";
     license = licenses.gpl2;
     maintainers = with maintainers; [ codyopel ];
diff --git a/nixpkgs/pkgs/os-specific/linux/vmware/default.nix b/nixpkgs/pkgs/os-specific/linux/vmware/default.nix
index 7c1994687ae7..d63e5247dc51 100644
--- a/nixpkgs/pkgs/os-specific/linux/vmware/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/vmware/default.nix
@@ -2,15 +2,15 @@
 
 stdenv.mkDerivation rec {
   pname = "vmware-modules";
-  version = "workstation-17.0.2-2023-09-29-${kernel.version}";
+  version = "workstation-17.5.1-unstable-2024-01-12-${kernel.version}";
 
   src = fetchFromGitHub {
     owner = "mkubecek";
     repo = "vmware-host-modules";
     # Developer no longer provides tags for kernel compatibility fixes
-    # Commit hash for branch workstation-17.0.2 as of 2023-09-29
-    rev = "29de7e2bd45d32e6983106d6f15810c70ba3e654";
-    hash = "sha256-l0QJbjySINM/7EyNhZl6UnUonwPoGnCnsQeC8YtI15c=";
+    # Commit hash for branch workstation-17.5.1 as of 2024-03-07
+    rev = "2c6d66f3f1947384038b765c897b102ecdb18298";
+    hash = "sha256-VKN6nxtgQqElVrSD5++UdngjZio4+vmetGCgTAfgtTs=";
   };
 
   hardeningDisable = [ "pic" ];
@@ -42,6 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = [ "x86_64-linux" ];
     broken = (kernel.kernelOlder "5.5" && kernel.isHardened);
-    maintainers = with maintainers; [ deinferno ];
+    maintainers = with maintainers; [ deinferno vifino ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/waydroid/default.nix b/nixpkgs/pkgs/os-specific/linux/waydroid/default.nix
index 97818ba9c4d4..ae42c206280d 100644
--- a/nixpkgs/pkgs/os-specific/linux/waydroid/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/waydroid/default.nix
@@ -86,6 +86,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = {
     description = "Waydroid is a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu";
+    mainProgram = "waydroid";
     homepage = "https://github.com/waydroid/waydroid";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/gui.nix b/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/gui.nix
index 82e104cac3aa..ac1de01af974 100644
--- a/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/gui.nix
+++ b/nixpkgs/pkgs/os-specific/linux/wpa_supplicant/gui.nix
@@ -24,6 +24,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "Qt-based GUI for wpa_supplicant";
+    mainProgram = "wpa_gui";
     homepage = "https://hostap.epitest.fi/wpa_supplicant/";
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/x86_energy_perf_policy/default.nix b/nixpkgs/pkgs/os-specific/linux/x86_energy_perf_policy/default.nix
index d636f928f249..cbe2a8134e60 100644
--- a/nixpkgs/pkgs/os-specific/linux/x86_energy_perf_policy/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/x86_energy_perf_policy/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Set the energy versus performance policy preference bias on recent X86 processors";
+    mainProgram = "x86_energy_perf_policy";
     homepage = "https://www.kernel.org/";
     license = licenses.gpl2;
     platforms = [ "i686-linux" "x86_64-linux" ]; # x86-specific
diff --git a/nixpkgs/pkgs/os-specific/linux/xf86-input-wacom/default.nix b/nixpkgs/pkgs/os-specific/linux/xf86-input-wacom/default.nix
index 614831c057d2..eb5a5eae8032 100644
--- a/nixpkgs/pkgs/os-specific/linux/xf86-input-wacom/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/xf86-input-wacom/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xf86-input-wacom";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "linuxwacom";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "sha256-PuIfeHlkcoin7w2v822P8uhWBNhYQGuOA7yD62L3qto=";
+    sha256 = "sha256-ldPNGa1ACjLivs2CVtkvKLsBZSzRuOM8Q7bvMdx0EWA=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/nixpkgs/pkgs/os-specific/linux/xone/default.nix b/nixpkgs/pkgs/os-specific/linux/xone/default.nix
index 104b7952f2be..b1e2ce570a2d 100644
--- a/nixpkgs/pkgs/os-specific/linux/xone/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/xone/default.nix
@@ -1,27 +1,18 @@
 { stdenv, lib, fetchFromGitHub, kernel, fetchurl, fetchpatch }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "xone";
-  version = "0.3";
+  version = "0.3-unstable-2024-03-16";
 
   src = fetchFromGitHub {
     owner = "medusalix";
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    sha256 = "sha256-h+j4xCV9R6hp9trsv1NByh9m0UBafOz42ZuYUjclILE=";
+    repo = "xone";
+    rev = "948d2302acdd6333295eaba4da06d96677290ad3";
+    hash = "sha256-srAEw1ai5KT0rmVUL3Dut9R2mNb00AAZVCcINikh2sM=";
   };
 
-  patches = [
-    # Fix build on kernel 6.3
-    (fetchpatch {
-      name = "kernel-6.3.patch";
-      url = "https://github.com/medusalix/xone/commit/bbf0dcc484c3f5611f4e375da43e0e0ef08f3d18.patch";
-      hash = "sha256-A2OzRRk4XT++rS6k6EIyiPy/LJptvVRUxoP7CIGrPWU=";
-    })
-  ];
-
   setSourceRoot = ''
-    export sourceRoot=$(pwd)/${src.name}
+    export sourceRoot=$(pwd)/${finalAttrs.src.name}
   '';
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
@@ -30,7 +21,7 @@ stdenv.mkDerivation rec {
     "-C"
     "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
     "M=$(sourceRoot)"
-    "VERSION=${version}"
+    "VERSION=${finalAttrs.version}"
   ];
 
   buildFlags = [ "modules" ];
@@ -45,4 +36,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
   };
 }
-
+)
diff --git a/nixpkgs/pkgs/os-specific/linux/xp-pen-drivers/deco-01-v2/default.nix b/nixpkgs/pkgs/os-specific/linux/xp-pen-drivers/deco-01-v2/default.nix
index 8ae426269a86..18aa86282567 100644
--- a/nixpkgs/pkgs/os-specific/linux/xp-pen-drivers/deco-01-v2/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/xp-pen-drivers/deco-01-v2/default.nix
@@ -21,12 +21,12 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "xp-pen-deco-01-v2-driver";
-  version = "3.2.3.230215-1";
+  version = "3.4.9-231023";
 
   src = fetchzip {
-    url = "https://download01.xp-pen.com/file/2023/03/XPPen-pentablet-${version}.x86_64.tar.gz";
+    url = "https://www.xp-pen.com/download/file/id/1936/pid/440/ext/gz.html#.tar.gz";
     name = "xp-pen-deco-01-v2-driver-${version}.tar.gz";
-    sha256 = "sha256-CV4ZaGCFFcfy2J0O8leYgcyzFVwJQFQJsShOv9B7jfI=";
+    sha256 = "sha256-A/dv6DpelH0NHjlGj32tKv37S+9q3F8cYByiYlMuqLg=";
   };
 
   nativeBuildInputs = [
@@ -56,16 +56,16 @@ stdenv.mkDerivation rec {
     runHook preInstall
 
     mkdir -p $out/{opt,bin}
-    cp -r App/usr/lib/pentablet/{pentablet,resource.rcc,conf} $out/opt
-    chmod +x $out/opt/pentablet
+    cp -r App/usr/lib/pentablet/{PenTablet,resource.rcc,conf} $out/opt
+    chmod +x $out/opt/PenTablet
     cp -r App/lib $out/lib
-    sed -i 's#usr/lib/pentablet#${dataDir}#g' $out/opt/pentablet
+    sed -i 's#usr/lib/pentablet#${dataDir}#g' $out/opt/PenTablet
 
     runHook postInstall
   '';
 
   postFixup = ''
-    makeWrapper $out/opt/pentablet $out/bin/xp-pen-deco-01-v2-driver \
+    makeWrapper $out/opt/PenTablet $out/bin/xp-pen-deco-01-v2-driver \
       "''${qtWrapperArgs[@]}" \
       --run 'if [ "$EUID" -ne 0 ]; then echo "Please run as root."; exit 1; fi' \
       --run 'if [ ! -d /${dataDir} ]; then mkdir -p /${dataDir}; cp -r '$out'/opt/conf /${dataDir}; chmod u+w -R /${dataDir}; fi'
@@ -80,4 +80,3 @@ stdenv.mkDerivation rec {
     license = licenses.unfree;
   };
 }
-
diff --git a/nixpkgs/pkgs/os-specific/linux/xsos/default.nix b/nixpkgs/pkgs/os-specific/linux/xsos/default.nix
index 56516aee8b7b..8d2dd747ffb6 100644
--- a/nixpkgs/pkgs/os-specific/linux/xsos/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/xsos/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Summarize system info from sosreports";
+    mainProgram = "xsos";
     homepage = "https://github.com/ryran/xsos";
     license = licenses.gpl3;
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/zenmonitor/default.nix b/nixpkgs/pkgs/os-specific/linux/zenmonitor/default.nix
index 8414ac7a1e14..e8fce959c8dc 100644
--- a/nixpkgs/pkgs/os-specific/linux/zenmonitor/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/zenmonitor/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Monitoring software for AMD Zen-based CPUs";
+    mainProgram = "zenmonitor";
     homepage = "https://github.com/Ta180m/zenmonitor3";
     license = licenses.mit;
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/zenstates/default.nix b/nixpkgs/pkgs/os-specific/linux/zenstates/default.nix
index 8e31073151ba..a320e959f021 100644
--- a/nixpkgs/pkgs/os-specific/linux/zenstates/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/zenstates/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Linux utility for Ryzen processors and motherboards";
+    mainProgram = "zenstates";
     homepage = "https://github.com/r4m0n/ZenStates-Linux";
     license = licenses.mit;
     maintainers = with maintainers; [ savannidgerinel ];
diff --git a/nixpkgs/pkgs/os-specific/linux/zfs/unstable.nix b/nixpkgs/pkgs/os-specific/linux/zfs/unstable.nix
index 052dd0cd74c9..b75de560b1d5 100644
--- a/nixpkgs/pkgs/os-specific/linux/zfs/unstable.nix
+++ b/nixpkgs/pkgs/os-specific/linux/zfs/unstable.nix
@@ -22,13 +22,13 @@ callPackage ./generic.nix args {
   # IMPORTANT: Always use a tagged release candidate or commits from the
   # zfs-<version>-staging branch, because this is tested by the OpenZFS
   # maintainers.
-  version = "2.2.3-unstable-2024-02-12";
-  rev = "4635453d9f06771678b2125d5b45852b4d2eb04f";
+  version = "2.2.3-unstable-2024-03-21";
+  rev = "58211157bf866bbcdd8720e92c27297db3ba75d6";
 
   isUnstable = true;
   tests = [
     nixosTests.zfs.unstable
   ];
 
-  hash = "sha256-ch1/R61cn1BtWkkH2IViWjVp22XFz4/WbByquN+vybs=";
+  hash = "sha256-zTTzHo/UDsTGp/b7BmCmy/m115HVipSG8Id/pnkUrvQ=";
 }
diff --git a/nixpkgs/pkgs/servers/akkoma/admin-fe/default.nix b/nixpkgs/pkgs/servers/akkoma/admin-fe/default.nix
index 08da604bfbae..20ffd3054762 100644
--- a/nixpkgs/pkgs/servers/akkoma/admin-fe/default.nix
+++ b/nixpkgs/pkgs/servers/akkoma/admin-fe/default.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Admin interface for Akkoma";
     homepage = "https://akkoma.dev/AkkomaGang/akkoma-fe/";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ mvs ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/akkoma/akkoma-fe/default.nix b/nixpkgs/pkgs/servers/akkoma/akkoma-fe/default.nix
index 7cce84c2ab4f..2e3dd149140d 100644
--- a/nixpkgs/pkgs/servers/akkoma/akkoma-fe/default.nix
+++ b/nixpkgs/pkgs/servers/akkoma/akkoma-fe/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Frontend for Akkoma";
     homepage = "https://akkoma.dev/AkkomaGang/akkoma-fe/";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ mvs ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/akkoma/default.nix b/nixpkgs/pkgs/servers/akkoma/default.nix
index 7aea0eaa2771..e9a9fa63ebc5 100644
--- a/nixpkgs/pkgs/servers/akkoma/default.nix
+++ b/nixpkgs/pkgs/servers/akkoma/default.nix
@@ -228,7 +228,7 @@ beamPackages.mixRelease rec {
   meta = with lib; {
     description = "ActivityPub microblogging server";
     homepage = "https://akkoma.social";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ mvs ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/servers/bililiverecorder/default.nix b/nixpkgs/pkgs/servers/bililiverecorder/default.nix
index e37c357089f0..222d20637c51 100644
--- a/nixpkgs/pkgs/servers/bililiverecorder/default.nix
+++ b/nixpkgs/pkgs/servers/bililiverecorder/default.nix
@@ -13,8 +13,8 @@ let
     aspnetcore_6_0
   ];
 
-  version = "2.10.1";
-  hash = "sha256-7F/Hgt0p73QY5Sa3MRP//x7EpfcHCbnAPKDf00XzUbw=";
+  version = "2.11.1";
+  hash = "sha256-GY6YRgebWeJtjAIm64Pf8wx6pUdZjbevNzKRdyPi1ow=";
 
 in
 stdenv.mkDerivation {
diff --git a/nixpkgs/pkgs/servers/bird/default.nix b/nixpkgs/pkgs/servers/bird/default.nix
index ecc400e32066..dbf480c401dd 100644
--- a/nixpkgs/pkgs/servers/bird/default.nix
+++ b/nixpkgs/pkgs/servers/bird/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bird";
-  version = "2.14";
+  version = "2.15";
 
   src = fetchurl {
     url = "ftp://bird.network.cz/pub/bird/${pname}-${version}.tar.gz";
-    hash = "sha256-sLn2+FZlQbm+SvHwysZ1xaN4VgGlVmen7D194pc1p4Y=";
+    hash = "sha256-emRY+kEQnABVMbI+P3q9Y9cACpnRldtJROvMtTntAvA=";
   };
 
   nativeBuildInputs = [ flex bison ];
diff --git a/nixpkgs/pkgs/servers/blockbook/default.nix b/nixpkgs/pkgs/servers/blockbook/default.nix
index 1116c5a36d6f..e52b0cb00bd4 100644
--- a/nixpkgs/pkgs/servers/blockbook/default.nix
+++ b/nixpkgs/pkgs/servers/blockbook/default.nix
@@ -64,7 +64,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Trezor address/account balance backend";
     homepage = "https://github.com/trezor/blockbook";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ mmahut _1000101 ];
     platforms = platforms.unix;
     mainProgram = "blockbook";
diff --git a/nixpkgs/pkgs/servers/caddy/xcaddy/default.nix b/nixpkgs/pkgs/servers/caddy/xcaddy/default.nix
index 35d95269db57..930b3db4327b 100644
--- a/nixpkgs/pkgs/servers/caddy/xcaddy/default.nix
+++ b/nixpkgs/pkgs/servers/caddy/xcaddy/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/caddyserver/xcaddy";
     description = "Build Caddy with plugins";
+    mainProgram = "xcaddy";
     license = licenses.asl20;
     maintainers = with maintainers; [ tjni emilylange ];
   };
diff --git a/nixpkgs/pkgs/servers/computing/slurm-spank-x11/default.nix b/nixpkgs/pkgs/servers/computing/slurm-spank-x11/default.nix
index 4a5e2d52b2f5..278e1320fa0a 100644
--- a/nixpkgs/pkgs/servers/computing/slurm-spank-x11/default.nix
+++ b/nixpkgs/pkgs/servers/computing/slurm-spank-x11/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/hautreux/slurm-spank-x11";
     description = "Plugin for SLURM to allow for interactive X11 sessions";
+    mainProgram = "slurm-spank-x11";
     platforms = platforms.linux;
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ markuskowa ];
diff --git a/nixpkgs/pkgs/servers/dns/bind/default.nix b/nixpkgs/pkgs/servers/dns/bind/default.nix
index 1046ead01ad0..c1507d4ea5cd 100644
--- a/nixpkgs/pkgs/servers/dns/bind/default.nix
+++ b/nixpkgs/pkgs/servers/dns/bind/default.nix
@@ -24,11 +24,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bind";
-  version = "9.18.24";
+  version = "9.18.25";
 
   src = fetchurl {
     url = "https://downloads.isc.org/isc/bind9/${version}/${pname}-${version}.tar.xz";
-    hash = "sha256-cJ1zAjyRFd2tO6tltsjHmlkBltDRFPXQyiUz29Ut32Y=";
+    hash = "sha256-WkpwQyoz0Anw5unbsyiq56XidQfpjii/PAxrJQzLKrM=";
   };
 
   outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ];
diff --git a/nixpkgs/pkgs/servers/dns/coredns/default.nix b/nixpkgs/pkgs/servers/dns/coredns/default.nix
index c5e3a9445557..994b584232ae 100644
--- a/nixpkgs/pkgs/servers/dns/coredns/default.nix
+++ b/nixpkgs/pkgs/servers/dns/coredns/default.nix
@@ -73,6 +73,7 @@ in buildGoModule rec {
   meta = with lib; {
     homepage = "https://coredns.io";
     description = "A DNS server that runs middleware";
+    mainProgram = "coredns";
     license = licenses.asl20;
     maintainers = with maintainers; [ rushmorem rtreffer deltaevo ];
   };
diff --git a/nixpkgs/pkgs/servers/dns/dnsdist/default.nix b/nixpkgs/pkgs/servers/dns/dnsdist/default.nix
index b06dc704520a..98a1bf7cc8c8 100644
--- a/nixpkgs/pkgs/servers/dns/dnsdist/default.nix
+++ b/nixpkgs/pkgs/servers/dns/dnsdist/default.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "DNS Loadbalancer";
+    mainProgram = "dnsdist";
     homepage = "https://dnsdist.org";
     license = licenses.gpl2;
     maintainers = with maintainers; [ jojosch ];
diff --git a/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix b/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix
index e691336d52a9..d56b4c7c0359 100644
--- a/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix
+++ b/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pdns-recursor";
-  version = "5.0.2";
+  version = "5.0.3";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-recursor-${finalAttrs.version}.tar.bz2";
-    hash = "sha256-qQ6LYf3BgbWWFEw1kgEYynHDuV9GZYzOfoIidQ3kXKk=";
+    hash = "sha256-AdFwooUOsqylAdaDijREE2WJmA1cssK1M5K3ZFnjjAc=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
diff --git a/nixpkgs/pkgs/servers/dns/pdns/default.nix b/nixpkgs/pkgs/servers/dns/pdns/default.nix
index 4c379717ebe2..d4c664802aa3 100644
--- a/nixpkgs/pkgs/servers/dns/pdns/default.nix
+++ b/nixpkgs/pkgs/servers/dns/pdns/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pdns";
-  version = "4.8.4";
+  version = "4.9.0";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-${finalAttrs.version}.tar.bz2";
-    hash = "sha256-f0DIy8RlDQb+Sau6eZAuurs4Q2Pau9XO8nGWSgfDZFw=";
+    hash = "sha256-/h1UM8iERu1w2TFgXG7Dd9qZg5xOFRuQtxqiEb1u6pI=";
   };
   # redact configure flags from version output to reduce closure size
   patches = [ ./version.patch ];
diff --git a/nixpkgs/pkgs/servers/documize-community/default.nix b/nixpkgs/pkgs/servers/documize-community/default.nix
index 572d9a8e2b90..c1b03e1f667b 100644
--- a/nixpkgs/pkgs/servers/documize-community/default.nix
+++ b/nixpkgs/pkgs/servers/documize-community/default.nix
@@ -32,7 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Open source Confluence alternative for internal & external docs built with Golang + EmberJS";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ ];
     mainProgram = "documize";
     homepage = "https://www.documize.com/";
diff --git a/nixpkgs/pkgs/servers/etebase/default.nix b/nixpkgs/pkgs/servers/etebase/default.nix
index 2a8233e5e0dc..3c111c0070cd 100644
--- a/nixpkgs/pkgs/servers/etebase/default.nix
+++ b/nixpkgs/pkgs/servers/etebase/default.nix
@@ -65,6 +65,7 @@ python.pkgs.buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/etesync/server";
     description = "An Etebase (EteSync 2.0) server so you can run your own";
+    mainProgram = "etebase-server";
     changelog = "https://github.com/etesync/server/blob/${version}/ChangeLog.md";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ felschr phaer ];
diff --git a/nixpkgs/pkgs/servers/fastnetmon-advanced/default.nix b/nixpkgs/pkgs/servers/fastnetmon-advanced/default.nix
index 8f11df7048ad..2605bb0809c9 100644
--- a/nixpkgs/pkgs/servers/fastnetmon-advanced/default.nix
+++ b/nixpkgs/pkgs/servers/fastnetmon-advanced/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fastnetmon-advanced";
-  version = "2.0.358";
+  version = "2.0.362";
 
   src = fetchurl {
     url = "https://repo.fastnetmon.com/fastnetmon_ubuntu_jammy/pool/fastnetmon/f/fastnetmon/fastnetmon_${version}_amd64.deb";
-    hash = "sha256-qL+LxePCZnSpbeeNANvI/f8ntNStHe02fSqMA+XKFng=";
+    hash = "sha256-9RKZyFntv2LsVZbN4sgb3C35kkDvM6kN7WpqdwwxnsE=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/servers/filtron/default.nix b/nixpkgs/pkgs/servers/filtron/default.nix
index 768f3b204f2c..4b82e147cd4d 100644
--- a/nixpkgs/pkgs/servers/filtron/default.nix
+++ b/nixpkgs/pkgs/servers/filtron/default.nix
@@ -31,7 +31,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Reverse HTTP proxy to filter requests by different rules.";
     homepage = "https://github.com/asciimoo/filtron";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = [ maintainers.dasj19 ];
     platforms = platforms.linux;
     mainProgram = "filtron";
diff --git a/nixpkgs/pkgs/servers/frr/default.nix b/nixpkgs/pkgs/servers/frr/default.nix
index 0ca256f1cbdd..d588fee00483 100644
--- a/nixpkgs/pkgs/servers/frr/default.nix
+++ b/nixpkgs/pkgs/servers/frr/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 
 # build time
 , autoreconfHook
@@ -94,6 +95,15 @@ stdenv.mkDerivation rec {
     hash = "sha256-oDPr51vI+tlT1IiUPufmZh/UE0TNKWrn4RqpnGoGxNo=";
   };
 
+  patches = [
+    # fixes crash in OSPF TE parsing
+    (fetchpatch {
+      name = "CVE-2024-27913.patch";
+      url = "https://github.com/FRRouting/frr/commit/541503eecd302d2cc8456167d130014cd2cf1134.patch";
+      hash = "sha256-7NxPlQK/6lbLs/NqNi4OZ2uBWfXw99SiXDR6okNvJlg=";
+    })
+  ];
+
   nativeBuildInputs = [
     autoreconfHook
     bison
diff --git a/nixpkgs/pkgs/servers/ftp/bftpd/default.nix b/nixpkgs/pkgs/servers/ftp/bftpd/default.nix
index eab68fb93dbf..a46a2503e802 100644
--- a/nixpkgs/pkgs/servers/ftp/bftpd/default.nix
+++ b/nixpkgs/pkgs/servers/ftp/bftpd/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A minimal ftp server";
+    mainProgram = "bftpd";
     downloadPage = "http://bftpd.sf.net/download.html";
     homepage = "http://bftpd.sf.net/";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/servers/ftp/vsftpd/default.nix b/nixpkgs/pkgs/servers/ftp/vsftpd/default.nix
index 601d14d342a1..133fe17ec088 100644
--- a/nixpkgs/pkgs/servers/ftp/vsftpd/default.nix
+++ b/nixpkgs/pkgs/servers/ftp/vsftpd/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A very secure FTP daemon";
+    mainProgram = "vsftpd";
     license = licenses.gpl2;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/servers/gemini/agate/default.nix b/nixpkgs/pkgs/servers/gemini/agate/default.nix
index a59003ac7396..4dd4c7f7303e 100644
--- a/nixpkgs/pkgs/servers/gemini/agate/default.nix
+++ b/nixpkgs/pkgs/servers/gemini/agate/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mbrubeck/agate";
     changelog = "https://github.com/mbrubeck/agate/blob/master/CHANGELOG.md";
     description = "Very simple server for the Gemini hypertext protocol";
+    mainProgram = "agate";
     longDescription = ''
       Agate is a server for the Gemini network protocol, built with the Rust
       programming language. Agate has very few features, and can only serve
diff --git a/nixpkgs/pkgs/servers/gemini/gmnisrv/default.nix b/nixpkgs/pkgs/servers/gemini/gmnisrv/default.nix
index c13d4dda5056..c55da9cc5759 100644
--- a/nixpkgs/pkgs/servers/gemini/gmnisrv/default.nix
+++ b/nixpkgs/pkgs/servers/gemini/gmnisrv/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple Gemini protocol server";
+    mainProgram = "gmnisrv";
     homepage = "https://git.sr.ht/~sircmpwn/gmnisrv";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ bsima jb55 ];
diff --git a/nixpkgs/pkgs/servers/gemini/molly-brown/default.nix b/nixpkgs/pkgs/servers/gemini/molly-brown/default.nix
index 351f54f21d49..f5529f038996 100644
--- a/nixpkgs/pkgs/servers/gemini/molly-brown/default.nix
+++ b/nixpkgs/pkgs/servers/gemini/molly-brown/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Full-featured Gemini server";
+    mainProgram = "molly-brown";
     homepage = "https://tildegit.org/solderpunk/molly-brown";
     maintainers = with maintainers; [ ehmry ];
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/servers/gemini/stargazer/default.nix b/nixpkgs/pkgs/servers/gemini/stargazer/default.nix
index 5d346ec15a0c..a77f64a75a9d 100644
--- a/nixpkgs/pkgs/servers/gemini/stargazer/default.nix
+++ b/nixpkgs/pkgs/servers/gemini/stargazer/default.nix
@@ -41,6 +41,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A fast and easy to use Gemini server";
+    mainProgram = "stargazer";
     homepage = "https://sr.ht/~zethra/stargazer/";
     license = licenses.agpl3Plus;
     changelog = "https://git.sr.ht/~zethra/stargazer/refs/${version}";
diff --git a/nixpkgs/pkgs/servers/geospatial/mapproxy/default.nix b/nixpkgs/pkgs/servers/geospatial/mapproxy/default.nix
index 2c56d2d96dfd..ce3bcd5560de 100644
--- a/nixpkgs/pkgs/servers/geospatial/mapproxy/default.nix
+++ b/nixpkgs/pkgs/servers/geospatial/mapproxy/default.nix
@@ -6,10 +6,10 @@
 with python3.pkgs;
 buildPythonApplication rec {
   pname = "MapProxy";
-  version = "1.15.1";
+  version = "2.0.2";
   src = fetchPypi {
   inherit pname version;
-  sha256 = "sha256-SVKZDLH8IfdND0/BFj/lrqp7BNanpzkjuTxlSMGjuiY=";
+  sha256 = "sha256-HwO5gvrsW9pArz4RLtxNfCmiFqa85AAi6wBJI+F9GE8=";
   };
   prePatch = ''
     substituteInPlace mapproxy/util/ext/serving.py --replace "args = [sys.executable] + sys.argv" "args = sys.argv"
diff --git a/nixpkgs/pkgs/servers/geospatial/mbtileserver/default.nix b/nixpkgs/pkgs/servers/geospatial/mbtileserver/default.nix
index 6b2831f87f1a..4a1495ad32d6 100644
--- a/nixpkgs/pkgs/servers/geospatial/mbtileserver/default.nix
+++ b/nixpkgs/pkgs/servers/geospatial/mbtileserver/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A simple Go-based server for map tiles stored in mbtiles format";
+    mainProgram = "mbtileserver";
     homepage = "https://github.com/consbio/mbtileserver";
     changelog = "https://github.com/consbio/mbtileserver/blob/v${version}/CHANGELOG.md";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/servers/geospatial/pg_featureserv/default.nix b/nixpkgs/pkgs/servers/geospatial/pg_featureserv/default.nix
index 04a226650ac5..df7bba48abe6 100644
--- a/nixpkgs/pkgs/servers/geospatial/pg_featureserv/default.nix
+++ b/nixpkgs/pkgs/servers/geospatial/pg_featureserv/default.nix
@@ -37,6 +37,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Lightweight RESTful Geospatial Feature Server for PostGIS in Go";
+    mainProgram = "pg_featureserv";
     homepage = "https://github.com/CrunchyData/pg_featureserv";
     license = licenses.asl20;
     maintainers = teams.geospatial.members;
diff --git a/nixpkgs/pkgs/servers/geospatial/pg_tileserv/default.nix b/nixpkgs/pkgs/servers/geospatial/pg_tileserv/default.nix
index 38d59d57b30b..0173559576ef 100644
--- a/nixpkgs/pkgs/servers/geospatial/pg_tileserv/default.nix
+++ b/nixpkgs/pkgs/servers/geospatial/pg_tileserv/default.nix
@@ -39,6 +39,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A very thin PostGIS-only tile server in Go";
+    mainProgram = "pg_tileserv";
     homepage = "https://github.com/CrunchyData/pg_tileserv";
     license = licenses.asl20;
     maintainers = teams.geospatial.members;
diff --git a/nixpkgs/pkgs/servers/geospatial/tegola/default.nix b/nixpkgs/pkgs/servers/geospatial/tegola/default.nix
index 3a3c40c2b20c..db6659172d05 100644
--- a/nixpkgs/pkgs/servers/geospatial/tegola/default.nix
+++ b/nixpkgs/pkgs/servers/geospatial/tegola/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://www.tegola.io/";
     description = "Mapbox Vector Tile server";
+    mainProgram = "tegola";
     maintainers = with maintainers; [ ingenieroariel ];
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/servers/gnss-share/default.nix b/nixpkgs/pkgs/servers/gnss-share/default.nix
index 8b24964ae824..eaa2e848fff2 100644
--- a/nixpkgs/pkgs/servers/gnss-share/default.nix
+++ b/nixpkgs/pkgs/servers/gnss-share/default.nix
@@ -1,14 +1,14 @@
 { buildGoModule, fetchFromGitLab, lib }:
 buildGoModule rec {
   pname = "gnss-share";
-  version = "0.7.2";
+  version = "0.8.0";
   src = fetchFromGitLab {
     owner = "postmarketOS";
     repo = "gnss-share";
     rev = version;
-    hash = "sha256-0osXA+t+trm41ekcDiJwq0IAB+6ibrlwP/c2JNAXRpU=";
+    hash = "sha256-XNKX7eIv3wKNWbVsa6w/ODDRiiBArpGNY0T/sHC5ItY=";
   };
-  vendorHash = "sha256-a5CZxh92MW3yP/ZhwGI9UWUT8hwJ0/zeTyPNC+c2R9U=";
+  vendorHash = "sha256-dmE6hfKUqEr7BMNi/HMUOk4jDB0dPXEMkWQyWj6XpY4=";
   meta = with lib; {
     description = "share GNSS data between multiple clients";
     longDescription = ''
diff --git a/nixpkgs/pkgs/servers/go-libp2p-daemon/default.nix b/nixpkgs/pkgs/servers/go-libp2p-daemon/default.nix
index 8ab0ff823117..9da79d04546f 100644
--- a/nixpkgs/pkgs/servers/go-libp2p-daemon/default.nix
+++ b/nixpkgs/pkgs/servers/go-libp2p-daemon/default.nix
@@ -16,6 +16,10 @@ buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
+    # Won't build with Go >1.20 because of outdated quic-go dependency and interface mismatches on update.
+    # https://github.com/libp2p/go-libp2p-daemon/issues/291
+    broken = true;
+    description = "a libp2p-backed daemon wrapping the functionalities of go-libp2p for use in other languages";
     homepage = "https://github.com/libp2p/go-libp2p-daemon";
     license = licenses.mit;
     maintainers = with maintainers; [ fare ];
diff --git a/nixpkgs/pkgs/servers/gotosocial/default.nix b/nixpkgs/pkgs/servers/gotosocial/default.nix
index 3113ed59fc2e..58e916d625f8 100644
--- a/nixpkgs/pkgs/servers/gotosocial/default.nix
+++ b/nixpkgs/pkgs/servers/gotosocial/default.nix
@@ -9,11 +9,11 @@ let
   owner = "superseriousbusiness";
   repo = "gotosocial";
 
-  version = "0.13.3";
+  version = "0.14.2";
 
   web-assets = fetchurl {
     url = "https://github.com/${owner}/${repo}/releases/download/v${version}/${repo}_${version}_web-assets.tar.gz";
-    hash = "sha256-xC1Acm/CJHXTblV8E63vZB+r/ktBH7EytL7x4eWGko8=";
+    hash = "sha256-3aSOP8BTHdlODQnZr6DOZuybLl+02SWgP9YZ21guAPU=";
   };
 in
 buildGoModule rec {
@@ -23,7 +23,7 @@ buildGoModule rec {
   src = fetchFromGitHub {
     inherit owner repo;
     rev = "refs/tags/v${version}";
-    hash = "sha256-zjmIa25veVL0ruFow4c1oV+VtgJGgWrRL99GPdaNc4g";
+    hash = "sha256-oeOxP9FkGsOH66Uk946H0b/zggz536YvRRuo1cINxSM=";
   };
 
   vendorHash = null;
@@ -43,8 +43,18 @@ buildGoModule rec {
   # tests are working only on x86_64-linux
   doCheck = stdenv.isLinux && stdenv.isx86_64;
 
-  # flaky test
-  checkFlags = [ "-skip=^TestPage/minID,_maxID_and_limit_set$" ];
+  checkFlags =
+    let
+      # flaky / broken tests
+      skippedTests = [
+        # See: https://github.com/superseriousbusiness/gotosocial/issues/2651
+        "TestPage/minID,_maxID_and_limit_set"
+        # See: https://github.com/superseriousbusiness/gotosocial/pull/2760. Stop skipping
+        # this test when fixed for go 1.21.8 and above
+        "TestValidationTestSuite/TestValidateEmail"
+      ];
+    in
+    [ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
 
   passthru.tests.gotosocial = nixosTests.gotosocial;
 
@@ -59,7 +69,7 @@ buildGoModule rec {
       advertised to! A light-weight alternative to Mastodon
       and Pleroma, with support for clients!
     '';
-    maintainers = with maintainers; [ misuzu ];
+    maintainers = with maintainers; [ misuzu blakesmith ];
     license = licenses.agpl3Only;
   };
 }
diff --git a/nixpkgs/pkgs/servers/gotty/default.nix b/nixpkgs/pkgs/servers/gotty/default.nix
index 9e45cce09ed6..9e5e95315f62 100644
--- a/nixpkgs/pkgs/servers/gotty/default.nix
+++ b/nixpkgs/pkgs/servers/gotty/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Share your terminal as a web application";
+    mainProgram = "gotty";
     homepage = "https://github.com/sorenisanerd/gotty";
     maintainers = with maintainers; [ prusnak ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/servers/hasura/cli.nix b/nixpkgs/pkgs/servers/hasura/cli.nix
index b8ec1a92fe30..09e1a5fd95c1 100644
--- a/nixpkgs/pkgs/servers/hasura/cli.nix
+++ b/nixpkgs/pkgs/servers/hasura/cli.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
   meta = {
     inherit (hasura-graphql-engine.meta) license homepage maintainers;
     description = "Hasura GraphQL Engine CLI";
+    mainProgram = "hasura";
   };
 }
diff --git a/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix b/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
index 167e740f2181..40c55e9f5d78 100644
--- a/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
@@ -51,6 +51,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Sandboxed Python execution environment for writing automation apps for Home Assistant";
+    mainProgram = "appdaemon";
     homepage = "https://github.com/AppDaemon/appdaemon";
     changelog = "https://github.com/AppDaemon/appdaemon/blob/${version}/docs/HISTORY.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/servers/home-assistant/cli.nix b/nixpkgs/pkgs/servers/home-assistant/cli.nix
index 32f17178fb33..b567cb0fe536 100644
--- a/nixpkgs/pkgs/servers/home-assistant/cli.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/cli.nix
@@ -55,6 +55,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Command-line tool for Home Assistant";
+    mainProgram = "hass-cli";
     homepage = "https://github.com/home-assistant-ecosystem/home-assistant-cli";
     changelog = "https://github.com/home-assistant-ecosystem/home-assistant-cli/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/home-assistant/component-packages.nix b/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
index b9fc857f211c..ebed5dab1989 100644
--- a/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
@@ -2,7 +2,7 @@
 # Do not edit!
 
 {
-  version = "2024.3.0";
+  version = "2024.3.3";
   components = {
     "3_day_blinds" = ps: with ps; [
     ];
@@ -2430,6 +2430,7 @@
     "joaoapps_join" = ps: with ps; [
     ]; # missing inputs: python-join-api
     "juicenet" = ps: with ps; [
+      python-juicenet
     ];
     "justnimbus" = ps: with ps; [
       justnimbus
@@ -4025,12 +4026,13 @@
       aiohttp-cors
       aiohttp-fast-url-dispatcher
       aiohttp-zlib-ng
+      aioraven
       fnv-hash-fast
       psutil-home-assistant
       pyserial
       pyudev
       sqlalchemy
-    ]; # missing inputs: aioraven
+    ];
     "rainmachine" = ps: with ps; [
       regenmaschine
     ];
@@ -5265,7 +5267,8 @@
     ];
     "tuya" = ps: with ps; [
       ha-ffmpeg
-    ]; # missing inputs: tuya-device-sharing-sdk
+      tuya-device-sharing-sdk
+    ];
     "twentemilieu" = ps: with ps; [
       twentemilieu
     ];
@@ -6394,6 +6397,7 @@
     "radiotherm"
     "rainbird"
     "rainforest_eagle"
+    "rainforest_raven"
     "rainmachine"
     "random"
     "rapt_ble"
@@ -6574,6 +6578,7 @@
     "transport_nsw"
     "trend"
     "tts"
+    "tuya"
     "twentemilieu"
     "twilio"
     "twinkly"
diff --git a/nixpkgs/pkgs/servers/home-assistant/custom-components/better_thermostat/default.nix b/nixpkgs/pkgs/servers/home-assistant/custom-components/better_thermostat/default.nix
index a4a514b2693c..d61d1850e13b 100644
--- a/nixpkgs/pkgs/servers/home-assistant/custom-components/better_thermostat/default.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/custom-components/better_thermostat/default.nix
@@ -19,6 +19,6 @@ buildHomeAssistantComponent rec {
       "Smart TRV control integrates room-temp sensors, window/door sensors, weather forecasts, and ambient probes for efficient heating and calibration, enhancing energy savings and comfort.";
     homepage = "https://better-thermostat.org/";
     maintainers = with maintainers; [ mguentner ];
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
   };
 }
diff --git a/nixpkgs/pkgs/servers/home-assistant/custom-components/default.nix b/nixpkgs/pkgs/servers/home-assistant/custom-components/default.nix
index 81e708b637bc..fb558e343220 100644
--- a/nixpkgs/pkgs/servers/home-assistant/custom-components/default.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/custom-components/default.nix
@@ -10,6 +10,10 @@
 
   emporia_vue = callPackage ./emporia_vue {};
 
+  epex_spot = callPackage ./epex_spot {};
+
+  frigate = callPackage ./frigate {};
+
   govee-lan = callPackage ./govee-lan {};
 
   gpio = callPackage ./gpio {};
@@ -18,7 +22,13 @@
 
   miele = callPackage ./miele {};
 
+  moonraker = callPackage ./moonraker {};
+
+  omnik_inverter = callPackage ./omnik_inverter {};
+
   prometheus_sensor = callPackage ./prometheus_sensor {};
 
+  sensi = callPackage ./sensi {};
+
   waste_collection_schedule = callPackage ./waste_collection_schedule {};
 }
diff --git a/nixpkgs/pkgs/servers/home-assistant/custom-components/epex_spot/default.nix b/nixpkgs/pkgs/servers/home-assistant/custom-components/epex_spot/default.nix
new file mode 100644
index 000000000000..e655a0d788d9
--- /dev/null
+++ b/nixpkgs/pkgs/servers/home-assistant/custom-components/epex_spot/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, fetchFromGitHub
+, buildHomeAssistantComponent
+, beautifulsoup4
+}:
+
+buildHomeAssistantComponent rec {
+  owner = "mampfes";
+  domain = "epex_spot";
+  version = "2.3.5";
+
+  src = fetchFromGitHub {
+    owner = "mampfes";
+    repo = "ha_epex_spot";
+    rev = "refs/tags/${version}";
+    hash = "sha256-WmPsFfQm8ChEr41XVgKi2BGwta5aKH9GDz4iIfTAPK4=";
+  };
+
+  propagatedBuildInputs = [
+    beautifulsoup4
+  ];
+
+  postPatch = ''
+    substituteInPlace custom_components/epex_spot/manifest.json --replace-fail 'bs4' 'beautifulsoup4'
+  '';
+
+  #skip phases without activity
+  dontConfigure = true;
+  doCheck = false;
+  dontBuild = true;
+
+  meta = with lib; {
+    changelog = "https://github.com/mampfes/ha_epex_spot/releases/tag/${version}";
+    description = "This component adds electricity prices from stock exchange EPEX Spot to Home Assistant";
+    homepage = "https://github.com/mampfes/ha_epex_spot";
+    maintainers = with maintainers; [ _9R ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/home-assistant/custom-components/frigate/default.nix b/nixpkgs/pkgs/servers/home-assistant/custom-components/frigate/default.nix
new file mode 100644
index 000000000000..0065c94b6ebc
--- /dev/null
+++ b/nixpkgs/pkgs/servers/home-assistant/custom-components/frigate/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, fetchFromGitHub
+, buildHomeAssistantComponent
+, pytz
+}:
+
+buildHomeAssistantComponent rec {
+  owner = "presto8";
+  domain = "frigate";
+  version = "5.1.0";
+
+  src = fetchFromGitHub {
+    owner = "blakeblackshear";
+    repo = "frigate-hass-integration";
+    rev = "v${version}";
+    hash = "sha256-6W9U0Q0wW36RsErvtFQo1sc1AF7js6MMHxgMQcDFexw=";
+  };
+
+  propagatedBuildInputs = [
+    pytz
+  ];
+
+  dontBuild = true;
+
+  meta = with lib; {
+    description = "Provides Home Assistant integration to interface with a separately running Frigate service";
+    homepage = "https://github.com/blakeblackshear/frigate-hass-integration";
+    changelog = "https://github.com/blakeblackshear/frigate-hass-integration/releases/tag/v${version}";
+    maintainers = with maintainers; [ presto8 ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/home-assistant/custom-components/moonraker/default.nix b/nixpkgs/pkgs/servers/home-assistant/custom-components/moonraker/default.nix
new file mode 100644
index 000000000000..660847ddd2e3
--- /dev/null
+++ b/nixpkgs/pkgs/servers/home-assistant/custom-components/moonraker/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, fetchFromGitHub
+, buildHomeAssistantComponent
+, moonraker-api
+}:
+
+buildHomeAssistantComponent rec {
+  owner = "marcolivierarsenault";
+  domain = "moonraker";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "marcolivierarsenault";
+    repo = "moonraker-home-assistant";
+    rev = "refs/tags/${version}";
+    hash = "sha256-jxMi4hmSVBU9ztoHxFINoJo8klirfo6j7gWty7FXFkQ=";
+  };
+
+  propagatedBuildInputs = [
+    moonraker-api
+  ];
+
+  #skip phases with nothing to do
+  dontConfigure = true;
+  dontBuild = true;
+  doCheck = false;
+
+  meta = with lib; {
+    changelog = "https://github.com/marcolivierarsenault/moonraker-home-assistant/releases/tag/${version}";
+    description = "Custom integration for Moonraker and Klipper in Home Assistant";
+    homepage = "https://github.com/marcolivierarsenault/moonraker-home-assistant";
+    maintainers = with maintainers; [ _9R ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/home-assistant/custom-components/omnik_inverter/default.nix b/nixpkgs/pkgs/servers/home-assistant/custom-components/omnik_inverter/default.nix
new file mode 100644
index 000000000000..a0a33f644bac
--- /dev/null
+++ b/nixpkgs/pkgs/servers/home-assistant/custom-components/omnik_inverter/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, fetchFromGitHub
+, buildHomeAssistantComponent
+, omnikinverter
+}:
+
+buildHomeAssistantComponent rec {
+  owner = "robbinjanssen";
+  domain = "omnik_inverter";
+  version = "2.6.4";
+
+  src = fetchFromGitHub {
+    owner = "robbinjanssen";
+    repo = "home-assistant-omnik-inverter";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-O1NxT7u27xLydPqEqH72laU0tlYVrMPo0TwWIVNJ+0Q=";
+  };
+
+  propagatedBuildInputs = [
+    omnikinverter
+  ];
+
+  doCheck = false; # no tests
+
+  meta = with lib; {
+    changelog = "https://github.com/robbinjanssen/home-assistant-omnik-inverter/releases/tag/v${version}";
+    description = "The Omnik Inverter integration will scrape data from an Omnik inverter connected to your local network";
+    homepage = "https://github.com/robbinjanssen/home-assistant-omnik-inverter";
+    maintainers = with maintainers; [ _9R ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/home-assistant/custom-components/sensi/default.nix b/nixpkgs/pkgs/servers/home-assistant/custom-components/sensi/default.nix
new file mode 100644
index 000000000000..f8293518a51e
--- /dev/null
+++ b/nixpkgs/pkgs/servers/home-assistant/custom-components/sensi/default.nix
@@ -0,0 +1,30 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildHomeAssistantComponent,
+  websockets,
+}:
+buildHomeAssistantComponent rec {
+  owner = "iprak";
+  domain = "sensi";
+  version = "1.3.4";
+
+  src = fetchFromGitHub {
+    inherit owner;
+    repo = domain;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-NbK9h0nvcWNSwsc04YgjqKl+InijxftPJ3SLCQF/Hns=";
+  };
+
+  propagatedBuildInputs = [
+    websockets
+  ];
+
+  meta = with lib; {
+    changelog = "https://github.com/iprak/sensi/releases/tag/v${version}";
+    description = "HomeAssistant integration for Sensi thermostat";
+    homepage = "https://github.com/iprak/sensi";
+    maintainers = with maintainers; [ ivan ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix b/nixpkgs/pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix
index 68ec48997d5d..1846339bd1e4 100644
--- a/nixpkgs/pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/custom-lovelace-modules/mini-graph-card/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "mini-graph-card";
-  version = "0.12.0";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "kalkih";
     repo = "mini-graph-card";
     rev = "refs/tags/v${version}";
-    hash = "sha256-o87c1tqZAQDlzxsxVdPZj1ei37nx7dVIZDzoQIUkmPk=";
+    hash = "sha256-cDgfAfS4U3ihN808KPcG+jEQR+S2Q1M5SPqOkkYwYkI=";
   };
 
-  npmDepsHash = "sha256-4GgFlSpqGxY7TCgyovqMSoLUin46bKN8tUQTdjv1eog=";
+  npmDepsHash = "sha256-v+DqUAMNtDruR8E0sy7uAu3jndZUHkOw2xKtpY163R8=";
 
   installPhase = ''
     runHook preInstall
diff --git a/nixpkgs/pkgs/servers/home-assistant/default.nix b/nixpkgs/pkgs/servers/home-assistant/default.nix
index 1a41629d92c7..797b2ecae5f6 100644
--- a/nixpkgs/pkgs/servers/home-assistant/default.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/default.nix
@@ -30,6 +30,28 @@ let
     # Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt
 
     (self: super: {
+      aioaladdinconnect = super.aioaladdinconnect.overridePythonAttrs (oldAttrs: rec {
+        version = "0.1.58";
+        src = fetchPypi {
+          pname = "AIOAladdinConnect";
+          inherit version;
+          hash = "sha256-ymynaOKvnqqHIEuQc+5CagsaH5cHnQit8ileoUO6G+I=";
+        };
+      });
+
+      aioelectricitymaps = super.aioelectricitymaps.overridePythonAttrs (oldAttrs: rec {
+        version = "0.4.0";
+        src = fetchFromGitHub {
+          owner = "jpbede";
+          repo = "aioelectricitymaps";
+          rev = "refs/tags/v${version}";
+          hash = "sha256-q06B40c0uvSuzH/3YCoxg4p9aNIOPrphsoESktF+B14=";
+        };
+        nativeCheckInputs = with self; [
+          aresponses
+        ];
+      });
+
       aiogithubapi = super.aiogithubapi.overridePythonAttrs (oldAttrs: rec {
         version = "22.10.1";
         src = fetchFromGitHub {
@@ -112,12 +134,36 @@ let
         ];
       });
 
+      bluecurrent-api = super.bluecurrent-api.overridePythonAttrs (oldAttrs: rec {
+        version = "1.0.6";
+        src = fetchPypi {
+          pname = "bluecurrent-api";
+          inherit version;
+          hash = "sha256-XHVdtkiG0ff/OY8g+W5iur7OAyhhk1UGA+XUfB2L8/o=";
+        };
+        build-system = oldAttrs.build-system ++ (with self; [
+          pythonRelaxDepsHook
+        ]);
+        pythonRemoveDeps = [ "asyncio" ];
+      });
+
       debugpy = super.debugpy.overridePythonAttrs (oldAttrs: {
         # tests are deadlocking too often
         # https://github.com/NixOS/nixpkgs/issues/262000
         doCheck = false;
       });
 
+      dsmr-parser = super.dsmr-parser.overridePythonAttrs (oldAttrs: rec {
+        version = "1.3.1";
+        src = fetchFromGitHub {
+          owner = "ndokter";
+          repo = "dsmr_parser";
+          rev = "refs/tags/v${version}";
+          hash = "sha256-PULrKRHrCuDFZcR+5ha0PjkN438QFgf2CrpYhKIqYTs=";
+        };
+        doCheck = false;
+      });
+
       geojson = super.geojson.overridePythonAttrs (oldAttrs: rec {
         version = "2.5.0";
         src = fetchFromGitHub {
@@ -128,6 +174,19 @@ let
         doCheck = false;
       });
 
+      gspread = super.gspread.overridePythonAttrs (oldAttrs: rec {
+        version = "5.12.4";
+        src = fetchFromGitHub {
+          owner = "burnash";
+          repo = "gspread";
+          rev = "refs/tags/v${version}";
+          hash = "sha256-i+QbnF0Y/kUMvt91Wzb8wseO/1rZn9xzeA5BWg1haks=";
+        };
+        dependencies = with self; [
+          requests
+        ];
+      });
+
       ha-av = super.av.overridePythonAttrs (oldAttrs: rec {
         pname = "ha-av";
         version = "10.1.1";
@@ -167,6 +226,25 @@ let
         };
       });
 
+      jaraco-collections = super.jaraco-collections.overridePythonAttrs (oldAttrs: rec {
+        version = "3.4.0";
+        src = fetchPypi {
+          pname = "jaraco.collections";
+          inherit version;
+          hash = "sha256-NE0Udp1xbnSWr4eaxxs8br3UarxkvZ7CHRUkg2WqOsk=";
+        };
+      });
+
+      lmcloud = super.lmcloud.overridePythonAttrs (oldAttrs: rec {
+        version = "0.4.35";
+        src = fetchFromGitHub {
+          owner = "zweckj";
+          repo = "lmcloud";
+          rev = "refs/tags/v${version}";
+          hash = "sha256-TUve21yamtEmEceK/V1w7IZjnMgKConMfSY/GlqFpp8=";
+        };
+      });
+
       lxml = super.lxml.overridePythonAttrs (oldAttrs: rec {
         version = "5.1.0";
         pyprojet = true;
@@ -283,6 +361,30 @@ let
         };
       });
 
+      python-roborock = super.python-roborock.overridePythonAttrs (oldAttrs: rec {
+        version = "0.40.0";
+        src = fetchFromGitHub {
+          owner = "humbertogontijo";
+          repo = "python-roborock";
+          rev = "refs/tags/v${version}";
+          hash = "sha256-H4xwgulNLs3R1Q5GhvQffpAZ1CWXZUJAja8BskW+YJk=";
+        };
+        postPatch = ''
+          substituteInPlace pyproject.toml \
+            --replace-fail "poetry-core==" "poetry-core>="
+        '';
+      });
+
+      pytibber = super.pytibber.overridePythonAttrs (oldAttrs: rec {
+        version = "0.28.2";
+        src = fetchFromGitHub {
+          owner = "Danielhiversen";
+          repo = "pyTibber";
+          rev = "refs/tags/${version}";
+          hash = "sha256-vi5f4V0nPb9K3nwdmwMDoNE85Or6haOWjMY4d/2Fj2s=";
+        };
+      });
+
       pykaleidescape = super.pykaleidescape.overridePythonAttrs (oldAttrs: rec {
         version = "1.0.1";
         src = fetchFromGitHub {
@@ -292,6 +394,16 @@ let
         };
       });
 
+      pyoctoprintapi = super.pyoctoprintapi.overridePythonAttrs (oldAttrs: rec {
+        version = "0.1.12";
+        src = fetchFromGitHub {
+          owner = "rfleming71";
+          repo = "pyoctoprintapi";
+          rev = "refs/tags/v${version}";
+          hash = "sha256-Jf/zYnBHVl3TYxFy9Chy6qNH/eCroZkmUOEWfd62RIo=";
+        };
+      });
+
       pysnooz = super.pysnooz.overridePythonAttrs (oldAttrs: rec {
         version = "0.8.6";
         src = fetchFromGitHub {
@@ -312,6 +424,36 @@ let
         };
       });
 
+      pywaze = super.pywaze.overridePythonAttrs (oldAttrs: rec {
+        version = "0.5.1";
+        src = fetchFromGitHub {
+          owner = "eifinger";
+          repo = "pywaze";
+          rev = "refs/tags/v${version}";
+          hash = "sha256-r7ROEdgHdjXkveVUbuALHtwCX4IO0lwx9Zo3u6R9I58=";
+        };
+      });
+
+      sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec {
+        version = "2.0.27";
+        src = fetchFromGitHub {
+          owner = "sqlalchemy";
+          repo = "sqlalchemy";
+          rev = "refs/tags/rel_${lib.replaceStrings [ "." ] [ "_" ] version}";
+          hash = "sha256-6R+A7rVq1olRXj1wMolHhEq418bpr5rsmH8RjxajmmQ=";
+        };
+      });
+
+      tesla-powerwall = super.tesla-powerwall.overridePythonAttrs (oldAttrs: rec {
+        version = "0.5.1";
+        src = fetchFromGitHub {
+          owner = "jrester";
+          repo = "tesla_powerwall";
+          rev = "refs/tags/v${version}";
+          hash = "sha256-if/FCfxAB48WGXZOMvCtdSOW2FWO43OrlcHZbXIPmGE=";
+        };
+      });
+
       versioningit = super.versioningit.overridePythonAttrs (oldAttrs: rec {
         version = "2.2.0";
         src = fetchPypi {
@@ -399,7 +541,7 @@ let
   extraBuildInputs = extraPackages python.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "2024.3.0";
+  hassVersion = "2024.3.3";
 
 in python.pkgs.buildPythonApplication rec {
   pname = "homeassistant";
@@ -417,13 +559,13 @@ in python.pkgs.buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = "refs/tags/${version}";
-    hash = "sha256-/DCE2IHdS+oImpzwIaFgXotAsoiPPbe3X3HG7RXbv9g=";
+    hash = "sha256-EutnNqENt1MTmbMe9vtSM+bM5PzvjsfMhpkwXdxWoeI=";
   };
 
   # Secondary source is pypi sdist for translations
   sdist = fetchPypi {
     inherit pname version;
-    hash = "sha256-G9M1WV+s4zu9BY10RWmJ71ghafAOHMjnCR6BOlggguM=";
+    hash = "sha256-9i8snvozDKgvcEQfk9KTYfqHxQbDBluvArXYVVnNvnA=";
   };
 
   nativeBuildInputs = with python.pkgs; [
@@ -436,6 +578,7 @@ in python.pkgs.buildPythonApplication rec {
     "bcrypt"
     "ciso8601"
     "cryptography"
+    "hass-nabucasa"
     "httpx"
     "orjson"
     "pyopenssl"
@@ -482,6 +625,7 @@ in python.pkgs.buildPythonApplication rec {
     certifi
     ciso8601
     cryptography
+    hass-nabucasa
     httpx
     home-assistant-bluetooth
     ifaddr
diff --git a/nixpkgs/pkgs/servers/home-assistant/frontend.nix b/nixpkgs/pkgs/servers/home-assistant/frontend.nix
index 1795e8daa7ba..ec699e83164a 100644
--- a/nixpkgs/pkgs/servers/home-assistant/frontend.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/frontend.nix
@@ -4,7 +4,7 @@ buildPythonPackage rec {
   # the frontend version corresponding to a specific home-assistant version can be found here
   # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
   pname = "home-assistant-frontend";
-  version = "20240306.0";
+  version = "20240307.0";
   format = "wheel";
 
   src = fetchPypi {
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     pname = "home_assistant_frontend";
     dist = "py3";
     python = "py3";
-    hash = "sha256-eDuJC23PJbjaKC9TBCLg5ML3XR6admKrT9RVgfUQCw8=";
+    hash = "sha256-Wy5TzJ6+Dbkk51TMt9zGIfjI7gMrT4mK0IIRnl4byVE=";
   };
 
   # there is nothing to strip in this package
diff --git a/nixpkgs/pkgs/servers/home-assistant/intents.nix b/nixpkgs/pkgs/servers/home-assistant/intents.nix
index ddb576795880..d0c77694413c 100644
--- a/nixpkgs/pkgs/servers/home-assistant/intents.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/intents.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "home-assistant-intents";
-  version = "2024.2.28";
+  version = "2024.3.12";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-EmnaYc+L1PHOv6M7odYDl+UBZkLJRtP86xPoqdbuOqU=";
+    hash = "sha256-9oMn5ogHcuopAnXgATu9xlBBBMeWJ9RT5C//xJ5FOBI=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/servers/home-assistant/parse-requirements.py b/nixpkgs/pkgs/servers/home-assistant/parse-requirements.py
index 5ff1510f2351..4a54f351ac49 100755
--- a/nixpkgs/pkgs/servers/home-assistant/parse-requirements.py
+++ b/nixpkgs/pkgs/servers/home-assistant/parse-requirements.py
@@ -1,5 +1,5 @@
 #! /usr/bin/env nix-shell
-#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ packaging rich ])" -p nodePackages.pyright ruff isort"
+#! nix-shell -i python3 -p "python3.withPackages (ps: with ps; [ packaging rich ])" -p nodePackages.pyright ruff isort
 #
 # This script downloads Home Assistant's source tarball.
 # Inside the homeassistant/components directory, each integration has an associated manifest.json,
diff --git a/nixpkgs/pkgs/servers/home-automation/evcc/default.nix b/nixpkgs/pkgs/servers/home-automation/evcc/default.nix
index baf1c81c9854..aa701e92b1ed 100644
--- a/nixpkgs/pkgs/servers/home-automation/evcc/default.nix
+++ b/nixpkgs/pkgs/servers/home-automation/evcc/default.nix
@@ -21,20 +21,20 @@ in
 
 buildGoModule rec {
   pname = "evcc";
-  version = "0.124.6";
+  version = "0.124.10";
 
   src = fetchFromGitHub {
     owner = "evcc-io";
     repo = "evcc";
     rev = version;
-    hash = "sha256-mZSJ8RKO2olPsbxuVyAFCyvgxkth4XatRXwaQQ0z/Do=";
+    hash = "sha256-NbM8Uev2qIIS6WriP7QnVUumF29rZSOCavouPkPmYpE=";
   };
 
-  vendorHash = "sha256-tu1rV5TWAOHidnDvjsyqFady8TrnPOoAoEEDugYYwLM=";
+  vendorHash = "sha256-PZWMqv3R4Dq4cLtGNuvHCQ/GiYvlKJfSKEmBn0JYnb8=";
 
   npmDeps = fetchNpmDeps {
     inherit src;
-    hash = "sha256-Uu1idwI3zRQmu2xBrbMcFBmJuO/z+N5+6eSRK+n1pg8=";
+    hash = "sha256-FWnRZ/NI49QZj8Uv6IbHc8IPAh3F5u4S6hY64B8+Uvk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/servers/homepage-dashboard/default.nix b/nixpkgs/pkgs/servers/homepage-dashboard/default.nix
index 6f0a94500ef0..85147507420d 100644
--- a/nixpkgs/pkgs/servers/homepage-dashboard/default.nix
+++ b/nixpkgs/pkgs/servers/homepage-dashboard/default.nix
@@ -10,6 +10,7 @@
 , makeBinaryWrapper
 , nixosTests
 , enableLocalIcons ? false
+, nix-update-script
 }:
 let
   dashboardIcons = fetchFromGitHub {
@@ -28,30 +29,16 @@ let
 in
 buildNpmPackage rec {
   pname = "homepage-dashboard";
-  version = "0.8.8";
+  version = "0.8.9";
 
   src = fetchFromGitHub {
     owner = "gethomepage";
     repo = "homepage";
     rev = "v${version}";
-    hash = "sha256-QPMjf+VpsjvIrjjhDuZqd8VLl2Uu5Wop286Yn8XeRWk=";
+    hash = "sha256-wG7+w6Hsqs1skxUyEMx2j3R8qh3dHXtBg2ADdWBPc/g=";
   };
 
-  npmDepsHash = "sha256-u15lDdXnV3xlXAC9WQQKLIeV/AgtRM1sFNsacw3j6kU=";
-
-  # This project is primarily designed to be consumed through Docker.
-  # By default it logs to stdout, and also to a directory. This makes
-  # little sense here where all the logs will be collated in the
-  # systemd journal anyway, so the patch removes the file logging.
-  # This patch has been suggested upstream, but the contribution won't
-  # be accepted until it gets at least 10 upvotes, per their policy:
-  # https://github.com/gethomepage/homepage/discussions/3067
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/gethomepage/homepage/commit/3be28a2c8b68f2404e4083e7f32eebbccdc4d293.patch";
-      hash = "sha256-5fUOXiHBZ4gdPeOHe1NIaBLaHJTDImsRjSwtueQOEXY=";
-    })
-  ];
+  npmDepsHash = "sha256-ZpH9rVe3bAhVbq7uTVDvaPpA6XRRKT/ySdytZMlemCE=";
 
   preBuild = ''
     mkdir -p config
@@ -99,12 +86,16 @@ buildNpmPackage rec {
 
   doDist = false;
 
-  passthru.tests = {
-    inherit (nixosTests) homepage-dashboard;
+  passthru = {
+    tests = {
+      inherit (nixosTests) homepage-dashboard;
+    };
+    updateScript = nix-update-script { };
   };
 
   meta = {
-    description = "A highly customisable dashboard with Docker and service API integrations.";
+    description = "A highly customisable dashboard with Docker and service API integrations";
+    changelog = "https://github.com/gethomepage/homepage/releases/tag/v${version}";
     mainProgram = "homepage";
     homepage = "https://gethomepage.dev";
     license = lib.licenses.gpl3;
diff --git a/nixpkgs/pkgs/servers/honk/default.nix b/nixpkgs/pkgs/servers/honk/default.nix
index 92923c255e85..5bc64151afaa 100644
--- a/nixpkgs/pkgs/servers/honk/default.nix
+++ b/nixpkgs/pkgs/servers/honk/default.nix
@@ -8,11 +8,11 @@
 
 buildGoModule rec {
   pname = "honk";
-  version = "1.2.3";
+  version = "1.3.1";
 
   src = fetchurl {
     url = "https://humungus.tedunangst.com/r/honk/d/honk-${version}.tgz";
-    hash = "sha256-fexremJlsTfvvEDzihNk6P92mtEOAhUGgydHtA+tHsM=";
+    hash = "sha256-F4Hz36nvcZv8MTh7a9Zr73kEBTS0c16Xty3T6/EzJeI=";
   };
   vendorHash = null;
 
diff --git a/nixpkgs/pkgs/servers/hqplayerd/default.nix b/nixpkgs/pkgs/servers/hqplayerd/default.nix
index 07f0c1dc4858..aa08f781121c 100644
--- a/nixpkgs/pkgs/servers/hqplayerd/default.nix
+++ b/nixpkgs/pkgs/servers/hqplayerd/default.nix
@@ -26,11 +26,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "hqplayerd";
-  version = "5.2.0-6";
+  version = "5.5.0-13";
 
   src = fetchurl {
     url = "https://www.signalyst.eu/bins/${pname}/fc37/${pname}-${version}.fc37.x86_64.rpm";
-    hash = "sha256-AJKSj7t1yog3EXrzdods9Jk35ibEbegnXQzFcsr2N7I=";
+    hash = "sha256-yfdgsQu2w56apq5lyD0JcEkM9/EtlfdZQ9I5x1BBOcU=";
   };
 
   unpackPhase = ''
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix
index bc7d0d667b63..5dd2fee040e9 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_auth_mellon/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/latchset/mod_auth_mellon";
     description = "An Apache module with a simple SAML 2.0 service provider";
+    mainProgram = "mellon_create_metadata.sh";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ womfoo ];
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_ca/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_ca/default.nix
index a357f0291ce5..4eb67f02c9a0 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_ca/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_ca/default.nix
@@ -1,33 +1,53 @@
-{ lib, stdenv, fetchurl, pkg-config, apacheHttpd, openssl, openldap, apr, aprutil }:
+{
+  apacheHttpd,
+  apr,
+  aprutil,
+  directoryListingUpdater,
+  fetchurl,
+  lib,
+  openldap,
+  openssl,
+  pkg-config,
+  stdenv,
+}:
 
 stdenv.mkDerivation rec {
   pname = "mod_ca";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchurl {
     url = "https://redwax.eu/dist/rs/${pname}-${version}.tar.gz";
-    sha256 = "0gs66br3aig749rzifxn6j1rz2kps4hc4jppscly48lypgyygy8s";
+    hash = "sha256-HGnhypOO0WOgRw9i9oqO4da131zAwBXOdrc9dypFjyk=";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ apacheHttpd openssl openldap apr aprutil ];
+
+  buildInputs = [
+    apacheHttpd
+    apr
+    aprutil
+    openldap
+    openssl
+  ];
 
   # Note that configureFlags and installFlags are inherited by
   # the various submodules.
   #
-  configureFlags = [
-    "--with-apxs=${apacheHttpd.dev}/bin/apxs"
-  ];
+  configureFlags = [ "--with-apxs=${apacheHttpd.dev}/bin/apxs" ];
 
   installFlags = [
     "INCLUDEDIR=${placeholder "out"}/include"
     "LIBEXECDIR=${placeholder "out"}/modules"
   ];
 
+  passthru.updateScript = directoryListingUpdater {
+    url = "https://redwax.eu/dist/rs/";
+  };
+
   meta = with lib; {
     description = "RedWax CA service module";
-
     homepage = "https://redwax.eu";
+    changelog = "https://source.redwax.eu/projects/RS/repos/mod_ca/browse/ChangeLog";
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ dirkx ];
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_crl/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_crl/default.nix
index a8025c153e05..340bc3a962ed 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_crl/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_crl/default.nix
@@ -1,23 +1,41 @@
-{ lib, stdenv, fetchurl, pkg-config, mod_ca, apr, aprutil }:
-
+{
+  apr,
+  aprutil,
+  directoryListingUpdater,
+  fetchurl,
+  lib,
+  mod_ca,
+  pkg-config,
+  stdenv,
+}:
 
 stdenv.mkDerivation rec {
   pname = "mod_crl";
-  version = "0.2.3";
+  version = "0.2.4";
 
   src = fetchurl {
     url = "https://redwax.eu/dist/rs/${pname}-${version}.tar.gz";
-    sha256 = "1x186kp6fr8nwg0jlv5phagxndvw4rjqfga9mkibmn6dx252p61d";
+    hash = "sha256-w8YIhed9J1uo5uwhfOVe5LhNLUvFZCgUO4FrHm344Rg=";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ mod_ca apr aprutil ];
+
+  buildInputs = [
+    apr
+    aprutil
+    mod_ca
+  ];
+
   inherit (mod_ca) configureFlags installFlags;
 
+  passthru.updateScript = directoryListingUpdater {
+    url = "https://redwax.eu/dist/rs/";
+  };
+
   meta = with lib; {
     description = "RedWax module for Certificate Revocation Lists";
-
     homepage = "https://redwax.eu";
+    changelog = "https://source.redwax.eu/projects/RS/repos/mod_crl/browse/ChangeLog";
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ dirkx ];
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_csr/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_csr/default.nix
index c334939a1c53..0fb6d8d0a0ac 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_csr/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_csr/default.nix
@@ -1,23 +1,41 @@
-{ lib, stdenv, fetchurl, pkg-config, mod_ca, apr, aprutil }:
-
+{
+  apr,
+  aprutil,
+  directoryListingUpdater,
+  fetchurl,
+  lib,
+  mod_ca,
+  pkg-config,
+  stdenv,
+}:
 
 stdenv.mkDerivation rec {
   pname = "mod_csr";
-  version = "0.2.3";
+  version = "0.2.4";
 
   src = fetchurl {
     url = "https://redwax.eu/dist/rs/${pname}-${version}.tar.gz";
-    sha256 = "1p4jc0q40453wpvwqgnr1n007b4jxpkizzy3r4jygsxxgg4x9w7x";
+    hash = "sha256-JVd5N5UnAxDwq6AavEHA0HsY2TRa+9RmLLJeRZbj+4Q=";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ mod_ca apr aprutil ];
+
+  buildInputs = [
+    apr
+    aprutil
+    mod_ca
+  ];
+
   inherit (mod_ca) configureFlags installFlags;
 
+  passthru.updateScript = directoryListingUpdater {
+    url = "https://redwax.eu/dist/rs/";
+  };
+
   meta = with lib; {
     description = "RedWax CA service module to handle Certificate Signing Requests";
-
     homepage = "https://redwax.eu";
+    changelog = "https://source.redwax.eu/projects/RS/repos/mod_csr/browse/ChangeLog";
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ dirkx ];
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_dnssd/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_dnssd/default.nix
index 4f4236e91b58..7f574f9fd962 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_dnssd/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_dnssd/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "http://0pointer.de/lennart/projects/mod_dnssd";
+    homepage = "https://0pointer.de/lennart/projects/mod_dnssd";
     description = "Provide Zeroconf support via DNS-SD using Avahi";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_ocsp/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_ocsp/default.nix
index 116a9822291f..2f4b754cfc6b 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_ocsp/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_ocsp/default.nix
@@ -1,22 +1,41 @@
-{ lib, stdenv, fetchurl, pkg-config, mod_ca, apr, aprutil }:
+{
+  apr,
+  aprutil,
+  directoryListingUpdater,
+  fetchurl,
+  lib,
+  mod_ca,
+  pkg-config,
+  stdenv,
+}:
 
 stdenv.mkDerivation rec {
   pname = "mod_ocsp";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchurl {
     url = "https://redwax.eu/dist/rs/${pname}-${version}.tar.gz";
-    sha256 = "0wy5363m4gq1w08iny2b3sh925bnznlln88pr9lgj9vgbn8pqnrn";
+    hash = "sha256-G+m/KdJCCTlSMeJzUnCRJkBEQ8cOQ+rJhA3NPrwh1Us=";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ mod_ca apr aprutil ];
+
+  buildInputs = [
+    apr
+    aprutil
+    mod_ca
+  ];
+
   inherit (mod_ca) configureFlags installFlags;
 
+  passthru.updateScript = directoryListingUpdater {
+    url = "https://redwax.eu/dist/rs/";
+  };
+
   meta = with lib; {
     description = "RedWax CA service modules of OCSP Online Certificate Validation";
-
     homepage = "https://redwax.eu";
+    changelog = "https://source.redwax.eu/projects/RS/repos/mod_csr/browse/ChangeLog";
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ dirkx ];
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_perl/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_perl/default.nix
index bbb38eb969bd..c0a9e11a6ce5 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_perl/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_perl/default.nix
@@ -1,20 +1,33 @@
-{ stdenv, fetchurl, apacheHttpd, perl, nixosTests }:
+{
+  apacheHttpd,
+  directoryListingUpdater,
+  fetchurl,
+  lib,
+  nixosTests,
+  perl,
+  stdenv,
+}:
 
 stdenv.mkDerivation rec {
   pname = "mod_perl";
-  version = "2.0.12";
+  version = "2.0.13";
 
   src = fetchurl {
     url = "mirror://apache/perl/${pname}-${version}.tar.gz";
-    sha256 = "sha256-9bghtZsP3JZw5G7Q/PMtiRHyUSYYmotowWUvkiHu4mk=";
+    sha256 = "sha256-reO+McRHuESIaf7N/KziWNbVh7jGx3PF8ic19w2C1to=";
   };
 
-  buildInputs = [ apacheHttpd perl ];
+  buildInputs = [
+    apacheHttpd
+    perl
+  ];
+
   buildPhase = ''
     perl Makefile.PL \
       MP_APXS=${apacheHttpd.dev}/bin/apxs
     make
   '';
+
   installPhase = ''
     mkdir -p $out
     make install DESTDIR=$out
@@ -24,5 +37,22 @@ stdenv.mkDerivation rec {
     rm $out/nix -rf
   '';
 
-  passthru.tests = nixosTests.mod_perl;
+  passthru = {
+    updateScript = directoryListingUpdater {
+      url = "https://archive.apache.org/dist/perl/";
+    };
+    tests = nixosTests.mod_perl;
+  };
+
+  __darwinAllowLocalNetworking = true;
+
+  meta = with lib; {
+    description = "Integration of perl with the Apache2 web server";
+    homepage = "https://perl.apache.org/download/index.html";
+    changelog = "https://github.com/apache/mod_perl/blob/trunk/Changes";
+    license = licenses.asl20;
+    mainProgram = "mp2bug";
+    maintainers = with maintainers; [ ];
+    platforms = platforms.unix;
+  };
 }
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_pkcs12/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_pkcs12/default.nix
index 1632ed381b0e..0f8962b275c0 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_pkcs12/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_pkcs12/default.nix
@@ -1,22 +1,41 @@
-{ lib, stdenv, fetchurl, pkg-config, mod_ca, apr, aprutil }:
+{
+  apr,
+  aprutil,
+  directoryListingUpdater,
+  fetchurl,
+  lib,
+  mod_ca,
+  pkg-config,
+  stdenv,
+}:
 
 stdenv.mkDerivation rec {
   pname = "mod_pkcs12";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchurl {
     url = "https://redwax.eu/dist/rs/${pname}-${version}.tar.gz";
-    sha256 = "1jfyax3qrw9rpf2n0pn6iw4dpn2nl4j0i2a998n5p1mdmjx9ch73";
+    hash = "sha256-k7BZ5d0WigyTmoUyFds7UCJ/tFBiUxd5pS4cVxmAI1g=";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ mod_ca apr aprutil ];
+
+  buildInputs = [
+    apr
+    aprutil
+    mod_ca
+  ];
+
   inherit (mod_ca) configureFlags installFlags;
 
+  passthru.updateScript = directoryListingUpdater {
+    url = "https://redwax.eu/dist/rs/";
+  };
+
   meta = with lib; {
     description = "RedWax CA service modules for PKCS#12 format files";
-
     homepage = "https://redwax.eu";
+    changelog = "https://source.redwax.eu/projects/RS/repos/mod_pkcs12/browse/ChangeLog";
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ dirkx ];
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_python/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_python/default.nix
index 2f427d170fdf..8b4fcd5d94be 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_python/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_python/default.nix
@@ -1,13 +1,21 @@
-{ lib, stdenv, fetchFromGitHub, apacheHttpd, python3, libintl }:
+{
+  apacheHttpd,
+  fetchFromGitHub,
+  lib,
+  libintl,
+  nix-update-script,
+  python3,
+  stdenv,
+}:
 
 stdenv.mkDerivation rec {
   pname = "mod_python";
-  version = "unstable-2022-10-18";
+  version = "3.5.0.2";
 
   src = fetchFromGitHub {
     owner = "grisha";
     repo = pname;
-    rev = "d066b07564d2194839eceb535485eb1ba0c292d8";
+    rev = "refs/tags/${version}";
     hash = "sha256-EH8wrXqUAOFWyPKfysGeiIezgrVc789RYO4AHeSA6t4=";
   };
 
@@ -18,14 +26,23 @@ stdenv.mkDerivation rec {
     "BINDIR=$(out)/bin"
   ];
 
-  passthru = { inherit apacheHttpd; };
+  buildInputs = [
+    apacheHttpd
+    python3
+  ] ++ lib.optionals stdenv.isDarwin [
+    libintl
+  ];
 
-  buildInputs = [ apacheHttpd python3 ]
-    ++ lib.optional stdenv.isDarwin libintl;
+  passthru = {
+    inherit apacheHttpd;
+    updateScript = nix-update-script { };
+  };
 
   meta = with lib; {
     homepage = "https://modpython.org/";
+    changelog = "https://github.com/grisha/mod_python/blob/${version}/NEWS";
     description = "An Apache module that embeds the Python interpreter within the server";
+    mainProgram = "mod_python";
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_scep/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_scep/default.nix
index 68aeded93d00..40561e41ba88 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_scep/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_scep/default.nix
@@ -1,22 +1,41 @@
-{ lib, stdenv, fetchurl, pkg-config, mod_ca, apr, aprutil }:
+{
+  apr,
+  aprutil,
+  directoryListingUpdater,
+  fetchurl,
+  lib,
+  mod_ca,
+  pkg-config,
+  stdenv,
+}:
 
 stdenv.mkDerivation rec {
   pname = "mod_scep";
-  version = "0.2.3";
+  version = "0.2.4";
 
   src = fetchurl {
     url = "https://redwax.eu/dist/rs/${pname}-${version}.tar.gz";
-    sha256 = "1imddqyi81l90valvndx9r0ywn32ggijrdfrjmbx8j1abaccagrc";
+    hash = "sha256-HFPQ1A3ULtT2MduIQZS1drdQvCdZqJqKpOsJLEw67sI=";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ mod_ca apr aprutil ];
+
+  buildInputs = [
+    apr
+    aprutil
+    mod_ca
+  ];
+
   inherit (mod_ca) configureFlags installFlags;
 
+  passthru.updateScript = directoryListingUpdater {
+    url = "https://redwax.eu/dist/rs/";
+  };
+
   meta = with lib; {
     description = "RedWax CA service modules for SCEP (Automatic ceritifcate issue/renewal)";
-
     homepage = "https://redwax.eu";
+    changelog = "https://source.redwax.eu/projects/RS/repos/mod_scep/browse/ChangeLog";
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ dirkx ];
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_spkac/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_spkac/default.nix
index 01ecae55b2ed..639045d18aff 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_spkac/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_spkac/default.nix
@@ -1,22 +1,41 @@
-{ lib, stdenv, fetchurl, pkg-config, mod_ca, apr, aprutil }:
+{
+  apr,
+  aprutil,
+  directoryListingUpdater,
+  fetchurl,
+  lib,
+  mod_ca,
+  pkg-config,
+  stdenv,
+}:
 
 stdenv.mkDerivation rec {
   pname = "mod_spkac";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchurl {
     url = "https://redwax.eu/dist/rs/${pname}-${version}.tar.gz";
-    sha256 = "0hpr58yazbi21m0sjn22a8ns4h81s4jlab9szcdw7j9w9jdc7j0h";
+    hash = "sha256-J1pGz+/AD0IPwRPBA+wt9PgV9qnZEHX66VCBGqhf0b8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ mod_ca apr aprutil ];
+
+  buildInputs = [
+    apr
+    aprutil
+    mod_ca
+  ];
+
   inherit (mod_ca) configureFlags installFlags;
 
+  passthru.updateScript = directoryListingUpdater {
+    url = "https://redwax.eu/dist/rs/";
+  };
+
   meta = with lib; {
     description = "RedWax CA service module for handling the Netscape keygen requests. ";
-
     homepage = "https://redwax.eu";
+    changelog = "https://source.redwax.eu/projects/RS/repos/mod_spkac/browse/ChangeLog";
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ dirkx ];
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_tile/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_tile/default.nix
index 85ff5a97e636..f97ae6269011 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_tile/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_tile/default.nix
@@ -15,17 +15,18 @@
 , iniparser
 , libmemcached
 , mapnik
+, nix-update-script
 }:
 
 stdenv.mkDerivation rec {
   pname = "mod_tile";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "openstreetmap";
     repo = "mod_tile";
-    rev = "v${version}";
-    hash = "sha256-jDuOcmKzZGU6L0aOfPKRGpDLbX0O9ueTufBy7Bd6KMU=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-zXUwTG8cqAkY5MC1jAc2TtMgNMQPLc5nc22okVYP4ME=";
   };
 
   nativeBuildInputs = [
@@ -64,6 +65,8 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     homepage = "https://github.com/openstreetmap/mod_tile";
     description = "Efficiently render and serve OpenStreetMap tiles using Apache and Mapnik";
diff --git a/nixpkgs/pkgs/servers/http/apache-modules/mod_timestamp/default.nix b/nixpkgs/pkgs/servers/http/apache-modules/mod_timestamp/default.nix
index d1d254c30b4b..1dbe4101dfe6 100644
--- a/nixpkgs/pkgs/servers/http/apache-modules/mod_timestamp/default.nix
+++ b/nixpkgs/pkgs/servers/http/apache-modules/mod_timestamp/default.nix
@@ -1,22 +1,46 @@
-{ lib, stdenv, fetchurl, pkg-config, mod_ca, apr, aprutil }:
+{
+  apr,
+  aprutil,
+  directoryListingUpdater,
+  fetchurl,
+  lib,
+  mod_ca,
+  pkg-config,
+  stdenv,
+}:
 
 stdenv.mkDerivation rec {
   pname = "mod_timestamp";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchurl {
     url = "https://redwax.eu/dist/rs/${pname}-${version}.tar.gz";
-    sha256 = "1p18mgxx2ainfrc2wm27rl3lh6yl0ihx6snib60jnp694587bfwg";
+    hash = "sha256-X49gJ1wQtwQT3GOZkluxdMIY2ZRpM9Y7DZln6Ag9DvM=";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ mod_ca apr aprutil ];
+
+  buildInputs = [
+    apr
+    aprutil
+    mod_ca
+  ];
+
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-error=int-conversion"
+    "-Wno-error=implicit-function-declaration"
+  ]);
+
   inherit (mod_ca) configureFlags installFlags;
 
+  passthru.updateScript = directoryListingUpdater {
+    url = "https://redwax.eu/dist/rs/";
+  };
+
   meta = with lib; {
     description = "RedWax CA service module for issuing signed timestamps";
-
     homepage = "https://redwax.eu";
+    changelog = "https://source.redwax.eu/projects/RS/repos/mod_timestamp/browse/ChangeLog";
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ dirkx ];
diff --git a/nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix b/nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix
index dd3648961439..72a456ab17f9 100644
--- a/nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix
+++ b/nixpkgs/pkgs/servers/http/apt-cacher-ng/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A caching proxy specialized for Linux distribution files";
+    mainProgram = "apt-cacher-ng";
     homepage = "https://www.unix-ag.uni-kl.de/~bloch/acng/";
     license = licenses.bsdOriginal;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/servers/http/darkhttpd/default.nix b/nixpkgs/pkgs/servers/http/darkhttpd/default.nix
index a0678299ac9c..0d55b3b6b588 100644
--- a/nixpkgs/pkgs/servers/http/darkhttpd/default.nix
+++ b/nixpkgs/pkgs/servers/http/darkhttpd/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Small and secure static webserver";
+    mainProgram = "darkhttpd";
     homepage = "https://unix4lyfe.org/darkhttpd/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bobvanderlinden ];
diff --git a/nixpkgs/pkgs/servers/http/dufs/default.nix b/nixpkgs/pkgs/servers/http/dufs/default.nix
index a889f42f97aa..433a68d1a54a 100644
--- a/nixpkgs/pkgs/servers/http/dufs/default.nix
+++ b/nixpkgs/pkgs/servers/http/dufs/default.nix
@@ -42,6 +42,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A file server that supports static serving, uploading, searching, accessing control, webdav";
+    mainProgram = "dufs";
     homepage = "https://github.com/sigoden/dufs";
     changelog = "https://github.com/sigoden/dufs/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/servers/http/envoy/default.nix b/nixpkgs/pkgs/servers/http/envoy/default.nix
index 9a50c3063eb3..bb8a5e6a575c 100644
--- a/nixpkgs/pkgs/servers/http/envoy/default.nix
+++ b/nixpkgs/pkgs/servers/http/envoy/default.nix
@@ -193,6 +193,7 @@ buildBazelPackage {
     homepage = "https://envoyproxy.io";
     changelog = "https://github.com/envoyproxy/envoy/releases/tag/v${version}";
     description = "Cloud-native edge and service proxy";
+    mainProgram = "envoy";
     license = licenses.asl20;
     maintainers = with maintainers; [ lukegb ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
diff --git a/nixpkgs/pkgs/servers/http/hyp/default.nix b/nixpkgs/pkgs/servers/http/hyp/default.nix
index 7380a7a35191..76562311ac64 100644
--- a/nixpkgs/pkgs/servers/http/hyp/default.nix
+++ b/nixpkgs/pkgs/servers/http/hyp/default.nix
@@ -11,6 +11,7 @@ python3Packages.buildPythonPackage rec {
 
   meta = with lib; {
     description = "Hyperminimal https server";
+    mainProgram = "hyp";
     homepage    = "https://github.com/rnhmjoj/hyp";
     license     = with licenses; [gpl3Plus mit];
     maintainers = with maintainers; [ rnhmjoj ];
diff --git a/nixpkgs/pkgs/servers/http/jetty/11.x.nix b/nixpkgs/pkgs/servers/http/jetty/11.x.nix
index b6a1d4599c1e..0744d76a32d1 100644
--- a/nixpkgs/pkgs/servers/http/jetty/11.x.nix
+++ b/nixpkgs/pkgs/servers/http/jetty/11.x.nix
@@ -1,4 +1,4 @@
 import ./common.nix {
-  version = "11.0.19";
-  hash = "sha256-CJpJSeIuFNiduCpiSoa52vYIncWn5/tMEgMVslJCcy0=";
+  version = "11.0.20";
+  hash = "sha256-qOpIWht7Q8zjNRiHvpN5SBy+hOhddhgor5S55gWxHlQ=";
 }
diff --git a/nixpkgs/pkgs/servers/http/jetty/12.x.nix b/nixpkgs/pkgs/servers/http/jetty/12.x.nix
index 2115879b8a29..c3ad743310da 100644
--- a/nixpkgs/pkgs/servers/http/jetty/12.x.nix
+++ b/nixpkgs/pkgs/servers/http/jetty/12.x.nix
@@ -1,4 +1,4 @@
 import ./common.nix {
-  version = "12.0.5";
-  hash = "sha256-TnKoDgn59t0m5dBuMISQPpQrIFcTsv77V/KXJabpsyA=";
+  version = "12.0.7";
+  hash = "sha256-n85MgRRWCaa7+KvGH1QyiQ03TFoAw7N2jPCJbmuGZNg=";
 }
diff --git a/nixpkgs/pkgs/servers/http/lighttpd/default.nix b/nixpkgs/pkgs/servers/http/lighttpd/default.nix
index 45dadae35567..051f1c18e64e 100644
--- a/nixpkgs/pkgs/servers/http/lighttpd/default.nix
+++ b/nixpkgs/pkgs/servers/http/lighttpd/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lighttpd";
-  version = "1.4.74";
+  version = "1.4.75";
 
   src = fetchurl {
     url = "https://download.lighttpd.net/lighttpd/releases-${lib.versions.majorMinor version}.x/${pname}-${version}.tar.xz";
-    sha256 = "sha256-XAhzboMIj34Bl5cVnzBuiOxymr6XbcmPs77XG50+U7U=";
+    sha256 = "sha256-i3IcqTnTEq+qbvMdy9avtRYe04Wsgo5vzNTFt2vhidY=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/servers/http/lwan/default.nix b/nixpkgs/pkgs/servers/http/lwan/default.nix
index 5aff026aa9ce..bc155d353b9f 100644
--- a/nixpkgs/pkgs/servers/http/lwan/default.nix
+++ b/nixpkgs/pkgs/servers/http/lwan/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Lightweight high-performance multi-threaded web server";
+    mainProgram = "lwan";
     longDescription = "A lightweight and speedy web server with a low memory
       footprint (~500KiB for 10k idle connections), with minimal system calls and
       memory allocation.  Lwan contains a hand-crafted HTTP request parser. Files are
diff --git a/nixpkgs/pkgs/servers/http/mini-httpd/default.nix b/nixpkgs/pkgs/servers/http/mini-httpd/default.nix
index d56f83366f9e..fdf5012514f6 100644
--- a/nixpkgs/pkgs/servers/http/mini-httpd/default.nix
+++ b/nixpkgs/pkgs/servers/http/mini-httpd/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://mini-httpd.nongnu.org/";
     description = "minimalistic high-performance web server";
+    mainProgram = "httpd";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.peti ];
diff --git a/nixpkgs/pkgs/servers/http/nginx/generic.nix b/nixpkgs/pkgs/servers/http/nginx/generic.nix
index 81e785e4ec73..e998675b5766 100644
--- a/nixpkgs/pkgs/servers/http/nginx/generic.nix
+++ b/nixpkgs/pkgs/servers/http/nginx/generic.nix
@@ -200,6 +200,7 @@ stdenv.mkDerivation {
 
   meta = if meta != null then meta else with lib; {
     description = "A reverse proxy and lightweight webserver";
+    mainProgram = "nginx";
     homepage    = "http://nginx.org";
     license     = [ licenses.bsd2 ]
       ++ concatMap (m: m.meta.license) modules;
diff --git a/nixpkgs/pkgs/servers/http/nginx/modules.nix b/nixpkgs/pkgs/servers/http/nginx/modules.nix
index ac631331fe71..978a1c854b38 100644
--- a/nixpkgs/pkgs/servers/http/nginx/modules.nix
+++ b/nixpkgs/pkgs/servers/http/nginx/modules.nix
@@ -77,7 +77,7 @@ let self = {
     meta = with lib; {
       description = "Validates Akamai v2 query string tokens";
       homepage = "https://github.com/kaltura/nginx-akamai-token-validate-module";
-      license = with licenses; [ agpl3 ];
+      license = with licenses; [ agpl3Only ];
       maintainers = with maintainers; [ ];
     };
   };
@@ -685,7 +685,7 @@ let self = {
     meta = with lib; {
       description = "Generates CDN tokens, either as a cookie or as a query string parameter";
       homepage = "https://github.com/kaltura/nginx-secure-token-module";
-      license = with licenses; [ agpl3 ];
+      license = with licenses; [ agpl3Only ];
       maintainers = with maintainers; [ ];
     };
   };
@@ -1004,7 +1004,7 @@ let self = {
     meta = with lib; {
       description = "VOD packager";
       homepage = "https://github.com/kaltura/nginx-vod-module";
-      license = with licenses; [ agpl3 ];
+      license = with licenses; [ agpl3Only ];
       maintainers = with maintainers; [ ];
     };
   };
diff --git a/nixpkgs/pkgs/servers/http/pomerium/default.nix b/nixpkgs/pkgs/servers/http/pomerium/default.nix
index e4443d93be20..248b7ae1f3e7 100644
--- a/nixpkgs/pkgs/servers/http/pomerium/default.nix
+++ b/nixpkgs/pkgs/servers/http/pomerium/default.nix
@@ -14,12 +14,12 @@ let
 in
 buildGoModule rec {
   pname = "pomerium";
-  version = "0.25.0";
+  version = "0.25.1";
   src = fetchFromGitHub {
     owner = "pomerium";
     repo = "pomerium";
     rev = "v${version}";
-    hash = "sha256-mRAxqazTlNNPp54Q94TjhbCY+4Ul1Cw4VTCa1iuGOoY=";
+    hash = "sha256-xVPyiwKtSBchXC0FhNegeJlUej877zwNvrlAhSy6dJE=";
   };
 
   vendorHash = "sha256-GdeZkKkENacc11FmEAFUfX9efInfhpv2Lz0/3CtixFQ=";
@@ -121,6 +121,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://pomerium.io";
     description = "Authenticating reverse proxy";
+    mainProgram = "pomerium";
     license = licenses.asl20;
     maintainers = with maintainers; [ lukegb devusb ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
diff --git a/nixpkgs/pkgs/servers/http/pshs/default.nix b/nixpkgs/pkgs/servers/http/pshs/default.nix
index bbac8b843b15..e7715881541a 100644
--- a/nixpkgs/pkgs/servers/http/pshs/default.nix
+++ b/nixpkgs/pkgs/servers/http/pshs/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Pretty small HTTP server - a command-line tool to share files";
+    mainProgram = "pshs";
     homepage = "https://github.com/mgorny/pshs";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/servers/http/quark/default.nix b/nixpkgs/pkgs/servers/http/quark/default.nix
index 629e61b43397..e178fe91a34a 100644
--- a/nixpkgs/pkgs/servers/http/quark/default.nix
+++ b/nixpkgs/pkgs/servers/http/quark/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Extremely small and simple HTTP GET/HEAD-only web server for static content";
+    mainProgram = "quark";
     homepage = "http://tools.suckless.org/quark";
     license = licenses.isc;
     maintainers = with maintainers; [ sikmir ];
diff --git a/nixpkgs/pkgs/servers/http/ran/default.nix b/nixpkgs/pkgs/servers/http/ran/default.nix
index b5dcb136a31e..d22750fce3a0 100644
--- a/nixpkgs/pkgs/servers/http/ran/default.nix
+++ b/nixpkgs/pkgs/servers/http/ran/default.nix
@@ -40,6 +40,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/m3ng9i/ran";
     description = "Ran is a simple web server for serving static files";
+    mainProgram = "ran";
     license = licenses.mit;
     maintainers = with maintainers; [ tomberek ];
   };
diff --git a/nixpkgs/pkgs/servers/http/redstore/default.nix b/nixpkgs/pkgs/servers/http/redstore/default.nix
index 30027467a2ea..869f2c1f3b04 100644
--- a/nixpkgs/pkgs/servers/http/redstore/default.nix
+++ b/nixpkgs/pkgs/servers/http/redstore/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "An HTTP interface to Redland RDF store";
+    mainProgram = "redstore";
     homepage = "https://www.aelius.com/njh/redstore/";
     maintainers = [ lib.maintainers.raskin ];
     platforms = with lib.platforms;
diff --git a/nixpkgs/pkgs/servers/http/spawn-fcgi/default.nix b/nixpkgs/pkgs/servers/http/spawn-fcgi/default.nix
index c57cc816524d..3a4d9c8597c5 100644
--- a/nixpkgs/pkgs/servers/http/spawn-fcgi/default.nix
+++ b/nixpkgs/pkgs/servers/http/spawn-fcgi/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage    = "https://redmine.lighttpd.net/projects/spawn-fcgi";
     description = "Provides an interface to external programs that support the FastCGI interface";
+    mainProgram = "spawn-fcgi";
     license     = licenses.bsd3;
     maintainers = with maintainers; [ ];
     platforms = with platforms; unix;
diff --git a/nixpkgs/pkgs/servers/http/tengine/default.nix b/nixpkgs/pkgs/servers/http/tengine/default.nix
index b03a285a1d02..591f180893b3 100644
--- a/nixpkgs/pkgs/servers/http/tengine/default.nix
+++ b/nixpkgs/pkgs/servers/http/tengine/default.nix
@@ -118,6 +118,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A web server based on Nginx and has many advanced features, originated by Taobao";
+    mainProgram = "nginx";
     homepage    = "https://tengine.taobao.org";
     license     = licenses.bsd2;
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/servers/http/tomcat/default.nix b/nixpkgs/pkgs/servers/http/tomcat/default.nix
index fdbafa313dc7..710caedc094e 100644
--- a/nixpkgs/pkgs/servers/http/tomcat/default.nix
+++ b/nixpkgs/pkgs/servers/http/tomcat/default.nix
@@ -39,12 +39,12 @@ let
 
 in {
   tomcat9 = common {
-    version = "9.0.85";
-    hash = "sha256-oYdNXi5yADqBJ25alSAASsoRPxNfyEEzQim2j20luh4=";
+    version = "9.0.87";
+    hash = "sha256-2kgvuSIAhtvzceGAqgnGQCr48EhYZzTN7dSgjEjUzgI=";
   };
 
   tomcat10 = common {
-    version = "10.1.18";
-    hash = "sha256-baC0y9MUDmSocZot4ZwgvzkC0mShQqgWrFUq4hat4xE=";
+    version = "10.1.19";
+    hash = "sha256-w+pp2SvPw+15Ko2AeUrNuFbxwF2KBF4XpxoliKDHULc=";
   };
 }
diff --git a/nixpkgs/pkgs/servers/http/unit/default.nix b/nixpkgs/pkgs/servers/http/unit/default.nix
index d6c17dfb885f..c77428688da5 100644
--- a/nixpkgs/pkgs/servers/http/unit/default.nix
+++ b/nixpkgs/pkgs/servers/http/unit/default.nix
@@ -76,6 +76,7 @@ in stdenv.mkDerivation rec {
 
   meta = {
     description = "Dynamic web and application server, designed to run applications in multiple languages";
+    mainProgram = "unitd";
     homepage    = "https://unit.nginx.org/";
     license     = licenses.asl20;
     platforms   = platforms.linux;
diff --git a/nixpkgs/pkgs/servers/http/webhook/default.nix b/nixpkgs/pkgs/servers/http/webhook/default.nix
index 789382def1dc..d4ee36713e4c 100644
--- a/nixpkgs/pkgs/servers/http/webhook/default.nix
+++ b/nixpkgs/pkgs/servers/http/webhook/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Incoming webhook server that executes shell commands";
+    mainProgram = "webhook";
     homepage = "https://github.com/adnanh/webhook";
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
diff --git a/nixpkgs/pkgs/servers/http/yaws/default.nix b/nixpkgs/pkgs/servers/http/yaws/default.nix
index 7609c6ea5454..5e5a401d35d2 100644
--- a/nixpkgs/pkgs/servers/http/yaws/default.nix
+++ b/nixpkgs/pkgs/servers/http/yaws/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A webserver for dynamic content written in Erlang.";
+    mainProgram = "yaws";
     homepage = "https://github.com/erlyaws/yaws";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/servers/icecast/default.nix b/nixpkgs/pkgs/servers/icecast/default.nix
index e04716214fec..de375bb51841 100644
--- a/nixpkgs/pkgs/servers/icecast/default.nix
+++ b/nixpkgs/pkgs/servers/icecast/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Server software for streaming multimedia";
+    mainProgram = "icecast";
 
     longDescription = ''
       Icecast is a streaming media server which currently supports
diff --git a/nixpkgs/pkgs/servers/icecream/default.nix b/nixpkgs/pkgs/servers/icecream/default.nix
index 573dcee7170e..e6691e29aa12 100644
--- a/nixpkgs/pkgs/servers/icecream/default.nix
+++ b/nixpkgs/pkgs/servers/icecream/default.nix
@@ -1,18 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, docbook2x, libarchive, libcap_ng, lzo, zstd, docbook_xml_dtd_45 }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, docbook2x, libarchive, libcap_ng, lzo, pkg-config, zstd, docbook_xml_dtd_45 }:
 
 stdenv.mkDerivation rec {
   pname = "icecream";
-  version = "2020-04-15";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "icecc";
     repo = pname;
-    rev = "c370c4d701d05e1872d44d1c1642a774a7f25807";
-    sha256 = "0ld2ihd39irlk4wshpbw7inmgyl3x0gbkgsy10izcm1wwfc0x2ac";
+    rev = version;
+    sha256 = "sha256-nBdUbWNmTxKpkgFM3qbooNQISItt5eNKtnnzpBGVbd4=";
   };
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ autoreconfHook docbook2x ];
+  nativeBuildInputs = [ autoreconfHook docbook2x pkg-config ];
   buildInputs = [ libarchive libcap_ng lzo zstd docbook_xml_dtd_45 ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/identd/nullidentdmod/default.nix b/nixpkgs/pkgs/servers/identd/nullidentdmod/default.nix
index ee759ac55ea1..c027e143b503 100644
--- a/nixpkgs/pkgs/servers/identd/nullidentdmod/default.nix
+++ b/nixpkgs/pkgs/servers/identd/nullidentdmod/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple identd that just replies with a random string or customized userid";
+    mainProgram = "nullidentdmod";
     license = licenses.gpl2;
     homepage = "http://acidhub.click/NullidentdMod";
     maintainers = with maintainers; [ das_j ];
diff --git a/nixpkgs/pkgs/servers/identd/oidentd/default.nix b/nixpkgs/pkgs/servers/identd/oidentd/default.nix
index 1b219ee76cc3..510834ed282f 100644
--- a/nixpkgs/pkgs/servers/identd/oidentd/default.nix
+++ b/nixpkgs/pkgs/servers/identd/oidentd/default.nix
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Configurable Ident protocol server";
+    mainProgram = "oidentd";
     homepage = "https://oidentd.janikrabe.com/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/servers/imgproxy/default.nix b/nixpkgs/pkgs/servers/imgproxy/default.nix
index fd2b1758cc45..3187346c07eb 100644
--- a/nixpkgs/pkgs/servers/imgproxy/default.nix
+++ b/nixpkgs/pkgs/servers/imgproxy/default.nix
@@ -3,16 +3,16 @@
 
 buildGoModule rec {
   pname = "imgproxy";
-  version = "3.20.0";
+  version = "3.23.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    hash = "sha256-qTOMoeTk9fGBSmioTRBUa3xRXOIW6OJj8aH0b/vP7dw=";
+    hash = "sha256-nsXIy/JpI7nDu40dUGPosMAOtFt/OzfSWyxD6JuKA+s=";
     rev = "v${version}";
   };
 
-  vendorHash = "sha256-SaxoFCEDniphr1ZZ5prE996CeHegB+a8dpGaMpjsrtQ=";
+  vendorHash = "sha256-KtqXhi8VwH1aZt/vLHuug5MJLchs0t4tqA7PIZUVPHQ=";
 
   nativeBuildInputs = [ pkg-config gobject-introspection ];
 
@@ -25,6 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Fast and secure on-the-fly image processing server written in Go";
+    mainProgram = "imgproxy";
     homepage = "https://imgproxy.net";
     changelog = "https://github.com/imgproxy/imgproxy/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/servers/interlock/default.nix b/nixpkgs/pkgs/servers/interlock/default.nix
index b68a4a3563d0..4b53b2de067f 100644
--- a/nixpkgs/pkgs/servers/interlock/default.nix
+++ b/nixpkgs/pkgs/servers/interlock/default.nix
@@ -47,6 +47,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/usbarmory/interlock";
     description = "File encryption tool and an HSM frontend";
+    mainProgram = "interlock";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/servers/invidious/default.nix b/nixpkgs/pkgs/servers/invidious/default.nix
index 3f5bb42a48f2..f659b75df443 100644
--- a/nixpkgs/pkgs/servers/invidious/default.nix
+++ b/nixpkgs/pkgs/servers/invidious/default.nix
@@ -107,8 +107,9 @@ crystal.buildCrystalPackage rec {
 
   meta = with lib; {
     description = "An open source alternative front-end to YouTube";
+    mainProgram = "invidious";
     homepage = "https://invidious.io/";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     maintainers = with maintainers; [ infinisil sbruder ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/irc/ergochat/default.nix b/nixpkgs/pkgs/servers/irc/ergochat/default.nix
index 5fa160dabeb1..ad8e3f44a809 100644
--- a/nixpkgs/pkgs/servers/irc/ergochat/default.nix
+++ b/nixpkgs/pkgs/servers/irc/ergochat/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
   meta = {
     changelog = "https://github.com/ergochat/ergo/blob/v${version}/CHANGELOG.md";
     description = "A modern IRC server (daemon/ircd) written in Go";
+    mainProgram = "ergo";
     homepage = "https://github.com/ergochat/ergo";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ lassulus tv ];
diff --git a/nixpkgs/pkgs/servers/irc/irccat/default.nix b/nixpkgs/pkgs/servers/irc/irccat/default.nix
index fb4b1c6c6bad..ce0ba4785ca7 100644
--- a/nixpkgs/pkgs/servers/irc/irccat/default.nix
+++ b/nixpkgs/pkgs/servers/irc/irccat/default.nix
@@ -16,6 +16,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/irccloud/irccat";
     description = "Send events to IRC channels from scripts and other applications";
+    mainProgram = "irccat";
     maintainers = with maintainers; [ qyliss ];
     license = licenses.gpl3Only;
   };
diff --git a/nixpkgs/pkgs/servers/irc/ngircd/default.nix b/nixpkgs/pkgs/servers/irc/ngircd/default.nix
index 870a7836fe4f..3ec80a5075e0 100644
--- a/nixpkgs/pkgs/servers/irc/ngircd/default.nix
+++ b/nixpkgs/pkgs/servers/irc/ngircd/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Next Generation IRC Daemon";
+    mainProgram = "ngircd";
     homepage    = "https://ngircd.barton.de";
     license     = lib.licenses.gpl2;
     platforms   = lib.platforms.all;
diff --git a/nixpkgs/pkgs/servers/irc/robustirc-bridge/default.nix b/nixpkgs/pkgs/servers/irc/robustirc-bridge/default.nix
index 985b17945d09..2d5c6ef1231b 100644
--- a/nixpkgs/pkgs/servers/irc/robustirc-bridge/default.nix
+++ b/nixpkgs/pkgs/servers/irc/robustirc-bridge/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Bridge to robustirc.net-IRC-Network";
+    mainProgram = "robustirc-bridge";
     homepage = "https://robustirc.net/";
     license = licenses.bsd3;
     maintainers = [ maintainers.hax404 ];
diff --git a/nixpkgs/pkgs/servers/isso/default.nix b/nixpkgs/pkgs/servers/isso/default.nix
index 735db1f0b435..f7cedae7cf1c 100644
--- a/nixpkgs/pkgs/servers/isso/default.nix
+++ b/nixpkgs/pkgs/servers/isso/default.nix
@@ -69,6 +69,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "A commenting server similar to Disqus";
+    mainProgram = "isso";
     homepage = "https://posativ.org/isso/";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
diff --git a/nixpkgs/pkgs/servers/jackett/default.nix b/nixpkgs/pkgs/servers/jackett/default.nix
index d82f7fd1c9ec..110e9c854535 100644
--- a/nixpkgs/pkgs/servers/jackett/default.nix
+++ b/nixpkgs/pkgs/servers/jackett/default.nix
@@ -9,13 +9,13 @@
 
 buildDotnetModule rec {
   pname = "jackett";
-  version = "0.21.1915";
+  version = "0.21.2134";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha512-gqNtmLgAkanWjBIScic5yRCDeH0SF75H83xzpgdf0Xui1lylAPZEc6+FijoURXsDRH/H6taL3DFmO8tfzIpgGw==";
+    hash = "sha512-kaqHa7uvlD0twqU6/ZEp1u2OZh4v4gPi2n4lh2SXewEDHo2ffX8K91UYzphKu0aQAfIq0abDu8TlSR8JwE89lQ==";
   };
 
   projectFile = "src/Jackett.Server/Jackett.Server.csproj";
diff --git a/nixpkgs/pkgs/servers/jackett/deps.nix b/nixpkgs/pkgs/servers/jackett/deps.nix
index 0690b30aeac2..02a599fe440d 100644
--- a/nixpkgs/pkgs/servers/jackett/deps.nix
+++ b/nixpkgs/pkgs/servers/jackett/deps.nix
@@ -2,7 +2,7 @@
 # Please dont edit it manually, your changes might get overwritten!
 
 { fetchNuGet }: [
-  (fetchNuGet { pname = "AngleSharp"; version = "1.0.1"; sha256 = "04ivdl3fdhmv0i8n1nnmisbvksxay4axpkp5i4anjwl0571nnyva"; })
+  (fetchNuGet { pname = "AngleSharp"; version = "1.1.2"; sha256 = "0rfild46lmqhxkfh6nhy7a9m8zzv25lj29riav5j6dmzw07l7wif"; })
   (fetchNuGet { pname = "AngleSharp.Xml"; version = "1.0.0"; sha256 = "14xjzig65kslr4pfhl11313gcjci0s5jxm3z012606xagrc5fg2k"; })
   (fetchNuGet { pname = "Autofac"; version = "6.5.0"; sha256 = "01sbsids0r7iv2w4wlncyfv410qphjd9w8y9jlaiyrh5y0v6y303"; })
   (fetchNuGet { pname = "Autofac.Extensions.DependencyInjection"; version = "8.0.0"; sha256 = "02pvdn5yrdv44q0hb9qha92b9g4ycpbyymp1jd2z2z6lkwwwzhhp"; })
@@ -11,7 +11,7 @@
   (fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
   (fetchNuGet { pname = "coverlet.msbuild"; version = "3.2.0"; sha256 = "0lyw70xgri3jqxzd06s077p8wymislljsyrsyn081pb0xc20vd00"; })
   (fetchNuGet { pname = "DotNet4.SocksProxy"; version = "1.4.0.1"; sha256 = "1ig2a9ism041a6qrqkxa9xhvp19yxzcadlap5i1kz97f05a2msvb"; })
-  (fetchNuGet { pname = "FlareSolverrSharp"; version = "3.0.6"; sha256 = "1zciw2vahakiarkgrf2d63kb6krf0jffrwh29hj8i0l7mv522dcn"; })
+  (fetchNuGet { pname = "FlareSolverrSharp"; version = "3.0.7"; sha256 = "04nw6y4mm2l4zgcjby52am51ka461rfd7jj2s63587b2sd92kfnf"; })
   (fetchNuGet { pname = "FluentAssertions"; version = "6.8.0"; sha256 = "102977059vkllkr1pg43kcmgvlf9jm1bpmdkq4hx4ljrn1wflwnb"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore"; version = "2.2.0"; sha256 = "0vsv7hcsmnsgqhs67zp207n7m9ix3dbwm1p2ch3dizkcdvz235f9"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Antiforgery"; version = "2.2.0"; sha256 = "026wjdwjx0lgccqv0xi5gxylxzgz5ifgxf25p5pqakgrhkz0a59l"; })
@@ -24,11 +24,11 @@
   (fetchNuGet { pname = "Microsoft.AspNetCore.Connections.Abstractions"; version = "2.2.0"; sha256 = "1rl94r8b0zq14f3dhfnvfjj1ivr81iw9zh5kdgs3zkdv0xc9x21j"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Cors"; version = "2.2.0"; sha256 = "0qskbz87i74kfbklxqfyqaccyba21kkx2lcdfa54kxj9r8daq7sc"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Cryptography.Internal"; version = "2.2.0"; sha256 = "01lg2fx85b47ldgdrhs6clsivj35x54xwc9r5xk3f1v8rr3gycsv"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Cryptography.Internal"; version = "6.0.12"; sha256 = "1mym1ny1cwbd97k08azfawrxdhai1hi6i73jym2kswh215bph53k"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Cryptography.Internal"; version = "6.0.28"; sha256 = "156abks0g130277dj5cqi81254a0znik6d9w8c4hvwlvvkhfjn4w"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.DataProtection"; version = "2.2.0"; sha256 = "09lzbp084xxy1xxfbxpqdff8phv2pzd1n5v30xfm03hhl7a038gx"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.DataProtection"; version = "6.0.12"; sha256 = "1f0iyai3wh3aqyp3yrl7q2q7v3hx1rg566j3dc7fxj9qxg498ngf"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.DataProtection"; version = "6.0.28"; sha256 = "1p9p1rp9jhwiwcs9mp55i3xlax6yskb52ccy71h1x8ad6z9yznxq"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.DataProtection.Abstractions"; version = "2.2.0"; sha256 = "1gi4hpssmrrdf5lm6idkhvqbfy12bx14976y4gbhmx9z8lxaqcfz"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.DataProtection.Abstractions"; version = "6.0.12"; sha256 = "1y8kz358j7qfi4z89f8qh5blqlxchb41mpzfpbmhv978xv87xx9n"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.DataProtection.Abstractions"; version = "6.0.28"; sha256 = "064z1b8im4hcpmpllgv12aw61m8ys2x5cny60hizybspxw8jmv2i"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Diagnostics"; version = "2.2.0"; sha256 = "0hq5s2h0k2714352bdz2s3c3m6spkn4ckfw3pv9c4rmn6adbw9b1"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Diagnostics.Abstractions"; version = "2.2.0"; sha256 = "061cdhjh5w2f1frhimcgk68vx8p743jb9h4qik3lm1c734r0drm0"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.HostFiltering"; version = "2.2.0"; sha256 = "06wbgkbh24w9yxz6g8446l7nnjm3rdp1wklri710zqzr7zbfcx43"; })
@@ -48,7 +48,7 @@
   (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.JsonPatch"; version = "2.2.0"; sha256 = "07cihb5sqkavg42nvircdwjp0b67mhrla97jgx285zdjphplg4h2"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.JsonPatch"; version = "6.0.12"; sha256 = "1c3s660zy8hrqkr22d5xnrkd32aam4wx5rlxjvwpdll7l0pqbakw"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.JsonPatch"; version = "6.0.28"; sha256 = "1d07kh3smgnphxpf4rhb1g7mbyni00gkh0lqkg6msfsm3f9mwb8w"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Localization"; version = "2.2.0"; sha256 = "08knc70cy7ycid5sbbbzy6my4b7ddj4j760k5xf1qnfb0njxhfh7"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc"; version = "2.2.0"; sha256 = "16jrikcywkd4r4jh551p8gxxw6hj3aizdzd5i7agb06gwpgqqv9c"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Abstractions"; version = "2.2.0"; sha256 = "09p447ipd19517vy8xx9ykvspn6b4fgbm2rskpmzyw41x9wz4k0b"; })
@@ -59,7 +59,7 @@
   (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.DataAnnotations"; version = "2.2.0"; sha256 = "0vdhdjarh4az7g71gkvmhq6xpvwhh8si3sbrpdwb8p60i94cdyl6"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Formatters.Json"; version = "2.2.0"; sha256 = "0421fcf2z8a6z81ql123ili32wbr3x25zpq17xjf4s9fmsr0069a"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Localization"; version = "2.2.0"; sha256 = "0d27xirwsr3j7jacsrz6g2r4py35hgzjyy6ak6gkd07cm707wgc6"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "6.0.12"; sha256 = "0hhcqyw526az30rn3cq8gq71wkbkd8yp29459j8r9k47asnjim3z"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "6.0.28"; sha256 = "0szissvyxcrh52j4bqvs9nbkwg4pi190ivr49vq31dxxf51mrppy"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Razor"; version = "2.2.0"; sha256 = "06fqg7rfyvfj3hdppkhy37ddjff2d6pg7khj6lccs9lwc732yr7q"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Razor.Extensions"; version = "2.2.0"; sha256 = "04javqbzv7mkakqjl40j429giaagjj7hmwcljrgj8q1jknk0x9xc"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.RazorPages"; version = "2.2.0"; sha256 = "0zqyqfxzl3lkqfy9chd0ipani75q3109imlxrnhdfiwmxrd8xqbm"; })
@@ -138,7 +138,7 @@
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.1.1"; sha256 = "1sgpwj0sa0ac7m5fnkb482mnch8fsv8hfbvk53c6lyh47s1xhdjg"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.2.0"; sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.0"; sha256 = "0b75fmins171zi6bfdcq1kcvyrirs8n91mknjnxy4c3ygi1rrnj0"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.3"; sha256 = "1lpr7bwandzvppjsx75b1nsh52whlsq2ddgwv1ncwdbi595jrkpc"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.4"; sha256 = "0pjdbar2nkp7kcciys92pkld4kgpb362vdgp67lxqg1xkf0ajswn"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "2.2.0"; sha256 = "1npblvkb4f251277sm6mc1xj2yww6nzag0azfz772nzkbdpj1q19"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Console"; version = "2.2.0"; sha256 = "1g4wcd1kac0b4l0k4blr3qxpyfaf092cs2wnsjb3paj60rhr5agf"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Debug"; version = "2.2.0"; sha256 = "1z5zzf43dw5xzvylkcgdi0q2mfhig6fmw2p5mxdxx916c5s007np"; })
@@ -187,8 +187,8 @@
   (fetchNuGet { pname = "NUnit"; version = "3.13.3"; sha256 = "0wdzfkygqnr73s6lpxg5b1pwaqz9f414fxpvpdmf72bvh4jaqzv6"; })
   (fetchNuGet { pname = "NUnit.ConsoleRunner"; version = "3.16.1"; sha256 = "0bqs72fhqlmmqsvjarsx4hz8d2dj0wgbsx1gr681fcl1pqpm1cgz"; })
   (fetchNuGet { pname = "NUnit3TestAdapter"; version = "4.3.1"; sha256 = "1j80cfrg0fflgw7wxi76mxj1wllwzcg4ck957knmjpghw5cw7lvv"; })
-  (fetchNuGet { pname = "Polly"; version = "8.2.0"; sha256 = "0gxdi4sf60vpxsb258v592ykkq9a3dq2awayp99yy9djys8bglks"; })
-  (fetchNuGet { pname = "Polly.Core"; version = "8.2.0"; sha256 = "00b4jbyiyslqvswy4j2lfw0rl0gq8m4v5fj2asb96i6l224bs7d3"; })
+  (fetchNuGet { pname = "Polly"; version = "8.3.1"; sha256 = "19q7s493sv90879052pxfcbsk3bmxjg5688ya7l12964ddafiwsl"; })
+  (fetchNuGet { pname = "Polly.Core"; version = "8.3.1"; sha256 = "15ylkqdcwpr76n0nfzpvd6s00ywjagn1ignyrcz9arwahrxpsm4b"; })
   (fetchNuGet { pname = "SharpZipLib"; version = "1.4.2"; sha256 = "0ijrzz2szxjmv2cipk7rpmg14dfaigdkg7xabjvb38ih56m9a27y"; })
   (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.4.0"; sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19"; })
@@ -225,7 +225,6 @@
   (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.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
   (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
   (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
   (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
@@ -261,15 +260,14 @@
   (fetchNuGet { pname = "System.Security.Permissions"; version = "4.5.0"; sha256 = "192ww5rm3c9mirxgl1nzyrwd18am3izqls0hzm0fvcdjl5grvbhm"; })
   (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; })
   (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
-  (fetchNuGet { pname = "System.ServiceProcess.ServiceController"; version = "6.0.0"; sha256 = "1x4i8jlpfvca3bmsm0fjzq3zswpd2cszjq93v2nxaq3d57vv5npa"; })
+  (fetchNuGet { pname = "System.ServiceProcess.ServiceController"; version = "6.0.1"; sha256 = "15nvnflqfrz2fsclcwgaq8r532x2fbv1ds3rck95l8psb7pgx1v5"; })
   (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.Encoding.CodePages"; version = "7.0.0"; sha256 = "0sn6hxdjm7bw3xgsmg041ccchsa4sp02aa27cislw3x61dbr68kq"; })
   (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 = "4.5.1"; sha256 = "0pya3ggs4pds6m8hgvjdljpacxwn3qx4bfq59nwi0qrs7zxihxhp"; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "6.0.0"; sha256 = "06n9ql3fmhpjl32g3492sj181zjml5dlcc5l76xq2h38c4f87sai"; })
-  (fetchNuGet { pname = "System.Text.Json"; version = "6.0.8"; sha256 = "0jhxpkx68fiih6p68s1bb0g45ab6qalkf1xl0g8bj4jdx7m5xhqi"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "6.0.9"; sha256 = "1fvqlicbn774da3b1zyfbnd7lw350sxq8hr7jcincv1fbz2yyf76"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
   (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
   (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.0"; sha256 = "05mpkdc7aigwadlcc9q3ash88hygkyz5pmkj360jj6c6ffhm91s8"; })
@@ -285,5 +283,5 @@
   (fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
   (fetchNuGet { pname = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
   (fetchNuGet { pname = "System.Xml.XPath.XDocument"; version = "4.3.0"; sha256 = "1wxckyb7n1pi433xzz0qcwcbl1swpra64065mbwwi8dhdc4kiabn"; })
-  (fetchNuGet { pname = "YamlDotNet"; version = "13.0.1"; sha256 = "07shrvmc4ks6l8zsjjgmabyg5j6smqqlh3lvz9111d8wf3gfdcxy"; })
+  (fetchNuGet { pname = "YamlDotNet"; version = "13.1.1"; sha256 = "1jwc9a4p08j0nhlw850v0x31bra13ans9zrklv4nh41zd2h4rszg"; })
 ]
diff --git a/nixpkgs/pkgs/servers/jibri/default.nix b/nixpkgs/pkgs/servers/jibri/default.nix
index 1c97d18d98c3..0898ba34a16b 100644
--- a/nixpkgs/pkgs/servers/jibri/default.nix
+++ b/nixpkgs/pkgs/servers/jibri/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "JItsi BRoadcasting Infrastructure";
+    mainProgram = "jibri";
     longDescription = ''
       Jibri provides services for recording or streaming a Jitsi Meet conference.
       It works by launching a Chrome instance rendered in a virtual framebuffer and capturing and
diff --git a/nixpkgs/pkgs/servers/jicofo/default.nix b/nixpkgs/pkgs/servers/jicofo/default.nix
index b567c701ff7e..ddabc7c467ea 100644
--- a/nixpkgs/pkgs/servers/jicofo/default.nix
+++ b/nixpkgs/pkgs/servers/jicofo/default.nix
@@ -2,10 +2,10 @@
 
 let
   pname = "jicofo";
-  version = "1.0-1062";
+  version = "1.0-1075";
   src = fetchurl {
     url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
-    sha256 = "bU7h7kjs2yu1O+qhKcs6C63DH/omo/R1+Ms40KHkjHU=";
+    sha256 = "tRlCZGBWlonTkKMxr2Rry70ZqC3mjcbF627XEn2D2UI=";
   };
 in
 stdenv.mkDerivation {
@@ -36,6 +36,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A server side focus component used in Jitsi Meet conferences";
+    mainProgram = "jicofo";
     longDescription = ''
       JItsi COnference FOcus is a server side focus component used in Jitsi Meet conferences.
     '';
diff --git a/nixpkgs/pkgs/servers/jigasi/default.nix b/nixpkgs/pkgs/servers/jigasi/default.nix
index d9f8ed60c09b..b1c646db5846 100644
--- a/nixpkgs/pkgs/servers/jigasi/default.nix
+++ b/nixpkgs/pkgs/servers/jigasi/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A server-side application that allows regular SIP clients to join Jitsi Meet conferences";
+    mainProgram = "jigasi";
     longDescription = ''
       Jitsi Gateway to SIP: a server-side application that allows regular SIP clients to join Jitsi Meet conferences hosted by Jitsi Videobridge.
     '';
diff --git a/nixpkgs/pkgs/servers/jitsi-videobridge/default.nix b/nixpkgs/pkgs/servers/jitsi-videobridge/default.nix
index 06aa43e5fce3..9f25ec1fdc9c 100644
--- a/nixpkgs/pkgs/servers/jitsi-videobridge/default.nix
+++ b/nixpkgs/pkgs/servers/jitsi-videobridge/default.nix
@@ -2,10 +2,10 @@
 
 let
   pname = "jitsi-videobridge2";
-  version = "2.3-67-gb2d4229f";
+  version = "2.3-92-g64f9f34f";
   src = fetchurl {
     url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
-    sha256 = "aE9QFzOJk3jMzNTEitcaBZVKpa1IJ55JahLfNDCujJI=";
+    sha256 = "fatkARiFgSEQl/caVUjJX77os7IZDIEZrxp0RLLaK/M=";
   };
 in
 stdenv.mkDerivation {
diff --git a/nixpkgs/pkgs/servers/kanidm/Cargo.lock b/nixpkgs/pkgs/servers/kanidm/Cargo.lock
index c821e78af6df..5b6349079aba 100644
--- a/nixpkgs/pkgs/servers/kanidm/Cargo.lock
+++ b/nixpkgs/pkgs/servers/kanidm/Cargo.lock
@@ -221,8 +221,6 @@ dependencies = [
  "memchr",
  "pin-project-lite",
  "tokio",
- "zstd",
- "zstd-safe",
 ]
 
 [[package]]
@@ -644,7 +642,6 @@ version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
- "jobserver",
  "libc",
 ]
 
@@ -2861,15 +2858,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
-name = "jobserver"
-version = "0.1.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d"
-dependencies = [
- "libc",
-]
-
-[[package]]
 name = "jpeg-decoder"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6888,34 +6876,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "zstd"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110"
-dependencies = [
- "zstd-safe",
-]
-
-[[package]]
-name = "zstd-safe"
-version = "7.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e"
-dependencies = [
- "zstd-sys",
-]
-
-[[package]]
-name = "zstd-sys"
-version = "2.0.9+zstd.1.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656"
-dependencies = [
- "cc",
- "pkg-config",
-]
-
-[[package]]
 name = "zxcvbn"
 version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/nixpkgs/pkgs/servers/kanidm/default.nix b/nixpkgs/pkgs/servers/kanidm/default.nix
index 479b865f7a0f..39d86c36a9de 100644
--- a/nixpkgs/pkgs/servers/kanidm/default.nix
+++ b/nixpkgs/pkgs/servers/kanidm/default.nix
@@ -24,8 +24,9 @@ rustPlatform.buildRustPackage rec {
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = version;
-    hash = "sha256-UavMiHe91UrCZfmG6b+yhdduOY2eKMev9HSjtXq1Tlw=";
+    # Latest revision of 1.1.0-rc.16 stable branch
+    rev = "4c88d6b27c9b82ad5b2482bda140025d7068293f";
+    hash = "sha256-tatZ56uIusNvAAGwJ731rfmHvheOtPXjPUxLuAPFxXs=";
   };
 
   cargoLock = {
diff --git a/nixpkgs/pkgs/servers/klipper/default.nix b/nixpkgs/pkgs/servers/klipper/default.nix
index e1d15d55722c..b2067020ad9f 100644
--- a/nixpkgs/pkgs/servers/klipper/default.nix
+++ b/nixpkgs/pkgs/servers/klipper/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "klipper";
-  version = "unstable-2024-02-17";
+  version = "unstable-2024-03-19";
 
   src = fetchFromGitHub {
     owner = "KevinOConnor";
     repo = "klipper";
-    rev = "28f06a104bc0cfe3a7d36db343ade5a805b3e132";
-    sha256 = "sha256-v2nv4g3dQTMbUKIrEJo8s66WRWXnSkWO8K+12fK/cZw=";
+    rev = "235b75be3c287a9fdcde54b347734bf6a8de2ade";
+    sha256 = "sha256-PTdLhoKTlvrTljAvrK8q/JF9w50kKJHkWrzdPPaSfCc=";
   };
 
   sourceRoot = "${src.name}/klippy";
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The Klipper 3D printer firmware";
+    mainProgram = "klippy";
     homepage = "https://github.com/KevinOConnor/klipper";
     maintainers = with maintainers; [ lovesegfault zhaofengli cab404 ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/servers/komga/default.nix b/nixpkgs/pkgs/servers/komga/default.nix
index 994428abb1b8..84d1b958a57b 100644
--- a/nixpkgs/pkgs/servers/komga/default.nix
+++ b/nixpkgs/pkgs/servers/komga/default.nix
@@ -8,11 +8,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "komga";
-  version = "1.10.3";
+  version = "1.10.4";
 
   src = fetchurl {
     url = "https://github.com/gotson/${pname}/releases/download/${version}/${pname}-${version}.jar";
-    sha256 = "sha256-t/nwqEVrsBeELJLLtizDI737VnODRsuPfQlnDUBfoKc=";
+    sha256 = "sha256-WKiybcQH+xxBUUbuXrN2u7oIBbQBp34Y1mgJe0u7hiI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/servers/kubemq-community/default.nix b/nixpkgs/pkgs/servers/kubemq-community/default.nix
index 929b8460ae27..6fb080623a56 100644
--- a/nixpkgs/pkgs/servers/kubemq-community/default.nix
+++ b/nixpkgs/pkgs/servers/kubemq-community/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = {
     homepage = "https://github.com/kubemq-io/kubemq-community";
     description = "KubeMQ Community is the open-source version of KubeMQ, the Kubernetes native message broker.";
+    mainProgram = "kubemq-community";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ brianmcgee ];
   };
diff --git a/nixpkgs/pkgs/servers/kwakd/default.nix b/nixpkgs/pkgs/servers/kwakd/default.nix
index e65e6b5ab59a..fc0cdc43831d 100644
--- a/nixpkgs/pkgs/servers/kwakd/default.nix
+++ b/nixpkgs/pkgs/servers/kwakd/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A super small webserver that serves blank pages";
+    mainProgram = "kwakd";
     license = licenses.gpl2;
     maintainers = [ maintainers.nicknovitski ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/servers/ldap/apache-directory-server/default.nix b/nixpkgs/pkgs/servers/ldap/apache-directory-server/default.nix
index 7008e0e40d25..46e52ef1bce9 100644
--- a/nixpkgs/pkgs/servers/ldap/apache-directory-server/default.nix
+++ b/nixpkgs/pkgs/servers/ldap/apache-directory-server/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An extensible and embeddable directory server";
+    mainProgram = "apache-directory-server";
     homepage = "https://directory.apache.org/apacheds/";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/servers/ldap/lldap/default.nix b/nixpkgs/pkgs/servers/ldap/lldap/default.nix
index 892fa3a10c36..cf4cc82ed875 100644
--- a/nixpkgs/pkgs/servers/ldap/lldap/default.nix
+++ b/nixpkgs/pkgs/servers/ldap/lldap/default.nix
@@ -87,7 +87,7 @@ in rustPlatform.buildRustPackage (commonDerivationAttrs // {
     changelog = "https://github.com/lldap/lldap/blob/v${lldap.version}/CHANGELOG.md";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ emilylange bendlas ];
+    maintainers = with maintainers; [ bendlas ];
     mainProgram = "lldap";
   };
 })
diff --git a/nixpkgs/pkgs/servers/libreddit/default.nix b/nixpkgs/pkgs/servers/libreddit/default.nix
index f7a77c6962c5..246697c937f4 100644
--- a/nixpkgs/pkgs/servers/libreddit/default.nix
+++ b/nixpkgs/pkgs/servers/libreddit/default.nix
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Private front-end for Reddit";
+    mainProgram = "libreddit";
     homepage = "https://github.com/libreddit/libreddit";
     changelog = "https://github.com/libreddit/libreddit/releases/tag/v${version}";
     license = with licenses; [ agpl3Only ];
diff --git a/nixpkgs/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix b/nixpkgs/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
index 59c306beedd9..f27f82aeff6a 100644
--- a/nixpkgs/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
+++ b/nixpkgs/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, autoconf, automake, sqlite, pkg-config, dovecot, libtool, xapian, icu64 }:
 stdenv.mkDerivation rec {
   pname = "dovecot-fts-xapian";
-  version = "1.7.4";
+  version = "1.7.9";
 
   src = fetchFromGitHub {
     owner = "grosjo";
     repo = "fts-xapian";
     rev = version;
-    sha256 = "sha256-Jc8rk/g+dzCpSWsn/Rt5qjhDr5nxO9wmi7rgfyyTSTU=";
+    sha256 = "sha256-8D2K0i6wJZfvhRIZKqGPS1tWzBOTPKzn1YMAhDIPkw0=";
   };
 
   buildInputs = [ dovecot xapian icu64 sqlite ];
diff --git a/nixpkgs/pkgs/servers/mail/exim/default.nix b/nixpkgs/pkgs/servers/mail/exim/default.nix
index a7f0a1986b99..b5446f7df190 100644
--- a/nixpkgs/pkgs/servers/mail/exim/default.nix
+++ b/nixpkgs/pkgs/servers/mail/exim/default.nix
@@ -3,11 +3,15 @@
 , procps, killall
 , enableLDAP ? false, openldap
 , enableMySQL ? false, libmysqlclient, zlib
+, enablePgSQL ? false, postgresql
+, enableSqlite ? false, sqlite
 , enableAuthDovecot ? false, dovecot
 , enablePAM ? false, pam
 , enableSPF ? true, libspf2
 , enableDMARC ? true, opendmarc
 , enableRedis ? false, hiredis
+, enableJSON ? false, jansson
+, enableSRS ? false,
 }:
 let
   perl' = perl.withPackages (p: with p; [ FileFcntlLock ]);
@@ -26,11 +30,14 @@ in stdenv.mkDerivation rec {
   buildInputs = [ coreutils db openssl perl' pcre2 libxcrypt ]
     ++ lib.optional enableLDAP openldap
     ++ lib.optionals enableMySQL [ libmysqlclient zlib ]
+    ++ lib.optional enablePgSQL postgresql
+    ++ lib.optionals enableSqlite [ sqlite sqlite.dev zlib ]
     ++ lib.optional enableAuthDovecot dovecot
     ++ lib.optional enablePAM pam
     ++ lib.optional enableSPF libspf2
     ++ lib.optional enableDMARC opendmarc
-    ++ lib.optional enableRedis hiredis;
+    ++ lib.optional enableRedis hiredis
+    ++ lib.optional enableJSON jansson;
 
   configurePhase = ''
     runHook preConfigure
@@ -71,9 +78,25 @@ in stdenv.mkDerivation rec {
         s:^# \(LOOKUP_LIBS\)=.*:\1=-lmysqlclient -L${libmysqlclient}/lib/mysql -lssl -lm -lpthread -lz:
         s:^# \(LOOKUP_INCLUDE\)=.*:\1=-I${libmysqlclient.dev}/include/mysql/:
       ''}
+      ${lib.optionalString enablePgSQL ''
+        s:^# \(LOOKUP_PGSQL=yes\)$:\1:
+        s:^\(LOOKUP_LIBS\)=\(.*\):\1=\2 -lpq -L${postgresql.lib}/lib:
+        s:^# \(LOOKUP_LIBS\)=.*:\1=-lpq -L${postgresql.lib}/lib:
+        s:^# \(LOOKUP_INCLUDE\)=.*:\1=-I${postgresql}/include:
+      ''}
+      ${lib.optionalString enableSqlite ''
+        s:^# \(LOOKUP_SQLITE=yes\)$:\1:
+        s:^# \(LOOKUP_SQLITE_PC=sqlite3\)$:\1:
+        s:^\(LOOKUP_LIBS\)=\(.*\):\1=\2 -lsqlite3 -L${sqlite}/lib:
+        s:^# \(LOOKUP_LIBS\)=.*:\1=-lsqlite3 -L${sqlite}/lib -lssl -lm -lpthread -lz:
+        s:^# \(LOOKUP_INCLUDE\)=.*:\1=-I${sqlite.dev}/include:
+      ''}
       ${lib.optionalString enableAuthDovecot ''
         s:^# \(AUTH_DOVECOT\)=.*:\1=yes:
       ''}
+      ${lib.optionalString enableSRS ''
+        s:^# \(SUPPORT_SRS\)=.*:\1=yes:
+      ''}
       ${lib.optionalString enablePAM ''
         s:^# \(SUPPORT_PAM\)=.*:\1=yes:
         s:^\(EXTRALIBS_EXIM\)=\(.*\):\1=\2 -lpam:
@@ -94,6 +117,13 @@ in stdenv.mkDerivation rec {
         s:^\(LOOKUP_INCLUDE\)=\(.*\):\1=\2 -I${hiredis}/include/hiredis/:
         s:^# \(LOOKUP_INCLUDE\)=.*:\1=-I${hiredis}/include/hiredis/:
       ''}
+      ${lib.optionalString enableJSON ''
+        s:^# \(LOOKUP_JSON=yes\)$:\1:
+        s:^\(LOOKUP_LIBS\)=\(.*\):\1=\2 -ljansson -L${jansson}/lib:
+        s:^# \(LOOKUP_LIBS\)=.*:\1=-ljansson -L${jansson}/lib:
+        s:^\(LOOKUP_INCLUDE\)=\(.*\):\1=\2 -I${jansson}/include:
+        s:^# \(LOOKUP_INCLUDE\)=.*:\1=-I${jansson}/include:
+      ''}
       #/^\s*#.*/d
       #/^\s*$/d
     ' < src/EDITME > Local/Makefile
diff --git a/nixpkgs/pkgs/servers/mail/mailhog/default.nix b/nixpkgs/pkgs/servers/mail/mailhog/default.nix
index d4c358ec47f5..ef20fa92f385 100644
--- a/nixpkgs/pkgs/servers/mail/mailhog/default.nix
+++ b/nixpkgs/pkgs/servers/mail/mailhog/default.nix
@@ -17,6 +17,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "Web and API based SMTP testing";
+    mainProgram = "MailHog";
     homepage = "https://github.com/mailhog/MailHog";
     changelog = "https://github.com/mailhog/MailHog/releases/tag/v${version}";
     maintainers = with maintainers; [ disassembler jojosch ];
diff --git a/nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix b/nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix
index 52c7497f5a6d..344970ebb564 100644
--- a/nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix
+++ b/nixpkgs/pkgs/servers/mail/mailman/hyperkitty.nix
@@ -1,6 +1,6 @@
 { lib
 , python3
-, fetchPypi
+, fetchurl
 , nixosTests
 }:
 
@@ -8,18 +8,19 @@ with python3.pkgs;
 
 buildPythonPackage rec {
   pname = "HyperKitty";
-  version = "1.3.8";
+  version = "1.3.9";
+  pyproject = true;
+
   disabled = pythonOlder "3.10";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-j//Mrbos/g1BGenHRmOe5GvAza5nu/mchAgdLQu9h7g=";
+  src = fetchurl {
+    url = "https://gitlab.com/mailman/hyperkitty/-/releases/${version}/downloads/hyperkitty-${version}.tar.gz";
+    hash = "sha256-BfhCh4zZcfwoIfubW/+MUWXwh1yFOH/jpRdQdsj6lME=";
   };
 
-  postPatch = ''
-    # isort is a development dependency
-    sed -i '/isort/d' setup.py
-  '';
+  nativeBuildInputs = [
+    pdm-backend
+  ];
 
   propagatedBuildInputs = [
     django
@@ -39,9 +40,10 @@ buildPythonPackage rec {
   ];
 
   # Some of these are optional runtime dependencies that are not
-  # listed as dependencies in setup.py.  To use these, they should be
-  # dependencies of the Django Python environment, but not of
-  # HyperKitty so they're not included for people who don't need them.
+  # listed as dependencies in pyproject.toml.  To use these, they
+  # should be dependencies of the Django Python environment, but not
+  # of HyperKitty so they're not included for people who don't need
+  # them.
   nativeCheckInputs = [
     beautifulsoup4
     elastic-transport
diff --git a/nixpkgs/pkgs/servers/mail/mailman/python.nix b/nixpkgs/pkgs/servers/mail/mailman/python.nix
index ebac15e443bf..29d2f6c6d36a 100644
--- a/nixpkgs/pkgs/servers/mail/mailman/python.nix
+++ b/nixpkgs/pkgs/servers/mail/mailman/python.nix
@@ -18,15 +18,6 @@ python3.override {
         [1] 72a14ea563a3f5bf85db659349a533fe75a8b0ce
         [2] f931bc81d63f5cfda55ac73d754c87b3fd63b291
       */
-      # https://gitlab.com/mailman/hyperkitty/-/merge_requests/541
-      mistune = super.mistune.overridePythonAttrs (old: rec {
-        version = "2.0.5";
-        src = fetchPypi {
-          inherit (old) pname;
-          inherit version;
-          hash = "sha256-AkYRPLJJLbh1xr5Wl0p8iTMzvybNkokchfYxUc7gnTQ=";
-        };
-      });
 
       # django-q tests fail with redis 5.0.0.
       # https://gitlab.com/mailman/hyperkitty/-/issues/493
diff --git a/nixpkgs/pkgs/servers/mail/mailman/web.nix b/nixpkgs/pkgs/servers/mail/mailman/web.nix
index d347f434ab50..dc5ef230c235 100644
--- a/nixpkgs/pkgs/servers/mail/mailman/web.nix
+++ b/nixpkgs/pkgs/servers/mail/mailman/web.nix
@@ -44,6 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://gitlab.com/mailman/mailman-web";
     description = "Django project for Mailman 3 web interface";
+    mainProgram = "mailman-web";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ qyliss m1cr0man ];
   };
diff --git a/nixpkgs/pkgs/servers/mail/mox/default.nix b/nixpkgs/pkgs/servers/mail/mox/default.nix
index 8ee46f7faeba..cb266f89bc4d 100644
--- a/nixpkgs/pkgs/servers/mail/mox/default.nix
+++ b/nixpkgs/pkgs/servers/mail/mox/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "mox";
-  version = "0.0.9";
+  version = "0.0.10";
 
   src = fetchFromGitHub {
     owner = "mjl-";
     repo = "mox";
     rev = "v${version}";
-    hash = "sha256-QDDNWGuDWxUBdoYEHQC7Ug0i8NyaqqGVsmFtTWfiM0M=";
+    hash = "sha256-BigxFlMkagw82Lkz1xMMSwAJyfSdSbeQr6G6rCaomNg=";
   };
 
   # set the version during buildtime
@@ -27,6 +27,7 @@ buildGoModule rec {
 
   meta = {
     description = "Modern full-featured open source secure mail server for low-maintenance self-hosted email";
+    mainProgram = "mox";
     homepage = "https://github.com/mjl-/mox";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dit7ya ];
diff --git a/nixpkgs/pkgs/servers/mail/popa3d/default.nix b/nixpkgs/pkgs/servers/mail/popa3d/default.nix
index d36d26b5d520..da7ba498f243 100644
--- a/nixpkgs/pkgs/servers/mail/popa3d/default.nix
+++ b/nixpkgs/pkgs/servers/mail/popa3d/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.openwall.com/popa3d/";
     description = "Tiny POP3 daemon with security as the primary goal";
+    mainProgram = "popa3d";
     platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/servers/mail/postfix/default.nix b/nixpkgs/pkgs/servers/mail/postfix/default.nix
index e40c30ff79fa..6ebd41d850ac 100644
--- a/nixpkgs/pkgs/servers/mail/postfix/default.nix
+++ b/nixpkgs/pkgs/servers/mail/postfix/default.nix
@@ -25,11 +25,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "postfix";
-  version = "3.8.6";
+  version = "3.9.0";
 
   src = fetchurl {
     url = "https://de.postfix.org/ftpmirror/official/postfix-${version}.tar.gz";
-    hash = "sha256-S24XyCbMQ4zDAWqcClXqfnfGy6+6fdVyQdgbaQsOl3Q=";
+    hash = "sha256-VvXkIOfCVFWk6WwZtnL4D5oKNftb7MkkfJ49XcxhfzQ=";
   };
 
   nativeBuildInputs = [ makeWrapper m4 ];
diff --git a/nixpkgs/pkgs/servers/mail/postfix/pflogsumm.nix b/nixpkgs/pkgs/servers/mail/postfix/pflogsumm.nix
index 800a69e95096..d70cde6b9da2 100644
--- a/nixpkgs/pkgs/servers/mail/postfix/pflogsumm.nix
+++ b/nixpkgs/pkgs/servers/mail/postfix/pflogsumm.nix
@@ -29,6 +29,7 @@ perlPackages.buildPerlPackage rec {
     homepage = "http://jimsun.linxnet.com/postfix_contrib.html";
     maintainers = with lib.maintainers; [ schneefux ];
     description = "Postfix activity overview";
+    mainProgram = "pflogsumm";
     license = lib.licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/servers/mail/postfix/postfix-3.0-no-warnings.patch b/nixpkgs/pkgs/servers/mail/postfix/postfix-3.0-no-warnings.patch
index d93eaf0aaa0d..69dcee41d418 100644
--- a/nixpkgs/pkgs/servers/mail/postfix/postfix-3.0-no-warnings.patch
+++ b/nixpkgs/pkgs/servers/mail/postfix/postfix-3.0-no-warnings.patch
@@ -8,7 +8,7 @@ diff -ru3 postfix-3.0.3/conf/postfix-script postfix-3.0.3-new/conf/postfix-scrip
 -# If this is a secondary instance, don't touch shared files.
 -
 -instances=`test ! -f $def_config_directory/main.cf ||
--    $command_directory/postconf -c $def_config_directory \
+-    $command_directory/postconf -qc $def_config_directory \
 -    -h multi_instance_directories | sed 's/,/ /'` || {
 -	$FATAL cannot execute $command_directory/postconf!
 -	exit 1
diff --git a/nixpkgs/pkgs/servers/mail/postsrsd/default.nix b/nixpkgs/pkgs/servers/mail/postsrsd/default.nix
index 99e3dbfdc435..c31fadc8ecbd 100644
--- a/nixpkgs/pkgs/servers/mail/postsrsd/default.nix
+++ b/nixpkgs/pkgs/servers/mail/postsrsd/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/roehling/postsrsd";
     description = "Postfix Sender Rewriting Scheme daemon";
+    mainProgram = "postsrsd";
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = with maintainers; [ abbradar ];
diff --git a/nixpkgs/pkgs/servers/mail/smtprelay/default.nix b/nixpkgs/pkgs/servers/mail/smtprelay/default.nix
index 8142dc76b98b..688c415caf26 100644
--- a/nixpkgs/pkgs/servers/mail/smtprelay/default.nix
+++ b/nixpkgs/pkgs/servers/mail/smtprelay/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/decke/smtprelay";
     description = "Simple Golang SMTP relay/proxy server";
+    mainProgram = "smtprelay";
     changelog = "https://github.com/decke/smtprelay/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ juliusrickert ];
diff --git a/nixpkgs/pkgs/servers/matrix-hebbot/default.nix b/nixpkgs/pkgs/servers/matrix-hebbot/default.nix
index 59e4ca1b1916..e8c0f7076a17 100644
--- a/nixpkgs/pkgs/servers/matrix-hebbot/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-hebbot/default.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
     description = "A Matrix bot which can generate \"This Week in X\" like blog posts ";
     homepage = "https://github.com/haecker-felix/hebbot";
     changelog = "https://github.com/haecker-felix/hebbot/releases/tag/v${version}";
-    license = with licenses; [ agpl3 ];
+    license = with licenses; [ agpl3Only ];
     mainProgram = "hebbot";
     maintainers = with maintainers; [ a-kenji ];
   };
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/default.nix
index 2370dbc94349..81c87f307e37 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchPypi
 , python3
 , openssl
 , libiconv
@@ -12,25 +13,39 @@
 }:
 
 let
-  plugins = python3.pkgs.callPackage ./plugins { };
+  python = python3.override {
+    packageOverrides = self: super: {
+      netaddr = super.netaddr.overridePythonAttrs (oldAttrs: rec {
+        version = "1.0.0";
+
+        src = fetchPypi {
+          pname = "netaddr";
+          inherit version;
+          hash = "sha256-6wRrVTVOelv4AcBJAq6SO9aZGQJC2JsJnolvmycktNM=";
+        };
+      });
+    };
+  };
+
+  plugins = python.pkgs.callPackage ./plugins { };
   tools = callPackage ./tools { };
 in
-python3.pkgs.buildPythonApplication rec {
+python.pkgs.buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.102.0";
+  version = "1.103.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "element-hq";
     repo = "synapse";
     rev = "v${version}";
-    hash = "sha256-RJsuvNqqUiiVw6uKkG81rqo1ZoszUHK4UIJh8MReFqo=";
+    hash = "sha256-NwHX4pOM2PUf2MldaPTOzP9gOcTmILxM1Sx2HPkLBcw=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-PoPJnSZ9QpcpVbqDMlqwgAqu0K8oornpihErLHXb6Gc=";
+    hash = "sha256-AyV0JPPJkJ4jdaw0FUXPqGF3Qkce1+RK70FkXAw+bLA=";
   };
 
   postPatch = ''
@@ -48,7 +63,7 @@ python3.pkgs.buildPythonApplication rec {
     sed -i 's/Pillow = ".*"/Pillow = ">=5.4.0"/' pyproject.toml
   '';
 
-  nativeBuildInputs = with python3.pkgs; [
+  nativeBuildInputs = with python.pkgs; [
     poetry-core
     rustPlatform.cargoSetupHook
     setuptools-rust
@@ -62,7 +77,7 @@ python3.pkgs.buildPythonApplication rec {
     libiconv
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = with python.pkgs; [
     attrs
     bcrypt
     bleach
@@ -95,7 +110,7 @@ python3.pkgs.buildPythonApplication rec {
   ]
   ++ twisted.optional-dependencies.tls;
 
-  passthru.optional-dependencies = with python3.pkgs; {
+  passthru.optional-dependencies = with python.pkgs; {
     postgres = if isPyPy then [
       psycopg2cffi
     ] else [
@@ -133,7 +148,7 @@ python3.pkgs.buildPythonApplication rec {
 
   nativeCheckInputs = [
     openssl
-  ] ++ (with python3.pkgs; [
+  ] ++ (with python.pkgs; [
     mock
     parameterized
   ])
@@ -154,15 +169,14 @@ python3.pkgs.buildPythonApplication rec {
       NIX_BUILD_CORES=4
     fi
 
-    PYTHONPATH=".:$PYTHONPATH" ${python3.interpreter} -m twisted.trial -j $NIX_BUILD_CORES tests
+    PYTHONPATH=".:$PYTHONPATH" ${python.interpreter} -m twisted.trial -j $NIX_BUILD_CORES tests
 
     runHook postCheck
   '';
 
   passthru = {
     tests = { inherit (nixosTests) matrix-synapse matrix-synapse-workers; };
-    inherit plugins tools;
-    python = python3;
+    inherit plugins tools python;
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
index 753118528bdd..3d2e4058d061 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
@@ -84,6 +84,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Node.js IRC bridge for Matrix";
+    mainProgram = "matrix-appservice-irc";
     maintainers = with maintainers; [ rhysmdnz ];
     homepage = "https://github.com/matrix-org/matrix-appservice-irc";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
index bbfc36ad4268..e7928dab5417 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
@@ -49,6 +49,7 @@ mkYarnPackage rec {
 
   meta = with lib; {
     description = "A Matrix <--> Slack bridge";
+    mainProgram = "matrix-appservice-slack";
     maintainers = with maintainers; [ beardhatcode chvp ];
     license = licenses.asl20;
   };
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-hookshot/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/matrix-hookshot/default.nix
index f784036075c8..e89e4e1e682b 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/matrix-hookshot/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-hookshot/default.nix
@@ -72,10 +72,16 @@ mkYarnPackage rec {
         "$out/libexec/matrix-hookshot/deps/matrix-hookshot/lib/App/BridgeApp.js"
   '';
 
+  postFixup = ''
+    # Scrub reference to rustc
+    rm $out/libexec/matrix-hookshot/deps/matrix-hookshot/target/.rustc_info.json
+  '';
+
   doDist = false;
 
   meta = with lib; {
     description = "A bridge between Matrix and multiple project management services, such as GitHub, GitLab and JIRA";
+    mainProgram = "matrix-hookshot";
     maintainers = with maintainers; [ chvp ];
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/plugins/s3-storage-provider.nix b/nixpkgs/pkgs/servers/matrix-synapse/plugins/s3-storage-provider.nix
index 8999c6982577..9033049c33bd 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/plugins/s3-storage-provider.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/plugins/s3-storage-provider.nix
@@ -52,6 +52,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Synapse storage provider to fetch and store media in Amazon S3";
+    mainProgram = "s3_media_upload";
     homepage = "https://github.com/matrix-org/synapse-s3-storage-provider";
     changelog = "https://github.com/matrix-org/synapse-s3-storage-provider/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/tools/synadm.nix b/nixpkgs/pkgs/servers/matrix-synapse/tools/synadm.nix
index e69319477493..6d24ea59abcf 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/tools/synadm.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/tools/synadm.nix
@@ -34,6 +34,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Command line admin tool for Synapse";
+    mainProgram = "synadm";
     longDescription = ''
       A CLI tool to help admins of Matrix Synapse homeservers
       conveniently issue commands available via its admin API's
diff --git a/nixpkgs/pkgs/servers/mattermost/default.nix b/nixpkgs/pkgs/servers/mattermost/default.nix
index c76dd152929c..ca152079e073 100644
--- a/nixpkgs/pkgs/servers/mattermost/default.nix
+++ b/nixpkgs/pkgs/servers/mattermost/default.nix
@@ -12,13 +12,13 @@ buildGoModule rec {
   # See https://docs.mattermost.com/upgrade/extended-support-release.html
   # When a new ESR version is available (e.g. 8.1.x -> 9.5.x), update
   # the version regex in passthru.updateScript as well.
-  version = "9.5.1";
+  version = "9.5.2";
 
   src = fetchFromGitHub {
     owner = "mattermost";
     repo = "mattermost";
     rev = "v${version}";
-    hash = "sha256-w+VF8VoS7oIcDlYS5kCFzSX4rgD9l1B99XBHeJDB6JI=";
+    hash = "sha256-NYP0mhON+TCvNTSx4I4hddFGF9TWtnMAwyJvX8sEdWU=";
   };
 
   # Needed because buildGoModule does not support go workspaces yet.
@@ -34,7 +34,7 @@ buildGoModule rec {
 
   webapp = fetchurl {
     url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz";
-    hash = "sha256-F32NWulKUhoyHPCmCCih6Hb9+W2iuF/Mxy9USrgp1pM=";
+    hash = "sha256-ogiowbNYHo9NTQLAg1OKXp8pV1Zn7kPcZR9ukaKvpKA=";
   };
 
   vendorHash = "sha256-TJCtgNf56A1U0EbV5gXjTro+YudVBRWiSZoBC3nJxnE=";
@@ -77,7 +77,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Mattermost is an open source platform for secure collaboration across the entire software development lifecycle";
     homepage = "https://www.mattermost.org";
-    license = with licenses; [ agpl3 asl20 ];
+    license = with licenses; [ agpl3Only asl20 ];
     maintainers = with maintainers; [ ryantm numinit kranzes mgdelacroix ];
     mainProgram = "mattermost";
   };
diff --git a/nixpkgs/pkgs/servers/mattermost/matterircd.nix b/nixpkgs/pkgs/servers/mattermost/matterircd.nix
index c66d5557d76f..9a3b5b6357f7 100644
--- a/nixpkgs/pkgs/servers/mattermost/matterircd.nix
+++ b/nixpkgs/pkgs/servers/mattermost/matterircd.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Minimal IRC server bridge to Mattermost";
+    mainProgram = "matterircd";
     homepage = "https://github.com/42wim/matterircd";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/servers/mautrix-signal/default.nix b/nixpkgs/pkgs/servers/mautrix-signal/default.nix
index f45b687acaed..26f5156e31ab 100644
--- a/nixpkgs/pkgs/servers/mautrix-signal/default.nix
+++ b/nixpkgs/pkgs/servers/mautrix-signal/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "mautrix-signal";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "mautrix";
     repo = "signal";
     rev = "v${version}";
-    hash = "sha256-qlWp9SnS8dWZNAua9HOyOrQwBXQFaaWB3eP9aCGlDFc=";
+    hash = "sha256-juem0enwwY5HOgci9Am2xcAsJK0F48DtpU7J/Osqd9k=";
   };
 
   buildInputs = [
@@ -18,7 +18,7 @@ buildGoModule rec {
     libsignal-ffi
   ];
 
-  vendorHash = "sha256-sa6M9rMrI7fa8T4su3yfJID4AYB6YnlfrVBM6cPQLvY=";
+  vendorHash = "sha256-CnuRzDiUVJt4PrU8u7UmT1ejrdpsohmDv8M0qfFb0Ac=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix b/nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix
index 3423985f6584..76ac8bfd5712 100644
--- a/nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix
+++ b/nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "mautrix-whatsapp";
-  version = "0.10.5";
+  version = "0.10.6";
 
   src = fetchFromGitHub {
     owner = "mautrix";
     repo = "whatsapp";
     rev = "v${version}";
-    hash = "sha256-bn9nUTtpaEkzF2SEdCcKG27WQDL7xsgfgA/72wElQqA=";
+    hash = "sha256-foYmHJk25SOCv+o6eiJTeD2VP8vi6PpeeDm845Lq43Y=";
   };
 
   buildInputs = [ olm ];
 
-  vendorHash = "sha256-PDUSjza+0SDanQwKYQRuLzsiA/sHjRnG0xpzlzhkm+U=";
+  vendorHash = "sha256-2xHgGBVFzEnOFiZrg1ClgjUrzKVD3CLxPsvRO2iQBC4=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/memcached/default.nix b/nixpkgs/pkgs/servers/memcached/default.nix
index 6ad1343645e8..71740cf41908 100644
--- a/nixpkgs/pkgs/servers/memcached/default.nix
+++ b/nixpkgs/pkgs/servers/memcached/default.nix
@@ -1,12 +1,12 @@
 {lib, stdenv, fetchurl, cyrus_sasl, libevent, nixosTests }:
 
 stdenv.mkDerivation rec {
-  version = "1.6.23";
+  version = "1.6.24";
   pname = "memcached";
 
   src = fetchurl {
     url = "https://memcached.org/files/${pname}-${version}.tar.gz";
-    sha256 = "sha256-hbAzSQT0QClqaFzP2nXw9FF7+JIquO+m0MSzySw1TUw=";
+    sha256 = "sha256-+QXsCzhDKoqAvM0E6Q501ey6mLj2R+XWHku1QIWnpCI=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/servers/mesos-dns/default.nix b/nixpkgs/pkgs/servers/mesos-dns/default.nix
index e26b13bb25ab..3efaae630198 100644
--- a/nixpkgs/pkgs/servers/mesos-dns/default.nix
+++ b/nixpkgs/pkgs/servers/mesos-dns/default.nix
@@ -18,4 +18,5 @@ buildGoPackage rec {
   };
 
   goDeps = ./deps.nix;
+  meta.mainProgram = "mesos-dns";
 }
diff --git a/nixpkgs/pkgs/servers/metabase/default.nix b/nixpkgs/pkgs/servers/metabase/default.nix
index 42d776d79705..d35d0e6c259d 100644
--- a/nixpkgs/pkgs/servers/metabase/default.nix
+++ b/nixpkgs/pkgs/servers/metabase/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "metabase";
-  version = "0.48.7";
+  version = "0.49.1";
 
   src = fetchurl {
     url = "https://downloads.metabase.com/v${version}/metabase.jar";
-    hash = "sha256-W0FP9c6vMLCfK93eaXPeF1mkBAI2KMjQ9EpGx7hbRg8=";
+    hash = "sha256-oyh25h59udfwuLqZJ4ngGYL+tup9GEWgegcTNb0PeHE=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/miniflux/default.nix b/nixpkgs/pkgs/servers/miniflux/default.nix
index 7d97e1dd7bd0..423a23e87885 100644
--- a/nixpkgs/pkgs/servers/miniflux/default.nix
+++ b/nixpkgs/pkgs/servers/miniflux/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "miniflux";
-  version = "2.1.0";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "miniflux";
     repo = "v2";
     rev = "refs/tags/${version}";
-    hash = "sha256-c7xKgu3039gTmxdWXoYWuuYDD/oPv3/uYS3m8KRkhTk=";
+    hash = "sha256-vXSOHZt6Ov5g4fQBg0bubCfn76aaVrjw2b+LRebbV6s=";
   };
 
-  vendorHash = "sha256-PuyWik0OA77gJipnuOyRgrCCQlDj9gTM/LDRBl6mBRo=";
+  vendorHash = "sha256-p31kwJZQMYff5Us6mXpPmxbPrEXyxU6Sipf4LKSG3wU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/servers/minio/default.nix b/nixpkgs/pkgs/servers/minio/default.nix
index 3fb9ecc28f38..e36a1662907d 100644
--- a/nixpkgs/pkgs/servers/minio/default.nix
+++ b/nixpkgs/pkgs/servers/minio/default.nix
@@ -21,16 +21,16 @@ let
 in
 buildGoModule rec {
   pname = "minio";
-  version = "2024-02-26T09-33-48Z";
+  version = "2024-03-10T02-53-48Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    hash = "sha256-V5Pmp36YA0u1Z2SBNdJZAHQuA3PgVKHmIJlDElhS24s=";
+    hash = "sha256-XcJm5FcX0NNjjY/WDQyR2RF8J3GkqEvpAhFDZj9ztks=";
   };
 
-  vendorHash = "sha256-0EymK7jQhr+NJDg1zgWpcniV5zZ33Av6zpq0IDuWw7M=";
+  vendorHash = "sha256-0W2D5CQkrZMPlehvmExeQ6txwEyRe3XZl0Bv0Ww5COs=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/minio/legacy_fs.nix b/nixpkgs/pkgs/servers/minio/legacy_fs.nix
index 170001b3ae6e..3cf4bed41eba 100644
--- a/nixpkgs/pkgs/servers/minio/legacy_fs.nix
+++ b/nixpkgs/pkgs/servers/minio/legacy_fs.nix
@@ -43,6 +43,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://www.minio.io/";
     description = "An S3-compatible object storage server";
+    mainProgram = "minio";
     changelog = "https://github.com/minio/minio/releases/tag/RELEASE.${version}";
     maintainers = with maintainers; [ eelco bachp ];
     license = licenses.agpl3Plus;
diff --git a/nixpkgs/pkgs/servers/misc/client-ip-echo/client-ip-echo.nix b/nixpkgs/pkgs/servers/misc/client-ip-echo/client-ip-echo.nix
index d6a25b3675ff..a02daa179833 100644
--- a/nixpkgs/pkgs/servers/misc/client-ip-echo/client-ip-echo.nix
+++ b/nixpkgs/pkgs/servers/misc/client-ip-echo/client-ip-echo.nix
@@ -13,4 +13,5 @@ mkDerivation {
   executableHaskellDepends = [ base bytestring network ];
   description = "accepts TCP connections and echoes the client's IP address back to it";
   license = lib.licenses.lgpl3;
+  mainProgram = "client-ip-echo";
 }
diff --git a/nixpkgs/pkgs/servers/misc/gobgpd/default.nix b/nixpkgs/pkgs/servers/misc/gobgpd/default.nix
index 8d7a8f563ea8..48003cae4693 100644
--- a/nixpkgs/pkgs/servers/misc/gobgpd/default.nix
+++ b/nixpkgs/pkgs/servers/misc/gobgpd/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "BGP implemented in Go";
+    mainProgram = "gobgpd";
     homepage = "https://osrg.github.io/gobgp/";
     changelog = "https://github.com/osrg/gobgp/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/misc/navidrome/default.nix b/nixpkgs/pkgs/servers/misc/navidrome/default.nix
index 76e20469faa0..b663df8809a8 100644
--- a/nixpkgs/pkgs/servers/misc/navidrome/default.nix
+++ b/nixpkgs/pkgs/servers/misc/navidrome/default.nix
@@ -77,6 +77,7 @@ buildGoModule rec {
 
   meta = {
     description = "Navidrome Music Server and Streamer compatible with Subsonic/Airsonic";
+    mainProgram = "navidrome";
     homepage = "https://www.navidrome.org/";
     license = lib.licenses.gpl3Only;
     sourceProvenance = with lib.sourceTypes; [ fromSource ];
diff --git a/nixpkgs/pkgs/servers/misc/oven-media-engine/default.nix b/nixpkgs/pkgs/servers/misc/oven-media-engine/default.nix
index cd9e12377f5a..35db446c70a2 100644
--- a/nixpkgs/pkgs/servers/misc/oven-media-engine/default.nix
+++ b/nixpkgs/pkgs/servers/misc/oven-media-engine/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Open-source streaming video service with sub-second latency";
+    mainProgram = "OvenMediaEngine";
     homepage    = "https://ovenmediaengine.com";
     license     = licenses.agpl3Only;
     maintainers = with maintainers; [ lukegb ];
diff --git a/nixpkgs/pkgs/servers/misc/podgrab/default.nix b/nixpkgs/pkgs/servers/misc/podgrab/default.nix
index 225421b973d6..4e5846faba56 100644
--- a/nixpkgs/pkgs/servers/misc/podgrab/default.nix
+++ b/nixpkgs/pkgs/servers/misc/podgrab/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A self-hosted podcast manager to download episodes as soon as they become live";
+    mainProgram = "podgrab";
     homepage = "https://github.com/akhilrex/podgrab";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ ambroisie ];
diff --git a/nixpkgs/pkgs/servers/misc/qremotecontrol-server/default.nix b/nixpkgs/pkgs/servers/misc/qremotecontrol-server/default.nix
index 31d66070d42f..5fba2c0a382f 100644
--- a/nixpkgs/pkgs/servers/misc/qremotecontrol-server/default.nix
+++ b/nixpkgs/pkgs/servers/misc/qremotecontrol-server/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ fgaz ];
     homepage = "https://sourceforge.net/projects/qrc/";
     description = "Remote control your desktop from your mobile";
+    mainProgram = "qremotecontrol-server";
     longDescription = ''
       With QRemoteControl installed on your desktop you can easily control
       your computer via WiFi from your mobile. By using the touch pad of your
diff --git a/nixpkgs/pkgs/servers/misc/shell2http/default.nix b/nixpkgs/pkgs/servers/misc/shell2http/default.nix
index 994df898215f..ae1a6840f496 100644
--- a/nixpkgs/pkgs/servers/misc/shell2http/default.nix
+++ b/nixpkgs/pkgs/servers/misc/shell2http/default.nix
@@ -43,6 +43,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Executing shell commands via HTTP server";
+    mainProgram = "shell2http";
     homepage = "https://github.com/msoap/shell2http";
     changelog = "https://github.com/msoap/shell2http/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/servers/misc/starcharts/default.nix b/nixpkgs/pkgs/servers/misc/starcharts/default.nix
index 05245213b5b5..c866f18b2c6a 100644
--- a/nixpkgs/pkgs/servers/misc/starcharts/default.nix
+++ b/nixpkgs/pkgs/servers/misc/starcharts/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Plot your repository stars over time";
+    mainProgram = "starcharts";
     homepage = "https://github.com/caarlos0/starcharts";
     changelog = "https://github.com/caarlos0/starcharts/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/servers/monitoring/alerta/client.nix b/nixpkgs/pkgs/servers/monitoring/alerta/client.nix
index d8de093c2765..d3de741e53bc 100644
--- a/nixpkgs/pkgs/servers/monitoring/alerta/client.nix
+++ b/nixpkgs/pkgs/servers/monitoring/alerta/client.nix
@@ -23,6 +23,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://alerta.io";
     description = "Alerta Monitoring System command-line interface";
+    mainProgram = "alerta";
     license = licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/alerta/default.nix b/nixpkgs/pkgs/servers/monitoring/alerta/default.nix
index e69599498182..f84bb3302eca 100644
--- a/nixpkgs/pkgs/servers/monitoring/alerta/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/alerta/default.nix
@@ -43,6 +43,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://alerta.io";
     description = "Alerta Monitoring System server";
+    mainProgram = "alertad";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/alertmanager-irc-relay/default.nix b/nixpkgs/pkgs/servers/monitoring/alertmanager-irc-relay/default.nix
index 7b06eed72ce6..fb5f524c0afe 100644
--- a/nixpkgs/pkgs/servers/monitoring/alertmanager-irc-relay/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/alertmanager-irc-relay/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Alertmanager IRC Relay is a bot relaying Prometheus alerts to IRC";
+    mainProgram = "alertmanager-irc-relay";
     longDescription = ''
       Alertmanager IRC Relay is a bot relaying Prometheus alerts to IRC.
       Alerts are received from Prometheus using Webhooks and are relayed to an
diff --git a/nixpkgs/pkgs/servers/monitoring/cadvisor/default.nix b/nixpkgs/pkgs/servers/monitoring/cadvisor/default.nix
index 409ae5f37562..dc0d890a429f 100644
--- a/nixpkgs/pkgs/servers/monitoring/cadvisor/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/cadvisor/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Analyzes resource usage and performance characteristics of running docker containers";
+    mainProgram = "cadvisor";
     homepage = "https://github.com/google/cadvisor";
     license = licenses.asl20;
     maintainers = with maintainers; [ offline ];
diff --git a/nixpkgs/pkgs/servers/monitoring/consul-alerts/default.nix b/nixpkgs/pkgs/servers/monitoring/consul-alerts/default.nix
index 4cf5f6b80682..23bf58c98e59 100644
--- a/nixpkgs/pkgs/servers/monitoring/consul-alerts/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/consul-alerts/default.nix
@@ -17,6 +17,7 @@ buildGoPackage rec {
   };
 
   meta = with lib; {
+    mainProgram = "consul-alerts";
     description = "An extendable open source continuous integration server";
     homepage = "https://github.com/AcalephStorage/consul-alerts";
     # As per README
diff --git a/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix b/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix
index d13c48544898..ad9f7fc80c44 100644
--- a/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "DigitalOcean droplet system metrics agent";
+    mainProgram = "do-agent";
     longDescription = ''
       do-agent is a program provided by DigitalOcean that collects system
       metrics from a DigitalOcean Droplet (on which the program runs) and sends
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix
index 6ddaf2ba07a2..0597eaa75351 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-agent/default.nix
@@ -2,10 +2,11 @@
 , buildGoModule
 , fetchFromGitHub
 , fetchYarnDeps
-, prefetch-yarn-deps
 , grafana-agent
+, nix-update-script
 , nixosTests
 , nodejs
+, prefetch-yarn-deps
 , stdenv
 , systemd
 , testers
@@ -14,21 +15,21 @@
 
 buildGoModule rec {
   pname = "grafana-agent";
-  version = "0.39.2";
+  version = "0.40.3";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "agent";
     rev = "v${version}";
-    hash = "sha256-KwXkCTKnoXHL2RFpJjjwtIolEpqCM6te5wMk9xQNOqE=";
+    hash = "sha256-oezfeUW+CVwqe8T3pEkLU1vxI1dntMQ6cvE9AqxKtR8=";
   };
 
-  vendorHash = "sha256-aSHO5SoMem14Fc6DirqtYBVWJQtf5mzCT3T33mMyhkc=";
+  vendorHash = "sha256-64etBHKlEPByDzrEP3YYhgR4vnj4yvHk6cjB92myqyc=";
   proxyVendor = true; # darwin/linux hash mismatch
 
   frontendYarnOfflineCache = fetchYarnDeps {
     yarnLock = src + "/web/ui/yarn.lock";
-    hash = "sha256-rT0UCInISo/p60xzQC7wAJFuKFByIzhNf0RxFFJx+3k=";
+    hash = "sha256-WqbIg18qUNcs9O2wh7DAzwXKb60iEuPL8zFCIgScqI0=";
   };
 
   ldflags = let
@@ -89,13 +90,18 @@ buildGoModule rec {
       $out/bin/grafana-agent
   '';
 
-  passthru.tests = {
-    inherit (nixosTests) grafana-agent;
-    version = testers.testVersion {
-      inherit version;
-      command = "${lib.getExe grafana-agent} --version";
-      package = grafana-agent;
+  passthru = {
+    tests = {
+      inherit (nixosTests) grafana-agent;
+      version = testers.testVersion {
+        inherit version;
+        command = "${lib.getExe grafana-agent} --version";
+        package = grafana-agent;
+      };
     };
+    updateScript = nix-update-script { };
+    # alias for nix-update to be able to find and update this attribute
+    offlineCache = frontendYarnOfflineCache;
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix
index 7975bf514e3c..3a4217c6995e 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/default.nix
@@ -7,18 +7,18 @@
 
 mkYarnPackage rec {
   pname = "grafana-image-renderer";
-  version = "3.10.0";
+  version = "3.10.1";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "grafana-image-renderer";
     rev = "v${version}";
-    hash = "sha256-fl2vDaGLR2ZlHnljfHYPN0EmbGqJwVs5dBkXRDJ3fM8=";
+    hash = "sha256-hfq0wuDoZ/3kiXVgwFPGRXMGxeRRVvCzi+VWJczOwgM=";
   };
 
   offlineCache = fetchYarnDeps {
     yarnLock = src + "/yarn.lock";
-    hash = "sha256-6x42/UaTNmoglgHDqfa0LjQz8PeOwUVqI5BOEuzdnuM=";
+    hash = "sha256-NqzADMMjxxZQOPt0lJOWoJ8WEU7hFJmnwRnSQPYMtLo=";
   };
 
   packageJSON = ./package.json;
@@ -60,6 +60,7 @@ mkYarnPackage rec {
   meta = with lib; {
     homepage = "https://github.com/grafana/grafana-image-renderer";
     description = "A Grafana backend plugin that handles rendering of panels & dashboards to PNGs using headless browser (Chromium/Chrome)";
+    mainProgram = "grafana-image-renderer";
     license = licenses.asl20;
     maintainers = with maintainers; [ ma27 ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json
index 7d360f78c6b1..10bd43ab4621 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-image-renderer/package.json
@@ -59,7 +59,7 @@
     "@types/supertest": "^2.0.15",
     "@typescript-eslint/eslint-plugin": "5.37.0",
     "@typescript-eslint/parser": "5.37.0",
-    "axios": "1.6.0",
+    "axios": "1.6.7",
     "cross-env": "7.0.3",
     "eslint": "8.23.1",
     "eslint-config-prettier": "8.5.0",
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana-reporter/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana-reporter/default.nix
index 60cf6d51224c..1b4d0d04fa30 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana-reporter/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana-reporter/default.nix
@@ -25,6 +25,7 @@ buildGoPackage rec {
 
   meta = {
     description = "PDF report generator from a Grafana dashboard";
+    mainProgram = "grafana-reporter";
     homepage = "https://github.com/IzakMarais/reporter";
     license = licenses.mit;
     maintainers = with maintainers; [ disassembler ];
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
index 8b2a9c02e0df..99846f7babfe 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
@@ -18,29 +18,18 @@ let
     done
     rm -r packages/grafana-e2e
   '';
-
-  # Injects a `t.Skip()` into a given test since
-  # there's apparently no other way to skip tests here.
-  skipTest = lineOffset: testCase: file:
-    let
-      jumpAndAppend = lib.concatStringsSep ";" (lib.replicate (lineOffset - 1) "n" ++ [ "a" ]);
-    in ''
-      sed -i -e '/${testCase}/{
-      ${jumpAndAppend} t.Skip();
-      }' ${file}
-    '';
 in
 buildGoModule rec {
   pname = "grafana";
-  version = "10.3.3";
+  version = "10.4.0";
 
-  excludedPackages = [ "alert_webhook_listener" "clean-swagger" "release_publisher" "slow_proxy" "slow_proxy_mac" "macaron" "devenv" "modowners" ];
+  subPackages = [ "pkg/cmd/grafana" "pkg/cmd/grafana-server" "pkg/cmd/grafana-cli" ];
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "grafana";
     rev = "v${version}";
-    hash = "sha256-uAfHcW9j+al8IIH2N6X5wssQmSXqJjVQzwERBCxGxVE=";
+    hash = "sha256-Rp2jGspbmqJFzSbiVy2/5oqQJnAdGG/T+VNBHVsHSwg=";
   };
 
   offlineCache = stdenv.mkDerivation {
@@ -48,7 +37,7 @@ buildGoModule rec {
     inherit src;
     nativeBuildInputs = [
       yarn nodejs cacert
-      jq moreutils
+      jq moreutils python3
     ];
     postPatch = ''
       ${patchAwayGrafanaE2E}
@@ -67,12 +56,12 @@ buildGoModule rec {
     dontInstall = true;
     dontFixup = true;
     outputHashMode = "recursive";
-    outputHash = "sha256-70eMa8E483f/Bz7iy+4Seap1EfIdjD5krnt6W9CUows=";
+    outputHash = "sha256-QdyXSPshzugkDTJoUrJlHNuhPAyR9gae5Cbk8Q8FSl4=";
   };
 
   disallowedRequisites = [ offlineCache ];
 
-  vendorHash = "sha256-nGv/DBNnQ4AOJtrsYIGLCrV1xNmBN0dDf6u46R3TAHo=";
+  vendorHash = "sha256-cNkMVLXp3hPMcW0ilOM0VlrrDX/IsZaze+/6qlTfmRs=";
 
   nativeBuildInputs = [ wire yarn jq moreutils removeReferencesTo python3 ];
 
@@ -89,36 +78,6 @@ buildGoModule rec {
     GOARCH= CGO_ENABLED=0 go generate ./pkg/plugins/plugindef
     GOARCH= CGO_ENABLED=0 go generate ./kinds/gen.go
     GOARCH= CGO_ENABLED=0 go generate ./public/app/plugins/gen.go
-    GOARCH= CGO_ENABLED=0 go generate ./pkg/kindsys/report.go
-
-    # Work around `main module (github.com/grafana/grafana) does not contain package github.com/grafana/grafana/pkg/util/xorm`.
-    # Apparently these files confuse the dependency resolution for the go builder implemented here.
-    rm pkg/util/xorm/go.{mod,sum}
-
-    # The testcase makes an API call against grafana.com:
-    #
-    # [...]
-    # grafana> t=2021-12-02T14:24:58+0000 lvl=dbug msg="Failed to get latest.json repo from github.com" logger=update.checker error="Get \"https://raw.githubusercontent.com/grafana/grafana/main/latest.json\": dial tcp: lookup raw.githubusercontent.com on [::1]:53: read udp [::1]:36391->[::1]:53: read: connection refused"
-    # grafana> t=2021-12-02T14:24:58+0000 lvl=dbug msg="Failed to get plugins repo from grafana.com" logger=plugin.manager error="Get \"https://grafana.com/api/plugins/versioncheck?slugIn=&grafanaVersion=\": dial tcp: lookup grafana.com on [::1]:53: read udp [::1]:41796->[::1]:53: read: connection refused"
-    ${skipTest 1 "Request is not forbidden if from an admin" "pkg/tests/api/plugins/api_plugins_test.go"}
-
-    # Skip a flaky test (https://github.com/NixOS/nixpkgs/pull/126928#issuecomment-861424128)
-    ${skipTest 2 "it should change folder successfully and return correct result" "pkg/services/libraryelements/libraryelements_patch_test.go"}
-
-    # Skip flaky tests (https://logs.ofborg.org/?key=nixos/nixpkgs.263185&attempt_id=5b056a17-67a7-4b74-9dc7-888eb1d6c2dd)
-    ${skipTest 1 "TestIntegrationRulerAccess" "pkg/tests/api/alerting/api_alertmanager_test.go"}
-    ${skipTest 1 "TestIntegrationRulePause" "pkg/tests/api/alerting/api_ruler_test.go"}
-
-    # main module (github.com/grafana/grafana) does not contain package github.com/grafana/grafana/scripts/go
-    rm -r scripts/go
-
-    # Requires making API calls against storage.googleapis.com:
-    #
-    # [...]
-    # grafana> 2023/08/24 08:30:23 failed to copy objects, err: Post "https://storage.googleapis.com/upload/storage/v1/b/grafana-testing-repo/o?alt=json&name=test-path%2Fbuild%2FTestCopyLocalDir2194093976%2F001%2Ffile2.txt&prettyPrint=false&projection=full&uploadType=multipart": dial tcp: lookup storage.googleapis.com on [::1]:53: read udp [::1]:36436->[::1]:53: read: connection refused
-    # grafana> panic: test timed out after 10m0s
-    rm pkg/build/gcloud/storage/gsutil_test.go
-
     # Setup node_modules
     export HOME="$(mktemp -d)"
 
@@ -175,7 +134,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Gorgeous metric viz, dashboards & editors for Graphite, InfluxDB & OpenTSDB";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     homepage = "https://grafana.com";
     maintainers = with maintainers; [ offline fpletz willibutz globin ma27 Frostman ];
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/servers/monitoring/karma/default.nix b/nixpkgs/pkgs/servers/monitoring/karma/default.nix
index 5bc19740d8de..c27bffa3598f 100644
--- a/nixpkgs/pkgs/servers/monitoring/karma/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/karma/default.nix
@@ -62,6 +62,7 @@ buildGoModule rec {
   meta = with lib; {
     changelog = "https://github.com/prymitive/karma/blob/${src.rev}/CHANGELOG.md";
     description = "Alert dashboard for Prometheus Alertmanager";
+    mainProgram = "karma";
     homepage = "https://karma-dashboard.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ nukaduka ];
diff --git a/nixpkgs/pkgs/servers/monitoring/laurel/default.nix b/nixpkgs/pkgs/servers/monitoring/laurel/default.nix
index a667d1d442b1..22de6d4ebb6f 100644
--- a/nixpkgs/pkgs/servers/monitoring/laurel/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/laurel/default.nix
@@ -1,33 +1,21 @@
 { acl
 , fetchFromGitHub
-, fetchpatch
 , lib
 , rustPlatform
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "laurel";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "threathunters-io";
     repo = "laurel";
     rev = "refs/tags/v${version}";
-    hash = "sha256-lWVrp0ytomrQBSDuQCMFJpSuAuwjSYPwoE4yh/WO2ls=";
+    hash = "sha256-dGgBcugIQ3ZPnqyTw6wRMN2PZLm6GqobeFZ1/uzMKbs=";
   };
 
-  cargoHash = "sha256-GY7vpst+Epsy/x/ths6pwtGQgM6Bx0KI+NsCMFCBujE=";
-
-  cargoPatches = [
-    # Upstream forgot to bump the Cargo.lock before tagging the release.
-    # This patch is the first commit immediately after the tag fixing this mistake.
-    # Needs to be removed next release.
-    (fetchpatch {
-      name = "Cargo-lock-version-bump.patch";
-      url = "https://github.com/threathunters-io/laurel/commit/f38393d1098e8f75394f83ad3da5c1160fb96652.patch";
-      hash = "sha256-x+7p21X38KYqLclFtGnLO5nOHz819+XTaSPMvDbSo/I=";
-    })
-  ];
+  cargoHash = "sha256-8JNLssWTCfwrfQ/jg/rj7BUo9bCNCsM2RDwPI7cacRw=";
 
   nativeBuildInputs = [ rustPlatform.bindgenHook ];
   buildInputs = [ acl ];
diff --git a/nixpkgs/pkgs/servers/monitoring/loki/default.nix b/nixpkgs/pkgs/servers/monitoring/loki/default.nix
index 2578bb5a0405..2935b9d0bf4c 100644
--- a/nixpkgs/pkgs/servers/monitoring/loki/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/loki/default.nix
@@ -8,14 +8,14 @@
 }:
 
 buildGoModule rec {
-  version = "2.9.5";
+  version = "2.9.6";
   pname = "grafana-loki";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "loki";
     rev = "v${version}";
-    hash = "sha256-+X9ODzyIaeizLItUqorDdvgpIOPML+MzgwmyKbes9dA=";
+    hash = "sha256-79hK7axHf6soku5DvdXkE/0K4WKc4pnS9VMbVc1FS2I=";
   };
 
   vendorHash = null;
@@ -52,6 +52,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Like Prometheus, but for logs";
+    mainProgram = "promtail";
     license = with licenses; [ agpl3Only asl20 ];
     homepage = "https://grafana.com/oss/loki/";
     changelog = "https://github.com/grafana/loki/releases/tag/v${version}";
diff --git a/nixpkgs/pkgs/servers/monitoring/longview/default.nix b/nixpkgs/pkgs/servers/monitoring/longview/default.nix
index d2cc7c040e5d..cfd9ddab9a2c 100644
--- a/nixpkgs/pkgs/servers/monitoring/longview/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/longview/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.linode.com/longview";
     description = "Collects all of your system-level metrics and sends them to Linode";
+    mainProgram = "longview";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.rvl ];
     inherit version;
diff --git a/nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix b/nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix
index b99309fb05e5..a240c1aee990 100644
--- a/nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/mackerel-agent/default.nix
@@ -2,20 +2,20 @@
 
 buildGoModule rec {
   pname = "mackerel-agent";
-  version = "0.79.0";
+  version = "0.80.0";
 
   src = fetchFromGitHub {
     owner = "mackerelio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UKSrNUKS7VYK/hcKdNetaq6HNPqZyK7VtlJZjoyxU6o=";
+    sha256 = "sha256-ETM7OTJEdySej9wrV9sth1JCJAtfBVdsPH8ndOBV118=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
   nativeCheckInputs = lib.optionals (!stdenv.isDarwin) [ nettools ];
   buildInputs = lib.optionals (!stdenv.isDarwin) [ iproute2 ];
 
-  vendorHash = "sha256-AnkjmgcFSI8RadfTdtCk+NCiAw+NecfaU/vc7WOgbuk=";
+  vendorHash = "sha256-pCUHDHKNaSoIPB3fS+Jf953YMI5cXcUOLF+YP62iPMo=";
 
   subPackages = [ "." ];
 
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "System monitoring service for mackerel.io";
+    mainProgram = "mackerel-agent";
     homepage = "https://github.com/mackerelio/mackerel-agent";
     license = licenses.asl20;
     maintainers = with maintainers; [ midchildan ];
diff --git a/nixpkgs/pkgs/servers/monitoring/matrix-alertmanager/default.nix b/nixpkgs/pkgs/servers/monitoring/matrix-alertmanager/default.nix
index 80685e94662c..a5c6212f6c8e 100644
--- a/nixpkgs/pkgs/servers/monitoring/matrix-alertmanager/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/matrix-alertmanager/default.nix
@@ -27,6 +27,7 @@ buildNpmPackage rec {
   meta = with lib; {
     changelog = "https://github.com/jaywink/matrix-alertmanager/blob/${src.rev}/CHANGELOG.md";
     description = "Bot to receive Alertmanager webhook events and forward them to chosen rooms";
+    mainProgram = "matrix-alertmanager";
     homepage = "https://github.com/jaywink/matrix-alertmanager";
     license = licenses.mit;
     maintainers = with maintainers; [ yuka ];
diff --git a/nixpkgs/pkgs/servers/monitoring/munin/default.nix b/nixpkgs/pkgs/servers/monitoring/munin/default.nix
index ad5c6e36a62e..c86d08cd6871 100644
--- a/nixpkgs/pkgs/servers/monitoring/munin/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/munin/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, makeWrapper, which, coreutils, rrdtool, perlPackages
-, python3, ruby, jre, nettools, bc
+, python3, ruby, jre8, nettools, bc
 }:
 
 stdenv.mkDerivation rec {
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
     perlPackages.DBDPg
     python3
     ruby
-    jre
+    jre8
     # tests
     perlPackages.TestLongString
     perlPackages.TestDifferences
@@ -106,7 +106,7 @@ stdenv.mkDerivation rec {
     "PERL=${perlPackages.perl.outPath}/bin/perl"
     "PYTHON=${python3.interpreter}"
     "RUBY=${ruby.outPath}/bin/ruby"
-    "JAVARUN=${jre.outPath}/bin/java"
+    "JAVARUN=${jre8.outPath}/bin/java"
     "PLUGINUSER=munin"
   ];
 
diff --git a/nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix b/nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
index 783384eb9610..9572c1d2c87e 100644
--- a/nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
+++ b/nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "check_ssl_cert";
-  version = "2.80.0";
+  version = "2.81.0";
 
   src = fetchFromGitHub {
     owner = "matteocorti";
     repo = "check_ssl_cert";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1KYolUA5AZ9fQLfNb4UE1WlMTj6GiAnNszPTLlERBvc=";
+    hash = "sha256-6C6shxu9ze0ffx6Mg2K9TkqJl98Wz7loTcCptg92IY8=";
   };
 
   nativeBuildInputs = [
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Nagios plugin to check the CA and validity of an X.509 certificate";
+    mainProgram = "check_ssl_cert";
     homepage = "https://github.com/matteocorti/check_ssl_cert";
     changelog = "https://github.com/matteocorti/check_ssl_cert/releases/tag/v${version}";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_systemd.nix b/nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_systemd.nix
index 9904147420aa..fe1500d53f54 100644
--- a/nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_systemd.nix
+++ b/nixpkgs/pkgs/servers/monitoring/nagios/plugins/check_systemd.nix
@@ -28,6 +28,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Nagios / Icinga monitoring plugin to check systemd for failed units";
+    mainProgram = "check_systemd";
     inherit (src.meta) homepage;
     changelog = "https://github.com/Josef-Friedrich/check_systemd/releases";
     maintainers = with maintainers; [ symphorien ];
diff --git a/nixpkgs/pkgs/servers/monitoring/nagios/plugins/smartmon.nix b/nixpkgs/pkgs/servers/monitoring/nagios/plugins/smartmon.nix
index 42554cfafe99..25adfefe84e2 100644
--- a/nixpkgs/pkgs/servers/monitoring/nagios/plugins/smartmon.nix
+++ b/nixpkgs/pkgs/servers/monitoring/nagios/plugins/smartmon.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Nagios-Plugin that uses smartmontools to check disk health status and temperature";
+    mainProgram = "check_smartmon";
     homepage = "https://github.com/driehuis/Nagios_check_smartmon";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ mariaa144 ];
diff --git a/nixpkgs/pkgs/servers/monitoring/nagios/plugins/zfs.nix b/nixpkgs/pkgs/servers/monitoring/nagios/plugins/zfs.nix
index 724aa498afb7..0ec84722d201 100644
--- a/nixpkgs/pkgs/servers/monitoring/nagios/plugins/zfs.nix
+++ b/nixpkgs/pkgs/servers/monitoring/nagios/plugins/zfs.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Check the health, capacity, fragmentation, and other things for use with Nagios monitoring";
+    mainProgram = "check_zfs";
     homepage = "https://github.com/zlacelle/nagios_check_zfs_linux";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ mariaa144 ];
diff --git a/nixpkgs/pkgs/servers/monitoring/openobserve/Cargo.lock b/nixpkgs/pkgs/servers/monitoring/openobserve/Cargo.lock
index eaff98567453..81665794e141 100644
--- a/nixpkgs/pkgs/servers/monitoring/openobserve/Cargo.lock
+++ b/nixpkgs/pkgs/servers/monitoring/openobserve/Cargo.lock
@@ -326,7 +326,7 @@ dependencies = [
  "actix-http",
  "actix-web",
  "futures-util",
- "opentelemetry 0.21.0",
+ "opentelemetry",
  "opentelemetry-semantic-conventions",
  "serde",
 ]
@@ -1181,7 +1181,7 @@ dependencies = [
  "hyper-rustls",
  "lazy_static",
  "pin-project-lite",
- "rustls",
+ "rustls 0.21.10",
  "tokio",
  "tower",
  "tracing",
@@ -1824,6 +1824,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "chumsky"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9"
+dependencies = [
+ "hashbrown 0.14.3",
+ "stacker",
+]
+
+[[package]]
 name = "ciborium"
 version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2072,6 +2082,7 @@ dependencies = [
  "hex",
  "indexmap 2.1.0",
  "itertools 0.12.1",
+ "lettre",
  "log",
  "memchr",
  "murmur3",
@@ -2088,7 +2099,7 @@ dependencies = [
  "sysinfo",
  "tokio",
  "tracing",
- "tracing-log 0.2.0",
+ "tracing-log",
  "tracing-subscriber",
  "utoipa",
  "walkdir",
@@ -2784,6 +2795,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "email-encoding"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dbfb21b9878cf7a348dcb8559109aabc0ec40d69924bd706fa5149846c4fef75"
+dependencies = [
+ "base64 0.21.7",
+ "memchr",
+]
+
+[[package]]
+name = "email_address"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2153bd83ebc09db15bcbdc3e2194d901804952e3dc96967e1cd3b0c5c32d112"
+
+[[package]]
 name = "ena"
 version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3532,10 +3559,10 @@ dependencies = [
  "http 0.2.11",
  "hyper",
  "log",
- "rustls",
+ "rustls 0.21.10",
  "rustls-native-certs",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
 ]
 
 [[package]]
@@ -3895,6 +3922,36 @@ dependencies = [
 ]
 
 [[package]]
+name = "lettre"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "357ff5edb6d8326473a64c82cf41ddf78ab116f89668c50c4fac1b321e5e80f4"
+dependencies = [
+ "async-trait",
+ "base64 0.21.7",
+ "chumsky",
+ "email-encoding",
+ "email_address",
+ "fastrand 2.0.1",
+ "futures-io",
+ "futures-util",
+ "hostname",
+ "httpdate",
+ "idna",
+ "mime",
+ "nom",
+ "percent-encoding",
+ "quoted_printable",
+ "rustls 0.22.2",
+ "rustls-pemfile 2.0.0",
+ "socket2",
+ "tokio",
+ "tokio-rustls 0.25.0",
+ "url",
+ "webpki-roots 0.26.1",
+]
+
+[[package]]
 name = "lexical-core"
 version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4291,9 +4348,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.10"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "log",
@@ -4625,7 +4682,7 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
 
 [[package]]
 name = "openobserve"
-version = "0.8.1"
+version = "0.9.0"
 dependencies = [
  "actix-cors",
  "actix-multipart",
@@ -4671,15 +4728,17 @@ dependencies = [
  "ipnetwork 0.20.0",
  "itertools 0.12.1",
  "jsonwebtoken",
+ "lettre",
  "log",
  "maxminddb",
  "memory-stats",
  "mimalloc",
  "object_store",
  "once_cell",
- "opentelemetry 0.18.0",
+ "opentelemetry",
  "opentelemetry-otlp",
- "opentelemetry-proto 0.2.0",
+ "opentelemetry-proto",
+ "opentelemetry_sdk",
  "parking_lot 0.12.1",
  "parquet",
  "prometheus",
@@ -4709,8 +4768,8 @@ dependencies = [
  "time",
  "tokio",
  "tokio-stream",
- "tonic 0.8.3",
- "tonic-build 0.8.4",
+ "tonic 0.9.2",
+ "tonic-build 0.9.2",
  "tracing",
  "tracing-appender",
  "tracing-opentelemetry",
@@ -4732,26 +4791,6 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "opentelemetry"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69d6c3d7288a106c0a363e4b0e8d308058d56902adefb16f4936f417ffef086e"
-dependencies = [
- "opentelemetry_api 0.18.0",
- "opentelemetry_sdk 0.18.0",
-]
-
-[[package]]
-name = "opentelemetry"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4b8347cc26099d3aeee044065ecc3ae11469796b4d65d065a23a584ed92a6f"
-dependencies = [
- "opentelemetry_api 0.19.0",
- "opentelemetry_sdk 0.19.0",
-]
-
-[[package]]
-name = "opentelemetry"
 version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1e32339a5dc40459130b3bd269e9892439f55b33e772d2a9d402a789baaf4e8a"
@@ -4768,66 +4807,50 @@ dependencies = [
 
 [[package]]
 name = "opentelemetry-http"
-version = "0.7.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1edc79add46364183ece1a4542592ca593e6421c60807232f5b8f7a31703825d"
+checksum = "7f51189ce8be654f9b5f7e70e49967ed894e84a06fc35c6c042e64ac1fc5399e"
 dependencies = [
  "async-trait",
  "bytes",
  "http 0.2.11",
- "opentelemetry_api 0.18.0",
+ "opentelemetry",
  "reqwest",
 ]
 
 [[package]]
 name = "opentelemetry-otlp"
-version = "0.11.0"
+version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1c928609d087790fc936a1067bdc310ae702bdf3b090c3f281b713622c8bbde"
+checksum = "f24cda83b20ed2433c68241f918d0f6fdec8b1d43b7a9590ab4420c5095ca930"
 dependencies = [
  "async-trait",
- "futures",
- "futures-util",
+ "futures-core",
  "http 0.2.11",
- "opentelemetry 0.18.0",
+ "opentelemetry",
  "opentelemetry-http",
- "opentelemetry-proto 0.1.0",
+ "opentelemetry-proto",
+ "opentelemetry-semantic-conventions",
+ "opentelemetry_sdk",
  "prost 0.11.9",
  "reqwest",
  "serde",
  "thiserror",
  "tokio",
- "tonic 0.8.3",
-]
-
-[[package]]
-name = "opentelemetry-proto"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d61a2f56df5574508dd86aaca016c917489e589ece4141df1b5e349af8d66c28"
-dependencies = [
- "futures",
- "futures-util",
- "opentelemetry 0.18.0",
- "prost 0.11.9",
- "tonic 0.8.3",
- "tonic-build 0.8.4",
+ "tonic 0.9.2",
 ]
 
 [[package]]
 name = "opentelemetry-proto"
-version = "0.2.0"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "045f8eea8c0fa19f7d48e7bc3128a39c2e5c533d5c61298c548dfefc1064474c"
+checksum = "a2e155ce5cc812ea3d1dffbd1539aed653de4bf4882d60e6e04dcf0901d674e1"
 dependencies = [
- "futures",
- "futures-util",
- "opentelemetry 0.19.0",
+ "opentelemetry",
+ "opentelemetry_sdk",
  "prost 0.11.9",
- "protobuf",
  "serde",
- "serde_json",
- "tonic 0.8.3",
+ "tonic 0.9.2",
 ]
 
 [[package]]
@@ -4836,84 +4859,33 @@ version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f5774f1ef1f982ef2a447f6ee04ec383981a3ab99c8e77a1a7b30182e65bbc84"
 dependencies = [
- "opentelemetry 0.21.0",
-]
-
-[[package]]
-name = "opentelemetry_api"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c24f96e21e7acc813c7a8394ee94978929db2bcc46cf6b5014fc612bf7760c22"
-dependencies = [
- "fnv",
- "futures-channel",
- "futures-util",
- "indexmap 1.9.3",
- "js-sys",
- "once_cell",
- "pin-project-lite",
- "thiserror",
-]
-
-[[package]]
-name = "opentelemetry_api"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed41783a5bf567688eb38372f2b7a8530f5a607a4b49d38dd7573236c23ca7e2"
-dependencies = [
- "fnv",
- "futures-channel",
- "futures-util",
- "indexmap 1.9.3",
- "once_cell",
- "pin-project-lite",
- "thiserror",
- "urlencoding",
+ "opentelemetry",
 ]
 
 [[package]]
 name = "opentelemetry_sdk"
-version = "0.18.0"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ca41c4933371b61c2a2f214bf16931499af4ec90543604ec828f7a625c09113"
+checksum = "2f16aec8a98a457a52664d69e0091bac3a0abd18ead9b641cb00202ba4e0efe4"
 dependencies = [
  "async-trait",
  "crossbeam-channel",
- "dashmap",
- "fnv",
  "futures-channel",
  "futures-executor",
  "futures-util",
+ "glob",
  "once_cell",
- "opentelemetry_api 0.18.0",
+ "opentelemetry",
+ "ordered-float 4.2.0",
  "percent-encoding",
  "rand",
+ "serde_json",
  "thiserror",
  "tokio",
  "tokio-stream",
 ]
 
 [[package]]
-name = "opentelemetry_sdk"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b3a2a91fdbfdd4d212c0dcc2ab540de2c2bcbbd90be17de7a7daf8822d010c1"
-dependencies = [
- "async-trait",
- "crossbeam-channel",
- "dashmap",
- "fnv",
- "futures-channel",
- "futures-executor",
- "futures-util",
- "once_cell",
- "opentelemetry_api 0.19.0",
- "percent-encoding",
- "rand",
- "thiserror",
-]
-
-[[package]]
 name = "option-ext"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5568,9 +5540,14 @@ name = "protobuf"
 version = "2.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94"
+
+[[package]]
+name = "psm"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
 dependencies = [
- "serde",
- "serde_derive",
+ "cc",
 ]
 
 [[package]]
@@ -5846,7 +5823,7 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls",
+ "rustls 0.21.10",
  "rustls-native-certs",
  "rustls-pemfile 1.0.4",
  "serde",
@@ -5855,7 +5832,7 @@ dependencies = [
  "sync_wrapper",
  "system-configuration",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tokio-util",
  "tower-service",
  "url",
@@ -5863,7 +5840,7 @@ dependencies = [
  "wasm-bindgen-futures",
  "wasm-streams",
  "web-sys",
- "webpki-roots",
+ "webpki-roots 0.25.4",
  "winreg",
 ]
 
@@ -6103,11 +6080,25 @@ checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
  "ring 0.17.7",
- "rustls-webpki",
+ "rustls-webpki 0.101.7",
  "sct",
 ]
 
 [[package]]
+name = "rustls"
+version = "0.22.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
+dependencies = [
+ "log",
+ "ring 0.17.7",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.2",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "rustls-native-certs"
 version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6155,6 +6146,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-webpki"
+version = "0.102.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+dependencies = [
+ "ring 0.17.7",
+ "rustls-pki-types",
+ "untrusted 0.9.0",
+]
+
+[[package]]
 name = "rustversion"
 version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6680,7 +6682,7 @@ dependencies = [
  "once_cell",
  "paste",
  "percent-encoding",
- "rustls",
+ "rustls 0.21.10",
  "rustls-pemfile 1.0.4",
  "serde",
  "serde_json",
@@ -6692,7 +6694,7 @@ dependencies = [
  "tokio-stream",
  "tracing",
  "url",
- "webpki-roots",
+ "webpki-roots 0.25.4",
 ]
 
 [[package]]
@@ -6849,6 +6851,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
 
 [[package]]
+name = "stacker"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
+dependencies = [
+ "cc",
+ "cfg-if 1.0.0",
+ "libc",
+ "psm",
+ "winapi 0.3.9",
+]
+
+[[package]]
 name = "static_assertions"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7281,7 +7296,18 @@ version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
 dependencies = [
- "rustls",
+ "rustls 0.21.10",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+dependencies = [
+ "rustls 0.22.2",
+ "rustls-pki-types",
  "tokio",
 ]
 
@@ -7340,14 +7366,13 @@ dependencies = [
 
 [[package]]
 name = "tonic"
-version = "0.8.3"
+version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb"
+checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a"
 dependencies = [
- "async-stream",
  "async-trait",
  "axum",
- "base64 0.13.1",
+ "base64 0.21.7",
  "bytes",
  "flate2",
  "futures-core",
@@ -7360,15 +7385,12 @@ dependencies = [
  "percent-encoding",
  "pin-project",
  "prost 0.11.9",
- "prost-derive 0.11.9",
  "tokio",
  "tokio-stream",
- "tokio-util",
  "tower",
  "tower-layer",
  "tower-service",
  "tracing",
- "tracing-futures",
 ]
 
 [[package]]
@@ -7390,10 +7412,10 @@ dependencies = [
  "percent-encoding",
  "pin-project",
  "prost 0.12.3",
- "rustls",
+ "rustls 0.21.10",
  "rustls-pemfile 1.0.4",
  "tokio",
- "tokio-rustls",
+ "tokio-rustls 0.24.1",
  "tokio-stream",
  "tower",
  "tower-layer",
@@ -7403,9 +7425,9 @@ dependencies = [
 
 [[package]]
 name = "tonic-build"
-version = "0.8.4"
+version = "0.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bf5e9b9c0f7e0a7c027dcfaba7b2c60816c7049171f679d99ee2ff65d0de8c4"
+checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07"
 dependencies = [
  "prettyplease 0.1.25",
  "proc-macro2",
@@ -7505,27 +7527,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "tracing-futures"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
-dependencies = [
- "pin-project",
- "tracing",
-]
-
-[[package]]
-name = "tracing-log"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2"
-dependencies = [
- "log",
- "once_cell",
- "tracing-core",
-]
-
-[[package]]
 name = "tracing-log"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -7538,16 +7539,20 @@ dependencies = [
 
 [[package]]
 name = "tracing-opentelemetry"
-version = "0.18.0"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21ebb87a95ea13271332df069020513ab70bdb5637ca42d6e492dc3bbbad48de"
+checksum = "c67ac25c5407e7b961fafc6f7e9aa5958fd297aada2d20fa2ae1737357e55596"
 dependencies = [
+ "js-sys",
  "once_cell",
- "opentelemetry 0.18.0",
+ "opentelemetry",
+ "opentelemetry_sdk",
+ "smallvec",
  "tracing",
  "tracing-core",
- "tracing-log 0.1.4",
+ "tracing-log",
  "tracing-subscriber",
+ "web-time",
 ]
 
 [[package]]
@@ -7577,7 +7582,7 @@ dependencies = [
  "thread_local",
  "tracing",
  "tracing-core",
- "tracing-log 0.2.0",
+ "tracing-log",
  "tracing-serde",
 ]
 
@@ -8078,6 +8083,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "web-time"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
 name = "webbrowser"
 version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -8101,6 +8116,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
 
 [[package]]
+name = "webpki-roots"
+version = "0.26.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
+dependencies = [
+ "rustls-pki-types",
+]
+
+[[package]]
 name = "which"
 version = "4.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/nixpkgs/pkgs/servers/monitoring/openobserve/default.nix b/nixpkgs/pkgs/servers/monitoring/openobserve/default.nix
index 0f1bb02d55f2..59a0d203e258 100644
--- a/nixpkgs/pkgs/servers/monitoring/openobserve/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/openobserve/default.nix
@@ -1,7 +1,6 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
-, fetchpatch
 , pkg-config
 , protobuf
 , bzip2
@@ -16,20 +15,20 @@
 }:
 
 let
-  version = "0.8.1";
+  version = "0.9.1";
   src = fetchFromGitHub {
     owner = "openobserve";
     repo = "openobserve";
     rev = "v${version}";
-    hash = "sha256-J8TuaWjtuR39XA7tizyI+DFkpOaLFweM+/9VImGj8UE=";
+    hash = "sha256-AQxSR2cMkNst5YEv4TqVNgdriMsg/0ed5YN4W8qZKxM=";
   };
   web = buildNpmPackage {
     inherit src version;
     pname = "openobserve-ui";
 
-    sourceRoot = "source/web";
+    sourceRoot = "${src.name}/web";
 
-    npmDepsHash = "sha256-RNUCR80ewFt9F/VHv7kXLa87h0fz0YBp+9gSOUhtrdU=";
+    npmDepsHash = "sha256-c82NLNLfqQrS/jv7ixpLCYDMEUtx6+Mm8cSwvVis2fc=";
 
     preBuild = ''
       # Patch vite config to not open the browser to visualize plugin composition
@@ -56,12 +55,6 @@ rustPlatform.buildRustPackage {
   inherit version src;
 
   patches = [
-    (fetchpatch {
-      name = "fix-test-hash-partition.patch";
-      url = "https://github.com/openobserve/openobserve/commit/24919333d6b6696f0f9d9aff0a883431481e8fce.patch";
-      includes = ["src/common/meta/stream.rs"];
-      hash = "sha256-GB3Pgmp1swJt6ESgKL2eWOZ3jBcsN0r+5Dxasgg50D4=";
-    })
     # prevent using git to determine version info during build time
     ./build.rs.patch
   ];
diff --git a/nixpkgs/pkgs/servers/monitoring/phlare/default.nix b/nixpkgs/pkgs/servers/monitoring/phlare/default.nix
index 35d6d5fd80cf..bc2c7cee63e5 100644
--- a/nixpkgs/pkgs/servers/monitoring/phlare/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/phlare/default.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Grafana Phlare is an open source database that provides fast, scalable, highly available, and efficient storage and querying of profiling data.";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     homepage = "https://grafana.com/oss/phlare";
     maintainers = with maintainers; [ cathalmullan ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/plugins/openvpn.nix b/nixpkgs/pkgs/servers/monitoring/plugins/openvpn.nix
index 2b7e69ab8f0b..3ae474d6d9e8 100644
--- a/nixpkgs/pkgs/servers/monitoring/plugins/openvpn.nix
+++ b/nixpkgs/pkgs/servers/monitoring/plugins/openvpn.nix
@@ -16,6 +16,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A nagios/icinga/sensu check plugin for OpenVPN";
+    mainProgram = "check_openvpn";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/plugins/wmic-bin.nix b/nixpkgs/pkgs/servers/monitoring/plugins/wmic-bin.nix
index 4cfbcd254133..64cf171afea1 100644
--- a/nixpkgs/pkgs/servers/monitoring/plugins/wmic-bin.nix
+++ b/nixpkgs/pkgs/servers/monitoring/plugins/wmic-bin.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "WMI client for Linux (binary)";
+    mainProgram = "wmic";
     homepage    = "https://www.openvas.org";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.mit;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix
index 5bb98203fa2d..1f6dd51d8989 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Provides a Prometheus exporter for the apcupsd Network Information Server (NIS)";
+    mainProgram = "apcupsd_exporter";
     homepage = "https://github.com/mdlayher/apcupsd_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ _1000101 mdlayher ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix
index 54b5c8370bdf..b9a11f47d8db 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/artifactory-exporter.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "JFrog Artifactory Prometheus Exporter";
+    mainProgram = "artifactory_exporter";
     homepage = "https://github.com/peimanja/artifactory_exporter";
     changelog = "https://github.com/peimanja/artifactory_exporter/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/atlas-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/atlas-exporter.nix
index ce40a93e66f8..c46959598149 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/atlas-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/atlas-exporter.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter for RIPE Atlas measurement results ";
+    mainProgram = "atlas_exporter";
     homepage = "https://github.com/czerwonk/atlas_exporter";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ clerie ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix
index dd0ea4ec5ec4..b3855f532e9a 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Exports Prometheus metrics about S3 buckets and objects";
+    mainProgram = "s3_exporter";
     homepage = "https://github.com/ribbybibby/s3_exporter";
     license = licenses.asl20;
     maintainers = [ maintainers.mmahut ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix
index 1ee84e5e703a..8b8516f7967f 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter for bind9 server";
+    mainProgram = "bind_exporter";
     homepage = "https://github.com/digitalocean/bind_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ rtreffer ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/bird-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/bird-exporter.nix
index f61e400d860f..25a90e1fdb0a 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/bird-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/bird-exporter.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter for the bird routing daemon";
+    mainProgram = "bird_exporter";
     homepage = "https://github.com/czerwonk/bird_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ lukegb ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix
index f2d50fe85014..4abd65235fab 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix
@@ -34,6 +34,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Prometheus exporter for Bitcoin Core nodes";
+    mainProgram = "bitcoind-monitor.py";
     homepage = "https://github.com/jvstein/bitcoin-prometheus-exporter";
     license = licenses.bsd3;
     maintainers = with maintainers; [ mmilata ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
index 8025cffca843..8c929353a820 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Blackbox probing of endpoints over HTTP, HTTPS, DNS, TCP and ICMP";
+    mainProgram = "blackbox_exporter";
     homepage = "https://github.com/prometheus/blackbox_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ globin fpletz willibutz Frostman ma27 ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/cloudflare-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/cloudflare-exporter.nix
index 6d15188aaebe..7abcfeb32887 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/cloudflare-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/cloudflare-exporter.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus Cloudflare Exporter";
+    mainProgram = "cloudflare-exporter";
     homepage = "https://github.com/lablabs/cloudflare-exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ bbigras ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix
index 1ff0ad38f47a..7997bacdb1bf 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Relay server for exporting metrics from collectd to Prometheus";
+    mainProgram = "collectd_exporter";
     homepage = "https://github.com/prometheus/collectd_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ benley ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/consul-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/consul-exporter.nix
index a365bda5202a..4cc241af7c65 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/consul-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/consul-exporter.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter for Consul metrics";
+    mainProgram = "consul_exporter";
     homepage = "https://github.com/prometheus/consul_exporter";
     changelog = "https://github.com/prometheus/consul_exporter/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/dcgm-exporter/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/dcgm-exporter/default.nix
index c995d4036ae0..7c4d2cfae06e 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/dcgm-exporter/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/dcgm-exporter/default.nix
@@ -48,7 +48,7 @@ buildGoModule rec {
   vendorHash = "sha256-Fjvx15e/psxoqoS6c6GhiQfe7g2aI40EmPR26xLhrzg=";
 
   nativeBuildInputs = [
-    cudaPackages.autoAddOpenGLRunpathHook
+    cudaPackages.autoAddDriverRunpath
   ];
 
   # Tests try to interact with running DCGM service.
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/dmarc-metrics-exporter/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/dmarc-metrics-exporter/default.nix
index 2b2c5354ca1c..3968f0b5c11c 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/dmarc-metrics-exporter/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/dmarc-metrics-exporter/default.nix
@@ -53,6 +53,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = {
     description = "Export Prometheus metrics from DMARC reports";
+    mainProgram = "dmarc-metrics-exporter";
     homepage = "https://github.com/jgosmann/dmarc-metrics-exporter";
     changelog = "https://github.com/jgosmann/dmarc-metrics-exporter/blob/v${version}/CHANGELOG.rst";
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
index f6af24264fe9..eb2297648b56 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "A dnsmasq exporter for Prometheus";
+    mainProgram = "dnsmasq_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ willibutz globin ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix
index 5f5ce702cebc..26afdca834a3 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/domain-exporter.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/caarlos0/domain_exporter";
     description = "Exports the expiration time of your domains as prometheus metrics";
+    mainProgram = "domain_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ mmilata prusnak peterhoeg caarlos0 ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix
index ff7156360a9c..7041c9df29d4 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix
@@ -20,6 +20,7 @@ buildGoPackage rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Prometheus metrics exporter for Dovecot";
+    mainProgram = "dovecot_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ willibutz globin ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/exportarr/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/exportarr/default.nix
index 00b4690c5619..a451e46df2ab 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/exportarr/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/exportarr/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "AIO Prometheus Exporter for Sonarr, Radarr or Lidarr";
+    mainProgram = "exportarr";
     homepage = "https://github.com/onedr0p/exportarr";
     changelog = "https://github.com/onedr0p/exportarr/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/flow-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/flow-exporter.nix
index 1b9f05dae3e2..e5fa4a7dcf83 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/flow-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/flow-exporter.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Export network flows from kafka to Prometheus";
+    mainProgram = "flow-exporter";
     homepage = "https://github.com/neptune-networks/flow-exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ kloenk ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix
index 99d306f9710d..d964f90cba44 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus Exporter for FRITZ!Box (TR64 and UPnP)";
+    mainProgram = "exporter";
     homepage = "https://github.com/mxschmitt/fritzbox_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ bachp flokli sbruder ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix
index ddcc080983df..8e86aa10b671 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus / OpenMetrics exporter for GitLab CI pipelines insights";
+    mainProgram = "gitlab-ci-pipelines-exporter";
     homepage = "https://github.com/mvisonneau/gitlab-ci-pipelines-exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ mmahut mvisonneau ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/graphite-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/graphite-exporter.nix
index 3c27d018d781..819a4c3947a1 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/graphite-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/graphite-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "graphite-exporter";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "prometheus";
     repo = "graphite_exporter";
     rev = "v${version}";
-    hash = "sha256-2u8grG5n0XkBS6zNxYrPyL+HP5/jEe/bXLt/1l759o4=";
+    hash = "sha256-KBqLPKd8XP7PbjHJu1DIQ2ir+Lyk7LEBaNjJCr91LP8=";
   };
 
-  vendorHash = "sha256-wt2eDCNZAss3zSqvXeKTlsrPfj8pMXKWa3Yb33uuW0M=";
+  vendorHash = "sha256-he2bmcTNkuKRsNGkn1IkhtOe+Eo/5RLWLYlNFWLo/As=";
 
   preCheck = let
     skippedTests = [
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/haproxy-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/haproxy-exporter.nix
index aa558bc8c9fd..6795885afd3d 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/haproxy-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/haproxy-exporter.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "HAProxy Exporter for the Prometheus monitoring system";
+    mainProgram = "haproxy_exporter";
     homepage = "https://github.com/prometheus/haproxy_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ benley ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/idrac-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/idrac-exporter.nix
index 3c1a0066be8a..1160984f0023 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/idrac-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/idrac-exporter.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Simple iDRAC exporter for Prometheus";
+    mainProgram = "idrac_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ codec ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/imap-mailstat-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/imap-mailstat-exporter.nix
index e603c2a8811d..bd06041d0209 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/imap-mailstat-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/imap-mailstat-exporter.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Export Prometheus-style metrics about how many emails you have in your INBOX and in additional configured folders";
+    mainProgram = "imap-mailstat-exporter";
     homepage = "https://github.com/bt909/imap-mailstat-exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ raboof ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/influxdb-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/influxdb-exporter.nix
index 07ef8febf3de..2690481b45f8 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/influxdb-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/influxdb-exporter.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter that accepts InfluxDB metrics";
+    mainProgram = "influxdb_exporter";
     homepage = "https://github.com/prometheus/influxdb_exporter";
     changelog = "https://github.com/prometheus/influxdb_exporter/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix
index 1b1ac3c62420..ae39f6c98f74 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/ipmi-exporter.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An IPMI exporter for Prometheus";
+    mainProgram = "ipmi_exporter";
     homepage = "https://github.com/prometheus-community/ipmi_exporter";
     changelog = "https://github.com/prometheus-community/ipmi_exporter/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix
index 5b90c26eed7e..13ce969b826c 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/jitsi-exporter.nix
@@ -16,6 +16,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Export Jitsi Videobridge metrics to Prometheus";
+    mainProgram = "jitsiexporter";
     homepage = "https://git.xsfx.dev/prometheus/jitsiexporter";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
index cf180de54a70..532461234763 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/jmx-httpserver.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/prometheus/jmx_exporter";
     description = "A process for exposing JMX Beans via HTTP for Prometheus consumption";
+    mainProgram = "jmx_prometheus_httpserver";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
     maintainers = [ maintainers.offline ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/junos-czerwonk-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/junos-czerwonk-exporter.nix
index 2b50c7850702..37631a00c679 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/junos-czerwonk-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/junos-czerwonk-exporter.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Exporter for metrics from devices running JunOS";
+    mainProgram = "junos_exporter";
     homepage = "https://github.com/czerwonk/junos_exporter";
     license = licenses.mit;
     maintainers = teams.wdz.members;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/kea-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/kea-exporter.nix
index 572fed8a99d9..f4965bd54fa8 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/kea-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/kea-exporter.nix
@@ -1,22 +1,28 @@
-{ lib, python3Packages, fetchPypi, nixosTests }:
+{ lib
+, python3Packages
+, fetchPypi
+, nixosTests
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "kea-exporter";
-  version = "0.5.1";
+  version = "0.7.0";
   format = "pyproject";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-rNGA5XEx9xVUP1SeDPgXcaqgDhgX6JFhRX9GM454P5A=";
+    pname = "kea_exporter";
+    inherit version;
+    hash = "sha256-kn2iwYWcyW90tgfWmzLF7rU06fJyLRzqYKNLOgu/Yqk=";
   };
 
   nativeBuildInputs = with python3Packages; [
-    pdm-pep517
+    pdm-backend
   ];
 
   propagatedBuildInputs = with python3Packages; [
     click
     prometheus-client
+    requests
   ];
 
   checkPhase = ''
@@ -25,11 +31,13 @@ python3Packages.buildPythonApplication rec {
   '';
 
   passthru.tests = {
-    inherit (nixosTests.prometheus-exporters) kea;
+    inherit (nixosTests) kea;
   };
 
   meta = with lib; {
+    changelog = "https://github.com/mweinelt/kea-exporter/blob/v${version}/HISTORY";
     description = "Export Kea Metrics in the Prometheus Exposition Format";
+    mainProgram = "kea-exporter";
     homepage = "https://github.com/mweinelt/kea-exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/keylight-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/keylight-exporter.nix
index d2c816c7433a..59dcd621ca72 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/keylight-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/keylight-exporter.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/mdlayher/keylight_exporter";
     description = "Prometheus exporter for Elgato Key Light devices";
+    mainProgram = "keylight_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ mdlayher ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/kthxbye.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/kthxbye.nix
index 897a58926d34..a0eb30f6819b 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/kthxbye.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/kthxbye.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus Alertmanager alert acknowledgement management daemon";
+    mainProgram = "kthxbye";
     homepage = "https://github.com/prymitive/kthxbye";
     license = licenses.asl20;
     maintainers = with maintainers; [ nukaduka ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/lnd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/lnd-exporter.nix
index e66ab8852f1d..707d59b78bfa 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/lnd-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/lnd-exporter.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/lightninglabs/lndmon";
     description = "Prometheus exporter for lnd (Lightning Network Daemon)";
+    mainProgram = "lndmon";
     license = licenses.mit;
     maintainers = with maintainers; [ mmilata ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/mail-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/mail-exporter.nix
index ae13becd0aed..851d297e760f 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/mail-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/mail-exporter.nix
@@ -24,6 +24,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "Export Prometheus-style metrics about mail server functionality";
+    mainProgram = "mailexporter";
     homepage = "https://github.com/cherti/mailexporter";
     license = licenses.gpl3;
     maintainers = with maintainers; [ willibutz globin ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
index 431b029db9f3..5d335f504bb3 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Prometheus MikroTik device(s) exporter";
+    mainProgram = "mikrotik-exporter";
     license = licenses.bsd3;
     maintainers = with maintainers; [ mmilata ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/minio-exporter/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/minio-exporter/default.nix
index 93e9bca3283d..504611848ca9 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/minio-exporter/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/minio-exporter/default.nix
@@ -27,6 +27,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "A Prometheus exporter for Minio cloud storage server";
+    mainProgram = "minio-exporter";
     homepage = "https://github.com/joe-pll/minio-exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ bachp ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix
index 271be41aee97..6975f2570435 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/mdlayher/modemmanager_exporter";
     description = "Prometheus exporter for ModemManager and its devices";
+    mainProgram = "modemmanager_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ mdlayher ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/mysqld-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/mysqld-exporter.nix
index 2e2bead90b35..598b3220e4a3 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/mysqld-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/mysqld-exporter.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter for MySQL server metrics";
+    mainProgram = "mysqld_exporter";
     homepage = "https://github.com/prometheus/mysqld_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ benley globin ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
index 11862b58e004..a233b34a18d9 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "NGINX Prometheus Exporter for NGINX and NGINX Plus";
+    mainProgram = "nginx-prometheus-exporter";
     homepage = "https://github.com/nginxinc/nginx-prometheus-exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ benley fpletz willibutz globin ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
index 8c8964ec093f..3883cdaff5cc 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Export metrics from Nginx access log files to Prometheus";
+    mainProgram = "prometheus-nginxlog-exporter";
     homepage = "https://github.com/martin-helmich/prometheus-nginxlog-exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ mmahut ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix
index 78d611cd3f92..bce3eaeaa408 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter for machine metrics";
+    mainProgram = "node_exporter";
     homepage = "https://github.com/prometheus/node_exporter";
     changelog = "https://github.com/prometheus/node_exporter/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/nut-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/nut-exporter.nix
index 7b1ea2087bed..c9ec09a92172 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/nut-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/nut-exporter.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter for Network UPS Tools";
+    mainProgram = "nut_exporter";
     homepage = "https://github.com/DRuggeri/nut_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ jhh ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/openldap-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/openldap-exporter.nix
index 3d574d1bb93f..49181699d65a 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/openldap-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/openldap-exporter.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/tomcz/openldap_exporter";
     description = "Simple service that scrapes metrics from OpenLDAP and exports them via HTTP for Prometheus consumption";
+    mainProgram = "openldap_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ ma27 ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/pgbouncer-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/pgbouncer-exporter.nix
index 57f51e4997c5..ca62b415bfb9 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/pgbouncer-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/pgbouncer-exporter.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter for PgBouncer";
+    mainProgram = "pgbouncer_exporter";
     homepage = "https://github.com/prometheus-community/pgbouncer_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ _1000101 ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/php-fpm-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/php-fpm-exporter.nix
index e9ba97d1f3f7..12c80b39ff3b 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/php-fpm-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/php-fpm-exporter.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
     hash = "sha256-ggrFnyEdGBoZVh4dHMw+7RUm8nJ1hJXo/fownO3wvzE=";
   };
 
-  vendorHash = "sha256-OK36tHkBtosdfEWFPYMtlbzCkh5cF35NBWYyJrb9fwg= ";
+  vendorHash = "sha256-OK36tHkBtosdfEWFPYMtlbzCkh5cF35NBWYyJrb9fwg=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/pihole-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/pihole-exporter.nix
index 2ceddeb8a4b2..a5dba8e43725 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/pihole-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/pihole-exporter.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter for PI-Hole's Raspberry PI ad blocker";
+    mainProgram = "pihole-exporter";
     homepage = "https://github.com/eko/pihole-exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/ping-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/ping-exporter.nix
index becbde065af3..6abe6ed605bf 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/ping-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/ping-exporter.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter for ICMP echo requests";
+    mainProgram = "ping_exporter";
     homepage = "https://github.com/czerwonk/ping_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ nudelsalat ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/postfix-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
index 90439c9091fc..ad85dfb73318 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "A Prometheus exporter for Postfix";
+    mainProgram = "postfix_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ willibutz globin ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
index 62f041b285ba..130789ca4bd5 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "A Prometheus exporter for PostgreSQL";
+    mainProgram = "postgres_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ fpletz globin willibutz ma27 ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/prom2json.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/prom2json.nix
index c197bf6366c3..a011dbb68b7e 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/prom2json.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/prom2json.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to scrape a Prometheus client and dump the result as JSON";
+    mainProgram = "prom2json";
     homepage = "https://github.com/prometheus/prom2json";
     license = licenses.asl20;
     maintainers = with maintainers; [ benley ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/promscale/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/promscale/default.nix
index 821cab907850..9b1d070e18f4 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/promscale/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/promscale/default.nix
@@ -47,6 +47,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An open-source analytical platform for Prometheus metrics";
+    mainProgram = "promscale";
     homepage = "https://github.com/timescale/promscale";
     changelog = "https://github.com/timescale/promscale/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/pushgateway.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/pushgateway.nix
index ea194bccffb3..0354cb258594 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/pushgateway.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/pushgateway.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Allows ephemeral and batch jobs to expose metrics to Prometheus";
+    mainProgram = "pushgateway";
     homepage = "https://github.com/prometheus/pushgateway";
     license = licenses.asl20;
     maintainers = with maintainers; [ benley ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/pve-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/pve-exporter.nix
index 82ca70bfef81..72009591e899 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/pve-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/pve-exporter.nix
@@ -32,6 +32,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Exposes information gathered from Proxmox VE cluster for use by the Prometheus monitoring system";
+    mainProgram = "pve_exporter";
     homepage = "https://github.com/prometheus-pve/prometheus-pve-exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ nukaduka ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter.nix
index 213b2285c5e7..6c012111c4d1 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/rabbitmq-exporter.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter for RabbitMQ";
+    mainProgram = "rabbitmq_exporter";
     homepage = "https://github.com/kbudde/rabbitmq_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix
index 177537588d63..d6cb49b2eaf8 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "redis_exporter";
-  version = "1.57.0";
+  version = "1.58.0";
 
   src = fetchFromGitHub {
     owner = "oliver006";
     repo = "redis_exporter";
     rev = "v${version}";
-    sha256 = "sha256-M5Mv2gAQMR0j2zIX6OwePA9w7OtjJ0i2mR9I4BvUcXI=";
+    sha256 = "sha256-tZ09vQBFUWw2l6OYwT/bXhBEMOTSl5r/Hu732msPGkg=";
   };
 
   vendorHash = "sha256-32EjLEPeFsihdG83ru4SSf03F2XJGD8+tbO9ANaI1hs=";
@@ -26,6 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter for Redis metrics";
+    mainProgram = "redis_exporter";
     homepage = "https://github.com/oliver006/redis_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ eskytthe srhb ma27 ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/rtl_433-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/rtl_433-exporter.nix
index 40cde1c15a6f..7319f8e2a7f4 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/rtl_433-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/rtl_433-exporter.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus time-series DB exporter for rtl_433 433MHz radio packet decoder";
+    mainProgram = "rtl_433_prometheus";
     homepage = "https://github.com/mhansen/rtl_433_prometheus";
     license = licenses.mit;
     maintainers = with maintainers; [ zopieux ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/sachet.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/sachet.nix
index 20dda305543c..977e5d906074 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/sachet.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/sachet.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An SMS alerting tool for Prometheus's Alertmanager";
+    mainProgram = "sachet";
     homepage = "https://github.com/messagebird/sachet";
     license = licenses.bsd2;
     maintainers = with maintainers; [ govanify ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/script-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/script-exporter.nix
index 5af5a5488d86..dae56703ebd6 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/script-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/script-exporter.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Shell script prometheus exporter";
+    mainProgram = "script_exporter";
     homepage = "https://github.com/adhocteam/script_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ Flakebi ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/shelly-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/shelly-exporter.nix
index 106e76b62460..8dde552e665e 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/shelly-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/shelly-exporter.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Shelly humidity sensor exporter for prometheus";
+    mainProgram = "shelly_exporter";
     homepage = "https://github.com/aexel90/shelly_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [drupol];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix
index 2e916367c924..b03a006982ec 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "smartctl_exporter";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "prometheus-community";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-oUdMsUAlN/4uRSzxQrO0TOVRgyEdxYkGtf3VoNbxdhw=";
+    hash = "sha256-QQoWAsnE/7ifvgEfQJ6cbzmwOrE7oe2zalTbu/P7r18=";
   };
 
-  vendorHash = "sha256-0WLI+nLhRkf1CGhSer1Jkv1nUho5sxIbTE/Mf5JmX7U=";
+  vendorHash = "sha256-WUB2FgBl4Tybz7T0yvcSYIlG75NEhXpn1F0yuB9F21g=";
 
   ldflags = [
     "-X github.com/prometheus/common/version.Version=${version}"
@@ -25,6 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Export smartctl statistics for Prometheus";
+    mainProgram = "smartctl_exporter";
     homepage = "https://github.com/prometheus-community/smartctl_exporter";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix
index c61302603daa..38e124a60181 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/smokeping-prober.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "smokeping_prober";
-  version = "0.7.1";
+  version = "0.7.3";
 
   ldflags = let
     setVars = rec {
@@ -20,9 +20,9 @@ buildGoModule rec {
     owner = "SuperQ";
     repo = "smokeping_prober";
     rev = "v${version}";
-    sha256 = "sha256-kpg4oUDv1C5NQuxfFNLmRIMkc8hbMkjiKL16HkYrUyU=";
+    sha256 = "sha256-MP8AJ8XnIp/+9s7qeAGRHv2OtLL5zrjEhuzZ36V/GrY=";
   };
-  vendorHash = "sha256-TgieqjE23gwyKLuKSqc5pkxRpou8lg+yVnVoINZDkGU=";
+  vendorHash = "sha256-39/0reEt4Rfe7DfysS4BROUgBUg+x95z6DU3IjC6m5U=";
 
   doCheck = true;
 
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter for sending continual ICMP/UDP pings";
+    mainProgram = "smokeping_prober";
     homepage = "https://github.com/SuperQ/smokeping_prober";
     license = licenses.asl20;
     maintainers = with maintainers; [ lukegb ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/sql-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/sql-exporter.nix
index b88534cb5ac7..bab564702c17 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/sql-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/sql-exporter.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "sql_exporter";
-  version = "0.5.3";
+  version = "0.5.4";
 
   src = fetchFromGitHub {
     owner = "justwatchcom";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Cp8+vVGyAwYcrBiEN1SmUnHqWFGtuypvzfDROJgOn28=";
+    sha256 = "sha256-ADfJxo9/CcWi9LgX31a7GYAdigFYRbkFy4PYzecG50Y=";
   };
 
   vendorHash = null;
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Flexible SQL exporter for Prometheus";
+    mainProgram = "sql_exporter";
     homepage = "https://github.com/justwatchcom/sql_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ justinas ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/statsd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/statsd-exporter.nix
index 201ec3a32e36..4c13824f44aa 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/statsd-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/statsd-exporter.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "statsd_exporter";
-  version = "0.26.0";
+  version = "0.26.1";
 
   src = fetchFromGitHub {
     owner = "prometheus";
     repo = "statsd_exporter";
     rev = "v${version}";
-    hash = "sha256-C7+4v40T667KJHEQ3ebLDg2wJNrxD/nossfT6rMlER8=";
+    hash = "sha256-hKwbC56Z6tMolLnYB5G7iSLZoM+cWCh5lPzWiFkOd6E=";
   };
 
   ldflags =
@@ -26,10 +26,11 @@ buildGoModule rec {
       "-X ${t}.BuildDate=unknown"
     ];
 
-  vendorHash = "sha256-scBpRZeECgAtpu9lnkIk1I2c8UmAkEL8LYNPUeUNYto=";
+  vendorHash = "sha256-UcdRcHZUJ3XHZNqYXSboaor5WRVPYfilEvRWZjA1YNc=";
 
   meta = with lib; {
     description = "Receives StatsD-style metrics and exports them to Prometheus";
+    mainProgram = "statsd_exporter";
     homepage = "https://github.com/prometheus/statsd_exporter";
     changelog = "https://github.com/prometheus/statsd_exporter/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix
index 39e475df1974..d3365fc92bf4 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix
@@ -17,6 +17,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "Arris Surfboard signal metrics exporter";
+    mainProgram = "surfboard_exporter";
     homepage = "https://github.com/ipstatic/surfboard_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ disassembler ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/systemd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/systemd-exporter.nix
index 7abe243d3036..5448aeb52d59 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/systemd-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/systemd-exporter.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Exporter for systemd unit metrics";
+    mainProgram = "systemd_exporter";
     homepage = "https://github.com/prometheus-community/systemd_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ chkno ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/tor-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/tor-exporter.nix
index fcfe87806eb9..3b54e23f81ae 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/tor-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/tor-exporter.nix
@@ -31,6 +31,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Prometheus exporter that exposes metrics from a Tor daemon";
+    mainProgram = "prometheus-tor-exporter";
     homepage = "https://github.com/atx/prometheus-tor_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ delroth ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/unbound-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/unbound-exporter.nix
index e683ca72b9e5..5237abe6148a 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/unbound-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/unbound-exporter.nix
@@ -27,6 +27,7 @@ buildGoModule {
   meta = with lib; {
     changelog = "https://github.com/letsencrypt/unbound_exporter/releases/tag/v${version}";
     description = "Prometheus exporter for Unbound DNS resolver";
+    mainProgram = "unbound_exporter";
     homepage = "https://github.com/letsencrypt/unbound_exporter/tree/main";
     license = licenses.asl20;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/v2ray-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/v2ray-exporter.nix
index 51bf3d8ccac6..0cb3dc77162b 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/v2ray-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/v2ray-exporter.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Prometheus exporter for V2Ray daemon";
+    mainProgram = "v2ray-exporter";
     homepage = "https://github.com/wi1dcard/v2ray-exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ jqqqqqqqqqq ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
index aa86f0642409..ff3a301d3340 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
   meta = {
     homepage = "https://github.com/jonnenauha/prometheus_varnish_exporter";
     description = "Varnish exporter for Prometheus";
+    mainProgram = "prometheus_varnish_exporter";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ MostAwesomeDude ];
   };
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
index d810633c17f3..a1e9ee7f434e 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/MindFlavor/prometheus_wireguard_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ ma27 globin ];
+    mainProgram = "prometheus_wireguard_exporter";
   };
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix
index da6013b9b5ec..16897e894f69 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/xmpp-alerts.nix
@@ -54,6 +54,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = {
     description = "XMPP Web hook for Prometheus";
+    mainProgram = "prometheus-xmpp-alerts";
     homepage = "https://github.com/jelmer/prometheus-xmpp-alerts";
     maintainers = with lib.maintainers; [ fpletz ];
     license = with lib.licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/zfs-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/zfs-exporter.nix
index d229daa14b81..4488b85dd10b 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/zfs-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/zfs-exporter.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "ZFS Exporter for the Prometheus monitoring system";
+    mainProgram = "zfs_exporter";
     homepage = "https://github.com/pdf/zfs_exporter";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/servers/monitoring/riemann/default.nix b/nixpkgs/pkgs/servers/monitoring/riemann/default.nix
index e55630a36335..f539fd6394e9 100644
--- a/nixpkgs/pkgs/servers/monitoring/riemann/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/riemann/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://riemann.io/";
     description = "A network monitoring system";
+    mainProgram = "riemann";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.epl10;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/servers/monitoring/seyren/default.nix b/nixpkgs/pkgs/servers/monitoring/seyren/default.nix
index 3ae3a990d069..a4752a26fb40 100644
--- a/nixpkgs/pkgs/servers/monitoring/seyren/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/seyren/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An alerting dashboard for Graphite";
+    mainProgram = "seyren";
     homepage = "https://github.com/scobal/seyren";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/monitoring/telegraf/default.nix b/nixpkgs/pkgs/servers/monitoring/telegraf/default.nix
index 1345b3acc1d2..96e9c86cf74f 100644
--- a/nixpkgs/pkgs/servers/monitoring/telegraf/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/telegraf/default.nix
@@ -8,7 +8,7 @@
 
 buildGoModule rec {
   pname = "telegraf";
-  version = "1.29.5";
+  version = "1.30.0";
 
   subPackages = [ "cmd/telegraf" ];
 
@@ -16,10 +16,10 @@ buildGoModule rec {
     owner = "influxdata";
     repo = "telegraf";
     rev = "v${version}";
-    hash = "sha256-yVxpUKEmy7pllZQq6A0zIDekewh4BQX+/kaeLcZ2aLg=";
+    hash = "sha256-+dQMQsieer0/BfvAKnT35bjNjPjC0Z1houUqFBVIWDE=";
   };
 
-  vendorHash = "sha256-amcI5X/xLOjItraG+twsv7sn5ei3mkZsclEd4TGiXwM=";
+  vendorHash = "sha256-6RfhSrb9mTt2IzEv3zzj26gChz7XKV5uazfwanNe7Pc=";
   proxyVendor = true;
 
   ldflags = [
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The plugin-driven server agent for collecting & reporting metrics";
+    mainProgram = "telegraf";
     homepage = "https://www.influxdata.com/time-series-platform/telegraf/";
     changelog = "https://github.com/influxdata/telegraf/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/servers/monitoring/unpoller/default.nix b/nixpkgs/pkgs/servers/monitoring/unpoller/default.nix
index 952f3190546d..c2e0f6c9f7ed 100644
--- a/nixpkgs/pkgs/servers/monitoring/unpoller/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/unpoller/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "unpoller";
-  version = "2.9.5";
+  version = "2.10.0";
 
   src = fetchFromGitHub {
     owner = "unpoller";
     repo = "unpoller";
     rev = "v${version}";
-    hash = "sha256-hNDRzQGTS3sAdt/0ZdJV5zRpSdrBHGLDZJ62X+kFg7M=";
+    hash = "sha256-aJbK1Fhlfm0CrI1O7sWh1xjk+OR8gLa1goSnQ4wfrI0=";
   };
 
-  vendorHash = "sha256-+fXNfDGzZy43WjQrvK2enOWtSv2qN3Zo+O+9Bn+KO1s=";
+  vendorHash = "sha256-iOfjjRjN07iD+B7GjWKbmQu/xNm5wjFQOTA4jBxMh/E=";
 
   ldflags = [
     "-w" "-s"
diff --git a/nixpkgs/pkgs/servers/monitoring/uptime-kuma/default.nix b/nixpkgs/pkgs/servers/monitoring/uptime-kuma/default.nix
index 7b82a205b264..e6df980b77ef 100644
--- a/nixpkgs/pkgs/servers/monitoring/uptime-kuma/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/uptime-kuma/default.nix
@@ -37,6 +37,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     description = "A fancy self-hosted monitoring tool";
+    mainProgram = "uptime-kuma-server";
     homepage = "https://github.com/louislam/uptime-kuma";
     changelog = "https://github.com/louislam/uptime-kuma/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/servers/monitoring/vmagent/default.nix b/nixpkgs/pkgs/servers/monitoring/vmagent/default.nix
index 74b2a2de096d..7c979f009cd7 100644
--- a/nixpkgs/pkgs/servers/monitoring/vmagent/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/vmagent/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/app/vmagent";
     description = "VictoriaMetrics metrics scraper";
+    mainProgram = "vmagent";
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ nullx76 ];
diff --git a/nixpkgs/pkgs/servers/mqtt/flashmq/default.nix b/nixpkgs/pkgs/servers/mqtt/flashmq/default.nix
index 4603ffbda0c8..8a579d948881 100644
--- a/nixpkgs/pkgs/servers/mqtt/flashmq/default.nix
+++ b/nixpkgs/pkgs/servers/mqtt/flashmq/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fast light-weight MQTT broker/server";
+    mainProgram = "flashmq";
     homepage = "https://www.flashmq.org/";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ sikmir ];
diff --git a/nixpkgs/pkgs/servers/nats-server/default.nix b/nixpkgs/pkgs/servers/nats-server/default.nix
index ae556728d3b3..a1014b44ab66 100644
--- a/nixpkgs/pkgs/servers/nats-server/default.nix
+++ b/nixpkgs/pkgs/servers/nats-server/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "nats-server";
-  version = "2.10.11";
+  version = "2.10.12";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-fRbjAqu1tFLUUk7aeIkEifcWkDUhNCbVZ957b2ntD+o=";
+    hash = "sha256-T0rwSa1xTPUZHkFDu9hnD2Kk1ME/vMUa4iK+Zbic6PM=";
   };
 
-  vendorHash = "sha256-lVCWTZvzLkYl+o+EUQ0kzIhgl9C236w9i3RRA5o+IAw=";
+  vendorHash = "sha256-pSjtUSbJPclsd30KLhLOkN4u6pSn307s3RohroxmExc=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/servers/neard/default.nix b/nixpkgs/pkgs/servers/neard/default.nix
index a62746700968..6518e8694f4c 100644
--- a/nixpkgs/pkgs/servers/neard/default.nix
+++ b/nixpkgs/pkgs/servers/neard/default.nix
@@ -72,5 +72,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    # error: wcwidth-0.2.13 not supported for interpreter python2.7
+    broken = true; # Added 2024-03-17
   };
 }
diff --git a/nixpkgs/pkgs/servers/networking/rustus/default.nix b/nixpkgs/pkgs/servers/networking/rustus/default.nix
index 651ed424fc5f..53c76184a8b8 100644
--- a/nixpkgs/pkgs/servers/networking/rustus/default.nix
+++ b/nixpkgs/pkgs/servers/networking/rustus/default.nix
@@ -63,6 +63,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "TUS protocol implementation in Rust.";
+    mainProgram = "rustus";
     homepage = "https://s3rius.github.io/rustus/";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
diff --git a/nixpkgs/pkgs/servers/nextcloud/news-updater.nix b/nixpkgs/pkgs/servers/nextcloud/news-updater.nix
index bb66a9463a05..d72f13687124 100644
--- a/nixpkgs/pkgs/servers/nextcloud/news-updater.nix
+++ b/nixpkgs/pkgs/servers/nextcloud/news-updater.nix
@@ -15,6 +15,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = {
     description = "Fast parallel feed updater for the Nextcloud news app";
+    mainProgram = "nextcloud-news-updater";
     homepage = "https://github.com/nextcloud/news-updater";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ schneefux ];
diff --git a/nixpkgs/pkgs/servers/nextcloud/notify_push.nix b/nixpkgs/pkgs/servers/nextcloud/notify_push.nix
index 2322c4f7eac3..f94449d87b16 100644
--- a/nixpkgs/pkgs/servers/nextcloud/notify_push.nix
+++ b/nixpkgs/pkgs/servers/nextcloud/notify_push.nix
@@ -42,6 +42,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     changelog = "https://github.com/nextcloud/notify_push/releases/tag/v${version}";
     description = "Update notifications for nextcloud clients";
+    mainProgram = "notify_push";
     homepage = "https://github.com/nextcloud/notify_push";
     license = licenses.agpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/servers/nosql/aerospike/default.nix b/nixpkgs/pkgs/servers/nosql/aerospike/default.nix
index dc2ed8c79ec1..12cb89c2133e 100644
--- a/nixpkgs/pkgs/servers/nosql/aerospike/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/aerospike/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aerospike-server";
-  version = "7.0.0.4";
+  version = "7.0.0.5";
 
   src = fetchFromGitHub {
     owner = "aerospike";
     repo = "aerospike-server";
     rev = version;
-    hash = "sha256-CyDGJ0fM9mDNOG1CV/noaSDIh8x/duM3NhgLTnANNKA=";
+    hash = "sha256-NTZW/pBCrwhmqMNXBS34HUKENy+TJKmoFWS7LhcLM4k=";
     fetchSubmodules = true;
   };
 
@@ -29,8 +29,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Flash-optimized, in-memory, NoSQL database";
+    mainProgram = "asd";
     homepage = "https://aerospike.com/";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ kalbasit ];
   };
diff --git a/nixpkgs/pkgs/servers/nosql/ferretdb/default.nix b/nixpkgs/pkgs/servers/nosql/ferretdb/default.nix
index 526253c7b67f..b00b67449ace 100644
--- a/nixpkgs/pkgs/servers/nosql/ferretdb/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/ferretdb/default.nix
@@ -39,6 +39,8 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A truly Open Source MongoDB alternative";
+    mainProgram = "ferretdb";
+    changelog = "https://github.com/FerretDB/FerretDB/releases/tag/v${version}";
     homepage = "https://www.ferretdb.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ dit7ya noisersup julienmalka ];
diff --git a/nixpkgs/pkgs/servers/nosql/mongodb/6.0.nix b/nixpkgs/pkgs/servers/nosql/mongodb/6.0.nix
index edc7ee047466..b17c41916928 100644
--- a/nixpkgs/pkgs/servers/nosql/mongodb/6.0.nix
+++ b/nixpkgs/pkgs/servers/nosql/mongodb/6.0.nix
@@ -9,6 +9,9 @@ buildMongoDB {
   version = "6.0.13";
   sha256 = "sha256-BD3XrTdv4sCa3h37o1A2s3/R0R8zHiR59a4pY0RxLGU=";
   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
+
     (fetchpatch {
       name = "mongodb-6.1.0-rc-more-specific-cache-alignment-types.patch";
       url = "https://github.com/mongodb/mongo/commit/5435f9585f857f6145beaf6d31daf336453ba86f.patch";
diff --git a/nixpkgs/pkgs/servers/nosql/mongodb/fix-gcc-13-ctype-6_0.patch b/nixpkgs/pkgs/servers/nosql/mongodb/fix-gcc-13-ctype-6_0.patch
new file mode 100644
index 000000000000..5473997e56c9
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/mongodb/fix-gcc-13-ctype-6_0.patch
@@ -0,0 +1,12 @@
+diff --git a/src/mongo/util/ctype.h b/src/mongo/util/ctype.h
+index a3880e2..78ee57e 100644
+--- a/src/mongo/util/ctype.h
++++ b/src/mongo/util/ctype.h
+@@ -67,6 +67,7 @@
+ #pragma once
+
+ #include <array>
++#include <cstdint>
+
+ namespace mongo::ctype {
+ namespace detail {
diff --git a/nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix b/nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix
index 928e50a0ae8c..a51144c48d4e 100644
--- a/nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix
+++ b/nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix
@@ -144,6 +144,7 @@ in stdenv.mkDerivation rec {
   preBuild = ''
     sconsFlags+=" CC=$CC"
     sconsFlags+=" CXX=$CXX"
+  '' + optionalString (!stdenv.isDarwin) ''
     sconsFlags+=" AR=$AR"
   '' + optionalString stdenv.isAarch64 ''
     sconsFlags+=" CCFLAGS='-march=armv8-a+crc'"
diff --git a/nixpkgs/pkgs/servers/nosql/neo4j/default.nix b/nixpkgs/pkgs/servers/nosql/neo4j/default.nix
index 3bf736bdc238..a3a8b49242cf 100644
--- a/nixpkgs/pkgs/servers/nosql/neo4j/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/neo4j/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "neo4j";
-  version = "5.17.0";
+  version = "5.18.0";
 
   src = fetchurl {
     url = "https://neo4j.com/artifact.php?name=neo4j-community-${version}-unix.tar.gz";
-    hash = "sha256-l1t5RI5KfgzT9ynDQxSbUtIEdPs1BVCdY4396GHJxEA=";
+    hash = "sha256-XPpX6alLb81o5IBX16eHHkJMi8V/R/2YXWOCxEHKdU0=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix b/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix
index 4050ed5a89bd..3d39d698ac92 100644
--- a/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "An open-source distributed database built with love";
+    mainProgram = "rethinkdb";
     longDescription = ''
       RethinkDB is built to store JSON documents, and scale to
       multiple machines with very little effort. It has a pleasant
diff --git a/nixpkgs/pkgs/servers/onlyoffice-documentserver/default.nix b/nixpkgs/pkgs/servers/onlyoffice-documentserver/default.nix
index bc5a41750f55..61ea3cf6fd94 100644
--- a/nixpkgs/pkgs/servers/onlyoffice-documentserver/default.nix
+++ b/nixpkgs/pkgs/servers/onlyoffice-documentserver/default.nix
@@ -137,12 +137,13 @@ let
 
     meta = with lib; {
       description = "ONLYOFFICE Document Server is an online office suite comprising viewers and editors";
+      mainProgram = "documentserver-prepare4shutdown.sh";
       longDescription = ''
         ONLYOFFICE Document Server is an online office suite comprising viewers and editors for texts, spreadsheets and presentations,
         fully compatible with Office Open XML formats: .docx, .xlsx, .pptx and enabling collaborative editing in real time.
       '';
       homepage = "ONLYOFFICE Document Server is an online office suite comprising viewers and editors";
-      license = licenses.agpl3;
+      license = licenses.agpl3Plus;
       platforms = [ "x86_64-linux" ];
       sourceProvenance = [ sourceTypes.binaryNativeCode ];
       maintainers = with maintainers; [ SuperSandro2000 ];
diff --git a/nixpkgs/pkgs/servers/openvscode-server/default.nix b/nixpkgs/pkgs/servers/openvscode-server/default.nix
index 422ee821cd50..fe6f36617d23 100644
--- a/nixpkgs/pkgs/servers/openvscode-server/default.nix
+++ b/nixpkgs/pkgs/servers/openvscode-server/default.nix
@@ -60,13 +60,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "openvscode-server";
-  version = "1.84.0";
+  version = "1.87.1";
 
   src = fetchFromGitHub {
     owner = "gitpod-io";
     repo = "openvscode-server";
     rev = "openvscode-server-v${finalAttrs.version}";
-    hash = "sha256-kYKvJrHWKHDIqJsN0j1WFN3OBWwEyNgY5hjNHBg+kKQ=";
+    hash = "sha256-v9q0+qhgDhqejSI6ioAUNsAKK27o/Uo0KUtuAuSQYig=";
   };
 
   yarnCache = stdenv.mkDerivation {
@@ -89,7 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
 
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash = "sha256-oW/JngHpXb8kscikscI7N9csSyZsZQgG75jOdWll6dw=";
+    outputHash = "sha256-oRuy7PjVv3Y24GQlvX4tPPndvKTgxbv7TR8ytTBY2DQ=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/servers/osmocom/libosmo-sccp/default.nix b/nixpkgs/pkgs/servers/osmocom/libosmo-sccp/default.nix
index 39b6d845e01b..d8a27e2704fe 100644
--- a/nixpkgs/pkgs/servers/osmocom/libosmo-sccp/default.nix
+++ b/nixpkgs/pkgs/servers/osmocom/libosmo-sccp/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "SCCP + SIGTRAN (SUA/M3UA) libraries as well as OsmoSTP";
+    mainProgram = "osmo-stp";
     homepage = "https://osmocom.org/projects/libosmo-sccp";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/servers/osmocom/osmo-hnbgw/default.nix b/nixpkgs/pkgs/servers/osmocom/osmo-hnbgw/default.nix
index 3214667da333..30f0923073cb 100644
--- a/nixpkgs/pkgs/servers/osmocom/osmo-hnbgw/default.nix
+++ b/nixpkgs/pkgs/servers/osmocom/osmo-hnbgw/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Osmocom Home NodeB Gateway, for attaching femtocells to the 3G CN (OsmoMSC, OsmoSGSN)";
+    mainProgram = "osmo-hnbgw";
     homepage = "https://osmocom.org/projects/osmohnbgw";
     license = lib.licenses.agpl3Plus;
     maintainers = with lib.maintainers; [ janik ];
diff --git a/nixpkgs/pkgs/servers/osmocom/osmo-hnodeb/default.nix b/nixpkgs/pkgs/servers/osmocom/osmo-hnodeb/default.nix
index 20f925dc98ee..95dd6bf72b70 100644
--- a/nixpkgs/pkgs/servers/osmocom/osmo-hnodeb/default.nix
+++ b/nixpkgs/pkgs/servers/osmocom/osmo-hnodeb/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "(upper layers of) HomeNodeB";
+    mainProgram = "osmo-hnodeb";
     homepage = "https://osmocom.org/projects/osmo-hnodeb";
     license = lib.licenses.agpl3Plus;
     maintainers = with lib.maintainers; [ janik ];
diff --git a/nixpkgs/pkgs/servers/osmocom/osmo-mgw/default.nix b/nixpkgs/pkgs/servers/osmocom/osmo-mgw/default.nix
index fb94451aaadd..939f062a7b4f 100644
--- a/nixpkgs/pkgs/servers/osmocom/osmo-mgw/default.nix
+++ b/nixpkgs/pkgs/servers/osmocom/osmo-mgw/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Osmocom Media Gateway (MGW). speaks RTP and E1 as well as MGCP";
+    mainProgram = "osmo-mgw";
     homepage = "https://osmocom.org/projects/osmo-mgw";
     license = lib.licenses.agpl3Plus;
     maintainers = with lib.maintainers; [ janik ];
diff --git a/nixpkgs/pkgs/servers/osmocom/osmo-msc/default.nix b/nixpkgs/pkgs/servers/osmocom/osmo-msc/default.nix
index 1a46a010fbf9..da6e719707ef 100644
--- a/nixpkgs/pkgs/servers/osmocom/osmo-msc/default.nix
+++ b/nixpkgs/pkgs/servers/osmocom/osmo-msc/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Osmocom implementation of 3GPP Mobile Swtiching Centre (MSC)";
+    mainProgram = "osmo-msc";
     homepage = "https://osmocom.org/projects/osmomsc/wiki";
     license = lib.licenses.agpl3Only;
     maintainers = with lib.maintainers; [ janik ];
diff --git a/nixpkgs/pkgs/servers/osmocom/osmo-pcu/default.nix b/nixpkgs/pkgs/servers/osmocom/osmo-pcu/default.nix
index 7349e03d9722..13b34b67b333 100644
--- a/nixpkgs/pkgs/servers/osmocom/osmo-pcu/default.nix
+++ b/nixpkgs/pkgs/servers/osmocom/osmo-pcu/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Osmocom Packet control Unit (PCU): Network-side GPRS (RLC/MAC); BTS- or BSC-colocated";
+    mainProgram = "osmo-pcu";
     homepage = "https://osmocom.org/projects/osmopcu";
     license = lib.licenses.gpl2Only;
     maintainers = with lib.maintainers; [ janik ];
diff --git a/nixpkgs/pkgs/servers/osmocom/osmo-sip-connector/default.nix b/nixpkgs/pkgs/servers/osmocom/osmo-sip-connector/default.nix
index 0dad592b7a30..0a5ab9ab9fd5 100644
--- a/nixpkgs/pkgs/servers/osmocom/osmo-sip-connector/default.nix
+++ b/nixpkgs/pkgs/servers/osmocom/osmo-sip-connector/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "This implements an interface between the MNCC (Mobile Network Call Control) interface of OsmoMSC (and also previously OsmoNITB) and SIP";
+    mainProgram = "osmo-sip-connector";
     homepage = "https://osmocom.org/projects/osmo-sip-conector";
     license = lib.licenses.agpl3Plus;
     maintainers = with lib.maintainers; [ janik ];
diff --git a/nixpkgs/pkgs/servers/pinnwand/steck.nix b/nixpkgs/pkgs/servers/pinnwand/steck.nix
index 34e2315ff273..32e2141d2a9d 100644
--- a/nixpkgs/pkgs/servers/pinnwand/steck.nix
+++ b/nixpkgs/pkgs/servers/pinnwand/steck.nix
@@ -44,6 +44,7 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/supakeen/steck";
     license = licenses.mit;
     description = "Client for pinnwand pastebin";
+    mainProgram = "steck";
     maintainers = with maintainers; [ hexa ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/pleroma/default.nix b/nixpkgs/pkgs/servers/pleroma/default.nix
index c57c1bad3d87..a1876b1fa374 100644
--- a/nixpkgs/pkgs/servers/pleroma/default.nix
+++ b/nixpkgs/pkgs/servers/pleroma/default.nix
@@ -163,7 +163,7 @@ beamPackages.mixRelease rec {
   meta = with lib; {
     description = "ActivityPub microblogging server";
     homepage = "https://git.pleroma.social/pleroma/pleroma";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ picnoir yuka kloenk yayayayaka ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/servers/plex/raw.nix b/nixpkgs/pkgs/servers/plex/raw.nix
index c6751136dd62..5b5af73e1805 100644
--- a/nixpkgs/pkgs/servers/plex/raw.nix
+++ b/nixpkgs/pkgs/servers/plex/raw.nix
@@ -12,16 +12,16 @@
 # server, and the FHS userenv and corresponding NixOS module should
 # automatically pick up the changes.
 stdenv.mkDerivation rec {
-  version = "1.40.0.7998-c29d4c0c8";
+  version = "1.40.1.8227-c0dd5a73e";
   pname = "plexmediaserver";
 
   # Fetch the source
   src = if stdenv.hostPlatform.system == "aarch64-linux" then fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_arm64.deb";
-    sha256 = "sha256-uVsOI6sItfq7wLP+xPOYSC9ueOv/lcDeL+vnrx1WdRA=";
+    sha256 = "16gc8fwb29x3l9s263xs9c7nb0i1rzgaps2wlx0cil8bs2a9izz8";
   } else fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
-    sha256 = "sha256-ucxDtnGpfTpQURaGvLwohHeIZPE3aulXtoITRZCYA9c=";
+    sha256 = "03sx5fvwy2njpfh7k4xvkqscrxnafdvzh42g4hsn2hqxp0bqkl51";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/nixpkgs/pkgs/servers/pocketbase/default.nix b/nixpkgs/pkgs/servers/pocketbase/default.nix
index 9820fbab7dc2..a68c26181458 100644
--- a/nixpkgs/pkgs/servers/pocketbase/default.nix
+++ b/nixpkgs/pkgs/servers/pocketbase/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "pocketbase";
-  version = "0.22.2";
+  version = "0.22.4";
 
   src = fetchFromGitHub {
     owner = "pocketbase";
     repo = "pocketbase";
     rev = "v${version}";
-    hash = "sha256-y+8mBfMZI6FF8nzmlN0NaAP4Jbr69DYQnvle0TWt2kY=";
+    hash = "sha256-IhqrPXQ430sfdI8HB4cLS8dntluYgstO3DBfZyd8Jrk=";
   };
 
-  vendorHash = "sha256-Q3DlOKaE3fUlRMSfi8Ta9ZyyOE+viiONVUO8x4JACDg=";
+  vendorHash = "sha256-iXcMxsiKyCY91a7zCl+OxkHwSIKx/AfT0HOEpZ8JgeM=";
 
   # This is the released subpackage from upstream repo
   subPackages = [ "examples/base" ];
diff --git a/nixpkgs/pkgs/servers/polaris/Cargo.lock b/nixpkgs/pkgs/servers/polaris/Cargo.lock
deleted file mode 100644
index 3a44683e8d2f..000000000000
--- a/nixpkgs/pkgs/servers/polaris/Cargo.lock
+++ /dev/null
@@ -1,2731 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "actix-codec"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "617a8268e3537fe1d8c9ead925fca49ef6400927ee7bc26750e90ecee14ce4b8"
-dependencies = [
- "bitflags 1.3.2",
- "bytes",
- "futures-core",
- "futures-sink",
- "memchr",
- "pin-project-lite",
- "tokio",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
-name = "actix-files"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d832782fac6ca7369a70c9ee9a20554623c5e51c76e190ad151780ebea1cf689"
-dependencies = [
- "actix-http",
- "actix-service",
- "actix-utils",
- "actix-web",
- "askama_escape",
- "bitflags 1.3.2",
- "bytes",
- "derive_more",
- "futures-core",
- "http-range",
- "log",
- "mime",
- "mime_guess",
- "percent-encoding",
- "pin-project-lite",
-]
-
-[[package]]
-name = "actix-http"
-version = "3.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a92ef85799cba03f76e4f7c10f533e66d87c9a7e7055f3391f09000ad8351bc9"
-dependencies = [
- "actix-codec",
- "actix-rt",
- "actix-service",
- "actix-utils",
- "ahash",
- "base64 0.21.3",
- "bitflags 2.4.0",
- "brotli",
- "bytes",
- "bytestring",
- "derive_more",
- "encoding_rs",
- "flate2",
- "futures-core",
- "h2",
- "http",
- "httparse",
- "httpdate",
- "itoa",
- "language-tags",
- "local-channel",
- "mime",
- "percent-encoding",
- "pin-project-lite",
- "rand",
- "sha1 0.10.5",
- "smallvec",
- "tokio",
- "tokio-util",
- "tracing",
- "zstd",
-]
-
-[[package]]
-name = "actix-http-test"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dff10f950882f80a9dc29fb5325db8f66a0692a7c9be3bf547f79e955b699b76"
-dependencies = [
- "actix-codec",
- "actix-rt",
- "actix-server",
- "actix-service",
- "actix-tls",
- "actix-utils",
- "awc",
- "bytes",
- "futures-core",
- "http",
- "log",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "slab",
- "socket2 0.4.9",
- "tokio",
-]
-
-[[package]]
-name = "actix-macros"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb"
-dependencies = [
- "quote",
- "syn 2.0.31",
-]
-
-[[package]]
-name = "actix-router"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d66ff4d247d2b160861fa2866457e85706833527840e4133f8f49aa423a38799"
-dependencies = [
- "bytestring",
- "http",
- "regex",
- "serde",
- "tracing",
-]
-
-[[package]]
-name = "actix-rt"
-version = "2.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28f32d40287d3f402ae0028a9d54bef51af15c8769492826a69d28f81893151d"
-dependencies = [
- "actix-macros",
- "futures-core",
- "tokio",
-]
-
-[[package]]
-name = "actix-server"
-version = "2.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3eb13e7eef0423ea6eab0e59f6c72e7cb46d33691ad56a726b3cd07ddec2c2d4"
-dependencies = [
- "actix-rt",
- "actix-service",
- "actix-utils",
- "futures-core",
- "futures-util",
- "mio",
- "socket2 0.5.3",
- "tokio",
- "tracing",
-]
-
-[[package]]
-name = "actix-service"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a"
-dependencies = [
- "futures-core",
- "paste",
- "pin-project-lite",
-]
-
-[[package]]
-name = "actix-test"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2173910d0c7d0a21730d3e1304576d9c969eead2b91f3257a7435f7face702e0"
-dependencies = [
- "actix-codec",
- "actix-http",
- "actix-http-test",
- "actix-rt",
- "actix-service",
- "actix-utils",
- "actix-web",
- "awc",
- "futures-core",
- "futures-util",
- "log",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "tokio",
-]
-
-[[package]]
-name = "actix-tls"
-version = "3.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72616e7fbec0aa99c6f3164677fa48ff5a60036d0799c98cab894a44f3e0efc3"
-dependencies = [
- "actix-rt",
- "actix-service",
- "actix-utils",
- "futures-core",
- "http",
- "impl-more",
- "pin-project-lite",
- "rustls 0.21.7",
- "rustls-webpki 0.101.4",
- "tokio",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
-name = "actix-utils"
-version = "3.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8"
-dependencies = [
- "local-waker",
- "pin-project-lite",
-]
-
-[[package]]
-name = "actix-web"
-version = "4.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e4a5b5e29603ca8c94a77c65cf874718ceb60292c5a5c3e5f4ace041af462b9"
-dependencies = [
- "actix-codec",
- "actix-http",
- "actix-macros",
- "actix-router",
- "actix-rt",
- "actix-server",
- "actix-service",
- "actix-utils",
- "actix-web-codegen",
- "ahash",
- "bytes",
- "bytestring",
- "cfg-if",
- "cookie 0.16.2",
- "derive_more",
- "encoding_rs",
- "futures-core",
- "futures-util",
- "itoa",
- "language-tags",
- "log",
- "mime",
- "once_cell",
- "pin-project-lite",
- "regex",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "smallvec",
- "socket2 0.5.3",
- "time 0.3.28",
- "url",
-]
-
-[[package]]
-name = "actix-web-codegen"
-version = "4.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb1f50ebbb30eca122b188319a4398b3f7bb4a8cdf50ecfb73bfc6a3c3ce54f5"
-dependencies = [
- "actix-router",
- "proc-macro2",
- "quote",
- "syn 2.0.31",
-]
-
-[[package]]
-name = "actix-web-httpauth"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6dda62cf04bc3a9ad2ea8f314f721951cfdb4cdacec4e984d20e77c7bb170991"
-dependencies = [
- "actix-utils",
- "actix-web",
- "base64 0.13.1",
- "futures-core",
- "futures-util",
- "log",
- "pin-project-lite",
-]
-
-[[package]]
-name = "addr2line"
-version = "0.21.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
-dependencies = [
- "gimli",
-]
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-[[package]]
-name = "ahash"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
-dependencies = [
- "cfg-if",
- "getrandom",
- "once_cell",
- "version_check",
-]
-
-[[package]]
-name = "aho-corasick"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "alloc-no-stdlib"
-version = "2.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
-
-[[package]]
-name = "alloc-stdlib"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
-dependencies = [
- "alloc-no-stdlib",
-]
-
-[[package]]
-name = "ape"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cdc864958f3a41f67f998dd2fe9635a525d2f232787d0268690b5e0876a2262"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "askama_escape"
-version = "0.10.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341"
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "awc"
-version = "3.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fa3c705a9c7917ac0f41c0757a0a747b43bbc29b0b364b081bd7c5fc67fb223"
-dependencies = [
- "actix-codec",
- "actix-http",
- "actix-rt",
- "actix-service",
- "actix-tls",
- "actix-utils",
- "base64 0.21.3",
- "bytes",
- "cfg-if",
- "cookie 0.16.2",
- "derive_more",
- "futures-core",
- "futures-util",
- "h2",
- "http",
- "itoa",
- "log",
- "mime",
- "percent-encoding",
- "pin-project-lite",
- "rand",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "tokio",
-]
-
-[[package]]
-name = "backtrace"
-version = "0.3.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
-dependencies = [
- "addr2line",
- "cc",
- "cfg-if",
- "libc",
- "miniz_oxide",
- "object",
- "rustc-demangle",
-]
-
-[[package]]
-name = "base-x"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270"
-
-[[package]]
-name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "base64"
-version = "0.21.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53"
-
-[[package]]
-name = "base64ct"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bitflags"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
-
-[[package]]
-name = "block-buffer"
-version = "0.10.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "branca"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04de6ca7d864c7bdf6da0d4f33c9c447794856070d89e697ce87fd43d75f5f3f"
-dependencies = [
- "base-x",
- "byteorder",
- "orion",
-]
-
-[[package]]
-name = "brotli"
-version = "3.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68"
-dependencies = [
- "alloc-no-stdlib",
- "alloc-stdlib",
- "brotli-decompressor",
-]
-
-[[package]]
-name = "brotli-decompressor"
-version = "2.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744"
-dependencies = [
- "alloc-no-stdlib",
- "alloc-stdlib",
-]
-
-[[package]]
-name = "bumpalo"
-version = "3.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
-
-[[package]]
-name = "bytemuck"
-version = "1.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "bytes"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
-
-[[package]]
-name = "bytestring"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "238e4886760d98c4f899360c834fa93e62cf7f721ac3c2da375cbdf4b8679aae"
-dependencies = [
- "bytes",
-]
-
-[[package]]
-name = "cc"
-version = "1.0.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "jobserver",
- "libc",
-]
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "chunked_transfer"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cca491388666e04d7248af3f60f0c40cfb0991c72205595d7c396e3510207d1a"
-
-[[package]]
-name = "color_quant"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
-
-[[package]]
-name = "const_fn"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935"
-
-[[package]]
-name = "convert_case"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
-
-[[package]]
-name = "cookie"
-version = "0.14.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951"
-dependencies = [
- "percent-encoding",
- "time 0.2.27",
- "version_check",
-]
-
-[[package]]
-name = "cookie"
-version = "0.16.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb"
-dependencies = [
- "percent-encoding",
- "time 0.3.28",
- "version_check",
-]
-
-[[package]]
-name = "cookie_store"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3818dfca4b0cb5211a659bbcbb94225b7127407b2b135e650d717bfb78ab10d3"
-dependencies = [
- "cookie 0.14.4",
- "idna 0.2.3",
- "log",
- "publicsuffix",
- "serde",
- "serde_json",
- "time 0.2.27",
- "url",
-]
-
-[[package]]
-name = "cpufeatures"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "crc32fast"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-deque"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
-dependencies = [
- "cfg-if",
- "crossbeam-epoch",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-epoch"
-version = "0.9.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
-dependencies = [
- "autocfg",
- "cfg-if",
- "crossbeam-utils",
- "memoffset",
- "scopeguard",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crypto-common"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-dependencies = [
- "generic-array",
- "typenum",
-]
-
-[[package]]
-name = "ct-codecs"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3b7eb4404b8195a9abb6356f4ac07d8ba267045c8d6d220ac4dc992e6cc75df"
-
-[[package]]
-name = "daemonize"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab8bfdaacb3c887a54d41bdf48d3af8873b3f5566469f8ba21b92057509f116e"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "deranged"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
-
-[[package]]
-name = "derive_more"
-version = "0.99.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
-dependencies = [
- "convert_case",
- "proc-macro2",
- "quote",
- "rustc_version 0.4.0",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "diesel"
-version = "2.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d98235fdc2f355d330a8244184ab6b4b33c28679c0b4158f63138e51d6cf7e88"
-dependencies = [
- "diesel_derives",
- "libsqlite3-sys",
- "r2d2",
- "time 0.3.28",
-]
-
-[[package]]
-name = "diesel_derives"
-version = "2.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e054665eaf6d97d1e7125512bb2d35d07c73ac86cc6920174cb42d1ab697a554"
-dependencies = [
- "diesel_table_macro_syntax",
- "proc-macro2",
- "quote",
- "syn 2.0.31",
-]
-
-[[package]]
-name = "diesel_migrations"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6036b3f0120c5961381b570ee20a02432d7e2d27ea60de9578799cf9156914ac"
-dependencies = [
- "diesel",
- "migrations_internals",
- "migrations_macros",
-]
-
-[[package]]
-name = "diesel_table_macro_syntax"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
-dependencies = [
- "syn 2.0.31",
-]
-
-[[package]]
-name = "digest"
-version = "0.10.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
-dependencies = [
- "block-buffer",
- "crypto-common",
- "subtle",
-]
-
-[[package]]
-name = "discard"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
-
-[[package]]
-name = "either"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
-
-[[package]]
-name = "encoding_rs"
-version = "0.8.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "equivalent"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
-
-[[package]]
-name = "fdeflate"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
-dependencies = [
- "simd-adler32",
-]
-
-[[package]]
-name = "fiat-crypto"
-version = "0.1.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77"
-
-[[package]]
-name = "flate2"
-version = "1.0.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
-dependencies = [
- "crc32fast",
- "miniz_oxide",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "form_urlencoded"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
-dependencies = [
- "percent-encoding",
-]
-
-[[package]]
-name = "fs_extra"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
-
-[[package]]
-name = "futures-core"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
-
-[[package]]
-name = "futures-macro"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.31",
-]
-
-[[package]]
-name = "futures-sink"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
-
-[[package]]
-name = "futures-task"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
-
-[[package]]
-name = "futures-util"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
-dependencies = [
- "futures-core",
- "futures-macro",
- "futures-sink",
- "futures-task",
- "pin-project-lite",
- "pin-utils",
- "slab",
-]
-
-[[package]]
-name = "generic-array"
-version = "0.14.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
-dependencies = [
- "typenum",
- "version_check",
-]
-
-[[package]]
-name = "getopts"
-version = "0.2.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi",
-]
-
-[[package]]
-name = "gif"
-version = "0.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
-dependencies = [
- "color_quant",
- "weezl",
-]
-
-[[package]]
-name = "gimli"
-version = "0.28.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
-
-[[package]]
-name = "h2"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
-dependencies = [
- "bytes",
- "fnv",
- "futures-core",
- "futures-sink",
- "futures-util",
- "http",
- "indexmap 1.9.3",
- "slab",
- "tokio",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "hashbrown"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
-
-[[package]]
-name = "headers"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
-dependencies = [
- "base64 0.21.3",
- "bytes",
- "headers-core",
- "http",
- "httpdate",
- "mime",
- "sha1 0.10.5",
-]
-
-[[package]]
-name = "headers-core"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
-dependencies = [
- "http",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
-
-[[package]]
-name = "hex"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
-
-[[package]]
-name = "hmac"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
-dependencies = [
- "digest",
-]
-
-[[package]]
-name = "http"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
-dependencies = [
- "bytes",
- "fnv",
- "itoa",
-]
-
-[[package]]
-name = "http-range"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573"
-
-[[package]]
-name = "httparse"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
-
-[[package]]
-name = "httpdate"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
-
-[[package]]
-name = "id3"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9389dd9c8c4671b1e4b2878a6329bccb573f9c24a75bc91c641c451ce5436501"
-dependencies = [
- "bitflags 2.4.0",
- "byteorder",
- "flate2",
-]
-
-[[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 = "idna"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
-dependencies = [
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "image"
-version = "0.24.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
-dependencies = [
- "bytemuck",
- "byteorder",
- "color_quant",
- "gif",
- "jpeg-decoder",
- "num-rational",
- "num-traits",
- "png",
-]
-
-[[package]]
-name = "impl-more"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "206ca75c9c03ba3d4ace2460e57b189f39f43de612c2f85836e65c929701bb2d"
-
-[[package]]
-name = "indexmap"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
-dependencies = [
- "equivalent",
- "hashbrown 0.14.0",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
-
-[[package]]
-name = "jobserver"
-version = "0.1.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "jpeg-decoder"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e"
-
-[[package]]
-name = "js-sys"
-version = "0.3.64"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "language-tags"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "lewton"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030"
-dependencies = [
- "byteorder",
- "ogg",
- "tinyvec",
-]
-
-[[package]]
-name = "libc"
-version = "0.2.153"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
-
-[[package]]
-name = "libsqlite3-sys"
-version = "0.26.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326"
-dependencies = [
- "cc",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "local-channel"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f303ec0e94c6c54447f84f3b0ef7af769858a9c4ef56ef2a986d3dcd4c3fc9c"
-dependencies = [
- "futures-core",
- "futures-sink",
- "futures-util",
- "local-waker",
-]
-
-[[package]]
-name = "local-waker"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e34f76eb3611940e0e7d53a9aaa4e6a3151f69541a282fd0dad5571420c53ff1"
-
-[[package]]
-name = "lock_api"
-version = "0.4.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
-dependencies = [
- "autocfg",
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
-
-[[package]]
-name = "matches"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
-
-[[package]]
-name = "md5"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
-
-[[package]]
-name = "memchr"
-version = "2.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
-
-[[package]]
-name = "memoffset"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "metaflac"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1470d3cc1bb0d692af5eb3afb594330b8ba09fd91c32c4e1c6322172a5ba750"
-dependencies = [
- "byteorder",
- "hex",
- "log",
-]
-
-[[package]]
-name = "migrations_internals"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f23f71580015254b020e856feac3df5878c2c7a8812297edd6c0a485ac9dada"
-dependencies = [
- "serde",
- "toml 0.7.8",
-]
-
-[[package]]
-name = "migrations_macros"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cce3325ac70e67bbab5bd837a31cae01f1a6db64e0e744a33cb03a543469ef08"
-dependencies = [
- "migrations_internals",
- "proc-macro2",
- "quote",
-]
-
-[[package]]
-name = "mime"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
-
-[[package]]
-name = "mime_guess"
-version = "2.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
-dependencies = [
- "mime",
- "unicase",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
-dependencies = [
- "adler",
- "simd-adler32",
-]
-
-[[package]]
-name = "mio"
-version = "0.8.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
-dependencies = [
- "libc",
- "log",
- "wasi",
- "windows-sys",
-]
-
-[[package]]
-name = "mp3-duration"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "348bdc7300502f0801e5b57c448815713cd843b744ef9bda252a2698fdf90a0f"
-dependencies = [
- "thiserror",
-]
-
-[[package]]
-name = "mp4ameta"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb23d62e8eb5299a3f79657c70ea9269eac8f6239a76952689bcd06a74057e81"
-dependencies = [
- "lazy_static",
- "mp4ameta_proc",
-]
-
-[[package]]
-name = "mp4ameta_proc"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07dcca13d1740c0a665f77104803360da0bdb3323ecce2e93fa2c959a6d52806"
-
-[[package]]
-name = "native-windows-derive"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76134ae81020d89d154f619fd2495a2cecad204276b1dc21174b55e4d0975edd"
-dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "native-windows-gui"
-version = "1.0.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4f7003a669f68deb6b7c57d74fff4f8e533c44a3f0b297492440ef4ff5a28454"
-dependencies = [
- "bitflags 1.3.2",
- "lazy_static",
- "winapi",
- "winapi-build",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
-dependencies = [
- "hermit-abi",
- "libc",
-]
-
-[[package]]
-name = "num_threads"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "object"
-version = "0.32.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "ogg"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
-
-[[package]]
-name = "opus_headers"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afbb993947f111397c2bc536944f8dac7f54a4e73383d478efe1990b56404b60"
-
-[[package]]
-name = "orion"
-version = "0.17.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b11468cc6afd61a126fe3f91cc4cc8a0dbe7917d0a4b5e8357ba91cc47444462"
-dependencies = [
- "ct-codecs",
- "fiat-crypto",
- "getrandom",
- "subtle",
- "zeroize",
-]
-
-[[package]]
-name = "parking_lot"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
-dependencies = [
- "lock_api",
- "parking_lot_core",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.9.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
-dependencies = [
- "cfg-if",
- "libc",
- "redox_syscall",
- "smallvec",
- "windows-targets",
-]
-
-[[package]]
-name = "password-hash"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700"
-dependencies = [
- "base64ct",
- "rand_core",
- "subtle",
-]
-
-[[package]]
-name = "paste"
-version = "1.0.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
-
-[[package]]
-name = "pbkdf2"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
-dependencies = [
- "digest",
- "hmac",
- "password-hash",
- "sha2",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "2.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
-
-[[package]]
-name = "pin-utils"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-
-[[package]]
-name = "pkg-config"
-version = "0.3.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
-
-[[package]]
-name = "png"
-version = "0.17.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
-dependencies = [
- "bitflags 1.3.2",
- "crc32fast",
- "fdeflate",
- "flate2",
- "miniz_oxide",
-]
-
-[[package]]
-name = "polaris"
-version = "0.14.1"
-dependencies = [
- "actix-files",
- "actix-test",
- "actix-web",
- "actix-web-httpauth",
- "ape",
- "base64 0.21.3",
- "branca",
- "crossbeam-channel",
- "daemonize",
- "diesel",
- "diesel_migrations",
- "fs_extra",
- "futures-util",
- "getopts",
- "headers",
- "http",
- "id3",
- "image",
- "lewton",
- "libsqlite3-sys",
- "log",
- "metaflac",
- "mp3-duration",
- "mp4ameta",
- "native-windows-derive",
- "native-windows-gui",
- "num_cpus",
- "opus_headers",
- "pbkdf2",
- "percent-encoding",
- "rand",
- "rayon",
- "regex",
- "rustfm-scrobble",
- "sd-notify",
- "serde",
- "serde_derive",
- "serde_json",
- "simplelog",
- "thiserror",
- "toml 0.7.8",
- "ureq 2.7.1",
- "url",
- "winres",
-]
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-[[package]]
-name = "proc-macro-crate"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
-dependencies = [
- "toml 0.5.11",
-]
-
-[[package]]
-name = "proc-macro-hack"
-version = "0.5.20+deprecated"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.66"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "publicsuffix"
-version = "1.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95b4ce31ff0a27d93c8de1849cf58162283752f065a90d508f1105fa6c9a213f"
-dependencies = [
- "idna 0.2.3",
- "url",
-]
-
-[[package]]
-name = "qstring"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d464fae65fff2680baf48019211ce37aaec0c78e9264c84a3e484717f965104e"
-dependencies = [
- "percent-encoding",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "r2d2"
-version = "0.8.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93"
-dependencies = [
- "log",
- "parking_lot",
- "scheduled-thread-pool",
-]
-
-[[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha",
- "rand_core",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "rayon"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
-dependencies = [
- "either",
- "rayon-core",
-]
-
-[[package]]
-name = "rayon-core"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
-dependencies = [
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-utils",
- "num_cpus",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "regex"
-version = "1.9.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
-
-[[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",
- "untrusted",
- "web-sys",
- "winapi",
-]
-
-[[package]]
-name = "rustc-demangle"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
-
-[[package]]
-name = "rustc_version"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-dependencies = [
- "semver 0.9.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.18",
-]
-
-[[package]]
-name = "rustfm-scrobble"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c46a75fb6409a528f7e0d8e99826684f88461d1b0d0edeec60d82e3f554dad5"
-dependencies = [
- "md5",
- "serde",
- "serde_json",
- "ureq 1.5.5",
- "wrapped-vec",
-]
-
-[[package]]
-name = "rustls"
-version = "0.19.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7"
-dependencies = [
- "base64 0.13.1",
- "log",
- "ring",
- "sct 0.6.1",
- "webpki",
-]
-
-[[package]]
-name = "rustls"
-version = "0.21.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8"
-dependencies = [
- "log",
- "ring",
- "rustls-webpki 0.101.4",
- "sct 0.7.0",
-]
-
-[[package]]
-name = "rustls-webpki"
-version = "0.100.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e98ff011474fa39949b7e5c0428f9b4937eda7da7848bbb947786b7be0b27dab"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "rustls-webpki"
-version = "0.101.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
-
-[[package]]
-name = "scheduled-thread-pool"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19"
-dependencies = [
- "parking_lot",
-]
-
-[[package]]
-name = "scopeguard"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
-
-[[package]]
-name = "sct"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "sct"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "sd-notify"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "621e3680f3e07db4c9c2c3fb07c6223ab2fab2e54bd3c04c3ae037990f428c32"
-
-[[package]]
-name = "semver"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-dependencies = [
- "semver-parser",
-]
-
-[[package]]
-name = "semver"
-version = "1.0.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
-
-[[package]]
-name = "semver-parser"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-
-[[package]]
-name = "serde"
-version = "1.0.188"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.188"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.31",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.105"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "serde_spanned"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "serde_urlencoded"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
-dependencies = [
- "form_urlencoded",
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "sha1"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770"
-dependencies = [
- "sha1_smol",
-]
-
-[[package]]
-name = "sha1"
-version = "0.10.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
-name = "sha1_smol"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
-
-[[package]]
-name = "sha2"
-version = "0.10.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
-dependencies = [
- "cfg-if",
- "cpufeatures",
- "digest",
-]
-
-[[package]]
-name = "signal-hook-registry"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "simd-adler32"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
-
-[[package]]
-name = "simplelog"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acee08041c5de3d5048c8b3f6f13fafb3026b24ba43c6a695a0c76179b844369"
-dependencies = [
- "log",
- "termcolor",
- "time 0.3.28",
-]
-
-[[package]]
-name = "slab"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
-
-[[package]]
-name = "socket2"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "socket2"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
-dependencies = [
- "libc",
- "windows-sys",
-]
-
-[[package]]
-name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "standback"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "stdweb"
-version = "0.4.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
-dependencies = [
- "discard",
- "rustc_version 0.2.3",
- "stdweb-derive",
- "stdweb-internal-macros",
- "stdweb-internal-runtime",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "stdweb-derive"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
-dependencies = [
- "proc-macro2",
- "quote",
- "serde",
- "serde_derive",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "stdweb-internal-macros"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
-dependencies = [
- "base-x",
- "proc-macro2",
- "quote",
- "serde",
- "serde_derive",
- "serde_json",
- "sha1 0.6.1",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "stdweb-internal-runtime"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
-
-[[package]]
-name = "subtle"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
-
-[[package]]
-name = "syn"
-version = "1.0.109"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "thiserror"
-version = "1.0.48"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.48"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.31",
-]
-
-[[package]]
-name = "time"
-version = "0.2.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242"
-dependencies = [
- "const_fn",
- "libc",
- "standback",
- "stdweb",
- "time-macros 0.1.1",
- "version_check",
- "winapi",
-]
-
-[[package]]
-name = "time"
-version = "0.3.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
-dependencies = [
- "deranged",
- "itoa",
- "libc",
- "num_threads",
- "serde",
- "time-core",
- "time-macros 0.2.14",
-]
-
-[[package]]
-name = "time-core"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
-
-[[package]]
-name = "time-macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1"
-dependencies = [
- "proc-macro-hack",
- "time-macros-impl",
-]
-
-[[package]]
-name = "time-macros"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
-dependencies = [
- "time-core",
-]
-
-[[package]]
-name = "time-macros-impl"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f"
-dependencies = [
- "proc-macro-hack",
- "proc-macro2",
- "quote",
- "standback",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "tinyvec"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-
-[[package]]
-name = "tokio"
-version = "1.32.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
-dependencies = [
- "backtrace",
- "bytes",
- "libc",
- "mio",
- "parking_lot",
- "pin-project-lite",
- "signal-hook-registry",
- "socket2 0.5.3",
- "windows-sys",
-]
-
-[[package]]
-name = "tokio-util"
-version = "0.7.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
-dependencies = [
- "bytes",
- "futures-core",
- "futures-sink",
- "pin-project-lite",
- "tokio",
- "tracing",
-]
-
-[[package]]
-name = "toml"
-version = "0.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "toml"
-version = "0.7.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
-dependencies = [
- "serde",
- "serde_spanned",
- "toml_datetime",
- "toml_edit",
-]
-
-[[package]]
-name = "toml_datetime"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "toml_edit"
-version = "0.19.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
-dependencies = [
- "indexmap 2.0.0",
- "serde",
- "serde_spanned",
- "toml_datetime",
- "winnow",
-]
-
-[[package]]
-name = "tracing"
-version = "0.1.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
-dependencies = [
- "cfg-if",
- "log",
- "pin-project-lite",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
-dependencies = [
- "once_cell",
-]
-
-[[package]]
-name = "typenum"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
-
-[[package]]
-name = "unicase"
-version = "2.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "unicode-width"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
-
-[[package]]
-name = "untrusted"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
-
-[[package]]
-name = "ureq"
-version = "1.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b8b063c2d59218ae09f22b53c42eaad0d53516457905f5235ca4bc9e99daa71"
-dependencies = [
- "base64 0.13.1",
- "chunked_transfer",
- "cookie 0.14.4",
- "cookie_store",
- "log",
- "once_cell",
- "qstring",
- "rustls 0.19.1",
- "url",
- "webpki",
- "webpki-roots 0.21.1",
-]
-
-[[package]]
-name = "ureq"
-version = "2.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9"
-dependencies = [
- "base64 0.21.3",
- "flate2",
- "log",
- "once_cell",
- "rustls 0.21.7",
- "rustls-webpki 0.100.2",
- "url",
- "webpki-roots 0.23.1",
-]
-
-[[package]]
-name = "url"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
-dependencies = [
- "form_urlencoded",
- "idna 0.4.0",
- "percent-encoding",
-]
-
-[[package]]
-name = "vcpkg"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "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.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
-dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2",
- "quote",
- "syn 2.0.31",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.31",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.87"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
-
-[[package]]
-name = "web-sys"
-version = "0.3.64"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "webpki"
-version = "0.21.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
-dependencies = [
- "ring",
- "untrusted",
-]
-
-[[package]]
-name = "webpki-roots"
-version = "0.21.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940"
-dependencies = [
- "webpki",
-]
-
-[[package]]
-name = "webpki-roots"
-version = "0.23.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338"
-dependencies = [
- "rustls-webpki 0.100.2",
-]
-
-[[package]]
-name = "weezl"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
-
-[[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-build"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows-sys"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-dependencies = [
- "windows-targets",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.48.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
-
-[[package]]
-name = "winnow"
-version = "0.5.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "winres"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c"
-dependencies = [
- "toml 0.5.11",
-]
-
-[[package]]
-name = "wrapped-vec"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b85e08702c1e919669e1e90213c9c75ea4bb689d0f3970347e2b37c04600b4e5"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
-name = "zeroize"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
-
-[[package]]
-name = "zstd"
-version = "0.12.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c"
-dependencies = [
- "zstd-safe",
-]
-
-[[package]]
-name = "zstd-safe"
-version = "6.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581"
-dependencies = [
- "libc",
- "zstd-sys",
-]
-
-[[package]]
-name = "zstd-sys"
-version = "2.0.8+zstd.1.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
-]
diff --git a/nixpkgs/pkgs/servers/polaris/default.nix b/nixpkgs/pkgs/servers/polaris/default.nix
index 32435eefd20c..35ebd2d66d88 100644
--- a/nixpkgs/pkgs/servers/polaris/default.nix
+++ b/nixpkgs/pkgs/servers/polaris/default.nix
@@ -10,13 +10,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "polaris";
-  version = "0.14.1";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "agersant";
     repo = "polaris";
     rev = version;
-    hash = "sha256-YI2IBlZm+RIFcZgXYh9HdxVpSMjPN/s9oBXDrb2V3iE=";
+    hash = "sha256-UC66xRL9GyTPHJ3z0DD/yyI9GlyqelCaHHDyl79ptJg=";
 
     # The polaris version upstream in Cargo.lock is "0.0.0".
     # We're unable to simply patch it in the patch phase due to
@@ -30,9 +30,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-  };
+  cargoHash = "sha256-+4WN6TTIzVu3Jj0SfPq2jnYh0oWRo/C4qDMeJLrj1kk=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.Security
diff --git a/nixpkgs/pkgs/servers/prowlarr/default.nix b/nixpkgs/pkgs/servers/prowlarr/default.nix
index 6e53489af971..8bb1f29de42d 100644
--- a/nixpkgs/pkgs/servers/prowlarr/default.nix
+++ b/nixpkgs/pkgs/servers/prowlarr/default.nix
@@ -21,15 +21,15 @@ let
   }.${stdenv.hostPlatform.system} or unsupported;
 
   hash = {
-    aarch64-darwin = "sha256-fYIHpO36nnWZlhS5ExOeLIBTUV7RSQlImdQjiRIzpGU=";
-    aarch64-linux = "sha256-vnJiC5lUVMEl0SLLiKrY1nrZf9Lc89x7+GgqdeuXUFs=";
-    x86_64-darwin = "sha256-aba1OR7I5fDr1WmgK5gxwtt/5c8FCuR/U0XOD3I4oEM=";
-    x86_64-linux = "sha256-8yESqqILrYZXhOPXLrlEVkQca0MYRfzKO+GtFqyLeGs=";
+    aarch64-darwin = "sha256-mHXoX526X0PYNViHgAdCPTRX6cqzlCyYLybdY1LRS8c=";
+    aarch64-linux = "sha256-wgHASkz6RMtKzBehnbqXsNbF057eK0i6xpOmuefMVx8=";
+    x86_64-darwin = "sha256-3EkGKDDsuUdbTvBILBClwPVvXN5JzTWGHBaG2lmHQ7s=";
+    x86_64-linux = "sha256-l24/thKqDCJQbeirSYiL5sqH8LRs7k3rk0qY6DZQvD8=";
   }.${stdenv.hostPlatform.system} or unsupported;
 
 in stdenv.mkDerivation rec {
   inherit pname;
-  version = "1.13.3.4273";
+  version = "1.14.3.4333";
 
   src = fetchurl {
     url = "https://github.com/Prowlarr/Prowlarr/releases/download/v${version}/Prowlarr.master.${version}.${os}-core-${arch}.tar.gz";
diff --git a/nixpkgs/pkgs/servers/pufferpanel/bump-sha1cd.patch b/nixpkgs/pkgs/servers/pufferpanel/bump-sha1cd.patch
deleted file mode 100644
index 944d4adac5d7..000000000000
--- a/nixpkgs/pkgs/servers/pufferpanel/bump-sha1cd.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/go.mod b/go.mod
-index 107660ef..8efd7ebf 100644
---- a/go.mod
-+++ b/go.mod
-@@ -128,7 +128,7 @@ require (
- 	github.com/pelletier/go-toml v1.9.5 // indirect
- 	github.com/pelletier/go-toml/v2 v2.0.6 // indirect
- 	github.com/pierrec/lz4/v4 v4.1.2 // indirect
--	github.com/pjbgf/sha1cd v0.2.0 // indirect
-+	github.com/pjbgf/sha1cd v0.3.0 // indirect
- 	github.com/pmezard/go-difflib v1.0.0 // indirect
- 	github.com/robfig/cron/v3 v3.0.1 // indirect
- 	github.com/rogpeppe/go-internal v1.9.0 // indirect
-diff --git a/go.sum b/go.sum
-index 021d3ab9..13592e36 100644
---- a/go.sum
-+++ b/go.sum
-@@ -485,8 +485,9 @@ github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvI
- github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek=
- github.com/pierrec/lz4/v4 v4.1.2 h1:qvY3YFXRQE/XB8MlLzJH7mSzBs74eA2gg52YTk6jUPM=
- github.com/pierrec/lz4/v4 v4.1.2/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
--github.com/pjbgf/sha1cd v0.2.0 h1:gIsJVwjbRviE4gydidGztxH1IlJQoYBcCrwG4Dz8wvM=
- github.com/pjbgf/sha1cd v0.2.0/go.mod h1:HOK9QrgzdHpbc2Kzip0Q1yi3M2MFGPADtR6HjG65m5M=
-+github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
-+github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI=
- github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ=
- github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI=
- github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
diff --git a/nixpkgs/pkgs/servers/pufferpanel/default.nix b/nixpkgs/pkgs/servers/pufferpanel/default.nix
index 2f56068df252..eb5558bf1d47 100644
--- a/nixpkgs/pkgs/servers/pufferpanel/default.nix
+++ b/nixpkgs/pkgs/servers/pufferpanel/default.nix
@@ -22,7 +22,8 @@ buildGoModule rec {
 
   patches = [
     # Bump sha1cd package, otherwise i686-linux fails to build.
-    ./bump-sha1cd.patch
+    # Also bump github.com/swaggo/swag for PR 257790.
+    ./deps.patch
 
     # Seems to be an anti-feature. Startup is the only place where user/group is
     # hardcoded and checked.
@@ -57,7 +58,7 @@ buildGoModule rec {
 
   nativeBuildInputs = [ makeWrapper go-swag ];
 
-  vendorHash = "sha256-402ND99FpU+zNV1e5Th1+aZKok49cIEdpPPLLfNyL3E=";
+  vendorHash = "sha256-itiWROoIhnMbG9evH6X7kjClC4VdpX983d/SCwr4HbY=";
   proxyVendor = true;
 
   # Generate code for Swagger documentation endpoints (see web/swagger/docs.go).
diff --git a/nixpkgs/pkgs/servers/pufferpanel/deps.patch b/nixpkgs/pkgs/servers/pufferpanel/deps.patch
new file mode 100644
index 000000000000..c9d634609569
--- /dev/null
+++ b/nixpkgs/pkgs/servers/pufferpanel/deps.patch
@@ -0,0 +1,146 @@
+diff --git a/go.mod b/go.mod
+index e7ed3367..6022e4cd 100644
+--- a/go.mod
++++ b/go.mod
+@@ -36,9 +36,9 @@ require (
+ 	github.com/stretchr/testify v1.8.3
+ 	github.com/swaggo/files v0.0.0-20220728132757-551d4a08d97a
+ 	github.com/swaggo/gin-swagger v1.5.3
+-	github.com/swaggo/swag v1.8.8
+-	golang.org/x/crypto v0.9.0
+-	golang.org/x/sys v0.8.0
++	github.com/swaggo/swag v1.16.3
++	golang.org/x/crypto v0.14.0
++	golang.org/x/sys v0.13.0
+ 	gopkg.in/go-playground/validator.v9 v9.31.0
+ 	gorm.io/driver/mysql v1.4.4
+ 	gorm.io/driver/postgres v1.4.5
+@@ -132,7 +132,7 @@ require (
+ 	github.com/pelletier/go-toml v1.9.5 // indirect
+ 	github.com/pelletier/go-toml/v2 v2.0.8 // indirect
+ 	github.com/pierrec/lz4/v4 v4.1.2 // indirect
+-	github.com/pjbgf/sha1cd v0.2.0 // indirect
++	github.com/pjbgf/sha1cd v0.3.0 // indirect
+ 	github.com/pmezard/go-difflib v1.0.0 // indirect
+ 	github.com/robfig/cron/v3 v3.0.1 // indirect
+ 	github.com/rogpeppe/go-internal v1.9.0 // indirect
+@@ -151,12 +151,12 @@ require (
+ 	github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect
+ 	github.com/yusufpapurcu/wmi v1.2.2 // indirect
+ 	golang.org/x/arch v0.3.0 // indirect
+-	golang.org/x/mod v0.8.0 // indirect
+-	golang.org/x/net v0.10.0 // indirect
++	golang.org/x/mod v0.9.0 // indirect
++	golang.org/x/net v0.17.0 // indirect
+ 	golang.org/x/sync v0.1.0 // indirect
+-	golang.org/x/term v0.8.0 // indirect
+-	golang.org/x/text v0.9.0 // indirect
+-	golang.org/x/tools v0.6.0 // indirect
++	golang.org/x/term v0.13.0 // indirect
++	golang.org/x/text v0.13.0 // indirect
++	golang.org/x/tools v0.7.0 // indirect
+ 	google.golang.org/protobuf v1.30.0 // indirect
+ 	gopkg.in/go-playground/assert.v1 v1.2.1 // indirect
+ 	gopkg.in/ini.v1 v1.67.0 // indirect
+diff --git a/go.sum b/go.sum
+index 5be69957..b70625d4 100644
+--- a/go.sum
++++ b/go.sum
+@@ -497,8 +497,9 @@ github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZ
+ github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
+ github.com/pierrec/lz4/v4 v4.1.2 h1:qvY3YFXRQE/XB8MlLzJH7mSzBs74eA2gg52YTk6jUPM=
+ github.com/pierrec/lz4/v4 v4.1.2/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
+-github.com/pjbgf/sha1cd v0.2.0 h1:gIsJVwjbRviE4gydidGztxH1IlJQoYBcCrwG4Dz8wvM=
+ github.com/pjbgf/sha1cd v0.2.0/go.mod h1:HOK9QrgzdHpbc2Kzip0Q1yi3M2MFGPADtR6HjG65m5M=
++github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
++github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI=
+ github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ=
+ github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI=
+ github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
+@@ -579,8 +580,8 @@ github.com/swaggo/files v0.0.0-20220728132757-551d4a08d97a/go.mod h1:lKJPbtWzJ9J
+ github.com/swaggo/gin-swagger v1.5.3 h1:8mWmHLolIbrhJJTflsaFoZzRBYVmEE7JZGIq08EiC0Q=
+ github.com/swaggo/gin-swagger v1.5.3/go.mod h1:3XJKSfHjDMB5dBo/0rrTXidPmgLeqsX89Yp4uA50HpI=
+ github.com/swaggo/swag v1.8.1/go.mod h1:ugemnJsPZm/kRwFUnzBlbHRd0JY9zE1M4F+uy2pAaPQ=
+-github.com/swaggo/swag v1.8.8 h1:/GgJmrJ8/c0z4R4hoEPZ5UeEhVGdvsII4JbVDLbR7Xc=
+-github.com/swaggo/swag v1.8.8/go.mod h1:ezQVUUhly8dludpVk+/PuwJWvLLanB13ygV5Pr9enSk=
++github.com/swaggo/swag v1.16.3 h1:PnCYjPCah8FK4I26l2F/KQ4yz3sILcVUN3cTlBFA9Pg=
++github.com/swaggo/swag v1.16.3/go.mod h1:DImHIuOFXKpMFAQjcC7FG4m3Dg4+QuUgUzJmKjI/gRk=
+ github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM=
+ github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI=
+ github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms=
+@@ -651,8 +652,8 @@ golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0
+ golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+ golang.org/x/crypto v0.0.0-20221005025214-4161e89ecf1b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+ golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
+-golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
+-golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
++golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
++golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
+ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+ golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+ golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
+@@ -688,8 +689,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
+-golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
+-golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
++golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs=
++golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+ golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+@@ -733,8 +734,8 @@ golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su
+ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
+ golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
+ golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
+-golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
+-golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
++golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
++golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
+ golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+ golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+ golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+@@ -828,16 +829,16 @@ golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBc
+ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+-golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
+-golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
++golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
++golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+ golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
+ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+ golang.org/x/term v0.0.0-20210503060354-a79de5458b56/go.mod h1:tfny5GFUkzUvx4ps4ajbZsCe5lw1metzhBm9T3x7oIY=
+ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+ golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+ golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
+-golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols=
+-golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
++golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
++golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
+ golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+@@ -847,8 +848,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+ golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+-golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
+-golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
++golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
++golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+ golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+@@ -912,8 +913,8 @@ golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4f
+ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
+ golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
+ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
+-golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
+-golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
++golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4=
++golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
+ golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+ golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/nixpkgs/pkgs/servers/pulseaudio/qpaeq.nix b/nixpkgs/pkgs/servers/pulseaudio/qpaeq.nix
index 843ca539daf8..417647f9a3c1 100644
--- a/nixpkgs/pkgs/servers/pulseaudio/qpaeq.nix
+++ b/nixpkgs/pkgs/servers/pulseaudio/qpaeq.nix
@@ -46,6 +46,7 @@ mkDerivation rec {
 
   meta = {
     description = "An equalizer interface for pulseaudio's equalizer sinks";
+    mainProgram = "qpaeq";
     homepage = "http://www.pulseaudio.org/";
     license = lib.licenses.lgpl2Plus;
     maintainers = with lib.maintainers; [ lovek323 ];
diff --git a/nixpkgs/pkgs/servers/radicale/2.x.nix b/nixpkgs/pkgs/servers/radicale/2.x.nix
index 7e86322e31c6..c1e596669030 100644
--- a/nixpkgs/pkgs/servers/radicale/2.x.nix
+++ b/nixpkgs/pkgs/servers/radicale/2.x.nix
@@ -37,6 +37,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://radicale.org/v2.html";
     description = "CalDAV CardDAV server";
+    mainProgram = "radicale";
     longDescription = ''
       The Radicale Project is a complete CalDAV (calendar) and CardDAV
       (contact) server solution. Calendars and address books are available for
diff --git a/nixpkgs/pkgs/servers/radicale/3.x.nix b/nixpkgs/pkgs/servers/radicale/3.x.nix
index 3df1ae7c4d1d..92db274bf708 100644
--- a/nixpkgs/pkgs/servers/radicale/3.x.nix
+++ b/nixpkgs/pkgs/servers/radicale/3.x.nix
@@ -1,34 +1,29 @@
 { lib
 , python3
 , fetchFromGitHub
-, fetchpatch
 , nixosTests
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "radicale";
-  version = "3.1.8";
+  version = "3.1.9";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Kozea";
     repo = "Radicale";
     rev = "v${version}";
-    hash = "sha256-V0nqgxGUxcTRAYFuxpKUEVB/g/Mbvw+9OIcvAexXwuM=";
+    hash = "sha256-i4NQ1+ltRE0g8AoyGKKVcgZgSmLeppnobu6bf2+XmWY=";
   };
 
-  patches = [
-    # https://github.com/Kozea/Radicale/pull/1328
-    (fetchpatch {
-      name = "fix-python3.11-tests.patch";
-      url = "https://github.com/Kozea/Radicale/commit/110ec3a7885f523ce894a8c0e336c1a081dcd092.patch";
-      hash = "sha256-WEiwzJ+Vzv8PXmZUi1X7Qzs+oE6qgmpvHqm/xiOMrt0=";
-    })
-  ];
-
   postPatch = ''
     sed -i '/addopts/d' setup.cfg
   '';
 
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     defusedxml
     passlib
@@ -44,12 +39,18 @@ python3.pkgs.buildPythonApplication rec {
     waitress
   ];
 
+  pytestFlagsArray = [
+    # pytest.PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release.
+    "-W" "ignore::pytest.PytestRemovedIn8Warning"
+  ];
+
   passthru.tests = {
     inherit (nixosTests) radicale;
   };
 
   meta = with lib; {
     homepage = "https://radicale.org/v3.html";
+    changelog = "https://github.com/Kozea/Radicale/blob/${src.rev}/CHANGELOG.md";
     description = "CalDAV and CardDAV server";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda erictapen ];
diff --git a/nixpkgs/pkgs/servers/rainloop/default.nix b/nixpkgs/pkgs/servers/rainloop/default.nix
index 1c7c76b2bd43..f034f83f4835 100644
--- a/nixpkgs/pkgs/servers/rainloop/default.nix
+++ b/nixpkgs/pkgs/servers/rainloop/default.nix
@@ -54,7 +54,7 @@
         description = "Simple, modern & fast web-based email client";
         homepage = "https://www.rainloop.net";
         downloadPage = "https://github.com/RainLoop/rainloop-webmail/releases";
-        license = with licenses; if edition == "" then unfree else agpl3;
+        license = with licenses; if edition == "" then unfree else agpl3Only;
         platforms = platforms.all;
         maintainers = with maintainers; [ das_j ];
       };
diff --git a/nixpkgs/pkgs/servers/readarr/default.nix b/nixpkgs/pkgs/servers/readarr/default.nix
index 2c80eb30e458..3f29cc8d7f23 100644
--- a/nixpkgs/pkgs/servers/readarr/default.nix
+++ b/nixpkgs/pkgs/servers/readarr/default.nix
@@ -8,13 +8,13 @@ let
     x86_64-darwin = "x64";
   }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   hash = {
-    x64-linux_hash = "sha256-uNZQizvOPygP+LVyBAGshBcfjC4rrX9mGtaqv8pBWKA=";
-    arm64-linux_hash = "sha256-6wXqUZ1D3E3LB+FlJDhQ0XVawHYQ2QtiAYOeJKZv/ek=";
-    x64-osx_hash = "sha256-JowEooaANOaMTlQCGuXwSp87EdULjbGmY+1RBfddcng=";
+    x64-linux_hash = "sha256-4kCDbmq47wb7OuE5JzHPZ/mM9w6wcupFblJieu5dFxc=";
+    arm64-linux_hash = "sha256-Val9dEB4E3dnfeXT2ERwE+VoITSXeA7Lc51dyz1jJyQ=";
+    x64-osx_hash = "sha256-LvjAeftlNw5F6YFyhKLW9Fv9UIk6AgnGnxOu6ctmQNg=";
   }."${arch}-${os}_hash";
 in stdenv.mkDerivation rec {
   pname = "readarr";
-  version = "0.3.19.2437";
+  version = "0.3.20.2452";
 
   src = fetchurl {
     url = "https://github.com/Readarr/Readarr/releases/download/v${version}/Readarr.develop.${version}.${os}-core-${arch}.tar.gz";
diff --git a/nixpkgs/pkgs/servers/redpanda/default.nix b/nixpkgs/pkgs/servers/redpanda/default.nix
index 5d10e3668dc7..e99593bd8883 100644
--- a/nixpkgs/pkgs/servers/redpanda/default.nix
+++ b/nixpkgs/pkgs/servers/redpanda/default.nix
@@ -7,12 +7,12 @@
 , stdenv
 }:
 let
-  version = "23.3.6";
+  version = "23.3.9";
   src = fetchFromGitHub {
     owner = "redpanda-data";
     repo = "redpanda";
     rev = "v${version}";
-    sha256 = "sha256-8VkMVbiwQDsYGour9fn0qYXXS/kWnhtARNaGmXVyaIY=";
+    sha256 = "sha256-CvHAjUwW1pkagebZQRXY51DazFCWRCD1seB46AwDVX8=";
   };
   server = callPackage ./server.nix { inherit src version; };
 in
@@ -21,7 +21,7 @@ buildGoModule rec {
   inherit doCheck src version;
   modRoot = "./src/go/rpk";
   runVend = false;
-  vendorHash = "sha256-nXAjtRhiLmzgb6OVerX2liCinstsnxeBBpxSAQoLrjg=";
+  vendorHash = "sha256-qjX0DVAZqr7Ec1dFs4zBlDpu69IkhgLkvy4FA7br7bk=";
 
   ldflags = [
     ''-X "github.com/redpanda-data/redpanda/src/go/rpk/pkg/cli/cmd/version.version=${version}"''
diff --git a/nixpkgs/pkgs/servers/reproxy/default.nix b/nixpkgs/pkgs/servers/reproxy/default.nix
deleted file mode 100644
index 21077aa83d1c..000000000000
--- a/nixpkgs/pkgs/servers/reproxy/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub }:
-
-buildGoModule rec {
-  pname = "reproxy";
-  version = "1.0.0";
-
-  src = fetchFromGitHub {
-    owner = "umputun";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-ac4fOOMht2WGlrXLN95NEIA8ivqghhVuxHnBumvajx0=";
-  };
-
-  postPatch = ''
-    # Requires network access
-    substituteInPlace app/main_test.go \
-      --replace "Test_Main" "Skip_Main"
-    substituteInPlace app/proxy/proxy_test.go \
-      --replace "TestHttp_matchHandler" "SkipHttp_matchHandler"
-  '' + lib.optionalString stdenv.isDarwin ''
-    # Fails on Darwin.
-    # https://github.com/umputun/reproxy/issues/77
-    substituteInPlace app/discovery/provider/file_test.go \
-      --replace "TestFile_Events" "SkipFile_Events" \
-      --replace "TestFile_Events_BusyListener" "SkipFile_Events_BusyListener"
-  '';
-
-  vendorHash = null;
-
-  ldflags = [
-    "-s" "-w" "-X main.revision=${version}"
-  ];
-
-  installPhase = ''
-    install -Dm755 $GOPATH/bin/app $out/bin/reproxy
-  '';
-
-  meta = with lib; {
-    description = "Simple edge server / reverse proxy";
-    homepage = "https://reproxy.io/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ sikmir ];
-    mainProgram = "reproxy";
-  };
-}
diff --git a/nixpkgs/pkgs/servers/roon-server/default.nix b/nixpkgs/pkgs/servers/roon-server/default.nix
index 767eb9e3631d..0ffa7871bd88 100644
--- a/nixpkgs/pkgs/servers/roon-server/default.nix
+++ b/nixpkgs/pkgs/servers/roon-server/default.nix
@@ -15,7 +15,7 @@
 , stdenv
 }:
 let
-  version = "2.0-1272";
+  version = "2.0-1382";
   urlVersion = builtins.replaceStrings [ "." "-" ] [ "00" "0" ] version;
 in
 stdenv.mkDerivation {
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://download.roonlabs.com/updates/production/RoonServer_linuxx64_${urlVersion}.tar.bz2";
-    hash = "sha256-oLHdgOaGnu7hRm863ryf4r05nN8wQL7WKxN3ONG67J4=";
+    hash = "sha256-KOZkTsQrUYh3geezsA1h2ZcU3Ns/v67iD1QNWalA6H4=";
   };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/servers/sabnzbd/default.nix b/nixpkgs/pkgs/servers/sabnzbd/default.nix
index a7035426fdf9..4f2217be346f 100644
--- a/nixpkgs/pkgs/servers/sabnzbd/default.nix
+++ b/nixpkgs/pkgs/servers/sabnzbd/default.nix
@@ -47,14 +47,14 @@ let
   ]);
   path = lib.makeBinPath [ coreutils par2cmdline-turbo unrar unzip p7zip util-linux ];
 in stdenv.mkDerivation rec {
-  version = "4.2.2";
+  version = "4.2.3";
   pname = "sabnzbd";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-e5MjsBFUeQ1FMgMIuTDAmAUqf9BaM+ic2qpd1GVZEAw=";
+    sha256 = "sha256-DM+sgrb7Zvtvp0th8GlOloSBcD8mG1RYyM91+uvCOgU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/scylladb/configure-etc-osrelease.patch b/nixpkgs/pkgs/servers/scylladb/configure-etc-osrelease.patch
deleted file mode 100644
index 5fd6c7caf085..000000000000
--- a/nixpkgs/pkgs/servers/scylladb/configure-etc-osrelease.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/configure.py b/configure.py
-index 25ca951ac..454140420 100755
---- a/configure.py
-+++ b/configure.py
-@@ -36,13 +36,16 @@ tempfile.tempdir = "./build/tmp"
-
- configure_args = str.join(' ', [shlex.quote(x) for x in sys.argv[1:]])
-
--for line in open('/etc/os-release'):
--    key, _, value = line.partition('=')
--    value = value.strip().strip('"')
--    if key == 'ID':
--        os_ids = [value]
--    if key == 'ID_LIKE':
--        os_ids += value.split(' ')
-+try:
-+    for line in open('/etc/os-release'):
-+        key, _, value = line.partition('=')
-+        value = value.strip().strip('"')
-+        if key == 'ID':
-+            os_ids = [value]
-+        if key == 'ID_LIKE':
-+            os_ids += value.split(' ')
-+except FileNotFoundError:
-+    os_ids = ["linux"]
-
-
- # distribution "internationalization", converting package names.
diff --git a/nixpkgs/pkgs/servers/scylladb/default.nix b/nixpkgs/pkgs/servers/scylladb/default.nix
deleted file mode 100644
index ef55409d280f..000000000000
--- a/nixpkgs/pkgs/servers/scylladb/default.nix
+++ /dev/null
@@ -1,104 +0,0 @@
-{
-  lib,
-  fetchFromGitHub,
-  python3Packages,
-  pkg-config,
-  gcc8Stdenv,
-  boost,
-  git,
-  systemd,
-  gnutls,
-  cmake,
-  makeWrapper,
-  ninja,
-  ragel,
-  hwloc,
-  jsoncpp,
-  antlr3,
-  numactl,
-  protobuf,
-  cryptopp,
-  libxfs,
-  yaml-cpp,
-  libsystemtap,
-  lksctp-tools,
-  lz4,
-  libxml2,
-  zlib,
-  libpciaccess,
-  snappy,
-  libtool,
-  thrift
-}:
-gcc8Stdenv.mkDerivation {
-  pname = "scylladb";
-  version = "3.0.5";
-
-  src = fetchFromGitHub {
-    owner = "scylladb";
-    repo = "scylla";
-    rev = "403f66ecad6bc773712c69c4a80ebd172eb48b13";
-    sha256 = "sha256-UXOPLA2dhspbH40/se0r+jCdiW82BR895rvnef8Er5I=";
-    fetchSubmodules = true;
-  };
-
-  patches = [ ./seastar-configure-script-paths.patch ./configure-etc-osrelease.patch ];
-
-  nativeBuildInputs = [
-   pkg-config
-   cmake
-   makeWrapper
-   ninja
-  ];
-
-  buildInputs = [
-   antlr3
-   python3Packages.pyparsing
-   boost
-   git
-   systemd
-   gnutls
-   ragel
-   jsoncpp
-   numactl
-   protobuf
-   cryptopp
-   libxfs
-   yaml-cpp
-   libsystemtap
-   lksctp-tools
-   lz4
-   libxml2
-   zlib
-   libpciaccess
-   snappy
-   libtool
-   thrift
-  ];
-
-  postPatch = ''
-    patchShebangs ./configure.py
-    patchShebangs seastar/json/json2code.py
-  '';
-
-  configurePhase = ''
-    ./configure.py --mode=release
-  '';
-
-  installPhase = ''
-    mkdir $out
-    cp -r * $out/
-  '';
-
-  requiredSystemFeatures = [ "big-parallel" ];
-
-  meta = with lib; {
-    description = "NoSQL data store using the seastar framework, compatible with Apache Cassandra";
-    homepage = "https://scylladb.com";
-    license = licenses.agpl3;
-    platforms = lib.platforms.linux;
-    hydraPlatforms = []; # It's huge ATM, about 18 GB.
-    maintainers = [ lib.maintainers.farlion ];
-    broken = true;
-  };
-}
diff --git a/nixpkgs/pkgs/servers/scylladb/seastar-configure-script-paths.patch b/nixpkgs/pkgs/servers/scylladb/seastar-configure-script-paths.patch
deleted file mode 100644
index 19c5c8161296..000000000000
--- a/nixpkgs/pkgs/servers/scylladb/seastar-configure-script-paths.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/seastar/configure.py b/seastar/configure.py
-index 62d9c204..f6520635 100755
---- a/seastar/configure.py
-+++ b/seastar/configure.py
-@@ -924,7 +924,7 @@ with open(buildfile, 'w') as f:
-             command = ragel -G2 -o $out $in && sed -i -e '1h;2,$$H;$$!d;g' -re 's/static const char _nfa[^;]*;//g' $out
-             description = RAGEL $out
-         rule gen
--            command = /bin/echo -e $text > $out
-+            command = echo -e $text > $out
-             description = GEN $out
-         rule swagger
-             command = json/json2code.py -f $in -o $out
diff --git a/nixpkgs/pkgs/servers/search/groonga/default.nix b/nixpkgs/pkgs/servers/search/groonga/default.nix
index 07f86a9ae808..e9bd1a2ae58e 100644
--- a/nixpkgs/pkgs/servers/search/groonga/default.nix
+++ b/nixpkgs/pkgs/servers/search/groonga/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "groonga";
-  version = "13.1.1";
+  version = "14.0.1";
 
   src = fetchurl {
     url = "https://packages.groonga.org/source/groonga/groonga-${finalAttrs.version}.tar.gz";
-    hash = "sha256-eggMegWTpv+WIbzYq2GjSD66+Tj7zcvVUcbD2EkrFO8=";
+    hash = "sha256-zXiDXYSvdyQ2HBZHUZaYHtZMs7BjzHJaix1ShLbkWtA=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/servers/search/lnx/default.nix b/nixpkgs/pkgs/servers/search/lnx/default.nix
index 5bb41267d26f..34b9f9c7c5ba 100644
--- a/nixpkgs/pkgs/servers/search/lnx/default.nix
+++ b/nixpkgs/pkgs/servers/search/lnx/default.nix
@@ -28,6 +28,7 @@ rustPlatform.buildRustPackage {
   buildInputs = lib.optionals stdenv.isDarwin [ DiskArbitration Foundation ];
   meta = with lib; {
     description = "Insanely fast, Feature-rich searching. lnx is the adaptable, typo tollerant deployment of the tantivy search engine. Standing on the shoulders of giants. ";
+    mainProgram = "lnx";
     homepage = "https://lnx.rs/";
     license = licenses.mit;
     maintainers = with maintainers; [ happysalada ];
diff --git a/nixpkgs/pkgs/servers/search/meilisearch/Cargo.lock b/nixpkgs/pkgs/servers/search/meilisearch/Cargo.lock
index 37c8e8ec207c..18858d021413 100644
--- a/nixpkgs/pkgs/servers/search/meilisearch/Cargo.lock
+++ b/nixpkgs/pkgs/servers/search/meilisearch/Cargo.lock
@@ -21,9 +21,9 @@ dependencies = [
 
 [[package]]
 name = "actix-cors"
-version = "0.6.4"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b340e9cfa5b08690aae90fb61beb44e9b06f44fe3d0f93781aaa58cfba86245e"
+checksum = "f9e772b3bcafe335042b5db010ab7c09013dad6eac4915c91d8d50902769f331"
 dependencies = [
  "actix-utils",
  "actix-web",
@@ -36,18 +36,18 @@ dependencies = [
 
 [[package]]
 name = "actix-http"
-version = "3.3.1"
+version = "3.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2079246596c18b4a33e274ae10c0e50613f4d32a4198e09c7b93771013fed74"
+checksum = "d223b13fd481fc0d1f83bb12659ae774d9e3601814c68a0bc539731698cca743"
 dependencies = [
  "actix-codec",
  "actix-rt",
  "actix-service",
  "actix-tls",
  "actix-utils",
- "ahash 0.8.3",
- "base64 0.21.5",
- "bitflags 1.3.2",
+ "ahash",
+ "base64 0.21.7",
+ "bitflags 2.4.1",
  "brotli",
  "bytes",
  "bytestring",
@@ -56,7 +56,7 @@ dependencies = [
  "flate2",
  "futures-core",
  "h2",
- "http 0.2.9",
+ "http 0.2.11",
  "httparse",
  "httpdate",
  "itoa",
@@ -80,7 +80,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb"
 dependencies = [
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -90,7 +90,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d66ff4d247d2b160861fa2866457e85706833527840e4133f8f49aa423a38799"
 dependencies = [
  "bytestring",
- "http 0.2.9",
+ "http 0.2.11",
  "regex",
  "serde",
  "tracing",
@@ -98,9 +98,9 @@ dependencies = [
 
 [[package]]
 name = "actix-rt"
-version = "2.8.0"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15265b6b8e2347670eb363c47fc8c75208b4a4994b27192f345fcbe707804f3e"
+checksum = "28f32d40287d3f402ae0028a9d54bef51af15c8769492826a69d28f81893151d"
 dependencies = [
  "actix-macros",
  "futures-core",
@@ -138,19 +138,20 @@ dependencies = [
 
 [[package]]
 name = "actix-tls"
-version = "3.0.3"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fde0cf292f7cdc7f070803cb9a0d45c018441321a78b1042ffbbb81ec333297"
+checksum = "d4cce60a2f2b477bc72e5cde0af1812a6e82d8fd85b5570a5dcf2a5bf2c5be5f"
 dependencies = [
- "actix-codec",
  "actix-rt",
  "actix-service",
  "actix-utils",
  "futures-core",
- "log",
+ "impl-more",
  "pin-project-lite",
+ "tokio",
  "tokio-rustls 0.23.4",
  "tokio-util",
+ "tracing",
  "webpki-roots 0.22.6",
 ]
 
@@ -166,9 +167,9 @@ dependencies = [
 
 [[package]]
 name = "actix-web"
-version = "4.3.1"
+version = "4.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd3cb42f9566ab176e1ef0b8b3a896529062b4efc6be0123046095914c4c1c96"
+checksum = "43a6556ddebb638c2358714d853257ed226ece6023ef9364f23f0c70737ea984"
 dependencies = [
  "actix-codec",
  "actix-http",
@@ -180,7 +181,7 @@ dependencies = [
  "actix-tls",
  "actix-utils",
  "actix-web-codegen",
- "ahash 0.7.6",
+ "ahash",
  "bytes",
  "bytestring",
  "cfg-if",
@@ -189,7 +190,6 @@ dependencies = [
  "encoding_rs",
  "futures-core",
  "futures-util",
- "http 0.2.9",
  "itoa",
  "language-tags",
  "log",
@@ -201,7 +201,7 @@ dependencies = [
  "serde_json",
  "serde_urlencoded",
  "smallvec",
- "socket2 0.4.9",
+ "socket2 0.5.5",
  "time",
  "url",
 ]
@@ -257,25 +257,15 @@ dependencies = [
 
 [[package]]
 name = "ahash"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
-dependencies = [
- "getrandom",
- "once_cell",
- "version_check",
-]
-
-[[package]]
-name = "ahash"
-version = "0.8.3"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
 dependencies = [
  "cfg-if",
  "getrandom",
  "once_cell",
  "version_check",
+ "zerocopy",
 ]
 
 [[package]]
@@ -303,6 +293,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
 name = "anes"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -310,9 +306,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
 
 [[package]]
 name = "anstream"
-version = "0.6.4"
+version = "0.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44"
+checksum = "4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba"
 dependencies = [
  "anstyle",
  "anstyle-parse",
@@ -358,9 +354,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
 dependencies = [
  "backtrace",
 ]
@@ -373,24 +369,25 @@ checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c"
 
 [[package]]
 name = "arbitrary"
-version = "1.3.0"
+version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e"
+checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
 dependencies = [
  "derive_arbitrary",
 ]
 
 [[package]]
 name = "arroy"
-version = "0.1.0"
-source = "git+https://github.com/meilisearch/arroy.git#d372648212e561a4845077cdb9239423d78655a2"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "efddeb1e7c32a551cc07ef4c3e181e3cd5478fdaf4f0bd799983171c1f6efe57"
 dependencies = [
  "bytemuck",
  "byteorder",
  "heed",
  "log",
- "memmap2 0.9.0",
- "ordered-float 4.2.0",
+ "memmap2 0.9.3",
+ "ordered-float",
  "rand",
  "rayon",
  "roaring",
@@ -427,21 +424,27 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "async-trait"
-version = "0.1.72"
+version = "0.1.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09"
+checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
+name = "atomic"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba"
+
+[[package]]
 name = "atomic-polyfill"
 version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -479,9 +482,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "base64"
-version = "0.21.5"
+version = "0.21.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
 name = "base64ct"
@@ -491,7 +494,7 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
 
 [[package]]
 name = "benchmarks"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
  "anyhow",
  "bytes",
@@ -533,6 +536,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "bindgen"
+version = "0.68.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
+dependencies = [
+ "bitflags 2.4.1",
+ "cexpr",
+ "clang-sys",
+ "lazy_static",
+ "lazycell",
+ "peeking_take_while",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "bit-set"
 version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -573,9 +596,9 @@ dependencies = [
 
 [[package]]
 name = "brotli"
-version = "3.3.4"
+version = "3.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68"
+checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -584,9 +607,9 @@ dependencies = [
 
 [[package]]
 name = "brotli-decompressor"
-version = "2.3.4"
+version = "2.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744"
+checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -594,16 +617,25 @@ dependencies = [
 
 [[package]]
 name = "bstr"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c"
+checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
 dependencies = [
  "memchr",
- "regex-automata 0.4.3",
+ "regex-automata",
  "serde",
 ]
 
 [[package]]
+name = "build-info"
+version = "1.7.3"
+dependencies = [
+ "anyhow",
+ "time",
+ "vergen-git2",
+]
+
+[[package]]
 name = "bumpalo"
 version = "3.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -642,7 +674,7 @@ checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -653,9 +685,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.4.0"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
 
 [[package]]
 name = "bytestring"
@@ -688,24 +720,25 @@ dependencies = [
 ]
 
 [[package]]
-name = "calendrical_calculations"
-version = "0.1.0"
+name = "camino"
+version = "1.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8dfe3bc6a50b4667fafdb6d9cf26731c5418c457e317d8166c972014facf9a5d"
+checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c"
 dependencies = [
- "core_maths",
- "displaydoc",
+ "serde",
 ]
 
 [[package]]
 name = "candle-core"
-version = "0.3.1"
-source = "git+https://github.com/huggingface/candle.git#f4fcf6090045ac44122fd5f0a7e46db6e3e16528"
+version = "0.3.3"
+source = "git+https://github.com/huggingface/candle.git#5270224f407502b82fe90bc2622894ce3871b002"
 dependencies = [
  "byteorder",
+ "candle-kernels",
+ "cudarc",
  "gemm",
  "half 2.3.1",
- "memmap2 0.7.1",
+ "memmap2 0.9.3",
  "num-traits",
  "num_cpus",
  "rand",
@@ -718,10 +751,20 @@ dependencies = [
 ]
 
 [[package]]
-name = "candle-nn"
+name = "candle-kernels"
 version = "0.3.1"
 source = "git+https://github.com/huggingface/candle.git#f4fcf6090045ac44122fd5f0a7e46db6e3e16528"
 dependencies = [
+ "anyhow",
+ "glob",
+ "rayon",
+]
+
+[[package]]
+name = "candle-nn"
+version = "0.3.3"
+source = "git+https://github.com/huggingface/candle.git#5270224f407502b82fe90bc2622894ce3871b002"
+dependencies = [
  "candle-core",
  "half 2.3.1",
  "num-traits",
@@ -733,8 +776,8 @@ dependencies = [
 
 [[package]]
 name = "candle-transformers"
-version = "0.3.1"
-source = "git+https://github.com/huggingface/candle.git#f4fcf6090045ac44122fd5f0a7e46db6e3e16528"
+version = "0.3.3"
+source = "git+https://github.com/huggingface/candle.git#5270224f407502b82fe90bc2622894ce3871b002"
 dependencies = [
  "byteorder",
  "candle-core",
@@ -750,10 +793,33 @@ dependencies = [
 ]
 
 [[package]]
+name = "cargo-platform"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ceed8ef69d8518a5dda55c07425450b58a4e1946f4951eab6d7191ee86c2443d"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo_metadata"
+version = "0.18.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037"
+dependencies = [
+ "camino",
+ "cargo-platform",
+ "semver",
+ "serde",
+ "serde_json",
+ "thiserror",
+]
+
+[[package]]
 name = "cargo_toml"
-version = "0.15.3"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "599aa35200ffff8f04c1925aa1acc92fa2e08874379ef42e210a80e527e60838"
+checksum = "802b755090e39835a4b0440fb0bbee0df7495a8b337f63db21e616f7821c7e8c"
 dependencies = [
  "serde",
  "toml",
@@ -767,9 +833,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
 
 [[package]]
 name = "cc"
-version = "1.0.82"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
  "jobserver",
  "libc",
@@ -785,6 +851,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "cexpr"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+dependencies = [
+ "nom",
+]
+
+[[package]]
 name = "cfg-if"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -802,9 +877,9 @@ dependencies = [
 
 [[package]]
 name = "charabia"
-version = "0.8.5"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb924701d850fbf0331302e7f9715c04e494b4b9bebb38ac48bdd30924e1936"
+checksum = "3a9071b1586dd067b5fdfd2069fab932c047ca5bbce4bd2bdee8af0f4b155053"
 dependencies = [
  "aho-corasick",
  "cow-utils",
@@ -812,15 +887,12 @@ dependencies = [
  "deunicode",
  "either",
  "fst",
- "icu",
- "icu_provider",
- "icu_provider_blob",
  "irg-kvariants",
  "jieba-rs",
  "lindera-core",
  "lindera-dictionary",
  "lindera-tokenizer",
- "litemap 0.6.1",
+ "litemap",
  "once_cell",
  "pinyin",
  "serde",
@@ -828,7 +900,7 @@ dependencies = [
  "unicode-normalization",
  "wana_kana",
  "whatlang",
- "zerovec 0.9.6",
+ "zerovec",
 ]
 
 [[package]]
@@ -869,10 +941,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "clang-sys"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading",
+]
+
+[[package]]
 name = "clap"
-version = "4.4.8"
+version = "4.4.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64"
+checksum = "80932e03c33999b9235edb8655bc9df3204adc9887c2f95b50cb1deb9fd54253"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -880,9 +963,9 @@ dependencies = [
 
 [[package]]
 name = "clap_builder"
-version = "4.4.8"
+version = "4.4.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc"
+checksum = "d6c0db58c659eef1c73e444d298c27322a1b52f6927d2ad470c0c0f96fa7b8fa"
 dependencies = [
  "anstream",
  "anstyle",
@@ -899,7 +982,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -909,10 +992,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 
 [[package]]
-name = "cobs"
-version = "0.2.3"
+name = "color-spantrace"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15"
+checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2"
+dependencies = [
+ "once_cell",
+ "owo-colors",
+ "tracing-core",
+ "tracing-error",
+]
 
 [[package]]
 name = "colorchoice"
@@ -958,12 +1047,6 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
 
 [[package]]
 name = "convert_case"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb4a24b1aaf0fd0ce8b45161144d6f42cd91677fd5940fd431183eb023b3a2b8"
-
-[[package]]
-name = "convert_case"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
@@ -999,15 +1082,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
 
 [[package]]
-name = "core_maths"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3b02505ccb8c50b0aa21ace0fc08c3e53adebd4e58caa18a36152803c7709a3"
-dependencies = [
- "libm",
-]
-
-[[package]]
 name = "cow-utils"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1075,11 +1149,10 @@ checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52"
 
 [[package]]
 name = "crossbeam"
-version = "0.8.2"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c"
+checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
 dependencies = [
- "cfg-if",
  "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-epoch",
@@ -1089,56 +1162,46 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.15"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-queue"
-version = "0.3.8"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "crunchy"
@@ -1158,9 +1221,9 @@ dependencies = [
 
 [[package]]
 name = "csv"
-version = "1.2.2"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "626ae34994d3d8d668f4269922248239db4ae42d538b14c398b74a52208e8086"
+checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
 dependencies = [
  "csv-core",
  "itoa",
@@ -1170,21 +1233,40 @@ dependencies = [
 
 [[package]]
 name = "csv-core"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90"
+checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
+name = "cudarc"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9395df0cab995685664e79cc35ad6302bf08fb9c5d82301875a183affe1278b1"
+dependencies = [
+ "half 2.3.1",
+]
+
+[[package]]
 name = "darling"
 version = "0.14.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
 dependencies = [
- "darling_core",
- "darling_macro",
+ "darling_core 0.14.4",
+ "darling_macro 0.14.4",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+dependencies = [
+ "darling_core 0.20.3",
+ "darling_macro 0.20.3",
 ]
 
 [[package]]
@@ -1202,23 +1284,48 @@ dependencies = [
 ]
 
 [[package]]
+name = "darling_core"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "darling_macro"
 version = "0.14.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
 dependencies = [
- "darling_core",
+ "darling_core 0.14.4",
  "quote",
  "syn 1.0.109",
 ]
 
 [[package]]
-name = "deduplicating_array"
-version = "0.1.5"
+name = "darling_macro"
+version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a636096586ca093a10ac0175bfb384d024089dca0dae54e3e69bc1c1596358e8"
+checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
 dependencies = [
- "serde",
+ "darling_core 0.20.3",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "debugid"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d"
+dependencies = [
+ "uuid",
 ]
 
 [[package]]
@@ -1233,13 +1340,13 @@ dependencies = [
 
 [[package]]
 name = "derive_arbitrary"
-version = "1.3.1"
+version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8"
+checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -1248,7 +1355,16 @@ version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8"
 dependencies = [
- "derive_builder_macro",
+ "derive_builder_macro 0.12.0",
+]
+
+[[package]]
+name = "derive_builder"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f59169f400d8087f238c5c0c7db6a28af18681717f3b623227d92f397e938c7"
+dependencies = [
+ "derive_builder_macro 0.13.1",
 ]
 
 [[package]]
@@ -1257,7 +1373,19 @@ version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f"
 dependencies = [
- "darling",
+ "darling 0.14.4",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "derive_builder_core"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4ec317cc3e7ef0928b0ca6e4a634a4d6c001672ae210438cf114a83e56b018d"
+dependencies = [
+ "darling 0.14.4",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -1269,7 +1397,17 @@ version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e"
 dependencies = [
- "derive_builder_core",
+ "derive_builder_core 0.12.0",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "derive_builder_macro"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "870368c3fb35b8031abb378861d4460f573b92238ec2152c927a21f77e3e0127"
+dependencies = [
+ "derive_builder_core 0.13.1",
  "syn 1.0.109",
 ]
 
@@ -1288,9 +1426,9 @@ dependencies = [
 
 [[package]]
 name = "deserr"
-version = "0.6.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61d55a63aabcb2f7893231e6b8ddf8acc00814d20a64463e52cf9b603ec326ee"
+checksum = "3418e814bb893a61b25a60db71dccab7cb70035d94ffe58c9b4a70387ac42083"
 dependencies = [
  "actix-http",
  "actix-utils",
@@ -1305,21 +1443,21 @@ dependencies = [
 
 [[package]]
 name = "deserr-internal"
-version = "0.6.0"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c4d5c86e5d887d880c7a3572a8041bfb3011acc81df86318855ea2cae66f3ef"
+checksum = "9cadd9624c995ecbd6d6c81ec0804fbbb335e3acba5326a06067ccd33295a37e"
 dependencies = [
- "convert_case 0.5.0",
+ "convert_case 0.6.0",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "deunicode"
-version = "1.3.3"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c1bba4f227a4a53d12b653f50ca7bf10c9119ae2aba56aff9e0338b5c98f36a"
+checksum = "3ae2a35373c5c74340b79ae6780b498b2b183915ec5dacf263aac5a099bf485a"
 
 [[package]]
 name = "digest"
@@ -1375,17 +1513,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "displaydoc"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
 name = "doc-comment"
 version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1402,13 +1529,12 @@ dependencies = [
 
 [[package]]
 name = "dump"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
  "anyhow",
  "big_s",
  "flate2",
- "http 0.2.9",
- "log",
+ "http 0.2.11",
  "maplit",
  "meili-snap",
  "meilisearch-auth",
@@ -1422,7 +1548,8 @@ dependencies = [
  "tempfile",
  "thiserror",
  "time",
- "uuid 1.5.0",
+ "tracing",
+ "uuid",
 ]
 
 [[package]]
@@ -1445,12 +1572,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "embedded-io"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced"
-
-[[package]]
 name = "encode_unicode"
 version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1539,30 +1660,42 @@ dependencies = [
 ]
 
 [[package]]
+name = "enum-as-inner"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+]
+
+[[package]]
 name = "enum-iterator"
-version = "1.4.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7add3873b5dd076766ee79c8e406ad1a472c385476b9e38849f8eec24f1be689"
+checksum = "9fd242f399be1da0a5354aa462d57b4ab2b4ee0683cc552f7c007d2d12d36e94"
 dependencies = [
  "enum-iterator-derive",
 ]
 
 [[package]]
 name = "enum-iterator-derive"
-version = "1.2.1"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb"
+checksum = "03cdc46ec28bd728e67540c528013c6a10eb69a02eb31078a1bda695438cbfb8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "env_logger"
-version = "0.10.0"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -1595,9 +1728,9 @@ checksum = "d817e038c30374a4bcb22f94d0a8a0e216958d4c3dcde369b1439fec4bdda6e6"
 
 [[package]]
 name = "fancy-regex"
-version = "0.11.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2"
+checksum = "7493d4c459da9f84325ad297371a6b2b8a162800873a22e3b6b6512e61d18c05"
 dependencies = [
  "bit-set",
  "regex",
@@ -1605,15 +1738,15 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.0.0"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
 name = "faux"
-version = "0.1.9"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c3b5e56a69ca67c241191cd9d484e14fb0fe89f5e539c2e8448eafd1f65c1f0"
+checksum = "14b55a7f424e532314115b5cdc6d9711b15ac453bfe0dcfa212baebc5efacd60"
 dependencies = [
  "faux_macros",
  "paste",
@@ -1621,25 +1754,26 @@ dependencies = [
 
 [[package]]
 name = "faux_macros"
-version = "0.1.9"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35c9bb4a2c13ffb3a93a39902aaf4e7190a1706a4779b6db0449aee433d26c4a"
+checksum = "d15473d7f83b54a44826907af16ae5727eaacaf6e53b51474016d3efd9aa35d5"
 dependencies = [
- "darling",
+ "darling 0.20.3",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
- "uuid 0.8.2",
+ "syn 2.0.48",
+ "uuid",
 ]
 
 [[package]]
 name = "file-store"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
  "faux",
  "tempfile",
  "thiserror",
- "uuid 1.5.0",
+ "tracing",
+ "uuid",
 ]
 
 [[package]]
@@ -1656,7 +1790,7 @@ dependencies = [
 
 [[package]]
 name = "filter-parser"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
  "insta",
  "nom",
@@ -1665,17 +1799,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "fixed_decimal"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5287d527037d0f35c8801880361eb38bb9bce194805350052c2a79538388faeb"
-dependencies = [
- "displaydoc",
- "smallvec",
- "writeable",
-]
-
-[[package]]
 name = "flate2"
 version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1687,7 +1810,7 @@ dependencies = [
 
 [[package]]
 name = "flatten-serde-json"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
  "criterion",
  "serde_json",
@@ -1716,9 +1839,9 @@ checksum = "7ab85b9b05e3978cc9a9cf8fea7f01b494e1a09ed3037e16ba39edc7a29eb61a"
 
 [[package]]
 name = "futures"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1731,9 +1854,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -1741,15 +1864,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -1758,38 +1881,38 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.29"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1805,7 +1928,7 @@ dependencies = [
 
 [[package]]
 name = "fuzzers"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
  "arbitrary",
  "clap",
@@ -1826,10 +1949,23 @@ dependencies = [
 ]
 
 [[package]]
+name = "fxprof-processed-profile"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd"
+dependencies = [
+ "bitflags 2.4.1",
+ "debugid",
+ "fxhash",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
 name = "gemm"
-version = "0.16.15"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b3afa707040531a7527477fd63a81ea4f6f3d26037a2f96776e57fb843b258e"
+checksum = "e97d506c68f4fb12325b52a638e7d54cc87e3593a4ded0de60218b6dfd65f645"
 dependencies = [
  "dyn-stack",
  "gemm-c32",
@@ -1847,9 +1983,9 @@ dependencies = [
 
 [[package]]
 name = "gemm-c32"
-version = "0.16.15"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cc3973a4c30c73f26a099113953d0c772bb17ee2e07976c0a06b8fe1f38a57d"
+checksum = "0dd16f26e8f34661edc906d8c9522b59ec1655c865a98a58950d0246eeaca9da"
 dependencies = [
  "dyn-stack",
  "gemm-common",
@@ -1862,9 +1998,9 @@ dependencies = [
 
 [[package]]
 name = "gemm-c64"
-version = "0.16.15"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30362894b93dada374442cb2edf4512ddf19513c9bec88e06a445bcb6b22e64f"
+checksum = "a8e34381bc060b47fbd25522a281799ef763cd27f43bbd1783d935774659242a"
 dependencies = [
  "dyn-stack",
  "gemm-common",
@@ -1877,9 +2013,9 @@ dependencies = [
 
 [[package]]
 name = "gemm-common"
-version = "0.16.15"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "988499faa80566b046b4fee2c5f15af55b5a20c1fe8486b112ebb34efa045ad6"
+checksum = "22518a76339b09276f77c3166c44262e55f633712fe8a44fd0573505887feeab"
 dependencies = [
  "bytemuck",
  "dyn-stack",
@@ -1892,13 +2028,14 @@ dependencies = [
  "raw-cpuid",
  "rayon",
  "seq-macro",
+ "sysctl",
 ]
 
 [[package]]
 name = "gemm-f16"
-version = "0.16.15"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6cf2854a12371684c38d9a865063a27661812a3ff5803454c5742e8f5a388ce"
+checksum = "70409bbf3ef83b38cbe4a58cd4b797c1c27902505bdd926a588ea61b6c550a84"
 dependencies = [
  "dyn-stack",
  "gemm-common",
@@ -1914,9 +2051,9 @@ dependencies = [
 
 [[package]]
 name = "gemm-f32"
-version = "0.16.15"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bc84003cf6d950a7c7ca714ad6db281b6cef5c7d462f5cd9ad90ea2409c7227"
+checksum = "5ea3068edca27f100964157211782eba19e961aa4d0d2bdac3e1775a51aa7680"
 dependencies = [
  "dyn-stack",
  "gemm-common",
@@ -1929,9 +2066,9 @@ dependencies = [
 
 [[package]]
 name = "gemm-f64"
-version = "0.16.15"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35187ef101a71eed0ecd26fb4a6255b4192a12f1c5335f3a795698f2d9b6cf33"
+checksum = "5fd41e8f5a60dce8d8acd852a3f4b22f8e18be957e1937731be692c037652510"
 dependencies = [
  "dyn-stack",
  "gemm-common",
@@ -1989,11 +2126,11 @@ checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
 
 [[package]]
 name = "git2"
-version = "0.16.1"
+version = "0.18.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccf7f68c2995f392c49fffb4f95ae2c873297830eb25c6bc4c114ce8f4562acc"
+checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.1",
  "libc",
  "libgit2-sys",
  "log",
@@ -2020,17 +2157,17 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.20"
+version = "0.3.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
+checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
 dependencies = [
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
  "futures-util",
- "http 0.2.9",
- "indexmap 1.9.3",
+ "http 0.2.11",
+ "indexmap",
  "slab",
  "tokio",
  "tokio-util",
@@ -2068,20 +2205,15 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 dependencies = [
- "ahash 0.7.6",
+ "ahash",
+ "allocator-api2",
 ]
 
 [[package]]
-name = "hashbrown"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
-
-[[package]]
 name = "heapless"
 version = "0.7.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2177,9 +2309,9 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
 dependencies = [
  "bytes",
  "fnv",
@@ -2204,7 +2336,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
 dependencies = [
  "bytes",
- "http 0.2.9",
+ "http 0.2.11",
  "pin-project-lite",
 ]
 
@@ -2237,7 +2369,7 @@ dependencies = [
  "futures-core",
  "futures-util",
  "h2",
- "http 0.2.9",
+ "http 0.2.11",
  "http-body",
  "httparse",
  "httpdate",
@@ -2257,495 +2389,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97"
 dependencies = [
  "futures-util",
- "http 0.2.9",
+ "http 0.2.11",
  "hyper",
- "rustls 0.21.6",
+ "rustls 0.21.10",
  "tokio",
  "tokio-rustls 0.24.1",
 ]
 
 [[package]]
-name = "icu"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30f75f394ebee8d539bef8f6f02ad7b5f41c33de74c9eae1a50337b382a5aab1"
-dependencies = [
- "icu_calendar",
- "icu_casemap",
- "icu_collator",
- "icu_collections",
- "icu_compactdecimal",
- "icu_datetime",
- "icu_decimal",
- "icu_displaynames",
- "icu_list",
- "icu_locid",
- "icu_locid_transform",
- "icu_normalizer",
- "icu_plurals",
- "icu_properties",
- "icu_provider",
- "icu_relativetime",
- "icu_segmenter",
- "icu_timezone",
- "icu_transliterate",
-]
-
-[[package]]
-name = "icu_calendar"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b520c5675775e3838447c33fc55bf558148c6824ef0d20ff7a9e0df7345a281c"
-dependencies = [
- "calendrical_calculations",
- "displaydoc",
- "icu_calendar_data",
- "icu_locid",
- "icu_locid_transform",
- "icu_provider",
- "serde",
- "tinystr",
- "writeable",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_calendar_data"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75d8d1a514ca7e6dc547be930f2fd661d578909c07cf1c1adade81c3f7a78840"
-
-[[package]]
-name = "icu_casemap"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "976068d7759293cbd9daa0d1669618bb9094c7ee54e546cd8b877dd4fe59007a"
-dependencies = [
- "displaydoc",
- "icu_casemap_data",
- "icu_collections",
- "icu_locid",
- "icu_properties",
- "icu_provider",
- "serde",
- "writeable",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_casemap_data"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1251070c14d5b94cd00f97025e9cedce6a6eeb39485e2a226c58432cc4f72ffd"
-
-[[package]]
-name = "icu_collator"
-version = "1.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be493c81154545a00fc5196e814cae0e1470bc696d518b5df877049aa6bcefe1"
-dependencies = [
- "displaydoc",
- "icu_collator_data",
- "icu_collections",
- "icu_locid",
- "icu_locid_transform",
- "icu_normalizer",
- "icu_properties",
- "icu_provider",
- "serde",
- "smallvec",
- "utf16_iter",
- "utf8_iter",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_collator_data"
-version = "1.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dbe9abe5ce570ad4707026f37bc21ef95c36b945c3c4564b9aa4e2e1c043126"
-
-[[package]]
-name = "icu_collections"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3907b2246e8dd5a29ead8a965e7c0c8a90e9b928e614a4279257d45c5e553e91"
-dependencies = [
- "displaydoc",
- "serde",
- "yoke",
- "zerofrom",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_compactdecimal"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a8bb9143e7681fd5f5877c76f7b6365e173545d00d0e12ef23ba1888a996baa"
-dependencies = [
- "displaydoc",
- "fixed_decimal",
- "icu_compactdecimal_data",
- "icu_decimal",
- "icu_locid_transform",
- "icu_plurals",
- "icu_provider",
- "writeable",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_compactdecimal_data"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e9b7585f26db531ea5aaedaa68cb66cd2be37fe698b33a289849ff3129545b"
-
-[[package]]
-name = "icu_datetime"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f5bf2e6dd961b59ee5935070220915db6cf0ab5137de362964f800c2b7d14fa"
-dependencies = [
- "displaydoc",
- "either",
- "fixed_decimal",
- "icu_calendar",
- "icu_datetime_data",
- "icu_decimal",
- "icu_locid",
- "icu_locid_transform",
- "icu_plurals",
- "icu_provider",
- "icu_timezone",
- "litemap 0.7.1",
- "serde",
- "smallvec",
- "tinystr",
- "writeable",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_datetime_data"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "078b2ed516a2f5054ee7f55b1fe970b92e90ae4cace8a0fe1e5f9fc2e94be609"
-
-[[package]]
-name = "icu_decimal"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1986a0b7df834aaddb911b4593c990950ac5606fc83ce9aad4311be80f51e81a"
-dependencies = [
- "displaydoc",
- "fixed_decimal",
- "icu_decimal_data",
- "icu_locid",
- "icu_locid_transform",
- "icu_provider",
- "serde",
- "writeable",
-]
-
-[[package]]
-name = "icu_decimal_data"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c064b3828953151f8c610bfff6fec776f958641249ebfd1cf36f073f0654e77"
-
-[[package]]
-name = "icu_displaynames"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c98329d348e918ac7e88e6d6613a46bef09ca8a65db4ddf70d86e6eaac0e2ec3"
-dependencies = [
- "icu_displaynames_data",
- "icu_locid",
- "icu_locid_transform",
- "icu_provider",
- "serde",
- "tinystr",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_displaynames_data"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60f9f56c427f1e80383667e8fb13c07707f6561839283115617cc67307a5d020"
-
-[[package]]
-name = "icu_list"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc1a44bbed77a7e7b555f9d7dd4b43f75ec1402b438a901d20451943d50cbd90"
-dependencies = [
- "deduplicating_array",
- "displaydoc",
- "icu_list_data",
- "icu_locid_transform",
- "icu_provider",
- "regex-automata 0.2.0",
- "serde",
- "writeable",
-]
-
-[[package]]
-name = "icu_list_data"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3237583f0cb7feafabb567c4492fe9ef1d2d4113f6a8798a923273ea5de996d"
-
-[[package]]
-name = "icu_locid"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f284eb342dc49d3e9d9f3b188489d76b5d22dfb1d1a5e0d1941811253bac625c"
-dependencies = [
- "displaydoc",
- "litemap 0.7.1",
- "serde",
- "tinystr",
- "writeable",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_locid_transform"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6551daf80882d8e68eee186cc19e132d8bde1b1f059a79b93384a5ca0e8fc5e7"
-dependencies = [
- "displaydoc",
- "icu_locid",
- "icu_locid_transform_data",
- "icu_provider",
- "serde",
- "tinystr",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_locid_transform_data"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a741eba5431f75eb2f1f9022d3cffabcadda6771e54fb4e77c8ba8653e4da44"
-
-[[package]]
-name = "icu_normalizer"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "080fc33a720d50a7342b0c58df010fbcfb842d6f78ef81555f8b1ac6bba57d3c"
-dependencies = [
- "displaydoc",
- "icu_collections",
- "icu_normalizer_data",
- "icu_properties",
- "icu_provider",
- "serde",
- "smallvec",
- "utf16_iter",
- "utf8_iter",
- "write16",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_normalizer_data"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f8d22f74066c2e6442db2a9aa14950278e86719e811e304e48bae03094b369d"
-
-[[package]]
-name = "icu_plurals"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20556516b8be2b2f5dc3d6b23884b65c5c59ed8be0b44c419e4808c9b0792fce"
-dependencies = [
- "displaydoc",
- "fixed_decimal",
- "icu_locid",
- "icu_locid_transform",
- "icu_plurals_data",
- "icu_provider",
- "serde",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_plurals_data"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdc552215224997aaaa4e05d95981386d3c52042acebfcc732137d5d9be96a21"
-
-[[package]]
-name = "icu_properties"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3477ae70f8ca8dc08ff7574b5398ed0a2f2e4e6b66bdff2558a92ed67e262be1"
-dependencies = [
- "displaydoc",
- "icu_collections",
- "icu_locid_transform",
- "icu_properties_data",
- "icu_provider",
- "serde",
- "tinystr",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_properties_data"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c8bb3b67a8347e94d580434369e5c7ee89999b9309d04b7cfc88dfaa0f31b59"
-
-[[package]]
-name = "icu_provider"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68acdef80034b5e35d8524e9817479d389a4f9774f3f0cbe1bf3884d80fd5934"
-dependencies = [
- "displaydoc",
- "icu_locid",
- "icu_provider_macros",
- "postcard",
- "serde",
- "stable_deref_trait",
- "tinystr",
- "writeable",
- "yoke",
- "zerofrom",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_provider_blob"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c31326d28c7f95a964a4f0ee86c24002da5f6db907e3bcb079949b4ff103b6a9"
-dependencies = [
- "icu_provider",
- "postcard",
- "serde",
- "writeable",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_provider_macros"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2060258edfcfe32ca7058849bf0f146cb5c59aadbedf480333c0d0002f97bc99"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
-]
-
-[[package]]
-name = "icu_relativetime"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4e6c1b531ab35f5b0cb552d3fb8dab1cb49f98e68e12bdc2169ca15e805207c"
-dependencies = [
- "displaydoc",
- "fixed_decimal",
- "icu_decimal",
- "icu_locid_transform",
- "icu_plurals",
- "icu_provider",
- "icu_relativetime_data",
- "serde",
- "writeable",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_relativetime_data"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71ec2ca0aff8c6865075c6257bc91d21a77acb6465635306a280af89208bed24"
-
-[[package]]
-name = "icu_segmenter"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcb3c1981ce2187a745f391a741cb14e77453325acb3b2e014b05da51c0a39f2"
-dependencies = [
- "core_maths",
- "displaydoc",
- "icu_collections",
- "icu_locid",
- "icu_provider",
- "icu_segmenter_data",
- "serde",
- "utf8_iter",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_segmenter_data"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9703f6713044d1c0a1335a6d78ffece4c9380582416ace6feeb608e84d279fc7"
-
-[[package]]
-name = "icu_timezone"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19e6401cd210ccda98b2e7fc707831b29c6efe319efbbec460f957b6f331f626"
-dependencies = [
- "displaydoc",
- "icu_calendar",
- "icu_locid",
- "icu_provider",
- "icu_timezone_data",
- "serde",
- "tinystr",
- "zerotrie",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_timezone_data"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d7e214a653bac59b768c42f82d252f13af95e8a9cb07b6108b8bc723c561b43"
-
-[[package]]
-name = "icu_transliterate"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4bdf006774b5a5898d97af6c95b148d34cd5c87cbed00610ff873e5b5885e28"
-dependencies = [
- "displaydoc",
- "icu_collections",
- "icu_locid",
- "icu_normalizer",
- "icu_properties",
- "icu_provider",
- "icu_unicodeset_parse",
- "litemap 0.7.1",
- "serde",
- "zerovec 0.10.0",
-]
-
-[[package]]
-name = "icu_unicodeset_parse"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2c3c1ab072cb9ec2dfb377ed7be07bf1bdce055b8324ba6392323f588c38c5a"
-dependencies = [
- "icu_collections",
- "icu_properties",
- "icu_provider",
- "tinystr",
- "zerovec 0.10.0",
-]
-
-[[package]]
 name = "ident_case"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2762,27 +2413,32 @@ dependencies = [
 ]
 
 [[package]]
+name = "impl-more"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "206ca75c9c03ba3d4ace2460e57b189f39f43de612c2f85836e65c929701bb2d"
+
+[[package]]
 name = "index-scheduler"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
  "anyhow",
  "big_s",
  "bincode",
  "crossbeam",
  "csv",
- "derive_builder",
+ "derive_builder 0.12.0",
  "dump",
  "enum-iterator",
  "file-store",
  "flate2",
  "insta",
- "log",
  "meili-snap",
  "meilisearch-auth",
  "meilisearch-types",
- "nelson",
  "page_size 0.5.0",
  "puffin",
+ "rayon",
  "roaring",
  "serde",
  "serde_json",
@@ -2790,28 +2446,19 @@ dependencies = [
  "tempfile",
  "thiserror",
  "time",
+ "tracing",
  "ureq",
- "uuid 1.5.0",
+ "uuid",
 ]
 
 [[package]]
 name = "indexmap"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
-]
-
-[[package]]
-name = "indexmap"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.0",
+ "hashbrown",
  "serde",
 ]
 
@@ -2839,9 +2486,9 @@ dependencies = [
 
 [[package]]
 name = "insta"
-version = "1.31.0"
+version = "1.34.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0770b0a3d4c70567f0d58331f3088b0e4c4f56c9b8d764efe654b4a5d46de3a"
+checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc"
 dependencies = [
  "console",
  "lazy_static",
@@ -2892,13 +2539,13 @@ dependencies = [
 
 [[package]]
 name = "is-terminal"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
 dependencies = [
  "hermit-abi",
- "rustix 0.38.26",
- "windows-sys 0.48.0",
+ "rustix 0.38.31",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2933,7 +2580,7 @@ checksum = "93f0c1347cd3ac8d7c6e3a2dc33ac496d365cf09fc0831aa61111e1a6738983e"
 dependencies = [
  "cedarwood",
  "fxhash",
- "hashbrown 0.14.0",
+ "hashbrown",
  "lazy_static",
  "phf",
  "phf_codegen",
@@ -2960,7 +2607,7 @@ dependencies = [
 
 [[package]]
 name = "json-depth-checker"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
  "criterion",
  "serde_json",
@@ -2972,9 +2619,9 @@ version = "8.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "pem",
- "ring",
+ "ring 0.16.20",
  "serde",
  "serde_json",
  "simple_asn1",
@@ -3003,6 +2650,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
+name = "lazycell"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+
+[[package]]
 name = "levenshtein_automata"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3013,15 +2666,15 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.150"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libgit2-sys"
-version = "0.14.2+1.5.1"
+version = "0.16.2+1.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f3d95f6b51075fe9810a7ae22c7095f12b98005ab364d8544797a825ce946a4"
+checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8"
 dependencies = [
  "cc",
  "libc",
@@ -3030,6 +2683,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "libloading"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "libm"
 version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3037,19 +2700,30 @@ checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
 
 [[package]]
 name = "libmimalloc-sys"
-version = "0.1.33"
+version = "0.1.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4ac0e912c8ef1b735e92369695618dc5b1819f5a7bf3f167301a3ba1cea515e"
+checksum = "3979b5c37ece694f1f5e51e7ecc871fdb0f517ed04ee45f88d15d6d553cb9664"
 dependencies = [
  "cc",
  "libc",
 ]
 
 [[package]]
+name = "libproc"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "229004ebba9d1d5caf41623f1523b6d52abb47d9f6ab87f7e6fc992e3b854aef"
+dependencies = [
+ "bindgen",
+ "errno",
+ "libc",
+]
+
+[[package]]
 name = "libz-sys"
-version = "1.1.12"
+version = "1.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
+checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
 dependencies = [
  "cc",
  "libc",
@@ -3059,9 +2733,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-cc-cedict-builder"
-version = "0.27.1"
+version = "0.27.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f567a47e47b5420908424de2c6c5e424e3cafe588d0146bd128c0f3755758a3"
+checksum = "a90d23f7cef31c6ab7ac0d4f3b23940754207f7b5a80b080c39193caffe99ac2"
 dependencies = [
  "anyhow",
  "bincode",
@@ -3078,9 +2752,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-compress"
-version = "0.27.1"
+version = "0.27.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49f3e553d55ebe9881fa5e5de588b0a153456e93564d17dfbef498912caf63a2"
+checksum = "1927b7d2bd4ffc19e07691bf8609722663c341f80260a1c636cee8f1ec420dce"
 dependencies = [
  "anyhow",
  "flate2",
@@ -3089,9 +2763,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-core"
-version = "0.27.1"
+version = "0.27.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a9a2440cc156a4a911a174ec68203543d1efb10df3a700a59b6bf581e453c726"
+checksum = "3299caa2b81c9a076535a4651a83bf7d624c15f2349f243187fffc64b5a78251"
 dependencies = [
  "anyhow",
  "bincode",
@@ -3106,9 +2780,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-decompress"
-version = "0.27.1"
+version = "0.27.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e077a410e61c962cb526f71b7effd62ffc607488a8f61869c937582d2ccb529b"
+checksum = "7b82b8d2323a67dc8ff0c40751d199b7ba94cd5e3c13a5b31622d318acc79e5b"
 dependencies = [
  "anyhow",
  "flate2",
@@ -3117,9 +2791,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-dictionary"
-version = "0.27.1"
+version = "0.27.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9f57491adf7b311a3ee87f5e4a36454df16a2ec73de4ef28b2106fac80bd782"
+checksum = "cddf783b459d54b130d956889bec052c25fcb478a304e03fa9b2289387572bc5"
 dependencies = [
  "anyhow",
  "bincode",
@@ -3137,9 +2811,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-ipadic-builder"
-version = "0.27.1"
+version = "0.27.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3476ec7748aebd2eb23d496ddfce5e7e0a5c031cffcd214451043e02d029f11"
+checksum = "27c708f08f14b0806f6c4cce5324b4bcba27209463026b78c31f399f8be9d30d"
 dependencies = [
  "anyhow",
  "bincode",
@@ -3158,9 +2832,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-ipadic-neologd-builder"
-version = "0.27.1"
+version = "0.27.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b1c7576a02d5e4af2bf62de51790a01bc4b8bc0d0b6a6b86a46b157f5cb306d"
+checksum = "e5e67eb91652203d202f7d27ead220d1d8c9099552709b8429eae9c70f2312fb"
 dependencies = [
  "anyhow",
  "bincode",
@@ -3179,9 +2853,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-ko-dic"
-version = "0.27.1"
+version = "0.27.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b713ecd5b827d7d448c3c5eb3c6d5899ecaf22cd17087599996349a02c76828d"
+checksum = "d45da8d9a5888f4d4e78bb29fc82ff9ae519962efb0d2d92343b6cf8e373952f"
 dependencies = [
  "bincode",
  "byteorder",
@@ -3196,9 +2870,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-ko-dic-builder"
-version = "0.27.1"
+version = "0.27.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e545752f6487be87b572529ad594cb3b48d2ef20821516f598b2d152d23277b"
+checksum = "41c0933295dc945178bbc08f34111dc3ef22bfee38820f78453c8f8d4f3463d1"
 dependencies = [
  "anyhow",
  "bincode",
@@ -3216,9 +2890,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-tokenizer"
-version = "0.27.1"
+version = "0.27.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24a2d4606a5a4da62ac4a3680ee884a75da7f0c892dc967fc9cb983ceba39a8f"
+checksum = "348ce9bb3f2e5edc577420b98cca05b2177f3af50ef5ae278a1d8a1351d56197"
 dependencies = [
  "bincode",
  "byteorder",
@@ -3231,9 +2905,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-unidic"
-version = "0.27.1"
+version = "0.27.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "388b1bdf81794b5d5b8057ce0321c58ff4b90d676b637948ccc7863ae2f43d28"
+checksum = "74022a57c395ed7e213a9cd5833207e3c583145078ee9a164aeaec68b30c9d8e"
 dependencies = [
  "bincode",
  "byteorder",
@@ -3248,9 +2922,9 @@ dependencies = [
 
 [[package]]
 name = "lindera-unidic-builder"
-version = "0.27.1"
+version = "0.27.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdfa3e29a22c047da57fadd960ff674b720de15a1e2fb35b5ed67f3408afb469"
+checksum = "a34e5564ee81af82603cd6a03c3abe6e17cc0ae598bfa5078809f06e59e96e08"
 dependencies = [
  "anyhow",
  "bincode",
@@ -3323,7 +2997,7 @@ checksum = "fc2fb41a9bb4257a3803154bdf7e2df7d45197d1941c9b1a90ad815231630721"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3343,18 +3017,9 @@ dependencies = [
 
 [[package]]
 name = "litemap"
-version = "0.6.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "575d8a551c59104b4df91269921e5eab561aa1b77c618dac0414b5d44a4617de"
-
-[[package]]
-name = "litemap"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a1a2647d5b7134127971a6de0d533c49de2159167e7f259c427195f87168a1"
-dependencies = [
- "serde",
-]
+checksum = "f9d642685b028806386b2b6e75685faadd3eb65a85fff7df711ce18446a422da"
 
 [[package]]
 name = "lmdb-master-sys"
@@ -3403,28 +3068,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
-name = "logging_timer"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64e96f261d684b7089aa576bb74e823241dccd994b27d30fabf1dcb3af284fe9"
-dependencies = [
- "log",
- "logging_timer_proc_macros",
-]
-
-[[package]]
-name = "logging_timer_proc_macros"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10a9062912d7952c5588cc474795e0b9ee008e7e6781127945b85413d4b99d81"
-dependencies = [
- "log",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
 name = "lz4_flex"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3448,14 +3091,14 @@ checksum = "b8dd856d451cc0da70e2ef2ce95a18e39a93b7558bedf10201ad28503f918568"
 
 [[package]]
 name = "manifest-dir-macros"
-version = "0.1.17"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "450e5ef583bc05177c4975b9ea907047091a9f62e74e81fcafb99dbffac51e7e"
+checksum = "9c6d40de1ccdbf8bde2eaa0750595478a368f7b3a3f89c426e3454f64e29f593"
 dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -3472,7 +3115,7 @@ checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
 
 [[package]]
 name = "meili-snap"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
  "insta",
  "md5",
@@ -3481,7 +3124,7 @@ dependencies = [
 
 [[package]]
 name = "meilisearch"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
  "actix-cors",
  "actix-http",
@@ -3495,6 +3138,7 @@ dependencies = [
  "async-trait",
  "brotli",
  "bstr",
+ "build-info",
  "byte-unit",
  "bytes",
  "cargo_toml",
@@ -3503,22 +3147,20 @@ dependencies = [
  "deserr",
  "dump",
  "either",
- "env_logger",
  "file-store",
  "flate2",
  "fst",
  "futures",
  "futures-util",
  "hex",
- "http 0.2.9",
+ "http 0.2.11",
  "index-scheduler",
- "indexmap 2.0.0",
+ "indexmap",
  "insta",
  "is-terminal",
  "itertools 0.11.0",
  "jsonwebtoken",
  "lazy_static",
- "log",
  "manifest-dir-macros",
  "maplit",
  "meili-snap",
@@ -3529,7 +3171,7 @@ dependencies = [
  "num_cpus",
  "obkv",
  "once_cell",
- "ordered-float 3.7.0",
+ "ordered-float",
  "parking_lot",
  "permissive-json-pointer",
  "pin-project-lite",
@@ -3540,7 +3182,7 @@ dependencies = [
  "rayon",
  "regex",
  "reqwest",
- "rustls 0.20.8",
+ "rustls 0.20.9",
  "rustls-pemfile",
  "segment",
  "serde",
@@ -3548,7 +3190,7 @@ dependencies = [
  "serde_urlencoded",
  "sha-1",
  "sha2",
- "siphasher",
+ "siphasher 1.0.0",
  "slice-group-by",
  "static-files",
  "sysinfo",
@@ -3561,10 +3203,13 @@ dependencies = [
  "tokio",
  "tokio-stream",
  "toml",
+ "tracing",
+ "tracing-actix-web",
+ "tracing-subscriber",
+ "tracing-trace",
  "url",
  "urlencoding",
- "uuid 1.5.0",
- "vergen",
+ "uuid",
  "walkdir",
  "yaup",
  "zip",
@@ -3572,9 +3217,9 @@ dependencies = [
 
 [[package]]
 name = "meilisearch-auth"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "enum-iterator",
  "hmac",
  "maplit",
@@ -3586,12 +3231,12 @@ dependencies = [
  "sha2",
  "thiserror",
  "time",
- "uuid 1.5.0",
+ "uuid",
 ]
 
 [[package]]
 name = "meilisearch-types"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
  "actix-web",
  "anyhow",
@@ -3616,12 +3261,12 @@ dependencies = [
  "thiserror",
  "time",
  "tokio",
- "uuid 1.5.0",
+ "uuid",
 ]
 
 [[package]]
 name = "meilitool"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
  "anyhow",
  "clap",
@@ -3630,14 +3275,14 @@ dependencies = [
  "meilisearch-auth",
  "meilisearch-types",
  "time",
- "uuid 1.5.0",
+ "uuid",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "memmap2"
@@ -3646,30 +3291,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6"
 dependencies = [
  "libc",
- "stable_deref_trait",
 ]
 
 [[package]]
 name = "memmap2"
-version = "0.9.0"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "deaba38d7abf1d4cca21cc89e932e542ba2b9258664d2a9ef0e61512039c9375"
+checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92"
 dependencies = [
  "libc",
-]
-
-[[package]]
-name = "memoffset"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
+ "stable_deref_trait",
 ]
 
 [[package]]
 name = "milli"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
  "arroy",
  "big_s",
@@ -3696,14 +3332,12 @@ dependencies = [
  "grenad",
  "heed",
  "hf-hub",
- "indexmap 2.0.0",
+ "indexmap",
  "insta",
  "itertools 0.11.0",
  "json-depth-checker",
  "levenshtein_automata",
  "liquid",
- "log",
- "logging_timer",
  "maplit",
  "md5",
  "meili-snap",
@@ -3711,7 +3345,7 @@ dependencies = [
  "mimalloc",
  "obkv",
  "once_cell",
- "ordered-float 3.7.0",
+ "ordered-float",
  "puffin",
  "rand",
  "rand_pcg",
@@ -3731,14 +3365,15 @@ dependencies = [
  "time",
  "tokenizers",
  "tokio",
- "uuid 1.5.0",
+ "tracing",
+ "uuid",
 ]
 
 [[package]]
 name = "mimalloc"
-version = "0.1.37"
+version = "0.1.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e2894987a3459f3ffb755608bd82188f8ed00d0ae077f1edea29c068d639d98"
+checksum = "fa01922b5ea280a911e323e4d2fd24b7fe5cc4042e0d2cda3c40775cdc4bdc9c"
 dependencies = [
  "libmimalloc-sys",
 ]
@@ -3776,9 +3411,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.9"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "log",
@@ -3804,13 +3439,14 @@ checksum = "371717c0a5543d6a800cac822eac735aa7d2d2fbb41002e9856a4089532dbdce"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
-name = "nelson"
-version = "0.1.0"
-source = "git+https://github.com/meilisearch/nelson.git?rev=675f13885548fb415ead8fbb447e9e6d9314000a#675f13885548fb415ead8fbb447e9e6d9314000a"
+name = "mutually_exclusive_features"
+version = "0.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d02c0b00610773bb7fc61d85e13d86c7858cbdf00e1a120bfc41bc055dbaa0e"
 
 [[package]]
 name = "nom"
@@ -3824,9 +3460,9 @@ dependencies = [
 
 [[package]]
 name = "nom_locate"
-version = "4.1.0"
+version = "4.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1e299bf5ea7b212e811e71174c5d1a5d065c4c0ad0c8691ecb1f97e3e66025e"
+checksum = "1e3c83c053b0713da60c5b8de47fe8e494fe3ece5267b2f23090a07a053ba8f3"
 dependencies = [
  "bytecount",
  "memchr",
@@ -3843,6 +3479,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
 name = "num-bigint"
 version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3864,6 +3510,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
 name = "num-integer"
 version = "0.1.45"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3894,6 +3546,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "num_threads"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "number_prefix"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3916,9 +3577,9 @@ checksum = "6c459142426056c639ff88d053ebaaaeca0ee1411c94362892398ef4ccd81080"
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "onig"
@@ -3956,21 +3617,24 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
 
 [[package]]
 name = "ordered-float"
-version = "3.7.0"
+version = "4.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fc2dbde8f8a79f2102cc474ceb0ad68e3b80b85289ea62389b60e66777e4213"
+checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e"
 dependencies = [
  "num-traits",
 ]
 
 [[package]]
-name = "ordered-float"
-version = "4.2.0"
+name = "overload"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e"
-dependencies = [
- "num-traits",
-]
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "owo-colors"
+version = "3.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
 
 [[package]]
 name = "page_size"
@@ -4060,6 +3724,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "peeking_take_while"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+
+[[package]]
 name = "pem"
 version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4076,7 +3746,7 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "permissive-json-pointer"
-version = "1.6.2"
+version = "1.7.3"
 dependencies = [
  "big_s",
  "serde_json",
@@ -4112,7 +3782,7 @@ dependencies = [
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4166,7 +3836,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -4175,14 +3845,34 @@ version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
 dependencies = [
- "siphasher",
+ "siphasher 0.3.11",
+]
+
+[[package]]
+name = "pin-project"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.11"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c516611246607d0c04186886dbb3a754368ef82c79e9827a802c6d836dd111c"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -4192,9 +3882,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "pinyin"
-version = "0.9.0"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bd12336e3afa34152e002f57df37a7056778daa59ea542b3473b87f5fb260c4"
+checksum = "16f2611cd06a1ac239a0cea4521de9eb068a6ca110324ee00631aa68daa74fc0"
 
 [[package]]
 name = "pkg-config"
@@ -4246,17 +3936,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b"
 
 [[package]]
-name = "postcard"
-version = "1.0.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8"
-dependencies = [
- "cobs",
- "embedded-io",
- "serde",
-]
-
-[[package]]
 name = "powerfmt"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4294,9 +3973,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.66"
+version = "1.0.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
 dependencies = [
  "unicode-ident",
 ]
@@ -4368,9 +4047,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.32"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -4436,9 +4115,9 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.8.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
+checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
 dependencies = [
  "either",
  "rayon-core",
@@ -4457,9 +4136,9 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.12.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
  "crossbeam-deque",
  "crossbeam-utils",
@@ -4490,15 +4169,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "redox_syscall"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
 name = "redox_users"
 version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4511,61 +4181,52 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.9.3"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.3.6",
- "regex-syntax",
+ "regex-automata",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
 name = "regex-automata"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9368763f5a9b804326f3af749e16f9abf378d227bcdee7634b13d8f17793782"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.3.6"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
-name = "regex-automata"
-version = "0.4.3"
+name = "regex-syntax"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
+checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.4"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
-version = "0.11.22"
+version = "0.11.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b"
+checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "bytes",
  "encoding_rs",
  "futures-core",
  "futures-util",
  "h2",
- "http 0.2.9",
+ "http 0.2.11",
  "http-body",
  "hyper",
  "hyper-rustls",
@@ -4576,7 +4237,7 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls 0.21.6",
+ "rustls 0.21.10",
  "rustls-pemfile",
  "serde",
  "serde_json",
@@ -4584,10 +4245,12 @@ dependencies = [
  "system-configuration",
  "tokio",
  "tokio-rustls 0.24.1",
+ "tokio-util",
  "tower-service",
  "url",
  "wasm-bindgen",
  "wasm-bindgen-futures",
+ "wasm-streams",
  "web-sys",
  "webpki-roots 0.25.3",
  "winreg",
@@ -4615,12 +4278,26 @@ dependencies = [
  "libc",
  "once_cell",
  "spin 0.5.2",
- "untrusted",
+ "untrusted 0.7.1",
  "web-sys",
  "winapi",
 ]
 
 [[package]]
+name = "ring"
+version = "0.17.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
+dependencies = [
+ "cc",
+ "getrandom",
+ "libc",
+ "spin 0.9.8",
+ "untrusted 0.9.0",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "roaring"
 version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4681,9 +4358,9 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.26"
+version = "0.38.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a"
+checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
 dependencies = [
  "bitflags 2.4.1",
  "errno",
@@ -4694,45 +4371,45 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.20.8"
+version = "0.20.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f"
+checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99"
 dependencies = [
  "log",
- "ring",
+ "ring 0.16.20",
  "sct",
  "webpki",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.6"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
- "ring",
+ "ring 0.17.7",
  "rustls-webpki",
  "sct",
 ]
 
 [[package]]
 name = "rustls-pemfile"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
 ]
 
 [[package]]
 name = "rustls-webpki"
-version = "0.101.3"
+version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "261e9e0888cba427c3316e6322805653c9425240b6fd96cee7cb671ab70ab8d0"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
- "ring",
- "untrusted",
+ "ring 0.17.7",
+ "untrusted 0.9.0",
 ]
 
 [[package]]
@@ -4749,9 +4426,9 @@ checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
 
 [[package]]
 name = "safetensors"
-version = "0.3.3"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d93279b86b3de76f820a8854dd06cbc33cfa57a417b19c47f6a25280112fb1df"
+checksum = "1659ef1c27917eb58c2d53664b5506d0b68c9cb9b460d3e0901011cf71269a8e"
 dependencies = [
  "serde",
  "serde_json",
@@ -4774,19 +4451,19 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sct"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
- "ring",
- "untrusted",
+ "ring 0.17.7",
+ "untrusted 0.9.0",
 ]
 
 [[package]]
 name = "segment"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bb93f3f738322ce8f33c4e80c251fb1560ca81f3a241355271fcb912eeb48e3"
+checksum = "12485833e00457a6bbba60397d3f19362751a0caefe27f6755fff1a2be4fd601"
 dependencies = [
  "async-trait",
  "reqwest",
@@ -4801,6 +4478,9 @@ name = "semver"
 version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+dependencies = [
+ "serde",
+]
 
 [[package]]
 name = "seq-macro"
@@ -4810,9 +4490,9 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
 
 [[package]]
 name = "serde"
-version = "1.0.190"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7"
+checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02"
 dependencies = [
  "serde_derive",
 ]
@@ -4828,22 +4508,22 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.190"
+version = "1.0.195"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3"
+checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.104"
+version = "1.0.111"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c"
+checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap",
  "itoa",
  "ryu",
  "serde",
@@ -4860,9 +4540,9 @@ dependencies = [
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
@@ -4903,9 +4583,9 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.10.7"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -4913,6 +4593,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "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"
@@ -4941,9 +4636,15 @@ dependencies = [
 
 [[package]]
 name = "siphasher"
-version = "0.3.10"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "siphasher"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54ac45299ccbd390721be55b412d41931911f654fa99e2cb8bfb57184b2061fe"
 
 [[package]]
 name = "slab"
@@ -4972,12 +4673,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.11.0"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
-dependencies = [
- "serde",
-]
+checksum = "2593d31f82ead8df961d8bd23a64c2ccf2eb5dd34b0a34bfb4dd54011c72009e"
 
 [[package]]
 name = "smartstring"
@@ -5096,9 +4794,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.28"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5122,15 +4820,29 @@ checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
  "unicode-xid",
 ]
 
 [[package]]
+name = "sysctl"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec7dddc5f0fee506baf8b9fdb989e242f17e4b11c61dfbb0635b705217199eea"
+dependencies = [
+ "bitflags 2.4.1",
+ "byteorder",
+ "enum-as-inner",
+ "libc",
+ "thiserror",
+ "walkdir",
+]
+
+[[package]]
 name = "sysinfo"
-version = "0.29.7"
+version = "0.30.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "165d6d8539689e3d3bc8b98ac59541e1f21c7de7c85d60dc80e43ae0ed2113db"
+checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2"
 dependencies = [
  "cfg-if",
  "core-foundation-sys",
@@ -5138,7 +4850,7 @@ dependencies = [
  "ntapi",
  "once_cell",
  "rayon",
- "winapi",
+ "windows",
 ]
 
 [[package]]
@@ -5175,63 +4887,72 @@ dependencies = [
 
 [[package]]
 name = "temp-env"
-version = "0.3.4"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9547444bfe52cbd79515c6c8087d8ae6ca8d64d2d31a27746320f5cb81d1a15c"
+checksum = "96374855068f47402c3121c6eed88d29cb1de8f3ab27090e273e420bdabcf050"
 dependencies = [
  "parking_lot",
 ]
 
 [[package]]
 name = "tempfile"
-version = "3.8.1"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand",
- "redox_syscall 0.4.1",
- "rustix 0.38.26",
- "windows-sys 0.48.0",
+ "rustix 0.38.31",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.2.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
 name = "thiserror"
-version = "1.0.50"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.50"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+dependencies = [
+ "cfg-if",
+ "once_cell",
 ]
 
 [[package]]
 name = "tiktoken-rs"
-version = "0.5.7"
+version = "0.5.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4427b6b1c6b38215b92dd47a83a0ecc6735573d0a5a4c14acc0ac5b33b28adb"
+checksum = "40894b788eb28bbb7e36bdc8b7b1b1488b9c93fa3730f315ab965330c94c0842"
 dependencies = [
  "anyhow",
- "base64 0.21.5",
+ "base64 0.21.7",
  "bstr",
  "fancy-regex",
  "lazy_static",
@@ -5241,12 +4962,15 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.30"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
  "deranged",
  "itoa",
+ "libc",
+ "num-conv",
+ "num_threads",
  "powerfmt",
  "serde",
  "time-core",
@@ -5261,25 +4985,15 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.15"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
 [[package]]
-name = "tinystr"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5d0e245e80bdc9b4e5356fc45a72184abbc3861992603f515270e9340f5a219"
-dependencies = [
- "displaydoc",
- "serde",
- "zerovec 0.10.0",
-]
-
-[[package]]
 name = "tinytemplate"
 version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5310,7 +5024,7 @@ version = "0.14.1"
 source = "git+https://github.com/huggingface/tokenizers.git?tag=v0.14.1#6357206cdcce4d78ffb1e0372feb456caea09375"
 dependencies = [
  "aho-corasick",
- "derive_builder",
+ "derive_builder 0.12.0",
  "esaxx-rs",
  "getrandom",
  "itertools 0.11.0",
@@ -5324,7 +5038,7 @@ dependencies = [
  "rayon",
  "rayon-cond",
  "regex",
- "regex-syntax",
+ "regex-syntax 0.7.4",
  "serde",
  "serde_json",
  "spm_precompiled",
@@ -5336,9 +5050,9 @@ dependencies = [
 
 [[package]]
 name = "tokio"
-version = "1.34.0"
+version = "1.35.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9"
+checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
 dependencies = [
  "backtrace",
  "bytes",
@@ -5361,7 +5075,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
@@ -5370,7 +5084,7 @@ version = "0.23.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59"
 dependencies = [
- "rustls 0.20.8",
+ "rustls 0.20.9",
  "tokio",
  "webpki",
 ]
@@ -5381,7 +5095,7 @@ version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
 dependencies = [
- "rustls 0.21.6",
+ "rustls 0.21.10",
  "tokio",
 ]
 
@@ -5412,9 +5126,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.7.6"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
+checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -5424,20 +5138,20 @@ dependencies = [
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.19.14"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
+checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -5452,11 +5166,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
  "log",
  "pin-project-lite",
  "tracing-attributes",
@@ -5464,6 +5177,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "tracing-actix-web"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fe0d5feac3f4ca21ba33496bcb1ccab58cca6412b1405ae80f0581541e0ca78"
+dependencies = [
+ "actix-web",
+ "mutually_exclusive_features",
+ "pin-project",
+ "tracing",
+ "uuid",
+]
+
+[[package]]
 name = "tracing-attributes"
 version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5471,16 +5197,81 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-error"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e"
+dependencies = [
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-serde"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1"
+dependencies = [
+ "serde",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "nu-ansi-term",
+ "serde",
+ "serde_json",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing-core",
+ "tracing-log",
+ "tracing-serde",
+]
+
+[[package]]
+name = "tracing-trace"
+version = "0.1.0"
+dependencies = [
+ "byte-unit",
+ "color-spantrace",
+ "fxprof-processed-profile",
+ "libproc",
+ "serde",
+ "serde_json",
+ "tokio",
+ "tracing",
+ "tracing-error",
+ "tracing-subscriber",
 ]
 
 [[package]]
@@ -5503,9 +5294,9 @@ checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
 
 [[package]]
 name = "unescaper"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a96a44ae11e25afb520af4534fd7b0bd8cd613e35a78def813b8cf41631fa3c8"
+checksum = "d8f0f68e58d297ba8b22b8b5a96a87b863ba6bb46aaf51e19a4b02c5a6dd5b7f"
 dependencies = [
  "thiserror",
 ]
@@ -5580,16 +5371,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
 
 [[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
 name = "ureq"
 version = "2.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97"
 dependencies = [
- "base64 0.21.5",
+ "base64 0.21.7",
  "flate2",
  "log",
  "once_cell",
- "rustls 0.21.6",
+ "rustls 0.21.10",
  "rustls-webpki",
  "serde",
  "serde_json",
@@ -5617,24 +5414,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
 
 [[package]]
-name = "utf16_iter"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52df8b7fb78e7910d776fccf2e42ceaf3604d55e8e7eb2dbd183cb1441d8a692"
-
-[[package]]
 name = "utf8-width"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5190c9442dcdaf0ddd50f37420417d219ae5261bbf5db120d0f9bab996c9cba1"
 
 [[package]]
-name = "utf8_iter"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a8922555b9500e3d865caed19330172cd67cbf82203f1a3311d8c305cc9f33"
-
-[[package]]
 name = "utf8parse"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5642,22 +5427,20 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "0.8.2"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
 dependencies = [
+ "atomic",
  "getrandom",
+ "serde",
 ]
 
 [[package]]
-name = "uuid"
-version = "1.5.0"
+name = "valuable"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc"
-dependencies = [
- "getrandom",
- "serde",
-]
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
 
 [[package]]
 name = "vcpkg"
@@ -5667,18 +5450,42 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
 
 [[package]]
 name = "vergen"
-version = "7.5.1"
+version = "9.0.0-beta.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f21b881cd6636ece9735721cf03c1fe1e774fe258683d084bb2812ab67435749"
+checksum = "107dc53b443fe8cc380798abb75ad6b7038281165109afea1f1b28bb47047ed5"
 dependencies = [
  "anyhow",
- "cfg-if",
- "enum-iterator",
+ "derive_builder 0.13.1",
  "getset",
+ "rustversion",
+ "vergen-lib",
+]
+
+[[package]]
+name = "vergen-git2"
+version = "1.0.0-beta.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8875c5d71074bb67118774e3d795ab6fe77c3ae3161cb54e19104cabc49487f1"
+dependencies = [
+ "anyhow",
+ "derive_builder 0.13.1",
  "git2",
  "rustversion",
- "thiserror",
  "time",
+ "vergen",
+ "vergen-lib",
+]
+
+[[package]]
+name = "vergen-lib"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26ebfba72ba904559f25f41ea1512335b5a46459084258cea0857549d9645187"
+dependencies = [
+ "anyhow",
+ "derive_builder 0.13.1",
+ "getset",
+ "rustversion",
 ]
 
 [[package]]
@@ -5689,9 +5496,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
 name = "walkdir"
-version = "2.3.3"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -5744,7 +5551,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
  "wasm-bindgen-shared",
 ]
 
@@ -5778,7 +5585,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -5790,6 +5597,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
 
 [[package]]
+name = "wasm-streams"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7"
+dependencies = [
+ "futures-util",
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
 name = "wav"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5810,12 +5630,12 @@ dependencies = [
 
 [[package]]
 name = "webpki"
-version = "0.22.2"
+version = "0.22.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07ecc0cd7cac091bf682ec5efa18b1cff79d617b84181f38b3951dbe135f607f"
+checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53"
 dependencies = [
- "ring",
- "untrusted",
+ "ring 0.17.7",
+ "untrusted 0.9.0",
 ]
 
 [[package]]
@@ -5835,11 +5655,11 @@ checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
 
 [[package]]
 name = "whatlang"
-version = "0.16.2"
+version = "0.16.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c531a2dc4c462b833788be2c07eef4e621d0e9edbd55bf280cc164c1c1aa043"
+checksum = "471d1c1645d361eb782a1650b1786a8fb58dd625e681a04c09f5ff7c8764a7b0"
 dependencies = [
- "hashbrown 0.12.3",
+ "hashbrown",
  "once_cell",
 ]
 
@@ -5875,6 +5695,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
+name = "windows"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core",
+ "windows-targets 0.52.0",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.0",
+]
+
+[[package]]
 name = "windows-sys"
 version = "0.45.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6074,9 +5913,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
 name = "winnow"
-version = "0.5.4"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acaaa1190073b2b101e15083c38ee8ec891b5e05cbee516521e94ec008f61e64"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
 dependencies = [
  "memchr",
 ]
@@ -6092,18 +5931,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "write16"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"
-
-[[package]]
-name = "writeable"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0af0c3d13faebf8dda0b5256fa7096a2d5ccb662f7b9f54a40fe201077ab1c2"
-
-[[package]]
 name = "xattr"
 version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6113,6 +5940,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "xtask"
+version = "1.7.3"
+dependencies = [
+ "anyhow",
+ "build-info",
+ "cargo_metadata",
+ "clap",
+ "futures-core",
+ "futures-util",
+ "reqwest",
+ "serde",
+ "serde_json",
+ "sha2",
+ "sysinfo",
+ "time",
+ "tokio",
+ "tracing",
+ "tracing-subscriber",
+ "tracing-trace",
+ "uuid",
+]
+
+[[package]]
 name = "yada"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6157,75 +6007,58 @@ checksum = "d5e19fb6ed40002bab5403ffa37e53e0e56f914a4450c8765f533018db1db35f"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.48",
  "synstructure",
 ]
 
 [[package]]
-name = "zerofrom"
-version = "0.1.3"
+name = "zerocopy"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "655b0814c5c0b19ade497851070c640773304939a6c0fd5f5fb43da0696d05b7"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
 dependencies = [
- "zerofrom-derive",
+ "zerocopy-derive",
 ]
 
 [[package]]
-name = "zerofrom-derive"
-version = "0.1.3"
+name = "zerocopy-derive"
+version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
- "synstructure",
+ "syn 2.0.48",
 ]
 
 [[package]]
-name = "zerotrie"
-version = "0.1.1"
+name = "zerofrom"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9685bb4deb98dab812e87c296a9631fc00d7ca4bc5c2c5f304f375bbed711a8a"
+checksum = "655b0814c5c0b19ade497851070c640773304939a6c0fd5f5fb43da0696d05b7"
 dependencies = [
- "displaydoc",
- "litemap 0.7.1",
- "serde",
- "yoke",
- "zerofrom",
- "zerovec 0.10.0",
+ "zerofrom-derive",
 ]
 
 [[package]]
-name = "zerovec"
-version = "0.9.6"
+name = "zerofrom-derive"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "591691014119b87047ead4dcf3e6adfbf73cb7c38ab6980d4f18a32138f35d46"
+checksum = "e6a647510471d372f2e6c2e6b7219e44d8c574d24fdc11c610a61455782f18c3"
 dependencies = [
- "zerofrom",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.48",
+ "synstructure",
 ]
 
 [[package]]
 name = "zerovec"
-version = "0.10.0"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1194130c5b155bf8ae50ab16c86ab758cd695cf9ad176d2f870b744cbdbb572e"
+checksum = "eff4439ae91fb5c72b8abc12f3f2dbf51bd27e6eadb9f8a5bc8898dddb0e27ea"
 dependencies = [
- "serde",
- "yoke",
  "zerofrom",
- "zerovec-derive",
-]
-
-[[package]]
-name = "zerovec-derive"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acabf549809064225ff8878baedc4ce3732ac3b07e7c7ce6e5c2ccdbc485c324"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.28",
 ]
 
 [[package]]
diff --git a/nixpkgs/pkgs/servers/search/meilisearch/default.nix b/nixpkgs/pkgs/servers/search/meilisearch/default.nix
index 1a0f387d15ef..0c988d345d22 100644
--- a/nixpkgs/pkgs/servers/search/meilisearch/default.nix
+++ b/nixpkgs/pkgs/servers/search/meilisearch/default.nix
@@ -8,7 +8,7 @@
 , nix-update-script
 }:
 
-let version = "1.6.2";
+let version = "1.7.3";
 in
 rustPlatform.buildRustPackage {
   pname = "meilisearch";
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage {
     owner = "meilisearch";
     repo = "MeiliSearch";
     rev = "refs/tags/v${version}";
-    hash = "sha256-D8KAleYaeMv3rCwhGE0IteuDUVk4RiOxsTBe7LhLAKg=";
+    hash = "sha256-2kwogur6hS7/xjUhH9aRJevWbtgg5xQkvB/aIj7wyJ8=";
   };
 
   cargoBuildFlags = [
@@ -29,10 +29,9 @@ rustPlatform.buildRustPackage {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "actix-web-static-files-3.0.5" = "sha256-2BN0RzLhdykvN3ceRLkaKwSZtel2DBqZ+uz4Qut+nII=";
-      "arroy-0.1.0" = "sha256-ybKdB0eP8AdxLMNM7Si9onWITNc2SPNTXMgKdWdy34E=";
-      "candle-core-0.3.1" = "sha256-KlkjTUcbnP+uZoA0fDZlEPT5qKC2ogMAuR8X14xRFgA=";
+      "candle-core-0.3.3" = "sha256-umWvG+82B793PQtY9VeHjPTtTVmSPdts25buw4v4TQc=";
+      "candle-kernels-0.3.1" = "sha256-KlkjTUcbnP+uZoA0fDZlEPT5qKC2ogMAuR8X14xRFgA=";
       "hf-hub-0.3.2" = "sha256-tsn76b+/HRvPnZ7cWd8SBcEdnMPtjUEIRJipOJUbz54=";
-      "nelson-0.1.0" = "sha256-eF672quU576wmZSisk7oDR7QiDafuKlSg0BTQkXnzqY=";
       "tokenizers-0.14.1" = "sha256-cq7dQLttNkV5UUhXujxKKMuzhD7hz+zTTKxUKlvz1s0=";
     };
   };
@@ -56,6 +55,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "Powerful, fast, and an easy to use search engine";
+    mainProgram = "meilisearch";
     homepage = "https://docs.meilisearch.com/";
     changelog = "https://github.com/meilisearch/meilisearch/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/servers/search/qdrant/default.nix b/nixpkgs/pkgs/servers/search/qdrant/default.nix
index 5e3c48053b56..eb6fc6c71943 100644
--- a/nixpkgs/pkgs/servers/search/qdrant/default.nix
+++ b/nixpkgs/pkgs/servers/search/qdrant/default.nix
@@ -46,8 +46,6 @@ rustPlatform.buildRustPackage rec {
     OPENSSL_NO_VENDOR = 1;
   } // lib.optionalAttrs stdenv.cc.isClang {
     NIX_CFLAGS_COMPILE = "-faligned-allocation";
-    # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/servers/search/sonic-server/default.nix b/nixpkgs/pkgs/servers/search/sonic-server/default.nix
index 9bece306b2f1..cbe8b431fa93 100644
--- a/nixpkgs/pkgs/servers/search/sonic-server/default.nix
+++ b/nixpkgs/pkgs/servers/search/sonic-server/default.nix
@@ -28,8 +28,6 @@ rustPlatform.buildRustPackage rec {
     rustPlatform.bindgenHook
   ];
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-  env.NIX_LDFLAGS = lib.optionalString stdenv.cc.isClang "-l${stdenv.cc.libcxx.cxxabi.libName}";
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-faligned-allocation";
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/servers/search/typesense/default.nix b/nixpkgs/pkgs/servers/search/typesense/default.nix
index b78c5d083847..30e09db055f2 100644
--- a/nixpkgs/pkgs/servers/search/typesense/default.nix
+++ b/nixpkgs/pkgs/servers/search/typesense/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://typesense.org";
     description = "Typesense is a fast, typo-tolerant search engine for building delightful search experiences.";
+    mainProgram = "typesense-server";
     license = licenses.gpl3;
     # There has been an attempt at building this from source, which were deemed
     # unfeasible at the time of writing this (July 2023) for the following reasons.
diff --git a/nixpkgs/pkgs/servers/search/weaviate/default.nix b/nixpkgs/pkgs/servers/search/weaviate/default.nix
index fb3fbbbf30bd..75f9e700cc0f 100644
--- a/nixpkgs/pkgs/servers/search/weaviate/default.nix
+++ b/nixpkgs/pkgs/servers/search/weaviate/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "weaviate";
-  version = "1.24.1";
+  version = "1.24.4";
 
   src = fetchFromGitHub {
     owner = "weaviate";
     repo = "weaviate";
     rev = "v${version}";
-    hash = "sha256-9FA0GxLgzw3D329JdQ044QC/D9ncxsadmCHlppnf9fI=";
+    hash = "sha256-kovhusZ/4/wLr8FeBY6jBPdD1V718yI41fTjbtjGleM=";
   };
 
-  vendorHash = "sha256-G5ya2O5IY7+DE4UeXuH5lTT0jbjIc9W09ePLsJsjQ78=";
+  vendorHash = "sha256-0CPdBrEjBJiX/Fv0DhFaZqkixuEPW2Pttl5wCNxieYc=";
 
   subPackages = [ "cmd/weaviate-server" ];
 
diff --git a/nixpkgs/pkgs/servers/search/zincsearch/default.nix b/nixpkgs/pkgs/servers/search/zincsearch/default.nix
index a5b17b9825b6..ad95c1cf3d68 100644
--- a/nixpkgs/pkgs/servers/search/zincsearch/default.nix
+++ b/nixpkgs/pkgs/servers/search/zincsearch/default.nix
@@ -5,12 +5,12 @@
 }:
 
 let
-  version = "0.4.9";
+  version = "0.4.10";
   src = fetchFromGitHub {
     owner = "zinclabs";
     repo = "zincsearch";
     rev = "v${version}";
-    hash = "sha256-NIrLhbtpk1mFbWRFPxkH1r4mBiwT488MYBjRgIV7igE=";
+    hash = "sha256-lScwnmu4hM78Va7Yi5HA0E5f2WQXrZaeqjRYJYxnQ5E=";
   };
 
   webui = buildNpmPackage {
@@ -40,7 +40,7 @@ buildGoModule rec {
     cp -r ${webui}/share/zinc-ui web/dist
   '';
 
-  vendorHash = "sha256-kP7QlES7VpZrOS4TGOFB9qciXGBEUVqzVLhz+2KiK98=";
+  vendorHash = "sha256-SZG5/ISGblpcwwR/HOKxFl9SthXpE+IYS0S+4HYtHos=";
   subPackages = [ "cmd/zincsearch" ];
 
   ldflags = [
@@ -51,7 +51,8 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A lightweight alternative to elasticsearch that requires minimal resources, written in Go";
-    homepage = "https://zinc.dev";
+    mainProgram = "zincsearch";
+    homepage = "https://zincsearch-docs.zinc.dev/";
     license = licenses.asl20;
     maintainers = with maintainers; [ dit7ya ];
   };
diff --git a/nixpkgs/pkgs/servers/serf/default.nix b/nixpkgs/pkgs/servers/serf/default.nix
index 56206e7e80f3..1b8d4ca271c9 100644
--- a/nixpkgs/pkgs/servers/serf/default.nix
+++ b/nixpkgs/pkgs/servers/serf/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Service orchestration and management tool";
+    mainProgram = "serf";
     longDescription = ''
       Serf is a decentralized solution for service discovery and orchestration
       that is lightweight, highly available, and fault tolerant.
diff --git a/nixpkgs/pkgs/servers/sickbeard/sickgear.nix b/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
index d8f37b79b4d9..c240c5d7ffda 100644
--- a/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
+++ b/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
@@ -4,13 +4,13 @@ let
   pythonEnv = python3.withPackages(ps: with ps; [ cheetah3 lxml ]);
 in stdenv.mkDerivation rec {
   pname = "sickgear";
-  version = "3.30.13";
+  version = "3.30.15";
 
   src = fetchFromGitHub {
     owner = "SickGear";
     repo = "SickGear";
     rev = "release_${version}";
-    hash = "sha256-Ka2WYU2hU9aemEiTNwFZLraerfisfL8vK2ujx0wDcPo=";
+    hash = "sha256-/6D4jehI94KwE5BFZiMWddcinwmU8Rb/83NifTEvudA=";
   };
 
   patches = [
@@ -33,6 +33,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The most reliable stable TV fork of the great Sick-Beard to fully automate TV enjoyment with innovation";
+    mainProgram = "sickgear";
     license     = licenses.gpl3;
     homepage    = "https://github.com/SickGear/SickGear";
     maintainers = with lib.maintainers; [ rembo10 ];
diff --git a/nixpkgs/pkgs/servers/silc-server/default.nix b/nixpkgs/pkgs/servers/silc-server/default.nix
index 83596cffadfb..53a2f47cf2ad 100644
--- a/nixpkgs/pkgs/servers/silc-server/default.nix
+++ b/nixpkgs/pkgs/servers/silc-server/default.nix
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://silcnet.org/";
     description = "Secure Internet Live Conferencing server";
+    mainProgram = "silcd";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/servers/snappymail/default.nix b/nixpkgs/pkgs/servers/snappymail/default.nix
index 4e65ed11c0e2..0604c8c50b3c 100644
--- a/nixpkgs/pkgs/servers/snappymail/default.nix
+++ b/nixpkgs/pkgs/servers/snappymail/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "snappymail";
-  version = "2.35.2";
+  version = "2.35.4";
 
   src = fetchurl {
     url = "https://github.com/the-djmaze/snappymail/releases/download/v${version}/snappymail-${version}.tar.gz";
-    sha256 = "sha256-aEM1In7BmtiPy0xOgUV6sIvMnX6fac4mSErr7dB2gRU=";
+    sha256 = "sha256-l75s2ntZM/eqoFqw8bMkmxwPBvOFwf2Y8TpSsyzu3cU=";
   };
 
   sourceRoot = "snappymail";
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     homepage = "https://snappymail.eu";
     changelog = "https://github.com/the-djmaze/snappymail/blob/v${version}/CHANGELOG.md";
     downloadPage = "https://github.com/the-djmaze/snappymail/releases";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ mic92 ];
   };
diff --git a/nixpkgs/pkgs/servers/sonarr/default.nix b/nixpkgs/pkgs/servers/sonarr/default.nix
index cf56476719a1..f0a85b251db0 100644
--- a/nixpkgs/pkgs/servers/sonarr/default.nix
+++ b/nixpkgs/pkgs/servers/sonarr/default.nix
@@ -10,15 +10,15 @@ let
   }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   hash = {
-    x64-linux_hash = "sha256-9YNhyhxnnn2CesXLJH5Cs7yB9w23YUAZPrk9vEHvevk=";
-    arm64-linux_hash = "sha256-RBCyfozmBpWrmsfMcdb1BqcBXj64CMDrgpMZTzj85ZQ=";
-    x64-osx_hash = "sha256-+AKENBZohBUEKQEM3L69EzC84MhCX3fGvsNFn5p2v84=";
-    arm64-osx_hash = "sha256-Arx8usecAN+d0NGL7Hv+rB4GG7p/KLAaqpJFgNg7C2Y=";
+    x64-linux_hash = "sha256-S9j6zXEJM963tki88awPW0uK0fQd1bBwBcsHBlDSg/E=";
+    arm64-linux_hash = "sha256-73FkmdliX5SNrQRRZeAkU0G96ehCd9mT8NVyJoZiA38=";
+    x64-osx_hash = "sha256-XZ4ITJtc2ENw7IAYrBZF0N/NCjUVve+SkWhu6kfQIQA=";
+    arm64-osx_hash = "sha256-2tA17mDuCX5X0U96Rp6QUQOVWvu9sPMOimD6kks+S00=";
   }."${arch}-${os}_hash";
 in
 stdenv.mkDerivation rec {
   pname = "sonarr";
-  version = "4.0.1.929";
+  version = "4.0.2.1183";
 
   src = fetchurl {
     url = "https://github.com/Sonarr/Sonarr/releases/download/v${version}/Sonarr.main.${version}.${os}-${arch}.tar.gz";
diff --git a/nixpkgs/pkgs/servers/sozu/default.nix b/nixpkgs/pkgs/servers/sozu/default.nix
index 705c5b935bfb..53907baed59d 100644
--- a/nixpkgs/pkgs/servers/sozu/default.nix
+++ b/nixpkgs/pkgs/servers/sozu/default.nix
@@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
       "Open Source HTTP Reverse Proxy built in Rust for Immutable Infrastructures";
     homepage = "https://www.sozu.io";
     changelog = "https://github.com/sozu-proxy/sozu/releases/tag/${version}";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ Br1ght0ne gaelreyrol ];
     mainProgram = "sozu";
     # error[E0432]: unresolved import `std::arch::x86_64`
diff --git a/nixpkgs/pkgs/servers/spicedb/default.nix b/nixpkgs/pkgs/servers/spicedb/default.nix
index ca90f78acf4e..c82984154879 100644
--- a/nixpkgs/pkgs/servers/spicedb/default.nix
+++ b/nixpkgs/pkgs/servers/spicedb/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "spicedb";
-  version = "1.29.5";
+  version = "1.30.0";
 
   src = fetchFromGitHub {
     owner = "authzed";
     repo = "spicedb";
     rev = "v${version}";
-    hash = "sha256-93+o2pLilHAad794Bae83spLsC+pdvOgS6WRNSWrei4=";
+    hash = "sha256-enMUGLOoVy56PCAqfW6jTOgEr/Me6kbuUvq3YmlxMPs=";
   };
 
-  vendorHash = "sha256-MfpXYvgUjfNZkAA19FWM0X8A9mbDhcYCM5L9PLL4En0=";
+  vendorHash = "sha256-lMhfCkuLuA8aj3Q+I/v/Ohof/htBJjPRmQ3c9QXsioc=";
 
   subPackages = [ "cmd/spicedb" ];
 
diff --git a/nixpkgs/pkgs/servers/spicedb/zed.nix b/nixpkgs/pkgs/servers/spicedb/zed.nix
index 32421450d758..5d85e9f74e84 100644
--- a/nixpkgs/pkgs/servers/spicedb/zed.nix
+++ b/nixpkgs/pkgs/servers/spicedb/zed.nix
@@ -5,19 +5,20 @@
 
 buildGoModule rec {
   pname = "zed";
-  version = "0.16.4";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "authzed";
     repo = "zed";
     rev = "v${version}";
-    hash = "sha256-PLOzzsW0v4T12NFrQlOYcsC7Cd3OnGD0TYmuavqEtxw=";
+    hash = "sha256-C/vX8gocU7teSACqHBrYTPJryaUP4tuzEo/4TUEdNt0=";
   };
 
-  vendorHash = "sha256-KhtT0v0FJiOvYUhN/rBYxbkUKs0DdIc5HwlhVUAi9cA=";
+  vendorHash = "sha256-qf1jGNCW/ewwqkbsU7fZdYvazhMYw+/DGWkdugQRrec=";
 
   meta = with lib; {
     description = "Command line for managing SpiceDB";
+    mainProgram = "zed";
     longDescription = ''
       SpiceDB is an open-source permissions database inspired by
       Google Zanzibar. zed is the command line client for SpiceDB.
diff --git a/nixpkgs/pkgs/servers/sql/cockroachdb/default.nix b/nixpkgs/pkgs/servers/sql/cockroachdb/default.nix
deleted file mode 100644
index 19a128dfc003..000000000000
--- a/nixpkgs/pkgs/servers/sql/cockroachdb/default.nix
+++ /dev/null
@@ -1,70 +0,0 @@
-{ lib, stdenv, buildGoPackage, fetchurl
-, cmake, xz, which, autoconf
-, ncurses6, libedit, libunwind
-, installShellFiles
-, removeReferencesTo, go
-}:
-
-let
-  darwinDeps = [ libunwind libedit ];
-  linuxDeps  = [ ncurses6 ];
-
-  buildInputs = if stdenv.isDarwin then darwinDeps else linuxDeps;
-  nativeBuildInputs = [ installShellFiles cmake xz which autoconf ];
-
-in
-buildGoPackage rec {
-  pname = "cockroach";
-  version = "20.1.8";
-
-  goPackagePath = "github.com/cockroachdb/cockroach";
-
-  src = fetchurl {
-    url = "https://binaries.cockroachdb.com/cockroach-v${version}.src.tgz";
-    sha256 = "0mm3hfr778c7djza8gr1clwa8wca4d3ldh9hlg80avw4x664y5zi";
-  };
-
-  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isGNU [ "-Wno-error=deprecated-copy" "-Wno-error=redundant-move" "-Wno-error=pessimizing-move" ]);
-
-  inherit nativeBuildInputs buildInputs;
-
-  buildPhase = ''
-    runHook preBuild
-    cd $NIX_BUILD_TOP/go/src/${goPackagePath}
-    patchShebangs .
-    make buildoss
-    cd src/${goPackagePath}
-    for asset in man autocomplete; do
-      ./cockroachoss gen $asset
-    done
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    install -D cockroachoss $out/bin/cockroach
-    installShellCompletion cockroach.bash
-
-    mkdir -p $man/share/man
-    cp -r man $man/share/man
-
-    runHook postInstall
-  '';
-
-  outputs = [ "out" "man" ];
-
-  # fails with `GOFLAGS=-trimpath`
-  allowGoReference = true;
-  preFixup = ''
-    find $out -type f -exec ${removeReferencesTo}/bin/remove-references-to -t ${go} '{}' +
-  '';
-
-  meta = with lib; {
-    homepage    = "https://www.cockroachlabs.com";
-    description = "A scalable, survivable, strongly-consistent SQL database";
-    license     = licenses.bsl11;
-    platforms   = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
-    maintainers = with maintainers; [ rushmorem thoughtpolice ];
-  };
-}
diff --git a/nixpkgs/pkgs/servers/sql/dolt/default.nix b/nixpkgs/pkgs/servers/sql/dolt/default.nix
index fc725e6b084c..bb6687c20473 100644
--- a/nixpkgs/pkgs/servers/sql/dolt/default.nix
+++ b/nixpkgs/pkgs/servers/sql/dolt/default.nix
@@ -2,23 +2,24 @@
 
 buildGoModule rec {
   pname = "dolt";
-  version = "1.35.0";
+  version = "1.35.4";
 
   src = fetchFromGitHub {
     owner = "dolthub";
     repo = "dolt";
     rev = "v${version}";
-    sha256 = "sha256-h1ypyhslsqGrYFXzAdhoviXQwy8ub31+CNQaXMjKSB0=";
+    sha256 = "sha256-9EEqwS7IKlRfE5bwxjScDX7KMCTpmbxixAznRhbaOE0=";
   };
 
   modRoot = "./go";
   subPackages = [ "cmd/dolt" ];
-  vendorHash = "sha256-kC/+zCuIVUZ7Fpq2WfjYa3tG0vYGkUibK926yh3DCp4=";
+  vendorHash = "sha256-TXx+YmXsAwh2J+nHpff0oHatI6G2QY2QZmMMcHAG6Lc=";
   proxyVendor = true;
   doCheck = false;
 
   meta = with lib; {
     description = "Relational database with version control and CLI a-la Git";
+    mainProgram = "dolt";
     homepage = "https://github.com/dolthub/dolt";
     license = licenses.asl20;
     maintainers = with maintainers; [ danbst ];
diff --git a/nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix b/nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix
index f934d6a00822..0898c6a3bfc4 100644
--- a/nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix
+++ b/nixpkgs/pkgs/servers/sql/mariadb/galera/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Galera 3 wsrep provider library";
+    mainProgram = "garbd";
     homepage = "https://galeracluster.com/";
     license = licenses.lgpl2Only;
     maintainers = with maintainers; [ izorkin ] ++ teams.helsinki-systems.members;
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/12.nix b/nixpkgs/pkgs/servers/sql/postgresql/12.nix
new file mode 100644
index 000000000000..9e0388be0451
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/12.nix
@@ -0,0 +1,10 @@
+import ./generic.nix {
+  version = "12.18";
+  hash = "sha256-T5kZcl2UHOmGjgf+HtHTqGdIWZtIM4ZUdYOSi3TDkYo=";
+  muslPatches = {
+    icu-collations-hack = {
+      url = "https://git.alpinelinux.org/aports/plain/testing/postgresql12/icu-collations-hack.patch?id=d5227c91adda59d4e7f55f13468f0314e8869174";
+      hash = "sha256-wuwjvGHArkRNwFo40g3p43W32OrJohretlt6iSRlJKg=";
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/13.nix b/nixpkgs/pkgs/servers/sql/postgresql/13.nix
new file mode 100644
index 000000000000..a4870812acdb
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/13.nix
@@ -0,0 +1,14 @@
+import ./generic.nix {
+  version = "13.14";
+  hash = "sha256-uN8HhVGJiWC9UA3F04oXfpkFN234H+fytmChQH+mpe0=";
+  muslPatches = {
+    icu-collations-hack = {
+      url = "https://git.alpinelinux.org/aports/plain/main/postgresql14/icu-collations-hack.patch?id=56999e6d0265ceff5c5239f85fdd33e146f06cb7";
+      hash = "sha256-wuwjvGHArkRNwFo40g3p43W32OrJohretlt6iSRlJKg=";
+    };
+    disable-test-collate-icu-utf8 = {
+      url = "https://git.alpinelinux.org/aports/plain/main/postgresql13/disable-test-collate.icu.utf8.patch?id=69faa146ec9fff3b981511068f17f9e629d4688b";
+      hash = "sha256-jS/qxezaiaKhkWeMCXwpz1SDJwUWn9tzN0uKaZ3Ph2Y=";
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/14.nix b/nixpkgs/pkgs/servers/sql/postgresql/14.nix
new file mode 100644
index 000000000000..2de876cf4ad6
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/14.nix
@@ -0,0 +1,14 @@
+import ./generic.nix {
+  version = "14.11";
+  hash = "sha256-pnC9fc4i3K1Cl7JhE2s7HUoJpvVBcZViqhTKY78paKg=";
+  muslPatches = {
+    icu-collations-hack = {
+      url = "https://git.alpinelinux.org/aports/plain/main/postgresql14/icu-collations-hack.patch?id=56999e6d0265ceff5c5239f85fdd33e146f06cb7";
+      hash = "sha256-wuwjvGHArkRNwFo40g3p43W32OrJohretlt6iSRlJKg=";
+    };
+    disable-test-collate-icu-utf8 = {
+      url = "https://git.alpinelinux.org/aports/plain/main/postgresql14/disable-test-collate.icu.utf8.patch?id=56999e6d0265ceff5c5239f85fdd33e146f06cb7";
+      hash = "sha256-jXe23AxnFjEl+TZQm4R7rStk2Leo08ctxMNmu1xr5zM=";
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/15.nix b/nixpkgs/pkgs/servers/sql/postgresql/15.nix
new file mode 100644
index 000000000000..f633dc975085
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/15.nix
@@ -0,0 +1,10 @@
+import ./generic.nix {
+  version = "15.6";
+  hash = "sha256-hFUUbtnGnJOlfelUrq0DAsr60DXCskIXXWqh4X68svs=";
+  muslPatches = {
+    icu-collations-hack = {
+      url = "https://git.alpinelinux.org/aports/plain/main/postgresql15/icu-collations-hack.patch?id=f424e934e6d076c4ae065ce45e734aa283eecb9c";
+      hash = "sha256-HgtmhF4OJYU9macGJbTB9PjQi/yW7c3Akm3U0niWs8I=";
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/16.nix b/nixpkgs/pkgs/servers/sql/postgresql/16.nix
new file mode 100644
index 000000000000..6a6420643b31
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/16.nix
@@ -0,0 +1,10 @@
+import ./generic.nix {
+  version = "16.2";
+  hash = "sha256-RG6IKU28LJCFq0twYaZG+mBLS+wDUh1epnHC5a2bKVI=";
+  muslPatches = {
+    icu-collations-hack = {
+      url = "https://git.alpinelinux.org/aports/plain/main/postgresql16/icu-collations-hack.patch?id=08a24be262339fd093e641860680944c3590238e";
+      hash = "sha256-+urQdVIlADLdDPeT68XYv5rljhbK8M/7mPZn/cF+FT0=";
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/default.nix b/nixpkgs/pkgs/servers/sql/postgresql/default.nix
index 700f0ad99bd1..d11a2d06b2d2 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/default.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/default.nix
@@ -1,412 +1,24 @@
+self:
 let
+  versions = {
+    postgresql_12 = ./12.nix;
+    postgresql_13 = ./13.nix;
+    postgresql_14 = ./14.nix;
+    postgresql_15 = ./15.nix;
+    postgresql_16 = ./16.nix;
+  };
 
-  generic =
-      # dependencies
-      { stdenv, lib, fetchurl, makeWrapper, fetchpatch
-      , glibc, zlib, readline, openssl, icu, lz4, zstd, systemd, libossp_uuid
-      , pkg-config, libxml2, tzdata, libkrb5, substituteAll, darwin
-      , linux-pam
-
-      # This is important to obtain a version of `libpq` that does not depend on systemd.
-      , enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd && !stdenv.hostPlatform.isStatic
-      , gssSupport ? with stdenv.hostPlatform; !isWindows && !isStatic
-
-      # for postgresql.pkgs
-      , this, self, newScope, buildEnv
-
-      # source specification
-      , version, hash, psqlSchema
-
-      # for tests
-      , testers, nixosTests, thisAttr
-
-      # JIT
-      , jitSupport ? false
-      , nukeReferences, patchelf, llvmPackages
-      , makeRustPlatform, buildPgxExtension, cargo, rustc
-
-      # PL/Python
-      , pythonSupport ? false
-      , python3
-
-      # detection of crypt fails when using llvm stdenv, so we add it manually
-      # for <13 (where it got removed: https://github.com/postgres/postgres/commit/c45643d618e35ec2fe91438df15abd4f3c0d85ca)
-      , libxcrypt
-    }:
-  let
-    atLeast = lib.versionAtLeast version;
-    olderThan = lib.versionOlder version;
-    lz4Enabled = atLeast "14";
-    zstdEnabled = atLeast "15";
-
-    pname = "postgresql";
-
-    stdenv' = if jitSupport then llvmPackages.stdenv else stdenv;
-  in stdenv'.mkDerivation (finalAttrs: {
-    inherit pname version;
-
-    src = fetchurl {
-      url = "mirror://postgresql/source/v${version}/${pname}-${version}.tar.bz2";
-      inherit hash;
-    };
-
-    hardeningEnable = lib.optionals (!stdenv'.cc.isClang) [ "pie" ];
-
-    outputs = [ "out" "lib" "doc" "man" ];
-    setOutputFlags = false; # $out retains configureFlags :-/
-
-    buildInputs = [
-      zlib
-      readline
-      openssl
-      libxml2
-      icu
-    ]
-      ++ lib.optionals (olderThan "13") [ libxcrypt ]
-      ++ lib.optionals jitSupport [ llvmPackages.llvm ]
-      ++ lib.optionals lz4Enabled [ lz4 ]
-      ++ lib.optionals zstdEnabled [ zstd ]
-      ++ lib.optionals enableSystemd [ systemd ]
-      ++ lib.optionals pythonSupport [ python3 ]
-      ++ lib.optionals gssSupport [ libkrb5 ]
-      ++ lib.optionals stdenv'.isLinux [ linux-pam ]
-      ++ lib.optionals (!stdenv'.isDarwin) [ libossp_uuid ];
-
-    nativeBuildInputs = [
-      makeWrapper
-      pkg-config
-    ]
-      ++ lib.optionals jitSupport [ llvmPackages.llvm.dev nukeReferences patchelf ];
-
-    enableParallelBuilding = !stdenv'.isDarwin;
-
-    separateDebugInfo = true;
-
-    buildFlags = [ "world" ];
-
-    env.NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2";
-
-    # Otherwise it retains a reference to compiler and fails; see #44767.  TODO: better.
-    preConfigure = "CC=${stdenv'.cc.targetPrefix}cc";
-
-    configureFlags = [
-      "--with-openssl"
-      "--with-libxml"
-      "--with-icu"
-      "--sysconfdir=/etc"
-      "--libdir=$(lib)/lib"
-      "--with-system-tzdata=${tzdata}/share/zoneinfo"
-      "--enable-debug"
-      (lib.optionalString enableSystemd "--with-systemd")
-      (if stdenv'.isDarwin then "--with-uuid=e2fs" else "--with-ossp-uuid")
-    ] ++ lib.optionals lz4Enabled [ "--with-lz4" ]
-      ++ lib.optionals zstdEnabled [ "--with-zstd" ]
-      ++ lib.optionals gssSupport [ "--with-gssapi" ]
-      ++ lib.optionals pythonSupport [ "--with-python" ]
-      ++ lib.optionals stdenv'.hostPlatform.isRiscV [ "--disable-spinlocks" ]
-      ++ lib.optionals jitSupport [ "--with-llvm" ]
-      ++ lib.optionals stdenv'.isLinux [ "--with-pam" ];
-
-    patches = [
-      (if atLeast "16" then ./patches/disable-normalize_exec_path.patch
-       else ./patches/disable-resolve_symlinks.patch)
-      ./patches/less-is-more.patch
-      ./patches/hardcode-pgxs-path.patch
-      ./patches/specify_pkglibdir_at_runtime.patch
-      ./patches/findstring.patch
-
-      (substituteAll {
-        src = ./locale-binary-path.patch;
-        locale = "${if stdenv.isDarwin then darwin.adv_cmds else lib.getBin stdenv.cc.libc}/bin/locale";
-      })
-
-    ] ++ lib.optionals stdenv'.hostPlatform.isMusl (
+  mkAttributes = jitSupport:
+    self.lib.mapAttrs' (version: path:
       let
-        self = {
-          "12" = {
-            icu-collations-hack = fetchurl {
-              url = "https://git.alpinelinux.org/aports/plain/testing/postgresql12/icu-collations-hack.patch?id=d5227c91adda59d4e7f55f13468f0314e8869174";
-              hash = "sha256-wuwjvGHArkRNwFo40g3p43W32OrJohretlt6iSRlJKg=";
-            };
-          };
-          "13" = {
-            inherit (self."14") icu-collations-hack;
-            disable-test-collate-icu-utf8 = fetchurl {
-              url = "https://git.alpinelinux.org/aports/plain/main/postgresql13/disable-test-collate.icu.utf8.patch?id=69faa146ec9fff3b981511068f17f9e629d4688b";
-              hash = "sha256-jS/qxezaiaKhkWeMCXwpz1SDJwUWn9tzN0uKaZ3Ph2Y=";
-            };
-          };
-          "14" = {
-            icu-collations-hack = fetchurl {
-              url = "https://git.alpinelinux.org/aports/plain/main/postgresql14/icu-collations-hack.patch?id=56999e6d0265ceff5c5239f85fdd33e146f06cb7";
-              hash = "sha256-wuwjvGHArkRNwFo40g3p43W32OrJohretlt6iSRlJKg=";
-            };
-            disable-test-collate-icu-utf8 = fetchurl {
-              url = "https://git.alpinelinux.org/aports/plain/main/postgresql14/disable-test-collate.icu.utf8.patch?id=56999e6d0265ceff5c5239f85fdd33e146f06cb7";
-              hash = "sha256-jXe23AxnFjEl+TZQm4R7rStk2Leo08ctxMNmu1xr5zM=";
-            };
-          };
-          "15" = {
-            icu-collations-hack = fetchurl {
-              url = "https://git.alpinelinux.org/aports/plain/main/postgresql15/icu-collations-hack.patch?id=f424e934e6d076c4ae065ce45e734aa283eecb9c";
-              hash = "sha256-HgtmhF4OJYU9macGJbTB9PjQi/yW7c3Akm3U0niWs8I=";
-            };
-          };
-          "16" = {
-            icu-collations-hack = fetchurl {
-              url = "https://git.alpinelinux.org/aports/plain/main/postgresql16/icu-collations-hack.patch?id=08a24be262339fd093e641860680944c3590238e";
-              hash = "sha256-+urQdVIlADLdDPeT68XYv5rljhbK8M/7mPZn/cF+FT0=";
-            };
-          };
-        };
-
-        patchesForVersion = self.${lib.versions.major version} or (throw "no musl patches for postgresql ${version}");
+        attrName = if jitSupport then "${version}_jit" else version;
       in
-        lib.attrValues patchesForVersion
-    ) ++ lib.optionals stdenv'.isLinux  [
-      (if atLeast "13" then ./patches/socketdir-in-run-13.patch else ./patches/socketdir-in-run.patch)
-    ];
-
-    installTargets = [ "install-world" ];
-
-    LC_ALL = "C";
-
-    postPatch = ''
-      # Hardcode the path to pgxs so pg_config returns the path in $out
-      substituteInPlace "src/common/config_info.c" --replace HARDCODED_PGXS_PATH "$out/lib"
-    '' + lib.optionalString jitSupport ''
-        # Force lookup of jit stuff in $out instead of $lib
-        substituteInPlace src/backend/jit/jit.c --replace pkglib_path \"$out/lib\"
-        substituteInPlace src/backend/jit/llvm/llvmjit.c --replace pkglib_path \"$out/lib\"
-        substituteInPlace src/backend/jit/llvm/llvmjit_inline.cpp --replace pkglib_path \"$out/lib\"
-    '';
-
-    postInstall =
-      ''
-        moveToOutput "lib/pgxs" "$out" # looks strange, but not deleting it
-        moveToOutput "lib/libpgcommon*.a" "$out"
-        moveToOutput "lib/libpgport*.a" "$out"
-        moveToOutput "lib/libecpg*" "$out"
-
-        # Prevent a retained dependency on gcc-wrapper.
-        substituteInPlace "$out/lib/pgxs/src/Makefile.global" --replace ${stdenv'.cc}/bin/ld ld
-
-        if [ -z "''${dontDisableStatic:-}" ]; then
-          # Remove static libraries in case dynamic are available.
-          for i in $out/lib/*.a $lib/lib/*.a; do
-            name="$(basename "$i")"
-            ext="${stdenv'.hostPlatform.extensions.sharedLibrary}"
-            if [ -e "$lib/lib/''${name%.a}$ext" ] || [ -e "''${i%.a}$ext" ]; then
-              rm "$i"
-            fi
-          done
-        fi
-      '' + lib.optionalString jitSupport ''
-        # Move the bitcode and libllvmjit.so library out of $lib; otherwise, every client that
-        # depends on libpq.so will also have libLLVM.so in its closure too, bloating it
-        moveToOutput "lib/bitcode" "$out"
-        moveToOutput "lib/llvmjit*" "$out"
-
-        # In the case of JIT support, prevent a retained dependency on clang-wrapper
-        substituteInPlace "$out/lib/pgxs/src/Makefile.global" --replace ${self.llvmPackages.stdenv.cc}/bin/clang clang
-        nuke-refs $out/lib/llvmjit_types.bc $(find $out/lib/bitcode -type f)
-
-        # Stop out depending on the default output of llvm
-        substituteInPlace $out/lib/pgxs/src/Makefile.global \
-          --replace ${self.llvmPackages.llvm.out}/bin "" \
-          --replace '$(LLVM_BINPATH)/' ""
-
-        # Stop out depending on the -dev output of llvm
-        substituteInPlace $out/lib/pgxs/src/Makefile.global \
-          --replace ${self.llvmPackages.llvm.dev}/bin/llvm-config llvm-config \
-          --replace -I${self.llvmPackages.llvm.dev}/include ""
-
-        ${lib.optionalString (!stdenv'.isDarwin) ''
-          # Stop lib depending on the -dev output of llvm
-          rpath=$(patchelf --print-rpath $out/lib/llvmjit.so)
-          nuke-refs -e $out $out/lib/llvmjit.so
-          # Restore the correct rpath
-          patchelf $out/lib/llvmjit.so --set-rpath "$rpath"
-        ''}
-      '';
-
-    postFixup = lib.optionalString (!stdenv'.isDarwin && stdenv'.hostPlatform.libc == "glibc")
-      ''
-        # initdb needs access to "locale" command from glibc.
-        wrapProgram $out/bin/initdb --prefix PATH ":" ${glibc.bin}/bin
-      '';
-
-    doCheck = !stdenv'.isDarwin;
-    # autodetection doesn't seem to able to find this, but it's there.
-    checkTarget = "check";
-
-    preCheck =
-      # On musl, comment skip the following tests, because they break due to
-      #     ! ERROR:  could not load library "/build/postgresql-11.5/tmp_install/nix/store/...-postgresql-11.5-lib/lib/libpqwalreceiver.so": Error loading shared library libpq.so.5: No such file or directory (needed by /build/postgresql-11.5/tmp_install/nix/store/...-postgresql-11.5-lib/lib/libpqwalreceiver.so)
-      # See also here:
-      #     https://git.alpinelinux.org/aports/tree/main/postgresql/disable-broken-tests.patch?id=6d7d32c12e073a57a9e5946e55f4c1fbb68bd442
-      if stdenv'.hostPlatform.isMusl then ''
-        substituteInPlace src/test/regress/parallel_schedule \
-          --replace "subscription" "" \
-          --replace "object_address" ""
-      '' else null;
-
-    doInstallCheck = false; # needs a running daemon?
-
-    disallowedReferences = [ stdenv'.cc ];
-
-    passthru = let
-      jitToggle = this.override {
-        jitSupport = !jitSupport;
-        this = jitToggle;
-      };
-    in
-    {
-      inherit readline psqlSchema jitSupport;
-
-      withJIT = if jitSupport then this else jitToggle;
-      withoutJIT = if jitSupport then jitToggle else this;
-
-      dlSuffix = if olderThan "16" then ".so" else stdenv.hostPlatform.extensions.sharedLibrary;
-
-      pkgs = let
-        scope = {
-          postgresql = this;
-          stdenv = stdenv';
-          buildPgxExtension = buildPgxExtension.override {
-            stdenv = stdenv';
-            rustPlatform = makeRustPlatform {
-              stdenv = stdenv';
-              inherit rustc cargo;
-            };
-          };
-        };
-        newSelf = self // scope;
-        newSuper = { callPackage = newScope (scope // this.pkgs); };
-      in import ./packages.nix newSelf newSuper;
-
-      withPackages = postgresqlWithPackages {
-                       inherit makeWrapper buildEnv;
-                       postgresql = this;
-                     }
-                     this.pkgs;
-
-      tests = {
-        postgresql = nixosTests.postgresql-wal-receiver.${thisAttr};
-        pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
-      } // lib.optionalAttrs jitSupport {
-        postgresql-jit = nixosTests.postgresql-jit.${thisAttr};
-      };
-    } // lib.optionalAttrs jitSupport {
-      inherit (llvmPackages) llvm;
-    };
-
-    meta = with lib; {
-      homepage    = "https://www.postgresql.org";
-      description = "A powerful, open source object-relational database system";
-      license     = licenses.postgresql;
-      changelog   = "https://www.postgresql.org/docs/release/${finalAttrs.version}/";
-      maintainers = with maintainers; [ thoughtpolice danbst globin marsam ivan ma27 ];
-      pkgConfigModules = [ "libecpg" "libecpg_compat" "libpgtypes" "libpq" ];
-      platforms   = platforms.unix;
-
-      # JIT support doesn't work with cross-compilation. It is attempted to build LLVM-bytecode
-      # (`%.bc` is the corresponding `make(1)`-rule) for each sub-directory in `backend/` for
-      # the JIT apparently, but with a $(CLANG) that can produce binaries for the build, not the
-      # host-platform.
-      #
-      # I managed to get a cross-build with JIT support working with
-      # `depsBuildBuild = [ llvmPackages.clang ] ++ buildInputs`, but considering that the
-      # resulting LLVM IR isn't platform-independent this doesn't give you much.
-      # In fact, I tried to test the result in a VM-test, but as soon as JIT was used to optimize
-      # a query, postgres would coredump with `Illegal instruction`.
-      broken = jitSupport && (stdenv.hostPlatform != stdenv.buildPlatform);
-    };
-  });
-
-  postgresqlWithPackages = { postgresql, makeWrapper, buildEnv }: pkgs: f: buildEnv {
-    name = "postgresql-and-plugins-${postgresql.version}";
-    paths = f pkgs ++ [
-        postgresql
-        postgresql.lib
-        postgresql.man   # in case user installs this into environment
-    ];
-    nativeBuildInputs = [ makeWrapper ];
-
-
-    # We include /bin to ensure the $out/bin directory is created, which is
-    # needed because we'll be removing the files from that directory in postBuild
-    # below. See #22653
-    pathsToLink = ["/" "/bin"];
-
-    # Note: the duplication of executables is about 4MB size.
-    # So a nicer solution was patching postgresql to allow setting the
-    # libdir explicitly.
-    postBuild = ''
-      mkdir -p $out/bin
-      rm $out/bin/{pg_config,postgres,pg_ctl}
-      cp --target-directory=$out/bin ${postgresql}/bin/{postgres,pg_config,pg_ctl}
-      wrapProgram $out/bin/postgres --set NIX_PGLIBDIR $out/lib
-    '';
-
-    passthru.version = postgresql.version;
-    passthru.psqlSchema = postgresql.psqlSchema;
-  };
-
-  mkPackages = self: {
-    postgresql_12 = self.callPackage generic {
-      version = "12.18";
-      psqlSchema = "12";
-      hash = "sha256-T5kZcl2UHOmGjgf+HtHTqGdIWZtIM4ZUdYOSi3TDkYo=";
-      this = self.postgresql_12;
-      thisAttr = "postgresql_12";
-      inherit self;
-    };
-
-    postgresql_13 = self.callPackage generic {
-      version = "13.14";
-      psqlSchema = "13";
-      hash = "sha256-uN8HhVGJiWC9UA3F04oXfpkFN234H+fytmChQH+mpe0=";
-      this = self.postgresql_13;
-      thisAttr = "postgresql_13";
-      inherit self;
-    };
-
-    postgresql_14 = self.callPackage generic {
-      version = "14.11";
-      psqlSchema = "14";
-      hash = "sha256-pnC9fc4i3K1Cl7JhE2s7HUoJpvVBcZViqhTKY78paKg=";
-      this = self.postgresql_14;
-      thisAttr = "postgresql_14";
-      inherit self;
-    };
-
-    postgresql_15 = self.callPackage generic {
-      version = "15.6";
-      psqlSchema = "15";
-      hash = "sha256-hFUUbtnGnJOlfelUrq0DAsr60DXCskIXXWqh4X68svs=";
-      this = self.postgresql_15;
-      thisAttr = "postgresql_15";
-      inherit self;
-    };
-
-    postgresql_16 = self.callPackage generic {
-      version = "16.2";
-      psqlSchema = "16";
-      hash = "sha256-RG6IKU28LJCFq0twYaZG+mBLS+wDUh1epnHC5a2bKVI=";
-      this = self.postgresql_16;
-      thisAttr = "postgresql_16";
-      inherit self;
-    };
-  };
+      self.lib.nameValuePair attrName (import path {
+        inherit jitSupport self;
+        thisAttr = attrName;
+      })
+    ) versions;
 
-in self:
-  let packages = mkPackages self; in
-  packages
-  // self.lib.mapAttrs'
-    (attrName: postgres: self.lib.nameValuePair "${attrName}_jit" (postgres.override rec {
-      jitSupport = true;
-      thisAttr = "${attrName}_jit";
-      this = self.${thisAttr};
-    }))
-    packages
+in
+# variations without and with JIT
+(mkAttributes false) // (mkAttributes true)
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/anonymizer.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/anonymizer.nix
new file mode 100644
index 000000000000..4bb5aa544440
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/anonymizer.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, pg-dump-anon, postgresql, runtimeShell, jitSupport, llvm }:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "postgresql_anonymizer";
+
+  inherit (pg-dump-anon) version src passthru;
+
+  buildInputs = [ postgresql ];
+  nativeBuildInputs = [ postgresql ] ++ lib.optional jitSupport llvm;
+
+  strictDeps = true;
+
+  makeFlags = [
+    "BINDIR=${placeholder "out"}/bin"
+    "datadir=${placeholder "out"}/share/postgresql"
+    "pkglibdir=${placeholder "out"}/lib"
+    "DESTDIR="
+  ];
+
+  postInstall = ''
+    cat >$out/bin/pg_dump_anon.sh <<'EOF'
+    #!${runtimeShell}
+    echo "This script is deprecated by upstream. To use the new script,"
+    echo "please install pkgs.pg-dump-anon."
+    exit 1
+    EOF
+  '';
+
+  meta = lib.getAttrs [ "homepage" "maintainers" "license" ] pg-dump-anon.meta // {
+    description = "Extension to mask or replace personally identifiable information (PII) or commercially sensitive data from a PostgreSQL database";
+  };
+})
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/default.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/default.nix
new file mode 100644
index 000000000000..b6181da6cf02
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/default.nix
@@ -0,0 +1,107 @@
+self: super: {
+
+    age = super.callPackage ./age.nix { };
+
+    anonymizer = super.callPackage ./anonymizer.nix { };
+
+    apache_datasketches = super.callPackage ./apache_datasketches.nix { };
+
+    citus = super.callPackage ./citus.nix { };
+
+    h3-pg = super.callPackage ./h3-pg.nix { };
+
+    hypopg = super.callPackage ./hypopg.nix { };
+
+    jsonb_deep_sum = super.callPackage ./jsonb_deep_sum.nix { };
+
+    lantern = super.callPackage ./lantern.nix { };
+
+    periods = super.callPackage ./periods.nix { };
+
+    postgis = super.callPackage ./postgis.nix { };
+
+    pg_auto_failover = super.callPackage ./pg_auto_failover.nix { };
+
+    pg_bigm = super.callPackage ./pg_bigm.nix { };
+
+    pg_ed25519 = super.callPackage ./pg_ed25519.nix { };
+
+    pg_embedding = super.callPackage ./pg_embedding.nix { };
+
+    pg_hint_plan = super.callPackage ./pg_hint_plan.nix { };
+
+    pg_ivm = super.callPackage ./pg_ivm.nix { };
+
+    pg_rational = super.callPackage ./pg_rational.nix { };
+
+    pg_repack = super.callPackage ./pg_repack.nix { };
+
+    pg_similarity = super.callPackage ./pg_similarity.nix { };
+
+    pgaudit = super.callPackage ./pgaudit.nix { };
+
+    pgroonga = super.callPackage ./pgroonga.nix { };
+
+    pgsodium = super.callPackage ./pgsodium.nix { };
+
+    pgsql-http = super.callPackage ./pgsql-http.nix { };
+
+    pgvecto-rs = super.callPackage ./pgvecto-rs { };
+
+    pgvector = super.callPackage ./pgvector.nix { };
+
+    plpgsql_check = super.callPackage ./plpgsql_check.nix { };
+
+    plr = super.callPackage ./plr.nix { };
+
+    plv8 = super.callPackage ./plv8 { };
+
+    pgjwt = super.callPackage ./pgjwt.nix { };
+
+    cstore_fdw = super.callPackage ./cstore_fdw.nix { };
+
+    pg_hll = super.callPackage ./pg_hll.nix { };
+
+    pg_cron = super.callPackage ./pg_cron.nix { };
+
+    pg_topn = super.callPackage ./pg_topn.nix { };
+
+    pg_net = super.callPackage ./pg_net.nix { };
+
+    pgtap = super.callPackage ./pgtap.nix { };
+
+    smlar = super.callPackage ./smlar.nix { };
+
+    temporal_tables = super.callPackage ./temporal_tables.nix { };
+
+    timescaledb = super.callPackage ./timescaledb.nix { };
+    timescaledb-apache = super.callPackage ./timescaledb.nix { enableUnfree = false; };
+
+    timescaledb_toolkit = super.callPackage ./timescaledb_toolkit.nix { };
+
+    tsearch_extras = super.callPackage ./tsearch_extras.nix { };
+
+    tds_fdw = super.callPackage ./tds_fdw.nix { };
+
+    pgrouting = super.callPackage ./pgrouting.nix { };
+
+    pg_partman = super.callPackage ./pg_partman.nix { };
+
+    pg_relusage = super.callPackage ./pg_relusage.nix { };
+
+    pg_safeupdate = super.callPackage ./pg_safeupdate.nix { };
+
+    pg_squeeze = super.callPackage ./pg_squeeze.nix { };
+
+    pg_uuidv7 = super.callPackage ./pg_uuidv7.nix { };
+
+    promscale_extension = super.callPackage ./promscale_extension.nix { };
+
+    repmgr = super.callPackage ./repmgr.nix { };
+
+    rum = super.callPackage ./rum.nix { };
+
+    tsja = super.callPackage ./tsja.nix { };
+
+    wal2json = super.callPackage ./wal2json.nix { };
+}
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/lantern.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/lantern.nix
index b08311dfd1a5..bd5f1098f8d6 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/lantern.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/lantern.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lantern";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "lanterndata";
     repo = "lantern";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-B8Dpt/VmD/QzNzfRSlhijnVEd/EuTOP+MI/qERcIbOU=";
+    hash = "sha256-UP3txEBBJV/iOOBDVpRCrsoiAp6QEOHTomlLmbeTQdU=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/periods.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/periods.nix
index 102f80cf8d71..422d6ddaf2b3 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/periods.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/periods.nix
@@ -25,6 +25,5 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ivan ];
     platforms = postgresql.meta.platforms;
     license = licenses.postgresql;
-    broken = versionOlder postgresql.version "9.5";
   };
 }
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
index 51b7d4fd70fa..7a1741b70490 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
@@ -11,8 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-OIWykfFbVskrkPG/zSmZtZjc+W956KSfIzK7f5QOqpI=";
   };
 
-  buildInputs = [ postgresql openssl zlib readline libkrb5 ]
-    ++ lib.optionals (stdenv.isLinux && lib.versionOlder postgresql.version "13") [ libxcrypt ];
+  buildInputs = postgresql.buildInputs ++ [ postgresql ];
 
   installPhase = ''
     install -D -t $out/bin src/bin/pg_autoctl/pg_autoctl
@@ -23,11 +22,11 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "PostgreSQL extension and service for automated failover and high-availability";
+    mainProgram = "pg_autoctl";
     homepage = "https://github.com/citusdata/pg_auto_failover";
     changelog = "https://github.com/citusdata/pg_auto_failover/blob/v${version}/CHANGELOG.md";
     maintainers = [ maintainers.marsam ];
     platforms = postgresql.meta.platforms;
     license = licenses.postgresql;
-    broken = versionOlder postgresql.version "10";
   };
 }
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_embedding.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_embedding.nix
index a39dcd537275..e858d6f0c5d0 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_embedding.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_embedding.nix
@@ -25,6 +25,5 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ivan ];
     platforms = postgresql.meta.platforms;
     license = licenses.asl20;
-    broken = versionOlder postgresql.version "12";
   };
 }
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_net.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_net.nix
index 8ef3182ebeb6..a86f53eeef05 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_net.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_net.nix
@@ -30,6 +30,5 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ thoughtpolice ];
     platforms   = postgresql.meta.platforms;
     license     = licenses.postgresql;
-    broken      = versionOlder postgresql.version "12";
   };
 }
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_repack.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_repack.nix
index e29918373c77..c265ae39ca46 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_repack.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_repack.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation (finalAttrs: {
   pname = "pg_repack";
   version = "1.5.0";
 
-  buildInputs = [ postgresql openssl zlib readline ];
+  buildInputs = postgresql.buildInputs ++ [ postgresql ];
 
   src = fetchFromGitHub {
     owner = "reorg";
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_uuidv7.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_uuidv7.nix
index 7abeba5adda1..9bbde3b195da 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_uuidv7.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_uuidv7.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pg_uuidv7";
-  version = "1.4.1";
+  version = "1.5.0";
 
   buildInputs = [ postgresql ];
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     owner = "fboulnois";
     repo = "pg_uuidv7";
     rev = "v${version}";
-    hash = "sha256-1qEsDCcULceMqvR3DIC5rOfpzn2PYbFGq0H8p2+9GR4=";
+    hash = "sha256-oVyRtjl3KsD3j96qvQb8bFLMhoWO81OudOL4wVXrjzI=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvecto-rs/0001-read-clang-flags-from-environment.diff b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvecto-rs/0001-read-clang-flags-from-environment.diff
new file mode 100644
index 000000000000..2b145445cf15
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvecto-rs/0001-read-clang-flags-from-environment.diff
@@ -0,0 +1,19 @@
+diff --git a/crates/c/build.rs b/crates/c/build.rs
+index 8d822e5..8b7e371 100644
+--- a/crates/c/build.rs
++++ b/crates/c/build.rs
+@@ -1,9 +1,13 @@
+ fn main() {
+     println!("cargo:rerun-if-changed=src/c.h");
+     println!("cargo:rerun-if-changed=src/c.c");
++    println!("cargo:rerun-if-env-changed=BINDGEN_EXTRA_CLANG_ARGS");
+     cc::Build::new()
+-        .compiler("clang-16")
++        .compiler("@clang@")
+         .file("./src/c.c")
++        // read env var set by rustPlatform.bindgenHook
++        .try_flags_from_environment("BINDGEN_EXTRA_CLANG_ARGS")
++        .expect("the BINDGEN_EXTRA_CLANG_ARGS environment variable must be specified and UTF-8")
+         .opt_level(3)
+         .debug(true)
+         .compile("pgvectorsc");
diff --git a/nixpkgs/pkgs/applications/misc/done/Cargo.lock b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvecto-rs/Cargo.lock
index 00698793f26e..a52b9787460e 100644
--- a/nixpkgs/pkgs/applications/misc/done/Cargo.lock
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvecto-rs/Cargo.lock
@@ -3,16 +3,6 @@
 version = 3
 
 [[package]]
-name = "Inflector"
-version = "0.11.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
-dependencies = [
- "lazy_static",
- "regex",
-]
-
-[[package]]
 name = "addr2line"
 version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -29,33 +19,24 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.5"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
-name = "android-tzdata"
-version = "0.1.1"
+name = "anstyle"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
-
-[[package]]
-name = "android_system_properties"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
-dependencies = [
- "libc",
-]
+checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87"
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9"
 
 [[package]]
 name = "arc-swap"
@@ -64,1247 +45,1177 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
 
 [[package]]
-name = "async-compression"
-version = "0.4.2"
+name = "arrayvec"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d495b6dc0184693324491a5ac05f559acc97bf937ab31d7a1c33dd0016be6d2b"
+checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
 dependencies = [
- "flate2",
- "futures-core",
- "memchr",
- "pin-project-lite",
- "tokio",
+ "serde",
 ]
 
 [[package]]
-name = "async-stream"
-version = "0.3.5"
+name = "ascii-canvas"
+version = "3.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
+checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6"
 dependencies = [
- "async-stream-impl",
- "futures-core",
- "pin-project-lite",
+ "term",
 ]
 
 [[package]]
-name = "async-stream-impl"
-version = "0.3.5"
+name = "assert-json-diff"
+version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
+checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.29",
+ "serde",
+ "serde_json",
 ]
 
 [[package]]
-name = "async-trait"
-version = "0.1.73"
+name = "async-channel"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
+checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.29",
+ "concurrent-queue",
+ "event-listener 2.5.3",
+ "futures-core",
 ]
 
 [[package]]
-name = "autocfg"
-version = "1.1.0"
+name = "async-channel"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 4.0.1",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
 
 [[package]]
-name = "backtrace"
-version = "0.3.69"
+name = "async-executor"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c"
 dependencies = [
- "addr2line",
- "cc",
- "cfg-if",
- "libc",
- "miniz_oxide",
- "object",
- "rustc-demangle",
+ "async-lock 3.2.0",
+ "async-task",
+ "concurrent-queue",
+ "fastrand 2.0.1",
+ "futures-lite 2.1.0",
+ "slab",
 ]
 
 [[package]]
-name = "base64"
-version = "0.21.3"
+name = "async-global-executor"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53"
+checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
+dependencies = [
+ "async-channel 2.1.1",
+ "async-executor",
+ "async-io 2.2.2",
+ "async-lock 3.2.0",
+ "blocking",
+ "futures-lite 2.1.0",
+ "once_cell",
+]
 
 [[package]]
-name = "bitflags"
-version = "1.3.2"
+name = "async-io"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
+dependencies = [
+ "async-lock 2.8.0",
+ "autocfg",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-lite 1.13.0",
+ "log",
+ "parking",
+ "polling 2.8.0",
+ "rustix 0.37.27",
+ "slab",
+ "socket2 0.4.10",
+ "waker-fn",
+]
 
 [[package]]
-name = "bitflags"
-version = "2.4.0"
+name = "async-io"
+version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7"
+dependencies = [
+ "async-lock 3.2.0",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite 2.1.0",
+ "parking",
+ "polling 3.3.1",
+ "rustix 0.38.28",
+ "slab",
+ "tracing",
+ "windows-sys 0.52.0",
+]
 
 [[package]]
-name = "block"
-version = "0.1.6"
+name = "async-lock"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
+dependencies = [
+ "event-listener 2.5.3",
+]
 
 [[package]]
-name = "block-buffer"
-version = "0.10.4"
+name = "async-lock"
+version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c"
 dependencies = [
- "generic-array",
+ "event-listener 4.0.1",
+ "event-listener-strategy",
+ "pin-project-lite",
 ]
 
 [[package]]
-name = "bumpalo"
-version = "3.13.0"
+name = "async-object-pool"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+checksum = "aeb901c30ebc2fc4ab46395bbfbdba9542c16559d853645d75190c3056caf3bc"
+dependencies = [
+ "async-std",
+]
 
 [[package]]
-name = "byteorder"
-version = "1.4.3"
+name = "async-process"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88"
+dependencies = [
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-signal",
+ "blocking",
+ "cfg-if",
+ "event-listener 3.1.0",
+ "futures-lite 1.13.0",
+ "rustix 0.38.28",
+ "windows-sys 0.48.0",
+]
 
 [[package]]
-name = "bytes"
-version = "1.4.0"
+name = "async-signal"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
 dependencies = [
- "serde",
+ "async-io 2.2.2",
+ "async-lock 2.8.0",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix 0.38.28",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "cairo-rs"
-version = "0.18.0"
+name = "async-std"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d859b656775a6b1dd078d3e5924884e6ea88aa649a7fdde03d5b2ec56ffcc10b"
+checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
 dependencies = [
- "bitflags 2.4.0",
- "cairo-sys-rs",
- "glib",
- "libc",
+ "async-channel 1.9.0",
+ "async-global-executor",
+ "async-io 1.13.0",
+ "async-lock 2.8.0",
+ "async-process",
+ "crossbeam-utils",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-lite 1.13.0",
+ "gloo-timers",
+ "kv-log-macro",
+ "log",
+ "memchr",
  "once_cell",
- "thiserror",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+ "wasm-bindgen-futures",
 ]
 
 [[package]]
-name = "cairo-sys-rs"
-version = "0.18.0"
+name = "async-task"
+version = "4.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46"
+
+[[package]]
+name = "async-trait"
+version = "0.1.75"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd4d115132e01c0165e3bf5f56aedee8980b0b96ede4eb000b693c05a8adb8ff"
+checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98"
 dependencies = [
- "glib-sys",
- "libc",
- "system-deps",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
 ]
 
 [[package]]
-name = "cascade"
-version = "1.0.1"
+name = "atomic-polyfill"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d499b43edbf784dd81e16f0395f5b4350a35b477da8a074251087adefc11cb52"
+checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4"
+dependencies = [
+ "critical-section",
+]
 
 [[package]]
-name = "cc"
-version = "1.0.83"
+name = "atomic-traits"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+checksum = "b29ec3788e96fb4fdb275ccb9d62811f2fa903d76c5eb4dd6fe7d09a7ed5871f"
 dependencies = [
- "libc",
+ "cfg-if",
+ "rustc_version 0.3.3",
 ]
 
 [[package]]
-name = "cesu8"
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
+[[package]]
+name = "autocfg"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
-name = "cfg-expr"
-version = "0.15.4"
+name = "backtrace"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
- "smallvec",
- "target-lexicon",
+ "addr2line",
+ "cc",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
 ]
 
 [[package]]
-name = "cfg-if"
-version = "1.0.0"
+name = "base64"
+version = "0.21.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
 
 [[package]]
-name = "chrono"
-version = "0.4.28"
+name = "basic-cookies"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95ed24df0632f708f5f6d8082675bef2596f7084dee3dd55f632290bf35bfe0f"
+checksum = "cb53b6b315f924c7f113b162e53b3901c05fc9966baf84d201dfcc7432a4bb38"
 dependencies = [
- "android-tzdata",
- "iana-time-zone",
- "js-sys",
- "num-traits",
- "serde",
- "time 0.1.45",
- "wasm-bindgen",
- "windows-targets 0.48.5",
+ "lalrpop",
+ "lalrpop-util",
+ "regex",
 ]
 
 [[package]]
-name = "chrono-humanize"
-version = "0.2.3"
+name = "bincode"
+version = "1.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "799627e6b4d27827a814e837b9d8a504832086081806d45b1afa34dc982b023b"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
 dependencies = [
- "chrono",
+ "serde",
 ]
 
 [[package]]
-name = "codespan-reporting"
-version = "0.11.1"
+name = "bindgen"
+version = "0.68.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
 dependencies = [
- "termcolor",
- "unicode-width",
+ "bitflags 2.4.1",
+ "cexpr",
+ "clang-sys",
+ "lazy_static",
+ "lazycell",
+ "peeking_take_while",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "syn 2.0.43",
 ]
 
 [[package]]
-name = "combine"
-version = "4.6.6"
+name = "bit-set"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
 dependencies = [
- "bytes",
- "memchr",
+ "bit-vec",
 ]
 
 [[package]]
-name = "core-foundation"
-version = "0.9.3"
+name = "bit-vec"
+version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
 
 [[package]]
-name = "core-foundation-sys"
-version = "0.8.4"
+name = "bitflags"
+version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
-name = "core_done"
-version = "0.1.0"
-dependencies = [
- "anyhow",
- "async-stream",
- "async-trait",
- "cascade",
- "chrono",
- "diesel",
- "diesel_migrations",
- "futures",
- "graph-rs-sdk",
- "http",
- "keytar",
- "libset",
- "open",
- "regex",
- "reqwest",
- "serde",
- "serde_json",
- "strum 0.25.0",
- "strum_macros 0.25.2",
- "tokio",
- "tracing",
- "tracing-subscriber",
- "url",
- "uuid",
-]
+name = "bitflags"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
-name = "cpufeatures"
-version = "0.2.9"
+name = "bitvec"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
 dependencies = [
- "libc",
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
 ]
 
 [[package]]
-name = "crc32fast"
-version = "1.3.2"
+name = "block-buffer"
+version = "0.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
 dependencies = [
- "cfg-if",
+ "generic-array",
 ]
 
 [[package]]
-name = "crypto-common"
-version = "0.1.6"
+name = "blocking"
+version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118"
 dependencies = [
- "generic-array",
- "typenum",
+ "async-channel 2.1.1",
+ "async-lock 3.2.0",
+ "async-task",
+ "fastrand 2.0.1",
+ "futures-io",
+ "futures-lite 2.1.0",
+ "piper",
+ "tracing",
 ]
 
 [[package]]
-name = "cxx"
-version = "1.0.107"
+name = "bumpalo"
+version = "3.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
+
+[[package]]
+name = "bytemuck"
+version = "1.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbe98ba1789d56fb3db3bee5e032774d4f421b685de7ba703643584ba24effbe"
+checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6"
 dependencies = [
- "cc",
- "cxxbridge-flags",
- "cxxbridge-macro",
- "link-cplusplus",
+ "bytemuck_derive",
 ]
 
 [[package]]
-name = "cxx-build"
-version = "1.0.107"
+name = "bytemuck_derive"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4ce20f6b8433da4841b1dadfb9468709868022d829d5ca1f2ffbda928455ea3"
+checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1"
 dependencies = [
- "cc",
- "codespan-reporting",
- "once_cell",
  "proc-macro2",
  "quote",
- "scratch",
- "syn 2.0.29",
+ "syn 2.0.43",
 ]
 
 [[package]]
-name = "cxxbridge-flags"
-version = "1.0.107"
+name = "byteorder"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20888d9e1d2298e2ff473cee30efe7d5036e437857ab68bbfea84c74dba91da2"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
-name = "cxxbridge-macro"
-version = "1.0.107"
+name = "bytes"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fa16a70dd58129e4dfffdff535fb1bce66673f7bbeec4a5a1765a504e1ccd84"
+checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+
+[[package]]
+name = "c"
+version = "0.0.0"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.29",
+ "cc",
+ "detect",
+ "half 2.3.1",
+ "rand",
 ]
 
 [[package]]
-name = "dashmap"
-version = "5.5.3"
+name = "cargo_toml"
+version = "0.16.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+checksum = "e3f9629bc6c4388ea699781dc988c2b99766d7679b151c81990b4fa1208fafd3"
 dependencies = [
- "cfg-if",
- "hashbrown 0.14.0",
- "lock_api",
- "once_cell",
- "parking_lot_core",
+ "serde",
+ "toml",
 ]
 
 [[package]]
-name = "deranged"
-version = "0.3.8"
+name = "castaway"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
 
 [[package]]
-name = "derive-new"
-version = "0.5.9"
+name = "cc"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
+ "libc",
 ]
 
 [[package]]
-name = "diesel"
-version = "2.1.1"
+name = "cexpr"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d98235fdc2f355d330a8244184ab6b4b33c28679c0b4158f63138e51d6cf7e88"
+checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
 dependencies = [
- "chrono",
- "diesel_derives",
- "libsqlite3-sys",
- "time 0.3.28",
+ "nom",
 ]
 
 [[package]]
-name = "diesel_derives"
-version = "2.1.1"
+name = "cfg-if"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e054665eaf6d97d1e7125512bb2d35d07c73ac86cc6920174cb42d1ab697a554"
-dependencies = [
- "diesel_table_macro_syntax",
- "proc-macro2",
- "quote",
- "syn 2.0.29",
-]
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
-name = "diesel_migrations"
-version = "2.1.0"
+name = "clang-sys"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6036b3f0120c5961381b570ee20a02432d7e2d27ea60de9578799cf9156914ac"
+checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
 dependencies = [
- "diesel",
- "migrations_internals",
- "migrations_macros",
+ "glob",
+ "libc",
+ "libloading",
 ]
 
 [[package]]
-name = "diesel_table_macro_syntax"
-version = "0.1.0"
+name = "clap"
+version = "4.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
+checksum = "dcfab8ba68f3668e89f6ff60f5b205cea56aa7b769451a59f34b8682f51c056d"
 dependencies = [
- "syn 2.0.29",
+ "clap_builder",
+ "clap_derive",
 ]
 
 [[package]]
-name = "digest"
-version = "0.10.7"
+name = "clap-cargo"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+checksum = "25122ca6ebad5f53578c26638afd9f0160426969970dc37ec6c363ff6b082ebd"
 dependencies = [
- "block-buffer",
- "crypto-common",
+ "clap",
+ "doc-comment",
 ]
 
 [[package]]
-name = "directories"
-version = "4.0.1"
-source = "git+https://github.com/edfloreshz/directories-rs#6a6d83d853a35ee3273034215c4defaf61286fe5"
+name = "clap_builder"
+version = "4.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9"
 dependencies = [
- "anyhow",
- "dirs-sys",
+ "anstyle",
+ "clap_lex",
 ]
 
 [[package]]
-name = "dirs"
-version = "4.0.0"
+name = "clap_derive"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
- "dirs-sys",
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
 ]
 
 [[package]]
-name = "dirs-sys"
-version = "0.3.7"
+name = "clap_lex"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
-dependencies = [
- "libc",
- "redox_users",
- "winapi",
-]
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 
 [[package]]
-name = "displaydoc"
-version = "0.2.4"
+name = "concurrent-queue"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.29",
+ "crossbeam-utils",
 ]
 
 [[package]]
-name = "done"
-version = "0.2.0"
+name = "convert_case"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
 dependencies = [
- "anyhow",
- "chrono",
- "core_done",
- "derive-new",
- "futures",
- "gettext-rs",
- "glib",
- "glib-build-tools",
- "i18n-embed",
- "i18n-embed-fl",
- "libadwaita",
- "libset",
- "once_cell",
- "relm4",
- "relm4-icons",
- "reqwest",
- "rust-embed",
- "serde",
- "strum 0.25.0",
- "strum_macros 0.25.2",
- "tracing",
- "tracing-subscriber",
+ "unicode-segmentation",
 ]
 
 [[package]]
-name = "dyn-clone"
-version = "1.0.13"
+name = "core-foundation-sys"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbfc4744c1b8f2a09adc0e55242f60b1af195d88596bd8700be74418c056c555"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
-name = "encoding_rs"
-version = "0.8.33"
+name = "cpufeatures"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crc32fast"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
-name = "equivalent"
-version = "1.0.1"
+name = "critical-section"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216"
 
 [[package]]
-name = "erased-serde"
-version = "0.3.31"
+name = "crossbeam"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c"
+checksum = "6eb9105919ca8e40d437fc9cbb8f1975d916f1bd28afe795a48aae32a2cc8920"
 dependencies = [
- "serde",
+ "cfg-if",
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-epoch",
+ "crossbeam-queue",
+ "crossbeam-utils",
 ]
 
 [[package]]
-name = "errno"
-version = "0.3.3"
+name = "crossbeam-channel"
+version = "0.5.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
+checksum = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2"
 dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.48.0",
+ "cfg-if",
+ "crossbeam-utils",
 ]
 
 [[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+name = "crossbeam-deque"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751"
 dependencies = [
- "cc",
- "libc",
+ "cfg-if",
+ "crossbeam-epoch",
+ "crossbeam-utils",
 ]
 
 [[package]]
-name = "fastrand"
-version = "2.0.0"
+name = "crossbeam-epoch"
+version = "0.9.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "crossbeam-utils",
+]
 
 [[package]]
-name = "field-offset"
-version = "0.3.6"
+name = "crossbeam-queue"
+version = "0.3.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
+checksum = "adc6598521bb5a83d491e8c1fe51db7296019d2ca3cb93cc6c2a20369a4d78a2"
 dependencies = [
- "memoffset",
- "rustc_version",
+ "cfg-if",
+ "crossbeam-utils",
 ]
 
 [[package]]
-name = "find-crate"
-version = "0.6.3"
+name = "crossbeam-utils"
+version = "0.8.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2"
+checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c"
 dependencies = [
- "toml 0.5.11",
+ "cfg-if",
 ]
 
 [[package]]
-name = "flate2"
-version = "1.0.27"
+name = "crunchy"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
 dependencies = [
- "crc32fast",
- "miniz_oxide",
+ "generic-array",
+ "typenum",
 ]
 
 [[package]]
-name = "fluent"
-version = "0.16.0"
+name = "ctor"
+version = "0.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61f69378194459db76abd2ce3952b790db103ceb003008d3d50d97c41ff847a7"
+checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e"
 dependencies = [
- "fluent-bundle",
- "unic-langid",
+ "quote",
+ "syn 2.0.43",
 ]
 
 [[package]]
-name = "fluent-bundle"
-version = "0.15.2"
+name = "cty"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e242c601dec9711505f6d5bbff5bedd4b61b2469f2e8bb8e57ee7c9747a87ffd"
+checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
+
+[[package]]
+name = "curl"
+version = "0.4.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22"
 dependencies = [
- "fluent-langneg",
- "fluent-syntax",
- "intl-memoizer",
- "intl_pluralrules",
- "rustc-hash",
- "self_cell",
- "smallvec",
- "unic-langid",
+ "curl-sys",
+ "libc",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "socket2 0.4.10",
+ "winapi",
 ]
 
 [[package]]
-name = "fluent-langneg"
-version = "0.13.0"
+name = "curl-sys"
+version = "0.4.70+curl-8.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c4ad0989667548f06ccd0e306ed56b61bd4d35458d54df5ec7587c0e8ed5e94"
+checksum = "3c0333d8849afe78a4c8102a429a446bfdd055832af071945520e835ae2d841e"
 dependencies = [
- "unic-langid",
+ "cc",
+ "libc",
+ "libnghttp2-sys",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "fluent-syntax"
-version = "0.11.0"
+name = "dashmap"
+version = "5.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0abed97648395c902868fee9026de96483933faa54ea3b40d652f7dfe61ca78"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
 dependencies = [
- "thiserror",
+ "cfg-if",
+ "hashbrown",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
 ]
 
 [[package]]
-name = "flume"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
+name = "detect"
+version = "0.0.0"
 dependencies = [
- "futures-core",
- "futures-sink",
- "nanorand",
- "spin 0.9.8",
+ "ctor",
+ "rustix 0.38.28",
+ "std_detect",
 ]
 
 [[package]]
-name = "fnv"
-version = "1.0.7"
+name = "diff"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
 
 [[package]]
-name = "foreign-types"
-version = "0.3.2"
+name = "digest"
+version = "0.10.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
 dependencies = [
- "foreign-types-shared",
+ "block-buffer",
+ "crypto-common",
+ "subtle",
 ]
 
 [[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "form_urlencoded"
-version = "1.2.0"
+name = "dirs"
+version = "5.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
 dependencies = [
- "percent-encoding",
+ "dirs-sys",
 ]
 
 [[package]]
-name = "fragile"
+name = "dirs-next"
 version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
+]
 
 [[package]]
-name = "futures"
-version = "0.3.28"
+name = "dirs-sys"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
 dependencies = [
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-io",
- "futures-sink",
- "futures-task",
- "futures-util",
+ "libc",
+ "option-ext",
+ "redox_users",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "futures-channel"
-version = "0.3.28"
+name = "dirs-sys-next"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
 dependencies = [
- "futures-core",
- "futures-sink",
+ "libc",
+ "redox_users",
+ "winapi",
 ]
 
 [[package]]
-name = "futures-core"
-version = "0.3.28"
+name = "doc-comment"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
 
 [[package]]
-name = "futures-executor"
-version = "0.3.28"
+name = "downcast"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
-dependencies = [
- "futures-core",
- "futures-task",
- "futures-util",
-]
+checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1"
 
 [[package]]
-name = "futures-io"
-version = "0.3.28"
+name = "either"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
-name = "futures-macro"
-version = "0.3.28"
+name = "ena"
+version = "0.14.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.29",
+ "log",
 ]
 
 [[package]]
-name = "futures-sink"
-version = "0.3.28"
+name = "encoding_rs"
+version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
+dependencies = [
+ "cfg-if",
+]
 
 [[package]]
-name = "futures-task"
-version = "0.3.28"
+name = "enum-map"
+version = "2.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9"
+dependencies = [
+ "enum-map-derive",
+]
 
 [[package]]
-name = "futures-util"
-version = "0.3.28"
+name = "enum-map-derive"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb"
 dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-macro",
- "futures-sink",
- "futures-task",
- "memchr",
- "pin-project-lite",
- "pin-utils",
- "slab",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
 ]
 
 [[package]]
-name = "gdk-pixbuf"
-version = "0.18.0"
+name = "env_logger"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbc9c2ed73a81d556b65d08879ba4ee58808a6b1927ce915262185d6d547c6f3"
+checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
 dependencies = [
- "gdk-pixbuf-sys",
- "gio",
- "glib",
- "libc",
- "once_cell",
+ "humantime",
+ "is-terminal",
+ "log",
+ "regex",
+ "termcolor",
 ]
 
 [[package]]
-name = "gdk-pixbuf-sys"
-version = "0.18.0"
+name = "equivalent"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
-dependencies = [
- "gio-sys",
- "glib-sys",
- "gobject-sys",
- "libc",
- "system-deps",
-]
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
-name = "gdk4"
-version = "0.7.2"
+name = "errno"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6982d9815ed6ac95b0467b189e81f29dea26d08a732926ec113e65744ed3f96c"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
- "cairo-rs",
- "gdk-pixbuf",
- "gdk4-sys",
- "gio",
- "glib",
  "libc",
- "pango",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "gdk4-sys"
-version = "0.7.2"
+name = "event-listener"
+version = "2.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbab43f332a3cf1df9974da690b5bb0e26720ed09a228178ce52175372dcfef0"
-dependencies = [
- "cairo-sys-rs",
- "gdk-pixbuf-sys",
- "gio-sys",
- "glib-sys",
- "gobject-sys",
- "libc",
- "pango-sys",
- "pkg-config",
- "system-deps",
-]
+checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
-name = "generic-array"
-version = "0.14.7"
+name = "event-listener"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2"
 dependencies = [
- "typenum",
- "version_check",
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
 ]
 
 [[package]]
-name = "getrandom"
-version = "0.2.10"
+name = "event-listener"
+version = "4.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "84f2cdcf274580f2d63697192d744727b3198894b1bf02923643bf59e2c26712"
 dependencies = [
- "cfg-if",
- "js-sys",
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
- "wasm-bindgen",
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
 ]
 
 [[package]]
-name = "gettext-rs"
-version = "0.7.0"
+name = "event-listener-strategy"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364"
+checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3"
 dependencies = [
- "gettext-sys",
- "locale_config",
+ "event-listener 4.0.1",
+ "pin-project-lite",
 ]
 
 [[package]]
-name = "gettext-sys"
-version = "0.21.3"
+name = "eyre"
+version = "0.6.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d"
+checksum = "b6267a1fa6f59179ea4afc8e50fd8612a3cc60bc858f786ff877a4a8cb042799"
 dependencies = [
- "cc",
- "temp-dir",
+ "indenter",
+ "once_cell",
 ]
 
 [[package]]
-name = "gimli"
-version = "0.28.0"
+name = "fallible-iterator"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
+checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7"
 
 [[package]]
-name = "gio"
-version = "0.18.1"
+name = "fastrand"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7884cba6b1c5db1607d970cadf44b14a43913d42bc68766eea6a5e2fe0891524"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
 dependencies = [
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-util",
- "gio-sys",
- "glib",
- "libc",
- "once_cell",
- "pin-project-lite",
- "smallvec",
- "thiserror",
+ "instant",
 ]
 
 [[package]]
-name = "gio-sys"
-version = "0.18.1"
+name = "fastrand"
+version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
-dependencies = [
- "glib-sys",
- "gobject-sys",
- "libc",
- "system-deps",
- "winapi",
-]
+checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
 
 [[package]]
-name = "glib"
-version = "0.18.1"
+name = "finl_unicode"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "331156127e8166dd815cf8d2db3a5beb492610c716c03ee6db4f2d07092af0a7"
-dependencies = [
- "bitflags 2.4.0",
- "futures-channel",
- "futures-core",
- "futures-executor",
- "futures-task",
- "futures-util",
- "gio-sys",
- "glib-macros",
- "glib-sys",
- "gobject-sys",
- "libc",
- "memchr",
- "once_cell",
- "smallvec",
- "thiserror",
-]
+checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6"
 
 [[package]]
-name = "glib-build-tools"
-version = "0.18.0"
+name = "fixedbitset"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3431c56f463443cba9bc3600248bc6d680cb614c2ee1cdd39dab5415bd12ac5c"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
 
 [[package]]
-name = "glib-macros"
-version = "0.18.0"
+name = "flate2"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "179643c50bf28d20d2f6eacd2531a88f2f5d9747dd0b86b8af1e8bb5dd0de3c0"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
- "heck",
- "proc-macro-crate",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn 2.0.29",
+ "crc32fast",
+ "miniz_oxide",
 ]
 
 [[package]]
-name = "glib-sys"
-version = "0.18.1"
+name = "fnv"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
-dependencies = [
- "libc",
- "system-deps",
-]
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
-name = "gobject-sys"
-version = "0.18.0"
+name = "form_urlencoded"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
- "glib-sys",
- "libc",
- "system-deps",
+ "percent-encoding",
 ]
 
 [[package]]
-name = "graph-core"
-version = "0.4.0"
+name = "fragile"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f0fb786a3bfe3daa33f585534e871f04d3965d14398343d8818e12cefc02703"
-dependencies = [
- "Inflector",
- "remain",
- "serde",
- "serde_json",
- "strum 0.24.1",
-]
+checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
 
 [[package]]
-name = "graph-error"
-version = "0.2.2"
+name = "funty"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f20cdf0cafaa6345cec12d94614c3c3d9ae8abf60fbb9783f706610a80119b7"
-dependencies = [
- "base64",
- "futures",
- "handlebars",
- "http",
- "http-serde",
- "reqwest",
- "ring",
- "serde",
- "serde_json",
- "thiserror",
- "tokio",
- "url",
-]
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
 
 [[package]]
-name = "graph-http"
-version = "1.1.0"
+name = "futures-channel"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03724659be7b906ab31469dadf8b55191dceda793f52335cbd8b5be3ff9a3b3a"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
- "async-stream",
- "async-trait",
- "bytes",
- "futures",
- "graph-core",
- "graph-error",
- "handlebars",
- "http",
- "percent-encoding",
- "reqwest",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "thiserror",
- "tokio",
- "url",
+ "futures-core",
+ "futures-sink",
 ]
 
 [[package]]
-name = "graph-oauth"
-version = "1.0.2"
+name = "futures-core"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "362697376221ab094832dc33fd11c5b85c891c9174f7d0a79032f1d03b065d94"
-dependencies = [
- "base64",
- "chrono",
- "chrono-humanize",
- "graph-error",
- "reqwest",
- "ring",
- "serde",
- "serde-aux",
- "serde_json",
- "strum 0.24.1",
- "url",
- "webbrowser",
-]
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
-name = "graph-rs-sdk"
-version = "1.1.1"
+name = "futures-io"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed4aa7e7207ecb25d399023e7f6eb0433694f8f162c494e90059ec5d1d03a9da"
-dependencies = [
- "graph-core",
- "graph-error",
- "graph-http",
- "graph-oauth",
- "handlebars",
- "lazy_static",
- "reqwest",
- "serde",
- "serde_json",
- "url",
-]
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
-name = "graphene-rs"
-version = "0.18.1"
+name = "futures-lite"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401"
+checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
 dependencies = [
- "glib",
- "graphene-sys",
- "libc",
+ "fastrand 1.9.0",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite",
+ "waker-fn",
 ]
 
 [[package]]
-name = "graphene-sys"
-version = "0.18.1"
+name = "futures-lite"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc4144cee8fc8788f2a9b73dc5f1d4e1189d1f95305c4cb7bd9c1af1cfa31f59"
+checksum = "aeee267a1883f7ebef3700f262d2d54de95dfaf38189015a74fdc4e0c7ad8143"
 dependencies = [
- "glib-sys",
- "libc",
- "pkg-config",
- "system-deps",
+ "fastrand 2.0.1",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "pin-project-lite",
 ]
 
 [[package]]
-name = "gsk4"
-version = "0.7.2"
+name = "futures-macro"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc25855255120f294d874acd6eaf4fbed7ce1cdc550e2d8415ea57fafbe816d5"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
- "cairo-rs",
- "gdk4",
- "glib",
- "graphene-rs",
- "gsk4-sys",
- "libc",
- "pango",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
 ]
 
 [[package]]
-name = "gsk4-sys"
-version = "0.7.2"
+name = "futures-sink"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1ecf3a63bf1223d68f80f72cc896c4d8c80482fbce1c9a12c66d3de7290ee46"
-dependencies = [
- "cairo-sys-rs",
- "gdk4-sys",
- "glib-sys",
- "gobject-sys",
- "graphene-sys",
- "libc",
- "pango-sys",
- "system-deps",
-]
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
-name = "gtk4"
-version = "0.7.2"
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3b095b26f2a2df70be1805d3590eeb9d7a05ecb5be9649b82defc72dc56228c"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
- "cairo-rs",
- "field-offset",
- "futures-channel",
- "gdk-pixbuf",
- "gdk4",
- "gio",
- "glib",
- "graphene-rs",
- "gsk4",
- "gtk4-macros",
- "gtk4-sys",
- "libc",
- "pango",
+ "futures-core",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
 ]
 
 [[package]]
-name = "gtk4-macros"
-version = "0.7.2"
+name = "generic-array"
+version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
 dependencies = [
- "anyhow",
- "proc-macro-crate",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
+ "typenum",
+ "version_check",
 ]
 
 [[package]]
-name = "gtk4-sys"
-version = "0.7.2"
+name = "getrandom"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b0bdde87c50317b4f355bcbb4a9c2c414ece1b7c824fb4ad4ba8f3bdb2c6603"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
 dependencies = [
- "cairo-sys-rs",
- "gdk-pixbuf-sys",
- "gdk4-sys",
- "gio-sys",
- "glib-sys",
- "gobject-sys",
- "graphene-sys",
- "gsk4-sys",
+ "cfg-if",
  "libc",
- "pango-sys",
- "system-deps",
+ "wasi",
 ]
 
 [[package]]
-name = "gvdb"
-version = "0.5.2"
+name = "gimli"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7473589355e97ab7ab46549d3786406d6fcad8837c94bb7874c18a8a3ae653fc"
-dependencies = [
- "byteorder",
- "flate2",
- "quick-xml",
- "safe-transmute",
- "serde",
- "serde_json",
- "walkdir",
- "zvariant",
-]
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
-name = "h2"
-version = "0.3.21"
+name = "glob"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "gloo-timers"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c"
 dependencies = [
- "bytes",
- "fnv",
+ "futures-channel",
  "futures-core",
- "futures-sink",
- "futures-util",
- "http",
- "indexmap 1.9.3",
- "slab",
- "tokio",
- "tokio-util",
- "tracing",
+ "js-sys",
+ "wasm-bindgen",
 ]
 
 [[package]]
-name = "handlebars"
-version = "2.0.4"
+name = "half"
+version = "1.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af92141a22acceb515fb6b13ac59d6d0b3dd3437e13832573af8e0d3247f29d5"
+checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
+
+[[package]]
+name = "half"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872"
 dependencies = [
- "hashbrown 0.5.0",
- "log",
- "pest",
- "pest_derive",
- "quick-error",
+ "bytemuck",
+ "cfg-if",
+ "crunchy",
+ "num-traits",
+ "rand",
+ "rand_distr",
  "serde",
- "serde_json",
- "walkdir",
 ]
 
 [[package]]
-name = "hashbrown"
-version = "0.5.0"
+name = "hash32"
+version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1de41fb8dba9714efd92241565cdff73f78508c95697dd56787d3cba27e2353"
+checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67"
 dependencies = [
- "serde",
+ "byteorder",
 ]
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
 
 [[package]]
-name = "hashbrown"
-version = "0.14.0"
+name = "heapless"
+version = "0.7.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f"
+dependencies = [
+ "atomic-polyfill",
+ "hash32",
+ "rustc_version 0.4.0",
+ "spin",
+ "stable_deref_trait",
+]
 
 [[package]]
 name = "heck"
@@ -1314,24 +1225,24 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
-name = "home"
-version = "0.5.5"
+name = "hmac"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
+checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
 dependencies = [
- "windows-sys 0.48.0",
+ "digest",
 ]
 
 [[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
 dependencies = [
  "bytes",
  "fnv",
@@ -1340,9 +1251,9 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
  "http",
@@ -1350,16 +1261,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "http-serde"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f560b665ad9f1572cfcaf034f7fb84338a7ce945216d64a90fd81f046a3caee"
-dependencies = [
- "http",
- "serde",
-]
-
-[[package]]
 name = "httparse"
 version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1372,23 +1273,56 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
+name = "httpmock"
+version = "0.6.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b02e044d3b4c2f94936fb05f9649efa658ca788f44eb6b87554e2033fc8ce93"
+dependencies = [
+ "assert-json-diff",
+ "async-object-pool",
+ "async-trait",
+ "base64",
+ "basic-cookies",
+ "crossbeam-utils",
+ "form_urlencoded",
+ "futures-util",
+ "hyper",
+ "isahc",
+ "lazy_static",
+ "levenshtein",
+ "log",
+ "regex",
+ "serde",
+ "serde_json",
+ "serde_regex",
+ "similar",
+ "tokio",
+ "url",
+]
+
+[[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.27"
+version = "0.14.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-core",
  "futures-util",
- "h2",
  "http",
  "http-body",
  "httparse",
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.9",
+ "socket2 0.5.5",
  "tokio",
  "tower-service",
  "tracing",
@@ -1396,346 +1330,268 @@ dependencies = [
 ]
 
 [[package]]
-name = "hyper-tls"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
-dependencies = [
- "bytes",
- "hyper",
- "native-tls",
- "tokio",
- "tokio-native-tls",
-]
-
-[[package]]
-name = "i18n-config"
-version = "0.4.4"
+name = "idna"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b987084cadad6e2f2b1e6ea62c44123591a3c044793a1beabf71a8356ea768d5"
+checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
 dependencies = [
- "log",
- "serde",
- "serde_derive",
- "thiserror",
- "toml 0.7.6",
- "unic-langid",
+ "unicode-bidi",
+ "unicode-normalization",
 ]
 
 [[package]]
-name = "i18n-embed"
-version = "0.13.9"
+name = "idna"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92a86226a7a16632de6723449ee5fe70bac5af718bc642ee9ca2f0f6e14fa1fa"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
- "arc-swap",
- "fluent",
- "fluent-langneg",
- "fluent-syntax",
- "i18n-embed-impl",
- "intl-memoizer",
- "lazy_static",
- "locale_config",
- "log",
- "parking_lot",
- "rust-embed",
- "thiserror",
- "unic-langid",
- "walkdir",
+ "unicode-bidi",
+ "unicode-normalization",
 ]
 
 [[package]]
-name = "i18n-embed-fl"
-version = "0.6.7"
+name = "if_chain"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d26a3d3569737dfaac7fc1c4078e6af07471c3060b8e570bcd83cdd5f4685395"
-dependencies = [
- "dashmap",
- "find-crate",
- "fluent",
- "fluent-syntax",
- "i18n-config",
- "i18n-embed",
- "lazy_static",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "strsim",
- "syn 2.0.29",
- "unic-langid",
-]
+checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed"
 
 [[package]]
-name = "i18n-embed-impl"
-version = "0.8.1"
+name = "indenter"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e9a95d065e6be4499e50159172395559a388d20cf13c84c77e4a1e341786f219"
-dependencies = [
- "find-crate",
- "i18n-config",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
+checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683"
 
 [[package]]
-name = "iana-time-zone"
-version = "0.1.57"
+name = "indexmap"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f"
 dependencies = [
- "android_system_properties",
- "core-foundation-sys",
- "iana-time-zone-haiku",
- "js-sys",
- "wasm-bindgen",
- "windows",
+ "equivalent",
+ "hashbrown",
 ]
 
 [[package]]
-name = "iana-time-zone-haiku"
-version = "0.1.2"
+name = "instant"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
 dependencies = [
- "cc",
+ "cfg-if",
 ]
 
 [[package]]
-name = "idna"
-version = "0.4.0"
+name = "io-lifetimes"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 dependencies = [
- "unicode-bidi",
- "unicode-normalization",
+ "hermit-abi",
+ "libc",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "indexmap"
-version = "1.9.3"
+name = "is-terminal"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455"
 dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
+ "hermit-abi",
+ "rustix 0.38.28",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "indexmap"
-version = "2.0.0"
+name = "isahc"
+version = "1.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9"
 dependencies = [
- "equivalent",
- "hashbrown 0.14.0",
+ "async-channel 1.9.0",
+ "castaway",
+ "crossbeam-utils",
+ "curl",
+ "curl-sys",
+ "encoding_rs",
+ "event-listener 2.5.3",
+ "futures-lite 1.13.0",
+ "http",
+ "log",
+ "mime",
+ "once_cell",
+ "polling 2.8.0",
+ "slab",
+ "sluice",
+ "tracing",
+ "tracing-futures",
+ "url",
+ "waker-fn",
 ]
 
 [[package]]
-name = "intl-memoizer"
-version = "0.5.1"
+name = "itertools"
+version = "0.10.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c310433e4a310918d6ed9243542a6b83ec1183df95dff8f23f87bb88a264a66f"
+checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
 dependencies = [
- "type-map",
- "unic-langid",
+ "either",
 ]
 
 [[package]]
-name = "intl_pluralrules"
-version = "7.0.2"
+name = "itertools"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
 dependencies = [
- "unic-langid",
+ "either",
 ]
 
 [[package]]
-name = "ipnet"
-version = "2.8.0"
+name = "itoa"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
-name = "is-docker"
-version = "0.2.0"
+name = "js-sys"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
+checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca"
 dependencies = [
- "once_cell",
+ "wasm-bindgen",
 ]
 
 [[package]]
-name = "is-wsl"
-version = "0.4.0"
+name = "kv-log-macro"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
+checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
 dependencies = [
- "is-docker",
- "once_cell",
+ "log",
 ]
 
 [[package]]
-name = "itoa"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
-
-[[package]]
-name = "jni"
-version = "0.21.1"
+name = "lalrpop"
+version = "0.19.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
+checksum = "0a1cbf952127589f2851ab2046af368fd20645491bb4b376f04b7f94d7a9837b"
 dependencies = [
- "cesu8",
- "cfg-if",
- "combine",
- "jni-sys",
- "log",
- "thiserror",
- "walkdir",
- "windows-sys 0.45.0",
+ "ascii-canvas",
+ "bit-set",
+ "diff",
+ "ena",
+ "is-terminal",
+ "itertools 0.10.5",
+ "lalrpop-util",
+ "petgraph",
+ "regex",
+ "regex-syntax 0.6.29",
+ "string_cache",
+ "term",
+ "tiny-keccak",
+ "unicode-xid",
 ]
 
 [[package]]
-name = "jni-sys"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
-
-[[package]]
-name = "js-sys"
-version = "0.3.64"
+name = "lalrpop-util"
+version = "0.19.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "d3c48237b9604c5a4702de6b824e02006c3214327564636aef27c1028a8fa0ed"
 dependencies = [
- "wasm-bindgen",
+ "regex",
 ]
 
 [[package]]
-name = "keytar"
-version = "0.1.6"
+name = "lazy_static"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d361c55fba09829ac620b040f5425bf239b1030c3d6820a84acac8da867dca4d"
-dependencies = [
- "keytar-sys",
-]
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
-name = "keytar-sys"
-version = "0.1.6"
+name = "lazycell"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe908c6896705a1cb516cd6a5d956c63f08d95ace81b93253a98cd93e1e6a65a"
-dependencies = [
- "cc",
- "cxx",
- "cxx-build",
- "pkg-config",
-]
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
-name = "lazy_static"
-version = "1.4.0"
+name = "levenshtein"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+checksum = "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760"
 
 [[package]]
-name = "libadwaita"
-version = "0.5.2"
+name = "libc"
+version = "0.2.151"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06444f4ca05a60693da6e9e2b591bd40a298e65a118a8d5e830771718b3e0253"
-dependencies = [
- "gdk-pixbuf",
- "gdk4",
- "gio",
- "glib",
- "gtk4",
- "libadwaita-sys",
- "libc",
- "pango",
-]
+checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
 
 [[package]]
-name = "libadwaita-sys"
-version = "0.5.2"
+name = "libloading"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "021cfe3d1fcfa82411765a791f7e9b32f35dd98ce88d2e3fa10e7320f5cc8ce7"
+checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
 dependencies = [
- "gdk4-sys",
- "gio-sys",
- "glib-sys",
- "gobject-sys",
- "gtk4-sys",
- "libc",
- "pango-sys",
- "system-deps",
+ "cfg-if",
+ "winapi",
 ]
 
 [[package]]
-name = "libc"
-version = "0.2.147"
+name = "libm"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 
 [[package]]
-name = "libset"
-version = "0.1.2"
-source = "git+https://github.com/edfloreshz/libset?branch=beta#f44cd2142b23996ed8390b73251a87cabd35caae"
+name = "libnghttp2-sys"
+version = "0.1.8+1.55.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fae956c192dadcdb5dace96db71fa0b827333cce7c7b38dc71446f024d8a340"
 dependencies = [
- "anyhow",
- "directories",
- "dirs",
- "dyn-clone",
- "erased-serde",
- "serde",
- "serde_json",
- "toml 0.5.11",
- "walkdir",
+ "cc",
+ "libc",
 ]
 
 [[package]]
-name = "libsqlite3-sys"
-version = "0.26.0"
+name = "libredox"
+version = "0.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326"
+checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8"
 dependencies = [
- "pkg-config",
- "vcpkg",
+ "bitflags 2.4.1",
+ "libc",
+ "redox_syscall",
 ]
 
 [[package]]
-name = "link-cplusplus"
-version = "1.0.9"
+name = "libz-sys"
+version = "1.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9"
+checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
 dependencies = [
  "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
 ]
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 
 [[package]]
-name = "locale_config"
-version = "0.3.0"
+name = "linux-raw-sys"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
-dependencies = [
- "lazy_static",
- "objc",
- "objc-foundation",
- "regex",
- "winapi",
-]
+checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456"
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -1746,50 +1602,42 @@ name = "log"
 version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
+dependencies = [
+ "value-bag",
+]
 
 [[package]]
-name = "malloc_buf"
-version = "0.0.6"
+name = "md-5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
 dependencies = [
- "libc",
+ "cfg-if",
+ "digest",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.6.2"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5486aed0026218e61b8a01d5fbd5a0a134649abb71a0e53b7bc088529dced86e"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
-name = "memoffset"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "migrations_internals"
-version = "2.1.0"
+name = "memmap2"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f23f71580015254b020e856feac3df5878c2c7a8812297edd6c0a485ac9dada"
+checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92"
 dependencies = [
- "serde",
- "toml 0.7.6",
+ "libc",
 ]
 
 [[package]]
-name = "migrations_macros"
-version = "2.1.0"
+name = "memoffset"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cce3325ac70e67bbab5bd837a31cae01f1a6db64e0e744a33cb03a543469ef08"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
 dependencies = [
- "migrations_internals",
- "proc-macro2",
- "quote",
+ "autocfg",
 ]
 
 [[package]]
@@ -1799,6 +1647,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
 name = "miniz_oxide"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1809,156 +1663,135 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09"
 dependencies = [
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
-name = "nanorand"
-version = "0.7.0"
+name = "mockall"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3"
+checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48"
 dependencies = [
- "getrandom",
+ "cfg-if",
+ "downcast",
+ "fragile",
+ "lazy_static",
+ "mockall_derive",
+ "predicates",
+ "predicates-tree",
 ]
 
 [[package]]
-name = "native-tls"
-version = "0.2.11"
+name = "mockall_derive"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
+checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2"
 dependencies = [
- "lazy_static",
- "libc",
- "log",
- "openssl",
- "openssl-probe",
- "openssl-sys",
- "schannel",
- "security-framework",
- "security-framework-sys",
- "tempfile",
+ "cfg-if",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
 ]
 
 [[package]]
-name = "ndk-context"
-version = "0.1.1"
+name = "multiversion"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
+checksum = "b2c7b9d7fe61760ce5ea19532ead98541f6b4c495d87247aff9826445cf6872a"
+dependencies = [
+ "multiversion-macros",
+ "target-features",
+]
 
 [[package]]
-name = "nu-ansi-term"
-version = "0.46.0"
+name = "multiversion-macros"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+checksum = "26a83d8500ed06d68877e9de1dde76c1dbb83885dcdbda4ef44ccbc3fbda2ac8"
 dependencies = [
- "overload",
- "winapi",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "target-features",
 ]
 
 [[package]]
-name = "num-traits"
-version = "0.2.16"
+name = "new_debug_unreachable"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
-dependencies = [
- "autocfg",
-]
+checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
 
 [[package]]
-name = "num_cpus"
-version = "1.16.0"
+name = "nom"
+version = "7.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
 dependencies = [
- "hermit-abi",
- "libc",
+ "memchr",
+ "minimal-lexical",
 ]
 
 [[package]]
-name = "objc"
-version = "0.2.7"
+name = "ntapi"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
 dependencies = [
- "malloc_buf",
+ "winapi",
 ]
 
 [[package]]
-name = "objc-foundation"
-version = "0.1.1"
+name = "num-traits"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
 dependencies = [
- "block",
- "objc",
- "objc_id",
+ "autocfg",
+ "libm",
 ]
 
 [[package]]
-name = "objc_id"
-version = "0.1.1"
+name = "num_cpus"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "objc",
+ "hermit-abi",
+ "libc",
 ]
 
 [[package]]
 name = "object"
-version = "0.32.0"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ac5bbd07aea88c60a577a1ce218075ffd59208b2d7ca97adf9bfc5aeb21ebe"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
-
-[[package]]
-name = "open"
-version = "5.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfabf1927dce4d6fdf563d63328a0a506101ced3ec780ca2135747336c98cef8"
-dependencies = [
- "is-wsl",
- "libc",
- "pathdiff",
-]
-
-[[package]]
-name = "openssl"
-version = "0.10.57"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c"
-dependencies = [
- "bitflags 2.4.0",
- "cfg-if",
- "foreign-types",
- "libc",
- "once_cell",
- "openssl-macros",
- "openssl-sys",
-]
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
-name = "openssl-macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+name = "openai_api_rust"
+version = "0.1.8"
+source = "git+https://github.com/tensorchord/openai-api.git?rev=228d54b6002e98257b3c81501a054942342f585f#228d54b6002e98257b3c81501a054942342f585f"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.29",
+ "log",
+ "mime",
+ "rand",
+ "serde",
+ "serde_json",
+ "ureq",
 ]
 
 [[package]]
@@ -1969,9 +1802,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.92"
+version = "0.9.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db7e971c2c2bba161b2d2fdf37080177eff520b3bc044787c7f1f5f9e78d869b"
+checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7"
 dependencies = [
  "cc",
  "libc",
@@ -1980,35 +1813,22 @@ dependencies = [
 ]
 
 [[package]]
-name = "overload"
-version = "0.1.1"
+name = "option-ext"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
 
 [[package]]
-name = "pango"
-version = "0.18.0"
+name = "owo-colors"
+version = "3.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06a9e54b831d033206160096b825f2070cf5fda7e35167b1c01e9e774f9202d1"
-dependencies = [
- "gio",
- "glib",
- "libc",
- "once_cell",
- "pango-sys",
-]
+checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
 
 [[package]]
-name = "pango-sys"
-version = "0.18.0"
+name = "parking"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
-dependencies = [
- "glib-sys",
- "gobject-sys",
- "libc",
- "system-deps",
-]
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
@@ -2022,34 +1842,44 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.3.5",
+ "redox_syscall",
  "smallvec",
  "windows-targets 0.48.5",
 ]
 
 [[package]]
-name = "pathdiff"
-version = "0.2.1"
+name = "pathsearch"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+checksum = "da983bc5e582ab17179c190b4b66c7d76c5943a69c6d34df2a2b6bf8a2977b05"
+dependencies = [
+ "anyhow",
+ "libc",
+]
+
+[[package]]
+name = "peeking_take_while"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pest"
-version = "2.7.3"
+version = "2.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33"
+checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5"
 dependencies = [
  "memchr",
  "thiserror",
@@ -2057,37 +1887,178 @@ dependencies = [
 ]
 
 [[package]]
-name = "pest_derive"
-version = "2.7.3"
+name = "petgraph"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2bee7be22ce7918f641a33f08e3f43388c7656772244e2bbb2477f44cc9021a"
+checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
- "pest",
- "pest_generator",
+ "fixedbitset",
+ "indexmap",
 ]
 
 [[package]]
-name = "pest_generator"
-version = "2.7.3"
+name = "pgrx"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1511785c5e98d79a05e8a6bc34b4ac2168a0e3e92161862030ad84daa223141"
+checksum = "cb44171122605250e719ca2ae49afb357bdb2fce4b3c876fcf2225165237328a"
 dependencies = [
- "pest",
- "pest_meta",
+ "atomic-traits",
+ "bitflags 2.4.1",
+ "bitvec",
+ "enum-map",
+ "heapless",
+ "libc",
+ "once_cell",
+ "pgrx-macros",
+ "pgrx-pg-sys",
+ "pgrx-sql-entity-graph",
+ "seahash",
+ "seq-macro",
+ "serde",
+ "serde_cbor",
+ "serde_json",
+ "thiserror",
+ "uuid",
+]
+
+[[package]]
+name = "pgrx-macros"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a18ac8628b7de2f29a93d0abdbdcaee95a0e0ef4b59fd4de99cc117e166e843b"
+dependencies = [
+ "pgrx-sql-entity-graph",
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 1.0.109",
 ]
 
 [[package]]
-name = "pest_meta"
-version = "2.7.3"
+name = "pgrx-pg-config"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b42f0394d3123e33353ca5e1e89092e533d2cc490389f2bd6131c43c634ebc5f"
+checksum = "acd45ac6eb1142c5690df63c4e0bdfb74f27c9f93a7af84f064dc2c0a2c2d6f7"
 dependencies = [
+ "cargo_toml",
+ "dirs",
+ "eyre",
+ "owo-colors",
+ "pathsearch",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "toml",
+ "url",
+]
+
+[[package]]
+name = "pgrx-pg-sys"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81c6207939582934fc26fceb651cb5338e363c06ddc6b2d50ca71867f7c70ffe"
+dependencies = [
+ "bindgen",
+ "clang-sys",
+ "eyre",
+ "libc",
+ "memoffset",
  "once_cell",
- "pest",
- "sha2",
+ "pgrx-macros",
+ "pgrx-pg-config",
+ "pgrx-sql-entity-graph",
+ "proc-macro2",
+ "quote",
+ "serde",
+ "shlex",
+ "sptr",
+ "syn 1.0.109",
+ "walkdir",
+]
+
+[[package]]
+name = "pgrx-sql-entity-graph"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a50083de83b1fac2484e8f2c2a7da5fed0193904e2578fa6c4ce02262c455c2b"
+dependencies = [
+ "convert_case",
+ "eyre",
+ "petgraph",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "unescape",
+]
+
+[[package]]
+name = "pgrx-tests"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ba0115cd80d9e3ca1d5d2a8ab8b7320d6ed614a53d025b86152696a8b3caa75"
+dependencies = [
+ "clap-cargo",
+ "eyre",
+ "libc",
+ "once_cell",
+ "owo-colors",
+ "pgrx",
+ "pgrx-macros",
+ "pgrx-pg-config",
+ "postgres",
+ "proptest",
+ "rand",
+ "regex",
+ "serde",
+ "serde_json",
+ "sysinfo",
+ "thiserror",
+]
+
+[[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_shared 0.11.2",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
 ]
 
 [[package]]
@@ -2103,19 +2074,132 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
+name = "piper"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4"
+dependencies = [
+ "atomic-waker",
+ "fastrand 2.0.1",
+ "futures-io",
+]
+
+[[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a"
 
 [[package]]
-name = "proc-macro-crate"
-version = "1.3.1"
+name = "polling"
+version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
 dependencies = [
- "once_cell",
- "toml_edit",
+ "autocfg",
+ "bitflags 1.3.2",
+ "cfg-if",
+ "concurrent-queue",
+ "libc",
+ "log",
+ "pin-project-lite",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "polling"
+version = "3.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "pin-project-lite",
+ "rustix 0.38.28",
+ "tracing",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "postgres"
+version = "0.19.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7915b33ed60abc46040cbcaa25ffa1c7ec240668e0477c4f3070786f5916d451"
+dependencies = [
+ "bytes",
+ "fallible-iterator",
+ "futures-util",
+ "log",
+ "tokio",
+ "tokio-postgres",
+]
+
+[[package]]
+name = "postgres-protocol"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520"
+dependencies = [
+ "base64",
+ "byteorder",
+ "bytes",
+ "fallible-iterator",
+ "hmac",
+ "md-5",
+ "memchr",
+ "rand",
+ "sha2",
+ "stringprep",
+]
+
+[[package]]
+name = "postgres-types"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d2234cdee9408b523530a9b6d2d6b373d1db34f6a8e51dc03ded1828d7fb67c"
+dependencies = [
+ "bytes",
+ "fallible-iterator",
+ "postgres-protocol",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "precomputed-hash"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
+
+[[package]]
+name = "predicates"
+version = "3.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0"
+dependencies = [
+ "anstyle",
+ "itertools 0.11.0",
+ "predicates-core",
+]
+
+[[package]]
+name = "predicates-core"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
+
+[[package]]
+name = "predicates-tree"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
+dependencies = [
+ "predicates-core",
+ "termtree",
 ]
 
 [[package]]
@@ -2144,28 +2228,38 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.66"
+version = "1.0.71"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
-name = "quick-error"
-version = "1.2.3"
+name = "proptest"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
+dependencies = [
+ "bit-set",
+ "bit-vec",
+ "bitflags 2.4.1",
+ "lazy_static",
+ "num-traits",
+ "rand",
+ "rand_chacha",
+ "rand_xorshift",
+ "regex-syntax 0.8.2",
+ "rusty-fork",
+ "tempfile",
+ "unarray",
+]
 
 [[package]]
-name = "quick-xml"
-version = "0.30.0"
+name = "quick-error"
+version = "1.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
-dependencies = [
- "memchr",
- "serde",
-]
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quote"
@@ -2177,206 +2271,147 @@ dependencies = [
 ]
 
 [[package]]
-name = "raw-window-handle"
-version = "0.5.2"
+name = "radium"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
 
 [[package]]
-name = "redox_syscall"
-version = "0.2.16"
+name = "rand"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 dependencies = [
- "bitflags 1.3.2",
+ "libc",
+ "rand_chacha",
+ "rand_core",
 ]
 
 [[package]]
-name = "redox_syscall"
-version = "0.3.5"
+name = "rand_chacha"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
 dependencies = [
- "bitflags 1.3.2",
+ "ppv-lite86",
+ "rand_core",
 ]
 
 [[package]]
-name = "redox_users"
-version = "0.4.3"
+name = "rand_core"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
  "getrandom",
- "redox_syscall 0.2.16",
- "thiserror",
 ]
 
 [[package]]
-name = "regex"
-version = "1.9.4"
+name = "rand_distr"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29"
+checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31"
 dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata",
- "regex-syntax",
+ "num-traits",
+ "rand",
 ]
 
 [[package]]
-name = "regex-automata"
-version = "0.3.7"
+name = "rand_xorshift"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629"
+checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
 dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
+ "rand_core",
 ]
 
 [[package]]
-name = "regex-syntax"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
-
-[[package]]
-name = "relm4"
-version = "0.7.0-alpha.1"
+name = "rayon"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d307673e36bb450a4823d500d661f53e1622a685b330149c193b791687146b3f"
+checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1"
 dependencies = [
- "async-trait",
- "flume",
- "fragile",
- "futures",
- "gtk4",
- "libadwaita",
- "once_cell",
- "relm4-macros",
- "tokio",
- "tracing",
+ "either",
+ "rayon-core",
 ]
 
 [[package]]
-name = "relm4-icons"
-version = "0.7.0-alpha.1"
+name = "rayon-core"
+version = "1.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ac16f5e6ed25fbd23c667f060fdc2f320d317a3997063503cbdeffb14dcaf06"
+checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed"
 dependencies = [
- "gtk4",
- "gvdb",
+ "crossbeam-deque",
+ "crossbeam-utils",
 ]
 
 [[package]]
-name = "relm4-macros"
-version = "0.7.0-alpha.1"
+name = "redox_syscall"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d1892cdfb2df6c8bbe5a84451d3979125255e31437c0bfd14c81bde93ff0cf6"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.29",
+ "bitflags 1.3.2",
 ]
 
 [[package]]
-name = "remain"
-version = "0.2.11"
+name = "redox_users"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bce3a7139d2ee67d07538ee5dba997364fbc243e7e7143e96eb830c74bfaa082"
+checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.29",
+ "getrandom",
+ "libredox",
+ "thiserror",
 ]
 
 [[package]]
-name = "reqwest"
-version = "0.11.20"
+name = "regex"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
- "async-compression",
- "base64",
- "bytes",
- "encoding_rs",
- "futures-core",
- "futures-util",
- "h2",
- "http",
- "http-body",
- "hyper",
- "hyper-tls",
- "ipnet",
- "js-sys",
- "log",
- "mime",
- "native-tls",
- "once_cell",
- "percent-encoding",
- "pin-project-lite",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "tokio",
- "tokio-native-tls",
- "tokio-util",
- "tower-service",
- "url",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "wasm-streams",
- "web-sys",
- "winreg",
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
-name = "ring"
-version = "0.16.20"
+name = "regex-automata"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
- "cc",
- "libc",
- "once_cell",
- "spin 0.5.2",
- "untrusted",
- "web-sys",
- "winapi",
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.8.2",
 ]
 
 [[package]]
-name = "rust-embed"
-version = "6.8.1"
+name = "regex-syntax"
+version = "0.6.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a36224c3276f8c4ebc8c20f158eca7ca4359c8db89991c4925132aaaf6702661"
-dependencies = [
- "rust-embed-impl",
- "rust-embed-utils",
- "walkdir",
-]
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
-name = "rust-embed-impl"
-version = "6.8.1"
+name = "regex-syntax"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49b94b81e5b2c284684141a2fb9e2a31be90638caf040bf9afbc5a0416afe1ac"
-dependencies = [
- "proc-macro2",
- "quote",
- "rust-embed-utils",
- "syn 2.0.29",
- "walkdir",
-]
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
-name = "rust-embed-utils"
-version = "7.8.1"
+name = "ring"
+version = "0.17.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d38ff6bf570dc3bb7100fce9f7b60c33fa71d80e88da3f2580df4ff2bdded74"
+checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74"
 dependencies = [
- "sha2",
- "walkdir",
+ "cc",
+ "getrandom",
+ "libc",
+ "spin",
+ "untrusted",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -2393,43 +2428,94 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[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",
+ "semver 1.0.20",
 ]
 
 [[package]]
 name = "rustix"
-version = "0.38.11"
+version = "0.37.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0c3dde1fc030af041adc40e79c0e7fbcf431dd24870053d187d7c66e4b87453"
+checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 1.3.2",
  "errno",
+ "io-lifetimes",
  "libc",
- "linux-raw-sys",
+ "linux-raw-sys 0.3.8",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
+name = "rustix"
+version = "0.38.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316"
+dependencies = [
+ "bitflags 2.4.1",
+ "errno",
+ "libc",
+ "linux-raw-sys 0.4.12",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki",
+ "sct",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
 name = "rustversion"
 version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
-name = "ryu"
-version = "1.0.15"
+name = "rusty-fork"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f"
+dependencies = [
+ "fnv",
+ "quick-error",
+ "tempfile",
+ "wait-timeout",
+]
 
 [[package]]
-name = "safe-transmute"
-version = "0.11.2"
+name = "ryu"
+version = "1.0.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98a01dab6acf992653be49205bdd549f32f17cb2803e8eacf1560bf97259aae8"
+checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
 
 [[package]]
 name = "same-file"
@@ -2442,11 +2528,11 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2456,82 +2542,86 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
-name = "scratch"
-version = "1.0.7"
+name = "sct"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
+dependencies = [
+ "ring",
+ "untrusted",
+]
 
 [[package]]
-name = "security-framework"
-version = "2.9.2"
+name = "seahash"
+version = "4.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
-dependencies = [
- "bitflags 1.3.2",
- "core-foundation",
- "core-foundation-sys",
- "libc",
- "security-framework-sys",
-]
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
 
 [[package]]
-name = "security-framework-sys"
-version = "2.9.1"
+name = "semver"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
 dependencies = [
- "core-foundation-sys",
- "libc",
+ "semver-parser",
 ]
 
 [[package]]
-name = "self_cell"
+name = "semver"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090"
+
+[[package]]
+name = "semver-parser"
 version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ef965a420fe14fdac7dd018862966a4c14094f900e1650bbc71ddd7d580c8af"
+checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
+dependencies = [
+ "pest",
+]
 
 [[package]]
-name = "semver"
-version = "1.0.18"
+name = "seq-macro"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
+checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
 
 [[package]]
 name = "serde"
-version = "1.0.188"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
-name = "serde-aux"
-version = "4.2.0"
+name = "serde_cbor"
+version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3dfe1b7eb6f9dcf011bd6fad169cdeaae75eda0d61b1a99a3f015b41b0cae39"
+checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5"
 dependencies = [
- "chrono",
+ "half 1.8.2",
  "serde",
- "serde_json",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.188"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.43",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.105"
+version = "1.0.108"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
 dependencies = [
  "itoa",
  "ryu",
@@ -2539,31 +2629,62 @@ dependencies = [
 ]
 
 [[package]]
-name = "serde_spanned"
-version = "0.6.3"
+name = "serde_regex"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf"
 dependencies = [
+ "regex",
  "serde",
 ]
 
 [[package]]
-name = "serde_urlencoded"
-version = "0.7.1"
+name = "serde_spanned"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
- "form_urlencoded",
- "itoa",
- "ryu",
  "serde",
 ]
 
 [[package]]
+name = "service"
+version = "0.0.0"
+dependencies = [
+ "arc-swap",
+ "arrayvec",
+ "bincode",
+ "bytemuck",
+ "byteorder",
+ "c",
+ "crc32fast",
+ "crossbeam",
+ "dashmap",
+ "detect",
+ "half 2.3.1",
+ "libc",
+ "log",
+ "memmap2",
+ "memoffset",
+ "multiversion",
+ "num-traits",
+ "parking_lot",
+ "rand",
+ "rayon",
+ "rustix 0.38.28",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "ulock-sys",
+ "uuid",
+ "validator",
+]
+
+[[package]]
 name = "sha2"
-version = "0.10.7"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -2571,13 +2692,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "sharded-slab"
-version = "0.1.4"
+name = "shlex"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
-dependencies = [
- "lazy_static",
-]
+checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
 
 [[package]]
 name = "signal-hook-registry"
@@ -2589,6 +2707,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "similar"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aeaf503862c419d66959f5d7ca015337d864e9c49485d771b732e2a20453597"
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
 name = "slab"
 version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2598,16 +2728,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "sluice"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5"
+dependencies = [
+ "async-channel 1.9.0",
+ "futures-core",
+ "futures-io",
+]
+
+[[package]]
 name = "smallvec"
-version = "1.11.0"
+version = "1.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
 
 [[package]]
 name = "socket2"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
 dependencies = [
  "libc",
  "winapi",
@@ -2615,9 +2756,9 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.3"
+version = "0.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
+checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
 dependencies = [
  "libc",
  "windows-sys 0.48.0",
@@ -2625,12 +2766,6 @@ dependencies = [
 
 [[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.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
@@ -2639,57 +2774,55 @@ dependencies = [
 ]
 
 [[package]]
-name = "static_assertions"
-version = "1.1.0"
+name = "sptr"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a"
 
 [[package]]
-name = "strsim"
-version = "0.10.0"
+name = "stable_deref_trait"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
 
 [[package]]
-name = "strum"
-version = "0.24.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
+name = "std_detect"
+version = "0.1.5"
+source = "git+https://github.com/tensorchord/stdarch.git?branch=avx512fp16#db0cdbc9b02074bfddabfd23a4a681f21640eada"
 dependencies = [
- "strum_macros 0.24.3",
+ "cfg-if",
+ "libc",
 ]
 
 [[package]]
-name = "strum"
-version = "0.25.0"
+name = "string_cache"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
+checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
+dependencies = [
+ "new_debug_unreachable",
+ "once_cell",
+ "parking_lot",
+ "phf_shared 0.10.0",
+ "precomputed-hash",
+]
 
 [[package]]
-name = "strum_macros"
-version = "0.24.3"
+name = "stringprep"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59"
+checksum = "bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6"
 dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "rustversion",
- "syn 1.0.109",
+ "finl_unicode",
+ "unicode-bidi",
+ "unicode-normalization",
 ]
 
 [[package]]
-name = "strum_macros"
-version = "0.25.2"
+name = "subtle"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "rustversion",
- "syn 2.0.29",
-]
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
@@ -2704,9 +2837,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.29"
+version = "2.0.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
+checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2714,128 +2847,98 @@ dependencies = [
 ]
 
 [[package]]
-name = "system-deps"
-version = "6.1.1"
+name = "sysinfo"
+version = "0.29.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30c2de8a4d8f4b823d634affc9cd2a74ec98c53a756f317e529a48046cbf71f3"
+checksum = "cd727fc423c2060f6c92d9534cef765c65a6ed3f428a03d7def74a8c4348e666"
 dependencies = [
- "cfg-expr",
- "heck",
- "pkg-config",
- "toml 0.7.6",
- "version-compare",
+ "cfg-if",
+ "core-foundation-sys",
+ "libc",
+ "ntapi",
+ "once_cell",
+ "rayon",
+ "winapi",
 ]
 
 [[package]]
-name = "target-lexicon"
-version = "0.12.11"
+name = "tap"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
 
 [[package]]
-name = "temp-dir"
-version = "0.1.11"
+name = "target-features"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
+checksum = "cfb5fa503293557c5158bd215fdc225695e567a77e453f5d4452a50a193969bd"
 
 [[package]]
 name = "tempfile"
-version = "3.8.0"
+version = "3.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
+checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
 dependencies = [
  "cfg-if",
- "fastrand",
- "redox_syscall 0.3.5",
- "rustix",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "thiserror"
-version = "1.0.47"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f"
-dependencies = [
- "thiserror-impl",
+ "fastrand 2.0.1",
+ "redox_syscall",
+ "rustix 0.38.28",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "thiserror-impl"
-version = "1.0.47"
+name = "term"
+version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b"
+checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.29",
+ "dirs-next",
+ "rustversion",
+ "winapi",
 ]
 
 [[package]]
-name = "thread_local"
-version = "1.1.7"
+name = "termcolor"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
 dependencies = [
- "cfg-if",
- "once_cell",
+ "winapi-util",
 ]
 
 [[package]]
-name = "time"
-version = "0.1.45"
+name = "termtree"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
-dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi",
-]
+checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 
 [[package]]
-name = "time"
-version = "0.3.28"
+name = "thiserror"
+version = "1.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
+checksum = "83a48fd946b02c0a526b2e9481c8e2a17755e47039164a86c4070446e3a4614d"
 dependencies = [
- "deranged",
- "itoa",
- "serde",
- "time-core",
- "time-macros",
+ "thiserror-impl",
 ]
 
 [[package]]
-name = "time-core"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
-
-[[package]]
-name = "time-macros"
-version = "0.2.14"
+name = "thiserror-impl"
+version = "1.0.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
+checksum = "e7fbe9b594d6568a6a1443250a7e67d80b74e1e96f6d1715e1e21cc1888291d3"
 dependencies = [
- "time-core",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.43",
 ]
 
 [[package]]
-name = "tinystr"
-version = "0.7.1"
+name = "tiny-keccak"
+version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ac3f5b6856e931e15e07b478e98c8045239829a65f9156d4fa7e7788197a5ef"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
 dependencies = [
- "displaydoc",
+ "crunchy",
 ]
 
 [[package]]
@@ -2855,49 +2958,64 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.32.0"
+version = "1.35.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
+checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104"
 dependencies = [
  "backtrace",
  "bytes",
  "libc",
  "mio",
  "num_cpus",
- "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.3",
+ "socket2 0.5.5",
  "tokio-macros",
  "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.43",
 ]
 
 [[package]]
-name = "tokio-native-tls"
-version = "0.3.1"
+name = "tokio-postgres"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
+checksum = "d340244b32d920260ae7448cb72b6e238bddc3d4f7603394e7dd46ed8e48f5b8"
 dependencies = [
- "native-tls",
+ "async-trait",
+ "byteorder",
+ "bytes",
+ "fallible-iterator",
+ "futures-channel",
+ "futures-util",
+ "log",
+ "parking_lot",
+ "percent-encoding",
+ "phf",
+ "pin-project-lite",
+ "postgres-protocol",
+ "postgres-types",
+ "rand",
+ "socket2 0.5.5",
  "tokio",
+ "tokio-util",
+ "whoami",
 ]
 
 [[package]]
 name = "tokio-util"
-version = "0.7.8"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
 dependencies = [
  "bytes",
  "futures-core",
@@ -2909,18 +3027,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.5.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "toml"
-version = "0.7.6"
+version = "0.8.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
+checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -2930,20 +3039,20 @@ dependencies = [
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.19.14"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
+checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -2958,11 +3067,11 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
+ "log",
  "pin-project-lite",
  "tracing-attributes",
  "tracing-core",
@@ -2970,70 +3079,45 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.43",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
- "valuable",
 ]
 
 [[package]]
-name = "tracing-log"
-version = "0.1.3"
+name = "tracing-futures"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
 dependencies = [
- "lazy_static",
- "log",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-subscriber"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
-dependencies = [
- "nu-ansi-term",
- "sharded-slab",
- "smallvec",
- "thread_local",
- "tracing-core",
- "tracing-log",
+ "pin-project",
+ "tracing",
 ]
 
 [[package]]
 name = "try-lock"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
-
-[[package]]
-name = "type-map"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6d3364c5e96cb2ad1603037ab253ddd34d7fb72a58bdddf4b7350760fc69a46"
-dependencies = [
- "rustc-hash",
-]
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "typenum"
-version = "1.16.0"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 
 [[package]]
 name = "ucd-trie"
@@ -3042,35 +3126,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
 
 [[package]]
-name = "unic-langid"
-version = "0.9.1"
+name = "ulock-sys"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "398f9ad7239db44fd0f80fe068d12ff22d78354080332a5077dc6f52f14dcf2f"
+checksum = "32ad66e1a230c3dd9e07cf0065e3f6afef1fc270716f2ba419b2ddb19971ccfa"
 dependencies = [
- "unic-langid-impl",
+ "cty",
 ]
 
 [[package]]
-name = "unic-langid-impl"
-version = "0.9.1"
+name = "unarray"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e35bfd2f2b8796545b55d7d3fd3e89a0613f68a0d1c8bc28cb7ff96b411a35ff"
-dependencies = [
- "serde",
- "tinystr",
-]
+checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
+
+[[package]]
+name = "unescape"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e"
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.11"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-normalization"
@@ -3082,43 +3168,109 @@ dependencies = [
 ]
 
 [[package]]
-name = "unicode-width"
-version = "0.1.10"
+name = "unicode-segmentation"
+version = "1.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
 
 [[package]]
 name = "untrusted"
-version = "0.7.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
+name = "ureq"
+version = "2.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97"
+dependencies = [
+ "base64",
+ "flate2",
+ "log",
+ "once_cell",
+ "rustls",
+ "rustls-webpki",
+ "serde",
+ "serde_json",
+ "url",
+ "webpki-roots",
+]
 
 [[package]]
 name = "url"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
- "idna",
+ "idna 0.5.0",
  "percent-encoding",
- "serde",
 ]
 
 [[package]]
 name = "uuid"
-version = "1.4.1"
+version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
+checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
 dependencies = [
  "getrandom",
+ "serde",
 ]
 
 [[package]]
-name = "valuable"
-version = "0.1.0"
+name = "validator"
+version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+checksum = "b92f40481c04ff1f4f61f304d61793c7b56ff76ac1469f1beb199b1445b253bd"
+dependencies = [
+ "idna 0.4.0",
+ "lazy_static",
+ "regex",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "url",
+ "validator_derive",
+]
+
+[[package]]
+name = "validator_derive"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc44ca3088bb3ba384d9aecf40c6a23a676ce23e09bdaca2073d99c207f864af"
+dependencies = [
+ "if_chain",
+ "lazy_static",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn 1.0.109",
+ "validator_types",
+]
+
+[[package]]
+name = "validator_types"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "111abfe30072511849c5910134e8baf8dc05de4c0e5903d681cbd5c9c4d611e3"
+dependencies = [
+ "proc-macro2",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "value-bag"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe"
 
 [[package]]
 name = "vcpkg"
@@ -3127,10 +3279,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
 
 [[package]]
-name = "version-compare"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+name = "vectors"
+version = "0.0.0"
+dependencies = [
+ "bincode",
+ "bytemuck",
+ "byteorder",
+ "detect",
+ "env_logger",
+ "half 2.3.1",
+ "httpmock",
+ "libc",
+ "log",
+ "mockall",
+ "num-traits",
+ "openai_api_rust",
+ "pgrx",
+ "pgrx-tests",
+ "rand",
+ "rustix 0.38.28",
+ "serde",
+ "serde_json",
+ "service",
+ "thiserror",
+ "toml",
+ "validator",
+]
 
 [[package]]
 name = "version_check"
@@ -3139,10 +3313,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
+name = "wait-timeout"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "waker-fn"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
+
+[[package]]
 name = "walkdir"
-version = "2.3.3"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
+checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -3159,21 +3348,15 @@ dependencies = [
 
 [[package]]
 name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-
-[[package]]
-name = "wasi"
 version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -3181,24 +3364,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.43",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.37"
+version = "0.4.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -3208,9 +3391,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -3218,60 +3401,46 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.29",
+ "syn 2.0.43",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.89"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f"
 
 [[package]]
-name = "wasm-streams"
-version = "0.3.0"
+name = "web-sys"
+version = "0.3.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7"
+checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f"
 dependencies = [
- "futures-util",
  "js-sys",
  "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
 ]
 
 [[package]]
-name = "web-sys"
-version = "0.3.64"
+name = "webpki-roots"
+version = "0.25.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
+checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10"
 
 [[package]]
-name = "webbrowser"
-version = "0.8.11"
+name = "whoami"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2c79b77f525a2d670cb40619d7d9c673d09e0666f72c591ebd7861f84a87e57"
+checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50"
 dependencies = [
- "core-foundation",
- "home",
- "jni",
- "log",
- "ndk-context",
- "objc",
- "raw-window-handle",
- "url",
+ "wasm-bindgen",
  "web-sys",
 ]
 
@@ -3293,9 +3462,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -3307,24 +3476,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
-name = "windows"
-version = "0.48.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
-dependencies = [
- "windows-targets 0.48.5",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.45.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
-dependencies = [
- "windows-targets 0.42.2",
-]
-
-[[package]]
 name = "windows-sys"
 version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3334,18 +3485,12 @@ dependencies = [
 ]
 
 [[package]]
-name = "windows-targets"
-version = "0.42.2"
+name = "windows-sys"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows_aarch64_gnullvm 0.42.2",
- "windows_aarch64_msvc 0.42.2",
- "windows_i686_gnu 0.42.2",
- "windows_i686_msvc 0.42.2",
- "windows_x86_64_gnu 0.42.2",
- "windows_x86_64_gnullvm 0.42.2",
- "windows_x86_64_msvc 0.42.2",
+ "windows-targets 0.52.0",
 ]
 
 [[package]]
@@ -3364,10 +3509,19 @@ dependencies = [
 ]
 
 [[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.42.2"
+name = "windows-targets"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.0",
+ "windows_aarch64_msvc 0.52.0",
+ "windows_i686_gnu 0.52.0",
+ "windows_i686_msvc 0.52.0",
+ "windows_x86_64_gnu 0.52.0",
+ "windows_x86_64_gnullvm 0.52.0",
+ "windows_x86_64_msvc 0.52.0",
+]
 
 [[package]]
 name = "windows_aarch64_gnullvm"
@@ -3376,10 +3530,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
-name = "windows_aarch64_msvc"
-version = "0.42.2"
+name = "windows_aarch64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -3388,10 +3542,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
-name = "windows_i686_gnu"
-version = "0.42.2"
+name = "windows_aarch64_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -3400,10 +3554,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
-name = "windows_i686_msvc"
-version = "0.42.2"
+name = "windows_i686_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -3412,10 +3566,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
-name = "windows_x86_64_gnu"
-version = "0.42.2"
+name = "windows_i686_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -3424,10 +3578,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.42.2"
+name = "windows_x86_64_gnu"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -3436,10 +3590,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
-name = "windows_x86_64_msvc"
-version = "0.42.2"
+name = "windows_x86_64_gnullvm"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -3448,57 +3602,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
-name = "winnow"
-version = "0.5.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "winreg"
-version = "0.50.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
-dependencies = [
- "cfg-if",
- "windows-sys 0.48.0",
-]
-
-[[package]]
-name = "zvariant"
-version = "3.15.0"
+name = "windows_x86_64_msvc"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c"
-dependencies = [
- "byteorder",
- "libc",
- "serde",
- "static_assertions",
- "zvariant_derive",
-]
+checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
 
 [[package]]
-name = "zvariant_derive"
-version = "3.15.0"
+name = "winnow"
+version = "0.5.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
+checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c"
 dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
- "zvariant_utils",
+ "memchr",
 ]
 
 [[package]]
-name = "zvariant_utils"
-version = "1.0.1"
+name = "wyz"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
 dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
+ "tap",
 ]
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix
new file mode 100644
index 000000000000..d6a4f24bf5e6
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvecto-rs/default.nix
@@ -0,0 +1,102 @@
+{ lib
+, buildPgrxExtension
+, cargo-pgrx_0_11_2
+, clang_16
+, fetchCrate
+, fetchFromGitHub
+, nix-update-script
+, nixosTests
+, openssl
+, pkg-config
+, postgresql
+, rustPlatform
+, stdenv
+, substituteAll
+}:
+
+let
+  # Upstream only works with clang 16, so we're pinning it here to
+  # avoid future incompatibility.
+  # See https://docs.pgvecto.rs/developers/development.html#environment, step 4
+  clang = clang_16;
+  rustPlatform' = rustPlatform // {
+    bindgenHook = rustPlatform.bindgenHook.override { inherit clang; };
+  };
+
+in
+(buildPgrxExtension.override {
+  # Upstream only works with a fixed version of cargo-pgrx for each release,
+  # so we're pinning it here to avoid future incompatibility.
+  # See https://docs.pgvecto.rs/developers/development.html#environment, step 6
+  cargo-pgrx = cargo-pgrx_0_11_2;
+  rustPlatform = rustPlatform';
+}) rec {
+  inherit postgresql;
+
+  pname = "pgvecto-rs";
+  version = "0.2.1";
+
+  buildInputs = [ openssl ];
+  nativeBuildInputs = [ pkg-config ];
+
+  patches = [
+    # Tell the `c` crate to use the flags from the rust bindgen hook
+    (substituteAll {
+      src = ./0001-read-clang-flags-from-environment.diff;
+      clang = lib.getExe clang;
+    })
+  ];
+
+  src = fetchFromGitHub {
+    owner = "tensorchord";
+    repo = "pgvecto.rs";
+    rev = "v${version}";
+    hash = "sha256-kwaGHerEVh6Oxb9jQupSapm7CsKl5CoH6jCv+zbi4FE=";
+  };
+
+  # Package has git dependencies on Cargo.lock (instead of just crate.io dependencies),
+  # so cargoHash does not work, therefore we have to include Cargo.lock in nixpkgs.
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "openai_api_rust-0.1.8" = "sha256-os5Y8KIWXJEYEcNzzT57wFPpEXdZ2Uy9W3j5+hJhhR4=";
+      "std_detect-0.1.5" = "sha256-RwWejfqyGOaeU9zWM4fbb/hiO1wMpxYPKEjLO0rtRmU=";
+    };
+  };
+
+  # Set appropriate version on vectors.control, otherwise it won't show up on PostgreSQL
+  postPatch = ''
+    substituteInPlace ./vectors.control --subst-var-by CARGO_VERSION ${version}
+  '';
+
+  # Include upgrade scripts in the final package
+  # https://github.com/tensorchord/pgvecto.rs/blob/v0.2.0/scripts/ci_package.sh#L6-L8
+  postInstall = ''
+    cp sql/upgrade/* $out/share/postgresql/extension/
+  '';
+
+  env = {
+    # Needed to get openssl-sys to use pkg-config.
+    OPENSSL_NO_VENDOR = 1;
+
+    # Bypass rust nightly features not being available on rust stable
+    RUSTC_BOOTSTRAP = 1;
+  };
+
+  passthru = {
+    updateScript = nix-update-script { };
+    tests = {
+      pgvecto-rs = nixosTests.pgvecto-rs;
+    };
+  };
+
+  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;
+    description = "Scalable, Low-latency and Hybrid-enabled Vector Search in Postgres";
+    homepage = "https://github.com/tensorchord/pgvecto.rs";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ diogotcorreia esclear ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix
index e30e59d9da93..1dfda512e1d4 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgvector.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pgvector";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "pgvector";
     repo = "pgvector";
     rev = "v${version}";
-    hash = "sha256-NS9iNgrVnoqmAIXd4sJFnPISQvYYl8YQ84bnLjpChx4=";
+    hash = "sha256-r+TpFJg6WrMn0L2B7RpmSRvw3XxpHzMRtpFWDCzLvgs=";
   };
 
   buildInputs = [ postgresql ];
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
index 9e8b02c993f2..ac6f0e948722 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "plpgsql-check";
-  version = "2.7.3";
+  version = "2.7.4";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = "plpgsql_check";
     rev = "v${version}";
-    hash = "sha256-VFM8SplBGlJd2RfUgS0FLH+xkyLOCVY2jaK6mn878CQ=";
+    hash = "sha256-qPYH6i8XJZVH+5zM/gozf+0Kts/Tzv6fRWkayGEe+5U=";
   };
 
   buildInputs = [ postgresql ];
@@ -41,7 +41,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/okbob/plpgsql_check/releases/tag/v${version}";
     platforms = postgresql.meta.platforms;
     license = licenses.mit;
-    broken = versionOlder postgresql.version "12";
     maintainers = [ maintainers.marsam ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8/0001-build-Allow-using-V8-from-system.patch b/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8/0001-build-Allow-using-V8-from-system.patch
index 74e4eb1922de..05f607911f20 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8/0001-build-Allow-using-V8-from-system.patch
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8/0001-build-Allow-using-V8-from-system.patch
@@ -5,7 +5,7 @@ index 38879cc..6e78eeb 100644
 @@ -20,6 +20,7 @@ OBJS = $(SRCS:.cc=.o)
  MODULE_big = plv8-$(PLV8_VERSION)
  EXTENSION = plv8
- PLV8_DATA = plv8.control plv8--$(PLV8_VERSION).sql $(wildcard upgrade/*.sql)
+ PLV8_DATA = plv8.control plv8--$(PLV8_VERSION).sql
 +USE_SYSTEM_V8 = 0
  
  
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8/default.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8/default.nix
index 2c4989711cce..fa2f1b7ad2d8 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8/default.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8/default.nix
@@ -4,6 +4,7 @@
 , v8
 , perl
 , postgresql
+, jitSupport
 # For test
 , runCommand
 , coreutils
@@ -12,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "plv8";
-  version = "3.1.5";
+  version = "3.1.10";
 
   src = fetchFromGitHub {
     owner = "plv8";
     repo = "plv8";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-LodC2eQJSm5fLckrjm2RuejZhmOyQMJTv9b0iPCnzKQ=";
+    hash = "sha256-g1A/XPC0dX2360Gzvmo9/FSQnM6Wt2K4eR0pH0p9fz4=";
   };
 
   patches = [
@@ -138,6 +139,6 @@ stdenv.mkDerivation (finalAttrs: {
     maintainers = with maintainers; [ marsam ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
     license = licenses.postgresql;
-    broken = postgresql.jitSupport;
+    broken = jitSupport;
   };
 })
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix
index 1a5058375d5a..523bd154f6e5 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix
@@ -13,6 +13,8 @@
 , libiconv
 , pcre2
 , nixosTests
+, jitSupport
+, llvm
 }:
 
 let
@@ -31,13 +33,11 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libxml2 postgresql geos proj gdal json_c protobufc pcre2.dev ]
                 ++ lib.optional stdenv.isDarwin libiconv;
-  nativeBuildInputs = [ perl pkg-config ] ++ lib.optional postgresql.jitSupport postgresql.llvm;
+  nativeBuildInputs = [ perl pkg-config ] ++ lib.optional jitSupport llvm;
   dontDisableStatic = true;
 
   # postgis config directory assumes /include /lib from the same root for json-c library
-  NIX_LDFLAGS = "-L${lib.getLib json_c}/lib"
-    # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-    + lib.optionalString (stdenv.cc.isClang && stdenv.cc.libcxx != null) " -l${stdenv.cc.libcxx.cxxabi.libName}";
+  env.NIX_LDFLAGS = "-L${lib.getLib json_c}/lib";
 
 
   preConfigure = ''
@@ -83,6 +83,5 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; teams.geospatial.members ++ [ marcweber ];
     inherit (postgresql.meta) platforms;
-    broken = versionOlder postgresql.version "12";
   };
 }
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/promscale_extension.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/promscale_extension.nix
index e031bb4c021b..80de9315d985 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/promscale_extension.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/promscale_extension.nix
@@ -54,7 +54,6 @@ buildPgxExtension rec {
     license = licenses.unfree;
 
     # as it needs to be used with timescaledb, simply use the condition from there
-    broken = versionOlder postgresql.version "12"
-             || versionAtLeast postgresql.version "15";
+    broken = versionAtLeast postgresql.version "15";
   };
 }
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix
index 93f607671579..e4e8c5afdb24 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix
@@ -24,8 +24,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ flex ];
 
-  buildInputs = [ postgresql openssl zlib readline curl json_c ]
-    ++ lib.optionals (stdenv.isLinux && lib.versionOlder postgresql.version "13") [ libxcrypt ];
+  buildInputs = postgresql.buildInputs ++ [ postgresql curl json_c ];
 
   installPhase = ''
     mkdir -p $out/{bin,lib,share/postgresql/extension}
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix
index 4f0e02059adf..96bff3fe20b3 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix
@@ -3,31 +3,12 @@
 , buildPgrxExtension
 , postgresql
 , nixosTests
-, cargo-pgrx
+, cargo-pgrx_0_10_2
 , fetchCrate
 , nix-update-script
 , stdenv
 }:
 
-let
-  cargo-pgrx_0_10_2 = cargo-pgrx.overrideAttrs (old: rec {
-    name = "cargo-pgrx-${version}";
-    version = "0.10.2";
-
-    src = fetchCrate {
-      pname = "cargo-pgrx";
-      inherit version;
-      hash = "sha256-FqjfbJmSy5UCpPPPk4bkEyvQCnaH9zYtkI7txgIn+ls=";
-    };
-
-    cargoDeps = old.cargoDeps.overrideAttrs (_: {
-      inherit src;
-      outputHash = "sha256-XyI3RaPI3Edm/tCP2xoZemib2d2n2cAhobgk9Oafg6s=";
-    });
-  });
-
-in
-
 (buildPgrxExtension.override { cargo-pgrx = cargo-pgrx_0_10_2; }) rec {
   inherit postgresql;
 
@@ -62,6 +43,6 @@ in
     license = licenses.asl20;
 
     # as it needs to be used with timescaledb, simply use the condition from there
-    broken = versionOlder postgresql.version "12" || stdenv.isDarwin;
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/generic.nix b/nixpkgs/pkgs/servers/sql/postgresql/generic.nix
new file mode 100644
index 000000000000..5d93cf9aa31b
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/generic.nix
@@ -0,0 +1,322 @@
+let
+
+  generic =
+      # dependencies
+      { stdenv, lib, fetchurl, makeWrapper, fetchpatch
+      , glibc, zlib, readline, openssl, icu, lz4, zstd, systemd, libossp_uuid
+      , pkg-config, libxml2, tzdata, libkrb5, substituteAll, darwin
+      , linux-pam
+
+      # This is important to obtain a version of `libpq` that does not depend on systemd.
+      , systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd && !stdenv.hostPlatform.isStatic
+      , enableSystemd ? null
+      , gssSupport ? with stdenv.hostPlatform; !isWindows && !isStatic
+
+      # for postgresql.pkgs
+      , self, newScope, buildEnv
+
+      # source specification
+      , version, hash, muslPatches
+
+      # for tests
+      , testers, nixosTests, thisAttr
+
+      # JIT
+      , jitSupport
+      , nukeReferences, patchelf, llvmPackages
+      , makeRustPlatform, buildPgxExtension, cargo, rustc
+
+      # PL/Python
+      , pythonSupport ? false
+      , python3
+
+      # detection of crypt fails when using llvm stdenv, so we add it manually
+      # for <13 (where it got removed: https://github.com/postgres/postgres/commit/c45643d618e35ec2fe91438df15abd4f3c0d85ca)
+      , libxcrypt
+    } @args:
+  let
+    atLeast = lib.versionAtLeast version;
+    olderThan = lib.versionOlder version;
+    lz4Enabled = atLeast "14";
+    zstdEnabled = atLeast "15";
+
+    systemdSupport' = if enableSystemd == null then systemdSupport else (lib.warn "postgresql: argument enableSystemd is deprecated, please use systemdSupport instead." enableSystemd);
+
+    pname = "postgresql";
+
+    stdenv' = if jitSupport then llvmPackages.stdenv else stdenv;
+  in stdenv'.mkDerivation (finalAttrs: {
+    inherit pname version;
+
+    src = fetchurl {
+      url = "mirror://postgresql/source/v${version}/${pname}-${version}.tar.bz2";
+      inherit hash;
+    };
+
+    hardeningEnable = lib.optionals (!stdenv'.cc.isClang) [ "pie" ];
+
+    outputs = [ "out" "lib" "doc" "man" ];
+    setOutputFlags = false; # $out retains configureFlags :-/
+
+    buildInputs = [
+      zlib
+      readline
+      openssl
+      libxml2
+      icu
+    ]
+      ++ lib.optionals (olderThan "13") [ libxcrypt ]
+      ++ lib.optionals jitSupport [ llvmPackages.llvm ]
+      ++ lib.optionals lz4Enabled [ lz4 ]
+      ++ lib.optionals zstdEnabled [ zstd ]
+      ++ lib.optionals systemdSupport' [ systemd ]
+      ++ lib.optionals pythonSupport [ python3 ]
+      ++ lib.optionals gssSupport [ libkrb5 ]
+      ++ lib.optionals stdenv'.isLinux [ linux-pam ]
+      ++ lib.optionals (!stdenv'.isDarwin) [ libossp_uuid ];
+
+    nativeBuildInputs = [
+      makeWrapper
+      pkg-config
+    ]
+      ++ lib.optionals jitSupport [ llvmPackages.llvm.dev nukeReferences patchelf ];
+
+    enableParallelBuilding = !stdenv'.isDarwin;
+
+    separateDebugInfo = true;
+
+    buildFlags = [ "world" ];
+
+    env.NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2";
+
+    # Otherwise it retains a reference to compiler and fails; see #44767.  TODO: better.
+    preConfigure = "CC=${stdenv'.cc.targetPrefix}cc";
+
+    configureFlags = [
+      "--with-openssl"
+      "--with-libxml"
+      "--with-icu"
+      "--sysconfdir=/etc"
+      "--libdir=$(lib)/lib"
+      "--with-system-tzdata=${tzdata}/share/zoneinfo"
+      "--enable-debug"
+      (lib.optionalString systemdSupport' "--with-systemd")
+      (if stdenv'.isDarwin then "--with-uuid=e2fs" else "--with-ossp-uuid")
+    ] ++ lib.optionals lz4Enabled [ "--with-lz4" ]
+      ++ lib.optionals zstdEnabled [ "--with-zstd" ]
+      ++ lib.optionals gssSupport [ "--with-gssapi" ]
+      ++ lib.optionals pythonSupport [ "--with-python" ]
+      ++ lib.optionals stdenv'.hostPlatform.isRiscV [ "--disable-spinlocks" ]
+      ++ lib.optionals jitSupport [ "--with-llvm" ]
+      ++ lib.optionals stdenv'.isLinux [ "--with-pam" ];
+
+    patches = [
+      (if atLeast "16" then ./patches/disable-normalize_exec_path.patch
+       else ./patches/disable-resolve_symlinks.patch)
+      ./patches/less-is-more.patch
+      ./patches/hardcode-pgxs-path.patch
+      ./patches/specify_pkglibdir_at_runtime.patch
+      ./patches/findstring.patch
+
+      (substituteAll {
+        src = ./patches/locale-binary-path.patch;
+        locale = "${if stdenv.isDarwin then darwin.adv_cmds else lib.getBin stdenv.cc.libc}/bin/locale";
+      })
+
+    ] ++ lib.optionals stdenv'.hostPlatform.isMusl (
+      # Using fetchurl instead of fetchpatch on purpose: https://github.com/NixOS/nixpkgs/issues/240141
+      map fetchurl (lib.attrValues muslPatches)
+    ) ++ lib.optionals stdenv'.isLinux  [
+      (if atLeast "13" then ./patches/socketdir-in-run-13.patch else ./patches/socketdir-in-run.patch)
+    ];
+
+    installTargets = [ "install-world" ];
+
+    LC_ALL = "C";
+
+    postPatch = ''
+      # Hardcode the path to pgxs so pg_config returns the path in $out
+      substituteInPlace "src/common/config_info.c" --replace HARDCODED_PGXS_PATH "$out/lib"
+    '' + lib.optionalString jitSupport ''
+        # Force lookup of jit stuff in $out instead of $lib
+        substituteInPlace src/backend/jit/jit.c --replace pkglib_path \"$out/lib\"
+        substituteInPlace src/backend/jit/llvm/llvmjit.c --replace pkglib_path \"$out/lib\"
+        substituteInPlace src/backend/jit/llvm/llvmjit_inline.cpp --replace pkglib_path \"$out/lib\"
+    '';
+
+    postInstall =
+      ''
+        moveToOutput "lib/pgxs" "$out" # looks strange, but not deleting it
+        moveToOutput "lib/libpgcommon*.a" "$out"
+        moveToOutput "lib/libpgport*.a" "$out"
+        moveToOutput "lib/libecpg*" "$out"
+
+        # Prevent a retained dependency on gcc-wrapper.
+        substituteInPlace "$out/lib/pgxs/src/Makefile.global" --replace ${stdenv'.cc}/bin/ld ld
+
+        if [ -z "''${dontDisableStatic:-}" ]; then
+          # Remove static libraries in case dynamic are available.
+          for i in $out/lib/*.a $lib/lib/*.a; do
+            name="$(basename "$i")"
+            ext="${stdenv'.hostPlatform.extensions.sharedLibrary}"
+            if [ -e "$lib/lib/''${name%.a}$ext" ] || [ -e "''${i%.a}$ext" ]; then
+              rm "$i"
+            fi
+          done
+        fi
+      '' + lib.optionalString jitSupport ''
+        # Move the bitcode and libllvmjit.so library out of $lib; otherwise, every client that
+        # depends on libpq.so will also have libLLVM.so in its closure too, bloating it
+        moveToOutput "lib/bitcode" "$out"
+        moveToOutput "lib/llvmjit*" "$out"
+
+        # In the case of JIT support, prevent a retained dependency on clang-wrapper
+        substituteInPlace "$out/lib/pgxs/src/Makefile.global" --replace ${stdenv'.cc}/bin/clang clang
+        nuke-refs $out/lib/llvmjit_types.bc $(find $out/lib/bitcode -type f)
+
+        # Stop out depending on the default output of llvm
+        substituteInPlace $out/lib/pgxs/src/Makefile.global \
+          --replace ${llvmPackages.llvm.out}/bin "" \
+          --replace '$(LLVM_BINPATH)/' ""
+
+        # Stop out depending on the -dev output of llvm
+        substituteInPlace $out/lib/pgxs/src/Makefile.global \
+          --replace ${llvmPackages.llvm.dev}/bin/llvm-config llvm-config \
+          --replace -I${llvmPackages.llvm.dev}/include ""
+
+        ${lib.optionalString (!stdenv'.isDarwin) ''
+          # Stop lib depending on the -dev output of llvm
+          rpath=$(patchelf --print-rpath $out/lib/llvmjit.so)
+          nuke-refs -e $out $out/lib/llvmjit.so
+          # Restore the correct rpath
+          patchelf $out/lib/llvmjit.so --set-rpath "$rpath"
+        ''}
+      '';
+
+    postFixup = lib.optionalString (!stdenv'.isDarwin && stdenv'.hostPlatform.libc == "glibc")
+      ''
+        # initdb needs access to "locale" command from glibc.
+        wrapProgram $out/bin/initdb --prefix PATH ":" ${glibc.bin}/bin
+      '';
+
+    doCheck = !stdenv'.isDarwin;
+    # autodetection doesn't seem to able to find this, but it's there.
+    checkTarget = "check";
+
+    preCheck =
+      # On musl, comment skip the following tests, because they break due to
+      #     ! ERROR:  could not load library "/build/postgresql-11.5/tmp_install/nix/store/...-postgresql-11.5-lib/lib/libpqwalreceiver.so": Error loading shared library libpq.so.5: No such file or directory (needed by /build/postgresql-11.5/tmp_install/nix/store/...-postgresql-11.5-lib/lib/libpqwalreceiver.so)
+      # See also here:
+      #     https://git.alpinelinux.org/aports/tree/main/postgresql/disable-broken-tests.patch?id=6d7d32c12e073a57a9e5946e55f4c1fbb68bd442
+      if stdenv'.hostPlatform.isMusl then ''
+        substituteInPlace src/test/regress/parallel_schedule \
+          --replace "subscription" "" \
+          --replace "object_address" ""
+      '' else null;
+
+    disallowedReferences = [ stdenv'.cc ];
+
+    passthru = let
+      this = self.callPackage generic args;
+      jitToggle = this.override {
+        jitSupport = !jitSupport;
+      };
+    in
+    {
+      psqlSchema = lib.versions.major version;
+
+      withJIT = if jitSupport then this else jitToggle;
+      withoutJIT = if jitSupport then jitToggle else this;
+
+      dlSuffix = if olderThan "16" then ".so" else stdenv.hostPlatform.extensions.sharedLibrary;
+
+      pkgs = let
+        scope = {
+          inherit jitSupport;
+          inherit (llvmPackages) llvm;
+          postgresql = this;
+          stdenv = stdenv';
+          buildPgxExtension = buildPgxExtension.override {
+            stdenv = stdenv';
+            rustPlatform = makeRustPlatform {
+              stdenv = stdenv';
+              inherit rustc cargo;
+            };
+          };
+        };
+        newSelf = self // scope;
+        newSuper = { callPackage = newScope (scope // this.pkgs); };
+      in import ./ext newSelf newSuper;
+
+      withPackages = postgresqlWithPackages {
+                       inherit makeWrapper buildEnv;
+                       postgresql = this;
+                     }
+                     this.pkgs;
+
+      tests = {
+        postgresql = nixosTests.postgresql-wal-receiver.${thisAttr};
+        pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+      } // lib.optionalAttrs jitSupport {
+        postgresql-jit = nixosTests.postgresql-jit.${thisAttr};
+      };
+    };
+
+    meta = with lib; {
+      homepage    = "https://www.postgresql.org";
+      description = "A powerful, open source object-relational database system";
+      license     = licenses.postgresql;
+      changelog   = "https://www.postgresql.org/docs/release/${finalAttrs.version}/";
+      maintainers = with maintainers; [ thoughtpolice danbst globin marsam ivan ma27 ];
+      pkgConfigModules = [ "libecpg" "libecpg_compat" "libpgtypes" "libpq" ];
+      platforms   = platforms.unix;
+
+      # JIT support doesn't work with cross-compilation. It is attempted to build LLVM-bytecode
+      # (`%.bc` is the corresponding `make(1)`-rule) for each sub-directory in `backend/` for
+      # the JIT apparently, but with a $(CLANG) that can produce binaries for the build, not the
+      # host-platform.
+      #
+      # I managed to get a cross-build with JIT support working with
+      # `depsBuildBuild = [ llvmPackages.clang ] ++ buildInputs`, but considering that the
+      # resulting LLVM IR isn't platform-independent this doesn't give you much.
+      # In fact, I tried to test the result in a VM-test, but as soon as JIT was used to optimize
+      # a query, postgres would coredump with `Illegal instruction`.
+      broken = jitSupport && (stdenv.hostPlatform != stdenv.buildPlatform);
+    };
+  });
+
+  postgresqlWithPackages = { postgresql, makeWrapper, buildEnv }: pkgs: f: buildEnv {
+    name = "postgresql-and-plugins-${postgresql.version}";
+    paths = f pkgs ++ [
+        postgresql
+        postgresql.lib
+        postgresql.man   # in case user installs this into environment
+    ];
+    nativeBuildInputs = [ makeWrapper ];
+
+
+    # We include /bin to ensure the $out/bin directory is created, which is
+    # needed because we'll be removing the files from that directory in postBuild
+    # below. See #22653
+    pathsToLink = ["/" "/bin"];
+
+    # Note: the duplication of executables is about 4MB size.
+    # So a nicer solution was patching postgresql to allow setting the
+    # libdir explicitly.
+    postBuild = ''
+      mkdir -p $out/bin
+      rm $out/bin/{pg_config,postgres,pg_ctl}
+      cp --target-directory=$out/bin ${postgresql}/bin/{postgres,pg_config,pg_ctl}
+      wrapProgram $out/bin/postgres --set NIX_PGLIBDIR $out/lib
+    '';
+
+    passthru.version = postgresql.version;
+    passthru.psqlSchema = postgresql.psqlSchema;
+  };
+
+in
+# passed by <major>.nix
+versionArgs:
+# passed by default.nix
+{ self, ... } @defaultArgs:
+self.callPackage generic (defaultArgs // versionArgs)
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/packages.nix b/nixpkgs/pkgs/servers/sql/postgresql/packages.nix
deleted file mode 100644
index 3b1c855e0de9..000000000000
--- a/nixpkgs/pkgs/servers/sql/postgresql/packages.nix
+++ /dev/null
@@ -1,103 +0,0 @@
-self: super: {
-
-    age = super.callPackage ./ext/age.nix { };
-
-    apache_datasketches = super.callPackage ./ext/apache_datasketches.nix { };
-
-    citus = super.callPackage ./ext/citus.nix { };
-
-    h3-pg = super.callPackage ./ext/h3-pg.nix { };
-
-    hypopg = super.callPackage ./ext/hypopg.nix { };
-
-    jsonb_deep_sum = super.callPackage ./ext/jsonb_deep_sum.nix { };
-
-    lantern = super.callPackage ./ext/lantern.nix { };
-
-    periods = super.callPackage ./ext/periods.nix { };
-
-    postgis = super.callPackage ./ext/postgis.nix { };
-
-    pg_auto_failover = super.callPackage ./ext/pg_auto_failover.nix { };
-
-    pg_bigm = super.callPackage ./ext/pg_bigm.nix { };
-
-    pg_ed25519 = super.callPackage ./ext/pg_ed25519.nix { };
-
-    pg_embedding = super.callPackage ./ext/pg_embedding.nix { };
-
-    pg_hint_plan = super.callPackage ./ext/pg_hint_plan.nix { };
-
-    pg_ivm = super.callPackage ./ext/pg_ivm.nix { };
-
-    pg_rational = super.callPackage ./ext/pg_rational.nix { };
-
-    pg_repack = super.callPackage ./ext/pg_repack.nix { };
-
-    pg_similarity = super.callPackage ./ext/pg_similarity.nix { };
-
-    pgaudit = super.callPackage ./ext/pgaudit.nix { };
-
-    pgroonga = super.callPackage ./ext/pgroonga.nix { };
-
-    pgsodium = super.callPackage ./ext/pgsodium.nix { };
-
-    pgsql-http = super.callPackage ./ext/pgsql-http.nix { };
-
-    pgvector = super.callPackage ./ext/pgvector.nix { };
-
-    plpgsql_check = super.callPackage ./ext/plpgsql_check.nix { };
-
-    plr = super.callPackage ./ext/plr.nix { };
-
-    plv8 = super.callPackage ./ext/plv8 { };
-
-    pgjwt = super.callPackage ./ext/pgjwt.nix { };
-
-    cstore_fdw = super.callPackage ./ext/cstore_fdw.nix { };
-
-    pg_hll = super.callPackage ./ext/pg_hll.nix { };
-
-    pg_cron = super.callPackage ./ext/pg_cron.nix { };
-
-    pg_topn = super.callPackage ./ext/pg_topn.nix { };
-
-    pg_net = super.callPackage ./ext/pg_net.nix { };
-
-    pgtap = super.callPackage ./ext/pgtap.nix { };
-
-    smlar = super.callPackage ./ext/smlar.nix { };
-
-    temporal_tables = super.callPackage ./ext/temporal_tables.nix { };
-
-    timescaledb = super.callPackage ./ext/timescaledb.nix { };
-    timescaledb-apache = super.callPackage ./ext/timescaledb.nix { enableUnfree = false; };
-
-    timescaledb_toolkit = super.callPackage ./ext/timescaledb_toolkit.nix { };
-
-    tsearch_extras = super.callPackage ./ext/tsearch_extras.nix { };
-
-    tds_fdw = super.callPackage ./ext/tds_fdw.nix { };
-
-    pgrouting = super.callPackage ./ext/pgrouting.nix { };
-
-    pg_partman = super.callPackage ./ext/pg_partman.nix { };
-
-    pg_relusage = super.callPackage ./ext/pg_relusage.nix { };
-
-    pg_safeupdate = super.callPackage ./ext/pg_safeupdate.nix { };
-
-    pg_squeeze = super.callPackage ./ext/pg_squeeze.nix { };
-
-    pg_uuidv7 = super.callPackage ./ext/pg_uuidv7.nix { };
-
-    promscale_extension = super.callPackage ./ext/promscale_extension.nix { };
-
-    repmgr = super.callPackage ./ext/repmgr.nix { };
-
-    rum = super.callPackage ./ext/rum.nix { };
-
-    tsja = super.callPackage ./ext/tsja.nix { };
-
-    wal2json = super.callPackage ./ext/wal2json.nix { };
-}
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/locale-binary-path.patch b/nixpkgs/pkgs/servers/sql/postgresql/patches/locale-binary-path.patch
index 08e90bce750c..08e90bce750c 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/locale-binary-path.patch
+++ b/nixpkgs/pkgs/servers/sql/postgresql/patches/locale-binary-path.patch
diff --git a/nixpkgs/pkgs/servers/sql/proxysql/default.nix b/nixpkgs/pkgs/servers/sql/proxysql/default.nix
index 891ee8e53134..e0a6f23a4631 100644
--- a/nixpkgs/pkgs/servers/sql/proxysql/default.nix
+++ b/nixpkgs/pkgs/servers/sql/proxysql/default.nix
@@ -166,6 +166,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "High-performance MySQL proxy";
+    mainProgram = "proxysql";
     homepage = "https://proxysql.com/";
     license = with licenses; [ gpl3Only ];
     maintainers = teams.helsinki-systems.members;
diff --git a/nixpkgs/pkgs/servers/sql/rqlite/default.nix b/nixpkgs/pkgs/servers/sql/rqlite/default.nix
index d8bcadbb9df9..3f06ae1e43da 100644
--- a/nixpkgs/pkgs/servers/sql/rqlite/default.nix
+++ b/nixpkgs/pkgs/servers/sql/rqlite/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "rqlite";
-  version = "8.22.1";
+  version = "8.23.0";
 
   src = fetchFromGitHub {
     owner = "rqlite";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-g5W+rHD4gUS82E+wFLQ3VTSwIWQUogwTutwPTtf+IdM=";
+    sha256 = "sha256-n4ALjayvcOR+VcpKPRh6WswAEEdlYyxhYyfPRje98Rs=";
   };
 
-  vendorHash = "sha256-onR4n6ok6y9APRwGjBoMISbidGDVw19D48TkogRp1uM=";
+  vendorHash = "sha256-UYO5asCX+KpESAT1ws7O91QaOJ8zPbd06JzHexBiWj0=";
 
   subPackages = [ "cmd/rqlite" "cmd/rqlited" "cmd/rqbench" ];
 
diff --git a/nixpkgs/pkgs/servers/squid/default.nix b/nixpkgs/pkgs/servers/squid/default.nix
index d564f77f7a7c..792c97ca6b5e 100644
--- a/nixpkgs/pkgs/servers/squid/default.nix
+++ b/nixpkgs/pkgs/servers/squid/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "squid";
-  version = "6.7";
+  version = "6.8";
 
   src = fetchurl {
     url = "http://www.squid-cache.org/Versions/v6/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
-    hash = "sha256-4U2qTq5Bkl0a4/COZEOaaqowEb3O1oZii43ml9WrhCg=";
+    hash = "sha256-EcxWULUYCdmUg8z64kdEouUc0WGZ9f8MkX6E/OaVhw8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/servers/sslh/default.nix b/nixpkgs/pkgs/servers/sslh/default.nix
index 7c3cc4635e25..ba02f33cee62 100644
--- a/nixpkgs/pkgs/servers/sslh/default.nix
+++ b/nixpkgs/pkgs/servers/sslh/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sslh";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "yrutschle";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-KXjoYtiGaOrdWRbI0umNfxbtS7p+YaW352lC/5f+AM4=";
+    hash = "sha256-fIKiUrpHn2VcUFH6WblZDDpa+AenC2qtgrQ6uUUIyoQ=";
   };
 
   postPatch = "patchShebangs *.sh";
diff --git a/nixpkgs/pkgs/servers/sunshine/default.nix b/nixpkgs/pkgs/servers/sunshine/default.nix
index 331770a565d5..a4fd4abc109c 100644
--- a/nixpkgs/pkgs/servers/sunshine/default.nix
+++ b/nixpkgs/pkgs/servers/sunshine/default.nix
@@ -39,29 +39,36 @@
 , vulkan-loader
 , libappindicator
 , libnotify
+, miniupnpc
 , config
 , cudaSupport ? config.cudaSupport
-, cudaPackages ? {}
+, cudaPackages ? { }
 }:
-stdenv.mkDerivation rec {
+let
+  stdenv' = if cudaSupport then cudaPackages.backendStdenv else stdenv;
+in
+stdenv'.mkDerivation rec {
   pname = "sunshine";
-  version = "0.21.0";
+  version = "0.22.2";
 
   src = fetchFromGitHub {
     owner = "LizardByte";
     repo = "Sunshine";
     rev = "v${version}";
-    sha256 = "sha256-uvQAJkoKazFLz5iTpYSAGYJQZ2EprQ+p9+tryqorFHM=";
+    sha256 = "sha256-So8fX0XQoW2cdTWWENoE07EU6e8vvjeTpizLoaDTjeg=";
     fetchSubmodules = true;
   };
 
-  # fetch node_modules needed for webui
+  patches = [
+    # remove npm install as it needs internet access -- handled separately below
+    ./dont-build-webui.patch
+  ];
+
+  # build webui
   ui = buildNpmPackage {
     inherit src version;
     pname = "sunshine-ui";
-    npmDepsHash = "sha256-+T1XAf4SThoJLOFpnVxDa2qiKFLIKQPGewjA83GQovM=";
-
-    dontNpmBuild = true;
+    npmDepsHash = "sha256-0487ntbJZ20MZHezQ+Z3EJkidF3Dgoh/mynYwR7k/+I=";
 
     # use generated package-lock.json as upstream does not provide one
     postPatch = ''
@@ -70,7 +77,7 @@ stdenv.mkDerivation rec {
 
     installPhase = ''
       mkdir -p $out
-      cp -r node_modules $out/
+      cp -r * $out/
     '';
   };
 
@@ -80,7 +87,7 @@ stdenv.mkDerivation rec {
     autoPatchelfHook
     makeWrapper
   ] ++ lib.optionals cudaSupport [
-    cudaPackages.autoAddOpenGLRunpathHook
+    cudaPackages.autoAddDriverRunpath
   ];
 
   buildInputs = [
@@ -121,6 +128,7 @@ stdenv.mkDerivation rec {
     svt-av1
     libappindicator
     libnotify
+    miniupnpc
   ] ++ lib.optionals cudaSupport [
     cudaPackages.cudatoolkit
   ] ++ lib.optionals stdenv.isx86_64 [
@@ -137,22 +145,26 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-Wno-dev"
+    # upstream tries to use systemd and udev packages to find these directories in FHS; set the paths explicitly instead
+    (lib.cmakeFeature "UDEV_RULES_INSTALL_DIR" "lib/udev/rules.d")
+    (lib.cmakeFeature "SYSTEMD_USER_UNIT_INSTALL_DIR" "lib/systemd/user")
   ];
 
   postPatch = ''
-    # fix hardcoded libevdev path
-    substituteInPlace cmake/compile_definitions/linux.cmake \
-      --replace '/usr/include/libevdev-1.0' '${libevdev}/include/libevdev-1.0'
+    # remove upstream dependency on systemd and udev
+    substituteInPlace cmake/packaging/linux.cmake \
+      --replace-fail 'find_package(Systemd)' "" \
+      --replace-fail 'find_package(Udev)' ""
 
     substituteInPlace packaging/linux/sunshine.desktop \
-      --replace '@PROJECT_NAME@' 'Sunshine' \
-      --replace '@PROJECT_DESCRIPTION@' 'Self-hosted game stream host for Moonlight'
+      --subst-var-by PROJECT_NAME 'Sunshine' \
+      --subst-var-by PROJECT_DESCRIPTION 'Self-hosted game stream host for Moonlight' \
+      --replace-fail '/usr/bin/env systemctl start --u sunshine' 'sunshine'
   '';
 
   preBuild = ''
-    # copy node_modules where they can be picked up by build
-    mkdir -p ../node_modules
-    cp -r ${ui}/node_modules/* ../node_modules
+    # copy webui where it can be picked up by build
+    cp -r ${ui}/build ../
   '';
 
   # allow Sunshine to find libvulkan
diff --git a/nixpkgs/pkgs/servers/sunshine/dont-build-webui.patch b/nixpkgs/pkgs/servers/sunshine/dont-build-webui.patch
new file mode 100644
index 000000000000..f4addc55e468
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sunshine/dont-build-webui.patch
@@ -0,0 +1,14 @@
+diff --git a/cmake/targets/common.cmake b/cmake/targets/common.cmake
+index 9f2ce08..8c32b8f 100644
+--- a/cmake/targets/common.cmake
++++ b/cmake/targets/common.cmake
+@@ -48,8 +48,4 @@ else()
+     set(NPM_BUILD_HOMEBREW "")
+ endif()
+ 
+-#WebUI build
+-add_custom_target(web-ui ALL
+-        WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+-        COMMENT "Installing NPM Dependencies and Building the Web UI"
+-        COMMAND bash -c \"npm install && SUNSHINE_BUILD_HOMEBREW=${NPM_BUILD_HOMEBREW} SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR} SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR} npm run build\") # cmake-lint: disable=C0301
++
diff --git a/nixpkgs/pkgs/servers/sunshine/package-lock.json b/nixpkgs/pkgs/servers/sunshine/package-lock.json
index 0af94fdd8a10..63a10b418964 100644
--- a/nixpkgs/pkgs/servers/sunshine/package-lock.json
+++ b/nixpkgs/pkgs/servers/sunshine/package-lock.json
@@ -5,34 +5,509 @@
   "packages": {
     "": {
       "dependencies": {
-        "@fortawesome/fontawesome-free": "6.4.2",
-        "bootstrap": "5.3.2",
-        "vue": "2.6.12"
+        "@fortawesome/fontawesome-free": "6.5.1",
+        "@popperjs/core": "2.11.8",
+        "@vitejs/plugin-vue": "4.6.2",
+        "bootstrap": "5.3.3",
+        "vite": "4.5.2",
+        "vite-plugin-ejs": "1.6.4",
+        "vue": "3.4.5"
+      }
+    },
+    "node_modules/@babel/parser": {
+      "version": "7.24.0",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz",
+      "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==",
+      "bin": {
+        "parser": "bin/babel-parser.js"
+      },
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
+    "node_modules/@esbuild/android-arm": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
+      "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
+      "cpu": [
+        "arm"
+      ],
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/android-arm64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
+      "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/android-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
+      "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
+      "cpu": [
+        "x64"
+      ],
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/darwin-arm64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
+      "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
+      "cpu": [
+        "arm64"
+      ],
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/darwin-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
+      "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
+      "cpu": [
+        "x64"
+      ],
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/freebsd-arm64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
+      "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
+      "cpu": [
+        "arm64"
+      ],
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/freebsd-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
+      "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
+      "cpu": [
+        "x64"
+      ],
+      "optional": true,
+      "os": [
+        "freebsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-arm": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
+      "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
+      "cpu": [
+        "arm"
+      ],
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-arm64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
+      "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
+      "cpu": [
+        "arm64"
+      ],
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-ia32": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
+      "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
+      "cpu": [
+        "ia32"
+      ],
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-loong64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
+      "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
+      "cpu": [
+        "loong64"
+      ],
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-mips64el": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
+      "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
+      "cpu": [
+        "mips64el"
+      ],
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-ppc64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
+      "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
+      "cpu": [
+        "ppc64"
+      ],
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-riscv64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
+      "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
+      "cpu": [
+        "riscv64"
+      ],
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-s390x": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
+      "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
+      "cpu": [
+        "s390x"
+      ],
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/linux-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
+      "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
+      "cpu": [
+        "x64"
+      ],
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/netbsd-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
+      "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
+      "cpu": [
+        "x64"
+      ],
+      "optional": true,
+      "os": [
+        "netbsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/openbsd-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
+      "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
+      "cpu": [
+        "x64"
+      ],
+      "optional": true,
+      "os": [
+        "openbsd"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/sunos-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
+      "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
+      "cpu": [
+        "x64"
+      ],
+      "optional": true,
+      "os": [
+        "sunos"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/win32-arm64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
+      "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
+      "cpu": [
+        "arm64"
+      ],
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/win32-ia32": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
+      "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
+      "cpu": [
+        "ia32"
+      ],
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@esbuild/win32-x64": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
+      "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
+      "cpu": [
+        "x64"
+      ],
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">=12"
       }
     },
     "node_modules/@fortawesome/fontawesome-free": {
-      "version": "6.4.2",
-      "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.2.tgz",
-      "integrity": "sha512-m5cPn3e2+FDCOgi1mz0RexTUvvQibBebOUlUlW0+YrMjDTPkiJ6VTKukA1GRsvRw+12KyJndNjj0O4AgTxm2Pg==",
+      "version": "6.5.1",
+      "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.5.1.tgz",
+      "integrity": "sha512-CNy5vSwN3fsUStPRLX7fUYojyuzoEMSXPl7zSLJ8TgtRfjv24LOnOWKT2zYwaHZCJGkdyRnTmstR0P+Ah503Gw==",
       "hasInstallScript": true,
       "engines": {
         "node": ">=6"
       }
     },
+    "node_modules/@jridgewell/sourcemap-codec": {
+      "version": "1.4.15",
+      "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+      "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+    },
     "node_modules/@popperjs/core": {
       "version": "2.11.8",
       "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
       "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
-      "peer": true,
       "funding": {
         "type": "opencollective",
         "url": "https://opencollective.com/popperjs"
       }
     },
+    "node_modules/@vitejs/plugin-vue": {
+      "version": "4.6.2",
+      "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
+      "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==",
+      "engines": {
+        "node": "^14.18.0 || >=16.0.0"
+      },
+      "peerDependencies": {
+        "vite": "^4.0.0 || ^5.0.0",
+        "vue": "^3.2.25"
+      }
+    },
+    "node_modules/@vue/compiler-core": {
+      "version": "3.4.5",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.5.tgz",
+      "integrity": "sha512-Daka7P1z2AgKjzuueWXhwzIsKu0NkLB6vGbNVEV2iJ8GJTrzraZo/Sk4GWCMRtd/qVi3zwnk+Owbd/xSZbwHtQ==",
+      "dependencies": {
+        "@babel/parser": "^7.23.6",
+        "@vue/shared": "3.4.5",
+        "entities": "^4.5.0",
+        "estree-walker": "^2.0.2",
+        "source-map-js": "^1.0.2"
+      }
+    },
+    "node_modules/@vue/compiler-dom": {
+      "version": "3.4.5",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.5.tgz",
+      "integrity": "sha512-J8YlxknJVd90SXFJ4HwGANSAXsx5I0lK30sO/zvYV7s5gXf7gZR7r/1BmZ2ju7RGH1lnc6bpBc6nL61yW+PsAQ==",
+      "dependencies": {
+        "@vue/compiler-core": "3.4.5",
+        "@vue/shared": "3.4.5"
+      }
+    },
+    "node_modules/@vue/compiler-sfc": {
+      "version": "3.4.5",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.5.tgz",
+      "integrity": "sha512-jauvkDuSSUbP0ebhfNqljhShA90YEfX/0wZ+w40oZF43IjGyWYjqYaJbvMJwGOd+9+vODW6eSvnk28f0SGV7OQ==",
+      "dependencies": {
+        "@babel/parser": "^7.23.6",
+        "@vue/compiler-core": "3.4.5",
+        "@vue/compiler-dom": "3.4.5",
+        "@vue/compiler-ssr": "3.4.5",
+        "@vue/shared": "3.4.5",
+        "estree-walker": "^2.0.2",
+        "magic-string": "^0.30.5",
+        "postcss": "^8.4.32",
+        "source-map-js": "^1.0.2"
+      }
+    },
+    "node_modules/@vue/compiler-ssr": {
+      "version": "3.4.5",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.5.tgz",
+      "integrity": "sha512-DDdEcDzj2lWTMfUMMtEpLDhURai9LhM0zSZ219jCt7b2Vyl0/jy3keFgCPMitG0V1S1YG4Cmws3lWHWdxHQOpg==",
+      "dependencies": {
+        "@vue/compiler-dom": "3.4.5",
+        "@vue/shared": "3.4.5"
+      }
+    },
+    "node_modules/@vue/reactivity": {
+      "version": "3.4.5",
+      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.5.tgz",
+      "integrity": "sha512-BcWkKvjdvqJwb7BhhFkXPLDCecX4d4a6GATvCduJQDLv21PkPowAE5GKuIE5p6RC07/Lp9FMkkq4AYCTVF5KlQ==",
+      "dependencies": {
+        "@vue/shared": "3.4.5"
+      }
+    },
+    "node_modules/@vue/runtime-core": {
+      "version": "3.4.5",
+      "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.5.tgz",
+      "integrity": "sha512-wh9ELIOQKeWT9SaUPdLrsxRkZv14jp+SJm9aiQGWio+/MWNM3Lib0wE6CoKEqQ9+SCYyGjDBhTOTtO47kCgbkg==",
+      "dependencies": {
+        "@vue/reactivity": "3.4.5",
+        "@vue/shared": "3.4.5"
+      }
+    },
+    "node_modules/@vue/runtime-dom": {
+      "version": "3.4.5",
+      "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.5.tgz",
+      "integrity": "sha512-n5ewvOjyG3IEpqGBahdPXODFSpVlSz3H4LF76Sx0XAqpIOqyJ5bIb2PrdYuH2ogBMAQPh+o5tnoH4nJpBr8U0Q==",
+      "dependencies": {
+        "@vue/runtime-core": "3.4.5",
+        "@vue/shared": "3.4.5",
+        "csstype": "^3.1.3"
+      }
+    },
+    "node_modules/@vue/server-renderer": {
+      "version": "3.4.5",
+      "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.5.tgz",
+      "integrity": "sha512-jOFc/VE87yvifQpNju12VcqimH8pBLxdcT+t3xMeiED1K6DfH9SORyhFEoZlW5TG2Vwfn3Ul5KE+1aC99xnSBg==",
+      "dependencies": {
+        "@vue/compiler-ssr": "3.4.5",
+        "@vue/shared": "3.4.5"
+      },
+      "peerDependencies": {
+        "vue": "3.4.5"
+      }
+    },
+    "node_modules/@vue/shared": {
+      "version": "3.4.5",
+      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.5.tgz",
+      "integrity": "sha512-6XptuzlMvN4l4cDnDw36pdGEV+9njYkQ1ZE0Q6iZLwrKefKaOJyiFmcP3/KBDHbt72cJZGtllAc1GaHe6XGAyg=="
+    },
+    "node_modules/ansi-styles": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "dependencies": {
+        "color-convert": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/async": {
+      "version": "3.2.5",
+      "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
+      "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg=="
+    },
+    "node_modules/balanced-match": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+      "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+    },
     "node_modules/bootstrap": {
-      "version": "5.3.2",
-      "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz",
-      "integrity": "sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g==",
+      "version": "5.3.3",
+      "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz",
+      "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==",
       "funding": [
         {
           "type": "github",
@@ -47,10 +522,373 @@
         "@popperjs/core": "^2.11.8"
       }
     },
+    "node_modules/brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dependencies": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "node_modules/chalk": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+      "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+      "dependencies": {
+        "ansi-styles": "^4.1.0",
+        "supports-color": "^7.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/chalk?sponsor=1"
+      }
+    },
+    "node_modules/color-convert": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "dependencies": {
+        "color-name": "~1.1.4"
+      },
+      "engines": {
+        "node": ">=7.0.0"
+      }
+    },
+    "node_modules/color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+    },
+    "node_modules/concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+    },
+    "node_modules/csstype": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+      "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+    },
+    "node_modules/ejs": {
+      "version": "3.1.9",
+      "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
+      "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
+      "dependencies": {
+        "jake": "^10.8.5"
+      },
+      "bin": {
+        "ejs": "bin/cli.js"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/entities": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+      "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+      "engines": {
+        "node": ">=0.12"
+      },
+      "funding": {
+        "url": "https://github.com/fb55/entities?sponsor=1"
+      }
+    },
+    "node_modules/esbuild": {
+      "version": "0.18.20",
+      "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
+      "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
+      "hasInstallScript": true,
+      "bin": {
+        "esbuild": "bin/esbuild"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "optionalDependencies": {
+        "@esbuild/android-arm": "0.18.20",
+        "@esbuild/android-arm64": "0.18.20",
+        "@esbuild/android-x64": "0.18.20",
+        "@esbuild/darwin-arm64": "0.18.20",
+        "@esbuild/darwin-x64": "0.18.20",
+        "@esbuild/freebsd-arm64": "0.18.20",
+        "@esbuild/freebsd-x64": "0.18.20",
+        "@esbuild/linux-arm": "0.18.20",
+        "@esbuild/linux-arm64": "0.18.20",
+        "@esbuild/linux-ia32": "0.18.20",
+        "@esbuild/linux-loong64": "0.18.20",
+        "@esbuild/linux-mips64el": "0.18.20",
+        "@esbuild/linux-ppc64": "0.18.20",
+        "@esbuild/linux-riscv64": "0.18.20",
+        "@esbuild/linux-s390x": "0.18.20",
+        "@esbuild/linux-x64": "0.18.20",
+        "@esbuild/netbsd-x64": "0.18.20",
+        "@esbuild/openbsd-x64": "0.18.20",
+        "@esbuild/sunos-x64": "0.18.20",
+        "@esbuild/win32-arm64": "0.18.20",
+        "@esbuild/win32-ia32": "0.18.20",
+        "@esbuild/win32-x64": "0.18.20"
+      }
+    },
+    "node_modules/estree-walker": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+      "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+    },
+    "node_modules/filelist": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+      "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
+      "dependencies": {
+        "minimatch": "^5.0.1"
+      }
+    },
+    "node_modules/filelist/node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/filelist/node_modules/minimatch": {
+      "version": "5.1.6",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+      "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/fsevents": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+      "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+      "hasInstallScript": true,
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+      }
+    },
+    "node_modules/has-flag": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/jake": {
+      "version": "10.8.7",
+      "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz",
+      "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==",
+      "dependencies": {
+        "async": "^3.2.3",
+        "chalk": "^4.0.2",
+        "filelist": "^1.0.4",
+        "minimatch": "^3.1.2"
+      },
+      "bin": {
+        "jake": "bin/cli.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/magic-string": {
+      "version": "0.30.8",
+      "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz",
+      "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==",
+      "dependencies": {
+        "@jridgewell/sourcemap-codec": "^1.4.15"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/minimatch": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+      "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+      "dependencies": {
+        "brace-expansion": "^1.1.7"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/nanoid": {
+      "version": "3.3.7",
+      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+      "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "bin": {
+        "nanoid": "bin/nanoid.cjs"
+      },
+      "engines": {
+        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+      }
+    },
+    "node_modules/picocolors": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+      "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+    },
+    "node_modules/postcss": {
+      "version": "8.4.35",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
+      "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
+      "funding": [
+        {
+          "type": "opencollective",
+          "url": "https://opencollective.com/postcss/"
+        },
+        {
+          "type": "tidelift",
+          "url": "https://tidelift.com/funding/github/npm/postcss"
+        },
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/ai"
+        }
+      ],
+      "dependencies": {
+        "nanoid": "^3.3.7",
+        "picocolors": "^1.0.0",
+        "source-map-js": "^1.0.2"
+      },
+      "engines": {
+        "node": "^10 || ^12 || >=14"
+      }
+    },
+    "node_modules/rollup": {
+      "version": "3.29.4",
+      "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
+      "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+      "bin": {
+        "rollup": "dist/bin/rollup"
+      },
+      "engines": {
+        "node": ">=14.18.0",
+        "npm": ">=8.0.0"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      }
+    },
+    "node_modules/source-map-js": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.3.tgz",
+      "integrity": "sha512-H/5Vyeo/I1hqIdOS0m1Q63OPr0yFdZLaiVkr8ap/WyIVGdU3PyoOV/HXY8+PJE2M43+n11FY5zWQnNRNnD1UFg==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/supports-color": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+      "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+      "dependencies": {
+        "has-flag": "^4.0.0"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/vite": {
+      "version": "4.5.2",
+      "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz",
+      "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==",
+      "dependencies": {
+        "esbuild": "^0.18.10",
+        "postcss": "^8.4.27",
+        "rollup": "^3.27.1"
+      },
+      "bin": {
+        "vite": "bin/vite.js"
+      },
+      "engines": {
+        "node": "^14.18.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/vitejs/vite?sponsor=1"
+      },
+      "optionalDependencies": {
+        "fsevents": "~2.3.2"
+      },
+      "peerDependencies": {
+        "@types/node": ">= 14",
+        "less": "*",
+        "lightningcss": "^1.21.0",
+        "sass": "*",
+        "stylus": "*",
+        "sugarss": "*",
+        "terser": "^5.4.0"
+      },
+      "peerDependenciesMeta": {
+        "@types/node": {
+          "optional": true
+        },
+        "less": {
+          "optional": true
+        },
+        "lightningcss": {
+          "optional": true
+        },
+        "sass": {
+          "optional": true
+        },
+        "stylus": {
+          "optional": true
+        },
+        "sugarss": {
+          "optional": true
+        },
+        "terser": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/vite-plugin-ejs": {
+      "version": "1.6.4",
+      "resolved": "https://registry.npmjs.org/vite-plugin-ejs/-/vite-plugin-ejs-1.6.4.tgz",
+      "integrity": "sha512-23p1RS4PiA0veXY5/gHZ60pl3pPvd8NEqdBsDgxNK8nM1rjFFDcVb0paNmuipzCgNP/Y0f/Id22M7Il4kvZ2jA==",
+      "dependencies": {
+        "ejs": "^3.1.8"
+      }
+    },
     "node_modules/vue": {
-      "version": "2.6.12",
-      "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz",
-      "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg=="
+      "version": "3.4.5",
+      "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.5.tgz",
+      "integrity": "sha512-VH6nHFhLPjgu2oh5vEBXoNZxsGHuZNr3qf4PHClwJWw6IDqw6B3x+4J+ABdoZ0aJuT8Zi0zf3GpGlLQCrGWHrw==",
+      "dependencies": {
+        "@vue/compiler-dom": "3.4.5",
+        "@vue/compiler-sfc": "3.4.5",
+        "@vue/runtime-dom": "3.4.5",
+        "@vue/server-renderer": "3.4.5",
+        "@vue/shared": "3.4.5"
+      },
+      "peerDependencies": {
+        "typescript": "*"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
     }
   }
 }
diff --git a/nixpkgs/pkgs/servers/tailscale/default.nix b/nixpkgs/pkgs/servers/tailscale/default.nix
index 6ad51525c078..4e6976d5310d 100644
--- a/nixpkgs/pkgs/servers/tailscale/default.nix
+++ b/nixpkgs/pkgs/servers/tailscale/default.nix
@@ -12,7 +12,7 @@
 }:
 
 let
-  version = "1.60.1";
+  version = "1.62.0";
 in
 buildGoModule {
   pname = "tailscale";
@@ -22,9 +22,9 @@ buildGoModule {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    hash = "sha256-1BzzXRqbs8dS9263cXCujYYSStQlvyQr3dm3tyr+64k=";
+    hash = "sha256-qotoCKUb5INgdSELvJpDaDvCuzVqet5zeIazzRnYoqo=";
   };
-  vendorHash = "sha256-eci4f6golU1eIQOezplA+I+gmOfof40ktIdpr0v/uMc=";
+  vendorHash = "sha256-jyRjT/CQBlmjHzilxJvMuzZQlGyJB4X/yISgWjBVDxc=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
 
diff --git a/nixpkgs/pkgs/servers/tautulli/default.nix b/nixpkgs/pkgs/servers/tautulli/default.nix
index 2bab6f742316..fb2a67353606 100644
--- a/nixpkgs/pkgs/servers/tautulli/default.nix
+++ b/nixpkgs/pkgs/servers/tautulli/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "Tautulli";
-  version = "2.13.2";
+  version = "2.13.4";
   format = "other";
 
   pythonPath = [ setuptools ];
@@ -12,7 +12,7 @@ buildPythonApplication rec {
     owner = "Tautulli";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-G1YNOJ2snddhFOWDkRQikQ1qC3G1BHg+qb2j5ffIR8k=";
+    sha256 = "sha256-cOHirjYdfPPv7O9o3vnsKBffvqxoaRN32NaUOK0SmQ8=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/servers/trezord/default.nix b/nixpkgs/pkgs/servers/trezord/default.nix
index 5761f84c29e7..9938658259d5 100644
--- a/nixpkgs/pkgs/servers/trezord/default.nix
+++ b/nixpkgs/pkgs/servers/trezord/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildGoModule
 , fetchFromGitHub
+, fetchpatch
 , trezor-udev-rules
 , AppKit
 }:
@@ -21,6 +22,13 @@ buildGoModule rec {
 
   vendorHash = "sha256-wXgAmZEXdM4FcMCQbAs+ydXshCAMu7nl/yVv/3sqaXE=";
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/trezor/trezord-go/commit/616473d53a8ae49f1099e36ab05a2981a08fa606.patch";
+      hash = "sha256-yKTwgqWr4L6XEPV85A6D1wpRdpef8hkIbl4LrRmOyuo=";
+    })
+  ];
+
   propagatedBuildInputs = lib.optionals stdenv.isLinux [ trezor-udev-rules ]
     ++ lib.optionals stdenv.isDarwin [ AppKit ];
 
diff --git a/nixpkgs/pkgs/servers/trickster/trickster.nix b/nixpkgs/pkgs/servers/trickster/trickster.nix
index db8d6942a61f..7b527a5c20b2 100644
--- a/nixpkgs/pkgs/servers/trickster/trickster.nix
+++ b/nixpkgs/pkgs/servers/trickster/trickster.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Reverse proxy cache and time series dashboard accelerator";
+    mainProgram = "trickster";
     longDescription = ''
       Trickster is a fully-featured HTTP Reverse Proxy Cache for HTTP
       applications like static file servers and web APIs.
diff --git a/nixpkgs/pkgs/servers/tt-rss/plugin-ff-instagram/default.nix b/nixpkgs/pkgs/servers/tt-rss/plugin-ff-instagram/default.nix
index 96dfaa7f29b7..7ef093e3f70d 100644
--- a/nixpkgs/pkgs/servers/tt-rss/plugin-ff-instagram/default.nix
+++ b/nixpkgs/pkgs/servers/tt-rss/plugin-ff-instagram/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
 
       The name of the plugin in TT-RSS is 'ff_instagram'.
     '';
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     homepage = "https://github.com/wltb/ff_instagram";
     maintainers = with maintainers; [ das_j ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/servers/ttyd/default.nix b/nixpkgs/pkgs/servers/ttyd/default.nix
index 68731b6f717d..23b782c540db 100644
--- a/nixpkgs/pkgs/servers/ttyd/default.nix
+++ b/nixpkgs/pkgs/servers/ttyd/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, fetchFromGitHub
 , pkg-config, cmake, xxd
 , openssl, libwebsockets, json_c, libuv, zlib
+, nixosTests
 }:
 
 with builtins;
diff --git a/nixpkgs/pkgs/servers/web-apps/bookstack/default.nix b/nixpkgs/pkgs/servers/web-apps/bookstack/default.nix
index c59b6dae131e..227d4185baf8 100644
--- a/nixpkgs/pkgs/servers/web-apps/bookstack/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/bookstack/default.nix
@@ -16,13 +16,13 @@ let
 
 in package.override rec {
   pname = "bookstack";
-  version = "24.02";
+  version = "24.02.2";
 
   src = fetchFromGitHub {
     owner = "bookstackapp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-F1CNutWFtFaRXsT8InyMww7OR40TXnzVGA/6t0eLBIw=";
+    sha256 = "1b4166vd3ribs69ad5ljp71im0fh0n0m5c5l04i3l44a5bw25b2h";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/web-apps/bookstack/php-packages.nix b/nixpkgs/pkgs/servers/web-apps/bookstack/php-packages.nix
index 2709f22c3d1d..7c343011726c 100644
--- a/nixpkgs/pkgs/servers/web-apps/bookstack/php-packages.nix
+++ b/nixpkgs/pkgs/servers/web-apps/bookstack/php-packages.nix
@@ -15,10 +15,10 @@ let
     "aws/aws-sdk-php" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "aws-aws-sdk-php-2e34d45e970c77775e4c298e08732d64b647c41c";
+        name = "aws-aws-sdk-php-957ccef631684d612d01ced2fa3b0506f2ec78c3";
         src = fetchurl {
-          url = "https://api.github.com/repos/aws/aws-sdk-php/zipball/2e34d45e970c77775e4c298e08732d64b647c41c";
-          sha256 = "1h08lxna8sjq90lrxj60w2cyf9iynvyw4b8r9nl1bxsdmbmgl27s";
+          url = "https://api.github.com/repos/aws/aws-sdk-php/zipball/957ccef631684d612d01ced2fa3b0506f2ec78c3";
+          sha256 = "1chckiccr061c063wwf502d545wji4p5g6ak6z6dl36jjkrip7v4";
         };
       };
     };
@@ -105,20 +105,20 @@ let
     "doctrine/dbal" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "doctrine-dbal-0ac3c270590e54910715e9a1a044cc368df282b2";
+        name = "doctrine-dbal-a19a1d05ca211f41089dffcc387733a6875196cb";
         src = fetchurl {
-          url = "https://api.github.com/repos/doctrine/dbal/zipball/0ac3c270590e54910715e9a1a044cc368df282b2";
-          sha256 = "1qf6nhrrn7hdxqvym9l3mxj1sb0fmx2h1s3yi4mjkkb4ri5hcmm8";
+          url = "https://api.github.com/repos/doctrine/dbal/zipball/a19a1d05ca211f41089dffcc387733a6875196cb";
+          sha256 = "11lcmw8pmgfp7wmn4miainyl2c060s4igq4g94azxl1v5bqaypis";
         };
       };
     };
     "doctrine/deprecations" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "doctrine-deprecations-4f2d4f2836e7ec4e7a8625e75c6aa916004db931";
+        name = "doctrine-deprecations-dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab";
         src = fetchurl {
-          url = "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931";
-          sha256 = "1kxy6s4v9prkfvsnggm10kk0yyqsyd2vk238zhvv3c9il300h8sk";
+          url = "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab";
+          sha256 = "1qydhnf94wgjlrgzydjcz31rr5f87pg3vlkkd0gynggw1ycgkkcg";
         };
       };
     };
@@ -135,20 +135,20 @@ let
     "doctrine/inflector" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "doctrine-inflector-f9301a5b2fb1216b2b08f02ba04dc45423db6bff";
+        name = "doctrine-inflector-5817d0659c5b50c9b950feb9af7b9668e2c436bc";
         src = fetchurl {
-          url = "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff";
-          sha256 = "1kdq3sbwrzwprxr36cdw9m1zlwn15c0nz6i7mw0sq9mhnd2sgbrb";
+          url = "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc";
+          sha256 = "0yj0f6w0v35d0xdhy4bf7hsjrkjjxsglc879rdciybsk6vz70g96";
         };
       };
     };
     "doctrine/lexer" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "doctrine-lexer-39ab8fcf5a51ce4b85ca97c7a7d033eb12831124";
+        name = "doctrine-lexer-861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6";
         src = fetchurl {
-          url = "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124";
-          sha256 = "19kak8fh8sf5bpmcn7a90sqikgx30mk2bmjf0jbzcvlbnsjyggah";
+          url = "https://api.github.com/repos/doctrine/lexer/zipball/861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6";
+          sha256 = "0q25i1d6nqkrj4yc35my6b51kn2nksddhddm13vkc7ilkkn20pg7";
         };
       };
     };
@@ -285,30 +285,30 @@ let
     "laravel/socialite" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "laravel-socialite-4f6a8af6f3f7c18da03d19842dd0514315501c10";
+        name = "laravel-socialite-7dae1b072573809f32ab6dcf4aebb57c8b3e8acf";
         src = fetchurl {
-          url = "https://api.github.com/repos/laravel/socialite/zipball/4f6a8af6f3f7c18da03d19842dd0514315501c10";
-          sha256 = "0329mzryfg198mgjb9k3ay5699mi4gz3i6dmaaxglar7gp0mlpvh";
+          url = "https://api.github.com/repos/laravel/socialite/zipball/7dae1b072573809f32ab6dcf4aebb57c8b3e8acf";
+          sha256 = "1jd65mk5hww4iq6xkky1dkmz8c06czlb466s4svg4vf1xhb9dxqj";
         };
       };
     };
     "laravel/tinker" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "laravel-tinker-b936d415b252b499e8c3b1f795cd4fc20f57e1f3";
+        name = "laravel-tinker-502e0fe3f0415d06d5db1f83a472f0f3b754bafe";
         src = fetchurl {
-          url = "https://api.github.com/repos/laravel/tinker/zipball/b936d415b252b499e8c3b1f795cd4fc20f57e1f3";
-          sha256 = "1vggdik2nby6a9avwgylgihhwyglm0mdwm703bwv7ilwx0dsx1i7";
+          url = "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe";
+          sha256 = "13l5lm6xz9qad3nmld8sjr4bznh82z8s4kr8kkd8d8a1ai6jd0aq";
         };
       };
     };
     "league/commonmark" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "league-commonmark-3669d6d5f7a47a93c08ddff335e6d945481a1dd5";
+        name = "league-commonmark-91c24291965bd6d7c46c46a12ba7492f83b1cadf";
         src = fetchurl {
-          url = "https://api.github.com/repos/thephpleague/commonmark/zipball/3669d6d5f7a47a93c08ddff335e6d945481a1dd5";
-          sha256 = "1rbaydy1n1c1schskbabzd4nx57nvwpnzqapsfxjm6kyihca1nr3";
+          url = "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf";
+          sha256 = "1i7yqcp4hdzz1k6qga96jwp9qpw7dxlfr5miw48zyym60ndk9n02";
         };
       };
     };
@@ -325,30 +325,30 @@ let
     "league/flysystem" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "league-flysystem-d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc";
+        name = "league-flysystem-b25a361508c407563b34fac6f64a8a17a8819675";
         src = fetchurl {
-          url = "https://api.github.com/repos/thephpleague/flysystem/zipball/d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc";
-          sha256 = "1xfgcslv66jid10yjjzp1chwv579xgaymlzkxiwfk5mh77fdfryi";
+          url = "https://api.github.com/repos/thephpleague/flysystem/zipball/b25a361508c407563b34fac6f64a8a17a8819675";
+          sha256 = "07fd3nqvs9wnl7wwlii3aaalpdldgf6agk2l1ihl3w253qyg8ynn";
         };
       };
     };
     "league/flysystem-aws-s3-v3" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "league-flysystem-aws-s3-v3-9808919ee5d819730d9582d4e1673e8d195c38d8";
+        name = "league-flysystem-aws-s3-v3-809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513";
         src = fetchurl {
-          url = "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/9808919ee5d819730d9582d4e1673e8d195c38d8";
-          sha256 = "1339ix4nqkk54bfnms18fz853s9ngsgjvkjdln1ff045m7dm4svi";
+          url = "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513";
+          sha256 = "0iv1n4y6w4pa2051wxvnkcap08jb86qgfx1hb6w8z5rngg67nz4d";
         };
       };
     };
     "league/flysystem-local" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "league-flysystem-local-5cf046ba5f059460e86a997c504dd781a39a109b";
+        name = "league-flysystem-local-b884d2bf9b53bb4804a56d2df4902bb51e253f00";
         src = fetchurl {
-          url = "https://api.github.com/repos/thephpleague/flysystem-local/zipball/5cf046ba5f059460e86a997c504dd781a39a109b";
-          sha256 = "0yr12z32plvpz70y8ravb9w80y583wkpsl1d0xhnglcka24aysdr";
+          url = "https://api.github.com/repos/thephpleague/flysystem-local/zipball/b884d2bf9b53bb4804a56d2df4902bb51e253f00";
+          sha256 = "1ggpc08rdaqk2wxkvklfi6l7nqzd6ch2dgf9icr1shfiv09l0mp6";
         };
       };
     };
@@ -365,10 +365,10 @@ let
     "league/mime-type-detection" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "league-mime-type-detection-b6a5854368533df0295c5761a0253656a2e52d9e";
+        name = "league-mime-type-detection-ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301";
         src = fetchurl {
-          url = "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/b6a5854368533df0295c5761a0253656a2e52d9e";
-          sha256 = "0bsqha9c0pyb5l78iiv1klrpqmhki6nh9x73pgnmh7sphh6ilygj";
+          url = "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301";
+          sha256 = "1yvjnqb6wv6kxfs21qw31yqcb653dz2xw9g646y2g9via33fxvpd";
         };
       };
     };
@@ -425,10 +425,10 @@ let
     "nesbot/carbon" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "nesbot-carbon-2b3b3db0a2d0556a177392ff1a3bf5608fa09f78";
+        name = "nesbot-carbon-0c6fd108360c562f6e4fd1dedb8233b423e91c83";
         src = fetchurl {
-          url = "https://api.github.com/repos/briannesbitt/Carbon/zipball/2b3b3db0a2d0556a177392ff1a3bf5608fa09f78";
-          sha256 = "1wf1kc2v6n68x04kf5dqf96ihkly4yb77bj09isp3yadsnhqy69d";
+          url = "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83";
+          sha256 = "1qwdzf2jgppj2r8jpxxd1q08aycyvj17azy2ixlw4cnmwhcqzgnh";
         };
       };
     };
@@ -445,20 +445,20 @@ let
     "nette/utils" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "nette-utils-a9d127dd6a203ce6d255b2e2db49759f7506e015";
+        name = "nette-utils-d3ad0aa3b9f934602cb3e3902ebccf10be34d218";
         src = fetchurl {
-          url = "https://api.github.com/repos/nette/utils/zipball/a9d127dd6a203ce6d255b2e2db49759f7506e015";
-          sha256 = "0py2072z0rmpzf1ylk7rf2k040lv3asnk2icf97qm384cjw9dzrp";
+          url = "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218";
+          sha256 = "11df93i9xkwkfq33hqf2x562a36sibzpc6rkbblz2r10mna6qw6q";
         };
       };
     };
     "nikic/php-parser" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "nikic-php-parser-1bcbb2179f97633e98bbbc87044ee2611c7d7999";
+        name = "nikic-php-parser-2218c2252c874a4624ab2f613d86ac32d227bc69";
         src = fetchurl {
-          url = "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999";
-          sha256 = "1all9j7b5cr87jjs2lam2s11kvygi9jkkc7fks43f9jf1sp2ybji";
+          url = "https://api.github.com/repos/nikic/PHP-Parser/zipball/2218c2252c874a4624ab2f613d86ac32d227bc69";
+          sha256 = "1dkil9kcp1abwa4nhpmy8my6srj70994mjh7wnhyw8yy084nf11z";
         };
       };
     };
@@ -505,20 +505,20 @@ let
     "phenx/php-font-lib" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "phenx-php-font-lib-dd448ad1ce34c63d09baccd05415e361300c35b4";
+        name = "phenx-php-font-lib-a1681e9793040740a405ac5b189275059e2a9863";
         src = fetchurl {
-          url = "https://api.github.com/repos/dompdf/php-font-lib/zipball/dd448ad1ce34c63d09baccd05415e361300c35b4";
-          sha256 = "0l20inbvipjdg9fdd32v8b7agjyvcs0rpqswcylld64vbm2sf3il";
+          url = "https://api.github.com/repos/dompdf/php-font-lib/zipball/a1681e9793040740a405ac5b189275059e2a9863";
+          sha256 = "0xb28w943pg0xb5mmm2jd74vr14k2lwh40azpfv0p4ghfg16v3jp";
         };
       };
     };
     "phenx/php-svg-lib" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "phenx-php-svg-lib-8a8a1ebcf6aea861ef30197999f096f7bd4b4456";
+        name = "phenx-php-svg-lib-732faa9fb4309221e2bd9b2fda5de44f947133aa";
         src = fetchurl {
-          url = "https://api.github.com/repos/dompdf/php-svg-lib/zipball/8a8a1ebcf6aea861ef30197999f096f7bd4b4456";
-          sha256 = "14iq5594y19dl5sr1f0zqvpg6fkv4hifb9y5i97phhplyprfdh7g";
+          url = "https://api.github.com/repos/dompdf/php-svg-lib/zipball/732faa9fb4309221e2bd9b2fda5de44f947133aa";
+          sha256 = "0hjf562cm8mvb36c2s63bh5104j6m5c27lwd4pgj3lwmq6mpzns6";
         };
       };
     };
@@ -535,10 +535,10 @@ let
     "phpseclib/phpseclib" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "phpseclib-phpseclib-56c79f16a6ae17e42089c06a2144467acc35348a";
+        name = "phpseclib-phpseclib-c2fb5136162d4be18fdd4da9980696f3aee96d7b";
         src = fetchurl {
-          url = "https://api.github.com/repos/phpseclib/phpseclib/zipball/56c79f16a6ae17e42089c06a2144467acc35348a";
-          sha256 = "0xmv35m6fsw7rfaxs82ky0wgj3gsnp7qw0sjgkig2cw10anfs0gq";
+          url = "https://api.github.com/repos/phpseclib/phpseclib/zipball/c2fb5136162d4be18fdd4da9980696f3aee96d7b";
+          sha256 = "1n13c34w27vkrjz87vq7dxzz1xi0vj7xzj5slibdm1wfpvbsbg2m";
         };
       };
     };
@@ -655,10 +655,10 @@ let
     "psy/psysh" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "psy-psysh-128fa1b608be651999ed9789c95e6e2a31b5802b";
+        name = "psy-psysh-750bf031a48fd07c673dbe3f11f72362ea306d0d";
         src = fetchurl {
-          url = "https://api.github.com/repos/bobthecow/psysh/zipball/128fa1b608be651999ed9789c95e6e2a31b5802b";
-          sha256 = "0lrmqw53kzgdldxiy2aj0dawdzz5cbsxqz9p47ca3c0ggnszlk1p";
+          url = "https://api.github.com/repos/bobthecow/psysh/zipball/750bf031a48fd07c673dbe3f11f72362ea306d0d";
+          sha256 = "0kcs6g31v6k760dwapdbx34vqliispf8dhwrjjgrv34ysfbwrgvc";
         };
       };
     };
@@ -705,10 +705,10 @@ let
     "sabberworm/php-css-parser" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "sabberworm-php-css-parser-e41d2140031d533348b2192a83f02d8dd8a71d30";
+        name = "sabberworm-php-css-parser-4a3d572b0f8b28bb6fd016ae8bbfc445facef152";
         src = fetchurl {
-          url = "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/e41d2140031d533348b2192a83f02d8dd8a71d30";
-          sha256 = "0slqh0ra9cwk1pm4q7bqhndynir0yxypzrxb2vrfzfkmnh0rm02c";
+          url = "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/4a3d572b0f8b28bb6fd016ae8bbfc445facef152";
+          sha256 = "1gs3q8j70ccwa2s3icf936xxik8h3qi5plkpvw4ygzkb9vkcicdv";
         };
       };
     };
@@ -735,10 +735,10 @@ let
     "socialiteproviders/manager" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "socialiteproviders-manager-df5e45b53d918ec3d689f014d98a6c838b98ed96";
+        name = "socialiteproviders-manager-a67f194f0f4c4c7616c549afc697b78df9658d44";
         src = fetchurl {
-          url = "https://api.github.com/repos/SocialiteProviders/Manager/zipball/df5e45b53d918ec3d689f014d98a6c838b98ed96";
-          sha256 = "0hzgj5p3cdi4mxrnq3c20yyjr4c1hnqnz8d2440s308a4wahz33z";
+          url = "https://api.github.com/repos/SocialiteProviders/Manager/zipball/a67f194f0f4c4c7616c549afc697b78df9658d44";
+          sha256 = "0r5c6q7dm02hnk574br5mrm1z8amrxjxcbf4n94l02vq9din2c0m";
         };
       };
     };
@@ -895,90 +895,90 @@ let
     "symfony/polyfill-ctype" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-ctype-ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb";
+        name = "symfony-polyfill-ctype-ef4d7e442ca910c4764bce785146269b30cb5fc4";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb";
-          sha256 = "0ynkrpl3hb448dhab1injwwzfx68l75yn9zgc7lgqwbx60dvhqm3";
+          url = "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4";
+          sha256 = "16wr6dp9yr4wks11d1qjyzpc343ri2nr7q7fmrnp3jhmp949rppy";
         };
       };
     };
     "symfony/polyfill-intl-grapheme" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-intl-grapheme-875e90aeea2777b6f135677f618529449334a612";
+        name = "symfony-polyfill-intl-grapheme-32a9da87d7b3245e09ac426c83d334ae9f06f80f";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612";
-          sha256 = "19j8qcbp525q7i61c2lhj6z2diysz45q06d990fvjby15cn0id0i";
+          url = "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f";
+          sha256 = "03wk7yxavld4jnvavy7m2d3xxn5h4938wypgwjkblgx8n7s93jiq";
         };
       };
     };
     "symfony/polyfill-intl-idn" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-intl-idn-ecaafce9f77234a6a449d29e49267ba10499116d";
+        name = "symfony-polyfill-intl-idn-a287ed7475f85bf6f61890146edbc932c0fff919";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d";
-          sha256 = "0f42w4975rakhysnmhsyw6n3rjg6rjg7b7x8gs1n0qfdb6wc8m3q";
+          url = "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919";
+          sha256 = "14x9hv01fn5dmpkm7480lgzhz4lqdi3w1hlkh3sjpb6ic87k0wc1";
         };
       };
     };
     "symfony/polyfill-intl-normalizer" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-intl-normalizer-8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92";
+        name = "symfony-polyfill-intl-normalizer-bc45c394692b948b4d383a08d7753968bed9a83d";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92";
-          sha256 = "0msah2ii2174xh47v5x9vq1b1xn38yyx03sr3pa2rq3a849wi7nh";
+          url = "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d";
+          sha256 = "1zq1kklvjl4zj2v6yjzg7rv6ibvhxfymgi2xb0m5cw9r6i63rinw";
         };
       };
     };
     "symfony/polyfill-mbstring" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-mbstring-42292d99c55abe617799667f454222c54c60e229";
+        name = "symfony-polyfill-mbstring-9773676c8a1bb1f8d4340a62efe641cf76eda7ec";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229";
-          sha256 = "1m3l12y0lid3i0zy3m1jrk0z3zy8wpa7nij85zk2h5vbf924jnwa";
+          url = "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec";
+          sha256 = "1jpa4wwjfdkkhdpisviy1p4fhik00cldj5msipwl0izkia1d2qgf";
         };
       };
     };
     "symfony/polyfill-php72" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-php72-70f4aebd92afca2f865444d30a4d2151c13c3179";
+        name = "symfony-polyfill-php72-861391a8da9a04cbad2d232ddd9e4893220d6e25";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179";
-          sha256 = "10j5ipx16p6rybkpawqscpr2wcnby4270rbdj1qchr598wkvi0kb";
+          url = "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25";
+          sha256 = "0b4nw7x6c7jjn9bvkpqjnpszx647lncyswpk2iz57c1xl5dqywvh";
         };
       };
     };
     "symfony/polyfill-php80" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-php80-6caa57379c4aec19c0a12a38b59b26487dcfe4b5";
+        name = "symfony-polyfill-php80-87b68208d5c1188808dd7839ee1e6c8ec3b02f1b";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5";
-          sha256 = "05yfindyip9lbfr5apxkz6m0mlljrc9z6qylpxr6k5nkivlrcn9x";
+          url = "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b";
+          sha256 = "1pn6dzj8b3h8851w3y6mj5qrwklwky5w71v4m455553qlga5cfr7";
         };
       };
     };
     "symfony/polyfill-php81" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-php81-7581cd600fa9fd681b797d00b02f068e2f13263b";
+        name = "symfony-polyfill-php81-c565ad1e63f30e7477fc40738343c62b40bc672d";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b";
-          sha256 = "0ngi5nhnbj4yycnf6yw628vmr7h6dhxxh7jawyp6gq7bzs94g2dy";
+          url = "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d";
+          sha256 = "0xy6jjnqvc6v1s7wvdm1yplblpbh43ilis93vjrlv7hc7i6ygfzg";
         };
       };
     };
     "symfony/polyfill-uuid" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-polyfill-uuid-9c44518a5aff8da565c8a55dbe85d2769e6f630e";
+        name = "symfony-polyfill-uuid-3abdd21b0ceaa3000ee950097bc3cf9efc137853";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/polyfill-uuid/zipball/9c44518a5aff8da565c8a55dbe85d2769e6f630e";
-          sha256 = "0w6mphwcz3n1qz0dc6nld5xqb179dvfcwys6r4nj4gjv5nm2nji0";
+          url = "https://api.github.com/repos/symfony/polyfill-uuid/zipball/3abdd21b0ceaa3000ee950097bc3cf9efc137853";
+          sha256 = "15g5ng1bcca4nqxjrcjabc1v679zl6xwm1wwfngvww1hvrbgd98d";
         };
       };
     };
diff --git a/nixpkgs/pkgs/servers/web-apps/changedetection-io/default.nix b/nixpkgs/pkgs/servers/web-apps/changedetection-io/default.nix
index b9156d2e5b7d..4d058e916ab7 100644
--- a/nixpkgs/pkgs/servers/web-apps/changedetection-io/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/changedetection-io/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "changedetection-io";
-  version = "0.45.14";
+  version = "0.45.16";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "dgtlmoon";
     repo = "changedetection.io";
     rev = version;
-    hash = "sha256-O+kWivVc/FZmIDjOE/fsUccrOyHrQ8GakjulEnm4w88=";
+    hash = "sha256-ln522U3XqZfhvLvMEzrqXV3SjhpgnrRk2MxQQRBL5VU=";
   };
 
   postPatch = ''
@@ -37,6 +37,7 @@ python3.pkgs.buildPythonApplication rec {
     feedgen
     flask
     flask-compress
+    flask-cors
     flask-expects-json
     flask-login
     flask-paginate
@@ -52,6 +53,8 @@ python3.pkgs.buildPythonApplication rec {
     paho-mqtt
     pillow
     playwright
+    pyee
+    pyppeteer
     pytz
     requests
     selenium
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/default.nix
index 320eac3bc8ce..b1e24720450e 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/default.nix
@@ -13,7 +13,6 @@
 , gzip
 , gnutar
 , git
-, esbuild
 , cacert
 , util-linux
 , gawk
@@ -47,13 +46,13 @@
 }@args:
 
 let
-  version = "3.2.0.beta1";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse";
     rev = "v${version}";
-    sha256 = "sha256-HVjt5rsLSuyOaQxkbiTrsYsSXj3oSWjke98QVp+tEqk=";
+    sha256 = "sha256-Iv7VSnK8nZDpmIwIRPedSWlftABKuMOQ4MXDGpjuWrY=";
   };
 
   ruby = ruby_3_2;
@@ -66,7 +65,6 @@ let
     gnutar
     git
     brotli
-    esbuild
 
     # Misc required system utils
     which
@@ -188,7 +186,7 @@ let
             # available for aarch64. It has to be called
             # libpsl.x86_64.so or it isn't found.
             postPatch = ''
-              cp $(readlink -f ${libpsl}/lib/libpsl.so) vendor/libpsl.x86_64.so
+              cp $(readlink -f ${lib.getLib libpsl}/lib/libpsl.so) vendor/libpsl.x86_64.so
             '';
           };
         };
@@ -204,7 +202,7 @@ let
 
     yarnOfflineCache = fetchYarnDeps {
       yarnLock = src + "/app/assets/javascripts/yarn.lock";
-      sha256 = "070h66zp8kmsigbrkh5d3jzbzvllzhbx0fa2yzx5lbpgnjhih3p2";
+      sha256 = "0sclrv3303dgg3r08dwhd1yvi3pvlnvnikn300vjsh6c71fnzhnj";
     };
 
     nativeBuildInputs = runtimeDeps ++ [
@@ -217,7 +215,6 @@ let
       nodejs_18
       jq
       moreutils
-      esbuild
     ];
 
     outputs = [ "out" "javascripts" ];
@@ -241,12 +238,6 @@ let
       # hasn't been `patchShebangs`-ed yet. So instead we just use
       # `patch-package` from `nativeBuildInputs`.
       ./asserts_patch-package_from_path.patch
-
-      # `lib/discourse_js_processor.rb`
-      # tries to call `../node_modules/.bin/esbuild`, which
-      # hasn't been `patchShebangs`-ed yet. So instead we just use
-      # `esbuild` from `nativeBuildInputs`.
-      ./assets_esbuild_from_path.patch
     ];
 
     # We have to set up an environment that is close enough to
@@ -279,7 +270,6 @@ let
       popd &>/dev/null
 
       redis-server >/dev/null &
-      REDIS_PID=$!
 
       initdb -A trust $NIX_BUILD_TOP/postgres >/dev/null
       postgres -D $NIX_BUILD_TOP/postgres -k $NIX_BUILD_TOP >/dev/null &
@@ -305,8 +295,6 @@ let
 
       bundle exec rake db:migrate >/dev/null
       chmod -R +w tmp
-
-      kill $REDIS_PID
     '';
 
     buildPhase = ''
@@ -363,12 +351,6 @@ let
 
       # Make sure the notification email setting applies
       ./notification_email.patch
-
-      # `lib/discourse_js_processor.rb`
-      # tries to call `../node_modules/.bin/esbuild`, which
-      # hasn't been `patchShebangs`-ed yet. So instead we just use
-      # `esbuild` from `nativeBuildInputs`.
-      ./assets_esbuild_from_path.patch
     ];
 
     postPatch = ''
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
index b25bd428f69b..68cd69dcc3a6 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-assign";
-    rev = "e9c7cb5c3f90109bc47223b0aa4054d681e9cc04";
-    sha256 = "sha256-w1h1dCSyOml+AT7lPKENYfawm6BU2De5CyBHrDnDcrM=";
+    rev = "0cbf10b8055370445bd36536e51986bf48bdc57e";
+    sha256 = "sha256-7rJ2zQo1nCHwtVuLJUmdj66Ky2bi4Cpo+22H3DbO1uo=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-docs";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
index eacdc099f123..266c43e4f8e2 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-bbcode-color";
-    rev = "79ed22b3a3352adbd20f7e2222b9dbdb9fbaf7fe";
-    sha256 = "sha256-AHgny9BW/ssmv0U2lwzVWgYKPsvWHD6kgU3mBMFX4Aw=";
+    rev = "35aab2e9b92f8b01633d374ea999e7fd59d020d7";
+    sha256 = "sha256-DHckx921EeQysm1UPloCrt43BJetTnZKnTbJGk15NMs=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-bbcode-color";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
index 586a58d3d626..183ead8d51d4 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
@@ -22,4 +22,4 @@ DEPENDENCIES
   rrule (= 0.4.4)
 
 BUNDLED WITH
-   2.4.17
+   2.4.13
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
index 9fc5779fc74c..7a6bd7f69270 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-calendar";
-    rev = "4d4fe40d09f7232b1348e1ff910b37b2cec0835d";
-    sha256 = "sha256-w1sqE3KxwrE8SWqZUtPVhjITOPFXwlj4iPyPZeSfvtI=";
+    rev = "afc2ee684de41601d6cecc46713d139760f176a6";
+    sha256 = "sha256-rTQWO+E/Jg4zjZDYDvBrDQsox5q4dHkdQjwnJxgv3dI=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-calendar";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
index 9f4cb186dd66..499d2e6447bd 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-chat-integration";
-    rev = "4f9ccb58cae8600dcb6db84f38f235283911e6e8";
-    sha256 = "sha256-Em9aAwAfUoqsOHLrqNhxUQXsO4Owydf9nhCHbBaqqpg=";
+    rev = "70fea6b66b68868aa4c00b45a169436deaa142a8";
+    sha256 = "sha256-K9MmP1F0B6Na2dTqgnsjMbTQFkF+nNKkI8aF3zPAodc=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-chat-integration";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
index 881fade4ea95..39320637ddcd 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-data-explorer";
-    rev = "06193f27ef15828479eea61ae4a80bf59806a535";
-    sha256 = "sha256-afjqgi2gzRpbZt5K9yXPy4BJ5qRv7A4ZkXHX85+Cv7s=";
+    rev = "e4f8d3924a18b303c2bb7da9472cf0c060060e4e";
+    sha256 = "sha256-K+GPszO3je6NmnhIRSqSEhylUK5oEByaS0bLfAGjvB4=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-data-explorer";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
index 4f458cd4ce63..3dcd2b86a969 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-docs";
-    rev = "89c7274b1a730edefd1b56c13b8c04305d4ef331";
-    sha256 = "sha256-j3zrGmoAvbSHFnbiUfetyfiQJebrtW3Iw5GvsRRq1kk=";
+    rev = "a4b203274b88c5277d0b5b936de0bc0e0016726c";
+    sha256 = "sha256-R+VP/gsb2Oa6lPVMhRoGZzOBx5C7kRSxqwYpWE10GHw=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-docs";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
index f12130e24066..3640cbc601da 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
@@ -3,9 +3,7 @@ GEM
   specs:
     addressable (2.8.5)
       public_suffix (>= 2.0.2, < 6.0)
-    base64 (0.1.1)
-    faraday (2.7.11)
-      base64
+    faraday (2.7.10)
       faraday-net_http (>= 2.0, < 3.1)
       ruby2_keywords (>= 0.0.4)
     faraday-net_http (3.0.2)
@@ -26,4 +24,4 @@ DEPENDENCIES
   sawyer (= 0.9.2)
 
 BUNDLED WITH
-   2.4.17
+   2.4.13
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
index f5967cde115a..50a59136ecf5 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-github";
-    rev = "21fa5c97ca23b4c39aef5ab9c4f8ebb22f19a19b";
-    sha256 = "sha256-0Teu6nMJWAT9TCjZ0RWZKtfsUKAS1cga5DvALIvrUyY=";
+    rev = "8aa068d56ef010cecaabd50657e7753f4bbecc1f";
+    sha256 = "sha256-WzljuGvv6pki3ROkvhXZWQaq5D9JkCbWjdlkdRI8lHE=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-github";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
index 7410f0ca0d20..87599999d894 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
@@ -10,26 +10,16 @@
     };
     version = "2.8.5";
   };
-  base64 = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0cydk9p2cv25qysm0sn2pb97fcpz1isa7n3c8xm1gd99li8x6x8c";
-      type = "gem";
-    };
-    version = "0.1.1";
-  };
   faraday = {
-    dependencies = ["base64" "faraday-net_http" "ruby2_keywords"];
+    dependencies = ["faraday-net_http" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vn7jwss2v6jhnxvjsiwbs3irjwhbx9zxn4l6fhd4rkcfyxzdnw5";
+      sha256 = "187clqhp9mv5mnqmjlfdp57svhsg1bggz84ak8v333j9skrnrgh9";
       type = "gem";
     };
-    version = "2.7.11";
+    version = "2.7.10";
   };
   faraday-net_http = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
index da8ff6f32f4a..3a07b4bfd342 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-math";
-    rev = "66d522cd8e4cf98547f083c4decdc64c688767de";
-    sha256 = "sha256-Zil6LWl6ACyP/ZkxNli1u9/3dlHFRETtmIov1BmQ3u4=";
+    rev = "529ad1fe6da924da378a60bec48c35657bb01a68";
+    sha256 = "sha256-zhtAy0tTVMzQfPilTwfyyzxgCJD4xazOITBuliFR5Gg=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-math";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
index 5f64d52e55b2..a467f4d17b39 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-openid-connect";
-    rev = "322bf50700840b327d9a52091fedbacc0bb1edfe";
-    sha256 = "sha256-8WMhlKHYVm2wHbkP7b8dhOosvwDNjHqTrEziQT1Bu/4=";
+    rev = "b1df541ad29f6f6098a1008b83393b2d400986ed";
+    sha256 = "sha256-afRd/9M0nQGkS14Q8BJhcJwMCkOku3Fr0uHxcRl44vQ=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-openid-connect";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
index 29f66df12c80..88a3a3c8d654 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
@@ -13,4 +13,4 @@ DEPENDENCIES
   webrick (= 1.7.0)
 
 BUNDLED WITH
-   2.4.17
+   2.4.13
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
index 7ce27877cd96..95bf4c5a679a 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
@@ -6,8 +6,8 @@
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-prometheus";
-    rev = "305610c90079556cdfa2aa09b567a6ca10d11de5";
-    sha256 = "sha256-dz+/2pbbhs8sxYMxe/wAjvdxoU4ihjN95A4ngP0KzQg=";
+    rev = "8a7a46a80cc65aa0839bc5e3c3b6f8ef6544089f";
+    sha256 = "sha256-TL+pbP26LvRMKdy8CAuBEK+LZfAs8HfggMeUDaBu9hc=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
index f91ad047201b..36e4ac19c4bd 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-reactions";
-    rev = "f04f077e9f0392ca2373ca001044069d650ae6e5";
-    sha256 = "sha256-HuFXgfd5HO7qfVlf1RHxenlNL10YRF5OYya4Yt6eS14=";
+    rev = "643f807a3a2195f08211064301f0350d9f51604f";
+    sha256 = "sha256-4FdiYUNysSuOJ664G3YvlUHx/J7MLUS3kVBdXT47oEw=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-reactions";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
index b091884bb511..32709666189e 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-saved-searches";
-    rev = "1b90d26cc35bd049d0ab7ea3922f7db6ac7ec017";
-    sha256 = "sha256-d+zbm8UAZ/ow8o1Y5mWAyjg5JCvQ761jcGcO72tHEIs=";
+    rev = "7c9bdcd68951e7cef16cafe3c4bfb583bb994d2a";
+    sha256 = "sha256-6RIN12ACDCeRcxmsC3FgeIPdvovI4arn7w/Dqil1yCI=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-saved-searches";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
index 26939adc4ec7..ed47f9e15e92 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-solved";
-    rev = "3b9ecc69c6a25b7671c42842b8a6f3872873f537";
-    sha256 = "sha256-gtG+v25jJ0DiYlU2vatreGj13yrb5WWRTvxlcDdAibw=";
+    rev = "b5d487d6a5bfe2571d936eec5911d02a5f3fcc32";
+    sha256 = "sha256-Tt7B9PcsV8E7B+m8GnJw+MBz9rGYtojKt6NjBFMQvOM=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-solved";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
index a8a0f7975654..23ce34dcd694 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-spoiler-alert";
-    rev = "b57e79343acc15cb2c0a032a2deb29ad4b9d53cc";
-    sha256 = "sha256-Ypt6PYCZzArCv9KkCtw5rfT6++dDoUx5q9m/eMvP0Sc=";
+    rev = "65989714af08eda44196cca3a0afe85c9e9443f9";
+    sha256 = "sha256-R/vqNEDst50+Y7anckIvhy4viBOqBemIZMh4sPt7kRM=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-spoiler-alert";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
index 5922bcca2cbb..a311dbcfbfcf 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-voting";
-    rev = "83ab47f3186694039c6850ac3e230443e05d37c5";
-    sha256 = "sha256-2sSBLSSPddxXqvEukDn8tzLVOOWoPBA+C8N5jVccCjA=";
+    rev = "6449fc15658d972e20086a3f1fae3dbac9cd9eeb";
+    sha256 = "sha256-f04LpVeodCVEB/t5Ic2dketp542Nrc0rZWbQ6hrC22g=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-voting";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
index c3ad1c7ef548..979398f7394b 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-yearly-review";
-    rev = "47014a8ecb96da8d45d0fe141a069010161b3087";
-    sha256 = "sha256-9OIgxRdQoYH19vb7GcTt8MxVM5N4JPzmMIsg7FQOjJs=";
+    rev = "3246c6b378f9e69e664c575efc63c2ad83bcac2f";
+    sha256 = "sha256-usHHyfYP4YAQ94f7gvNSH7VBRRkdZMmsSi9QQM8tPfY=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-yearly-review";
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
index 649c1df5815a..647aefea8ada 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
@@ -18,7 +18,7 @@ else
   # this allows us to include the bits of rails we use without pieces we do not.
   #
   # To issue a rails update bump the version number here
-  rails_version = "7.0.7"
+  rails_version = "7.0.5.1"
   gem "actionmailer", rails_version
   gem "actionpack", rails_version
   gem "actionview", rails_version
@@ -141,10 +141,10 @@ group :test do
   gem "fakeweb", require: false
   gem "minitest", require: false
   gem "simplecov", require: false
-  gem "selenium-webdriver", "~> 4.11", require: false
+  gem "selenium-webdriver", require: false
   gem "test-prof"
+  gem "webdrivers", require: false
   gem "rails-dom-testing", require: false
-  gem "minio_runner", require: false
 end
 
 group :test, :development do
@@ -259,11 +259,6 @@ if ENV["IMPORT"] == "1"
   gem "parallel", require: false
 end
 
-if ENV["GENERIC_IMPORT"] == "1"
-  gem "sqlite3"
-  gem "redcarpet"
-end
-
 gem "web-push"
 gem "colored2", require: false
 gem "maxminddb"
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
index 685bdbd8a5e2..0b93bf23d097 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
@@ -9,7 +9,7 @@ GIT
 
 GIT
   remote: https://github.com/thoughtbot/shoulda-matchers.git
-  revision: 68f76ce13e9892339f90c4928339dfd769cfa613
+  revision: 783a90554053002017510285bc736099b2749c22
   specs:
     shoulda-matchers (5.3.0)
       activesupport (>= 5.2.0)
@@ -17,47 +17,47 @@ GIT
 GEM
   remote: https://rubygems.org/
   specs:
-    actionmailer (7.0.7)
-      actionpack (= 7.0.7)
-      actionview (= 7.0.7)
-      activejob (= 7.0.7)
-      activesupport (= 7.0.7)
+    actionmailer (7.0.5.1)
+      actionpack (= 7.0.5.1)
+      actionview (= 7.0.5.1)
+      activejob (= 7.0.5.1)
+      activesupport (= 7.0.5.1)
       mail (~> 2.5, >= 2.5.4)
       net-imap
       net-pop
       net-smtp
       rails-dom-testing (~> 2.0)
-    actionpack (7.0.7)
-      actionview (= 7.0.7)
-      activesupport (= 7.0.7)
+    actionpack (7.0.5.1)
+      actionview (= 7.0.5.1)
+      activesupport (= 7.0.5.1)
       rack (~> 2.0, >= 2.2.4)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (7.0.7)
-      activesupport (= 7.0.7)
+    actionview (7.0.5.1)
+      activesupport (= 7.0.5.1)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    actionview_precompiler (0.3.0)
+    actionview_precompiler (0.2.3)
       actionview (>= 6.0.a)
     active_model_serializers (0.8.4)
       activemodel (>= 3.0)
-    activejob (7.0.7)
-      activesupport (= 7.0.7)
+    activejob (7.0.5.1)
+      activesupport (= 7.0.5.1)
       globalid (>= 0.3.6)
-    activemodel (7.0.7)
-      activesupport (= 7.0.7)
-    activerecord (7.0.7)
-      activemodel (= 7.0.7)
-      activesupport (= 7.0.7)
-    activesupport (7.0.7)
+    activemodel (7.0.5.1)
+      activesupport (= 7.0.5.1)
+    activerecord (7.0.5.1)
+      activemodel (= 7.0.5.1)
+      activesupport (= 7.0.5.1)
+    activesupport (7.0.5.1)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
       tzinfo (~> 2.0)
-    addressable (2.8.5)
+    addressable (2.8.4)
       public_suffix (>= 2.0.2, < 6.0)
     annotate (3.2.0)
       activerecord (>= 3.2, < 8.0)
@@ -82,7 +82,6 @@ GEM
       aws-sigv4 (~> 1.1)
     aws-sigv4 (1.5.0)
       aws-eventstream (~> 1, >= 1.0.2)
-    base64 (0.1.1)
     better_errors (2.10.1)
       erubi (>= 1.0.0)
       rack (>= 0.9.0)
@@ -110,7 +109,7 @@ GEM
     cgi (0.3.6)
     chunky_png (1.4.0)
     coderay (1.1.3)
-    colored2 (4.0.0)
+    colored2 (3.1.2)
     concurrent-ruby (1.2.2)
     connection_pool (2.4.1)
     cose (1.3.0)
@@ -120,7 +119,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    css_parser (1.16.0)
+    css_parser (1.14.0)
       addressable
     dartsass-ruby (3.0.1)
       sass-embedded (~> 1.54)
@@ -145,8 +144,8 @@ GEM
     docile (1.4.0)
     email_reply_trimmer (0.1.13)
     erubi (1.12.0)
-    excon (0.102.0)
-    execjs (2.9.0)
+    excon (0.100.0)
+    execjs (2.8.1)
     exifr (1.4.0)
     fabrication (2.30.0)
     faker (2.23.0)
@@ -164,9 +163,9 @@ GEM
     ffi (1.15.5)
     fspath (3.1.2)
     gc_tracer (1.5.1)
-    globalid (1.2.1)
-      activesupport (>= 6.1)
-    google-protobuf (3.24.3)
+    globalid (1.1.0)
+      activesupport (>= 5.0)
+    google-protobuf (3.23.4)
     guess_html_encoding (0.0.11)
     hana (1.3.7)
     hashdiff (1.0.1)
@@ -189,7 +188,7 @@ GEM
     json (2.6.3)
     json-schema (3.0.0)
       addressable (>= 2.8)
-    json_schemer (2.0.0)
+    json_schemer (1.0.3)
       hana (~> 1.3)
       regexp_parser (~> 2.0)
       simpleidn (~> 0.2)
@@ -223,20 +222,19 @@ GEM
     matrix (0.4.2)
     maxminddb (0.1.22)
     memory_profiler (1.0.1)
-    message_bus (4.3.8)
+    message_bus (4.3.7)
       rack (>= 1.1.3)
     method_source (1.0.0)
-    mini_mime (1.1.5)
+    mini_mime (1.1.2)
     mini_portile2 (2.8.4)
     mini_racer (0.8.0)
       libv8-node (~> 18.16.0.0)
     mini_scheduler (0.16.0)
       sidekiq (>= 4.2.3, < 7.0)
-    mini_sql (1.5.0)
+    mini_sql (1.4.0)
     mini_suffix (0.3.3)
       ffi (~> 1.9)
-    minio_runner (0.1.1)
-    minitest (5.20.0)
+    minitest (5.19.0)
     mocha (2.1.0)
       ruby2_keywords (>= 0.0.5)
     msgpack (1.7.2)
@@ -255,7 +253,7 @@ GEM
     net-smtp (0.3.3)
       net-protocol
     nio4r (2.5.9)
-    nokogiri (1.15.4)
+    nokogiri (1.15.3)
       mini_portile2 (~> 2.8.2)
       racc (~> 1.4)
     oauth (1.1.0)
@@ -270,7 +268,7 @@ GEM
       multi_json (~> 1.3)
       multi_xml (~> 0.5)
       rack (>= 1.2, < 4)
-    oj (3.16.1)
+    oj (3.15.1)
     omniauth (1.9.2)
       hashie (>= 3.4.6)
       rack (>= 1.6.2, < 3)
@@ -298,7 +296,7 @@ GEM
       openssl (> 2.0)
     optimist (3.1.0)
     parallel (1.23.0)
-    parallel_tests (4.2.2)
+    parallel_tests (4.2.1)
       parallel
     parser (3.2.2.3)
       ast (~> 2.4.1)
@@ -315,17 +313,17 @@ GEM
     pry-rails (0.3.9)
       pry (>= 0.10.4)
     public_suffix (5.0.3)
-    puma (6.3.1)
+    puma (6.3.0)
       nio4r (~> 2.0)
     racc (1.7.1)
     rack (2.2.8)
-    rack-mini-profiler (3.1.1)
+    rack-mini-profiler (3.1.0)
       rack (>= 1.2.0)
-    rack-protection (3.1.0)
-      rack (~> 2.2, >= 2.2.4)
+    rack-protection (3.0.6)
+      rack
     rack-test (2.1.0)
       rack (>= 1.3)
-    rails-dom-testing (2.2.0)
+    rails-dom-testing (2.1.1)
       activesupport (>= 5.0.0)
       minitest
       nokogiri (>= 1.6)
@@ -339,9 +337,9 @@ GEM
     rails_multisite (5.0.0)
       activerecord (>= 6.0)
       railties (>= 6.0)
-    railties (7.0.7)
-      actionpack (= 7.0.7)
-      activesupport (= 7.0.7)
+    railties (7.0.5.1)
+      actionpack (= 7.0.5.1)
+      activesupport (= 7.0.5.1)
       method_source
       rake (>= 12.2)
       thor (~> 1.0)
@@ -365,7 +363,7 @@ GEM
       rack (>= 1.4)
     rexml (3.2.6)
     rinku (2.0.6)
-    rotp (6.3.0)
+    rotp (6.2.2)
     rouge (4.1.3)
     rqrcode (2.2.0)
       chunky_png (~> 1.0)
@@ -395,7 +393,7 @@ GEM
       rspec-mocks (~> 3.12)
       rspec-support (~> 3.12)
     rspec-support (3.12.1)
-    rss (0.3.0)
+    rss (0.2.9)
       rexml
     rswag-specs (2.10.1)
       activesupport (>= 3.1, < 7.1)
@@ -404,8 +402,7 @@ GEM
       rspec-core (>= 2.14)
     rtlcss (0.2.1)
       mini_racer (>= 0.6.3)
-    rubocop (1.56.3)
-      base64 (~> 0.1.1)
+    rubocop (1.55.1)
       json (~> 2.3)
       language_server-protocol (>= 3.17.0)
       parallel (~> 1.10)
@@ -425,7 +422,7 @@ GEM
       rubocop-rspec (>= 2.0.0)
     rubocop-factory_bot (2.23.1)
       rubocop (~> 1.33)
-    rubocop-rspec (2.23.2)
+    rubocop-rspec (2.23.0)
       rubocop (~> 1.33)
       rubocop-capybara (~> 2.17)
       rubocop-factory_bot (~> 2.22)
@@ -439,10 +436,10 @@ GEM
     sanitize (6.0.2)
       crass (~> 1.0.2)
       nokogiri (>= 1.12.0)
-    sass-embedded (1.66.1)
+    sass-embedded (1.64.1)
       google-protobuf (~> 3.23)
       rake (>= 13.0.0)
-    selenium-webdriver (4.12.0)
+    selenium-webdriver (4.10.0)
       rexml (~> 3.2, >= 3.2.5)
       rubyzip (>= 1.2.2, < 3.0)
       websocket (~> 1.0)
@@ -465,7 +462,7 @@ GEM
       actionpack (>= 5.2)
       activesupport (>= 5.2)
       sprockets (>= 3.0.0)
-    sshkey (3.0.0)
+    sshkey (2.0.0)
     stackprof (0.2.25)
     syntax_tree (6.1.1)
       prettier_print (>= 1.2.0)
@@ -494,7 +491,11 @@ GEM
       hkdf (~> 1.0)
       jwt (~> 2.0)
       openssl (~> 3.0)
-    webmock (3.19.1)
+    webdrivers (5.3.1)
+      nokogiri (~> 1.6)
+      rubyzip (>= 1.3.0)
+      selenium-webdriver (~> 4.0, < 4.11)
+    webmock (3.18.1)
       addressable (>= 2.8.0)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
@@ -503,20 +504,20 @@ GEM
       nokogiri (~> 1.8)
     yaml-lint (0.1.2)
     yard (0.9.34)
-    zeitwerk (2.6.11)
+    zeitwerk (2.6.10)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  actionmailer (= 7.0.7)
-  actionpack (= 7.0.7)
-  actionview (= 7.0.7)
+  actionmailer (= 7.0.5.1)
+  actionpack (= 7.0.5.1)
+  actionview (= 7.0.5.1)
   actionview_precompiler
   active_model_serializers (~> 0.8.3)
-  activemodel (= 7.0.7)
-  activerecord (= 7.0.7)
-  activesupport (= 7.0.7)
+  activemodel (= 7.0.5.1)
+  activerecord (= 7.0.5.1)
+  activesupport (= 7.0.5.1)
   addressable
   annotate
   aws-sdk-s3
@@ -576,7 +577,6 @@ DEPENDENCIES
   mini_scheduler
   mini_sql
   mini_suffix
-  minio_runner
   minitest
   mocha
   multi_json
@@ -604,7 +604,7 @@ DEPENDENCIES
   rails-dom-testing
   rails_failover
   rails_multisite
-  railties (= 7.0.7)
+  railties (= 7.0.5.1)
   rake
   rb-fsevent
   rbtrace
@@ -625,7 +625,7 @@ DEPENDENCIES
   ruby-readability
   rubyzip
   sanitize
-  selenium-webdriver (~> 4.11)
+  selenium-webdriver
   shoulda-matchers!
   sidekiq
   simplecov
@@ -642,9 +642,10 @@ DEPENDENCIES
   unf
   unicorn
   web-push
+  webdrivers
   webmock
   yaml-lint
   yard
 
 BUNDLED WITH
-   2.4.17
+   2.4.13
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
index 350bf7abba20..fc7b71f0c030 100644
--- a/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15ni57icsw1ilz5srlasff4h31h2ckgmxbdd8jnbniscvz4x2sd0";
+      sha256 = "1pz26qpdx1xncpy5h8k4afw0npnh6wn580yvwv2cf857zrzvr1pm";
       type = "gem";
     };
-    version = "7.0.7";
+    version = "7.0.5.1";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "150sjsk12vzj9aswjy3cz124l8n8sn52bhd0wwly73rwc1a750sg";
+      sha256 = "003y7cdxwzdqx8hgw02kf1b5mp8qr8syx07f35sk3ghhqxp39ksy";
       type = "gem";
     };
-    version = "7.0.7";
+    version = "7.0.5.1";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nn21k5psxdv2fkwxs679lr0b8n1nzli2ks343cx4azn6snp8b8a";
+      sha256 = "11ihpqcvz3f38ka85zdjkdcvgdbcan81dbr0y9bi784jn1v5ggwa";
       type = "gem";
     };
-    version = "7.0.7";
+    version = "7.0.5.1";
   };
   actionview_precompiler = {
     dependencies = ["actionview"];
@@ -38,10 +38,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07jyr2h87ha6k2y965rs4ywq142ddkfkhbmp0r44xg4wnffr8jbl";
+      sha256 = "07dx8vkwig8han4zccs0chahcf9ibd4abzx9n56qah8zak5cyrhd";
       type = "gem";
     };
-    version = "0.3.0";
+    version = "0.2.3";
   };
   active_model_serializers = {
     dependencies = ["activemodel"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s5r5z9jm57jjabh8w2823rpjd1agn8z2rlqgyyn4s9pbbhgalzy";
+      sha256 = "11wkxf16zdb9gsnc94x4hyj89wjks06gnk4fbl7gp5vkbl744n83";
       type = "gem";
     };
-    version = "7.0.7";
+    version = "7.0.5.1";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rspbw4yxx9fh2wyl2wvgwadwapfyx7j9zlirpd4pmk31wkhl4hf";
+      sha256 = "12f89hxs4s26ggsg4bnz9qxlcsclcgx9gdsl8dni5jc0gk47h14y";
       type = "gem";
     };
-    version = "7.0.7";
+    version = "7.0.5.1";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ygg145wxlgm12b1x5r0rsk2aa6i2wjz7bgb21j8vmyqyfl272cy";
+      sha256 = "1sfdq2slmsc0ygncl36dq1lmjww1y3b42izrnn62cyisiag28796";
       type = "gem";
     };
-    version = "7.0.7";
+    version = "7.0.5.1";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wzbnv3hns0yiwbgh1m3q5j0d7b0k52nlpwirhxyv3l0ycmljfr9";
+      sha256 = "0m1sa6djlm9cz6mz3lcbqqahvm6qj75dmq3phpn2ysyxnlz2hr0c";
       type = "gem";
     };
-    version = "7.0.7";
+    version = "7.0.5.1";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
+      sha256 = "15s8van7r2ad3dq6i03l3z4hqnvxcq75a3h72kxvf9an53sqma20";
       type = "gem";
     };
-    version = "2.8.5";
+    version = "2.8.4";
   };
   annotate = {
     dependencies = ["activerecord" "rake"];
@@ -205,16 +205,6 @@
     };
     version = "1.5.0";
   };
-  base64 = {
-    groups = ["default" "development" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0cydk9p2cv25qysm0sn2pb97fcpz1isa7n3c8xm1gd99li8x6x8c";
-      type = "gem";
-    };
-    version = "0.1.1";
-  };
   better_errors = {
     dependencies = ["erubi" "rack" "rouge"];
     groups = ["development"];
@@ -361,10 +351,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zj06gjqwykgzxmbkp2hmg3wv5kv8zz5d77acxipzcgicdjgvfan";
+      sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
       type = "gem";
     };
-    version = "4.0.0";
+    version = "3.1.2";
   };
   concurrent-ruby = {
     groups = ["default" "development" "test"];
@@ -434,10 +424,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18mii41bbl106rn940ah8v3xclj4yrxxa0bwlwp546244n9b83zp";
+      sha256 = "04q1vin8slr3k8mp76qz0wqgap6f9kdsbryvgfq9fljhrm463kpj";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.14.0";
   };
   dartsass-ruby = {
     dependencies = ["sass-embedded"];
@@ -582,20 +572,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mbkyyadz9vw7mzixi9dks6i6iw033yn2hzwfvnfdvgqq6ywqs4g";
+      sha256 = "08r6qgbpkxxsihjmlspk3l1sr69q5hx35p1l4wp7rmkbzys89867";
       type = "gem";
     };
-    version = "0.102.0";
+    version = "0.100.0";
   };
   execjs = {
     groups = ["assets" "default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1a4dhqclx0n4dc5riiff1nkwfinaf5an1dxjywmlwa9wm57r9q9p";
+      sha256 = "121h6af4i6wr3wxvv84y53jcyw2sk71j5wsncm6wq6yqrwcrk4vd";
       type = "gem";
     };
-    version = "2.9.0";
+    version = "2.8.1";
   };
   exifr = {
     groups = ["default"];
@@ -756,20 +746,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sbw6b66r7cwdx3jhs46s4lr991969hvigkjpbdl7y3i31qpdgvh";
+      sha256 = "0kqm5ndzaybpnpxqiqkc41k4ksyxl41ln8qqr6kb130cdxsf2dxk";
       type = "gem";
     };
-    version = "1.2.1";
+    version = "1.1.0";
   };
   google-protobuf = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pcl4x4cw3snl5xzs99lm82m9xkfs8vm1a8dfrc34pwb77mwrwv3";
+      sha256 = "1dq5lgkxhagqr8zjrwr10zi8rldbg2vhis2m5q86v5q9415ylfgj";
       type = "gem";
     };
-    version = "3.24.3";
+    version = "3.23.4";
   };
   guess_html_encoding = {
     groups = ["default"];
@@ -930,10 +920,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0spgxaxvsl3qvyj9qb95gd5hvy2pnp98hbgp8nfw6s69yyw0xmgj";
+      sha256 = "1mbf7v8bzmxyk413y16drnww68bgyzknlqmaqvj785iakja7in7x";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "1.0.3";
   };
   jwt = {
     groups = ["default"];
@@ -1132,10 +1122,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15xqp7pnicjh2868fsc6fmxw8cw32bpiaqpc5bz8cwdib09ns3qk";
+      sha256 = "1ppqgch8xxccpmccdx37lb00112ayqjb80zz5m3w3298vdzb1kn4";
       type = "gem";
     };
-    version = "4.3.8";
+    version = "4.3.7";
   };
   method_source = {
     groups = ["default" "development" "test"];
@@ -1148,14 +1138,14 @@
     version = "1.0.0";
   };
   mini_mime = {
-    groups = ["default" "test"];
+    groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6";
+      sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5";
       type = "gem";
     };
-    version = "1.1.5";
+    version = "1.1.2";
   };
   mini_portile2 = {
     groups = ["default" "development" "test"];
@@ -1194,10 +1184,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yrxjmwhfnvcwbj9vscyq0z67sq09zl8qhmzgakq2ywy4yvcpwgg";
+      sha256 = "1dgwyyya821sfj4f92sljsxmmnak2yrzsbckvy82001zgq1n3b41";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.4.0";
   };
   mini_suffix = {
     dependencies = ["ffi"];
@@ -1210,25 +1200,15 @@
     };
     version = "0.3.3";
   };
-  minio_runner = {
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "11rwvbqichq5jipgbr5x6s609485ga7vxc32r3h9vx342gs6nrzy";
-      type = "gem";
-    };
-    version = "0.1.1";
-  };
   minitest = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
+      sha256 = "0jnpsbb2dbcs95p4is4431l2pw1l5pn7dfg3vkgb4ga464j0c5l6";
       type = "gem";
     };
-    version = "5.20.0";
+    version = "5.19.0";
   };
   mocha = {
     dependencies = ["ruby2_keywords"];
@@ -1356,10 +1336,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k9w2z0953mnjrsji74cshqqp08q7m1r6zhadw1w0g34xzjh3a74";
+      sha256 = "1jw8a20a9k05fpz3q24im19b97idss3179z76yn5scc5b8lk2rl7";
       type = "gem";
     };
-    version = "1.15.4";
+    version = "1.15.3";
   };
   oauth = {
     dependencies = ["oauth-tty" "snaky_hash" "version_gem"];
@@ -1399,10 +1379,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m4vsd6i093kmyz9gckvzpnws997laldaiaf86hg5lza1ir82x7n";
+      sha256 = "1vzcrsv6w5k90l75gy83dlfkv2z9pvnr82mz1nhnijmcg3rgqaz8";
       type = "gem";
     };
-    version = "3.16.1";
+    version = "3.15.1";
   };
   omniauth = {
     dependencies = ["hashie" "rack"];
@@ -1532,10 +1512,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pa50my9sgh4wh9jah1qxjd33wsp1ahv29vj2q1biz434p67vh5p";
+      sha256 = "04y02j0kyhfww41dnnjawn2gpp24smq0x21dvaa5z6pnq0fvmahv";
       type = "gem";
     };
-    version = "4.2.2";
+    version = "4.2.1";
   };
   parser = {
     dependencies = ["ast" "racc"];
@@ -1627,10 +1607,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x4dwx2shx0p7lsms97r85r7ji7zv57bjy3i1kmcpxc8bxvrr67c";
+      sha256 = "1v7fmv0n4bhdcwh60dgza44iqai5pg34f5pzm4vh4i5fwx7mpqxh";
       type = "gem";
     };
-    version = "6.3.1";
+    version = "6.3.0";
   };
   racc = {
     groups = ["default" "development" "test"];
@@ -1662,10 +1642,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18vj7q740f7ffj677i258abryj97w0a6g3d5859y0lgypm5big1v";
+      sha256 = "13dhpp1iljhqp9c8akmp6gjhx47qf83w12ns4bif26ldkignpam1";
       type = "gem";
     };
-    version = "3.1.1";
+    version = "3.1.0";
   };
   rack-protection = {
     dependencies = ["rack"];
@@ -1673,10 +1653,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xsz78hccgza144n37bfisdkzpr2c8m0xl6rnlzgxdbsm1zrkg7r";
+      sha256 = "1kpm67az1wxlg76h620in2r7agfyhv177ps268j5ggsanzddzih8";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.0.6";
   };
   rack-test = {
     dependencies = ["rack"];
@@ -1695,10 +1675,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fx9dx1ag0s1lr6lfr34lbx5i1bvn3bhyf3w3mx6h7yz90p725g5";
+      sha256 = "17g05y7q7934z0ib4aph8h71c2qwjmlakkm7nb2ab45q0aqkfgjd";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.1.1";
   };
   rails-html-sanitizer = {
     dependencies = ["loofah" "nokogiri"];
@@ -1739,10 +1719,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0in2b84qqmfnigx0li9bgi6l4knmgbj3a29fzm1zzb5jnv4r1gbr";
+      sha256 = "1z4lqqbd4i5izsg97mx5yf3gj7y5d07wgvad0jzjghjg12pf142i";
       type = "gem";
     };
-    version = "7.0.7";
+    version = "7.0.5.1";
   };
   rainbow = {
     groups = ["default" "development" "test"];
@@ -1893,10 +1873,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m48hv6wpmmm6cjr6q92q78h1i610riml19k5h1dil2yws3h1m3m";
+      sha256 = "10mmzc85y7andsich586ndykw678qn1ns2wpjxrg0sc0gr4w3pig";
       type = "gem";
     };
-    version = "6.3.0";
+    version = "6.2.2";
   };
   rouge = {
     groups = ["default" "development"];
@@ -2015,10 +1995,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wv27axi39hhr0nmaffdl5bdjqiafcvp9xhfgnsgfczsblja50sn";
+      sha256 = "1b1zx07kr64kkpm4lssd4r1a1qyr829ppmfl85i4adcvx9mqfid0";
       type = "gem";
     };
-    version = "0.3.0";
+    version = "0.2.9";
   };
   rswag-specs = {
     dependencies = ["activesupport" "json-schema" "railties" "rspec-core"];
@@ -2043,15 +2023,15 @@
     version = "0.2.1";
   };
   rubocop = {
-    dependencies = ["base64" "json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
+    dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i3571gchdj3c28znr5kisj0fkppy57208g9j1kv23rhk3p5q5p2";
+      sha256 = "0s9p5qaqq68h5s3ys8xlk9swccma7arjif1w58987n6gicrsprrm";
       type = "gem";
     };
-    version = "1.56.3";
+    version = "1.55.1";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -2103,10 +2083,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ylwy4afnxhbrvlaf8an9nrizj78axnzggiyfcp8v531cv8six5f";
+      sha256 = "0l364y00bw1zcs3grdxcxpn48vfrjds2khsiaxjqq3r9grvbprfy";
       type = "gem";
     };
-    version = "2.23.2";
+    version = "2.23.0";
   };
   ruby-prof = {
     groups = ["development"];
@@ -2180,10 +2160,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "038fzkbq5sw9lf947akhpsvdm14q6jfzl2yn87s8958h42sn0xjy";
+      sha256 = "15k44qn8vk8ap8khkmpsiw40pywm9pkx4a5yhm8vfi2rgqci9k90";
       type = "gem";
     };
-    version = "1.66.1";
+    version = "1.64.1";
   };
   selenium-webdriver = {
     dependencies = ["rexml" "rubyzip" "websocket"];
@@ -2191,10 +2171,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jwll13m7bqph4lgl75m7vwd175k657znwa7qn9qkf5dcxdjkcjs";
+      sha256 = "0hwxxvx6j95ln82pjmrgyzg6qmf511dkcp5q79n6m5m8z4way8m3";
       type = "gem";
     };
-    version = "4.12.0";
+    version = "4.10.0";
   };
   shoulda-matchers = {
     dependencies = ["activesupport"];
@@ -2202,8 +2182,8 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "68f76ce13e9892339f90c4928339dfd769cfa613";
-      sha256 = "08kbcdfplmbdhgq0x6lk2lpwrlgijrfq6vhl5hkmxg9v9gpgbbrj";
+      rev = "783a90554053002017510285bc736099b2749c22";
+      sha256 = "10rw7ksi462fxamap6kimdy7hpdgx8477r6zs1kgrbakx24dm3wx";
       type = "git";
       url = "https://github.com/thoughtbot/shoulda-matchers.git";
     };
@@ -2302,10 +2282,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k8i5pzjhcnyf0bhcyn5iixpfp4pz0556rcxwpglh6p0sr8s6nv5";
+      sha256 = "03bkn55qsng484iqwz2lmm6rkimj01vsvhwk661s3lnmpkl65lbp";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "2.0.0";
   };
   stackprof = {
     groups = ["default"];
@@ -2504,16 +2484,27 @@
     };
     version = "3.0.0";
   };
+  webdrivers = {
+    dependencies = ["nokogiri" "rubyzip" "selenium-webdriver"];
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19aaxhawzv7315rh285gd1fg6m6wbrn3w3kilyibci1wphgm7mfp";
+      type = "gem";
+    };
+    version = "5.3.1";
+  };
   webmock = {
     dependencies = ["addressable" "crack" "hashdiff"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vfispr7wd2p1fs9ckn1qnby1yyp4i1dl7qz8n482iw977iyxrza";
+      sha256 = "1myj44wvbbqvv18ragv3ihl0h61acgnfwrnj3lccdgp49bgmbjal";
       type = "gem";
     };
-    version = "3.19.1";
+    version = "3.18.1";
   };
   websocket = {
     groups = ["default" "test"];
@@ -2561,9 +2552,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mwdd445w63khz13hpv17m2br5xngyjl3jdj08xizjbm78i2zrxd";
+      sha256 = "06vf6y5ai20ry3b1h9cl7vsdj6i5valq172zdxpnfhj5zvlp104j";
       type = "gem";
     };
-    version = "2.6.11";
+    version = "2.6.10";
   };
 }
diff --git a/nixpkgs/pkgs/servers/web-apps/discourse/use_mv_instead_of_rename.patch b/nixpkgs/pkgs/servers/web-apps/discourse/use_mv_instead_of_rename.patch
new file mode 100644
index 000000000000..30493b543e38
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/discourse/use_mv_instead_of_rename.patch
@@ -0,0 +1,22 @@
+diff --git a/lib/discourse.rb b/lib/discourse.rb
+index ea2a3cbafd..66454d9157 100644
+--- a/lib/discourse.rb
++++ b/lib/discourse.rb
+@@ -62,7 +62,7 @@ module Discourse
+         fd.fsync()
+       end
+ 
+-      File.rename(temp_destination, destination)
++      FileUtils.mv(temp_destination, destination)
+ 
+       nil
+     end
+@@ -76,7 +76,7 @@ module Discourse
+       FileUtils.mkdir_p(File.join(Rails.root, 'tmp'))
+       temp_destination = File.join(Rails.root, 'tmp', SecureRandom.hex)
+       execute_command('ln', '-s', source, temp_destination)
+-      File.rename(temp_destination, destination)
++      FileUtils.mv(temp_destination, destination)
+ 
+       nil
+     end
diff --git a/nixpkgs/pkgs/servers/web-apps/engelsystem/default.nix b/nixpkgs/pkgs/servers/web-apps/engelsystem/default.nix
index 9b9cf0ff3bfe..4f6563db90b7 100644
--- a/nixpkgs/pkgs/servers/web-apps/engelsystem/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/engelsystem/default.nix
@@ -1,19 +1,21 @@
-{ lib, stdenv, fetchzip, php, writeText, nixosTests }:
+{ lib
+, fetchzip
+, nixosTests
+, php
+, stdenv
+, writeText
+}:
 
-let
-  phpExt = php.withExtensions
-    ({ enabled, all }: with all; [ filter mysqlnd mysqli pdo pdo_mysql ]);
-in
 stdenv.mkDerivation rec {
   pname = "engelsystem";
-  version = "3.4.1";
+  version = "3.5.0";
 
   src = fetchzip {
     url = "https://github.com/engelsystem/engelsystem/releases/download/v${version}/engelsystem-v${version}.zip";
-    hash = "sha256-5KniP1nrLfmWHruXnUJmlvgL95U+EsDmCs4tg/YLWtw=";
+    hash = "sha256-RbzAHBZN02u14WaLtq5EOh4XwIdHKvzX7NhDBhn/CaU=";
   };
 
-  buildInputs = [ phpExt ];
+  buildInputs = [ php ];
 
   installPhase = ''
     runHook preInstall
@@ -30,7 +32,7 @@ stdenv.mkDerivation rec {
 
     echo $(command -v php)
     # The patchShebangAuto function always used the php without extensions, so path the shebang manually
-    sed -i -e "1 s|.*|#\!${phpExt}/bin/php|" "$out/share/engelsystem/bin/migrate"
+    sed -i -e "1 s|.*|#\!${lib.getExe php}|" "$out/share/engelsystem/bin/migrate"
     ln -s "$out/share/engelsystem/bin/migrate" "$out/bin/migrate"
 
     runHook postInstall
@@ -39,13 +41,13 @@ stdenv.mkDerivation rec {
   passthru.tests = nixosTests.engelsystem;
 
   meta = with lib; {
+    changelog = "https://github.com/engelsystem/engelsystem/releases/tag/v${version}";
     description =
       "Coordinate your volunteers in teams, assign them to work shifts or let them decide for themselves when and where they want to help with what";
     homepage = "https://engelsystem.de";
-    changelog = "https://github.com/engelsystem/engelsystem/releases/tag/v${version}";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ kloenk ];
     mainProgram = "migrate";
+    maintainers = with maintainers; [ ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/web-apps/fileshelter/default.nix b/nixpkgs/pkgs/servers/web-apps/fileshelter/default.nix
index b6abc423eb85..337f178a1c50 100644
--- a/nixpkgs/pkgs/servers/web-apps/fileshelter/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/fileshelter/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/epoupon/fileshelter";
     description = "FileShelter is a 'one-click' file sharing web application";
+    mainProgram = "fileshelter";
     maintainers = [ maintainers.willibutz ];
     license = licenses.gpl3;
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/servers/web-apps/galene/default.nix b/nixpkgs/pkgs/servers/web-apps/galene/default.nix
index f66d57d22bfd..73503242378a 100644
--- a/nixpkgs/pkgs/servers/web-apps/galene/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/galene/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "galene";
-  version = "0.8";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "jech";
     repo = "galene";
     rev = "galene-${version}";
-    hash = "sha256-UWh55+9+5s31VwRb7oOzOPKv9Ew7AxsOjWXaFRxuans=";
+    hash = "sha256-CeyxeZPvClKxjEU5GYqZzV2SCyHNAktHNQbmN9wUa+4=";
   };
 
-  vendorHash = "sha256-MEO6ktMrpvuWBPBgpBRAuIrup4Zc8IQKoJ/6JEnD6+U=";
+  vendorHash = "sha256-NT6bNVoh26I4z/QUSJWwF5YDuzf3LUc/7OQgtslc4ME=";
 
   ldflags = [ "-s" "-w" ];
   preCheck = "export TZ=UTC";
diff --git a/nixpkgs/pkgs/servers/web-apps/hedgedoc/default.nix b/nixpkgs/pkgs/servers/web-apps/hedgedoc/default.nix
index 0f2073f24a6f..1992c14270e7 100644
--- a/nixpkgs/pkgs/servers/web-apps/hedgedoc/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/hedgedoc/default.nix
@@ -75,6 +75,7 @@ in stdenv.mkDerivation {
     yarn --immutable-cache
     yarn run build
 
+    rm bin/heroku
     patchShebangs bin/*
 
     runHook postBuild
@@ -83,13 +84,19 @@ in stdenv.mkDerivation {
   installPhase = ''
     runHook preInstall
 
-    mkdir -p $out
-    cp -R {app.js,bin,lib,locales,node_modules,package.json,public} $out
+    mkdir -p $out/share/hedgedoc
+    cp -r bin $out
+    cp -r {app.js,lib,locales,node_modules,package.json,public} $out/share/hedgedoc
 
+    for bin in $out/bin/*; do
+      wrapProgram $bin \
+        --set NODE_ENV production \
+        --set NODE_PATH "$out/share/hedgedoc/lib/node_modules"
+    done
     makeWrapper ${nodejs}/bin/node $out/bin/hedgedoc \
-      --add-flags $out/app.js \
+      --add-flags $out/share/hedgedoc/app.js \
       --set NODE_ENV production \
-      --set NODE_PATH "$out/lib/node_modules"
+      --set NODE_PATH "$out/share/hedgedoc/lib/node_modules"
 
     runHook postInstall
   '';
@@ -101,7 +108,7 @@ in stdenv.mkDerivation {
 
   meta = {
     description = "Realtime collaborative markdown notes on all platforms";
-    license = lib.licenses.agpl3;
+    license = lib.licenses.agpl3Only;
     homepage = "https://hedgedoc.org";
     mainProgram = "hedgedoc";
     maintainers = with lib.maintainers; [ SuperSandro2000 ];
diff --git a/nixpkgs/pkgs/servers/web-apps/jirafeau/default.nix b/nixpkgs/pkgs/servers/web-apps/jirafeau/default.nix
index 8001e5804970..bf67125e1dab 100644
--- a/nixpkgs/pkgs/servers/web-apps/jirafeau/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/jirafeau/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Website permitting upload of a file in a simple way and giving a unique link to it";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     homepage = "https://gitlab.com/mojo42/Jirafeau";
     platforms = platforms.all;
     maintainers = with maintainers; [ davidtwco ];
diff --git a/nixpkgs/pkgs/servers/web-apps/jitsi-meet/default.nix b/nixpkgs/pkgs/servers/web-apps/jitsi-meet/default.nix
index f0e307dabb85..c07ea1f64733 100644
--- a/nixpkgs/pkgs/servers/web-apps/jitsi-meet/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/jitsi-meet/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jitsi-meet";
-  version = "1.0.7762";
+  version = "1.0.7790";
 
   src = fetchurl {
     url = "https://download.jitsi.org/jitsi-meet/src/jitsi-meet-${version}.tar.bz2";
-    sha256 = "SsmMQdR6JczL63/o/LHbg5sjnBA+TuYPu4WR+tlGaC4=";
+    sha256 = "qW3Zcrq+a1I5LABUc4uhr58E7Ig8SmrJVNdjLs0l0io=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/servers/web-apps/lemmy/package.json b/nixpkgs/pkgs/servers/web-apps/lemmy/package.json
index 813c77507225..97600d6801a2 100644
--- a/nixpkgs/pkgs/servers/web-apps/lemmy/package.json
+++ b/nixpkgs/pkgs/servers/web-apps/lemmy/package.json
@@ -3,7 +3,7 @@
   "description": "An isomorphic UI for lemmy",
   "version": "0.19.3",
   "author": "Dessalines <tyhou13@gmx.com>",
-  "license": "AGPL-3.0",
+  "license": "AGPL-3.0-only",
   "scripts": {
     "analyze": "webpack --mode=none",
     "build:dev": "webpack --env COMMIT_HASH=$(git rev-parse --short HEAD) --mode=development",
diff --git a/nixpkgs/pkgs/servers/web-apps/matomo/default.nix b/nixpkgs/pkgs/servers/web-apps/matomo/default.nix
index 383a8658c521..c9584fb25e35 100644
--- a/nixpkgs/pkgs/servers/web-apps/matomo/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/matomo/default.nix
@@ -114,6 +114,7 @@ let
 
         meta = with lib; {
           description = "A real-time web analytics application";
+          mainProgram = "matomo-console";
           license = licenses.gpl3Plus;
           homepage = "https://matomo.org/";
           platforms = platforms.all;
diff --git a/nixpkgs/pkgs/servers/web-apps/meme-bingo-web/default.nix b/nixpkgs/pkgs/servers/web-apps/meme-bingo-web/default.nix
index 4ba25a524bf9..6a0228899f08 100644
--- a/nixpkgs/pkgs/servers/web-apps/meme-bingo-web/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/meme-bingo-web/default.nix
@@ -27,6 +27,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Play meme bingo using this neat web app";
+    mainProgram = "meme-bingo-web";
     homepage = "https://codeberg.org/annaaurora/meme-bingo-web";
     license = licenses.unlicense;
     maintainers = with maintainers; [ annaaurora ];
diff --git a/nixpkgs/pkgs/servers/web-apps/morty/default.nix b/nixpkgs/pkgs/servers/web-apps/morty/default.nix
index 2aa6f0d1cf89..b44d2e03bf16 100644
--- a/nixpkgs/pkgs/servers/web-apps/morty/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/morty/default.nix
@@ -15,6 +15,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "Privacy aware web content sanitizer proxy as a service";
+    mainProgram = "morty";
     longDescription = ''
       Morty rewrites web pages to exclude malicious HTML tags and attributes.
       It also replaces external resource references to prevent third party information leaks.
@@ -23,6 +24,6 @@ buildGoModule {
     '';
     homepage = "https://github.com/asciimoo/morty";
     maintainers = with maintainers; [ leenaars SuperSandro2000 ];
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
   };
 }
diff --git a/nixpkgs/pkgs/servers/web-apps/netbox/generic.nix b/nixpkgs/pkgs/servers/web-apps/netbox/generic.nix
index ac705445499f..862b817be90e 100644
--- a/nixpkgs/pkgs/servers/web-apps/netbox/generic.nix
+++ b/nixpkgs/pkgs/servers/web-apps/netbox/generic.nix
@@ -101,6 +101,7 @@
       meta = {
         homepage = "https://github.com/netbox-community/netbox";
         description = "IP address management (IPAM) and data center infrastructure management (DCIM) tool";
+        mainProgram = "netbox";
         license = lib.licenses.asl20;
         knownVulnerabilities = (lib.optional eol "Netbox version ${version} is EOL; please upgrade by following the current release notes instructions.");
         # Warning:
diff --git a/nixpkgs/pkgs/servers/web-apps/outline/default.nix b/nixpkgs/pkgs/servers/web-apps/outline/default.nix
index 1af9b6ae7a73..6464035db317 100644
--- a/nixpkgs/pkgs/servers/web-apps/outline/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/outline/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "outline";
-  version = "0.75.0";
+  version = "0.75.2";
 
   src = fetchFromGitHub {
     owner = "outline";
     repo = "outline";
     rev = "v${version}";
-    hash = "sha256-u4WDD0HRaNHdknHaoPYprebUaHt8EmESjBG0N6NZpIk=";
+    hash = "sha256-jK1jZ9NyBl3Dioh/7gXWx6XyyI6xJKt2a/XXzbhllZM=";
   };
 
   nativeBuildInputs = [ makeWrapper prefetch-yarn-deps ];
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   yarnOfflineCache = fetchYarnDeps {
     yarnLock = "${src}/yarn.lock";
-    hash = "sha256-V+1lqZh68T3C9VAFETHehv9iCt1j24ZeY9ErbnRGIrk=";
+    hash = "sha256-8CfaP5T/pf/xq1lOfdOW4n2m12QLnkLFynHABjZwNiY=";
   };
 
   configurePhase = ''
diff --git a/nixpkgs/pkgs/servers/web-apps/peering-manager/default.nix b/nixpkgs/pkgs/servers/web-apps/peering-manager/default.nix
index c564629b4fcb..aec18b2904c6 100644
--- a/nixpkgs/pkgs/servers/web-apps/peering-manager/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/peering-manager/default.nix
@@ -77,6 +77,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://peering-manager.net/";
     license = licenses.asl20;
     description = "BGP sessions management tool";
+    mainProgram = "peering-manager";
     maintainers = teams.wdz.members;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/servers/web-apps/phylactery/default.nix b/nixpkgs/pkgs/servers/web-apps/phylactery/default.nix
index b200ae637f56..2dfccdabbb98 100644
--- a/nixpkgs/pkgs/servers/web-apps/phylactery/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/phylactery/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Old school comic web server";
+    mainProgram = "phylactery";
     homepage = "https://git.sr.ht/~cnx/phylactery";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ McSinyx ];
diff --git a/nixpkgs/pkgs/servers/web-apps/pict-rs/0.3.nix b/nixpkgs/pkgs/servers/web-apps/pict-rs/0.3.nix
index c113322a3794..875aecd55610 100644
--- a/nixpkgs/pkgs/servers/web-apps/pict-rs/0.3.nix
+++ b/nixpkgs/pkgs/servers/web-apps/pict-rs/0.3.nix
@@ -46,6 +46,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple image hosting service";
+    mainProgram = "pict-rs";
     homepage = "https://git.asonix.dog/asonix/pict-rs";
     license = with licenses; [ agpl3Plus ];
     maintainers = with maintainers; [ happysalada ];
diff --git a/nixpkgs/pkgs/servers/web-apps/pict-rs/default.nix b/nixpkgs/pkgs/servers/web-apps/pict-rs/default.nix
index 55437c7926db..fdd975e3682c 100644
--- a/nixpkgs/pkgs/servers/web-apps/pict-rs/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/pict-rs/default.nix
@@ -13,17 +13,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pict-rs";
-  version = "0.5.7";
+  version = "0.5.9";
 
   src = fetchFromGitea {
     domain = "git.asonix.dog";
     owner = "asonix";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-MBV92+mu41ulT6wuzTGbobbspoQA0hNbRIiISol0n48=";
+    sha256 = "sha256-ZRT382ClImnlwvWyA1w7ZIIF4PXr3rWmeIsqJYngkfM=";
   };
 
-  cargoHash = "sha256-p7s/gs+sMXR1l08C81tY4K3oV9fWgm07C0nRGspfoR8=";
+  cargoHash = "sha256-FTb8VoQJFS55CKlQvoWkBQEBUCvUnFaUAxIW22zEIHI=";
 
   # needed for internal protobuf c wrapper library
   PROTOC = "${protobuf}/bin/protoc";
@@ -42,6 +42,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "A simple image hosting service";
+    mainProgram = "pict-rs";
     homepage = "https://git.asonix.dog/asonix/pict-rs";
     license = with licenses; [ agpl3Plus ];
     maintainers = with maintainers; [ happysalada ];
diff --git a/nixpkgs/pkgs/servers/web-apps/plausible/default.nix b/nixpkgs/pkgs/servers/web-apps/plausible/default.nix
index e933877a53ab..24f684c0c954 100644
--- a/nixpkgs/pkgs/servers/web-apps/plausible/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/plausible/default.nix
@@ -88,7 +88,8 @@ beamPackages.mixRelease {
     homepage = "https://plausible.io/";
     changelog = "https://github.com/plausible/analytics/blob/${src.rev}/CHANGELOG.md";
     description = " Simple, open-source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics";
-    maintainers = with maintainers; [ softinio ];
+    mainProgram = "plausible";
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/servers/web-apps/shiori/default.nix b/nixpkgs/pkgs/servers/web-apps/shiori/default.nix
index f4a1872ca93d..8a9fc7973f98 100644
--- a/nixpkgs/pkgs/servers/web-apps/shiori/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/shiori/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Simple bookmark manager built with Go";
+    mainProgram = "shiori";
     homepage = "https://github.com/go-shiori/shiori";
     license = licenses.mit;
     maintainers = with maintainers; [ minijackson ];
diff --git a/nixpkgs/pkgs/servers/web-apps/slskd/default.nix b/nixpkgs/pkgs/servers/web-apps/slskd/default.nix
index a085edfb1e14..7a2a388086c1 100644
--- a/nixpkgs/pkgs/servers/web-apps/slskd/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/slskd/default.nix
@@ -20,7 +20,7 @@ let
   meta = with lib; {
     description = "A modern client-server application for the Soulseek file sharing network";
     homepage = "https://github.com/slskd/slskd";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     maintainers = with maintainers; [ ppom ];
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix b/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix
index f4a9d05e8d94..f1a73feab865 100644
--- a/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix
@@ -5,7 +5,7 @@
     hash = "sha256-Jo2/Vlm4Ml24ucPI6ZHs2mkbpY2rZB1dofmGXNPweA8=";
   };
   wordpress6_4 = {
-    version = "6.4.2";
-    hash = "sha256-m4KJELf5zs3gwAQPmAhoPe2rhopZFsYN6OzAv6Wzo6c=";
+    version = "6.4.3";
+    hash = "sha256-PwjHHRlwhEH9q94bPq34NnQv3uhm1kOpjRAu0/ECaYY=";
   };
 }
diff --git a/nixpkgs/pkgs/servers/x11/xorg/default.nix b/nixpkgs/pkgs/servers/x11/xorg/default.nix
index 9be49dc4f0ef..590559d3188b 100644
--- a/nixpkgs/pkgs/servers/x11/xorg/default.nix
+++ b/nixpkgs/pkgs/servers/x11/xorg/default.nix
@@ -1238,11 +1238,11 @@ self: with self; {
   # THIS IS A GENERATED FILE.  DO NOT EDIT!
   libXcursor = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXfixes, libXrender, testers }: stdenv.mkDerivation (finalAttrs: {
     pname = "libXcursor";
-    version = "1.2.1";
+    version = "1.2.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = "mirror://xorg/individual/lib/libXcursor-1.2.1.tar.xz";
-      sha256 = "011195an3w4xld3x0dr534kar1xjf52q96hmf0hgvfhh2rrl7ha6";
+      url = "mirror://xorg/individual/lib/libXcursor-1.2.2.tar.xz";
+      sha256 = "1vl87819mnhlbnccchysv9nmax4abil5x3cr61x52vn55jyp3l2k";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     strictDeps = true;
@@ -2158,11 +2158,11 @@ self: with self; {
   # THIS IS A GENERATED FILE.  DO NOT EDIT!
   xauth = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXau, libXext, libXmu, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: {
     pname = "xauth";
-    version = "1.1.2";
+    version = "1.1.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = "mirror://xorg/individual/app/xauth-1.1.2.tar.xz";
-      sha256 = "0072ivzn4z59ysanz838nh8s4mcmdsx6q9xkvlfysv2k37ynmfkq";
+      url = "mirror://xorg/individual/app/xauth-1.1.3.tar.xz";
+      sha256 = "0cwxzq7lv932rcfad3baanr541qcjjdhyrhxy0bzjcp3pac581z7";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     strictDeps = true;
diff --git a/nixpkgs/pkgs/servers/x11/xorg/tarballs.list b/nixpkgs/pkgs/servers/x11/xorg/tarballs.list
index d0516bd8669d..1c91ae4794e9 100644
--- a/nixpkgs/pkgs/servers/x11/xorg/tarballs.list
+++ b/nixpkgs/pkgs/servers/x11/xorg/tarballs.list
@@ -22,7 +22,7 @@ mirror://xorg/individual/app/transset-1.0.3.tar.xz
 mirror://xorg/individual/app/twm-1.0.12.tar.xz
 mirror://xorg/individual/app/viewres-1.0.7.tar.xz
 mirror://xorg/individual/app/x11perf-1.6.1.tar.bz2
-mirror://xorg/individual/app/xauth-1.1.2.tar.xz
+mirror://xorg/individual/app/xauth-1.1.3.tar.xz
 mirror://xorg/individual/app/xbacklight-1.2.3.tar.bz2
 mirror://xorg/individual/app/xcalc-1.1.2.tar.xz
 mirror://xorg/individual/app/xclock-1.1.1.tar.xz
@@ -178,7 +178,7 @@ mirror://xorg/individual/lib/libXau-1.0.11.tar.xz
 mirror://xorg/individual/lib/libXaw-1.0.15.tar.xz
 mirror://xorg/individual/lib/libxcb-1.16.tar.xz
 mirror://xorg/individual/lib/libXcomposite-0.4.6.tar.xz
-mirror://xorg/individual/lib/libXcursor-1.2.1.tar.xz
+mirror://xorg/individual/lib/libXcursor-1.2.2.tar.xz
 mirror://xorg/individual/lib/libxcvt-0.1.2.tar.xz
 mirror://xorg/individual/lib/libXdamage-1.1.6.tar.xz
 mirror://xorg/individual/lib/libXdmcp-1.1.4.tar.xz
diff --git a/nixpkgs/pkgs/servers/xmpp/biboumi/default.nix b/nixpkgs/pkgs/servers/xmpp/biboumi/default.nix
index 50d2cfa964e0..9d63356abd6b 100644
--- a/nixpkgs/pkgs/servers/xmpp/biboumi/default.nix
+++ b/nixpkgs/pkgs/servers/xmpp/biboumi/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Modern XMPP IRC gateway";
+    mainProgram = "biboumi";
     platforms = platforms.unix;
     homepage = "https://lab.louiz.org/louiz/biboumi";
     license = licenses.zlib;
diff --git a/nixpkgs/pkgs/servers/xmpp/ejabberd/default.nix b/nixpkgs/pkgs/servers/xmpp/ejabberd/default.nix
index 9e0601fbd093..821465ec3a52 100644
--- a/nixpkgs/pkgs/servers/xmpp/ejabberd/default.nix
+++ b/nixpkgs/pkgs/servers/xmpp/ejabberd/default.nix
@@ -118,6 +118,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Open-source XMPP application server written in Erlang";
+    mainProgram = "ejabberdctl";
     license = licenses.gpl2;
     homepage = "https://www.ejabberd.im";
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/servers/xmpp/prosody-filer/default.nix b/nixpkgs/pkgs/servers/xmpp/prosody-filer/default.nix
index 7665a7f7450d..11ba842e5cb8 100644
--- a/nixpkgs/pkgs/servers/xmpp/prosody-filer/default.nix
+++ b/nixpkgs/pkgs/servers/xmpp/prosody-filer/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.linux;
     description = "A simple file server for handling XMPP http_upload requests";
+    mainProgram = "prosody-filer";
   };
 }
diff --git a/nixpkgs/pkgs/servers/zookeeper/default.nix b/nixpkgs/pkgs/servers/zookeeper/default.nix
index 6590f10fbb8c..bf905324e0ac 100644
--- a/nixpkgs/pkgs/servers/zookeeper/default.nix
+++ b/nixpkgs/pkgs/servers/zookeeper/default.nix
@@ -1,16 +1,16 @@
 { lib, stdenv, fetchurl, jdk11_headless, makeWrapper, nixosTests, bash, coreutils }:
 let
-  # Latest supported LTS JDK for Zookeeper 3.7:
-  # https://zookeeper.apache.org/doc/r3.7.2/zookeeperAdmin.html#sc_requiredSoftware
+  # Latest supported LTS JDK for Zookeeper 3.9:
+  # https://zookeeper.apache.org/doc/r3.9.2/zookeeperAdmin.html#sc_requiredSoftware
   jre = jdk11_headless;
 in
 stdenv.mkDerivation rec {
   pname = "zookeeper";
-  version = "3.7.2";
+  version = "3.9.2";
 
   src = fetchurl {
     url = "mirror://apache/zookeeper/${pname}-${version}/apache-${pname}-${version}-bin.tar.gz";
-    hash = "sha512-avv8GvyLk3AoG9mGLzfbscuV7FS7LtQ3GDGqXA8Iz+53UFC9V85fwINuYa8n7tnwB29UuYmX3Q4VFZGWBW5S6g==";
+    hash = "sha512-K1rgLWGKJ8qM1UkkhV1TRCY7fZ3udgGB+dZrr6kjAyTSrTF4aJXwZUyWncONSj0Ad/dMw3a1i1+i+5S+satEXw==";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -20,14 +20,11 @@ stdenv.mkDerivation rec {
     runHook preInstall
     mkdir -p $out
     cp -R conf docs lib $out
-    # Without this, zkCli.sh tries creating a log file in the Nix store.
-    substituteInPlace $out/conf/log4j.properties \
-        --replace 'INFO, RFAAUDIT' 'INFO, CONSOLE'
     mkdir -p $out/bin
     cp -R bin/{zkCli,zkCleanup,zkEnv,zkServer,zkSnapShotToolkit,zkTxnLogToolkit}.sh $out/bin
     patchShebangs $out/bin
     substituteInPlace $out/bin/zkServer.sh \
-        --replace /bin/echo ${coreutils}/bin/echo
+        --replace-fail /bin/echo ${coreutils}/bin/echo
     for i in $out/bin/{zkCli,zkCleanup,zkServer,zkSnapShotToolkit,zkTxnLogToolkit}.sh; do
       wrapProgram $i \
         --set JAVA_HOME "${jre}" \
@@ -47,8 +44,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://zookeeper.apache.org";
     description = "Apache Zookeeper";
+    changelog = "https://zookeeper.apache.org/doc/r${version}/releasenotes.html";
     license = licenses.asl20;
     maintainers = with maintainers; [ nathan-gs pradeepchhetri ztzg ];
     platforms = platforms.unix;
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
   };
 }
diff --git a/nixpkgs/pkgs/shells/bash/blesh/default.nix b/nixpkgs/pkgs/shells/bash/blesh/default.nix
index 9428703e7a2d..88633760fdc0 100644
--- a/nixpkgs/pkgs/shells/bash/blesh/default.nix
+++ b/nixpkgs/pkgs/shells/bash/blesh/default.nix
@@ -54,6 +54,7 @@ stdenvNoCC.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/akinomyoga/ble.sh";
     description = "Bash Line Editor -- a full-featured line editor written in pure Bash";
+    mainProgram = "blesh-share";
     license = licenses.bsd3;
     maintainers = with maintainers; [ aiotter ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/shells/carapace/default.nix b/nixpkgs/pkgs/shells/carapace/default.nix
index 356979253383..0e462149e67a 100644
--- a/nixpkgs/pkgs/shells/carapace/default.nix
+++ b/nixpkgs/pkgs/shells/carapace/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "carapace";
-  version = "0.30.2";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "rsteube";
     repo = "${pname}-bin";
     rev = "v${version}";
-    hash = "sha256-gYYNwDUL00b9orq1suxa9VtHBLUgRgntQcYw24vgncg=";
+    hash = "sha256-lc+oU9adFbtQyb4wKLgbf5i6UwxsKUJo3giquDTO6qg=";
   };
 
-  vendorHash = "sha256-RML1al1XlONzeCCkz34Ij1I/WDQSTVrm3P6RaOdyWKI=";
+  vendorHash = "sha256-XAdTLfMnOAcOiRYZGrom2Q+qp+epfg6Y9Jv0V0T12/8=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/shells/es/default.nix b/nixpkgs/pkgs/shells/es/default.nix
index 308a684e6f68..1a75aca391b1 100644
--- a/nixpkgs/pkgs/shells/es/default.nix
+++ b/nixpkgs/pkgs/shells/es/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An extensible shell with higher order functions";
+    mainProgram = "es";
     longDescription =
       ''
         Es is an extensible shell. The language was derived
diff --git a/nixpkgs/pkgs/shells/fish/babelfish.nix b/nixpkgs/pkgs/shells/fish/babelfish.nix
index 9af0c2ce9138..a08944262cc4 100644
--- a/nixpkgs/pkgs/shells/fish/babelfish.nix
+++ b/nixpkgs/pkgs/shells/fish/babelfish.nix
@@ -14,6 +14,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Translate bash scripts to fish";
+    mainProgram = "babelfish";
     homepage = "https://github.com/bouk/babelfish";
     license = licenses.mit;
     maintainers = with maintainers; [ bouk kevingriffin ];
diff --git a/nixpkgs/pkgs/shells/fish/default.nix b/nixpkgs/pkgs/shells/fish/default.nix
index 3703644a73ae..0013c205f31f 100644
--- a/nixpkgs/pkgs/shells/fish/default.nix
+++ b/nixpkgs/pkgs/shells/fish/default.nix
@@ -135,7 +135,7 @@ let
 
   fish = stdenv.mkDerivation rec {
     pname = "fish";
-    version = "3.7.0";
+    version = "3.7.1";
 
     src = fetchurl {
       # There are differences between the release tarball and the tarball GitHub
@@ -145,7 +145,7 @@ let
       # --version`), as well as the local documentation for all builtins (and
       # maybe other things).
       url = "https://github.com/fish-shell/fish-shell/releases/download/${version}/${pname}-${version}.tar.xz";
-      hash = "sha256-3xtzeLcU8GkLKF7Z5OWK/icKyY28nKWDlYnBr8yjOrE=";
+      hash = "sha256-YUyfVkPNB5nfOROV+mu8NklCe7g5cizjsRTTu8GjslA=";
     };
 
     # Fix FHS paths in tests
@@ -308,7 +308,7 @@ let
     passthru = {
       shellPath = "/bin/fish";
       tests = {
-        nixos = nixosTests.fish;
+        nixos = lib.optionalAttrs stdenv.isLinux nixosTests.fish;
 
         # Test the fish_config tool by checking the generated splash page.
         # Since the webserver requires a port to run, it is not started.
@@ -322,18 +322,17 @@ let
             # if we don't set `delete=False`, the file will get cleaned up
             # automatically (leading the test to fail because there's no
             # tempfile to check)
-            sed -e 's@, mode="w"@, mode="w", delete=False@' -i webconfig.py
+            ${lib.getExe gnused} -e 's@, mode="w"@, mode="w", delete=False@' -i webconfig.py
 
             # we delete everything after the fileurl is assigned
-            sed -e '/fileurl =/q' -i webconfig.py
+            ${lib.getExe gnused} -e '/fileurl =/q' -i webconfig.py
             echo "print(fileurl)" >> webconfig.py
 
             # and check whether the message appears on the page
-            cat (${python3}/bin/python ./webconfig.py \
-              | tail -n1 | sed -ne 's|.*\(/build/.*\)|\1|p' \
-            ) | grep 'a href="http://localhost.*Start the Fish Web config'
-
             # cannot test the http server because it needs a localhost port
+            cat (${python3}/bin/python ./webconfig.py \
+              | tail -n1 | ${lib.getExe gnused} -e 's|file://||' \
+            ) | ${lib.getExe gnugrep} -q 'a href="http://localhost.*Start the Fish Web config'
           '';
           in
           runCommand "test-web-config" { } ''
diff --git a/nixpkgs/pkgs/shells/fish/plugins/default.nix b/nixpkgs/pkgs/shells/fish/plugins/default.nix
index e3ccd9fb8a0f..7b17883c2211 100644
--- a/nixpkgs/pkgs/shells/fish/plugins/default.nix
+++ b/nixpkgs/pkgs/shells/fish/plugins/default.nix
@@ -56,6 +56,8 @@ lib.makeScope newScope (self: with self; {
 
   tide = callPackage ./tide.nix { };
 
+  transient-fish = callPackage ./transient-fish.nix { };
+
   wakatime-fish = callPackage ./wakatime-fish.nix { };
 
   z = callPackage ./z.nix { };
diff --git a/nixpkgs/pkgs/shells/fish/plugins/forgit.nix b/nixpkgs/pkgs/shells/fish/plugins/forgit.nix
index e5e226665989..920eb5be382e 100644
--- a/nixpkgs/pkgs/shells/fish/plugins/forgit.nix
+++ b/nixpkgs/pkgs/shells/fish/plugins/forgit.nix
@@ -2,13 +2,13 @@
 
 buildFishPlugin rec {
   pname = "forgit";
-  version = "24.03.1";
+  version = "24.03.2";
 
   src = fetchFromGitHub {
     owner = "wfxr";
     repo = "forgit";
     rev = version;
-    hash = "sha256-DIaoD6o+oY+/FnwQadQh0XqMVP4xbE8gAPtWrvwsG+c=";
+    hash = "sha256-DnGQHWx3uFHFEI1kMTB6hfmaE4tY4O/hesPKj5s4uwQ=";
   };
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/shells/fish/plugins/puffer.nix b/nixpkgs/pkgs/shells/fish/plugins/puffer.nix
index 0365c55e5351..107191ca52e6 100644
--- a/nixpkgs/pkgs/shells/fish/plugins/puffer.nix
+++ b/nixpkgs/pkgs/shells/fish/plugins/puffer.nix
@@ -1,20 +1,24 @@
-{ lib, buildFishPlugin, fetchFromGitHub }:
+{
+  lib,
+  buildFishPlugin,
+  fetchFromGitHub,
+}:
 
 buildFishPlugin rec {
   pname = "puffer";
-  version = "unstable-2022-10-07";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "nickeb96";
     repo = "puffer-fish";
-    rev = "fd0a9c95da59512beffddb3df95e64221f894631";
-    hash = "sha256-aij48yQHeAKCoAD43rGhqW8X/qmEGGkg8B4jSeqjVU0=";
+    rev = "v${version}";
+    hash = "sha256-2niYj0NLfmVIQguuGTA7RrPIcorJEPkxhH6Dhcy+6Bk=";
   };
 
-  meta = with lib; {
+  meta = {
     description = "Text Expansions for Fish";
     homepage = "https://github.com/nickeb96/puffer-fish";
-    license = licenses.mit;
-    maintainers = with maintainers; [ quantenzitrone ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ quantenzitrone ];
   };
 }
diff --git a/nixpkgs/pkgs/shells/fish/plugins/transient-fish.nix b/nixpkgs/pkgs/shells/fish/plugins/transient-fish.nix
new file mode 100644
index 000000000000..846436d2d196
--- /dev/null
+++ b/nixpkgs/pkgs/shells/fish/plugins/transient-fish.nix
@@ -0,0 +1,22 @@
+{ lib
+, buildFishPlugin
+, fetchFromGitHub
+}:
+buildFishPlugin {
+  pname = "transient-fish";
+  version = "0-unstable-2024-03-10";
+
+  src = fetchFromGitHub {
+    owner = "zzhaolei";
+    repo = "transient.fish";
+    rev = "be0093f1799462a93953e69896496dee4d063fd6";
+    hash = "sha256-rEkCimnkxcydKRI2y4DxEM7FD7F2/cGTZJN2Edq/Acc=";
+  };
+
+  meta = with lib; {
+    description = "Fish plugin to enable a transient prompt";
+    homepage = "https://github.com/zzhaolei/transient.fish";
+    license = licenses.mit;
+    maintainers = with maintainers; [ iynaix ];
+  };
+}
diff --git a/nixpkgs/pkgs/shells/fzf-git-sh/default.nix b/nixpkgs/pkgs/shells/fzf-git-sh/default.nix
index 598c2d0eb0b2..8d7ce5d1e0f7 100644
--- a/nixpkgs/pkgs/shells/fzf-git-sh/default.nix
+++ b/nixpkgs/pkgs/shells/fzf-git-sh/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fzf-git-sh";
-  version = "unstable-2022-09-30";
+  version = "0-unstable-2024-03-17";
 
   src = fetchFromGitHub {
     owner = "junegunn";
     repo = "fzf-git.sh";
-    rev = "9190e1bf7273d85f435fa759a5c3b20e588e9f7e";
-    sha256 = "sha256-2CGjk1oTXip+eAJMuOk/X3e2KTwfwzcKTcGToA2xPd4=";
+    rev = "e4cba1fcf8aed9a2348e47b0ba64299122b81709";
+    hash = "sha256-glI+TldLGGiXyI5ZghaEgjc+2DJCMdmBnho/Z7IgJoE=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/shells/hilbish/default.nix b/nixpkgs/pkgs/shells/hilbish/default.nix
index 57b7abc59e25..ed6bc7a159db 100644
--- a/nixpkgs/pkgs/shells/hilbish/default.nix
+++ b/nixpkgs/pkgs/shells/hilbish/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "An interactive Unix-like shell written in Go";
+    mainProgram = "hilbish";
     changelog = "https://github.com/Rosettea/Hilbish/releases/tag/v${version}";
     homepage = "https://github.com/Rosettea/Hilbish";
     maintainers = with maintainers; [ moni ];
diff --git a/nixpkgs/pkgs/shells/ion/default.nix b/nixpkgs/pkgs/shells/ion/default.nix
index 72b6387f8e16..0440a79e760f 100644
--- a/nixpkgs/pkgs/shells/ion/default.nix
+++ b/nixpkgs/pkgs/shells/ion/default.nix
@@ -49,6 +49,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Modern system shell with simple (and powerful) syntax";
+    mainProgram = "ion";
     homepage = "https://gitlab.redox-os.org/redox-os/ion";
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
diff --git a/nixpkgs/pkgs/shells/jush/default.nix b/nixpkgs/pkgs/shells/jush/default.nix
index a09024608bb6..42e8e13cceae 100644
--- a/nixpkgs/pkgs/shells/jush/default.nix
+++ b/nixpkgs/pkgs/shells/jush/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "just a useless shell";
+    mainProgram = "jush";
     homepage = "https://github.com/troglobit/jush";
     license = licenses.isc;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/shells/liquidprompt/default.nix b/nixpkgs/pkgs/shells/liquidprompt/default.nix
index 47e2e72c7ab7..acb34377d28d 100644
--- a/nixpkgs/pkgs/shells/liquidprompt/default.nix
+++ b/nixpkgs/pkgs/shells/liquidprompt/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A full-featured & carefully designed adaptive prompt for Bash & Zsh";
     homepage = "https://github.com/nojhan/liquidprompt";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ gerschtli ];
   };
diff --git a/nixpkgs/pkgs/shells/mrsh/default.nix b/nixpkgs/pkgs/shells/mrsh/default.nix
index 2b9bc4e3e22e..3bb76cb04df8 100644
--- a/nixpkgs/pkgs/shells/mrsh/default.nix
+++ b/nixpkgs/pkgs/shells/mrsh/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A minimal POSIX shell";
+    mainProgram = "mrsh";
     homepage = "https://mrsh.sh";
     license = licenses.mit;
     maintainers = with maintainers; [ matthiasbeyer ];
diff --git a/nixpkgs/pkgs/shells/murex/default.nix b/nixpkgs/pkgs/shells/murex/default.nix
index d44c32e81cfc..4e44b6bd7ecf 100644
--- a/nixpkgs/pkgs/shells/murex/default.nix
+++ b/nixpkgs/pkgs/shells/murex/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Bash-like shell and scripting environment with advanced features designed for safety and productivity";
+    mainProgram = "murex";
     homepage = "https://murex.rocks";
     license = licenses.gpl2;
     maintainers = with maintainers; [ dit7ya kashw2 ];
diff --git a/nixpkgs/pkgs/shells/nix-your-shell/default.nix b/nixpkgs/pkgs/shells/nix-your-shell/default.nix
index 9489fd4cf5a6..c93b8ab547e8 100644
--- a/nixpkgs/pkgs/shells/nix-your-shell/default.nix
+++ b/nixpkgs/pkgs/shells/nix-your-shell/default.nix
@@ -5,16 +5,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "nix-your-shell";
-  version = "1.4.1";
+  version = "1.4.4";
 
   src = fetchFromGitHub {
     owner = "MercuryTechnologies";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-pa52demadLi5VN+GixQKVL9iD1kb9c32PqIh86BIUR8=";
+    hash = "sha256-pBryTpCFwOkK5astzpYzhj/fJ9QS7IiKUck/Y4gLZZw=";
   };
 
-  cargoHash = "sha256-btM9AUH1S1AA8gEwXwouOT/E2oio0CmOZ738M+DUMiE=";
+  cargoHash = "sha256-6A7Lvys22dnFMKm1uRo2CCZk9LBRqHPBnmRPbvbDryI=";
 
   meta = with lib; {
     mainProgram = "nix-your-shell";
diff --git a/nixpkgs/pkgs/shells/nsh/default.nix b/nixpkgs/pkgs/shells/nsh/default.nix
index 881d14002ebd..3280bc9b2a38 100644
--- a/nixpkgs/pkgs/shells/nsh/default.nix
+++ b/nixpkgs/pkgs/shells/nsh/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A command-line shell like fish, but POSIX compatible";
+    mainProgram = "nsh";
     homepage = "https://github.com/nuta/nsh";
     changelog = "https://github.com/nuta/nsh/raw/v${version}/docs/changelog.md";
     license = [ licenses.cc0 /* or */ licenses.mit ];
diff --git a/nixpkgs/pkgs/shells/nushell/default.nix b/nixpkgs/pkgs/shells/nushell/default.nix
index bdc3e1a0da7a..313bc865da28 100644
--- a/nixpkgs/pkgs/shells/nushell/default.nix
+++ b/nixpkgs/pkgs/shells/nushell/default.nix
@@ -73,7 +73,7 @@ rustPlatform.buildRustPackage {
     description = "A modern shell written in Rust";
     homepage = "https://www.nushell.sh/";
     license = licenses.mit;
-    maintainers = with maintainers; [ Br1ght0ne johntitor marsam ];
+    maintainers = with maintainers; [ Br1ght0ne johntitor marsam joaquintrinanes ];
     mainProgram = "nu";
   };
 }
diff --git a/nixpkgs/pkgs/shells/nushell/nu_scripts/default.nix b/nixpkgs/pkgs/shells/nushell/nu_scripts/default.nix
index 6180fb7f8890..dc36f5296813 100644
--- a/nixpkgs/pkgs/shells/nushell/nu_scripts/default.nix
+++ b/nixpkgs/pkgs/shells/nushell/nu_scripts/default.nix
@@ -6,13 +6,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "nu_scripts";
-  version = "unstable-2024-03-02";
+  version = "unstable-2024-03-20";
 
   src = fetchFromGitHub {
     owner = "nushell";
     repo = pname;
-    rev = "25514da84d4249ecebdb74c3a23c7184fcc76f50";
-    hash = "sha256-70grgh8yMX3eFKaOTaXh1qxW75RNu7Y9pv0vvqtRc7I=";
+    rev = "707cda345078553f3e878a100ca103a28f440705";
+    hash = "sha256-pgihFkuPIjFTLYtVKaXA+NPUfs/8TpWoojpGyi5TLhY=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/nushell/plugins/default.nix b/nixpkgs/pkgs/shells/nushell/plugins/default.nix
index f4571d4da002..eb8bbe14c281 100644
--- a/nixpkgs/pkgs/shells/nushell/plugins/default.nix
+++ b/nixpkgs/pkgs/shells/nushell/plugins/default.nix
@@ -4,6 +4,6 @@ lib.makeScope newScope (self: with self; {
   gstat = callPackage ./gstat.nix { inherit Security; };
   formats = callPackage ./formats.nix { inherit IOKit Foundation; };
   query = callPackage ./query.nix { inherit IOKit CoreFoundation; };
-  regex = callPackage ./regex.nix { inherit IOKit; };
+  regex = throw "`nu_plugin_regex` is no longer compatible with the current Nushell release.";
   net = callPackage ./net.nix { inherit IOKit CoreFoundation; };
 })
diff --git a/nixpkgs/pkgs/shells/nushell/plugins/formats.nix b/nixpkgs/pkgs/shells/nushell/plugins/formats.nix
index fad270fb8df5..e95ea5513049 100644
--- a/nixpkgs/pkgs/shells/nushell/plugins/formats.nix
+++ b/nixpkgs/pkgs/shells/nushell/plugins/formats.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A formats plugin for Nushell";
+    mainProgram = "nu_plugin_formats";
     homepage = "https://github.com/nushell/nushell/tree/${version}/crates/nu_plugin_formats";
     license = licenses.mpl20;
     maintainers = with maintainers; [ viraptor aidalgol ];
diff --git a/nixpkgs/pkgs/shells/nushell/plugins/gstat.nix b/nixpkgs/pkgs/shells/nushell/plugins/gstat.nix
index 8a11be39ef59..c13e7d665330 100644
--- a/nixpkgs/pkgs/shells/nushell/plugins/gstat.nix
+++ b/nixpkgs/pkgs/shells/nushell/plugins/gstat.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A git status plugin for Nushell";
+    mainProgram = "nu_plugin_gstat";
     homepage = "https://github.com/nushell/nushell/tree/${version}/crates/nu_plugin_gstat";
     license = licenses.mpl20;
     maintainers = with maintainers; [ mrkkrp aidalgol ];
diff --git a/nixpkgs/pkgs/shells/nushell/plugins/query.nix b/nixpkgs/pkgs/shells/nushell/plugins/query.nix
index daee91a6e919..d9cbb5f25033 100644
--- a/nixpkgs/pkgs/shells/nushell/plugins/query.nix
+++ b/nixpkgs/pkgs/shells/nushell/plugins/query.nix
@@ -30,6 +30,7 @@ rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "A Nushell plugin to query JSON, XML, and various web data";
+    mainProgram = "nu_plugin_query";
     homepage = "https://github.com/nushell/nushell/tree/${version}/crates/nu_plugin_query";
     license = licenses.mpl20;
     maintainers = with maintainers; [ happysalada aidalgol ];
diff --git a/nixpkgs/pkgs/shells/nushell/plugins/regex.nix b/nixpkgs/pkgs/shells/nushell/plugins/regex.nix
deleted file mode 100644
index 4689a8390257..000000000000
--- a/nixpkgs/pkgs/shells/nushell/plugins/regex.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv
-, lib
-, rustPlatform
-, fetchFromGitHub
-, nix-update-script
-, IOKit
-}:
-
-rustPlatform.buildRustPackage {
-  pname = "nushell_plugin_regex";
-  version = "unstable-2023-10-08";
-
-  src = fetchFromGitHub {
-    owner = "fdncred";
-    repo = "nu_plugin_regex";
-    rev = "e1aa88e703f1f632ede685dd733472d34dd0c8e7";
-    hash = "sha256-GJgnsaeNDJoJjw8RPw6wpEq1mIult18Eh4frl8Plgxc=";
-  };
-
-  cargoHash = "sha256-AACpzSavY6MlYnl1lDYxVlfsEvEpNK0u8SzsoSZbqFc=";
-
-  buildInputs = lib.optionals stdenv.isDarwin [ IOKit ];
-
-  passthru = {
-    updateScript = nix-update-script { };
-  };
-
-  meta = with lib; {
-    description = "A Nushell plugin to parse regular expressions";
-    homepage = "https://github.com/fdncred/nu_plugin_regex";
-    license = licenses.mit;
-    maintainers = with maintainers; [ aidalgol ];
-    platforms = with platforms; all;
-  };
-}
diff --git a/nixpkgs/pkgs/shells/oh/default.nix b/nixpkgs/pkgs/shells/oh/default.nix
index 4504d6c86176..d58de0b3f0d8 100644
--- a/nixpkgs/pkgs/shells/oh/default.nix
+++ b/nixpkgs/pkgs/shells/oh/default.nix
@@ -16,6 +16,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/michaelmacinnis/oh";
     description = "A new Unix shell";
+    mainProgram = "oh";
     license = licenses.mit;
   };
 
diff --git a/nixpkgs/pkgs/shells/oksh/default.nix b/nixpkgs/pkgs/shells/oksh/default.nix
index 7576a8ab9bda..4c309ad30614 100644
--- a/nixpkgs/pkgs/shells/oksh/default.nix
+++ b/nixpkgs/pkgs/shells/oksh/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Portable OpenBSD ksh, based on the Public Domain Korn Shell (pdksh)";
+    mainProgram = "oksh";
     homepage = "https://github.com/ibara/oksh";
     license = licenses.publicDomain;
     maintainers = with maintainers; [ siraben ];
diff --git a/nixpkgs/pkgs/shells/scponly/default.nix b/nixpkgs/pkgs/shells/scponly/default.nix
index f15f04cfe227..41a09adf9e7c 100644
--- a/nixpkgs/pkgs/shells/scponly/default.nix
+++ b/nixpkgs/pkgs/shells/scponly/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A shell that only permits scp and sftp-server";
+    mainProgram = "scponly";
     homepage = "https://github.com/scponly/scponly";
     license = with licenses; [ bsd2 ];
     maintainers = with maintainers; [ wmertens ];
diff --git a/nixpkgs/pkgs/shells/yash/default.nix b/nixpkgs/pkgs/shells/yash/default.nix
index 4957c657b86d..4643898fec84 100644
--- a/nixpkgs/pkgs/shells/yash/default.nix
+++ b/nixpkgs/pkgs/shells/yash/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yash";
-  version = "2.55";
+  version = "2.56.1";
 
   src = fetchFromGitHub {
     owner = "magicant";
     repo = pname;
     rev = version;
-    hash = "sha256-raTIqklo69JEuhzdWUK3uywuLjqeQJCJ9nvnLRxlGr4=";
+    hash = "sha256-G4l0JmtrYaVKfQiJKTOiNWgpsKNhHtbAT0l/VboMJTc=";
   };
 
   strictDeps = true;
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://yash.osdn.jp/index.html.en";
     description = "Yet another POSIX-compliant shell";
+    mainProgram = "yash";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ qbit ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix b/nixpkgs/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix
index fa4d9f4cf477..21f265e84645 100644
--- a/nixpkgs/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/agkozak-zsh-prompt/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "agkozak-zsh-prompt";
-  version = "3.11.2";
+  version = "3.11.3";
 
   src = fetchFromGitHub {
     owner = "agkozak";
     repo = "agkozak-zsh-prompt";
     rev = "v${version}";
-    sha256 = "sha256-QDUI9EYflITttkX9Khij62ybBMYJwPfayqj+wr495mM=";
+    sha256 = "sha256-YBqFA/DK2K1effniwjPSe5VMx9tZGbmxyJp92TiingU=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/shells/zsh/antibody/default.nix b/nixpkgs/pkgs/shells/zsh/antibody/default.nix
index 8df75ac15b95..02f872730a74 100644
--- a/nixpkgs/pkgs/shells/zsh/antibody/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/antibody/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The fastest shell plugin manager";
+    mainProgram = "antibody";
     homepage = "https://github.com/getantibody/antibody";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne ];
diff --git a/nixpkgs/pkgs/shells/zsh/antidote/default.nix b/nixpkgs/pkgs/shells/zsh/antidote/default.nix
index 01f6084cb591..f570c813e596 100644
--- a/nixpkgs/pkgs/shells/zsh/antidote/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/antidote/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "1.9.5";
+  version = "1.9.6";
   pname = "antidote";
 
   src = fetchFromGitHub {
     owner = "mattmc3";
     repo = "antidote";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-eS2sf+N50N+oyk8wCp71hYF7WDagFBlTcAB/sFdhw9U=";
+    hash = "sha256-8kNMCo/DwZvBwqh/434GqK7z4KXgkwZH9SazLbH8SfM=";
   };
 
   dontPatch = true;
diff --git a/nixpkgs/pkgs/shells/zsh/nix-zsh-completions/default.nix b/nixpkgs/pkgs/shells/zsh/nix-zsh-completions/default.nix
index 32565af35be9..2d4edf3d34ba 100644
--- a/nixpkgs/pkgs/shells/zsh/nix-zsh-completions/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/nix-zsh-completions/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nix-zsh-completions";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nix-zsh-completions";
     rev = "refs/tags/${version}";
-    hash = "sha256-DKvCpjAeCiUwD5l6PUW7WlEvM0cNZEOk41IiVXoh9D8=";
+    hash = "sha256-bgbMc4HqigqgdkvUe/CWbUclwxpl17ESLzCIP8Sz+F8=";
   };
 
   strictDeps = true;
@@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
     description = "ZSH completions for Nix, NixOS, and NixOps";
     license = licenses.bsd3;
     platforms = platforms.all;
-    maintainers = with maintainers; [ olejorgenb hedning ma27 ];
+    maintainers = with maintainers; [ olejorgenb hedning ma27 sebtm ];
   };
 }
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-abbr/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-abbr/default.nix
index 3ab04c74b95b..668637ef1cc6 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-abbr/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-abbr/default.nix
@@ -5,13 +5,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "zsh-abbr";
-  version = "5.3.0";
+  version = "5.4.1";
 
   src = fetchFromGitHub {
     owner = "olets";
     repo = "zsh-abbr";
     rev = "v${version}";
-    hash = "sha256-TdTjIt8SmwxXJqfaaCyBnBRzMm1Ux1nELGTkpY2Lmrc=";
+    hash = "sha256-gEBGMVR1lMVKNPVuPjtdPkgOXI1MWO0EAtk7JRmS0Ok=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-forgit/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-forgit/default.nix
index 28847369a9c8..08f31a995aeb 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-forgit/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-forgit/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/wfxr/forgit";
     description = "A utility tool powered by fzf for using git interactively";
+    mainProgram = "git-forgit";
     license = licenses.mit;
     maintainers = with maintainers; [ deejayem ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix
index 97a6992ee672..dcb3ffd19ec7 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-fzf-tab/default.nix
+++ b/nixpkgs/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.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "Aloxaf";
     repo = "fzf-tab";
     rev = "v${version}";
-    hash = "sha256-o3R9dh9t8w/SVO3IUeJqP8kkQxwnRjNX8oZ4wSZxBYo=";
+    hash = "sha256-0/YOL1/G2SWncbLNaclSYUz7VyfWu+OB8TYJYm4NYkM=";
   };
 
   strictDeps = true;
@@ -31,8 +31,8 @@ in stdenv.mkDerivation rec {
     pushd modules
 
     tar -xf ${zsh.src}
-    ln -s $(pwd)/src/fzftab.c zsh-${zsh.version}/Src/Modules/
-    ln -s $(pwd)/src/fzftab.mdd zsh-${zsh.version}/Src/Modules/
+    ln -s $(pwd)/Src/fzftab.c zsh-${zsh.version}/Src/Modules/
+    ln -s $(pwd)/Src/fzftab.mdd zsh-${zsh.version}/Src/Modules/
 
     pushd zsh-${zsh.version}
 
diff --git a/nixpkgs/pkgs/stdenv/adapters.nix b/nixpkgs/pkgs/stdenv/adapters.nix
index 84d3258949eb..c6b0aece4530 100644
--- a/nixpkgs/pkgs/stdenv/adapters.nix
+++ b/nixpkgs/pkgs/stdenv/adapters.nix
@@ -6,7 +6,7 @@
 
 let
   # N.B. Keep in sync with default arg for stdenv/generic.
-  defaultMkDerivationFromStdenv = import ./generic/make-derivation.nix { inherit lib config; };
+  defaultMkDerivationFromStdenv = stdenv: (import ./generic/make-derivation.nix { inherit lib config; } stdenv).mkDerivation;
 
   # Low level function to help with overriding `mkDerivationFromStdenv`. One
   # gives it the old stdenv arguments and a "continuation" function, and
@@ -50,19 +50,18 @@ rec {
   # because older compilers may not be able to parse the headers from the default stdenv’s libc++.
   overrideLibcxx = stdenv:
     assert stdenv.cc.libcxx != null;
+    assert pkgs.stdenv.cc.libcxx != null;
+    # only unified libcxx / libcxxabi stdenv's are supported
+    assert lib.versionAtLeast pkgs.stdenv.cc.libcxx.version "12";
+    assert lib.versionAtLeast stdenv.cc.libcxx.version "12";
     let
       llvmLibcxxVersion = lib.getVersion llvmLibcxx;
-      stdenvLibcxxVersion = lib.getVersion stdenvLibcxx;
 
       stdenvLibcxx = pkgs.stdenv.cc.libcxx;
-      stdenvCxxabi = pkgs.stdenv.cc.libcxx.cxxabi;
-
       llvmLibcxx = stdenv.cc.libcxx;
-      llvmCxxabi = stdenv.cc.libcxx.cxxabi;
 
       libcxx = pkgs.runCommand "${stdenvLibcxx.name}-${llvmLibcxxVersion}" {
         outputs = [ "out" "dev" ];
-        inherit cxxabi;
         isLLVM = true;
       } ''
         mkdir -p "$dev/nix-support"
@@ -70,21 +69,10 @@ rec {
         echo '${stdenvLibcxx}' > "$dev/nix-support/propagated-build-inputs"
         ln -s '${lib.getDev llvmLibcxx}/include' "$dev/include"
       '';
-
-      cxxabi = pkgs.runCommand "${stdenvCxxabi.name}-${llvmLibcxxVersion}" {
-        outputs = [ "out" "dev" ];
-        inherit (stdenvCxxabi) libName;
-      } ''
-        mkdir -p "$dev/nix-support"
-        ln -s '${stdenvCxxabi}' "$out"
-        echo '${stdenvCxxabi}' > "$dev/nix-support/propagated-build-inputs"
-        ln -s '${lib.getDev llvmCxxabi}/include' "$dev/include"
-      '';
     in
     overrideCC stdenv (stdenv.cc.override {
       inherit libcxx;
       extraPackages = [
-        cxxabi
         pkgs.buildPackages.targetPackages."llvmPackages_${lib.versions.major llvmLibcxxVersion}".compiler-rt
       ];
     });
@@ -144,10 +132,10 @@ rec {
     # extraBuildInputs are dropped in cross.nix, but darwin still needs them
     extraBuildInputs = [ pkgs.buildPackages.darwin.CF ];
     mkDerivationFromStdenv = withOldMkDerivation old (stdenv: mkDerivationSuper: args:
-    (mkDerivationSuper args).overrideAttrs (finalAttrs: {
-      NIX_CFLAGS_LINK = toString (finalAttrs.NIX_CFLAGS_LINK or "")
+    (mkDerivationSuper args).overrideAttrs (prevAttrs: {
+      NIX_CFLAGS_LINK = toString (prevAttrs.NIX_CFLAGS_LINK or "")
         + lib.optionalString (stdenv.cc.isGNU or false) " -static-libgcc";
-      nativeBuildInputs = (finalAttrs.nativeBuildInputs or [])
+      nativeBuildInputs = (prevAttrs.nativeBuildInputs or [])
         ++ lib.optionals stdenv.hasCC [
           (pkgs.buildPackages.makeSetupHook {
             name = "darwin-portable-libSystem-hook";
@@ -237,14 +225,18 @@ rec {
       });
     });
 
+  /* Copy the libstdc++ from the model stdenv to the target stdenv.
+   *
+   * TODO(@connorbaker):
+   * This interface provides behavior which should be revisited prior to the
+   * release of 24.05. For a more detailed explanation and discussion, see
+   * https://github.com/NixOS/nixpkgs/issues/283517. */
   useLibsFrom = modelStdenv: targetStdenv:
     let
       ccForLibs = modelStdenv.cc.cc;
-      cc = pkgs.wrapCCWith {
-        /* NOTE: cc.cc is the unwrapped compiler. Should we respect the old
-         * wrapper instead? */
-        cc = targetStdenv.cc.cc;
-
+      /* NOTE(@connorbaker):
+       * This assumes targetStdenv.cc is a cc-wrapper. */
+      cc = targetStdenv.cc.override {
         /* NOTE(originally by rrbutani):
          * Normally the `useCcForLibs`/`gccForLibs` mechanism is used to get a
          * clang based `cc` to use `libstdc++` (from gcc).
diff --git a/nixpkgs/pkgs/stdenv/darwin/default.nix b/nixpkgs/pkgs/stdenv/darwin/default.nix
index 1433369c3252..e2ebe4d6bbb5 100644
--- a/nixpkgs/pkgs/stdenv/darwin/default.nix
+++ b/nixpkgs/pkgs/stdenv/darwin/default.nix
@@ -81,7 +81,6 @@ let
         };
 
         extraPackages = [
-          prevStage.llvmPackages.libcxxabi
           prevStage.llvmPackages.compiler-rt
         ];
 
@@ -196,7 +195,6 @@ in
       clang-unwrapped = null;
       libllvm = null;
       libcxx = null;
-      libcxxabi = null;
       compiler-rt = null;
     };
   })
@@ -346,18 +344,6 @@ in
               '';
               passthru = {
                 isLLVM = true;
-                cxxabi = self.llvmPackages.libcxxabi;
-                isFromBootstrapFiles = true;
-              };
-            };
-            libcxxabi = self.stdenv.mkDerivation {
-              name = "bootstrap-stage0-libcxxabi";
-              buildCommand = ''
-                mkdir -p $out/lib
-                ln -s ${bootstrapTools}/lib/libc++abi.dylib $out/lib
-              '';
-              passthru = {
-                libName = "c++abi";
                 isFromBootstrapFiles = true;
               };
             };
@@ -413,7 +399,7 @@ in
     assert (with prevStage.darwin; (! useAppleSDKLibs) -> CF == null);
 
     assert lib.all isFromBootstrapFiles (with prevStage.llvmPackages; [
-      clang-unwrapped libclang libllvm llvm compiler-rt libcxx libcxxabi
+      clang-unwrapped libclang libllvm llvm compiler-rt libcxx
     ]);
 
     stageFun prevStage {
@@ -480,7 +466,7 @@ in
             inherit (prevStage.llvmPackages) clang-unwrapped libclang libllvm llvm;
           });
           libraries = super.llvmPackages.libraries.extend (_: _: {
-            inherit (prevStage.llvmPackages) compiler-rt libcxx libcxxabi;
+            inherit (prevStage.llvmPackages) compiler-rt libcxx;
           });
         in
         { inherit tools libraries; inherit (prevStage.llvmPackages) release_version; } // tools // libraries
@@ -526,7 +512,7 @@ in
     assert lib.all isFromNixpkgs (with prevStage.darwin; [ dyld launchd xnu ]);
 
     assert lib.all isFromBootstrapFiles (with prevStage.llvmPackages; [
-      clang-unwrapped libclang libllvm llvm compiler-rt libcxx libcxxabi
+      clang-unwrapped libclang libllvm llvm compiler-rt libcxx
     ]);
 
     assert lib.getVersion prevStage.stdenv.cc.bintools.bintools == "boot";
@@ -580,7 +566,7 @@ in
             clang = prevStage.stdenv.cc;
           });
           libraries = super.llvmPackages.libraries.extend (_: _: {
-            inherit (prevStage.llvmPackages) compiler-rt libcxx libcxxabi;
+            inherit (prevStage.llvmPackages) compiler-rt libcxx;
           });
         in
         { inherit tools libraries; inherit (prevStage.llvmPackages) release_version; } // tools // libraries
@@ -626,7 +612,7 @@ in
     assert lib.all isFromNixpkgs (with prevStage.darwin; [ dyld launchd xnu ]);
 
     assert lib.all isFromBootstrapFiles (with prevStage.llvmPackages; [
-      clang-unwrapped libclang libllvm llvm compiler-rt libcxx libcxxabi
+      clang-unwrapped libclang libllvm llvm compiler-rt libcxx
     ]);
 
     assert lib.getVersion prevStage.stdenv.cc.bintools.bintools == lib.getVersion prevStage.darwin.cctools-port;
@@ -670,17 +656,8 @@ in
           libraries = super.llvmPackages.libraries.extend (selfLib: superLib: {
             compiler-rt = null;
             libcxx = superLib.libcxx.override ({
-              inherit (selfLib) libcxxabi;
               stdenv = libcxxBootstrapStdenv;
             });
-            libcxxabi = superLib.libcxxabi.override {
-              stdenv = libcxxBootstrapStdenv;
-            }
-            # Setting `standalone = true` is only needed with older verions of LLVM. Newer ones
-            # automatically do what is necessary to bootstrap lib++abi.
-            // lib.optionalAttrs (builtins.any (v: llvmMajor == v) [ "7" "11" "12" "13" ]) {
-              standalone = true;
-            };
           });
         in
         { inherit libraries; } // libraries
@@ -726,7 +703,7 @@ in
     assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.llvmPackages; [
       clang-unwrapped libclang libllvm llvm
     ]);
-    assert lib.all isBuiltByNixpkgsCompiler (with prevStage.llvmPackages; [ libcxx libcxxabi ]);
+    assert lib.all isBuiltByNixpkgsCompiler (with prevStage.llvmPackages; [ libcxx ]);
     assert prevStage.llvmPackages.compiler-rt == null;
 
     assert lib.getVersion prevStage.stdenv.cc.bintools.bintools == lib.getVersion prevStage.darwin.cctools-port;
@@ -763,7 +740,7 @@ in
           });
 
           libraries = super.llvmPackages.libraries.extend (selfLib: superLib: {
-            inherit (prevStage.llvmPackages) compiler-rt libcxx libcxxabi;
+            inherit (prevStage.llvmPackages) compiler-rt libcxx;
           });
         in
         { inherit tools libraries; inherit (prevStage.llvmPackages) release_version; } // tools // libraries
@@ -779,7 +756,6 @@ in
         in
         self.overrideCC stdenvNoCF (self.llvmPackages.clangNoCompilerRtWithLibc.override {
           inherit (self.llvmPackages) libcxx;
-          extraPackages = [ self.llvmPackages.libcxxabi ];
         });
     };
 
@@ -827,7 +803,7 @@ in
     assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.llvmPackages; [
       clang-unwrapped libclang libllvm llvm
     ]);
-    assert lib.all isBuiltByNixpkgsCompiler (with prevStage.llvmPackages; [ libcxx libcxxabi ]);
+    assert lib.all isBuiltByNixpkgsCompiler (with prevStage.llvmPackages; [ libcxx ]);
     assert prevStage.llvmPackages.compiler-rt == null;
 
     assert lib.getVersion prevStage.stdenv.cc.bintools.bintools == lib.getVersion prevStage.darwin.cctools-llvm;
@@ -874,12 +850,11 @@ in
           });
 
           libraries = super.llvmPackages.libraries.extend (selfLib: superLib: {
-            inherit (prevStage.llvmPackages) libcxx libcxxabi;
+            inherit (prevStage.llvmPackages) libcxx;
 
             # Make sure compiler-rt is linked against the CF from this stage, which can be
             # propagated to the final stdenv. CF is required by ASAN.
             compiler-rt = superLib.compiler-rt.override ({
-              inherit (selfLib) libcxxabi;
               inherit (self.llvmPackages) libllvm;
               stdenv = self.stdenv.override {
                 extraBuildInputs = [ self.darwin.CF ];
@@ -907,8 +882,6 @@ in
           bintools = self.llvmPackages.clangNoCompilerRtWithLibc.bintools.override {
             libc = self.darwin.Libsystem;
           };
-
-          extraPackages = [ self.llvmPackages.libcxxabi ];
         });
     };
 
@@ -924,7 +897,7 @@ in
 
   # Rebuild LLVM with LLVM. This stage also rebuilds certain dependencies needed by LLVM.
   #
-  # LLVM requires: libcxx libcxxabi libffi libiconv libxml2 ncurses zlib
+  # LLVM requires: libcxx libffi libiconv libxml2 ncurses zlib
   (prevStage:
     # previous stage2-CF stdenv:
     assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [
@@ -954,7 +927,7 @@ in
     assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.llvmPackages; [
       clang-unwrapped libclang libllvm llvm
     ]);
-    assert lib.all isBuiltByNixpkgsCompiler (with prevStage.llvmPackages; [ libcxx libcxxabi ]);
+    assert lib.all isBuiltByNixpkgsCompiler (with prevStage.llvmPackages; [ libcxx ]);
 
     assert lib.getVersion prevStage.stdenv.cc.bintools.bintools == lib.getVersion prevStage.darwin.cctools-llvm;
 
@@ -986,7 +959,7 @@ in
       llvmPackages = super.llvmPackages // (
         let
           libraries = super.llvmPackages.libraries.extend (_: _: {
-           inherit (prevStage.llvmPackages) compiler-rt libcxx libcxxabi;
+           inherit (prevStage.llvmPackages) compiler-rt libcxx;
           });
         in
         { inherit libraries; } // libraries
@@ -1033,7 +1006,7 @@ in
     assert lib.all isFromNixpkgs (with prevStage.darwin; [ dyld launchd libclosure libdispatch xnu ]);
 
     assert lib.all isBuiltByNixpkgsCompiler (with prevStage.llvmPackages; [
-      clang-unwrapped libclang libllvm llvm compiler-rt libcxx libcxxabi
+      clang-unwrapped libclang libllvm llvm compiler-rt libcxx
     ]);
 
     assert lib.getVersion prevStage.stdenv.cc.bintools.bintools == lib.getVersion prevStage.darwin.cctools-llvm;
@@ -1117,7 +1090,6 @@ in
               };
 
               extraPackages = [
-                self.llvmPackages.libcxxabi
                 self.llvmPackages.compiler-rt
               ];
 
@@ -1158,7 +1130,7 @@ in
             };
           });
           libraries = super.llvmPackages.libraries.extend (_: _:{
-            inherit (prevStage.llvmPackages) compiler-rt libcxx libcxxabi;
+            inherit (prevStage.llvmPackages) compiler-rt libcxx;
           });
         in
         { inherit tools libraries; } // tools // libraries
@@ -1200,7 +1172,7 @@ in
     assert lib.all isFromNixpkgs (with prevStage.darwin; [ dyld launchd libclosure libdispatch xnu ]);
 
     assert lib.all isBuiltByNixpkgsCompiler (with prevStage.llvmPackages; [
-      clang-unwrapped libclang libllvm llvm compiler-rt libcxx libcxxabi
+      clang-unwrapped libclang libllvm llvm compiler-rt libcxx
     ]);
 
     assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [
@@ -1312,8 +1284,6 @@ in
         compiler-rt.dev
         libcxx
         libcxx.dev
-        libcxxabi
-        libcxxabi.dev
         lld
         llvm
         llvm.lib
@@ -1356,7 +1326,7 @@ in
               inherit (prevStage.llvmPackages) clang clang-unwrapped libclang libllvm llvm;
             });
             libraries = super.llvmPackages.libraries.extend (_: _: {
-              inherit (prevStage.llvmPackages) compiler-rt libcxx libcxxabi;
+              inherit (prevStage.llvmPackages) compiler-rt libcxx;
             });
           in
           { inherit tools libraries; } // tools // libraries
@@ -1382,7 +1352,6 @@ in
     assert isBuiltByNixpkgsCompiler prevStage.llvmPackages.clang-unwrapped;
     assert isBuiltByNixpkgsCompiler prevStage.llvmPackages.libllvm;
     assert isBuiltByNixpkgsCompiler prevStage.llvmPackages.libcxx;
-    assert isBuiltByNixpkgsCompiler prevStage.llvmPackages.libcxxabi;
     assert isBuiltByNixpkgsCompiler prevStage.llvmPackages.compiler-rt;
     { inherit (prevStage) config overlays stdenv; })
 ]
diff --git a/nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix
index 384567739d0e..836a938b84ae 100644
--- a/nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix
+++ b/nixpkgs/pkgs/stdenv/darwin/make-bootstrap-tools.nix
@@ -1,21 +1,5 @@
 { pkgspath ? ../../.., test-pkgspath ? pkgspath
 , localSystem ? { system = builtins.currentSystem; }
-# Specify the desired LLVM version in an overlay to avoid the use of
-# mismatching versions.
-#
-# The llvmPackages that we take things (clang, libc++ and such) from
-# is specified explicitly to be llvmPackages_11 to keep the
-# bootstrap-tools stable.  However, tools like otool,
-# install_name_tool and strip are taken straight from stdenv.cc,
-# which, after the bump, is a different LLVM version altogether.
-#
-# The original intent was that bootstrap-tools specified LLVM 11
-# exhaustively but it didn't. That should be rectified with this
-# PR. As to why stick with 11? That's just to keep the
-# bootstrap-tools unchanged.
-#
-# https://github.com/NixOS/nixpkgs/pull/267058/files#r1390889848
-, overlays ? [(self: super: { llvmPackages = super.llvmPackages_11; })]
 , crossSystem ? null
 , bootstrapFiles ? null
 }:
@@ -29,184 +13,280 @@ let cross = if crossSystem != null
               in (import "${pkgspath}/pkgs/stdenv/darwin" args');
            }
       else {};
-in with import pkgspath ({ inherit localSystem overlays; } // cross // custom-bootstrap);
+in with import pkgspath ({ inherit localSystem; } // cross // custom-bootstrap);
 
 rec {
-  coreutils_ = (coreutils.override (args: {
-    # We want coreutils without ACL support.
-    aclSupport = false;
-    # Cannot use a single binary build, or it gets dynamically linked against gmp.
-    singleBinary = false;
-  })).overrideAttrs (oa: {
-    # Increase header size to be able to inject extra RPATHs. Otherwise
-    # x86_64-darwin build fails as:
-    #    https://cache.nixos.org/log/g5wyq9xqshan6m3kl21bjn1z88hx48rh-stdenv-bootstrap-tools.drv
-    NIX_LDFLAGS = (oa.NIX_LDFLAGS or "") + " -headerpad_max_install_names";
-  });
-
-  cctools_ = darwin.cctools;
-
-  # Avoid debugging larger changes for now.
-  bzip2_ = bzip2.override (args: { enableStatic = true; enableShared = false; });
-
-  # Avoid messing with libkrb5 and libnghttp2.
-  curl_ = curlMinimal.override (args: { gssSupport = false; http2Support = false; });
-
   build = stdenv.mkDerivation {
     name = "stdenv-bootstrap-tools";
 
-    nativeBuildInputs = [ nukeReferences dumpnar ];
+    nativeBuildInputs = [ dumpnar nukeReferences ];
+
+    buildCommand = let
+      inherit (lib)
+        getBin
+        getDev
+        getLib
+        ;
+
+      coreutils_ = (coreutils.override (args: {
+        # We want coreutils without ACL support.
+        aclSupport = false;
+        # Cannot use a single binary build, or it gets dynamically linked against gmp.
+        singleBinary = false;
+      })).overrideAttrs (oa: {
+        # Increase header size to be able to inject extra RPATHs. Otherwise
+        # x86_64-darwin build fails as:
+        #    https://cache.nixos.org/log/g5wyq9xqshan6m3kl21bjn1z88hx48rh-stdenv-bootstrap-tools.drv
+        NIX_LDFLAGS = (oa.NIX_LDFLAGS or "") + " -headerpad_max_install_names";
+      });
+
+      cctools_ = darwin.cctools;
+
+      # Avoid messing with libkrb5 and libnghttp2.
+      curl_ = curlMinimal.override (args: {
+        gssSupport = false;
+        http2Support = false;
+        scpSupport = false;
+      });
+
+      gnutar_ = (gnutar.override { libintl = null; }).overrideAttrs (old: {
+        configureFlags = [
+          "--disable-nls"
+        ] ++ old.configureFlags or [];
+      });
+
+      xz_ = xz.override { enableStatic = true; };
+
+      unpackScript = writeText "bootstrap-tools-unpack.sh" ''
+        set -euo pipefail
+
+        echo Unpacking the bootstrap tools... >&2
+        mkdir $out
+        tar xf "$1" -C $out
+
+        updateInstallName() {
+          local path="$1"
+
+          cp "$path" "$path.new"
+          install_name_tool -id "$path" "$path.new"
+          codesign -f -i "$(basename "$path")" -s - "$path.new"
+          mv -f "$path.new" "$path"
+        }
+
+        find $out/lib -type f -name '*.dylib' -print0 | while IFS= read -r -d $'\0' lib; do
+          updateInstallName "$lib"
+        done
 
-    buildCommand = ''
+        # Provide a gunzip script.
+        cat > $out/bin/gunzip <<EOF
+        #!$out/bin/sh
+        exec $out/bin/gzip -d "\$@"
+        EOF
+        chmod +x $out/bin/gunzip
+
+        # Provide fgrep/egrep.
+        echo "#! $out/bin/sh" > $out/bin/egrep
+        echo "exec $out/bin/grep -E \"\$@\"" >> $out/bin/egrep
+        echo "#! $out/bin/sh" > $out/bin/fgrep
+        echo "exec $out/bin/grep -F \"\$@\"" >> $out/bin/fgrep
+
+        cat >$out/bin/dsymutil << EOF
+        #!$out/bin/sh
+        EOF
+
+        chmod +x $out/bin/egrep $out/bin/fgrep $out/bin/dsymutil
+    '';
+
+    in
+    ''
       mkdir -p $out/bin $out/lib $out/lib/system $out/lib/darwin
 
       ${lib.optionalString stdenv.targetPlatform.isx86_64 ''
         # Copy libSystem's .o files for various low-level boot stuff.
-        cp -d ${lib.getLib darwin.Libsystem}/lib/*.o $out/lib
+        cp -d ${getLib darwin.Libsystem}/lib/*.o $out/lib
 
         # Resolv is actually a link to another package, so let's copy it properly
-        cp -L ${lib.getLib darwin.Libsystem}/lib/libresolv.9.dylib $out/lib
+        cp -L ${getLib darwin.Libsystem}/lib/libresolv.9.dylib $out/lib
       ''}
 
-      cp -rL ${darwin.Libsystem}/include $out
+      cp -rL ${getDev darwin.Libsystem}/include $out
       chmod -R u+w $out/include
-      cp -rL ${darwin.ICU}/include* $out/include
-      cp -rL ${libiconv}/include/* $out/include
-      cp -rL ${lib.getDev gnugrep.pcre2}/include/* $out/include
+      cp -rL ${getDev libiconv}/include/* $out/include
+      cp -rL ${getDev gnugrep.pcre2}/include/* $out/include
       mv $out/include $out/include-Libsystem
 
       # Copy coreutils, bash, etc.
-      cp ${coreutils_}/bin/* $out/bin
+      cp ${getBin coreutils_}/bin/* $out/bin
       (cd $out/bin && rm vdir dir sha*sum pinky factor pathchk runcon shuf who whoami shred users)
 
-      cp ${bash}/bin/bash $out/bin
+      cp ${getBin bash}/bin/bash $out/bin
       ln -s bash $out/bin/sh
-      cp ${findutils}/bin/find $out/bin
-      cp ${findutils}/bin/xargs $out/bin
-      cp -d ${diffutils}/bin/* $out/bin
-      cp -d ${gnused}/bin/* $out/bin
-      cp -d ${gnugrep}/bin/grep $out/bin
-      cp ${gawk}/bin/gawk $out/bin
-      cp -d ${gawk}/bin/awk $out/bin
-      cp ${gnutar}/bin/tar $out/bin
-      cp ${gzip}/bin/.gzip-wrapped $out/bin/gzip
-      cp ${bzip2_.bin}/bin/bzip2 $out/bin
+      cp ${getBin findutils}/bin/find $out/bin
+      cp ${getBin findutils}/bin/xargs $out/bin
+      cp -d ${getBin diffutils}/bin/* $out/bin
+      cp -d ${getBin gnused}/bin/* $out/bin
+      cp -d ${getBin gnugrep}/bin/grep $out/bin
+      cp ${getBin gawk}/bin/gawk $out/bin
+      cp -d ${getBin gawk}/bin/awk $out/bin
+      cp ${getBin gnutar}/bin/tar $out/bin
+      cp ${getBin gzip}/bin/.gzip-wrapped $out/bin/gzip
+      cp ${getBin bzip2}/bin/bzip2 $out/bin
       ln -s bzip2 $out/bin/bunzip2
-      cp -d ${gnumake}/bin/* $out/bin
-      cp -d ${patch}/bin/* $out/bin
-      cp -d ${xz.bin}/bin/xz $out/bin
-      cp ${cpio}/bin/cpio $out/bin
+      cp -d ${getBin gnumake}/bin/* $out/bin
+      cp -d ${getBin patch}/bin/* $out/bin
+      cp -d ${getBin xz}/bin/xz $out/bin
+      cp ${getBin cpio}/bin/cpio $out/bin
 
       # This used to be in-nixpkgs, but now is in the bundle
       # because I can't be bothered to make it partially static
-      cp ${curl_.bin}/bin/curl $out/bin
-      cp -d ${curl_.out}/lib/libcurl*.dylib $out/lib
-      cp -d ${libssh2.out}/lib/libssh*.dylib $out/lib
-      cp -d ${lib.getLib openssl}/lib/*.dylib $out/lib
-
-      cp -d ${gnugrep.pcre2.out}/lib/libpcre2*.dylib $out/lib
-      cp -d ${lib.getLib libiconv}/lib/lib*.dylib $out/lib
-      cp -d ${lib.getLib gettext}/lib/libintl*.dylib $out/lib
+      cp ${getBin curl_}/bin/curl $out/bin
+      cp -d ${getLib curl_}/lib/libcurl*.dylib $out/lib
+      cp -d ${getLib openssl}/lib/*.dylib $out/lib
+
+      cp -d ${getLib gnugrep.pcre2}/lib/libpcre2*.dylib $out/lib
+      cp -d ${getLib libiconv}/lib/lib*.dylib $out/lib
+      cp -d ${getLib gettext}/lib/libintl*.dylib $out/lib
       chmod +x $out/lib/libintl*.dylib
-      cp -d ${ncurses.out}/lib/libncurses*.dylib $out/lib
-      cp -d ${libxml2.out}/lib/libxml2*.dylib $out/lib
+      cp -d ${getLib ncurses}/lib/libncurses*.dylib $out/lib
+      cp -d ${getLib libxml2}/lib/libxml2*.dylib $out/lib
 
       # Copy what we need of clang
-      cp -d ${llvmPackages.clang-unwrapped}/bin/clang* $out/bin
-      cp -rd ${lib.getLib llvmPackages.clang-unwrapped}/lib/* $out/lib
+      cp -d ${getBin llvmPackages.clang-unwrapped}/bin/clang{,++,-cl,-cpp,-[0-9]*} $out/bin
+      cp -d ${getLib llvmPackages.clang-unwrapped}/lib/libclang-cpp*.dylib $out/lib
+      cp -rd ${getLib llvmPackages.clang-unwrapped}/lib/clang $out/lib
 
-      cp -d ${lib.getLib llvmPackages.libcxx}/lib/libc++*.dylib $out/lib
-      cp -d ${lib.getLib llvmPackages.libcxxabi}/lib/libc++abi*.dylib $out/lib
-      cp -d ${lib.getLib llvmPackages.compiler-rt}/lib/darwin/libclang_rt* $out/lib/darwin
-      cp -d ${lib.getLib llvmPackages.compiler-rt}/lib/libclang_rt* $out/lib
-      cp -d ${lib.getLib llvmPackages.llvm.lib}/lib/libLLVM.dylib $out/lib
-      cp -d ${lib.getLib libffi}/lib/libffi*.dylib $out/lib
+      cp -d ${getLib llvmPackages.libcxx}/lib/libc++*.dylib $out/lib
+      mkdir -p $out/lib/darwin
+      cp -d ${getLib llvmPackages.compiler-rt}/lib/darwin/libclang_rt.{,profile_}osx.a  $out/lib/darwin
+      cp -d ${getLib llvmPackages.compiler-rt}/lib/libclang_rt.{,profile_}osx.a $out/lib
+      cp -d ${getLib llvmPackages.llvm}/lib/libLLVM.dylib $out/lib
+      cp -d ${getLib libffi}/lib/libffi*.dylib $out/lib
 
       mkdir $out/include
-      cp -rd ${llvmPackages.libcxx.dev}/include/c++     $out/include
+      cp -rd ${getDev llvmPackages.libcxx}/include/c++     $out/include
 
       # copy .tbd assembly utils
-      cp -d ${pkgs.darwin.rewrite-tbd}/bin/rewrite-tbd $out/bin
-      cp -d ${lib.getLib pkgs.libyaml}/lib/libyaml*.dylib $out/lib
+      cp -d ${getBin pkgs.darwin.rewrite-tbd}/bin/rewrite-tbd $out/bin
+      cp -d ${getLib pkgs.libyaml}/lib/libyaml*.dylib $out/lib
 
       # copy package extraction tools
-      cp -d ${pkgs.pbzx}/bin/pbzx $out/bin
-      cp -d ${lib.getLib pkgs.xar}/lib/libxar*.dylib $out/lib
-      cp -d ${pkgs.bzip2.out}/lib/libbz2*.dylib $out/lib
+      cp -d ${getBin pkgs.pbzx}/bin/pbzx $out/bin
+      cp -d ${getLib pkgs.xar}/lib/libxar*.dylib $out/lib
+      cp -d ${getLib pkgs.bzip2}/lib/libbz2*.dylib $out/lib
 
       # copy sigtool
-      cp -d ${pkgs.darwin.sigtool}/bin/sigtool $out/bin
-      cp -d ${pkgs.darwin.sigtool}/bin/codesign $out/bin
+      cp -d ${getBin pkgs.darwin.sigtool}/bin/sigtool $out/bin
+      cp -d ${getBin pkgs.darwin.sigtool}/bin/codesign $out/bin
 
-      cp -d ${lib.getLib darwin.ICU}/lib/libicu*.dylib $out/lib
-      cp -d ${zlib.out}/lib/libz.*       $out/lib
-      cp -d ${gmpxx.out}/lib/libgmp*.*   $out/lib
-      cp -d ${xz.out}/lib/liblzma*.*     $out/lib
+      cp -d ${getLib zlib}/lib/libz.*       $out/lib
+      cp -d ${getLib gmpxx}/lib/libgmp*.*   $out/lib
+      cp -d ${getLib xz}/lib/liblzma*.*     $out/lib
 
       # Copy binutils.
       for i in as ld ar ranlib nm strip otool install_name_tool lipo codesign_allocate; do
-        cp ${cctools_}/bin/$i $out/bin
+        cp ${getBin cctools_}/bin/$i $out/bin
       done
 
-      cp -d ${lib.getLib darwin.libtapi}/lib/libtapi* $out/lib
+      cp -d ${getLib darwin.libtapi}/lib/libtapi* $out/lib
 
-      cp -rd ${pkgs.darwin.CF}/Library $out
-      ${lib.optionalString stdenv.targetPlatform.isAarch64 ''
-        cp -rd ${pkgs.darwin.libobjc}/lib/* $out/lib/
-      ''}
+      # tools needed to unpack bootstrap archive. they should not contain any
+      # external references. we will process them like the other tools but
+      # perform some additional checks and will not pack them into the archive.
+      mkdir -p unpack/bin
+      cp ${getBin bash}/bin/bash unpack/bin
+      ln -s bash unpack/bin/sh
+      cp ${getBin coreutils_}/bin/mkdir unpack/bin
+      cp ${getBin gnutar_}/bin/tar unpack/bin
+      cp ${getBin xz_}/bin/xz unpack/bin
+      cp ${unpackScript} unpack/bootstrap-tools-unpack.sh
 
-      chmod -R u+w $out
+      #
+      # All files copied. Perform processing to update references to point into
+      # the archive
+      #
 
-      nuke-refs $out/bin/*
+      chmod -R u+w $out unpack
 
+      # - change nix store library paths to use @rpath/library
+      # - if needed add an rpath containing lib/
+      # - strip executable
       rpathify() {
-        local libs=$(${stdenv.cc.targetPrefix}otool -L "$1" | tail -n +2 | grep -o "$NIX_STORE.*-\S*") || true
-        local newlib
+        local libs=$(${stdenv.cc.targetPrefix}otool -L "$1" | tail -n +2 | grep -o "$NIX_STORE.*-\S*" || true)
+        local lib rpath
         for lib in $libs; do
           ${stdenv.cc.targetPrefix}install_name_tool -change $lib "@rpath/$(basename "$lib")" "$1"
         done
-      }
 
-      # Strip executables even further
-      for i in $out/bin/*; do
-        if [[ ! -L $i ]] && isMachO "$i"; then
-          chmod +w $i
-          ${stdenv.cc.targetPrefix}strip $i || true
+        case "$(dirname "$1")" in
+        */bin)
+          # Strip executables even further
+          ${stdenv.cc.targetPrefix}strip "$i"
+          rpath='@executable_path/../lib'
+          ;;
+        */lib)
+          # the '/.' suffix is required
+          rpath='@loader_path/.'
+          ;;
+        */lib/darwin)
+          rpath='@loader_path/..'
+          ;;
+        *)
+          echo unkown executable $1 >&2
+          exit 1
+          ;;
+        esac
+
+        # if shared object contains references add an rpath to lib/
+        if ${stdenv.cc.targetPrefix}otool -l "$1"| grep -q '@rpath/'; then
+          ${stdenv.cc.targetPrefix}install_name_tool -add_rpath "$rpath" "$1"
         fi
-      done
+      }
 
-      for i in $out/bin/* $out/lib/*.dylib $out/lib/darwin/*.dylib; do
-        if [[ ! -L "$i" ]]; then
-          rpathify $i
-        fi
-      done
+      # check that linked library paths exist in $out/lib
+      # must be run after rpathify is performed
+      checkDeps() {
+        local deps=$(${stdenv.cc.targetPrefix}otool -l "$1"| grep -o '@rpath/[^      ]*' || true)
+        local lib
+        for lib in $deps; do
+          if [[ ! -e $out/''${lib/@rpath/lib} ]]; then
+            echo "error: $1 missing lib for $lib" >&2
+            exit 1
+          fi
+        done
+      }
 
-      for i in $out/bin/*; do
-        if [[ ! -L "$i" ]] && isMachO "$i"; then
-          ${stdenv.cc.targetPrefix}install_name_tool -add_rpath '@executable_path/../lib' $i
+      for i in $out/bin/* unpack/bin/* $out/lib{,/darwin}/*.dylib; do
+        if [[ ! -L $i ]] && isMachO "$i"; then
+          rpathify "$i"
+          checkDeps "$i"
         fi
       done
 
-      ${if stdenv.targetPlatform.isx86_64 then ''
-        rpathify $out/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
-      '' else ''
-        sed -i -e 's|/nix/store/.*/libobjc.A.dylib|@executable_path/../libobjc.A.dylib|g' \
-          $out/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation.tbd
-      ''}
-
+      nuke-refs $out/bin/*
       nuke-refs $out/lib/*
-      nuke-refs $out/lib/system/*
       nuke-refs $out/lib/darwin/*
-      ${lib.optionalString stdenv.targetPlatform.isx86_64 ''
-        nuke-refs $out/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
-      ''}
+      nuke-refs $out/lib/system/*
+      nuke-refs unpack/bin/*
 
       mkdir $out/.pack
       mv $out/* $out/.pack
       mv $out/.pack $out/pack
 
+      # validate that tools contain no references into the archive
+      for tool in unpack/bin/*; do
+        deps=$(${stdenv.cc.targetPrefix}otool -l "$tool"| grep '@rpath/' || true)
+        if [[ -n "$deps" ]]; then
+          printf "error: $tool is not self contained\n$deps\n" >&2
+          exit 1
+        fi
+      done
+
       mkdir $out/on-server
-      dumpnar $out/pack | ${xz}/bin/xz > $out/on-server/bootstrap-tools.nar.xz
+      cp -r unpack $out
+
+      XZ_OPT="-9 -T $NIX_BUILD_CORES" tar cvJf $out/on-server/bootstrap-tools.tar.xz \
+        --hard-dereference --sort=name --numeric-owner --owner=0 --group=0 --mtime=@1 -C $out/pack .
+      dumpnar $out/unpack | xz -9 -T $NIX_BUILD_CORES > $out/on-server/unpack.nar.xz
     '';
 
     allowedReferences = [];
@@ -216,44 +296,49 @@ rec {
     };
   };
 
-  dist = stdenv.mkDerivation {
-    name = "stdenv-bootstrap-tools";
-
-    buildCommand = ''
-      mkdir -p $out/nix-support
-      echo "file tools ${build}/on-server/bootstrap-tools.nar.xz" >> $out/nix-support/hydra-build-products
-    '';
-  };
+  dist = runCommand "stdenv-bootstrap-tools" {} ''
+    mkdir -p $out/nix-support
+    echo "file tarball ${build}/on-server/*.tar.xz" >> $out/nix-support/hydra-build-products
+    echo "file unpack ${build}/on-server/unpack.* " >> $out/nix-support/hydra-build-products
+  '';
 
   bootstrapFiles = {
-    tools = "${build}/pack";
+    bootstrapTools = "${build}/on-server/bootstrap-tools.tar.xz";
+    unpack = runCommand "unpack" { allowedReferences = []; } ''
+      cp -r ${build}/unpack $out
+    '';
   };
 
   bootstrapTools = derivation {
     inherit (stdenv.hostPlatform) system;
 
     name = "bootstrap-tools";
-    builder = "${bootstrapFiles.tools}/bin/bash";
+    builder = "${bootstrapFiles.unpack}/bin/bash";
 
-    # This is by necessity a near-duplicate of patch-bootstrap-tools.sh. If we refer to it directly,
-    # we can't make any changes to it due to our testing stdenv depending on it. Think of this as the
-    # patch-bootstrap-tools.sh for the next round of bootstrap tools.
-    args = [ ./patch-bootstrap-tools-next.sh ];
+    args = [
+      "${bootstrapFiles.unpack}/bootstrap-tools-unpack.sh"
+        bootstrapFiles.bootstrapTools
+    ];
 
-    inherit (bootstrapFiles) tools;
+    PATH = lib.makeBinPath [
+      (placeholder "out")
+      bootstrapFiles.unpack
+    ];
 
     allowedReferences = [ "out" ];
   };
 
-  test = stdenv.mkDerivation {
-    name = "test";
-
-    realBuilder = "${bootstrapTools}/bin/bash";
-
+  test = derivation {
+    name = "test-bootstrap-tools";
+    inherit (stdenv.hostPlatform) system;
+    builder = "${bootstrapTools}/bin/bash";
+    args = [ "-euo" "pipefail" "-c" "eval \"$buildCommand\"" ];
+    PATH = lib.makeBinPath [ bootstrapTools ];
     tools = bootstrapTools;
+    "${stdenv.cc.darwinMinVersionVariable}" = stdenv.cc.darwinMinVersion;
+
+    # Create a pure environment where we use just what's in the bootstrap tools.
     buildCommand = ''
-      # Create a pure environment where we use just what's in the bootstrap tools.
-      export PATH=$tools/bin
 
       ls -l
       mkdir $out
@@ -280,16 +365,15 @@ rec {
         ${stdenv.cc.libc_dev}/lib/system \
         libSystem-boot
 
-      substituteInPlace libSystem-boot/libSystem.B.tbd \
-        --replace "/usr/lib/system/" "$PWD/libSystem-boot/system/"
+      sed -i "s|/usr/lib/system/|$PWD/libSystem-boot/system/|g" libSystem-boot/libSystem.B.tbd
       ln -s libSystem.B.tbd libSystem-boot/libSystem.tbd
       # End of bootstrap libSystem
 
       export flags="-idirafter $tools/include-Libsystem --sysroot=$tools -L$tools/lib -L$PWD/libSystem-boot"
 
       export CPP="clang -E $flags"
-      export CC="clang $flags -rpath $tools/lib"
-      export CXX="clang++ $flags --stdlib=libc++ -lc++abi -isystem$tools/include/c++/v1 -rpath $tools/lib"
+      export CC="clang $flags"
+      export CXX="clang++ $flags --stdlib=libc++ -isystem$tools/include/c++/v1"
 
       # NOTE: These tests do a separate 'install' step (using cp), because
       # having clang write directly to the final location apparently will make
@@ -306,22 +390,23 @@ rec {
       cp hello1 $out/bin/
       $out/bin/hello1
 
-      echo '#include <CoreFoundation/CoreFoundation.h>' >> hello2.c
-      echo 'int main() { CFShow(CFSTR("Hullo")); return 0; }' >> hello2.c
-      $CC -F$tools/Library/Frameworks -framework CoreFoundation -o hello2 hello2.c
-      cp hello2 $out/bin/
-      $out/bin/hello2
-
       echo '#include <iostream>' >> hello3.cc
       echo 'int main() { std::cout << "Hello World\n"; }' >> hello3.cc
       $CXX -v -o hello3 hello3.cc
       cp hello3 $out/bin/
       $out/bin/hello3
 
+      # test that libc++.dylib rpaths are correct so it can reference libc++abi.dylib when linked.
+      # using -Wl,-flat_namespace is required to generate an error
+      mkdir libtest/
+      ln -s $tools/lib/libc++.dylib libtest/
+      clang++ -Wl,-flat_namespace -idirafter $tools/include-Libsystem -isystem$tools/include/c++/v1 \
+        --sysroot=$tools -L./libtest -L$PWD/libSystem-boot hello3.cc
+
       tar xvf ${hello.src}
       cd hello-*
-      # stdenv bootstrap tools ship a broken libiconv.dylib https://github.com/NixOS/nixpkgs/issues/158331
-      am_cv_func_iconv=no ./configure --prefix=$out
+      # hello configure detects -liconv is needed but doesn't add to the link step
+      LDFLAGS=-liconv ./configure --prefix=$out
       make
       make install
       $out/bin/hello
diff --git a/nixpkgs/pkgs/stdenv/darwin/patch-bootstrap-tools-next.sh b/nixpkgs/pkgs/stdenv/darwin/patch-bootstrap-tools-next.sh
deleted file mode 100644
index a5b9edff7cd5..000000000000
--- a/nixpkgs/pkgs/stdenv/darwin/patch-bootstrap-tools-next.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-set -euo pipefail
-
-export PATH=$tools/bin
-
-cp -R $tools $out
-chmod -R u+w $out
-
-updateInstallName() {
-  local path="$1"
-
-  cp "$path" "$path.new"
-  install_name_tool -id "$path" "$path.new"
-  codesign -f -i "$(basename "$path")" -s - "$path.new"
-  mv -f "$path.new" "$path"
-}
-
-find $out/lib -type f -name '*.dylib' -print0 | while IFS= read -r -d $'\0' lib; do
-  updateInstallName "$lib"
-done
-
-# Provide a gunzip script.
-cat > $out/bin/gunzip <<EOF
-#!$out/bin/sh
-exec $out/bin/gzip -d "\$@"
-EOF
-chmod +x $out/bin/gunzip
-
-# Provide fgrep/egrep.
-echo "#! $out/bin/sh" > $out/bin/egrep
-echo "exec $out/bin/grep -E \"\$@\"" >> $out/bin/egrep
-echo "#! $out/bin/sh" > $out/bin/fgrep
-echo "exec $out/bin/grep -F \"\$@\"" >> $out/bin/fgrep
-
-cat >$out/bin/dsymutil << EOF
-#!$out/bin/sh
-EOF
-
-chmod +x $out/bin/egrep $out/bin/fgrep $out/bin/dsymutil
diff --git a/nixpkgs/pkgs/stdenv/darwin/unpack-bootstrap-tools-aarch64.sh b/nixpkgs/pkgs/stdenv/darwin/unpack-bootstrap-tools-aarch64.sh
index 63b72972d717..4bb84f6409cb 100644
--- a/nixpkgs/pkgs/stdenv/darwin/unpack-bootstrap-tools-aarch64.sh
+++ b/nixpkgs/pkgs/stdenv/darwin/unpack-bootstrap-tools-aarch64.sh
@@ -19,6 +19,11 @@ updateInstallName() {
 
   cp "$path" "$path.new"
   install_name_tool -id "$path" "$path.new"
+  # workaround for https://github.com/NixOS/nixpkgs/issues/294518
+  # libc++.1.0.dylib contains wrong LC_RPATH
+  if [[ ${path} == *libc++.1.0.dylib ]]; then
+    install_name_tool -add_rpath @loader_path/.. "${path}.new"
+  fi
   codesign -f -i "$(basename "$path")" -s - "$path.new"
   mv -f "$path.new" "$path"
 }
diff --git a/nixpkgs/pkgs/stdenv/generic/default.nix b/nixpkgs/pkgs/stdenv/generic/default.nix
index e764571869db..2cda43d5632f 100644
--- a/nixpkgs/pkgs/stdenv/generic/default.nix
+++ b/nixpkgs/pkgs/stdenv/generic/default.nix
@@ -52,7 +52,7 @@ argsStdenv@{ name ? "stdenv", preHook ? "", initialPath
 
 , # The implementation of `mkDerivation`, parameterized with the final stdenv so we can tie the knot.
   # This is convient to have as a parameter so the stdenv "adapters" work better
-  mkDerivationFromStdenv ? import ./make-derivation.nix { inherit lib config; }
+  mkDerivationFromStdenv ? stdenv: (import ./make-derivation.nix { inherit lib config; } stdenv).mkDerivation
 }:
 
 let
diff --git a/nixpkgs/pkgs/stdenv/generic/make-derivation.nix b/nixpkgs/pkgs/stdenv/generic/make-derivation.nix
index 6a53d519045c..08cded664254 100644
--- a/nixpkgs/pkgs/stdenv/generic/make-derivation.nix
+++ b/nixpkgs/pkgs/stdenv/generic/make-derivation.nix
@@ -9,7 +9,6 @@ let
     assertMsg
     attrNames
     boolToString
-    chooseDevOutputs
     concatLists
     concatMap
     concatMapStrings
@@ -19,7 +18,7 @@ let
     extendDerivation
     filter
     findFirst
-    flip
+    getDev
     head
     imap1
     isAttrs
@@ -40,6 +39,15 @@ let
     unique
   ;
 
+  inherit (import ../../build-support/lib/cmake.nix { inherit lib stdenv; }) makeCMakeFlags;
+  inherit (import ../../build-support/lib/meson.nix { inherit lib stdenv; }) makeMesonFlags;
+
+  mkDerivation =
+    fnOrAttrs:
+      if builtins.isFunction fnOrAttrs
+      then makeDerivationExtensible fnOrAttrs
+      else makeDerivationExtensibleConst fnOrAttrs;
+
   checkMeta = import ./check-meta.nix {
     inherit lib config;
     # Nix itself uses the `system` field of a derivation to decide where
@@ -102,11 +110,42 @@ let
           makeDerivationExtensible (self: attrs // (if builtins.isFunction f0 || f0?__functor then f self attrs else f0)))
       attrs;
 
-  mkDerivationSimple = overrideAttrs:
+  knownHardeningFlags = [
+    "bindnow"
+    "format"
+    "fortify"
+    "fortify3"
+    "pic"
+    "pie"
+    "relro"
+    "stackprotector"
+    "strictoverflow"
+    "trivialautovarinit"
+    "zerocallusedregs"
+  ];
 
+  removedOrReplacedAttrNames = [
+    "checkInputs" "installCheckInputs"
+    "nativeCheckInputs" "nativeInstallCheckInputs"
+    "__contentAddressed"
+    "__darwinAllowLocalNetworking"
+    "__impureHostDeps" "__propagatedImpureHostDeps"
+    "sandboxProfile" "propagatedSandboxProfile"
+  ];
 
-# `mkDerivation` wraps the builtin `derivation` function to
-# produce derivations that use this stdenv and its shell.
+  # Turn a derivation into its outPath without a string context attached.
+  # See the comment at the usage site.
+  unsafeDerivationToUntrackedOutpath = drv:
+    if isDerivation drv
+    then builtins.unsafeDiscardStringContext drv.outPath
+    else drv;
+
+  makeDerivationArgument =
+
+
+# `makeDerivationArgument` is responsible for the `mkDerivation` arguments that
+# affect the actual derivation, excluding a few behaviors that are not
+# essential, and specific to `mkDerivation`: `env`, `cmakeFlags`, `mesonFlags`.
 #
 # See also:
 #
@@ -146,8 +185,6 @@ let
 
 # Configure Phase
 , configureFlags ? []
-, cmakeFlags ? []
-, mesonFlags ? []
 , # Target is not included by default because most programs don't care.
   # Including it then would cause needless mass rebuilds.
   #
@@ -169,14 +206,6 @@ let
 
 , enableParallelBuilding ? config.enableParallelBuildingByDefault
 
-, meta ? {}
-, passthru ? {}
-, pos ? # position used in error messages and for meta.position
-    (if attrs.meta.description or null != null
-      then builtins.unsafeGetAttrPos "description" attrs.meta
-      else if attrs.version or null != null
-      then builtins.unsafeGetAttrPos "version" attrs
-      else builtins.unsafeGetAttrPos "name" attrs)
 , separateDebugInfo ? false
 , outputs ? [ "out" ]
 , __darwinAllowLocalNetworking ? false
@@ -198,8 +227,6 @@ let
 # but for anything complex, be prepared to debug if enabling.
 , __structuredAttrs ? config.structuredAttrsByDefault or false
 
-, env ? { }
-
 , ... } @ attrs:
 
 # Policy on acceptable hash types in nixpkgs
@@ -222,13 +249,6 @@ let
   separateDebugInfo' = separateDebugInfo && stdenv.hostPlatform.isLinux;
   outputs' = outputs ++ optional separateDebugInfo' "debug";
 
-  # Turn a derivation into its outPath without a string context attached.
-  # See the comment at the usage site.
-  unsafeDerivationToUntrackedOutpath = drv:
-    if isDerivation drv
-    then builtins.unsafeDiscardStringContext drv.outPath
-    else drv;
-
   noNonNativeDeps = builtins.length (depsBuildTarget ++ depsBuildTargetPropagated
                                   ++ depsHostHost ++ depsHostHostPropagated
                                   ++ buildInputs ++ propagatedBuildInputs
@@ -239,19 +259,6 @@ let
     # disabling fortify implies fortify3 should also be disabled
     then unique (hardeningDisable ++ [ "fortify3" ])
     else hardeningDisable;
-  knownHardeningFlags = [
-    "bindnow"
-    "format"
-    "fortify"
-    "fortify3"
-    "pic"
-    "pie"
-    "relro"
-    "stackprotector"
-    "strictoverflow"
-    "trivialautovarinit"
-    "zerocallusedregs"
-  ];
   defaultHardeningFlags =
     (if stdenv.hasCC then stdenv.cc else {}).defaultHardeningFlags or
       # fallback safe-ish set of flags
@@ -264,10 +271,13 @@ let
   erroneousHardeningFlags = subtractLists knownHardeningFlags (hardeningEnable ++ remove "all" hardeningDisable);
 
   checkDependencyList = checkDependencyList' [];
-  checkDependencyList' = positions: name: deps: flip imap1 deps (index: dep:
-    if isDerivation dep || dep == null || builtins.isString dep || builtins.isPath dep then dep
-    else if isList dep then checkDependencyList' ([index] ++ positions) name dep
-    else throw "Dependency is not of a valid type: ${concatMapStrings (ix: "element ${toString ix} of ") ([index] ++ positions)}${name} for ${attrs.name or attrs.pname}");
+  checkDependencyList' = positions: name: deps:
+    imap1
+      (index: dep:
+        if isDerivation dep || dep == null || builtins.isString dep || builtins.isPath dep then dep
+        else if isList dep then checkDependencyList' ([index] ++ positions) name dep
+        else throw "Dependency is not of a valid type: ${concatMapStrings (ix: "element ${toString ix} of ") ([index] ++ positions)}${name} for ${attrs.name or attrs.pname}")
+      deps;
 in if builtins.length erroneousHardeningFlags != 0
 then abort ("mkDerivation was called with unsupported hardening flags: " + lib.generators.toPretty {} {
   inherit erroneousHardeningFlags hardeningDisable hardeningEnable knownHardeningFlags;
@@ -286,70 +296,37 @@ else let
 
   outputs = outputs';
 
-  references = nativeBuildInputs ++ buildInputs
-            ++ propagatedNativeBuildInputs ++ propagatedBuildInputs;
-
-  dependencies = map (map chooseDevOutputs) [
+  dependencies = [
     [
-      (map (drv: drv.__spliced.buildBuild or drv) (checkDependencyList "depsBuildBuild" depsBuildBuild))
-      (map (drv: drv.__spliced.buildHost or drv) (checkDependencyList "nativeBuildInputs" nativeBuildInputs'))
-      (map (drv: drv.__spliced.buildTarget or drv) (checkDependencyList "depsBuildTarget" depsBuildTarget))
+      (map (drv: getDev drv.__spliced.buildBuild or drv) (checkDependencyList "depsBuildBuild" depsBuildBuild))
+      (map (drv: getDev drv.__spliced.buildHost or drv) (checkDependencyList "nativeBuildInputs" nativeBuildInputs'))
+      (map (drv: getDev drv.__spliced.buildTarget or drv) (checkDependencyList "depsBuildTarget" depsBuildTarget))
     ]
     [
-      (map (drv: drv.__spliced.hostHost or drv) (checkDependencyList "depsHostHost" depsHostHost))
-      (map (drv: drv.__spliced.hostTarget or drv) (checkDependencyList "buildInputs" buildInputs'))
+      (map (drv: getDev drv.__spliced.hostHost or drv) (checkDependencyList "depsHostHost" depsHostHost))
+      (map (drv: getDev drv.__spliced.hostTarget or drv) (checkDependencyList "buildInputs" buildInputs'))
     ]
     [
-      (map (drv: drv.__spliced.targetTarget or drv) (checkDependencyList "depsTargetTarget" depsTargetTarget))
+      (map (drv: getDev drv.__spliced.targetTarget or drv) (checkDependencyList "depsTargetTarget" depsTargetTarget))
     ]
   ];
-  propagatedDependencies = map (map chooseDevOutputs) [
+  propagatedDependencies = [
     [
-      (map (drv: drv.__spliced.buildBuild or drv) (checkDependencyList "depsBuildBuildPropagated" depsBuildBuildPropagated))
-      (map (drv: drv.__spliced.buildHost or drv) (checkDependencyList "propagatedNativeBuildInputs" propagatedNativeBuildInputs))
-      (map (drv: drv.__spliced.buildTarget or drv) (checkDependencyList "depsBuildTargetPropagated" depsBuildTargetPropagated))
+      (map (drv: getDev drv.__spliced.buildBuild or drv) (checkDependencyList "depsBuildBuildPropagated" depsBuildBuildPropagated))
+      (map (drv: getDev drv.__spliced.buildHost or drv) (checkDependencyList "propagatedNativeBuildInputs" propagatedNativeBuildInputs))
+      (map (drv: getDev drv.__spliced.buildTarget or drv) (checkDependencyList "depsBuildTargetPropagated" depsBuildTargetPropagated))
     ]
     [
-      (map (drv: drv.__spliced.hostHost or drv) (checkDependencyList "depsHostHostPropagated" depsHostHostPropagated))
-      (map (drv: drv.__spliced.hostTarget or drv) (checkDependencyList "propagatedBuildInputs" propagatedBuildInputs))
+      (map (drv: getDev drv.__spliced.hostHost or drv) (checkDependencyList "depsHostHostPropagated" depsHostHostPropagated))
+      (map (drv: getDev drv.__spliced.hostTarget or drv) (checkDependencyList "propagatedBuildInputs" propagatedBuildInputs))
     ]
     [
-      (map (drv: drv.__spliced.targetTarget or drv) (checkDependencyList "depsTargetTargetPropagated" depsTargetTargetPropagated))
+      (map (drv: getDev drv.__spliced.targetTarget or drv) (checkDependencyList "depsTargetTargetPropagated" depsTargetTargetPropagated))
     ]
   ];
 
-  computedSandboxProfile =
-    concatMap (input: input.__propagatedSandboxProfile or [])
-      (stdenv.extraNativeBuildInputs
-       ++ stdenv.extraBuildInputs
-       ++ concatLists dependencies);
-
-  computedPropagatedSandboxProfile =
-    concatMap (input: input.__propagatedSandboxProfile or [])
-      (concatLists propagatedDependencies);
-
-  computedImpureHostDeps =
-    unique (concatMap (input: input.__propagatedImpureHostDeps or [])
-      (stdenv.extraNativeBuildInputs
-       ++ stdenv.extraBuildInputs
-       ++ concatLists dependencies));
-
-  computedPropagatedImpureHostDeps =
-    unique (concatMap (input: input.__propagatedImpureHostDeps or [])
-      (concatLists propagatedDependencies));
-
-  envIsExportable = isAttrs env && !isDerivation env;
-
   derivationArg =
-    (removeAttrs attrs
-      (["meta" "passthru" "pos"
-       "checkInputs" "installCheckInputs"
-       "nativeCheckInputs" "nativeInstallCheckInputs"
-       "__contentAddressed"
-       "__darwinAllowLocalNetworking"
-       "__impureHostDeps" "__propagatedImpureHostDeps"
-       "sandboxProfile" "propagatedSandboxProfile"]
-       ++ optional (__structuredAttrs || envIsExportable) "env"))
+    removeAttrs attrs removedOrReplacedAttrNames
     // (optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
       name =
         let
@@ -377,7 +354,7 @@ else let
             assert assertMsg (attrs ? version && attrs.version != null) "The ‘version’ attribute cannot be null.";
             "${attrs.pname}${staticMarker}${hostSuffix}-${attrs.version}"
         );
-    }) // optionalAttrs __structuredAttrs { env = checkedEnv; } // {
+    }) // {
       builder = attrs.realBuilder or stdenv.shell;
       args = attrs.args or ["-e" (attrs.builder or ./default-builder.sh)];
       inherit stdenv;
@@ -415,54 +392,6 @@ else let
         ++ optional (elem "host"   configurePlatforms) "--host=${stdenv.hostPlatform.config}"
         ++ optional (elem "target" configurePlatforms) "--target=${stdenv.targetPlatform.config}";
 
-      cmakeFlags =
-        cmakeFlags
-        ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) ([
-          "-DCMAKE_SYSTEM_NAME=${findFirst isString "Generic" (optional (!stdenv.hostPlatform.isRedox) stdenv.hostPlatform.uname.system)}"
-        ] ++ optionals (stdenv.hostPlatform.uname.processor != null) [
-          "-DCMAKE_SYSTEM_PROCESSOR=${stdenv.hostPlatform.uname.processor}"
-        ] ++ optionals (stdenv.hostPlatform.uname.release != null) [
-          "-DCMAKE_SYSTEM_VERSION=${stdenv.hostPlatform.uname.release}"
-        ] ++ optionals (stdenv.hostPlatform.isDarwin) [
-          "-DCMAKE_OSX_ARCHITECTURES=${stdenv.hostPlatform.darwinArch}"
-        ] ++ optionals (stdenv.buildPlatform.uname.system != null) [
-          "-DCMAKE_HOST_SYSTEM_NAME=${stdenv.buildPlatform.uname.system}"
-        ] ++ optionals (stdenv.buildPlatform.uname.processor != null) [
-          "-DCMAKE_HOST_SYSTEM_PROCESSOR=${stdenv.buildPlatform.uname.processor}"
-        ] ++ optionals (stdenv.buildPlatform.uname.release != null) [
-          "-DCMAKE_HOST_SYSTEM_VERSION=${stdenv.buildPlatform.uname.release}"
-        ] ++ optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
-          "-DCMAKE_CROSSCOMPILING_EMULATOR=env"
-        ] ++ lib.optionals stdenv.hostPlatform.isStatic [
-          "-DCMAKE_LINK_SEARCH_START_STATIC=ON"
-        ]);
-
-      mesonFlags =
-        let
-          # See https://mesonbuild.com/Reference-tables.html#cpu-families
-          cpuFamily = platform: with platform;
-            /**/ if isAarch32 then "arm"
-            else if isx86_32  then "x86"
-            else platform.uname.processor;
-
-          crossFile = builtins.toFile "cross-file.conf" ''
-            [properties]
-            bindgen_clang_arguments = ['-target', '${stdenv.targetPlatform.config}']
-            needs_exe_wrapper = ${boolToString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform)}
-
-            [host_machine]
-            system = '${stdenv.targetPlatform.parsed.kernel.name}'
-            cpu_family = '${cpuFamily stdenv.targetPlatform}'
-            cpu = '${stdenv.targetPlatform.parsed.cpu.name}'
-            endian = ${if stdenv.targetPlatform.isLittleEndian then "'little'" else "'big'"}
-
-            [binaries]
-            llvm-config = 'llvm-config-native'
-            rust = ['rustc', '--target', '${stdenv.targetPlatform.rust.rustcTargetSpec}']
-          '';
-          crossFlags = optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "--cross-file=${crossFile}" ];
-        in crossFlags ++ mesonFlags;
-
       inherit patches;
 
       inherit doCheck doInstallCheck;
@@ -482,7 +411,28 @@ else let
       NIX_HARDENING_ENABLE = enabledHardeningOptions;
     } // optionalAttrs (stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform ? gcc.arch) {
       requiredSystemFeatures = attrs.requiredSystemFeatures or [] ++ [ "gccarch-${stdenv.hostPlatform.gcc.arch}" ];
-    } // optionalAttrs (stdenv.buildPlatform.isDarwin) {
+    } // optionalAttrs (stdenv.buildPlatform.isDarwin) (
+      let
+        computedSandboxProfile =
+          concatMap (input: input.__propagatedSandboxProfile or [])
+            (stdenv.extraNativeBuildInputs
+            ++ stdenv.extraBuildInputs
+            ++ concatLists dependencies);
+
+        computedPropagatedSandboxProfile =
+          concatMap (input: input.__propagatedSandboxProfile or [])
+            (concatLists propagatedDependencies);
+
+        computedImpureHostDeps =
+          unique (concatMap (input: input.__propagatedImpureHostDeps or [])
+            (stdenv.extraNativeBuildInputs
+            ++ stdenv.extraBuildInputs
+            ++ concatLists dependencies));
+
+        computedPropagatedImpureHostDeps =
+          unique (concatMap (input: input.__propagatedImpureHostDeps or [])
+            (concatLists propagatedDependencies));
+    in {
       inherit __darwinAllowLocalNetworking;
       # TODO: remove `unique` once nix has a list canonicalization primitive
       __sandboxProfile =
@@ -497,7 +447,7 @@ else let
         "/bin/sh"
       ];
       __propagatedImpureHostDeps = computedPropagatedImpureHostDeps ++ __propagatedImpureHostDeps;
-    } //
+    }) //
     # If we use derivations directly here, they end up as build-time dependencies.
     # This is especially problematic in the case of disallowed*, since the disallowed
     # derivations will be built by nix as build-time dependencies, while those
@@ -533,7 +483,82 @@ else let
         mapNullable unsafeDerivationToUntrackedOutpath attrs.allowedRequisites;
     };
 
-  meta = checkMeta.commonMeta { inherit validity attrs pos references; };
+in
+  derivationArg;
+
+mkDerivationSimple = overrideAttrs:
+
+# `mkDerivation` wraps the builtin `derivation` function to
+# produce derivations that use this stdenv and its shell.
+#
+# Internally, it delegates most of its behavior to `makeDerivationArgument`,
+# except for the `env`, `cmakeFlags`, and `mesonFlags` attributes, as well
+# as the attributes `meta` and `passthru` that affect [package attributes],
+# and not the derivation itself.
+#
+# See also:
+#
+# * https://nixos.org/nixpkgs/manual/#sec-using-stdenv
+#   Details on how to use this mkDerivation function
+#
+# * https://nixos.org/manual/nix/stable/expressions/derivations.html#derivations
+#   Explanation about derivations in general
+#
+# * [package attributes]: https://nixos.org/manual/nix/stable/glossary#package-attribute-set
+{
+
+# Configure Phase
+  cmakeFlags ? []
+, mesonFlags ? []
+
+, meta ? {}
+, passthru ? {}
+, pos ? # position used in error messages and for meta.position
+    (if attrs.meta.description or null != null
+      then builtins.unsafeGetAttrPos "description" attrs.meta
+      else if attrs.version or null != null
+      then builtins.unsafeGetAttrPos "version" attrs
+      else builtins.unsafeGetAttrPos "name" attrs)
+
+# Experimental.  For simple packages mostly just works,
+# but for anything complex, be prepared to debug if enabling.
+, __structuredAttrs ? config.structuredAttrsByDefault or false
+
+, env ? { }
+
+, ... } @ attrs:
+
+# Policy on acceptable hash types in nixpkgs
+assert attrs ? outputHash -> (
+  let algo =
+    attrs.outputHashAlgo or (head (splitString "-" attrs.outputHash));
+  in
+  if algo == "md5" then
+    throw "Rejected insecure ${algo} hash '${attrs.outputHash}'"
+  else
+    true
+);
+
+let
+  envIsExportable = isAttrs env && !isDerivation env;
+
+  derivationArg = makeDerivationArgument
+    (removeAttrs
+      attrs
+        (["meta" "passthru" "pos"]
+        ++ optional (__structuredAttrs || envIsExportable) "env"
+        )
+    // optionalAttrs __structuredAttrs { env = checkedEnv; }
+    // {
+      cmakeFlags = makeCMakeFlags attrs;
+      mesonFlags = makeMesonFlags attrs;
+    });
+
+  meta = checkMeta.commonMeta {
+    inherit validity attrs pos;
+    references = attrs.nativeBuildInputs or [] ++ attrs.buildInputs or []
+              ++ attrs.propagatedNativeBuildInputs or [] ++ attrs.propagatedBuildInputs or [];
+  };
   validity = checkMeta.assertValidity { inherit meta attrs; };
 
   checkedEnv =
@@ -603,7 +628,6 @@ extendDerivation
   (derivation (derivationArg // optionalAttrs envIsExportable checkedEnv));
 
 in
-  fnOrAttrs:
-    if builtins.isFunction fnOrAttrs
-    then makeDerivationExtensible fnOrAttrs
-    else makeDerivationExtensibleConst fnOrAttrs
+{
+  inherit mkDerivation;
+}
diff --git a/nixpkgs/pkgs/stdenv/linux/bootstrap-files/powerpc64-unknown-linux-gnuabielfv2.nix b/nixpkgs/pkgs/stdenv/linux/bootstrap-files/powerpc64-unknown-linux-gnuabielfv2.nix
new file mode 100644
index 000000000000..ac7c948664a3
--- /dev/null
+++ b/nixpkgs/pkgs/stdenv/linux/bootstrap-files/powerpc64-unknown-linux-gnuabielfv2.nix
@@ -0,0 +1,21 @@
+# Autogenerated by maintainers/scripts/bootstrap-files/refresh-tarballs.bash as:
+# $ ./refresh-tarballs.bash --targets=powerpc64-unknown-linux-gnuabielfv2
+#
+# Metadata:
+# - nixpkgs revision: 57cf2e0b24fb52344cc718913eaed78f389b1319
+# - hydra build: https://hydra.nixos.org/job/nixpkgs/cross-trunk/bootstrapTools.powerpc64-unknown-linux-gnuabielfv2.build/latest
+# - resolved hydra build: https://hydra.nixos.org/build/252872323
+# - instantiated derivation: /nix/store/yaa735jz1r1n863gzv3c8szl77lsgg8d-stdenv-bootstrap-tools-powerpc64-unknown-linux-gnuabielfv2.drv
+# - output directory: /nix/store/8frm8kk8gzpv31r289ai5jgkwfikmpm4-stdenv-bootstrap-tools-powerpc64-unknown-linux-gnuabielfv2
+# - build time: Sat, 09 Mar 2024 11:26:00 +0000
+{
+  bootstrapTools = import <nix/fetchurl.nix> {
+    url = "http://tarballs.nixos.org/stdenv/powerpc64-unknown-linux-gnuabielfv2/57cf2e0b24fb52344cc718913eaed78f389b1319/bootstrap-tools.tar.xz";
+    hash = "sha256-CvMRR2tUs5nzAkuS6cUYNjrNKxX3E+g9C7T7P48m2Ys=";
+  };
+  busybox = import <nix/fetchurl.nix> {
+    url = "http://tarballs.nixos.org/stdenv/powerpc64-unknown-linux-gnuabielfv2/57cf2e0b24fb52344cc718913eaed78f389b1319/busybox";
+    hash = "sha256-+vnQrVBHg793JIdQR4Y9KuqdmNZ+Ic0FZvVqrPOKnOY=";
+    executable = true;
+  };
+}
diff --git a/nixpkgs/pkgs/stdenv/linux/default.nix b/nixpkgs/pkgs/stdenv/linux/default.nix
index d2f3cc31ca08..9d13eb0b8e17 100644
--- a/nixpkgs/pkgs/stdenv/linux/default.nix
+++ b/nixpkgs/pkgs/stdenv/linux/default.nix
@@ -70,6 +70,7 @@
        (if localSystem.isMips64n32
         then ./bootstrap-files/mips64el-unknown-linux-gnuabin32.nix
         else ./bootstrap-files/mips64el-unknown-linux-gnuabi64.nix);
+      powerpc64-linux = import ./bootstrap-files/powerpc64-unknown-linux-gnuabielfv2.nix;
       powerpc64le-linux = import ./bootstrap-files/powerpc64le-unknown-linux-gnu.nix;
       riscv64-linux = import ./bootstrap-files/riscv64-unknown-linux-gnu.nix;
     };
diff --git a/nixpkgs/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix b/nixpkgs/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix
index fd0d3a7cd5d0..f58e807f3903 100644
--- a/nixpkgs/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix
+++ b/nixpkgs/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix
@@ -25,6 +25,7 @@ in lib.mapAttrs (n: make) (with lib.systems.examples; {
   mipsel-unknown-linux-gnu = mipsel-linux-gnu;
   mips64el-unknown-linux-gnuabin32 = mips64el-linux-gnuabin32;
   mips64el-unknown-linux-gnuabi64 = mips64el-linux-gnuabi64;
+  powerpc64-unknown-linux-gnuabielfv2 = ppc64;
   powerpc64le-unknown-linux-gnu = powernv;
   riscv64-unknown-linux-gnu = riscv64;
 
diff --git a/nixpkgs/pkgs/test/default.nix b/nixpkgs/pkgs/test/default.nix
index 9868bbc6033b..3fcc9d047db9 100644
--- a/nixpkgs/pkgs/test/default.nix
+++ b/nixpkgs/pkgs/test/default.nix
@@ -17,6 +17,7 @@ with pkgs;
         (filter (n: n != "llvmPackages_7"))
         (filter (n: n != "llvmPackages_8"))
         (filter (n: n != "llvmPackages_10"))
+        (filter (n: n != "llvmPackages_11"))
       ];
       tests = lib.genAttrs pkgSets (name: recurseIntoAttrs {
         clang = callPackage ./cc-wrapper { stdenv = pkgs.${name}.stdenv; };
diff --git a/nixpkgs/pkgs/test/haskell/shellFor/default.nix b/nixpkgs/pkgs/test/haskell/shellFor/default.nix
index 83daf079cc0f..82cd9e38e731 100644
--- a/nixpkgs/pkgs/test/haskell/shellFor/default.nix
+++ b/nixpkgs/pkgs/test/haskell/shellFor/default.nix
@@ -1,7 +1,7 @@
 { lib, writeText, haskellPackages, cabal-install }:
 
 (haskellPackages.shellFor {
-  packages = p: [ p.constraints p.linear ];
+  packages = p: [ p.constraints p.cereal ];
   # WARNING: When updating this, make sure that the libraries passed to
   # `extraDependencies` are not actually transitive dependencies of libraries in
   # `packages` above.  We explicitly want to test that it is possible to specify
@@ -14,8 +14,8 @@
     mkdir -p "$sourceRoot"
     cd "$sourceRoot"
     tar -xf ${haskellPackages.constraints.src}
-    tar -xf ${haskellPackages.linear.src}
-    cp ${writeText "cabal.project" "packages: constraints* linear*"} cabal.project
+    tar -xf ${haskellPackages.cereal.src}
+    cp ${writeText "cabal.project" "packages: constraints* cereal*"} cabal.project
   '';
   buildPhase = ''
     export HOME=$(mktemp -d)
@@ -37,7 +37,7 @@
     fi
 
     # Check packages arg
-    cabal v2-build --offline --verbose constraints linear --ghc-options="-O0 -j$NIX_BUILD_CORES"
+    cabal v2-build --offline --verbose constraints cereal --ghc-options="-O0 -j$NIX_BUILD_CORES"
   '';
   installPhase = ''
     touch $out
diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/.envrc b/nixpkgs/pkgs/test/nixpkgs-check-by-name/.envrc
index 4555ccf0921f..1d953f4bd735 100644
--- a/nixpkgs/pkgs/test/nixpkgs-check-by-name/.envrc
+++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/.envrc
@@ -1,7 +1 @@
-if has nix_direnv_watch_file; then
-  nix_direnv_watch_file default.nix shell.nix
-else
-  watch_file default.nix shell.nix
-fi
-
 use nix
diff --git a/nixpkgs/pkgs/test/nixpkgs-check-by-name/scripts/pinned-tool.json b/nixpkgs/pkgs/test/nixpkgs-check-by-name/scripts/pinned-tool.json
index e20a11baadaf..350e71bffc79 100644
--- a/nixpkgs/pkgs/test/nixpkgs-check-by-name/scripts/pinned-tool.json
+++ b/nixpkgs/pkgs/test/nixpkgs-check-by-name/scripts/pinned-tool.json
@@ -1,4 +1,4 @@
 {
-  "rev": "d934204a0f8d9198e1e4515dd6fec76a139c87f0",
-  "ci-path": "/nix/store/5fjdmbiziyp47gfc9kmfgvxdlzd6bba1-nixpkgs-check-by-name"
+  "rev": "b8697e57f10292a6165a20f03d2f42920dfaf973",
+  "ci-path": "/nix/store/w6w7khwfq6qzm4bsyijhg7m2kqv9f9jl-nixpkgs-check-by-name"
 }
diff --git a/nixpkgs/pkgs/tools/X11/arandr/default.nix b/nixpkgs/pkgs/tools/X11/arandr/default.nix
index 1421b2a028da..2535f467771c 100644
--- a/nixpkgs/pkgs/tools/X11/arandr/default.nix
+++ b/nixpkgs/pkgs/tools/X11/arandr/default.nix
@@ -36,5 +36,6 @@ buildPythonApplication rec {
     description = "A simple visual front end for XRandR";
     license = licenses.gpl3;
     maintainers = with maintainers; [ gepbird ];
+    mainProgram = "arandr";
   };
 }
diff --git a/nixpkgs/pkgs/tools/X11/xdg-utils/default.nix b/nixpkgs/pkgs/tools/X11/xdg-utils/default.nix
index 451ce3a81b56..b9c286328a49 100644
--- a/nixpkgs/pkgs/tools/X11/xdg-utils/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xdg-utils/default.nix
@@ -29,7 +29,7 @@ let
 
   # This is still required to work around the eval trickery some scripts do
   commonPrologue = "${writeText "xdg-utils-prologue" ''
-    export PATH=$PATH:${coreutils}/bin
+    export PATH=$PATH:${lib.makeBinPath [ coreutils ]}
   ''}";
 
   solutions = [
@@ -120,7 +120,10 @@ let
         "$KDE_SESSION_VERSION" = true;
         "$KTRADER" = true;
       };
-      prologue = commonPrologue;
+      prologue = "${writeText "xdg-mime-prologue" ''
+        export PERL5LIB=${with perlPackages; makePerlPath [ FileMimeInfo ]}
+        export PATH=$PATH:${lib.makeBinPath [ coreutils perlPackages.FileMimeInfo ]}
+      ''}";
     }
 
     {
diff --git a/nixpkgs/pkgs/tools/X11/xdragon/default.nix b/nixpkgs/pkgs/tools/X11/xdragon/default.nix
index 7061a8f0a1cf..9f12a78e2936 100644
--- a/nixpkgs/pkgs/tools/X11/xdragon/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xdragon/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, gtk3 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "xdragon";
   version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "mwh";
     repo = "dragon";
-    rev = "v${version}";
-    sha256 = "sha256-wqG6idlVvdN+sPwYgWu3UL0la5ssvymZibiak3KeV7M=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-wqG6idlVvdN+sPwYgWu3UL0la5ssvymZibiak3KeV7M=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/mwh/dragon";
     license = licenses.gpl3;
     maintainers = with maintainers; [ das_j ];
+    mainProgram = "xdragon";
   };
-}
+})
diff --git a/nixpkgs/pkgs/tools/admin/amazon-ec2-utils/default.nix b/nixpkgs/pkgs/tools/admin/amazon-ec2-utils/default.nix
index ed472b2a930e..5458572f311c 100644
--- a/nixpkgs/pkgs/tools/admin/amazon-ec2-utils/default.nix
+++ b/nixpkgs/pkgs/tools/admin/amazon-ec2-utils/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "amazon-ec2-utils";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "amazonlinux";
     repo = "amazon-ec2-utils";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Yr6pVwyvyVGV4xrjL7VFSkRH8d1w8VLPMTVjXfneJUM=";
+    hash = "sha256-plTBh2LAXkYVSxN0IZJQuPr7QxD7+OAqHl/Zl8JPCmg=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/nixpkgs/pkgs/tools/admin/ansible/doctor.nix b/nixpkgs/pkgs/tools/admin/ansible/doctor.nix
index ef7ef6aabb85..8a14a049893b 100644
--- a/nixpkgs/pkgs/tools/admin/ansible/doctor.nix
+++ b/nixpkgs/pkgs/tools/admin/ansible/doctor.nix
@@ -59,6 +59,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Annotation based documentation for your Ansible roles";
+    mainProgram = "ansible-doctor";
     homepage = "https://github.com/thegeeklab/ansible-doctor";
     changelog = "https://github.com/thegeeklab/ansible-doctor/releases/tag/v${version}";
     license = licenses.lgpl3Only;
diff --git a/nixpkgs/pkgs/tools/admin/ansible/later.nix b/nixpkgs/pkgs/tools/admin/ansible/later.nix
index 733981ecd928..f040acdfbd0f 100644
--- a/nixpkgs/pkgs/tools/admin/ansible/later.nix
+++ b/nixpkgs/pkgs/tools/admin/ansible/later.nix
@@ -31,6 +31,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
 
   pythonRelaxDeps = [
+    "anyconfig"
     "flake8"
     "jsonschema"
     "pathspec"
@@ -79,6 +80,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Best practice scanner for Ansible roles and playbooks";
+    mainProgram = "ansible-later";
     homepage = "https://github.com/thegeeklab/ansible-later";
     changelog = "https://github.com/thegeeklab/ansible-later/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/admin/ansible/lint.nix b/nixpkgs/pkgs/tools/admin/ansible/lint.nix
index 9e99a11777dd..2c746ae69bd2 100644
--- a/nixpkgs/pkgs/tools/admin/ansible/lint.nix
+++ b/nixpkgs/pkgs/tools/admin/ansible/lint.nix
@@ -6,12 +6,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ansible-lint";
-  version = "24.2.0";
+  version = "24.2.1";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-a8XWJz8zcR7G03Df5f2+l6ZLTDbCp6GaJJQBMm6wNhY=";
+    hash = "sha256-w2Gd6q34UsNT3s/3JCWJvRM54pJxVS5ON7+o9n20xWs=";
   };
 
   postPatch = ''
@@ -88,6 +88,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Best practices checker for Ansible";
+    mainProgram = "ansible-lint";
     homepage = "https://github.com/ansible/ansible-lint";
     changelog = "https://github.com/ansible/ansible-lint/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/admin/aws-google-auth/default.nix b/nixpkgs/pkgs/tools/admin/aws-google-auth/default.nix
index 545e22f6b58a..84b9d3fd8c99 100644
--- a/nixpkgs/pkgs/tools/admin/aws-google-auth/default.nix
+++ b/nixpkgs/pkgs/tools/admin/aws-google-auth/default.nix
@@ -76,6 +76,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Acquire AWS STS (temporary) credentials via Google Apps SAML Single Sign On";
+    mainProgram = "aws-google-auth";
     homepage = "https://github.com/cevoaustralia/aws-google-auth";
     maintainers = [ maintainers.marsam ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/admin/aws-lambda-runtime-interface-emulator/default.nix b/nixpkgs/pkgs/tools/admin/aws-lambda-runtime-interface-emulator/default.nix
index 01d5b9479aa7..b1993ef05c10 100644
--- a/nixpkgs/pkgs/tools/admin/aws-lambda-runtime-interface-emulator/default.nix
+++ b/nixpkgs/pkgs/tools/admin/aws-lambda-runtime-interface-emulator/default.nix
@@ -2,22 +2,23 @@
 
 buildGoModule rec {
   pname = "aws-lambda-runtime-interface-emulator";
-  version = "1.15";
+  version = "1.17";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-lambda-runtime-interface-emulator";
     rev = "v${version}";
-    sha256 = "sha256-ogsWAAm/rEol+UFBqgMSowb78BbQKeGyeJ7UVp/p4js=";
+    sha256 = "sha256-dJbN3Ln3nXED8HmIHSrdKW37fj8dyGnJG27S12VydiE=";
   };
 
-  vendorHash = "sha256-8HRYGpMNZuPBzhp73lGvbJgA5WivMNrBa2wUw/+LX5M=";
+  vendorHash = "sha256-fGoqKDBg+O4uzGmhEIROsBvDS+6zWCzsXe8U6t98bqk=";
 
   # disabled because I lack the skill
   doCheck = false;
 
   meta = with lib; {
     description = "Locally test Lambda functions packaged as container images";
+    mainProgram = "aws-lambda-rie";
     homepage = "https://github.com/aws/aws-lambda-runtime-interface-emulator";
     license = licenses.asl20;
     maintainers = with maintainers; [ teto ];
diff --git a/nixpkgs/pkgs/tools/admin/aws-mfa/default.nix b/nixpkgs/pkgs/tools/admin/aws-mfa/default.nix
index 53b3a8d4a474..6e58574ee2ba 100644
--- a/nixpkgs/pkgs/tools/admin/aws-mfa/default.nix
+++ b/nixpkgs/pkgs/tools/admin/aws-mfa/default.nix
@@ -39,6 +39,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Manage AWS MFA Security Credentials";
+    mainProgram = "aws-mfa";
     homepage = "https://github.com/broamski/aws-mfa";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/tools/admin/aws-vault/default.nix b/nixpkgs/pkgs/tools/admin/aws-vault/default.nix
index 99255f568fa9..20d0667b70e2 100644
--- a/nixpkgs/pkgs/tools/admin/aws-vault/default.nix
+++ b/nixpkgs/pkgs/tools/admin/aws-vault/default.nix
@@ -50,6 +50,7 @@ buildGoModule rec {
   meta = with lib; {
     description =
       "A vault for securely storing and accessing AWS credentials in development environments";
+    mainProgram = "aws-vault";
     homepage = "https://github.com/99designs/aws-vault";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
diff --git a/nixpkgs/pkgs/tools/admin/awscli/default.nix b/nixpkgs/pkgs/tools/admin/awscli/default.nix
index 94b4f8ff82d8..09910f125bc4 100644
--- a/nixpkgs/pkgs/tools/admin/awscli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awscli/default.nix
@@ -10,16 +10,30 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "awscli";
-  version = "1.32.21"; # N.B: if you change this, change botocore and boto3 to a matching version too
+  version = "1.32.58"; # N.B: if you change this, change botocore and boto3 to a matching version too
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-euz3pcTKCPjgP7mKVoOf/62JPp0rRevbcYf/RfZTNd0=";
+    hash = "sha256-dffY/BKsQ7vztW2sGn+WaZB0fXnqwwVjA4nkVwRZ1js=";
   };
 
+  nativeBuildInputs = [
+    python3.pkgs.pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "colorama"
+    "docutils"
+    "rsa"
+  ];
+
+  build-system = [
+    python3.pkgs.setuptools
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     botocore
-    bcdoc
     s3transfer
     colorama
     docutils
diff --git a/nixpkgs/pkgs/tools/admin/awscli2/default.nix b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
index 8c9ec21b1bff..321bccd3862d 100644
--- a/nixpkgs/pkgs/tools/admin/awscli2/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
@@ -4,6 +4,7 @@
 , groff
 , less
 , fetchFromGitHub
+, fetchpatch
 , installShellFiles
 , nix-update-script
 , testers
@@ -18,6 +19,23 @@ let
           "test_check_link_response_only" # fails on hydra https://hydra.nixos.org/build/242624087/nixlog/1
         ];
       });
+      python-dateutil = prev.python-dateutil.overridePythonAttrs (prev: {
+        version = "2.8.2";
+        pyproject = null;
+        src = prev.src.override {
+          version = "2.8.2";
+          hash = "sha256-ASPKzBYnrhnd88J6XeW9Z+5FhvvdZEDZdI+Ku0g9PoY=";
+        };
+        patches = [
+          # https://github.com/dateutil/dateutil/pull/1285
+          (fetchpatch {
+            url = "https://github.com/dateutil/dateutil/commit/f2293200747fb03d56c6c5997bfebeabe703576f.patch";
+            relative = "src";
+            hash = "sha256-BVEFGV/WGUz9H/8q+l62jnyN9VDnoSR71DdL+LIkb0o=";
+          })
+        ];
+        postPatch = null;
+      });
       ruamel-yaml = prev.ruamel-yaml.overridePythonAttrs (prev: {
         src = prev.src.override {
           version = "0.17.21";
@@ -41,27 +59,26 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli2";
-  version = "2.15.15"; # N.B: if you change this, check if overrides are still up-to-date
+  version = "2.15.31"; # N.B: if you change this, check if overrides are still up-to-date
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-cli";
     rev = "refs/tags/${version}";
-    hash = "sha256-hJuJkCiKgSxfPVgS5II7BwpyQhjaRE2Ct3ZJQq6xWgg=";
+    hash = "sha256-7qeB3NCYQi7Mke/ZCGe8QUS5qy26btpGjhY/FMNhdkE=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'cryptography>=3.3.2,<40.0.2' 'cryptography>=3.3.2' \
-      --replace 'flit_core>=3.7.1,<3.8.1' 'flit_core>=3.7.1' \
-      --replace 'awscrt>=0.19.18,<=0.19.19' 'awscrt>=0.19.18' \
-      --replace 'docutils>=0.10,<0.20' 'docutils>=0.10' \
-      --replace 'prompt-toolkit>=3.0.24,<3.0.39' 'prompt-toolkit>=3.0.24'
+      --replace-fail 'awscrt>=0.19.18,<=0.19.19' 'awscrt>=0.19.18' \
+      --replace-fail 'cryptography>=3.3.2,<40.0.2' 'cryptography>=3.3.2' \
+      --replace-fail 'distro>=1.5.0,<1.9.0' 'distro>=1.5.0' \
+      --replace-fail 'docutils>=0.10,<0.20' 'docutils>=0.10' \
+      --replace-fail 'prompt-toolkit>=3.0.24,<3.0.39' 'prompt-toolkit>=3.0.24'
 
     substituteInPlace requirements-base.txt \
-      --replace "wheel==0.38.4" "wheel>=0.38.4" \
-      --replace "flit_core==3.8.0" "flit_core>=3.8.0"
+      --replace-fail "wheel==0.38.4" "wheel>=0.38.4"
 
     # Upstream needs pip to build and install dependencies and validates this
     # with a configure script, but we don't as we provide all of the packages
@@ -69,12 +86,12 @@ with py.pkgs; buildPythonApplication rec {
     sed -i '/pip>=/d' requirements/bootstrap.txt
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     installShellFiles
     flit-core
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     awscrt
     bcdoc
     botocore
@@ -116,6 +133,9 @@ with py.pkgs; buildPythonApplication rec {
   ];
 
   disabledTestPaths = [
+    "tests/dependencies"
+    "tests/unit/botocore"
+
     # Integration tests require networking
     "tests/integration"
 
diff --git a/nixpkgs/pkgs/tools/admin/awslimitchecker/default.nix b/nixpkgs/pkgs/tools/admin/awslimitchecker/default.nix
index 0a67e5a4e4e2..cc492ed065d3 100644
--- a/nixpkgs/pkgs/tools/admin/awslimitchecker/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awslimitchecker/default.nix
@@ -52,6 +52,7 @@ python3Packages.buildPythonApplication rec {
     homepage = "http://awslimitchecker.readthedocs.org";
     changelog = "https://github.com/jantman/awslimitchecker/blob/${version}/CHANGES.rst";
     description = "A script and python package to check your AWS service limits and usage via boto3";
+    mainProgram = "awslimitchecker";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ zakame ];
   };
diff --git a/nixpkgs/pkgs/tools/admin/awslogs/default.nix b/nixpkgs/pkgs/tools/admin/awslogs/default.nix
index ff4924c1cce5..153da049ac16 100644
--- a/nixpkgs/pkgs/tools/admin/awslogs/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awslogs/default.nix
@@ -45,6 +45,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "AWS CloudWatch logs for Humans";
+    mainProgram = "awslogs";
     homepage = "https://github.com/jorgebastida/awslogs";
     license = licenses.bsd3;
     maintainers = with maintainers; [ dbrock ];
diff --git a/nixpkgs/pkgs/tools/admin/azure-cli/default.nix b/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
index 71c478d61216..9d92a10cc288 100644
--- a/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
@@ -5,14 +5,14 @@
 }:
 
 let
-  version = "2.56.0";
+  version = "2.58.0";
 
   src = fetchFromGitHub {
     name = "azure-cli-${version}-src";
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    hash = "sha256-rlyBp0aVjmOCIb000PdvU7nJlC9vvk+nVmIEtMTKEG8=";
+    hash = "sha256-2KLjPzxtHeuH0/+Sge1wTmGimOiaTWr8EI+xkFBrPD0=";
   };
 
   # put packages that needs to be overridden in the py package scope
diff --git a/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix b/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
index 3714c5bec020..b01341f1a2ca 100644
--- a/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -95,140 +95,52 @@ let
         '';
       };
 
-      antlr4-python3-runtime = super.antlr4-python3-runtime.override (_: {
-        antlr4 = super.pkgs.antlr4_12;
-      });
-      azure-mgmt-advisor = overrideAzureMgmtPackage super.azure-mgmt-advisor "9.0.0" "zip" "sha256-/ECLNzFf6EeBtRkST4yxuKwQsvQkHkOdDT4l/WyhjXs=";
-      azure-mgmt-apimanagement = overrideAzureMgmtPackage super.azure-mgmt-apimanagement "4.0.0" "zip" "sha256-AiTjLJ28g80xnrRFLfPUevJgeaxLpuGmvkd3+FskNiw=";
-      azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "4.0.0" "zip" "sha256-abhavAmuZPxyl1vUNDEXDYx+tdFmdUuYqsXzhF3lfcQ=";
-      azure-mgmt-billing = overrideAzureMgmtPackage super.azure-mgmt-billing "6.0.0" "zip" "sha256-1PXFpBiKRW/h6zK2xF9VyiBpx0vkHrdpIYQLOfL1wH8=";
+      azure-keyvault-keys = overrideAzureMgmtPackage super.azure-keyvault-keys "4.9.0b3" "tar.gz" "sha256-qoseyf6WqBEG8vPc1hF17K46AWk8Ba8V9KRed4lOlGo=";
+      azure-mgmt-applicationinsights = overrideAzureMgmtPackage super.azure-mgmt-applicationinsights "1.0.0" "zip" "sha256-woeix9703hn5LAwxugKGf6xvW433G129qxkoi7RV/Fs=";
+      azure-mgmt-batch = overrideAzureMgmtPackage super.azure-mgmt-batch "17.2.0" "tar.gz" "sha256-ihXjijfW5OzilXPegIxaiSdsmfJSDqHzUrhqcEyJhY0=";
+      azure-mgmt-batchai = overrideAzureMgmtPackage super.azure-mgmt-batchai "7.0.0b1" "zip" "sha256-mT6vvjWbq0RWQidugR229E8JeVEiobPD3XA/nDM3I6Y=";
       azure-mgmt-botservice = overrideAzureMgmtPackage super.azure-mgmt-botservice "2.0.0b3" "zip" "sha256-XZGQOeMw8usyQ1tl8j57fZ3uqLshomHY9jO/rbpQOvM=";
-      azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "13.5.0" "zip" "sha256-RK8LGbH4J+nN6gnGBUweZgkqUcMrwe9aVtvZtAvFeBU=";
+      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "12.0.0" "zip" "sha256-t8PuIYkjS0r1Gs4pJJJ8X9cz8950imQtbVBABnyMnd0=";
       azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "30.4.0" "tar.gz" "sha256-C3Qo/YvRXHy9fGa5uwEOClyzeoBs7x9JSNkHGRV2kzQ=";
-      azure-mgmt-containerinstance = overrideAzureMgmtPackage super.azure-mgmt-containerinstance "10.1.0" "zip" "sha256-eNQ3rbKFdPRIyDjtXwH5ztN4GWCYBh3rWdn3AxcEwX4=";
-      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "10.1.0" "zip" "sha256-VrX9YfYNvlA8+eNqHCp35BAeQZzQKakZs7ZZKwT8oYc=";
       azure-mgmt-core = overrideAzureMgmtPackage super.azure-mgmt-core "1.3.2" "zip" "sha256-B/Sv6COlXXBLBI1h7f3BMYwFHtWfJEAyEmNQvpXp1QE=";
-      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "9.3.0" "tar.gz" "sha256-02DisUN2/auBDhPgE9aUvEvYwoQUQC4NYGD/PQZOl/Y=";
-      azure-mgmt-databoxedge = overrideAzureMgmtPackage super.azure-mgmt-databoxedge "1.0.0" "zip" "sha256-BAkAYrwejwDC9FMVo7zrD7OzR57BR01xuINC4TSZsIc=";
-      azure-mgmt-datalake-nspkg = overrideAzureMgmtPackage super.azure-mgmt-datalake-nspkg "3.0.1" "zip" "sha256-3rGSukIviz7Ccs5OiHNnlvIW8o6lsD8oMx14S3o/SIA=";
-      azure-mgmt-datamigration = overrideAzureMgmtPackage super.azure-mgmt-datamigration "10.0.0" "zip" "sha256-XO5w+X/joJPDy3DCoZDC35Nrdy6UoJ73496x7Rd8nzI=";
+      azure-mgmt-datalake-store = overrideAzureMgmtPackage super.azure-mgmt-datalake-store "0.5.0" "zip" "sha256-k3bTVJVmHRn4rMVgT2ewvFlJOxg1u8SA+aGVL5ABekw=";
+      azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip" "sha256-WVScTEBo8mRmsQl7V0qOUJn7LNbIvgoAOVsG07KeJ40=";
       azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "8.0.0" "zip" "sha256-QHwtrLM1E/++nKS+Wt216dS64Mt++mE8P31THve/jeg=";
+      azure-mgmt-eventgrid = overrideAzureMgmtPackage super.azure-mgmt-eventgrid "10.2.0b2" "zip" "sha256-QcHY1wCwQyVOEdUi06/wEa4dqJH5Ccd33gJ1Sju0qZA=";
+      azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "10.1.0" "zip" "sha256-MZqhSBkwypvEefhoEWEPsBUFidWYD7qAX6edcBDDSSA=";
       azure-mgmt-extendedlocation = overrideAzureMgmtPackage super.azure-mgmt-extendedlocation "1.0.0b2" "zip" "sha256-mjfH35T81JQ97jVgElWmZ8P5MwXVxZQv/QJKNLS3T8A=";
-      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "9.0.0" "zip" "sha256-QevcacDR+B0l3TBDjBT/9DMfZmOfVYBbkYuWSer/54o=";
-      azure-mgmt-imagebuilder = overrideAzureMgmtPackage super.azure-mgmt-imagebuilder "1.2.0" "zip" "sha256-XmGIzw+yGYgdaNGZJClFRl531BGsQUH+HESUXGVK6TI=";
-      azure-mgmt-iothubprovisioningservices = overrideAzureMgmtPackage super.azure-mgmt-iothubprovisioningservices "1.1.0" "zip" "sha256-04OoJuff93L62G6IozpmHpEaUbHHHD6nKlkMHVoJvJ4=";
-      azure-mgmt-managementgroups = overrideAzureMgmtPackage super.azure-mgmt-managementgroups "1.0.0" "zip" "sha256-urm9UyocNFV/Wwq5lQ5DHj8Au5boo85m3w9s4q4ZzXM=";
+      azure-mgmt-iotcentral = overrideAzureMgmtPackage super.azure-mgmt-iotcentral "10.0.0b1" "zip" "sha256-1CiZuTXYhIb74eGQZUJHHzovYNnnVd3Ydu1UCy2Bu00=";
+      azure-mgmt-kusto = (overrideAzureMgmtPackage super.azure-mgmt-kusto "0.3.0" "zip"
+        "sha256-nri3eB/UQQ7p4gfNDDmDuvnlhBS1tKGISdCYVuNrrN4=").overridePythonAttrs (attrs: {
+        propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest self.msrestazure ];
+      });
       azure-mgmt-maps = overrideAzureMgmtPackage super.azure-mgmt-maps "2.0.0" "zip" "sha256-OE4X92potwCk+YhHiUXDqXIXEcBAByWv38tjz4ToXw4=";
-      azure-mgmt-marketplaceordering = overrideAzureMgmtPackage super.azure-mgmt-marketplaceordering "1.1.0" "zip" "sha256-aLOB9SpN9ENdrK1al+HFmsTJgfZn3MqPnQRFNBfWCtg=";
+      azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "9.0.0" "zip" "sha256-TI7l8sSQ2QUgPqiE3Cu/F67Wna+KHbQS3fuIjOb95ZM=";
       azure-mgmt-monitor = overrideAzureMgmtPackage super.azure-mgmt-monitor "5.0.0" "zip" "sha256-eL9KJowxTF7hZJQQQCNJZ7l+rKPFM8wP5vEigt3ZFGE=";
-      azure-mgmt-msi = overrideAzureMgmtPackage super.azure-mgmt-msi "7.0.0" "zip" "sha256-ctRsmmJ4PsTqthm+nRt4/+u9qhZNQG/TA/FjA/NyVrI=";
+      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "10.1.0" "zip" "sha256-eJiWTOCk2C79Jotku9bKlu3vU6H8004hWrX+h76MjQM=";
+      azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "1.1.0b4" "zip" "sha256-aB16xyrhNYHJeitvdCeV+kik21B2LC+5/OSDQIGwTpI=";
       azure-mgmt-privatedns = overrideAzureMgmtPackage super.azure-mgmt-privatedns "1.0.0" "zip" "sha256-tg8W5D97KRWCxfV7rhsIMJbYMD6dmVjiwpInpVzCfEU=";
-      azure-mgmt-recoveryservices = overrideAzureMgmtPackage super.azure-mgmt-recoveryservices "2.5.0" "tar.gz" "sha256-XxowjEhYx5uD/4vY5hGSCSvcarmdbdc5Y2GLHciEurU=";
-      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "7.0.0" "tar.gz" "sha256-GuW6x8JGdBedywum4fDAQ8rwbVU9UgQWgHrFqJ6Uz9A=";
-      azure-mgmt-redhatopenshift = overrideAzureMgmtPackage super.azure-mgmt-redhatopenshift "1.4.0" "tar.gz" "sha256-BL2a2L2AwJWvs0V+VpSGaS8//AWMy5m6rdAPDJPbrEo=";
-      azure-mgmt-redis = overrideAzureMgmtPackage super.azure-mgmt-redis "14.1.0" "zip" "sha256-LO92Wc2+VvsEKiOjVSHXw2o3D69NQlL58m+YqWl6+ig=";
+      azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "10.2.0b12" "tar.gz" "sha256-WdTm0YxMXNHGcSGD38YZ1YmJaMjfLJC8OImXedcxDeE=";
+      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "8.0.0" "tar.gz" "sha256-Hakde59uvVcCkvFt9w69nVr7BjNrPU0Q/COcA0h7Cnw=";
+      azure-mgmt-redis = overrideAzureMgmtPackage super.azure-mgmt-redis "14.3.0" "tar.gz" "sha256-eoMbY4oNzYXkn3uFUhxecJQD+BxYkGTbWhAWSgAoLyA=";
+      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "23.1.0b2" "zip" "sha256-kMmiKVwjPgmsTIxxxDRNXE41jSTJkemnKhO+P/OcPZI=";
       azure-mgmt-search = overrideAzureMgmtPackage super.azure-mgmt-search "9.0.0" "zip" "sha256-Gc+qoTa1EE4/YmJvUSqVG+zZ50wfohvWOe/fLJ/vgb0=";
       azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "5.0.0" "zip" "sha256-OLA+/oLCNEzqID/alebQC3rCJ4L6HAtYXNDqLI/z5wI=";
-      azure-mgmt-servicebus = overrideAzureMgmtPackage super.azure-mgmt-servicebus "8.2.0" "zip" "sha256-i+kgjxQdmnifaNuNIZdU/3gGn9j5OQ6fdkS7laO+nsI=";
-      azure-mgmt-servicefabricmanagedclusters = overrideAzureMgmtPackage super.azure-mgmt-servicefabricmanagedclusters "1.0.0" "zip" "sha256-EJyjolHrt92zWg+IKWFKTapwZaFrwTtSyEIu5/mZXOg=";
-      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "21.1.0" "tar.gz" "sha256-1tPA6RfJiLye0Eckd9PvP5CIYAnrHZenEZRPg3VjAWI=";
-      azure-mgmt-trafficmanager = overrideAzureMgmtPackage super.azure-mgmt-trafficmanager "1.0.0" "zip" "sha256-R0F2HoA0bE7dTLPycTaOqYBj+ATQFeJFwv4EjtK1lqg=";
-      azure-synapse-managedprivateendpoints = overrideAzureMgmtPackage super.azure-synapse-managedprivateendpoints "0.4.0" "zip" "sha256-kA6urM/9zQEBKySKfQSQCMkoB7dJ7dHJB0ypJIVUwX4=";
-
-      azure-synapse-spark = overrideAzureMgmtPackage super.azure-synapse-spark "0.2.0" "zip" "sha256-OQ5brhweEIrtN2iP4I5NacdC9t3YUiGIVhhqSs3FMuI=";
-
-      azure-mgmt-appcontainers = overrideAzureMgmtPackage super.azure-mgmt-appcontainers "2.0.0" "zip"
-        "sha256-ccdIdvdgTYPWEZCWqkLc8lEuMuAEERvl5B1huJyBkvU=";
-
-      azure-mgmt-batch = (overrideAzureMgmtPackage super.azure-mgmt-batch "17.0.0" "zip"
-        "sha256-hkM4WVLuwxj4qgXsY8Ya7zu7/v37gKdP0Xbf2EqrsWo=").overridePythonAttrs (attrs: {
-        propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest ];
-      });
-
-      azure-mgmt-batchai = overrideAzureMgmtPackage super.azure-mgmt-batchai "7.0.0b1" "zip"
-        "sha256-mT6vvjWbq0RWQidugR229E8JeVEiobPD3XA/nDM3I6Y=";
-
-      azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "1.1.0b4" "zip"
-        "sha512-NW2BNj45lKzBmPXWMuBnVEDG2C6xzo9J/QjcC5fczvyhKBIkhugJVOWdPUsSzyGeQYKdqpRWPOl0yBG/eblHQA==";
-
-      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "12.0.0" "zip"
-        "sha256-t8PuIYkjS0r1Gs4pJJJ8X9cz8950imQtbVBABnyMnd0=";
-
-      azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "10.2.0b11" "tar.gz"
-        "sha256-A7SwklqAhz4Ey9ar1YWythtVZyQ2Y2RUsa27iMc2mxU=";
-
-      azure-mgmt-appconfiguration = overrideAzureMgmtPackage super.azure-mgmt-appconfiguration "3.0.0" "zip"
-        "sha256-FJhuVgqNjdRIegP4vUISrAtHvvVle5VQFVITPm4HLEw=";
-
-      azure-mgmt-eventgrid = overrideAzureMgmtPackage super.azure-mgmt-eventgrid "10.2.0b2" "zip"
-        "sha256-QcHY1wCwQyVOEdUi06/wEa4dqJH5Ccd33gJ1Sju0qZA=";
-
-      azure-mgmt-iothub = overrideAzureMgmtPackage super.azure-mgmt-iothub "3.0.0" "tar.gz"
-        "sha256-2vIfyYxoo1PsYWMYwOYr4EyNaJmWC+jCy/mRZzrItyI=";
-
-      azure-mgmt-iotcentral = overrideAzureMgmtPackage super.azure-mgmt-iotcentral "10.0.0b1" "zip"
-        "sha256-1CiZuTXYhIb74eGQZUJHHzovYNnnVd3Ydu1UCy2Bu00=";
-
-      azure-mgmt-kusto = (overrideAzureMgmtPackage super.azure-mgmt-kusto "0.3.0" "zip"
-        "sha256-nri3eB/UQQ7p4gfNDDmDuvnlhBS1tKGISdCYVuNrrN4=").overridePythonAttrs (attrs: {
-        propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest self.msrestazure ];
-      });
-
-      azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip"
-        "sha256-WVScTEBo8mRmsQl7V0qOUJn7LNbIvgoAOVsG07KeJ40=";
-
-      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "13.0.0b4" "zip"
-        "sha256-Jm1t7v5vyFjNNM/evVaEI9sXJKNwJk6XAXuJSRSnKHk=";
-
-      azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "9.0.0" "zip"
-        "sha256-TI7l8sSQ2QUgPqiE3Cu/F67Wna+KHbQS3fuIjOb95ZM=";
-
-      azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "7.2.0" "tar.gz"
-        "sha256-78/m9/Ug7Qq8/oZRfhyM8CpxL3N6PbDbfLRsbWR5ge0=";
-
-      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "10.1.0" "zip"
-        "sha256-eJiWTOCk2C79Jotku9bKlu3vU6H8004hWrX+h76MjQM=";
-
-      azure-mgmt-signalr = overrideAzureMgmtPackage super.azure-mgmt-signalr "2.0.0b2" "tar.gz"
-        "sha256-05PUV8ouAKq/xhGxVEWIzDop0a7WDTV5mGVSC4sv9P4=";
-
-      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "4.0.0b12" "tar.gz"
-        "sha256-LJx9cdtqpoHl1pPGYodoA50y8NP4ftbXhY7zohsCPH8=";
-
-      azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "1.0.0b5" "zip"
-        "sha256-ZFgJflgynRSxo+B+Vso4eX1JheWlDQjfJ9QmupXypMc=";
-
-      azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "2.1.0b5" "zip"
-        "sha256-5E6Yf1GgNyNVjd+SeFDbhDxnOA6fOAG6oojxtCP4m+k=";
-
-      azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "10.1.0" "zip"
-        "sha256-MZqhSBkwypvEefhoEWEPsBUFidWYD7qAX6edcBDDSSA=";
-
-      azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "10.3.0" "tar.gz"
-        "sha256-GDtBZM8YaLjqfv6qmO2tfSpOFKm9l3woGLErdRUM0qI=";
-
-      azure-mgmt-applicationinsights = overrideAzureMgmtPackage super.azure-mgmt-applicationinsights "1.0.0" "zip"
-        "sha256-woeix9703hn5LAwxugKGf6xvW433G129qxkoi7RV/Fs=";
-
       azure-mgmt-servicefabric = (overrideAzureMgmtPackage super.azure-mgmt-servicefabric "1.0.0" "zip"
         "sha256-3jXhF5EoMsGp6TEJqNJMq5T1VwOpCHsuscWwZVs7GRM=").overridePythonAttrs (attrs: {
-        propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest ];
+        propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ self.msrest self.msrestazure ];
       });
+      azure-mgmt-servicelinker = overrideAzureMgmtPackage super.azure-mgmt-servicelinker "1.2.0b1" "zip" "sha256-RK1Q51Q0wAG55oKrFmv65/2AUKl+gRdp27t/EcuMONk=";
+      azure-mgmt-signalr = overrideAzureMgmtPackage super.azure-mgmt-signalr "2.0.0b1" "tar.gz" "sha256-oK2ceBEoQ7gAeG6mye+x8HPzQU9bUNRPVJtRW2GL4xg=";
+      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "4.0.0b15" "tar.gz" "sha256-zSrDo3+ftYayOK/gvhf/PQ926e3qExtSj/yDgXC9VqA=";
+      azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "1.0.0b5" "zip" "sha256-ZFgJflgynRSxo+B+Vso4eX1JheWlDQjfJ9QmupXypMc=";
+      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "21.1.0" "tar.gz" "sha256-1tPA6RfJiLye0Eckd9PvP5CIYAnrHZenEZRPg3VjAWI=";
+      azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "2.1.0b5" "zip" "sha256-5E6Yf1GgNyNVjd+SeFDbhDxnOA6fOAG6oojxtCP4m+k=";
+      azure-mgmt-trafficmanager = overrideAzureMgmtPackage super.azure-mgmt-trafficmanager "1.0.0" "zip" "sha256-R0F2HoA0bE7dTLPycTaOqYBj+ATQFeJFwv4EjtK1lqg=";
 
-      azure-mgmt-servicelinker = overrideAzureMgmtPackage super.azure-mgmt-servicelinker "1.2.0b1" "zip"
-        "sha256-RK1Q51Q0wAG55oKrFmv65/2AUKl+gRdp27t/EcuMONk=";
-
-      azure-storage-common = overrideAzureMgmtPackage super.azure-storage-common "1.4.2" "tar.gz"
-        "sha256-Tsh8dTfUV+yVJS4ORkd+LBzPM3dP/v0F2FRGgssK5AE=";
-
-      azure-keyvault-keys = overrideAzureMgmtPackage super.azure-keyvault-keys "4.9.0b3" "tar.gz"
-        "sha256-qoseyf6WqBEG8vPc1hF17K46AWk8Ba8V9KRed4lOlGo=";
-
-      azure-mgmt-datalake-store = overrideAzureMgmtPackage super.azure-mgmt-datalake-store "0.5.0" "zip"
-        "sha256-k3bTVJVmHRn4rMVgT2ewvFlJOxg1u8SA+aGVL5ABekw=";
-
-      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "23.1.0b2" "zip"
-        "sha256-kMmiKVwjPgmsTIxxxDRNXE41jSTJkemnKhO+P/OcPZI=";
+      azure-storage-common = overrideAzureMgmtPackage super.azure-storage-common "1.4.2" "tar.gz" "sha256-Tsh8dTfUV+yVJS4ORkd+LBzPM3dP/v0F2FRGgssK5AE=";
+      azure-synapse-accesscontrol = overrideAzureMgmtPackage super.azure-synapse-accesscontrol "0.5.0" "zip" "sha256-g14ySiByqPgkJGRH8EnIRJO9Q6H2usS5FOeMCQiUuwQ=";
+      azure-synapse-spark = overrideAzureMgmtPackage super.azure-synapse-spark "0.2.0" "zip" "sha256-OQ5brhweEIrtN2iP4I5NacdC9t3YUiGIVhhqSs3FMuI=";
     };
   };
 in
diff --git a/nixpkgs/pkgs/tools/admin/balena-cli/default.nix b/nixpkgs/pkgs/tools/admin/balena-cli/default.nix
index 106ac4774dad..4afbe7c06be1 100644
--- a/nixpkgs/pkgs/tools/admin/balena-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/balena-cli/default.nix
@@ -18,16 +18,16 @@ let
   };
 in buildNpmPackage' rec {
   pname = "balena-cli";
-  version = "18.0.2";
+  version = "18.1.5";
 
   src = fetchFromGitHub {
     owner = "balena-io";
     repo = "balena-cli";
     rev = "v${version}";
-    hash = "sha256-u1u/53BTojAUwXk8odK8m2QohzIvypQI9c/UOQflbzE=";
+    hash = "sha256-VlNhW5fxljj/nu04jnbs03DrOMBTf11YMoRxoJ8jBpE=";
   };
 
-  npmDepsHash = "sha256-jNptqvHVZUXAZ19m8or1+U8nIAxDep395F6xK6EQ++c=";
+  npmDepsHash = "sha256-0WyjWsoeOo0jnIh6tTFNGDtS5mo1sgfSxM6840kMFBE=";
 
   postPatch = ''
     ln -s npm-shrinkwrap.json package-lock.json
diff --git a/nixpkgs/pkgs/tools/admin/chamber/default.nix b/nixpkgs/pkgs/tools/admin/chamber/default.nix
index 2b3975002a16..b2cd363f8f88 100644
--- a/nixpkgs/pkgs/tools/admin/chamber/default.nix
+++ b/nixpkgs/pkgs/tools/admin/chamber/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "chamber";
-  version = "2.14.0";
+  version = "2.14.1";
 
   src = fetchFromGitHub {
     owner = "segmentio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-vyVdEMs+vtZkN0UuXGmCPNB4hsfjiiG6LeWYFW3gLiw=";
+    sha256 = "sha256-Vbz8rpNy6+iIr/WyegALSo4gRoDL2P1x/6lHg6Kvm/w=";
   };
 
   CGO_ENABLED = 0;
 
-  vendorHash = "sha256-pxWsx/DURVOXGC2izKS91BhbHc220+/6t15eT4Jl128=";
+  vendorHash = "sha256-ZRKs/5JtsTjWL62RuQRwroA6TvTpJqkf6pOecvO3134=";
 
   ldflags = [ "-s" "-w" "-X main.Version=v${version}" ];
 
diff --git a/nixpkgs/pkgs/tools/admin/chkcrontab/default.nix b/nixpkgs/pkgs/tools/admin/chkcrontab/default.nix
index 7d24270f8d53..e8133ae65d2f 100644
--- a/nixpkgs/pkgs/tools/admin/chkcrontab/default.nix
+++ b/nixpkgs/pkgs/tools/admin/chkcrontab/default.nix
@@ -13,6 +13,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "A tool to detect crontab errors";
+    mainProgram = "chkcrontab";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
     homepage = "https://github.com/lyda/chkcrontab";
diff --git a/nixpkgs/pkgs/tools/admin/copilot-cli/default.nix b/nixpkgs/pkgs/tools/admin/copilot-cli/default.nix
index 64fc1b20920b..4664c60694d3 100644
--- a/nixpkgs/pkgs/tools/admin/copilot-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/copilot-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "copilot-cli";
-  version = "1.33.1";
+  version = "1.33.2";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-/xuS5tJBV67gXGHQ93FpMXMLXnhAgnicQnKx/pnwyAM=";
+    hash = "sha256-+1ri9l6ngNIMFYg+n0wDluqZ6/Zl3it4yPOBglk/0JU=";
   };
 
-  vendorHash = "sha256-ekAuvvLxk9cwIuElosc6QbsW7+3f/mO8vsA74DA82D0=";
+  vendorHash = "sha256-HoiBg32L+aRsdDXFOvwZFURV2RttLIGuOOjB8lcYGXU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/admin/credhub-cli/default.nix b/nixpkgs/pkgs/tools/admin/credhub-cli/default.nix
index bd828b6ce4bc..b4c79b8913b1 100644
--- a/nixpkgs/pkgs/tools/admin/credhub-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/credhub-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "credhub-cli";
-  version = "2.9.27";
+  version = "2.9.28";
 
   src = fetchFromGitHub {
     owner = "cloudfoundry-incubator";
     repo = "credhub-cli";
     rev = version;
-    sha256 = "sha256-qd6AKiFfDmh7O0HloV05yMGwP4htrPR+O3wQFSsZEps=";
+    sha256 = "sha256-2LHWbTvxE8awSUm33XocjWxrY8dosMEaCPOx85+tj4s=";
   };
 
   # these tests require network access that we're not going to give them
diff --git a/nixpkgs/pkgs/tools/admin/dehydrated/default.nix b/nixpkgs/pkgs/tools/admin/dehydrated/default.nix
index d36028e3b227..93a4c4f740d7 100644
--- a/nixpkgs/pkgs/tools/admin/dehydrated/default.nix
+++ b/nixpkgs/pkgs/tools/admin/dehydrated/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Letsencrypt/acme client implemented as a shell-script";
+    mainProgram = "dehydrated";
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = [ maintainers.pstn ];
diff --git a/nixpkgs/pkgs/tools/admin/drawterm/default.nix b/nixpkgs/pkgs/tools/admin/drawterm/default.nix
index 3e4c15faf14b..c83b3dfd6597 100644
--- a/nixpkgs/pkgs/tools/admin/drawterm/default.nix
+++ b/nixpkgs/pkgs/tools/admin/drawterm/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation {
   pname = "drawterm";
-  version = "unstable-2024-02-18";
+  version = "unstable-2024-03-20";
 
   src = fetchFrom9Front {
     owner = "plan9front";
     repo = "drawterm";
-    rev = "bcf1eb425dd4c90a3bfcd004f6aee3854259da78";
-    hash = "sha256-aUQ6ay2ky9NzVUZvWyHc/GqPlCdhGpXTY8GGytJSC6g=";
+    rev = "77b464a5d5648bb646467111b8faf719cd5c46b6";
+    hash = "sha256-3J/Fa3NXxUieEqRcCepGdd0ktxQFKhyY4z8Pvcq94Kw=";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix b/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
index b76e362c66d5..4abc7a998eab 100644
--- a/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "exoscale-cli";
-  version = "1.76.1";
+  version = "1.76.2";
 
   src = fetchFromGitHub {
     owner = "exoscale";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-HVMsN5qkC+eWb5usdSLgE/dgFtALCaadnKV5zeiKLJI=";
+    sha256 = "sha256-0wobPnSrKVJ61+gj3cZsNUt6hun3qa/zVoBZlP3viSk=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/tools/admin/gam/default.nix b/nixpkgs/pkgs/tools/admin/gam/default.nix
index 5847bcf00d51..795256d21890 100644
--- a/nixpkgs/pkgs/tools/admin/gam/default.nix
+++ b/nixpkgs/pkgs/tools/admin/gam/default.nix
@@ -64,6 +64,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Command line management for Google Workspace";
+    mainProgram = "gam";
     homepage = "https://github.com/GAM-team/GAM/wiki";
     changelog = "https://github.com/GAM-team/GAM/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/admin/gimme-aws-creds/default.nix b/nixpkgs/pkgs/tools/admin/gimme-aws-creds/default.nix
index 82081a68af43..f4a2e496b056 100644
--- a/nixpkgs/pkgs/tools/admin/gimme-aws-creds/default.nix
+++ b/nixpkgs/pkgs/tools/admin/gimme-aws-creds/default.nix
@@ -95,6 +95,7 @@ python.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/Nike-Inc/gimme-aws-creds";
     changelog = "https://github.com/Nike-Inc/gimme-aws-creds/releases";
     description = "A CLI that utilizes Okta IdP via SAML to acquire temporary AWS credentials";
+    mainProgram = "gimme-aws-creds";
     license = licenses.asl20;
     maintainers = with maintainers; [ jbgosselin ];
   };
diff --git a/nixpkgs/pkgs/tools/admin/gixy/default.nix b/nixpkgs/pkgs/tools/admin/gixy/default.nix
index 31c2e88dd825..541bcb42f905 100644
--- a/nixpkgs/pkgs/tools/admin/gixy/default.nix
+++ b/nixpkgs/pkgs/tools/admin/gixy/default.nix
@@ -50,6 +50,7 @@ python.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Nginx configuration static analyzer";
+    mainProgram = "gixy";
     longDescription = ''
       Gixy is a tool to analyze Nginx configuration.
       The main goal of Gixy is to prevent security misconfiguration and automate flaw detection.
diff --git a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/components.json b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/components.json
index eba193fd516e..88908d304608 100644
--- a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/components.json
+++ b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/components.json
@@ -5,7 +5,7 @@
         "checksum": "5a65179c291bc480696ca323d2f8c4874985458303eff8f233e16cdca4e88e6f",
         "contents_checksum": "038c999c7a7d70d5133eab7dc5868c4c3d0358431dad250f9833306af63016c8",
         "size": 800,
-        "source": "components/google-cloud-sdk-alpha-20231025210228.tar.gz",
+        "source": "components/google-cloud-sdk-alpha-20240229170130.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -22,8 +22,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20231025210228,
-        "version_string": "2023.10.25"
+        "build_number": 20240229170130,
+        "version_string": "2024.02.29"
       }
     },
     {
@@ -56,15 +56,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.4.4"
+        "version_string": "1.5.0"
       }
     },
     {
       "data": {
-        "checksum": "f197d04a40be89731ecd7a653f83900dcc4dcd84e54e0833c529f9f8dfa4395c",
-        "contents_checksum": "fa1d4910c1ce188c5c450d655c5d15e59a146364ec46e3fda0791db76c2edd17",
-        "size": 20108065,
-        "source": "components/google-cloud-sdk-anthos-auth-darwin-arm-20220923141408.tar.gz",
+        "checksum": "e644f1dfa8a4c25029b33fcf04f4c3c6e01c4c7ed2d572e550890c71d3e8105f",
+        "contents_checksum": "1f789abe50e6cc5423d39c2530995849bda198e866abbd61904ffb964688e3b3",
+        "size": 21674635,
+        "source": "components/google-cloud-sdk-anthos-auth-darwin-arm-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -88,16 +88,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220923141408,
-        "version_string": "1.4.4"
+        "build_number": 20231201141418,
+        "version_string": "1.5.0"
       }
     },
     {
       "data": {
-        "checksum": "5417a11523868f36d6b7c3199e3029cf9f43c8cb99c57dba016942db4141c939",
-        "contents_checksum": "06a661642cbd20bcb9965c7a4b505d4d72944c48c30b8ada71db7e53c898d505",
-        "size": 21183974,
-        "source": "components/google-cloud-sdk-anthos-auth-darwin-x86_64-20220923141408.tar.gz",
+        "checksum": "72a93a9df0d0647ac5587be7dc0f423c9700d191d21e870d7f8218195e8b7c67",
+        "contents_checksum": "80a810795133e6ed5d17b963606a980c85e059011c9eeffc4b23fdecbbc95736",
+        "size": 22732157,
+        "source": "components/google-cloud-sdk-anthos-auth-darwin-x86_64-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -121,16 +121,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220923141408,
-        "version_string": "1.4.4"
+        "build_number": 20231201141418,
+        "version_string": "1.5.0"
       }
     },
     {
       "data": {
-        "checksum": "c9dee264071d169de081880019f2f6fdb14edc22cbd20c19de76bb7cfa196eae",
-        "contents_checksum": "80ae98f1bfd1bd5cce9cddd642a1505d5401908d8890a22afa723490132b4342",
-        "size": 19755666,
-        "source": "components/google-cloud-sdk-anthos-auth-linux-arm-20220923141408.tar.gz",
+        "checksum": "c6201122eb946238b632d68c944880a172759e7c6e60086d878c8f65017d4614",
+        "contents_checksum": "def3aaea624bd24a35d2cd8321562cb5ef5f4b659415c552e439c47ea80be22b",
+        "size": 21172533,
+        "source": "components/google-cloud-sdk-anthos-auth-linux-arm-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -154,16 +154,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220923141408,
-        "version_string": "1.4.4"
+        "build_number": 20231201141418,
+        "version_string": "1.5.0"
       }
     },
     {
       "data": {
-        "checksum": "b5efe7e9cd17f44905186242e663b97734183e14c66daed35553bc59bbf07a3a",
-        "contents_checksum": "57b753ecbde456973bed97af69aa7d1696694c1d30e9756d57658f79689fd925",
-        "size": 21362894,
-        "source": "components/google-cloud-sdk-anthos-auth-linux-x86_64-20220923141408.tar.gz",
+        "checksum": "1a674e3872d702e59c8ef9b275f7e6dfb3a2e428fbaaa177442341f46c62b92d",
+        "contents_checksum": "ce215c3c67f2445ff1e1bd7d3c897ed5e83b169edb6004ce0898da08a3dc5066",
+        "size": 22854830,
+        "source": "components/google-cloud-sdk-anthos-auth-linux-x86_64-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -187,16 +187,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220923141408,
-        "version_string": "1.4.4"
+        "build_number": 20231201141418,
+        "version_string": "1.5.0"
       }
     },
     {
       "data": {
-        "checksum": "ab73e4c82e95a7b707f2298906a7a5fb9a2c1fe741c4584ab16e507bcf7b6d5b",
-        "contents_checksum": "38d10a97aa0e5fbf2c927acda1c853c25a2b729615bebd2ac8fce4eb77c2466a",
-        "size": 21470866,
-        "source": "components/google-cloud-sdk-anthos-auth-windows-x86_64-20220923141408.tar.gz",
+        "checksum": "340aff9659764a4b82358dc1face81ca6fccb6cdba0a4b176305d984706f136c",
+        "contents_checksum": "603ea38b094e85e9a4836061bd057c086b37778a8cc2c7134d1d9bbd43b68639",
+        "size": 23111838,
+        "source": "components/google-cloud-sdk-anthos-auth-windows-x86_64-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -220,8 +220,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220923141408,
-        "version_string": "1.4.4"
+        "build_number": 20231201141418,
+        "version_string": "1.5.0"
       }
     },
     {
@@ -258,15 +258,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "0.2.42"
+        "version_string": "0.2.48"
       }
     },
     {
       "data": {
-        "checksum": "47cc151c673943cbfee58321453f85b32d673b3e453724fff31374a8605992b6",
-        "contents_checksum": "3ff8b9ef0510722872095c6d027b78f45dce430eadf07fc219b7f435c503dcf1",
-        "size": 70015524,
-        "source": "components/google-cloud-sdk-anthoscli-darwin-arm-20231023224440.tar.gz",
+        "checksum": "4072c0c3b3d6f40c5ca5969cf4ce3d530d45cb260b0ccea3d40099504307b7f4",
+        "contents_checksum": "0a6d7ed6b3073e8da7569f723fa6dd1c9907f0d270228dd02d16c9d1900089f7",
+        "size": 70276185,
+        "source": "components/google-cloud-sdk-anthoscli-darwin-arm-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -290,16 +290,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
-        "version_string": "0.2.42"
+        "build_number": 20240209195330,
+        "version_string": "0.2.48"
       }
     },
     {
       "data": {
-        "checksum": "e99a7d19c60cbab6f5ce8578133e1c30c545e89b6f768b457abd2d84722f9c4d",
-        "contents_checksum": "348b94e8d769713049f005663b17056668dc4e3429e682a6956dd7f624fccbbf",
-        "size": 72896092,
-        "source": "components/google-cloud-sdk-anthoscli-darwin-x86-20231023224440.tar.gz",
+        "checksum": "6d8ae30ff42cbd2549a77dd9b4542f1d6bd444adf7a9c1166a8688ca7a2f96da",
+        "contents_checksum": "f6d26cbd246d289b9a5f6df50adc8a7179b98358dee21873f71283384cd260f5",
+        "size": 73173000,
+        "source": "components/google-cloud-sdk-anthoscli-darwin-x86-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -323,16 +323,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
-        "version_string": "0.2.42"
+        "build_number": 20240209195330,
+        "version_string": "0.2.48"
       }
     },
     {
       "data": {
-        "checksum": "f9e5e6e59e910787542ed59cd7a31f27774e7795989457689bb974238ea58312",
-        "contents_checksum": "348b94e8d769713049f005663b17056668dc4e3429e682a6956dd7f624fccbbf",
-        "size": 72896095,
-        "source": "components/google-cloud-sdk-anthoscli-darwin-x86_64-20231023224440.tar.gz",
+        "checksum": "5aa411f1acee57507bd5ed78b9370ddc47b07ed7a97c551677c5847211ca9d12",
+        "contents_checksum": "f6d26cbd246d289b9a5f6df50adc8a7179b98358dee21873f71283384cd260f5",
+        "size": 73173003,
+        "source": "components/google-cloud-sdk-anthoscli-darwin-x86_64-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -356,16 +356,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
-        "version_string": "0.2.42"
+        "build_number": 20240209195330,
+        "version_string": "0.2.48"
       }
     },
     {
       "data": {
-        "checksum": "768b260e7477339405cd191e43b5bcdc96150af0f309b58c24e48827237542be",
-        "contents_checksum": "d3d2363c63df31848603536b8af09769ce6bb8a0fefbeaefd0336b2362d0ef31",
-        "size": 67245549,
-        "source": "components/google-cloud-sdk-anthoscli-linux-arm-20231023224440.tar.gz",
+        "checksum": "132825b8e3d349181132c31f6a9d3789997eaf733e79b49e6207315a00b21592",
+        "contents_checksum": "32d0ae794185fd24adaecc5b1c31715f600afbb70f079546fdaa3c22a0a18823",
+        "size": 67454849,
+        "source": "components/google-cloud-sdk-anthoscli-linux-arm-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -389,16 +389,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
-        "version_string": "0.2.42"
+        "build_number": 20240209195330,
+        "version_string": "0.2.48"
       }
     },
     {
       "data": {
-        "checksum": "390124c5fec46fb6800ca03dd9caf7f75259a6bc28d5841dcc972900cec9a9ba",
-        "contents_checksum": "bf1c54e0b66c498b1d086940dee6ddd11aaa7ed745c65d03cd98f10ef1c49e83",
-        "size": 65298977,
-        "source": "components/google-cloud-sdk-anthoscli-linux-x86-20231023224440.tar.gz",
+        "checksum": "f6451b9ed3b68042a5a58d5fa7d5281ac729291c3380733bb58e7fb4495339c5",
+        "contents_checksum": "1d0815760f9ee60b2837a16837c5550cffe144de6ff6d766521f553584dcccea",
+        "size": 65536636,
+        "source": "components/google-cloud-sdk-anthoscli-linux-x86-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -422,16 +422,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
-        "version_string": "0.2.42"
+        "build_number": 20240209195330,
+        "version_string": "0.2.48"
       }
     },
     {
       "data": {
-        "checksum": "091730628a45921ef9f34db8b9fbc9568007b0a2a771c60ca786fbc45728b884",
-        "contents_checksum": "b30074343ee0a19121bf1163fccf5223b9e6125e744c00eef5c20977bcd3320a",
-        "size": 71982294,
-        "source": "components/google-cloud-sdk-anthoscli-linux-x86_64-20231023224440.tar.gz",
+        "checksum": "353c04a84703c0a507ce095bdd2dae814b464a8d11273b29b517894815232707",
+        "contents_checksum": "5c444bb3875fe95e3b4e961a425c30d0d664c18a8f61eaf82935b041bfc0e637",
+        "size": 72231225,
+        "source": "components/google-cloud-sdk-anthoscli-linux-x86_64-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -455,16 +455,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
-        "version_string": "0.2.42"
+        "build_number": 20240209195330,
+        "version_string": "0.2.48"
       }
     },
     {
       "data": {
-        "checksum": "d6f16a6a028d3247de10be2cd63d523b954c4f76347d6a5c88a301c4cd35ddcb",
-        "contents_checksum": "2ad1786533a5cee19cddf36074f51726748422801d4417cb3793baff40ca9b0d",
-        "size": 67251009,
-        "source": "components/google-cloud-sdk-anthoscli-windows-x86-20231023224440.tar.gz",
+        "checksum": "dddd7a0af6168ce4f23dd26010f15232972c3c7ce134c7677605f81316bd9ef7",
+        "contents_checksum": "2f06c8d0090fdb54381888b0bcd66e8849c5c0e87a303a76bab56ab0a31c8bfd",
+        "size": 67482145,
+        "source": "components/google-cloud-sdk-anthoscli-windows-x86-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -488,16 +488,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
-        "version_string": "0.2.42"
+        "build_number": 20240209195330,
+        "version_string": "0.2.48"
       }
     },
     {
       "data": {
-        "checksum": "de36bc756712c520d88572641ccd4810acb6d9342b055291a517e32eda2d9e25",
-        "contents_checksum": "686ac57e568ce4ae5b4ad352c3cc32643762e48d8c6009dae47eebb0fff7ae0d",
-        "size": 72608049,
-        "source": "components/google-cloud-sdk-anthoscli-windows-x86_64-20231023224440.tar.gz",
+        "checksum": "d4fd88249c1cc7a91a63ea9c1142b14c82d1c9c022d0302f0cd981963601c41d",
+        "contents_checksum": "a69fc1bacbf484cc8034c3eae2cb5479797c9db41461bef73cda18a96e26d672",
+        "size": 72854116,
+        "source": "components/google-cloud-sdk-anthoscli-windows-x86_64-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -521,8 +521,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
-        "version_string": "0.2.42"
+        "build_number": 20240209195330,
+        "version_string": "0.2.48"
       }
     },
     {
@@ -560,15 +560,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.9.75"
+        "version_string": "1.9.76"
       }
     },
     {
       "data": {
-        "checksum": "88f025a6822f74ffa4c34d23b656158f6191891abf9fbe244a4664077a45f57c",
-        "contents_checksum": "7a27fc4862491e5690c8158b915dd6c2c27c4fd1668f273057e059af4977a6e8",
-        "size": 4469651,
-        "source": "components/google-cloud-sdk-app-engine-go-darwin-arm-20230417163046.tar.gz",
+        "checksum": "b1a1821583b0831db76219711dd5c5502a31d5a3a9b2f22c95c36f5457b91b7f",
+        "contents_checksum": "fe65695e8101cb234a298f5129d6f93d3d113440eb42d5dd60690a5b0be941bd",
+        "size": 4673886,
+        "source": "components/google-cloud-sdk-app-engine-go-darwin-arm-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -594,16 +594,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230417163046,
-        "version_string": "1.9.75"
+        "build_number": 20231215195722,
+        "version_string": "1.9.76"
       }
     },
     {
       "data": {
-        "checksum": "4a093245d248d58197ea5ec35a65b4b329fc7aed383df80dd9a9206700ca830e",
-        "contents_checksum": "f17f61e98b4f3221eae38212f727d736326ac5c803526067d2c0da965ade6000",
-        "size": 4658659,
-        "source": "components/google-cloud-sdk-app-engine-go-darwin-x86_64-20230417163046.tar.gz",
+        "checksum": "0e280be54d40ebfb84015f9238e3b58df562cecf9a1ba832ea87288f1d21b63b",
+        "contents_checksum": "b453bcc5bd1c9f4f0443462810dec6a4c31071b0e18c01f57e53cd6083306806",
+        "size": 4927378,
+        "source": "components/google-cloud-sdk-app-engine-go-darwin-x86_64-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -629,16 +629,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230417163046,
-        "version_string": "1.9.75"
+        "build_number": 20231215195722,
+        "version_string": "1.9.76"
       }
     },
     {
       "data": {
-        "checksum": "18e5f83a7ae30202e2794d5a46641319dba24d01ac43d1e427b906109ce9069a",
-        "contents_checksum": "22b5e43c2665f646b3b4c043ea8ce5d657576ba54392ffab81c64776ccb0e10e",
-        "size": 4426107,
-        "source": "components/google-cloud-sdk-app-engine-go-linux-arm-20230417163046.tar.gz",
+        "checksum": "fc68960029cfcb4e66a29e75e45ccf52459b9f25313f7e6a3cea995febf5b0d1",
+        "contents_checksum": "99a95e04cfa19eb3fed767ac461433d52c8cfd61dcc43f9c2a2b5be73c53a725",
+        "size": 4628999,
+        "source": "components/google-cloud-sdk-app-engine-go-linux-arm-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -664,16 +664,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230417163046,
-        "version_string": "1.9.75"
+        "build_number": 20231215195722,
+        "version_string": "1.9.76"
       }
     },
     {
       "data": {
-        "checksum": "e6271bd8ecf5309c573cae3cf2386a51099517dbe8ec3a8563e96586d6b5beb2",
-        "contents_checksum": "dab30a813f4c0da5028b46ca3ca4675b708358cb4d983b1bc52e03d385f49cfb",
-        "size": 4798186,
-        "source": "components/google-cloud-sdk-app-engine-go-linux-x86-20230417163046.tar.gz",
+        "checksum": "492f92731d80bea2b5ef828276bf1fc54b7f32dbd52517f64fa6b211ca4684d8",
+        "contents_checksum": "6ea55d86c3fa493cb0cfc0c1edeb625493976944f92765ffcfcb72fdef46ee9c",
+        "size": 4811027,
+        "source": "components/google-cloud-sdk-app-engine-go-linux-x86-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -699,16 +699,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230417163046,
-        "version_string": "1.9.75"
+        "build_number": 20231215195722,
+        "version_string": "1.9.76"
       }
     },
     {
       "data": {
-        "checksum": "1d5396984ff515be84c3bb526a802cfa9da49e677b46a23d192e09b063cad7d9",
-        "contents_checksum": "d4dce85cce2a173cdfac1e039f409c364b3db99624010cc0c38bcfbc96996cc3",
-        "size": 4731246,
-        "source": "components/google-cloud-sdk-app-engine-go-linux-x86_64-20230417163046.tar.gz",
+        "checksum": "aaf0cc3cb9782a103c36985f5dbcdde3fbfe50b3d18df580d298f9fd5fca3cc9",
+        "contents_checksum": "e5044222f13b99b75a7559425e2c397be40229803ba1e5480e63a7a66a68a6c8",
+        "size": 4957977,
+        "source": "components/google-cloud-sdk-app-engine-go-linux-x86_64-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -734,16 +734,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230417163046,
-        "version_string": "1.9.75"
+        "build_number": 20231215195722,
+        "version_string": "1.9.76"
       }
     },
     {
       "data": {
-        "checksum": "d1bbf796ff06580baeccc60c792c348cb1e466a3e6cc587ef6972ad0f67cd522",
-        "contents_checksum": "847ee7c88906720d640fbdb926b61105fd95e93d816fa5d1a83f1acf04ef8d74",
-        "size": 4900275,
-        "source": "components/google-cloud-sdk-app-engine-go-windows-x86-20230417163046.tar.gz",
+        "checksum": "190a523aa852a05e1d286936da6ee7e50f9f8e9f430813d08de42bc4b2266c57",
+        "contents_checksum": "c67be57a817917cb43238a4ebc5fe6f59cb80c8cad3debd4bca18d019d75ead8",
+        "size": 4901455,
+        "source": "components/google-cloud-sdk-app-engine-go-windows-x86-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -769,16 +769,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230417163046,
-        "version_string": "1.9.75"
+        "build_number": 20231215195722,
+        "version_string": "1.9.76"
       }
     },
     {
       "data": {
-        "checksum": "4f2b7379f39b50a092cf158174b5966f9e14f7cd3ca1ac5732f1164ae60ba94e",
-        "contents_checksum": "9bd2d84c68d600bb3da84855996341596df3b8716d732fc9b7502db972dc5da3",
-        "size": 4784860,
-        "source": "components/google-cloud-sdk-app-engine-go-windows-x86_64-20230417163046.tar.gz",
+        "checksum": "1d3808bff8faf031d4f3dc0352cf5832a8fab0ff6fda44add456f3351604316d",
+        "contents_checksum": "2c2bb14f552ba67a01ee7344075cee7a253d839668bdbbb5928b19ef4257c758",
+        "size": 5030525,
+        "source": "components/google-cloud-sdk-app-engine-go-windows-x86_64-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -804,8 +804,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230417163046,
-        "version_string": "1.9.75"
+        "build_number": 20231215195722,
+        "version_string": "1.9.76"
       }
     },
     {
@@ -1020,10 +1020,10 @@
     },
     {
       "data": {
-        "checksum": "38175db1182e07654ddef6ff8794d3ddf0d830c180920392342ea4ceff027a58",
-        "contents_checksum": "2fb9f245011b3b51c4173522e015f899dd2d6a4bc54ea12bff941c9265aba2e5",
-        "size": 129915384,
-        "source": "components/google-cloud-sdk-app-engine-java-20231023224440.tar.gz",
+        "checksum": "ae39996160cebbed748ed12a6ef89ff73e93848b4b1a22f153c371c8ec2153ad",
+        "contents_checksum": "66509cd7d0ee0046439e2bc0e70eed9afecb637d578e518d6771925267693055",
+        "size": 132057381,
+        "source": "components/google-cloud-sdk-app-engine-java-20240106004423.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1041,8 +1041,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
-        "version_string": "2.0.21"
+        "build_number": 20240106004423,
+        "version_string": "2.0.24"
       }
     },
     {
@@ -1142,10 +1142,10 @@
     },
     {
       "data": {
-        "checksum": "07c19454806ac60603f18bc9e7eeb56ae6eba1477e25a91fd95682c4011c6207",
-        "contents_checksum": "71ff9043af9fa982b8dbbc1f8f122d9f981cb5fe168356f4a7f13bf58ae23e25",
-        "size": 8748068,
-        "source": "components/google-cloud-sdk-app-engine-python-20231016163610.tar.gz",
+        "checksum": "893d741c65d65cfc20f3820fdf62cb71f111e814083c942fee4ced13b10944a2",
+        "contents_checksum": "a97004f0aedeff49894c2cce7b5f634762900f64f38f65c1676e7897f3fb2c53",
+        "size": 8780608,
+        "source": "components/google-cloud-sdk-app-engine-python-20240216153112.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1164,8 +1164,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20231016163610,
-        "version_string": "1.9.107"
+        "build_number": 20240216153112,
+        "version_string": "1.9.109"
       }
     },
     {
@@ -1432,7 +1432,7 @@
         "checksum": "707d412854a14450b4fddee199d258e75946fe51b44eb2980c8cd7e274c15760",
         "contents_checksum": "0b4e9d8e6394dc841aece07ca4da91920a460cbd7ec22495be4a2b4f46635b4d",
         "size": 797,
-        "source": "components/google-cloud-sdk-beta-20231025210228.tar.gz",
+        "source": "components/google-cloud-sdk-beta-20240229170130.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1449,8 +1449,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20231025210228,
-        "version_string": "2023.10.25"
+        "build_number": 20240229170130,
+        "version_string": "2024.02.29"
       }
     },
     {
@@ -1493,10 +1493,10 @@
     },
     {
       "data": {
-        "checksum": "5af8d24eb8da1c8229c414e9950bcdc453a9e316742541eefe830afaca8a158e",
-        "contents_checksum": "e08ae70a70d4da56bae3d13b09b898b865557461f01e7690fd25f82b91890910",
-        "size": 7097728,
-        "source": "components/google-cloud-sdk-bigtable-darwin-arm-20231006153333.tar.gz",
+        "checksum": "663eb2bb5e083b366f739b81bc95ce7853187a823890c34e07a8bacdfce35244",
+        "contents_checksum": "20101432339e657f9f272c5898dbdffd89dad2e08dcfccfa26c6609343f39f4c",
+        "size": 7149239,
+        "source": "components/google-cloud-sdk-bigtable-darwin-arm-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1521,7 +1521,7 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
+        "build_number": 20240112150613,
         "version_string": ""
       }
     },
@@ -1561,10 +1561,10 @@
     },
     {
       "data": {
-        "checksum": "aa2d0f3e322a7912fac2b012fc1c368eaa129905372b82560488ec9b803494d5",
-        "contents_checksum": "7c84152ea5f2da5f06f9b55b035534d9bd2270c9959ae162c3cb5f8d392d6801",
-        "size": 7333846,
-        "source": "components/google-cloud-sdk-bigtable-darwin-x86_64-20231006153333.tar.gz",
+        "checksum": "c00519ab786c673527f79f72770d1f4b5bf599c16f9c5d4b42a3f6658414ac22",
+        "contents_checksum": "55675241aba0458e9e7e272511ed469bc30949464d23cf672b2e8549e16559a5",
+        "size": 7384031,
+        "source": "components/google-cloud-sdk-bigtable-darwin-x86_64-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1589,16 +1589,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
+        "build_number": 20240112150613,
         "version_string": ""
       }
     },
     {
       "data": {
-        "checksum": "52ea181edb2b8b69fa3ebea25467238facc828dc79d1b22c2aafb79385e0f4e6",
-        "contents_checksum": "0dc475dc09c285508b6ba21ab40ebabf9151a9e5ecaf05a3754b3283a00df42a",
-        "size": 7011804,
-        "source": "components/google-cloud-sdk-bigtable-linux-arm-20231006153333.tar.gz",
+        "checksum": "bb6a7e3068ba643e11505e2cbf2fb7418662045566105c711ccda37bbce2f235",
+        "contents_checksum": "a2613adc36a34833bf1e11c7f725688389a330d89e3719e5f4e00387dfa20fb8",
+        "size": 7032893,
+        "source": "components/google-cloud-sdk-bigtable-linux-arm-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1623,16 +1623,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
+        "build_number": 20240112150613,
         "version_string": ""
       }
     },
     {
       "data": {
-        "checksum": "972efb72c12e9fb15777d2f0b0ee49d34793bd088147eda1599826b261c54f8d",
-        "contents_checksum": "ea6f11df05804197e9a0f3ad1d52db162b23769aab97b2913248dc42044e2803",
-        "size": 7255397,
-        "source": "components/google-cloud-sdk-bigtable-linux-x86-20231006153333.tar.gz",
+        "checksum": "5e762be2009986b3a9594cefc861d186eb3130c0f1b0dbf08bef6534ce868761",
+        "contents_checksum": "2adb488dd36830e794eb141ec5243b0bc5f24206a6bd0ae5a731a31346f08078",
+        "size": 7287874,
+        "source": "components/google-cloud-sdk-bigtable-linux-x86-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1657,16 +1657,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
+        "build_number": 20240112150613,
         "version_string": ""
       }
     },
     {
       "data": {
-        "checksum": "e62748c75c268a9648b26920838b281e50511b7f430dff0eca124f3f5763699e",
-        "contents_checksum": "19b5048d20242fc730b4544fe0b5ac800c30b02059efb4b26588eb31d1fc482a",
-        "size": 7454541,
-        "source": "components/google-cloud-sdk-bigtable-linux-x86_64-20231006153333.tar.gz",
+        "checksum": "b3c54cb77875fddf48a0ff41a8870cb55891bf49ae81e23adeb72c1280fc1fd0",
+        "contents_checksum": "711fd9de39fbf4583dbb22c52e7b3fa801ad81dee1e2a4d65d98992738f2aa34",
+        "size": 7488736,
+        "source": "components/google-cloud-sdk-bigtable-linux-x86_64-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1691,16 +1691,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
+        "build_number": 20240112150613,
         "version_string": ""
       }
     },
     {
       "data": {
-        "checksum": "e031eb7a2735c0bd2db4d82d8da081a264cbaddc58ed9b84e2b1564994e54643",
-        "contents_checksum": "7751a9071bb5830f7f3f9dc9a229a268405a1ba76d5bdd19483a8c66089c72eb",
-        "size": 7288454,
-        "source": "components/google-cloud-sdk-bigtable-windows-x86-20231006153333.tar.gz",
+        "checksum": "7ae926f8aad9bb48247a2468da737b1cd239764aca4ef31b02aebe14437bc5f9",
+        "contents_checksum": "a4409d3c0f7bce7ab0aeaf66adb80ea96a2f8c3854aa0570f3badf21b8b7d430",
+        "size": 7317721,
+        "source": "components/google-cloud-sdk-bigtable-windows-x86-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1725,16 +1725,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
+        "build_number": 20240112150613,
         "version_string": ""
       }
     },
     {
       "data": {
-        "checksum": "1f24acd6a6c63ed1c283e7b7bfbda31bc08a86b1241e5ad4f08858df7678d669",
-        "contents_checksum": "f640127893c4339c4f04791834143af3fe3931ac91877dd73dcb4ee3cecf6d01",
-        "size": 7451653,
-        "source": "components/google-cloud-sdk-bigtable-windows-x86_64-20231006153333.tar.gz",
+        "checksum": "96eac561a6b2efe89e840ff2c6fa22e50f368a536a5db6c168ce9072f6142271",
+        "contents_checksum": "7d9e07ff31df84f57a66a4f9b0d3d0d666c70c7a17174cb2c69feea2db8a194e",
+        "size": 7479168,
+        "source": "components/google-cloud-sdk-bigtable-windows-x86_64-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1759,16 +1759,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
+        "build_number": 20240112150613,
         "version_string": ""
       }
     },
     {
       "data": {
-        "checksum": "5044841dc30f739de0c5f1a846580baf714a36b09070c00574360e906789d373",
-        "contents_checksum": "b1570cc1a0eb04a5856453cb234021a676ff276c0f779a248ddf589f5ed5724d",
-        "size": 1659622,
-        "source": "components/google-cloud-sdk-bq-20230913232318.tar.gz",
+        "checksum": "8918c7fd033de8f13f331152e59dc16a33f0f7007a6be615b7b53337197be33f",
+        "contents_checksum": "f516a7a4d24280d59d67bf908d80d0a560b8d680e8c2699efc1071b1c0039c1f",
+        "size": 1679148,
+        "source": "components/google-cloud-sdk-bq-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1787,16 +1787,16 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20230913232318,
-        "version_string": "2.0.98"
+        "build_number": 20240112150613,
+        "version_string": "2.0.101"
       }
     },
     {
       "data": {
-        "checksum": "b6a10d752554fb9cf518d697999f49806d1009455c78cc3c6fc67f6d97edf1b9",
-        "contents_checksum": "da65662d83df53b15ff35bdedace8671669280b875620876181ac0e9665cbc04",
-        "size": 2019,
-        "source": "components/google-cloud-sdk-bq-nix-20231025210228.tar.gz",
+        "checksum": "81d6fafb672c791a58b6d2cecbcb8a78ca1a1c7e885d359bcf3ec11ebf138ea0",
+        "contents_checksum": "fcd529ea7485a8621ac5d217ac7e7793cc8acabe5ba4c2c6f222b402580e5578",
+        "size": 2026,
+        "source": "components/google-cloud-sdk-bq-nix-20240106004423.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1821,16 +1821,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231025210228,
-        "version_string": "2.0.98"
+        "build_number": 20240106004423,
+        "version_string": "2.0.101"
       }
     },
     {
       "data": {
-        "checksum": "d4d4e87deaf12a2c8eefe6ae5d75d9fe160149488077579dc41d6010988ad432",
-        "contents_checksum": "515edb1628a75d42d3b465d7e8c8ad5d298538e75f78d00a0cda738ac9fcce5e",
-        "size": 2660,
-        "source": "components/google-cloud-sdk-bq-win-20230106151201.tar.gz",
+        "checksum": "5d3fdd2bd23beba4e15e60d8e2befdb3d68ae9faed8a19b14526ffacb247546e",
+        "contents_checksum": "aa61d0c34c3b3d6509e7a529b28446faaa645f15abb56a27be3b425ed6404fac",
+        "size": 2683,
+        "source": "components/google-cloud-sdk-bq-win-20240226203415.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -1852,8 +1852,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230106151201,
-        "version_string": "2.0.84"
+        "build_number": 20240226203415,
+        "version_string": "2.0.101"
       }
     },
     {
@@ -1963,8 +1963,8 @@
         "core"
       ],
       "details": {
-        "description": "Provides stand-alone Python 3.9.12 install.",
-        "display_name": "Bundled Python 3.9"
+        "description": "Provides stand-alone Python 3.11 install.",
+        "display_name": "Bundled Python 3.11"
       },
       "id": "bundled-python3",
       "is_configuration": false,
@@ -1982,7 +1982,7 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "3.9.12"
+        "version_string": "3.11.6"
       }
     },
     {
@@ -1991,8 +1991,8 @@
         "core"
       ],
       "details": {
-        "description": "Provides stand-alone Python 3.9.17 installation for UNIX.",
-        "display_name": "Bundled Python 3.9"
+        "description": "Provides stand-alone Python 3.11.8 installation for UNIX.",
+        "display_name": "Bundled Python 3.11"
       },
       "id": "bundled-python3-unix",
       "is_configuration": false,
@@ -2009,15 +2009,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "3.9.17"
+        "version_string": "3.11.8"
       }
     },
     {
       "data": {
-        "checksum": "ad591cffcb3cb00ea73e1e8fa13d76d4ebeded14bb7d4d54f4dbd90cff79911c",
-        "contents_checksum": "d2c4025b7acd5008a935cbd1a71c399d28cb5723065576b1b31f917f10bb0479",
-        "size": 65481810,
-        "source": "components/google-cloud-sdk-bundled-python3-unix-linux-x86_64-20231023224440.tar.gz",
+        "checksum": "e0819134f743b2524add92d5ed3bfff5e4098dfd5d77944ef1a8f95a14fe02ee",
+        "contents_checksum": "3969f4cfb146659adf2d3b34dfe6e0a3b471317db2512ff3c1523b809b5ad765",
+        "size": 78486918,
+        "source": "components/google-cloud-sdk-bundled-python3-unix-linux-x86_64-20240229170130.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2025,8 +2025,8 @@
         "core"
       ],
       "details": {
-        "description": "Provides stand-alone Python 3.9.17 installation for UNIX.",
-        "display_name": "Bundled Python 3.9"
+        "description": "Provides stand-alone Python 3.11.8 installation for UNIX.",
+        "display_name": "Bundled Python 3.11"
       },
       "id": "bundled-python3-unix-linux-x86_64",
       "is_configuration": false,
@@ -2042,16 +2042,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
-        "version_string": "3.9.17"
+        "build_number": 20240229170130,
+        "version_string": "3.11.8"
       }
     },
     {
       "data": {
-        "checksum": "f893470fa6f4cabc0bbbd73275b563b9c97682fd199514440c9027b6c5b94b54",
-        "contents_checksum": "c486cae0284bb1138814cf54bb930441fd39d9ff791366a564d27d6bfac7a789",
-        "size": 20778243,
-        "source": "components/google-cloud-sdk-bundled-python3-windows-x86-20231016163610.tar.gz",
+        "checksum": "78b090d3d133b622c8fa591e55d97dec41ebeceda117f1fc4c87a3a3053710fc",
+        "contents_checksum": "b18344f58a872b7fd500946a8ca7c7929608a4bf5257570e7c60c2f5b9208ad4",
+        "size": 20426074,
+        "source": "components/google-cloud-sdk-bundled-python3-windows-x86-20231110155547.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2059,8 +2059,8 @@
         "core"
       ],
       "details": {
-        "description": "Provides stand-alone Python 3.9.12 install.",
-        "display_name": "Bundled Python 3.9"
+        "description": "Provides stand-alone Python 3.11 install.",
+        "display_name": "Bundled Python 3.11"
       },
       "id": "bundled-python3-windows-x86",
       "is_configuration": false,
@@ -2076,16 +2076,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231016163610,
-        "version_string": "3.9.12"
+        "build_number": 20231110155547,
+        "version_string": "3.11.6"
       }
     },
     {
       "data": {
-        "checksum": "cabdb1da4996629632a90399276a75058e46be4a6b92019960c4bdb62efcc4ea",
-        "contents_checksum": "3bb2ec678153e5bd214be0439970173d86729baaa33f06176bd2ec8435d4304d",
-        "size": 22193214,
-        "source": "components/google-cloud-sdk-bundled-python3-windows-x86_64-20231016163610.tar.gz",
+        "checksum": "f80970b12053a77afb5888982362396c379392462806837c47c4ed3271c19aaf",
+        "contents_checksum": "3207aea9e98dcf0cf0ee6ad339235fda213dbf8ac997bfa823698c52d68b7f65",
+        "size": 22512051,
+        "source": "components/google-cloud-sdk-bundled-python3-windows-x86_64-20231110155547.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2093,8 +2093,8 @@
         "core"
       ],
       "details": {
-        "description": "Provides stand-alone Python 3.9.12 install.",
-        "display_name": "Bundled Python 3.9"
+        "description": "Provides stand-alone Python 3.11 install.",
+        "display_name": "Bundled Python 3.11"
       },
       "id": "bundled-python3-windows-x86_64",
       "is_configuration": false,
@@ -2110,8 +2110,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231016163610,
-        "version_string": "3.9.12"
+        "build_number": 20231110155547,
+        "version_string": "3.11.6"
       }
     },
     {
@@ -2148,15 +2148,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "0.16.2"
+        "version_string": "1.17.2"
       }
     },
     {
       "data": {
-        "checksum": "4cec674242be0d7a3de6d830325ef93d0b554eeab10431eaf0706199434d937c",
-        "contents_checksum": "c08a0d1bafbfc51f2aac4555268f1e1dba13f8222454ee8315a7855a114c7216",
-        "size": 16254518,
-        "source": "components/google-cloud-sdk-cbt-darwin-arm-20231006153333.tar.gz",
+        "checksum": "538df81550df3242dd9047437ceea867abb38125df24154ffafb5298dee1a2b8",
+        "contents_checksum": "02563cdae195531dc844381cd1cfed92ec8217adc475b9dac73898f1a25c0a45",
+        "size": 16720666,
+        "source": "components/google-cloud-sdk-cbt-darwin-arm-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2180,8 +2180,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
-        "version_string": "0.16.2"
+        "build_number": 20240112150613,
+        "version_string": "1.17.2"
       }
     },
     {
@@ -2219,10 +2219,10 @@
     },
     {
       "data": {
-        "checksum": "cab9647842e2c6702f739bcf7f4a390098a245f58798035914d47b2e023f5003",
-        "contents_checksum": "5437ed3b7499b97a8dc71d81f1446b429ca635676fdaada94e5089d181f851f1",
-        "size": 16717237,
-        "source": "components/google-cloud-sdk-cbt-darwin-x86_64-20231006153333.tar.gz",
+        "checksum": "b9194d1a8371dea7c63147767a6f9e3f8c6f4b03fa30ca3bc5ea901d97acd011",
+        "contents_checksum": "c359de592aa1b957326c205b8723a59520cac0f142bf278b84eed03399b56b59",
+        "size": 17196541,
+        "source": "components/google-cloud-sdk-cbt-darwin-x86_64-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2246,16 +2246,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
-        "version_string": "0.16.2"
+        "build_number": 20240112150613,
+        "version_string": "1.17.2"
       }
     },
     {
       "data": {
-        "checksum": "50481ebc4a0a82e068b9d11e8af938c81dceae23f39a5d7eff888c5d9d29d379",
-        "contents_checksum": "f1a58b3ed33e5728def81f61e7e28b46239f0a2a0201fc9685d808d11df38f3b",
-        "size": 15863768,
-        "source": "components/google-cloud-sdk-cbt-linux-arm-20231006153333.tar.gz",
+        "checksum": "eb0c6f7e7f9c3bfecbfd733ea018c09fb8ba61b78b1cf8c1c9263c7109ad8671",
+        "contents_checksum": "5c1a36f98fd4654ee47fccea2a9a50ce8b22cd70e013b83bb051fe357122638d",
+        "size": 16297518,
+        "source": "components/google-cloud-sdk-cbt-linux-arm-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2279,16 +2279,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
-        "version_string": "0.16.2"
+        "build_number": 20240112150613,
+        "version_string": "1.17.2"
       }
     },
     {
       "data": {
-        "checksum": "5a5539eab4133fade3206d5f7b546e8d51a5af18c0ac3f0b6ada98249847fa1e",
-        "contents_checksum": "961c6d25d74bae5b5c00b4e0d48393702c529ac0b1de2b85056f07d63933eb8d",
-        "size": 16051931,
-        "source": "components/google-cloud-sdk-cbt-linux-x86-20231006153333.tar.gz",
+        "checksum": "39ca479add8bc11ad11a3b2965e562e62858901c96d79aa1aa2c938a7f40993c",
+        "contents_checksum": "fc6133d7e68b1ad303d87cb9e712bc94fd40511f3818979b4e20d7f5f2074df7",
+        "size": 16492482,
+        "source": "components/google-cloud-sdk-cbt-linux-x86-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2312,16 +2312,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
-        "version_string": "0.16.2"
+        "build_number": 20240112150613,
+        "version_string": "1.17.2"
       }
     },
     {
       "data": {
-        "checksum": "74d5a97a01d246acda0897004a5ece95f9c9ced8aa3c89f0e8cf742edd4284b3",
-        "contents_checksum": "5fdf279f55e77702b62280f58d19f5eb0adcd5d81e20f76cc7759de07a224ca3",
-        "size": 16868331,
-        "source": "components/google-cloud-sdk-cbt-linux-x86_64-20231006153333.tar.gz",
+        "checksum": "23df574487ba9ddb32ffc8c387a0d428ef27be297d5769800710974266d4932c",
+        "contents_checksum": "8134edf246fa051787bf993034e8f1800bb1f04620bbd13cc1f40e965bf32599",
+        "size": 17340658,
+        "source": "components/google-cloud-sdk-cbt-linux-x86_64-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2345,16 +2345,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
-        "version_string": "0.16.2"
+        "build_number": 20240112150613,
+        "version_string": "1.17.2"
       }
     },
     {
       "data": {
-        "checksum": "97b355f30dd40324f7724eb8a1e269d857316796a6d42fdcf3805fce9cefa402",
-        "contents_checksum": "e824180249e02e5d9c8805faa2cbbc1a237bac7fe53925d6290943234e42cf8c",
-        "size": 16305542,
-        "source": "components/google-cloud-sdk-cbt-windows-x86-20231006153333.tar.gz",
+        "checksum": "ae60d8116338562cc98ba1ad852842760d2ab78016377ec827701c80dc7b7b41",
+        "contents_checksum": "61f3390cc8c868a77e378f9d4aa37502d4e04357d8ab33735f1e5418a3a225e7",
+        "size": 16750394,
+        "source": "components/google-cloud-sdk-cbt-windows-x86-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2378,16 +2378,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
-        "version_string": "0.16.2"
+        "build_number": 20240112150613,
+        "version_string": "1.17.2"
       }
     },
     {
       "data": {
-        "checksum": "fc7d710003577bf740e4d8dd5f6ad3929620a7f088c1de321a41ff229acb6084",
-        "contents_checksum": "038673c9ff153e08f9e4cb6af1c7963483796d3f6654e746cb5bf414ff4a63ee",
-        "size": 16944208,
-        "source": "components/google-cloud-sdk-cbt-windows-x86_64-20231006153333.tar.gz",
+        "checksum": "ce201b8cb3e4e10d4ae1cbec9ff253474dff5931eaff9c1d260b117ac03781e3",
+        "contents_checksum": "d28a7a0d5156bff526e51932172d63a6bc8fc6258138551e81ffc241e20faeb3",
+        "size": 17415844,
+        "source": "components/google-cloud-sdk-cbt-windows-x86_64-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2411,8 +2411,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
-        "version_string": "0.16.2"
+        "build_number": 20240112150613,
+        "version_string": "1.17.2"
       }
     },
     {
@@ -2572,10 +2572,10 @@
     },
     {
       "data": {
-        "checksum": "1822e13b021d42edf1ee3d648b00be30960a57d3c74de708a14dd9758bb8f466",
-        "contents_checksum": "16cc1f413795a2197704184256179a5c65eb11b66d8af59f209bfbda798df11b",
-        "size": 44883913,
-        "source": "components/google-cloud-sdk-cloud-firestore-emulator-20230915145114.tar.gz",
+        "checksum": "412203bd80a2ce63b6893f2fc7af0c9c86a4725bd9cf4aeca6a6905269f267b8",
+        "contents_checksum": "f43be764e885bb2206a1b7fdacabd0fca828cd76d95e5006c9509645dfd27b0e",
+        "size": 46597550,
+        "source": "components/google-cloud-sdk-cloud-firestore-emulator-20240229170130.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2592,8 +2592,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20230915145114,
-        "version_string": "1.18.2"
+        "build_number": 20240229170130,
+        "version_string": "1.19.2"
       }
     },
     {
@@ -2818,15 +2818,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.5.10"
+        "version_string": "1.5.13"
       }
     },
     {
       "data": {
-        "checksum": "7460e9a21137063a8f9f8143f6da86d39d3fde425a956240b695924d45bf3e2f",
-        "contents_checksum": "3617a6b7497fc5cc13cb5764e374816940474072d2db432342c1bf0f6844f1c5",
-        "size": 36939704,
-        "source": "components/google-cloud-sdk-cloud-spanner-emulator-linux-x86_64-20230922151743.tar.gz",
+        "checksum": "7c8f4db773fae956a385c746203ef7d2784d992fd674cdbacf59720c4d3e0ca6",
+        "contents_checksum": "d3df9908458ec5b1115dd1c439b256fcc7ba00533f0c7363ac09685f5bc95790",
+        "size": 37731211,
+        "source": "components/google-cloud-sdk-cloud-spanner-emulator-linux-x86_64-20240106004423.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -2851,8 +2851,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230922151743,
-        "version_string": "1.5.10"
+        "build_number": 20240106004423,
+        "version_string": "1.5.13"
       }
     },
     {
@@ -3322,10 +3322,10 @@
     },
     {
       "data": {
-        "checksum": "8197db59e523d340b2da73594807ac5a2c0a09d2899fa5adb71cc6dbdb64c63e",
-        "contents_checksum": "a788f4961a718e4bc4717a5149874353b83ba4ad01f6587725d48bc2e689a07d",
-        "size": 23032301,
-        "source": "components/google-cloud-sdk-core-20231025210228.tar.gz",
+        "checksum": "394b9a3441b3a88962ee3fe01e2b816671466ca55c244826adc1093395a08117",
+        "contents_checksum": "b22a86659b93e65751c75128448d23b9d935b9a85c46301498bc4054256aff86",
+        "size": 23893614,
+        "source": "components/google-cloud-sdk-core-20240229170130.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3346,16 +3346,16 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20231025210228,
-        "version_string": "2023.10.25"
+        "build_number": 20240229170130,
+        "version_string": "2024.02.29"
       }
     },
     {
       "data": {
-        "checksum": "0d68f826ada61d2ab98721bbab6c94132a1c210080fdd85c750073e009ae6d39",
-        "contents_checksum": "3e23fcf9fd07d22bf46bca03f951e715a328cb8420e09f34ce2e7f5ef401b982",
-        "size": 2402,
-        "source": "components/google-cloud-sdk-core-nix-20231025210228.tar.gz",
+        "checksum": "b7f76cd9c7f391d8504d31fba7c180b7c3028646c0efda8fafdb1abd13056917",
+        "contents_checksum": "35b7e083b5dc365a7f2ff9fac444ad23ddfae564c22296c502183ee4eb9fab00",
+        "size": 2410,
+        "source": "components/google-cloud-sdk-core-nix-20240106004423.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3382,16 +3382,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231025210228,
-        "version_string": "2023.10.25"
+        "build_number": 20240106004423,
+        "version_string": "2024.01.06"
       }
     },
     {
       "data": {
-        "checksum": "0af3f8e9ba07b24f3821758107b18d273edf7fa7703ff4d659b9732e84a73a37",
-        "contents_checksum": "2ac264344fcf75702a4770bfcba3e6f47573351303cbba558bcde7f8c32cc731",
-        "size": 3200,
-        "source": "components/google-cloud-sdk-core-win-20230915145114.tar.gz",
+        "checksum": "75e34fa5b9f7524861796258e8140d9e9bab9921ace5e9bcd6f0bdd03c718ceb",
+        "contents_checksum": "5770aeb4c914a1193d8f6311d16eab708f76a1c78eb143d0215a8999a82630ca",
+        "size": 3549,
+        "source": "components/google-cloud-sdk-core-win-20240226203415.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3415,8 +3415,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230915145114,
-        "version_string": "2023.09.15"
+        "build_number": 20240226203415,
+        "version_string": "2024.02.26"
       }
     },
     {
@@ -3715,15 +3715,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "0.2.1"
+        "version_string": "0.3.2"
       }
     },
     {
       "data": {
-        "checksum": "01c037710f20fe53e05715439a5de469469f10ee3953076c61387de8afc38d1d",
-        "contents_checksum": "367a10efe8b2bb1ca828cc4e91472f81dcbe3e51d98b16843ebe29e250201fab",
-        "size": 6390940,
-        "source": "components/google-cloud-sdk-enterprise-certificate-proxy-darwin-arm-20230224152814.tar.gz",
+        "checksum": "a3e8f5c45ac19bd3430201339c07f2f6dc21296702375c2381ecf5c8d3e88279",
+        "contents_checksum": "22e8de82f1f0cb7a6db65e095c15017866869cac0f1d5556c146c92b1c49acb9",
+        "size": 8680702,
+        "source": "components/google-cloud-sdk-enterprise-certificate-proxy-darwin-arm-20231208151900.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3747,16 +3747,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230224152814,
-        "version_string": "0.2.1"
+        "build_number": 20231208151900,
+        "version_string": "0.3.2"
       }
     },
     {
       "data": {
-        "checksum": "d0c4da5a4668b94ad0609f414beb05fad1e6ca153b28baa846155b9d6e353a64",
-        "contents_checksum": "9f784ec794093b9aa6867dd9895ca93f7b01eef4bc5a1893303e39e2d2141a31",
-        "size": 7001595,
-        "source": "components/google-cloud-sdk-enterprise-certificate-proxy-darwin-x86_64-20230224152814.tar.gz",
+        "checksum": "301757a2839dce01a6435ed4b0dfd05616f9a3c8aeba4624362b48f115e5b97a",
+        "contents_checksum": "6d407b55892613efd363344f855292ddda8fdbe81f549f318264480dc167b25a",
+        "size": 9536921,
+        "source": "components/google-cloud-sdk-enterprise-certificate-proxy-darwin-x86_64-20231208151900.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3780,16 +3780,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230224152814,
-        "version_string": "0.2.1"
+        "build_number": 20231208151900,
+        "version_string": "0.3.2"
       }
     },
     {
       "data": {
-        "checksum": "01ac1d6276ab45779d87f28970906b050aa1d91d113a76ba1c62a40895519e8a",
-        "contents_checksum": "5dd83c5800e0c515bfc776f8e92e2c8e5c70d84089ccdba9eeb81cc3cd579adb",
-        "size": 8611365,
-        "source": "components/google-cloud-sdk-enterprise-certificate-proxy-linux-x86_64-20230714124024.tar.gz",
+        "checksum": "620e7f1598535dba84e52085cf12275e6e2264b281d7d43d71d4079ad0daab7e",
+        "contents_checksum": "1ccff0b7259285d34269926c6038535561cc6d24c0a5c40e3f1b49c7748c9808",
+        "size": 9012612,
+        "source": "components/google-cloud-sdk-enterprise-certificate-proxy-linux-x86_64-20231208151900.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3813,16 +3813,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230714124024,
-        "version_string": "0.2.1"
+        "build_number": 20231208151900,
+        "version_string": "0.3.2"
       }
     },
     {
       "data": {
-        "checksum": "211f5ac63a9397b6f7ac95d22fd34e18c98b348acfdb2cbf3bcd1384ee1deeb0",
-        "contents_checksum": "16743f19efef5cd51b3f1038e27a60ef68f626317a700acd6a25e2f72e381992",
-        "size": 6778179,
-        "source": "components/google-cloud-sdk-enterprise-certificate-proxy-windows-x86_64-20230519173220.tar.gz",
+        "checksum": "d49562e0fac17a4ac3c4e30d7c7056320a69ebc157a6c3f3e744f5731bb16f92",
+        "contents_checksum": "bfa2c0f4ea80fb6e3299b6fb7554565213c39ed7b01140020f8ae00c260d09e1",
+        "size": 6801316,
+        "source": "components/google-cloud-sdk-enterprise-certificate-proxy-windows-x86_64-20231208151900.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3846,8 +3846,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230519173220,
-        "version_string": "0.2.1"
+        "build_number": 20231208151900,
+        "version_string": "0.3.2"
       }
     },
     {
@@ -3907,10 +3907,10 @@
     },
     {
       "data": {
-        "checksum": "535ce4686c07b3bac76f7b107828d4059bf598c92aefac1ebb55d911d90cbc4c",
-        "contents_checksum": "e3b7aacbdc4d8a5adbf88bee4ac738d9e51755b994a700135dbfd8a758a054c2",
-        "size": 1243996,
-        "source": "components/google-cloud-sdk-gcloud-crc32c-darwin-arm-20231023224440.tar.gz",
+        "checksum": "77cacb09f213e98cd3461796567bb583dc05e7f2fe70c47da65e948daf2dfff7",
+        "contents_checksum": "d651a36a3f0e41f7cc7312d09bc3c089a55a583cdaaaa922b0d385e57dece361",
+        "size": 1242963,
+        "source": "components/google-cloud-sdk-gcloud-crc32c-darwin-arm-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3934,16 +3934,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
+        "build_number": 20231215195722,
         "version_string": "1.0.0"
       }
     },
     {
       "data": {
-        "checksum": "00972aba9c56aa0bc4916798ab672cc1e6806e76b00783e15b5c5bbc4e804900",
-        "contents_checksum": "2db99100afdae388afbf96ba0440977d1ab0e9b1fdaa997fac07c5d2c9d6040e",
-        "size": 1284906,
-        "source": "components/google-cloud-sdk-gcloud-crc32c-darwin-x86_64-20231023224440.tar.gz",
+        "checksum": "ef420a608c6446543cf660c7d168f6af297aebb760d163e11c3af278e34eb731",
+        "contents_checksum": "48cfe6b4f0f12b23a1271ef686966959314ba9d3ac21de9082009cbb5e9ab1d8",
+        "size": 1283814,
+        "source": "components/google-cloud-sdk-gcloud-crc32c-darwin-x86_64-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -3967,16 +3967,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
+        "build_number": 20231215195722,
         "version_string": "1.0.0"
       }
     },
     {
       "data": {
-        "checksum": "d978d88831992d75a8d1c506c661e3caa702b65acb13bb881f7d2847360836ab",
-        "contents_checksum": "bc5cd52ce1950d6ac8b24d8f8a00c4bbf7f6af82a908fbe2be630b75ecfc35da",
-        "size": 1217581,
-        "source": "components/google-cloud-sdk-gcloud-crc32c-linux-arm-20231023224440.tar.gz",
+        "checksum": "c42492e21729fd33b413c7151e9b9d8c1b352a0f5fa94dbd42e39b0a417ea9da",
+        "contents_checksum": "06647040a666b59ce69c90e6ba9cbfba3f1763236a0872af722e62ea30e51e34",
+        "size": 1214415,
+        "source": "components/google-cloud-sdk-gcloud-crc32c-linux-arm-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4000,16 +4000,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
+        "build_number": 20231215195722,
         "version_string": "1.0.0"
       }
     },
     {
       "data": {
-        "checksum": "5abf460069b1f95004805a1f3469061dc340dda0a44fe89fa969e9693cfdd1c1",
-        "contents_checksum": "6a50901818b7cd1a27b2229b350f1869edea9c6aa3bf62a526679b81e967e5f0",
-        "size": 1236281,
-        "source": "components/google-cloud-sdk-gcloud-crc32c-linux-x86-20231023224440.tar.gz",
+        "checksum": "111269e6760bcf2c8d86c435ba6e1814b96281089d38dc73c699b9b12489c662",
+        "contents_checksum": "93fa6c57934e224e3e9e20eec8386ca1d3169b5a4e8f2515f1b042b11e000564",
+        "size": 1233668,
+        "source": "components/google-cloud-sdk-gcloud-crc32c-linux-x86-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4033,16 +4033,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
+        "build_number": 20231215195722,
         "version_string": "1.0.0"
       }
     },
     {
       "data": {
-        "checksum": "ec15e4bb7d1a361ae7d931c79626b7a27ded310f118208b5b80e6d54b4f7c793",
-        "contents_checksum": "3d6e552b35cbf9a7cb8e34026d14de0422241344032487ff418514503c133ad4",
-        "size": 1289207,
-        "source": "components/google-cloud-sdk-gcloud-crc32c-linux-x86_64-20231023224440.tar.gz",
+        "checksum": "3fe726e72437a2257264bedb9bb4d61949c15c80b9f587888717c267f65ab91e",
+        "contents_checksum": "0b6b618de4cf9fc339b414d44e6e834e6cdb5fae2ddb65bde3525ad78c595d51",
+        "size": 1287877,
+        "source": "components/google-cloud-sdk-gcloud-crc32c-linux-x86_64-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4066,16 +4066,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
+        "build_number": 20231215195722,
         "version_string": "1.0.0"
       }
     },
     {
       "data": {
-        "checksum": "98febf85b26c1a33eb215b2af9f3c8bee847ee71c84be463b26b6d0a763f6400",
-        "contents_checksum": "2e7b929903bc28273be12f0c28dbd68c51315a66600c9751e749ff448d89696f",
-        "size": 1268435,
-        "source": "components/google-cloud-sdk-gcloud-crc32c-windows-x86-20231023224440.tar.gz",
+        "checksum": "46a658000be7850ef81652659448e70c67e089d20946a572c6ba521676af668c",
+        "contents_checksum": "58e78452a22e94789408f6afbb86a65544cb1fac500ef3fbe7422c5eb6b19c10",
+        "size": 1267116,
+        "source": "components/google-cloud-sdk-gcloud-crc32c-windows-x86-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4099,16 +4099,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
+        "build_number": 20231215195722,
         "version_string": "1.0.0"
       }
     },
     {
       "data": {
-        "checksum": "a5ed8bb33c67304f57f1ab4c1922f0396565e868dd938b49ce9434a87992a5b8",
-        "contents_checksum": "0c794abb07a045e2c0110bbda9e4033410bb8b7a3d9ddcd329777626ab36d2b3",
-        "size": 1322057,
-        "source": "components/google-cloud-sdk-gcloud-crc32c-windows-x86_64-20231023224440.tar.gz",
+        "checksum": "b9752b5c9eccc0105ef06f322b2dff92f2542884475708b864ae02e800ef7765",
+        "contents_checksum": "96506b713c645adb109e0a7bf83fef4af59a24cd7f714f8455b8d66af8946213",
+        "size": 1321071,
+        "source": "components/google-cloud-sdk-gcloud-crc32c-windows-x86_64-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4132,16 +4132,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
+        "build_number": 20231215195722,
         "version_string": "1.0.0"
       }
     },
     {
       "data": {
-        "checksum": "e6ff194b0ebb57cfca1c65a600e852bd5760a7257afb6240a0ed470ff0965fe0",
-        "contents_checksum": "25b6e403e06e65b9205d1258a1b9e09e5e84efb20007e5f940b90af41e3e7873",
-        "size": 12282466,
-        "source": "components/google-cloud-sdk-gcloud-deps-20231025210228.tar.gz",
+        "checksum": "199a922d9427440154dbd427650aac513dde9dcf5fb904f696011e208af16436",
+        "contents_checksum": "bd1cee79ccb1075e6174ce72da21507e22c9309c7d453ec4c0365c38184dbf72",
+        "size": 17398946,
+        "source": "components/google-cloud-sdk-gcloud-deps-20240229170130.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4164,8 +4164,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20231025210228,
-        "version_string": "2023.10.25"
+        "build_number": 20240229170130,
+        "version_string": "2024.02.29"
       }
     },
     {
@@ -4401,10 +4401,10 @@
     },
     {
       "data": {
-        "checksum": "a437611fe8ca14e5fbeada917374b7cd2f7d56ad2212e51b80fcb9e7b036a21a",
-        "contents_checksum": "4272d2b5be6e3778aaddfdd6a9d555b6dcf31d27428ed7d4aea76e68dfe5f839",
-        "size": 6464999,
-        "source": "components/google-cloud-sdk-gcloud-man-pages-nix-20231023224440.tar.gz",
+        "checksum": "5002cd1d0b639317a879d8c6eaf1c8b65ae30d908be20168b3d1126a7a9931fb",
+        "contents_checksum": "be1175193dbcc96732f074ee8916e2d01bae057865ca4cc9af4fce96669a2e82",
+        "size": 6729281,
+        "source": "components/google-cloud-sdk-gcloud-man-pages-nix-20240229170130.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4429,7 +4429,7 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
+        "build_number": 20240229170130,
         "version_string": ""
       }
     },
@@ -4466,15 +4466,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "0.5.6"
+        "version_string": "0.5.8"
       }
     },
     {
       "data": {
-        "checksum": "748941d0f1088368cddbff04350c1156eb6c0b941fb4a8281f90e715de91600c",
-        "contents_checksum": "2e92b76de260589610789902d43950f9c23035d9492e9acde1ab81c2ce1b6f86",
-        "size": 7760852,
-        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-darwin-arm-20230915145114.tar.gz",
+        "checksum": "327a609642f03ff8f40490eed3794ecf937c6d5fdabf16b41711f037f86c283a",
+        "contents_checksum": "e63fd07984cbb296b5359bb35569445a539ed4e58c8bce640d4216a94c8a6881",
+        "size": 7784812,
+        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-darwin-arm-20240106004423.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4498,16 +4498,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230915145114,
-        "version_string": "0.5.6"
+        "build_number": 20240106004423,
+        "version_string": "0.5.8"
       }
     },
     {
       "data": {
-        "checksum": "87e8b9fa1ab657e6f9059b3e73987cdbcafcd0a54a7c0695933a1a630e8c40b6",
-        "contents_checksum": "e93346a6bed20405a41737b6894e5555fe6e65ff84e0c4dfef1c1ca8fbc8759a",
-        "size": 8135789,
-        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-darwin-x86_64-20230915145114.tar.gz",
+        "checksum": "79c52f25361b485515fdf2d20283925997feeea6a3f276eb49f5476645c1fe10",
+        "contents_checksum": "aeff6edc3ea7bde1aa33f44744484644cd4e1ca56803f043e7ef27dba5e7b015",
+        "size": 8160991,
+        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-darwin-x86_64-20240106004423.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4531,16 +4531,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230915145114,
-        "version_string": "0.5.6"
+        "build_number": 20240106004423,
+        "version_string": "0.5.8"
       }
     },
     {
       "data": {
-        "checksum": "ba39fbdeae5f44a54a83a730d8df93a0b9ce7e18369dabe6f87b023b06b27632",
-        "contents_checksum": "4fe1de8207994103e77bad7d93ebcc9bffde9cb4fa03fd6d658f009454863ba6",
-        "size": 7669387,
-        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-linux-arm-20230915145114.tar.gz",
+        "checksum": "51fcd3459f2ef594b441faea5433a26cc8d94ab638cdac3b9028a2710a5adcbb",
+        "contents_checksum": "b33be7d31ad5e77814ae435860a3ab9688672baaccda4bf86c000a5b7d1eea67",
+        "size": 7695357,
+        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-linux-arm-20240106004423.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4564,16 +4564,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230915145114,
-        "version_string": "0.5.6"
+        "build_number": 20240106004423,
+        "version_string": "0.5.8"
       }
     },
     {
       "data": {
-        "checksum": "dde5954dc3e5aeb70dd031d1f9dc06ca91fbfef353786dc7aeaf08fe47b8349e",
-        "contents_checksum": "23d71fc214901822027f64f6096b3a6559d963432c189b3bacc7ecf5bf36aef6",
-        "size": 8185793,
-        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-linux-x86-20230915145114.tar.gz",
+        "checksum": "87066fca15ebfd79a716c54fd15ad5621fb67dc4a3a34d1e23bcd69d4b5ed5dd",
+        "contents_checksum": "2a425e75e5ec31bec2b7dbdec75ed1a4ca8920ccceee7b12bf658b2e1bd409a8",
+        "size": 8213296,
+        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-linux-x86-20240106004423.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4597,16 +4597,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230915145114,
-        "version_string": "0.5.6"
+        "build_number": 20240106004423,
+        "version_string": "0.5.8"
       }
     },
     {
       "data": {
-        "checksum": "d8d9359bbbb0b8e2761bda8a315a50ad1580450d32e4b31d43da1805c408ec9a",
-        "contents_checksum": "08767b975276ca0651442a13bb7319c3c065dca875cf416a27251cf2093d576a",
-        "size": 8298454,
-        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-linux-x86_64-20230915145114.tar.gz",
+        "checksum": "cb9856b2ae92bf1a5fd69c7f29bd6892abeb2a229732541f361adea37ede3d9f",
+        "contents_checksum": "811125a0907dc84d4603f7c3734cfd214509c7400397e705d234b06d31c6714f",
+        "size": 8323564,
+        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-linux-x86_64-20240106004423.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4630,16 +4630,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230915145114,
-        "version_string": "0.5.6"
+        "build_number": 20240106004423,
+        "version_string": "0.5.8"
       }
     },
     {
       "data": {
-        "checksum": "4e53ce9e76364f936a3730aa26d8396fc905443093bfcba5107e50d999767a28",
-        "contents_checksum": "e13da874c2f1330b78675428fbf7aead7c0f4a4bb8152c911906659d1e7923bb",
-        "size": 8294371,
-        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-windows-x86-20230915145114.tar.gz",
+        "checksum": "3b4ffda0fab2631a3b43229390bbb7c2d35d6aa6c7b283d47d8107499c44ee58",
+        "contents_checksum": "3f148312f9edea79f254274261b0bb1a928dc979bd569ca1410699f576433156",
+        "size": 8319970,
+        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-windows-x86-20240106004423.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4663,16 +4663,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230915145114,
-        "version_string": "0.5.6"
+        "build_number": 20240106004423,
+        "version_string": "0.5.8"
       }
     },
     {
       "data": {
-        "checksum": "72c35b4ec450e1e30e301e681c322bb2ddd8c9158b60f6d7a6c86f5d1d082396",
-        "contents_checksum": "1a1de077982ffdcb3762e47dea8d515cfe301ec2fab336aa2d3f968a142cff56",
-        "size": 8448839,
-        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-windows-x86_64-20230915145114.tar.gz",
+        "checksum": "56b20fa9e9fbe51bc2b8e5d8086088be75aaaf90fdeae444c7bb246bdd38454a",
+        "contents_checksum": "af802f48ffa244f12154321bc1bc4170e53d2ab7628df711cac7c36bb1b0493d",
+        "size": 8477137,
+        "source": "components/google-cloud-sdk-gke-gcloud-auth-plugin-windows-x86_64-20240106004423.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4696,8 +4696,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230915145114,
-        "version_string": "0.5.6"
+        "build_number": 20240106004423,
+        "version_string": "0.5.8"
       }
     },
     {
@@ -4730,10 +4730,10 @@
     },
     {
       "data": {
-        "checksum": "140a65cc728b7d7f0e0018c85f30ea6e7a0cae5e59af15fa51a6f1156f598ec8",
-        "contents_checksum": "865d885b3c86680b0f5581236d54916c71c2672b13e32c2c5b1d213429291bdf",
-        "size": 2035,
-        "source": "components/google-cloud-sdk-gsutil-nix-20231025210228.tar.gz",
+        "checksum": "0e203c936ca846514c498e1bf3f18ecfd8f4e031eb65f1f915812fa31824d246",
+        "contents_checksum": "023019da3e1594d499efe2047aa7069fd138fba4022da534f245de4a9b25597c",
+        "size": 2042,
+        "source": "components/google-cloud-sdk-gsutil-nix-20240106004423.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4758,16 +4758,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231025210228,
+        "build_number": 20240106004423,
         "version_string": "5.27"
       }
     },
     {
       "data": {
-        "checksum": "f44dc54214254bc4c977ac3635113b9299fc7077e2ff2ba649718b0b2b9754ee",
-        "contents_checksum": "d7ff72a9837188a8f602ba4833ea0f38bb0a55ac160121c59dba0b72fae4064e",
-        "size": 4125,
-        "source": "components/google-cloud-sdk-gsutil-win-20231025210228.tar.gz",
+        "checksum": "8b63a83d67b850db7e46f468c9a5370bcdf67aa826c39e5d686c1154e378cf27",
+        "contents_checksum": "0f40962ad671c9f7eb0c6d0d9fe2ea0cfa406fa550764864959335988172d5e6",
+        "size": 4160,
+        "source": "components/google-cloud-sdk-gsutil-win-20240226203415.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4789,7 +4789,7 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231025210228,
+        "build_number": 20240226203415,
         "version_string": "5.27"
       }
     },
@@ -4854,6 +4854,169 @@
     },
     {
       "dependencies": [
+        "istioctl-darwin-arm",
+        "istioctl-darwin-x86_64",
+        "istioctl-linux-arm",
+        "istioctl-linux-x86_64"
+      ],
+      "details": {
+        "description": "Support tool for Cloud Service Mesh.",
+        "display_name": "istioctl"
+      },
+      "id": "istioctl",
+      "is_configuration": false,
+      "is_hidden": true,
+      "is_required": false,
+      "platform": {
+        "architectures": [
+          "arm",
+          "x86_64"
+        ],
+        "operating_systems": [
+          "LINUX",
+          "MACOSX"
+        ]
+      },
+      "platform_required": false,
+      "version": {
+        "build_number": 0,
+        "version_string": "1.20.311"
+      }
+    },
+    {
+      "data": {
+        "checksum": "e21e0b1b1a143e74b1b0ba7392ed4fdd1cf28323bd74ef59f116e218f49824fb",
+        "contents_checksum": "ea25e0ffad0fcd5877d24e86ef5b96be2e86446f432926385ebfc08590a9be36",
+        "size": 26043155,
+        "source": "components/google-cloud-sdk-istioctl-darwin-arm-20240229170130.tar.gz",
+        "type": "tar"
+      },
+      "dependencies": [
+        "istioctl"
+      ],
+      "details": {
+        "description": "Support tool for Cloud Service Mesh.",
+        "display_name": "istioctl"
+      },
+      "id": "istioctl-darwin-arm",
+      "is_configuration": false,
+      "is_hidden": true,
+      "is_required": false,
+      "platform": {
+        "architectures": [
+          "arm"
+        ],
+        "operating_systems": [
+          "MACOSX"
+        ]
+      },
+      "platform_required": false,
+      "version": {
+        "build_number": 20240229170130,
+        "version_string": "1.20.311"
+      }
+    },
+    {
+      "data": {
+        "checksum": "e26416a75034738c5decb4e88b69f060849db045eb1a416dbe5def38ca036051",
+        "contents_checksum": "9ed26dc784a70ed4f98d845dac4ba8b298a90dcdfb169e665e1756cbbfadbfc7",
+        "size": 26886694,
+        "source": "components/google-cloud-sdk-istioctl-darwin-x86_64-20240229170130.tar.gz",
+        "type": "tar"
+      },
+      "dependencies": [
+        "istioctl"
+      ],
+      "details": {
+        "description": "Support tool for Cloud Service Mesh.",
+        "display_name": "istioctl"
+      },
+      "id": "istioctl-darwin-x86_64",
+      "is_configuration": false,
+      "is_hidden": true,
+      "is_required": false,
+      "platform": {
+        "architectures": [
+          "x86_64"
+        ],
+        "operating_systems": [
+          "MACOSX"
+        ]
+      },
+      "platform_required": false,
+      "version": {
+        "build_number": 20240229170130,
+        "version_string": "1.20.311"
+      }
+    },
+    {
+      "data": {
+        "checksum": "5fbeafb59962e1f5e42b874caf897a151ce05f2082063e04edddd054be1b9b78",
+        "contents_checksum": "62e413e41af9e75ae3523f45e5e60063ce9363d9b73e7b5b427e6e451bbc6816",
+        "size": 22993370,
+        "source": "components/google-cloud-sdk-istioctl-linux-arm-20240229170130.tar.gz",
+        "type": "tar"
+      },
+      "dependencies": [
+        "istioctl"
+      ],
+      "details": {
+        "description": "Support tool for Cloud Service Mesh.",
+        "display_name": "istioctl"
+      },
+      "id": "istioctl-linux-arm",
+      "is_configuration": false,
+      "is_hidden": true,
+      "is_required": false,
+      "platform": {
+        "architectures": [
+          "arm"
+        ],
+        "operating_systems": [
+          "LINUX"
+        ]
+      },
+      "platform_required": false,
+      "version": {
+        "build_number": 20240229170130,
+        "version_string": "1.20.311"
+      }
+    },
+    {
+      "data": {
+        "checksum": "167b9dc19cb7b64b5eca9e0efecf609a621eb18ce7ece2288a36038e1124658e",
+        "contents_checksum": "1d3a6f9870ab2b0b693927d32154cd44b4686079a9c117590cdc2b385b040869",
+        "size": 25190186,
+        "source": "components/google-cloud-sdk-istioctl-linux-x86_64-20240229170130.tar.gz",
+        "type": "tar"
+      },
+      "dependencies": [
+        "istioctl"
+      ],
+      "details": {
+        "description": "Support tool for Cloud Service Mesh.",
+        "display_name": "istioctl"
+      },
+      "id": "istioctl-linux-x86_64",
+      "is_configuration": false,
+      "is_hidden": true,
+      "is_required": false,
+      "platform": {
+        "architectures": [
+          "x86_64"
+        ],
+        "operating_systems": [
+          "LINUX"
+        ]
+      },
+      "platform_required": false,
+      "version": {
+        "build_number": 20240229170130,
+        "version_string": "1.20.311"
+      }
+    },
+    {
+      "dependencies": [
         "kpt-darwin-arm",
         "kpt-darwin-x86_64",
         "kpt-linux-arm",
@@ -4880,15 +5043,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.0.0-beta.45"
+        "version_string": "1.0.0-beta.49"
       }
     },
     {
       "data": {
-        "checksum": "165e0d01221c66f8a02ca770a613af9e10ca84c301908cee016c4b9f62228c90",
-        "contents_checksum": "d69220663dd3189ef2d75698793f173994662ab4a1331f832cce561122dd3347",
-        "size": 15098362,
-        "source": "components/google-cloud-sdk-kpt-darwin-arm-20231006153333.tar.gz",
+        "checksum": "0790df1606aadcd3818ad4dd7e7826d454602c6e7d2c93376285c8b73487a91b",
+        "contents_checksum": "3dbe499874490929331944b276ff0332f4e94f1babf071e6779cb52746bdc906",
+        "size": 15088020,
+        "source": "components/google-cloud-sdk-kpt-darwin-arm-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4912,16 +5075,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
-        "version_string": "1.0.0-beta.45"
+        "build_number": 20231215195722,
+        "version_string": "1.0.0-beta.49"
       }
     },
     {
       "data": {
-        "checksum": "8a507cc40d952611f0d3d7ef881cd2564be93a09d91a01c8d9af13a8477eebe8",
-        "contents_checksum": "bba9c09fe778ebccbeb4c2d77f7fa1a008fc134eebc024d3cfa74ad8737de55d",
-        "size": 15865808,
-        "source": "components/google-cloud-sdk-kpt-darwin-x86_64-20231006153333.tar.gz",
+        "checksum": "ca3bceb9312bb492a1050ba6ed200b835102c58c76d55f9d1c6822c3e074d7e9",
+        "contents_checksum": "706fe93e6842fe68860507bc65fdbe08660e1063d61c882667dee51608789284",
+        "size": 15854938,
+        "source": "components/google-cloud-sdk-kpt-darwin-x86_64-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4945,16 +5108,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
-        "version_string": "1.0.0-beta.45"
+        "build_number": 20231215195722,
+        "version_string": "1.0.0-beta.49"
       }
     },
     {
       "data": {
-        "checksum": "00242648b8722bdecbbc422dfe5e947a711d14aeb9adb575cb664e07b61a16c0",
-        "contents_checksum": "b7acebf0b9a28366a0a7ee8f283bb01baa7ba9ab0c85a31d994604c9ee62e587",
-        "size": 13639470,
-        "source": "components/google-cloud-sdk-kpt-linux-arm-20231006153333.tar.gz",
+        "checksum": "56d0a81d5b31304c153cf07d4b5eeb433a27245c095f9e181f49eb8b98536ace",
+        "contents_checksum": "78fe72d925a7144d71ac007c684d7fcbdb3f9b4e5e454bcd6c49ebc133cf132f",
+        "size": 13629886,
+        "source": "components/google-cloud-sdk-kpt-linux-arm-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -4978,16 +5141,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
-        "version_string": "1.0.0-beta.45"
+        "build_number": 20231215195722,
+        "version_string": "1.0.0-beta.49"
       }
     },
     {
       "data": {
-        "checksum": "d429dbc12345c454e5494e3312bdff83d39ad5793a05423c4ae5fc07a8128aba",
-        "contents_checksum": "2d9bc0d3ace7952ca0e3e37df2545c0d30734162edd151f7759a75a186134604",
-        "size": 15103896,
-        "source": "components/google-cloud-sdk-kpt-linux-x86_64-20231006153333.tar.gz",
+        "checksum": "72b3a2a1e41963a892899e273fff38aa93a83acdc90d59c9f3c335fa62b1d30b",
+        "contents_checksum": "3de022e880f11c7cbb0e258281b2dc5a7c32ebf688958a99feecaae684cc62bd",
+        "size": 15090734,
+        "source": "components/google-cloud-sdk-kpt-linux-x86_64-20231215195722.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5011,16 +5174,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231006153333,
-        "version_string": "1.0.0-beta.45"
+        "build_number": 20231215195722,
+        "version_string": "1.0.0-beta.49"
       }
     },
     {
       "data": {
-        "checksum": "1856710bc0df7be64bab8bf90cb5efb07dc3ea87affbd82d5fb95b1a87a0fd38",
-        "contents_checksum": "40d66e6d7f3852fcf4d60000bb89743f36516642a9fb5e4b4ac72d5db2b7d00f",
-        "size": 35802,
-        "source": "components/google-cloud-sdk-kubectl-20230901141909.tar.gz",
+        "checksum": "e06b2f2bd331421fa8f8c5776b7370b793101232a8316c61420ebad9622e2709",
+        "contents_checksum": "d7c1385f3b9bedea994733230851e6d3548ea4be8f5014b1feadbf4ca2c6ca46",
+        "size": 35936,
+        "source": "components/google-cloud-sdk-kubectl-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5044,16 +5207,16 @@
       "platform": {},
       "platform_required": true,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.27.5"
+        "build_number": 20240209195330,
+        "version_string": "1.26.13"
       }
     },
     {
       "data": {
-        "checksum": "98705f1c24b4deb4c4705890b9d96cf7304b8df3f9fa21d16d971b1e8d577c85",
-        "contents_checksum": "713724b4e531400e61289f6649a0ebc2a390c23c17f9b13cf36ddf713e8c6fff",
-        "size": 103078284,
-        "source": "components/google-cloud-sdk-kubectl-darwin-arm-20230901141909.tar.gz",
+        "checksum": "ad4230981ddba174dc301d5ed31704c86819b99de90fc0a391d379197b221ff0",
+        "contents_checksum": "8208474ff6408f57a030648f9e0409eb66f854f95eb1cc8fc28897e3dae882b7",
+        "size": 76487537,
+        "source": "components/google-cloud-sdk-kubectl-darwin-arm-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5078,16 +5241,16 @@
       },
       "platform_required": true,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.27.5"
+        "build_number": 20240209195330,
+        "version_string": "1.26.13"
       }
     },
     {
       "data": {
-        "checksum": "89fd68aa32498f5fa73e569cc6897c6ef2d12c822870703ce2cc004711260ca6",
-        "contents_checksum": "76c149262b6b45f75eec6d812f6c800924ddc42627bdfa757fbe8ba57c87c856",
-        "size": 108009509,
-        "source": "components/google-cloud-sdk-kubectl-darwin-x86_64-20230901141909.tar.gz",
+        "checksum": "7154fc7e724a41ba9109fc4d3211fdfb24bb9c706f82175a0543158a74ea64f4",
+        "contents_checksum": "1db2fb77158d4aeb37b895ca7beb34d2380b6d7bda97e18189c03a235473a26f",
+        "size": 80131408,
+        "source": "components/google-cloud-sdk-kubectl-darwin-x86_64-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5112,16 +5275,16 @@
       },
       "platform_required": true,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.27.5"
+        "build_number": 20240209195330,
+        "version_string": "1.26.13"
       }
     },
     {
       "data": {
-        "checksum": "277ce37c99d1da67302f0b96be2f81712c7655b8bd6e8a681e5ec42c7e839f3d",
-        "contents_checksum": "603f81934af743bec8493385ef0742e396547ab8d4730f1b25243ce6f9d6583c",
-        "size": 96034568,
-        "source": "components/google-cloud-sdk-kubectl-linux-arm-20230901141909.tar.gz",
+        "checksum": "655be0e96cc23f6e04c4ec176ef19d6ac4164f0093de7e6a5ab882128bacf3cc",
+        "contents_checksum": "69a8d347c6cc78a42b8ec340794632e449b2ceac8f7a8cf3e677f97743fa6e66",
+        "size": 72277260,
+        "source": "components/google-cloud-sdk-kubectl-linux-arm-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5146,16 +5309,16 @@
       },
       "platform_required": true,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.27.5"
+        "build_number": 20240209195330,
+        "version_string": "1.26.13"
       }
     },
     {
       "data": {
-        "checksum": "d0aa47c656c3f62b046fcdebe292fdd4277423d27ae82e076b33b7ca9c39eefb",
-        "contents_checksum": "da0be2ec150a1178b21e571fc31f3a0c1bc97aec8808add47123f958c8c3f622",
-        "size": 96964577,
-        "source": "components/google-cloud-sdk-kubectl-linux-x86-20230901141909.tar.gz",
+        "checksum": "37931d1405a46bac8833f106c35734512445fc218cc9f1e007604bb48cdee55b",
+        "contents_checksum": "8222dd939577e50f8ffc0f667d6a2ccbd88c8a0813925f4889a58d27b180ff98",
+        "size": 71637401,
+        "source": "components/google-cloud-sdk-kubectl-linux-x86-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5180,16 +5343,16 @@
       },
       "platform_required": true,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.27.5"
+        "build_number": 20240209195330,
+        "version_string": "1.26.13"
       }
     },
     {
       "data": {
-        "checksum": "7ea12e2911cf031f4f1642d9be5a0336c9142d84b3e9511c2405ab742cddab5b",
-        "contents_checksum": "651b0f1e393ec6903229f7c170d1d54a41066fe5cfd6dd233c5a24e7ce08fb4d",
-        "size": 102779659,
-        "source": "components/google-cloud-sdk-kubectl-linux-x86_64-20230901141909.tar.gz",
+        "checksum": "479be7e5c55b77eacb26a86afb8063ee0c22664eca0af154c6725c6d413f4631",
+        "contents_checksum": "0d9e46f2a36f34ac1d485901b2243bbedc5f66e54cb3d8e42172cbc6484075ea",
+        "size": 76232083,
+        "source": "components/google-cloud-sdk-kubectl-linux-x86_64-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5214,8 +5377,8 @@
       },
       "platform_required": true,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.27.5"
+        "build_number": 20240209195330,
+        "version_string": "1.26.13"
       }
     },
     {
@@ -5248,15 +5411,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.4.4"
+        "version_string": "1.5.0"
       }
     },
     {
       "data": {
-        "checksum": "a7d9d1a977856dc342b82936bedfda0032e27ec4657fd380048cd7dc5de05039",
-        "contents_checksum": "2d656b34043e23ff6a98a7fb432efa86d251eb0b14c4452d17c537dc02e04eaf",
-        "size": 20108100,
-        "source": "components/google-cloud-sdk-kubectl-oidc-darwin-arm-20220923141408.tar.gz",
+        "checksum": "ca1e67289f1d377b6fc300777cdd8853a4ebc7eb11c00db85a3e7394c8daea30",
+        "contents_checksum": "3d35d8343042427849f27fe09652e94dbb563ebb6026ded792641beb1c536ebd",
+        "size": 21674622,
+        "source": "components/google-cloud-sdk-kubectl-oidc-darwin-arm-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5280,16 +5443,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220923141408,
-        "version_string": "1.4.4"
+        "build_number": 20231201141418,
+        "version_string": "1.5.0"
       }
     },
     {
       "data": {
-        "checksum": "1d6d08431d911928ef8500d1979720278f8116e86ae52afc32ce0b76ec4a5fb0",
-        "contents_checksum": "497465b1a0c3a6781d2bb0b68a951af0a4d2230ae67caa84288d38b853800a53",
-        "size": 21183987,
-        "source": "components/google-cloud-sdk-kubectl-oidc-darwin-x86_64-20220923141408.tar.gz",
+        "checksum": "d8b175936d29c11412e099627cbc9d4bc4574e7201a48bd045714aa4d5039d97",
+        "contents_checksum": "b4c5609dd10b63e9946c1afaf9a6e242fe3b09cb0d5c0c453e4ead4fb173c4e2",
+        "size": 22732154,
+        "source": "components/google-cloud-sdk-kubectl-oidc-darwin-x86_64-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5313,16 +5476,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220923141408,
-        "version_string": "1.4.4"
+        "build_number": 20231201141418,
+        "version_string": "1.5.0"
       }
     },
     {
       "data": {
-        "checksum": "87550a6e878b3091c8da5df8380c65f9e2579f012b7cbddc3e64fb637906fc38",
-        "contents_checksum": "2c33c85c5826938f014a33c21d28289676cccc09d7ffb87368fd94faf43b6cc1",
-        "size": 19755678,
-        "source": "components/google-cloud-sdk-kubectl-oidc-linux-arm-20220923141408.tar.gz",
+        "checksum": "da25e182095d25746563ded62b84c614f6ba87514e751e1f445b8ef9ddbcf239",
+        "contents_checksum": "f1bd3477dd4ad77ed8c02631cfd0b7e102000e6bac495dcd3fb69daf6b21ba93",
+        "size": 21172499,
+        "source": "components/google-cloud-sdk-kubectl-oidc-linux-arm-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5346,16 +5509,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220923141408,
-        "version_string": "1.4.4"
+        "build_number": 20231201141418,
+        "version_string": "1.5.0"
       }
     },
     {
       "data": {
-        "checksum": "cd6945af71ecfdf94c693ee22b7629ad62dc650cf0c19d58761fe260f792e36f",
-        "contents_checksum": "c2092312910a7e7e86adcd8d72c9e97d7d9757d6dce2f3e24124d9bcadd0d9eb",
-        "size": 21362894,
-        "source": "components/google-cloud-sdk-kubectl-oidc-linux-x86_64-20220923141408.tar.gz",
+        "checksum": "94eb2344e8f1a5cff5b2f1db0c35e3cfc378336f148a701ac94e4111f17069f1",
+        "contents_checksum": "9ddfa977b16e32f97c5d5ad574ff09ae06f67b87f218f45a178cfae5f88d4355",
+        "size": 22854824,
+        "source": "components/google-cloud-sdk-kubectl-oidc-linux-x86_64-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5379,16 +5542,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220923141408,
-        "version_string": "1.4.4"
+        "build_number": 20231201141418,
+        "version_string": "1.5.0"
       }
     },
     {
       "data": {
-        "checksum": "2cf3f2460446692a81c888ec16ac7cbd838fd83acdec46e99bd9225ed49a5d67",
-        "contents_checksum": "6477f1e7ad0e16d891b1b47c201c2bf0e4409789893be60e1697593c58f74025",
-        "size": 21470876,
-        "source": "components/google-cloud-sdk-kubectl-oidc-windows-x86_64-20220923141408.tar.gz",
+        "checksum": "386b201a127ea6723ba4f4ac943c596310d03aa0568d947f23980577fc0c5685",
+        "contents_checksum": "72ccfee0b039eaf5d4bd5445044806c84a1af5d55318de032a372af0fdf779c4",
+        "size": 23111830,
+        "source": "components/google-cloud-sdk-kubectl-oidc-windows-x86_64-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5412,16 +5575,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220923141408,
-        "version_string": "1.4.4"
+        "build_number": 20231201141418,
+        "version_string": "1.5.0"
       }
     },
     {
       "data": {
-        "checksum": "f0f671d703d9f167ad6bd3eaa6160a1f3612f55cb4224a7f5d6e32fe24aad4bf",
-        "contents_checksum": "97933ed5d6afd63a6d24200980cadc6ebcfe962827cb1cc5fff294f425b02225",
-        "size": 101631898,
-        "source": "components/google-cloud-sdk-kubectl-windows-x86-20230901141909.tar.gz",
+        "checksum": "80b067c1eed2401d32b2078e9296322ceecad8de4903105c8627a182bc626f89",
+        "contents_checksum": "008b98a6902a2d260427a6067f7b26278c947c3da0f65a135bea6806906de7cc",
+        "size": 75077053,
+        "source": "components/google-cloud-sdk-kubectl-windows-x86-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5448,16 +5611,16 @@
       },
       "platform_required": true,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.27.5"
+        "build_number": 20240209195330,
+        "version_string": "1.26.13"
       }
     },
     {
       "data": {
-        "checksum": "be9dfaab70e30013b181ca6b01db0cbe33a9998c8b42b294cb6ae42586c08dcb",
-        "contents_checksum": "8646408cad8f64abcbf575a5b9606d304d3f0a1c914b5c7ba4148d4024c22b34",
-        "size": 103973366,
-        "source": "components/google-cloud-sdk-kubectl-windows-x86_64-20230901141909.tar.gz",
+        "checksum": "a632645797fb65db3f112548543ce4f7b1e048963f264bf5bc9e318f9f85cda2",
+        "contents_checksum": "bcdf97a387126e7b831c903b905bc96af608ff2fc5d2013482280535f077c21c",
+        "size": 77301897,
+        "source": "components/google-cloud-sdk-kubectl-windows-x86_64-20240209195330.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -5484,8 +5647,8 @@
       },
       "platform_required": true,
       "version": {
-        "build_number": 20230901141909,
-        "version_string": "1.27.5"
+        "build_number": 20240209195330,
+        "version_string": "1.26.13"
       }
     },
     {
@@ -6042,15 +6205,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.31.2"
+        "version_string": "1.32.0"
       }
     },
     {
       "data": {
-        "checksum": "78205e250353829eef8e4226427043612a26df3751750bdfeb4ce5096534477b",
-        "contents_checksum": "989ca8305dc5b0ac3ea012bde522d707e7893ec7b5601476015be170587c2484",
-        "size": 34507436,
-        "source": "components/google-cloud-sdk-minikube-darwin-arm-20230822145232.tar.gz",
+        "checksum": "6cdb5663bc455017a2c1b7a7d34acaacc7cb4b0af5785db6ccdbfb0beec199fd",
+        "contents_checksum": "f7ca3880897a3db31c4619210464df1577b933823248436b8d7b1981d5d302df",
+        "size": 35193661,
+        "source": "components/google-cloud-sdk-minikube-darwin-arm-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6074,16 +6237,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230822145232,
-        "version_string": "1.31.2"
+        "build_number": 20231201141418,
+        "version_string": "1.32.0"
       }
     },
     {
       "data": {
-        "checksum": "09de85445c6b3df96b513fa5ef0893e141f2dd276d6ebe2a5c14805e02966386",
-        "contents_checksum": "6599c91419fd71db290d9df3d12a37cb335d9e30c206533767bcbccfb8415894",
-        "size": 35694869,
-        "source": "components/google-cloud-sdk-minikube-darwin-x86_64-20230822145232.tar.gz",
+        "checksum": "cdad196423217d1a81f1a00f8d706d4e05a27f58c21660e383d78351f4eda51c",
+        "contents_checksum": "da96e69ac893ea621f909904c57c57e34b1ae56f60b2de84427fb5d0a6df568f",
+        "size": 36498067,
+        "source": "components/google-cloud-sdk-minikube-darwin-x86_64-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6107,16 +6270,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230822145232,
-        "version_string": "1.31.2"
+        "build_number": 20231201141418,
+        "version_string": "1.32.0"
       }
     },
     {
       "data": {
-        "checksum": "01f5ee655a8877b9d55912694d634151f411f84f59489c8f61129e60eec1dfbb",
-        "contents_checksum": "bdd299c7575c1365a3ebb3ece947b735a51234851358d24c53997228351232c9",
-        "size": 33636964,
-        "source": "components/google-cloud-sdk-minikube-linux-arm-20230822145232.tar.gz",
+        "checksum": "8a80e98200d3572f803d700c8475c25f143d30997491ff4aaddb30633ab2cf76",
+        "contents_checksum": "af8b9577ef05c98d3cb2fe6832a8c2bf182f2cd19cb64a22f492581fc2882d2b",
+        "size": 34568485,
+        "source": "components/google-cloud-sdk-minikube-linux-arm-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6140,16 +6303,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230822145232,
-        "version_string": "1.31.2"
+        "build_number": 20231201141418,
+        "version_string": "1.32.0"
       }
     },
     {
       "data": {
-        "checksum": "567adccb2ee4f3112208def4dda54ec4ec96815a95499444efde14b240175fde",
-        "contents_checksum": "8a3e8c01ca983d10eda486ffcae60cf59d6a1e7fa09e2e4424e5ee56be742d07",
-        "size": 36252687,
-        "source": "components/google-cloud-sdk-minikube-linux-x86_64-20230822145232.tar.gz",
+        "checksum": "54e5932d307b935e9033bfa9ab956f701ce2bee640c16fddf2ba1f061f2707cd",
+        "contents_checksum": "28c6cb2657e863e1023b2f905edf91735e0a122c210669fd59e914ecdcb25846",
+        "size": 37111912,
+        "source": "components/google-cloud-sdk-minikube-linux-x86_64-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6173,16 +6336,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230822145232,
-        "version_string": "1.31.2"
+        "build_number": 20231201141418,
+        "version_string": "1.32.0"
       }
     },
     {
       "data": {
-        "checksum": "2fc9ea9e26e672d5369e63e4084520b7e252f9c9eabf9e63edc30f362b79c751",
-        "contents_checksum": "f31c9d1fd17b363be49476ea676866474dabd71904101bc9cb748c1c8d50efa1",
-        "size": 36153509,
-        "source": "components/google-cloud-sdk-minikube-windows-x86_64-20230822145232.tar.gz",
+        "checksum": "66ccc0487812cac8ab071d878eda07fae7440eb232df9177520cd1522d67cd92",
+        "contents_checksum": "6a7de15384ab840952fdbcecad98e73b479542120dc0b9621b0c9452bcca4023",
+        "size": 37199202,
+        "source": "components/google-cloud-sdk-minikube-windows-x86_64-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6206,8 +6369,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20230822145232,
-        "version_string": "1.31.2"
+        "build_number": 20231201141418,
+        "version_string": "1.32.0"
       }
     },
     {
@@ -6235,15 +6398,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "1.16.2-rc.2"
+        "version_string": "1.17.2-rc.1"
       }
     },
     {
       "data": {
-        "checksum": "e985978e6f21b67b026ac23882b40fde32fce195c3618c845dce6e05e145359f",
-        "contents_checksum": "21fb7c2de16364b3e011aa4364c7b724cd7aacdfa21610ad891c1b8c3a388e02",
-        "size": 29892791,
-        "source": "components/google-cloud-sdk-nomos-darwin-x86_64-20231023224440.tar.gz",
+        "checksum": "3fd0c679ed6a308edc3460a04e939ef67152e9717ebac4c18b38e98edac51cea",
+        "contents_checksum": "bc7d9a0ef3f3a61d1d4d59a500ec650acae2425ab17b723bc4c2ad5d05a0837a",
+        "size": 29981784,
+        "source": "components/google-cloud-sdk-nomos-darwin-x86_64-20240229170130.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6267,16 +6430,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
-        "version_string": "1.16.2-rc.2"
+        "build_number": 20240229170130,
+        "version_string": "1.17.2-rc.1"
       }
     },
     {
       "data": {
-        "checksum": "413f599d671855ce7bd0002a35b0f6793041282463342206246e42c01fd9c9b8",
-        "contents_checksum": "ef98a3d5add19c22799e9fe9031487e542f779b31fa604db671775dcd592b739",
-        "size": 30473701,
-        "source": "components/google-cloud-sdk-nomos-linux-x86_64-20231023224440.tar.gz",
+        "checksum": "93d532890f146415a74734c921ded0e8bdd408d3d9424beb6bbb7113530ec5fe",
+        "contents_checksum": "b429ab3ef37405bc06cbd594edc0730dd162f37a933fa854597a1bd5e59c761d",
+        "size": 30144691,
+        "source": "components/google-cloud-sdk-nomos-linux-x86_64-20240229170130.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6300,8 +6463,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
-        "version_string": "1.16.2-rc.2"
+        "build_number": 20240229170130,
+        "version_string": "1.17.2-rc.1"
       }
     },
     {
@@ -6581,10 +6744,10 @@
     },
     {
       "data": {
-        "checksum": "28574de6bc04f41d2ffc96e94fb00243ae6ec5e6c19524de7c833afd082a0a20",
-        "contents_checksum": "ec18cbdb02d4f8c9f3abe177bd0f9255eedc1e1d7739121a4ed7a29ce9ff36f4",
-        "size": 65097027,
-        "source": "components/google-cloud-sdk-pubsub-emulator-20231016163610.tar.gz",
+        "checksum": "a080b9775844f83bcce039e5c9dff7f4c87d69ae7cf6f0cc85a3c9212b8361ed",
+        "contents_checksum": "bcc50b05f18aabe3fd90857ec8933e7580ee9212d764d3efb9ac6ef26b01a9fa",
+        "size": 66384213,
+        "source": "components/google-cloud-sdk-pubsub-emulator-20240229170130.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6601,8 +6764,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20231016163610,
-        "version_string": "0.8.10"
+        "build_number": 20240229170130,
+        "version_string": "0.8.12"
       }
     },
     {
@@ -6636,15 +6799,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "2.7.1"
+        "version_string": "2.9.0"
       }
     },
     {
       "data": {
-        "checksum": "d82de49ad5de08e99bd6e77ec3dca58b7a48b6d440fffd24a136bc01d3f15c63",
-        "contents_checksum": "f919555748e2d8c1af435e9a62af9633d5146a251e152d0f077d6f3a5a90d5c5",
-        "size": 24334283,
-        "source": "components/google-cloud-sdk-skaffold-darwin-arm-20231002150006.tar.gz",
+        "checksum": "badd2854a9b5a3b4d3b8b55c163656776778c572eba854262bfd637c803ca3b7",
+        "contents_checksum": "45e2f3eb2703f29f735cbc820e9d4004f1e95bea1ab96e698ded74f2a5de857d",
+        "size": 24426195,
+        "source": "components/google-cloud-sdk-skaffold-darwin-arm-20231110155547.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6669,16 +6832,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231002150006,
-        "version_string": "2.7.1"
+        "build_number": 20231110155547,
+        "version_string": "2.9.0"
       }
     },
     {
       "data": {
-        "checksum": "80f62a636612be395d304441b70cb94eb2137a21c5f27363a746fd70f3670565",
-        "contents_checksum": "e446714207056f4c0a70739472eca48de9a4063c6260a1609c55291a0756f75a",
-        "size": 26431910,
-        "source": "components/google-cloud-sdk-skaffold-darwin-x86_64-20231002150006.tar.gz",
+        "checksum": "cba0d4046df4764747f9a15ebe061fec60f9f768d1079041feea2321c5cd5e76",
+        "contents_checksum": "941bc43d4633be69ed64eadf7ad3ba477929bd6dcb519dc668b77f29b5115a57",
+        "size": 26530698,
+        "source": "components/google-cloud-sdk-skaffold-darwin-x86_64-20231110155547.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6703,16 +6866,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231002150006,
-        "version_string": "2.7.1"
+        "build_number": 20231110155547,
+        "version_string": "2.9.0"
       }
     },
     {
       "data": {
-        "checksum": "6fd3ecbea23c64ccb1a7a43ba949df0108d5dcb279b8cd1d55a35f54b53bb674",
-        "contents_checksum": "d38419a04db49b0f30f761ae709c9fa902552871d0aa5522d1777643cc963579",
-        "size": 22351847,
-        "source": "components/google-cloud-sdk-skaffold-linux-arm-20231002150006.tar.gz",
+        "checksum": "45cb0e94d47b3b28db5d8dda5fbd1dd7fbfad96936ce3bbbdce3f2f8be63a093",
+        "contents_checksum": "2f36d4b1b0eab170b21fe0df2964aa31d79694a8860070c32b7eb7bc471a74aa",
+        "size": 22439050,
+        "source": "components/google-cloud-sdk-skaffold-linux-arm-20231110155547.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6737,16 +6900,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231002150006,
-        "version_string": "2.7.1"
+        "build_number": 20231110155547,
+        "version_string": "2.9.0"
       }
     },
     {
       "data": {
-        "checksum": "6ed058de92dfa76751028437b05c76ce17030fc19d4ff7fde5f0d5c915b94110",
-        "contents_checksum": "c86e65478b18bc05b803e0d4d2c4cf5387b05bd99def05b7017dd74fd478bebc",
-        "size": 24456326,
-        "source": "components/google-cloud-sdk-skaffold-linux-x86_64-20231002150006.tar.gz",
+        "checksum": "6add62f50ef3b9d77259177118ee30251c2f07074fc4555d516a3ae5dfbbb3b6",
+        "contents_checksum": "065a00f4d25312efad8a854d21809862d9f0e41588511a1c1930ed5c34e7e57b",
+        "size": 24544699,
+        "source": "components/google-cloud-sdk-skaffold-linux-x86_64-20231110155547.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6771,16 +6934,16 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231002150006,
-        "version_string": "2.7.1"
+        "build_number": 20231110155547,
+        "version_string": "2.9.0"
       }
     },
     {
       "data": {
-        "checksum": "c81abe9107f9b03476de18df93b7272bfe4942629e5202eea60611b0294f5883",
-        "contents_checksum": "027478d2605b71896dfffeb11c85da30e6fa3e6164b55701c5186137047e2771",
-        "size": 24939189,
-        "source": "components/google-cloud-sdk-skaffold-windows-x86_64-20231002150006.tar.gz",
+        "checksum": "577504b2686302f74a7e00bebe9a561b0caa15d3294dc0c9e15dba2d9d745f32",
+        "contents_checksum": "940d470dd53773d3e907de4d80ef70df247824167fcb95a05494e66e6bb28c9a",
+        "size": 25035980,
+        "source": "components/google-cloud-sdk-skaffold-windows-x86_64-20231110155547.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6805,8 +6968,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231002150006,
-        "version_string": "2.7.1"
+        "build_number": 20231110155547,
+        "version_string": "2.9.0"
       }
     },
     {
@@ -6832,15 +6995,15 @@
       "platform_required": false,
       "version": {
         "build_number": 0,
-        "version_string": "3.1.3"
+        "version_string": "3.2.2"
       }
     },
     {
       "data": {
-        "checksum": "f329d03249adcbd72707b0c723b3229bc3957bc2865ae0c2c13a90339ffed4f0",
-        "contents_checksum": "280d4a1fac4f797c9ca31c3a60ac377f32633678e92c45cb3d9c52d9ed697b52",
-        "size": 23033348,
-        "source": "components/google-cloud-sdk-spanner-migration-tool-linux-x86_64-20231023224440.tar.gz",
+        "checksum": "6f55289b6cdb9206c110e5e1f3e040e4c9a69aa129c5c0caae71bc668b17bca9",
+        "contents_checksum": "2284e73fc19acea54651526b45fd808530a9272fd56b0c553386bbfaac02f729",
+        "size": 24615874,
+        "source": "components/google-cloud-sdk-spanner-migration-tool-linux-x86_64-20240112150613.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -6864,8 +7027,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20231023224440,
-        "version_string": "3.1.3"
+        "build_number": 20240112150613,
+        "version_string": "3.2.2"
       }
     },
     {
@@ -7022,10 +7185,10 @@
     },
     {
       "data": {
-        "checksum": "be800db8eba62f286ff49c2ad59c399a6375429bcab4d06285a0f6851b10ee01",
-        "contents_checksum": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
-        "size": 105,
-        "source": "components/google-cloud-sdk-terraform-tools-linux-arm-20220325151342.tar.gz",
+        "checksum": "a227491c831d1ed3619bfebd69a3a4379729372b302de64c77891f0955316445",
+        "contents_checksum": "84c92ebb4b1ae244c96595c4774a9594857e37d900306958fb63fcc58ef61a0f",
+        "size": 64183072,
+        "source": "components/google-cloud-sdk-terraform-tools-linux-arm-20231201141418.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -7049,8 +7212,8 @@
       },
       "platform_required": false,
       "version": {
-        "build_number": 20220325151342,
-        "version_string": "0.2.1"
+        "build_number": 20231201141418,
+        "version_string": "0.11.1"
       }
     },
     {
@@ -7121,10 +7284,10 @@
     },
     {
       "data": {
-        "checksum": "5f1b1acfd653d1c7906dca110f939cf3e3389778ae0d4328c722348e69c3ba58",
-        "contents_checksum": "7fa3155ffbfc1c7b90d78a1eabb7e722f274149645f0e3979a5493aad1fd9df1",
-        "size": 50896581,
-        "source": "components/google-cloud-sdk-tests-20231025210228.tar.gz",
+        "checksum": "274f5f8fa50423d400d3df880f06bab3a10fadf9ce9a4b65bbb00d5ef84afe3a",
+        "contents_checksum": "d3d35039158b47815d55b4cf508dccc25076c4250104e4277e3555782fc81317",
+        "size": 51453272,
+        "source": "components/google-cloud-sdk-tests-20240229170130.tar.gz",
         "type": "tar"
       },
       "dependencies": [
@@ -7141,8 +7304,8 @@
       "platform": {},
       "platform_required": false,
       "version": {
-        "build_number": 20231025210228,
-        "version_string": "2023.10.25"
+        "build_number": 20240229170130,
+        "version_string": "2024.02.29"
       }
     }
   ],
@@ -7161,11 +7324,11 @@
   ],
   "post_processing_command": "components post-process",
   "release_notes_url": "RELEASE_NOTES",
-  "revision": 20231025210228,
+  "revision": 20240229170130,
   "schema_version": {
     "no_update": false,
     "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz",
     "version": 3
   },
-  "version": "452.0.1"
+  "version": "467.0.0"
 }
diff --git a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/data.nix b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/data.nix
index 13ba8b8dd6f0..09f56aa4a77d 100644
--- a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/data.nix
+++ b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/data.nix
@@ -1,32 +1,32 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "452.0.1";
+  version = "467.0.0";
   googleCloudSdkPkgs = {
     x86_64-linux =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-452.0.1-linux-x86_64.tar.gz";
-        sha256 = "0dj0hzhfvw1p74ja079jmhrhzrbsivgfm0509rxf9xvh1a0kb8zx";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-467.0.0-linux-x86_64.tar.gz";
+        sha256 = "09qkz9zw23rza5siz77m52nzfyikdzszrqsl200z2zs2cm69g50w";
       };
     x86_64-darwin =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-452.0.1-darwin-x86_64.tar.gz";
-        sha256 = "0gxz12sblc3slw9rhy0i7x8k61sakr0gwipx75h3cghf72hsx0cn";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-467.0.0-darwin-x86_64.tar.gz";
+        sha256 = "0il26ivqym4n94kjb22pcizgmy6j1p70l2yxjfrsj8i6vhwi3qbq";
       };
     aarch64-linux =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-452.0.1-linux-arm.tar.gz";
-        sha256 = "1jcacwqxa5ylffpfp5mr509imay24ddsv43l04fygzahv2sv8a2d";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-467.0.0-linux-arm.tar.gz";
+        sha256 = "1d72l35jcxg7r2r8ajhyigadj8ydp2k1g25kw6rkwvlg4whv8d7b";
       };
     aarch64-darwin =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-452.0.1-darwin-arm.tar.gz";
-        sha256 = "1mpydxqkmfrnqiifgplvc5ghn6rs4981p4pw5zgxip7khw64dfap";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-467.0.0-darwin-arm.tar.gz";
+        sha256 = "0yd9hjn8pgaih7hj3hhbl70apcmg5b3gkx758r8m9823vhqkk5wm";
       };
     i686-linux =
       {
-        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-452.0.1-linux-x86.tar.gz";
-        sha256 = "1whijjp2bn24j78rlfpp01y832fnlgj557v6fim9l78zcavgnahz";
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-467.0.0-linux-x86.tar.gz";
+        sha256 = "0wag0qjzh0m6kmpzvmzvr7sy74w20xzgysljwjfravqr1xmw9m48";
       };
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/granted/default.nix b/nixpkgs/pkgs/tools/admin/granted/default.nix
index 57eaec1acf38..4761d49e8bec 100644
--- a/nixpkgs/pkgs/tools/admin/granted/default.nix
+++ b/nixpkgs/pkgs/tools/admin/granted/default.nix
@@ -12,13 +12,13 @@
 
 buildGoModule rec {
   pname = "granted";
-  version = "0.21.0";
+  version = "0.21.1";
 
   src = fetchFromGitHub {
     owner = "common-fate";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-hNbn1bBC9dNiThwi1+Mh45s/9DAwoI8XC4ZjB6Ls8sw=";
+    sha256 = "sha256-aHqMsEqlD/a/qQEjRKQU/+9Ov5BTnptExuO0eEXvf9k=";
   };
 
   vendorHash = "sha256-I4sds5r61oGop+EtOpDgTYwLbSVBBSBmNbRU56sCYjo=";
diff --git a/nixpkgs/pkgs/tools/admin/hedgedoc-cli/default.nix b/nixpkgs/pkgs/tools/admin/hedgedoc-cli/default.nix
index 0af64919e746..ce1497b62c7c 100644
--- a/nixpkgs/pkgs/tools/admin/hedgedoc-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/hedgedoc-cli/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Hedgedoc CLI";
     homepage = "https://github.com/hedgedoc/cli";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ drupol ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/lxd/default.nix b/nixpkgs/pkgs/tools/admin/lxd/default.nix
index 65dd2c70daa2..d66fd7cb3a45 100644
--- a/nixpkgs/pkgs/tools/admin/lxd/default.nix
+++ b/nixpkgs/pkgs/tools/admin/lxd/default.nix
@@ -18,11 +18,11 @@
 
 buildGoModule rec {
   pname = "lxd-unwrapped";
-  version = "5.20";
+  version = "5.21.0";
 
   src = fetchurl {
     url = "https://github.com/canonical/lxd/releases/download/lxd-${version}/lxd-${version}.tar.gz";
-    hash = "sha256-L5WLdX9M3mTQ81eNoL2p7lllo6cOwJVu3fgofRKQFn8=";
+    hash = "sha256-vnh+8Jm4Olg+VdAPpGboLSbChdnwsU84IgyzGe4ltg8=";
   };
 
   vendorHash = null;
@@ -87,7 +87,7 @@ buildGoModule rec {
     description = "Daemon based on liblxc offering a REST API to manage containers";
     homepage = "https://ubuntu.com/lxd";
     changelog = "https://github.com/canonical/lxd/releases/tag/lxd-${version}";
-    license = with licenses; [ asl20 agpl3 ];
+    license = with licenses; [ asl20 agpl3Plus ];
     maintainers = teams.lxc.members;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/tools/admin/lxd/ui.nix b/nixpkgs/pkgs/tools/admin/lxd/ui.nix
index afcb062630a5..138e99d26890 100644
--- a/nixpkgs/pkgs/tools/admin/lxd/ui.nix
+++ b/nixpkgs/pkgs/tools/admin/lxd/ui.nix
@@ -10,18 +10,18 @@
 
 stdenv.mkDerivation rec {
   pname = "lxd-ui";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "lxd-ui";
     rev = "refs/tags/${version}";
-    hash = "sha256-3Ts6lKyzpMDVATCKD1fFIGTskWzWpQUT9S8cPFnlEOs=";
+    hash = "sha256-DJLkXZpParmEYHbTpl6KFC9l9y5DqzUTrC0pb2dJXI4=";
   };
 
   offlineCache = fetchYarnDeps {
     yarnLock = "${src}/yarn.lock";
-    hash = "sha256-0pyxwMGGqogEe1w3sail8NUDHtxLQZU9Wg8E6rQNy4o=";
+    hash = "sha256-ckTWE/czzvxbGOF8fsJ3W1sal7+NaHquoSjZSPjkGj4=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/admin/mycli/default.nix b/nixpkgs/pkgs/tools/admin/mycli/default.nix
index 8a67139bb576..58f1236db037 100644
--- a/nixpkgs/pkgs/tools/admin/mycli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/mycli/default.nix
@@ -57,6 +57,7 @@ buildPythonApplication rec {
   meta = with lib; {
     inherit version;
     description = "Command-line interface for MySQL";
+    mainProgram = "mycli";
     longDescription = ''
       Rich command-line interface for MySQL with auto-completion and
       syntax highlighting.
diff --git a/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix b/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix
index 754c8c506f66..78685e067859 100644
--- a/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix
+++ b/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix
@@ -81,6 +81,7 @@ in
     meta = with lib; {
       description = "NoMachine remote desktop client (nxplayer)";
       homepage = "https://www.nomachine.com/";
+      mainProgram = "nxplayer";
       sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = {
         fullName = "NoMachine 7 End-User License Agreement";
diff --git a/nixpkgs/pkgs/tools/admin/pgadmin/default.nix b/nixpkgs/pkgs/tools/admin/pgadmin/default.nix
index dcd250b9e837..31093f0497b4 100644
--- a/nixpkgs/pkgs/tools/admin/pgadmin/default.nix
+++ b/nixpkgs/pkgs/tools/admin/pgadmin/default.nix
@@ -14,14 +14,14 @@
 
 let
   pname = "pgadmin";
-  version = "8.3";
-  yarnHash = "sha256-nhHss4YOFu2cGkIhA909lIdnf3H3pD9BQx4PvP9+9c0=";
+  version = "8.4";
+  yarnHash = "sha256-Wizgb3WgNPYOLytEj7hBVMV/U3RqW9vhNnhQU4k+j+8=";
 
   src = fetchFromGitHub {
     owner = "pgadmin-org";
     repo = "pgadmin4";
     rev = "REL-${lib.versions.major version}_${lib.versions.minor version}";
-    hash = "sha256-2L/JLkuyjx1oD9akQULmzW0FlSq8/MQlZ1HmlO81jj0=";
+    hash = "sha256-kj/a1JjSDFnLY/UQNBqYdhs3J5wi0mlDyJ1jD/L12FM=";
   };
 
   # keep the scope, as it is used throughout the derivation and tests
@@ -54,20 +54,23 @@ pythonPackages.buildPythonApplication rec {
     # patching Makefile, so it doesn't try to build sphinx documentation here
     # (will do so later)
     substituteInPlace Makefile \
-      --replace 'LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 $(MAKE) -C docs/en_US -f Makefile.sphinx html' "true"
+      --replace-fail 'LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 $(MAKE) -C docs/en_US -f Makefile.sphinx html' "true"
 
     # fix document which refers a non-existing document and fails
     substituteInPlace docs/en_US/contributions.rst \
-      --replace "code_snippets" ""
+      --replace-fail "code_snippets" ""
     # relax dependencies
     sed 's|==|>=|g' -i requirements.txt
     # fix extra_require error with "*" in match
     sed 's|*|0|g' -i requirements.txt
+    # remove packageManager from package.json so we can work without corepack
+    substituteInPlace web/package.json \
+      --replace-fail "\"packageManager\": \"yarn@3.6.4\"" "\"\": \"\""
     substituteInPlace pkg/pip/setup_pip.py \
-      --replace "req = req.replace('psycopg[c]', 'psycopg[binary]')" "req = req"
+      --replace-fail "req = req.replace('psycopg[c]', 'psycopg[binary]')" "req = req"
     ${lib.optionalString (!server-mode) ''
     substituteInPlace web/config.py \
-      --replace "SERVER_MODE = True" "SERVER_MODE = False"
+      --replace-fail "SERVER_MODE = True" "SERVER_MODE = False"
     ''}
   '';
 
@@ -182,6 +185,7 @@ pythonPackages.buildPythonApplication rec {
     keyring
     typer
     rich
+    jsonformatter
   ];
 
   passthru.tests = {
@@ -209,8 +213,8 @@ pythonPackages.buildPythonApplication rec {
     # in /var/lib/pgadmin and /var/log/pgadmin
     # see https://github.com/pgadmin-org/pgadmin4/blob/fd1c26408bbf154fa455a49ee5c12895933833a3/web/regression/runtests.py#L217-L226
     cp -v regression/test_config.json.in regression/test_config.json
-    substituteInPlace regression/test_config.json --replace "localhost" "$PGHOST"
-    substituteInPlace regression/runtests.py --replace "builtins.SERVER_MODE = None" "builtins.SERVER_MODE = False"
+    substituteInPlace regression/test_config.json --replace-fail "localhost" "$PGHOST"
+    substituteInPlace regression/runtests.py --replace-fail "builtins.SERVER_MODE = None" "builtins.SERVER_MODE = False"
 
     ## Browser test ##
 
diff --git a/nixpkgs/pkgs/tools/admin/pgadmin/yarn.lock b/nixpkgs/pkgs/tools/admin/pgadmin/yarn.lock
index c6573efabf78..1acf9a14a07c 100644
--- a/nixpkgs/pkgs/tools/admin/pgadmin/yarn.lock
+++ b/nixpkgs/pkgs/tools/admin/pgadmin/yarn.lock
@@ -1715,6 +1715,82 @@
   resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
   integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
 
+"@codemirror/autocomplete@^6.0.0":
+  version "6.12.0"
+  resolved "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.12.0.tgz#3fa620a8a3f42ded7751749916e8375f6bbbb333"
+  integrity sha512-r4IjdYFthwbCQyvqnSlx0WBHRHi8nBvU+WjJxFUij81qsBfhNudf/XKKmmC2j3m0LaOYUQTf3qiEK1J8lO1sdg==
+  dependencies:
+    "@codemirror/language" "^6.0.0"
+    "@codemirror/state" "^6.0.0"
+    "@codemirror/view" "^6.17.0"
+    "@lezer/common" "^1.0.0"
+
+"@codemirror/commands@^6.0.0":
+  version "6.3.3"
+  resolved "https://registry.npmjs.org/@codemirror/commands/-/commands-6.3.3.tgz#03face5bf5f3de0fc4e09b177b3c91eda2ceb7e9"
+  integrity sha512-dO4hcF0fGT9tu1Pj1D2PvGvxjeGkbC6RGcZw6Qs74TH+Ed1gw98jmUgd2axWvIZEqTeTuFrg1lEB1KV6cK9h1A==
+  dependencies:
+    "@codemirror/language" "^6.0.0"
+    "@codemirror/state" "^6.4.0"
+    "@codemirror/view" "^6.0.0"
+    "@lezer/common" "^1.1.0"
+
+"@codemirror/lang-sql@^6.5.5":
+  version "6.5.5"
+  resolved "https://registry.npmjs.org/@codemirror/lang-sql/-/lang-sql-6.5.5.tgz#85619f4ea6738c07c0241b19c62d8ef86678e672"
+  integrity sha512-DvOaP2RXLb2xlxJxxydTFfwyYw5YDqEFea6aAfgh9UH0kUD6J1KFZ0xPgPpw1eo/5s2w3L6uh5PVR7GM23GxkQ==
+  dependencies:
+    "@codemirror/autocomplete" "^6.0.0"
+    "@codemirror/language" "^6.0.0"
+    "@codemirror/state" "^6.0.0"
+    "@lezer/common" "^1.2.0"
+    "@lezer/highlight" "^1.0.0"
+    "@lezer/lr" "^1.0.0"
+
+"@codemirror/language@^6.0.0":
+  version "6.10.0"
+  resolved "https://registry.npmjs.org/@codemirror/language/-/language-6.10.0.tgz#2d0e818716825ee2ed0dacd04595eaa61bae8f23"
+  integrity sha512-2vaNn9aPGCRFKWcHPFksctzJ8yS5p7YoaT+jHpc0UGKzNuAIx4qy6R5wiqbP+heEEdyaABA582mNqSHzSoYdmg==
+  dependencies:
+    "@codemirror/state" "^6.0.0"
+    "@codemirror/view" "^6.23.0"
+    "@lezer/common" "^1.1.0"
+    "@lezer/highlight" "^1.0.0"
+    "@lezer/lr" "^1.0.0"
+    style-mod "^4.0.0"
+
+"@codemirror/lint@^6.0.0":
+  version "6.4.2"
+  resolved "https://registry.npmjs.org/@codemirror/lint/-/lint-6.4.2.tgz#c13be5320bde9707efdc94e8bcd3c698abae0b92"
+  integrity sha512-wzRkluWb1ptPKdzlsrbwwjYCPLgzU6N88YBAmlZi8WFyuiEduSd05MnJYNogzyc8rPK7pj6m95ptUApc8sHKVA==
+  dependencies:
+    "@codemirror/state" "^6.0.0"
+    "@codemirror/view" "^6.0.0"
+    crelt "^1.0.5"
+
+"@codemirror/search@^6.0.0":
+  version "6.5.5"
+  resolved "https://registry.npmjs.org/@codemirror/search/-/search-6.5.5.tgz#cf97e201da364da2285c2a250167af25bbd2a4a2"
+  integrity sha512-PIEN3Ke1buPod2EHbJsoQwlbpkz30qGZKcnmH1eihq9+bPQx8gelauUwLYaY4vBOuBAuEhmpDLii4rj/uO0yMA==
+  dependencies:
+    "@codemirror/state" "^6.0.0"
+    "@codemirror/view" "^6.0.0"
+    crelt "^1.0.5"
+
+"@codemirror/state@^6.0.0", "@codemirror/state@^6.4.0":
+  version "6.4.0"
+  resolved "https://registry.npmjs.org/@codemirror/state/-/state-6.4.0.tgz#8bc3e096c84360b34525a84696a84f86b305363a"
+  integrity sha512-hm8XshYj5Fo30Bb922QX9hXB/bxOAVH+qaqHBzw5TKa72vOeslyGwd4X8M0c1dJ9JqxlaMceOQ8RsL9tC7gU0A==
+
+"@codemirror/view@^6.0.0", "@codemirror/view@^6.17.0", "@codemirror/view@^6.23.0":
+  version "6.23.1"
+  resolved "https://registry.npmjs.org/@codemirror/view/-/view-6.23.1.tgz#1ce3039a588d6b93f153b7c4c035c2075ede34a6"
+  integrity sha512-J2Xnn5lFYT1ZN/5ewEoMBCmLlL71lZ3mBdb7cUEuHhX2ESoSrNEucpsDXpX22EuTGm9LOgC9v4Z0wx+Ez8QmGA==
+  dependencies:
+    "@codemirror/state" "^6.4.0"
+    style-mod "^4.1.0"
+    w3c-keyname "^2.2.4"
+
 "@date-io/core@1.x", "@date-io/core@^1.3.13", "@date-io/core@^1.3.6":
   version "1.3.13"
   resolved "https://registry.npmjs.org/@date-io/core/-/core-1.3.13.tgz#90c71da493f20204b7a972929cc5c482d078b3fa"
@@ -2286,6 +2362,25 @@
     "@jridgewell/resolve-uri" "3.1.0"
     "@jridgewell/sourcemap-codec" "1.4.14"
 
+"@lezer/common@^1.0.0", "@lezer/common@^1.1.0", "@lezer/common@^1.2.0":
+  version "1.2.1"
+  resolved "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz#198b278b7869668e1bebbe687586e12a42731049"
+  integrity sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==
+
+"@lezer/highlight@^1.0.0":
+  version "1.2.0"
+  resolved "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.0.tgz#e5898c3644208b4b589084089dceeea2966f7780"
+  integrity sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==
+  dependencies:
+    "@lezer/common" "^1.0.0"
+
+"@lezer/lr@^1.0.0":
+  version "1.4.0"
+  resolved "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.0.tgz#ed52a75dbbfbb0d1eb63710ea84c35ee647cb67e"
+  integrity sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==
+  dependencies:
+    "@lezer/common" "^1.0.0"
+
 "@material-ui/core@4.12.4":
   version "4.12.4"
   resolved "https://registry.npmjs.org/@material-ui/core/-/core-4.12.4.tgz#4ac17488e8fcaf55eb6a7f5efb2a131e10138a73"
@@ -4527,10 +4622,18 @@ co@^4.6.0:
   resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
   integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
 
-codemirror@^5.59.2:
-  version "5.65.13"
-  resolved "https://registry.npmjs.org/codemirror/-/codemirror-5.65.13.tgz#c098a6f409db8b5a7c5722788bd9fa3bb2367f2e"
-  integrity sha512-SVWEzKXmbHmTQQWaz03Shrh4nybG0wXx2MEu3FO4ezbPW8IbnZEd5iGHGEffSUaitKYa3i+pHpBsSvw8sPHtzg==
+codemirror@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz#62b91142d45904547ee3e0e0e4c1a79158035a29"
+  integrity sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==
+  dependencies:
+    "@codemirror/autocomplete" "^6.0.0"
+    "@codemirror/commands" "^6.0.0"
+    "@codemirror/language" "^6.0.0"
+    "@codemirror/lint" "^6.0.0"
+    "@codemirror/search" "^6.0.0"
+    "@codemirror/state" "^6.0.0"
+    "@codemirror/view" "^6.0.0"
 
 collect-v8-coverage@^1.0.0:
   version "1.0.2"
@@ -4797,6 +4900,11 @@ create-ecdh@^4.0.0:
     safe-buffer "^5.0.1"
     sha.js "^2.4.8"
 
+crelt@^1.0.5:
+  version "1.0.6"
+  resolved "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz#7cc898ea74e190fb6ef9dae57f8f81cf7302df72"
+  integrity sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==
+
 cross-env@^7.0.3:
   version "7.0.3"
   resolved "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
@@ -6837,6 +6945,11 @@ hosted-git-info@^4.0.1:
   dependencies:
     lru-cache "^6.0.0"
 
+hotkeys-js@^3.13.3:
+  version "3.13.3"
+  resolved "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-3.13.3.tgz#b0a9f243bb1e9cacb93d3772a9e1f6013c0698a3"
+  integrity sha512-IEiMBNRJZMhWyNDsvww8LYC8vZYyj2/w2GgXPg0ljq/K3SYvOJH6NRMqzF7z2Fwaq2AzKSvmvECREzFleKSeow==
+
 html-dom-parser@5.0.4:
   version "5.0.4"
   resolved "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-5.0.4.tgz#2941a762317d088e747db31c8cf290987ec30a55"
@@ -8918,11 +9031,6 @@ moo@^0.5.0:
   resolved "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c"
   integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==
 
-mousetrap@^1.6.3:
-  version "1.6.5"
-  resolved "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9"
-  integrity sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==
-
 mozjpeg@^8.0.0:
   version "8.0.0"
   resolved "https://registry.npmjs.org/mozjpeg/-/mozjpeg-8.0.0.tgz#cd990d96581626ca64b877146ce22ba00b3b308c"
@@ -11619,6 +11727,11 @@ style-loader@^3.3.2:
   resolved "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff"
   integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==
 
+"style-mod@^4.0.0", "style-mod@^4.1.0":
+  version "4.1.0"
+  resolved "https://registry.npmjs.org/style-mod/-/style-mod-4.1.0.tgz#a313a14f4ae8bb4d52878c0053c4327fb787ec09"
+  integrity sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==
+
 style-to-js@1.1.9:
   version "1.1.9"
   resolved "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.9.tgz#5bdc23ba7624016094a19d6ea90fa3f98bee34c4"
@@ -12354,6 +12467,11 @@ vm-browserify@^1.0.0:
   resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
   integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
 
+w3c-keyname@^2.2.4:
+  version "2.2.8"
+  resolved "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz#7b17c8c6883d4e8b86ac8aba79d39e880f8869c5"
+  integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==
+
 w3c-xmlserializer@^4.0.0:
   version "4.0.0"
   resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073"
diff --git a/nixpkgs/pkgs/tools/admin/proxmove/default.nix b/nixpkgs/pkgs/tools/admin/proxmove/default.nix
index 6f20e5fe603f..21055de12b6c 100644
--- a/nixpkgs/pkgs/tools/admin/proxmove/default.nix
+++ b/nixpkgs/pkgs/tools/admin/proxmove/default.nix
@@ -34,6 +34,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "The Proxmox VM migrator: migrates VMs between different Proxmox VE clusters";
+    mainProgram = "proxmove";
     homepage = "https://github.com/ossobv/proxmove";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/admin/pulumi-bin/data.nix b/nixpkgs/pkgs/tools/admin/pulumi-bin/data.nix
index c5862887c553..fa059873593f 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi-bin/data.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi-bin/data.nix
@@ -1,12 +1,12 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "3.108.1";
+  version = "3.111.1";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.108.1-linux-x64.tar.gz";
-        sha256 = "179hffqii76pc1ir8819af5vy6iiyygx5k33zpff0pg5bc6xm4w0";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.111.1-linux-x64.tar.gz";
+        sha256 = "1hkj2dkpxp2migg1xh3vk42k1yq7y1bhchvkjd3vxbsd86llkwjz";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.12.0-linux-amd64.tar.gz";
@@ -17,48 +17,48 @@
         sha256 = "17c5960kcjzz3hl4nwh41qkpj67072cfs2bxbqin9b2b33x9bfvy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.49.1-linux-amd64.tar.gz";
-        sha256 = "17isifx3ysxdi4lrl8blkpzvcxn2yzxvyx3xsr22mqna57lzvh3l";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.50.0-linux-amd64.tar.gz";
+        sha256 = "10i4fw6f21mf0mrmhjmjhbf03p5lqp8lvdkasnmdkq52j0s1qrr2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.1.4-linux-amd64.tar.gz";
-        sha256 = "0ck22ygb0dhkhpp47fwy7zq30i0cnqs7c76lfmzxvlb7435h5j7r";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.3.1-linux-amd64.tar.gz";
+        sha256 = "19c63g7nahvpr73js9r3f4n6y7j3zxywrbzhnvnzysix05c23n3z";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.1.2-linux-amd64.tar.gz";
-        sha256 = "06gz2xqmwms01r4p59l9yvv3w3jvmlyaqr8y2z91hn0im4l8df2b";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.1-linux-amd64.tar.gz";
+        sha256 = "0984gpc5ds1bycvl1jwd3ifl6933vkd32w2mbyn3ik13wzxqm3q0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.24.0-linux-amd64.tar.gz";
-        sha256 = "1rimqplyil0r84n7yw9nzjx8y4r9k6fnyp7my1qb1wqy6w8sx5y4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.27.0-linux-amd64.tar.gz";
+        sha256 = "0dcyg4d50x5fkzqmnhw7mm8bgcs2zxph6bdjfdq2cxi28nzzg1ac";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.47.2-linux-amd64.tar.gz";
         sha256 = "0d2swa7irx1xr18gs4p3can1bp1pckk5cggfl5cdfkrz966rv8cb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.15.0-linux-amd64.tar.gz";
-        sha256 = "0jaqkf7ibp0vxrvz6imaal9iyf60p6hhay7vmh62vmm0jgdv1ply";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-linux-amd64.tar.gz";
+        sha256 = "1d6i9p3lw2hzn2q7ja3cqh00vx7ihm5lhs6pg9468hag8wvk230g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.67.1-linux-amd64.tar.gz";
-        sha256 = "01yh8cz2nq27ir6smv6j9rhnv796id961grd2ayjyjcrpin6b0pd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.69.0-linux-amd64.tar.gz";
+        sha256 = "04jvyc63r7lxiy55nvh06ma8ndrv0b4kb3lbzz4djdfa613xzwjd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.21.0-linux-amd64.tar.gz";
-        sha256 = "0flrznd119ld5py2aj69adyfwrrx4vp7y7hdqdq8r5sjbvlz7hi0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.22.0-linux-amd64.tar.gz";
+        sha256 = "04b5b2dykbmm35j4vkqczh2pbcsq7lby905a14f73fh69lscs00x";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.1-linux-amd64.tar.gz";
         sha256 = "1rjh73d5jq2p9ll6xann3mns4dsnb8jgnkndjxbgcpv45i0k1ih6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.25.1-linux-amd64.tar.gz";
-        sha256 = "0afs9wdp11sxps0hrwwan1h44cxa0z52yhh43rl6rg13chhqlhk8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.27.0-linux-amd64.tar.gz";
+        sha256 = "0x861p983val0ww0l0f7w75fw7rlhvpr300xng6klr5f1qwgpfqy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.25.2-linux-amd64.tar.gz";
-        sha256 = "0rjylfka3cal5ailkvkwyjf83gyh85zya2asswmvvnb0llfhc33i";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.27.0-linux-amd64.tar.gz";
+        sha256 = "1p2xh52nrgkxzdg7pyyylf4zkh8cyn1663mdb8n93rx8fczq0cpl";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.1-linux-amd64.tar.gz";
@@ -69,16 +69,16 @@
         sha256 = "0hnardid0kbzy65dmn7vz8ddy5hq78nf2871zz6srf2hfyiv7qa4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.4.2-linux-amd64.tar.gz";
-        sha256 = "0f4czs3hjibmwvswm2zgjq3nys2sp4lr7xy2rpm4k7msdcsxk5kb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.5.1-linux-amd64.tar.gz";
+        sha256 = "0vjd2y8h4m4j7v61wqwzrdgchqpz1nlbrvvrah06k8l9ci2hpml1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.11.2-linux-amd64.tar.gz";
-        sha256 = "0hnhgiss847s7znii3fd3c0w1i7f582khrcvb4a422ws89nrf070";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.14.0-linux-amd64.tar.gz";
+        sha256 = "1wjhym8mz2nbw458g72zwsnm078iwyvcidx38wpc4y32nfx07082";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.0.0-linux-amd64.tar.gz";
-        sha256 = "1093xzalzxx6dgsif9a97inll205rp298win637c70d4x68ab74w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.1.0-linux-amd64.tar.gz";
+        sha256 = "1mixfyimim13iwf17rrf76bh7jjr64n58sbcnaikpg2kq63ab2v2";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.9.0-linux-amd64.tar.gz";
@@ -89,16 +89,16 @@
         sha256 = "1zra1ck64gs4nwqf62ksfmpbx24lxw6vsgi47j4v8q051m89fgq3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.17.0-linux-amd64.tar.gz";
-        sha256 = "0pz7jga19pwwx7ba5364b6sv1zsmxvnldakdh6641fqp9wl6smxp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.17.1-linux-amd64.tar.gz";
+        sha256 = "1i4hgvx94jdx5np5cy7pm36vz8l6hkn90pnhi1knwmak63mf4i0i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.8.1-linux-amd64.tar.gz";
-        sha256 = "0fsif489vj0cnag7q1ap7hb2lhfrhihbpnjygghwlqdf9nrcr54i";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.9.1-linux-amd64.tar.gz";
+        sha256 = "037ryw3w82pg9jvym5ha2l65gx693mn42ffqg3nb1bh8pc5m688d";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.15.0-linux-amd64.tar.gz";
-        sha256 = "10p4gsz6qj93fd0f9d1pvql501gpyrl684465b51xxrh29506nwk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.16.0-linux-amd64.tar.gz";
+        sha256 = "08r17092rcvpqsmi6s2khjql71fbgrwyslknirdyh77ix7486kgm";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.1-linux-amd64.tar.gz";
@@ -121,16 +121,16 @@
         sha256 = "1wvdncw149ch6hi3fw7fibk78j2clbxlwmf4hivai7zhh8ikg1nq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.49.0-linux-amd64.tar.gz";
-        sha256 = "1xajinvla6hw6n6n9iawfyq2pmd22k0xy1l88vh8bhp3310hjfns";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.50.2-linux-amd64.tar.gz";
+        sha256 = "1fihr9kilipd3lycl5m0vrf8l8658b1pm8mywsnk5wlksk1bf665";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.68.0-linux-amd64.tar.gz";
-        sha256 = "018ynwc7l2xvqq1n64ny3rlv37nzbx1b0c2j1jla7r35a4vjym8f";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.69.0-linux-amd64.tar.gz";
+        sha256 = "0qmh81kvqprmp1shml183qc6mdq76p6an7cm0b1qg7zyabg7qbrz";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.2-linux-amd64.tar.gz";
-        sha256 = "0jiny0s6hvzzcgv7zkdmc4d0rdcwpq49dz7fqsaz81maz7kck8a5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.3-linux-amd64.tar.gz";
+        sha256 = "1a0ymll7ba2rm4cf4mrx3plg5b6gjnn121cwwvdrvh6lh2s8wpfg";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.15.0-linux-amd64.tar.gz";
@@ -148,23 +148,14 @@
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.7.0-linux-amd64.tar.gz";
         sha256 = "0w7cgafkz1r55bz8n51v2rqhmmxzrf7ma60awzlfd2apyihghxyp";
       }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.9.2-linux-amd64.tar.gz";
-        sha256 = "0jqbhqiws4v9ff5xakk5wnxghnnck4qaqvyxc2l246jsl9yy3z85";
-      }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.0-linux-amd64.tar.gz";
-        sha256 = "1qi63mpv6dhmld6a8siikgjyhvyjzl9bcrc55hb93wbk028lncnh";
-      }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-linux-amd64.tar.gz";
-        sha256 = "14qsnjafhd8ppachxr7j9541p5rbf1cakqlr7mra86fli1r49z9p";
-      }
+      # pulumi-resource-vsphere skipped (does not exist on remote)
+      # pulumi-resource-wavefront skipped (does not exist on remote)
+      # pulumi-resource-yandex skipped (does not exist on remote)
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.108.1-darwin-x64.tar.gz";
-        sha256 = "1993jk9wraxxds7phlpp2kwhn80k6hvf54nb5nj9883nsm5n4syz";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.111.1-darwin-x64.tar.gz";
+        sha256 = "0vqwgx29z4rpmlxjqjxaixhijha6si0y01ibnr4wiwmm4y6ls578";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.12.0-darwin-amd64.tar.gz";
@@ -175,48 +166,48 @@
         sha256 = "05x8allllb6spjkjf9lchk1pyprj356s0kgy2rdz24knvr2rxr3r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.49.1-darwin-amd64.tar.gz";
-        sha256 = "08ji9qkl1njci37a2hsvi5gj28x986a4xlkc7z9y2n0vzr9cy3rl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.50.0-darwin-amd64.tar.gz";
+        sha256 = "1mpvr73nnaznm79by25za2lg6yqr25kz888fsyr0f26fjg1pyayz";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.1.4-darwin-amd64.tar.gz";
-        sha256 = "0ir0pp8rc7mh5rwlcz6jn1s8icw7h09rlqmh0gpsg9blhsfqzdka";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.3.1-darwin-amd64.tar.gz";
+        sha256 = "0zdvggqmg6ddgyhnb88w97c53kh5mc885478g1ckbryxzsqhasi0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.1.2-darwin-amd64.tar.gz";
-        sha256 = "1wlw4lvdy63fw2vpv0cg3g5ffy1frr8dfbvnr1avashw1bvmh6yd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.1-darwin-amd64.tar.gz";
+        sha256 = "0369vlly2x6sl59b4qha55yhhyjjpx38vlkmsbbqzla3da7zabf0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.24.0-darwin-amd64.tar.gz";
-        sha256 = "0zbappmx8za45nn0pn2vwab5z7zbx0yw2bfrlnpnmq6bflgv9mg2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.27.0-darwin-amd64.tar.gz";
+        sha256 = "0xx4yw5zl4lnswnz4w4qrxgdiy400c8p7bsr1rqz1zmc9bqm43ng";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.47.2-darwin-amd64.tar.gz";
         sha256 = "1bjvbqdhd49ayxcv60rii4y3ngafjfzz0w9flra9wkh8hv8z1xxz";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.15.0-darwin-amd64.tar.gz";
-        sha256 = "11whky196lqgj8bgzxixd1m39jqw3fs9if8knmwcr7zmd3jyf80w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-darwin-amd64.tar.gz";
+        sha256 = "1gzb7srxdzz1vhrzzzfxahkzr26b3smd62l70dwn605cich3vwyw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.67.1-darwin-amd64.tar.gz";
-        sha256 = "05ll4cbmvc61jx15y37n79bslqkxc5879kjg4i86l3cldgmazjdi";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.69.0-darwin-amd64.tar.gz";
+        sha256 = "0iffp6czzks4ak979dcgg8cjvvhv5mh57cplk0aq79ssjhppsbcj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.21.0-darwin-amd64.tar.gz";
-        sha256 = "0jl9l1g8n4m4faciil33v9n0m8glmgjmax9dilrx8krzp00zjhbq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.22.0-darwin-amd64.tar.gz";
+        sha256 = "1a5i65hnssnpz7w6wwpljyjx55rc99ycn0ygswl56mfg2sv2yk0n";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.1-darwin-amd64.tar.gz";
         sha256 = "1bvwgn823zwqs8wmzwsxc0zf0pdmk7ykh5qvnffwrixvhmdx68a0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.25.1-darwin-amd64.tar.gz";
-        sha256 = "11971fwsv0i6nmmxzg9m93l48xndi9x96zibjbjmwjxnr419s5rm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.27.0-darwin-amd64.tar.gz";
+        sha256 = "0nnp4nq5sj85rf33qqn7dgfva1d2l5i8vs7flac1mj9sdxqdz46b";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.25.2-darwin-amd64.tar.gz";
-        sha256 = "1q0j504v5wvxxqyd5j2y7ak4ivpkyhwpqhv4lcscq241k64dc9fx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.27.0-darwin-amd64.tar.gz";
+        sha256 = "1r09n56kc0ada99n1g93i23shi2csjia5jiq5jkzkb5wr0wg4syb";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.1-darwin-amd64.tar.gz";
@@ -227,16 +218,16 @@
         sha256 = "1m5lh59h7nck1flzxs9m4n0ag0klk3jmnpf7hc509vffxs89xnjq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.4.2-darwin-amd64.tar.gz";
-        sha256 = "03xk7hkcs0f8684ll7f7z7z14zwj66qnps0pcsd7r34s7qyhy33g";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.5.1-darwin-amd64.tar.gz";
+        sha256 = "1c5wf2ksp7f02x82swjd7gq1d072j4zsyiyllrrazyvv8310zyig";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.11.2-darwin-amd64.tar.gz";
-        sha256 = "1s08pdqba2i81ijm4bm6qm4a1biy53hrxv964l9gv5gf45jm3md7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.14.0-darwin-amd64.tar.gz";
+        sha256 = "1gl8f08mgar8sr94nxarnpd6iyg1xkkdmrvzzpxiz5dr2lxw8nig";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.0.0-darwin-amd64.tar.gz";
-        sha256 = "17c5qdpfzpxkmcd9wvkl7iba6g857fic7j8gbgdvrsrdjg0rvrsz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.1.0-darwin-amd64.tar.gz";
+        sha256 = "17d2x277i779cympfk2gafn6725q77lbxkj3naymhipix57ii5za";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.9.0-darwin-amd64.tar.gz";
@@ -247,16 +238,16 @@
         sha256 = "0ddd0pgpyywq291r9q8w6bn41r2px595017iihx4n2cnb1c4v6d5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.17.0-darwin-amd64.tar.gz";
-        sha256 = "18w9x6ym08ljr71kl82qb017cxzfbpkhbvljb1ki8nrk32s7rljy";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.17.1-darwin-amd64.tar.gz";
+        sha256 = "1agjwhpn7mkz1gynb4a58q66xcbqnyh79b0cj4l7xpmnv6xs7vv3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.8.1-darwin-amd64.tar.gz";
-        sha256 = "0r76x8339mdlmi7d4sxfnz3lisj5gsscdckv7ca8i5zs288yifhv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.9.1-darwin-amd64.tar.gz";
+        sha256 = "0zydvslq83rr4ihrpxp7gyks08cgmdqwhxcjfyrr1yc24vcscg8x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.15.0-darwin-amd64.tar.gz";
-        sha256 = "1zn2wz1adypy2cr8wl60rsry7m923zyyl2kkf19j5326rbxhki37";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.16.0-darwin-amd64.tar.gz";
+        sha256 = "0c0ns6r3m2s6ibw4bis9wxbg4wx2l3c87wbxlss7dfv9li32ryln";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.1-darwin-amd64.tar.gz";
@@ -279,16 +270,16 @@
         sha256 = "0xgcvika75bbyaabjxi1jzmv0w86i0nzixfc50x4crz0969qncz4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.49.0-darwin-amd64.tar.gz";
-        sha256 = "061p37hwl0x9vh516lk54l4wf1yhfi8r57z94i4gsckv7dc7r8dd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.50.2-darwin-amd64.tar.gz";
+        sha256 = "0n0yd8hg10qfxvb6y5hci60n3520w5pidjzw43ih35dj84f0y23s";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.68.0-darwin-amd64.tar.gz";
-        sha256 = "1jy9ybxsplz7zapw56l0g11sfdzjf6xg1q7cj4js95fvisd2y0a4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.69.0-darwin-amd64.tar.gz";
+        sha256 = "0mjcsgcwb8mqy5si5kj8l96ig6ccjwfplmr8kwrg22bj7g7vidlz";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.2-darwin-amd64.tar.gz";
-        sha256 = "01f6c3zgmlmips4b5ysdp2vyflykq9bi1r1pbmqh05b6j35r90km";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.3-darwin-amd64.tar.gz";
+        sha256 = "1513v3r6rwb11agv2sxgxfsi8r8dkna0v3dji7pr8mk4qjcg5xca";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.15.0-darwin-amd64.tar.gz";
@@ -306,23 +297,14 @@
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.7.0-darwin-amd64.tar.gz";
         sha256 = "1pvbcyw1l2b27hn48klc2fj3is2y3z1dj90ac4kkqi2ag4xj45vx";
       }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.9.2-darwin-amd64.tar.gz";
-        sha256 = "0ik8dmc9769dgpflvlzk51ibf8bmsn68dfzm4v6dz0bsaqnam6xd";
-      }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.0-darwin-amd64.tar.gz";
-        sha256 = "1x574bzzv5pp0va527k1554vah95038abm9y4d79wvzfyh9fgv65";
-      }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-darwin-amd64.tar.gz";
-        sha256 = "11wm9c125154brisncm9cgb41nbjl9q9h4bq6z0ym8v681qq0fc4";
-      }
+      # pulumi-resource-vsphere skipped (does not exist on remote)
+      # pulumi-resource-wavefront skipped (does not exist on remote)
+      # pulumi-resource-yandex skipped (does not exist on remote)
     ];
     aarch64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.108.1-linux-arm64.tar.gz";
-        sha256 = "0qf4lbldkc04jx13a4fdn6i2s1wfsa8x9c74fzplk75mwkv3fk1z";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.111.1-linux-arm64.tar.gz";
+        sha256 = "0nahz89vw9gkgszdcv9v9d658x43jzvk547kq6jpsgnzjligf41q";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.12.0-linux-arm64.tar.gz";
@@ -333,48 +315,48 @@
         sha256 = "0kb7hdciy8i91kmfndriav7sm05r1jkam7i634b5r6d7agdlvr2h";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.49.1-linux-arm64.tar.gz";
-        sha256 = "0r69ar70k0zyglyxh9v2ilv5xiks9dqfqi0fvy8lc8zkgrcwfb19";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.50.0-linux-arm64.tar.gz";
+        sha256 = "0l34v4r0m8agc8iz06p5gdziavq6n6y8lzrhcs5pdawapynrll6r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.1.4-linux-arm64.tar.gz";
-        sha256 = "0s49id8kd357w7dh7a011l6ak5v8xd0b85p3jb48b8vaggfbs3p8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.3.1-linux-arm64.tar.gz";
+        sha256 = "06sdqjplsqwspdx9b587ify0fsb2sgz2fcpf5ssmvv2ky0ng2mcc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.1.2-linux-arm64.tar.gz";
-        sha256 = "14wplnr5axic2a9skx0y6rjq8si02qwpadpcl978vchll0f4g1pz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.1-linux-arm64.tar.gz";
+        sha256 = "10iaa1w7a0xbp15hyfl3slksg7rss04jcchws1z3lqddfn5xdcf2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.24.0-linux-arm64.tar.gz";
-        sha256 = "15q20as4nmrcxf5dg4ahz3x4ffsnmzi6fcaiv9qn8ln30r5cvf98";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.27.0-linux-arm64.tar.gz";
+        sha256 = "1v3h9j9bxqnjg8fj4k75p96sglnnkw5jziyfvbzhcbd11fcvaffs";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.47.2-linux-arm64.tar.gz";
         sha256 = "0pzbsz7c6q9x3xfpcc8yb6d14hk514yr03p3nfsvmp2nb7224r6s";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.15.0-linux-arm64.tar.gz";
-        sha256 = "1fcpf2x9dlxk2s06pgvqwsmjpwlv47q666xpj6cmx9cybmnhgjn4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-linux-arm64.tar.gz";
+        sha256 = "0s4pxkj1fni8c0r8v8kqzl7agcy93m71l8kpmb3630q4syddzmqb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.67.1-linux-arm64.tar.gz";
-        sha256 = "1vzfdagcqm5im4zn7dlqhmz0wjk8aq59yplzqfif411g09zhnr6j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.69.0-linux-arm64.tar.gz";
+        sha256 = "0wak5h81wbjg7v5pjsj9614c0263a94qhhajfvk260m31xm34drc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.21.0-linux-arm64.tar.gz";
-        sha256 = "1chl850k1p8qpxydwkcqrx9s6xq50v616yfmrb7xrk9ms3zxf905";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.22.0-linux-arm64.tar.gz";
+        sha256 = "16alhhxl11xaygjsignk7qzq1vn7fi7vj0nxn5w9m9bsl74f6iak";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.1-linux-arm64.tar.gz";
         sha256 = "0jranh92131jny1s261flc19a30rgc0hf0xkz0k51cs713k3h6pn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.25.1-linux-arm64.tar.gz";
-        sha256 = "0hmda8dhak4d5kbw30acbdhn1nczjjwpn3m99rcjjrmnvfirpqdl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.27.0-linux-arm64.tar.gz";
+        sha256 = "1l95j1y7abbpylsxbsi7mi543qjhmg6i5cwdwmn5303dakkkgq2h";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.25.2-linux-arm64.tar.gz";
-        sha256 = "1qsi84xbb9f10bb11x2hvslfx2knw1pnd06k5kdx924vq71igfbj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.27.0-linux-arm64.tar.gz";
+        sha256 = "1z0z7ksxbc8gil60c336hlpn13gxj49s9fcjsr1b4qx130ldccv3";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.1-linux-arm64.tar.gz";
@@ -385,16 +367,16 @@
         sha256 = "111pia2f5xwkwaqs6p90ri29l5b3ivmahsa1bji4fwyyjyp22h4r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.4.2-linux-arm64.tar.gz";
-        sha256 = "1kf88g5jm3xr5b35is8h0rqxzy79az3s90givsnr7x6xmm6favqc";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.5.1-linux-arm64.tar.gz";
+        sha256 = "1cx7b7nxmjng8pff84yf0jhdmnmld5g09a80999ah90p54xy4zww";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.11.2-linux-arm64.tar.gz";
-        sha256 = "0dp11yirgfr45pqbqva5zapcgzb7gsf53al389dnr00cizfihn1r";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.14.0-linux-arm64.tar.gz";
+        sha256 = "1y8ky2ymrw6d71zqd61c2nn07qb3sc7vrksk6n1jpbpnn0rl0v99";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.0.0-linux-arm64.tar.gz";
-        sha256 = "1nlrwp4rhyp04lzqgxh8gam7vz5ivb4ynznzwirjxf2x48grk834";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.1.0-linux-arm64.tar.gz";
+        sha256 = "1qs4lfis06wqmss27b3q68d76g3lxx0c1ipsg33lvmbqvyrxd18w";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.9.0-linux-arm64.tar.gz";
@@ -405,16 +387,16 @@
         sha256 = "0d8m2krbzxjhfm82dgf8p4vm3kk9gk98l798q4ayjrddqqb4mxq4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.17.0-linux-arm64.tar.gz";
-        sha256 = "1shra5wq8zx4l9b3sp6yklhi8hbd8r2ypay9nf4jgwnc6ppql102";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.17.1-linux-arm64.tar.gz";
+        sha256 = "06a6iwc2xcppp26bmyxi0cxswmpxkpkk93zx4qcq9vhx2228fiq9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.8.1-linux-arm64.tar.gz";
-        sha256 = "10kk7m7nisd75nb0f689ldfprx56asxfsc785gsnssjjjhy40vvr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.9.1-linux-arm64.tar.gz";
+        sha256 = "1r8ld65774vm1gacbf26alin9pa0c69gj2829gvv8ihhfavrqnyi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.15.0-linux-arm64.tar.gz";
-        sha256 = "1alll2yq4h7qb2zc4n9pj9rvqv8mv5v9jrxgnrsw7mha3cnjysa4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.16.0-linux-arm64.tar.gz";
+        sha256 = "057gwjac2lkgrnpm0vg8z8dzg7n0jhyrdmq4c6djympc0hd6m20z";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.1-linux-arm64.tar.gz";
@@ -437,16 +419,16 @@
         sha256 = "0fp9z7mfpprs4680s350wyys6a0jwx4s455jqr938zxnx8s3rhfg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.49.0-linux-arm64.tar.gz";
-        sha256 = "04khh89lbdk6dv5vx26sl56cmydkh21mb5nx39hw1bry98qbz7ks";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.50.2-linux-arm64.tar.gz";
+        sha256 = "1ssm84izdqzaymw1w3q9b2lkw35brysii73xhw7dgcazhgagfd1w";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.68.0-linux-arm64.tar.gz";
-        sha256 = "1nwm69fblmll2d3hgnl5d98x1xhjl49l5cdc8smldr25i5zp5zj2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.69.0-linux-arm64.tar.gz";
+        sha256 = "0ns90ky01kys22dwhkmb4dwax1gzyr8jclczx1fc5d9xvl5cssiy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.2-linux-arm64.tar.gz";
-        sha256 = "0m07iydqlampsx2zdgliyqa5h1zwj42p865anak37i59j1cx7ash";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.3-linux-arm64.tar.gz";
+        sha256 = "1a9gx5pzsli33gxcfmp0fh784x42y5im6zm5igcjgmrffmg5vqyc";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.15.0-linux-arm64.tar.gz";
@@ -464,23 +446,14 @@
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.7.0-linux-arm64.tar.gz";
         sha256 = "017ff9x7s4yvsrf4ypsyaz934r9jm954080gn5535w1694k96wbn";
       }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.9.2-linux-arm64.tar.gz";
-        sha256 = "0q958skqldk5gfd863vizpndls5w18k256v21a0i7hw6cg2ny0qj";
-      }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.0-linux-arm64.tar.gz";
-        sha256 = "07pjnqsrznxi8phm1i1bhkdsc1639q4kkbz9a5zzkgb0rs02jzzl";
-      }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-linux-arm64.tar.gz";
-        sha256 = "0fd3hgvkr3ch2r5hpmi7h70w4hkbjdyc7z534h151pyc5ssxw8bd";
-      }
+      # pulumi-resource-vsphere skipped (does not exist on remote)
+      # pulumi-resource-wavefront skipped (does not exist on remote)
+      # pulumi-resource-yandex skipped (does not exist on remote)
     ];
     aarch64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.108.1-darwin-arm64.tar.gz";
-        sha256 = "13qyf4cg3ksflx1ax5pzn1a75r9zk89a41ywp08s7vfacmmvm6ym";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.111.1-darwin-arm64.tar.gz";
+        sha256 = "0vs7mnp16bc9zj74v2ibn4nsjp43hjqpsdkgx3xhvb021b6lvnh0";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.12.0-darwin-arm64.tar.gz";
@@ -491,48 +464,48 @@
         sha256 = "1b47n69nc5nicagwdxq793a6nmbrg15690i8q40nixcf7k48krai";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.49.1-darwin-arm64.tar.gz";
-        sha256 = "0vwpr8fawr8gag8nrsi0dl4vw0dczqa4rm5dflgf2v5gfdhclsd6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.50.0-darwin-arm64.tar.gz";
+        sha256 = "1jsngq7jaknkrpyb3qgpz0vbdq62js4rjd26qrdag9r69swc3wkb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.1.4-darwin-arm64.tar.gz";
-        sha256 = "09fshawmwiiphp6dfaa65g2lcixghb0xfh8pl1xjrdp2851268qr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.3.1-darwin-arm64.tar.gz";
+        sha256 = "1hdw3bx61mjxa83arfj7vnqkkq3mzka5g04xg7vjq81z348q9b8y";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.1.2-darwin-arm64.tar.gz";
-        sha256 = "17d3p29w4hd5lrpgmf9j17fwy4vx1cr84nlfci3rvfzzih1x62yl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.1-darwin-arm64.tar.gz";
+        sha256 = "0ja508z0r4gbg2zdyrjb7gq8kn1brrx5q6am5dvwaikqs6i6vxrm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.24.0-darwin-arm64.tar.gz";
-        sha256 = "1i9z6ifhz0han1wmjm6f3ywm6jqbfgaq1xrwf8vq9yph54is0ysq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.27.0-darwin-arm64.tar.gz";
+        sha256 = "0y0qha8d0dsjnqjaipn6i3csda4cl13zq0mqd8jpda127c3jzzxv";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.47.2-darwin-arm64.tar.gz";
         sha256 = "1zj37idg91anzx0hd6y2mshgl0bxc9ysfd4prgvj4drf92gwrx4g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.15.0-darwin-arm64.tar.gz";
-        sha256 = "1c7ycicwszn9fsaw81rn88kgm7b5i0hp9sxp92qxfn649x742c45";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-darwin-arm64.tar.gz";
+        sha256 = "1pjcbk8lsqpdw12mp07czf8gzam7dhak3zb4zcd0z9xp3fj0qvgd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.67.1-darwin-arm64.tar.gz";
-        sha256 = "0id3w5wsapr5jh879qmglymbjzhl2r0w6kjahm1zzwvlqc3vg66w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.69.0-darwin-arm64.tar.gz";
+        sha256 = "0h1n4rw5x98vhvz71fh92hlc48l7xcs90p18slmlnaia5fjs01gg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.21.0-darwin-arm64.tar.gz";
-        sha256 = "056klbsdfcspfm74a2cfrxblyq9lml8v07ffgcqds61b6zyx2v73";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.22.0-darwin-arm64.tar.gz";
+        sha256 = "17xzrs9ymxrmfvj3s0f1dfnmbpflvariah5krvmn7ylcxl7xvbqw";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.1-darwin-arm64.tar.gz";
         sha256 = "19wi1jq077da10c1z2z4rzw0x7rjdv77fk9djzk627w75bha1xac";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.25.1-darwin-arm64.tar.gz";
-        sha256 = "1llxhfcx8b16bvynx6bb509r94iqyvkiz261939d6alx4g0sfvpr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.27.0-darwin-arm64.tar.gz";
+        sha256 = "0kxrbmcs60v0snz6m3xs1dr1lbw64gz735kbcm223abs5dsz0lqr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.25.2-darwin-arm64.tar.gz";
-        sha256 = "0wq2cs9nabd8rzr9pvz14f5lpfdk4kv6c81fb95z0vz32w09az49";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.27.0-darwin-arm64.tar.gz";
+        sha256 = "176vnb1khfrnwd4xipirp0hwjl4q9mgmw5r4b00jvxy55h8mr1qs";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.1-darwin-arm64.tar.gz";
@@ -543,16 +516,16 @@
         sha256 = "12bzicm43l7yvh02v5fx3z8v46l9i7a9f677735xi5rjbmd2an4c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.4.2-darwin-arm64.tar.gz";
-        sha256 = "1pd2x157ljb8rgm1mawqvqb39n0101450syr43z1qjmhgws7gz74";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.5.1-darwin-arm64.tar.gz";
+        sha256 = "18985l0djz592235y2brxncpaky850qyr0xa23aflm07wdh7fc3n";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.11.2-darwin-arm64.tar.gz";
-        sha256 = "03njrkmia42i0sg6qp76n8ymch4jaql4lkx0ixiscdwzgbx4v03m";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.14.0-darwin-arm64.tar.gz";
+        sha256 = "0nr19205zvrm1nczc3f6sjdxhi83jcs6spy9y1q55kmd5lq3hgsx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.0.0-darwin-arm64.tar.gz";
-        sha256 = "0wphd50a3rxzn9c2fqrhcmdlh7804jkmjjp2rcp6w1cxs5wmlnfn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.1.0-darwin-arm64.tar.gz";
+        sha256 = "14237rakfdn78x5xi6p7svl7yzvmi27vvicn7dizyy8w5p6g3zbd";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.9.0-darwin-arm64.tar.gz";
@@ -563,16 +536,16 @@
         sha256 = "0caz4kgnnrmdr7n571xc7yqscac9jnjwwpjzbnvx4ib6a91wvsdn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.17.0-darwin-arm64.tar.gz";
-        sha256 = "19zhkq9lppjj41ddhbk2fi5xrmmbgyk38mlzvkqfly9lwgbc18v3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.17.1-darwin-arm64.tar.gz";
+        sha256 = "1hxl3jrijw3jjmampf879q1h3ya4baag9fva0b5n1sn4r7d7w3kd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.8.1-darwin-arm64.tar.gz";
-        sha256 = "0sq72v8hshx4kwbzsp9dyg26p21cwz8y7dh5msaqlxwsqmsw62pc";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.9.1-darwin-arm64.tar.gz";
+        sha256 = "14j27fy3i718k5svb8cznf4py3pypwxac4db3qs2mz0lhffja3ha";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.15.0-darwin-arm64.tar.gz";
-        sha256 = "07wf92lhbjzxifdvzjss6hmphdllclzj3b7k7nda03pv90awsh79";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.16.0-darwin-arm64.tar.gz";
+        sha256 = "08ar565hpk6x9kfjj56nqfs4ah2128m4l4qfzpmpzzpad61aa6fa";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.5.1-darwin-arm64.tar.gz";
@@ -595,16 +568,16 @@
         sha256 = "15zxfi82jqja0xzryb74pvcxnrbn6axrs98j463z248b5fbwc7b8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.49.0-darwin-arm64.tar.gz";
-        sha256 = "1ncapql0a48p86bvj9p25575va0zcqcdqw2apl4npm7vjn0gq2s1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.50.2-darwin-arm64.tar.gz";
+        sha256 = "1qr6qh4323d6n7f56lixdrph5cb5qby4q2f3l8l4l6n8s345v9kr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.68.0-darwin-arm64.tar.gz";
-        sha256 = "120acxnm1lid5spszv8i4vgnk732fch8j3i2qhrdd3k2p86z0a1n";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.69.0-darwin-arm64.tar.gz";
+        sha256 = "0rjb8pbxrp0djvjmxqvivd3jyy9r1iflp6i5a7mzad825g7gzczb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.2-darwin-arm64.tar.gz";
-        sha256 = "041zjnywmpxa302igaszj0hd6k4qb455i2c0452rlfh9kj7k2sa5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.20.3-darwin-arm64.tar.gz";
+        sha256 = "18cp8kblr5dfj364hmwq2yasfb5b083mmn4jvp1an12yvyaq8qc4";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.15.0-darwin-arm64.tar.gz";
@@ -622,18 +595,9 @@
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.7.0-darwin-arm64.tar.gz";
         sha256 = "00qq53wirdjm8zqqisad34fzx70m96dwg0dqysz6nqikq620h7dp";
       }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.9.2-darwin-arm64.tar.gz";
-        sha256 = "0ymxbs8ql90mnqd1yjd7yss6q7pr39i4l5znzai7sixdvcmk53l8";
-      }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-wavefront-v3.1.0-darwin-arm64.tar.gz";
-        sha256 = "0vxkhdf5wz7plq86qy27qwx73jp88ddl41m4iz0h64isrmdrz466";
-      }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-yandex-v0.13.0-darwin-arm64.tar.gz";
-        sha256 = "1qaccfqw24g862ij2p49m78hnymg0j2nghshszqrg45v0d0qnknm";
-      }
+      # pulumi-resource-vsphere skipped (does not exist on remote)
+      # pulumi-resource-wavefront skipped (does not exist on remote)
+      # pulumi-resource-yandex skipped (does not exist on remote)
     ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-aws-native.nix b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-aws-native.nix
index 2a0582ecb805..51971963fc37 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-aws-native.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-aws-native.nix
@@ -27,6 +27,7 @@ mkPulumiPackage rec {
 
   meta = with lib; {
     description = "Native AWS Pulumi Provider";
+    mainProgram = "pulumi-resource-aws-native";
     homepage = "https://github.com/pulumi/pulumi-aws-native";
     license = licenses.asl20;
     maintainers = with maintainers; [ veehaitch trundle ];
diff --git a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-azure-native.nix b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-azure-native.nix
index 76a5eff2973e..7b37577da566 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-azure-native.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-azure-native.nix
@@ -32,6 +32,7 @@ mkPulumiPackage rec {
   __darwinAllowLocalNetworking = true;
   meta = with lib; {
     description = "Native Azure Pulumi Provider";
+    mainProgram = "pulumi-resource-azure-native";
     homepage = "https://github.com/pulumi/pulumi-azure-native";
     license = licenses.asl20;
     maintainers = with maintainers; [ veehaitch trundle ];
diff --git a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-command.nix b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-command.nix
index d53e9593feec..e74a36fd5ef3 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-command.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-command.nix
@@ -26,6 +26,7 @@ mkPulumiPackage rec {
 
   meta = with lib; {
     description = "A Pulumi provider to execute commands and scripts either locally or remotely as part of the Pulumi resource model";
+    mainProgram = "pulumi-resource-command";
     homepage = "https://github.com/pulumi/pulumi-command";
     license = licenses.asl20;
     maintainers = with maintainers; [ veehaitch trundle ];
diff --git a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix
index 88da6f0d33f4..5a5e9ec7397d 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Golang language host plugin for Pulumi";
+    mainProgram = "pulumi-language-go";
     homepage = "https://github.com/pulumi/pulumi/tree/master/sdk/go";
     license = licenses.asl20;
   };
diff --git a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-random.nix b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-random.nix
index af704eac192d..4f8781811519 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-random.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi-packages/pulumi-random.nix
@@ -16,6 +16,7 @@ mkPulumiPackage rec {
   __darwinAllowLocalNetworking = true;
   meta = with lib; {
     description = "A Pulumi provider that safely enables randomness for resources";
+    mainProgram = "pulumi-resource-random";
     homepage = "https://github.com/pulumi/pulumi-random";
     license = licenses.asl20;
     maintainers = with maintainers; [ veehaitch trundle ];
diff --git a/nixpkgs/pkgs/tools/admin/qovery-cli/default.nix b/nixpkgs/pkgs/tools/admin/qovery-cli/default.nix
index 8db9f115c4d8..5c380c92720c 100644
--- a/nixpkgs/pkgs/tools/admin/qovery-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/qovery-cli/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "qovery-cli";
-  version = "0.84.1";
+  version = "0.85.0";
 
   src = fetchFromGitHub {
     owner = "Qovery";
     repo = "qovery-cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Dq62LXa0hZrpfQ7WQuCelLxWS7Lhn6SH61cNTsYI/mw=";
+    hash = "sha256-peIbzUDP6vJneeFkvIUXuMzOQJKZ602dIzRnSf/7HAI=";
   };
 
-  vendorHash = "sha256-XG0dOEpu+NoQmklsukxev1gc2OsZc7fLEkv0AGwkh7o=";
+  vendorHash = "sha256-3UsHxBIJpmga3Hjtwx4cZ45xY52RVMdPS/DAgTBYmuw=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/tools/admin/s3bro/default.nix b/nixpkgs/pkgs/tools/admin/s3bro/default.nix
index 47b458e9cc02..ee35c619fb74 100644
--- a/nixpkgs/pkgs/tools/admin/s3bro/default.nix
+++ b/nixpkgs/pkgs/tools/admin/s3bro/default.nix
@@ -34,6 +34,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "s3 CLI tool";
+    mainProgram = "s3bro";
     homepage = "https://github.com/rsavordelli/s3bro";
     license = licenses.mit;
     maintainers = with maintainers; [ psyanticy ];
diff --git a/nixpkgs/pkgs/tools/admin/salt/default.nix b/nixpkgs/pkgs/tools/admin/salt/default.nix
index 9988029f1f77..e38016de93ac 100644
--- a/nixpkgs/pkgs/tools/admin/salt/default.nix
+++ b/nixpkgs/pkgs/tools/admin/salt/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , python3
-, fetchpatch
 , fetchPypi
 , openssl
   # Many Salt modules require various Python modules to be installed,
@@ -11,21 +10,15 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "salt";
-  version = "3006.7";
+  version = "3007.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7ZLSG4TrnUefk7qJRoRTQIEX4NwQEGFCFJmejQwhCv0=";
+    hash = "sha256-Qb+E5x/GVb+KS1LrRA0GIa6WEJaghtIOEy4VEuLt3/g=";
   };
 
   patches = [
-    # https://github.com/saltstack/salt/pull/63795
-    (fetchpatch {
-      name = "remove-duplicate-scripts.patch";
-      url = "https://github.com/saltstack/salt/commit/6b9463836e70e40409dbf653f01aa94ef869dfe7.patch";
-      hash = "sha256-VcVdKC8EH4qoWHtq6eEPl8OviR4eA2k/S2lWNQbubJw=";
-    })
     ./fix-libcrypto-loading.patch
   ];
 
@@ -57,6 +50,7 @@ python3.pkgs.buildPythonApplication rec {
     pyyaml
     pyzmq
     requests
+    tornado
   ] ++ extraInputs;
 
   # Don't use fixed dependencies on Darwin
diff --git a/nixpkgs/pkgs/tools/admin/ssl-cert-check/default.nix b/nixpkgs/pkgs/tools/admin/ssl-cert-check/default.nix
index c314c304aec8..857fc096e06d 100644
--- a/nixpkgs/pkgs/tools/admin/ssl-cert-check/default.nix
+++ b/nixpkgs/pkgs/tools/admin/ssl-cert-check/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Bourne shell script that can be used to report on expiring SSL certificates";
+    mainProgram = "ssl-cert-check";
     homepage = "https://github.com/Matty9191/ssl-cert-check";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ryantm ];
diff --git a/nixpkgs/pkgs/tools/admin/trivy/default.nix b/nixpkgs/pkgs/tools/admin/trivy/default.nix
index 2992e233d74d..428f3703e47b 100644
--- a/nixpkgs/pkgs/tools/admin/trivy/default.nix
+++ b/nixpkgs/pkgs/tools/admin/trivy/default.nix
@@ -10,19 +10,19 @@
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.49.1";
+  version = "0.50.0";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-+wgnj7mDIJ5UPGfD7vogdcbUeBdvTenL/a0Ew4CfuvE=";
+    hash = "sha256-gRePoEfUqTWSalUaCROEsZcgxXOFGe0AukyoaDlKAsM=";
   };
 
   # Hash mismatch on across Linux and Darwin
   proxyVendor = true;
 
-  vendorHash = "sha256-IL3FHgOYQYJIqJKr2eEeM/NzO+SeYucGSNUUY62kHNA=";
+  vendorHash = "sha256-i+FgfYdfhuS4utcHDWI1QofBysiU6tV9Y7b2SE0jnVA=";
 
   subPackages = [ "cmd/trivy" ];
 
diff --git a/nixpkgs/pkgs/tools/admin/try/default.nix b/nixpkgs/pkgs/tools/admin/try/default.nix
index 697a192d156e..a5a6c760a010 100644
--- a/nixpkgs/pkgs/tools/admin/try/default.nix
+++ b/nixpkgs/pkgs/tools/admin/try/default.nix
@@ -18,6 +18,7 @@ stdenvNoCC.mkDerivation rec {
   meta = with lib;{
     homepage = "https://github.com/binpash/try";
     description = "Lets you run a command and inspect its effects before changing your live system";
+    mainProgram = "try";
     maintainers = with maintainers; [ pasqui23 ];
     license = with licenses; [ mit ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/archivers/unar/default.nix b/nixpkgs/pkgs/tools/archivers/unar/default.nix
index 4b2c66c0fc40..b1c818505712 100644
--- a/nixpkgs/pkgs/tools/archivers/unar/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/unar/default.nix
@@ -50,12 +50,6 @@ stdenv.mkDerivation rec {
     lib.optionals stdenv.isLinux [ gnustep.make ] ++
     lib.optionals stdenv.isDarwin [ xcbuildHook ];
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-  # xcbuild links with clang instead of clang++.
-  env = lib.optionalAttrs stdenv.isDarwin {
-    LD_FLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   xcbuildFlags = lib.optionals stdenv.isDarwin [
     "-target unar"
     "-target lsar"
diff --git a/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix b/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix
index 6896897be3b1..07ef4db4d6b0 100644
--- a/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix
+++ b/nixpkgs/pkgs/tools/archivers/zpaq/zpaqd.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "ZPAQ archive (de)compressor and algorithm development tool";
+    mainProgram = "zpaqd";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/audio/abcmidi/default.nix b/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
index 6a8d491480ea..3f57ea9982fe 100644
--- a/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
+++ b/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "abcMIDI";
-  version = "2024.03.02";
+  version = "2024.03.13";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    hash = "sha256-LWVU6OZc4hTjYY7Q8zjlR4vMqRc2Y+8QGFST543FR1I=";
+    hash = "sha256-lhnCf4Il3pRNY6tfb19qyRDbeuWSPK6JEmOrcG92MeI=";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/audio/asap/default.nix b/nixpkgs/pkgs/tools/audio/asap/default.nix
index 3eb2e8ea7ca9..7f7b5d9d5fe8 100644
--- a/nixpkgs/pkgs/tools/audio/asap/default.nix
+++ b/nixpkgs/pkgs/tools/audio/asap/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "asap";
-  version = "6.0.2";
+  version = "6.0.3";
 
   src = fetchzip {
     url = "mirror://sourceforge/project/asap/asap/${version}/asap-${version}.tar.gz";
-    sha256 = "sha256-hVZODnm2GxSUKglOyQ8uObeKkAKrupPTftEP0dck9a8=";
+    sha256 = "sha256-a4RUtFue5wdoGUykLRb46s4+yR/I/7DhwE1SiWPRg8s=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/tools/audio/beets/default.nix b/nixpkgs/pkgs/tools/audio/beets/default.nix
index 391974c4a4fd..7631d106654d 100644
--- a/nixpkgs/pkgs/tools/audio/beets/default.nix
+++ b/nixpkgs/pkgs/tools/audio/beets/default.nix
@@ -1,6 +1,7 @@
 { lib
 , callPackage
 , fetchFromGitHub
+, fetchPypi
 , fetchpatch
 , python3Packages
 }:
@@ -17,11 +18,25 @@
 **   alternatives = { enable = true; propagatedBuildInputs = [ beetsPackages.alternatives ]; };
 ** }; }
 */
-lib.makeExtensible (self: {
+let
+  legacyMediafilePython3Packages = python3Packages.override {
+    overrides = self: super: {
+      mediafile = super.mediafile.overridePythonAttrs (oldAttrs: rec {
+        version = "0.10.1";
+        format = "pyproject";
+        src = fetchPypi {
+          pname = "mediafile";
+          inherit version;
+          hash = "sha256-kpZCoX7lAjuQhiIc6AzcLFHQYCGokNRDOwvVvTLysp8=";
+        };
+      });
+    };
+  };
+in lib.makeExtensible (self: {
   beets = self.beets-stable;
 
   beets-stable = callPackage ./common.nix rec {
-    inherit python3Packages;
+    python3Packages = legacyMediafilePython3Packages;
     # NOTE: ./builtin-plugins.nix and ./common.nix can have some conditionals
     # be removed when stable version updates
     version = "1.6.0";
diff --git a/nixpkgs/pkgs/tools/audio/dl-librescore/default.nix b/nixpkgs/pkgs/tools/audio/dl-librescore/default.nix
index a84f12e8fa53..75a35a02beb2 100644
--- a/nixpkgs/pkgs/tools/audio/dl-librescore/default.nix
+++ b/nixpkgs/pkgs/tools/audio/dl-librescore/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "dl-librescore";
-  version = "0.34.59";
+  version = "0.35.1";
 
   src = fetchFromGitHub {
     owner = "LibreScore";
     repo = "dl-librescore";
     rev = "v${version}";
-    hash = "sha256-ZpY+cWtNf/s4Aw42eDc9/0jXzVHugEmU91Qgu9p1f0w=";
+    hash = "sha256-W/55Bbq5yiocNLOU1+j1TwkGawyF8sObtMmPW3ph35A=";
   };
 
-  npmDepsHash = "sha256-DX3to2SNYhNWIJqcz5Mberuk/HSpCO538CjsvvALgkI=";
+  npmDepsHash = "sha256-Boa/WnptJYJNRdcLgua5GmLT2H9tBpZR+vvAFZC1s4k=";
 
   # see https://github.com/LibreScore/dl-librescore/pull/32
   # TODO can be removed with next update
diff --git a/nixpkgs/pkgs/tools/audio/liquidsoap/full.nix b/nixpkgs/pkgs/tools/audio/liquidsoap/full.nix
index 87914436fd49..f4fac11df220 100644
--- a/nixpkgs/pkgs/tools/audio/liquidsoap/full.nix
+++ b/nixpkgs/pkgs/tools/audio/liquidsoap/full.nix
@@ -7,7 +7,7 @@
 
 let
   pname = "liquidsoap";
-  version = "2.2.3";
+  version = "2.2.4";
 in
 stdenv.mkDerivation {
   inherit pname version;
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
     owner = "savonet";
     repo = "liquidsoap";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oCMSdmdU3oHrq3QFEDQLdb3CLFYcWylxTqKWtGOoQW8=";
+    hash = "sha256-aAW3PeobTRVi5mV321MHZ6RymvOY4DbZITjwcMwGwFo=";
   };
 
   postPatch = ''
@@ -76,6 +76,7 @@ stdenv.mkDerivation {
     ocamlPackages.camomile
     ocamlPackages.uri
     ocamlPackages.fileutils
+    ocamlPackages.magic-mime
     ocamlPackages.menhir # liquidsoap-lang
     ocamlPackages.menhirLib
     ocamlPackages.metadata
@@ -99,7 +100,6 @@ stdenv.mkDerivation {
     ocamlPackages.frei0r
     ocamlPackages.gd4o
     ocamlPackages.graphics
-    ocamlPackages.gstreamer
     ocamlPackages.imagelib
     ocamlPackages.inotify
     ocamlPackages.ladspa
@@ -108,7 +108,6 @@ stdenv.mkDerivation {
     ocamlPackages.lilv
     ocamlPackages.lo
     ocamlPackages.mad
-    ocamlPackages.magic
     ocamlPackages.ogg
     ocamlPackages.opus
     ocamlPackages.portaudio
@@ -132,6 +131,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Swiss-army knife for multimedia streaming";
+    mainProgram = "liquidsoap";
     homepage = "https://www.liquidsoap.info/";
     maintainers = with maintainers; [ dandellion ehmry ];
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/tools/audio/mpd-discord-rpc/default.nix b/nixpkgs/pkgs/tools/audio/mpd-discord-rpc/default.nix
index 17bc6c6e419f..64535fd3e5a1 100644
--- a/nixpkgs/pkgs/tools/audio/mpd-discord-rpc/default.nix
+++ b/nixpkgs/pkgs/tools/audio/mpd-discord-rpc/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mpd-discord-rpc";
-  version = "1.7.1";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "JakeStanger";
     repo = "mpd-discord-rpc";
     rev = "v${version}";
-    hash = "sha256-fJHBQGc0+HjEALWuAWSts1l6NMookkut3Cm4e541iGw=";
+    hash = "sha256-Sdvrq9ChaSwjQDVjHVzcVLYbzyCHXsta1/Jo9hVkcDw=";
   };
 
-  cargoHash = "sha256-v5JN0Nqp/fGjjJaKrMWt2HWzxAnA1URf0P2Xq9lHNVQ=";
+  cargoHash = "sha256-w3ulSCbQBkDATe4yfgGSl7WMrUk3sYlS08UbgvGY/5s=";
 
   nativeBuildInputs = [
     pkg-config
@@ -28,6 +28,7 @@ rustPlatform.buildRustPackage rec {
     openssl
   ] ++ lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/audio/openai-whisper-cpp/default.nix b/nixpkgs/pkgs/tools/audio/openai-whisper-cpp/default.nix
index 191aae946e21..20d2a23d1dd5 100644
--- a/nixpkgs/pkgs/tools/audio/openai-whisper-cpp/default.nix
+++ b/nixpkgs/pkgs/tools/audio/openai-whisper-cpp/default.nix
@@ -45,9 +45,7 @@ effectiveStdenv.mkDerivation (finalAttrs: {
     ] ++ lib.optionals cudaSupport ( with cudaPackages ;[
       cuda_nvcc
 
-      # TODO: Replace with autoAddDriverRunpath
-      # once https://github.com/NixOS/nixpkgs/pull/275241 has been merged
-      autoAddOpenGLRunpathHook
+      autoAddDriverRunpath
     ]);
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/audio/pa-applet/default.nix b/nixpkgs/pkgs/tools/audio/pa-applet/default.nix
index 0a82f37e04d3..ef5cde192baf 100644
--- a/nixpkgs/pkgs/tools/audio/pa-applet/default.nix
+++ b/nixpkgs/pkgs/tools/audio/pa-applet/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "";
+    mainProgram = "pa-applet";
     license = licenses.gpl2;
     maintainers = with maintainers; [ domenkozar ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/audio/spotdl/default.nix b/nixpkgs/pkgs/tools/audio/spotdl/default.nix
index a825fd2e1e39..f4a7e207bef3 100644
--- a/nixpkgs/pkgs/tools/audio/spotdl/default.nix
+++ b/nixpkgs/pkgs/tools/audio/spotdl/default.nix
@@ -91,6 +91,7 @@ in python.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Download your Spotify playlists and songs along with album art and metadata";
+    mainProgram = "spotdl";
     homepage = "https://github.com/spotDL/spotify-downloader";
     changelog = "https://github.com/spotDL/spotify-downloader/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/audio/wyoming/faster-whisper.nix b/nixpkgs/pkgs/tools/audio/wyoming/faster-whisper.nix
index bbef9e081310..a40657bdf5f6 100644
--- a/nixpkgs/pkgs/tools/audio/wyoming/faster-whisper.nix
+++ b/nixpkgs/pkgs/tools/audio/wyoming/faster-whisper.nix
@@ -1,30 +1,21 @@
 { lib
-, python3
+, python3Packages
 , fetchFromGitHub
-, fetchpatch
 }:
 
-python3.pkgs.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "wyoming-faster-whisper";
-  version = "1.1.0";
+  version = "2.0.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "rhasspy";
     repo = "wyoming-faster-whisper";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RD6J/Q7kvd+sgTpR6ERyV+D8gpm0fF38L3U/Jp7gOgk=";
+    hash = "sha256-CeFSxL2Mn9lgboKghbteCl6VMTqruJgrI0io+TdaV5k=";
   };
 
-  patches = [
-    (fetchpatch {
-      # fix setup.py
-      url = "https://github.com/rhasspy/wyoming-faster-whisper/commit/cdd1536997a091dcf9054da9ff424a2603067755.patch";
-      hash = "sha256-LGYo21FhKGXcAN9DjXzwIRqkOzTz3suXiQdgGrJSDBw=";
-    })
-  ];
-
-  nativeBuildInputs = with python3.pkgs; [
+  nativeBuildInputs = with python3Packages; [
     setuptools
     pythonRelaxDepsHook
   ];
@@ -33,9 +24,8 @@ python3.pkgs.buildPythonApplication rec {
     "wyoming"
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
-    ctranslate2
-    tokenizers
+  propagatedBuildInputs = with python3Packages; [
+    faster-whisper
     wyoming
   ];
 
@@ -47,6 +37,7 @@ python3.pkgs.buildPythonApplication rec {
   doCheck = false;
 
   meta = with lib; {
+    changelog = "https://github.com/rhasspy/wyoming-faster-whisper/releases/tag/v${version}";
     description = "Wyoming Server for Faster Whisper";
     homepage = "https://github.com/rhasspy/wyoming-faster-whisper";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/audio/wyoming/piper.nix b/nixpkgs/pkgs/tools/audio/wyoming/piper.nix
index dc69c907ee2a..82d8c003348e 100644
--- a/nixpkgs/pkgs/tools/audio/wyoming/piper.nix
+++ b/nixpkgs/pkgs/tools/audio/wyoming/piper.nix
@@ -38,6 +38,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     changelog = "https://github.com/rhasspy/wyoming-openwakeword/v${version}/master/CHANGELOG.md";
     description = "Wyoming Server for Piper";
+    mainProgram = "wyoming-piper";
     homepage = "https://github.com/rhasspy/wyoming-openwakeword";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/nixpkgs/pkgs/tools/backup/android-backup-extractor/default.nix b/nixpkgs/pkgs/tools/backup/android-backup-extractor/default.nix
index 5411b70c77a2..3ecbce8555cd 100644
--- a/nixpkgs/pkgs/tools/backup/android-backup-extractor/default.nix
+++ b/nixpkgs/pkgs/tools/backup/android-backup-extractor/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Utility to extract and repack Android backups created with adb backup";
+    mainProgram = "abe";
     homepage = "https://github.com/nelenkov/android-backup-extractor";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/backup/automysqlbackup/default.nix b/nixpkgs/pkgs/tools/backup/automysqlbackup/default.nix
index f103149a83d7..2a36e3a2a275 100644
--- a/nixpkgs/pkgs/tools/backup/automysqlbackup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/automysqlbackup/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A script to run daily, weekly and monthly backups for your MySQL database";
+    mainProgram = "automysqlbackup";
     homepage = "https://github.com/sixhop/AutoMySQLBackup";
     platforms = platforms.linux;
     maintainers = [ maintainers.aanderse ];
diff --git a/nixpkgs/pkgs/tools/backup/autorestic/default.nix b/nixpkgs/pkgs/tools/backup/autorestic/default.nix
index bf3d6d326073..1fcb2dbccc85 100644
--- a/nixpkgs/pkgs/tools/backup/autorestic/default.nix
+++ b/nixpkgs/pkgs/tools/backup/autorestic/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "autorestic";
-  version = "1.7.11";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "cupcakearmy";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Uewr9WP+HtVdWnH26+zoQjTuzE7TyNR9WlYvK2kRHaU=";
+    sha256 = "sha256-e/OBu1tcIxr/ddKhbFyOtvU8Oqr0gpBRNpHRyoFKw6M=";
   };
 
   vendorHash = "sha256-K3+5DRXcx56sJ4XHikVtmoxmpJbBeAgPkN9KtHVgvYA=";
diff --git a/nixpkgs/pkgs/tools/backup/awsbck/default.nix b/nixpkgs/pkgs/tools/backup/awsbck/default.nix
index cb5b4f76549c..99ce2afc0a54 100644
--- a/nixpkgs/pkgs/tools/backup/awsbck/default.nix
+++ b/nixpkgs/pkgs/tools/backup/awsbck/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "awsbck";
-  version = "0.3.7";
+  version = "0.3.8";
 
   src = fetchFromGitHub {
     owner = "beeb";
     repo = "awsbck";
     rev = "v${version}";
-    hash = "sha256-asYXmBPNsIac+c/UXSijol+DFI7qZVpg/SKxaadlBOI=";
+    hash = "sha256-dUBuuFl6PVTsPnrH9OU3N/GwgTC2/QtH6yKtv3QgBsA=";
   };
 
-  cargoHash = "sha256-vFIBl/ZvSZn/9yLYMtzFvlPM+OYkZndkT6qPCIWVlOM=";
+  cargoHash = "sha256-X5lYplBej+ZBLnNoHQTGu63pwouGfbVtSH4bgdoxqUo=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
diff --git a/nixpkgs/pkgs/tools/backup/bakelite/default.nix b/nixpkgs/pkgs/tools/backup/bakelite/default.nix
index c67741b06869..9270be408d2d 100644
--- a/nixpkgs/pkgs/tools/backup/bakelite/default.nix
+++ b/nixpkgs/pkgs/tools/backup/bakelite/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/richfelker/bakelite";
     description = "Incremental backup with strong cryptographic confidentality";
+    mainProgram = "bakelite";
     license = licenses.gpl2;
     maintainers = with maintainers; [ mvs ];
     # no support for Darwin (yet: https://github.com/richfelker/bakelite/pull/5)
diff --git a/nixpkgs/pkgs/tools/backup/borgmatic/default.nix b/nixpkgs/pkgs/tools/backup/borgmatic/default.nix
index 2b3b9e92f90c..0268fae6a185 100644
--- a/nixpkgs/pkgs/tools/backup/borgmatic/default.nix
+++ b/nixpkgs/pkgs/tools/backup/borgmatic/default.nix
@@ -13,11 +13,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "borgmatic";
-  version = "1.8.8";
+  version = "1.8.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-dPWp8SH4//HJlCrF6YRaMb32idox1E0/Gd8qc/GmP4c=";
+    sha256 = "sha256-YfDV2BJzi2DVi/eoWg3KeqmJjUv5+TrLpYdF8R7YuPY=";
   };
 
   nativeCheckInputs = with python3Packages; [ flexmock pytestCheckHook pytest-cov ] ++ passthru.optional-dependencies.apprise;
diff --git a/nixpkgs/pkgs/tools/backup/btar/default.nix b/nixpkgs/pkgs/tools/backup/btar/default.nix
index f1033d275aab..7d9f257f72b8 100644
--- a/nixpkgs/pkgs/tools/backup/btar/default.nix
+++ b/nixpkgs/pkgs/tools/backup/btar/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tar-compatible block-based archiver";
+    mainProgram = "btar";
     license = lib.licenses.gpl3Plus;
     homepage = "https://viric.name/cgi-bin/btar";
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/backup/bup/default.nix b/nixpkgs/pkgs/tools/backup/bup/default.nix
index c2b7b048bce2..07ae258a675f 100644
--- a/nixpkgs/pkgs/tools/backup/bup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/bup/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/bup/bup";
     description = "Efficient file backup system based on the git packfile format";
+    mainProgram = "bup";
     license = licenses.gpl2Plus;
 
     longDescription = ''
diff --git a/nixpkgs/pkgs/tools/backup/burp/default.nix b/nixpkgs/pkgs/tools/backup/burp/default.nix
index d78e75685f05..4684631efe9a 100644
--- a/nixpkgs/pkgs/tools/backup/burp/default.nix
+++ b/nixpkgs/pkgs/tools/backup/burp/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "BURP - BackUp and Restore Program";
     homepage    = "https://burp.grke.org";
-    license     = licenses.agpl3;
+    license     = licenses.agpl3Plus;
     maintainers = with maintainers; [ arjan-s ];
     platforms   = platforms.all;
   };
diff --git a/nixpkgs/pkgs/tools/backup/chunksync/default.nix b/nixpkgs/pkgs/tools/backup/chunksync/default.nix
index 2bab8d5ea22e..5a2ec9e5db7c 100644
--- a/nixpkgs/pkgs/tools/backup/chunksync/default.nix
+++ b/nixpkgs/pkgs/tools/backup/chunksync/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Space-efficient incremental backups of large files or block devices";
+    mainProgram = "chunksync";
     homepage = "http://chunksync.florz.de/";
     license = lib.licenses.gpl2;
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/deps.nix b/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/deps.nix
deleted file mode 100644
index 36fe79638043..000000000000
--- a/nixpkgs/pkgs/tools/backup/discordchatexporter-cli/deps.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file was automatically generated by passthru.fetch-deps.
-# Please dont edit it manually, your changes might get overwritten!
-
-{ fetchNuGet }: [
-  (fetchNuGet { pname = "AdvancedStringBuilder"; version = "0.1.0"; sha256 = "1lpv5sggdxza0bmcqmzf5r4i340f0m7nr5073lac18naj5697q5g"; })
-  (fetchNuGet { pname = "AngleSharp"; version = "1.0.4"; sha256 = "1b4qd0z27fdkgy5l8fqcbpzwm29gmmjm2h0mqb9ac94rv6ynq510"; })
-  (fetchNuGet { pname = "AsyncKeyedLock"; version = "6.2.1"; sha256 = "0281mj9ppz6q454li6xyllb1hdfkl59bh3psbj4z6l9xjbhnjhz0"; })
-  (fetchNuGet { pname = "CliFx"; version = "2.3.4"; sha256 = "14nj8w3j0hbsr5cghj39jx2sh5cg3wsvl517dk8whva5kgy3q1mf"; })
-  (fetchNuGet { pname = "CSharpier.MsBuild"; version = "0.25.0"; sha256 = "0xpdb2mss9zhdpks9ajm2h611khhw69xjwxv1k6qf7qrbkb0rgr3"; })
-  (fetchNuGet { pname = "Deorcify"; version = "1.0.2"; sha256 = "0nwxyrl4rd5x621i2hs5fl3w7fxpm13lkdssxr9fd5042px2gqbm"; })
-  (fetchNuGet { pname = "DotnetRuntimeBootstrapper"; version = "2.5.1"; sha256 = "192795akjmdxvp8p52g256rg0nzriipfsr8j808h69j6himhp4d7"; })
-  (fetchNuGet { pname = "Gress"; version = "2.1.1"; sha256 = "1svz1flhyl26h3xjch0acjjinympgf6bhj5vpb188njfih3ip4ck"; })
-  (fetchNuGet { pname = "JsonExtensions"; version = "1.2.0"; sha256 = "0g54hibabbqqfhxjlnxwv1rxagpali5agvnpymp2w3dk8h6q66xy"; })
-  (fetchNuGet { pname = "Polly"; version = "8.0.0"; sha256 = "08wzmkz9qjz61sczmipm8m5j4bg8dg4mbjgspagx4hh28q8mvagn"; })
-  (fetchNuGet { pname = "Polly.Core"; version = "8.0.0"; sha256 = "10w6z81kidkdhbwkhyas9kc1zmvz0r3mzcsii01wpydw27v0rzxp"; })
-  (fetchNuGet { pname = "RazorBlade"; version = "0.4.4"; sha256 = "1dkyyn58gcrl1sh6mv3g7zqapqg8lb5nzn10aj3vh4l51wpl0l5r"; })
-  (fetchNuGet { pname = "Spectre.Console"; version = "0.47.0"; sha256 = "0gc9ana660an7d76w9qd8l62lv66dc69vr5lslr896b1313ywakp"; })
-  (fetchNuGet { pname = "Superpower"; version = "3.0.0"; sha256 = "0p6riay4732j1fahc081dzgs9q4z3n2fpxrin4zfpj6q2226dhz4"; })
-  (fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
-  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "7.0.0"; sha256 = "0sn6hxdjm7bw3xgsmg041ccchsa4sp02aa27cislw3x61dbr68kq"; })
-  (fetchNuGet { pname = "WebMarkupMin.Core"; version = "2.14.0"; sha256 = "0c41zw1bwz6ybxagq5vr26cx7najd17rrdbqjpn8mabynq380ayr"; })
-  (fetchNuGet { pname = "YoutubeExplode"; version = "6.3.4"; sha256 = "0zlfga8aigxxqa96jmqsp95h5plvxxlgymsrbcl5z1ds9ga0ldkd"; })
-]
diff --git a/nixpkgs/pkgs/tools/backup/diskrsync/default.nix b/nixpkgs/pkgs/tools/backup/diskrsync/default.nix
index 9154451a2441..5506a197fd1d 100644
--- a/nixpkgs/pkgs/tools/backup/diskrsync/default.nix
+++ b/nixpkgs/pkgs/tools/backup/diskrsync/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Rsync for block devices and disk images";
+    mainProgram = "diskrsync";
     homepage = "https://github.com/dop251/diskrsync";
     license = licenses.mit;
     maintainers = with maintainers; [ jluttine ];
diff --git a/nixpkgs/pkgs/tools/backup/duply/default.nix b/nixpkgs/pkgs/tools/backup/duply/default.nix
index 66c31ddd0e16..d69980cb94b5 100644
--- a/nixpkgs/pkgs/tools/backup/duply/default.nix
+++ b/nixpkgs/pkgs/tools/backup/duply/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Shell front end for the duplicity backup tool";
+    mainProgram = "duply";
     longDescription = ''
       Duply is a shell front end for the duplicity backup tool
       https://www.nongnu.org/duplicity. It greatly simplifies its usage by
diff --git a/nixpkgs/pkgs/tools/backup/flockit/default.nix b/nixpkgs/pkgs/tools/backup/flockit/default.nix
index cd17f8e2438c..c1df7f368043 100644
--- a/nixpkgs/pkgs/tools/backup/flockit/default.nix
+++ b/nixpkgs/pkgs/tools/backup/flockit/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "LD_PRELOAD shim to add file locking to programs that don't do it (I'm looking at you, rsync!)";
+    mainProgram = "flockit";
     longDescription = ''
       This library and tool exists solely because rsync doesn't have file locking.
 
diff --git a/nixpkgs/pkgs/tools/backup/gh2md/default.nix b/nixpkgs/pkgs/tools/backup/gh2md/default.nix
index 047b838859a4..035139b58022 100644
--- a/nixpkgs/pkgs/tools/backup/gh2md/default.nix
+++ b/nixpkgs/pkgs/tools/backup/gh2md/default.nix
@@ -21,6 +21,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Export Github repository issues to markdown files";
+    mainProgram = "gh2md";
     homepage = "https://github.com/mattduck/gh2md";
     license = licenses.mit;
     maintainers = with maintainers; [ artturin ];
diff --git a/nixpkgs/pkgs/tools/backup/gphotos-sync/default.nix b/nixpkgs/pkgs/tools/backup/gphotos-sync/default.nix
index 9fefd79c3c62..461931b1b991 100644
--- a/nixpkgs/pkgs/tools/backup/gphotos-sync/default.nix
+++ b/nixpkgs/pkgs/tools/backup/gphotos-sync/default.nix
@@ -54,6 +54,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Google Photos and Albums backup with Google Photos Library API";
+    mainProgram = "gphotos-sync";
     homepage = "https://github.com/gilesknap/gphotos-sync";
     license = licenses.asl20;
     maintainers = with maintainers; [ dnr ];
diff --git a/nixpkgs/pkgs/tools/backup/httrack/qt.nix b/nixpkgs/pkgs/tools/backup/httrack/qt.nix
index ed1a75c974aa..061c8b2ad6de 100644
--- a/nixpkgs/pkgs/tools/backup/httrack/qt.nix
+++ b/nixpkgs/pkgs/tools/backup/httrack/qt.nix
@@ -31,6 +31,7 @@ mkDerivation rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Easy-to-use offline browser / website mirroring utility - QT frontend";
+    mainProgram = "httraqt";
     homepage    = "http://www.httrack.com";
     license     = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/tools/backup/kopia/default.nix b/nixpkgs/pkgs/tools/backup/kopia/default.nix
index 3709040490b0..8a68cfd5ba92 100644
--- a/nixpkgs/pkgs/tools/backup/kopia/default.nix
+++ b/nixpkgs/pkgs/tools/backup/kopia/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://kopia.io";
     description = "Cross-platform backup tool with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication";
+    mainProgram = "kopia";
     license = licenses.asl20;
     maintainers = [ maintainers.bbigras ];
   };
diff --git a/nixpkgs/pkgs/tools/backup/lvmsync/default.nix b/nixpkgs/pkgs/tools/backup/lvmsync/default.nix
index 00a03cda7149..bbea71b7f370 100644
--- a/nixpkgs/pkgs/tools/backup/lvmsync/default.nix
+++ b/nixpkgs/pkgs/tools/backup/lvmsync/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Optimised synchronisation of LVM snapshots over a network";
+    mainProgram = "lvmsync";
     homepage = "https://theshed.hezmatt.org/lvmsync/";
     license = licenses.gpl3;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/backup/mastodon-archive/default.nix b/nixpkgs/pkgs/tools/backup/mastodon-archive/default.nix
index 88d05022d437..92498c529ca1 100644
--- a/nixpkgs/pkgs/tools/backup/mastodon-archive/default.nix
+++ b/nixpkgs/pkgs/tools/backup/mastodon-archive/default.nix
@@ -25,6 +25,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Utility for backing up your Mastodon content";
+    mainProgram = "mastodon-archive";
     homepage = "https://alexschroeder.ch/software/Mastodon_Archive";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ julm ];
diff --git a/nixpkgs/pkgs/tools/backup/monolith/default.nix b/nixpkgs/pkgs/tools/backup/monolith/default.nix
index 10859512ef80..b43e97e1ba95 100644
--- a/nixpkgs/pkgs/tools/backup/monolith/default.nix
+++ b/nixpkgs/pkgs/tools/backup/monolith/default.nix
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Bundle any web page into a single HTML file";
+    mainProgram = "monolith";
     homepage = "https://github.com/Y2Z/monolith";
     license = licenses.unlicense;
     maintainers = with maintainers; [ Br1ght0ne ];
diff --git a/nixpkgs/pkgs/tools/backup/mylvmbackup/default.nix b/nixpkgs/pkgs/tools/backup/mylvmbackup/default.nix
index 6c87fca05672..ad1fcf696944 100644
--- a/nixpkgs/pkgs/tools/backup/mylvmbackup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/mylvmbackup/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://www.lenzg.net/mylvmbackup/";
     description = "a tool for quickly creating full physical backups of a MySQL server's data files";
+    mainProgram = "mylvmbackup";
     license = lib.licenses.gpl2Only;
     maintainers = with lib.maintainers; [ ryantm ];
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/tools/backup/pyznap/default.nix b/nixpkgs/pkgs/tools/backup/pyznap/default.nix
index 81f3a99ecd91..fcb3ee17cb5a 100644
--- a/nixpkgs/pkgs/tools/backup/pyznap/default.nix
+++ b/nixpkgs/pkgs/tools/backup/pyznap/default.nix
@@ -23,6 +23,7 @@ buildPythonApplication rec {
   meta = {
     homepage = "https://github.com/yboetz/pyznap";
     description = "ZFS snapshot tool written in python";
+    mainProgram = "pyznap";
     license = with lib.licenses; [ gpl3 ];
     maintainers = with lib.maintainers; [ rbrewer ];
   };
diff --git a/nixpkgs/pkgs/tools/backup/rdedup/default.nix b/nixpkgs/pkgs/tools/backup/rdedup/default.nix
index c9b59782a585..0c8d4afb522d 100644
--- a/nixpkgs/pkgs/tools/backup/rdedup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/rdedup/default.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Data deduplication with compression and public key encryption";
+    mainProgram = "rdedup";
     homepage = "https://github.com/dpc/rdedup";
     license = licenses.mpl20;
     maintainers = with maintainers; [ dywedir ];
diff --git a/nixpkgs/pkgs/tools/backup/restic/rest-server.nix b/nixpkgs/pkgs/tools/backup/restic/rest-server.nix
index 9af1151518b6..62c31cd64ea7 100644
--- a/nixpkgs/pkgs/tools/backup/restic/rest-server.nix
+++ b/nixpkgs/pkgs/tools/backup/restic/rest-server.nix
@@ -16,6 +16,7 @@ buildGoModule rec {
   meta = with lib; {
     changelog = "https://github.com/restic/rest-server/blob/${src.rev}/CHANGELOG.md";
     description = "A high performance HTTP server that implements restic's REST backend API";
+    mainProgram = "rest-server";
     homepage = "https://github.com/restic/rest-server";
     license = licenses.bsd2;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/nixpkgs/pkgs/tools/backup/rotate-backups/default.nix b/nixpkgs/pkgs/tools/backup/rotate-backups/default.nix
index d64b0dee50a8..08f1c3ff3bc8 100644
--- a/nixpkgs/pkgs/tools/backup/rotate-backups/default.nix
+++ b/nixpkgs/pkgs/tools/backup/rotate-backups/default.nix
@@ -31,6 +31,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Simple command line interface for backup rotation";
+    mainProgram = "rotate-backups";
     homepage = "https://github.com/xolox/python-rotate-backups";
     license = licenses.mit;
     maintainers = with maintainers; [ eyjhb ];
diff --git a/nixpkgs/pkgs/tools/backup/sigtop/default.nix b/nixpkgs/pkgs/tools/backup/sigtop/default.nix
index b83dd061efe4..9c503be790d9 100644
--- a/nixpkgs/pkgs/tools/backup/sigtop/default.nix
+++ b/nixpkgs/pkgs/tools/backup/sigtop/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Utility to export messages, attachments and other data from Signal Desktop";
+    mainProgram = "sigtop";
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = with maintainers; [ fricklerhandwerk ];
diff --git a/nixpkgs/pkgs/tools/backup/stenc/default.nix b/nixpkgs/pkgs/tools/backup/stenc/default.nix
index fb8d71c73119..96e7ed5eca8d 100644
--- a/nixpkgs/pkgs/tools/backup/stenc/default.nix
+++ b/nixpkgs/pkgs/tools/backup/stenc/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "SCSI Tape Encryption Manager";
+    mainProgram = "stenc";
     homepage = "https://github.com/scsitape/stenc";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ woffs ];
diff --git a/nixpkgs/pkgs/tools/backup/ugarit-manifest-maker/default.nix b/nixpkgs/pkgs/tools/backup/ugarit-manifest-maker/default.nix
index 8c37a7b72ac7..10f397df6b2a 100644
--- a/nixpkgs/pkgs/tools/backup/ugarit-manifest-maker/default.nix
+++ b/nixpkgs/pkgs/tools/backup/ugarit-manifest-maker/default.nix
@@ -24,6 +24,7 @@ in with pkgs; eggDerivation rec {
   meta = with lib; {
     homepage = "https://www.kitten-technologies.co.uk/project/ugarit-manifest-maker/";
     description = "A tool for generating import manifests for Ugarit";
+    mainProgram = "ugarit-manifest-maker";
     license = licenses.bsd3;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/backup/wal-e/default.nix b/nixpkgs/pkgs/tools/backup/wal-e/default.nix
index 544f61918de9..3e77d5c3087f 100644
--- a/nixpkgs/pkgs/tools/backup/wal-e/default.nix
+++ b/nixpkgs/pkgs/tools/backup/wal-e/default.nix
@@ -28,6 +28,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = {
     description = "A Postgres WAL-shipping disaster recovery and replication toolkit";
+    mainProgram = "wal-e";
     homepage = "https://github.com/wal-e/wal-e";
     maintainers = [ ];
     license = lib.licenses.bsd3;
diff --git a/nixpkgs/pkgs/tools/backup/wal-g/default.nix b/nixpkgs/pkgs/tools/backup/wal-g/default.nix
index 6300dba6bff8..fe6a1bd2cdbd 100644
--- a/nixpkgs/pkgs/tools/backup/wal-g/default.nix
+++ b/nixpkgs/pkgs/tools/backup/wal-g/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "wal-g";
-  version = "2.0.1";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "wal-g";
     repo = "wal-g";
     rev = "v${version}";
-    sha256 = "sha256-5mwA55aAHwEFabGZ6c3pi8NLcYofvoe4bb/cFj7NWok=";
+    sha256 = "sha256-k+GaOb+o5b+Rmggk+Wq3NscDS+fIvyK0e/EhX6UMlqM=";
   };
 
-  vendorHash = "sha256-BbQuY6r30AkxlCZjY8JizaOrqEBdv7rIQet9KQwYB/g=";
+  vendorHash = "sha256-ZsVqR02D4YmZP/tVz2UWpXa6fM7HU7Hi2CSnvuVx9UU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -21,7 +21,7 @@ buildGoModule rec {
 
   tags = [ "brotli" "libsodium" ];
 
-  ldflags = [ "-s" "-w" "-X github.com/wal-g/wal-g/cmd/pg.WalgVersion=${version}" "-X github.com/wal-g/wal-g/cmd/pg.GitRevision=${src.rev}" ];
+  ldflags = [ "-s" "-w" "-X github.com/wal-g/wal-g/cmd/pg.walgVersion=${version}" "-X github.com/wal-g/wal-g/cmd/pg.gitRevision=${src.rev}" ];
 
   postInstall = ''
     mv $out/bin/pg $out/bin/wal-g
@@ -34,6 +34,7 @@ buildGoModule rec {
     homepage = "https://github.com/wal-g/wal-g";
     license = licenses.asl20;
     description = "An archival restoration tool for PostgreSQL";
+    mainProgram = "wal-g";
     maintainers = with maintainers; [ marsam ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/backup/zbackup/default.nix b/nixpkgs/pkgs/tools/backup/zbackup/default.nix
index 021c85707a60..c43a3d52af81 100644
--- a/nixpkgs/pkgs/tools/backup/zbackup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/zbackup/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A versatile deduplicating backup tool";
+    mainProgram = "zbackup";
     homepage = "http://zbackup.org/";
     platforms = lib.platforms.linux;
     license = lib.licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/tools/backup/zfs-prune-snapshots/default.nix b/nixpkgs/pkgs/tools/backup/zfs-prune-snapshots/default.nix
index 2c9e4a2fdf8a..18ddacd4d55f 100644
--- a/nixpkgs/pkgs/tools/backup/zfs-prune-snapshots/default.nix
+++ b/nixpkgs/pkgs/tools/backup/zfs-prune-snapshots/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Remove snapshots from one or more zpools that match given criteria";
+    mainProgram = "zfs-prune-snapshots";
     homepage = "https://github.com/bahamas10/zfs-prune-snapshots";
     license = licenses.mit;
     maintainers = [ maintainers.ymarkus ];
diff --git a/nixpkgs/pkgs/tools/backup/zfs-replicate/default.nix b/nixpkgs/pkgs/tools/backup/zfs-replicate/default.nix
index 82087a3f4cfa..0c9e2b0998a8 100644
--- a/nixpkgs/pkgs/tools/backup/zfs-replicate/default.nix
+++ b/nixpkgs/pkgs/tools/backup/zfs-replicate/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonApplication rec {
   pname = "zfs_replicate";
-  version = "3.2.9";
+  version = "3.2.10";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JMkZ4AexN++vPIPqzv9majdUkoAyos+Nm4Vlgeyx0Jg=";
+    hash = "sha256-LEBCdrJZLddJm2nz2JLfwskU8roN/MZlr79exFEWnRI=";
   };
 
   postPatch = ''
@@ -43,6 +43,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/alunduil/zfs-replicate";
     description = "ZFS Snapshot Replication";
+    mainProgram = "zfs-replicate";
     license = licenses.bsd2;
     maintainers = with maintainers; [ alunduil ];
   };
diff --git a/nixpkgs/pkgs/tools/backup/zfsnap/default.nix b/nixpkgs/pkgs/tools/backup/zfsnap/default.nix
index 36e369b4f30a..6e71f38e4e63 100644
--- a/nixpkgs/pkgs/tools/backup/zfsnap/default.nix
+++ b/nixpkgs/pkgs/tools/backup/zfsnap/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A portable, performant script to make rolling ZFS snapshots easy";
+    mainProgram = "zfsnap";
     homepage = "https://github.com/zfsnap/zfsnap";
     license = licenses.bsd3;
     maintainers = with maintainers; [ woffs ];
diff --git a/nixpkgs/pkgs/tools/bootloaders/refind/default.nix b/nixpkgs/pkgs/tools/bootloaders/refind/default.nix
index de2399adb520..1a0b333b70a7 100644
--- a/nixpkgs/pkgs/tools/bootloaders/refind/default.nix
+++ b/nixpkgs/pkgs/tools/bootloaders/refind/default.nix
@@ -1,4 +1,13 @@
-{ lib, stdenv, fetchurl, fetchpatch, gnu-efi, nixosTests }:
+{ lib
+, stdenv
+, fetchurl
+, gnu-efi
+, nixosTests
+, efibootmgr
+, openssl
+, sbsigntool
+, makeWrapper
+}:
 
 let
   archids = {
@@ -17,7 +26,7 @@ stdenv.mkDerivation rec {
   version = "0.14.0.2";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/refind/${version}/${pname}-src-${version}.tar.gz";
+    url = "mirror://sourceforge/project/refind/${version}/refind-src-${version}.tar.gz";
     hash = "sha256-JqDFXf01ZUmeH4LY/ldGTb7xnKiGzm0BqBUii478iw8=";
   };
 
@@ -26,6 +35,7 @@ stdenv.mkDerivation rec {
     ./0001-toolchain.patch
   ];
 
+  nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ gnu-efi ];
 
   hardeningDisable = [ "stackprotector" ];
@@ -95,18 +105,18 @@ stdenv.mkDerivation rec {
     install -D -m0644 keys/* $out/share/refind/keys/
 
     # Fix variable definition of 'RefindDir' which is used to locate ressource files.
-    sed -i "s,\bRefindDir=.*,RefindDir=$out/share/refind,g" $out/bin/refind-install
-
-    # Patch uses of `which`.  We could patch in calls to efibootmgr,
-    # openssl, convert, and openssl, but that would greatly enlarge
-    # refind's closure (from ca 28MB to over 400MB).
-    sed -i 's,`which \(.*\)`,`type -p \1`,g' $out/bin/refind-install
-    sed -i 's,`which \(.*\)`,`type -p \1`,g' $out/bin/refind-mvrefind
-    sed -i 's,`which \(.*\)`,`type -p \1`,g' $out/bin/refind-mkfont
+    sed -i "s,\bRefindDir=\"\$This.*,RefindDir=$out/share/refind,g" $out/bin/refind-install
 
     runHook postInstall
   '';
 
+  postInstall = ''
+    wrapProgram $out/bin/refind-install \
+      --prefix PATH : ${lib.makeBinPath [ efibootmgr openssl sbsigntool ]}
+    wrapProgram $out/bin/refind-mvrefind \
+      --prefix PATH : ${lib.makeBinPath [ efibootmgr ]}
+  '';
+
   passthru.tests = {
     uefiCdrom = nixosTests.boot.uefiCdrom;
   };
@@ -129,7 +139,7 @@ stdenv.mkDerivation rec {
       Linux kernels that provide EFI stub support.
     '';
     homepage = "http://refind.sourceforge.net/";
-    maintainers = with maintainers; [ AndersonTorres samueldr ];
+    maintainers = with maintainers; [ AndersonTorres samueldr chewblacka ];
     platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
     license = licenses.gpl3Plus;
   };
diff --git a/nixpkgs/pkgs/tools/compression/crabz/default.nix b/nixpkgs/pkgs/tools/compression/crabz/default.nix
index f8cb155f272e..debfef0c3c53 100644
--- a/nixpkgs/pkgs/tools/compression/crabz/default.nix
+++ b/nixpkgs/pkgs/tools/compression/crabz/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "crabz";
-  version = "0.8.1";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "sstadick";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-w/e0NFmBsYNEECT+2zHEm/UUpp5LxPYr0BdKikT2o1M=";
+    sha256 = "sha256-qKyrAao4b+D9KhK0euNcn2/YyXGeUjgCfdVtDxy6cuQ=";
   };
 
-  cargoSha256 = "sha256-9VOJeRvyudZSCaUZ1J9gHMEoWXEnEhCZPxvfYGRKzj0=";
+  cargoHash = "sha256-S3/JDheTBwYS3uEAwwK+bAtzp0LP8FHHxyOnIQkKqlA=";
 
   nativeBuildInputs = [ cmake ];
 
diff --git a/nixpkgs/pkgs/tools/compression/lzham/default.nix b/nixpkgs/pkgs/tools/compression/lzham/default.nix
index 5915d1439dff..7d2879f63cd8 100644
--- a/nixpkgs/pkgs/tools/compression/lzham/default.nix
+++ b/nixpkgs/pkgs/tools/compression/lzham/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Lossless data compression codec with LZMA-like ratios but 1.5x-8x faster decompression speed";
+    mainProgram = "lzhamtest";
     homepage = "https://github.com/richgel999/lzham_codec";
     license = with licenses; [ mit ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/compression/lzip/default.nix b/nixpkgs/pkgs/tools/compression/lzip/default.nix
index cbf789d1bbf1..82052bab6e3d 100644
--- a/nixpkgs/pkgs/tools/compression/lzip/default.nix
+++ b/nixpkgs/pkgs/tools/compression/lzip/default.nix
@@ -7,19 +7,16 @@
 
 stdenv.mkDerivation rec {
   pname = "lzip";
-  version = "1.24";
+  version = "1.24.1";
   outputs = [ "out" "man" "info" ];
 
   src = fetchurl {
     url = "mirror://savannah/lzip/${pname}-${version}.tar.gz";
-    sha256 = "sha256-1CZZIpsQ4GbutugetnPN2JO2cuUS0mcZwtlZdVVspWw=";
+    hash = "sha256-MMnLagYF9HnElsN262KaSLChaW0WfjweCQxd76SBsWI=";
   };
 
   patches = lib.optionals stdenv.hostPlatform.isMinGW [
     ./mingw-install-exe-file.patch
-    # https://lists.nongnu.org/archive/html/lzip-bug/2024-02/msg00015.html
-    # patch provided by upstream, to be removed in the next release
-    ./mingw-mkdir-one-argument.patch
   ];
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/compression/lzip/mingw-mkdir-one-argument.patch b/nixpkgs/pkgs/tools/compression/lzip/mingw-mkdir-one-argument.patch
deleted file mode 100644
index efa0d8e3a067..000000000000
--- a/nixpkgs/pkgs/tools/compression/lzip/mingw-mkdir-one-argument.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- lzip-1.24/main.cc     2024-01-26 00:08:47.000000000 +0100
-+++ lzip-1.24.1/src/main.cc   2024-02-06 16:04:00.000000000 +0100
-@@ -42,8 +42,10 @@
- #if defined __MSVCRT__ || defined __OS2__ || defined __DJGPP__
- #include <io.h>
- #if defined __MSVCRT__
-+#include <direct.h>
- #define fchmod(x,y) 0
- #define fchown(x,y,z) 0
-+#define mkdir(name,mode) _mkdir(name)
- #define strtoull std::strtoul
- #define SIGHUP SIGTERM
- #define S_ISSOCK(x) 0
diff --git a/nixpkgs/pkgs/tools/compression/ouch/default.nix b/nixpkgs/pkgs/tools/compression/ouch/default.nix
index 07a5302b5a17..42ae945aeea0 100644
--- a/nixpkgs/pkgs/tools/compression/ouch/default.nix
+++ b/nixpkgs/pkgs/tools/compression/ouch/default.nix
@@ -39,9 +39,7 @@ rustPlatform.buildRustPackage rec {
     installShellCompletion artifacts/ouch.{bash,fish} --zsh artifacts/_ouch
   '';
 
-  env = { OUCH_ARTIFACTS_FOLDER = "artifacts"; } //
-    # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-    lib.optionalAttrs stdenv.cc.isClang { NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}"; };
+  env.OUCH_ARTIFACTS_FOLDER = "artifacts";
 
   meta = with lib; {
     description = "A command-line utility for easily compressing and decompressing files and directories";
diff --git a/nixpkgs/pkgs/tools/compression/xz/default.nix b/nixpkgs/pkgs/tools/compression/xz/default.nix
index 2f10236b46b3..480eff197088 100644
--- a/nixpkgs/pkgs/tools/compression/xz/default.nix
+++ b/nixpkgs/pkgs/tools/compression/xz/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "xz";
-  version = "5.6.0";
+  version = "5.6.1";
 
   src = fetchurl {
     url = with finalAttrs; "https://github.com/tukaani-project/xz/releases/download/v${version}/xz-${version}.tar.bz2";
-    hash = "sha256-iMhjHO+6kWZP3EexS7dT4YdvSWSgfbZQgh0gOZKx4eo=";
+    hash = "sha256-0wBCJkmgEksRIWML5VnIkM7t8yZn1wZLgSiTMWbCF8g=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/tools/filesystems/9pfs/default.nix b/nixpkgs/pkgs/tools/filesystems/9pfs/default.nix
index 7b652bd68aa0..51238e97f42a 100644
--- a/nixpkgs/pkgs/tools/filesystems/9pfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/9pfs/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://github.com/ftrvxmtrx/9pfs";
     description = "FUSE-based client of the 9P network filesystem protocol";
+    mainProgram = "9pfs";
     maintainers = [ lib.maintainers.eelco ];
     platforms = lib.platforms.unix;
     license = with lib.licenses; [ lpl-102 bsd2 ];
diff --git a/nixpkgs/pkgs/tools/filesystems/archivemount/default.nix b/nixpkgs/pkgs/tools/filesystems/archivemount/default.nix
index 22e41611aef8..6c0566153a9f 100644
--- a/nixpkgs/pkgs/tools/filesystems/archivemount/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/archivemount/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Gateway between FUSE and libarchive: allows mounting of cpio, .tar.gz, .tar.bz2 archives";
+    mainProgram = "archivemount";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.unix;
   };
diff --git a/nixpkgs/pkgs/tools/filesystems/bcache-tools/bcache-udev-modern.patch b/nixpkgs/pkgs/tools/filesystems/bcache-tools/bcache-udev-modern.patch
index c6cf79785b73..bdf78dcc3cd4 100644
--- a/nixpkgs/pkgs/tools/filesystems/bcache-tools/bcache-udev-modern.patch
+++ b/nixpkgs/pkgs/tools/filesystems/bcache-tools/bcache-udev-modern.patch
@@ -1,15 +1,15 @@
 This patch does two things:
-1) Drops probe-bcache, so now new util-linux detecting functionality is used.
-2) Drops bcache-register, using kmod (built in udev) and moving registering device
-   into rule using 'sh'.
-This reduces things that need to be present in initrd, replacing them with already
-existing functionality and reducing overall initrd size.
+1) Drops probe-bcache, so now util-linux detecting functionality is used.
+2) Drops bcache-register, moving registering device functionality into rule
+   using 'sh'.
+This reduces things that need to be present in initrd, replacing them with
+already existing functionality and reducing overall initrd size.
 
 diff --git a/69-bcache.rules b/69-bcache.rules
-index 5d28e70..6a52893 100644
+index 9cc7f0d..6a52893 100644
 --- a/69-bcache.rules
 +++ b/69-bcache.rules
-@@ -10,15 +10,11 @@ KERNEL=="fd*|sr*", GOTO="bcache_end"
+@@ -10,16 +10,11 @@ KERNEL=="fd*|sr*", GOTO="bcache_end"
  # It recognised bcache (util-linux 2.24+)
  ENV{ID_FS_TYPE}=="bcache", GOTO="bcache_backing_found"
  # It recognised something else; bail
@@ -22,31 +22,21 @@ index 5d28e70..6a52893 100644
 +GOTO="bcache_backing_end"
  
  LABEL="bcache_backing_found"
+ RUN{builtin}+="kmod load bcache"
 -RUN+="bcache-register $tempnode"
-+RUN{builtin}+="kmod load bcache"
 +RUN+="/bin/sh -c 'echo $tempnode > /sys/fs/bcache/register_quiet'"
  LABEL="bcache_backing_end"
  
  # Cached devices: symlink
 diff --git a/Makefile b/Makefile
-index 3f8d87b..15638a7 100644
+index c824ae3..c5f7309 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -9,7 +9,7 @@ all: make-bcache probe-bcache bcache-super-show
+@@ -9,7 +9,6 @@ all: make-bcache probe-bcache bcache-super-show bcache-register
  
  install: make-bcache probe-bcache bcache-super-show
  	$(INSTALL) -m0755 make-bcache bcache-super-show	$(DESTDIR)${PREFIX}/sbin/
 -	$(INSTALL) -m0755 probe-bcache bcache-register		$(DESTDIR)$(UDEVLIBDIR)/
-+#	$(INSTALL) -m0755 probe-bcache bcache-register		$(DESTDIR)$(UDEVLIBDIR)/
  	$(INSTALL) -m0644 69-bcache.rules	$(DESTDIR)$(UDEVLIBDIR)/rules.d/
  	$(INSTALL) -m0644 -- *.8 $(DESTDIR)${PREFIX}/share/man/man8/
  	$(INSTALL) -D -m0755 initramfs/hook	$(DESTDIR)/usr/share/initramfs-tools/hooks/bcache
-diff --git a/bcache-register b/bcache-register
-index 9b592bc..75b4faf 100755
---- a/bcache-register
-+++ b/bcache-register
-@@ -1,4 +1,3 @@
- #!/bin/sh
--/sbin/modprobe -qba bcache
- test -f /sys/fs/bcache/register_quiet && echo "$1" > /sys/fs/bcache/register_quiet
- 
diff --git a/nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix b/nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix
index 58f6a05992e9..9cd8199005b9 100644
--- a/nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bcache-tools";
-  version = "1.0.7";
+  version = "1.0.8";
 
   src = fetchFromGitHub {
     owner = "g2p";
     repo = "bcache-tools";
     rev = "v${version}";
-    hash = "sha256-Ors2xXRrVTf8Cq3BYnSVSfJy/nyGjT5BGLSNpxOcHR4=";
+    hash = "sha256-6gy0ymecMgEHXbwp/nXHlrUEeDFnmFXWZZPlzP292g4=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/tools/filesystems/btrfs-heatmap/default.nix b/nixpkgs/pkgs/tools/filesystems/btrfs-heatmap/default.nix
index 9de91738e74d..ee09a25ceb14 100644
--- a/nixpkgs/pkgs/tools/filesystems/btrfs-heatmap/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/btrfs-heatmap/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Visualize the layout of a mounted btrfs";
+    mainProgram = "btrfs-heatmap";
     homepage = "https://github.com/knorrie/btrfs-heatmap";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/filesystems/btrfs-snap/default.nix b/nixpkgs/pkgs/tools/filesystems/btrfs-snap/default.nix
index efc2ddafa419..40838c1fed62 100644
--- a/nixpkgs/pkgs/tools/filesystems/btrfs-snap/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/btrfs-snap/default.nix
@@ -24,6 +24,7 @@ stdenvNoCC.mkDerivation rec {
   '';
   meta = with lib; {
     description = "Create and maintain the history of snapshots of btrfs filesystems";
+    mainProgram = "btrfs-snap";
     homepage = "https://github.com/jf647/btrfs-snap";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ lionello ];
diff --git a/nixpkgs/pkgs/tools/filesystems/catcli/default.nix b/nixpkgs/pkgs/tools/filesystems/catcli/default.nix
index a2f5402dca25..b8668a43c0ce 100644
--- a/nixpkgs/pkgs/tools/filesystems/catcli/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/catcli/default.nix
@@ -31,6 +31,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "The command line catalog tool for your offline data";
+    mainProgram = "catcli";
     homepage = "https://github.com/deadc0de6/catcli";
     changelog = "https://github.com/deadc0de6/catcli/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/filesystems/ceph-csi/default.nix b/nixpkgs/pkgs/tools/filesystems/ceph-csi/default.nix
index 7ee65616e0b1..29224aba38b7 100644
--- a/nixpkgs/pkgs/tools/filesystems/ceph-csi/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/ceph-csi/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://ceph.com/";
     description = "Container Storage Interface (CSI) driver for Ceph RBD and CephFS";
+    mainProgram = "cephcsi";
     license = [ licenses.asl20 ];
     maintainers = with maintainers; [ johanot ];
     platforms = [ "x86_64-linux" "aarch64-linux" ];
diff --git a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
index ebaf6532df52..27d766060704 100644
--- a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
@@ -169,7 +169,28 @@ let
 
   # Watch out for python <> boost compatibility
   python = python310.override {
-    packageOverrides = self: super: let cryptographyOverrideVersion = "40.0.1"; in {
+    packageOverrides = self: super: let
+      cryptographyOverrideVersion = "40.0.1";
+      bcryptOverrideVersion = "4.0.1";
+    in {
+      # Ceph does not support `bcrypt` > 4.0 yet:
+      # * Upstream issue: https://tracker.ceph.com/issues/63529
+      #   > Python Sub-Interpreter Model Used by ceph-mgr Incompatible With Python Modules Based on PyO3
+      bcrypt = super.bcrypt.overridePythonAttrs (old: rec {
+        pname = "bcrypt";
+        version = bcryptOverrideVersion;
+        src = fetchPypi {
+          inherit pname version;
+          hash = "sha256-J9N1kDrIJhz+QEf2cJ0W99GNObHskqr3KvmJVSplDr0=";
+        };
+        cargoRoot = "src/_bcrypt";
+        cargoDeps = rustPlatform.fetchCargoTarball {
+          inherit src;
+          sourceRoot = "${pname}-${version}/${cargoRoot}";
+          name = "${pname}-${version}";
+          hash = "sha256-lDWX69YENZFMu7pyBmavUZaalGvFqbHSHfkwkzmDQaY=";
+        };
+      });
       # Ceph does not support `cryptography` > 40 yet:
       # * https://github.com/NixOS/nixpkgs/pull/281858#issuecomment-1899358602
       # * Upstream issue: https://tracker.ceph.com/issues/63529
@@ -218,6 +239,9 @@ let
           inherit version;
           hash = "sha256-hBSYub7GFiOxtsR+u8AjZ8B9YODhlfGXkIF/EMyNsLc=";
         };
+        pytestFlagsArray = [
+          "-W" "ignore::pytest.PytestRemovedIn8Warning"
+        ];
       });
 
       # Ceph does not support `kubernetes` >= 19, see:
diff --git a/nixpkgs/pkgs/tools/filesystems/cpcfs/default.nix b/nixpkgs/pkgs/tools/filesystems/cpcfs/default.nix
index 93bfdd8d23fa..3b1d54ba427c 100644
--- a/nixpkgs/pkgs/tools/filesystems/cpcfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/cpcfs/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Manipulating CPC dsk images and files";
+    mainProgram = "cpcfs";
     homepage = "https://github.com/derikz/cpcfs/" ;
     license = licenses.bsd2;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/tools/filesystems/curlftpfs/default.nix b/nixpkgs/pkgs/tools/filesystems/curlftpfs/default.nix
index 1263ccb8565e..7b3760ba5aa2 100644
--- a/nixpkgs/pkgs/tools/filesystems/curlftpfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/curlftpfs/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Filesystem for accessing FTP hosts based on FUSE and libcurl";
+    mainProgram = "curlftpfs";
     homepage = "https://curlftpfs.sourceforge.net";
     license = licenses.gpl2Only;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/filesystems/darling-dmg/default.nix b/nixpkgs/pkgs/tools/filesystems/darling-dmg/default.nix
index 54d23e770db1..8884ef2f63d5 100644
--- a/nixpkgs/pkgs/tools/filesystems/darling-dmg/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/darling-dmg/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.darlinghq.org/";
     description = "Darling lets you open macOS dmgs on Linux";
+    mainProgram = "darling-dmg";
     platforms = platforms.unix;
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Luflosi ];
diff --git a/nixpkgs/pkgs/tools/filesystems/dduper/default.nix b/nixpkgs/pkgs/tools/filesystems/dduper/default.nix
index 7f876df37ee1..c63846e2c46a 100644
--- a/nixpkgs/pkgs/tools/filesystems/dduper/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/dduper/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fast block-level out-of-band BTRFS deduplication tool";
+    mainProgram = "dduper";
     homepage = "https://github.com/Lakshmipathi/dduper";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ thesola10 ];
diff --git a/nixpkgs/pkgs/tools/filesystems/disorderfs/default.nix b/nixpkgs/pkgs/tools/filesystems/disorderfs/default.nix
index 27dc55fb9263..14106cfd4ba9 100644
--- a/nixpkgs/pkgs/tools/filesystems/disorderfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/disorderfs/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An overlay FUSE filesystem that introduces non-determinism into filesystem metadata";
+    mainProgram = "disorderfs";
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ pSub ];
diff --git a/nixpkgs/pkgs/tools/filesystems/djmount/default.nix b/nixpkgs/pkgs/tools/filesystems/djmount/default.nix
index d3a75e420db9..52a89013ced6 100644
--- a/nixpkgs/pkgs/tools/filesystems/djmount/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/djmount/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://djmount.sourceforge.net/";
     description = "UPnP AV client, mounts as a Linux filesystem the media content of compatible UPnP AV devices";
+    mainProgram = "djmount";
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.jagajaga ];
     license = lib.licenses.gpl2;
diff --git a/nixpkgs/pkgs/tools/filesystems/duff/default.nix b/nixpkgs/pkgs/tools/filesystems/duff/default.nix
index f980c7613332..4c6f3caff79a 100644
--- a/nixpkgs/pkgs/tools/filesystems/duff/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/duff/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Quickly find duplicate files";
+    mainProgram = "duff";
     longDescription = ''
       Duff is a Unix command-line utility for quickly finding duplicates in
       a given set of files.
diff --git a/nixpkgs/pkgs/tools/filesystems/httpfs/default.nix b/nixpkgs/pkgs/tools/filesystems/httpfs/default.nix
index f7a42f192eef..4cf618826b8f 100644
--- a/nixpkgs/pkgs/tools/filesystems/httpfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/httpfs/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "FUSE-based HTTP filesystem for Linux";
+    mainProgram = "httpfs2";
 
     homepage = "https://httpfs.sourceforge.net/";
 
diff --git a/nixpkgs/pkgs/tools/filesystems/rar2fs/default.nix b/nixpkgs/pkgs/tools/filesystems/rar2fs/default.nix
index 3b42a7890fbd..0c752e711453 100644
--- a/nixpkgs/pkgs/tools/filesystems/rar2fs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/rar2fs/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , autoreconfHook
 , fuse
-, unrar
+, unrar_6
 }:
 
 stdenv.mkDerivation rec {
@@ -23,10 +23,10 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ fuse unrar ];
+  buildInputs = [ fuse unrar_6 ];
 
   configureFlags = [
-    "--with-unrar=${unrar.src}/unrar"
+    "--with-unrar=${unrar_6.src}/unrar"
     "--disable-static-unrar"
   ];
 
diff --git a/nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix b/nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
index ecb9d18fd6c0..0d4ca4942165 100644
--- a/nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "squashfs-tools-ng";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchurl {
     url = "https://infraroot.at/pub/squashfs/squashfs-tools-ng-${version}.tar.xz";
-    sha256 = "sha256-1zYHYJXVhJdWQKeM0VVM4VzL3r3XPXebfR7IAEgyt+c=";
+    sha256 = "sha256-X5HfXrTUrmtvYT6bfNNG2vRTc6GwZcbBsIkahqvhPo8=";
   };
 
   nativeBuildInputs = [ doxygen graphviz pkg-config perl ];
diff --git a/nixpkgs/pkgs/tools/filesystems/tar2ext4/default.nix b/nixpkgs/pkgs/tools/filesystems/tar2ext4/default.nix
index 81df5e64d9f3..dd4ab499de92 100644
--- a/nixpkgs/pkgs/tools/filesystems/tar2ext4/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/tar2ext4/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tar2ext4";
-  version = "0.11.4";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "hcsshim";
     rev = "v${version}";
-    sha256 = "sha256-bu1uLJmFSetTv1R3qyCtZxba+wxjDDSkEpBwKNZ/meM=";
+    sha256 = "sha256-p0sNdCC8T5MDVimkS2DJusfuM788QxEtgKJNGlqrkAU=";
   };
 
   sourceRoot = "${src.name}/cmd/tar2ext4";
diff --git a/nixpkgs/pkgs/tools/games/ajour/default.nix b/nixpkgs/pkgs/tools/games/ajour/default.nix
index 0f90a794987e..7416d4f717ab 100644
--- a/nixpkgs/pkgs/tools/games/ajour/default.nix
+++ b/nixpkgs/pkgs/tools/games/ajour/default.nix
@@ -83,6 +83,7 @@ in rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "World of Warcraft addon manager written in Rust";
+    mainProgram = "ajour";
     longDescription = ''
       Ajour is a World of Warcraft addon manager written in Rust with a
       strong focus on performance and simplicity. The project is
diff --git a/nixpkgs/pkgs/tools/games/gamemode/default.nix b/nixpkgs/pkgs/tools/games/gamemode/default.nix
index 928b9233bccd..13a619c770c4 100644
--- a/nixpkgs/pkgs/tools/games/gamemode/default.nix
+++ b/nixpkgs/pkgs/tools/games/gamemode/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
     "--libexecdir=libexec"
   ];
 
-  doCheck = true;
+  doCheck = false; # https://github.com/FeralInteractive/gamemode/issues/468
   nativeCheckInputs = [
     appstream
   ];
diff --git a/nixpkgs/pkgs/tools/games/joystickwake/default.nix b/nixpkgs/pkgs/tools/games/joystickwake/default.nix
index 9b2012857db2..e321daf2dd8f 100644
--- a/nixpkgs/pkgs/tools/games/joystickwake/default.nix
+++ b/nixpkgs/pkgs/tools/games/joystickwake/default.nix
@@ -19,6 +19,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A joystick-aware screen waker";
+    mainProgram = "joystickwake";
     longDescription = ''
       Linux gamers often find themselves unexpectedly staring at a blank screen, because their display server fails to recognize game controllers as input devices, allowing the screen blanker to activate during gameplay.
       This program works around the problem by temporarily disabling screen blankers when joystick activity is detected.
diff --git a/nixpkgs/pkgs/tools/games/jpsxdec/default.nix b/nixpkgs/pkgs/tools/games/jpsxdec/default.nix
index 85fd9d65ada1..58876d678969 100644
--- a/nixpkgs/pkgs/tools/games/jpsxdec/default.nix
+++ b/nixpkgs/pkgs/tools/games/jpsxdec/default.nix
@@ -7,7 +7,7 @@
 , makeWrapper
 , makeDesktopItem
 , copyDesktopItems
-, canonicalize-jars-hook
+, stripJavaArchivesHook
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
     jdk8
     makeWrapper
     copyDesktopItems
-    canonicalize-jars-hook
+    stripJavaArchivesHook
   ];
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/tools/games/minecraft/amidst/default.nix b/nixpkgs/pkgs/tools/games/minecraft/amidst/default.nix
index 5e6a79e1cba1..3dae62507106 100644
--- a/nixpkgs/pkgs/tools/games/minecraft/amidst/default.nix
+++ b/nixpkgs/pkgs/tools/games/minecraft/amidst/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/toolbox4minecraft/amidst";
     description = "Advanced Minecraft Interface and Data/Structure Tracking";
+    mainProgram = "amidst";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3Only;
     maintainers = [ maintainers.ivar ];
diff --git a/nixpkgs/pkgs/tools/games/minecraft/fabric-installer/default.nix b/nixpkgs/pkgs/tools/games/minecraft/fabric-installer/default.nix
index 27c70d38a06c..4a11a08a42e6 100644
--- a/nixpkgs/pkgs/tools/games/minecraft/fabric-installer/default.nix
+++ b/nixpkgs/pkgs/tools/games/minecraft/fabric-installer/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://fabricmc.net/";
     description = "A lightweight, experimental modding toolchain for Minecraft";
+    mainProgram = "fabric-installer";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
     maintainers = [ maintainers.ivar ];
diff --git a/nixpkgs/pkgs/tools/games/minecraft/mcaselector/default.nix b/nixpkgs/pkgs/tools/games/minecraft/mcaselector/default.nix
index 395be450f65c..a2099c4e382e 100644
--- a/nixpkgs/pkgs/tools/games/minecraft/mcaselector/default.nix
+++ b/nixpkgs/pkgs/tools/games/minecraft/mcaselector/default.nix
@@ -33,6 +33,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://github.com/Querz/mcaselector";
     description = "A tool to select chunks from Minecraft worlds for deletion or export";
+    mainProgram = "mcaselector";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.mit;
     maintainers = [ maintainers.Scrumplex ];
diff --git a/nixpkgs/pkgs/tools/games/minecraft/minecraft-server-hibernation/default.nix b/nixpkgs/pkgs/tools/games/minecraft/minecraft-server-hibernation/default.nix
index ff0e7873827b..3837b890632b 100644
--- a/nixpkgs/pkgs/tools/games/minecraft/minecraft-server-hibernation/default.nix
+++ b/nixpkgs/pkgs/tools/games/minecraft/minecraft-server-hibernation/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Autostart and stop minecraft-server when players join/leave";
+    mainProgram = "msh";
     homepage = "https://github.com/gekware/minecraft-server-hibernation";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ squarepear ];
diff --git a/nixpkgs/pkgs/tools/games/mymcplus/default.nix b/nixpkgs/pkgs/tools/games/mymcplus/default.nix
index 0e5abb1e8994..c94ef8768c07 100644
--- a/nixpkgs/pkgs/tools/games/mymcplus/default.nix
+++ b/nixpkgs/pkgs/tools/games/mymcplus/default.nix
@@ -27,6 +27,7 @@ pythonPackages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://git.sr.ht/~thestr4ng3r/mymcplus";
     description = "A PlayStation 2 memory card manager";
+    mainProgram = "mymcplus";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/tools/games/pokefinder/default.nix b/nixpkgs/pkgs/tools/games/pokefinder/default.nix
index 16439309b413..de53fb839af9 100644
--- a/nixpkgs/pkgs/tools/games/pokefinder/default.nix
+++ b/nixpkgs/pkgs/tools/games/pokefinder/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Admiral-Fish/PokeFinder";
     description = "Cross platform Pokémon RNG tool";
+    mainProgram = "PokeFinder";
     license = licenses.gpl3Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ leo60228 ];
diff --git a/nixpkgs/pkgs/tools/games/steamback/default.nix b/nixpkgs/pkgs/tools/games/steamback/default.nix
index 42e5ec3b2ef9..bb91fa41c618 100644
--- a/nixpkgs/pkgs/tools/games/steamback/default.nix
+++ b/nixpkgs/pkgs/tools/games/steamback/default.nix
@@ -58,6 +58,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "A Decky plugin to add versioned save-game snapshots to Steam-cloud enabled games";
+    mainProgram = "steamback";
     homepage = "https://github.com/geeksville/steamback";
     license = licenses.gpl3;
     maintainers = with maintainers; [ AngryAnt ];
diff --git a/nixpkgs/pkgs/tools/games/steamtinkerlaunch/default.nix b/nixpkgs/pkgs/tools/games/steamtinkerlaunch/default.nix
index 4f37109f5437..f9db25353499 100644
--- a/nixpkgs/pkgs/tools/games/steamtinkerlaunch/default.nix
+++ b/nixpkgs/pkgs/tools/games/steamtinkerlaunch/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Linux wrapper tool for use with the Steam client for custom launch options and 3rd party programs";
+    mainProgram = "steamtinkerlaunch";
     homepage = "https://github.com/sonic2kk/steamtinkerlaunch";
     license = licenses.gpl3;
     maintainers = with maintainers; [ urandom ];
diff --git a/nixpkgs/pkgs/tools/games/ukmm/default.nix b/nixpkgs/pkgs/tools/games/ukmm/default.nix
index 5f2d366e7f9b..389b7486b8b9 100644
--- a/nixpkgs/pkgs/tools/games/ukmm/default.nix
+++ b/nixpkgs/pkgs/tools/games/ukmm/default.nix
@@ -71,6 +71,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A new mod manager for The Legend of Zelda: Breath of the Wild";
+    mainProgram = "ukmm";
     homepage = "https://github.com/NiceneNerd/ukmm";
     changelog = "https://github.com/NiceneNerd/ukmm/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/tools/graphics/asymptote/default.nix b/nixpkgs/pkgs/tools/graphics/asymptote/default.nix
index 30681663a7ce..aeb51d66bf6f 100644
--- a/nixpkgs/pkgs/tools/graphics/asymptote/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/asymptote/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchFromGitHub
-, autoreconfHook, bison, glm, flex, wrapQtAppsHook, cmake
-, freeglut, ghostscriptX, imagemagick, fftw
+{ lib, stdenv, fetchurl, fetchpatch
+, autoreconfHook, bison, glm, flex, wrapQtAppsHook, cmake, pkg-config
+, freeglut, ghostscriptX, imagemagick, fftw, eigen, libtirpc
 , boehmgc, libGLU, libGL, mesa, ncurses, readline, gsl, libsigsegv
 , python3, qtbase, qtsvg, boost
 , zlib, perl, curl
@@ -9,16 +9,25 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.87";
+  version = "2.88";
   pname = "asymptote";
 
-  src = fetchFromGitHub {
-    owner = "vectorgraphics";
-    repo = pname;
-    rev = version;
-    hash = "sha256-xzRZ7NOWeu+uC5WeTxwh5MFm7psXMhxrxucT4PVtRxM=";
+  outputs = [ "out" "man" "info" "doc" "tex" ];
+
+  src = fetchurl {
+    url = "mirror://sourceforge/asymptote/${version}/asymptote-${version}.src.tgz";
+    hash = "sha256-DecadD+m7pORuH3Sdcs/5M3vUbN6rhSkFoNN0Soq9bs=";
   };
 
+  patches = [
+    (fetchpatch {
+      # partial fix for macOS XDR/V3D support (LDFLAGS change seems like an unrelated bugfix)
+      name = "restore-LDFLAGS-dont-look-for-tirpc-under-MacOS.patch";
+      url = "https://github.com/vectorgraphics/asymptote/commit/7e17096b22d18d133d1bc5916b6e32c0cb24ad10.patch";
+      hash = "sha256-olCFzqfZwWOAjqlB5lDPXYRHU9i3VQNgoR0cO5TmW98=";
+    })
+  ];
+
   nativeBuildInputs = [
     autoreconfHook
     bison
@@ -27,15 +36,16 @@ stdenv.mkDerivation rec {
     texinfo
     wrapQtAppsHook
     cmake
+    pkg-config
   ];
 
   buildInputs = [
-    ghostscriptX imagemagick fftw
+    ghostscriptX imagemagick fftw eigen
     boehmgc ncurses readline gsl libsigsegv
     zlib perl curl qtbase qtsvg boost
     (texliveSmall.withPackages (ps: with ps; [ epsf cm-super ps.texinfo media9 ocgx2 collection-latexextra ]))
     (python3.withPackages (ps: with ps; [ cson numpy pyqt5 ]))
-  ];
+  ] ++ lib.optionals stdenv.isLinux [ libtirpc ];
 
   propagatedBuildInputs = [
     glm
@@ -47,14 +57,18 @@ stdenv.mkDerivation rec {
 
   dontWrapQtApps = true;
 
+  # Do not build $tex/ls-R which will be generated by texlive.combine
   preConfigure = ''
     HOME=$TMP
+    substituteInPlace Makefile.in \
+      --replace-fail 'install: install-notexhash install-texhash' 'install: install-notexhash install-asy'
+    prependToVar configureFlags "--with-latex=$tex/tex/latex" "--with-context=$tex/tex/context/third"
   '';
 
-  configureFlags = [
-    "--with-latex=$out/share/texmf/tex/latex"
-    "--with-context=$out/share/texmf/tex/context/third"
-  ];
+  # do not use bundled libgc.so
+  configureFlags = [ "--enable-gc=system" ]
+    # TODO add open_memstream to enable XDR/V3D on Darwin (requires memstream or >=10.13 Apple SDK)
+    ++ lib.optional stdenv.isDarwin "--enable-xdr=no";
 
   env.NIX_CFLAGS_COMPILE = "-I${boehmgc.dev}/include/gc";
 
@@ -62,12 +76,11 @@ stdenv.mkDerivation rec {
     rm "$out"/bin/xasy
     makeQtWrapper "$out"/share/asymptote/GUI/xasy.py "$out"/bin/xasy --prefix PATH : "$out"/bin
 
-    mv $out/share/info/asymptote/*.info $out/share/info/
-    sed -i -e 's|(asymptote/asymptote)|(asymptote)|' $out/share/info/asymptote.info
-    rmdir $out/share/info/asymptote
-    rm -f $out/share/info/dir
+    mv "$info"/share/info/asymptote/*.info "$info"/share/info/
+    sed -i -e 's|(asymptote/asymptote)|(asymptote)|' "$info"/share/info/asymptote.info
+    rmdir "$info"/share/info/asymptote
+    rm -f "$info"/share/info/dir
 
-    rm -rf $out/share/texmf
     install -Dt $out/share/emacs/site-lisp/${pname} $out/share/asymptote/*.el
   '';
 
diff --git a/nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix b/nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix
index 0a54626419b5..7fdbe3b13f64 100644
--- a/nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gromit-mpx";
-  version = "1.5.1";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "bk138";
     repo = "gromit-mpx";
     rev = version;
-    sha256 = "sha256-6sjps0wbB0sTaQtehRmz2KBWxqk3pqJmQs9htqxmJwo=";
+    sha256 = "sha256-olDQGw0qDWwXpqRopVoEPDXLRpFiiBo+/jiVeL7R6QA=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/tools/graphics/netpbm/default.nix b/nixpkgs/pkgs/tools/graphics/netpbm/default.nix
index 14002fe65096..99aeb576939e 100644
--- a/nixpkgs/pkgs/tools/graphics/netpbm/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/netpbm/default.nix
@@ -20,14 +20,14 @@ stdenv.mkDerivation {
   # Determine version and revision from:
   # https://sourceforge.net/p/netpbm/code/HEAD/log/?path=/advanced
   pname = "netpbm";
-  version = "11.5.2";
+  version = "11.5.3";
 
   outputs = [ "bin" "out" "dev" ];
 
   src = fetchsvn {
     url = "https://svn.code.sf.net/p/netpbm/code/advanced";
-    rev = "4839";
-    sha256 = "tK9HGERr8UejswZTW3NdXa7OGpzqDTCegGQVaB4RK+I=";
+    rev = "4867";
+    sha256 = "JCJW6BBdxoYWMpZoJp6ovHNqyuU4a1FIvjLB2poDGGM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/graphics/pngcrush/default.nix b/nixpkgs/pkgs/tools/graphics/pngcrush/default.nix
index 8ce9965eae25..2863881b9302 100644
--- a/nixpkgs/pkgs/tools/graphics/pngcrush/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/pngcrush/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libpng }:
+{ lib, stdenv, fetchurl, fetchpatch2, libpng }:
 
 stdenv.mkDerivation rec {
   pname = "pngcrush";
@@ -9,6 +9,13 @@ stdenv.mkDerivation rec {
     sha256 = "0l43c59d6v9l0g07z3q3ywhb8xb3vz74llv3mna0izk9bj6aqkiv";
   };
 
+  patches = [
+    (fetchpatch2 {
+      url = "https://salsa.debian.org/debian/pngcrush/-/raw/b4856b56fbc28252103cc14d156baddd564ca880/debian/patches/ignore_PNG_IGNORE_ADLER32.patch";
+      hash = "sha256-pFON/NUJiXMe9GETptgNltWa0izlby6P/fLsG1abz3g=";
+    })
+  ];
+
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "LD=${stdenv.cc.targetPrefix}cc" ];      # gcc and/or clang compat
 
   configurePhase = ''
diff --git a/nixpkgs/pkgs/tools/graphics/quirc/0001-dont-build-demos.patch b/nixpkgs/pkgs/tools/graphics/quirc/0001-dont-build-demos.patch
index 9ecb6dda4e19..5e11a5207508 100644
--- a/nixpkgs/pkgs/tools/graphics/quirc/0001-dont-build-demos.patch
+++ b/nixpkgs/pkgs/tools/graphics/quirc/0001-dont-build-demos.patch
@@ -4,8 +4,8 @@ index 2d5b745..ecef988 100644
 +++ b/Makefile
 @@ -37,7 +37,7 @@ DEMO_UTIL_OBJ = \
  
- OPENCV_CFLAGS != pkg-config --cflags opencv4
- OPENCV_LIBS != pkg-config --libs opencv4
+ OPENCV_CFLAGS := $(shell pkg-config --cflags opencv4 2>&1)
+ OPENCV_LIBS = $(shell pkg-config --libs opencv4)
 -QUIRC_CXXFLAGS = $(QUIRC_CFLAGS) $(OPENCV_CFLAGS) --std=c++17
 +QUIRC_CXXFLAGS = $(QUIRC_CFLAGS) --std=c++17
  
diff --git a/nixpkgs/pkgs/tools/graphics/quirc/default.nix b/nixpkgs/pkgs/tools/graphics/quirc/default.nix
index 88993dbe8ce6..aa6c0cfeb671 100644
--- a/nixpkgs/pkgs/tools/graphics/quirc/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/quirc/default.nix
@@ -1,17 +1,24 @@
 { lib, stdenv, fetchFromGitHub, SDL_gfx, SDL, libjpeg, libpng, opencv
 , pkg-config }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation (finalAttrs: {
   pname = "quirc";
-  version = "2021-10-08";
+  version = "1.2";
 
   src = fetchFromGitHub {
     owner = "dlbeer";
     repo = "quirc";
-    rev = "516d91a94d880ca1006fc1d57f318bdff8411f0d";
-    sha256 = "0jkaz5frm6jr9bxyfympvzh180nczrfvvb3z3qhk21djlas6nr5f";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-zdq/YKL33jJXa10RqmQIl06rRYnrthWG+umT4dipft0=";
   };
 
+  postPatch = ''
+    # don't try to change ownership
+    substituteInPlace Makefile \
+      --replace-fail "-o root" "" \
+      --replace-fail "-g root" ""
+  '';
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ SDL SDL_gfx libjpeg libpng opencv ];
 
@@ -28,15 +35,6 @@ stdenv.mkDerivation {
     runHook postBuild
   '';
 
-  configurePhase = ''
-    runHook preConfigure
-
-    # don't try to change ownership
-    sed -e 's/-[og] root//g' -i Makefile
-
-    runHook postConfigure
-  '';
-
   preInstall = ''
     mkdir -p "$out"/{bin,lib,include}
 
@@ -44,10 +42,17 @@ stdenv.mkDerivation {
     find -maxdepth 1 -type f -executable ! -name '*.so.*' | xargs cp -t "$out"/bin
   '';
 
+  postInstall = ''
+    # don't install static library
+    rm $out/lib/libquirc.a
+
+    ln -s $out/lib/libquirc.so.* $out/lib/libquirc.so
+  '';
+
   meta = {
     description = "A small QR code decoding library";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.linux ++ [ "x86_64-darwin" "aarch64-darwin" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/tools/graphics/realesrgan-ncnn-vulkan/cmakelists.patch b/nixpkgs/pkgs/tools/graphics/realesrgan-ncnn-vulkan/cmakelists.patch
index faeb65d3b847..19453e8912a9 100644
--- a/nixpkgs/pkgs/tools/graphics/realesrgan-ncnn-vulkan/cmakelists.patch
+++ b/nixpkgs/pkgs/tools/graphics/realesrgan-ncnn-vulkan/cmakelists.patch
@@ -1,13 +1,15 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 1e7b71a..9db85b1 100644
+index 1e7b71a..e743ab0 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -107,6 +107,8 @@ if(USE_SYSTEM_NCNN)
+@@ -106,9 +106,9 @@ if(USE_SYSTEM_NCNN)
+         message(STATUS "Using glslang install located at ${GLSLANG_TARGET_DIR}")
 
          find_package(Threads)
++        find_package(SPIRV-Tools-opt REQUIRED)
 
-+        include("${GLSLANG_TARGET_DIR}/SPIRV-Tools/SPIRV-ToolsTarget.cmake")
-+        include("${GLSLANG_TARGET_DIR}/SPIRV-Tools-opt/SPIRV-Tools-optTargets.cmake")
          include("${GLSLANG_TARGET_DIR}/OSDependentTargets.cmake")
-         include("${GLSLANG_TARGET_DIR}/OGLCompilerTargets.cmake")
+-        include("${GLSLANG_TARGET_DIR}/OGLCompilerTargets.cmake")
          if(EXISTS "${GLSLANG_TARGET_DIR}/HLSLTargets.cmake")
+             # hlsl support can be optional
+             include("${GLSLANG_TARGET_DIR}/HLSLTargets.cmake")
diff --git a/nixpkgs/pkgs/tools/graphics/realesrgan-ncnn-vulkan/default.nix b/nixpkgs/pkgs/tools/graphics/realesrgan-ncnn-vulkan/default.nix
index 6a3b66a3548c..c7f9817326b8 100644
--- a/nixpkgs/pkgs/tools/graphics/realesrgan-ncnn-vulkan/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/realesrgan-ncnn-vulkan/default.nix
@@ -50,15 +50,20 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     mkdir -p $out/bin $out/share
+
     cp realesrgan-ncnn-vulkan $out/bin/
     cp -r ${models}/models $out/share
   '';
 
+  postFixup = ''
+    patchelf $out/bin/realesrgan-ncnn-vulkan --add-needed libvulkan.so
+  '';
+
   meta = with lib; {
     description = "NCNN implementation of Real-ESRGAN. Real-ESRGAN aims at developing Practical Algorithms for General Image Restoration";
     homepage = "https://github.com/xinntao/Real-ESRGAN-ncnn-vulkan";
     license = licenses.mit;
-    maintainers = with maintainers; [ tilcreator ];
+    maintainers = with maintainers; [ tilcreator iynaix ];
     platforms = platforms.all;
     mainProgram = "realesrgan-ncnn-vulkan";
   };
diff --git a/nixpkgs/pkgs/tools/graphics/rocket/default.nix b/nixpkgs/pkgs/tools/graphics/rocket/default.nix
index 070e359fe1c5..5dcd40b4d5ec 100644
--- a/nixpkgs/pkgs/tools/graphics/rocket/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/rocket/default.nix
@@ -23,6 +23,7 @@ mkDerivation {
 
   meta = with lib; {
     description = "A tool for synchronizing music and visuals in demoscene productions";
+    mainProgram = "editor";
     homepage = "https://github.com/rocket/rocket";
     license = licenses.zlib;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/graphics/snapdragon-profiler/default.nix b/nixpkgs/pkgs/tools/graphics/snapdragon-profiler/default.nix
index caf187cb4c1f..aa8477d5717d 100644
--- a/nixpkgs/pkgs/tools/graphics/snapdragon-profiler/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/snapdragon-profiler/default.nix
@@ -10,7 +10,6 @@
 , gtk-sharp-2_0
 , gtk2
 , libcxx
-, libcxxabi
 , coreutils
 , requireFile
 , archive ? requireFile {
@@ -42,7 +41,6 @@ stdenv.mkDerivation rec {
     gtk-sharp-2_0
     gtk2
     libcxx
-    libcxxabi
   ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/graphics/vips/default.nix b/nixpkgs/pkgs/tools/graphics/vips/default.nix
index 5c59971f955c..fde14fe0c53d 100644
--- a/nixpkgs/pkgs/tools/graphics/vips/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/vips/default.nix
@@ -42,7 +42,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vips";
-  version = "8.15.1";
+  version = "8.15.2";
 
   outputs = [ "bin" "out" "man" "dev" ] ++ lib.optionals (!stdenv.isDarwin) [ "devdoc" ];
 
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "libvips";
     repo = "libvips";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-0zfYpOawH7XnTH9k8BdNDtZEKpYUlCXp7GY+fdXalsE=";
+    hash = "sha256-jp6RPceFzzWgFBzcfvggniAkhXaAGszT/sy4H6aCtGc=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     postFetch = ''
diff --git a/nixpkgs/pkgs/tools/graphics/vulkan-caps-viewer/default.nix b/nixpkgs/pkgs/tools/graphics/vulkan-caps-viewer/default.nix
index f5962d9aa6c4..4ab820b512e3 100644
--- a/nixpkgs/pkgs/tools/graphics/vulkan-caps-viewer/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/vulkan-caps-viewer/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vulkan-caps-viewer";
-  version = "3.33";
+  version = "3.34";
 
   src = fetchFromGitHub {
     owner = "SaschaWillems";
     repo = "VulkanCapsViewer";
     rev = version;
-    hash = "sha256-eKUgsT3KDua+whO0JdtnniKqoRmBt58LELeUz24goPM=";
+    hash = "sha256-F1D/+Q/GXqQazTNgwdiHS9qqIHy0YGssmagw615E+xg=";
     # Note: this derivation strictly requires vulkan-header to be the same it was developed against.
     # To help us, they've put it in a git-submodule.
     # The result will work with any vulkan-loader version.
diff --git a/nixpkgs/pkgs/tools/inputmethods/emote/default.nix b/nixpkgs/pkgs/tools/inputmethods/emote/default.nix
index 8e3d7227d1bd..6c2e4962a996 100644
--- a/nixpkgs/pkgs/tools/inputmethods/emote/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/emote/default.nix
@@ -53,6 +53,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Modern emoji picker for Linux";
+    mainProgram = "emote";
     homepage = "https://github.com/tom-james-watson/emote";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ emilytrau SuperSandro2000 ];
diff --git a/nixpkgs/pkgs/tools/inputmethods/evdevremapkeys/default.nix b/nixpkgs/pkgs/tools/inputmethods/evdevremapkeys/default.nix
index 497a4abc5956..2dcc169c6444 100644
--- a/nixpkgs/pkgs/tools/inputmethods/evdevremapkeys/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/evdevremapkeys/default.nix
@@ -27,6 +27,7 @@ python3Packages.buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/philipl/evdevremapkeys";
     description = "Daemon to remap events on linux input devices";
+    mainProgram = "evdevremapkeys";
     license = licenses.mit;
     maintainers = [ maintainers.q3k ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/inputmethods/evscript/default.nix b/nixpkgs/pkgs/tools/inputmethods/evscript/default.nix
index d1440bea357f..1de971b7cea2 100644
--- a/nixpkgs/pkgs/tools/inputmethods/evscript/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/evscript/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     homepage = "https://codeberg.org/valpackett/evscript";
     description = "A tiny sandboxed Dyon scripting environment for evdev input devices";
+    mainProgram = "evscript";
     license = licenses.unlicense;
     maintainers = with maintainers; [ milesbreslin ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/inputmethods/evsieve/default.nix b/nixpkgs/pkgs/tools/inputmethods/evsieve/default.nix
index de18668e7475..c8c6752b823d 100644
--- a/nixpkgs/pkgs/tools/inputmethods/evsieve/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/evsieve/default.nix
@@ -23,6 +23,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A utility for mapping events from Linux event devices";
+    mainProgram = "evsieve";
     homepage = "https://github.com/KarsMulder/evsieve";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ tsowell ];
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
index 0699f23e3aab..4aac06dc1ade 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Addons related to Chinese, including IME previous bundled inside fcitx4";
+    mainProgram = "scel2org5";
     homepage = "https://github.com/fcitx/fcitx5-chinese-addons";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
     maintainers = with maintainers; [ poscat ];
diff --git a/nixpkgs/pkgs/tools/inputmethods/gebaar-libinput/default.nix b/nixpkgs/pkgs/tools/inputmethods/gebaar-libinput/default.nix
index 9a808535fe04..533d4ddc8ee7 100644
--- a/nixpkgs/pkgs/tools/inputmethods/gebaar-libinput/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/gebaar-libinput/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Gebaar, A Super Simple WM Independent Touchpad Gesture Daemon for libinput";
+    mainProgram = "gebaard";
     homepage = "https://github.com/Coffee2CodeNL/gebaar-libinput";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-cangjie/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-cangjie/default.nix
index 0d7f06039a09..0e5233ad8b6f 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-cangjie/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-cangjie/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation {
   meta = {
     isIbusEngine = true;
     description = "An IBus engine for users of the Cangjie and Quick input methods";
+    mainProgram = "ibus-setup-cangjie";
     homepage = "https://github.com/Cangjians/ibus-cangjie";
     license = lib.licenses.gpl3Plus;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
index af3e1edd6399..9c338f71698e 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     isIbusEngine = true;
     description = "Ibus Hangul engine";
+    mainProgram = "ibus-setup-hangul";
     homepage = "https://github.com/choehwanjin/ibus-hangul";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ericsagnes ];
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
index 220c89ca175d..d0199bdbed4a 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
@@ -78,6 +78,7 @@ buildBazelPackage rec {
   meta = with lib; {
     isIbusEngine = true;
     description = "Japanese input method from Google";
+    mainProgram = "mozc_emacs_helper";
     homepage = "https://github.com/google/mozc";
     license = licenses.free;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
index c5f02f4c8a22..7b277e76ecb5 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     isIbusEngine = true;
     description  = "An IBus framework for table-based input methods";
+    mainProgram = "ibus-table-createdb";
     homepage     = "https://github.com/kaio/ibus-table/wiki";
     license      = licenses.lgpl21;
     platforms    = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
index 47262be28d5c..7f1131f092b8 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-typing-booster/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
     homepage = "https://mike-fabian.github.io/ibus-typing-booster/";
     license = licenses.gpl3Plus;
     description = "A completion input method for faster typing";
+    mainProgram = "emoji-picker";
     maintainers = with maintainers; [ ncfavier ];
     isIbusEngine = true;
   };
diff --git a/nixpkgs/pkgs/tools/inputmethods/interception-tools/caps2esc.nix b/nixpkgs/pkgs/tools/inputmethods/interception-tools/caps2esc.nix
index 933a731828fb..ef8c4b17baf1 100644
--- a/nixpkgs/pkgs/tools/inputmethods/interception-tools/caps2esc.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/interception-tools/caps2esc.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://gitlab.com/interception/linux/plugins/caps2esc";
     description = "Transforming the most useless key ever into the most useful one";
+    mainProgram = "caps2esc";
     license = licenses.mit;
     maintainers = [ maintainers.vyp ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/inputmethods/keyfuzz/default.nix b/nixpkgs/pkgs/tools/inputmethods/keyfuzz/default.nix
index 8980abba2f62..f92993cfe754 100644
--- a/nixpkgs/pkgs/tools/inputmethods/keyfuzz/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/keyfuzz/default.nix
@@ -6,6 +6,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Manipulate the scancode/keycode translation tables of keyboard drivers";
+    mainProgram = "keyfuzz";
     homepage    = "http://0pointer.de/lennart/projects/keyfuzz/";
     license     = licenses.gpl2Plus;
     platforms   = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/inputmethods/libinput-gestures/default.nix b/nixpkgs/pkgs/tools/inputmethods/libinput-gestures/default.nix
index b9384469e963..bb466e38ba53 100644
--- a/nixpkgs/pkgs/tools/inputmethods/libinput-gestures/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/libinput-gestures/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/bulletmark/libinput-gestures";
     description = "Gesture mapper for libinput";
+    mainProgram = "libinput-gestures";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ teozkr ];
diff --git a/nixpkgs/pkgs/tools/inputmethods/lisgd/default.nix b/nixpkgs/pkgs/tools/inputmethods/lisgd/default.nix
index dd57f61de9d6..23e677144945 100644
--- a/nixpkgs/pkgs/tools/inputmethods/lisgd/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/lisgd/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Bind gestures via libinput touch events";
+    mainProgram = "lisgd";
     homepage = "https://git.sr.ht/~mil/lisgd";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/inputmethods/m17n-db/default.nix b/nixpkgs/pkgs/tools/inputmethods/m17n-db/default.nix
index dc0ed25a3efe..558d59d0ca94 100644
--- a/nixpkgs/pkgs/tools/inputmethods/m17n-db/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/m17n-db/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://www.nongnu.org/m17n/";
     description = "Multilingual text processing library (database)";
+    mainProgram = "m17n-db";
     changelog = "https://git.savannah.nongnu.org/cgit/m17n/m17n-db.git/plain/NEWS?h=REL-${lib.replaceStrings [ "." ] [ "-" ] version}";
     license = lib.licenses.lgpl21Plus;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/tools/inputmethods/nabi/default.nix b/nixpkgs/pkgs/tools/inputmethods/nabi/default.nix
index 72f13d4eb2dc..61a948529f4d 100644
--- a/nixpkgs/pkgs/tools/inputmethods/nabi/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/nabi/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "The Easy Hangul XIM";
+    mainProgram = "nabi";
     homepage = "https://github.com/choehwanjin/nabi";
     license = licenses.gpl2;
     maintainers = [ maintainers.ianwookim ];
diff --git a/nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix b/nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix
index eef3ddfe835a..88c6db4842ef 100644
--- a/nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/remote-touchpad/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Control mouse and keyboard from the web browser of a smartphone";
+    mainProgram = "remote-touchpad";
     homepage = "https://github.com/unrud/remote-touchpad";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ schnusch ];
diff --git a/nixpkgs/pkgs/tools/inputmethods/touchegg/default.nix b/nixpkgs/pkgs/tools/inputmethods/touchegg/default.nix
index de30b853670a..32a1b059f2c5 100644
--- a/nixpkgs/pkgs/tools/inputmethods/touchegg/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/touchegg/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/JoseExposito/touchegg";
     description = "Linux multi-touch gesture recognizer";
+    mainProgram = "touchegg";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = teams.pantheon.members;
diff --git a/nixpkgs/pkgs/tools/inputmethods/xlibinput_calibrator/default.nix b/nixpkgs/pkgs/tools/inputmethods/xlibinput_calibrator/default.nix
index 2b6585c92513..3d5faba1c63c 100644
--- a/nixpkgs/pkgs/tools/inputmethods/xlibinput_calibrator/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/xlibinput_calibrator/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Touch calibrator for libinput";
+    mainProgram = "xlibinput_calibrator";
     homepage = "https://github.com/kreijack/xlibinput_calibrator";
     changelog = "https://github.com/kreijack/xlibinput_calibrator/blob/${src.rev}/Changelog";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/tools/llm/shell_gpt/default.nix b/nixpkgs/pkgs/tools/llm/shell_gpt/default.nix
index ed3f27633e81..99ef7b3bf899 100644
--- a/nixpkgs/pkgs/tools/llm/shell_gpt/default.nix
+++ b/nixpkgs/pkgs/tools/llm/shell_gpt/default.nix
@@ -6,12 +6,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "shell_gpt";
-  version = "1.0.1";
-  format = "pyproject";
+  version = "1.4.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-/rBD2n5IZzSeC5dmVQRZY8UrzUOkAEVHp8KwIfV1hec=";
+    sha256 = "sha256-r/xQRqnLJhGZORjYUaYWKjqY4fQCW4WKkE+n8k0VMbA=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
@@ -27,6 +27,8 @@ python3.pkgs.buildPythonApplication rec {
     typer
     requests
     hatchling
+    openai
+    instructor
   ];
 
   pythonRelaxDeps = [ "requests" "rich" "distro" "typer" ];
diff --git a/nixpkgs/pkgs/tools/misc/0x/default.nix b/nixpkgs/pkgs/tools/misc/0x/default.nix
index b76c13e66287..2f1493d23452 100644
--- a/nixpkgs/pkgs/tools/misc/0x/default.nix
+++ b/nixpkgs/pkgs/tools/misc/0x/default.nix
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage {
   meta = with lib; {
     homepage = "https://github.com/mcy/0x";
     description = "A colorful, configurable xxd";
+    mainProgram = "0x";
     license = licenses.asl20;
     maintainers = with maintainers; [ AndersonTorres ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/3mux/default.nix b/nixpkgs/pkgs/tools/misc/3mux/default.nix
index 9ec4572328e7..0a16b853943d 100644
--- a/nixpkgs/pkgs/tools/misc/3mux/default.nix
+++ b/nixpkgs/pkgs/tools/misc/3mux/default.nix
@@ -46,6 +46,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Terminal multiplexer inspired by i3";
+    mainProgram = "3mux";
     longDescription = ''
       Terminal multiplexer with out-of-the-box support for search,
       mouse-controlled scrollback, and i3-like keybindings
diff --git a/nixpkgs/pkgs/tools/misc/SP800-90B_EntropyAssessment/default.nix b/nixpkgs/pkgs/tools/misc/SP800-90B_EntropyAssessment/default.nix
index f2ff558168d5..3c18621d712d 100644
--- a/nixpkgs/pkgs/tools/misc/SP800-90B_EntropyAssessment/default.nix
+++ b/nixpkgs/pkgs/tools/misc/SP800-90B_EntropyAssessment/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
       --replace "-march=native" ""
   '';
 
-  sourceRoot = "source/cpp";
+  sourceRoot = "${src.name}/cpp";
 
   makeFlags = [
     "CROSS_COMPILE=${stdenv.cc.targetPrefix}"
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/usnistgov/SP800-90B_EntropyAssessment";
     description = "Implementation of min-entropy assessment methods included in Special Publication 800-90B";
     platforms = lib.platforms.linux;
-    license = lib.licenses.free; #this software uses the NIST software license
+    license = lib.licenses.nistSoftware;
     maintainers = with lib.maintainers; [ orichter thillux ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/aichat/default.nix b/nixpkgs/pkgs/tools/misc/aichat/default.nix
index 311d0fb8de87..69fc0891eea4 100644
--- a/nixpkgs/pkgs/tools/misc/aichat/default.nix
+++ b/nixpkgs/pkgs/tools/misc/aichat/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "aichat";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "sigoden";
     repo = "aichat";
     rev = "v${version}";
-    hash = "sha256-1m0Sf8qC5kGOfXkxQVri+kL3sZfOFKH3TcpNhuOFPVQ=";
+    hash = "sha256-0VNFqfl1La6jSUE7IsS/pYIQGaNrAgSgiGUjo65pUR4=";
   };
 
-  cargoHash = "sha256-/oEyI6m5j3u89NeEwM4+z1exZfu0FMSf14scAiax3CE=";
+  cargoHash = "sha256-zrX4e9Z8FgZvvNyyiw29Dr/0KO1uL20/+DUASyPjxjE=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/tools/misc/altserver-linux/default.nix b/nixpkgs/pkgs/tools/misc/altserver-linux/default.nix
index 701fe0d5afb9..30d528294901 100644
--- a/nixpkgs/pkgs/tools/misc/altserver-linux/default.nix
+++ b/nixpkgs/pkgs/tools/misc/altserver-linux/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://github.com/NyaMisty/AltServer-Linux";
     description = "AltServer for AltStore, but on-device. Requires root privileges as well as running a custom anisette server currently";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     mainProgram = "alt-server";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/misc/antimicrox/default.nix b/nixpkgs/pkgs/tools/misc/antimicrox/default.nix
index 85e9af7bb67e..a0bafa726f97 100644
--- a/nixpkgs/pkgs/tools/misc/antimicrox/default.nix
+++ b/nixpkgs/pkgs/tools/misc/antimicrox/default.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "antimicrox";
-  version = "3.3.4";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "AntiMicroX";
     repo = pname;
     rev = version;
-    sha256 = "sha256-WEtKeQKRZcYpZ4mnFdj4ZRApBuD8fByf11Uu6ylbAcY=";
+    sha256 = "sha256-zBIEuZdmcyA99YdwC6tn0I3Ori8VyBOw50ablb/Lmvs=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules pkg-config itstool ];
diff --git a/nixpkgs/pkgs/tools/misc/autojump/default.nix b/nixpkgs/pkgs/tools/misc/autojump/default.nix
index e1bb2f084110..977e339d7ef5 100644
--- a/nixpkgs/pkgs/tools/misc/autojump/default.nix
+++ b/nixpkgs/pkgs/tools/misc/autojump/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A `cd' command that learns";
+    mainProgram = "autojump";
     longDescription = ''
       One of the most used shell commands is “cdâ€.  A quick survey
       among my friends revealed that between 10 and 20% of all
diff --git a/nixpkgs/pkgs/tools/misc/bash_unit/default.nix b/nixpkgs/pkgs/tools/misc/bash_unit/default.nix
index 19cebbb07e60..ebf7d6916b32 100644
--- a/nixpkgs/pkgs/tools/misc/bash_unit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bash_unit/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bash_unit";
-  version = "2.2.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "pgrange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-sYs7b6I1VhO2TLLhMFuaV9AtLoavcoKvCRYfVNGAg20=";
+    sha256 = "sha256-kd5h12yjzvR/RBE/IjVXNSyjcf+rz6B2eoO8w2jiaps=";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/bepasty/default.nix b/nixpkgs/pkgs/tools/misc/bepasty/default.nix
index 9bf8c8e3ae16..c38963ade2f3 100644
--- a/nixpkgs/pkgs/tools/misc/bepasty/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bepasty/default.nix
@@ -23,7 +23,7 @@ let
 #https://github.com/NixOS/nixpkgs/pull/38300
 in with bepastyPython.pkgs; buildPythonPackage rec {
   pname = "bepasty";
-  version = "1.2.0";
+  version = "1.2.1";
   format = "pyproject";
 
   propagatedBuildInputs = [
@@ -46,7 +46,7 @@ in with bepastyPython.pkgs; buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-R3bvrl/tOP0S9m6X+MwYK6fMQ51cI6W5AoxyYZ8aZ/w=";
+    sha256 = "sha256-08cyr2AruGAfHAwHHS8WMfJh7DBKymaYyz4AxI/ubkE=";
   };
 
   nativeCheckInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/broot/default.nix b/nixpkgs/pkgs/tools/misc/broot/default.nix
index 751860860436..4a2470e86ffa 100644
--- a/nixpkgs/pkgs/tools/misc/broot/default.nix
+++ b/nixpkgs/pkgs/tools/misc/broot/default.nix
@@ -18,16 +18,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "1.35.0";
+  version = "1.36.1";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-L9a1fQZkCHSHseZtQYwqIt1CokPGBqLcqY0jccHYqGw=";
+    hash = "sha256-mwccjsrveqoepBaCeQaija3DsXcuMtCK5PyoghtAJ9w=";
   };
 
-  cargoHash = "sha256-DRW1gv5lqdXWcRLD2yf7+u6J/xIUWmELmb/l729Sqo4=";
+  cargoHash = "sha256-GykLzXKFtebFuOWLtZ2Qj5OrZXiSrfEJ98cog5PwCfQ=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/tools/misc/chezmoi/default.nix b/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
index 24f94f6a7445..0533a0a4e81c 100644
--- a/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
+++ b/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "2.47.1";
+  version = "2.47.2";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    hash = "sha256-sCDRHbizWhxaGBKdBhLViOfv+mwJiVvw7cjXSuDnOAo=";
+    hash = "sha256-XjPeOTVoWcAWq8wb3RJCsIVMN4zF5ovAni+fWrR1P+I=";
   };
 
-  vendorHash = "sha256-gTgzuNsNzw8RmYaeOTBxkOc0Pt+WGLWTA6/oAL/1RRg=";
+  vendorHash = "sha256-ZtxX8BTX+7SfRxdxNWAy3wNTl8H7yoBNJr99dzCA+uk=";
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/tools/misc/clipster/default.nix b/nixpkgs/pkgs/tools/misc/clipster/default.nix
index 26170d148943..cad2c4506374 100644
--- a/nixpkgs/pkgs/tools/misc/clipster/default.nix
+++ b/nixpkgs/pkgs/tools/misc/clipster/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation  rec {
       - Option to ignore clipboard updates form certain applications. (filter_classes)
       - Ability to delete items in clipboard history.
     '';
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     homepage = "https://github.com/mrichar1/clipster";
     platforms = platforms.linux;
     maintainers = [ maintainers.magnetophon ];
diff --git a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
index 5bac5602c79f..171cbc2dfe72 100644
--- a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
+++ b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
@@ -79,11 +79,11 @@
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python3.pkgs.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "259";
+  version = "261";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    hash = "sha256-WYgFWM6HKFt3xVcRNytQPWOf3ZpH1cG7Cghhu/AES80=";
+    hash = "sha256-BbxY5w2Up5IaDJyZgwnUDm683G8VIGaVnhUvaMRZHqU=";
   };
 
   outputs = [
diff --git a/nixpkgs/pkgs/tools/misc/domine/default.nix b/nixpkgs/pkgs/tools/misc/domine/default.nix
index 3d193ba2a06f..a85275acab0e 100644
--- a/nixpkgs/pkgs/tools/misc/domine/default.nix
+++ b/nixpkgs/pkgs/tools/misc/domine/default.nix
@@ -12,4 +12,5 @@ buildDartApplication rec {
   };
 
   pubspecLock = lib.importJSON ./pubspec.lock.json;
+  meta.mainProgram = "domine";
 }
diff --git a/nixpkgs/pkgs/tools/misc/dooit/default.nix b/nixpkgs/pkgs/tools/misc/dooit/default.nix
index 1621ea8e5249..1a76a304277c 100644
--- a/nixpkgs/pkgs/tools/misc/dooit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dooit/default.nix
@@ -23,6 +23,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   pythonRelaxDeps = [
+    "textual"
     "tzlocal"
   ];
 
diff --git a/nixpkgs/pkgs/tools/misc/dua/default.nix b/nixpkgs/pkgs/tools/misc/dua/default.nix
index 110862bf1396..22ae9a7a6431 100644
--- a/nixpkgs/pkgs/tools/misc/dua/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dua/default.nix
@@ -7,13 +7,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dua";
-  version = "2.28.0";
+  version = "2.29.0";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "dua-cli";
     rev = "v${version}";
-    hash = "sha256-a5J6G7QvCi2u064fP4V5uxxvBXcbN+a+dIO5MbsVU70=";
+    hash = "sha256-rO9k1/HOwVJF/QCT2sZy4L0Mv26CiUj9Zafliffj68A=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     postFetch = ''
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoHash = "sha256-Up7HvBJMR5h+/rdlJVMeCCuOiOQ8++oReCBI8wt3T2M=";
+  cargoHash = "sha256-qn1QDiYHcygomOFwFEy00wsMykrQ9/84Ed4nAUTlA1k=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Foundation
diff --git a/nixpkgs/pkgs/tools/misc/edid-decode/default.nix b/nixpkgs/pkgs/tools/misc/edid-decode/default.nix
index eb72d0a81570..733f87da6f22 100644
--- a/nixpkgs/pkgs/tools/misc/edid-decode/default.nix
+++ b/nixpkgs/pkgs/tools/misc/edid-decode/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation {
   pname = "edid-decode";
-  version = "unstable-2022-12-14";
+  version = "unstable-2024-01-29";
 
   outputs = [
     "out"
@@ -15,8 +15,8 @@ stdenv.mkDerivation {
 
   src = fetchgit {
     url = "git://linuxtv.org/edid-decode.git";
-    rev = "e052f5f9fdf74ca11aa1a8edfa62eff8d0aa3d0d";
-    hash = "sha256-qNtb/eM7VpS8nRbC/nNm6J9vEWVUSrg7OwNaW1774QY=";
+    rev = "7a27b339cf5ee1ab431431a844418a7f7c16d167";
+    hash = "sha256-y+g+E4kaQh6j+3GvHdcVEGQu/zOkGyW/HazUHG0DCxM=";
   };
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/tools/misc/eludris/default.nix b/nixpkgs/pkgs/tools/misc/eludris/default.nix
index ac3ecc2e5a6c..e3fc67fcacb0 100644
--- a/nixpkgs/pkgs/tools/misc/eludris/default.nix
+++ b/nixpkgs/pkgs/tools/misc/eludris/default.nix
@@ -27,6 +27,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple CLI to help you with setting up and managing your Eludris instance";
+    mainProgram = "eludris";
     homepage = "https://github.com/eludris/eludris/tree/main/cli";
     license = licenses.mit;
     maintainers = with maintainers; [ ooliver1 ];
diff --git a/nixpkgs/pkgs/tools/misc/esphome/dashboard.nix b/nixpkgs/pkgs/tools/misc/esphome/dashboard.nix
index f5bd9910569f..6d72dc40ca0d 100644
--- a/nixpkgs/pkgs/tools/misc/esphome/dashboard.nix
+++ b/nixpkgs/pkgs/tools/misc/esphome/dashboard.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "esphome-dashboard";
-  version = "20231107.0";
+  version = "20240319.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-84iM987nxNidMObnbY3lt78xRbN9USNtqQzfOzkd17k=";
+    hash = "sha256-jiEXZWw8A4RcsRbypFpWkt8O3Ib1cNcOQO1zHt96aQU=";
   };
 
   # no tests
diff --git a/nixpkgs/pkgs/tools/misc/esphome/default.nix b/nixpkgs/pkgs/tools/misc/esphome/default.nix
index ec8b1beeb15c..102c97b464f7 100644
--- a/nixpkgs/pkgs/tools/misc/esphome/default.nix
+++ b/nixpkgs/pkgs/tools/misc/esphome/default.nix
@@ -19,14 +19,14 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "esphome";
-  version = "2024.2.2";
+  version = "2024.3.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-SIp4hrllPgWNnrflUStSIcUB00eGU5pHoYveBPg7CVw=";
+    hash = "sha256-ha15MLTScFmgYjIRwCQ46DD+Zm64r+KReJTS8jfZX0o=";
   };
 
   nativeBuildInputs = with python.pkgs; [
@@ -71,6 +71,7 @@ python.pkgs.buildPythonApplication rec {
     python-magic
     pyyaml
     requests
+    ruamel-yaml
     tornado
     tzdata
     tzlocal
@@ -99,13 +100,6 @@ python.pkgs.buildPythonApplication rec {
     pytestCheckHook
   ];
 
-  disabledTestPaths = [
-    # requires hypothesis 5.49, we have 6.x
-    # ImportError: cannot import name 'ip_addresses' from 'hypothesis.provisional'
-    "tests/unit_tests/test_core.py"
-    "tests/unit_tests/test_helpers.py"
-  ];
-
   postCheck = ''
     $out/bin/esphome --help > /dev/null
   '';
diff --git a/nixpkgs/pkgs/tools/misc/etcher/default.nix b/nixpkgs/pkgs/tools/misc/etcher/default.nix
deleted file mode 100644
index 4b27f35cf53c..000000000000
--- a/nixpkgs/pkgs/tools/misc/etcher/default.nix
+++ /dev/null
@@ -1,72 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, bash
-, util-linux
-, autoPatchelfHook
-, dpkg
-, makeWrapper
-, udev
-, electron
-}:
-
-stdenv.mkDerivation rec {
-  pname = "etcher";
-  version = "1.18.12";
-
-  src = fetchurl {
-    url = "https://github.com/balena-io/etcher/releases/download/v${version}/balena-etcher_${version}_amd64.deb";
-    hash = "sha256-Ucs187xTpbRJ7P32hCl8cHPxO3HCs44ZneAas043FXk=";
-  };
-
-  # sudo-prompt has hardcoded binary paths on Linux and we patch them here
-  # along with some other paths
-  postPatch = ''
-    substituteInPlace opt/balenaEtcher/resources/app/generated/gui.js \
-      --replace '/usr/bin/pkexec' '/usr/bin/pkexec", "/run/wrappers/bin/pkexec' \
-      --replace '/bin/bash' '${bash}/bin/bash' \
-      --replace '"lsblk"' '"${util-linux}/bin/lsblk"'
-  '';
-
-  nativeBuildInputs = [
-    autoPatchelfHook
-    dpkg
-    makeWrapper
-  ];
-
-  buildInputs = [
-    stdenv.cc.cc.lib
-    udev
-  ];
-
-  dontConfigure = true;
-
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/bin $out/share/${pname}
-
-    cp -a usr/share/* $out/share
-    cp -a opt/balenaEtcher/{locales,resources} $out/share/${pname}
-
-    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
-      --add-flags $out/share/${pname}/resources/app
-
-    substituteInPlace $out/share/applications/balena-etcher.desktop \
-      --replace /opt/balenaEtcher/balena-etcher ${pname}
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "Flash OS images to SD cards and USB drives, safely and easily";
-    homepage = "https://etcher.io/";
-    license = licenses.asl20;
-    mainProgram = "etcher";
-    maintainers = with maintainers; [ wegank ];
-    platforms = [ "x86_64-linux" ];
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/misc/fastfetch/default.nix b/nixpkgs/pkgs/tools/misc/fastfetch/default.nix
index 2e727896905d..bc3f4340b476 100644
--- a/nixpkgs/pkgs/tools/misc/fastfetch/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fastfetch/default.nix
@@ -43,13 +43,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fastfetch";
-  version = "2.8.7";
+  version = "2.8.9";
 
   src = fetchFromGitHub {
     owner = "fastfetch-cli";
     repo = "fastfetch";
     rev = finalAttrs.version;
-    hash = "sha256-lJRTw8Z//x6tMpwfwSodTz7aVbnJPt3rac7AudqF+DA=";
+    hash = "sha256-UvAIIkH9PNlvLzlh0jm1kG+4OfWsWtt2LSFbFPm7Yv4=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/nixpkgs/pkgs/tools/misc/fclones/gui.nix b/nixpkgs/pkgs/tools/misc/fclones/gui.nix
index 7b2d063d45b7..8dff1eec4928 100644
--- a/nixpkgs/pkgs/tools/misc/fclones/gui.nix
+++ b/nixpkgs/pkgs/tools/misc/fclones/gui.nix
@@ -47,6 +47,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Interactive duplicate file remover";
+    mainProgram = "fclones-gui";
     homepage = "https://github.com/pkolaczk/fclones-gui";
     changelog = "https://github.com/pkolaczk/fclones-gui/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/misc/fedifetcher/default.nix b/nixpkgs/pkgs/tools/misc/fedifetcher/default.nix
index dbf8c3bce281..36885e953262 100644
--- a/nixpkgs/pkgs/tools/misc/fedifetcher/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fedifetcher/default.nix
@@ -2,14 +2,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "fedifetcher";
-  version = "7.0.3";
+  version = "7.0.4";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "nanos";
     repo = "FediFetcher";
-    rev = "v${version}";
-    hash = "sha256-ADf6ZVqO9v6GQbNWi3NDX5bNmFDX5LMJfM6ePEWwbrQ=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-19ZpOpvDj2/qMufH2qPPAj8hRPlViSuC64WqJp6+xSk=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/nixpkgs/pkgs/tools/misc/fzf/default.nix b/nixpkgs/pkgs/tools/misc/fzf/default.nix
index a64246693ee1..2f5eac6b7396 100644
--- a/nixpkgs/pkgs/tools/misc/fzf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fzf/default.nix
@@ -24,16 +24,16 @@ let
 in
 buildGoModule rec {
   pname = "fzf";
-  version = "0.46.1";
+  version = "0.47.0";
 
   src = fetchFromGitHub {
     owner = "junegunn";
     repo = pname;
     rev = version;
-    hash = "sha256-gMSelLwIIYv/vkbdWi4Cw3FEy4lbC8P/5+T+c/e66+c=";
+    hash = "sha256-rIRn8g4j/drWEHnvZnJW2sSLq5mrw8Q2pn3LN2sEXDY=";
   };
 
-  vendorHash = "sha256-8ojmIETUyZ3jDhrqkHYnxptRG8vdj0GADYvEpw0wi6w=";
+  vendorHash = "sha256-BOPACUQKcllmA2eWQs+sOfofAQLle2Byb/rZgOhmkVY=";
 
   CGO_ENABLED = 0;
 
diff --git a/nixpkgs/pkgs/tools/misc/gosu/default.nix b/nixpkgs/pkgs/tools/misc/gosu/default.nix
index bd3ba4c930d7..8b5a5fb88d33 100644
--- a/nixpkgs/pkgs/tools/misc/gosu/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gosu/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool that avoids TTY and signal-forwarding behavior of sudo and su";
+    mainProgram = "gosu";
     homepage = "https://github.com/tianon/gosu";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/tools/misc/hdf5/default.nix b/nixpkgs/pkgs/tools/misc/hdf5/default.nix
index ba00746c08f9..c6855a47f8e6 100644
--- a/nixpkgs/pkgs/tools/misc/hdf5/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hdf5/default.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , cmake
 , removeReferencesTo
-, cppSupport ? false
+, cppSupport ? true
 , fortranSupport ? false
 , fortran
 , zlibSupport ? true
@@ -13,6 +13,7 @@
 , mpiSupport ? false
 , mpi
 , enableShared ? !stdenv.hostPlatform.isStatic
+, enableStatic ? stdenv.hostPlatform.isStatic
 , javaSupport ? false
 , jdk
 , usev110Api ? false
@@ -58,7 +59,7 @@ stdenv.mkDerivation rec {
       ;
   };
 
-  outputs = [ "out" "dev" ];
+  outputs = [ "out" "dev" "bin" ];
 
   nativeBuildInputs = [ removeReferencesTo cmake ]
     ++ optional fortranSupport fortran;
@@ -72,6 +73,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DHDF5_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake"
+    "-DBUILD_STATIC_LIBS=${lib.boolToString enableStatic}"
   ] ++ lib.optional stdenv.isDarwin "-DHDF5_BUILD_WITH_INSTALL_NAME=ON"
     ++ lib.optional cppSupport "-DHDF5_BUILD_CPP_LIB=ON"
     ++ lib.optional fortranSupport "-DHDF5_BUILD_FORTRAN=ON"
@@ -85,10 +87,22 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     find "$out" -type f -exec remove-references-to -t ${stdenv.cc} '{}' +
+    moveToOutput 'bin/' "''${!outputBin}"
     moveToOutput 'bin/h5cc' "''${!outputDev}"
     moveToOutput 'bin/h5c++' "''${!outputDev}"
     moveToOutput 'bin/h5fc' "''${!outputDev}"
     moveToOutput 'bin/h5pcc' "''${!outputDev}"
+    moveToOutput 'bin/h5hlcc' "''${!outputDev}"
+    moveToOutput 'bin/h5hlc++' "''${!outputDev}"
+  '' + lib.optionalString enableShared
+  # The shared build creates binaries with -shared suffixes,
+  # so we remove these suffixes.
+  ''
+    pushd ''${!outputBin}/bin
+    for file in *-shared; do
+      mv "$file" "''${file%%-shared}"
+    done
+    popd
   '';
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/tools/misc/hunt/default.nix b/nixpkgs/pkgs/tools/misc/hunt/default.nix
index 624f9ec90dc2..2c135e028513 100644
--- a/nixpkgs/pkgs/tools/misc/hunt/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hunt/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hunt";
-  version = "2.1.0";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "LyonSyonII";
     repo = "hunt-rs";
     rev = "v${version}";
-    sha256 = "sha256-noqsxgx2FuSp3ekaaopLUPhq4YYBwM8uf4DzML5xLAE=";
+    sha256 = "sha256-cpqietS/yTI5ONkH4jjIUOVATutd2vj9xmxRbBwmzeI=";
   };
 
-  cargoHash = "sha256-JErhe2Hu2Qpb5QoEurdy/WSShjkiV/Fai4/lVkisrEQ=";
+  cargoHash = "sha256-LWZaU+zHbfiogWXW9XGA3iP95u3qqh2LX9LL2lsQPLg=";
 
   meta = with lib; {
     description = "Simplified Find command made with Rust";
diff --git a/nixpkgs/pkgs/tools/misc/i3minator/default.nix b/nixpkgs/pkgs/tools/misc/i3minator/default.nix
index 4db029ef8fa2..d56ee6eadc7a 100644
--- a/nixpkgs/pkgs/tools/misc/i3minator/default.nix
+++ b/nixpkgs/pkgs/tools/misc/i3minator/default.nix
@@ -20,6 +20,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "i3 project manager similar to tmuxinator";
+    mainProgram = "i3minator";
     longDescription = ''
       A simple "workspace manager" for i3. It allows to quickly
       manage workspaces defining windows and their layout. The
diff --git a/nixpkgs/pkgs/tools/misc/ili2c/default.nix b/nixpkgs/pkgs/tools/misc/ili2c/default.nix
index 99c1353631e9..d4ac13046377 100644
--- a/nixpkgs/pkgs/tools/misc/ili2c/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ili2c/default.nix
@@ -5,7 +5,7 @@
 , jdk8
 , jre8
 , makeWrapper
-, canonicalize-jars-hook
+, stripJavaArchivesHook
 }:
 
 let
@@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
     ant
     jdk
     makeWrapper
-    canonicalize-jars-hook
+    stripJavaArchivesHook
   ];
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/tools/misc/kalker/default.nix b/nixpkgs/pkgs/tools/misc/kalker/default.nix
index 2df69dd8f252..6b90866493c3 100644
--- a/nixpkgs/pkgs/tools/misc/kalker/default.nix
+++ b/nixpkgs/pkgs/tools/misc/kalker/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kalker";
-  version = "2.0.4";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "PaddiM8";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-8tJi4PRGhNCndiMRdZUvCSdx/+p9OhJyJ3AbD+PucSo=";
+    hash = "sha256-oBdo/FQZsJnUwhGrBuRWKZIvw2lZab9N/rv/muofs04=";
   };
 
-  cargoHash = "sha256-rGy4tkjjPiV2lpdOtfqjsXgBgi/x+45K4KeUDhyfQoA=";
+  cargoHash = "sha256-v4biE3J1a3qxiqJrSTFxyZhOJpoCnh2lZFBjy4O3XiE=";
 
   buildInputs = [ gmp mpfr libmpc ];
 
diff --git a/nixpkgs/pkgs/tools/misc/kcollectd/default.nix b/nixpkgs/pkgs/tools/misc/kcollectd/default.nix
index a5c1039274a4..dc45a18fe3dd 100644
--- a/nixpkgs/pkgs/tools/misc/kcollectd/default.nix
+++ b/nixpkgs/pkgs/tools/misc/kcollectd/default.nix
@@ -18,12 +18,12 @@
 
 mkDerivation rec {
   pname = "kcollectd";
-  version = "0.12.0";
+  version = "0.12.1";
   src = fetchFromGitLab {
     owner = "aerusso";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Ihd4Ps4t9+sNB3joO3vTxDR/25t7Ecl6yvHQ15QiUdY=";
+    sha256 = "sha256-bUVL5eRQ5UkSZo562pnyEcj0fVoSC5WHRq4BfN67jEM=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-client.nix b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-client.nix
index 266ef9accca6..4e997c65565a 100644
--- a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-client.nix
+++ b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-client.nix
@@ -30,6 +30,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
 
     # AGPL with a lesser clause
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-explorer.nix b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-explorer.nix
index 48c8e9a4f721..f14c19e0e474 100644
--- a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-explorer.nix
+++ b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-explorer.nix
@@ -26,11 +26,12 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Bitcoin command line tool";
+    mainProgram = "bx";
     homepage = "https://github.com/libbitcoin/libbitcoin-explorer";
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ asymmetric ];
 
     # AGPL with a lesser clause
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix
index ee9cb1da687f..bc4186c9b8e7 100644
--- a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix
+++ b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix
@@ -30,6 +30,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ asymmetric ];
 
     # AGPL with a lesser clause
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix
index 57e55400aa27..6014c6c5c779 100644
--- a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix
+++ b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ asymmetric ];
 
     # AGPL with a lesser clause
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin.nix b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin.nix
index 70a0f9bff6ef..cebd5090bfe5 100644
--- a/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin.nix
+++ b/nixpkgs/pkgs/tools/misc/libbitcoin/libbitcoin.nix
@@ -30,6 +30,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ ];
     # AGPL with a lesser clause
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/linux-logo/default.nix b/nixpkgs/pkgs/tools/misc/linux-logo/default.nix
index ad7dd7227a90..5b12f75b7297 100644
--- a/nixpkgs/pkgs/tools/misc/linux-logo/default.nix
+++ b/nixpkgs/pkgs/tools/misc/linux-logo/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Prints an ASCII logo and some system info";
+    mainProgram = "linux_logo";
     homepage = "http://www.deater.net/weave/vmwprod/linux_logo";
     changelog = "https://github.com/deater/linux_logo/blob/${src.rev}/CHANGES";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/tools/misc/lsd/default.nix b/nixpkgs/pkgs/tools/misc/lsd/default.nix
index 99dee32424fa..10c5a0371d54 100644
--- a/nixpkgs/pkgs/tools/misc/lsd/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lsd/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lsd";
-  version = "1.0.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "lsd-rs";
     repo = "lsd";
     rev = "v${version}";
-    hash = "sha256-syT+1LNdigUWkfJ/wkbY/kny2uW6qfpl7KmW1FjZKR8=";
+    hash = "sha256-pPCcKEmB1/BS6Q2j1fytwpZa/5KXIJu0ip0Zq97m6uw=";
   };
 
-  cargoHash = "sha256-viLr76Bq9OkPMp+BoprQusMDgx59nbevVi4uxjZ+eZg=";
+  cargoHash = "sha256-E0ui9cmuSqUMTkKvNNuEPOVd/gs4O2oW0aPxlyI9qoA=";
 
   nativeBuildInputs = [ installShellFiles pandoc ];
 
diff --git a/nixpkgs/pkgs/tools/misc/map/default.nix b/nixpkgs/pkgs/tools/misc/map/default.nix
index b6049904dc62..6416e12e9c19 100644
--- a/nixpkgs/pkgs/tools/misc/map/default.nix
+++ b/nixpkgs/pkgs/tools/misc/map/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Map lines from stdin to commands";
+    mainProgram = "map";
     homepage = "https://github.com/soveran/map";
     license = licenses.bsd2;
     maintainers = with maintainers; [ pogobanane ];
diff --git a/nixpkgs/pkgs/tools/misc/miniserve/default.nix b/nixpkgs/pkgs/tools/misc/miniserve/default.nix
index 7ba0165b0e01..0bdbd91a1dc6 100644
--- a/nixpkgs/pkgs/tools/misc/miniserve/default.nix
+++ b/nixpkgs/pkgs/tools/misc/miniserve/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "miniserve";
-  version = "0.26.0";
+  version = "0.27.1";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = "miniserve";
     rev = "v${version}";
-    hash = "sha256-f+k7ONX9bDrkyIhFxxaJvZYH2WBxYwCssbfM2fBPtRk=";
+    hash = "sha256-aqsEJJSb5dL7wEdDXiKEyqwCpg0O2Ld5jT+Hjdptha4=";
   };
 
-  cargoHash = "sha256-Omxd0ZgvtEiciFnKWkYupyts2QT9LUTXxaTdfu0Jnx8=";
+  cargoHash = "sha256-pQVvL9pUK9QTIDG4axuKyYQ4NKO8M4M38ajYDSHFxew=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/tools/misc/mise/default.nix b/nixpkgs/pkgs/tools/misc/mise/default.nix
index db9ec4cc40ba..c08de9afd8f1 100644
--- a/nixpkgs/pkgs/tools/misc/mise/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mise/default.nix
@@ -17,16 +17,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mise";
-  version = "2024.3.1";
+  version = "2024.3.7";
 
   src = fetchFromGitHub {
     owner = "jdx";
     repo = "mise";
     rev = "v${version}";
-    hash = "sha256-Pcchyc7LuHOyDEfZj5QSb7nVhMjO9iIV2uQEJocfLic=";
+    hash = "sha256-vwbg/OY7w9+5KvLp+BN2Ive9khVTUnWgnWD1T09iVR8=";
   };
 
-  cargoHash = "sha256-aKzl6yrsEi0DF0tsXB1eqTAar33FlJfRyYUKAi76o+c=";
+  cargoHash = "sha256-su8kyq+H42cYcQcoDYaTKAhLSykYOTXdkDQeCgScnp0=";
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
diff --git a/nixpkgs/pkgs/tools/misc/mmctl/0001-module-replace-public.patch b/nixpkgs/pkgs/tools/misc/mmctl/0001-module-replace-public.patch
deleted file mode 100644
index 2ac563dbbf4b..000000000000
--- a/nixpkgs/pkgs/tools/misc/mmctl/0001-module-replace-public.patch
+++ /dev/null
@@ -1,8 +0,0 @@
---- a/go.mod
-+++ b/go.mod
-@@ -218,3 +218,5 @@ exclude (
- 	github.com/dyatlov/go-opengraph v0.0.0-20210112100619-dae8665a5b09
- 	github.com/willf/bitset v1.2.0
- )
-+
-+replace github.com/mattermost/mattermost/server/public => ./public
diff --git a/nixpkgs/pkgs/tools/misc/mmctl/default.nix b/nixpkgs/pkgs/tools/misc/mmctl/default.nix
index 197d145fc6c7..a884f24db470 100644
--- a/nixpkgs/pkgs/tools/misc/mmctl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mmctl/default.nix
@@ -1,43 +1,12 @@
-{ lib
-, fetchFromGitHub
-, buildGoModule
+{ mattermost
 }:
 
-buildGoModule rec {
+mattermost.overrideAttrs (o: {
   pname = "mmctl";
-  version = "9.2.2";
-
-  src = fetchFromGitHub {
-    owner = "mattermost";
-    repo = "mattermost";
-    rev = "v${version}";
-    hash = "sha256-53L2F20vaLLxtQS3DP/u0ZxLtnXHmjfcOMbXd4i+A6Y=";
-  } + "/server";
-
-  vendorHash = "sha256-v8aKZyb4emrwuIgSBDgla5wzwyt6PVGakbXjB9JVaCk=";
-
-  patches = [ ./0001-module-replace-public.patch ];
-
   subPackages = [ "cmd/mmctl" ];
 
-  checkPhase = "go test -tags unit -timeout 30m ./cmd/mmctl/...";
-
-  ldflags = [
-    "-s"
-    "-w"
-    "-X github.com/mattermost/mattermost/server/public/model.Version=${version}"
-    "-X github.com/mattermost/mattermost/server/public/model.BuildNumber=${version}-nixpkgs"
-    "-X github.com/mattermost/mattermost/server/public/model.BuildDate=1970-01-01"
-    "-X github.com/mattermost/mattermost/server/public/model.BuildHash=v${version}"
-    "-X github.com/mattermost/mattermost/server/public/model.BuildHashEnterprise=none"
-    "-X github.com/mattermost/mattermost/server/public/model.BuildEnterpriseReady=false"
-  ];
-
-  meta = with lib; {
+  meta = o.meta // {
     description = "A remote CLI tool for Mattermost";
-    homepage = "https://github.com/mattermost/mmctl";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ ppom mgdelacroix ];
     mainProgram = "mmctl";
   };
-}
+})
diff --git a/nixpkgs/pkgs/tools/misc/moar/default.nix b/nixpkgs/pkgs/tools/misc/moar/default.nix
index 0fa109f4cda8..85eefe9f36eb 100644
--- a/nixpkgs/pkgs/tools/misc/moar/default.nix
+++ b/nixpkgs/pkgs/tools/misc/moar/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "moar";
-  version = "1.23.6";
+  version = "1.23.9";
 
   src = fetchFromGitHub {
     owner = "walles";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-WWMFyDLNi5XUEWi33Sav69i41icbp7NTzFy+Y+ImGNU=";
+    hash = "sha256-qpbsNHIWiYTa5kt0GTybnWiSnUdPYIeFYsWXinYjtQA=";
   };
 
   vendorHash = "sha256-1u/2OlMX2FuZaxWnpU4n5r/4xKe+rK++GoCJiSq/BdE=";
diff --git a/nixpkgs/pkgs/tools/misc/mods/default.nix b/nixpkgs/pkgs/tools/misc/mods/default.nix
index fda8944c330f..33cc3dd3e133 100644
--- a/nixpkgs/pkgs/tools/misc/mods/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mods/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "mods";
-  version = "1.1.0";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "mods";
     rev = "v${version}";
-    hash = "sha256-ZWH3YuN1cmdw96/HVzsp1u70ziUfupUeBjJiNI5a538=";
+    hash = "sha256-ecmfWnrd9gwIEGAOIcOeUnfmkKmq9dLxpKqAHJemhvU=";
   };
 
-  vendorHash = "sha256-PgaxqfgtwBYnzyL2F/OPJP1rdmLOtBCTKEPhMgvC6XA=";
+  vendorHash = "sha256-pJ31Lsa5VVix3BM4RrllQA3MJ/JeNIKfQ8RClyFfXCI=";
 
   ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
 
diff --git a/nixpkgs/pkgs/tools/misc/mpremote/default.nix b/nixpkgs/pkgs/tools/misc/mpremote/default.nix
index 892ee9756dbc..149e3c9686ac 100644
--- a/nixpkgs/pkgs/tools/misc/mpremote/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mpremote/default.nix
@@ -17,7 +17,7 @@ buildPythonApplication rec {
     rev = "refs/tags/v${version}";
     hash = "sha256-67CAR34VrMOzvNkukDeGRnUfoOLO66R37wsrRHjpp5E=";
   };
-  sourceRoot = "source/tools/mpremote";
+  sourceRoot = "${src.name}/tools/mpremote";
   format = "pyproject";
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/nbqa/default.nix b/nixpkgs/pkgs/tools/misc/nbqa/default.nix
index 10115affcca2..634c68894bf2 100644
--- a/nixpkgs/pkgs/tools/misc/nbqa/default.nix
+++ b/nixpkgs/pkgs/tools/misc/nbqa/default.nix
@@ -7,14 +7,14 @@
 }:
 python3.pkgs.buildPythonApplication rec {
   pname = "nbqa";
-  version = "1.8.3";
+  version = "1.8.4";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "nbQA-dev";
     repo = "nbQA";
     rev = "refs/tags/${version}";
-    hash = "sha256-RucDwXXEOTInhV/hk6gYXUmxUu660/pSTrBtHLrLkQ8=";
+    hash = "sha256-clxIe97pWeA9IGt+650tJfxTmU+qbrL/9B2VRVIML+s=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix b/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix
index e6b675e4d36f..2682658ab38d 100644
--- a/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix
+++ b/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/Code-Hex/Neo-cowsay";
     license = with licenses; [ artistic1 /* or */ gpl3 ];
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "cowsay";
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/ntfy-sh/default.nix b/nixpkgs/pkgs/tools/misc/ntfy-sh/default.nix
index 1bfde93c39e5..114038dd01f7 100644
--- a/nixpkgs/pkgs/tools/misc/ntfy-sh/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ntfy-sh/default.nix
@@ -5,21 +5,21 @@
 
 buildGoModule rec {
   pname = "ntfy-sh";
-  version = "2.8.0";
+  version = "2.9.0";
 
   src = fetchFromGitHub {
     owner = "binwiederhier";
     repo = "ntfy";
     rev = "v${version}";
-    hash = "sha256-YO6nf1tY+tEgPlvq7JDgeG0ywE8+HEpZH7ToFzvYfvY=";
+    hash = "sha256-nCW7D2iQEv9NeIvVn1+REacspchzJ7SJgl0glEWkAoE=";
   };
 
-  vendorHash = "sha256-Gvk/EI5b6AIYBCKYqSFKva0SfiWI/oNCeq7cTyVRpwY=";
+  vendorHash = "sha256-nnAw3BIiPMNa/7WSH8vurt8GUFM7Bf80CmtH4WjfC6Q=";
 
   ui = buildNpmPackage {
     inherit src version;
     pname = "ntfy-sh-ui";
-    npmDepsHash = "sha256-G2yEIiKc/gxcUPS+97B68C/HukabGZAX2XY1gstGBvg=";
+    npmDepsHash = "sha256-+4VL+bY3Nz5LT5ZyW9aJlrl3NsfOGv6CaiwLqpC5ywo=";
 
     prePatch = ''
       cd web/
diff --git a/nixpkgs/pkgs/tools/misc/ollama/default.nix b/nixpkgs/pkgs/tools/misc/ollama/default.nix
index 36546b5869a6..6feec441f911 100644
--- a/nixpkgs/pkgs/tools/misc/ollama/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ollama/default.nix
@@ -1,5 +1,5 @@
 { lib
-, buildGoModule
+, buildGo122Module
 , fetchFromGitHub
 , fetchpatch
 , buildEnv
@@ -7,6 +7,7 @@
 , overrideCC
 , makeWrapper
 , stdenv
+, nixosTests
 
 , pkgs
 , cmake
@@ -20,16 +21,19 @@
 
   # one of `[ null "rocm" "cuda" ]`
 , acceleration ? null
+
+, testers
+, ollama
 }:
 
 let
   pname = "ollama";
-  version = "0.1.28";
+  version = "0.1.29";
   src = fetchFromGitHub {
     owner = "jmorganca";
     repo = "ollama";
     rev = "v${version}";
-    hash = "sha256-8f7veZitorNiqGBPJuf/Y36TcFK8Q75Vw4w6CeTk8qs=";
+    hash = "sha256-M2G53DJF/22ZVCAb4jGjyErKO6q2argehHSV7AEef6w=";
     fetchSubmodules = true;
   };
 
@@ -47,6 +51,11 @@ let
   rocmPath = buildEnv {
     name = "rocm-path";
     paths = [
+      rocmPackages.clr
+      rocmPackages.hipblas
+      rocmPackages.rocblas
+      rocmPackages.rocsolver
+      rocmPackages.rocsparse
       rocmPackages.rocm-device-libs
       rocmClang
     ];
@@ -78,9 +87,9 @@ let
 
   goBuild =
     if enableCuda then
-      buildGoModule.override { stdenv = overrideCC stdenv gcc12; }
+      buildGo122Module.override { stdenv = overrideCC stdenv gcc12; }
     else
-      buildGoModule;
+      buildGo122Module;
   preparePatch = patch: hash: fetchpatch {
     url = "file://${src}/llm/patches/${patch}";
     inherit hash;
@@ -98,7 +107,7 @@ goBuild ((lib.optionalAttrs enableRocm {
   CUDAToolkit_ROOT = cudaToolkit;
 }) // {
   inherit pname version src;
-  vendorHash = "sha256-DPIhDqE/yXpSQqrx07osMBMafK61yU2dl4cZhxSTvm8=";
+  vendorHash = "sha256-Lj7CBvS51RqF63c01cOCgY7BCQeCKGu794qzb/S80C0=";
 
   nativeBuildInputs = [
     cmake
@@ -128,8 +137,11 @@ goBuild ((lib.optionalAttrs enableRocm {
 
     # ollama's patches of llama.cpp's example server
     # `ollama/llm/generate/gen_common.sh` -> "apply temporary patches until fix is upstream"
-    (preparePatch "01-cache.diff" "sha256-MTTln2G0G8dntihUzEjPM1ruTsApb4ZToBczJb8EG68=")
-    (preparePatch "02-cudaleaks.diff" "sha256-Cu7E9iEcvddPL9mPPI5Z96qmwWigi3f0WgSpPRjGc88=")
+    (preparePatch "01-cache.diff" "sha256-VDwu/iK6taBCyscpndQiOJ3eGqonnLVwmS2rJNMBVGU=")
+    (preparePatch "02-cudaleaks.diff" "sha256-nxsWgrePUMsZBWWQAjqVHWMJPzr1owH1zSJvUU7Q5pA=")
+    (preparePatch "03-load_exception.diff" "sha256-1DfNahFYYxqlx4E4pwMKQpL+XR0bibYnDFGt6dCL4TM=")
+    (preparePatch "04-locale.diff" "sha256-r5nHiP6yN/rQObRu2FZIPBKpKP9yByyZ6sSI2SKj6Do=")
+    (preparePatch "05-fix-clip-free.diff" "sha256-EFZ+QTtZCvstVxYgVdFKHsQqdkL98T0eXOEBOqCrlL4=")
   ];
   postPatch = ''
     # use a patch from the nix store in the `go generate` script
@@ -163,13 +175,18 @@ goBuild ((lib.optionalAttrs enableRocm {
     "-X=github.com/jmorganca/ollama/server.mode=release"
   ];
 
-  # for now, just test that rocm and cuda build
-  passthru.tests = lib.optionalAttrs stdenv.isLinux {
+  passthru.tests = {
+    service = nixosTests.ollama;
     rocm = pkgs.ollama.override { acceleration = "rocm"; };
     cuda = pkgs.ollama.override { acceleration = "cuda"; };
+    version = testers.testVersion {
+      inherit version;
+      package = ollama;
+    };
   };
 
   meta = {
+    changelog = "https://github.com/ollama/ollama/releases/tag/v${version}";
     description = "Get up and running with large language models locally";
     homepage = "https://github.com/jmorganca/ollama";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/misc/onefetch/default.nix b/nixpkgs/pkgs/tools/misc/onefetch/default.nix
index fe509320a712..84762c8b7274 100644
--- a/nixpkgs/pkgs/tools/misc/onefetch/default.nix
+++ b/nixpkgs/pkgs/tools/misc/onefetch/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "onefetch";
-  version = "2.19.0";
+  version = "2.20.0";
 
   src = fetchFromGitHub {
     owner = "o2sh";
     repo = pname;
     rev = version;
-    hash = "sha256-IaXQyTQMvgfm3CWU6z0T4nTJNgA8/8urG+hhuthB4+U=";
+    hash = "sha256-aQeKzOxRlSGuVewh3HEx1M12vmaxhy6ImnqMDc5b0DI=";
   };
 
-  cargoHash = "sha256-8brPYBVqoBg9wO/Y6LdNgVasJgmyZvdNIC0Cclpyk68=";
+  cargoHash = "sha256-g+fTmZGyPkQLgnJ9Bb4sLTfDMPPBRA+s6f3OxXTKwsM=";
 
   cargoPatches = [
     # enable pkg-config feature of zstd
diff --git a/nixpkgs/pkgs/tools/misc/opentelemetry-collector/contrib.nix b/nixpkgs/pkgs/tools/misc/opentelemetry-collector/contrib.nix
index e928544d240a..bad1051fcc64 100644
--- a/nixpkgs/pkgs/tools/misc/opentelemetry-collector/contrib.nix
+++ b/nixpkgs/pkgs/tools/misc/opentelemetry-collector/contrib.nix
@@ -8,18 +8,18 @@
 
 buildGoModule rec {
   pname = "opentelemetry-collector-contrib";
-  version = "0.87.0";
+  version = "0.96.0";
 
   src = fetchFromGitHub {
     owner = "open-telemetry";
     repo = "opentelemetry-collector-contrib";
     rev = "v${version}";
-    sha256 = "sha256-b1TCj3aKupqUMQ74O58O5WJfQM9tj1G0ny5YeeilFAM=";
+    sha256 = "sha256-eQau6PcslY/Bzghmndv1lq5fb+Q+x9guouKzLw5sJTg=";
   };
 
   # proxy vendor to avoid hash missmatches between linux and macOS
   proxyVendor = true;
-  vendorHash = "sha256-o/51Z2Zmdza3pNZa0u3j4uG46orE9S7pUsZOXjHKrnI=";
+  vendorHash = "sha256-aMxOu6eCskTlphMjM/CBs0lN6UkLDgSidS9qwlSUUiU=";
 
   # there is a nested go.mod
   sourceRoot = "${src.name}/cmd/otelcontribcol";
@@ -39,11 +39,7 @@ buildGoModule rec {
   # it instead of trusting the global $PATH.
   propagatedBuildInputs = lib.optionals withSystemd [ systemdMinimal ];
 
-  preCheck = "export CGO_ENABLED=1";
-
-  # This test fails on darwin for mysterious reasons.
-  checkFlags = lib.optionals stdenv.isDarwin
-    [ "-skip" "TestDefaultExtensions/memory_ballast" ];
+  doCheck = false;
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/tools/misc/otel-cli/default.nix b/nixpkgs/pkgs/tools/misc/otel-cli/default.nix
index de35952f184a..1330188a3ee4 100644
--- a/nixpkgs/pkgs/tools/misc/otel-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/otel-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "otel-cli";
-  version = "0.4.1";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "equinix-labs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-kOTReHG7byOqKsaVrXXNq9DAyawTz4hUeR4Q5lJKmiM=";
+    hash = "sha256-XVhnDtt2FhYgfGWDPFkneZTboeHGaIbiF5YdHoqB8N8=";
   };
 
   vendorHash = "sha256-HwbEqWtOqiTe5Z/MtMAs63Lzvll/vgmbCpMTREXgtXA=";
diff --git a/nixpkgs/pkgs/tools/misc/pb/default.nix b/nixpkgs/pkgs/tools/misc/pb/default.nix
index 1cbe8eded5cb..061ca691af75 100644
--- a/nixpkgs/pkgs/tools/misc/pb/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pb/default.nix
@@ -30,7 +30,7 @@ buildGoModule rec {
     homepage = "https://github.com/parseablehq/pb";
     changelog = "https://github.com/parseablehq/pb/releases/tag/v${version}";
     description = "CLI client for Parseable server";
-    license = licenses.agpl3;
+    license = licenses.agpl3Plus;
     maintainers = with maintainers; [ aaronjheng ];
     mainProgram = "pb";
   };
diff --git a/nixpkgs/pkgs/tools/misc/pfetch-rs/default.nix b/nixpkgs/pkgs/tools/misc/pfetch-rs/default.nix
index 7f90a595f469..0f1d5b2f1d33 100644
--- a/nixpkgs/pkgs/tools/misc/pfetch-rs/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pfetch-rs/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pfetch-rs";
-  version = "2.9.0";
+  version = "2.9.1";
 
   src = fetchFromGitHub {
     owner = "Gobidev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-7Udop3542L2l9EYQZntk/qW0GUQeYfoDHQQJ8j39krQ=";
+    hash = "sha256-tpJk31Z7QzZNLmEv/L1008tf6hpJJI6b7E1o/kwbJe0=";
   };
 
-  cargoHash = "sha256-gT5JjBsrGngfg77od566z+EOiH8KdARGYhTLOnOhWj4=";
+  cargoHash = "sha256-CQVPEUpblypDyr48MrLY3roGunOxem0eM1OtbcKlnsw=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.AppKit
diff --git a/nixpkgs/pkgs/tools/misc/pgbadger/default.nix b/nixpkgs/pkgs/tools/misc/pgbadger/default.nix
index 4054e6b20e94..b1024d68a91c 100644
--- a/nixpkgs/pkgs/tools/misc/pgbadger/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pgbadger/default.nix
@@ -1,13 +1,28 @@
-{ buildPerlPackage, shortenPerlShebang, stdenv, lib, fetchFromGitHub, which, bzip2, PodMarkdown, JSONXS
-, TextCSV_XS }:
+{
+  buildPerlPackage,
+  bzip2,
+  fetchFromGitHub,
+  JSONXS,
+  lib,
+  nix-update-script,
+  pgbadger,
+  PodMarkdown,
+  shortenPerlShebang,
+  stdenv,
+  testers,
+  TextCSV_XS,
+  which,
+}:
+
 buildPerlPackage rec {
   pname = "pgbadger";
-  version = "12.2";
+  version = "12.4";
+
   src = fetchFromGitHub {
     owner = "darold";
     repo = "pgbadger";
-    rev = "v${version}";
-    hash = "sha256-IzfpDqzS5VcehkPsFxyn3kJsvXs8nLgJ3WT8ZCmIDxI=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-an/BOkQsMkTXS0HywV1JWerS16HRbO1MHVleYhVqmBM=";
   };
 
   postPatch = ''
@@ -25,10 +40,27 @@ buildPerlPackage rec {
 
   PERL_MM_OPT = "INSTALL_BASE=${placeholder "out"}";
 
-  buildInputs = [ PodMarkdown JSONXS TextCSV_XS ];
+  buildInputs = [
+    JSONXS
+    PodMarkdown
+    TextCSV_XS
+  ];
+
   nativeBuildInputs = lib.optionals stdenv.isDarwin [ shortenPerlShebang ];
 
-  nativeCheckInputs = [ which bzip2 ];
+  nativeCheckInputs = [
+    bzip2
+    which
+  ];
+
+  passthru = {
+    tests.version = testers.testVersion {
+      inherit version;
+      command = "${lib.getExe pgbadger} --version";
+      package = pgbadger;
+    };
+    updateScript = nix-update-script { };
+  };
 
   meta = {
     homepage = "https://github.com/darold/pgbadger";
diff --git a/nixpkgs/pkgs/tools/misc/plantuml/plantuml-c4.nix b/nixpkgs/pkgs/tools/misc/plantuml/plantuml-c4.nix
index 2829d0a31eab..77cfa82e894f 100644
--- a/nixpkgs/pkgs/tools/misc/plantuml/plantuml-c4.nix
+++ b/nixpkgs/pkgs/tools/misc/plantuml/plantuml-c4.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "PlantUML bundled with C4-Plantuml and plantuml sprites library";
+    mainProgram = "plantuml";
     homepage = "https://github.com/plantuml-stdlib/C4-PlantUML";
     license = licenses.mit;
     maintainers = with maintainers; [ tfc ];
diff --git a/nixpkgs/pkgs/tools/misc/plfit/default.nix b/nixpkgs/pkgs/tools/misc/plfit/default.nix
index 78e7c3572b6f..8b1726666bcc 100644
--- a/nixpkgs/pkgs/tools/misc/plfit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/plfit/default.nix
@@ -7,17 +7,23 @@
 , llvmPackages
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "plfit";
-  version = "0.9.4";
+  version = "0.9.6";
 
   src = fetchFromGitHub {
     owner = "ntamas";
     repo = "plfit";
-    rev = version;
-    hash = "sha256-hnmP/56P2anR0S8zQyQqN1lbge5GgK+P8Lx8bRkwSxA=";
+    rev = finalAttrs.version;
+    hash = "sha256-XRl6poEdgPNorFideQmEJHCU+phs4rIhMYa8iAOtL1A=";
   };
 
+  postPatch = lib.optionalString (python != null) ''
+    substituteInPlace src/CMakeLists.txt \
+      --replace-fail ' ''${Python3_SITEARCH}' ' ${placeholder "out"}/${python.sitePackages}' \
+      --replace-fail ' ''${Python3_SITELIB}' ' ${placeholder "out"}/${python.sitePackages}'
+  '';
+
   nativeBuildInputs = [
     cmake
   ] ++ lib.optionals (python != null) [
@@ -35,11 +41,13 @@ stdenv.mkDerivation rec {
     llvmPackages.openmp
   ];
 
+  doCheck = true;
+
   meta = with lib; {
     description = "Fitting power-law distributions to empirical data";
     homepage = "https://github.com/ntamas/plfit";
-    changelog = "https://github.com/ntamas/plfit/blob/${src.rev}/CHANGELOG.md";
+    changelog = "https://github.com/ntamas/plfit/blob/${finalAttrs.src.rev}/CHANGELOG.md";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ dotlambda ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/tools/misc/pokeget-rs/default.nix b/nixpkgs/pkgs/tools/misc/pokeget-rs/default.nix
index 55995e8b0bce..2505fd2f9678 100644
--- a/nixpkgs/pkgs/tools/misc/pokeget-rs/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pokeget-rs/default.nix
@@ -5,17 +5,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pokeget-rs";
-  version = "1.4.2";
+  version = "1.4.2-2";
 
   src = fetchFromGitHub {
     owner = "talwat";
     repo = "pokeget-rs";
     rev = version;
-    hash = "sha256-++MD7XYWJ4Oim/VSYSisu/DwazOEfQ4CJNLfR5sjP3M=";
+    hash = "sha256-RPdtwHJsXdjIAeJP/LPdJ7GjwdIngM3eZO/A8InTpXQ=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-lWImtmtoo3ujbHvaeijuVjt0NQhdp+mxuu8oxNutr2E=";
+  cargoHash = "sha256-JeRSBG1HswttHOGyiNseFf2KiWkumrzEIw76A80nQHM=";
 
   meta = with lib; {
     description = "A better rust version of pokeget";
diff --git a/nixpkgs/pkgs/tools/misc/pricehist/default.nix b/nixpkgs/pkgs/tools/misc/pricehist/default.nix
index 04333a290731..d195cb42a147 100644
--- a/nixpkgs/pkgs/tools/misc/pricehist/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pricehist/default.nix
@@ -9,6 +9,7 @@
 , pytest-mock
 , responses
 , pytestCheckHook
+, pythonRelaxDepsHook
 }:
 
 buildPythonApplication rec {
@@ -31,11 +32,20 @@ buildPythonApplication rec {
     poetry-core
   ];
 
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
   nativeCheckInputs = [
     responses
     pytest-mock
     pytestCheckHook
   ];
+
+  pythonRelaxDeps = [
+    # https://gitlab.com/chrisberkhout/pricehist/-/issues/6
+    "lxml"
+  ];
   meta = with lib; {
     description = "A command-line tool for fetching and formatting historical price data, with support for multiple data sources and output formats";
     homepage = "https://gitlab.com/chrisberkhout/pricehist";
diff --git a/nixpkgs/pkgs/tools/misc/pspg/default.nix b/nixpkgs/pkgs/tools/misc/pspg/default.nix
index 2449fd30171d..47fb6fbbd8dd 100644
--- a/nixpkgs/pkgs/tools/misc/pspg/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pspg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pspg";
-  version = "5.8.1";
+  version = "5.8.2";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = version;
-    sha256 = "sha256-nsGBBGw66LCwOuNdBjlz6u9RT+BX6iZmZeDY9yJoc+c=";
+    sha256 = "sha256-1mL/UlN7wD0GBYwg0C2eYCB3MtFO2ILd4+A7br+/ovs=";
   };
 
   nativeBuildInputs = [ pkg-config installShellFiles ];
diff --git a/nixpkgs/pkgs/tools/misc/pubs/default.nix b/nixpkgs/pkgs/tools/misc/pubs/default.nix
index b02aeb8aefb6..1dcd011f0ace 100644
--- a/nixpkgs/pkgs/tools/misc/pubs/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pubs/default.nix
@@ -72,6 +72,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Command-line bibliography manager";
+    mainProgram = "pubs";
     homepage = "https://github.com/pubs/pubs";
     changelog = "https://github.com/pubs/pubs/blob/v${version}/changelog.md";
     license = licenses.lgpl3Only;
diff --git a/nixpkgs/pkgs/tools/misc/qrscan/default.nix b/nixpkgs/pkgs/tools/misc/qrscan/default.nix
index 6ac80bb7f746..1ad4c526e752 100644
--- a/nixpkgs/pkgs/tools/misc/qrscan/default.nix
+++ b/nixpkgs/pkgs/tools/misc/qrscan/default.nix
@@ -30,6 +30,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Scan a QR code in the terminal using the system camera or a given image";
+    mainProgram = "qrscan";
     homepage = "https://github.com/sayanarijit/qrscan";
     license = licenses.mit;
     broken = stdenv.isDarwin;
diff --git a/nixpkgs/pkgs/tools/misc/r3ctl/default.nix b/nixpkgs/pkgs/tools/misc/r3ctl/default.nix
index f76f704fc2a7..8af95a4630cf 100644
--- a/nixpkgs/pkgs/tools/misc/r3ctl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/r3ctl/default.nix
@@ -40,6 +40,7 @@ qt5.mkDerivation {
 
   meta = with lib; {
     description = "A cmdline tool to control the r3 hackerspace lights";
+    mainProgram = "r3ctl";
     homepage = "https://github.com/0xfeedc0de64/r3ctl";
     maintainers = with maintainers; [ mkg20001 ];
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/misc/rauc/default.nix b/nixpkgs/pkgs/tools/misc/rauc/default.nix
index 8f244839803c..03c0fb176d79 100644
--- a/nixpkgs/pkgs/tools/misc/rauc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rauc/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rauc";
-  version = "1.11.2";
+  version = "1.11.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-IWfYjn8CCgYK2hna59Awr5tzWnXCtR6c1XpV5fCiSE4=";
+    sha256 = "sha256-sFOvkr6WbiP99GNAttK9ZmRg+O/hoUQDCnW7vq9s/vo=";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/tools/misc/remind/default.nix b/nixpkgs/pkgs/tools/misc/remind/default.nix
index b9becd60ab08..d3ac44b71364 100644
--- a/nixpkgs/pkgs/tools/misc/remind/default.nix
+++ b/nixpkgs/pkgs/tools/misc/remind/default.nix
@@ -15,11 +15,11 @@ let
 in
 tcl.mkTclDerivation rec {
   pname = "remind";
-  version = "04.03.02";
+  version = "04.03.03";
 
   src = fetchurl {
     url = "https://dianne.skoll.ca/projects/remind/download/remind-${version}.tar.gz";
-    sha256 = "sha256-tL5Ntb/RIoT9mKcdU1ndBo/pGwhtIsRnTV0lL6Sg1Vw=";
+    sha256 = "sha256-+/vX6Nu0F84mZcEnd9jFlaVKbJIQQOJiPsxspKF+klQ=";
   };
 
   propagatedBuildInputs = tclLibraries;
diff --git a/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix b/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix
index 7c744935064f..9ce23873aa27 100644
--- a/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix
+++ b/nixpkgs/pkgs/tools/misc/riemann-c-client/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://git.madhouse-project.org/algernon/riemann-c-client";
     description = "A C client library for the Riemann monitoring system";
+    mainProgram = "riemann-client";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ pradeepchhetri ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/misc/rshim-user-space/default.nix b/nixpkgs/pkgs/tools/misc/rshim-user-space/default.nix
index a8bdd356a2cc..67cf3b6895e0 100644
--- a/nixpkgs/pkgs/tools/misc/rshim-user-space/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rshim-user-space/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rshim-user-space";
-  version = "2.0.12";
+  version = "2.0.20";
 
   src = fetchFromGitHub {
     owner = "Mellanox";
     repo = pname;
     rev = "rshim-${version}";
-    hash = "sha256-jR9Q1i2p4weKuGPTAylNIVglgcZH0UtvXBVVCEquxu8=";
+    hash = "sha256-zm1cMTna9o8edl0M7tjUhbnElbUkQZSkh3KOI6tbE6I=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/scdl/default.nix b/nixpkgs/pkgs/tools/misc/scdl/default.nix
index 611326d55403..d2e28865e33c 100644
--- a/nixpkgs/pkgs/tools/misc/scdl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/scdl/default.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "scdl";
-  version = "2.7.3";
+  version = "2.7.5";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "60284b7b058040d4847f2e4b0ab906b10e959d51f976a0188641e8e10685474f";
+    sha256 = "sha256-YoQaIbOfwLtkSZJGZd9CL7TZGgqjfohJfrnQ3t5uLU0=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/tools/misc/star-history/default.nix b/nixpkgs/pkgs/tools/misc/star-history/default.nix
index 9e4bbc830cbb..5c98e8a94419 100644
--- a/nixpkgs/pkgs/tools/misc/star-history/default.nix
+++ b/nixpkgs/pkgs/tools/misc/star-history/default.nix
@@ -9,14 +9,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "star-history";
-  version = "1.0.18";
+  version = "1.0.20";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-PKQyGDSLFRf5eEUICdtDAkbzfljdj0HN40c7+V21wHI=";
+    sha256 = "sha256-1mAEDcg25v47zKSYbL0w6KX56ZIti6NcpnQKUyrtybg=";
   };
 
-  cargoHash = "sha256-LriRO5XdcTqp+7quV11RwjNQgfzQsc5EV8GNwkuwz8s=";
+  cargoHash = "sha256-qkIHNFCGLtQ1uO0Y3vKR3zBtKj8Cq0ptgQcqeGvG5qs=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/misc/starship/default.nix b/nixpkgs/pkgs/tools/misc/starship/default.nix
index 605867e285c2..c970e19a6b89 100644
--- a/nixpkgs/pkgs/tools/misc/starship/default.nix
+++ b/nixpkgs/pkgs/tools/misc/starship/default.nix
@@ -13,13 +13,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "1.17.1";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "starship";
-    repo = pname;
+    repo = "starship";
     rev = "v${version}";
-    hash = "sha256-e+vhisUzSYKUUoYfSaQwpfMz2OzNcZbeHgbvyPon18g=";
+    hash = "sha256-f9alFoTH461y1EYnhxnnPN98ujLTnlVBJa8lEp8t44Y=";
   };
 
   nativeBuildInputs = [ installShellFiles cmake ];
@@ -41,10 +41,10 @@ rustPlatform.buildRustPackage rec {
 
     presetdir=$out/share/starship/presets/
     mkdir -p $presetdir
-    cp docs/.vuepress/public/presets/toml/*.toml $presetdir
+    cp docs/public/presets/toml/*.toml $presetdir
   '';
 
-  cargoHash = "sha256-xLlZyLvS9AcXQHxjyL4Dden1rEwCLB8/comfRyqXXCI=";
+  cargoHash = "sha256-7k7qb5jLz2mk27ayYYE5uFXYgQkjbIIwdppJxM8YgtY=";
 
   nativeCheckInputs = [ git ];
 
diff --git a/nixpkgs/pkgs/tools/misc/staruml/default.nix b/nixpkgs/pkgs/tools/misc/staruml/default.nix
index 058c2118db54..a6497a62f59b 100644
--- a/nixpkgs/pkgs/tools/misc/staruml/default.nix
+++ b/nixpkgs/pkgs/tools/misc/staruml/default.nix
@@ -24,12 +24,12 @@ let
   ];
 in
 stdenv.mkDerivation (finalAttrs: {
-  version = "6.0.1";
+  version = "6.1.0";
   pname = "staruml";
 
   src = fetchurl {
       url = "https://files.staruml.io/releases-v6/StarUML_${finalAttrs.version}_amd64.deb";
-      sha256 = "sha256-LxulOfYjdJrDjRL661S0W9slIXvhLc+kXZN6e3TfXVs=";
+      sha256 = "sha256-ULdrAQCiQlTN+aRhETj+ASMKkKctFgC2AfvUHGc6stU=";
     };
 
   nativeBuildInputs = [ wrapGAppsHook dpkg ];
diff --git a/nixpkgs/pkgs/tools/misc/steampipe/default.nix b/nixpkgs/pkgs/tools/misc/steampipe/default.nix
index 31d27ffe8bae..ef2b17828d80 100644
--- a/nixpkgs/pkgs/tools/misc/steampipe/default.nix
+++ b/nixpkgs/pkgs/tools/misc/steampipe/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "steampipe";
-  version = "0.21.8";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "turbot";
     repo = "steampipe";
     rev = "v${version}";
-    hash = "sha256-PY2CpieY1kTuT3Yd6i5hiRjVEwYNHn1GF+E0g6u8BP0=";
+    hash = "sha256-Qmb4dBLtztrhnm8fKEkaxX2tJAXsQ+/C8cweQbRc7uk=";
   };
 
-  vendorHash = "sha256-yS2FiTnK65LAY3tGSlMy0LMg6691tS/9yQ4w7HrW/pw=";
+  vendorHash = "sha256-2p/D/sycx78BXBe+WHeYP4hLz1aX33cCRQ/AbwKkidM=";
   proxyVendor = true;
 
   patchPhase = ''
@@ -41,7 +41,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://steampipe.io/";
     description = "select * from cloud;";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ hardselius ];
     changelog = "https://github.com/turbot/steampipe/blob/v${version}/CHANGELOG.md";
   };
diff --git a/nixpkgs/pkgs/tools/misc/tagref/default.nix b/nixpkgs/pkgs/tools/misc/tagref/default.nix
index 0b8ebf82730d..b54545f83685 100644
--- a/nixpkgs/pkgs/tools/misc/tagref/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tagref/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tagref";
-  version = "1.9.1";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "stepchowfun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4F9u1wzeBgYP3L6h08xMvgq62ix/SOaFaLl7uEf1j1c=";
+    sha256 = "sha256-ANQxW5Qznu2JbiazFElB1sxpX4BwPgk6SVGgYpJ6DUw=";
   };
 
-  cargoHash = "sha256-AO6BGevCoLCH4vpyrXrgF3FrjUa3lHA7ynXfk4KKigM=";
+  cargoHash = "sha256-vdmr5n4M+Qe/jzjNdg+sy7q2osTivxmLG+xMTMkEFm4=";
 
   meta = with lib; {
     description = "Manage cross-references in your code";
diff --git a/nixpkgs/pkgs/tools/misc/tbls/default.nix b/nixpkgs/pkgs/tools/misc/tbls/default.nix
index 7d0921abb8d0..4672adfc97c9 100644
--- a/nixpkgs/pkgs/tools/misc/tbls/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tbls/default.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "tbls";
-  version = "1.73.2";
+  version = "1.73.3";
 
   src = fetchFromGitHub {
     owner = "k1LoW";
     repo = "tbls";
     rev = "v${version}";
-    hash = "sha256-UXvUewArdClOolWFgN4Ta11vzq9C9zBjEzVGTtWSjiA=";
+    hash = "sha256-mAGEJ+FISPRrIz3dWwuf9EYbTNdaMj7tbHgthSYBiIU=";
   };
 
-  vendorHash = "sha256-zNQADZkAaohTZReD8qTnNJsfy58NXdQjUdd5j8KcOyY=";
+  vendorHash = "sha256-oMGAsVRSyndCJ3QXfrI02XrsOXkzljTNro6ygal6mDk=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/misc/thefuck/default.nix b/nixpkgs/pkgs/tools/misc/thefuck/default.nix
index d7a90fa8891f..150913c31d13 100644
--- a/nixpkgs/pkgs/tools/misc/thefuck/default.nix
+++ b/nixpkgs/pkgs/tools/misc/thefuck/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, buildPythonApplication
 , colorama, decorator, psutil, pyte, six
-, go, mock, pytestCheckHook, pytest-mock
+, go, mock, pytestCheckHook, pytest-mock, pytest_7
 }:
 
 buildPythonApplication rec {
@@ -16,7 +16,7 @@ buildPythonApplication rec {
 
   propagatedBuildInputs = [ colorama decorator psutil pyte six ];
 
-  nativeCheckInputs = [ go mock pytestCheckHook pytest-mock ];
+  nativeCheckInputs = [ go mock (pytestCheckHook.override { pytest = pytest_7; }) pytest-mock ];
 
   disabledTests = lib.optionals stdenv.isDarwin [
     "test_settings_defaults"
@@ -39,6 +39,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/nvbn/thefuck";
     description = "Magnificent app which corrects your previous console command";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ marcusramberg ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/tio/default.nix b/nixpkgs/pkgs/tools/misc/tio/default.nix
index 88e121368e66..d5dd656e4e41 100644
--- a/nixpkgs/pkgs/tools/misc/tio/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tio/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, inih, bash-completion }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, inih, bash-completion, darwin }:
 
 stdenv.mkDerivation rec {
   pname = "tio";
@@ -13,7 +13,8 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
 
-  buildInputs = [ inih ];
+  buildInputs = [ inih ]
+    ++ lib.optionals (stdenv.hostPlatform.isDarwin) [ darwin.apple_sdk.frameworks.IOKit ];
 
   nativeBuildInputs = [ meson ninja pkg-config bash-completion ];
 
diff --git a/nixpkgs/pkgs/tools/misc/tkman/default.nix b/nixpkgs/pkgs/tools/misc/tkman/default.nix
index 4df680fb6b8c..c51c3564fef8 100644
--- a/nixpkgs/pkgs/tools/misc/tkman/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tkman/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Graphical, hypertext manual page and Texinfo browser for UNIX";
+    mainProgram = "tkman";
     longDescription = ''
       TkMan is a graphical, hypertext manual page and Texinfo browser for UNIX.
       TkMan boasts hypertext links, unmatched online text formatting and display
diff --git a/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix b/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix
index 379430761399..f5fdbc698f86 100644
--- a/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tmuxinator/default.nix
@@ -8,8 +8,8 @@ buildRubyGem rec {
   inherit ruby;
   name = "${gemName}-${version}";
   gemName = "tmuxinator";
-  version = "3.0.5";
-  source.sha256 = "1ycsx9mvl0jsds4igi6avxclsyl5lndh1mpj2ykvzfz26wdddg6p";
+  version = "3.1.2";
+  source.sha256 = "t96v3RwBfezB644RVbTmO8i/xh1F23WQC8PBxc/msjg=";
 
   erubis = buildRubyGem rec {
     inherit ruby;
@@ -23,8 +23,8 @@ buildRubyGem rec {
     inherit ruby;
     name = "ruby${ruby.version}-${gemName}-${version}";
     gemName = "thor";
-    version = "1.2.1";
-    source.sha256 = "0inl77jh4ia03jw3iqm5ipr76ghal3hyjrd6r8zqsswwvi9j2xdi";
+    version = "1.3.0";
+    source.sha256 = "sha256-Gtx/nls2VaaMcTk/7ovQrQiNFO6Og6C3NybyPLs8p8M=";
   };
 
   xdg = buildRubyGem rec {
diff --git a/nixpkgs/pkgs/tools/misc/tmuxp/default.nix b/nixpkgs/pkgs/tools/misc/tmuxp/default.nix
index b61f0bddaa26..37faf47f02a9 100644
--- a/nixpkgs/pkgs/tools/misc/tmuxp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tmuxp/default.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "tmuxp";
-  version = "1.39.0";
+  version = "1.43.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-E8Q1uCV3kl4rYg/bzwjk3CNQU/uP9lEZzSqcOFkLrY0=";
+    hash = "sha256-SbMZpMrcOGNzEqa/2x0OtgC2/fhKp8Prs8Hspy3I3tA=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/ttfautohint/default.nix b/nixpkgs/pkgs/tools/misc/ttfautohint/default.nix
index 9d2036b97f78..14572d12a781 100644
--- a/nixpkgs/pkgs/tools/misc/ttfautohint/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ttfautohint/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An automatic hinter for TrueType fonts";
+    mainProgram = "ttfautohint";
     longDescription = ''
       A library and two programs which take a TrueType font as the
       input, remove its bytecode instructions (if any), and return a
diff --git a/nixpkgs/pkgs/tools/misc/turbo/default.nix b/nixpkgs/pkgs/tools/misc/turbo/default.nix
index c891ad5d0da2..05d2f7d1a0f6 100644
--- a/nixpkgs/pkgs/tools/misc/turbo/default.nix
+++ b/nixpkgs/pkgs/tools/misc/turbo/default.nix
@@ -62,6 +62,7 @@ rustPlatform.buildRustPackage rec{
 
   meta = with lib; {
     description = "High-performance build system for JavaScript and TypeScript codebases";
+    mainProgram = "turbo";
     homepage = "https://turbo.build/";
     maintainers = with maintainers; [ dlip ];
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/tools/misc/ugs/default.nix b/nixpkgs/pkgs/tools/misc/ugs/default.nix
index 99fba8bcfe93..2a3eea73c07f 100644
--- a/nixpkgs/pkgs/tools/misc/ugs/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ugs/default.nix
@@ -18,11 +18,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "ugs";
-  version = "2.1.5";
+  version = "2.1.6";
 
   src = fetchzip {
     url = "https://github.com/winder/Universal-G-Code-Sender/releases/download/v${version}/UniversalGcodeSender.zip";
-    hash = "sha256-StXEtDJ3UjTWgiQQ8HQtPcUENQPosdHis1eo81Jf96M=";
+    hash = "sha256-6L/4s/QmlTnYnhwLgPf7z8UVkBUYXi3Wb3doa5JCViE=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/tools/misc/upower-notify/default.nix b/nixpkgs/pkgs/tools/misc/upower-notify/default.nix
index c46ad10a40af..8033a91ecf51 100644
--- a/nixpkgs/pkgs/tools/misc/upower-notify/default.nix
+++ b/nixpkgs/pkgs/tools/misc/upower-notify/default.nix
@@ -23,6 +23,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "simple tool to give you Desktop Notifications about your battery";
+    mainProgram = "upower-notify";
     homepage = "https://github.com/omeid/upower-notify";
     maintainers = with maintainers; [ kamilchm ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/url-parser/default.nix b/nixpkgs/pkgs/tools/misc/url-parser/default.nix
index d55639b8be80..39ae506c2524 100644
--- a/nixpkgs/pkgs/tools/misc/url-parser/default.nix
+++ b/nixpkgs/pkgs/tools/misc/url-parser/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "url-parser";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchFromGitHub {
     owner = "thegeeklab";
     repo = "url-parser";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1KNe2sYr2DtRJGdgqs7JAA788Qa3+Z7iTntCkiJd29I=";
+    hash = "sha256-pu6U6YIA7+K1ZSt97Nn0IDaQFVIwMq3m7d8JidK1vJk=";
   };
 
-  vendorHash = "sha256-DAwPYihfOorC61/UhRNNOsOaAjbu8mDBaikGJIOzk6Y=";
+  vendorHash = "sha256-QqhjS0uL2Fm2OeFkuAB8VeS7HpoS9dOhgHk/J4j9++M=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/tools/misc/vector/Cargo.lock b/nixpkgs/pkgs/tools/misc/vector/Cargo.lock
index 41193aa9a014..6bc92235ea6c 100644
--- a/nixpkgs/pkgs/tools/misc/vector/Cargo.lock
+++ b/nixpkgs/pkgs/tools/misc/vector/Cargo.lock
@@ -4925,9 +4925,9 @@ dependencies = [
 
 [[package]]
 name = "lockfree-object-pool"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee33defb27b106378a6efcfcde4dda6226dfdac8ba7a2904f5bc93363cb88557"
+checksum = "3a69c0481fc2424cb55795de7da41add33372ea75a94f9b6588ab6a2826dfebc"
 
 [[package]]
 name = "log"
@@ -5234,9 +5234,9 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.9"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
  "log",
@@ -9816,7 +9816,7 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
 
 [[package]]
 name = "vector"
-version = "0.36.0"
+version = "0.36.1"
 dependencies = [
  "apache-avro",
  "approx",
@@ -9839,6 +9839,7 @@ dependencies = [
  "aws-sdk-s3",
  "aws-sdk-sns",
  "aws-sdk-sqs",
+ "aws-sdk-sts",
  "aws-sigv4",
  "aws-smithy-async",
  "aws-smithy-http",
@@ -10539,6 +10540,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
+name = "wasite"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
+
+[[package]]
 name = "wasm-bindgen"
 version = "0.2.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -10677,11 +10684,12 @@ dependencies = [
 
 [[package]]
 name = "whoami"
-version = "1.4.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50"
+checksum = "0fec781d48b41f8163426ed18e8fc2864c12937df9ce54c88ede7bd47270893e"
 dependencies = [
- "wasm-bindgen",
+ "redox_syscall 0.4.1",
+ "wasite",
  "web-sys",
 ]
 
diff --git a/nixpkgs/pkgs/tools/misc/vector/default.nix b/nixpkgs/pkgs/tools/misc/vector/default.nix
index 0540bcac517b..2a0b8dbba75f 100644
--- a/nixpkgs/pkgs/tools/misc/vector/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vector/default.nix
@@ -36,7 +36,7 @@
 
 let
   pname = "vector";
-  version = "0.36.0";
+  version = "0.36.1";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -45,7 +45,7 @@ rustPlatform.buildRustPackage {
     owner = "vectordotdev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-fbBKmhouY021osFVqNhEC+16cO7z3bS+DBhg1ByDeWw=";
+    hash = "sha256-iY0Bi1FG3kEiZtPTXonoVGYiquZkTPF51PWEZEoxQSw=";
   };
 
   cargoLock = {
diff --git a/nixpkgs/pkgs/tools/misc/wacomtablet/default.nix b/nixpkgs/pkgs/tools/misc/wacomtablet/default.nix
index 5ff2800496a7..f10ccd698cb9 100644
--- a/nixpkgs/pkgs/tools/misc/wacomtablet/default.nix
+++ b/nixpkgs/pkgs/tools/misc/wacomtablet/default.nix
@@ -24,6 +24,7 @@ mkDerivation rec {
 
   meta = {
     description = "KDE Configuration Module for Wacom Graphics Tablets";
+    mainProgram = "kde_wacom_tabletfinder";
     longDescription = ''
       This module implements a GUI for the Wacom Linux Drivers and extends it
       with profile support to handle different button / pen layouts per profile.
diff --git a/nixpkgs/pkgs/tools/misc/wv2/default.nix b/nixpkgs/pkgs/tools/misc/wv2/default.nix
index d57001449404..14420c1c3908 100644
--- a/nixpkgs/pkgs/tools/misc/wv2/default.nix
+++ b/nixpkgs/pkgs/tools/misc/wv2/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Excellent MS Word filter lib, used in most Office suites";
+    mainProgram = "wv2-config";
     license = lib.licenses.lgpl2;
     homepage = "https://wvware.sourceforge.net";
   };
diff --git a/nixpkgs/pkgs/tools/misc/yt-dlp/default.nix b/nixpkgs/pkgs/tools/misc/yt-dlp/default.nix
index eeb05dd4012e..03998332eda2 100644
--- a/nixpkgs/pkgs/tools/misc/yt-dlp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yt-dlp/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , brotli
+, hatchling
 , certifi
 , ffmpeg
 , rtmpdump
@@ -9,7 +10,9 @@
 , pycryptodomex
 , websockets
 , mutagen
+, requests
 , secretstorage
+, urllib3
 , atomicparsleySupport ? true
 , ffmpegSupport ? true
 , rtmpSupport ? true
@@ -22,19 +25,27 @@ buildPythonPackage rec {
   # The websites yt-dlp deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2023.12.30";
+  version = "2024.3.10";
+  pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-oRhi5XchsKDwiD3+taTXm6ITotTEXhiA6f1w+OZXDDg=";
+    inherit version;
+    pname = "yt_dlp";
+    hash = "sha256-bnTLFKadvrhyyO9OC4u+0u6EbsYzUTzzEkp0wfrtwHs=";
   };
 
+  nativeBuildInputs = [
+    hatchling
+  ];
+
   propagatedBuildInputs = [
     brotli
     certifi
     mutagen
     pycryptodomex
+    requests
     secretstorage  # "optional", as in not in requirements.txt, needed for `--cookies-from-browser`
+    urllib3
     websockets
   ];
 
@@ -48,7 +59,7 @@ buildPythonPackage rec {
         ++ lib.optional atomicparsleySupport atomicparsley
         ++ lib.optional ffmpegSupport ffmpeg
         ++ lib.optional rtmpSupport rtmpdump;
-    in lib.optionalString (packagesToBinPath != [])
+    in lib.optionals (packagesToBinPath != [])
     [ ''--prefix PATH : "${lib.makeBinPath packagesToBinPath}"'' ];
 
   setupPyBuildFlags = [
diff --git a/nixpkgs/pkgs/tools/misc/z-lua/default.nix b/nixpkgs/pkgs/tools/misc/z-lua/default.nix
index dca8c865a812..2d8dcc30f33a 100644
--- a/nixpkgs/pkgs/tools/misc/z-lua/default.nix
+++ b/nixpkgs/pkgs/tools/misc/z-lua/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "z-lua";
-  version = "1.8.17";
+  version = "1.8.18";
 
   src = fetchFromGitHub {
     owner = "skywind3000";
     repo = "z.lua";
     rev = version;
-    sha256 = "sha256-zhhrRTteKv6VvTbM7ao2Z3nWRN181nqLLcOA+qi88fc=";
+    sha256 = "sha256-QSwZhdBXO+x4vcwRnZjdYdIdWW0Nfu0oImftUgm4wyo=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/tools/networking/6tunnel/default.nix b/nixpkgs/pkgs/tools/networking/6tunnel/default.nix
index fbdd23f754ef..50259f827321 100644
--- a/nixpkgs/pkgs/tools/networking/6tunnel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/6tunnel/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tunnelling for application that don't speak IPv6";
+    mainProgram = "6tunnel";
     homepage = "https://github.com/wojtekka/6tunnel";
     license = licenses.gpl2;
     maintainers = with maintainers; [ Br1ght0ne ];
diff --git a/nixpkgs/pkgs/tools/networking/ain/default.nix b/nixpkgs/pkgs/tools/networking/ain/default.nix
index 755777f3939c..2425c600235d 100644
--- a/nixpkgs/pkgs/tools/networking/ain/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ain/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "ain";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "jonaslu";
     repo = "ain";
     rev = "v${version}";
-    hash = "sha256-LjGiRLTQxJ83fFBYH7RzQjDG8ZzHT/y1I7nXTb4peAo=";
+    hash = "sha256-JEavBPnF3WW6oCZ1OC8g1dZev4qC7bi74/q2nvXK3mo=";
   };
 
-  vendorHash = "sha256-eyB+0D0+4hHG4yKDj/m9QB+8YTyv+por8fTyu/WcZyg=";
+  vendorHash = "sha256-+72Y8SKvx7KBK5AIBWKlDqQYpHnZc9CNxCdo4yakPb0=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/tools/networking/airgeddon/default.nix b/nixpkgs/pkgs/tools/networking/airgeddon/default.nix
index cba25cae74f0..2bfe38203e8a 100644
--- a/nixpkgs/pkgs/tools/networking/airgeddon/default.nix
+++ b/nixpkgs/pkgs/tools/networking/airgeddon/default.nix
@@ -158,6 +158,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Multi-use TUI to audit wireless networks";
+    mainProgram = "airgeddon";
     homepage = "https://github.com/v1s1t0r1sh3r3/airgeddon";
     changelog = "https://github.com/v1s1t0r1sh3r3/airgeddon/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/tools/networking/boundary/default.nix b/nixpkgs/pkgs/tools/networking/boundary/default.nix
index 4480bdbede1f..44383586b3c8 100644
--- a/nixpkgs/pkgs/tools/networking/boundary/default.nix
+++ b/nixpkgs/pkgs/tools/networking/boundary/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "boundary";
-  version = "0.15.1";
+  version = "0.15.2";
 
   src =
     let
@@ -15,10 +15,10 @@ stdenv.mkDerivation rec {
         aarch64-darwin = "darwin_arm64";
       };
       sha256 = selectSystem {
-        x86_64-linux = "sha256-LPIvbT934HjetzaljMMVaZslavAY2torE684MLOTvLo=";
-        aarch64-linux = "sha256-RH8BHo97nTfMSWLfVY6r7qWqMBXcZRCIY5u/9lzrog4=";
-        x86_64-darwin = "sha256-6jEVffu4bTKzlnT364q5oD8+T6nXyqKZhBVLXv0Pbac=";
-        aarch64-darwin = "sha256-m+rGK7VbCZNDsumrFI3HNa/CG1eEzKDQTNTbb2ECn7c=";
+        x86_64-linux = "sha256-X8bO4kV5+u093TyEFMiKn967U7AsesRzU5YHohWpEdQ=";
+        aarch64-linux = "sha256-qMu44ecBzSx3knsXIKfRrO0X1BE14FoVFq6Vgw3bD5o=";
+        x86_64-darwin = "sha256-g2aQc9NUUxTO0BEsg/w4h1tYTUrtXiau62nBj3OM3Is=";
+        aarch64-darwin = "sha256-w6Vwft5w+aYC7aBndSQia3i7CyTOYG6ln7G6D9b9J90=";
       };
     in
     fetchzip {
diff --git a/nixpkgs/pkgs/tools/networking/bwm-ng/default.nix b/nixpkgs/pkgs/tools/networking/bwm-ng/default.nix
index cfe0d4176a6f..e594e1bae778 100644
--- a/nixpkgs/pkgs/tools/networking/bwm-ng/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bwm-ng/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A small and simple console-based live network and disk io bandwidth monitor";
+    mainProgram = "bwm-ng";
     homepage = "http://www.gropp.org/?id=projects&sub=bwm-ng";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/networking/cantoolz/default.nix b/nixpkgs/pkgs/tools/networking/cantoolz/default.nix
index 1f9308b741b4..9da492340007 100644
--- a/nixpkgs/pkgs/tools/networking/cantoolz/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cantoolz/default.nix
@@ -52,6 +52,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Black-box CAN network analysis framework";
+    mainProgram = "cantoolz";
     longDescription = ''
       CANToolz is a framework for analysing CAN networks and devices. It
       provides multiple modules that can be chained using CANToolz's pipe
diff --git a/nixpkgs/pkgs/tools/networking/carddav-util/default.nix b/nixpkgs/pkgs/tools/networking/carddav-util/default.nix
index e788de13df81..76e1b2656628 100644
--- a/nixpkgs/pkgs/tools/networking/carddav-util/default.nix
+++ b/nixpkgs/pkgs/tools/networking/carddav-util/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/ljanyst/carddav-util";
     description = "A CardDAV import/export utility";
+    mainProgram = "carddav-util.py";
     platforms = platforms.unix;
     license = licenses.isc;
   };
diff --git a/nixpkgs/pkgs/tools/networking/cfspeedtest/default.nix b/nixpkgs/pkgs/tools/networking/cfspeedtest/default.nix
index fcde1b580378..cb18d9ae1ed3 100644
--- a/nixpkgs/pkgs/tools/networking/cfspeedtest/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cfspeedtest/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cfspeedtest";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchFromGitHub {
     owner = "code-inflation";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-0BX9nEhSyYY/fDJHZOw0URLPIXZGRGZyXB1Tm8GX1/A=";
+    hash = "sha256-xg5jSA3J6QzqiItNV+poVxxXmKKPE7TsEYMGdKv4k+k=";
   };
 
-  cargoHash = "sha256-GNoYLps6OaA3Ubb0nG6hQfe6r52lhnIb19n1PLCsbXs=";
+  cargoHash = "sha256-ZXETP60R2121xTFqsvIFziUtKhL+ODGCpG98Mlt/zlg=";
 
   meta = with lib; {
     description = "Unofficial CLI for speed.cloudflare.com";
diff --git a/nixpkgs/pkgs/tools/networking/cloud-custodian/default.nix b/nixpkgs/pkgs/tools/networking/cloud-custodian/default.nix
index c5e1f7527dac..01e9d9a85722 100644
--- a/nixpkgs/pkgs/tools/networking/cloud-custodian/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cloud-custodian/default.nix
@@ -41,6 +41,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Rules engine for cloud security, cost optimization, and governance";
+    mainProgram = "custodian";
     homepage = "https://cloudcustodian.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ bhipple ];
diff --git a/nixpkgs/pkgs/tools/networking/cmst/default.nix b/nixpkgs/pkgs/tools/networking/cmst/default.nix
index e86ffeed9576..fd484798677c 100644
--- a/nixpkgs/pkgs/tools/networking/cmst/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cmst/default.nix
@@ -27,6 +27,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "QT GUI for Connman with system tray icon";
+    mainProgram = "cmst";
     homepage = "https://github.com/andrew-bibb/cmst";
     maintainers = with maintainers; [ matejc romildo ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/networking/corerad/default.nix b/nixpkgs/pkgs/tools/networking/corerad/default.nix
index 1a3340fcdb14..bb0ac8f32176 100644
--- a/nixpkgs/pkgs/tools/networking/corerad/default.nix
+++ b/nixpkgs/pkgs/tools/networking/corerad/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "corerad";
-  version = "1.2.2";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "mdlayher";
     repo = "corerad";
     rev = "v${version}";
-    sha256 = "sha256-cBP4jJhnIx+UwcbuQ3xbpImkLX4jSnsyvwfOEs31On4=";
+    hash = "sha256-vIKmE9Lq8We7BTMUHIgnOU370ZnNW7YG75WALWdG+4A=";
   };
 
-  vendorHash = "sha256-RkwfHjWu40AW+7zLc+sY5p2nyy3YPHk5sjt6foC103k=";
+  vendorHash = "sha256-dsqFleXpL8yAcdigqxJsk/Sxvp9OTqbGK3xDEiHkM8A=";
 
   # Since the tarball pulled from GitHub doesn't contain git tag information,
   # we fetch the expected tag's timestamp from a file in the root of the
@@ -33,7 +33,7 @@ buildGoModule rec {
     homepage = "https://github.com/mdlayher/corerad";
     description = "Extensible and observable IPv6 NDP RA daemon";
     license = licenses.asl20;
-    maintainers = with maintainers; [ mdlayher ];
+    maintainers = with maintainers; [ mdlayher jmbaur ];
     platforms = platforms.linux;
     mainProgram = "corerad";
   };
diff --git a/nixpkgs/pkgs/tools/networking/croc/default.nix b/nixpkgs/pkgs/tools/networking/croc/default.nix
index de3c44608655..f6a16b11b54b 100644
--- a/nixpkgs/pkgs/tools/networking/croc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/croc/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "9.6.13";
+  version = "9.6.14";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-uuE3Ci0JeWhYMHj5xO5UNZR4BOuaD15nMqFQFZIQCkY=";
+    sha256 = "sha256-0FtzPjaWJ1Q94rsx2WF7n24mQu2IsVBSQfddbPzQZ84=";
   };
 
-  vendorHash = "sha256-pUWUYV1Ts/dFXUzufIWt5ETRQVpxIGzxRFq9jviG0Fs=";
+  vendorHash = "sha256-IsecKLKPJgM4IoKAn8k8ipSWamdTVXcfF9V3r87eApE=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/networking/curl-impersonate/default.nix b/nixpkgs/pkgs/tools/networking/curl-impersonate/default.nix
index 070aab8d53f2..f4373e09b052 100644
--- a/nixpkgs/pkgs/tools/networking/curl-impersonate/default.nix
+++ b/nixpkgs/pkgs/tools/networking/curl-impersonate/default.nix
@@ -11,7 +11,10 @@
 , python3
 , ninja
 , perl
-, autoconf
+# autoconf-2.71 fails on problematic configure:
+#   checking curl version... 7.84.0
+#   ./configure: line 6713: syntax error near unexpected token `;;'
+, autoconf269
 , automake
 , libtool
 , darwin
@@ -40,6 +43,10 @@ let
       ./curl-impersonate-0.5.2-fix-shebangs.patch
     ];
 
+    # Disable blanket -Werror to fix build on `gcc-13` related to minor
+    # warnings on `boringssl`.
+    env.NIX_CFLAGS_COMPILE = "-Wno-error";
+
     strictDeps = true;
 
     nativeBuildInputs = lib.optionals stdenv.isDarwin [
@@ -52,7 +59,7 @@ let
       python3.pkgs.gyp
       ninja
       perl
-      autoconf
+      autoconf269
       automake
       libtool
       unzip
diff --git a/nixpkgs/pkgs/tools/networking/dd-agent/datadog-process-agent.nix b/nixpkgs/pkgs/tools/networking/dd-agent/datadog-process-agent.nix
index 4d1334505f32..45088be9e29b 100644
--- a/nixpkgs/pkgs/tools/networking/dd-agent/datadog-process-agent.nix
+++ b/nixpkgs/pkgs/tools/networking/dd-agent/datadog-process-agent.nix
@@ -4,6 +4,7 @@ datadog-agent.overrideAttrs (attrs: {
   meta = with lib;
     attrs.meta // {
       description = "Live process collector for the DataDog Agent v7";
+      mainProgram = "process-agent";
       maintainers = with maintainers; [ domenkozar ];
     };
   subPackages = [ "cmd/process-agent" ];
diff --git a/nixpkgs/pkgs/tools/networking/ddns-go/default.nix b/nixpkgs/pkgs/tools/networking/ddns-go/default.nix
index 957bfcd90917..c2b635c5e336 100644
--- a/nixpkgs/pkgs/tools/networking/ddns-go/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ddns-go/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "ddns-go";
-  version = "6.1.2";
+  version = "6.2.2";
 
   src = fetchFromGitHub {
     owner = "jeessy2";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-OKQRcYG3t7sU/HSmnkViWWm1is0fhrb6nyh8ahl/l6U=";
+    hash = "sha256-MwDwYoX1OT4TKMD2g+RBAlGfs8cz42dEFnV2b8Xzup8=";
   };
 
-  vendorHash = "sha256-VCp+seFaYXElQmktYlWm+nW4gNwNocOVm7T+M6+AdNg=";
+  vendorHash = "sha256-zUqsuph0fn1x4dwvBY0W0+S6SzS086SHya2ViNpDXGU=";
 
   ldflags = [
     "-X main.version=${version}"
diff --git a/nixpkgs/pkgs/tools/networking/decode-spam-headers/default.nix b/nixpkgs/pkgs/tools/networking/decode-spam-headers/default.nix
index 8f18658b52c5..0294a45be78b 100644
--- a/nixpkgs/pkgs/tools/networking/decode-spam-headers/default.nix
+++ b/nixpkgs/pkgs/tools/networking/decode-spam-headers/default.nix
@@ -37,6 +37,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/mgeeky/decode-spam-headers/";
     description = "A script that helps you understand why your E-Mail ended up in Spam";
+    mainProgram = "decode-spam-headers";
     longDescription = ''
       Whether you are trying to understand why a specific e-mail ended up in
       SPAM/Junk for your daily Administrative duties or for your Red-Team
diff --git a/nixpkgs/pkgs/tools/networking/discord-sh/default.nix b/nixpkgs/pkgs/tools/networking/discord-sh/default.nix
index 50e84034428d..cb6821ab4bc8 100644
--- a/nixpkgs/pkgs/tools/networking/discord-sh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/discord-sh/default.nix
@@ -42,6 +42,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     description = "Write-only command-line Discord webhook integration written in 100% Bash script";
+    mainProgram = "discord.sh";
     homepage = "https://github.com/ChaoticWeg/discord.sh";
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/networking/dnschef/default.nix b/nixpkgs/pkgs/tools/networking/dnschef/default.nix
index 5dbb8980f063..2907a0f578e5 100644
--- a/nixpkgs/pkgs/tools/networking/dnschef/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnschef/default.nix
@@ -21,6 +21,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/iphelix/dnschef";
     description = "Highly configurable DNS proxy for penetration testers and malware analysts";
+    mainProgram = "dnschef";
     license = licenses.bsd3;
     maintainers = [ maintainers.gfrascadorio ];
   };
diff --git a/nixpkgs/pkgs/tools/networking/dnstwist/default.nix b/nixpkgs/pkgs/tools/networking/dnstwist/default.nix
index 1d075a75de24..9165c550eaec 100644
--- a/nixpkgs/pkgs/tools/networking/dnstwist/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnstwist/default.nix
@@ -37,6 +37,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Domain name permutation engine for detecting homograph phishing attacks";
+    mainProgram = "dnstwist";
     homepage = "https://github.com/elceef/dnstwist";
     changelog = "https://github.com/elceef/dnstwist/releases/tag/${version}";
     license = with licenses; [ gpl3Only ];
diff --git a/nixpkgs/pkgs/tools/networking/dnsviz/default.nix b/nixpkgs/pkgs/tools/networking/dnsviz/default.nix
index aebf7e3cd14f..b275734f8889 100644
--- a/nixpkgs/pkgs/tools/networking/dnsviz/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsviz/default.nix
@@ -39,6 +39,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool suite for analyzing and visualizing DNS and DNSSEC behavior";
+    mainProgram = "dnsviz";
     longDescription = ''
       DNSViz is a tool suite for analysis and visualization of Domain Name System (DNS) behavior,
       including its security extensions (DNSSEC).
diff --git a/nixpkgs/pkgs/tools/networking/evillimiter/default.nix b/nixpkgs/pkgs/tools/networking/evillimiter/default.nix
index 20cc10728d60..a96151a3355f 100644
--- a/nixpkgs/pkgs/tools/networking/evillimiter/default.nix
+++ b/nixpkgs/pkgs/tools/networking/evillimiter/default.nix
@@ -40,6 +40,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool that monitors, analyzes and limits the bandwidth";
+    mainProgram = "evillimiter";
     longDescription = ''
       A tool to monitor, analyze and limit the bandwidth (upload/download) of
       devices on your local network without physical or administrative access.
diff --git a/nixpkgs/pkgs/tools/networking/flannel/default.nix b/nixpkgs/pkgs/tools/networking/flannel/default.nix
index 9bd20bb090f3..03cf372e2f07 100644
--- a/nixpkgs/pkgs/tools/networking/flannel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/flannel/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "flannel";
-  version = "0.24.2";
+  version = "0.24.4";
   rev = "v${version}";
 
-  vendorHash = "sha256-vxzcFVFbbXeBb9kAJaAkvk26ptGo8CdnPJdcuC9qdF0=";
+  vendorHash = "sha256-meBo4KsM0qcpW/FIF32NG9MYWK945EaBpzopkmT1WMI=";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "flannel-io";
     repo = "flannel";
-    sha256 = "sha256-pCgrIVB29OhegUuSuWVUaDWcLVI54FH5YlLjDcRf3j8=";
+    sha256 = "sha256-Qw1TAkToKgDt2/GHqlsM5vyTslI0dutJlwTA5xKqbFo=";
   };
 
   ldflags = [ "-X github.com/flannel-io/flannel/pkg/version.Version=${rev}" ];
diff --git a/nixpkgs/pkgs/tools/networking/flannel/plugin.nix b/nixpkgs/pkgs/tools/networking/flannel/plugin.nix
index db8b89fa0bfe..0ff8e600ff44 100644
--- a/nixpkgs/pkgs/tools/networking/flannel/plugin.nix
+++ b/nixpkgs/pkgs/tools/networking/flannel/plugin.nix
@@ -35,6 +35,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "flannel CNI plugin";
+    mainProgram = "flannel";
     homepage = "https://github.com/flannel-io/cni-plugin/";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/networking/gandi-cli/default.nix b/nixpkgs/pkgs/tools/networking/gandi-cli/default.nix
index d7394ac94d88..8f703320f253 100644
--- a/nixpkgs/pkgs/tools/networking/gandi-cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gandi-cli/default.nix
@@ -31,6 +31,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Command-line interface to the public Gandi.net API";
+    mainProgram = "gandi";
     homepage = "https://cli.gandi.net/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/tools/networking/gmrender-resurrect/default.nix b/nixpkgs/pkgs/tools/networking/gmrender-resurrect/default.nix
index 70ad352a6aad..70c07b4eac9b 100644
--- a/nixpkgs/pkgs/tools/networking/gmrender-resurrect/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gmrender-resurrect/default.nix
@@ -28,6 +28,7 @@ in
 
     meta = with lib; {
       description = "Resource efficient UPnP/DLNA renderer, optimal for Raspberry Pi, CuBox or a general MediaServer";
+      mainProgram = "gmediarender";
       homepage = "https://github.com/hzeller/gmrender-resurrect";
       license = licenses.gpl2Plus;
       platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/networking/gnirehtet/default.nix b/nixpkgs/pkgs/tools/networking/gnirehtet/default.nix
index be511c756587..2281822d2e77 100644
--- a/nixpkgs/pkgs/tools/networking/gnirehtet/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gnirehtet/default.nix
@@ -49,6 +49,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Reverse tethering over adb for Android";
+    mainProgram = "gnirehtet";
     longDescription = ''
       This project provides reverse tethering over adb for Android: it allows devices to use the internet connection of the computer they are plugged on. It does not require any root access (neither on the device nor on the computer).
 
diff --git a/nixpkgs/pkgs/tools/networking/gost/default.nix b/nixpkgs/pkgs/tools/networking/gost/default.nix
index 4c31ce88cbf5..2921fab6f2a9 100644
--- a/nixpkgs/pkgs/tools/networking/gost/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gost/default.nix
@@ -2,24 +2,24 @@
 
 buildGoModule rec {
   pname = "gost";
-  version = "2.11.5";
+  version = "2.11.5-unstable-2024-02-02";
 
   src = fetchFromGitHub {
     owner = "ginuerzh";
     repo = "gost";
-    rev = "v${version}";
-    sha256 = "sha256-UBjrWeBw9+qKQ/+1T1W/3e0vrigp540URIyM2d9iCE8=";
+    rev = "fd57e80709aba9581757b1cd63b7d8f75e2385d2";
+    sha256 = "sha256-GkXsiUcH5hppgkkt4ddVMLm5riUDORVhjWBGHZXti5A=";
   };
 
   patches = [
-    # Add go1.20 support. Remove with the next release.
+    # Bump quic-go to v0.41.0 for go 1.22 compatibility.
     (fetchpatch {
-      url = "https://github.com/ginuerzh/gost/commit/0f7376bd10c913c7e6b1e7e02dd5fd7769975d78.patch";
-      hash = "sha256-pQNCvl7/huNrkM3+XHkGnvLYCzdjbMV6nef1KcMnKEw=";
+      url = "https://github.com/ginuerzh/gost/pull/1016/commits/c2e3f7e493bbb6ff1bc348f36e1a148d9d0c16ad.patch";
+      hash = "sha256-9OtuPIzzCymMAVbrDuhhPcxcac69gjAUm4ykXbH/pbo=";
     })
   ];
 
-  vendorHash = "sha256-wAdNfhSPj9JUcI6Gcja6nRy68bVhV8B4PARR0WS9rjQ=";
+  vendorHash = "sha256-mq95eHyW8XkqyLApSqVB3bv5VFSu6FuPap/mTQj8a9M=";
 
   postPatch = ''
     substituteInPlace http2_test.go \
diff --git a/nixpkgs/pkgs/tools/networking/gp-saml-gui/default.nix b/nixpkgs/pkgs/tools/networking/gp-saml-gui/default.nix
index 8a7ad11a2fe7..348d47b667f6 100644
--- a/nixpkgs/pkgs/tools/networking/gp-saml-gui/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gp-saml-gui/default.nix
@@ -39,6 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Interactively authenticate to GlobalProtect VPNs that require SAML";
+    mainProgram = "gp-saml-gui";
     homepage = "https://github.com/dlenski/gp-saml-gui";
     license = licenses.gpl3Only;
     maintainers = [ maintainers.pallix ];
diff --git a/nixpkgs/pkgs/tools/networking/grpc_cli/default.nix b/nixpkgs/pkgs/tools/networking/grpc_cli/default.nix
index 0e2cc5be00c8..91d66f7bd020 100644
--- a/nixpkgs/pkgs/tools/networking/grpc_cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/grpc_cli/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "grpc_cli";
-  version = "1.62.0";
+  version = "1.62.1";
   src = fetchFromGitHub {
     owner = "grpc";
     repo = "grpc";
     rev = "v${version}";
-    hash = "sha256-iqoxgo/oocO9gBq0o5bmZvre/EwRguMrWnmwvyLGLr8=";
+    hash = "sha256-L0bn6Bg36UKIRxznH9o4T7WXUqMwFjr8ybeQfbUi8xM=";
     fetchSubmodules = true;
   };
   nativeBuildInputs = [ automake cmake autoconf ];
diff --git a/nixpkgs/pkgs/tools/networking/haguichi/default.nix b/nixpkgs/pkgs/tools/networking/haguichi/default.nix
index fd228c141b5d..a921884dda06 100644
--- a/nixpkgs/pkgs/tools/networking/haguichi/default.nix
+++ b/nixpkgs/pkgs/tools/networking/haguichi/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical frontend for Hamachi on Linux";
+    mainProgram = "haguichi";
     homepage = "https://haguichi.net/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/networking/hblock/default.nix b/nixpkgs/pkgs/tools/networking/hblock/default.nix
index 19e7dde77c85..6615c27fe629 100644
--- a/nixpkgs/pkgs/tools/networking/hblock/default.nix
+++ b/nixpkgs/pkgs/tools/networking/hblock/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Improve your security and privacy by blocking ads, tracking and malware domains";
+    mainProgram = "hblock";
     homepage = "https://github.com/hectorm/hblock";
     license = licenses.mit;
     maintainers = with maintainers; [ alanpearce ];
diff --git a/nixpkgs/pkgs/tools/networking/http-prompt/default.nix b/nixpkgs/pkgs/tools/networking/http-prompt/default.nix
index 8fce232cdb17..02bb42800abf 100644
--- a/nixpkgs/pkgs/tools/networking/http-prompt/default.nix
+++ b/nixpkgs/pkgs/tools/networking/http-prompt/default.nix
@@ -27,6 +27,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "An interactive command-line HTTP client featuring autocomplete and syntax highlighting";
+    mainProgram = "http-prompt";
     homepage = "https://github.com/eliangcs/http-prompt";
     license = licenses.mit;
     maintainers = with maintainers; [ matthiasbeyer ];
diff --git a/nixpkgs/pkgs/tools/networking/httplz/default.nix b/nixpkgs/pkgs/tools/networking/httplz/default.nix
index 2a0f665f863a..c85c763635d3 100644
--- a/nixpkgs/pkgs/tools/networking/httplz/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httplz/default.nix
@@ -45,6 +45,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A basic http server for hosting a folder fast and simply";
+    mainProgram = "httplz";
     homepage = "https://github.com/thecoshman/http";
     changelog = "https://github.com/thecoshman/http/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/networking/httpstat/default.nix b/nixpkgs/pkgs/tools/networking/httpstat/default.nix
index be4a8f2a168d..971c973ada21 100644
--- a/nixpkgs/pkgs/tools/networking/httpstat/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httpstat/default.nix
@@ -17,6 +17,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = {
     description = "curl statistics made simple";
+    mainProgram = "httpstat";
     homepage = "https://github.com/reorx/httpstat";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ nequissimus ];
diff --git a/nixpkgs/pkgs/tools/networking/hysteria/default.nix b/nixpkgs/pkgs/tools/networking/hysteria/default.nix
index 705d8025742b..1299da97f3f3 100644
--- a/nixpkgs/pkgs/tools/networking/hysteria/default.nix
+++ b/nixpkgs/pkgs/tools/networking/hysteria/default.nix
@@ -4,16 +4,16 @@
 }:
 buildGoModule rec {
   pname = "hysteria";
-  version = "2.2.4";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "apernet";
     repo = pname;
     rev = "app/v${version}";
-    hash = "sha256-A8UTnvH5BYRETsjte65+M+HHO6MrqCiPthNEYwBkBYs=";
+    hash = "sha256-sjQrHvUdGPdzKpXuJ9ZWp4S9pram8QaygKLT2WRmd2M=";
   };
 
-  vendorHash = "sha256-uh/qYQBWsyazSbJIz1ykf5bap18fGSIfjVDL8zus2l0=";
+  vendorHash = "sha256-btDWsvhKygWda4x45c8MSOROq6ujJVV9l0PkGQKWM6A=";
   proxyVendor = true;
 
   ldflags =
diff --git a/nixpkgs/pkgs/tools/networking/ifwifi/default.nix b/nixpkgs/pkgs/tools/networking/ifwifi/default.nix
index f04c3369bacf..8777df72b5e1 100644
--- a/nixpkgs/pkgs/tools/networking/ifwifi/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ifwifi/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple wrapper over nmcli using wifiscanner made in rust";
+    mainProgram = "ifwifi";
     longDescription = ''
       In the author's words:
 
diff --git a/nixpkgs/pkgs/tools/networking/imapsync/default.nix b/nixpkgs/pkgs/tools/networking/imapsync/default.nix
index 0fb519ad5af7..4c2b4a36e064 100644
--- a/nixpkgs/pkgs/tools/networking/imapsync/default.nix
+++ b/nixpkgs/pkgs/tools/networking/imapsync/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Mail folder synchronizer between IMAP servers";
+    mainProgram = "imapsync";
     homepage = "https://imapsync.lamiral.info/";
     license = licenses.nlpl;
     maintainers = with maintainers; [ pSub ];
diff --git a/nixpkgs/pkgs/tools/networking/iperf3d/default.nix b/nixpkgs/pkgs/tools/networking/iperf3d/default.nix
index 1edcaf86ed2e..eb1fa052131b 100644
--- a/nixpkgs/pkgs/tools/networking/iperf3d/default.nix
+++ b/nixpkgs/pkgs/tools/networking/iperf3d/default.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A iperf3 client and server wrapper for dynamic server ports";
+    mainProgram = "iperf3d";
     homepage = "https://github.com/wobcom/iperf3d";
     license = licenses.mit;
     maintainers = with maintainers; [ netali ] ++ teams.wdz.members;
diff --git a/nixpkgs/pkgs/tools/networking/ipfetch/default.nix b/nixpkgs/pkgs/tools/networking/ipfetch/default.nix
index f264deaa8a35..38d1e309bc97 100644
--- a/nixpkgs/pkgs/tools/networking/ipfetch/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ipfetch/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Neofetch but for ip addresses";
+    mainProgram = "ipfetch";
     homepage = "https://github.com/trakBan/ipfetch";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/networking/ipgrep/default.nix b/nixpkgs/pkgs/tools/networking/ipgrep/default.nix
index d1f5316c27b4..04f39f8d28fb 100644
--- a/nixpkgs/pkgs/tools/networking/ipgrep/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ipgrep/default.nix
@@ -27,6 +27,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Extract, defang, resolve names and IPs from text";
+    mainProgram = "ipgrep.py";
     longDescription = ''
       ipgrep extracts possibly obfuscated host names and IP addresses
       from text, resolves host names, and prints them, sorted by ASN.
diff --git a/nixpkgs/pkgs/tools/networking/ipinfo/default.nix b/nixpkgs/pkgs/tools/networking/ipinfo/default.nix
index e9db76d73f56..500b40120fc5 100644
--- a/nixpkgs/pkgs/tools/networking/ipinfo/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ipinfo/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "ipinfo";
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "cli";
     rev = "refs/tags/${pname}-${version}";
-    hash = "sha256-B0Qb6RFBAUBpE1o8GqKQtxpndeHermMlwlWlfIa7rmM=";
+    hash = "sha256-sdQdCP2NotrdeqYrSd9c6sExFeuX54I4fxJfEyULPuk=";
   };
 
   vendorHash = null;
diff --git a/nixpkgs/pkgs/tools/networking/kea/default.nix b/nixpkgs/pkgs/tools/networking/kea/default.nix
index 574afb68e237..5bdb7bd7607b 100644
--- a/nixpkgs/pkgs/tools/networking/kea/default.nix
+++ b/nixpkgs/pkgs/tools/networking/kea/default.nix
@@ -87,7 +87,6 @@ stdenv.mkDerivation rec {
   passthru.tests = {
     kea = nixosTests.kea;
     prefix-delegation = nixosTests.systemd-networkd-ipv6-prefix-delegation;
-    prometheus-exporter = nixosTests.prometheus-exporters.kea;
     networking-scripted = lib.recurseIntoAttrs { inherit (nixosTests.networking.scripted) dhcpDefault dhcpSimple dhcpOneIf; };
     networking-networkd = lib.recurseIntoAttrs { inherit (nixosTests.networking.networkd) dhcpDefault dhcpSimple dhcpOneIf; };
   };
diff --git a/nixpkgs/pkgs/tools/networking/knock/package.nix b/nixpkgs/pkgs/tools/networking/knock/package.nix
new file mode 100644
index 000000000000..b9879859722a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/knock/package.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
+
+buildGoModule rec {
+  pname = "knock";
+  version = "0.0.2";
+
+  src = fetchFromGitHub {
+    owner = "nat-418";
+    repo ="knock";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-VXrWphfBDGDNsz4iuUdwwd46oqnmhJ9i3TtzMqHoSJk=";
+  };
+
+  vendorHash = "sha256-wkSXdIgfkHbVJYsgm/hLAeKA9geof92U3mzSzt7eJE8=";
+
+  outputs = [ "out" "man" ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installManPage man/man1/knock.1
+  '';
+
+  meta = with lib; {
+    description = "A simple CLI network reachability tester";
+    homepage = "https://github.com/nat-418/knock";
+    license = licenses.bsd0;
+    changelog = "https://github.com/nat-418/knock/blob/${version}/CHANGELOG.md";
+    maintainers = with maintainers; [ nat-418 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/labctl/default.nix b/nixpkgs/pkgs/tools/networking/labctl/default.nix
index 00cb63b31d1d..921bf7c4e3bf 100644
--- a/nixpkgs/pkgs/tools/networking/labctl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/labctl/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
+, fetchpatch
 , installShellFiles
 }:
 
@@ -15,9 +16,18 @@ buildGoModule rec {
     hash = "sha256-84t7qhLafNyPLgHmFQUsizEn6Us44dDTercGEm9lup4=";
   };
 
+  patches = [
+    # Fix build failure with Go 1.21 by updating go4.org/unsafe/assume-no-moving-gc
+    # See https://github.com/labctl/labctl/pull/4
+    (fetchpatch {
+      url = "https://github.com/labctl/labctl/commit/615d05e94b991362beddce71c7ee34eae7fc93ff.patch";
+      hash = "sha256-4JrXSsg8rfuH6i8XyLd/qO6AibkRMDBIpfT8r1yS75c=";
+    })
+  ];
+
   nativeBuildInputs = [ installShellFiles ];
 
-  vendorHash = "sha256-vJ9aTMVwKrqjckdfCMvheTSG+gEtMLLQuBCz8Wc5blE=";
+  vendorHash = "sha256-Ycr/IZckIFysS9Goes58hhgh96UMRHjYWfWlQU23mXk=";
 
   ldflags = [
     "-X=github.com/labctl/labctl/app.version=${version}"
diff --git a/nixpkgs/pkgs/tools/networking/linkchecker/default.nix b/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
index 018da51f7701..2adf2c8f82d1 100644
--- a/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
+++ b/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
@@ -54,6 +54,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Check websites for broken links";
+    mainProgram = "linkchecker";
     homepage = "https://linkcheck.github.io/linkchecker/";
     changelog = "https://github.com/linkchecker/linkchecker/releases/tag/v${version}";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/tools/networking/mbidled/default.nix b/nixpkgs/pkgs/tools/networking/mbidled/default.nix
index 9e07d1afbe21..d37862cf8eba 100644
--- a/nixpkgs/pkgs/tools/networking/mbidled/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mbidled/default.nix
@@ -6,15 +6,16 @@
 , libev
 , openssl
 }:
+
 stdenv.mkDerivation {
   pname = "mbidled";
-  version = "unstable-2022-10-30";
+  version = "unstable-2023-09-30";
 
   src = fetchFromGitHub {
     owner = "zsugabubus";
     repo = "mbidled";
-    rev = "b06152f015a470876b042e538804ebb1ac247c09";
-    sha256 = "sha256-eHm10onJ7v6fhvJiGXZhuN3c9cj+NoVIW2XQb2fdmuA=";
+    rev = "c724a34cc01b829b19a60655fc1652a378db7f27";
+    sha256 = "sha256-XQXLPjEEesBd+bATsKE2nvoNcuqtRA1JIsV7306CssA=";
   };
 
   preConfigure = ''
@@ -22,11 +23,13 @@ stdenv.mkDerivation {
   '';
 
   nativeBuildInputs = [
-    meson ninja
+    meson
+    ninja
   ];
 
   buildInputs = [
-    libev openssl
+    libev
+    openssl
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/networking/minio-client/default.nix b/nixpkgs/pkgs/tools/networking/minio-client/default.nix
index 804181d35bf5..68e67d88ba03 100644
--- a/nixpkgs/pkgs/tools/networking/minio-client/default.nix
+++ b/nixpkgs/pkgs/tools/networking/minio-client/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "minio-client";
-  version = "2024-03-07T00-31-49Z";
+  version = "2024-03-13T23-51-57Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "mc";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-vrK3CjZWJp8Qs1GiTs3rcOYyrkBDVGspSLL63u9r/8Q=";
+    sha256 = "sha256-aLIK7N7Xz39GnqhyaCzTx+UHnMN9/oIikxGlPeqM6XE=";
   };
 
-  vendorHash = "sha256-T0NOik/KQ2j666BeHPuEyU2ngne2K+NIF8AVAoMXsaM=";
+  vendorHash = "sha256-DCjjHriD/J/MGcksJX3fn9wSaf+lXX73Dm5K1VU/2B8=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix b/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix
index dabf5194f881..1c3cb3f0e592 100644
--- a/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/miniupnpd/default.nix
@@ -28,11 +28,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "miniupnpd";
-  version = "2.3.4";
+  version = "2.3.5";
 
   src = fetchurl {
     url = "https://miniupnp.tuxfamily.org/files/miniupnpd-${version}.tar.gz";
-    sha256 = "sha256-5zAzSPyKxCfefwTw7rdX1J3Mg2cxHuJYJVLDj11toIo=";
+    sha256 = "sha256-ljekEsM9J3jNrlYQWJM7TgtnRl/xNOlnYaexl1Gy+g8=";
   };
 
   buildInputs = [ iptables-legacy libuuid openssl ]
diff --git a/nixpkgs/pkgs/tools/networking/modemmanager/default.nix b/nixpkgs/pkgs/tools/networking/modemmanager/default.nix
index 6c4356d04fd4..64d61f0e323c 100644
--- a/nixpkgs/pkgs/tools/networking/modemmanager/default.nix
+++ b/nixpkgs/pkgs/tools/networking/modemmanager/default.nix
@@ -19,6 +19,7 @@
 , vala
 , gobject-introspection
 , dbus
+, bash
 }:
 
 stdenv.mkDerivation rec {
@@ -39,6 +40,8 @@ stdenv.mkDerivation rec {
     ./no-dummy-dirs-in-sysconfdir.patch
   ];
 
+  strictDeps = true;
+
   nativeBuildInputs = [
     meson
     ninja
@@ -61,6 +64,7 @@ stdenv.mkDerivation rec {
     systemd
     bash-completion
     dbus
+    bash # shebangs in share/ModemManager/fcc-unlock.available.d/
   ];
 
   nativeInstallCheckInputs = [
diff --git a/nixpkgs/pkgs/tools/networking/moodle-dl/default.nix b/nixpkgs/pkgs/tools/networking/moodle-dl/default.nix
index f819fe819284..76c3e4b1a20a 100644
--- a/nixpkgs/pkgs/tools/networking/moodle-dl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/moodle-dl/default.nix
@@ -26,6 +26,7 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/C0D3D3V/Moodle-Downloader-2";
     maintainers = [ maintainers.kmein ];
     description = "A Moodle downloader that downloads course content fast from Moodle";
+    mainProgram = "moodle-dl";
     license = licenses.gpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/mozillavpn/default.nix b/nixpkgs/pkgs/tools/networking/mozillavpn/default.nix
index 194ac57d2cbf..4974c873894c 100644
--- a/nixpkgs/pkgs/tools/networking/mozillavpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mozillavpn/default.nix
@@ -147,6 +147,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Client for the Mozilla VPN service";
+    mainProgram = "mozillavpn";
     homepage = "https://vpn.mozilla.org/";
     license = lib.licenses.mpl20;
     maintainers = with lib.maintainers; [ andersk ];
diff --git a/nixpkgs/pkgs/tools/networking/mqttmultimeter/default.nix b/nixpkgs/pkgs/tools/networking/mqttmultimeter/default.nix
index 1edb48a62cbb..e2d6f4e6fbd3 100644
--- a/nixpkgs/pkgs/tools/networking/mqttmultimeter/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mqttmultimeter/default.nix
@@ -1,8 +1,7 @@
 { lib
 , stdenv
 , dotnetCorePackages
-, dotnet-runtime_6
-, dotnet-runtime_7
+, dotnet-runtime_8
 , buildDotnetModule
 , fetchFromGitHub
 , autoPatchelfHook
@@ -16,37 +15,23 @@
 # NOTES:
 # 1. we need autoPatchelfHook for quite a number of things in $out/lib
 
-let
-  version = "1.7.0.211";
-
-  sdk =
-    if lib.versionAtLeast (lib.versions.majorMinor version) "1.7"
-    then dotnetCorePackages.sdk_7_0
-    else dotnetCorePackages.sdk_6_0;
-
-  runtime =
-    if lib.versionAtLeast (lib.versions.majorMinor version) "1.7"
-    then dotnet-runtime_7
-    else dotnet-runtime_6;
-
-in
 buildDotnetModule rec {
   pname = "mqttmultimeter";
-  inherit version;
+  version = "1.8.2.272";
 
   src = fetchFromGitHub {
     owner = "chkr1011";
     repo = "mqttMultimeter";
     rev = "v" + version;
-    hash = "sha256-/XQ5HD0dBfFn3ERlLwHknS9Fyd3YMpKHBXuvMwRXcQ8=";
+    hash = "sha256-vL9lmIhNLwuk1tmXLKV75xAhktpdNOb0Q4ZdvLur5hw=";
   };
 
   sourceRoot = "${src.name}/Source";
 
   projectFile = [ "mqttMultimeter.sln" ];
   nugetDeps = ./deps.nix;
-  dotnet-sdk = sdk;
-  dotnet-runtime = runtime;
+  dotnet-sdk = dotnetCorePackages.sdk_8_0;
+  dotnet-runtime = dotnet-runtime_8;
   executables = [ "mqttMultimeter" ];
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/networking/mqttmultimeter/deps.nix b/nixpkgs/pkgs/tools/networking/mqttmultimeter/deps.nix
index 13ddfb334b60..c43ceb31c3c0 100644
--- a/nixpkgs/pkgs/tools/networking/mqttmultimeter/deps.nix
+++ b/nixpkgs/pkgs/tools/networking/mqttmultimeter/deps.nix
@@ -2,55 +2,50 @@
 # Please dont edit it manually, your changes might get overwritten!
 
 { fetchNuGet }: [
-  (fetchNuGet { pname = "Avalonia"; version = "0.10.19"; sha256 = "1yzrbp0b6kv9h9d4kl96ldr6ln40xj1j2yvbvpm0pgv7ajwr7qhc"; })
-  (fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2020091801"; sha256 = "04jm83cz7vkhhr6n2c9hya2k8i2462xbf6np4bidk55as0jdq43a"; })
-  (fetchNuGet { pname = "Avalonia.AvaloniaEdit"; version = "0.10.12.2"; sha256 = "1sn8k71xcfnjxgxfqzdrv1hy7h7pvdk820nyzkmrf02gi77mx7nw"; })
-  (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "0.10.19"; sha256 = "0wlmr4dlz8x3madm7xwhmsf0kgdnwcy6n7zvfd9x6h0bllii1lbn"; })
-  (fetchNuGet { pname = "Avalonia.Desktop"; version = "0.10.19"; sha256 = "0vghwp1wx6l1z0dlvd9aqdaikz6k34q0i9yzaphqlzjp6ms2g2ny"; })
-  (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "0.10.19"; sha256 = "1zlcp8mwn2nscrdsvxlspny22m054gsva9az27pvk7s2s5mrqgfk"; })
-  (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "0.10.19"; sha256 = "01fin1w9nwa3c9kpvbri26x1r4g59hmayx9r5hxwbhq7s7vm5ghr"; })
-  (fetchNuGet { pname = "Avalonia.Native"; version = "0.10.19"; sha256 = "0c9rw2wckyx9h5yfhm0af5zbs53n9bnhv0mlshl7mn0p92v1wfl3"; })
-  (fetchNuGet { pname = "Avalonia.ReactiveUI"; version = "0.10.19"; sha256 = "0kx4qka2rdmlp54qyn04hh79qc5w796gv3ryv24n82hpplzksqi9"; })
-  (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "0.10.19"; sha256 = "0klk9hqas0h3d3lmr0di175nw2kwq5br1xpprkb4y4m83r5lfy0s"; })
-  (fetchNuGet { pname = "Avalonia.Skia"; version = "0.10.19"; sha256 = "16cl9ssmyif2a25fq9kvxs2vr83j589yns53zkfr3wmggl9n6lf2"; })
-  (fetchNuGet { pname = "Avalonia.Win32"; version = "0.10.19"; sha256 = "1pd3jmrdc738j7b4d8rzaj7fxrfq1m2pl3i62z2ym3h0sxl51xy2"; })
-  (fetchNuGet { pname = "Avalonia.X11"; version = "0.10.19"; sha256 = "1h71w73r7r9ci059qwsjqnhp60l8sfd3i3xsw37qfnbhslcna6hh"; })
-  (fetchNuGet { pname = "AvaloniaEdit.TextMate"; version = "0.10.12.2"; sha256 = "0d7i2vrv2lzyjb1xna4dxscl256g062c6b96ayh9aksnrygxxsx9"; })
-  (fetchNuGet { pname = "AvaloniaEdit.TextMate.Grammars"; version = "0.10.12.1"; sha256 = "0s3g1k0sqma5i6lq5qva2zkgghhba8s5iz4s6jy7dh984x6pp38b"; })
-  (fetchNuGet { pname = "DynamicData"; version = "7.1.1"; sha256 = "14xcqkw87zbjljy1pb727kwq5a4dfmsf5vg99fq0xxb71q828nvh"; })
-  (fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.1-preview.108"; sha256 = "0xs4px4fy5b6glc77rqswzpi5ddhxvbar1md6q9wla7hckabnq0z"; })
-  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.8.2.1-preview.108"; sha256 = "16wvgvyra2g1b38rxxgkk85wbz89hspixs54zfcm4racgmj1mrj4"; })
-  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2.1-preview.108"; sha256 = "16v7lrwwif2f5zfkx08n6y6w3m56mh4hy757biv0w9yffaf200js"; })
-  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "2.8.2.1-preview.108"; sha256 = "15kqb353snwpavz3jja63mq8xjqsrw1f902scm8wxmsqrm5q6x55"; })
-  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.1-preview.108"; sha256 = "0n6ymn9jqms3mk5hg0ar4y9jmh96myl6q0jimn7ahb1a8viq55k1"; })
-  (fetchNuGet { pname = "JetBrains.Annotations"; version = "10.3.0"; sha256 = "1grdx28ga9fp4hwwpwv354rizm8anfq4lp045q4ss41gvhggr3z8"; })
-  (fetchNuGet { pname = "MessagePack"; version = "2.5.108"; sha256 = "0cnaz28lhrdmavnxjkakl9q8p2yv8mricvp1b0wxdfnz8v41gwzs"; })
-  (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.5.108"; sha256 = "0nb1fx8dwl7304kw0bc375bvlhb7pg351l4cl3vqqd7d8zqjwx5v"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "2.9.6"; sha256 = "18mr1f0wpq0fir8vjnq0a8pz50zpnblr7sabff0yqx37c975934a"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.4.0"; sha256 = "12rn6gl4viycwk3pz5hp5df63g66zvba4hnkwr3f0876jj5ivmsw"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.4.0"; sha256 = "0rhylcwa95bxawcgixk64knv7p7xrykdjcabmx3gknk8hvj1ai9y"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.4.0"; sha256 = "1h2f0z9xnw987x8bydka1sd42ijqjx973md6v1gvpy1qc6ad244g"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.4.0"; sha256 = "195gqnpwqkg2wlvk8x6yzm7byrxfq9bki20xmhf6lzfsdw3z4mf2"; })
+  (fetchNuGet { pname = "Avalonia"; version = "11.0.9"; sha256 = "1km9642p9qbx8i14q94h65m96ywr9d54ilv5h0rdsdfidbpbmfhf"; })
+  (fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2023020321"; sha256 = "1az4s1g22ipak9a3xfh55z2h3rm6lpqh7svbpw6ag4ysrgsjjsjd"; })
+  (fetchNuGet { pname = "Avalonia.AvaloniaEdit"; version = "11.0.6"; sha256 = "1vma45sa5falrzmw23jzr3chhi7gllvxgkks379sd48a6p6acv6q"; })
+  (fetchNuGet { pname = "Avalonia.BuildServices"; version = "0.0.29"; sha256 = "05mm7f0jssih3gbzqfgjnfq5cnqa85ihsg0z1897ciihv8qd3waq"; })
+  (fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.9"; sha256 = "1ycc7jzlhyvy3ssw8pqb9da8qrv9wxwnffk060w7wbb00m90zjh3"; })
+  (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "11.0.9"; sha256 = "1q58z54wl9sk4j17innm885fn776j9f381mhsmd0mzw0ybya3dys"; })
+  (fetchNuGet { pname = "Avalonia.Desktop"; version = "11.0.9"; sha256 = "06mcb24grrikjqbgmvrry47hjyz9qcqz6az9lpmjlf9nrsf6h1yc"; })
+  (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "11.0.9"; sha256 = "19j6z5zq5k4sfgkak6y0nsq3i98jzyz9y87bw5nf1jbpa4ahv2dn"; })
+  (fetchNuGet { pname = "Avalonia.Fonts.Inter"; version = "11.0.9"; sha256 = "1w56gyn5pbvv1j9mm5n9ga8zlfq515nzc6hdqfnsrgaxh6xxkxyb"; })
+  (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "11.0.9"; sha256 = "0ws8gk8rc1h9axn55zm222axal3pbyjmsqvpgihzwfdjafk3qy2w"; })
+  (fetchNuGet { pname = "Avalonia.Native"; version = "11.0.9"; sha256 = "0hn6b2b16kiyzjmas9gx874bhn4x3ab114k2ixw32wcl3m61w749"; })
+  (fetchNuGet { pname = "Avalonia.ReactiveUI"; version = "11.0.9"; sha256 = "1j6q7djp1jl2j2k6qvfik7gjqjljbkwj1y65zgh93v002xirfmja"; })
+  (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.9"; sha256 = "0vxjbrsn2r1jgm12avln2xnlqs0ya593yh341g7qrq9awmaik93h"; })
+  (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.9"; sha256 = "07sjawy0zpmsx0d26kfz7zw2a23z254sdd6psscypidl92cxhy3d"; })
+  (fetchNuGet { pname = "Avalonia.Themes.Fluent"; version = "11.0.9"; sha256 = "1ddsyh3bf99swsmb6m7cz1ilvlfqzqs8c1cfscpd9v8cabpgip8g"; })
+  (fetchNuGet { pname = "Avalonia.Themes.Simple"; version = "11.0.9"; sha256 = "0q6kxvnrkzpcmby235h372axcy0wv3j9zlq64k1bhg92sh3za9w6"; })
+  (fetchNuGet { pname = "Avalonia.Win32"; version = "11.0.9"; sha256 = "143rvsz6hw7fq5fvxflg0w8545gc20kcijd0qc3qilf0hcirn26q"; })
+  (fetchNuGet { pname = "Avalonia.X11"; version = "11.0.9"; sha256 = "0yrhmjrxdjymw70dqxpaivq9vvj4lvd16bxc8wm8w3nkw82my8f7"; })
+  (fetchNuGet { pname = "AvaloniaEdit.TextMate"; version = "11.0.6"; sha256 = "075qh14h3v89f6vzgjq63p8zvnazfd12p5pzv0zs1l9dm0zmc2pd"; })
+  (fetchNuGet { pname = "DynamicData"; version = "7.9.5"; sha256 = "1m9qx8g6na5ka6kd9vhg8gjmxrnkzb6v5cl5yqp1kdjsw4rcwy6x"; })
+  (fetchNuGet { pname = "HarfBuzzSharp"; version = "7.3.0"; sha256 = "1rqcmdyzxz9kc0k8594hbpksjc23mkakmjybi4b8702qycxx0lrf"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "7.3.0"; sha256 = "0i9gaiyjgmcpnfn1fixbxq8shqlh4ahng7j4dxlf38zlln1f6h80"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "7.3.0"; sha256 = "1b5ng37bwk75cifw7p1hzn8z6sswi8h7h510qgwlbvgmlrs5r0ga"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "7.3.0"; sha256 = "0dcmclnyryb82wzsky1dn0gbjsvx84mfx46v984f5fmg4v238lpm"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "7.3.0"; sha256 = "1hyvmz7rfbrxbcpnwyvb64gdk1hifcpz3rln58yyb7g1pnbpnw2s"; })
+  (fetchNuGet { pname = "MessagePack"; version = "2.5.129"; sha256 = "08bpg5v467zyx5ni8pj9x2nkqx3r2vbfdh7v72laii0707163fb2"; })
+  (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.5.129"; sha256 = "1q0pprliqr8wrn09k8sa2p9l28q30rk6sl47vlazgwc678f96vg7"; })
+  (fetchNuGet { pname = "MicroCom.Runtime"; version = "0.11.0"; sha256 = "0p9c3m0zk59x9dcqw077hzd2yk60myisbacvm36mnwpcjwzjkp2m"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.0.0"; sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.8.0"; sha256 = "12n7rvr39bzkf2maw7zplw8rwpxpxss4ich3bb2pw770rx4nyvyw"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.8.0"; sha256 = "1kmry65csvfn72zzc16vj1nfbfwam28wcmlrk3m5rzb8ydbzgylb"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.8.0"; sha256 = "0w0yx0lpg54iw5jazqk46h48gx43ij32gwac8iywdj6kxfxm03vw"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.8.0"; sha256 = "0hjgxcsj5zy27lqk0986m59n5dbplx2vjjla2lsvg4bwg8qa7bpk"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.3.0"; sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "7.0.0"; sha256 = "121zs4jp8iimgbpzm3wsglhjwkc06irg1pxy8c1zcdlsg34cfq1p"; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "7.0.0"; sha256 = "181d7mp9307fs17lyy42f8cxnjwysddmpsalky4m0pqxcimnr6g7"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "7.0.0"; sha256 = "1bqd3pqn5dacgnkq0grc17cgb2i0w8z1raw12nwm3p3zhrfcvgxf"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "7.0.0"; sha256 = "1gn7d18i1wfy13vrwhmdv1rmsb4vrk26kqdld4cgvh77yigj90xs"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "7.0.0"; sha256 = "0b90zkrsk5dw3wr749rbynhpxlg4bgqdnd7d5vdlw2g9c7zlhgx6"; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "7.0.0"; sha256 = "1b4km9fszid9vp2zb3gya5ni9fn8bq62bzaas2ck2r7gs0sdys80"; })
-  (fetchNuGet { pname = "Microsoft.NET.StringTools"; version = "17.4.0"; sha256 = "1smx30nq22plrn2mw4wb5vfgxk6hyx12b60c4wabmpnr81lq3nzv"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
+  (fetchNuGet { pname = "Microsoft.NET.StringTools"; version = "17.6.3"; sha256 = "0g5jdg0jp844a2ygwlm04igsxkrihqcq2rpmfx722nrv3vrk0r0z"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; })
-  (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.Win32.SystemEvents"; version = "4.5.0"; sha256 = "0fnkv3ky12227zqg4zshx4kw2mvysq2ppxjibfw02cc3iprv4njq"; })
-  (fetchNuGet { pname = "MQTTnet"; version = "4.2.0.706"; sha256 = "0125d2x62izlkplgyg5dazz2x38amkby6i8vlfvvjvng9zq159m3"; })
-  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
-  (fetchNuGet { pname = "ReactiveUI"; version = "13.2.10"; sha256 = "0x4pk45wipzsjzkv23as8l0sdds665l9404gaix8c0z2n24s76gg"; })
+  (fetchNuGet { pname = "MQTTnet"; version = "4.3.3.952"; sha256 = "0a6g389vxia2k6lgnhk1x7vgns7da7hlqvj1z0f5av5qfk2377g3"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; })
+  (fetchNuGet { pname = "ReactiveUI"; version = "18.3.1"; sha256 = "1lxkc8yk9glj0w9n5vry2dnwwvh8152ad2c5bivk8aciq64zidyn"; })
   (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.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
   (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
@@ -61,7 +56,6 @@
   (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.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
@@ -76,70 +70,52 @@
   (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
   (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
   (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.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
   (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
-  (fetchNuGet { pname = "SkiaSharp"; version = "2.88.1-preview.108"; sha256 = "01sm36hdgmcgkai9m09xn2qfz8v7xhh803n8fng8rlxwnw60rgg6"; })
-  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.1-preview.108"; sha256 = "19jf2jcq2spwbpx3cfdi2a95jf4y8205rh56lmkh8zsxd2k7fjyp"; })
-  (fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.1-preview.108"; sha256 = "1vcpqd7slh2b9gsacpd7mk1266r1xfnkm6230k8chl3ng19qlf15"; })
-  (fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.1-preview.108"; sha256 = "0a89gqjw8k97arr0kyd0fm3f46k1qamksbnyns9xdlgydjg557dd"; })
-  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.1-preview.108"; sha256 = "05g9blprq5msw3wshrgsk19y0fvhjlqiybs1vdyhfmww330jlypn"; })
-  (fetchNuGet { pname = "Splat"; version = "10.0.1"; sha256 = "18fzrn7xwjzxj4v3drs8djd3yf14bnq5n9n8vdnwfa1zk5jqpsb9"; })
-  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "SkiaSharp"; version = "2.88.7"; sha256 = "0f6wbk9dnjiffb9ycjachy1m9zw3pai2m503nym07qgb0izxm792"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.7"; sha256 = "0p0z6nxkkmabv46wmxhs3yr0xy24i6jzn54gk0hsm3h1a8vi3m21"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.7"; sha256 = "05xwa1izzvqz4gznvx2x31qnpvl1lc65hm5p9sscjg5afisya0ss"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.7"; sha256 = "1k2hfasgbv01navc55zzwdwzfxcw4186jni35c00zykgwhbwb250"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.7"; sha256 = "119mlbh5hmlis7vb111s95dwg5p1anm2hmv7cm6fz7gy18473d7v"; })
+  (fetchNuGet { pname = "Splat"; version = "14.4.1"; sha256 = "03ycyjn2ii44npi015p4rk344xnjgdzz02cf63cmhx2ab8hv6p4b"; })
   (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; })
-  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.6.0"; sha256 = "1pbxzdz3pwqyybzv5ff2b7nrc281bhg7hq34w0fn1w3qfgrbwyw2"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
   (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
   (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
-  (fetchNuGet { pname = "System.Drawing.Common"; version = "4.5.0"; sha256 = "0knqa0zsm91nfr34br8gx5kjqq4v81zdhqkacvs2hzc8nqk0ddhc"; })
   (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
   (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.Pipelines"; version = "6.0.0"; sha256 = "08211lvckdsdbd67xz4f6cyk76cli565j0dby1grlc4k9bhwby65"; })
   (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
   (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
-  (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
-  (fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
   (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
   (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
   (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
   (fetchNuGet { pname = "System.Reactive"; version = "5.0.0"; sha256 = "1lafmpnadhiwxyd543kraxa3jfdpm6ipblxrjlibym9b1ykpr5ik"; })
   (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
   (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
-  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
   (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
   (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
   (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
-  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; })
   (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
   (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
   (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.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
-  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.6.0"; sha256 = "0xmzi2gpbmgyfr75p24rqqsba3cmrqgmcv45lsqp5amgrdwd0f0m"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
   (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
   (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
   (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
   (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.3.0"; sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf"; })
-  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.7.0"; sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d"; })
   (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
   (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; })
-  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "7.0.0"; sha256 = "1151hbyrcf8kyg1jz8k9awpbic98lwz9x129rg7zk1wrs6vjlpxl"; })
-  (fetchNuGet { pname = "System.Text.Json"; version = "7.0.2"; sha256 = "1i6yinxvbwdk5g5z9y8l4a5hj2gw3h9ijlz2f1c1ngyprnwz2ivf"; })
-  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "7.0.0"; sha256 = "0scb0lp7wbgcinaa4kqiqs7b8i5nx4ppfad81138jiwd1sl37pyp"; })
   (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
   (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
-  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
-  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.3"; sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i"; })
-  (fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
-  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.1"; sha256 = "15f9vd7r0bxmyv754238bdckfg6sxaa3d4yx71hdzkz9k0mhjcky"; })
-  (fetchNuGet { pname = "TextMateSharp"; version = "1.0.23"; sha256 = "1cx1ybzqp1cvxsip1kwdmk4jj1hg6vscywviv5qqqsyyww56p5xv"; })
-  (fetchNuGet { pname = "TextMateSharp"; version = "1.0.29"; sha256 = "011gqjvc6qmvqcq57jbyi9rv2ifcqsaw1h688xgmvwspsq95hfxg"; })
-  (fetchNuGet { pname = "TextMateSharp.Grammars"; version = "1.0.29"; sha256 = "1y8l2bjc4y151qfh5nx4zpdr0aii64xnsfmyzn4lawzsvl1j1g9s"; })
-  (fetchNuGet { pname = "Tmds.DBus"; version = "0.9.0"; sha256 = "0vvx6sg8lxm23g5jvm5wh2gfs95mv85vd52lkq7d1b89bdczczf3"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
+  (fetchNuGet { pname = "TextMateSharp"; version = "1.0.56"; sha256 = "1nb0rlcgrdp05h952gwbbqp2kwgdvni7jmswdh263n4xnnvhmzdr"; })
+  (fetchNuGet { pname = "TextMateSharp.Grammars"; version = "1.0.56"; sha256 = "1jzvhwx13dyg7iirk2c1m8h0dca8b0pki4yh0r8r89y4c1ighx98"; })
+  (fetchNuGet { pname = "Tmds.DBus.Protocol"; version = "0.15.0"; sha256 = "0d99kcs7r9cp6gpyc7z230czkkyx4164x86dhy0mca73f2ykc2g2"; })
 ]
diff --git a/nixpkgs/pkgs/tools/networking/mu/default.nix b/nixpkgs/pkgs/tools/networking/mu/default.nix
index f94e83552130..c4c112e9415b 100644
--- a/nixpkgs/pkgs/tools/networking/mu/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mu/default.nix
@@ -17,7 +17,7 @@
 
 stdenv.mkDerivation rec {
   pname = "mu";
-  version = "1.12.1";
+  version = "1.12.2";
 
   outputs = [ "out" "mu4e" ];
 
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     owner = "djcb";
     repo = "mu";
     rev = "v${version}";
-    hash = "sha256-JnKvMbgkaZ1MO7cZMb2PGZsNMjV1M+dnaDpsBDsT0L4=";
+    hash = "sha256-ab5nTB7mp9zB53JsPS2aPhbnW4O+56+cWunqTVENMPA=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/networking/muffet/default.nix b/nixpkgs/pkgs/tools/networking/muffet/default.nix
index a9fe4398afd7..3914c4af581c 100644
--- a/nixpkgs/pkgs/tools/networking/muffet/default.nix
+++ b/nixpkgs/pkgs/tools/networking/muffet/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "muffet";
-  version = "2.10.0";
+  version = "2.10.1";
 
   src = fetchFromGitHub {
     owner = "raviqqe";
     repo = "muffet";
     rev = "v${version}";
-    hash = "sha256-kwEHabQYAaxC8nKewc5XHZnSvUSEQRw7qg0jtJoOw9g=";
+    hash = "sha256-/LkXFY7ThPuq3RvW0NLZNRjk9kblFiztG98sTfhQuGM=";
   };
 
-  vendorHash = "sha256-GNwyQHqyfuzKnNAv5gpZFmhSq+jIHdfeceLSD9UphdA=";
+  vendorHash = "sha256-3kURSzwzM4QPCbb8C1vRb6Mr46XKNyZF0sAze5Z9xsg=";
 
   meta = with lib; {
     description = "A website link checker which scrapes and inspects all pages in a website recursively";
diff --git a/nixpkgs/pkgs/tools/networking/mutt-ics/default.nix b/nixpkgs/pkgs/tools/networking/mutt-ics/default.nix
index f56e688b4110..a8f3ca9d2ae6 100644
--- a/nixpkgs/pkgs/tools/networking/mutt-ics/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mutt-ics/default.nix
@@ -15,6 +15,7 @@ with python3.pkgs; buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/dmedvinsky/mutt-ics";
     description = "A tool to show calendar event details in Mutt";
+    mainProgram = "mutt-ics";
     license = licenses.mit;
     maintainers = with maintainers; [ mh182 ];
   };
diff --git a/nixpkgs/pkgs/tools/networking/narrowlink/default.nix b/nixpkgs/pkgs/tools/networking/narrowlink/default.nix
index 226dd15b1c9e..9000ad282cbf 100644
--- a/nixpkgs/pkgs/tools/networking/narrowlink/default.nix
+++ b/nixpkgs/pkgs/tools/networking/narrowlink/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "narrowlink";
-  version = "0.2.4";
+  version = "0.2.5";
 
   src = fetchFromGitHub {
     owner = "narrowlink";
     repo = "narrowlink";
     rev = version;
-    hash = "sha256-priVl44VSxV+rCy/5H704I3CbNXDMP2BUguknl5Bguk=";
+    hash = "sha256-Ro5SfcuKy0JqSwh2HbYisE9I4BTP4o7qjEA3fU3pAuw=";
   };
 
-  cargoHash = "sha256-q15T0/2Xf8L6ZEphIjZzzcqcnkWMbv3zvBAd/Ofvnfg=";
+  cargoHash = "sha256-XHbgwqvzfnpbu2h8rbI8XsL+og0gkjQzhHzME6crmZg=";
 
   nativeBuildInputs = [
     rustPlatform.bindgenHook
diff --git a/nixpkgs/pkgs/tools/networking/netbird/default.nix b/nixpkgs/pkgs/tools/networking/netbird/default.nix
index 20f146ab9330..6349b170706d 100644
--- a/nixpkgs/pkgs/tools/networking/netbird/default.nix
+++ b/nixpkgs/pkgs/tools/networking/netbird/default.nix
@@ -31,16 +31,16 @@ let
 in
 buildGoModule rec {
   pname = "netbird";
-  version = "0.26.2";
+  version = "0.26.3";
 
   src = fetchFromGitHub {
     owner = "netbirdio";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-fnKrv8bMONZbZGZtCQUAeGo3OIvOIqLX3nvVfGhYoK8=";
+    hash = "sha256-StZDhCBuwmJk8VimbsVO9Sfxlv5NcpV689YPUZRgOLk=";
   };
 
-  vendorHash = "sha256-Zp8LAaADpSa/wfnLAQVJ8cG3bMkC7ZU1BT+Dz214c34=";
+  vendorHash = "sha256-n5n9bIQ026WlvwatMmEIBaLGfquTgek1eiQDb0xDAdI=";
 
   nativeBuildInputs = [ installShellFiles ] ++ lib.optional ui pkg-config;
 
diff --git a/nixpkgs/pkgs/tools/networking/networkd-dispatcher/default.nix b/nixpkgs/pkgs/tools/networking/networkd-dispatcher/default.nix
index 8f9cece27169..a2a03d1f8404 100644
--- a/nixpkgs/pkgs/tools/networking/networkd-dispatcher/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkd-dispatcher/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Dispatcher service for systemd-networkd connection status changes";
+    mainProgram = "networkd-dispatcher";
     homepage = "https://gitlab.com/craftyguy/networkd-dispatcher";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/networking/networkd-notify/default.nix b/nixpkgs/pkgs/tools/networking/networkd-notify/default.nix
index b80a7d450966..8a58b894d9bd 100644
--- a/nixpkgs/pkgs/tools/networking/networkd-notify/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkd-notify/default.nix
@@ -41,6 +41,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Desktop notification integration for systemd-networkd";
+    mainProgram = "networkd-notify";
     homepage = "https://gitlab.com/wavexx/networkd-notify";
     maintainers = with maintainers; [ danc86 ];
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/default.nix
index 5490977df12d..c1e14dcfecb1 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/default.nix
@@ -57,11 +57,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "networkmanager";
-  version = "1.44.2";
+  version = "1.46.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/${lib.versions.majorMinor version}/NetworkManager-${version}.tar.xz";
-    sha256 = "sha256-S1i/OsV+LO+1ZS79CUXrC0vDamPZKmGrRx2LssmkIOE=";
+    hash = "sha256-ciZJ4lNiaTszQ3FHOAKnKbDsnuKDN1CWkF+GiAjnQGg=";
   };
 
   outputs = [ "out" "dev" "devdoc" "man" "doc" ];
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/dmenu/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/dmenu/default.nix
index d64985adbce2..56c651b68ab2 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/dmenu/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/dmenu/default.nix
@@ -36,6 +36,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description  = "Small script to manage NetworkManager connections with dmenu instead of nm-applet";
+    mainProgram = "networkmanager_dmenu";
     homepage     = "https://github.com/firecat53/networkmanager-dmenu";
     license      = lib.licenses.mit;
     maintainers  = [ lib.maintainers.jensbin ];
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/fix-install-paths.patch b/nixpkgs/pkgs/tools/networking/networkmanager/fix-install-paths.patch
index 2b2af0b2ad46..6b5f58194c58 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/fix-install-paths.patch
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/fix-install-paths.patch
@@ -1,8 +1,8 @@
 diff --git a/meson.build b/meson.build
-index f71c9fd4aa..deddf28816 100644
+index 61c025b9d7..d2ae60da34 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -1022,9 +1022,9 @@ meson.add_install_script(
+@@ -1025,9 +1025,9 @@ meson.add_install_script(
    join_paths('tools', 'meson-post-install.sh'),
    nm_datadir,
    nm_bindir,
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/fix-paths.patch b/nixpkgs/pkgs/tools/networking/networkmanager/fix-paths.patch
index 6c97b672e679..2a1cc23e3079 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/fix-paths.patch
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/fix-paths.patch
@@ -24,10 +24,10 @@ index f09ae86ceb..b2ecb405ef 100644
  ExecStart=@sbindir@/NetworkManager --no-daemon
  Restart=on-failure
 diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c
-index 2038e2f205..90bf9fa28b 100644
+index a9e8c08508..875d6cc2cd 100644
 --- a/src/core/devices/nm-device.c
 +++ b/src/core/devices/nm-device.c
-@@ -14275,14 +14275,14 @@ nm_device_start_ip_check(NMDevice *self)
+@@ -14645,14 +14645,14 @@ nm_device_start_ip_check(NMDevice *self)
              gw = nm_l3_config_data_get_best_default_route(l3cd, AF_INET);
              if (gw) {
                  nm_inet4_ntop(NMP_OBJECT_CAST_IP4_ROUTE(gw)->gateway, buf);
@@ -45,25 +45,25 @@ index 2038e2f205..90bf9fa28b 100644
              }
          }
 diff --git a/src/libnm-client-impl/meson.build b/src/libnm-client-impl/meson.build
-index fb879dca47..13cc2867e1 100644
+index 79ac95598a..83f7ab1373 100644
 --- a/src/libnm-client-impl/meson.build
 +++ b/src/libnm-client-impl/meson.build
-@@ -173,7 +173,6 @@ if enable_introspection
-       input: libnm_core_settings_sources,
-       output: 'nm-propery-infos-' + info + '.xml',
+@@ -191,7 +191,6 @@ if enable_introspection
+       input: [gen_infos_cmd, libnm_gir[0]] + libnm_core_settings_sources,
+       output: 'nm-property-infos-' + name + '.xml',
        command: [
 -        python.path(),
-         join_paths(meson.source_root(), 'tools', 'generate-docs-nm-property-infos.py'),
-         info,
+         gen_infos_cmd,
+         name,
          '@OUTPUT@',
-@@ -230,7 +229,6 @@ if enable_introspection
-       'env',
-       'GI_TYPELIB_PATH=' + gi_typelib_path,
-       'LD_LIBRARY_PATH=' + ld_library_path,
--      python.path(),
-       join_paths(meson.source_root(), 'tools', 'generate-docs-nm-settings-docs-gir.py'),
-       '--lib-path', meson.current_build_dir(),
-       '--gir', '@INPUT@',
+@@ -207,7 +206,6 @@ if enable_introspection
+         'env',
+         'GI_TYPELIB_PATH=' + gi_typelib_path,
+         'LD_LIBRARY_PATH=' + ld_library_path,
+-        python.path(),
+         gen_gir_cmd,
+         '--lib-path', meson.current_build_dir(),
+         '--gir', libnm_gir[0],
 diff --git a/src/libnmc-base/nm-vpn-helpers.c b/src/libnmc-base/nm-vpn-helpers.c
 index cbe76f5f1c..8515f94994 100644
 --- a/src/libnmc-base/nm-vpn-helpers.c
@@ -102,25 +102,25 @@ index cbe76f5f1c..8515f94994 100644
      oc_argv[oc_argc++] = path;
      oc_argv[oc_argc++] = "--authenticate";
 diff --git a/src/libnmc-setting/meson.build b/src/libnmc-setting/meson.build
-index cf8a21fc80..61d8e140e2 100644
+index 7fb460dc33..790a2b75fc 100644
 --- a/src/libnmc-setting/meson.build
 +++ b/src/libnmc-setting/meson.build
-@@ -7,7 +7,6 @@ if enable_docs
-     input: [nm_settings_docs_xml_gir, nm_property_infos_xml['nmcli']],
+@@ -9,7 +9,6 @@ if enable_docs
+     input: [merge_cmd, nm_settings_docs_xml_gir['nmcli'], nm_property_infos_xml['nmcli']],
      output: 'settings-docs-input.xml',
      command: [
 -      python.path(),
-       join_paths(meson.source_root(), 'tools', 'generate-docs-nm-settings-docs-merge.py'),
+       merge_cmd,
        '@OUTPUT@',
        nm_property_infos_xml['nmcli'],
-@@ -20,7 +19,6 @@ if enable_docs
-     input: settings_docs_input_xml,
+@@ -23,7 +22,6 @@ if enable_docs
+     input: [gen_cmd, settings_docs_input_xml],
      output: 'settings-docs.h',
      command: [
 -      python.path(),
-       join_paths(meson.source_root(), 'tools', 'generate-docs-settings-docs.py'),
+       gen_cmd,
        '--output', '@OUTPUT@',
-       '--xml', '@INPUT@'
+       '--xml', settings_docs_input_xml
 diff --git a/src/tests/client/meson.build b/src/tests/client/meson.build
 index 8c36e40559..cfb6649a21 100644
 --- a/src/tests/client/meson.build
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/sstp/default.nix b/nixpkgs/pkgs/tools/networking/networkmanager/sstp/default.nix
index 4178454c4292..026f038ef20d 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/sstp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/sstp/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , lib
-, fetchFromGitLab
 , autoreconfHook
+, fetchurl
 , file
 , glib
 , gnome
@@ -20,15 +20,12 @@
 
 stdenv.mkDerivation rec {
   pname = "NetworkManager-sstp";
-  version = "unstable-2023-03-09";
+  version = "1.3.2";
   name = "${pname}${lib.optionalString withGnome "-gnome"}-${version}";
 
-  src = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "GNOME";
-    repo = "network-manager-sstp";
-    rev = "852db07dc7d19c37e398d831410bd94c8659a210";
-    hash = "sha256-DxgcuTza2G5a7F2mBtDaEuynu7F1Ex9pnAESAjyoRq8=";
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-zd+g86cZLyibLhYLal6XzUb9wFu7kHROp0KzRM95Qng=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/networking/networkmanager/tray.nix b/nixpkgs/pkgs/tools/networking/networkmanager/tray.nix
index 69b1e3023b04..01725b1fb381 100644
--- a/nixpkgs/pkgs/tools/networking/networkmanager/tray.nix
+++ b/nixpkgs/pkgs/tools/networking/networkmanager/tray.nix
@@ -23,6 +23,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Simple Network Manager frontend written in Qt";
+    mainProgram = "nm-tray";
     homepage = "https://github.com/palinek/nm-tray";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/nixpkgs/pkgs/tools/networking/ngrok/versions.json b/nixpkgs/pkgs/tools/networking/ngrok/versions.json
index 8d90ae6c00e2..d62dfaa0f8a0 100644
--- a/nixpkgs/pkgs/tools/networking/ngrok/versions.json
+++ b/nixpkgs/pkgs/tools/networking/ngrok/versions.json
@@ -1,38 +1,38 @@
 {
   "linux-386": {
     "sys": "linux-386",
-    "url": "https://bin.equinox.io/a/5FUi7gCzPvi/ngrok-v3-3.6.0-linux-386",
-    "sha256": "2036fc58594c7205aebaa09e9665d5c706391746122a417e57fa9a1bce62a727",
-    "version": "3.6.0"
+    "url": "https://bin.equinox.io/a/NYbWaAdCby/ngrok-v3-3.7.0-linux-386",
+    "sha256": "3fbf2296a8ce35c7d050ed4c828ef4eacc8724852faaaaa8054822ee72426606",
+    "version": "3.7.0"
   },
   "linux-amd64": {
     "sys": "linux-amd64",
-    "url": "https://bin.equinox.io/a/e6rvYmQb6MC/ngrok-v3-3.6.0-linux-amd64",
-    "sha256": "14e6118f1021b5b8421945a13b15ec501bc88aef0089b1dbf31d1fb229115d9e",
-    "version": "3.6.0"
+    "url": "https://bin.equinox.io/a/doBjqyzrcYM/ngrok-v3-3.7.0-linux-amd64",
+    "sha256": "d1f7149079bb3bce0a70619580818a0ec09ac20da25f64a268203c2a3a019a47",
+    "version": "3.7.0"
   },
   "linux-arm": {
     "sys": "linux-arm",
-    "url": "https://bin.equinox.io/a/iTLH8EwDQN2/ngrok-v3-3.6.0-linux-arm",
-    "sha256": "0bbc395cc610c0017d12a812496856677f6a653f60a76203d0f031914e4cf7bc",
-    "version": "3.6.0"
+    "url": "https://bin.equinox.io/a/hgUUy2bUaz9/ngrok-v3-3.7.0-linux-arm",
+    "sha256": "5f2f0bf4ae42f5c8dcb945694bd1aedf963d631c39ba0cb9c0b9626eb396b2c4",
+    "version": "3.7.0"
   },
   "linux-arm64": {
     "sys": "linux-arm64",
-    "url": "https://bin.equinox.io/a/ibBBjsbrZAm/ngrok-v3-3.6.0-linux-arm64",
-    "sha256": "39575a951352e571f6f96fd4409cbaa675dc4593786c9f198c2fb45360361f02",
-    "version": "3.6.0"
+    "url": "https://bin.equinox.io/a/9p821sdaKqh/ngrok-v3-3.7.0-linux-arm64",
+    "sha256": "f43af93d9d7a9af22a2a5423a0b7b964790b1d2dccfd532142a807282360c21a",
+    "version": "3.7.0"
   },
   "darwin-amd64": {
     "sys": "darwin-amd64",
-    "url": "https://bin.equinox.io/a/61nYpJWvYHR/ngrok-v3-3.6.0-darwin-amd64",
-    "sha256": "05ecb8a6e79cfe57663a085d5fc7cfeddd5867b25fc185829c39de4d25e5857d",
-    "version": "3.6.0"
+    "url": "https://bin.equinox.io/a/cC8QZtu8eV3/ngrok-v3-3.7.0-darwin-amd64",
+    "sha256": "30903672a673454feaafde92e09f04804a3fcea69ef9c02027b6fb12e2ae8df2",
+    "version": "3.7.0"
   },
   "darwin-arm64": {
     "sys": "darwin-arm64",
-    "url": "https://bin.equinox.io/a/9Zzu7daqPHA/ngrok-v3-3.6.0-darwin-arm64",
-    "sha256": "812829dac649b27f99eaf361306a014eb7ff28d005c3c9d087171342fce9472e",
-    "version": "3.6.0"
+    "url": "https://bin.equinox.io/a/jwjx5C5dodJ/ngrok-v3-3.7.0-darwin-arm64",
+    "sha256": "99df3b5a7a1cbf943931aba41fdbb9b7081ea860ef9dec41b7fb08e53433d498",
+    "version": "3.7.0"
   }
 }
diff --git a/nixpkgs/pkgs/tools/networking/nikto/default.nix b/nixpkgs/pkgs/tools/networking/nikto/default.nix
index df03cc8c3ce7..098171de09df 100644
--- a/nixpkgs/pkgs/tools/networking/nikto/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nikto/default.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Web server scanner";
+    mainProgram = "nikto";
     license = licenses.gpl2Plus;
     homepage = "https://cirt.net/Nikto2";
     changelog = "https://github.com/sullo/nikto/releases/tag/${version}";
diff --git a/nixpkgs/pkgs/tools/networking/norouter/default.nix b/nixpkgs/pkgs/tools/networking/norouter/default.nix
index 3513cb0cdfbc..efc50fbad2ad 100644
--- a/nixpkgs/pkgs/tools/networking/norouter/default.nix
+++ b/nixpkgs/pkgs/tools/networking/norouter/default.nix
@@ -27,6 +27,9 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
+    # Doesn't build with Go >=1.21
+    # https://github.com/norouter/norouter/issues/165
+    broken = true;
     description = "Tool to handle unprivileged networking by using multiple loopback addresses";
     homepage = "https://github.com/norouter/norouter";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/networking/nss-mdns/default.nix b/nixpkgs/pkgs/tools/networking/nss-mdns/default.nix
index f0c47fe945e1..eb231f0ce036 100644
--- a/nixpkgs/pkgs/tools/networking/nss-mdns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nss-mdns/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "0.15.1";
 
   src = fetchFromGitHub {
-    owner = "lathiat";
+    owner = "avahi";
     repo = "nss-mdns";
     rev = "v${version}";
     hash = "sha256-iRaf9/gu9VkGi1VbGpxvC5q+0M8ivezCz/oAKEg5V1M=";
@@ -22,6 +22,8 @@ stdenv.mkDerivation rec {
     "--enable-avahi"
     # Connect to the daemon at `/var/run/avahi-daemon/socket'.
     "--localstatedir=/var"
+    # Read configuration at `/etc/mdns.allow`, not `$out/etc/mdns.allow`.
+    "--sysconfdir=/etc"
   ];
 
   meta = {
@@ -33,7 +35,7 @@ stdenv.mkDerivation rec {
       resolution by common Unix/Linux programs in the ad-hoc mDNS
       domain `.local'.
     '';
-    homepage = "http://0pointer.de/lennart/projects/nss-mdns/";
+    homepage = "https://github.com/avahi/nss-mdns/";
     license = lib.licenses.lgpl2Plus;
     # Supports both the GNU and FreeBSD NSS.
     platforms = lib.platforms.gnu ++ lib.platforms.linux ++ lib.platforms.freebsd;
diff --git a/nixpkgs/pkgs/tools/networking/nxdomain/default.nix b/nixpkgs/pkgs/tools/networking/nxdomain/default.nix
index a90c7f0c23ae..2a23230ce778 100644
--- a/nixpkgs/pkgs/tools/networking/nxdomain/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nxdomain/default.nix
@@ -22,6 +22,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/zopieux/nxdomain";
     description = "A domain (ad) block list creator";
+    mainProgram = "nxdomain";
     platforms = platforms.all;
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ zopieux ];
diff --git a/nixpkgs/pkgs/tools/networking/nyx/default.nix b/nixpkgs/pkgs/tools/networking/nyx/default.nix
index 844d692425b9..cb697e0f5e66 100644
--- a/nixpkgs/pkgs/tools/networking/nyx/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nyx/default.nix
@@ -18,6 +18,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Command-line monitor for Tor";
+    mainProgram = "nyx";
     homepage = "https://nyx.torproject.org/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ offline ];
diff --git a/nixpkgs/pkgs/tools/networking/nzbget/default.nix b/nixpkgs/pkgs/tools/networking/nzbget/default.nix
index 2c698ae6c831..9a57a2e8a3b5 100644
--- a/nixpkgs/pkgs/tools/networking/nzbget/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nzbget/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , autoreconfHook
+, boost
 , pkg-config
 , gnutls
 , libgcrypt
@@ -17,18 +18,19 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "nzbget-ng";
-  version = "21.4-rc2";
+  version = "23.0";
 
   src = fetchFromGitHub {
-    owner = "nzbget-ng";
+    owner = "nzbgetcom";
     repo = "nzbget";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-JJML5mtAog5xC7DkthCtoyn5QeC2Z+fdzSuEa/Te0Ew=";
+    hash = "sha256-JqC82zpsIqRYB7128gTSOQMWJFR/t63NJXlPgGqP0jE=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [
+    boost
     gnutls
     libgcrypt
     libpar2
@@ -49,11 +51,11 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests = { inherit (nixosTests) nzbget; };
 
   meta = with lib; {
-    homepage = "https://nzbget-ng.github.io/";
-    changelog = "https://github.com/nzbget-ng/nzbget/releases/tag/v${finalAttrs.version}";
+    homepage = "https://nzbget.com/";
+    changelog = "https://github.com/nzbgetcom/nzbget/releases/tag/v${finalAttrs.version}";
     license = licenses.gpl2Plus;
     description = "A command line tool for downloading files from news servers";
-    maintainers = with maintainers; [ pSub ];
+    maintainers = with maintainers; [ pSub devusb ];
     platforms = with platforms; unix;
     mainProgram = "nzbget";
   };
diff --git a/nixpkgs/pkgs/tools/networking/ockam/default.nix b/nixpkgs/pkgs/tools/networking/ockam/default.nix
index a9481ba95b65..5596844451f4 100644
--- a/nixpkgs/pkgs/tools/networking/ockam/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ockam/default.nix
@@ -12,7 +12,7 @@
 
 let
   pname = "ockam";
-  version = "0.117.0";
+  version = "0.118.0";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -21,10 +21,10 @@ rustPlatform.buildRustPackage {
     owner = "build-trust";
     repo = pname;
     rev = "ockam_v${version}";
-    sha256 = "sha256-iQ/bhrYJvvSevZGx4n1gTyfG/NvvWoQAHs6fcTT+vUc=";
+    sha256 = "sha256-cH32moDRBIl5zbXAQNbltwPGcfeNlCBAlAa/iL0gG7c=";
   };
 
-  cargoHash = "sha256-WXRRZWQqgfw7priZrt+avMs2FHs4EcKwlkg5XK8hjoY=";
+  cargoHash = "sha256-bgB1AYjDvpIsHKQUyRlPZHXKo3egmPdCBioCuDYPTaI=";
   nativeBuildInputs = [ git pkg-config ];
   buildInputs = [ openssl dbus ]
     ++ lib.optionals stdenv.isDarwin [ Security ];
diff --git a/nixpkgs/pkgs/tools/networking/oha/default.nix b/nixpkgs/pkgs/tools/networking/oha/default.nix
index 2ba7a62152db..cbe629234b40 100644
--- a/nixpkgs/pkgs/tools/networking/oha/default.nix
+++ b/nixpkgs/pkgs/tools/networking/oha/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "oha";
-  version = "1.3.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "hatoo";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-UZPC1Arp7/u8XafBvupAAwVu7lx5/F1Ahp944pfe2gw=";
+    hash = "sha256-r5jYHs+oVflgFTQZpKvdNs56TmZtyljZKDJMVP+iUNY=";
   };
 
-  cargoHash = "sha256-6uGJ6cuMXFLJ6vvUNmUwc+r/4jRHEH5jiOTNb6Fkf6Y=";
+  cargoHash = "sha256-Q3ixlB/P/99h6ZuT37KrM9fxyBzcmlmM5jw6xDT2lPE=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [
     pkg-config
diff --git a/nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix b/nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix
index ec6e4f28ab95..4ae4325abf15 100644
--- a/nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openapi-generator-cli/default.nix
@@ -1,7 +1,7 @@
 { callPackage, lib, stdenv, fetchurl, jre, makeWrapper }:
 
 let this = stdenv.mkDerivation (finalAttrs: {
-  version = "7.3.0";
+  version = "7.4.0";
   pname = "openapi-generator-cli";
 
   jarfilename = "${finalAttrs.pname}-${finalAttrs.version}.jar";
@@ -12,7 +12,7 @@ let this = stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "mirror://maven/org/openapitools/${finalAttrs.pname}/${finalAttrs.version}/${finalAttrs.jarfilename}";
-    sha256 = "sha256-h5wVNAp1oZp+cg78JCwyI+DkIHsGlNbRzqXH3YfPHM4=";
+    sha256 = "sha256-5CdpqY/vVjS+4Pkh5LkHhqazKSqhH+jS+EwEWsQ1qyk=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/tools/networking/openresolv/default.nix b/nixpkgs/pkgs/tools/networking/openresolv/default.nix
index e937c6bcdf60..956584bfae9a 100644
--- a/nixpkgs/pkgs/tools/networking/openresolv/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openresolv/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A program to manage /etc/resolv.conf";
+    mainProgram = "resolvconf";
     homepage = "https://roy.marples.name/projects/openresolv";
     license = lib.licenses.bsd2;
     maintainers = [ lib.maintainers.eelco ];
diff --git a/nixpkgs/pkgs/tools/networking/openssh/default.nix b/nixpkgs/pkgs/tools/networking/openssh/default.nix
index e13e9cb92731..e0d34e23a6b0 100644
--- a/nixpkgs/pkgs/tools/networking/openssh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openssh/default.nix
@@ -5,11 +5,11 @@ in
 {
   openssh = common rec {
     pname = "openssh";
-    version = "9.6p1";
+    version = "9.7p1";
 
     src = fetchurl {
       url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz";
-      hash = "sha256-kQIRwHJVqMWtZUORtA7lmABxDdgRndU2LeCThap6d3w=";
+      hash = "sha256-SQQm92bYKidj/KzY2D6j1weYdQx70q/y5X3FZg93P/0=";
     };
 
     extraPatches = [ ./ssh-keysign-8.5.patch ];
@@ -18,15 +18,15 @@ in
 
   openssh_hpn = common rec {
     pname = "openssh-with-hpn";
-    version = "9.5p1";
+    version = "9.7p1";
     extraDesc = " with high performance networking patches";
 
     src = fetchurl {
       url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz";
-      hash = "sha256-8Cbnt5un+1QPdRgq+W3IqPHbOV+SK7yfbKYDZyaGCGs=";
+      hash = "sha256-SQQm92bYKidj/KzY2D6j1weYdQx70q/y5X3FZg93P/0=";
     };
 
-    extraPatches = let url = "https://raw.githubusercontent.com/freebsd/freebsd-ports/700625bcd86b74cf3fb9536aeea250d7f8cd1fd5/security/openssh-portable/files/extra-patch-hpn"; in
+    extraPatches = let url = "https://raw.githubusercontent.com/freebsd/freebsd-ports/b3f86656fc67aa397f60747c85f7f7b967c3279d/security/openssh-portable/files/extra-patch-hpn"; in
     [
       ./ssh-keysign-8.5.patch
 
@@ -36,7 +36,7 @@ in
         inherit url;
         stripLen = 1;
         excludes = [ "channels.c" ];
-        hash = "sha256-hYB3i0ifNOgGLYwElMJFcT+ktczLKciq3qw1tTHZHcc=";
+        hash = "sha256-MydulQvz8sDVQ6Up9U1yrsiyI5EGmyKl/stUk7DvVOU=";
       })
 
       (fetchpatch {
@@ -58,12 +58,12 @@ in
 
   openssh_gssapi = common rec {
     pname = "openssh-with-gssapi";
-    version = "9.5p1";
+    version = "9.6p1";
     extraDesc = " with GSSAPI support";
 
     src = fetchurl {
       url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz";
-      hash = "sha256-8Cbnt5un+1QPdRgq+W3IqPHbOV+SK7yfbKYDZyaGCGs=";
+      hash = "sha256-kQIRwHJVqMWtZUORtA7lmABxDdgRndU2LeCThap6d3w=";
     };
 
     extraPatches = [
@@ -72,7 +72,7 @@ in
       (fetchpatch {
         name = "openssh-gssapi.patch";
         url = "https://salsa.debian.org/ssh-team/openssh/raw/debian/1%25${version}-1/debian/patches/gssapi.patch";
-        sha256 = "sha256-E36jxnPcu6RTyXXb9yVBCoFIVchiOSLX7L74ng1Dmao=";
+        hash = "sha256-gzDQdO6yOoN0apGj5aoKFdUkmKzFyphFUdgNhDLMp8U=";
       })
     ];
 
diff --git a/nixpkgs/pkgs/tools/networking/p2p/gtk-gnutella/default.nix b/nixpkgs/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
index a9708dd4713c..53622d30db48 100644
--- a/nixpkgs/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
+++ b/nixpkgs/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "A GTK Gnutella client, optimized for speed and scalability";
+    mainProgram = "gtk-gnutella";
     homepage = "https://gtk-gnutella.sourceforge.net/"; # Code: https://github.com/gtk-gnutella/gtk-gnutella
     changelog = "https://raw.githubusercontent.com/gtk-gnutella/gtk-gnutella/v${version}/ChangeLog";
     maintainers = [ maintainers.doronbehar ];
diff --git a/nixpkgs/pkgs/tools/networking/p2p/tahoe-lafs/default.nix b/nixpkgs/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
index 3d2298e8b70e..abeabc337a15 100644
--- a/nixpkgs/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
+++ b/nixpkgs/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
@@ -89,6 +89,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tahoe-LAFS, a decentralized, fault-tolerant, distributed storage system";
+    mainProgram = "tahoe";
     longDescription = ''
       Tahoe-LAFS is a secure, decentralized, fault-tolerant filesystem.
       This filesystem is encrypted and spread over multiple peers in
diff --git a/nixpkgs/pkgs/tools/networking/persepolis/default.nix b/nixpkgs/pkgs/tools/networking/persepolis/default.nix
index 35727c13e694..28d5b113c336 100644
--- a/nixpkgs/pkgs/tools/networking/persepolis/default.nix
+++ b/nixpkgs/pkgs/tools/networking/persepolis/default.nix
@@ -84,6 +84,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Persepolis Download Manager is a GUI for aria2";
+    mainProgram = "persepolis";
     homepage = "https://persepolisdm.github.io/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ iFreilicht ];
diff --git a/nixpkgs/pkgs/tools/networking/picosnitch/default.nix b/nixpkgs/pkgs/tools/networking/picosnitch/default.nix
index 6007d3ec227f..c874fbf80c1b 100644
--- a/nixpkgs/pkgs/tools/networking/picosnitch/default.nix
+++ b/nixpkgs/pkgs/tools/networking/picosnitch/default.nix
@@ -33,6 +33,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Monitor network traffic per executable with hashing";
+    mainProgram = "picosnitch";
     homepage = "https://github.com/elesiuta/picosnitch";
     changelog = "https://github.com/elesiuta/picosnitch/releases";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/tools/networking/pirate-get/default.nix b/nixpkgs/pkgs/tools/networking/pirate-get/default.nix
index c1b43a00f52f..5a28858621b0 100644
--- a/nixpkgs/pkgs/tools/networking/pirate-get/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pirate-get/default.nix
@@ -15,6 +15,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "A command line interface for The Pirate Bay";
+    mainProgram = "pirate-get";
     homepage = "https://github.com/vikstrous/pirate-get";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ rnhmjoj ];
diff --git a/nixpkgs/pkgs/tools/networking/polygon-cli/default.nix b/nixpkgs/pkgs/tools/networking/polygon-cli/default.nix
index 75c80bd12b7d..07bfa9704557 100644
--- a/nixpkgs/pkgs/tools/networking/polygon-cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/polygon-cli/default.nix
@@ -25,6 +25,7 @@ python3.pkgs.buildPythonPackage rec {
 
   meta = {
     description = "Command-line tool for polygon.codeforces.com";
+    mainProgram = "polygon-cli";
     homepage = "https://github.com/kunyavskiy/polygon-cli";
     changelog = "https://github.com/kunyavskiy/polygon-cli/releases/tag/${version}";
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/tools/networking/proxify/default.nix b/nixpkgs/pkgs/tools/networking/proxify/default.nix
index 3702c0dc5a28..bf307f366a37 100644
--- a/nixpkgs/pkgs/tools/networking/proxify/default.nix
+++ b/nixpkgs/pkgs/tools/networking/proxify/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "proxify";
-  version = "0.0.13";
+  version = "0.0.15";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "proxify";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5sicN/Z26nkxtU/6vDkEMBxyRNHIP7hQ+BvzHuQqBhw=";
+    hash = "sha256-vAI8LKdBmujH7zidXADc8bMLXaFMjT965hR+PVZVeNw=";
   };
 
-  vendorHash = "sha256-90wNln2C5/K1WfX8rv6kKQpHMpxW3hv5zpZpCSHy8ys=";
+  vendorHash = "sha256-eGcCc83napjt0VBhpDiHWn7+ew77XparDJ9uyjF353w=";
 
   meta = with lib; {
     description = "Proxy tool for HTTP/HTTPS traffic capture";
diff --git a/nixpkgs/pkgs/tools/networking/ratman/default.nix b/nixpkgs/pkgs/tools/networking/ratman/default.nix
index a78840095d88..65f32add0f6b 100644
--- a/nixpkgs/pkgs/tools/networking/ratman/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ratman/default.nix
@@ -87,7 +87,7 @@ rustPlatform.buildRustPackage rec {
     description = "A modular decentralised peer-to-peer packet router and associated tools";
     homepage = "https://git.irde.st/we/irdest";
     platforms = platforms.unix;
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ spacekookie yuka ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/s3cmd/default.nix b/nixpkgs/pkgs/tools/networking/s3cmd/default.nix
index b07ea24abf9d..18aed1301355 100644
--- a/nixpkgs/pkgs/tools/networking/s3cmd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/s3cmd/default.nix
@@ -18,6 +18,7 @@ buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://s3tools.org/s3cmd";
     description = "Command line tool for managing Amazon S3 and CloudFront services";
+    mainProgram = "s3cmd";
     license = licenses.gpl2;
     maintainers = [ ];
   };
diff --git a/nixpkgs/pkgs/tools/networking/saldl/default.nix b/nixpkgs/pkgs/tools/networking/saldl/default.nix
index b7281d3a20a7..7f1551cd85b8 100644
--- a/nixpkgs/pkgs/tools/networking/saldl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/saldl/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "CLI downloader optimized for speed and early preview";
     homepage = "https://saldl.github.io";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ zowoq ];
     platforms = platforms.all;
     mainProgram = "saldl";
diff --git a/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix b/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
index 38fb6a60169b..25829872b8ae 100644
--- a/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
+++ b/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowsocks-rust";
-  version = "1.18.1";
+  version = "1.18.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shadowsocks";
     repo = pname;
-    hash = "sha256-q7XtYOBruEmjPC4gx+hBO5oRwbxL7wQJenBS8Pl6yRk=";
+    hash = "sha256-wbbh4IpAla3I/xgmiuzy9E9npS/PUtRFCZS4dl7JYRQ=";
   };
 
-  cargoHash = "sha256-av4xUjoUGt53UoEpWULv15JKVWZq1x0YXvF5XFf4meQ=";
+  cargoHash = "sha256-TPW+dic9KdtGXGlcEi7YAmt442ZJRifumnrmcX8+unM=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/networking/sing-box/default.nix b/nixpkgs/pkgs/tools/networking/sing-box/default.nix
index dee829021ae8..d7e456f3efff 100644
--- a/nixpkgs/pkgs/tools/networking/sing-box/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sing-box/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "sing-box";
-  version = "1.8.8";
+  version = "1.8.9";
 
   src = fetchFromGitHub {
     owner = "SagerNet";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-HbfN9H6mYRZkD1f5CmDSORP29I00u0Ye8l77wrswTE0=";
+    hash = "sha256-8t+AOTlX34BIftRTZgHwUW3nCPxy8NtbIIocT9YlLbU=";
   };
 
-  vendorHash = "sha256-tOUzshNU6TIjhWVWmlVcw/Ct/V52b+WIJHqs3+weCc0=";
+  vendorHash = "sha256-7FHosBMB5pzsvpHXhWEo8fgD4Rn6+CFoBNFHA+V1e6o=";
 
   tags = [
     "with_quic"
diff --git a/nixpkgs/pkgs/tools/networking/sish/default.nix b/nixpkgs/pkgs/tools/networking/sish/default.nix
index afac612d0604..3cf5b6a509ab 100644
--- a/nixpkgs/pkgs/tools/networking/sish/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sish/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "sish";
-  version = "2.12.0";
+  version = "2.14.0";
 
   src = fetchFromGitHub {
     owner = "antoniomika";
-    repo = pname;
+    repo = "sish";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dn64M/DGnyaoEtbdeytpRsKCXQPvR+dJDI7yFt2IqU0=";
+    hash = "sha256-nDmmq8Yv+iCZPor7sLdJWqWudb3yxrllZgPH4d9mP38=";
   };
 
-  vendorHash = "sha256-P5Y5DwF9Tb9j098XiEJZaEGZhT2Ce2emnV2SawElosI=";
+  vendorHash = "sha256-4HcWD/u7aCEzQ3tYRmFwvdjPuv5eyHlCVHtxA6cBiW0=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/tools/networking/sitespeed-io/default.nix b/nixpkgs/pkgs/tools/networking/sitespeed-io/default.nix
index e852df0b8d4c..96d2f4dc9cb1 100644
--- a/nixpkgs/pkgs/tools/networking/sitespeed-io/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sitespeed-io/default.nix
@@ -24,13 +24,13 @@
 assert (!withFirefox && !withChromium) -> throw "Either `withFirefox` or `withChromium` must be enabled.";
 buildNpmPackage rec {
   pname = "sitespeed-io";
-  version = "33.1.1";
+  version = "33.3.0";
 
   src = fetchFromGitHub {
     owner = "sitespeedio";
     repo = "sitespeed.io";
     rev = "v${version}";
-    hash = "sha256-Blzv0fLWqDfLYbtSVTUbhWS75fkqADzEwYQvomeqt1U=";
+    hash = "sha256-voH0/F11fSMpEccyjcX3YUKaXjegJRwQwlRoa8R8sDg=";
   };
 
   nodejs = nodejs_18;
@@ -46,7 +46,7 @@ buildNpmPackage rec {
 
   dontNpmBuild = true;
   npmInstallFlags = [ "--omit=dev" ];
-  npmDepsHash = "sha256-+oU0+AVWf7PNqZCUI/KYe+PoNrHNaR35N6SifYCSRp4=";
+  npmDepsHash = "sha256-IiDfvID3h6kBue54p6J9qpjwwO5LwKkK0fw7TNptsxA=";
 
   postInstall = ''
     mv $out/bin/sitespeed{.,-}io
diff --git a/nixpkgs/pkgs/tools/networking/snowflake/default.nix b/nixpkgs/pkgs/tools/networking/snowflake/default.nix
index f48824f04054..aa29bd8d11f7 100644
--- a/nixpkgs/pkgs/tools/networking/snowflake/default.nix
+++ b/nixpkgs/pkgs/tools/networking/snowflake/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "snowflake";
-  version = "2.9.1";
+  version = "2.9.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.torproject.org";
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "anti-censorship/pluggable-transports";
     repo = "snowflake";
     rev = "v${version}";
-    sha256 = "sha256-LDr/Fzg1fC2lf7W+yTD1y5q4C2pPXZz+ZJf9sI1BxcQ=";
+    sha256 = "sha256-QyTyFz4NIuUV7g5f6qV/ujfHYZDnnZmjeBinvcWlo0U=";
   };
 
-  vendorHash = "sha256-IT2+5HmgkV6BKPEARkCZbULyVr7VDLtwGUCF22YuodA=";
+  vendorHash = "sha256-Qn8JFzrLCUrr6WGvVmaSYC7ooiMGl8iPMXkRvALho1A=";
 
   meta = with lib; {
     description = "System to defeat internet censorship";
diff --git a/nixpkgs/pkgs/tools/networking/sockdump/default.nix b/nixpkgs/pkgs/tools/networking/sockdump/default.nix
index 95920a91eef3..98e88d0d6f83 100644
--- a/nixpkgs/pkgs/tools/networking/sockdump/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sockdump/default.nix
@@ -2,13 +2,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sockdump";
-  version = "unstable-2023-09-16";
+  version = "unstable-2023-12-11";
 
   src = fetchFromGitHub {
     owner = "mechpen";
     repo = pname;
-    rev = "713759e383366feae76863881e851a6411c73b68";
-    hash = "sha256-q6jdwFhl2G9o2C0BVU6Xz7xizO00yaSQ2KSR/z4fixY=";
+    rev = "d40ec77e960d021861220bc14a273c5dcad13160";
+    hash = "sha256-FLK1rgWvIoFGv/6+DtDhZGeOZrn7V1jYNS3S8qwL/dc=";
   };
 
   propagatedBuildInputs = [ bcc ];
@@ -19,7 +19,8 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = src.meta // {
     description = "Dump unix domain socket traffic with bpf";
+    mainProgram = "sockdump";
     license = lib.licenses.unlicense;
-    maintainers = with lib.maintainers; [ ehmry ];
+    maintainers = with lib.maintainers; [ ehmry picnoir ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/sshoogr/default.nix b/nixpkgs/pkgs/tools/networking/sshoogr/default.nix
index e20978c277d9..abd42dcb5aa4 100644
--- a/nixpkgs/pkgs/tools/networking/sshoogr/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sshoogr/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
     description = ''
       A Groovy-based DSL for working with remote SSH servers
     '';
+    mainProgram = "sshoogr";
     longDescription = ''
       The sshoogr (pronounced [ʃʊgə]) is a Groovy-based DSL library for working
       with remote servers through SSH. The DSL allows: connecting, executing
diff --git a/nixpkgs/pkgs/tools/networking/swaks/default.nix b/nixpkgs/pkgs/tools/networking/swaks/default.nix
index 471cc74d9d7f..1ca00b6beaea 100644
--- a/nixpkgs/pkgs/tools/networking/swaks/default.nix
+++ b/nixpkgs/pkgs/tools/networking/swaks/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.jetmore.org/john/code/swaks/";
     description = "A featureful, flexible, scriptable, transaction-oriented SMTP test tool";
+    mainProgram = "swaks";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/networking/telepresence/default.nix b/nixpkgs/pkgs/tools/networking/telepresence/default.nix
index 4866cfea41ee..dee55ad5687c 100644
--- a/nixpkgs/pkgs/tools/networking/telepresence/default.nix
+++ b/nixpkgs/pkgs/tools/networking/telepresence/default.nix
@@ -38,6 +38,7 @@ in pythonPackages.buildPythonPackage rec {
   meta = {
     homepage = "https://www.telepresence.io/";
     description = "Local development against a remote Kubernetes or OpenShift cluster";
+    mainProgram = "telepresence";
     license = with lib.licenses; [ asl20 ];
     maintainers = with lib.maintainers; [ offline ];
   };
diff --git a/nixpkgs/pkgs/tools/networking/termshark/default.nix b/nixpkgs/pkgs/tools/networking/termshark/default.nix
index 84dbf7ed3311..bdca008cc94c 100644
--- a/nixpkgs/pkgs/tools/networking/termshark/default.nix
+++ b/nixpkgs/pkgs/tools/networking/termshark/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://termshark.io/";
     description = "A terminal UI for wireshark-cli, inspired by Wireshark";
+    mainProgram = "termshark";
     license = licenses.mit;
     maintainers = with maintainers; [ winpat ];
   };
diff --git a/nixpkgs/pkgs/tools/networking/tinystatus/default.nix b/nixpkgs/pkgs/tools/networking/tinystatus/default.nix
index e4e930e799a8..d58d853b5e10 100644
--- a/nixpkgs/pkgs/tools/networking/tinystatus/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tinystatus/default.nix
@@ -50,6 +50,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     description = "A static HTML status page generator written in pure shell";
+    mainProgram = "tinystatus";
     homepage = "https://github.com/bderenzo/tinystatus";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/networking/tuntox/default.nix b/nixpkgs/pkgs/tools/networking/tuntox/default.nix
index 64a13e99669a..e59a615e2627 100644
--- a/nixpkgs/pkgs/tools/networking/tuntox/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tuntox/default.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tunnel TCP connections over the Tox protocol";
+    mainProgram = "tuntox";
     homepage = "https://github.com/gjedeer/tuntox";
     license = licenses.gpl3;
     maintainers = with maintainers; [
diff --git a/nixpkgs/pkgs/tools/networking/udp2raw/default.nix b/nixpkgs/pkgs/tools/networking/udp2raw/default.nix
index b6466ce0be57..e10db84eb49f 100644
--- a/nixpkgs/pkgs/tools/networking/udp2raw/default.nix
+++ b/nixpkgs/pkgs/tools/networking/udp2raw/default.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/wangyu-/udp2raw";
     description = "A tunnel which turns UDP traffic into encrypted UDP/FakeTCP/ICMP traffic by using a raw socket";
+    mainProgram = "udp2raw";
     license = licenses.mit;
     changelog = "https://github.com/wangyu-/udp2raw/releases/tag/${version}";
     maintainers = with maintainers; [ chvp ];
diff --git a/nixpkgs/pkgs/tools/networking/uget-integrator/default.nix b/nixpkgs/pkgs/tools/networking/uget-integrator/default.nix
index 2d069ea07f02..3ab9a0bafef4 100644
--- a/nixpkgs/pkgs/tools/networking/uget-integrator/default.nix
+++ b/nixpkgs/pkgs/tools/networking/uget-integrator/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Native messaging host to integrate uGet Download Manager with web browsers";
+    mainProgram = "uget-integrator";
     homepage = "https://github.com/ugetdm/uget-integrator";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/networking/unbound/default.nix b/nixpkgs/pkgs/tools/networking/unbound/default.nix
index 0c7d378eb2a0..617f5f03f1c3 100644
--- a/nixpkgs/pkgs/tools/networking/unbound/default.nix
+++ b/nixpkgs/pkgs/tools/networking/unbound/default.nix
@@ -51,17 +51,42 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "unbound";
-  version = "1.19.1";
+  version = "1.19.2";
 
   src = fetchurl {
     url = "https://nlnetlabs.nl/downloads/unbound/unbound-${finalAttrs.version}.tar.gz";
-    hash = "sha256-vB1Xbz3YRqBzmtxB/6pwJATGdn0rYILeufL5fLsko6k=";
+    hash = "sha256-zFYNNFc0ImwbOecadpeX5/3eImXLt3685UJwS7pInlU=";
   };
 
+
+  # Cherry pick some already merged upstream patches for configure
+  patches = [
+    # Search for protobuf-c with pkg-config
+    # https://github.com/NLnetLabs/unbound/pull/999
+    (fetchpatch {
+      url = "https://github.com/NLnetLabs/unbound/commit/59d98b9ef64e597c331c27160715d7a1b40c8638.patch";
+      hash = "sha256-DvYoYBTXOwbR8Z0GRgt724WqX3dbIEOdICU2/VMRSVQ=";
+    })
+    # Fix for previous patch
+    # https://github.com/NLnetLabs/unbound/issues/1006
+    (fetchpatch {
+      url = "https://github.com/NLnetLabs/unbound/commit/93490a0fc1bf9e62e6edcd6b69f1463c7ac410e9.patch";
+      hash = "sha256-mBo63ZlayD3YkOgIoQN0dG+xuFq/BxcjBmSo1vapiYA=";
+      excludes = [ "doc/Changelog" ];
+    })
+    # Fix for previous patch
+    # https://github.com/NLnetLabs/unbound/commit/3f5175584b0bb9ff7d417bc195ec6e4316ae58d3
+    (fetchpatch {
+      url = "https://github.com/NLnetLabs/unbound/commit/3f5175584b0bb9ff7d417bc195ec6e4316ae58d3.patch";
+      hash = "sha256-DcWfvmk+4K3c9Z+4grwzEGIkEBYNpbTK3xuBqRI33fY=";
+    })
+  ];
+
   outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB
 
   nativeBuildInputs =
     lib.optionals withMakeWrapper [ makeWrapper ]
+    ++ lib.optionals withDNSTAP [ protobufc ]
     ++ [ pkg-config ]
     ++ lib.optionals withPythonModule [ swig ];
 
@@ -97,7 +122,6 @@ stdenv.mkDerivation (finalAttrs: {
     "--with-libsodium=${symlinkJoin { name = "libsodium-full"; paths = [ libsodium.dev libsodium.out ]; }}"
   ] ++ lib.optionals withDNSTAP [
     "--enable-dnstap"
-    "--with-protobuf-c=${protobufc}"
   ] ++ lib.optionals withTFO [
     "--enable-tfo-client"
     "--enable-tfo-server"
diff --git a/nixpkgs/pkgs/tools/networking/updog/default.nix b/nixpkgs/pkgs/tools/networking/updog/default.nix
index 7fb8e0bfec37..c5cccac026ba 100644
--- a/nixpkgs/pkgs/tools/networking/updog/default.nix
+++ b/nixpkgs/pkgs/tools/networking/updog/default.nix
@@ -19,6 +19,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Updog is a replacement for Python's SimpleHTTPServer";
+    mainProgram = "updog";
     homepage = "https://github.com/sc0tfree/updog";
     license = licenses.mit;
     maintainers = with maintainers; [ ethancedwards8 ];
diff --git a/nixpkgs/pkgs/tools/networking/urlwatch/default.nix b/nixpkgs/pkgs/tools/networking/urlwatch/default.nix
index 36ad0ba77ce7..0335ed765479 100644
--- a/nixpkgs/pkgs/tools/networking/urlwatch/default.nix
+++ b/nixpkgs/pkgs/tools/networking/urlwatch/default.nix
@@ -46,6 +46,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A tool for monitoring webpages for updates";
+    mainProgram = "urlwatch";
     homepage = "https://thp.io/2008/urlwatch/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ kmein tv ];
diff --git a/nixpkgs/pkgs/tools/networking/v2ray/default.nix b/nixpkgs/pkgs/tools/networking/v2ray/default.nix
index 4d783fb47345..0bd4f1fff80b 100644
--- a/nixpkgs/pkgs/tools/networking/v2ray/default.nix
+++ b/nixpkgs/pkgs/tools/networking/v2ray/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "v2ray-core";
-  version = "5.13.0";
+  version = "5.15.1";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "v2ray-core";
     rev = "v${version}";
-    hash = "sha256-x7LVBmfm9M0fGBvLTz5Bbf01h8IT1yDJyeO1csKfb3I=";
+    hash = "sha256-EENeJQfIKHtbh5dmWeUtnVepIGsBsXMs6Yhi/QzeRRs=";
   };
 
   # `nix-update` doesn't support `vendorHash` yet.
   # https://github.com/Mic92/nix-update/pull/95
-  vendorHash = "sha256-ZBvHu4BEmQi6PQwRHuVwx/6X4gBqlRR44OktKRBGcs4=";
+  vendorHash = "sha256-SQ7DcrKYf4Wclp/HG8e7q5YPvVNj/kHV/pGmEyOU/BY=";
 
   ldflags = [ "-s" "-w" ];
 
@@ -55,6 +55,7 @@ buildGoModule rec {
   meta = {
     homepage = "https://www.v2fly.org/en_US/";
     description = "A platform for building proxies to bypass network restrictions";
+    mainProgram = "v2ray";
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ servalcatty ];
   };
diff --git a/nixpkgs/pkgs/tools/networking/v2raya/default.nix b/nixpkgs/pkgs/tools/networking/v2raya/default.nix
index 02f348a2df9a..298b27a14ef4 100644
--- a/nixpkgs/pkgs/tools/networking/v2raya/default.nix
+++ b/nixpkgs/pkgs/tools/networking/v2raya/default.nix
@@ -11,13 +11,13 @@
 }:
 let
   pname = "v2raya";
-  version = "2.2.4.3";
+  version = "2.2.5.1";
 
   src = fetchFromGitHub {
     owner = "v2rayA";
     repo = "v2rayA";
     rev = "v${version}";
-    hash = "sha256-6643sdKVHOHrGRocTm881GCHoON4tlrKcNfOFMHwnQY=";
+    hash = "sha256-aicKjirUHNeCCxfW9aaPI+X5DTQ0RdZnCxIQRU+GdCM=";
     postFetch = "sed -i -e 's/npmmirror/yarnpkg/g' $out/gui/yarn.lock";
   };
   guiSrc = "${src}/gui";
@@ -30,7 +30,7 @@ let
 
     offlineCache = fetchYarnDeps {
       yarnLock = "${guiSrc}/yarn.lock";
-      sha256 = "sha256-rZIcVLolTMdtN27W6gCw9uk9m4N5v9SZn2563+aN/gs=";
+      sha256 = "sha256-AZIYkW2u1l9IaDpR9xiKNpc0sGAarLKwHf5kGnzdpKw=";
     };
 
     buildPhase = ''
@@ -62,7 +62,7 @@ buildGoModule {
   inherit pname version;
 
   src = "${src}/service";
-  vendorHash = "sha256-wwDv2ThHwtnUpAnQoc0Ms0mGC44jRvABcE4K5MrF8S4=";
+  vendorHash = "sha256-/4l13TbE1WEX1xYfyzEwygFsNtT6weoYDll4ejvCyIg=";
 
   ldflags = [
     "-s"
@@ -94,6 +94,6 @@ buildGoModule {
     mainProgram = "v2rayA";
     license = licenses.agpl3Only;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ elliot ];
+    maintainers = with maintainers; [ ChaosAttractor ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/v2raya/package.json b/nixpkgs/pkgs/tools/networking/v2raya/package.json
index 531c64b76311..a4b16d15821c 100644
--- a/nixpkgs/pkgs/tools/networking/v2raya/package.json
+++ b/nixpkgs/pkgs/tools/networking/v2raya/package.json
@@ -9,7 +9,8 @@
     "lint": "vue-cli-service lint"
   },
   "resolutions": {
-    "@achrinza/node-ipc": "^10.1.10"
+    "@achrinza/node-ipc": "^10",
+    "@achrinza/event-pubsub": "^5"
   },
   "dependencies": {
     "@achrinza/node-ipc": "^10.1.10",
@@ -42,6 +43,7 @@
     "@vue/cli-plugin-vuex": "~5.0.8",
     "@vue/cli-service": "~5.0.8",
     "@vue/eslint-config-prettier": "^5.0.0",
+    "compression-webpack-plugin": "^10.0.0",
     "css-loader": "^5.2.0",
     "eslint": "^7.32.0",
     "eslint-config-prettier": "^8.3.0",
diff --git a/nixpkgs/pkgs/tools/networking/vpn-slice/default.nix b/nixpkgs/pkgs/tools/networking/vpn-slice/default.nix
index 75cfe2bba0e9..0cde0170b78f 100644
--- a/nixpkgs/pkgs/tools/networking/vpn-slice/default.nix
+++ b/nixpkgs/pkgs/tools/networking/vpn-slice/default.nix
@@ -41,6 +41,7 @@ buildPythonApplication rec {
     homepage = "https://github.com/dlenski/vpn-slice";
     description =
       "vpnc-script replacement for easy and secure split-tunnel VPN setup";
+    mainProgram = "vpn-slice";
     license = licenses.gpl3;
     maintainers = with maintainers; [ liketechnik ];
   };
diff --git a/nixpkgs/pkgs/tools/networking/vpnc-scripts/default.nix b/nixpkgs/pkgs/tools/networking/vpnc-scripts/default.nix
index 7b6a760f5f00..e0319ed4bf14 100644
--- a/nixpkgs/pkgs/tools/networking/vpnc-scripts/default.nix
+++ b/nixpkgs/pkgs/tools/networking/vpnc-scripts/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://www.infradead.org/openconnect/";
     description = "Script for vpnc to configure the network routing and name service";
+    mainProgram = "vpnc-script";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ jerith666 ];
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/tools/networking/whatip/default.nix b/nixpkgs/pkgs/tools/networking/whatip/default.nix
index 08979e71e35e..85a2fdf3f7b3 100644
--- a/nixpkgs/pkgs/tools/networking/whatip/default.nix
+++ b/nixpkgs/pkgs/tools/networking/whatip/default.nix
@@ -55,6 +55,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Info on your IP";
+    mainProgram = "whatip";
     homepage = "https://gitlab.gnome.org/GabMus/whatip";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/networking/wifish/default.nix b/nixpkgs/pkgs/tools/networking/wifish/default.nix
index a9e30710c1a2..7f474bc98442 100644
--- a/nixpkgs/pkgs/tools/networking/wifish/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wifish/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/bougyman/wifish";
     description = "Simple wifi shell script for linux";
+    mainProgram = "wifish";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = with platforms; linux;
diff --git a/nixpkgs/pkgs/tools/networking/wuzz/default.nix b/nixpkgs/pkgs/tools/networking/wuzz/default.nix
index 0ee71eb1e651..c428b40547f1 100644
--- a/nixpkgs/pkgs/tools/networking/wuzz/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wuzz/default.nix
@@ -25,7 +25,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/asciimoo/wuzz";
     description = "Interactive cli tool for HTTP inspection";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ pradeepchhetri ];
     mainProgram = "wuzz";
   };
diff --git a/nixpkgs/pkgs/tools/networking/xray/default.nix b/nixpkgs/pkgs/tools/networking/xray/default.nix
index 2c2fce54e608..285b29f22885 100644
--- a/nixpkgs/pkgs/tools/networking/xray/default.nix
+++ b/nixpkgs/pkgs/tools/networking/xray/default.nix
@@ -52,6 +52,7 @@ buildGoModule rec {
 
   meta = {
     description = "A platform for building proxies to bypass network restrictions. A replacement for v2ray-core, with XTLS support and fully compatible configuration";
+    mainProgram = "xray";
     homepage = "https://github.com/XTLS/Xray-core";
     license = with lib.licenses; [ mpl20 ];
     maintainers = with lib.maintainers; [ iopq ];
diff --git a/nixpkgs/pkgs/tools/networking/zrok/default.nix b/nixpkgs/pkgs/tools/networking/zrok/default.nix
index 68d4ad3ba125..6de421dce2d1 100644
--- a/nixpkgs/pkgs/tools/networking/zrok/default.nix
+++ b/nixpkgs/pkgs/tools/networking/zrok/default.nix
@@ -14,14 +14,14 @@ let
   }.${system} or throwSystem;
 
   hash = {
-    x86_64-linux = "sha256-17RtPUuFmIwxh+9mEsR9vwUHQHnXLIHEEhpV05Q9Ssw=";
-    aarch64-linux = "sha256-bJjhKf8dkOsVaaPikDrPLe+zF5CFvxvEALuzmiQuINY=";
-    armv7l-linux = "sha256-m/Ncr/+5kkC4p1/DhEfWermdsOAuekVECzR7SI1KpIQ=";
+    x86_64-linux = "sha256-XzMd2NgMY8AUSjdYDyOEcK3HlZ5hl+L/ulHgy2iDtKg=";
+    aarch64-linux = "sha256-ypjg73ciUhXIyiNSLzim8AZV0ByU27WRc3PJqTyTllg=";
+    armv7l-linux = "sha256-VgVn5NsGpvGpkLQRZDphOgeZFQzhR2rVfcwi/EkJ/y4=";
   }.${system} or throwSystem;
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "zrok";
-  version = "0.4.24";
+  version = "0.4.26";
 
   src = fetchzip {
     url = "https://github.com/openziti/zrok/releases/download/v${finalAttrs.version}/zrok_${finalAttrs.version}_${plat}.tar.gz";
diff --git a/nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix b/nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix
index 0cbf0f6b106d..84672a8e96a3 100644
--- a/nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix
+++ b/nixpkgs/pkgs/tools/nix/cached-nix-shell/default.nix
@@ -38,6 +38,7 @@ in rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Instant startup time for nix-shell";
+    mainProgram = "cached-nix-shell";
     homepage = "https://github.com/xzfc/cached-nix-shell";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = with maintainers; [ xzfc ];
diff --git a/nixpkgs/pkgs/tools/nix/dnadd/default.nix b/nixpkgs/pkgs/tools/nix/dnadd/default.nix
index 59a0516629e1..eccda0bd7c5f 100644
--- a/nixpkgs/pkgs/tools/nix/dnadd/default.nix
+++ b/nixpkgs/pkgs/tools/nix/dnadd/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/joelancaster/dnadd";
     description = "Adds packages declaratively on the command line";
+    mainProgram = "dnadd";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ joelancaster ];
   };
diff --git a/nixpkgs/pkgs/tools/nix/nar-serve/default.nix b/nixpkgs/pkgs/tools/nix/nar-serve/default.nix
index f2c709a2e312..98e480d4fdb9 100644
--- a/nixpkgs/pkgs/tools/nix/nar-serve/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nar-serve/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Serve NAR file contents via HTTP";
+    mainProgram = "nar-serve";
     homepage = "https://github.com/numtide/nar-serve";
     license = licenses.mit;
     maintainers = with maintainers; [ rizary zimbatm ];
diff --git a/nixpkgs/pkgs/tools/nix/nix-init/default.nix b/nixpkgs/pkgs/tools/nix/nix-init/default.nix
index 1e1ef3c0d0f6..95164ba3963d 100644
--- a/nixpkgs/pkgs/tools/nix/nix-init/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nix-init/default.nix
@@ -88,6 +88,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Command line tool to generate Nix packages from URLs";
+    mainProgram = "nix-init";
     homepage = "https://github.com/nix-community/nix-init";
     changelog = "https://github.com/nix-community/nix-init/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/tools/nix/nix-melt/default.nix b/nixpkgs/pkgs/tools/nix/nix-melt/default.nix
index 3a0b15c8c97f..50f830cf42a0 100644
--- a/nixpkgs/pkgs/tools/nix/nix-melt/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nix-melt/default.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A ranger-like flake.lock viewer";
+    mainProgram = "nix-melt";
     homepage = "https://github.com/nix-community/nix-melt";
     changelog = "https://github.com/nix-community/nix-melt/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/tools/nix/nix-output-monitor/generated-package.nix b/nixpkgs/pkgs/tools/nix/nix-output-monitor/generated-package.nix
index 7c41b6e1b6af..35b1f473cb2d 100644
--- a/nixpkgs/pkgs/tools/nix/nix-output-monitor/generated-package.nix
+++ b/nixpkgs/pkgs/tools/nix/nix-output-monitor/generated-package.nix
@@ -9,10 +9,10 @@
 }:
 mkDerivation {
   pname = "nix-output-monitor";
-  version = "2.1.1";
+  version = "2.1.2";
   src = fetchzip {
-    url = "https://code.maralorn.de/maralorn/nix-output-monitor/archive/v2.1.1.tar.gz";
-    sha256 = "1k1gdx7yczz7xm096i8lk09zq6yw1yj8izx6czymfd4qqwj2y49l";
+    url = "https://code.maralorn.de/maralorn/nix-output-monitor/archive/v2.1.2.tar.gz";
+    sha256 = "192h67myibpc2bw5ng60qi4m9jyjd9cf14aba4ps44ayjw95wkc0";
   };
   isLibrary = true;
   isExecutable = true;
diff --git a/nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix b/nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix
index a27aa8d3c3bd..03fa64545f18 100644
--- a/nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nix-query-tree-viewer/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "GTK viewer for the output of `nix store --query --tree`";
+    mainProgram = "nix-query-tree-viewer";
     homepage    = "https://github.com/cdepillabout/nix-query-tree-viewer";
     license     = with licenses; [ mit ];
     maintainers = with maintainers; [ cdepillabout ];
diff --git a/nixpkgs/pkgs/tools/nix/nix-store-gcs-proxy/default.nix b/nixpkgs/pkgs/tools/nix/nix-store-gcs-proxy/default.nix
index 166fe75766de..c83d44101b5b 100644
--- a/nixpkgs/pkgs/tools/nix/nix-store-gcs-proxy/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nix-store-gcs-proxy/default.nix
@@ -16,6 +16,7 @@ buildGoModule rec {
 
   meta = {
     description = "A HTTP nix store that proxies requests to Google Storage";
+    mainProgram = "nix-store-gcs-proxy";
     homepage = "https://github.com/tweag/nix-store-gcs-proxy";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ zimbatm ];
diff --git a/nixpkgs/pkgs/tools/nix/nixdoc/default.nix b/nixpkgs/pkgs/tools/nix/nixdoc/default.nix
index 1d5014a1c700..616ee90d9a3f 100644
--- a/nixpkgs/pkgs/tools/nix/nixdoc/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nixdoc/default.nix
@@ -2,26 +2,28 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nixdoc";
-  version = "3.0.1";
+  version = "3.0.2";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nixdoc";
     rev = "v${version}";
-    sha256 = "sha256-PnvVGw0DMBg/l7+QpcXW5AFfR6MeXBiUYdVAZuue1jA=";
+    sha256 = "sha256-V3MAvbdYk3DL064UYcJE9HmwfQBwpMxVXWiAKX6honA=";
   };
 
-  cargoHash = "sha256-qLTUyhoEVtjgh+ilEv+pQLXLYWlW9gVsCiA5rPfymZY=";
+  cargoHash = "sha256-RFxTjLiJCEc42Mb8rcayOFHkYk2GfpgsO3+hAaRwHgs=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ darwin.Security ];
 
   meta = with lib; {
     description = "Generate documentation for Nix functions";
+    mainProgram = "nixdoc";
     homepage    = "https://github.com/nix-community/nixdoc";
     license     = [ licenses.gpl3 ];
     maintainers = with maintainers; [
       infinisil
       asymmetric
+      hsjobeki
     ];
     platforms   = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/tools/nix/nixel/default.nix b/nixpkgs/pkgs/tools/nix/nixel/default.nix
index 5ce14a8d312f..70a0d92101d2 100644
--- a/nixpkgs/pkgs/tools/nix/nixel/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nixel/default.nix
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Lexer, Parser, Abstract Syntax Tree and Concrete Syntax Tree for the Nix Expressions Language";
+    mainProgram = "nixel";
     homepage = "https://github.com/kamadorueda/nixel";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ kamadorueda ];
diff --git a/nixpkgs/pkgs/tools/nix/nixos-render-docs/default.nix b/nixpkgs/pkgs/tools/nix/nixos-render-docs/default.nix
index b08abfe069f7..43a953f76d9c 100644
--- a/nixpkgs/pkgs/tools/nix/nixos-render-docs/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nixos-render-docs/default.nix
@@ -61,6 +61,7 @@ python.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Renderer for NixOS manual and option docs";
+    mainProgram = "nixos-render-docs";
     license = licenses.mit;
     maintainers = [ ];
   };
diff --git a/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py b/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py
index b9227814dea2..2e43a6a2be87 100644
--- a/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py
+++ b/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py
@@ -163,7 +163,7 @@ class HTMLRenderer(Renderer):
         # keycap-styled spans.
         (id_part, class_part) = ("", "")
         if s := token.attrs.get('id'):
-            id_part = f'<a id="{escape(cast(str, s), True)}" />'
+            id_part = f'<span id="{escape(cast(str, s), True)}"></span>'
         if s := token.attrs.get('class'):
             if s == 'keycap':
                 class_part = '<span class="keycap"><strong>'
@@ -181,7 +181,7 @@ class HTMLRenderer(Renderer):
         if hstyle:
             hstyle = f'style="{escape(hstyle, True)}"'
         if anchor := cast(str, token.attrs.get('id', '')):
-            anchor = f'<a id="{escape(anchor, True)}"></a>'
+            anchor = f'id="{escape(anchor, True)}"'
         result = self._close_headings(hlevel)
         tag = self._heading_tag(token, tokens, i)
         toc_fragment = self._build_toc(tokens, i)
@@ -192,8 +192,7 @@ class HTMLRenderer(Renderer):
             f' <div class="titlepage">'
             f'  <div>'
             f'   <div>'
-            f'    <{htag} class="title" {hstyle}>'
-            f'     {anchor}'
+            f'    <{htag} {anchor} class="title" {hstyle}>'
         )
     def heading_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
         heading = self._headings[-1]
@@ -220,7 +219,7 @@ class HTMLRenderer(Renderer):
     def example_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
         if id := cast(str, token.attrs.get('id', '')):
             id = f'id="{escape(id, True)}"' if id else ''
-        return f'<div class="example"><a {id} />'
+        return f'<div class="example"><span {id} ></span>'
     def example_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
         return '</div></div><br class="example-break" />'
     def example_title_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
@@ -239,7 +238,7 @@ class HTMLRenderer(Renderer):
         )
     def figure_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
         if anchor := cast(str, token.attrs.get('id', '')):
-            anchor = f'<a id="{escape(anchor, True)}"></a>'
+            anchor = f'<span id="{escape(anchor, True)}"></span>'
         return f'<div class="figure">{anchor}'
     def figure_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
         return (
diff --git a/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py b/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py
index fba0ce2679a4..9a3e07cb24c7 100644
--- a/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py
+++ b/nixpkgs/pkgs/tools/nix/nixos-render-docs/src/tests/test_html.py
@@ -167,7 +167,7 @@ def test_full() -> None:
           <span class="citerefentry"><span class="refentrytitle">man</span>(1)</span>
          </a> reference
         </p>
-        <p><a id="b" />some <a id="a" />nested anchors</p>
+        <p><span id="b"></span>some <span id="a"></span>nested anchors</p>
         <p>
          <span class="emphasis"><em>emph</em></span>â£
          <span class="strong"><strong>strong</strong></span>â£
diff --git a/nixpkgs/pkgs/tools/nix/nixpkgs-lint/default.nix b/nixpkgs/pkgs/tools/nix/nixpkgs-lint/default.nix
index 16e7582d3a92..d5e17cd46b37 100644
--- a/nixpkgs/pkgs/tools/nix/nixpkgs-lint/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nixpkgs-lint/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A fast semantic linter for Nix using tree-sitter";
+    mainProgram = "nixpkgs-lint";
     homepage = "https://github.com/nix-community/nixpkgs-lint";
     changelog = "https://github.com/nix-community/nixpkgs-lint/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/nix/npins/default.nix b/nixpkgs/pkgs/tools/nix/npins/default.nix
index e83617da91e4..02ec39094ddf 100644
--- a/nixpkgs/pkgs/tools/nix/npins/default.nix
+++ b/nixpkgs/pkgs/tools/nix/npins/default.nix
@@ -33,6 +33,7 @@ in rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Simple and convenient dependency pinning for Nix";
+    mainProgram = "npins";
     homepage = "https://github.com/andir/npins";
     license = licenses.eupl12;
     maintainers = with maintainers; [ piegames ];
diff --git a/nixpkgs/pkgs/tools/nix/rnix-hashes/default.nix b/nixpkgs/pkgs/tools/nix/rnix-hashes/default.nix
index 4aebb35bc935..b9a98b184fb8 100644
--- a/nixpkgs/pkgs/tools/nix/rnix-hashes/default.nix
+++ b/nixpkgs/pkgs/tools/nix/rnix-hashes/default.nix
@@ -23,6 +23,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Nix Hash Converter";
+    mainProgram = "rnix-hashes";
     homepage = "https://github.com/numtide/rnix-hashes";
     license = licenses.asl20;
     maintainers = with maintainers; [ rizary SuperSandro2000 ];
diff --git a/nixpkgs/pkgs/tools/nix/zon2nix/default.nix b/nixpkgs/pkgs/tools/nix/zon2nix/default.nix
index 78b7d601906c..d3f0bd6ce54a 100644
--- a/nixpkgs/pkgs/tools/nix/zon2nix/default.nix
+++ b/nixpkgs/pkgs/tools/nix/zon2nix/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Convert the dependencies in `build.zig.zon` to a Nix expression";
+    mainProgram = "zon2nix";
     homepage = "https://github.com/nix-community/zon2nix";
     changelog = "https://github.com/nix-community/zon2nix/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/tools/package-management/apk-tools/default.nix b/nixpkgs/pkgs/tools/package-management/apk-tools/default.nix
index 4a460adfd0ff..4800a6641bd0 100644
--- a/nixpkgs/pkgs/tools/package-management/apk-tools/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/apk-tools/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "apk-tools";
-  version = "2.14.0";
+  version = "2.14.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.alpinelinux.org";
     owner = "alpine";
     repo = "apk-tools";
     rev = "v${version}";
-    sha256 = "sha256-NbADp017wL6h+Owg/GISidoXEq0seWaa98/Hyyq6pYc=";
+    sha256 = "sha256-gO7Yf60eabvAdPDSzxvxeEMsvc6ixy1iQ6/o7WWlE2Q=";
   };
 
   nativeBuildInputs = [ pkg-config scdoc ]
diff --git a/nixpkgs/pkgs/tools/package-management/comma/default.nix b/nixpkgs/pkgs/tools/package-management/comma/default.nix
index b73e64924a6d..cf3b9c3dc9e4 100644
--- a/nixpkgs/pkgs/tools/package-management/comma/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/comma/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "comma";
-  version = "1.7.1";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "comma";
     rev = "v${version}";
-    hash = "sha256-x2HVm2vcEFHDrCQLIp5QzNsDARcbBfPdaIMLWVNfi4c=";
+    hash = "sha256-PW9OS/ccRxigP0ikk1XR4QhQX4j9+ALQz0FMKXF3yRA=";
   };
 
-  cargoHash = "sha256-N6Bc0+m0Qz1c/80oLvQTj8gvMusPXIriegNlRYWWStU=";
+  cargoHash = "sha256-lNz4E+dcJ6ACkNraM4DUR4yFbkWgAZ4ngbAML8JYVtE=";
 
   nativeBuildInputs = [ makeBinaryWrapper ];
 
diff --git a/nixpkgs/pkgs/tools/package-management/conda/default.nix b/nixpkgs/pkgs/tools/package-management/conda/default.nix
index 5638676838f7..57317416651a 100644
--- a/nixpkgs/pkgs/tools/package-management/conda/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/conda/default.nix
@@ -88,6 +88,7 @@ in
 
     meta = {
       description = "Conda is a package manager for Python";
+      mainProgram = "conda-shell";
       homepage = "https://conda.io/";
       platforms = lib.platforms.linux;
       license = lib.licenses.bsd3;
diff --git a/nixpkgs/pkgs/tools/package-management/disnix/DisnixWebService/default.nix b/nixpkgs/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
index 461c0cacc06a..38aa1c2e261d 100644
--- a/nixpkgs/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/disnix/DisnixWebService/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A SOAP interface and client for Disnix";
+    mainProgram = "disnix-soap-client";
     homepage = "https://github.com/svanderburg/DisnixWebService";
     changelog = "https://github.com/svanderburg/DisnixWebService/blob/DisnixWebService-${version}/NEWS.txt";
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/tools/package-management/dnf5/default.nix b/nixpkgs/pkgs/tools/package-management/dnf5/default.nix
index fc22001a5192..39c2b0cb329b 100644
--- a/nixpkgs/pkgs/tools/package-management/dnf5/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/dnf5/default.nix
@@ -30,7 +30,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "dnf5";
-  version = "5.1.14";
+  version = "5.1.15";
 
   outputs = [ "out" "man" ];
 
@@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "rpm-software-management";
     repo = "dnf5";
     rev = finalAttrs.version;
-    hash = "sha256-LVemkL3Ysv2hS0/c+ZTqzEKq3kFu+T1rEBwZpjssE2k=";
+    hash = "sha256-IDF/jRnPpGbHk5bY7plkCO1x/i10H+HCcU88JI4EHvs=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/package-management/dpkg/default.nix b/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
index b286a7b51b9f..f0f7d621414e 100644
--- a/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
@@ -18,12 +18,12 @@
 
 stdenv.mkDerivation rec {
   pname = "dpkg";
-  version = "1.22.4";
+  version = "1.22.5";
 
   src = fetchgit {
     url = "https://git.launchpad.net/ubuntu/+source/dpkg";
     rev = "applied/${version}";
-    hash = "sha256-tpYSOimBd78rAthQUga/MNraWll9qEA+vRG+/F+t3mM=";
+    hash = "sha256-Rm3DacQF/0yAVtDaixPzE8IZ2Y+RZneCCVBCoYM64K4=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/package-management/gx/go/default.nix b/nixpkgs/pkgs/tools/package-management/gx/go/default.nix
index 22f7d07537a5..dee8861d65d6 100644
--- a/nixpkgs/pkgs/tools/package-management/gx/go/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/gx/go/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool for importing go packages into gx";
+    mainProgram = "gx-go";
     homepage = "https://github.com/whyrusleeping/gx-go";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
diff --git a/nixpkgs/pkgs/tools/package-management/harmonia/default.nix b/nixpkgs/pkgs/tools/package-management/harmonia/default.nix
index 9830570a07fd..8e174cf68a89 100644
--- a/nixpkgs/pkgs/tools/package-management/harmonia/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/harmonia/default.nix
@@ -12,32 +12,27 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "harmonia";
-  version = "0.7.4";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
     rev = "refs/tags/${pname}-v${version}";
-    hash = "sha256-72JMrXmxw/FuGjqXXxMIGiAbUUOqXEERdQwch+s3iwU=";
+    hash = "sha256-QqRq5maYk4hDl0MXkj9wOPWUta5b+kXG9e/kqRorNE4=";
   };
 
-  cargoHash = "sha256-Q5Y5v7mmJpfZFGRgurTcRBRtbApFRrwqOBHdZTJbyzc=";
+  cargoHash = "sha256-dlmSn4cWU6RqEiUoQYNJFhxu3owplkxlbtszBxm+GbU=";
 
   nativeBuildInputs = [
-    pkg-config nixVersions.nix_2_19
+    pkg-config nixVersions.nix_2_21
   ];
 
   buildInputs = [
     boost
     libsodium
-    nixVersions.nix_2_19
+    nixVersions.nix_2_21
   ];
 
-  # Workaround for https://github.com/NixOS/nixpkgs/issues/166205
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   passthru = {
     updateScript = nix-update-script {
       extraArgs = [ "--version-regex" "harmonia-v(.*)" ];
diff --git a/nixpkgs/pkgs/tools/package-management/libcomps/default.nix b/nixpkgs/pkgs/tools/package-management/libcomps/default.nix
index 89c2982497df..2a1136034d21 100644
--- a/nixpkgs/pkgs/tools/package-management/libcomps/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/libcomps/default.nix
@@ -13,7 +13,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libcomps";
-  version = "0.1.20";
+  version = "0.1.21";
 
   outputs = [ "out" "dev" "py" ];
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "rpm-software-management";
     repo = "libcomps";
     rev = version;
-    hash = "sha256-IX4du1+G7lwWrGnllydnBDap2aqK5pzos1Mdyu4MzOU=";
+    hash = "sha256-2ZxU1g5HDWnSxTabnmfyQwz1ZCXK+7kJXLofeFBiwn0=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix b/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix
index 2c7940b8d87d..3d0069c87dba 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix
@@ -1,5 +1,17 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, boost, nix, pkg-config }:
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, boost
+, nix
+, pkg-config
+# Whether to build the nix-doc plugin for Nix
+, withPlugin ? true
+}:
 
+let
+  packageFlags = [ "-p" "nix-doc" ] ++ lib.optionals withPlugin [ "-p" "nix-doc-plugin" ];
+in
 rustPlatform.buildRustPackage rec {
   pname = "nix-doc";
   version = "0.6.5";
@@ -12,17 +24,20 @@ rustPlatform.buildRustPackage rec {
   };
 
   doCheck = true;
-  buildInputs = [ boost nix ];
+  buildInputs = lib.optionals withPlugin [ boost nix ];
 
-  nativeBuildInputs = [ pkg-config nix ];
+  nativeBuildInputs = lib.optionals withPlugin [ pkg-config nix ];
+
+  cargoBuildFlags = packageFlags;
+  cargoTestFlags = packageFlags;
 
   # Packaging support for making the nix-doc plugin load cleanly as a no-op on
   # the wrong Nix version (disabling bindnow permits loading libraries
   # requiring unavailable symbols if they are unreached)
-  hardeningDisable = [ "bindnow" ];
+  hardeningDisable = lib.optionals withPlugin [ "bindnow" ];
   # Due to a Rust bug, setting -Z relro-level to anything including "off" on
   # macOS will cause link errors
-  env = lib.optionalAttrs stdenv.isLinux {
+  env = lib.optionalAttrs (withPlugin && stdenv.isLinux) {
     # nix-doc does not use nightly features, however, there is no other way to
     # set relro-level
     RUSTC_BOOTSTRAP = 1;
diff --git a/nixpkgs/pkgs/tools/package-management/nix-du/default.nix b/nixpkgs/pkgs/tools/package-management/nix-du/default.nix
index a3a1f0d97108..d8f2b79a4bbb 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-du/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-du/default.nix
@@ -34,11 +34,6 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook ];
 
-  # Workaround for https://github.com/NixOS/nixpkgs/issues/166205
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   meta = with lib; {
     description = "A tool to determine which gc-roots take space in your nix store";
     homepage = "https://github.com/symphorien/nix-du";
diff --git a/nixpkgs/pkgs/tools/package-management/nix-update-source/default.nix b/nixpkgs/pkgs/tools/package-management/nix-update-source/default.nix
index 533f487e3974..13b158db81e0 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-update-source/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-update-source/default.nix
@@ -51,6 +51,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   meta = {
+    homepage = "https://github.com/timbertson/nix-update-source";
     description = "Utility to automate updating of nix derivation sources";
     maintainers = with lib.maintainers; [ timbertson ];
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/tools/package-management/nix-update/default.nix b/nixpkgs/pkgs/tools/package-management/nix-update/default.nix
index 8ccdd08a25e3..4320cf193cbe 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-update/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-update/default.nix
@@ -9,14 +9,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "nix-update";
-  version = "1.2.0";
+  version = "1.3.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = pname;
     rev = version;
-    hash = "sha256-/Lv4wO4mCOwk8lNdfiQq2U+PhgeEeSnh89I2N7fxEpE=";
+    hash = "sha256-Nu9/mzL/notnR6Tvtj938Mo0TmYJutA2oJ6/rg2uZCo=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/package-management/nix/common.nix b/nixpkgs/pkgs/tools/package-management/nix/common.nix
index d0840d206b67..9c22b2975501 100644
--- a/nixpkgs/pkgs/tools/package-management/nix/common.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix/common.nix
@@ -20,6 +20,7 @@ let
   # Major.minor versions unaffected by CVE-2024-27297
   unaffectedByFodSandboxEscape = [
     "2.3"
+    "2.16"
     "2.18"
     "2.19"
     "2.20"
@@ -42,6 +43,7 @@ in
 , docbook5
 , editline
 , flex
+, git
 , gnutar
 , gtest
 , gzip
@@ -54,6 +56,7 @@ in
 , libxml2
 , libxslt
 , lowdown
+, man
 , mdbook
 , mdbook-linkcheck
 , nlohmann_json
@@ -142,6 +145,11 @@ self = stdenv.mkDerivation {
     aws-sdk-cpp
   ];
 
+  installCheckInputs = lib.optionals atLeast221 [
+    git
+    man
+  ];
+
   propagatedBuildInputs = [
     boehmgc
   ] ++ lib.optionals (atLeast27) [
diff --git a/nixpkgs/pkgs/tools/package-management/nix/default.nix b/nixpkgs/pkgs/tools/package-management/nix/default.nix
index 92c988ea5d08..96e91b000b40 100644
--- a/nixpkgs/pkgs/tools/package-management/nix/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix/default.nix
@@ -162,7 +162,7 @@ let
     pkg;
 
 in lib.makeExtensible (self: ({
-  nix_2_3 = (common {
+  nix_2_3 = ((common {
     version = "2.3.17";
     hash = "sha256-EK0pgHDekJFqr0oMj+8ANIjq96WPjICe2s0m4xkUdH4=";
     patches = [
@@ -170,7 +170,11 @@ in lib.makeExtensible (self: ({
       ./patches/2_3/CVE-2024-27297.patch
     ];
     maintainers = with lib.maintainers; [ flokli raitobezarius ];
-  }).override { boehmgc = boehmgc-nix_2_3; };
+  }).override { boehmgc = boehmgc-nix_2_3; }).overrideAttrs {
+    # https://github.com/NixOS/nix/issues/10222
+    # spurious test/add.sh failures
+    enableParallelChecking = false;
+  };
 
   nix_2_10 = common {
     version = "2.10.3";
@@ -226,11 +230,8 @@ in lib.makeExtensible (self: ({
   };
 
   nix_2_16 = common {
-    version = "2.16.2";
-    hash = "sha256-VXIYCDkvAWeMoU0W2ZI0TeOszCZA1o8trz6YCPFD5ac=";
-    patches = [
-      patch-rapidcheck-shared
-    ];
+    version = "2.16.3";
+    hash = "sha256-/tnjRCk+VaWPThzdn3C0zU1AMON+7AFsHgTTzErFxV4=";
   };
 
   nix_2_17 = common {
@@ -242,12 +243,8 @@ in lib.makeExtensible (self: ({
   };
 
   nix_2_18 = common {
-    version = "2.18.1";
-    hash = "sha256-WNmifcTsN9aG1ONkv+l2BC4sHZZxtNKy0keqBHXXQ7w=";
-    patches = [
-      patch-rapidcheck-shared
-      ./patches/2_18/CVE-2024-27297.patch
-    ];
+    version = "2.18.2";
+    hash = "sha256-8gNJlBlv2bnffRg0CejiBXc6U/S6YeCLAdHrYvTPyoY=";
   };
 
   nix_2_19 = common {
@@ -263,6 +260,11 @@ in lib.makeExtensible (self: ({
     hash = "sha256-bfFe38BkoQws7om4gBtBWoNTLkt9piMXdLLoHYl+vBQ=";
   };
 
+  nix_2_21 = common {
+    version = "2.21.0";
+    hash = "sha256-9b9qJ+7rGjLKbIswMf0/2pgUWH/xOlYLk7P4WYNcGDs=";
+  };
+
   # The minimum Nix version supported by Nixpkgs
   # Note that some functionality *might* have been backported into this Nix version,
   # making this package an inaccurate representation of what features are available
@@ -282,7 +284,7 @@ in lib.makeExtensible (self: ({
 
   stable = addFallbackPathsCheck self.nix_2_18;
 
-  unstable = self.nix_2_20;
+  unstable = self.nix_2_21;
 } // lib.optionalAttrs config.allowAliases {
   nix_2_4 = throw "nixVersions.nix_2_4 has been removed";
 
diff --git a/nixpkgs/pkgs/tools/package-management/nix/patches/2_18/CVE-2024-27297.patch b/nixpkgs/pkgs/tools/package-management/nix/patches/2_18/CVE-2024-27297.patch
deleted file mode 100644
index 8d110d46a6bb..000000000000
--- a/nixpkgs/pkgs/tools/package-management/nix/patches/2_18/CVE-2024-27297.patch
+++ /dev/null
@@ -1,379 +0,0 @@
-From f8d20e91a45f71b60402f5916d2475751c089c84 Mon Sep 17 00:00:00 2001
-From: Tom Bereknyei <tomberek@gmail.com>
-Date: Fri, 1 Mar 2024 03:42:26 -0500
-Subject: [PATCH 1/3] Add a NixOS test for the sandbox escape
-
-Test that we can't leverage abstract unix domain sockets to leak file
-descriptors out of the sandbox and modify the path after it has been
-registered.
-
-Co-authored-by: Theophane Hufschmitt <theophane.hufschmitt@tweag.io>
----
- flake.nix                          |  2 +
- tests/nixos/ca-fd-leak/default.nix | 90 ++++++++++++++++++++++++++++++
- tests/nixos/ca-fd-leak/sender.c    | 65 +++++++++++++++++++++
- tests/nixos/ca-fd-leak/smuggler.c  | 66 ++++++++++++++++++++++
- 4 files changed, 223 insertions(+)
- create mode 100644 tests/nixos/ca-fd-leak/default.nix
- create mode 100644 tests/nixos/ca-fd-leak/sender.c
- create mode 100644 tests/nixos/ca-fd-leak/smuggler.c
-
-diff --git a/flake.nix b/flake.nix
-index 230bb6031..4a54c660f 100644
---- a/flake.nix
-+++ b/flake.nix
-@@ -634,6 +634,8 @@
-           ["i686-linux" "x86_64-linux"]
-           (system: runNixOSTestFor system ./tests/nixos/setuid.nix);
- 
-+        tests.ca-fd-leak = runNixOSTestFor "x86_64-linux" ./tests/nixos/ca-fd-leak;
-+
- 
-         # Make sure that nix-env still produces the exact same result
-         # on a particular version of Nixpkgs.
-diff --git a/tests/nixos/ca-fd-leak/default.nix b/tests/nixos/ca-fd-leak/default.nix
-new file mode 100644
-index 000000000..a6ae72adc
---- /dev/null
-+++ b/tests/nixos/ca-fd-leak/default.nix
-@@ -0,0 +1,90 @@
-+# Nix is a sandboxed build system. But Not everything can be handled inside its
-+# sandbox: Network access is normally blocked off, but to download sources, a
-+# trapdoor has to exist. Nix handles this by having "Fixed-output derivations".
-+# The detail here is not important, but in our case it means that the hash of
-+# the output has to be known beforehand. And if you know that, you get a few
-+# rights: you no longer run inside a special network namespace!
-+#
-+# Now, Linux has a special feature, that not many other unices do: Abstract
-+# unix domain sockets! Not only that, but those are namespaced using the
-+# network namespace! That means that we have a way to create sockets that are
-+# available in every single fixed-output derivation, and also all processes
-+# running on the host machine! Now, this wouldn't be that much of an issue, as,
-+# well, the whole idea is that the output is pure, and all processes in the
-+# sandbox are killed before finalizing the output. What if we didn't need those
-+# processes at all? Unix domain sockets have a semi-known trick: you can pass
-+# file descriptors around!
-+# This makes it possible to exfiltrate a file-descriptor with write access to
-+# $out outside of the sandbox. And that file-descriptor can be used to modify
-+# the contents of the store path after it has been registered.
-+
-+{ config, ... }:
-+
-+let
-+  pkgs = config.nodes.machine.nixpkgs.pkgs;
-+
-+  # Simple C program that sends a a file descriptor to `$out` to a Unix
-+  # domain socket.
-+  # Compiled statically so that we can easily send it to the VM and use it
-+  # inside the build sandbox.
-+  sender = pkgs.runCommandWith {
-+    name = "sender";
-+    stdenv = pkgs.pkgsStatic.stdenv;
-+  } ''
-+    $CC -static -o $out ${./sender.c}
-+  '';
-+
-+  # Okay, so we have a file descriptor shipped out of the FOD now. But the
-+  # Nix store is read-only, right? .. Well, yeah. But this file descriptor
-+  # lives in a mount namespace where it is not! So even when this file exists
-+  # in the actual Nix store, we're capable of just modifying its contents...
-+  smuggler = pkgs.writeCBin "smuggler" (builtins.readFile ./smuggler.c);
-+
-+  # The abstract socket path used to exfiltrate the file descriptor
-+  socketName = "FODSandboxExfiltrationSocket";
-+in
-+{
-+  name = "ca-fd-leak";
-+
-+  nodes.machine =
-+    { config, lib, pkgs, ... }:
-+    { virtualisation.writableStore = true;
-+      nix.settings.substituters = lib.mkForce [ ];
-+      virtualisation.additionalPaths = [ pkgs.busybox-sandbox-shell sender smuggler pkgs.socat ];
-+    };
-+
-+  testScript = { nodes }: ''
-+    start_all()
-+
-+    machine.succeed("echo hello")
-+    # Start the smuggler server
-+    machine.succeed("${smuggler}/bin/smuggler ${socketName} >&2 &")
-+
-+    # Build the smuggled derivation.
-+    # This will connect to the smuggler server and send it the file descriptor
-+    machine.succeed(r"""
-+      nix-build -E '
-+        builtins.derivation {
-+          name = "smuggled";
-+          system = builtins.currentSystem;
-+          # look ma, no tricks!
-+          outputHashMode = "flat";
-+          outputHashAlgo = "sha256";
-+          outputHash = builtins.hashString "sha256" "hello, world\n";
-+          builder = "${pkgs.busybox-sandbox-shell}/bin/sh";
-+          args = [ "-c" "echo \"hello, world\" > $out; ''${${sender}} ${socketName}" ];
-+      }'
-+    """.strip())
-+
-+
-+    # Tell the smuggler server that we're done
-+    machine.execute("echo done | ${pkgs.socat}/bin/socat - ABSTRACT-CONNECT:${socketName}")
-+
-+    # Check that the file was not modified
-+    machine.succeed(r"""
-+      cat ./result
-+      test "$(cat ./result)" = "hello, world"
-+    """.strip())
-+  '';
-+
-+}
-diff --git a/tests/nixos/ca-fd-leak/sender.c b/tests/nixos/ca-fd-leak/sender.c
-new file mode 100644
-index 000000000..75e54fc8f
---- /dev/null
-+++ b/tests/nixos/ca-fd-leak/sender.c
-@@ -0,0 +1,65 @@
-+#include <sys/socket.h>
-+#include <sys/un.h>
-+#include <stdlib.h>
-+#include <stddef.h>
-+#include <stdio.h>
-+#include <unistd.h>
-+#include <fcntl.h>
-+#include <errno.h>
-+#include <string.h>
-+#include <assert.h>
-+
-+int main(int argc, char **argv) {
-+
-+    assert(argc == 2);
-+
-+    int sock = socket(AF_UNIX, SOCK_STREAM, 0);
-+
-+    // Set up a abstract domain socket path to connect to.
-+    struct sockaddr_un data;
-+    data.sun_family = AF_UNIX;
-+    data.sun_path[0] = 0;
-+    strcpy(data.sun_path + 1, argv[1]);
-+
-+    // Now try to connect, To ensure we work no matter what order we are
-+    // executed in, just busyloop here.
-+    int res = -1;
-+    while (res < 0) {
-+        res = connect(sock, (const struct sockaddr *)&data,
-+            offsetof(struct sockaddr_un, sun_path)
-+              + strlen(argv[1])
-+              + 1);
-+        if (res < 0 && errno != ECONNREFUSED) perror("connect");
-+        if (errno != ECONNREFUSED) break;
-+    }
-+
-+    // Write our message header.
-+    struct msghdr msg = {0};
-+    msg.msg_control = malloc(128);
-+    msg.msg_controllen = 128;
-+
-+    // Write an SCM_RIGHTS message containing the output path.
-+    struct cmsghdr *hdr = CMSG_FIRSTHDR(&msg);
-+    hdr->cmsg_len = CMSG_LEN(sizeof(int));
-+    hdr->cmsg_level = SOL_SOCKET;
-+    hdr->cmsg_type = SCM_RIGHTS;
-+    int fd = open(getenv("out"), O_RDWR | O_CREAT, 0640);
-+    memcpy(CMSG_DATA(hdr), (void *)&fd, sizeof(int));
-+
-+    msg.msg_controllen = CMSG_SPACE(sizeof(int));
-+
-+    // Write a single null byte too.
-+    msg.msg_iov = malloc(sizeof(struct iovec));
-+    msg.msg_iov[0].iov_base = "";
-+    msg.msg_iov[0].iov_len = 1;
-+    msg.msg_iovlen = 1;
-+
-+    // Send it to the othher side of this connection.
-+    res = sendmsg(sock, &msg, 0);
-+    if (res < 0) perror("sendmsg");
-+    int buf;
-+
-+    // Wait for the server to close the socket, implying that it has
-+    // received the commmand.
-+    recv(sock, (void *)&buf, sizeof(int), 0);
-+}
-diff --git a/tests/nixos/ca-fd-leak/smuggler.c b/tests/nixos/ca-fd-leak/smuggler.c
-new file mode 100644
-index 000000000..82acf37e6
---- /dev/null
-+++ b/tests/nixos/ca-fd-leak/smuggler.c
-@@ -0,0 +1,66 @@
-+#include <sys/socket.h>
-+#include <sys/un.h>
-+#include <stdlib.h>
-+#include <stddef.h>
-+#include <stdio.h>
-+#include <unistd.h>
-+#include <assert.h>
-+
-+int main(int argc, char **argv) {
-+
-+    assert(argc == 2);
-+
-+    int sock = socket(AF_UNIX, SOCK_STREAM, 0);
-+
-+    // Bind to the socket.
-+    struct sockaddr_un data;
-+    data.sun_family = AF_UNIX;
-+    data.sun_path[0] = 0;
-+    strcpy(data.sun_path + 1, argv[1]);
-+    int res = bind(sock, (const struct sockaddr *)&data,
-+        offsetof(struct sockaddr_un, sun_path)
-+        + strlen(argv[1])
-+        + 1);
-+    if (res < 0) perror("bind");
-+
-+    res = listen(sock, 1);
-+    if (res < 0) perror("listen");
-+
-+    int smuggling_fd = -1;
-+
-+    // Accept the connection a first time to receive the file descriptor.
-+    fprintf(stderr, "%s\n", "Waiting for the first connection");
-+    int a = accept(sock, 0, 0);
-+    if (a < 0) perror("accept");
-+
-+    struct msghdr msg = {0};
-+    msg.msg_control = malloc(128);
-+    msg.msg_controllen = 128;
-+
-+    // Receive the file descriptor as sent by the smuggler.
-+    recvmsg(a, &msg, 0);
-+
-+    struct cmsghdr *hdr = CMSG_FIRSTHDR(&msg);
-+    while (hdr) {
-+        if (hdr->cmsg_level == SOL_SOCKET
-+          && hdr->cmsg_type == SCM_RIGHTS) {
-+
-+            // Grab the copy of the file descriptor.
-+            memcpy((void *)&smuggling_fd, CMSG_DATA(hdr), sizeof(int));
-+        }
-+
-+        hdr = CMSG_NXTHDR(&msg, hdr);
-+    }
-+    fprintf(stderr, "%s\n", "Got the file descriptor. Now waiting for the second connection");
-+    close(a);
-+
-+    // Wait for a second connection, which will tell us that the build is
-+    // done
-+    a = accept(sock, 0, 0);
-+    fprintf(stderr, "%s\n", "Got a second connection, rewriting the file");
-+    // Write a new content to the file
-+    if (ftruncate(smuggling_fd, 0)) perror("ftruncate");
-+    char * new_content = "Pwned\n";
-+    int written_bytes = write(smuggling_fd, new_content, strlen(new_content));
-+    if (written_bytes != strlen(new_content)) perror("write");
-+}
--- 
-2.42.0
-
-
-From 4bc5a3510fa3735798f9ed3a2a30a3ea7b32343a Mon Sep 17 00:00:00 2001
-From: Tom Bereknyei <tomberek@gmail.com>
-Date: Fri, 1 Mar 2024 03:45:39 -0500
-Subject: [PATCH 2/3] Copy the output of fixed-output derivations before
- registering them
-
-It is possible to exfiltrate a file descriptor out of the build sandbox
-of FODs, and use it to modify the store path after it has been
-registered.
-To avoid that issue, don't register the output of the build, but a copy
-of it (that will be free of any leaked file descriptor).
-
-Co-authored-by: Theophane Hufschmitt <theophane.hufschmitt@tweag.io>
-Co-authored-by: Valentin Gagarin <valentin.gagarin@tweag.io>
----
- src/libstore/build/local-derivation-goal.cc | 6 ++++++
- src/libutil/filesystem.cc                   | 6 ++++++
- src/libutil/util.hh                         | 7 +++++++
- 3 files changed, 19 insertions(+)
-
-diff --git a/src/libstore/build/local-derivation-goal.cc b/src/libstore/build/local-derivation-goal.cc
-index 64b55ca6a..f1e22f829 100644
---- a/src/libstore/build/local-derivation-goal.cc
-+++ b/src/libstore/build/local-derivation-goal.cc
-@@ -2558,6 +2558,12 @@ SingleDrvOutputs LocalDerivationGoal::registerOutputs()
-             [&](const DerivationOutput::CAFixed & dof) {
-                 auto & wanted = dof.ca.hash;
- 
-+                // Replace the output by a fresh copy of itself to make sure
-+                // that there's no stale file descriptor pointing to it
-+                Path tmpOutput = actualPath + ".tmp";
-+                copyFile(actualPath, tmpOutput, true);
-+                renameFile(tmpOutput, actualPath);
-+
-                 auto newInfo0 = newInfoFromCA(DerivationOutput::CAFloating {
-                     .method = dof.ca.method,
-                     .hashType = wanted.type,
-diff --git a/src/libutil/filesystem.cc b/src/libutil/filesystem.cc
-index 11cc0c0e7..2a7787c0e 100644
---- a/src/libutil/filesystem.cc
-+++ b/src/libutil/filesystem.cc
-@@ -133,6 +133,12 @@ void copy(const fs::directory_entry & from, const fs::path & to, bool andDelete)
-     }
- }
- 
-+
-+void copyFile(const Path & oldPath, const Path & newPath, bool andDelete)
-+{
-+    return copy(fs::directory_entry(fs::path(oldPath)), fs::path(newPath), andDelete);
-+}
-+
- void renameFile(const Path & oldName, const Path & newName)
- {
-     fs::rename(oldName, newName);
-diff --git a/src/libutil/util.hh b/src/libutil/util.hh
-index b302d6f45..59d42e0a5 100644
---- a/src/libutil/util.hh
-+++ b/src/libutil/util.hh
-@@ -274,6 +274,13 @@ void renameFile(const Path & src, const Path & dst);
-  */
- void moveFile(const Path & src, const Path & dst);
- 
-+/**
-+ * Recursively copy the content of `oldPath` to `newPath`. If `andDelete` is
-+ * `true`, then also remove `oldPath` (making this equivalent to `moveFile`, but
-+ * with the guaranty that the destination will be “freshâ€, with no stale inode
-+ * or file descriptor pointing to it).
-+ */
-+void copyFile(const Path & oldPath, const Path & newPath, bool andDelete);
- 
- /**
-  * Wrappers arount read()/write() that read/write exactly the
--- 
-2.42.0
-
-
-From 9e7065bef5469b3024cde2bbc7745530a64fde5b Mon Sep 17 00:00:00 2001
-From: Tom Bereknyei <tomberek@gmail.com>
-Date: Fri, 1 Mar 2024 04:01:23 -0500
-Subject: [PATCH 3/3] Add release notes
-
-Co-authored-by: Theophane Hufschmitt <theophane.hufschmitt@tweag.io>
----
- doc/manual/src/release-notes/rl-next.md | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/doc/manual/src/release-notes/rl-next.md b/doc/manual/src/release-notes/rl-next.md
-index c869b5e2f..f77513385 100644
---- a/doc/manual/src/release-notes/rl-next.md
-+++ b/doc/manual/src/release-notes/rl-next.md
-@@ -1 +1,9 @@
- # Release X.Y (202?-??-??)
-+
-+- Fix a FOD sandbox escape:
-+    Cooperating Nix derivations could send file descriptors to files in the Nix
-+    store to each other via Unix domain sockets in the abstract namespace. This
-+    allowed one derivation to modify the output of the other derivation, after Nix
-+    has registered the path as "valid" and immutable in the Nix database.
-+    In particular, this allowed the output of fixed-output derivations to be
-+    modified from their expected content. This isn't the case any more.
--- 
-2.42.0
-
diff --git a/nixpkgs/pkgs/tools/package-management/pacman/default.nix b/nixpkgs/pkgs/tools/package-management/pacman/default.nix
index 90252dca9cb2..e3367ef1438d 100644
--- a/nixpkgs/pkgs/tools/package-management/pacman/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/pacman/default.nix
@@ -127,7 +127,7 @@ stdenv.mkDerivation (final: {
   meta = with lib; {
     description = "A simple library-based package manager";
     homepage = "https://archlinux.org/pacman/";
-    changelog = "https://gitlab.archlinux.org/pacman/pacman/-/raw/v${version}/NEWS";
+    changelog = "https://gitlab.archlinux.org/pacman/pacman/-/raw/v${final.version}/NEWS";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     mainProgram = "pacman";
diff --git a/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-audit-plugin.nix b/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-audit-plugin.nix
index 85eb0b5d19b1..6c3f120171be 100644
--- a/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-audit-plugin.nix
+++ b/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-audit-plugin.nix
@@ -10,17 +10,16 @@
 
 buildPythonPackage rec {
   pname = "poetry-audit-plugin";
-  version = "0.3.0";
+  version = "0.4.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
-
-  format = "pyproject";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "opeco17";
     repo = "poetry-audit-plugin";
     rev = "refs/tags/${version}";
-    hash = "sha256-49OnYz3EFiqOe+cLgfynjy14Ve4Ga6OUrLdM8HhZuKQ=";
+    hash = "sha256-kiNtzEup2ygCTk0zk8YV2jxAj6ZzOhP8v0U4FbV15hI=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix b/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix
index b4ede0bdedaa..36929abc9f41 100644
--- a/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix
+++ b/nixpkgs/pkgs/tools/package-management/poetry/plugins/poetry-plugin-export.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "poetry-plugin-export";
-  version = "1.6.0";
+  version = "1.7.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "python-poetry";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-6U96O0mCQpviBr4I67ZfHytsooXG4oCNTx8YqrrIzYo=";
+    hash = "sha256-fmgX1/dVH0e3d7FYhOdOnLtjp0mkkaSZm1YW4gxZr74=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/package-management/wapm/cli/default.nix b/nixpkgs/pkgs/tools/package-management/wapm/cli/default.nix
index f1feebdbb0c4..bd345ca6940d 100644
--- a/nixpkgs/pkgs/tools/package-management/wapm/cli/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/wapm/cli/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A package manager for WebAssembly modules";
+    mainProgram = "wapm";
     homepage = "https://docs.wasmer.io/ecosystem/wapm";
     license = with licenses; [ mit ];
     maintainers = [ maintainers.lucperkins ];
diff --git a/nixpkgs/pkgs/tools/security/2fa/default.nix b/nixpkgs/pkgs/tools/security/2fa/default.nix
index d1d4cc42a1ff..7261eb605c08 100644
--- a/nixpkgs/pkgs/tools/security/2fa/default.nix
+++ b/nixpkgs/pkgs/tools/security/2fa/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://rsc.io/2fa";
     description = "Two-factor authentication on the command line";
+    mainProgram = "2fa";
     license = licenses.bsd3;
     maintainers = with maintainers; [ rvolosatovs ];
   };
diff --git a/nixpkgs/pkgs/tools/security/acltoolkit/default.nix b/nixpkgs/pkgs/tools/security/acltoolkit/default.nix
index 14b19e3cd7b8..b7c42c2a2574 100644
--- a/nixpkgs/pkgs/tools/security/acltoolkit/default.nix
+++ b/nixpkgs/pkgs/tools/security/acltoolkit/default.nix
@@ -38,6 +38,7 @@ python3.pkgs.buildPythonPackage rec {
 
   meta = with lib; {
     description = "ACL abuse swiss-knife";
+    mainProgram = "acltoolkit";
     homepage = "https://github.com/zblurx/acltoolkit";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/adenum/default.nix b/nixpkgs/pkgs/tools/security/adenum/default.nix
index 018fd0e263fc..d547bd5c9ebc 100644
--- a/nixpkgs/pkgs/tools/security/adenum/default.nix
+++ b/nixpkgs/pkgs/tools/security/adenum/default.nix
@@ -40,6 +40,7 @@ python3.pkgs.buildPythonApplication {
 
   meta = with lib; {
     description = "Tool to find misconfiguration through LDAP";
+    mainProgram = "adenum";
     homepage = "https://github.com/SecuProject/ADenum";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/aesfix/default.nix b/nixpkgs/pkgs/tools/security/aesfix/default.nix
index b2eb2e0e96ca..fed9ace264c4 100644
--- a/nixpkgs/pkgs/tools/security/aesfix/default.nix
+++ b/nixpkgs/pkgs/tools/security/aesfix/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Correct bit errors in an AES key schedules";
+    mainProgram = "aesfix";
     homepage = "https://citp.princeton.edu/our-work/memory/";
     maintainers = with maintainers; [ fedx-sudo ];
   };
diff --git a/nixpkgs/pkgs/tools/security/aeskeyfind/default.nix b/nixpkgs/pkgs/tools/security/aeskeyfind/default.nix
index 08b2481ff00d..4ce27f5eca66 100644
--- a/nixpkgs/pkgs/tools/security/aeskeyfind/default.nix
+++ b/nixpkgs/pkgs/tools/security/aeskeyfind/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Locates 128-bit and 256-bit AES keys in a captured memory image";
+    mainProgram = "aeskeyfind";
     homepage = "https://citp.princeton.edu/our-work/memory/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fedx-sudo ];
diff --git a/nixpkgs/pkgs/tools/security/afl/libdislocator.nix b/nixpkgs/pkgs/tools/security/afl/libdislocator.nix
index 400464c00567..1030ffaf9eb8 100644
--- a/nixpkgs/pkgs/tools/security/afl/libdislocator.nix
+++ b/nixpkgs/pkgs/tools/security/afl/libdislocator.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation {
       the odds of bumping into heap-related security bugs in
       several ways.
     '';
+    mainProgram = "get-libdislocator-so";
     license = lib.licenses.asl20;
     maintainers = with maintainers; [ ris ];
   };
diff --git a/nixpkgs/pkgs/tools/security/age-plugin-ledger/default.nix b/nixpkgs/pkgs/tools/security/age-plugin-ledger/default.nix
index 6ed6b526b65d..d3e1e49904ef 100644
--- a/nixpkgs/pkgs/tools/security/age-plugin-ledger/default.nix
+++ b/nixpkgs/pkgs/tools/security/age-plugin-ledger/default.nix
@@ -37,6 +37,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A Ledger Nano plugin for age";
+    mainProgram = "age-plugin-ledger";
     homepage = "https://github.com/Ledger-Donjon/age-plugin-ledger";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ erdnaxe ];
diff --git a/nixpkgs/pkgs/tools/security/age-plugin-tpm/default.nix b/nixpkgs/pkgs/tools/security/age-plugin-tpm/default.nix
index 4885aa326dda..3eef366f8ea8 100644
--- a/nixpkgs/pkgs/tools/security/age-plugin-tpm/default.nix
+++ b/nixpkgs/pkgs/tools/security/age-plugin-tpm/default.nix
@@ -35,6 +35,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "TPM 2.0 plugin for age (This software is experimental, use it at your own risk)";
+    mainProgram = "age-plugin-tpm";
     homepage = "https://github.com/Foxboron/age-plugin-tpm";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/security/age-plugin-yubikey/default.nix b/nixpkgs/pkgs/tools/security/age-plugin-yubikey/default.nix
index 7a3364c8420b..0942848e02e5 100644
--- a/nixpkgs/pkgs/tools/security/age-plugin-yubikey/default.nix
+++ b/nixpkgs/pkgs/tools/security/age-plugin-yubikey/default.nix
@@ -39,6 +39,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "YubiKey plugin for age";
+    mainProgram = "age-plugin-yubikey";
     homepage = "https://github.com/str4d/age-plugin-yubikey";
     changelog = "https://github.com/str4d/age-plugin-yubikey/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ mit asl20 ];
diff --git a/nixpkgs/pkgs/tools/security/aide/default.nix b/nixpkgs/pkgs/tools/security/aide/default.nix
index 0168ddc4cc90..104b5d11217a 100644
--- a/nixpkgs/pkgs/tools/security/aide/default.nix
+++ b/nixpkgs/pkgs/tools/security/aide/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://aide.github.io/";
     description = "A file and directory integrity checker";
+    mainProgram = "aide";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ happysalada ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/security/aiodnsbrute/default.nix b/nixpkgs/pkgs/tools/security/aiodnsbrute/default.nix
index c11255e6ab80..0c2f6512d878 100644
--- a/nixpkgs/pkgs/tools/security/aiodnsbrute/default.nix
+++ b/nixpkgs/pkgs/tools/security/aiodnsbrute/default.nix
@@ -31,6 +31,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "DNS brute force utility";
+    mainProgram = "aiodnsbrute";
     homepage = "https://github.com/blark/aiodnsbrute";
     changelog = "https://github.com/blark/aiodnsbrute/releases/tag/v${version}";
     license = with licenses; [ gpl3Only ];
diff --git a/nixpkgs/pkgs/tools/security/alterx/default.nix b/nixpkgs/pkgs/tools/security/alterx/default.nix
index 9fcdb7378b70..a81d83d2ae31 100644
--- a/nixpkgs/pkgs/tools/security/alterx/default.nix
+++ b/nixpkgs/pkgs/tools/security/alterx/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Fast and customizable subdomain wordlist generator using DSL";
+    mainProgram = "alterx";
     homepage = "https://github.com/projectdiscovery/alterx";
     changelog = "https://github.com/projectdiscovery/alterx/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/amoco/default.nix b/nixpkgs/pkgs/tools/security/amoco/default.nix
index fe16ad9596dd..c78cc8a60576 100644
--- a/nixpkgs/pkgs/tools/security/amoco/default.nix
+++ b/nixpkgs/pkgs/tools/security/amoco/default.nix
@@ -65,6 +65,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for analysing binaries";
+    mainProgram = "amoco";
     homepage = "https://github.com/bdcht/amoco";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/apachetomcatscanner/default.nix b/nixpkgs/pkgs/tools/security/apachetomcatscanner/default.nix
index 41c68aa79792..224924721620 100644
--- a/nixpkgs/pkgs/tools/security/apachetomcatscanner/default.nix
+++ b/nixpkgs/pkgs/tools/security/apachetomcatscanner/default.nix
@@ -36,6 +36,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to scan for Apache Tomcat server vulnerabilities";
+    mainProgram = "ApacheTomcatScanner";
     homepage = "https://github.com/p0dalirius/ApacheTomcatScanner";
     changelog = "https://github.com/p0dalirius/ApacheTomcatScanner/releases/tag/${version}";
     license = with licenses; [ gpl2Only ];
diff --git a/nixpkgs/pkgs/tools/security/argocd-vault-plugin/default.nix b/nixpkgs/pkgs/tools/security/argocd-vault-plugin/default.nix
index 934be7d09942..b80a67792e5b 100644
--- a/nixpkgs/pkgs/tools/security/argocd-vault-plugin/default.nix
+++ b/nixpkgs/pkgs/tools/security/argocd-vault-plugin/default.nix
@@ -39,6 +39,7 @@ buildGoModule rec {
     homepage = "https://argocd-vault-plugin.readthedocs.io";
     changelog = "https://github.com/argoproj-labs/argocd-vault-plugin/releases/tag/v${version}";
     description = "An Argo CD plugin to retrieve secrets from Secret Management tools and inject them into Kubernetes secrets";
+    mainProgram = "argocd-vault-plugin";
     license = licenses.asl20;
     maintainers = with maintainers; [ urandom ];
   };
diff --git a/nixpkgs/pkgs/tools/security/arti/default.nix b/nixpkgs/pkgs/tools/security/arti/default.nix
index ef202fb69eb1..c1e1ae120f97 100644
--- a/nixpkgs/pkgs/tools/security/arti/default.nix
+++ b/nixpkgs/pkgs/tools/security/arti/default.nix
@@ -35,6 +35,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "An implementation of Tor in Rust";
+    mainProgram = "arti";
     homepage = "https://arti.torproject.org/";
     changelog = "https://gitlab.torproject.org/tpo/core/arti/-/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/tools/security/arubaotp-seed-extractor/default.nix b/nixpkgs/pkgs/tools/security/arubaotp-seed-extractor/default.nix
index c2ffef83635d..cd13f891cecc 100644
--- a/nixpkgs/pkgs/tools/security/arubaotp-seed-extractor/default.nix
+++ b/nixpkgs/pkgs/tools/security/arubaotp-seed-extractor/default.nix
@@ -40,6 +40,7 @@ python3Packages.buildPythonApplication {
   meta = with lib; {
     homepage = "https://github.com/andry08/ArubaOTP-seed-extractor";
     description = "Extract TOTP seed instead of using ArubaOTP app";
+    mainProgram = "arubaotp-seed-extractor";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
   };
diff --git a/nixpkgs/pkgs/tools/security/asc-key-to-qr-code-gif/default.nix b/nixpkgs/pkgs/tools/security/asc-key-to-qr-code-gif/default.nix
index 28913c685778..3091a8c91554 100644
--- a/nixpkgs/pkgs/tools/security/asc-key-to-qr-code-gif/default.nix
+++ b/nixpkgs/pkgs/tools/security/asc-key-to-qr-code-gif/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/yishilin14/asc-key-to-qr-code-gif";
     description = "Convert ASCII-armored PGP keys to animated QR code";
+    mainProgram = "asc-to-gif.sh";
     platforms = platforms.unix;
     maintainers = with maintainers; [ asymmetric ];
   };
diff --git a/nixpkgs/pkgs/tools/security/asnmap/default.nix b/nixpkgs/pkgs/tools/security/asnmap/default.nix
index 984f5340eeeb..1c2c52fd0098 100644
--- a/nixpkgs/pkgs/tools/security/asnmap/default.nix
+++ b/nixpkgs/pkgs/tools/security/asnmap/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to gather network ranges using ASN information";
+    mainProgram = "asnmap";
     homepage = "https://github.com/projectdiscovery/asnmap";
     changelog = "https://github.com/projectdiscovery/asnmap/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/atomic-operator/default.nix b/nixpkgs/pkgs/tools/security/atomic-operator/default.nix
index 6db7f0ecdd08..b93b2f809ccd 100644
--- a/nixpkgs/pkgs/tools/security/atomic-operator/default.nix
+++ b/nixpkgs/pkgs/tools/security/atomic-operator/default.nix
@@ -52,6 +52,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to execute Atomic Red Team tests (Atomics)";
+    mainProgram = "atomic-operator";
     homepage = "https://www.atomic-operator.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/authz0/default.nix b/nixpkgs/pkgs/tools/security/authz0/default.nix
index 04d2598fd521..2230fe2e518d 100644
--- a/nixpkgs/pkgs/tools/security/authz0/default.nix
+++ b/nixpkgs/pkgs/tools/security/authz0/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Automated authorization test tool";
+    mainProgram = "authz0";
     homepage = "https://github.com/hahwul/authz0";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/aws-iam-authenticator/default.nix b/nixpkgs/pkgs/tools/security/aws-iam-authenticator/default.nix
index 73750ce03e08..3019a2593640 100644
--- a/nixpkgs/pkgs/tools/security/aws-iam-authenticator/default.nix
+++ b/nixpkgs/pkgs/tools/security/aws-iam-authenticator/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/kubernetes-sigs/aws-iam-authenticator";
     description = "AWS IAM credentials for Kubernetes authentication";
+    mainProgram = "aws-iam-authenticator";
     changelog = "https://github.com/kubernetes-sigs/aws-iam-authenticator/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ srhb ];
diff --git a/nixpkgs/pkgs/tools/security/b2sum/default.nix b/nixpkgs/pkgs/tools/security/b2sum/default.nix
index 581feb28ce08..1ce14a55b079 100644
--- a/nixpkgs/pkgs/tools/security/b2sum/default.nix
+++ b/nixpkgs/pkgs/tools/security/b2sum/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "The b2sum utility is similar to the md5sum or shasum utilities but for BLAKE2";
+    mainProgram = "b2sum";
     homepage = "https://blake2.net";
     license = with licenses; [ asl20 cc0 openssl ];
     maintainers = with maintainers; [ kirelagin ];
diff --git a/nixpkgs/pkgs/tools/security/b3sum/default.nix b/nixpkgs/pkgs/tools/security/b3sum/default.nix
index 858226fb569b..20136f377c50 100644
--- a/nixpkgs/pkgs/tools/security/b3sum/default.nix
+++ b/nixpkgs/pkgs/tools/security/b3sum/default.nix
@@ -2,17 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "b3sum";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchCrate {
     inherit version pname;
-    sha256 = "sha256-yjMuXL0eW+6mm26LgIjD22WyTjb+KMjKRI68mpGGAZA=";
+    sha256 = "sha256-43O/8s6g9mHkmJcxm1czF+tOB22363olfsIB3Sk/QSc=";
   };
 
-  cargoHash = "sha256-Ka+5RKRSVQYoLFXE1bEc6fGFQcbrFTVgi6yAoGIDdUI=";
+  cargoHash = "sha256-NG5LCfsh9O6HEXOB3AN/2rXFIkshNM6WWANraBKuVLw=";
 
   meta = {
     description = "BLAKE3 cryptographic hash function";
+    mainProgram = "b3sum";
     homepage = "https://github.com/BLAKE3-team/BLAKE3/";
     maintainers = with lib.maintainers; [ fpletz ivan ];
     license = with lib.licenses; [ cc0 asl20 ];
diff --git a/nixpkgs/pkgs/tools/security/badchars/default.nix b/nixpkgs/pkgs/tools/security/badchars/default.nix
index 3125ff0c28c9..a6e5666c189f 100644
--- a/nixpkgs/pkgs/tools/security/badchars/default.nix
+++ b/nixpkgs/pkgs/tools/security/badchars/default.nix
@@ -21,6 +21,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "HEX badchar generator for different programming languages";
+    mainProgram = "badchars";
     longDescription = ''
       A HEX bad char generator to instruct encoders such as shikata-ga-nai to
       transform those to other chars.
diff --git a/nixpkgs/pkgs/tools/security/badrobot/default.nix b/nixpkgs/pkgs/tools/security/badrobot/default.nix
index e25e18b5ead2..ad2a0bd29750 100644
--- a/nixpkgs/pkgs/tools/security/badrobot/default.nix
+++ b/nixpkgs/pkgs/tools/security/badrobot/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
     homepage = "https://github.com/controlplaneio/badrobot";
     changelog = "https://github.com/controlplaneio/badrobot/blob/v${version}/CHANGELOG.md";
     description = "Operator Security Audit Tool";
+    mainProgram = "badrobot";
     longDescription = ''
       Badrobot is a Kubernetes Operator audit tool. It statically analyses
       manifests for high risk configurations such as lack of security
diff --git a/nixpkgs/pkgs/tools/security/binbloom/default.nix b/nixpkgs/pkgs/tools/security/binbloom/default.nix
index 0805e7b988d4..ce99de997cc0 100644
--- a/nixpkgs/pkgs/tools/security/binbloom/default.nix
+++ b/nixpkgs/pkgs/tools/security/binbloom/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Raw binary firmware analysis software";
+    mainProgram = "binbloom";
     homepage = "https://github.com/quarkslab/binbloom";
     license = licenses.asl20;
     maintainers = with maintainers; [ erdnaxe ];
diff --git a/nixpkgs/pkgs/tools/security/bmrsa/11.nix b/nixpkgs/pkgs/tools/security/bmrsa/11.nix
index 932566c65060..3ac41d2da482 100644
--- a/nixpkgs/pkgs/tools/security/bmrsa/11.nix
+++ b/nixpkgs/pkgs/tools/security/bmrsa/11.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "RSA utility";
+    mainProgram = "bmrsa";
     homepage = "http://bmrsa.sourceforge.net/";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/security/boofuzz/default.nix b/nixpkgs/pkgs/tools/security/boofuzz/default.nix
index 39b35d6944de..5c2418cad665 100644
--- a/nixpkgs/pkgs/tools/security/boofuzz/default.nix
+++ b/nixpkgs/pkgs/tools/security/boofuzz/default.nix
@@ -56,6 +56,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Network protocol fuzzing tool";
+    mainProgram = "boo";
     homepage = "https://github.com/jtpereyda/boofuzz";
     changelog = "https://github.com/jtpereyda/boofuzz/blob/v${version}/CHANGELOG.rst";
     license = with licenses; [ gpl2Plus ];
diff --git a/nixpkgs/pkgs/tools/security/browserpass/default.nix b/nixpkgs/pkgs/tools/security/browserpass/default.nix
index 1dd2a27f1ec3..b80b513b3d4b 100644
--- a/nixpkgs/pkgs/tools/security/browserpass/default.nix
+++ b/nixpkgs/pkgs/tools/security/browserpass/default.nix
@@ -66,6 +66,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Browserpass native client app";
+    mainProgram = "browserpass";
     homepage = "https://github.com/browserpass/browserpass-native";
     license = licenses.isc;
     maintainers = with maintainers; [ rvolosatovs infinisil ];
diff --git a/nixpkgs/pkgs/tools/security/bruteforce-luks/default.nix b/nixpkgs/pkgs/tools/security/bruteforce-luks/default.nix
index a6e0f3cc104b..56f827a09a4a 100644
--- a/nixpkgs/pkgs/tools/security/bruteforce-luks/default.nix
+++ b/nixpkgs/pkgs/tools/security/bruteforce-luks/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "Cracks passwords of LUKS encrypted volumes";
+    mainProgram = "bruteforce-luks";
     longDescription = ''
       The program tries to decrypt at least one of the key slots by trying
       all the possible passwords. It is especially useful if you know
diff --git a/nixpkgs/pkgs/tools/security/brutespray/default.nix b/nixpkgs/pkgs/tools/security/brutespray/default.nix
index 9b7ad8c1a666..74f49fbab41e 100644
--- a/nixpkgs/pkgs/tools/security/brutespray/default.nix
+++ b/nixpkgs/pkgs/tools/security/brutespray/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/x90skysn3k/brutespray";
     description = "Tool to do brute-forcing from Nmap output";
+    mainProgram = "brutespray";
     longDescription = ''
       This tool automatically attempts default credentials on found services
       directly from Nmap output.
diff --git a/nixpkgs/pkgs/tools/security/buttercup-desktop/default.nix b/nixpkgs/pkgs/tools/security/buttercup-desktop/default.nix
index ffbfe1d3791c..e38aaea42a4b 100644
--- a/nixpkgs/pkgs/tools/security/buttercup-desktop/default.nix
+++ b/nixpkgs/pkgs/tools/security/buttercup-desktop/default.nix
@@ -2,10 +2,10 @@
 
 let
   pname = "buttercup-desktop";
-  version = "2.26.0";
+  version = "2.26.1";
   src = fetchurl {
     url = "https://github.com/buttercup/buttercup-desktop/releases/download/v${version}/Buttercup-linux-x86_64.AppImage";
-    sha256 = "sha256-fsHyHljHk2e/pxzz7jYv639ob0D6gTMA3U4OXxbvYz8=";
+    sha256 = "sha256-usyq9qf6bBJHKreGzKzMdZYNmpZGtkUQScHyk1nvFQI=";
   };
   appimageContents = appimageTools.extractType2 { inherit pname src version; };
 
@@ -24,6 +24,7 @@ in appimageTools.wrapType2 {
 
   meta = with lib; {
     description = "Cross-Platform Passwords & Secrets Vault";
+    mainProgram = "buttercup-desktop";
     homepage = "https://buttercup.pw";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
diff --git a/nixpkgs/pkgs/tools/security/cariddi/default.nix b/nixpkgs/pkgs/tools/security/cariddi/default.nix
index 6a41ce214d1d..76a81a85431e 100644
--- a/nixpkgs/pkgs/tools/security/cariddi/default.nix
+++ b/nixpkgs/pkgs/tools/security/cariddi/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Crawler for URLs and endpoints";
+    mainProgram = "cariddi";
     homepage = "https://github.com/edoardottt/cariddi";
     changelog = "https://github.com/edoardottt/cariddi/releases/tag/v${version}";
     license = with licenses; [ gpl3Plus ];
diff --git a/nixpkgs/pkgs/tools/security/cdxgen/default.nix b/nixpkgs/pkgs/tools/security/cdxgen/default.nix
index 858682ed27f1..351fee2ff2af 100644
--- a/nixpkgs/pkgs/tools/security/cdxgen/default.nix
+++ b/nixpkgs/pkgs/tools/security/cdxgen/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "cdxgen";
-  version = "10.2.1";
+  version = "10.2.4";
 
   src = fetchFromGitHub {
     owner = "AppThreat";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-X359aLnC0FAiS3pOBQsjmdik01zjZayTvwBLk3sj8ew=";
+    sha256 = "sha256-fou0BfQfL66Iv+STY0JcRqu22XTgA9nSOse1LJYl3vs=";
   };
 
-  npmDepsHash = "sha256-1vPdKD1Ul+6hq8dYxscL4YLmefnP2zOWRtQWyO6Q0eQ=";
+  npmDepsHash = "sha256-ISmNasK44T21HagHKrX1LyCFVm0GF0CsTwIIi3n8h2o=";
 
   dontNpmBuild = true;
 
diff --git a/nixpkgs/pkgs/tools/security/certdump/default.nix b/nixpkgs/pkgs/tools/security/certdump/default.nix
index 7b5b6744b345..789f4fd57370 100644
--- a/nixpkgs/pkgs/tools/security/certdump/default.nix
+++ b/nixpkgs/pkgs/tools/security/certdump/default.nix
@@ -33,6 +33,7 @@ buildDotnetModule rec {
 
   meta = with lib; {
     description = "Dump certificates from PE files in different formats";
+    mainProgram = "CertDump";
     homepage = "https://github.com/secana/CertDump";
     longDescription = ''
       Cross-Platform tool to dump the signing certificate from a Portable Executable (PE) file.
diff --git a/nixpkgs/pkgs/tools/security/certgraph/default.nix b/nixpkgs/pkgs/tools/security/certgraph/default.nix
index da8f8358d799..3af3078d6b8b 100644
--- a/nixpkgs/pkgs/tools/security/certgraph/default.nix
+++ b/nixpkgs/pkgs/tools/security/certgraph/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Intelligence tool to crawl the graph of certificate alternate names";
+    mainProgram = "certgraph";
     homepage = "https://github.com/lanrat/certgraph";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/certinfo/default.nix b/nixpkgs/pkgs/tools/security/certinfo/default.nix
index e0d2a3998a25..ea94ff3762b7 100644
--- a/nixpkgs/pkgs/tools/security/certinfo/default.nix
+++ b/nixpkgs/pkgs/tools/security/certinfo/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Print x509 certificate info";
+    mainProgram = "certinfo";
     homepage = "https://github.com/pete911/certinfo";
     license = licenses.mit;
     maintainers = with maintainers; [ jakuzure ];
diff --git a/nixpkgs/pkgs/tools/security/certstrap/default.nix b/nixpkgs/pkgs/tools/security/certstrap/default.nix
index 8808b98985f8..576176355392 100644
--- a/nixpkgs/pkgs/tools/security/certstrap/default.nix
+++ b/nixpkgs/pkgs/tools/security/certstrap/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tools to bootstrap CAs, certificate requests, and signed certificates";
+    mainProgram = "certstrap";
     longDescription = ''
       A simple certificate manager written in Go, to bootstrap your own
       certificate authority and public key infrastructure. Adapted from etcd-ca.
diff --git a/nixpkgs/pkgs/tools/security/certsync/default.nix b/nixpkgs/pkgs/tools/security/certsync/default.nix
index 15878c7826fb..e12868ac7f9c 100644
--- a/nixpkgs/pkgs/tools/security/certsync/default.nix
+++ b/nixpkgs/pkgs/tools/security/certsync/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "certsync";
-  version = "unstable-2023-04-14";
-  format = "pyproject";
+  version = "1.5-unstable-2024-03-08";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "zblurx";
     repo = "certsync";
-    rev = "f3c8b61f0967a6403d4c592dcbfa8921682452a6";
-    hash = "sha256-7Pzss83jf3zKmgQZki18R47OWn5VniZZ/d4N8JgZs+0=";
+    rev = "712e34c54a63537efd630561aa55dc9d35962c3f";
+    hash = "sha256-YkxEExeu3sBJ93WJGtU5oe3rDS0Ki88vAeGpE23xRwo=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
@@ -33,5 +33,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/zblurx/certsync";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "certsync";
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/cewl/default.nix b/nixpkgs/pkgs/tools/security/cewl/default.nix
index 06d983c14e36..dc1ad37513da 100644
--- a/nixpkgs/pkgs/tools/security/cewl/default.nix
+++ b/nixpkgs/pkgs/tools/security/cewl/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Custom wordlist generator";
+    mainProgram = "cewl";
     homepage = "https://digi.ninja/projects/cewl.php/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ elohmeier ];
diff --git a/nixpkgs/pkgs/tools/security/cfripper/default.nix b/nixpkgs/pkgs/tools/security/cfripper/default.nix
index 51fa61067425..edacd10e8b05 100644
--- a/nixpkgs/pkgs/tools/security/cfripper/default.nix
+++ b/nixpkgs/pkgs/tools/security/cfripper/default.nix
@@ -65,6 +65,7 @@ in python.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for analysing CloudFormation templates";
+    mainProgram = "cfripper";
     homepage = "https://github.com/Skyscanner/cfripper";
     changelog = "https://github.com/Skyscanner/cfripper/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/tools/security/cfssl/default.nix b/nixpkgs/pkgs/tools/security/cfssl/default.nix
index 903b52f8bd0c..cfc608820aaf 100644
--- a/nixpkgs/pkgs/tools/security/cfssl/default.nix
+++ b/nixpkgs/pkgs/tools/security/cfssl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cfssl";
-  version = "1.6.4";
+  version = "1.6.5";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cfssl";
     rev = "v${version}";
-    sha256 = "sha256-QVKgfwyHzN6n8CnvGT9gg2ncfaDo+Pe4IAQhm4gNiz4=";
+    sha256 = "sha256-Xczpv6tLJiy2dXoGJ0QUmXwOn0p6S+lm2oz61oytQec=";
   };
 
   subPackages = [
diff --git a/nixpkgs/pkgs/tools/security/chain-bench/default.nix b/nixpkgs/pkgs/tools/security/chain-bench/default.nix
index 9705440dfdf8..883674951b14 100644
--- a/nixpkgs/pkgs/tools/security/chain-bench/default.nix
+++ b/nixpkgs/pkgs/tools/security/chain-bench/default.nix
@@ -43,6 +43,7 @@ buildGoModule rec {
     homepage = "https://github.com/aquasecurity/chain-bench";
     changelog = "https://github.com/aquasecurity/chain-bench/releases/tag/v${version}";
     description = "An open-source tool for auditing your software supply chain stack for security compliance based on a new CIS Software Supply Chain benchmark";
+    mainProgram = "chain-bench";
     longDescription = ''
       Chain-bench is an open-source tool for auditing your software supply chain
       stack for security compliance based on a new CIS Software Supply Chain
diff --git a/nixpkgs/pkgs/tools/security/chainsaw/default.nix b/nixpkgs/pkgs/tools/security/chainsaw/default.nix
index b939e15263da..2bc06428e781 100644
--- a/nixpkgs/pkgs/tools/security/chainsaw/default.nix
+++ b/nixpkgs/pkgs/tools/security/chainsaw/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Rapidly Search and Hunt through Windows Forensic Artefacts";
+    mainProgram = "chainsaw";
     homepage = "https://github.com/WithSecureLabs/chainsaw";
     changelog = "https://github.com/WithSecureLabs/chainsaw/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/security/cherrybomb/default.nix b/nixpkgs/pkgs/tools/security/cherrybomb/default.nix
index 4bb975d3394c..6f8fc1d2a8e3 100644
--- a/nixpkgs/pkgs/tools/security/cherrybomb/default.nix
+++ b/nixpkgs/pkgs/tools/security/cherrybomb/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A CLI tool that helps you avoid undefined user behavior by validating your API specifications";
+    mainProgram = "cherrybomb";
     homepage = "https://github.com/blst-security/cherrybomb";
     changelog = "https://github.com/blst-security/cherrybomb/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/security/chrome-token-signing/default.nix b/nixpkgs/pkgs/tools/security/chrome-token-signing/default.nix
index 8081c7ef6eb5..5f9618d0f177 100644
--- a/nixpkgs/pkgs/tools/security/chrome-token-signing/default.nix
+++ b/nixpkgs/pkgs/tools/security/chrome-token-signing/default.nix
@@ -31,6 +31,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Chrome and Firefox extension for signing with your eID on the web";
+    mainProgram = "chrome-token-signing";
     homepage = "https://github.com/open-eid/chrome-token-signing/wiki";
     license = licenses.lgpl21;
     maintainers = [ maintainers.mmahut ];
diff --git a/nixpkgs/pkgs/tools/security/cirrusgo/default.nix b/nixpkgs/pkgs/tools/security/cirrusgo/default.nix
index 61c8e6b8b28f..d7301dd604bd 100644
--- a/nixpkgs/pkgs/tools/security/cirrusgo/default.nix
+++ b/nixpkgs/pkgs/tools/security/cirrusgo/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to scan SAAS and PAAS applications";
+    mainProgram = "cirrusgo";
     homepage = "https://github.com/Ph33rr/cirrusgo";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/clairvoyance/default.nix b/nixpkgs/pkgs/tools/security/clairvoyance/default.nix
index ba88338347fc..ca3086047494 100644
--- a/nixpkgs/pkgs/tools/security/clairvoyance/default.nix
+++ b/nixpkgs/pkgs/tools/security/clairvoyance/default.nix
@@ -45,6 +45,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to obtain GraphQL API schemas";
+    mainProgram = "clairvoyance";
     homepage = "https://github.com/nikitastupin/clairvoyance";
     changelog = "https://github.com/nikitastupin/clairvoyance/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/tools/security/cliam/default.nix b/nixpkgs/pkgs/tools/security/cliam/default.nix
index 400cf8b7e7c5..1089a352d54c 100644
--- a/nixpkgs/pkgs/tools/security/cliam/default.nix
+++ b/nixpkgs/pkgs/tools/security/cliam/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Cloud agnostic IAM permissions enumerator";
+    mainProgram = "cliam";
     homepage = "https://github.com/securisec/cliam";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/cloudbrute/default.nix b/nixpkgs/pkgs/tools/security/cloudbrute/default.nix
index 677c14021509..cae471ce9aec 100644
--- a/nixpkgs/pkgs/tools/security/cloudbrute/default.nix
+++ b/nixpkgs/pkgs/tools/security/cloudbrute/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Cloud enumeration tool";
+    mainProgram = "cloudbrute";
     longDescription = ''
       A tool to find a company (target) infrastructure, files, and apps on
       the top cloud providers (Amazon, Google, Microsoft, DigitalOcean,
diff --git a/nixpkgs/pkgs/tools/security/cloudfox/default.nix b/nixpkgs/pkgs/tools/security/cloudfox/default.nix
index 48d28257d9f4..995ee7a326a9 100644
--- a/nixpkgs/pkgs/tools/security/cloudfox/default.nix
+++ b/nixpkgs/pkgs/tools/security/cloudfox/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "cloudfox";
-  version = "1.13.3";
+  version = "1.13.4";
 
   src = fetchFromGitHub {
     owner = "BishopFox";
-    repo = pname;
+    repo = "cloudfox";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Sq3ARcAK1EFbK6Y+pSCg8ayhVmnEmVQWF0eAiVhJNPs=";
+    hash = "sha256-nN/gSvAwKjfZulqH4caGoJmzlY0ik8JrFReuvYWwZTE=";
   };
 
-  vendorHash = "sha256-qPIMmyKTmZEmxlLLftRMnBXvo22WFROYlCAAsAb7jDg=";
+  vendorHash = "sha256-aRbGBEci3QT1mH+yaOUVynPysJ1za6CaoLGppJaa94c=";
 
   ldflags = [
     "-w"
@@ -26,6 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool for situational awareness of cloud penetration tests";
+    mainProgram = "cloudfox";
     homepage = "https://github.com/BishopFox/cloudfox";
     changelog = "https://github.com/BishopFox/cloudfox/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/cloudhunter/default.nix b/nixpkgs/pkgs/tools/security/cloudhunter/default.nix
index 206879d53759..7fdfa44031d1 100644
--- a/nixpkgs/pkgs/tools/security/cloudhunter/default.nix
+++ b/nixpkgs/pkgs/tools/security/cloudhunter/default.nix
@@ -43,6 +43,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Cloud bucket scanner";
+    mainProgram = "cloudhunter";
     homepage = "https://github.com/belane/CloudHunter";
     changelog = "https://github.com/belane/CloudHunter/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/security/cloudlist/default.nix b/nixpkgs/pkgs/tools/security/cloudlist/default.nix
index fa41327a8cf5..ab849a688a29 100644
--- a/nixpkgs/pkgs/tools/security/cloudlist/default.nix
+++ b/nixpkgs/pkgs/tools/security/cloudlist/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool for listing assets from multiple cloud providers";
+    mainProgram = "cloudlist";
     homepage = "https://github.com/projectdiscovery/cloudlist";
     changelog = "https://github.com/projectdiscovery/cloudlist/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/cmospwd/default.nix b/nixpkgs/pkgs/tools/security/cmospwd/default.nix
index e80b7256e50c..9243afa1aad7 100644
--- a/nixpkgs/pkgs/tools/security/cmospwd/default.nix
+++ b/nixpkgs/pkgs/tools/security/cmospwd/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Decrypt password stored in cmos used to access BIOS SETUP";
+    mainProgram = "cmospwd";
     homepage = "https://www.cgsecurity.org/wiki/CmosPwd";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ t4ccer ];
diff --git a/nixpkgs/pkgs/tools/security/cnquery/default.nix b/nixpkgs/pkgs/tools/security/cnquery/default.nix
index b418d4a79a04..7fac37bd02f3 100644
--- a/nixpkgs/pkgs/tools/security/cnquery/default.nix
+++ b/nixpkgs/pkgs/tools/security/cnquery/default.nix
@@ -5,18 +5,18 @@
 
 buildGoModule rec {
   pname = "cnquery";
-  version = "10.2.0";
+  version = "10.8.4";
 
   src = fetchFromGitHub {
     owner = "mondoohq";
     repo = "cnquery";
     rev = "v${version}";
-    hash = "sha256-bz4a4+mgssrRBthkN87aYxlZV6as2uocFvBKrKLmy8A=";
+    hash = "sha256-YzoUl7dfmJpTAdJq2o8DrgRKvRoLcyIWiLUD7e7UOMk=";
   };
 
   subPackages = [ "apps/cnquery" ];
 
-  vendorHash = "sha256-vq6R2FgvoET8SLTpktGLoFzZHqnmizDp0fWU7kqlLgU=";
+  vendorHash = "sha256-FWPhKDndu+QNxERYc3aQCKAYiSR0BTrZOd3ZW8aG4HU=";
 
   meta = with lib; {
     description = "cloud-native, graph-based asset inventory";
diff --git a/nixpkgs/pkgs/tools/security/cnspec/default.nix b/nixpkgs/pkgs/tools/security/cnspec/default.nix
index d6393efc753e..b37f05e779cc 100644
--- a/nixpkgs/pkgs/tools/security/cnspec/default.nix
+++ b/nixpkgs/pkgs/tools/security/cnspec/default.nix
@@ -5,18 +5,18 @@
 
 buildGoModule rec {
   pname = "cnspec";
-  version = "10.6.1";
+  version = "10.8.4";
 
   src = fetchFromGitHub {
     owner = "mondoohq";
     repo = "cnspec";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wQ11ZHyUh1bSrvWQLTSyOc+EtFp4QS9zcjNz1S+UP7Y=";
+    hash = "sha256-emY8y+OKk052o5LGhHMra7CTpbmS/U+5sjWIYR7DRsA=";
   };
 
   proxyVendor = true;
 
-  vendorHash = "sha256-Z7zPvm3CjHnmGdTvO8ETwgRijcRyGReZ6ba7llOkyME=";
+  vendorHash = "sha256-W39Ccc5UU+K+W/h/R1vrB1lcJXKZs8gbfxmb99vGEfM=";
 
   subPackages = [
     "apps/cnspec"
diff --git a/nixpkgs/pkgs/tools/security/coercer/default.nix b/nixpkgs/pkgs/tools/security/coercer/default.nix
index f380d130bb07..e0d921e62e2d 100644
--- a/nixpkgs/pkgs/tools/security/coercer/default.nix
+++ b/nixpkgs/pkgs/tools/security/coercer/default.nix
@@ -41,6 +41,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to automatically coerce a Windows server";
+    mainProgram = "coercer";
     homepage = "https://github.com/p0dalirius/Coercer";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/commix/default.nix b/nixpkgs/pkgs/tools/security/commix/default.nix
index b4c16376d8da..6197b59172ca 100644
--- a/nixpkgs/pkgs/tools/security/commix/default.nix
+++ b/nixpkgs/pkgs/tools/security/commix/default.nix
@@ -36,6 +36,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Automated Command Injection Exploitation Tool";
+    mainProgram = "commix";
     homepage = "https://github.com/commixproject/commix";
     changelog = "https://github.com/commixproject/commix/releases/tag/v${version}";
     license = with licenses; [ gpl3Plus ];
diff --git a/nixpkgs/pkgs/tools/security/cosign/default.nix b/nixpkgs/pkgs/tools/security/cosign/default.nix
index 072b8e4ffb52..f2b9a5ed254d 100644
--- a/nixpkgs/pkgs/tools/security/cosign/default.nix
+++ b/nixpkgs/pkgs/tools/security/cosign/default.nix
@@ -72,6 +72,7 @@ buildGoModule rec {
     homepage = "https://github.com/sigstore/cosign";
     changelog = "https://github.com/sigstore/cosign/releases/tag/v${version}";
     description = "Container Signing CLI with support for ephemeral keys and Sigstore signing";
+    mainProgram = "cosign";
     license = licenses.asl20;
     maintainers = with maintainers; [ lesuisse jk developer-guy ];
   };
diff --git a/nixpkgs/pkgs/tools/security/coze/default.nix b/nixpkgs/pkgs/tools/security/coze/default.nix
index 5fbd906fd87e..ca7b8f3d1d7e 100644
--- a/nixpkgs/pkgs/tools/security/coze/default.nix
+++ b/nixpkgs/pkgs/tools/security/coze/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI client for Coze, a cryptographic JSON messaging specification";
+    mainProgram = "coze";
     homepage = "https://github.com/Cyphrme/coze_cli";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ qbit ];
diff --git a/nixpkgs/pkgs/tools/security/crackql/default.nix b/nixpkgs/pkgs/tools/security/crackql/default.nix
index 6a8e95ec57f2..cb3ecc1cb0a7 100644
--- a/nixpkgs/pkgs/tools/security/crackql/default.nix
+++ b/nixpkgs/pkgs/tools/security/crackql/default.nix
@@ -35,6 +35,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "GraphQL password brute-force and fuzzing utility";
+    mainProgram = "crackql";
     homepage = "https://github.com/nicholasaleks/CrackQL";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/crackxls/default.nix b/nixpkgs/pkgs/tools/security/crackxls/default.nix
index f3c1745321eb..7ff6de5deff0 100644
--- a/nixpkgs/pkgs/tools/security/crackxls/default.nix
+++ b/nixpkgs/pkgs/tools/security/crackxls/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/GavinSmith0123/crackxls2003/";
     description = "Used to break the encryption on old Microsoft Excel and Microsoft Word files";
+    mainProgram = "crackxls2003";
     platforms = platforms.linux;
     license = licenses.gpl3;
   };
diff --git a/nixpkgs/pkgs/tools/security/credential-detector/default.nix b/nixpkgs/pkgs/tools/security/credential-detector/default.nix
index fd3e40b6536c..1297d158efe5 100644
--- a/nixpkgs/pkgs/tools/security/credential-detector/default.nix
+++ b/nixpkgs/pkgs/tools/security/credential-detector/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to detect potentially hard-coded credentials";
+    mainProgram = "credential-detector";
     homepage = "https://github.com/ynori7/credential-detector";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/creds/default.nix b/nixpkgs/pkgs/tools/security/creds/default.nix
index 2f2962616d7c..ed34ad0df7c2 100644
--- a/nixpkgs/pkgs/tools/security/creds/default.nix
+++ b/nixpkgs/pkgs/tools/security/creds/default.nix
@@ -35,6 +35,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to search a collection of default credentials";
+    mainProgram = "creds";
     homepage = "https://github.com/ihebski/DefaultCreds-cheat-sheet";
     changelog = "https://github.com/ihebski/DefaultCreds-cheat-sheet/releases/tag/creds-${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/credslayer/default.nix b/nixpkgs/pkgs/tools/security/credslayer/default.nix
index 7d9d67577930..f09a86bc613a 100644
--- a/nixpkgs/pkgs/tools/security/credslayer/default.nix
+++ b/nixpkgs/pkgs/tools/security/credslayer/default.nix
@@ -51,6 +51,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Extract credentials and other useful info from network captures";
+    mainProgram = "credslayer";
     homepage = "https://github.com/ShellCode33/CredSLayer";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/crlfsuite/default.nix b/nixpkgs/pkgs/tools/security/crlfsuite/default.nix
index bc375f03c0c4..dfd1c7098c2f 100644
--- a/nixpkgs/pkgs/tools/security/crlfsuite/default.nix
+++ b/nixpkgs/pkgs/tools/security/crlfsuite/default.nix
@@ -29,6 +29,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "CRLF injection (HTTP Response Splitting) scanner";
+    mainProgram = "crlfsuite";
     homepage = "https://github.com/Nefcore/CRLFsuite";
     license = licenses.mit;
     maintainers = with maintainers; [ c0bw3b fab ];
diff --git a/nixpkgs/pkgs/tools/security/crlfuzz/default.nix b/nixpkgs/pkgs/tools/security/crlfuzz/default.nix
index f28f96e5f4cd..ab2ee1e7a46e 100644
--- a/nixpkgs/pkgs/tools/security/crlfuzz/default.nix
+++ b/nixpkgs/pkgs/tools/security/crlfuzz/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to scan for CRLF vulnerability";
+    mainProgram = "crlfuzz";
     homepage = "https://github.com/dwisiswant0/crlfuzz";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/crowbar/default.nix b/nixpkgs/pkgs/tools/security/crowbar/default.nix
index e58f77457de2..095004ab76df 100644
--- a/nixpkgs/pkgs/tools/security/crowbar/default.nix
+++ b/nixpkgs/pkgs/tools/security/crowbar/default.nix
@@ -36,6 +36,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     homepage = "https://github.com/galkan/crowbar";
     description = "A brute forcing tool that can be used during penetration tests";
+    mainProgram = "crowbar";
     license = licenses.mit;
     maintainers = with maintainers; [ pamplemousse ];
   };
diff --git a/nixpkgs/pkgs/tools/security/crunch/default.nix b/nixpkgs/pkgs/tools/security/crunch/default.nix
index d287fb32fb67..146a67605847 100644
--- a/nixpkgs/pkgs/tools/security/crunch/default.nix
+++ b/nixpkgs/pkgs/tools/security/crunch/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Wordlist generator";
+    mainProgram = "crunch";
     homepage = "https://sourceforge.net/projects/crunch-wordlist/";
     platforms = platforms.unix;
     license = with licenses; [ gpl2Only ];
diff --git a/nixpkgs/pkgs/tools/security/cryptomator/default.nix b/nixpkgs/pkgs/tools/security/cryptomator/default.nix
index 85ce0c879792..39654ae0ceaf 100644
--- a/nixpkgs/pkgs/tools/security/cryptomator/default.nix
+++ b/nixpkgs/pkgs/tools/security/cryptomator/default.nix
@@ -85,6 +85,7 @@ mavenJdk.buildMavenPackage rec {
 
   meta = with lib; {
     description = "Free client-side encryption for your cloud files";
+    mainProgram = "cryptomator";
     homepage = "https://cryptomator.org";
     sourceProvenance = with sourceTypes; [
       fromSource
diff --git a/nixpkgs/pkgs/tools/security/decoder/default.nix b/nixpkgs/pkgs/tools/security/decoder/default.nix
index 76dd3003d500..1463e132bb72 100644
--- a/nixpkgs/pkgs/tools/security/decoder/default.nix
+++ b/nixpkgs/pkgs/tools/security/decoder/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/PeterPawn/decoder";
     description = ''"secrets" decoding for FRITZ!OS devices'';
+    mainProgram = "decoder";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ Luflosi ];
diff --git a/nixpkgs/pkgs/tools/security/deepsecrets/default.nix b/nixpkgs/pkgs/tools/security/deepsecrets/default.nix
index c509311f3a6d..4fa86da7f913 100644
--- a/nixpkgs/pkgs/tools/security/deepsecrets/default.nix
+++ b/nixpkgs/pkgs/tools/security/deepsecrets/default.nix
@@ -42,6 +42,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Secrets scanner that understands code";
+    mainProgram = "deepsecrets";
     homepage = "https://github.com/avito-tech/deepsecrets";
     changelog = "https://github.com/avito-tech/deepsecrets/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/dieharder/default.nix b/nixpkgs/pkgs/tools/security/dieharder/default.nix
index 51370ad8dcc2..716b3266faee 100644
--- a/nixpkgs/pkgs/tools/security/dieharder/default.nix
+++ b/nixpkgs/pkgs/tools/security/dieharder/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Random Number Generator test suite";
+    mainProgram = "dieharder";
     homepage = "https://webhome.phy.duke.edu/~rgb/General/dieharder.php";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ zhaofengli ];
diff --git a/nixpkgs/pkgs/tools/security/dirstalk/default.nix b/nixpkgs/pkgs/tools/security/dirstalk/default.nix
index 1397a0b8aa9e..d0cdc4b48134 100644
--- a/nixpkgs/pkgs/tools/security/dirstalk/default.nix
+++ b/nixpkgs/pkgs/tools/security/dirstalk/default.nix
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to brute force paths on web servers";
+    mainProgram = "dirstalk";
     homepage = "https://github.com/stefanoj3/dirstalk";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/dismap/default.nix b/nixpkgs/pkgs/tools/security/dismap/default.nix
index 52e046aa80c1..d80e853dae62 100644
--- a/nixpkgs/pkgs/tools/security/dismap/default.nix
+++ b/nixpkgs/pkgs/tools/security/dismap/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Asset discovery and identification tools";
+    mainProgram = "dismap";
     homepage = "https://github.com/zhzyker/dismap";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/dnsenum/default.nix b/nixpkgs/pkgs/tools/security/dnsenum/default.nix
index a24fc96621f1..826ebec015e4 100644
--- a/nixpkgs/pkgs/tools/security/dnsenum/default.nix
+++ b/nixpkgs/pkgs/tools/security/dnsenum/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/fwaeytens/dnsenum";
     description = "A tool to enumerate DNS information";
+    mainProgram = "dnsenum";
     maintainers = with maintainers; [ c0bw3b ];
     license = licenses.gpl2Plus;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/security/dnspeep/default.nix b/nixpkgs/pkgs/tools/security/dnspeep/default.nix
index 978ec5ed2f8b..73edd9724a0a 100644
--- a/nixpkgs/pkgs/tools/security/dnspeep/default.nix
+++ b/nixpkgs/pkgs/tools/security/dnspeep/default.nix
@@ -23,6 +23,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Spy on the DNS queries your computer is making";
+    mainProgram = "dnspeep";
     homepage = "https://github.com/jvns/dnspeep";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/tools/security/dnsrecon/default.nix b/nixpkgs/pkgs/tools/security/dnsrecon/default.nix
index 65fae4928c6f..4fdbad950ab0 100644
--- a/nixpkgs/pkgs/tools/security/dnsrecon/default.nix
+++ b/nixpkgs/pkgs/tools/security/dnsrecon/default.nix
@@ -42,6 +42,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "DNS Enumeration script";
+    mainProgram = "dnsrecon";
     homepage = "https://github.com/darkoperator/dnsrecon";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ c0bw3b fab ];
diff --git a/nixpkgs/pkgs/tools/security/doas/default.nix b/nixpkgs/pkgs/tools/security/doas/default.nix
index 03268bc98479..2864a1edcf4d 100644
--- a/nixpkgs/pkgs/tools/security/doas/default.nix
+++ b/nixpkgs/pkgs/tools/security/doas/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Executes the given command as another user";
+    mainProgram = "doas";
     homepage = "https://github.com/Duncaen/OpenDoas";
     license = licenses.isc;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/security/dontgo403/default.nix b/nixpkgs/pkgs/tools/security/dontgo403/default.nix
index 84e7667377b7..7fab0dac0425 100644
--- a/nixpkgs/pkgs/tools/security/dontgo403/default.nix
+++ b/nixpkgs/pkgs/tools/security/dontgo403/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "dontgo403";
-  version = "1.0.0";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "devploit";
     repo = "dontgo403";
     rev = "refs/tags/${version}";
-    hash = "sha256-znmPXue+pzv7vAKnIYsjJQQGMeBETH+ekyVKGz9wRik=";
+    hash = "sha256-qA1i8l2oBQQ5IF8ho3K2k+TAndUTFGwb2NfhyFqfKzU=";
   };
 
   vendorHash = "sha256-IGnTbuaQH8A6aKyahHMd2RyFRh4WxZ3Vx/A9V3uelRg=";
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to bypass 40X response codes";
+    mainProgram = "nomore403";
     homepage = "https://github.com/devploit/dontgo403";
     changelog = "https://github.com/devploit/dontgo403/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/security/doona/default.nix b/nixpkgs/pkgs/tools/security/doona/default.nix
index e0f459ad7453..2598f2ecbb96 100644
--- a/nixpkgs/pkgs/tools/security/doona/default.nix
+++ b/nixpkgs/pkgs/tools/security/doona/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/wireghoul/doona";
     description = "A fork of the Bruteforce Exploit Detector Tool (BED)";
+    mainProgram = "doona";
     longDescription = ''
       A fork of the Bruteforce Exploit Detector Tool (BED).
       BED is a program which is designed to check daemons for potential buffer overflows, format string bugs etc.
diff --git a/nixpkgs/pkgs/tools/security/doppler/default.nix b/nixpkgs/pkgs/tools/security/doppler/default.nix
index 4707240857fc..1e860abc57cd 100644
--- a/nixpkgs/pkgs/tools/security/doppler/default.nix
+++ b/nixpkgs/pkgs/tools/security/doppler/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "The official CLI for interacting with your Doppler Enclave secrets and configuration";
+    mainProgram = "doppler";
     homepage = "https://doppler.com";
     license = licenses.asl20;
     maintainers = with maintainers; [ lucperkins ];
diff --git a/nixpkgs/pkgs/tools/security/dorkscout/default.nix b/nixpkgs/pkgs/tools/security/dorkscout/default.nix
index e5b5057c6089..57ba965033bb 100644
--- a/nixpkgs/pkgs/tools/security/dorkscout/default.nix
+++ b/nixpkgs/pkgs/tools/security/dorkscout/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to automate the work with Google dorks";
+    mainProgram = "dorkscout";
     homepage = "https://github.com/R4yGM/dorkscout";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/earlybird/default.nix b/nixpkgs/pkgs/tools/security/earlybird/default.nix
index c7cb35fe335c..d5f001fc995a 100644
--- a/nixpkgs/pkgs/tools/security/earlybird/default.nix
+++ b/nixpkgs/pkgs/tools/security/earlybird/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A sensitive data detection tool capable of scanning source code repositories for passwords, key files, and more";
+    mainProgram = "earlybird";
     homepage = "https://github.com/americanexpress/earlybird";
     changelog = "https://github.com/americanexpress/earlybird/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/security/ec2stepshell/default.nix b/nixpkgs/pkgs/tools/security/ec2stepshell/default.nix
index ff6ee22b08eb..6b5031ffebe2 100644
--- a/nixpkgs/pkgs/tools/security/ec2stepshell/default.nix
+++ b/nixpkgs/pkgs/tools/security/ec2stepshell/default.nix
@@ -38,6 +38,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "AWS post-exploitation tool";
+    mainProgram = "ec2stepshell";
     homepage = "https://github.com/saw-your-packet/EC2StepShell";
     changelog = "https://github.com/saw-your-packet/EC2StepShell/blob/${version}/CHANGELOG.txt";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/ecdsatool/default.nix b/nixpkgs/pkgs/tools/security/ecdsatool/default.nix
index 0498b758c1d3..aa55facfd8e0 100644
--- a/nixpkgs/pkgs/tools/security/ecdsatool/default.nix
+++ b/nixpkgs/pkgs/tools/security/ecdsatool/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Create and manipulate ECC NISTP256 keypairs";
+    mainProgram = "ecdsatool";
     homepage = "https://github.com/kaniini/ecdsatool/";
     license = with licenses; [free];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/security/enc/default.nix b/nixpkgs/pkgs/tools/security/enc/default.nix
index ffacccf6a311..c5f4d62586c5 100644
--- a/nixpkgs/pkgs/tools/security/enc/default.nix
+++ b/nixpkgs/pkgs/tools/security/enc/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
     homepage = "https://github.com/life4/enc";
     changelog = "https://github.com/life4/enc/releases/tag/v${version}";
     description = "A modern and friendly alternative to GnuPG";
+    mainProgram = "enc";
     longDescription = ''
       Enc is a CLI tool for encryption, a modern and friendly alternative to GnuPG.
       It is easy to use, secure by default and can encrypt and decrypt files using password or encryption keys,
diff --git a/nixpkgs/pkgs/tools/security/enchive/default.nix b/nixpkgs/pkgs/tools/security/enchive/default.nix
index 960ef251b1cd..8db8f466f9ae 100644
--- a/nixpkgs/pkgs/tools/security/enchive/default.nix
+++ b/nixpkgs/pkgs/tools/security/enchive/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Encrypted personal archives";
+    mainProgram = "enchive";
     homepage = "https://github.com/skeeto/enchive";
     license = lib.licenses.unlicense;
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/tools/security/enum4linux-ng/default.nix b/nixpkgs/pkgs/tools/security/enum4linux-ng/default.nix
index d30bcbf665d4..ee3ed2e8154d 100644
--- a/nixpkgs/pkgs/tools/security/enum4linux-ng/default.nix
+++ b/nixpkgs/pkgs/tools/security/enum4linux-ng/default.nix
@@ -30,6 +30,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Windows/Samba enumeration tool";
+    mainProgram = "enum4linux-ng";
     longDescription = ''
       enum4linux-ng.py is a rewrite of Mark Lowe's enum4linux.pl, a tool for
       enumerating information from Windows and Samba systems.
diff --git a/nixpkgs/pkgs/tools/security/enum4linux/default.nix b/nixpkgs/pkgs/tools/security/enum4linux/default.nix
index b6da742dc6fa..dd054b58caa5 100644
--- a/nixpkgs/pkgs/tools/security/enum4linux/default.nix
+++ b/nixpkgs/pkgs/tools/security/enum4linux/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A tool for enumerating information from Windows and Samba systems";
+    mainProgram = "enum4linux";
     homepage = "https://labs.portcullis.co.uk/tools/enum4linux/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ fishi0x01 ];
diff --git a/nixpkgs/pkgs/tools/security/enumerepo/default.nix b/nixpkgs/pkgs/tools/security/enumerepo/default.nix
index 31ff035950bd..3c6849af44ff 100644
--- a/nixpkgs/pkgs/tools/security/enumerepo/default.nix
+++ b/nixpkgs/pkgs/tools/security/enumerepo/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to list all public repositories for (valid) GitHub usernames";
+    mainProgram = "enumerepo";
     homepage = "https://github.com/trickest/enumerepo";
     changelog = "https://github.com/trickest/enumerepo/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/evil-winrm/default.nix b/nixpkgs/pkgs/tools/security/evil-winrm/default.nix
index 30420c7aad68..ab406caafb65 100644
--- a/nixpkgs/pkgs/tools/security/evil-winrm/default.nix
+++ b/nixpkgs/pkgs/tools/security/evil-winrm/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "WinRM shell for hacking/pentesting";
+    mainProgram = "evil-winrm";
     homepage = "https://github.com/Hackplayers/evil-winrm";
     changelog = "https://github.com/Hackplayers/evil-winrm/blob/v${version}/CHANGELOG.md";
     license = licenses.lgpl3Plus;
diff --git a/nixpkgs/pkgs/tools/security/evtx/default.nix b/nixpkgs/pkgs/tools/security/evtx/default.nix
index e12408d22752..92f8a29cf820 100644
--- a/nixpkgs/pkgs/tools/security/evtx/default.nix
+++ b/nixpkgs/pkgs/tools/security/evtx/default.nix
@@ -23,6 +23,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Parser for the Windows XML Event Log (EVTX) format";
+    mainProgram = "evtx_dump";
     homepage = "https://github.com/omerbenamram/evtx";
     changelog = "https://github.com/omerbenamram/evtx/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
diff --git a/nixpkgs/pkgs/tools/security/expliot/default.nix b/nixpkgs/pkgs/tools/security/expliot/default.nix
index 1414d7c36afd..88fd1cf84b61 100644
--- a/nixpkgs/pkgs/tools/security/expliot/default.nix
+++ b/nixpkgs/pkgs/tools/security/expliot/default.nix
@@ -71,6 +71,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "IoT security testing and exploitation framework";
+    mainProgram = "expliot";
     longDescription = ''
       EXPLIoT is a Framework for security testing and exploiting IoT
       products and IoT infrastructure. It provides a set of plugins
diff --git a/nixpkgs/pkgs/tools/security/exploitdb/default.nix b/nixpkgs/pkgs/tools/security/exploitdb/default.nix
index ca9a7000e98b..9b971e958aa2 100644
--- a/nixpkgs/pkgs/tools/security/exploitdb/default.nix
+++ b/nixpkgs/pkgs/tools/security/exploitdb/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2024-03-07";
+  version = "2024-03-23";
 
   src = fetchFromGitLab {
     owner = "exploit-database";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-f+xg4uR//1ffssH2PAN9ta/osCrY7+s6SI1Kfvfq8cQ=";
+    hash = "sha256-2Z6HY2Pz7PKh0iBXaplxj7il0Ekzqsbq57l0/Pk03+s=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/extrude/default.nix b/nixpkgs/pkgs/tools/security/extrude/default.nix
index 7145314fbd41..8a9710582913 100644
--- a/nixpkgs/pkgs/tools/security/extrude/default.nix
+++ b/nixpkgs/pkgs/tools/security/extrude/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to analyse binaries for missing security features";
+    mainProgram = "extrude";
     homepage = "https://github.com/liamg/extrude";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/faraday-agent-dispatcher/default.nix b/nixpkgs/pkgs/tools/security/faraday-agent-dispatcher/default.nix
index 510cdd99167c..8c390f2b6f7a 100644
--- a/nixpkgs/pkgs/tools/security/faraday-agent-dispatcher/default.nix
+++ b/nixpkgs/pkgs/tools/security/faraday-agent-dispatcher/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "faraday-agent-dispatcher";
-  version = "3.2.1";
+  version = "3.3.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "infobyte";
     repo = "faraday_agent_dispatcher";
     rev = "refs/tags/${version}";
-    hash = "sha256-OO9Rxm7jMfQAyyO5plLDWXbfYmPR2egewOMlrhHQTEw=";
+    hash = "sha256-rpi8S6pmei8MaACnfmOKFK+nNpljoMglu2uk75zvs9I=";
   };
 
   postPatch = ''
@@ -71,6 +71,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to send result from tools to the Faraday Platform";
+    mainProgram = "faraday-dispatcher";
     homepage = "https://github.com/infobyte/faraday_agent_dispatcher";
     changelog = "https://github.com/infobyte/faraday_agent_dispatcher/releases/tag/${version}";
     license = with licenses; [ gpl3Only ];
diff --git a/nixpkgs/pkgs/tools/security/faraday-cli/default.nix b/nixpkgs/pkgs/tools/security/faraday-cli/default.nix
index c6f1c3333a71..7e6ac5315e7d 100644
--- a/nixpkgs/pkgs/tools/security/faraday-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/faraday-cli/default.nix
@@ -47,6 +47,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Command Line Interface for Faraday";
+    mainProgram = "faraday-cli";
     homepage = "https://github.com/infobyte/faraday-cli";
     changelog = "https://github.com/infobyte/faraday-cli/releases/tag/${version}";
     license = with licenses; [ gpl3Only ];
diff --git a/nixpkgs/pkgs/tools/security/ffuf/default.nix b/nixpkgs/pkgs/tools/security/ffuf/default.nix
index e0e5976c7510..ae0a19bff022 100644
--- a/nixpkgs/pkgs/tools/security/ffuf/default.nix
+++ b/nixpkgs/pkgs/tools/security/ffuf/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool for web fuzzing";
+    mainProgram = "ffuf";
     longDescription = ''
       FFUF, or “Fuzz Faster you Fool†is an open source web fuzzing tool,
       intended for discovering elements and content within web applications
diff --git a/nixpkgs/pkgs/tools/security/fierce/default.nix b/nixpkgs/pkgs/tools/security/fierce/default.nix
index 9b8d8735b079..07ab18e36a66 100644
--- a/nixpkgs/pkgs/tools/security/fierce/default.nix
+++ b/nixpkgs/pkgs/tools/security/fierce/default.nix
@@ -33,6 +33,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "DNS reconnaissance tool for locating non-contiguous IP space";
+    mainProgram = "fierce";
     homepage = "https://github.com/mschwager/fierce";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ c0bw3b ];
diff --git a/nixpkgs/pkgs/tools/security/fingerprintx/default.nix b/nixpkgs/pkgs/tools/security/fingerprintx/default.nix
index 940195b4e2b5..1d04116c5724 100644
--- a/nixpkgs/pkgs/tools/security/fingerprintx/default.nix
+++ b/nixpkgs/pkgs/tools/security/fingerprintx/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Standalone utility for service discovery on open ports";
+    mainProgram = "fingerprintx";
     homepage = "https://github.com/praetorian-inc/fingerprintx";
     changelog = "https://github.com/praetorian-inc/fingerprintx/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/security/firefox_decrypt/default.nix b/nixpkgs/pkgs/tools/security/firefox_decrypt/default.nix
index 57f1215ed817..9ade5976e8d8 100644
--- a/nixpkgs/pkgs/tools/security/firefox_decrypt/default.nix
+++ b/nixpkgs/pkgs/tools/security/firefox_decrypt/default.nix
@@ -6,6 +6,7 @@
 , wheel
 , nss
 , nix-update-script
+, stdenv
 }:
 
 buildPythonApplication rec {
@@ -26,13 +27,19 @@ buildPythonApplication rec {
     wheel
   ];
 
-  makeWrapperArgs = [ "--prefix" "LD_LIBRARY_PATH" ":" (lib.makeLibraryPath [ nss ]) ];
+  makeWrapperArgs = [
+    "--prefix"
+    (if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH")
+    ":"
+    (lib.makeLibraryPath [ nss ])
+  ];
 
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
     homepage = "https://github.com/unode/firefox_decrypt";
     description = "A tool to extract passwords from profiles of Mozilla Firefox and derivates";
+    mainProgram = "firefox_decrypt";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ schnusch ];
   };
diff --git a/nixpkgs/pkgs/tools/security/fpm2/default.nix b/nixpkgs/pkgs/tools/security/fpm2/default.nix
index 69e6c7f02817..68781d05dc68 100644
--- a/nixpkgs/pkgs/tools/security/fpm2/default.nix
+++ b/nixpkgs/pkgs/tools/security/fpm2/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GTK2 port from Figaro's Password Manager originally developed by John Conneely, with some new enhancements";
+    mainProgram = "fpm2";
     homepage    = "https://als.regnet.cz/fpm2/";
     license     = licenses.gpl2;
     platforms   = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/security/freeze/default.nix b/nixpkgs/pkgs/tools/security/freeze/default.nix
index a8a8dbb59346..28ef21657009 100644
--- a/nixpkgs/pkgs/tools/security/freeze/default.nix
+++ b/nixpkgs/pkgs/tools/security/freeze/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Payload toolkit for bypassing EDRs";
+    mainProgram = "freeze";
     homepage = "https://github.com/optiv/Freeze";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/fulcio/default.nix b/nixpkgs/pkgs/tools/security/fulcio/default.nix
index 17bd273c0a30..46b533e4e68a 100644
--- a/nixpkgs/pkgs/tools/security/fulcio/default.nix
+++ b/nixpkgs/pkgs/tools/security/fulcio/default.nix
@@ -67,6 +67,7 @@ buildGoModule rec {
     homepage = "https://github.com/sigstore/fulcio";
     changelog = "https://github.com/sigstore/fulcio/releases/tag/v${version}";
     description = "A Root-CA for code signing certs - issuing certificates based on an OIDC email address";
+    mainProgram = "fulcio";
     longDescription = ''
       Fulcio is a free code signing Certificate Authority, built to make
       short-lived certificates available to anyone. Based on an Open ID Connect
diff --git a/nixpkgs/pkgs/tools/security/galer/default.nix b/nixpkgs/pkgs/tools/security/galer/default.nix
index bfe7cb18d1eb..852a91a8fc98 100644
--- a/nixpkgs/pkgs/tools/security/galer/default.nix
+++ b/nixpkgs/pkgs/tools/security/galer/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to fetch URLs from HTML attributes";
+    mainProgram = "galer";
     homepage = "https://github.com/dwisiswant0/galer";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/gallia/default.nix b/nixpkgs/pkgs/tools/security/gallia/default.nix
index 5d0cc05ec46d..8279227f3d28 100644
--- a/nixpkgs/pkgs/tools/security/gallia/default.nix
+++ b/nixpkgs/pkgs/tools/security/gallia/default.nix
@@ -6,18 +6,23 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gallia";
-  version = "1.5.0";
+  version = "1.6.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Fraunhofer-AISEC";
-    repo = pname;
+    repo = "gallia";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JeEJ4xTIOFeMADnuPMLNGxB/qEPKMnaIhQ6FCUaNa7E=";
+    hash = "sha256-LvzEyBkhji7ruVVO2EpqM8pKOcTX8Dnkqu/GtWOfMZs=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
     poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "httpx"
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -27,6 +32,7 @@ python3.pkgs.buildPythonApplication rec {
     argcomplete
     can
     exitcode
+    httpx
     platformdirs
     psutil
     construct
diff --git a/nixpkgs/pkgs/tools/security/gau/default.nix b/nixpkgs/pkgs/tools/security/gau/default.nix
index eea5df85162c..dc4676a1c987 100644
--- a/nixpkgs/pkgs/tools/security/gau/default.nix
+++ b/nixpkgs/pkgs/tools/security/gau/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to fetch known URLs";
+    mainProgram = "gau";
     longDescription = ''
       getallurls (gau) fetches known URLs from various sources for any
       given domain.
diff --git a/nixpkgs/pkgs/tools/security/gencfsm/default.nix b/nixpkgs/pkgs/tools/security/gencfsm/default.nix
index 33f6297905ea..537b2caf45b3 100644
--- a/nixpkgs/pkgs/tools/security/gencfsm/default.nix
+++ b/nixpkgs/pkgs/tools/security/gencfsm/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.libertyzero.com/GEncfsM/";
     downloadPage = "https://launchpad.net/gencfsm/";
     description = "EncFS manager and mounter with GNOME3 integration";
+    mainProgram = "gnome-encfs-manager";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.spacefrogg ];
diff --git a/nixpkgs/pkgs/tools/security/genpass/default.nix b/nixpkgs/pkgs/tools/security/genpass/default.nix
index 9565bf80c950..243132bb263d 100644
--- a/nixpkgs/pkgs/tools/security/genpass/default.nix
+++ b/nixpkgs/pkgs/tools/security/genpass/default.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple yet robust commandline random password generator";
+    mainProgram = "genpass";
     homepage = "https://sr.ht/~cyplo/genpass/";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ cyplo ];
diff --git a/nixpkgs/pkgs/tools/security/ggshield/default.nix b/nixpkgs/pkgs/tools/security/ggshield/default.nix
index 3bf136683333..eb0c5c9d2a95 100644
--- a/nixpkgs/pkgs/tools/security/ggshield/default.nix
+++ b/nixpkgs/pkgs/tools/security/ggshield/default.nix
@@ -77,6 +77,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to find and fix various types of hardcoded secrets and infrastructure-as-code misconfigurations";
+    mainProgram = "ggshield";
     homepage = "https://github.com/GitGuardian/ggshield";
     changelog = "https://github.com/GitGuardian/ggshield/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/ghauri/default.nix b/nixpkgs/pkgs/tools/security/ghauri/default.nix
index 6e7ddeb3cd96..fd4a0fa9903f 100644
--- a/nixpkgs/pkgs/tools/security/ghauri/default.nix
+++ b/nixpkgs/pkgs/tools/security/ghauri/default.nix
@@ -31,6 +31,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for detecting and exploiting SQL injection security flaws";
+    mainProgram = "ghauri";
     homepage = "https://github.com/r0oth3x49/ghauri";
     changelog = "https://github.com/r0oth3x49/ghauri/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/ghdorker/default.nix b/nixpkgs/pkgs/tools/security/ghdorker/default.nix
index 28336c30ea15..f00e9a60df81 100644
--- a/nixpkgs/pkgs/tools/security/ghdorker/default.nix
+++ b/nixpkgs/pkgs/tools/security/ghdorker/default.nix
@@ -29,6 +29,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Extensible GitHub dorking tool";
+    mainProgram = "ghdorker";
     homepage = "https://github.com/dtaivpp/ghdorker";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/ghidra/build.nix b/nixpkgs/pkgs/tools/security/ghidra/build.nix
index da164c94b0b5..8b9f2aaca007 100644
--- a/nixpkgs/pkgs/tools/security/ghidra/build.nix
+++ b/nixpkgs/pkgs/tools/security/ghidra/build.nix
@@ -159,6 +159,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission";
+    mainProgram = "ghidra";
     homepage = "https://ghidra-sre.org/";
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
     sourceProvenance = with sourceTypes; [
diff --git a/nixpkgs/pkgs/tools/security/ghidra/default.nix b/nixpkgs/pkgs/tools/security/ghidra/default.nix
index 5f9346937b36..2337b36eb7c8 100644
--- a/nixpkgs/pkgs/tools/security/ghidra/default.nix
+++ b/nixpkgs/pkgs/tools/security/ghidra/default.nix
@@ -70,6 +70,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission";
+    mainProgram = "ghidra";
     homepage = "https://github.com/NationalSecurityAgency/ghidra";
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
diff --git a/nixpkgs/pkgs/tools/security/ghost/default.nix b/nixpkgs/pkgs/tools/security/ghost/default.nix
index 124caef45c20..d645556c87be 100644
--- a/nixpkgs/pkgs/tools/security/ghost/default.nix
+++ b/nixpkgs/pkgs/tools/security/ghost/default.nix
@@ -27,6 +27,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Android post-exploitation framework";
+    mainProgram = "ghost";
     homepage = "https://github.com/EntySec/ghost";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/gitjacker/default.nix b/nixpkgs/pkgs/tools/security/gitjacker/default.nix
index c233032d9359..5303e169e8dd 100644
--- a/nixpkgs/pkgs/tools/security/gitjacker/default.nix
+++ b/nixpkgs/pkgs/tools/security/gitjacker/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Leak git repositories from misconfigured websites";
+    mainProgram = "gitjacker";
     longDescription = ''
       Gitjacker downloads git repositories and extracts their contents
       from sites where the .git directory has been mistakenly uploaded.
diff --git a/nixpkgs/pkgs/tools/security/gnupg-pkcs11-scd/default.nix b/nixpkgs/pkgs/tools/security/gnupg-pkcs11-scd/default.nix
index f7c22cddb5cb..76cc2639bf90 100644
--- a/nixpkgs/pkgs/tools/security/gnupg-pkcs11-scd/default.nix
+++ b/nixpkgs/pkgs/tools/security/gnupg-pkcs11-scd/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A smart-card daemon to enable the use of PKCS#11 tokens with GnuPG";
+    mainProgram = "gnupg-pkcs11-scd";
     longDescription = ''
     gnupg-pkcs11 is a project to implement a BSD-licensed smart-card
     daemon to enable the use of PKCS#11 tokens with GnuPG.
diff --git a/nixpkgs/pkgs/tools/security/go-cve-search/default.nix b/nixpkgs/pkgs/tools/security/go-cve-search/default.nix
index d4b231c63a18..2e521de96ed3 100644
--- a/nixpkgs/pkgs/tools/security/go-cve-search/default.nix
+++ b/nixpkgs/pkgs/tools/security/go-cve-search/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A lightweight CVE search tool";
+    mainProgram = "go-cve-search";
     longDescription = ''
       go-cve-search is a lightweight tool to search CVE (Common Vulnerabilities
       and Exposures).
diff --git a/nixpkgs/pkgs/tools/security/go-exploitdb/default.nix b/nixpkgs/pkgs/tools/security/go-exploitdb/default.nix
index d400cd22a6f0..2ca0c1b1e299 100644
--- a/nixpkgs/pkgs/tools/security/go-exploitdb/default.nix
+++ b/nixpkgs/pkgs/tools/security/go-exploitdb/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool for searching Exploits from Exploit Databases, etc";
+    mainProgram = "go-exploitdb";
     homepage = "https://github.com/vulsio/go-exploitdb";
     changelog = "https://github.com/vulsio/go-exploitdb/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/goblob/default.nix b/nixpkgs/pkgs/tools/security/goblob/default.nix
index 401a655d65ab..a1ffe5b4a9c8 100644
--- a/nixpkgs/pkgs/tools/security/goblob/default.nix
+++ b/nixpkgs/pkgs/tools/security/goblob/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Enumeration tool for publicly exposed Azure Storage blobs";
+    mainProgram = "goblob";
     homepage = "https://github.com/Macmod/goblob";
     changelog = "https://github.com/Macmod/goblob/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/gobuster/default.nix b/nixpkgs/pkgs/tools/security/gobuster/default.nix
index 878fa576b4cd..bbc4b02c2b16 100644
--- a/nixpkgs/pkgs/tools/security/gobuster/default.nix
+++ b/nixpkgs/pkgs/tools/security/gobuster/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool used to brute-force URIs, DNS subdomains, Virtual Host names on target web servers";
+    mainProgram = "gobuster";
     homepage = "https://github.com/OJ/gobuster";
     changelog = "https://github.com/OJ/gobuster/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/security/gomapenum/default.nix b/nixpkgs/pkgs/tools/security/gomapenum/default.nix
index 6e1da08d14f0..8171d5ef57e8 100644
--- a/nixpkgs/pkgs/tools/security/gomapenum/default.nix
+++ b/nixpkgs/pkgs/tools/security/gomapenum/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tools for user enumeration and password bruteforce";
+    mainProgram = "gomapenum";
     homepage = "https://github.com/nodauf/GoMapEnum";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/gopass/default.nix b/nixpkgs/pkgs/tools/security/gopass/default.nix
index 6573c511474a..2b17f935d511 100644
--- a/nixpkgs/pkgs/tools/security/gopass/default.nix
+++ b/nixpkgs/pkgs/tools/security/gopass/default.nix
@@ -13,7 +13,7 @@
 
 buildGoModule rec {
   pname = "gopass";
-  version = "1.15.11";
+  version = "1.15.12";
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
 
@@ -21,10 +21,10 @@ buildGoModule rec {
     owner = "gopasspw";
     repo = "gopass";
     rev = "v${version}";
-    hash = "sha256-wgrZkRRMEWA9Lk9eW+iGi+dZNYfDVhRu1phimZC079c=";
+    hash = "sha256-sg3I/h0mkkWmK4GD1yoX14gM2oqwRjMXpX3KULHFJsg=";
   };
 
-  vendorHash = "sha256-TvohrwSFVv5ylVRd6jPdRDyRRhqqWa0xey9KN9vtyY8=";
+  vendorHash = "sha256-jbwtxOfBL/5aXdWcsXZ5HQi83Oy00SSnLcvuWeCPBug=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/security/gopass/git-credential.nix b/nixpkgs/pkgs/tools/security/gopass/git-credential.nix
index 8654d05d9d13..cf05591bbbfc 100644
--- a/nixpkgs/pkgs/tools/security/gopass/git-credential.nix
+++ b/nixpkgs/pkgs/tools/security/gopass/git-credential.nix
@@ -2,21 +2,30 @@
 , makeWrapper
 , buildGoModule
 , fetchFromGitHub
+, fetchpatch
 , gopass
 }:
 
 buildGoModule rec {
   pname = "git-credential-gopass";
-  version = "1.15.11";
+  version = "1.15.12";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = "git-credential-gopass";
     rev = "v${version}";
-    hash = "sha256-qnWgrpcj3DZQu5haP/5xqoO7eogkRjBmc8XpgFFNT6I=";
+    hash = "sha256-5j5+so4LT3x+epEZf9OVn/kLNHBk2ENQxxRrzbziEA4=";
   };
 
-  vendorHash = "sha256-bit4+YgQ+Y/TA2q7KdZwYTE3ZKBwL6tUam+tHzBMiQw=";
+  patches = [
+    # go mod tidy. Remove with next release
+    (fetchpatch {
+      url = "https://github.com/gopasspw/git-credential-gopass/commit/88d11d2b1b49f00b7fba9a917cf90f7ea14c9d1b.patch";
+      hash = "sha256-mXxI9GXan0zYL8msL83VLqxOp4oAOwMyCOFaUOLAg5E=";
+    })
+  ];
+
+  vendorHash = "sha256-y1PH0+tt/kcHw2I4LWD2XfLud3JtsYqrRd/yVRPdaTA=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/security/gopass/hibp.nix b/nixpkgs/pkgs/tools/security/gopass/hibp.nix
index 11ee0a94dbf9..c9fca15f9058 100644
--- a/nixpkgs/pkgs/tools/security/gopass/hibp.nix
+++ b/nixpkgs/pkgs/tools/security/gopass/hibp.nix
@@ -2,21 +2,30 @@
 , makeWrapper
 , buildGoModule
 , fetchFromGitHub
+, fetchpatch
 , gopass
 }:
 
 buildGoModule rec {
   pname = "gopass-hibp";
-  version = "1.15.11";
+  version = "1.15.12";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = "gopass-hibp";
     rev = "v${version}";
-    hash = "sha256-2XhvUIa8RxQ6CAKPGpL8/rBiJSX/WsSGtIpaHLIBM1E=";
+    hash = "sha256-5BnCaxF2XZ4f26KsTbapcZ2+Ii58nR/14pCj0c0QLKE=";
   };
 
-  vendorHash = "sha256-i9PUqircNf+jz5gcr3rVIR4tD9/bkV2h6LiDFhjiLaw=";
+  patches = [
+    # go mod tidy. Remove with next release
+    (fetchpatch {
+      url = "https://github.com/gopasspw/gopass-hibp/commit/cdfdbc6da154874c74d7c8fc83bb11a98dd8fd81.patch";
+      hash = "sha256-jCzg3c8EizhoRYvWUZCys6/q2ChVWy/psPofNGIYdxs=";
+    })
+  ];
+
+  vendorHash = "sha256-GLqtwUg3fa1okdPoQBkF+ygpm8GLmDyIyUiC7/TTTaE=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/security/gopass/jsonapi.nix b/nixpkgs/pkgs/tools/security/gopass/jsonapi.nix
index 37ac46356c3a..ca0ad5a96fd3 100644
--- a/nixpkgs/pkgs/tools/security/gopass/jsonapi.nix
+++ b/nixpkgs/pkgs/tools/security/gopass/jsonapi.nix
@@ -2,22 +2,31 @@
 , makeWrapper
 , buildGoModule
 , fetchFromGitHub
+, fetchpatch
 , installShellFiles
 , gopass
 }:
 
 buildGoModule rec {
   pname = "gopass-jsonapi";
-  version = "1.15.11";
+  version = "1.15.12";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = "gopass-jsonapi";
     rev = "v${version}";
-    hash = "sha256-wJlnm+sgFg55LW4RWGjcT538DgNhJtFjwgwgqwLWH50=";
+    hash = "sha256-sR+48MRBHj3XpKLp/AOGf2H4ltZD1fHlIA2HPYSHdp0=";
   };
 
-  vendorHash = "sha256-qRmPO2WM9RD43twl5a47IT3xC1LGFwNF99ojIU2xg6A=";
+  patches = [
+    # go mod tidy. Remove with next release
+    (fetchpatch {
+      url = "https://github.com/gopasspw/gopass-jsonapi/commit/cab33faab113d0c9702ebaa14cde13e5ccd465d2.patch";
+      hash = "sha256-IoxU5r1k0Y6N+PKAZH8LEO/fXHjryx5y58RRFeHP7Bc=";
+    })
+  ];
+
+  vendorHash = "sha256-2JADTyBgAK2j524G+ksKLJC255PmvMViFFCwmgtXZzA=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/security/gopass/summon.nix b/nixpkgs/pkgs/tools/security/gopass/summon.nix
index 97aed94c05fe..fca94219cf07 100644
--- a/nixpkgs/pkgs/tools/security/gopass/summon.nix
+++ b/nixpkgs/pkgs/tools/security/gopass/summon.nix
@@ -2,21 +2,30 @@
 , makeWrapper
 , buildGoModule
 , fetchFromGitHub
+, fetchpatch
 , gopass
 }:
 
 buildGoModule rec {
   pname = "gopass-summon-provider";
-  version = "1.15.11";
+  version = "1.15.12";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = "gopass-summon-provider";
     rev = "v${version}";
-    hash = "sha256-rbfzmr6HtGUBCjO9jkocSghTAN+aNXTsSsMC38HqgW0=";
+    hash = "sha256-gvgHqeVB+4d8UJhMv3CYYidttCcaRPkgI7PXasv7pCI=";
   };
 
-  vendorHash = "sha256-bit4+YgQ+Y/TA2q7KdZwYTE3ZKBwL6tUam+tHzBMiQw=";
+  patches = [
+    # go mod tidy. Remove with next release
+    (fetchpatch {
+      url = "https://github.com/gopasspw/gopass-summon-provider/commit/b3085cab14588cb6a5a383033947d9266fe0cd56.patch";
+      hash = "sha256-8mvJqejqmuOloj9mW9zzsE/Xr0DtPhJeDItzVFVv4+c=";
+    })
+  ];
+
+  vendorHash = "sha256-y1PH0+tt/kcHw2I4LWD2XfLud3JtsYqrRd/yVRPdaTA=";
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/security/gorilla-bin/default.nix b/nixpkgs/pkgs/tools/security/gorilla-bin/default.nix
index 388996c62fb5..898abbbd25a4 100644
--- a/nixpkgs/pkgs/tools/security/gorilla-bin/default.nix
+++ b/nixpkgs/pkgs/tools/security/gorilla-bin/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Password Gorilla is a Tk based password manager";
+    mainProgram = "gorilla";
     homepage = "https://github.com/zdia/gorilla/wiki";
     maintainers = [ lib.maintainers.namore ];
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/tools/security/gospider/default.nix b/nixpkgs/pkgs/tools/security/gospider/default.nix
index 91e940ec87eb..d78089f6072e 100644
--- a/nixpkgs/pkgs/tools/security/gospider/default.nix
+++ b/nixpkgs/pkgs/tools/security/gospider/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Fast web spider written in Go";
+    mainProgram = "gospider";
     longDescription = ''
       GoSpider is a fast web crawler that parses sitemap.xml and robots.txt file.
       It can generate and verify link from JavaScript files, extract URLs from
diff --git a/nixpkgs/pkgs/tools/security/gotestwaf/default.nix b/nixpkgs/pkgs/tools/security/gotestwaf/default.nix
index c9fbe9f699eb..b710d209244c 100644
--- a/nixpkgs/pkgs/tools/security/gotestwaf/default.nix
+++ b/nixpkgs/pkgs/tools/security/gotestwaf/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "gotestwaf";
-  version = "0.4.15";
+  version = "0.4.16";
 
   src = fetchFromGitHub {
     owner = "wallarm";
     repo = "gotestwaf";
     rev = "refs/tags/v${version}";
-    hash = "sha256-C5lDiHDSSweUZh83AOv5WIQ4JuC9OiCvpHshgius51k=";
+    hash = "sha256-fMSXnA8ZuyfOQINkWiYwX7NSffsHbdlfDcpfo/hahMY=";
   };
 
   vendorHash = null;
@@ -40,6 +40,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool for API and OWASP attack simulation";
+    mainProgram = "gotestwaf";
     homepage = "https://github.com/wallarm/gotestwaf";
     changelog = "https://github.com/wallarm/gotestwaf/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/gotrue/default.nix b/nixpkgs/pkgs/tools/security/gotrue/default.nix
index 112e0c4ddc6d..06b3560dec56 100644
--- a/nixpkgs/pkgs/tools/security/gotrue/default.nix
+++ b/nixpkgs/pkgs/tools/security/gotrue/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/netlify/gotrue";
     description = "An SWT based API for managing users and issuing SWT tokens";
+    mainProgram = "gotrue";
     changelog = "https://github.com/netlify/gotrue/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ urandom ];
diff --git a/nixpkgs/pkgs/tools/security/gotrue/supabase.nix b/nixpkgs/pkgs/tools/security/gotrue/supabase.nix
index 36ce6d72ceb8..9020a0c8c9ba 100644
--- a/nixpkgs/pkgs/tools/security/gotrue/supabase.nix
+++ b/nixpkgs/pkgs/tools/security/gotrue/supabase.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/supabase/gotrue";
     description = "A JWT based API for managing users and issuing JWT tokens";
+    mainProgram = "gotrue";
     changelog = "https://github.com/supabase/gotrue/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ urandom ];
diff --git a/nixpkgs/pkgs/tools/security/goverview/default.nix b/nixpkgs/pkgs/tools/security/goverview/default.nix
index 02038bf27b99..6c55f069d258 100644
--- a/nixpkgs/pkgs/tools/security/goverview/default.nix
+++ b/nixpkgs/pkgs/tools/security/goverview/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to get an overview of the list of URLs";
+    mainProgram = "goverview";
     homepage = "https://github.com/j3ssie/goverview";
     changelog = "https://github.com/j3ssie/goverview/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/govulncheck/default.nix b/nixpkgs/pkgs/tools/security/govulncheck/default.nix
index dd45d054aeeb..84aeaf51b947 100644
--- a/nixpkgs/pkgs/tools/security/govulncheck/default.nix
+++ b/nixpkgs/pkgs/tools/security/govulncheck/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
     homepage = "https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck";
     downloadPage = "https://github.com/golang/vuln";
     description = "The database client and tools for the Go vulnerability database, also known as vuln";
+    mainProgram = "govulncheck";
     longDescription = ''
       Govulncheck reports known vulnerabilities that affect Go code. It uses
       static analysis of source code or a binary's symbol table to narrow down
diff --git a/nixpkgs/pkgs/tools/security/gowitness/default.nix b/nixpkgs/pkgs/tools/security/gowitness/default.nix
index bd9ab97a0f38..ab31281bbd28 100644
--- a/nixpkgs/pkgs/tools/security/gowitness/default.nix
+++ b/nixpkgs/pkgs/tools/security/gowitness/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Web screenshot utility";
+    mainProgram = "gowitness";
     homepage = "https://github.com/sensepost/gowitness";
     changelog = "https://github.com/sensepost/gowitness/releases/tag/${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/security/graphinder/default.nix b/nixpkgs/pkgs/tools/security/graphinder/default.nix
index f0256dff7cbe..541e7ab3189d 100644
--- a/nixpkgs/pkgs/tools/security/graphinder/default.nix
+++ b/nixpkgs/pkgs/tools/security/graphinder/default.nix
@@ -48,6 +48,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to find GraphQL endpoints using subdomain enumeration";
+    mainProgram = "graphinder";
     homepage = "https://github.com/Escape-Technologies/graphinder";
     changelog = "https://github.com/Escape-Technologies/graphinder/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/tools/security/graphqlmap/default.nix b/nixpkgs/pkgs/tools/security/graphqlmap/default.nix
index 84b72d3b6a16..a2c0904b4a98 100644
--- a/nixpkgs/pkgs/tools/security/graphqlmap/default.nix
+++ b/nixpkgs/pkgs/tools/security/graphqlmap/default.nix
@@ -28,6 +28,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to interact with a GraphQL endpoint";
+    mainProgram = "graphqlmap";
     homepage = "https://github.com/swisskyrepo/GraphQLmap";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/graphw00f/default.nix b/nixpkgs/pkgs/tools/security/graphw00f/default.nix
index 7f1d5ede3e71..9edcf7c1f939 100644
--- a/nixpkgs/pkgs/tools/security/graphw00f/default.nix
+++ b/nixpkgs/pkgs/tools/security/graphw00f/default.nix
@@ -30,6 +30,7 @@ python3.pkgs.buildPythonApplication rec {
   '';
   meta = with lib; {
     description = "GraphQL Server Engine Fingerprinting utility";
+    mainProgram = "graphw00f";
     homepage = "https://github.com/dolevf/graphw00f";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/grype/default.nix b/nixpkgs/pkgs/tools/security/grype/default.nix
index d602d1fc6e73..db9a24ecc429 100644
--- a/nixpkgs/pkgs/tools/security/grype/default.nix
+++ b/nixpkgs/pkgs/tools/security/grype/default.nix
@@ -109,6 +109,7 @@ buildGoModule rec {
     homepage = "https://github.com/anchore/grype";
     changelog = "https://github.com/anchore/grype/releases/tag/v${version}";
     description = "Vulnerability scanner for container images and filesystems";
+    mainProgram = "grype";
     longDescription = ''
       As a vulnerability scanner grype is able to scan the contents of a
       container image or filesystem to find known vulnerabilities.
diff --git a/nixpkgs/pkgs/tools/security/hakrawler/default.nix b/nixpkgs/pkgs/tools/security/hakrawler/default.nix
index 0577ceb8c103..58481390f2cc 100644
--- a/nixpkgs/pkgs/tools/security/hakrawler/default.nix
+++ b/nixpkgs/pkgs/tools/security/hakrawler/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Web crawler for the discovery of endpoints and assets";
+    mainProgram = "hakrawler";
     homepage = "https://github.com/hakluke/hakrawler";
     longDescription =  ''
       Simple, fast web crawler designed for easy, quick discovery of endpoints
diff --git a/nixpkgs/pkgs/tools/security/hash_extender/default.nix b/nixpkgs/pkgs/tools/security/hash_extender/default.nix
index b90dff6cd17c..10f82ca77e71 100644
--- a/nixpkgs/pkgs/tools/security/hash_extender/default.nix
+++ b/nixpkgs/pkgs/tools/security/hash_extender/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Tool to automate hash length extension attacks";
+    mainProgram = "hash_extender";
     homepage = "https://github.com/iagox86/hash_extender";
     license = licenses.bsd3;
     maintainers = with maintainers; [ oxzi ];
diff --git a/nixpkgs/pkgs/tools/security/hashcat/default.nix b/nixpkgs/pkgs/tools/security/hashcat/default.nix
index 2e8370be85fe..56399e61639e 100644
--- a/nixpkgs/pkgs/tools/security/hashcat/default.nix
+++ b/nixpkgs/pkgs/tools/security/hashcat/default.nix
@@ -21,13 +21,9 @@ stdenv.mkDerivation rec {
   };
 
   postPatch = ''
-     # Select libstdc++ or libc++ based on stdenv
      # MACOSX_DEPLOYMENT_TARGET is defined by the enviroment
      # Remove hardcoded paths on darwin
     substituteInPlace src/Makefile \
-  '' + lib.optionalString (stdenv.cc.libcxx != null) ''
-      --replace "-lstdc++" "-lc++ -l${stdenv.cc.libcxx.cxxabi.libName}" \
-  '' + ''
       --replace "export MACOSX_DEPLOYMENT_TARGET" "#export MACOSX_DEPLOYMENT_TARGET" \
       --replace "/usr/bin/ar" "ar" \
       --replace "/usr/bin/sed" "sed" \
@@ -81,6 +77,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fast password cracker";
+    mainProgram = "hashcat";
     homepage    = "https://hashcat.net/hashcat/";
     license     = licenses.mit;
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/security/hashrat/default.nix b/nixpkgs/pkgs/tools/security/hashrat/default.nix
index 7923021f8355..38014988dd67 100644
--- a/nixpkgs/pkgs/tools/security/hashrat/default.nix
+++ b/nixpkgs/pkgs/tools/security/hashrat/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Command-line hash-generation utility";
+    mainProgram = "hashrat";
     longDescription = ''
       Hashing tool supporting md5,sha1,sha256,sha512,whirlpool,jh and hmac versions of these.
       Includes recursive file hashing and other features.
diff --git a/nixpkgs/pkgs/tools/security/haveged/default.nix b/nixpkgs/pkgs/tools/security/haveged/default.nix
index c28ae465e0eb..c30469c3a3d9 100644
--- a/nixpkgs/pkgs/tools/security/haveged/default.nix
+++ b/nixpkgs/pkgs/tools/security/haveged/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A simple entropy daemon";
+    mainProgram = "haveged";
     longDescription = ''
       The haveged project is an attempt to provide an easy-to-use, unpredictable
       random number generator based upon an adaptation of the HAVEGE algorithm.
diff --git a/nixpkgs/pkgs/tools/security/hfinger/default.nix b/nixpkgs/pkgs/tools/security/hfinger/default.nix
index 900f7402451d..baca9ed5ddd2 100644
--- a/nixpkgs/pkgs/tools/security/hfinger/default.nix
+++ b/nixpkgs/pkgs/tools/security/hfinger/default.nix
@@ -36,6 +36,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Fingerprinting tool for HTTP requests";
+    mainProgram = "hfinger";
     homepage = "https://github.com/CERT-Polska/hfinger";
     changelog = "https://github.com/CERT-Polska/hfinger/releases/tag/v${version}";
     license = with licenses; [ gpl3Only ];
diff --git a/nixpkgs/pkgs/tools/security/holehe/default.nix b/nixpkgs/pkgs/tools/security/holehe/default.nix
index ed8146fec688..872cde1f8f87 100644
--- a/nixpkgs/pkgs/tools/security/holehe/default.nix
+++ b/nixpkgs/pkgs/tools/security/holehe/default.nix
@@ -39,6 +39,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "CLI to check if the mail is used on different sites";
+    mainProgram = "holehe";
     homepage = "https://github.com/megadose/holehe";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/honeytrap/default.nix b/nixpkgs/pkgs/tools/security/honeytrap/default.nix
index e0252d06f154..3e311c576864 100644
--- a/nixpkgs/pkgs/tools/security/honeytrap/default.nix
+++ b/nixpkgs/pkgs/tools/security/honeytrap/default.nix
@@ -21,6 +21,7 @@ buildGoModule {
 
   meta = with lib; {
     description = "Advanced Honeypot framework";
+    mainProgram = "honeytrap";
     homepage = "https://github.com/honeytrap/honeytrap";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/tools/security/hstsparser/default.nix b/nixpkgs/pkgs/tools/security/hstsparser/default.nix
index 8b4e4882f556..6c3019050719 100644
--- a/nixpkgs/pkgs/tools/security/hstsparser/default.nix
+++ b/nixpkgs/pkgs/tools/security/hstsparser/default.nix
@@ -29,6 +29,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to parse Firefox and Chrome HSTS databases into forensic artifacts";
+    mainProgram = "hstsparser";
     homepage = "https://github.com/thebeanogamer/hstsparser";
     changelog = "https://github.com/thebeanogamer/hstsparser/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/httpdump/default.nix b/nixpkgs/pkgs/tools/security/httpdump/default.nix
index d745adc50d5d..2a8e75497782 100644
--- a/nixpkgs/pkgs/tools/security/httpdump/default.nix
+++ b/nixpkgs/pkgs/tools/security/httpdump/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Parse and display HTTP traffic from network device or pcap file";
+    mainProgram = "httpdump";
     homepage = "https://github.com/hsiafan/httpdump";
     license = with licenses; [ bsd2 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/httpx/default.nix b/nixpkgs/pkgs/tools/security/httpx/default.nix
index 3fb537142958..80a7404be002 100644
--- a/nixpkgs/pkgs/tools/security/httpx/default.nix
+++ b/nixpkgs/pkgs/tools/security/httpx/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Fast and multi-purpose HTTP toolkit";
+    mainProgram = "httpx";
     longDescription = ''
       httpx is a fast and multi-purpose HTTP toolkit allow to run multiple
       probers using retryablehttp library, it is designed to maintain the
diff --git a/nixpkgs/pkgs/tools/security/iaito/default.nix b/nixpkgs/pkgs/tools/security/iaito/default.nix
index 5812b1e6cfea..2fc43ad67055 100644
--- a/nixpkgs/pkgs/tools/security/iaito/default.nix
+++ b/nixpkgs/pkgs/tools/security/iaito/default.nix
@@ -87,6 +87,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "An official graphical interface of radare2";
+    mainProgram = "iaito";
     longDescription = ''
       iaito is the official graphical interface of radare2. It's the
       continuation of Cutter for radare2 after the Rizin fork.
diff --git a/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix b/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix
index 9a13c2103016..969a758d18d4 100644
--- a/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix
+++ b/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "IBM's Software TPM 2.0, an implementation of the TCG TPM 2.0 specification";
+    mainProgram = "tpm_server";
     homepage = "https://sourceforge.net/projects/ibmswtpm2/";
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ delroth ];
diff --git a/nixpkgs/pkgs/tools/security/ifdnfc/default.nix b/nixpkgs/pkgs/tools/security/ifdnfc/default.nix
index 34c140023ac2..ddc48085860b 100644
--- a/nixpkgs/pkgs/tools/security/ifdnfc/default.nix
+++ b/nixpkgs/pkgs/tools/security/ifdnfc/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "PC/SC IFD Handler based on libnfc";
+    mainProgram = "ifdnfc-activate";
     longDescription =
     '' libnfc Interface Plugin to be used in <code>services.pcscd.plugins</code>.
        It provides support for all readers which are not supported by ccid but by libnfc.
diff --git a/nixpkgs/pkgs/tools/security/imdshift/default.nix b/nixpkgs/pkgs/tools/security/imdshift/default.nix
index c33e0878cd4d..a4d7e46e7c28 100644
--- a/nixpkgs/pkgs/tools/security/imdshift/default.nix
+++ b/nixpkgs/pkgs/tools/security/imdshift/default.nix
@@ -31,6 +31,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to migrate workloads to IMDSv2";
+    mainProgram = "imdshift";
     homepage = "https://github.com/ayushpriya10/IMDShift";
     changelog = "https://github.com/ayushpriya10/IMDShift/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/security/inql/default.nix b/nixpkgs/pkgs/tools/security/inql/default.nix
index 272e28292ac8..6f9a6e29f2e0 100644
--- a/nixpkgs/pkgs/tools/security/inql/default.nix
+++ b/nixpkgs/pkgs/tools/security/inql/default.nix
@@ -33,6 +33,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Security testing tool for GraphQL";
+    mainProgram = "inql";
     homepage = "https://github.com/doyensec/inql";
     changelog = "https://github.com/doyensec/inql/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/tools/security/ioccheck/default.nix b/nixpkgs/pkgs/tools/security/ioccheck/default.nix
index 2f25aa4ea897..3f899c33b557 100644
--- a/nixpkgs/pkgs/tools/security/ioccheck/default.nix
+++ b/nixpkgs/pkgs/tools/security/ioccheck/default.nix
@@ -88,6 +88,7 @@ in py.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for researching IOCs";
+    mainProgram = "ioccheck";
     homepage = "https://github.com/ranguli/ioccheck";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/ipscan/default.nix b/nixpkgs/pkgs/tools/security/ipscan/default.nix
index 72a44a4ab8a1..f61944fe63ea 100644
--- a/nixpkgs/pkgs/tools/security/ipscan/default.nix
+++ b/nixpkgs/pkgs/tools/security/ipscan/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Angry IP Scanner - fast and friendly network scanner";
+    mainProgram = "ipscan";
     homepage = "https://angryip.org";
     downloadPage = "https://github.com/angryip/ipscan/releases/tag/${version}";
     changelog = "https://github.com/angryip/ipscan/blob/${version}/CHANGELOG";
diff --git a/nixpkgs/pkgs/tools/security/isolate/default.nix b/nixpkgs/pkgs/tools/security/isolate/default.nix
index 4aa592029600..b745af75d8b7 100644
--- a/nixpkgs/pkgs/tools/security/isolate/default.nix
+++ b/nixpkgs/pkgs/tools/security/isolate/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "isolate";
-  version = "1.10.1";
+  version = "2.0";
 
   src = fetchFromGitHub {
     owner = "ioi";
     repo = "isolate";
     rev = "v${version}";
-    hash = "sha256-xY2omzqIJYElLtzj4byy/QG4pW4erCxc+cD2X9nA2jM=";
+    hash = "sha256-kKXkXPVB9ojyIERvEdkHkXC//Agin8FPcpTBmTxh/ZE=";
   };
 
   nativeBuildInputs = [
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Sandbox for securely executing untrusted programs";
+    mainProgram = "isolate";
     homepage = "https://github.com/ioi/isolate";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ virchau13 ];
diff --git a/nixpkgs/pkgs/tools/security/jaeles/default.nix b/nixpkgs/pkgs/tools/security/jaeles/default.nix
index 5ab635b35ac2..7c652995f6ff 100644
--- a/nixpkgs/pkgs/tools/security/jaeles/default.nix
+++ b/nixpkgs/pkgs/tools/security/jaeles/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool for automated Web application testing";
+    mainProgram = "jaeles";
     homepage = "https://github.com/jaeles-project/jaeles";
     changelog = "https://github.com/jaeles-project/jaeles/releases/tag/beta-v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/jd-gui/default.nix b/nixpkgs/pkgs/tools/security/jd-gui/default.nix
index 2663af4ed620..7cc714d96773 100644
--- a/nixpkgs/pkgs/tools/security/jd-gui/default.nix
+++ b/nixpkgs/pkgs/tools/security/jd-gui/default.nix
@@ -122,6 +122,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fast Java Decompiler with powerful GUI";
+    mainProgram = "jd-gui";
     homepage    = "https://java-decompiler.github.io/";
     sourceProvenance = with sourceTypes; [
       fromSource
diff --git a/nixpkgs/pkgs/tools/security/joincap/default.nix b/nixpkgs/pkgs/tools/security/joincap/default.nix
index 1589602ac062..c37226a6f327 100644
--- a/nixpkgs/pkgs/tools/security/joincap/default.nix
+++ b/nixpkgs/pkgs/tools/security/joincap/default.nix
@@ -28,6 +28,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Merge multiple pcap files together, gracefully";
+    mainProgram = "joincap";
     homepage = "https://github.com/assafmo/joincap";
     changelog = "https://github.com/assafmo/joincap/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/jsubfinder/default.nix b/nixpkgs/pkgs/tools/security/jsubfinder/default.nix
index 328c81143d1c..c989c352ea05 100644
--- a/nixpkgs/pkgs/tools/security/jsubfinder/default.nix
+++ b/nixpkgs/pkgs/tools/security/jsubfinder/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to search for in Javascript hidden subdomains and secrets";
+    mainProgram = "jsubfinder";
     homepage = "https://github.com/ThreatUnkown/jsubfinder";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/jwx/default.nix b/nixpkgs/pkgs/tools/security/jwx/default.nix
index 224962825888..ea8e69fad109 100644
--- a/nixpkgs/pkgs/tools/security/jwx/default.nix
+++ b/nixpkgs/pkgs/tools/security/jwx/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = " Implementation of various JWx (Javascript Object Signing and Encryption/JOSE) technologies";
+    mainProgram = "jwx";
     homepage = "https://github.com/lestrrat-go/jwx";
     license = licenses.mit;
     maintainers = with maintainers; [ arianvp flokli ];
diff --git a/nixpkgs/pkgs/tools/security/katana/default.nix b/nixpkgs/pkgs/tools/security/katana/default.nix
index 1f4a7300e228..fef276e414c9 100644
--- a/nixpkgs/pkgs/tools/security/katana/default.nix
+++ b/nixpkgs/pkgs/tools/security/katana/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A next-generation crawling and spidering framework";
+    mainProgram = "katana";
     homepage = "https://github.com/projectdiscovery/katana";
     changelog = "https://github.com/projectdiscovery/katana/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/kbs2/default.nix b/nixpkgs/pkgs/tools/security/kbs2/default.nix
index 3e9a726651a6..2592fe444d8d 100644
--- a/nixpkgs/pkgs/tools/security/kbs2/default.nix
+++ b/nixpkgs/pkgs/tools/security/kbs2/default.nix
@@ -47,6 +47,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A secret manager backed by age";
+    mainProgram = "kbs2";
     homepage = "https://github.com/woodruffw/kbs2";
     changelog = "https://github.com/woodruffw/kbs2/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/kdigger/default.nix b/nixpkgs/pkgs/tools/security/kdigger/default.nix
index 82070c89447a..dc700bc8e84a 100644
--- a/nixpkgs/pkgs/tools/security/kdigger/default.nix
+++ b/nixpkgs/pkgs/tools/security/kdigger/default.nix
@@ -61,6 +61,7 @@ buildGoModule rec {
     homepage = "https://github.com/quarkslab/kdigger";
     changelog = "https://github.com/quarkslab/kdigger/releases/tag/v${version}";
     description = "An in-pod context discovery tool for Kubernetes penetration testing";
+    mainProgram = "kdigger";
     longDescription = ''
       kdigger, short for "Kubernetes digger", is a context discovery tool for
       Kubernetes penetration testing. This tool is a compilation of various
diff --git a/nixpkgs/pkgs/tools/security/keepwn/default.nix b/nixpkgs/pkgs/tools/security/keepwn/default.nix
index bb856c80710b..1d9c740960f3 100644
--- a/nixpkgs/pkgs/tools/security/keepwn/default.nix
+++ b/nixpkgs/pkgs/tools/security/keepwn/default.nix
@@ -43,6 +43,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to automate KeePass discovery and secret extraction";
+    mainProgram = "keepwn";
     homepage = "https://github.com/Orange-Cyberdefense/KeePwn";
     changelog = "https://github.com/Orange-Cyberdefense/KeePwn/releases/tag/${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/security/kerbrute/default.nix b/nixpkgs/pkgs/tools/security/kerbrute/default.nix
index dbadde6129d8..c020e0e5c4bc 100644
--- a/nixpkgs/pkgs/tools/security/kerbrute/default.nix
+++ b/nixpkgs/pkgs/tools/security/kerbrute/default.nix
@@ -23,6 +23,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = {
     homepage = "https://github.com/TarlogicSecurity/kerbrute";
     description = "Kerberos bruteforce utility";
+    mainProgram = "kerbrute";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ applePrincess ];
   };
diff --git a/nixpkgs/pkgs/tools/security/kestrel/default.nix b/nixpkgs/pkgs/tools/security/kestrel/default.nix
index f3d40b5ade0c..a94b412e67ee 100644
--- a/nixpkgs/pkgs/tools/security/kestrel/default.nix
+++ b/nixpkgs/pkgs/tools/security/kestrel/default.nix
@@ -28,6 +28,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "File encryption done right";
+    mainProgram = "kestrel";
     longDescription = "
       Kestrel is a data-at-rest file encryption program
       that lets you encrypt files to anyone with a public key.
diff --git a/nixpkgs/pkgs/tools/security/keybase/gui.nix b/nixpkgs/pkgs/tools/security/keybase/gui.nix
index 8541b02d583e..577e91c24e59 100644
--- a/nixpkgs/pkgs/tools/security/keybase/gui.nix
+++ b/nixpkgs/pkgs/tools/security/keybase/gui.nix
@@ -109,6 +109,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.keybase.io/";
     description = "The Keybase official GUI";
+    mainProgram = "keybase-gui";
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ avaq rvolosatovs puffnfresh np Br1ght0ne shofius ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/nixpkgs/pkgs/tools/security/keycard-cli/default.nix b/nixpkgs/pkgs/tools/security/keycard-cli/default.nix
index 851a0dac9031..26c1d7934fbb 100644
--- a/nixpkgs/pkgs/tools/security/keycard-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/keycard-cli/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A command line tool and shell to manage keycards";
+    mainProgram = "keycard-cli";
     homepage = "https://keycard.status.im";
     license = licenses.mpl20;
     maintainers = [ maintainers.zimbatm ];
diff --git a/nixpkgs/pkgs/tools/security/keyscope/default.nix b/nixpkgs/pkgs/tools/security/keyscope/default.nix
index 31d97256f0e7..928daf4b2303 100644
--- a/nixpkgs/pkgs/tools/security/keyscope/default.nix
+++ b/nixpkgs/pkgs/tools/security/keyscope/default.nix
@@ -41,6 +41,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A key and secret workflow (validation, invalidation, etc.) tool";
+    mainProgram = "keyscope";
     homepage = "https://github.com/spectralops/keyscope";
     changelog = "https://github.com/spectralops/keyscope/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/security/kiterunner/default.nix b/nixpkgs/pkgs/tools/security/kiterunner/default.nix
index 5f73ba055902..f059eeb41153 100644
--- a/nixpkgs/pkgs/tools/security/kiterunner/default.nix
+++ b/nixpkgs/pkgs/tools/security/kiterunner/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Contextual content discovery tool";
+    mainProgram = "kiterunner";
     longDescription = ''
       Kiterunner is a tool that is capable of not only performing traditional
       content discovery at lightning fast speeds, but also bruteforcing routes
diff --git a/nixpkgs/pkgs/tools/security/knockpy/default.nix b/nixpkgs/pkgs/tools/security/knockpy/default.nix
index 5b68560c1fa3..6d4e80ec98c2 100644
--- a/nixpkgs/pkgs/tools/security/knockpy/default.nix
+++ b/nixpkgs/pkgs/tools/security/knockpy/default.nix
@@ -17,6 +17,7 @@ python3.pkgs.buildPythonApplication rec {
 
   pythonRelaxDeps = [
     "beautifulsoup4"
+    "dnspython"
     "tqdm"
   ];
 
@@ -42,6 +43,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to scan subdomains";
+    mainProgram = "knockpy";
     homepage = "https://github.com/guelfoweb/knock";
     changelog = "https://github.com/guelfoweb/knock/releases/tag/${version}";
     license = with licenses; [ gpl3Only ];
diff --git a/nixpkgs/pkgs/tools/security/knowsmore/default.nix b/nixpkgs/pkgs/tools/security/knowsmore/default.nix
index d9a806ef2a58..f73ae1032efa 100644
--- a/nixpkgs/pkgs/tools/security/knowsmore/default.nix
+++ b/nixpkgs/pkgs/tools/security/knowsmore/default.nix
@@ -47,6 +47,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for pentesting Microsoft Active Directory";
+    mainProgram = "knowsmore";
     homepage = "https://github.com/helviojunior/knowsmore";
     changelog = "https://github.com/helviojunior/knowsmore/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/security/kpcli/default.nix b/nixpkgs/pkgs/tools/security/kpcli/default.nix
index 3ca03ee3ca10..0509663af1aa 100644
--- a/nixpkgs/pkgs/tools/security/kpcli/default.nix
+++ b/nixpkgs/pkgs/tools/security/kpcli/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "KeePass Command Line Interface";
+    mainProgram = "kpcli";
     longDescription = ''
       KeePass Command Line Interface (CLI) / interactive shell.
       Use this program to access and manage your KeePass 1.x or 2.x databases from a Unix-like command line.
diff --git a/nixpkgs/pkgs/tools/security/kube-bench/default.nix b/nixpkgs/pkgs/tools/security/kube-bench/default.nix
index 673dde4a58a1..4e539fa96dd5 100644
--- a/nixpkgs/pkgs/tools/security/kube-bench/default.nix
+++ b/nixpkgs/pkgs/tools/security/kube-bench/default.nix
@@ -43,6 +43,7 @@ buildGoModule rec {
     homepage = "https://github.com/aquasecurity/kube-bench";
     changelog = "https://github.com/aquasecurity/kube-bench/releases/tag/v${version}";
     description = "Checks whether Kubernetes is deployed according to security best practices as defined in the CIS Kubernetes Benchmark";
+    mainProgram = "kube-bench";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
   };
diff --git a/nixpkgs/pkgs/tools/security/kubeaudit/default.nix b/nixpkgs/pkgs/tools/security/kubeaudit/default.nix
index 135d29c27223..f1b673d2de70 100644
--- a/nixpkgs/pkgs/tools/security/kubeaudit/default.nix
+++ b/nixpkgs/pkgs/tools/security/kubeaudit/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Audit tool for Kubernetes";
+    mainProgram = "kubeaudit";
     homepage = "https://github.com/Shopify/kubeaudit";
     changelog = "https://github.com/Shopify/kubeaudit/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/tools/security/kubeclarity/default.nix b/nixpkgs/pkgs/tools/security/kubeclarity/default.nix
index 4aed36bbeaa2..38de010dd931 100644
--- a/nixpkgs/pkgs/tools/security/kubeclarity/default.nix
+++ b/nixpkgs/pkgs/tools/security/kubeclarity/default.nix
@@ -41,6 +41,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Kubernetes runtime scanner";
+    mainProgram = "kubeclarity";
     longDescription = ''
       KubeClarity is a vulnerabilities scanning and CIS Docker benchmark tool that
       allows users to get an accurate and immediate risk assessment of their
diff --git a/nixpkgs/pkgs/tools/security/kubernetes-polaris/default.nix b/nixpkgs/pkgs/tools/security/kubernetes-polaris/default.nix
index b053640d8da9..737c901e570b 100644
--- a/nixpkgs/pkgs/tools/security/kubernetes-polaris/default.nix
+++ b/nixpkgs/pkgs/tools/security/kubernetes-polaris/default.nix
@@ -45,6 +45,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Validate and remediate Kubernetes resources to ensure configuration best practices are followed";
+    mainProgram = "polaris";
     homepage = "https://www.fairwinds.com/polaris";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ longer ];
diff --git a/nixpkgs/pkgs/tools/security/kubescape/default.nix b/nixpkgs/pkgs/tools/security/kubescape/default.nix
index b5661ccbcd3c..c6fb92044cdc 100644
--- a/nixpkgs/pkgs/tools/security/kubescape/default.nix
+++ b/nixpkgs/pkgs/tools/security/kubescape/default.nix
@@ -71,6 +71,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool for testing if Kubernetes is deployed securely";
+    mainProgram = "kubescape";
     homepage = "https://github.com/kubescape/kubescape";
     changelog = "https://github.com/kubescape/kubescape/releases/tag/v${version}";
     longDescription = ''
diff --git a/nixpkgs/pkgs/tools/security/kubesec/default.nix b/nixpkgs/pkgs/tools/security/kubesec/default.nix
index 4fa9337e1cb5..ed562124da90 100644
--- a/nixpkgs/pkgs/tools/security/kubesec/default.nix
+++ b/nixpkgs/pkgs/tools/security/kubesec/default.nix
@@ -46,6 +46,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Security risk analysis tool for Kubernetes resources";
+    mainProgram = "kubesec";
     homepage = "https://github.com/controlplaneio/kubesec";
     changelog = "https://github.com/controlplaneio/kubesec/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 ];
diff --git a/nixpkgs/pkgs/tools/security/ldapmonitor/default.nix b/nixpkgs/pkgs/tools/security/ldapmonitor/default.nix
index 51295d2841a9..989e1bebc153 100644
--- a/nixpkgs/pkgs/tools/security/ldapmonitor/default.nix
+++ b/nixpkgs/pkgs/tools/security/ldapmonitor/default.nix
@@ -33,6 +33,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to monitor creation, deletion and changes to LDAP objects";
+    mainProgram = "ldapmonitor";
     homepage = "https://github.com/p0dalirius/LDAPmonitor";
     changelog = "https://github.com/p0dalirius/LDAPmonitor/releases/tag/${version}";
     license = with licenses; [ gpl3Only ];
diff --git a/nixpkgs/pkgs/tools/security/ldeep/default.nix b/nixpkgs/pkgs/tools/security/ldeep/default.nix
index ddbff2357271..92d5ff106b6c 100644
--- a/nixpkgs/pkgs/tools/security/ldeep/default.nix
+++ b/nixpkgs/pkgs/tools/security/ldeep/default.nix
@@ -48,6 +48,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "In-depth LDAP enumeration utility";
+    mainProgram = "ldeep";
     homepage = "https://github.com/franc-pentest/ldeep";
     changelog = "https://github.com/franc-pentest/ldeep/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/tools/security/lesspass-cli/default.nix b/nixpkgs/pkgs/tools/security/lesspass-cli/default.nix
index 34d36f93b5fb..c568be5ebbd8 100644
--- a/nixpkgs/pkgs/tools/security/lesspass-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/lesspass-cli/default.nix
@@ -32,6 +32,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Stateless password manager";
+    mainProgram = "lesspass";
     homepage = "https://lesspass.com";
     maintainers = with maintainers; [ jasoncarr ];
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/tools/security/lil-pwny/default.nix b/nixpkgs/pkgs/tools/security/lil-pwny/default.nix
index c8251dfaa249..42ee72d2c204 100644
--- a/nixpkgs/pkgs/tools/security/lil-pwny/default.nix
+++ b/nixpkgs/pkgs/tools/security/lil-pwny/default.nix
@@ -24,6 +24,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Offline auditing of Active Directory passwords";
+    mainProgram = "lil-pwny";
     homepage = "https://github.com/PaperMtn/lil-pwny";
     changelog = "https://github.com/PaperMtn/lil-pwny/blob/${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/security/linux-exploit-suggester/default.nix b/nixpkgs/pkgs/tools/security/linux-exploit-suggester/default.nix
index 9744c416bb74..ed68e8e7c7a3 100644
--- a/nixpkgs/pkgs/tools/security/linux-exploit-suggester/default.nix
+++ b/nixpkgs/pkgs/tools/security/linux-exploit-suggester/default.nix
@@ -21,6 +21,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool designed to assist in detecting security deficiencies for given Linux kernel/Linux-based machine";
+    mainProgram = "linux-exploit-suggester";
     homepage = "https://github.com/mzet-/linux-exploit-suggester";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ emilytrau ];
diff --git a/nixpkgs/pkgs/tools/security/log4j-scan/default.nix b/nixpkgs/pkgs/tools/security/log4j-scan/default.nix
index bd2772efb416..e3de824b223c 100644
--- a/nixpkgs/pkgs/tools/security/log4j-scan/default.nix
+++ b/nixpkgs/pkgs/tools/security/log4j-scan/default.nix
@@ -37,6 +37,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Scanner for finding hosts which are vulnerable for log4j";
+    mainProgram = "log4j-scan";
     homepage = "https://github.com/fullhunt/log4j-scan";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/log4j-sniffer/default.nix b/nixpkgs/pkgs/tools/security/log4j-sniffer/default.nix
index dec7ce35866a..d13180d4e403 100644
--- a/nixpkgs/pkgs/tools/security/log4j-sniffer/default.nix
+++ b/nixpkgs/pkgs/tools/security/log4j-sniffer/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool that scans archives to check for vulnerable log4j versions";
+    mainProgram = "log4j-sniffer";
     homepage = "https://github.com/palantir/log4j-sniffer";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/lynis/default.nix b/nixpkgs/pkgs/tools/security/lynis/default.nix
index 2a5030a954a6..d207e3d6e3e0 100644
--- a/nixpkgs/pkgs/tools/security/lynis/default.nix
+++ b/nixpkgs/pkgs/tools/security/lynis/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lynis";
-  version = "3.0.9";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "CISOfy";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Qf5YVvsw4o2ZS3KjrHPJt8+iPr7G97egdDRN+peL8eU=";
+    sha256 = "sha256-DdsBGISKZuqDwSeuy8/73qskP3XoO3QRT7+bkKIJcBU=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Security auditing tool for Linux, macOS, and UNIX-based systems";
+    mainProgram = "lynis";
     homepage = "https://cisofy.com/lynis/";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/security/masscan/default.nix b/nixpkgs/pkgs/tools/security/masscan/default.nix
index 107ffe92b2cc..a6aa990c1d82 100644
--- a/nixpkgs/pkgs/tools/security/masscan/default.nix
+++ b/nixpkgs/pkgs/tools/security/masscan/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fast scan of the Internet";
+    mainProgram = "masscan";
     homepage = "https://github.com/robertdavidgraham/masscan";
     changelog = "https://github.com/robertdavidgraham/masscan/releases/tag/${version}";
     license = licenses.agpl3Only;
diff --git a/nixpkgs/pkgs/tools/security/medusa/default.nix b/nixpkgs/pkgs/tools/security/medusa/default.nix
index a5ac8f06d16d..3a29f2a6e283 100644
--- a/nixpkgs/pkgs/tools/security/medusa/default.nix
+++ b/nixpkgs/pkgs/tools/security/medusa/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/jmk-foofus/medusa";
     description = "A speedy, parallel, and modular, login brute-forcer";
+    mainProgram = "medusa";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/tools/security/melt/default.nix b/nixpkgs/pkgs/tools/security/melt/default.nix
index 01664f2118b1..8721e34b566f 100644
--- a/nixpkgs/pkgs/tools/security/melt/default.nix
+++ b/nixpkgs/pkgs/tools/security/melt/default.nix
@@ -2,21 +2,22 @@
 
 buildGoModule rec {
   pname = "melt";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "melt";
     rev = "v${version}";
-    sha256 = "sha256-LKHAVVzVhHlYRDgQCIQDQ8MLnTzxsKo198BITdHjTDA=";
+    sha256 = "sha256-AfFsw1Xjj0RsP2LOeMBDffkcqgmxsqsE1iguP/0IDtM=";
   };
 
-  vendorHash = "sha256-xTisSPACxuBrv0R2GYinFGYNXD0zoCD8DFkirdc9gIE=";
+  vendorHash = "sha256-Ec3RWH7I8nv6ZVYLrX0b/2RWwZ6cO4qbs0XqQemUYnE=";
 
   ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
 
   meta = with lib; {
     description = "Backup and restore Ed25519 SSH keys with seed words";
+    mainProgram = "melt";
     homepage = "https://github.com/charmbracelet/melt";
     changelog = "https://github.com/charmbracelet/melt/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/metasploit/Gemfile b/nixpkgs/pkgs/tools/security/metasploit/Gemfile
index 20860f2e5d79..21f6f0ecbd2a 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/Gemfile
+++ b/nixpkgs/pkgs/tools/security/metasploit/Gemfile
@@ -1,4 +1,4 @@
 # frozen_string_literal: true
 source "https://rubygems.org"
 
-gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.3.58"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.4.0"
diff --git a/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock b/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
index 662512b54dca..b58232b1e8ef 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: 08ebefe2368f73ceeac2c5f9c20a49a82d6a969e
-  ref: refs/tags/6.3.58
+  revision: c82de1374a222da3ca6db840432a971cfd4e865e
+  ref: refs/tags/6.4.0
   specs:
-    metasploit-framework (6.3.58)
+    metasploit-framework (6.4.0)
       actionpack (~> 7.0.0)
       activerecord (~> 7.0.0)
       activesupport (~> 7.0.0)
@@ -83,7 +83,7 @@ GIT
       rex-zip
       ruby-macho
       ruby-mysql
-      ruby_smb (~> 3.3.0)
+      ruby_smb (~> 3.3.3)
       rubyntlm
       rubyzip
       sinatra
@@ -166,7 +166,7 @@ GEM
     bcrypt (3.1.20)
     bcrypt_pbkdf (1.1.0)
     bigdecimal (3.1.6)
-    bindata (2.5.0)
+    bindata (2.4.15)
     bootsnap (1.18.3)
       msgpack (~> 1.2)
     bson (5.0.0)
@@ -398,8 +398,8 @@ GEM
     ruby-mysql (4.1.0)
     ruby-rc4 (0.1.5)
     ruby2_keywords (0.0.5)
-    ruby_smb (3.3.2)
-      bindata
+    ruby_smb (3.3.4)
+      bindata (= 2.4.15)
       openssl-ccm
       openssl-cmac
       rubyntlm
@@ -469,4 +469,4 @@ DEPENDENCIES
   metasploit-framework!
 
 BUNDLED WITH
-   2.4.13
+   2.5.6
diff --git a/nixpkgs/pkgs/tools/security/metasploit/default.nix b/nixpkgs/pkgs/tools/security/metasploit/default.nix
index a0d8a05c0821..cacaf4ec0b0e 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/default.nix
+++ b/nixpkgs/pkgs/tools/security/metasploit/default.nix
@@ -15,13 +15,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.3.58";
+  version = "6.4.0";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = "refs/tags/${version}";
-    hash = "sha256-NUm+6vWmSpGpy4KGXQ/pQDqeU3ORhQrQwwicFCMyjhg=";
+    hash = "sha256-1OWgQgnmsKxGHzX2ly/7xIJH4BcWUV6SjScxB5bMhu0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/security/metasploit/gemset.nix b/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
index 5cfb435137d2..a35e66a42222 100644
--- a/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
+++ b/nixpkgs/pkgs/tools/security/metasploit/gemset.nix
@@ -234,10 +234,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08r67nglsqnxrbn803szf5bdnqhchhq8kf2by94f37fcl65wpp19";
+      sha256 = "04y4zgh4bbcb8wmkxwfqg4saky1d1f3xw8z6yk543q13h8ky8rz5";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.4.15";
   };
   bootsnap = {
     groups = ["default"];
@@ -674,12 +674,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "08ebefe2368f73ceeac2c5f9c20a49a82d6a969e";
-      sha256 = "064f68ii9708qg80m1cifd9rwfj0x47mv1l2rflr2jm6ypmbwj9m";
+      rev = "c82de1374a222da3ca6db840432a971cfd4e865e";
+      sha256 = "1vc6rjb0fc97in95wl8n2zh4g0n4zcprgxim3x3arc76151a1rfl";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.3.58";
+    version = "6.4.0";
   };
   metasploit-model = {
     groups = ["default"];
@@ -1397,10 +1397,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yy5z53mp2l3d8k8dhf8s8hbscmgd829j50nfcgmqrli0vvz0s1a";
+      sha256 = "0wcbglknz86qf7sbsns84a35a0vvfn9cn1cbhf9ycjwh6nqxhcim";
       type = "gem";
     };
-    version = "3.3.2";
+    version = "3.3.4";
   };
   rubyntlm = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/security/mfcuk/default.nix b/nixpkgs/pkgs/tools/security/mfcuk/default.nix
index 3128a787807a..d6736b5b097a 100644
--- a/nixpkgs/pkgs/tools/security/mfcuk/default.nix
+++ b/nixpkgs/pkgs/tools/security/mfcuk/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "MiFare Classic Universal toolKit";
+    mainProgram = "mfcuk";
     license = licenses.gpl2;
     homepage = "https://github.com/nfc-tools/mfcuk";
     maintainers = with maintainers; [ offline ];
diff --git a/nixpkgs/pkgs/tools/security/mfoc/default.nix b/nixpkgs/pkgs/tools/security/mfoc/default.nix
index ca1f4a5e4f25..9ede0ffc6157 100644
--- a/nixpkgs/pkgs/tools/security/mfoc/default.nix
+++ b/nixpkgs/pkgs/tools/security/mfoc/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Mifare Classic Offline Cracker";
+    mainProgram = "mfoc";
     license = licenses.gpl2;
     homepage = "https://github.com/nfc-tools/mfoc";
     maintainers = with maintainers; [ offline ];
diff --git a/nixpkgs/pkgs/tools/security/minica/default.nix b/nixpkgs/pkgs/tools/security/minica/default.nix
index 6dd6d1fd5ce0..e7a05412303e 100644
--- a/nixpkgs/pkgs/tools/security/minica/default.nix
+++ b/nixpkgs/pkgs/tools/security/minica/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A simple tool for generating self signed certificates";
+    mainProgram = "minica";
     longDescription = ''
       Minica is a simple CA intended for use in situations where the CA operator
       also operates each host where a certificate will be used. It automatically
diff --git a/nixpkgs/pkgs/tools/security/mitm6/default.nix b/nixpkgs/pkgs/tools/security/mitm6/default.nix
index a7587330e7b9..f3626355fbb1 100644
--- a/nixpkgs/pkgs/tools/security/mitm6/default.nix
+++ b/nixpkgs/pkgs/tools/security/mitm6/default.nix
@@ -29,6 +29,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = {
     description = "DHCPv6 network spoofing application";
+    mainProgram = "mitm6";
     homepage = "https://github.com/dirkjanm/mitm6";
     license = lib.licenses.gpl2Only;
     maintainers = with lib.maintainers; [ arcayr ];
diff --git a/nixpkgs/pkgs/tools/security/mitmproxy2swagger/default.nix b/nixpkgs/pkgs/tools/security/mitmproxy2swagger/default.nix
index 56d47973b7e3..0c940692f9e8 100644
--- a/nixpkgs/pkgs/tools/security/mitmproxy2swagger/default.nix
+++ b/nixpkgs/pkgs/tools/security/mitmproxy2swagger/default.nix
@@ -39,6 +39,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to automagically reverse-engineer REST APIs";
+    mainProgram = "mitmproxy2swagger";
     homepage = "https://github.com/alufers/mitmproxy2swagger";
     changelog = "https://github.com/alufers/mitmproxy2swagger/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/mkpasswd/default.nix b/nixpkgs/pkgs/tools/security/mkpasswd/default.nix
index 2ee71b8227eb..00b1e8a01501 100644
--- a/nixpkgs/pkgs/tools/security/mkpasswd/default.nix
+++ b/nixpkgs/pkgs/tools/security/mkpasswd/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://packages.qa.debian.org/w/whois.html";
     description = "Overfeatured front-end to crypt, from the Debian whois package";
+    mainProgram = "mkpasswd";
     license = licenses.gpl2;
     maintainers = with maintainers; [ fpletz ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/security/mkrand/default.nix b/nixpkgs/pkgs/tools/security/mkrand/default.nix
index 21c9586cd6c3..b0ebe7e521fa 100644
--- a/nixpkgs/pkgs/tools/security/mkrand/default.nix
+++ b/nixpkgs/pkgs/tools/security/mkrand/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A Digital Random Bit Generator";
+    mainProgram = "mkrand";
     longDescription = "MKRAND is a utility for generating random information.";
     homepage = "https://github.com/mknight-tag/MKRAND/";
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/mktemp/default.nix b/nixpkgs/pkgs/tools/security/mktemp/default.nix
index 5010780800de..ca16611332f7 100644
--- a/nixpkgs/pkgs/tools/security/mktemp/default.nix
+++ b/nixpkgs/pkgs/tools/security/mktemp/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple tool to make temporary file handling in shells scripts safe and simple";
+    mainProgram = "mktemp";
     homepage = "https://www.mktemp.org";
     license = licenses.isc;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/security/mokutil/default.nix b/nixpkgs/pkgs/tools/security/mokutil/default.nix
index bc38be4cd3e6..cd36b8eaa1e9 100644
--- a/nixpkgs/pkgs/tools/security/mokutil/default.nix
+++ b/nixpkgs/pkgs/tools/security/mokutil/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mokutil";
-  version = "0.7.0";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "lcp";
     repo = pname;
     rev = version;
-    sha256 = "sha256-PB/VwOJD0DxAioPDYfk2ZDzcN+pSXfUC86hGq2kYhts=";
+    sha256 = "sha256-DO3S1O0AKoI8gssnUyBTRj5lDNs6hhisc/5dTIqmbzM=";
   };
 
   nativeBuildInputs = [
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/lcp/mokutil";
     description = "Utility to manipulate machines owner keys";
+    mainProgram = "mokutil";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ nickcao ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/security/monsoon/default.nix b/nixpkgs/pkgs/tools/security/monsoon/default.nix
index 8ac0c834ee03..3341366e47bb 100644
--- a/nixpkgs/pkgs/tools/security/monsoon/default.nix
+++ b/nixpkgs/pkgs/tools/security/monsoon/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Fast HTTP enumerator";
+    mainProgram = "monsoon";
     longDescription = ''
       A fast HTTP enumerator that allows you to execute a large number of HTTP
       requests, filter the responses and display them in real-time.
diff --git a/nixpkgs/pkgs/tools/security/mpw/default.nix b/nixpkgs/pkgs/tools/security/mpw/default.nix
index 8d6f7f4f3b1d..25c71eb046db 100644
--- a/nixpkgs/pkgs/tools/security/mpw/default.nix
+++ b/nixpkgs/pkgs/tools/security/mpw/default.nix
@@ -57,6 +57,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A stateless password management solution";
+    mainProgram = "mpw";
     homepage = "https://masterpasswordapp.com/";
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/security/msfpc/default.nix b/nixpkgs/pkgs/tools/security/msfpc/default.nix
index 428611181410..afc67cc4dde3 100644
--- a/nixpkgs/pkgs/tools/security/msfpc/default.nix
+++ b/nixpkgs/pkgs/tools/security/msfpc/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "MSFvenom Payload Creator";
+    mainProgram = "msfpc";
     homepage = "https://github.com/g0tmi1k/msfpc";
     license = licenses.mit;
     maintainers = with maintainers; [ emilytrau ];
diff --git a/nixpkgs/pkgs/tools/security/munge/default.nix b/nixpkgs/pkgs/tools/security/munge/default.nix
index fcf9026f215c..01137be20460 100644
--- a/nixpkgs/pkgs/tools/security/munge/default.nix
+++ b/nixpkgs/pkgs/tools/security/munge/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "munge";
-  version = "0.5.15";
+  version = "0.5.16";
 
   src = fetchFromGitHub {
     owner = "dun";
     repo = "munge";
     rev = "${pname}-${version}";
-    sha256 = "sha256-Ot/oH/RdfPAzoi3P7EYkxS0Fr24KRWfBJxBEWRF0ctI=";
+    sha256 = "sha256-fv42RMUAP8Os33/iHXr70i5Pt2JWZK71DN5vFI3q7Ak=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/tools/security/mx-takeover/default.nix b/nixpkgs/pkgs/tools/security/mx-takeover/default.nix
index 88ef8fbf3ed0..13804b4e8872 100644
--- a/nixpkgs/pkgs/tools/security/mx-takeover/default.nix
+++ b/nixpkgs/pkgs/tools/security/mx-takeover/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to work with DNS MX records";
+    mainProgram = "mx-takeover";
     homepage = "https://github.com/musana/mx-takeover";
     changelog = "https://github.com/musana/mx-takeover/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/naabu/default.nix b/nixpkgs/pkgs/tools/security/naabu/default.nix
index 7d3981222f91..a10c6601412b 100644
--- a/nixpkgs/pkgs/tools/security/naabu/default.nix
+++ b/nixpkgs/pkgs/tools/security/naabu/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "naabu";
-  version = "2.2.1";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "naabu";
     rev = "refs/tags/v${version}";
-    hash = "sha256-z81LL+tx15Zo6OWj4gRSodo7Dk763M+QQ5kYgjrWO3Q=";
+    hash = "sha256-4aFr0kSKsNVXmYNYSt6mP4HryyIYvUKdzIYWjgPhG1Y=";
   };
 
-  vendorHash = "sha256-nwrqxlbvr9FZXJpzmcn0IBEtlJfeYCy8DJsBvxEgj6k=";
+  vendorHash = "sha256-QHVB8ovAWECb4n6CKTK4tnGgTrJSFxIV0KZk4PEYInE=";
 
   buildInputs = [
     libpcap
@@ -34,6 +34,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Fast SYN/CONNECT port scanner";
+    mainProgram = "naabu";
     longDescription = ''
       Naabu is a port scanning tool written in Go that allows you to enumerate
       valid ports for hosts in a fast and reliable manner. It is a really simple
diff --git a/nixpkgs/pkgs/tools/security/nasty/default.nix b/nixpkgs/pkgs/tools/security/nasty/default.nix
index b3b19c9268bf..f0bd0d406c33 100644
--- a/nixpkgs/pkgs/tools/security/nasty/default.nix
+++ b/nixpkgs/pkgs/tools/security/nasty/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Recover the passphrase of your PGP or GPG-key";
+    mainProgram = "nasty";
     longDescription = ''
     Nasty is a program that helps you to recover the passphrase of your PGP or GPG-key
     in case you forget or lost it. It is mostly a proof-of-concept: with a different implementation
diff --git a/nixpkgs/pkgs/tools/security/nbtscanner/default.nix b/nixpkgs/pkgs/tools/security/nbtscanner/default.nix
index 51e9f085164b..b70f554f33fd 100644
--- a/nixpkgs/pkgs/tools/security/nbtscanner/default.nix
+++ b/nixpkgs/pkgs/tools/security/nbtscanner/default.nix
@@ -26,6 +26,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "NetBIOS scanner written in Rust";
+    mainProgram = "nbtscanner";
     homepage = "https://github.com/jonkgrimes/nbtscanner";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/ncrack/default.nix b/nixpkgs/pkgs/tools/security/ncrack/default.nix
index 4b0feccb412a..bfce4dd37123 100644
--- a/nixpkgs/pkgs/tools/security/ncrack/default.nix
+++ b/nixpkgs/pkgs/tools/security/ncrack/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Network authentication tool";
+    mainProgram = "ncrack";
     homepage = "https://nmap.org/ncrack/";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ siraben ];
diff --git a/nixpkgs/pkgs/tools/security/nitrokey-app/default.nix b/nixpkgs/pkgs/tools/security/nitrokey-app/default.nix
index 8e654900e172..018a18656381 100644
--- a/nixpkgs/pkgs/tools/security/nitrokey-app/default.nix
+++ b/nixpkgs/pkgs/tools/security/nitrokey-app/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Provides extra functionality for the Nitrokey Pro and Storage";
+    mainProgram = "nitrokey-app";
     longDescription = ''
       The nitrokey-app provides a QT system tray widget with which you can
       access the extra functionality of a Nitrokey Storage or Nitrokey Pro.
diff --git a/nixpkgs/pkgs/tools/security/nmap-formatter/default.nix b/nixpkgs/pkgs/tools/security/nmap-formatter/default.nix
index b78cb2e075d2..ade602a65375 100644
--- a/nixpkgs/pkgs/tools/security/nmap-formatter/default.nix
+++ b/nixpkgs/pkgs/tools/security/nmap-formatter/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool that allows you to convert nmap output";
+    mainProgram = "nmap-formatter";
     homepage = "https://github.com/vdjagilev/nmap-formatter";
     changelog = "https://github.com/vdjagilev/nmap-formatter/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/nmap/qt.nix b/nixpkgs/pkgs/tools/security/nmap/qt.nix
index b4e406a0035b..56ebc5db6213 100644
--- a/nixpkgs/pkgs/tools/security/nmap/qt.nix
+++ b/nixpkgs/pkgs/tools/security/nmap/qt.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Qt frontend for nmap";
+    mainProgram = "nmapsi4";
     license = licenses.gpl2;
     maintainers = with maintainers; [ peterhoeg ];
     inherit (src.meta) homepage;
diff --git a/nixpkgs/pkgs/tools/security/noseyparker/default.nix b/nixpkgs/pkgs/tools/security/noseyparker/default.nix
index c6e4056d9fab..72a1d87f1112 100644
--- a/nixpkgs/pkgs/tools/security/noseyparker/default.nix
+++ b/nixpkgs/pkgs/tools/security/noseyparker/default.nix
@@ -39,6 +39,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Find secrets and sensitive information in textual data";
+    mainProgram = "noseyparker";
     homepage = "https://github.com/praetorian-inc/noseyparker";
     changelog = "https://github.com/praetorian-inc/noseyparker/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/security/nosqli/default.nix b/nixpkgs/pkgs/tools/security/nosqli/default.nix
index 47095902cea6..3a1721831a0a 100644
--- a/nixpkgs/pkgs/tools/security/nosqli/default.nix
+++ b/nixpkgs/pkgs/tools/security/nosqli/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "NoSql Injection tool for finding vulnerable websites using MongoDB";
+    mainProgram = "nosqli";
     homepage = "https://github.com/Charlie-belmer/nosqli";
     license = with licenses; [ agpl3Plus ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/notary/default.nix b/nixpkgs/pkgs/tools/security/notary/default.nix
index ab6ec0b16818..f1fed4806eb4 100644
--- a/nixpkgs/pkgs/tools/security/notary/default.nix
+++ b/nixpkgs/pkgs/tools/security/notary/default.nix
@@ -37,6 +37,7 @@ buildGoPackage rec {
 
   meta = with lib; {
     description = "A project that allows anyone to have trust over arbitrary collections of data";
+    mainProgram = "notary";
     longDescription = ''
       The Notary project comprises a server and a client for running and
       interacting with trusted collections. See the service architecture
diff --git a/nixpkgs/pkgs/tools/security/ntlmrecon/default.nix b/nixpkgs/pkgs/tools/security/ntlmrecon/default.nix
index 648e2d585e09..10a564706c9a 100644
--- a/nixpkgs/pkgs/tools/security/ntlmrecon/default.nix
+++ b/nixpkgs/pkgs/tools/security/ntlmrecon/default.nix
@@ -31,6 +31,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Information enumerator for NTLM authentication enabled web endpoints";
+    mainProgram = "ntlmrecon";
     homepage = "https://github.com/pwnfoo/NTLMRecon";
     changelog = "https://github.com/pwnfoo/NTLMRecon/releases/tag/v-${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/tools/security/nuclei/default.nix b/nixpkgs/pkgs/tools/security/nuclei/default.nix
index 1fb47c7762cb..a89bb3cbf62e 100644
--- a/nixpkgs/pkgs/tools/security/nuclei/default.nix
+++ b/nixpkgs/pkgs/tools/security/nuclei/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "3.1.10";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "nuclei";
     rev = "refs/tags/v${version}";
-    hash = "sha256-11ORN9h2VsXJKZw5HUljq6Tk0XC81tC7sCPbFgcTd+k=";
+    hash = "sha256-eYFHKXB6TSCLPMKiXvuSpt/2B+rbn7VZqoGEHp2vito=";
   };
 
-  vendorHash = "sha256-0ERUvPUAxj0H62YcRvsfYX8h0Hp/mA6NdE8E/BjPGzw=";
+  vendorHash = "sha256-s0hspa3fKMHmFPPwB0tCDJoGEH2JpgFUaIbiSQJTtr0=";
 
   subPackages = [
     "cmd/nuclei/"
diff --git a/nixpkgs/pkgs/tools/security/nwipe/default.nix b/nixpkgs/pkgs/tools/security/nwipe/default.nix
index 35ca1f9b4125..00c66f351930 100644
--- a/nixpkgs/pkgs/tools/security/nwipe/default.nix
+++ b/nixpkgs/pkgs/tools/security/nwipe/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Securely erase disks";
+    mainProgram = "nwipe";
     homepage = "https://github.com/martijnvanbrummelen/nwipe";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ woffs ];
diff --git a/nixpkgs/pkgs/tools/security/oauth2c/default.nix b/nixpkgs/pkgs/tools/security/oauth2c/default.nix
index 2cc9a05e3d15..292ac255b3a0 100644
--- a/nixpkgs/pkgs/tools/security/oauth2c/default.nix
+++ b/nixpkgs/pkgs/tools/security/oauth2c/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/cloudentity/oauth2c";
     description = "User-friendly OAuth2 CLI";
+    mainProgram = "oauth2c";
     longDescription = ''
       oauth2c is a command-line tool for interacting with OAuth 2.0
       authorization servers. Its goal is to make it easy to fetch access tokens
diff --git a/nixpkgs/pkgs/tools/security/octosuite/default.nix b/nixpkgs/pkgs/tools/security/octosuite/default.nix
index 88b29dce721c..af4dd9c39740 100644
--- a/nixpkgs/pkgs/tools/security/octosuite/default.nix
+++ b/nixpkgs/pkgs/tools/security/octosuite/default.nix
@@ -36,6 +36,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Advanced Github OSINT framework";
+    mainProgram = "octosuite";
     homepage = "https://github.com/bellingcat/octosuite";
     changelog = "https://github.com/bellingcat/octosuite/releases/tag/${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/security/onioncircuits/default.nix b/nixpkgs/pkgs/tools/security/onioncircuits/default.nix
index c1468becc262..95692ef1c188 100644
--- a/nixpkgs/pkgs/tools/security/onioncircuits/default.nix
+++ b/nixpkgs/pkgs/tools/security/onioncircuits/default.nix
@@ -51,6 +51,7 @@ python3.pkgs.buildPythonApplication rec {
     broken = stdenv.isDarwin;
     homepage = "https://tails.boum.org";
     description = "GTK application to display Tor circuits and streams";
+    mainProgram = "onioncircuits";
     license = licenses.gpl3;
     maintainers = with maintainers; [ milran ];
   };
diff --git a/nixpkgs/pkgs/tools/security/onlykey-cli/default.nix b/nixpkgs/pkgs/tools/security/onlykey-cli/default.nix
index 4d0b0a267a38..624290c6d555 100644
--- a/nixpkgs/pkgs/tools/security/onlykey-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/onlykey-cli/default.nix
@@ -27,6 +27,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "OnlyKey client and command-line tool";
+    mainProgram = "onlykey-cli";
     homepage = "https://github.com/trustcrypto/python-onlykey";
     license = licenses.mit;
     maintainers = with maintainers; [ ranfdev ];
diff --git a/nixpkgs/pkgs/tools/security/open-ecard/default.nix b/nixpkgs/pkgs/tools/security/open-ecard/default.nix
index e8afdf6bf8c0..a3f3f72bc631 100644
--- a/nixpkgs/pkgs/tools/security/open-ecard/default.nix
+++ b/nixpkgs/pkgs/tools/security/open-ecard/default.nix
@@ -55,6 +55,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Client side implementation of the eCard-API-Framework (BSI
       TR-03112) and related international standards, such as ISO/IEC 24727";
+    mainProgram = "open-ecard";
     homepage = "https://www.openecard.org/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/tools/security/openrisk/default.nix b/nixpkgs/pkgs/tools/security/openrisk/default.nix
index fc8475ca71a2..ebc177a6908f 100644
--- a/nixpkgs/pkgs/tools/security/openrisk/default.nix
+++ b/nixpkgs/pkgs/tools/security/openrisk/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool that generates an AI-based risk score";
+    mainProgram = "openrisk";
     homepage = "https://github.com/projectdiscovery/openrisk";
     changelog = "https://github.com/projectdiscovery/openrisk/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/orjail/default.nix b/nixpkgs/pkgs/tools/security/orjail/default.nix
index adcbf5ae4f9f..ed2d64588306 100644
--- a/nixpkgs/pkgs/tools/security/orjail/default.nix
+++ b/nixpkgs/pkgs/tools/security/orjail/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Force programs to exclusively use tor network";
+    mainProgram = "orjail";
     homepage = "https://github.com/orjail/orjail";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/tools/security/ospd-openvas/default.nix b/nixpkgs/pkgs/tools/security/ospd-openvas/default.nix
index 0e4b4b16e752..82afa1e0fec1 100644
--- a/nixpkgs/pkgs/tools/security/ospd-openvas/default.nix
+++ b/nixpkgs/pkgs/tools/security/ospd-openvas/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ospd-openvas";
-  version = "22.6.2";
-  format = "pyproject";
+  version = "22.7.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "greenbone";
     repo = "ospd-openvas";
     rev = "refs/tags/v${version}";
-    hash = "sha256-SO2+PpxjyP+Yba0X81EgNCOAu7ntlG7zOeWA+7XdRIA=";
+    hash = "sha256-aBrJODymUMj0sflJW/+dMYZBRPYqtS1L2UBENDXb2Xw=";
   };
 
   pythonRelaxDeps = [
diff --git a/nixpkgs/pkgs/tools/security/osv-detector/default.nix b/nixpkgs/pkgs/tools/security/osv-detector/default.nix
index 58db4504d23d..3be67c91d265 100644
--- a/nixpkgs/pkgs/tools/security/osv-detector/default.nix
+++ b/nixpkgs/pkgs/tools/security/osv-detector/default.nix
@@ -48,6 +48,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Auditing tool for detecting vulnerabilities";
+    mainProgram = "osv-detector";
     homepage = "https://github.com/G-Rath/osv-detector";
     changelog = "https://github.com/G-Rath/osv-detector/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/osv-scanner/default.nix b/nixpkgs/pkgs/tools/security/osv-scanner/default.nix
index 26dfe919c428..e51ce66ad024 100644
--- a/nixpkgs/pkgs/tools/security/osv-scanner/default.nix
+++ b/nixpkgs/pkgs/tools/security/osv-scanner/default.nix
@@ -6,16 +6,16 @@
 }:
 buildGoModule rec {
   pname = "osv-scanner";
-  version = "1.6.2";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-/V0zn4Aic6tBJw23YJWkyeCZXf/ehIZlKWd9TZXe40Y=";
+    hash = "sha256-JlTD8el4hXVYI76+cxGNemkUu0n2QxCqisr6R9aPqdI=";
   };
 
-  vendorHash = "sha256-wIXc0YYTdcnUBNbypVwZJ/RNTmaeMteEujmgs5WJ1g0=";
+  vendorHash = "sha256-J5qLs4EirBOfjnLv8eQBSd9w9nzpxBW5GS28CgQMsN8=";
 
   subPackages = [
     "cmd/osv-scanner"
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Vulnerability scanner written in Go which uses the data provided by https://osv.dev";
+    mainProgram = "osv-scanner";
     homepage = "https://github.com/google/osv-scanner";
     changelog = "https://github.com/google/osv-scanner/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/security/otpauth/default.nix b/nixpkgs/pkgs/tools/security/otpauth/default.nix
index e4ffadef63e0..95d9288b6bab 100644
--- a/nixpkgs/pkgs/tools/security/otpauth/default.nix
+++ b/nixpkgs/pkgs/tools/security/otpauth/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Google Authenticator migration decoder";
+    mainProgram = "otpauth";
     homepage = "https://github.com/dim13/otpauth";
     license = licenses.isc;
     maintainers = with maintainers; [ ereslibre ];
diff --git a/nixpkgs/pkgs/tools/security/ots/default.nix b/nixpkgs/pkgs/tools/security/ots/default.nix
index bba9e8e6fb89..7d55bb84d976 100644
--- a/nixpkgs/pkgs/tools/security/ots/default.nix
+++ b/nixpkgs/pkgs/tools/security/ots/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Share end-to-end encrypted secrets with others via a one-time URL";
+    mainProgram = "ots";
     homepage = "https://ots.sniptt.com";
     changelog = "https://github.com/sniptt-official/ots/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/security/pamtester/default.nix b/nixpkgs/pkgs/tools/security/pamtester/default.nix
index d9e59290d676..7261be60f77f 100644
--- a/nixpkgs/pkgs/tools/security/pamtester/default.nix
+++ b/nixpkgs/pkgs/tools/security/pamtester/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Utility program to test the PAM facility";
+    mainProgram = "pamtester";
     homepage = "https://pamtester.sourceforge.net/";
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/security/paperkey/default.nix b/nixpkgs/pkgs/tools/security/paperkey/default.nix
index 8e86415cb9e8..a22c1617f07b 100644
--- a/nixpkgs/pkgs/tools/security/paperkey/default.nix
+++ b/nixpkgs/pkgs/tools/security/paperkey/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Store OpenPGP or GnuPG on paper";
+    mainProgram = "paperkey";
     longDescription = ''
       A reasonable way to achieve a long term backup of OpenPGP (GnuPG, PGP, etc)
       keys is to print them out on paper. Paper and ink have amazingly long
diff --git a/nixpkgs/pkgs/tools/security/pass/extensions/import.nix b/nixpkgs/pkgs/tools/security/pass/extensions/import.nix
index 8c51356e184b..cbba33c1373a 100644
--- a/nixpkgs/pkgs/tools/security/pass/extensions/import.nix
+++ b/nixpkgs/pkgs/tools/security/pass/extensions/import.nix
@@ -60,6 +60,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Pass extension for importing data from existing password managers";
+    mainProgram = "pimport";
     homepage = "https://github.com/roddhjav/pass-import";
     changelog = "https://github.com/roddhjav/pass-import/blob/v${version}/CHANGELOG.rst";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/tools/security/pass/rofi-pass.nix b/nixpkgs/pkgs/tools/security/pass/rofi-pass.nix
index b8fd130df24b..9bf699571592 100644
--- a/nixpkgs/pkgs/tools/security/pass/rofi-pass.nix
+++ b/nixpkgs/pkgs/tools/security/pass/rofi-pass.nix
@@ -84,6 +84,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "A script to make rofi work with password-store";
+    mainProgram = "rofi-pass";
     homepage = "https://github.com/carnager/rofi-pass";
     license = lib.licenses.gpl3;
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/tools/security/pass/wofi-pass.nix b/nixpkgs/pkgs/tools/security/pass/wofi-pass.nix
index b6edce34d20c..9db6a7ffda35 100644
--- a/nixpkgs/pkgs/tools/security/pass/wofi-pass.nix
+++ b/nixpkgs/pkgs/tools/security/pass/wofi-pass.nix
@@ -29,13 +29,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wofi-pass";
-  version = "23.1.4";
+  version = "24.0.2";
 
   src = fetchFromGitHub {
     owner = "schmidtandreas";
     repo = "wofi-pass";
     rev = "v${version}";
-    sha256 = "sha256-Ycu1NFHoglJdOzGuJ7yfmDo1+f+FMPkpQXJuz6nvtig=";
+    sha256 = "sha256-OtUz0YLKuEzA4kv+llrOll0L84nMTkYH6JPxrkQKB6I=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/security/pass2csv/default.nix b/nixpkgs/pkgs/tools/security/pass2csv/default.nix
index aad6338391ee..101af2e7aa94 100644
--- a/nixpkgs/pkgs/tools/security/pass2csv/default.nix
+++ b/nixpkgs/pkgs/tools/security/pass2csv/default.nix
@@ -28,6 +28,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Export pass(1), \"the standard unix password manager\", to CSV";
+    mainProgram = "pass2csv";
     homepage = "https://github.com/reinefjord/pass2csv";
     license = licenses.mit;
     maintainers = with maintainers; [ wolfangaukang ];
diff --git a/nixpkgs/pkgs/tools/security/passphrase2pgp/default.nix b/nixpkgs/pkgs/tools/security/passphrase2pgp/default.nix
index 0ccbcca06c20..0470fd8cfee6 100644
--- a/nixpkgs/pkgs/tools/security/passphrase2pgp/default.nix
+++ b/nixpkgs/pkgs/tools/security/passphrase2pgp/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Predictable, passphrase-based PGP key generator";
+    mainProgram = "passphrase2pgp";
     homepage = "https://github.com/skeeto/passphrase2pgp";
     license = licenses.unlicense;
     maintainers = with maintainers; [ kaction ];
diff --git a/nixpkgs/pkgs/tools/security/pcsc-cyberjack/default.nix b/nixpkgs/pkgs/tools/security/pcsc-cyberjack/default.nix
index 04aad0b27739..fa96753a54f6 100644
--- a/nixpkgs/pkgs/tools/security/pcsc-cyberjack/default.nix
+++ b/nixpkgs/pkgs/tools/security/pcsc-cyberjack/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "REINER SCT cyberJack USB chipcard reader user space driver";
+    mainProgram = "cjflash";
     homepage = "https://www.reiner-sct.com/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ aszlig flokli ];
diff --git a/nixpkgs/pkgs/tools/security/pcsclite/default.nix b/nixpkgs/pkgs/tools/security/pcsclite/default.nix
index 2b55b76b6654..956bf451c7bf 100644
--- a/nixpkgs/pkgs/tools/security/pcsclite/default.nix
+++ b/nixpkgs/pkgs/tools/security/pcsclite/default.nix
@@ -19,7 +19,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   inherit pname;
-  version = "2.0.1";
+  version = "2.0.3";
 
   outputs = [ "out" "lib" "dev" "doc" "man" ];
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "rousseau";
     repo = "PCSC";
     rev = "refs/tags/${finalAttrs.version}";
-    hash = "sha256-7NGlU4byGxtGBticewg8K4FUiDSQZAiB7Q/y+LaqKPo=";
+    hash = "sha256-VDQh2PYAMFwgWvZFD20H3JxgKSFrSUoDLv/6fKEoy5Y=";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/security/pdfcrack/default.nix b/nixpkgs/pkgs/tools/security/pdfcrack/default.nix
index d4930b023b6f..ae863e1ec1f5 100644
--- a/nixpkgs/pkgs/tools/security/pdfcrack/default.nix
+++ b/nixpkgs/pkgs/tools/security/pdfcrack/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://pdfcrack.sourceforge.net/";
     description = "Small command line driven tool for recovering passwords and content from PDF files";
+    mainProgram = "pdfcrack";
     license = with licenses; [ gpl2Plus ];
     platforms = platforms.all;
     maintainers = with maintainers; [ qoelet ];
diff --git a/nixpkgs/pkgs/tools/security/pgpdump/default.nix b/nixpkgs/pkgs/tools/security/pgpdump/default.nix
index 9ebe0d920027..31a1c506f329 100644
--- a/nixpkgs/pkgs/tools/security/pgpdump/default.nix
+++ b/nixpkgs/pkgs/tools/security/pgpdump/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A PGP packet visualizer";
+    mainProgram = "pgpdump";
     longDescription = ''
       pgpdump is a PGP packet visualizer which displays the packet format of
       OpenPGP (RFC 4880) and PGP version 2 (RFC 1991).
diff --git a/nixpkgs/pkgs/tools/security/pinentry/default.nix b/nixpkgs/pkgs/tools/security/pinentry/default.nix
index baa78521f345..61002917eb0d 100644
--- a/nixpkgs/pkgs/tools/security/pinentry/default.nix
+++ b/nixpkgs/pkgs/tools/security/pinentry/default.nix
@@ -1,100 +1,121 @@
-{ fetchurl, mkDerivation, fetchpatch, stdenv, lib, pkg-config, autoreconfHook, wrapGAppsHook
-, libgpg-error, libassuan, qtbase, wrapQtAppsHook
-, ncurses, gtk2, gcr
-, withLibsecret ? true, libsecret
-, enabledFlavors ? [ "curses" "tty" "gtk2" "emacs" ]
-  ++ lib.optionals stdenv.isLinux [ "gnome3" ]
-  ++ lib.optionals (!stdenv.isDarwin) [ "qt" ]
+{ stdenv
+, lib
+, fetchurl
+, fetchpatch
+, pkg-config
+, autoreconfHook
+, wrapGAppsHook
+, libgpg-error
+, libassuan
+, libsForQt5
+, ncurses
+, gtk2
+, gcr
+, withLibsecret ? true
+, libsecret
 }:
 
-assert lib.isList enabledFlavors && enabledFlavors != [];
-
 let
-  pinentryMkDerivation =
-    if (builtins.elem "qt" enabledFlavors)
-      then mkDerivation
-      else stdenv.mkDerivation;
-
-  enableFeaturePinentry = f:
-    let
-      flag = flavorInfo.${f}.flag or null;
-    in
-      lib.optionalString (flag != null)
-        (lib.enableFeature (lib.elem f enabledFlavors) ("pinentry-" + flag));
-
   flavorInfo = {
-    curses = { bin = "curses"; flag = "curses"; buildInputs = [ ncurses ]; };
-    tty = { bin = "tty"; flag = "tty"; };
-    gtk2 = { bin = "gtk-2"; flag = "gtk2"; buildInputs = [ gtk2 ]; };
-    gnome3 = { bin = "gnome3"; flag = "gnome3"; buildInputs = [ gcr ]; nativeBuildInputs = [ wrapGAppsHook ]; };
-    qt = { bin = "qt"; flag = "qt"; buildInputs = [ qtbase ]; nativeBuildInputs = [ wrapQtAppsHook ]; };
-    emacs = { bin = "emacs"; flag = "emacs"; buildInputs = []; };
-  };
-
-in
-
-pinentryMkDerivation rec {
-  pname = "pinentry";
-  version = "1.2.1";
-
-  src = fetchurl {
-    url = "mirror://gnupg/pinentry/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-RXoYXlqFI4+5RalV3GNSq5YtyLSHILYvyfpIx1QKQGc=";
+    tty = { flag = "tty"; };
+    curses = {
+      flag = "curses";
+      buildInputs = [ ncurses ];
+    };
+    gtk2 = {
+      flag = "gtk2";
+      buildInputs = [ gtk2 ];
+    };
+    gnome3 = {
+      flag = "gnome3";
+      buildInputs = [ gcr ];
+      nativeBuildInputs = [ wrapGAppsHook ];
+    };
+    qt = {
+      flag = "qt";
+      buildInputs = [ libsForQt5.qtbase ];
+      nativeBuildInputs = [ libsForQt5.wrapQtAppsHook ];
+    };
+    emacs = { flag = "emacs"; };
   };
 
-  nativeBuildInputs = [ pkg-config autoreconfHook ]
-    ++ lib.concatMap(f: flavorInfo.${f}.nativeBuildInputs or []) enabledFlavors;
-
-  buildInputs = [ libgpg-error libassuan ]
-    ++ lib.optional withLibsecret libsecret
-    ++ lib.concatMap(f: flavorInfo.${f}.buildInputs or []) enabledFlavors;
-
-  dontWrapGApps = true;
-  dontWrapQtApps = true;
-
-  patches = [
-    ./autoconf-ar.patch
-  ] ++ lib.optionals (lib.elem "gtk2" enabledFlavors) [
-    (fetchpatch {
-      url = "https://salsa.debian.org/debian/pinentry/raw/debian/1.1.0-1/debian/patches/0007-gtk2-When-X11-input-grabbing-fails-try-again-over-0..patch";
-      sha256 = "15r1axby3fdlzz9wg5zx7miv7gqx2jy4immaw4xmmw5skiifnhfd";
-    })
-  ];
-
-  configureFlags = [
-    "--with-libgpg-error-prefix=${libgpg-error.dev}"
-    "--with-libassuan-prefix=${libassuan.dev}"
-    (lib.enableFeature withLibsecret "libsecret")
-  ] ++ (map enableFeaturePinentry (lib.attrNames flavorInfo));
-
-  postInstall =
-    lib.concatStrings (lib.flip map enabledFlavors (f:
-      let
-        binary = "pinentry-" + flavorInfo.${f}.bin;
-      in ''
-        moveToOutput bin/${binary} ${placeholder f}
-        ln -sf ${placeholder f}/bin/${binary} ${placeholder f}/bin/pinentry
-      '' + lib.optionalString (f == "gnome3") ''
-        wrapGApp ${placeholder f}/bin/${binary}
-      '' + lib.optionalString (f == "qt") ''
-        wrapQtApp ${placeholder f}/bin/${binary}
-      '')) + ''
-      ln -sf ${placeholder (lib.head enabledFlavors)}/bin/pinentry-${flavorInfo.${lib.head enabledFlavors}.bin} $out/bin/pinentry
-    '';
-
-  outputs = [ "out" ] ++ enabledFlavors;
+  buildPinentry = pinentryExtraPname: buildFlavors:
+    let
+      enableFeaturePinentry = f:
+        lib.enableFeature (lib.elem f buildFlavors) ("pinentry-" + flavorInfo.${f}.flag);
 
-  passthru = { flavors = enabledFlavors; };
+      pinentryMkDerivation =
+        if (lib.elem "qt" buildFlavors)
+        then libsForQt5.mkDerivation
+        else stdenv.mkDerivation;
 
-  meta = with lib; {
-    homepage = "http://gnupg.org/aegypten2/";
-    description = "GnuPG’s interface to passphrase input";
-    license = licenses.gpl2Plus;
-    platforms = platforms.all;
-    longDescription = ''
-      Pinentry provides a console and (optional) GTK and Qt GUIs allowing users
-      to enter a passphrase when `gpg' or `gpg2' is run and needs it.
-    '';
-    maintainers = with maintainers; [ ttuegel fpletz ];
-  };
+    in
+    pinentryMkDerivation rec {
+      pname = "pinentry-${pinentryExtraPname}";
+      version = "1.2.1";
+
+      src = fetchurl {
+        url = "mirror://gnupg/pinentry/pinentry-${version}.tar.bz2";
+        hash = "sha256-RXoYXlqFI4+5RalV3GNSq5YtyLSHILYvyfpIx1QKQGc=";
+      };
+
+      nativeBuildInputs = [ pkg-config autoreconfHook ]
+        ++ lib.concatMap (f: flavorInfo.${f}.nativeBuildInputs or [ ]) buildFlavors;
+
+      buildInputs = [ libgpg-error libassuan ]
+        ++ lib.optional withLibsecret libsecret
+        ++ lib.concatMap (f: flavorInfo.${f}.buildInputs or [ ]) buildFlavors;
+
+      dontWrapGApps = true;
+      dontWrapQtApps = true;
+
+      patches = [
+        ./autoconf-ar.patch
+      ] ++ lib.optionals (lib.elem "gtk2" buildFlavors) [
+        (fetchpatch {
+          url = "https://salsa.debian.org/debian/pinentry/raw/debian/1.1.0-1/debian/patches/0007-gtk2-When-X11-input-grabbing-fails-try-again-over-0..patch";
+          sha256 = "15r1axby3fdlzz9wg5zx7miv7gqx2jy4immaw4xmmw5skiifnhfd";
+        })
+      ];
+
+      configureFlags = [
+        "--with-libgpg-error-prefix=${libgpg-error.dev}"
+        "--with-libassuan-prefix=${libassuan.dev}"
+        (lib.enableFeature withLibsecret "libsecret")
+      ] ++ (map enableFeaturePinentry (lib.attrNames flavorInfo));
+
+      postInstall =
+        lib.optionalString (lib.elem "gnome3" buildFlavors) ''
+          wrapGApp $out/bin/pinentry-gnome3
+        '' + lib.optionalString (lib.elem "qt" buildFlavors) ''
+          wrapQtApp $out/bin/pinentry-qt
+        '';
+
+      passthru = { flavors = buildFlavors; };
+
+      meta = with lib; {
+        homepage = "https://gnupg.org/software/pinentry/index.html";
+        description = "GnuPG’s interface to passphrase input";
+        license = licenses.gpl2Plus;
+        platforms =
+          if elem "gnome3" buildFlavors then platforms.linux else
+          if elem "qt" buildFlavors then (remove "aarch64-darwin" platforms.all) else
+          platforms.all;
+        longDescription = ''
+          Pinentry provides a console and (optional) GTK and Qt GUIs allowing users
+          to enter a passphrase when `gpg' or `gpg2' is run and needs it.
+        '';
+        maintainers = with maintainers; [ fpletz ];
+        mainProgram = "pinentry";
+      };
+    };
+in
+{
+  pinentry-curses = buildPinentry "curses" [ "curses" "tty" ];
+  pinentry-emacs = buildPinentry "emacs" [ "emacs" "curses" "tty" ];
+  pinentry-gnome3 = buildPinentry "gnome3" [ "gnome3" "curses" "tty" ];
+  pinentry-gtk2 = buildPinentry "gtk2" [ "gtk2" "curses" "tty" ];
+  pinentry-qt = buildPinentry "qt" [ "qt" "curses" "tty" ];
+  pinentry-tty = buildPinentry "tty" [ "tty" ];
+  pinentry-all = buildPinentry "all" [ "curses" "tty" "gtk2" "gnome3" "qt" "emacs" ];
 }
diff --git a/nixpkgs/pkgs/tools/security/plecost/default.nix b/nixpkgs/pkgs/tools/security/plecost/default.nix
index 23dd8c220cac..477ed9e82645 100644
--- a/nixpkgs/pkgs/tools/security/plecost/default.nix
+++ b/nixpkgs/pkgs/tools/security/plecost/default.nix
@@ -33,6 +33,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Vulnerability fingerprinting and vulnerability finder for Wordpress blog engine";
+    mainProgram = "plecost";
     homepage = "https://github.com/iniqua/plecost";
     license = licenses.bsd3;
     maintainers = with maintainers; [ emilytrau ];
diff --git a/nixpkgs/pkgs/tools/security/pomerium-cli/default.nix b/nixpkgs/pkgs/tools/security/pomerium-cli/default.nix
index 67c44930f0da..cff903021591 100644
--- a/nixpkgs/pkgs/tools/security/pomerium-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/pomerium-cli/default.nix
@@ -56,6 +56,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://pomerium.io";
     description = "Client-side helper for Pomerium authenticating reverse proxy";
+    mainProgram = "pomerium-cli";
     license = licenses.asl20;
     maintainers = with maintainers; [ lukegb ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/security/posteid-seed-extractor/default.nix b/nixpkgs/pkgs/tools/security/posteid-seed-extractor/default.nix
index 176b210b3779..b0c1f04d21a4 100644
--- a/nixpkgs/pkgs/tools/security/posteid-seed-extractor/default.nix
+++ b/nixpkgs/pkgs/tools/security/posteid-seed-extractor/default.nix
@@ -41,6 +41,7 @@ python3Packages.buildPythonApplication {
   meta = with lib; {
     homepage = "https://github.com/simone36050/PosteID-seed-extractor";
     description = "Extract OTP seed instead of using PosteID app";
+    mainProgram = "posteid-seed-extractor";
     license = licenses.mit;
     maintainers = with maintainers; [ aciceri ];
   };
diff --git a/nixpkgs/pkgs/tools/security/pretender/default.nix b/nixpkgs/pkgs/tools/security/pretender/default.nix
index 91452f34d62b..9d7df071224d 100644
--- a/nixpkgs/pkgs/tools/security/pretender/default.nix
+++ b/nixpkgs/pkgs/tools/security/pretender/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool for handling machine-in-the-middle tasks";
+    mainProgram = "pretender";
     homepage = "https://github.com/RedTeamPentesting/pretender";
     changelog = "https://github.com/RedTeamPentesting/pretender/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/nixpkgs/pkgs/tools/security/proxmark3/default.nix b/nixpkgs/pkgs/tools/security/proxmark3/default.nix
index 609d2f7818ee..ee37f938b5d9 100644
--- a/nixpkgs/pkgs/tools/security/proxmark3/default.nix
+++ b/nixpkgs/pkgs/tools/security/proxmark3/default.nix
@@ -7,6 +7,7 @@
 , bzip2
 , openssl
 , jansson
+, gd
 , whereami
 , lua
 , lz4
@@ -23,15 +24,15 @@
 , standalone ? "LF_SAMYRUN"
 }:
 assert withBlueshark -> stdenv.hostPlatform.isLinux;
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "proxmark3";
-  version = "4.18218";
+  version = "4.18341";
 
   src = fetchFromGitHub {
     owner = "RfidResearchGroup";
     repo = "proxmark3";
-    rev = "v${version}";
-    hash = "sha256-LltTTmYEF1JsqkVaj7Z19qGR+dEUj6Hwr6T5Z1eDzZc=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-YeBrrzCiDgl4WdhWYatm9sOAtBAECIv/f+OzB/RTdeg=";
   };
 
   patches = [
@@ -59,6 +60,7 @@ stdenv.mkDerivation rec {
     bzip2
     openssl
     jansson
+    gd
     lz4
     whereami
     lua
@@ -84,5 +86,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ nyanotech emilytrau ];
     platforms = platforms.unix;
+    mainProgram = "pm3";
   };
-}
+})
diff --git a/nixpkgs/pkgs/tools/security/pwdsafety/default.nix b/nixpkgs/pkgs/tools/security/pwdsafety/default.nix
index 12785154a177..e713d7e014ab 100644
--- a/nixpkgs/pkgs/tools/security/pwdsafety/default.nix
+++ b/nixpkgs/pkgs/tools/security/pwdsafety/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command line tool checking password safety";
+    mainProgram = "cmd";
     homepage = "https://github.com/edoardottt/pwdsafety";
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/pwncat/default.nix b/nixpkgs/pkgs/tools/security/pwncat/default.nix
index 398132c4cee7..98b782bf194c 100644
--- a/nixpkgs/pkgs/tools/security/pwncat/default.nix
+++ b/nixpkgs/pkgs/tools/security/pwncat/default.nix
@@ -17,6 +17,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "TCP/UDP communication suite";
+    mainProgram = "pwncat";
     homepage = "https://pwncat.org/";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/qdigidoc/default.nix b/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
index 097ef5023974..862249d2ebd1 100644
--- a/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
+++ b/nixpkgs/pkgs/tools/security/qdigidoc/default.nix
@@ -60,6 +60,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Qt-based UI for signing and verifying DigiDoc documents";
+    mainProgram = "qdigidoc4";
     homepage = "https://www.id.ee/";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/security/quill-qr/default.nix b/nixpkgs/pkgs/tools/security/quill-qr/default.nix
index 55c2f45cc683..826f2e51799c 100644
--- a/nixpkgs/pkgs/tools/security/quill-qr/default.nix
+++ b/nixpkgs/pkgs/tools/security/quill-qr/default.nix
@@ -38,6 +38,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = with lib; {
     description = "Print QR codes for use with https://p5deo-6aaaa-aaaab-aaaxq-cai.raw.ic0.app/";
+    mainProgram = "quill-qr.sh";
     homepage = "https://github.com/IvanMalison/quill-qr";
     maintainers = with maintainers; [ imalison ];
     platforms = with platforms; linux;
diff --git a/nixpkgs/pkgs/tools/security/quill/default.nix b/nixpkgs/pkgs/tools/security/quill/default.nix
index 5de9e8b8b3fc..71ffc7af5c15 100644
--- a/nixpkgs/pkgs/tools/security/quill/default.nix
+++ b/nixpkgs/pkgs/tools/security/quill/default.nix
@@ -47,6 +47,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dfinity/quill";
     changelog = "https://github.com/dfinity/quill/releases/tag/v${version}";
     description = "Minimalistic ledger and governance toolkit for cold wallets on the Internet Computer";
+    mainProgram = "quill";
     license = licenses.asl20;
     maintainers = with maintainers; [ imalison ];
   };
diff --git a/nixpkgs/pkgs/tools/security/radamsa/default.nix b/nixpkgs/pkgs/tools/security/radamsa/default.nix
index ebcd2a42191d..1903b435b770 100644
--- a/nixpkgs/pkgs/tools/security/radamsa/default.nix
+++ b/nixpkgs/pkgs/tools/security/radamsa/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A general purpose fuzzer";
+    mainProgram = "radamsa";
     longDescription = "Radamsa is a general purpose data fuzzer. It reads data from given sample files, or standard input if none are given, and outputs modified data. It is usually used to generate malformed data for testing programs.";
     homepage =  "https://gitlab.com/akihe/radamsa";
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/tools/security/redwax-tool/default.nix b/nixpkgs/pkgs/tools/security/redwax-tool/default.nix
index af327cba948b..50a2d36699e7 100644
--- a/nixpkgs/pkgs/tools/security/redwax-tool/default.nix
+++ b/nixpkgs/pkgs/tools/security/redwax-tool/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://redwax.eu/rt/";
     description = "Universal certificate conversion tool";
+    mainProgram = "redwax-tool";
     longDescription = ''
       Read certificates and keys from your chosen sources, filter the
       certificates and keys you're interested in, write those
diff --git a/nixpkgs/pkgs/tools/security/regpg/default.nix b/nixpkgs/pkgs/tools/security/regpg/default.nix
index aaefbef227b8..e14fdbbbb759 100644
--- a/nixpkgs/pkgs/tools/security/regpg/default.nix
+++ b/nixpkgs/pkgs/tools/security/regpg/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GPG wrapper utility for storing secrets in VCS";
+    mainProgram = "regpg";
     homepage = "https://dotat.at/prog/regpg";
     license = licenses.gpl3;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/security/responder/default.nix b/nixpkgs/pkgs/tools/security/responder/default.nix
index a51bb40ac5fd..9c6b343eb5c1 100644
--- a/nixpkgs/pkgs/tools/security/responder/default.nix
+++ b/nixpkgs/pkgs/tools/security/responder/default.nix
@@ -47,6 +47,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "LLMNR, NBT-NS and MDNS poisoner, with built-in HTTP/SMB/MSSQL/FTP/LDAP rogue authentication server";
+    mainProgram = "responder";
     homepage = "https://github.com/lgandx/Responder";
     changelog = "https://github.com/lgandx/Responder/blob/master/CHANGELOG.md";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/security/ripasso/cursive.nix b/nixpkgs/pkgs/tools/security/ripasso/cursive.nix
index b3e8274b450c..faef4dbff48a 100644
--- a/nixpkgs/pkgs/tools/security/ripasso/cursive.nix
+++ b/nixpkgs/pkgs/tools/security/ripasso/cursive.nix
@@ -73,6 +73,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple password manager written in Rust";
+    mainProgram = "ripasso-cursive";
     homepage = "https://github.com/cortex/ripasso";
     license = licenses.gpl3;
     maintainers = with maintainers; [ sgo ];
diff --git a/nixpkgs/pkgs/tools/security/rustscan/default.nix b/nixpkgs/pkgs/tools/security/rustscan/default.nix
index 099e685fec03..5189b7c882b7 100644
--- a/nixpkgs/pkgs/tools/security/rustscan/default.nix
+++ b/nixpkgs/pkgs/tools/security/rustscan/default.nix
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Faster Nmap Scanning with Rust";
+    mainProgram = "rustscan";
     homepage = "https://github.com/RustScan/RustScan";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/tools/security/s5/default.nix b/nixpkgs/pkgs/tools/security/s5/default.nix
index 7d63c4cb8a67..f4ef34209d8e 100644
--- a/nixpkgs/pkgs/tools/security/s5/default.nix
+++ b/nixpkgs/pkgs/tools/security/s5/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "cipher/decipher text within a file";
+    mainProgram = "s5";
     homepage = "https://github.com/mvisonneau/s5";
     license = licenses.asl20;
     platforms = platforms.unix ++ platforms.darwin;
diff --git a/nixpkgs/pkgs/tools/security/safe/default.nix b/nixpkgs/pkgs/tools/security/safe/default.nix
index 2024cd8ff27b..63fe240e5619 100644
--- a/nixpkgs/pkgs/tools/security/safe/default.nix
+++ b/nixpkgs/pkgs/tools/security/safe/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A Vault CLI";
+    mainProgram = "safe";
     homepage = "https://github.com/starkandwayne/safe";
     license = licenses.mit;
     maintainers = with maintainers; [ eonpatapon ];
diff --git a/nixpkgs/pkgs/tools/security/saml2aws/default.nix b/nixpkgs/pkgs/tools/security/saml2aws/default.nix
index a4246f3c4df4..beb2b89e20b4 100644
--- a/nixpkgs/pkgs/tools/security/saml2aws/default.nix
+++ b/nixpkgs/pkgs/tools/security/saml2aws/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI tool which enables you to login and retrieve AWS temporary credentials using a SAML IDP";
+    mainProgram = "saml2aws";
     homepage    = "https://github.com/Versent/saml2aws";
     license     = licenses.mit;
     maintainers = [ lib.maintainers.pmyjavec ];
diff --git a/nixpkgs/pkgs/tools/security/sammler/default.nix b/nixpkgs/pkgs/tools/security/sammler/default.nix
index edc04d86371e..7a7990aee1f9 100644
--- a/nixpkgs/pkgs/tools/security/sammler/default.nix
+++ b/nixpkgs/pkgs/tools/security/sammler/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to extract useful data from documents";
+    mainProgram = "sammler";
     homepage = "https://github.com/redcode-labs/Sammler";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
diff --git a/nixpkgs/pkgs/tools/security/sbctl/default.nix b/nixpkgs/pkgs/tools/security/sbctl/default.nix
index a5fe6cf6548c..ac3e2a4dd43f 100644
--- a/nixpkgs/pkgs/tools/security/sbctl/default.nix
+++ b/nixpkgs/pkgs/tools/security/sbctl/default.nix
@@ -38,6 +38,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Secure Boot key manager";
+    mainProgram = "sbctl";
     homepage = "https://github.com/Foxboron/sbctl";
     license = licenses.mit;
     maintainers = with maintainers; [ raitobezarius ];
diff --git a/nixpkgs/pkgs/tools/security/scilla/default.nix b/nixpkgs/pkgs/tools/security/scilla/default.nix
index 79f743ea0ce8..0484cfaa9f87 100644
--- a/nixpkgs/pkgs/tools/security/scilla/default.nix
+++ b/nixpkgs/pkgs/tools/security/scilla/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Information gathering tool for DNS, ports and more";
+    mainProgram = "scilla";
     homepage = "https://github.com/edoardottt/scilla";
     changelog = "https://github.com/edoardottt/scilla/releases/tag/v${version}";
     license = with licenses; [ gpl3Plus ];
diff --git a/nixpkgs/pkgs/tools/security/scorecard/default.nix b/nixpkgs/pkgs/tools/security/scorecard/default.nix
index b460f52aa292..265253bba51b 100644
--- a/nixpkgs/pkgs/tools/security/scorecard/default.nix
+++ b/nixpkgs/pkgs/tools/security/scorecard/default.nix
@@ -83,6 +83,7 @@ buildGoModule rec {
     homepage = "https://github.com/ossf/scorecard";
     changelog = "https://github.com/ossf/scorecard/releases/tag/v${version}";
     description = "Security health metrics for Open Source";
+    mainProgram = "scorecard";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk developer-guy ];
   };
diff --git a/nixpkgs/pkgs/tools/security/scrypt/default.nix b/nixpkgs/pkgs/tools/security/scrypt/default.nix
index d2b8228f6511..d1deaa0ec41d 100644
--- a/nixpkgs/pkgs/tools/security/scrypt/default.nix
+++ b/nixpkgs/pkgs/tools/security/scrypt/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Encryption utility";
+    mainProgram = "scrypt";
     homepage    = "https://www.tarsnap.com/scrypt.html";
     license     = licenses.bsd2;
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/tools/security/sdlookup/default.nix b/nixpkgs/pkgs/tools/security/sdlookup/default.nix
index 62d6dffdaa2b..d4b4e6b3ad54 100644
--- a/nixpkgs/pkgs/tools/security/sdlookup/default.nix
+++ b/nixpkgs/pkgs/tools/security/sdlookup/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "IP lookups for open ports and vulnerabilities from internetdb.shodan.io";
+    mainProgram = "sdlookup";
     homepage = "https://github.com/j3ssie/sdlookup";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/secretscanner/default.nix b/nixpkgs/pkgs/tools/security/secretscanner/default.nix
index 794597707994..db23b87058f4 100644
--- a/nixpkgs/pkgs/tools/security/secretscanner/default.nix
+++ b/nixpkgs/pkgs/tools/security/secretscanner/default.nix
@@ -48,6 +48,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to find secrets and passwords in container images and file systems";
+    mainProgram = "secretscanner";
     homepage = "https://github.com/deepfence/SecretScanner";
     changelog = "https://github.com/deepfence/SecretScanner/releases/tag/v${version}";
     platforms = [ "x86_64-linux" ];
diff --git a/nixpkgs/pkgs/tools/security/semgrep/semgrep-core.nix b/nixpkgs/pkgs/tools/security/semgrep/semgrep-core.nix
index 33e50837bf75..8986cba7d880 100644
--- a/nixpkgs/pkgs/tools/security/semgrep/semgrep-core.nix
+++ b/nixpkgs/pkgs/tools/security/semgrep/semgrep-core.nix
@@ -46,6 +46,7 @@ stdenvNoCC.mkDerivation rec {
 
   meta = common.meta // {
     description = common.meta.description + " - core binary";
+    mainProgram = "semgrep-core";
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     platforms = lib.attrNames common.core;
   };
diff --git a/nixpkgs/pkgs/tools/security/sequoia-sqop/default.nix b/nixpkgs/pkgs/tools/security/sequoia-sqop/default.nix
index 19dd99b871b0..b9be02160898 100644
--- a/nixpkgs/pkgs/tools/security/sequoia-sqop/default.nix
+++ b/nixpkgs/pkgs/tools/security/sequoia-sqop/default.nix
@@ -9,7 +9,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sequoia-sqop";
-  version = "0.31.0";
+  version = "0.32.0";
 
   src = fetchFromGitLab {
     owner = "sequoia-pgp";
@@ -17,10 +17,10 @@ rustPlatform.buildRustPackage rec {
     # generated etc
     repo = "sequoia-sop";
     rev = "v${version}";
-    hash = "sha256-qGSVmjLdx84YphAXt1MRF1cIfk7xLOvtUj+3e7vO+jA=";
+    hash = "sha256-6g6JVNlLi++XboU/ewHM7KM0tJlDayCoz1octKloQro=";
   };
 
-  cargoHash = "sha256-y4n6UPAYwI9P+jw59TOf98xSdNvzEgJp5n/GtiixsIU=";
+  cargoHash = "sha256-Vci29mnFiRRbI45Qkj6t8aVrEaJdKVB01zTXHQT5ckw=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/tools/security/shc/default.nix b/nixpkgs/pkgs/tools/security/shc/default.nix
index 0c1bf93ed1c6..f7f3f8a08883 100644
--- a/nixpkgs/pkgs/tools/security/shc/default.nix
+++ b/nixpkgs/pkgs/tools/security/shc/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://neurobin.org/projects/softwares/unix/shc/";
     description = "Shell Script Compiler";
+    mainProgram = "shc";
     platforms = lib.platforms.all;
     license = licenses.gpl3;
   };
diff --git a/nixpkgs/pkgs/tools/security/shisho/default.nix b/nixpkgs/pkgs/tools/security/shisho/default.nix
index 5a5995f5da3b..ae61c2a249db 100644
--- a/nixpkgs/pkgs/tools/security/shisho/default.nix
+++ b/nixpkgs/pkgs/tools/security/shisho/default.nix
@@ -45,6 +45,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://docs.shisho.dev/shisho/";
     changelog = "https://docs.shisho.dev/changelog/";
     description = "Lightweight static analyzer for several programming languages";
+    mainProgram = "shisho";
     longDescription = ''
       Shisho is a lightweight static code analyzer designed for developers and
       is the core engine for Shisho products. It is, so to speak, like a
diff --git a/nixpkgs/pkgs/tools/security/signify/default.nix b/nixpkgs/pkgs/tools/security/signify/default.nix
index ac8b2ace3af1..fe1c2bf45345 100644
--- a/nixpkgs/pkgs/tools/security/signify/default.nix
+++ b/nixpkgs/pkgs/tools/security/signify/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "OpenBSD signing tool";
+    mainProgram = "signify";
     longDescription = ''
       OpenBSDs signing tool, which uses the Ed25519 public key signature system
       for fast signing and verification of messages using small public keys.
diff --git a/nixpkgs/pkgs/tools/security/silenthound/default.nix b/nixpkgs/pkgs/tools/security/silenthound/default.nix
index f2915c447675..22ecb946d4a6 100644
--- a/nixpkgs/pkgs/tools/security/silenthound/default.nix
+++ b/nixpkgs/pkgs/tools/security/silenthound/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "silenthound";
-  version = "unstable-2022-09-02";
+  version = "0-unstable-2022-12-14";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "layer8secure";
     repo = "SilentHound";
-    rev = "44d361f6c95b79bd848603c8050af86db3d072b0";
-    hash = "sha256-6JcU6FIE+9fsMawI1RSNQyx9ubjxmchEKmeg6/kmI4s=";
+    rev = "f04746aaca29e377c8badcbd6d8f6584deb9e919";
+    hash = "sha256-alTgo8/aqwERt/JC4W3KodAdyfNZyG3XqCp3z4OpS68=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -36,8 +36,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with lib; {
     description = "Tool to enumerate an Active Directory Domain";
     homepage = "https://github.com/layer8secure/SilentHound";
-    # Unknown license, https://github.com/layer8secure/SilentHound/issues/1
-    license = licenses.unfree;
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
     mainProgram = "silenthound";
   };
diff --git a/nixpkgs/pkgs/tools/security/slsa-verifier/default.nix b/nixpkgs/pkgs/tools/security/slsa-verifier/default.nix
index 5a6ab18a49ec..1ed192c732a1 100644
--- a/nixpkgs/pkgs/tools/security/slsa-verifier/default.nix
+++ b/nixpkgs/pkgs/tools/security/slsa-verifier/default.nix
@@ -36,6 +36,7 @@ buildGoModule rec {
     homepage = "https://github.com/slsa-framework/slsa-verifier";
     changelog = "https://github.com/slsa-framework/slsa-verifier/releases/tag/v${version}";
     description = "Verify provenance from SLSA compliant builders";
+    mainProgram = "slsa-verifier";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ developer-guy mlieberman85 ];
   };
diff --git a/nixpkgs/pkgs/tools/security/smbmap/default.nix b/nixpkgs/pkgs/tools/security/smbmap/default.nix
index 698fd8b19448..772df0a66ef9 100644
--- a/nixpkgs/pkgs/tools/security/smbmap/default.nix
+++ b/nixpkgs/pkgs/tools/security/smbmap/default.nix
@@ -32,6 +32,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "SMB enumeration tool";
+    mainProgram = "smbmap";
     homepage = "https://github.com/ShawnDEvans/smbmap";
     changelog = "https://github.com/ShawnDEvans/smbmap/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/security/snallygaster/default.nix b/nixpkgs/pkgs/tools/security/snallygaster/default.nix
index 662b46700c78..2f9ad98743cb 100644
--- a/nixpkgs/pkgs/tools/security/snallygaster/default.nix
+++ b/nixpkgs/pkgs/tools/security/snallygaster/default.nix
@@ -31,6 +31,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to scan for secret files on HTTP servers";
+    mainProgram = "snallygaster";
     homepage = "https://github.com/hannob/snallygaster";
     license = licenses.cc0;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/tools/security/snow/default.nix b/nixpkgs/pkgs/tools/security/snow/default.nix
index 6dce95f8cf0f..dbea144cb1ba 100644
--- a/nixpkgs/pkgs/tools/security/snow/default.nix
+++ b/nixpkgs/pkgs/tools/security/snow/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Conceal messages in ASCII text by appending whitespace to the end of lines";
+    mainProgram = "snow";
     homepage = "http://www.darkside.com.au/snow/";
     license = licenses.asl20;
     maintainers = with maintainers; [ siraben ];
diff --git a/nixpkgs/pkgs/tools/security/snowcat/default.nix b/nixpkgs/pkgs/tools/security/snowcat/default.nix
index 429564f91f1e..a08b18edd147 100644
--- a/nixpkgs/pkgs/tools/security/snowcat/default.nix
+++ b/nixpkgs/pkgs/tools/security/snowcat/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
     homepage = "https://github.com/praetorian-inc/snowcat";
     changelog = "https://github.com/praetorian-inc/snowcat/releases/tag/v${version}";
     description = "A tool to audit the istio service mesh";
+    mainProgram = "snowcat";
     longDescription = ''
       Snowcat gathers and analyzes the configuration of an Istio cluster and
       audits it for potential violations of security best practices.
diff --git a/nixpkgs/pkgs/tools/security/spectre-meltdown-checker/default.nix b/nixpkgs/pkgs/tools/security/spectre-meltdown-checker/default.nix
index 529da4557915..55372ce4a6aa 100644
--- a/nixpkgs/pkgs/tools/security/spectre-meltdown-checker/default.nix
+++ b/nixpkgs/pkgs/tools/security/spectre-meltdown-checker/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     description = "Spectre & Meltdown vulnerability/mitigation checker for Linux";
+    mainProgram = "spectre-meltdown-checker";
     homepage = "https://github.com/speed47/spectre-meltdown-checker";
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.dotlambda ];
diff --git a/nixpkgs/pkgs/tools/security/spyre/default.nix b/nixpkgs/pkgs/tools/security/spyre/default.nix
index 3ec659373c7b..c9a4946b83d9 100644
--- a/nixpkgs/pkgs/tools/security/spyre/default.nix
+++ b/nixpkgs/pkgs/tools/security/spyre/default.nix
@@ -44,6 +44,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "YARA-based IOC scanner";
+    mainProgram = "spyre";
     homepage = "https://github.com/spyre-project/spyre";
     license = with licenses; [ lgpl3Plus ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/ssdeep/default.nix b/nixpkgs/pkgs/tools/security/ssdeep/default.nix
index 7647246369ff..a7c937f03ee0 100644
--- a/nixpkgs/pkgs/tools/security/ssdeep/default.nix
+++ b/nixpkgs/pkgs/tools/security/ssdeep/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A program for calculating fuzzy hashes";
+    mainProgram = "ssdeep";
     homepage    = "http://www.ssdeep.sf.net";
     license     = lib.licenses.gpl2;
     platforms   = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/tools/security/ssh-audit/default.nix b/nixpkgs/pkgs/tools/security/ssh-audit/default.nix
index 54ec4e8f4ee1..d704832f248d 100644
--- a/nixpkgs/pkgs/tools/security/ssh-audit/default.nix
+++ b/nixpkgs/pkgs/tools/security/ssh-audit/default.nix
@@ -26,6 +26,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for ssh server auditing";
+    mainProgram = "ssh-audit";
     homepage = "https://github.com/jtesta/ssh-audit";
     changelog = "https://github.com/jtesta/ssh-audit/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/ssh-to-pgp/default.nix b/nixpkgs/pkgs/tools/security/ssh-to-pgp/default.nix
index c8735cffd5f2..15067063d328 100644
--- a/nixpkgs/pkgs/tools/security/ssh-to-pgp/default.nix
+++ b/nixpkgs/pkgs/tools/security/ssh-to-pgp/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Convert ssh private keys to PGP";
+    mainProgram = "ssh-to-pgp";
     homepage = "https://github.com/Mic92/ssh-to-pgp";
     license = licenses.mit;
     maintainers = with maintainers; [ mic92 ];
diff --git a/nixpkgs/pkgs/tools/security/sshchecker/default.nix b/nixpkgs/pkgs/tools/security/sshchecker/default.nix
index 6ed76d0dd4e2..6f904f52020d 100644
--- a/nixpkgs/pkgs/tools/security/sshchecker/default.nix
+++ b/nixpkgs/pkgs/tools/security/sshchecker/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Dedicated SSH brute-forcing tool";
+    mainProgram = "sshchecker";
     longDescription = ''
       sshchecker is a fast dedicated SSH brute-forcing tool to check
       SSH login on the giving IP list.
diff --git a/nixpkgs/pkgs/tools/security/sshguard/default.nix b/nixpkgs/pkgs/tools/security/sshguard/default.nix
index 18e93023d779..2c5391ae4499 100644
--- a/nixpkgs/pkgs/tools/security/sshguard/default.nix
+++ b/nixpkgs/pkgs/tools/security/sshguard/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Protects hosts from brute-force attacks";
+    mainProgram = "sshguard";
     longDescription = ''
       SSHGuard can read log messages from various input sources. Log messages are parsed, line-by-line, for recognized patterns.
       If an attack, such as several login failures within a few seconds, is detected, the offending IP is blocked.
diff --git a/nixpkgs/pkgs/tools/security/sshocker/default.nix b/nixpkgs/pkgs/tools/security/sshocker/default.nix
index bb8177ea3878..0ace4d9e2597 100644
--- a/nixpkgs/pkgs/tools/security/sshocker/default.nix
+++ b/nixpkgs/pkgs/tools/security/sshocker/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool for SSH, reverse sshfs and port forwarder";
+    mainProgram = "sshocker";
     homepage = "https://github.com/lima-vm/sshocker";
     changelog = "https://github.com/lima-vm/sshocker/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/security/sshuttle/default.nix b/nixpkgs/pkgs/tools/security/sshuttle/default.nix
index 8a92dbceb184..d937421adb01 100644
--- a/nixpkgs/pkgs/tools/security/sshuttle/default.nix
+++ b/nixpkgs/pkgs/tools/security/sshuttle/default.nix
@@ -50,6 +50,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Transparent proxy server that works as a poor man's VPN";
+    mainProgram = "sshuttle";
     longDescription = ''
       Forward connections over SSH, without requiring administrator access to the
       target network (though it does require Python 2.7, Python 3.5 or later at both ends).
diff --git a/nixpkgs/pkgs/tools/security/sslscan/default.nix b/nixpkgs/pkgs/tools/security/sslscan/default.nix
index 529b1bb1683e..43e2b8ace717 100644
--- a/nixpkgs/pkgs/tools/security/sslscan/default.nix
+++ b/nixpkgs/pkgs/tools/security/sslscan/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tests SSL/TLS services and discover supported cipher suites";
+    mainProgram = "sslscan";
     homepage = "https://github.com/rbsec/sslscan";
     changelog = "https://github.com/rbsec/sslscan/blob/${version}/Changelog";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/security/stacs/default.nix b/nixpkgs/pkgs/tools/security/stacs/default.nix
index 205d85f0622e..da66dca1cbd3 100644
--- a/nixpkgs/pkgs/tools/security/stacs/default.nix
+++ b/nixpkgs/pkgs/tools/security/stacs/default.nix
@@ -35,6 +35,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Static token and credential scanner";
+    mainProgram = "stacs";
     homepage = "https://github.com/stacscan/stacs";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/step-kms-plugin/default.nix b/nixpkgs/pkgs/tools/security/step-kms-plugin/default.nix
index 2a141e7012b9..fd3faedf6128 100644
--- a/nixpkgs/pkgs/tools/security/step-kms-plugin/default.nix
+++ b/nixpkgs/pkgs/tools/security/step-kms-plugin/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "step-kms-plugin";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-TmIQjkIESZm6u7CajyJGgf1xm3SvjA6EINUAKehzafs=";
+    hash = "sha256-FQ9UW1zz+8HMFETZVef7oyh2+Nm5z3ksvmOv/MTiKAU=";
   };
 
-  vendorHash = "sha256-mwi7ux4pnnotdwW6v0j+q8mx5i7W6fJVuAKOEqVDueY=";
+  vendorHash = "sha256-bpQHe7B7dG1oeGP/V3su0Zc6in7tive7lmh18KqxGfo=";
 
   proxyVendor = true;
 
diff --git a/nixpkgs/pkgs/tools/security/su-exec/default.nix b/nixpkgs/pkgs/tools/security/su-exec/default.nix
index 0e26d2430cb1..f9ab5d503f5b 100644
--- a/nixpkgs/pkgs/tools/security/su-exec/default.nix
+++ b/nixpkgs/pkgs/tools/security/su-exec/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "switch user and group id and exec";
+    mainProgram = "su-exec";
     homepage    = "https://github.com/ncopa/su-exec";
     license     = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
diff --git a/nixpkgs/pkgs/tools/security/subjs/default.nix b/nixpkgs/pkgs/tools/security/subjs/default.nix
index 60ed306145a7..0bd3c170b656 100644
--- a/nixpkgs/pkgs/tools/security/subjs/default.nix
+++ b/nixpkgs/pkgs/tools/security/subjs/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Fetcher for Javascript files";
+    mainProgram = "subjs";
     longDescription = ''
       subjs fetches Javascript files from a list of URLs or subdomains.
       Analyzing Javascript files can help you find undocumented endpoints,
diff --git a/nixpkgs/pkgs/tools/security/swaggerhole/default.nix b/nixpkgs/pkgs/tools/security/swaggerhole/default.nix
index 8455867b4be2..507fde0b3086 100644
--- a/nixpkgs/pkgs/tools/security/swaggerhole/default.nix
+++ b/nixpkgs/pkgs/tools/security/swaggerhole/default.nix
@@ -30,6 +30,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to searching for secret on swaggerhub";
+    mainProgram = "swaggerhole";
     homepage = "https://github.com/Liodeus/swaggerHole";
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/tboot/default.nix b/nixpkgs/pkgs/tools/security/tboot/default.nix
index e88c8e9aa742..62f6b7823e83 100644
--- a/nixpkgs/pkgs/tools/security/tboot/default.nix
+++ b/nixpkgs/pkgs/tools/security/tboot/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tboot";
-  version = "1.11.1";
+  version = "1.11.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/tboot/${pname}-${version}.tar.gz";
-    sha256 = "sha256-1sPCbF/e5tWOEfBHM67lnK/QFyHRFZjRjAKxXAfw6nc=";
+    sha256 = "sha256-faTdvjjTFXZEoHeVQ1HMTfU+215yruiliFQcQbc/1VA=";
   };
 
   buildInputs = [ openssl trousers zlib ];
diff --git a/nixpkgs/pkgs/tools/security/teler/default.nix b/nixpkgs/pkgs/tools/security/teler/default.nix
index 989743fda894..9232f4f88206 100644
--- a/nixpkgs/pkgs/tools/security/teler/default.nix
+++ b/nixpkgs/pkgs/tools/security/teler/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Real-time HTTP Intrusion Detection";
+    mainProgram = "teler.app";
     longDescription = ''
       teler is an real-time intrusion detection and threat alert
       based on web log that runs in a terminal with resources that
diff --git a/nixpkgs/pkgs/tools/security/tell-me-your-secrets/default.nix b/nixpkgs/pkgs/tools/security/tell-me-your-secrets/default.nix
index a85a62fdfcc3..1d723aae52df 100644
--- a/nixpkgs/pkgs/tools/security/tell-me-your-secrets/default.nix
+++ b/nixpkgs/pkgs/tools/security/tell-me-your-secrets/default.nix
@@ -42,6 +42,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tools to find secrets from various signatures";
+    mainProgram = "tell-me-your-secrets";
     homepage = "https://github.com/valayDave/tell-me-your-secrets";
     changelog = "https://github.com/valayDave/tell-me-your-secrets/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/terrascan/default.nix b/nixpkgs/pkgs/tools/security/terrascan/default.nix
index 864289f92f59..b44387032b2f 100644
--- a/nixpkgs/pkgs/tools/security/terrascan/default.nix
+++ b/nixpkgs/pkgs/tools/security/terrascan/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Detect compliance and security violations across Infrastructure";
+    mainProgram = "terrascan";
     longDescription = ''
       Detect compliance and security violations across Infrastructure as Code to
       mitigate risk before provisioning cloud native infrastructure. It contains
diff --git a/nixpkgs/pkgs/tools/security/tessen/default.nix b/nixpkgs/pkgs/tools/security/tessen/default.nix
index e8517dda9b4e..944695e831dc 100644
--- a/nixpkgs/pkgs/tools/security/tessen/default.nix
+++ b/nixpkgs/pkgs/tools/security/tessen/default.nix
@@ -12,13 +12,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "tessen";
-  version = "2.2.1";
+  version = "2.2.3";
 
   src = fetchFromSourcehut {
     owner = "~ayushnix";
     repo  = pname;
     rev = "v${version}";
-    sha256  = "sha256-8hhYOd5h55kl7ChqdyRzsaxzWLpX41aqG8LfznmbFWw=";
+    sha256  = "sha256-mVGsI1JBG7X8J7gqocdfxWuTVSZpxS23QPGHCUofvV8=";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles scdoc ];
diff --git a/nixpkgs/pkgs/tools/security/theharvester/default.nix b/nixpkgs/pkgs/tools/security/theharvester/default.nix
index ad5152e7e1fe..180aa0fd2e76 100644
--- a/nixpkgs/pkgs/tools/security/theharvester/default.nix
+++ b/nixpkgs/pkgs/tools/security/theharvester/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "theharvester";
-  version = "4.5.1";
+  version = "4.6.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "laramies";
     repo = "theharvester";
     rev = "refs/tags/${version}";
-    hash = "sha256-yfi1+SCCLCV3SJ28EVmR6V2i3O92iVRBo4EwHbKKcYY=";
+    hash = "sha256-B2pZBrWZqbtvcO0pnM57GFhrryYilLCBTMEmsKvyU/I=";
   };
 
   postPatch = ''
@@ -38,6 +38,7 @@ python3.pkgs.buildPythonApplication rec {
     lxml
     netaddr
     ujson
+    playwright
     plotly
     pyppeteer
     python-dateutil
diff --git a/nixpkgs/pkgs/tools/security/threatest/default.nix b/nixpkgs/pkgs/tools/security/threatest/default.nix
index faa5977986fc..a53804f1d1fc 100644
--- a/nixpkgs/pkgs/tools/security/threatest/default.nix
+++ b/nixpkgs/pkgs/tools/security/threatest/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Framework for end-to-end testing threat detection rules";
+    mainProgram = "threatest";
     homepage = "https://github.com/DataDog/threatest";
     changelog = "https://github.com/DataDog/threatest/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/security/tor/torsocks.nix b/nixpkgs/pkgs/tools/security/tor/torsocks.nix
index 6c5be8fcc7bd..ae1a42a944d3 100644
--- a/nixpkgs/pkgs/tools/security/tor/torsocks.nix
+++ b/nixpkgs/pkgs/tools/security/tor/torsocks.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description      = "Wrapper to safely torify applications";
+    mainProgram = "torsocks";
     homepage         = "https://gitlab.torproject.org/tpo/core/torsocks";
     license          = lib.licenses.gpl2;
     platforms        = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/tools/security/tpm2-abrmd/default.nix b/nixpkgs/pkgs/tools/security/tpm2-abrmd/default.nix
index 718355998794..da297f7a5b36 100644
--- a/nixpkgs/pkgs/tools/security/tpm2-abrmd/default.nix
+++ b/nixpkgs/pkgs/tools/security/tpm2-abrmd/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "TPM2 resource manager, accessible via D-Bus";
+    mainProgram = "tpm2-abrmd";
     homepage = "https://github.com/tpm2-software/tpm2-tools";
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/security/tracee/default.nix b/nixpkgs/pkgs/tools/security/tracee/default.nix
index eb1e8090b286..c1615c1ddf56 100644
--- a/nixpkgs/pkgs/tools/security/tracee/default.nix
+++ b/nixpkgs/pkgs/tools/security/tracee/default.nix
@@ -93,6 +93,7 @@ buildGoModule rec {
     homepage = "https://aquasecurity.github.io/tracee/latest/";
     changelog = "https://github.com/aquasecurity/tracee/releases/tag/v${version}";
     description = "Linux Runtime Security and Forensics using eBPF";
+    mainProgram = "tracee";
     longDescription = ''
       Tracee is a Runtime Security and forensics tool for Linux. It is using
       Linux eBPF technology to trace your system and applications at runtime,
diff --git a/nixpkgs/pkgs/tools/security/trousers/default.nix b/nixpkgs/pkgs/tools/security/trousers/default.nix
index 5502de2d6272..43d0941b47b6 100644
--- a/nixpkgs/pkgs/tools/security/trousers/default.nix
+++ b/nixpkgs/pkgs/tools/security/trousers/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Trusted computing software stack";
+    mainProgram = "tcsd";
     homepage    = "https://trousers.sourceforge.net/";
     license     = licenses.bsd3;
     maintainers = [ maintainers.ak ];
diff --git a/nixpkgs/pkgs/tools/security/truecrack/default.nix b/nixpkgs/pkgs/tools/security/truecrack/default.nix
index 19ae85105657..1c0648f33bcb 100644
--- a/nixpkgs/pkgs/tools/security/truecrack/default.nix
+++ b/nixpkgs/pkgs/tools/security/truecrack/default.nix
@@ -41,6 +41,7 @@ gccStdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A brute-force password cracker for TrueCrypt volumes, optimized for Nvidia Cuda technology";
+    mainProgram = "truecrack";
     homepage = "https://gitlab.com/kalilinux/packages/truecrack";
     broken = cudaSupport;
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/tools/security/trueseeing/default.nix b/nixpkgs/pkgs/tools/security/trueseeing/default.nix
index ef0026f870f0..182f33138b95 100644
--- a/nixpkgs/pkgs/tools/security/trueseeing/default.nix
+++ b/nixpkgs/pkgs/tools/security/trueseeing/default.nix
@@ -44,6 +44,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Non-decompiling Android vulnerability scanner";
+    mainProgram = "trueseeing";
     homepage = "https://github.com/alterakey/trueseeing";
     changelog = "https://github.com/alterakey/trueseeing/releases/tag/v${version}";
     license = with licenses; [ gpl3Plus ];
diff --git a/nixpkgs/pkgs/tools/security/trufflehog/default.nix b/nixpkgs/pkgs/tools/security/trufflehog/default.nix
index 5b6868fcc6c8..c40f80b0caa5 100644
--- a/nixpkgs/pkgs/tools/security/trufflehog/default.nix
+++ b/nixpkgs/pkgs/tools/security/trufflehog/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "trufflehog";
-  version = "3.69.0";
+  version = "3.70.3";
 
   src = fetchFromGitHub {
     owner = "trufflesecurity";
     repo = "trufflehog";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1O1iwZQdC4Vf/mGRauZwg6U52bF28IqCUw8Ugt3USFI=";
+    hash = "sha256-eTxqNsTcdYqflY5i6tV/4uL9jV2MPwVeWspXfjX8Xmc=";
   };
 
-  vendorHash = "sha256-c9CkQMTH2mRpKjlyV7lnNyKQYgPxEP9adHcSh9qsWYk=";
+  vendorHash = "sha256-VYF9QIlshfFkNbfEQlJsp1SbGsGVTwnGLdKprKOeB74=";
 
   ldflags = [
     "-s"
diff --git a/nixpkgs/pkgs/tools/security/trustymail/default.nix b/nixpkgs/pkgs/tools/security/trustymail/default.nix
index 88d321708886..11133548bbd3 100644
--- a/nixpkgs/pkgs/tools/security/trustymail/default.nix
+++ b/nixpkgs/pkgs/tools/security/trustymail/default.nix
@@ -39,6 +39,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to scan domains and return data based on trustworthy email best practices";
+    mainProgram = "trustymail";
     homepage = "https://github.com/cisagov/trustymail";
     changelog = "https://github.com/cisagov/trustymail/releases/tag/v${version}";
     license = with licenses; [ cc0 ];
diff --git a/nixpkgs/pkgs/tools/security/uddup/default.nix b/nixpkgs/pkgs/tools/security/uddup/default.nix
index 3516b4dcff8d..4d850b016f9f 100644
--- a/nixpkgs/pkgs/tools/security/uddup/default.nix
+++ b/nixpkgs/pkgs/tools/security/uddup/default.nix
@@ -29,6 +29,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for de-duplication URLs";
+    mainProgram = "uddup";
     homepage = "https://github.com/rotemreiss/uddup";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/udpx/default.nix b/nixpkgs/pkgs/tools/security/udpx/default.nix
index 081c002a09e5..f240057a2b6d 100644
--- a/nixpkgs/pkgs/tools/security/udpx/default.nix
+++ b/nixpkgs/pkgs/tools/security/udpx/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Single-packet UDP scanner";
+    mainProgram = "udpx";
     homepage = "https://github.com/nullt3r/udpx";
     changelog = "https://github.com/nullt3r/udpx/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/urlhunter/default.nix b/nixpkgs/pkgs/tools/security/urlhunter/default.nix
index c70c43027a25..9f3f6b5a09b0 100644
--- a/nixpkgs/pkgs/tools/security/urlhunter/default.nix
+++ b/nixpkgs/pkgs/tools/security/urlhunter/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Recon tool that allows searching shortened URLs";
+    mainProgram = "urlhunter";
     longDescription = ''
       urlhunter is a recon tool that allows searching on URLs that are
       exposed via shortener services such as bit.ly and goo.gl.
diff --git a/nixpkgs/pkgs/tools/security/usbrip/default.nix b/nixpkgs/pkgs/tools/security/usbrip/default.nix
index aa09d759b8e4..219a4315fd14 100644
--- a/nixpkgs/pkgs/tools/security/usbrip/default.nix
+++ b/nixpkgs/pkgs/tools/security/usbrip/default.nix
@@ -37,6 +37,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to track the history of USB events";
+    mainProgram = "usbrip";
     homepage = "https://github.com/snovvcrash/usbrip";
     license = with licenses; [ gpl3Plus ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/vals/default.nix b/nixpkgs/pkgs/tools/security/vals/default.nix
index 5000615b4eab..0c43a0204bbb 100644
--- a/nixpkgs/pkgs/tools/security/vals/default.nix
+++ b/nixpkgs/pkgs/tools/security/vals/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "vals";
-  version = "0.33.1";
+  version = "0.35.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "variantdev";
     repo = pname;
-    sha256 = "sha256-5+yaDcHqOt+bOdQIv4rDJuiR7acbkQvHJEfvc058+b8=";
+    sha256 = "sha256-PH2R39bI357ND3Gf//Fe+xtMGVuqwggT9zZyy/OimmY=";
   };
 
-  vendorHash = "sha256-Lt6OPA6k+zXIahZR8F36YWruCtUsoQKb/LgzJ5NIcx8=";
+  vendorHash = "sha256-oesPCwDZyJ1Q8LdyEnvAU5sdXFFHdxUP4jXltww8vuk=";
 
   ldflags = [
     "-s"
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Helm-like configuration values loader with support for various sources";
+    mainProgram = "vals";
     license = licenses.asl20;
     homepage = "https://github.com/variantdev/vals";
     changelog = "https://github.com/variantdev/vals/releases/v${version}";
diff --git a/nixpkgs/pkgs/tools/security/vault-medusa/default.nix b/nixpkgs/pkgs/tools/security/vault-medusa/default.nix
index 382a732cf6b5..cd7cf537de58 100644
--- a/nixpkgs/pkgs/tools/security/vault-medusa/default.nix
+++ b/nixpkgs/pkgs/tools/security/vault-medusa/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A cli tool for importing and exporting Hashicorp Vault secrets";
+    mainProgram = "medusa";
     homepage = "https://github.com/jonasvinther/medusa";
     license = licenses.mit;
     maintainers = with maintainers; [ onny ];
diff --git a/nixpkgs/pkgs/tools/security/vault-ssh-plus/default.nix b/nixpkgs/pkgs/tools/security/vault-ssh-plus/default.nix
index a1c77e5d0a29..80cfa8674cb2 100644
--- a/nixpkgs/pkgs/tools/security/vault-ssh-plus/default.nix
+++ b/nixpkgs/pkgs/tools/security/vault-ssh-plus/default.nix
@@ -42,6 +42,7 @@ buildGoModule rec {
     homepage = "https://github.com/isometry/vault-ssh-plus";
     changelog = "https://github.com/isometry/vault-ssh-plus/releases/tag/v${version}";
     description = "Automatically use HashiCorp Vault SSH Client Key Signing with ssh(1)";
+    mainProgram = "vssh";
     license = licenses.mit;
     maintainers = with maintainers; [ lesuisse ];
   };
diff --git a/nixpkgs/pkgs/tools/security/vault/default.nix b/nixpkgs/pkgs/tools/security/vault/default.nix
index bec13959dc43..6b5b0d595809 100644
--- a/nixpkgs/pkgs/tools/security/vault/default.nix
+++ b/nixpkgs/pkgs/tools/security/vault/default.nix
@@ -15,7 +15,7 @@ buildGoModule rec {
     hash = "sha256-XqPuikUUm8C02Uv6qZHPz/KEmrvBrr8gOznQ7qbMKnU=";
   };
 
-  vendorHash = "sha256-SYGqlLCA7T4MhRlOVBSYnZdZ2+WuJvmmHw3MdnfoezM=";
+  vendorHash = "sha256-97/nNRwTJnoW1gRvWhdsO36TuLdGTX67o0oTiGMotrs=";
 
   proxyVendor = true;
 
diff --git a/nixpkgs/pkgs/tools/security/vaultwarden/default.nix b/nixpkgs/pkgs/tools/security/vaultwarden/default.nix
index 5fbe5e22d765..ec93f40e3040 100644
--- a/nixpkgs/pkgs/tools/security/vaultwarden/default.nix
+++ b/nixpkgs/pkgs/tools/security/vaultwarden/default.nix
@@ -9,16 +9,16 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "vaultwarden";
-  version = "1.30.3";
+  version = "1.30.5";
 
   src = fetchFromGitHub {
     owner = "dani-garcia";
     repo = pname;
     rev = version;
-    hash = "sha256-vUAgW/kTFO9yzWFIWqM1f6xEZYH8ojIdt2eOhP9ID8g=";
+    hash = "sha256-OwFB5ULWBefDHSkUM3nT0v2jcc5vHUvs8Ex0JauDu8w=";
   };
 
-  cargoHash = "sha256-+FmVkemZTlFOf+fnTJED3u13pXeAuP/wIvEb96Vwa6I=";
+  cargoHash = "sha256-K0T0uTERjxlI3bGG/Tz6sJ0A08J0ROAhpppdZcdQPB8=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = with lib; [ openssl ]
diff --git a/nixpkgs/pkgs/tools/security/verifpal/default.nix b/nixpkgs/pkgs/tools/security/verifpal/default.nix
index 3d47dfa3abc5..378bd4731a41 100644
--- a/nixpkgs/pkgs/tools/security/verifpal/default.nix
+++ b/nixpkgs/pkgs/tools/security/verifpal/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
   meta = {
     homepage = "https://verifpal.com/";
     description = "Cryptographic protocol analysis for students and engineers";
+    mainProgram = "verifpal";
     maintainers = with lib.maintainers; [ zimbatm ];
     license = with lib.licenses; [ gpl3 ];
   };
diff --git a/nixpkgs/pkgs/tools/security/vexctl/default.nix b/nixpkgs/pkgs/tools/security/vexctl/default.nix
index 335da7f93acf..1bb56dbb0547 100644
--- a/nixpkgs/pkgs/tools/security/vexctl/default.nix
+++ b/nixpkgs/pkgs/tools/security/vexctl/default.nix
@@ -63,6 +63,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/chainguard-dev/vex/";
     description = "A tool to attest VEX impact statements";
+    mainProgram = "vexctl";
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
   };
diff --git a/nixpkgs/pkgs/tools/security/vulnix/default.nix b/nixpkgs/pkgs/tools/security/vulnix/default.nix
index 7f6d29891f0c..305c3dc2f9a9 100644
--- a/nixpkgs/pkgs/tools/security/vulnix/default.nix
+++ b/nixpkgs/pkgs/tools/security/vulnix/default.nix
@@ -55,6 +55,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "NixOS vulnerability scanner";
+    mainProgram = "vulnix";
     homepage = "https://github.com/flyingcircusio/vulnix";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ckauhaus ];
diff --git a/nixpkgs/pkgs/tools/security/wad/default.nix b/nixpkgs/pkgs/tools/security/wad/default.nix
index 5dc81a7f56df..348a35ccbe10 100644
--- a/nixpkgs/pkgs/tools/security/wad/default.nix
+++ b/nixpkgs/pkgs/tools/security/wad/default.nix
@@ -30,6 +30,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for detecting technologies used by web applications";
+    mainProgram = "wad";
     longDescription = ''
       WAD lets you analyze given URL(s) and detect technologies used by web
       application behind that URL, from the OS and web server level, to the
diff --git a/nixpkgs/pkgs/tools/security/waf-tester/default.nix b/nixpkgs/pkgs/tools/security/waf-tester/default.nix
index b8dd01ed19b8..47e5c2fbb5fb 100644
--- a/nixpkgs/pkgs/tools/security/waf-tester/default.nix
+++ b/nixpkgs/pkgs/tools/security/waf-tester/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Tool to test Web Application Firewalls (WAFs)";
+    mainProgram = "waf-tester";
     homepage = "https://github.com/jreisinger/waf-tester";
     changelog = "https://github.com/jreisinger/waf-tester/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/security/wafw00f/default.nix b/nixpkgs/pkgs/tools/security/wafw00f/default.nix
index 55d4b7591e38..d8d89a3e325a 100644
--- a/nixpkgs/pkgs/tools/security/wafw00f/default.nix
+++ b/nixpkgs/pkgs/tools/security/wafw00f/default.nix
@@ -29,6 +29,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to identify and fingerprint Web Application Firewalls (WAF)";
+    mainProgram = "wafw00f";
     homepage = "https://github.com/EnableSecurity/wafw00f";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/web-eid-app/default.nix b/nixpkgs/pkgs/tools/security/web-eid-app/default.nix
index fd9c4cc319e7..067963e1aaff 100644
--- a/nixpkgs/pkgs/tools/security/web-eid-app/default.nix
+++ b/nixpkgs/pkgs/tools/security/web-eid-app/default.nix
@@ -33,6 +33,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "signing and authentication operations with smart cards for the Web eID browser extension";
+    mainProgram = "web-eid";
     longDescription = ''
       The Web eID application performs cryptographic digital signing and
       authentication operations with electronic ID smart cards for the Web eID
diff --git a/nixpkgs/pkgs/tools/security/whatweb/default.nix b/nixpkgs/pkgs/tools/security/whatweb/default.nix
index 30d866da869a..fbe78834c826 100644
--- a/nixpkgs/pkgs/tools/security/whatweb/default.nix
+++ b/nixpkgs/pkgs/tools/security/whatweb/default.nix
@@ -42,6 +42,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Next generation web scanner";
+    mainProgram = "whatweb";
     homepage = "https://github.com/urbanadventurer/whatweb";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ wolfangaukang ];
diff --git a/nixpkgs/pkgs/tools/security/wipe/default.nix b/nixpkgs/pkgs/tools/security/wipe/default.nix
index 5ced99060fb7..0d9653f27918 100644
--- a/nixpkgs/pkgs/tools/security/wipe/default.nix
+++ b/nixpkgs/pkgs/tools/security/wipe/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Secure file wiping utility";
+    mainProgram = "wipe";
     homepage    = "https://wipe.sourceforge.net/";
     license     = licenses.gpl2;
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/tools/security/xcat/default.nix b/nixpkgs/pkgs/tools/security/xcat/default.nix
index ea3390b38c74..bb5fc62831e7 100644
--- a/nixpkgs/pkgs/tools/security/xcat/default.nix
+++ b/nixpkgs/pkgs/tools/security/xcat/default.nix
@@ -37,6 +37,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "XPath injection tool";
+    mainProgram = "xcat";
     longDescription = ''
       xcat is an advanced tool for exploiting XPath injection vulnerabilities,
       featuring a comprehensive set of features to read the entire file being
diff --git a/nixpkgs/pkgs/tools/security/xorex/default.nix b/nixpkgs/pkgs/tools/security/xorex/default.nix
index a1a6e655996a..933ab05b6382 100644
--- a/nixpkgs/pkgs/tools/security/xorex/default.nix
+++ b/nixpkgs/pkgs/tools/security/xorex/default.nix
@@ -31,6 +31,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "XOR Key Extractor";
+    mainProgram = "xorex";
     homepage = "https://github.com/Neo23x0/xorex";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/tools/security/xsser/default.nix b/nixpkgs/pkgs/tools/security/xsser/default.nix
index 6c75f2e733f2..c5fab523166e 100644
--- a/nixpkgs/pkgs/tools/security/xsser/default.nix
+++ b/nixpkgs/pkgs/tools/security/xsser/default.nix
@@ -53,6 +53,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Automatic framework to detect, exploit and report XSS vulnerabilities in web-based applications";
+    mainProgram = "xsser";
     homepage = "https://xsser.03c8.net/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ emilytrau ];
diff --git a/nixpkgs/pkgs/tools/security/xsubfind3r/default.nix b/nixpkgs/pkgs/tools/security/xsubfind3r/default.nix
index 7c5470a0715a..976624c16b60 100644
--- a/nixpkgs/pkgs/tools/security/xsubfind3r/default.nix
+++ b/nixpkgs/pkgs/tools/security/xsubfind3r/default.nix
@@ -23,6 +23,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI utility to find subdomains from curated passive online sources";
+    mainProgram = "xsubfind3r";
     homepage = "https://github.com/hueristiq/xsubfind3r";
     changelog = "https://github.com/hueristiq/xsubfind3r/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/security/yarGen/default.nix b/nixpkgs/pkgs/tools/security/yarGen/default.nix
index 4003c7e996ec..12b2567f340e 100644
--- a/nixpkgs/pkgs/tools/security/yarGen/default.nix
+++ b/nixpkgs/pkgs/tools/security/yarGen/default.nix
@@ -51,6 +51,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A generator for YARA rules";
+    mainProgram = "yarGen.py";
     homepage = "https://github.com/Neo23x0/yarGen";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/nixpkgs/pkgs/tools/security/yersinia/default.nix b/nixpkgs/pkgs/tools/security/yersinia/default.nix
index a913835743aa..ae2ca9babff2 100644
--- a/nixpkgs/pkgs/tools/security/yersinia/default.nix
+++ b/nixpkgs/pkgs/tools/security/yersinia/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A framework for layer 2 attacks";
+    mainProgram = "yersinia";
     homepage = "https://github.com/tomac/yersinia";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ vdot0x23 ];
diff --git a/nixpkgs/pkgs/tools/security/yubikey-agent/default.nix b/nixpkgs/pkgs/tools/security/yubikey-agent/default.nix
index 01e512e49bdd..24cd2d764267 100644
--- a/nixpkgs/pkgs/tools/security/yubikey-agent/default.nix
+++ b/nixpkgs/pkgs/tools/security/yubikey-agent/default.nix
@@ -37,6 +37,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A seamless ssh-agent for YubiKeys";
+    mainProgram = "yubikey-agent";
     license = licenses.bsd3;
     homepage = "https://filippo.io/yubikey-agent";
     maintainers = with lib.maintainers; [ philandstuff rawkode ];
diff --git a/nixpkgs/pkgs/tools/security/yubikey-touch-detector/default.nix b/nixpkgs/pkgs/tools/security/yubikey-touch-detector/default.nix
index a8474a1a5b3f..36822b6728e6 100644
--- a/nixpkgs/pkgs/tools/security/yubikey-touch-detector/default.nix
+++ b/nixpkgs/pkgs/tools/security/yubikey-touch-detector/default.nix
@@ -1,41 +1,27 @@
-{ lib, libnotify, buildGoModule, fetchFromGitHub, fetchurl, pkg-config, iconColor ? "#84bd00" }:
+{ lib, libnotify, gpgme, buildGoModule, fetchFromGitHub, fetchurl, pkg-config }:
 
 buildGoModule rec {
   pname = "yubikey-touch-detector";
-  version = "1.10.1";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "maximbaz";
     repo = "yubikey-touch-detector";
     rev = version;
-    sha256 = "sha256-y/iDmxlhu2Q6Zas0jsv07HQPkNdMrOQaXWy/cuWvpMk=";
-  };
-  vendorHash = "sha256-OitI9Yp4/mRMrNH4yrWSL785+3mykPkvzarrc6ipOeg=";
-
-  iconSrc = fetchurl {
-    url = "https://github.com/Yubico/yubioath-flutter/raw/yubioath-desktop-5.0.0/images/touch.svg";
-    hash = "sha256-+jC9RKjl1uMBaNqLX5WXN+E4CuOcIEx5IGXWxgxzA/k=";
+    hash = "sha256-XpaCKNQpQD9dNj4EOGJ6PdjfSAxxG5dC8mIzYr7t/+I=";
   };
+  vendorHash = "sha256-mhmYTicj/ihGNzeCZd1ZijWPkvxQZjBxaC5dyAU1O7U=";
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ libnotify ];
-
-  postPatch = ''
-    cp $iconSrc yubikey-touch-detector.svg
-    substituteInPlace yubikey-touch-detector.svg \
-      --replace '#284c61' ${lib.escapeShellArg iconColor}
-
-    substituteInPlace notifier/libnotify.go \
-      --replace \
-        'AppIcon: "yubikey-touch-detector"' \
-        "AppIcon: \"$out/share/icons/yubikey-touch-detector.svg\""
-  '';
+  buildInputs = [ libnotify gpgme ];
 
   postInstall = ''
-    install -Dm444 -t $out/share/doc/${pname} *.md
+    install -Dm444 -t $out/share/doc/${pname} *.{md,example}
+
+    install -Dm444 -t $out/share/licenses/${pname} LICENSE
 
-    install -Dm444 -t $out/share/icons yubikey-touch-detector.svg
+    install -Dm444 -t $out/share/icons/hicolor/128x128/apps yubikey-touch-detector.png
 
     install -Dm444 -t $out/lib/systemd/user *.{service,socket}
 
diff --git a/nixpkgs/pkgs/tools/security/zdns/default.nix b/nixpkgs/pkgs/tools/security/zdns/default.nix
index 9b0c33f2802e..d67bb6d8e4c7 100644
--- a/nixpkgs/pkgs/tools/security/zdns/default.nix
+++ b/nixpkgs/pkgs/tools/security/zdns/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "CLI DNS lookup tool";
+    mainProgram = "zdns";
     homepage = "https://github.com/zmap/zdns";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
diff --git a/nixpkgs/pkgs/tools/security/zgrab2/default.nix b/nixpkgs/pkgs/tools/security/zgrab2/default.nix
index c91c1b876099..155a6a28e721 100644
--- a/nixpkgs/pkgs/tools/security/zgrab2/default.nix
+++ b/nixpkgs/pkgs/tools/security/zgrab2/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Web application scanner";
+    mainProgram = "zgrab2";
     homepage = "https://github.com/zmap/zgrab2";
     license = with licenses; [ asl20 isc ];
     maintainers = with maintainers; [ fab juliusrickert ];
diff --git a/nixpkgs/pkgs/tools/security/zkar/default.nix b/nixpkgs/pkgs/tools/security/zkar/default.nix
index 85bed59a1fa2..f7d68300a45e 100644
--- a/nixpkgs/pkgs/tools/security/zkar/default.nix
+++ b/nixpkgs/pkgs/tools/security/zkar/default.nix
@@ -5,21 +5,25 @@
 
 buildGoModule rec {
   pname = "zkar";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "phith0n";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-TGqsiYZLbXvCc30OtvNbX4INlzw3ZfjvXal47rP7NDw=";
+    repo = "zkar";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-JPkxJpx2guTaEfTYhQsgZG+kXqHXgEiOrS9sk5vOjVc=";
   };
 
-  vendorHash = "sha256-HQ9qclaaDj0H8PL0oQG1WsH19wVQpynijHNcal4gWBE=";
+  vendorHash = "sha256-R+Pd3QklWqTuivUy7nRIzCmWSujgXpdfFoXAihGSflk=";
+
+  ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
     description = "Java serialization protocol analysis tool";
     homepage = "https://github.com/phith0n/zkar";
+    changelog = "https://github.com/phith0n/zkar/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "zkar";
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/automatic-timezoned/default.nix b/nixpkgs/pkgs/tools/system/automatic-timezoned/default.nix
index 2bac409565fa..c25decf1ae24 100644
--- a/nixpkgs/pkgs/tools/system/automatic-timezoned/default.nix
+++ b/nixpkgs/pkgs/tools/system/automatic-timezoned/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "automatic-timezoned";
-  version = "2.0.4";
+  version = "2.0.9";
 
   src = fetchFromGitHub {
     owner = "maxbrunet";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-znoQPpnBU3cLxNmnIKvqj/fIuZDGCdmICx2UL1tqAnc=";
+    sha256 = "sha256-v8oPKjMG3IRZoXSw349ftcQmjk4zojgmPoLBR6x1+9E=";
   };
 
-  cargoHash = "sha256-1G81O+WKGVnRLGS6/6iiqsMiY5AaFrzEa9JD1MBDSGY=";
+  cargoHash = "sha256-M7OWLPmHwG+Vt/agkq0YqKiefXsVdmeMdXI5CkxQrwg=";
 
   meta = with lib; {
     description = "Automatically update system timezone based on location";
diff --git a/nixpkgs/pkgs/tools/system/btop/default.nix b/nixpkgs/pkgs/tools/system/btop/default.nix
index 9b6956fb5780..ba5f01b843bb 100644
--- a/nixpkgs/pkgs/tools/system/btop/default.nix
+++ b/nixpkgs/pkgs/tools/system/btop/default.nix
@@ -9,6 +9,8 @@
 , testers
 , cudaSupport ? config.cudaSupport
 , cudaPackages
+, rocmSupport ? config.rocmSupport
+, rocmPackages
 }:
 
 stdenv.mkDerivation rec {
@@ -23,7 +25,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake ] ++ lib.optionals cudaSupport [
-    cudaPackages.autoAddOpenGLRunpathHook
+    cudaPackages.autoAddDriverRunpath
   ];
 
   buildInputs = lib.optionals stdenv.isDarwin [
@@ -37,6 +39,11 @@ stdenv.mkDerivation rec {
     ${removeReferencesTo}/bin/remove-references-to -t ${stdenv.cc.cc} $(readlink -f $out/bin/btop)
   '';
 
+  postPhases = lib.optionals rocmSupport [ "postPatchelf" ];
+  postPatchelf = lib.optionalString rocmSupport ''
+    patchelf --add-rpath ${lib.getLib rocmPackages.rocm-smi}/lib $out/bin/btop
+  '';
+
   passthru.tests.version = testers.testVersion {
     package = btop;
   };
diff --git a/nixpkgs/pkgs/tools/system/confd/default.nix b/nixpkgs/pkgs/tools/system/confd/default.nix
index bdbba9bc9f21..5d4ebbed7d74 100644
--- a/nixpkgs/pkgs/tools/system/confd/default.nix
+++ b/nixpkgs/pkgs/tools/system/confd/default.nix
@@ -1,20 +1,23 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule {
   pname = "confd";
-  version = "0.16.0";
-  rev = "v${version}";
+  version = "0.16-unstable-2023-12-09";
 
-  goPackagePath = "github.com/kelseyhightower/confd";
-  subPackages = [ "./" ];
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "kelseyhightower";
     repo = "confd";
-    sha256 = "0q7r6dkgirnmqi3rhqdaai88jqzw52l6jdrrwsf2qq0hva09961p";
+    rev = "919444eb6cf721d198b2bb18581d0f0b3734d107";
+    hash = "sha256-/HlL+vxERSOUKIxdtlZDZrpYjGXon3KMwoYUcp8iOug=";
   };
 
+  vendorHash = null;
+
+  subPackages = [ "." ];
+
+  ldflags = [ "-s" "-w" ];
+
   meta = {
     description = "Manage local application configuration files using templates and data from etcd or consul";
     homepage = "https://github.com/kelseyhightower/confd";
diff --git a/nixpkgs/pkgs/tools/system/consul-template/default.nix b/nixpkgs/pkgs/tools/system/consul-template/default.nix
index 08ad879193f8..feb15b651e1d 100644
--- a/nixpkgs/pkgs/tools/system/consul-template/default.nix
+++ b/nixpkgs/pkgs/tools/system/consul-template/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "consul-template";
-  version = "0.37.1";
+  version = "0.37.2";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "consul-template";
     rev = "v${version}";
-    hash = "sha256-s1UhbCxqWm7a5ulPPnbw0lO5lbRShTBBzAGuxWV5msM=";
+    hash = "sha256-5BVOs73StkKiiLAoFjlsH/q+B4C+gCuu6ag2XJPwbIQ=";
   };
 
-  vendorHash = "sha256-eFxXiRO2ruf1YLLWsCAYxTNUnKpaBXO8mLM4REThG1s=";
+  vendorHash = "sha256-oVauzk6vZJSeub55s1cTc+brDoUYwauiMSgFuN0xCw4=";
 
   # consul-template tests depend on vault and consul services running to
   # execute tests so we skip them here
diff --git a/nixpkgs/pkgs/tools/system/dell-command-configure/default.nix b/nixpkgs/pkgs/tools/system/dell-command-configure/default.nix
index c029a9877337..b4cd7e5dbf63 100644
--- a/nixpkgs/pkgs/tools/system/dell-command-configure/default.nix
+++ b/nixpkgs/pkgs/tools/system/dell-command-configure/default.nix
@@ -17,18 +17,20 @@
 # the dependencies from other pkgs.
 
 let
-  version = "4.8.0-494";
+  version = "4.11.0-6";
 
   unpacked = stdenv.mkDerivation rec {
     inherit version;
     pname = "dell-command-configure-unpacked";
 
     src = fetchurl {
-      url =
-        "https://dl.dell.com/FOLDER08911312M/1/command-configure_${version}.ubuntu20_amd64.tar.gz";
+      urls = [
+        "https://dl.dell.com/FOLDER10469726M/1/command-configure_${version}.ubuntu22_amd64.tar.gz"
+        "https://web.archive.org/web/20240228233129/https://dl.dell.com/FOLDER10469726M/1/command-configure_4.11.0-6.ubuntu22_amd64.tar.gz"
+      ];
       # The CDN blocks the Curl user-agent, so set to blank instead.
       curlOpts = ''-A=""'';
-      hash = "sha256-l5oHgDkFBF6llNsHufTmuDzjkhGmXHYXlOJ4hvZfRoE=";
+      hash = "sha256-Bwa4sYguYwEBKEJSP3wzHhzjuDeaGQN8fKeooWHX18E=";
     };
 
     dontBuild = true;
@@ -37,7 +39,7 @@ let
 
     unpackPhase = ''
       tar -xzf ${src}
-      dpkg-deb -x command-configure_${version}.ubuntu20_amd64.deb command-configure
+      dpkg-deb -x command-configure_${version}.ubuntu22_amd64.deb command-configure
       dpkg-deb -x srvadmin-hapi_9.5.0_amd64.deb srvadmin-hapi
     '';
 
diff --git a/nixpkgs/pkgs/tools/system/freeipmi/default.nix b/nixpkgs/pkgs/tools/system/freeipmi/default.nix
index f61e455268b7..9fe830aa4d51 100644
--- a/nixpkgs/pkgs/tools/system/freeipmi/default.nix
+++ b/nixpkgs/pkgs/tools/system/freeipmi/default.nix
@@ -1,12 +1,12 @@
 { buildPackages, fetchurl, lib, stdenv, libgcrypt, readline, libgpg-error }:
 
 stdenv.mkDerivation rec {
-  version = "1.6.11";
+  version = "1.6.14";
   pname = "freeipmi";
 
   src = fetchurl {
     url = "mirror://gnu/freeipmi/${pname}-${version}.tar.gz";
-    sha256 = "sha256-ZfvWkQ/AEEV3SGlUFPJ8V1W06NdXNCISIfOFjGIwqJc=";
+    sha256 = "sha256-Gj2sXHa3zMTU+GqhK475shK673SJvwXombiau34U7bU=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/nixpkgs/pkgs/tools/system/goreman/default.nix b/nixpkgs/pkgs/tools/system/goreman/default.nix
index 57d7b46f54cf..5b83b1885bc7 100644
--- a/nixpkgs/pkgs/tools/system/goreman/default.nix
+++ b/nixpkgs/pkgs/tools/system/goreman/default.nix
@@ -22,6 +22,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "foreman clone written in go language";
+    mainProgram = "goreman";
     homepage = "https://github.com/mattn/goreman";
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
diff --git a/nixpkgs/pkgs/tools/system/illum/default.nix b/nixpkgs/pkgs/tools/system/illum/default.nix
index 3d33be9ed635..81d8bbee7b8d 100644
--- a/nixpkgs/pkgs/tools/system/illum/default.nix
+++ b/nixpkgs/pkgs/tools/system/illum/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     description = "Daemon that wires button presses to screen backlight level";
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.dancek ];
-    license = lib.licenses.agpl3;
+    license = lib.licenses.agpl3Plus;
     mainProgram = "illum-d";
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/java-service-wrapper/default.nix b/nixpkgs/pkgs/tools/system/java-service-wrapper/default.nix
index 955c0fe62a7a..9578941ef9a1 100644
--- a/nixpkgs/pkgs/tools/system/java-service-wrapper/default.nix
+++ b/nixpkgs/pkgs/tools/system/java-service-wrapper/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "java-service-wrapper";
-  version = "3.5.54";
+  version = "3.5.56";
 
   src = fetchurl {
     url = "https://wrapper.tanukisoftware.com/download/${version}/wrapper_${version}_src.tar.gz";
-    hash = "sha256-t16i1WqvDqr4J5sDldeUk6+DAyN/6oWGV6eME5yj+i4=";
+    hash = "sha256-zZfJP/uf78D/6G51Km1bNRRIv5i8x69Xw+imho4/ZpQ=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/tools/system/journalwatch/default.nix b/nixpkgs/pkgs/tools/system/journalwatch/default.nix
index b732af477169..8bb9b605a8f4 100644
--- a/nixpkgs/pkgs/tools/system/journalwatch/default.nix
+++ b/nixpkgs/pkgs/tools/system/journalwatch/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A tool to find error messages in the systemd journal";
+    mainProgram = "journalwatch";
     homepage = "https://github.com/The-Compiler/journalwatch";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ florianjacob ];
diff --git a/nixpkgs/pkgs/tools/system/kanata/default.nix b/nixpkgs/pkgs/tools/system/kanata/default.nix
index eab7fb3d4b17..32ea4ce04cbb 100644
--- a/nixpkgs/pkgs/tools/system/kanata/default.nix
+++ b/nixpkgs/pkgs/tools/system/kanata/default.nix
@@ -23,11 +23,6 @@ rustPlatform.buildRustPackage rec {
 
   buildFeatures = lib.optional withCmd "cmd";
 
-  # Workaround for https://github.com/nixos/nixpkgs/issues/166205
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   postInstall = ''
     install -Dm 444 assets/kanata-icon.svg $out/share/icons/hicolor/scalable/apps/kanata.svg
   '';
diff --git a/nixpkgs/pkgs/tools/system/lact/default.nix b/nixpkgs/pkgs/tools/system/lact/default.nix
index 16ce41007ea7..c694b96d85f5 100644
--- a/nixpkgs/pkgs/tools/system/lact/default.nix
+++ b/nixpkgs/pkgs/tools/system/lact/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lact";
-  version = "0.5.0";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "ilya-zlobintsev";
     repo = "LACT";
     rev = "v${version}";
-    hash = "sha256-B3YAlEKELbHGIQ8AIvortYZsHY6wsuaFxm9lC9Uh+Zg=";
+    hash = "sha256-Ts2byWYn1MwQCJPQfwTxezsa/fnwlgVOZyNDUXWgZ0s=";
   };
 
-  cargoHash = "sha256-MbE6OrYJGPoQPQggxa9dssx8Nc6/5w53V58E1yLLeq0=";
+  cargoHash = "sha256-7zGZu3q2CF/xzWjbicEb/JOt6pXEC2Skg7eR2syvUmY=";
 
   nativeBuildInputs = [
     blueprint-compiler
diff --git a/nixpkgs/pkgs/tools/system/monit/default.nix b/nixpkgs/pkgs/tools/system/monit/default.nix
index bd36d6fa400e..319d3492b48e 100644
--- a/nixpkgs/pkgs/tools/system/monit/default.nix
+++ b/nixpkgs/pkgs/tools/system/monit/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://mmonit.com/monit/";
     description = "Monitoring system";
-    license = lib.licenses.agpl3;
+    license = lib.licenses.agpl3Plus;
     maintainers = with lib.maintainers; [ raskin wmertens ryantm ];
     platforms = with lib; platforms.linux ++ platforms.darwin;
     mainProgram = "monit";
diff --git a/nixpkgs/pkgs/tools/system/natscli/default.nix b/nixpkgs/pkgs/tools/system/natscli/default.nix
index 97c9884f4e3d..ed4d09454d56 100644
--- a/nixpkgs/pkgs/tools/system/natscli/default.nix
+++ b/nixpkgs/pkgs/tools/system/natscli/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "natscli";
-  version = "0.1.3";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = "natscli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-40gKG47C8RvgPm3qJ5oNJP82efmCfrCSKVt+35jawlw=";
+    hash = "sha256-c2bFFbHKjKwkzX2Br1CC2aMh1Tz0NPVWCfPSFbu/XnU=";
   };
 
-  vendorHash = "sha256-d2JijN9OU/hQFU3Q2kEAWU0nRrPacfRWNIhEuLHjoIc=";
+  vendorHash = "sha256-ltTQWAS6OG485oj6GEpgQnnuCUunSqUtgq1/OPcjKmQ=";
 
   meta = with lib; {
     description = "NATS Command Line Interface";
diff --git a/nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix b/nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix
index ce53b278a9bd..910ad29c13fa 100644
--- a/nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix
+++ b/nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Netdata orchestrator for data collection modules written in go";
+    mainProgram = "godplugin";
     homepage = "https://github.com/netdata/go.d.plugin";
     changelog = "https://github.com/netdata/go.d.plugin/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/nixpkgs/pkgs/tools/system/nvtop/build-nvtop.nix b/nixpkgs/pkgs/tools/system/nvtop/build-nvtop.nix
new file mode 100644
index 000000000000..a72ab1ce0dfd
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/nvtop/build-nvtop.nix
@@ -0,0 +1,90 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gtest
+, cudatoolkit
+, libdrm
+, ncurses
+, testers
+, udev
+, addOpenGLRunpath
+, amd ? false
+, intel ? false
+, msm ? false
+, nvidia ? false
+, apple ? false
+, panfrost ? false
+, panthor ? false
+, ascend ? false
+}:
+
+let
+  drm-postFixup = ''
+    patchelf \
+      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+      --set-rpath "${lib.makeLibraryPath [ libdrm ncurses udev ]}" \
+      $out/bin/nvtop
+  '';
+  needDrm = (amd || msm || panfrost || panthor);
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "nvtop";
+  version = "3.1.0";
+
+  src = fetchFromGitHub {
+    owner = "Syllo";
+    repo = "nvtop";
+    rev = finalAttrs.version;
+    hash = "sha256-MkkBY2PR6FZnmRMqv9MWqwPWRgixfkUQW5TWJtHEzwA=";
+  };
+
+  cmakeFlags = with lib.strings; [
+    (cmakeBool "BUILD_TESTING" true)
+    (cmakeBool "USE_LIBUDEV_OVER_LIBSYSTEMD" true)
+    (cmakeBool "AMDGPU_SUPPORT" amd)
+    (cmakeBool "NVIDIA_SUPPORT" nvidia)
+    (cmakeBool "INTEL_SUPPORT" intel)
+    (cmakeBool "APPLE_SUPPORT" apple)
+    (cmakeBool "MSM_SUPPORT" msm)
+    (cmakeBool "PANFROST_SUPPORT" panfrost)
+    (cmakeBool "PANTHOR_SUPPORT" panthor)
+    (cmakeBool "ASCEND_SUPPORT" ascend)
+  ];
+  nativeBuildInputs = [ cmake gtest ] ++ lib.optional nvidia addOpenGLRunpath;
+
+  buildInputs = with lib; [ ncurses udev ]
+    ++ optional nvidia cudatoolkit
+    ++ optional needDrm libdrm
+  ;
+
+  # this helps cmake to find <drm.h>
+  env.NIX_CFLAGS_COMPILE = lib.optionalString needDrm "-isystem ${lib.getDev libdrm}/include/libdrm";
+
+  # ordering of fixups is important
+  postFixup = (lib.optionalString needDrm drm-postFixup) + (lib.optionalString nvidia "addOpenGLRunpath $out/bin/nvtop");
+
+  doCheck = true;
+
+  passthru = {
+    tests.version = testers.testVersion {
+      inherit (finalAttrs) version;
+      package = finalAttrs.finalPackage;
+      command = "nvtop --version";
+    };
+  };
+
+  meta = with lib; {
+    description = "A (h)top like task monitor for AMD, Adreno, Intel and NVIDIA GPUs";
+    longDescription = ''
+      Nvtop stands for Neat Videocard TOP, a (h)top like task monitor for AMD, Adreno, Intel and NVIDIA GPUs.
+      It can handle multiple GPUs and print information about them in a htop familiar way.
+    '';
+    homepage = "https://github.com/Syllo/nvtop";
+    changelog = "https://github.com/Syllo/nvtop/releases/tag/${finalAttrs.version}";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ willibutz gbtb anthonyroussel ];
+    mainProgram = "nvtop";
+  };
+})
diff --git a/nixpkgs/pkgs/tools/system/nvtop/default.nix b/nixpkgs/pkgs/tools/system/nvtop/default.nix
index e47291207f08..f6e679b6ffef 100644
--- a/nixpkgs/pkgs/tools/system/nvtop/default.nix
+++ b/nixpkgs/pkgs/tools/system/nvtop/default.nix
@@ -1,83 +1,18 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, gtest
-, cudatoolkit
-, libdrm
-, ncurses
-, nvtop
-, testers
-, udev
-, addOpenGLRunpath
-, amd ? true
-, intel ? true
-, msm ? true
-, nvidia ? true
-}:
-
+{ callPackage }:
 let
-  nvidia-postFixup = "addOpenGLRunpath $out/bin/nvtop";
-  libPath = lib.makeLibraryPath [ libdrm ncurses udev ];
-  drm-postFixup = ''
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${libPath}" \
-      $out/bin/nvtop
-  '';
+  # this GPU families are supported "by-default" upstream (see https://github.com/Syllo/nvtop/blob/3a69c2d060298cd6f92cb09db944eded98be1c23/CMakeLists.txt#L81)
+  # coincidentally, these families are also easy to build in nixpkgs at the moment
+  defaultGPUFamilies = [ "amd" "intel" "msm" "nvidia" "panfrost" "panthor" ];
+  # these GPU families are partially supported upstream, they are also tricky to build in nixpkgs
+  # volunteers with specific hardware needed to build and test these package variants
+  additionalGPUFamilies = [ "apple" "ascend" ];
+  defaultSupport = builtins.listToAttrs (builtins.map (gpu: { name = gpu; value = true; }) defaultGPUFamilies);
 in
-stdenv.mkDerivation rec {
-  pname = "nvtop";
-  version = "3.0.2";
-
-  src = fetchFromGitHub {
-    owner = "Syllo";
-    repo = "nvtop";
-    rev = version;
-    hash = "sha256-SHKdjzbc3ZZfOW2p8RLFRKKBfLnO+Z8/bKVxcdLLqxw=";
-  };
-
-  cmakeFlags = with lib; [
-    "-DBUILD_TESTING=ON"
-    "-DUSE_LIBUDEV_OVER_LIBSYSTEMD=ON"
-  ] ++ optional nvidia "-DNVML_INCLUDE_DIRS=${cudatoolkit}/include"
-  ++ optional nvidia "-DNVML_LIBRARIES=${cudatoolkit}/targets/x86_64-linux/lib/stubs/libnvidia-ml.so"
-  ++ optional (!amd) "-DAMDGPU_SUPPORT=OFF"
-  ++ optional (!intel) "-DINTEL_SUPPORT=OFF"
-  ++ optional (!msm) "-DMSM_SUPPORT=OFF"
-  ++ optional (!nvidia) "-DNVIDIA_SUPPORT=OFF"
-  ++ optional (amd || msm) "-DLibdrm_INCLUDE_DIRS=${libdrm}/lib/stubs/libdrm.so.2"
-  ;
-  nativeBuildInputs = [ cmake gtest ] ++ lib.optional nvidia addOpenGLRunpath;
-  buildInputs = with lib; [ ncurses udev ]
-    ++ optional nvidia cudatoolkit
-    ++ optional (amd || msm) libdrm
-  ;
-
-  # ordering of fixups is important
-  postFixup = (lib.optionalString (amd || msm) drm-postFixup) + (lib.optionalString nvidia nvidia-postFixup);
+{
+  full = callPackage ./build-nvtop.nix defaultSupport; #this package supports all default GPU families
+}
+# additional packages with only one specific GPU family support
+// builtins.listToAttrs (builtins.map (gpu: { name = gpu; value = (callPackage ./build-nvtop.nix { "${gpu}" = true; }); }) defaultGPUFamilies)
 
-  doCheck = true;
 
-  passthru = {
-    tests.version = testers.testVersion {
-      inherit version;
-      package = nvtop;
-      command = "nvtop --version";
-    };
-  };
 
-  meta = with lib; {
-    description = "A (h)top like task monitor for AMD, Adreno, Intel and NVIDIA GPUs";
-    longDescription = ''
-      Nvtop stands for Neat Videocard TOP, a (h)top like task monitor for AMD, Adreno, Intel and NVIDIA GPUs.
-      It can handle multiple GPUs and print information about them in a htop familiar way.
-    '';
-    homepage = "https://github.com/Syllo/nvtop";
-    changelog = "https://github.com/Syllo/nvtop/releases/tag/${version}";
-    license = licenses.gpl3Only;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ willibutz gbtb anthonyroussel ];
-    mainProgram = "nvtop";
-  };
-}
diff --git a/nixpkgs/pkgs/tools/system/rsyslog/default.nix b/nixpkgs/pkgs/tools/system/rsyslog/default.nix
index 37af3d87fefc..865c66926259 100644
--- a/nixpkgs/pkgs/tools/system/rsyslog/default.nix
+++ b/nixpkgs/pkgs/tools/system/rsyslog/default.nix
@@ -185,6 +185,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.rsyslog.com/";
     description = "Enhanced syslog implementation";
+    mainProgram = "rsyslogd";
     changelog = "https://raw.githubusercontent.com/rsyslog/rsyslog/v${version}/ChangeLog";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/system/sleuthkit/default.nix b/nixpkgs/pkgs/tools/system/sleuthkit/default.nix
index 175ec98fe220..934a81724446 100644
--- a/nixpkgs/pkgs/tools/system/sleuthkit/default.nix
+++ b/nixpkgs/pkgs/tools/system/sleuthkit/default.nix
@@ -2,37 +2,33 @@
 , stdenv
 , fetchFromGitHub
 , autoreconfHook
-, libewf
+, ant
+, jdk
+, perl
+, stripJavaArchivesHook
 , afflib
+, libewf
 , openssl
 , zlib
-, openjdk
-, perl
-, ant
 }:
 
-stdenv.mkDerivation rec {
-  version = "4.12.1";
+stdenv.mkDerivation (finalAttrs: {
   pname = "sleuthkit";
+  version = "4.12.1"; # Note: when updating don't forget to also update the rdeps outputHash
 
-  sleuthsrc = fetchFromGitHub {
+  src = fetchFromGitHub {
     owner = "sleuthkit";
     repo = "sleuthkit";
-    rev = "${pname}-${version}";
+    rev = "sleuthkit-${finalAttrs.version}";
     hash = "sha256-q51UY2lIcLijycNaq9oQIwUXpp/1mfc3oPN4syOPF44=";
   };
 
   # Fetch libraries using a fixed output derivation
-  rdeps = stdenv.mkDerivation rec {
-
-    version = "1.0";
-    pname = "sleuthkit-deps";
-    nativeBuildInputs = [
-      openjdk
-      ant
-    ];
+  rdeps = stdenv.mkDerivation {
+    name = "sleuthkit-${finalAttrs.version}-deps";
+    inherit (finalAttrs) src;
 
-    src = sleuthsrc;
+    nativeBuildInputs = [ ant jdk ];
 
     # unpack, build, install
     dontConfigure = true;
@@ -48,7 +44,6 @@ stdenv.mkDerivation rec {
     '';
 
     installPhase = ''
-      export IVY_HOME=$NIX_BUILD_TOP/.ant
       mkdir -m 755 -p $out/bindings/java
       cp -r bindings/java/lib $out/bindings/java
       mkdir -m 755 -p $out/case-uco/java
@@ -58,11 +53,23 @@ stdenv.mkDerivation rec {
     '';
 
     outputHashMode = "recursive";
-    outputHash = "0fq7v6zlgybg4v6k9wqjlk4gaqgjrpihbnr182vaqriihflav2s8";
     outputHashAlgo = "sha256";
+    outputHash = "sha256-mc/KQrwn3xpPI0ngOLcpoQDaJJm/rM8XgaX//5PiRZk=";
   };
 
-  src = sleuthsrc;
+  postUnpack = ''
+    export IVY_HOME="$NIX_BUILD_TOP/.ant"
+    export ANT_ARGS="-Doffline=true -Ddefault-jar-location=$IVY_HOME/lib"
+
+    # pre-positioning these jar files allows -Doffline=true to work
+    mkdir -p source/{bindings,case-uco}/java $IVY_HOME
+    cp -r ${finalAttrs.rdeps}/bindings/java/lib source/bindings/java
+    chmod -R 755 source/bindings/java
+    cp -r ${finalAttrs.rdeps}/case-uco/java/lib source/case-uco/java
+    chmod -R 755 source/case-uco/java
+    cp -r ${finalAttrs.rdeps}/lib $IVY_HOME
+    chmod -R 755 $IVY_HOME
+  '';
 
   postPatch = ''
     substituteInPlace tsk/img/ewf.cpp --replace libewf_handle_read_random libewf_handle_read_buffer_at_offset
@@ -72,15 +79,15 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     autoreconfHook
-    openjdk
-    perl
     ant
-    rdeps
+    jdk
+    perl
+    stripJavaArchivesHook
   ];
 
   buildInputs = [
-    libewf
     afflib
+    libewf
     openssl
     zlib
   ];
@@ -90,31 +97,16 @@ stdenv.mkDerivation rec {
     rm -rf */.libs
   '';
 
-  postUnpack = ''
-    export IVY_HOME="$NIX_BUILD_TOP/.ant"
-    export JAVA_HOME="${openjdk}"
-    export ant_args="-Doffline=true -Ddefault-jar-location=$IVY_HOME/lib"
-
-    # pre-positioning these jar files allows -Doffline=true to work
-    mkdir -p source/{bindings,case-uco}/java $IVY_HOME
-    cp -r ${rdeps}/bindings/java/lib source/bindings/java
-    chmod -R 755 source/bindings/java
-    cp -r ${rdeps}/case-uco/java/lib source/case-uco/java
-    chmod -R 755 source/case-uco/java
-    cp -r ${rdeps}/lib $IVY_HOME
-    chmod -R 755 $IVY_HOME
-  '';
-
   meta = with lib; {
     description = "A forensic/data recovery tool";
     homepage = "https://www.sleuthkit.org/";
-    changelog = "https://github.com/sleuthkit/sleuthkit/releases/tag/sleuthkit-${version}";
+    changelog = "https://github.com/sleuthkit/sleuthkit/blob/${finalAttrs.src.rev}/NEWS.txt";
     maintainers = with maintainers; [ raskin gfrascadorio ];
     platforms = platforms.linux;
     sourceProvenance = with sourceTypes; [
       fromSource
-      binaryBytecode  # dependencies
+      binaryBytecode # dependencies
     ];
     license = licenses.ipl10;
   };
-}
+})
diff --git a/nixpkgs/pkgs/tools/system/stress-ng/default.nix b/nixpkgs/pkgs/tools/system/stress-ng/default.nix
index 598078645bd9..81e80bd5e830 100644
--- a/nixpkgs/pkgs/tools/system/stress-ng/default.nix
+++ b/nixpkgs/pkgs/tools/system/stress-ng/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "stress-ng";
-  version = "0.17.05";
+  version = "0.17.06";
 
   src = fetchFromGitHub {
     owner = "ColinIanKing";
     repo = pname;
     rev = "V${version}";
-    hash = "sha256-TlMLCDwFJGEEttdP9Wc0KAtj9Na1NC5E5e2VsTQugG4=";
+    hash = "sha256-69Ckl3n09J25Y0hzkH/RV9hJNlSfYfoxTdWiD5gBlQQ=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/system/zenith/default.nix b/nixpkgs/pkgs/tools/system/zenith/default.nix
index af8231e96c6d..7beaab4713a5 100644
--- a/nixpkgs/pkgs/tools/system/zenith/default.nix
+++ b/nixpkgs/pkgs/tools/system/zenith/default.nix
@@ -46,6 +46,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "Sort of like top or htop but with zoom-able charts, network, and disk usage"
       + lib.optionalString nvidiaSupport ", and NVIDIA GPU usage";
+    mainProgram = "zenith";
     homepage = "https://github.com/bvaisvil/zenith";
     license = licenses.mit;
     maintainers = with maintainers; [ wegank ];
diff --git a/nixpkgs/pkgs/tools/text/a2ps/default.nix b/nixpkgs/pkgs/tools/text/a2ps/default.nix
index dd4b7b2ca979..c275ee7d967c 100644
--- a/nixpkgs/pkgs/tools/text/a2ps/default.nix
+++ b/nixpkgs/pkgs/tools/text/a2ps/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "a2ps";
-  version = "4.15.5";
+  version = "4.15.6";
 
   src = fetchurl {
     url = "mirror://gnu/a2ps/a2ps-${version}.tar.gz";
-    hash = "sha256-gbsbQQTnwmOXYkUe3JeG2vPf6ziErfx9xqydII8w2n8=";
+    hash = "sha256-h/+dgByxGWkYHVuM+LZeZeWyS7DHahuCXoCY8pBvvfQ=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/text/abbreviate/default.nix b/nixpkgs/pkgs/tools/text/abbreviate/default.nix
index aedf4d173006..2f1e5bc812ab 100644
--- a/nixpkgs/pkgs/tools/text/abbreviate/default.nix
+++ b/nixpkgs/pkgs/tools/text/abbreviate/default.nix
@@ -32,6 +32,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Shorten your strings using common abbreviations";
+    mainProgram = "abbreviate";
     homepage = "https://github.com/dnnrly/abbreviate";
     changelog = "https://github.com/dnnrly/abbreviate/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/text/agrep/default.nix b/nixpkgs/pkgs/tools/text/agrep/default.nix
index 9fe158b426ae..39de33badd77 100644
--- a/nixpkgs/pkgs/tools/text/agrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/agrep/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Approximate grep for fast fuzzy string searching";
+    mainProgram = "agrep";
     homepage = "https://www.tgries.de/agrep/";
     license = licenses.isc;
     platforms = with platforms; linux ++ darwin;
diff --git a/nixpkgs/pkgs/tools/text/aha/default.nix b/nixpkgs/pkgs/tools/text/aha/default.nix
index 4ac07cef7eed..2344602a276c 100644
--- a/nixpkgs/pkgs/tools/text/aha/default.nix
+++ b/nixpkgs/pkgs/tools/text/aha/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "ANSI HTML Adapter";
+    mainProgram = "aha";
     longDescription = ''
       aha takes ANSI SGR-coloured input and produces W3C-conformant HTML code.
     '';
diff --git a/nixpkgs/pkgs/tools/text/align/default.nix b/nixpkgs/pkgs/tools/text/align/default.nix
index e3287b762e34..844b03b2c8c1 100644
--- a/nixpkgs/pkgs/tools/text/align/default.nix
+++ b/nixpkgs/pkgs/tools/text/align/default.nix
@@ -16,6 +16,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/Guitarbum722/align";
     description = "A general purpose application and library for aligning text";
+    mainProgram = "align";
     maintainers = with maintainers; [ hrhino ];
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/tools/text/anew/default.nix b/nixpkgs/pkgs/tools/text/anew/default.nix
index 2312d1dc69bf..58b6059a252c 100644
--- a/nixpkgs/pkgs/tools/text/anew/default.nix
+++ b/nixpkgs/pkgs/tools/text/anew/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool for adding new lines to files, skipping duplicates";
+    mainProgram = "anew";
     homepage = "https://github.com/tomnomnom/anew";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/tools/text/anewer/default.nix b/nixpkgs/pkgs/tools/text/anewer/default.nix
index e41b12cee447..69c4eb39b351 100644
--- a/nixpkgs/pkgs/tools/text/anewer/default.nix
+++ b/nixpkgs/pkgs/tools/text/anewer/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Append lines from stdin to a file if they don't already exist in the file";
+    mainProgram = "anewer";
     homepage = "https://github.com/ysf/anewer";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/tools/text/ansifilter/default.nix b/nixpkgs/pkgs/tools/text/ansifilter/default.nix
index 3a4751c63f9f..e2fd695d41ec 100644
--- a/nixpkgs/pkgs/tools/text/ansifilter/default.nix
+++ b/nixpkgs/pkgs/tools/text/ansifilter/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool to convert ANSI to other formats";
+    mainProgram = "ansifilter";
     longDescription = ''
       Tool to remove ANSI or convert them to another format
       (HTML, TeX, LaTeX, RTF, Pango or BBCode)
diff --git a/nixpkgs/pkgs/tools/text/ascii/default.nix b/nixpkgs/pkgs/tools/text/ascii/default.nix
index 613288079d34..ad9884faa17d 100644
--- a/nixpkgs/pkgs/tools/text/ascii/default.nix
+++ b/nixpkgs/pkgs/tools/text/ascii/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Interactive ASCII name and synonym chart";
+    mainProgram = "ascii";
     homepage = "http://www.catb.org/~esr/ascii/";
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/text/asciigraph/default.nix b/nixpkgs/pkgs/tools/text/asciigraph/default.nix
index 17c25874f54d..518d7ce549c7 100644
--- a/nixpkgs/pkgs/tools/text/asciigraph/default.nix
+++ b/nixpkgs/pkgs/tools/text/asciigraph/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/guptarohit/asciigraph";
     description = "Lightweight ASCII line graph ╭┈╯ command line app";
+    mainProgram = "asciigraph";
     license = licenses.bsd3;
     maintainers = with maintainers; [ mmahut ];
   };
diff --git a/nixpkgs/pkgs/tools/text/autocorrect/default.nix b/nixpkgs/pkgs/tools/text/autocorrect/default.nix
index 676eec70076c..2e51672363f4 100644
--- a/nixpkgs/pkgs/tools/text/autocorrect/default.nix
+++ b/nixpkgs/pkgs/tools/text/autocorrect/default.nix
@@ -28,6 +28,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A linter and formatter for help you improve copywriting, to correct spaces, punctuations between CJK (Chinese, Japanese, Korean)";
+    mainProgram = "autocorrect";
     homepage = "https://huacnlee.github.io/autocorrect";
     changelog = "https://github.com/huacnlee/autocorrect/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/text/base16384/default.nix b/nixpkgs/pkgs/tools/text/base16384/default.nix
index c9937fa5cd69..7111eece4295 100644
--- a/nixpkgs/pkgs/tools/text/base16384/default.nix
+++ b/nixpkgs/pkgs/tools/text/base16384/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Encode binary files to printable utf16be";
+    mainProgram = "base16384";
     homepage = "https://github.com/fumiama/base16384";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ aleksana ];
diff --git a/nixpkgs/pkgs/tools/text/bashblog/default.nix b/nixpkgs/pkgs/tools/text/bashblog/default.nix
index 0080ed0f7e1c..0159e20de99a 100644
--- a/nixpkgs/pkgs/tools/text/bashblog/default.nix
+++ b/nixpkgs/pkgs/tools/text/bashblog/default.nix
@@ -54,6 +54,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A single Bash script to create blogs";
+    mainProgram = "bashblog";
     homepage = "https://github.com/cfenollosa/bashblog";
     license = licenses.gpl3Only;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/text/book-summary/default.nix b/nixpkgs/pkgs/tools/text/book-summary/default.nix
index a1bbe710273c..374c107f9a3d 100644
--- a/nixpkgs/pkgs/tools/text/book-summary/default.nix
+++ b/nixpkgs/pkgs/tools/text/book-summary/default.nix
@@ -16,6 +16,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Book auto-summary for gitbook and mdBook";
+    mainProgram = "book-summary";
     homepage = "https://github.com/dvogt23/book-summary";
     license = licenses.mit;
     maintainers = with teams; iog.members;
diff --git a/nixpkgs/pkgs/tools/text/boxes/default.nix b/nixpkgs/pkgs/tools/text/boxes/default.nix
index 5340c5eccff9..fe78492b36a0 100644
--- a/nixpkgs/pkgs/tools/text/boxes/default.nix
+++ b/nixpkgs/pkgs/tools/text/boxes/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A command line program which draws, removes, and repairs ASCII art boxes";
+    mainProgram = "boxes";
     homepage = "https://boxes.thomasjensen.com";
     license = licenses.gpl2;
     maintainers = with maintainers; [ waiting-for-dev ];
diff --git a/nixpkgs/pkgs/tools/text/catdocx/default.nix b/nixpkgs/pkgs/tools/text/catdocx/default.nix
index c762e15c80e2..27eb964eb3c2 100644
--- a/nixpkgs/pkgs/tools/text/catdocx/default.nix
+++ b/nixpkgs/pkgs/tools/text/catdocx/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Extracts plain text from docx files";
+    mainProgram = "catdocx";
     homepage = "https://github.com/jncraton/catdocx";
     license = with licenses; [ bsd3 ];
     maintainers = [ maintainers.michalrus ];
diff --git a/nixpkgs/pkgs/tools/text/cconv/default.nix b/nixpkgs/pkgs/tools/text/cconv/default.nix
index de8405aed43b..86aaf2d5f7c6 100644
--- a/nixpkgs/pkgs/tools/text/cconv/default.nix
+++ b/nixpkgs/pkgs/tools/text/cconv/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A iconv based simplified-traditional chinese conversion tool";
+    mainProgram = "cconv";
     homepage = "https://github.com/xiaoyjy/cconv";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/text/chars/default.nix b/nixpkgs/pkgs/tools/text/chars/default.nix
index 74083feb68f5..509953e8059b 100644
--- a/nixpkgs/pkgs/tools/text/chars/default.nix
+++ b/nixpkgs/pkgs/tools/text/chars/default.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Commandline tool to display information about unicode characters";
+    mainProgram = "chars";
     homepage = "https://github.com/antifuchs/chars";
     license = licenses.mit;
     maintainers = with maintainers; [ bbigras ];
diff --git a/nixpkgs/pkgs/tools/text/choose/default.nix b/nixpkgs/pkgs/tools/text/choose/default.nix
index f40fcd1e3b6d..b765a40f5496 100644
--- a/nixpkgs/pkgs/tools/text/choose/default.nix
+++ b/nixpkgs/pkgs/tools/text/choose/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A human-friendly and fast alternative to cut and (sometimes) awk";
+    mainProgram = "choose";
     homepage = "https://github.com/theryangeary/choose";
     license = licenses.gpl3;
     maintainers = with maintainers; [ sohalt ];
diff --git a/nixpkgs/pkgs/tools/text/cidrgrep/default.nix b/nixpkgs/pkgs/tools/text/cidrgrep/default.nix
index 0117374dadef..ddc67097fb28 100644
--- a/nixpkgs/pkgs/tools/text/cidrgrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/cidrgrep/default.nix
@@ -19,6 +19,7 @@ buildGoModule {
 
   meta = {
     description = "Like grep but for IPv4 CIDRs";
+    mainProgram = "cidrgrep";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ das_j ];
   };
diff --git a/nixpkgs/pkgs/tools/text/cmigemo/default.nix b/nixpkgs/pkgs/tools/text/cmigemo/default.nix
index 179db9c337dd..09810f1e0836 100644
--- a/nixpkgs/pkgs/tools/text/cmigemo/default.nix
+++ b/nixpkgs/pkgs/tools/text/cmigemo/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A tool that supports Japanese incremental search with Romaji";
+    mainProgram = "cmigemo";
     homepage = "https://www.kaoriya.net/software/cmigemo";
     license = licenses.mit;
     maintainers = [ maintainers.cohei ];
diff --git a/nixpkgs/pkgs/tools/text/coloursum/default.nix b/nixpkgs/pkgs/tools/text/coloursum/default.nix
index 93ebf6c309e4..78f583e3f73d 100644
--- a/nixpkgs/pkgs/tools/text/coloursum/default.nix
+++ b/nixpkgs/pkgs/tools/text/coloursum/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Colourise your checksum output";
+    mainProgram = "coloursum";
     homepage = "https://github.com/ticky/coloursum";
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
diff --git a/nixpkgs/pkgs/tools/text/comrak/default.nix b/nixpkgs/pkgs/tools/text/comrak/default.nix
index 3b9af32c2833..e2a9633aa15a 100644
--- a/nixpkgs/pkgs/tools/text/comrak/default.nix
+++ b/nixpkgs/pkgs/tools/text/comrak/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A CommonMark-compatible GitHub Flavored Markdown parser and formatter";
+    mainProgram = "comrak";
     homepage = "https://github.com/kivikakk/comrak";
     changelog = "https://github.com/kivikakk/comrak/blob/${version}/changelog.txt";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/tools/text/convertlit/default.nix b/nixpkgs/pkgs/tools/text/convertlit/default.nix
index 4225934d2d4e..23112e83b8c8 100644
--- a/nixpkgs/pkgs/tools/text/convertlit/default.nix
+++ b/nixpkgs/pkgs/tools/text/convertlit/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.convertlit.com/";
     description = "A tool for converting Microsoft Reader ebooks to more open formats";
+    mainProgram = "clit";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
   };
diff --git a/nixpkgs/pkgs/tools/text/copyright-update/default.nix b/nixpkgs/pkgs/tools/text/copyright-update/default.nix
index e0318c20a0e6..72cecf1e9246 100644
--- a/nixpkgs/pkgs/tools/text/copyright-update/default.nix
+++ b/nixpkgs/pkgs/tools/text/copyright-update/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/jaalto/project--copyright-update";
     description = "Updates the copyright information in a set of files";
+    mainProgram = "copyright-update";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.rycee ];
diff --git a/nixpkgs/pkgs/tools/text/crowdin-cli/default.nix b/nixpkgs/pkgs/tools/text/crowdin-cli/default.nix
index 61543001aefd..a640b11d3808 100644
--- a/nixpkgs/pkgs/tools/text/crowdin-cli/default.nix
+++ b/nixpkgs/pkgs/tools/text/crowdin-cli/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "crowdin-cli";
-  version = "3.18.0";
+  version = "3.19.0";
 
   src = fetchurl {
     url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip";
-    hash = "sha256-wktEg9JPokKeyEOdK9j55XSefj4rleU1ig5exP83j/g=";
+    hash = "sha256-E8I5yWOEGZwiM3oHhmZhvppuCAWLDFx7X7DVfo29W+U=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
diff --git a/nixpkgs/pkgs/tools/text/csvdiff/default.nix b/nixpkgs/pkgs/tools/text/csvdiff/default.nix
index 236993b2dd25..b7e68a709122 100644
--- a/nixpkgs/pkgs/tools/text/csvdiff/default.nix
+++ b/nixpkgs/pkgs/tools/text/csvdiff/default.nix
@@ -19,6 +19,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://aswinkarthik.github.io/csvdiff/";
     description = "A fast diff tool for comparing csv files";
+    mainProgram = "csvdiff";
     license = licenses.mit;
     maintainers = with maintainers; [ turion ];
   };
diff --git a/nixpkgs/pkgs/tools/text/csview/default.nix b/nixpkgs/pkgs/tools/text/csview/default.nix
index 8f5ed7989f47..49bd81c7e01e 100644
--- a/nixpkgs/pkgs/tools/text/csview/default.nix
+++ b/nixpkgs/pkgs/tools/text/csview/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A high performance csv viewer with cjk/emoji support";
+    mainProgram = "csview";
     homepage = "https://github.com/wfxr/csview";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/tools/text/dadadodo/default.nix b/nixpkgs/pkgs/tools/text/dadadodo/default.nix
index a70a7efda72e..dc1a18ae23f2 100644
--- a/nixpkgs/pkgs/tools/text/dadadodo/default.nix
+++ b/nixpkgs/pkgs/tools/text/dadadodo/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Markov chain-based text generator";
+    mainProgram = "dadadodo";
     homepage = "http://www.jwz.org/dadadodo";
     maintainers = with maintainers; [ pSub ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/text/dfmt/default.nix b/nixpkgs/pkgs/tools/text/dfmt/default.nix
index f09ce0b45256..c31335e560f1 100644
--- a/nixpkgs/pkgs/tools/text/dfmt/default.nix
+++ b/nixpkgs/pkgs/tools/text/dfmt/default.nix
@@ -20,6 +20,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "Format paragraphs, comments and doc strings";
+    mainProgram = "dfmt";
     homepage = "https://github.com/dmerejkowsky/dfmt";
     license = licenses.bsd3;
     maintainers = with maintainers; [ cole-h ];
diff --git a/nixpkgs/pkgs/tools/text/diffr/default.nix b/nixpkgs/pkgs/tools/text/diffr/default.nix
index ee12b39c3ec3..9abc2fac5150 100644
--- a/nixpkgs/pkgs/tools/text/diffr/default.nix
+++ b/nixpkgs/pkgs/tools/text/diffr/default.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Yet another diff highlighting tool";
+    mainProgram = "diffr";
     homepage = "https://github.com/mookid/diffr";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ davidtwco ];
diff --git a/nixpkgs/pkgs/tools/text/diffstat/default.nix b/nixpkgs/pkgs/tools/text/diffstat/default.nix
index 0b10014e0e6e..0e5b8d9a7174 100644
--- a/nixpkgs/pkgs/tools/text/diffstat/default.nix
+++ b/nixpkgs/pkgs/tools/text/diffstat/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Read output of diff and display a histogram of the changes";
+    mainProgram = "diffstat";
     longDescription = ''
       diffstat reads the output of diff and displays a histogram of the
       insertions, deletions, and modifications per-file. It is useful for
diff --git a/nixpkgs/pkgs/tools/text/difftastic/default.nix b/nixpkgs/pkgs/tools/text/difftastic/default.nix
index e1733800cdfe..01f62462fdd8 100644
--- a/nixpkgs/pkgs/tools/text/difftastic/default.nix
+++ b/nixpkgs/pkgs/tools/text/difftastic/default.nix
@@ -38,11 +38,6 @@ rustPlatform.buildRustPackage rec {
     "--skip=options::tests::test_detect_display_width"
   ];
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   postPatch = ''
     patch -d $cargoDepsCopy/libmimalloc-sys-0.1.24/c_src/mimalloc \
       -p1 < ${mimallocPatch}
diff --git a/nixpkgs/pkgs/tools/text/dirdiff/default.nix b/nixpkgs/pkgs/tools/text/dirdiff/default.nix
index 437743e66ef6..c0347aface09 100644
--- a/nixpkgs/pkgs/tools/text/dirdiff/default.nix
+++ b/nixpkgs/pkgs/tools/text/dirdiff/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Graphical directory tree diff and merge tool";
+    mainProgram = "dirdiff";
     longDescription = ''
       Dirdiff is a graphical tool for displaying the differences between
       directory trees and for merging changes from one tree into another.
diff --git a/nixpkgs/pkgs/tools/text/djot-js/default.nix b/nixpkgs/pkgs/tools/text/djot-js/default.nix
index bd8b742cc184..656d7d0f6ba8 100644
--- a/nixpkgs/pkgs/tools/text/djot-js/default.nix
+++ b/nixpkgs/pkgs/tools/text/djot-js/default.nix
@@ -1,32 +1,21 @@
 { lib
 , buildNpmPackage
 , fetchFromGitHub
-, fetchpatch
 , installShellFiles
 }:
 
 buildNpmPackage rec {
   pname = "djot-js";
-  version = "0.2.3";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "jgm";
     repo = "djot.js";
     rev = "@djot/djot@${version}";
-    hash = "sha256-W/ZQXJXvFEIgj5PeI+jvw4nIkNP4qa1NyQCOv0unIuA=";
+    hash = "sha256-dQfjI+8cKqn4qLT9eUKfCP++BFCWQ/MmrlQNVRNCFuU=";
   };
 
-  npmDepsHash = "sha256-x/Oc39S6XwZ/ZsS/lmMU9OkHLlKuUxETYmD8pdHAIg8=";
-
-  patches = [
-    # djot.js v0.2.3 doesn't include package-lock.json in the repository
-    # remove at next release
-    (fetchpatch {
-      name = "add-package-lock-json-and-yarn-lock-to-repository.patch";
-      url = "https://github.com/jgm/djot.js/commit/15ed52755b2968932d4a9a80805b9ea6183fe539.patch";
-      hash = "sha256-saNmU7z4IOOG3ptXMFDSNci5uu0d2GiVZ/FAlaNccTc=";
-    })
-  ];
+  npmDepsHash = "sha256-FjrjwhVv2WRjbEga9w37lwz7KYgTTHGsoqt496Uq/0c=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/nixpkgs/pkgs/tools/text/each/default.nix b/nixpkgs/pkgs/tools/text/each/default.nix
index 02974030b269..6f24ee66fe40 100644
--- a/nixpkgs/pkgs/tools/text/each/default.nix
+++ b/nixpkgs/pkgs/tools/text/each/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = " A better way of working with structured data on the command line";
+    mainProgram = "each";
     homepage = "https://github.com/arraypad/each";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ thiagokokada ];
diff --git a/nixpkgs/pkgs/tools/text/epubcheck/default.nix b/nixpkgs/pkgs/tools/text/epubcheck/default.nix
index fd84abb0ef06..abd2803508bb 100644
--- a/nixpkgs/pkgs/tools/text/epubcheck/default.nix
+++ b/nixpkgs/pkgs/tools/text/epubcheck/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/w3c/epubcheck";
     description = "Validation tool for EPUB";
+    mainProgram = "epubcheck";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = with licenses; [ asl20 bsd3 mpl10 w3c ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/text/esh/default.nix b/nixpkgs/pkgs/tools/text/esh/default.nix
index a1d6db2a7c2d..abbeb29234da 100644
--- a/nixpkgs/pkgs/tools/text/esh/default.nix
+++ b/nixpkgs/pkgs/tools/text/esh/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple templating engine based on shell";
+    mainProgram = "esh";
     homepage = "https://github.com/jirutka/esh";
     license = licenses.mit;
     maintainers = with maintainers; [ mnacamura ];
diff --git a/nixpkgs/pkgs/tools/text/fanficfare/default.nix b/nixpkgs/pkgs/tools/text/fanficfare/default.nix
index 149082cc995f..adf141514038 100644
--- a/nixpkgs/pkgs/tools/text/fanficfare/default.nix
+++ b/nixpkgs/pkgs/tools/text/fanficfare/default.nix
@@ -30,6 +30,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool for making eBooks from fanfiction web sites";
+    mainProgram = "fanficfare";
     homepage = "https://github.com/JimmXinu/FanFicFare";
     license = licenses.gpl3;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/text/fastmod/default.nix b/nixpkgs/pkgs/tools/text/fastmod/default.nix
index f8317d70d778..53d68a7723a6 100644
--- a/nixpkgs/pkgs/tools/text/fastmod/default.nix
+++ b/nixpkgs/pkgs/tools/text/fastmod/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A utility that makes sweeping changes to large, shared code bases";
+    mainProgram = "fastmod";
     homepage = "https://github.com/facebookincubator/fastmod";
     license = licenses.asl20;
     maintainers = with maintainers; [ jduan ];
diff --git a/nixpkgs/pkgs/tools/text/frangipanni/default.nix b/nixpkgs/pkgs/tools/text/frangipanni/default.nix
index bb144b8f43e1..f95c6b4f1636 100644
--- a/nixpkgs/pkgs/tools/text/frangipanni/default.nix
+++ b/nixpkgs/pkgs/tools/text/frangipanni/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Convert lines of text into a tree structure";
+    mainProgram = "frangipanni";
     homepage = "https://github.com/birchb1024/frangipanni";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
diff --git a/nixpkgs/pkgs/tools/text/frawk/default.nix b/nixpkgs/pkgs/tools/text/frawk/default.nix
index 230d1328d457..46f73ebd0b9c 100644
--- a/nixpkgs/pkgs/tools/text/frawk/default.nix
+++ b/nixpkgs/pkgs/tools/text/frawk/default.nix
@@ -31,16 +31,12 @@ rustPlatform.buildRustPackage rec {
     export RUSTC_BOOTSTRAP=1
   '';
 
-  # Work around https://github.com/NixOS/nixpkgs/issues/166205.
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
-  };
-
   # depends on cpu instructions that may not be available on builders
   doCheck = false;
 
   meta = with lib; {
     description = "A small programming language for writing short programs processing textual data";
+    mainProgram = "frawk";
     homepage = "https://github.com/ezrosent/frawk";
     changelog = "https://github.com/ezrosent/frawk/releases/tag/v${version}";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/nixpkgs/pkgs/tools/text/frogmouth/default.nix b/nixpkgs/pkgs/tools/text/frogmouth/default.nix
index 68d63dc7aa5f..e7c9916c1339 100644
--- a/nixpkgs/pkgs/tools/text/frogmouth/default.nix
+++ b/nixpkgs/pkgs/tools/text/frogmouth/default.nix
@@ -36,6 +36,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "A Markdown browser for your terminal";
+    mainProgram = "frogmouth";
     homepage = "https://github.com/Textualize/frogmouth";
     changelog = "https://github.com/Textualize/frogmouth/blob/${src.rev}/ChangeLog.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/text/fst/default.nix b/nixpkgs/pkgs/tools/text/fst/default.nix
index d08d29376b74..0ad2075de08f 100644
--- a/nixpkgs/pkgs/tools/text/fst/default.nix
+++ b/nixpkgs/pkgs/tools/text/fst/default.nix
@@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Represent large sets and maps compactly with finite state transducers";
+    mainProgram = "fst";
     homepage = "https://github.com/BurntSushi/fst";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = with maintainers; [ rmcgibbo ];
diff --git a/nixpkgs/pkgs/tools/text/gawk/gawkextlib.nix b/nixpkgs/pkgs/tools/text/gawk/gawkextlib.nix
index be50b93a7e2f..86bf2beaa91d 100644
--- a/nixpkgs/pkgs/tools/text/gawk/gawkextlib.nix
+++ b/nixpkgs/pkgs/tools/text/gawk/gawkextlib.nix
@@ -45,6 +45,7 @@ let
         meta = with lib; {
           homepage = "https://sourceforge.net/projects/gawkextlib/";
           description = "Dynamically loaded extension libraries for GNU AWK";
+          mainProgram = "xmlgawk";
           longDescription = ''
             The gawkextlib project provides several extension libraries for
             gawk (GNU AWK), as well as libgawkextlib containing some APIs that
diff --git a/nixpkgs/pkgs/tools/text/gjo/default.nix b/nixpkgs/pkgs/tools/text/gjo/default.nix
index 99d988797bfc..d7fcd3a0845a 100644
--- a/nixpkgs/pkgs/tools/text/gjo/default.nix
+++ b/nixpkgs/pkgs/tools/text/gjo/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Small utility to create JSON objects";
+    mainProgram = "gjo";
     homepage = "https://github.com/skanehira/gjo";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/nixpkgs/pkgs/tools/text/glogg/default.nix b/nixpkgs/pkgs/tools/text/glogg/default.nix
index 855490df4ab4..a83baf4aa761 100644
--- a/nixpkgs/pkgs/tools/text/glogg/default.nix
+++ b/nixpkgs/pkgs/tools/text/glogg/default.nix
@@ -29,6 +29,7 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "The fast, smart log explorer";
+    mainProgram = "glogg";
     longDescription = ''
       A multi-platform GUI application to browse and search through long or complex log files. It is designed with programmers and system administrators in mind. glogg can be seen as a graphical, interactive combination of grep and less.
     '';
diff --git a/nixpkgs/pkgs/tools/text/gnupatch/default.nix b/nixpkgs/pkgs/tools/text/gnupatch/default.nix
index f4cb20202f0b..c19e087ea547 100644
--- a/nixpkgs/pkgs/tools/text/gnupatch/default.nix
+++ b/nixpkgs/pkgs/tools/text/gnupatch/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "GNU Patch, a program to apply differences to files";
+    mainProgram = "patch";
 
     longDescription =
       '' GNU Patch takes a patch file containing a difference listing
diff --git a/nixpkgs/pkgs/tools/text/gtranslator/default.nix b/nixpkgs/pkgs/tools/text/gtranslator/default.nix
index 5c9c7c868738..8795ff33806a 100644
--- a/nixpkgs/pkgs/tools/text/gtranslator/default.nix
+++ b/nixpkgs/pkgs/tools/text/gtranslator/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "GNOME translation making program";
+    mainProgram = "gtranslator";
     homepage = "https://wiki.gnome.org/Apps/Gtranslator";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/nixpkgs/pkgs/tools/text/gtree/default.nix b/nixpkgs/pkgs/tools/text/gtree/default.nix
index 266b807c3f60..e9710ae7a654 100644
--- a/nixpkgs/pkgs/tools/text/gtree/default.nix
+++ b/nixpkgs/pkgs/tools/text/gtree/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "gtree";
-  version = "1.10.9";
+  version = "1.10.10";
 
   src = fetchFromGitHub {
     owner = "ddddddO";
     repo = "gtree";
     rev = "v${version}";
-    hash = "sha256-3OXrKt3rM166JXqFuB+S0BJJkmkHPzJaWDDFeClmdM8=";
+    hash = "sha256-sljqO1aYVD7l3ngAeShqzAXKSannBHY7Cx19Kf1xPa0=";
   };
 
-  vendorHash = "sha256-5biKUOzYaVY+52f0ewvHslAnb+BM0BuqGrU8wwA3t+E=";
+  vendorHash = "sha256-yxbnASN3vUpRdsxfVsN/zigfpPJKcJaLfFBTtUUW2t0=";
 
   subPackages = [
     "cmd/gtree"
@@ -37,6 +37,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Generate directory trees and directories using Markdown or programmatically";
+    mainProgram = "gtree";
     homepage = "https://github.com/ddddddO/gtree";
     changelog = "https://github.com/ddddddO/gtree/releases/tag/${src.rev}";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/tools/text/gucci/default.nix b/nixpkgs/pkgs/tools/text/gucci/default.nix
index f866f74710a9..324dc56ca264 100644
--- a/nixpkgs/pkgs/tools/text/gucci/default.nix
+++ b/nixpkgs/pkgs/tools/text/gucci/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A simple CLI templating tool written in golang";
+    mainProgram = "gucci";
     homepage = "https://github.com/noqcks/gucci";
     license = licenses.mit;
     maintainers = with maintainers; [ braydenjw ];
diff --git a/nixpkgs/pkgs/tools/text/hck/default.nix b/nixpkgs/pkgs/tools/text/hck/default.nix
index 0467894b116a..782d746398a1 100644
--- a/nixpkgs/pkgs/tools/text/hck/default.nix
+++ b/nixpkgs/pkgs/tools/text/hck/default.nix
@@ -12,10 +12,10 @@ rustPlatform.buildRustPackage rec {
     owner = "sstadick";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-KPpvai7+El2JA97EXDCstZ66FeyVCe7w+ERDDNRZ/h8=";
+    hash = "sha256-KPpvai7+El2JA97EXDCstZ66FeyVCe7w+ERDDNRZ/h8=";
   };
 
-  cargoSha256 = "sha256-TpwUO0BL8kambnxAUE9+l6YYkNL1WzmkTYn1YxjufdY=";
+  cargoHash = "sha256-TpwUO0BL8kambnxAUE9+l6YYkNL1WzmkTYn1YxjufdY=";
 
   nativeBuildInputs = [ cmake ];
 
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sstadick/hck/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit /* or */ unlicense ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "hck";
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/hcledit/default.nix b/nixpkgs/pkgs/tools/text/hcledit/default.nix
index d5b2fb0cc0a2..a39802d02822 100644
--- a/nixpkgs/pkgs/tools/text/hcledit/default.nix
+++ b/nixpkgs/pkgs/tools/text/hcledit/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A command line editor for HCL";
+    mainProgram = "hcledit";
     homepage = "https://github.com/minamijoyo/hcledit";
     license = licenses.mit;
     maintainers = with maintainers; [ aleksana ];
diff --git a/nixpkgs/pkgs/tools/text/highlight/default.nix b/nixpkgs/pkgs/tools/text/highlight/default.nix
index 7e02f3f60ceb..fc6b12fa6b16 100644
--- a/nixpkgs/pkgs/tools/text/highlight/default.nix
+++ b/nixpkgs/pkgs/tools/text/highlight/default.nix
@@ -51,6 +51,7 @@ let
 
     meta = with lib; {
       description = "Source code highlighting tool";
+      mainProgram = "highlight";
       homepage = "http://www.andre-simon.de/doku/highlight/en/highlight.php";
       platforms = platforms.unix;
       maintainers = with maintainers; [ willibutz ];
diff --git a/nixpkgs/pkgs/tools/text/html2text/default.nix b/nixpkgs/pkgs/tools/text/html2text/default.nix
index 7ef802e925fb..4bcf02b5c848 100644
--- a/nixpkgs/pkgs/tools/text/html2text/default.nix
+++ b/nixpkgs/pkgs/tools/text/html2text/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Convert HTML to plain text";
+    mainProgram = "html2text";
     homepage = "http://www.mbayer.de/html2text/";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/tools/text/huniq/default.nix b/nixpkgs/pkgs/tools/text/huniq/default.nix
index a1d30d2fb11d..3bb1252ae0c6 100644
--- a/nixpkgs/pkgs/tools/text/huniq/default.nix
+++ b/nixpkgs/pkgs/tools/text/huniq/default.nix
@@ -13,6 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Command line utility to remove duplicates from the given input";
+    mainProgram = "huniq";
     homepage = "https://github.com/koraa/huniq";
     license = licenses.bsd3;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/tools/text/hyx/default.nix b/nixpkgs/pkgs/tools/text/hyx/default.nix
index f599d067f094..3cbcac20966a 100644
--- a/nixpkgs/pkgs/tools/text/hyx/default.nix
+++ b/nixpkgs/pkgs/tools/text/hyx/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "minimalistic but powerful Linux console hex editor";
+    mainProgram = "hyx";
     homepage = "https://yx7.cc/code/";
     license = licenses.mit;
     maintainers = with maintainers; [ fpletz ];
diff --git a/nixpkgs/pkgs/tools/text/invoice2data/default.nix b/nixpkgs/pkgs/tools/text/invoice2data/default.nix
index aed1bd2afd50..b2179d3f63b2 100644
--- a/nixpkgs/pkgs/tools/text/invoice2data/default.nix
+++ b/nixpkgs/pkgs/tools/text/invoice2data/default.nix
@@ -57,6 +57,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Data extractor for PDF invoices";
+    mainProgram = "invoice2data";
     homepage = "https://github.com/invoice-x/invoice2data";
     license = licenses.mit;
     maintainers = with maintainers; [ psyanticy ];
diff --git a/nixpkgs/pkgs/tools/text/jen/default.nix b/nixpkgs/pkgs/tools/text/jen/default.nix
index 2361c1aafc1b..0ed0548c0d50 100644
--- a/nixpkgs/pkgs/tools/text/jen/default.nix
+++ b/nixpkgs/pkgs/tools/text/jen/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple CLI generation tool for creating large datasets";
+    mainProgram = "jen";
     homepage = "https://github.com/whitfin/jen";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/tools/text/jotdown/default.nix b/nixpkgs/pkgs/tools/text/jotdown/default.nix
index e39209cfe106..769b5e296887 100644
--- a/nixpkgs/pkgs/tools/text/jotdown/default.nix
+++ b/nixpkgs/pkgs/tools/text/jotdown/default.nix
@@ -5,19 +5,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jotdown";
-  version = "0.3.2";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "hellux";
     repo = "jotdown";
     rev = version;
-    hash = "sha256-XouI3PHKPtX+3GkhMvdRfwJkCoofMgCY/NXB0tnLyUc=";
+    hash = "sha256-Q1BjmcA5otOkeEe8KQiqKGKHSeGntj+ktcNMrdbGHZI=";
   };
 
-  cargoHash = "sha256-PvKXVP90GOAgz4Sc37B4hli7rbNHVZbksVAo+uy2yEU=";
+  cargoHash = "sha256-bkMJ7ApM+GsshwIFuYsH19CnU6ebq0GfwQvVp9QD46A=";
 
   meta = with lib; {
     description = "A minimal Djot CLI";
+    mainProgram = "jotdown";
     homepage = "https://github.com/hellux/jotdown";
     changelog = "https://github.com/hellux/jotdown/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/text/jsawk/default.nix b/nixpkgs/pkgs/tools/text/jsawk/default.nix
index 2f21900b8d01..9547e65dc43d 100644
--- a/nixpkgs/pkgs/tools/text/jsawk/default.nix
+++ b/nixpkgs/pkgs/tools/text/jsawk/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Like awk, but for JSON";
+    mainProgram = "jsawk";
     homepage = "https://github.com/micha/jsawk";
     license = lib.licenses.publicDomain;
     maintainers = with lib.maintainers; [ puffnfresh ];
diff --git a/nixpkgs/pkgs/tools/text/jumanpp/default.nix b/nixpkgs/pkgs/tools/text/jumanpp/default.nix
index 348c785ab28d..af141c873b3b 100644
--- a/nixpkgs/pkgs/tools/text/jumanpp/default.nix
+++ b/nixpkgs/pkgs/tools/text/jumanpp/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A Japanese morphological analyser using a recurrent neural network language model (RNNLM)";
+    mainProgram = "jumanpp";
     longDescription = ''
       JUMAN++ is a new morphological analyser that considers semantic
       plausibility of word sequences by using a recurrent neural network
diff --git a/nixpkgs/pkgs/tools/text/kdiff3/default.nix b/nixpkgs/pkgs/tools/text/kdiff3/default.nix
index f9f55bc28851..73fa2ed1baea 100644
--- a/nixpkgs/pkgs/tools/text/kdiff3/default.nix
+++ b/nixpkgs/pkgs/tools/text/kdiff3/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     description = "Compares and merges 2 or 3 files or directories";
+    mainProgram = "kdiff3";
     homepage = "https://invent.kde.org/sdk/kdiff3";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/nixpkgs/pkgs/tools/text/l2md/default.nix b/nixpkgs/pkgs/tools/text/l2md/default.nix
index 08ec219690f6..d8bb04378f07 100644
--- a/nixpkgs/pkgs/tools/text/l2md/default.nix
+++ b/nixpkgs/pkgs/tools/text/l2md/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Convert public-inbox archives to maildir messages";
+    mainProgram = "l2md";
     longDescription = ''
       Quick and dirty hack to import lore.kernel.org list archives via git,
       to export them in maildir format or through a pipe, and to keep them
diff --git a/nixpkgs/pkgs/tools/text/mairix/default.nix b/nixpkgs/pkgs/tools/text/mairix/default.nix
index aa58ecdd35a9..3528a054b291 100644
--- a/nixpkgs/pkgs/tools/text/mairix/default.nix
+++ b/nixpkgs/pkgs/tools/text/mairix/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.rc0.org.uk/mairix";
     license = lib.licenses.gpl2Plus;
     description = "Program for indexing and searching email messages stored in maildir, MH or mbox";
+    mainProgram = "mairix";
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; all;
   };
diff --git a/nixpkgs/pkgs/tools/text/mark/default.nix b/nixpkgs/pkgs/tools/text/mark/default.nix
index 33d6072c8c81..ca42b2687edc 100644
--- a/nixpkgs/pkgs/tools/text/mark/default.nix
+++ b/nixpkgs/pkgs/tools/text/mark/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tool for syncing your markdown documentation with Atlassian Confluence pages";
+    mainProgram = "mark";
     homepage = "https://github.com/kovetskiy/mark";
     license = licenses.asl20;
     maintainers = with maintainers; [ rguevara84 ];
diff --git a/nixpkgs/pkgs/tools/text/markscribe/default.nix b/nixpkgs/pkgs/tools/text/markscribe/default.nix
index d542fe281107..c2ee3a596e97 100644
--- a/nixpkgs/pkgs/tools/text/markscribe/default.nix
+++ b/nixpkgs/pkgs/tools/text/markscribe/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Your personal markdown scribe with template-engine and Git(Hub) & RSS powers";
+    mainProgram = "markscribe";
     homepage = "https://github.com/muesli/markscribe";
     changelog = "https://github.com/muesli/markscribe/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/text/math-review/default.nix b/nixpkgs/pkgs/tools/text/math-review/default.nix
index 3592aad8bec7..6206c67bf1c1 100644
--- a/nixpkgs/pkgs/tools/text/math-review/default.nix
+++ b/nixpkgs/pkgs/tools/text/math-review/default.nix
@@ -25,6 +25,7 @@ buildNpmPackage rec {
 
   meta = with lib; {
     description = "Emacs preview math inline";
+    mainProgram = "math-preview";
     license = licenses.gpl3Plus;
     homepage = "https://gitlab.com/matsievskiysv/math-preview";
     maintainers = with maintainers; [ renesat ];
diff --git a/nixpkgs/pkgs/tools/text/mawk/default.nix b/nixpkgs/pkgs/tools/text/mawk/default.nix
index 54e1e303fd4c..06dcdcd8a9ba 100644
--- a/nixpkgs/pkgs/tools/text/mawk/default.nix
+++ b/nixpkgs/pkgs/tools/text/mawk/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Interpreter for the AWK Programming Language";
+    mainProgram = "mawk";
     homepage = "https://invisible-island.net/mawk/mawk.html";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ehmry ];
diff --git a/nixpkgs/pkgs/tools/text/mb2md/default.nix b/nixpkgs/pkgs/tools/text/mb2md/default.nix
index 78ce7f593974..3594d4753d85 100644
--- a/nixpkgs/pkgs/tools/text/mb2md/default.nix
+++ b/nixpkgs/pkgs/tools/text/mb2md/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "mbox to maildir tool";
+    mainProgram = "mb2md";
     license = licenses.publicDomain;
     platforms = platforms.all;
     maintainers = [ maintainers.jb55 ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook-admonish/default.nix b/nixpkgs/pkgs/tools/text/mdbook-admonish/default.nix
index 1fc72d16c3ce..1deaf9bc7c2b 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-admonish/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-admonish/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A preprocessor for mdbook to add Material Design admonishments";
+    mainProgram = "mdbook-admonish";
     license = licenses.mit;
     maintainers = with maintainers; [ jmgilman Frostman ];
     homepage = "https://github.com/tommilligan/mdbook-admonish";
diff --git a/nixpkgs/pkgs/tools/text/mdbook-cmdrun/default.nix b/nixpkgs/pkgs/tools/text/mdbook-cmdrun/default.nix
index 07252461336c..05d27d3e3ad5 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-cmdrun/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-cmdrun/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "mdbook preprocessor to run arbitrary commands";
+    mainProgram = "mdbook-cmdrun";
     homepage = "https://github.com/FauconFan/mdbook-cmdrun";
     license = licenses.mit;
     maintainers = with maintainers; [ pinpox ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook-d2/default.nix b/nixpkgs/pkgs/tools/text/mdbook-d2/default.nix
index e8a5f169399e..afff44b9f473 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-d2/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-d2/default.nix
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "D2 diagram generator plugin for MdBook";
+    mainProgram = "mdbook-d2";
     homepage = "https://github.com/danieleades/mdbook-d2";
     changelog = "https://github.com/danieleades/mdbook-d2/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/text/mdbook-emojicodes/default.nix b/nixpkgs/pkgs/tools/text/mdbook-emojicodes/default.nix
index 0bbcffd28fe2..21c8e48468a2 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-emojicodes/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-emojicodes/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "MDBook preprocessor for converting emojicodes (e.g. `: cat :`) into emojis ðŸ±";
+    mainProgram = "mdbook-emojicodes";
     homepage = "https://github.com/blyxyas/mdbook-emojicodes";
     changelog = "https://github.com/blyxyas/mdbook-emojicodes/releases/tag/${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/text/mdbook-epub/default.nix b/nixpkgs/pkgs/tools/text/mdbook-epub/default.nix
index 47c118afa43a..16e3bff73443 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-epub/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-epub/default.nix
@@ -34,6 +34,7 @@ in rustPlatform.buildRustPackage {
 
   meta = with lib; {
     description = "mdbook backend for generating an e-book in the EPUB format";
+    mainProgram = "mdbook-epub";
     homepage = "https://michael-f-bryan.github.io/mdbook-epub";
     license = licenses.mpl20;
     maintainers = with maintainers; [ yuu ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook-footnote/default.nix b/nixpkgs/pkgs/tools/text/mdbook-footnote/default.nix
index d69c7e4fdd86..cc140a5b5d83 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-footnote/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-footnote/default.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A preprocessor for mdbook to support the inclusion of automatically numbered footnotes";
+    mainProgram = "mdbook-footnote";
     homepage = "https://github.com/daviddrysdale/mdbook-footnote";
     license = licenses.asl20;
     maintainers = with maintainers; [ brianmcgillion ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook-graphviz/default.nix b/nixpkgs/pkgs/tools/text/mdbook-graphviz/default.nix
index ddb4f48fd2f7..c854d4be35a0 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-graphviz/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-graphviz/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A preprocessor for mdbook, rendering Graphviz graphs to HTML at build time";
+    mainProgram = "mdbook-graphviz";
     homepage = "https://github.com/dylanowen/mdbook-graphviz";
     changelog = "https://github.com/dylanowen/mdbook-graphviz/releases/tag/v${version}";
     license = [ licenses.mpl20 ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook-katex/default.nix b/nixpkgs/pkgs/tools/text/mdbook-katex/default.nix
index dc0c9da3c15e..8d27976c346b 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-katex/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-katex/default.nix
@@ -2,19 +2,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-katex";
-  version = "0.5.10";
+  version = "0.6.0";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-yq5cKb9Kzto+vM1/FEZhxB/+sHY7H0S1knSEtVklJvk=";
+    hash = "sha256-kQZZpVF265QmEle2HPSSHOaZFl/z/1Uvx0Fs+21HnLI=";
   };
 
-  cargoHash = "sha256-GtQoWNOs1SU8yoMyxh81weqMkhhRC09tNuTBNPoPj7U=";
+  cargoHash = "sha256-/IBJWGi1jYwFHdYZv8/AHiBP9oLtOVW0sLJVOQJutXA=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
   meta = with lib; {
     description = "A preprocessor for mdbook, rendering LaTeX equations to HTML at build time";
+    mainProgram = "mdbook-katex";
     homepage = "https://github.com/lzanini/${pname}";
     license = [ licenses.mit ];
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook-kroki-preprocessor/default.nix b/nixpkgs/pkgs/tools/text/mdbook-kroki-preprocessor/default.nix
index 07fd2cd634dd..d419d8b0c116 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-kroki-preprocessor/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-kroki-preprocessor/default.nix
@@ -33,6 +33,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Render Kroki diagrams from files or code blocks in mdbook";
+    mainProgram = "mdbook-kroki-preprocessor";
     homepage = "https://github.com/joelcourtney/mdbook-kroki-preprocessor";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ blaggacao ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook-linkcheck/default.nix b/nixpkgs/pkgs/tools/text/mdbook-linkcheck/default.nix
index c144ea4be954..d90b536edc86 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-linkcheck/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-linkcheck/default.nix
@@ -26,6 +26,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A backend for `mdbook` which will check your links for you";
+    mainProgram = "mdbook-linkcheck";
     homepage = "https://github.com/Michael-F-Bryan/mdbook-linkcheck";
     license = licenses.mit;
     maintainers = with maintainers; [ zhaofengli ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook-man/default.nix b/nixpkgs/pkgs/tools/text/mdbook-man/default.nix
index 541e27eb7e06..904a4d29112e 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-man/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-man/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Generate manual pages from mdBooks";
+    mainProgram = "mdbook-man";
     homepage = "https://github.com/vv9k/mdbook-man";
     license = licenses.mit;
     maintainers = with maintainers; [ matthiasbeyer ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook-mermaid/default.nix b/nixpkgs/pkgs/tools/text/mdbook-mermaid/default.nix
index f5bf827cfd7f..b69dd103917d 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-mermaid/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-mermaid/default.nix
@@ -24,6 +24,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A preprocessor for mdbook to add mermaid.js support";
+    mainProgram = "mdbook-mermaid";
     homepage = "https://github.com/badboy/mdbook-mermaid";
     changelog = "https://github.com/badboy/mdbook-mermaid/blob/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/nixpkgs/pkgs/tools/text/mdbook-open-on-gh/default.nix b/nixpkgs/pkgs/tools/text/mdbook-open-on-gh/default.nix
index 8ce422340ed0..68a7c504345c 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-open-on-gh/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-open-on-gh/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "mdbook preprocessor to add a open-on-github link on every page";
+    mainProgram = "mdbook-open-on-gh";
     homepage = "https://github.com/badboy/mdbook-open-on-gh";
     license = [ licenses.mpl20 ];
     maintainers = with maintainers; [ matthiasbeyer ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook-pagetoc/default.nix b/nixpkgs/pkgs/tools/text/mdbook-pagetoc/default.nix
index acfec960829a..2cd4afee9616 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-pagetoc/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-pagetoc/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Table of contents for mdbook (in sidebar)";
+    mainProgram = "mdbook-pagetoc";
     homepage = "https://github.com/slowsage/mdbook-pagetoc";
     license = licenses.mit;
     maintainers = with maintainers; [ blaggacao ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook-pdf/default.nix b/nixpkgs/pkgs/tools/text/mdbook-pdf/default.nix
index 18b234a4ec08..e0c63f595db1 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-pdf/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-pdf/default.nix
@@ -44,6 +44,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A backend for mdBook written in Rust for generating PDF";
+    mainProgram = "mdbook-pdf";
     homepage = "https://github.com/HollowMan6/mdbook-pdf";
     changelog = "https://github.com/HollowMan6/mdbook-pdf/releases/tag/v${version}";
     license = licenses.gpl3Plus;
diff --git a/nixpkgs/pkgs/tools/text/mdbook-plantuml/default.nix b/nixpkgs/pkgs/tools/text/mdbook-plantuml/default.nix
index 3e6d13d24489..e07bd812cec9 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-plantuml/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-plantuml/default.nix
@@ -37,6 +37,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "mdBook preprocessor to render PlantUML diagrams to png images in the book output directory";
+    mainProgram = "mdbook-plantuml";
     homepage = "https://github.com/sytsereitsma/mdbook-plantuml";
     license = [ licenses.mit ];
     maintainers = with maintainers; [ jcouyang ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook-toc/default.nix b/nixpkgs/pkgs/tools/text/mdbook-toc/default.nix
index b9bf0ca208c8..3ee6fb6e814f 100644
--- a/nixpkgs/pkgs/tools/text/mdbook-toc/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook-toc/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A preprocessor for mdbook to add inline Table of Contents support";
+    mainProgram = "mdbook-toc";
     homepage = "https://github.com/badboy/mdbook-toc";
     license = [ licenses.mpl20 ];
     maintainers = with maintainers; [ matthiasbeyer ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook/default.nix b/nixpkgs/pkgs/tools/text/mdbook/default.nix
index 2a875f23287f..4939cfc62623 100644
--- a/nixpkgs/pkgs/tools/text/mdbook/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook/default.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Create books from MarkDown";
+    mainProgram = "mdbook";
     homepage = "https://github.com/rust-lang/mdBook";
     changelog = "https://github.com/rust-lang/mdBook/blob/v${version}/CHANGELOG.md";
     license = [ licenses.mpl20 ];
diff --git a/nixpkgs/pkgs/tools/text/mdcat/default.nix b/nixpkgs/pkgs/tools/text/mdcat/default.nix
index 6fa512c39bf3..a928b74a1518 100644
--- a/nixpkgs/pkgs/tools/text/mdcat/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdcat/default.nix
@@ -13,20 +13,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdcat";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchFromGitHub {
     owner = "swsnr";
     repo = "mdcat";
     rev = "mdcat-${version}";
-    hash = "sha256-2ThjIv77kdjHyOpGcQplYZXPdu+cN4oBnyHRGptN7f4=";
+    hash = "sha256-qdNORp9THxHWR95uVcYtCy59OQqdop1012thZN5i64w=";
   };
 
   nativeBuildInputs = [ pkg-config asciidoctor installShellFiles ];
   buildInputs = [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
-  cargoHash = "sha256-y828L8HHkFeem/76yizQWX7DpCGQP+HzJP+pQnxAn70=";
+  cargoHash = "sha256-/avxRvT35LxCBWkTYJDCtdd95VC67epZIPCMv994uBo=";
 
   nativeCheckInputs = [ ansi2html ];
   # Skip tests that use the network and that include files.
diff --git a/nixpkgs/pkgs/tools/text/mir-qualia/default.nix b/nixpkgs/pkgs/tools/text/mir-qualia/default.nix
index f532daf8c442..0ded2f1757b2 100644
--- a/nixpkgs/pkgs/tools/text/mir-qualia/default.nix
+++ b/nixpkgs/pkgs/tools/text/mir-qualia/default.nix
@@ -14,6 +14,7 @@ pythonPackages.buildPythonApplication rec {
 
   meta = {
     description = "Dynamically enable sections of config files";
+    mainProgram = "qualia";
     homepage = "https://github.com/darkfeline/mir.qualia";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.srhb ] ;
diff --git a/nixpkgs/pkgs/tools/text/mmdoc/default.nix b/nixpkgs/pkgs/tools/text/mmdoc/default.nix
index 50b7f6dcb9df..e7bf45dbb4c8 100644
--- a/nixpkgs/pkgs/tools/text/mmdoc/default.nix
+++ b/nixpkgs/pkgs/tools/text/mmdoc/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Minimal Markdown Documentation";
+    mainProgram = "mmdoc";
     homepage = "https://github.com/ryantm/mmdoc";
     license = licenses.cc0;
     maintainers = with maintainers; [ ryantm ];
diff --git a/nixpkgs/pkgs/tools/text/morsel/default.nix b/nixpkgs/pkgs/tools/text/morsel/default.nix
index b761b03e83d0..416f2e65782f 100644
--- a/nixpkgs/pkgs/tools/text/morsel/default.nix
+++ b/nixpkgs/pkgs/tools/text/morsel/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Command line tool to translate morse code input to text in real time";
+    mainProgram = "morsel";
     homepage = "https://github.com/SamLee514/morsel";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
diff --git a/nixpkgs/pkgs/tools/text/mpage/default.nix b/nixpkgs/pkgs/tools/text/mpage/default.nix
index 5033d53fedaa..e7a114ec6577 100644
--- a/nixpkgs/pkgs/tools/text/mpage/default.nix
+++ b/nixpkgs/pkgs/tools/text/mpage/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Many-to-one page printing utility";
+    mainProgram = "mpage";
 
     longDescription = ''
       Mpage reads plain text files or PostScript documents and prints
diff --git a/nixpkgs/pkgs/tools/text/multitran/mtutils/default.nix b/nixpkgs/pkgs/tools/text/multitran/mtutils/default.nix
index 625f06734b2e..9a9ecf0b2675 100644
--- a/nixpkgs/pkgs/tools/text/multitran/mtutils/default.nix
+++ b/nixpkgs/pkgs/tools/text/multitran/mtutils/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://multitran.sourceforge.net/";
     description = "Multitran: simple command line utilities for dictionary maintenance";
+    mainProgram = "mtquery";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
diff --git a/nixpkgs/pkgs/tools/text/nerdfix/default.nix b/nixpkgs/pkgs/tools/text/nerdfix/default.nix
index 8bb9113f013a..fdad3094bbec 100644
--- a/nixpkgs/pkgs/tools/text/nerdfix/default.nix
+++ b/nixpkgs/pkgs/tools/text/nerdfix/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Nerdfix helps you to find/fix obsolete nerd font icons in your project";
+    mainProgram = "nerdfix";
     homepage = "https://github.com/loichyan/nerdfix";
     changelog = "https://github.com/loichyan/nerdfix/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
diff --git a/nixpkgs/pkgs/tools/text/nkf/default.nix b/nixpkgs/pkgs/tools/text/nkf/default.nix
index 9a70ea9461af..ae51ad37243b 100644
--- a/nixpkgs/pkgs/tools/text/nkf/default.nix
+++ b/nixpkgs/pkgs/tools/text/nkf/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Tool for converting encoding of Japanese text";
+    mainProgram = "nkf";
     homepage = "https://nkf.osdn.jp/";
     license = lib.licenses.zlib;
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/tools/text/odt2txt/default.nix b/nixpkgs/pkgs/tools/text/odt2txt/default.nix
index 0eb18e8435d4..3f8338d6ae08 100644
--- a/nixpkgs/pkgs/tools/text/odt2txt/default.nix
+++ b/nixpkgs/pkgs/tools/text/odt2txt/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Simple .odt to .txt converter";
+    mainProgram = "odt2txt";
     homepage = "https://github.com/dstosberg/odt2txt";
     platforms = lib.platforms.all;
     license = lib.licenses.gpl2;
diff --git a/nixpkgs/pkgs/tools/text/papeer/default.nix b/nixpkgs/pkgs/tools/text/papeer/default.nix
index 4084d49373fd..b8cbc477b174 100644
--- a/nixpkgs/pkgs/tools/text/papeer/default.nix
+++ b/nixpkgs/pkgs/tools/text/papeer/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = {
     description = "Convert websites into ebooks and markdown";
+    mainProgram = "papeer";
     homepage = "https://papeer.tech/";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ ehmry ];
diff --git a/nixpkgs/pkgs/tools/text/paperoni/default.nix b/nixpkgs/pkgs/tools/text/paperoni/default.nix
index 346ce515b64f..203e5b21689f 100644
--- a/nixpkgs/pkgs/tools/text/paperoni/default.nix
+++ b/nixpkgs/pkgs/tools/text/paperoni/default.nix
@@ -43,6 +43,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "An article extractor in Rust";
+    mainProgram = "paperoni";
     homepage = "https://github.com/hipstermojo/paperoni";
     changelog = "https://github.com/hipstermojo/paperoni/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/text/papertrail/default.nix b/nixpkgs/pkgs/tools/text/papertrail/default.nix
index afc9d2d89e7a..5e2b080f9852 100644
--- a/nixpkgs/pkgs/tools/text/papertrail/default.nix
+++ b/nixpkgs/pkgs/tools/text/papertrail/default.nix
@@ -23,6 +23,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Command-line client for Papertrail log management service";
+    mainProgram = "papertrail";
     homepage    = "https://github.com/papertrail/papertrail-cli/";
     license     = licenses.mit;
     maintainers = with maintainers; [ nicknovitski ];
diff --git a/nixpkgs/pkgs/tools/text/par/default.nix b/nixpkgs/pkgs/tools/text/par/default.nix
index e64dbd367be5..c62df86835c0 100644
--- a/nixpkgs/pkgs/tools/text/par/default.nix
+++ b/nixpkgs/pkgs/tools/text/par/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.nicemice.net/par/";
     description = "Paragraph reflow for email";
+    mainProgram = "par";
     platforms = platforms.unix;
     # See https://fedoraproject.org/wiki/Licensing/Par for license details
     license = licenses.free;
diff --git a/nixpkgs/pkgs/tools/text/pbgopy/default.nix b/nixpkgs/pkgs/tools/text/pbgopy/default.nix
index dad688f1dfb5..0e1e766456a8 100644
--- a/nixpkgs/pkgs/tools/text/pbgopy/default.nix
+++ b/nixpkgs/pkgs/tools/text/pbgopy/default.nix
@@ -15,6 +15,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Copy and paste between devices";
+    mainProgram = "pbgopy";
     homepage = "https://github.com/nakabonne/pbgopy";
     license = licenses.mit;
     maintainers = [ maintainers.ivar ];
diff --git a/nixpkgs/pkgs/tools/text/peco/default.nix b/nixpkgs/pkgs/tools/text/peco/default.nix
index 7c026f06292e..774b2f5a0d1e 100644
--- a/nixpkgs/pkgs/tools/text/peco/default.nix
+++ b/nixpkgs/pkgs/tools/text/peco/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Simplistic interactive filtering tool";
+    mainProgram = "peco";
     homepage = "https://github.com/peco/peco";
     changelog = "https://github.com/peco/peco/blob/v${version}/Changes";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/text/pinyin-tool/default.nix b/nixpkgs/pkgs/tools/text/pinyin-tool/default.nix
index 9d98385933b1..40ca31fe53a7 100644
--- a/nixpkgs/pkgs/tools/text/pinyin-tool/default.nix
+++ b/nixpkgs/pkgs/tools/text/pinyin-tool/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A simple command line tool for converting Chinese characters to space-separate pinyin words";
+    mainProgram = "pinyin-tool";
     homepage = "https://github.com/briankung/pinyin-tool";
     license = licenses.mit;
     maintainers = with maintainers; [ neonfuz ];
diff --git a/nixpkgs/pkgs/tools/text/platinum-searcher/default.nix b/nixpkgs/pkgs/tools/text/platinum-searcher/default.nix
index 4271fe131dac..d0128fcfd0e4 100644
--- a/nixpkgs/pkgs/tools/text/platinum-searcher/default.nix
+++ b/nixpkgs/pkgs/tools/text/platinum-searcher/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
   meta = with lib; {
     homepage = "https://github.com/monochromegane/the_platinum_searcher";
     description = "A code search tool similar to ack and the_silver_searcher(ag)";
+    mainProgram = "pt";
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/pn/default.nix b/nixpkgs/pkgs/tools/text/pn/default.nix
index d77b36651d62..a228f093c346 100644
--- a/nixpkgs/pkgs/tools/text/pn/default.nix
+++ b/nixpkgs/pkgs/tools/text/pn/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A libphonenumber command-line wrapper";
+    mainProgram = "pn";
     homepage = "https://github.com/Orange-OpenSource/pn";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/text/podiff/default.nix b/nixpkgs/pkgs/tools/text/podiff/default.nix
index eec0eb351636..b59aba6c4615 100644
--- a/nixpkgs/pkgs/tools/text/podiff/default.nix
+++ b/nixpkgs/pkgs/tools/text/podiff/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Finds differences in translations between two PO files, or revisions";
+    mainProgram = "podiff";
     homepage = "http://puszcza.gnu.org.ua/software/podiff";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.goibhniu ];
diff --git a/nixpkgs/pkgs/tools/text/poedit/default.nix b/nixpkgs/pkgs/tools/text/poedit/default.nix
index 7e8b78fda19f..48368e64dc43 100644
--- a/nixpkgs/pkgs/tools/text/poedit/default.nix
+++ b/nixpkgs/pkgs/tools/text/poedit/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Cross-platform gettext catalogs (.po files) editor";
+    mainProgram = "poedit";
     homepage = "https://www.poedit.net/";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/text/pomsky/default.nix b/nixpkgs/pkgs/tools/text/pomsky/default.nix
index 474ea404c937..65b67b58fa40 100644
--- a/nixpkgs/pkgs/tools/text/pomsky/default.nix
+++ b/nixpkgs/pkgs/tools/text/pomsky/default.nix
@@ -36,6 +36,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A portable, modern regular expression language";
+    mainProgram = "pomsky";
     homepage = "https://pomsky-lang.org";
     changelog = "https://github.com/pomsky-lang/pomsky/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit /* or */ asl20 ];
diff --git a/nixpkgs/pkgs/tools/text/proselint/default.nix b/nixpkgs/pkgs/tools/text/proselint/default.nix
index 3f1b79c3e015..2f62484d980a 100644
--- a/nixpkgs/pkgs/tools/text/proselint/default.nix
+++ b/nixpkgs/pkgs/tools/text/proselint/default.nix
@@ -15,6 +15,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "A linter for prose";
+    mainProgram = "proselint";
     homepage = "http://proselint.com";
     license = licenses.bsd3;
     maintainers = with maintainers; [ alibabzo ];
diff --git a/nixpkgs/pkgs/tools/text/qprint/default.nix b/nixpkgs/pkgs/tools/text/qprint/default.nix
index 56f5b5becbd6..c0953f69a7f9 100644
--- a/nixpkgs/pkgs/tools/text/qprint/default.nix
+++ b/nixpkgs/pkgs/tools/text/qprint/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.fourmilab.ch/webtools/qprint/";
     license = lib.licenses.publicDomain;
     description = "Encode and decode Quoted-Printable files";
+    mainProgram = "qprint";
     maintainers = [ lib.maintainers.tv ];
     platforms = lib.platforms.all;
   };
diff --git a/nixpkgs/pkgs/tools/text/reckon/default.nix b/nixpkgs/pkgs/tools/text/reckon/default.nix
index 91233dfe97b4..55c6b3cf9556 100644
--- a/nixpkgs/pkgs/tools/text/reckon/default.nix
+++ b/nixpkgs/pkgs/tools/text/reckon/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Flexibly import bank account CSV files into Ledger for command line accounting";
+    mainProgram = "reckon";
     license = licenses.mit;
     maintainers = with maintainers; [ nicknovitski ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/text/recode/default.nix b/nixpkgs/pkgs/tools/text/recode/default.nix
index 9f215f41feaa..68cd034b8ee4 100644
--- a/nixpkgs/pkgs/tools/text/recode/default.nix
+++ b/nixpkgs/pkgs/tools/text/recode/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://github.com/rrthomas/recode";
     description = "Converts files between various character sets and usages";
+    mainProgram = "recode";
     changelog = "https://github.com/rrthomas/recode/raw/v${version}/NEWS";
     platforms = lib.platforms.unix;
     license = with lib.licenses; [ lgpl3Plus gpl3Plus ];
diff --git a/nixpkgs/pkgs/tools/text/reveal-md/default.nix b/nixpkgs/pkgs/tools/text/reveal-md/default.nix
index 0cddbf34093a..9da86f2a61c8 100644
--- a/nixpkgs/pkgs/tools/text/reveal-md/default.nix
+++ b/nixpkgs/pkgs/tools/text/reveal-md/default.nix
@@ -34,6 +34,7 @@ buildNpmPackage rec {
 
   meta = {
     description = "Get beautiful reveal.js presentations from your Markdown files";
+    mainProgram = "reveal-md";
     homepage = "https://github.com/webpro/reveal-md";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ sagikazarmark ];
diff --git a/nixpkgs/pkgs/tools/text/rgxg/default.nix b/nixpkgs/pkgs/tools/text/rgxg/default.nix
index 8e4d991e7bf0..f2f4870d8adf 100644
--- a/nixpkgs/pkgs/tools/text/rgxg/default.nix
+++ b/nixpkgs/pkgs/tools/text/rgxg/default.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A C library and a command-line tool to generate (extended) regular expressions";
+    mainProgram = "rgxg";
     license = licenses.zlib;
     maintainers = with maintainers; [ hloeffler ];
     homepage = "https://rgxg.github.io/";
diff --git a/nixpkgs/pkgs/tools/text/riffdiff/default.nix b/nixpkgs/pkgs/tools/text/riffdiff/default.nix
index 72b3dfc14a1a..1db7967d0f57 100644
--- a/nixpkgs/pkgs/tools/text/riffdiff/default.nix
+++ b/nixpkgs/pkgs/tools/text/riffdiff/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "riffdiff";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "walles";
     repo = "riff";
     rev = version;
-    hash = "sha256-lS7+sLA/6ZxieodvSPuEzawxQb2vWdNCkGy1RTbg4dY=";
+    hash = "sha256-ASIB7+ZyvMsaRdvJcWT/sR0JLyt4v/gytAIi8Yajlzg=";
   };
 
-  cargoHash = "sha256-hGy0B2uLT37wKOvC4/wc8i+v1vEQ3bzrgm/yqRCAx3s=";
+  cargoHash = "sha256-NGTWBlg5xvodK02RtFuCe7KsFm4z2aEpbcx3UqH9G/o=";
 
   meta = with lib; {
     description = "A diff filter highlighting which line parts have changed";
diff --git a/nixpkgs/pkgs/tools/text/rnr/default.nix b/nixpkgs/pkgs/tools/text/rnr/default.nix
index 834ecfddee77..b2d38832a4d5 100644
--- a/nixpkgs/pkgs/tools/text/rnr/default.nix
+++ b/nixpkgs/pkgs/tools/text/rnr/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A command-line tool to batch rename files and directories";
+    mainProgram = "rnr";
     homepage = "https://github.com/ismaelgv/rnr";
     changelog = "https://github.com/ismaelgv/rnr/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/text/rosie/default.nix b/nixpkgs/pkgs/tools/text/rosie/default.nix
index 190fd4944d15..e9923586b2da 100644
--- a/nixpkgs/pkgs/tools/text/rosie/default.nix
+++ b/nixpkgs/pkgs/tools/text/rosie/default.nix
@@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://rosie-lang.org";
     description = "Tools for searching using parsing expression grammars";
+    mainProgram = "rosie";
     license = licenses.mit;
     maintainers = with maintainers; [ kovirobi ];
     platforms = with platforms; linux ++ darwin;
diff --git a/nixpkgs/pkgs/tools/text/rpl/default.nix b/nixpkgs/pkgs/tools/text/rpl/default.nix
index cc36f93baf0f..1b4e89408dc8 100644
--- a/nixpkgs/pkgs/tools/text/rpl/default.nix
+++ b/nixpkgs/pkgs/tools/text/rpl/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "rpl";
-  version = "1.15.5";
+  version = "1.15.6";
 
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-rhPS+hwbjqq3X/V1bL6pzGg2tVxBkeMyUhaCvmneG4M=";
+    hash = "sha256-4vUnFfxiPvyg9gtwiQE3nHZBnqBtBVwhM3KQzkjzw/I=";
   };
 
   nativeBuildInputs = [
@@ -29,6 +29,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Replace strings in files";
+    mainProgram = "rpl";
     homepage = "https://github.com/rrthomas/rpl";
     license = licenses.gpl2;
     maintainers = with maintainers; [ cbley ];
diff --git a/nixpkgs/pkgs/tools/text/runiq/default.nix b/nixpkgs/pkgs/tools/text/runiq/default.nix
index 42b9e2aef395..52386bb0f24a 100644
--- a/nixpkgs/pkgs/tools/text/runiq/default.nix
+++ b/nixpkgs/pkgs/tools/text/runiq/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "An efficient way to filter duplicate lines from input, à la uniq";
+    mainProgram = "runiq";
     homepage = "https://github.com/whitfin/runiq";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/tools/text/ruplacer/default.nix b/nixpkgs/pkgs/tools/text/ruplacer/default.nix
index b44165d6ea88..bb1d7dfc9904 100644
--- a/nixpkgs/pkgs/tools/text/ruplacer/default.nix
+++ b/nixpkgs/pkgs/tools/text/ruplacer/default.nix
@@ -2,21 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ruplacer";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "TankerHQ";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xuq+Scy5MyyGvI51Vs26pk9+NnlghzGEJDHYC3kSXNw=";
+    sha256 = "sha256-rndWKi/EDQzTWAw2deddhTXdmIfuEVM54MOfS4mNf+Y=";
   };
 
-  cargoHash = "sha256-Kevwpkvgq40LhWxhW9ra2Nd1zEiAF372DM1sY9hnQb0=";
+  cargoHash = "sha256-DkhmMdpUcka6Wkyz6hEfqB2gUpsGNziGv+23rVfwXN8=";
 
   buildInputs = (lib.optional stdenv.isDarwin Security);
 
   meta = with lib; {
     description = "Find and replace text in source files";
+    mainProgram = "ruplacer";
     homepage = "https://github.com/TankerHQ/ruplacer";
     license = [ licenses.bsd3 ];
     maintainers = with maintainers; [ Br1ght0ne ];
diff --git a/nixpkgs/pkgs/tools/text/sad/default.nix b/nixpkgs/pkgs/tools/text/sad/default.nix
index da4ff0804b11..9c04667abc54 100644
--- a/nixpkgs/pkgs/tools/text/sad/default.nix
+++ b/nixpkgs/pkgs/tools/text/sad/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sad";
-  version = "0.4.23";
+  version = "0.4.25";
 
   src = fetchFromGitHub {
     owner = "ms-jpq";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-LNMc+3pXx7VyNq0dws+s13ZA3+f8aJzgbAxzI71NKx0=";
+    repo = "sad";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-G+Mkyw7TNx5+fhnaOe3Fsb1JuafqckcZ83BTnuWUZBU=";
   };
 
-  cargoHash = "sha256-UjXJmH4UI5Vey2rBy57CI1r13bpGYhIozEoOoyoRDLQ=";
+  cargoHash = "sha256-PTldq13csCmQ3u+M+BTftmxpRh32Bw9ds6yx+pE7HRc=";
 
   nativeBuildInputs = [ python3 ];
 
@@ -28,7 +28,9 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "CLI tool to search and replace";
     homepage = "https://github.com/ms-jpq/sad";
+    changelog = "https://github.com/ms-jpq/sad/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "sad";
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/scraper/default.nix b/nixpkgs/pkgs/tools/text/scraper/default.nix
index c148f1e57f3f..42b8c91effe0 100644
--- a/nixpkgs/pkgs/tools/text/scraper/default.nix
+++ b/nixpkgs/pkgs/tools/text/scraper/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool to query HTML files with CSS selectors";
+    mainProgram = "scraper";
     homepage = "https://github.com/causal-agent/scraper";
     changelog = "https://github.com/causal-agent/scraper/releases/tag/v${version}";
     license = licenses.isc;
diff --git a/nixpkgs/pkgs/tools/text/sd/default.nix b/nixpkgs/pkgs/tools/text/sd/default.nix
index 8dc160cd014d..e5bde420000d 100644
--- a/nixpkgs/pkgs/tools/text/sd/default.nix
+++ b/nixpkgs/pkgs/tools/text/sd/default.nix
@@ -32,6 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Intuitive find & replace CLI (sed alternative)";
+    mainProgram = "sd";
     homepage = "https://github.com/chmln/sd";
     license = licenses.mit;
     maintainers = with maintainers; [ amar1729 Br1ght0ne ];
diff --git a/nixpkgs/pkgs/tools/text/sgml/openjade/default.nix b/nixpkgs/pkgs/tools/text/sgml/openjade/default.nix
index 5e175518b692..87bc8e7a8aed 100644
--- a/nixpkgs/pkgs/tools/text/sgml/openjade/default.nix
+++ b/nixpkgs/pkgs/tools/text/sgml/openjade/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "An implementation of DSSSL, an ISO standard for formatting SGML (and XML) documents";
+    mainProgram = "openjade";
     license = lib.licenses.mit;
     homepage = "https://openjade.sourceforge.net/";
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/tools/text/sgrep/default.nix b/nixpkgs/pkgs/tools/text/sgrep/default.nix
index f3d23d166696..3e82ce9afc60 100644
--- a/nixpkgs/pkgs/tools/text/sgrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/sgrep/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.cs.helsinki.fi/u/jjaakkol/sgrep.html";
     description = "A grep for structured text formats such as XML";
+    mainProgram = "sgrep";
     longDescription = ''
       sgrep (structured grep) is a tool for searching and indexing text,
       SGML, XML and HTML files and filtering text streams using
diff --git a/nixpkgs/pkgs/tools/text/shab/default.nix b/nixpkgs/pkgs/tools/text/shab/default.nix
index b5bb98e5f4d2..733ba4f80cf5 100644
--- a/nixpkgs/pkgs/tools/text/shab/default.nix
+++ b/nixpkgs/pkgs/tools/text/shab/default.nix
@@ -41,6 +41,7 @@ let
 
     meta = with lib; {
       description = "The bash templating language";
+      mainProgram = "shab";
       homepage = "https://github.com/zimbatm/shab";
       license = licenses.unlicense;
       maintainers = with maintainers; [ zimbatm ];
diff --git a/nixpkgs/pkgs/tools/text/shocco/default.nix b/nixpkgs/pkgs/tools/text/shocco/default.nix
index 1359db98978c..75f218f213e6 100644
--- a/nixpkgs/pkgs/tools/text/shocco/default.nix
+++ b/nixpkgs/pkgs/tools/text/shocco/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A quick-and-dirty, literate-programming-style documentation generator for / in POSIX shell";
+    mainProgram = "shocco";
     homepage = "https://rtomayko.github.io/shocco/";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/text/sift/default.nix b/nixpkgs/pkgs/tools/text/sift/default.nix
index 25dd61a3e4a0..1aecb3ac8909 100644
--- a/nixpkgs/pkgs/tools/text/sift/default.nix
+++ b/nixpkgs/pkgs/tools/text/sift/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A fast and powerful alternative to grep";
+    mainProgram = "sift";
     homepage = "https://sift-tool.org";
     maintainers = with maintainers; [ viraptor ];
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/tools/text/smu/default.nix b/nixpkgs/pkgs/tools/text/smu/default.nix
index 85e593982e85..63c9bb8d024f 100644
--- a/nixpkgs/pkgs/tools/text/smu/default.nix
+++ b/nixpkgs/pkgs/tools/text/smu/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "simple markup - markdown like syntax";
+    mainProgram = "smu";
     homepage = "https://github.com/Gottox/smu";
     license = licenses.mit;
     maintainers = with maintainers; [ oxzi ];
diff --git a/nixpkgs/pkgs/tools/text/sorted-grep/default.nix b/nixpkgs/pkgs/tools/text/sorted-grep/default.nix
index 60bc0bee676f..f0225d8a2444 100644
--- a/nixpkgs/pkgs/tools/text/sorted-grep/default.nix
+++ b/nixpkgs/pkgs/tools/text/sorted-grep/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://sgrep.sourceforge.net/";
     description = "Sgrep (sorted grep) searches sorted input files for lines that match a search key";
+    mainProgram = "sgrep";
     longDescription = ''
       Sgrep (sorted grep) searches sorted input files for lines that match a search
       key and outputs the matching lines. When searching large files sgrep is much
diff --git a/nixpkgs/pkgs/tools/text/subedit/default.nix b/nixpkgs/pkgs/tools/text/subedit/default.nix
index 0ae48901cd96..fede6583e788 100644
--- a/nixpkgs/pkgs/tools/text/subedit/default.nix
+++ b/nixpkgs/pkgs/tools/text/subedit/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://github.com/helixarch/subedit";
     description = "Command-line subtitle editor written in BASH";
+    mainProgram = "subedit";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ppom ];
   };
diff --git a/nixpkgs/pkgs/tools/text/tab/default.nix b/nixpkgs/pkgs/tools/text/tab/default.nix
index 3f8ef799a6bf..431b046471a4 100644
--- a/nixpkgs/pkgs/tools/text/tab/default.nix
+++ b/nixpkgs/pkgs/tools/text/tab/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Programming language/shell calculator";
+    mainProgram = "tab";
     homepage    = "https://tab-lang.xyz";
     license     = licenses.boost;
     maintainers = with maintainers; [ mstarzyk ];
diff --git a/nixpkgs/pkgs/tools/text/teip/default.nix b/nixpkgs/pkgs/tools/text/teip/default.nix
index c0ac20a28149..caa665fc3c93 100644
--- a/nixpkgs/pkgs/tools/text/teip/default.nix
+++ b/nixpkgs/pkgs/tools/text/teip/default.nix
@@ -43,6 +43,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A tool to bypass a partial range of standard input to any command";
+    mainProgram = "teip";
     homepage = "https://github.com/greymd/teip";
     changelog = "https://github.com/greymd/teip/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/text/termbook/default.nix b/nixpkgs/pkgs/tools/text/termbook/default.nix
index ee9367038f63..a68f0ce416f4 100644
--- a/nixpkgs/pkgs/tools/text/termbook/default.nix
+++ b/nixpkgs/pkgs/tools/text/termbook/default.nix
@@ -52,6 +52,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A runner for `mdbooks` to keep your documentation tested";
+    mainProgram = "termbook";
     homepage = "https://github.com/Byron/termbook/";
     changelog = "https://github.com/Byron/termbook/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/tools/text/tidy-viewer/default.nix b/nixpkgs/pkgs/tools/text/tidy-viewer/default.nix
index 6c38007b3f26..cbeb97214893 100644
--- a/nixpkgs/pkgs/tools/text/tidy-viewer/default.nix
+++ b/nixpkgs/pkgs/tools/text/tidy-viewer/default.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A cross-platform CLI csv pretty printer that uses column styling to maximize viewer enjoyment";
+    mainProgram = "tidy-viewer";
     homepage = "https://github.com/alexhallam/tv";
     changelog = "https://github.com/alexhallam/tv/blob/${version}/CHANGELOG.md";
     license = licenses.unlicense;
diff --git a/nixpkgs/pkgs/tools/text/tml/default.nix b/nixpkgs/pkgs/tools/text/tml/default.nix
index 3f1a6477851c..5a083bfc4d60 100644
--- a/nixpkgs/pkgs/tools/text/tml/default.nix
+++ b/nixpkgs/pkgs/tools/text/tml/default.nix
@@ -20,6 +20,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A tiny markup language for terminal output";
+    mainProgram = "tml";
     homepage = "https://github.com/liamg/tml";
     changelog = "https://github.com/liamg/tml/releases/tag/v${version}";
     license = licenses.unlicense;
diff --git a/nixpkgs/pkgs/tools/text/to-html/default.nix b/nixpkgs/pkgs/tools/text/to-html/default.nix
index 9e176a5ad19c..5ddba61276d4 100644
--- a/nixpkgs/pkgs/tools/text/to-html/default.nix
+++ b/nixpkgs/pkgs/tools/text/to-html/default.nix
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = {
     description = "Terminal wrapper for rendering a terminal on a website by converting ANSI escape sequences to HTML";
+    mainProgram = "to-html";
     homepage = "https://github.com/Aloso/to-html";
     changelog = "https://github.com/Aloso/to-html/blob/${src.rev}/CHANGELOG.md";
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/tools/text/tuc/default.nix b/nixpkgs/pkgs/tools/text/tuc/default.nix
index b7b5afbdf3a3..46e9bb86e57c 100644
--- a/nixpkgs/pkgs/tools/text/tuc/default.nix
+++ b/nixpkgs/pkgs/tools/text/tuc/default.nix
@@ -14,6 +14,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "When cut doesn't cut it";
+    mainProgram = "tuc";
     homepage = "https://github.com/riquito/tuc";
     license = licenses.gpl3;
     maintainers = with maintainers; [ dit7ya ];
diff --git a/nixpkgs/pkgs/tools/text/tv/default.nix b/nixpkgs/pkgs/tools/text/tv/default.nix
index 686433ff4290..9cf6e2e243e8 100644
--- a/nixpkgs/pkgs/tools/text/tv/default.nix
+++ b/nixpkgs/pkgs/tools/text/tv/default.nix
@@ -15,6 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Format json into table view";
+    mainProgram = "tv";
     homepage = "https://github.com/uzimaru0000/tv";
     changelog = "https://github.com/uzimaru0000/tv/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/text/txt2tags/default.nix b/nixpkgs/pkgs/tools/text/txt2tags/default.nix
index 8ff39ac1ebfe..1e48d4c6f3d6 100644
--- a/nixpkgs/pkgs/tools/text/txt2tags/default.nix
+++ b/nixpkgs/pkgs/tools/text/txt2tags/default.nix
@@ -30,6 +30,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = {
     changelog = "https://github.com/txt2tags/txt2tags/blob/${src.rev}/CHANGELOG.md";
     description = "Convert between markup languages";
+    mainProgram = "txt2tags";
     homepage = "https://txt2tags.org/";
     license  = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ dotlambda kovirobi ];
diff --git a/nixpkgs/pkgs/tools/text/ugrep/default.nix b/nixpkgs/pkgs/tools/text/ugrep/default.nix
index 94a417a4b0d7..fcea411e1a73 100644
--- a/nixpkgs/pkgs/tools/text/ugrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/ugrep/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ugrep";
-  version = "5.1.0";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = "Genivia";
     repo = "ugrep";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-B3O7suGepcTUdigtumMLXGZVBVX5qUH0TVdqTY3fCXE=";
+    hash = "sha256-ZMBu8hewPuwpm64Oe6JselynEv04JTR/OTbpbmkfe3Y=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/text/unfurl/default.nix b/nixpkgs/pkgs/tools/text/unfurl/default.nix
index 35a43ea2fdbd..0d9ae3b01992 100644
--- a/nixpkgs/pkgs/tools/text/unfurl/default.nix
+++ b/nixpkgs/pkgs/tools/text/unfurl/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Pull out bits of URLs provided on stdin";
+    mainProgram = "unfurl";
     homepage = "https://github.com/tomnomnom/unfurl";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
diff --git a/nixpkgs/pkgs/tools/text/uniscribe/default.nix b/nixpkgs/pkgs/tools/text/uniscribe/default.nix
index e7b9cedd2b8c..98b164a9d58d 100644
--- a/nixpkgs/pkgs/tools/text/uniscribe/default.nix
+++ b/nixpkgs/pkgs/tools/text/uniscribe/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Explains Unicode characters/code points: Displays their name, category, and shows compositions";
+    mainProgram = "uniscribe";
     homepage = "https://github.com/janlelis/uniscribe";
     license = licenses.mit;
     maintainers = with maintainers; [ kjeremy ];
diff --git a/nixpkgs/pkgs/tools/text/unrtf/default.nix b/nixpkgs/pkgs/tools/text/unrtf/default.nix
index 3357404a7d3c..4395c0f6e941 100644
--- a/nixpkgs/pkgs/tools/text/unrtf/default.nix
+++ b/nixpkgs/pkgs/tools/text/unrtf/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A converter from Rich Text Format to other formats";
+    mainProgram = "unrtf";
     longDescription = ''
       UnRTF converts documents in Rich Text Format to other
       formats, including HTML, LaTeX, and RTF itself.
diff --git a/nixpkgs/pkgs/tools/text/untex/default.nix b/nixpkgs/pkgs/tools/text/untex/default.nix
index 63108a923782..c6f833049650 100644
--- a/nixpkgs/pkgs/tools/text/untex/default.nix
+++ b/nixpkgs/pkgs/tools/text/untex/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A utility which removes LaTeX commands from input";
+    mainProgram = "untex";
     homepage = "https://www.ctan.org/pkg/untex";
     license = licenses.gpl1Only;
     maintainers = with maintainers; [ joachifm ];
diff --git a/nixpkgs/pkgs/tools/text/uwc/default.nix b/nixpkgs/pkgs/tools/text/uwc/default.nix
index dc34ecfacff2..42777accb826 100644
--- a/nixpkgs/pkgs/tools/text/uwc/default.nix
+++ b/nixpkgs/pkgs/tools/text/uwc/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Like wc, but unicode-aware, and with per-line mode";
+    mainProgram = "uwc";
     homepage = "https://gitlab.com/dead10ck/uwc";
     license = licenses.mit;
     maintainers = with maintainers; [ ShamrockLee ];
diff --git a/nixpkgs/pkgs/tools/text/vale/default.nix b/nixpkgs/pkgs/tools/text/vale/default.nix
index e3d2896078ca..861b3e6b899e 100644
--- a/nixpkgs/pkgs/tools/text/vale/default.nix
+++ b/nixpkgs/pkgs/tools/text/vale/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "vale";
-  version = "3.2.2";
+  version = "3.3.1";
 
   subPackages = [ "cmd/vale" ];
   outputs = [ "out" "data" ];
@@ -11,10 +11,10 @@ buildGoModule rec {
     owner = "errata-ai";
     repo = "vale";
     rev = "v${version}";
-    hash = "sha256-CLbzrJJVgFxJKuTtXQKGZ6q228Sm7s+Is11TE8mAmD8=";
+    hash = "sha256-6hj8fm2eCGQeWY3+eaJlKeZglJUSMY4/Yz2ySGp6m58=";
   };
 
-  vendorHash = "sha256-KxIQZViUYT4cgRlOuKBwen6pqQjGiAofkeBztmjnKdQ=";
+  vendorHash = "sha256-HMzFLSmO6sBDNU89UoIvHcPPd3ubpti2ii4sFMKUDmI=";
 
   postInstall = ''
     mkdir -p $data/share/vale
@@ -30,6 +30,7 @@ buildGoModule rec {
     description = "A syntax-aware linter for prose built with speed and extensibility in mind";
     homepage = "https://vale.sh/";
     changelog = "https://github.com/errata-ai/vale/releases/tag/v${version}";
+    mainProgram = "vale";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/nixpkgs/pkgs/tools/text/vgrep/default.nix b/nixpkgs/pkgs/tools/text/vgrep/default.nix
index 9022c5f5c03b..942188730387 100644
--- a/nixpkgs/pkgs/tools/text/vgrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/vgrep/default.nix
@@ -25,6 +25,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "User-friendly pager for grep/git-grep/ripgrep";
+    mainProgram = "vgrep";
     homepage = "https://github.com/vrothberg/vgrep";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ SuperSandro2000 ];
diff --git a/nixpkgs/pkgs/tools/text/wdiff/default.nix b/nixpkgs/pkgs/tools/text/wdiff/default.nix
index d6ed960cce1e..d358dcdd0c4e 100644
--- a/nixpkgs/pkgs/tools/text/wdiff/default.nix
+++ b/nixpkgs/pkgs/tools/text/wdiff/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.gnu.org/software/wdiff/";
     description = "Comparing files on a word by word basis";
+    mainProgram = "wdiff";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ eelco SuperSandro2000 ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/text/wgetpaste/default.nix b/nixpkgs/pkgs/tools/text/wgetpaste/default.nix
index 9a60b991a7f9..8ca014e0d5f5 100644
--- a/nixpkgs/pkgs/tools/text/wgetpaste/default.nix
+++ b/nixpkgs/pkgs/tools/text/wgetpaste/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wgetpaste";
-  version = "2.33";
+  version = "2.34";
 
   src = fetchurl {
     url = "https://github.com/zlin/wgetpaste/releases/download/${version}/wgetpaste-${version}.tar.xz";
-    sha256 = "sha256-6TWdhKOmO7vRKGIVNcUwLy46heI6UiAOgej6ubd+lxs=";
+    sha256 = "sha256-vW0G7ZAaPWPJyMVxJghP8JlPCZAb+xY4uHlT6sHpQz8=";
   };
   # currently zsh-autocompletion support is not installed
 
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Command-line interface to various pastebins";
+    mainProgram = "wgetpaste";
     homepage = "https://github.com/zlin/wgetpaste";
     license = lib.licenses.publicDomain;
     maintainers = with lib.maintainers; [ qknight domenkozar ];
diff --git a/nixpkgs/pkgs/tools/text/xidel/default.nix b/nixpkgs/pkgs/tools/text/xidel/default.nix
index 479cc0ff1115..d7fefa2d495d 100644
--- a/nixpkgs/pkgs/tools/text/xidel/default.nix
+++ b/nixpkgs/pkgs/tools/text/xidel/default.nix
@@ -87,6 +87,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Command line tool to download and extract data from HTML/XML pages as well as JSON APIs";
+    mainProgram = "xidel";
     homepage = "https://www.videlibri.de/xidel.html";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/text/xml/xmlformat/default.nix b/nixpkgs/pkgs/tools/text/xml/xmlformat/default.nix
index 380baa906c27..ea0e90502dc2 100644
--- a/nixpkgs/pkgs/tools/text/xml/xmlformat/default.nix
+++ b/nixpkgs/pkgs/tools/text/xml/xmlformat/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "a configurable formatter (or 'pretty-printer') for XML documents";
+    mainProgram = "xmlformat";
     homepage = "http://www.kitebird.com/software/xmlformat/";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.all;
diff --git a/nixpkgs/pkgs/tools/text/xml/xmloscopy/default.nix b/nixpkgs/pkgs/tools/text/xml/xmloscopy/default.nix
index c915e2c7fc5b..32162849c41d 100644
--- a/nixpkgs/pkgs/tools/text/xml/xmloscopy/default.nix
+++ b/nixpkgs/pkgs/tools/text/xml/xmloscopy/default.nix
@@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "wtf is my docbook broken?";
+    mainProgram = "xmloscopy";
     homepage = "https://github.com/grahamc/xmloscopy";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/text/xml/xq/default.nix b/nixpkgs/pkgs/tools/text/xml/xq/default.nix
index 6fae10b25357..7b55d5d28d35 100644
--- a/nixpkgs/pkgs/tools/text/xml/xq/default.nix
+++ b/nixpkgs/pkgs/tools/text/xml/xq/default.nix
@@ -33,6 +33,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Command-line XML and HTML beautifier and content extractor";
+    mainProgram = "xq";
     homepage = "https://github.com/sibprogrammer/xq";
     changelog = "https://github.com/sibprogrammer/xq/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/tools/text/xpaste/default.nix b/nixpkgs/pkgs/tools/text/xpaste/default.nix
index 88666fd25adc..7bbe658b6b5a 100644
--- a/nixpkgs/pkgs/tools/text/xpaste/default.nix
+++ b/nixpkgs/pkgs/tools/text/xpaste/default.nix
@@ -24,6 +24,7 @@ python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Paste text into X windows that don't work with selections";
+    mainProgram = "xpaste";
     homepage = "https://github.com/ossobv/xpaste";
     license = licenses.gpl3;
     maintainers = with maintainers; [ gador ];
diff --git a/nixpkgs/pkgs/tools/text/xsv/default.nix b/nixpkgs/pkgs/tools/text/xsv/default.nix
index 303b38d65c2d..3e617a621e33 100644
--- a/nixpkgs/pkgs/tools/text/xsv/default.nix
+++ b/nixpkgs/pkgs/tools/text/xsv/default.nix
@@ -17,6 +17,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A fast CSV toolkit written in Rust";
+    mainProgram = "xsv";
     homepage = "https://github.com/BurntSushi/xsv";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = [ maintainers.jgertm ];
diff --git a/nixpkgs/pkgs/tools/text/yaml-merge/default.nix b/nixpkgs/pkgs/tools/text/yaml-merge/default.nix
index 85ea3cd360da..a5113a92f702 100644
--- a/nixpkgs/pkgs/tools/text/yaml-merge/default.nix
+++ b/nixpkgs/pkgs/tools/text/yaml-merge/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Merge YAML data files";
+    mainProgram = "yaml-merge";
     homepage = "https://github.com/abbradar/yaml-merge";
     license = licenses.bsd2;
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/text/zet/default.nix b/nixpkgs/pkgs/tools/text/zet/default.nix
index 50d149f4e655..af04b5fdc203 100644
--- a/nixpkgs/pkgs/tools/text/zet/default.nix
+++ b/nixpkgs/pkgs/tools/text/zet/default.nix
@@ -22,6 +22,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "CLI utility to find the union, intersection, set difference, etc of files considered as sets of lines";
+    mainProgram = "zet";
     homepage = "https://github.com/yarrow/zet";
     changelog = "https://github.com/yarrow/zet/blob/${src.rev}/CHANGELOG.md";
     license = with licenses; [ asl20 mit ];
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctorj/default.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctorj/default.nix
index fd2bc2eabdb8..ac9abf1924c0 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctorj/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctorj/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "asciidoctorj";
-  version = "2.5.11";
+  version = "2.5.12";
 
   src = fetchzip {
     url = "mirror://maven/org/asciidoctor/${pname}/${version}/${pname}-${version}-bin.zip";
-    sha256 = "sha256-Eagq8a6xTMonaiyhuuHc47pD8gE6jqWx7cZ3xJykmeQ=";
+    sha256 = "sha256-cpFY9nEqy7yBevupHMpNybqnAfN2fT9RcSKWlRdWsag=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/typesetting/bibtex-tidy/default.nix b/nixpkgs/pkgs/tools/typesetting/bibtex-tidy/default.nix
index 7aeaf13fb02a..6fa64d653736 100644
--- a/nixpkgs/pkgs/tools/typesetting/bibtex-tidy/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/bibtex-tidy/default.nix
@@ -28,6 +28,7 @@ buildNpmPackage rec {
   meta = {
     changelog = "https://github.com/FlamingTempura/bibtex-tidy/blob/${src.rev}/CHANGELOG.md";
     description = "Cleaner and Formatter for BibTeX files";
+    mainProgram = "bibtex-tidy";
     homepage = "https://github.com/FlamingTempura/bibtex-tidy";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ bertof ];
diff --git a/nixpkgs/pkgs/tools/typesetting/fop/default.nix b/nixpkgs/pkgs/tools/typesetting/fop/default.nix
index 254f29d27a78..94a24211f9a3 100644
--- a/nixpkgs/pkgs/tools/typesetting/fop/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/fop/default.nix
@@ -1,38 +1,60 @@
-{ fetchurl, lib, stdenv, ant, jdk, runtimeShell }:
+{ lib
+, stdenv
+, fetchurl
+, ant
+, jdk
+, jre
+, makeWrapper
+, stripJavaArchivesHook
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "fop";
   version = "2.8";
 
   src = fetchurl {
-    url = "mirror://apache/xmlgraphics/fop/source/${pname}-${version}-src.tar.gz";
-    sha256 = "sha256-b7Av17wu6Ar/npKOiwYqzlvBFSIuXTpqTacM1sxtBvc=";
+    url = "mirror://apache/xmlgraphics/fop/fop-${finalAttrs.version}-src.tar.gz";
+    hash = "sha256-b7Av17wu6Ar/npKOiwYqzlvBFSIuXTpqTacM1sxtBvc=";
   };
 
-  buildInputs = [ ant jdk ];
+  nativeBuildInputs = [
+    ant
+    jdk
+    makeWrapper
+    stripJavaArchivesHook
+  ];
+
+  # Note: not sure if this is needed anymore
+  env.JAVA_TOOL_OPTIONS = "-Dfile.encoding=UTF8";
 
-  # build only the "package" target, which generates the fop command.
   buildPhase = ''
-     export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8"
-     ant -f fop/build.xml package
+    runHook preBuild
+
+    # build only the "package" target, which generates the fop command.
+    ant -f fop/build.xml package
+
+    runHook postBuild
   '';
 
   installPhase = ''
-    mkdir -p $out/bin $out/lib $out/share/doc/fop
+    runHook preInstall
+
+    mkdir -p $out/lib $out/share/doc/fop
     cp fop/build/*.jar fop/lib/*.jar $out/lib/
     cp -r README fop/examples/ $out/share/doc/fop/
 
     # There is a fop script in the source archive, but it has many impurities.
     # Instead of patching out 90 % of the script, we write our own.
-    cat > "$out/bin/fop" <<EOF
-    #!${runtimeShell}
-    java_exec_args="-Djava.awt.headless=true"
-    exec ${jdk.jre}/bin/java \$java_exec_args -classpath "$out/lib/*" org.apache.fop.cli.Main "\$@"
-    EOF
-    chmod a+x $out/bin/fop
+    makeWrapper ${jre}/bin/java $out/bin/fop \
+        --add-flags "-Djava.awt.headless=true" \
+        --add-flags "-classpath $out/lib/\*" \
+        --add-flags "org.apache.fop.cli.Main"
+
+    runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
+    changelog = "https://xmlgraphics.apache.org/fop/changes.html";
     description = "XML formatter driven by XSL Formatting Objects (XSL-FO)";
     longDescription = ''
       FOP is a Java application that reads a formatting object tree and then
@@ -47,13 +69,13 @@ stdenv.mkDerivation rec {
       This package contains the fop command line tool.
     '';
     homepage = "https://xmlgraphics.apache.org/fop/";
-    license = licenses.asl20;
-    sourceProvenance = with sourceTypes; [
+    license = lib.licenses.asl20;
+    mainProgram = "fop";
+    maintainers = with lib.maintainers; [ bjornfor tomasajt ];
+    platforms = jre.meta.platforms;
+    sourceProvenance = with lib.sourceTypes; [
       fromSource
-      binaryBytecode  # source bundles dependencies as jars
+      binaryBytecode # source bundles dependencies as jars
     ];
-    platforms = platforms.all;
-    maintainers = with maintainers; [ bjornfor ];
-    mainProgram = "fop";
   };
-}
+})
diff --git a/nixpkgs/pkgs/tools/typesetting/hayagriva/default.nix b/nixpkgs/pkgs/tools/typesetting/hayagriva/default.nix
index 03aea70ae6cf..6574c0c9c6e9 100644
--- a/nixpkgs/pkgs/tools/typesetting/hayagriva/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/hayagriva/default.nix
@@ -5,14 +5,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hayagriva";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-nXfoPAUU8pDUj8MdpiYbN9ToJbWk4CsUTGehgGDvykg=";
+    hash = "sha256-hE0Oi+0vDQGDEOYtHiPit1RrrkrlLZs20nEHOm/bp5M=";
   };
 
-  cargoHash = "sha256-xKCnHqQn4mNvZ9LBgDnD4VDlUBgRO1SYLmvqq11GFsc=";
+  cargoHash = "sha256-WZbbjLDHYJTiuM0Lh9YfVvLTvK/jfO8fRbLqZ8XOLGg=";
 
   buildFeatures = [ "cli" ];
 
diff --git a/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix b/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
index 1e2c58d60356..3320e91e51b9 100644
--- a/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
@@ -38,9 +38,6 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ icu fontconfig harfbuzz openssl ]
     ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ ApplicationServices Cocoa Foundation ]);
 
-  # workaround for https://github.com/NixOS/nixpkgs/issues/166205
-  NIX_LDFLAGS = lib.optionalString (stdenv.cc.isClang && stdenv.cc.libcxx != null) " -l${stdenv.cc.libcxx.cxxabi.libName}";
-
   postInstall = ''
     # Makes it possible to automatically use the V2 CLI API
     ln -s $out/bin/tectonic $out/bin/nextonic
diff --git a/nixpkgs/pkgs/tools/typesetting/tectonic/tests.nix b/nixpkgs/pkgs/tools/typesetting/tectonic/tests.nix
index da1961c8e42d..eac66f19599e 100644
--- a/nixpkgs/pkgs/tools/typesetting/tectonic/tests.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tectonic/tests.nix
@@ -90,4 +90,10 @@ lib.mapAttrs networkRequiringTestPkg {
     tectonic -X new
     cat Tectonic.toml | grep "${tectonic.bundleUrl}"
   '';
+
+  /** test that the `nextonic -> tectonic` symlink is working as intended */
+  nextonic = ''
+    nextonic new 2>&1 \
+      | grep '"version 2" Tectonic command-line interface activated'
+  '';
 }
diff --git a/nixpkgs/pkgs/tools/typesetting/tectonic/wrapper.nix b/nixpkgs/pkgs/tools/typesetting/tectonic/wrapper.nix
index 42125e7855d8..900c695c9218 100644
--- a/nixpkgs/pkgs/tools/typesetting/tectonic/wrapper.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tectonic/wrapper.nix
@@ -46,7 +46,8 @@ symlinkJoin {
   + ''
     makeWrapper ${lib.getBin tectonic-unwrapped}/bin/tectonic $out/bin/tectonic \
       --prefix PATH : "${lib.getBin biber-for-tectonic}/bin" \
-      --add-flags "--web-bundle ${tectonic.passthru.bundleUrl}"
+      --add-flags "--web-bundle ${tectonic.passthru.bundleUrl}" \
+      --inherit-argv0 ## make sure binary name e.g. `nextonic` is passed along
     ln -s $out/bin/tectonic $out/bin/nextonic
   '';
 
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix
index 1f3fd13d2863..d615cefd77c3 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/dblatex/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A program to convert DocBook to DVI, PostScript or PDF via LaTeX or ConTeXt";
+    mainProgram = "dblatex";
     homepage = "https://dblatex.sourceforge.net/";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/gladtex/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/gladtex/default.nix
index 2d2cd37442f7..bf64f400d2b8 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/gladtex/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/gladtex/default.nix
@@ -16,6 +16,7 @@ python3Packages.buildPythonPackage rec {
 
   meta = with lib; {
     description = "Embed LaTeX formulas into HTML documents as SVG images";
+    mainProgram = "gladtex";
     homepage = "https://humenda.github.io/GladTeX";
     license = licenses.lgpl3Plus;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/latexrun/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/latexrun/default.nix
index 3a163a5682d6..ea2c630e7960 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/latexrun/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/latexrun/default.nix
@@ -21,6 +21,7 @@ stdenvNoCC.mkDerivation {
 
   meta = with lib; {
     description = "A 21st century LaTeX wrapper";
+    mainProgram = "latexrun";
     homepage = "https://github.com/aclements/latexrun";
     license = licenses.mit;
     maintainers = [ maintainers.lucus16 ];
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/pplatex/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/pplatex/default.nix
index 89d08b43e845..367daa9450fc 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/pplatex/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/pplatex/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description =
       "A tool to reformat the output of latex and friends into readable messages";
+    mainProgram = "pplatex";
     homepage = "https://github.com/stefanhepp/pplatex";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.srgom maintainers.doronbehar ];
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix
index 65bfcd02d78c..c7d961d21fc1 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/tex-match/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Search through over 1000 different LaTeX symbols by sketching. A desktop version of detexify";
+    mainProgram = "tex-match";
     homepage = "https://tex-match.zoey.fyi/";
     license = licenses.mit;
     maintainers = [ maintainers.bootstrap-prime ];
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
index 46ec52f75d84..9641fa728a98 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
@@ -212,14 +212,18 @@ core-big = stdenv.mkDerivation {
       url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1009196;filename=lua_fixed_hash.patch;msg=45";
       sha256 = "sha256-FTu1eRd3AUU7IRs2/7e7uwHuvZsrzTBPypbcEZkU7y4=";
     })
-    # fixes a security-issue in luatex that allows arbitrary code execution even with shell-escape disabled, see https://tug.org/~mseven/luatex.html
-    # fixed in LuaTeX 1.17.0, remove patch when upgrading to TL 2024
+    # update to LuaTeX 1.16.1 to prepare for 1.17.0 below
     (fetchpatch {
-      name = "CVE-2023-32700.patch";
-      url = "https://tug.org/~mseven/luatex-files/2023/patch";
-      hash = "sha256-AvMedFkZJAFsCJ51eQqBQM4MpzLzn+GeBrzuTzISVkk=";
-      excludes = [  "build.sh" ];
-      stripLen = 1;
+      name = "luatex-1.16.1.patch";
+      url = "https://github.com/TeX-Live/texlive-source/commit/ad8702a45e317fa9d396ef4d50467c37964a9543.patch";
+      hash = "sha256-qfzUfkJUfW285w+fnbpO8JLArM7/uj3yb9PONgZrJLE=";
+    })
+    # fixes security issues in luatex that allows arbitrary code execution even with shell-escape disabled and network requests, see https://tug.org/~mseven/luatex.html
+    # fixed in LuaTeX 1.17.0, shipped as a rare binary update in TL 2023
+    (fetchpatch {
+      name = "luatex-1.17.0.patch";
+      url = "https://github.com/TeX-Live/texlive-source/commit/6ace460233115bd42b36e63c7ddce11cc92a1ebd.patch";
+      hash = "sha256-2fbIdwnw/XQXci9OqRrb6B5tHiSR0co08NyFgMyXCvc=";
     })
     # Fixes texluajitc crashes on aarch64, backport of the upstream fix
     # https://github.com/LuaJIT/LuaJIT/commit/e9af1abec542e6f9851ff2368e7f196b6382a44c
@@ -322,44 +326,25 @@ context = stdenv.mkDerivation rec {
   };
 };
 
-dvisvgm = stdenv.mkDerivation {
+dvisvgm = stdenv.mkDerivation rec {
   pname = "dvisvgm";
-  inherit (texlive.pkgs.dvisvgm) version;
+  version = "3.2.2";
 
-  inherit (common) src;
+  src = assert lib.assertMsg (version == texlive.pkgs.dvisvgm.version) "dvisvgm: TeX Live version (${texlive.pkgs.dvisvgm.version}) different from source (${version}), please update dvisvgm"; fetchurl {
+    url = "https://github.com/mgieseki/dvisvgm/releases/download/${version}/dvisvgm-${version}.tar.gz";
+    hash = "sha256-8GKL6lqjMUXXWwpqbdGPrYibdSc4y8AcGUGPNUc6HQA=";
+  };
 
-  patches = [
-    # do not use deprecated NEWPDF option with Ghostscript >= 10.02.0
-    # https://github.com/mgieseki/dvisvgm/issues/245
-    (fetchpatch {
-      name = "dont-use-NEWPDF-with-GS-10.02.0.patch";
-      url = "https://github.com/mgieseki/dvisvgm/commit/f31cdf14d73f586e2b92b4b0891d097a90274a0b.patch";
-      hash = "sha256-Yf/GhmJYM87M0ITZ/+7q2ZvSYnac4N2/NkTkFlJ2VII=";
-      stripLen = 1;
-      extraPrefix = "texk/dvisvgm/dvisvgm-src/";
-    })
+  configureFlags = [
+    "--disable-manpage" # man pages are provided by the doc container
   ];
 
-  # since we are running configure directly in texk/dvisvgm,
-  # the option --with-system-potrace is not picked up properly
-  # and dvisvgm tries to build a vendored copy of potrace
+  # PDF handling requires mutool (from mupdf) since Ghostscript 10.01
   postPatch = ''
-    cat > texk/dvisvgm/dvisvgm-src/libs/potrace/Makefile <<EOF
-    all:
-    install:
-    EOF
-  '' +
-    # PDF handling requires mutool (from mupdf) since Ghostscript 10.01
-  ''
-    substituteInPlace texk/dvisvgm/dvisvgm-src/src/PDFHandler.cpp \
-      --replace 'Process("mutool"' "Process(\"$(PATH="$HOST_PATH" command -v mutool)\""
+    substituteInPlace src/PDFHandler.cpp \
+      --replace-fail 'Process("mutool"' "Process(\"$(PATH="$HOST_PATH" command -v mutool)\""
   '';
 
-  preConfigure = "cd texk/dvisvgm";
-
-  configureFlags = common.configureFlags
-    ++ [ "--with-system-kpathsea" ];
-
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ core brotli ghostscript zlib freetype woff2 potrace xxHash mupdf-headless ];
 
@@ -468,7 +453,7 @@ xdvi = stdenv.mkDerivation {
 
   postInstall = ''
     substituteInPlace "$out/bin/xdvi" \
-      --replace "exec xdvi-xaw" "exec '$out/bin/xdvi-xaw'"
+      --replace-fail "exec xdvi-xaw" "exec '$out/bin/xdvi-xaw'"
   '';
   # TODO: it's suspicious that mktexpk generates fonts into ~/.texlive2014
 };
@@ -504,8 +489,8 @@ xindy = stdenv.mkDerivation {
   # hardcode clisp location
   postPatch = ''
     substituteInPlace xindy-*/user-commands/xindy.in \
-      --replace "our \$clisp = ( \$is_windows ? 'clisp.exe' : 'clisp' ) ;" \
-                "our \$clisp = '$(type -P clisp)';"
+      --replace-fail "our \$clisp = ( \$is_windows ? 'clisp.exe' : 'clisp' ) ;" \
+                     "our \$clisp = '$(type -P clisp)';"
   '';
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
index 85be581a3066..73e69578dc9f 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
@@ -172,7 +172,6 @@ let
 
   # emulate split output derivation
   splitOutputs = {
-    out = out // { outputSpecified = true; };
     texmfdist = texmfdist // { outputSpecified = true; };
     texmfroot = texmfroot // { outputSpecified = true; };
   } // (lib.genAttrs pkgList.nonEnvOutputs (outName: (buildEnv {
@@ -186,9 +185,9 @@ let
     inherit meta passthru;
   }).overrideAttrs { outputs = [ outName ]; } // { outputSpecified = true; }));
 
-  passthru = lib.optionalAttrs (! __combine) (splitOutputs // {
-    all = builtins.attrValues splitOutputs;
-  }) // {
+  passthru = {
+    # these are not part of pkgList.nonEnvOutputs and must be exported in passthru
+    inherit (splitOutputs) texmfdist texmfroot;
     # This is set primarily to help find-tarballs.nix to do its job
     requiredTeXPackages = builtins.filter lib.isDerivation (pkgList.bin ++ pkgList.nonbin
       ++ lib.optionals (! __fromCombineWrapper)
@@ -378,7 +377,7 @@ let
     if [[ -e "$out/bin/mtxrun" ]]; then
       mv "$out"/bin/mtxrun.lua{,.orig}
       substitute "$TEXMFDIST"/scripts/context/lua/mtxrun.lua "$out"/bin/mtxrun.lua \
-        --replace 'randomseed(math.initialseed)' "randomseed($SOURCE_DATE_EPOCH)"
+        --replace-fail 'randomseed(math.initialseed)' "randomseed($SOURCE_DATE_EPOCH)"
     fi
   '' +
   # texlive postactions (see TeXLive::TLUtils::_do_postaction_script)
@@ -409,7 +408,7 @@ let
     # note that calling faketime and fmtutil is fragile (faketime uses LD_PRELOAD, fmtutil calls /bin/sh, causing potential glibc issues on non-NixOS)
     # so we patch fmtutil to use faketime, rather than calling faketime fmtutil
     substitute "$TEXMFDIST"/scripts/texlive/fmtutil.pl fmtutil \
-      --replace 'my $cmdline = "$eng -ini ' 'my $cmdline = "faketime -f '"'"'\@1980-01-01 00:00:00 x0.001'"'"' $eng -ini '
+      --replace-fail 'my $cmdline = "$eng -ini ' 'my $cmdline = "faketime -f '"'"'\@1980-01-01 00:00:00 x0.001'"'"' $eng -ini '
     FORCE_SOURCE_DATE=1 TZ= perl fmtutil --sys --all | grep '^fmtutil' # too verbose
 
     # Disable unavailable map files
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
index 5611760ce66c..cab889f5f8b3 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -44,12 +44,12 @@ let
   version = {
     # day of the snapshot being taken
     year = "2024";
-    month = "01";
-    day = "14";
+    month = "03";
+    day = "16";
     # TeX Live version
     texliveYear = 2023;
     # final (historic) release or snapshot
-    final = false;
+    final = true;
   };
 
   # The tarballs on CTAN mirrors for the current release are constantly
@@ -79,7 +79,7 @@ let
       # use last mirror for daily snapshots as texlive.tlpdb.xz changes every day
       # TODO make this less hacky
       (if version.final then mirrors else [ (lib.last mirrors) ]);
-    hash = "sha256-eUG0KVfFPkjOczCsu2GAPRQcvcPrEIGqIsJNRc+AHDs=";
+    hash = "sha256-w+04GBFDk/P/XvW7T9PotGD0nQslMkV9codca2urNK4=";
   };
 
   tlpdbNix = runCommand "tlpdb.nix" {
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix
index 4e47feed0cd7..33f4bf942bfa 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/fixed-hashes.nix
@@ -24,8 +24,8 @@ accents-51497={run="1xl7fkm5gc36mm0bhx7rm9v4g2d9j22gr5fjxjbzmr6byjfgw71k";doc="0
 accessibility-55777={run="0d7xrsdanx7wnnmc983rfy00r4290rigwx5ils6pfm0br2g5kfsr";doc="17gxz1lm39wh2a235wk0s03jc7jxd4bl0iqj04v02m994gz43y3x";source="14av24zcjqxq8v92yni6aj66cblnfzb1f07hbcd3ljbycw14ii44";};
 accfonts-18835={run="10z7c7cgwm62dyzxfnj0jiy328zj3wccqjick37lz641vqifrd4v";doc="17mbr2ydbkc4md6zd34km3d4s2vjmqzfwb2l01n4y30vjz2lzsn1";};
 accsupp-53052={run="156yax2q84naj394xzr8m7hfyl1j7pziw8d6rzkrjjgxs9p9az1j";doc="1ak7xv0hhghgbwmcviirhh1x5y9pb4is8h0a32kdd4hdxjdm7c92";source="0spz8640bdzmirlnc3rwynzvgy5fi58vfs802jzbqxb0ypdg14s7";};
-achemso-65103={run="1chl9nny4lm75qjhv9pbjbgzsm54vj7dlpfdm0gc5yansb70ghcv";doc="1fhszmzl99l2nvp3m95hf44mgqkg2mvfp2sw2nk12k8a7b2n33a4";source="1kd9dhmjp0n0y0cv7437194yhjdsd0ac6qbvx060sw72mb2dbj6j";};
-acmart-69242={run="1qyzb19sj7s9q05zqb295pl2424ip4w8pspy1hl5d0kja6vcp0kp";doc="0rvi2yz91460ja4r25p2ka79rw3gzji2qplyjrww2sl78k5xa6cy";source="1hcmzbfh7app6w9fvmj29v1qwc7x76w3szjhgx94p9lr9gkja8hk";};
+achemso-69638={run="16si3krcn64nz383y2cpv77fka9xlc5bb568inr3xi0sckwnvd6f";doc="1n7kznrriac60pn7wnlnpm82fxj07gbnrxf7zfv4f8b9vj2x706v";source="1h07bjmbnkk0sr60qd5ml6j78g5hbzvw0pwin2npsd2fxx8q8hfa";};
+acmart-69721={run="1b47751cahm4cphlxa0vnvax69zrxcj1c5i8bmx61s183l7gvw18";doc="0757g2yzqikgfb997m8wd0w9rcqaar872qi7gz3j3sp0dayg6c3w";source="09ly6vm7kjqqqqqk00n843h6pns8bv57za7g95yz0x9s4jqdk774";};
 acmconf-15878={run="17l1kcwv6wk5p752lmanlx0bmh2py4hfxranapgbdrhjpis4jm9i";doc="1vyhkwqg0v3pxjnlwzwnmiffh6b3d9nrwnpaqjm24j9d2sc6cxcx";source="1n8cf6n2fdb88xmnj2m5r3cjz3jlp9n7bn1yr717fsp2ks81pr3f";};
 acro-62925={run="1hzavaicandq6sqz3sy8hj5n3kvkbic34p8id2mslizcw3rmlhhz";doc="05iwf21y45l61fsask04pphxzzjn7h1al8n2wv59jkxyh8vy8dbv";};
 acronym-54758={run="1gq7j83gjzlfbnrnz1cl0lihpdalsn6ww6hqxdfxikm28vynk88g";doc="0zscjwg22s81awq27lhqs14davwbhf5y4zsl9dsq2135rppmmyvv";source="16dds23mj3ha1b64fxz2dnxk7wsrcmhpmpz0zgqda46vaab9qiw9";};
@@ -41,7 +41,7 @@ adfathesis-26048={run="0j60iq9nzk5kbs12dqx5jk84n14kdlx93mcypwi9b2gn7kyqzn5i";doc
 adforn-54512={run="1cb6w50xb9wkl6x384dhldrhpjbk5l73x5gzpbm8za4gmh1pc94v";doc="0a1f1rrii1zvd58h2slk2zj032vjqpi480d38rgi2k2j9wlbbyyg";};
 adfsymbols-54512={run="19rr3zdgqlmnrvd61g9bjiqiyn2gpn82fhj4219gqb1l06nqa0ka";doc="059fjvdmd1jgr1flv5181ac3wvby93hyykfshcmr1j06zs8j9kyx";};
 adhocfilelist-29349={run="08fnrvnbrp7534b56hn8w0nm8pbgjli62v34mkalp4qkfb559kh7";doc="1n7nah8vr691k56z0jkgyav4lc8w45rlg8k9shhqhnnpqi8zxv1m";source="1xl0f33yhmbsrnmy9pby092js83vxcdaq2gfny08pjlq57arphr4";};
-adigraph-49862={run="077iqsmfa1fpgmnppb7bcnskpa9ap4wa53ip67b4d21pa1arzszq";doc="11z48jaj6xcwrzv8y2byjcs88mdvqi2fqk0nqw3cy5pq7b5m7rap";};
+adigraph-70427={run="19wzsa84y7a5jbgbyj69frfqd0ahi9ha7sszppsr5bmh88gbnfby";doc="0rr6sbb34d9nd1ni86s5mll5bjx0hinwm52gqiqrwqwkr068djcn";};
 adjmulticol-63320={run="0wjqjg46gbf44f2x0xf58b3f9bxfkrh21m85mh1xsd5pxdy116fl";doc="01r00mf8skd54xgzqjicl4djjzgnf5fdw5hcbf9p5ixx1zw1jq7l";source="1zyq1r0y3amkqch1lif0dygif0sgwhypscqdsqml6ik2ziv2alzi";};
 adjustbox-64967={run="03fqxxhpc41zkj8g7dwd4p3vs9c0qg95c6bdwwgvn3xkaqn6amjm";doc="11mldsmmp1mcd5kya8bh2zmkgl01ysswcia1lips3vjfiqjp8vp8";source="0qzjxslq3bni6iancxix471sl6455syp1pglnn7xa5lxlfl43ccs";};
 adobemapping-66552={run="1yvf74mlmxmnq9m0wvda9xcna8xnn382bbrzizzjm5w7bk8c4g98";};
@@ -63,7 +63,7 @@ ajl-34016={run="1xkrvy06lw4ngj94zybs14ysal2pg7g71h864gq9bjw0zwq2yjzs";};
 akktex-26055={run="1npcfjjg9nwrb392g8pa4yq6i76aq4ys67zil4qgkf4jyzrixln9";doc="10ma4ic5bazlmizxvwks6w3qqxbbir0rrhzj1yw2j68p0600nmvn";};
 akletter-15878={run="0gigzlxkqmiqz4nwpxj98rcrxmi6yfipf5bifg1mywchnw7a1f2h";doc="0ngj7d4vdnvh99inw2vggqdgx6h2hv5z77glxjcpx8kmxf8h47sv";};
 akshar-56277={run="0g1pbihbpl3b7k7c19qiq7lcgx3zrfn15065dyan85bs8h85c2cw";doc="11a18b7a592sx3wha1lpy659hgh1wnka16zf8m0cbc99f867xfln";source="0g8j0015dm3mhphg06ma9dkgc28ywlihr6pcbi254qaxgk7kdn9g";};
-albatross-65647={run="18bcgycdzzhw47ci9lqyrbrahzax9ajfi5w9vjs35j294b0mk963";doc="1bwg2gq1fdpjlgjflfzfijabx8m6nfraak684ak6qdhvjfzx1aha";source="00w3byrzw0lwzjqsq0r7h81daqs2sg3ywwk3nsdbz0q4j6lkpv82";};
+albatross-69879={run="1qmhrbw7vq1gwd0xg50v384r3bkic4xy32i7sqv1lwrs4fw8aj8x";doc="10wamhwcfh0smmw6q8yf0fh6xms52ckrd45axb56dc4jchdhnpdy";source="11winakpjawrifjxkyfsxa9i1d0k0h4jcchnp61isvl7hy2n2fw5";};
 alchemist-66924={run="14gd0gb86p247bz2x2kcqqj2b0r2lz12gpssfz84kgvrwx5nxkvr";doc="0d8kirmkd1shkbckv32i8yxdrpwzss7qgdn2i06b6mwakisy93v1";};
 alegreya-64384={run="06hrvi0dssva2r253k9ma1vd6ij3bi2d0wsrk2n6fnxvxbl5xc02";doc="04wx39xdvhq0rfl4mz8k70kfv74w6kpyhja5879g0hp3pjfzxbcl";};
 aleph-66203={doc="0b7dihilh2v8qcp4m8fblyc10jc5i4fhpj3pspzinag0pk66b7nb";};
@@ -90,6 +90,7 @@ altfont-15878={run="1nrcjmf59r672gmqks8spqwz3vn4jrwc272zvx7ncylphsjmip70";doc="0
 altsubsup-62738={run="00yva44w281zlba1c1m1jz0c1j5bwynfxf37k4sw5am7asxzizvs";doc="0nzc10vbf16bk8v60d97nw02ryl7bd5b6dv26g6rjwfpfdic08pn";source="0kdsv62j78ypa6z9098d60rilk9p0n72628cwihzyp8kv1g05049";};
 amiri-65191={run="1r5zic8x2iny7g2qam8wv640hmxdjyb8694zck5xv65mg1aq2ckx";doc="0sfxafi6qvihr70vspyfqqcdzpfjb8i0m43rlfkgnwfwcgschpxc";};
 amiweb2c-guide-56878={doc="0cxwsx49p3c162ysv0ydyxdncfg8ij9sx2x7c4pvzb0yidvad01c";};
+amnestyreport-69439={run="0hfjwmhhs1whc9i7vr8i1nxqdxvh6bqsylq9sd3cvk4jbbqzbgdr";doc="0p0jmg2mdkc5ada3wsnkbm15an20lgfh27g205q2acr08c0d2zwz";source="0plydqkmzdjyjid35az71baym73zhkyj14514p7n1jh3hmpkvbif";};
 amsaddr-64357={run="1mbbs7r8yf7fnaaizccff12k8valncym1plwik07ajj78vhgfy5h";doc="15abzspjcy683xgmplnr5yxl20phr6176i5hcz0lmnk8d9i5fmza";source="1rcid86j4vjmm54bn6yj09kjyz3v6kfaxv27w0ajndrl60fm826q";};
 amscdx-51532={run="0ncbf7ss4iwyjzp6lgzgzn3azy5iasl03565kgsm1pcbgprqibgy";doc="0nfpbma3cawyy7gw6v0w81maz1jgicb2r4cm5gmlipzxwzl747if";source="0jg2qk0a9y15hl4w753yhjff28w9wc2vbmd564lkikvg60b9yiqi";};
 amscls-55378={run="0k3di45cn0g6v5j7ccgl0nys6ni1h17dkhmkz5b5lsz4zzbi05fi";doc="1lb1q967zwgqn21ix4gxbzw8a8649p9hky4ckd61l0bxxil3mhjd";source="0g1i4nj0y32sihf7hnb8jwyh3d3qmff394xgw8v8x5jp8q0rh2bh";};
@@ -114,7 +115,7 @@ anonymouspro-51631={run="1qk10w52722yzlyvk2k733sp1h2vic3rjcswkhx8j21a2g9xgmjh";d
 answers-35032={run="18s0c7hdk5qnj3svni93m9lpj81dhla9v7nsmcgh0jabhwy8n3v2";doc="02pfg28dz10w21ap4pi2csvy32pcvmp0baiciavp354ky4avjbdd";source="0mcczai8da24jvmakc7glr2c56yhq2jv58y1xqv6ny9hg4ph8v61";};
 antanilipsum-55250={run="0xz42icnw36dvkxlh31g8hvy37mrbafgihm7l3ivh1z4hg6gabrh";doc="1rfx3aqdvl4gvcrpsqzjh9dglk34ll6qc1a889yz0np93psnwmkh";source="02qpjks29b4fmma6qm43p3w1k8h28wv1blpwjnnsfq4ii6xrkn5s";};
 antiqua-24266={run="16pb6v297iqx09lb6w6zfcyzhwidd1cln14rqc3fblbmdaggpays";doc="0pwyp1j02zh51crp46rlhbdnwc2m0blcrg0yk43yfc687q3jx91y";};
-antique-spanish-units-68998={doc="16jk9srxf9ya7h80v77f58xdg7dpxhpcs35lv6hwv4g0yas71ab7";};
+antique-spanish-units-69568={doc="09w95jv60qy5fc8b121f69b2bj8gj9cqz77x4rgp68xpnm125y0z";};
 antomega-21933={run="08if5plzpj7g8m1afhq8ci6m4yba4nnsgglngq94ka3ga8czfk6g";doc="1mrr1vqkyic5nyzyxkw7zq67yz4njx9x68cqr3vjd9d77qv85i00";source="0s0dzmb00hqbp71nhl94w0ns1dqj5fmfqw63z789iihqznyxkii0";};
 antt-18651={run="1clzmvpglsirsvm8nsc3m4dkz2va90877gmsrm7jfkhm62xv9mpi";doc="0kpiba7awkrjr2rdgxilni1yi8p4ycmqyy09c1p9j1ld82idsjcm";};
 anufinalexam-26053={doc="1v1k74vxidgxn5zzqz6v9zga468kcf7hwdrnvw44cd318221y396";};
@@ -145,7 +146,7 @@ arabluatex-67201={run="1s66v0qns84vhpwvb9if07b9s7957jmxxd643g1mddg36z6pkqfj";doc
 arabtex-64260={run="0xd2apd35zn1c4narj2gyla154nzd9ghhgc3fkk6y06d8dzgawv3";doc="1zyyk778384mhma5q7ra75fwykk23i63q4jzamq4zard0y7gp4k0";};
 arabxetex-38299={run="15c8nmmv87x87dbjwm1q0acf7pbbh8w9gpiw77fs2i51gab592xy";doc="1ns1y2lf87gspaablh4lm3kj33ggpfp7hcxbdv4vxf8hhfc4pp7d";source="077r71723zlzfjmc471a8hbxs1v2g6j2xpiim3g2klxsj589bxfn";};
 aramaic-serto-30042={run="0j1i5snrgj579zx3cn7z7dhi9rrq0ssl392r2vxykcxalcc8cmg2";doc="025nkiqh91laaj3yx2qkl5z0jcm2w0qwgqm545dd98i5y1a78lfx";};
-arara-68431={run="13cvwhaxr6a8xbi5kdm6s310zy6q6fmfynbj4hkjlh97ij42scl5";doc="0mnanld6pmgnimylksz34fx9gjmcbm4qwfajkisx6h5f3qg5419g";source="1k2grs77d2pqybvnnkk3xy7rxzm1vk03rcfgzas92v4h8r6f50dn";};
+arara-69878={run="1vcvhpb6wd8k9fzyq2pxxyd23p15w6n57rmw09f745l0kg9gcd48";doc="1ln5z77slqmlks5507n5cg5d6pw1vnghapjwagw1bsc8cirw9z3a";source="0109zb2h6r00d9849sdm1k138j2a6z81s4bcap0llz7qq7qs8swd";};
 archaeologie-68476={run="0r2j9n7vbdj7virnmasqi9md81wbc5b53h0xwf4d6azh0isy0505";doc="1xhlp6x1ixqn5xj0k9xz5149jwf9zgp3nlv0ncyjn5nzqkky0jyr";source="13wmghwrc89g8kmsdsqjfcklbindkrc63by2zlgig29rvidzn4lj";};
 archaic-38005={run="030a281kl48ixl4vh378bf0341lrrpvh73ws5pjxyhvs6cvyxp7i";doc="0m64lsmx3sryzdmbsmz7biwmndpn66x9is8apqn7w64y4b1jjcpk";source="1231mqascj96yi4jj11p4zcxgkpzxi3p0zxnjq8x5fpajz386kq5";};
 archivo-57283={run="19hr6vc7x9csjjd3i6mz9z27cyq4pz1qvhmiwbql2xhvmbcd871q";doc="00cs206zp27vpw06wqg7adwj73124zbp8zwfvgqsh9n544npvfmg";};
@@ -153,7 +154,7 @@ arcs-15878={run="0qahab6a041wn6s6isnjn93yrs6zk82g90x5aqpv742b2y8cj5ix";doc="05wg
 arev-15878={run="1nx33blp0nfqfmv2akj7w79qg1rhds40k7b58v5yvyrkx0hpn0hm";doc="1vscwahxzdcb6879pbrxdlfpgapc0bia2fl3jwilrm1has0ffjz3";source="1k524nfr5zb0nmhhq8dfaha4kv9f2ika192scllnn1bywhbpn2x5";};
 argumentation-69023={run="0pnr7z8by62zi1d8qbjmmddlykrkhhisqx4n8lhwbvi3qcrj48gi";doc="0mms537p669wa0v301g51sgigzxdg49rj3kg8i3rva22hm3b7fj1";};
 arimo-68950={run="0idfg33qcggv0cmh1hzpvzz690yikpmi76xpfh19py168my01mnm";doc="1yx6lp3w6s6zz31cd8hvhk4vdg2whzh62cdlhyglnb90a8hjyis4";};
-armtex-64182={run="1b347npswdail6q3lryxi1y8ac13dxvajzz6xzfglgpy2a10ykc7";doc="0v4wfw869d143idxnb19avak8gpsg0n3cyf70xa7zq6hljpq49vy";};
+armtex-69418={run="0cj112jisym4zyrjb1g4y9ryyiaj6smsglmmq8zj9xkr2hfpw46g";doc="1xdl1alazbmma8sddkfl1vcm1qpk0agg1dbkimnbniiw2xdx5swp";};
 around-the-bend-15878={doc="00nc6kx4ylz9g6vmjlgyjvmy1ls86pjblbcpm5z40wh5xl7l184f";};
 arphic-15878={run="04a15kip51zp4bhrbpiv4m5pm587xbia792ckj17gj281ysd4817";doc="1z1z7nnncp4dpb91bajxf3li47k011jn5jbxzgdaspa5mjvw32k8";};
 arphic-ttf-42675={run="1z8fa90baasp8j8539a4kzilah602lik012az7i3pc0dnm4m2w1h";doc="0nfbjnprd71dwp2dxmkmdggfipa36w4qbps82czn506xpzh07lav";};
@@ -175,8 +176,8 @@ asciilist-49060={run="0ni7182xwr3ns1dk8i75kf1cw9wpfagrf1y7w20hk8fpfymx2669";doc=
 ascmac-53411={run="18hw5yyqbr8ji39y39293z7a70czipzw00fzfsqcrhgdlid79sc0";doc="0xzwc7kw7hqpcmisw5wm3n508n4zr4s207pizdhfm2q9mjij0jvr";source="1rd5qmy9miximwv1n96h6djjmd3mdgn4b0955marf2k457bb71d2";};
 askinclude-54725={run="0s1938harm9sgna3cggllpa1g85yl9jv2wy4b4c5v6fksiivxzs1";doc="0gkbk6j2wv05kgfbjd4mqx5k7rc22bmqn47vk7pvr5z60dr4nay5";source="067dpl3v0ipspfm5f2fmcmg5cb6lhqg6n8216id9j1blir1ys3mg";};
 askmaps-56730={run="1r6lk9szs7jm57b4hl9w4ngb9dqcsi6pvp37rcnwnznj5m2daj50";doc="1ryw8yy59mfi13rrwgrfg5y5dy3cafz2a3f8zmq5fbl7zhbylq6p";};
-asmeconf-69228={run="02a0jvq0m73rq2cmmdkcsdbb62ysbx0fjrdrvczh7viml3l0q2z2";doc="0xr99yy8mr4759wfhp4n238v1jx0fggj7y2fsiwmgbqv9s7igi4r";};
-asmejour-68629={run="0svphwvm50pqzr8d4rh3dpsz19y6lmk3dmq4sfyhzm8ph3fh05s6";doc="1qmvcj1m2wv74ywawsz2cs5d4g54zw8caia2675wz4sv6vxc4mjq";};
+asmeconf-69742={run="155l5aw8lg2krmpvhb0vl7y8lf7n1mgd2x4vpbx8dhji5laxdxl8";doc="16dwxl3ay2p1vnqh9z946aypapb2r984p5g861rhxm511wm3h2hk";};
+asmejour-69722={run="0km4df99jkm270frhsf11zwrsv2h0c7sbfkyikfvjvr5pxvsdhga";doc="1br007g5m7wsrrk6xn2b03kfpmlcxzazyijghsnqx1sfn4hxf84l";};
 aspectratio-25243={run="17y22131b9nzzq1skfdyr7cfcq823nqn3ssqrbc3bglggdfibf2p";doc="0mw7v1m9afyk462rjcimvwwikdpj0f4gjw5pbw2g9c60vbjhz61j";};
 assignment-20431={run="1nxgpadadzf3d30ydc9rndwm4v53s4v10a6sbqf6yfqds7ry13vz";doc="1wyyvay22r68hfspaqv0a43s9icg8a3pj8wii3snn90svbsjfajn";};
 assoccnt-38497={run="0im3x8im6kkjmvibh57hkn8nljcfc4mzp0hpimiqn29ys1yrhj98";doc="11p081b0b6mcigqsmvgf6kc9ik2480c74madjli19rw9i5nzf0vf";};
@@ -184,7 +185,7 @@ association-matrix-64845={run="0pa2js62lrqvh9ghhv5gylaz7jxbh6qwkfymr3z99w1isl2ia
 asternote-63838={run="0a3a5jjhsbvi7kdkp98kwa0q8j9chrq5azfg9vbb4m9kfkbafafh";doc="1xz9p6g5bl3qa957icsyjknni7bvglfhvxfvxg83x8bd7hvh7ylh";};
 astro-15878={run="0cjf53gbin9z10g63x2kingsclgnwr6idc4x0m473hf4fvakk34x";doc="07kad1fzv7p6inh7nkrq6b34c1792h4v49rxaaxqyldmf4pwjr84";};
 asyfig-17512={run="0zy0vxxmzg7nzwzw8z84sym5wdfbs7kyf06r6vnn05ga06wwn603";doc="03nby6d7cjczj3irqql5wpxs4fx9z77bb03lys5j1kg63ccq5msp";source="1rzicq0w7byrxqvv8pympxkwq575zqs01s02z205azaqdgrzdhss";};
-asymptote-67300={run="0x9zb9jgxc31xj5a5gb3s2ba7348zni3p1pwwd1lp7ldilq76lca";doc="0hcv17l67pv91fc3nrhx06s7z2g0imrljx0lxi4k6lgnj47dmnhg";};
+asymptote-70583={run="0x9zb9jgxc31xj5a5gb3s2ba7348zni3p1pwwd1lp7ldilq76lca";doc="0hcv17l67pv91fc3nrhx06s7z2g0imrljx0lxi4k6lgnj47dmnhg";};
 asymptote-by-example-zh-cn-15878={doc="0854pbh3rm21rzzbhai7xijzw26qawffj4wd3mrwbva1406106ff";};
 asymptote-faq-zh-cn-15878={doc="0z09f5as68dz66dlj370xfx593bv50ihxx10zxmm9lk27ymr52hb";};
 asymptote-manual-zh-cn-15878={doc="047l3bh8vvk185wkazyfw4dm6893xpa2ksn5vfc57r5rv4x16wmb";};
@@ -194,7 +195,7 @@ atenddvi-56922={run="1lw42kgkviwh5gl0fnc4kp8x578bss6fj4d3jqp3jh0iqj53wwf4";doc="
 atendofenv-62164={run="0r5y45wzyhynl6f1bsk11ha50rhzidjgqynpz0qqx55pwj1lvqg8";doc="15s783gvnj5vd7vhgvzvvxpszsy065x20ag5i3kmhd20rdm8sy6y";source="1j1z580b9v2w8b1zqjan8fi5smnyyagnhak262cx5fi212dzivnl";};
 atkinson-64385={run="1gcvnnj9f7vrf96lb6yyv8036xjd52099h4sbs3lhprbdb8gznrf";doc="1k994x0xmc4kl69qabrwh3x5rwipz77c730834bnv98annnbjrwq";};
 attachfile-42099={run="0akvm9al5rz67b81bsl0k92gjqwxjrd6dwxj9qmwrb9c6pd311n8";doc="169kh9zrf5ykal633zn8n3i41dqbyv7jdrm905a7q47icvd4ar03";source="1b9s69vvclpvdm02gi9x7zv5mf77q68xv7zd784cldns8h1a553l";};
-attachfile2-57959={run="17kxgd9f4q7qwciayq465wm1akrc4a5c3lwswhria540lim2sn8c";doc="1p66kvz1k17hvkkh5n1ygj9fcfygipsdqlpi4fpllc2q04w79y4r";source="0k1j5yiz71zzwpnm37pklmr4h8bavyfjay396pkqvjwrmpxbxfkz";};
+attachfile2-69505={run="0gljjngawrnb2825490clcvj84gx0vlxk3g7i6qxnrafbzx4b8g3";doc="0kcn77x16pa0kchcygviy3if7qqzqx5w6qq3p91b3zz39cxcxn09";source="0rhh83mjva074c3q2rqjc67r6z1any4ffxkd1y0mbhx879j9wn78";};
 atveryend-53108={run="06q5b28q5m9i29yqqx1l1y0vjc20i0n6p2k47z66jf3s6abrqnrj";doc="1nn08cfh3n63xd45rkmzvdmf5580lm7kfd08z9gawgaibh6nii80";source="0fgzxwc6jlijf0mzjh7pm2afd85np1rwy4xziz26s0gi6i5pdmvp";};
 aucklandthesis-51323={run="1zlsa80vbby0jp46jicygq2fn64f1mgppbw6bq4qm9ncsapdz92j";doc="09n2pdviw6xvh9ymka32pyscn16vgcxbij79nq0hxn6b6msxnlq1";};
 augie-61719={run="08m2n7wqqj1pvvrw6q8j514mgr1168brckm1dl44yp78afgm6vra";doc="0ygmvlk1h6n071lq8jnlpdqaxhcxvwrzf1kgvacj78kijaqd0lix";};
@@ -224,7 +225,7 @@ awesomebox-57349={run="0bjnvgqj4g1i6djzzzdjdrnlvli3dm1v2w2mi59s5s8pyc5pag60";doc
 axessibility-57105={run="001z3ra1zgsrvhlnvg9lmvc56s72b3kip71c1cnpl6qzqcc2y6s1";doc="0s77mr42dli8vfc9h6gslq5g103rp5vk94hx9cw3w3shxazib73r";source="1bh92wig3grw2bkkdd3fxwlky7rrfabzis1rwwdzgk3bmmrl9554";};
 axodraw2-58155={run="0dcls4qqm7pl0iyg7mkflqa2rd86wsafshx41xlg62din6fmybwa";doc="1l1kwxd8zq5xxhw7zyig0b8nna4fwr6615h4jjwpywcaqsnms6if";source="00nq53ahf63lazavijry572yii3jix1df9c604xnqpga9z22bbq2";};
 b1encoding-21271={run="104n1g3qnx2dj91zylj5byz7yaai6dw6v0pl9240mgk1h8i0xr2p";doc="0sdr25vv9svm3r6yqyalqza4awr8k26g7fmh8078bbxkddycchkm";source="0mbzrasvppl17965dmkp2f9cbi03539p83989d40kl5p11ih6dgy";};
-babel-69343={run="1hhidzf5gyjvrb0ws3rfs93gsqjpls9riq6ykxzx4ky984hvpg6f";doc="0wd1c774rirgcs9gn2qm7m2bg3xiiwf7wkvimwh7jlrg19xr5ir7";source="1wfz029f2rwv11rbgc9w64k36q2ifq5hzh9jhlpxz3nn884pvv47";};
+babel-69742={run="140xr7w35pgsd7sgj3sg7ar2dpdn2nsqg0idkz30psxp1j6h4k71";doc="0z6798rpjhxnxzh4756flb50m1q5431gl26q94szmav83pipgn61";source="04cqlnixmvnhz22lsn7f5jfpr2r1vhw1m27sda02q3nswhzxvxxw";};
 babel-albanian-57005={run="170mxpwnnsc1g9s7qnlhjcryw79cy72d8c4m8bhr36i5c78my0zg";doc="0x5z4gfi6m9h5gml6wxq3531i1k0sfqrd4hxrzbz68ijzyjnzk5j";source="1w8bassqn35bxyhpw6cg65ya64x1dn9h35p4fxclcjjhmv53xgg8";};
 babel-azerbaijani-44197={run="15siklcjg7wmpzgy059d8r6ivg6cib5by9a4l6n31c9pxncj7xka";doc="0dncpgvjqqa41rk80n6wif8nzdqw7vkxp2056l6sblzxgh87fvz0";source="176r483598gd2dfmfc2qhmknj913n3k6rk58mpfq69af72jq5rjw";};
 babel-basque-30256={run="11a26db60bwfhbx6zj42yrzzvf8nn8a96nq5mpw29xhxlpbhrcp0";doc="04jf1brw3ljipdyxv3d001slc0iggjmq6hkr4b5jsa3z8gcivzvw";source="17mz3bqi50ayia4nb2ikf60vgpnwl3i90gfbaq4692y354yvlnfy";};
@@ -241,11 +242,11 @@ babel-english-44495={run="1nb3c0yikcfhlpfsqgx2c6549ra7wcbcjs614d7gvk5fyh0cds8y";
 babel-esperanto-30265={run="0p11qa0d496xb6hpj6qc2lisr3xk3k1rbnj7b88wcivfjwf5ypmp";doc="0ra2iyai9vyjksfsdcv5b9ifvqmhlc4aikyzf3wq073sh9crhxh7";source="0i1hzj701rii0hbp05h25633vs2cbmqgyc113m3g78i24vh2rkbx";};
 babel-estonian-38064={run="0j7z04mcvjk72cad5l3np0x862nvgh7jxha8mll55cf18k9aj64j";doc="1nmjvvms0zijpc15rs0fkzli3pmidc4v4kzfp9sswvh43622p1b1";source="0x2a379m1b1ll16dr62dg5ai353p362dw9js4n0dn3x2wjbndmzg";};
 babel-finnish-57643={run="1z49ix8w96walkq5p915amii7n73ahzhy4ijxa1b2bb0wzz4b1l7";doc="00aij1bdybgcg69995mjrdddzlr3hqbhmg8q9nq86cd29y1gx029";source="1930zxk4l6k5q4wcbvpvijv4s0gxp2mkxvblczn4gcbar10vfd4x";};
-babel-french-69205={run="17k1cnb37qxsmakb5lfr52arfrs9b4skjq2z3b0j4isvg0gag0pq";doc="1x77mw4wbb6s5y44s8lwmzv83ykjxvayz6gdwvhana6a9na4s4h0";source="0l8lx80qfbdn9q44j39ai0b0m0z4cq1r8npihz009rxvqg9c7xfg";};
+babel-french-70261={run="0pqcsbcndlvjvgzafnbcf01qk4vs2yj01lz18wj54g6bv2wfkpkb";doc="1by7z9c91zisvznivmsw1n5xiqm4373kjzjhvg8jyf6w4ispx0xh";source="042nk3n8pjbinp3i167zdqjf623ln6pnyafn8czyg9xyman90c74";};
 babel-friulan-39861={run="0gfq4gyi720kp45vcbial0yrn9i2jyx1lzh39lci0ga77y01j3mp";doc="0hnj5scfsvisf9k6iwh4awzqccm96apxrbwzlknpxn7x3zv93l0k";source="09bzwmc1jnal4ikxciwas8y342rix0xksd7qcp39nwajyg8njdmc";};
 babel-galician-30270={run="0mk67w9lhp4nfbhrzyb1ngm3rmdknvv8nlqb8601hrglj4hzmrda";doc="0pzpk8d8hhvgsjssy67hpgvjb6sh3lfbn6f5cbpqbhxrgllhpgva";source="1awy39dlr086hc807zc57l7xk6zqbkwrayvzfv8ch1mqnl0d3a6c";};
 babel-georgian-45864={run="1mdsi9mq6ka6ahrgnasik0sxkhq97qa223q5iy4fkfccan30kb07";doc="1iw1hbn5i0c7xhvcmap4hgiaar9rznr76h2mrgya8xj0czppxwv0";};
-babel-german-57978={run="120912c0nk3zdvnrxp7pv78vnywbw68d0xc9iv8x2cwdl2hfwzrj";doc="0nkblrxgckb1kxrxvj02v0mx18f3cmv905xpd56i3lsp7rhi2wjm";source="05nwdy9ly2cdl2aayf573hc8v380avxlw568np9kfvf7nag3p7al";};
+babel-german-69506={run="0k82lr91vdc5kfq7wbhl9sw5sl78mg4kpql81ga048rwf5plhj4b";doc="08ghl1hgndjh6pj2c0j78ypd055hjn0mkqdw29727qmbxs14irwq";source="1l0qqnmajg4v1zkmc3gvyhbpvzcmwbx6lr8j8pbmhh6g9fdnmbli";};
 babel-greek-68532={run="1gii2nbgnixdysn2li0xw5acsvimq2r04rpkyhy16hnz50cm4shz";doc="07l23ycdm79ci76zkfijpdz5mlcgd8qcbq5s4rl041c8d4nnfi5n";source="17n58ldkgsqadbd1agsaf0bwv0pg73ybfql5bkw3ky9k9ck9z24c";};
 babel-hebrew-68016={run="112c7lk1xihspknd146hgp9nbc7wfxz36d3b887f6q0mq6hf03qq";doc="0w80r70w90szg4rlzzj2132yfx8wbhxranq8zk49far863sn658i";source="1srid6v4s1r5w02148wgfzhs9jmmwzj23fhx9zn606rxxkgakajf";};
 babel-hungarian-49701={run="18hc7z7gki6jyglywmljlf37aff3cndszywa32kmprbn2qlfc87k";doc="1imn8zlk18fcs2nsy4ml20xzkhpmv5lzzh28i2c2zv6klm1kmfba";};
@@ -261,7 +262,7 @@ babel-latvian-46681={run="127649mzw9jp35mq1yqpavlvkvcvxvp61sn0yl4nvhn30d0dws68";
 babel-lithuanian-66513={run="1akp69n8i19kyx0x247i4nw66wmlj3d3lkm0pmqz6c4zv34r9fii";doc="1fr3m5b0dcrnrqdb0sm184czgkya8xbx0zbj9wlsnlh5y2pnvyds";source="1dchvyy3zwa18x2dsz4ww9hjnkhca0cg65q85jw09l5cz5v005jy";};
 babel-macedonian-39587={run="11wiv5aw0k77rvqwcgh4xdiwcr67q42rwq0mq5vcpfz2hb0v8i6n";doc="0nsvnmjx8397xb02h2l00nd7ynz11f9qiqrpim2f18r55qmr0hb3";source="08z4ca7kja5kb2azf3whgh0w7fabxs3jcijihm0vnzhb1809napi";};
 babel-malay-43234={run="1h4n9m38s560iw86cr88xzflizkd37nhgyl51xvniyvkz6nkhrxr";doc="0c0jriwwkrll6sknd1c90bhipcjr3inc7vdn6cd2szlbx72ir12a";source="0r1gzyi40yx8ikxkrdqa1hg33vciz1qbvibd8dv3qbia7mm11hqv";};
-babel-norsk-65093={run="0n173mskrn15pz6pnxyysavwc93w5cz57wywdnn2xvb574ka8jhf";doc="0a3ka4hfvjv7w2s90y7rk2vb4jsaqz85sfbnlmkfxlhamr937c0d";source="1d5h7zm7d3d58lmkn3qy8aazx4a93fxmziz68cckrxa7izni7s1f";};
+babel-norsk-69603={run="0v660l9s3nc6h2mc8mlhz6jhvzf85s3qva7nldmnv9fw90f64s10";doc="0i4938n2ax9p78glxrsam2fbqfgsxk87ywhs9kci51ph6n70irds";source="0rz3rvib2rbbmwar474f0n20ywpn6hl50h2w4np0djx2kyn5hlls";};
 babel-occitan-39608={run="0s13mw7w48zq91kcx3pk5rzfg7d9dcjr8n8bvqsk5dvs0k4hk1dk";doc="132kk66ya2j6d7cwzd3p21qvjqm96dvb83ny4yj5q7vjqiflkn0z";source="1slny81jf77g32nxkvbwr429yi51gfpia6d1qllni978ivc9lagx";};
 babel-piedmontese-30282={run="0kcb4h1xsm8qcgqmqpgkqqxii5xvzpa2dvx6l41g3025ybbp558w";doc="0c6ql4g2i43zxx2ffnvg2rwac5hshvwngj7999g371fndhfzs31n";source="1xqfd8s659plyijsc13014zjhd9ndpi82jwgd597lw5d9jzwxf6a";};
 babel-polish-62680={run="1n1cz0jixlyw2zbcgz2ik03s5qarsh4bl12krsqjk2knqk1r456n";doc="1yydj18aiaa90n7g7c6widczi5kpslhcy3l1bxnq1dpx0g8wi94p";source="0wjkcbs2ghwg8x6mp6blihfrygc4ssy7nb1adj4vz3wx63li5j04";};
@@ -269,12 +270,12 @@ babel-portuges-59883={run="0n4sz1mdwrwq5864dca367w15mzln7my995sm57pps1b0r8l21jb"
 babel-romanian-58776={run="0pmjpy2p30299a10njvnpl954kdazir149b3aggcljaq0j4zdnzz";doc="1wgimmy2vwg66kjm0kx0lcx3zvvhdczxc19nnwqfbwchbpfhflyb";source="1qq1j0hb6vp8cdiigc425m6k8wpf7rxzdcgq14p064xlxnmqrbp1";};
 babel-romansh-30286={run="1hh4ashx2fban828gj37y46rm0q7w2j18785in1fwpir3cjcab8b";doc="0w4x7c9vws6k799ilw2w1p5d4qv2z9wb3bkaixb0p4gxmp6khamb";source="08v3db9g43pviw7fi87gcgj5xb5b2f07sll1slcvy94ffnmwlpww";};
 babel-russian-57376={run="02zvg65m1g15a1fbin635gvx2mxw2ljv4srd0wjjfcpdyfg53sl6";doc="1bs2q9xxqyjvpqxr3zfbmk0lkf58jg1ksi5a9mp07vznzplz01i2";source="12ik2dwkih2g0gqpbg83j0kcfwsb5grccx27grgi0wjazk0nicq6";};
-babel-samin-30288={run="07h531h0n7lyi8jhc3v9clcn66nwg8x50k2absmqzlq4adpgdqmc";doc="0rjzia85w9jz8hj6d6kvapcm1y74gq5wxirrlyqqs7ar7i11yp2l";source="1p6br0ki7xpzrs4cpsak9n4mn39fzxja93dxb6dl00rv8f9snj3f";};
-babel-scottish-30289={run="0qkki9838204xy9ac4rm5v72615iz63wclgpw49srwwzf698z3nj";doc="0vag7zmwsmp6pc6xd4p7i55na39nhmmkcg2mlg4xp81hgladi3rq";source="0k3dj8awj55azynbdbray872pigjs8m9l86imdx5hj7dvl6svdjj";};
+babel-samin-69604={run="0sm3288n25a5fvz05h5n39vvbpfp3kzwsw23qc3ijxj68y6xfbyq";doc="15v9732002svqd2s63wxf00wsn390xh683v0kzi7fyw5xnh8s9yv";source="16i3icn2kbkpyhij67mqdnqrx64jcjg75gkyrjgqj8kdg9kysx6q";};
+babel-scottish-69610={run="17xqq3526a7f0xkzdyp8phvf3a39b0pxzsxvxjm84b4yh28yfhyg";doc="07krdfp181jhc7vn3w15qny38vnhhbkkmygdkh0kv6xdycd9096d";source="0i26k9qlpv0qgzkxjs87k9ph91gbkqnm2w2wiyqaai77adp15dlp";};
 babel-serbian-64571={run="18vr5230h0x8hz9zizpsnaj56v6aciaa34p2jb2ykp59r709iwiz";doc="0daab33jd26smid0m38fh1m5yarl1vnc7qi64am6x3rl9zy55a2h";source="0jqj3bjip522w7swsqnpqls1mgrx304xrz91kz4dlqzvqw72f2l7";};
 babel-serbianc-64588={run="0pqy5s7pgbanlgcw9sgbig57mcs4i2yfydlbwz8xrrd6ysc160by";doc="0pw76idmc004nbzb2ax3shv35fzy44fiw7j1jp4cgaw64adr1a5k";source="1b4yc7y7d6asrx7lsmgg7wsdx6wfw1kvfdnc2xls7q6naja8xcws";};
 babel-slovak-30292={run="0724h8hnc4z0l0kkafjczzc69rh6h825wn0srfpy1zmqimybvaff";doc="15v2hdmpbivcdwrm3mlyb3bb3p1298swq7vwxqb9b5ylv8907sd9";source="1k4w34wq8n06ck9z81wa490fy52a1dcgi98pcvdmfggkalwr7ml2";};
-babel-slovenian-57666={run="1zpw0zp4f5wggaqb5wb9r3hjsxx8b4f892z5w7wirazqwgmxzn2j";doc="1lmjr0cs0j48d0l2qflg8hxcaqfbqfxlqsl5fj4g5icpha4nji96";source="1brwg8sr19048wgn0fdbi2y1rn5ls99kij8i71i789qf32hb1jvh";};
+babel-slovenian-69742={run="1zpw0zp4f5wggaqb5wb9r3hjsxx8b4f892z5w7wirazqwgmxzn2j";doc="1lmjr0cs0j48d0l2qflg8hxcaqfbqfxlqsl5fj4g5icpha4nji96";source="1brwg8sr19048wgn0fdbi2y1rn5ls99kij8i71i789qf32hb1jvh";};
 babel-sorbian-60975={run="1g2m2ydy6rlb6bv1p3myfwnyr8kk1l7jpq60m655x8hqk32119fv";doc="010v5sxqjx15nvgsycacx0lwf4py7frqppr897a89wzmj0fv4svd";source="06vyg6dh3yxqmvy02ps4b5kgxlcg1225llc6mqbrnwm54548xwrr";};
 babel-spanish-59367={run="1d38lmr5wiv03w6hzpfzyq2pdl845mcx0db5wcvwm6132vmnh6dp";doc="1wphssp001lg7blrv6wh11ppv5c18pan2kb49s8s94w2jh4jmwy6";source="0vgyqldgji8fraj5c7na6zplip4c6bc41x346rvzjj3l76q6xzvd";};
 babel-swedish-57647={run="0h6p32rjvsqzy8kdhr0f1zi301xnrsvb8l9k7g6gfwv26fpdcnzr";doc="11kshqcqn2187q8h1hc7ifjnf8cz774wdnd9m2ncfvhf52h2l6mj";source="03rp4n9wkqyckman765r8v8j2pg5fg9frbfxsnhq0i2mr0yhbr6v";};
@@ -314,7 +315,7 @@ bbold-17187={run="14dz70qh8kawzlb1h8lrm0a4dpqkn9b03czd51s74z01a3cdmn7z";doc="0pf
 bbold-type1-33143={run="0zvkzp43awkf5vbnrvhibkw185zg7h1rcfqav38z720cls2vgd7w";doc="1dj0vqnhmk8n383y426ma1y89r8y69y1lc2vkg58gaffjfrpxwxs";};
 bboldx-65424={run="0r6ds8wkf1qrv4mank08pzkwz4qk2pfyb6pvqazbf4jn4a46bjcl";doc="1b79xnpss9s1c7lmqlpznk4vvxzgp7dd248ipkq6n4dlpv0s2y4n";};
 bchart-43928={run="0knv4byfxfalyhmsqiq4wjcin0q0hyj9gs7f167cddjyzcg4z23i";doc="0zyiw3f37i3shf8ihhzxagvzwnsdaymbkpcizdm2ryziglahh1jy";};
-bclogo-39364={run="1lnfpy6fvw51cfy7zc1bpqhgca8mcgnhyvh5l1s3712xl91hsvwq";doc="0vf9fvm607fzw3rvc93crxjg9ilm6d7x7q5n1qrfmkzmkm5mjj89";};
+bclogo-69578={run="1rx0z4f23l22vs9lk246kff3cqznp7rzc2k6xn0nwphqxfap6965";doc="0xcq3ypmsjzbkxivak1j48mzmiixxfgf6v5fnwk22z09c5x67j6i";};
 beamer-69316={run="1igp0jcs2w20k94fr84s1af5q8mw0mrvraslaxsxcnxmh65dk9kz";doc="0y07zc3zvawaph7pwk8z9429463i99y9b6lzv9v8cacnhqk48426";};
 beamer-fuberlin-63161={run="0w4asfzmjrzqqc8dsan461fvmkjn21181lij46rhissz273d9vph";doc="0hw0cp32k2gqv9y1ai733sj8f08hdn3pj60qh2ykmcqg818q4clv";};
 beamer-rl-69254={run="0dq7p1zpgv3sdbncric180slinfxk1vdskzvfzsivxzhh2z1adkz";doc="0qq209gc6ssz3kz180dnd6kl2zv3qj9iwq5nzcbd50ypmm483dg9";};
@@ -329,11 +330,11 @@ beamerdarkthemes-55117={run="07zg346brdpckcfr1vnmvqcahjmp87cb2sizvyx4jvxv19qqwpk
 beamerposter-54512={run="19h0zh583chawpzm59xv7243vzkz597df68yy0zmn3r6ha8k0qz7";doc="0xspyywk813ndrd5xps7fxwggkmdl078fmn1cvxfx3cxpnmdf822";};
 beamersubframe-23510={run="06csqdbh272jbh3zpi0f8zblbmi0sp5iiz1r1qa9qc0lw81mdh7m";doc="1g29xay21yr8aap2fzklkg8q3ybz0xmz22xx5cd9md93c8k9kg7l";source="1zb42dsisab4234s79xvva74rlicd1gg4pbh867rxd15ajgy14k5";};
 beamerswitch-64182={run="0hl3c2ircmxp8bywx871w9b7rdblzn28f0mqfr0pdaz3gijbw7ms";doc="00gxw3mdrpdziixnjam8swq1gm01nw5hg6yzs4ijdpxh5d911c49";source="1pnr2hrvz58c5i0848hcdjw85jybz4q7lpb3xwfkmx84wjx99945";};
-beamertheme-arguelles-68659={run="1rg7bp3kvghb8qhsqax73mbh6pahlf16dyiybqbn8jwwapgmy9kb";doc="18f5ww68w9hiq0pkpf0lgmksf5lc2hc2kh0067h9ls3zy91md3xz";};
+beamertheme-arguelles-70209={run="147ldkcd2iyf9xs6g5vcbgdj7dh4iib6d8r2k5mmb8bgcgj0fg9f";doc="0p8bg89v8spv6lzlp4wl29jw2k6jxjbc65sxml8bzvlqba0asq9j";};
 beamertheme-cuerna-42161={run="1r6c3ar29s06b0yfn85wssxccayxn2706y9jxdx2pxsr85ndc4js";doc="0a8mmg184chg2lljv1k7ffydg4sgcjpjbnfjzqcg43cqd01v5dmx";source="1avywir51zks1hygqypsfi6lkrba9ld6x5mkr8lln7b2s4ijnysw";};
 beamertheme-detlevcm-39048={run="149ya5raar4xfkb910lk85pqpm6mrc5n5ghh6350knbmaa6bdwg3";doc="1wfq3wc7b3516s81sbp6md6mx9szbzq5ycqvsr50y3s2wfvvj2lv";};
 beamertheme-epyt-41404={run="07pjgzgkjmr4hdf16m7kx2cf1448253jwgc522akfvvnmx9fi26p";doc="1a987h1cg48bw05zjh79ga23qb37s82dkqhhgvp7gsnwz10pax2j";};
-beamertheme-focus-62551={run="0v151kp4fjglck75sykyms8j2i96syb8bn0y8abg3q8hpsfg222c";doc="0q9bcn6k35gwc8g1rscqfmp8vn1psra5hynhy2pxs9xa8ys43fbp";};
+beamertheme-focus-69742={run="0jsjj0rq8267yj70398bcn4yziyi6kmm406q1wjklydnclj8pi7r";doc="19qn37248i97z2pdxksm4z9a1zdkqi5p3fn8rk52y6v35w2xkgyr";};
 beamertheme-light-49867={run="133mvm4cayp49l8xvh33q0jp4qzhmvd3q2kq2aij3sh6i0bzh5aj";doc="15s2s3b10w0czq513mm2y7qrczm7y91qhghd0zsfvmy129mwfarv";};
 beamertheme-metropolis-43031={run="1pmvcyjn04pgcmvanj369hxqjha0s7lh1z4b6fbhaj2aj32l52r7";doc="195jhmhzr4gbi04zmss5nl0lm9rkg8spynwz5vqlgbci1xc2cw15";source="1smxiqwdvz4bj5rk9cmsqmy3kwa722ab5fhns67jllvzrkzy8zcd";};
 beamertheme-npbt-54512={run="0m1mpavq8p4pswibgfhsbnvg59kn4sxz0m4p2w6zjkmy80s3naq2";doc="15kc24d21d1r34hd07zr65rp1k55fwrxr59h0ayiiwgc9fkjjsd9";};
@@ -346,15 +347,17 @@ beamertheme-simpleplus-64770={run="0ip3imjc2gz4d04k8lx9vpd4an9sqmw3gbb25rmfpyy0q
 beamertheme-tcolorbox-67000={run="06yri18aw8bb6l69njavl3mj38rmiy9aabjyfvy3nam2mc7ivhk0";doc="0v1h8smnlfic4r5j8dlixn03ihxy8ciwgc839zy739908g8wix58";};
 beamertheme-trigon-65985={run="1fdray7kncwsb166awwr4jwnk27jxnp3824yf298pp4ikg7iw6b0";doc="1l8iqyq8ib1v0d4k7bd35hb9lpdmpzplnv0fqb1ngzdn0jfx6c6q";source="1s3da6z3sshhndpaxmi3rh7zphh7g1qn4b3cxbzkifx2xqmz8xvv";};
 beamertheme-upenn-bc-29937={run="09a7da5ghgf5q4qp0djp3pya35zsm45wkiy5srz8p9q8pwg04bdx";doc="1m1bc9mxdwfdm0v2lb0i3pfxgf5as1lpm8a05icrm7bdvii0vsiv";};
-beamerthemeamurmaple-65698={run="1amknxp5vladf2slqjn9a6inkcgicha6fb3c6pc36f92q3n62csk";doc="08y0q7qq78fgghfnbxy2vsbqmqrqdnj5p8y682mc285qpqwncj6f";};
+beamerthemeamurmaple-69742={run="1ghhmr1b5riskhqyr7x8kqjg76kqshmykw4iji95ibhnz2ywj43w";doc="1s4zb71fp3lss2wj72f92w1gzj4wlb1161cp7s1cc76nzacl00ya";};
+beamerthemeconcrete-69528={run="0661r339w4473i6d1dj1wyg2pc6b0539pqpq5zwqq7sk2c1y5dmi";doc="0g8xbg6ln71im7a6yp3hg8xpa1k0wy813zwvyha9yxj2fbqfrys4";};
 beamerthemejltree-21977={run="02ccd8qqyjkvqqyxr94p1gc6qjryl83vpa72wcm5ywr8gmxci0pi";};
 beamerthemelalic-58777={run="10wv3820avgviic0mcxn38yycyxqfvmf7qhb5ybz1x84jrw8k9hm";doc="1wz984il1z42ck69xn6rnxww3x4xx127syyx37wdy246i1ji75vw";};
 beamerthemenirma-20765={run="0ivhbhybc99hacnrfw1fb9412f6614an1955rglkcbwxwkji6nyn";doc="04155wbw6ix7an8sblw4a8q9hbn7vzwffady4vc23vzccc2i2f4a";};
 beamerthemenord-56180={run="1kb3485dv7kcj04bkgz8cv15kv7jmdjy0jcilvi5zc1vn690cyba";doc="0ls5ivdcgayz9pqm6j1wd5f45s063kfknzxf594rdipz1jnmvj4q";};
 bearwear-54826={run="1xaq0bmv8jv1zss6lwx2ccx8inrmyw1r9bjv3sbqfhp2x4d5xjrl";doc="0vm9lm6389jnmcgzx0ffmay2bw4d0h1wfmsfbj3x1s1vrfl62r8j";source="0dzmlcrc4izb63862dcafshzsaglq5m88z3cxmwivmwpikhh0gb5";};
-beaulivre-68376={run="1iph69jij9ryms2njy2mi0vd81cfb3rq3y78was44lbdw3fdxmhz";doc="0ksjl6rn4s6s301bfac22y91q60mljn96vh90bbgbbbjxs50060r";};
+beaulivre-70050={run="1246j8vf4s1sa718g5y1rqigkh06j589f5sgkg3qvascsbacv9n4";doc="15dzb9slhisin5mm020jvaj02dz4hw2frm9zywv74lyx31akra50";};
 beautybook-68438={run="1s0snxw87d8f1chj6ghbl2x8byq11piw5s95v5pla9k60559qnvh";doc="1ddqd3k2mdj0psqlbgkjpdy0ayjcxh54bqgih71lwsw73hc6gd6i";};
-beebe-69012={run="009g1m0f5d5vpajjvkhfcjqb98srz5jd5m47fa18y10nfbwrbwl5";};
+beautynote-70166={run="1xg2y2x69ghz8dy5mr1wqpdbjv7hsg2801ln9yr17zd7wgcip5lz";doc="13b2bblzg7bfyxv7agc31ijgaifjxn1hx2jhfg9gzg8d2qk5h1pm";};
+beebe-70064={run="1w6n6112mq82gz8mmyfjs1wgqfpy1dln2s49r8dmxzqjakws1486";};
 begingreek-63255={run="0dl4ap6r3xdwi0kypp6mq171jp4hl9hrjlhfrw9i6pd31qh2bp85";doc="1lmrl3iqgspi6hd86mwssr2bjqg59dykgwl4kzjfrbqa1637df9s";source="0nyd2kqsmkz6rvsfcymbbl2kvs220rk2fi2wajv46w0px81bxch7";};
 begriff-15878={run="1hl6jb8gg3acsj6rs1z0w5v0i6ivvas87hij4n64jdwgf1lf02ja";doc="0bd8gwf3ifqkjpr8wnrp0xx78169b8yc1ppdnyg9v6n4l1b0x0s9";};
 beilstein-56193={run="1xh2955zfnss2n9g8rsa0m1kad4b4xpsdrjj891kj97hhgd9hpdf";doc="0k78mwjqqib6hx7c6lcxkzrbg3gfw64a68fj32g0wpvdyj406ssf";source="120gcmpz53l2pzagh40nsji9g86fq4xvahzhwqqw7p01r03wc0cl";};
@@ -375,9 +378,9 @@ bgteubner-54080={run="0a8zhnl1nxzg5r525sn8sz44crjdm5fmy09glp8cjj7nic5xj32g";doc=
 bguq-27401={run="1spl6qnixrb6vcdgaaxx0fk740kkxv7y73xamlkprdnrsmqrswwm";doc="10za9hbwigcbxyjwyy5cd760hqabyyj3g74w355akhfpyd20m55v";source="1vaw8sa12c94ia6fknnpbj7xxng3q3lj3h61akm590riffklw2kv";};
 bhcexam-64093={run="13r8z9wj4v07zjfv7fxy4kq26jflywbvj8p61g7r6rgj5v4pqay4";doc="0gvf2hr60iyymwq8alkyyya4vilsczqc5zhg3j7ydsz9hpvbkdp7";};
 bib-fr-15878={run="0csd9a4j3hvgyczgnfnhp8n49j4baym7nw8sck38m86r3kn8n7ar";doc="1inpqvmf6c5zb091q5fxg0r2w87kacvg1yy1lyai7wq3ll0axvp7";};
-bib2gls-68534={run="0n0wdd4gihv6p004bb4knif4k5mg93hvg2kfhy6326ijdc61nnnh";doc="1abirvm0ifp4f8h28abidbr8wds3mjr8fbml97gaj2qv5qm87nby";source="09f2pfzirhjc5xf0waga3ga9l81cj0nzj45ghi5r68blb3r4d33i";};
+bib2gls-69635={run="0aakzv28qlygmn39xs1r432m1yx6rpwgqdpfw4yi8b3c1gyr1592";doc="0v1q2xx6i5fpfcbqqy905n6mab55f6nicgfkkc89dgyqb1pdfgds";source="0apw4dajid7cpgnnsa8c96370mrra73vm0pzb1kk9h49d3zcb2g1";};
 bibarts-67407={run="0yqpdj8fnh5lafc9amvmnam50sgxhwsaw6fr49k2bzxcz5bx1qv6";doc="0di7fqxkaddpq3iqxf9nplz0vy4qzspala5hyh6l8zc9wdcjr0db";source="07664c9cgf85k2c096r2aahkl1ddawhcdqgf7wfrr806qi67mbz1";};
-bibcop-69395={run="1nvmpqv6krjm2g5kfs7fyc7hqywkiwp4l18rw9llyic9kddpvn3y";doc="0hblnmbssn5lz1vsr0ncx6c5i75f7vlsi7wxn7gg7sxfcr0bqbrh";source="1s1zslgccaws2wqlxrr0yd9wijir4a40qx8469lq92349m3rwnzp";};
+bibcop-69467={run="0scvb7s5j4if7vviyvgr3sqkbksq7k62n4sri837jnri2d27cdhr";doc="15jszlsxckl9mfzhvjghipkirv9fa2fa81am8hla0g5b5k0b3kwh";source="0y87681xvr8a3m3l7a16qaxir2s3afm4lhy5rw9yvn3bdr96nfrr";};
 biber-68188={doc="1kwhxk6kzfjg62ygsyvxqj12pgw4bippxq7qdlgi2961n61jaj32";source="12jl5fyb802yrfj0fdajksrli1yyi2apf5kckgh6k0cri265bmxa";};
 biber-ms-66478={doc="0h0hxs4a7r8sr5w573d6m002zdpzgs0gghwbasdi9j2hfb2wv6b4";source="1mw39ra48y7gqhh8860544wvzxpciaka5c38873vvnbdnng44mh7";};
 bibexport-50677={run="1zbsilzaz68zvmbf2xw7jqw4l66clcplz3l46ggxw95gns8mgqlg";doc="17a5w095vkpp7j54h8m7f74l7vycsqbv6zzschdb3dd34scq1s5w";source="1pqs7j4xdhx3pqsc8i0wqnz9jkyg891dzl7g3cv19a6wv82k0xjv";};
@@ -394,7 +397,7 @@ biblatex-bath-63401={run="1v5hbvaxcqc8ccg3ydpzj5979nf7aqm6r6ax82b9v27sf9zmr2cw";
 biblatex-bookinarticle-40323={run="1gas58hi5ycchbpamm0z9mn5jc2hbry682i4wmba242wm55digyq";doc="1s39gixpryiqf44riq5bk3hnp6nc8pdqbdylh594k9xk3770p77z";};
 biblatex-bookinother-54015={run="1vb9m88z3cck9gi8d41lsv4ckqli4wjdgwkklfds2z189vbncc4k";doc="0zzmlsikzv5zxvd5xh12fzynmkl0bzzvl2s2y2r4kfn6s08xncja";};
 biblatex-bwl-26556={run="1ii8jacddlj15sm45g5rnk7yqbsd7i8c6a1pxy34vpb6bgsfb69m";doc="11cspr9i8q1da0x23bplsy88nfmn1x87zvrqdc28gbk4ybi6fc4s";};
-biblatex-caspervector-64866={run="04s0dghqdj0x4q4yc3q5pima7qpbjf615amzwc22yd0pfw8h5hrc";doc="197ksjjv5nwil7faxd6ahfsxv5r1jii2j4z66qbifsnwxg92fhmj";};
+biblatex-caspervector-70496={run="0y7ad07hs9ywkaz4i7m9vkka9c16sm6fgzjjlpk7hx7j2dvlifrj";doc="01cdlyq8an235qrvqazni1rgxw6dsgpnc8xnj4mwdlb5ajwcnphk";};
 biblatex-cheatsheet-44685={doc="0y2ry2q1kvpy8dqglqdfq3rc849hmbni0k78wr1xnjbpd102l3k9";};
 biblatex-chem-57904={run="0kv44yng5wff1xkgw8nya64jizfcf1ipxrgnf46pd1dak5vlsiq0";doc="0amx09qlk78kw6iam8b83xx0kw12k5p7q6wn267imr2rsibbs3l7";};
 biblatex-chicago-65037={run="1ik86b38bc59qyj68fajcbskbmlz6vsg6nzwv6pm1fxnmhnnfd0l";doc="19sy3fi70kmvqknbfa0wxvn563l4s3m59f3jx75n29vxrdljscp4";};
@@ -404,7 +407,7 @@ biblatex-dw-66579={run="1kjvqx9yqqzhwin4zwkp9qcgh6nk7bad5nlhx63mkwp37izwlcrc";do
 biblatex-enc-44627={run="0kvya1xzxpcmvwgacb726jqzmgr944y9ljai45f0gdkw855ylmb8";doc="0mmc5sd1jjnj42aa2q1g1zaps1hla6yayl769i4bya6i1w9r99yf";};
 biblatex-ext-66641={run="15fq6q1rxx8ca8p8g84m21v0l5pnibzsvlrw7abl8v3zs9bbncqv";doc="1pl04di1qmkf03i3l7ccszf1xab5bjpg6vjrfxj4n5gaw71k3jmz";};
 biblatex-fiwi-45876={run="16grb6hqmrhvzryijg6p4q4vf47a0lxa8bw59avlib5j7mqpg0wc";doc="10skq20bmpqymbgxs47z8ac0q5nckyph7s4xwqmpfd7pi2sksb4a";};
-biblatex-gb7714-2015-68240={run="17ri6cmqp478z15bsbnfmmshfbp25ng070irk7i1qwig4fgvmlnc";doc="0k5shfxnw0kdbplw5fsdf3bybd98dgsshmwqrnpllklhnc30zhbf";};
+biblatex-gb7714-2015-69775={run="12rpbsjr66wjxi8ncng5wir59j7mmc2j905ikgi3p81ld11401r1";doc="1j3phn1l9xi4xawd964w2828i2jwapn7qc53a0r4lrkw5r830vsd";};
 biblatex-german-legal-66461={run="05wf0z91b7yhw73xz70nfznic6x4iy0ir5savldd1ai67iv6h569";doc="04xrqwnsai24xh1apw4vl5gqhjd06vri33cxp0z96sp806s6hb4z";};
 biblatex-gost-66935={run="0d7fcvjv4100ws9p14qvp4dvv5wzp6xc8qhaqrxnrzkrzd6w7x81";doc="1zzxb2hqi4gc42jcf21pw79h56yxwq0c0wv7z45lq0m6vc45lzic";};
 biblatex-historian-19787={run="14p27qb8rdx479pj7zdvl00ir1zg8f0bzp107zfwv61ypq8zrvbl";doc="0hcghqxbjah4lyjzlrkixs6iqbkjx4d8r3hv16lgnddkndbgq663";};
@@ -430,7 +433,7 @@ biblatex-opcit-booktitle-48983={run="1xciw0zxkp2034lccvhr6irkr333s0qqqacxqx20v51
 biblatex-oxref-68950={run="0c5ijpv8r0wwk8pnd8q0zg3xmkfdn1dkqncdzqjzqql8vm0hh8x7";doc="054anh0z6z0yvxxqd4gsy2sk8yqwvsxgclazgpmqvfhr7xvjjl1r";source="083wrmqr3j28756z4f235kjyq739hnkg0qnjnxs9vdw3hzwijry1";};
 biblatex-philosophy-64414={run="1fdqbfia3k8zldsyy7bf6rhkscf97v84m5c0xjnk0s0xb134d7hc";doc="11pxds41wzdsfgikcyx84d98pp3sz5625kzim7bxp58vn5rkrd95";source="0fhp5lh4g7m07cfpr03ca0vrn12lks8lsq3w4vbvkhh2in5w7z43";};
 biblatex-phys-55643={run="1vj1rrhzh7ncvi2dap2cjk88vdj0dmlpakjiz953rvb7szx0h40r";doc="0z3y7gmcmp2p5g25jha6kwkd7ma4pzgqybxra4402p6aid823fws";};
-biblatex-publist-68476={run="15fwzc0splkfpvhrnpwh2yvfb9yy1zrmf5wvzg7knafqjpw8i05p";doc="0rv17kq27n9npagpv2x2fdww1rzvqvcvxq22yv2yqwcy3np1gmfk";};
+biblatex-publist-70515={run="0l6kwaqkj94ycmk2nb9vq61cv471ibrifhpv099x9qg4cx8g68n8";doc="18x8yxillm7kjpwy7v16lwy1fz3m50ypwr756an83bv9ppay4ymm";};
 biblatex-readbbl-61549={run="0byz95nahaassfx1gpl80p4vgc2bhs9wfw9w7xxwan6b1kkkz9p2";doc="1cp3r5j8b7zrl0k7zzhyjcrw9nypmr6gd7mn1q5whn7n1dn5js5c";};
 biblatex-realauthor-45865={run="1xv65ic8ywf18fdb246sr8pvq60hv4wmg7ris1glr5104g5yhg7p";doc="06nvybm142cd1shgpcabddbrfyvzcc3yxk9zyq9hr3rfhzcqf05q";};
 biblatex-sbl-63639={run="0947b4lszjbhs0k2p6a31mzc4bci9pvh4awq6k6d4qzvpr51yz9g";doc="06rqhkxpmlql5hvw31yx0mwkdjwnrh9jk4xazqq9bxilgx4y7q85";};
@@ -480,7 +483,7 @@ biochemistry-colors-54512={run="0d4bbm1p3j6q28ckkl7ilkywrjx6iqvmx0qb27rpldw3jabf
 biocon-15878={run="0g6r8rh12pbnbhddcv6sz9h8wnv31q6jqs2xbj5fjj7vcb46z694";doc="15wd9arkdxsh8aral3zgl83627yl4f0wdx2r8b6xb5ivvrbwaslj";};
 biolett-bst-66115={run="1ap5arz0s65bqqfllzwxisp3wa327kgivw1jh1gkc4wljq7v4jq1";doc="03hj647j6b7y43djqvb28rkjixpr0y7i02420piskp3cg90hn5dj";};
 bitelist-25779={run="1vbz2c27jjc94i23s1dzl9j0zf0n2935sgxgc5hq3bpaz1qxvm7h";doc="19p9f9bzn60nf5163rdlw166zpk7qlfwhnc51bpkppb0w4rni2ai";source="0r3lccpampra8dardrr7sb0swbx72aasaras43q4nx4jv6z2561k";};
-bithesis-68634={run="1s0hd2af4ab6y8bvkxjhiagj8d52z9knamrj71smfw8b2x3419rb";doc="19zjrhqa8wn6vicaa8yrr4pf4fblacjn69rw4r9ia9r7v7fbvxp3";source="0w74w2g8ccvbsj1apv86aa3fr7ald4vkj9k8gvqdc76yzdfj1vvv";};
+bithesis-70136={run="1jj98myh3x52w6r7wyv605r97jybid91yyx5ix5p9iycrqhq61x8";doc="09c7jsipdrl7jv6jx55s750la39gwdj8fcprphvbxaf2bx16600w";source="043bw2harjb5cddrkd7rcw66xg7lmiyhwpwdmh8i7jnjh0nf2b64";};
 bitpattern-39073={run="1j01vh1jy41714k3hms4nkk8j5c5d4nizgrm5syi20n8pcn3l9pi";doc="0a9120z9rsq8pqi33iv7f4j79gimjgxfqf5jhnrnmz0hgqdpl2mi";source="16bjmxm11kh0ww6ymk82qs947zgavm100nsfnjl60hxwjl3yknzn";};
 bitset-53837={run="0ynyw8fyb5cidlz00f42cf21gakm2ir9ilddaaz12s7qq99lhj65";doc="135dcx0b51br6lf9dxd66jq2xa21bpb1mi4y4kk5z6ngsd1imdag";source="0yds3rhgq52sxvwn5kc32iizapbs5g21cw6avbppiip0s5x0b538";};
 bitter-67598={run="0x3xnz8fvhwhixabr05rmxw8j0l03v2j5ylj7jq4gni519n3g60q";doc="1x8zzl2890c44jqk69ncsgj7xhchysbwkf66nnw0dsk2qfahc6xx";};
@@ -500,7 +503,7 @@ bmstu-65897={run="1x89sc4grkk3b9mhi4y1gkxm9pcbhg54j8v11mq2bx4nyl0bgrll";doc="009
 bmstu-iu8-61937={run="0xvxli6na2nc03qwn4x68sq4jdr2x830yvfb507j1990pni1y01v";doc="0kimc29vl79ib5xmrlb1ipfslq2y4i3hnabxcaisrb54z0y3rp1p";};
 bnumexpr-59244={run="06achk9z1waxr6ndcfplnvhvd7k4z1l9mw9plh92qpj1dn48ncbj";doc="1abhn0hyps7azg4fipnyxihhzmk5fdnklb4gxxsjvnnr1grka38y";source="0arhv81y8993498qkrnlnsa8fiw88s389q6ybvndrmf85js5nwlb";};
 bodegraph-68785={run="11y62cwwjkxpr7xnpc20aw37lwcs83177w2gnxz7f3lr8192b28z";doc="1k428jlknm973v64wj1ljw470q3939kxns7xkxcfn5r3hjnqhmry";};
-bodeplot-69397={run="1s7jccfsd86db9zfrbqi7890jfsznsa0fyj2ks0s99d8hbbzp2pz";doc="193cah3bgy8blxgjaa6gvg62yyv4ccf0zwbiway96xk617c4r9cf";source="1bg8svs2ylxxdd4if9z09lvpwypvp3s8mr8568spdq8k2vcg6lag";};
+bodeplot-69742={run="0fril19wxykb3mqq26mzmbqhdsh81qfnprkx7dyd4d2s3alf8fm9";doc="0czy2qkj6ss5m5flz3bj6j9b5k5gaxgz64xaq93al446sjr5cymq";source="1r1glsjb3kpi95lprz3d8vqlbhx6l22nf7arczqh169rz3v8y5xb";};
 bohr-62977={run="1fbrgfp1xnxa5cf5yqk9735wp0qwkjkpf8sv8gdjg6a06mpixn6m";doc="1jbmck8ld3rg0nw5rs9lbnr0i34gi2sxncri2fmcdpl8pp3xnw55";};
 boisik-15878={run="0xqr3sgmzklqsvd26f2800ifs674lf0a4kgr44na2l0lf5msww2c";doc="0l0hi4n5cfm1zdkr68c6ks3gxkda5bgwlnf62y7x96q5jkscdyxg";};
 boites-32235={run="1176j9ikh36s0cgvsflayik1xp0zycbp8m9hg0c7jmzkm5haqw41";doc="0visqy0qg18sa4mxszdl601yy0ilfgglv872dhzy8bnqqs8x7zzp";source="1zirqghkw8kk8fa3xahd27dh60phxg3blp98iavh6bdhj0rm7iar";};
@@ -563,7 +566,7 @@ bxjaholiday-60636={run="0qxc2s07rqnyi0a8a050h2qri4kaqfcwc26c2dz0x8ypg18s6nhq";do
 bxjalipsum-67620={run="11gg3r67rs7j3f4by1irz3sfnwlz88i8w3kzf0bdxb52sfrh57hr";doc="0wxw7dlm8rwgz321cdfpx14vcx3hf2skg61ngr5bbmcmc389apk3";};
 bxjaprnind-59641={run="16rdpkqlsx301zvrr2nyykpjqf0wj1xhqqk72a5jajyjpcqsvki4";doc="1x3wh73nga2l8f7l24pyabpz0b8g2k6hkszwl5dijrppicl875ym";};
 bxjatoucs-52509={run="19n1wr7i1mfrabmrsgnmvk5wgdqhbc9lfpz3s5qhnsqsz69rzi00";doc="0icd5zj0cabkvwjgncsjmqwx79d2rqsm7ddp54ahczfl6mfg7fwj";};
-bxjscls-67657={run="1gwrylkxz9h0szcy4jvsmyyix6640ncqiflsm9z82nxvm0zglasv";doc="1qy0as1kff7vlwq2vq9zl3sb8wy590ryfh4ax040d52wvz7x3619";source="0gpkk2h4ak6ivdjfjdjq52qj6vn5n49c292i3icx43r0gifhwns0";};
+bxjscls-69637={run="1dzcq6mx0agsflkbpmhna8yz8r0qkzvxsav2l8syk5v0dfr7jzih";doc="16v08rhy39bf4p8r23va2xsfyvjwqzjf0v711hbg558nyxgdjaxv";source="101larbrpv6lgynlj28amqv7wlk0m5ydzkbwq7cxgcqqnmrlwviv";};
 bxnewfont-44173={run="0mc8akfajlyl6vfh620h8rcyfv02gdg4ycqx18lhb9vfivi3j4py";doc="18na6f8nqlagfszk9miy5bbx2bylgspck3pgglbkqb9cgkdf4qq7";};
 bxorigcapt-64072={run="12bc2pv884wi9z97ih1sm5r8x67vrlqhd19f6m1naz9rs7jcdxxv";doc="13gp6632pn7kvl12rpbz99n5imcsnwf43xx4iq9wq6xj4qnlf7cw";};
 bxpapersize-63174={run="01gv55dv9676m7rkfrmz31aql5xb69drl1wvwh7k1s3xrywik35j";doc="1xsg1nvr7i1smrg94110pz4my0vvi1imqkhksc9daki52iv1jyx2";};
@@ -647,7 +650,7 @@ charissil-64998={run="05ysp0l1v2azbr1gjjkh8mh1qmd7rq2znns60p2ic7dsfvfr9kpp";doc=
 charter-15878={run="1z9145ri2g732bs4fb8i74gc0ymak33k7sclahln2bhdpxi286fm";doc="0gm9pwanxvzv0zmxq6pf54ygxaxvg56kh1ym6f5ij9akwvhf6nwb";};
 chbibref-17120={run="01gyfwsfrjy7fs160zxvzhr517wwbsgh381hk626kvf87wssz2nv";doc="0h5vlzfw5lfg7chqfmbisqydmjn513rjrvw8pax4xlm75c0p6drv";};
 cheatsheet-45069={run="1cqv885i4crrramly68wamd9fcx0lj96vzys39aplars3pjv0glz";doc="1ykadvnpwkyj701xwfpnlnqr313d33r0yigmsscshgr1dd52jjf0";source="01hd52i399c9nsk68ymr8hmllxq1vl6v01fvs1gpm90pgvgdc9gy";};
-checkcites-67201={run="137biq2rvvws5k7l5knzzhkgr1bnw562bkkps8xv2d57fnm2m86v";doc="0zi9ffn3f0kzf3iqf2940f9zvmz2s15pgka3wngy9bzw8f0snxbg";};
+checkcites-70398={run="1yysb7nhlkk260jsbslcqjxax78q3lwjkqrh8spfz2sjp97256m3";doc="10hy8ib9y7adld85w62nyi6im15frvi3ym9alk7bpqrm7853wazh";};
 checkend-51475={run="1g4kx83kkpdd4fbd70b29hv82gbf19avd04b3bcxy8d0r7zyyyad";doc="1hzllxf7pnp7kg2623i5yhl2xq6phifc4jc57f2zfgfvvw0hqihy";};
 checklistings-38300={run="0hs740rpar4jckxc2p8wwd8x39v8bghgc2jjrbca9m5zbr0prvpg";doc="1riyj6x57jb28sjswnnfyqf80jnkvyr2cvckav29j9ni8l970qp5";source="1ghb0pv2zmznyg12zqgljwd2pc5lbajgdnzr6zf2rrmvlrsgr38w";};
 chem-journal-15878={run="01s4sbmc4g96cmnbhx9a6bqjskkrr6saq91cly2pfy5gr256vmnq";};
@@ -658,6 +661,7 @@ chemcono-17119={run="08cch2gr35wclm1l0j05lfbjskqw43jzz3aj4wi1dhpm31b855q4";doc="
 chemexec-21632={run="0yj6sygdzs247fpajjl8gk3c6yhk52npbjahgngchqmblhmhlkc0";doc="0pqksv69yk7vf622x2p2ah735p0a93agfnfyg8hm2jadwjmhzikj";};
 chemfig-69227={run="06jp9cd9x404pz3fss77vhal0d3rlnwx1q6bnz6l5zcr7dg3n19q";doc="0g85rqfahdvb6xp56qgh8b9la2xjhsi1cv3q85dabxgbsqwq4m0i";};
 chemformula-61719={run="0q0vrz2agxw3g7cy5clya5hfsdv8s8qf18szhway3inzg5mfr895";doc="0h1nbyhj463zxj4d15cx88h9pwb2wxpq3r9dsbzdi63fb1mnr4bz";};
+chemformula-ru-70357={run="05b8rv1prv5fmwp0hssbr127vgxm02vm5d7s2x61yq0bl018x9jq";doc="1ia37z188y0i8dnah2fzg5pzgwd1an16zzmdfjaq4d1kf7qbsjjv";};
 chemgreek-53437={run="0di3w4yqnjs49im28g2a2qk31d6cqhrbwpq1jcxykk8am7g2sn1c";doc="065mwb7ah9h4qwqp36n0sdlkjv435bwrljz3yzsgym7a4xqvhfwh";};
 chemmacros-62655={run="1phw4kgp7h5mcrr66vb4kazzi3kw6abmxqhybn3amd4ishgbzd8q";doc="1rz1a7nc2c0cf78axch98zsaxah84hzr7h8rpvz3zz1vfa4bmk5s";};
 chemnum-57490={run="05z6i3cva4cq45z280ls3y5hrqk9m3a1v5yq51rdj1ilk3yh1a4g";doc="0g0q6a845xgpfwkhi31dg6w2rrza8cgxj925rm5m6mg026rd7v03";};
@@ -677,6 +681,7 @@ chhaya-61719={run="13x83hzrqriwcsc1q1yl93jpmgy83fq44jq890q2vfqjl22afmbm";doc="03
 chicago-15878={run="0mwrphf2g7v5yc0qij76dkzalgm3fhcm8zs7akgaypyk98cvxw8k";};
 chicago-annote-15878={run="1fz95s0d48qb1pzmwy7cdnccvadwsqj3pyvx02bkip5l0mg54kgg";doc="1lwrlb5axxqzrj1azyw6bsy9f3lq2n5acwnzmx8z7aw5sj19ls07";};
 chicagoa-52567={run="1za4fqlpirbr3qs894abnlwmrhsqbahniyyimy1dxal0cp61cfil";};
+chicagolinks-70566={run="1c7jy4z231rz2b2p76kp3v127vxdkv110ah06cn59mcwyjx8ncad";doc="0za32nk2wgj3x2vyx762wkq5yscbbjydi6iwdmx2gqybpcr10b7b";};
 chickenize-57325={run="08qxlyxghdzsbrqk9zhj6wr2ffbzd3nq7299z3q7s39z9azrr1z7";doc="1k4pqd8paq4zqygws1ihpsklxrmsxlqvi3y60zvaghq0r3iiqqqs";source="1j4sgh23sai4qzhpxibz2zl4a82nfiq7asgcz42ab5qdlz5vnh8n";};
 chifoot-57312={run="05p6x3l0vpzgxqw4pkl5b8hhkfg4jqv83435z8db140gsk2sz2p0";doc="02x1z9dbnzvbvwfyqk8axkqhzchd1dfjdqsf4xkajxvjc13dhcwy";};
 childdoc-49543={run="0vvf825w9081qcibwgyjdm57rs6083axqnr3lz9g8hd5s1h26s78";doc="0hh51g80vlr0malbfqbfb0m5nln84bvnqa2d847khncxh0azlr2f";source="1gaisc49xfpk37nrnm33wazihv61b61yhi40wwyblmhvwimmx6qy";};
@@ -688,7 +693,7 @@ chklref-52649={run="1045jsyhp39js54xmyr1wxh7qp3z5hzasyqi33nvrc4g7rb9126j";doc="0
 chktex-64797={run="0ij96wg5j3grphp71f3casa8nlkfia7hz34njvi007pzy00kgvr8";doc="0ln3in6f2j0bbk1n2lha7s6mv31cqjchbg1ck0cq10aabhvx9fz9";};
 chletter-20060={run="01gvs00kjr313a09y65hif15vqvxidi6ri11ypsbnsc0man6dhwd";doc="0mc8nlph24bh90l4x5bfc9dyldd4jjn46y08xgf194482dz2q8gy";source="03s40qmlbnlslcv8na5vwz67fad1chagal1pjq6lk0glhn5211dq";};
 chngcntr-47577={run="1a61sdmfbbryqd2gj87bm4qsva0xjmf9mkxhxnjixpqmr4gixq8r";doc="1rrkyvwbgfxxrnsdjybjqxqg15xyzr4s7qydx1ky2k7d2yxhiy41";};
-chordbars-49569={run="0n7ycv6wkkd4nr7d6w55375c0ym1pinqjyxx92dwllkmi5w2wr1w";doc="1hg3kzyyw3ra6qqf9fh2rvv5rn2jaglzjvf10hwkv84a21hlfvq9";};
+chordbars-70402={run="1l8m2yxqrscsnwp6cgny978l4qz4gg08bicfs386rgsfyz43qhcv";doc="1y0zr4hxcqbdm1r6yrsnkx2gsbcjagacpp119gg98h9y80y5ipp5";};
 chordbox-51000={run="09sghgyq6mv3w0m1vlcf82vjbdkb00gpiqr6iwlimpqjrv09bp3l";doc="1fykwcz8d0ja7f5px60qf7pfzfcw447mrfpbq8awymr1ilwgmz05";};
 chronology-67973={run="0jbczd5y58a6bjlk812ncb1ckcsq1d7j8ghmivx4pr5pfcx5lsqk";doc="0g5r3by58srdydm0gps4ybsmihayir3qf2lra569ywgxy06hqpn4";};
 chronosys-26700={run="0ii3r31dii1252bg0xfh4818az1snrzfx7h4ibr6rd5q3a83yisx";doc="1c120hcadb7xpkspmixhfrdlcmhl79jrf1wc0vsjqbq3wxjq1p55";};
@@ -701,9 +706,9 @@ circ-62977={run="1m6siikjprch991sqbchbrmhvh2knjh3895w48wjp9par050cbgr";doc="1zmy
 circledsteps-67889={run="0ybaz7hl9v8g0kx8v7j8llgxvvhaj40afk5fi9733iv8m0w3mz47";doc="03426fkcxcjszpm852qv1y4kb581gdkk109cyfy7bjyx8ihrxq0g";};
 circledtext-63166={run="0c4gas41ddivlam1hsfzxlyqzicclfd91arpa0s8kinlnz27bnq5";doc="0ia4m8ss2idvzhgp88cbaybrzld0cg5gijl7nzd9fc5xsmybdjsi";};
 circuit-macros-69263={run="07cbpxyawy44ds1vy6kpp9cxgv2mlh78i1wakzw30q0bj4rksw7b";doc="183785rmygpffw0gb7mddjvswy3dbgp5yimd5ckxn193429il7p3";};
-circuitikz-69077={run="0hvm3zv86839bl98zcpakgx86za8ij46iayr7ajlr7dxncfyisk1";doc="1mxgja72j4fc0a6w7g9317asbgfj67l98fxfv1jz3a02cahyw1z8";};
+circuitikz-69757={run="0k28z89mdl40q9q4x07p9m9w744yfbc3ylpj5khbz7w9l8s232p5";doc="03fsxa3q22mhwzdz5sh06l5glhvfql9304c9pm7kzwah6xryj9r4";};
 circularglyphs-68476={run="0d8hr1lns0973y61qmmz1hg9pc99j3w4x3iaqi0f0jlyzxc5j1m8";doc="12s7fkjlbbiica7svrha74zh3va390ay87bajjs0lgx6smqfx85n";};
-citation-style-language-68454={run="0kgq9yrwrzj5kv91wsiq050rx78a8q5879bq8lcskzv1wqkhi18l";doc="0s0c46516ljx0csllvvw84vxipwnhssyvkzyrrkiwzmxka9pw3zf";};
+citation-style-language-70583={run="0baaznwvbml9ymvibfdmzwcyaf0rjkfa5zp0nyr7fr9zc7gvdig7";doc="1lpjflagpgbilcljcwwnbkq0xw56vjblnnlznsaprdiqivlfqhbm";};
 cite-36428={run="07nw7axvgir19ayi3zy0b2sp8bb9pq1nl36x0wv3nrqjilvgrwr5";doc="0pg5fc41iwqc1y9m9b47nh48fqp5dpnjbx14ny7ch9irxblg5d31";};
 citeall-45975={run="05nb6pywcrhqi1c9xfzkv46j2fq9y1lqmqawi75v3z56h2v6c136";doc="1p54cr0khq72z396r3vl0p9qqn2k82pmx4pjaszlzhni5v54hbdr";};
 citeref-47407={run="05bxlkylmilyzvbl99nsw16saqjsqb4bcaa68qkz8m59wz1ji4rj";doc="064c9zg2rhnym0wy2kxj0617mwb3mxpc1rr13lqpwb1f1qhghm6f";};
@@ -711,7 +716,7 @@ cje-68656={run="0v0pya3nyj3phrgy0vrh9psbgawp823li0gvhw84pp9jg0lss6vc";doc="0w5lr
 cjhebrew-43444={run="0my3jp6pi5lbbhn24jn07gx95laq2p7fqk88pwic7wwyji097vxw";doc="09ldma056ipsamrd558z24k63p187ziw2bh8qgy4na20pp22wj0g";};
 cjk-60865={run="0qdvr0sq8v0vi1vy8aybhrk7fnvlyxz9x9m63npa3nfcffypdv0n";doc="0liy56875383hjdada5bc1ni6w6ikmzkf5k8qg91l0hbkxxnqfiz";source="02bnfl8hydbb8wn2d54nrd6v4p9yrr4f6hkinyil5jnfkq9mryyc";};
 cjk-gs-integrate-59705={run="0w396gn4s8jlaz95cc3dzh9xsjiywsxjf87qwaniyaihssssl4pn";doc="0a4m7r52czkxp7j2zd389f5illw18dngdj3rkd8b9qlp9c4bq907";source="1h788aq405c44alpj85lyhmlnvdslc21n6h89vx5dggdfypbq18r";};
-cjk-ko-67252={run="0kzah0dkaqrm5l9n4792sgmiwv5l42518q8hsxcq4big90va6j8c";doc="1pgz1x55knbhf5xqajcjqfkj1a0bfl1v4dvvgdlfac7s0z46pxwk";};
+cjk-ko-70332={run="15rl516bdcr5b60564f5sz3ab77hvx7yb1m56fkz5ap17j02d2ra";doc="03kirb8bdh693r6r421psa580an6hwdmf8lkvascgf2iwd6rayn9";};
 cjkpunct-41119={run="0wvqmf60gjm5m7fcc2qqz14lfzxcrqci3lrla96hxkqnqraiyb84";doc="1ja16xaqfg5158155flfvayr39k7grij13r1r89g59va53mpsgrk";source="1pn85n7n4fp2p5pq3w66kb5zlnjk1bdz7fz4xsa6z31d5216j39b";};
 cjkutils-60833={run="0wl33vh7pcrbyvxy6bfcjfv0xnawp4gb76cmq2304n9mp2w8dg2h";doc="1kkb1lkni0d7mb5hcnwkpwbyz7y9w5iy0z6rgm38lnkkm2wjhf7b";};
 cjs-rcs-article-69006={run="0lg0d2igpd1dbm2cd9irrb5702mvpscqf12bmxn68y778wym6gnr";doc="1vvm9nzrw9gidvzg1ab7riyxs98nxwm50kd0ih2zls8q6xxzy6bf";source="06wqrj29gf376mxpknzb6j7aqnnx9b9gacdq1bgd462spz7p8za0";};
@@ -723,7 +728,8 @@ cleanthesis-51472={run="0wsib3c130m19r4z3ghipvgqvmfhi1cx86670ad3ama3rdmc3zpn";do
 clearsans-64400={run="0wd2lhl02svzxl099zfflqk94nhs84qb3b7wzb8adh2b8z9489c3";doc="1nrlrx6chgk1ysxcpvd1hb1qpagl3n7x9h0gzfjf0431bc3fxc83";};
 clefval-55985={run="1wdxl93z0svgg6h7vdhzqp74clcldxqh95yimqb190cbm6v5ll05";doc="1d1pw87hszspsfrl5c14q3c2iy1fkbh77dzldhajx71iqjfza634";source="1x7dvg6q0hy6pg05qpi2qaxw7y7a2dcfa4khddvbfcngp1dirrzi";};
 cleveref-61719={run="1d4qp3jl9mgv4afgdgcns5rr7agn5smiwqkmrasqchj4hqzwxhwd";doc="10wy2zndm51fy3d80cqnwsjxyczqjjffx61ir6ky3nkmiikiyypn";source="1qyyvn226dj4yq25cf5f7yzc3gx9qmxmnlnjijydgmmwam71s3xl";};
-cleveref-usedon-66915={run="0j2i293c13knmpv82g2b85a1y9003dxvizk073617qf312jb8bpa";doc="0kprww9mxfr45y311zky7gfhxvg5lrkxfg0mdkfgway0j2ljyw9x";source="093ydvc1mzkz0dds9fl107bj5mghdfjwb9kcfx8hw9ss9yg6bv9y";};
+cleveref-forward-70181={run="1wphc3dm1kbn9fw5svsxggplg9bf22qfjcf7k08r39fwk6s50pfk";doc="1548hwvsbwyhb9sx2xj4kqali3sfb6imr5c9dp9n4lvw8p395ksy";};
+cleveref-usedon-70496={run="0j2i293c13knmpv82g2b85a1y9003dxvizk073617qf312jb8bpa";doc="0kprww9mxfr45y311zky7gfhxvg5lrkxfg0mdkfgway0j2ljyw9x";source="093ydvc1mzkz0dds9fl107bj5mghdfjwb9kcfx8hw9ss9yg6bv9y";};
 clicks-64602={run="15v0yjrsnf4hqvmriffdq7x24cxk9l54a5s967nl4pqn1iavsqd7";doc="1givgqvm29fa1kvj556hfda3z1hhfzba2b7jfj46f8zsifi17s3q";source="18dpkhvhc2i7m2r5q0sp5m0zhzn1706zlknybcv3zxsnpcs1rar9";};
 clipboard-47747={run="1i9facsdigll3rzl8xv1i85cqyvlc54xhia69cv5cv0gly00p1dl";doc="1b6wvadihwglj0653bn8fnnq18whx2hymigvyknw00fyn3xjgvgk";};
 clistmap-61811={run="0xl0310x3wrk9lhwhbqnzi3gsvmbvk5smd4wq50wj691vmag9ivh";doc="116n1w0zfc6ad3nnq2wvjibpl4ywcfbgffax43vml5aixkpdlcq7";source="1cr6hbvln8mvrs6g8831153l62b4h1k5731s2d0xdm46wwmq4m3q";};
@@ -756,15 +762,15 @@ cmsd-18787={run="0zykh9s50cgsxsv2958qyvwck5lw9s2a6fdx7yb14b95wkryqssd";doc="1mp1
 cmsrb-54706={run="077f185vcrklhnchlw694113fpgaxy8paxms37rp2br8mbhczy00";doc="13nd3vhxim71kcl2n02fcrm5vwakkrn0f5nfw8irl9i9r9bgy6ll";};
 cmtiup-39728={run="16wg8nw15f1pfcrm49xnna6finbvl0jr0wyapqg9i2jh39c1gizw";doc="0rr69cqg5pblx5h8xyw1zkap1fj3pmdznycplxx0kd4wqzbdd47z";};
 cmupint-54735={run="0y3pf2mbhxhn67skzy89850fhn17xr0b0ghcxn1ayq19qr66yrj7";doc="0v180y0j3md4iyx54fvjr7g00mavmkw6b99bsm07nncfq0anajms";};
-cnbwp-32550={run="1xn9s2scd7x714c178p3p8bmv5bjdqzpbyz75nmn50d8irjg1zk6";doc="0cs6jp079acnjj0292xba0gjkykva6grviwnm36vhxy93732cls8";};
+cnbwp-69931={run="02anv8g5zcsvxi3yqf5jl8061awszqh3gv7br7gjg4c9c8brj8y3";doc="035zm4hk84vn98fgxji8vrmpq7qih5771j6l54ij7ff4gxdal0nq";};
 cnltx-55265={run="09czgnx6jqn856sr0hg5j9azaxc4i22yp1dz95nn4s331khl3z2a";doc="1ly2cl3srazzynhikk6myzsfhffz3k63ddw2x9sbnvw6j7syd545";};
 cns-45677={run="1b9hs7svh6zm22vw5zv6nqmdnmw453xv15gl5bgm4n3f1pz757wv";doc="0zdjgg2njgcf35jvbhkfgiv3b9cccf7ds8d50ga3v1ia9i4h9xq3";};
 cntformats-34668={run="0mx4rgzk4av74s906andw0h9ga5zl2c3ip0vi4q9349yj643k2q1";doc="0015ynn7mw1y8v14qckbqkvb1fn5xqaz7rcs6gid1n19f1qsbh6f";};
 cntperchap-37572={run="0g7211nljimm9a5fvry89ch4nf49xhad9ka7prdmlpj87h9ygas4";doc="1fmq2r8ssvp99ykil3aak8w301qvh4nldsph389m7qar2pviy1sk";};
-cochineal-68904={run="1b93yb0p4mzazs1m68bmv89ynlxikji27p91sxaf1d4r732nfrlj";doc="1qzzc9l27ymsyws1im8siada65xw411rbvkqaxps7qr7zwbrxn4k";};
+cochineal-70537={run="09bhgl11ps6zw62y0jvh2pfddxcgdc92scv9irpxf2nvjlyy3wg4";doc="1lg1z4nlw3w5hw1ivhbbk44qg42m8s9470d64pgzgbgfsalyx4fp";};
 codeanatomy-65648={run="0pi4w20k4qcm3sbzpd2dsdpq6r0nblgjm2s3m2gclpmsybzmflp2";doc="1z9w6llgjnlmiwkz6ghv1cf2ilrfvj0r1k2c6kilsz4jcc457y3z";source="1vag4qaphfw0xrdl7b082iwj4z89x77sh62y05xs0f2bib9qlcn7";};
 codebox-61771={run="0s0145rdpqbbagc2klx2w5h6mlx4ns0qlllws31qbvy6byh65ngk";doc="1pj5qnzfa7725v6cixkznrs7yybc2v0ik9q2pxa4d25rpfxap524";};
-codedescribe-69343={run="0swllicbxmaswi1v5ks25rd8bv8isibbkkzsi78ibcbc52rg2vqm";doc="0adbg2kfhyd2l19dhbab0fa49spgqk44bga9wgnn8n8g7da6zvmx";};
+codedescribe-69944={run="06pvhd7v4p58hdi9x0ipmwjy84x70c65phvcbayfr0d5n0hrjvi9";doc="1ybanfz0zrbflrwdpzrpxk61g2j4zwimfvjlkkh2xrjvsmb95x6r";};
 codedoc-17630={run="1zz70vp8ssblnacrqdsq9nwvf1lw69mlk9d94cfjc818szcgi9v6";doc="1f3i3vw1cmdvgp05xckr748kzbairhvdpfvr844y7wnmxzr4rfzg";};
 codehigh-65787={run="0nls47d5md0b46xi1nxydzwf79xrqh6ijj06h5n5mb4sw7w5qylp";doc="08d7vyn1s4gqhnbz7f935n96ay9hk7k41w8msg8j9s937qh7fb64";};
 codepage-51502={run="0kxf5zr3mhn5pd8pzmzslgnngk8gms27ax6cqn1z0n35zvh0p17h";doc="1sd01q8lzrzgk9v1dyhf4m7a4fspjll3w8wwkbzp7gc693xg3lm6";source="0b38lcswx2x1jl6ydmvs6yr1y0kiv6gdicnbrx5qs8xhwd93bcag";};
@@ -783,12 +789,12 @@ coloredbelts-68747={run="1y4ds4n6b6avqaqbnj5yh369bnp1f0w4mhnzkjvibhipis7n11sg";d
 colorframed-64551={run="1kys1kcq1j3c4d8mv22fgdw5l2c9ar3il8cc65w0lx4avbldw28r";doc="1xg0gbyh0ay38yk00in78q7mysnmlr4maxzv5lw3s88l0adykr8h";};
 colorinfo-15878={run="0ip7py03xrsrn40cgkl4dnj3q9g0f9fbw71c9rsg9j7vl82fdn46";doc="1185m34382n9rk6w81ppb414vl77kikkhwvn78aahlyli4il51l8";};
 coloring-41042={run="1ld6gknb8a59pkz50wlil5p11mnv6ss0zsjbajbw63dg0zlwaglb";doc="18y8apbkh7yqzxrzpraqhd76k93xnvgq5rana8lq4xh5z3f7skjq";};
-colorist-68440={run="0wk7gllr4qmvmb3fsf9basi922ss6wvbnx44yxs0wladnzkyfdhg";doc="1kpv619xbwd23lm6i4dy90plnn6yh288alyz771qfzhmj1a7bvy8";};
+colorist-70101={run="1j4fpnxpi081ar0732dqgg2lyn7dic1lfs7nxhfg1xbhkxnv2ms4";doc="1zrx4vlp4w4k58rrnpvi7m4l0llwmml844yvj26wzap7l7zj2pn5";};
 colorprofiles-49086={run="05nf7y425f8ric57c3afq7ymc7ndxcdahbx9n32jnaz9j3qq2ypl";doc="152vrbm5km4ymj5h41x8cjyypj06g4xq3vyvmgakai9qz270dvyz";};
 colorsep-13293={run="0nf72pf2bjn8pcps45sn5dcjf1dkrww9wlpp1xbzl1h9i68p3h3h";};
 colorspace-50585={run="17pahq2wh9vqwpkaqkzc3ypcz90i9qpmw7867qz4k8a87sp7wgji";doc="0g766c50w7xpfvqpp6lxjc6lm2cyr8yl28g7n357j1d1lxgnv0x7";};
 colortab-22155={run="0hiq8wgqiwxnw1gsrymshkldspdnizcci56ihn22h0hcwz76hgzv";doc="1cj84k7cl6cww25yy2lynjrbicn0qy4y09rh6dx2zq19972fggi3";};
-colortbl-64015={run="1zcxbq0sjmlixjg5vpp8s21acfnxwmip6xsr127jqdhl27mfn1f6";doc="0myxh9h2riwnbg8n1r5690w7rpvfry5n7brrnarpwrhc42hykcz5";source="1hwks6bpk5x9z4vqj63fwg2lzj7h8mgy3kk6601vynv5ck0af1gn";};
+colortbl-70034={run="1dv46n3r700khx38d9xxx0i4fj07zgvf5lkhr6jfihw9sjxda4jy";doc="1gmbqf9mignz5qprv94qh9rn4ywqx0kpwi1aagqp4h1wdvqr0h7d";source="01w0n3hl5m7gymcvf0w5ph2vla2k9b8z7y9k9xfnchc1xn4kid4k";};
 colorwav-67012={run="1dlh3ipf98nq5m34rj7naafnw9hhrbljij721mw57rbhbpcyazgr";doc="05f91rmf1kpdkfl0dgjag5cq5xvcflihfi9xj5y49nh65mq01w99";source="0rxiqp1q49l1dlr2npbb45jygp487zhhzjx850f68bw5vq8wz9j9";};
 colorweb-31490={run="1rz9ay86z5bf8m4j5w5prvvk1nmlaakj3g0qfsrl0cdqk7hwsfsf";doc="0vzcwhbq1a6pczvrv21z0q3y1akfwm45fclf0857c8jvpikkzb1m";source="1z0h3l9gdxsg6lbw7j6nqhafxq8b8smcn4nmq7ywdzryp8b6fbw2";};
 colourchange-21741={run="0y8r7789xaj16cdmsz4q0zyq9l09ihgzzgk4alnggsyx1ny45ybv";doc="0zj9b8xcnjlvadams6a2z3pvnzjci5l10kran8mg79ncvzq386cj";};
@@ -810,32 +816,32 @@ compare-54265={run="0isr7gmskv55cr4f1fa7s478v6fh65q9ijxkmbpxj0448g9817w4";};
 competences-47573={run="0hijar81j2jpwk5j2hrgaxb1fnbk6qh2qb0qbbmhsqrdrfcl6xdl";doc="0ywq9f2a1fb584kpvzwg8b16qc7bpcn3dzsscs6ndqbgcy0zc2yf";source="01dccp2wqdy52kp79n099v9lh1vfambg0b63amq37ac68pwn3qp9";};
 complexity-45322={run="062xi5wlg3axhrzc9a6nj068z7nskb7qwwk2wr0fzvsflqa9cp0i";doc="0yzdyn9j1jk0nsw0l4r06cr4brhz1f3lfxc918zalx6h9wnkxi2b";};
 components-63184={doc="04yg9hq0wcyi1ag9y9m2fnf5h3n4fdykiwljgpw0kyc73bfyhq1m";};
-comprehensive-69282={doc="0f1w8bxqapw3l0nywdd36lj0y10miqvzzwchxs2swgjlyxjzbspj";};
+comprehensive-69619={doc="0cmw36bn6pjb6ajlrg2yz5imkrxihzzdkh56xwdk2abwzaqn09q6";};
 computational-complexity-44847={run="10as8msnqa06dp3hp945m42rgbaqsja8z4sc79x7n77z6qzmznvl";doc="0dq56zzw1xzzpm1rdjkqwhr6v93xiv00c1g2rmlmfj5dnbzng7wq";source="02mapvsz8j1979gy7pmwkdr6wq55v0al71ffl9bi2bl7f5nsz0vc";};
 concepts-29020={run="18vjncdrbp7m7m08dnfmk6sgv79jx83bc4yvvcqb0j9mn9niy1f0";doc="1bq82dgsl6gqnrs88dzg07dn4rmc4y5by8122zqaqpdrpjxhnvax";};
 concmath-17219={run="0m98kyji3v4gg1a30phmn7fwssnnbdvyjxvfpl36lnljnicpg28l";doc="1392wq35zidk71vxybrwjq79p2gf4spcv0qqb07dsgapbhr2g0aw";source="1zn35da4jlplqg7fb5ibzaah2yh1cwjqvzmx45jxg0hnsc7xmlfd";};
 concmath-fonts-17218={run="061kfzds7clbxyq62ilxwcrdkfghi2lx8afik7vi9gg0hysbki7y";doc="1x6wb92k4da01sv8b35p3bly9hj46hh8k9wr22m7lj3rxnndnpcq";};
-concmath-otf-69005={run="1ja0j5i4alkw45z0gyw61vk3hx2lkrhcgfnmy8l2nm4kibif04k8";doc="0ynz1mzciljg3jiz6wpdwda8xrpnimdfpbrf00pm4m786cdz1hnc";};
+concmath-otf-70337={run="0qb0j7rxb0h8ym7iflmdhlnncbjkck2b13h2zwanik593npgjgg6";doc="0sysisasrln5lx9783bp0aa8vq5b3crlr40lpnm4hgvcwrr0007p";};
 concprog-18791={run="08yr8yk9gp35d0nvh54ysgv61s062vj446fyb87n8jipfm49mj2x";doc="197p2bdn1rqmxva56sagvb1z7kc8gwxr9zf612r6g8yb07xg5riq";};
 concrete-57963={run="06m8d6z5z3dpj9i0nvp50g6pn9j0m4n0n1j3w94nml137qghawyg";doc="06z5hh9ksr9jpkfchyh2zp8b827klb4v282ipizrm1dvlv2r1603";};
 conditext-55387={run="0g6clck3v75yvg7gv42w24zv18vi5jcg1q9k663cxldix77lkgbc";doc="1qc7w7xfpxarb82hf66f3i63v7ypdybqwg5g3j8qswj1a39cy1wm";};
 confproc-29349={run="1s4mv0g2x5mfxnkp0i29wa3ncbx9fa05qqf734fjppdzsgic079i";doc="021kbis3c73gnavrjhqa34fsbq5c94lmjym2d4ny2wpk9xagh994";source="0dpghxh9mq2sr7aqgcj15h6b4xh7x5hvdzph6606izpff8ac7h8c";};
 constants-15878={run="11naj0z8ppb6h07r7cff0lcmr8zgc29kp3x7spi60zi6cq2546gk";doc="1wgvq0x1kjgd0bs0024fkh7wis9aw9qryd7y0igrbgdgc722pjnp";source="01skagh044v62vw12kmibgd6y42z5r1glrsvi9y0h76vs52jz7hr";};
 conteq-37868={run="1h7b98qw9hl73gh4zidy59z4rly9afnvmah75jgvh0k1v1hm09df";doc="0kgdggc8gpd1h7kdbh3ala5kz8rs56bgmwgv9wvxsqx4sn19q2fy";source="1y0g7sj696d6qhcw8vrpxr8gwik54slp7lijbxz64ksqbw5xjqv8";};
-context-69131={run="1r8gkrrrq1ps1cp058m1jv8922zsx3hw6c5vsmxpbwckrp5sirwh";doc="1nh2yf7vb800cnnmzic5hmy4w5kxd38y1py1xjg7madphb9zdc60";tlpkg="0vcs8ffry2jpxad68sk0mnc8p0mnxifbimsj227lkn3d5cxkrp9j";};
+context-69665={run="1r8gkrrrq1ps1cp058m1jv8922zsx3hw6c5vsmxpbwckrp5sirwh";doc="1nh2yf7vb800cnnmzic5hmy4w5kxd38y1py1xjg7madphb9zdc60";};
 context-calendar-examples-66947={run="0asc49mn24ql4fk73089viy3s6wff865xk8af7h67ffsb5qjnld8";doc="0wza057wz18yf2zl1j77hddzimwnraw5wg1579ncksywvhnmx3rp";};
 context-collating-marks-68696={run="12vqvbp7ns9r5nc7p7nrlsll3jp3hc4xi9wjyjq8lrmd8ly3v26w";doc="0nawd3x4rl73s4mhpq2wd1sqa8i6k2n0a39sqcaf21zx99mpiqp0";};
 context-cyrillicnumbers-47085={run="1gk4ncbfzilj98s7k7s43k6vb3il511k434aj34fsvqh5x9x4aw2";doc="0f7r9qgfc8h92jprjqa24q4vpz4bqrrns3glhmwh3qmk1f2gyw73";};
 context-filter-62070={run="1vj8kimqsmn9xhkh22pywqbn4sal5gxpxjbcbv8xmxcrby02gsfn";doc="1f6phdqxgvdg9c6f37m654ha6i226d88i81147h9x6sh01i7qd0b";};
 context-gnuplot-47085={run="1pahxhbliz6fsj2va5pgwcs55b3rhsmfnjb9qjxkz3gqzrzdkfdp";doc="0l0qp9c0yvdrf8398wyac98ghrdc86lxgzr5l327gmgnk8572gxn";};
-context-handlecsv-69186={run="17sn4nq1fn3868xwnlg71fqx8cjfq92dsiar091635cl72f4fra7";doc="05svrhaz23sb11pp6kk7lchcykx5b9b9399368k7pyq7a1p4w2sk";};
+context-handlecsv-70074={run="17sn4nq1fn3868xwnlg71fqx8cjfq92dsiar091635cl72f4fra7";doc="1fgi9sg2392syill14msv8hib1k349pcvbldiq1a8g72giqkf5w8";};
 context-legacy-69173={run="0j18agzfhwwzbdnqavphvrp0lpji2bv21qh28kcvzl269mgjgbc2";doc="17wsgg5zfx0s96wm2l9zca060z6p3mj88hcrw07vy44imxv3gyiy";};
 context-letter-60787={run="0bnd56v120h3c235n9v2h6mzvmd6fy1g837gjim5fkkqd7jyzp2q";doc="0l4vgrpha5kx2990kdk4pdfljznlczlji0fxqsxs292yb3yy5a4m";};
 context-mathsets-47085={run="11r30c6lpcvkx7awgm70cb5darl90fvpnf37hj2mb7h69d281hv6";doc="16qckniq5v52m36m05bpnqypfz2jn4430n5x5zazx54j8makv827";};
 context-notes-zh-cn-66725={doc="0pdizaybvxvzh19451x90mj81ql98q91f6cj8mfxwxa0mci1b9p4";};
 context-pocketdiary-66953={run="1pm8zaypfm575ryq0jzpnwf5p9zjg7hzb6lnc636cf16y97a1vkw";doc="1yy38pa4m7bqfb0r1wxj1g3zdmwzgdil35g2lw63ww15y03k7w0j";};
 context-simpleslides-67070={run="0dgmix9w576vxmffbm4digcp00vvdgmdxmxwjzrrkici4rq31w79";doc="17djxi04rhg61fjcmsz4yjp7mnc7g1fbfb9mmkcf7gk8dwzrvigf";};
-context-squares-68545={run="0x0f2f3mwqyxaw49yjkyql8hk2mck2kq2mm842vpl9sgmrgjb8d7";doc="1d8z2l8r29c5yklfjm60bvdm8lchp17w60qr38gjdpx334bshyy7";};
+context-squares-70141={run="0l56p7zf7f9ywb66v6cppnqh4k6zlsvwj37vxcwshwjwl9z3cfmj";doc="1qxcy1qhk77p63h97qad3jvvfcmsgjm6b81cn10aakvl3sniy7g3";};
 context-sudoku-67289={run="0fnzvzpn2d24hdi5g18f1mpaqkyrcf8kvkprqdz1jvlkqld82kd7";doc="0dqzxcljl1mn7qs7hk2pahvc5791m4c911j5dv85fwaladhjv9xb";};
 context-texlive-66924={run="1fg95ihx4wbm38j4rm4p6vdaiib6n7lcf43m444r4nb5flbrbv8q";};
 context-transliterator-61127={run="137wjy0whfbwp95h4grypwxld7kxlx9h6l3bkd5bpfnqhg70j05d";doc="1snnrk0h6pwg83qzsv6mk3n5fmirk6rxjih43rcs290amkx8i49z";};
@@ -845,6 +851,7 @@ context-visualcounter-47085={run="0n20r8315py52ghivwy9kh7g7yj4ixakmkn97phw1fxgz2
 continue-49449={run="0vwz01gmbid6b2aj32qnz1xrlk9h0nicjv9ix1rvqdad20m1i4wa";doc="1mzsj70v9f6srmc8ja62pph9j67p644hl54fx6nyahvr2h9vdik2";source="1q835904qai3r49yi8hrfxkh4bjf6913qs5fd2dv7myp1w93j5ir";};
 contour-18950={run="0xb8a0y3jazrq5gxfnxjl7qkyaqjnmyhjshgngqcsrw2sq4j4li5";doc="03rxkl9vhhqa7gpigar8w2h78qvx4k68chhf0881ws3bm6lg15sy";source="17sfl4npipzgc7jwqx740nny7fnd8bv8k4vav9ds765ky1xcs521";};
 contracard-67201={run="1qvpz8ybjc7yx8zx4kzcpjchvxrb949rqb3905rhl61shpqv22hm";doc="1jg8kgp9wvxksjz9kxyh3qqxhgjmalkpj8y004qvrxna2r2idj50";source="1v6ffg84czajnl6p6a1j8khnfmzssjkhbndz5ajkww64iiw060i4";};
+contract-69759={run="1z0rp9xb9xpxjrdq2ww4ggai4lvfag28s3cmsk1c5w2kb5jqdjc2";doc="1piy96g4vplzqrsvczhm7fp4wmq7wb15l4hplqlgnis3k9a4aj6j";source="1dg8zqbbpdaawwa1dh3vbh1q0qlgid6ib13cbynan4sxf4h8f386";};
 conv-xkv-43558={run="13clac7dhg2p69ccv2yjzdh64yjx02y0fb0imx9lsd0knnb1j3aa";doc="12dln1r2qyadxr4cy3xbwn18s5y8yxgxid22wpb2i42n5qc8j1fy";source="02hz64vbcy7vg363vb86vydaa29g5cgji2mfpn640dgmqq0s91vb";};
 convbkmk-49252={run="1hb4ahbgihnzqmcszxlq67bsiqprrxa9vf25q8yz31j70sg7s18r";doc="1h1iqcc1rjcvwg9p7xg5zq6sj5bi68s2cknsbwr6dbkx25ihwi4i";};
 cooking-15878={run="053wbmf3xrhwjxp77f1myfvz3f474kpk626p8gds939yx50jqzvs";doc="1db5wxixparr81vanwkvg097ll58fqpp3qkh0wz7mbqjkansp6km";source="1gka18njp7ipa0jp1527mhig43hhvz5bcdpvs95c61cvjrmwcdm3";};
@@ -880,16 +887,16 @@ cprotectinside-63833={run="021581zdl2c4j6crp9cnrnvxpwdx0jhhx5ab2ax7016hzsxff8la"
 cqubeamer-54512={run="1r63ahd6m6ll0phqaxc02hnbrf3f6xjdghrhn7wdqxnf8n9k34ff";doc="0rgfjw69is9i06blv1dr2ki6d8lgfwg3w57r3620r7yffj7z9hpy";};
 cquthesis-55643={run="143w42d3xw31dy8wdpqx01r8q9vs2an1ixnyil8n0q0af29j49bs";doc="1b7k2s3ils5s5yb3fdd6h0is494pss7s76awfn3dj6yxiaps5zvn";source="05gypg8zsdpfhp11rk7nii2vdw4rand5lw6ijkm23lbq2b5nwvwj";};
 crbox-29803={run="0ni16ldwni2gyzlivd5ii2fdq15h6np4mv73raa5g76i5rw42sbb";doc="1yk96bajna3ihvyhx482jrwiccbmqdr9852w11x00xkcvvc6azfp";};
-create-theorem-67712={run="05daimn1g2v9i0qxp46nq23m7a9hsrpsqfgx6f3z4c6jbcwnmqj7";doc="0bsff7sa7d12a7lbv3aqhkj6mia3gln8zvpc291d9kvb3fnnzy9p";};
+create-theorem-70180={run="0lrky9yb0y301w5m2qc67x8adrkd6p9l5wwjamwdslb59cy8qn05";doc="0p3xkfxnvmn4l6fwp1nmzix5vvqjwbskpdncd19s1grymhyxay2x";};
 creationboites-68087={run="1mmj4xavpaqrim5w3cqs0nkrfvg23578nas2ndnfvy3zgjywwxxw";doc="0xsr0nvs95awhdjbhfd9baj7cchf3fx83f4cv5r6sb0l4lcwg14p";};
-crefthe-68813={run="044lg08mg5d91l25la181x4l449mgx8cv47k4nww9yivhzqv6nlh";doc="1i891qa4lyhzhpnsfz1hswn3fh7i1045qiysynnkcbfai45f6y1v";};
+crefthe-70165={run="1kwl01gnfr8xwk2zra14faqq4in4wijc03g5sdvgh2c7a9j3zm00";doc="02ddnb2399bps1qm8m63laixbrx6jmjnw7x2ivnjwlm2jg7zvhj1";};
 crimson-64559={run="1k6ff9fb5isv2mfm7zvnqziw1rlbs8qmqrlbixq33nrab24kb1zi";doc="1fmfghyxbihw6ggf4x2scx2g7464bwqy0yql38m4r0vmmjmzi34s";};
 crimsonpro-64565={run="16jz8i749gk7s87h2b78nz6cclmgvfn35kh3869rsf299y4dbkx2";doc="1y8qngb1v6paqr643kh8sdipnp57lkbqwbk62r8nrxps2cvw06g0";};
 crop-55424={run="1hnf65q6mg5fq75l4g81zvp4qqdb092zb41m6nl3zw2cvp8gal23";doc="1w6ql3bnghj633ar1zwbv580py4f1fmdm4vk7pa3q7vpnrwrgh5n";source="15fxivp8d1xww6j5nbfkmsb0b2c2ldmkdy3ikw3m6jjk269nwy4h";};
 crossrefenum-66014={run="04zx8gwgzc76fsq6kmqy08gak2fqjl5h7d0d80lr5yvmq6aj5a4f";doc="1lsymlry86jnzjifjsnwz0swmksbv9hfdvjhy2i476i2ayvpdv7k";};
 crossreference-15878={run="0xc8d3g8j86dzpfxzfcildiyk8zi2apc9af88v2zg6zjra6vra1x";doc="1iahzjwns9zapa5y7z6yy2wjdcy6qiqrqvp9q9v4ky2zgsf7n5pi";source="0yajk2dxnsfy74r6a50zs4lc064aha0lzfqp26gpgnsx2h0bvpix";};
 crossreftools-55879={run="0pdhi9yij4n6bwcwbk077sdvwi1v8ww51g2r9ssfnmvmxs4zjw27";doc="0q80k648b967q9gcy7c3lb8ywk257zbsw04kc2gazlc61scviy49";};
-crossrefware-64754={run="1zhh89bwj8cc38p08878mmp8kl0pyr4121nhqssva9jixjckbbs7";doc="146zijsczba11hbks8j0dxygv998hhjqmcchq3ckgc08zrwvd9di";};
+crossrefware-69700={run="1gjqw69rlyk85qi3hj9gdd94gx7vfb307i4bjkp1p3mqlx17vkas";doc="0iq9cjlv29990vjwgravv7bw28fxs5sz0krpa3ffwh2hmk76yh63";};
 crossword-64375={run="1jx01w062yn2bpnpmq29rwgxll00x05rb2i0prz7gnhfv7g4iwj6";doc="012h0rf49rlx7kjjv5i86jz5v36ln437ifmzv0hh1ww6lg60phpz";source="02sbn4clwrccqkr41azpzng7ck4q74lhbqzcd75zdv59gll9z3r9";};
 crosswrd-16896={run="1c85733q3x56s1fvag4kw39r6lnx4hr1wmhsrjs0jnyf5j6lf38w";doc="1abqbdfk7c7cx1ij56q8dhz87bc8ppb3hkfmc2z5r6zv94l34n2i";source="16didvmnjfbd103skc6i9qbim4kav9vw76954yfqijz1q74c880s";};
 crumbs-64602={run="0cka3j6aaxbgxvv3z7010myr7kdiva7jv7m1l4b7svq6j4md38vi";doc="0rxkzcmgvbm4mk26fwiw1wzng5bkf7byh43zdp4dh0mx82zn8qq6";source="0z88phhr4a0gdd3i4b5mvhcfxc1cy5sqpx7nvf1plmz34amiwcz4";};
@@ -906,7 +913,7 @@ css-colors-54512={run="1q3vmcppk86v2y72g47ifp129fj4rgdq3rvzgkzdzwhs1q06ipfr";doc
 cstex-64149={doc="1vsbq9a31ymvrj0bx48n93chyqmma3q7b49k7dmhb0hkic6h73aj";};
 cstypo-41986={run="0lfg2c985h1xlnx1fa3kx1jjrhw7kmgwvalqh5127w20r0lrh8c5";doc="18yx6l49qk1ayaz13qqw72r8l8z348d20yqdm305nalhqyksv1bb";};
 csvmerge-51857={run="0fyrqx85mklws5zny7gmmyscnsivjfvwmgwi52k3jk2c97nvsy8z";doc="18pmc5h44jmlh583cg0hjr24k2pj369l6ya4hqm9kwka0bhg29nm";source="0mggp5xankhif93firc5g01c6b160bkwqwbhc04wcm4ndlamvip1";};
-csvsimple-68566={run="0sq37wdvwd9m3c53wqai4vx80r6r3qn31s5r51gv1k8d3q67z49h";doc="100lbrliv5jg52xkgn18l53yxv2rcfsjj16qaj1hlc6paxwq5xcr";};
+csvsimple-69494={run="0yc6lr52yhrha4f70g6g4dmx0gb9hb6xrnj971xms29rbs2azpdg";doc="0l6k9r646qs87ps0fd6hpy3xj4kv1442gmm50b1sqcg5w1hm0sbx";};
 ctable-38672={run="1xqhq2ww64h8vpqqzg3zbhh0z7xpjbcqcvxxm4a6kyasyhc9iyr2";doc="1nfdrjjb3j1n8w3x4v92v9l1k0smnygwj47ry717qgf2sq7f2b8n";source="0smcvvlq8n9ahx0z1kmf37p8zi5bjsh5q4x5mk7npay96s87z9s8";};
 ctablestack-38514={run="0b739h1ndkisr49d8y4q0vnbl9j3diqwl9r1ah8wk2za1ww2mi54";doc="0qmshnvbyfjhi8bb989hbffwn3447r91jp46z1yhhmcbjpr7clk9";source="0133xxb7470lyfssi1kp81yr1zsz4d8ai3qjy72wki0p7ijkypw9";};
 ctan-o-mat-51578={run="1iya9r04n18i8jdzqkn2i1rxfxxmpzcpga03rp0i6ykjj65v4q4r";doc="1j053gvvcznrk0fhg21ddyx1b1m1xj743b3w8z01lpjihihzq0l8";};
@@ -936,7 +943,7 @@ cutwin-60901={run="0camjay52m2fbg4df7rrswfn30an4s40bvyvssdcmhmqlbvsh46f";doc="16
 cv-15878={run="1w9gx9mhg9wp47rhb6kf1w03mypydp01rxmypv6yvcrk551b5jm0";doc="1b16zaypfphbn9x2fwh2v0i212jx3pn84vj513lkxzzfh0if78iz";};
 cv4tw-34577={run="0nli9s73cns9x44vr2npb7zgfinnywgwajlr1k2hf9jldzm09dm0";doc="1b9zd0ky6h8mlcigfwj49c4chsznvbycsphs9lkpdhxv8mx9wgyq";};
 cvss-65169={run="1ja7j01vbzm16ms6hj0013q9f4wymzmn5fwdmly2mipgnfir79dg";doc="0a664wp1c11sdyhjgz5l561ngsnws5bgr78smswf2akj89637lnw";source="0ig8igf03vsi6mqb9a6cikqqipm7ja3ipm30c1gfinqvkmdsz0jh";};
-cweb-68702={run="14gn6rm4a01y6zl8qq23q46xaj50jj2ybpff14xg8pvir89b7g9r";doc="1bqzd57l1kw91dwl2l85760578jqpynicx2qly92a8xp92w5y9vm";};
+cweb-69586={run="1frjx2vsa7sdz6kvczkq6wkpvq8i59l66i3s8w2b3ikp76cmqnkx";doc="1bqzd57l1kw91dwl2l85760578jqpynicx2qly92a8xp92w5y9vm";};
 cweb-latex-28878={run="0cd2rgn25s02p2ga3509pnbc70iad936qznr2yl5q6wnlvd78lbr";doc="0vc5f0h9mq7p9040ksql4clcb9y1dxq7s1a4gzgpsjyla05ps3qd";};
 cweb-old-49271={run="0vx235zpflqpnrfa9kqq7wmc1rylg5bw1r26knfzvh3w1swbp4ai";};
 cyber-46776={run="0vlx0r57ay6jpybs6wlc1w1qpbd62cjq3snaqplaj6dkah98kcbq";doc="007g12qa9v04z3b11cdrd9z7pc7iba0aa2g7z460i0hi2fg4gv3l";source="1kivc83wjpm2rf2myk4079f1l8pyw1pm9a2j0iqbwshic2qfm86q";};
@@ -1015,7 +1022,7 @@ decision-table-60673={run="0v1654g69lsvcvky0yh977kz7s1b5bjihh6bfc4lqrzbpg92qijn"
 decorule-55230={run="0r5pxcpx29l8x1bw4hj4xp66zgkjgm0qn2ryvxy1d30dyjgp34zb";doc="0a3qvnknhcx0jx8x9gk7bh4sbnzv1mnqvdr8l03nzjcbmysvc3hy";source="1lj47s4k44pjnr0n06xdcb37625hkjclrsj4ccmkgcr61d85vkwk";};
 defoldfonts-68234={run="00h2hk4vhqn54sczns7nlgsiymccwikdpl702y9m9hvhdw2misak";doc="1xl8nw3p9jhb530m7sxkrsg3qpd497q4678al524b3gz85ps1m0w";source="0ssc58p013kjdh0p56jhw7cx734ngnkm9mvf1cslcar5pyh6s88r";};
 dehyph-48599={run="0fkqlsknrlxk8zazcqy4q3nisxr3a4x21aiwqhz8s237rdf3w39g";};
-dehyph-exptl-66390={run="1lk9jl0h46xi2bg724j8jg6i54jqdch7ncz1a3yk6xwfpjgmj9ig";doc="160z9xiqdi9x3wmmipnlarrhlj8r6885541vl23hlj61xd17y9xz";};
+dehyph-exptl-70496={run="1lk9jl0h46xi2bg724j8jg6i54jqdch7ncz1a3yk6xwfpjgmj9ig";doc="160z9xiqdi9x3wmmipnlarrhlj8r6885541vl23hlj61xd17y9xz";};
 dejavu-31771={run="1pxcrv98xgy9hkqhclyp0q5dgpgc80bvjzs378f0dqzc1037lghn";doc="1f42z94n6dpdq481n5wmsx5hx000klmbklghz77x8pc9shgvlka8";};
 dejavu-otf-45991={run="06cdqjqj0vcxrr2nlqs2qszssiibzr0pbimhvqjpqfdv2hhdxd0d";doc="0x9j42zm6dagn4wv8hz34x7cgybi6bb86whxvmmwx5slsbb6yqfy";};
 delim-23974={run="0k5h5wk4fn4qzhjcgraqjzf6ggq7rvr8d4c1j2vwxi37fa83642b";doc="167hklrsm9dh68nvl6inqck07zfg8w4gr9p5c2n8i6y6v9xlj3q5";source="1xh63b78kxngcc3qgzmcfrf4pw2saipw054pzq47vp2ajppp1sq3";};
@@ -1023,8 +1030,8 @@ delimseasy-39589={run="013r0cgz7ivrjfhmpcf5rdfl2573q35qmw0bhprnamij2jpvggzr";doc
 delimset-49544={run="126ax3z4c36z83479zk56jcvdj5r95y182rv42wkm4lm6sy8v24j";doc="1mb85h29fp7nxrkfylfg59jbvjva7lmr7vvgd8nz7k09w1gf4x0b";source="00hp5f5pfad36n4lkmra8mc2n0ynnq9ynnspqfb9378cx3m81cxq";};
 delimtxt-16549={run="0s2bbxhbfvq0jm4i90sh6krcik8yk2nl0c39lzr1nrakal0k5lkh";doc="1wswrw94n5l1azs2aczv6vf56ksbagniry4rwq9b16bmvdy7slyz";source="0sfwmd0mj359qkchqgm8zc80ayqp0p8ppdgfn3cmayhf2pml6gyj";};
 democodetools-64314={run="0ih11kxlvnskrdbvxrakbljh1n08n1mb6hbmf08475557bp0nchg";doc="0kcn368yzx0jf04srh2lzbxj9n76ph0idfjcqs2am3cjp2mjis17";};
-denisbdoc-66137={run="0sl953nrm7iy4jxadmwhq2x6hglspyzxwzi7wcaqjnb3vqgzb726";doc="1p5b5xpiqhla4pmx0kw3xl0qwy419qscr8q3z4l1id4sqj7vy6b6";source="0idsm5fbq3k93jphv569yw7cgpckzn1npk1wczvji0zvd937pih2";};
-derivative-68787={run="0qqzrhm1x2n5xv633dmd3pw8p9i5a7fmnqp26wcwhy08dipmq441";doc="1ld2kpn6l7dy73wws4pw0a75cwjkpl402bddxghz1svxmpfnnn4x";};
+denisbdoc-70611={run="04y9dwkap94nyfn4cfcpm9jk2y0891dg7jg21c0ca9b3kckrcgjg";doc="11m50x8lc0694wjx06p9raj871gr9hmssblm3gnx3phl0vfrmyd7";source="0gipwjskg2p78r2z4j839yxfar227mvv294bjnl0j16w33d8k4cy";};
+derivative-69746={run="0n29fjh59wkpigk1759b0m231zcmli6rcsplj0zhhaf4jwxk2apj";doc="09mv84hz56l3ihccl5cln8avw4137c8kwykh9s0j3y1r19iw7x1v";};
 detex-66186={doc="08d017wn7a67pmp9b5yhnfg1x2q6f48qaa5ma4bplz9a782icwjy";};
 dhua-24035={run="16gq48zlsfk9llafs8379797v908khv954q8lw2dvzk0v69d0qki";doc="16l76rvba4fz3vfw8mzkmks7b7206h2dva5dgw3m0j30ds8d6vm2";source="06vws91qfar1h87d57c9f9cw04isjk0szhg2aiw7sc8ligs0v907";};
 diabetes-logbook-54810={run="0rmahxnjnjd677z42ra1mcp86na41sz9ir4chkpmaikhdvnbi4qa";doc="0qb2nyjc7fpc7yc632bblbjryxdx39xr64c4kxncdisi34am82z9";};
@@ -1036,7 +1043,8 @@ dialogl-28946={run="0vdx7qnpp5s6j5c96207px2fdhylj2kv3ph9mr3jcb6jyrsiyi0q";doc="1
 dice-28501={run="12j86mgn8zph5w1gd1lmmz0dcka36b187vld6r2srnj9f398h7ac";doc="068pzhi6a4mnq8bj5xvg4pdgqb4kvdggybs16hpk8jla03ny18zp";};
 dichokey-17192={run="0bvv3893jxpblddqi75hppb9s0rxaiqbq70jns2x7d79afl7xkwj";doc="0m5zc521shp00wld4kyhp9xipsqfq00q1dqd3qp9ki1b2kmr5w7j";};
 dickimaw-32925={doc="1mxjqn4lblnpbmad3jk453lyx1qzcmrddis59j3jsgc5sp929w4k";};
-dictsym-20031={run="1ipmlwgma06nd1rk4y38r40y01csq1myqavmpd1f3c53k1n0v42s";doc="0rljzx70rbvlcirxr2kf0fmrks6g04zc1mz5hzfkjcn6xivpawh3";};
+dictsym-69720={run="1n55cpkm687y6p6fs98d81ivvryr06fahh9nf5bvg3vvmd3rq0v7";doc="00l1ivnslfhlvyyd070d4vk2s7h9qn3vp6z49rm6g05zrx52954q";};
+didec-70237={run="1fqcc7jb45w4x13689llhm2rcqfjclrw5inp770q4sj2xsdgfsnb";doc="1vldv0j555zyk27n37y8p8n9l4xzp0fv060xbnq1hjsy8sjjwm57";};
 diffcoeff-68838={run="19rrh9zzjxyd7hxfawi65y0cnr1ps5vzypk60jfki8s1bbk8l2jv";doc="1ximrhl7m5in95mxlmk7dpvja39sjvxz4awzr3vwn9w11qkhw0p9";};
 digestif-65223={run="01hym4d6vqja4hwnjyvs0zs0l2fzhdap0pir7cz7wxqnlcip6hl2";doc="0220wkv0w6zp4ggnqkcfcq388f42scywzn2ah0h9yhccgdikd52h";};
 digiconfigs-15878={run="1irv3jc87bpnc289r5zh7pgfdgk4bvfwbyv6666kyq8f8yl7m1kh";doc="0fnibq45xgwrha5vfav8lylnb6p2i0brd2k1yp8jm8id6xdsxmq8";};
@@ -1061,8 +1069,8 @@ docbytex-34294={run="19f8kxa8pb7ai7npxxavcw8hbsskmnchi7vynzkbd0imcjvay476";doc="
 doclicense-68441={run="1qb8r4lwjqzwv46fsqjff8l5zb1scjkq34pwnsxbymz1sl3iw1ls";doc="0isk98wcs93labxiygbf6hg2794l7m2wr8ck71jafd6by8x7l1mb";source="04sq9wrsfgg3s51k853yy7vn5yp292d2ii0ww3msrqnlpknvim7j";};
 docmfp-15878={run="13cxjhbafm0xvnng6gc9g03p4j79sia7jvygxmphgnf7wfndv4sz";doc="1j2b530wcpr8252lcpmy0c5w83kqbi9xzsrfbdngi1jmkfy4nlgv";source="1w8g6m2whza3w62ngsaslv7h2x7asijznwb9glx6g2vjv456sgf8";};
 docmute-25741={run="15ad8274dwgzk7fzs7i5g3ss02ld8in8f86339rb314zmraj5kv3";doc="1mrwispvif8nwjbq12jgzpwjn9xf7mr91pwg5bfdcnpwwy8l1bh3";source="1nfv31h23mp7alrm9saz5abakjsvs7rqva3q9zvxlczix7yn63qw";};
-docshots-69410={run="0c43i1x2va0a4g0a262qsk5dqig6ic4kkmgg18y7s78xi0ymj8m4";doc="0l55vpqsbwr7pln791lql2s325ljphy5gf5glwjjmf90cgx498ir";source="1hr4y4rqwbx3kbdy90myi666b2jb1iy6bw5y219xl3dyq575fj15";};
-docsurvey-69343={doc="1s14cdm4174mf5x77gr0gp59hsklbq2nrh486j3x9vgc6jv00wv7";};
+docshots-69676={run="02wcsd0ccyh9lmv6mi5g7igk42xcdmzwvp0j10128yw71znmwr29";doc="0ff6hklr8g0497p81bir02z837y3iiicd7g3cjws75sm88isxxj7";source="0qjcc0vkz7vpylh7cqlkyxh8fx2gyjjkm1w6q62bi97j0mnnb58g";};
+docsurvey-70449={doc="1pf5h9fy9akgc2cznvx32nzhxfx5c22dzr4ki23h4w7v7iivsw68";};
 doctools-34474={run="1rdwmdah8rb2yiicd9mbqz0mmf56rpgnp5vwyjhax7m0zqjgqkgm";doc="02jrr4wbkdx8r44dpfn4g83j03n6yrska79ljnwigs77p5jqlyl8";source="03y13bijva11hqil84l2p4cap7fcm8wk6ds53nx1qizh66h8g9vr";};
 documentation-34521={run="088imchmqchi1ilwfzlhk8d4am2xjjgacnyw5w4mb6sirbckhi3d";doc="103rpywyl1h30c7jamp3cfi1rg89y48krdjbxc0calz8iq5n0460";source="1fzk62clv9ij07cfjcrwn94cqvz2piysij09y2wlkcs06lgk2m69";};
 docutils-56594={run="1pxswkjs901clnd8l3n13ghqypv6l8gxr3pnwn9i0zakvxz6gdh3";doc="11fzx9kyxgxr20hnyqy9nvl5rczdfyb43j1bjwxnim68kmy5bjyz";};
@@ -1087,7 +1095,7 @@ dprogress-15878={run="1sz7msvh7wyf5k8ag857lr11dqwf12p1wzi6kdkwma05i8wwni88";doc=
 drac-15878={run="0p8li8cln7674zd40w8x6izn2kf63wsxpwg3dpbjnp5jccifvsnr";doc="1lhibs5s6h0a97ggjkp1i8j02ry9p0zdq6pzjxm4ijx3fqj1p3rq";source="1478yizwfvzrpi50k3fxbs9vq7g39170jdh7l3ynkbq0fkbssxhd";};
 draftcopy-15878={run="0fxh7h37akz0s33vjmnzxjp04m7ynb0z6650p5wd399lfg5bi11k";doc="1z7cjzk75d3gwcb4dgvg7a8jl9bvzqnc7zn0ginqcl0aih37yg5j";source="11gswnpz0azxb2d1clmpk9bis9cijsd1hajll7jxm5fhnk6vigfn";};
 draftfigure-44854={run="0dhjlykc6p6jm6p0s0h0d74097ny29w84ns1pxbb7f8iwr8hhkvf";doc="0gnazf3bmbgnygn3pv0lzrlrcic3j2yfqxq1kaijkkhsr9w57jy9";};
-draftwatermark-57099={run="1xrsh755whbaxizzljcpk5an5k9s09f6hcndp1lhw2z9mfnl2na7";doc="0cnzbj2wg5kifqg08i081d0043462vswbxr68spnnxp2y3b5ysdj";source="1k66347n1cf3ap8406dw2qa21k6mazwhv6brr569i0khsxypfw0a";};
+draftwatermark-70401={run="1v0100dlj6y6kbcyvnslsi7a688jdm813w6752bxbv6xsxrgrvkg";doc="040xj41s6xgbxz1gnd11m58dv7q30qdki4sn88vjg00n2i0afxqj";source="10lm27jk24p2d5pg964l9mwj4gkn1xfqxw301lyyibq6wz921qcx";};
 dramatist-35866={run="0zrkdhvx7f1261r5b2d08bd6a3pzldvpi69iym5k6f79ziz0602q";doc="0vwk6zfvf89773bwcxnpsd8crbkmq4lr6hksp4dn0hn6rf4smyyf";source="1xy8fm9h9qgjna6z5gz28rj0cq65wpxpxcs4vsfr4vr1p3vmig05";};
 dratex-15878={run="02nyg30awmpp2yi4m6r9gbgz04irjzpbjhpp72j0qxzly8c8frqn";doc="1a5knp5hylpb1i7hkd9160bah7pps9b0hm00zgn9fk33g5xrvhbz";};
 drawing-with-metapost-66846={doc="0r1fqikx9iix0xm2w78s80knfwc7w0kf2k7fb3k25l1cj3ym14mq";};
@@ -1100,13 +1108,13 @@ drs-19232={run="17jp9fvj86sp4ywgc6j1dp3pnvgllilbq75298qamnnj3f403vlr";doc="158wk
 drv-29349={run="10dqig3wmp340m9h3n4yl6scg1p2a7ccazsqp7p8a4fkfw0cziiz";doc="04kgfqhilxpcc0h6rhpw55s1j14wsb5v8b6ykq7ajmacrpmyi50h";};
 dsptricks-68753={run="13hvyb7qapfby45z2cikqwaj4bcf6lvhaf3b6gq7d9831gxfwjhk";doc="0jjwa6rh39qp2659ijb3fg3cqz0lbpjpwmvj6zpxv0xhnjzrnidm";};
 dsserif-60898={run="0w1kihzrmk48hpl36a20fkz4nwp9z27in9xsi0fc3d6mhgdx35db";doc="0bwnnxypyc97jfcam0vdvpyxphd1zn31mc6lvl661jy10cpqf6b4";source="00hf5icf1n0rwxr2ms34z7r62g98dqkx5v26m3k7w1wd1jfnjzi6";};
-dtk-68849={run="1j92bv10qjb1p9ryqg6yc55l4cj52q25133mq021jq3b148j5v70";doc="133y8gcdk0mgp6nrwg2pfslxjm1jl94d8frfyxm7ml0dy18g4adw";};
-dtk-bibliography-69155={run="18i5n2jiy5znaf80rxrr9f376j9f52gr3557g8idkc2g97vxpx8i";doc="152r014y7y20h19hr44c0vifwpc2s1rafilnxknhx01zz7ln2hq0";};
+dtk-70117={run="0mzd39bczl4xllw2asnwrzjp0jnvldd5ldh940qcrkp9rgj9nrg0";doc="0bm35iwckkx93shilww367pr34h4wdkr1zwb3c9xsnjz66nj1iig";};
+dtk-bibliography-70517={run="1j395ffwbmps5al16rqfn4r1mm3m4pm21jy74czr26cmfd75d6jy";doc="0zcc3mr1p5c1nd1dl4hqdr8m6d6lccgx6zyxjf2569x805qs4mrd";};
 dtl-62387={doc="0kvnsr8nxrys99rp74wlxnisfripx6jpjjkqy38d3d4gw13cvb5g";};
-dtxdescribe-69348={run="0m959fczn0gyc9p96932l1jzfyyf426sva72fjhy23yjgcv333w2";doc="05sa7capgs7lpqw1qdcr28k9f3cdkyps8ia8vz74jm8nm2gigirb";source="0bm90l8zb6vkk05vrvpjm13xpfaymw4g6ycbc57984djpkmk22bv";};
+dtxdescribe-69507={run="1k73gikms6ymcjprphzzrw6nlhm8sdg62w5ngb2g38p0hyxi0r86";doc="0fsl1kp8ls9dkzqjs5gd3s4f6cvi3dqd5mcz46dns3v6qfsn39my";source="1vdvvgf7knmqhz1qbqgs17a0m0dljnx2lwz4d9j5q8dds2i48jk5";};
 dtxgallery-49504={doc="07c403zbx7sxkhhrwrfw3np20xlqhdk893b4bd6r8lqb0zipp5b5";};
 dtxgen-51663={run="19c9w97wjyrq6g1j8n8qgaclx141lv2j6z6l5h13gmkmyw08vwhh";doc="04z9dy0aada8zsp8ckz3agqcsm29dnlx770xyl51rsvk2qwsxgka";};
-dtxtut-38375={doc="1szg0xvwm0jbzs8waillijzrff4kv04a73gsqh9c12ap427xfryr";};
+dtxtut-69587={doc="0zk09qdz661g1lnn2qr1s23h3x4mi7q8mdcl13p19k7qmnlc8v5d";};
 ducksay-64655={run="17ihjvzz7rx5zra8lwb72vyq5i27psvmlg22sihy2lxkxzy3krx0";doc="0ydhgp11hc7hl3ikwf9pgfwf5p7q5g6m1rmfcy2h6svv398zcg67";source="124lwhv0bfc6h34q93hjxpa5ypdiibmibx1ksn9x8892blg7dxnp";};
 duckuments-52271={run="17fz5mkr812ig337m2q40dcsj98qpczw53vjrsqk1skmknk0q4g8";doc="1pbq66k699v3b6c02qx89dvzsh45knr4y9s6a45gkm4a7mkk5nkx";source="0xcdlvm247d3hl7bvb981fv07nb5g24c0n0171vsk3hacxpshcsk";};
 duerer-20741={run="1v6ja2q8bi0w0jkyl3j960gkvv2m5b7n9lg6ql9rxz7sfjcxa3ih";doc="020q5ln31smf228xx27gbbw0xdcx9f5zh6qjriakxa9mhixksjjb";};
@@ -1128,7 +1136,7 @@ dvipng-66203={doc="0r001q4p5569dagayds1c56y10ls6f6v7mmywiw81l995q16apxi";};
 dvipos-66186={doc="0dmaas4m9y4px53vlg0jr73xviki338fm2n176l8ldwqj0vvq1b8";};
 dvips-66203={run="0k89qqz9zx5zh13azpjndfzszgl85hq4513kaayf4k3spy9fn5yw";doc="0acfsqbpnws8m5y66fkgcgxf4sdr9sjha067735scn75wmwi9y01";};
 dvipsconfig-13293={run="02vgk91y80ch4pkj83vbiz1b2ccigf152hm83p607y4n4qn2xzsf";};
-dvisvgm-68950={doc="1fz3sa7p9wk2g1v0bpy87vz7nxwrh5bsfl4m734n6lhsh1bkj6fb";};
+dvisvgm-70496={doc="1fz3sa7p9wk2g1v0bpy87vz7nxwrh5bsfl4m734n6lhsh1bkj6fb";};
 dynamicnumber-38726={run="0y779azvla68n692x0gybg74cp3dk32219v67qfamfzz389nbs7s";doc="1appm3ddbv9ll0mbnid4xa459w9q89swmdlvdzy1fxdps4y0vpz9";source="0ydmlz697c46fx0xpnvcdcfm9sm0j3jmk47xz8znd2ghzg395fgk";};
 dynblocks-35193={run="1zb7vk34k3z0cvw6kz74s7831fz17mg3j9hw60diabc0q47pwyr0";doc="1m69hys2b7fvwn9h6q3whkpcnvi04hnhx7811s5fqhdfi76v4zk4";};
 dynkin-diagrams-67267={run="0iprylvg36fs9rk44a4yj6xn2q5vy6jy2104m3j9jkyfafy2qsy4";doc="1f54q909b3qgbgqgbxpi4xr4f06dkq7z0wh49q29b1gh2zvvdxms";};
@@ -1139,7 +1147,7 @@ ean13isbn-57514={run="0bzvkzpi10d9sjlsc4df5v3y7qycbz1qkn7ngy97prq58wg047gc";doc=
 easing-59975={run="0zdyvkqydl713p61izpcp2yz6n2rfsf853pblh6xgsjj1vlhrr0b";doc="1f8151jb5nzd8hj3sii4ca274iaxscv5w8fxp758ncshr3bv0avy";source="1hha1qs4wy6s2162w61gpik2hrx73r83gja1llbq80gyvyfgdssj";};
 easy-19440={run="0jrza9lf3yf4d1wm6nzwv5iyfia6625fjvflfmxsscbmwqickjhx";doc="0f72bawmxrxqk60xb61y079bqpxj8kmvn167plbq5whq5b1fsxfl";};
 easy-todo-32677={run="0fkwlzgx20lj44cvwv8hqv79v528k1gghx30lvqhg44wqirkmy86";doc="1yj3c25mhkp16n49riza4qchr2pqycqmb2k80syn5w3dzrj021s2";};
-easybook-69411={run="03sd459lv6k8v1kss8j62pq4fnd45rylxa6w229sh54xmzpfpq92";doc="1ac88h085rmcm3r25dq4abdnb46pksr3m9kx8hw62jcf3vvvdc31";source="1a3cxpm0hwcy7bf1mrsgw77rl5sgi9g6ckv6scsmlycr0bw4an98";};
+easybook-70236={run="1kdx1wkmcpwyyrgrhjadwnncal469b2i5f3drh78i2gk9b6ajy97";doc="1cal6qmb16xpq16gs9xnprf8yaa6xhhqvd9n40gbwv28nz1wdh8n";source="1w9bhy6rzn0yfb4xi3mprzggm1fm0x0l5pc4c9ajnncnix1vzly7";};
 easydtx-68514={run="0pfd66n156hw6g2s2p8v35gjykacci9kpyx75zcl1sw95ry9407g";doc="01qw09bkafjmkmhg3wqqgw8javrar7zxrf9hr3c8xy14rc36qkyx";};
 easyfig-64967={run="164ncaq1l6hdrjp0zinynf825hwsky1xam2yqxphhk90438n5hzk";doc="0hc63z5456f00a2x70ckvf3r54zld4d3r63a8d4ra7502kk8s9n6";source="18f4bb9yf3f7q96w79rhx8h4svlxnv0xc6xwcawav63zsk40mk7q";};
 easyfloats-57204={run="0vbg5dz6wxzk20rn51xv7v526qg8m0ih3wikabdf1bfb4n093k2k";doc="1ncmmmf2w313cpsc9s4w0c3gzvx09r26gwlxhr9rszksvd4y7fay";source="1ih161wrkxf8sfm0zyl2m9xgmff4qs6qvsz7mzxbjl1j2zxzhhf3";};
@@ -1182,10 +1190,10 @@ ehhline-54676={run="11db4dh948g744bynf1ydlg6jk562picrzfbh5pszxvfdag91kar";doc="1
 eiad-15878={run="15l4wi5hfbx8lp91jddxwg073z0r42qf93kvrqv7bwhqisk36x2g";doc="074iirkf7fzdxik5yq4jjk2p8c5k9jj8a6n178aw767j18h4n2n1";};
 eiad-ltx-15878={run="1ifiigww9nk6hw342qj1rxzl2b94f54cm4vvrpffxy9qggwkd2zx";doc="1h4cm5b0mllqflsgfcjdh97zn3nn3d9gwa55w5kyimmxgz516mng";source="1bpy6f6d81n95x81rgpz2r1vzg9gw04309shnx8a9jsx17fnm4nk";};
 eijkhout-15878={run="00y3y01jpgzww1x6zjh748hpvizlrbgrv04p8aq3cm2pzs0g17qk";};
-einfart-68376={run="1xqwx5b9fj88p10mh8hwjqs7p2j4p62cj5c5lq23l48i53359wcd";doc="1cb85l2pvgw6qf3lln7dw6n5wlvvr4pk9l4yb6ajrdl6lyylzifc";};
+einfart-70318={run="0nkp5ixkdcl46mnr4kny7cnwrpy3zi1hmiaqymcgxgg368dx88cd";doc="0bvfhvxy4jlx2f4nzy5a7civ8qkbk57h3fskhnczyyxq4ricvhin";};
 ejpecp-60950={run="111sr2lnp3b8hh0hyvdf3zv6nr3m2ghl8j2zklq0fdimm7ndmqcw";doc="14ww6ilq1l8f8i4fcafl4v0im39gajkr5189180lbrim6wk8gys9";source="14223kfrwhi1hby3lqadp70pn9ykagf1cwgqhapm5856iai4ravi";};
 ekaia-49594={run="009wk5qyv26rdi9gjbaqxcpsyzz6l5w8b0wrg9avspq81hrjkg9h";doc="1rbcnilarzap8kdsvypjwin1d13xskqq33wg6p0p02b8gaxzf3a8";source="15fl2jhhv01vl7ggwmddpldkmwdj6gj99851aczv47lj24w093bc";};
-ekdosis-61113={run="0drs97iqw8018m15hls6kg222r0jiyqg4n9ksrgrl9g2sd25h65d";doc="1x177sag8ki0pqsbvs6vjk07zf45wg8fmq9s50v8y4qc0pn5xa4v";source="1l6d4a4smjmily8mf6rlx4j5354jrpax15iggzqm1ncspygj0mfd";};
+ekdosis-69568={run="0drs97iqw8018m15hls6kg222r0jiyqg4n9ksrgrl9g2sd25h65d";doc="1x177sag8ki0pqsbvs6vjk07zf45wg8fmq9s50v8y4qc0pn5xa4v";source="1l6d4a4smjmily8mf6rlx4j5354jrpax15iggzqm1ncspygj0mfd";};
 ektype-tanka-63255={run="0qnkc2i6zxhx0i5mqx57qf7792ffg246yxcm14g1fa1nlryhdqwd";doc="1cmsd75pzv0bfr9y868cbpxx39ixs64pc2i8dsi6k90wfzq2bq55";};
 elbioimp-21758={run="1vfg29q8b20zi9lhn9nsr55hgx710ysk0dvfqpipqjf53fjsp0gs";doc="066g7g84fna6wy1slyh2sp9hmwjhp57hc3qf59gj5mwqvaaym8bc";source="1ysvjlmik0kclmcdf738vhl7xigsq8c6lqpgl3z2daarlqx6b8c1";};
 electrum-19705={run="0ckfb8xq10bx44zfdjy1p1hfcw18mlfli8zgjks81kfsgv7hzfxj";doc="12mq0mn56xi4h8dwnfnlhg0bn7qn6b6wxx20nqd73qgm0p1h945s";source="12ys4fdn1kyml62rcwpb424l86kspnzb5xq850ppbb82ng4146js";};
@@ -1213,6 +1221,7 @@ emisa-60068={run="120aa7a4m1psqx3wclwzghq0fcyxs8djlf79mp2ds56y0mpsqx5m";doc="132
 emo-66944={run="07df21ziq1ajpmff74w5vcsvh0kd2dx7vc7q61syqr2yqvj635cq";doc="130zqvzv94hi0h5m742kn7vc8110cwjd3b59dxdpihm76gqpa9zh";source="0hy6pvyxg0k478lpdfirb92mx28w27dxzms5al3pjq1mhr04bmf7";};
 emoji-59961={run="1pzx221zrczj26pdw6ijai6m73zgbz6z14d5wlhv7albrh4ppxgs";doc="1531y2a3dfmv2y2xa7xi0dpdkh61skk5makiyzs8mz3zl19n8nkg";};
 emojicite-55131={run="08y8qg37m8b3qf2wkbg802kmx359i6ki445ljjnxybs7apvxjpn5";doc="1iwlxc5ygq7l4qag7yxxas0rpcywmjcv5pcayrk5mz34xr06x5f8";};
+emotion-69881={run="14rnlr65ilyf9mirbddf9vkm30333yyyyd53fjynpq9h0hqrlgxy";doc="026yggkjkkvsq04k232a6p31wvj2zxravn13l5ijxs5z66hh3svp";};
 emp-23483={run="13iaipg8n1njzbnd8s622irizd4cc1cbkyc735mplvwq10q2jxqq";doc="148l1xq42avnf5gz1sqjcdprnkcbgsii3fm1jiamx18175zygsdc";source="023jc6v2l580x2d480x11z6rlknjjvx8g3qkcrvdi778h5m5bb94";};
 emptypage-18064={run="10h1mlhk0841wgc70hp51jnah14si7rf2mwpkp8lfc1xr7jwwvi8";doc="00l43lhrr246hiwa717b72rc4ignqd3kljkw6ka3l8z1nzbcbni6";source="16nzgkvl9gqsnhx38dp71c3cz5rrgm73n99g2vg7rapg0vb623xi";};
 emulateapj-28469={run="11yv57sv6ys3g8h2ix5xjnjrbnyfvcma4i7vzdsj160rzi12n06v";doc="15zm7jqpk917l1r2qfkqdkbsxa2q7w4640h9115v4jis0zwgj0s9";};
@@ -1235,7 +1244,7 @@ enumitem-zref-21472={run="1isvqbp7wvib81r0yn7sngxa2dygkfm4jn4rdvw0kp8rknam91qh";
 envbig-15878={run="1szn3ngy2iwzbc9y5fpchr5vpx5alr908q8bfg94lylmb8lx2kb2";doc="1y778gc6wl11afjjv2szypc8jf1g7gg2s0lvhv2skl1n3wpb3x7a";};
 environ-56615={run="0in2a7ar0c6ji7qhrbgp4bglcr2cmb9imxch8fcrwkims4g3vjp3";doc="1pb6nmprhz3j9dx2h7sw0y66y1qlvhkjl3ip28bxa133fgqab148";source="1jkbi2g2s13rngwqvr435i9n94ycnzp9xa8szik0nnmj482ah2hn";};
 envlab-61937={run="0q84vy7zbjqrrvy0r2j2hpbg9b5vwbwk860q24azms2zxy50a8vd";doc="16fnyfvvixp6lfgvz32w92q35s21c92556qxbgpcd94fd1pw2bki";source="1fygp7wpyzhzh070sa61qk17h05rqr4m1wqp78vpp0awgkmdji56";};
-eolang-69391={run="0iiaj4hc14b0ln84pb3yb3rk655hxx5w2gjgkpa7mlw4p53lc7dk";doc="0r1vffb9mi9p5zf26jaimd68k9yvlnr00xz2j318hg4chda9v78w";source="15z7pa7992c18r0n7y0rlaqn1id6gyqgxqwgv9g4yaj169crm7p8";};
+eolang-69868={run="0hwp6yq1zw4hilh8zygcm8dc74mnr5hhn2x4gi6q2b6p43pqkip1";doc="193rv7lfnmfhbfpaw8ayz0di2iq83i5479wgca12zdcin54hhi97";source="1gqsl2b3aw485d2g7sblr9wi28sfq7by3y0kcj0pf9rpzzw6m7nn";};
 epigrafica-17210={run="1kawqgy9kbr535q1v84kk29q2fwhg6yzmgjd5i7dyg06cy0g6rci";doc="06ichmfivx1v2y67f5nxx02v75wzci6m3hhg87kc4qik61yp8lgw";};
 epigram-20513={run="1zps5067mgi7xq3fpjvjln8i0rz53j7qn660khraq8ribv4glnpf";};
 epigraph-54857={run="1lb4wzjcag59dcfvizvng9s47v3x2af6v62hc1x3ck3fqzx9haa4";doc="1h13sgi2bxknx2m5kxxlv9p4fxf1pxh1zdwm98h3kamzb4a4gm81";source="0kqfrmx732m0a6k21iiq1ar47ff50ri3f5wy8ib6ssbbvd9agx4l";};
@@ -1262,7 +1271,7 @@ eqnnumwarn-45511={run="1mv50r9g43si8kmdmf3kgcjmw10kzipq67ssd3vllja4pn9yzmz6";doc
 eqparbox-45215={run="1bg49m7nzw20g2g51g07d7sgq0sjiisrbaq4ca31qbybr2rxcp12";doc="0z86nwj06zn55gk32wwlxbqfb12a1fcgqizrpagm7yp0xr99b8wm";source="1ny9mcnb76yds4l7q35wdm0x2vzia80aaqr12idybkzi75a7b2yp";};
 erdc-15878={run="02sf80cadhv7if8arbjcsgqkb0hhdrlpq6izqgcai6vb7xsc6niy";doc="0nv1yqxjmp4mfksmxm373pmy3zzbfcfvi683dalpslzq2qyz20yv";source="1vpghcpm9a2pvi3plh7pjki7sna3hkzvq2xj9gzmhqxcpw3jskwx";};
 erewhon-63312={run="1nw8y88z39wm0f312a8r0hwmdy85nynrpq8k78l1iabq9i03316h";doc="0wp19ficxpgay4bbs1hg3yrxmy2hlslgyawa03naaxpy1jysx8pw";};
-erewhon-math-68990={run="0ianrz91a3wc11s3jixilkzmrhjj6cw4h88ic12v1njg48d7sl3g";doc="15k7gzyrwqn3lr092sbcxfq639cy58vwgm8sqpnqhrbbzzm56304";};
+erewhon-math-70336={run="15yd3rjhv52kplikvmp6fax8im2250lb15s9hh61c4f4a7i79pia";doc="1yxzf17irczchn6chiyp0hkllq849ivlb7b7g17g61b6gwz0jd1j";};
 errata-42428={run="0hp8pls350swslim7m3cpnw23v94vnqj9avfvx9hq0bgl99szc5c";doc="0h30iip57km31074cya5fyhlmyamix8anpk19rqbsfb43h3988g8";source="00bdq20dwwmq0nw3c271ah0bclzkzkwbr5ak4y9asnab1g6fl5yw";};
 erw-l3-61799={run="0klwkq6x58bhqgc849yv68vg7w8ivvzib8rl84ipf3gl1hk42761";doc="0qkg31gi4jhgvc3i42cbj00ccavwrxfmygngn8qxfgmsphx3a41z";source="08lh56xzj3wjh1dp72ky8ckga8k73d3alf0vxjkwb6b6krzz4gm9";};
 es-tex-faq-15878={doc="0wp5jx1qs4yp3y4qpwqhpw7rnilw3vb2z5xb4lzwph6zw27jf6sd";};
@@ -1283,7 +1292,7 @@ esvect-32098={run="0fgcy91ypllj3i706znwwzri36ja2ca2inx838q08zbs8gqq4zah";doc="00
 etaremune-15878={run="1l3xz9zh5f3wj3v3mvq9xk4q6vc7k01pq3ivsvm0qlkni4bffyja";doc="16v4vsd7dzihnx72bdz99994kpw6r5im659hm51w5wyh8gf8mp29";source="18rcvjpyks01d6qkq61rmngmwwyxksh4i5dmnvq8ihx4vj3zlgqx";};
 etbb-69098={run="14rrzb8c1i58iypi7f1wsj9xp2x93s37s030zbl7xj8aw9j5w4mf";doc="0vqrl9i8mr02qb12czy09x9vrch6nbng04618h9ampxs1m40sha3";};
 etdipa-36354={doc="1jp35apalaa1lh44dbn1zayavv1n3wkm0v69hgy8vdz73yp5yvhz";};
-etex-66203={run="1zk4dp55r1yjwy1bpigyzbfm9nh3np544hfmzzfhdg4i4yps87k8";doc="1377j3czf6s21f7dr4qswzqvsh7xzzqcyjw771cswzgg7z8k66nn";};
+etex-70496={run="1zk4dp55r1yjwy1bpigyzbfm9nh3np544hfmzzfhdg4i4yps87k8";doc="1377j3czf6s21f7dr4qswzqvsh7xzzqcyjw771cswzgg7z8k66nn";};
 etex-pkg-41784={run="01aa6bn8d46ql8aw8kg9k2c3x611jpd5hx3h6g2fqb2lvjqnr1zp";doc="1hcir648vyypvqa8r710mj9qldir9yp2lq7biv3s9w1vl2ssw18d";};
 etexcmds-53171={run="0m0kf57wcmy50qcca2v5jb8z4h7z82pja82igmf6gsm7fksm3wrb";doc="0grl3svqzjh5bdg4jwzmqaxz7chkqka0vn0hnjwpyvm52ngmckyk";source="1s7avnnlr4g8xjdfmkm82aanz0k0cnhv2dyar30439x2indyw68c";};
 etextools-20694={run="04x0a0wy3avac8cgjgq7npiy06b0vrkxa0hizpn4vkzv7xbq79yd";doc="0z04a5f4c1xygqsgkss4bh0s41aqv0i61sh6x9h0isrqlhbvrzs5";source="1f0jr38lbsrdjxhihxks57y6xw37ghgmydcq48ll14nywx07qa2l";};
@@ -1300,16 +1309,16 @@ euenc-19795={run="0lh0k5g6icbbzl1xzzcj4sw7vjhqpn59y9xbc6cn58klpww8ywdh";doc="0li
 euflag-55265={run="168c6y6rivahj6cw377l54jsykpxaxvv3nbmr80w19d90h4sqa5l";doc="1a65rasxx88bkz3bg51bmzdbq67yphljaa8mgkp2b69fjsifm229";source="09g2gn9ci11dca9s8bgdrjaprzb66vb47ssfnj6n061glz9a244z";};
 eukdate-15878={run="17r61096angayvbdi9r3d7ljb1a5z9q9r093kpgdsi11ahcgsr26";doc="0071bi5m6v5ak6g5pxjxzq5y5353mpdjx4f2dbznkmfd23wp8j7d";source="1p6vg8nj8qipj59jwvp4izf2dv0l8490773h6j87wlclnnnlh2gq";};
 euler-42428={run="0f63sy9zs0myb76wqgzww48g7clq6ni9kwnrfjkyyc4lacvd36in";doc="1rl4bxzlmw95pgcf7va9gsrgz89602a9pqvhiym15b5hdwc5cb07";source="0fy3dx3bf8idddxsj29yqd7bsv7cyyg8q9njmb3p0mw7laqrkjxl";};
-euler-math-68991={run="060m4cizj9gh729yxx70vnj7rw660r7ka2gqpsd3r5jmgcpybppn";doc="0bkz8biyz0mzjfai4n4iy0xjslhyvigchnrargz10zxiyb5a7p5z";};
+euler-math-70335={run="0iyn5pmk031v5z21l2mmrl2c6fs4g2dcp5zrs5h3cv285jrpa1dn";doc="12w9inmaxw5skyw2jmhhxqfxvzsf6z7dfajifj5lj9388890pdgk";};
 eulerpx-63967={run="1ls9b076rc73cbc160ms7df3w5m0x840y7s2mg3wk22vgc461ail";doc="0qwhb6wxm8fviqi5kdy1lcplarijhca0ymrqnxfnrz38z3v4xycs";};
 eulervm-15878={run="1x0zgqw15r5z9mf4pcpnf1bdbwbpwbc49ij7gjrhf9jzzlkwraf8";doc="1bbd7f4dz3xp7ylgpi2wh9jf8nz4z6i2cvphfx53xvg555ln5v1m";source="1if22m5h8ma3bvrlp4jzzhjm410r5r7r2ij17prycj3cpj4r2nl7";};
 euro-22191={run="02kkwf4psrmp7n5mqyrc3745kj82p3nxswad9x8rw1hd7a278y3n";doc="1ajqx7axgqpmbq4kl2gmk97ibwbijqsq6z8ln71qla61j0mkgj32";source="1hkzjy4vmvh06pk8bhkpz09ln5jygvyhwzyznqkrzffay3i89cll";};
 euro-ce-25714={run="00ypq57ri9vkmc85c5l5qzq098has90qllm9lnv4jd73l1my7pmc";doc="03pcwrjrjp74s2xl7pahpr76dls17x76xvhck9izgsr29j6kny4d";};
 europasscv-56829={run="06vqrnfzcq04mjk38q75n1k1dw3ap7z5xnzpjmgss8rl6mjn4v3d";doc="032298ir415l36gakqalg5n1nk70c47xbm2svvg1ygb32sgn4afp";};
-europecv-64037={run="18yrsk65jpgqx1lma8n0r8ya3izhmp2z6z534i46386858hm9x7w";doc="1mc4bch2jp1nkxsqg80g403r84brv81fn807hn5jq27fbi93py6b";};
+europecv-69661={run="1d6p38swfpphw04zzf6a0rdr6xmz3rrc2gsy2gbd06hjmcymc7jb";doc="0s133vzwnp6jxbpmk0mdiaycr4q8x0xh6ismm38qhfb2zy62pp9a";};
 eurosym-17265={run="1bf4vwygyakr999k95ki53fykknizakz9npz2i1h3r5ci805l7z4";doc="0vmh23f3ksc3b3hym7iv7m8rsddk8vdbqr5ib49bjqylppvxrsnz";};
 euxm-54074={run="10dqknqlqrga9m2lgd74zx5hk4qcbkfvlzjgr304p94w3k7pclqc";};
-evangelion-jfm-68059={run="0vrr3md73dj51rch8yz71fpr39q7adq1ds6jmcfly3ccp9n4wcil";doc="1d2lcdjwl3hd4hl1arbf9dc9jgn2b13l4hkmpxc7g6cd2ishbxwd";source="1kvwwhv5a9ai57bw22pvg5q79cyi4kf35yyyz5yzb8f6mwaj29v5";};
+evangelion-jfm-69751={run="1gp0j3ysa05fhlfblaf1fznmirfvkbzdy9wc158vs1lsbs0dc1lc";doc="050bczdbp45i4qv0wp1qjvl53q10zwdz6av2v518mmg2qxrcvmwq";source="1fdq93a124am4l6bl35zb8804fhi7p263fwsd73lpyfvvh95rz7y";};
 everyhook-35675={run="11r4932kly5zmksmicapqxndqw4cdq1sg2x9hgffms6v8m5cwkfs";doc="1g9p36ki26vqdfiwnr77jxk1bna7733dml5k4s8nxq1drsklwqwn";source="0hv04cn2j7sf6032jxv18py368zbpp4ya15wv18qymbk6yv5najs";};
 everypage-56694={run="1i8fjcbk3flywzd55y0cbsdmzymvkynvgc5cvv6yh5y6nr514rjd";doc="13drphjv7gzgdzzwd6fxlngm2rprhls60gj4lz1v69sqifymnn4h";source="0vdi8yd0r33ajnym0f3j42ajkc2xs8b5yn3kmklmgx19kpc93ln5";};
 everysel-57489={run="090nizak865w2mgrflmz91kc0b2zmc6fq0xxrlpz68xwb214lzwx";doc="0bhqpzw5dpgq3842jbba9y21yj1808nxrg50339lx7b8vc5d2i8y";source="0aibvqmg2n26dici3adi849a5k20ck68v25vx1bz2f15q4gggd6g";};
@@ -1318,7 +1327,7 @@ exam-67600={run="027v4pscys8rmrrrz7m2plc9blf0bif3rjykfhw597rmnmgmhxcz";doc="1cwc
 exam-lite-65754={run="092wb5wjk452i252g4chnjzxysmbhy30q4cxir32mx54z41yf0dj";doc="197mlnayyzgr9v4yf3w6m72k8fqavdy4k2q1c0v7slsvqad320f6";};
 exam-n-64674={run="0j4bi7j167fkaz57wfav9ybv5b5f18ql0gscvdxyf9vh1czk83n9";doc="17jj5s75fs0sxpak8ywd6lmss3iq290316mr5gyxm3v7r26ji8ii";source="1lvcxbdwy7xxjwzbxzrykym96j1qa7caqkdqhhx4qxdry9czpl43";};
 exam-randomizechoices-61719={run="13dqgkh1isrg0z97z7bfd2b952sc2xr7w7ykllhvmzicr9gcml1y";doc="078cryxhlnwk0k01pwypmdkkjlna0fn70kj1xia17jq2xvc2fpcd";};
-exam-zh-67505={run="0k6wfbz76j0lz3abcbj53pc37psnn0wvzq5bzhx24igmwx0wlawh";doc="04q7r7pcjwz3qni7yg18c2jcp1ir8lb35dw6rkf63z2928f6hdnp";};
+exam-zh-69920={run="0a2w0swarm2lav45w9v72bv7gakqnz2h5fp8895sg7jmbm53bzvr";doc="1ia5nrldj26rcjhypvyqmqqz9fs9bni3birx24qdng652s11k48l";};
 examdesign-15878={run="0y9kqiihidv24553zlijr6fspbayvram1mqgy9kmd1wwskvbza3w";doc="0ddgn0f086qdsyssg4gm6ynlcnnsd16qpvn2g3wzija7ai5sqkig";source="0z5539hv1li9vw0d3jx7q9s844f29wi9xr5z30hvzl3721rnkvzg";};
 example-33398={run="06ld0b9gi8s7y6igijylfvj2qvj3d45z2ml9wd1zfzkpf32pghmy";};
 examplep-55265={run="1a3pdaqzc9jx2yf66vmjg9r4w07b8afyqijl21np6sf7rrsn7zg8";doc="06jqa848zzswd5pbfrvr9lh3i4l5h8wf3v9g179g3q2yb4dmvjwv";};
@@ -1329,13 +1338,13 @@ exercise-35417={run="18f7mgc2lmm1lg13dm858nqsqzga52sw0r6zlz7f0pv5hpc0mgak";doc="
 exercisebank-50448={run="1algypm3nhkbccd9k1w5qr6y75hqiinw5dj1h4fbmripmhdwircs";doc="0szpxkmx8qi3zpcrjzd1nzn7jcp30wf9nv8rp77x7rd2yd0sw0dy";};
 exercisepoints-49590={run="0vr2yxqx2ng1f9qybapz61146lvsniv6mjwl1yfxk10qyvdw3pnv";doc="17kz9fyd7cc4pa4j6dsm8h5zpwfr68wg3ndbswgh2pgwwvf63777";};
 exercises-55188={run="1yvdj03hr40732swfsg2br9f4wx9855n7a3whlqjdnczp6545lvi";doc="137g1gvwfxm3gid5xvikrqk0iw75csrkqgrwmh0hda28dd4zbdwg";source="1lryxm36phhp7p269zzf9a200k9k0v8zw8qyqvyk784vmvyilv7z";};
-exesheet-69252={run="1qrh0a36x68fs7xkp2grhqz94v49180v8aj95v3w08xcmx5jvwjf";doc="17dxhrsknh9fx9g75dkw56c11wpvc4xyzv7rgx2dm29szg7qvrnd";source="1hdkh6zbmsmc1aqzglihjr9xz6dhfxcijmyd1wvhb8cxh8swr4dw";};
+exesheet-69885={run="1fsavlg9j9xi2j81djhg77k10a1ag7aq8k3ykv53v8yn4s8n2gym";doc="0awa3sb3wxspvd3mvyvva92iwgrsb1qydh3sdafmnd5b4m0nncys";source="09zhns0ndza7jgmjgzmr4a3h3rrh5wshi2ssb8sfkr10bf1xl2v1";};
 exframe-53911={run="0sc11jk94l0nmjjd69k6nl7j68szdkihim194pdxlyiybwqf9bbh";doc="02s61k5lpjw121cyxkkhlbm5d6wv0gl009abkjbidpgxbnd5yl4z";source="19y20l5g814cvn9z0axpkynxp0vwkay782dmn05g6a6qzjb49i0j";};
 exp-testopt-15878={run="0g7q4ccfamsd7sr7wb0qsw74dnwiyz0rjrniaxm5jvgaadiinc7q";doc="18i2ym0da8vp3xxy5q2gaykvja3dga4l64q9zjxknkm50vj6dj23";source="1xfp15q94icdq773ivdvk4n47i2k3g3y9smdvmxw5m9f35nayypl";};
 expdlist-15878={run="09yhcdbx3n7gj3g2v2yh4navgdf5ik4x281h51kd1lzdzbbnf3aa";doc="1qgwn2ignri6wh67wwjsqpbk28jch01m8fn0nw6lpc6kfa4a9g6v";source="1m8dww4i5w0hivs904v8ls1dhs35vp3qpbb44ihwha0zsbvghabk";};
 expex-44499={run="1vdbsxn85gkg24rx3qhkwcc658zjyhkymfspysxkxmmb8rn42y8n";doc="1mgq1knfx1lf0vr32wa2r6v0sr49m0xjnsdy0y42zngfi1mizp20";};
 expex-acro-68046={run="0hdbjdkqsi6nw99g3rqvpd242mag8k7ggl6bb0wj99nzfq9f43sl";doc="0ilsi8ddsn7crc19qf22vwff2xc4lhpqhxpk6mb7id5fd7xpp0pm";source="03addcn3axfzl3i502clngi1bc5b4l5ndq335xh6x5h2566kjclc";};
-expex-glossonly-68860={run="1qwcib3flc06b1l4fl9knqb6xjwhq59h9i5gfniq602znndjsc21";doc="0k740yz8fjxkcmjvxd83234arq375xg8gcahyh2iwzqs9k8cvi4c";};
+expex-glossonly-69923={run="1505m6spzvhxmyg5hv7wncd1izl1qzkn5sysfjpdykwwg2prjp4s";doc="138yihm7vp0m25l00i9q9gn85cpssnfn2n53v876bvlkss7kz765";};
 expkv-bundle-65623={run="1mw1cdl4phkm29yxb747whkkd81g9a3sbbnkhzgskbna2zcjj0l4";doc="0cwydrq8k5z6j62wizgg6n1n8r0h0vi4ijky59vvz8f7b95j2xz0";source="0cv1r3daz5lscdqyjgmy6xj00b4i280bg1c93b2kd9x3svv179mg";};
 export-27206={run="0la9v2m3n15hgds8mmp1c56dz0a7iqygjk2qnd99n5924n187wyd";doc="0ipbs7rdwjp6jrr4drgcs73mc8fy6bav24qfda1an7byglgcf2nm";source="1q3xbj3zicbizadihwb6b75c4d95b6wq0adi45wbqf6hzj05bd5x";};
 expose-expl3-dunkerque-2019-54451={doc="0xij1ycxnc3hfzkl0bfs03s0zzzv6xsj3myvykb6n836j1g66g2y";};
@@ -1351,6 +1360,7 @@ facsimile-21328={run="0mfzqrn76b2nhz60rqjdr55s6i9fzw96ya74nncvdjjcvaqpjrjk";doc=
 factura-61697={run="18p09q5r4n04r3pr636zxbq2jp027knlzphd4zpns3d2szgw2j05";doc="19d5nsjxzghmk56l1v9ppr237ykdrgk7bql4cdr4d2rdvqbk4r19";source="0l77127yc8r4n0iyv4q3ilcs9hrfjn0y56rc805av4gdrgil9xgq";};
 facture-67538={run="1vfaj6hsjnd1cmgwrlj08bn9zr52zc1z9h1dpjq742gf8n2f9qfb";doc="1my5nlwdik253073yhcjbvqkgwcw5kvmg2fm2wladlgcq8qav96d";source="11nr4df4dywqaq1bk3vzjc6s9gd5kxdksicij2fmiqx4a5309ijc";};
 facture-belge-simple-sans-tva-67573={run="0n8wwl82w7hn11l3c3fg7nr088v2mv4s2d3ynwahgy18k6953pxm";doc="10yh7528nms60ypc2zh9viamk9cihi0a67jcvwzb2i8f88sx4cfq";};
+fadingimage-70610={run="0hyprvgg3f1bdm747v2c9aa7j1vcaxvawazs4srvmxqabyi05jbs";doc="1x8bgam221vspx8ikdmnx5qvfwv0jgfda05b5r16jajxirhbnvxq";};
 fail-fast-67543={run="069rv6yv525b9f0igkaax17kr3qyy1n82v018yidc57ig75h4vlh";doc="15qydfbhbdvkzrys4x3g3k2zpzjzah8yx7q1xxnc9p90rmlj6ch8";source="0ybn1365n7mkaf73sc667pw826n1pndrizn5svnx89ckzhni6s3h";};
 faktor-15878={run="078fxihxiy9bnszy2nj5ca8ys9hhhazkawwi7x2hzwfh3n4dyqz0";doc="1hj13l2g7za8n3bkxmg04npi5fnp4jv8viyym1076wify7hrwc73";source="1r8wksjr0q1nm118fzkn527lak31j3sjrbsahpdmvxfir7936njx";};
 familytree-63739={run="1a6hvncnjzrjb3bpikkjlmamnrsas5221hhxmlvfb8x05qxjxx7x";doc="05m6n4lzz0fc2hm011kyvnxnv93gl39jd1lx404xz0kjs0l94cp8";source="0g6i47agywjpqi2if893jpm045kwda3bhlm2afd6gpjynybpmhmp";};
@@ -1366,7 +1376,7 @@ fancyref-15878={run="1ns9b3viqg45w3pmnh69fdrjc9p39pfnqwwsfl9nnx04pf8b0p8i";doc="
 fancyslides-36263={run="0hfa5jklvybgx9rji032rdmyh2qr63fkyanvvs0jmg1bkpqw7s03";doc="0nqqvkv9gsl3jp22rjkxrzklpz6dfmm3wy3mc9f15jv9iy2zlrr9";};
 fancytabs-41549={run="0yxr24fnjabfzhyvfj7nhn26cc7hi08byw7zzmky3nnynxnxc2p6";doc="0f9b7rvnz5syq5dghj426k9ypppjg4q9wzs8v3jl8af94xy7zrig";source="10p8hb18qrwp2dxsjybrawnlryl97k854l11c0327r39qiya61ns";};
 fancytooltips-68931={run="03b31bifjnl75hscp908x58r90zrp9hy8r4kf3lkygqvikh8f5bm";doc="1l6mp725xjmy6azgx2zwcqlp3vfvk7gvyhr0wwrnnklfcscyr1rz";source="0nhmjrivw8a2xhblhxnjbyvmz4hp68sjxnnfzmqyrf1agjgwz8m0";};
-fancyvrb-68772={run="19kr6cgk83fmdhs7360gvi2p1q94jnl5r9vbm54zzhy114wvhiwz";doc="0jr5baqc56iyz0bifhrl6k3ragdaj267yl3hc71symhdi6sld4if";};
+fancyvrb-69536={run="1xsazrr8rw8rwxq2bra6ypsv217r5rrzxhqrblncm5g2blp8x815";doc="025sy2x32w7h2dih36iza9v0lrbwpr9q2idiifdxjhs1clwx01rm";};
 fandol-37889={run="1l6h2brl2d6bnam6p6j0p1d2s13jnva5zkr1xr4sarzzxj6zlz2r";doc="01ax7za7wcr644ncpv3rpfvl2ndqlppqnjzbjp8y2d0hawc3k5m0";};
 fascicules-54080={run="0zlkjn8kg6vb58xp2xh7jwjk6dmk6knzqh8v7lrdbmzhw9j28vwb";doc="1jkhj04gpwcckp9zqanaa9zhplgs2a5xqnn2xf6ir6qifiv3403y";source="0d7crimrdcxlh8hd24qfwqnadxfjsfrfnjr4hx5rrj75mm946zmj";};
 fast-diagram-29264={run="13c2r5prb7dg05j0r4lkdz36v51zj6v5p2c7q22gfkbz1lj1s6s2";doc="1f3ghs0l6mj2q3iw74rjjb12y8151cccvhww13h4kzc30vacr3r2";};
@@ -1391,7 +1401,7 @@ fewerfloatpages-58058={run="04903zr0lk50i88vywpbzpg908zkmy0w8vcfks55cmbfb2ja37qd
 feyn-63945={run="1pd608v8wl7007rjmsykwabr1h8jjk1s78nbmq4a0541rj06yd0p";doc="1dkfi17i6lz464bwmr5r5295y1avvsn5rpdw4cv80rd20lvhnyyp";source="1vh6kz22gpmch2rdlvhplvqqd03vd0mn5m0a123i3xfbka1myza7";};
 feynmf-17259={run="14bl9c8yz1z596281kysyyjbf727pi6mdnwag6gfqs1nsinq0a2i";doc="1ql099wrlddb4fyfrsirx0vnhcbh0wgwp9yixhvgxfk5pbah8v8n";source="0f9ghmp0hcmzadsfljfq7pinn69251dwhcdk4n62jrd07qdgqsyl";};
 feynmp-auto-30223={run="1yhvcxiq6ajjmlsvnznzvp35sap1qsnj54zv70dwpl29rkrgrmsp";doc="1y1pwlplkz2z7lqz84ay7ch1lw4plh4n69isqzsvhilnr31fkf0a";source="0ja5yqs9szyk4s2mk9cbjf6p98dagwk7pycma84y48kinkl96s0s";};
-ffcode-69383={run="0lrhl343ffn2pvffkf34kdins8b97vq1shaianzlsbr30slliy77";doc="17jxqsa16xkrmq88kd0ydn4kwfr313m8ppl7g7wabnaldnwxi9ga";source="04vb3sanfnzsyg8zg53r9ksrfj03lh08yq1r0wxpz82gcdbg4zhh";};
+ffcode-69706={run="1i06si85nn49yj64nkcja4r2zfnli29wi3z6rm4cd2j6zaljj41m";doc="1rcjnxrzmg3vpdwg3fxf7r6w8cagh2v7ll49r0y3i0jxaiyyv10r";source="1cxg43iaaz6czqf4wmfxh3hdbpl8v2v94c2wggbfx993v6awil7r";};
 ffslides-38895={run="1mpfpawdhh16rl6pnvxnkj95gf9hjs49gj7cwfyngmqkjc2idi8j";doc="0z5kpim798zxj20p70dpcgmwg4vx9mb0zrmq620sprxxdr2gd059";};
 fge-68353={run="1f6ibw87kbhpf3qxjh17jr1lsh9kk9ynf1rngzyjwbq2rk2id94f";doc="1c8nnpdvkxcm6218mrs18ipjf9mrl1cqyvv3p31x41ii8wxkvjm3";source="119d70668gw3za0mksr93wcq9gpzjn4gyv8vmizlabi0ip1ycgy8";};
 fgruler-63721={run="1x0pqrwwbwf7qi64wlcg8d73sf5r59jcqhhm3l30qk1ymfwirzvm";doc="0mva3jv63prks2la2g9sqza2ng59bg9g5xkgg4flamk0409bmd4p";source="1if9sbrln3jsc965xn9njllnn56dl5y4v2krn76hyxsk1vyza45k";};
@@ -1418,11 +1428,11 @@ fira-64422={run="182wpm6dkhs41y6kr4bjc4rpy0b62d17r0j60a23znfgglpriy3f";doc="07wm
 firamath-56672={run="1d9l5nsx0qswn1hcalzsrxkvc7mvpdqk3h72bfk50h91lfm2i567";doc="1w6zlskvs54x192nyxa83qnlqhvq98g64k5fv6ch406nkivifmgz";};
 firamath-otf-68233={run="0680qh4drixmrvhv3klkflz0jml06x8k9inl2c8ym6a8adqx43nj";doc="10ynw2ckqc7vsv5hq9kv78cvn6yd23qfbyv5060sjxl91w6qxs63";};
 first-latex-doc-15878={doc="13ngk5pia5vbrbb4jrrlq1lmyja08m7cy4ydcjasxha8kns001ss";};
-firstaid-68720={run="0jfrn4vx45aqlw8n5ipicl12y5r62vsyr6dl9vzf6yld4dn5zvvr";doc="0ad36d5bjlj6y5x7aixgn5sl5ra31hqif5yz0j7n5v32hxhhjqi0";source="01pf1jpxgq7j9s720xagjalhyzxr49i8kaw9mrab7fvx693cw9dj";};
+firstaid-70324={run="0sfar5v1pflaazw7yl9i43f6cd9bz8manmgynlww5wnw2chh2yxj";doc="0fmigcz19xazkxkqii0lghfy8clp8m880gg7lgm6bv6kfn5hsz4q";source="0kaf6555c3f9cy1fb5clm1ziw0kwgjqcysxnbmbzfhq23j41c370";};
 fistrum-66461={run="1ypzwh9a7lkb5b6d9796hwzarlsm06nyndl4clk5ss7nh9jdia3f";doc="1zyyrvm4vmd1fy35clf4aizb810mhr2xzsyzwmpcgsbm3nf7i2ng";source="048g8x5q882668lbzz0ji1hndfkd2bd777s2zyyq59bcw0gmavbl";};
 fitbox-50088={run="0jk46rrq01bbqkwfqf1rdrzwv475mdmz4hqvbffkivnbwj1vz18g";doc="0gb5gpdrdagilxsklq1aijr5zfl5n82nwal1h9qls0iqzjvgizka";source="039q5as7939zc5nby6m6piz5h0zphm19hqjkdyrgzw1q4r9ypzc6";};
 fitch-69160={run="1c6myhpv9ix6cr6snn5f9ky2z5caam1sqjgg0bq1bj8df3acdv80";doc="1gdgmviy8pqqwwsvinrb8qsgsd4gw6bx6xci56w4nmfal729r6g4";};
-fithesis-64135={run="06r4qkkgmvak5z624vhk2gl7vnq538ixjq6v2v4h1zz2863kicck";doc="15dnysdjas5a2a53g295f5g4fvi4rii10w72w5z9libxp6h93nmr";source="1a35viafyrxh8aqx9n6gy4j3kk4yjz5cjgwrfyskbpvk014y84n6";};
+fithesis-70536={run="0giyqhz2r2dnxxnvliwcj2mlm53ll452zqg18hisyq8z9yv7v0as";doc="10i2mp1ijf8q3dzgpva0b6b3h8025i2h5hl0vv6rmvv4yn7hnpay";source="1bazgc6p24ahsiv68g104qglahivx5s42gva0xhqnzcmimnazk7b";};
 fix2col-38770={run="14n020dmfn2s54h5xvc9lrynijcwnj3d2w4kg2w52v0kf037hmln";doc="089pdfpk0bi23yb7grjv4w1agkssfczwvv2vhk3piy43qpk9h09v";source="0wi711gb3bc5pc2kb7q2hz8y09g4phjxggrqjbl6i432z42fc061";};
 fixcmex-51825={run="063a2mwh75mdbh8syvrdldb7cj4iyvqkbkda4jm6cq3nwbq9kly0";doc="1c9q5srhfil0wnk84k072ridssgwbmzpskk6pwpaq8id36dydvlm";source="1h3xrdz9anb2cxr8p175rrcjvaawv80cj3bp9l6bcpli6yb6fdfr";};
 fixdif-66606={run="1gxz7bv0h2485pwrs7b0zhjcafkgzd1r0ikpjjw0gh4iqc3bcqd0";doc="06f5mkpp6aar6c569pwd9952xgzjdy3zx8n8y6y9a6wfflyh3cis";source="166zj8nmapwqkd06ksvjbjajq649amjrfji9z9j9mbcg865pgwa2";};
@@ -1481,14 +1491,15 @@ fontname-64477={run="0ylpryn5wnjnf6acjl6kp67i0vl1dz59xk2xbxb0fqhx5ib1gdgy";doc="
 fontools-69241={run="0smka2cr5al8f00hfcwpbwkddl7g2zcgg2jrak2j8p2ycibvfgaa";doc="1avxm73plf2p0xk0gh11311bfqbwlxdyvgx9hpg623ngyw90wkaq";};
 fonts-churchslavonic-67473={run="1s8y5kri1sjhsbz2mdszwy12vz8k0b5ad0rp383jrgcd710n3949";doc="05kgbvjj4w3sblsjprgq1gg0inrgrx0hpim8pmbgqj6w8xc1n9kq";};
 fonts-tlwg-60817={run="03fs5l62fbkz9rinnraz9zfz1byjd74xwvlfqcv4cvbxg02dpgmm";doc="0l4p30am56bblp120lcs81idahw3wrgmbrvi0jzfnvzsyd7xh068";source="06zw6amxdkmb9cdjvkvwgah5x33ksa9iigb4dcw6b9d3a0q8c8ya";};
-fontsetup-69390={run="0cwklm2jzf9rhn717y7s2x3wf4z098djd6zg57rz76xrr48hgzfs";doc="1mil076kr9r2a3wpn9gdkax96dzi9fg36ycqcl9h3an4zn2x0b1m";};
+fontscale-70541={run="1cq9xb7gpg43cjcz4cnwg7ggj08rnfrkbz8w3gfsg4ayp6rjasgz";doc="1vbsymgcvq8qhf1dhk864zwaszv3ai1hqmyiwfcl832m86cd2w5z";};
+fontsetup-70135={run="0f9173hyb427v4dvimfs450rav3383c6s5v4gr3jfkmz9l5nxla9";doc="1lkw61hfd435dqcv44rczacci3fmmwbvkg99lhihbxjx51y4pbrn";};
 fontsize-60161={run="0614lcl1cxc7a6irrjinp5x1rx2cbzns0al7d9f3njyyayp13qhq";doc="1c6p4yz000rdcmjkn7pgz3ckw3p42xkz4clk5dz01fnxifmmlf1l";source="0lvywzrc56rfkkwipwhqahkm8a70cnff0r01rpl92d6n6znl278d";};
-fontspec-63386={run="1lskffvb9a3jmzq4m0kgq0v4jhl39aa70zkz8ha1i5zhljwg4r6r";doc="12rxb0f61jgh9xbgzq0479zxzqwahsx57s9nl5ygrwcigwzglk0a";source="1zxfi2adixnk7fcy3j4iixr86clv9gckgwimycrmsf4wvvaf031m";};
+fontspec-69880={run="175j2zf33y5lh44x87mgp2hhpw609131k99df4fqzq9qn2zxfmr9";doc="1qysx336dixj5m4wvjdjn196jmdp6ll1r2hp2kc7jfqwzi4qpjkl";source="0b5yambwga3fqlhbfjv6jk3lkxxj9c9fyxm3hxm8nzywhwlrncd8";};
 fonttable-44799={run="1vz99pfw4akid9hjf7dcqf1fx5h30sr25i1f9q6a9frk0wpwff72";doc="1inb0ai6q8rjsrcwgv8ns6as60ifdidqzqb8x9ygaw3j5ykzr02q";source="1qjilvy77072jpbdc4p4qfy5d4n2ww2wcm5drwvai6p2aclqf29x";};
 fontware-66186={doc="0ng27m6cz92aa52z99gnw5i8s8fbkxq4354mygwnchchgxndcba0";};
 fontwrap-15878={run="185mzghp8xckdq7z6cdwznrg1pswflvfy61bhsnpaxx8wagny1zk";doc="01knmxqj88g87ljvxmf8rr72i2gh9qdmx7zsbwyjmibiw71l6pcm";};
 footbib-17115={run="1vr72sl8q1ccql2p42v3a9qw01a50v1c1rxpgmz39pp65w4z8s1n";doc="1xyq88jcg6p7lc44n2ky7538r23d4n0nhfkq25q7xg0dh8whbm34";source="0ps56l6ah0i398f38bxy4yg2i1p0ajcwczxq222hl5176g2z28jb";};
-footmisc-67556={run="1xyx6fj56vj49m9848i83jbq7k3hycx9pd5nvc3cd6md99bmx9pn";doc="0ik4rl9nmad0f9zjx600sxvlig6j3v0gw2lhxmkbs37v18p0xqy1";source="193ki23hrlnw0vkh2r54m3y2h54kzh989pk6iwjnfgf91d8nijzf";};
+footmisc-69729={run="1xyx6fj56vj49m9848i83jbq7k3hycx9pd5nvc3cd6md99bmx9pn";doc="0ik4rl9nmad0f9zjx600sxvlig6j3v0gw2lhxmkbs37v18p0xqy1";source="193ki23hrlnw0vkh2r54m3y2h54kzh989pk6iwjnfgf91d8nijzf";};
 footmisx-42621={run="0f6csxzkwbf4nlw6z9rfyys1f7fc0vpdi2m36g7y3k9l3j6wb3mq";doc="1962sivh4jipsxd0z0cpzpd0jdw8v4afbpzfinklivnla2c9hp4g";source="09w5bfx94533q36z3k0a1sf9jx6acz85qgqypgn6b0b5mkhjsmar";};
 footnotebackref-27034={run="12vxch1i8x0k8d760vgq61i7j3kkylgbcxj6ggdv8wzd20h4izyc";doc="09dvvnjvika3617zx438ca8z3fmdkqbxx9y73pdhn6gaggfmzr72";};
 footnotehyper-60374={run="088mh736125609bliars0scv7v7bx315ajk801yj28vskg0ki5d0";doc="1dj6kpqar8bh0qk0qma2ckp68cll2ncllqfda4ffmc5ljmjp98m9";source="11dg59x87a8yjq8j413gk4p0bmpq8awwh50c6vs9rrcgv67mbycs";};
@@ -1500,7 +1511,7 @@ forest-57398={run="0q1xd07z1ccqrrfl3x0fg35sdv2kcyl6vgps7f6gpk5yp8j7d392";doc="1s
 forest-quickstart-55688={doc="1bjy0bfkb90nv2dbdw8hdrm3dvm1v0r0m7a0l44ckw48vnc6amvk";};
 forloop-67017={run="0mqlc65g0khj1izxpgm7yya2klazsqggz2xx61ni38z7kqhqs58s";doc="11y7afy69dkp9rabj1186aw1d8vfwk3vp9raj0brknka6wlgcijc";source="0k0skv10m7z44d20v17yfdvg6vpn6m9ajn973d6da9cshxvszyiz";};
 formal-grammar-61955={run="044fz33qawb2s81c8walxiz0qjam7vsvsnsvqchmf4izd0svw998";doc="11rj5pbampim79ffipm7asn8q7nf8yy7l96j0j8xjyfxcqqld6ca";source="0xy21vgswxjr80q1qcx633g09qivgkd3i9gf0fwjmykva23q603z";};
-formation-latex-ul-68791={doc="1mphwdmz61p473y2skv3xw7r7dkqfqr1qygnbg7ih1ai371f7hdz";source="0c4a6hgyvmfav048pifdczscd4cpd6pv0fbaixsaflkrpfwkn78l";};
+formation-latex-ul-70516={doc="1jpw01lsl5lialhk0n46v47ddb66wn6h8s3crrp06m0fldaaq84x";source="1vcchlg0dv2cmkjx16hbbzkvppva3mqxn03h6m38gg7q9w092bc9";};
 formlett-21480={run="1gjdgl26ma0sh15yrgi8kpy4sq268jkz9jmyw66iy3d4k9ybggsm";doc="1mm2m4qgiz0aplbyf3rwzhpfzhyg3mfmzc00z35kv6s5phcmlnf1";};
 forms16be-51305={run="140xh5578cpjn6mfwnghy38alz4av25gha09gl7c7qxljgpc2a7i";doc="0wa6pyn8l8d14d47kqvwvsnkv2s9mxfhmzan7jgzfrmkb74h7xlx";source="1l3ci86wl6an48a68vfh4ynajq6j3br8wbafm8w8c0x810hb141w";};
 formular-15878={run="16h5hf50ngqarcxk4gjs9x9mcycmj5cqwy5pb6ffpj9xbsxn4r8i";doc="19aq7sbghvrif72x7vzvabrhwj7lgsddsbdqbkv9vhmp82452vyy";source="1s8ngbw6s163dzj9mi629yd4fisxr1gl8w8i618my426szc1vrcx";};
@@ -1514,13 +1525,13 @@ fragmaster-26313={run="1d59sjzlvygwq9b02gbrfra4cnvmygza80b5rkghhhpa0n3xnx9p";doc
 fragments-15878={run="02m23bx1p090m6w1frb2k6m0cv6jk8d9fdbmjscwa7c9c55qh5gd";doc="11kj5gczbhb0imfsf30hc74s50iwq4zfs79j6kv62ib6v3p32mm5";};
 frame-18312={run="17r35x914f3h72drsszy74ir5phcxmkrcvwlrfd11li0lsmiyj62";doc="0888jcccsnlpzkynpg8mvxy2mnb2d3xz41bi341q9fdbbzs5lmnn";};
 framed-26789={run="0fp0zbq3bjfqx87zb01m5ffn8kw8044vkz8b9cfndz1ki64d9x4r";doc="1pjnqy8zl5zkadpkvwa35khwjk1nxg9pq0h1wqwgrdvqk6gj0cbi";};
-francais-bst-68686={run="0irbq10fv35k09a5jdyxa9c1x56k1adxhs3rmdzs061a3j0pp1g1";doc="0c39ya4kdhl5hialq3fggf6vkphg2nb166avfzs5708hc119ys6k";source="1rlq3j5xwci45gb0mx8p4zqp4fsdyck4qzdmz4j8p25mx7hybcif";};
+francais-bst-69866={run="13zc3d8ppb9p53gfdssqcswz5bp3pfacxdk0w3jznfznkwpz40pi";doc="07ya7r02x7vj1n7q5d9z520vdnlrq2384p0rk826g3mhi9372jna";source="0zbk98667mz8lpv89c31q8cblsqs54cjn8i3kg49pi9avb92848f";};
 frankenstein-15878={run="0zj1gcl4gab78qcs2rv5i9y4q234iz731x2hnab169ygql4d95i8";doc="0x1fp5xc2qlx0pac2vqm8567fdh8i97k25ixr28w7fzwl9xnm91x";source="0ag37z3klcy0jvcvvj7v14clx2dvv6q43lh6gw83rpsx51v9wza4";};
 frcursive-24559={run="063909r7iga0cirxq8qx538407qly4p2a440xq7c603fmgcb8n6k";doc="147sa2wcixanwrhdh3ns8fg447zh5f42z8x0aw41xhk7pxncqrml";};
 frederika2016-42157={run="1pi2bhbxw9xg78w6d6k4l6p1qnm4nh6m8k3bn76kv4ascydc9hfg";doc="1vyy278j376swl2sjwxygqm6mi6s51aa6qypgpw3w2g5kpsqqxqb";};
 freealign-69267={run="0b1b3laxjjjr45cagwakv8c50c3cmw5iycd76k94d9nxhgm346vf";doc="0pz47rbacyyqyh075fz6pfvjpi32fl859mckpi4v0kwr9yk6k5aa";};
 frege-27417={run="1n0qak8xsi8wlg7r2daszdvi3hv9gmp7i04phcnx4hnlr68842d9";doc="0hb7a6c0i0jk8cvv2vfr743ysqn2vh1y6amy7arc4zafi097nwly";};
-frenchmath-69211={run="1lf7g6kqv9bv6g21c99mj2i0g2v6x740rspibr6jxic6s5q4n3s9";doc="1znx1d2cwa29nic7jcwx1kacfhpig03xj1gn0ap94nz2q5rr1rhn";source="06a65spj8avshffjfp4p08051mxgagaw38i0i8qlk0jp5x89f8ml";};
+frenchmath-70163={run="03a7mq7qb0sv27ly8qaxm1fjmrc1z646las5f85rzp3hdzam6vvs";doc="1d1j2wq15kv8bsjbm5p4im6ixbdj3f24vh1a3b3a8419bsqq60hc";source="0vdh3g4dm3za19wjfbgy84pz3i33k3h17028nwa1wsgpnlnxn8i7";};
 frimurer-56704={run="0d2534172sqpzg4zj2fz0k1qa2m627jzqdnpgcak4fxighvx1733";doc="15g0293xz99w400l3rj99849va3swi2j8hcj522qiyzfcx5j7k74";source="0qxpdybwz0rp748rqfs026jvps026sffq3c7zi7bdy8a34mqmgsb";};
 frletter-15878={run="11gxmdwwzwwdlrmycdxi0y123hfikhp9jv1jjmhgsmsmmxsx13ly";doc="1pzpz0q1hplni18m6wkwrhknw15h555qfdxfnnfrnrmsa7n2q2bl";};
 frontespizio-24054={run="1rdgh6wvxk0rhkadcrb1f3ymgxn81vbx489z16k88wkk1p0r4749";doc="0mwdqry0h2f65vrki3kvqpjnf1nm5n9v3ljmn77nlvkarqp2kb57";source="1p2c8sdrm0ay9nz0dqrcjigzsjki15fry6mmhqcm3gqrcscsk5x2";};
@@ -1533,7 +1544,7 @@ fullblck-25434={run="1bxnzkidpszq5l2kfilrn8ny1gw680gcx9gz9975vylh5kissrmh";doc="
 fullminipage-34545={run="0zy9vk5a0bljq3my17fw4jl8rhd7vdzcmw550ps8zbjbhxphssrc";doc="1n9lzacq920lmc18rhavz17xnm92lm964pglf6j8i7yyj5aib61c";source="16q6f9nss1jx3pw1xq0j82y4gn70hdjaj9m7pq3947m6bkyz92vd";};
 fullwidth-24684={run="1kis1p158phkwxdfhpb4ihfs2w7wywj1lighc44sfkpima9c4nmx";doc="056k7w66rh0z1kxf1m91sbjhg8kdy9jvfkwm3jmi5mkclil5ihi9";};
 functan-15878={run="0vxwabhbnw3dlxzlqz4yi4l4iw17a0w7lj3gh2q4l3p9lhzr9qmp";doc="1jxx1inlzrbzm784zwkz55ykdqhn9ncz6cixs2wqh2sx1dih7cwn";source="1a2x71qhjdr2ayii65qivjmwmxzw6id3vljd8nv3l04xnp6p5dnq";};
-functional-65485={run="1nzjb56bngv2h36vlww234fndanfi5dbmbz3y1vjxxwvahhqn0cg";doc="0iny1h6fd23zws5r53kqbb126rcphdkns6w7afzwb7n5hk414jq6";};
+functional-69929={run="08j53y7lbrimnydmh5svmd3v4qs4sh7ir9ng8g7rzpl0rakzy2bd";doc="1wsqln5346ivbcpwzjhfilsgc90la1is2r159bqipg51jnlicg1b";};
 fundus-calligra-26018={run="1rnrqblg06qkwcy7f460pd1hnh4bwl47zyswa1iv4iknx00rd8a2";doc="0jvbvalqyj0kyf6cwr6zf18ylckh3fwpshwhmnv7ldg5r1ylia9j";source="14a0d7d8mlsw7qwpspqc2rmcdyhnfy6l7f57bk9v9jc8pg9fxb6m";};
 fundus-cyr-26019={run="02zz37h71nqq0f4sf00fiw80pq1q3yadnhqm2j3niz13gms9ydl2";};
 fundus-sueterlin-26030={run="1zpcss3lzhc9zkh8b91138ycwj8pihch318zr9pc6bl3ifq37wq1";doc="1pjka7j1378bqa32h0b2dcinf6ayjmzcbm4c1sdw6dsvrzbnda3f";source="1y4bg8r2hmpa38hdgkrk99v87cphikdb7sq5x9aczbmwwgmgw8fp";};
@@ -1549,7 +1560,7 @@ garamond-libre-64412={run="0cj6sla634vcp3ih7x4fg4iirckiizdggw8y5ddxyhszf1ygkz5q"
 garamond-math-61481={run="1bjskvaqq4glba1vmcksfx69p6r025sl8aynlbk46kh7x5fa6vj8";doc="1jb0kcy715fmxhbzg95qwilwnmp45znh37iisiny1dzy8919nlbh";};
 garrigues-15878={run="0qr2ak20416p5zlavcbihxkjvifzwj3cf03ipsnxlp4a0r3m0hgy";doc="03cx077kcvny07dkg9dpgvdb5vh4z7v0c80rn82vqj1l3i0qrxkn";};
 garuda-c90-60832={run="1yz7zpwdvvhzcsfcz4dc40nnaagwrsxvskc5bymmdxv1zf6m3npf";source="0palvrkdf8c8xhx9d2sxvch0lgycvn10bfszzwlbxw6qrbnpspr3";};
-gastex-58505={run="08xba3pqif87wn23vacj7amqi97yk2qgsmmawpm3r3iirir2l1d9";doc="1b5qvkpvdlsq85yllixs638p1bwv9xfqy2mkzyckqcwfcdcv7i21";};
+gastex-69877={run="02mz7znvwjsxf6n1q1lfx1wgqvl0zlfq32a4xkcad7gjr87v16bl";doc="02ihbradpmzz8h7mm21nqvmma0qqsa4sp3yzf4ll09pp19i9zhh6";};
 gates-29803={run="1vxn3j957za9j6ryf3nhy5r744gr63m78xzvlh0z10sr0bpw46v9";doc="0igxfdxyiz280ryivffq6c7y84c16ip1av8wn11j6x62dcsrm58x";};
 gatherenum-67201={run="1b5j4106mjdswm519nb9sswnpnna5v6wcy4p8xbccv01044iqlk1";doc="0afd1c352075ix46y0jrhfwlbsaibchvz3xs916qi3hd8a90hbpx";source="05dri0sgr8h29q3zxcsyhplhrkj1wllfb42d8scy6hp4mkmbsr06";};
 gauss-32934={run="0jsbvm7sh7bhs5yfl17fj1gbdqgpm7qchf07y3p7k0rxxg0f482z";doc="1f6ycdq3lpylkdwja4f89plz7wpnz73wzgjz74far6r9wr026443";};
@@ -1563,6 +1574,7 @@ gelasio-66805={run="05rr0vdiw9jd2qzasq22zfpg901l9jvighlhsgcpl2n3cfwa96i9";doc="1
 gender-36464={run="0skwbiclrpl1n55dr3lkw86dvqy3f1n0b271ygsz6rr3qa43478r";doc="1gamaakkqqf37cwwzxjbyfhz25gdzayzdkqk60xls9flp7227hbr";source="1l5p8ib5lbvq2b8pizpwpbcv8aslmi8dd554win7ssd6vhgb68j1";};
 gene-logic-15878={run="0fxddiswkvfzbmcckl6mhyipxjlr0yf0579i792c6rvrqs5avyak";doc="1nd4bxrq1g1gxcrs9lvnakaivla37p218pa4ns6jyjmimfl31gxi";};
 genealogy-25112={run="0w15jrd6aycdjh8qznvm549kzwl15v2zvs7awgk96380nzcsmhqf";doc="08fxhib7wydjbd3bf24kw6zbbz2sv6fhgmg4q2c1lgxddmm8mpzy";};
+genealogy-profiles-69580={run="13371cbcx7lg3lkzzybp7vdlrkw5nd9v052d749jygsplqby8f9m";doc="1pvh2s76kpxs98l4yv59clijinjg5agmniaibl8srpwpgcdx5ni8";};
 genealogytree-66513={run="0947fmawi8xzmv9c4k4355fkgjivkkjrjglklk6ar7jky2xsg62b";doc="0wvqkdhk1lmvk79qla34l14hvcjmw318vddz1dhl21g0cri7fl60";};
 genmpage-15878={run="0fr4m2y3vfymlwk7ik7rymifyam2jhbxn3qr2sj40zbcr9wbah6n";doc="12fxwrz5gpswyf523wm1pg99zilkgrpq8z3ls5gw9j7bdb71nj1l";source="0q7acjs7g1xh5kcmrg20k9jayaf5vxz5p5amjjd4xj4rnb1wdlj1";};
 gensymb-64740={run="0rsck4ysx86d4gfr5a1w9kam98zzclb78v5hgdmhag74a0qs1n0l";doc="0826rq87q35knzmwkhz6ipigx3s3hkzcypy977qa0r3ibcbdr7ap";source="1na3aqqjfp9p9zb7hyzz6wdd0biiigih9fq6bxygcwflbwbhks6z";};
@@ -1602,7 +1614,7 @@ ginpenc-24980={run="1brakvxxrm1gahl609psp4na8ylkggfs534nysnrijq6vf4r1ryc";doc="0
 git-latexdiff-54732={run="0b7hafll82widr8vibaqqavwwzi7m488ypm5wx14y6jncfl8py9y";doc="1cbny4qkr8dg8vnxjnjawq9cjb0h3816ad66q8b5652rpxn3zqcl";};
 gitfile-info-51928={run="0qk6r9fiv44hamlqvsgpm75nd68sgj81sgy93zsylypp15283z2b";doc="053x23sq6657lddjyk9bzadwydfh4zxl78gxl1payxmbl9pj925i";source="0fnrwcjfji5pbkh4kdsishfy85gqcvcmfqxwr5s1n3bm3prgfc8b";};
 gitinfo-34049={run="1n8mm4g7bmiawd7l7xhx9fcxv7z3l629bj21i6j9s0rfd6c7mzz2";doc="1ip59qxlqzrn8y211691cv4bg8d0yxkyvbpxw8xpzg99fpp3isqx";};
-gitinfo-lua-68808={run="1brd5rqdx2s7s21lddkkl4ymvi7zcq364qffi3wzb55c87q5s4x9";doc="19c8bavrs6jqk0760b7j608xj1mrr2nrabzw3kdvgxy2azww70ld";};
+gitinfo-lua-70117={run="1qn7f0fnbgawhm037x1lrc36mgmq43mlcsx9rb3nl9ga4jlk0mqg";doc="02my81hc89i32gsvxp9zfqs2gzbkjqn2cbijwjwa578p45cz6a4z";};
 gitinfo2-38913={run="0k3vw12yh13q1v21bz7i3m32s1w49pk13rg3c0d0l1pcx0wwz20i";doc="0586h9c1kp5cg7gk67xhy5fbshpskrmfb81m4xncaxg6ajaljk7n";};
 gitlog-38932={run="1v0zpfry2rz6xvm92gzhabc9sa157kylvp6jg298kdsbr2limn3k";doc="0pd1f42qmka0wh9b8m15nk69p6isqp74b5qkjg6ymwbabqxbcbl0";};
 gitstatus-64662={run="0kn4q6c6379qs34hmvzixvwkzhwbn3bnrn1pjwsp8lp66fv1wpv2";doc="192g75hfxg3nkaf0x8b142jzgmjzv97mpiravxfwpgfv25fayz0f";source="03kz49szcrpa6ij859a44ham0gbr1w2bd7z7p68vhwg2pcg8gq5r";};
@@ -1698,7 +1710,7 @@ guitartabs-48102={run="1akm3sbrwnbg9mzlm98zpgh187w61g74zdyq6lb21w7bw30jkxbk";doc
 guitlogo-55741={run="1zjlfd49hkq9qc1l3g974wxzw200qyiy9vbiai0v9gs627hxckwj";doc="0awpik3x75rky5w6rk9zg3cy83dgxs2l57wfg8sq9h35zmni875w";source="1hi4rb31mc3820fafyhk2158y67b90xp5wl6xxd0b5fqz2z28qnj";};
 gustlib-54074={run="1kqlqxwlx12hyyhsxyn470rgpzg6xw25ix1v5j4sski6nwspvn9c";doc="13yx3bzmbm1b1p5rbjdfsdlwxdpzdhhmm2xd05hi79wdfxbbby7p";};
 gustprog-54074={doc="07qx4xvyqb4p0cx0macjgyg0pcxgcmdxmzfsx9ah5s0dqvminwrc";};
-gzt-63591={run="01fn1j0blpinnm9hsq5wxsm30b3bggapd3q63yk2wzzlchyca98s";doc="0xncazgwps1140w7x4mhf8i8bn664dnfm5k62hihpq54vpwv6g6z";source="1ffji9j3lc6sd013d7ilkm595j6k6f5n64db57969p4mhdf4lskz";};
+gzt-70535={run="0z5n3ybgd2bwz3d0i6bl20bgyzjhfsfpl5b72y4g3mbap2d7yk41";doc="0jahxyvmgzzpxqr6lil6ll47biyipw402scn8agppqsyqrbjm3lz";source="0rkk1i5kx75gjrqsdrxljkv9bs7kc1wadl2kpr9krrmyz4wbq5l5";};
 h2020proposal-38428={run="1yz8bz4nmccv0v700zz7x11fjdqhs4hgkz8cd6bnqr3v0n8k4xrf";doc="0yd0iffrvahaci04bmnd20bszgshx28apsij1i35l1wjr1hlnfcz";};
 ha-prosper-59651={run="030zapbv83x0x1vh9px6klqnivygjhzi48fz40jb2cl17b38xnx1";doc="0i9714nqgv3ywxfybg3m9lcrng6v7ydxgfvxva7zpjpmsm3mjfvl";source="0ljl3szba1p1jj7fyw6qzm5h673d63hqwpsn1jzapk013rnxsfmp";};
 hackthefootline-46494={run="1l2iq2k1bil4l5nzxrfi4pg831kxn22ld7402y285hlhv7cj6qfc";doc="0w10yipva3ixyp91iy2y15n312gk5fw90960p3adla2w1p4qhs4c";};
@@ -1755,7 +1767,7 @@ hereapplies-68638={run="0h43apcwi4mdag2kpv9js9g8a6x83chskli7lxqzr8zqcwj97905";do
 heria-69058={run="0kqvcx9b3bg661i3mqdjxf8m8wx5cz223ifdniwkclr6h7nwrx9x";doc="0rn3ng7c8jyg438yl8i4l2zl1cwf62izfyis889py9axz4kc4i66";source="0dwcnmnlh5xp6rlhhgc70p8p6saz59chh2k7w0hvnr2p7768hfdq";};
 heros-otf-64695={run="10q1g30vma4fnqyga8279hqy2aq5wq6fv8d8nw22i9mm8ms2wwga";doc="07k4k2rrkj4wx8i018jfccs4gf2pvx8grcmz88lmw52im9ga002q";};
 hershey-mp-64878={run="1mnqsqsc99by1r80b6y4rfb3kzb0r10jsfpfgy7yragr8rr9xzjj";doc="0xh4a41lfds3yrj1am613c4629kvgvd9dfdfzmss9li3j5pa6jwp";};
-heuristica-51362={run="1sxpr7f4s5a1q2r76r7rj43drsmljmd32wxwgwj1x97a5k7x3jxf";doc="1ws9r2hhcqdgcdplhgvwhhl7c834i4rkk0xrsf14c3gwxg0x1ip6";};
+heuristica-69649={run="0k2ii054dq1hh8xj3n28mn0lg54r3xxcyzq7s3g782c11dg9l5kg";doc="1ccivk54m07h744dzl2162x82bbvz0vjvrnbxmmvrc3sk26fh2s5";};
 hexboard-62102={run="1rbyaspfnvcms41rakzrchjrkggd0m5nshpzyhcf36gv6vxcz8ix";doc="18fmqz39xwns749klira00vlm779gxja0i8g0rrpy6f1pfch93by";source="0c6a9q1yj2dam3892m6105r737fn9ygiksd4fhmbmqpz9rxlm5zg";};
 hexgame-15878={run="0s68961p0dsaila2a3symqswvgdhh4ah08aphqjfs7licn50yy4d";doc="1bfrm8mz98l8nrxgnvp8q54pr09ixm81wy1ds1ww4syczpw7jypm";};
 hf-tikz-34733={run="13232m6hybqv16f6v0bmgiyfqdfj407mn0h4m9wgh9pzwy3g1rmz";doc="070h5rdgfffjs8sb2gaximsqjzby2vcf9ffvpljkd3jzc8rznlbm";source="1df36m347jl9640jig0qrk445s0gxyk6rl74i19xxv567bxh9n69";};
@@ -1784,7 +1796,7 @@ hobby-68137={run="0ndhwgldn1na83jzdk1ab03asbbp090a2czyxipm5s82zmfa7bm7";doc="1yz
 hobete-27036={run="0825ng1xcpdmjihiffzjrvcvx2fqdz9mryq2bwffas22kf0zlx46";doc="0il6kl26r8wmm6jzii7gmr61af84bl9dn4szlnw34dgsdg0an5hh";};
 hobsub-52810={run="11j0fxsxmyd93px9j5fdarz1231nczdkfpf1qf33kcdpyb44jrs3";doc="0hdidvz42acsgy021c1dzlvshcmw6fz3pkqrwpk66qk2nnh30dal";};
 hologo-61719={run="1jhzw2bxl0nvspr0blkglm6zbmrab13fs601h54gnrhcw10mxqwi";doc="1af7406hbdvb2fb735i6y7wi4bhnq7x7sijf63zl0klpf9pii8l3";source="04d83z1pw6scg4cd1616ix291zi9dz5nnvw9xc8hd4lfxf15nx1c";};
-homework-68773={run="0h590xk9dd1vc8a5bffwy10lfidz1gb20zrrahqv4c3w3fy6qp79";doc="0q218128c6f9fnbrjinxcxql0gvlgycnr687k0nfrid96mwqm9f6";};
+homework-70050={run="1iqf2x1sl8cd58174gr6ksj2p7nj1pw5478j5aaszwsc3lg5kbm8";doc="0bc5yqhd1qj0jn17ciz44xxihwkp7xh6qjjq133y7ijmik1blli6";};
 hook-pre-commit-pkg-41378={doc="0mikg4p9wxb28vgwh1acgdhwa2fqnc8rw3jg355d6s137m40awc6";};
 hopatch-65491={run="0r294p098z0qykrh9r4yxmc0w72mz1nmxqbv418pmbn15wgj031v";doc="0qxa6maigbzx7hc3nss3wmvcpyc9wvhq0pbzni7j0hqyzzsz3vv9";source="1kbk80432fpq30zgix8waxq87kjd2bpcv72idaly8yjbj4pa1l1x";};
 horoscop-56021={run="02kazmk5sa40x0a4zb30gk9lkky0ak825gczbr5z8wchwpy4i1ac";doc="0w9sgk2j1fzkcfzn76zpygrlyi9fnimp92mygsq2z6rpblzd1qyv";source="0c6zkcb2057y9x7mz4q3nwin8h8ax71yaam21m91gk6ad9k8l4ij";};
@@ -1793,18 +1805,18 @@ href-ul-69359={run="1gf2kcqh60ilzkd2i1fc782db4nxqgrizz6h2p0i2lvc4qplj95i";doc="0
 hrefhide-66189={run="1lbfx61xyvnm1r24h6vrp3pnmci4j5abxlaanhni19j8gvqkri3c";doc="1sf697hjryz1l82ag8h2kpxgmwa4fzmwb6ki1wsnl0y1qkl9m1k0";source="0p4vqr3cjnbdsrkv049jdd6yr54xz40lvgdyx6z2wf79k5fj4z1q";};
 hrlatex-18020={run="0klc0pb2b2dcixaqhgxinhy18rp0lwck7129zi5qnpygzfslpdws";doc="1dlxj4rv9gaxd6i4ns4zmhykhxwsacw6m3m2jmk2lkc3sw68hsyh";source="14cw35brx8mqv05zbgrvfmmjhxyryx7dmj8dk0fkimqbyvhvv9sj";};
 hu-berlin-bundle-67128={run="109hjfg6p3g54pz7n6i64ggqjmvjqzmjp6ipddji0mnhkhjfww6b";doc="1j2vjhk6rnsj86a59cd081vfcqnb93lz6szis05cs53k8pa7yh52";source="05x8cwvh5xkjjw069lpw7pbsnb5swvf9k2c6l2s1v0w1wrpwg7b9";};
-huawei-68336={run="1byjwc6yjfv8ynmbdjbljgm4592aaz0dscb4plwy5qaxiiffsjxl";doc="03hicqi8j2mzc6x1ay0blwjl1aj7n5j590nf0qc900zad7r8jlm9";source="1sfm0vbsrm7a8xa4jn3ncnmyn6wipc4pr34gk9x71hxyj0hq3qm8";};
+huawei-69871={run="129xaknawlcr97mfw5dz0ipy7hnhgifl6xkb0fcf558s7gbpaxpp";doc="0cy8wfqpbl4cryndsah2l6bp50l5qzgvgwh8fm3543q1v9s4z0rg";source="04k4an9bsf58jkwzwis4blc4dmphgqb9fg9mx5pj4hj8y5gaijhy";};
 huaz-64723={run="1vjfx3c2hdv2jzqz09v3ki59dlmgnw0ff6m394nq6gx0qqk7xl6m";doc="05xsh7jvy9y5v9vl25br8ixxbyfd754p0hihflrymkv97f1b0nlf";};
 huffman-67071={run="17pgzpbhah5m0gljhkqymv5lxpl5bxxgif9m7rnad20x4nmyzz68";doc="1r6a1i3j8s4843gdvii740dl5rbilgahcrs2xw1zcqpq8z4xbfnp";};
 hulipsum-56848={run="1wfcsaff7rja3n0151ddzbfl9b3gkfkwq0vp35zcrd80xsqlw935";doc="0994kin6fvbk4j9rp53vjp6ci050zxsf6z3qi7zdfxifd269fhx5";source="1a5mkkl36dk60baffj3an2sa382p39j2sdrgadczj5r9pm9q0am2";};
 hustthesis-42547={run="0c5akc97v3fh3skxpgmffywca8kyswmaypkyxdzwrqb1k2z4xknp";doc="1llsyhbgdz9k6swry84q539yjsvcxj6hgirqcw4vbvsdxxxsbyn1";source="0nqs1ifkhhzspdwg5nbqgpd2309aw9r65cav51vxpn2abss1q6a1";};
 hvarabic-59423={run="1cagm9zxkhrck5svckh7i0c3zx48vy0h6f2nhishm40g9q9r5qay";doc="06g6wmxqgfj9zz2ph7gwgndgkm2kzpd4ci7pkwl5qm41ik96l7a3";};
-hvextern-69064={run="0f7c63yr0fn1zf5a5kidxz07gyd1nphms1cdsmxkf490f7xh6xxd";doc="1ynd6m5zw9fgh4r3f49p2cp0d5409qmavyd5c9ykzagzbc39f0r2";};
-hvfloat-68586={run="16h12i3s0n4cjlh9pcfy1s4q03ln010dyma8myqpjqwaqb6wlcmk";doc="0cmlhq6pab92qg2bslk4q4hkb1sczyqxknplm687zp527fzklasj";};
+hvextern-69651={run="03wma227maj0j0f38l03vnm9hvqavs70i17nczsi1bj9kyfbm7a7";doc="1qh92gavgygisd02hvbnp675mpv75mb3w98zhb67q37dy80v7s4c";};
+hvfloat-70400={run="1xs6y5cryvsqbwc1cv43lk5jslmi03xi4z24658w09yxbi99lzhq";doc="1ahmy559jzha5jack3h1hnafq27lp7zl5wsd67m9vj1gny7zcsqb";};
 hvindex-46051={run="1wk4q29iyqrk83kafwhah5gvvj2ywpnqzvnza6cwrkb85fd1q2i8";doc="0vcdmn3xc4cm3rkdkzi0qvqakgkc3hrgy8nycr5c8vcb6xaiw0gr";};
-hvlogos-68568={run="1skfin78zfp4wlggm0b1bn1vjmf94nia0spg5kg4y781b85lyjw6";doc="02lwid7nznnll5mfpykxi2w6gwn5rmsg2ycm88p2hrbjihz34fbz";};
+hvlogos-69581={run="0g53pwri6xrqa4a1x277iqivhy7gsb2khj87b3r3vgxkbrpn5aqj";doc="17iph0xsl5snqp9xmnylwr3cp5z0f1f9bh6m91scw79p5nl6rlyb";};
 hvpygmentex-62405={run="1rnra0v65wmz8yqwfa6zqqswx0m7j54z6wpzvbrp2d5gx8azsdv8";doc="16r1sqsaw8ij5jxf0ygm2kgdhxpzsq5g61jhj9rq0zhpjma7fhdx";};
-hvqrurl-68693={run="1lxpmj84cmfrxw456cm9dfcw1zxb5p915h3jp1x3h7w3a2dnnyfm";doc="0gfsjs5q90cip5z0dz4qz0lb2d3kvm5jja6drknh3lddslak1lqm";};
+hvqrurl-69723={run="0kyzp9m2spgzyz5swrrm8xizim2mbjpi8w8xax0c1llj34k1m7vp";doc="14939z9p5f3h54n0kn34p29fz2smbqdchxakqx7g52gf7gqmx25d";};
 hwemoji-65001={run="1vkflwxx8c0ckx7kz9mkh2qkpyxjjx9zmp940p9w93x4c09bs6l2";doc="0i18fcfbvyv4k578bn00w7ngk5lxp29n1j1i52vjwc4cp25lfgys";};
 hycolor-53584={run="1dfd149g2k8cq3lw95z6r4knyq1mgirdqnk9c4lmd7ip4rcs0vi5";doc="1pc12vbn1yak6l6c1fgpnj0s88fg94nagj4b95mvclad6b546g71";source="1f5jv91vsib5vk4byr0481a8j5pvbwmhfqz2qd14ck2vw8laz4ap";};
 hypdestopt-56253={run="1753c7vjx3smnhl1iylg4x0sdcqfg6gb0wdbwqmlass4qdn494w1";doc="07a2dpvvyj2r2691v8izjnqjksna1nm00za4sva1npcrhkc2qq1q";};
@@ -1813,7 +1825,7 @@ hypdvips-53197={run="0ax6n7ki47jyzp5g8781c7rv54hwrl0fg7d1bwzbj9bmqi39df4v";doc="
 hyper-17357={run="12737gd2nmnalkgl4d2sh45r4d621zl6g2zcih98m7dw8qr38w2v";doc="0hzl3fzgmn6kyl6p4d98l9ycisfhb9v50a1m6n8q1k6jpvr10z9f";source="09m0kdcs4kqksqwxf29yq4l52kb2mj5pxkry010ibwqw64cs5p74";};
 hyperbar-48147={run="1bj0v54k85isn3p48vmiygcvd3n06r4mqcp75hf96mmp0wvmczg5";doc="0fmrz4hlzd8clxx150fk4zbkdgbnhg3b7ck10225b0n1lqgnlh0h";source="19x81f6bki5mnx1nblrl0ji663q0pzkacy5lbjsqyr7krdc33fyh";};
 hypernat-17358={run="09lnsw7ycwkk71fyjk8zwgzdjv8ff3k028q7hr27dqsiyg4hjg7a";doc="150ayv12ym9h68a09h1xakdfzccpix1pff9blkzjq6iz5imzzpr1";};
-hyperref-68972={run="0jmgr56a42db36625s7yxv9n46qjmrhcs3s9p91l86xm6g32nzlq";doc="1s6ykvsm30z8nds9w3vnj7k7h2gb4fajkchkigaliyv5p0bx5q58";source="0gfdzfyclccssg4yc2mj1brwk7lm70jcsklcxzmxyarchsnrx7jl";};
+hyperref-69523={run="05yj1g5g4dr53i1v95x95pk6q70p7nr92k4iqcm948km567q2ar4";doc="1kbcilml3wbw2rpmvn85hmr3wss907n0h521d20kgbjvpancg0p0";source="0vm5ma9xz5bi59g92dxwn7aahwdkcprx0kb346s3l15pw9qhm1i0";};
 hyperxmp-68251={run="1bgizrwr5wpr8qprjwyf9z3f8jw0m1sq8qzw886j6lwxlfg6fp9k";doc="0srwvld1grn4smw2pnr0fp2082vvz3x2bj4lycvx036991mmnr6h";source="10ll53lhsqz20cp80mvwy1z9qna1sswappy2ifz71m6v304a1q9v";};
 hyph-utf8-61719={run="14jj24fr6v74vj8wi2a9k9zk9vnrvmy1ni4zn24dl5fdfw75n5ik";doc="11n1blnx9i7q2dlhyhf1dxs2vnldc9r8f3k6diix0i1np8hpz05q";source="1cff5ijmpxc752n6cmpfzn1a10ihrkz7n9l55gz2k2q0a00m2ssh";};
 hyphen-afrikaans-58609={run="1kn57mzrbk0qhz69b1ysdqjv8xirsb40yz61jx146kqc4p1y96lf";};
@@ -1892,7 +1904,7 @@ ieeepes-17359={run="0nipchw9hdlc7am3n052bszilwj192pfcnc9p5alqnffrd8c4rdj";doc="0
 ieeetran-59672={run="09j24j6kpgjx58yghh902bdpkns025v9av6ym2xwslmv1ya31pka";doc="0y3bw20f1sa7dacqwrwc43masap5sz23vna8bbkf4p74rdgl3bkn";};
 ieejtran-65641={run="07y254kl5wanv7d2jyzhwlf5z6n542217f5n7gdyrm4jryzhb0ly";doc="1l5cyqlsamkn3yjdia1zbv7lianq8jcjl83pkywimxnybw0kvdbl";};
 ietfbibs-41332={doc="18ypa96z1gclq4amka28sv26pm7lycak68zf4b3sf1bx4ldnzmxq";};
-iexec-69230={run="0fy58y8g2l6p1xziajsf5g1pvs8nplj5ml5jwakl7czjvmxylsaa";doc="07r3jc1wsfkbl0himc4ihzshj3n3hlmyb3js1885n279n6hn63vq";source="1afja904bpr4a753khpd4vhafw5gyspmzl9rj79q31pnqjhnacqg";};
+iexec-69420={run="1fn85bszr8ryaykafms3y0yfgm469vmikfg2mpajyn5bc7pmhnb8";doc="11j9lf6akvgsqjb9h9i69qxxkwa8h2092v4znf8yjrdcasd4fwbs";source="0254awws0vimn7vlx4gjxn03dfahdzwzvmxrj6x5mmmw32xvfhhh";};
 ifallfalse-60027={run="0pn37mzlkpswyykciwgfkw981098gccqmp7wllffr39qxhcj6gdl";doc="1583p9f3lv7kkjygqv368ag70jq2b184j47v32aqpgnwlmyn55jr";source="11636chvmy2icfq6f7mvdq0fpcn36yl15g9ffpp0flqdq7c8nd14";};
 iffont-38823={run="1a4zx0mysk6i7awvcjv2y1yid1k160icrkqkvw34qsgs35qnqbbq";doc="1iqchl5nra5ldmv5ddpwjcm84whpsxym34vphj2zxvzl0hqwrc2n";source="1x187pafzgg7h2vvy5dfc44y37q45lkzqfkxh8b52pysxxl23014";};
 ifmslide-20727={run="1n4dmmslpsx9fv9wqiipcg04lasym2fbgsqkvvffqmx5rszgdpha";doc="0n7hsymjs1zfjc5gbn26z2wdl5qicc7pd251s0h4qnfigq3nhr08";};
@@ -1981,7 +1993,7 @@ iwona-19611={run="1gf8kmpmp2cjz5sg0lx8j0kr67a5xshjkghpiy70jnaz7k8fbrgb";doc="1sk
 iwonamath-68144={run="10nr9phqmjvbg9hg7fz11dap8ncnxx0pbpbz56pna5kj37znmh7a";doc="0550vjbv8b0z4v0zwgkiw68fg02aj8nznfsf0qpf3isqyl9d94cy";source="11f6m9969lcvp3cw2gbdv4gg4ggisb3c9p090v7nzzyadx4i2kcy";};
 jablantile-16364={run="07f298cfha42q2d12xihaqkga2iv1id2wa5ph8a61z6ckhchzz69";doc="1lp90rbrji8nld0wzry2nn0m2zb2nrqnqyy85p9sh9rmrplhj8f5";};
 jacow-63060={run="1gqjsdzfspnpps2p5qmxbgrkc8bxihmag0w2xrvm26afmh376djf";doc="0p6xpz5n961hyfzjf7crgciig5rl95wkylikmr6gb95bskdcybkg";};
-jadetex-67493={run="0gsmhql8p421dyyv1b021sv0hsnl2y4m8wj3vkcabhpiql76yfyf";doc="18ljn0p607hm9655v6z6xs2apkai20l2mlxwyb2asqa72s6x79yb";source="0vrqpjn64qlyszf7d2vwkbd1y2lj5lld6w9zz1jqz1f0arhq33lj";};
+jadetex-69742={run="0gsmhql8p421dyyv1b021sv0hsnl2y4m8wj3vkcabhpiql76yfyf";doc="18ljn0p607hm9655v6z6xs2apkai20l2mlxwyb2asqa72s6x79yb";source="0vrqpjn64qlyszf7d2vwkbd1y2lj5lld6w9zz1jqz1f0arhq33lj";};
 jamtimes-20408={run="1sn588j6v6gxfgk31r861s7cpfk2ir7ip75hm31rxi8s8hv8s7s7";doc="1n91f0b0bjwbkm1rq5w2vwy6wlaizlp7qb8pxm2wn08b5a825hvs";};
 japanese-mathformulas-64678={run="0x9k23g95j4wqf02ibj4zpfgxa3vlhgckax80lwm5flvr34bbgdv";doc="1iy8q3906bl7j2ciw8l3162pjw067qkbkdadj9v727x3lg29aay2";};
 japanese-otf-68492={run="1zwjissgwzkjrmh82xixax57wf1ycz239yl9wmcsnn3wcz04jg89";doc="1xzwpyzw3f13ij6xnhdhmxxafiwqmbjbyvv6c6cfbzdw5cpkvayy";source="1cs0daf9dyx5z397lak5qmanwvkbh49nflfaq6ikiqhm22hg3w1r";};
@@ -1993,14 +2005,14 @@ jigsaw-66009={run="0h5g4vrbwpbxbw9dwscw2bqg7sanh0a30bbhw48ff9ic94bs2407";doc="0a
 jkmath-47109={run="00nh8cf002lysvn6qiyy5mcs2n2z5ppr0x5vp1akbz0wwhkhw9h8";doc="07n2xxfwk0krbiaphfkkfnc8mgc8iqmmmdiz0cj6s7688rlwij0h";};
 jknapltx-19440={run="1jw24izfsw3l8bn27qci3mblmhpkal9wcldhjll7h84fgjb9q396";doc="0m3blfj4ninra6zn501x17q6b2qzckzcavgihgqmk9q51yibd5aw";};
 jlabels-24858={run="03fpym9q84g1b0pns6sdsb4jx78aq7sclr5fkm05ckvkk4v3wmsj";doc="09qa8y6axg9pvma507b9w63dwd2jrxnmd64f5rfd7wpznamhbc0w";};
-jlreq-67400={run="0sjgbc6x16psaa50bfzwq1fr6vlmgjwai5qzmf8jcyask21j9jxs";doc="1y5yajzvsy9lvy79q0ma9j48qbmif0nx9wpmi2p2nysfzafrlsy8";source="16mjb1rnr4vnc14na947aivcap1wr33bhb3w82y5nj5x4vfpycrg";};
-jlreq-deluxe-66115={run="1gmbc65qilf6im9xl26440kmvyn56ywc9r5sjbpfd4aknfpwsx55";doc="1nka16c0wyh7zqvqdn836ygxg642vzhsb3kpzwr2j3xkg4kmklsv";};
+jlreq-69932={run="1inm5smaynfsdqbcv8xiva8krsz7q37g832qmj93pqfpm1yjxw4y";doc="0m4mf81dd38l6lxff46lxjizlif1lhs8pxr30r67f27drvyb5r89";source="1hv7xsrkikimbcmd9qbhs963fbl3xi0syw6mr82mg1hnl72fkps8";};
+jlreq-deluxe-69971={run="0sshiy8iqhmsjp9srg24lkqpzyy49wglacy1qjg1czq7al27p8hp";doc="0bp2yh9996dr289azjhyj16syjp3h1p47cb57qdgqmig0s4xiwyj";};
 jmb-52718={run="1a5nz825jppq3pl1263w2sbm0a48kmmndppfpp7vi69n5j2248dy";};
 jmlr-61957={run="1vliagbbyy5nzfs8pkl71gy0zvjzgqibrh7c480aampwf5qi1gq8";doc="0mv7yxa1rn0qaz3qkzxh705ia27gqrjzpcqi5gpp340hvi8hm09g";source="15p4dsbn25gpsm7avswx8vw3ljfvwmwbp91qlzm4cabsb54kbnhs";};
 jmn-45751={run="0iq5ky3llx50smw80lpylv11jmqc51m5yrhlslz3sakmgdqgg1yi";};
 jmsdelim-62630={run="1087jag55rnf02r9s5v7brfqhqncibq1xr0xjq680lvb62f65ln1";doc="12k6m7i81d6sblgqijpizssnpkghq5snf6bq44lkxv1l39flzjrr";source="06kp4zsdzi2m26h9m99x6kqc0lfic96cidzb63mvmdfqcf2plba9";};
 jneurosci-17346={run="0ywl1nlysc5fk7v5cdmy5g5hylz4ll20nnqxsvymsxnayjm4civ7";doc="0a8almw0x4b7v3dsdi9cjv8vzg518fl90zyyxn24p614w3zr01sj";};
-jnuexam-69161={run="0w1jrrfbaa7wiffic6r2s6kr79zva1l9lkl5dyq9lmwsrkh1mn8j";doc="0x33wpwxriiirmsqk0a6jd8lm73vybcz1wn3lg29bywpa5h7hgl2";};
+jnuexam-70117={run="0w1jrrfbaa7wiffic6r2s6kr79zva1l9lkl5dyq9lmwsrkh1mn8j";doc="0x33wpwxriiirmsqk0a6jd8lm73vybcz1wn3lg29bywpa5h7hgl2";};
 jobname-suffix-64797={run="095881x3s3hyj6kzhymnzp8xcw89c94qrz5654kzs9mqc2iy28ss";doc="0ng9dzmx53p525c0kppl33i13xwdsamv0d6k1j8plfvjy86z3ay3";};
 joinbox-68003={run="0xbbbpw0yvm0hrll0yxcg46bd8gl77nb63lljk1pfak64b055clw";doc="1mr5h8ydiv0rh3a9s61ksmbvq9kd3wjaa4zx2hbg501dwmyx42li";};
 josefin-64569={run="1f93l4f6gvsnnzr0f3gpvl9y9i034rhxcdz8c282bn5jdzg93j7r";doc="04sva62hzfphzcmk4jhmp4yiahg7kzjcskviq31lhy83d3600aa2";};
@@ -2011,7 +2023,7 @@ jpnedumathsymbols-63864={run="1x9jdzl2hljcm8ia7w6b2rb8zbb41y7vyi88rvlvy3y6i5v3wk
 jpsj-66115={run="0yv7lkv7sr7qhqv0rmyislf0a5rcd125kqwbnfj3696cwhm5aqf4";doc="1bmms10hgyl4gs91i2kpds2mn9x41ks8fjrislj2zl8y3vqdkc81";};
 js-misc-16211={run="1b26v330702mbd9bviq6sr7pg0338hddzc84z55fsqjd85fp7zcz";doc="0bs30a1m8cbv2824xhj6k3jiv6dmdp6jjzsinhfdwiizc2kzriwv";};
 jsclasses-66093={run="0g59rxplv04jkjzy4x62lldf62glsr9dwgr550cpw91ws2izcx16";doc="0r3a8z11g2ngk97bd79610l6wnjy4rdgqv2prn3xcmqhrzg3xf00";source="0x8laaf3rw2z1587qx6ghvcmga3gykvahrjma7x9m8mg6ljh3jpj";};
-jslectureplanner-57095={run="1kciz53cg9p1f710j5rw8pilfmbiz755a24dqxckam98jy5g4b8s";doc="0lcq9dygfjrs63yjwdkjkssxyfx6phmbydh6c8lcfpkg984pfg5c";};
+jslectureplanner-70448={run="1wz5kd7q9735qc47ga89f47f4c2g5lf34pm05ck4y1yqlazzl11b";doc="0gbd35lgbv4z4s64sxqnwfk09c1pf69qh1839lwn4j5nayd5aavs";};
 jumplines-37553={run="1d5w5nh0pkmhjjjq9x2n4r72ygjh2mrbdr23vsrh8cyvj3xym4w1";doc="1q0mzjyfj8vfp42f8m11g6fyx60mb33g5n4i7pw9r0dfx8y4jvpd";};
 junicode-69355={run="1vxnwzvcikwrvx9wpvrvwn4k7jh3ndamri0y5a4wjc8m74l30f7h";doc="14w0dcn43s9mdgpcz0vhwh2w56n90saljnvkg4wad7aq7pxvnbln";};
 junicodevf-69374={run="0cch871h5l90pfjfqw6x27dslwh60yg95y2g1hyi9q8y36cjrs73";doc="14xl1837jbawj2lj16ym7yi4z8mp8zvzdz6rbkcyd1rbsfkbvfm3";};
@@ -2031,7 +2043,7 @@ karnaugh-21338={run="0a8bbdd8khib2bfk4n6527d5ggx31gva1fkqbfw2jwc5194rk360";doc="
 karnaugh-map-61614={run="1q4xrsxjmzvfhivg2xycfpfsbcb51nq1cq255slpc06q4ycyxbnm";doc="1mnwkmkf4lx3cd11rzgqq2rlfc42728zi6xj67x38wqqpi9ak15x";source="0vphzrj1y5r6zmlqg4wxykqqww0ihgh6rw3z59c23f1v3j83jj4r";};
 karnaughmap-36989={run="01b0ndcd6vcg4y6v4zbi6cymfprv0s4vhh20hwlghh3wy5aknwvl";doc="1xk80qqqpxagvwp1vfh9vgrqihakp7bkd89alb3j9bqaikgdiqdf";source="11b5bjdccy4p3w65268c8im3c6bam9ql60mik8pifwfbn36bhpqd";};
 kastrup-15878={run="139ynj6jr5iniwg4ry57b61bpalchwmk2lvxpzi6rzhp42ifv1j1";doc="1bzjky4plcl24fg5rwbjizixwfn7nkbzb6wwydxd7s2053zba07a";source="1c4ijjifc4lwimzrhp7ym5804fz5afmccn4bnfayypmjqpc8x6jw";};
-kaytannollista-latexia-69265={doc="0rhjjazj6rgm1paxv2qvspcab49s4swq6gg1gkx0vd0105r7mi3p";};
+kaytannollista-latexia-69876={doc="0w45gqrvbjfzqsx84flyf150zj8jw1wcd1zfhd361nzazqz7b0xw";};
 kblocks-57617={run="001mn33pf532iwp3d8likhbc5a4nsgq72dirbilbdgaxqxndmx12";doc="14qyg0sqrr5b04j2ramw9zcfhbgmc9qfyy5im9la4id4b4zxrk25";};
 kdgdocs-24498={run="1p1rcb0lzcsmgyqz5750pl2r73fd18k76gry45zfsr7750kwx7x9";doc="0b2j3mw8z0f3d4pffqw2r9zxpmyvykd36sskkhfg7wa4q521nf3d";source="0sipsvbi9254zpg0bmcfin60szx9q0vnx07a9bdm9ma11qb1djpb";};
 kdpcover-65150={run="1a4w58r6krjg4aqpkg9r0pk7553nd6fqx22jqk37vd08scgh72ls";doc="0lvzbr63skkx12d6nwci537zvqcpp563qlf29id2mki80gqsx29w";source="0crbr3xrv0yfd64qjx72yz55py9h7by4rkl09l06sfwpn5ysdzgk";};
@@ -2054,26 +2066,26 @@ kixfont-18488={run="02zwdm6zja38n41pvzay09f38cam28rr9ag6yy1m5kmw8421xp11";doc="1
 kluwer-54074={run="15av38sb3pzffxvrxlbwxzgvhnxhsjhkr3qwrlqswwq1sy4a2ssc";doc="1cx0xya0s27mybl37gw3yx1rmcyvrxnrp8c4012gvmqiyqyx4sjx";source="17w0ybfzs9x8yixzl8cfldqi42sq2jpkyap8i08mvp8krqgviz1n";};
 knitting-50782={run="10x5yxlrnj67gzd5kz7fvnz0nykvvi26sdm7i3n3d0si1vjzvczs";doc="1zm6s0rd3zkir9vxvbc37big9ygnyhcqpr4p306vqavvmf5g7p57";};
 knittingpattern-17205={run="1ydq16bmviqkbf9zkrlxsh33bfn8nmyzbbi1xwfd7nsg1bhdf6d1";doc="1x1bswn2sd1w19g1szc573zayk43zi3718a9yqfzqnxa0qxvxsqd";};
-knowledge-61991={run="0459xp20v02awl3h9ada0j9p0nasaz4fwv4whc6p4hwzzw86052j";doc="190gy5kj2fypvqa7b2s3p0j25drx6rd665yqq9s2gjsqzar18ql3";source="16xspjjic7vydd310ldxjjipzwl53dw726693q7kckbfv0vmpd7m";};
+knowledge-70609={run="1s4flnxixjw6z9w7sdhpfnpfj7lvzmjycnpzb2j3rxfafvzw8029";doc="151gvwqzkl2yxdzx2b2mcvfwb7w13s9m3c2y5vv4yrfy7wfkx0py";source="0r95p5vqxd6x9hbcflfq8d00kjvwk41r9harslzh9i3i5lfimalp";};
 knuth-errata-58682={doc="0rcyw7dqcwlnf9q421k017hrx5c0d9rra6rcr3n6wqmhxmdy5mn9";};
 knuth-hint-67373={doc="1fl3nyzsf9jifccw75grhdgyh5qhj4akkkyaa7mp6kpfznipqbmc";};
 knuth-lib-57963={run="0dl8z340n6m6xn7wari4hir0syxqi0kl2fhnf0bvnmkqhqwyzpca";};
 knuth-local-57963={run="02cf32f57fr6bngiv9xiw8bh4sq53p9br034ap74s80h3bgcmn1f";};
 knuth-pdf-67332={doc="0ig3ml88gqks5j9ly73qsx0kdii5m2i46f9d9bnh7nr9bjbpmd38";};
 koma-moderncvclassic-25025={run="0kgsbg4is158j1ssjwabicw38mh2cd4n1ggxinflb8i18xsmlgh0";doc="0f070dxww75g36il70gmrx9bn0f0d3mmh26fmzqb5zmf93hyhcsf";};
-koma-script-67573={run="1r2li64g7fk7qg4gb215z2q86by2f2ah9hjlqf0wcv8985qshnif";};
+koma-script-69755={run="1r2li64g7fk7qg4gb215z2q86by2f2ah9hjlqf0wcv8985qshnif";};
 koma-script-examples-63833={doc="1s95a3vgjxrn34cpcinkyr1yw2rj8s2973np71yxrwzi9dqdjpn1";};
 koma-script-sfs-26137={run="14qhq2h6pfjy878nkglbif7yjc12g6q32kl4xfc7kk3kf9syp0kf";doc="1cjraqcc13bcq451a36i5x2sbwj97zy4srrpaxybmlisvnza7vz9";};
 komacv-57721={run="06df0hx1rm87vgsb1g8b00ak77n6zs34c7mb76k22fis41qmm3a2";doc="07sxwgrrik3vadlp9a4lk3jmcqnvfzz5ir8l33zi7sjrapr7mxxa";source="0vd6ha60dz9ddmf3rkbbw5h602fkch3zifcjip9nyfs7wgnkg3r2";};
 komacv-rg-49064={run="0hcf3aw9r3hr01f9109rid9c1c36gmg9z0258zlqgq9l8qs0bryz";doc="1g985pnkhlhyf1285w9g1zx86vldyg45r4dyp1dq02pka5nf33fs";source="15v5y47jj0393vkikpv5mqdrrygs66b20gsmp03j6v6iih52w7fk";};
 korigamik-68204={run="0napq587a4j4z0fw0ddhal0h02aymjj92cbxmqrrw19j8k8g0b2f";doc="1lxkyaqcan6jxbvi1zavbavlycp8amz6qmah258y87yl08m8c475";};
-kotex-oblivoir-66513={run="1np1zib9alvhsz8q3pk1zg8dfd7n8gvcjk55c2vb3lp9bi8581x6";doc="1pmilc2sav4ncddm4zq279708f72wjf55z51g6slqc9mmykmb4f1";};
+kotex-oblivoir-70496={run="16fs5k3n326amyf1i1bnk6bai8m9nhg8n22ij3rbpa69q0639r0b";doc="0nphzrlnya0mcqx878v8zmqaq0cw9ky2qi8ci37nx3rrzmxlv0qr";};
 kotex-plain-63689={run="0nri3fagwj6mgkcx97750khsyqf94dx5kxkf5ny0jiswnv192v0j";doc="16376wpncchxpsl57g7rgzl96w9hl3qyn3i4qw901y00smr450hk";};
 kotex-utf-63690={run="0gpdg9c7dqcg0jfq05i5gkvycskipzyk4cmfrncd8mm7axv9qd23";doc="0x0y67bn28fy32awnjyq2zy4gqnafyvbjkhs7hipghxf87p6snrz";};
 kotex-utils-38727={run="021hgi7iw47b3c637mk0g4v52h5ygx5w1060bpcknjlbg0qb09aw";doc="0l7dby446xxjwk7vl1h3w4xsid4dqd8zdspj1f457jy4qwjaqf88";};
 kpathsea-69121={run="15dldviayvv84gmc25nwnpc99d7z28yarzzwcbrqm9w9w7v68v24";doc="0gfnyniykcdvyn20fbwfvkx7i7lwf7kdn6117rkcjsw9qrspfc3q";};
 kpfonts-65583={run="0i8c7agc9zs1vzjq8w0ghkwk81hrc2qghzn7hs1wq3vdbc3wk4r5";doc="1q8h8208z0k19nw7idq45hmzhvsrnf7g3708ch3kjwaj7r9y5lij";};
-kpfonts-otf-68970={run="1sq0p6d6q189liyf5kxmq4fgmwazj05mncsjkb1gz135c9acrq70";doc="1m9iz3llhzwaqfjp101ghpzy7yca497wnxjmf17n28rd6sy8kblp";};
+kpfonts-otf-69636={run="017zn7m936190pyzqnpwjzp3miw53ksrncdj4ib2d8czxi15491a";doc="1rmhcdb26i2nsbsj3r2v75ispg9w6hkfcnbvkg946d5wjy1x46jn";};
 ksfh_nat-24825={run="1qzn0n19lslf2qg8fvm844xx5k7s8a275a77z2ynbb0vs1w4prpw";};
 ksp-thesis-39080={run="0hcsni8p92pm3l7mi56jj7mlcv5rvdpzwbv1jv5f1hb6xyx2pn4i";doc="01pbmmwwjzd5cq4xxmx3fknk8d4q3fda3680g344g5s6ra5i45nj";};
 ktv-texdata-27369={run="1md2iv0csmr5f2mcdlb3lacccwifd6iv7yp6123gra5xcp06k4y0";doc="14sk7x2va8ja65a65fpksj2nd16v6rc1f0828gmm8j81d13cci6y";source="1ws256l59plnhmw1rycfznwpndni5i47liqhazddwbg2hragfahh";};
@@ -2090,11 +2102,11 @@ l2tabu-english-15878={doc="0dqmdr3lffhiaq7pg5pn6ia46miwq4nh5vimhd0qbf936amiv1mm"
 l2tabu-french-31315={doc="0c6fbmgwv2adlxbhl1shvpa1w6xd36gmrwvkjgdp9xc3q999l4dj";};
 l2tabu-italian-25218={doc="0bgfmn5v80rdhs9wmjj6mki29p28ip1d29rmgbw4jh4z6gd4sf22";};
 l2tabu-spanish-15878={doc="1p83xflgv8x7nq9mylh468zn3hz5pv3zxprc63q51fwx0ylxfdbk";};
-l3backend-69310={run="1cwjy3r6dq601z20kd7fdsyig980v50z857hdq46b2znh0x7fqra";doc="13rszdyiffb0jy3j38c14xijpssv0pp2xd5il1g2nm92rcihfyx7";source="0wix411kis8z2lybbr7kwr8i8azxiaik78850vvsiwljy3512inw";};
-l3build-69360={run="1s3p19ncp5m7yrn5f2qalb36bqpapdc3fyajgs8185z26j5dip7v";doc="05m9182znq4dymj10qpxfncf095vsdmfcqkym17i0dgan8dakmqx";source="1x9227kx0b9x7i7rymxwlccwip7hy8rhwy1xjvn9wqad7sy08n5v";};
-l3experimental-69310={run="0fy07favznm88ww65mjswrlvbcqw594kf31lki1wbvjw7n8pp0wc";doc="1yw6l043j6xjki5wfqjls0400ybjdjxhkq3bzvgvy3x1rpysl5qh";source="0ng9df42sf2zjiy11b25mzm7ww3sw7vllr7rx385y452lb80cz1i";};
-l3kernel-69310={run="1d3wnk8zlhpkqkcgrfx0wqcq8nwa8cibpwm9i1fchmmn6ap8i2rs";doc="0d07aknkq2pxvgqpf4lbfa8qrc2mdsf5jdsq792j4mjl2gc1dbis";source="0vv8sjg15ykcjc70mcrqnz7mmnbj5lskssvh1f5if0j9xdc5b1ka";};
-l3packages-68507={run="0x158f74pmqp8dj8z68pl6sr55caijig35sqgi98s25p4v8npka7";doc="0ylfm3s3b1zqpv933n05rc9pp2zs4ra19xwashrqr31h9sc7655r";source="1cdzi56yp7fr6hdp4v4nwlbgxk1q5kafb0wxans7m8ihsv6g9v2r";};
+l3backend-70027={run="0nbamj2m9ahk3y1j1a8p4n153fzczi82cw8i9kg45ki9gnmq91xp";doc="19s2pdih2pn41hrq51g6dhsds25w4vpynjr3bb4gb1ay2gp7c0hd";source="0cm1n5xqv2rlvr74fhnim8q70sfwqx8r930w3i8nrpaiivgnq38w";};
+l3build-69748={run="13sx0gjgdrnznd8h3gr3r28rmhvwgrmzpfl821p68sw91jphqdp9";doc="0miw9dxmd9d6j1w267ibxsf8k954aq8qsbfmyay1434s36aydgql";source="012grp1nkysm6i87y31zl2m0w01j85hb9c12059phjdrmmnp9x5x";};
+l3experimental-70027={run="1bh5xj7fxb89nizm2j1bb924p0ki7dsp3kx8h8wfzsdp1xr2b5k5";doc="110vv5yflnh873rcm75fbz3cy3p2arq162665h0vm07any65xwsq";source="183n75j6hk8kvj1xs0dy9br8ysvg457q1pxlhwvwjswykmf3arj5";};
+l3kernel-70027={run="1z4l5yvl59m3jpjgnpfn8vg7phpv49wy8mfy3z0jaq7la3c920ng";doc="0mzhz15fpdn7li11fpvyjxqi16kp07f5slmj6anpf0qrzp910zq1";source="1f02ay226bivygx4l01r8xz8ws2cn84fnlmgk2gf9l4irhd5dhg1";};
+l3packages-69992={run="045z2abw3333gcr4kxdg65s3fg4dyazc3spfhwbgsif8kzgzcl40";doc="11nkrl9iafxlwz9jriq16z75rwbhpyd69gmx5j8b79vc5vy0w6pm";source="0xirdyjf3cl30mr4kizxd9sl80cdfjrqww420hc4c5qaamcdq7dg";};
 labbook-15878={run="1qh16jjmpyqdfndfs91nmbfhwxif5ygk35zlsailngpgnp1r2x7s";doc="0za4mp2zq9s1z90sgqcvf6zac7w0wqbf8y5w1qrwmlv6r6kg3s1s";source="0w7nff8c2ffrn2ywz1dahd8n4cb959b6zf3ka0s913nv04ifdkgi";};
 labels-15878={run="1d1lxzif4f3qxkall0qzsn4lh55ljr45zba0xwzyvfbwighp1vvm";doc="0fl3as2lwdga814fdlg2pwyw600cvrii9hd0f4vscfzq7lmw01k9";source="0y6mkg18jqsbqj14h52317d1vvzvn3mv89q2gl4i3i89ka3dfajh";};
 labels4easylist-51124={run="10pfzxw0d856ki2krsdpidnfsk27mg4k0vj3jx7pry5cfirx6m0m";doc="145n7vy3d0vk3cq3qd44l3a6hjmazipm7wmr4aa2knxvs4nyvw2l";};
@@ -2107,14 +2119,15 @@ lambda-lists-31402={run="17srvv0v10mczvvmxr6sfhlr8zks589c86v472g4rnmf4bl4my88";d
 lambdax-60278={run="0sr5im1ag7lzz0rkvnj0biik9z5ww6yr03ykn2w64dg1nf42chf4";doc="07fgh2x639fj8wb21rygj7yc0c7bcq4sm1bhdrsxzgrwjxn9rbw0";source="0sarj3dsqm18zx176p6hq3xv717fzdpvipvdlv8l5y5pcvasz73x";};
 langcode-27764={run="1hj7zyjxh64fax5rv32558sp2ss986fxx0fqd5xb9c07s189cs3d";doc="06bygnvh4sdv7mp17c94wx9v1lj4zgih1db6mknc3wiifi5jcx8m";source="1bi25gqx2yi8f6g8hpnqp9f52qnfpyafi0r16scap8w0sbnwrib1";};
 langnames-69101={run="1rg0hn4addzi72qgrx303skf35c03lslrlf8ry790kwr27i7lna4";doc="0ix2gk1gzvsk1w0r1whr2imdml3a6f9avw6yfkf54n5hnaxm7i6n";source="002rmwkvm5b4ay1cbxc51ibcb27sg571l2r5czfilbavh0000piz";};
-langsci-65793={run="1hf6q716lasc30d72z60ry74xz0gwabp34vm9vk33kaf705b3hxh";doc="15cp4ab6rr0zxggrdray06yj8szpdjr6fc613j27wpbjmqjzbb67";};
+langsci-70028={run="1va10za9qfhdmb9c652rh2n3qyp1v6pyjc8aia7hndik3j3p22f5";doc="1imd2wlkd8k4wfjangq43mvr4m3xj295vrwmqjya4p0jhilh13ya";};
 langsci-avm-66016={run="0xnprm5fcy8knxhldl54c5vhir4klgsmmy8l9306hmlykmphwifx";doc="1s5bjwhdz1fwnkvnrx7f4789cy0f2l0qkixdd6va6zjvylihzl4l";source="0ifsjndp9lf06anqcl79kp7rhx9gc56yw5xsr4lb4fshzzg6jwnr";};
 lapdf-23806={run="1lfmn6axzbfk03j6f12yqa0vy3gzvw1ylpq7k2ki4prb3zwhx9sx";doc="0h9wy3amir9wdqv0b8678mfmcd172zll9p5v7sf1l0w3zlbw5msy";};
+lastbib-70377={run="0ml8h5s22lp4bbf9prjjdgrvsahwaksv1kpnln696gj1g3hqh63q";doc="125h4563c5rny3rbizb6imdp1r8mc1203jkdzzw0p9113lmwliq6";};
 lastpackage-34481={run="0wjpjd3b48fj4mqqdx38sqalbaa9ab3c6rywyjqhvrd1pxfap2g0";doc="1123lz0ki4kww93952wqrhrw9l2cnk4wrrwyi0dxc5w1yfn2gg87";source="176fk84mbb6w5ql94381kz05lh8q8im7ri6rfjff7f4ymfjnh2jk";};
 lastpage-68557={run="0xds81j9i3dqbsfw9084f0cqmscyapcndd6ssk0njgj2isjxb43s";doc="1agaxsy82b8nq5kn6kpjc4g59xzvalxpim6rqzl8j13ywvxv6vhr";source="17zk90069n9nc2j4jhqwzkm9kfhvp7wlq7akvwsny9fk9vrgp62v";};
-latex-68720={run="0jx9qmvwjy0i4p5a6lnyzfcj43x79ba5gj67qz83fmxyp5x8lbi5";doc="1p86iz7wcncsibsr5dyaa7lqh173r1891pj9ygs7p0d403spd24n";source="17w073p61jl2i4w02gvs3pyvi7dcmzzng8gwc1d5kaqcnf7y7gi5";};
+latex-69443={run="0l26rd0xasdx0lyzzkigpzv9i786fk2xysa1y9jv3k62lv7g7xy0";doc="1hylcd91igvaf4h9z9djlmfy87r8mkgs75slh3clay0fhhyjdmyx";source="1jb6is6qh5q3pd0shizizn0czk48ggrw7n27ddpakxcmi1s73aa4";};
 latex-amsmath-dev-68730={run="173gm8vkn4dgwys9h7yq3zv0pcazxvgrj40ax8msmmffq2r8cgzc";doc="1ch147w7ak3al37ivkq46capg7zpc5c10inwkcmqxhk1bqa0cgis";source="1ffzh866cdx9r8b5z8vyiccxvramahskv7an1jpi6flg0b9vv4i9";};
-latex-base-dev-68730={run="19jfbx01c8wq15anrdcyz4d6bvbl0cchimjy7lirvqmj78wvkqc6";doc="0ddyhlspmiz039f8cn1qf35yi36dg6g55rbf7r6czkppykf3hhia";source="1wk7fk4ip97qnn88l34w1xwrqc4y4lahf0v1w0qxlskgmjmsjlv0";};
+latex-base-dev-69872={run="1sflchwpbx8g410b4jpb5i8x7ca0x5kgsa9h910ljfaivwwxs82y";doc="1l0sam4iqndyycsbim6lii8cj9mx465vk4f0jc698c5lrb9y57vi";source="1h579yskldcwyxp0r4xdh8k3s99qhy141gblrw1lracfyj8f44rm";};
 latex-bin-66186={doc="1mhdc8a37b9j64kc8c8171s8p7ixklbf1ijr4vfh7af2k416qf8d";};
 latex-bin-dev-66186={doc="0dwjlwaf8pxfjgby6dwr8ijnhm85rvprapm8m85avq7mnfmrp4kr";};
 latex-brochure-40612={doc="0xba20sy8q10ac9hxwnz9axh853hrj06vp7mfn12ajax31miznmy";};
@@ -2123,18 +2136,18 @@ latex-course-68681={doc="00s521wrc5gqqs5jvd1ljl04nighy8q79r0ama783ic27a3k0qhi";}
 latex-doc-ptr-57311={doc="0mamlfnxzi4lwh5cpss8zcfr64jdnf6vnj9fp48accrqdj2rpfs2";};
 latex-firstaid-dev-68730={run="04rcdqd7461r54qhn3v13517clirbim4lnghli6yn31zzyf83zif";doc="0m4jx0qiscxszpk3c6i4r7pcr9x8xdq30q1ixj4b3l2jn88mvhlx";source="0m7xdjy67arisi0l2wgjvc9i89g2xdp5gk5cjqshb8hwxjw21mg0";};
 latex-fonts-28888={run="0dh4kgy4mfarlsrgqw4dm5zgfhcfg9qzh8s2wjk6w2g0jfc8rf3v";doc="0243qbrs2w7qh17nh8m4ivj35gfgxsnqxza281cvhh7g2fv47f5l";};
-latex-for-undergraduates-64647={doc="0krj27gmra2mpriircasv32snk80z9ap85h76n0bgy4wjqyblyp0";};
+latex-for-undergraduates-70210={doc="03s686vbzpjv71vlp5931vxyx8lckvl5819agh4688h9m98w54s9";};
 latex-git-log-54010={run="015f1jrfnwr7i7jn6g0cfl3zs73xw30h14fr2pyjhn9pr8kd3mgi";doc="0pj2834ax404f0nnlfbg75f2h80wvnz23s8nr9vxr24vr745xpf6";};
 latex-graphics-companion-29235={doc="01zs32gck1sl9zlbhghyjmjwxyvw0jha5vl2hd10knyrb3z4dhxc";};
 latex-graphics-dev-68730={run="0gh26h6lpv14ywhpcbw9zkzn00jqrxbfwsq61cpvb6in1f7q95bh";doc="1cyx9l48nc60qdaqny9mi076cch9cc4f3qpnp9hxr1rm7x712vp2";source="0ng5gd50c7rg7pv09ry62j8plpn4vigc0rjy0xg4bzfyqhpax86d";};
 latex-lab-68720={run="0hdzvh1affhjy4r80x53gbhi1pqsjikvyxrr985pl1slzfrlhjbg";doc="1aqwxllsrwijw6rc98cplkxw46s61dj8gz2q07djjmx137irvkcm";source="0zj723bpg0ik95sjm97kmvjp3ygsf29lshpzgljyqnzz6z8ppb0l";};
-latex-lab-dev-68730={run="1maxr2mi0j3ccq4gc2zhpp5acjnv90pa1srxd8yyann1q02cqng6";doc="1k0vld6c5zb8llriv57aj29w4vzzflk86hd6547ybjcnyz77i53x";source="0bdpdjrzghj1mx78jna3p1f4b9rzb7j6cxy0gpx1a4pslxzihshq";};
+latex-lab-dev-69872={run="0pqamivil6qcl3sxp7zr4h2m4sdk92mwri5jvz5ab0l8w89i6xjl";doc="0vrfpsm359zfmqini6s4m9cj97d30xl5vnj63nkzxk6nz3pzgk9s";source="11fdf8f71mdwx1lrj8j5vj2ha4xjmi8mpw0aa2ii0rad5iwr8wyr";};
 latex-make-60874={run="1dgw31znxh3ch6xyg7y0ngnkjmpny7fbq9nhapd3am4l6qb0598j";doc="0jmms953klgv8z4k5d8rj2l5barwxx02pmzk6ihpp1wdggfjxrfy";source="0a5jqry52x11iga5ky89b57l1ww0hbl8z0mkkv6nvvc7bg5gg6w4";};
 latex-mr-55475={doc="1zd948d9y63js7980g2bvxpf67hshh2xa3n2ihbzwhpw6l9cbh1w";};
 latex-notes-zh-cn-15878={doc="0w9rmd7b5fnfvix653n9vbnn1k8yxlaaak79ipvm8p53dx75xfxd";};
 latex-papersize-53131={run="0axx2lkwi1xq3qdaazhb6i7dssx8q2k0nm5vf4b9p5ldl1ky0dzl";doc="1dkra9b0wv8s4f7xn36j1x1p849ziwlm4chf5mrayp0wmx8qshc0";};
 latex-refsheet-45076={doc="169h1syday30qiw032k14fhxikdwszggvqz8b9ga4i9wwxf1vh4m";};
-latex-tools-dev-68730={run="0zhy09mxg97693fk4d3mbghy2w82gdnmvpavkajdyzzmlxlmxcna";doc="0gz1vizf2xax6pmgxk4bpxqg4p7xlpnyhxv0a57l6mjcn606d2f6";source="042f25jnpms3crn2q5fd7l0gay48yc5hy71frvgqkdfr25wdd2pw";};
+latex-tools-dev-69872={run="14jwblfzdf6wp3gncild8qxw6nfdx5a44nb7ngbwnkxr43kq2cx4";doc="05gwzix6l3mgwm9qwjkk8slrjbvnbzpllv75kxbnrf768jjy35px";source="0s2bh7shlafm3fq608gggfxm9ma48bkcq6kamqfii7iizw3wsyb2";};
 latex-uni8-49729={run="1sv4n2v0m3lck7x320cwbay23k7r9fh4wm1vxg9m4grphc72n2b0";doc="1y3p08mni1ng6dyp0g98in7hh3mbzqq42249idy90vjhc177rjc1";};
 latex-veryshortguide-55228={doc="17i8zmr7mjfrx911psdy9cbn05c5inn4ixqmnjkpr9sbgsninyc4";};
 latex-via-exemplos-68627={doc="11nhv72ixwr0g19nr7dir5awgdapxq0l295hm1pcggr62wqh67l1";};
@@ -2162,11 +2175,11 @@ latexdiff-64980={run="1z0x59j9g2cmbfwfmc87fpbjy4hp827ic7y9z8q3j7kfh2s3j8dp";doc=
 latexfileinfo-pkgs-26760={run="0lf6pkxjqdilg10i3fwmlb1nvvag6c5bm6pbcd50jjbd1q39iih0";doc="0qh84r86pszscg96gri652y6p5xx245lfzvx50qvzw77xn4iv6ra";source="1x1sj91sd5bb0jihvp0qg52q8ybak4flvijj5hdq84jf0bw3gryi";};
 latexfileversion-29349={run="1yy159skv29hp0qxpghmq5zmay9yi0ndkgz7lbllj1ymkgxs5138";doc="0k20c2kw0xarjlkdhjyx9h9kvjm2f3rd98lz097xj8xvk0fs0zp6";};
 latexgit-54811={run="1kg9cbz6h70496snqqa2h9xfknm70qf96xyvnc829k5v34jskmi1";doc="09rlc9nprx6590snfg7gakycsam37wmmscybvm48vdn271vvla9l";source="1pn4gv4prwsnnr377xg2x3kf3kmi8pxgczbi9knzavkd53653akx";};
-latexindent-69269={run="07qrhrcq570907kcafq3v7xbif0c3gfrnybg2ibi9rsic4bmf5qh";doc="0psnkncasbascn0jr5p7li8nbwd3sv6a3pp7dmh99092h66wa9pw";};
-latexmk-69373={run="1pdm5p4vvchn535cckwa1kk739ihpllmg1a30b5f74zf6np1nwp7";doc="0wl7d19zsf465d7pb0i88hx71jh9ln1bk6y90z4p0d7y744jlfpn";};
+latexindent-69472={run="0s5idc6p7agbmhm3qq86lb4p357vacp4js6fbqszyfwd1wqp86sf";doc="0y102g945jyr2cg145wkpmz68m62cjdpv8r7356lr2pvmp4pbqky";};
+latexmk-69657={run="0dcbl9bay800kvbp3jl88d6y6w0cxlqrvx0y8qq8dqznd082dh3d";doc="1aljwadz6jhi42axj5ma467pihz5xdp1w3s86r2wdqc1n8l0rm6x";};
 latexmp-55643={run="03rgabck8mcxnbg1avl638nhxdk6smvyd21v2ns61hx3jn09cpv5";doc="1ad9axqv8h2s2xckrdxcnl8kazpgijrgpxmbwsb3h0hqb3liznsg";};
 latexpand-66226={run="1ky0z3k9lwd2815kn3hxpdhcc92spp4wadc5s4hhjdjah50b6zpk";doc="1za2s4qvkfpqg2s86z33y85lw4vbi5ll52if58dndbg47mf26939";};
-latino-sine-flexione-53485={run="1k8inj0rl7mhsjyzc39w789jlafqshh9sgy99szxqbs0jilgfb78";doc="1wccb0ksrrysqjp68l3wnf6l4n3s64ny3cvxiqgalrf0mlfipxmi";};
+latino-sine-flexione-69568={run="1k8inj0rl7mhsjyzc39w789jlafqshh9sgy99szxqbs0jilgfb78";doc="1wccb0ksrrysqjp68l3wnf6l4n3s64ny3cvxiqgalrf0mlfipxmi";};
 lato-54512={run="1w70dgmvcwm9jff2ap7s78qgqs9ip4a6dx5wz8iyd7hn2mwf1v80";doc="1fj4n1y16x7hxyd63myk902iwm6lr074rkdybv03qwxl12p9ykxs";};
 layaureo-19087={run="0ggab1drpspvqwkijlj2d7k1iwacd8bihgrj9qvrmsvdlswdjsd1";doc="0vxa87pk0fq67zlnbzbpnig221isp1fy6qp30fphk7igvnjw8v70";source="0mdibdz7hawfmc6bzvk3qfhs22pnmsnvkvvag31p3b4n25zshmry";};
 layouts-42428={run="1ab9azs06k1p0s3n5zjhrykpqac9fi3kr3w31xmh698zpsg3jq4c";doc="0ydpj4mbjyg6qy2wmj90rqfpkcq30pws5d11kdr1gcwbzqqkgbbh";source="10mfwi1wv5v0qdwqj1mh5q8izgavlhclnz2aj8h02ijy4kzgfg5w";};
@@ -2179,21 +2192,21 @@ lcyw-15878={run="1c0js52z8mgfbr3lgbvnhc646ggvsvgr7w1mq83lyx0pvnlqm3aq";doc="02h2
 leading-15878={run="1ky6c51dcx0gsj8f6zrwb242d940cjml0gb258ags5xi5iaq40yk";doc="1l31zpglr1bz0gif3w7kqzhd37zpcgjig2ly84fcyk805sf7nncd";source="0f4ayaz2m0y87ifddl4622rpf858zmh13xafp53nh96b8pyvcip0";};
 leadsheets-61504={run="07w8h1wv322dy0b69d13b9k59m6iid53rlpn20ps5ss2j20b62z3";doc="17xbqxhmxc39gxd5ckvzsmhiabsi2afh2r2jv91im8inqfqi8j1l";};
 leaflet-56878={run="04fvi31wwpsnkpsni3r6f9m3vr8b6h71f2znb79aban9g1qvnyh6";doc="0f82hm37i7w547jpmxkl8a2k4f92bw29vdzq4ywwllk2hdcq3sv6";source="0igkl1rjl14raf3xv631c7sn0mc1smyc44mldwgzgnzxxkv5kzzf";};
-lebhart-68376={run="1234ihmzv9fmhrb5s0c1ria1pzd2qz5vi96v2p4faabksxp2qi2n";doc="066d7m6w4i6gmqmgxdhsvq779mabqai0ix83c97gc32jlhhv1lsh";};
+lebhart-70050={run="0y9lrkscmfjsg3rbcwbfvzj3g40nyb6a297myyzmm2n0lpq11j6b";doc="0nypg814pxlcpkd0y3vdhjk6vpj4j1ka08kkkk00nmdyyy714f3q";};
 lecturer-23916={run="0alcmds4ds3m0rpq6r46ff56x78kv0nbdnfn80s9q638pf1vvnvb";doc="0ksqm6ibcakjf2dir19hr066gg2dxa5blfiikr1j8x966lfdjb09";};
 lectures-53642={run="0qdhkf7z1rnxm2ql0ywfk11y3aqp8yr1p9202d4ha6729n5pyima";doc="1xakcm4mmhl4ahnvcpn7k748v4j2m8p6d4p455claqhf7xg4jz15";};
 lectureslides-62292={run="1x61bpgp5ddgld0v05qb5sg2lwb7lzqn6r65imshvcjz1xbwpvdb";doc="1awy6zgj393q0lm195hh8ky51fczm5s19d46fc7mivxyh03w3wk6";};
 ledmac-41811={run="0ipf7h58bylrfwg8yzarqvpkl0kr4k3z9hl6cjzxwlh16s5fs76i";doc="0pgkv08nsq0rmcpck9vq1hfb4gnfqh274hclq4grk182fpn4ggiv";source="07fl3lypnxz7sa4kjf3xllwqakhrwgx8z8r7l6x8id96n48zri9n";};
 leftidx-15878={run="05fi4rp3s0s9ank7pphdwxnlnanc2r88dxhyxbz64fb26sja25gy";doc="047a5clwf0r43r1j87k2zfv0pa3nrii213y0zhv5r3zkmwvm1qky";source="0a8rzkycppx8qayqw3s7ndzz2xp4zqgx3qd8dp9s5ynlm10020nv";};
-leftindex-56182={run="16p8n98cw5kxah37wv263mq0jg4jq9f2dfzjyy06sadjwsbf4psp";doc="1g5ykrfix8d6k2cg3nsh6fp5ibpgfajxgf9qgff4s99ir2fgyhrw";};
+leftindex-69660={run="1hc88b88fs7247n9q36idpdsh1jb39d92sp5qr2dky27fgvnz2mr";doc="13lfzvsai75nyb1xykvd8bd0q7dpwb5na4afb7bikqw6iz3dyhwa";};
 leipzig-52450={run="0wml5k749fgx3vq10v4vc970h6nqm6qflg2z4jajph1h38kj2ryf";doc="0znm18pkrf592jfgshmr0d7vk4d4yq4wvj9hqsfg9nrjd4l6a66x";source="1sxqsgahdr0srk52iqdacsqn7sc73iv0n70nsnpvgfsczmxa2djj";};
 lengthconvert-55064={run="0zjyynjlq48sywr5gyi6nhryrp8hcl41q1djjp73ingi2h2svz47";doc="1id32l1ipcilhkk4w9w2q8rfjlk99f5jphvq1hjvqdnhz4q1rk69";source="1zy9bnibswz834k24fk5srl0ahx4i4hlrqv6vnvwb3h8z71izc3b";};
-letgut-67192={run="0b1vjlh97ra46c906kxxh4a9z9ff17s5kii5488ppmk3fmjnvfwp";doc="1q8hcsqj92w808hbmqk006zd106rvhl48jc8qknk51qixz74yvsb";source="1w4ini5k56qik0yx0b0f0g7n6558w3yqidjsysiap4mn07mcpic2";};
+letgut-70496={run="1xf5ac4vmmfrqgla5ap33fr24f38wiyppi3388zwzbn0rlky7s1r";doc="15z5g69vwdlk77hbkh8vsk07zazapjr17dicmz2wkhgrlcs5r296";source="003213728r08bl0nh5yplm02sp6671zb7l54al8bqqq7hyjybnlv";};
 letltxmacro-53022={run="0p16zmxngzzp9hbg7bxrh087gxj7hg4avf4a9akjkg56834hna5h";doc="1gxldiflxvhy6ca87f8z3a3zzisrwz6f9vrx2r9gsfw72jyfa99y";source="00ykjx412119jxwf1zaz5bismfr0i52psf5fagdiybbshs5ac88x";};
 letterspacing-54266={run="0ry7rri76dgbrkzr6na2kkh7bn0jpwkhh9b5qw0cl5xwyp81rddg";};
 letterswitharrows-59993={run="1b7d512g9gma07n7np7f92qqxijxs2df4h0izq5xffd5jf438m56";doc="04hrchgbm25b8g8d6ywchyijngk42lh7z5gq2g2hnddl7wp79kv3";source="1jabbydsy0xn79p2c9dg605kfrc6g3c25jz72hnq1ilpny9zbihv";};
 lettre-54722={run="13h1jsgjp5k82cq4rpx8gd114l49m1pzplksrwjylx0bzimlzgwn";doc="1w82fhhcdgsxwsnprx2p61ygsyh525im8j1zalcw0bji3i6pm06i";};
-lettrine-67923={run="1w18c4z4a6scy1d3sap8hwfdivi3lidndg5szjjlc0xxnkrc3iis";doc="0afwbjyqj173n78bjpzn3pb05vbx9ggrafgnv5djvm4f37i6iy4a";source="0ky4fljrf95wlj2yzqnfg34k5cwydvl558f5axwrlb0id8v29jf9";};
+lettrine-69508={run="0lmnac32n8ip27yvwxk072k1wk9v768gsm6v06bfjhr2kdpd52v8";doc="04369v85mznfrfqv6mkcfa7vp9s4m2953qb6zdv5flfp8paj3fx8";source="0zr1csklrxxs26641g5jnhshj10igxyf79qrq5qky7cvlli8v6xq";};
 levy-21750={run="184jkjwm17ms75j86njpkr17ipcamca3r5l1fcg8vfv00ffj9fp0";doc="1wbxdyfxm80w3h8bq8z5yavdwdbgccvhf4hm697ss5yshp7l8gfs";};
 lewis-15878={run="0ws9vk38j3m0sprl9lak2sjlq13nalcysk95gv68h90x04jj5zdl";doc="043kmzddal693kl6fds0xl2wwmyzvd9cqs8dmy1jzp0mdi6qw6vn";};
 lexend-57564={run="1lqqn007dpp24jcgpn9fdf7ysb99lgrz9zxjw27qm2439wrzhc1w";doc="1h7s17x7grhdb1hxxg6wql3pwy1w08iywpynymrqn8748s93yy4m";};
@@ -2211,7 +2224,7 @@ libertinus-61719={run="00f4wjqqz4hqh2ic8g162mnn95s0p2v1qshbm0zrnzjy2gr51hi6";doc
 libertinus-fonts-57948={run="0izp1qihx1arqkgbdp18ks0xz7jlyd5cc4r3d5nhdnpph1nry9r7";doc="1zn6nlpr95syxmijr7w0cljq21qfv09b2rp8j6n0rvyzm50gc4fg";};
 libertinus-otf-68333={run="1gxgz9lgiyw9n00ss64bb5zghzb5hzli6s8znkaq6fcgnvaf5ra5";doc="08xig7pz9322x5kz8l4dgqc74hsdzrhnxp8kz577gbkg8mi5rsf9";};
 libertinus-type1-67450={run="1brcmv3j109909q5975zaaf7slnzqcflfqzfmxvbaxychwm56nds";doc="0v352ny2961inklzfc2jn797f443dmp7hk0wn7s9dzqnim8rsr60";};
-libertinust1math-69062={run="19yyzlslc3qqk80fdk42ibyb6q07w3qp6ax0pn7gqmw44zlr95pi";doc="0nmg81gcll8z7mr5ryxp93gvja60ayynb1s135l7l0h73s461lxs";};
+libertinust1math-69440={run="1hq3fidq0yl8ahr80alj0r66zw1ampgxs3j963jmhcdh1jby7ih8";doc="1vlpfnmv0d8bafmh0b4szmrcyrcjdx527ik6n0lvqvqh768jwlxh";};
 libgreek-65004={run="1wazhir2i0bwh8744867akraid5cz629yjj6aiipxm6gjj913gy3";doc="19wbh1vjycvplflzkb79dr3ha2115jc8lf0vjrxx7qvnjprygs8q";source="0d8x32jq6fcni0g5qa0hcd3vyxj5fcqa9yg3m2bfb049p5ms7s40";};
 librarian-19880={run="1rri0fb9ssj413w1g8c7p79hn72gqzncihhhg3ws3ldl9s3nm54d";doc="1i4m0gp38f64y59zcsyg2j7bb6zycyf9z5yr5wf86l6kh40cc2fq";};
 librebaskerville-64421={run="1d98h5gyymci1vny8877pdq7nr0vvv8878kcbahvkijyn5gwwdx3";doc="08rds9g231kqmka2dzv03sj9dwnrh89rhsbfqffpzrwsfc4fqld8";};
@@ -2239,19 +2252,20 @@ lipsum-60561={run="1rfz9f6gaha6ccx1s5kij2zkwdkm6i2laxv5r9jyjvsawqwr0lam";doc="07
 lisp-on-tex-38722={run="0g33w5hwgpw7hd62lij0h5n89n9r9ynlxswb34j0aqf3x7nsdh8m";doc="0rgjcldb2rg330cp8m5vxbi380xla73jb36nn94b2awl4g34bpvd";};
 listbib-29349={run="09rs3zkymlnn9fgsclnfpn1mrmxnqy8kd5pmdiphlga1iwfj5z11";doc="1nz6p8z4yvh91hvk02y184xl6fd8pyjlpjmlv5zpmcjillv176yj";source="14jrkykx2myp5fghh9qj66i5g291azm6cihi12c53bv1ijcyl1ik";};
 listing-17373={run="0kpf5svycd71r8p61y83wx1k99fwxm95qz5fbnqkfrq3c0113h3p";doc="1zd0mxh0gxlvqrwxvycqr5yzs5fns0hrkn6g6b4m1v6njv2f9lna";};
-listings-68476={run="123agzj0xmm4gprrdyj5223129qd360z5vw57s93d187hp29byrh";doc="1r3yl3z8hpdqsin2xld6xs6ywdk0k7ykc62l68bbdasc1bw22ccm";source="1wffwc76c8xvc95yg72j7z1iqzij8jzq2yz5mqc70mivl0amqcip";};
+listings-70052={run="1khzz7im183pyynl8mhk8by91p06p1xy7nrlpq2g457zp02svxx3";doc="13aw7xcra3r9p35iwhjh6wbkf7n615bz0wffxi0sjxcqcsrcqvc8";source="0l0s0i1kvb37n1wgahz1q2261npbs112f6jxc031r41rhyzmgqfh";};
 listings-ext-29349={run="1r5nq62k8rwllcpxwpkh2z0gcb1rlydp9nry8wx7r0h93hbmm2z7";doc="0jyk8z0nsdx2yljly8nd4g8wnw7ggi6mdjw0wb7y0mb5wq47sbpp";source="0hd117168f5s1cb2iim6y198lnh05ph4ib7p666yxvv48wr0mfpc";};
 listingsutf8-53097={run="0scs9dnkl2hj95zgjiggn2ikq2nf62q97nnml3hbvmwdargassmh";doc="1s7k2gr69xlxln2yi5wyvd69l2qa8v33d92b6ahgxxpid3437prz";source="1bq197100f74sal26w0r4iv6ys2qa1ylbwbyw3hm9dlpb6kmdmgq";};
 listlbls-67215={run="0r5ns594dxmq7r9pkk2hk482caapfdar1gwbdi6fw396pcnpw8p7";doc="0gnc00jv99rvf892q0sncr7l5pxpndrmw6qsxfbnyb38yr675fk7";source="0s77rh3480i9w06a0nnc7l8gm3w1s6bik4nl15idb27h5a5fq302";};
 listliketab-15878={run="088f2lm5lfbns7hd1m06f3zn1cjcbaw427z7zl5n47ahrvcz9p94";doc="1llrdgxp9mghs51sz4jjhbdllzlr1xgnfskask532zwn1cm6f4vd";source="04xfgaqpcskx5m8byysvd2rji31km9c6cbkfzf3ybj4a5bmbnq58";};
-listofitems-66655={run="19qh891v470h4617fj9ajddpf119qh087ng7ay9q73qhk90fhs62";doc="1s7gl5ai3xdpj05lxhj80hc1i48x2lhcanwh4v3w10yyzf13axyc";};
+listofitems-70583={run="0kpq0ac0v5yk4gvwrzdkp262npralqbdvsx0ln3zqgis025z4kzb";doc="0dgmc69d5wxj5dx7liq08vkw58fm3vg41j261xxw49hlacjl43z0";};
 listofsymbols-16134={run="1qp5y4rbnlpaa3nghlxjn5yzhskvan9rg0g45wqmg6yk9sdll5b2";doc="15sr2n0bsvwz6jqgyspj6kxg511jy3fr18705pyp815hg4maxizp";source="1sjg64imcxxqq8bsqm98954g47nfambr6vsyizkz8zqzmnr5vd80";};
-litesolution-69115={run="0wl8z1zzxakbr6ackc2izfzwkqacfznvm5n96gk56fnqjlz3d378";doc="1d9ciidasiqw45m9iha7j0vnr4wmi7gq7mdm2g6lj17q5dick3i6";};
-litetable-68782={run="1bil3n27ajahpd8zmwjz6xab1ibc28slg5bicb6x5yzs5jppqi4m";doc="1qv6b6qjrxvv7sbsggky3mylnnp1fzjvbbk32vvmnk4gi1cnm264";};
+litebook-70583={run="0xz899hy8yhwsphzz8kz6h41ck1p649lqhzcjsag839j9fwflvpd";doc="00cqvwhvl2r884j0nm1gb02agsz8yss2shn8bjkm3gpb1gic4wy1";};
+litesolution-70608={run="1bc1wd867a88axcf2ydm8alxw9pkd3ycwqgvwy7fbs70v5wzccz2";doc="0yrqa5qs4zh6vscb5xagmich4hgjsfm8xj9f7wzklb5vaphcgm3m";};
+litetable-70355={run="1m8c9gp8lsbf4i0ng62fvc1f490dg2fhhlm7gyh3b6bpfysxcdlb";doc="17gm57g2n5i0s2apldjs2z9xib8cdwz7zmlyr6g763d5aibs7bz1";};
 lithuanian-66461={run="1jjbj39d4idfsx86lmpj0w1k6gr6mwr7sxvcm8wag47rgd05czcf";doc="01r1wraa7jgvblc3wrdvkhccp4ba8ps112ip1v31vn4wbnlvdyax";};
 liturg-15878={run="11l8ccpq2mcnpsfxry6zzjihj3s7s76p9plh7afprd7j2nnq1a79";doc="0rhyz3162nzh43nrxwkynr45i4w5pqb5ip53x5j2k2a4cb4k1z86";source="1hn89rf3xi66bfc3kzwbvllfzrxr62gx60ywbh8gkrw813n18lll";};
 lkproof-20021={run="12bj60lfqlqvyk020lv1l6iinvqx4cvd6lfz4vhblfx3gs3xmcqf";doc="05sppy6q0c2iangbzmxv5qxla8slc2k0fx62f6n2fg1ncgvfl7qh";};
-llncs-68731={run="0mnfvhnq8wwsaz9yzw3a9mkc4xnmq8ihkzhp1md0v2pwlzsvdzlr";doc="0bpbvp85v3qqmpakyp7yvm1vbibj9bbca72v98jr9f544kd97qzx";};
+llncs-69629={run="0x86jmqa7rni1bj43vg6rjr6vnffwz8l0pyrq571s0506jf10y3k";doc="09dg7g9mk7fhp7l81572xxa5b12fb27bbsmvmrj48j7jic9qxvnh";};
 llncsconf-63136={run="17x1sjs86vl03dxcz3qbwm7r21hmzvsvsr9qa0xii8fvp1yb5pxz";doc="1dq0v5wczbhk1ir8fl97c53sinpqnvv9v1hff1hzc3rhbwh5smh2";};
 lm-67718={run="1b4lc6ipij5iws4rgpv3sjjwrdbaxnwiqdbyyj62jzc3yk999m4y";doc="0wdnpnsbg4gvahqq8lv8ny36xwxgph04sjn64pl34srn2pk1jsxd";};
 lm-math-67718={run="0vsmzr71d5iqhr9bwjnp7khzlg939mvfnbg846854cxk8wfm9hzn";doc="1j6jcki1hxdr17njy8sfpb82mxh6bpllccf3hnjvylvpjf45nxm3";};
@@ -2268,7 +2282,7 @@ logix-63688={run="0syvhp2zn6rpmg1v92k9df0q4kv79flvj93m7761675fb8jcki0h";doc="1l7
 logoetalab-68916={run="1qmw240mqsh2s7l2r8nvw9xh3zwa99g01szjaxn94d92hnqmb4r0";doc="0rkj5gcp01xcw6d3vascvp3nw2ng5gxi9znj81yasgw09w2qyb43";};
 logpap-15878={run="0xrv4x46m54b4gfa805naab6fgpd72fwqnyjjxw0idy9kb3s3x5v";doc="1zb6qyxrqy07m65i18dcli30gb42y6c3ffr22cpxa7r8xmaprcg4";source="07cm2gcnv6d7pzc9d2v3bdvsmykqf00bbw177mqyjaq1chc0xpna";};
 logreq-53003={run="1zj1vn0yfklngvfvcr0p8hchar220lwfrznsq73jbw9zzjx47v4f";doc="143b5bb1jkc9j1gd46c28q4zq8jlh9wrngjw8q4prw5dkfnf1s8m";};
-lollipop-67930={run="170q59wqy0x5zhziaycmfglv1wnc5kf252ni1r4vgrrs3rlwiirr";doc="1wj858kqp27amx3jpndsqma152r40agfymh9ah8s42pn6kfl4dkq";};
+lollipop-69742={run="170q59wqy0x5zhziaycmfglv1wnc5kf252ni1r4vgrrs3rlwiirr";doc="1wj858kqp27amx3jpndsqma152r40agfymh9ah8s42pn6kfl4dkq";};
 longdivision-68609={run="1rnbw3y9vzs0nqyjw1qdj7mbiy1mk9l3ccygnn65495smgg7h7b2";doc="091b1v1hwbifv426w1gglg273c9ck0n3bzj3xl9hhl27x1qzxjcy";};
 longfbox-39028={run="1cm2zp8sina312n72bd1xza75yi38n1s2ach2f9sjxdx0m5c3ywx";doc="1wd6hdarh4nm6x4qn789flnq69gq5p2r2pgybsynbna7ywar0l5x";};
 longfigure-34302={run="09pnqp0jfhsg7i8z241ggnx04j452zsg1zqmwy0i40fp2s36a61c";doc="08y2a2922zk61iirlw24kdsf473sx0b44pjzxihmpcrf19vg2c12";source="1p10y4nwz9wj321mf36avl3w6zwvspnb9cc92h9jf4iawnqyp8p8";};
@@ -2309,7 +2323,7 @@ lstaddons-64967={run="1yyfgn2bdlb5gjb2qicx837wl03djpi2cwxzds3bp3n37h52k48c";doc=
 lstbayes-48160={run="1kpkr8xd1k1iinrp1ljj1wjphn0c58l8f6hci0axvxdklr02s3h3";doc="0x288aij80j9vy6bscj3w257nj0y3z1hf0rf9yncs13jsxr8rz05";source="1hcgcvnki1xkh4ni6jqcazl0rjbhfmm6gbgsp9n5qavdgnv7qzmk";};
 lstfiracode-49503={run="07fdzwb4k0dv2mf6yl31h58i61hmw0gfpgrjdnz3v2rnw1ip8kgq";doc="17a8sg0srw7096r3h7qa23msi6pq0dagap3a0rcpclp73z3gh3wh";};
 lt3graph-45913={run="1w5n9y7pqy5zmn6w9bx58nnawvhp5467d150qxnj3c92gh0qbj5i";doc="157y7a7gpgm6dc7hawdhxr0v3ns5kibykhkg3wfb5r5fay47jj4n";};
-lt3luabridge-64801={run="12j7x3r286rsj54h6l0nz3ilnf5fnnpw51dbis20bsgnabpia55m";doc="04k331s04qgh5hg007fs5rhvg9cq0bm7l9dcmkg1yj60h4rpcnim";source="0hyv4jk59l7b1lrxcvkxjqbp1sjpkdig5926lj3nlx0ih39zbwpa";};
+lt3luabridge-69867={run="10ip1css2g1qn9p26xzc9gkdjicd35m6jzdyxd7675zl0h9prvbm";doc="12gch4b6x7mfia5mgglld7zaad2f7w1bybxl689vjc0gfb46v55x";source="0n54m4pawnmpqrbb7m7182d8wbjs150rad4kqqx9h8w9ymwwjrc7";};
 lt3rawobjects-66619={run="1k65hvwwqqw26mqm248fd23xk4bgm864bqnyc759faya84ib8n0q";doc="00l496344la7q8jz0nr895cxir6zn5pcjsn16mc3cd7lpiclxs69";source="005iwxrraxmirspq3881mc2pb8iikc71p4g0dwxbqp38c8v8djb0";};
 ltablex-34923={run="11gazci0c064iav6124v4szdbj38anqwnfgh8pfpdq9zff0h9g5n";doc="0jjd5f3r67lrbl4vyxjakm8l8pdrw9vm1dzhl5305ga8vvwb7gn2";};
 ltabptch-17533={run="06ww90fh24s6lmzyvmqjh5gcr7vp3lq6cg9q6k6194g4kay6yx5i";doc="0yb41cgqpgcxk27259gfz14v9bpndjg51i9nmwr1qwyvaqd6jvjw";};
@@ -2326,14 +2340,14 @@ ltxtools-24897={run="0ldvvkvyw1khfvg80ana7wj20917sjzf0lsp4699hf4jvw71w6x9";doc="
 lua-alt-getopt-56414={run="17czrz46xlbj3xkh4jwdq269mqaq7165kpkhhqa498hrkcgdgaak";doc="1zfwvs979c7s16vpv2k9l81mcmm9y4qdjk46l8ik3123dalchv6f";};
 lua-check-hyphen-47527={run="01q4j9bb19lf838pd7l26rkz1xr7mxcx4fsgf5xd4sdif18h56qk";doc="0iaihbrppn1ap7bqvn37rk8b6m4lwdi8w4zkshiqya1mphhsfjg2";};
 lua-physical-59138={run="1rkf3cgzw6lyld82p8crv8h3swk4acq7b0i9c20q5dksrxcr7vmh";doc="10kzyj9k5fqi0jjkah3xx2cgn1ssvc3byihvs66qpavd2gz25vg3";};
-lua-placeholders-69404={run="135njnv5czy2fqyjchkibxnfav5m0lbg35z3k9f0ag39qf7z1ci0";doc="0m9rivk3gcbf84z8jp5pj58r88nmjmcm1w122z18q92m7kmb55f0";};
+lua-placeholders-70055={run="1i2x0vv8xaadh7klx1airmfshk49a2ldyknn1xzn7iz882lwwrh6";doc="15qvirq2kidifkgd5pi6cdpaafj8z76qjx7n3x6v9bvpp3ybwqi5";};
 lua-tinyyaml-66776={run="0wm23v7rm1mr2l10cariiyzv8f64aq0ms154md2ww9ad4qmsf3km";doc="16990nj13x5452c5mb8ha4hy6n1iyv2xsjqgipv27dhz2g176qy6";};
 lua-typo-69403={run="11g42k7431rh9ih81sl6q331k09l8cy1qw2w5n687736hvv65wak";doc="14rs9ds0mw796rawi4vwq73apyswvy6zlml36866pzy2w8mdcfv5";source="0kcjlddqjvfpjqrj690dwkzjf6b2qqjc7ccix96hzhb37sxmm2qf";};
 lua-uca-61023={run="1klxyb2iw6mccm2dlnpk947kim6ysvkykz69z7crf6lyzcy6lmvb";doc="1605lw450b64xx1a6lxjh9w4jda0n3d0b3sfvxl4wngd5y2jckzg";source="0z7fgyp7dh4zkz48mkh49pngaiyd58ckm0ipd3z626alz4k2jspq";};
-lua-ul-63469={run="1yj9044y9xk5kswl7vb1h5fl55pfmjrq2qnb2caym405pw0pn8pq";doc="0757s68bdvbaqjs0a9wds4x1sxrdabgi7s6jx1ibljb2wndxvw60";source="12x006v3z95ygpldh5x394h2igfn0d67bgmqqh40b5zall17achy";};
+lua-ul-70206={run="1w4prgdq4xmx85gq3hgklxhsxq69spvsqnl4g51wxs2l1pi3dk4w";doc="08kjlrjicm93cp32kssvcjp2j23k0wgcly88xxpkzl6x67nw8qw4";source="1hfld2d2qppvbk0w7cjj9ng888jwi3jqlak4cbnngcijvwaw3hj4";};
 lua-uni-algos-62204={run="0msiywf33b5jpdzc66wyvnklvmvs4cpfq3f6bsplgi22x8nvdrvp";doc="1sfswdkhbjrjd4cjj95lbc1sq30j9y5xi35lg3mjfpdinq43wfr9";};
 lua-visual-debug-65464={run="1yby9rmhq63md8cb58qvi4dzlvw7hnfqicmkrap0c4qamva1aal7";doc="1g48dm1is12zj2ncp5lxf9cv9anq31wm3n99kjw9m1fsygjfsz1k";};
-lua-widow-control-65084={run="022g3aff6xj47wk9kgmc7l07n66milxyxdjpxhp0a5s1wcppf3y9";doc="1az40nki14y88hxk44lfl7czvfhz9lkr3lfikyf2bnjwl2pdmc13";source="1cdpa5h4qd6dc03pjyisib6hndgbr6rxy2ngicfaqwkk25ybrf1r";};
+lua-widow-control-70602={run="1qagxphvc273asxvg77sxrcfv51kzcc6dkz1bszbzzy9sv2f3xs6";doc="1zr31yn7xrxgzj2lnvw8f3sb784xcis63ggd1wylxfnar62mawr7";source="0w7b34afjik8ka9njdh7lfjn565gs8ns9n90phgyj8xpafy09jdk";};
 luaaddplot-62842={run="024k6k9iyqiw29l614n0rj0k32y50fgisd2g1abfis7lihc1nlv0";doc="044yp2522hns6hshlph91c990lh43bwvf40cgkfid47mi4zr79l8";source="0x09ac3qlz7p27nm478lcawdrj98622527ba4rz7004b5p2d8w8v";};
 luabibentry-55777={run="19rvhs12gw5vdq2vvcdzbz4qd3y87qjvl9x4bcqbncqcvwg82cyk";doc="1raq564ad633c0xbwx6r9hhwmx1r7vis283rfh67lixq3prl0nfl";source="0gqbmg1c4wm57ga8gx9g00dfbczfvhqsyl13q0ba451d3kmh6klg";};
 luabidi-68432={run="1kfyazn8v1ks5yvac4x5cvd42i8li0sgv00plj92c2m31hfxw2gl";doc="02387g70qsxs7km8dlgibyx080jwwjg668j0w12v3hz67jvg5ymk";};
@@ -2361,10 +2375,10 @@ luamathalign-63226={run="00j2vngg8sqbagyhmjv8lr8kzfsllllmm2gijhxbm8xgf8r7f01y";d
 luamaths-68883={run="0gcri65p0y9rmq19rgf79jw98i855cl30al9cpq3znp3jjyikfrr";doc="1sv4ygd6ypf0hhcbhydcr1ap7ig26z476i8z0gs5mzfs08rdq5mm";};
 luamesh-63875={run="09ldwjfa0dfhgqv2clyqzd8nzq596h9fz72b1jh7vqjwkn5774y7";doc="0xnk2mcw24v6002v523m7amj6qc4w3h655l1ss4rpwvv6virp3kj";};
 luamodulartables-68893={run="1f250s8836j4kgdzii56c0248j5sp64f5wbqkpd6p69wjz7pbrmx";doc="0pdk7x09gmdv0lnwkvdv3scmbgfgpyv069fa4s5hbyvwskbj7fmy";};
-luamplib-69069={run="055wa9l7bh6313x5dgr2x5idgd3dva994fq9ip9bxg9iv1bnxw1k";doc="15bwxh64cxqz1g6hpn8vphdd1z0f35ldiraadqqw1pf9gnf1fgxm";source="1w83x0yis4rddiqm9qdiqjm2ifg2d1ah7f4f14im9h4r5z37bck2";};
+luamplib-70583={run="014y8nq1za0f0x0hv0cf1s3dq8937a3vv277p66spaa6qaj813hz";doc="13z4pdlydnxswna8qh6ywbqi6k7c2bgxspwgghz3n6xc5nr9g95x";source="11fbzlvs6ra67ywpbq1qxlk26wk0fncphcl1nrdw6f3l8v9m4dml";};
 luanumint-68918={run="14z8vvxxivi2i61r1ydq1csbxlm3621y4j9hx3p0m9s1ngcy4ryv";doc="1iss948y9rhg7j6am6vyc5y0s1cmn43k1g8vgcjlzbp8x88mwlwx";};
 luaoptions-64870={run="1lkx7ynl6xci7klgi2h7qbyxny65nca74xz2bhnhch6zm38rgsa5";doc="02w3623ix7g67bz21262i95gn1m4gzvlvn08f7v0x0q5lm7x1f3x";};
-luaotfload-68143={run="0qxjljd7b0r1h6qxmcl9k7rkpkfmcmppg3yy60ids37cf8sgvjpn";doc="0zw66fxxd02h39dhadp1i53nyp50kgcclkp3fgz5pi0njdm02azc";source="1jmvglj1mv766cxzj6bnagrlby2z7w3gkpqls19ic2g9a154i62c";};
+luaotfload-70234={run="0zkj8hshfxxs9yq5gjmznafr88gz4vd551lh3pz8xskw0s1qh2cr";doc="15z1anhc699fb0k7v14s9xl9bgv0w0114zzz3ibwr37nj8hy6xdq";source="1jmvglj1mv766cxzj6bnagrlby2z7w3gkpqls19ic2g9a154i62c";};
 luapackageloader-54779={run="1ynqy88drl04ld2lycrpvjj3cxddmbycznfamhl1bmn01c1q9784";doc="1fn9kqab5hyvscjqmd34vxjkdcr7bapgw7w3ckwvlsslxrv22rfs";};
 luaplot-68918={run="1lsc02qnqw6p2qamx2754ywk95yilq8jvn3vzra425iy675gl7kg";doc="11xl1j11p52zxncgcmg1b8x7isixz4vissfxzppc6ndv5dvqk3aa";};
 luaprogtable-56113={run="16jmy3cvn7rmzf5i03x51yp5l90kmrdy0iqg8ji4z3xwrf0iq79x";doc="1d0k83dyiml9abnfc3b9l4n6w18lgm37bijr8xj3chyv04v85392";};
@@ -2376,15 +2390,15 @@ luasseq-65511={run="1cxp3x3d346k7j6kh1bch4d83xb5ihb6h9jv8l98jcg0fp6zvy74";doc="1
 luatex-69182={run="0z08r0hjkcp51qzffqgf80df9445xiagi08cs3lyjfjn578z813b";doc="0cgml9jqd905jnwml4bwaqawplqp9ga0qnc4swkcvjmq3fkij8nf";};
 luatex85-41456={run="0ss7c5x0x7sx6lsn1iq6lyyp6w0xb1iy01s1f7zf7mlb9n1yzffi";doc="126y3priwz6anp8sj0296bnxd53lz20nchpxw74zphfpwrv4hzih";source="15bc8g0pgrkqpb8q2dhb6zml2d4jwrripih9898mmalsjixy62x7";};
 luatexbase-52663={run="1zrwz661gilr4iizcfsxwmfr9dgx7v28lypaslmvp3zaf52zl2q1";doc="118azb2x20gyaj42r5w0749dx8rzhhri1nz3szy9vv64h0fig603";source="0vsg8q5k8l66sy3d0bskr6cv1f95lnhap3b9yl754x7ynv272xcd";};
-luatexja-69245={run="04vjkw2pbm31zanh19lp54pjq6a12advq8mnpimlimy292kqvfqy";doc="0vwy9fr0qzk8zwl603mv3lfv2md22syk10mv3fp3axyjpchvba1h";source="0y7vqwj3rpbhrr9z3if1p81k789sjgm5df973jsnbwd7mz4n53s9";};
+luatexja-69988={run="1d61fqb07flldrnzmdcbnqd6nia163qajahbmhcxqshcj86da4ah";doc="1xp8xnqxm7mw6zcqkzjhrad255bsql92q665b0nmhw03h5xvyy25";source="0y7vqwj3rpbhrr9z3if1p81k789sjgm5df973jsnbwd7mz4n53s9";};
 luatexko-68243={run="0kr9i78a3dw18rfws0xxc7kjd4n61xgzjkdlzb83yls4fyxncz1h";doc="0k69i41pjfqifqjcjw4962yvvgwb07a46igvwb70xsrm8cxgkm20";};
 luatextra-20747={run="1dx2hc1md8csvb37lckxj4987zaldfd73c86y0ni8fzd4zg55s7z";doc="02dl0skcr30hh9wgm7bkdv5zvx3czcdkxv3zdqnasdk0b7r7mqh7";source="1yq5i4v2dxayhfzn1yw987i3zjm6gy4fqckx5kybzh8f6jr9167b";};
 luatodonotes-53825={run="15syf4k00shgi159j6ja182k24xhfw71zk167wwmy57y7kwm5cam";doc="1jcybpcd500lzkwa33zdmsq3svb9hrh8f56j4qgwm9cq4wb721f3";source="01km6y8ajgaaab9j1bdp4s8gj3iw5b7cfdl1yngp41ph22888aw2";};
 luatruthtable-68893={run="0pkw1q5jw8id57mcz2sr1mb1lwafara5kzvq3yrkmqp8s9ml5ns4";doc="1i6nplzr640dik1rg668pai86vip0qgsfgizgbd7v4v7sjs24s76";};
 luavlna-67442={run="1hwbf0l2ydi2a5x05gcffw3p9yw8gvk4srihz7rsp6g7yf6qhzds";doc="0wirwf96b50m5wnhfiami8xiw9rr12mx20kp4wqc1bnihxg8l2si";};
-luaxml-60709={run="0w4c8sy0bjacrkfh3qb9rnv9ls5izzkma3fr6yd4zmwjzn09hh6j";doc="1giy76w9p3ribicsbwghh4ckrdijcfxnpyflv59ry0c9008xdrr8";};
+luaxml-70117={run="1cdrh3mhnclxb140x6xlggvwwzd5rwvdr7655zkvrbdq8byp3wxp";doc="1zv85256la5d98wklpgc27djazd4zpv5b7drd3zrf3a0l4mslvp1";};
 lutabulartools-67714={run="1vly69bgzq9pxapl7w1f7cppkx5yr5yyi1gxv0488m2z75522i8k";doc="0iyg0vqm675ak5j1ax46zwq9gcl58vr2r861085zzxicw4a1fh5i";};
-lwarp-69384={run="09zvwh3lk9lx3ah5ihv7n90898ahj054id6hyixj0ymcxmjibc14";doc="0dcqrgcyffj1rjf81fj4dc39syzr51ihkwlw41328i22rbaavkql";source="1605c281d4ap8wiyafvsi717yifksrbi9d3jcwrg75cvs9f9ayqa";};
+lwarp-70072={run="0bfvsw734380l5g7y0m6phyd99x28ib4s26mim5smwlx13sgzvh6";doc="00ix9xb95k3qqdaf5mcvkj99vz2p5mj76fg83hiw5pwbdv6p83j3";source="009jifl4fkx89157h5dmfa658wj0pvzhgxff4krpj16mlik3xarv";};
 lxfonts-32354={run="1hl703cxwldq4ams7044m02bmnvm8vkym7xyz9cb8xkaqfyqp8cp";doc="1lfrcfpn9a260bx47nw6msvksjzqjqms5d31nprc800wk2vb8sf6";source="17j1kys5hrvkymba91kp8f1kq5vshc8blv5pm0m6yk6p4kdnfkyh";};
 ly1-63565={run="04g9labqzn9c10asy6nn5s6clqq2cnbhps9jf683qx5di1pabgp1";doc="0l2dqyxd005y9k8xpca04vyzbjxx6vzr7by1yz4qm1dkccnjprh1";};
 lyluatex-66880={run="0zj0n5bgawhkw0c04crlkb2m8yabb0r49bysphgzabyl3rvd3i2s";doc="01x3xkqv2f8gvrsl0qj3d2y6bkzmzbphzxcqy6s0f4rp5yj3dw35";};
@@ -2400,7 +2414,7 @@ magra-57373={run="02zwkxc94lzi5wf29wws8ia863ljq9bq9swkh8k8318v5z4dv5ig";doc="0q6
 mahjong-58896={run="02dkqs06dgp74963awkyj7w3in66h91hx5rycix61d0qz4qwrvqw";doc="0cxzzcngiz7796xzf0k1njchhw2p2m47kpw2fhrf1cqijwhw3jxb";source="0ygvmg8c6yp2mwlffr52jf5shl0qh26p0xlfkj39zzabd8jv2ay3";};
 mailing-15878={run="0x2mgcmfmppzqlwkg5jd1zfyvfdjnrvnk8glby93s5nvp6i6g8c1";doc="1aif16654381jcczmfn44k8v8x60clq94z4hcwjsqhai6s441hbr";source="1cx0pq1qmkn6k09x1r8mx7dmpwvdvprmvwj45p1k7mmfcvq2834d";};
 mailmerge-15878={run="06z9cb353sl9q6a7jbvwwdd0zk3kw5xmww0r3sjiqampxib19i9j";doc="1dk2a71x04nbc0rcmd3axhz8yikzlw9ab1nd5k1ki7pmclwkscdr";source="1qkmlfc2dvjhrh2xcypnp9wansxrb9wzvniwfb7sll2bxjcfbs8c";};
-make4ht-66130={run="0jk9xamxgyvwy77jv9iyg0z8bj1cy4cmswf6a8ydhcbpc2yyhcsn";doc="1vhcrpxdf1pc7qn5y3jirq01qni2i1jb9cmvghyy92kzfj88c93m";};
+make4ht-70117={run="1akzga489x8acbb8hrjmc1i6v9wmbmi30rqjmgj32pcqqlgkp9r3";doc="18kqpslbz18hbai5rl6nbwhgf7mb39nhhmpdzfnmi9nc3k5ff51b";};
 makebarcode-15878={run="1ixhl4k89mng2dqfc0wa0fq52xpafp15gghnyx28d9j1163wxr7d";doc="088wkffs4b8y0clgcx1impzbxck8klm32dbf6p1jyc2vpi848irk";};
 makebase-41012={run="1nmlgv76zy1ajfzbdv7hizby3hhciw41s10hbnlbrfdl27w14dpp";doc="1vxwgjk3dj853qbvy2fyqzni2qkkjhslf17xvxskq97w8fcqr13j";source="1f8aliax01b9ir5wzk0bjhqzicl26xa63khx84s9haplh183qk2m";};
 makebox-15878={run="1v2xpiabjcgyi1d0ifpvzcll8y01lzs48bs19nalv37jw7hkrr4m";doc="078bz2pism9harcyb9lq8kkrkq984zx2ya47yhpqxnrd85kgcxfb";source="11gjpqmc6dzccv3yc539ki64hzpn8ns0zzjvanw7afbn5bkyrs91";};
@@ -2416,7 +2430,7 @@ makeplot-15878={run="0qp0qgcli40hd2dxgbd8fv9s03r81dlhh48pb8la9sh28qrb9i51";doc="
 maker-44823={run="1fymg22y0w2kghmqh5pgxkrncdcbbmhhxappc72g5q337hcky0xa";doc="1yz72c1ghqjs06nagngpp2q62gh67c3klwm73bcbc090vdfkw7mf";};
 makerobust-52811={run="0nm751w11p7cqg8ihckn338i6908kcn513644c6a1qc9rg847hlp";doc="0bidk4f0q6486vgwqvifzchkn0xi1l9j65yqwgcdnl3yg6vamqzw";};
 makeshape-28973={run="1fy1ccz3707f8wxilh95k8sc3a93gl93qcpvpxl833mbkamkx3kj";doc="17dnkldg0v2qp3hdy4bw1k48p8xx3v566pm088g8qb0df6kx4217";source="1yd3ssh3cpy54gm0nkp2ah0nqarbnk9hqw2kkwdf96dj8vjlsgwd";};
-mandi-68950={run="0rmrsk3i2zrf48zv76jbfv7a71z5688lnq0gdla1x0ka51zfp11m";doc="1rfhbg00vbd5dbz6fi9zj0m2cfxwwycdc78qamrpxb51y3bb9giw";source="0vlw1wm8kmqx3zg4hyqcyvfvrch3pv0abvp06y48dxw2zkhbdmf9";};
+mandi-70235={run="1v4npbn35qw9rs404d6s8ajyc9fn3blypr45bbp282wlgfdmg0vc";doc="0cvk0sx0dy4pnyh8r8rz83v95jkjx141kxmspkdyy9nxf9jixn6c";source="0nz6nmlrgwj99qsshcblx4rjb64gwdn4anjp85gvk5hc07vf2q9b";};
 manfnt-54684={run="1fzfcvifh013xs6dm6xq2gpvmf3v0qn8scrbjj3yak2ba98bcy18";doc="15rs74sfnyq2k27bs3dvjiachwamima3q4vp0dp0ic95as2n61gp";source="1v3j47xa7k66dadz8dyy9gm3k4s6465zgqpzb320isjpb77p7r48";};
 manfnt-font-45777={run="1cdd2a3xj00bwsby9z5iz5f2iy2iwsjl35gcack9q83hacbf3ssb";};
 manuscript-36110={run="12r1b0hqs1kqdxvyg8lv8yrsdycfxs03j0lwfmlhbg6lmgz32pss";doc="10dczs60ncdk5z76w5jxgis9m9qilxp8xi53gixki4i82yd4l9va";source="08fpv1i9vz6fbf9vy48k6y45xz67kbqb5f30c8pxbvyzlicixdjk";};
@@ -2427,7 +2441,7 @@ margbib-15878={run="114ifix2wa74ix9zz1ml9bpyd0pqzj2983h29n3h425yq98aiqs8";doc="0
 marginfit-48281={run="0x8ias8bv1zaavin929782cjvp7aw94r18lqvv10v3vgq20n7kjw";doc="1cj1fidjvvhhzn9fxbvyh75dfb78wxi83bdxnwbpc6rf3ax5bl03";source="0rrn2lrqg3a1yz6l88qkh8sljr18p1wx1vxyrzg04pzj21lw8kkh";};
 marginfix-55064={run="0arldbc20d1sncwanx3szam53yv1d5wxgihj8lm4jmda1858bmgy";doc="0kk9cghi0y1zfk6ya3pfs08npdy7v95i4db5a89v2177cd6z7a78";source="1k1384nxhiywlvyndnvhj6a35q433ddc019ckf8al2b1ngg13y0w";};
 marginnote-68204={run="1jg3f25jhdywqaxy4qimxr7x0kxjs279m7a3kf9lvyj6igcijml3";doc="1n1kswzhxdx7b47l4gf4cbihvzy54z24gg0sz4syvpy6nq23fs0b";source="15cl27n5q30i70ad91ajflrrcqb5wya1cb400jh82b9k7a6y8ych";};
-markdown-66954={run="1y6gqhcbp9z6wc39704x6mi69wlq3b9zkpbjf898545qi6l08s3a";doc="1y8l6y1wp72kjq4cymckyfywz8nz44rbyrw2bj81rp07i1vl3r3x";source="18s9206jpgwsg9b0k5gfnr9ighm882qcyc67ymardgb2v5hzpszz";};
+markdown-70583={run="1y6gqhcbp9z6wc39704x6mi69wlq3b9zkpbjf898545qi6l08s3a";doc="1y8l6y1wp72kjq4cymckyfywz8nz44rbyrw2bj81rp07i1vl3r3x";source="18s9206jpgwsg9b0k5gfnr9ighm882qcyc67ymardgb2v5hzpszz";};
 marvosym-29349={run="14i2alqxpz0imgdlx03gyg2nn56wrhlc0rziyx93h4ya9nz6xzbl";doc="0qyfyz8qfcchnf78r71fp5p16hmsrq6xf54g5mnwjb4p5ipbd9np";source="0vbiq807pazw2c1ck799w8sy3q8wcpb6smmq5qqw4nqcxzwsxk78";};
 matapli-62632={run="0r6xibqz726d68cli8izl20r4x2ncvrmlrjb711jz82qxbgs9kvg";doc="1cmyrnrijghjm15lhi2isza0dishbll3k4hpzq84jjjbcbs4gvyp";};
 matc3-29845={run="1mp6k50lm020xqrq2vwl9xyzr5jwp9p85c6ng3k22g4rqsxhrb3c";doc="17xh063gahp5m83vj6x8waqwvf4hrvg3wi80z70r94bag0nqqf2v";source="0pq4l1ays56ry5v3ig76h49kn7hdk1gi0wqx9b29vkdvzmzrmq02";};
@@ -2454,7 +2468,7 @@ maths-symbols-37763={doc="0z83qf1rz84cr0b1zvwlacf24pc5r8dn1cxiiyl0xrqncl3279ka";
 mathsemantics-63241={run="0vw14g42f9jhnb4k75qlighsngdl9kkwp921iblafs39zlx0fh7w";doc="1lkm8gysyim4kjggwm1dqc9158agxng3nd9kdksyxlna89xrgq96";};
 mathspec-42773={run="0gspy6kjnx7bs5dxap8ym8s0k9i8hczi6s4s97y7av7vc8j1fb5w";doc="07mmfcd0fvhrhafsfk4sb4dvs5x8x1rjk1a2xl20kwpfpp8l1rb6";};
 mathspic-31957={run="104vf0cbxhfbgabxjpypyx16fbpyi05k14dhw5ynmlh4rv3ck7li";doc="10j7z7yb5fjqlldf8w5sm5kic6v842dijd7f4v0b2q5h1gbhwyim";};
-mathtools-63767={run="0nxhvj69zj71hpx1f5y56asm8cgm6bmb0wnrbdq33xfhv1b6aw60";doc="0cc5rypff42yw5i0jkmh6d7byx3a3mc8wiyvwhbjx2z2l1kpjkhx";source="0kj4qf29cd1dp0wqmqn9bsv96dzqvs9h31v1fm4cadd1cc666589";};
+mathtools-70607={run="0qkjy4a44z63igdp5gvnb7y3kb22l1x6v70frcbiwmhyagyqa5ns";doc="1q4bnkpyhf050cwla2ns0scwxjnbfxdf5jy5z8l5s2dxm5qrhg99";source="1lrxhggn7k6hma49rpq8zkfqvd86m1c45mdh1n3cn5nk8b76lg7i";};
 matlab-prettifier-34323={run="1q7i44n15pvpc65k41nw6z8gxj0nwk39mhafnmsibxh41yyxz9ns";doc="15x6lbj54597f8wm0vgf0yy0iwh7g7xv7cnllnay651zwg3z7h9l";source="0vr8cll1v3hgikrng1rilqb5d3kbggcmdy92hsdnip7dr0hxc39y";};
 matrix-skeleton-65013={run="1ihjvzsxaj5282xc15a4fw6cqj159m9hpj4hblfmjgjra5p597gs";doc="0109ify7qqbdrgrw0a8svdaqk1amm0njvawgh1ch8z7qszlpg4c4";};
 mattens-62326={run="1az5ld75djha5949bl1wiqbm5mzff77cvcyyk11qjvg7pjwa3h1z";doc="0mqsr5a2bhgrllvcqp03aacvsp7wymqnvsk1zswwscsrjl9dh5ka";source="15ww1gl01yfaw7gcm66z8zd2yhhnj15pw53crj6ma6j94akn1zff";};
@@ -2463,10 +2477,10 @@ maze-65508={run="139hjw2asv21p0m7qrpi5liikgf68kmk9v214njh107gi3cjl59w";doc="0h1l
 mcaption-15878={run="0bfcl1swwgz83y4f80a1kydmxhdyqxld0d5cjfgxfhnn9dxp3wc9";doc="1afldwg6dghvkwd8gik8dmag4g2pb6ag3aks26qi0ygph05j9cwz";source="0i6sd9vm1pn9h570am4lkr2br81bhmqqwwvymb8r37xpmmp9yvsk";};
 mceinleger-15878={run="1a16g83g9wd5vdx70bq8zbr4hwm8fk46dpsna97r9fgh44n85pv9";doc="09z7srskh57mz055ywyxwg4zcx07vq36jdy8z9w6w74af4icpll9";};
 mcexam-60481={run="0ixgrxw0fzaqbkif05lvd3z6zlwhdlyhfb372b98ypyfp7f7v1mf";doc="0wi7zjiw93hv74scwz4w4prmy00x6n3ncwfrxjyxn2p7i2hkws6x";};
-mcf2graph-69281={doc="0v5pw5px77gnzfx5cbb818ql1gi2l48f62j0fk61iqav02svr4nn";};
+mcf2graph-70167={doc="15pcw5zy9ghrpw1q9b6sck9zvjdr6py8j822zvdq4ca9qg05rlml";};
 mcite-18173={run="18did9achsp32k7wq4q75a9q43jxdm8k40q41j242gndnkn8axw1";doc="1gdsa91a4snk3f22mh06mr811b1kb0vpi30ss84d3mrnsvd1p0ha";source="0q1bv5nx9xf6r1fvgnxb1x720dm0xqrqg3kya0504q8qb0kgxqfj";};
 mciteplus-31648={run="0xbk5zrd9mbk4xid03j7a0c96s311rb1vjawhvk5waqw9y6dn476";doc="15aldir7viryb2f8vi0a83vgbdwbp5gcdg0slhp6j6ka6xv7ayhs";};
-mcmthesis-57333={run="1pjllpvmqva7yk4zi4gl91blwbciw4f0fhq7rjc214iglyghl9fr";doc="0np4zsrlb5xxlwc37dldrcawd9ldmjqgq1qhbpdz639n3j4gmnq4";source="0acxvqka48id5fhr9p07qh01h44vhq3kapczr0i49pyn2ihibnyk";};
+mcmthesis-69538={run="1pz460nrypf05knd6lbk6sggpwsn6cssv71x7mpaz4557na9xg1j";doc="1mzfhkpahw0gc1q3b9yr4p4ya82y0y57ij3n12i1sqk7h4m3m1vq";source="1g7i751plyf1v4561z827xkk586zn8f364xapcfvky54lyw7v9ny";};
 mdframed-31075={run="073gcxy2s8mskf4mvvs1jr8fkijci1ayg0b5r5xzcjw0s5azny1m";doc="0m8k7h5c0h1fdrpdf2a4vhgr8saqspk81c0cdjm2cmbsfm8zlc3s";source="0p96sl69p5342yy9fgw5cnkfi2xabdwb74mw7i1gbxvj0vx1f2q6";};
 mdputu-20298={run="1ihwhdcmk3gd081yn4wimg7yadvxkygybr3bypqrvllwa92lay3j";doc="1hsd74svpxxmjps3fng679hq7dm35mz9glcwwhk1carzafmm2ppm";};
 mdsymbol-28399={run="1rckczggrdd977n7dr223zfvp7dl683p7d6wfija8ln4d1ll3lz8";doc="0v8d92kpka138yzy4a8hg5yf6zrz267hhsakpm2f0bamdzqkp4kc";source="0xh9d4xpdyacmb3kxmqh71qfx0b5qbrgxrw3fj2nh2rzh35smsy8";};
@@ -2474,14 +2488,15 @@ mdwtools-15878={run="0l40ydzljgydp8qfq1lm9v8nz0mrz4zxpjxicypn2hx7bxs2b9rq";doc="
 mecaso-60346={run="1hsgs52844fv3yfzhylb47hpgjdfkx5wvgx1ihslkg9xm432z18c";doc="066zg20m9hnm2h0bdbzfbxcjsgpbm52l6xwrszbl2ycinqf4rwdx";};
 media4svg-64686={run="1l8ncn14k3khzq4pvy0var7j7nr78vll42bfz1m3cxi5i144ygn9";doc="1ws9j415nkj68ypgmvsc3384dqzjrfab0bb8khz2rqq98sv6129l";};
 media9-64047={run="0891l6dfz89fqy35svnk1rl6vjwhza86km8vk85n9wp322vqnrha";doc="1v0fxv93qc6nj7rskf7gd8ra8i7sll2aznrgs7q2bml9xnggvq39";source="1h3p9v4p4kr35ixpwwv7g8fwgy3ky3haa2ypjlpzbci7jcb0ix5f";};
+medmath-69510={run="17i7sanjgagb303q608b86a77k1p6zc393mrvkcyrr8cjwviy9wx";doc="1306k93xy0sky7lkysikiz2zvd7a4lkpv99spifyi31y4jxzlqrp";};
 medstarbeamer-38828={run="1cndcpdvkdvjx07rfan5dd7yg6sv532b6vvd97cm7ag2g1aqcilq";doc="0i995yaqv91h4iv3h7r5m73vb7xvpjkzrh6nddcjjcsv2gvpjcxi";};
 meetingmins-31878={run="0za2aqj7gbmxxdm3hqkq2sqkhl3c1q8a3s778hw164dfpi8jx85r";doc="13kqp3561k9pcz7lmh7izmxw8iqq0s1jlhvq12dh00wvr7vwr8dr";source="0fkgaqldjdry08wl8al8d0kppbsqqhig83mgwfk20rzpji298b5x";};
 membranecomputing-64627={run="0k8kgr6rlrgpmmylf3vjjjiyis49lm1r1hnvb2m2k3481gfj7zfz";doc="14hk6rw8fj040vwpqhqajlbzlp7g3c7szprssxx148j816fgi95c";};
 memdesign-48664={doc="0aij1b7l1kb2x44qn33m39k0kbhdrclmr25nmvzfn6yw42lh9fz7";};
 memexsupp-15878={run="0h3n1bnvyxr0ylg05fm819lzhzd7kbip5p5mr9kc5af8pd6yci9k";doc="04zwmw6varldbg5cxzk4bv8mbh80i9gdysfxpn1i4xb1la38b0bf";};
-memoir-68004={run="175f2przjgmmqz7c08f5v7rrz4w54q594blddj4n1372dxgg9fhm";doc="092mqw22np2ynr7g20192c4k8pcsg8qg9g3qx3k8kgds640afzxn";source="0xvs80sm4i9nnjll2i62g8gn4lkkbvpbhwzw40cpsg6n08hkihdc";};
+memoir-69600={run="0zfab6dc435zy8cad1zi3f6d29vv02ns9cpgl3z14cx7qcm62c3g";doc="1bz0x9ph9l665rsmbhdwzgvfm1y1nxwm2mqbxlz4gjaqz7wf2k0l";source="09c78l1akvc3x98v47hwsky52wrx81y3dd6v765s14jjr1qahsx3";};
 memoirchapterstyles-59766={doc="0jxd7sbh5vc3j5d5jd3zmyg58kwhy550l5z8q14b4msm00fp6z0a";};
-memoize-69285={run="0q797wprlvapf4a4wiwbkivh4hb80iyy6mj7q5hlwqqvpw1gw3lj";doc="0g4fyf723zv3rbwkxddvsxh22pqljra0g6r1lf7iz645501y7q94";source="1vmhr1skp49yb13pi7lgqn89wlp8xv7w3cj9zcfbw27xvn3x6235";};
+memoize-69522={run="1qdq26cms38kjzws2712skwdxajc3qa9sw3zin0h5776lbbz6q7x";doc="192jsgypxlhldfn5if2zjs4gp2a4b4p3hwg80c0hpz3qlvxvi05q";source="0xw8207wn9h7yr6q378631695c5m2qars2adw23n6v0fxcm95izx";};
 memory-30452={run="1zgfjz995jbji8hycizbp614dn0g13rimh9csgrga86f1ivgcpmx";doc="164nnsi25jk25p3kh54w2l8zk0rri50p0s9g4r5f50c3wzxi1g4h";source="0mhxxhiqq5miqskb6c4hmjdjki280yyin2dh0md59ai1aprgd4p7";};
 memorygraphs-49631={run="1ph43wp3h3pz5hh6dp3n6dzmmbn0fw11w3v2fjf6d07a73jqh97j";doc="1k8gppgv5kkx7i799mwc9iclp2rv9hgdk2bwnqcyc3j3rmnpyiwa";};
 mendex-doc-62914={run="0ab3hrln124gwvgsszd4l4jjrc705x3wbnmrrf27rx8p6fcwwrmw";doc="00m35j5wkcsyrgp0h8mf6cx30bjlhv23szmclpls70af2shcmzba";source="0sqp5s98lzdjnvpvw3hkvclrz98xzx6v7zrlag9m1im7k2ljlcvy";};
@@ -2497,7 +2512,7 @@ metafont-66186={run="1kw37drhnk7qajmivvjwdrh5awns571wclv8b354zk71axf6cr35";doc="
 metafont-beginners-29803={doc="12hhvlnvh8dj1396242m6yi0341cina7sxrv7pwzqxzzahwdvmgm";};
 metago-15878={run="0km18bf69rf3rs42b0azc7i8bypy14201vk13yf5ahsypcjcgqns";doc="1bx240q75pq9v23gz82i26vrp7z4cb00f9nb3cvvknbndk8y7hy2";};
 metalogo-18611={run="03crm3sswv7mz5akghqvkq1zpiy9jdpy32ivwwmf14sfrrri2cz7";doc="08vgbmjhynb4ramaj68i27hpgijg51j80lm0qf1jrfpapz7lrzij";source="1ak8qbcbqgirljfwhq7ylxk1w2frxfkjvadjq00cclj007idr3x8";};
-metalogox-69401={run="01bz9kp73cyf89fjqq8dcyr4fi3n4h7m1gkwkhm78grxd2wghar3";doc="18vmy8xkxjm02jqnsza88z01n9qz28scm3mm4c00bd2y9a6ablzi";source="12cxqikvlk5vg7mgiisi97i4b4nwb49ymvrja43in89glh50ily7";};
+metalogox-70496={run="11q1i8cmfjw521xzqgw27vn8bds5var36nacik8ffflgb3f6j36g";doc="0d5zsshzj575y5ry0zvm39dhigcjf8mfh4ficj084ss5xgmf2qyr";source="0pkbi2f6zsx4c0wv501kkia2mz6cgbcnln9zbvlnrq9lk21jsd1d";};
 metanorma-55010={run="17vg55m4yj3xcfgvmm2kw8a81fblwykgnbcn65drll10b89wx6xp";doc="0z3mr4aw6gqdj4621dlghb4bsc5i44mlg81w81by98783fn4xdyl";};
 metaobj-15878={run="07p2r8975ps1ricqralyw2qz1zq5lmaaf50xqd68qwxmgrs3541z";doc="17kqa3h13p9vba6sa5s29v29gkm0zbm5wngb0zx1lxwkpkgqaqv5";};
 metaplot-15878={run="01blkf01b89a2f1c7fw6dbp49iw9qw94krv1hiqg7ckkj8j06sp8";doc="1fm27sy0zz3ppzz95bngipkq4m498g409igx4xcbkmqaghci1pin";};
@@ -2524,7 +2539,7 @@ mfpic4ode-17745={run="0jdqbdi2gqb1v4cqahwss1rj44iw0753cq262j8zmaarski351a0";doc=
 mftinc-15878={run="0yhw7zpmbc3780qm46p5sc2qq71s2vhmfmi3kqscck876h4935fy";doc="0yxpbp501d6vwsxpm83zjhypvz3xz51f91q414zxjvsy1cvvprr1";source="1zamx3658d8vaik5w30hvia5y0hp119vhvqhj4h5kkwnwmz8hs45";};
 mfware-66186={run="0kcz1gy17819w77sf0l9m5f6rw8dcapkdbvwaknnrmy50v0jfs1n";doc="0z3djvzs8l0w1j7h22hc19r2i49panw7m2lpp22lshxybsibr47y";};
 mgltex-63255={run="11xl6nw76hana2mdcq7m4h6kx6zx91apxcqkgjczcw9f7ip6m3cl";doc="1939pnggbc2vcvavilcssf6i9j36ysv8k93f0bz1rgn2krja2d22";source="1pdlxf2qfyzm3pjjpl0wir4sr255lqnspbsvxfy7wz78aii2ik5y";};
-mhchem-61456={run="07dnb38z8p5a46fp8rx3nqhqni0lwg48wzi2bc2nxb4yb0wlcfai";doc="13b1yc9zi2kblrmmlrg43arxg45g7y2l8kd2sq64jys2nw7sq17n";};
+mhchem-69639={run="1mvml2z30q09rw24laybbkacf57jav8459nb6qfj4z068r9bpifq";doc="1f4nmg09mg2nykrrynaaijkn7xjlk3szccw375kam6b7ps37srgv";};
 mhequ-64978={run="0zyp8x8qxjq3z6b8dm3pgls4z9cr03qiqxlf6d55ylnqmdd68w68";doc="081mavy3495k4ciqvxd3hzkb2bs7m0s5jm8lx01z85p568bw5268";};
 mi-solns-49651={run="1bv7gr2wa11cbsznz414x35n5yy5jw7q9kngnb2h5y73v8bnzvc6";doc="1byfb723572whq315zwybwm1bcvcn49km80gn5bi081gy81r75hw";source="12xrddxlrngjnk0yk35spk886yd9p3nnz6jrp51dfzw1xz6pkivr";};
 miama-54512={run="0138r1yrv1880nmcpgcgb80nzd29xchm09s8wxb53j71q0vvdswh";doc="0dd32q8clxgkd7cdk0699fzplnib4waydx9y9i33lxxwjkfnfsbl";source="14d7ryxz6q17jn94wlj5vf2hzif6i08yjbxh5z7pdcgrnl035gxj";};
@@ -2539,13 +2554,13 @@ mindflow-65236={run="1i5a3jnyi07sp6zz3cyyyyp8gbimy7ypvxsg9220cyws2z65d7zm";doc="
 minibox-30914={run="0r94l5sy4n97p895xk33ir3dli1ngy3p67w2d3i7f6hi6czvykm2";doc="0bzd55wkdxw8spw4706nj0sk478zbnvq9cnkpid638cwb6csb21c";source="1dm8p6rjivm0xxa7px5dvsnrqs48zwn2kiq3vr6gdqmiy0ld1v93";};
 minidocument-43752={run="1mrzcxa59kpmrkhnnv08z7h48bj74gk2b0q3bvhmvddd6047yxwy";doc="0dl4l8skhz7fm23mpmgmy593f34w78mm5qwab5bc41sg0xc0lyy3";source="1n0qf2r1mjp8vx3s750fw5h2q51pp3qxf90gds8bzq2cv6mi61sv";};
 minifp-32559={run="1vpq8mh443hhmnf5cgj37jm362m90zdhm55jzqh1x84dadqpmivf";doc="08f3hp3knyc37a2fy87i11q62dlb35ri197gxm3ghl5h28zvzpfb";source="1l837v8c70s8x1xn4xhag6nkfpayamgzk95fb23qw23xpf6zp2wv";};
-minim-69352={run="0ny85fr9921mdx8kprbq9q2w431g33yyi2zadbw1p19xsng4xy0v";doc="0lv17nf3lvll2bb777xkd5d0mpkrd2ixhqn32448ilczxqp71qcb";};
+minim-70320={run="0219g17q9nd7ga9lbg96wk5jqhw3i3cfxjv44b116gbnkrf57z9s";doc="082yk82nlcjq2cp5v692g4ph1q4p9ry51sfcdjpjx7874g03wvax";};
 minim-hatching-62395={run="0raih3zsaxpas4myf4m0bmdxqm1av62cldjs4z768nndkv6xl1iw";doc="0bngn9d24w77dxi1s7ad87gi27m48d4jr2j51cpmmagfdvlqnfsi";};
 minim-math-69352={run="1fa8a3jq51wm23ivmb5n6hrcbyxcmhb95x08n4lmhw6x6qsr0hj7";doc="1dpilbyr9hdik1lp5lm860hjk7ni9adwn3dw82pasiipqvy8qzcf";};
-minim-mp-69352={run="16cb8sqfw625nx2zw0qclskw30zp13c5hcgza80ghvvmmd4ixpvr";doc="0nmg25mmk30q15vpzzpmiwc0lwkk7qnx5dx57bp7wfq5w08jc8df";};
-minim-pdf-69352={run="03b8awx6kg2j49485arlzaz73kx1bp73iq9mp5fh0jj45hxvls5a";doc="0qjwpff43h3a02v4qsk4p2v995kqp049n4qg0nd0g4hx6y5gi2l5";};
+minim-mp-70322={run="0qjrp9xj5cra1v0j98ibsi0icr5if6267ipw43ff56q1haf774x6";doc="0rqf8mdhbz4yrka98n3swz3p3q96czjmndj4n3n68klzlpl45v1c";};
+minim-pdf-70321={run="14zl2sxajxs3qgb5bv7lrraww3ci4kdvnflhlnmgi4dca5vnfh61";doc="11wd9vir4ph5hlj2hfr49qf3w77piv7dccwnqm6w7c5w661b9i7z";};
 minim-xmp-69352={run="1pyf6qisnkh1600ha6605if690715qprhwrakygq71gl0ak9xl00";doc="0vyhvy71ajr2d4dii4kp2inyihra85xvmqjs1fzz1am5hbqqmc7l";};
-minimalist-68552={run="17fpzv3x25gkr9z62mycd1pnv7fqp5hj22ax1qy236ckc02abc5y";doc="11656mg8gcbj480sy5z4avrw95f2ihm4b5n1a1s9qdaq2i6y97rz";};
+minimalist-70329={run="15zd2zj5v97mpsczk7qw8nnk7fbnxscjwii1bf2ry0f7707n8if5";doc="0870smwh2sqs7qfkxpmwrbl2ahq916kq3cl0qfmjqlcsjmy2plmd";};
 minipage-marginpar-15878={run="1qpymibkrwdbyf2rlvfjj0g8agxisd2ym3xi7lzx3g953g5whg5r";doc="06rivjd4x8mdpzv9h1yzkjbs317jvxa78zbv1kzyia7fps74wi1b";source="13k27b7avz3v2jadjh84w74rsyh4gz2x22b8j5lv6yvrjnwv09f6";};
 miniplot-17483={run="1hl5nd6p9c1xhm1kpw9sh1s81ymdy8lxfn7wh1sdvildcvclvd4q";doc="068s76gnva6rsnd7gfwswxfam56dbiw9s9ymqr2hcqx7i4dl87x4";};
 minitoc-61719={run="0v80ga66rg4cgifmyfa5vq52v5wz48lj4js0ym9197x2w98ra6ry";doc="07dah8lz54ccvrgigrvgcmbj76ppxaismbllfwyxcgkrkvqzxqkj";};
@@ -2553,7 +2568,7 @@ minorrevision-32165={run="1mcgql832xmgpcwha6l0d282mhyva6xmyf75gbb6inwbgg6qkv9m";
 minted-69163={run="0ksd9lcaqvpncs236vczpsxq1ymx7xxhwpqix4n7yidzyypxnbix";doc="03305wk872gh9c3pish93spfxnvpawcbfjb1gbpbrnjvnkcq92jq";source="177whv7b60pmz0a2r178dw76s4bqixn0zpmr8g3c91gd3q07amdc";};
 mintspirit-64461={run="19jvqcydiwwq3kv5bq6524wsynj52b8mqm3j3wn108z7rhnampg5";doc="0mwrnf6q3h82qnxk9gy9ns12k9lr61z92vmlyx2x745i8ra7b551";};
 minutes-42186={run="0yc7dkvbn0g7gm07h9r62ma3aagbgparrlamh462a9ckdc7jzivp";doc="1m8blswmxhcm2ya966ajknx9arz3yh1sn62wnyxls220af3401ss";source="12qvfyiscs3y1wk3r2mdq7vgkmz1ldsbg3wz4agib97lc30qqmif";};
-mismath-69169={run="0ryb4s3gz7c7q6ya8k6jj3pcvj8x8nvvwzlqydf2lr3c7aj6k8ij";doc="12v70qldkhfachvs05mygq6hzpxyvkshwrncnd7s88r8hizbjlpk";source="1s1l6zr9n9c3g8a0icwd8rha5rpqrhqakmqfwj89z29drjiliwhh";};
+mismath-70260={run="0as70q31730lzyhwvmlk3g8rdri3lv17vhqk4sc1g035yi18xxpc";doc="1f6qnin00xqlx4q85n7r9sq75w3d1q9q8p7kgvxpcvis3b3w1q1i";source="0fjmmpcr76fcwdf5g2pbg72hjf42cx64pdkw6gj0ncs461llpify";};
 missaali-61719={run="13y2dm6phd9c77j3rajvz4qma2h2k4nwhb520j3mm98bgmbkphf7";doc="16487s0ijkk6va22rhhyhxdqik863n1i25p0f67gcb8xp1s5l1wk";};
 mitthesis-68732={run="15z072l5qzmnn09awr9gazikc60h9f3z061qh0fy3j15gr3sw81d";doc="02b0bi0kycfm5x7z2xnbphamzm0xrlfvqsk0c01ni0gjf65j9f9m";};
 mkgrkindex-26313={run="01db35xmg9583hkr9bpflr6rj8bmvidaqahpvkr38bks21466sxz";doc="04p2xaycwszq5dp8s2h6gdm36l800ipvigblkm8m58bgycm553fw";};
@@ -2569,6 +2584,7 @@ mlmodern-57458={run="16f5cpczawzx4p44svpzy205l9m9g06w8r0554cgdpqdbwr139fx";doc="
 mltex-62145={run="0j5282big4df396xvk2xaasl7cwnjn2sa14xj22xgzvrz3hr4dvj";doc="13c7a99jl0y75nkciir5zqdiz8dgjl8znbyrb485xrwlkzm6ygq2";};
 mluexercise-56927={run="1yhgp5cidpkh4ihz20d1p445q370bh25jwc8ikqdq6g1qnf8sdv8";doc="0xcifm779nln96bmx0kvkmnzc9yk2314yc6nn98wm7gqdw2bf21s";source="0mq8fa0vd762q2h981mj6is4d5vry2qgggbbmffvmfb4h76z5gh2";};
 mmap-15878={run="19hnkczxhxcr7pa7880mfgjfhjwiyl2yxhfz67dsrljqsfpi19nl";doc="1f861w6clfn3k8gc6piil6bq6admbyr4kxqnkw8hh29s63rdn76j";};
+mnhyphn-69727={run="16bwf5x7kzzqk7b8jm5p1pfsimgqk30drp918pnhpa6v2y2ssls4";doc="1ymja8ffh9310m41ibgahll7ry9jx6c1aqin0frxks43a0sqf1bv";};
 mnotes-63406={run="1jmkh3bpgqc1lw4q7s57n9p10wjhflck0lqrjxjni4qaqxhg02d0";doc="05kgkxjhizwpnz60r9kjlwqzv66lxc4fj1wh0199fkn1pyyjdrcg";source="1xpdyv0l87mb3af5iw06823iajk2dgv2dg0298nvzm8jj3ip6851";};
 mnras-68878={run="003pbz6wg81ymv082vxd7dzf37c08ym2s63c91yxvldn93p795n6";doc="19mgjg8yisia0jdgvwq0jdg0hj8qpzl393x0w0vkls8s82j2jc7y";};
 mnsymbol-18651={run="08b0ypa29zkbch5isk39bbakg76yp5g7w4caahphdljkqy4k27zd";doc="0pv7717qcjd5ps6vnlmxk1bqvkhi9lx6j92i6ggnak8i1izd75fw";source="15ksx2lxxyklg4dcckm82hysin9r2v7pa3v8gjns4wabj4hx7v4m";};
@@ -2582,6 +2598,7 @@ modref-15878={run="0pd0qd9yjhvdl3icrgl40lgyjsgahjw1jgc2ah75bfcwj02qm4v1";doc="0c
 modroman-29803={run="17ijrx7f87pbkwbyjwigz3jr85fwzq6rr0pz1591fk9i36jhjaal";doc="044v0nkz0h1c7xsb66kmpqvr5gg4lg1qkx1x2qm9ijdpsbc4zsng";source="15xy8jpp2ac07qq0nl3nskpv62c59xb8qkl51irvpb0m01d97y39";};
 modular-44142={run="0khqcm28cq8cr51wmyv954zy85k9dxvmiszz5w4izxvyk14d56sq";doc="08qhmna1mbra9395gvaqbaqi3rmyhhckx781x4zw5439z2bpmg39";};
 modulus-47599={run="03sssw7yg7pa7i3l29l049qavwxphih5jvc86nysdzzng4a4dd7n";doc="1ylrs9705mgb8ijj9fq5w1yyd2fi4ykx8gpf4ckdr78h6rvzkr1h";source="0gm8vwidnls0z31zxcd348xyc4rrvcffncnwmazi9p1zplhg9ggk";};
+moloch-70496={run="13fgpqq3l0qazx8mz2rdagz9mbz9q2rnllw6zcv4v582m7g3lyb4";doc="0jma5jbzz6zw3pzyp0p45m45i2y1b0cmxyk0k9pasma0ic0x8y1i";source="05wdka0qqp6g4n8r5f94m6yffx8pzvn5j272ybpzknvkqfscbzmh";};
 mongolian-babel-15878={run="0qv413sx05pz5ri4p9znb020nhb8m2ybapcdgnxvkdamgbfvi17s";doc="1zprq4x55rbd667ll7a1rcscbqvg3i4wafmxnv4bksdm8p512w5z";source="0qf83v7iphfavxh7kh1zav95r6q3k0aiilzwnc0mm607bkjzc2x5";};
 monofill-28140={run="0kpzszxph3bx34flvhz746xkdpcc9mj0srifki9y8fa6vgsk2rz1";doc="0czdlvrwav8n3p9afa40icddh37md6g39kmy02vcnwmn9k3izp4p";source="1x5raychfhcjibln59x01fay8r25fwxba4lwi0bnd51drvzs76pn";};
 montex-29349={run="0rgf1rflrf98jayyhj1gxz0mkw74qhd88b4i2ccf3mm0kzwlvw0a";doc="0w9izkjmb90d4x5j1azhlskhgfmxh67jq1awsdv2s52psgscpfm9";};
@@ -2592,7 +2609,7 @@ morefloats-37927={run="0zdlkd53zl0y69d3manicnd8ch8qls6jxgr4mncqg5r57lqp10kd";doc
 morehype-38815={run="1yssb0c3l0sqyv775mjnbba3wv1h6497x125li68q8iwjc529wdr";doc="14s0bvxj2fjrkcrdp576c0ka1appg9g4ri4mc2isfb73yc6bmgh0";source="1sljhzy05akipng9lfajapvdm8jf2jf50v1awl38ld0wfkdqvcdq";};
 moresize-17513={run="07vq0wf250ixhrg70vdvaz7zh33zaq5sm32ka8qh1ab590c8w7h8";doc="1qa9y7q1wi7f9klziwgj6dw9c7bh453srljsx9m106nbyd1cvnpr";source="1gzj5bh16afgl8dg5z44h7d4m79i5naj4wl09m17x6snvfz7ifah";};
 moreverb-22126={run="14srw73gbfr0c3miizzs1rml2ms504hkv970p4dhp1wpk8ywc5f3";doc="0bp2lmzbd3zxqhijfqc7im10476xc50yc8amh0vf017ll7prcmjh";source="1snpyn7bc4qbmamxybv1j1h407fp597m26v2jq6yzijszfanh3rq";};
-morewrites-69306={run="0ia2cklwyp7avg1sncr7qj60qmlhc4zvmmlp8xjb8xp5vgn6jgy0";doc="0xnbybiycp23g754ys39nmak8hfi30q10ga0liaghhykyap2nisy";source="0cx05ra3n66jgx21dkq3ixwf3vmyfb6kswvgg9m1rn6c2vi8902f";};
+morewrites-69679={run="18r8ja3xw77kn4jhhyyrcrfqhqwa7bzbsvmkllvlfpmrfziaxq3j";doc="08syrckx97a9y4ybmk85pn98ign1smqifj1p348s8rlam52r9sin";source="1vdnzzvxg13m1kpz08l3npsp68b0rjjy8w4y1d7laj1qxq69ph88";};
 morisawa-46946={run="19b8nzkwdnqk61p1fc7yygjlrdimawmbam18akphcm70qx2h01dj";doc="1y218bablhn06njs5zqmsl6jvvsgyihm4il1x9722pqvvyxxf9q0";source="1flrf2c2jxpq33g26i0m2h63yd5jfy9bdh80idpx1m6bi6hhq7ac";};
 movement-arrows-67270={run="01kbaxy2wyzxla01gbxlwj5i28ahak3xgm7f8myv5d6p0s6by0cz";doc="00v14fnh2crcmnnkdj7dxjidlxl16iq3nfygx8igas1nbyni7xfj";};
 movie15-26473={run="1x48h56mw1pzllzz5b8fx5ikhp08gx9jybdn7qk3jvfy13a4r5yr";doc="0bhyfgsjwmvvl7lnam0k254w2rzn01wf5gzn38ymmlcbw4ajkkxl";};
@@ -2607,7 +2624,7 @@ mpgraphics-29776={run="0ymwcn16n44y47ngdsyb0vvfp9vjnwixhxk67z6ni5d19f23jqli";doc
 mpman-ru-15878={doc="1x3drpi21zcmkhkscvl4l7805wskqa4zskydb33i0asss5p62396";};
 mpostinl-49559={run="01p16dzg5izjgd64l4qgrhx0dm99hp5lrn9v2rlghs8m249fwmv8";doc="1a1rhz5q1i69bi1blvwzz404h7mgjkjcp9c07dd8w6xri304gi1s";source="18rfna80lz3zrf7wynr8zdbiv36k2n6a8wd430r81ybr9233dhxp";};
 mptopdf-69363={run="1l2182idlbzci9kjpii0zg3c7fpmzf02dz5kg2zcv529mjwwv91f";doc="0q9jlvall8mf9j2zky41bhpz09yi061rfpkpd0arj346ah5w9nni";};
-mptrees-66952={run="0smqvznscn6a220syvg0cj4dbf65r2gy6fz0f4wmfh88l83fy0lv";doc="0sv029k1wi76hw4h3169m9mq1vd6wrjfvk0y9k7xb1zw5da1d83c";};
+mptrees-70117={run="1lrhpf67d0y42mh127ifv9z8xkfjhxn4mfzm5j4gbzz068864rkf";doc="1rjykadxwyqa78kpivdzncr9p156d01w79ygp095wwi7w0a3ll2c";};
 ms-57473={run="0km07va23z5vzx87ndrv9mj0fq4yw0kv7qygd59smhm4q71yspkl";doc="122xwapvjzv9qyh3p1884bzdpalvqzzkmzd18gqr3q3r4cmk2q20";source="1myxaybppzkdl14h4g12xcp57zqjzkzijryv9nd6hy6ggl9y8i99";};
 msc-67718={run="08rw5drivv1frf7c3r0pfy3slp1sz3hzw4gl55vcjyh2b58v9qz1";doc="1qwrg7gwmigwpf9mhmrv25r3785z3nf7i5fh2q4y2pyn2x8l3bp5";};
 msg-49578={run="1g418z3slb3cjf0wzgwgv0zkq0jnj647zqh6iqvlv42r7bil9001";doc="0miycfpf7s74jz831kqbh6qlkkzq31l1x0fkf9d04b8zp26mzilp";source="18djwd3g50ys4ckgzc3dp0y344qy86ni327jmyz3lpnqai8w1c8w";};
@@ -2638,9 +2655,9 @@ musical-54758={run="0rn4b1m1c58phyj9zzvyxdxbilma1bnncscwmxc8sdgb9iiwmlzm";doc="0
 musicography-68220={run="04vwhhd6mlk79bk5nblrdb6vlv2n2r1s9dfx752p3vj584w2mdmr";doc="1144kbjzybzfcxqbwlcfnk4wvqm7kw01slf9pzpb5jqagwrq12sv";};
 musikui-47472={run="0z2ya761bf0n7l45dqkc626s9d66qwr810fnwf34lr1876y3sfyi";doc="09sdb98m3j5wkl4p7hdpdrnrr0l25ni46nlhkhg1g54hdggcpjb9";};
 musixguit-21649={run="02cz225x5s3spj0wf9c51ka0i1ysmcrvlpa2b8vxd59f4pwz36am";doc="1g8hay5rdkpa4pjj0lj5gfs7xmqwzmzxnc8k023ahlz38gdczgnz";};
-musixtex-68484={run="06anc6izks564xxia4l67qazr25whyxq897762f7hk0a1pvfw9ha";doc="1xmnf612wfgxbf7rgm020jcvavqpnahad1sx4bnjcm1kapbxh19r";source="0ari7nwxlyj0lnqhzcpq4vh9xn0kdzqn9c1a5ih5hp1q2zwx2m7l";};
+musixtex-69742={run="06anc6izks564xxia4l67qazr25whyxq897762f7hk0a1pvfw9ha";doc="1xmnf612wfgxbf7rgm020jcvavqpnahad1sx4bnjcm1kapbxh19r";source="0ari7nwxlyj0lnqhzcpq4vh9xn0kdzqn9c1a5ih5hp1q2zwx2m7l";};
 musixtex-fonts-65517={run="1bq3nw6zig0grmmgnz7n84cvxasq61h2mmvm1j6mnyv69yhssm2s";doc="1pqr7h0r7cr2clzn5x74r2z78rlbczxmdwc7bkpb5a0k002cc9ga";};
-musixtnt-40307={run="0g2y52s0151br5vr7hjv5dfcyr96cjxp4n9ya3s1jj81q6q01jjq";doc="1y933975hv5vzwrgjizq315bkgnhlky21blv9kbnzf6kadic8ys7";};
+musixtnt-69742={run="0g2y52s0151br5vr7hjv5dfcyr96cjxp4n9ya3s1jj81q6q01jjq";doc="1y933975hv5vzwrgjizq315bkgnhlky21blv9kbnzf6kadic8ys7";};
 musuos-24857={run="0hfrgx3lk7mf9kzf6n8hswzh116pmllx0k3djbfinvvvhnqy972s";doc="0zxdnzd8x42z5fpvkarhsvdw3x4bz6qppn0iyjff1fjzwl8q8dzh";source="0igksc3i5ydqps0g172i2hkb854bnkf7xh4jqvwlimrlnhs7nnkk";};
 muthesis-23861={run="0bbv49nnngkpnzq7kq15spn4x67yigpyfk8ymcgv647z0bvbladf";doc="1nx1qbgp67n73k54ppyi4li4flnsyi8jmy1lil0gaza38m5y8aak";};
 mversion-29370={run="12mvnkij2q08j50ka3nngmcz0p07lmvqg3jl8fxrfdzyy0h7zhdd";doc="1z9d4bcylv4sk79hfzgy36bza0r9lkzw93mis2m6ypgdbsaa3n2a";source="01dbma0p4lhygs64aym66j3vp3c0hpbci4x42mpr0yvjnglymbj6";};
@@ -2656,7 +2673,7 @@ na-box-45130={run="08xixk2hl5w876x6hmp6h044spi0qw1qbgrqklwrmkxkgpa27i3s";doc="0i
 na-position-55559={run="1amvifgadhq73avh1dq9mj2v4s5r3hlr6a3z4wcbhw32jd31ncbx";doc="0pcn0r0p0z7lxyfsvcnl9skm5aa5xi6362vydpx9kv8m11gl7pjb";};
 nag-24741={run="1l31y7mr00s6md7a68cz51yv0qfd26xaj04ax1ph6dqc97r3fv1w";doc="0gc56zgva7kziny3ridswnp8rscqi1mg51d8x580pidb11mp7dw2";source="1fh9nfjbkvw907ra1crqfhm7hl4k703g80w3c8qvd18r86wmn2i4";};
 naive-ebnf-67892={run="0hw3ra8cmmr79ii1l57z68kqxqjfwq1szl4fg1wykrh9cnca1bn3";doc="1i3h4328sczm3hv5claypc0qfymdmbygr4w6zankb3x0nzrgk9sm";source="0z2df8frslvvaqjsl6js5pwwnhjqkj52dnrvgbygvdhnkpkp5yix";};
-nameauth-65738={run="1zahfi4vsv4s43p1bvrbcd330i4z6x4pf3yy7vwbjdfgzmq39nx8";doc="0map4kf3r0pydsllp1fggcj9z9rir3ipnx7dz2g5asw99dj4dlz0";source="1w3qladdlwhxx7yzsjl17p0ykswg4phri0wadni4s953s04l1i3j";};
+nameauth-69758={run="18p1ca2g164942p15znda23kgxsbfqpvwh8yb8g13m2sv2jr3nwh";doc="141c0575mm1hdik8xw9gzwswv4agj97rwvinpck9a9x2g6kxbwr8";source="1xq9hh74485ck93ifsyg3ci62j5cw89if3wqcd4bcvx2qqxw9lbd";};
 namedef-55881={run="06nr8bwymbc3ps7whpxnsnbnl1fayz36hlgcy5isg0gcx8bdspfh";doc="080m0d24cish4an6p4q7rcrqpr2r1yvwvzk431nszhm39h7d8z80";source="03kg4zv07ch01n0nc7qwk99n32ifwf89z2976wg5k12yq51prplh";};
 namedtensor-65346={run="0jvcqdqnvnjm9z1jcdsa86cvv4f4hq94yi6r688j2sny2700q7a4";doc="0cjbz9g2b8cg2wm97vdgwpqby0jbc5l2d7j2cwx0j571hchlijim";};
 namespc-15878={run="10sbvwc0r3lm90qdxds13iyfcddq1vjx2p8vvs4g3sav4fk8p02k";doc="1z34xb5s5fgl4rag0fmc5i5j3jb810f543096mxpq46j98rcp5mz";source="0xjcnrrrrw4032sd6wscxvar9y3kd4547rsd79dpkbb0ksmqbqrx";};
@@ -2688,12 +2705,12 @@ newfile-15878={run="0gah9qbkpib651rjfrakzldi4wd7gv74y8j455n1yi6wnr0yq570";doc="0
 newfloat-68434={run="1jhaccf7ppi5m5jycz77s5nldbmscydzbd2db8bmb0qx3z858m48";doc="11712zqy292xs7i4xvrrv948i6l1bwjxsgax7hph9hjfqs086rmq";source="018msda5vgamyn1lmq63rwv58h9z49q4rd09l7slij14djxwgdb6";};
 newlfm-15878={run="12mryj5w7dpn0mdv91grkrd24n2pn68p54bl70bg3pddvz5ab6gy";doc="0afpxw78vijnhx2rwv94ar6x4ivcrgz7873vdc5n4dafgg18z78s";source="0z081mn0zf92ana2v99sdyyqjz4lqnm2ymndp76xwih9p1z8233s";};
 newpax-68762={run="0dn36fqqwwa6jzcpznrjd7fk2mkzd37mpvyicif0dc7g125whndc";doc="0jcx3lvc1ay9b2dmj9f1kd7kxmyql95dn4xw4syp45ivqsag3p0a";source="0i7ilsx73lcifvzcffjp3n1swwv1af6l3qwn46mykxyv8c1ygjsr";};
-newpx-69380={run="0rcggz9vf7w0vvkba2d5dg2zmyq5px0wb5xzc0scvdn4bgn1cjnk";doc="04hsww1gwp04nwjq7ns08bi73yyy35l2k3dx4akr8kvr16inn6sr";source="0larcp5lk303p8bryaihfdvzacbkzmx4kldira7k42sg31p5hlbj";};
+newpx-69777={run="1n7374jxqmrhnjzbmqlx18l6yazn3n9b9phndfg40va5ig9q6fwl";doc="1ihz42aasyx306kwkfmidi0yhr8cxmfaz3sl42b1g36fyabp5h99";source="0larcp5lk303p8bryaihfdvzacbkzmx4kldira7k42sg31p5hlbj";};
 newsletr-15878={run="0hl73l6cv94g9k4qnldxad6nl56n9c1r9rkwh2c38sr31d6fn8z5";doc="15bd97zlny5p212naaig42li7ki3f9bfr9b5pqk0vhbf17pik9za";};
 newspaper-15878={run="1afj267dlvgcw8028b4c0v9rdj77w47zjgpk0grbapy7wjgpyjb2";doc="12hlji06sd7bvw7r664cg8ijxabc2q1rb7z516ph18ayjl5vca82";source="1h8abnmiai3c66cjndm6xawz00z1pfmgwlp6w43amjrk1rm4r5vm";};
-newtx-69381={run="1cwaaax209k8196h90q0n0blkb638047hqzprv5lrzjx5sa8xafy";doc="0zzqswva33n8d306g5znq4zyhppqqygc04krc4wzn2wm2jjh9sxp";};
-newtxsf-67051={run="1si13s0wcgb8smy9lb277y11iy8pwcngvlqann31f8znkp8rk1dh";doc="0f76vjwqa1c1bn7yzfcy47k1f8kp5y878mm9ry3m2glsscixr9bi";};
-newtxtt-54512={run="1rydma1iqcb7k8ihyhpgdbrq4vpsy2dwyij2pr5p3bbmsc60kc42";doc="12mvwqmpb1hyn3l98z74qhyqzkinzw4q4f4q0mx1z586238q4klj";};
+newtx-70496={run="1kqzr0z7vd930x3jyna531jp8qkbsvfjsgh8429ams8qqqjidah7";doc="0hdn9l5dl5jlqgylk7wxpdk200agvdmkl8yyj16ngvi6ljsgh6x1";};
+newtxsf-69597={run="0nwsbpmw7c96797bxvlmfrqibgnjsy9m8b8mzrbvasj3nlhfdxwf";doc="0zxkhsf5r9kffk2vz1n1nklk48i6x445dzs4swdz9hv6xkhrbmnq";};
+newtxtt-70403={run="1adxrl214c7gbqnpqx58j3myddf9qx2dm6kfzh83k2zs3h2wbv7z";doc="01s3qcqygqn941frsfyrkh2bs9ghz9db08khbg5gl9imkrjcmh6j";};
 newunicodechar-47382={run="1zr5w047xqg9bi6drl2rw414m9bzpa5r7n5270zr8k8jj74xcv7x";doc="11vk77c83xy40i9vclw4v1h5wnr03mb77fa8s2lhi0p4sq0c3vgr";source="060kbd07al8cwns5877ap7irpf3r3bkw0w62cwvl67y03gcmgr70";};
 newvbtm-23996={run="0d9q6mvczacdxykp381181mnra49qa0y0mngr0dnqp24hfw9j9l6";doc="0k6j4xpvjwwvz8cipgrqvrs2dj66n7yzlr9mcfsgd5w6rm1p1h4i";source="1p3g9qyq4x0ffv68501zlpf1w0ffm816pa0wqjpqf8pz2jmgcg5y";};
 newverbs-64833={run="06m58n02lx0cw6f9689863yqvlmzpaiarzhpslnywhvgfnks7aks";doc="1wny3zhid4981rlxm684p4pn315jdjmkwc002dbj9aq7lhax0dg7";source="15qivriqxgk1cfff6li172lxghcpgy9i1vjskki96pn68q2p0nw9";};
@@ -2702,7 +2719,7 @@ nfssext-cfr-43640={run="1qp85vnmzsn967iqvzsf7yzsq1a4zxvyim7r0xb8pncak805fs61";do
 nicefilelist-65842={run="1pjpffkhwfrayh6a5l57j0szaz63cn83mw53v17ibxk8dj4ls0d4";doc="0dqpx0kkgj4vcfvlyl96mllpn3kqz8qh2476kpfw0imrp8klsq7b";source="0q740bd8igcdy11nmpn61sb1yy1kfypvif2s62ym80p89qf8v74c";};
 niceframe-36086={run="047y9dh0p51lyrrq5fkvp4dpiszvf2nmx53hccl8hzgr2bs3kbwi";doc="14fapa38pffkj1hs58b7r1zkjn3dql9d98jzh13cybyfynd5crjp";source="095frb90nryk4m2iia4sq3kfrcfg2k3nq079770xlp720zqy07rc";};
 niceframe-type1-68091={run="0p219ccyqcpf51q71185manybxsxc89d1crxxwqs96n9ppn7xb0z";doc="0a3xh5akhxcrk440wa6zwm7cf4yd1smis4pf4gd3cjv3rlkli79s";};
-nicematrix-69275={run="0n3zif8inxfxvzm7g751439afyjcxqzca4p4gffxj5apw5ccjdf3";doc="1xrvwf25qffjjc8xkkqgrfzq1fl0hchqy9db28kps6l0xj1bdn23";source="1v5x3ry9n6954p8nmjnnmqsqipyrf17fmkd7yn7kahppwc431zr4";};
+nicematrix-69991={run="0639lzcv4xjhrc0y8a31v5q5apb1vqhmvasmrsq6cb41iwpg0zfk";doc="0ang6dibjjf0j6jnhnk9hqczhv8dyjva5fds3rkansndxbvh9viz";source="09sjwlnavchysygfm2c9ds349q42ybhydd7hcf9hbsgm2bn7jjmn";};
 nicetext-38914={run="0aqfg8phvhlgvyy71flqsaqwmmc6lsl9vsxpxd61v69hp2qhvggh";doc="0c078pfiw1nz11krcgwbdlp2brdy2xmq6rda9yahfjjg54xgdbg5";source="112ji0zwy54nqswil8lvvcrq0ai7jsmdagvf2786zg9n14h5kr75";};
 nidanfloat-48295={run="15l4rdj7bk1279xjjkgh9a7scfmm6w88civ48shh7gwx8gsvcscb";doc="06ccf5yhrqvshj3d8ic3pbnvmdpjxq54i57y3141wgqcj5h062dp";source="04q480lddynb2gqz8azmyik8170vl056fhfjsnq8ydqj0rchnnqi";};
 nih-15878={run="1rlhnhdz58qqjv563wjpp11ppyqa5smjpzjdzfcra0wd6cxv9384";doc="16klyjxzxj4mipql71admicnzlnasnv9hb5pl52wyk4ic8ggdgwh";};
@@ -2727,7 +2744,7 @@ noitcrul-15878={run="1whs120vlg4cdjmb1x363g92ira9nc8j2h65qnvwv8qrmh2hrwnp";doc="
 nolbreaks-26786={run="15qa4nf5c9gl3ha4prajqxl2p1ks6fpql03d52prm9vqkwphzgyy";doc="1h9n7ki3iznbzq519cliw03fcn2k40f2rldjkhnp5vlzma81inh3";};
 nomencl-61029={run="14225s3b27dmdgkjqyh4fqcwyyaahva0sk3k6nvffl6jjqdwsgkp";doc="0vqxxjlvgaa31mjfl6jv0azfh7qv0g341i27s6k9zz35a7dwqaq3";source="0fxfan0s0y1i30rg2mwxl21ymfknh4cnw8za13mx34wvaxmc4l9l";};
 nomentbl-16549={run="08jvfyn4vd8qwlnbsqhlxnwnl4qv5b8r32slcbfwshc4kyi2hn9a";doc="0g48qyrrj6npsjcnnzn3mgsmd5fq4v5vzzsgxvvx9x15446987cm";source="10b41ax3ynpdbn9bawkp43whqjkygh8f2p6qdjiwa47w1acca8zh";};
-non-decimal-units-68504={run="14ry0yyvs4d77vp3ghvfaw1vwc8j0jacn3p3vbb65pjzmgjxabdf";doc="1hkpmg9vg8gr6chb8qri06vfdnyw22abp11d1lap8l8xv40c3las";};
+non-decimal-units-69742={run="133cvqh4vxdsx35dr6vi0sqil75zv3dlrf977dwy5r1fvf14br2k";doc="0qwqzl7p6j9mynlqj2zvwdqrcr75ms4bn3v58jikvywqc0y61aib";};
 nonfloat-17598={run="1ay9s9xrf27sgan2gan86g68i91rwa8spmmj2l13pb3zl5qikw66";doc="0jjil5rbxzcpkyid8y5dahab2ca9r77sw2scgrc4mf2h4nhrjfyz";source="0vyvpxyrqjqmlw2fj4b9avy7sn79m4q8gcbgzdkzzp8d0rng5i8s";};
 nonumonpart-22114={run="0dyf0nl16j7vp955g64rbvvjyqq31x5iv7dbkh8cikwvgn9g85s5";doc="06j6sc8q18mnnnpbj57ykays69n78z0iz1r3vink7qaw4a8fbyba";source="0p3gicf0fzmk0f7lblydf31pi9x0f6x0k5rvdd2ia8hrjdaqv1dz";};
 nopageno-18128={run="098q0visa9g5lh3vp6bp484fglrq8g21v4cb71cnc30f7avkg1v7";doc="0n7p2f039vmd060ncc81yi2hnn7qyk6b7z2hpxh9pp78dwklgx98";};
@@ -2744,7 +2761,7 @@ noto-64351={run="1bq1ysvd9bxcbfql6lwcbx2878n3bjwb3akawm7z025igi7hnml8";doc="1pz1
 noto-emoji-62950={run="1d1mxl32brfyn3a8jpkby0kwv69gimj9wcl8y61jd2qdlfd0mx9z";doc="05rch3ybas6gds53g35gda10gia61v49kgxi3gzcxvn92595zv9a";};
 notoccite-18129={run="0cbvwvgh3rkms6akamnrmzwm6796ly5fa93qsb30bqafgmx56il9";doc="1h14fkdn5kvxagkjx8h6f6a06v7y9z48s87x52cblwykgfm70qxz";};
 notomath-68014={run="04ik99znmf5a97q474p8fj4rhmggzggn9kbdyxhpwxcd1s15w629";doc="0bwcf8s46i3gb79yns1y7crfhjsv32np496rhqq197cjd1c4lml9";};
-novel-68807={run="1k9kkgxsxp1b9fd5d82swypacp2icpp81dy5xnbc1y43wvg2z8r8";doc="08ayhlq5wx9hxn86imy893mamsskl7hk8ya409c6rpkn0y356g5n";};
+novel-69945={run="0q600v03yrs5by11c63idvsmfiaz3jpwkz778b7xydbnqbshvxzl";doc="0z0j6q4ssxfxlgdfs3vva5ahr93bbnryaqrbqn1p137pp6lamsw7";};
 nowidow-24066={run="1w18i36ynsyldb9gs0yhv6plyrjs4762y7bglncv7bhqjmyy7y3g";doc="1l2zq2ain8nhkaa8aagpm22nvg8p1vk2cdgs6pmrydk0hhmjh01h";source="01qjfpps7ahmrwvg142mspj8gsyx21l3nr75g0v7qsqxbfjjy6gk";};
 nox-30991={run="06036p9059x0lzliq9b2pqahnbp8jlkd1gnq300rq0syj37mjk5f";doc="1qfjlzczcnmf3pgqf4qr5v9c6ws6qba9hm28h3xwf2s3099drxjd";};
 nrc-29027={run="01pczvyzfc2vnrfsab180fg0nz13cmry0dvdxmq3lxzp75ji5aqj";doc="0l6lpvddg25k8dynqr26gj7fnaq7k6zbzp5p62684sz9351pvz6c";source="0lzfw45m3mw7yd9sx6lya6cvan696p74wrxgvmqa73prc2lhmbv8";};
@@ -2766,7 +2783,7 @@ numprint-27498={run="0wkijyxl1zzay8vqvsyhk6kf5247qr8k55rz91dn1ph7b597d952";doc="
 numspell-61132={run="10rqraqmnd3pybpih3fhk0068g448252hwcckxzd9vd33n7gfw1a";doc="1hlfb7b3hq9ps7l6z0qzymc8mg67kdipcshb1bpkindasx6dnkl3";};
 nunito-57429={run="08hnxivx7ixmvp7l6kxfr0vxy7c78i9jqkam0xxg5mkxs9ip481k";doc="0xhv3rws4kp5s4q4c10ykkf3yyl9i9ndxjavjx9xxxwm1iap9m3f";};
 nwafuthesis-66895={run="0vicfc3gnxf7cvj7lqa8sd5maxlkfqazc3wi8il553fw88dxvkcq";doc="10sln765phsv6rpxjhn6z431nwwkch3qbq0s3wjk0mc34302qykx";source="1xk78d8zaqbn82lsw0fi428ac9ybs0xnnva2lkb9k8zyijz5w04r";};
-nwejm-64462={run="0c3m871h5s86n61yappdbw42yws7nwk3z6fa7nwqx55nd145yhab";doc="041ksqcn7dz37rj6f3bb02mjai9xl58wbzkzpac4i2fnz3i7hclk";source="1y7a4yn0vkxg1r5fjbpdm3b9y2sn6bsg0f92qcv706siyyynkbmp";};
+nwejm-70606={run="1x96p32bb8xpcjr4831fc3217cr0is3lm81fpyhjp23kcdzjk56r";doc="02ii5nrj00mv7wvkn2bgzy9w2f5l11bxs9cllxz0wvbz17xflb6i";source="0rwm5c34ycklp031w42kbwjf75nibv7y1wa0vcl9av1xwi017nnq";};
 oberdiek-69038={run="1gp308z3xisg8qmg6bggddmmjdpcg074vv15jwhb6z8xfwyj3jvp";doc="1cxl8d26mclv7054s92c11s301gk9kv11zicx8ikv7mpa605ylrf";source="0xcdyy5v1a28zqyip8n8j8szj0bdircciww0a98w5wfxgl1d0dym";};
 objectz-61719={run="0s93jjwcmyjd126wmf2rw3776jgq0ldk40f269cp29968q00sfn3";doc="1qxqphnsgh412lizx6jij6qhnlx1d558bzd3klqf950bp2hy3cm6";source="1l8afdawrrcnbpqdhjls28ncksg8lzs7g59viqygwixwplha0fb9";};
 obnov-33355={run="14cz2rqp4sf4f880d49yhvqjkzm5aw91cdijmqwf283cqgzhdmlf";doc="0k20zh42vcm449dh662frdmspmycx0mi81ml8qkvnncy8h40jxr8";};
@@ -2779,13 +2796,14 @@ ocr-b-outline-20969={run="11lv3dba2g8mrnfh1y6agg8ipivhnppd3s7gqljlpdbdbk40zbyn";
 ocr-latex-15878={run="1l5s8wlqk4fc9i3fizhbm3c7nafq36w39693xm1x07giqqw8q8cl";doc="0ai4kr65ls66ywxncb63jr6gy6lcw6zjvlgsbp4wd6kfjxs27bh7";};
 octave-66115={run="0sw5r5gqvpmrn96rfz8y8hdbrwasv751p7ga5dary1v1kp4brcr0";doc="1r9wywnqhgrg2jjlzyafhdnyxd3fa17zjbbw1bj2a3r2jzd201h5";};
 octavo-15878={run="16pwz513a39630p51n84761asli9kba5z3pmbgfkcz7yfk9iiq22";doc="0rdb58jnyyp12i7ndd6qibs2jc1f0zcw42jh9j48aid6nwslvrbr";source="1f13rhvd2l3v7fdivk1ybw0gnacv9y2pzwnbw8ykmaq3x7m3x2j6";};
+odesandpdes-69485={run="0015ldwqcn6vwayrdljikhcrwif0dsfpj3hbkk47j3pbz38i42xz";doc="0l5fbi2r9g0nbs36bgh3c8fnc54qa24xy44yyw1bzdsnxgq80glk";source="17ffq9wg976f5dmny63zxzic58sldmnv2hvf4zm33lb3jgf67crc";};
 odsfile-68204={run="1k1rhixcwaqyzawpajbi3ljnmawc5l582vb0vzsnmq5dkry7ccsd";doc="1jrq1mp70vj3cncv1l4f8km7yrn2lbhjlcrk0qa716r5isqhawfq";};
 ofs-16991={run="0g2rxji8g1nafyg1nzpy18vzk20p4p6r754m89naygs1qn5n4h01";doc="1v1z08m2ha071kb8zia1wlgkflkzj4hjws8rqnq7asvhi1s2p1rj";};
 ogham-24876={run="0hl3xjmd2bagcn2wnmr2rs1hzmgvm421rkdaimplzdnwj0r64j49";doc="0phm6xdxl1a6nh6g17nyz6p7f2ymll39k42588dzw45z7zwan40i";};
 oinuit-28668={run="1wr3r06hbxrc0v9cwyp7ad6jimw05x3yn6vqpnzchk5l0ixnlkaf";doc="1919kmp5sxd9q49m6dd8zrnjx0cqgav1i87gag1rffd5hz9w4fys";source="1mymvxv4721nhmfdlbl9bgc76dainzykggf93jx6xfwlld0krgis";};
 old-arrows-42872={run="1immbai327l7vkq67nz6mcnyqmx3ajg3blrhbmffkbl92482bv4d";doc="01kdfgiqp5n74lipiviv2alzallba37gyzfp1sqrvwwvrp3a3z63";};
 oldlatin-17932={run="0cxpm5qvbn0a643x2h4dc0pf00kqqk1z540j6dp7mbiwv48qqzdb";doc="1my5h8wq241dm3d6czb1spznrxmrclwgn8i391pwmc11z2ijqgjk";};
-oldstandard-69185={run="01cfmbwlm3x7i331wkwgjq9l71wa2l490lqmjnr0n7dg5nk9kfk2";doc="0kbqi8vyz9rbb08yhy22ll65fq5i7xbxa9pwgfx6sxz6gsbdfin5";};
+oldstandard-70428={run="0zpj2g8skx2c4k4qwp45dv995zn2qf738jvwwa62zmlknpwm8laq";doc="0fqa1g80ipsbpbj77n9g1djs0prikfs4xi0f1m1vw1cp12bcbiv5";};
 oldstyle-15878={run="14lm3ghfgfqafqivam1dqf3gqgkchnbnc84z5i0whg2p18x9zns5";doc="1qj8nbcx1krpha49k4yzyix13vs9s41g96r7kpdmv52vlpfgs4lx";source="13c4dxvikdxx7qv7y9rfpgj4fgzp21q71xpmq1jzx7phwrsn6wcw";};
 olsak-misc-65631={run="1gm01jvlj8vcl9a3v53bcmg604dzf4immd39dj6n6c692r38hhzr";doc="1afxiazmp8pvgfym1i2bj8k5slfqi81d915d7lax59ib0p05w4mi";};
 omega-33046={run="047w29bij6g9k9fl7ymap4arhdmm9kvjfsikvjkf9nd7shd6k4kl";doc="0r686ck7z6vxcajrjihp4a4mh3z23xr8ic34dv9yp039dh0kbm71";};
@@ -2799,7 +2817,7 @@ opencolor-66363={run="18a6vha0n4mwgx9lnm3d4j4rkf72qx88fbzgs164arzpx4gp0ypy";doc=
 opensans-54512={run="0xj7v9lv1ni7mq175l29a039a2ifmdsy1wnv1h0gfni5c34knm1w";doc="178pa2kjvp15la857iblh9qc195z3byd1wxxyn7c5bzmndvypgxn";};
 oplotsymbl-44951={run="1x5wqngjdmc4751ci5qaivzgqynmmg00kg2clngxjqf48n4fakdd";doc="0bj6w6h4g991rfddmrxgc02090vay2h2qjx36cb0hfx55gwkmh3b";};
 opteng-27331={run="07a6dja6s7c1759i9afgacx4v0fli98s6mcq5zig689hpkw841fg";doc="1125aj55p7n6b03mn6p6845yvx2jbjkwwldgwiixypklndqsf6cm";};
-optex-68873={run="0bkp2k9yflmndvzxf071wr0i5rhx4r3rjwf1jz5mv24291k617qk";doc="0pnn7vsfa4yncak7885lc4lcg9viwcl7q80f4g8axil1ash1f0mi";};
+optex-69864={run="0p4gx46w18n6zkpligmd0ya9mam67rqkpdny8spiqfz423jdsnmf";doc="1wa2ypz7xza926fzc8lczrvqzx3b1kr1idxiqb5fakxwd0zyc7c3";};
 optexcount-59817={run="15i48ly8mbhhk0mq4gxwpwbvhpgvk1pb8bfbmfk83sp1liq7xijc";doc="1cvhzkl2lbz939y417ipi22n9alh9j7f06d2r1s0h294692m7bpv";source="0s51426ib070x23d92rgpj247qni42hzaw569z64i7zr3nyx16dh";};
 optidef-50941={run="1jvalzi2gid20wn253swvhil05m273x6685n0b5wbrz5kbvzk212";doc="0sdd6rsdfx1fcw1493b12ww5llww6mv0rij3f1ik290c6qbmyr3w";};
 optional-18131={run="1mv65cqcrjhykpl565z96s57z05635q513qr440crbh61rp93chs";doc="1ks001q2b1yw87q0frhqq6yv77mskng6v1sm6kd8r22cv5g49xbx";};
@@ -2833,7 +2851,7 @@ padcount-47621={run="15p8g5hjwlm80xnm9py3ss6afl6c8rdq8f92z7518hp0yp7d3zfw";doc="
 pagecolor-66885={run="0ycmswy7jghmnpkdv6b519yx7ga56aw7yxq6671nlg1iq1k045kx";doc="18xnh0588b95h7fmqwqzb0p2n9fclqy0hxv3a1cci8anpcr6xz0q";source="0qc662yig96f53wdbawgvsg4wx0dikcnf85b2cffwlkr8qzrwlsg";};
 pagecont-15878={run="1fh6bplg468dandbyvmwf13sh27r6x4dmrwslldlc9580h8jv02k";doc="1vrcr5l1facyyf9p8977q0i5m7cn7y40dbmiv99314iyawa3rr1g";source="1qc105f5v0jiahk8gpgr77lqfaladba4hmqnfizbblzbjhhgg05p";};
 pagegrid-64470={run="054yaxr2q8x82dii8bpy3y1nhc1drvwm98cd3asaddh4lzrpl9vl";doc="10rsrkdl9bp04kxxl2g3rfscf0hcw122py25x2jbq6lgz76780jm";source="0fbzd20z106cgzknj98ryzmwiixmbpvnx5p8v3ns6yjrwrcng3lj";};
-pagelayout-69188={run="04492pp3xcgg9hbz2vygqsfriljhjqg7nxivjhg5m7v9c4vvzj47";doc="1rw33vvag98q7mjdhvk954c1ady62xv20s8qd94b09caclkpdgzv";};
+pagelayout-69486={run="15k0gbynhgg56h48lwm14mchksj1hs1jd9l70g9b47sl8w8qv1w4";doc="0bxr4apcms8bjmz4zk7y0r7yqnvd5kx8wmg32fypds07hs7075vv";};
 pagella-otf-64705={run="1vrzz63la6i270bjqb1nd4rsqqgl13nrqrbmr0l58bmjj7qh95d1";doc="1dffy7z3cfyq2kzyvbarlqivfv4rs70qa7drii2arv2m1609ylz4";};
 pagenote-63708={run="0jd80dz0jl2gmfr74lw6jy1x2hj6zlji9az956gkj8bxxc6zir54";doc="1s7imj4fi08487xmcsicsa4cknpsgd10dbcyn6vkggm95qn6119w";source="07ngnfinv2mki203in54l4gx7r4qx9rm8k4x7856gr7jy1wkw16f";};
 pagerange-16915={run="1nixc1dn9cbdi3pa5yxajii6c9ljgc2jrnknsa7wb66kj5j1lqch";doc="1vy3c498j95miksm254a1sh7d8bp3g5p7lvncc1xad4g388q6hak";};
@@ -2866,7 +2884,7 @@ pas-crosswords-32313={run="0nq8wqxrsgpdnmi2yqcs45mb93gp2lad6p0b6ifqr744hycq4njm"
 pas-cv-32263={run="01aqcqyw0h459xq18gc0y00z2j13zwdn72qpfmajps7ppadlcbxw";doc="0mwgvj4hbq9b6ih6l6hg6gl5qrxyyf0mimwv50vpy1z7bhdq2l6a";};
 pas-tableur-66860={run="0i91nszaymzzwijjlw0f865qx6j7x7rzrxbrc51i02qlfgpaq9zm";doc="0199rpla518gv3rdbchfinfan826z5qs8zxfkgh7rgd7i0cid29s";};
 pascaltriangle-61774={run="06gbr5jgfbms6p7ghdkq2cs9d6p8yr3mvhb0h811y5rphrfzh36g";doc="0fch8y78vd7ykwn9qdgl6m787m89ff3h1fpj0vvzj5vbxmvw6cli";};
-passivetex-15878={run="1h49v6sqbm27isfwwcql9dzxn4vmcn2algkqh7f1pzj860xw3ygn";};
+passivetex-69742={run="1h49v6sqbm27isfwwcql9dzxn4vmcn2algkqh7f1pzj860xw3ygn";};
 patch-42428={source="02xfy1fs30nha0l03lqwl8xrpd81855kb5nb660ks83aj187dghy";};
 patchcmd-41379={run="0v0033zpp4w75lbxk8w2byhgy3s6qvm9281xc2c75bryp0ar5pfq";doc="0vw698r5q5ai4lx4vrb24x8j9dc7iwaml8scsh9c22cpqn2sn26s";source="1cb90y0i5k9s4jj3f9vnj6rhxphjc14p5nm6hllibww3h1khnrxr";};
 patgen-66186={doc="03y05mv0n04hyj0lcq54grx7w5wv95h61j6xlx2jc9v0ib9akq4y";};
@@ -2897,12 +2915,12 @@ pdfextra-65184={run="11r5ifc28fhngzj6ygzfjk4j03xwri683498gf6zhwq0j3km70jf";doc="
 pdfjam-68597={run="1bjq9nax4i940y43b2iw2i7xjzd1q87h58sp4y1dh1x1n5a7fw8k";doc="1kh8xlzcbhnkrwz3yryg8ai7m315yw52k1ydapy218zbvjzrai5r";};
 pdflatexpicscale-46617={run="1z19y34c0x05yp49jqn0z8i3ghv0sz8zm0arb576rz7mskpivjqz";doc="0d1zzym0mgsbicp92qf60fq8l2sdbdx47517k9pj3v8g91svxlpw";};
 pdflscape-64851={run="07bmajz9ggwkq7pz49qipy3nmaqd6ypwhpxilsj9qw4bk5asxclw";doc="0s7bv2v7hcs90fvgk12ff3q89nhxp0v8zjv38wc5inhvhk77jvbd";source="1cx870l68mch1hg0va4g3vdjw4d508bw1kw9f3x9b4wfi7dqfwrh";};
-pdfmanagement-testphase-69078={run="01ih6xxsmzp73h6v0wy9g10rwrmplyr8lpdaz99b5l0pyidh4p13";doc="1ghmz136p9pdg7yfv3g5zrlpwiv81l8p0syl43whdbkkmwky7y86";source="15rr5pli0zp8ziplpkyxzid1i0jjnwcl496pd2q460y07rdxhgbh";};
+pdfmanagement-testphase-70328={run="0qmdvdick06p7p8g9w40vwkgz7ls4kywq3paw362h86z0xz4adpb";doc="0vicksagmf2h5l2rz28wwwzny9wiirnqavwg16apycfcwayfays6";source="16rsxnrbs26q9s2qh7m3aapwxhjv122swhv2lmv5w4zgz275mjqc";};
 pdfmarginpar-23492={run="0mhf21dcz4ndhbh1g0h3kcqza4ni6iigrkif0iryyzg1zcx60d19";doc="0arfch7gb07grg0n8ij0wfzbfzc8bv5izvhp3vjz8hl8ha3wyzgd";};
 pdfmsym-66618={run="056w6dq5ymm0x71bcya5nq4iiflcmgw4fh6zv3yb8ihpjj3h00y5";doc="1vrgfpg21bzg8xcw6cf43bjc3gh0m3r0s0y8lqh2nmdl00pmybad";};
 pdfoverlay-64210={run="03cc0088b0iwjmx5wkcs48nnmygsg7w1xlvbi0pawgmhfvfivis9";doc="0702k1ckh9akj21xvbvn5s18x8s4nwk0m7jybkcl8f481qyhhv26";source="1z8n2a0kwp13iyja45l014jyl8aaw1hhnxgxfib6q8i0qd97xw73";};
 pdfpagediff-37946={run="1a4qmaypz1indb2pw4vz0hv8ihanhf9z0azs3zkv2ya6qkc0kphp";doc="12di5a3976bkilcyfg0imx3w8771ky0acgrag7xp9rpcggbi3r08";};
-pdfpages-65319={run="1ymrq5yhhjp5fg4sbbksyc44lqaz3jwx7lj0360xk14s6h53slyy";doc="1fn5sc8k4pfzsarq7j51iamyl3da7r1qv8jmr8mjafvrvzk6xbp0";source="10gilsm5b0qmfmacm2plhm1ivrvdnw0ikgmxapwdqi03qvizgyd2";};
+pdfpages-69524={run="02c11a7bvw5g9gq2xvgjk0i7mrfl14c7d7490nh1lajxhll81f4p";doc="1vwxmhffq7zlgmvh2x3pbg68x0dw3zwmqsa642r7kp57wc4ldad3";source="18p9wm6wnw6qjzxn77ibh33zwcpqhbz3zc2l4gwza1gpdsirqlcz";};
 pdfpc-68610={run="00zab5xlcqqvvwfxf1py7m6gslgv4drx8d419wl3zjmc6ww8156a";doc="1fm43d3q5gl8fg9p9n3z1nvcp6cykm271waphnjdkj29nbg7n9wv";};
 pdfpc-movie-67201={run="07d7d7h8zfap39dd3nks1bnpnfpgs8nrzzdsmchy6isqfmfrypgn";doc="1la9fvzrlik4ar3fdaxla5gbwpa2v49xrrwc4wy60i7h80vqv80d";source="07lw20wp5cqr0pvjsw3ds75n3hggxgcp9rbvw026lj5k54wik1bv";};
 pdfprivacy-45985={run="1l1nqf4ihwfycnb1x44l1dl2h9f3iy1ppvr0l4zb8qcjqhl4j63y";doc="15w8jwhksfiv0h2iixk07xvvmk1g2j322xqid753bcyks48xffjz";source="1nqjj51h0pcrjnybj3cqb8zwi0r1ipzzw8ic2clnf3in88pjzjhs";};
@@ -2923,7 +2941,7 @@ pdfxup-59001={run="1vvddbdg2l1s2m47w9whvjd1pfp28l6mnyk1m52wnspm3mi476fx";doc="0m
 pecha-15878={run="1ia3q7gygbg4scgja2qf5p7wbgd429cj78b8ffjcz68vgdg86jjy";doc="07b7kmf1if59nrqnsws5hklv0idjjxwp37a16dbjpcfdirb4s2m0";};
 pedigree-perl-64227={run="0a99nbm95pagcnww7wyxqwdycl1ags7arjnd9spahj1zn7xg1413";doc="0d13qx3al4qa7v9i4frii3vv3n52bln12d2dhp7wyjla3jz6673a";source="1xb778agh5vqbm6r14aff42wvipykjsw9yk3i0hj7ibz4ipcslr2";};
 penlight-67716={run="10lzsbz2ia477khfm43sx2qli46isf2z8pvsz23yvip32lmqznrb";doc="1hxj4i1zfbwbyl633wn9m4xvbagv7ljjjgil3cjfmdapxgr06n1m";};
-penlightplus-69070={run="0cbj9pg01nq7jz8qr5d3l0mh4rpad3jxjcd7j5rq3aqh8z5s9q7n";doc="13j9gb6h8mawihvg4gxlzwjfkwprsa9s5fv0bdlr5z33n8fknhxf";};
+penlightplus-70319={run="0na807958mkb1if5s5yfw5ml8gqb7ss1mi0r6dpm543ndypnhj2m";doc="094gn0avaaphzkrn6i6c8xdwkhr47bld57vgrpc2mvcp6pnr6jns";};
 perception-48861={run="1dqr68wkf70aj11g4ywr56si8g82bxi2xc9zdnw0nm0wbimy5zv3";doc="00g96wswsnpd0smv1s23hqiq4lg407m80nybmig4ibcrafjkrqrf";};
 perfectcut-67201={run="1hjppa3dv8a5740nr5jya445y5nb0nb2z1jlkqh386bnvgby8393";doc="1ly3zrrrfb3jihf02p2j5ym3m2gnr18pf2v5qg8rsj2l258xlark";};
 perltex-52162={run="09vc7pbfjl0zjmbra41p5lmr6l6r4gh2x5h9h5hg1i76n4mfkd8d";doc="0sndaglhb92b4jvp0jzpvdiwzc49ijh309aysahrw0pwkdl2lv5d";source="14rv37h9qwgba7dqq8zzvm0dc9y4hmyr6yvvkfbh2il5zs7m8nrn";};
@@ -2936,7 +2954,7 @@ pfdicons-60089={run="1pxw1mhm2lmggs67ql176f6csajabhylmlxaxp47irk6mlihiavk";doc="
 pgf-65553={run="1xai2x91jf241w03lndpa478dijfm52kyin1ci4s3pwvvqvwvcib";doc="059fvzbpq3nggjc3yddzgj1ci4xs5qrwkqvqshcnk0agn80zpcx2";};
 pgf-blur-54512={run="1w9p9l2nw9bf0rhn70y70h6lqqqx3qravgarmmz1z86ara26k49w";doc="0fq1w85wqqrml9jzi7s2n888165pg4ds8ysvgh56kbkd2zzahnw3";source="1pc8x23l6qcq356s843si16yc6yfrvdxg7v821271dndkg7d2vvh";};
 pgf-interference-61562={run="1l3gryb96av9zwxn4naxz5vy0y2245fv5zlm1dg31p88lflh2s5d";doc="09vvbnmcv8d6y75hxdln9gqspm35fada4g66w6z4kv1bg7z3vrlj";};
-pgf-periodictable-67250={run="0q5407piln8alj39g108sbkiir35f9zki3fhfmq7dfkd8910mbjv";doc="0mk48dzb8n4fisrifmwm3gbhrk4hmsma38nl5rpiwm7yy447ch5g";};
+pgf-periodictable-69924={run="0kicajyb144r2srizm2zmsf5a7bv8zx67xbgs3bjpiwpazz3pj3s";doc="18cxvb1prlcd398h3wvfd79iccb1sxv1j05llp17jas5q52y1is2";};
 pgf-pie-63603={run="0wr3r2997p8as08d172sr2hxspmi5bgsgvgwvkm27hg6kpi74zsi";doc="13xvia0zbgsrsy50rp3fr07hb1zfj7jfs95ai6cvy9522cw1zb0a";};
 pgf-soroban-32269={run="1y1c70a9v9zy8i58j19g5c8nc7f00zcdrdjmdcbm19r8vi2r09fr";doc="1r1rgd313fijmjqy468j25d55p76vxmcrgkp968riknych16y1pl";};
 pgf-spectra-66961={run="1zl4cmkd153yk99sm6cki1a0g5z1pfv5c1d8jskcxzrfxzzrd75b";doc="1iyny475v6h54crlfjm32lq37f2dg8mirgghs57cqrrcl2nv4qdg";};
@@ -2980,21 +2998,22 @@ pict2e-56504={run="02rhm6a26vgpscasrbz25vjimlnkh9s18pq6a9025k65iwp5f08z";doc="15
 pictex-59551={run="0yz4dfnmakv78bc7rlabh8582knr131mrx0rxjai640bdax8as2a";doc="037ljjsnmllkxgp800dj1k9pvabwg4gjsqci84jdmayjcwsjibl1";};
 pictex2-15878={run="1qqf08yharknq6csk01jdff62mg011bryqlq5mbmjwqwh7wxs0wy";};
 pictexsum-24965={doc="00yd0945qiss5jizkxncg8a9bdsld7mkhaipi92bbn1ghqicsw5a";};
+pictochrono-69865={run="136apjhvd031j0a1jaxwkdm6lhg4vi173wgcdkd61phahc4xzss1";doc="0sybhyczmjjhi47fxqz88y98qq7w8nibxij6ai6k3wzkhg9iy9hp";};
 picture-54867={run="1i2775x39n5vxspy555rwn86384yyapl70kcfir96prp1846rfjd";doc="09gid4bb2wbmaqday94qj4r44cpk57rxpzg6grdcjg4y1dkjph0b";source="150wv3jb6hspwhkjnbxff5izskvqfvhvqxbw773qikjjxsaidqgb";};
 piechartmp-19440={run="1sl8mz26cglbsqmpd8qz0l9yycxgcimi0yhkgnc04n2iik1xc6b3";doc="0g8sh91ki495mqv7zxxz2q40bk9dl150a9hi7yv0kbpiy45h3af4";};
 piff-21894={run="1q0xdl6ip1706wxprpd85vycyksbnn1ws091gvmpdhn6as4fxg9i";doc="1sa2l82yndb9pl8bfmnna20ackv9rxp7y6ljjyix3bpksqp20rwq";};
-pigpen-15878={run="0zd90dp5bx1l5d5ka8lzx83yprl1anh7r4qc0laa455dix3swfq7";doc="0z0a78akxkigpw7289692sr3z8g2vnyc6hwcznn2963vmsrayv6c";};
+pigpen-69687={run="1mij57v2cfj9v1mfhxlpb857ipydzffbdbzfw00qmh6iqc36cfn3";doc="0db3m9vv02d261kinx2hj70cqw7gpywr662amrmxznhhq3990wwk";};
 pinlabel-24769={run="0dlg15b6cjykp481xn03kg3p1zqwccwnm2la710xdwf87p1k4bp6";doc="0jw94fl3awpyla0flmw9f72j3ssrqh1scfrbx34mxlbmnl4z3pfc";};
 pinoutikz-55966={run="1kj24i32ql4jfhzfxyrcj0nmyyhf4ipic7zdzcz71za6njqv3gql";doc="15farzmd27gp8ms5vck6xcjs0cx7rp47nww0shs6r0b0l99946m1";};
 pitex-24731={run="1g91l1z71481hlwz8vmdac0g4vm5d6940gy1ly44qny626k9j079";doc="070qn9b6bq4szqa9wqfmb3qbfxcgif79dzbb3qqhvs7fh9bivqdv";};
-piton-69320={run="0r88g4c5rc2zg2vw49a7cswrnmqcynkhhck5w4f6rqm2iggbvwgl";doc="07d13hn6h1wszszzfrj8zib5vvm3kv3z0543c404587qm1s3b94p";source="1j0j70ap527g1czw9ca6gml6blfa0djmjvhvkqlvyv024msm32l6";};
+piton-70446={run="09dcrv4ss2zw3vnpqrpbx5v6gizw0zg05qbc6f1rk4l0vk5m5zad";doc="1gaxv75wbv8j1nxpg2gp30gnzk6vp7226nchs7hi1686xqngaa0v";source="1nf5lq7mcycj3nqc1bxbfc3gsk95f0k6xnyh4dsxma1kx3y2s0c6";};
 pittetd-15878={run="1s8865g4fv04ha7vls9frkkmx8dyn0l7z1rqvh3dkyy7fdgq4vff";doc="1jkdny3kqljfjnf9ywpz7xqvfka8kwi33jy3z2yiq1fvp8k60ar5";source="07k0ilmwkg3wvgfpqyqc60hn5mlsj8z5lsx8mq8h3igwm4j8krzi";};
 pixelart-66012={run="0d41qzn2gsqbgvgaxk9a7cj5r285ayn8amplzv57j5c5azyi6qlz";doc="05mcmy25mdl42wfdd3l64bkkxrvmcj6lw9zb9jypaf2rrdfnpq6l";};
 pixelarttikz-68520={run="1zn0cpmmdfvydizw1q9lhxdj185gyq2hpzl6rpjfxvx5wsm9piag";doc="1p5aa3mjv4g5qa3vi988v583d8h6237lq9bncnjaa5c1sd1l727l";};
 pkfix-26032={run="1sgss755cf1zrpv3x74x5qnqc6w81cvr1x0w7875ijh4c1xxkn9v";doc="0bxijxbbj9v4c5p1rg4gkqnm75rq516vxln6s6174ph7abqrhvys";};
 pkfix-helper-56061={run="0hf9hnjw7ws0mx9w5s6ik17zlq27fyc3p9bgya1wxbh8lcvrygn2";doc="0fh59nzzl58fgpkkfzvi603sfsfnqrj8s39k4nn97567gpv4a22a";};
 pkgloader-47486={run="1vmpxv6x2dq9b4ddj3xxqzkxz213bvz7qn24jlx04svdrq0cnpjn";doc="064qsri65nyy25sz8y9avpxyg3rzcspjr1cfc5jp0vfd07905zix";};
-pkuthss-64869={run="0p2hs886j54waxl9kk0gjimhylj08z1jy7c4pryks5slchz8rmg7";doc="09hz5qm3d6wh1v6bcl2sadlnm79sfvp35g8jhqz6xps13jsfj9dp";};
+pkuthss-70496={run="06xj3isz2c7pgw4czi5yj8i1v8ydwwvfwrrszvdfd9wrcpkds7qs";doc="07k7xssd23as7ck2068wv7gxcrvijq459fr5sya8g040pv65cq1k";};
 pl-58661={run="1j2a3vz3wabv3ai0k9xvf8brwljr5r2bi57nk0bba476vkvxbrbd";doc="08qkn286bx6akfrxrlbj52xylbvv00bvmmpin1sbpy342ij57lrq";};
 placeat-45145={run="0vmvw0k1s023siwsrl4hr32wyla5xmkvz449p7vlfv1n63383c1g";doc="0j9xm75xv0lqkqzm4g8aqxy6cs8vxydmm50vsjj4g4aah7n8jygk";source="0118s2p8vfam65fwynf3vabqj4kz0kkw9kbq49k7akwwj1wpyd7f";};
 placeins-19848={run="1mlx2wlm5j7qhhz8q1fvxd4zvjmjpzhk2aajql3wqvamrawba6k4";doc="0libqvl13md069fjbx3gl17fyzpn6v4jk4vk5086szbi93dr692m";};
@@ -3036,7 +3055,7 @@ poiretone-64856={run="0dc8ll3xk7yrf3irrgl5bh4dwvi6mvgp3iqvzfi26jv12m3fwr8f";doc=
 polexpr-63337={run="1dml5b7zb2w4cawqgvqld63wlny45vnz7p8y2pc7b5h86p51a0cr";doc="198dhv2wlclrs5sqdiqk26llyhjk4l4zr0hlcr1cw56dnhdh2j75";};
 polski-60322={run="0y66zqxb87i8wymryd19hjws7y9snks73030r287lbifb77kyx4c";doc="169z3y419d3afhmhk22d0h045pysdrkhyvsgrs951ah3vgf8n5cv";source="1m8pysaiynxb64n81b8zj3cly6g81w2fa1nrknqnxm27bjzn2jrf";};
 poltawski-67718={run="018iqwz4apkj8pwc3ws7k00zldnz4k02h1hv0ry9d83z34xswfsn";doc="1kx83mgwkxd0sv2xjzvn6wdsbdng6skw71z2xc3xk16lk356q8hc";};
-polyglossia-69093={run="04mn94vq8fkg3a06ivgfvpwgdykac5di2ibi316brz9ypsglvfjs";doc="05b84cypv1ifzip7dvzjbq4xx3hn23qy2430faw527nv8zsz30a4";source="1cjbwqk3r91l1pl68jnyk1gl192gfadfqy3jg9a7cmrnpkyihsnv";};
+polyglossia-70496={run="0rwdpn2q7h2kcdnal03zj2km1rw5pvj08qvw90y27m3ps1bj6w0h";doc="0wycqg4g2xyakabgsd5a44p693g96r551nrzfb1v49m9hb9qswji";source="03s1is2254s34xipffbriiyd6gfwwqib83msbrwj5z95vv3ibazj";};
 polyhedra-68770={run="034zv3j4ga0xqkqn504fdwrcbzjh63v8zzfchjwcsbb2qn1x2rix";doc="1a01r85nliax7zll3qz212pkz2yix2xzh15hlbpqgqslh564fkxr";};
 polynom-44832={run="0vn9k3vci15lq0f6r2354ag4bs55jcq6571wvz3k4daym5ka57s1";doc="1cxsw0b5vxy191xy5clf15hb2cpyyqj5ipvgcw9n0hm8ka3g9l1i";source="0qh4w6q9qch3r41ps38yzlv850wcqvf6b0b6vqirk9lq978k387i";};
 polynomial-15878={run="10w1vq7101hnp2ifaa0j9mfccg9y4s3cyms4m63sx54lbpj6rc1r";doc="1vn0i77hzr72xkj6ka4r8n0g0nbz382z729v269x6p5j9qqmiz21";source="0hsb8yyk6ssih7fpc6qiwaf40cwn8xx4jgwqgpmfgkc0x1qkpri2";};
@@ -3050,8 +3069,9 @@ postnotes-69102={run="0m9izldvlngj81c6nx9ig5civvvxkf9mh3cjj8xh0r70pf3i35yq";doc=
 powerdot-59272={run="18ii2qxz7c0wal5xqddyzd2j933lg4z7xglxsxn3vgp8ffq5kr3n";doc="0zpwjmvlckp46ycdldf049s7qvgbpx8cx5zlvzh81qhgdlgximhl";source="1v7pxr134kndndk542f7bs34c5kj85xy0cwvwlhnav89ff2mh5hg";};
 powerdot-fuberlin-52922={run="1gx04y9ysvwzghy38k6izhs9gm1hzssnb5zh8qjjh8v99mk6cqwa";doc="03ci0lcgw777kfmnzas13q75n03z8v2im1wzrd8hpbcwq18mmn2v";};
 powerdot-tuliplab-47963={run="08f25qa5fdacsd8i0bs8y0p3k0zjgja0qp4ak0x3bixz7yivg5nx";doc="04b546i32k1cs6armmnvr8aqbfvs0ysarlsjmsci9xdrz3clm5w5";};
+ppmcheckpdf-69527={run="04xr6c4niy53s63d7dw7fvd00j9i6k0fjfg19knai2l9bnqji5nf";doc="0l0q4qswcijs94pk8qgb74b96df1l8l980bvrrqhp8d071b19xdw";};
 ppr-prv-15878={run="05xs41xfm5hjpx9dzrngaj824rr8cpwcpvzxsyp1xpzlsv3gk1m4";doc="0rfrxzfm34kn4sgj1dzvdyjx7s7nkyjc785j7pgb609svld6jvyk";source="0miijdgcsn709kpp0zjyqxyxfgk0f798v748brmqshb6mfxbryzn";};
-ppt-slides-68764={run="15x2rzkbc43mh39wrmf8fi2vdn4jxq2cmysl39slq2wj7blblhwa";doc="1lkkvn5giyp6l0mz7q0va9p1rvwikr6b1kw4ry1qlq2jpa4zjhfd";source="1jzvqvy0838h3md6i9j4pk43r7z2h2ignbcap9lg6cmwwkril6bd";};
+ppt-slides-69568={run="1zbfmwmzq53dm8pr8kzhhgrx0i83s67vgkyb2krlssjsrmycyrjw";doc="058pg4005wb84iv6rr3pjyqfrabl29110rkq8vgq42dqcyr66c99";source="04b7ysvrxyg5x7m7x87gw6fn06h582xqk6gab69mwn24za9286ay";};
 pracjourn-61719={run="1idcncspb2dcmrfsr8bf1ar413mc51lliq9xgpv0ybsiv91yd4lj";doc="1hks8p9vksn88daqyn7rnsaza4i05dgfb3ngd5yrvvw0v40s3acj";source="1jbicfqvvyi4nnmpqafzlzlx459v5cyv62wmq67c2692am8a04v8";};
 practicalreports-52312={run="0rv5rsba1xdwcv89fl640yyqqk8c8vf2w647yqz8xawm358la42n";doc="1a7p22pkmb365haizgg3ainxlr2626mg6p9962cy0933hb59llcv";};
 precattl-63967={run="1lq5f5fx93a79q144980balnmnkvcn92gi85df14iyj96c1zpiij";doc="12gmnd4fafkgrffh9smd8grv2bsq1dajajh3s6rqnf2l8xr1wqkx";};
@@ -3062,7 +3082,7 @@ present-50048={run="0irxkzfg19h5pn0drgl5dlpz34j1p5jpyii05b2xjz4810gnl79h";doc="0
 pressrelease-35147={run="0hrx80i1nfwyhhda415v67qxkgj6fqbg4bicirdn749bwc0anhar";doc="05spvrh6dfq16z9jlswzqrwnscnywp482cv3bhak4vavbxs8bf35";source="1c7nhvaxs4xlycsx2n6bkyy6rhnzc9ddcnw6cccpgilds546ns4v";};
 prettyref-15878={run="0akbp6wsxn4swk0kwxw27x3lpf5anwk49bb8pvssaj4xy68hyq1h";doc="1wmvvsz7y0idwfki553qkfhg8j7k5h79nlhmaz6ln448x8gym8y8";source="1w9qckaw403a8nyqyx8qyqdn3zfkxzgfzj1hdw5vwi2805bbfy1f";};
 prettytok-66884={run="09lrfza86v4haac2h4pg68vqjdx60h79f3p7my59mwdk67sgbxwj";doc="0n6w3d8fbm7pidh7iga8vmlvx8qvql90k14hahy4q0i2b8dpg2bv";};
-preview-66924={run="021bb1l1k1qpwj35v81s26cw599nk9vmv6q9wk03x9b46ir0mzxc";doc="0rdk8vjlps3q1b91xk2lrfy14wcnfkbdr7zng88wjw6iacp0rgfn";source="0k7nla9s1dd0afmash82izyb4va1wfh3ip4wry2zmgbqjkpjg0bp";};
+preview-69470={run="026s7kb0adrr1nf6lvy5l511xb47j51pf1vgpm7gvn4sk9hnm3fs";doc="1hcvagf9gv18695d3pxh4a3dyb7ykv2ib7jaicmvr9whzvhlqx46";source="0fhn4fprb3w34kvbwymxdjj8arqchalg90idzzgarika4mlpxa4h";};
 prftree-54080={run="1sdb56cvlfrys3f884hg6qpv1nwd6ywfyiq8168bs78g4q2ah4by";doc="137f5nbcm6p428an3v20j5cx5djvdri12ph07czj13877pjy9ccf";};
 principia-66625={run="17vkriwbkwjb2ksxbv9glz11i3dczj8hh4a4mfb3signj2dwyaf8";doc="1d7fbkmjbi6ym7kik631219fa4c1cs80k7f3kzzzsrwkmnhrq6qv";};
 printlen-19847={run="1h6q95dvpldmrfbpdv9v19p34iwq3jzz7vs0z7b6fnijyybjxnpm";doc="08p9zwkgjpkh7ip3i54qjdazgnwq79v15hvz4j4y2dvh294nmrgn";};
@@ -3071,16 +3091,16 @@ probsoln-44783={run="15zsh16v5rs0baqvy9jwn59d95qj6glvc5h054ldb8sy5nwkl3sk";doc="
 prociagssymp-63242={run="1vs5xs701gkm4zl6x1qkzbqssffdhg4i3cabqx3s8hp07nw8h7fb";doc="009kqv5n4m5ci39bck5s3h5kwcim5dfjpa6y0xad46syj9mgjgvq";};
 prodint-21893={run="06s9qbfy0rkfby9ff3dylykl81yb3fxpwxrwa8hn1aa2gd9bj2n9";doc="0z8ibz668zjjjypcn0kiy488wzgwzxqackz5z996r3sq5x5zzgh5";};
 productbox-20886={run="1idarj7sxqkqzlnwaqv9f192r228fclilz01fjy444ly765k0cbk";doc="1pzba2ymna70gflrnw6hs35dgkv17qfjs8gh4g6van44wjykhfvg";source="1fnqp2sx0wmyd9130j5zbqw2dk1nkajp4qs46qm47b90wga8pkkj";};
-profcollege-69343={run="0f88f1q817s8r3skm097hp5k5qbjfnfh2lp26c2vc66bpmpkjzi7";doc="0qp55z9d1x30gs8h51rfyzci1hia8jah9mk6s7z1xlxmy9yvawrr";};
+profcollege-69539={run="0xkbjg54jkxplz5jgrhs2vdxb6rn9idwzzknjw4wgf0ps5c8b4zh";doc="0h52b9p6gag9ss7h9jr8c0b0hjym7jlan1n28s10lhhf3l6rdpwz";};
 proflabo-63147={run="0rj7x6s9afn5yid3pqd2vz9qn21z6n6m5cahq92ygn1ix5xbw3dg";doc="0z56g41bw3lwi32z0imja6a4nls406ck3ic4pibyi5ajcb8317w4";};
-proflycee-69386={run="0apwy75hr9b4kirl2f94wz9fxlm6pvndn8ppi88mdplfwhykhvs2";doc="1qwpl2vgi6sxd4p9bqyqag342zzacfvq59nwbd28hcnnyqrr9az1";};
-profmaquette-69287={run="1q10iqq390lkb10xz5x8fjcxic9x15d70k472s9z8nwqw2sdg540";doc="1xhajdlhh24fzdnhq9qqi3r01s5icdii3vgxy6wb0dx2ndkw8k5b";};
-profsio-69125={run="1gj53aqxmmy2h2xxg2hr53baxckwgm5r116iiz7mhlfpd413s77f";doc="1pk0ihk58s346xqfmi7xygismr07pzb4rsx4z2dbras2cwq8r0z5";};
+proflycee-70513={run="0qcl9dh1433kgkamvr08mdxpfzs56jbppll784fyzhlpfbbqay1v";doc="10vyp8jqi7mwmvk71x3jnkl9nrxajip9cmsqb62v56ry00jy8cc1";};
+profmaquette-70496={run="0jz4cpln3lh5mv23igg9rk837kd53ms7s7mvy4m51y35hal27dmv";doc="1kpjw4vm8wlq2d35wfy3cs08gvhadgl2lxq6z4qhwzkpdp24dar9";};
+profsio-70211={run="1gqjdmsigddwmv3vfafabxqfnbcb437q9glsy6fa6a5f7kmia060";doc="1wyw0lvpggp0ryhzvi3z7ygjlfpb0kp0fi92yfq8ww6sjjr06x3a";};
 program-44214={run="0ay2z8ga10zr5p453ss0w5qqqyknsgqd2hifa7lq0gih4rml14pa";doc="102c9fir3hn0m7y3lkj9j0vwf0srbv6inq87lcxwfkvc7yw0rr2m";};
 progress-19519={run="0wgkyvyf24666kg79h7wq1piq6yq2nkw6k5g0ydk3y4gwzzkfhlz";doc="0r303dr6yf1r5kk38c1njjra7vgvp9qrblxj7zd8fw1vlq2sc7fg";};
 progressbar-33822={run="1d0d6dy9ssiij19s259d2ns2k5v2ccc45anhz1qm7iqli12ij0m3";doc="0bxsgvql8hqv4qw1pv18vdxcshphdpbb29mqp3pbbsd4crp4qb5z";};
-projlib-68784={run="1hp39wzk117dc0f9xjbm4hhirn9myi81pzzrppc30vzjsy6c899y";doc="1ics502bv7k4yp1is445gid0av88n0y2d9rqi5sw4plp23hxa4k0";source="16zz56y218gan7x8gmrhd5bfcn44zlxaajyvxx2w7id0ii3kxb6w";};
-proof-at-the-end-64188={run="1bl6s055slsn8y7cvg7jagbaycfm79rfic1pl25v93bpxhrx45gi";doc="0bqjhqcvrhmh0ay7f59shnyvn815pqjzkph067yay9l5jr1s9xcg";source="0x04lrwhhbnm511rbbccmf3p0wzp7h1rxd1kcf8xb03pdhvq1adz";};
+projlib-70327={run="0ld45nn6sal1fyrfdahadvsb3jyrb5ylglva3rh5fcxr6fl1ywih";doc="1l2dbwqhpc18nq8xkwg5f8l9mcg59f9isvqd53kx3avr903wggf7";source="1667xlm00573al2aqrfmfhlksw4hvdcfzr5qa0mz17ci5fcy47rm";};
+proof-at-the-end-69602={run="0nxba2ck41yhjl5cfjhjj34l5srkh1y47h0byx61wqzphdr2y9zg";doc="0k1zfg59sdknh6az19821n5qvpcxvlr1wr4qz0wrghah8h6zjggg";source="0y5r6vzzvi7my8qs90kg8pvb267z6ly3nf4ski14yxa2fgr6ab1l";};
 proofread-61719={run="0gnn7zkzrszglcqcwz8c4i13apildg7s93rkp1z3h5m2gr9w9v42";doc="05g3k77vczdqk19gigs9b6w8rccvcr0d382ysqn0yg6cgd70bi43";source="1mggrm4cfji364ylra3ffdhwbx6phcxwfzw2mwls00msk7jdzpsg";};
 prooftrees-67399={run="0sk49q7vavqlcn6rgpzzjjwldss4rlqkvds78jyfm79ky9vdgiz0";doc="0jajcbq3mv8lmixygc7i4nhwiywq5qp9w8hbiqxi16kpqql37n52";};
 properties-15878={run="1pxl101mc318ivzszyycwb79rqghx4x8xr9fvq216ambs7gq4sji";doc="1arkdafwmhg0hm11as4mb75pjz2mnah1l5msy5xnlk4asbwfc4sb";};
@@ -3099,7 +3119,7 @@ psfrag-15878={run="0m5dlnjf7gmikg4nyxzzfz999gphkg41qm2sksq9ly2rspbdcs8s";doc="13
 psfrag-italian-15878={doc="0ssx8rw7fwln02zzscywivnhizgrb6w05awscvv9gf9n1qj6avsf";};
 psfragx-26243={run="1kb769ai57d7zg3bp0r0mspz0a2l87qiyg04a87iqk7vxrwv0bd7";doc="110n7a7jgfmzps5ng4gibxigmm3dpkqlz6jpbnphrw1pnlskwjsv";source="180yrq0rnsb9cd8j70jym06k543q211fzzswzg0dq8fzn3hk2wwh";};
 psgo-15878={run="18h614dasdg19jnwwl5swih2dxp4wis66fkscq8jjmpvjnckpck2";doc="0naza2kxcgm9wdcyibs36qnwwgwpsbj2m9qkk3l9d54kml3wiznp";};
-psizzl-15878={run="0pzbip08246id09mm0chi0gjjgdc7yzj0bd7q8qh5yfdbhjn8yc8";doc="03slfkyrb0pil00n55n6yp5vxxxl8adjbxxmg1c2zl261lci107v";source="1h2hrjxc3ck75cigh82rmi3558dmpliwxzzsaabb178bh76m2n3a";};
+psizzl-69742={run="0pzbip08246id09mm0chi0gjjgdc7yzj0bd7q8qh5yfdbhjn8yc8";doc="03slfkyrb0pil00n55n6yp5vxxxl8adjbxxmg1c2zl261lci107v";source="1h2hrjxc3ck75cigh82rmi3558dmpliwxzzsaabb178bh76m2n3a";};
 pslatex-67469={run="1wfk27qb4x8aafph0lgnkq3bkz5fy4cmaiivd924mk92l1wfg6dp";source="11gykawqw4fi453s1bp2r0pfm0az2k8gr3rcrygzfqqzgrhxvi8f";};
 psnfss-54694={run="0ng5pkk6m2l8yqd58wggbakbs4hp4400r4ihyi9akf8j4kmq2s5y";doc="0vfv9x1qsivwi6c6hi23vw0jcjz9dclx0vxnifslyzlrh7592dzc";source="0cqpzra8jwdn9d6w4mhmfrfw2zia2nbpyxjfrcz8m1disd10lhsf";};
 pspicture-15878={run="0i41lg0nw9xya0gfiwjd3xgbk0w723g90gnsvnfg764s2dl371b8";doc="1p27zx0svlcm4p12xjq35g2lgj1j485c3x363gciqb4aswmlsl65";source="1f8lhyhfcywn5y78354r37bgalyq57bm1fill5vzny3l7cyqxxn4";};
@@ -3155,7 +3175,7 @@ pst-layout-29803={run="0199jrw7b58x6qby4k48n8sd2rffxlkhrp334q2dmalqsi701l89";doc
 pst-lens-15878={run="0220idbrzzslcmlyxxzj52mj9iai0p2ya10ykgkssyd8nfbl2jin";doc="02hbbhdnaz6cc5zkp2zmm92kbk0ppzwljivr1grx4g0jqqw8c2h4";source="1pwn8wx5w65xdz46qf5mzjkg74q296bkmzwsxw2aml406iksy890";};
 pst-light3d-15878={run="0glqibq1h8ynfkgn9r2p0yvgplydsigg5chj5gl2vq2hsb38sqg3";doc="1njiml3v4vb7jxpnai69b08pdikasjk30g3xp31vixqrzr56i4am";source="0rrgfxsbvfbyc1g1xsakmiiy7f8skmv2bkgq6vbji9y1f5s3b4zl";};
 pst-lsystem-49556={run="02m2g6kjs8fxifsdxld6ivjxch7vj137828xpax8s7abr9f4dyiq";doc="1apcp1ms40xhypxr4fq6xrh91ff15gplzllh3zs5b1w153xq3w8l";};
-pst-magneticfield-63821={run="01as8f6dm5yy7bqfm1yw0dm1w0jx74vhpbh4kp55br6f48fs480q";doc="1mc60dryqsmz2i4jspixg7m6rf97ai2zr4f59wf59140wlca7c2k";};
+pst-magneticfield-69493={run="0zpzn1ci4bkisy4v5mng3ywl0601ppfmky8il3ji1fw3l6g6i183";doc="0pbhh33238l79zk2fz2a87yhxk8ax81kgk2xh60rdq5vb8md3z0k";};
 pst-marble-50925={run="0d7xlygws5f1hipyc2ba7spr2y8h3rprigbrryny3mw2ycdh1yqv";doc="18jzc9fpjcrhya1knqsxxmaix8sglfbcsiszxc949pf4zdpm50ym";};
 pst-math-67535={run="070vvvcynfaa7mmfmqkkn7va3jvpmwxphm2w8j4k74indii282ry";doc="1w5rhcaggrjn9hmkx4h2h31470fpj8d3v3gk4w8ph35zhds5vl9c";};
 pst-mirror-60506={run="06qvndipn0i69b5jk8fxhp465sqjz79vlwr0j01ria3m91vygyqc";doc="0bfzs55sj49y3lznll477bag80yf06pcv0hh0xfg3zzvhmpcpiky";};
@@ -3182,7 +3202,7 @@ pst-rubans-23464={run="09lmil6ishwjaybj5nqabxm20xwx8nw1l9dj9bbjxg42h1wz26mi";doc
 pst-shell-56070={run="1j97kcw8w52q1ispkpbwblxza7q8v25288pzxkyc4yf7802a3zj1";doc="1i5dbbnzadhc47mg7bdv6vas7ynkx2c4qpz0khcvrz393kszjkdm";source="0rc6j6cy5kwh9sq2gp5scxpb58ycjqdycnmnqpy67xha62fnhcsp";};
 pst-sigsys-21667={run="1v3yz2vhazp04xjd0bp4pyyiz0v4yq7hbr9mq0m2s8pg3hisfbwr";doc="08m72w1jxrafcbr19fp0yvii9aama1rfl9czys6gr3sii9ks6qxa";};
 pst-slpe-24391={run="18f99ravk128r2cg84yxv3cjx2df8fgzq1f054z5g5ig1s5ginws";doc="0g8dhw27n2vf73289y8rah5xakb60cy23993vl3ygz1cgrn356i5";source="1mxninpgycpbakvmc9qc6032mncz890k5ggsfm507jzyfxrdp5lg";};
-pst-solarsystem-45097={run="0n6w3fyggf7favnr90239b6dp2j7q31qi5yjilxdw35s001m1ghj";doc="1bm77lqaqbjnhwv6fra0g05ij4l9vj9hh7gs3sljgdmwy4syqq24";};
+pst-solarsystem-69675={run="0wyascz2z4ydqpmgmy23l95b388qp6z4p589dy3f0sz7v5cbjxx1";doc="1z8kbqvi0c0pk3hc85xd03alqwghgnqqn11k5f2wqhgv6vbrif5h";};
 pst-solides3d-68786={run="0miw5r3sp58x5q9rdcaa2qp7kvsv6f8pnkjklljm8gy171ddvvav";doc="09ymz8vb5hinmcnnc8x92qkaq6zjhy3gyj0m5rgljrs15ks38vx4";};
 pst-soroban-15878={run="0fygllzq9gp37nkffgk3am2vygl5d5dwyr4avf1gvh0s698jj8by";doc="16a1w9ci7ivqf30hvr23fv6j6clqjb4y7nmjgcbfz20xzxk3aa1c";source="1h6srvvl3s1prswlj608y7pj5l4zzn13yqrhdv41956ikd1wbb14";};
 pst-spectra-15878={run="0nd87bnxf8giakadg457p10idbnn0m982l0pgyx23495qfxywax5";doc="1y40d08nwnpkmrm0jdj69drpip1gwkd8n9hqmairl1wccs6r6dhk";};
@@ -3202,7 +3222,7 @@ pst-venn-49316={run="1i9frqc6b4wg3pb0ks4v0xxsfzs348ddhncr31mhfs39nbj6029d";doc="
 pst-vowel-25228={run="1p1adlrg62jsqzkjkl8avb79w26kkd5jdssmkcsd65dg5qfa9x50";doc="0wyl0mvx2d0zd8q0sdmyrqgr72i2igv0669ajv0gz8miv04vr41k";};
 pst2pdf-56172={run="1rm0frzi52i3irfy5703kw38d3f1grby27nryjpb4ziiw6n5yizb";doc="1sll10kps82b47npv2g2r1l3kkm5y75mp2p2pzqsnxxivgl5kp2l";};
 pstool-46393={run="1g8pmd13f73v8bsrcpf4a6hh00pww6isz00gj8cxnj0xnd4p9xwf";doc="0vwxrcm29w8fiw4mmr5jcxrlc122k4s1wg1sqvmzqypwpvyls59c";};
-pstricks-68767={run="07gapdjvqfqj9ca54kqy3wla8pnmnrys4l04bjawg60574qslq5l";doc="04732mndj1lhkpb4k17i8h3mjc8iphv2dayzqrb9ykw54gsb51p4";};
+pstricks-69674={run="10ihzmpabwnc8y6h391ic8hcijb7nlwcay73z17d11pdy5c0wl3k";doc="0hss51yw2ahaicyv0xdbqyxqqhc74hd2f28pj2sgn6c4yr00v6xw";};
 pstricks-add-66887={run="1h1y2r0y3vypygcczkqi8xpxc0mdcgqm1xfscspqw9ifndx0rwrm";doc="0bd3rwcdmxnazq86c6wwbjkajzd75knja1fc7s3svhn0hxy4jcza";};
 pstricks_calcnotes-34363={doc="00vgcdf73p4143dfjcvs4b5v4phvisv76ink3iiijl6s6f9zbmy3";};
 pstring-42857={run="1f7a26xxxzwfgprhzxq4ay597sln18hjk8cmlzjy342jy45g6dpj";doc="0ngxd95s8lzpsgirgrq4dg0p1dwh4l0gs99nhich12v6l19jd29b";};
@@ -3238,9 +3258,10 @@ pxtxalfa-60847={run="0fanfh1gb1fmp7binmhks4l90s6925pki6gwyzlaa7vy7za1l3ck";doc="
 pxufont-67573={run="0vvnhghcdlyqhl8244c76wd411cd9cjmjsrhic47rjs9sis1ilci";doc="088a02dfk2n6lgyfri74p2lnbp7mp4vn96qqkby0qjfnj6956hb7";};
 pygmentex-64131={run="1kd9jqmbxhkd7gijghd8wi0q5sxqf5dpf22z96wwr29kvv7jxm64";doc="1ppayblsdpmrd9sxfpf0kqhbsxfd1fgq69g48zj9jzbhncwx0lhp";};
 pyluatex-69372={run="171ahvh5ii2gimcx0a2g0dn7s87a58yff7g2dwbw5hi8vyqksfi5";doc="14sxmfsk3lrzcv0k8rkrq7d5dirxmy58i3km6bkahigk5iryq38p";};
+pynotebook-69990={run="1k0sazzzab5a12lf7dl25f8a2fbqjyz56l0pcjwplki53f9x3isr";doc="117lnmjqnw23j187sdyyxcb6422ilbkxrv3axq66apf1ip4jrp2a";};
 python-60162={run="0brs0hydf9vqwlvxipfrfxqjblazgb8ziy4brp2bi16bnsz59ykm";doc="0x1nfbv7fmyhzhgy6xsndhd9nja8xbip436kg7ygscjxml6gibgh";};
 pythonhighlight-43191={run="1bf3jf05zyggcbz5c6hr06wd8dhf0q5m1i4i7p026s1b7dxxq1qk";doc="0qw1rnyg5pawmp7hd3b0dyjzmbrlxa0hzg7bxnmvrz1akn1cas3q";};
-pythonimmediate-66461={run="02p0gnlbkfb2x0d502d2bmi5c4hz3ibmimns7r2bdzqfvx7ynkhn";doc="1v2h95ixg3fdpql2c5sk71g76j8v9244gcjfzsilwl77fxd125xg";};
+pythonimmediate-69487={run="0qml1nlmkqq4gj4cmhx2bpy3105wv56r5z4an1dvxkh6xpi8xbz9";doc="184lkbmyfm3rw0zhl79pk62sdnaashihvbhkar1pbnjv5jsl7646";};
 pythontex-59514={run="0hgbhdrzxvkc8szvkq2vi8v4xxn9k05zpa95vrmdlgw76ms33wvi";doc="0pxafbrr7mclvn2zdwirqbfa0b03cm4l4wbcgh1ag75skghmh745";source="03a3qj72hzczf4dz282vqq6w263zk1zhgm69h1rk5ibdyasmv8xh";};
 q-and-a-69164={run="15gmr65sq78id1l8nljgppbv85q3pjswwfgylc2msa7pk7vyiwzp";doc="0c8wbw0ia433sg8j9py7ivd1libjx43ys2fqi14m0m766sfrdigp";};
 qcircuit-48400={run="0vxsppwbmhh03mq9k3zb2hgl3628q4i51dz98j2s73z19693266a";doc="0571vlvpvmpjhjbbrd1ybzckhfy7ymralr017d09kf9p5gk0y677";};
@@ -3277,6 +3298,7 @@ ragged2e-67441={run="0wvvlhbmj1j4gp66l9p1hq526r3izywyf8ddggj316q2pg4db53d";doc="
 raleway-42629={run="1d8zv0x1j2c996ql8g7zc38s7fpc61ibk5zdixhj7kbfrz5cbc1b";doc="1i8hja5817kzy894j25hy5cjnw31y4kcahcymx5hrbi0aplhizx0";};
 ran_toks-59515={run="1k31qcvbdfx5xknykv9zlsijgzxcw53amb03avwbqm3kly5d30r4";doc="1jri3cb862m8984awdshlqc9wwcq0hbjw6cf2yqgb9wn186gjfyd";source="04ix834glql0yprygm5s2354q62cwsz39lfk871n8s9mxjd2f1c2";};
 randbild-15878={run="07ix44c2zm185byn868bmm6fcbwq9q37h31brfa4839hpklg41pp";doc="1cpyzrmswxawxk6x2vfjy7y8qj3mjrxgmr9lgjvz11f5fvvdb0i0";source="0yzz5awhhw52zg877nl76410a4q6gy7mrri0hccicj529kk0d1x5";};
+randexam-69965={run="179wji9ss598rx7hsagj76jsm57v9cqladxjc4r690mzvadv1irm";doc="023y72ya8b6vcnkizsnx83d9d3z5y7lgmkbbn6saffj3ln671xdx";};
 random-54723={run="1y4dn1i3kmd99b5br7a2j6ppf0ikzp744si5p6m5rmvg4vh1jh69";doc="1gfcswp2krrfswyjbyhck4pb0lq03jh2mfwzm2iwvd3zlndvccbz";};
 randomlist-45281={run="1kwbg73d8hk4wh69fajl1zqyvkfyfxzyv5xykknpa5s67pxkh9c5";doc="0r8i0ywq21c1h317b3yx5ixr4b1fllgwams4yy5z13alda4wxqdx";source="1s86m5hcncfqkwlr8mwdyh3fsnyzisiw5dlg52r499wr77r5z56j";};
 randomwalk-49513={run="10ivivbyrxm50svqdhv9lm623pvmnifpwpnbhpmx2nvf4crxxbcm";doc="1lvff00h8c2fxyf7if1d2xqkk87lb6396w6mb4yfxwsk0j8j2jhf";source="169x0wy0k91kmfbisqh4ciz8n4knhkxmz2d227gzwbf80sr2a80y";};
@@ -3305,12 +3327,13 @@ refcount-53164={run="1r4lv6yhybqb8wkqyaysimb79kbdgvv393kn7dkjqr46b5w4fzcf";doc="
 refenums-44131={run="1dlfd5dx3mqfhn73y04lafcbiprqicv9kfz2ylnd4fhhm62svb7a";doc="03d3p9d1f0pr6gk918qiq7p5p6k0cf1zh209akl6a35042a6nms9";};
 reflectgraphics-40612={run="11kcq0dijnwwxf6d3s0fhk7nfhvn3v36lly2wf21vgsl387dkkaf";doc="0iwcljjlk1741kw6cayrbjhqalv74apppw612gh3nhh242nn9bwi";source="0hy76c57w4lw0v77qaf064j7xz327fprdijljd7myy02idlszbmv";};
 refman-15878={run="1adim1622bngp214hsdzjgjkjcv7b24a6aaqzihlms76vfq0hklj";doc="1jpx3yka29lpssvhjl12h1bxj0k996x7a7rf1742wph6w1n5ymmy";source="134hq9c9kdr7rgzmp5jkjccqgfw10zwv33zmj25b91xljn5afc6w";};
-refstyle-20318={run="0nx762gng6bmlrala884r4mjh2vjh4r20yy00bpjzq0il98hs2lh";doc="16dm6n9mh488li57ighbd3badiavxlmy1ffz2hln6lkd9qp2y6i7";source="09mxinjwbidd8sr6g8hb4gdq81ifzp67jbw24xc69x82kh48r8pq";};
+refstyle-69680={run="1jfnb5vcsdj5wxbl8cpiv0bym8n62pqhqz96vy6hd7cnib85k3c5";doc="077h83hngpdv7bk5cvbw9w351dfkiwbbinalp7xgw2x0p240d9lh";source="0c4ip2pri9y5hziwr3p7xlrv6dnj6g2h7cjnlff77zq1bvyzj70y";};
 regcount-19979={run="19n0gwvh87pb2fanw52rc5j540v9yw10h2r8svczim9sdginy56r";doc="0qnxcyh2vhkylaav056lc2vg24y5h11svzy6hrk6rr3sza9k6z2k";source="1xfk7qs4x302lfi93a1n8nzpsmzmypyb34d8hd7h8y6nm7q2g4y3";};
 regexpatch-58668={run="0i8dfsr32f4w3lfh88z45sdhvwzqgh52xqfqgj53fvynblpz9msw";doc="0qh2g9sdj971a75dv3jfxi3ga3mf6fmb4azphkdgxmm690dblx35";source="1iq45q093v1n421r37w42815yxjb7iby426a48mvgzyc1c82rd37";};
 register-54485={run="0i084dij80m292c9f57hb0y3gs870520l8awl3wb21ss76vs5501";doc="0zi950xii9qbscbv5030aw02arc77c8inwxmzkslcmapdqxq5wr4";source="1jz02c2c5xpinxninb1a2bkgan21gijs48rks4xv17y7k6z9h00v";};
 regstats-66795={run="022l63bc3g31479byh1350fl4wpfw9pq9jbqy3xzhrrl35psvqpm";doc="1l54lb8g97gib5al38k98gnahrpl4sc0kr6wrabagq70cbbpnc50";source="1px681bkciakl41cyblk72v5kh83hyqf7bn3s0hjax9alszk29pa";};
-reledmac-68411={run="0kchw0r9irziabbpjbf405f8rp2n7xvijipbyx7isnzadhrkyp04";doc="0gbx77a5k22393yw7c8s8w6pakal4q3sfq8021mhcl2qcmpvc574";source="1vxxgm7wy47gwhg9wax31fm02klrviwadvik5863hikrinfl3im7";};
+regulatory-69611={run="0daspgycq6ghpv0kr75ww3axijfy21694pn1alic75fn61nhpxcw";doc="1z6hh4rgkzh01yprsc2a2xshbayy5qfdh7198jwwkbn6kvhcxmf5";};
+reledmac-70207={run="0xxzyrsrk3bq9pjx4iv0bh1k3li0rbwbdz1g3gdyir15kz9dwz3d";doc="10lzmpibqa3l8wh4hhl306ry6wi39a6y0hzzj9xanr9iaz2c2gbr";source="0m29yfjvi4x7klhr4p9rx8f4i8h250gzrwb3iy6ykrx7qhffwgrg";};
 relenc-22050={run="13ym795q37rmxhmr0d8834y272si11f0qh7lmhffrpsf4d3bhf74";doc="1hb2sdm9lgzfkj2kkbrlb3alnfjq4rw3islgdzkqbcgqp9s06f67";source="1gk7nbczw9b897idmsgqx6i8xdmi7wizhb3dyc0hir7qmivaqv6s";};
 relsize-30707={run="06sy6v0jscrj2qs7axm770xv8fkiivvj5lwb8mkf58gd5jwc5bgb";doc="1sgv3x3dky3i7xivh6pzqh3lrqjhb62g0ji0hdgmy9blfrdf3api";};
 reotex-34924={run="113nfw6md0v4522n54q63smd2g2iwm89qsqld237f32r3rdkbcl0";doc="0lapzgfp019a7qihfhf1cp2szwq98j8kmcy80c3gf1fa1x0c3x1q";};
@@ -3341,7 +3364,7 @@ rmathbr-57173={run="1jlafpdjryj0sic2zpn5f90754ydnfbb74x8b3q19klm3n20bsr2";doc="1
 rmpage-54080={run="0y292gcfkj0nk8090iqnlrx9mhvh545im2xms080kz0l1847frpc";doc="0rq7xjizq8nwg9zk60gjd9vcjvxyc0xaldc4304nyihfjxfyd00b";};
 robotarm-63116={run="10xlswn7bkad45fyv9j70pd77319mynldwk530y23lc2874s3yn2";doc="00qwsv5vxidjzkm31v21sbzd6rp1pvz2vrs66gmlm1xbfsv4kd0p";source="18zffnyyhc3mp8xpw7bc52q29z3skqfxg6h6x4b18mi9jpyd2x6q";};
 roboto-64350={run="05ynyzlrnhn7q95ld1midxdccc7kv209p4x53bi2n8rsjmp9sp39";doc="13aqrvxs9vhy8bpm42fx1i47m0q80pc4zm5gh2bllrpgpqn9hbry";};
-robust-externalize-68842={run="04m5bnzwfpfqafcqavcwdmqzk1yi22hpq3wrh1kiy858dlcxwnmi";doc="1wq6m2z9q58340sgkf1gvns6n5wxb11a79kpmkwmh3zzz0mjkp9m";};
+robust-externalize-70605={run="0qyx3acc98kwwff531xf0d763zc41x1r716cnf9j3h8mcbm0wvmb";doc="1qgxnwfjfm18ss4lf3lhsvg1yql6mgvcjlzmdyq7nr8cgzp3mkxn";};
 robustcommand-15878={run="1vxsxdg6122psbplm22l7f193fv7rd3dadcg6ys4ngzy957acvig";doc="13d5rsj95yx81bfbansh964dig4hjp5raxagzws58f24l8imvfzn";source="1zgnyglhz8i6hgzxlj19kdw31z9kx44zj2vziwkhcpr9clxl8as8";};
 robustindex-49877={run="1fl9vr5mynjg8w74sk2jh8vgj5yjpmyhyr107iblmcicgwv1sd9y";doc="0xf592xvmh6xmw08zwwcsn9xyadd9637vicnz95fbfpp03p9qjnq";};
 roex-45818={run="06mry55hqrakkc7yb7b174cx45n0frk3isxw96p4v77n9pyvlffk";source="0fwcb1fgz4kxbgcqm34s5glswj43wzg5j56ak5an39lsw0wirs94";};
@@ -3370,7 +3393,7 @@ ruhyphen-21081={run="0pizl8szphgyq12sbpgsw25x88svj6vmf8j7ry23hvc9bvjibck7";sourc
 ruler-54251={run="1ikap9dkdw9lzpda0f2krizqbfkyjxvyddils7clim9nhg77aq71";};
 rulerbox-50984={run="0srxrij0sxvm04n6zk4vq4qqmxbjz3v425nx191z96fpjcssx2cn";doc="030wrw1ry800yixlgb11xbm5834njv3ad9gl4jv08x1pxkj29vcp";};
 rulercompass-32392={run="0ky611n65rvaii9b5ic498p7divfm71h843bv9h70v363mki9a0q";doc="0wqgnb9czbmymzmv7j48lgdv8s280id5sh8mwv6p0jqn69zcpdd8";source="19943zfp2rm3gdm6w5db01w6r1nl0kn4zkrnnxg4ic4n3gvv76px";};
-runcode-68223={run="1487x7a2b6wbsxmngln9yzyyd5a38ps069rmk95nxam936ijknjq";doc="0blns23ww5i2435sd6pd02dapqjbxq5vqn6dfwhy3bqnl199dl0r";};
+runcode-69471={run="14kg5vn2a3p75fqdz0qm1xjg1nyvhmyab6zp0dw57qxxnzbpf1sx";doc="1s421jdwwvpbi7qkgdv7y6y697d7wfg8d95y78113z2p2582zhrd";};
 runtexshebang-68882={run="0c4rsadkk9vxcax1r0c0mz30krw387da9ildvjnh88ll7zgxv7xx";doc="1j72plplkdlazbqhpnykwl5fbszr3lil3zg9a91aih9nzr662vrk";};
 russ-25209={run="0jr0x81xc1zi9vhgvqy0hcga48nhkj9z2n4rd5303b8h68n92yfd";doc="02dl5mh45z9n2b59clcqnaj9fsv79jw46ph3303mlx7plyvdqj8z";};
 rutitlepage-62143={run="0gslb7lkinbhlqdgp8pb60h9x6ajypb5991z17p4d0jwifz063jk";doc="11h7ppnimbf6znqla0r1vq8six0ri5ihzd82dj66hhh6ic5pq9bx";source="10k8l66sjzdfrg6cbslx19a8nrvw7w5xaicn78rkkf095pyh1qpy";};
@@ -3406,7 +3429,7 @@ schemabloc-68445={run="0vc9hfg5gn0xs9gjv3c4dlrxpsqwp370y1b9v9iqlncglmjcglfy";doc
 schemata-58020={run="1idrxgfzwcy31cdw07f1axv9qxiy2m2j039rj7m6gqqjwnzpdyfw";doc="0wc4vcn0gbwwgf5c7cxcb66w66yl4s815d6m1cj3dv2mcm83cjyd";source="1qblgn5msrnnaap7w1r6szdzphf7dgij48g0h7cyj12dxy8gm9a3";};
 schola-otf-64734={run="01i19k0xhha76zz34ccpq83lgnjw4x7p511ssrbdqmfgrx5q0gbq";doc="1znflqa3myy4x0m7ayg3sk4z7pja5df1jm7lkashrcrr1gjqcdbf";};
 scholax-61836={run="0is3py7zig7whp0hzga4d4a7kfs4h32w1irw4gmrjb3cqndg8w8s";doc="0m73qqh86cpgrrxw8v2nz5al0x850danniqyw8359bl26r8cj6wl";};
-schooldocs-69238={run="0nvywxnknaindq3lfdclyqhna4xczyhldm40g287d8kka7avbiy6";doc="092jvfgy71nl68ljh3xd17z86q03ghc8w7h6r2mzrx2n5rga7z3p";source="1wi1ya0kg1gn6v9wbj9c1f3mg70fjkfg3lwciy7vgmzskyfcragw";};
+schooldocs-69659={run="0b5cr9r7wsd00xih7ldgif98qxgw73swis6m4k8a7mx7xa94qll9";doc="0qk4iv7jd5ww6dk2n4wnwp7jg9s1ka0xfi3g9qc6y52f9h4blnkd";source="00w72nbz74plnbfkmhw08xwfxnkdxazr5vdrp61phh5vrk9lg9gw";};
 schule-68483={run="0ki63lqw2m5f4q5aal8qz6v8ldvlpbgc72pzw2rb58l56m1lc66i";doc="0xm09ndnhf93vyp3mwgns973dd4pff0jrkffjm2sfqfasc0lvk9y";};
 schulmathematik-69244={run="1dw6six3530vyb4ym05yzx1f7mh14kk9pd7187rlqzn9n28vzqy6";doc="04y8fyn8plnq1q01qg3l2i5hw1rdycsfhr6i170kxdishq7zavy1";};
 schulschriften-59388={run="08dsnba3p8nz3hnzh1sd5cd09ngg73vl8yq1h5l8qcnynwwbrcdc";doc="0vaqj4m0yxbbmqf51s107k28l2wms68w3km801lph4nfz8khaybs";};
@@ -3416,7 +3439,7 @@ scikgtex-66764={run="1hxldpgmp0k6ygry8pni0sz1bkz2mpcifnr7zrsabsx899np0rps";doc="
 sciposter-15878={run="1pihppjlynvdlsin8brrhl2mg2jif3fa1mvsard686m4ar6id25f";doc="0cpyz5n70hsp5hjdja3pl1lal1i2akn7xawwcp983mqfgnp8jm7c";};
 sclang-prettifier-35087={run="164sdqd7msilg6jk1ivjzvv49amji4hb5r6wg51vcxmg069apcr5";doc="07s0y5dfmp26j0ayz2bhksdybpqb4cn439cvyifxillkq277dqk2";source="1y67y73f2whg663hw56fwrn6jhhpdpm81w32kzwc7r6sk79bnq3a";};
 scontents-62902={run="0hl8sr63b1z8slq47z4spl0sikxdyr0im7zf0vllspaxqfb4nh6a";doc="1gapcq60n48byiv81czq8h93jhhmhx41iddynl1mq5j2icq5g6wr";source="09n4i1jqp8pjdr9qrk956vr335cc54kr5fjlcdavxxkrwdbzclhr";};
-scrabble-69024={run="1c25d2axdvz4j7n03dxk83bk9033ik4cqmw7026vjwvqwvp48mfx";doc="06jbihq6m7y7j6ivcl69kyd1jw1hkj1ixl2vsl17bgcp4la8i6hg";};
+scrabble-69599={run="1r5nb64rsc0fp0l0x813f5d1b88f3jm2n8mf0f5scxpgmqg5d5qr";doc="1ixmz4z7h2lin80yr2f8kdq3c7y40amflwbydy8459yk25m70pxj";};
 scrambledenvs-60615={run="1r6a2k4n1h8n8svp40yraxjxy8xbrrj8d5srgz081n2fb7g6qdqx";doc="0ql4avpcccx92n4mqb6cn8g6zbq73238c4ilr4jj5x18afsg5f98";source="04xrips1nk27apwgfgr0qzn29h5nzs1810q66vlfk1qlmka2gszy";};
 scratch-66655={run="1gd2yq2w2v7n3kfsid71qv2v5q1rvpfm49rsk4815pk4k16kxhg9";doc="0jhy08h2v2qf3p8dvh8mz5yqqrdzxnzlx1p50ng7xn88d9ihpqdb";};
 scratch3-61921={run="1in71jxpq9mljn7gvaslsnaji21d43yj6ckzim42fyd9zk48waz5";doc="0yr18cyzdfrdz6vs0slbgzgp82gklrmxh34k1p135g7255gw8k0w";};
@@ -3432,7 +3455,7 @@ scsnowman-66115={run="0xzi49kpfq3n37ryn8p0z8h86x1328az401pmv6iviyw3l4ri0ap";doc=
 sdaps-65345={run="1s9vs9ffjl5i8lax4i5ij7zjv28d75sm7z8frssm1cj0fb0wdq01";doc="18096xagndh28fkiy4sd6nw23vik781w4pybqnwjfy9hfm3h6c9l";source="1l3m01pggyxpnr2nvqnvzwl12lsv7m3lqh7h27l77wnwip7sjhz4";};
 sdrt-15878={run="15p0i40aa82f9lgdiy7wn5vbkbb4z5hzmmr4g52w6jisx8c1w45v";doc="0y1gxcyms3wprp47y2mlfcc68gijyvyc6h10ivif1yydmxq1b2ki";};
 sduthesis-41401={run="1i8rdk8m8bc5lk35p7qd4pqddi3knpq1ylbxv67ij7g8sgrl9xwg";doc="0i7f9zjxs297hx3hd6cm70hkkc50wb1pcr83xk54cy72yqiq119p";source="1j6asblirf0x4f5zp8zbmpm7ak5nsilqf4ksxr4bgrca70vfava3";};
-se2thesis-68255={run="0krn4a0r5vl4iaw0mwxh50h96qgwfwh25b26c82jhs4hdssv8gjz";doc="1sdg6kln5vz6misy8fs14abfvbsrb896gzf32a635qld3ayxb4k4";source="0hr40nj37s4civj4q62c29gdyp2w1yqi8n2ls7f77rfsk32w5czv";};
+se2thesis-70117={run="0qzdj8j9x2gplxjjdn6pwhrn0rrgxnr53pfmnjif76sfpcvb89x0";doc="0kzbyfaplwkbfnbizw2frsnpalkhzch2pm8m89d56fm4pgdxmrch";source="0jnfsjnhp0mf7q4w47ndr27qf9hn4v0djc7yy01vs6vybq9gjzag";};
 secdot-20208={run="0pnimi0vfgp5zsp0iwak0r0j562w59cl1fn3pnp1gwjz65q2229i";doc="1v8j3l2bh055b18zxl3287ardn0ns5qjgbqkj08qxz5ls912y2br";};
 secnum-61813={run="1zpxz6j5is9f2iaj53bqq2m73040lmzn60h9rwp9kzvlafciss7x";doc="0dabcwh85mvq73sqyi9zkbslzbhhns1sqrmvddvy1yjww0lf2q3k";source="1f8dfi9vrlh71bfb1mi2ll0gqcd6jbv5k96jpmvrpqy0pv1i2ckx";};
 section-20180={run="0rqlczfl443z7mjmnmndclbjy6qnqvla89s8yqwngzyms4z1h3v8";doc="14d7576idcbpxlw7hy3hsdd41gpiyksb9ajwnn0jm1mk2snzb51b";};
@@ -3509,7 +3532,7 @@ simple-thesis-dissertation-43058={run="16byfnhfd1j14911xs1448yampvvplxy8l54by4qw
 simplebnf-68959={run="1bcg213dww4ngpafy873ralbhp901c6xrsnvryzpgk5jrqw2d2bj";doc="1450ri57ci113csq9z54zj6284s8bn8rsl5y2xidl76rz9hdidgv";};
 simplecd-29260={run="0d6gw59xd1mqc991yy6k5jva88j66pd69k5sl5jrysl4rw1mxxng";doc="11fzk8p911v1myphghzpmkj7k62vk4sdicirys1jh8rd2cpnnwcl";source="16g6fcsr0nw7isqimjq29g0zyf72z11qx9xz36zq8z4khxsl09ln";};
 simplecv-35537={run="0b7p6d8y7xa8xs9i2qyljk2s992gprsr3a5pjalkkssa5kiz3371";doc="02x3nwmxdk9spx5crlaw1xdqlwah04m88zrrw4wdg0qjnhvv4mvr";source="05ikxmvflqz5m3qallwgyncda49dzq4fibllgc1j77pdh99cy3vq";};
-simpleicons-69396={run="0qb0mr7k1fypanyw0lhldmqnxynj7iymmyn40yy5j8nzfxz44c8p";doc="0h2qfijb12yslabq7yny5cmhlhjyglg7w1dwbn3gph2c5z7mlqq7";};
+simpleicons-70519={run="0cb898rxxv36nlycmc5njnkpf98mk05vimnhiq69bc30k43jjap0";doc="1z2alswv6c1qykmgbnbz5754sv99q7kf17i2m4z3djmf9mqb9j48";};
 simpleinvoice-45673={run="1mdc6aij1id1jxlbkwfdvdv87yh55v5qyazfciffpbf91qm87z0s";doc="0lvk87l3xafl4s303rhmksfajnw77qd90yvzhdk126dp1prh7i6p";};
 simplekv-68439={run="0cw7n0skxgxgar8ks5nlcn70pyi60zi7n2crdbamfw3kgzdqhqsl";doc="1hqyfflwjdxmq289ngc25gbjm2mcvwxzm9sbfp06xszk2vhbjd4i";};
 simplenodes-62888={run="0rdmcmj583i81349m2hwdf0wl4glsfkg5vkmhlvzndh0n55ivj3a";doc="0sg5xs96agly3r917fvbs8mxii7b3l9hsqf2cpfpx5gwdlmwf0d3";};
@@ -3518,12 +3541,13 @@ simpler-wick-39074={run="0lm22wdxiwasv4igfsyjfi338qc7m985da7a9a6q8cm63hks2alm";d
 simples-matrices-63802={run="09kmqq2si98yg3ddnlkddn5gjlvmwd8w78r9d2xvd7g28wm1hjbj";doc="0zbg9ppqj6af49braf4hd9b0fklxjmsr7yjgbla6ckbkwihkqssc";source="059wa3qyaxx7ha1xw98rwa9w7v5nyhq5rfmajhba1crnp155x73p";};
 simplewick-15878={run="07rzphj6ffla4qz9pa31xnn25d420lvsnmgj7l78ryxai5amdfvw";doc="1ch7yqh3bv2y6282cgvqzm4pf5hgpfvlmpg66zcp44wnkq1sw67d";source="070f0zrnrf2sh0dx5dlbz6072b76f8iw03pvywhyryfgghfdfv7d";};
 simplified-latex-20620={doc="1cgf1p7p2ikda1nb0c2vhhx7ai6rd973pz6a00pr9yanxsvghp6d";};
-simplivre-68376={run="09x9c7z98sdv7zw9kqysw4wcfg3x76rn2y4fjwqwqa63fwy9ky9x";doc="0m5bxr5gflag1kv1c34jk78lsv8d9hsyqw6i5yhfm3r7hb1z0ki4";};
+simplivre-70317={run="0wqzc5ab1pcv7vvs7n3ch5bcbpmgi791hr11axc94daglmjbprgw";doc="0isjnr5xqf5phv9ysqnr4mxc983k4vhgikb7gl1c6084b7kcnbc1";};
 simurgh-31719={run="1nhdmdi6qbvx1nd92hxl8vkly82a9nxi7ghj0zpm31c15z5pb7rq";doc="1cw434sxnbgq5dbaidn3zn8i9az4q35blcx9lr6yf3m0yy2rl8by";};
 sistyle-59682={run="146493bgh2ghbscq69bxsngjfkl3k8g68cy5j28v07lxi3ywr6n0";doc="05hs1wd3wj8szj16wnmjfiy0g0hxgy2cc9ai7q6ys77kgjb0dpfp";source="0sb6vbhnqlixrfy9484d8im3vmgk58y7nqad9hm2gkd4p560cxj9";};
 sitem-22136={run="19z6zmwriwrlcpgdgn5yl2bzbz0fkn3p8g5hrwd368bq7wyfc8mi";doc="1wwnqhl3ffqnp5qxddicqwsr7515g6j53rx1rgi9b5z3cv42f5qj";source="0y249krv2h241wy8xbi5xjrxypa56zipi8fbmqbziw9cjjnz993v";};
 siunits-59702={run="06x797504p5lzb3xlkri1sc9whyjjz6a95gk8kvpympglm8fmpxz";doc="06saapj9rh5gbrj0npb9rm60xrww8rl1y5brvx97gj4qvc3i2pic";source="1clhfsmydg2xjajak0ssa9v5sd3id957si5zvyq3njgl9cpjwi9r";};
-siunitx-68844={run="040pclva6m2300m4zrqqdd1jm608yw3rpldf63scmhkxgb981iil";doc="00j5b599s2wdizmhk8rr9k1894nffa6ynaz1wg6ccm8ndzsv6kp5";source="18a9xwb1zaay0mv8b3br6bg2dm016z1s9zbavalz6psr8wv59lj0";};
+siunitx-69922={run="0mv6ysgfhbjsn7zghm742jxxpc29q3zq6j1wnziq8mv6zgzcgyl7";doc="1wyw34vvbxmp4b54ld50kxhcgvs3my0j478kajr1x9swyr852s67";source="0y91wm6lykalibx10jcn4zm112f815ma3pxm8dz53mgrd8gbnb81";};
+sjtutex-69967={run="1l72xn9ylbv0syxbn53ymifb6m7h7bifh1s5bq654knxpqhql9dh";doc="1wbf0akvfzz8xi8g96bpf17b7xyjlbr61dwiwh5q127885gwlq03";source="12fw7j3h3fpn5x9cbr9aivldlgizqhkvwm2r995wlw6gsh8way66";};
 skak-61719={run="1lh97kc1hmz3ybb67zr7vr74z1zngwl2cppkhmp9cagm48j24am1";doc="0abiardppn7hx6l5h4zh92b9m2yf3w16y15rcvsspv1cb9sf4lfw";};
 skaknew-20031={run="14j42hifh60p6glfp24c2f5k9k34vcm0l3alqfqhvv68l31i05rx";doc="0i144akq7sgs6kwayl8c2yir0kc7czjs49vj6l5lwdcwbyryhh21";};
 skb-22781={run="0k441znw2bn13aiyc6b5hskl76hbhcpilc1xg4jw837dbj2v6qiv";doc="0qi7l9ky0y65cmcp32j93lhwlvflvz8didq9c77faq7ffgzz51s8";source="1rnraidwhkxlhk09ppa5k0ndqhrra4asbpjwv2j5dgf70wfm5vmh";};
@@ -3563,7 +3587,7 @@ spalign-42225={run="0wy2kliv3mrcqvandk3qbbqjbri6xq69d5jsi80l7qdiij86z3g2";doc="0
 spark-otf-62481={run="1z9k0dnahkq2nfqs3plpyb3fdj48x8vcav0ahykd554fygv5h4x3";doc="07pq90xx911rdjdyr0sxg4zqfg1yb5kn43xc5l6hn0y81m9j151d";};
 sparklines-42821={run="1mb6c3mial9ashhvmjhynczjpb462j18qyy2an4ckgwgc46pwhp3";doc="03j6xdkvsv5p71bifmggf69w3s1n7758yii1caz9p9bcqmqbnrk9";};
 spath3-64818={run="1w91n8mq9bzf7fwfwwhpqn8j5w7plc4366a5pw56x2212n75pzh5";doc="1gy8n6rhxbqf64gh4xbjvy0dz484vm53ld3i6graly3qzdrwkhdq";source="1gy5p59n76lh0k961cysc3qpnnhppbcd7dmspjijca4fx2v3ckkl";};
-spbmark-69350={run="1h76dvirbiqbn2z1cki5ya8psialnp2lhddxsyqxa6c2k4n128zk";doc="1k8bip2v32gwqyvsa6jrbgfkihv0g5sh27c34fgpz0g65cpzpxjz";};
+spbmark-69927={run="1izn0xfdc8gc3apn2z3f0593p036mrpcdq7vb53ygavx9qdyzfaj";doc="0mx9ggr9zirkb0ddqsb9xak32vyg987ddhkbkzhk7xjg2q62v0lf";};
 spectral-64528={run="1qjvxyjxm81j3cyajki6jv59k6y2m8nv9kzhj45d7i56za9klkf2";doc="1x6sixvjk4sk5r6x3pgppynsgp139jm3cc7bv83bk55757jjd8j5";};
 spectralsequences-65667={run="06v0sb1xa28biv5ak6nprdcjzjdm0106rmlgm4if0jgmax0hiqpb";doc="10limf15cp1bv933m45s3vdvxwzbpd5hard4lqff2x8ay1h0n1wd";};
 spelling-30715={run="08zkbw4fdfmfz1pxcr96xjhrs8lfbf6sydp8crp8110fikksjv9i";doc="1wm6r4rhkmxmc66zx9nvvdmjaarx789c33vzm26mbd6ylv5qs1is";};
@@ -3592,8 +3616,8 @@ stage-62929={run="1wdvq1izp0y8b7mzbqql3fc9q8j7jkrmm4ynnk3h2zlg24lgi3gv";doc="1ja
 standalone-64677={run="13bp2iyfnpyflps370mzrxk1vkrybamam1f47ws4cafpz99nvvyr";doc="0waw4vqxh6nclh6kp17nhb4i1hpckwraf5clksxvzgiv25cxkada";source="0a4k7lx74w035fvj5q6mnzpx18jzlghz3lavhsl9ssqjb3zqmar2";};
 stanli-54512={run="05mq6zhs6x5qjqk58gwws9lw3p876bd1f8a5c2jvb2azjl7d9r4f";doc="091knxhx7jsjiv4ip0z2jbazvv3xmbvandbraxbipp4zqqakb8bj";};
 starfont-19982={run="1bf89j0qqyzih5w9ban03k85v8ih0d16sil1sf7smzmqk3nhmrz8";doc="0rjx4wj021ri26zxdlhkh71q3d0ygf3hvcqghq9fwkbi0gnig1r1";};
-starray-69002={run="1dh1n0z8c1g9060mjr8qi7qcq4s6v86c61nfis61xxj9606q5xlc";doc="11d8y9yqvm7l5nbwxpakj3ybw5v8p7vm0ccsnvib9cyivy8vqvbb";};
-startex-35718={run="1d6c54hm9jdi882srj87drkcxm7lldb4g60lbic9wwzn9kpa0ynk";doc="0ikmb30ndmj0yhzxy9mba3kqxdc5f8i66sji51ihjcrlplj3jk73";source="0304dzv4nzlcqi5k1gbfnx823xaxq84ja4gwh7qg941q152y7w9n";};
+starray-70604={run="1gkqrf8k701pin6si2lmri0a0jml7hmkh2fhnpkn9vq54wkyjbwl";doc="10xza2ljipqp5cq8nv26dg5y5xw9g56s9r51ljpsxk0yxpi2pxwr";};
+startex-69742={run="1d6c54hm9jdi882srj87drkcxm7lldb4g60lbic9wwzn9kpa0ynk";doc="0ikmb30ndmj0yhzxy9mba3kqxdc5f8i66sji51ihjcrlplj3jk73";source="0304dzv4nzlcqi5k1gbfnx823xaxq84ja4gwh7qg941q152y7w9n";};
 statex-20306={run="11qpdrcszbsrasbasmk6h9wg5r2a11pm116i16h7mvw73vjaq76f";doc="0dkb7c7wavn3qgndl0g8jpkx1qr00c3iwp6d0r72znggl4cznhsd";};
 statex2-23961={run="1949zszdv000dw1dx1jjznbd79q73fjiqnkq2axdbxffh47ls1dp";doc="0fkzbs76yfyygscazn4dgphs8g1byzg9n3fbdg6pizzncirbgh6c";};
 statistics-67201={run="11szmc6f380si38il9vw78n30yyfmmvgxpp8f8p8kzb373d3hs9f";doc="0z8mx2gar2fn97n3x01dw23l7r4ckqwgfksgmfdj7vhgs51wsv16";source="1dkz9vdcnadd1xd4k9i37a3mpn1bwm4zf3c6bg6rvzxaarrrci4m";};
@@ -3627,7 +3651,7 @@ sttools-60736={run="1sxdf55j0g6gm2h486i023axk2m5ik37ndayjs5zxxkj6i3sh4vw";doc="1
 stubs-69128={run="1p454rfdp2v4zq3vx1716x2w1cr1a6dkcwnj2hx7w2jn8118vqkb";doc="03la45gxcy1l1qik7kgcb518n3yvzwgdi5x3ffzfpj4yp2rq994a";};
 studenthandouts-43516={run="1007rr5m0lbfib30bkb21nvpq1h7didqijg6jsbprmkgsz1xfdkm";doc="0sqfqxypkrcyp8fc60xsb1v9nbw7h1xrdai626dlpknhnm00kzmj";};
 sty2dtx-64967={run="1nrn2xv4r39qa2glfw4kalzdh5w2zlx4vaw0hplnrnxj8lwmpb9m";doc="16jpjskvsk51sz0j503z4dljwzd1ymi2b06z9lag8ab5iiyhm80j";};
-styledcmd-65262={run="1l1rg9456g7jk95kx5c7l1rz738b83vqf02kxq5n994rzxsmz0kx";doc="1fs253bda40z0cf23zz2330js8f0cg9f9rv5mrp09pf0f13shvxi";source="064czvwrkssjgw33v6lv70znbjb3q0shp2piwgia2p2lazimxrrg";};
+styledcmd-70496={run="1a3k6nxxdq1k2y5q60rq34iys8yf64c112gr9knl1yd7rza24cpm";doc="12z3l8psjbyraz0phjylnjl9ghdngnbid7427nffm9har6ppg0hr";source="1gwrrwfs80ssi9r2b39js9fnfy0kqsi1xs1mjjx7rj94zj014bb1";};
 suanpan-15878={run="18nzb8qbs7q233f68983q6988inwc0fm79clnpfpr37z2p7im95v";doc="0xria0g6qzx528dgwb2q23l5iqjzj8xix1215ciz5kmrp2h4fh7n";};
 subdepth-15878={run="1l79nf05yrvpzsbsjyrvyhsc4kx7dfbvx57qc1ymzk2zphnfw4fl";doc="0g8apcawmna380iwys0dvshrdi51k50gavh8wgwybcvfjib82h4w";source="0ac0l63sisx6ry7m3qlf0f98dn7gml3pfxlyiab8664cv43df2s7";};
 subdocs-51480={run="1mc1zqvqpw5ln494c6afx88gigkby4zlb5i4gbizs75irgyrs01y";doc="05m9pcg8dhk8rayald2mnzl0wa7z3w8znwzw2b9ifbxz3cp5k4d8";};
@@ -3696,12 +3720,12 @@ tabu-61719={run="1x22myjp1rpg0in3jgjj4wy0xyva8xd5hsy5c1rqqpy67wy83k0a";doc="076i
 tabularborder-17885={run="1p7iwpalamif71mrznbmsig5g9lxs3l16dcpwj2kzhiixsh78vfv";doc="0rd6k4b00aj398hy247x84jj9c3d0dm00xnaw69p7wvlprzricwc";source="1lrvp6128j70fzwqr61nnwiivgllbbkw7pd53l11sqzqwzxppgi5";};
 tabularcalc-15878={run="057720z8l7ss0kpkg7l16fc2v82xr0wqlxzxbcak5m3hl5k03g7a";doc="0539rar83mprammyilmclcbjxr657z6q2xmmwmlik990imf78lqc";};
 tabularew-15878={run="0g9pbr0vhhjj2lz9bbgwvm49wl8bdwvv1jjggq2dnwwqbr4vc4p8";doc="1ff62dxvnhi4q1gy8f7qhc0zz1jiayl6f8j96dp0rz38l2is7m86";source="0sfpx5w61xrmmgip0c746mghhj06r2mn2jmj56zingymm2djiad1";};
-tabularray-66276={run="1alrp56nra7pcxg1km7p8km679dkkqcsj7m85r5wm091qk7gxhf4";doc="1jkhrvq0xwr5qp88zxj888j0grj904vljvfahd5azys05n3ahv33";};
+tabularray-69926={run="1mh0f8klal4i4wcj2gq4zg7kfq61q3hhnd6myw1wfm4ig5gmx4sd";doc="1xz171qjrsb4dld25haa8l8phxv9rxfjplr8gbdi2ypch8v86g58";};
 tabulary-34368={run="0z57030pg4pfvghjii8bgqba589cabnj8qsr9w1abpwp3pfy4zbs";doc="08r21q2h7sjrk875x84lngcqgiy5ijik56ly7g7wyzhq3jyxds0f";source="0lsdypidawyhzj73c3yjs8k4xy2sds7gz8gazxfy460zndsz675m";};
 tabvar-63921={run="09pbsqa0a492j6ijvi25zdv4ic69wc8ngdxll2gr7wgh6m9hsrq8";doc="0iv8w8jvq05f6a1z7n29c9cldk499fd9igryv3c93g6bgq2hkzks";source="0bw2a9rgij2xvz3lhz6gya4vfsjn41cn7mg9mkg728q4vbhg19ms";};
 tagging-52064={run="0sws4x1h52cd313apfzydqpj6c8xrb8x5881cfhwir000n48crb6";doc="1pv7savkzm6jhaliw5ilb7qmhlj3iyiz2w6kxchanwrg4pnqabx7";};
 tagpair-42138={run="08qjcwyjs90sg8agmpmm3122h20898hy6dwkm0lk3dba1j3w5drj";doc="1dkn4gq6zxfqw9h64h7ggkbyrk9vzyax8gmnk9qk8dccdvf5n2sv";};
-tagpdf-69165={run="0lh32csbsl17wvp9nqfkh07sqb5kqrlgfgz8w6asndbsnna01wih";doc="1jksjkym9cj28bgv7bgl5i2dyng0ggzlnqxwr23gv739c749gxxj";source="09a16y2mgyj88b0dvvszv1d6lw9ji75c6rnq4wd1azjz0k397w64";};
+tagpdf-70259={run="1zf0py07f5zi85k9i5l2ac6j5igqzg304byvskcvx5qsmnz0xrjy";doc="0j0yvyp7djxiscq9x1kvlapgw399lcq17c45r3rpqy9xna2x3rxf";source="0xr5jjr7r650fvf4rahibr83h0ylnnmx04gpjq8z3xwk312cpqz8";};
 talk-42428={run="0i9whk49bahsm2kbj53pjdh3fpg1ixfyxmfvcp563ylr8j2ibimb";doc="0rgil00i39p2agz9fybg0h3xmpq0wxcpjcqpbpzjw5lcf4mpcni5";source="0kdrknwwivyxiyn8xqappf3k5l1brkwkkhjqa0l5n0abzafkjcy9";};
 talos-61820={run="0pffvqdkhmc0adl7g1sfckgwwjsfgbnf03jfry3yfq6za6mk05d0";doc="1narnqgf3221fpf66w2vlw95cr17swbap35lvb7dzviyad0ailcf";};
 tamefloats-27345={run="0mhiz5lxz0szi8ygmajjmldz1bjf6f1lpyxj3b9zb17h9aw8gr4x";doc="0s5cy9m8jpxh81c10fgdvn8wy7pnv7sa25hy8wbv6qkr1qwz8dss";};
@@ -3711,6 +3735,7 @@ tangramtikz-66183={run="1c9in9zdw7ixanhj7kgrdsrv6iwvjy02b12lgq0k3wwllnaakv24";do
 tap-31731={run="1ci65i2k6n0h9lklgk41sdq4acp5655mps77j9gcb65yk4mdl6c5";doc="0r8y4jzri83qypvnmgchnhrd0yi7j0k753zmnwhzxqg4bvki10gp";};
 tapir-20484={run="0ad1qkbvvswq7msx9889sz8n7wf8iszigd0vmk2yycykbf0axzii";doc="1m5g6bsijqris8r7z2dw3cj74ajcny2wjysq8ql26531z61hj9ss";};
 tasks-61541={run="1gwl8g4a2x3sbvqg91ry577hmpxdc4dgcj9ixhsla25h23jl414b";doc="1pavbpzm6z6najh72z52j089mdg6gqzsa8sb9qyfsql7mndnxznz";};
+tblr-extras-69776={run="0b7vfyzbgzgq961grf1gklpi5jdl24nzmnccvhryjg7jqm8pyyiq";doc="12gzcs7scxb3dg86nq38an5h86hhv9k5bbv65ixp5kkxl7rbjdn7";};
 tcldoc-22018={run="0gz5v5hi7r6wr8qas79lakwr7gnf8d5kypf7cp62qvrybp0ljgqs";doc="1vy7k0f6ri4kbjrhby0napsas9wwlq5by2q1dakbz7r80zr7dc3k";source="150p69vd9465icda6p0wp37gg9vl8y3c2ys3b8f9ij9a88x5775j";};
 tcolorbox-69370={run="16k26jwbhk466h8a09syzskljyg0x2h5fm5f6fmy65bcjgc8ai51";doc="0dal9wv4aryz1l20hbbg6njgy534540vqmyd2q9366a9ydgx1km1";};
 tdclock-33043={run="05w49l1kvs73sxchbwrlfs9n6mn7qshx102gkjk4jslhnw9lc48z";doc="1n0ir0l10p9fai1cssri11bpzpjabpsrpfji6w826l8i3xlqkdkg";};
@@ -3744,14 +3769,14 @@ tex-gyre-math-41264={run="0vqg04im4s6k1sjfclrn855liilgayh5kca774aicifzjgsigs1d";
 tex-ini-files-68920={run="1dzfn0v8v8pdg6lmgfs0q2c0695zndkf4rpl6dckn51gp2i1bgl5";doc="1l1yizfq9srfjxirdwb3hvlj31a72mnw4spwyjk58xwcsjxx3y00";};
 tex-label-16372={run="0flvmmh0lzkwvwksmnb8m4ix6pzw6f18flybkgidkyf9mf0gg8xc";doc="1ppvdq0cj62zk3b0i76lc35r9pizzli7mm4j2zvdabysn0prlyyb";source="0ysjsk73ksninqk2dyrw06arl692x66rsrr8vb4l2ri3m0lyivlf";};
 tex-locale-48500={run="05l4frsxpdmsrbn50q87db878bwpi076wagj5r8kdnmdwmcanr6l";doc="0j9m67n83f4h5yhfh3a51s9yhqh6kpjz8y5vlxhyabyf7rcpybd3";source="1x0wmqsrbgdgy67gln4jd0518cbd2cxp36gqrjrqgn574qsl5cx9";};
-tex-nutshell-67213={doc="1r5idg9ai3bpc1nxwj7jm7kr9i514gvnkz7wq3dh745y6ilqncsb";};
+tex-nutshell-70378={doc="01nmw2lj7dvylfypgyr7lsw1i2b4vlmhd56jyy1grv8hx1rfl0yh";};
 tex-overview-41403={doc="1agfya9rwvyjvip0alvibimz75jivpf19hp4jvlv7z0n9m26m9jd";};
 tex-ps-15878={run="0i35b4pp38d1l5rac059znlkazrcqa62qm8brhdmx7zzkbhyysi7";doc="0kgf7y3nxkw8x42wpc1g5mmmbz28n73vgwd9d6rf6fjpzrycc2zx";};
 tex-refs-57349={doc="1w7hcd3qsdhmb2siakjg2hm3h6kxa90ncsaif9spr4xkxs03ib6l";};
 tex-virtual-academy-pl-67718={doc="1kb86nn5vp1b0sy21aw9wlla1dwlaijppzq7728bmfs5nk1dnbjv";};
 tex-vpat-66758={doc="1y7f87prympxg8av128npsa43cri71jjl9gxq1p04pjlpdjjm0fv";};
-tex4ebook-66621={run="12daajbjblpxvfcsa1b63zz7kxcyaiwcpj0djfj1ycdmyhz53cqi";doc="0rx0wppzfdl7z6zmbvyva9yq6mj8gqhy8m62x0r9wa01c0jlm79a";};
-tex4ht-69412={run="0vy411zwfhgsfjbyj81pgihp3g4sqkmb6cssb8sc7ipi74ckjha1";doc="04z1bsgy3lisx7ifskxzna5jcbjkbwwjlqfwbfppnmjp5rwphxdv";source="0qdman4aan2m1wmsf9l9j9qkc5d0rq5v6ghi7zmflv7jj5v1yld9";};
+tex4ebook-70117={run="1c6bynhvlhil4a9kfqx1rwhh42rdcphi0jl8f6qj0k98xk5g6sjz";doc="0q3la7n6jmry2aw9a5hpi00f40r0i235zgk90qyw66h8qd1pnsf4";};
+tex4ht-69739={run="1al3sj190rcijhkvmrizrac5wy67v3n3fwjkq6lhm64nfc8j255m";doc="04z1bsgy3lisx7ifskxzna5jcbjkbwwjlqfwbfppnmjp5rwphxdv";source="1hvbqk1q6b0qvqvwr5fbvcfh5fklyjgw1yl0nmgar3ysrzz443h1";};
 texaccents-64447={run="0xai85qn9isnrvijw9shhljlkcnvmygni18kw02gsmij0dp9c1jp";doc="02185jla4hffra1wf3mgiaq8lyxh4gxgcjrb5dv3mkrw709iidcz";source="1wqbdmfly54sb8q1y6ms2wg8n62w34xpbfvxvwmg5i4as4a1ycmy";};
 texapi-54080={run="09cnhqn4gxf0alkx0276jkpcsd0myypbn94jzsavnjq8jknp6850";doc="0529cncxbw53km02pymj57iphgziri3d9cj54pqmjqjx9qmgwfmm";};
 texblend-68961={run="12lfkp9qykcvmrafwilyz2vj0yk0ghvkxmmnkhlac57q3hjy12k2";doc="1sahpz1bh883crlr4qicgmx96ncij5zz1dqrm23q4qlg88yn8y3k";};
@@ -3762,14 +3787,14 @@ texdef-64967={run="0wi60appvgs0h5690h8qqvcmsq2r6fcxais2jqps92ryy41s2v68";doc="12
 texdiff-29752={run="1jjzd4grr3ip6gd8xmhlawhdcjfj1sqfsa06rxrpziklwirw6bq4";doc="0f7q7cszy6ca6fmwzi7fn6p72szgzyj9fldvzz1rk3ywkhsnpakr";};
 texdimens-61070={run="0fny36zd88qkcz7k3hdxq2qr41dmk9j88skihls4vwf350fy8j98";doc="1qls1hqs6ypmsg4rqa26dp98m6h7zq18wdg9n6g6895jrmj10qdz";};
 texdirflatten-55064={run="0q2m138gpk9cvfp19jvsw746mkxa613c2204qfxw1bxw8b454d7m";doc="19iiznql82a34d2yhzqcp339zszbhfz9fh0h4mb11696mj8rx3v7";};
-texdoc-66227-tlpdb69413={run="012smkh6bm7rbdpaf0w38gakhqz0s7hr25gi2cf3592imk92qlxz";doc="1xh39n2iw8zlfncvwlw2a0lbxf90awf96z5cry47dvsz81k7r6si";};
+texdoc-70583-tlpdb70616={run="1fjaccq12gsax9ka0bkisrbwnflf91lrjfkw7l0j46gwwy5cfabn";doc="1xrh0kcwfflhbq206acljpcbla04pps01igdvqmzzfl6dyybgjgq";};
 texdoctk-62186={run="13j0c5m12if8jx8sp7hlirz33y6l2jk8lvnms7dalz52mxz8kq4h";doc="1k41z2lbfjsar5rl47xnk1adbcnnb4w97bzbgf2rnjhimd1gn9hq";};
 texdraw-64477={run="14vg45kci5pffvwdqnnb0dv3fznfaay3rg0fjiwfill24ifms14s";doc="0lw37yi82ir8zn2ii2x88f871843y2was3xwp7p06wjanr1jwc6h";};
 texfindpkg-67027={run="04igpv1y8gw945z4abb0wi959wq9y0xwzk7ymlr09qs8zcm0xv6q";doc="0gddmzndg4cc69173ssp4ncz0mmcw575fffanmdxp7y5w7ggrxb7";source="1vjbmin6jqv4k7qc0l8gd27z8gk6p87pw35rgqp0f3h0pf3r62b5";};
 texfot-68110={run="1yk59iwj4wylhagrlpasy5s8x24lvfab9xg8xz2hz8d3khai1qzd";doc="0rqhyyp6da4fkdfqa1c81jaryy29mdgm2rzml2hklp1mkxkw7k19";};
 texilikechaps-28553={run="1z9nvv2y2nzpkpxyf18p426wcl0g6gbg7qppq70b285kdbczbijd";};
 texilikecover-15878={run="04bljvhvmrxh1a4sfqw57yysaw03c5ldi1bq63mlqqvd9p3hmyck";};
-texinfo-68342={run="1wwzz52da923022bg9cqqcwny33qsspf9hfaz1zgrmxw5mi2p879";};
+texinfo-69818={run="1ds5vf98gzfqxafil4gsfqwyrxaha0cd1fx5mg76bw9y9xjzpzsl";};
 texlive-common-68510={doc="0l4yicbx7n787xczpg0lwsxlq2cavhswb0w469gc21va59lki3z5";};
 texlive-cz-62854={doc="0wkf0g47wj7yqngxmy5cvjic2gcgy31pry4810cgklljn7pqffxp";};
 texlive-de-67108={doc="13k76mqf535l8y0pk5vvzirnicxajnq5kpgywp2f35vks362a8pl";};
@@ -3778,19 +3803,19 @@ texlive-es-66059={doc="0crlg0madfm3gp54rh4jm0q1x1l7mvn3l82swhdxab3pl7zwmq34";};
 texlive-fr-66571={doc="1d48jxvrz3dxrbfzj5pygi2gd9bzjvrch8728pbc7fk7xbimkafx";};
 texlive-it-58653={doc="0vmwn6n8bxpzcfrzic5qg5k2vklbm6rhl9861zxsli0rd9396qn6";};
 texlive-ja-66482={doc="1sbv761vh7a25lpk1h4b2ar6w7cqjmafv1kbl8dwd47hnsjd7xk0";};
-texlive-msg-translations-69346={tlpkg="0l0w783z2zbb24jlqwxjjiwmfbqys3g634ymk5qhzck5w7wcwy6a";};
+texlive-msg-translations-69796={tlpkg="1v4s3zgxs1k0qsip474vv16vwcmqn5d99iw94jc5rf4cm6av2j81";};
 texlive-pl-66576={doc="1id4kngpwqs53zn3pqj0hp85yf6rvha17dyb4s0m8l66cj2rzyn0";};
 texlive-ru-58426={doc="0c77yyfj87fajran8jppj0x8krk6b5195iscpn8z2n94spz2fcc9";};
-texlive-scripts-69407={run="12y5mpwin93asvl0anqs170zixvb29vjakwgagvylhg1ns27lrdc";doc="12all49r6n1yc3jxpkc96gx17g5zfbimwfmb5d7s55vl1c88zmxp";tlpkg="12scd4svhgnvp65wkv3kd4iqppahcg3229s4qfkjwm3jb1zwslxr";};
+texlive-scripts-70585={run="0mgdiqqw47ydvyj47s4mb3bg5drm1x6ax47dk7hdc3ykgs1vz911";doc="12all49r6n1yc3jxpkc96gx17g5zfbimwfmb5d7s55vl1c88zmxp";tlpkg="16gyyx868k5qa2ymiyvb2gf94wxpnswymfbn1jd6y6wngwqfr3wx";};
 texlive-scripts-extra-62517={run="193v0r4i3p4psn5b4q0ggpgaazwn6jadjlzh5gjm3igg9k73i1wj";doc="1izzy295pmxrg0sf2szxxahxm6s8bfi960mbs9z6vy7m5j1szxwl";};
 texlive-sr-54594={doc="0icavs9jkcr5b5cx5kv202k95j0ydgby9lqrw8wm9h936mbn9bkj";};
 texlive-zh-cn-54490={doc="1r8n9k1cy7798g1rg1hyj6g945j9649c5hhqf8hm7a7abzx7w6ll";};
-"texlive.infra-68903.tlpdb69413"={run="1ig9nsyhhgv9vr5hhvzj3asqz75fdjrvgyj1s2z8rbng0y45x8nv";doc="0d6ij3bgna15i5fkg4xwi7155wz891625sy6qh4jfjmi9sda9p2n";tlpkg="07qvyhgbbl4cddhn4wqh1ivp1ifpw5hwv05xywl62zc1swag317x";};
+"texlive.infra-69740.tlpdb70616"={run="1kg4k7g1gq51yv9h93jgpdlckfw4qgrxq9xgv4cwzjrf5sj58awp";doc="1w71146z54i79bhgz02m7z3gjg5zyrqhc1hmz9pvk5mynqpjwrji";tlpkg="1azilfqqz4wq82yjx8aqah1fvgmksw1v3v9pgbya2gqgdnr5i1c5";};
 texliveonfly-55777={run="03i9pzqv2dz4z9nlq60kzwiyfvzhhaalhczqa9146jp4wvcib9l3";doc="1fsabzkbcrk42rsp8ssx0kvap31y1rqnkq582129946q3njvmylx";};
 texloganalyser-54526={run="0icav63nll0lj85cqlbg1lx1r6ysjf1lyv5bydxr3flr1c7yqx2r";doc="1s7952n2brrz3s1qca9r5qk8fnjlmrmrn8b06dhjxdb7wdqis6g0";};
-texlogfilter-62792={run="19sxpfyfp2knv8q13sgka5kw74vplr0fnf5c9m599h5kb7v4pcys";doc="1wwhdm7b2rwp9qjpivj3wflwf6q4lcxbc3r52g9c68w7d492v7al";};
+texlogfilter-69919={run="0qyhmdvzly2y1xbgmi8i9fl50djv3apqmc2wiqgh5q8cn44z3gnb";doc="0khv1pcz0h75inldnmg91qx0pxmkfcz9dbdxljrvmw5b8ql8nv6v";};
 texlogos-19083={run="0rp4l8da3dn6djdjajavxqr5mmi3fsyadcqrpmd9cfggdvb9i8qz";};
-texlogsieve-69072={run="01l0i7naqyjf5nafk0bzx3i9zvcqphzg4wkbnb27ghhwarzibjs4";doc="04r1cj63s3rh97z42fysr27drximd1a27ksvm434aiiqz3niylld";};
+texlogsieve-69436={run="0sn9p9l89867mvwc5n9z4i3rxybm3dy5xws47q99563j1hvc1bnk";doc="0a87y350dxx22ll41i7y7wsdgabvdf0f6pgs08vr583jhzd6ks7r";};
 texmate-15878={run="06hnwj11ify60gx92zqky28spdhppgai5v08l73kiabrryzdn8w5";doc="13d6rlazx3qx9zwbb60z1f6dk64n6rph610s97hha5kpc0v2vkm9";source="0faabcm8lyfvzn5jb7vbpkpa31gjb1czkr0g391vbdmx9lrllxar";};
 texments-15878={run="0vhwraxncqx74akzmjcww4akisn3zjgi5b6ac8c350flhl0nsh5p";doc="0xn17gjnb7n3ryc28p8vg2hshcwa660482pzm9byq8k6s3a78yny";source="1kq5zw31sv0i87h30ahyasqy1qh4m36f0j37f8532s20n5llcq0z";};
 texnegar-57692={run="0qrnysss751vsbgd794gwh8lwrq6gq09p55qkkfngc5ly29icx9c";doc="0jidhqlklr8yd48san5iyy3i5pxg8lygf4xi0gcp3ps7xcb0m5g1";source="1bayaa5vffnkmvdmg64q5rsnh69grr8qirwd41mlfi9symh9gm2j";};
@@ -3800,7 +3825,7 @@ texplate-67201={run="0bh1yhs28wzagh7i3sraki8ygd1kikcmalqvksilmb7j4s5c0hhl";doc="
 texpower-29349={run="1w1yn4is019rjnj137ckmkas48xblmhpn0gvp8dac2hmsvqfl06f";doc="16j3xy98k9hb3p7bg9inzqmsl07csa6lx1lgym4h6rcjh247llqn";source="0nkbapkzq4knxhs63fiqg0rcxyp72vmd35jz46dha87s2v5w2km5";};
 texproposal-43151={doc="1yxb3yagljsdp4s07fzd6498889i7cscch68fb77jbfc2z4srvsy";};
 texshade-69371={run="0d5panq1z0fpi7rvwp9p2pahd7vlb3skgsw9zq4rhb9pirawv3v7";doc="0bvxfpc2v8hph04kn8a8rf5995awp8c3zc5r3ddnghcidn83xsny";source="0ib9fs5391pjxh8p0c6bzvxmgv03y73qgdpjdzyadbhkqj4kkdxw";};
-texsis-67930={run="08sn35x8wab41mdv67ra3hahrsf4v4brp9n5z0l4bk3k27rl4q0m";doc="1bgngwqj3kkr196sp8i59yrkqpambijr4a54jfrgxb6595hiadsj";};
+texsis-69742={run="08sn35x8wab41mdv67ra3hahrsf4v4brp9n5z0l4bk3k27rl4q0m";doc="1bgngwqj3kkr196sp8i59yrkqpambijr4a54jfrgxb6595hiadsj";};
 texsurgery-59885={run="1f2m8b4xjq38j6q86pfa4m8f7z4sqyfblxpkkljppiz66cq9gnpy";doc="1zpilg11flz7z6pk7zhpm5ck39avh24na2jpl4asnnznaf5bzfjz";};
 textcase-67755={run="0rkhw4rai08n52ak4acix224cwj9fzpl1m4qcxzql9cq0h51rn2f";doc="0hw7q77pn8nx80qqvfz333sn1dpx4srf5xsv8vpl6q1akhrk5f84";source="1bxkagbkl6pnlnf9ibs0ics3p5nm9dghyfq97bn32fv38jywlswl";};
 textcsc-67193={run="1zx7890vdwghxl7g9rm9fcj0v4h06sdbhsscwyp7wjmf35k6awm6";doc="04gh3w1a7pnw1zja7gg01xda0f15s1918v5m289ax22j4x9g472a";};
@@ -3927,12 +3952,12 @@ titlepic-43497={run="1pj4mavc06r5ghcvyjjhvn7x2xrccgdfjr3961al7420ymaqb726";doc="
 titleref-18729={run="1y2aw2m7jg7l9vcr35nd2qpbafyff1bc8acy2cm9k7fcjm4rcr17";doc="0rv9hsx5p460pa3ry50fnrcb0kf08rzdl7bq47n5nhm8frpmczad";};
 titlesec-68677={run="0y27npwraxaryl2z7mv0fzkdci8whq8jz7b2xlk2n31slbfvksb8";doc="1yz5s63bbpkiziwggqcal266444nm03fnr7kwan14gswmqqbkav5";};
 titling-15878={run="15iw3giwxg658pzb6basjkp4v92m3qvzk1fcarnzikc649bjcbch";doc="1r75nwakbkwf32qva6icp3pq3y8bgfl6cqw304lcw8p6bih74y5j";source="1jdgyn9zyf5rwbaz004g85rr2jpd5gi5iyn111s0r22ml41ci3hk";};
-tkz-base-66115={run="1hvk92fj8w5lnwi1g16mmgdkinjscpcxbhf0n37sn8l3kpl7m9p9";doc="1lhg3zrhxhzrzav52293jn764kyv0nzb47b97n4v60v3ajgqw5r1";};
+tkz-base-69460={run="0zp2020wa30yqk0b5iyzyjpm09kndnw7ng3lr547qcfgqr2q6iym";doc="0218bq4ma7dxshk4mvh3i40qdhh4b3i0i9yp034jjnn366wxk039";};
 tkz-berge-57485={run="1c9kgzsagh5ww0zlwywpddwn3mx0wrf8yc627gjap3f7nyyvixn4";doc="07bsfmh9qyn8q9z4brd4si1clmw7sn2vh2nr8idqnm1z1jqdnq40";};
 tkz-bernoulli-68780={run="0ifjig10clmd3402y9kdpyw1vlwk9vjakanjzkzablm5zzdr0qgs";doc="1iv94xglrk07kg3jkdci5nixrz96gwasgg5h0fl345ph9rdalwx1";};
 tkz-doc-68665={run="0gf3zjnqng90kn9341xdchm1diav93qlv2910mrl1cc7vqfp47wf";doc="10p4i3xnbpyhzj32j3mi59pzaisjhj066m9np4ankzizgwv9x5in";};
-tkz-elements-69213={run="1k2ypgil01w9d79fswb1mmckb6iznc0da8fhpqax1lp7pqxhhr6a";doc="0baqnqhlf4zc22d4qh8ikzimhrwqc26f7nwjwmxh4n5k6gwwfm3d";};
-tkz-euclide-68747={run="0jb3cs6yqngv2g30sp5xw69fmy620q40w0d0ny65q2d62s46nrw9";doc="0y7x17i9dc3yxa7amgl4a61kk8b0mbyrn1v7n1bsbhva150087mb";};
+tkz-elements-69715={run="1aas8q4kjf26ch0wpf1vvml8dawnwpw1gl6p9wy32f6jim3pckmh";doc="17jard6dv6qagrziafv29339ira4w53zd6p5gvl6mdpylj96bhab";};
+tkz-euclide-69702={run="0yfnc4zqf9nznim015qw335h8l8p8chhyl3ir85zaa2hblwc9ma4";doc="1xlyzr8sd86zrp48v1q54j8y9iw77wx13qf2rxlkjcklwn6zvs0q";};
 tkz-fct-61949={run="0hlcxnllmkhmxl5dwap1sb2jg822bz4glllqcv59dx7jqab5bv8k";doc="1bjkya9ssr6m4aw6rd64nniwffgz57ikz16ciba2x149f39pkcx3";};
 tkz-graph-57484={run="08kfjaniwrlw23vmz24yq9gbdks9fwcf0g4jyy98ikfqh9phhhs9";doc="1drk9va3bgq62qfkcvp5z30gvnscl7mbjz66m27wmgagb2ki2f0q";};
 tkz-orm-61719={run="020bi7dgjipd2ancqji6fa1zcf9lh9d8n4zbacy5l5nclxfiphcl";doc="1zgmsl11cf4fgkfilflw8c4wrcfwnvk1f88l90hwgclfj5q0ashr";};
@@ -3947,7 +3972,7 @@ tlmgrbasics-68999={doc="0yz7d8dw071nawgn2s38da6sp8zbrd03zzsgisfx7yx9jp0zzbpz";};
 tlshell-66771={run="17nrf6cwxapdkdccqr2sp5v7fayd00qcdczzznl7ppm98rsz9p36";doc="1h5mk09sakbmgsppl9fnry28xnzqya3bmp3r1nkzg44cv7kl98vz";tlpkg="1dvb7jjnmdh0k4dfkm4f89zapkjb31z2364m0vapmvfq4z84vpyq";};
 to-be-determined-64882={run="0yrs04ik67wj1wyn4cl3wfabczvz3ga3h7sfbhni9x4438br48gh";doc="1acxz8nala57gnc78r5aswiwhfvdckmvkv4xiwgcznb0c217wpl3";source="1fizh0inczp818vdwlvyawzvw8s0i48mkpgjydfcmwpsbf8rdm8c";};
 tocbibind-20085={run="1swxyai6gqlz8zjah2qnz9c5dkd1smpk163b56rba0kx7zcmvzc5";doc="189qi2qyp1nasg9w902ydk7rlzxl2qww9w3p5s3p9ywchvm1l9cf";source="08sr335sgs7hrhd6cbdc4dh3f8m9fpplv72fk54y57rx59l8wxbs";};
-tocdata-69402={run="0qf3w3021053akx5fzgia258qw25bi0z8aqi73wwsj1prli6mv10";doc="1zmgdlivs4jvhpr6iaqykdgac8v5lyfp3gy9zd72g9l3s0j86cna";source="1y3cg75lj5f6aana3hjicnrca38bq3nbql8sj51akz509a27yl4v";};
+tocdata-69512={run="0vj012pdzwbss6h96l8a539vdwihm9f58d6yazsfc74ia4k0x3yk";doc="14hy1z419gb6n4zw27xv1qi3gc3krg83xpnr5lw40yd92i99i8q2";source="0wg9d1nay4cr52g4ird3cgb7lndlyvmx6hcf6d29j5hfdaafkdg2";};
 tocloft-53364={run="1vp3s7q0fcyfj2ksk61gxdjjnwhd62dzfd94yp7y3qfy7x8hyqxq";doc="0zjs0ldib6hm3b9msb5x7r64ddknqwf6kkc9cc82hbla9wshq4qq";source="1764cq3d9ad5gy3qag6f6wxgnna0dhk3rx186jqjpqyqli8b4lgh";};
 tocvsec2-33146={run="157m17r777cfqjn5p4j1rbj10ysbyms87jrhk0wjkahag9rgny1b";doc="0dvzcynpfn9fvfkks5idncgbdqbhxj0vp1d3mfzymhiw4sds31xk";source="0gjpdjkl73ip3jkhr9sx94mwxz3rvxaacn553xwa9gvk3xh5rav9";};
 todo-17746={run="0chmi45gcs8y2zh24072y37g3z62ixpv8cg7ck7knmkzwfzv5i13";doc="0n6dy738cj08laf4cg4y0sadzzzrz9wa9m87hwkya6c95znl0091";source="06xpbraybhf1wbl979653waznvgq697jq61xcpz29gn159li0pdb";};
@@ -4017,6 +4042,7 @@ twemoji-colr-64854={run="10k7gl7jp9l41mj6jamz26wndf3casx1qyy1dz1rscgqyvgjgh9w";d
 twemojis-62930={run="1k58rnl12pj54g5r9rc7dcf1n33p0hw233wckrpn0dh287gf5ffy";doc="022i152bp2r8fnkwb0mpz1nhs54qxpy57f51j1mkb5rc1dqgcxqh";source="08jxkcjb95yb7pc7jlf2rcz9b2yibpi5ygi48d2ni79i5382mizh";};
 twoinone-17024={run="02na16ki3n7gcbzi45dk6nwna3dqzgxwc73aha1zncm05bnj3n4q";doc="15ldj27nb6pp90abilsybzg7hn0z8xfv7mmwrmwdq20qw8ss75ay";};
 twoup-15878={run="11zxz1wlnqia071kg3d70glp167k2c210gc4r2755sh6m23wp8p7";doc="02zg1rq2ylm9qvgwh530d5l0pq9a377z943s66apyf3jz8z55sj6";source="0lmqla1wrsrzq900c4fhjzbvg7iwbd3y05g40j0lmfrj8w8lqvng";};
+twoxtwogame-70426={run="1gr6wgvpzb9d07a416fngf499hk4pxvqpnq040jspnz9lsfnyd7v";doc="0d55npjzwpjm2bgsm6dc44n2mkycqglqy4nvkd9jqfajddk6l9nx";};
 txfonts-15878={run="1dfrd8dzrzj9y5qnz9c554xn2g9931slhj9ylan2i71k5asxmkiv";doc="13v5hhk0nzj38nfgyz9ijmz9gb9703izrgb617z274d744qwqx73";};
 txfontsb-54512={run="0g2hjxcqhgynzmvj44q9d1wpxwpwy52a6rbl3nhnq06w2v1lh637";doc="1yls8kb1bglfqa7yiqidanyjgj3xb1isc7z99ybw2j2kbmvvcjbn";source="07bapd1i9rwf3946pj54s0m0841ximmj60ic266mcmj5gipw2q1q";};
 txgreeks-21839={run="1872zrdb80wfkjh2bdblv31k6cm83cmsnqns8f3hwf3vr0ymvb62";doc="1gswhcdlf8n4wpnzy0fx4maxvy3n4dcbag9r0igrcvcbqnp9sfcm";source="0n4r3zn19z62qkd2njxqj74k60jr59704mnhrlvmmxi9x3b5g5sv";};
@@ -4040,15 +4066,16 @@ ucbthesis-51690={run="19g7wv3iypbkcxhlybizkis6yivgn6z0mvz4rgsi72zaahpxmg7y";doc=
 ucdavisthesis-40772={run="0kdrwdk7mg3yd7hm2xmq63kgikr2p2izibfgw1whai921za4wlm4";doc="1chajx1i2zmfh4ypnf8jspwr8kjwbfv7z07qrfasrf73r775yxnh";source="08525i86hrv1387jn9ayz3mpwnh4z8kvjvb590y7gqv3cdvrsa2b";};
 ucharcat-38907={run="0xiryrx3pjx2nq01f4f0x3anx3zvkdarp87103z9zvpf6aa27slw";doc="0k1aqic1ljafdk8xralygdyjapkqa0qiainrbf982233kjqclpvd";source="08xxmm2rrpyi9a601bzxka226fnhmyqfv8cfbc1qdivn8658785y";};
 ucharclasses-64782={run="0d5rr5w322pr4bsmcp09vsldydxxm69mcpvpaf9j7z5rwhic9biv";doc="1l6pv743lzdhnxpd8bv1y40xhfg82421jyri2c5h7j4ahlcnnvic";};
-ucph-revy-68224={run="0i0fzn556b07i46jq4mb43fhczvjh91asd71512lc2rsx12r7gvk";doc="03ab4kj1qnb9hp89kf9vvh8ca0l0k3jqzkkdxi9kycwzqm7x6bij";source="1b0v20k0ypkf7gcz0wmrbr5v4lzp97v1vvb2818bphrqj7bdksf2";};
+ucph-revy-69750={run="1pp8cqrvhwqc16nd60bd6kb76xxnsn671icsph6byx8xr7fc3hl8";doc="0rqj0b2a73wil9iy4sd83831nvbd0x3lqi5480ig2i01rq3lkpvs";source="0kr0k411gpnzvgjgiqnkbdw8nq3djp8107886igcw26s46ipwics";};
 ucs-68759={run="07xgqkjhks344r0d9c8rvw2gvy0kwhx5kvyzkf2ymw1hiix8w48s";doc="0icaq9irpb67mipfpv55kfbdy5m7dw83h5qqq98f5d1x14h3gxbn";source="07pasmgx62jjdq8wgqgk10wkykzljj7v52xhl1ncma4idmd7l97q";};
 ucsmonograph-52698={run="1jkcyhrh5zf8p205xgs10azhp69vrz613ln9ssrb4485b7a25b3d";doc="1hhr0z3sy8vn6cv2i7g8nfpnsdpyrsbqrclc8j8g6qidh83x2y5q";source="0x465kyz3chdcj705v9gc8s0w3pmawaza93pcm8nxy3k7dwx920j";};
 ucthesis-15878={run="1mqj65aps995issvi1vgn7f7pvxq39pwxaqqwh7pxnki26k8czrv";doc="1hv02nxak4laz9az2kr5lvd97l4mcnixdmpysiz6xqvc13ivkjl7";};
+udepcolor-69701={run="1i8vmd208l17r0w6lpzjymi73n6ci3p5izqqhbl2wgyxsq4090zr";doc="1zm3znyvkjpz5ilbbmkk0lq6qaavk9p55g5b67mqm9z1qh423gjd";};
 udes-genie-these-68141={run="1fj7qy5cbcs03pkpcv8ii539val5ps57pk0836srwgmgh418csiw";doc="0ikgr4zdxfi06ply66kp8v8h1p51m8fmzv87hlg490qaj8wmng5i";source="1rz05n7bvf0c8h8b278m9q4pj8vdc29i5xncr2374lyhkcx4r3xp";};
 udesoftec-57866={run="1lq0n05v6q0p78jnq1wf67pgzh214lllcas4jxlpz8hrwk9n9v1h";doc="1gd4qhdr4wxgjalxgqp0d404w65x7r3ipdkdq82lfcyclqyab8fh";source="16fgvdzlxrcaxbbk9m9yxviv8v3qhki2s5kq8j065xx88zd181aw";};
 uebungsblatt-15878={run="198bz1875qhh366ddvdxj72jpcdinfxsrb2mzirr17fq6liwbwhq";doc="0814xqw1iglvwn5y29fsvgbrm5clhgiz6ivbh8a8rayscbjwixmj";};
 uestcthesis-36371={run="0dsdzhf9pp2x4xbprii9rvl0h0jwwwd03va8mg7c3cjgr2nvy1dl";doc="11z3ac2pnxg8qqy4shmdks7h33257nbkgj4h1rq49gc2ssqmp8pc";};
-ufrgscca-69042={run="1jch6z0jvybza2fmd6mamc8kx4c5q9l8dhpk2r808a9zxdwhcx39";doc="1w4736vj2x3znz31qpfkmnh2aqc4khvz9zx2n3mda3ngl34cb1rf";};
+ufrgscca-70603={run="0vnibzq6ib2kdf3kdgk72aznshsnj1izq648l8f8l7sdzw9v0pm8";doc="13mil74klrh23af2as7s077ly4nc6v31qcxyp3v8rppff3jxml9m";};
 uhc-16791={run="1xvkp384p0xcba1lbi3b2najk6d2w1s78yi6vgppmcjrd5limif2";doc="0q1wxcn2zclpj4bsn47jgd78xmp82a6x8w068j4ihza9pfvbqacm";};
 uhhassignment-44026={run="0pb7hw9krpri3ky7hfshjkkbk36cilf31iv00l5iynsnrw70lwyy";doc="1106wbx02mbnkgzwwiypfz7fg1a3rmwyhlgnsxf4z081q891p3fm";source="1ck8c7jx3qkxnm0a82qfql92s05bg5p352fw1yv3y7v86z2kh6ad";};
 uhrzeit-39570={run="11ysijqpnm3b4z7pnyg7m7kpzp6fiw42dc36gxk1aq55wsv7kk7g";doc="0rln5amx6vkny0pm4yhgvnmmr9akwcrd93db7bifxdp07hjbvj83";};
@@ -4069,7 +4096,8 @@ umtypewriter-64443={run="1xn06vz5lxr58xi6y2qv5wa5h2r0g1xnba43x5qh5ag6bz5ym1wh";d
 unam-thesis-51207={run="05lb63wclgxqr7jn7c38plhg3r806b7888zyifcivv85q143j191";doc="0kxdr723xvg0lzhmzwpyik9vxy584y41pmwy8bi7197gz1hgdlzz";};
 unamth-template-68681={doc="1ydaxzcwxq1rjkawlapnfipjzlyzvbvijrx98pi9yd4zk2nnqjfv";};
 unamthesis-43639={run="0wqi46mdjsl06q7hyvy4wpihvrr040f5g23bgc6lm6lq11jadj6l";doc="1l71n80psc2hzjs1lnfgpfpg13355sk9ld86104dkyrl645qx07r";};
-unbtex-69307={run="03pmfjv9ssgk0g4344pnq15z28mgkjr5f4jgddqdbs23320zwd43";doc="0gy3r6mp4lr8k7z93i0dx0zrr0pn89lzaq9anjmc6wnwnb9bwvgf";};
+unbtex-70325={run="1djrj3ywcp9r9w3gj037vz2rw502j9vdz4pnb10zzsfc6v9wy55d";doc="1r202y3fh8bg9r39vfa0b565jlpxqfilwwfjh5w60ywh32ps5pqa";};
+undar-digitacion-69742={run="1bvfr0zb2jh0q75sr6lrkyxqkh15r15lrdsapy73vxcm1s34i96x";doc="100h0pzwawnv2c2f2q9f2incb8arl3jxrhaj5vra700c6i6lva1z";source="0z40wjd915w64zyazfj2bpykq6x6sq6c3xmfh4wc5m91qp45wd25";};
 undergradmath-57286={doc="1z8my3fwqc8rfc1843j7lcmfka2023z9k0js4ygh1m8kilc2nrr7";};
 underlin-15878={run="0gm9cikysz83sdkhhwd6x9zbs278gwfw8mxh7z22l3c0nvfkxbfa";doc="1rvryx13hyif7hw2wgb88n95qycip95xh92jdy1jm2l6pl3c5q3i";source="1mczvxrhlipisffdi9jv5m3d2i7h34jpm6vi4dbl58cg9sasc4a4";};
 underoverlap-29019={run="14cknh021b4qsymflf0mnv8q2vvhgsf2088s1g6pm8ckpx7diq0r";doc="1h1qvk9m04sp0nm4acj7kfib5cfpch1mkpvs55mnqqsgasgnymjn";};
@@ -4084,8 +4112,8 @@ unicode-alphabets-66225={run="10zmjmbrlxsvq7snzm3p89afj4xy4ad0ni06fi9dkqjmi9l5np
 unicode-bidi-42482={run="1prl0i2a9dg5yc2yl1x1k0zmz9lww051w1zwy8cbyvk3rd765a72";doc="0ab0gym9sjllmqdclkjfbc4fh9n20999mv7z2gylfybirm0n7i7c";};
 unicode-data-68311={run="1ra75819cglkd1gdv96wzflx65bc73v46k2hmn1bxjachz3cd7fr";doc="1b8zpwd0vr238may4wv68xj77w7fiq757jv3i45yz0gir1as9piz";};
 unicode-math-67919={run="12xc969s6x742a3aay28354cpvam2x9ack1396q2hk1wdhg846fl";doc="0y0sacc4rd4ilzjfw10v058wv626wlva1kzrbrbqxsclq3xcm2fy";source="1wr1hrxd63z5iisdw6k95qjknl3i917y2dmnrflyn0afvl2pxjg8";};
-unicode-math-input-67089={run="1gkamvcr38zh9yzvhbngi4lcbmxsrmbidg1rq3mfs51qnpwrkww1";doc="0p9k80mymz1dflsvjjb99pzrskwa21fmvrj3zmsxdmf8vzq2c88q";};
-unicodefonttable-67066={run="19idvgz9pmwsjrjc09z9njpnffyyaf963xcz89dhzxcc2k6v2wrp";doc="02jvkpcwhf5bxg6d6pxl9h1igx01wkhwm7rs3ycid8vf9ydsvl77";source="1lfjccv4h97vy34g8shh26rw9ai7h7f35xywri06ch3vx8gsmlrl";};
+unicode-math-input-69591={run="1bz4f905r178kkdbbx9c56d0l63a3gzaqia20qj0q0zhqvakln18";doc="1lh4qx0lz50j2j69m62330snq5wsg7vw5847z3jk4kpliqa9ybm9";};
+unicodefonttable-70354={run="0yvn44xyf0lh8p7r2kmdw15gwyjc9zcv46bc7bai5623shbk5xkf";doc="09al70k7rigadasi2i0rhza88wxnasd6j4b8mlyaz9pzyqc1dxsg";source="0wagy5wdim81c8yp9ssgbx8hgf5322hc2jwg3zwd5jsffvlv5jab";};
 unifith-60698={run="0plwq53cp9rsdsjd6db1g8b39k5czzdsmmrfki7ckbgiw317k7w4";doc="17q97073nni7x2d1zlplrwfvnxw9pkjgk79jwcvbgfjq09cq374z";};
 unifront-67054={run="04rm3pia1x68qm5kabay70fr1szrzvg4bzk674din4babl3nblal";doc="1d2kmwfa7cz009wfc713my93v3pgh1jcqz13jcy65f7py86qf2xp";};
 unigrazpub-64797={run="1rg5b9f3679qn8jaaqn29bfw3qgyxgx3p3zxi7vsr6kn6ada3j82";doc="0hpjzkdhrl64g00x7jb55wf5mz57gab432vxq3hd4igffrxvk88m";source="0mdcp3f8by29abbclsy9ndydgslpybcs5wqbiz5aiy5blp8d8abx";};
@@ -4109,7 +4137,7 @@ uothesis-25355={run="1wgs3fxg01cxcpnhk43ik12sjdip77fkxdaik6w4w926i8z0np7s";doc="
 uowthesis-19700={run="0iv9s5dfmbrhxbx4kqbhxjf23rln4ymcx4kkk5fmc67qi51i8jnq";doc="1xcqs2h6qs2lca74mg1jvqza77xrph53bk9dwkk0bprhkxn1all1";};
 uowthesistitlepage-54512={run="17xh2myc3xj2zwbc7jjdmnfqhmhzkqj3dwwn2q04hcyr4bm7vnfz";doc="1gm1clfvd0g45fpgf6h4nmyy2vrc0d9lqfy9h3nn2pnh0ki2z0ir";};
 upca-22511={run="1px88kyvr7jkzzcbd32pi7zlak9wwzf3b55yhnh9bi03pk0il33s";doc="07gsza0vhs52qjj8im4i1fg2v2lch9iwk424ik9c1xak1v7s9d23";};
-updatemarks-68163={run="08x63a7hg949dcszq5x03kwc1408bml78mfrd1p36vd99gsiakv1";doc="0lsdfdd6nkl21pblpax32gw96mgm8l34gp2m7h60fipj3garfb69";};
+updatemarks-69989={run="10shcyaanjg9dm3pb08li46q6hbksfd4kkkmj83fivqrm3f69l88";doc="1k4gkav2afnrwhg1469xhyypmrzkdq1zhvvwa4zmavky9lvwzghq";};
 uplatex-66186={run="0kmw51xvg44jrzn6r1w2biz2d0m3j533qadi4bfjhf2dzi4jdg61";doc="15b338kzdd0xbglihc5hf92mv3jwmyxp2pf1nb9l75cxnqfglzjl";source="01gpwxp81hz8824y1hffq6b035l0pxa8wyfkjm9kh5m58j52s50w";};
 upmendex-66381={doc="0mj8nmqr3z7b802kvjmnkckq89l694an7s639yghf3b9b5v7xihx";};
 upmethodology-64613={run="0r7k223ypavdbywq5fwffyysn68pg12dgp842jd22b866ffm13pj";doc="1vw9azpz8vwanfg60vr1a9bbx39k8v6jhvn505pvmf8fqgkqd9ch";};
@@ -4125,6 +4153,7 @@ url-32528={run="189lixyamvrcpds2i7nlh4w83mk5lnk73158kcw3qjanpncnnn1f";doc="1xrag
 urlbst-65694={run="0kq36hv6hmj82784c1cf815xgvpcdzgrv5ppniy921yxqxdxn4yv";doc="0c7i74iybjra6mmra82ny1bs09j3qrvqri485p4h1cz6195v3wln";source="14v0wynzshm4qcical4q1vnvmx34ds00fq1733ivl6hr0sj833mb";};
 urwchancal-21701={run="0hlaimb12imiv0h7khcaar4xi5dma11bqcrb2b6imd4srgg9b50g";doc="1mzfmfwny5mzag8wf1h3k4xbmbzphwqv6r74sql8wyqw53s337jf";};
 usebib-25969={run="1q38qzz87nh2hbmml3b0a4919dgk6d5rn0z5bhrc4ip27dscvw07";doc="0byl3xhiz3b4hqqmq2wi5fdbshh5prvqfnhjcgjk619bn99cijxm";source="0asby43xsd35aazh2sncg639x91f91shs25f6f1127rskx5fd7vp";};
+useclass-70447={run="0cdxhh52643g3p5rszasqrkmvbbvjj211qkhlhmb5xdq4jsvkmry";doc="017x003x7cqq2bmhwp426l5lqm1bp95sl9mz6l4izk94y5jsyi97";source="1cr238jqdamc4pyq4jrmsdzbihqkdgzlb5k8g12d72hywk1brlid";};
 ushort-32261={run="0235a399vqry1vdyfyva9anav8axs1pxwf9v4hhhazsf85m23qqn";doc="0r0jib3fclxjaczcbzkb8ywmnz0xkrj02blg0f5i065h2s1qa10b";source="1sp8z5jnb5qlihv2hz0j2gs4rfqpy0ka3npph1dvvjvi5520c94c";};
 uspace-63123={run="11kmx5y9kdklgpfwzzh8mq3r9ycn5zv0a1pkl6yxy2vsyg6wkfjz";doc="1bxvpm8j88cawv0cxl8h65q33bnid5sqv8gqia9z13h00jcgkjcg";};
 uspatent-27744={run="043az1c7bs194w7frr768pwaliiaikfibxh6zqiznc85ax6q3d94";doc="1q04i3q9693ykpgsx1fl11w0y0kxffqyljns1qy04935s5b8vskv";};
@@ -4163,9 +4192,9 @@ verbatimcopy-15878={run="07syldn58zwnwxwdsmq63qgr2nb0bkl9di09knska9jk0c50ql1j";d
 verbdef-17177={run="1dy1h0vcknnizm2f3zggga85slga5p77aw3ll5ca3kx5qxp1xqhl";doc="06zh9v72ywrg84wlb96p0y28sn9919pn2xjgqhaii6irdf3hmlma";};
 verbments-23670={run="1iv716hb41cy7bc7bk2420lwdykpccyg6wxvbxb8vk904fsgdk2a";doc="0hzrzb6m8iakip93in80x6k15b08z9xwjrbki12d28xdadqkpqcc";};
 verifica-56625={run="0i5bh8j5yjvql6mywfs617mh3pywnqd7z1m6158r3jpwyn6ki25g";doc="0sinc5ha8k3nk307q0piqwj56r2bh4pbxxyww29ygalfqjr755bb";source="1zn10fr9kv131w4id0djycy7492ch7gis27gbr5r02ydwm7nny1c";};
-verifiche-68023={run="1fzxa5aycqxnzvvhzwprvq0lcdgvchdn5gnwbzbfnsg1547l6kz2";doc="17f2r3l9252bijlips61naj0wzdsa5ghf0lkyni5xsiz0s2jc4a9";source="130hq5mzia4pj0cdqcj3w5fhgcsd0hhmv83s6an6ia5rzmb14kzi";};
+verifiche-69726={run="0c706gskzpr0a379a3liwad2d1bavpj2zpacdkdm5vw6vxnb2y4s";doc="0rahx5d5gkfq8vyshhknvfb410wc8kbmphmnm0h7b46c0f1r8x8h";source="0sgxdki79pm9933gp8zd8gbklfqa4574g1if48b3y4jh2ayb03g7";};
 verifycommand-69389={run="125r3ncvllap1vmnj1wz11ir10223fvbgsy233qmg0kdclnh4v54";doc="12j8v0r2jay5f1w20f7yi1kl4jdfqrv2ga5748xksds7jj0x7im3";source="179642vhwmgrmlvavl5naxnj1a3279clgjyc090gqw8vg8hbnccq";};
-verse-34017={run="19yp18fl88zcph3r53ajbnwcr8lbvgahs2kfdg733l5zw3k5pj16";doc="063lkcis5m4zs509hn4z1zg1faz1lsxvjak6c574xasspm45v559";source="1r9pn4dqpr42ng4xk899kxph5sci82dkdx834lyrhi8lsj32g9b4";};
+verse-69882={run="108qi1600f5q9im9vdbhnh0yalpjcx7qy90x7xqxnjyqh7116c3m";doc="0zqw1zrpm3hzv21gmscm9b3bfyxadw9svd6hxp0gf1virb5nlyhv";source="09rj2vkc7l4l79w97iycyw31lqwr946rdcrvwzv8nargpp0ynw8m";};
 version-21920={run="19b4h22lqvgzqqm0pivjjhmpxmijrr5rfy0xc9g9y7czsrp810hb";doc="17bsgyjvnna790nz3x94wbwslxkkz3958vj2l3jbyphm5vv92fxz";};
 versions-21921={run="07bxhbpsqgdbpwph2w7gam699605m181xmj8jhpcsf4rwcpnjik7";doc="0pjz8nk7dnf2jp6yixhi55zbrlmhv477qsx6p52dwkf74vxgv5ki";};
 versonotes-69249={run="0kcfa9j99jpw521sz1q0w9qfjs76138l1rdy9ha4gb61m5r95008";doc="0z0mpqrz3n8lp3wf1kfzfmm39n7rwv2xxfvy4x76a67qdjg2glbk";source="1h0qkcpps65a8qcbzskbghsdnqvhgg62yk7ihmv487a8lid68js0";};
@@ -4189,7 +4218,7 @@ vwcol-36254={run="1wfqcin8xmxrby5mxn9s5j32zmr4ka4k0h9ps4kdddpq238db89n";doc="1zy
 wadalab-42428={run="01lf8nlga2nycr23xpzl6xas2nlgajjmia4lk4zvjdgcxqnipfrq";doc="0m8x6plkry0p3jabvhgkccb2rvlsz941di4ihfc8schkq7iyjlxq";};
 wallcalendar-45568={run="04rck2mzvzpm2f934iz4nni9s5w9g7a0qcp3kvp3bsqa6nhhcf6v";doc="1b2nn4cwsb6vi29a49cnnazpzffwbpyw48wffklv11frbmk74dnj";};
 wallpaper-15878={run="00cixdnwr4vpfpqfdcbra4gwz0i36kddak8ywv8l4q4d4yd567c9";doc="0ngsn8an7gqzkw96sdxb4q24h7bvbjw0gsqk6dzrdphclvsjy8w4";};
-wargame-66713={run="0gck1xa19pqmccblad9lpgj2n4wvlka83grd1qgnkhvwam185r0k";doc="0swifh404yi2mya0xv1np8ga9m8bk0nwrc386bpzgq7s8i1mmlhv";source="16zz89n1z9wif54xs6140xn9rmi9dhaas9s6yjwy6z52gjinsaga";};
+wargame-69692={run="0v7mc3hfzjissd16f4l5fmv0gx5dsba9rmgmbsmn5ny0y0b5jkgl";doc="10nh98h13fip08k15wc1105cw7zi0ihb614nz12aynhligi667c2";source="0n6gg94s02c026ca13lmg36f5djdnn88xnf8yvv9k4h4v73qaxl3";};
 warning-66616={run="1rsqy10fghs5n2zb3g378csxykrlympd40g74wsz9v4aqb5a9xf1";doc="1fsqznifd2fj3czhhhii1j1z79f3vdkjhf46sdhc67y2izqmg8rj";};
 warpcol-15878={run="1dr0ic0pskvw6397q1yy1ibbpl1c1kndqaw5y72zzzy52x4l4j71";doc="1jc7rilhf61irh8kgc437mp45ryz0yr63z11r9ixbsj04dmfk2xr";source="1lnd9b42xyzfnrz94x10vxrmfy6r2l4wlxbfc1c02fmnchj2wq6c";};
 was-64691={run="18yszyvcv57im6qk8kyck21mzyzwmlzn4s64jlzz0pdzpjhn7sxa";doc="1dv6d27zlvpb1kc8qlj1jxbq08czxqrfq9l0ahqdcrl3fawdgiv2";source="0ylf9h95ig7vy64hai9skl7dxvkf0rj85syhcpf9a2p301hchs35";};
@@ -4199,14 +4228,15 @@ wasysym-54080={run="1i8pvf5yfw5j0rkcpy6v8czvr85p1yk18c8h18iljgsdvfj786h7";doc="0
 web-66186={doc="0iiyzzrgwakw7ipdnwmjwcrqayzq4yn4786zlr9zirmmj34hpamz";};
 webguide-25813={doc="0wid2sxrif3mm3lrs0s6pil949byviq4d7924yzvmf9hkrs5f03v";};
 webquiz-58808={run="1bl334im0jvsyx78g6jq9m8623xyr4xz0avzfaymhs39dv17wsyr";doc="0lwc3r3w2d7lzz39ilncbckmvx536z3wvz84jlnv3flm2dll2z7s";};
-wheelchart-69040={run="14m5nrs3iv6hdryi9xn3yral2pr5vbabwzxq882x8qfhm4c75ch9";doc="0dlffrsc1lyx56mhjnxla20mf7qh2blybdw2xnc1nkvw59yj4dc8";};
+weiqi-70179={run="0rwysz41acvsw8hjsxa5rb3nhq9cd096kgc05rf3zk6rdiy0smhr";doc="0s3g2ymfqz8acrqgb1d375bvxmb21sxw16j9a25xaap7wz27xry4";source="0fzj1cyxj505vf82kzjg7jy6ifk3m5pwsvmh5m6jvr2s7d2m079d";};
+wheelchart-70518={run="0z59dvngsyabg6ycmvj73nj23xaf2zkailm9p718mj8sp8nr72rj";doc="08zncid0bxyh5i1xigdk5kdnaplpa0jf90wlnd6srxfrshy4b7rw";};
 widetable-53409={run="1k1jnl3jbrbcc55cl34wj3znfay2wnf8k8sgdslicvnan2j717zm";doc="1giy0gvhngsmfwc87j9k2p820j6bm2mc2r1kbcl4ci0c3383mify";source="0krkcnxzjrn7lqd0qh8lgjixfpd3c5glvj1ilqhak9ifd3lq8r4s";};
 widows-and-orphans-66753={run="189ch6wprsw4xsyk79pm03kkn19h5rkqpfs0g0p6kj5jg39x78xv";doc="0vzcyzcf8fh83llravv0iz739ilr15qpjkgyjmb95r0a9zwx044i";source="0sf8picg17x58baw36s0z41p7ck26439wjra4mbc6kl6gh11jqmz";};
 williams-15878={run="0pbij6hwk82pmddl199sxin34fk22wzvgfj0dpjsg0i5qrsg0qcl";doc="0vvz6fsh4vlhwirz27gyni6xnqinhl6iymgmfhlcc808y7fawcvq";};
 willowtreebook-60638={run="1g8v5am9pzabiq5l5306q0s3a9zmyrdx5s7pjbpph08bhqfhxvvj";doc="1368jr8d6444bnalx4p0by1133liv7fl4zpvafdm0a6gz8b5n5pa";};
 windycity-67011={run="1r395672jacizgwyk2jlf1af1np4p8i54vf4g6lii5yv0yhx6pmb";doc="0f6c5pnm31bdanbcjn5p7icq9qbk7j07sam6g7daj670z385lx5f";};
 withargs-52641={run="1b49fag0ivb5srlsxcbmy8ssqsrcbgadkvcxd6xn9l9bk28wpfwr";doc="12n87c9181kskqvx7bzvqjimg7agcm8n2z7rxnh1g4kh9bjr57ms";};
-witharrows-68047={run="1z4v7vr44xd2c8b86am74xi41796bv4gql41hk1zldswz6gw8w35";doc="0ycg0p5a9vzz7nihcsb49vdcqnwzvz6za7dibbx7am0crb4y9a38";source="1vhdm893g8zk7aqqpx7wsy35phaffpfhd2cj359z6k3r4km548bz";};
+witharrows-69996={run="1mjy1hjy0piy7j3px4gnkvh0hfky837njlnsgr92f6nfp2fx8w6r";doc="1fjlnw4z9g9mkf3086nnh1jycclxb3xfhrnd1dyg03ncrwvx9wwc";source="1vhdm893g8zk7aqqpx7wsy35phaffpfhd2cj359z6k3r4km548bz";};
 wnri-22459={run="16hcapjdb5dx48gbcvk2bkpnp1w9knswni2vs8v1l9shxz03nnxa";doc="0wpf06is1vkaw4ivhrz4hfii3qrgs71cawgn1fnm8fdzalgb2frc";};
 wnri-latex-22338={run="06m6xwvm1pxz2bjf2xa7k3x6m70p1f5866wn5imipmhw4wjs2jp2";doc="15d9mcvdhs1jd574gm6a9ppxyy7avclvq54ikcmlf4vn20lygidx";source="02x8fdavhkxfnxhvr891adpn93yhqccs31w05h8f9hyg34jlnb30";};
 wordcloud-68209={run="1s3fpbd182zqi94kg59mpssdp51rh7gw5371xrp235g8ih50054a";doc="187ap98yaffx8nf935chvvgjalx0g8xk4gnaqbblxkz26qi8z3f0";};
@@ -4216,7 +4246,7 @@ wordlike-15878={run="1mdgcdiwnqcsrqrzbl27v56xpnzvxb7gg7a8vass31srk8n10ssq";doc="
 worksheet-48423={run="1rsh38fx4ayai0mlakqgpzxpnwp6ckzjcpiwy7aqlpia0504jgpc";doc="1hagdjrf472ip4jjkrjv6mgycwjlhbggval7kkk449i0xd9kiz39";};
 worldflags-68827={run="170wypqn7mmfj4s8gbm363l4hqmmjhsziv22z9hyfhrdh0lprip6";doc="165ny43vh389qqi7rzw7mhfyn04awr397i67kkc20jiqxl6v64r9";};
 wrapfig-61719={run="1axad52pzzsx9d32rivasl5d49dj51adk5kcnb1rr8mz59421rk3";doc="1c3xd0ja4063qzag0v07mxkk52yczlcwdbwn84gsfp5hdmd5cibr";};
-wrapfig2-68164={run="1vkp56jijwjivf0ml9crdsy4ga7763m6hh9kdw94s1zb60zh4zny";doc="0cjfllnqyj50v9jd7sdqbf7inic7jvrzd4nh3dhssgd5s2abfpnh";source="1zy26lvz2b35ywxxcgk5r6p8vqq92bbw33j39zzg4b739jrh842h";};
+wrapfig2-69513={run="0b34ppncrnrm4pd75l7gjpc1ci0q8r2667fwyfqggskkvlwmnm0s";doc="0v08c237ydmg9ss7vrwsb9sbzbp3acqv4ldfzrk63zc1mbp8qs7j";source="0avc8afvv3mmmxfkz3kq9lxgl5frny5z7w7zi9c9wblx2qagqb6x";};
 wrapstuff-64058={run="1w5bnl5w2shar2qg2lm7768n8h4qvgzhxaacphjhqbx9zb1r20w3";doc="14npfsqr8wp1bgq9az4x23rmkkgpn37w4cr6c43wyqs7cvizz0yl";source="1x34kkbv8n8c89x21ikv2lyzlk24qbwcpcxwgv13lqqlcqxfz2ix";};
 writeongrid-68863={run="0vkm3hfgc8a3a6x5sxyszbmhprqckpxy0ibz75g6dhf8wr30jrf6";doc="1dvxx2gqvip9wf80m67hb6w76bbwcy2nzk5rm4m8dj9fvpzfv2jr";};
 wsemclassic-31532={run="0zpqx8gi2yf8cm5rmvchz0jprfwcc0gjkwcrygrvlqhqqn7qmc07";doc="0h7vz6pza8bv8y8ihfplbsq8ip9ds2z63s7j7qh84vf325ci5chm";source="1522cvwkw0ryvhgdqqd7k8lrbrayrmm3h31c77v7x8a81cry2bj9";};
@@ -4226,7 +4256,7 @@ xargs-15878={run="1r4giz5gp4pcnxw12lr8hnsa45yv1lm1ddq6g33rkgs1qjzkhv02";doc="06k
 xassoccnt-61112={run="1z25b0dps2qf1lsvmbq462ljyyakkicg92d3l1pz254n2mqzvwjb";doc="0057kfclqs5n04ghsz6ad0pvgzwp4hlpk21c66922nscyl4qrfnv";};
 xbmks-53448={run="0pv35b38frgwbi4ijn1x8w5mx48fcy709adlrkzhy641bw4isv86";doc="1nr1m8mhqwkjl9l9pw72ls8xrvg8w2gi8rar4chk3xmh6kphi7ra";source="0waizijqrvg7qigh317vr56bi2b795p5k3h779p0kbl53k3f9f6i";};
 xcharter-67742={run="07c71gkxryhr6a1yjqyqypsmr4ns986g00nqi0ij823bz6q34hk2";doc="0mkgx4daalf59qrh0afd025r0p8nq2908f4fs1am0sy6svc1m16x";};
-xcharter-math-68992={run="1bys9mnl562jq8zr1zd98c3vyvpjw1xp7pblaxcwxwsy0zij8291";doc="1f9rm0ga8mdjkqj4qv75c73cc9jbkjj6bnm6s4ayf4lbqhirzjn7";};
+xcharter-math-70333={run="0gf3qz3wk6fg6p27wdkspg7saq8b8ji2dh0r66pjffkvj7vmj178";doc="1h9dsdyl225syhihzwkcj3v7lb55m4fhlbxwv5jq14wa46hsrafw";};
 xcite-53486={run="0zsfyaxs0w2xy6fa1s6hlrcnzw1q9n4n676bv6j80cwp5cw7nnhg";doc="1sfziwn05dii3gviiahvmg67kb04hzhz4cd1cwjsrrvnjii0dqb5";source="0j5blcycs86vgmi54z0b06il06zzyjp4v15lmdwfnx0amb9y8jr9";};
 xcjk2uni-54958={run="1x77gmg738r2zbyd0mc7q079hz5wbvabyszmwizfdj6vflm86w3y";doc="0xig1w251dsn2qd9iywcdc20plibadiw8hl1iwygpzfa3187djjf";source="12hbjjdypk0s5k5iaac80n2n4z1zlkg5lp59y58dwnn4y1dx6m6z";};
 xcntperchap-54080={run="0hqagjlxphvfqmslg91fpxngbm15i3kmawglszj8z585i0j570di";doc="0yf5ak4xr07jzlh8s087c7g8rfa71isziy1z13qy8ifv2882p9qa";};
@@ -4259,12 +4289,13 @@ xetex-pstricks-17055={run="0i37r4lk1l36cch6kjz12mfzgpg6hd7n903fzbj9h7mwmjwnrylk"
 xetex-tibetan-28847={run="0r8xgnagsqrkxr0ij0mcv30vhf7c3amyf9lk895lgwsvz6cysmma";doc="0p5l36zb8l3h4x8sjk8cwxj5psvfa4j0kg6jb93sj1ln3yfrwfr2";};
 xetexconfig-45845={run="1253njshiwdayzq0xir9cmbi8syhjb3sc4pyrw9p6kzyqvckkcxm";};
 xetexfontinfo-15878={run="1sc0lm5w94320f5abv2hw2bzqprhk73fjv2lkv380fgkpdfi7pdv";doc="14mc9snykdwzcmq013bs8vzn5w80lblpg05jk57g7fl2z9x6xl38";};
-xetexko-64894={run="03cqwgd87skkn9bxrmka5q0cfgz7wq7l2kln9apq35xhz6qr5hcl";doc="0iizxcn99c9qvm0l5d1724cw3x44w41rhhlb99kh16bjxs42xc2k";};
+xetexko-70316={run="0h689k5qdggf82pm3ccwpypgh25q7nk74m40h4cl3iywlqnixvy7";doc="1x5wc5sgf56j3cm825avjr2bwp54ncingq7qxc95x4w0qpxwwwvw";};
 xetexref-68072={doc="1gq31fz879pjzn1r0ksy9prhvh70wil785p5nsj2n5pa67hd1h5g";};
 xevlna-43864={run="16ayk70kxk2s23r6nxva1hkb1z7aw7zz1zhmcis1bsijx657kw25";doc="09aaf3mpbh07mix5xvr20zybbbrbgbwcmkd5q0rfsd0ac8cm72fh";};
 xfakebold-68929={run="1xmw5mm5r2r0bvqga95lvcyf5y0jf7hc40sgzdnc2dx9n8sizwgf";doc="06a3znvv53c3ymfh53f37anlgj8878n5mzcw0mdjszlg8q4bl914";};
 xfor-15878={run="0m4y0caa22fps0r6735kb9pr2f89z5a8wflzrvpbms4nh3a61zgc";doc="0c0qg60h631d3m9rqr0nwj9772zjv3ch0d2p1ksnqnjf30idydl1";source="16xp7hziirlnd507g9bjvszm90wk9iv6ankq8bx27qkyk1shhjfq";};
-xgreek-69268={run="13hvjamdswy98r0z19hgyq9nd4y7x4j1vq06garkpvq9r7x6v68r";doc="0dn65ndxdg10zfzr2s4ybsalcl3gymhygdbyl0cdzsqkcv4xj7d5";source="1g6vpqia7yffnkzdshhgly1c69fdrlphaziia2sgcp9zc7mdwlb1";};
+xfrac-69888={run="0pijfl77dmcxcjr52h3zg31qz4b7w43js0ydqp8glfakp27z7ibs";doc="1n2d59iii4in5nzayizcsj00f65jqla1v88sx4zxh0fba1fhwrpy";source="15gwlijdlsk85harpy40vd31zz613cd20rcx54xrkq5c15rm3pdd";};
+xgreek-69652={run="0gbhvh3rk466d81g9zw984bfx6mflzgd1wai8i0j2rgkghzm611g";doc="1507kgwd7509m5lyd9mzaj94rk6fcbi6cnngcndwynbrdmkd9l3p";source="1cpkh63qfk4m8766x8p6rq0bkc9nz7d7rldwynf8wzd6lkzyn9hl";};
 xhfill-22575={run="00lb01b27h1bg8h37rcm7wmqh5pc3gz7rkw0l6xrfai0mb8ypq2k";doc="0alaqaiz2dfk4sh4xgrxfrwxgisv2p0bfdz7ppiqmli10al1h2gd";};
 xifthen-38929={run="0ys8yq13vhval5jg9a4n4pv7b3v11w1yh63ssvyx3pnr767ay5r8";doc="1miqc1bfwi2ssl6yp9aqw7ygnars27vks0grpyfns494yimy8nc0";};
 xii-45804={doc="19jhzv5hqzj59wrfcr1dsj6z56qfckax694idgf8arri5lnbkdd8";};
@@ -4283,7 +4314,7 @@ xlop-56910={run="1clpl22vxgqjpzs0ypgak0d6z0sr6hw3gj18r7sgs2q0jf5m6715";doc="1acn
 xltabular-56855={run="12skn3ld5cjd8jvh32l1h86mcqmx03v2w04189rkxh2q90kyjmfw";doc="1lps5w6p2j0c1bszyrbwdfn9r7mii9k9k6ap9s2ssb2rrfzf291f";};
 xltxtra-56594={run="0zpvlsdsrn6pnlfd3aa23hcrjfnnrjivi7r61g25j9sqcx7cmkym";doc="12wp6zwqa5mi5i5ridd2amnr48xrkqmi92xdhh95ydijpzyslhli";source="0vwlj6f7z7fh1vx257v0gnxj29rp3xqjpxlnn156xp9i8i29v0hn";};
 xml2pmx-57972={doc="1d3ralqh0b71scd59b4hmm707yfrz1rj28ni2lzkhbb1ql73bvah";};
-xmltex-62145={run="06rhg0mgxsv4061w8k6parag7fkhrja81aj900mi65bdwmxqxxql";doc="0zjaf8nvsid88nrvzgprwjcm6nirs6glyy25xws57fa9yhza8di2";};
+xmltex-69742={run="06rhg0mgxsv4061w8k6parag7fkhrja81aj900mi65bdwmxqxxql";doc="0zjaf8nvsid88nrvzgprwjcm6nirs6glyy25xws57fa9yhza8di2";};
 xmpincl-60593={run="17p97mqcmy10hql3fvdkkjbmlnylhz852ckai0s45birpk6bvi8p";doc="1k532g5b8fm6ly9whah5133g6yngadb9w6cvf2apwm9hwx1pmnxj";source="14xwxsxfa8m8p2idzbkcjznh46np2fikn511bqw54k4k6991vmx1";};
 xmuthesis-56614={run="05z3pbc9gqfnzp4y4a5p6bmprsr1r63w9l442hgk3pshswc2dflp";doc="0dqmbdz0ydlq1hkz0s3lr12sia1qj7p912carwq4pjg9rrw98z7s";source="1c3a90gpb2siww65yc2l3kf91bf5xvxk9iq1s9cnx1ngxjbs7835";};
 xnewcommand-15878={run="1hqpc8p8bl56gzcmar6m670l6yq5arlh382s3m649lya35yydmms";doc="1r4wlg8368ax3p492qyh0nzxkfgkgvm5bzrbm0jhh9ayk9sp7ryf";};
@@ -4316,7 +4347,7 @@ yagusylo-29803={run="12p2kxrqa4479wrwcbbxsn5hknr1ai9rf1x76psfs43k9fh1pnn7";doc="
 yaletter-42830={run="13xizdiq8dj7iyjw7a9srhr24c1z6g50r44a7hjz0909z3b58j65";doc="1jgv50mssx6g94fh5fcysi884w1iah2qdwb0vrkg6952266gdkvw";source="0byfxy8h76m0jwgd4q0s1ar08sr9ys9jhvsz2l44id321w5276dj";};
 yamlvars-69071={run="05fjkphk70cqkgkd0gg3abnxdnnr4yyr6sd2pbkyh8jkc1pwadfx";doc="04cjg932c22v40fmka7baj17bs99awilgvmakdbcz4mqiaw9zmzb";};
 yannisgr-22613={run="0h61qn97l6k97zbgk0ghqgr4bf8fhbrb037gdskg2sgxb7zsl5wl";doc="1vw8p9xk3aj3lfsq8a2qv7qd00aqx22fs3427j31wnl1iymwycag";};
-yathesis-66146={run="1kbp66x3rh5mlfpakgfyfk34aq5wq7dbg3dqpy3g3cvlfjm5anwm";doc="0y1v78cy20i042fg02qq7ipqzrfn82hrgzfdxz6p68i10fmzpmi1";source="0q47z4k7k55n0wxabh3sjlfdd68nm8bmdy8hdkl0b5mfa5dh35z0";};
+yathesis-70512={run="010vlialskv4wsjx76d0z9d36g3qj185zs6raw0j8mgh3npqbr6n";doc="0hgs94kzl83h0c5971ga2iw30gkr6jhnv4p92lmcz7lp8wvjd12b";source="1zl69x9gy36ac5b73vrrdp084v7m3j8dqs8018grxq3jha6m03nz";};
 yax-54080={run="058i478l85ilq0asix6mkdn1kfzh2abqn9ngar6s339db4h81lxy";doc="06i376649jszpwgvb0bq8wxchjmhwjfvc78pl5q6q1ic2jpkq5pj";};
 yazd-thesis-61719={run="1bhjqd6k4lqk4sypssmrsjl9lqrbha9d0n42qbaq1mg5whpl2b8x";doc="0krsm9s3ym6f3d323scvxn8cf1wjqppglhmzbxwn0cpjq5nl01pg";};
 yb-book-67188={run="01ha50044ph7f19jrpkdlfa4idk71k21l28hwm67l4y1q6fyzrll";doc="0ckn24i29cqnlmvml5w77ws9rx9k380c470kv2b2d88709yzzqgf";source="1j29rgbdnlmi4a2px1y3xmq2lsdrwlmi9l3dqsac1lx45hpqmhby";};
@@ -4332,6 +4363,7 @@ york-thesis-23348={run="04c8g1wkl795caadm8kqfy6kdqqgwlk46lijpmyiiykbb8z54wq7";do
 youngtab-56500={run="18h6a4b4psbm0hjxq2xnk4bkmsa1wd2fvarrzfkhcj01hgn8bz17";doc="00jkdw02iary6s5szh7hf4qjlr7r8y9lfmvlnrpqkhh6pdhsy3jh";source="1hjqkj12jx9imfqm7y1mqdvp1knhf69kbixr88varbh09d6r9p66";};
 yplan-34398={run="1f2kxbb32hxwgin5bn7b78r8sqdj4v1q80sh1c87425zw8jyd73z";doc="1ls02mng1jwihz8s505brmaqcjn4abqys6bwl22dy855bw5rgr5k";};
 yquant-68997={run="0xlwjgc0lwls7zpgbd0v85cij3a66vsv2vwlr6a73s0bjyjy9akh";doc="043yq765f23rdhn3pmdwzy0q3x91hwaawfwakq93acwbx4mqjz8h";};
+ysabeau-69663={run="0gvy4jpi6p62fqa6hdqci7lwghv6a0lm0min20g9jp9h28kmlcwk";doc="04zmbl5vwgjq7w2189yxnad6cfnb5b6z2pkddd3bx8blg8g954vh";};
 ytableau-59580={run="0gfpxbvar3m21pj74j19qnj8qakbknhvssyvfyw61jwdd8ygdxkd";doc="00k10759qihk3330bwfpzmrm9bfb8513w3sak9jlfy5inay59rbd";source="05pxlbj3rdgr15cqfdxviyp2698b7l44rzgssx18yv2a8qnaxylh";};
 zapfchan-61719={run="1753lvv2bq29g43s4chc884n742695agvgal0b99gsrvlkyfp8gn";};
 zapfding-61719={run="17mls8wilz9api9ivsbcczpiqp1f39qy8wa6ajssi8zhnc5lq7zn";};
@@ -4355,7 +4387,7 @@ zref-clever-68846={run="0dgpx323gw46qi45wqvlyhsyw5d60i18bg7vk9ndkb6isvs9pdx4";do
 zref-vario-68846={run="0p7b9pqldlliwshm2xfm6c69is878nj52dgchx26dqhi8lx8l8dy";doc="0ck4h0wdm7rkhcb7bp0cksy2krpziyjykp15p0l02180c79mnp3z";source="12qsz4fn6d3gpxhi5ppfvzqcj04r9f88a5hj9691kqjwh0507zn4";};
 zwgetfdate-15878={run="1fgz3z1f9ifcbrwiq166hnff23gmlgp5vn0djm2znci26bcip4s9";doc="0gda7xd1sbiaaspb253xgl47jm6bcn8hj101m6ih69mxrka6sz60";};
 zwpagelayout-63074={run="0xl2qyq9037fjxwc6v9hz9gbb5fggqb2x93bibvhdb0bik6iw5md";doc="010120lcnx9d9jj116y6vskch3025jfi4v7xh6nyqlvirsjr4hk1";};
-zx-calculus-60838={run="12i0zskbwky4l81imz83aqi2g1jypy23nwv9fyc3rjlm6aarrzrj";doc="08clr1caznfygq0wqmi0w5955birqaiyvmvz5kjaq6qrzi9rwnns";};
+zx-calculus-70612={run="18yzx4q26yavj68j3v3iws35byqmsbc42w4awb0dbsg7cgdg5mk5";doc="1vc1sydsvn5vfra7d26c51kv81kkaqdgrk4fbq32gl5vj6ap2w0n";};
 zxjafbfont-28539={run="1zcyvwsqn2w9x9w79lvi736r2zwrsk2xdk6nrrmkiaq3cakd81p9";doc="0dfh592niw8s6zxmxj1sf8h02s2vz8s2ywd291946bb72xidb4gq";};
 zxjafont-62864={run="0p1zmf0bwd5fpyyz8cwdwc8pnxcqk31570p4722lzwqiplm0azfc";doc="16w7iqlb5zwz8qqyyscmyd0zdzb55n38gf10qd5cra6c161fi7b3";};
 zxjatype-53500={run="1ap4f0yq4cmkz5djy7mpgp32l24jr7xbxd9zc0nv1fvnywxpxfcq";doc="005rr69f433bllggj997rhbwlbmsglaywi55az5j02x0036aj2dd";};
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix
index 5ee4d4d6a79f..5aab1cb95222 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb-overrides.nix
@@ -291,11 +291,6 @@ in lib.recursiveUpdate orig rec {
   '';
 
   #### other script fixes
-  # wrong $0 expectations
-  bibcop.postFixup = ''
-    substituteInPlace "$out"/bin/bibcop --replace "basename(\$0) eq 'bibcop.pl'" "basename(\$0) eq 'bibcop'"
-  '';
-
   # misc tab and python3 fixes
   ebong.postFixup = ''
     sed -Ei 's/import sre/import re/; s/file\(/open(/g; s/\t/        /g; s/print +(.*)$/print(\1)/g' "$out"/bin/ebong
@@ -305,12 +300,12 @@ in lib.recursiveUpdate orig rec {
   # add runtime dependencies to PATH
   epspdf.postFixup = ''
     sed -i '2ios.setenv("PATH","${lib.makeBinPath epspdf.extraBuildInputs}" .. (os.getenv("PATH") and ":" .. os.getenv("PATH") or ""))' "$out"/bin/epspdf
-    substituteInPlace "$out"/bin/epspdftk --replace '[info script]' "\"$scriptsFolder/epspdftk.tcl\""
+    substituteInPlace "$out"/bin/epspdftk --replace-fail '[info script]' "\"$scriptsFolder/epspdftk.tcl\""
   '';
 
   # find files in script directory, not in binary directory
   latexindent.postFixup = ''
-    substituteInPlace "$out"/bin/latexindent --replace 'use FindBin;' "BEGIN { \$0 = '$scriptsFolder' . '/latexindent.pl'; }; use FindBin;"
+    substituteInPlace "$out"/bin/latexindent --replace-fail 'use FindBin;' "BEGIN { \$0 = '$scriptsFolder' . '/latexindent.pl'; }; use FindBin;"
   '';
 
   # flag lua dependency
@@ -330,14 +325,14 @@ in lib.recursiveUpdate orig rec {
 
   # patch interpreter
   texosquery.postFixup = ''
-    substituteInPlace "$out"/bin/* --replace java "$interpJava"
+    substituteInPlace "$out"/bin/* --replace-fail java "$interpJava"
   '';
 
   # hardcode revision numbers (since texlive.infra, tlshell are not in either system or user texlive.tlpdb)
   tlshell.postFixup = ''
     substituteInPlace "$out"/bin/tlshell \
-      --replace '[dict get $::pkgs texlive.infra localrev]' '${toString orig."texlive.infra".revision}' \
-      --replace '[dict get $::pkgs tlshell localrev]' '${toString orig.tlshell.revision}'
+      --replace-fail '[dict get $::pkgs texlive.infra localrev]' '${toString orig."texlive.infra".revision}' \
+      --replace-fail '[dict get $::pkgs tlshell localrev]' '${toString orig.tlshell.revision}'
   '';
 
   #### dependency changes
@@ -389,9 +384,9 @@ in lib.recursiveUpdate orig rec {
       TEXMFCNF="${tl.kpathsea.tex}"/web2c TEXMF="$scriptsFolder/../.." \
         texlua "$out"/bin/texdoc --print-completion zsh > "$TMPDIR"/_texdoc
       substituteInPlace "$TMPDIR"/_texdoc \
-        --replace 'compdef __texdoc texdoc' '#compdef texdoc' \
-        --replace '$(kpsewhich -var-value TEXMFROOT)/tlpkg/texlive.tlpdb' '$(kpsewhich Data.tlpdb.lua)' \
-        --replace '/^name[^.]*$/ {print $2}' '/^  \["[^"]*"\] = {$/ { print substr($1,3,length($1)-4) }'
+        --replace-fail 'compdef __texdoc texdoc' '#compdef texdoc' \
+        --replace-fail '$(kpsewhich -var-value TEXMFROOT)/tlpkg/texlive.tlpdb' '$(kpsewhich Data.tlpdb.lua)' \
+        --replace-fail '/^name[^.]*$/ {print $2}' '/^  \["[^"]*"\] = {$/ { print substr($1,3,length($1)-4) }'
       echo '__texdoc' >> "$TMPDIR"/_texdoc
       installShellCompletion --zsh "$TMPDIR"/_texdoc
     '';
@@ -410,14 +405,14 @@ in lib.recursiveUpdate orig rec {
     # make tlmgr believe it can use kpsewhich to evaluate TEXMFROOT
     postFixup = ''
       substituteInPlace "$out"/bin/tlmgr \
-        --replace 'if (-r "$bindir/$kpsewhichname")' 'if (1)'
+        --replace-fail 'if (-r "$bindir/$kpsewhichname")' 'if (1)'
       sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath [ gnupg ]}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/tlmgr
       sed -i '2iPATH="${lib.makeBinPath [ coreutils gnused tl.kpathsea ]}''${PATH:+:$PATH}"' "$out"/bin/mktexlsr
     '';
 
     # add minimal texlive.tlpdb
     postUnpack = ''
-      if [[ "$tlType" == "tlpkg" ]] ; then
+      if [[ -d "$out"/TeXLive ]] ; then
         xzcat "${tlpdbxz}" | sed -n -e '/^name \(00texlive.config\|00texlive.installation\)$/,/^$/p' > "$out"/texlive.tlpdb
       fi
     '';
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb.nix
index 7685359a3a23..9a69e03036c3 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/tlpdb.nix
@@ -1,8 +1,8 @@
 { # no indentation
 "00texlive.config" = {
-  frozen = false;
+  frozen = true;
   year = 2023;
-  revision = 69413;
+  revision = 70616;
 };
 "12many" = {
   revision = 15878;
@@ -236,24 +236,24 @@ accsupp = {
   version = "0.6";
 };
 achemso = {
-  revision = 65103;
+  revision = 69638;
   stripPrefix = 0;
-  sha512.run = "c611a28933960c49f383ddad8dcc8486403eba1e84e981d2221a8e8b6db607dadd93e6b58ffab1c0bfc19ef423b639c673693b113d7e158136c5c30555f68508";
-  sha512.doc = "e03343efd2179c1fb094fc5b7f46e078949f3ac75c311aa0559e9c3364c3178f3e8452c9a87b4952a76982754e57d5668970f8fea9ac508756aec45b6e11db38";
-  sha512.source = "ce918746855be7450b253d7cda9dd112fa40314538167deec1b86a58ff6fd69b68d2712789632b332acb1ce92dfe431346b57fd51f92d04aeb2540f4a35cc0c2";
+  sha512.run = "1a073188cef886e2eb5c6090a2f887d5c58c04d535981d1926a1b389130092bccb614c22b8b5b675d6d2d49208e4d05ae560966db39443cd822c59bc41e6af8e";
+  sha512.doc = "b26169bc393110b3805c4dfdd0fbb1838a469b6dd9664914a55eb7f1c031a4cfbca7e96cdbdaaf67329a48e3225e104f5d6a46b0b52384b77835a049151f6cf1";
+  sha512.source = "94cab70cfba8492f44a09a3b94e411cbd5b32f3dd5b9a17ca8ae1ff5bb6c5ac6c8a882f4fc94278bb267556ccb43bc981f24e4b6b47b5c9df90c81cb44005029";
   hasRunfiles = true;
-  license = [ "lppl13c" ];
-  version = "3.13f";
+  license = [ "lppl13c" "free" ];
+  version = "3.13g";
 };
 acmart = {
-  revision = 69242;
+  revision = 69721;
   stripPrefix = 0;
-  sha512.run = "c51a10fb637e62857d723f103fa9c28e2d0257ebf8a5eaa9968c32446bebde6d49627cd1dee965d2e6832575fe54438ee62585ae1cf833af93537b7ed3521cd0";
-  sha512.doc = "fd0ad303a63510061e6e43c64f77f9bbc27dbfdd6011195f5ae64d5ca0e7263aed3261853652dab1576a614e94de677f37a5a4e165d8d4d525a61b86f023b2af";
-  sha512.source = "b8fff464e69e493152c1fbfd7feda02471f3e7a8ce3ed9dcdbc2b43d8fa30a587768d7c63754dab2a8b84969e5671f2426b748297ac98096fc323f9937dea963";
+  sha512.run = "e40a361687d217e3dd3bbf1998c4c478e14cc758d3ae3d96ca19433b5cca576dfb93a53324253a2a282935d4b2802a103d36bd8b6f507f151187493c4be0e56d";
+  sha512.doc = "1b6dd7a2c478a4476286ca897b13b4ac005af6eb6201e53a173dbbd11fbd23a95d7f3b33ec28a373ead62ecf8a45c351fd8521376b803e321ec02e7da1ac7f58";
+  sha512.source = "f24476dc2ef09aaba2ec078e0895f9e6f1411c9c19d9703ab318eccb16ee04ca7e97a60c1fdfad13e89d61899d2fbd4d06108651512ea75d060448c4e7064e61";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.01";
+  version = "2.03";
 };
 acmconf = {
   revision = 15878;
@@ -405,13 +405,13 @@ adhocfilelist.binfiles = [
   "adhocfilelist"
 ];
 adigraph = {
-  revision = 49862;
+  revision = 70427;
   stripPrefix = 0;
-  sha512.run = "6a4684925e542a6ab0e3b97280059dc47fc892efdb99858370dca9dff91074d98030a93f964a5172bfa95a6dbf41f7a639977b0559332178ab8e4ca9dcb20e10";
-  sha512.doc = "763f94d22e939c255cb0b920183403d7c753dd4d77483b79f82f4a302375bee4ea42357091866ddc392b554c6dfb707c624fabfc3f92fb6ae07853e3ddbc8594";
+  sha512.run = "38a89fee26ed097a2395e43a86ddeb8d9b652e758f72413ae0f3a35b3130a1a742a94c65324708112f3d27b7317e01c8da2cf0ff86fe56d7221b92a60e7ff809";
+  sha512.doc = "c154996a4370d31e2f596a0a463189ae64c7f1b829b5269b8bb6c229ebbea888e6153d43f12577df7ad9feca4af2d3dddb23af7e03a63e44dcb88693873f546b";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.7.1";
+  version = "1.7.2";
 };
 adjmulticol = {
   revision = 63320;
@@ -610,17 +610,17 @@ akshar = {
   version = "0.2";
 };
 albatross = {
-  revision = 65647;
-  sha512.run = "3ca4c3ff3fdbb1b865e62fa96e984f94761bbce1de24cf09d7e5bdee3b4361c6536cfbd2119aeb6aa5df842228004cb78a27e2aa9e5e957cff59ef82b9fb459e";
-  sha512.doc = "dfc9cb6a72ec80fe5f240a8c50c8c98167d069cf13e3502ba281991deadccd094e369a2ef2ae6b089064de77d937c45ad3a3dc70c06fe6fc5e39190b7d652189";
+  revision = 69879;
+  sha512.run = "6bb925eff84c6d3fc3ab1b81ae50cf5fcafbc8dcadd5ae6076bc1280c427ed03896e8dcc5ccefe05e911b513a5da470312128c488a694c602a2cd9b3a94148b2";
+  sha512.doc = "d78c18b44d3eb60d6e991df864aeafd97366023aac7a732bbf7c67d0d677a76e0a89fadfba515cdfae1f1f7705323413bfd27100a3c09dbefa41918c3e29fd57";
   hasManpages = true;
-  sha512.source = "93b72dbb855302d42faed5be48e2e4f11ba7b91212a296eac0cda3f13c0eb89e857decff834f7cf05b9164d2ee2ef8eb6174f077026b285dded75e10c1086a2e";
+  sha512.source = "49ef73f529b8484def315efb0f9bef230697f532fd8138b42404ab5e98a880ea3d7e4ab660a9b3e83be73690f0a762ca09b1b9c964f9d461a0022853006d76be";
   hasRunfiles = true;
   scriptExts = [
     "jar"
   ];
   license = [ "bsd3" ];
-  version = "0.5.0";
+  version = "0.5.1";
 };
 albatross.binfiles = [
   "albatross"
@@ -881,6 +881,16 @@ amiweb2c-guide = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+amnestyreport = {
+  revision = 69439;
+  stripPrefix = 0;
+  sha512.run = "9fb76037c976d48259609295b876a256e5b72e611c7ece52cbc39b7df607d58a90ce2b0a0ff33d816c08f869e911a2cf979b8635a044697af8331d8769382be5";
+  sha512.doc = "e3a3989cd630e3776bfc103d5ebd7fcdd39464e49338b638b165e1c486a7afb58ebc907e2fcaaf008be5463f3496e66aa36b0bebea87d1d945a0497469f36eb5";
+  sha512.source = "bacce1f1ab7f2c6220c1fb59ecd63a4dc93405e57654390f377c5b6b511a5f732198e869b955211a752e94aa8c1601c4ea13d3d0aea7324a3ae38e035ff3e43e";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.2";
+};
 amsaddr = {
   revision = 64357;
   stripPrefix = 0;
@@ -1113,12 +1123,12 @@ antiqua = {
   version = "001.003";
 };
 antique-spanish-units = {
-  revision = 68998;
+  revision = 69568;
   stripPrefix = 0;
-  sha512.run = "d5b6208afb1e098a66ecb7f4f536d4b4f2762705bfb142e66e4f83e38670b88db1be5f04ce3c8c1f1db7feea8ac3d92bcbf5a1ff099f87a01f05503c881c92d4";
-  sha512.doc = "b25eaf2cdbddf60950478c26874ff99e62f9ca8b726cf533958a723652c56e32e7279cba9c4a861d670a6933639618902dc914102af1dd8e672ea9a1b38ae67f";
+  sha512.run = "a1203a09f77e3753fc28d632abc1c7d686085cd016acbab38a767b85a815d0dd05006e49b11524deb85bb8a20a3a8f413917529842f850d4efbe80b38c216ee2";
+  sha512.doc = "4c4cd96889c2f1db9766099de6d149963579d27256f44d555023e205ca09617b570237e7eec2b5523c61af4d1124683ade9eeed4a5fb96f140423176ef163cad";
   license = [ "cc-by-40" ];
-  version = "1.5";
+  version = "1.6";
 };
 antomega = {
   revision = 21933;
@@ -1396,17 +1406,17 @@ aramaic-serto = {
   version = "1.0";
 };
 arara = {
-  revision = 68431;
-  sha512.run = "142cbad66e19afd1190d4ce76962a133b6340a72d6dc5c77b4ff6898223a00bbbf4d4a9f1d089e5256084e6a277314d904790f55e35143a07c217ea2453c2238";
-  sha512.doc = "cbac6e45e0a580887ea8da3fb1273152884590a7b4a3dadf03676e89f9af056eb1f276e74d0445b059382afc6a7239edf8f9dadce549d3a6b55b7aeb244f63f8";
+  revision = 69878;
+  sha512.run = "c18444518e8cb66b44e49cdcd944895b0667d934460d0146940c87813e0c9a372fb273882ea1de78d4fc869d69ffb2ec1a41d863cd977891ce7937134464df73";
+  sha512.doc = "372e1053717395e960e2447622d262ee2b07594823f39fb845f5640d730a3590441aa5dd509e1f61be00abaa6df3ad20e953c66b7c27829d25b9ac68d0aa4423";
   hasManpages = true;
-  sha512.source = "850f8dc8292d391940340db96b5d53efd145924848f575719503f7cbf7c3dd1b87d274fa31cefd9ff3107fd2424c65b47e79abe6fbe3798f5c57f14c7c0960f5";
+  sha512.source = "0cd47d01d950c9ab685264027ae92c978a5539dc67b937d25e36a60e2a1ae50760f1da73be7e39132d74e5e4ea751c0a7ad9e9e00097bdfe270d235d87b64502";
   hasRunfiles = true;
   scriptExts = [
     "jar"
   ];
   license = [ "bsd3" ];
-  version = "7.1.2";
+  version = "7.1.3";
 };
 arara.binfiles = [
   "arara"
@@ -1476,13 +1486,13 @@ arimo = {
   license = [ "asl20" ];
 };
 armtex = {
-  revision = 64182;
+  revision = 69418;
   stripPrefix = 0;
-  sha512.run = "853eceb3256407c75cf7d74a514ab8c76f44229c80e740072c3fe2cff17eb47a99b683d089a30c759e6ec5fd14451ee9c94a290cc2606248b6e396f6ca7de5b1";
-  sha512.doc = "f26c90f18e534735f910f8ea34bce63f21bcb029b6b621398109adb4d99e6ef4470e76037a16b6a86b8ef8e4331267adaf3779772aadb1009d4222d500e26114";
+  sha512.run = "7acac8416e424db754f1e02844e175dc76c694d46efa30e1e29d855cbe3ffff1a50b95c38e2de2e88944bb11920cdf2295254b3855b5d6e13bfb930665cda8c2";
+  sha512.doc = "83b050d9bcfd2d4b7ff54458a559401ecf5abfb020c39b7b7c29f3fe9cc656980a63354df549ff4b93ec4ffb382e60578d5657c268ffb7282dfa5e45fc66539f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.0-beta4";
+  version = "3.0-beta5";
 };
 around-the-bend = {
   revision = 15878;
@@ -1676,22 +1686,22 @@ askmaps = {
   version = "0.2";
 };
 asmeconf = {
-  revision = 69228;
+  revision = 69742;
   stripPrefix = 0;
-  sha512.run = "1953dea9ef81dc53b06888b912a67de2427448d9d3b38ddc75ebf3714912ae0092d372f82e107b4bc312c0af032b73e6e056f4e64df29d76d01614ae339e9397";
-  sha512.doc = "fe442954eaa9726fbd7b1a1c58f799fb0c8fb0cff55dc0eeb7930a131c77470aa87db26c3178eda57d1fb3c3953178088a4fbc8d6e8260fdbb884b382c08883a";
+  sha512.run = "93b55a406a9b7b1e652babc788f9674ba27f29036aa16c25a3e531ff63077588807914d23c865eba55f73fbec04c3254eae837976591481534f773d72412833d";
+  sha512.doc = "2c70973dd40e2afab5bc777c6a7b64d3c86a09e15c62b2f719410de6d05925534071e91ebdc482928382602d49d54b3ca342a7886234a15ed3b54ae761f51208";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.36";
+  version = "1.37";
 };
 asmejour = {
-  revision = 68629;
+  revision = 69722;
   stripPrefix = 0;
-  sha512.run = "a2c37b69e147b7174335faa13522e00a2decf12f6a0fff45c6074c27299a5f71b80181d81265a1ddc7169e2f7652f60250e94222dcef1423de98ec30576aed62";
-  sha512.doc = "1a788cf31b7ef2a1cbf0a7d439b36ad80c786f4719a6d6138120d4fbf22208fc151300774da5718389fe22e0dea83fc8d9b41f0e96b1bb7426d0feab38b2e4ea";
+  sha512.run = "11e65ea5fa72880c52c63de1a7214de9322c26133722eed08bd54fba00f58f309f4d1a7fcb4a0112c1d66ca6be5fa3868f6779de8c47b660a143bc61855a47c6";
+  sha512.doc = "3af8026c3e0a77ca0f4ba99901577d253ac139fe049363994f56480cd6177524cb7a7dd5a4c59f436620a089ea08f2faf048957a2d2290800b71bf8a43d964bb";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.21";
+  version = "1.22";
 };
 aspectratio = {
   revision = 25243;
@@ -1757,14 +1767,14 @@ asyfig = {
   version = "0.1c";
 };
 asymptote = {
-  revision = 67300;
-  sha512.run = "327acc6f4d21a2babb4d10ce3e888e95027e11ab0466e5e98ef3fc8140f0553cb95e3f961534c614934522e7c995078ceeac10a7a62a64801edcbeb090e54bfa";
-  sha512.doc = "38c4adaaf073eee94398ea11e7b9fe671278dc8f326689500abdc1a5ddd34b5be438de6686f830928e2cf879c1dec6c332e9c7228ebca1fa0c31284593c2c619";
+  revision = 70583;
+  sha512.run = "8c147b714c3e57c569d9d93815ab6ebbabbd9be3a24b0dab724c32075d51e42f49f326de2babdfa6894056948e5904ed1b86cef88742d000e8b4e6244be868f9";
+  sha512.doc = "a81d20288e4c7b30c50fc32e5e28a30b5fa81ad01564c5935489c2b8e4749bc13871d7551927345452315d18f81102232ba35dc3de2a7415bbfb14d7fff12d83";
   hasManpages = true;
   hasInfo = true;
   hasRunfiles = true;
   license = [ "lgpl3" ];
-  version = "2.86";
+  version = "2.88";
 };
 asymptote-by-example-zh-cn = {
   revision = 15878;
@@ -1850,14 +1860,14 @@ attachfile = {
   version = "1.9";
 };
 attachfile2 = {
-  revision = 57959;
-  sha512.run = "57ef4d0c2de0cb854bb91b14a55921851a4abdd60221589f0655afc64a01d4bc672380fd572e0d451b6bac7ffd66f407b4ffab5f0fa1092dc8fcd809c81b23bc";
-  sha512.doc = "3033a58688a822f74712d072be3251c58b96e9e370859effc8a4ff7f8b9db98906c471a6472b7b9ab4b0d9725a9b53918e8b65d5bdbbed56e737addbe582737f";
+  revision = 69505;
+  sha512.run = "d741265618d75ab69a28983338276abb51382d797664bb9aae5876e054307e438b854b1981245a49b3b00052dfe6144993a465e56f1e9e1abc142d9dc78512de";
+  sha512.doc = "423718fc61b589d83da1cc0188667c8253b19d9a255f867a8c8a56e812d2fd04046aa5859657a0af88d5c377dc0b0f0fcb2ae8058e7e69ad9ef2099d0c8a7d5a";
   hasManpages = true;
-  sha512.source = "abd6284061c0f936df92479cd18c0440d654a8f6ca1d610f8763fc1af6668b3eb3d4efc2f4ff33a5b9192844083e55605fbeee2fe1bcaca8079fabf498a702fe";
+  sha512.source = "72f0f9292fe0588d4bb9577e42002576442d3ab19b3ba8eadadb6c874dbace9065a3e74a7818af1055bfa09bc9cd74d734152c95710e3951166eec385414aebf";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.11";
+  version = "2.12";
 };
 attachfile2.binfiles = [
   "pdfatfi"
@@ -2142,14 +2152,14 @@ b1encoding = {
   version = "1.0";
 };
 babel = {
-  revision = 69343;
+  revision = 69742;
   stripPrefix = 0;
-  sha512.run = "8c4b15316808e7de5c039082ecec99cb1d2ab72909cb5c85899180e55d7d425db4440fe6fa9b9f801345c34d55fcfaefba2296d424187bf6f809ca1dd96245dd";
-  sha512.doc = "5f6a02d13ca3e1104587595edffec7735d84ae5b4686692db04325a1bf3b82a45c08c8fb94d6cc79b0da02778e30f7eb8ff0473fcbb30e260022c647e4a8fdf3";
-  sha512.source = "fab559d1876e220830972bae45ffbc2f25c1ae0c0d16f0ba4b857bac5a6f92316bd45951b2fc4c718f0fe3947d88afa0aeaee813787b23040bfbffaf88018850";
+  sha512.run = "31b2c697f13df80472f5a209bb3b23ab7458e99c7329728ce767c1c116b7706465928541bb5b2f749b6e6d1ced4f43b92dd432e42c03660d18271a1bb243b2e9";
+  sha512.doc = "fbe053f25e6db1df9856c03813070842dac62bb9e4e541a8ee29e990ea52017824cb260d8fac4f8a9002d8d07b3dc0726795659b73e7c58db3c9f6b8b84c8b05";
+  sha512.source = "f71762c2f2062e92e74ad661bd3088b8e1102320c5e54e68be419b8f96561a1e93399204bb639e3416a081c651cd5cc198995d42556655772831766eca484da9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "24.1";
+  version = "24.2";
 };
 babel-albanian = {
   revision = 57005;
@@ -2312,14 +2322,14 @@ babel-finnish = {
   version = "1.3s";
 };
 babel-french = {
-  revision = 69205;
+  revision = 70261;
   stripPrefix = 0;
-  sha512.run = "ed7e71eb62c61cdc41c23a0e351d7f34b3b90fc245fd56129325774d64755e1bf42e755a295eb99ff39ad300945c3b32c514eab53a338195854fd9eef2c2c347";
-  sha512.doc = "fb42614164d9231fd23672f9f548eaad2501d416c51c2a08c5aa47085111140f1fb1f3519322d17f1b13601238b6167dac92669af43cee67e0a8fef0934d2030";
-  sha512.source = "8ccfec652d691199d0e6f51be21e6b4f77f49bcfe83c168a072443f7c16f518aac34b3221efbf2bfe1f8e5ac30e6db22b556bf2a4708d232b077aa6c52d190cf";
+  sha512.run = "5a0ad21862209980813cf8b6a89884ca977bbd2036b3e9c6217d2ae0f69f4c0e9567bf07afa4c9e75cdc6959b3169f270de38c9307c531a44b5ba07707c2e1e0";
+  sha512.doc = "2af045bb96ec288d4c314da7a3ffe82c3bb3e82ca0919a272fc43cfd5946a379f951c4a019c93f0af07da647c852f25af2f026310a435a82c0888f96c84cc263";
+  sha512.source = "a03e25b8f02430e117584880e2ca29802459a98dde97b380b71ffd4d2eb4c6db92cff33aea9c2bced5823fb5ec4d06b5ea428c99da85fadf9f16f3a3e5793c8c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.5r";
+  version = "3.5s";
 };
 babel-friulan = {
   revision = 39861;
@@ -2351,14 +2361,14 @@ babel-georgian = {
   version = "2.2";
 };
 babel-german = {
-  revision = 57978;
+  revision = 69506;
   stripPrefix = 0;
-  sha512.run = "0d7ee8aaf0b8df0040e3c7b6e41b999e21d79502dc084ef657392e2e4704101b49ef7b99d5b8059a6f271683c01a09ab19db3ec2a9c923a8bcdd14db819f6107";
-  sha512.doc = "59dbbb949ee4390c9891b0b2c44b93cf81c9b5da1be6c75ec6aa3b38a657aee6e28e7d02d0e188fa37c15647f40e553f13fd0f18845f4a8a3dfd9eb169886fb2";
-  sha512.source = "64880138c89fae929df6d7aea149ccfa79c7ec558ca307cd28218d891ae6f72e9042358ab0038b1850aa3d30b2d7d80eff2a60328ba37699f68c3d00cd341611";
+  sha512.run = "372ba15d67ae4a5299a8d193d4fbe1c01a89db686c4d152ce2fef05088be63e7d85a7cf4fb712629d1ec8b21517bf3881ad3de947e03e127af940714a6d059ec";
+  sha512.doc = "e4ca225a4fcb681c0b59d833fcc8a3781f1315adaf26e7db62f85aca145028f9f5f3bc7a19b7909220ebbbcbd25d2fdf2136d0f1ff5a5823e63c3362a24d9750";
+  sha512.source = "786bf7b892f48e09496c99b998c692f8cbcd40c2727700291fe1cc35518c3acd1caaeb0841bf3b1d05c3ed931aaa0d7ee6cd564f40b41e30fbec0f42eac48da1";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.13";
+  version = "2.14";
 };
 babel-greek = {
   revision = 68532;
@@ -2508,14 +2518,14 @@ babel-malay = {
   version = "1.0m";
 };
 babel-norsk = {
-  revision = 65093;
+  revision = 69603;
   stripPrefix = 0;
-  sha512.run = "e5ca8c827ddc30ca33b1fc3da98e6576938aef4041d56c77b329ba69851a6576f4315228bb5188dc09aa3180890f3545d0b24f31da89c868ea11e92263f2a9fb";
-  sha512.doc = "f67830ab2e6b46370ad0737b64149ee8e0c1c9ecd68920ecc0ff43518335e884941b4469d91d0202f6a7927c1e5eb44507a5e43308effd89e1f1846f80de5355";
-  sha512.source = "48506bcb93e7f8cb27b8c5e6257fc1e8247db04c94de6b9710438179647bdf6f1d9a0b5c811156bc79fb9ae301493df49536335a9b8fd939ae0852d4745843c8";
+  sha512.run = "cd5511b9ffa7a009cc9b330fadda4edbd431083a3301bd4722d19d9c9331cd160fbf79d0e246feb2d4bc69c6e2800931c4e697b9a052f92a424f5f59841840ee";
+  sha512.doc = "764700736d45202ac46553014d8382a26ac962d964bac3fbe9d1c90f341b99fb1dbd6a44348267d55f75228bd155aa70cd0080870b627910ebf0df0bf344e0cd";
+  sha512.source = "50e6bd75290194441785e04a4940c682f69896fb5e6d0e96492e0565f413bd6f306ce90b228f1a3abc9a88a2288e8db80a87c443a6fa1cae38f5b896c6fd7ad3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0i";
+  version = "2.0j";
 };
 babel-occitan = {
   revision = 39608;
@@ -2587,24 +2597,24 @@ babel-russian = {
   version = "1.3m";
 };
 babel-samin = {
-  revision = 30288;
+  revision = 69604;
   stripPrefix = 0;
-  sha512.run = "8a9e832e988da76ca26d87ab54438048d3d76cf02027ac9120d1277096d2495ece671607d32182cc5f9a61032b1ec33695f6592796680aaba0b65c142aa8a43a";
-  sha512.doc = "a8d43e73b4ab86378c5e3d2b402298580dfaf19afcce509ffa8ac747d68627c21b58020dd823528073240e1a28a2178157f9752d587286a0168fc3047cacd0cd";
-  sha512.source = "2e0fe9724a55daefdc3196fc2934d3551b4e738be4d6940a25a091c173f220f2853b077e5534ac20f868954e360e547fbc7d622507d227b8cb0bf7e074e57f48";
+  sha512.run = "bee2cb83522430ff8bc8e65513d2268a529a041b85b10315c4902749d840ee1716db45df56f259a7db726a94147fdebfa573e99b9e654c7ed4df87f5d574877e";
+  sha512.doc = "cf8a3c56fdc0474fbb3080743fa852dc22ea4f1c791f7d9b4779faa232442a22b46662c92e61bf84953c8312ae9fbea859282799b393701b0c176e4d23edfec9";
+  sha512.source = "85b57da2d3bf5dba4c9f02d10dedd4400696ba1827793e81f83343fbecc15e5d2fe507138c3c309c5c8b02f0e868606e344c05db9dc9c84b032e4132c65996b3";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0c";
+  version = "1.0d";
 };
 babel-scottish = {
-  revision = 30289;
+  revision = 69610;
   stripPrefix = 0;
-  sha512.run = "a2c708d9e116933fd00619fa8d89e30aecccbfe162c96eac22055bc442276863e8957481787d94a75507c2662ff4fcd13760b454d12b811dc4659205cdf5825b";
-  sha512.doc = "b32687935329933a733d239a58d7cbb7c4721c4fe37c703891547c2e6e82503235a0420890a9f025cb81a5c86148bd5ac2301da20d538781fa6f2831939c8009";
-  sha512.source = "8ec0b8a65d433f978db671a344ff22263929c96b742ab7c11c0b47eb2e2f2d652064fefb4a19cc3f91a95cf0abe3450574a3381917fbd239be1bc89d002f99e2";
+  sha512.run = "16632367173512a1ff0d678334071893efc91d9ca16279075a63b84acabaeaa8cd35263f56e6e3251cd57a77bdc9f0613c34e60f0acc8de14f4e0fafde751d81";
+  sha512.doc = "725a988893fa1cd3064136376de3475fc8da63993a40c0c63165b5c13fb4ae15a1ab856e2075e05d3a4e492d95d1aa12288b808ac3a1a15ce539a35edb289aed";
+  sha512.source = "cb640792dbfbe7733238aa67283b9ba954456246ad7ebfe0ba65bab08060e06a5dba7441fb2e6cb7c421584f8377273469477a5d1b6dbbe2c593f844aca80ae1";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0g";
+  version = "1.0h";
 };
 babel-serbian = {
   revision = 64571;
@@ -2637,14 +2647,14 @@ babel-slovak = {
   version = "3.1a";
 };
 babel-slovenian = {
-  revision = 57666;
+  revision = 69742;
   stripPrefix = 0;
-  sha512.run = "159e3fd820c39f64897dd26ab589cfb77a9d254cc75a0b1988d164cb9c989bc55ff2320d5d21b698928292a92ea6bd85b9a6cc489270ff13c2c13842d84b4c6a";
-  sha512.doc = "8df52574e61776f1d83301caad0f0a9e2042c88048034c6bcea23c4e08155fd1166de4c76584e3d462c5b1f914fcd38fd1eceb740a54e50dc2758ee892778098";
-  sha512.source = "3b630ef8368ba89c235930e9815350bc83331c82230bec549f86374e243c28bb0bb6615f55588245551add88d16284e90c6339ea548fc52b1236bd654b2a5d98";
+  sha512.run = "b17956aa2afda17c6ece09f372ed1777bfdecf358fee13260da6f73f971eecd5d315770d01e83def27edd2b06828065ba1f488bc3ee879539691424256c39ad1";
+  sha512.doc = "d50461bfd4b57dca583f53fb1afb1ac97382cfee1651d55538017d2990b331cbb471a060ad26fb86965f9d6b00f15da39011368bc9162120b188ad505d7620e1";
+  sha512.source = "e7ee24b9f25668e55a539bca4157b373303f36d4c79100e120e7f991f2cbd42efbd8d6c3c5be7a69f7468eee5c30330028175fce4efc06f779900da6ac3085cd";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2n";
+  version = "1.2o";
 };
 babel-sorbian = {
   revision = 60975;
@@ -3015,13 +3025,13 @@ bchart = {
   version = "0.1.3";
 };
 bclogo = {
-  revision = 39364;
+  revision = 69578;
   stripPrefix = 0;
-  sha512.run = "9afc02338b4141607cfd50d7678832304339d0b532464ada6fbc22c58d06dbc5a0793098c9e24617ba5296c3f7b22bccf16062017701608a758e4a26c05f12a2";
-  sha512.doc = "8671f8095005a0abec84a316da59f914d19d8fe0f4d33b13e73d6ddabcefd3ec7fedcfc8ce9dcf2ed3380a129f58bec16f73694a5d2769a18618142de93be38b";
+  sha512.run = "d3f060c91f1ec7f8c836e22b21dd735895055873807690c4d8fd3b90652a7f6f1648decc23f66a6d51c4970a27817642ea6e66b74b2affcf5c938c4707568018";
+  sha512.doc = "e8ec77512bfbfa00de03585ac9b0b47a03d60ab27f7a10303efa3e37bd285c8c0d959f3a5a013a300022121da6bf4c07d603df63faaf0fb44013313f8369aa5f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.1";
+  version = "3.15";
 };
 beamer = {
   revision = 69316;
@@ -3165,13 +3175,13 @@ beamerswitch = {
   version = "1.9";
 };
 beamertheme-arguelles = {
-  revision = 68659;
+  revision = 70209;
   stripPrefix = 0;
-  sha512.run = "e8b070e76ada96ff6a679c6c7d553d7ff67d4cc3fc792183bf68eee73fd9be3059eda0f0f7fe970655b6debef3af018b15b3a408bd494bdd506bf187d80055a5";
-  sha512.doc = "c9f34943ba6a1233f24be443a56abe9aabd51dfe7c4531ffbe793ddbcdeef637edf87686934b09e78bcf3213d4530165bf28646e86300ce790b94f0ad8fcc7b2";
+  sha512.run = "aac91e94a49c87b99e888542cb1d0ca043f6dd1513087daedd538d755989dc19f7c7201698573d3c3d9919a434b0d39d56ba6d33e22c240fd6579ecec6f215f6";
+  sha512.doc = "23219c4b8718a1d4c247ae2a733a3b371f3c96796ca0e020088fcb47b4d136670377a4f4b746e9ae260e6e32ef58e86edbea80f71716963272204df312072583";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "2.3.0";
+  version = "2.4.0";
 };
 beamertheme-cuerna = {
   revision = 42161;
@@ -3201,13 +3211,13 @@ beamertheme-epyt = {
   version = "1.0";
 };
 beamertheme-focus = {
-  revision = 62551;
+  revision = 69742;
   stripPrefix = 0;
-  sha512.run = "3716ecaa5471847bfd03dcc6b35fbd7d75497798cc289be1c3fd543d4bb063d8ee59955da47f91e5a8e8213c2ec0e5052df9dbbbce5bba702af4fe347a2c60f6";
-  sha512.doc = "b95f069cbf78cfac26bcd110de989a1609c891f3fde3e13f43c52b19e439a3915b034a25e3759b51bf5b98cbccd188f735cf8762453416d0350ad7fbdc652a9d";
+  sha512.run = "bb09ca551108dace02506987f246f1de4672444e8d6ca7f53bbf1cbfb573a7e07b3d2f937b4724821b30b60f1c63b360e200754957289c95379aab06dde14a8a";
+  sha512.doc = "5ca583264ee68cec6df53f5e4a32d4c3ce408372fd3ec4c8ec74f2757ac9f5e817a23ea875760994fd7e45a8cc2e45686251aa785adc960b5730c5059ab353e9";
   hasRunfiles = true;
   license = [ "gpl3" ];
-  version = "3.3.0";
+  version = "3.4.0";
 };
 beamertheme-light = {
   revision = 49867;
@@ -3319,13 +3329,22 @@ beamertheme-upenn-bc = {
   version = "1.0";
 };
 beamerthemeamurmaple = {
-  revision = 65698;
+  revision = 69742;
   stripPrefix = 0;
-  sha512.run = "d3ca653e4d21c08077e6957d2a2ea56f988100aee0c443428328506bd5cee2a739045c99c7373a8870693d76f844dc5ea192a1a69bae197c09eee4ac212501cc";
-  sha512.doc = "92c71d9ce3a124009ad3d72e4b46c8ccb3e49d4eeb193d53080a08f3917c065da44bbfe2ac1ec80fb9105cdf1e3a840e7df065a7b28151771fb5acd33ca66174";
+  sha512.run = "c325ebeec7588caaf8966e9b8a71069f1613d694537298afeeb8d01c6c83c7991e874bc5bd070e722e15ac83eb339581897a501dd187ea5ee4919ba9c14fb541";
+  sha512.doc = "371597bc1aeaa9c43fbef6b68234252535be41f442db6e6785605723b099b34e8cc01b1062ce1a831e62333f57673f49462eef082541c982b7bbfbac119a19be";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2";
+  version = "1.3";
+};
+beamerthemeconcrete = {
+  revision = 69528;
+  stripPrefix = 0;
+  sha512.run = "84f2729d5f5197d2dae7fe422f535df1f2ed14f2ae936f7c080d93f7aec2b949290406f31309fc76b21a4a80de733aadc6319a0e54a63482ea97ebc4bff773d7";
+  sha512.doc = "bca6cbd0b51e52446fa179d216a3368b5bda75e6e99abf3204297be3335f2aa2b6efe51dbcd1bf0bb589070ce30c030b6ea2bed868277953a5d60210b6bc924d";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2024B";
 };
 beamerthemejltree = {
   revision = 21977;
@@ -3373,13 +3392,13 @@ bearwear = {
   version = "0.2";
 };
 beaulivre = {
-  revision = 68376;
+  revision = 70050;
   stripPrefix = 0;
   deps = [
     "colorist"
   ];
-  sha512.run = "edef18ea01309678c4fd177b08cce8c5a59023cb521c9adab9cb88e096c3a4af3c2cbe035360f9310914252a9f0ca71a0bb4a8e220c75ea38fd2dfe8faf0d639";
-  sha512.doc = "8159204651670ac0ffb0d3d4b9121f573e86bdbaa5619ac461393d097f5d2a94dd547e3dfc83b6e8aad0b57dc2913bebaf77d41bd0355ac55ea4c74175a73922";
+  sha512.run = "e8566d352bb39bbe6256dabb57d6743db7dfc98e491683eab76ffa86ae9d6d0cf53726999620920b4845015bbbaa6cf48e8d4c82dbffd841d00d55bd2f2cb464";
+  sha512.doc = "efb52d0b4df908a4425fb9d5f2767c54dd7b2d614076374d81b15f53322528a24231feb9145de9bf1f0086a6ffcff37d529a925fca879984b4c5860b00b12a1d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -3391,10 +3410,18 @@ beautybook = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+beautynote = {
+  revision = 70166;
+  stripPrefix = 0;
+  sha512.run = "637e51a355d5f89c2e0241140780b221fabbb4685830c1ce9ccb5cb185c53f1cc4c3ffafe737df25445ef885958c1b5f6ba96a4a3de1169de7f2cf28095eea43";
+  sha512.doc = "36e71d750df5b5e5d8d05251a4be60214c09027a10c77551ff6261464729004fe0e3be586687af23db115b7cb4c99086dbe9278da0b8d6292b57005019628fc3";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
 beebe = {
-  revision = 69012;
+  revision = 70064;
   stripPrefix = 0;
-  sha512.run = "46ab5e24904f3a5f9fc3a548a13b78befed28d1d32aad38aa57a619313aeaaabcb5c131e14103c7c9c02b42297bc59e0a096872ecb3342cda92ec5e14e9c8c29";
+  sha512.run = "ff133e38a475bba0e8aea3a8a98d20ff1aa17eef7c0d0f5a6d404d51b1062c2a5957d3261e844d956f9a5e97fcc2d8a438beb5b724f84f8f3734091551e7aba0";
   hasRunfiles = true;
   license = [ "publicDomain" ];
 };
@@ -3611,20 +3638,20 @@ bib-fr = {
   version = "1.5";
 };
 bib2gls = {
-  revision = 68534;
+  revision = 69635;
   deps = [
     "glossaries-extra"
   ];
-  sha512.run = "98fa1d2a2af4c0bcb63aee20725206d015d9aeacae7291739d1b0e2a11acc2a0b447a6da8229bf1f09cbbedc4f5071401ec5f61a4a69e64658ad62e927e6618e";
-  sha512.doc = "6213d39c6029ce142232f077e65173b92b9eeb2c88b4d15431301687d4fcc16dbced3ab4817241a1f252c5e8eafd7f63f5bd71ce7d7dcd277b49bddbe351c93d";
+  sha512.run = "e73d6e0c7596252dade43291fb26ae02c0ed8f2650498294d2b1c36d69e777411fc1637619226f34f80c7e5cc06d3ae07f3b5d2eb144a2e69bde16a22c4aa449";
+  sha512.doc = "46d4a219969aaf897cb4c7705a00d1558b7b16cf0d4b16121672df8df2bdb0c0d0ee3350687b430f1d1d29eacee330aaee3206ef664c406c1d2b1c8c316de0ff";
   hasManpages = true;
-  sha512.source = "b029073dff63dd547fcb5f2359c0449e1d91c9eac243cc45a850fcce917db4fc22646bc45e47f5fee14b75ae67e75b13bf4677e0e76868c5a83e689411de28b4";
+  sha512.source = "662855e5579429694325042e0256385b9a5c40a4b54e6cf98712432469243de567cd5ea68f1ea93a593428eaeaf09d9d5a97e3e670dfe9ba90cd6f8c2383a3d4";
   hasRunfiles = true;
   scriptExts = [
     "jar"
   ];
   license = [ "gpl3Plus" ];
-  version = "3.8";
+  version = "3.9";
 };
 bib2gls.binfiles = [
   "bib2gls"
@@ -3641,18 +3668,18 @@ bibarts = {
   version = "2.6";
 };
 bibcop = {
-  revision = 69395;
+  revision = 69467;
   deps = [
     "iexec"
     "pgfopts"
   ];
-  sha512.run = "e4520627247c144f8fdaa3f3923f150297714171124f3e76e0d772ef0455d89c8229574a3e9bc8875c6902103465dace4eda81b0e30de3830152f3cd260bc794";
-  sha512.doc = "30ee2abd74da23ece25080c25c9c94bf44a54dea50088fa6a04109a7f67c9ddbd08973679499854cc4a29ed432a110283319cd2f8f53f6aed005a03218d0ab0c";
+  sha512.run = "e67e6471a9572f502db740cdac0540d3ce848a3cd36c976fb72a5bbe11626dfccd3c40ea75d86186d584c16d5809e99afd6cebe6fc27fb874685fdcb05da5341";
+  sha512.doc = "68d5b879566e871db328b92c8cd1d00c05698c07a140741d6584c5d3e2525725fe01e647938f396a505f6b28833d9df90b1984e334f7e781af2c9beb3f303209";
   hasManpages = true;
-  sha512.source = "e2bfecbc459f92887760ce2862874f05a392970c8d5dc5564a46128564f7da7d8dec4d4fa27ae4381efc79222760d76c74f19f5a6216fc234a377f83402ee0db";
+  sha512.source = "e7feec5a9ba4772e0d647d34782879c5c6b535f62df35382369f8b405f8b1c8e874db819b4c68f86e58f15fff938e7c37f4eb3476e8aff984890883a3e8e1924";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.0.17";
+  version = "0.0.19";
 };
 bibcop.binfiles = [
   "bibcop"
@@ -3818,13 +3845,13 @@ biblatex-bwl = {
   version = "0.02";
 };
 biblatex-caspervector = {
-  revision = 64866;
+  revision = 70496;
   stripPrefix = 0;
-  sha512.run = "803bb26a4abd4c735ea377c3ecf2b3906fb40f692529d54673ccb0cec3711c98563ccbe061a24025fcafb5b39c83a4d29f5e3d1bbd916380ce4396dd9f11a47a";
-  sha512.doc = "fca9d334178ceba7777055a3b9b98ccef673dc6d94812abde55d3d826db244eeff36dcc4e1b2157af10a0980e9f9f00a5c4d5b0c59a1d1e26f863708dd8cd6e4";
+  sha512.run = "74ece2007520241b51a8518613401ceb2c37da921126f78ccfc6bb3a81765e186793a94197138cc6e52610d87a5a81a3b5159370aedd32190da2fed22346b1aa";
+  sha512.doc = "f21b4c77c21f6a288bc7ea64e6959ae179117336e079ff4ef7ecf373b248ec2ad4b5c1499ecb39b18471ed33eec0fe11a0409e61761aff17ab73a7f01727ed11";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.3.6";
+  version = "0.3.7";
 };
 biblatex-cheatsheet = {
   revision = 44685;
@@ -3906,13 +3933,13 @@ biblatex-fiwi = {
   version = "1.7";
 };
 biblatex-gb7714-2015 = {
-  revision = 68240;
+  revision = 69775;
   stripPrefix = 0;
-  sha512.run = "6bfa18d733590bd1c361a47fef482285dc2357617e69f49edf0d398311ab038fac38d326515b840fbd46630171af004f4d66f1db3b4f77efed836e297c92dc66";
-  sha512.doc = "7aa9cea56196c395805b484e5f003a17215db968ee3e7fdd8aa1ff5976079be542adad8cbb25e0a874a1094f63a17efc4fba5a9ac70d22ac7bef739486ad9a68";
+  sha512.run = "1390d40d1a34caa69d4b25d18e0f01c81974ade6b778f6daa85bfccd17a4e749145640ea66a565e2919d61c642a1c0c24e6403b3e7a3b5622e1b644b559902ca";
+  sha512.doc = "18fd12ee1c680ba5e4fcbbfbe4e43f0d9163f7cf813ad20a0f264b37e252898b704a15c33c00559941d7b445b91b9652d97e46abf611ceee0885a96007279d69";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1o";
+  version = "1.1p";
 };
 biblatex-german-legal = {
   revision = 66461;
@@ -4150,13 +4177,13 @@ biblatex-phys = {
   version = "1.1b";
 };
 biblatex-publist = {
-  revision = 68476;
+  revision = 70515;
   stripPrefix = 0;
-  sha512.run = "b3a8bc7c370e1dd6f7545e878748ad7afbed934440ea37161f33350b8a277ec4ac4844ffb37273b282352eb543641ae77516d5bdc7c8245b97d2ff946d31dcba";
-  sha512.doc = "d5a3841a106272f32941d5a9f8e2d1544eaa431f60f630cffb1168d3e579412f5d867aff993d1f76fec7d1590248bdfdd5bce93a60f014c15f1275b800b7a1ac";
+  sha512.run = "6c93da7da5d847fedc4e383e759a8132053ba71bd3e5d33d300f1e31893b6f0c9e528e731e4973814cdaf597da2d22ba6ac4eaf9f75d82f47b46d41899e11906";
+  sha512.doc = "83c98481b654b9a905d4ff6b3ec0419dad60ef428fd2b5d8a4602b73f3b061864435be3f0259f5e74b14b7c5887c7a722c223baf519bc07ac46554de58746a60";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.7";
+  version = "2.8";
 };
 biblatex-readbbl = {
   revision = 61549;
@@ -4624,14 +4651,14 @@ bitelist = {
   version = "0.1";
 };
 bithesis = {
-  revision = 68634;
+  revision = 70136;
   stripPrefix = 0;
-  sha512.run = "617142849910c69e2986f1c685aa09f29375b83197dc6d964a887b50bc495f9501d578b6b7b3d2a6e78613a34b994a11f1160590e660a65e748c42504866ae1d";
-  sha512.doc = "6d5a915b04a096b1f5a9d9b9ed7bab9ae9e69886c3553778d5db07cbf8d2f0c183f2b86b1df0d2cb752368f192bf5e9252ad4c07071625659dca052c12ddcb25";
-  sha512.source = "8cef46e7e72dcc829ed8c9df27f6411b1b51a4fd3792a3d56479911ceb0e3197179a6e901beb49d4f91acdd5ac400881254c59a8162aaedded260b340cbb422f";
+  sha512.run = "d5b2a6bc2fc272a452a3e8f7e7c05244b701d77d409d026456826d63d11d7f5c0296f00980ab06326d0334c47fe1b2ba4f8397379e35ba3a8a64e7ca1071a3be";
+  sha512.doc = "8c31242c162f0d0927b95385cad88d9214294c270674ae5d1674f03e825e9d09cb93b26aa480ca7e38043038b9bfdfd7f50acd14e2f5644f038db451c2dc09a0";
+  sha512.source = "0d35711be0c9f09810429a72611892e2d0ee4d9bba4af3ea59379dec238509c057cc7ae1efdec4b531e78cfc7a96ef18309c374bc48408ff066ff7462253de4d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.6.1";
+  version = "3.6.2";
 };
 bitpattern = {
   revision = 39073;
@@ -4817,14 +4844,14 @@ bodegraph = {
   version = "1.6";
 };
 bodeplot = {
-  revision = 69397;
+  revision = 69742;
   stripPrefix = 0;
-  sha512.run = "ce07cd6d21576123e5fcbefe15417f90a3c8bb65344a0700cb017bbcf76a27b2a3938e7d3f13e12a06398f6af739af69d4e09e614f1ca58850f2d74150bedb71";
-  sha512.doc = "478f633335f8fd55c712c37b11f54523c9d51a650d9025bd0f09b4ba77241710a6921fac8caac6ab0c4aeab252ba89886871c3887b327d1abc01771e6e9c5618";
-  sha512.source = "53c0f4825ad3323af7cb59ee07327d628a075e86dc880edffcac25dd0b3891d2f156085764cf0153c4b7bb9549f6e9253d090a4b08c0d12d195e872dbab02686";
+  sha512.run = "596a8cca1eeaf49acf1f24341601b4b7b1ff64f5df72a811738d57e2d0e5644cc9f6096b15825f208068446dfd825f9fa61406451234669df95683f746770d44";
+  sha512.doc = "d0eb443a98da30d66becca6e48e4e66b4efaf31d0405ff5d559738018f0c760a660175978f603f9c648af4ba20942a58b82c45f5a5446f39d7bfa05c944b4db4";
+  sha512.source = "84b487c782ccbc9f8a76331a7a01f3059d39052f440db82ba93ee40f82f420f2ebc25ab8a9351deb0a1261603d0866a7acf89a457bdb2c0b446d541a6bd78163";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.5";
+  version = "1.1.7";
 };
 bohr = {
   revision = 62977;
@@ -5400,14 +5427,14 @@ bxjatoucs = {
   version = "0.2";
 };
 bxjscls = {
-  revision = 67657;
+  revision = 69637;
   stripPrefix = 0;
-  sha512.run = "83829f4785fbe8e283adc7c463bade1828f5bb3b401e0e3e632ca418754e76b8ab68f275e408cc779ee8644f4f90885257ac989e66982efe6b66d77ae2587d6e";
-  sha512.doc = "c5923edd13dee12f95611103de2926c03edad8cbe85259ac345d33ab164012e9cb4011381fd58a49f8a76ec1eb11653b6dc589b3c8a4dff2299b7140547e14f6";
-  sha512.source = "b111a7f4054086062db2f5686552b8b763f7617d5828a74b57462836c09284c7fae6666d2af2d4892b8a7fe2db9198f93ecefa38e1a152cea31c52ad35995583";
+  sha512.run = "bdcc01806c8379d02ebcb49c25bd497d11dcd3f0954dee7c1e1639c4cb3986a1bc54266e2f635c263058e1cdb34d540d52291cbe73502f02eb54d4b98ea3676b";
+  sha512.doc = "047fd7bca863ea5088d2e33d512a80879f72c32dd2e7bd3813fce6614d22f0285beb0adcd887f4528457db24472518663ea4e711d90e4fc0f36c8282db6672cf";
+  sha512.source = "5eecd3c63ba56bdae6a5a720aec1394649732db2acf7d25a6e3125ed742fb1033648edd7c45bd558f7dd3b9ea912617111b0846614546b89ab5f2aecdf770f00";
   hasRunfiles = true;
   license = [ "bsd2" ];
-  version = "2.9";
+  version = "2.9b";
 };
 bxnewfont = {
   revision = 44173;
@@ -6186,15 +6213,15 @@ cheatsheet = {
   version = "0.8";
 };
 checkcites = {
-  revision = 67201;
-  sha512.run = "f39c3d9dd2190ea9bd08ac323192197042d9a3899de22ca3a3fe05c0eaea0061f07fc3f53ea3c5f8c8b3bbad5ef4be0da7bf218238e660d28283bbf4edd02a31";
-  sha512.doc = "49760eb0be9ec54bb784f1b33ed5b86ce655b91b85e6f9a905342832aa4d4288138b82268a874f7b458ff87c8a94e4fc542dba3491b55a309915b6c3623e5de8";
+  revision = 70398;
+  sha512.run = "4782a9fb2223102492071b20efa40bdfaf9447165a108f680d2148c057507349a0c14f9274265ee2954b75e5f6fc8b1457115f60324e4b6598954babc565dedb";
+  sha512.doc = "dceee4bd22f760a6bc1a48fa49b0c68a0579123dbbb7422ce71db2eff910156425a0d90f62b9d62c4f4763d657c552f0cc5298a8627dbe98f0d5b6bca782b8db";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "lppl13c" ];
-  version = "2.6";
+  version = "2.7";
 };
 checkcites.binfiles = [
   "checkcites"
@@ -6295,6 +6322,14 @@ chemformula = {
   license = [ "lppl13c" ];
   version = "4.17";
 };
+chemformula-ru = {
+  revision = 70357;
+  stripPrefix = 0;
+  sha512.run = "ee12aadfaee03282e1cf9fcde69bf141abf0bcc5ed5a35ea78a54111494c5cb65f97a3bcdf8838a536128b05de1039a9caae7ef5078188811a54d12ec4f41855";
+  sha512.doc = "290b509e2eacd081d690f857ed2a2ba3f860ec25788150af8da5f3eedc5291bbfeea84e117d04959b1a30775ebe72e88f2c0a4a4dc89517ac81b239e3c001d39";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
 chemgreek = {
   revision = 53437;
   stripPrefix = 0;
@@ -6469,6 +6504,13 @@ chicagoa = {
   hasRunfiles = true;
   license = [ "free" ];
 };
+chicagolinks = {
+  revision = 70566;
+  stripPrefix = 0;
+  sha512.run = "191bdc3b9a732cf2153dd6d31a94dcf2a306cf1af9d1505bff28b47456a90c01a4d20717faa09b2a6875ba47852479c14e1de887a4f4b1165fa1aa9d648f3ccc";
+  sha512.doc = "9bd3e34a2d897859be082969ef65e8bbbff71e318ad5a1891b1b84334b80f29b1d16d29c318e7bccffd62121a62039cb89093e72163651d1ab84db0ddb279cef";
+  hasRunfiles = true;
+};
 chickenize = {
   revision = 57325;
   stripPrefix = 0;
@@ -6581,13 +6623,13 @@ chngcntr = {
   version = "1.1a";
 };
 chordbars = {
-  revision = 49569;
+  revision = 70402;
   stripPrefix = 0;
-  sha512.run = "1349aef2649fdd9b54751425d54cc9b0746dbcec9eebd1264c36867517c4f422d74d390a0e43d22fe81c5a36ff00e6cedc5e652183422e9408a2165486e79052";
-  sha512.doc = "ba8aae66430e2df58f01bb9860bfab9cdb3aa0636f77f657a1fe4405ec9397773b51b01d94201bb8dfc8660d05f2aa4ce9233ef985d3e4e35faf005c81759404";
+  sha512.run = "4049c18bc34bddb954779d2b534a84791967e6d9d5c246136a046e4358f3d2b7a0127705db5cb5ebcc0e822241dbb3c17dea23d194ea71ac6d7ca40d59b9b37e";
+  sha512.doc = "1a405a02e3fb813c7abd4c3925b0ccfe38129857ed5d23041ef2eab47f51206ac476727558cd50ac49b6eae3c8f67fdbfca6de252db0d95a951fc28add5a0a41";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.3.2";
 };
 chordbox = {
   revision = 51000;
@@ -6706,13 +6748,13 @@ circuit-macros = {
   version = "10.5";
 };
 circuitikz = {
-  revision = 69077;
+  revision = 69757;
   stripPrefix = 0;
-  sha512.run = "82eda82916370e8c76c450d74ffc4a77770a00aa0c65c4b53e46b1d6c2262db83af3290d220be14db657ad80ddca202535428d6e34af5a0e7b6348c01d8fb59b";
-  sha512.doc = "8dbe6c341fa86da01fcb3122531f1dae59abd3e1927d065ea7904294dabdf45746c52fa9b25b8a32a6234984afd8566b914c9e5b7b29a05337fbaecb4321c506";
+  sha512.run = "5d2d8699c29a209f6f4eb1df363acfc1a7bcda8e7a1b110f50dfb65b97c8b09911a11528e7b1d8e5b64d9fdcf1f9fdf4feae40cf71df9a11b01cd13d64cde91e";
+  sha512.doc = "398f50f5b9d0e288a7cd91e0ab222aa20877138f4ddd1963c72caa5724539e1b37fbd54503a24f234270393c6c7f07667d6a39a05dbca6199e9a52785312beb1";
   hasRunfiles = true;
   license = [ "lppl13c" "gpl1Only" ];
-  version = "1.6.6";
+  version = "1.6.7";
 };
 circularglyphs = {
   revision = 68476;
@@ -6724,7 +6766,7 @@ circularglyphs = {
   version = "0.1.1";
 };
 citation-style-language = {
-  revision = 68454;
+  revision = 70583;
   deps = [
     "filehook"
     "l3kernel"
@@ -6735,15 +6777,15 @@ citation-style-language = {
     "luaxml"
     "url"
   ];
-  sha512.run = "da914f9a07a02453627546719a1df88d3cc5520bd1530876208b2cbf0acee4536f043bb34228a54afbb86a4fe5ea9fe178102f61828b66b1eecd610cae7c473e";
-  sha512.doc = "3af7adda2f2cf49b178680be6bd72f299d04f515d4f8711f6830227a43292229704dfb990ceee289ef9b46afd1f057d53215dbf226fa99c41a218542dda74a67";
+  sha512.run = "76f5e35db0ad1ad5a2bc01a6680fc27f5721bdca3f7fb2d10c19e77583947f5fbdd7ea79b8ac63d322418eff0f48b2d45384d0be195eb43b502548773f0da291";
+  sha512.doc = "3a432364b82ccbbe402e5aa10e2c17ff5a9d6e9e8611c8ac0e8385fbcc43418adf9a3d2237d10fe9f98e8b60336945fa5ade19583f35c9224a5ec3885932559b";
   hasManpages = true;
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "mit" "cc-by-sa-30" ];
-  version = "0.4.5";
+  version = "0.4.7";
 };
 citation-style-language.binfiles = [
   "citeproc-lua"
@@ -6824,16 +6866,16 @@ cjk-gs-integrate.binfiles = [
   "cjk-gs-integrate"
 ];
 cjk-ko = {
-  revision = 67252;
+  revision = 70332;
   stripPrefix = 0;
   deps = [
     "cjk"
   ];
-  sha512.run = "8eb4ca863ffdcab233a353629f40b87264903d2cec2a79088a8f92a705b78e5172228ca46cf4f3ebb78ec5e8bca093917bf191baa7184f805003ea1f3019ea8b";
-  sha512.doc = "75c041a2fbaca6977a96efbe7f5c37729d85c2f0903faafcdd69eb1425037e8a045a394b6c65b8914e0d10c831a63c58bab111491e3670e5cdedbb4a73b2e3d3";
+  sha512.run = "e5b28f36f37e407cdcebf10dbbcc34b4a286b6bf04e6722c1821ca9cde7037893109a81e5195622b5c57de726c408371734aa69b0e1cebef25508794e86a1422";
+  sha512.doc = "cbd60b19403c80674b3d2954dbc2728529b81c38fdf84ad25607e188aec9aa14c5496b73d5c998773ebc9a4825748f85a5b6f37f53fcf8fdccd99f7288f6f426";
   hasRunfiles = true;
   license = [ "gpl1Only" "lppl13c" "publicDomain" ];
-  version = "2.4";
+  version = "2.5";
 };
 cjkpunct = {
   revision = 41119;
@@ -6960,12 +7002,20 @@ cleveref = {
   license = [ "lppl12" ];
   version = "0.21.4";
 };
+cleveref-forward = {
+  revision = 70181;
+  stripPrefix = 0;
+  sha512.run = "bf65342e8e5d0a1299e160611044f17a6f68df342ec9bdcfe64c09ed766a7fe72b39a4d1915011b077a42261686a066b8b435f36ec6d2e0b72324cc4bc9e1381";
+  sha512.doc = "b89360c16f6f77ed7386f51afcf4e46aacdb6d1f567fa5dbd4d05e46953d1a0cfba24af687abae59a72189ad84eb475d80ffb6c613ba8b3a88a91c9008a1ffea";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
 cleveref-usedon = {
-  revision = 66915;
+  revision = 70496;
   stripPrefix = 0;
-  sha512.run = "6004d6bb5fe8c93d2c48219c1c464ad26ee1ba4b31d15e0ca55b49df9218dc974e863f975e2d4f254c2e41197bb60c4722c126660919fe07d1f0e502f2bb13ea";
-  sha512.doc = "f8e2efa3de278d1ee600f844e0cbd7da73e105003b45f103fc0f1c3aed9df4dc622302cdfcbe77646322e29a0451856816ff9ecd908e1d882f7829f9aee5cf1d";
-  sha512.source = "acc43cbb720d9feb8b4535b60fe613583192b5c6907e00db495cc03432e1bfcbb99eaf99208213e1b29140766f16d2246f6232f3a3929e88d00ec581a39bec1a";
+  sha512.run = "2703d610437ab3f244f0e627310d4cb5b5a6a29e29d04458eb7a566bc97a62882e3a5e14bd4717baa77b9062338d91fcbb0b0b05fbc257579b94d8ff550c96e1";
+  sha512.doc = "7b967ed70196eca0537012c97dfe91613e9e54a387c0365acece66132cf513c2c1fb7ffd030e0f18c2ca079be4fd5f7ae8f47959ed1d127251febc3b4f422454";
+  sha512.source = "c082df105534c961fb1e28065aecebaec2a8d03f2d450d7ba96871f06c9eff232b61b5a4e2ea142f62a720f04d776b6a3ae21f11bdab77dc6c2a95f4db6ce4e6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.4.0";
@@ -7267,12 +7317,13 @@ cmupint = {
   version = "1.1";
 };
 cnbwp = {
-  revision = 32550;
+  revision = 69931;
   stripPrefix = 0;
-  sha512.run = "31c83774160e64dadc95afebe830ea1aa7c929e48f611cf5c9742cb66e12a3dd459928c85ed1378460247241fd4f007145b002ae7aabb88e773779124510c86f";
-  sha512.doc = "d41f72a3c5482b1ec50f1bacbaf8bed5f926c5d522ab5e3574d71d68b2d7c63e20fa1df65962f94e53b70f75aa7dee5337d064c212990c0f3351c30b05b567ac";
+  sha512.run = "1e52436349c9f43a04b40ded7f35092d644ea056b5be1f91ce9efc20a5c47211017cb000ba5b3734d29fcf0553e61193cfa141ea945367362c924a061392b2a8";
+  sha512.doc = "685c09924feb372af74ff578a74c4a4ed24a7b9ddbac65d8f8e2c17ba4b80e7f34d49d71ef9251b619b363a83dbbe12114aed547bff6e29d7053261cae169d22";
   hasRunfiles = true;
   license = [ "lppl13c" ];
+  version = "2024.02";
 };
 cnltx = {
   revision = 55265;
@@ -7311,13 +7362,13 @@ cntperchap = {
   version = "0.3";
 };
 cochineal = {
-  revision = 68904;
+  revision = 70537;
   stripPrefix = 0;
-  sha512.run = "43b896ccce0842cdc7ceb207932c1f112334b27fa11c8431c6d2561ab0b17ac6f841ef3d9ecdb27e8a7c3976c350edfa115bf927c205a4cb493f66b35eaea357";
-  sha512.doc = "16e0783a4a77d96c96d26bb7d04723dcd5fe882da39a9214b4c84bbcd5581aeba331c0c7994a56d6199385ab54ed5cd47bd9dfaab92dcc44f940c0c2d9afdf4f";
+  sha512.run = "c8468bf472552dbbcbb84a5134a5ddc84405aab0d3b98015aba60d6da0e02896d929582778bfecf3694a7a0174d31214c9231a1da11284af6fdf3362b95e179b";
+  sha512.doc = "43f7de109858a3e9a120b51022d3cab77dd0ae4ee2dd5e2d032ed3f9ba669ce2f5280bd359d8dbf158181727442e1e00ac8914d8cbe3edb93c40ab01362a2dbf";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "1.081";
+  version = "1.085";
 };
 codeanatomy = {
   revision = 65648;
@@ -7339,13 +7390,13 @@ codebox = {
   version = "1.0.4";
 };
 codedescribe = {
-  revision = 69343;
+  revision = 69944;
   stripPrefix = 0;
-  sha512.run = "9d1176a6934468658a99d00f862ff2554fda33ae7e458409c3dab3df42afcf093f3d28263f8f7b431024df1b67f969ac808806b222ba256d27793a4b1e7a2865";
-  sha512.doc = "2540adbdb84154d3fa96a74e716b3b7051f4687852f873b67a0a0bbe6bf9e932b3bb19eee07b0e4cf7299e3f1d06983b4faeec77182db0e8676f53b2aeaa2776";
+  sha512.run = "5c3fa3c2843820575d28e1c9adced0cabf0f19fc4ae8022eef4fe18f18cf9cffe8582cb4d8b2f5d064bb5f836641f2229a6f0b6976556a9bec4ae66739b48c00";
+  sha512.doc = "305c4b68a7011697c750789cbffcf09a45b3704ded67538efd6ef134c499cf42c50ff3a6503350b75cdac07574360941f66ccb67044a5f5db4ba6f050604c3f5";
   hasRunfiles = true;
   license = [ "lppl13c" "gpl1Only" ];
-  version = "1.3";
+  version = "1.4";
 };
 codedoc = {
   revision = 17630;
@@ -7490,7 +7541,7 @@ collection-basic = {
   sha512.run = "4241bc3a3ef21502faa9a2e0b16295126c357fc15813a625306552b40f9da804164abccce642f4ec1e677092f81d61381958b87fcf515120a12f9b7a19055370";
 };
 collection-bibtexextra = {
-  revision = 67386;
+  revision = 70566;
   stripPrefix = 0;
   deps = [
     "aaai-named"
@@ -7592,6 +7643,7 @@ collection-bibtexextra = {
     "chicago"
     "chicago-annote"
     "chicagoa"
+    "chicagolinks"
     "chscite"
     "citation-style-language"
     "citeall"
@@ -7659,10 +7711,10 @@ collection-bibtexextra = {
     "xcite"
     "zootaxa-bst"
   ];
-  sha512.run = "652554e2038407c987a3aaf73f206b228728ec7848c737de8c6267abb0b20054846fcc74400fbf4a802c8efa1dff2d4174e9d4725b41a7816e25c9c8d1cfd848";
+  sha512.run = "8a96e8a580846ea80c0be60ba037e761f5d695eb184c72da71709bf528368ac18464cbf955ba5fc6e6b574aa9ad76d2e26797907f141753716c0deccf625d6d8";
 };
 collection-binextra = {
-  revision = 69128;
+  revision = 69527;
   stripPrefix = 0;
   deps = [
     "a2ping"
@@ -7738,6 +7790,7 @@ collection-binextra = {
     "pfarrei"
     "pkfix"
     "pkfix-helper"
+    "ppmcheckpdf"
     "purifyeps"
     "pythontex"
     "runtexshebang"
@@ -7774,7 +7827,7 @@ collection-binextra = {
     "xindy"
     "xpdfopen"
   ];
-  sha512.run = "e397e1e30540ecdbefb7017348dde411b1287fb5c3a395d963747e74bd6e67fa5abd1f5137ea57e5f2eedcff1e89ca8fd1bcdc9aeafc2a969821953343e13620";
+  sha512.run = "2edd9aa26368452ebbd775da1d6223fa08141a55221594113b184243e05e1c4b841e7984de3df9ed6eff93f24b6391724eb454475cb774b693de6a3f901c8012";
 };
 collection-context = {
   revision = 69108;
@@ -7807,7 +7860,7 @@ collection-context = {
   sha512.run = "a8426893d3b9cfbddfffa383dc7898f7abe48271695dc6835abb2cda70ca1998d65eda2acd716a13ef4239c8ca8528c92b2c679510d6785ef38bf554b81a6cd6";
 };
 collection-fontsextra = {
-  revision = 69278;
+  revision = 69663;
   stripPrefix = 0;
   deps = [
     "aboensis"
@@ -8164,9 +8217,10 @@ collection-fontsextra = {
     "yfonts-otf"
     "yfonts-t1"
     "yinit-otf"
+    "ysabeau"
     "zlmtt"
   ];
-  sha512.run = "1a80dbc68b0a3a248fdc699013f7a23796ac9c6e2ae7e3135878f9d5fd6ee17ec1c809ac906804f1fbb3bc43451ee969d48247d9ab9125b681dbb29209892df2";
+  sha512.run = "307728e63dab6f629ac955def8049a9c513fed366ebbf6896bfe21adbe3379941a85ac01dce0647393801ed1d6e4a95d6831e476d4d9805e815ba197f006b99b";
 };
 collection-fontsrecommended = {
   revision = 54074;
@@ -8264,7 +8318,7 @@ collection-formatsextra = {
   sha512.run = "6c7f0a1829789edea6a42d45f13f482abc0aa1ecc66b0ba4b70197efff349df75c9a89a98f21537cf6f3751b608fc3ee10ac842613deaf2aa21005374a23bab2";
 };
 collection-games = {
-  revision = 69159;
+  revision = 70179;
   stripPrefix = 0;
   deps = [
     "bartel-chess-fonts"
@@ -8317,12 +8371,14 @@ collection-games = {
     "tangramtikz"
     "thematicpuzzle"
     "trivialpursuit"
+    "twoxtwogame"
     "wargame"
+    "weiqi"
     "wordle"
     "xq"
     "xskak"
   ];
-  sha512.run = "29cd464cc85a8632164c26468b441ddc97133e4e5ca291d9939e7c0c22c60c7a02df91d1e3cdf925b803976bd7f089d8c7e2b63cd32fb88f8760f546be921160";
+  sha512.run = "005e7e6ea5401369c09bdbb94a1bf6a2f8f35223d5a10ffee524481bfe4033c544aea2142a8af721ea62f6f0d37db84874c3214c857003b82a8ee2c191d0cb5c";
 };
 collection-humanities = {
   revision = 68465;
@@ -8494,7 +8550,7 @@ collection-langcjk = {
   sha512.run = "bee71f9df25db567c0930659e5037d1b6144d5c157e0870e9144f82c6dddbd9df156e580583c65f1bf5f54a70c9fcab108bd117e74af0e28d72a33f6b78207d1";
 };
 collection-langcyrillic = {
-  revision = 54074;
+  revision = 69727;
   stripPrefix = 0;
   deps = [
     "babel-belarusian"
@@ -8528,6 +8584,7 @@ collection-langcyrillic = {
     "lshort-mongol"
     "lshort-russian"
     "lshort-ukr"
+    "mnhyphn"
     "mongolian-babel"
     "montex"
     "mpman-ru"
@@ -8545,7 +8602,7 @@ collection-langcyrillic = {
     "ukrhyph"
     "xecyrmongolian"
   ];
-  sha512.run = "43ba5d0f21162fbdb6fd0e9dc7c990fa845918704020da8ca5c6770139370be55f4b707f98708c28b472f9500ee25ea734bdd96c5541a22e66b69c03ae777ad0";
+  sha512.run = "d20f02886419a9c65b665fec5a65aaf232a2ae51ccccd159b611278887d0349bbc2e66b7f2f5ade9b79b918cc6a4cae30268b3472ef3d5441e8922b9c28a1413";
 };
 collection-langczechslovak = {
   revision = 54074;
@@ -8895,7 +8952,7 @@ collection-langitalian = {
   sha512.run = "6ec5e8a62e3c1ed8e3c23542381091d38c77af507af7088a55e44f1e34b85d01ec19342db4541d9d6cd712c0929d54a3fc663e1d8fde3c53fef0d6fc43be4994";
 };
 collection-langjapanese = {
-  revision = 64603;
+  revision = 69967;
   stripPrefix = 0;
   deps = [
     "ascmac"
@@ -8954,6 +9011,7 @@ collection-langjapanese = {
     "pxjodel"
     "pxrubrica"
     "pxufont"
+    "sjtutex"
     "texlive-ja"
     "uplatex"
     "uptex"
@@ -8963,7 +9021,7 @@ collection-langjapanese = {
     "zxjafbfont"
     "zxjatype"
   ];
-  sha512.run = "d9f73ff10afe2c91f9f6ad0e92ddcf8425ed7f51c7f08d291451775bcfcf3421d8d2afd78c7dbdceef995ac5a4262df89afce2b35e6c2dd064e8a310e1025f67";
+  sha512.run = "18296a73452e8d346ba10b8241adfdb6b0a258dd443517a566e415f418e7c158c6d179f20c5818a36fcb12bce816571c0d317120f033ca1f20c5acfcfa00074d";
 };
 collection-langkorean = {
   revision = 54074;
@@ -9189,7 +9247,7 @@ collection-latex = {
   sha512.run = "889eae40b82f31c7c4b3a17740399c763dabec7986fcb39261b252afff69a03a16e660b114e358cd72e3fafa14a158849cf03aa2ad4d73a5bee4ca9abc4c24af";
 };
 collection-latexextra = {
-  revision = 69389;
+  revision = 70534;
   stripPrefix = 0;
   deps = [
     "2up"
@@ -9255,6 +9313,7 @@ collection-latexextra = {
     "autopdf"
     "autopuncitems"
     "avremu"
+    "awesomebox"
     "axessibility"
     "background"
     "bankstatement"
@@ -9288,6 +9347,7 @@ collection-latexextra = {
     "beamertheme-trigon"
     "beamertheme-upenn-bc"
     "beamerthemeamurmaple"
+    "beamerthemeconcrete"
     "beamerthemejltree"
     "beamerthemelalic"
     "beamerthemenirma"
@@ -9295,6 +9355,7 @@ collection-latexextra = {
     "bearwear"
     "beaulivre"
     "beautybook"
+    "beautynote"
     "beton"
     "bewerbung"
     "bez123"
@@ -9388,6 +9449,7 @@ collection-latexextra = {
     "classpack"
     "clefval"
     "cleveref"
+    "cleveref-forward"
     "cleveref-usedon"
     "clicks"
     "clipboard"
@@ -9551,6 +9613,7 @@ collection-latexextra = {
     "diagnose"
     "dialogl"
     "dichokey"
+    "didec"
     "dimnum"
     "dinbrief"
     "directory"
@@ -9616,6 +9679,7 @@ collection-latexextra = {
     "embedfile"
     "embrac"
     "emo"
+    "emotion"
     "emptypage"
     "emulateapj"
     "endfloat"
@@ -9739,6 +9803,7 @@ collection-latexextra = {
     "foilhtml"
     "foliono"
     "fontaxes"
+    "fontscale"
     "fontsetup"
     "fontsize"
     "fonttable"
@@ -9776,6 +9841,7 @@ collection-latexextra = {
     "gcard"
     "gcite"
     "gender"
+    "genealogy-profiles"
     "genmpage"
     "gensymb"
     "getfiledate"
@@ -9951,6 +10017,7 @@ collection-latexextra = {
     "labels4easylist"
     "labelschanged"
     "lambdax"
+    "lastbib"
     "lastpackage"
     "lastpage"
     "latex-amsmath-dev"
@@ -9995,6 +10062,7 @@ collection-latexextra = {
     "listlbls"
     "listliketab"
     "listofsymbols"
+    "litebook"
     "litesolution"
     "litetable"
     "lkproof"
@@ -10101,6 +10169,7 @@ collection-latexextra = {
     "modref"
     "modroman"
     "modular"
+    "moloch"
     "monofill"
     "moodle"
     "moreenum"
@@ -10311,6 +10380,7 @@ collection-latexextra = {
     "pstring"
     "pxgreeks"
     "pygmentex"
+    "pynotebook"
     "python"
     "pythonimmediate"
     "q-and-a"
@@ -10323,6 +10393,7 @@ collection-latexextra = {
     "quoting"
     "quotmark"
     "ran_toks"
+    "randexam"
     "randtext"
     "rccol"
     "rcs-multi"
@@ -10525,6 +10596,7 @@ collection-latexextra = {
     "tamefloats"
     "tangocolors"
     "tasks"
+    "tblr-extras"
     "tcldoc"
     "tcolorbox"
     "tdclock"
@@ -10620,6 +10692,7 @@ collection-latexextra = {
     "upmethodology"
     "upquote"
     "uri"
+    "useclass"
     "ushort"
     "uspace"
     "utf8add"
@@ -10718,10 +10791,10 @@ collection-latexextra = {
     "zwgetfdate"
     "zwpagelayout"
   ];
-  sha512.run = "9241966245fa9c875e458a781779f1ab00b615cfee8e5b4a591bd2fe71ed0ef148f7ed40559e7a54c6a46c63305838bb2e46634a2f434d550e80366af2f329a1";
+  sha512.run = "98a00a699b249cc95f5466322fff70b07b94a3e3941b10dbb2a052491e23e733f902c9281a76279363b55a5b59c0d5afb84017c4bba48459525e22c431876dd9";
 };
 collection-latexrecommended = {
-  revision = 69131;
+  revision = 69888;
   stripPrefix = 0;
   deps = [
     "anysize"
@@ -10793,11 +10866,12 @@ collection-latexrecommended = {
     "underscore"
     "unicode-math"
     "xcolor"
+    "xfrac"
     "xkeyval"
     "xltxtra"
     "xunicode"
   ];
-  sha512.run = "586232e420ea3c53c4c9532252681a8ef20185348deba9e1f37c1e0231203a8d4955dc27c067ab1491ffbaa8f267a34d09cb6c48536f871da3fba8ae15c1f910";
+  sha512.run = "edaa03608bca82f73cc7ac7114443536570bd6774cee90ba4058996096f3f461a2198cf89d90c3e749bc5305447f32b3facff5c26fa56a5ac5a3eee71cf30222";
 };
 collection-luatex = {
   revision = 69404;
@@ -10909,7 +10983,7 @@ collection-luatex = {
   sha512.run = "d03b9242340be7be8c32e87c2773bb8aecd4a6b7e1594fe755d9955f111dad4863e497bd3f374140c162b84c6c90379ff86c930267ab5c6d26c3cd0e3968c745";
 };
 collection-mathscience = {
-  revision = 69267;
+  revision = 70357;
   stripPrefix = 0;
   deps = [
     "12many"
@@ -10953,6 +11027,7 @@ collection-mathscience = {
     "chemcono"
     "chemexec"
     "chemformula"
+    "chemformula-ru"
     "chemgreek"
     "chemmacros"
     "chemnum"
@@ -11059,6 +11134,7 @@ collection-mathscience = {
     "matrix-skeleton"
     "mattens"
     "mecaso"
+    "medmath"
     "membranecomputing"
     "memorygraphs"
     "messagepassing"
@@ -11080,6 +11156,7 @@ collection-mathscience = {
     "numerica-plus"
     "numerica-tables"
     "objectz"
+    "odesandpdes"
     "oplotsymbl"
     "ot-tableau"
     "oubraces"
@@ -11172,7 +11249,7 @@ collection-mathscience = {
     "ytableau"
     "zx-calculus"
   ];
-  sha512.run = "bc4ca79e6057d48ac00b5f271d8e776fa1ee2080749a3e5761e13bfe0b3acaa08ff797b653ddb61bc9d168b28f4f29f234e64b51724773d0ac51cea7efa6ab9e";
+  sha512.run = "1fbc1238b2017d8c2a75c86a654308e02c004309d1c64b994b9f1dcc7dfb9bc62736c999773277288f0a6b391bd447252274f49d2168b70302b4ac2ca8a3c00c";
 };
 collection-metapost = {
   revision = 67071;
@@ -11231,7 +11308,7 @@ collection-metapost = {
   sha512.run = "c0bf45f69b1b11ef6e59e6dfa0bd690fcae8b1b06097eb99f06e7ffa954f1ebebf296f3245e6922d716688353e22b691092f8e6349b1f02b3234b49a3bfaf969";
 };
 collection-music = {
-  revision = 65862;
+  revision = 69613;
   stripPrefix = 0;
   deps = [
     "abc"
@@ -11268,13 +11345,14 @@ collection-music = {
     "songbook"
     "songproj"
     "songs"
+    "undar-digitacion"
     "xml2pmx"
     "xpiano"
   ];
-  sha512.run = "951e172129275fa2cb7ccea6bf23f27484503533ebee4c3bef7d2f4ddda5940c15713b104a584704a0b9ec710e2ae363b6ec130747a6e169a7c461e509714a77";
+  sha512.run = "26100feabd6d95d8b29f0160f7e9b86d06e5055387acc63fe6e47fa0e681567e2d6537043bfa9138d3f8bf27705f2117b719aeb77d72b2f35ff5e5ad220a6038";
 };
 collection-pictures = {
-  revision = 69409;
+  revision = 70538;
   stripPrefix = 0;
   deps = [
     "adigraph"
@@ -11330,6 +11408,7 @@ collection-pictures = {
     "epspdfconversion"
     "esk"
     "euflag"
+    "fadingimage"
     "fast-diagram"
     "fenetrecas"
     "fig4latex"
@@ -11404,6 +11483,7 @@ collection-pictures = {
     "pict2e"
     "pictex"
     "pictex2"
+    "pictochrono"
     "pinlabel"
     "pixelart"
     "pixelarttikz"
@@ -11536,7 +11616,7 @@ collection-pictures = {
     "xpicture"
     "xypic"
   ];
-  sha512.run = "1549c2635af7f0f8f2e06ccfc383a840b859b2f191351f3c42cc3ec9d7ddb8bee9be89e67139f8968e638aafc5630d9c30b4148fba5ee1d5eef1b41f0d879cbd";
+  sha512.run = "1851e3e460f1d5fc2c1f8e04e209f800f9ac27337fef200b3f200cee3580b4ff816784f00aa2dec1d7d7f36711d8cc043033ba2f512dce2933d078aa5c72d5b2";
 };
 collection-plaingeneric = {
   revision = 68675;
@@ -11782,7 +11862,7 @@ collection-pstricks = {
   sha512.run = "508276fe37018f3d9773fc7cda0cb37edcdd28e9cf8ab54ed5be16b07c2066de4626a561bbe387c7bba0fb82d4102be406efd721a4b5dc90110b8560083d2b07";
 };
 collection-publishers = {
-  revision = 69033;
+  revision = 69759;
   stripPrefix = 0;
   deps = [
     "aastex"
@@ -11797,6 +11877,7 @@ collection-publishers = {
     "afthesis"
     "aguplus"
     "aiaa"
+    "amnestyreport"
     "anonymous-acm"
     "anufinalexam"
     "aomart"
@@ -11840,6 +11921,7 @@ collection-publishers = {
     "cmpj"
     "collection-latex"
     "confproc"
+    "contract"
     "cquthesis"
     "dccpaper"
     "dithesis"
@@ -11964,6 +12046,7 @@ collection-publishers = {
     "ptptex"
     "qrbill"
     "quantumarticle"
+    "regulatory"
     "resphilosophica"
     "resumecls"
     "revtex"
@@ -12027,6 +12110,7 @@ collection-publishers = {
     "ucph-revy"
     "ucsmonograph"
     "ucthesis"
+    "udepcolor"
     "udes-genie-these"
     "uestcthesis"
     "ufrgscca"
@@ -12072,7 +12156,7 @@ collection-publishers = {
     "yb-book"
     "york-thesis"
   ];
-  sha512.run = "3bef1e82951ac3624c88c3f42e7d9dfdb4aaef71648852a0df777276139a1fa121f640420d5977a5eae99a590a53eb96854dc97b6637bbebf76e63a7c1248228";
+  sha512.run = "9a69b9b69cd17bb1fb8ef7ea4a5d870c3a5ee0241c9ca1bc1e4344a4708b9625d31332965ea33784d528d46bf0aefe9703784deee5e795107d5594b4a8517894";
 };
 collection-texworks = {
   revision = 54074;
@@ -12089,11 +12173,10 @@ collection-wintools = {
   sha512.run = "8af5c376990a7ed062588a0eb8695455936a92376b94f157d75a22f976f62017999aee8aeb692a07f98a64f05ac98bf4aba79c5f75688c54ad2196807471dc1b";
 };
 collection-xetex = {
-  revision = 64951;
+  revision = 69452;
   stripPrefix = 0;
   deps = [
     "arabxetex"
-    "awesomebox"
     "bidi-atbegshi"
     "bidicontour"
     "bidipagegrid"
@@ -12136,7 +12219,7 @@ collection-xetex = {
     "xevlna"
     "zbmath-review-template"
   ];
-  sha512.run = "457c4e7a3e2089adc69173950c5d3fa177c6e03c5936c49328bbd3c276d9940ba5aca974aea4b97c5dd51b6ec1ca9ebe28861e730aef63b1312589e0cb16df1e";
+  sha512.run = "5ec49133c1a9f43a8c025fc3b46d855d13f230f2885ed1d2cf57aa32f071a471a9c77c590e1269c885be045ea9c8cd36334a4b4fe647aa23454e91e42c229089";
 };
 collref = {
   revision = 46358;
@@ -12214,13 +12297,13 @@ coloring = {
   version = "0.2";
 };
 colorist = {
-  revision = 68440;
+  revision = 70101;
   stripPrefix = 0;
   deps = [
     "projlib"
   ];
-  sha512.run = "c3a49d415ec1133adfae9b8c5d8059dd0c41d2cc9637a0905494820a514dd6e466a1d114e8d26b7cc8b5a2b197f331a146b2f3dd6a5a4d478f2a71b62dba3f7c";
-  sha512.doc = "6f5abb6dfc10b4e4b952746f84caa489c06e84d0d9dfa7ce9a2cd1de29f19dc028ab4a42cb233310540d70b8862a797420aa9f383d05c3b672574b8a4870078a";
+  sha512.run = "5ff0c8affd4c3fe364bf9832811f5536316c383c212a85d78cbff62af4155092f6602b3a82d6a1bdadfa5bfb60c257a3b066658ec1704b31e24e1844c61f2a2d";
+  sha512.doc = "133f8e9e5e504aa069ed60e7549579064664bb375af27e9e6457bc0347201a5902c1a3c699c4eecec5485fa905c7f026af9fe8a2de3aa8d5d2daac8c95efac83";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -12259,14 +12342,14 @@ colortab = {
   version = "1.0";
 };
 colortbl = {
-  revision = 64015;
+  revision = 70034;
   stripPrefix = 0;
-  sha512.run = "f1c342fe4a90002959283b9b3ef5a2dcfd9b62e6d559f0838ed102546ba8fd55c2a2234ad2d2824b9141a055ba02a9bf2c4b5877c24f5b5dca87360067e94acc";
-  sha512.doc = "c037827d5624448807284af963c9fffc424e258852518f77b3d50792e63ecc26c361f6e504638689dfd589fb73b86f77be7c4519398994bd53c68c1d5dcf6c04";
-  sha512.source = "252a17abd3fccfe0f4fb7ec0f2f0ae79e60bd5e3ae015e85619a9cf9f362a213b7eff2a9fa45d199885f5ed09d990f9c26c22eba722f42b34cd75a0feb880404";
+  sha512.run = "3f1e703d76afea29b9cb9a2e1aed6e130b4be09982898260ef0e40f41eb99e9b948e89307c2d8b605777983bd8be46e874fd40080803d5b724f99f00c7b7a11f";
+  sha512.doc = "412e8399bc8aadaf131fdc07de0148c7fefa1e207788a8e9c4a82914bb99f75a3c352f60f958913ea351d31571a17c8e3b539917e72fd2b9b83b0c04f0e3675d";
+  sha512.source = "05de4cb9140c7abf6be215a1485e392cdf12108d64716407e6605ce87b946c062e568fa264d3e78934a685d91f5bee38ff737a86d9a4ba54c9c9f77c7418a349";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0f";
+  version = "1.0g";
 };
 colorwav = {
   revision = 67012;
@@ -12459,10 +12542,10 @@ components = {
   license = [ "gpl1Only" ];
 };
 comprehensive = {
-  revision = 69282;
+  revision = 69619;
   stripPrefix = 0;
-  sha512.run = "3a95484c972a27245694364364b16545069e677eba8e84bb1e3d743ec37ef4427dcdac4ea507df41d90c155bcac48b346ec3e0e985c5d447fce05be5a9a8e418";
-  sha512.doc = "0534af854d41a22af152ecc0eed7f0d835525d4508dc8cf7eed131a88958ec2024d35d80002a77fc09a2df4ea428514edfa751f889c1b90740344bf5025f4b59";
+  sha512.run = "57419ba4ccf74c6d01c7ac972e4f02bcb0e4f57c7a3eb790b8f6de10ff71318ae0b4dae2f836b4f36d3c63fc3b9c6594b628640f2dd850b97dc9dbc5d18266ee";
+  sha512.doc = "8d6e7b2de1d4a89e493d0ebc9b1e1a7e11e0839089d06a36f2cd8d0df47a66642edd8ab20e9688e18f6eac70d803da3edee1f8588fdfdb7bc3e46dd993523671";
   license = [ "lppl13c" ];
   version = "15.0";
 };
@@ -12503,13 +12586,13 @@ concmath-fonts = {
   license = [ "lppl13c" ];
 };
 concmath-otf = {
-  revision = 69005;
+  revision = 70337;
   stripPrefix = 0;
-  sha512.run = "3ad91e982f5a46ffde4a24c2c16233b671c4ce55f78afeba4a538e9437171a5936cdbcac56dcac357c17a188940150f70b475e37b4eb5f2416c9c00a970fd87d";
-  sha512.doc = "7ca90916cab639721f678b33d341c9ce253923ec4ef78d5a1246c9f79979aba9674579f2e8eeeca6b6fd2c0de3d70e3d44b8be572e5f738cafc408337432baf2";
+  sha512.run = "87b99735bef0cb6583b153794c64f9b4d76a65da57ca6bf7fcfd6f702bdb32c1cc690be32dbbf2247cb45ede15045d892121794ebc0887eb0f4804990be1172f";
+  sha512.doc = "6faa741f424a42088e336ff5300daa2dbd28cd71eed6d4047230c7ac7ecfad5e8de3e881216721f89f9b706397247c01abd99ea4d0a7ed097aa6d63c8e2a89dd";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.61";
+  version = "0.63";
 };
 concprog = {
   revision = 18791;
@@ -12567,7 +12650,7 @@ conteq = {
   version = "0.1.1";
 };
 context = {
-  revision = 69131;
+  revision = 69665;
   deps = [
     "amsfonts"
     "context-texlive"
@@ -12579,12 +12662,10 @@ context = {
     "mflogo-font"
     "stmaryrd"
   ];
-  postactionScript = "tlpkg/tlpostcode/cont-cache.sh   filew32=tlpkg/tlpostcode/cont-cache.cmd";
-  sha512.run = "5dc3ab5f5747a0d69684ad61ed86f508411357abeb52e01d1cba256024c370309d2f4ccad1076d1337eb35f7b10f8bb31f5a51219c4f8ad4795ddf4617b158d8";
-  sha512.doc = "7c440d9924d68a4abcd9e404b3516ff696ff215c44f2bc81542bcafb69b92bc73b4ee173c5e90dc2de7405b754fb1c452e76b7b71fe623c72d794dc0b966bff1";
+  sha512.run = "8951a79ae04a0bbcf7ec5f4d5f68e0f6ad3f79cfcce7379523b9bc74dc6ce3d0f07f628f3e182198ff37d313ca549b7b2512eeb28ce4a9c5460ec20ed7f2d2e7";
+  sha512.doc = "b2558db5417c5c1ca10dd80be258fca33d9e5fd1b16c3f1baa7c871bb4d65e42a75c95336ae988864e7c4dd350c722eaa96c446839ca6d147949b38fa78461d9";
   hasManpages = true;
   hasRunfiles = true;
-  hasTlpkg = true;
   scriptExts = [
     "lua"
   ];
@@ -12646,13 +12727,13 @@ context-gnuplot = {
   license = [ "gpl1Only" ];
 };
 context-handlecsv = {
-  revision = 69186;
+  revision = 70074;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "7142f762e76a00a0ed7821ba67f09daa9900977dd643ab5249668d385896e87aff71b0dfe268389599ca75a22618638f4d873965bcba94f7fb4ec684d46986fc";
-  sha512.doc = "bf2a7b6498743fa148653e8634099f7597dc8a383f88e15a0605c6cc45247bc0521a1e57c879bf4212e22345f7482f734c741bfac739df1977f1f140b6be6928";
+  sha512.run = "b4a38aa0e04812e328e3d6225462078ddf45d8791d789e2730461630db55b397754ca192acf37b9ae7f1fc10c61d412022a9e56d3465d19ceca7f5875e3d580f";
+  sha512.doc = "763f75ab94a317788d9d96b88f1b7e25847ed316b4dcd84158719ef1c3cc48c90c884ec3158412d574839adf1ce8bcb12f9c0cefb6650338afa424fbd0213be3";
   hasRunfiles = true;
   license = [ "gpl3" ];
 };
@@ -12744,13 +12825,13 @@ context-simpleslides = {
   license = [ "gpl1Only" ];
 };
 context-squares = {
-  revision = 68545;
+  revision = 70141;
   stripPrefix = 0;
   deps = [
     "context"
   ];
-  sha512.run = "1f84f3131d67e831b31eaeb60939e467031fc080b32bb4c0d52439c1dd7ec7fe5768d2f2bb1f6dcdb25b1b1e4f9455aa83d5dcb3a0d1954aac41a79b0cb0dfae";
-  sha512.doc = "e55bcb462d1aa0aed9563d01dd53f9062f8463d7cd06a42720f3930656edd0fd818f891e43c622b753200ac2ed32f45d21900208f69999b35474f6e7789a7b5e";
+  sha512.run = "1ff4b50cf1bf75c6908b968c0fa35bdbd3571ef680ccf591ce5b0bd65370bc1dbd3bbb54b55c881d4d76ad09aa36a496248560874ad6e14e39b5f94cdec5ee23";
+  sha512.doc = "08b652e69c1719991daf36b9d9360b5736c25283ef10bdb5859bdfaecf1dd3a47d7417b9884d7bf51a32b073f99e08f35d8f172ff0d6a4817923c00f81dd6dfc";
   hasRunfiles = true;
   license = [ "mit" ];
 };
@@ -12857,6 +12938,16 @@ contracard = {
   license = [ "lppl13c" ];
   version = "2.0.0";
 };
+contract = {
+  revision = 69759;
+  stripPrefix = 0;
+  sha512.run = "bb37446d3eb0f736014ed0c589b1ae86d25cb6fe2374906f375047317b74e9d4a608a4ef32bf11776f37449d59063bc0973e9a2c7e83b747480b8b73efaaf133";
+  sha512.doc = "7681e863e95f295e0ec98d0aaa789b1089fdc023feb04eff3d028c4f0c19e9d6974e96350a25fcc7810e7dabb8cf43551ad0fc2d0cb1b9684c4bd60268082d32";
+  sha512.source = "3b9d2277c2e1248121bb27446dbcb8b66ba6b7264b7c9502f1ef0691c66050c32b0dd6975cce60cd6c0d70228a88fbc35433ac5dd62aa3aef9040b9292adf402";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.91";
+};
 conv-xkv = {
   revision = 43558;
   stripPrefix = 0;
@@ -13189,13 +13280,13 @@ crbox = {
   version = "0.1";
 };
 create-theorem = {
-  revision = 67712;
+  revision = 70180;
   stripPrefix = 0;
   deps = [
     "crefthe"
   ];
-  sha512.run = "4e33efc66887fda4505c7036444c7afbebd96594bcd326b8cdb149fb4a429f3cf05f87d6315dd6c207d5f55a9951ec6632ed63aa6f2d4320ac7fbee53d744680";
-  sha512.doc = "ee71cddaf790679dbc46044e5262f3b5db098f1b57291719bbba68b9e905e5daa20127d1a124b6f1e3d898fa081a3e7003f607ad0bc4191f5f63fca837ab2c7d";
+  sha512.run = "b65a610bb508fc169db8447d234e656fb3b63647ccc7a6656bb015fd871c762ed2b8bd59304808f5db1ce528f8227283a6172aafee9cb84f24c5fd41041acd9f";
+  sha512.doc = "4ce2d32999518c46478fb6563da42d073a04fcda76391ca722e20a4b0651819722fe62325c7bc858162368645c259de2407bf6b67681a7990e225195459c54af";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -13209,10 +13300,10 @@ creationboites = {
   version = "0.1.0";
 };
 crefthe = {
-  revision = 68813;
+  revision = 70165;
   stripPrefix = 0;
-  sha512.run = "4222df8d84b006df3641dd2fd976440401b83c40e9ef0b126be8ba9b459eadc084cda58798db596e5ceabcf4b4f0c821bcdd5b05be5a3ec9e3f65d98b4c6da3b";
-  sha512.doc = "48b2636dd969403d3f0511c8b959985da32243d5763d6d2837f57981ae2f548b2e92956c3fcc9349290e7b705ea8144ab2af9b74a5538ebae967693e82e6085c";
+  sha512.run = "e3d8ee83d5c8eeb35885ac852e64df8c3e0950855b1860fd1013358626aa5968e02175e0873dadeff69eafcf14dc85bddfbe78fccbe9c784748c5e09b599a27a";
+  sha512.doc = "35d45eb3ad323dc4699ee103a7efedbfb4fac371632d82e5e449a49e89ff6ee25ba9b7d86ee2ebe76c5094dbc24c0813d2a89328d28414b04ba2d20c513cdf3e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -13270,9 +13361,9 @@ crossreftools = {
   version = "1.0";
 };
 crossrefware = {
-  revision = 64754;
-  sha512.run = "7e8836c9c1cec51676a01e3e631cd3a0155f081909415e8ae2a4143b5eb611c5c843a0c700af98dc983ace1f9e3492da5a42bd54e74757ca68da7f106f7eb6b5";
-  sha512.doc = "7b7212f8a4b6f75d93ec573f9d7544f09df2e73e0b2a32e2f22866378f0d69e0b035511ee5cbc7eee4114b5540b3783d613aafd7508a41aa336195e49b070a78";
+  revision = 69700;
+  sha512.run = "8559fe8e71e27f8417923bd2c7a73a560c29d699ddb77e5b4ac464aecf794fe0cbd02d19abf75f7063994df9ffe6e761f98555a9411e9c5108b38e96db971f1d";
+  sha512.doc = "41ef79c5487826500fa9465d371c30a8ac513c94cf4852eb1bcbdf08759f5c7384189f91362efba921e9d7f3801a12d1c1968492640dd1c1cf2f1d6001cdb79e";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl1Only" ];
@@ -13519,13 +13610,13 @@ csvmerge = {
   version = "1.0";
 };
 csvsimple = {
-  revision = 68566;
+  revision = 69494;
   stripPrefix = 0;
-  sha512.run = "e98878933f2f4a7b5b41325f11deea34db380bfe7ae581cb7e78a738ce599ea7b325ae77d48af7a58705ec4e7b668751b371ddb0396a44e28b1af57ab21cb87b";
-  sha512.doc = "7d0a19509538818153357c485984abfe88b9a7e3c865a2184594155a9643dea61755a510e264a38d170f660fe502b9a37a0c353565d2518ccf621cd69ef3030c";
+  sha512.run = "ef7d09c254982998b009c4856b69b263e7ee5df3b54c7513aa5459651d12989f38b1593ca9e3d4d3de51ae6cf8b02c89a8a9298213c7872157712fb4c1c61900";
+  sha512.doc = "c6934e0bfc8448008c0fbe7ed06da871aa9a9073f7948551881e00dd8ca0d31f7da5132d14282a9b08564a2aa8e875f36cf67db900b94dcf4381530a2b6843c1";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.5.0";
+  version = "2.6.0";
 };
 ctable = {
   revision = 38672;
@@ -13851,9 +13942,9 @@ cvss = {
   version = "1.1.0";
 };
 cweb = {
-  revision = 68702;
-  sha512.run = "4c7a5bc2e7f347e29b625db12e9aa53c872e97c38adb08feba1fd8498aca39a2a83ba3707725757860353294541bcb29585e262404687f6f4939b8512c362765";
-  sha512.doc = "27ce2eb4a74a662eda15e5f72c1543b739c3b2eb918a07421781fcf62f0a4f1ae18c99ec836409175835ce56f3f3087e8b6bcf4deaf4f2282ecf9a2fc713a14d";
+  revision = 69586;
+  sha512.run = "6ba6d7e560abe642d30e4b9eab349eeb0135666a8f6f27d1e0e12d825048ec772305e0870edbe85dd3b977fb3e3ea0c7d3de84d9c6a02316be9691092c6b34bd";
+  sha512.doc = "306eb00fed91a6a7ec679b9ffa46a9f5a8747817cdb3230accc5f322505aa928bb670eac09c77b508186cb3e308ac347bea3107ea0a5dafa2aa6075555e0c61d";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "knuth" ];
@@ -14651,18 +14742,18 @@ dehyph = {
   license = [ "lppl1" ];
 };
 dehyph-exptl = {
-  revision = 66390;
+  revision = 70496;
   stripPrefix = 0;
   deps = [
     "hyph-utf8"
     "hyphen-base"
   ];
   hasHyphens = true;
-  sha512.run = "2dd98977dc31445cd981dda46f289a93b4340406801db929c21e8d08300b17745cda637f6b40ccbd2a02a0ebafa980fd9c1591b8f7beffe3fa029bf8c82d2eee";
-  sha512.doc = "c28f49469c8a2bad8fbe34ca1a0df6441649edb96c19d9482fd2140068447d86716911534cff181fddcf784c8e80a20eb1c952b2b9c323df7725b46d950c7b4c";
+  sha512.run = "3bf6178cdff605d289bd5b035416953b26911b636786340fb08eeedebc8a0a6ab45712547f6b6eb312751514216aadf36357b344e38fb3bf1dac84bdd6fe97a7";
+  sha512.doc = "3e41d2581f5b96afbea332529ee3d9523d935fec0e517a1a39ce04a405328241cc3bff97a00af3ac363a2a413c4dd70c9e38102d1ecd65ab8aae994abc46e4ca";
   hasRunfiles = true;
   license = [ "mit" "lppl13c" ];
-  version = "0.9";
+  version = "1.0";
 };
 dejavu = {
   revision = 31771;
@@ -14730,23 +14821,23 @@ democodetools = {
   version = "1.0.1beta";
 };
 denisbdoc = {
-  revision = 66137;
+  revision = 70611;
   stripPrefix = 0;
-  sha512.run = "43bbcb7f73c1ba704fef0754a4d79c99b45c99c7ff3b06f70db1c0c922734f9c3bc973841b6c1ffe6879324f935e936ab396aeb2d2fce1bce029b6b0379882d0";
-  sha512.doc = "4a0572e776d2b00d088bdcf5e65c94c15d644182a5ab8284a6b16e9ca795ad95ab89448954dfe5aeaacb986a012da0f1abccde7df35f4619a6ad5dc633facf96";
-  sha512.source = "f173f64219c4ab4194cbfb091273311da6963f09995fb2d751302c356613bee2bd4a874a35dbe1e99b995a5d50d9803025e8861947dedf77fa990a5f601f646f";
+  sha512.run = "ffae3c7f741d9a6c53ad3681d929d26d1ac7679477cb66d3bb3e7cb4bb81966137aa191810526b322f13c52aac31111ee4fc4bebdc49f8be78b40b26bb4f3e6e";
+  sha512.doc = "1bd19497dd7fcbc7df9416a43e09dd68a825fcff6411f81b9a19b100915296f094898a8b746ff7dce263a7facf5b776c08d93e4d70052b26e180a58079e62cf5";
+  sha512.source = "437387ebdf81424660fb88dbd758720ce709b1c771a979b83b462f08fe923b393cd6235f373aa20c91aca43e1cff850e19c6abb8dc34cfbcd42902fadd479754";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.9.4";
+  version = "0.9.5";
 };
 derivative = {
-  revision = 68787;
+  revision = 69746;
   stripPrefix = 0;
-  sha512.run = "64a219eb707e54c1c57715243e4bb5c676d495eec5c0095887f33f30591b7e90a7278ce6401c649f1902ded58c9fc890a23f0611dc8780e9a7bb6bd55a728083";
-  sha512.doc = "3f660b6b8c0c1da3d7434f3a0ecf19c51a8618ad660ac4a6518ca67a4bbdb788b36a457a6f52c544618e814a3bf2b73a5c84590125f3e1d55cd95bda01f6b9e8";
+  sha512.run = "a936429cc5b9933deaa349121fed565fd46e2d81f8d5a5be3b282f3a5107c13e2ff29e159759c10dad12bda9d5fefc5177fbba636dac0dd31aedb0074cb5ea3f";
+  sha512.doc = "8951a888d07fa9136a71c0b0fb25b7f3925e137100460fb41cae0766c56cbbadad6b58e0afd690a608306032f5c2d95c6d4bc8f07651a1354b184fc28b9fd2b9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.31";
+  version = "1.4";
 };
 detex = {
   revision = 66186;
@@ -14851,12 +14942,21 @@ dickimaw = {
   license = [ "fdl13Only" ];
 };
 dictsym = {
-  revision = 20031;
+  revision = 69720;
+  stripPrefix = 0;
+  sha512.run = "1f1c145c9231616b8fd603604b252903938ced0d0a85f4ce2bf6775f123d47a153d0f1231fc78e965da56befd94b71901c5ae441253d0266fc984d47e9b113b3";
+  sha512.doc = "787f3d06b1239c95022c8dd64f07d98cca654250f9846e70f2e7571def724b0e316d66d60289ebbcef204088d6f603d7702af36b985cc640a4f963adb7d347aa";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
+didec = {
+  revision = 70237;
   stripPrefix = 0;
-  sha512.run = "6195ea914b422d5bb1c098e3a8f103d91aaa94520bdff1f5a04d7c952f84f16b1aa96287dac4a309d8d72eabac65a5dbaca275abc211d9290266cfb8f5fcce3a";
-  sha512.doc = "935e67c0be73969b572146ccfc92ca42c15b3b5cf2cdfb596cf3ecb9368463b793d530221d2a7e90df18edd54b7938dd27d1ee00757b580c543ea59ddce5d277";
+  sha512.run = "ed59a87d35b2ace9bf525634d1993400348a114669c9a358aa18836a152c5d973584a10f9514014336ca0a90a2050abd5cbf69d305cbae547d644f17c0873d64";
+  sha512.doc = "a6a46f0b9e57e3e3e124ec719026e75516722d32d9b0e29d49a736b57123c7d916551a5ddc26a60d972932a2134a236efce0147d13ce645ba5c198bee574ff39";
   hasRunfiles = true;
   license = [ "lppl13c" ];
+  version = "1.0.0";
 };
 diffcoeff = {
   revision = 68838;
@@ -15082,7 +15182,7 @@ docmute = {
   version = "1.4";
 };
 docshots = {
-  revision = 69410;
+  revision = 69676;
   stripPrefix = 0;
   deps = [
     "fancyvrb"
@@ -15091,18 +15191,18 @@ docshots = {
     "pgf"
     "pgf-blur"
   ];
-  sha512.run = "b25c70def3ad4e85aaa6f229362a7d4ca3b2cf20fc86c8682d3ddc36738868d3ba3f481634d0a9acf8366af102ba3a27b325f3282724f392e8e3d312abb60814";
-  sha512.doc = "81adc089c9572519c09a0e1472cf2aef9a52a51c84992c8a46fdf74bb81aa432417f58836eea621173c60ef9ef2367348643d161f661580d030c206fd88f478d";
-  sha512.source = "f7e7609765907f9ae15f000ab50afc4546660e01266431050fb16b59bb760ff154ca2efda4187452511c8cb4c47f253ac401225e33e261028ee5df2bbbf0687a";
+  sha512.run = "55d866be055e8ef97014bae75355f9a3de111527d96475b604154566b5d92b74788c1f6d250b3f58bb35e9133bef5d923b1aba309704375fe19d85559600b23c";
+  sha512.doc = "aef2d08ba7bab13a3ee496409601aa3cdb20612daa6866521bc70952032386f45fc64223ad5a2f188055053f372a0d70a21ea111901230f6dcb53f210a9c50ca";
+  sha512.source = "ddf9a609829d07da413738be5b22454f8079d9e8985a7d8305ce1c00ae41625f7f145f3b806b996947b4836793193735df57da831d81dcf37ca61521f32cb464";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.4.2";
+  version = "0.4.3";
 };
 docsurvey = {
-  revision = 69343;
+  revision = 70449;
   stripPrefix = 0;
-  sha512.run = "06d5844c96ba47de92459a20594f0f575e0ca2fb6471f7079274ff752a1ac631f0f0d2f4f76f01fd5b8fa8036fca57557b37fe8490571b49b46fca06ade0a4ed";
-  sha512.doc = "fbd223b5af17fd7e09d43f00d103ddd3e5730eee7fd86cb25a8d4568f00f0155a6aefa28d3addd507bc261ff57e99256f40b232781256744ff9634292b35fa87";
+  sha512.run = "ce94e7c797ec87694ab4df4ad3eba18586c0251d6cf4a5ef3d615062125a1cbd46ac2e9b7d822cfa07e44961d5354fec093cadbbd48cef403f9ac2c0ca665fed";
+  sha512.doc = "4edd65ee2c7c910fc8bcfec3f33bc1f390ab1bb67bd06a84e84eea8421775b28c519615b23d2c25fe4524f79e8e295778fef6868d741f4484f42b1265d49eef0";
   license = [ "lppl13c" ];
 };
 doctools = {
@@ -15336,14 +15436,14 @@ draftfigure = {
   version = "0.2";
 };
 draftwatermark = {
-  revision = 57099;
+  revision = 70401;
   stripPrefix = 0;
-  sha512.run = "c12311ce3723e6b93e8d21df2a50a3c1ab2326aa5cb6a1600fb848efd5309fa9a1c920e0ad27c785925387af5872570142aae61a2ffea0b3578d10209060e9dc";
-  sha512.doc = "bf3c28f78f03ebe43c84d722d668c14e0a751fb9e0d53ccb6a81cebf40b78f95b53fc3871ffa4919a94c260de861e93048b3adb590dee2bb8b600be1bbeaef3e";
-  sha512.source = "7f9eacb71dc803059f6d9951aa7958effb9e97bb2030884ed02f0fcd43ad554f860ccebc455ede5893d67c527915f8a7093a94b2f146e4884e23303fe882527e";
+  sha512.run = "39bff239cd08c6c57c445944ba3fca6af408b2ae32212555c9e9dd64c8d7fead3eebd35a48e6c68f139d65ac5404efb60182993ab751df8d8670e646f06cc97d";
+  sha512.doc = "1783cd72d65658df483c8c3f4b0b27b7a5e354e8686d08f08ece7cf6e15947bbab6ec9a07efa233144eca4ce3c015027093b4d502c39d2057555fab9ab07fd8d";
+  sha512.source = "7c58ad08143158711945af36d5d9b77a32cc4b800144a7cf55b777047c08f7267731344997354bce0fcafd9b3eae17cd39659660784c9a1a47b307708b6f45dc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.0";
+  version = "3.3";
 };
 dramatist = {
   revision = 35866;
@@ -15454,22 +15554,22 @@ dsserif = {
   version = "1.031";
 };
 dtk = {
-  revision = 68849;
+  revision = 70117;
   stripPrefix = 0;
-  sha512.run = "fef5d494604434e725a79e2dc8165cc25bb01953e31bd64046af11ea6513314afc879c86dfb8aff814e25ea3d6eb3a64a4896c0e5992a87c44af3444eb1439c5";
-  sha512.doc = "5ef9df97097a35a4598ee8fd0fd5a506510479195a8dbb9c4bd221324b091f1d62da62a4f7ef8e422fc4a01ac494384882d24d102d1b7cd4b59d72f821e415a4";
+  sha512.run = "c9f59b7a80c40d4a1a9749ab3b5c48ab7dcbf213166454edcef30226f001d37724967e0306486892a64e1b16fcfd45f9d507f4e467642150ef90a75a5296471f";
+  sha512.doc = "2cbf434924fe1b7ce9ed50f647069ab8a278f4be1f65981e7d9f6027f6f0f6b7465e7f2f169e860314f84fe38032ce0cdb0d96b55f281a04b7f830216498b46b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.10b";
+  version = "2.10e";
 };
 dtk-bibliography = {
-  revision = 69155;
+  revision = 70517;
   stripPrefix = 0;
-  sha512.run = "57a04ffa623863f4413aaf8c78d1d9e6e2e3eac1ae71fae768cfc103680b0191306175a5534fabed4ac33381b9d1b0b2884ec9180d4fb92c8db8c095689bcbf6";
-  sha512.doc = "c43357d8f3b490840ca62f7f495d53bf13a187362d7caef89caaafcc2196b64b88ab093ba86d55e209ee3fc5d1c3ded0b2db6b1fdbf70a74d87233f1e54c703a";
+  sha512.run = "c6e8940feb04015e068e70a80b1b7058b451f324a2b7ad87644e011364077630b2fae6f8b292bd7cf426b3b4036279bc4ab449f182326b84016b39d66ae62f05";
+  sha512.doc = "9fbbf62c28b5dd4f561e3aef62c033b7cf11eb8276ee1137752d36bd0b018e40cb477f0ea0dabad277ca5c541ef2fe84a968affe606da0cc3fb9123c246ce337";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023-04";
+  version = "2024-01";
 };
 dtl = {
   revision = 62387;
@@ -15484,14 +15584,14 @@ dtl.binfiles = [
   "dv2dt"
 ];
 dtxdescribe = {
-  revision = 69348;
+  revision = 69507;
   stripPrefix = 0;
-  sha512.run = "1fb81c09edb0bea837328d7518f1d1aa8f810aba84c78a08e1047aa3bebcc79e4a61a587f4453ef5875efe0019ace6f8303ed78fcb74b378eed6d153590b7d1a";
-  sha512.doc = "6ee725f86a622df46e1191f15d42fcfc2cd19440d837df9146a1e751a7e1770db406be647c7e30572341db5ac7da8fde24685be385830bd8527b5fdf6d74f483";
-  sha512.source = "13ebb0a68a33e646f2b2ef3b6f2fb92127c94ffe8123ed53bcebe95c9a13e1bfb167d0bb457ba1235de95c353ce2fbdcf396aa4af21eed2a9072ba5e42501a96";
+  sha512.run = "232d7cbd4d1d65740e97b608d3fca9da8ec4d06faea3fb39fdf49b829704fa269dc6bdaf4235d308fbd0f4027cf2b8fa48312320b4e972940118d69d17ec80ed";
+  sha512.doc = "96b2397398fb9a1a59de1ca97543c7bc84892d5eedc5935fedbed753577d77428f58587b42e55a5e69b5c03c68eaa176c51c037340eff4cf19596203051452a2";
+  sha512.source = "cfb804d222c7073b1cf4f143d2a98af9203623bc215b9747ffcfbf2e5b0935e56a9072027d8462f9c17e10a447c8bac7f3a30f93b6f692240ec3a472718493e4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.08";
+  version = "1.09";
 };
 dtxgallery = {
   revision = 49504;
@@ -15513,12 +15613,12 @@ dtxgen.binfiles = [
   "dtxgen"
 ];
 dtxtut = {
-  revision = 38375;
+  revision = 69587;
   stripPrefix = 0;
-  sha512.run = "cc28ede4898b583a89df3efbfed45318be9034b3c2a92bff083e79007326d4d680177f1884aa506dbc9574a924687eb463f2d69c297906fcbddaa584ef9e52bf";
-  sha512.doc = "2c8a2ec4fc38aefa720bee29f24149837f985a54cc1b9cc9325887f5b7738d89ef38d8b60acbb4b5adf0e6c13e1677003e58adaaaf50e8949c33377ca29679a7";
+  sha512.run = "5b8dcf885fb0e3361154f6981efa3fa00c8ea9b11da7aa5f739f87b97b8a89226a4b150b97bfba33d0fcdebe11e7d900ee881203ea707cd8a3fcde16866ce54d";
+  sha512.doc = "f7d37f9d766175c816eaad931a7623c3a537d4d8d73c28b57802c417bbd954b1781cee8bcc7445ed09fac9a6f36b2336aa6a9b5b769bba877f72754bc713eb4f";
   license = [ "lppl13c" ];
-  version = "2.1";
+  version = "2.4";
 };
 ducksay = {
   revision = 64655;
@@ -15751,12 +15851,12 @@ dvipsconfig = {
   version = "1.6";
 };
 dvisvgm = {
-  revision = 68950;
-  sha512.run = "cab242a5b7fec4713015b2d3b57f36256ca9b10d606f4a11803d7c2beda9486a1839e69cf58248078d08a89a6e4513d0d4629901c828a1d154cc30f1f7059797";
-  sha512.doc = "fbd752b03b37d62e00e041104e547b1e862908f3ae74bcdffd17cb7bb74c6de3998ce8beaa32726f42aa31dfc1e4f9e85601a39b62f10d8c7381816d3c4c44db";
+  revision = 70496;
+  sha512.run = "94bcb0d873e30ca7d876eb28dc9951462fc28d6961beb11dd8b33fdb0c265614f506d27abfce6b8a540bee55bc489ce2243690341eaa509ba329c88ebcdc28ff";
+  sha512.doc = "eee54ef41b2962cad615be1b6082e99087a3790ac057d280481ab1fbc50f3c525c732cb038dd324b757c0cc738e0a26a0193faa79637125858ffea285be61196";
   hasManpages = true;
   license = [ "gpl3Plus" ];
-  version = "3.1.2";
+  version = "3.2.2";
 };
 dvisvgm.binfiles = [
   "dvisvgm"
@@ -15852,14 +15952,14 @@ easy-todo = {
   license = [ "asl20" ];
 };
 easybook = {
-  revision = 69411;
+  revision = 70236;
   stripPrefix = 0;
-  sha512.run = "384ca42bbf351ddcde2675f202c4fc8d8413b074415d55f80858e982d8cc487583b00618b8a9a0fa084305b0bc425438c5859a18e8b2127d7cc58976049148cb";
-  sha512.doc = "8a9ec5d3147540f5ebebc7c85a2c1413a86d96d5961d7dadf9f24179bdf546f7645dc157a7f1b3ec12daefe243dafec828380532e867958733fa554baea45dcf";
-  sha512.source = "aef472cd48badc742213b17cfad43b5c5b59b4bc185548a3332a733542301f6cb6f9de10b60d6b7d860f6e2e62c43b9338a14eb5683456563e38377d84bc08dd";
+  sha512.run = "b4abd45311a400ba7812dba5ff6ca299326b1e062c4dfc301ba5e5733fbaf6ab131cc285314396003dc616f40ffb98987279e80575326d4b3258023ec6a8e577";
+  sha512.doc = "01d8ce41bae5faa8f818b3a0f95c37827d6a7aa50fe5a74e7ad5e57bd40159b77351467d0c7c71f9513bef32739786078c2295ce3cf62207891f3bdba660ebaf";
+  sha512.source = "3789d9428ff0ecb54b113d61160db88cbe86f40e097dc17d386ad471af388188a189008bc5000a27cf0643634c1bc7c8df59130c82388f1cadeb4b1ac506bb1f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2024G";
+  version = "2024an";
 };
 easydtx = {
   revision = 68514;
@@ -16265,13 +16365,13 @@ eijkhout = {
   license = [ "free" ];
 };
 einfart = {
-  revision = 68376;
+  revision = 70318;
   stripPrefix = 0;
   deps = [
     "minimalist"
   ];
-  sha512.run = "bdd96c338f02a27d430db81f665dba86c112266577b2b62c0009637324b5560dcc48b30c3f88a45217ba8a094c342b8ccebce54941c61eb0d28c37e966d9e861";
-  sha512.doc = "8727d905963cfb0955216f8d42c7a27404db7ea188e008f654e130359fbde9b33adedd0e9c723ff4fbca49e2ffbae3f457aae3e5864715223c80ac55ab19bca9";
+  sha512.run = "5e15f55394c35e033661c00295fcde0ccd424532ecdcf3c55f134ba7f990ee95961fe9b620a1addb2cfaddc97b030296b4ec9dae29a1d025aa2944d7130574e0";
+  sha512.doc = "56b8b1415b0526af7610502a65d13f304f05f18def4fd4c2870be9adaacefbd6e9cf34d318f135d358a85d56eb57f4f2fb583a529c43d4ffe9bed729310ce4ca";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -16296,11 +16396,11 @@ ekaia = {
   version = "1.06";
 };
 ekdosis = {
-  revision = 61113;
+  revision = 69568;
   stripPrefix = 0;
-  sha512.run = "6fbc9c1cfbeffa9d950a3a10e0d39286985876b02efb48bd90a5853b006642c9e7042b0a660fbcd4f0a3d7438e0d647a827338bf283326162ca75ef316e53d5b";
-  sha512.doc = "bf829e9636940ec6dd9371f12457c306f5af3cde562ea863de3f0f3efa44f8d5c4286f7373927ccb0913c7e2a0bab70b57e03a47081626674c7b4b407784329b";
-  sha512.source = "2f24f73fcee8f34ed6efa401939b6bf96e7de6f0e24bcb2352626fd293ad533d249c8a0618a9f1eb3413feca9bc9a26cdf852bb6c69fc49987488739dfb17698";
+  sha512.run = "2b69616e44379680fa41e2e3f42dbac8d052c7d12e6b59e7e56fbe3c7d7f581a44d3cd2cb91d6473b8fd0cbcdadc68f184feb2f7cf0fc2c868f03edef7369f85";
+  sha512.doc = "7332370e43de4076fb6f595df6d24419e210c866e79630c3fde4cc50b8e7d7127232ee123443a2443b3f236bfa7721dd43e2dd78d81820f61a5fbe92245dc66c";
+  sha512.source = "dffd9d9cb8bbbdef03c491d2ad6283d9b474ed4c5a7337a85aadce978ebb4ea35c161c11427d0fc09ecf61b9e5f10dd7e3c69b1e00d2f63ec2c27b2ba8bd7c87";
   hasRunfiles = true;
   license = [ "gpl3Plus" "fdl13Only" ];
   version = "1.4";
@@ -16562,6 +16662,15 @@ emojicite = {
   license = [ "lppl13c" ];
   version = "0.3";
 };
+emotion = {
+  revision = 69881;
+  stripPrefix = 0;
+  sha512.run = "17516f0c2ffee5a1045fbb11b4f49f09b3cb14ae0dd223c8427a107a625b7910ffc4085ec3937a28a4cdc58614ae41512ed1059edb0835007b8b19d6ca1526e0";
+  sha512.doc = "5cf42cff3b1730fa8fe9bf5268018a2ec7d39fa599528794eb01d5906f2dc6a85be5508651d5828c014b06fa4b1efd24821fd68a6d454649b1a8d0b1aec669e5";
+  hasRunfiles = true;
+  license = [ "asl20" ];
+  version = "0.2";
+};
 emp = {
   revision = 23483;
   stripPrefix = 0;
@@ -16767,7 +16876,7 @@ envlab = {
   version = "1.2";
 };
 eolang = {
-  revision = 69391;
+  revision = 69868;
   deps = [
     "amsfonts"
     "amsmath"
@@ -16777,13 +16886,13 @@ eolang = {
     "pgfopts"
     "stmaryrd"
   ];
-  sha512.run = "10c7dc6dd0b824fb2ab22318b6ecadb592abb552b4a6fa58fb89612add290928b625f9f6d6ac3bd5b1202662545e51bbe0d8b154025135f92c7999341876b976";
-  sha512.doc = "6802a32f5abf01bdf32bdb7299e82ae2740e8323bc1ce0fb6dd5d38c87146ac52abd4fda69bf28dfb8a10ed09223d4c3f8d320510131c5a81f5262f2e81af9fc";
+  sha512.run = "67a51c2a83fed799f07eaa226c21a50b38cf5109bfb06f7adae4933f2f9fd474bc8ac6e8528f1134273550a9834b4da6d42dd7d8274d6d76a80880b4cf221c4f";
+  sha512.doc = "752cf6a65326027af32d69cd86e1d1c703cb8f506b686cbb2964593c505813b0785352399752802358e10d6fab1e55e09554b34b3b928f43afa3c5724c1eec88";
   hasManpages = true;
-  sha512.source = "97ab60d5e21fdac9aca815b6acacc31fc534474fe6037256e9b18ce4cae3830ad39257f593a95ebaf35018109286140c46769990f60f659aaa78490bfe717cfc";
+  sha512.source = "dc0992ad4576ec3e4eafcbf0a4039ad3b15bc97e18dd0a9dadce418d9e2b9c29b24dbe3900142692c1248f898744bfbb6b4c59237c2df4d62fa454f535d0c6c8";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.18.0";
+  version = "0.18.1";
 };
 eolang.binfiles = [
   "eolang"
@@ -17071,13 +17180,13 @@ erewhon = {
   version = "1.12";
 };
 erewhon-math = {
-  revision = 68990;
+  revision = 70336;
   stripPrefix = 0;
-  sha512.run = "30e5463f57ce8562c94cd6ed302c9b9bf5624d34a6f5b2374d691afc097edcaca779d45d1f6a22747c2c8d920f6f45d9c6f5f8a3d09123b27188ba84c52caa18";
-  sha512.doc = "193b4ff5e877b3f8abde9e81abe208ff1545e77e81b7d78a4d19a858e4722177ac8fe0453bcef672c348c7703fe1c53891e4a520348d11debb43102fd2450864";
+  sha512.run = "f92ccc2cbb8edcdfcaa5d4c27192aeebe75cfbaa3d42077d3a1e87309b381798d8bd6836082e4302006e51d0a79e8676d0f831a790aa7436e0b992d4bdc78d8c";
+  sha512.doc = "ccf0b4ee3b6914e26e485c8c292bf421da30a76a1e0dfc03f61a290186920f37163b0ff2ad1102b30049b58844f06c888d70d2f6e506ad7ddc2a0ed45ccdc711";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.64";
+  version = "0.66";
 };
 errata = {
   revision = 42428;
@@ -17269,10 +17378,10 @@ etdipa = {
   version = "2.6";
 };
 etex = {
-  revision = 66203;
+  revision = 70496;
   stripPrefix = 0;
-  sha512.run = "419c85187d6832c9624c70936b3ad879987f665e54bf1fb9a7ddeb1096d09677693987b187e8d60691235d721a1b995fbda36351ce754b9c6a2a44bd015c0ac3";
-  sha512.doc = "ae5b1f4d0b7746e294697567da95a400ada069223e497d4ff906d13e4515e879d85532675886ef0d14564604163659c3d6715ff00ff29fa06fd876eed9cf60b6";
+  sha512.run = "3ed4f77ffb42e86877ae448acbc84d4ecc7003b9ac4f4c80e88bacd23d729db991c115a736e798245d4b81825f12247ea68ae35e4a9ec3dc6fc147b6153d0a98";
+  sha512.doc = "1b5225821ea6faf8721f6ec6ebfba649d2d14496274b625daf8374ca50e72f94030fd8570e0bdef0bd8ad249f378bd4cfc4d46c1d959eec2d1af01335631c15d";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "knuth" ];
@@ -17430,13 +17539,13 @@ euler = {
   version = "2.5";
 };
 euler-math = {
-  revision = 68991;
+  revision = 70335;
   stripPrefix = 0;
-  sha512.run = "b248ed589be13fa10210052b13c6386f4544e5cce4327902a3e2ab3b5c2a58a611393c1ecad4f72a1d4a4302b7677ff483a42173645ab3462109f9c25fbadd8f";
-  sha512.doc = "620cbbd6eac6adf53bf9ba95bafaeeffcce2f34d6a94d45a4869b328c237a3ae59f18d05c518861d56859f3f31edf16f191f28fd122ad4c456fb5301c68be96e";
+  sha512.run = "331055a1c53976130824f826da975e7ec49d84b993be8a2e4330dba4ee8a48df209140879405307a3d635eb264831b790b05850ed00e8eec98d9f649443e650b";
+  sha512.doc = "31b74c70d914e16a7e4f0bf4a6d94bccdb7656b71eb5024dbe01d25f72612c22577248b3d8ab695a32e58377f315f59ad679b30ceee23f2d7b66444710062f5b";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.51";
+  version = "0.61";
 };
 eulerpx = {
   revision = 63967;
@@ -17485,10 +17594,10 @@ europasscv = {
   license = [ "lppl13c" ];
 };
 europecv = {
-  revision = 64037;
+  revision = 69661;
   stripPrefix = 0;
-  sha512.run = "3ea97daf92d91ca88cec92af2a1d3bd1a1cbfcdf187bb8296559ef9132510a34f9e2ad068b78c655aad466392a1fbaced45143186e89aef8f3d5cf5123c34510";
-  sha512.doc = "1c494d5e568514e84a5b9ffcc70ce02c3263f0837a2f97676be92cefadc8b8fdcafcd9b1d225ab753a66bc0878d63d2fc0f4b3a345f76c08da258e577b8f4224";
+  sha512.run = "8e71b214a28fa5cda60a769cc9584d030e348e3236ea57e932ef3bc7d02fc07969e31f83ad2cba0f7bc7a32c41d9f478881b437e003675fa26031da7552116c5";
+  sha512.doc = "ce96aa71bf8886c67c65d0ec4e24e97d45ea4b4a948d9b1b6dd51f79781f0667798fbee8fc2577c13b13860c5a886be2b4eb6bf743500a01e1982e5c8e29ac9b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -17508,14 +17617,14 @@ euxm = {
   hasRunfiles = true;
 };
 evangelion-jfm = {
-  revision = 68059;
+  revision = 69751;
   stripPrefix = 0;
-  sha512.run = "5839d7899e8dd8a5fcae792fe40e234fcfeeca9a19bec8d2e8ec7be0217a73fbd58066f6d094e37b36ab9501d53eafed7f3220ee1ebb37ce767c8dd3868708f8";
-  sha512.doc = "65447d983cd4a2b112966f8bc9de7f9a7eb2c8f38a9266db5a416219ae8b817f82f62fdc79bddcb2bfe3a67c84c6097975f178bce664e7ac23e2f29363c3df7c";
-  sha512.source = "8f31d019c8db0d9c817e5579ee9e3a31b936e91d0270eccb52ee6bfa544d5aedf8d0bb0d4af5a7aaaf3366d338ee0cc47647e211738d956857f57f28770e08bd";
+  sha512.run = "ff08a32b6283fc7ca0454e0071ce1d90b7a6fbf8989ca3eb4cc1f804f002f920890b083e5aa81a9455f57659a4df52b6c4677096621d9dffefa37c318e79a0f9";
+  sha512.doc = "ef98234e6c6609dc9ea6f60027c3dad1f417d677d5177525945330122b9b513a90bd296ba86a1d96eadb52792b5d162264578118872d5a7b1794b4a1a7fe06a4";
+  sha512.source = "348b751825e0ad309ba4d37709d9ea5949448e1a3985b69ba446404316486e40a4fcd3a5c337c26b10c63a6b9051ed4c88cbd1f31a0707ec15242f7fd19ac7e8";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "1.0.5_b";
+  version = "1.0.5_c";
 };
 everyhook = {
   revision = 35675;
@@ -17594,13 +17703,13 @@ exam-randomizechoices = {
   version = "0.2";
 };
 exam-zh = {
-  revision = 67505;
+  revision = 69920;
   stripPrefix = 0;
-  sha512.run = "06aad5aaab885a208b6fe999b595799c2ebf99998f1e341a52f244daf0e4e2bf323f27b4888996755ac64738a70468bbba94cdec94ff8b76998299ea468dfc87";
-  sha512.doc = "076c183310db5094b07c1e9e642a4dfa3e3ce9639a53d0b62bf83377e8ab62bf4b232a0d3446afcf828e9ed0f81be14d3ff95963254c07d2bf0a5ca8f2818891";
+  sha512.run = "d4d15c90b4718be8deec3042d4fcbe8ec497417a3761d8e203f6e17079c613a3ec621d58ce388f26353a5d4d668546aae40ab7d0248ae577e1609e18186b19a0";
+  sha512.doc = "b00e5d88a1d801e38b3ab2fa8286b880348e99ac0f9daf8b28174a6d04b862c995331136a3236801812e05b9bf15e1288268414753b99545abed856141868215";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.27";
+  version = "0.2.1";
 };
 examdesign = {
   revision = 15878;
@@ -17697,14 +17806,14 @@ exercises = {
   version = "1.1";
 };
 exesheet = {
-  revision = 69252;
+  revision = 69885;
   stripPrefix = 0;
-  sha512.run = "c659dfcfb0519983d4b45bfd409a155b1fec79332466108f7dc7535b5141baa8c1f48feb7929849e02077d76df15b245b60f6840c1ecc3c4d253aaf218af7422";
-  sha512.doc = "3e10ac55ce9878fe68cb5b34223b8c45f5a8edda7d527efd0cfa2c40cd8fe32582c507aa03b50afd0c7a28a251786ac5cee4a9612789243993db2cc656c77780";
-  sha512.source = "fe8d5b47bce3c0336ac7c0edbfc0d27580712d72b108f612dac4cb0957782b8d202244c84a205fc1731b667ec4986df8338cda346ddfae33f19aac03fb83516e";
+  sha512.run = "80b24d8740ff9d633b852fd27c2bf6c6ba00465c620780a0184fdd2c0944a3d84fb467561602cff66c96657d6feb983225f529c72419c81579aefe2a10885735";
+  sha512.doc = "b6e1f6534deaaf685428d83ca76716309c33f9bba4799a59d9a5223d1594989c81bdb568b4591ef3c58fece8cf4b9849c309e34b2b482478d1b4994d3edf3455";
+  sha512.source = "efe535af2043be2f2328b52c2c5fccd3aaaa1e84b839d0b793f1fddaf18b277b9cd1f325f94fd9cdd87159b28928b4ec2085830a5a1bac0daa2b31d98b165a2b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.5";
+  version = "2.7";
 };
 exframe = {
   revision = 53911;
@@ -17756,13 +17865,13 @@ expex-acro = {
   version = "0.0.3";
 };
 expex-glossonly = {
-  revision = 68860;
+  revision = 69923;
   stripPrefix = 0;
-  sha512.run = "e7d00f33d6a63e27524b9ea2fd7cfdf5f55bbcf3a0190a6967fefa11b4cfde4990dbda74da0ebe14e6fa76e8e0e4b5084ba352e39dff46f8e2028aadd6dda26b";
-  sha512.doc = "7ff5b9dfada3ef37c0ddc28a472a33a816d52b7b9b265291c640527e6b8974ca21d5867f7e271856a920589062eab5563b29c919a7df66b51af93af5e12fed5c";
+  sha512.run = "367021fd290eda11945ba892fee935bb6c86d10427c86232acc000e409d254f410fe7a1012f1870f9c6911a2e1172dd27eae3ee922daf5804433120ccba46015";
+  sha512.doc = "fe033244e38a76c3dc6cd3da6189980184e0dd95d74b006011881218e6a385e468c7e59c6dd0da60967f3a8a31c030a1ab70e209c054f89ff1d90e802519edd9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.8";
+  version = "0.9b";
 };
 expkv-bundle = {
   revision = 65623;
@@ -17906,6 +18015,15 @@ facture-belge-simple-sans-tva = {
   license = [ "lppl13c" ];
   version = "2.1";
 };
+fadingimage = {
+  revision = 70610;
+  stripPrefix = 0;
+  sha512.run = "c86ff2a9387a4a1e0713a42a6a95bfac953bdbdcd2d0a5b1de918d7f5bbdc39a00950ad7e9ad1705245a7f8f6021a4b3a676540930c81d9cddb7f87fd9bc8477";
+  sha512.doc = "1350c995bc94b4d5c8a0d8c0e88dbbe1dadc82cf5b75be09be3a0c3fee90ee6451934154488d5c2a21ce8451fcc7ae8544f7938aa692f96bb133766a05b49730";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1c";
+};
 fail-fast = {
   revision = 67543;
   stripPrefix = 0;
@@ -18049,13 +18167,13 @@ fancytooltips = {
   version = "1.8";
 };
 fancyvrb = {
-  revision = 68772;
+  revision = 69536;
   stripPrefix = 0;
-  sha512.run = "1288adbf30e9bb084d242dab84450a60b0a9f342b20600518ea324b01223f61996576b4713b476c3cda41963047880a16a4e54cc773a0508cca1c14ea8230c2b";
-  sha512.doc = "b0fd885f1d5a1711d422f1f5340d954d6f217dfa69fbf2674e0523e335681b39270579d2e66e1cdc5246dff251725d7181f983b900899b80a927399b00f1f34e";
+  sha512.run = "816a42630da356afeba3d7f0dcab924edee8a0d349412cb920a3ee21d9e1a57cc65e1655ba6759e7acd6508532f4ee059512a8997b964f923a59a57f548aabcd";
+  sha512.doc = "4dd0ce373ac1fe5b44c6e9470790e372e240f91a8b7add6ed4e0237a22a68309bf8326607679817d5b4db975a286340c469457d8ff4664a7d7a74e65e92a4a5d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.5b";
+  version = "4.5c";
 };
 fandol = {
   revision = 37889;
@@ -18284,7 +18402,7 @@ feynmp-auto = {
   version = "1.1";
 };
 ffcode = {
-  revision = 69383;
+  revision = 69706;
   stripPrefix = 0;
   deps = [
     "environ"
@@ -18294,12 +18412,12 @@ ffcode = {
     "tcolorbox"
     "xkeyval"
   ];
-  sha512.run = "c71ca2c5aaee2d7c14384fdb9655d08e92aec6b721ef906dc8524bf2833ae7893497ba67840935c97b76ebac9318a3c321af7030573a9a57c384c11dd1862faf";
-  sha512.doc = "9239c853483203eb42b1069ac1135b360af07161426c77bcf8684626b19aec169af9a2cdfe9caa7cc75ec322b191ad4ddad9b21daeb546dbe5541d66615abb12";
-  sha512.source = "a52bdf256577148636f06a391d35a0a9c59dd73b91f33b43f3f9f0a796f4995140c5563f4644a1f99cd015adbc260b67785a5c50c3af649c45a69495fd8e7af9";
+  sha512.run = "0047a3b5ae171d3636a80ae583e2413b805546baa662862894dbe6dba92f3e4c20fa1b55d1862dfe968f0b738f2067a4aab294278b1003c864b5c6a8702590eb";
+  sha512.doc = "72f09440fd91ecf532ada964010fcd364ce30abb200da2285aec45a2bc1d11b97b7b557f19473e26cc4d690e96a9151f3cd8129aaeb28eaa3d3f26ed5d230333";
+  sha512.source = "eaad3fcdcfbceeda1c991c5961094cd470b384e4c749ebec657c5b575190b35eb28ea7ee88aa113b829f1fffc225a61f38d5c61e28bdbefc133c55565ef03daf";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.9.1";
+  version = "0.9.2";
 };
 ffslides = {
   revision = 38895;
@@ -18546,14 +18664,14 @@ first-latex-doc = {
   license = [ "publicDomain" ];
 };
 firstaid = {
-  revision = 68720;
+  revision = 70324;
   stripPrefix = 0;
-  sha512.run = "0d15794f22485c3cb922b0d1108c33f1dc3dad9bf8db46278deb8079bb966ca0f3cc1c5454d82e43f604354b578c9da465a34440670b365fab4f7bab32809603";
-  sha512.doc = "6ee8e2e67d8029551e8224a4548b425188ca85298e5cfc90f9f1b95579223c840a80aad4d4a56e36f8d0c336778cf62c8b025d3f4df215d94a310beac14b1181";
-  sha512.source = "2c091df08953ae216e713567d1af4f0dbfbe25c4d593ddda22791d353002cce85829d3a8b404d0a1a441f67264b778c3137842388159f3f551fed249e3ac711e";
+  sha512.run = "610aa5b4c12511436b7b26145f24c294a3c98e75a9b4211198c144e8c0cd58142853d0d581ea0bd620a4f01f48bcc186c40db1d0a27ecc559bc5ba012508bf59";
+  sha512.doc = "36a0180f0ea5410157c03fa26a7c185229f5a6fefe517659f6cd1d5cce7425ee18c58909f985f500987bdf1d9993bb0d24d58dbac21121cd0bfedc384b3de57d";
+  sha512.source = "374f4edef549e60798f9a44ba2e795f2b4145acf7164fab9ea170baf294670878499ab9770dd3c0a1d1df49396db17b827076b3e5049437e0d8d7ea1e7686f64";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1b";
+  version = "1.1c";
 };
 fistrum = {
   revision = 66461;
@@ -18585,14 +18703,14 @@ fitch = {
   version = "1.0";
 };
 fithesis = {
-  revision = 64135;
+  revision = 70536;
   stripPrefix = 0;
-  sha512.run = "faa49ccde90ef577cc5cb7bbc36c79670d8d9184b9857f40b17bd64101b24babcef7b62541a42f8483578be29a16d23e1436238242a3162d42aa8f491d426ebd";
-  sha512.doc = "efda2236343ecfd0e655bb31d6a73109fe5b91bd17b158bdc4709175dbabc7798d712cede1b4ef62082cb8dfbf5634eaefdcb230bb92643bf5c3eeb15de91c85";
-  sha512.source = "9a9c6b61571761a4837e2ebbf5b584d5de268e1ac26fbb2950c4b13b5afecc59f2613d3e90ac9532b7c4ae0a5d5bacd198bbb813c7bc2302f850e9f9462c5de6";
+  sha512.run = "09bbae20efbe651a7cc5ec01c0a3f2b97aec3af24efaf21935992c7ee63841916cb29ea81ce7a916bb6ac4cee74cbbd3b02629b9c8c7467397dfb871e863fe54";
+  sha512.doc = "4a476ca775b7571d4bf88e20e76f0acd8d36778a516ce5c778682b92f0de92eaafcd671d8ee756b9ce18f136855752963e994eb8f6e37611517b68abc9a6737f";
+  sha512.source = "51b654e9880727283aaa5ea262dadaaf95f801980bfa2bf43c495e9315e60684566bf6972934ee95863c31e9e827462200527e1df26251cdb62caf0e660f2fc8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.0";
+  version = "1.1.1";
 };
 fix2col = {
   revision = 38770;
@@ -19143,14 +19261,23 @@ fonts-tlwg = {
   license = [ "gpl2Plus" "lppl13c" "free" ];
   version = "0.7.3";
 };
+fontscale = {
+  revision = 70541;
+  stripPrefix = 0;
+  sha512.run = "95ac9aaa5ff2ff9b9108bea483b23ef415e825beaea1b1573b1869d441c9ce34188b47241c5eed9b5762931823f015c0f05897d7085b2462f1f401c98ddcbaa3";
+  sha512.doc = "28eb33adf132aed909f74211c538ab82f4cd5a958692a20a4692f9774a60c44e984fea28949366e3ae28d507088eeb1584592fefa1abced2b7bbf29bf9c56c41";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.1";
+};
 fontsetup = {
-  revision = 69390;
+  revision = 70135;
   stripPrefix = 0;
-  sha512.run = "f291077a88db97fdb486cc14ab24fa9b2cc1b00808f8d691c3313b302715897188a9d16dec192d477b4fc19bd22bf2b9e0cd92bc1a11b079ee5a88382bb38ad3";
-  sha512.doc = "9318253e03673a6ec79d33afb2632a81354fdf0f29fc429814dc3f00326275479d8bfebdc58bf71456c38a77ba22afb1be29b2daa408c7c3e4b1e149fa7e958a";
+  sha512.run = "e599ae4f458be9375343dc4eade6c4ea56175224b785e48193af974d0b8f4a0d1f9426f8bd0fa22b15c962b7e10ef856f938699324c4b51e46d3e06602952e02";
+  sha512.doc = "18c8d669b19274eda6e8daffe5fa3e6906a98026052ac668ef51e97e2e49e73b749dba7ac369d532020faccff121d210b5c1ec3540f353a98fe276f4aebd4c2f";
   hasRunfiles = true;
   license = [ "gpl3" ];
-  version = "2.1.0";
+  version = "2.1.1";
 };
 fontsize = {
   revision = 60161;
@@ -19163,7 +19290,7 @@ fontsize = {
   version = "0.8.5";
 };
 fontspec = {
-  revision = 63386;
+  revision = 69880;
   stripPrefix = 0;
   deps = [
     "euenc"
@@ -19173,12 +19300,12 @@ fontspec = {
     "lm"
     "xunicode"
   ];
-  sha512.run = "fc4516b96eefa9cb896488510f5ac531446acfa7993abc2f361751e06fe95128afbaadad393dd7ce8c22ea731c81ba99cd8182ce8205c55f78f64a69ba815996";
-  sha512.doc = "e765756f93f1aeb03acf0f15d3388c3a39156f2bc46e951ab5c2e4596ac9babd975af025c0881078f58caeacc3281d3769a701f112b17f10ac474d12b4eac897";
-  sha512.source = "286db8b9c512c02f2333860b5ff2c980b8b5680de92fc896c95611f2cf1587077f47f9c0aa0e520ad0f64c6f031f8a2fb310f67034ebaca286076d7764bfbc99";
+  sha512.run = "3d49ce69d6830cb4bcc16b0df3fe86335761d71fc8b930470ecb4e38f4131c40c534d8c613a252d552b1d298d61968e5bc2aa574b0299a9f7b9e79b63711d442";
+  sha512.doc = "1ae04a6e17c2ef6413e9cf21ec7934502a3fff3324bbd274dec1837916accc6da5f09a25816d99abc5cd0a431b0e652c44a2f570ecd69f400f56421ed172e58f";
+  sha512.source = "48177f9500a5248dafb333965cd640e600aff2591a4e53f17b9b32a6c7042559e32d907ae5e2e6978389caaf13dddcd0827503fffba35b647974dd67d13f5c4f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.8a";
+  version = "2.9a";
 };
 fonttable = {
   revision = 44799;
@@ -19222,11 +19349,14 @@ footbib = {
   version = "2.0.7";
 };
 footmisc = {
-  revision = 67556;
+  revision = 69729;
   stripPrefix = 0;
-  sha512.run = "814aa0a1add20812ca241280a408c1bba21920c2751f171a67532aaf6e4dafd786578701a7f431a0295a139052c8c7c37f46c7e4df35e6fd14f468a5c7181b75";
-  sha512.doc = "4a257a2b7620bc8660785ab5d8c8f167ba044e2bf8fc6b340b8645c549f9d4c528d9fec9110671f1dd757892c6193681bc845b57a7ab722423c8184a276f8043";
-  sha512.source = "514acb8de22592d5211c97ad8a82659374e574c4ed972604443036381875d33d2e5956788fd9f9577ca1feda59290209f5165568dd00dd0f059dc43fba4efe14";
+  deps = [
+    "bigfoot"
+  ];
+  sha512.run = "7e205e392bbc933c6592f91afa053573f174ea83b07d81a17a144b29bc3837ba4e6639c56f5b07a9840e141e408163cbc2edbcee5fb7b159264ebc54f4a09645";
+  sha512.doc = "93d3ca6476356b7a0ed955edbe442764740d32db58dba91276f6bd891ca4009c3731872a703f1621e344a69c401cd70a7cd9e5fe2845d7667a8e0dc61e2ad2a5";
+  sha512.source = "6b2960dd45ec7ff85cbeeac863a068c3eae5d161b19811f447fe31b572a7a11006c3608ddd34a677ade6c69e781bcd7938dbe451b0dbebb6c82708b393d363e6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "6.0f";
@@ -19346,13 +19476,13 @@ formal-grammar = {
   version = "1.2";
 };
 formation-latex-ul = {
-  revision = 68791;
+  revision = 70516;
   stripPrefix = 0;
-  sha512.run = "c1bd5690cd7aac8a9cf1b608b19d620c898474e80667594750e6ad5935fedc56f6e4352573cb3700476ecb627195fb137c8404d3701c30ba457960d9f832e42d";
-  sha512.doc = "747ad5d71a58ecec9b83c7a81e36df065b2b374c0ee4deda2a797165eb1a883e270d57b9951b61b3310feb397dfc00d81eb38a0904c2c8f187aa04d8929a2681";
-  sha512.source = "a1925f332e6a20fdd2e4926138ddc88fd5b56213a44d67a5f8d812b3ef10f1d619fc8bb47758d74c5c9fbf34837023c44394637f848359b98c446f98cf8da62f";
+  sha512.run = "f5f29f4a61b1c7145d03985079bdb3fb26a4a627a6f839b3c9020569388abacf501e9a285d29de66e7e3d6287d255c5549aa389c5fe42fe0093315b01bf963ab";
+  sha512.doc = "2a64b940b37d3c460db5c31434a650cbe5d61d361ecb6d3ced250c65a4d817eff324fd296c137fb26a144fab77cdb2c93132bbab11a3f50f3cd0acff87812178";
+  sha512.source = "d2c09f1700193814485fd25ef4a119875821a39a54a52429ef2f3889d276a9a50d74cab2df73e77c4ee62d96a413a5a8b488e216f9f11e5d6410fc0337662156";
   license = [ "cc-by-40" ];
-  version = "2023.11";
+  version = "2024.03";
 };
 formlett = {
   revision = 21480;
@@ -19475,14 +19605,14 @@ framed = {
   version = "0.96";
 };
 francais-bst = {
-  revision = 68686;
+  revision = 69866;
   stripPrefix = 0;
-  sha512.run = "0a8216e8553b123c82d773637bea5ac61a618116974786b485f16eda33896f404458d755730ee12ef8971cea2a8a4e67ecc697a0c99ad59c04e3bdb2e3dd0e51";
-  sha512.doc = "5a58a8b2afbf99c2a4b1eef26d7dbc16b345ba5c1cb3cee50d9434b577d73145e0d15d2977fb2947bd2263d725b68f01c728ea028f5c9192f76831a94e2ec23a";
-  sha512.source = "a0b490a291775ca178efefa8a432e8be6de8a2794018d2fea5c38ac8ed1df2b3d15cddea6421217ee5cf84056252b2de2d584664de376dd28ee8704619cbe314";
+  sha512.run = "02581d45d6d205f0251c216435e068a44b7733ca23dd8f47df119a7aaf6db8efd9eef892e71219219713ab8031a77c373826c8b259e5c7f4f54f6b6edb2d8f5c";
+  sha512.doc = "1f4a474fa1b953e9809315509c664fba06490dcef123ff8d1de32f05831fccafe45788a8754bcc70d6df687a1b75645d6f36ccfbe56958166e51a471e6c703bf";
+  sha512.source = "3125847740194c77fd502d723fccdcc69e5ef93a1997ae46f1dac1b5a7b2a2978fe8a8f55346b67f2bc5b5c442f562a4ec3dd39466663750c7af7bfbd17f216e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0";
+  version = "2.0a";
 };
 frankenstein = {
   revision = 15878;
@@ -19529,14 +19659,14 @@ frege = {
   version = "1.3";
 };
 frenchmath = {
-  revision = 69211;
+  revision = 70163;
   stripPrefix = 0;
-  sha512.run = "d9ade8b4e036beb17c2aed0903531fe7fd29de51d1848504803ee3c9be83c4cddac2e33adfbcc94124fcc1f7913520a0da633c499d9bb4c4146796a1789ec369";
-  sha512.doc = "3348e8014b3468afb30be0a9ed36bf6684963d1aa7cd325be8050a03c668221272bc009b0883b0ebf66cbd18eeeddf5ff0d1ffa416f24e3c362fe44cc0530c7c";
-  sha512.source = "223cd3352eee8ee65b48d599677433b7fcbc4bfd7faa5f1c0a99c62806fecb9a3d3f2381907708fcc090637658fc67c43537b16d264bda60a10382985846dc4e";
+  sha512.run = "dc8bfa123818c5e3ae96194158cccee72c29bae0b59dac01014750d1907039eed6ef3f24f08a32f08f15320c28e03bac3a9f052010e4609108bb5b4a4ff97397";
+  sha512.doc = "1a1146f868e4d68014b080462cfce94f0f8362d23ccd42fe2a16fc526834850939aa10bc60dc65e5a66c35d40632f7c7b1fc607548b966424ebcda59104264bf";
+  sha512.source = "9a3c55e4d175635953917751c57b9f762a20046f1967c47a022703249a0fdedae4264810b16bc4188d6b19ec3836835e2d911c78fa7769bc1701b906b8898f65";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.7";
+  version = "2.10";
 };
 frimurer = {
   revision = 56704;
@@ -19652,13 +19782,13 @@ functan = {
   license = [ "lppl13c" ];
 };
 functional = {
-  revision = 65485;
+  revision = 69929;
   stripPrefix = 0;
-  sha512.run = "a8fd828e18a6162811bf750bb631240a9e1409e52db682d2b7285c369ce2d425889c7e10e3eca98d8a49b496ff7e276b78af09dffdc87769ada063639f165f35";
-  sha512.doc = "d8ea8ef65648cd46cc8d9b42e0b361a3848078cf2e92abc4d3e8cd2f115320bef414b2a8c762ddcb730ca92204c4c3c33c11d34b804c4497f26c804e53744aff";
+  sha512.run = "efd3de1e1944193caa18069a1478e19bf602f1110c880ea14d9d7af146d4ef0da5c84078afcda4a26a326f01978240f6c011212424f029c491148317a9b60e43";
+  sha512.doc = "1943c1451b357fe05d2586651cf52e8593927847ad3f88ab21d89626c8dba63e0bdac8e702dc79f7a8fc4ea8ea73c7b6fd05e19e57caac28adf5f1d53acbafb1";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023A";
+  version = "2024A";
 };
 fundus-calligra = {
   revision = 26018;
@@ -19799,13 +19929,13 @@ garuda-c90 = {
   hasRunfiles = true;
 };
 gastex = {
-  revision = 58505;
+  revision = 69877;
   stripPrefix = 0;
-  sha512.run = "7f75503d009584119967528fabbd72a8f0b0430cbe67fcdf4ec0e0bd5dbf63279e10ef32c897eab9408d518a1c1d1d01d3a428e9b7f72cc4d7387e3b692a6caa";
-  sha512.doc = "86f3ee5200e41def7d13df25d175c955c2df562652c4783c8083249eb924c01556cd402bf2f4cf44d02f94cc280e1643c2ad2261bbd191678e3c9039430d1c58";
+  sha512.run = "1716d7e7a0327fbde392a435b783da48382adc8e5751f06730dabe655422b2bedbe6d6ddb589de67d3d15df0b97354bae10aaff81df1795f01e44d6c7f90681d";
+  sha512.doc = "417c7ac005a4d754dc5d6082e5453f400aea53f61848efd244e97a3c6449346d2fb77989598113b15d16d81d70a9abaaa06f39ebccb542fdb88265e1dbf170ab";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.0";
+  version = "3.1";
 };
 gates = {
   revision = 29803;
@@ -19928,6 +20058,14 @@ genealogy = {
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
+genealogy-profiles = {
+  revision = 69580;
+  stripPrefix = 0;
+  sha512.run = "36b0b0107bf8999ce6d2a0ec46b792dcb9cbd5313734e2cdb2879bd7a15d8f70af09fbc831b6183412cb72c44eb6fe3202d00a0dc510e1314ce7115d78be12dd";
+  sha512.doc = "52f75186e84f03f21e33bc1b5ca935bddf8f45b348ee5dc93d82506b444cf72a1a51c4a33b0510cccd8e89cd46a74215e6acbeaa5d2f32953ff7ff3629bea5b2";
+  hasRunfiles = true;
+  license = [ "cc-by-sa-40" ];
+};
 genealogytree = {
   revision = 66513;
   stripPrefix = 0;
@@ -20299,13 +20437,13 @@ gitinfo = {
   version = "1.0";
 };
 gitinfo-lua = {
-  revision = 68808;
+  revision = 70117;
   stripPrefix = 0;
-  sha512.run = "797d0a601440a08d5e1f2bc24ff275965e1412d545ab4ed88d8f174154d38da0f7c18afd10546d7f8e1bb0b98d395c9a9a36fae79cae671360124f07516b530c";
-  sha512.doc = "8724e388bfb545f5ffeca862094c9a5bee2d5635e1beec0e7d4f744c46b03ea63ce293a6a193ebcda5d53b6b54d3c96ebfeef6b5f15a1439d6ae6d4dc01ec31d";
+  sha512.run = "cbc201f194a95f27ed11a12f555b8296dc68b4b0895ec2eec65d4f22dbc005716bfb92f46b342acddf023475a9eb7571ce3410efca50755589b6513e025cab8b";
+  sha512.doc = "b5b284e2d6abc36e97aab127592c6c928d737b8d94178201191905b7179786cc6a5520364d1ce0ff92551de5ecf89aafc4ed336b145591b747d43d6380bf8815";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.0";
+  version = "1.0.2";
 };
 gitinfo2 = {
   revision = 38913;
@@ -21220,14 +21358,14 @@ gustprog = {
   sha512.doc = "268a01f59660e5225c1c21539076e6239381294e6aaa31992032ff8e3d777cb7e4195247c92d9f22efbee498c8bac34cdb915e0a5b0f6cb2b5c0b72c15695d72";
 };
 gzt = {
-  revision = 63591;
+  revision = 70535;
   stripPrefix = 0;
-  sha512.run = "5a2e547bb87b29649169a5114fb4d4175a7630473f30ea28ae00d6dc29bc6a4b3ee33a07c2e94fb6ee4b4179a0bd28f49a72a3d3ed822d852524878f34d77af3";
-  sha512.doc = "5ca5b4dd6e86cf2457b384bb663192313110e4c2666a827c10f36e348d9b8bfc37f9f69debf275728f822a8c01656a2ede34c2873dce1341c3d1e2b054e9934e";
-  sha512.source = "e5785d489263e42fa22e1aeec7d20211dbfc234feace273b4371b44227ca3342c68aa547a19e37608eab354ec1794f313c55a761c555922e0c3de408d5299d0d";
+  sha512.run = "8c6cf2243e7539b0ba4f84e36a634e46f6a59d57a5d5c58df0ab77ceb031301048800c35c092e3cdfa4ee08d1d61a1a5ca27a6648f9be5e658deb3ca16cf6698";
+  sha512.doc = "08272184765997826e89cba2ef02c4695956f14ed603e32f602884dc191b1a81b60e654abad20cf50bb377b96ca50f39fd89234deaa81cf3a66a311445c98f07";
+  sha512.source = "6654412d1c9eafad470db5dcc6045f2872f1b505e498d1243a9f26ba76e3b3af11567af78e242268d3d338bf7ddc9e5f2546b730b0772718bb0afbe1cae99827";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1.3";
+  version = "1.1.4";
 };
 h2020proposal = {
   revision = 38428;
@@ -21748,13 +21886,13 @@ hershey-mp = {
   version = "2022-1.0";
 };
 heuristica = {
-  revision = 51362;
+  revision = 69649;
   stripPrefix = 0;
-  sha512.run = "bbadd84c1cc0825f0dbe72bdd8f5c4b939ae1986dc0f97ea80ecf12999f97d455e2f89cd12e71e8a51ae4ccadbcb01ae7768a60a47b9b35f19b98ea17332372f";
-  sha512.doc = "f445e4588ba85a71af43640e6625fe1fbcb1f8a2208d2c5cfc7fadd1df325be3fdda85b9da4dd824f3c0445033b2bd9e2120e71abf61c6f55b9e828a3e61a87e";
+  sha512.run = "de0cae8f801f690e2d07ef7b63ad4c91d91ddafb8c3044441acb9d6a8e943f1c1667e17c0d2d9e4677b3a1a562b072747bebeeb01ded4bbd713b4e6103221a4f";
+  sha512.doc = "406d07cc807454c429e644b7572456b2d9f49d2f48093007c43cbd3087d108beec1806f810508a849bfced690c97141ab34a2daec7ec641c8bdc71cbb55a43cc";
   hasRunfiles = true;
-  license = [ "ofl" ];
-  version = "1.092";
+  license = [ "ofl" "lppl13c" ];
+  version = "1.093";
 };
 hexboard = {
   revision = 62102;
@@ -22055,16 +22193,15 @@ hologo = {
   version = "1.15";
 };
 homework = {
-  revision = 68773;
+  revision = 70050;
   stripPrefix = 0;
   deps = [
     "einfart"
   ];
-  sha512.run = "4b74d0a93d720252e38f7b8452cd781f37de2e17343b5003ef729f1b1d2b50978ca4a22c83fe0e5e941b92ec9cc31ba4301b322e3c4e2bbf18f96d8d14c0ca81";
-  sha512.doc = "e1c29c37dbdbfb968409a9bbc8c64573dbbbe477add7a3c938162a8189cd0689ceee8c2913b59a2cae21099cb0f0ef4db8fe7b23bb802d884ec20af61896907e";
+  sha512.run = "df7e3907150a637b948ead1db86158058a096ca1df98789f012a6e2ad2aef2d4b84c17dbe0d11ef2a459f1fcf9708d5775bbdee25c4542eb3f5439b95c346c89";
+  sha512.doc = "6dbf5889b71e0022f87c59008b884b49c7e882d99dc2e7dd39a2e04d8429a71064b71ea389279dcbe919b1d04da9dd3bb6a4998c066aa507ae64f96e95c1e94c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023-10-15a";
 };
 hook-pre-commit-pkg = {
   revision = 41378;
@@ -22149,7 +22286,7 @@ hu-berlin-bundle = {
   version = "1.1.2";
 };
 huawei = {
-  revision = 68336;
+  revision = 69871;
   stripPrefix = 0;
   deps = [
     "anyfontsize"
@@ -22192,12 +22329,12 @@ huawei = {
     "wrapfig"
     "xcolor"
   ];
-  sha512.run = "97c8608c51635abcca6daca84e911d680967aea81ee4984a835245be32ddb4b97345e2714761e0399d3378a08619044e17e53a9bd935e44953372815f16d50fe";
-  sha512.doc = "e327912bf029cdfbaf1857534f8e5174d9bb26d5d1a2a271b3b0a8bd4bab1bdbcb8372b6f76f7c75d058f731baa483d58033f9c5ed82252e6210de4946c93128";
-  sha512.source = "f1f27f5baa2af8de2613aaeba69ac8562c6f7791ced01871c86c4dce3f25c14105003f8d636b3df3c3d8c04d81dfee4fab57150d80e58540db02d3d909dbaea0";
+  sha512.run = "0678b16b3fd681a0d1b8da43f87ee2d0d42510de15fa84733c008c8e8298de0f9172ed0046ca58862539564e960b94b3786233f277734320e74678492e5bb3a4";
+  sha512.doc = "640d3b244481aed907025fce0271a81cf31a55ba991f599c87e146c005c6349078993b43df7d8260475c82d5abd6d23e77988cead11f0b74422c6bb231bf3595";
+  sha512.source = "dcf0989d3769ff2e43580953f009efa4d9372e58d45af5821e81e8766096568a59ebb1ec21e68e2b1696edd5e2cb6f9fa4ee39daf3e2d46d10c56a2f0dcb0e5f";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.18.2";
+  version = "0.18.3";
 };
 huaz = {
   revision = 64723;
@@ -22247,22 +22384,22 @@ hvarabic = {
   version = "0.02";
 };
 hvextern = {
-  revision = 69064;
+  revision = 69651;
   stripPrefix = 0;
-  sha512.run = "c9effc6265c66681233309eeb19707f0ea1acb670934283c88f9fbecc4d91c07601c8cb84a06bc7d9895494ef8efb5fca1c00f658ce8baf7489a6c875d8f28ec";
-  sha512.doc = "f7a6dda6ea0d327d8596e68a5880a3ed0d4811d1f89743aca9219e9c26d6f8746a3ef569af464b81410b002047c53cad2b9dfdf783a0515d4ad3c3d322d4483f";
+  sha512.run = "2a2237872220066195c4ee4458eef20c01d6d1b9bffbb82efff08522052eba3775820bde7133cf9417ac591d2196f06d0f8400edae1fb15c82489731e4b9b28f";
+  sha512.doc = "c77b44743e598b7bc3c7963a21d02bbd50e53b3346c102aa72926a46280a7aa39c6e48eb220ef1f8744f4f1dd2252dcefb3d876e788ccff1616fda4d55862a5c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.38";
+  version = "0.39";
 };
 hvfloat = {
-  revision = 68586;
+  revision = 70400;
   stripPrefix = 0;
-  sha512.run = "21124f93545ffc5a025e24a09f50457aa16b8936044c4a510a626c812ccb13cc028e6ef6cd89fb64064c39b328ed47d227d40986cab75d6efb54c734774c3cf8";
-  sha512.doc = "737fd24c8fe61f2af825ba28b71a16c2e094a50835543c8fea6b317cefecda94602afdb70c8df24a671a1e9af219350acaa368295072fba1193de8db566eca40";
+  sha512.run = "dd24119659fc1b0d359488451218cabba05b226469c9a56997f6ae491fea42cf58d7b131f7e6ddbd576ae98d94575a9518aa4bb5d10a97875c0e19b647f0c250";
+  sha512.doc = "98b26dee51f787d82e49f37fda6e902c39af3c5e0618090bd78e2577d0a080b7cd511064d7b41aa4e356d4ff176e87c9b68399d1e06532e20b6d392d3e714851";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.47";
+  version = "2.48";
 };
 hvindex = {
   revision = 46051;
@@ -22274,13 +22411,13 @@ hvindex = {
   version = "0.04";
 };
 hvlogos = {
-  revision = 68568;
+  revision = 69581;
   stripPrefix = 0;
-  sha512.run = "1d1c1a5944950a71046b764a76c7cdc05f6e48b08681932504009299e9d78bcc3a03c57bde36df6614faa0efd8f6af84388a02ecf225bd95e596cae0cbb69d66";
-  sha512.doc = "55b3bc2c71c8f110e39efe31469573879b65058675dd5324af9075f2b9f1d64fdc8a2121a963f88e67bea8156dfb5ca4a4c972bb70ae90b358bff209fc5a4695";
+  sha512.run = "eabf4a92462aa7ead3ae7930400c641d6e64b520867c9e7cceaa48872dca31716ce965cf105c784b725878fad05e6d082a9f9e9cde94b254c780ce55f7daf515";
+  sha512.doc = "3124f1521eee4688e6cde38bb39e9c4a123d5d06d008b23447495fdf11f3b3f8ff98f138f2096c322ebbd8f714e60208958b0b01e98c6b81c09c80eb2908424a";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.10";
+  version = "0.12";
 };
 hvpygmentex = {
   revision = 62405;
@@ -22292,13 +22429,13 @@ hvpygmentex = {
   version = "0.01";
 };
 hvqrurl = {
-  revision = 68693;
+  revision = 69723;
   stripPrefix = 0;
-  sha512.run = "b9a1e88f38b18744fa66d490fe6398bbfda8d0a81a9fa37edb5735325351f5f10f28a7452d8a2d60470afe7faf878c58b59220a8c20ed1744c2be16e8f94db60";
-  sha512.doc = "ae54369788c2ae94dec99c13c57d2c6c42852670d067c97dc8f108dbf910d5a2cb212576629322ba791e56e655b14fe561ba28bc120b07cc9365312dc2bdebdb";
+  sha512.run = "cfeaea8387dfd425278cc9a8f278d7a0a1590336e24a8b8112b6407a808688012c970822973fa7b4a2816fdf0422171ec6e2926bb51a012f02c7a5b273465a9b";
+  sha512.doc = "ee7e0e77406e2e486a2898710953db49aebc28a9bf39d0e40cda20c38a1aa67d0f48f7936fd36bd417658600f82641f6f7d39d12b328d615ac694abd49d76f69";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.03";
+  version = "0.07";
 };
 hwemoji = {
   revision = 65001;
@@ -22377,7 +22514,7 @@ hypernat = {
   version = "1.0b";
 };
 hyperref = {
-  revision = 68972;
+  revision = 69523;
   stripPrefix = 0;
   deps = [
     "atbegshi"
@@ -22398,12 +22535,12 @@ hyperref = {
     "url"
     "zapfding"
   ];
-  sha512.run = "e7daa9af79ef0ee5bb1ed13d8b7001a995d15fc5a839e4d102db7e5d7ad1e76ebc2f7c939b17d554d06789c225bf134177987743c58070e553a6e25a7cba96fc";
-  sha512.doc = "17e70d3008012178b1210bbdcd3abd3c39510dba1037753b2b4324b1f3ab832e0a6a634dce31d32950d1935fcefbc756ac1b7afc86b8f27f9bbee8cfe7768e7f";
-  sha512.source = "0cd806c9e404c93a96da335c8e26ab66476edc29f3f33a68e09ff290dbb3b69705443bbf8db5f7cdc85b702417b5e59f7e89514cb346aa0693c9ff65bcbf882f";
+  sha512.run = "71d43dc16443357600d83779628922c0f6e4ee1b57b562b9a47cb7c11a2710ac1b573040c661819e71086107fbb6e7a98851c1a99a10fe5db19d406e98c0ed95";
+  sha512.doc = "a2893e722d6aa2be885ebb15a96ab0f30c71811dc3b4e9791e2a6c2ea78c2cd6fdf90e485c7267e533f3e90eb71278074d6883cf4e6fd6c7d9f2a2c744ea6012";
+  sha512.source = "1fcddde0f8e9c057d1ddfdc31616f1e362c57ee645f23c71cd9e94bc86f41de8ea32dd478f9df91cadcd66f1814072c5b0dbb2c2ee89f3f477302577ac603edb";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "7.01g";
+  version = "7.01h";
 };
 hyperxmp = {
   revision = 68251;
@@ -23284,17 +23421,17 @@ ietfbibs = {
   version = "1.0.0";
 };
 iexec = {
-  revision = 69230;
+  revision = 69420;
   stripPrefix = 0;
   deps = [
-    "xkeyval"
+    "pgf"
   ];
-  sha512.run = "21da64806f48487ec6756ec48aff60eca9406e94177419398af3970fd3638062a06d1da12655551889ce64cdca9ddaed7a8953eff35b23b6f005358586df9eac";
-  sha512.doc = "ff9c90d8a14d72ab3f03cdbe177dfc58ac8cd2fb217bd2a827ff9d14716afc95d35a647b6fc1bef77a1268175f64edab81cfd8d54b35a4a332543c3950beeea2";
-  sha512.source = "deccfbf6b069d9a4542944fe229a01ab85c845d3c84e38daa1c11c86d3dc0db4ace5e3c45497873323ba7c3033870c3bcb2de16ae3f7873ff738247e51b99af9";
+  sha512.run = "c9b89b8d93868060d969ff2943fc5915b831f5354a78b87fe99edc3b475875ed10349934e6cc23376d23d3fbd8e84234028bb4d2ccd49a30e8cd3e3b20035311";
+  sha512.doc = "7226a854dba47fd91eca3ff5781e312fdf1650b8b3596d4232b353e8854d5cc213cb3f31ba4010016daf4d8683249697290b7886ca8db651b0bce2856bb7e08c";
+  sha512.source = "53b295fced75d6a8451d1d6e9130b3aad977fe7b1e0ad57d67e899920dbedefc297b36636772cedb94bace189efa7f2a65172e44069ba62609961ea0cf8fe2f2";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.13.0";
+  version = "0.14.0";
 };
 ifallfalse = {
   revision = 60027;
@@ -24120,7 +24257,7 @@ jacow = {
   version = "2.7";
 };
 jadetex = {
-  revision = 67493;
+  revision = 69742;
   deps = [
     "amsfonts"
     "atbegshi"
@@ -24197,10 +24334,10 @@ jadetex = {
       fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "amsfonts" "auxhook" "bigintcalc" "bitset" "colortbl" "cyrillic" "dehyph" "ec" "etoolbox" "fancyhdr" "gettitlestring" "graphics" "graphics-cfg" "graphics-def" "hycolor" "hyperref" "hyph-utf8" "iftex" "infwarerr" "intcalc" "kvdefinekeys" "kvoptions" "kvsetkeys" "latex" "latexconfig" "letltxmacro" "ltxcmds" "marvosym" "passivetex" "pdfescape" "pdftexcmds" "psnfss" "refcount" "rerunfilecheck" "stmaryrd" "symbol" "tipa" "tools" "ulem" "uniquecounter" "url" "wasysym" "zapfding" ];
     }
   ];
-  sha512.run = "f169a494d7544e5218dc280937add40b1b0782ee5aeb5d1cebb4aa905bb72334c6caaf628ba04c3b5ebec984a5dd0c78c3c2f194ddbf121f63c5be4adcdb58a3";
-  sha512.doc = "670f0e517d81bb70b54b375e9cd240ac8a6ab9143fb529445c6622d445240a690908d043e583c7bf1be139ecb9a69dae77db74ca9755aac0a604a3eb342cc4a9";
+  sha512.run = "7406670d136a018d8cc7a7e39d4ce6a2b4b58e48c8947eb257a2d014cf69e923fe770f8fd8b38c726b66f6924d36adbaadf59dd9b6f1638a598dcb812a84f926";
+  sha512.doc = "16e2a21e6e724d194f4af66dd67e66fa294332f05222384ba63d5ec76a52d0da12e6381b60735111078cbab8129bb7f7f039487a7a0fda61466e2409f4ce3428";
   hasManpages = true;
-  sha512.source = "d05f8460b8f9b21233c92da7a5d64a898c4a4b5eae5dd8f15751d4de00b7ec48dc6ea0ccf43f43929295fbc83a5cc342dae9d7ba14034cf198d40de3cab247a9";
+  sha512.source = "7e28b294c84333b5c8b4ab769fd0907b6ee3b05e8cc6f729c8925029c9a9d03f5b81b000abd26a5b6d7158ed7465efc2f403a7c5a28786f2a23592e0deeea6cf";
   hasRunfiles = true;
   license = [ "free" ];
   version = "3.13";
@@ -24308,22 +24445,22 @@ jlabels = {
   license = [ "lppl13c" ];
 };
 jlreq = {
-  revision = 67400;
+  revision = 69932;
   stripPrefix = 0;
-  sha512.run = "7421f665a77b88d942d145dd63d0ea92c3f2c24815c564ea4eb13828bd9bc45cac1362dca4ae2e69a3f53fa9b79e4a495f87656bd560c951b407c34fab69a266";
-  sha512.doc = "2c3cf0af124dd6d92d41bd89a25884983c691c4a9a2a72c33754eda92244f37ccb310aa330f8b55d7a18c45d4bfdbeba60358d0e5b95bf7ffa3ce588f6a68b4d";
-  sha512.source = "0f455dad9f954f8e8d84bfda0fe704b0cf6a384f6c0a215299d9529d10950340071fbbee98f88a9f12a9863d3979246533a47e5a6e7fcdb71dbfc3c165079d74";
+  sha512.run = "a6ed1fc8706d9aa3bb759bfbf85f451db0f5f941b46c607217a0d1af653e617e56c50d4b82e0f376d212dfff5e4fc46f922e5397940931cdf2acc191f7c34ce6";
+  sha512.doc = "01b804ec9c3447f50666e5bea40a3142c29b66aca69f69b2ea5cc7f4696b569744e55b148da26f6dd9698ad4cf580a738196c5b09fe0a0b831105251ebcf1855";
+  sha512.source = "e6f452eaebc5b9a3b7a257dc1754f6aac822a92acac243b3301475f38828787972f8c15a34d92117c3036fd38f6a3c0b8895979234a52f3a65f518b129a601f0";
   hasRunfiles = true;
   license = [ "bsd2" ];
 };
 jlreq-deluxe = {
-  revision = 66115;
+  revision = 69971;
   stripPrefix = 0;
-  sha512.run = "318b01471bcd2e7a15d5e58fe922d341c9daddc3ed9f3565c85bd221dba2d5d38635d60b848aa37760b3ecfd4d007d202d69b6694eacd41c885eed34ce77c34a";
-  sha512.doc = "ce096d4d8461d1fef3e4c9d24efd8f7a402085ed03852ac2b293467400e2c000633cc852d4a0ccc2b0903c9e3a682770a4edf632183758b9753e6a1c553ecab7";
+  sha512.run = "bf50a2ffb569202f6bf182637482005543ec24ac214287c3dcab234b6613430f4cb0e8d7a987bbd674e1c3442d57f03bee2df5cd1384eb29298b9f304a07099e";
+  sha512.doc = "8a8dc59a0db9128c3d4db9a207beae6fca412ff9da59b7dfa32741f3cb770ecfe2d5ac1dd02521a938d82c5c15735f8e42ac56906ad59a097a5a150bdde1bc57";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.4.1";
+  version = "0.5.0";
 };
 jmb = {
   revision = 52718;
@@ -24369,13 +24506,13 @@ jneurosci = {
   version = "1.00";
 };
 jnuexam = {
-  revision = 69161;
+  revision = 70117;
   stripPrefix = 0;
-  sha512.run = "f09ea4e82d630111a770568a3ffa3de9b862bff33cfe40eeffb69e6997fd2893bf58eb626d557f310d77a13dd97d6369cb7ac3d1f87601dd3b8b2aa4dbc5fbca";
-  sha512.doc = "828fab98b92a094ba2f42e9dbafa2bd4ff6de6e7fcd242871a5e2b6d3ed2fffd54f3bc9ecce7e24e050f47aa264cc5f8d0684355340bcea00817e824e909543a";
+  sha512.run = "bb4bd96084b70e0808ee15cf23f0ab721b6268074cc5544aa80c9a8b3f6c8a1784591859215e17846a606d7ca76d93ce103c70a8805a321d5833d59061e71192";
+  sha512.doc = "45b3a04be31cb9fd778a2a264575a536750bf0c73b0ccb0fb68fb83d99fbe370a70c119e962a1dfbfdcc3da4056439e271aea0e06d7b7289e0c97f3bfff1d6e4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1";
+  version = "2.1.1";
 };
 jobname-suffix = {
   revision = 64797;
@@ -24464,13 +24601,13 @@ jsclasses = {
   license = [ "bsd3" ];
 };
 jslectureplanner = {
-  revision = 57095;
+  revision = 70448;
   stripPrefix = 0;
-  sha512.run = "022c878b95fbca48c7cd3464a12d5af8b29b26c2fe46f3c4dc2f27e6c3b3660f78f3baa7b9d289c3444fecd7186f6d6cb18d8c6c94b9ff27842f6c9018e9762e";
-  sha512.doc = "1af4d1a75b6f5f056f0426f00c8c26493638e8efbdd5ff7b746f45cf4ca3c6648d97b3832885d97b71124cba7e57eb22fc2018619e5a33c66ece10ba20528a2f";
+  sha512.run = "8a94f190abadb4e8d4293782984f94b17f5d3c352d4a0c4f9368327df0e27a416d2f584ee44c4829f05afebeb8a4bba2770086d8094c54cdee887f11620da808";
+  sha512.doc = "0907581fac47177633defd0f55a6a8373078224e2edc62b0c8f5e2521464d179833b9a50d513ca52ae1994465f75b129fc34cf81ff54fa904fc7a7622b4a0128";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.12";
+  version = "1.13";
 };
 jumplines = {
   revision = 37553;
@@ -24653,12 +24790,12 @@ kastrup = {
   license = [ "free" ];
 };
 kaytannollista-latexia = {
-  revision = 69265;
+  revision = 69876;
   stripPrefix = 0;
-  sha512.run = "c91cf44906a6e377138a04048a3b9885ad10df3ceef268ee3c8d467e4697fa8af1cc5f077b0ae5e2d6049abdd0dfce35a2f83d0ee46e06a1759397a657c28ca8";
-  sha512.doc = "8ef1f9e57e05911d443123bd4393c9bf99b715a4dcab570b361e7798f714228b2782dff0705fa91e660eb2e767709b36de677b7d96c103ce674875b26d47af35";
+  sha512.run = "e7b939930e9c0952cf67e402b363a00a7aba9ad226bf4301650553ab8117a78dc415f81c31e8ca6a8eeaefffcf3fe95a57cd93164df01b63f74c0513f0e8469d";
+  sha512.doc = "f44779f63f301091ac2119f6c5002c29d2969509775acc752ca4aefeca8b16bbc02f352c36e3b869ea6070f3fd70bacecf3e7d41d00bc5007d0176e5cc489f3e";
   license = [ "cc-by-sa-40" ];
-  version = "2024";
+  version = "2024.2";
 };
 kblocks = {
   revision = 57617;
@@ -24882,14 +25019,14 @@ knittingpattern = {
   license = [ "lppl13c" ];
 };
 knowledge = {
-  revision = 61991;
+  revision = 70609;
   stripPrefix = 0;
-  sha512.run = "dac315840aaabc1efb96d52d96e1ee789f61c65964c0343fc35d340694a3f13f7cf9e0ab101bbead9f3d25ef9e3ea2723916864abdd192a89c319a0370b566a5";
-  sha512.doc = "0f95f35d60513fb181efa2d5d9579efa000838647b167521b364305774be164731c4c09ba4fa739ed3749cd5c43b19b59cd417f8237bbca2f930bc4b22ba0c68";
-  sha512.source = "5843dfc2fec15d5cd0a57eeb5aec12bfefa2914bdb8f4ebe2522e6576fcbea73f5663b437ff2654f8ddd7d6f8ef92ecc8aa96c59bf7d76ac58029fee85e1bb8d";
+  sha512.run = "8c97dc4a8a0ab5fcd2ae59da3b4217fd1e6171d788197c3755577a89fb86c6d7d7075778c669bdee8c0ff8157583695dd20c1186b54f80b87c968add98970f99";
+  sha512.doc = "a0058b7065a25ced7469000536321cd830503fc3e3f1bdc00d44ec4dcd7eded837f62ccca4ea49d46c9262c7bf8accb2f29d6564f39e9c3acedb163817098da9";
+  sha512.source = "f7586aa134293da41c4920402aba230c12e5f14fa9e7675206fd270203bedfa42426e1ffd56f4289980b5a49877f8179cacf4ecba8f2a5fb857fc891087a2531";
   hasRunfiles = true;
   license = [ "lppl12" ];
-  version = "1.28";
+  version = "1.29";
 };
 knuth-errata = {
   revision = 58682;
@@ -24938,12 +25075,13 @@ koma-moderncvclassic = {
   version = "0.5";
 };
 koma-script = {
-  revision = 67573;
+  revision = 69755;
   stripPrefix = 0;
   deps = [
-    "footmisc"
+    "etoolbox"
+    "xpatch"
   ];
-  sha512.run = "0ad55b5765ec907f39bbb8bba7deee4a131d76c81a0e7bd7379031c5a8771d47c121df5a55699706c886063a12bdf338e5b47b6a6784f0a23a72891a07b322b9";
+  sha512.run = "610827993fa3d94f1b914ee24be0c0a2ec1062c1d1863dac8687e6ccf9c7866b7ea56fb45363587138d7d7842ff58cf1aa4e1c7970f48ca8f7a783e0fafea1a6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "3.41";
@@ -24994,17 +25132,17 @@ korigamik = {
   version = "1.0";
 };
 kotex-oblivoir = {
-  revision = 66513;
+  revision = 70496;
   stripPrefix = 0;
   deps = [
     "kotex-utf"
     "memoir"
   ];
-  sha512.run = "ec9022c6f1fb3d888e7624f4ed311327d9f0b9b569f7eaa078d03c275027edbb4cbcf5785d155ec9cc7c68ea1f93f5d527cc769a12609c361250d5bcaf0d9d42";
-  sha512.doc = "28d6c7c2ba61c06258020dce099ae1ba339ff1a6c0a1c9b350512914fda062d3cc612cdb4410cb3ccefdef0f0700c6f724a35e1f8c5a0fcfdfe16c090322b59d";
+  sha512.run = "7a4d61b5e5c20b3ef673eae06b95403b7e3f65808f8bd1163f8d6a5fb33004a86991b5941da88cdd89b74ffb40bbfe14d0a51f062b51c7567b03609cfaf6ddc3";
+  sha512.doc = "42c6dd702f21cfda0a1857f42832a53c0d936280e07c0a3700e39d614569bc5bdd0dd50daf4e01fcb0c3ab94c747645a1ee7298966b5c3ce16281b402bd1ca97";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.2.1";
+  version = "3.3";
 };
 kotex-plain = {
   revision = 63689;
@@ -25068,13 +25206,13 @@ kpfonts = {
   version = "3.35";
 };
 kpfonts-otf = {
-  revision = 68970;
+  revision = 69636;
   stripPrefix = 0;
-  sha512.run = "d2519e9ea6aa8cb660d2fdd69e6e686c17c6111eeeb313dd163dc3dfc4ea90dab4abf41661541a461c6b7536062cc6d30f8bc802c2c86850b88b19e64b5c827b";
-  sha512.doc = "ad75e243de2644d48130c75923953368ffa09144f7b8e67738e2cc2e065026fbf1762251fef84ff89762f40a86ae1f1f6cb92b4a09924036fa73a004921acdb6";
+  sha512.run = "5c90bbd34da4ff9b610e5d1d407787cf658cc1a649c42c43d64bd374d04f43038956a5dcd159efbe912fb952d5a11370388870c87bf0a4094f19c019965a173b";
+  sha512.doc = "677dc5c94ab24a047028b403db43a0493acb4bf8644ff6b63cbdfba12f1de11541eaca6836290c4ed822c1800dba299e2b5afb9f5455164db038c01e7ef0f17a";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.61";
+  version = "0.62";
 };
 ksfh_nat = {
   revision = 24825;
@@ -25224,23 +25362,23 @@ l2tabu-spanish = {
   version = "1.1";
 };
 l3backend = {
-  revision = 69310;
+  revision = 70027;
   stripPrefix = 0;
-  sha512.run = "06481bcaf4082b3f187a855eedc32abae8423ad5020911ba1ab10bf937c767f98ea8eb10f6a83dc41af126facf72bf4a52c9ac61b9a1d2b9065c4a20f86b617b";
-  sha512.doc = "637728bdbdeccd2ec5ced361941b7e9cb560b53dc2ed95755d7a4da45d22004923c034e1aa55b9ca13c2b8d7980f99deead19774120a296339402fd71c9c7948";
-  sha512.source = "16ec201e41de548e9d6b65dba8a778a30a88729c186c18079e50dab46b310f8313847ce5e4402dd71a01dcde8a0e8a74ce96336403ef53adf8283a5491e33223";
+  sha512.run = "b0fa82d3f6ad4ece3ce1e0b254ee52c97f30b143e458ad4a2f96d530f787650ae2cafa20801b865e696fb4deaed2fdba3e82ab938e09d563569ab13d6abb331f";
+  sha512.doc = "68c69840f18a1f2c0442a008d632d5bd1295390a11208b8b94391564cdd0095aced7ecd3ae59035ec55faf267266115c76adf3839eb22f084ae348fd051547f9";
+  sha512.source = "4fc5659fefbcdb53f30f6852b38ebe2e05238637ebbcf9885fef6496c5f4e54749f341bc492bc65c17e268c71bdfd6ee5add0bdcde9baf8e527ae48a4915fc14";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 l3build = {
-  revision = 69360;
+  revision = 69748;
   deps = [
     "luatex"
   ];
-  sha512.run = "d69d48f9720187457d38db15492d2852990fea748a6ef505f244469185862d9c167e82422056839e7dfb22ad1a89d123711ee7c756197d1fe393d4526470d51c";
-  sha512.doc = "8d53dcc007176451d00d0d78a965b8f88d6bd1096ee340da14198573704304f1c9eb87de466a824871345c2e7043445631d7eadb6916e5cd13172e089912efef";
+  sha512.run = "32999f257488429d109eecff598df6f7cba7e4511aa2b9cedcdd7cdb9acbbb959f13a1d3253d73f75e02c5c91e29744fdd934230d186ae7e76c057e51145cce1";
+  sha512.doc = "aeca997d50468e929d32c727606273fb01ddbce1fde2ec8f03f7e92f3f334ff7cf537432516b584f0420b9a93d7dfdf1f277d789222d9a3fe346009d2d46d72a";
   hasManpages = true;
-  sha512.source = "8f53fd6835cfcbc22bf88be42afe97f92d007b89d2c9dfd745cbc23037a94b77a0a7261837bb77901cba7f52748c904bc0e009f253f68aa52aa8347728c2c7d5";
+  sha512.source = "5969f5f85c71844c7d3abea497059f2bcf8b7bf96294ad746d2acfb876f3edc5e573aeee081f2ef45baee4eeef5465e69c1591412d45d2912f0391d6dfe35d18";
   hasRunfiles = true;
   scriptExts = [
     "lua"
@@ -25251,38 +25389,38 @@ l3build.binfiles = [
   "l3build"
 ];
 l3experimental = {
-  revision = 69310;
+  revision = 70027;
   stripPrefix = 0;
   deps = [
     "l3kernel"
   ];
-  sha512.run = "2e32434ce1c2e485e879e87cd1becb8374d54ec818b321b17d85d0586382351407c3ba0b246431dbbeb16994f525f5ecbd127465e7bb52ac96e7333d3dbf50f1";
-  sha512.doc = "6834b31fbaa7546a7bdc066134d85cc310609c3966905ec654b86cc590d26a55939e760ca5334b7ccb612c27836a9e3d876ad95a3d15f6fad4bb4bb6269faac3";
-  sha512.source = "e278373263b43924aab0e45c7e0a8fed54e907d5756022253b9a70121d0b2c978030e774fd52e72d240b5c15a05fe2c4c926d5cb84277ae9cf40021b80c9fd81";
+  sha512.run = "c25e7d14f3208e59bca4da786df9f63bf64455e9adf3517438e4065e99dc0e89fdfdc0325f7aa26aec7e9622b99029a370a5d0fed6bcc780a62094cf26b1a03b";
+  sha512.doc = "4606266a1a8d5022594e7239821afc9d02b735b68bab4da681699851f748c0893763cb1943fe20eb7484f16ba955ee193e961b7f6235710f8d813198529245db";
+  sha512.source = "834b404c08acc25cdcc1124512d527e7f094c18ca6283ddecf85bebe25ed8bbcd40f2c9dbf56c19280f8dc1db3a2f35a6bb996175ef2a85a15280c9be6cd3ce2";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 l3kernel = {
-  revision = 69310;
+  revision = 70027;
   stripPrefix = 0;
   deps = [
     "l3backend"
   ];
-  sha512.run = "254ca061eef5d18c856c4fb2ef00240fbf1f85b7459739b92787a99ef2c36054ce2eda2629ce92305e0e6c8b73f85074c691595d88a0ad035594307d60b2d5fd";
-  sha512.doc = "71265e9c6834c69c2945810a7aec93d7c5118b5ace790d9aebe846f86dbf62652d19d5fea2979a0701c0ff6a2c2c5bedf55a20a19cc8d5944cbd7eece3061d65";
-  sha512.source = "e2416ae4337acfd241fbd1f8b5a2d2a60c0a3838933404ac48e36c7711d6418efec041a5d8be58383a49ad0f6f3e38d8a522a0bbf9c4b589b4bfe46c9d174b6c";
+  sha512.run = "0908782021ed4318ee3d43eedd7b0a9b83621fc04f9e6ad3d540d2f87b24cda8bd69accdb9691495bb3f7320808b976d1b798b3c4c95778b9b2804f4401ff893";
+  sha512.doc = "d57cc53087b1a164c9cf7586313acc176a4de52b3da6734df1e36603b5ccfdae9fb19542e46246474936363020ecfa65e12f024b1fb50097c3205bb6b6aa2961";
+  sha512.source = "e9b7b0e179fb168106277716bc8519b6a39d8062e3dce86212d582d42680ff7bb594542210a8ed1ee969226485db1d4055df071da898234cfeb9edad92d675fe";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 l3packages = {
-  revision = 68507;
+  revision = 69992;
   stripPrefix = 0;
   deps = [
     "l3kernel"
   ];
-  sha512.run = "aaf755351982e89531305e3f7a037db69e15b1b1eabb4140cb7a3a0a4db7c9604222cf0b9622d05b7637da310634f4ca1f00ab5941f51f152eb46b77165e4c92";
-  sha512.doc = "05231cdbc1f9bf3ad9775893099c46705f155a15e3ce9c4e8fb3d92422a3bd3dce9d05cd89e6f45c1d2afcf4c3dd469995e8d156e045d95b2788a4712ad5f094";
-  sha512.source = "642810f1d5eb19059e0d5541b3cf98c6e7412c1cd3194d469eedf9df5d53ba8c1d0f3ecd382df18637408648d252c3c52bb6e730391049626d8dc5076bb3b7e7";
+  sha512.run = "906dd058afdec3fdc416e1a39e3cddc0b8c8079dea35bc1dc453ca4f287b849aef55b71bf9d8fac9a0c428d1ea3c6f0bccb0dfb9e895a2511cf31852024e3cb5";
+  sha512.doc = "49e8d52bf64ccd22827ca9faf65dfbe3a4af727feb089509fb512aa5ca8263be2c10294485e6da5bdd6a3426215ec5c83a434322ead9604aa029414b1047cf33";
+  sha512.source = "9afaf6e363b3a1a3402b64bbd6ef2236dd062c933583ab8be5f57217d90196b456aa477f5c9c830fe6fffcb79d2e0f2dc3ad51ab3c9cc764b61b5252cb211aa2";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -25396,10 +25534,10 @@ langnames = {
   version = "3.0.0";
 };
 langsci = {
-  revision = 65793;
+  revision = 70028;
   stripPrefix = 0;
-  sha512.run = "88f33199c97f3f8a6a8ce174caea01f299ecf7230324d5739bf02d7e5b42db36736d1c17730a2f27f6d114490b5c1770a6da368ec1dd983791b8a67962136fa7";
-  sha512.doc = "b7b18248eb59015cdbc489b1ff9c992493e5a4453b4703223586367787c5648c640bc8946d25e665acf88ac376953f2e22f61cedc9ba53d9d8e4a47ce89e9b33";
+  sha512.run = "02e572eac6731aae4dbf7db5c1e4652dc34cea9dd6a43f0f63b7d7e4aa79113ca5ba4122758303d33c94f33e42513e4d7b51d22e4b7c17fa8b7ebacf8e5024b7";
+  sha512.doc = "05c1231243e03156ffa01cb84f16708542598fcd5349c858913c2d0c6f0962871ee70034fe8c2255ee6338d7d659ef0262a408650a262ea8c6c1e8e173ca4e12";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -25422,6 +25560,15 @@ lapdf = {
   license = [ "gpl1Only" ];
   version = "1.1";
 };
+lastbib = {
+  revision = 70377;
+  stripPrefix = 0;
+  sha512.run = "e2648c74401833e4be62ba616e146bd662626b1e6d9dd3e6fb3b1c371634e3cc022dbd1b4f670d957d239ca9ae776dec94ff63306d54b9dc571ab6d701850c8a";
+  sha512.doc = "45ce82d5721d79e26e1d7f034764b526315add13e6943fcfcd6105b9040b7ff4951e7c8482be15d2366880286e1caea8ef47aa8a6fce92941e9f19be1e7003b0";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2.1";
+};
 lastpackage = {
   revision = 34481;
   stripPrefix = 0;
@@ -25443,7 +25590,7 @@ lastpage = {
   version = "2.0e";
 };
 latex = {
-  revision = 68720;
+  revision = 69443;
   stripPrefix = 0;
   deps = [
     "latex-fonts"
@@ -25451,12 +25598,12 @@ latex = {
     "luatex"
     "pdftex"
   ];
-  sha512.run = "5db84e105289993a7b03358f17af52568fc826c677368aec4c9326c1ca974961de01833b038aae6b95101a05dbd60f6714756d866e1a144c30199a0bd661e30c";
-  sha512.doc = "53f76796c526b4357b48df1443baedf5af5304da87b21ed2ee6619184c9daec33c8fd7a059f92c0dc037c1b19c3bedf804e907c8031385b1f62d199c7af67e2b";
-  sha512.source = "c6c5244599aa46ee18f66dfbb59e59411625cdb75333bd84a461f3c03b3f4d0400e3d6100b1f511107d779f0adc7dc1ae50952c1315ed587b95432dd3b659a0c";
+  sha512.run = "b6696892356c87acc788255f0023f081078878f4f76408be138b8b9b62f0fe01f8dd8bb68c8049fea319b41dfe4dafadb3237869fcde797ff5580ba94d68a473";
+  sha512.doc = "d599e1fb7c4433658aa65df89ca318467b3c6689d3e4e2d16bddd9397968888052937900d382fdd43fe627813e40d242d7728325a1bc15c8ab5658fd6ea4c912";
+  sha512.source = "4b156445e50bd24dc3ab2f90088b0ae5e25930818fa14b7db3ccc1aec4642cb3172f07c57bf0dab3e17f91cf22e1b5d5fa08e705e392635328fd366514da7a24";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023-06-01_PL1";
+  version = "2023-11-01_PL1";
 };
 latex-amsmath-dev = {
   revision = 68730;
@@ -25469,14 +25616,14 @@ latex-amsmath-dev = {
   version = "2024-06-01_pre-release_0";
 };
 latex-base-dev = {
-  revision = 68730;
+  revision = 69872;
   stripPrefix = 0;
-  sha512.run = "88a5f4610e396128575a96bc20091a0bc66295aab4febe52a46e89e8bc1b4396ab33dda9bb3b94a643645b82c676e6e1fcf37544435ff2852af0417f97f24f52";
-  sha512.doc = "10214331abeb528bc4e594f9141c99c21cde74729652a7d4a3bce71e401493904377bbf49c1778e35461689f0b2eba9e59c9b52ea484c8ac1bf79413963124a1";
-  sha512.source = "c601183a89eb0d5fcacd7f40bcc867d668067228fcdc17ff5dd5dce57623a6ad21c51d0f5be8b5e99003e4eb683ed4cee33a201fee52c88f1f2a4d873d901197";
+  sha512.run = "d24b56bb77ada497449c501c549cb6fd06246f899d4f3a2d979292ffe85f80f532c5cbb8b3e49b6d1bc0f8098d56c34e87f15e8123247ed7af59c9a33b815a64";
+  sha512.doc = "4ec2405d8d3e3c92666bbab01cdb065b174f82bb9c3b91f0bd7af23dd2fe3e8cda98060cf1e08df349ea32386da911ee4c7a28dc29bc52ec6ac02a46cab98b66";
+  sha512.source = "83f7103d961f186fadd6feaf63cfb4f9fd6cc2aae0d5c04b6ffbd0c0eee2d51cad4b2458491cab7760a29155682d806fcc3c1ca1dc8d788ad248a58dc071a361";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2024-06-01_pre-release_0";
+  version = "2024-06-01_pre-release_1";
 };
 latex-bin = {
   revision = 66186;
@@ -25663,12 +25810,12 @@ latex-fonts = {
   license = [ "lppl13c" ];
 };
 latex-for-undergraduates = {
-  revision = 64647;
+  revision = 70210;
   stripPrefix = 0;
-  sha512.run = "5fc8504cbb061e03329d2e1952749d67bf5fb2f6798353c62a6f3d3f0106b9ec270852a99d9497870d84ba5d7bc9aae3bdcf7d15cc212d9c091e57527e97b656";
-  sha512.doc = "a20a2467eb6e98261c588baadfc15a9a653fa257338abca2c8976d46e8a51c282012f1279b537e02e39a00227ce3171b6b68d20452dd4f228c187f373cc4e9b7";
+  sha512.run = "bc5dd03127625a8440ce605d8f4e8de65615f330dc9194e0e096175095263eec3ce2790dcccd96d32118492fa71483645510675f4868580fa00daf95f12f1aa1";
+  sha512.doc = "b21b7a6a759eba0ae086ba3492266b9784aa651a727b22b671b3e3668197727118f35095245ad8d4b99a40f6c5c00500f7791b3cb6a6237493b7656a17abdf3c";
   license = [ "publicDomain" ];
-  version = "1.0.2";
+  version = "1.0.3";
 };
 latex-git-log = {
   revision = 54010;
@@ -25712,14 +25859,14 @@ latex-lab = {
   license = [ "lppl13c" ];
 };
 latex-lab-dev = {
-  revision = 68730;
+  revision = 69872;
   stripPrefix = 0;
-  sha512.run = "59718166fdb95ce7a0323aa201477775d469f091eb47866b81449bff506e6523cdeef0609f9b0a68ff0150e1f08010f1bc00b447e4f7a30b254ee5db0b7494f5";
-  sha512.doc = "42de975fc56df75072e120baffc5a70f4525d80c82ad1e3de60e23527443d8ecc90b0219b42e1c52abad0318c19b27792f46b83e22cf471e5a49ffec2f8e61b1";
-  sha512.source = "5eee782feb451b2b454d08272df09c94184fc3f7f58564eb11fb7e927f4b9a23d3bc0daca31914f9c96b53ff55642458f35a4851f0373a699abfdb168be93bba";
+  sha512.run = "7812684eb2629b139e5871b5b916e2344b85d8bb88bb983d57d292d9873147d51b60177733e61180d86b95d185e456710acc5037f56fbfeea52ab1d3e04433fe";
+  sha512.doc = "7750fea3ff6ed1352db54674844367b3ecb400cd4e306e3c130acabcdbe59b3abdc7508dd12e5febea2381cd74407aa3cb3bcc25f5d7b34401e75e1eebde2529";
+  sha512.source = "d1ea2349dde66988f51b9d1f37875a2d02a4b44499f3551152ce3bf38460d31e5cbd423e17ac72dade53eaac00720d547b460bda25f29821875605b02c51ccd0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2024-06-01_pre-release_0";
+  version = "2024-06-01_pre-release_1";
 };
 latex-make = {
   revision = 60874;
@@ -25770,14 +25917,14 @@ latex-refsheet = {
   version = "1.2";
 };
 latex-tools-dev = {
-  revision = 68730;
+  revision = 69872;
   stripPrefix = 0;
-  sha512.run = "b7ac20a167585e18b7f249612223508380b04e162f10123e6a1fcde1df07fa72bee42bd46cc4cb20043552f981455a4036357b7c5f4c41b2dfa9cdfb8f4dd5d3";
-  sha512.doc = "2711c79b5ca59c7f399b0645f4b3d4620b3cfec3b76b3f26882d42c50ae9bedb46fc59a9483c067e8a667a4e089be42fe8e87daa708ee19e8ae0e945038f1f23";
-  sha512.source = "adea89208290f95ed0b970027c0eb70b6f7300fd4e171a18f88e6c174e0f184ee880a2cb04f8697b2ac55df45484787289a792578933857fb6d70864c0ae57f9";
+  sha512.run = "04828515f6eb9382d3c3d9c2ae8fa52bfe42fcb511b36840add979901b4a7535ec5a40d75113f0240299ec3bb07b59fc54fa65539389467f402a7ff15714ccf2";
+  sha512.doc = "7136ae8556c19d2eaab7891981cb10b52e4538d10fd82073843744996de3ba2919b07ca63d5fc2100d093b9e9db862dc1a4f7d19615f96d164aa2431ee2f9b8f";
+  sha512.source = "2073e38c2dc81da1d79fe6567bb99cc5f2649a8352b5e4164ae21cb0efa9d7697a1e9e8e71b5d3ae636eb215ce14c5b202cca88ebc6ba18c15524d0f566568b6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2024-06-01_pre-release_0";
+  version = "2024-06-01_pre-release_1";
 };
 latex-uni8 = {
   revision = 49729;
@@ -26025,24 +26172,24 @@ latexgit = {
   license = [ "gpl3" ];
 };
 latexindent = {
-  revision = 69269;
-  sha512.run = "32b0e8cf8433c6c5df601268b9be7d752322fab5fa120e1ee9b8335ba5ab5d48d874bad26756fba2b9da19ce3ce582824af7a859ec1e7f57a8b2e3ea66c6d631";
-  sha512.doc = "f843748868107e46e97840d2ef8699d3234760cceb467730370484459a254db7c36869ed0eaeda66e95791d7bb20d576ffbea39e72da44036cbed0dc86799742";
+  revision = 69472;
+  sha512.run = "23c35d38e78c3debf1c89cad7f719727edaa21e93d1cdc3f845f3badc0e4211919bd8e8a495010fde7eef78f9784f04c545d67546f30f16179624e36f82d31e8";
+  sha512.doc = "6b0de79326494370b3fba30cf44b0edf7ec925462152c6c11d7e4b9de489b58a94ea64b0e9059b28ec17817cd73e75f0f327aff2ef190dc9fe35aca2b24af66b";
   hasRunfiles = true;
   license = [ "gpl3" ];
-  version = "3.23.5";
+  version = "3.23.6";
 };
 latexindent.binfiles = [
   "latexindent"
 ];
 latexmk = {
-  revision = 69373;
-  sha512.run = "04cb04d6d286f317c7a9e3a7b2c38e1cb9b89e9570d59082173dda7eed8283f49166691113409c5197d5d8da7f319dde9248a445dbefdde97cb1b940a3dbfb9a";
-  sha512.doc = "0d57a68fdea7492a0776e7efaa4269ef45050a52ab40a596381e8d73ff978d9e25459675fe3aac6efba536197f7682a86eb8435c1250957f40a0ac8ac3e9b007";
+  revision = 69657;
+  sha512.run = "ce495cf39bfc7a113d53427eec1ecd6fc62038c91cf5b97b0a7dd6fdf719b15425b6adfe1c734e5eae5330e5f8d15e3f9bf808d8e324afd53b8915d55e505935";
+  sha512.doc = "0ce5229b80291809437e57518551e0ab0b06bdc381e07ae100ac2fff3f66965b64c4df096dc90fc5814b1110a9080322742b92af57675cc53b26ab1548a37582";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl2" ];
-  version = "4.82a";
+  version = "4.83";
 };
 latexmk.binfiles = [
   "latexmk"
@@ -26068,10 +26215,10 @@ latexpand.binfiles = [
   "latexpand"
 ];
 latino-sine-flexione = {
-  revision = 53485;
+  revision = 69568;
   stripPrefix = 0;
-  sha512.run = "6c6e7dacb974ba25fb5106ee1b846a22590c1ee3e5b19aa4c9cb90aab927216a19d15f977eb92f20fb589011769463a500ac2146c0c8cc807a91169da660bc13";
-  sha512.doc = "204422bc4fc85ecf94cc3236a74acc368d34926b53effb45b6411e694c4bdd2b91c30250894868d3928b19c693372c49e7435f83974e09b829938b6237ef1957";
+  sha512.run = "e498d5ec469420db789dac92e314f9ac0355b4afa2c43d4dce2de3eb23481db2687283f9ccce2ffd6edfd7b8f2d7ca3bf7425f0ff43ed46d7ca2dc9e3bc16797";
+  sha512.doc = "ead89b61f23f527d4b545775c821792aaa5a4c3a6290767139dd8872ff6419de248d2f1d657589f469b49bc7b8a68a3368d5c26aa61a39ef6a0e6835cea97389";
   hasRunfiles = true;
   license = [ "publicDomain" ];
   version = "1.2";
@@ -26207,13 +26354,13 @@ leaflet = {
   version = "2.1a";
 };
 lebhart = {
-  revision = 68376;
+  revision = 70050;
   stripPrefix = 0;
   deps = [
     "colorist"
   ];
-  sha512.run = "6537a527caa6b82b1cdcec7150d90cbd7bab93adf1b9ab96f59c4772118d17d21c969ccff449c67905a2ffabf616ac1783c62ffe25208d52779544e84c5352c8";
-  sha512.doc = "eec7a0d7e647797829023fb6d0fc55e8d35ff986a0e614b4522deaf632799053b3580e8888bb77974205f9e566cc14f04d8b60af3238c5ef65f59e0599d079a4";
+  sha512.run = "693591f7f1316f2e04408500a958db59528cf12e9c93bc38b9fb88edad1e3bea01d8adbe00546cfe8d448c30e1f34144b53ab9182f81a18c4b30b2167fc86306";
+  sha512.doc = "9932c964d79640a85a28dcbf523625c4b291f9a2a6f89be6a4c416c7318a7e55c15923406457ad5ccac8ab4257aba21b1f97ca3e2acba6339178c7307895ee10";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -26263,13 +26410,13 @@ leftidx = {
   license = [ "lppl13c" ];
 };
 leftindex = {
-  revision = 56182;
+  revision = 69660;
   stripPrefix = 0;
-  sha512.run = "01e0687f0205c40d95e23b5a9fea2dc8aea95d2e8d5abc54a0c21c1b5934dd68b3705cb625b7e7c34ee30d590cb3028e816719dae6eaf80e5c435078fa3b908b";
-  sha512.doc = "93b1c20788bc707ad90efd69194d8ecdf5154afe89870e51397c810e292b4e52fc7714de844580d0af5be0434a4493bca7464ca0d0b5f2641d9cf46a1f9c77ae";
+  sha512.run = "3fad2e822408843bef73d95b5c7eb99840e9a3b9cc3f5815197ca735d8953a30a271c9609c7fb34eb4c8a7bed1a637a3421fe8a1380b5972e342997cff2ea247";
+  sha512.doc = "482b46b33ea20c85765b6b1e4920b96e8f94347aebb057f2958ff2bc6884e8c1a5f121b31f1aff79deed93209940d37fe1fc33199a3f25b81dda74f02326a862";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1beta";
+  version = "0.2beta";
 };
 leipzig = {
   revision = 52450;
@@ -26292,14 +26439,14 @@ lengthconvert = {
   version = "1.0a";
 };
 letgut = {
-  revision = 67192;
+  revision = 70496;
   stripPrefix = 0;
-  sha512.run = "0dcc57dd2e77f28a2df931e99186dc3ba4327073b222f8948632051f4e6d45383c8ef6de64443dc9855e6c9ec49f72fc0594a236445bdd135c50ec3aadee20ea";
-  sha512.doc = "e7fe29f8a7027e84cff04c0a70f077044ec07cad59873e33e6407a88f793c35fbd767a2a3aa43103a8bbca8d851ab9ba07576e8f318902fc0dda411540a312a3";
-  sha512.source = "c0d9c7145d89796d95cab9049a34efb634c0963867cbd60aad85e2f7df2b1f7ad356389c362dff239dd6ef8c7297ca5a232ab5364a4eac0c75aa8c6b92744d32";
+  sha512.run = "26c67af52a69cf3c9eff59e1e3af2cdf1450caba17938ded0c6c8d090cba120809d4eaa981c2934a62e9bcc78a0430053f55e1c4ac241770c779c4a5a8cbcce0";
+  sha512.doc = "13fca9f0e879d4838cb7e05e2978c5a63bff21b14f7da80e82030916218d49c870f97037f88ff4316bd220e5c318d2f7d568ddda9f787618aab31478e1a0ad63";
+  sha512.source = "5057d1ddea61c0fc43a4b7cdf3f749b08bf14e443eb29a315d74a3f7a2de9ba3a41fad379c62cce83d15984c0d9ae484d738d6a875627cc4706bb708a2cac290";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.9.7";
+  version = "0.9.9";
 };
 letltxmacro = {
   revision = 53022;
@@ -26337,14 +26484,14 @@ lettre = {
   version = "3.002";
 };
 lettrine = {
-  revision = 67923;
+  revision = 69508;
   stripPrefix = 0;
-  sha512.run = "a87d35b6e4259d6177b30b1e8b99fa03ee76e4bf7c2ab281dd5064ca663b60f0932b66bd388fba64f1bb394e295692dcf43b570cf716c1f14265494dd70a6298";
-  sha512.doc = "af6034d748fac6e88c6494b17382435fa865fadd833fb87cf84f2ba4983d0b5e466e9dcbdefae165f521303edfb2f2dd9602a661cf79c74684b046a50dee4506";
-  sha512.source = "932416c613f72b7c979393749d89c5ed57541eae31829b221707d10cf2f14c2b7d44824dc34d13bd15211a58a72a44a7e6b1d3550977508e7b89180226f91e75";
+  sha512.run = "759f71e952f99425e2425f938164a402b86bb2e83a298e08bc4905007e7805f5856a3f90067c0d08003c409282c79a9c3edd7095bf105029e05addea8dd328fe";
+  sha512.doc = "5618801ec7cdeab3b378cfb55748016df58fe00851a09a0a7929ea97de49b11c7cb2c6877e54d1cca93cfeece45c53f869e47ad3a9715a9ab8b7f414a8216cef";
+  sha512.source = "004cbdd91606755b80857ac3b0fee75ba686a4d73010799fb1086c37b626ee2974bf9401d272763a58dcad7d4ef92cbd3cfbfe752bdde365bc88637da73fc429";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.52";
+  version = "2.60";
 };
 levy = {
   revision = 21750;
@@ -26508,13 +26655,13 @@ libertinus-type1 = {
   license = [ "gpl2" "ofl" "lppl13c" ];
 };
 libertinust1math = {
-  revision = 69062;
+  revision = 69440;
   stripPrefix = 0;
-  sha512.run = "9a44af1c4f96453aa69c83658c9474838efcf1020c9301d12577a403371d2b3127fefb57baa0bd5fa5ef737e842abd4f9c368761ee38f6285aeb5a2dd88ad1af";
-  sha512.doc = "14c87d5e0d19d818152bf1a5dd7533eb651d5b477f3e42d42277fc4040a263114fc2006000af25884c7dfc64de0936d950fcacdf7fc55e4d09c2d756400c34f3";
+  sha512.run = "ad93607e4accadbc0a429bab7d6bb8ba964a98324a9c65fc1993db025a728dfb8b3e48e3d67552a88bbecad247db573d1b1f7386e1aacce7954b00ace4feacb3";
+  sha512.doc = "012227a7d46da30dc4a20b403a0f0abc0010d6902585c18a0bb3fea1e4b7cf58b629ae8c49597c6c39a264cf25a7a80877cb09e99b0f59b01d37198c5c4db769";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "2.0.3";
+  version = "2.0.4";
 };
 libgreek = {
   revision = 65004;
@@ -26777,14 +26924,14 @@ listing = {
   version = "1.2";
 };
 listings = {
-  revision = 68476;
+  revision = 70052;
   stripPrefix = 0;
-  sha512.run = "7bea53ea00e877b33586378c32236f2269f6dad6169101f7164293617bf9d5ca43745e2a549a993a899b4ddc45254b3b032e112576c57b7ea7653a2e743fdb4b";
-  sha512.doc = "d62e73a7df88b7e07c53367e07a6867e26145ad1f4fbed0f8cd0836c10e234695c9b3d97eadd9700547e33f3ecd793367be7dd97ca4d46bb0cdfbd07490c61f4";
-  sha512.source = "1a89476029706617cfab1319a65e6e8353455ac63fef8155e2e347c34c2b60ca6f2b264113a2c4ced52c0872a66efe8d4f53b67274d7a94f2a1b51de7cf198f4";
+  sha512.run = "233399d89e14afdf7c8f8856e61e3d5bd81781a795087447b7332353a3a71b5c9514c39bea39a851fccadce2234e0fb9af537dfa10fc4be2c25051261f7c67de";
+  sha512.doc = "7fe88b4098e5edb4a7e548688e3b12f66714e6cafd35492e816385563039ed81e03b25406a9aa1dd231cf89d2b4616cc838ee352ad1468a756ee00aa291c297c";
+  sha512.source = "185f23319d2509c9eef88dd36edf55b7f144711c9836b6ea9072dbbdfe62908f4d556957fd62eee5d50a82f7635216d7069be0c9fcaf646de84a330f56011719";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.9";
+  version = "1.10";
 };
 listings-ext = {
   revision = 29349;
@@ -26828,13 +26975,13 @@ listliketab = {
   license = [ "lppl13c" ];
 };
 listofitems = {
-  revision = 66655;
+  revision = 70583;
   stripPrefix = 0;
-  sha512.run = "f108d1a5c1330afae1c6a3cfa12fb3d345bcde5617245a9ca736ddac9427b4375f926d11f706d91d87f8b5b55f6f0257922e2068712e969c55b6e5b7436043b9";
-  sha512.doc = "b9264957510f892b5aeacd299df184e93881083e3256754c2f89c4f76adad5abf9f23ba4e56b013ea7e98158f8437797a6ce9d5287e5b76199aa4bc0b8cca188";
+  sha512.run = "d6262c85d8df67b4e85e8d80caf776f723dbf68f71e604c012965ddb1469c2cc3d965f84fe26ef245b6788de4c5e9e5b6f2b97938a0b1c5c67ce8661877a2295";
+  sha512.doc = "a1a5cfc935658cd452b08ec422b6530a2d7fa49685b226a27760976ae652fcc0e7c6a239050d2a70aa34b0933b5e5c14c072b6ef7ec294182c274412d830703f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.63";
+  version = "1.65";
 };
 listofsymbols = {
   revision = 16134;
@@ -26846,23 +26993,32 @@ listofsymbols = {
   license = [ "lppl13c" ];
   version = "0.2";
 };
+litebook = {
+  revision = 70583;
+  stripPrefix = 0;
+  sha512.run = "46946e4546edce653f21a71689352b8a582f76bd61fa91da3178ac09860a878b38a3fbf72d6a57f6bd94120fe5ded01b598e6516d5f8a2acaabaf6b2ebde4680";
+  sha512.doc = "4b91e32193a2fce61dfd96feffc2f7cf5211982d7676c37ed44e32cd03665bce80911f636eecfa6039263875e81f1cf5135b06faae57134d88372156b5576abb";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1c";
+};
 litesolution = {
-  revision = 69115;
+  revision = 70608;
   stripPrefix = 0;
-  sha512.run = "5a1ed66916daa7babfd009615584bd6065895848283f46d8f95d2fad69bffd6bfd59c8acb991ef7357100a63e7798c44aca3725ce0e89650adac13ea9e21428d";
-  sha512.doc = "aa750b1a4fd7040b946275239d5ce49848ea031188c1703161de300dddd6f502c31ee7f7a4655b26253b76054e6b487ddd56a9157684010d3b006900e94d6374";
+  sha512.run = "15a900b8789ed60364c2c8880522963484d9397f0774c1b945b109c0e320ff191e600e0db7878186444707582bf1411db18145c6ce2545f141be9491ff9335f2";
+  sha512.doc = "fe0ff414190a8d2c9bd9752df294007f4681360bdc07cd23547d519e0f7db0972900a2420bb761e28ca54e0a49eeda1d7cb1a2f20f3d3c6eb0cb3e5b09da9938";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.2a";
+  version = "2.0a";
 };
 litetable = {
-  revision = 68782;
+  revision = 70355;
   stripPrefix = 0;
-  sha512.run = "2cd3dc7c4025bd9fc36ae8c47d54ff8db1d237c754234ecc13ccbe8d6456c7035a2e99961ad161be4c9da3fe2aa03f9e0e714ea2174c64d2e152af1e036df055";
-  sha512.doc = "249729d269cd9d9cead6ec7bef4731549d18cb3b01bd60197bf0d7374042d70e73767d3273bd149fd0e96534494be9ace640586375797f4b907b67d76019e11d";
+  sha512.run = "a77145b829bfb5ff6d943f11e687f54ccb3abb3784ce9e3bdf145bb66e5c808a46a802eaec1f6932a2917683d64df41cb44b8ec90499a8e93928b46913d099bf";
+  sha512.doc = "b4080e8d6243b8e6353f12b090c481cc63fafa7c1c20596467dec79340a8fc1060431f9576d9742c901e45cc1d7285686356bd64cf0d274a7a8bc2c0de8162f6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.1a";
+  version = "2.4c";
 };
 lithuanian = {
   revision = 66461;
@@ -26892,13 +27048,13 @@ lkproof = {
   version = "3.1";
 };
 llncs = {
-  revision = 68731;
+  revision = 69629;
   stripPrefix = 0;
-  sha512.run = "11a2d47630302815578f0ced6483e1bc680bbc7030f17239d5c896de64ebe67a55626a73a88ed2044b7e2c2414ba8cb6ecdb2fe921493817acaef52634ec90cf";
-  sha512.doc = "a73bba73deb5af86726323f9065bcd31406e3091d5a1fcf77b5ef0ee7a7843a6df729fe31f7642e30ba9a9e9acd2782491607ec3d7d67679507f4b124a9a888b";
+  sha512.run = "0c50b5bbb2a6c72d61fdac915b1918b76323b715f71ffe42e1575d21f5c3e39fdf0b802c3d139d07894b4ec351a779dfdab53834dff83e09cc20de07736bb031";
+  sha512.doc = "be33f338c2243da8c20677c485be4de3a9287b953137e00a5f1b7b04fa9a9c452cd32b5b5adac55626ab84c36d065c958ac505f4a63da32c25cd26ab5f69f2a5";
   hasRunfiles = true;
   license = [ "cc-by-40" ];
-  version = "2.23";
+  version = "2.24";
 };
 llncsconf = {
   revision = 63136;
@@ -27051,7 +27207,7 @@ logreq = {
   version = "1.0";
 };
 lollipop = {
-  revision = 67930;
+  revision = 69742;
   deps = [
     "cm"
     "hyphen-base"
@@ -27065,8 +27221,8 @@ lollipop = {
       fmttriggers = [ "cm" "hyphen-base" ];
     }
   ];
-  sha512.run = "8449ee38e28bca1974e9a144f7ae1ade40cf4ddb9da2cf35779712202c372a29d2c1bf394122452e217c08cba8d89cd76ee4e019a0b356fd9274069f8a63d8ed";
-  sha512.doc = "d8f9791b32ace40f0e936733cc5bc9d5954e7f0b013c0eb81e1b212a00635e674639dc4ce70858dffc1d8b0a15e6fb7ddfc7460f9196a832918252060e43db3f";
+  sha512.run = "03a780145d4e761f3d494ccc54117e2f92f1c32b8f35a88a77b3145442b040c195b2bae10aaf39557530e548961230c7550e25ea77472a8b0e272f0e72609a8c";
+  sha512.doc = "3ee627e18491a48c58132b85cc1079b2a2f857b9453cdda113bedd7c9393f04e15c6215e6cbae99fe3d4c24a297d230a687e3bb7aeb67cc45ef105051838c6dd";
   hasRunfiles = true;
   license = [ "gpl3" ];
   version = "1.07";
@@ -27409,14 +27565,14 @@ lt3graph = {
   version = "0.1.9";
 };
 lt3luabridge = {
-  revision = 64801;
+  revision = 69867;
   stripPrefix = 0;
-  sha512.run = "f0d98099ffa137b1f5dbeac08d58543f3788647ddc22be5892ad1367d557a1afe1f1e60bf5f0ce531d7d5128b8f23e73a95081ba985579b24ad883887377081c";
-  sha512.doc = "f5181c14dcaf29bde02b38018f1b477092625ec07e442ab3334b3924b92f6e45e6c882220448b08bcd69cb9275e48be962e97ce9329db28a5b50a1217842e80b";
-  sha512.source = "6684ee282cb2d8bccffde61e2e8692485246d856ae774de476ac697e352bb76d503ccfccb2a649e4b50314e2ab6bda635924d87e14426e73be444e7f4166fca0";
+  sha512.run = "132009434c830ebc5d78978cd1258861c86d53529cd0cfd30e26ed0516767b6dfd7f4a8f9252610394a87a1e42e011499c4f7bcbc7bf6748c9b4ca9eb09b2168";
+  sha512.doc = "ff386128898be97c5388c4a3265d7c22c83def095d37aa0c27c167cba95d2e176da519878d53d60b0c7ed60a8b8fe8b5aa987c583dbe87138c54a0533eaeae69";
+  sha512.source = "45e1698f7b0cae5dc127d3cada726333878fa39a753c62f6762c5fec55d95d21e4e05fa8fbedeaf7d8861ebe030a6c99ebbf66cf367921a3320443efb0115da5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0.2";
+  version = "2.1.0";
 };
 lt3rawobjects = {
   revision = 66619;
@@ -27570,13 +27726,13 @@ lua-physical = {
   version = "1.0.5";
 };
 lua-placeholders = {
-  revision = 69404;
+  revision = 70055;
   stripPrefix = 0;
-  sha512.run = "11d13babb26aefb2782ed7e84444ba645bc808a3283bc0e927cea84db95e9b06895df23a4ad830e2c4a401426a151a7acdf8eac43faa3ba69dbe434349d7867f";
-  sha512.doc = "88b9e069384f0c86ec3f86c21c985c37d199a9dc1962bb8d829b28a34a8ce7cfbc46ab57358070ed2ae71fc9d9c92b2090a69ff0c48053dba54586274caf7737";
+  sha512.run = "480d898d4c0e03776fbbb45243cf813a1a7d87b041b70566d74a1b89601602b8b3890f6d0395bead0cc6e9a876f5e154883035e1318ed0781302c2aabdc4a1b7";
+  sha512.doc = "13fd2c68dbe7f3672dd6e4d560db81f4b1583cad137ff6b38b82f73ec4e8d20c5b1ca87d10d05b9566805a4f06aa97725d0aa12d5838e4ca146890c824eb57d6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.0";
+  version = "1.0.2";
 };
 lua-tinyyaml = {
   revision = 66776;
@@ -27608,14 +27764,14 @@ lua-uca = {
   version = "0.1b";
 };
 lua-ul = {
-  revision = 63469;
+  revision = 70206;
   stripPrefix = 0;
-  sha512.run = "a6502086f7d1c57247f9371a711ae7cd1d6112f68818e2a1e04a5a04c97c81dc0c01d7b767e6a6880e366eee9d912cf1ea1f0a17f1d43645ac15ed005d2b8855";
-  sha512.doc = "87793902acca0493ba9671d1052663a4c6322ee9231bb9ede780626bcfe500242b0bde8c0374a8a493336b2890a01a00ea77e2889f544fb2321cf44f08c58e4b";
-  sha512.source = "9306925f6131bbabf018343d0ab608b501690f7ad11b8c1df6a60c8e18b26c10c940f8015beeafa112859f54d78bae5d57c8c2775fb54ad82462969c9c65e79f";
+  sha512.run = "158abe2f05bc7e00e6b7876023a0763e4a4f4178b5816fc4c5509342cb0b5db0a96fe16083b10f9150e1a7f089a64ade43fe1059a5c970b484d6b0e58adc1691";
+  sha512.doc = "3c5c4cac2c17c2eb31af2602b73d3be28928ce72e84b1b84fdb5165463d9f563b20a741a1934f9587e2235ba2f4755cee4767b32fb02b09631cc2afd6af622dc";
+  sha512.source = "0e2b2664b7f5fc711ee8213cf5790dd0bed5c9961af0f7abc2bd32c331e3d852cb80fcc350e8d9ff5878ab299063a96774f175c7ff24eef65636713bf240902d";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.2.0";
+  version = "0.2.1";
 };
 lua-uni-algos = {
   revision = 62204;
@@ -27636,14 +27792,14 @@ lua-visual-debug = {
   version = "0.9";
 };
 lua-widow-control = {
-  revision = 65084;
+  revision = 70602;
   stripPrefix = 0;
-  sha512.run = "22046b01d285a5d113e57d4e5158c2d5558a116004f51d7502cbf80f168bb31c46c6ae09206fb00c9400eb7308f32b56fae2bfeab2a8e1b3fc6e6c3eb0566ad5";
-  sha512.doc = "5b77ffc70f98fdb815f8cdf27d78a2b48422af39cfda7c4a109c97148284a3c425dcce4161fd960a2f2ec658726310f821d068f0c52acf02e14657400b5866ac";
-  sha512.source = "5c2007b8009e40df05b328579a379d7d903e992af89471b996bd09ecb498c86d16c4c69b6721bed8e69bafe2c457122889485289ce9d4758603b8255db89f39d";
+  sha512.run = "1e489f819959a321b0baf60420dc25a217b0ed380067bc440307e500295b059f450c961072c001708affec4ad353477627095e71b75ff961f69c7d1f00fd8953";
+  sha512.doc = "dc01e75eccbd0650ee0126348ba38c25fbe0a303a8317f7255c7f6efdeff66cc1603fa181bccf4371b0f4c56fa664d2ea99822914c1db9bf6e282f74c4c79f5d";
+  sha512.source = "3add66b2dc968e7ce1b56ea4efced89e04f388b7f37f8be8d8d935df42c60fbceddbca6142a168f2a83493ed1fac3617971b7e342d9cf29f793a12ba429e5ab1";
   hasRunfiles = true;
   license = [ "free" "cc-by-sa-40" ];
-  version = "3.0.0";
+  version = "3.0.1";
 };
 luaaddplot = {
   revision = 62842;
@@ -27958,14 +28114,14 @@ luamodulartables = {
   version = "1.1";
 };
 luamplib = {
-  revision = 69069;
+  revision = 70583;
   stripPrefix = 0;
-  sha512.run = "8e6238c9fb806ced90d5c4e88aa84e4ad1ad39631296a90bd6656b600b1ac4f34d4e09789fb2bdbe92946ccda22668003c78b03497b3717402d5163d9de5e734";
-  sha512.doc = "e2dc6fd89743860159a529ae81c284c6965c4cf9eb3376bebe9d4027148e2726c7be24a42ddce36a43e55e76f7646f90da1f124fcfcbc22cf6a36324eda78aa8";
-  sha512.source = "51eb46b66368bc894ec1848fc357b859a68e56a88b700e5a7bc37b8baf1a2b379ea877e39f6b8024c8ca8037f62c6c06281c8213f49eb724b1c82dbf2bc46067";
+  sha512.run = "97551597042f2b609abfb7c275e3f371a57aa6948b4085017926ff8a8adba02ee68dcbc84d3cfcf4eb3ccb93ff1c61157c9dab2e2b3bc945707ce106e17d169b";
+  sha512.doc = "6c366637d27c498cedbeb6222ea8b48a807ce806bcee89cbbba7f7fb5d6b3bacc7fa4ffb3c1288a02b803bfd7b96725b12fd46eb2e9ec965e2b69f057b1c2c03";
+  sha512.source = "546d9403d20ed58a470b9e2fbd5b34c1863c4ef69e90156a6c0071f09ff425f6bbd9d39813b870f55997cafa520caa9326b79e31708630f9b3a44b0b0ceddc3d";
   hasRunfiles = true;
   license = [ "gpl2" ];
-  version = "2.25.2";
+  version = "2.26.4";
 };
 luanumint = {
   revision = 68918;
@@ -27986,23 +28142,23 @@ luaoptions = {
   version = "0.8";
 };
 luaotfload = {
-  revision = 68143;
+  revision = 70234;
   deps = [
     "lm"
     "lua-alt-getopt"
     "lua-uni-algos"
     "lualibs"
   ];
-  sha512.run = "7781db14c45e5e2d5cba50e91e9eb356260e4cf1e55f45b6f584164f1be0a4b31818be7fe3e08cb51e8ed43fde49c0a3ddcecb860848f8bf02096a60e45a58f6";
-  sha512.doc = "a929c941695de38ee029d60564346581153bf233db5ea873dbd8f84d1922df2621e7d9a5aad3ad6423392798c5007342f0a886249eb85d3c598b06bf8e271348";
+  sha512.run = "3882508595c12b7eedd7bd657e28e33d1d1ffc546ba6b281e6e212b1f9492a124e06b0d27da28b5ddaaff05728b231fe044be581bf001ed1441fedc284b2f436";
+  sha512.doc = "bcb4147d4713fcbc28094209d9234aa95e5bceaae53acb97674cc4a458daa8ed3db4685a8d2dcf7da29218e06daaa4a727c3ed2c9c5d991904054fbd1a023459";
   hasManpages = true;
-  sha512.source = "62c77656a4ab2bb93e8403ebe197418914644d99384f74bd8b78c75c255537bfd947a32aafe3f92e576b0e2596eac3308e2d837b41604ad1725e145882916799";
+  sha512.source = "5ff132658ec2fab529595dc150674f19fcb266f87b6f294f42de04c4aa2c067091cec7a416c201b5970e56dfa3adb6772ed4276370aef7bd97eb6bf661bf2e8a";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "gpl2" ];
-  version = "3.26";
+  version = "3.28";
 };
 luaotfload.binfiles = [
   "luaotfload-tool"
@@ -28146,17 +28302,17 @@ luatexbase = {
   version = "1.3";
 };
 luatexja = {
-  revision = 69245;
+  revision = 69988;
   stripPrefix = 0;
   deps = [
     "luatexbase"
   ];
-  sha512.run = "359e6852a954aaf5a0aa99881dab189e6d878e5ee4083487d93315652cfb5cbbd010d6dcc74c946ea231073122604f35966744f9e7870dcd1321277fe93074b9";
-  sha512.doc = "d41556bac7106df19d9fb64c4093b9151e90ad237a72bb38d941d4fe1604c834800a7edc8d2bbeb7c82662c24fb2b2e1d8cd69a86ff76b2843daad90ac8f55ce";
-  sha512.source = "41f17265aa58ceb2bdd9b13e95f73552185654f459498337d34631e1fff3fd51f3fcdc06a2d426b466f0e21dcdc3fb81d1e4f031214b2e4c93582d04984aa66c";
+  sha512.run = "07d0f7ff77fd6f59561c176e6fc25d4b1d4860696aa728c0f9586921f1f32c5a3e01a2f463d5ad3830648fb19ebf6899857259cfa042263f3f17a66b1ec6e0de";
+  sha512.doc = "bf01874cca52c561a4ce76d7111596b5a0a20dc0c6f7c383f8bbc9149f4fbe31aaf652d4902ab0b8d10f4719811fd16b9e8d5cfc97740429dd67f3c6a8bdf312";
+  sha512.source = "5a92e1abd52c044957a160e41b74b15094b3a85bd8d29ac06ad35b8117ab9ece4d98b93e988994811846ba8bfa4d56f27b41708776489fd9957ecb0ae783ade8";
   hasRunfiles = true;
   license = [ "bsd3" ];
-  version = "20231230.0";
+  version = "20240219.0";
 };
 luatexko = {
   revision = 68243;
@@ -28206,13 +28362,13 @@ luavlna = {
   version = "0.1l";
 };
 luaxml = {
-  revision = 60709;
+  revision = 70117;
   stripPrefix = 0;
-  sha512.run = "ebcf0216dfc05291cd1f44096785fa10b4d8f341d0c45c03a4818aaf0ffae1b8a9ee4edc0ab26d1732d651218aaa936099a81c2d732b1ff25b956339f45df8b8";
-  sha512.doc = "8f42b46c552b5771058f442e2b962d49c13f31c0b58076770131d6e8bb048cd706db9e7380a43cfaeae815bb02e83709e9165a1057ac9471bcc0fa2ab322cb45";
+  sha512.run = "d337c443f09a8fed88a3530e94326660ebee59260e873e7581226aadc622fabfb37ace31ee105fc321b6633d4fd8c8117739ba6884b367cdaf708f81f686f3ce";
+  sha512.doc = "ad30466499514af7dbb5425f560953c23e94f6af468b2e693a560de249eec4b5db913371884fdaa36c22693b5175d40da297fa98e22906fc4c501b9f3b7de2d4";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "0.1q";
+  version = "0.1r";
 };
 lutabulartools = {
   revision = 67714;
@@ -28223,16 +28379,16 @@ lutabulartools = {
   license = [ "mit" ];
 };
 lwarp = {
-  revision = 69384;
-  sha512.run = "c1c5bfa2f3131daa3c5c39e162e4eec6a1b640b5ce5f122d44cec5a1e732c97ffec2b0376766750a2c6367ef821acf3418323888d01121645cf7e5051a6d643a";
-  sha512.doc = "20796dd6f885a966391b45e0db71d2c065afb89f87e92074de72fd7db6c02741bec9281f6c2db4ce6b5564d66f74361a30dd1d0dba6352747d41a4d161895410";
-  sha512.source = "50266206d154e4490fc43258518d1848024a83d8fc9237758dce1d2ab2737d82d6f398daf2b04c8cd091b5f38f6e4a8f0bb7bbfaa3f60ad5a1be6b4fc18624c5";
+  revision = 70072;
+  sha512.run = "db403b10401780ea2e7db5d849627e3ce5ff4ddbf3fe9c4e0251c29da5e49f7cfda768c9ea8c397e7c8ccef2c25b3db88db0c406a4fff4ddef081a7bbd32b88a";
+  sha512.doc = "1f818d8419e2e7d986fb35ef662f95a3ec24c6a3f439c3ee08f9ca9d8917871d4d21a8ba8f960346479bccf8c926b32751604912fa0274786bfdca641f83b803";
+  sha512.source = "70fbe22a77b4494f2dff7e09448a1dbba42d115ef1a8739a305dabba55f8bcdf47cc3e632f09285c6de0442a5050551f7f13d15f573c88459ef8bec2f29a5f70";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "lppl13c" ];
-  version = "0.914";
+  version = "0.916";
 };
 lwarp.binfiles = [
   "lwarpmk"
@@ -28386,18 +28542,18 @@ mailmerge = {
   version = "1.0";
 };
 make4ht = {
-  revision = 66130;
+  revision = 70117;
   deps = [
     "tex4ht"
   ];
-  sha512.run = "9eddfced4137652653744256bd4ef342a1b5462a2bbe1852c7fc264b08646b0757d24ae2d12711c66905f810a8f0749ae7f6d7f32983d3aa96fad63e9e104a00";
-  sha512.doc = "2552e84307b92538639481b64690b2d4853f03e795b11daa61f88a1a15896f24982dcd563c181497a287744eabc5a4c3e18a2a705bbfcd9099383b1858a02081";
+  sha512.run = "f16c8062b72932b24673df223850f58521ee5766536c9c210eed123b62c77efa3829f7cd38e2f9f7b62a516dd8fca860def52599be702f22e2d60a8683b52138";
+  sha512.doc = "f7f45fcbf92488c2c97fd2b8916b1715cbf76512f43f7e60d29293ae7553416f9a7969e1b5a9e29c88319a5d0ecf6b8fb8a2254b201cafba597122a6d594ff11";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "lppl13c" ];
-  version = "0.3m";
+  version = "0.4";
 };
 make4ht.binfiles = [
   "make4ht"
@@ -28547,14 +28703,14 @@ makeshape = {
   version = "2.1";
 };
 mandi = {
-  revision = 68950;
+  revision = 70235;
   stripPrefix = 0;
-  sha512.run = "dca65d864b92b561058a5fd8e703ad2faf4c1201231efc0168992cf469d0919ed1aa45d42fb2744bdd11247d85d9582c25862495f77ba835eeb3663911e86d41";
-  sha512.doc = "c88d265e450e87a59fcb23a7a3a94ea979dedf12b58c7f0b6b2ad78e43f43d86b7bef2e59b89a3724ff02957a62ab92daf80df278eb8f8533ee359aeff580426";
-  sha512.source = "e7f588b777fe28c8c1768f13bac4e09fa9b5747a0ab97cf350cf8b0ff61cfe0826df19bf2a8da03e6d23f8cdecd1335897197272fd899703ce158bfb473a8fb5";
+  sha512.run = "e5c8cb0ca16c5b34097aef6e3bd00e452bf6382f6f9f5c3213a42463181a4b7f17df8025d479559b281dde7eb61ed2f79f4b9b6c3a37bed6cb3ea1bb9b428eed";
+  sha512.doc = "b1d5662645562102719eebb2d349f8a0a2a047ff3303abd076bff1b5888dc897e39034d027eadfd9ba03f1de26b0e0e6c8ccd226ee7f3a7b8545320023e47fbc";
+  sha512.source = "e1bffb5b494059bb194496a17957b8adde0247178ee32baa9771ad47616f4dc101c7ad4423c62c50c94f7e62ac59d4ba7b7fa3983dd5503b441b882565db808e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.2.1";
+  version = "3.2.2";
 };
 manfnt = {
   revision = 54684;
@@ -28648,14 +28804,14 @@ marginnote = {
   license = [ "lppl13c" ];
 };
 markdown = {
-  revision = 66954;
+  revision = 70583;
   stripPrefix = 0;
-  sha512.run = "b638546ded5356e9f271cfc28055f6ecc307e72178097dd54c0cd81bf3208058507d902bec0555185b9548cfcf7fddd7d5906d959644d9aa8945b20b8c816dd9";
-  sha512.doc = "7ed883ce22b404fae91e6e946b7786f64ee28e14b624f46b4aca9af1cbd3969d674f0c82cfdd1161c7df5a34d60ed8627c4428e13d317035079bdea0e7f7cf0c";
-  sha512.source = "986ce93ea94fe9afdce6555b90e88231261f2263cff2be734edee32b5c1ac005967e40ce323cc629d16616f9370f4958491f4fe7b0641ab024dabab0cfe4ed0b";
+  sha512.run = "0b133a8f7a4d9315365569698cf2f6897b46ac0c49eb6f6a7697735e209e6a45354101cbeafe7504aa18a39cd514332db204b4b53051a4a9e7380ec581be6d23";
+  sha512.doc = "ca199c02ee60ebe597bc0c7324b910d78c58457e614bc23be98720e301bd501540b52325fda4a0b6eaed15859820f5eba4e4749dd4163057c6731c1d1643f27c";
+  sha512.source = "b33cf8d6604aa6acd27a67ee5ec5ec1a84fb91c77a0d5f830f6dcbc78343420036175bfcc1cf1665f23804ee9d06e58029fbf4e533a75dae29e8d7b1ee6297cf";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.23.0-0-g0b22f91";
+  version = "3.4.2-0-ga45cf0ed";
 };
 marvosym = {
   revision = 29349;
@@ -28911,14 +29067,14 @@ mathspic.binfiles = [
   "mathspic"
 ];
 mathtools = {
-  revision = 63767;
+  revision = 70607;
   stripPrefix = 0;
-  sha512.run = "767b804aeec1ee62667529a523a22e38a4a20dbb7a3a4f74476d25f5cceed38b001b21fc2e8eeec6313e25ee3066ee05b47e1fad3ecce228d6ee13e2d78f6dd4";
-  sha512.doc = "2c974611ef592de5528f019e8854bf81bec20d489d25cae3c3a90aa1c8f6e63a01c5823363d7803b7cd229cd6300f5c551e5989edff870369711a4070d2c7477";
-  sha512.source = "7b8dc2c58a2d65fe5716381a5bc1020b1de11bfc043207053198323e315fb4f4c42057f53c42340fada0d7299037cb79ebe98f30406e493dfb1eb06399daabc3";
+  sha512.run = "68ed026c12d7fc07b1d7881654a197e1fabd7bfeae278c3243bbde9449aeef3ecb4e7606e24e964f2cd488e475f39cbb9a632ba077c1229067df883e853186cd";
+  sha512.doc = "fa3bbad3d9fa4bf678cbb2254cd2329c515cac6387d17953e66f273a48500f1a04b25b4de4c8a8a94cf79d86572be56bd2ceba01de8c9a72a92844a127b3c8ad";
+  sha512.source = "edcb96fc22f68a3cc78b13fbac2f73fa54aea36b6e57b0af12eb7b21a449044eeaca9157caaf9770b0d93f9c2511926452919fda5d03903f36fb5b4e3540b2af";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.29";
+  version = "1.30";
 };
 matlab-prettifier = {
   revision = 34323;
@@ -28994,12 +29150,12 @@ mcexam = {
   version = "0.5";
 };
 mcf2graph = {
-  revision = 69281;
+  revision = 70167;
   stripPrefix = 0;
-  sha512.run = "b399097f1b7805603d156a450530ad33cca0d8ce28c2a977db584b2a0b2722bab87d6122a7ce27fc7066e24f4c24a5e832d66e1e90abfc88dfc388b6b4ad8f38";
-  sha512.doc = "8169812299146fa937a323bb573201c04ff6a42e1b090bb87fe24d213fbf8b1f21f0ecf40ecae157b26e15f56c00fddad9e09c9ec2e7fd901f92341214615488";
+  sha512.run = "4e243f8410b3ff8688365ff1fc90da5c81adc1a3ea426d2ba92c18a1378f76e5f00bf2f7aa97c39387caec9b1803fe0603632d1197f31fcad4a860dc3b93b579";
+  sha512.doc = "ddc7500877bf459121a7ffe242618efdabe2e201da58f9038fe863451456a013816d66b807df74735a6bd1701cb72341bce771489e186b21c404d623d58b8205";
   license = [ "mit" ];
-  version = "5.10";
+  version = "5.12";
 };
 mcite = {
   revision = 18173;
@@ -29021,14 +29177,14 @@ mciteplus = {
   version = "1.2";
 };
 mcmthesis = {
-  revision = 57333;
+  revision = 69538;
   stripPrefix = 0;
-  sha512.run = "128de0bf3c8f5ddd7ad5b456d92ee434573bee9e7df028799991068802c0997330ad6a3c8b0d295db7d9eac9e7540d5159cf5ef037ccb1e54cf95dc31c8cceec";
-  sha512.doc = "d93bc6ec219a32ec688933f598042a04f0f7642dc875291ba2437085349e4e697107d2a4bed2c22b2abd3f00009d92fcc01930060ba38aef3444fdbbfed811d1";
-  sha512.source = "dc9cb93c8975fa3e7d50e9067dc39c29875f6086a4dbfe657ca77e38feca4af419eac429ed97df41d442ee016f7f6205cbd1aaefd2a2e734af7ca2ea4c79344d";
+  sha512.run = "8730424989cd18392214aa59d34b0885fc7966d3b2728fe8a4c05ddd042ce3a0fe54bf0ec6e602a9a7a6ead6df67b653b09c6cc360a14a9bf17bf3dcec3fc2b8";
+  sha512.doc = "8beb47651814e5f6268da9d3b40d99e4cf1988d4ea10498d42af648c9e0a37e3e73392ecf91259a3164c06287c8db59392454f49aaeb480e4d5e2b350e7f8c64";
+  sha512.source = "318fc5ba9034d304986a77c86f78c31197d5522f8c1471de8d25c7bd4f6c7c38f58a7f5b41420fad24bef7f8ff4fe75e179e4be21dd1270d5b36c57fcb631db5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.3.1";
+  version = "6.3.3";
 };
 mdframed = {
   revision = 31075;
@@ -29097,6 +29253,15 @@ media9 = {
   license = [ "lppl13c" ];
   version = "1.25";
 };
+medmath = {
+  revision = 69510;
+  stripPrefix = 0;
+  sha512.run = "29039ecd484047454355d009688d5ac4ab4ed5d79a90039025454d13985971659b33476cd0306da52c1afa1a5fa87855b37a8c32b072a094abec28af204abfc6";
+  sha512.doc = "19f64ba210e9f3b7a03775cbd3de1b9fc1df69b9e29034f0e46a5ca5a480905565ecc484c6fc5b0b5b7eb9bcff79b8faa8a05a0bad1128f7c224ae732c2973f3";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2024E";
+};
 medstarbeamer = {
   revision = 38828;
   stripPrefix = 0;
@@ -29141,14 +29306,14 @@ memexsupp = {
   version = "0.1";
 };
 memoir = {
-  revision = 68004;
+  revision = 69600;
   stripPrefix = 0;
-  sha512.run = "b55265c3beb272c274514931d18107d5ff50691cf442df5e21ce229c8ba88f44a5a3e56cf85ff9d89d2df705878367a31739ab0da3a9bf486b9e5a54e6cfab15";
-  sha512.doc = "4660576ef6f6ba7cda1b3d7591fd6ea768d94861b15965107e80b9231070e6581b0428a4bf11956ec07d3ccd55a3cdd6ddd5630a72e082aec4fc896576833a48";
-  sha512.source = "d817a6ec1253a686d1dc77c529565fac3ed1134932290ced8615d82f8505f29bc11ea352781268c4a729fd4aff2f744708890cf264f68c8828a2f2c6e034fe78";
+  sha512.run = "ef905bedb5b27fcc0e65e2b86ce9f949135e0bf4c857431a0af68eaf5a4472e69ffc687d243560d69a3727d8db2388ff9da7c86283e625964ffea677f7e80c0b";
+  sha512.doc = "4e2b4f36a5a894ed7579e1018e0ca2309791716fb9e36623237c9c4021441893c634ffabdbb33bc23b63a599d4576bd1ce2f1c549d424c9d87c6df2b12e43a09";
+  sha512.source = "31d3120456a4451e955c0476846c057591836de72c76b8de9b421d2e22d7f1018d01073e8f9354ae82d9603ca9fd153a617cf9699b31a1c79254eaf2094503ef";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.8.1";
+  version = "3.8.2";
 };
 memoirchapterstyles = {
   revision = 59766;
@@ -29159,17 +29324,17 @@ memoirchapterstyles = {
   version = "1.7e";
 };
 memoize = {
-  revision = 69285;
-  sha512.run = "1464aad053b69b821e1c99c72a6e448a231a554c1f04d31550fe29401698705fca9c97149435655269d3128885601d4917c7954be2990905360cde1de73db477";
-  sha512.doc = "d210344a90649cdd67b118aca5096db266fede551b7170de088eec4a40b765b9a66b890824092329f76969ebab71dfe6faa3a55ba46bd8b5af9d092cf4fb4aa1";
+  revision = 69522;
+  sha512.run = "ebe8082704f8276468b392fb0efa92ccd65616fe48296160669ce10b99b31a6d73ccbd9078ecc9c8fa520c31130bc57f3dc8561267ed64d9d6ea14b28a32f909";
+  sha512.doc = "635e985c02d8867acebf493cead0e80ea7b481c98c5615cfde781ad850bfbfbf606d2dad5579dfe22085f7947b2976d9e26b397b8509e31fc5018e074f852848";
   hasManpages = true;
-  sha512.source = "68ac9d4a8af74c5d4922da8d8f2c89518bf855d8d578d0df1d9fd798f242c0a339a0e76d10b913a178c0c4195ffbd2e1aab7d3927ba4ea6133fb5e45ce4f9eef";
+  sha512.source = "06f1c38900d1daf52ceef138a658937dd85e1cae8280afdaa44e32eb9049ce444970becd3e0936a9f8f732ec8b32120cb55a343f5c8c523e217d8b7172de763d";
   hasRunfiles = true;
   scriptExts = [
     "py"
   ];
   license = [ "lppl13c" ];
-  version = "1.1.0";
+  version = "1.1.2";
 };
 memoize.binfiles = [
   "memoize-clean.pl"
@@ -29333,14 +29498,14 @@ metalogo = {
   version = "0.12";
 };
 metalogox = {
-  revision = 69401;
+  revision = 70496;
   stripPrefix = 0;
-  sha512.run = "4b91892cccf068c85d774b9d545c07c004a7c6badf89114b5d8cc5818090fb7fa87b3dfd6a7d1162c22939f633bdfb318a670092f70540910d257ccfb6a39a09";
-  sha512.doc = "6da27bf652e239ac7d307a0e5bfd01183ddacdfad38fe1b97d4cf6c084daf9bc43f54cda651b92a5c6693c16f9f6c2a61f821f64c5d1362f8db3f6a808ae722d";
-  sha512.source = "1887d1004349bd5b586f7d02bba1e2668e6d0534317e59c12915af847d478dd5022f5dc91f952032582feea48c0e01034dbf34c949ea08c699056e0c5d500fc0";
+  sha512.run = "b78976ad7e84e59ecca68c0e7ecb496f99f4e50ed5e1636b5675bb0c290f3f4d4d00b02dfe55c78ff4c5ae936e19c8110cdbc1fa76fefc1ee8b31a2c481625bb";
+  sha512.doc = "64211eefedc7175e4859deefaaf89d021763b76cfa3509c8f6da27017993012471b3b894949d3c70eb1f5286bbbc545c712b041440e05df46bbe0ea82eb090fe";
+  sha512.source = "89d9eb81eb883c8aec531117b0a62b838e8a1b0b9396eff4ad690aff37363aad31d6ef045621736e2961977c40e96fc54b4a72aa291863465318fc89b9c5006b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.02";
+  version = "1.06";
 };
 metanorma = {
   revision = 55010;
@@ -29661,7 +29826,7 @@ mgltex = {
   version = "4.2";
 };
 mhchem = {
-  revision = 61456;
+  revision = 69639;
   stripPrefix = 0;
   deps = [
     "amsmath"
@@ -29671,8 +29836,8 @@ mhchem = {
     "l3packages"
     "tools"
   ];
-  sha512.run = "fffeb1ce083d8eb3da6543409e5cc735c9699f9145114c8325c336b93d2dab2a9976fc448c6324318407c3af888cb91cc7764fcf3bd24369e4940f00dda66429";
-  sha512.doc = "cd4c41a329489149b3f2bc79dd50e0517707681f452888394870459d10888095a0cbb7b7c18500f04264c6c85f791d9af9d799b1b4e221e991af32690e7405ba";
+  sha512.run = "5b85541e565ad80891ba56375bb3c2d6720c7e0acc9e96d611626eace4daafeb078fe08fe4e6db4875823bf570f8af1dd4b319d38b41fc4c3ae9696772e7996a";
+  sha512.doc = "487a5d90782d1c0814c7110388e5277e70dff9adc82048f8b5c33ffbf8c82e9df73293b4ab78bc83c2ef23674e341a2fb15f6b3268d1fdff1aa57d4d3813ea1e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -29808,13 +29973,13 @@ minifp = {
   version = "0.96";
 };
 minim = {
-  revision = 69352;
+  revision = 70320;
   stripPrefix = 0;
-  sha512.run = "ec7106c1cba50c73a9b2384fea848fb76a07f8a693ca0affd10cf7b9710e871cecdf2001be45453f76f572dcaa869b613b0ee07d7cf2ac2e38cfa662171904aa";
-  sha512.doc = "fbab9a3a46b1a569f48de82e8311d0775829750341bbca8d747de135a71c808d930149c86560fac29f5713cad2f11fcffaeedf15083439ac25ffc1fd2e78126a";
+  sha512.run = "5c2905e433d296d4645a7f4b9ea4e8d952d3b97b3977a88dfbdb36278f399ea9be02a14f866c4615290a6ca617cd0d29498f330239832fcc2d2178bf6dca7515";
+  sha512.doc = "35ac9d101c958af4ffe7909762edb173ad7af619d870dfe44408634160446568cf480c209ef5546142d390e89a155d902ec6dd921cc33511e5d84cdbd68a2a4f";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2024-1.4";
+  version = "2024-1.5";
 };
 minim-hatching = {
   revision = 62395;
@@ -29835,22 +30000,22 @@ minim-math = {
   version = "2024-1.4";
 };
 minim-mp = {
-  revision = 69352;
+  revision = 70322;
   stripPrefix = 0;
-  sha512.run = "117b829b8c037674b896f88d224795bcb4fbc0871dfaccd2dc56d9167549e88a1dc8e3808ddf773efd392a924569b3cd5fe3ab9468ba068dae76ca632a99ef88";
-  sha512.doc = "977a6f61e9e149caed9a61f7595cd3b488e0d536cfc7d00d4c4ad5a6b4f2bce003fda88309cee6a13d9f1781bcc7035fb3fee04bd2adedf9fb31f0572680f9b9";
+  sha512.run = "99fc9ec8eec155bf404274bde2981ab791bae041860e184242cf5ac06b7c0a149ce70adfae1b2088a773114564afe93ece070cbae5fd77088a637bc27f830c95";
+  sha512.doc = "ab83c7e366b87d42ae6351ef505c21c14cd39fbde5020f59595ce3534338b38cf2911496fb196226d012ec0337424047c158477721434fa0f08e2207b0fa5e1a";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2024-1.4";
+  version = "2024-1.5";
 };
 minim-pdf = {
-  revision = 69352;
+  revision = 70321;
   stripPrefix = 0;
-  sha512.run = "959a7e6faef8a4f22c0a8822e73178430721d0aef57fb9c5f5e5bd588e8bd5588eec31a3ea1b0d4a851afcd0ae393cb4917f976e5698b1614cc407428a9c9998";
-  sha512.doc = "1768a50f0cbe45a980579042021670533932da3b832d2cb619638311ac7866a3d39cfc9dca862c842464be47799eb98835584e86c8b04f820247481ad86ab5ee";
+  sha512.run = "da700da69e8f6e82c47a08b0e54fa0cb959fb7950544a9dbd49d9b0883620434144932301c2dc68f03d45b5f7d3b6e9521a7d66fd820f8b91c6bd8364e0338e8";
+  sha512.doc = "f9e3735b6a493c2ad07b1b39c1393eb39dce3250afa358f15c6870fd02c527342198f8198b710db298baac4309544fcb457589aec75e4f54a5817fb8072fab7f";
   hasRunfiles = true;
   license = [ "free" ];
-  version = "2024-1.4";
+  version = "2024-1.5";
 };
 minim-xmp = {
   revision = 69352;
@@ -29862,13 +30027,13 @@ minim-xmp = {
   version = "2024-1.3";
 };
 minimalist = {
-  revision = 68552;
+  revision = 70329;
   stripPrefix = 0;
   deps = [
     "projlib"
   ];
-  sha512.run = "ea2e03654429ff56c274ecd4af620ad97734a2bdeb4dd63f13834a3d01f1d2c86b55d46005bb3181bf5305d5705a34aaf4c84cb7fdd46d90e27939912e3bacc7";
-  sha512.doc = "57f20e5e8fe46c61f181b52ac87c55d2e6e3b928308b347167e7973ee1068a7cf1cc6b8db048ec6ba5f983d1c8b0aaf4ecd405749938607e812ab7c11580fcf8";
+  sha512.run = "899476ca5e7ef145520819cf365e1afd9056b377e5eb3d64e63743d1eb041e6775d9d6ea616e241a6575e57789eea70dee3651a1dc4098c32b72021835d330f8";
+  sha512.doc = "9f887a4043097a7fad52699d2568bf3e534d27df57f0567e392560e5153d7706068f2835ed03f5543bcb8e9021393e526b1499180bf00da851ac661cc86e2443";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -29953,14 +30118,14 @@ minutes = {
   version = "1.8f";
 };
 mismath = {
-  revision = 69169;
+  revision = 70260;
   stripPrefix = 0;
-  sha512.run = "0c85c7301c3409a56b99163c0269810daf36894c261c0eb62a78d333760e10375f0daade5e06090b3571d424b4b504f4ce14b61063a6518e5aa8f355aaa559ac";
-  sha512.doc = "e5693af9be3fe8496b213ff988c851388e1b7f28942ad1734d527c70f905d82d2110f55f3da9425af2a15584196bd83888021b4e6817c6b7717adda5a47ea545";
-  sha512.source = "b2bfb0bc801dd99a54366f71f28971019717d351a3020de5afca1eb4c2ae7f0e6825d343735a860db460f3c345970992eb19491ab486a66aaebe26f9cba9633e";
+  sha512.run = "21714883ae8a8640bdacf7c70b06153914cafa03ca546902017d98b24931d9cee041197fae2b31b317917351294addd8c9531c80586aa14924cd57120f37780d";
+  sha512.doc = "faf0bcb6b8f2c9ac698bdc3df87001dfcc7488449972bfd5a4ec2fa619d1ab88e9764f4b9773788902385d6887d56a9d51edf16631dea8a0379921f380996878";
+  sha512.source = "4c8a203150e5c7c8a291f57cd5a87686c05114d220d427ff34d4255542a9f02bdada4805a28edf7deb479a4529ff841f89253043ae648a55f650dc6f212efe25";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.9";
+  version = "2.12";
 };
 missaali = {
   revision = 61719;
@@ -30147,6 +30312,15 @@ mmap = {
   license = [ "lppl13c" ];
   version = "1.03";
 };
+mnhyphn = {
+  revision = 69727;
+  stripPrefix = 0;
+  sha512.run = "e580c984d9a2242eb7f3a356b222dc6fc4f2fb1e6194f09086e265e253746ba1d94cff324a30c473724410d1d6b0bb7b8bc162cadb63ed96f0837e996c39f988";
+  sha512.doc = "3645bb53bc2aff292dd5a70e3020898b969422b9e21fd11354e2ce60a6c7e668afe149263ee02e3588e0c3803c9568d999a6a6bb067a5941ec288923e167b2f6";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.4";
+};
 mnotes = {
   revision = 63406;
   stripPrefix = 0;
@@ -30281,6 +30455,16 @@ modulus = {
   license = [ "lppl13c" ];
   version = "1.0";
 };
+moloch = {
+  revision = 70496;
+  stripPrefix = 0;
+  sha512.run = "58af737c14943781d96c8a8fbd6004a207281329973bec3ac0166d117af0d6cd4ce38174d4bae4e9a4e5c6eb6c7bf1be9205539afa8267e166656e74932f6e90";
+  sha512.doc = "df09576955c0cdc3dd439e1a15df6b77d27dbc7f4ad876b06078823bf37c17db436cc5b75afac8aedf6622dad706a124cb01252e05345cedd2d305c593a82bab";
+  sha512.source = "55084e06291835c8642d6313dd3a8a34071286c0bffb4988a8787913b38816cbfc26895cc1198fd58feae934400b5c4b5e06f78c5959329a784f7bf32ddf6c68";
+  hasRunfiles = true;
+  license = [ "cc-by-sa-40" ];
+  version = "0.3.0";
+};
 mongolian-babel = {
   revision = 15878;
   stripPrefix = 0;
@@ -30382,11 +30566,11 @@ moreverb = {
   version = "2.3a";
 };
 morewrites = {
-  revision = 69306;
+  revision = 69679;
   stripPrefix = 0;
-  sha512.run = "9618e04c51865b275ab262d0e95806a7fbbffb4f6063b87644f3111760c591be6b3f8684fe72b5fdf0ea3dd6e034f88d5fef0f9c378e31bf44617727a76b98d5";
-  sha512.doc = "389828d2a8fdbd9f9b5f20f3c71654f4d23e9d23e5af8d98904b35bb8d8d939f4641bf74d43e3035ff73310f0324f21a47d56cf6065af1d04d96f34418ba1157";
-  sha512.source = "2794f2571cc3158f92453a229d088f24002ba893758f521da13b1229c67de24573752c07f03a894605704dfa19a73791903055582fc1729814a350c09b0735fa";
+  sha512.run = "738ea602368142999aa6f5d99226767fe9d6613b3e5d58687d787e8e470bfbff3ec2fcabeb5931454754ad80661a5925f337ba600fa62f021ae99363451c4c75";
+  sha512.doc = "a8aad8b575785ee7b36f6946ea2228c507745c4f7ca61e05e46c9b0824e84880e355264e45540b61022010943f2cd63cf051ed1d4b9b438a6eceac840cb2e6d4";
+  sha512.source = "e3db6542cdd4548e0a9fa10a40b333e48ad4ab713acf8f38389f8ebe5113b598f647e9eb11047339ae09ae344aa22ea3ccc0f782c35dca2552fdf8707d4926c8";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -30530,13 +30714,13 @@ mptopdf.binfiles = [
   "mptopdf"
 ];
 mptrees = {
-  revision = 66952;
+  revision = 70117;
   stripPrefix = 0;
-  sha512.run = "a3579aac7bff11c77416bf19447a429a3f56695bfc105f1218ae8f7d531adf0333ed73ff1fe93bab8af2ef590d6157ffa3c363bc306d3e81eb0d78766aa7871a";
-  sha512.doc = "cbf0e2660c7e98697d2441ae8a40d69e9855ad1eeb1acb3b6e140557caae3d0f09619aa24a0c0f5b2c44e133cc7595ebdd6e7ee4e8809f92ecd759f0a12fdcaa";
+  sha512.run = "64efb9355c79a8145e0bd4e44922c789a718f389ecb59ac186ec32da8e37323d09cc33d558cbf67ca5550f68501282dc429b784f483df1e3df5b9d5bc3b5ddd6";
+  sha512.doc = "de5d2c52ebd3651ff42812fe4ea74a4ed92cdd8d0452f2e83af9723581820ee07e2e9528cdc254410193d8b82f8ede7554e182c1fee104333715f253d3ad0d41";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "23.04";
+  version = "24.02";
 };
 ms = {
   revision = 57473;
@@ -30823,11 +31007,11 @@ musixguit = {
   version = "1.2.2";
 };
 musixtex = {
-  revision = 68484;
-  sha512.run = "37701c422b8994231a3ca707c3d8eedbdffd4df89e6258f93c6f9778bd2b37d1c0ee9e94c75f81c5d5fe015b085cc3eff35fee6ec96a5fe28577403802b54373";
-  sha512.doc = "211c386eb30cdaaf24264cde5eb0e07e23a2ad66335d783e64ca08c58e3f04b9cdd954713d3426252e74f63f38399afa42571d44d9f95734d54004b14548104c";
+  revision = 69742;
+  sha512.run = "ee6f9654d867c1f8a4e4a5744a927f511510ef2397d8b452f635704154692cdd128a73fe6c6719099e9794e727beb1e38b211a61d15caa3649a5c059b0be8376";
+  sha512.doc = "942fca6475fdff821fa847c06d6dd8f92cf786e8f0f79d8edeab6276dad177fe97b8c70adb86db424b99875952b93151db35007575744fbc1d814e28ea03b949";
   hasManpages = true;
-  sha512.source = "f5997350c5131164aac7fd785181e22a6e9912762b455cf04fe4371e67faee9ffa25969171bacef14684b6066053c2d8bab5f5d6b467966855614a6af13e8dc8";
+  sha512.source = "61984af8c6a5b024a6e5afa310b42953bb12c68cbcde2af24dc885bcdf28854eb0bc44a764d6ee25d6dacdb7395c62941964fea8768f11e75e11835dfc6e1363";
   hasRunfiles = true;
   scriptExts = [
     "lua"
@@ -30848,12 +31032,12 @@ musixtex.binfiles = [
   "musixtex"
 ];
 musixtnt = {
-  revision = 40307;
+  revision = 69742;
   deps = [
     "musixtex"
   ];
-  sha512.run = "eab6332d626f199e46dcd03ea546abbc4446b41c4b0354c066790ebfde154c6fa90f861dcff77206318b58a31565d884576899629520e78b3285bac673d1f4bf";
-  sha512.doc = "2da473ad2425064747187da005e01d6844731c536b75095828a85d358ffb1344331ef483c0cebe79b346b4fa96a358a1e416cce7d7cfcce6b1242cf3c0a3645e";
+  sha512.run = "cd36d0240d3874930da5ceb759254e6b6e3d7cff6ef12aa74ce3d532580b731fe79cce0ce729d4304659691c13a5e28e3c02098cff7ece22f010e8051afcbf56";
+  sha512.doc = "9d5646e3657c74a6d6c6be0c3f07e91ece88c9f0430e7cd54fec45769ac308b813a0f39ed202b518092d856e3fa0876c589f36f37c38b62adf078647aab42a63";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl2" ];
@@ -31008,14 +31192,14 @@ naive-ebnf = {
   version = "0.0.15";
 };
 nameauth = {
-  revision = 65738;
+  revision = 69758;
   stripPrefix = 0;
-  sha512.run = "1f81c68299508534a64a91465478bea75ced09ce66be903e3fb21b228a575124f63101dfdaa66d9410e4395689706c9e09a2546715006710bad46d496a884daa";
-  sha512.doc = "7f490b2993516937693ed04a240b6e16bb366897b638cbff52c44f95d2b965bceea064e0e6d2064442a28417f8f1adb3ead564d8c30106dc0b36adf8d550c965";
-  sha512.source = "8ce8976678bf079cf929ad97d19d8ac0e7cd55d745e4bfbb7ad70379f952024d1424841ea0eb750fd9135caecc5d6cb8a32abff5e1c5331e7b1153e5939e41ad";
+  sha512.run = "2b27daa9547563ba455b9b3722c8726c1ea5c71d1c4976857add784efd95202cbdd2ed631096e85a0408deefa8e43c95dbb8ad7c0b6f1ef3da1f8476737c341f";
+  sha512.doc = "f8d9f727c25cf50b31d28a3e4a53a7694c5462997f60060e7a2db15e38b14554df00f5afcc3675c5b6bbab477a11f499e79e7a98988b7bc0ef0146a43da5c239";
+  sha512.source = "73615d907733c3252cae3e861a531fc57dc15b2b2ac0149b976f0a192d75c4463fdbed60cd25a19231b5e10e1d017d1e1ce27a4006488ed02ad2dd185e693342";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.7";
+  version = "4.0";
 };
 namedef = {
   revision = 55881;
@@ -31303,14 +31487,14 @@ newpax = {
   version = "0.55";
 };
 newpx = {
-  revision = 69380;
+  revision = 69777;
   stripPrefix = 0;
-  sha512.run = "46edf929749a4104f4fc141453930e4475a3ac298396ccf50250a6c4091ad58b19887883172cdcf5f5b67acb28f084529ef3c344ab3fff38ebfd53cb79334532";
-  sha512.doc = "39c54fe8bd66f529cdb89b1ef92bd6bb323d393d7e85307441d8f0310b2cfc2cc59d49c0b8560c8dee3da23af13240d619de1eb1c6525750caad3ec148fd7d40";
-  sha512.source = "bd679fa72822162ff3cdc14c67d8be7a3d91ad18e6222ec90dab7fa7878d8e593cc1f884ae3ccdab8bb52d437f351baf39afe30e320b4e2e998c51ee729cbde3";
+  sha512.run = "979e5e67eaf5891a96c127f9726061bb0a480388b0f67cf27bf753f0171521118f68bb82beb127bb2c18d866643830125089518436d1be56c58acf49ba0ccd75";
+  sha512.doc = "fcea214e98b92d697699976c245f841f87bb5a314ec738fb551e6f546e32e79fcfc0b1e78d9cf1ad5299bf691a833b2ba69aa9c917a6cb1abe891c39556123dc";
+  sha512.source = "7928e84f2c5523c72a30061e99fac64c37e1c5fecbeaf6ad9aa8ddb1be55c26bb4198adb8c303afed7267d33c12f9f73336453bf32bef98c999547e7f9f4a952";
   hasRunfiles = true;
   license = [ "lppl13c" "gfl" ];
-  version = "1.535";
+  version = "1.536";
 };
 newsletr = {
   revision = 15878;
@@ -31331,34 +31515,34 @@ newspaper = {
   version = "1.0";
 };
 newtx = {
-  revision = 69381;
+  revision = 70496;
   stripPrefix = 0;
   deps = [
     "kastrup"
   ];
-  sha512.run = "116c8192b67b93a6dcac6fd296141b5b5bba89b41c94cb15ee5644ef9c9b3647dfcb9703a002c9433b8badbbd117cad8fd0565090ae7ee097cb65d7e06b0ae60";
-  sha512.doc = "6ac40ed19b45a5a99fb854469605242cc1efa098563a9653bbebe994e79767b465d182f0bef6a03961756fa8670677deb033a8d6ad747e54cf04c62634fd0388";
+  sha512.run = "140e03a3dd5a59ee6b5a81b7cbc5531e92bd2d2296ff74df4f1805d44f6d136dde2aadb0af145f4f7f0a9e223d39122a8320b3858850fb49dd8cb59e80d692f9";
+  sha512.doc = "c0344d8e74e412b1ebc8b9db86579672cd878eaa004adc081c73ba48258a57e4093361237410122198f71ed0a6c3f1fd1989e9ca028118d5f93dbf9b21f6e5d4";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.737";
+  version = "1.742";
 };
 newtxsf = {
-  revision = 67051;
+  revision = 69597;
   stripPrefix = 0;
-  sha512.run = "a85dbbbba3bcd0bb4732d327c5b70acd89ef59d6d22495cf4a4fadc3751af04f27b09dfc77613fa32ed3270417d31cc876e5d72b6868b9a7454302c961dc96f8";
-  sha512.doc = "d09946c13c3ae08339933fd965a1740eaa660413067878e44ed5bb8a249dd23c76acdfa01101a8ffa11eeae3f277a40394023c0d40142908498a1be0d95abbc6";
+  sha512.run = "4d44962a7bc466faa60d39791f18be3b5d3bc5a1eb2b22e233c80a81ad3280b0a89c03717881ee858e327b67040f5859fcde7d465420e43df547ee56f00f5b93";
+  sha512.doc = "992123b7b5f30b827b4cb49b933cdaa323a007c1d41632993a2a8d52588b5f5d97612808dcb48423dba309f025d851cf15aeb892c8bfe10d0929cb5744515b7c";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "1.055";
+  version = "1.056";
 };
 newtxtt = {
-  revision = 54512;
+  revision = 70403;
   stripPrefix = 0;
-  sha512.run = "8d453dd25a50384aa0ffc620448a7c1ecff58b51b2cefd0ee2a3ea98ef274ffe1a11e6e26ccabc1d218d4a3f69da4cb254b3e9c6ee9fa99ac32d8714c15a9164";
-  sha512.doc = "0a29f11edadeec4284ac9c9c04230a925517b198eb3653a456ab68bf495a9dd0b846cea4c3e1a425539f0b834d37f8f9a7f20e5945e8c8efea7ab4bb9342f6fd";
+  sha512.run = "fe95d2c4d2ff7a83f362f55bf2579576b94251fdeb3556c2f417e0118b2dd215a705d06d79e66b9aadeca09cadd5c19f2898cbba8624ea089fef804749d350cc";
+  sha512.doc = "02879af2ae05a703502966acc561df08762a9fe01a873180672652a9c931ceadcfb85d411523eb81425e7f1944f514673e8d04a208d54b27d0d26916077a81a3";
   hasRunfiles = true;
   license = [ "gpl3" "lppl13c" ];
-  version = "1.056";
+  version = "1.058";
 };
 newunicodechar = {
   revision = 47382;
@@ -31435,14 +31619,14 @@ niceframe-type1 = {
   license = [ "lppl13c" ];
 };
 nicematrix = {
-  revision = 69275;
+  revision = 69991;
   stripPrefix = 0;
-  sha512.run = "12bfe8ede8cb01f61a5437a3d91cfa225540699d67327ab40df051967f75e7af7ff34aaf6ed63c5067d7318c491581b39c41430f9d40d0f383f85090e2769c31";
-  sha512.doc = "71d57a75b4c5e58a3bf15879c4eed9b24bef9065b73e93d482ffff35160d06fd8d2ca723b0d9f784e572878a21efbbee34ef9277c94e283b7f69826aa5985128";
-  sha512.source = "7515731fd6794b3f154cc2937e8ca147a8f147fa2fcdba1bc15aab56dd436374eb405b6784fdfddd6183ec4264691c26fd0e4266365e96eefadf90893fedd3e8";
+  sha512.run = "936cbf7f65d1c34986bd6113e07885051e3213dfc98d4102564e0d3749bfe68a0beca8637a34da833e45ad8f5d1eb13ed6f7c75c402158e9638f4f2548ef2b8d";
+  sha512.doc = "f9255154b3f69e14c82f9816a9c2b9b2a171311501c0d68904443a4ac8a05518164ff80b9428922e62fa0b62bee61557e12cfb20c9a53625c3a6ac0ed369592d";
+  sha512.source = "7ce23449d29a57d58305bd77b00de46677e39143e75580236c846cc6e572c4929374329cd58ef9a4b6747ab66e586a0665b7768232703fc9d792b59907dbe6f6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.26c";
+  version = "6.27a";
 };
 nicetext = {
   revision = 38914;
@@ -31677,10 +31861,10 @@ nomentbl = {
   version = "0.4";
 };
 non-decimal-units = {
-  revision = 68504;
+  revision = 69742;
   stripPrefix = 0;
-  sha512.run = "5ccc76f7aaca5aefe92e14a686a6847a1df8b00afd04fa96d11dff75951f729920f5564244ed06b74b67e2a81532111fc54adc719a59d6a9d1ac4d6fbeaae9d2";
-  sha512.doc = "e200b68474a0202d8018d943382bd76830f411b95373fd6e43715b343ed0214f08b529b1bec92a4b4fa4c8a1ff8accac8994ca7e342e7edcc5ead511b2769e21";
+  sha512.run = "0aff79bb4d211419da92ec10b0e9139f2fd0e939e57fb8a6ada437ffc71c0d42394c5561894e2f2537a24e466aad7e86aeb40e6ffcacc04963c8c88268bc1cc1";
+  sha512.doc = "fe3e393e6f2de3d5678f71fcfc0e98577ae77d063b8d09966cde4d5145a9a4c0696f4c09d24757e18d8adf75a9473eda57fa5bc1218ca96c2b4594bbecfb5d3a";
   hasRunfiles = true;
   license = [ "cc-by-sa-40" ];
 };
@@ -31832,13 +32016,13 @@ notomath = {
   version = "1.03";
 };
 novel = {
-  revision = 68807;
+  revision = 69945;
   stripPrefix = 0;
-  sha512.run = "2debc0cd636e6d0fce34f841e46e25fb3fade7e601a43d6ccddacbdb475079e5cb07e83efb47c941cdda243bfa89da2b9215971d9012850c4cf0c780f8b0db6c";
-  sha512.doc = "851436d9fe782e654da5bfc8ed7f55cb63c3dfb2911fd4b0a01e9ef1e6d92044b1c44c471d99046c28e35d68010120c2cbc2101b379a9cc0584e0f18cf7e1644";
+  sha512.run = "35da534328bd371913fb43dfebb29dd1dcd88b92f1c39fad6c6248bb14982538b4babc7fa91a54a0c424cf1c3d6dc7d17dcecf5acfaa3979ca37c7fc8a45c9df";
+  sha512.doc = "ecea10182e63c454a78c746946d47017d9c40592a6fcf2053319bf7fb06ccc1c0e655d213b5eed760d44e81195165cf6dea6288c8ff2aa59f5170c337f5ad114";
   hasRunfiles = true;
   license = [ "lppl13c" "ofl" ];
-  version = "1.83";
+  version = "2.1";
 };
 nowidow = {
   revision = 24066;
@@ -32033,14 +32217,14 @@ nwafuthesis = {
   version = "1.25";
 };
 nwejm = {
-  revision = 64462;
+  revision = 70606;
   stripPrefix = 0;
-  sha512.run = "eace1abc8a31104d1266acc6f19ac59b0d0ba73cda2b44bc308ba2a22c9ccd682ca489b9f164d30623f60c911717a171665da0feec6e0caf7c7cf01b8e51139d";
-  sha512.doc = "8ebf12322bf1beecd8e224e9b7a16becf68aee9910717ca39d73ddf3537edc28d559337350ec9af18132679a77319115f6c1bad29cc5ade8443e6e129b3e542b";
-  sha512.source = "f2d5d526b2b6242636324d0ad3aea17c21a680418cf937297c03249034c7c03fcf2589b794917ac72fc5a980dd2c57dcdb4dea75f0c894a77d5c5023824e7168";
+  sha512.run = "1d54bf4f1ed74ca7ea51761ed8381b170e6d66e35513b272ab22267d799e8ae562c5532bbf3212a9300c0bfb19201cd999eede311387645e66ee6cf03693e98b";
+  sha512.doc = "456a5e6f5bcd21557ec0faef50fccc95f2d7f07fe26f705c88bf1ec601e94bf34847c2cc3a8763af5a65f6b2ec3183c97f8f1878bb09ca4b7f2c2997eedfe1b3";
+  sha512.source = "00302f0628e72c6329f03d65f57a9bb78e6e46647247801ad15d0f2785a067c0d1b84fa8ea2af02fb4c4d6c02d8d46288f6642cdaf74eb3d6bc88aceae183a6c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.5";
+  version = "1.0.6";
 };
 oberdiek = {
   revision = 69038;
@@ -32157,6 +32341,16 @@ octavo = {
   license = [ "lppl13c" ];
   version = "1.2";
 };
+odesandpdes = {
+  revision = 69485;
+  stripPrefix = 0;
+  sha512.run = "57a0af92aea846e23c0dd05b896af1eb7538f0bc20e957ad3a528212101adf2a1e03bf661b0af2881320e4363edba32c0653a533c74b536d91e86e27666e14ed";
+  sha512.doc = "ea581c7e77c0ac143a10caee59ed2d0cd7de439966974ad80bbe472e3c5cfa746e9cd43da677c42297792ac157e0a3fea25666f55c3e1cc3c38cc22475b1b26b";
+  sha512.source = "428bf6bea18ab29fee6b642ea27676de099072791b72716cffb7670eb274658203bdd53529d8be0dc7918f2db9dc0ffe56baae9986e41ea772fcdae548906443";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0.0";
+};
 odsfile = {
   revision = 68204;
   stripPrefix = 0;
@@ -32210,12 +32404,12 @@ oldlatin = {
   version = "1.00";
 };
 oldstandard = {
-  revision = 69185;
+  revision = 70428;
   stripPrefix = 0;
-  sha512.run = "4c82d222ba84192cd6ed43e368938f31c0d481400f7c643defed74c5c39d38400515a69d4a6c76ad14d41cf64ed263e14e78ed7431f53d8c64fd9dc1c20e7bf6";
-  sha512.doc = "c2e55b9f48d145e4a7f7e976ea9cf46d1d7563bf56624aa5fdb1fb78f54f8386dc4eb7520d981be239e77823f96336e8a753bb623d286a3eed24308c6f59e5d8";
+  sha512.run = "838a3c6e29a37b060c2f5e158a7145a6119432006b213e4fb3da956d7df66e76e1fb6d963c67d4833b5d45bbdd203e689c9a54302dc3ee28de5d630b200f3dbb";
+  sha512.doc = "7933ef5fcdd97201d269547c981bbdf50ebf11b5a11d417cdd1df9f3e0f35fd5fd618a198050865746f9fcb31cedd61abeea25540d2a70bac45b0ad9065c81d5";
   hasRunfiles = true;
-  license = [ "ofl" "lppl13c" "gpl1Only" ];
+  license = [ "ofl" "gfl" "lppl13c" "fdl13Only" ];
   version = "2.7a";
 };
 oldstyle = {
@@ -32352,7 +32546,7 @@ opteng = {
   version = "1.0";
 };
 optex = {
-  revision = 68873;
+  revision = 69864;
   deps = [
     "amsfonts"
     "cm"
@@ -32373,12 +32567,12 @@ optex = {
       fmttriggers = [ "amsfonts" "cm" "ec" "hyphen-base" "lm" "rsfs" "unicode-data" ];
     }
   ];
-  sha512.run = "65cc4c05b41cf41a1346bf567f4c14183f11d5a6c14ed6ff79e301ae54523eb8a90eea8f94173b9817ac45c14d5e0f5748be252db6a247a5627b129949f4604e";
-  sha512.doc = "38d20d669bf1d8ce18f50e1824550e5333ead4cf8773aa074e31fa331878cbb7bfed1cf7dcd29e598698dd5fc9855197cf5e2b970b2549c2b79c6d78eeebefe0";
+  sha512.run = "f8c0c0ac739e52ea2e468041b50a690999ed7c7ad4ceddc6a915946c6679e60fe4919b7f1d8b0cba49f2e47e54137e0c7a92ebb92ce7ec0ffbb2e3b7cce5ed9a";
+  sha512.doc = "0b807209aa67fd18f6c40baf4ccf4e1faa0e4ef28c25df16569f266cf6d3d05e318a25e2af623db92832ff124cde5c7ec81638ae50bd9211f61acd52347701eb";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "publicDomain" ];
-  version = "1.13";
+  version = "1.14";
 };
 optex.binfiles = [
   "optex"
@@ -32685,13 +32879,13 @@ pagegrid = {
   version = "1.6";
 };
 pagelayout = {
-  revision = 69188;
-  sha512.run = "0eeb34fae976625ba534e1f1a5165d56cc04a91827d8951e1c8cd125703bc35b455033522fabf2d62d024e4ff8242cf6301a513898907aa54f05ce43a684cd35";
-  sha512.doc = "efb086ad732d35c6415c4bba8770c658fd5486573c42f310c56d3de667f9bc3527297a348fdfac2593965ef6ba5e65f56f6e2c19b8163edd68d9ffb5f40a17e8";
+  revision = 69486;
+  sha512.run = "d68bf1937910d93d028757ee0fe06ceaa222b29239d7decc1479c78dd3bfe7a210349562718c87173f26bb34eea142eac4764e013a33d63d0dbe3b6204e60124";
+  sha512.doc = "8b2fc3d9fc36b821dc1082d9fd980fe7280ccdf9d44218a84dfd5ca00aaf79df8b78c674a3460bf2ea8c93d977006bcefb053b8d55d46591bbce2b88822d4891";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.5";
+  version = "1.1.0";
 };
 pagelayout.binfiles = [
   "pagelayoutapi"
@@ -32995,9 +33189,9 @@ pascaltriangle = {
   version = "1.0.1";
 };
 passivetex = {
-  revision = 15878;
+  revision = 69742;
   stripPrefix = 0;
-  sha512.run = "dec61bb52bc1bf8588474e6d8971ca16f691d13b9c1be1f131cf0a720a205df1a95830f2f172df2efc30799d4aff9af064f9d851d9c705235aaf96e4b50decdd";
+  sha512.run = "2253d07d753a5c20c29c2ebb97446453d2c0912c9f26b2e3bd78676e7c3c2ee82953e188e62253c80da538546481da58602b5478b2b8ccb3a6f7554ee41d228b";
   hasRunfiles = true;
   license = [ "free" ];
 };
@@ -33299,14 +33493,14 @@ pdflscape = {
   version = "0.13";
 };
 pdfmanagement-testphase = {
-  revision = 69078;
+  revision = 70328;
   stripPrefix = 0;
-  sha512.run = "f0065e66e3d94a483ca1e3dc3c7a1f78a1f2f8b038b45781e1f7011939e65814737c60cd606d291f153bbc633ddb15fa7f2b53414f857bf9ce5791a211f0bc07";
-  sha512.doc = "5b83c8d73ab6a81d1f32a35c762cf13b7b8c0efabde94735a3c45716ee470abb3d370f8d329e8785685f777ac812774d5b16de3d53991489d83e219b264b665e";
-  sha512.source = "cded0f375bdf26cbf999fb435c6b3eb9084f6d481087e64d9b50ad9e5414ddcc87a1a495b9a75326a65437021da41ec011647e2ba2a4f72d40e618b2519e23ff";
+  sha512.run = "3dde6bdb63f0758ccdaf62f6ad928e241afb7e7033e05c7d40ff36a2eb526ab1fdde01fddfb96a11856aa59a29272dce2740456c72fd23ce0e450f4f48195448";
+  sha512.doc = "337bea25f8e865fbb70b86318bb806210e8f9e284fb0cd03d11e8998601f9e4d627d616e74f5d9bd23a171700b17e7eb4b3c8ebfb07da8e8e66c0bc72dee0d97";
+  sha512.source = "4c23bb2485c3fbf18beaabe0cc219faa28400a9178703f983e81d8ec412e597b0ac48c98b1ab6e6c188cfae23ea675d2fa077740684181d812e082228cff14dc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.96d";
+  version = "0.96f";
 };
 pdfmarginpar = {
   revision = 23492;
@@ -33346,7 +33540,7 @@ pdfpagediff = {
   version = "1.4";
 };
 pdfpages = {
-  revision = 65319;
+  revision = 69524;
   stripPrefix = 0;
   deps = [
     "eso-pic"
@@ -33354,12 +33548,12 @@ pdfpages = {
     "oberdiek"
     "tools"
   ];
-  sha512.run = "c29f811574dde6dcd717255d40df7234d0916d6e7e4fe4c25e62639123bcdf4464e3e285c335c11bf2a289e8ca6391278611a0073fbd3ac8a071790717b2778a";
-  sha512.doc = "d91c5ae383beb5b4d16d69d09124c1e9598d3abebecc5d1f63319a90c8784c361fda0bc68626db752c8b9a3dc3f6b691a1be6d6ed7d16169278228f68b876b2e";
-  sha512.source = "869945d91d96e3a7936515a84bc4cfaad96193bb198a0a4db88300d1bfcf61ac971c6144820fcdb52045f4fa3511af8ec4045f999bbf8ef07d869d43e68dbee2";
+  sha512.run = "09586903b55b92d16ee3e3cd205ff8e9a3b7ec07f4261019a340a1c128a9370ece443de314c8922ea5ff8822c9297132e399be2f7ef95949bc7f218535980a7e";
+  sha512.doc = "c1620dcd50cd5b8735645fd001eb2c09d13f1f2edb73d4aee14c55e63c2a10b278be6b71c2bba0c5b4999539dbb74ab3f67f718a192a1fcb6f2a51c93e5b16df";
+  sha512.source = "6c3c6c357eda878895f9bfb49040394c52a764db8297fd3a90087dda851eaa1375b93276917bb8e010575d24939a51b23d5e3acb695e4f1ef540be6759dac31b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.5x";
+  version = "0.5y";
 };
 pdfpc = {
   revision = 68610;
@@ -33590,10 +33784,10 @@ penlight = {
   license = [ "mit" ];
 };
 penlightplus = {
-  revision = 69070;
+  revision = 70319;
   stripPrefix = 0;
-  sha512.run = "b4aee13d9fc3a01d434ea76ed04b2ae6871dcd7f2a1953ebe36a89153ad1759a2c66a622ee161ec7bfc0f79f235a54f6a2f8c232ad62cc2150ea872b2e4b79ce";
-  sha512.doc = "1a9da1ba0e893846d45eeb3cb6ea803f154986aa9c8f419695cfb4c24448a0c9ef603d14925e44731ca0fe00fda5528d80b30f428b81bf97a9cfee90755c78b0";
+  sha512.run = "97de3ce726fc5469bf1230edba37728a332e91dae33a9498b4e32c474694866e95abfe9156dee1e4c4a7b4f9b07922741c87519ab892c01f037db04a92150238";
+  sha512.doc = "e35a2d252d8377efd170d9b42ac233af921b34b2a9a91248ed7640d9b79809debaca54451251fe5cc1394df73f0ef476c72f614ae5aefba5db319d7f38aae7b9";
   hasRunfiles = true;
   license = [ "mit" ];
 };
@@ -33726,13 +33920,13 @@ pgf-interference = {
   version = "0.1";
 };
 pgf-periodictable = {
-  revision = 67250;
+  revision = 69924;
   stripPrefix = 0;
-  sha512.run = "90e347be204b06b55941110e968b02f36d849a667a0bfea81552ecb31baa6197139912adf8bccc6b212b57b77be3857088c35f412049ba6fb6dd205049312c3d";
-  sha512.doc = "e13515d4ca7af997ce26f25dca80325cbf0c94f9e5c6a7dcbd51d0b5fb2900d73e37b73762db61269c0c2408ae8483bc767da680aaa88c79c011ecd811766cb7";
+  sha512.run = "c640e847afc370fb47c39d44712c7fdce6078d39b4cbca9630708fa4374b8a9793100763a5a2734fc3a925d1b0dbfab28aab868f49750dfdabd4df69f0553af9";
+  sha512.doc = "a148aa9df7e95c48f6eeb5a85323f68539ffbaa7deed7b3188b75c5827814d2b26e20c61995334e77a868831d5bb9b7881e8cb993967293f79bb327c387298af";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0.1";
+  version = "2.1.0";
 };
 pgf-pie = {
   revision = 63603;
@@ -34187,6 +34381,15 @@ pictexsum = {
   sha512.doc = "148b7c29cb8189174442b95cd39b0d5fdf9f937a7a44a17314b93cce555cf3db459e21ae2c4eb9098c15551bd7aada2804855d68f9408fdbe974f6c12dd724a2";
   license = [ "free" ];
 };
+pictochrono = {
+  revision = 69865;
+  stripPrefix = 0;
+  sha512.run = "3c6d73efad12ff4b3c10c1a09e36fb489a75998e556f6042db8f11dfd157cbb27a488eaa1f12f7c72de5d2ea5deff14cb8d2659b1d4618dd91e5bee84f72eb82";
+  sha512.doc = "fe015528ac5b4c2f2f7f955d23372c1a3066e0569e50a9e38699e44c305d588727f0570c265c79aec82f8f8c02f6b671183426c3a58f6f1f339ca40415967b24";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.0";
+};
 picture = {
   revision = 54867;
   stripPrefix = 0;
@@ -34215,13 +34418,13 @@ piff = {
   license = [ "publicDomain" ];
 };
 pigpen = {
-  revision = 15878;
+  revision = 69687;
   stripPrefix = 0;
-  sha512.run = "107700bb0c2afd35755589551ca6bbd9a95ee6bec39e51868ea1b5fde4855a0ea2eb92b50105eb6a3490f82ed6f55c33cac25bbd58eeecb57fb80380095b7285";
-  sha512.doc = "48c6c4c26e7518f06233ce0da8898c1c722829adfad042c12b8820bb1bde43f25410c41f76c51f4d01035c9d654bf3ae8fc7bb44a4d2c23c52f3336ec7e7d128";
+  sha512.run = "54e472281b1ad2f98b8f49df945fc89ea2e28bbec4088c15b4b73a411ad42936f408926a006e46656eb70b90172f39dec376b2eace6fd22923dd4881e1659618";
+  sha512.doc = "94be29262f4d00ff65c1679029bc76b33ebc10051862cdbd4da08ef9802975378efda5c2b2cbf85877382d093bb408feda0d53d3458337bdff5239cc851c1dc6";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.2";
+  version = "0.3";
 };
 pinlabel = {
   revision = 24769;
@@ -34250,14 +34453,14 @@ pitex = {
   license = [ "lppl13c" ];
 };
 piton = {
-  revision = 69320;
+  revision = 70446;
   stripPrefix = 0;
-  sha512.run = "95028768d96516ebd9b44abd790d47694716edc795bafed8ec8ddc54626792b0590295e87ee8d06740b50d42b2e4a00c326cc8ce737ff31b2f0d42130f8a57c5";
-  sha512.doc = "11825345e1017add9674e543d146dd151fb3d9dbcc228ec0660392a12e0baa7ec08f224d7024f059ca125f26e744e083369fb972c308173e17908b0d48ce2aa1";
-  sha512.source = "f29cdafeb5efbe3a0d927a68183687aaa6ac6f932a24d362af32827377de566f69c8721329546d07c1a1127da587b25fa3b649ffed0579056e88bf9e987bb7c6";
+  sha512.run = "c6bf65efaa6dbab5d75aa789df37c823a8b2bcaf28a42e476ee5cc7d36c5a3e830407bde7ac7c365e4dc31fb14b873e2e25aa94f7867fd73c6f8e16d25610f08";
+  sha512.doc = "3b5d8305bc3fbab8e3805a9d7f9a5c76c6ea1d6cf45ce31a121c2071fb0de71d275acae3e2225e85aa78c3d24dda559b52842072e917d07788c25b08dedf9066";
+  sha512.source = "db4ac567e3d6741a650ed8cf7098fde78a8a0d26225c485c9fbb954494f500d9304719a9f5f32f9277811923aa323e5970c4826a2177a8c0034f50752468f756";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.3";
+  version = "2.6a";
 };
 pittetd = {
   revision = 15878;
@@ -34320,13 +34523,13 @@ pkgloader = {
   version = "0.7.0";
 };
 pkuthss = {
-  revision = 64869;
+  revision = 70496;
   stripPrefix = 0;
-  sha512.run = "766411cd122b6ee856834ab6b898f236509fd487f14421d4606fb46e628e5a8c9269321b373b8ec5b4ec12bbf13818770021c45b36202447b12eae68a80032f4";
-  sha512.doc = "6ce10aa1e91287f3ceae0ceca54a1a8d91428c84def873c3d59876c22dcb87d6d2a7ed9d0894be4f2adbee769398f0ce1139b55269badd773f9a881fecfa3476";
+  sha512.run = "ce10fdec461d1de90a7b3256db0c29c508427c4b21ae77ed7d08b75d3c95b46bea27c7ed869c1bc8828d40cba05ab84fd7288fa6ae553d786e1ee18e3c468b8e";
+  sha512.doc = "7093f5e5d39576e9b57b08d528675d43460713050af48c77f9b7db78be74b16490dda55f1ab8fa425436d59f6428a3e244ee9490d22ca70eb141a68fe14835c2";
   hasRunfiles = true;
   license = [ "lppl13c" "bsd3" "publicDomain" ];
-  version = "1.9.3";
+  version = "1.9.4";
 };
 pl = {
   revision = 58661;
@@ -34751,7 +34954,7 @@ poltawski = {
   version = "1.101";
 };
 polyglossia = {
-  revision = 69093;
+  revision = 70496;
   stripPrefix = 0;
   deps = [
     "etoolbox"
@@ -34761,12 +34964,12 @@ polyglossia = {
     "makecmds"
     "xkeyval"
   ];
-  sha512.run = "615880e38a7faa377698fe79ad6fffd16eeff067b95a6b70e459cfa68c530499e84e3bd040735f12a29349641f2f1ca2af270bb6ec884426b628bb7ebe491133";
-  sha512.doc = "8faec17cb9a8b3c30728a8b527794b1b58c9e8d26670e53433ecdaddaa341fdf8fa8f599e4cd5452ac854abf0f7b8d4216ea72af0148087e10460757af3602d5";
-  sha512.source = "73734000d3720ebdd98c31973e89b35636d3eecd3ffd7a5ecf5ab2650182f33da8dabcbca138b63e1f6472c003e36ebd9c8962921ee7c1825d5daea44f8f47d9";
+  sha512.run = "d34cfbeffd1cb2eaeef0d7d625a1f1ef7e2835e93eb88a53b2d44f21562c76cab82e1f5637ebf05b25c0fd0b56738ef7946bf7f9607766ca57a7658f98cb2647";
+  sha512.doc = "f59aee2cdfd6ba067e4ef5c20503cdd9317ab854ae35b0a04044b94116d4fea9fd6b839bd4f33af934b207f1c660e126c223477cc57b7a1ad81db54bda2507d5";
+  sha512.source = "cd285a93795e6b0861eb6e930384c836c83463cb2c4806dcdfff2966f23cd28604bc113b48916332d60ddd7cf2e747ece902b7040c41ff3d95b9eb99b0c9ea56";
   hasRunfiles = true;
   license = [ "mit" "lppl13c" "cc0" ];
-  version = "1.66";
+  version = "2.1";
 };
 polyhedra = {
   revision = 68770;
@@ -34890,6 +35093,15 @@ powerdot-tuliplab = {
   license = [ "lppl13c" ];
   version = "1.0.0";
 };
+ppmcheckpdf = {
+  revision = 69527;
+  stripPrefix = 0;
+  sha512.run = "9c6612db37dafa8ab2771e42443f528806542b0c949b67adc861440bbcc85492a726524f543406daadde3d66d20bd32eb521cb96c719f948732c3a84e4702d7e";
+  sha512.doc = "5bf1e2df2c702a3b447787cfdc77b243578f6c59ea4c46ac352628dc647e55da9837375d5d960e17d8baf3d1fe538abb81cd33f08e6b0f501159be8f84131ef5";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2024B";
+};
 ppr-prv = {
   revision = 15878;
   stripPrefix = 0;
@@ -34901,7 +35113,7 @@ ppr-prv = {
   version = "0.13c";
 };
 ppt-slides = {
-  revision = 68764;
+  revision = 69568;
   stripPrefix = 0;
   deps = [
     "crumbs"
@@ -34917,12 +35129,12 @@ ppt-slides = {
     "varwidth"
     "xcolor"
   ];
-  sha512.run = "6b4748adc7f9823f7ff3dce2a73c4535085974a9f7cda33b53a934acd3399e310a85dbdf367102f71c310b8678119d3396f71f36e3e26063569a85af0c77595c";
-  sha512.doc = "e258319f37ef32ce20ec72e055755ce1782e2133a98fdfaeee6402c404df02e1c60ef9fbdaff39306da947534b6bd79fd16c2b82d4a635325ad8c94858b4cbea";
-  sha512.source = "a5f1384b3d4fd1e33e924b2bc51498c509772136bac0c03abab8125ab5ef0720f5583ffb9236ce9a044bb87127e0f42ae6668c4fd2b0b98f07e32ded13ce619b";
+  sha512.run = "9206d0b59cb501b129ffcca39639593317d2941ba1a982d036296800ce9486bebbf87d0194b43ca811365044a9dc8d27ad59169b2e187d229511db4b08b878f7";
+  sha512.doc = "4565f7aadae38518e2e5f68fd9994670a62b492c2e57344cbeaff4a60d601bd95da23f0c5a74c98507f5023d87d24c73199bcda6fbf7cbae6719951debe7ec77";
+  sha512.source = "2a7bf0d2b9229678565ccdce5c8d01fafd07cc5bc3b2000add41e027ecff7a38149bee9bb04d841dfe0e9993e91c0b9456bd5039c2479b775e4710169540bde0";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "0.3.0";
+  version = "0.3.2";
 };
 pracjourn = {
   revision = 61719;
@@ -35025,14 +35237,14 @@ prettytok = {
   version = "0.2.0";
 };
 preview = {
-  revision = 66924;
+  revision = 69470;
   stripPrefix = 0;
-  sha512.run = "6dd19a259a74447d597edce7e810aa90e01617d60533da9a381ae1929ded559e95509d9b7f0d62b83c08d3622225aeebb9772d6bd47b1c0155b9d1c68e48939b";
-  sha512.doc = "1c0e5e64a10372093ffbb4027a8edb6d7e42d1fc55d37ff695b7c19062a1403c00058fe0471eb56e9bb912e6cfdc13d3e46687dbd55f1efa58095d73f28b059f";
-  sha512.source = "01fee5b5367e15dfd4d9ea156b66455efa8c86c39ff49041c8fc9636ff79eae24e0c764673a75ce5050be81e9ac8ca3ad6fa2ad50fa7953f6a51292f1605b24f";
+  sha512.run = "b7ed05c49ee852d23da47c4dab53e5116b1dcafe4ae404220e10fb9622ee6a593346ed7474a2d13c64d6d3782b5894f01758cd267bfd269f54778d2af46e8bb2";
+  sha512.doc = "d0f797210790ee1ed8a80df8090f9273cdab22de2bbe8d72b609385ff2f0e2004dcaf2a91d0ebe3fcbf0693cf4f83b2a978f7b02744185ebc9c803205e88d7a0";
+  sha512.source = "e2dde7963e5337c8d0b0f0fd2a7adee2f09e8bd3900d2d8d6cca7d612e3401fd6567a42141734e72e6cdb043aa1fd786ca0dcbf42a776880447f81d0ba4e8838";
   hasRunfiles = true;
   license = [ "gpl3" ];
-  version = "13.2";
+  version = "13.3";
 };
 prftree = {
   revision = 54080;
@@ -35107,13 +35319,13 @@ productbox = {
   version = "1.1";
 };
 profcollege = {
-  revision = 69343;
+  revision = 69539;
   stripPrefix = 0;
-  sha512.run = "eb75b12f184b7e3f5ecf333a376b8d59ddbea8a0cba86c9b553074686c354394f10de5b3187b85fd43f458495dbf72c9f0cce7c98d5824c33f485605dd064e7f";
-  sha512.doc = "3976a1a95c47db9bf270f7730b8abd98d82356fdea0897e797d71a8b688c83a7ee122ddb59cc6f34b05d603d3611169bc5afb45c32a4568262b8f0c299b73965";
+  sha512.run = "37e807c9a37384e55c799156dd3af4124345b46d0a25af7e878d675701715bcd8bb5809d5bc9bee6e31377e3d8c16e43cf0f99c4b8f9d16df68c299c04e4ced9";
+  sha512.doc = "666699cdcb971ec304455569fbf8138fabae13a0edda0af06d50eb15ba54b68f90a9d83d4062ef6641476192ea0187c66e666a2098245a49231d84e4a925e59e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.99-z-y";
+  version = "0.99-z-z";
 };
 proflabo = {
   revision = 63147;
@@ -35125,31 +35337,31 @@ proflabo = {
   version = "1.0";
 };
 proflycee = {
-  revision = 69386;
+  revision = 70513;
   stripPrefix = 0;
-  sha512.run = "66d28a0ee9a4aa7b29fc31cfedb7dc95906cc82970a9a78fc5fd3cd95558721ffc01ac58cf74c2b761fe47779aee5349e05e64e3b0d71cf1ce76dff813724bff";
-  sha512.doc = "ea3821c1b94f71cd691cb78c46b78f4d607b489cdf1be6432caf7346505a008f887e0c9e895242adc23bcade67f9187a6b3cefb241322682141adc354db53f03";
+  sha512.run = "e71feda42148721f3605c48271f51db60fc8826401c97372794b799d24183da186ac33d352534d216d642ba85a4a62606ae893ee11414144eca7aa9fddadd162";
+  sha512.doc = "ecda097d113be20b48dcf933647d9e7d2adb6589b1d27058ff06f6a984b0b109fa383d406207119348388a50ce33521432960bac27f91dcb27561e09f0bd8e22";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.01e";
+  version = "3.02f";
 };
 profmaquette = {
-  revision = 69287;
+  revision = 70496;
   stripPrefix = 0;
-  sha512.run = "9fcb9729d28a2f41341f3b4f807d7207e33ab9bed43e44676dfa884ac9cf943fa84fb363a5453611c828e1b0b0f0bd795972b52ec736ef5213deebb7fbe42028";
-  sha512.doc = "7888eeeee9882c049977e96a9dfa65e50d90014e9c442b36cccc08fc95d392c78b25feb3bfaa1844a282b5bbe24bf6a4df1fd1d3d0bf477d28fd16ead0b61065";
+  sha512.run = "17223e35f30ac30274ab96d236903eed3343e8c8b7ce9915d82e430fecd36c7d8586fdbde6ab0f3e91694bbeedc9fe1e1c084fb8e47f08af53424452732e6f94";
+  sha512.doc = "0c93574c3090cbe5959db0b3eb9ed46a45f5256bd8ac3915155b4e7fe44391dce10f6ef6d380da1340234c2fe341ab6bed3975743b4eab3794b4b48db5922b75";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.85";
+  version = "0.88";
 };
 profsio = {
-  revision = 69125;
+  revision = 70211;
   stripPrefix = 0;
-  sha512.run = "01f1aa3951194f5bdedf6c3c44445b1f628a6abd633fcfdc5dcf01f8777ec50b28367a4deb0c303b41983881c255ab21e3916dbe03c1c926f7f2df6be119fdb2";
-  sha512.doc = "f6c650c6d4977df846a62a697fc1b4e82ac541b68db55ec15a0370be2f7b06e8e45e0c8abb81d5573d4ac2dc868cf63b5b19b65de7025afd4f5f69a6cf516b99";
+  sha512.run = "b4e8dcaf48a7b9a6e5cefa8b188e36d4f017afad476f6441e0718d89a497d2bdff06ea3380917a836309de371446602bdee51fe12f42aee0fcbe189b4c1d57cc";
+  sha512.doc = "846703236b09ec68c49ec05c5fc817e109914d6f2449d652876371e92ea1e5c0ac98697886ca81d2bfe6bbc7deb6537f5d828140d380e459f706c9f902dd1502";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.9";
+  version = "0.2.1";
 };
 program = {
   revision = 44214;
@@ -35179,23 +35391,23 @@ progressbar = {
   version = "1.0b-4";
 };
 projlib = {
-  revision = 68784;
+  revision = 70327;
   stripPrefix = 0;
   deps = [
     "create-theorem"
   ];
-  sha512.run = "0966ec8d951d6b060e901624e6137a60e1dfa6cba8599102bf7aa16f4caca5ebf4c234f6abd0a71cf8e54f6a3573151c406f5ee5d541c78517c64aba853bcdcd";
-  sha512.doc = "89edeb895c63c96ab12d27498c92c29194a4edb11f92292b072738fed7eaa766ed86382c0ba26eaf9038d7ad405628cf5fd21ff67ab3405883eafe1529899182";
-  sha512.source = "5320ae1610e4c0372bcce855f633c43ed64e928bd770b013ac656dea33c77bdd93ad75e578b71f66996973f365032e9ff20c05589ade56e02e88b244578965a8";
+  sha512.run = "180698941fa86735f83bb4d93886c2cd637aa7ac50103ba68d3369bcefcbe6200a377a9975e04db9f0e528a0b821bbd82a5fe6deb4e85832523798e1523fd976";
+  sha512.doc = "362d152dd0c82a9807cba5b6fe49da6b4a8335af6b23f6958273e370140f3b48e1a52424cfd9c41736bf672f4552afb43f897a8624bdfc300e09db363d501dde";
+  sha512.source = "0d943cd81f384da704841841fab42276b66db825258b4aaa0392ee651527960be60a80d87469a679ee7292a0096c5d438f4c76ad39154981b113cfd12e273d44";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
 proof-at-the-end = {
-  revision = 64188;
+  revision = 69602;
   stripPrefix = 0;
-  sha512.run = "0098bbd42c5dcd8f7e8d30f25682a17bf68845a7859752ba5b397020363914610691248809f27fa78db77d655d7719958f2d438c18913fba859f80e5b7525a2b";
-  sha512.doc = "5b1ddf5826a0a1c092ad2a155384ede256ee38f52315c2490b9829104fa2fb51f0e4b5ceb7d9e9040dbebcd6c3b0b8cda9d166377c1627e540ebc91fa96e64a1";
-  sha512.source = "c40a7912ea5352227557b9be51a06af4ff19f9239f146c23e96f4a9c134b58fa5274f90d8f726197cab40db523988bdf566181df78a3fff16ab17102e1e9636d";
+  sha512.run = "7859a8ab78c39680922e7131f2b95ca1b253b5e1252aa14fe219c3c7fe9c4357ab30d4b58a54e84c3188fab87de9cc14a23925dc1fc1563a7efec400481d572e";
+  sha512.doc = "5c3e4eacadd2aafe86c231d44a340b2567ddcd9d9b737739c3b2e2ed69c0e14d6966174e3026cd10cf4ca4696af61cf305c25584e0df959e49f01b2d95a3f9ed";
+  sha512.source = "088cefbdb746236e400b232079c54c6e8f73d8adf94f022c842f45d5bfe0e83cdcf8540c0dd51214c5538d6609dc0a0cec7fa3b5a2458a28eccd288249f4f9fd";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -35369,11 +35581,11 @@ psgo = {
   version = "0.17";
 };
 psizzl = {
-  revision = 15878;
+  revision = 69742;
   stripPrefix = 0;
-  sha512.run = "adcd254a9991839c623b3f75098276dc26df935db1528d39f8588681b87237febe81f8289aab747486df92bc9af2103638734fc22c43ace8cdea1733d2a66360";
-  sha512.doc = "e9d65b3b0c364fcc7632ab83974d8685568d4135cbd8568cbf69e9162dbb80283724ada72891a72dce2fabe35d846c6f09b05f1123f8fe72ae749215170ee996";
-  sha512.source = "fabcb5343912bf005f5ad73b2ff9444172ad6f36fe42ec492903ed6d19d3c2b67775790b15cb37a688d9c0b8d78145963f8594b67e91d07284adb5d26cd2ea52";
+  sha512.run = "7dce0f9b7781ca89ba93c1607acc0b440ffcf482a1927d0709aa0e914531e250a4f1ef24b64ee63008351c7b206fc092f9211966fb92bb6e0214f296da872677";
+  sha512.doc = "c337900dc35cf0e02667d0eed6ac28aafc5336fa39bd7cd90dcf910ab27ebb741abe0ad7b0182fa8018c945cf9d4951db062d1ecfa9a9758e6e9940a0af0b0b3";
+  sha512.source = "7294b45fe17bcea21243b7c719d151a6fd87fef9e641b5a3a193e355df660f7adf5e52dcc22ad7b8998f8d882973e32bc3d9af57b33223c39ae0079e1829fbb9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.35";
@@ -35892,13 +36104,13 @@ pst-lsystem = {
   version = "0.02";
 };
 pst-magneticfield = {
-  revision = 63821;
+  revision = 69493;
   stripPrefix = 0;
-  sha512.run = "f11b9d1c1b535a9be89b8750fb65374c53e3917272d09c7cb2591251ad4def397948c17e110bb1d86d2e28434d0d58cfbf0efa3c73df807edadcf65bc8267530";
-  sha512.doc = "bdccf423a3c4c157e62a31fe351301f10dacb167c3464b7e38e6e7a49c566e5c4d3025a7e59bac22330b330ec791ff77242702e9987bf700bcc519e50b2742b8";
+  sha512.run = "c0260df43810caa61a033b835e1e60544421e008832091ead56fde4140234a878ba31dd5e98777fc3a58b3e6247daef9a80da63d7131a717e73f1c935db7fcf2";
+  sha512.doc = "98f0e0464e41b12474bb5b5c6e931d7da60206b766a39877f36d3d8f68a016ed7c9772483b1cf30d46a83a9a05576093b2048579ae8d4133806198602f3aaf10";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.17";
+  version = "1.17a";
 };
 pst-marble = {
   revision = 50925;
@@ -36145,13 +36357,13 @@ pst-slpe = {
   version = "1.31";
 };
 pst-solarsystem = {
-  revision = 45097;
+  revision = 69675;
   stripPrefix = 0;
-  sha512.run = "48c38ec076b20b28aef50c207a77069cf5053a209f4ddcb3adb5a8e01f2b6510abb388075c7e5c90b6b48ecdf6f92764836dd58fb51181e28afbbe6d47600abd";
-  sha512.doc = "581e73c180e455adb09453c7f535de5a3f540c3d8046ea0a1667f9f13390cf63297b9073ef66d93f4c6b2aadffad3de24000a49cbbbe374bb7af75402fb6bef1";
+  sha512.run = "8c977113eb47ea9139cdffe297f0b4e333ddddd5c7f54e2cab2dc29d65c11616e938d9d79a4362901b1715ca9be104ecb6eb72f43b779cb11644520306d8ba7b";
+  sha512.doc = "3714132e0ed6d7fecad9215e6ec13af2a74576c43b21faa746adc6caeba16af479e9f35c7d3948ca69a82092d8d6ad2ca07b1b3ba9614dfdd043db1c57cfbd0e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.13";
+  version = "0.15";
 };
 pst-solides3d = {
   revision = 68786;
@@ -36332,13 +36544,13 @@ pstool = {
   version = "1.5e";
 };
 pstricks = {
-  revision = 68767;
+  revision = 69674;
   stripPrefix = 0;
-  sha512.run = "606b1b487d523253c71d814289ccef2fe9c91c091f7b588fc842b2121da3ec592387774565b3e998c44bbf0ef17df0dd2207f632ceb8bb04df8f8b203603c4d4";
-  sha512.doc = "5df5f84afd8793de4201738a032df4c95ec017c67fe19966d908221e3ff69e77589f051232d1fa8fce7f15fe5702ec3abb6080f4676c2a31671543933ed32ed9";
+  sha512.run = "8c9d0a2c8355a338f459a34dee22893acd54fc314ef588a8fc6a727f4dc0d6fc34e64059479c096e490bb2c90d627b555d5052cbf871089099acd18fff0cebfd";
+  sha512.doc = "10946b40abd2e00549abdc0e3d9067c74756785571b4f75f6baf6e6155f90087cba7eb35427f159571a04ba92e1819cf92ad12d9b4b02119ab957bb4b77da1d9";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.19b";
+  version = "3.19c";
 };
 pstricks-add = {
   revision = 66887;
@@ -36721,6 +36933,15 @@ pyluatex = {
   license = [ "mit" "lppl13c" ];
   version = "0.6.3";
 };
+pynotebook = {
+  revision = 69990;
+  stripPrefix = 0;
+  sha512.run = "221b2167c77db3e434d253f04536398501e6bd9682e09c1984db040b9822b191366413f5dae85c84dfda5219f84d4f32dfa1366a5da6ca6b2dfc8a55389ce725";
+  sha512.doc = "61d565169841a001608af347596e4a91f207ac65c45020fdf6b3a91d29b2c01192161ae1d5d274651ce90c017e27ac3d9e56041a4c2158bb43df2d07e6a9e3f4";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1.1";
+};
 python = {
   revision = 60162;
   stripPrefix = 0;
@@ -36739,7 +36960,7 @@ pythonhighlight = {
   license = [ "free" ];
 };
 pythonimmediate = {
-  revision = 66461;
+  revision = 69487;
   stripPrefix = 0;
   deps = [
     "currfile"
@@ -36747,11 +36968,11 @@ pythonimmediate = {
     "precattl"
     "saveenv"
   ];
-  sha512.run = "a6497acbf8b291e3f9c19a788d853725c9bb0283f4d8da67ccbd3b61302abf8a0d46f16eab2711e3767cbcdb79659d8ee35639d206ede7b578d2dbfb33a78ca0";
-  sha512.doc = "f12e6449f307c0229907085ba6d164a4f2f9ed861a9485e5af5d3a76a6dfcf08e7a38c56452e0ed0fc490d0a90bad151b3ac7e8fecbeb716f683e928a0cbb8ea";
+  sha512.run = "d780c2bb49199fdb77c28016bd50a229851580d8c48c45eb098ced2cbd66bd2a5e4b84493b65b160ae02e6a1c22e64ecdafd0718762c0355db13acd9cbc1f943";
+  sha512.doc = "75d2a8ded38f8740e8ddbecf938388e06568a2a3648b94611b35072639af2ec128b687259aef2bd12a03b0e205f727532f633bd0163ef44e60a526ed38b30fab";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.4.0";
+  version = "0.5.0";
 };
 pythontex = {
   revision = 59514;
@@ -37090,6 +37311,15 @@ randbild = {
   license = [ "lppl13c" ];
   version = "0.2";
 };
+randexam = {
+  revision = 69965;
+  stripPrefix = 0;
+  sha512.run = "bba998f59e869c81278e5a174d3f7e66c6534531064e30152c3a7819b32f81ae2e75b11ee8190772c282d06f0b3b1aa84de2fd730f18edb8bc4244ee31eb60f5";
+  sha512.doc = "251e4e88983af9bcda1024e014fb587ee6ae03840b0c59b141dca606271c582a1085b8a985a1d138781f9a3b6b629616ff4d6827a61ed95284a61dc123c39a41";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "2024E";
+};
 random = {
   revision = 54723;
   stripPrefix = 0;
@@ -37352,14 +37582,14 @@ refman = {
   version = "2.0e";
 };
 refstyle = {
-  revision = 20318;
+  revision = 69680;
   stripPrefix = 0;
-  sha512.run = "15ab0ac1b41608ed2453bf1de27515aaeabd0b06a3e44fa3ced6b67f5e79cf237e92112848622303df2e174ae1e60b77ff31583837f3b12a447f8c4509891cbc";
-  sha512.doc = "9edca88347914ef7810c3b1639cb85f598963404620a99f81f5bd56d45b684e55bf179ba46a5a49953a88151251ec084fe6126fa3ce83d2635450bad25e07059";
-  sha512.source = "9052f56bd87d9ecfb2bd09a3de7f1740837d1e0fea17eb2ff11c1bddc11ad2cdf3d9287167df61f0ebf1eeb4bdf7eed3b5a19b748ee8e560a7695e0418291a6f";
+  sha512.run = "05e95688dfa1e8a8a3be6937cf5c36c315371b66c14d5dc0e51862db7a5aa0307bda55848806c259b68be64bf2b36e6cdf6c328b41b84f839ec67abf2fa949dd";
+  sha512.doc = "6b71671a5a7b472823e805f5559acdfbab76bbc06a063c7efec468122b3884dbe5a6229c5ed7ab4c0e1aecd304c3333a58fc5c75c22a66739fe0ca16b5c686b9";
+  sha512.source = "60064112f68bf18d55c328da986c852b23fd2a9e8082221d4b4b29d901fe37de8c2ab5b9b21701e0db8ca2189945c25bd661ab9ae5a425351a3197bc0a528c27";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.5";
+  version = "0.6b";
 };
 regcount = {
   revision = 19979;
@@ -37401,12 +37631,21 @@ regstats = {
   license = [ "lppl13c" ];
   version = "1.1a";
 };
+regulatory = {
+  revision = 69611;
+  stripPrefix = 0;
+  sha512.run = "5225692577191c662f7eabb217b9c969cd410e75f07f0ab6b2b8e7745b873249f6b56ca8b6f1b8be8fa538f566ace75af847b272045186487212d452dce9f007";
+  sha512.doc = "ac792ec6ee63c2c69cd54fcbaf11e78c49fa819f3dc3bf3eca072ae76fce168c3cb5d3b26f3b0c8e31ed6118eb7787b6a043f0bbec298a80b129314d332c9a2f";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.0.3";
+};
 reledmac = {
-  revision = 68411;
+  revision = 70207;
   stripPrefix = 0;
-  sha512.run = "ab02eaf561927fa1840d59a49e8f87572133fe5762fb2b8e97b5a3fa80a9489bbc33ff9d12433481a6088739cba562d6a66fe9e70b5e74e7b9caecb96bd1fb3b";
-  sha512.doc = "5ac0734dfc14a25f4b171d73cdd643a60d106e11eb4d128c6da146ffd47527212b84fb5c2674028ce0c18b5aeb9375d56f2d5a9ebac654660d672e7983405179";
-  sha512.source = "ab0af4aae5b31147ea29dcd5eb4412f139bffa023600723780f37b7729967f1d5b94290e39080b9a550b3dc967dade97fa94adb14d20742ddece3c4cf3c0c8ad";
+  sha512.run = "a342f8a3e20265013b493836e5b4297c847718bbf8a8cd0eba4e8efee53a2ed6e937766f67ea6b1dd3f09ae03d670f2e1bcb5bb9acb2d751d63264f1212266b8";
+  sha512.doc = "45172bbd27094522f440d6df80826494381d876b715b849415fcbc13e4bc4a78a937b3dce3387540f514b9627413a3c96cfdbe390b101ffb2e2662a7ff716cfd";
+  sha512.source = "67ab848a05a4592b2755c2e935f7613355881c32408c8f999b63815cb44315b72809c2287ce5aa7e27a80f5fdcc399f501a0cfd67428e86a050075e1dd54ed20";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.40.0";
@@ -37697,13 +37936,13 @@ roboto = {
   license = [ "asl20" "ofl" "lppl13c" ];
 };
 robust-externalize = {
-  revision = 68842;
+  revision = 70605;
   stripPrefix = 0;
-  sha512.run = "b210a9adbfa6bc7d0063e624a30abb885eb49a7e7dd3e215f97784e5da4c79886fe4d19aa012395894098833c18209c117e913b14091fd2f3eb8904a356fd792";
-  sha512.doc = "e1732e10a355b4f54d870420acfa3bbeb6256b0a7c0136f5cfde829ff02885422b175c2834b229bf22a4b4a28a1c8e80932af2b0a826b1658d0d8ec58de909bf";
+  sha512.run = "d4abbe1a409b7f282985986d75032361a1c5b38fde2494a8249423edcb304c6aad8dd45484c2d3d7cd56dac9462226791cd73549b0403feb578d18032709662e";
+  sha512.doc = "330f8b74e7514fdecffd7c2749fe29bebec019e69f2368b15d180c775ed85f61c90a1b59192c34d3b802dbe1cb45cbec6955e8d91e11ece6df1a1755c1a7aecd";
   hasRunfiles = true;
   license = [ "mit" ];
-  version = "2.2";
+  version = "2.7";
 };
 robustcommand = {
   revision = 15878;
@@ -37968,13 +38207,13 @@ rulercompass = {
   version = "1";
 };
 runcode = {
-  revision = 68223;
+  revision = 69471;
   stripPrefix = 0;
-  sha512.run = "5f5952e07a5762b3f37de7d97aca5187d8133e6443fa41ed56802a9f852bc9e4d31023430e9969e836d0150e2862d67f0753abbec683d112f3752422259187c1";
-  sha512.doc = "cf2ac28ebca780c9951d42b38806844c55455638502708e6e79a2d9aced7478a797bb89af409364fe193d195b177fc8389a1021e4f553e2c211c6c38d5e6e9d9";
+  sha512.run = "bedab511e29b368c929f688742dc59c36ee6416a8f362c2a24847dedf0eae472e64c060f26287c55b9b881804213ec57eb04249d9c031458fb3d642c01255e03";
+  sha512.doc = "fe6b6af9efe7564e6c3ac6040f08ce30f17159b7a56ca983a9e8f97217706d75dc481daccc0c2594422d3c578edf0f00e5a72f5b06f7eecc8ea81f79ad27ac4e";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.2";
+  version = "2.3";
 };
 runtexshebang = {
   revision = 68882;
@@ -38632,14 +38871,14 @@ scholax = {
   version = "1.033";
 };
 schooldocs = {
-  revision = 69238;
+  revision = 69659;
   stripPrefix = 0;
-  sha512.run = "4d6a2c03a588b8b16c73b464ec8d5daab5acd199048d029b4d0ac1c2416e61d4628dc51bbeca1b8957844355bda4d92946f769a2494c2e3fc8522d4fba451f12";
-  sha512.doc = "8bcc4cdfd18544f81cd1859b9b307a66b163fca639a0e058214096a6c11fbb0649f4b66f1e7186c7d4ab4db635d2687fe60d5c9338f173eac85b83eacafe2d88";
-  sha512.source = "81574268cd8e860e4559d4228335d87053726070e9ed05822cc87234c2a08430c6db752e9138b06b9d6633f22126ae588a3103e7873784b770a31f8d59aa458a";
+  sha512.run = "eb9f95e2026935a9fde3c6a72600a8eb6683ae68ffcb48798c05f3cdcc4f1064fcfd72738dd734a1561de563e044913aa82294b88984cb84ae49947387592f4b";
+  sha512.doc = "c67955fe6568f0a661a2b6ea4b186d133f393420ce20c2d38dc461ee0d551ec91eccd0da94492effe4faac8c5934dd6e59853af07dae9d415073874fcb8e8fdd";
+  sha512.source = "1569b42e84b56ec417435d157a1c1999a9cf9686f72dcfbaa4d365a3efab15802390e594448d5f3816bb6a03b459b63dd85942fd16d0eafb597dd4c232f67d02";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4";
+  version = "1.5";
 };
 schule = {
   revision = 68483;
@@ -38727,13 +38966,13 @@ scontents = {
   version = "2.0";
 };
 scrabble = {
-  revision = 69024;
+  revision = 69599;
   stripPrefix = 0;
-  sha512.run = "f4401768ca1b9f1ca4a84a61e07379b9ed98f679e0fb4c3231b3daba495dfabb2d2e980b76088cf28bf03e2776e1e39133709b9d4b9b374292e1a4eed56b3b19";
-  sha512.doc = "ca5b37469ba336683ed77872cdbdfcee2379eb32c840cadf79d54b1e18eac69ec1918e8279f1207710125fbbd871b149bf556ecd36b11836a7a0defd941ba8d0";
+  sha512.run = "89ff7d5440c04e7910d3c001be2d4df7d08a53a47d05b161545fb8446977a8f2695cc722854ef040b59b334804297005baee9f2d3572b767d680925191abf101";
+  sha512.doc = "e3d922722c51b71f9ac74e914cf189ffa8e8f53fea4eff7addd2ce5c7d99ac3ab360b50a3212a9ebf353114f1dcc82cedd5a9315b48f4828b1340a9867ef69fc";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.1.4";
+  version = "0.1.6";
 };
 scrambledenvs = {
   revision = 60615;
@@ -38887,14 +39126,14 @@ sduthesis = {
   version = "1.2.1";
 };
 se2thesis = {
-  revision = 68255;
+  revision = 70117;
   stripPrefix = 0;
-  sha512.run = "a9283b1b34e7d9db35dbb64641b68eab662ddfd7e468f856e466c56c7c7ace6de3efacb43b1810e97d2eb2d0c2cf89d50ac45d79a5bcc9f79b52a1011e41ad39";
-  sha512.doc = "562a8c929ae8bcacc2dbdcc4b585b26b910da3792089670f89e4300b771a06971513978a0c656e563c7189673b6067acd450a2698fcb32449a4de75715a2c270";
-  sha512.source = "8a76b7e1139ecec4b8c9a4bd670f3bb82d354eeb0cb9d94afe7f8ad3b7656921b510ecd9223443efcb2e38c5b91e621fe66b99d282bc650402977fc84e4ffc7c";
+  sha512.run = "4dd20b0d80acfe324039946be7383763bc704c5e468b79edbb079993ae89bd98fd10113c97075e2b2afcccf6c75438ff62bd32f509e0040a64de69fe4fa77784";
+  sha512.doc = "42a8c89d3375e35454975b087a8670cb2cc95e29e130bdfd41afbe902b0dbb66e3219dd8873fd88970a6d4cf155d077e0b4a50755cf278cbadf71718b05e6f0c";
+  sha512.source = "6529a9dbf2bf038f418964a9e8d6cd7423abc2ab4faf569b983469644098bf5cc80892b4db1d7a4c90771a9495d7b64de08944d2e502c2b6e37b5e0c503eff79";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.2.0";
+  version = "3.3.1";
 };
 secdot = {
   revision = 20208;
@@ -39633,13 +39872,13 @@ simplecv = {
   version = "1.6a";
 };
 simpleicons = {
-  revision = 69396;
+  revision = 70519;
   stripPrefix = 0;
-  sha512.run = "f6f651493ec472e4be6286bf8a29c3fe024b883390c62debdbaf107915b0e2451c3303687a2a41dec8091318a8c6a0cbf6da1142278782189c498b73d03aecff";
-  sha512.doc = "0904648f121bc9b29f95f98b636b2edadc5fde6634a9303549d5588f5c52d2a87d6a559c8f714be7215ab3d17371105a1d60d1fb0731fcc62e34e5b8256fb64c";
+  sha512.run = "336d8cc4f3a20bb6b9f7f956dc09dcb3184a333b0e82f9b72ebfdc7f73c757fa53a48ce0bc31a1b397c42bda9826944e3004d881ee1d6dac4f3430919b4cb9cd";
+  sha512.doc = "93e23215d137d04ed4086269aa79dc8f81b70147f5115edbdf7e43865b20bb241275eda4b519db5d9a3857f36d956707d936156c002c155333d72b1f60edbed5";
   hasRunfiles = true;
   license = [ "cc-by-10" ];
-  version = "11.0.0";
+  version = "11.7.0";
 };
 simpleinvoice = {
   revision = 45673;
@@ -39712,13 +39951,13 @@ simplified-latex = {
   license = [ "lppl13c" ];
 };
 simplivre = {
-  revision = 68376;
+  revision = 70317;
   stripPrefix = 0;
   deps = [
     "minimalist"
   ];
-  sha512.run = "f9891f271cce6c795fc78719d71724dc1d07ff21d6877740745dea401be1e67801ab92bf4de2d3a379fb2e63084d902fcf4a9fe38aef40052d30e84e8b8a6b66";
-  sha512.doc = "d958c2e1e75bc22256a2db8fcfa2e4d5375b072b493a18c701cc44d4b3bd9a8e4e43291135ca21febb244a83ed865d7d855feb9979091d771150633170865bae";
+  sha512.run = "864101fbbd4d71ce75960255e0df965ff1dcaa7c323bcf34fe4893190c81877cb2b86d50559b20f8698ccf015cbcd111a3b6e052eb62cea28e9a5f62335d0121";
+  sha512.doc = "890638ab256f56c1a964e89d990ba57288fe4ff2d8149065b1a6d24b056eca50751a932c5ac91a453bcffd1b909a7e8c277c3e240d525a97bee259d6a40bf91b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
 };
@@ -39762,18 +40001,28 @@ siunits = {
   version = "1.36";
 };
 siunitx = {
-  revision = 68844;
+  revision = 69922;
   stripPrefix = 0;
   deps = [
     "l3kernel"
     "l3packages"
   ];
-  sha512.run = "adf94a225f73f132a84a2bcd40ac1f024f81fa10eb35be7ca6a41149960f508ccb45f967371aa11ec1a129251a3272361ab270a3ba00b595627489cac789f279";
-  sha512.doc = "35fe0a78311f053e98153fb435327478cd6fca48e1c9595736d4857cbb6e8882ddb20a89fcaf95542c9076c7a89cd8ad0c042e0faf0a8a7dc3a4dccc8131fa98";
-  sha512.source = "1abddd04b462232b62d9f53a1dec4f9815862fe208680e7b62aff00c6ce4649494eedfda81051e7d842d64ebec35043e7a38321212af22e3bf70cf9649bc107d";
+  sha512.run = "df5ab6600630dbb86b496aeb3c048137a950ba0ff56275ed4fc37a8eab517f45e53cf5aacb69e21bad7799b15dc0e8d6c2f827b2a3e41abc972119174d2f2352";
+  sha512.doc = "e0801e342de9483cb5a8cc24b63002c9cd01d2e38ab6945eb91b635ece0833cc1a1c6c12398a9e00eb6ffa284e11329ed53e7f5a708432d7ae1c361ce5390821";
+  sha512.source = "6df46783a825446b651644bae7c5d5ad7c0abd970153de9b360376b30a1d61adef46ca3a9887689fc1fbba3427a3d634a3bfb499b3d933bc6670e02cc396c170";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "3.3.12";
+};
+sjtutex = {
+  revision = 69967;
+  stripPrefix = 0;
+  sha512.run = "b9c366d594492e128f183bd1805626fc9cd7a226cfb2e8839047a7299027515213b279aaa46e51d3828997685625e5111d8da71b4f80e8063887612891594cc4";
+  sha512.doc = "b996ff331e0522e6b95cdc17f289f50974d62983976611b428bb49ef170e12a94784f96774e99e6488c88749fd78cf304ed7bd041970e14a65c40531b4f71f73";
+  sha512.source = "7a6fe3891a069b3f2bb9808a337b0812eb28b99f6502e0da539ec573b29892a63029f43e7aefb3e5d660e69ae8f26d6b4239cd34900776c1bb1cf49d3e420a26";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.3.9";
+  version = "2.1";
 };
 skak = {
   revision = 61719;
@@ -40143,13 +40392,13 @@ spath3 = {
   version = "2.7";
 };
 spbmark = {
-  revision = 69350;
+  revision = 69927;
   stripPrefix = 0;
-  sha512.run = "66ad2072225527c3ed64073ba5d33533a429b211794cf6cfb2c2623063629b4ad2869decea96237cda6c678dd35f46c6a63c61ee900a6a03c11e77130f911113";
-  sha512.doc = "128962629c38e6dda2752eb003c1039cac0e3ea01ae9ffef3b784d4f28c364fd275c1169dd812293ce5bd68a4c6aee422a23a63e9ac5b3da4ea5388e3ca44bf5";
+  sha512.run = "5734970852cffeddd5e926e407b15bb1058d010098a19ff0f96f5b292ad9b87a81e608400779c9b827e78db768a24f719f382e159ae1a472ebf1e7b7a2644aa0";
+  sha512.doc = "17281bda5938984885102aad59bc815c0488277bd5e4b0dfa7f0c48f7ecc613b7b6716dddebecc97586e18059ec06ca95f6757ef3a355252f5d2b8cfd7b62f18";
   hasRunfiles = true;
   license = [ "cc-by-40" ];
-  version = "1.43";
+  version = "1.46e";
 };
 spectral = {
   revision = 64528;
@@ -40435,20 +40684,20 @@ starfont = {
   version = "1.2";
 };
 starray = {
-  revision = 69002;
+  revision = 70604;
   stripPrefix = 0;
-  sha512.run = "4ab397ef4f6d8383efca60429971dc48ac6b0001604f0a53540c7f030a567606f0cb8d401569ebbd2727e83ee3a94f5e62680aaff3877a4225326988ac651451";
-  sha512.doc = "9db6912c1149b57a56c8e916525caf122b3d37346642886a12309463b0dbeda45ff719c300dd09460da51518c8a91a99b0e4aa3c80e188f09e167c1bddf31b9a";
+  sha512.run = "69d5bbdd999a47e4dd15d01b9b34bbf4bcede27dd60e19c7c10b4d85257ca38448b924e900c109d2d40e5ddc1b7a0e1b9abf76248a60d08c44805c1d1ac7d814";
+  sha512.doc = "1fe545c98ee814c1f6955a1b75ffdab665cb18b071bc1c833c9a595983c15eaa211b990666768ce0e4eabb336ec11876ebc72141e3cf9aca2dd9d6686d5476ba";
   hasRunfiles = true;
   license = [ "lppl13c" "gpl1Only" ];
-  version = "1.5";
+  version = "1.6";
 };
 startex = {
-  revision = 35718;
+  revision = 69742;
   stripPrefix = 0;
-  sha512.run = "840a60057867ea8439c0497eb22dbd8ca8c8a2375887d74ea383a8a356d5de34a389db3df5f4c41082683d1108a0f88cb31c25e4c3a56a27e45b8ff5b62da4b5";
-  sha512.doc = "d2076580253889e51a07ebd094daeb10a9ebbf2d9154d288460a84d7b2a581b849d1433a442d8eb911a9d2110e87ae4eb0628567b50eac95cf9c6866d3c34b3f";
-  sha512.source = "af1bdf22db048334823bdd18fd87fd8729c0bb4cb729ee53271f7e0b9ec4cea243840657e1a8ebba61728755d022d37495ef40f9962ce8e203d402b71d2d45cd";
+  sha512.run = "65d5b1c2f5b49f3ceba1fab6021ea4445aec25f302145586331468d727a9cfd992e444b0e53f3aae132308492f15d8f76c5c18cdcb405d9d06dcef6a443a4e23";
+  sha512.doc = "a4693b80da94c5644e85c43b93a73ca385097fd2b395856d497e5a138b54063d98d59a8957937d2e2e6ef8948f59d0b1cf74defe50de0b7c5c0fe3c1da83c9a6";
+  sha512.source = "e3d11a95d9705f18241f2f31e2dd21bace280b82d9edb5de765f0970ea9367b2f502111222837c328486b68875b59828d73b718e9fcdbc4b5b5b16da4fa900a1";
   hasRunfiles = true;
   license = [ "publicDomain" ];
   version = "1.04";
@@ -40773,14 +41022,14 @@ sty2dtx.binfiles = [
   "sty2dtx"
 ];
 styledcmd = {
-  revision = 65262;
+  revision = 70496;
   stripPrefix = 0;
-  sha512.run = "7111296b41df8849fcc01820dc10468a05597d5e7db5f0e45ac4bebc2c6a66dceb3042d645b51dd65fc2cf4987fc38c724a539f292a95c0f552e374128649830";
-  sha512.doc = "c85d0fbec0e9927c29f1684f715b2c6a9897ad6ea41580b09d9af4cab293bfa7f16b65d1439706ed85282698ab245112050cc212813cb2835666380802ab7a79";
-  sha512.source = "e1bec216d87d2e1649b9206dc2facb99486c6d1f2bcddcebd9c1dd9db9f2551c3043493df36bb64367a6e71066f16fb0ab3a48979f6554482a824cd8a83e3597";
+  sha512.run = "59af3b3ab6b045533167dfbecc3a0a124fb3f8098112ab9b80cf49a3c5c20323122a488019ec3079dc596029a38e45ba679c2448611a8f90108f8b2b59f5568f";
+  sha512.doc = "0c096994a7027873f97ac1bc5f9ff1439b32cdc9b6255e4ab9fb955b8c4e60406b152a56c3a6dabc0f5bc41b26fb60ee0ba94e4d9c0202d93d5bd8f0e422ac7a";
+  sha512.source = "cc8de429174607b5a27123c2c580a9cd35858fd988bf4458d7522984f8ce0d24223f9f31bfef41152190f1533ceab9d87dd8bad368446292d9b495161d228b00";
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
-  version = "2.0";
+  version = "2.0.1";
 };
 suanpan = {
   revision = 15878;
@@ -41420,13 +41669,13 @@ tabularew = {
   version = "0.1";
 };
 tabularray = {
-  revision = 66276;
+  revision = 69926;
   stripPrefix = 0;
-  sha512.run = "49171a748b9fa046d874bfb2aa44d2696120fae78c55314853090163228d6484507c281f65c7ddb1ba952b22c14d91e3904e779116adea69166322b91188b980";
-  sha512.doc = "98d37bdd677cac76657848d0ef5f638f77c44017c6320bb4122696672dfbfd459afc3c2ef44431da7340d9831c319998f88390300ce2f53a355239203390a448";
+  sha512.run = "bfbce523764d979d0ab24992be6b0c79dcc20dabbdab195496f11e21f01c349fcf0dff8f400b6833dc046a74e27468b496b99fb65d1aeb820d7c4077b21525ee";
+  sha512.doc = "2b58577fde437018269468d81a9f50e39b6cd36803874dd2f09e7fe0ed0fc2f63c6bc195fc433b997e65dd43ae15cfbfeaadee8f46fe63bd32bc3ddf91fd8507";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2023A";
+  version = "2024A";
 };
 tabulary = {
   revision = 34368;
@@ -41467,14 +41716,14 @@ tagpair = {
   version = "1.1";
 };
 tagpdf = {
-  revision = 69165;
+  revision = 70259;
   stripPrefix = 0;
-  sha512.run = "56d464d44796cea4f20d94a3f58275f2d4d470e3f851a14c0a63da738e8865a1276a7a06ca77c00a2c9eef0b082c1327be7645a96066265a6d412b5ae950bf43";
-  sha512.doc = "ceaa96192541cd2a17c996737dbad46272c5b76e9af6176ccf4c6b8f1baecf2d04636cbf8dab0563943dcbe5cc72bc36b1d8d3438f1b35a5d239bc3da81f03ea";
-  sha512.source = "202a66085866eb4c989278ee9a1cb9143c0d0bfaef6f2bb810736ec86d649287242b15303b128f80643074f94213f7b04de46895b324cbe13c9bfe1027ed687f";
+  sha512.run = "cf20cc71bb96599498e470f62f125a52f8457cd6a5f150a171c51c379c9d75d6ee3116d09a281dc0c2a079182a3ccb70c8eb12d5f8679b4f8839f63ce4da95fe";
+  sha512.doc = "41c3de45c71f44af9c022c0a329b9e6e34956f15884d6da96373dba008b14058c851f7c51265b0f408f5154233a9e84979395a9a970aee36ac4d465209572722";
+  sha512.source = "bddd07551ca8dbb27da3cf82b5caa8a6a89de15b4d13d50997ac0854e4e9b2e480cb371f7843af960f698ecb6f19ae376298fac3560488c3072b141fa1ccae75";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.98r";
+  version = "0.98x";
 };
 talk = {
   revision = 42428;
@@ -41558,6 +41807,15 @@ tasks = {
   license = [ "lppl13c" ];
   version = "1.4a";
 };
+tblr-extras = {
+  revision = 69776;
+  stripPrefix = 0;
+  sha512.run = "d47a63520ae3b3d8db6054357bace701b890d2b6c325d620d69d3185867b3c0092dc9702fdea4a84b56a3e192a9e01c083d3c449cc597877a8efa1abe9f6784c";
+  sha512.doc = "c4f99c06e5ebea7bc88806252e8182cff3282ce6d3eb0a1a71cea97bb132304049a4077c57d0a0d0bc8ea20c20e63b4299cad0d9c06b49157ebcaa2e85d3af5b";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 tcldoc = {
   revision = 22018;
   stripPrefix = 0;
@@ -41878,12 +42136,12 @@ tex-locale = {
   version = "1.0";
 };
 tex-nutshell = {
-  revision = 67213;
+  revision = 70378;
   stripPrefix = 0;
-  sha512.run = "cb8d343a8b070c6350cc922c74d5dc08ea9f6bc92397e5325591913f5b7ff01704b0c5009a8c8083a47baef64190b6640c51a91216af54b8505654d3105f34b7";
-  sha512.doc = "50cf98a9ba348f6814274cdd195a2ff9129474e61e858932f8e8c256f8108f622a088b0bed586c25e199737fbe3aaaa11441d6ebaf29fb0974ca822d662b79e0";
+  sha512.run = "46f2ee7186bbeaebf250eaf2b5768ef4827bcd3c87a037fff5bc88d45c749f65e25f60a02639bf793e50bc66a11d9da365f4b1068143ab5edbf11c59818da02e";
+  sha512.doc = "cb3d558047b0737a0dedc904f615c309be9b13ae53f99871d8facc62c3efcd00b933a67f496d24d9d896c1b96b8f21e257487b610633a73b30017b87e98bf70d";
   license = [ "publicDomain" ];
-  version = "0.9";
+  version = "0.10";
 };
 tex-overview = {
   revision = 41403;
@@ -41929,28 +42187,28 @@ tex.binfiles = [
   "tex"
 ];
 tex4ebook = {
-  revision = 66621;
+  revision = 70117;
   deps = [
     "make4ht"
     "tex4ht"
   ];
-  sha512.run = "b0dd7eee40daae5cd87b39c8d52ee99569992dfb3f9d438cb43f2050f347f33653b5932c6b159b3d24382971aae5f631f9e8ac8e2e3219130ed346d5e466c0d1";
-  sha512.doc = "72d0e9550cdc8cd0f5469e44a9ddcbcd10c8141f68479ebb9b8f8af3e2233695df05acbb875b80de0330fc29d774b7d3f3c9fc1f249c04e60944ae9642326a54";
+  sha512.run = "7b2cc47523db8f9b987d2423e10d30d50684f2cdd45dceb846a0bec634ae5ee1514312d8cca46dce701ba1d86c9cfb21f0a0bccf67376f453fa5fec99165b19d";
+  sha512.doc = "6011f8dbfe4308e17e8dae72227404374afd1c47e8ab2568248be67913ad1f170d7c83cd01a9e01e39607486579d2e9a1f0a1bbdd3230299109d12a3aba536db";
   hasRunfiles = true;
   scriptExts = [
     "lua"
   ];
   license = [ "lppl13c" ];
-  version = "0.3j";
+  version = "0.4";
 };
 tex4ebook.binfiles = [
   "tex4ebook"
 ];
 tex4ht = {
-  revision = 69412;
-  sha512.run = "59848f9a4accb16164f2af9c7c26ae4a28af826116ac85f68fd1d9a399b979cff18e0d15ad85cbcdec5a955a01da1f46fc7ea6c817a216cc8aaf0df88c5b9ef6";
-  sha512.doc = "6756a4022af3e42e47e090638e114a2d4c4a50bcfef7473bb8ebac3a9d2adea6153b7596144f65955cf02a697c0df47a631877118cdfe8b25a00ffcd5b1737de";
-  sha512.source = "c1c3746084f4eb88f6aab21c20168e9a520f4757eeec5d6742e905d81aff44d5b2b0265efcad2066fab8669a59186a05d634bbe87f28b44f6e58cf3a0fac52ae";
+  revision = 69739;
+  sha512.run = "c78b1daae522e9dfb8a0c3b49e04cfa57d68bf96555cebb5ce2700f87748e7c7f5092ad1329f9bb03d1c3f2f11eec58653a66aaa51e295b8aeb7f3606d7d87af";
+  sha512.doc = "135b1475d6b4f8650a6e9363caeed0c769ea6ea2512a585b19767ebd440123f39206ebf80b708c37dc3f269b9dbec9bc91a306c36055324e883f679338fcca16";
+  sha512.source = "1366b563e320f55c4a005e25520b942c9d4e6a1dc6204a3f4e5416fdc6d682cf1b3829233780f4fb7ea81881b3b32f741ab87c2496bc75ef45993c4769fccda7";
   hasRunfiles = true;
   scriptExts = [
     "jar"
@@ -42082,19 +42340,19 @@ texdirflatten.binfiles = [
   "texdirflatten"
 ];
 texdoc = {
-  revision = 66227;
+  revision = 70583;
   deps = [
     "kpathsea"
   ];
-  sha512.run = "02e7d23e20983f96d05725eb91a4f8bed6bdad0051e9f3c152f945e22255c70e7c0b2d93eeca1fdbbc2ca550a7a15d46540ecbb383575b03a4da9bfcea4e42aa";
-  sha512.doc = "80ddcd5d32e02ac87ebba175b3f2e253ca02daf70e38ec5a6db1a0e595349ad33d6b7cf7e95f8af7de621600a58b952927edde04319adec13fa139fa0b634970";
+  sha512.run = "f81535eda231bd03ffcc2c46bc05d04f73f6ec7c6ff0c436da0d42417f0a8b21c444489762a33dec5cefebbee9113f403205b621e51ee2ac33a2b23aa0eff431";
+  sha512.doc = "fc6d8041f21e00214dfed376b29bf47c52a24f09358255d0587c24eb1a046a6d8e65c448109c63d485f76b2cbe90ec8b609c20bbd8490206224457b1fca2499d";
   hasManpages = true;
   hasRunfiles = true;
   scriptExts = [
     "tlu"
   ];
   license = [ "gpl1Only" ];
-  version = "4.0.1";
+  version = "4.1";
 };
 texdoc.binfiles = [
   "texdoc"
@@ -42169,9 +42427,9 @@ texilikecover = {
   version = "0.1";
 };
 texinfo = {
-  revision = 68342;
+  revision = 69818;
   stripPrefix = 0;
-  sha512.run = "5f79869d29a21aa2d5acd22c2c3abbf12b00afba2564dc9ea779c8f4caf5f44999ce27635d6ea01b9d7e441388e63f1f31238e47a3a68a436bbfe39254920722";
+  sha512.run = "5a87395dfb732e8cd213d50c3bc3079c4c6dd6a070e1be580dbe45c02b2c9f0f3d5590dc36222d0833c262c6412024e55f0881e92358715a585dda064b964e2c";
   hasRunfiles = true;
   license = [ "gpl1Only" ];
   version = "6.8";
@@ -42226,8 +42484,8 @@ texlive-ja = {
   sha512.doc = "464442dd7f1e77598e7bdbb6884453f5a4a2f57d5d8b028d0126e5bed50b3c19f9fefe13b602ad1aff3334e45e8082f2a1328f884ade2ea92ba4b054a41c4b5a";
 };
 texlive-msg-translations = {
-  revision = 69346;
-  sha512.run = "b7d8293947eafc561873918f658e372feafadc7de9ff8b2b5c65bade32b40bf99c1172fbb9737cd8e5d2c057dde88e392561db36c093518f49249198646f7148";
+  revision = 69796;
+  sha512.run = "470b395fc5ae1271c39ca5e85d7432e46ee2379a338120fb442542fb3513508dfe8c1326cf60148a4a3f58cbc990913dd272661c6b9a942f167ee6d6d15ac7dd";
   hasTlpkg = true;
 };
 texlive-pl = {
@@ -42243,12 +42501,12 @@ texlive-ru = {
   sha512.doc = "40e8b29f29ed61addc2b9e7ce4b73d12bf2e59f1c50c65e59e9c8cac5e6c3ef264ce2071b0d54e15f5029c101a51d0efcda0144e113aaedc714eb1300aa9635d";
 };
 texlive-scripts = {
-  revision = 69407;
+  revision = 70585;
   deps = [
     "texlive.infra"
   ];
-  sha512.run = "e3a8fe45541ba71128fc9e269ff7f0a3d45b2789df2d689e741fc87eab51b2c8021ac7e0899fead8d1bc043538d16589663932c32507b704fddb095c028cdb18";
-  sha512.doc = "c0d2c8280df1f6ff0f6f6d850c95a82aa7284d5e637cdb69518e419fbad3404cdae38ec58a8e7b452d0be48ee107b05e9b5ba84cfaa5fc81774d132c3b184083";
+  sha512.run = "fb5abd894d2ac7021391b7ee270cc833131c2a30f406e8b63e1b3c713abda08c3a28a30067d89e905fa40d7092c9529e8ed954a020833724cc867c6f2eab5272";
+  sha512.doc = "3d497cf7940b0b6410a537da324da33276b8af004c00b54462f40986d7a2af818c817b57663d47c714c3e4237dbbe622627bb64dedbaf2017732bc76e59492f5";
   hasManpages = true;
   hasRunfiles = true;
   hasTlpkg = true;
@@ -42312,9 +42570,9 @@ texlive-zh-cn = {
   sha512.doc = "534c505455c5f9c73803c140a340df2882a97516e15f52c5b65695b7c626404336a0e4f6190155b5bda1b9a86d7f4d44ac294bccec791ec6701e56d13c00d71d";
 };
 "texlive.infra" = {
-  revision = 68903;
-  sha512.run = "077dd2060eb3a1132bb392615a36684b42108781e25610bfce2c9d22d743f8abf01f8c79c2b09a8d2a2c1edbbc0a33eec51ab1b0ff07480c0d4ee510e8680966";
-  sha512.doc = "2674fca1b6f494d21ea2e7993e4da75b821ca9c2b02eca47d3eb0d4512a985e2cd7900d6bc19c1af93ba59857cfa82bd3ee61200794522ec755348c067817e74";
+  revision = 69740;
+  sha512.run = "d3ef23150149d240d8b74f5b9f6126de90f44960238deefa94415310586790d5324f9fd83478fa4d726ef6dff516f5382222f56933599b384101521a66d0a248";
+  sha512.doc = "fb06ad12bea2d062dd5e2049e74e096064198242f010cd6e04e2d4a92a7fc39ae829003c7ed3f8347f96c99c31e26ec44073b45ed3ebbe9e18fc78e801d00c94";
   hasManpages = true;
   hasRunfiles = true;
   hasTlpkg = true;
@@ -42348,13 +42606,13 @@ texloganalyser.binfiles = [
   "texloganalyser"
 ];
 texlogfilter = {
-  revision = 62792;
-  sha512.run = "8012a0cca2e408c60a5ead5d59af92ba4befffe184f298ba16f6b57f1487d1e4cb22301a88d61748c8db0fca444bf861e01dbae5335aabaeb2c25e3f94f1ff8d";
-  sha512.doc = "76fbce938945ebfd6bfb78022219fe217b7e6f0ae3c298e1bd9d0c570bfff1100d34034475f2577a9676e01a5bf64428664bb5cce4fd65c7d0cd350c9f156d5f";
+  revision = 69919;
+  sha512.run = "cd70a50317af4ed121bfca914ea3083d11be2087b9507a7caca97238ca5f62df418b2e059feb1d24492c87f57096f3e3268ba4921f9cff1709d43bfa6be29f25";
+  sha512.doc = "7d83863001f4c57018253fc1ddcb08abb847a76307fda75c85f991670fcd8de006cee3c6292696596fc7be5eb752ff38fe63215e2a80a51d7a35e19dd8702914";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.1";
+  version = "1.3";
 };
 texlogfilter.binfiles = [
   "texlogfilter"
@@ -42368,13 +42626,13 @@ texlogos = {
   version = "1.3.1";
 };
 texlogsieve = {
-  revision = 69072;
-  sha512.run = "22822a9ea14652674238224914fd84d9ea09ba1a19fd8eca288fad52c35b0c7e0a0003730b1214e9f358d068eeda191a92dbb2cf2e14bf29297b61177af1a1b4";
-  sha512.doc = "507ed977b9c272c789fabe42b48b60722c09f0548c4f857d9f3207651b05ac593a6e2b94a53f66527591cc3bc15b61a3849a540db3923d196f135dd7cce11836";
+  revision = 69436;
+  sha512.run = "a4e94f5674cc2bb54f03e285aa18a19d3c389455f2ab15e40998aed6d211435bde3fcf549c989364673bc77a93458e4146b0e662d4bd139e18880a36d4445832";
+  sha512.doc = "47d11f611bc3a440dab6dea06cc55053802d2b78133eec21af4eb8d44e74b013a4dd8df0667b946afcbdd8132821ab1429f30f74da610bc1e1283793d465c454";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "gpl3Plus" ];
-  version = "1.4.0";
+  version = "1.4.1";
 };
 texlogsieve.binfiles = [
   "texlogsieve"
@@ -42481,7 +42739,7 @@ texshade = {
   version = "1.28";
 };
 texsis = {
-  revision = 67930;
+  revision = 69742;
   deps = [
     "cm"
     "hyphen-base"
@@ -42498,8 +42756,8 @@ texsis = {
       fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" ];
     }
   ];
-  sha512.run = "79a39678c4b458877737b63fdfc820adf192b4a3c68eb02b9727ed42c16c002ad6ac7d12fa6e45a768eb58d394ba3610ccee4d39de8b73350a39b958665ae779";
-  sha512.doc = "30b47b165484654c1956a1862a1207c219bfae9790f3daa1443bf97bc5e5fd5aeee734b3561c433061987077e84a8feff7eb886ae6d914122eb218bfd0fa57a3";
+  sha512.run = "f6ad2f3d49377de738bf37bcfa1658a2977ea3d399aa4625e2482c5292e65596c67c8912ed1b2d23b1a4611ea2cc2281585b558ba2a5e7f65638899f714c267a";
+  sha512.doc = "283e9cfbef23e946a14869774649dc4afb821b9a284841c0d8ff45ebae4e931ba692600974afdf87752160dd71ed32496c46d3ca7e91cc26cfb4d5bf902b4132";
   hasManpages = true;
   hasRunfiles = true;
   license = [ "lppl13c" ];
@@ -43676,13 +43934,13 @@ titling = {
   version = "2.1d";
 };
 tkz-base = {
-  revision = 66115;
+  revision = 69460;
   stripPrefix = 0;
-  sha512.run = "1bcee5c2d6ce967369dbd6fc7c55a69793410c2d1a4de6c66c79071a360c3a0889c014eaab27ac73c771424c0d0655cabe62f9e2514dc13de418c336ea09ef80";
-  sha512.doc = "3c2f7a584b1580c4fe15a5945b45a912960bff6c25ad637be8a43ee82b752949e1228008179d7a311b6961b1d0d4aa08fc44daa02696d2fdcc51777512db80c7";
+  sha512.run = "a26cb6c8fda3baad6d455a989a4c0f46b5e3b1364acb8f32a866f5ed946344574d29b310c2fbf4e3534dde555d068ae588f9e04b430d15a59ccfdedfe31bd2ca";
+  sha512.doc = "9da2aa2bad4901e14cb4c8fa747af000de891005c38175bdce88d706fe83166b534f0d5b39c8557e5ae5975b8b58212cfafee7d2d22c07e76d41ba77ce1403fe";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.2c";
+  version = "4.21c";
 };
 tkz-berge = {
   revision = 57485;
@@ -43712,22 +43970,22 @@ tkz-doc = {
   version = "1.45c";
 };
 tkz-elements = {
-  revision = 69213;
+  revision = 69715;
   stripPrefix = 0;
-  sha512.run = "66380dcbb489c8afd4f916024baf3008975543424a391e0449f261f9fdb66118f9dd4bc8ad988a4f48ed2a770daca48fdb98243456025d545736e61e2b42aed3";
-  sha512.doc = "4f6630df37eb9192cd2b9d0f0b4f687762e39b83ac6b4249e86defe945093ead57dcad5414a0ae1edceca75eef7f8be706b3b626dd4557b2377354d8717bea1b";
+  sha512.run = "cf3694ee7c964b32572bbba7f0f90f9705f546ca074ca566d7f9e104424d9f3a06c804dda89e83496a5749341778d676742ccd1d11fbed4267b025944d876a03";
+  sha512.doc = "041eacf3a2657e364db72c12defc437ae336bf4f4250d35de3272f27821b01b4589f102cb4232c7eb1afbf3fa6474df022a0f40a79129b17d2325f81694bb4ac";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.72c";
+  version = "2.00c";
 };
 tkz-euclide = {
-  revision = 68747;
+  revision = 69702;
   stripPrefix = 0;
-  sha512.run = "14e39eb45f188f8563b8c49b16cceffe62117ac3cb17d484d1722122b6f3ca927b35ed0dc15cf0650d877f584eaf05f6473dcd8ca83f4766f5d421a07eced464";
-  sha512.doc = "ba09b1cbb47c65ab74119c7e52fc4d08c3174ddfebe0cae6c3b0ad9954d40e78bb57a219acb12584cc67616d51d70212de284a4f30286ecdfc3bd70c4ef9bf8b";
+  sha512.run = "ad51786dcfc0bb75edc35b53f753972be5112443901d9e3fb42707c33b08ce2ee16e66443f59b6e6d84767fe48088c1ad0532a7c9fccb70da29888db607f6b68";
+  sha512.doc = "8225a344b3c73e3fe4bf00d36517f3fce40cdac5580b605b3571568c58737d8981db8de1639fc5d5cab4ae881898dffd7799b390d6535dcbdcbd3f9264aebd03";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "5.04c";
+  version = "5.06c";
 };
 tkz-fct = {
   revision = 61949;
@@ -43865,14 +44123,14 @@ tocbibind = {
   version = "1.5k";
 };
 tocdata = {
-  revision = 69402;
+  revision = 69512;
   stripPrefix = 0;
-  sha512.run = "17bc7e29a5f4d03374b19254c0967634de212ee47e0f00be9c3a8dd9a9a7694a8cf14b9da318e8337a5be00f420810ee27a115c7deb8f97e1a02ba98fd3b654a";
-  sha512.doc = "816da5a5017dc7372d40a29b45f0279629553e8399e62ce3da4871e9597017e00c8a4c39928462d5d5f168963d930247081f483e9685028cbfabae9f74098541";
-  sha512.source = "9d8767d2fc97ce25cd6c540abe83a1b1eba920f16cef02c9451bae34168812456d8b52a38ac7bc88d484b2a02d2cea774f9def03eb3e82bdd9411df0b4421670";
+  sha512.run = "b1d8fc5f578eb9507e1271fb19d2e024b272b0c23fff4ca11177c46fc2ec69777adca4329960787bd52c8d9862010547ca8b4378ad0b8986c503576be2930cab";
+  sha512.doc = "6fe648771c02287ccacf991b7b0e106e9e3917e882993c6203314f97cb20d8e0ce873246abf7fe11d107a22cef0fdc02a7bc89278a6d0a14d48cc6838f17158a";
+  sha512.source = "c29fc710ccf0952570aa682af419d1fb2432a4825b9fc8fed5368f8004ff5355250df6deaa28d7168258914711f31b3f379fe7c9383255957092676bd36bad72";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.06";
+  version = "2.07";
 };
 tocloft = {
   revision = 53364;
@@ -44527,6 +44785,15 @@ twoup = {
   license = [ "lppl13c" ];
   version = "1.3";
 };
+twoxtwogame = {
+  revision = 70426;
+  stripPrefix = 0;
+  sha512.run = "b2275f66d1e53f031b6c512754b7dd9fa2e7a078bdb08de64cfd51cb8c66919027397ecc6d740a7fad741b9468442aee0f93b7d9082ca75757d69437de05b001";
+  sha512.doc = "1ea1154857058973b8ad02656caf68ffbec00ba7b3a51a985fb4367cf8622fc9a0d6848082c80cb2aa67fbae2fedb8d134ebf2361067704ece953c1b4651a17d";
+  hasRunfiles = true;
+  license = [ "asl20" "cc-by-40" ];
+  version = "0.2";
+};
 txfonts = {
   revision = 15878;
   stripPrefix = 0;
@@ -44746,14 +45013,14 @@ ucharclasses = {
   version = "2.6";
 };
 ucph-revy = {
-  revision = 68224;
+  revision = 69750;
   stripPrefix = 0;
-  sha512.run = "9b8cd59c35a8e94b04de4490fcf3637b75a4f858383d0d8ca263346f08d10a7ae8dfa2bbf0d5800329e1a90c40110a7767d6af6d2b24b4f94854a78bcc77aa15";
-  sha512.doc = "18319c8a2137d7d2642dab7f9569b6073ab3ae1657c51c840a16821297539ad38fc283efdc98349bacacfbaf6f674b4c4a3d56317757af74de89511747f852ed";
-  sha512.source = "1da208bbfe27b5b1ff7aaab0e808ecf65709913ac1636596261e6421237c5584eb4028accd27d9efee18045fb3be1176044cea3b0dbb083927dad55543a8de7a";
+  sha512.run = "f9fb2dd19b7a963308e5c5058ac990ce3b944377ff6eaf52b26fcd7a12087c75bbb464e5e1155a1c3340e8fb3fca65b6d344d76f47a9a386fdb6e5425303f81b";
+  sha512.doc = "0ad9f32badd36c033dd3d368e507518bd27d79e3bb94747b86622c2e41b81e87b5db673ddb4cebf7a88df4180b7cbb2bb0826ee19990e572c5e5ff33394c05f0";
+  sha512.source = "b8245b1d950ca2af99683fe87f3eb5211cb4990b0911d11963cadbcc9c9d23d29bda0e7bd18a12184c5ac2501e69b67c89844d061c00f0e1ddb842d5d51d7112";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.0";
+  version = "1.0.1";
 };
 ucs = {
   revision = 68759;
@@ -44784,6 +45051,15 @@ ucthesis = {
   license = [ "lppl13c" ];
   version = "3.2";
 };
+udepcolor = {
+  revision = 69701;
+  stripPrefix = 0;
+  sha512.run = "010172b3730b31b12a6f9e425203f9064b7c880e5abcfa0ed538ffaedf3517dd394030d55501b48c1582036bb78153d7d4f581cd2c396d658db58faaa00c0cef";
+  sha512.doc = "33e7057cdbcb2ee342d061194d5b0e36a1e3e7fd48c7e1d728b6b8b4a2b6fe1c4b0a4a9185b4cfa3a483cd084f93ac905a98f7140bdc0a8e4f37395bf9a55ffc";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 udes-genie-these = {
   revision = 68141;
   stripPrefix = 0;
@@ -44823,13 +45099,13 @@ uestcthesis = {
   version = "1.1.0";
 };
 ufrgscca = {
-  revision = 69042;
+  revision = 70603;
   stripPrefix = 0;
-  sha512.run = "ae9f69feebcd487305cbd94661af5262d32e98f6d65dbfa8b5a2760b93fcd482aca13b7193cdb93d3f518b8e3e3ebe31275af53d34e38d4b944ee36588d2cebe";
-  sha512.doc = "71dc771856ad8f31a8a69845128ae0bcc9fb7c21252e728d7f8914f2040d5550c397da8a5e7d5c2cfcc5c8a7f65328dc5ded3036f4dc786d4802ab61c1c2063c";
+  sha512.run = "4232e58cb76fc9e6e9a24fdc760dd189004dc20a10c9b27265a8d2449d8ff4f741ad745e52815e2b729d78896d682a9b11b96b3eb01bcca7ec4a4cc8f4a3c893";
+  sha512.doc = "efbfb6a83e5fcc88ce59b8b008c961b3e7e84266ee7b8c8f5f129f3625c1018352b701ef6fb7f8c1f41b21655da6b26d9add397d54b7bab4fe7dd74c91e327d5";
   hasRunfiles = true;
   license = [ "lppl13c" "gpl1Only" ];
-  version = "2.3";
+  version = "2.7";
 };
 uhc = {
   revision = 16791;
@@ -45017,13 +45293,23 @@ unamthesis = {
   version = "2.1";
 };
 unbtex = {
-  revision = 69307;
+  revision = 70325;
   stripPrefix = 0;
-  sha512.run = "dcc212b6a524f9634a686a78f2ec6d3cf357afe966378adc6010be11597912015f5b22388656068476b4de0f24e7fdfeab78003f43570890028654a937be0af0";
-  sha512.doc = "84df2e08d77cad569a4256b615e739996580acf12c7e3c62a0789ee553a84ac0dedf983a77e7d2b96e26b9dd96c0c43940c1c0644babd945770c74f54e4a9923";
+  sha512.run = "0896c89b0fe51d943455fddd654f67b81aeadbc83d2a66eda450b9152f6d3ebceb4854c3bcb03c38f4ff0f0ced0b50c2e276b2ffb306ead72be05dc1eb02893f";
+  sha512.doc = "e398de7bde9696776778314665d6cf37f55c0faf33cf3dd4acbd14d82d7d303d4a0750119aa0fc8e8b80288ae7219020ab43ac78c7d125a54845277a8ee2ead7";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.4.4";
+  version = "1.5.1";
+};
+undar-digitacion = {
+  revision = 69742;
+  stripPrefix = 0;
+  sha512.run = "933038ebcded30e59b2075a064c35a00e5523fae80a6a7091d8a0c44a043d4e9150b68f1cdd6814b3a0346286086b8f5af7b68b2de2c32be1c38684672afc848";
+  sha512.doc = "bdb12e362af8ff816c0cc43a76974a8f1ab326486a6b103430fb2139f22cddd27514d2e486cd969179be75684bb6e5fc0bf959f8d8c868ce3d5fe466097a0224";
+  sha512.source = "37d9e4d5872cca1cfe157233b56050a4f599038f3d552614ca11125dfe23596cb81cf5059244e6f3d702b338558d687b5a28a4f96a18c0c9d2b038a31484197e";
+  hasRunfiles = true;
+  license = [ "cc-by-sa-40" ];
+  version = "0.0";
 };
 undergradmath = {
   revision = 57286;
@@ -45154,24 +45440,24 @@ unicode-math = {
   version = "0.8r";
 };
 unicode-math-input = {
-  revision = 67089;
+  revision = 69591;
   stripPrefix = 0;
   deps = [
     "iftex"
     "l3packages"
   ];
-  sha512.run = "94b91d68c4745c1773ba5d3888b2f16f8ea353d3b8041af4fb842e17b4f82c982ff7a0cb92bd59764268e550b3599c8963a2d13cc32b495f855a131879d2ae5e";
-  sha512.doc = "a93a8517f460bee1b10a9a9619f5232f41015d0695425da1dd447880b422273135bc2a287e3f988ddcec82c1b77c2d2d1848a3fae82f2ec6115f655ca667b873";
+  sha512.run = "23396fd1b313414ec1f6181646651a4c304a1f937458111bebebbb0234ef5e007e22dd2590d87c2a58514cb5794036da25801901f980eb3a08fb122e9a107cc6";
+  sha512.doc = "e41a989367baefc296d7a890eba2a10f31df4e047b174f34d1843f632ae0d151e34e6290d6b1e86cbe949e7808d59b4523ceaca89aa69097b5e8233d901adb31";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.0.0";
+  version = "0.1.1";
 };
 unicodefonttable = {
-  revision = 67066;
+  revision = 70354;
   stripPrefix = 0;
-  sha512.run = "aa387053dd18c6927256690dba7e5c47a586466624f4dd36aef20b5cfbd9e1c5190ac4c5e45b5fc7325fbdb9db1fe30c42b4b9bdeeebcc6ad404d27ea36d1b37";
-  sha512.doc = "8cbfcedf459f9fdd970658ab7a462c1389e1502425816804c44bba79a4be05fbc2a6feb6769a0c693e208f2ee0ff0765c29dd7eac9afe7a5a11d1e43d636910d";
-  sha512.source = "189a69754a90457b5e99a099e65a4e62c4dc613597de7d4fc3818609a301f6da056fd88e6a6cabe4df8c1e18c0441a35dfb87d24ce9142f7fdb5e639d89c8ac8";
+  sha512.run = "08b2d90bed46237ebfdf0e98c45696b4dc1ba7f6f3ba2547fab2b129d6dd96e836dc23c345ccb45bdbd370fcc706e7a127a10f43aef9ea08ad75227f0b6b2857";
+  sha512.doc = "823d26c705d4b6154ddd1324ac6297f97ef3244b815a7da23b0079c5bd94ece9391407432cf66b7bee7422dd55514c033839b31ee04262cdc1a75e5e11726e42";
+  sha512.source = "ea0086f6d9c3838d0fde1baef225c4e9ab57470033749e6bd4a877d6aaf85a28ad4c557b44f7ef2970db1c636c9dfb43ace959c2e41bf20f2daef3418ad08b60";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "1.0h";
@@ -45390,13 +45676,13 @@ upca = {
   license = [ "lppl13c" ];
 };
 updatemarks = {
-  revision = 68163;
+  revision = 69989;
   stripPrefix = 0;
-  sha512.run = "9718a99c7a6775d80f485839d71933c788fc18c8b4d9caa78c9ebcc159f02ae53a87ba1479fdf231938220eaad9006b817eb0c72c9016599f61008e314f72b39";
-  sha512.doc = "76e504743dc8b68bb7749952fe63b7ac4a0b32f36a3c4b85b5391bfaeef1c9d4045f681e2a7b50786da1a7807126277ccc61657bc4dc2caa9893d858ba71b4e4";
+  sha512.run = "7d2f78253c7afcb0ae7e98ca467e6d00dafb92bbe232e99cd11f2756c3277d4bca1688e2d88cbd214580c99fac539c9d01af50115647d5609f239be906c3ddce";
+  sha512.doc = "03595b62f116276240b44ef558fcc164e49c8d831dd068280b5f8be70caecb9f165ae3340c2824803ac829f38ea3eb143955a59c3ef71ddde873a2a873185ad5";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "0.2b";
+  version = "0.2e";
 };
 uplatex = {
   revision = 66186;
@@ -45615,6 +45901,16 @@ usebib = {
   license = [ "lppl13c" ];
   version = "1.0a";
 };
+useclass = {
+  revision = 70447;
+  stripPrefix = 0;
+  sha512.run = "d1343768b6e6f89a31c437983db7d2cf2e52eff35054604719b08c5ac9ce9ce936982ce7885010e8f4929208a944746e07f28090099eec3ac3955bbf6805c396";
+  sha512.doc = "9904c849d24426fb3139d92a0a502af362e12bd8d7d993da422a0e5a0ac0984d3a6f8504d0fdf88e170244877300efa1b366ad11e2683db75edd6c7fdc8b2a1e";
+  sha512.source = "c9e2083c974e78991310afa76d9b49ea5fb8bee62057aef1dd0f92fe1e26628b4bf0fb7e0dbb1d3dc734c307b8b6cf536d38e0b68ce825ce5b7605e0b74d76f2";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "1.0";
+};
 ushort = {
   revision = 32261;
   stripPrefix = 0;
@@ -45967,14 +46263,14 @@ verifica = {
   version = "1.3";
 };
 verifiche = {
-  revision = 68023;
+  revision = 69726;
   stripPrefix = 0;
-  sha512.run = "7a2804f2a963bff59bf4f566595c6b89adf8534ad7511542643f752eed2183ab3dc377ff70eed60a48b615a9f159a73d352ab2e138f7d589e9163a8328fa673a";
-  sha512.doc = "79c13fb6dff619f75b78433b628b4a75c171baa8859ae8e58444f1c57316abbda24cdfda4172a0b639b136366c4e6d6fc5ad5199b4cf86c89214e82dabde4cf2";
-  sha512.source = "7cacc48cfd6a9fb94f94a7950e3dea065b37dff2dfee6cfda29950e2baedb0ab2c4736f186facb3b23e37e406d505d4128ef6b24421ff0ccfecd89c1b7ee08ab";
+  sha512.run = "6201051c81c5a002423d3a9959e847223350c83ff03dca7792a727f2ff7f0405d20d2499827f5e96ea8e1f2e7855b887b0c2b35180ea2153a5c2126d36e21410";
+  sha512.doc = "dfc3fc5a5bc8ccede3bb487a17941ac6e28879c03ea9e398475c058aae07230e2831bc9dae3195effd331abe79eb5f6ea8962da85a9775273810da80d8ada70d";
+  sha512.source = "f46df8dc9759ced453752b53003d9377748346f8fbc02ea07a61b8ea44fc51eb6d0290c9b1a940ef74cf1999ec5597794237e0b28bb28b80c331b19c0defc14f";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "7.0";
+  version = "7.1";
 };
 verifycommand = {
   revision = 69389;
@@ -45987,14 +46283,14 @@ verifycommand = {
   version = "1.00";
 };
 verse = {
-  revision = 34017;
+  revision = 69882;
   stripPrefix = 0;
-  sha512.run = "3f9878dea106ec87f2b64960c5824fda6eb9f700b753a530cec7e1b8519dc9a817cf7ea74c13eb806497740501122790fb29f6e3cc383a8a89ad10e756b7a00a";
-  sha512.doc = "6f255167db9ebb84cf86a14e6999410efb22d087d97b82837c3ebc5bf69f0990e77ae0325618ba3ea02c116741422a531f646929eab2b5810b9f3978be6651f2";
-  sha512.source = "ce1f07f40bd329383d8a0fc97038ee975d61b58eb0ff60f8a1894a6028b2afb9db58b7db599d252cb88fbc040d9938b7b934b6e8ad683e7f4de2be9a15b37820";
+  sha512.run = "cc76ff256e4e388e0385c4a5152db537b9c3b368a29de79fedc17395d9d3b362c6e3af05a5714d7d2fee68f129cbdfe82874eaf64c8e0093f70dd796e8c381b5";
+  sha512.doc = "5c1c29d0008c800bd967445ec3efbe2e8c1ee8d39d4373173f88c75fd3e8454409302308a08be84c69dda9c679ac25c6a411416c247fd44cd9cb23fee6b80f7c";
+  sha512.source = "ce95d8664bac0580b761c503497d675763f8efb8e5ec066ce392f9d8e7cee44fb4071a1d2dbca394afdd318aa347ab9c229f120aaa65452f8d0f19069004e766";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.4b";
+  version = "2.4c";
 };
 version = {
   revision = 21920;
@@ -46204,14 +46500,14 @@ wallpaper = {
   version = "1.10";
 };
 wargame = {
-  revision = 66713;
+  revision = 69692;
   stripPrefix = 0;
-  sha512.run = "fa9965a291573796cefa9c64d7c76894b29460287224699f6dfe708f218b293ab5c5daad19b70e949d1efff0db4f76cfe90606ae93fa508015114607338d8f66";
-  sha512.doc = "260474bd6f44ad52b56fb7ed2ef4e0de95ef455f12cc09e8fa6c70cacd7d0853d34fa5ac8fed34912241c9aaa38f079119683b1b5fd90e82d635238d20a940ab";
-  sha512.source = "17bb297856b2c483ff5d44851a2c59f445f35137f1d535330eaad161a0470df64e17634d945fb344f61f4aeadbe3068957d41dcf561c2997017f422f47cfa5d4";
+  sha512.run = "8302254134c342db781f4bfdfafd92dd3484e2a0e91dca2bf43113665bc3c44c0bf50637bb702f33fe243108bf1902283059a923e64bacdcdf7c9a5bfecc8836";
+  sha512.doc = "dc1a5d8ce42661ebe5f0bf9cdba69ae66f8fe592bc48c8036ed60cd75b07a84e18c5d92fa4c4730155c5858f7ade450d59934db4e55a6ddc6a3d93ea0c78a0ef";
+  sha512.source = "c7a04ae48a204f6e4c3819f8f4781ba65f4a71c72e011e4aa83680818f35bdf1b5cf57f92e58ad7eca366a677f2101d1c58e362869156c61d53e0028f250ef9f";
   hasRunfiles = true;
   license = [ "cc-by-sa-40" ];
-  version = "0.5";
+  version = "0.6";
 };
 warning = {
   revision = 66616;
@@ -46309,14 +46605,24 @@ webquiz = {
 webquiz.binfiles = [
   "webquiz"
 ];
+weiqi = {
+  revision = 70179;
+  stripPrefix = 0;
+  sha512.run = "7202c5b907439d47868e940d1cded455a15d1de82420e8846f93c81ea3b723eb2f6d455bfe8d1deddca7e856b5d9243418b546abbf36d0883431675866cdfbe1";
+  sha512.doc = "ed2f33194866228569800a1612bf73b5aa2b8ed8b1c859b3a9475ce6b2411b0a7a9ac4236b4b1372d8eeb5635f18b340592656ce5acc76664d620184a62fcc9e";
+  sha512.source = "8d0505d70518aeb70ced15c152389c08a5e4938a1cd82c623ce21ee83678bef53e8a8876fbee13a121b428f55df013ca44389a98529c6ade2909375f910c5b06";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+  version = "0.1";
+};
 wheelchart = {
-  revision = 69040;
+  revision = 70518;
   stripPrefix = 0;
-  sha512.run = "17660fd6ff9cf02bf01b95b505128aac52005b4ff59fcc1b28c64e9870aaed03f8652555cc2c323453441c83e696a0c5bc281281a1baee8c6ede1e9a11dc376d";
-  sha512.doc = "6ad02cbf669800f8a9d81cfd3ed3abcfc5b8a2df6040d3eb6ab0dc1ffb01875230be13959adb1ea7dde805d4ffb6bd9767de1b275479636f245e1140be07b16e";
+  sha512.run = "9b54a717a73761b09007afeb18c6fd69f6af1b1dd22f206e556fd076a61e6ae03211d58be316ec6eb62909979e8d53f74c6cd7dddd11fac33917383f4de2b073";
+  sha512.doc = "23e759467608b69aa7b3a3376d4dc62ec82aa831cac2014ee76d5b73beb99d09a69401f61f1db02b617a741189fd34ea39b90c5c1b1f7f7f94d380ba38041a24";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "2.0";
+  version = "3.0";
 };
 widetable = {
   revision = 53409;
@@ -46373,11 +46679,11 @@ withargs = {
   version = "0.3.1";
 };
 witharrows = {
-  revision = 68047;
+  revision = 69996;
   stripPrefix = 0;
-  sha512.run = "1ac6ec240be73608724793040cd9f716b61a7a197e30b1334ba81c3791d7714c0af36c509e9928d0dc4a11bf8cab5c0be373a7ded90f0c661e9547b553b57f62";
-  sha512.doc = "6b8993d636328e90dfc6ff622fe8536bc795a1cfd32372b6268dec38910435d19a8b85569e5fd7568387059ca9def471cfe6e92fc9ebdbf5ddcc65c789c5edfa";
-  sha512.source = "e1e031bc4a1b6bce4eeeaa14f0d0201a5578c3d0492a55d29aa40141bf4519a942c839f569b8d3b72a013da17f95fbd0e6edcdff3d5f971771f0534a36cb645a";
+  sha512.run = "31e9cb805fa91b903d91a0090ceffe6cad323c3340bc16c268e6667dcb5fd99e05c95b87fcc6cb8500c187479973d5595fe510855a7c6b2b86db06e513ba5172";
+  sha512.doc = "69c495a471e5fc2fb4da60b06360dae6dfa2c79d93fe176fe54485ba95f3c854fec8356f9939d5521360f9d461e9dac1a6290dc3ef29b8a82e52c0892e8fce14";
+  sha512.source = "bb5144cd95bb78dbdda91bf068597de2a8d409a2f0ba8f48c861018c52b897a7b5b7a095cba1b5e301822f75b2808dff0376ba36591cd8964f2171553d5e8dce";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "2.8b";
@@ -46466,14 +46772,14 @@ wrapfig = {
   version = "3.6";
 };
 wrapfig2 = {
-  revision = 68164;
+  revision = 69513;
   stripPrefix = 0;
-  sha512.run = "b2fa531e9a8deca8741af501073e7c05739ccd889433fa8355bcb4dca34a3efb9b6690306d884a040ba1dd076ce5c99e3db5e7fd76f30e951eea0ea3ad00629e";
-  sha512.doc = "cb3e0264c487b53f093f90ded250705bddb70a68557bd7cc03d66baf8731481b8e94055dec140bf7a510a62293eb4774ad4c95f472dd3248289f246a87804d11";
-  sha512.source = "05066fda5a68577758be7ffe4743a10600093983e469d05ab85e8ce1ed8fbc5554bc01f35d361aaba374645e0b143cb92aa33f527b7539a10b34a09b2659d2ac";
+  sha512.run = "68b48be5ebdf766fd414ce9a121321f26e172802c6c504213306762e383dd1ecdf77f6260a5602b8394945a86c87b0320cc0a651ad054753c5c2510d746a8149";
+  sha512.doc = "b2356e3756640a825b44c47fdde68acc49d966508a90ba76a019992f10a9b65f124282d59d26422bf3c51a658b2adc723ad36f4e0d92dcb74a8bffabfefac471";
+  sha512.source = "e502c514d9ac982b3fa67428a2be8e97b50b2c5389ab2e29981fc65b002e2c3076509a061635991c2ab48ad8969eccd1ec39e82b2f7a07e34de98bc2801a8dd0";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "6.2.1";
+  version = "7.0.0";
 };
 wrapstuff = {
   revision = 64058;
@@ -46559,13 +46865,13 @@ xcharter = {
   version = "1.25";
 };
 xcharter-math = {
-  revision = 68992;
+  revision = 70333;
   stripPrefix = 0;
-  sha512.run = "82830e9740200cddb622b30b4c91112462a2c429e501f354f54abaffcf8f64186cbff3bce25b889508c6c28732ca2c0a2ded06a876260903163d02d1260354fa";
-  sha512.doc = "c1bd25aa3d1aa195ad97f1228dffc73889d06ac45391ed725696372c7184672f6a14b1f1dc2f4410866a6cc0119219817f50bd78c602846f067f935f18c538ab";
+  sha512.run = "1b9da3251b6f5abfd2053114edb174638046603c6b2f46a8baf26c20050f3f614b4a9e01ef92b458ca4b97ca90bef7c72bb146754184d311553bb0a429e29873";
+  sha512.doc = "291b67678718b0facbdd38b95d24e75895a74d7bb6cde5c320598fecfac2ce0ebea442d0d3a62c63fff9ee38579042525297518c9373d90edcbdf425605dd119";
   hasRunfiles = true;
   license = [ "ofl" "lppl13c" ];
-  version = "0.60";
+  version = "0.62";
 };
 xcite = {
   revision = 53486;
@@ -46954,13 +47260,13 @@ xetexfontinfo = {
   license = [ "asl20" ];
 };
 xetexko = {
-  revision = 64894;
+  revision = 70316;
   stripPrefix = 0;
-  sha512.run = "ec745c3a58f9ac782cc3ecf1be995b8227a92436bf6db7549a4e14a7d92bbee8d2f47a12117ebc64594d7923675860e6deafd9bdae98c3ba1845e673172abdf5";
-  sha512.doc = "9aee4d049e3073542c76be2c399afaaed5475616ceaa074c6a60705653ac48dc770f43e86e102b359b89c53e529f3e354298fa9a5f1e14c487800c0c306d7270";
+  sha512.run = "860352c31f173c31f5b296759e8ff1dc4c2ef58c9db459c52354db92362812a96c359b4e344a5aeb6ab4c52368bb3c409aaea39102e5a48dcb973c285d5f55c5";
+  sha512.doc = "7deb9249472c4dce235cfbe38e1e8f5f11a792e559a5708f6d9a2803bdcec68baa7e88fe0a25545896c6f671b7d6ea91b9637a2d75907d667d8b8454597b6f5b";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "4.2";
+  version = "4.3";
 };
 xetexref = {
   revision = 68072;
@@ -47000,15 +47306,24 @@ xfor = {
   license = [ "lppl13c" ];
   version = "1.05";
 };
+xfrac = {
+  revision = 69888;
+  stripPrefix = 0;
+  sha512.run = "6a173abe1f5cd65db836157fa336be76bc9879e137f2542b3141bb096359c3bae771705a3b761730e1e3bbc7d623cc08ac46f87af7412be4fa4d7f42a70ba9b9";
+  sha512.doc = "292b12956c4236510024bb3c85b4b1aa791de4eeba14dd88affe264c6384080c2340eacbeb19592424f2231e8347ae6d1b4fc32eda12320dd694557a982aa80a";
+  sha512.source = "f22458c874e394753b0dc6296a86a2dc6cd8df8f03ff3f84e09118bb0069d84c2de56213368cf351ee922e8f753c3348dfac7bc4d9f496a3aae8302304460136";
+  hasRunfiles = true;
+  license = [ "lppl13c" ];
+};
 xgreek = {
-  revision = 69268;
+  revision = 69652;
   stripPrefix = 0;
-  sha512.run = "bada8aee28edd971542cd5091b702fd494cd710d32112e16f0ee7778868efd0ce558a5ca6d7f4f291dc7edea7f89adef584f4714bea656e9a76674808d3fd765";
-  sha512.doc = "e30af632317678f8e082980120ec328ebdf094ae816f17708387bd23b580431161503e99177ca78a5f2545fbe59b26968d208e8e273ca76f7f7f45fa31200e56";
-  sha512.source = "100836bb5b1bc2191a5c1f446e1b30f9f166719988fd62e5a72102180987db10b043a45f737da04e86f52bd8524fe2ba236454545d6d90105749df572df5775e";
+  sha512.run = "b7531fd3f5c42080990022689e5e4d43a0d16f9fd206e389bdaa0aa8c9345e062dc0a14d3086fa0b6c8b641a646edde9b7031af91664f1dde56e5581f2019882";
+  sha512.doc = "0221363435657925da4f8edc62b08b9114beca5cee39c410d57b1661a6b6f084761a0ce0be76968193d950b427aea5e16844b099a386420865765b569dd4bf8f";
+  sha512.source = "34ae0948d3ed0343ebb4007997e3dd0c536f6893d757a83082a031e2dd5b3f4f13eb6cbb6ccfbe38b879e6a2521bf13d9e5a10a0c278c5caef1300114f26179c";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "3.3.0";
+  version = "3.4.0";
 };
 xhfill = {
   revision = 22575;
@@ -47188,7 +47503,7 @@ xml2pmx.binfiles = [
   "xml2pmx"
 ];
 xmltex = {
-  revision = 62145;
+  revision = 69742;
   deps = [
     "atbegshi"
     "atveryend"
@@ -47227,8 +47542,8 @@ xmltex = {
       fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "dehyph" "hyph-utf8" "latex" "latexconfig" "tex-ini-files" "xmltexconfig" ];
     }
   ];
-  sha512.run = "ee01abb25b18e99f18bc78357be04fb1405473e90fbdf74ed875e2910812550c44fcc7aee960b2bdc53fcd7d78e9aa706e46929da65d5cb78d9ca43ba475d675";
-  sha512.doc = "d87c6d1f4c472b436104b0746d48a463977dc7eb520de3d7a53f48bc1c8e5682a23d604bbe2ebda1b5029d4a6dd33c2d2bf8b917ad4f54d2c7472874fdfe8509";
+  sha512.run = "60c804d65c5d1f7c2d006e410be1dd6001ebc8dd96b7829c77bbad88685a1e18afb5ab8dd42e7c2542df02d0336485766b9bd7f0657b6683e55d7a1e444d4580";
+  sha512.doc = "017d8d30a8371fa2a22c60a57b9eead2e3f2f9fc88aca858c701912d40af5212f6a58b77fcfba53214c98eb23142c08962827312010cd6474a0d66911d55ba85";
   hasRunfiles = true;
   license = [ "lppl13c" ];
   version = "0.8";
@@ -47548,14 +47863,14 @@ yannisgr = {
   license = [ "gpl2" ];
 };
 yathesis = {
-  revision = 66146;
+  revision = 70512;
   stripPrefix = 0;
-  sha512.run = "a14b12050bd99d7fdf4cbad2962b35976ec86e80944f8aca2bdfedec64d703c74081d107bff1704132e73df47002426c39d22a655acdd7c0d98857ed9191cf86";
-  sha512.doc = "6a1877cbca94a367afa8c6129bf8c6264e2c7203764fa451137113470d7899a40b195db8327ad84249b9f9c8d41698dd0c7a7b6b2754b8205e3bf8e8b533f545";
-  sha512.source = "753983fa303512e3a505f43ec14a626f42e20702f90c52bcb522378c9f2c6b0d0ce5b7888b4c1ca923812a79d1335573fe9d95493dc4d844dac2b757d67b4a25";
+  sha512.run = "85c1c7a9dfb682271ebc6a35cdd91dcaa11137d6f1785f98c3b0abdec46ab346f23a08b034b8aac95324dbba490291a59f74c5d27c93f791b38d47302f5cb61f";
+  sha512.doc = "b241afcdd6e2e7cc112faaed178fa2d1f15afea44e4c614b69edbe0a08ac78606f6adf4e6688c4d45e27b011dfd83ff189a4d8a84e96d39c22cada4d3cc888bd";
+  sha512.source = "b97c3f396f53108ed66e3297484ad4d052df0b5fd735bedc16ab3ea8550c3bb8fdca84d7dc415e6a8abb147c2f4cbf1d4d7ee3fd6f4677db73079bbbbe20d359";
   hasRunfiles = true;
   license = [ "lppl13c" ];
-  version = "1.0.11";
+  version = "1.0.12";
 };
 yax = {
   revision = 54080;
@@ -47741,6 +48056,15 @@ yquant = {
   license = [ "lppl13c" ];
   version = "0.7.5";
 };
+ysabeau = {
+  revision = 69663;
+  stripPrefix = 0;
+  sha512.run = "c5545488723a4408a771c083d191942fc7b10e85e6c2df65e6ae0839dcaa7202459ba8774497562b7e55f432fdcca904de132ac7d89fbf3d935aa238ff63fede";
+  sha512.doc = "a37a971140b1ac12724f2710e6f017690ef151aed9a88ed00bd00cd80ca6ca8524b0347b34bf83cf8e2e34fb000e4ac53c1a8a88684a0e3792e4cded362513ae";
+  hasRunfiles = true;
+  license = [ "ofl" "publicDomain" "free" ];
+  version = "1.1";
+};
 ytableau = {
   revision = 59580;
   stripPrefix = 0;
@@ -47955,12 +48279,13 @@ zwpagelayout = {
   version = "1.4e";
 };
 zx-calculus = {
-  revision = 60838;
+  revision = 70612;
   stripPrefix = 0;
-  sha512.run = "17854656622c012a3c0a4711e9c38d2c100a156072e7556b3ba3d6ce6edf1463c69078073bd72b83d3136e96e72e4adfff3982a73d4fd4d66fa98ff6823eafb5";
-  sha512.doc = "076a25ef96775d28fad2e97027ef69b983f1cc44f11866b7f6db0408bca45759b8ed0f3914516712f235ee4a670bb3fcb28954a2b3f745786e6d6f8f7c06cde9";
+  sha512.run = "d59cbc2662dc41a216e9d8665a6bafefd27ef5993abae6682af24909cff49350dcf73f10ddc55b31dd3ebdd35509a7000edd8e055c85deee946a5efe258ddf14";
+  sha512.doc = "a08719cbd99cfe9b37ca3fe62806e45908a1f48e5ff32a162fff3e835fdcf69c8a516ff7d3e0de6dd1827d3c78ae7efb3e79b4a534d77d94d5a16b9fd10b10d7";
   hasRunfiles = true;
   license = [ "mit" ];
+  version = "2.2";
 };
 zxjafbfont = {
   revision = 28539;
diff --git a/nixpkgs/pkgs/tools/video/blackmagic-desktop-video/default.nix b/nixpkgs/pkgs/tools/video/blackmagic-desktop-video/default.nix
index 435db1221eab..18c5c9efa6d4 100644
--- a/nixpkgs/pkgs/tools/video/blackmagic-desktop-video/default.nix
+++ b/nixpkgs/pkgs/tools/video/blackmagic-desktop-video/default.nix
@@ -5,7 +5,6 @@
 , lib
 , autoPatchelfHook
 , libcxx
-, libcxxabi
 , libGL
 , gcc7
 }:
@@ -17,7 +16,6 @@ stdenv.mkDerivation rec {
   buildInputs = [
     autoPatchelfHook
     libcxx
-    libcxxabi
     libGL
     gcc7.cc.lib
   ];
diff --git a/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix b/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix
index dd6e6c483a33..e5385bf7fbca 100644
--- a/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/cloud-init/default.nix
@@ -1,6 +1,5 @@
 { lib
 , nixosTests
-, buildPythonApplication
 , cloud-utils
 , dmidecode
 , fetchFromGitHub
@@ -17,14 +16,16 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cloud-init";
-  version = "23.4.4";
+  version = "24.1";
+  pyproject = true;
+
   namePrefix = "";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "cloud-init";
     rev = "refs/tags/${version}";
-    hash = "sha256-imA3C2895W4vbBT9TsELT1H9QfNIxntNQLsniv+/FGg=";
+    hash = "sha256-gcqo8q3BxxqXU7WnoOnTgTJ3QHF9h/p20zTJUhsCL2A=";
   };
 
   patches = [
@@ -53,6 +54,10 @@ python3.pkgs.buildPythonApplication rec {
     done
   '';
 
+  build-system = with python3.pkgs; [
+    setuptools
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     configobj
     jinja2
@@ -66,7 +71,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   nativeCheckInputs = with python3.pkgs; [
-    pytestCheckHook
+    (pytestCheckHook.override { pytest = pytest_7; })
     httpretty
     dmidecode
     # needed for tests; at runtime we rather want the setuid wrapper
@@ -88,8 +93,6 @@ python3.pkgs.buildPythonApplication rec {
     "test_dhcp_client_failover"
     # clears path and fails because mkdir is not found
     "test_path_env_gets_set_from_main"
-    # fails to find cat
-    "test_subp_combined_stderr_stdout"
     # tries to read from /etc/ca-certificates.conf while inside the sandbox
     "test_handler_ca_certs"
     "TestRemoveDefaultCaCerts"
@@ -100,8 +103,6 @@ python3.pkgs.buildPythonApplication rec {
     "TestConsumeUserDataHttp"
     # Chef Omnibus
     "TestInstallChefOmnibus"
-    # https://github.com/canonical/cloud-init/pull/893
-    "TestGetPackageMirrorInfo"
     # Disable failing VMware and PuppetAio tests
     "test_get_data_iso9660_with_network_config"
     "test_get_data_vmware_guestinfo_with_network_config"
@@ -112,6 +113,8 @@ python3.pkgs.buildPythonApplication rec {
     "test_install_with_default_arguments"
     "test_install_with_no_cleanup"
     "test_install_with_version"
+    # https://github.com/canonical/cloud-init/issues/5002
+    "test_found_via_userdata"
   ];
 
   preCheck = ''
diff --git a/nixpkgs/pkgs/tools/virtualization/govc/default.nix b/nixpkgs/pkgs/tools/virtualization/govc/default.nix
index fe4f69c9e32f..d00fd1a49905 100644
--- a/nixpkgs/pkgs/tools/virtualization/govc/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/govc/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "govc";
-  version = "0.36.0";
+  version = "0.36.1";
 
   subPackages = [ "govc" ];
 
@@ -10,7 +10,7 @@ buildGoModule rec {
     rev = "v${version}";
     owner = "vmware";
     repo = "govmomi";
-    sha256 = "sha256-laceJmheluiY120q1gqXk98mtztC9xwMd+5j3wUspas=";
+    sha256 = "sha256-09zeE2ry5RqwT92HMe0ANclWy+tVTgeJAiQkWX8PbYs=";
   };
 
   vendorHash = "sha256-1EAQMYaTEtfAiu7+UTkC7QZwSWC1Ihwj9leTd90T0ZU=";
diff --git a/nixpkgs/pkgs/tools/virtualization/nixos-container/default.nix b/nixpkgs/pkgs/tools/virtualization/nixos-container/default.nix
index 0b44bde4719f..e8b2f1dc88e5 100644
--- a/nixpkgs/pkgs/tools/virtualization/nixos-container/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/nixos-container/default.nix
@@ -35,4 +35,5 @@ substituteAll {
       mkdir -p $t
       cp ${./nixos-container-completion.sh} $t/nixos-container
     '';
+    meta.mainProgram = "nixos-container";
 }
diff --git a/nixpkgs/pkgs/tools/virtualization/rootlesskit/default.nix b/nixpkgs/pkgs/tools/virtualization/rootlesskit/default.nix
index 18360fc7e212..4dea9b153d85 100644
--- a/nixpkgs/pkgs/tools/virtualization/rootlesskit/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/rootlesskit/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "rootlesskit";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "rootless-containers";
     repo = "rootlesskit";
     rev = "v${version}";
-    hash = "sha256-qcVgLhBUVZTvXz5/QytYWzYtCKscBab/Iy25KAgzExo=";
+    hash = "sha256-L8UdT3hQO4IrXkpOL0bjpy6OwNJQR8EG0+MgXVXzoBU=";
   };
 
-  vendorHash = "sha256-ctZt0jkBhQPryEKCrd1a+ymnVKkGasZV6gOtR5U0L0I=";
+  vendorHash = "sha256-TGLxcH6wg8fObLsSKKdBgIbb7t4YBP+pUWNNHlEZtaw=";
 
   passthru = {
     updateScript = nix-update-script { };
diff --git a/nixpkgs/pkgs/tools/virtualization/xen-guest-agent/default.nix b/nixpkgs/pkgs/tools/virtualization/xen-guest-agent/default.nix
index 52924b2b624f..2ddbbe45955a 100644
--- a/nixpkgs/pkgs/tools/virtualization/xen-guest-agent/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/xen-guest-agent/default.nix
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "Xen agent running in Linux/BSDs (POSIX) VMs";
     homepage = "https://gitlab.com/xen-project/xen-guest-agent";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     platforms = platforms.unix;
     maintainers = with maintainers; [matdibu];
   };
diff --git a/nixpkgs/pkgs/tools/wayland/hyprland-per-window-layout/default.nix b/nixpkgs/pkgs/tools/wayland/hyprland-per-window-layout/default.nix
index 03f911e4f899..61bca460b0e0 100644
--- a/nixpkgs/pkgs/tools/wayland/hyprland-per-window-layout/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/hyprland-per-window-layout/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hyprland-per-window-layout";
-  version = "2.8.1";
+  version = "2.9";
 
   src = fetchFromGitHub {
     owner = "coffebar";
     repo = pname;
     rev = version;
-    hash = "sha256-a1x22+f7VXkPC36/muauac0+mz2Bcr01TFWf+sGHH/g=";
+    hash = "sha256-AhTDcwZnFAaB750PqdXjZvjVrSjwJd3CXv1UtZfcTC0=";
   };
 
-  cargoHash = "sha256-R79ztYRLokGc4wQnoJeKsY/4EuCGuhdqBhBQVstY2gU=";
+  cargoHash = "sha256-uZsXIDdUNZyrDmfWCHDuibziarzIav74Lpu4yObkGbc=";
 
   meta = with lib; {
     description = "Per window keyboard layout (language) for Hyprland wayland compositor";
diff --git a/nixpkgs/pkgs/tools/wayland/wleave/default.nix b/nixpkgs/pkgs/tools/wayland/wleave/default.nix
index 94fd6e123792..0ddd5c4595ae 100644
--- a/nixpkgs/pkgs/tools/wayland/wleave/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/wleave/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wleave";
-  version = "0.3.2";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "AMNatty";
     repo = "wleave";
     rev = version;
-    hash = "sha256-RMUwsrDvSErNbulpyJyRSB1NIsG706SCvF50t3VKuWA=";
+    hash = "sha256-PkEj0RlSxhxG9qOJkuMTVj6r0lxsm7V8b1AIaCVaXCQ=";
   };
 
-  cargoHash = "sha256-E7Lw7HIZC8j/1H+M9lfglfMkWDeaAL505qCkj+CV7Ik=";
+  cargoHash = "sha256-ivKPGA5UADKT47CL5jSOB4ZEfKh9uJkXgv9vfvEnBzw=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/nixpkgs/pkgs/tools/wayland/wlr-randr/default.nix b/nixpkgs/pkgs/tools/wayland/wlr-randr/default.nix
index 0e51bf0093d8..94250dad2efc 100644
--- a/nixpkgs/pkgs/tools/wayland/wlr-randr/default.nix
+++ b/nixpkgs/pkgs/tools/wayland/wlr-randr/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wlr-randr";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromSourcehut {
     owner = "~emersion";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Pr9XEQUtbG3Mo/QjFMoY+oJTQIAVW+aaEjYHZqJgbbg=";
+    hash = "sha256-2kWTVAi4hq2d9jQ6yBLVzm3x7n/oSvBdZ45WyjhXhc4=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/top-level/aliases.nix b/nixpkgs/pkgs/top-level/aliases.nix
index e4d03b291663..12a5057bc5f7 100644
--- a/nixpkgs/pkgs/top-level/aliases.nix
+++ b/nixpkgs/pkgs/top-level/aliases.nix
@@ -97,6 +97,7 @@ mapAliases ({
   bashInteractive_5 = bashInteractive; # Added 2021-08-20
   bash_5 = bash; # Added 2021-08-20
   bazel_3 = throw "bazel 3 is past end of life as it is not an lts version"; # Added 2023-02-02
+  bazel_4 = throw "'bazel_4' has been removed from nixpkgs as it has reached end of life"; # Added 2024-01-23
   bedup = throw "bedup was removed because it was broken and abandoned upstream"; # added 2023-02-04
   bee-unstable = throw "bee-unstable has been removed, use 'bee' instead"; # Added 2024-02-12
   bee-clef = throw "bee-clef has been removed as the upstream project was archived"; # Added 2024-02-12
@@ -110,6 +111,7 @@ mapAliases ({
     lib.warn "blender-with-packages is deprecated in favor of blender.withPackages, e.g. `blender.withPackages(ps: [ ps.foobar ])`"
       (blender.withPackages (_: args.packages)).overrideAttrs
       (lib.optionalAttrs (args ? name) { pname = "blender-" + args.name; }); # Added 2023-10-30
+  blockbench-electron = blockbench; # Added 2024-03-16
   bluezFull = throw "'bluezFull' has been renamed to/replaced by 'bluez'"; # Converted to throw 2023-09-10
   bookletimposer = throw "bookletimposer has been removed from nixpkgs; upstream unmaintained and broke with pypdf3"; # Added 2024-01-01
   boost168 = throw "boost168 has been deprecated in favor of the latest version"; # Added 2023-06-08
@@ -145,9 +147,11 @@ mapAliases ({
   callPackage_i686 = pkgsi686Linux.callPackage;
   cadence = throw "cadence has been removed from nixpkgs, as it was archived upstream"; # Added 2023-10-28
   cask = emacs.pkgs.cask; # Added 2022-11-12
+  canonicalize-jars-hook = stripJavaArchivesHook; # Added 2024-03-17
   cargo-embed = throw "cargo-embed is now part of the probe-rs package"; # Added 2023-07-03
   cargo-espflash = espflash;
   cargo-flash = throw "cargo-flash is now part of the probe-rs package"; # Added 2023-07-03
+  cargo-graph = throw "cargo-graph has been removed as it is broken and archived upstream"; # Added 2024-03-16
   catfish = throw "'catfish' has been renamed to/replaced by 'xfce.catfish'"; # Converted to throw 2023-09-10
   cawbird = throw "cawbird has been abandoned upstream and is broken anyways due to Twitter closing its API";
   ccloud-cli = throw "ccloud-cli has been removed, please use confluent-cli instead"; # Added 2023-06-09
@@ -171,11 +175,12 @@ mapAliases ({
   cpp-ipfs-api = cpp-ipfs-http-client; # Project has been renamed. Added 2022-05-15
   crispyDoom = crispy-doom; # Added 2023-05-01
   cryptowatch-desktop = throw "Cryptowatch Desktop was sunset on September 30th 2023 and has been removed from nixpkgs"; # Added 2023-12-22
-  clash = throw "'clash' has been removed, upstream gone. Consider using 'clash-meta' instead."; # added 2023-11-10
+  clash = throw "'clash' has been removed, upstream gone. Consider using 'mihomo' instead."; # added 2023-11-10
   clasp = clingo; # added 2022-12-22
   claws-mail-gtk3 = claws-mail; # Added 2021-07-10
   clucene_core_1 = throw "'clucene_core_1' has been renamed to/replaced by 'clucene_core'"; # Added 2023-12-09
   cntk = throw "'cntk' has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2023-10-09
+  cockroachdb = throw "'cockroachdb' has been removed as it was outdated and unmaintained. Use 'cockroachdb-bin' instead"; # 2024-03-15
   codimd = hedgedoc; # Added 2020-11-29
   inherit (libsForQt5.mauiPackages) communicator; # added 2022-05-17
   compton = throw "'compton' has been renamed to/replaced by 'picom'"; # Converted to throw 2023-09-10
@@ -192,7 +197,7 @@ mapAliases ({
   clang8Stdenv = throw "clang8Stdenv has been removed from nixpkgs"; # Added 2024-01-24
   clang9Stdenv = lowPrio llvmPackages_9.stdenv;
   clang10Stdenv = throw "clang10Stdenv has been removed from nixpkgs"; # Added 2024-01-26
-  clang11Stdenv = lowPrio llvmPackages_11.stdenv;
+  clang11Stdenv = throw "clang11Stdenv has been removed from nixpkgs"; # Added 2023-01-24
   clang12Stdenv = lowPrio llvmPackages_12.stdenv;
   clang13Stdenv = lowPrio llvmPackages_13.stdenv;
   clang14Stdenv = lowPrio llvmPackages_14.stdenv;
@@ -203,10 +208,13 @@ mapAliases ({
   clang-tools_6 = throw "clang-tools_6 has been removed from nixpkgs"; # Added 2024-01-08
   clang-tools_7 = throw "clang-tools_7 has been removed from nixpkgs"; # Added 2023-11-19
   clang-tools_8  = throw "clang-tools_8 has been removed from nixpkgs"; # Added 2024-01-24
+  clang-tools_10 = throw "clang-tools_10 has been removed from nixpkgs"; # Added 2023-01-26
+  clang-tools_11 = throw "clang-tools_11 has been removed from nixpkgs"; # Added 2023-01-24
   clang_6 = throw "clang_6 has been removed from nixpkgs"; # Added 2024-01-08
   clang_7 = throw "clang_7 has been removed from nixpkgs"; # Added 2023-11-19
   clang_8  = throw "clang_8 has been removed from nixpkgs"; # Added 2024-01-24
   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
 
   ### D ###
 
@@ -223,11 +231,14 @@ mapAliases ({
   demjson = with python3Packages; toPythonApplication demjson; # Added 2022-01-18
   dep = throw "'dep' has been removed, because it is deprecated and archived in favor of Go modules"; # Added 2023-12-26
   devserver = throw "'devserver' has been removed in favor of 'miniserve' or other alternatives"; # Added 2023-01-13
+  dfeet = throw "'dfeet' has been removed because it is archived upstream. Please use 'd-spy' instead"; # Added 2024-03-07
   dhcp = throw "dhcp (ISC DHCP) has been removed from nixpkgs, because it reached its end of life"; # Added 2023-04-04
   dnnl = oneDNN; # Added 2020-04-22
   docker-machine = throw "'docker-machine' has been removed, because the upstream project was archived"; # Added 2023-12-27
   docker-machine-kvm = throw "'docker-machine-kvm' has been removed, because 'docker-machine' was archived upstream and removed"; # Added 2023-12-27
   docker-machine-xhyve = throw "'docker-machine-xhyve' has been removed, because 'docker-machine' was archived upstream and removed"; # Added 2023-12-27
+  dogecoin = throw "'dogecoin' has been removed, as it was broken and unmaintained"; # Added 2024-03-11
+  dogecoind = throw "'dogecoind' has been removed, as it was broken and unmaintained"; # Added 2024-03-11
   dolphin-emu-beta = dolphin-emu; # Added 2023-02-11
   dolphinEmu = dolphin-emu; # Added 2021-11-10
   dolphinEmuMaster = dolphin-emu-beta; # Added 2021-11-10
@@ -255,6 +266,36 @@ mapAliases ({
 
   # Electron
   electron_9 = throw "electron_9 has been removed in favor of newer versions"; # added 2023-09-11
+  electron_10 = throw "electron_10 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_10-bin = throw "electron_10-bin has been removed in favor of newer versions"; # added 2024-03-20
+  electron_11 = throw "electron_11 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_11-bin = throw "electron_11-bin has been removed in favor of newer versions"; # added 2024-03-20
+  electron_12 = throw "electron_12 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_12-bin = throw "electron_12-bin has been removed in favor of newer versions"; # added 2024-03-20
+  electron_13 = throw "electron_13 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_13-bin = throw "electron_13-bin has been removed in favor of newer versions"; # added 2024-03-20
+  electron_14 = throw "electron_14 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_14-bin = throw "electron_14-bin has been removed in favor of newer versions"; # added 2024-03-20
+  electron_15 = throw "electron_15 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_15-bin = throw "electron_15-bin has been removed in favor of newer versions"; # added 2024-03-20
+  electron_16 = throw "electron_16 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_16-bin = throw "electron_16-bin has been removed in favor of newer versions"; # added 2024-03-20
+  electron_17 = throw "electron_17 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_17-bin = throw "electron_17-bin has been removed in favor of newer versions"; # added 2024-03-20
+  electron_18 = throw "electron_18 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_18-bin = throw "electron_18-bin has been removed in favor of newer versions"; # added 2024-03-20
+  electron_19 = throw "electron_19 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_19-bin = throw "electron_19-bin has been removed in favor of newer versions"; # added 2024-03-20
+  electron_20 = throw "electron_20 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_20-bin = throw "electron_20-bin has been removed in favor of newer versions"; # added 2024-03-20
+  electron_21 = throw "electron_21 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_21-bin = throw "electron_21-bin has been removed in favor of newer versions"; # added 2024-03-20
+  electron_22 = throw "electron_22 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_22-bin = throw "electron_22-bin has been removed in favor of newer versions"; # added 2024-03-20
+  electron_23 = throw "electron_23 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_23-bin = throw "electron_23-bin has been removed in favor of newer versions"; # added 2024-03-20
+  electron_26 = throw "electron_26 has been removed in favor of newer versions"; # added 2024-03-20
+  electron_26-bin = throw "electron_26-bin has been removed in favor of newer versions"; # added 2024-03-20
 
   elementary-planner = throw "elementary-planner has been renamed to planify"; # Added 2023-06-24
 
@@ -282,6 +323,7 @@ mapAliases ({
   erlang_23 = throw "erlangR23 has been removed in favor of newer versions."; # added 2023-09-11
   erlangR23 = erlang_23;
   etcd_3_3 = throw "etcd_3_3 has been removed because upstream no longer maintains it"; # Added 2023-09-29
+  etcher = throw "'etcher' has been removed because it depended on an insecure version of Electron"; # Added 2024-03-14
   eterm = throw "eterm was removed because it is still insecure: https://github.com/mej/Eterm/issues/7"; # Added 2023-09-10
   exa = throw "'exa' has been removed because it is unmaintained upstream. Consider using 'eza', a maintained fork"; # Added 2023-09-07
   exhibitor = throw "'exhibitor' has been removed because it is unmaintained upstream"; # Added 2023-06-20
@@ -337,6 +379,7 @@ mapAliases ({
   garage_0_7_3 = throw "garage 0.7.x has been removed as it is EOL. Please upgrade to 0.8 series."; # Added 2023-10-10
   garmin-plugin = throw "garmin-plugin has been removed, as it is unmaintained upstream and no longer works with modern browsers."; # Added 2024-01-12
   garmindev = throw "'garmindev' has been removed as the dependent software 'qlandkartegt' has been removed"; # Added 2023-04-17
+  gcc10StdenvCompat = if stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "11" then gcc10Stdenv else stdenv; # Added 2024-03-21
   gcl_2_6_13_pre = throw "'gcl_2_6_13_pre' has been removed in favor of 'gcl'"; # Added 2024-01-11
   geekbench4 = throw "'geekbench4' has been renamed to 'geekbench_4'"; # Added 2023-03-10
   geekbench5 = throw "'geekbench5' has been renamed to 'geekbench_5'"; # Added 2023-03-10
@@ -445,6 +488,8 @@ mapAliases ({
   gr-rds = throw "'gr-rds' has been renamed to/replaced by 'gnuradio3_7.pkgs.rds'"; # Converted to throw 2023-09-10
   grub2_full = grub2; # Added 2022-11-18
   grub = throw "grub1 was removed after not being maintained upstream for a decade. Please switch to another bootloader"; # Added 2023-04-11
+  gtkcord4 = dissent; # Added 2024-03-10
+  gtkpod = throw "'gtkpod' was removed due to one of its dependencies, 'anjuta' being unmaintained"; # Added 2024-01-16
   guile-disarchive = disarchive; # Added 2023-10-27
   guile-lint = throw "'guile-lint' has been removed, please use 'guild lint' instead"; # Added 2023-10-16
 
@@ -468,6 +513,8 @@ mapAliases ({
   hip-nvidia = throw "'hip-nvidia' has been removed in favor of 'rocmPackages.clr'"; # Added 2023-10-08
   ht-rust = xh; # Added 2021-02-13
   hydra-unstable = hydra_unstable; # added 2022-05-10
+  hyper-haskell = throw "'hyper-haskell' has been removed. reason: has been broken for a long time and depends on an insecure electron version"; # Added 2024-03-14
+  hyper-haskell-server-with-packages = throw "'hyper-haskell-server-with-packages' has been removed. reason: has been broken for a long time"; # Added 2024-03-14
 
   ### I ###
 
@@ -480,6 +527,7 @@ mapAliases ({
   imagemagick7 = imagemagick; # Added 2021-02-22
   imagemagick7_light = imagemagick_light; # Added 2021-02-22
   imlib = throw "imlib has been dropped due to the lack of maintenance from upstream since 2004"; # Added 2023-01-04
+  indiepass-desktop = throw "indiepass-desktop has been dropped because it does not work with recent Electron versions"; # Added 2024-03-14
   indigenous-desktop = throw "'indigenous-desktop' has been renamed to/replaced by 'indiepass-desktop'"; # Added 2023-11-08
   instead-launcher = throw "instead-launcher has been removed, because it depended on qt4"; # Added 2023-07-26
   insync-v3 = throw "insync-v3 has been merged into the insync package; use insync instead"; #Added 2023-05-13
@@ -512,6 +560,8 @@ mapAliases ({
 
   ### K ###
 
+  k3s_1_24 = throw "'k3s_1_24' has been removed from nixpkgs as it has reached end of life"; # Added 2024-03-14
+  k3s_1_25 = throw "'k3s_1_25' has been removed from nixpkgs as it has reached end of life"; # Added 2024-03-14
   # k3d was a 3d editing software k-3d - "k3d has been removed because it was broken and has seen no release since 2016" Added 2022-01-04
   # now kube3d/k3d will take it's place
   kube3d = k3d; # Added 2022-0705
@@ -551,8 +601,10 @@ mapAliases ({
   libayatana-appindicator-gtk3 = libayatana-appindicator; # Added 2022-10-18
   libbencodetools = bencodetools; # Added 2022-07-30
   libbpf_1 = libbpf; # Added 2022-12-06
+  libbson = mongoc; # Added 2024-03-11
   libcap_pam = throw "'libcap_pam' has been replaced with 'libcap'"; # Converted to throw 2023-09-10
   libclc = llvmPackages_latest.libclc; # Added 2023-10-28
+  libcxxabi = throw "'libcxxabi' was merged into 'libcxx'"; # Converted to throw 2024-03-08
   libgme = game-music-emu; # Added 2022-07-20
   libgpgerror = libgpg-error; # Added 2021-09-04
   libheimdal = heimdal; # Added 2022-11-18
@@ -606,6 +658,7 @@ mapAliases ({
   linuxPackages_6_5 = linuxKernel.packages.linux_6_5;
   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_rpi0 = linuxKernel.packages.linux_rpi1;
   linuxPackages_rpi02w = linuxKernel.packages.linux_rpi3;
   linuxPackages_rpi1 = linuxKernel.packages.linux_rpi1;
@@ -632,6 +685,7 @@ mapAliases ({
   linux_6_5 = linuxKernel.kernels.linux_6_5;
   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_rpi0 = linuxKernel.kernels.linux_rpi1;
   linux_rpi02w = linuxKernel.kernels.linux_rpi3;
   linux_rpi1 = linuxKernel.kernels.linux_rpi1;
@@ -667,18 +721,22 @@ mapAliases ({
   lld_7 = throw "lld_7 has been removed from nixpkgs"; # Added 2023-11-19
   lld_8 = throw "lld_8 has been removed from nixpkgs"; # Added 2024-01-24
   lld_10 = throw "lld_10 has been removed from nixpkgs"; # Added 2024-01-26
+  lld_11 = throw "lld_11 has been removed from nixpkgs"; # Added 2024-01-24
   lldb_6 = throw "lldb_6 has been removed from nixpkgs"; # Added 2024-01-08
   lldb_7 = throw "lldb_7 has been removed from nixpkgs"; # Added 2023-11-19
   lldb_8 = throw "lldb_8 has been removed from nixpkgs"; # Added 2024-01-24
   lldb_10 = throw "lldb_10 has been removed from nixpkgs"; # Added 2024-01-26
+  lldb_11 = throw "lldb_11 has been removed from nixpkgs"; # Added 2024-01-24
   llvmPackages_6 = throw "llvmPackages_6 has been removed from nixpkgs"; # Added 2024-01-09
   llvmPackages_7 = throw "llvmPackages_7 has been removed from nixpkgs"; # Added 2023-11-19
   llvmPackages_8 = throw "llvmPackages_8 has been removed from nixpkgs"; # Added 2024-01-24
   llvmPackages_10 = throw "llvmPackages_10 has been removed from nixpkgs"; # Added 2024-01-26
+  llvmPackages_11 = throw "llvmPackages_11 has been removed from nixpkgs"; # Added 2024-01-24
   llvm_6 = throw "llvm_6 has been removed from nixpkgs"; # Added 2024-01-08
   llvm_7 = throw "llvm_7 has been removed from nixpkgs"; # Added 2023-11-19
   llvm_8 = throw "llvm_8 has been removed from nixpkgs"; # Added 2024-01-24
   llvm_10 = throw "llvm_10 has been removed from nixpkgs"; # Added 2024-01-26
+  llvm_11 = throw "llvm_11 has been removed from nixpkgs"; # Added 2024-01-24
 
   lobster-two = google-fonts; # Added 2021-07-22
   luxcorerender = throw "'luxcorerender' has been removed as it's unmaintained and broken in nixpkgs since a while ago"; # Added 2023-06-07
@@ -693,6 +751,7 @@ mapAliases ({
   markdown-pp = throw "markdown-pp was removed from nixpkgs, because the upstream archived it on 2021-09-02"; # Added 2023-07-22
   markmind = throw "markmind has been removed from nixpkgs, because it depended on an old version of electron"; # Added 2023-09-12
   matrique = spectral; # Added 2020-01-27
+  matrixcli = throw "'matrixcli' has been removed due to being unmaintained and broken functionality. Recommend 'matrix-commander' as an alternative"; # Added 2024-03-09
   matrix-recorder = throw "matrix-recorder has been removed due to being unmaintained"; # Added 2023-05-21
   maui-nota = libsForQt5.mauiPackages.nota; # added 2022-05-17
   mbox = throw "'mbox' has been removed, as it was broken and unmaintained"; # Added 2023-12-21
@@ -808,14 +867,21 @@ mapAliases ({
   noto-fonts-extra = noto-fonts; # Added 2023-04-08
   NSPlist = nsplist; # Added 2024-01-05
   nvidia-thrust = throw "nvidia-thrust has been removed because the project was deprecated; use cudaPackages.cuda_cccl";
+  nvtop = lib.warn "nvtop has been renamed to nvtopPackages.full" nvtopPackages.full; # Added 2024-02-25
+  nvtop-amd = lib.warn "nvtop-amd has been renamed to nvtopPackages.amd" nvtopPackages.amd; # Added 2024-02-25
+  nvtop-nvidia = lib.warn "nvtop-nvidia has been renamed to nvtopPackages.nvidia" nvtopPackages.nvidia; # Added 2024-02-25
+  nvtop-intel = lib.warn "nvtop-intel has been renamed to nvtopPackages.intel" nvtopPackages.intel; # Added 2024-02-25
+  nvtop-msm = lib.warn "nvtop-msm has been renamed to nvtopPackages.msm" nvtopPackages.msm; # Added 2024-02-25
 
   ### O ###
 
   o = orbiton; # Added 2023-04-09
   oathToolkit = oath-toolkit; # Added 2022-04-04
   oauth2_proxy = oauth2-proxy; # Added 2021-04-18
+  obinskit = throw "'obinskit' has been removed from nixpkgs, because the package was unmaintained and depended on an insecure version of electron"; # Added 2024-03-20
   octant = throw "octant has been dropped due to being archived and vulnerable"; # Added 2023-09-29
   octant-desktop = throw "octant-desktop has been dropped due to being archived and vulnerable"; # Added 2023-09-29
+  octorpki = throw "octorpki has been removed, upstream says to use rpki-client instead"; # Added 2024-03-19
   ogre1_9 = throw "ogre1_9 has been removed, use ogre instead"; # Added 2023-03-22
   ogre1_10 = throw "ogre1_10 has been removed, use ogre instead"; # Added 2023-07-20
   opa = throw "opa has been removed from nixpkgs as upstream has abandoned the project"; # Added 2023-03-21
@@ -900,12 +966,24 @@ mapAliases ({
   timescaledb = postgresqlPackages.timescaledb;
   tsearch_extras = postgresqlPackages.tsearch_extras;
 
+  # pinentry was using multiple outputs, this emulates the old interface for i.e. home-manager
+  # soon: throw "'pinentry' has been removed. Pick an appropriate variant like 'pinentry-curses' or 'pinentry-gnome3'";
+  pinentry = pinentry-all // {
+    curses = pinentry-curses;
+    emacs = pinentry-emacs;
+    gnome3 = pinentry-gnome3;
+    gtk2 = pinentry-gtk2;
+    qt = pinentry-qt;
+    tty = pinentry-tty;
+    flavors = [ "curses" "emacs" "gnome3" "gtk2" "qt" "tty" ];
+  }; # added 2024-01-15
   pinentry_curses = throw "'pinentry_curses' has been renamed to/replaced by 'pinentry-curses'"; # Converted to throw 2023-09-10
   pinentry_emacs = throw "'pinentry_emacs' has been renamed to/replaced by 'pinentry-emacs'"; # Converted to throw 2023-09-10
   pinentry_gnome = throw "'pinentry_gnome' has been renamed to/replaced by 'pinentry-gnome'"; # Converted to throw 2023-09-10
   pinentry_gtk2 = throw "'pinentry_gtk2' has been renamed to/replaced by 'pinentry-gtk2'"; # Converted to throw 2023-09-10
   pinentry_qt = throw "'pinentry_qt' has been renamed to/replaced by 'pinentry-qt'"; # Converted to throw 2023-09-10
   pinentry_qt5 = pinentry-qt; # Added 2020-02-11
+
   PlistCpp = plistcpp; # Added 2024-01-05
   pocket-updater-utility = pupdate; # Added 2024-01-25
   poetry2nix = throw "poetry2nix is now maintained out-of-tree. Please use https://github.com/nix-community/poetry2nix/"; # Added 2023-10-26
@@ -965,8 +1043,10 @@ mapAliases ({
   restya-board = throw "'restya-board' has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2024-01-22
   retdec-full = throw "'retdec-full' is no longer needed, please use 'retdec'"; # Added 2024-02-05
   retroshare06 = retroshare;
+  ricochet = throw "ricochet has been deprecated in favor of ricochet-refresh"; # Added 2024-02-26
   rigsofrods = rigsofrods-bin; # Added 2023-03-22
   ring-daemon = jami-daemon; # Added 2021-10-26
+  rnix-lsp = throw "'rnix-lsp' has been removed as it is unmaintained"; # Added 2024-03-09
   rockbox_utility = rockbox-utility; # Added 2022-03-17
   rocalution = throw "'rocalution' has been replaced with 'rocmPackages.rocalution'"; # Added 2023-10-08
   rocblas = throw "'rocblas' has been replaced with 'rocmPackages.rocblas'"; # Added 2023-10-08
@@ -1027,6 +1107,7 @@ mapAliases ({
   schildichat-desktop = schildichat-web;
   schildichat-desktop-wayland = schildichat-web;
   scitoken-cpp = scitokens-cpp; # Added 2024-02-12
+  scylladb = throw "'scylladb' has been removed due to being unmaintained"; # Added 2024-03-17
   sdlmame = throw "'sdlmame' has been renamed to/replaced by 'mame'"; # Converted to throw 2023-09-10
   searx = throw "'searx' has been removed as it is unmaintained. Please switch to searxng"; # Added 2023-10-03
   semver-cpp = throw "'semver-cpp' was removed because no packages in nixpkgs use it anymore"; # Added 2024-02-14
@@ -1085,6 +1166,7 @@ mapAliases ({
   spice-gtk_libsoup2 = throw "'spice-gtk_libsoup2' has been renamed to/replaced by 'spice-gtk'"; # Added 2023-02-21
   # spidermonkey is not ABI upwards-compatible, so only allow this for nix-shell
   spidermonkey = spidermonkey_78; # Added 2020-10-09
+  spotify-tui = throw "'spotify-tui' has been removed, as it was broken and unmaintained"; # Added 2024-03-12
   spotify-unwrapped = spotify; # added 2022-11-06
   spring-boot = spring-boot-cli; # added 2020-04-24
   squid4 = throw "'squid4' has been renamed to/replaced by 'squid'"; # Converted to throw 2023-09-10
@@ -1109,9 +1191,11 @@ mapAliases ({
   tdesktop = telegram-desktop; # Added 2023-04-07
   telegram-cli = throw "telegram-cli was removed because it was broken and abandoned upstream"; # Added 2023-07-28
   teleport_11 = throw "teleport 11 has been removed as it is EOL. Please upgrade to Teleport 12 or later"; # Added 2023-11-27
+  teleprompter = throw "teleprompter has been removed. reason: upstream dead and does not work with recent electron versions"; # Adedd 2024-03-14
   tensile = throw "'tensile' has been replaced with 'rocmPackages.tensile'"; # Added 2023-10-08
   testVersion = testers.testVersion; # Added 2022-04-20
   tfplugindocs = terraform-plugin-docs; # Added 2023-11-01
+  thrift-0_10 = throw "'thrift-0_10' has been removed because it is impacted by security issues and not used in nixpkgs, move to 'thrift'"; # Added 2024-03-17
   invalidateFetcherByDrvHash = testers.invalidateFetcherByDrvHash; # Added 2022-05-05
   timescale-prometheus = promscale; # Added 2020-09-29
   tinygltf = throw "TinyglTF has been embedded in draco due to lack of other users and compatibility breaks."; # Added 2023-06-25
diff --git a/nixpkgs/pkgs/top-level/all-packages.nix b/nixpkgs/pkgs/top-level/all-packages.nix
index 1ea476d022e0..e7462b38e409 100644
--- a/nixpkgs/pkgs/top-level/all-packages.nix
+++ b/nixpkgs/pkgs/top-level/all-packages.nix
@@ -107,7 +107,7 @@ with pkgs;
     Please be informed that this pseudo-package is not the only part
     of Nixpkgs that fails to evaluate. You should not evaluate
     entire Nixpkgs without some special measures to handle failing
-    packages, like using pkgs/top-level/release-attrpaths.nix.
+    packages, like using pkgs/top-level/release-attrpaths-superset.nix.
   '';
 
   tests = callPackages ../test { };
@@ -212,11 +212,10 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  canonicalize-jar = callPackage ../build-support/java/canonicalize-jar.nix { };
-  canonicalize-jars-hook = makeSetupHook {
-    name = "canonicalize-jars-hook";
-    substitutions = { canonicalize_jar = canonicalize-jar; };
-  } ../build-support/setup-hooks/canonicalize-jars.sh;
+  stripJavaArchivesHook = makeSetupHook {
+    name = "strip-java-archives-hook";
+    propagatedBuildInputs = [ strip-nondeterminism ];
+  } ../build-support/setup-hooks/strip-java-archives.sh;
 
   ensureNewerSourcesHook = { year }: makeSetupHook {
     name = "ensure-newer-sources-hook";
@@ -278,8 +277,6 @@ with pkgs;
 
   asitop = pkgs.python3Packages.callPackage ../os-specific/darwin/asitop { };
 
-  asn = callPackage ../applications/networking/asn { };
-
   asnmap = callPackage ../tools/security/asnmap { };
 
   astrolog = callPackage ../applications/science/astronomy/astrolog { };
@@ -891,7 +888,7 @@ with pkgs;
 
   tarsum = callPackage ../build-support/docker/tarsum.nix { };
 
-  snapTools = callPackage ../build-support/snap { };
+  snapTools = throw "snapTools was removed because makeSnap produced broken snaps and it was the only function in snapTools. See https://github.com/NixOS/nixpkgs/issues/100618 for more details."; # 2024-03-04;
 
   nix-prefetch-docker = callPackage ../build-support/docker/nix-prefetch-docker.nix { };
 
@@ -1087,6 +1084,8 @@ with pkgs;
 
   ruler = callPackage ../tools/security/ruler { };
 
+  magika = with python3Packages; toPythonApplication magika;
+
   mblock-mlink = callPackage ../development/tools/mblock-mlink { };
 
   mod = callPackage ../development/tools/mod { };
@@ -1736,7 +1735,6 @@ with pkgs;
 
   butler = callPackage ../by-name/bu/butler/package.nix {
     inherit (darwin.apple_sdk.frameworks) Cocoa;
-    buildGoModule = buildGo120Module;
   };
 
   carbon-now-cli = callPackage ../tools/typesetting/carbon-now-cli { };
@@ -1785,8 +1783,6 @@ with pkgs;
 
   dysk = callPackage ../tools/filesystems/dysk { };
 
-  etlegacy = callPackage ../games/etlegacy { lua = lua5_4; };
-
   fastfetch = callPackage ../tools/misc/fastfetch {
     stdenv = if stdenv.isDarwin then overrideSDK stdenv "11.0" else stdenv;
   };
@@ -1865,8 +1861,6 @@ with pkgs;
 
   gofu = callPackage ../applications/misc/gofu { };
 
-  godns = callPackage ../tools/networking/godns { };
-
   godspeed = callPackage ../tools/networking/godspeed { };
 
   goodhosts = callPackage ../tools/networking/goodhosts { };
@@ -1943,6 +1937,8 @@ with pkgs;
 
   linux-router-without-wifi = linux-router.override { useWifiDependencies = false; };
 
+  makehuman = libsForQt5.callPackage ../applications/misc/makehuman { };
+
   markdownlint-cli = callPackage ../tools/text/markdownlint-cli { };
 
   markdownlint-cli2 = callPackage ../tools/text/markdownlint-cli2 { };
@@ -2001,6 +1997,11 @@ with pkgs;
 
   openbugs = pkgsi686Linux.callPackage ../applications/science/machine-learning/openbugs { };
 
+  openusd = python3Packages.openusd.override {
+    withTools = true;
+    withUsdView = true;
+  };
+
   osquery = callPackage ../tools/system/osquery { };
 
   paperview = callPackage ../tools/X11/paperview { };
@@ -2552,9 +2553,7 @@ with pkgs;
 
   lab = callPackage ../applications/version-management/lab { };
 
-  labctl = callPackage ../tools/networking/labctl {
-    buildGoModule = buildGo120Module;
-  };
+  labctl = callPackage ../tools/networking/labctl { };
 
   legit = callPackage ../applications/version-management/legit { };
 
@@ -2687,10 +2686,6 @@ with pkgs;
 
   fsrx = callPackage ../tools/misc/fsrx { };
 
-  fsuae = callPackage ../applications/emulators/fs-uae { };
-
-  fsuae-launcher = libsForQt5.callPackage ../applications/emulators/fs-uae/launcher.nix { };
-
   fuc = callPackage ../tools/misc/fuc { };
 
   fuse-emulator = callPackage ../applications/emulators/fuse-emulator { };
@@ -2934,8 +2929,6 @@ with pkgs;
 
   felix-fm = callPackage ../applications/file-managers/felix-fm { };
 
-  joshuto = callPackage ../applications/file-managers/joshuto { };
-
   krusader = libsForQt5.callPackage ../applications/file-managers/krusader { };
 
   lesscpy = callPackage ../development/compilers/lesscpy { };
@@ -3555,8 +3548,6 @@ with pkgs;
 
   blackmagic-desktop-video = callPackage ../tools/video/blackmagic-desktop-video { };
 
-  blockbench-electron = callPackage ../applications/graphics/blockbench-electron { };
-
   blocksat-cli = with python3Packages; toPythonApplication blocksat-cli;
 
   bmap-tools = callPackage ../tools/misc/bmap-tools { };
@@ -3581,8 +3572,8 @@ with pkgs;
   bucklespring-libinput = callPackage ../applications/audio/bucklespring { };
   bucklespring-x11 = callPackage ../applications/audio/bucklespring { legacy = true; };
 
-  inherit (python3.pkgs.callPackage ../development/tools/continuous-integration/buildbot {})
-    buildbot buildbot-ui buildbot-full buildbot-plugins buildbot-worker;
+  buildbotPackages = recurseIntoAttrs (python3.pkgs.callPackage ../development/tools/continuous-integration/buildbot { });
+  inherit (buildbotPackages) buildbot buildbot-ui buildbot-full buildbot-plugins buildbot-worker;
 
   bunyan-rs = callPackage ../development/tools/bunyan-rs { };
 
@@ -4029,15 +4020,25 @@ with pkgs;
 
   go-audit = callPackage ../tools/system/go-audit { };
 
-  gopass = callPackage ../tools/security/gopass { };
+  gopass = callPackage ../tools/security/gopass {
+    buildGoModule = buildGo122Module;
+  };
 
-  gopass-hibp = callPackage ../tools/security/gopass/hibp.nix { };
+  gopass-hibp = callPackage ../tools/security/gopass/hibp.nix {
+    buildGoModule = buildGo122Module;
+  };
 
-  gopass-jsonapi = callPackage ../tools/security/gopass/jsonapi.nix { };
+  gopass-jsonapi = callPackage ../tools/security/gopass/jsonapi.nix {
+    buildGoModule = buildGo122Module;
+  };
 
-  git-credential-gopass = callPackage ../tools/security/gopass/git-credential.nix { };
+  git-credential-gopass = callPackage ../tools/security/gopass/git-credential.nix {
+    buildGoModule = buildGo122Module;
+  };
 
-  gopass-summon-provider = callPackage ../tools/security/gopass/summon.nix { };
+  gopass-summon-provider = callPackage ../tools/security/gopass/summon.nix {
+    buildGoModule = buildGo122Module;
+  };
 
   gosh = callPackage ../tools/security/gosh { };
 
@@ -4640,8 +4641,6 @@ with pkgs;
 
   clash-geoip = callPackage ../data/misc/clash-geoip { };
 
-  clash-verge = callPackage ../applications/networking/clash-verge { };
-
   clevercsv = with python3Packages; toPythonApplication clevercsv;
 
   clevis = callPackage ../tools/security/clevis {
@@ -4667,7 +4666,7 @@ with pkgs;
   cloudflared = callPackage ../applications/networking/cloudflared {
     # https://github.com/cloudflare/cloudflared/issues/1151#issuecomment-1888819250
     buildGoModule = buildGoModule.override {
-      go = go.overrideAttrs {
+      go = go_1_21.overrideAttrs {
         pname = "cloudflare-go";
         version = "0-unstable-2023-12-06";
         src = fetchFromGitHub {
@@ -4780,8 +4779,6 @@ with pkgs;
 
   swaytools = python3Packages.callPackage ../tools/wayland/swaytools { };
 
-  swww = callPackage ../tools/wayland/swww { };
-
   wayland-utils = callPackage ../tools/wayland/wayland-utils { };
 
   wayland-proxy-virtwl = callPackage ../tools/wayland/wayland-proxy-virtwl {
@@ -4930,8 +4927,6 @@ with pkgs;
 
   csvs-to-sqlite = callPackage ../tools/misc/csvs-to-sqlite { };
 
-  cucumber = callPackage ../development/tools/cucumber { };
-
   cutemarked-ng = libsForQt5.callPackage ../applications/office/cutemarked-ng { };
 
   dab_lib = callPackage ../development/libraries/dab_lib { };
@@ -5406,9 +5401,7 @@ with pkgs;
   texlive = callPackage ../tools/typesetting/tex/texlive { };
   inherit (texlive.schemes) texliveBasic texliveBookPub texliveConTeXt texliveFull texliveGUST texliveInfraOnly texliveMedium texliveMinimal texliveSmall texliveTeTeX;
 
-  fop = callPackage ../tools/typesetting/fop {
-    jdk = openjdk8;
-  };
+  fop = callPackage ../tools/typesetting/fop { };
 
   fondu = callPackage ../tools/misc/fondu {
     inherit (darwin.apple_sdk.frameworks) CoreServices;
@@ -5528,8 +5521,6 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Cocoa;
   };
 
-  gmic-qt = libsForQt5.callPackage ../tools/graphics/gmic-qt { };
-
   gpg-tui = callPackage ../tools/security/gpg-tui {
     inherit (darwin.apple_sdk.frameworks) AppKit Foundation;
     inherit (darwin) libobjc libresolv;
@@ -5639,11 +5630,9 @@ with pkgs;
   hypr = callPackage ../applications/window-managers/hyprwm/hypr {
     cairo = cairo.override { xcbSupport = true; };  };
 
-  hyprdim = callPackage ../applications/misc/hyprdim { };
-
   hyprland = callPackage ../applications/window-managers/hyprwm/hyprland {
-    wlroots = callPackage ../applications/window-managers/hyprwm/hyprland/wlroots.nix { };
-    udis86 = callPackage ../applications/window-managers/hyprwm/hyprland/udis86.nix { };
+    wlroots-hyprland = callPackage ../applications/window-managers/hyprwm/hyprland/wlroots.nix { };
+    udis86-hyprland = callPackage ../applications/window-managers/hyprwm/hyprland/udis86.nix { };
   };
 
   hyprland-autoname-workspaces = callPackage ../applications/misc/hyprland-autoname-workspaces { };
@@ -5652,8 +5641,6 @@ with pkgs;
 
   hyprland-protocols = callPackage ../applications/window-managers/hyprwm/hyprland-protocols { };
 
-  hyprnome = callPackage ../applications/misc/hyprnome { };
-
   hyprpaper = callPackage ../applications/window-managers/hyprwm/hyprpaper { };
 
   hyprpicker = callPackage ../applications/window-managers/hyprwm/hyprpicker {
@@ -5973,11 +5960,7 @@ with pkgs;
 
   mlarchive2maildir = callPackage ../applications/networking/mailreaders/mlarchive2maildir { };
 
-  mmctl = callPackage ../tools/misc/mmctl {
-    # mmctl tests currently fail with go1.21. See
-    # https://mattermost.atlassian.net/browse/MM-55465
-    buildGoModule = buildGo120Module;
-  };
+  mmctl = callPackage ../tools/misc/mmctl { };
 
   moar = callPackage ../tools/misc/moar { };
 
@@ -6132,8 +6115,6 @@ with pkgs;
   optar = callPackage ../tools/graphics/optar { };
 
 
-  obinskit = callPackage ../applications/misc/obinskit { };
-
   ockam = callPackage ../tools/networking/ockam {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -6149,10 +6130,6 @@ with pkgs;
 
   opam-publish = callPackage ../development/tools/ocaml/opam-publish { };
 
-  opencomposite = callPackage ../development/libraries/opencomposite { };
-
-  opencomposite-helper = callPackage ../development/libraries/opencomposite/helper.nix { };
-
   osdlyrics = callPackage ../applications/audio/osdlyrics { };
 
   ossutil = callPackage ../tools/admin/ossutil { };
@@ -6275,8 +6252,6 @@ with pkgs;
 
   reg = callPackage ../tools/virtualization/reg { };
 
-  retool = callPackage ../applications/misc/retool { };
-
   rex = callPackage ../tools/system/rex { };
 
   river = callPackage ../applications/window-managers/river { };
@@ -6792,7 +6767,9 @@ with pkgs;
 
   cicero-tui = callPackage ../tools/misc/cicero-tui { };
 
-  cilium-cli = callPackage ../applications/networking/cluster/cilium { };
+  cilium-cli = callPackage ../applications/networking/cluster/cilium {
+    buildGoModule = buildGo122Module;
+  };
 
   cjdns = callPackage ../tools/networking/cjdns { };
   cjdns-tools = callPackage ../tools/admin/cjdns-tools { };
@@ -6820,12 +6797,11 @@ with pkgs;
   cirrusgo = callPackage ../tools/security/cirrusgo { };
 
   inherit (callPackage ../applications/networking/remote/citrix-workspace { })
-    citrix_workspace_23_02_0
-    citrix_workspace_23_07_0
     citrix_workspace_23_09_0
     citrix_workspace_23_11_0
+    citrix_workspace_24_02_0
   ;
-  citrix_workspace = citrix_workspace_23_11_0;
+  citrix_workspace = citrix_workspace_24_02_0;
 
   clima = callPackage ../tools/text/clima { };
 
@@ -7104,6 +7080,8 @@ with pkgs;
 
   certstrap = callPackage ../tools/security/certstrap { };
 
+  cffconvert = python3Packages.toPythonApplication python3Packages.cffconvert;
+
   cfssl = callPackage ../tools/security/cfssl { };
 
   cfs-zen-tweaks = callPackage ../os-specific/linux/cfs-zen-tweaks { };
@@ -7293,11 +7271,9 @@ with pkgs;
 
   curlWithGnuTls = curl.override { gnutlsSupport = true; opensslSupport = false; };
 
-  curl-impersonate =
-    builtins.mapAttrs (_: pin-to-gcc12-if-gcc13)
-      (darwin.apple_sdk_11_0.callPackage ../tools/networking/curl-impersonate { });
-  curl-impersonate-ff = pin-to-gcc12-if-gcc13 curl-impersonate.curl-impersonate-ff;
-  curl-impersonate-chrom = pin-to-gcc12-if-gcc13 curl-impersonate.curl-impersonate-chrome;
+  curl-impersonate = darwin.apple_sdk_11_0.callPackage ../tools/networking/curl-impersonate { };
+  curl-impersonate-ff = curl-impersonate.curl-impersonate-ff;
+  curl-impersonate-chrome = curl-impersonate.curl-impersonate-chrome;
 
   curlie = callPackage ../tools/networking/curlie { };
 
@@ -7602,7 +7578,7 @@ with pkgs;
   };
 
   dump_syms = callPackage ../development/tools/dump_syms {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
 
   dumpasn1 = callPackage ../tools/security/dumpasn1 { };
@@ -7721,8 +7697,9 @@ with pkgs;
 
   rar2fs = callPackage ../tools/filesystems/rar2fs { };
 
-  rocmPackages = rocmPackages_5;
+  rocmPackages = rocmPackages_6;
   rocmPackages_5 = recurseIntoAttrs (callPackage ../development/rocm-modules/5 { });
+  rocmPackages_6 = recurseIntoAttrs (callPackage ../development/rocm-modules/6 { });
 
   rune = callPackage ../development/interpreters/rune { };
 
@@ -7738,8 +7715,6 @@ with pkgs;
 
   sonobuoy = callPackage ../applications/networking/cluster/sonobuoy { };
 
-  soupault = callPackage ../tools/typesetting/soupault { };
-
   stratisd = callPackage ../tools/filesystems/stratisd { };
 
   stratis-cli = callPackage ../tools/filesystems/stratis-cli { };
@@ -7957,10 +7932,6 @@ with pkgs;
 
   esshader = callPackage ../tools/graphics/esshader { };
 
-  etcher = callPackage ../tools/misc/etcher {
-    electron = electron_19;
-  };
-
   ethercalc = callPackage ../servers/web-apps/ethercalc { };
 
   ethtool = callPackage ../tools/misc/ethtool { };
@@ -8402,6 +8373,8 @@ with pkgs;
 
   gauge = callPackage ../development/tools/gauge { };
 
+  gawd = python3Packages.toPythonApplication python3Packages.gawd;
+
   gawk = callPackage ../tools/text/gawk {
     inherit (darwin) locale;
   };
@@ -8504,9 +8477,7 @@ with pkgs;
 
   gitlab-pages = callPackage ../applications/version-management/gitlab/gitlab-pages { };
 
-  gitlab-runner = callPackage ../development/tools/continuous-integration/gitlab-runner {
-    buildGoModule = buildGo120Module;
-  };
+  gitlab-runner = callPackage ../development/tools/continuous-integration/gitlab-runner { };
 
   gitlab-shell = callPackage ../applications/version-management/gitlab/gitlab-shell { };
 
@@ -8727,9 +8698,7 @@ with pkgs;
 
   goreplay = callPackage ../tools/networking/goreplay { };
 
-  gost = callPackage ../tools/networking/gost {
-    buildGoModule = buildGo120Module; # go 1.21 build failure
-  };
+  gost = callPackage ../tools/networking/gost { };
 
   gource = callPackage ../applications/version-management/gource { };
 
@@ -9090,7 +9059,10 @@ with pkgs;
 
   hdf5_1_10 = callPackage ../tools/misc/hdf5/1.10.nix { };
 
-  hdf5-mpi = hdf5.override { mpiSupport = true; };
+  hdf5-mpi = hdf5.override {
+    mpiSupport = true;
+    cppSupport = false;
+  };
 
   hdf5-cpp = hdf5.override { cppSupport = true; };
 
@@ -9382,6 +9354,8 @@ with pkgs;
 
   iocextract = with python3Packages; toPythonApplication iocextract;
 
+  iocsearcher = with python3Packages; toPythonApplication iocsearcher;
+
   ioping = callPackage ../tools/system/ioping { };
 
   ior = callPackage ../tools/system/ior { };
@@ -9552,8 +9526,6 @@ with pkgs;
 
   junkie = callPackage ../tools/networking/junkie { };
 
-  just = callPackage ../development/tools/just { };
-
   go-jira = callPackage ../applications/misc/go-jira { };
 
   jogl = callPackage ../by-name/jo/jogl/package.nix {
@@ -9774,9 +9746,7 @@ with pkgs;
 
   kool = callPackage ../development/tools/misc/kool { };
 
-  kore = callPackage ../development/web/kore {
-    openssl = openssl_1_1;
-  };
+  kore = callPackage ../development/web/kore { };
 
   krakenx = callPackage ../tools/system/krakenx { };
 
@@ -9802,9 +9772,7 @@ with pkgs;
 
   kdiff3 = libsForQt5.callPackage ../tools/text/kdiff3 { };
 
-  kube-router = callPackage ../applications/networking/cluster/kube-router {
-    buildGoModule = buildGo120Module;
-  };
+  kube-router = callPackage ../applications/networking/cluster/kube-router { };
 
   kubedock = callPackage ../development/tools/kubedock { };
 
@@ -10627,7 +10595,9 @@ with pkgs;
   lxcfs = callPackage ../os-specific/linux/lxcfs { };
 
   lxd = callPackage ../tools/admin/lxd/wrapper.nix { };
-  lxd-unwrapped = callPackage ../tools/admin/lxd { };
+  lxd-unwrapped = callPackage ../tools/admin/lxd {
+    buildGoModule = buildGo122Module;
+  };
 
   lxd-image-server = callPackage ../tools/virtualization/lxd-image-server { };
 
@@ -10714,6 +10684,8 @@ with pkgs;
     inherit (python3Packages) mako;
   };
 
+  marimo = with python3Packages; toPythonApplication marimo;
+
   marktext = callPackage ../applications/misc/marktext { };
 
   mars-mips = callPackage ../development/tools/mars-mips { };
@@ -10919,7 +10891,7 @@ with pkgs;
   metasploit = callPackage ../tools/security/metasploit { };
 
   mhost = callPackage ../applications/networking/mhost {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
 
   ms-sys = callPackage ../tools/misc/ms-sys { };
@@ -11185,7 +11157,12 @@ with pkgs;
 
   numberstation = callPackage ../applications/misc/numberstation { };
 
-  nvchecker = with python3Packages; toPythonApplication nvchecker;
+  nvchecker = with python3Packages; toPythonApplication (
+    nvchecker.overridePythonAttrs (oldAttrs: {
+      propagatedBuildInputs = oldAttrs.propagatedBuildInputs
+        ++ lib.flatten (builtins.attrValues oldAttrs.optional-dependencies);
+    })
+  );
 
   nvfetcher = haskell.lib.compose.justStaticExecutables haskellPackages.nvfetcher;
 
@@ -11581,6 +11558,8 @@ with pkgs;
 
   ssh-copy-id = callPackage ../tools/networking/openssh/copyid.nix { };
 
+  sshd-openpgp-auth = callPackage ../by-name/ss/ssh-openpgp-auth/daemon.nix { };
+
   opensp = callPackage ../tools/text/sgml/opensp { };
 
   opentofu = callPackage ../applications/networking/cluster/opentofu { };
@@ -11990,13 +11969,14 @@ with pkgs;
 
   piknik = callPackage ../tools/networking/piknik { };
 
-  pinentry = libsForQt5.callPackage ../tools/security/pinentry { };
-
-  pinentry-curses = (lib.getOutput "curses" pinentry);
-  pinentry-emacs = (lib.getOutput "emacs" pinentry);
-  pinentry-gtk2 = (lib.getOutput "gtk2" pinentry);
-  pinentry-qt = (lib.getOutput "qt" pinentry);
-  pinentry-gnome = (lib.getOutput "gnome3" pinentry);
+  inherit (callPackages ../tools/security/pinentry { })
+    pinentry-curses
+    pinentry-emacs
+    pinentry-gtk2
+    pinentry-gnome3
+    pinentry-qt
+    pinentry-tty
+    pinentry-all;
 
   pinentry_mac = callPackage ../tools/security/pinentry/mac.nix {
     inherit (darwin.apple_sdk.frameworks) Cocoa;
@@ -12224,7 +12204,8 @@ with pkgs;
   prototypejs = callPackage ../development/libraries/prototypejs { };
 
   proxmark3 = libsForQt5.callPackage ../tools/security/proxmark3/default.nix {
-    inherit (darwin.apple_sdk.frameworks) Foundation AppKit;
+    inherit (darwin.apple_sdk_11_0.frameworks) Foundation AppKit;
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
   };
 
   proxychains = callPackage ../tools/networking/proxychains { };
@@ -13265,6 +13246,8 @@ with pkgs;
 
   sockdump = callPackage ../tools/networking/sockdump { };
 
+  specup = haskellPackages.specup.bin;
+
   spglib = callPackage ../development/libraries/spglib {
     inherit (llvmPackages) openmp;
   };
@@ -13328,7 +13311,7 @@ with pkgs;
 
   sparrow-unwrapped = callPackage ../applications/blockchains/sparrow {
     openimajgrabber = callPackage ../applications/blockchains/sparrow/openimajgrabber.nix {};
-    openjdk = openjdk.override { enableJavaFX = true; };
+    openjdk = openjdk21.override { enableJavaFX = true; };
   };
 
   sparrow = callPackage ../applications/blockchains/sparrow/fhsenv.nix { };
@@ -13950,7 +13933,6 @@ with pkgs;
 
   trezord = callPackage ../servers/trezord {
     inherit (darwin.apple_sdk.frameworks) AppKit;
-    buildGoModule = buildGo120Module;
   };
 
   trezor-agent = with python3Packages; toPythonApplication trezor-agent;
@@ -14129,8 +14111,6 @@ with pkgs;
 
   typos = callPackage ../development/tools/typos { };
 
-  typstfmt = callPackage ../tools/typesetting/typstfmt { };
-
   typst-live = callPackage ../tools/typesetting/typst-live { };
 
   tz = callPackage ../tools/misc/tz { };
@@ -14664,8 +14644,6 @@ with pkgs;
 
   unnaturalscrollwheels = callPackage ../tools/inputmethods/unnaturalscrollwheels { };
 
-  unrar = callPackage ../tools/archivers/unrar { };
-
   unrar-wrapper = python3Packages.callPackage ../tools/archivers/unrar-wrapper { };
 
   uptime-kuma = callPackage ../servers/monitoring/uptime-kuma { };
@@ -15130,9 +15108,7 @@ with pkgs;
 
   zip = callPackage ../tools/archivers/zip { };
 
-  zincsearch = callPackage ../servers/search/zincsearch {
-    buildGoModule = buildGo120Module;
-  };
+  zincsearch = callPackage ../servers/search/zincsearch { };
 
   zkfuse = callPackage ../tools/filesystems/zkfuse { };
 
@@ -15221,8 +15197,6 @@ with pkgs;
 
   zsv = callPackage ../development/tools/zsv { };
 
-  zsync = callPackage ../tools/compression/zsync { };
-
   zxing = callPackage ../tools/graphics/zxing { };
 
   zkar = callPackage ../tools/security/zkar { };
@@ -15346,8 +15320,8 @@ with pkgs;
   temurin-bin-8 = javaPackages.compiler.temurin-bin.jdk-8;
   temurin-jre-bin-8 = javaPackages.compiler.temurin-bin.jre-8;
 
-  temurin-bin = temurin-bin-19;
-  temurin-jre-bin = temurin-jre-bin-19;
+  temurin-bin = temurin-bin-21;
+  temurin-jre-bin = temurin-jre-bin-21;
 
   semeru-bin-17 = javaPackages.compiler.semeru-bin.jdk-17;
   semeru-jre-bin-17 = javaPackages.compiler.semeru-bin.jre-17;
@@ -15504,7 +15478,6 @@ with pkgs;
 
   clang = llvmPackages.clang;
   clang_9  = llvmPackages_9.clang;
-  clang_11 = llvmPackages_11.clang;
   clang_12 = llvmPackages_12.clang;
   clang_13 = llvmPackages_13.clang;
   clang_14 = llvmPackages_14.clang;
@@ -15518,10 +15491,6 @@ with pkgs;
     llvmPackages = llvmPackages_9;
   };
 
-  clang-tools_11 = callPackage ../development/tools/clang-tools {
-    llvmPackages = llvmPackages_11;
-  };
-
   clang-tools_12 = callPackage ../development/tools/clang-tools {
     llvmPackages = llvmPackages_12;
   };
@@ -15575,7 +15544,7 @@ with pkgs;
     ocamlPackages = ocaml-ng.ocamlPackages_4_14;
   };
 
-  inherit (coqPackages_8_17) compcert;
+  inherit (coqPackages) compcert;
 
   computecpp-unwrapped = callPackage ../development/compilers/computecpp { };
   computecpp = wrapCCWith rec {
@@ -15706,15 +15675,6 @@ with pkgs;
   gccFun = callPackage ../development/compilers/gcc;
   gcc-unwrapped = gcc.cc;
 
-  disable-warnings-if-gcc13 = pkg:
-    if (pkg.stdenv.cc.cc.isGNU or false && lib.versionAtLeast pkg.stdenv.cc.cc.version "13.0")
-    then pkg.overrideAttrs(previousAttrs: previousAttrs // {
-      env = previousAttrs.env or {} // {
-        NIX_CFLAGS_COMPILE = (previousAttrs.env.NIX_CFLAGS_COMPILE or "") + " -Wno-error";
-      };
-    })
-    else pkg;
-
   pin-to-gcc12-if-gcc13 = pkg:
     if !(lib.isDerivation pkg) || !(pkg?override) then pkg else
     pkg.override (previousArgs:
@@ -15754,9 +15714,6 @@ with pkgs;
   gcc12Stdenv = overrideCC gccStdenv buildPackages.gcc12;
   gcc13Stdenv = overrideCC gccStdenv buildPackages.gcc13;
 
-  # Meant for packages that fail with newer than gcc10.
-  gcc10StdenvCompat = if stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "11" then gcc10Stdenv else stdenv;
-
   # This is not intended for use in nixpkgs but for providing a faster-running
   # compiler to nixpkgs users by building gcc with reproducibility-breaking
   # profile-guided optimizations
@@ -16126,13 +16083,13 @@ with pkgs;
   haskell = callPackage ./haskell-packages.nix { };
 
   haskellPackages = dontRecurseIntoAttrs
-    # JS backend is only available for GHC >= 9.6
-    (if stdenv.hostPlatform.isGhcjs
-     then haskell.packages.native-bignum.ghc96
-     # Prefer native-bignum to avoid linking issues with gmp
-     else if stdenv.hostPlatform.isStatic
-     then haskell.packages.native-bignum.ghc94
-     else haskell.packages.ghc94)
+    # Prefer native-bignum to avoid linking issues with gmp
+    # GHC 9.6 rts can't be built statically with hadrian, so we need to use 9.4
+    # until 9.8 is ready
+    (if stdenv.hostPlatform.isStatic then haskell.packages.native-bignum.ghc94
+    # JS backend can't use gmp
+    else if stdenv.hostPlatform.isGhcjs then haskell.packages.native-bignum.ghc96
+    else haskell.packages.ghc96)
   // { __recurseIntoDerivationForReleaseJobs = true; };
 
   # haskellPackages.ghc is build->host (it exposes the compiler used to build the
@@ -16145,9 +16102,11 @@ with pkgs;
   # plain, cross-compiled compiler (which is only theoretical at the moment).
   ghc = targetPackages.haskellPackages.ghc or
     # Prefer native-bignum to avoid linking issues with gmp
-    (if stdenv.targetPlatform.isStatic
-       then haskell.compiler.native-bignum.ghc94
-       else haskell.compiler.ghc94);
+    # Use 9.4 for static over broken 9.6
+    (if stdenv.targetPlatform.isStatic then haskell.compiler.native-bignum.ghc94
+    # JS backend can't use GMP
+    else if stdenv.targetPlatform.isGhcjs then haskell.compiler.native-bignum.ghc96
+    else haskell.compiler.ghc96);
 
   alex = haskell.lib.compose.justStaticExecutables haskellPackages.alex;
 
@@ -16344,8 +16303,8 @@ with pkgs;
   jdk21_headless = openjdk21_headless;
 
   /* default JDK */
-  jdk = jdk19;
-  jdk_headless = jdk19_headless;
+  jdk = jdk21;
+  jdk_headless = jdk21_headless;
 
   # Since the introduction of the Java Platform Module System in Java 9, Java
   # no longer ships a separate JRE package.
@@ -16479,7 +16438,6 @@ with pkgs;
 
   lld = llvmPackages.lld;
   lld_9 = llvmPackages_9.lld;
-  lld_11 = llvmPackages_11.lld;
   lld_12 = llvmPackages_12.lld;
   lld_13 = llvmPackages_13.lld;
   lld_14 = llvmPackages_14.lld;
@@ -16489,7 +16447,6 @@ with pkgs;
 
   lldb = llvmPackages.lldb;
   lldb_9 = llvmPackages_9.lldb;
-  lldb_11 = llvmPackages_11.lldb;
   lldb_12 = llvmPackages_12.lldb;
   lldb_13 = llvmPackages_13.lldb;
   lldb_14 = llvmPackages_14.lldb;
@@ -16499,7 +16456,6 @@ with pkgs;
 
   llvm = llvmPackages.llvm;
   llvm_9  = llvmPackages_9.llvm;
-  llvm_11 = llvmPackages_11.llvm;
   llvm_12 = llvmPackages_12.llvm;
   llvm_13 = llvmPackages_13.llvm;
   llvm_14 = llvmPackages_14.llvm;
@@ -16539,20 +16495,11 @@ with pkgs;
     stdenv = if stdenv.cc.cc.isGNU or false then gcc12Stdenv else stdenv; # does not build with gcc13
   });
 
-  llvmPackages_11 = recurseIntoAttrs (callPackage ../development/compilers/llvm/11 ({
-    inherit (stdenvAdapters) overrideCC;
-    buildLlvmTools = buildPackages.llvmPackages_11.tools;
-    targetLlvmLibraries = targetPackages.llvmPackages_11.libraries or llvmPackages_11.libraries;
-    targetLlvm = targetPackages.llvmPackages_11.llvm or llvmPackages_11.llvm;
-    stdenv = if stdenv.cc.cc.isGNU or false then gcc12Stdenv else stdenv; # does not build with gcc13
-  }));
-
   llvmPackages_12 = recurseIntoAttrs (callPackage ../development/compilers/llvm/12 ({
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_12.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_12.libraries or llvmPackages_12.libraries;
     targetLlvm = targetPackages.llvmPackages_12.llvm or llvmPackages_12.llvm;
-    stdenv = if stdenv.cc.cc.isGNU or false then gcc12Stdenv else stdenv; # .libcxxabi does not build with gcc13
   }));
 
   llvmPackages_13 = recurseIntoAttrs (callPackage ../development/compilers/llvm/13 ({
@@ -16568,7 +16515,6 @@ with pkgs;
     buildLlvmTools = buildPackages.llvmPackages_14.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_14.libraries or llvmPackages_14.libraries;
     targetLlvm = targetPackages.llvmPackages_14.llvm or llvmPackages_14.llvm;
-    stdenv = if stdenv.cc.cc.isGNU or false then gcc12Stdenv else stdenv; # does not build with gcc13
   }));
 
   llvmPackages_15 = recurseIntoAttrs (callPackage ../development/compilers/llvm/15 ({
@@ -16694,7 +16640,7 @@ with pkgs;
   nvidia_cg_toolkit = callPackage ../development/compilers/nvidia-cg-toolkit { };
 
   obliv-c = callPackage ../development/compilers/obliv-c {
-    stdenv = gcc10StdenvCompat;
+    stdenv = gcc10Stdenv;
     ocamlPackages = ocaml-ng.ocamlPackages_4_14;
   };
 
@@ -16763,7 +16709,7 @@ with pkgs;
   rasm = callPackage ../development/compilers/rasm { };
 
   replibyte = callPackage ../development/tools/database/replibyte {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
 
   rgbds = callPackage ../development/compilers/rgbds { };
@@ -16858,7 +16804,6 @@ with pkgs;
   };
   cargo-leptos = callPackage ../development/tools/rust/cargo-leptos { };
   cargo-kcov = callPackage ../development/tools/rust/cargo-kcov { };
-  cargo-graph = callPackage ../development/tools/rust/cargo-graph { };
   cargo-guppy = callPackage ../development/tools/rust/cargo-guppy { };
   cargo-hack = callPackage ../development/tools/rust/cargo-hack { };
   cargo-license = callPackage ../development/tools/rust/cargo-license { };
@@ -16883,9 +16828,13 @@ with pkgs;
   buildPgxExtension = callPackage ../development/tools/rust/cargo-pgx/buildPgxExtension.nix {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
-  cargo-pgrx = callPackage ../development/tools/rust/cargo-pgrx/default.nix {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
+  inherit (callPackages ../development/tools/rust/cargo-pgrx { })
+    cargo-pgrx_0_10_2
+    cargo-pgrx_0_11_2
+    cargo-pgrx_0_11_3
+    ;
+  cargo-pgrx = cargo-pgrx_0_11_2;
+
   buildPgrxExtension = callPackage ../development/tools/rust/cargo-pgrx/buildPgrxExtension.nix {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -17142,10 +17091,6 @@ with pkgs;
 
   stalin = callPackage ../development/compilers/stalin { };
 
-  stanc = callPackage ../development/compilers/stanc {
-    ocamlPackages = ocaml-ng.ocamlPackages_4_14_janeStreet_0_15;
-  };
-
   metaBuildEnv = callPackage ../development/compilers/meta-environment/meta-build-env { };
 
   svd2rust = callPackage ../development/tools/rust/svd2rust { };
@@ -18200,10 +18145,6 @@ with pkgs;
 
   pylyzer = callPackage ../development/tools/language-servers/pylyzer { };
 
-  rnix-lsp = callPackage ../development/tools/language-servers/rnix-lsp {
-    nix = nixVersions.nix_2_15;
-  };
-
   ruff-lsp = python3Packages.callPackage ../development/tools/language-servers/ruff-lsp { };
 
   rune-languageserver = callPackage ../development/tools/language-servers/rune-languageserver { };
@@ -18277,46 +18218,16 @@ with pkgs;
 
   inherit (callPackages ../development/tools/electron/binary { })
     electron-bin
-    electron_10-bin
-    electron_11-bin
-    electron_12-bin
-    electron_13-bin
-    electron_14-bin
-    electron_15-bin
-    electron_16-bin
-    electron_17-bin
-    electron_18-bin
-    electron_19-bin
-    electron_20-bin
-    electron_21-bin
-    electron_22-bin
-    electron_23-bin
     electron_24-bin
-    electron_25-bin
-    electron_26-bin
     electron_27-bin
-    electron_28-bin;
-
-  electron_10 = electron_10-bin;
-  electron_11 = electron_11-bin;
-  electron_12 = electron_12-bin;
-  electron_13 = electron_13-bin;
-  electron_14 = electron_14-bin;
-  electron_15 = electron_15-bin;
-  electron_16 = electron_16-bin;
-  electron_17 = electron_17-bin;
-  electron_18 = electron_18-bin;
-  electron_19 = electron_19-bin;
-  electron_20 = electron_20-bin;
-  electron_21 = electron_21-bin;
-  electron_22 = electron_22-bin;
-  electron_23 = electron_23-bin;
+    electron_28-bin
+    electron_29-bin;
+
   electron_24 = electron_24-bin;
-  electron_25 = electron_25-bin;
-  electron_26 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_26 then electron-source.electron_26 else electron_26-bin;
   electron_27 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_27 then electron-source.electron_27 else electron_27-bin;
   electron_28 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_28 then electron-source.electron_28 else electron_28-bin;
-  electron = electron_28;
+  electron_29 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_29 then electron-source.electron_29 else electron_29-bin;
+  electron = electron_29;
 
   autobuild = callPackage ../development/tools/misc/autobuild { };
 
@@ -18352,35 +18263,28 @@ with pkgs;
 
   bazel = bazel_6;
 
-  bazel_4 = callPackage ../development/tools/build-managers/bazel/bazel_4 {
-    inherit (darwin) cctools;
-    inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
-    buildJdk = jdk11_headless;
-    buildJdkName = "java11";
-    runJdk = jdk11_headless;
-    stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else gcc10StdenvCompat;
-    bazel_self = bazel_4;
-  };
-
-  bazel_5 = pin-to-gcc12-if-gcc13 (callPackage ../development/tools/build-managers/bazel/bazel_5 {
+  bazel_5 = callPackage ../development/tools/build-managers/bazel/bazel_5 {
     inherit (darwin) cctools sigtool;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
     buildJdk = jdk11_headless;
     runJdk = jdk11_headless;
-    stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
+    stdenv = if stdenv.cc.isClang then llvmPackages.stdenv
+      else if stdenv.cc.isGNU then gcc12Stdenv
+      else stdenv;
     bazel_self = bazel_5;
-  });
+  };
 
-  bazel_6 = pin-to-gcc12-if-gcc13 (darwin.apple_sdk_11_0.callPackage ../development/tools/build-managers/bazel/bazel_6 {
+  bazel_6 = darwin.apple_sdk_11_0.callPackage ../development/tools/build-managers/bazel/bazel_6 {
     inherit (darwin) cctools;
     inherit (darwin.apple_sdk_11_0.frameworks) CoreFoundation CoreServices Foundation;
     buildJdk = jdk11_headless;
     runJdk = jdk11_headless;
-    stdenv = if stdenv.isDarwin then
-      darwin.apple_sdk_11_0.stdenv else
-      if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv
+      else if stdenv.cc.isClang then llvmPackages.stdenv
+      else if stdenv.cc.isGNU then gcc12Stdenv
+      else stdenv;
     bazel_self = bazel_6;
-  });
+  };
 
   bazel_7 = darwin.apple_sdk_11_0.callPackage ../development/tools/build-managers/bazel/bazel_7 {
     inherit (darwin) cctools sigtool;
@@ -18780,7 +18684,6 @@ with pkgs;
   devbox = callPackage ../development/tools/devbox { };
 
   libcxx = llvmPackages.libcxx;
-  libcxxabi = llvmPackages.libcxxabi;
 
   librarian-puppet-go = callPackage ../development/tools/librarian-puppet-go { };
 
@@ -18820,8 +18723,6 @@ with pkgs;
 
   devtodo = callPackage ../development/tools/devtodo { };
 
-  dfeet = callPackage ../development/tools/misc/d-feet { };
-
   d-spy = callPackage ../development/tools/misc/d-spy { };
 
   dfu-programmer = callPackage ../development/tools/misc/dfu-programmer { };
@@ -20014,7 +19915,9 @@ with pkgs;
   terracognita = callPackage ../development/tools/misc/terracognita { };
 
   terraform-lsp = callPackage ../development/tools/misc/terraform-lsp { };
-  terraform-ls = callPackage ../development/tools/misc/terraform-ls { };
+  terraform-ls = callPackage ../development/tools/misc/terraform-ls {
+    buildGoModule = buildGo122Module;
+  };
 
   terraformer = callPackage ../development/tools/misc/terraformer { };
 
@@ -20250,8 +20153,6 @@ with pkgs;
 
   ### DEVELOPMENT / LIBRARIES
 
-  a52dec = callPackage ../development/libraries/a52dec { };
-
   aalib = callPackage ../development/libraries/aalib { };
 
   abseil-cpp_202103 = callPackage ../development/libraries/abseil-cpp/202103.nix {
@@ -20480,9 +20381,6 @@ with pkgs;
     then pkgs."androidndkPkgs_${stdenv.hostPlatform.ndkVer}".libraries
     else callPackage ../os-specific/linux/bionic-prebuilt { };
 
-
-  boehmgc = callPackage ../development/libraries/boehm-gc { };
-
   boolstuff = callPackage ../development/libraries/boolstuff { };
 
   inherit (callPackage ../development/libraries/boost { inherit (buildPackages) boost-build; })
@@ -20843,8 +20741,6 @@ with pkgs;
 
   directfb = callPackage ../development/libraries/directfb { };
 
-  discordchatexporter-cli = callPackage ../tools/backup/discordchatexporter-cli { };
-
   discord-gamesdk = callPackage ../development/libraries/discord-gamesdk { };
 
   discord-rpc = callPackage ../development/libraries/discord-rpc {
@@ -20994,50 +20890,19 @@ with pkgs;
 
   linbox = callPackage ../development/libraries/linbox { };
 
-  ffmpeg_4 = callPackage ../development/libraries/ffmpeg/4.nix {
-    inherit (darwin.apple_sdk.frameworks)
-      Cocoa CoreServices CoreAudio CoreMedia AVFoundation MediaToolbox
-      VideoDecodeAcceleration VideoToolbox;
-  };
-  ffmpeg_4-headless = ffmpeg_4.override {
-    ffmpegVariant = "headless";
-  };
-  ffmpeg_4-full = ffmpeg_4.override {
-    ffmpegVariant = "full";
-  };
-
-  ffmpeg_5 = callPackage ../development/libraries/ffmpeg/5.nix {
-    inherit (darwin.apple_sdk.frameworks)
-      Cocoa CoreServices CoreAudio CoreMedia AVFoundation MediaToolbox
-      VideoDecodeAcceleration VideoToolbox;
-  };
-  ffmpeg_5-headless = ffmpeg_5.override {
-    ffmpegVariant = "headless";
-  };
-  ffmpeg_5-full = ffmpeg_5.override {
-    ffmpegVariant = "full";
-  };
-
-  ffmpeg_6 = callPackage ../development/libraries/ffmpeg/6.nix {
-     inherit (darwin.apple_sdk.frameworks)
-      Cocoa CoreServices CoreAudio CoreMedia AVFoundation MediaToolbox
-      VideoDecodeAcceleration VideoToolbox;
-  };
-  ffmpeg_6-headless = ffmpeg_6.override {
-    ffmpegVariant = "headless";
-  };
-  ffmpeg_6-full = ffmpeg_6.override {
-    ffmpegVariant = "full";
-  };
-
-  # Aliases
-  # Please make sure this is updated to the latest version on the next major
-  # update to ffmpeg
-  # Packages which use ffmpeg as a library, should pin to the relevant major
-  # version number which the upstream support.
-  ffmpeg = ffmpeg_6;
-  ffmpeg-headless = ffmpeg_6-headless;
-  ffmpeg-full = ffmpeg_6-full;
+  inherit (callPackage ../development/libraries/ffmpeg { })
+    ffmpeg_4
+    ffmpeg_4-headless
+    ffmpeg_4-full
+    ffmpeg_5
+    ffmpeg_5-headless
+    ffmpeg_5-full
+    ffmpeg_6
+    ffmpeg_6-headless
+    ffmpeg_6-full
+    ffmpeg
+    ffmpeg-headless
+    ffmpeg-full;
 
   ffmpegthumbnailer = callPackage ../development/libraries/ffmpegthumbnailer { };
 
@@ -21118,9 +20983,7 @@ with pkgs;
     };
   };
 
-  freetts = callPackage ../development/libraries/freetts {
-    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-  };
+  freetts = callPackage ../development/libraries/freetts { };
 
   frog = res.languageMachines.frog;
 
@@ -21824,7 +21687,7 @@ with pkgs;
 
   hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { };
 
-  hydra-check = with python310.pkgs; toPythonApplication hydra-check;
+  hydra-check = with python3.pkgs; toPythonApplication hydra-check;
 
   hyena = callPackage ../development/libraries/hyena { };
 
@@ -22214,8 +22077,6 @@ with pkgs;
 
   libbs2b = callPackage ../development/libraries/audio/libbs2b { };
 
-  libbson = callPackage ../development/libraries/libbson { };
-
   libbytesize = callPackage ../development/libraries/libbytesize { };
 
   libcaca = callPackage ../development/libraries/libcaca { };
@@ -23523,8 +23384,6 @@ with pkgs;
 
   yas = callPackage ../development/libraries/yas { };
 
-  libyang = callPackage ../development/libraries/libyang { };
-
   libcyaml = callPackage ../development/libraries/libcyaml { };
 
   rang = callPackage ../development/libraries/rang { };
@@ -23945,31 +23804,7 @@ with pkgs;
 
   nvitop = callPackage ../tools/system/nvitop { };
 
-  nvtop = callPackage ../tools/system/nvtop { };
-  nvtop-amd = (callPackage ../tools/system/nvtop {
-    amd = true;
-    intel = false;
-    msm = false;
-    nvidia = false;
-  }).overrideAttrs { pname = "nvtop-amd"; };
-  nvtop-intel = (callPackage ../tools/system/nvtop {
-    amd = false;
-    intel = true;
-    msm = false;
-    nvidia = false;
-  }).overrideAttrs { pname = "nvtop-intel"; };
-  nvtop-msm = (callPackage ../tools/system/nvtop {
-    amd = false;
-    intel = false;
-    msm = true;
-    nvidia = false;
-  }).overrideAttrs { pname = "nvtop-msm"; };
-  nvtop-nvidia = (callPackage ../tools/system/nvtop {
-    amd = false;
-    intel = false;
-    msm = false;
-    nvidia = true;
-  }).overrideAttrs { pname = "nvtop-nvidia"; };
+  nvtopPackages = recurseIntoAttrs (import ../tools/system/nvtop { inherit callPackage; });
 
   ocl-icd = callPackage ../development/libraries/ocl-icd { };
 
@@ -24111,7 +23946,7 @@ with pkgs;
 
   libressl = libressl_3_8;
 
-  boringssl = disable-warnings-if-gcc13 (callPackage ../development/libraries/boringssl { });
+  boringssl = callPackage ../development/libraries/boringssl { };
 
   wolfssl = darwin.apple_sdk_11_0.callPackage ../development/libraries/wolfssl {
     inherit (darwin.apple_sdk_11_0.frameworks) Security;
@@ -24263,10 +24098,6 @@ with pkgs;
 
   prime-server = callPackage ../development/libraries/prime-server { };
 
-  primecount = callPackage ../applications/science/math/primecount { };
-
-  primesieve = callPackage ../applications/science/math/primesieve { };
-
   proj = callPackage ../development/libraries/proj {
     stdenv = if stdenv.cc.isClang then overrideLibcxx llvmPackages_13.stdenv else stdenv;
   };
@@ -24286,7 +24117,9 @@ with pkgs;
 
   protobuf_25 = callPackage ../development/libraries/protobuf/25.nix { };
   protobuf_24 = callPackage ../development/libraries/protobuf/24.nix { };
-  protobuf_23 = callPackage ../development/libraries/protobuf/23.nix { };
+  protobuf_23 = callPackage ../development/libraries/protobuf/23.nix {
+    abseil-cpp = abseil-cpp_202301;
+  };
   protobuf_21 = callPackage ../development/libraries/protobuf/21.nix {
     abseil-cpp = abseil-cpp_202103;
   };
@@ -24509,7 +24342,7 @@ with pkgs;
 
   rlottie = callPackage ../development/libraries/rlottie { };
 
-  rocksdb = pin-to-gcc12-if-gcc13 (callPackage ../development/libraries/rocksdb { });
+  rocksdb = callPackage ../development/libraries/rocksdb { };
 
   rocksdb_7_10 = rocksdb.overrideAttrs rec {
     pname = "rocksdb";
@@ -25050,8 +24883,6 @@ with pkgs;
 
   thrift = callPackage ../development/libraries/thrift { };
 
-  thrift-0_10 = callPackage ../development/libraries/thrift/0.10.nix { };
-
   tidyp = callPackage ../development/libraries/tidyp { };
 
   tidal-hifi = callPackage ../applications/audio/tidal-hifi { };
@@ -25151,7 +24982,7 @@ with pkgs;
 
   ucommon = callPackage ../development/libraries/ucommon { };
 
-  v8 = pin-to-gcc12-if-gcc13 (callPackage ../development/libraries/v8 (
+  v8 = callPackage ../development/libraries/v8 (
     let
       stdenv' = if stdenv.cc.isClang && lib.versionAtLeast (lib.getVersion stdenv.cc.cc) "16"
         then overrideLibcxx llvmPackages_15.stdenv
@@ -25160,7 +24991,7 @@ with pkgs;
     {
       stdenv = if stdenv'.isDarwin then overrideSDK stdenv' "11.0" else stdenv';
     }
-  ));
+  );
 
   intel-vaapi-driver = callPackage ../development/libraries/intel-vaapi-driver { };
 
@@ -25418,7 +25249,9 @@ with pkgs;
 
   yojimbo = callPackage ../development/libraries/yojimbo { };
 
-  yubico-pam = callPackage ../development/libraries/yubico-pam { };
+  yubico-pam = callPackage ../development/libraries/yubico-pam {
+    inherit (darwin.apple_sdk.frameworks) CoreServices SystemConfiguration;
+  };
 
   yubico-piv-tool = callPackage ../tools/misc/yubico-piv-tool {
     inherit (darwin.apple_sdk.frameworks) PCSC;
@@ -25602,20 +25435,9 @@ with pkgs;
   ### DEVELOPMENT / GO
 
   # the unversioned attributes should always point to the same go version
-  go = go_1_21;
-  buildGoModule = buildGo121Module;
-  buildGoPackage = buildGo121Package;
-
-  # requires a newer Apple SDK
-  go_1_20 = darwin.apple_sdk_11_0.callPackage ../development/compilers/go/1.20.nix {
-    inherit (darwin.apple_sdk_11_0.frameworks) Foundation Security;
-  };
-  buildGo120Module = darwin.apple_sdk_11_0.callPackage ../build-support/go/module.nix {
-    go = buildPackages.go_1_20;
-  };
-  buildGo120Package = darwin.apple_sdk_11_0.callPackage ../build-support/go/package.nix {
-    go = buildPackages.go_1_20;
-  };
+  go = go_1_22;
+  buildGoModule = buildGo122Module;
+  buildGoPackage = buildGo122Package;
 
   # requires a newer Apple SDK
   go_1_21 = darwin.apple_sdk_11_0.callPackage ../development/compilers/go/1.21.nix {
@@ -26050,13 +25872,12 @@ with pkgs;
 
   dspam = callPackage ../servers/mail/dspam { };
 
-  engelsystem = callPackage ../servers/web-apps/engelsystem { php = php81; };
+  engelsystem = callPackage ../servers/web-apps/engelsystem { };
 
-  envoy = pin-to-gcc12-if-gcc13 (callPackage ../servers/http/envoy {
-    go = go_1_20;
+  envoy = callPackage ../servers/http/envoy {
     jdk = openjdk11_headless;
     gn = gn1924;
-  });
+  };
 
   ergochat = callPackage ../servers/irc/ergochat { };
 
@@ -26147,7 +25968,9 @@ with pkgs;
   grafana = callPackage ../servers/monitoring/grafana { };
   grafanaPlugins = callPackages ../servers/monitoring/grafana/plugins { };
 
-  grafana-agent = callPackage ../servers/monitoring/grafana-agent { };
+  grafana-agent = callPackage ../servers/monitoring/grafana-agent {
+    buildGoModule = buildGo122Module;
+  };
 
   grafana-loki = callPackage ../servers/monitoring/loki { };
   promtail = callPackage ../servers/monitoring/loki/promtail.nix { };
@@ -26552,8 +26375,6 @@ with pkgs;
 
   sympa = callPackage ../servers/mail/sympa { };
 
-  syncstorage-rs = callPackage ../servers/syncstorage-rs { };
-
   system-sendmail = lowPrio (callPackage ../servers/mail/system-sendmail { });
 
   # PulseAudio daemons
@@ -26682,7 +26503,9 @@ with pkgs;
 
   azuredatastudio = callPackage ../applications/misc/azuredatastudio { };
 
-  miniflux = callPackage ../servers/miniflux { };
+  miniflux = callPackage ../servers/miniflux {
+    buildGoModule = buildGo122Module;
+  };
 
   mir = callPackage ../servers/mir { };
 
@@ -26790,8 +26613,8 @@ with pkgs;
     postgresql_15_jit
     postgresql_16_jit
   ;
-  postgresql = postgresql_15.override { this = postgresql; };
-  postgresql_jit = postgresql_15_jit.override { this = postgresql_jit; };
+  postgresql = postgresql_15;
+  postgresql_jit = postgresql_15_jit;
   postgresqlPackages = recurseIntoAttrs postgresql.pkgs;
   postgresqlJitPackages = recurseIntoAttrs postgresql_jit.pkgs;
   postgresql12Packages = recurseIntoAttrs postgresql_12.pkgs;
@@ -26947,8 +26770,6 @@ with pkgs;
 
   redstore = callPackage ../servers/http/redstore { };
 
-  reproxy = callPackage ../servers/reproxy { };
-
   repro-get = callPackage ../tools/package-management/repro-get { };
 
   restic = callPackage ../tools/backup/restic { };
@@ -27037,11 +26858,9 @@ with pkgs;
 
   sipwitch = callPackage ../servers/sip/sipwitch { };
 
-  slimserver = callPackage ../servers/slimserver { };
-
   smcroute = callPackage ../servers/smcroute { };
 
-  snipe-it = callPackage ../servers/web-apps/snipe-it {
+  snipe-it = callPackage ../by-name/sn/snipe-it/package.nix {
     php = php81;
   };
 
@@ -27068,10 +26887,6 @@ with pkgs;
 
   storm = callPackage ../servers/computing/storm { };
 
-  surrealdb = callPackage ../servers/nosql/surrealdb {
-    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
-  };
-
   switcheroo-control = callPackage ../os-specific/linux/switcheroo-control { };
 
   slurm = callPackage ../servers/computing/slurm { };
@@ -27266,10 +27081,6 @@ with pkgs;
 
   pg_tileserv = callPackage ../servers/geospatial/pg_tileserv { };
 
-  t-rex = callPackage ../servers/geospatial/t-rex {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
-
   tegola = callPackage ../servers/geospatial/tegola { };
 
   tile38 = callPackage ../servers/geospatial/tile38 { };
@@ -27314,6 +27125,7 @@ with pkgs;
     armTrustedFirmwareQemu
     armTrustedFirmwareRK3328
     armTrustedFirmwareRK3399
+    armTrustedFirmwareRK3588
     armTrustedFirmwareS905
     ;
 
@@ -27402,8 +27214,6 @@ with pkgs;
 
   cpustat = callPackage ../os-specific/linux/cpustat { };
 
-  cockroachdb = callPackage ../servers/sql/cockroachdb { };
-
   cockroachdb-bin = callPackage ../servers/sql/cockroachdb/cockroachdb-bin.nix { };
 
   coconutbattery = callPackage ../os-specific/darwin/coconutbattery { };
@@ -27452,8 +27262,6 @@ with pkgs;
 
   disk_indicator = callPackage ../os-specific/linux/disk-indicator { };
 
-  displaycal = callPackage ../applications/graphics/displaycal { };
-
   displaylink = callPackage ../os-specific/linux/displaylink {
     inherit (linuxPackages) evdi;
   };
@@ -27749,8 +27557,6 @@ with pkgs;
 
   smemstat = callPackage ../os-specific/linux/smemstat { };
 
-  tgpt = callPackage ../tools/misc/tgpt { };
-
   tgt = callPackage ../tools/networking/tgt { };
 
   lkl = callPackage ../applications/virtualization/lkl { };
@@ -27847,9 +27653,7 @@ with pkgs;
 
   cryptodev = linuxPackages.cryptodev;
 
-  dpdk = callPackage ../os-specific/linux/dpdk {
-    kernel = null; # dpdk modules are in linuxPackages.dpdk.kmod
-  };
+  dpdk = callPackage ../os-specific/linux/dpdk { };
 
   keyutils = callPackage ../os-specific/linux/keyutils { };
 
@@ -28066,9 +27870,7 @@ with pkgs;
 
   goconst = callPackage ../development/tools/goconst { };
 
-  goconvey = callPackage ../development/tools/goconvey {
-    buildGoModule = buildGo120Module;
-  };
+  goconvey = callPackage ../development/tools/goconvey { };
 
   go-callvis = callPackage ../development/tools/go-callvis { };
 
@@ -28102,7 +27904,9 @@ with pkgs;
 
   goverview = callPackage ../tools/security/goverview { };
 
-  go-tools = callPackage ../development/tools/go-tools { };
+  go-tools = callPackage ../development/tools/go-tools {
+    buildGoModule = buildGo122Module;
+  };
 
   gotest = callPackage ../development/tools/gotest { };
 
@@ -28122,9 +27926,7 @@ with pkgs;
 
   go-mod-graph-chart = callPackage ../development/tools/go-mod-graph-chart { };
 
-  gomacro = callPackage ../development/tools/gomacro {
-    buildGoModule = buildGo120Module;
-  };
+  gomacro = callPackage ../development/tools/gomacro { };
 
   gomodifytags = callPackage ../development/tools/gomodifytags { };
 
@@ -28527,6 +28329,7 @@ with pkgs;
     ubootOlimexA64Olinuxino
     ubootOlimexA64Teres1
     ubootOrangePi3
+    ubootOrangePi5
     ubootOrangePiPc
     ubootOrangePiZeroPlus2H5
     ubootOrangePiZero
@@ -28547,6 +28350,7 @@ with pkgs;
     ubootRaspberryPi4_32bit
     ubootRaspberryPi4_64bit
     ubootRaspberryPiZero
+    ubootRock5ModelB
     ubootRock64
     ubootRock64v2
     ubootRockPi4
@@ -28731,6 +28535,8 @@ with pkgs;
 
   android-udev-rules = callPackage ../os-specific/linux/android-udev-rules { };
 
+  andromeda-gtk-theme = libsForQt5.callPackage ../data/themes/andromeda-gtk-theme { };
+
   ankacoder = callPackage ../data/fonts/ankacoder { };
   ankacoder-condensed = callPackage ../data/fonts/ankacoder/condensed.nix { };
 
@@ -28919,8 +28725,6 @@ with pkgs;
 
   commit-mono = callPackage ../data/fonts/commit-mono { };
 
-  conway_polynomials = callPackage ../data/misc/conway_polynomials { };
-
   cooper-hewitt = callPackage ../data/fonts/cooper-hewitt { };
 
   d2coding = callPackage ../data/fonts/d2coding { };
@@ -29447,9 +29251,9 @@ with pkgs;
 
   open-sans = callPackage ../data/fonts/open-sans { };
 
-  openmoji-color = callPackage ../data/fonts/openmoji { variant = "color"; };
+  openmoji-color = callPackage ../data/fonts/openmoji { fontFormats = ["glyf_colr_0"]; };
 
-  openmoji-black = callPackage ../data/fonts/openmoji { variant = "black"; };
+  openmoji-black = callPackage ../data/fonts/openmoji { fontFormats = ["glyf"]; };
 
   openzone-cursors = callPackage ../data/themes/openzone { };
 
@@ -29573,8 +29377,6 @@ with pkgs;
 
   sarabun-font = callPackage ../data/fonts/sarabun { };
 
-  sarasa-gothic = callPackage ../data/fonts/sarasa-gothic { };
-
   savepagenow = callPackage ../tools/misc/savepagenow { };
 
   scheme-manpages = callPackage ../data/documentation/scheme-manpages { };
@@ -29949,11 +29751,6 @@ with pkgs;
 
   qmapshack = libsForQt5.callPackage ../applications/gis/qmapshack { };
 
-  saga = callPackage ../applications/gis/saga {
-    inherit (darwin.apple_sdk.frameworks) Cocoa;
-    inherit (libsForQt5) dxflib;
-  };
-
   spatialite_gui = callPackage ../applications/gis/spatialite-gui {
     inherit (darwin.apple_sdk.frameworks) Carbon Cocoa IOKit;
     wxGTK = wxGTK32;
@@ -30071,8 +29868,6 @@ with pkgs;
   amarok = libsForQt5.callPackage ../applications/audio/amarok { };
   amarok-kf5 = amarok; # for compatibility
 
-  amfora = callPackage ../applications/networking/browsers/amfora { };
-
   AMB-plugins = callPackage ../applications/audio/AMB-plugins { };
 
   ams-lv2 = callPackage ../applications/audio/ams-lv2 { };
@@ -30354,7 +30149,9 @@ with pkgs;
 
   bgpq4 = callPackage ../tools/networking/bgpq4 { };
 
-  blackbox = callPackage ../applications/version-management/blackbox { };
+  blackbox = callPackage ../applications/version-management/blackbox {
+    pinentry = pinentry-curses;
+  };
 
   bleachbit = callPackage ../applications/misc/bleachbit { };
 
@@ -30718,9 +30515,8 @@ with pkgs;
 
   daktilo = callPackage ../tools/misc/daktilo { };
 
-  darcs = haskell.lib.compose.overrideCabal (drv: {
-    configureFlags = (lib.remove "-flibrary" drv.configureFlags or []) ++ ["-f-library"];
-  }) (haskell.lib.compose.justStaticExecutables haskellPackages.darcs);
+  darcs = haskell.lib.compose.disableCabalFlag "library"
+    (haskell.lib.compose.justStaticExecutables haskell.packages.ghc94.darcs);
 
   darkman = callPackage ../applications/misc/darkman { };
 
@@ -30812,7 +30608,7 @@ with pkgs;
   dnglab = callPackage ../tools/graphics/dnglab { };
 
   inherit (callPackage ../applications/virtualization/docker {})
-    docker_20_10 docker_24 docker_25;
+    docker_24 docker_25;
 
   docker = docker_24;
   docker-client = docker.override { clientOnly = true; };
@@ -30857,7 +30653,9 @@ with pkgs;
 
   drawing = callPackage ../applications/graphics/drawing { };
 
-  drawio = callPackage ../applications/graphics/drawio { };
+  drawio = callPackage ../applications/graphics/drawio {
+    inherit (darwin) autoSignDarwinBinariesHook;
+  };
   drawio-headless = callPackage ../applications/graphics/drawio/headless.nix { };
 
   drawpile = libsForQt5.callPackage ../applications/graphics/drawpile { };
@@ -31084,9 +30882,7 @@ with pkgs;
 
   gigalixir = callPackage ../tools/misc/gigalixir { };
 
-  go-libp2p-daemon = callPackage ../servers/go-libp2p-daemon {
-    buildGoModule = buildGo120Module;
-  };
+  go-libp2p-daemon = callPackage ../servers/go-libp2p-daemon { };
 
   go-motion = callPackage ../development/tools/go-motion { };
 
@@ -31103,8 +30899,6 @@ with pkgs;
 
   gspeech = callPackage ../applications/audio/gspeech { };
 
-  gtkcord4 = callPackage ../applications/audio/gtkcord4 { };
-
   haruna = libsForQt5.callPackage ../applications/video/haruna { };
 
   hdrmerge = libsForQt5.callPackage ../applications/graphics/hdrmerge { };
@@ -31652,22 +31446,6 @@ with pkgs;
 
   fragments = callPackage ../applications/networking/p2p/fragments { };
 
-  freecad = libsForQt5.callPackage ../applications/graphics/freecad {
-    boost = python3Packages.boost;
-    inherit (python3Packages)
-      gitpython
-      matplotlib
-      pivy
-      ply
-      pycollada
-      pyside2
-      pyside2-tools
-      python
-      pyyaml
-      scipy
-      shiboken2;
-  };
-
   freedv = callPackage ../applications/radio/freedv {
     inherit (darwin.apple_sdk.frameworks) AppKit AVFoundation Cocoa CoreMedia;
     codec2 = codec2.override {
@@ -31899,8 +31677,6 @@ with pkgs;
 
   gscreenshot = callPackage ../applications/graphics/gscreenshot { };
 
-  gtkpod = callPackage ../applications/audio/gtkpod { };
-
   guacamole-client = callPackage ../servers/guacamole-client { };
 
   guacamole-server = callPackage ../servers/guacamole-server { };
@@ -32128,20 +31904,6 @@ with pkgs;
 
   hydroxide = callPackage ../applications/networking/hydroxide { };
 
-  hyper-haskell-server-with-packages = callPackage ../development/tools/haskell/hyper-haskell/server.nix {
-    inherit (haskellPackages) ghcWithPackages;
-    packages = self: with self; [];
-  };
-
-  hyper-haskell = callPackage ../development/tools/haskell/hyper-haskell {
-    hyper-haskell-server = hyper-haskell-server-with-packages.override {
-      packages = self: with self; [
-        hyper-extra diagrams csound-catalog
-      ];
-    };
-    extra-packages = [ csound ];
-  };
-
   hyperion-ng = libsForQt5.callPackage ../applications/video/hyperion-ng {
     protobuf = protobuf_21;
   };
@@ -32150,10 +31912,6 @@ with pkgs;
 
   hypnotix = callPackage ../applications/video/hypnotix { };
 
-  indiepass-desktop = callPackage ../by-name/in/indiepass-desktop/package.nix {
-    electron = electron_19;
-  };
-
   jackline = callPackage ../applications/networking/instant-messengers/jackline {
     ocamlPackages = ocaml-ng.ocamlPackages_4_14;
   };
@@ -32637,17 +32395,9 @@ with pkgs;
 
   jwm-settings-manager = callPackage ../applications/window-managers/jwm/jwm-settings-manager.nix { };
 
-  k3s_1_24 = callPackage ../applications/networking/cluster/k3s/1_24 {
-    buildGoModule = buildGo120Module;
-  };
-  k3s_1_25 = callPackage ../applications/networking/cluster/k3s/1_25 {
-    buildGoModule = buildGo120Module;
-  };
   inherit (callPackage ../applications/networking/cluster/k3s {
-    buildGoModule = buildGo120Module;
-  }) k3s_1_26 k3s_1_27 k3s_1_28;
-  inherit (callPackage ../applications/networking/cluster/k3s { }) k3s_1_29;
-
+    buildGoModule = buildGo121Module;
+  }) k3s_1_26 k3s_1_27 k3s_1_28 k3s_1_29;
   k3s = k3s_1_29;
 
   k3sup = callPackage ../applications/networking/cluster/k3sup { };
@@ -32738,8 +32488,6 @@ with pkgs;
 
   kondo = callPackage ../applications/misc/kondo { };
 
-  kooha = callPackage ../applications/video/kooha { };
-
   kotatogram-desktop = libsForQt5.callPackage ../applications/networking/instant-messengers/telegram/kotatogram-desktop {
     inherit (darwin.apple_sdk_11_0.frameworks) Cocoa CoreFoundation CoreServices CoreText CoreGraphics
       CoreMedia OpenGL AudioUnit ApplicationServices Foundation AGL Security SystemConfiguration
@@ -32927,9 +32675,7 @@ with pkgs;
 
   kupfer = callPackage ../applications/misc/kupfer { };
 
-  kuro = callPackage ../applications/misc/kuro {
-    electron = electron_22;
-  };
+  kuro = callPackage ../applications/misc/kuro { };
 
   timoni = callPackage ../applications/networking/cluster/timoni { };
 
@@ -32953,8 +32699,9 @@ with pkgs;
 
   ladspa-sdk = callPackage ../applications/audio/ladspa-sdk { };
 
-  ladybird = qt6Packages.callPackage ../applications/networking/browsers/ladybird {
+  ladybird = darwin.apple_sdk_11_0.callPackage ../applications/networking/browsers/ladybird {
     stdenv = if stdenv.isDarwin then overrideLibcxx darwin.apple_sdk_11_0.llvmPackages_16.stdenv else stdenv;
+    inherit (darwin.apple_sdk_11_0.frameworks) AppKit Cocoa Foundation OpenGL;
   };
 
   lazpaint = callPackage ../applications/graphics/lazpaint { };
@@ -33207,20 +32954,12 @@ with pkgs;
 
   markscribe = callPackage ../tools/text/markscribe { };
 
-  magnetico = callPackage ../applications/networking/p2p/magnetico {
-    buildGoModule = buildGo120Module;
-  };
+  magnetico = callPackage ../applications/networking/p2p/magnetico { };
 
   mastodon-bot = nodePackages.mastodon-bot;
 
   matchbox = callPackage ../applications/window-managers/matchbox { };
 
-  matrixcli = callPackage ../applications/networking/instant-messengers/matrixcli {
-    inherit (python3Packages) buildPythonApplication buildPythonPackage
-      pygobject3 pytest-runner requests responses pytest python-olm
-      canonicaljson;
-  };
-
   matrix-commander = python3Packages.callPackage ../applications/networking/instant-messengers/matrix-commander { };
 
   matrix-dl = callPackage ../applications/networking/instant-messengers/matrix-dl { };
@@ -33560,11 +33299,7 @@ with pkgs;
 
   normalize = callPackage ../applications/audio/normalize { };
 
-  norouter = callPackage ../tools/networking/norouter {
-    # doesn't build with go 1.21
-    # https://github.com/norouter/norouter/issues/165
-    buildGoModule = buildGo120Module;
-  };
+  norouter = callPackage ../tools/networking/norouter { };
 
   nqptp = callPackage ../tools/networking/nqptp { };
 
@@ -33673,8 +33408,6 @@ with pkgs;
     webkitgtk = webkitgtk_6_0;
   };
 
-  nicotine-plus = callPackage ../applications/networking/soulseek/nicotine-plus { };
-
   nice-dcv-client = callPackage ../applications/networking/remote/nice-dcv-client { };
 
   nixos-shell = callPackage ../tools/virtualization/nixos-shell { };
@@ -33831,7 +33564,9 @@ with pkgs;
 
   shod = callPackage ../applications/window-managers/shod { };
 
-  shotcut = qt6Packages.callPackage ../applications/video/shotcut { };
+  shotcut = qt6Packages.callPackage ../applications/video/shotcut {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
 
   shogun = callPackage ../applications/science/machine-learning/shogun {
     protobuf = protobuf_21;
@@ -34099,12 +33834,7 @@ with pkgs;
 
   opentimestamps-client = python3Packages.callPackage ../tools/misc/opentimestamps-client { };
 
-  opentoonz = let
-    opentoonz-libtiff = callPackage ../applications/graphics/opentoonz/libtiff.nix { };
-  in qt5.callPackage ../applications/graphics/opentoonz {
-    libtiff = opentoonz-libtiff;
-    opencv = opencv.override { libtiff = opentoonz-libtiff; };
-  };
+  opentoonz = libsForQt5.callPackage ../applications/graphics/opentoonz { };
 
   opentabletdriver = callPackage ../tools/X11/opentabletdriver { };
 
@@ -34214,9 +33944,9 @@ with pkgs;
 
   paprefs = callPackage ../applications/audio/paprefs { };
 
-  pantalaimon = python3Packages.callPackage ../applications/networking/instant-messengers/pantalaimon { };
+  pantalaimon = callPackage ../applications/networking/instant-messengers/pantalaimon { };
 
-  pantalaimon-headless = python3Packages.callPackage ../applications/networking/instant-messengers/pantalaimon {
+  pantalaimon-headless = callPackage ../applications/networking/instant-messengers/pantalaimon {
     enableDbusUi = false;
   };
 
@@ -34488,8 +34218,6 @@ with pkgs;
 
   eiskaltdcpp = libsForQt5.callPackage ../applications/networking/p2p/eiskaltdcpp { };
 
-  qdirstat = libsForQt5.callPackage ../applications/misc/qdirstat { };
-
   qemu = callPackage ../applications/virtualization/qemu {
     inherit (darwin.apple_sdk.frameworks) CoreServices Cocoa Hypervisor vmnet;
     inherit (darwin.stubs) rez setfile;
@@ -34721,10 +34449,6 @@ with pkgs;
 
   rgp = libsForQt5.callPackage ../development/tools/rgp { };
 
-  ricochet = libsForQt5.callPackage ../applications/networking/instant-messengers/ricochet {
-    protobuf = protobuf_21;
-  };
-
   ries = callPackage ../applications/science/math/ries { };
 
   ripcord = if stdenv.isLinux then
@@ -34760,10 +34484,6 @@ with pkgs;
 
   rofi-systemd = callPackage ../tools/system/rofi-systemd { };
 
-  rofimoji = callPackage ../applications/misc/rofimoji {
-    inherit (python3Packages) buildPythonApplication configargparse;
-  };
-
   rootlesskit = callPackage ../tools/virtualization/rootlesskit { };
 
   rsclock = callPackage ../applications/misc/rsclock { };
@@ -34890,7 +34610,9 @@ with pkgs;
 
   siproxd = callPackage ../applications/networking/siproxd { };
 
-  sish = callPackage ../tools/networking/sish { };
+  sish = callPackage ../tools/networking/sish {
+    buildGoModule = buildGo122Module;
+  };
 
   sky = libsForQt5.callPackage ../applications/networking/instant-messengers/sky {
     libjpeg_turbo = libjpeg8;
@@ -34940,10 +34662,6 @@ with pkgs;
 
   spotify-tray = callPackage ../applications/misc/spotify-tray { };
 
-  spotify-tui = callPackage ../applications/audio/spotify-tui {
-    inherit (darwin.apple_sdk.frameworks) AppKit Security;
-  };
-
   sptlrx = callPackage ../applications/audio/sptlrx { };
 
   sptk = callPackage ../development/libraries/sptk { };
@@ -35093,8 +34811,6 @@ with pkgs;
 
   skrooge = libsForQt5.callPackage ../applications/office/skrooge { };
 
-  smartgithg = callPackage ../applications/version-management/smartgithg { };
-
   smartdeblur = libsForQt5.callPackage ../applications/graphics/smartdeblur { };
 
   snapper = callPackage ../tools/misc/snapper { };
@@ -35358,8 +35074,6 @@ with pkgs;
 
   telepathy-idle = callPackage ../applications/networking/instant-messengers/telepathy/idle { };
 
-  teleprompter = callPackage ../applications/misc/teleprompter { };
-
   tempo = callPackage ../servers/tracing/tempo { };
 
   temporal = callPackage ../applications/networking/cluster/temporal { };
@@ -35451,10 +35165,6 @@ with pkgs;
 
   tijolo = callPackage ../applications/editors/tijolo { };
 
-  tilemaker = callPackage ../applications/misc/tilemaker {
-    protobuf = protobuf_21;
-  };
-
   timbreid = callPackage ../applications/audio/pd-plugins/timbreid {
     fftw = fftwSinglePrec;
   };
@@ -35849,6 +35559,7 @@ with pkgs;
   virtualbox = libsForQt5.callPackage ../applications/virtualization/virtualbox {
     stdenv = stdenv_32bit;
     inherit (gnome2) libIDL;
+    jdk = openjdk17;
   };
 
   virtualboxKvm = lowPrio (virtualbox.override {
@@ -35912,6 +35623,8 @@ with pkgs;
 
   vkeybd = callPackage ../applications/audio/vkeybd { };
 
+  vlc-bin-universal = vlc-bin.override { variant = "universal"; };
+
   libvlc = vlc.override {
     withQt5 = false;
     onlyLibVLC = true;
@@ -36105,7 +35818,7 @@ with pkgs;
   wgnord = callPackage ../applications/networking/wgnord/default.nix { };
 
   whalebird = callPackage ../applications/misc/whalebird {
-    electron = electron_21;
+    electron = electron_27;
   };
 
   windowlab = callPackage ../applications/window-managers/windowlab { };
@@ -36243,7 +35956,7 @@ with pkgs;
 
   kodi-cli = callPackage ../tools/misc/kodi-cli { };
 
-  xca = libsForQt5.callPackage ../applications/misc/xca { };
+  xca = qt6Packages.callPackage ../applications/misc/xca { };
 
   xcalib = callPackage ../tools/X11/xcalib { };
 
@@ -36279,8 +35992,6 @@ with pkgs;
 
   xdg-desktop-portal-xapp = callPackage ../development/libraries/xdg-desktop-portal-xapp { };
 
-  xdg-user-dirs = callPackage ../tools/X11/xdg-user-dirs { };
-
   xdg-utils = callPackage ../tools/X11/xdg-utils {};
 
   xdgmenumaker = callPackage ../applications/misc/xdgmenumaker { };
@@ -36333,7 +36044,7 @@ with pkgs;
     inherit (gnome2) libgnomecanvas;
   };
 
-  xournalpp = callPackage ../applications/graphics/xournalpp {
+  xournalpp = darwin.apple_sdk_11_0.callPackage ../applications/graphics/xournalpp {
     lua = lua5_3;
   };
 
@@ -36533,7 +36244,7 @@ with pkgs;
 
   zerobin = callPackage ../applications/networking/zerobin { };
 
-  zeroc-ice = disable-warnings-if-gcc13 (callPackage ../development/libraries/zeroc-ice { });
+  zeroc-ice = callPackage ../development/libraries/zeroc-ice { };
 
   zeroc-ice-cpp11 = zeroc-ice.override { cpp11 = true; };
 
@@ -36666,16 +36377,7 @@ with pkgs;
 
   dcrctl = callPackage ../applications/blockchains/dcrctl { };
   dcrd = callPackage ../applications/blockchains/dcrd { };
-  dcrwallet = callPackage ../applications/blockchains/dcrwallet {
-    buildGoModule = buildGo120Module;
-  };
-
-  dogecoin  = libsForQt5.callPackage ../applications/blockchains/dogecoin {
-    withGui = true;
-  };
-  dogecoind = callPackage ../applications/blockchains/dogecoin {
-    withGui = false;
-  };
+  dcrwallet = callPackage ../applications/blockchains/dcrwallet { };
 
   eclair = callPackage ../applications/blockchains/eclair { };
 
@@ -36874,8 +36576,6 @@ with pkgs;
 
   conmon-rs = callPackage ../applications/virtualization/conmon-rs { };
 
-  digikam = libsForQt5.callPackage ../applications/graphics/digikam { };
-
   drumkv1 = libsForQt5.callPackage ../applications/audio/drumkv1 { };
 
   eureka-ideas = callPackage ../applications/misc/eureka-ideas {
@@ -37044,16 +36744,6 @@ with pkgs;
 
   zdoom = callPackage ../games/doom-ports/zdoom { };
 
-  ### GAMES/LGAMES
-
-  barrage = callPackage ../games/lgames/barrage { };
-
-  lbreakout2 = callPackage ../games/lgames/lbreakout2 { };
-
-  lbreakouthd = callPackage ../games/lgames/lbreakouthd { };
-
-  lpairs2 = callPackage ../games/lgames/lpairs2 { };
-
   maelstrom = callPackage ../games/maelstrom { };
 
   mar1d = callPackage ../games/mar1d { } ;
@@ -37204,7 +36894,7 @@ with pkgs;
 
   chiaki = libsForQt5.callPackage ../games/chiaki { };
 
-  chiaki4deck = libsForQt5.callPackage ../games/chiaki4deck { };
+  chiaki4deck = qt6Packages.callPackage ../games/chiaki4deck { };
 
   chromium-bsu = callPackage ../games/chromium-bsu { };
 
@@ -37766,7 +37456,9 @@ with pkgs;
 
   pacvim = callPackage ../games/pacvim { };
 
-  papermc = callPackage ../games/papermc { };
+  papermcServers = callPackages ../games/papermc { };
+
+  papermc = papermcServers.papermc;
 
   path-of-building = qt6Packages.callPackage ../games/path-of-building {};
 
@@ -37966,8 +37658,6 @@ with pkgs;
 
   srb2 = callPackage ../games/srb2 { };
 
-  srb2kart = callPackage ../games/srb2kart { };
-
   ssl-cert-check = callPackage ../tools/admin/ssl-cert-check { };
 
   stardust = callPackage ../games/stardust { };
@@ -38114,8 +37804,6 @@ with pkgs;
 
   umoria = callPackage ../games/umoria { };
 
-  unciv = callPackage ../games/unciv { };
-
   unnethack = callPackage ../games/unnethack { };
 
   uqm = callPackage ../games/uqm { };
@@ -38795,7 +38483,9 @@ with pkgs;
 
   getdp = callPackage ../applications/science/math/getdp { };
 
-  gurobi = callPackage ../applications/science/math/gurobi { };
+  gurobi = callPackage ../applications/science/math/gurobi {
+    python3 = python310;
+  };
 
   jags = callPackage ../applications/science/math/jags { };
 
@@ -39352,8 +39042,6 @@ with pkgs;
 
   jflap = callPackage ../applications/science/engineering/jflap { };
 
-  strictdoc = python3.pkgs.callPackage ../applications/science/engineering/strictdoc { };
-
   ### SCIENCE / ELECTRONICS
 
   adms = callPackage ../applications/science/electronics/adms { };
@@ -40477,10 +40165,6 @@ with pkgs;
     jre = openjdk19; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   });
 
-  owmods-cli = callPackage ../applications/misc/owmods-cli {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
-
   r128gain = callPackage ../applications/audio/r128gain { };
 
   resp-app = libsForQt5.callPackage ../applications/misc/resp-app { };
@@ -40738,10 +40422,6 @@ with pkgs;
 
   sct = callPackage ../tools/X11/sct { };
 
-  scylladb = callPackage ../servers/scylladb {
-    thrift = thrift-0_10;
-  };
-
   seafile-server = callPackage ../servers/seafile-server { };
 
   seafile-shared = callPackage ../misc/seafile-shared { };
@@ -40861,7 +40541,9 @@ with pkgs;
 
   ib-controller = callPackage ../applications/office/ib/controller { jdk=oraclejdk8; };
 
-  vcluster = callPackage ../applications/networking/cluster/vcluster { };
+  vcluster = callPackage ../applications/networking/cluster/vcluster {
+    buildGoModule = buildGo122Module;
+  };
 
   vnote = libsForQt5.callPackage ../applications/office/vnote { };
 
@@ -41291,7 +40973,9 @@ with pkgs;
 
   linkchecker = callPackage ../tools/networking/linkchecker { };
 
-  tomb = callPackage ../os-specific/linux/tomb { };
+  tomb = callPackage ../os-specific/linux/tomb {
+    pinentry = pinentry-curses;
+  };
 
   sccache = callPackage ../development/tools/misc/sccache { };
 
diff --git a/nixpkgs/pkgs/top-level/config.nix b/nixpkgs/pkgs/top-level/config.nix
index aa3a235553ef..3418a44e0f13 100644
--- a/nixpkgs/pkgs/top-level/config.nix
+++ b/nixpkgs/pkgs/top-level/config.nix
@@ -2,14 +2,20 @@
 
 { config, lib, ... }:
 
-with lib;
-
 let
+  inherit (lib)
+    literalExpression
+    mapAttrsToList
+    mdDoc
+    mkOption
+    optionals
+    types
+    ;
 
   mkMassRebuild = args: mkOption (builtins.removeAttrs args [ "feature" ] // {
     type = args.type or (types.uniq types.bool);
     default = args.default or false;
-    description = lib.mdDoc ((args.description or ''
+    description = mdDoc ((args.description or ''
       Whether to ${args.feature} while building nixpkgs packages.
     '') + ''
       Changing the default may cause a mass rebuild.
@@ -34,7 +40,7 @@ let
     /* Config options */
 
     warnUndeclaredOptions = mkOption {
-      description = lib.mdDoc "Whether to warn when `config` contains an unrecognized attribute.";
+      description = mdDoc "Whether to warn when `config` contains an unrecognized attribute.";
       type = types.bool;
       default = false;
     };
@@ -66,7 +72,7 @@ let
     allowAliases = mkOption {
       type = types.bool;
       default = true;
-      description = lib.mdDoc ''
+      description = mdDoc ''
         Whether to expose old attribute names for compatibility.
 
         The recommended setting is to enable this, as it
@@ -86,7 +92,7 @@ let
       default = false;
       # getEnv part is in check-meta.nix
       defaultText = literalExpression ''false || builtins.getEnv "NIXPKGS_ALLOW_UNFREE" == "1"'';
-      description = lib.mdDoc ''
+      description = mdDoc ''
         Whether to allow unfree packages.
 
         See [Installing unfree packages](https://nixos.org/manual/nixpkgs/stable/#sec-allow-unfree) in the NixOS manual.
@@ -98,7 +104,7 @@ let
       default = false;
       # getEnv part is in check-meta.nix
       defaultText = literalExpression ''false || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1"'';
-      description = lib.mdDoc ''
+      description = mdDoc ''
         Whether to allow broken packages.
 
         See [Installing broken packages](https://nixos.org/manual/nixpkgs/stable/#sec-allow-broken) in the NixOS manual.
@@ -110,7 +116,7 @@ let
       default = false;
       # getEnv part is in check-meta.nix
       defaultText = literalExpression ''false || builtins.getEnv "NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM" == "1"'';
-      description = lib.mdDoc ''
+      description = mdDoc ''
         Whether to allow unsupported packages.
 
         See [Installing packages on unsupported systems](https://nixos.org/manual/nixpkgs/stable/#sec-allow-unsupported-system) in the NixOS manual.
@@ -132,7 +138,7 @@ let
     showDerivationWarnings = mkOption {
       type = types.listOf (types.enum [ "maintainerless" ]);
       default = [];
-      description = lib.mdDoc ''
+      description = mdDoc ''
         Which warnings to display for potentially dangerous
         or deprecated values passed into `stdenv.mkDerivation`.
 
@@ -147,7 +153,7 @@ let
     checkMeta = mkOption {
       type = types.bool;
       default = false;
-      description = lib.mdDoc ''
+      description = mdDoc ''
         Whether to check that the `meta` attribute of derivations are correct during evaluation time.
       '';
     };
@@ -156,7 +162,7 @@ let
 in {
 
   freeformType =
-    let t = lib.types.lazyAttrsOf lib.types.raw;
+    let t = types.lazyAttrsOf types.raw;
     in t // {
       merge = loc: defs:
         let r = t.merge loc defs;
@@ -166,8 +172,8 @@ in {
   inherit options;
 
   config = {
-    warnings = lib.optionals config.warnUndeclaredOptions (
-      lib.mapAttrsToList (k: v: "undeclared Nixpkgs option set: config.${k}") config._undeclared or {}
+    warnings = optionals config.warnUndeclaredOptions (
+      mapAttrsToList (k: v: "undeclared Nixpkgs option set: config.${k}") config._undeclared or {}
     );
   };
 
diff --git a/nixpkgs/pkgs/top-level/coq-packages.nix b/nixpkgs/pkgs/top-level/coq-packages.nix
index 4a79bee73fdf..acf4a69a2bda 100644
--- a/nixpkgs/pkgs/top-level/coq-packages.nix
+++ b/nixpkgs/pkgs/top-level/coq-packages.nix
@@ -125,6 +125,8 @@ let
       vcfloat = callPackage ../development/coq-modules/vcfloat {};
       Velisarios = callPackage ../development/coq-modules/Velisarios {};
       Verdi = callPackage ../development/coq-modules/Verdi {};
+      Vpl = callPackage ../development/coq-modules/Vpl {};
+      VplTactic = callPackage ../development/coq-modules/VplTactic {};
       vscoq-language-server = callPackage ../development/coq-modules/vscoq-language-server {};
       VST = callPackage ../development/coq-modules/VST ((lib.optionalAttrs
         (lib.versionAtLeast self.coq.version "8.14") {
diff --git a/nixpkgs/pkgs/top-level/darwin-packages.nix b/nixpkgs/pkgs/top-level/darwin-packages.nix
index 78ad4434f1c3..a6c98831eee6 100644
--- a/nixpkgs/pkgs/top-level/darwin-packages.nix
+++ b/nixpkgs/pkgs/top-level/darwin-packages.nix
@@ -153,9 +153,6 @@ impure-cmds // appleSourcePackages // chooseLibs // {
     propagatedBuildInputs = [ self.signingUtils ];
   } ../os-specific/darwin/signing-utils/auto-sign-hook.sh;
 
-  maloader = callPackage ../os-specific/darwin/maloader {
-  };
-
   insert_dylib = callPackage ../os-specific/darwin/insert_dylib { };
 
   iosSdkPkgs = callPackage ../os-specific/darwin/xcode/sdk-pkgs.nix {
@@ -172,12 +169,9 @@ impure-cmds // appleSourcePackages // chooseLibs // {
 
   moltenvk = pkgs.darwin.apple_sdk_11_0.callPackage ../os-specific/darwin/moltenvk {
     inherit (apple_sdk_11_0.frameworks) AppKit Foundation Metal QuartzCore;
-    inherit (apple_sdk_11_0) MacOSX-SDK Libsystem;
-    inherit (pkgs.darwin) cctools sigtool;
+    inherit (apple_sdk_11_0.libs) simd;
   };
 
-  opencflite = callPackage ../os-specific/darwin/opencflite { };
-
   openwith = pkgs.darwin.apple_sdk_11_0.callPackage ../os-specific/darwin/openwith {
     inherit (apple_sdk_11_0.frameworks) AppKit Foundation UniformTypeIdentifiers;
   };
diff --git a/nixpkgs/pkgs/top-level/dotnet-packages.nix b/nixpkgs/pkgs/top-level/dotnet-packages.nix
index 89fba136259e..b9e30abb645f 100644
--- a/nixpkgs/pkgs/top-level/dotnet-packages.nix
+++ b/nixpkgs/pkgs/top-level/dotnet-packages.nix
@@ -70,6 +70,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
     version = "4.7.49.0";
     sha256 = "0rpfyvcggm881ynvgr17kbx5hvj7ivlms0bmskmb2zyjlpddx036";
     outputFiles = [ "tools/*" ];
+    meta.mainProgram = "stylecopsettingseditor";
   };
 
   StyleCopPlusMSBuild = fetchNuGet {
diff --git a/nixpkgs/pkgs/top-level/haskell-packages.nix b/nixpkgs/pkgs/top-level/haskell-packages.nix
index 7141f1d35fe0..b0c098ddcaa8 100644
--- a/nixpkgs/pkgs/top-level/haskell-packages.nix
+++ b/nixpkgs/pkgs/top-level/haskell-packages.nix
@@ -9,25 +9,18 @@ let
     "ghc8107"
   ];
 
-  nativeBignumIncludes = [
-    "ghc90"
-    "ghc902"
-    "ghc92"
-    "ghc925"
-    "ghc926"
-    "ghc927"
-    "ghc928"
-    "ghc94"
-    "ghc945"
-    "ghc946"
-    "ghc947"
-    "ghc948"
-    "ghc96"
-    "ghc963"
-    "ghc964"
-    "ghc98"
-    "ghc981"
-    "ghcHEAD"
+  nativeBignumExcludes = integerSimpleIncludes ++ [
+    # haskell.compiler sub groups
+    "integer-simple"
+    "native-bignum"
+    # Binary GHCs
+    "ghc865Binary"
+    "ghc8107Binary"
+    "ghc924Binary"
+    "ghc963Binary"
+    # ghcjs
+    "ghcjs"
+    "ghcjs810"
   ];
 
   haskellLibUncomposable = import ../development/haskell-modules/lib {
@@ -73,6 +66,10 @@ in {
       llvmPackages = pkgs.llvmPackages_12;
     };
 
+    ghc963Binary = callPackage ../development/compilers/ghc/9.6.3-binary.nix {
+      llvmPackages = pkgs.llvmPackages_15;
+    };
+
     ghc8107 = callPackage ../development/compilers/ghc/8.10.7.nix {
       bootPkgs =
         # the oldest ghc with aarch64-darwin support is 8.10.5
@@ -295,8 +292,21 @@ in {
     };
     ghc96 = compiler.ghc964;
     ghc981 = callPackage ../development/compilers/ghc/9.8.1.nix {
-      # No bindist packaged for 9.4.* yet
-      bootPkgs = packages.ghc947;
+      bootPkgs =
+        # For GHC 9.6 no armv7l bindists are available.
+        if stdenv.hostPlatform.isAarch32 then
+          packages.ghc963
+        else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc963
+        else if stdenv.hostPlatform.isDarwin then
+          # it seems like the GHC 9.6.* bindists are built with a different
+          # toolchain than we are using (which I'm guessing from the fact
+          # that 9.6.4 bindists pass linker flags our ld doesn't support).
+          # With both 9.6.3 and 9.6.4 binary it is impossible to link against
+          # the clock package (probably a hsc2hs problem).
+          packages.ghc963
+        else
+          packages.ghc963Binary;
       inherit (buildPackages.python3Packages) sphinx;
       # Need to use apple's patched xattr until
       # https://github.com/xattr/xattr/issues/44 and
@@ -306,9 +316,48 @@ in {
       buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
       llvmPackages = pkgs.llvmPackages_15;
     };
-    ghc98 = compiler.ghc981;
+    ghc982 = callPackage ../development/compilers/ghc/9.8.2.nix {
+      bootPkgs =
+        # For GHC 9.6 no armv7l bindists are available.
+        if stdenv.hostPlatform.isAarch32 then
+          packages.ghc963
+        else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc963
+        else if stdenv.hostPlatform.isDarwin then
+          # it seems like the GHC 9.6.* bindists are built with a different
+          # toolchain than we are using (which I'm guessing from the fact
+          # that 9.6.4 bindists pass linker flags our ld doesn't support).
+          # With both 9.6.3 and 9.6.4 binary it is impossible to link against
+          # the clock package (probably a hsc2hs problem).
+          packages.ghc963
+        else
+          packages.ghc963Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      # Need to use apple's patched xattr until
+      # https://github.com/xattr/xattr/issues/44 and
+      # https://github.com/xattr/xattr/issues/55 are solved.
+      inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
+      # Support range >= 11 && < 16
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_15;
+      llvmPackages = pkgs.llvmPackages_15;
+    };
+    ghc98 = compiler.ghc982;
     ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
-      bootPkgs = packages.ghc963;
+      bootPkgs =
+        # For GHC 9.6 no armv7l bindists are available.
+        if stdenv.hostPlatform.isAarch32 then
+          packages.ghc963
+        else if stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isLittleEndian then
+          packages.ghc963
+        else if stdenv.hostPlatform.isDarwin then
+          # it seems like the GHC 9.6.* bindists are built with a different
+          # toolchain than we are using (which I'm guessing from the fact
+          # that 9.6.4 bindists pass linker flags our ld doesn't support).
+          # With both 9.6.3 and 9.6.4 binary it is impossible to link against
+          # the clock package (probably a hsc2hs problem).
+          packages.ghc963
+        else
+          packages.ghc963Binary;
       inherit (buildPackages.python3Packages) sphinx;
       # Need to use apple's patched xattr until
       # https://github.com/xattr/xattr/issues/44 and
@@ -340,7 +389,7 @@ in {
     # with "native" and "gmp" backends.
     native-bignum = let
       nativeBignumGhcNames = pkgs.lib.filter
-        (name: builtins.elem name nativeBignumIncludes)
+        (name: !(builtins.elem name nativeBignumExcludes))
         (pkgs.lib.attrNames compiler);
     in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
       nativeBignumGhcNames
@@ -371,6 +420,12 @@ in {
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
       packageSetConfig = bootstrapPackageSet;
     };
+    ghc963Binary = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc963Binary;
+      ghc = bh.compiler.ghc963Binary;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.6.x.nix { };
+      packageSetConfig = bootstrapPackageSet;
+    };
     ghc8107 = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghc8107;
       ghc = bh.compiler.ghc8107;
@@ -441,7 +496,12 @@ in {
       ghc = bh.compiler.ghc981;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.8.x.nix { };
     };
-    ghc98 = packages.ghc981;
+    ghc982 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc982;
+      ghc = bh.compiler.ghc982;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.8.x.nix { };
+    };
+    ghc98 = packages.ghc982;
     ghcHEAD = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghcHEAD;
       ghc = bh.compiler.ghcHEAD;
@@ -479,7 +539,7 @@ in {
     native-bignum =
       let
         nativeBignumGhcNames = pkgs.lib.filter
-          (name: builtins.elem name nativeBignumIncludes)
+          (name: !(builtins.elem name nativeBignumExcludes))
           (pkgs.lib.attrNames compiler);
       in
       pkgs.lib.genAttrs nativeBignumGhcNames
diff --git a/nixpkgs/pkgs/top-level/java-packages.nix b/nixpkgs/pkgs/top-level/java-packages.nix
index 3043f8e220eb..6cfd785de1f7 100644
--- a/nixpkgs/pkgs/top-level/java-packages.nix
+++ b/nixpkgs/pkgs/top-level/java-packages.nix
@@ -176,13 +176,10 @@ in {
       openjfx = openjfx15;
     };
 
-    openjdk16 = mkOpenjdk
-      ../development/compilers/openjdk/16.nix
-      ../development/compilers/zulu/16.nix
-      {
-        inherit openjdk16-bootstrap;
-        openjfx = openjfx15;
-      };
+    openjdk16 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/16.nix {
+      inherit openjdk16-bootstrap;
+      openjfx = openjfx15;
+    };
 
     openjdk17 = mkOpenjdk
       ../development/compilers/openjdk/17.nix
diff --git a/nixpkgs/pkgs/top-level/kodi-packages.nix b/nixpkgs/pkgs/top-level/kodi-packages.nix
index 0014a1ff53f3..634b02917b55 100644
--- a/nixpkgs/pkgs/top-level/kodi-packages.nix
+++ b/nixpkgs/pkgs/top-level/kodi-packages.nix
@@ -1,29 +1,18 @@
 { config, lib, newScope, kodi, libretro }:
 
-with lib;
-
 let
-  inherit (libretro) fuse genesis-plus-gx mgba nestopia snes9x twenty-fortyeight;
-in
-
-let self = rec {
+  inherit (lib)
+    catAttrs
+    concatLists
+    filter
+    optionalAttrs
+    unique
+    ;
 
-  addonDir = "/share/kodi/addons";
-  rel = "Nexus";
+  inherit (libretro) fuse genesis-plus-gx mgba nestopia snes9x twenty-fortyeight;
 
   callPackage = newScope self;
 
-  inherit kodi;
-
-  # Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix
-  toKodiAddon = drv: drv.overrideAttrs (oldAttrs: {
-    # Use passthru in order to prevent rebuilds when possible.
-    passthru = (oldAttrs.passthru or {}) // {
-      kodiAddonFor = kodi;
-      requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs;
-    };
-  });
-
   # Check whether a derivation provides a Kodi addon.
   hasKodiAddon = drv: drv ? kodiAddonFor && drv.kodiAddonFor == kodi;
 
@@ -34,170 +23,188 @@ let self = rec {
     in
       unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules));
 
-  # package update scripts
+  self = {
+    addonDir = "/share/kodi/addons";
+
+    rel = "Nexus";
+
+    inherit callPackage kodi hasKodiAddon requiredKodiAddons;
+
+    # Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix
+    toKodiAddon = drv: drv.overrideAttrs (oldAttrs: {
+      # Use passthru in order to prevent rebuilds when possible.
+      passthru = (oldAttrs.passthru or {}) // {
+        kodiAddonFor = kodi;
+        requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs;
+      };
+    });
+
+    # package update scripts
+
+    addonUpdateScript = callPackage ../applications/video/kodi/addons/addon-update-script { };
 
-  addonUpdateScript = callPackage ../applications/video/kodi/addons/addon-update-script { };
+    # package builders
 
-  # package builders
+    buildKodiAddon = callPackage ../applications/video/kodi/build-kodi-addon.nix { };
 
-  buildKodiAddon = callPackage ../applications/video/kodi/build-kodi-addon.nix { };
+    buildKodiBinaryAddon = callPackage ../applications/video/kodi/build-kodi-binary-addon.nix { };
 
-  buildKodiBinaryAddon = callPackage ../applications/video/kodi/build-kodi-binary-addon.nix { };
+    # regular packages
 
-  # regular packages
+    kodi-platform = callPackage ../applications/video/kodi/addons/kodi-platform { };
 
-  kodi-platform = callPackage ../applications/video/kodi/addons/kodi-platform { };
+    # addon packages
 
-  # addon packages
+    a4ksubtitles = callPackage ../applications/video/kodi/addons/a4ksubtitles { };
 
-  a4ksubtitles = callPackage ../applications/video/kodi/addons/a4ksubtitles { };
+    arteplussept = callPackage ../applications/video/kodi/addons/arteplussept { };
 
-  arteplussept = callPackage ../applications/video/kodi/addons/arteplussept { };
+    controller-topology-project = callPackage ../applications/video/kodi/addons/controller-topology-project { };
 
-  controller-topology-project = callPackage ../applications/video/kodi/addons/controller-topology-project { };
+    iagl = callPackage ../applications/video/kodi/addons/iagl { };
 
-  iagl = callPackage ../applications/video/kodi/addons/iagl { };
+    invidious = callPackage ../applications/video/kodi/addons/invidious { };
 
-  invidious = callPackage ../applications/video/kodi/addons/invidious { };
+    libretro = callPackage ../applications/video/kodi/addons/libretro { };
 
-  libretro = callPackage ../applications/video/kodi/addons/libretro { };
+    libretro-2048 = callPackage ../applications/video/kodi/addons/libretro-2048 { inherit twenty-fortyeight; };
 
-  libretro-2048 = callPackage ../applications/video/kodi/addons/libretro-2048 { inherit twenty-fortyeight; };
+    libretro-fuse = callPackage ../applications/video/kodi/addons/libretro-fuse { inherit fuse; };
 
-  libretro-fuse = callPackage ../applications/video/kodi/addons/libretro-fuse { inherit fuse; };
+    libretro-genplus = callPackage ../applications/video/kodi/addons/libretro-genplus { inherit genesis-plus-gx; };
 
-  libretro-genplus = callPackage ../applications/video/kodi/addons/libretro-genplus { inherit genesis-plus-gx; };
+    libretro-mgba = callPackage ../applications/video/kodi/addons/libretro-mgba { inherit mgba; };
 
-  libretro-mgba = callPackage ../applications/video/kodi/addons/libretro-mgba { inherit mgba; };
+    libretro-nestopia = callPackage ../applications/video/kodi/addons/libretro-nestopia { inherit nestopia; };
 
-  libretro-nestopia = callPackage ../applications/video/kodi/addons/libretro-nestopia { inherit nestopia; };
+    libretro-snes9x = callPackage ../applications/video/kodi/addons/libretro-snes9x { inherit snes9x; };
 
-  libretro-snes9x = callPackage ../applications/video/kodi/addons/libretro-snes9x { inherit snes9x; };
+    jellycon = callPackage ../applications/video/kodi/addons/jellycon { };
 
-  jellyfin = callPackage ../applications/video/kodi/addons/jellyfin { };
+    jellyfin = callPackage ../applications/video/kodi/addons/jellyfin { };
 
-  joystick = callPackage ../applications/video/kodi/addons/joystick { };
+    joystick = callPackage ../applications/video/kodi/addons/joystick { };
 
-  keymap = callPackage ../applications/video/kodi/addons/keymap { };
+    keymap = callPackage ../applications/video/kodi/addons/keymap { };
 
-  mediacccde = callPackage ../applications/video/kodi/addons/mediacccde { };
+    mediacccde = callPackage ../applications/video/kodi/addons/mediacccde { };
 
-  mediathekview = callPackage ../applications/video/kodi/addons/mediathekview { };
+    mediathekview = callPackage ../applications/video/kodi/addons/mediathekview { };
 
-  netflix = callPackage ../applications/video/kodi/addons/netflix { };
+    netflix = callPackage ../applications/video/kodi/addons/netflix { };
 
-  orftvthek = callPackage ../applications/video/kodi/addons/orftvthek { };
+    orftvthek = callPackage ../applications/video/kodi/addons/orftvthek { };
 
-  radioparadise = callPackage ../applications/video/kodi/addons/radioparadise { };
+    radioparadise = callPackage ../applications/video/kodi/addons/radioparadise { };
 
-  svtplay = callPackage ../applications/video/kodi/addons/svtplay { };
+    svtplay = callPackage ../applications/video/kodi/addons/svtplay { };
 
-  steam-controller = callPackage ../applications/video/kodi/addons/steam-controller { };
+    steam-controller = callPackage ../applications/video/kodi/addons/steam-controller { };
 
-  steam-launcher = callPackage ../applications/video/kodi/addons/steam-launcher { };
+    steam-launcher = callPackage ../applications/video/kodi/addons/steam-launcher { };
 
-  steam-library = callPackage ../applications/video/kodi/addons/steam-library { };
+    steam-library = callPackage ../applications/video/kodi/addons/steam-library { };
 
-  somafm = callPackage ../applications/video/kodi/addons/somafm { };
+    somafm = callPackage ../applications/video/kodi/addons/somafm { };
 
-  pdfreader = callPackage ../applications/video/kodi/addons/pdfreader { };
+    pdfreader = callPackage ../applications/video/kodi/addons/pdfreader { };
 
-  pvr-hts = callPackage ../applications/video/kodi/addons/pvr-hts { };
+    pvr-hts = callPackage ../applications/video/kodi/addons/pvr-hts { };
 
-  pvr-hdhomerun = callPackage ../applications/video/kodi/addons/pvr-hdhomerun { };
+    pvr-hdhomerun = callPackage ../applications/video/kodi/addons/pvr-hdhomerun { };
 
-  pvr-iptvsimple = callPackage ../applications/video/kodi/addons/pvr-iptvsimple { };
+    pvr-iptvsimple = callPackage ../applications/video/kodi/addons/pvr-iptvsimple { };
 
-  pvr-vdr-vnsi = callPackage ../applications/video/kodi/addons/pvr-vdr-vnsi { };
+    pvr-vdr-vnsi = callPackage ../applications/video/kodi/addons/pvr-vdr-vnsi { };
 
-  osmc-skin = callPackage ../applications/video/kodi/addons/osmc-skin { };
+    osmc-skin = callPackage ../applications/video/kodi/addons/osmc-skin { };
 
-  vfs-libarchive = callPackage ../applications/video/kodi/addons/vfs-libarchive { };
+    vfs-libarchive = callPackage ../applications/video/kodi/addons/vfs-libarchive { };
 
-  vfs-rar = callPackage ../applications/video/kodi/addons/vfs-rar { };
+    vfs-rar = callPackage ../applications/video/kodi/addons/vfs-rar { };
 
-  vfs-sftp = callPackage ../applications/video/kodi/addons/vfs-sftp { };
+    vfs-sftp = callPackage ../applications/video/kodi/addons/vfs-sftp { };
 
-  visualization-fishbmc = callPackage ../applications/video/kodi/addons/visualization-fishbmc { };
+    visualization-fishbmc = callPackage ../applications/video/kodi/addons/visualization-fishbmc { };
 
-  visualization-goom = callPackage ../applications/video/kodi/addons/visualization-goom { };
+    visualization-goom = callPackage ../applications/video/kodi/addons/visualization-goom { };
 
-  visualization-matrix = callPackage ../applications/video/kodi/addons/visualization-matrix { };
+    visualization-matrix = callPackage ../applications/video/kodi/addons/visualization-matrix { };
 
-  visualization-pictureit = callPackage ../applications/video/kodi/addons/visualization-pictureit { };
+    visualization-pictureit = callPackage ../applications/video/kodi/addons/visualization-pictureit { };
 
-  visualization-projectm = callPackage ../applications/video/kodi/addons/visualization-projectm { };
+    visualization-projectm = callPackage ../applications/video/kodi/addons/visualization-projectm { };
 
-  visualization-shadertoy = callPackage ../applications/video/kodi/addons/visualization-shadertoy { };
+    visualization-shadertoy = callPackage ../applications/video/kodi/addons/visualization-shadertoy { };
 
-  visualization-spectrum = callPackage ../applications/video/kodi/addons/visualization-spectrum { };
+    visualization-spectrum = callPackage ../applications/video/kodi/addons/visualization-spectrum { };
 
-  visualization-starburst = callPackage ../applications/video/kodi/addons/visualization-starburst { };
+    visualization-starburst = callPackage ../applications/video/kodi/addons/visualization-starburst { };
 
-  visualization-waveform = callPackage ../applications/video/kodi/addons/visualization-waveform { };
+    visualization-waveform = callPackage ../applications/video/kodi/addons/visualization-waveform { };
 
-  youtube = callPackage ../applications/video/kodi/addons/youtube { };
+    youtube = callPackage ../applications/video/kodi/addons/youtube { };
 
-  # addon packages (dependencies)
+    # addon packages (dependencies)
 
-  archive_tool = callPackage ../applications/video/kodi/addons/archive_tool { };
+    archive_tool = callPackage ../applications/video/kodi/addons/archive_tool { };
 
-  certifi = callPackage ../applications/video/kodi/addons/certifi { };
+    certifi = callPackage ../applications/video/kodi/addons/certifi { };
 
-  chardet = callPackage ../applications/video/kodi/addons/chardet { };
+    chardet = callPackage ../applications/video/kodi/addons/chardet { };
 
-  dateutil = callPackage ../applications/video/kodi/addons/dateutil { };
+    dateutil = callPackage ../applications/video/kodi/addons/dateutil { };
 
-  defusedxml = callPackage ../applications/video/kodi/addons/defusedxml { };
+    defusedxml = callPackage ../applications/video/kodi/addons/defusedxml { };
 
-  future = callPackage ../applications/video/kodi/addons/future { };
+    future = callPackage ../applications/video/kodi/addons/future { };
 
-  idna = callPackage ../applications/video/kodi/addons/idna { };
+    idna = callPackage ../applications/video/kodi/addons/idna { };
 
-  infotagger = callPackage ../applications/video/kodi/addons/infotagger { };
+    infotagger = callPackage ../applications/video/kodi/addons/infotagger { };
 
-  inputstream-adaptive = callPackage ../applications/video/kodi/addons/inputstream-adaptive { };
+    inputstream-adaptive = callPackage ../applications/video/kodi/addons/inputstream-adaptive { };
 
-  inputstream-ffmpegdirect = callPackage ../applications/video/kodi/addons/inputstream-ffmpegdirect { };
+    inputstream-ffmpegdirect = callPackage ../applications/video/kodi/addons/inputstream-ffmpegdirect { };
 
-  inputstream-rtmp = callPackage ../applications/video/kodi/addons/inputstream-rtmp { };
+    inputstream-rtmp = callPackage ../applications/video/kodi/addons/inputstream-rtmp { };
 
-  inputstreamhelper = callPackage ../applications/video/kodi/addons/inputstreamhelper { };
+    inputstreamhelper = callPackage ../applications/video/kodi/addons/inputstreamhelper { };
 
-  kodi-six = callPackage ../applications/video/kodi/addons/kodi-six { };
+    kodi-six = callPackage ../applications/video/kodi/addons/kodi-six { };
 
-  myconnpy = callPackage ../applications/video/kodi/addons/myconnpy { };
+    myconnpy = callPackage ../applications/video/kodi/addons/myconnpy { };
 
-  requests = callPackage ../applications/video/kodi/addons/requests { };
+    requests = callPackage ../applications/video/kodi/addons/requests { };
 
-  requests-cache = callPackage ../applications/video/kodi/addons/requests-cache { };
+    requests-cache = callPackage ../applications/video/kodi/addons/requests-cache { };
 
-  routing = callPackage ../applications/video/kodi/addons/routing { };
+    routing = callPackage ../applications/video/kodi/addons/routing { };
 
-  sendtokodi = callPackage ../applications/video/kodi/addons/sendtokodi { };
+    sendtokodi = callPackage ../applications/video/kodi/addons/sendtokodi { };
 
-  signals = callPackage ../applications/video/kodi/addons/signals { };
+    signals = callPackage ../applications/video/kodi/addons/signals { };
 
-  simplejson = callPackage ../applications/video/kodi/addons/simplejson { };
+    simplejson = callPackage ../applications/video/kodi/addons/simplejson { };
 
-  six = callPackage ../applications/video/kodi/addons/six { };
+    six = callPackage ../applications/video/kodi/addons/six { };
 
-  sponsorblock = callPackage ../applications/video/kodi/addons/sponsorblock { };
+    sponsorblock = callPackage ../applications/video/kodi/addons/sponsorblock { };
 
-  urllib3 = callPackage ../applications/video/kodi/addons/urllib3 { };
+    urllib3 = callPackage ../applications/video/kodi/addons/urllib3 { };
 
-  websocket = callPackage ../applications/video/kodi/addons/websocket { };
+    websocket = callPackage ../applications/video/kodi/addons/websocket { };
 
-  xbmcswift2 = callPackage ../applications/video/kodi/addons/xbmcswift2 { };
+    xbmcswift2 = callPackage ../applications/video/kodi/addons/xbmcswift2 { };
 
-  typing_extensions = callPackage ../applications/video/kodi/addons/typing_extensions { };
+    typing_extensions = callPackage ../applications/video/kodi/addons/typing_extensions { };
 
-  arrow = callPackage ../applications/video/kodi/addons/arrow { };
+    arrow = callPackage ../applications/video/kodi/addons/arrow { };
 
-  trakt-module = callPackage ../applications/video/kodi/addons/trakt-module { };
+    trakt-module = callPackage ../applications/video/kodi/addons/trakt-module { };
 
-  trakt = callPackage ../applications/video/kodi/addons/trakt { };
-}; in self // lib.optionalAttrs config.allowAliases {
+    trakt = callPackage ../applications/video/kodi/addons/trakt { };
+}; in self // optionalAttrs config.allowAliases {
   # deprecated or renamed packages
 
   controllers = throw "kodi.packages.controllers has been replaced with kodi.packages.controller-topology-project - a package which contains a large number of controller profiles." { };
diff --git a/nixpkgs/pkgs/top-level/linux-kernels.nix b/nixpkgs/pkgs/top-level/linux-kernels.nix
index 5f0fe736d38a..4cfba7c9c724 100644
--- a/nixpkgs/pkgs/top-level/linux-kernels.nix
+++ b/nixpkgs/pkgs/top-level/linux-kernels.nix
@@ -196,6 +196,16 @@ in {
       ];
     };
 
+    linux_6_8 = callPackage ../os-specific/linux/kernel/mainline.nix {
+      branch = "6.8";
+      kernelPatches = [
+        kernelPatches.bridge_stp_helper
+        kernelPatches.request_key_helper
+        kernelPatches.rust_1_75
+        kernelPatches.rust_1_76
+      ];
+    };
+
     linux_testing = let
       testing = callPackage ../os-specific/linux/kernel/mainline.nix {
         # A special branch that tracks the kernel under the release process
@@ -299,6 +309,7 @@ in {
     inherit (pkgs) odp-dpdk pktgen; # added 2018-05
     inherit (pkgs) bcc bpftrace; # added 2021-12
     inherit (pkgs) oci-seccomp-bpf-hook; # added 2022-11
+    inherit (pkgs) dpdk; # added 2024-03
 
     acpi_call = callPackage ../os-specific/linux/acpi-call {};
 
@@ -335,8 +346,6 @@ in {
 
     dpdk-kmods = callPackage ../os-specific/linux/dpdk-kmods { };
 
-    dpdk = pkgs.dpdk.override { inherit kernel; };
-
     exfat-nofuse = if lib.versionOlder kernel.version "5.8" then callPackage ../os-specific/linux/exfat { } else null;
 
     evdi = callPackage ../os-specific/linux/evdi { };
@@ -596,6 +605,7 @@ in {
     linux_6_1 = recurseIntoAttrs (packagesFor kernels.linux_6_1);
     linux_6_6 = recurseIntoAttrs (packagesFor kernels.linux_6_6);
     linux_6_7 = recurseIntoAttrs (packagesFor kernels.linux_6_7);
+    linux_6_8 = recurseIntoAttrs (packagesFor kernels.linux_6_8);
     __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
@@ -662,7 +672,7 @@ in {
   packageAliases = {
     linux_default = packages.linux_6_6;
     # Update this when adding the newest kernel major version!
-    linux_latest = packages.linux_6_7;
+    linux_latest = packages.linux_6_8;
     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;
@@ -702,6 +712,5 @@ in {
     '';
   };
 
-  buildLinux = attrs: callPackage ../os-specific/linux/kernel/generic.nix attrs;
-
+  buildLinux = callPackage ../os-specific/linux/kernel/generic.nix {};
 }
diff --git a/nixpkgs/pkgs/top-level/octave-packages.nix b/nixpkgs/pkgs/top-level/octave-packages.nix
index 374163fa5673..c6d0839e9682 100644
--- a/nixpkgs/pkgs/top-level/octave-packages.nix
+++ b/nixpkgs/pkgs/top-level/octave-packages.nix
@@ -19,7 +19,15 @@
 , octave
 }:
 
-with lib;
+let
+  inherit (lib)
+    catAttrs
+    concatLists
+    filter
+    makeScope
+    unique
+    ;
+in
 
 makeScope newScope (self:
   let
diff --git a/nixpkgs/pkgs/top-level/perl-packages.nix b/nixpkgs/pkgs/top-level/perl-packages.nix
index a2c1cd476d14..397edd3c0320 100644
--- a/nixpkgs/pkgs/top-level/perl-packages.nix
+++ b/nixpkgs/pkgs/top-level/perl-packages.nix
@@ -1700,7 +1700,7 @@ with self; {
 
     src = fetchurl {
       url = "mirror://cpan/authors/id/P/PM/PMQS/BerkeleyDB-0.65.tar.gz";
-      hash = "sha256-QQqonnIylB1JEGyeBI1jN0dVQ+wdIz6nzbcly1uWNQQ=i";
+      hash = "sha256-QQqonnIylB1JEGyeBI1jN0dVQ+wdIz6nzbcly1uWNQQ=";
     };
 
     preConfigure = ''
@@ -9463,10 +9463,10 @@ with self; {
 
   FFICStat = buildPerlPackage {
     pname = "FFI-C-Stat";
-    version = "0.02";
+    version = "0.03";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-C-Stat-0.02.tar.gz";
-      hash = "sha256-ThXY9vn5hAfGUtnTE7URUHcTkgGOBx18GShDrILBvlk=";
+      url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-C-Stat-0.03.tar.gz";
+      hash = "sha256-YOjveCyLs0cFXJ49ov1BTzX2EP5P77eNBzncyiQoQx4=";
     };
     buildInputs = [ Filechdir PathTiny Test2Suite TestScript ];
     propagatedBuildInputs = [ FFIPlatypus RefUtil ];
@@ -13205,40 +13205,7 @@ with self; {
     };
   };
 
-  ImageExifTool = buildPerlPackage rec {
-    pname = "Image-ExifTool";
-    version = "12.70";
-
-    src = fetchurl {
-      url = "https://exiftool.org/Image-ExifTool-${version}.tar.gz";
-      hash = "sha256-TLJSJEXMPj870TkExq6uraX8Wl4kmNerrSlX3LQsr/4=";
-    };
-
-    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
-    postInstall = lib.optionalString stdenv.isDarwin ''
-      shortenPerlShebang $out/bin/exiftool
-    '';
-
-    meta = {
-      description = "A tool to read, write and edit EXIF meta information";
-      longDescription = ''
-        ExifTool is a platform-independent Perl library plus a command-line
-        application for reading, writing and editing meta information in a wide
-        variety of files. ExifTool supports many different metadata formats
-        including EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop
-        IRB, FlashPix, AFCP and ID3, as well as the maker notes of many digital
-        cameras by Canon, Casio, DJI, FLIR, FujiFilm, GE, GoPro, HP,
-        JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Motorola, Nikon,
-        Nintendo, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One,
-        Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon and Sony.
-      '';
-      homepage = "https://exiftool.org/";
-      changelog = "https://exiftool.org/history.html";
-      license = with lib.licenses; [ gpl1Plus /* or */ artistic2 ];
-      maintainers = with maintainers; [ kiloreux anthonyroussel ];
-      mainProgram = "exiftool";
-    };
-  };
+  ImageExifTool = callPackage ../development/perl-modules/ImageExifTool { };
 
   Inline = buildPerlPackage {
     pname = "Inline";
@@ -19814,10 +19781,10 @@ with self; {
 
   ParallelLoops = buildPerlPackage {
     pname = "Parallel-Loops";
-    version = "0.10";
+    version = "0.12";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PM/PMORCH/Parallel-Loops-0.10.tar.gz";
-      hash = "sha256-b5Z7RuejY7FocbmZHDWeFC3Dsigc/psa85kEcEyL0qo=";
+      url = "mirror://cpan/authors/id/P/PM/PMORCH/Parallel-Loops-0.12.tar.gz";
+      hash = "sha256-tmyP4v1RmHPIp7atHRoE3yAmkSJZteKKQeUdnJsVQVA=";
     };
     propagatedBuildInputs = [ ParallelForkManager ];
     meta = {
@@ -27493,47 +27460,7 @@ with self; {
     };
   };
 
-  Tirex = buildPerlPackage rec {
-    pname = "Tirex";
-    version = "0.7.0";
-
-    src = fetchFromGitHub {
-      owner = "openstreetmap";
-      repo = "tirex";
-      rev = "v${version}";
-      hash = "sha256-0QbPfCPBdNBbUiZ8Ppg2zao98+Ddl3l+yX6y1/J50rg=";
-    };
-
-    patches = [
-      # https://github.com/openstreetmap/tirex/pull/54
-      (fetchpatch {
-        url = "https://github.com/openstreetmap/tirex/commit/da0c5db926bc0939c53dd902a969b689ccf9edde.patch";
-        hash = "sha256-bnL1ZGy8ZNSZuCRbZn59qRVLg3TL0GjFYnhRKroeVO0=";
-      })
-    ];
-
-    buildInputs = [
-      GD
-      IPCShareLite
-      JSON
-      LWP
-      pkgs.mapnik
-    ] ++ pkgs.mapnik.buildInputs;
-
-    installPhase = ''
-      install -m 755 -d $out/usr/libexec
-      make install DESTDIR=$out INSTALLOPTS=""
-      mv $out/$out/lib $out/$out/share $out
-      rmdir $out/$out $out/nix/store $out/nix
-    '';
-
-    meta = {
-      description = "Tools for running a map tile server";
-      homepage = "https://wiki.openstreetmap.org/wiki/Tirex";
-      maintainers = with maintainers; [ jglukasik ];
-      license = with lib.licenses; [ gpl2Only ];
-    };
-  };
+  Tirex = callPackage ../development/perl-modules/Tirex { };
 
   Tk = buildPerlPackage {
     pname = "Tk";
@@ -28431,9 +28358,9 @@ with self; {
     };
     env.AUTOMATED_TESTING = false;
     nativeBuildInputs = [ pkgs.pkg-config ];
-    buildInputs = [ pkgs.xorg.libxcb pkgs.xorg.xcbproto pkgs.xorg.xcbutil pkgs.xorg.xcbutilwm ExtUtilsDepends ExtUtilsPkgConfig TestDeep TestException XSObjectMagic ];
-    propagatedBuildInputs = [ DataDump MouseXNativeTraits XMLDescent XMLSimple ];
-    NIX_CFLAGS_LINK = "-lxcb -lxcb-util -lxcb-xinerama -lxcb-icccm";
+    buildInputs = [ pkgs.xorg.libxcb pkgs.xorg.xcbproto pkgs.xorg.xcbutil pkgs.xorg.xcbutilwm ExtUtilsDepends ExtUtilsPkgConfig TestDeep TestException ];
+    propagatedBuildInputs = [ DataDump MouseXNativeTraits XMLDescent XMLSimple XSObjectMagic ];
+    NIX_CFLAGS_LINK = "-lxcb -lxcb-util -lxcb-xinerama -lxcb-icccm -lxcb-randr -lxcb-xkb";
     doCheck = false; # requires an X server
     meta = {
       description = "Perl bindings for libxcb";
diff --git a/nixpkgs/pkgs/top-level/php-packages.nix b/nixpkgs/pkgs/top-level/php-packages.nix
index 25a1c821ac52..0cb66e414839 100644
--- a/nixpkgs/pkgs/top-level/php-packages.nix
+++ b/nixpkgs/pkgs/top-level/php-packages.nix
@@ -259,6 +259,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
     inotify = callPackage ../development/php-packages/inotify { };
 
+    ioncube-loader = callPackage ../development/php-packages/ioncube-loader { };
+
     mailparse = callPackage ../development/php-packages/mailparse { };
 
     maxminddb = callPackage ../development/php-packages/maxminddb { };
@@ -372,7 +374,7 @@ lib.makeScope pkgs.newScope (self: with self; {
             "--enable-dom"
           ];
           # Add a PHP lower version bound constraint to avoid applying the patch on older PHP versions.
-          patches = lib.optionals (lib.versionOlder php.version "8.2.14" && lib.versionAtLeast php.version "8.1") [
+          patches = lib.optionals ((lib.versions.majorMinor php.version == "8.2" && lib.versionOlder php.version "8.2.14" && lib.versionAtLeast php.version "8.2.7") || (lib.versions.majorMinor php.version == "8.1" && lib.versionAtLeast php.version "8.1.27")) [
             # Fix tests with libxml 2.12
             # Part of 8.3.1RC1+, 8.2.14RC1+
             (fetchpatch {
@@ -411,7 +413,7 @@ lib.makeScope pkgs.newScope (self: with self; {
         {
           name = "gettext";
           buildInputs = [ gettext ];
-          postPhpize = ''substituteInPlace configure --replace 'as_fn_error $? "Cannot locate header file libintl.h" "$LINENO" 5' ':' '';
+          postPhpize = ''substituteInPlace configure --replace-fail 'as_fn_error $? "Cannot locate header file libintl.h" "$LINENO" 5' ':' '';
           configureFlags = [ "--with-gettext=${gettext}" ];
         }
         {
@@ -663,7 +665,9 @@ lib.makeScope pkgs.newScope (self: with self; {
         {
           name = "xsl";
           buildInputs = [ libxslt libxml2 ];
+          internalDeps = [ php.extensions.dom ];
           doCheck = false;
+          env.NIX_CFLAGS_COMPILE = toString [ "-I../.." "-DHAVE_DOM" ];
           configureFlags = [ "--with-xsl=${libxslt.dev}" ];
         }
         { name = "zend_test"; }
diff --git a/nixpkgs/pkgs/top-level/python-aliases.nix b/nixpkgs/pkgs/top-level/python-aliases.nix
index c10b48c8421a..fed4bac69f27 100644
--- a/nixpkgs/pkgs/top-level/python-aliases.nix
+++ b/nixpkgs/pkgs/top-level/python-aliases.nix
@@ -302,7 +302,6 @@ mapAliases ({
   pam = python-pam; # added 2020-09-07.
   PasteDeploy = pastedeploy; # added 2021-10-07
   pathpy = path; # added 2022-04-12
-  paypalrestsdk = throw "paypalrestsdk was removed, the upstream repo was archived back in 2020"; # Added 2023-11-25
   pdfposter = throw "pdfposter was promoted to a top-level attribute"; # Added 2023-06-29
   pdfminer = pdfminer-six; # added 2022-05-25
   pep257 = pydocstyle; # added 2022-04-12
@@ -502,6 +501,7 @@ mapAliases ({
   thumborPexif = throw "thumborPexif has been removed, because it was unused."; # added 2024-01-07
   torrent_parser = torrent-parser; # added 2023-11-04
   transip = throw "transip has been removed because it is no longer maintained. TransIP SOAP V5 API was marked as deprecated"; # added 2023-02-27
+  py-tree-sitter = throw "Was merged with tree-sitter."; # added 2024-03-20
   trezor_agent = trezor-agent; # Added 2024-01-07
   tumpa = throw "tumpa was promoted to a top-level attribute"; # added 2022-11-19
   tvdb_api = tvdb-api; # added 2023-10-20
diff --git a/nixpkgs/pkgs/top-level/python-packages.nix b/nixpkgs/pkgs/top-level/python-packages.nix
index 377d5e2587d1..534d9b49abc4 100644
--- a/nixpkgs/pkgs/top-level/python-packages.nix
+++ b/nixpkgs/pkgs/top-level/python-packages.nix
@@ -341,6 +341,8 @@ self: super: with self; {
 
   aiopg = callPackage ../development/python-modules/aiopg { };
 
+  aiopinboard = callPackage ../development/python-modules/aiopinboard { };
+
   aioprocessing = callPackage ../development/python-modules/aioprocessing { };
 
   aioprometheus = callPackage ../development/python-modules/aioprometheus { };
@@ -361,6 +363,8 @@ self: super: with self; {
 
   aioquic = callPackage ../development/python-modules/aioquic { };
 
+  aioraven = callPackage ../development/python-modules/aioraven { };
+
   aiorecollect = callPackage ../development/python-modules/aiorecollect { };
 
   aioredis = callPackage ../development/python-modules/aioredis { };
@@ -1593,6 +1597,8 @@ self: super: with self; {
 
   bloodhound-py = callPackage ../development/python-modules/bloodhound-py { };
 
+  bloodyad = callPackage ../development/python-modules/bloodyad { };
+
   blosc2 = callPackage ../development/python-modules/blosc2 { };
 
   bluecurrent-api = callPackage ../development/python-modules/bluecurrent-api { };
@@ -1682,6 +1688,8 @@ self: super: with self; {
 
   boxx = callPackage ../development/python-modules/boxx { };
 
+  bpemb = callPackage ../development/python-modules/bpemb { };
+
   bpycv = callPackage ../development/python-modules/bpycv {};
 
   bpython = callPackage ../development/python-modules/bpython { };
@@ -1884,6 +1892,8 @@ self: super: with self; {
 
   case = callPackage ../development/python-modules/case { };
 
+  cashaddress = callPackage ../development/python-modules/cashaddress { };
+
   cassandra-driver = callPackage ../development/python-modules/cassandra-driver { };
 
   castepxbin = callPackage ../development/python-modules/castepxbin { };
@@ -1947,6 +1957,8 @@ self: super: with self; {
 
   connio = callPackage ../development/python-modules/connio { };
 
+  conway-polynomials = callPackage ../development/python-modules/conway-polynomials {};
+
   correctionlib = callPackage ../development/python-modules/correctionlib { };
 
   coqpit = callPackage ../development/python-modules/coqpit { };
@@ -1985,6 +1997,8 @@ self: super: with self; {
 
   cf-xarray = callPackage ../development/python-modules/cf-xarray { };
 
+  cffconvert = callPackage ../development/python-modules/cffconvert { };
+
   cffi = callPackage ../development/python-modules/cffi { };
 
   cffsubr = callPackage ../development/python-modules/cffsubr { };
@@ -2349,6 +2363,8 @@ self: super: with self; {
 
   compressai = callPackage ../development/python-modules/compressai { };
 
+  compressed-rtf = callPackage ../development/python-modules/compressed-rtf { };
+
   concurrent-log-handler = callPackage ../development/python-modules/concurrent-log-handler { };
 
   conda = callPackage ../development/python-modules/conda { };
@@ -2523,7 +2539,7 @@ self: super: with self; {
 
   css-inline = callPackage ../development/python-modules/css-inline {
     inherit (pkgs.darwin) libiconv;
-    inherit (pkgs.darwin.apple_sdk.frameworks) Security;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
 
   css-parser = callPackage ../development/python-modules/css-parser { };
@@ -2598,10 +2614,10 @@ self: super: with self; {
   cython = callPackage ../development/python-modules/cython { };
 
   cython_3 = self.cython.overridePythonAttrs (old: rec {
-    version = "3.0.7";
+    version = "3.0.9";
     src = old.src.override {
       inherit version;
-      hash = "sha256-+ymazzpXhXPBkMhY1J4M+ddfS8ScPyTFpjgEmX7wkhM=";
+      hash = "sha256-otNU8FnR8FXTTPqmLFtovHisLOq2QHFI1H+1CM87pPM=";
     };
     patches = [ ];
   });
@@ -2616,6 +2632,8 @@ self: super: with self; {
 
   daemonocle = callPackage ../development/python-modules/daemonocle { };
 
+  daff = callPackage ../development/python-modules/daff { };
+
   daiquiri = callPackage ../development/python-modules/daiquiri { };
 
   dalle-mini = callPackage ../development/python-modules/dalle-mini { };
@@ -2820,6 +2838,8 @@ self: super: with self; {
 
   deezer-python = callPackage ../development/python-modules/deezer-python { };
 
+  defang = callPackage ../development/python-modules/defang { };
+
   defcon = callPackage ../development/python-modules/defcon { };
 
   deform = callPackage ../development/python-modules/deform { };
@@ -2832,6 +2852,8 @@ self: super: with self; {
 
   deid = callPackage ../development/python-modules/deid { };
 
+  dek = callPackage ../development/python-modules/dek { };
+
   delegator-py = callPackage ../development/python-modules/delegator-py { };
 
   delorean = callPackage ../development/python-modules/delorean { };
@@ -2848,6 +2870,8 @@ self: super: with self; {
 
   demjson3 = callPackage ../development/python-modules/demjson3 { };
 
+  demoji = callPackage ../development/python-modules/demoji { };
+
   dendropy = callPackage ../development/python-modules/dendropy { };
 
   denonavr = callPackage ../development/python-modules/denonavr { };
@@ -2932,6 +2956,8 @@ self: super: with self; {
 
   directv = callPackage ../development/python-modules/directv { };
 
+  dirigera = callPackage ../development/python-modules/dirigera { };
+
   dirty-equals = callPackage ../development/python-modules/dirty-equals { };
 
   dirtyjson = callPackage ../development/python-modules/dirtyjson { };
@@ -3592,6 +3618,8 @@ self: super: with self; {
 
   ebaysdk = callPackage ../development/python-modules/ebaysdk { };
 
+  ebcdic = callPackage ../development/python-modules/ebcdic { };
+
   ebooklib = callPackage ../development/python-modules/ebooklib { };
 
   ec2instanceconnectcli = callPackage ../tools/virtualization/ec2instanceconnectcli { };
@@ -3625,6 +3653,10 @@ self: super: with self; {
 
   editdistance-s = callPackage ../development/python-modules/editdistance-s { };
 
+  editdistpy = callPackage ../development/python-modules/editdistpy { };
+
+  editor = callPackage ../development/python-modules/editor { };
+
   editorconfig = callPackage ../development/python-modules/editorconfig { };
 
   edk2-pytool-library = callPackage ../development/python-modules/edk2-pytool-library { };
@@ -3839,6 +3871,8 @@ self: super: with self; {
 
   eve = callPackage ../development/python-modules/eve { };
 
+  eventkit = callPackage ../development/python-modules/eventkit { };
+
   eventlet = callPackage ../development/python-modules/eventlet { };
 
   events = callPackage ../development/python-modules/events { };
@@ -3892,6 +3926,8 @@ self: super: with self; {
 
   exitcode = callPackage ../development/python-modules/exitcode { };
 
+  extract-msg = callPackage ../development/python-modules/extract-msg { };
+
   extractcode = callPackage ../development/python-modules/extractcode { };
 
   extractcode-7z = callPackage ../development/python-modules/extractcode/7z.nix {
@@ -4045,6 +4081,8 @@ self: super: with self; {
 
   fe25519 = callPackage ../development/python-modules/fe25519 { };
 
+  feedfinder2 = callPackage ../development/python-modules/feedfinder2 { };
+
   feedgen = callPackage ../development/python-modules/feedgen { };
 
   feedgenerator = callPackage ../development/python-modules/feedgenerator {
@@ -4424,6 +4462,8 @@ self: super: with self; {
 
   frozenlist = callPackage ../development/python-modules/frozenlist { };
 
+  frozenlist2 = callPackage ../development/python-modules/frozenlist2 { };
+
   fs = callPackage ../development/python-modules/fs { };
 
   fs-s3fs = callPackage ../development/python-modules/fs-s3fs { };
@@ -4515,6 +4555,8 @@ self: super: with self; {
     inherit (pkgs) bluez glib pkg-config;
   };
 
+  gawd = callPackage ../development/python-modules/gawd { };
+
   gb-io = callPackage ../development/python-modules/gb-io { };
 
   gbinder-python = callPackage ../development/python-modules/gbinder-python { };
@@ -4927,6 +4969,8 @@ self: super: with self; {
 
   gpsoauth = callPackage ../development/python-modules/gpsoauth { };
 
+  gpuctypes = callPackage ../development/python-modules/gpuctypes { };
+
   gpustat = callPackage ../development/python-modules/gpustat { };
 
   gpxpy = callPackage ../development/python-modules/gpxpy { };
@@ -4969,6 +5013,8 @@ self: super: with self; {
 
   graphene-django = callPackage ../development/python-modules/graphene-django { };
 
+  graphlib-backport = callPackage ../development/python-modules/graphlib-backport { };
+
   graphqlclient= callPackage ../development/python-modules/graphqlclient { };
 
   graphql-core = callPackage ../development/python-modules/graphql-core { };
@@ -5084,10 +5130,8 @@ self: super: with self; {
 
   guppy3 = callPackage ../development/python-modules/guppy3 { };
 
-  gurobipy = if stdenv.hostPlatform.system == "x86_64-darwin" then
-    callPackage ../development/python-modules/gurobipy/darwin.nix {
-      inherit (pkgs.darwin) cctools insert_dylib;
-    }
+  gurobipy = if stdenv.hostPlatform.isDarwin then
+    callPackage ../development/python-modules/gurobipy/darwin.nix { }
   else if stdenv.hostPlatform.system == "x86_64-linux" then
     callPackage ../development/python-modules/gurobipy/linux.nix { }
   else
@@ -5668,6 +5712,8 @@ self: super: with self; {
 
   insteon-frontend-home-assistant = callPackage ../development/python-modules/insteon-frontend-home-assistant { };
 
+  instructor = callPackage ../development/python-modules/instructor { };
+
   intake = callPackage ../development/python-modules/intake { };
 
   intake-parquet = callPackage ../development/python-modules/intake-parquet { };
@@ -5698,6 +5744,8 @@ self: super: with self; {
 
   invoke = callPackage ../development/python-modules/invoke { };
 
+  iocsearcher = callPackage ../development/python-modules/iocsearcher { };
+
   iodata = callPackage ../development/python-modules/iodata { };
 
   iocapture = callPackage ../development/python-modules/iocapture { };
@@ -5732,7 +5780,7 @@ self: super: with self; {
 
   ipwhois = callPackage ../development/python-modules/ipwhois { };
 
-  ipy = callPackage ../development/python-modules/IPy { };
+  ipy = callPackage ../development/python-modules/ipy { };
 
   ipycanvas = callPackage ../development/python-modules/ipycanvas { };
 
@@ -5945,6 +5993,8 @@ self: super: with self; {
 
   josepy = callPackage ../development/python-modules/josepy { };
 
+  joserfc = callPackage ../development/python-modules/joserfc { };
+
   journalwatch = callPackage ../tools/system/journalwatch {
     inherit (self) systemd pytest;
   };
@@ -5999,6 +6049,8 @@ self: super: with self; {
 
   jsonable = callPackage ../development/python-modules/jsonable { };
 
+  jsonformatter = callPackage ../development/python-modules/jsonformatter { };
+
   jsonnet = buildPythonPackage { inherit (pkgs.jsonnet) name src; };
 
   jsonpatch = callPackage ../development/python-modules/jsonpatch { };
@@ -6231,6 +6283,8 @@ self: super: with self; {
     inherit (pkgs) keyutils;
   };
 
+  khanaa = callPackage ../development/python-modules/khanaa {};
+
   kicad = toPythonModule (pkgs.kicad.override {
     python3 = python;
   }).src;
@@ -6298,6 +6352,8 @@ self: super: with self; {
 
   laces = callPackage ../development/python-modules/laces { };
 
+  lacuscore = callPackage ../development/python-modules/lacuscore { };
+
   lakeside = callPackage ../development/python-modules/lakeside { };
 
   langchain = callPackage ../development/python-modules/langchain { };
@@ -6759,6 +6815,8 @@ self: super: with self; {
 
   lmtpd = callPackage ../development/python-modules/lmtpd { };
 
+  lnkparse3 = callPackage ../development/python-modules/lnkparse3 { };
+
   loca = callPackage ../development/python-modules/loca { };
 
   localimport = callPackage ../development/python-modules/localimport { };
@@ -6895,6 +6953,8 @@ self: super: with self; {
 
   magic-wormhole-transit-relay = callPackage ../development/python-modules/magic-wormhole-transit-relay { };
 
+  magika = callPackage ../development/python-modules/magika { };
+
   mahotas = callPackage ../development/python-modules/mahotas { };
 
   mailcap-fix = callPackage ../development/python-modules/mailcap-fix { };
@@ -6905,6 +6965,8 @@ self: super: with self; {
 
   mailmanclient = callPackage ../development/python-modules/mailmanclient { };
 
+  rtfde = callPackage ../development/python-modules/rtfde { };
+
   rtfunicode = callPackage ../development/python-modules/rtfunicode { };
 
   rtmixer = callPackage ../development/python-modules/rtmixer { };
@@ -6921,7 +6983,7 @@ self: super: with self; {
 
   mako = callPackage ../development/python-modules/mako { };
 
-  malduck= callPackage ../development/python-modules/malduck { };
+  malduck = callPackage ../development/python-modules/malduck { };
 
   managesieve = callPackage ../development/python-modules/managesieve { };
 
@@ -6953,6 +7015,8 @@ self: super: with self; {
 
   mariadb = callPackage ../development/python-modules/mariadb { };
 
+  marimo = callPackage ../development/python-modules/marimo { };
+
   marisa = callPackage ../development/python-modules/marisa {
     inherit (pkgs) marisa;
   };
@@ -8712,6 +8776,8 @@ self: super: with self; {
 
   python-nvd3 = callPackage ../development/python-modules/python-nvd3 { };
 
+  python-secp256k1-cardano = callPackage ../development/python-modules/python-secp256k1-cardano { };
+
   python-tds = callPackage ../development/python-modules/python-tds { };
 
   python-yate = callPackage ../development/python-modules/python-yate { };
@@ -8799,6 +8865,8 @@ self: super: with self; {
 
   oletools = callPackage ../development/python-modules/oletools { };
 
+  ollama = callPackage ../development/python-modules/ollama { };
+
   omegaconf = callPackage ../development/python-modules/omegaconf { };
 
   omemo-dr = callPackage ../development/python-modules/omemo-dr { };
@@ -9038,6 +9106,8 @@ self: super: with self; {
 
   orderedset = callPackage ../development/python-modules/orderedset { };
 
+  orgparse = callPackage ../development/python-modules/orgparse { };
+
   orjson = callPackage ../development/python-modules/orjson { };
 
   orm = callPackage ../development/python-modules/orm { };
@@ -9246,6 +9316,8 @@ self: super: with self; {
 
   pathlib = callPackage ../development/python-modules/pathlib { };
 
+  pathlib-abc = callPackage ../development/python-modules/pathlib-abc { };
+
   pathos = callPackage ../development/python-modules/pathos { };
 
   pathspec = callPackage ../development/python-modules/pathspec { };
@@ -9270,6 +9342,8 @@ self: super: with self; {
 
   paypalhttp = callPackage ../development/python-modules/paypalhttp { };
 
+  paypalrestsdk = callPackage ../development/python-modules/paypalrestsdk { };
+
   pbkdf2 = callPackage ../development/python-modules/pbkdf2 { };
 
   pbr = callPackage ../development/python-modules/pbr { };
@@ -9342,12 +9416,7 @@ self: super: with self; {
 
   pem = callPackage ../development/python-modules/pem { };
 
-  pendulum = if pythonAtLeast "3.12" then
-    pendulum_3
-  else
-    callPackage ../development/python-modules/pendulum { };
-
-  pendulum_3 = callPackage ../development/python-modules/pendulum/3.nix { };
+  pendulum = callPackage ../development/python-modules/pendulum { };
 
   pep440 = callPackage ../development/python-modules/pep440 { };
 
@@ -9597,6 +9666,10 @@ self: super: with self; {
 
   playwright = callPackage ../development/python-modules/playwright { };
 
+  playwright-stealth = callPackage ../development/python-modules/playwright-stealth { };
+
+  playwrightcapture = callPackage ../development/python-modules/playwrightcapture { };
+
   pmsensor = callPackage ../development/python-modules/pmsensor { };
 
   ppdeep = callPackage ../development/python-modules/ppdeep { };
@@ -9896,6 +9969,8 @@ self: super: with self; {
 
   plumbum = callPackage ../development/python-modules/plumbum { };
 
+  pluthon = callPackage ../development/python-modules/pluthon { };
+
   plux = callPackage ../development/python-modules/plux { };
 
   ply = callPackage ../development/python-modules/ply { };
@@ -10247,8 +10322,6 @@ self: super: with self; {
 
   py-tes = callPackage ../development/python-modules/py-tes { };
 
-  py-tree-sitter = callPackage ../development/python-modules/py-tree-sitter { };
-
   py-ubjson = callPackage ../development/python-modules/py-ubjson { };
 
   py-zabbix = callPackage ../development/python-modules/py-zabbix { };
@@ -10353,7 +10426,7 @@ self: super: with self; {
 
   pybigwig = callPackage ../development/python-modules/pybigwig { };
 
-  pybind11 = pkgs.disable-warnings-if-gcc13 (callPackage ../development/python-modules/pybind11 { });
+  pybind11 = callPackage ../development/python-modules/pybind11 { };
 
   pybindgen = callPackage ../development/python-modules/pybindgen { };
 
@@ -10471,7 +10544,7 @@ self: super: with self; {
 
   pycron = callPackage ../development/python-modules/pycron { };
 
-  pycrypto = pkgs.disable-warnings-if-gcc13 (callPackage ../development/python-modules/pycrypto { });
+  pycrypto = callPackage ../development/python-modules/pycrypto { };
 
   pycryptodome = callPackage ../development/python-modules/pycryptodome { };
 
@@ -10893,6 +10966,8 @@ self: super: with self; {
 
   pylacrosse = callPackage ../development/python-modules/pylacrosse { };
 
+  pylacus = callPackage ../development/python-modules/pylacus { };
+
   pylama = callPackage ../development/python-modules/pylama { };
 
   pylast = callPackage ../development/python-modules/pylast { };
@@ -11159,10 +11234,6 @@ self: super: with self; {
 
   pyomo = callPackage ../development/python-modules/pyomo { };
 
-  pyp = callPackage ../development/python-modules/pyp {
-    inherit (pkgs) jq;
-  };
-
   pypng = callPackage ../development/python-modules/pypng { };
 
   phonemizer = callPackage ../development/python-modules/phonemizer { };
@@ -11307,11 +11378,11 @@ self: super: with self; {
 
   pyqt6 = callPackage ../development/python-modules/pyqt/6.x.nix { };
 
-  pyqt6-charts = callPackage ../development/python-modules/pyqt6-charts.nix { };
+  pyqt6-charts = callPackage ../development/python-modules/pyqt6-charts { };
 
   pyqt6-sip = callPackage ../development/python-modules/pyqt/pyqt6-sip.nix { };
 
-  pyqt6-webengine = callPackage ../development/python-modules/pyqt6-webengine.nix { };
+  pyqt6-webengine = callPackage ../development/python-modules/pyqt6-webengine { };
 
   pyqt3d = pkgs.libsForQt5.callPackage ../development/python-modules/pyqt3d {
     inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder
@@ -11694,6 +11765,8 @@ self: super: with self; {
 
   pytest = callPackage ../development/python-modules/pytest { };
 
+  pytest_7 = callPackage ../development/python-modules/pytest/7.nix { };
+
   pytest-aio = callPackage ../development/python-modules/pytest-aio { };
 
   pytest-aiohttp = callPackage ../development/python-modules/pytest-aiohttp { };
@@ -11997,7 +12070,7 @@ self: super: with self; {
 
   python-datemath = callPackage ../development/python-modules/python-datemath { };
 
-  python-dateutil = callPackage ../development/python-modules/dateutil { };
+  python-dateutil = callPackage ../development/python-modules/python-dateutil { };
 
   python-dbusmock = callPackage ../development/python-modules/python-dbusmock { };
 
@@ -12714,6 +12787,8 @@ self: super: with self; {
 
   readability-lxml = callPackage ../development/python-modules/readability-lxml { };
 
+  readabilipy = callPackage ../development/python-modules/readabilipy { };
+
   readchar = callPackage ../development/python-modules/readchar { };
 
   readlike = callPackage ../development/python-modules/readlike { };
@@ -12748,6 +12823,8 @@ self: super: with self; {
 
   recursive-pth-loader = toPythonModule (callPackage ../development/python-modules/recursive-pth-loader { });
 
+  red-black-tree-mod = callPackage ../development/python-modules/red-black-tree-mod { };
+
   redbaron = callPackage ../development/python-modules/redbaron { };
 
   redis = callPackage ../development/python-modules/redis { };
@@ -12830,6 +12907,8 @@ self: super: with self; {
 
   requests-credssp = callPackage ../development/python-modules/requests-credssp { };
 
+  requests-gssapi = callPackage ../development/python-modules/requests-gssapi { };
+
   requests-hawk = callPackage ../development/python-modules/requests-hawk { };
 
   requests = callPackage ../development/python-modules/requests { };
@@ -12984,6 +13063,14 @@ self: super: with self; {
 
   rns = callPackage ../development/python-modules/rns { };
 
+  roadlib = callPackage ../development/python-modules/roadlib { };
+
+  roadrecon = callPackage ../development/python-modules/roadrecon { };
+
+  roadtools = callPackage ../development/python-modules/roadtools { };
+
+  roadtx = callPackage ../development/python-modules/roadtx { };
+
   robomachine = callPackage ../development/python-modules/robomachine { };
 
   robot-detection = callPackage ../development/python-modules/robot-detection { };
@@ -13072,7 +13159,9 @@ self: super: with self; {
 
   rpyc4 = callPackage ../development/python-modules/rpyc4 { };
 
-  rq = callPackage ../development/python-modules/rq { };
+  rq = callPackage ../development/python-modules/rq {
+    redis-server = pkgs.redis;
+  };
 
   rsa = callPackage ../development/python-modules/rsa { };
 
@@ -13116,6 +13205,8 @@ self: super: with self; {
 
   rules = callPackage ../development/python-modules/rules { };
 
+  runs = callPackage ../development/python-modules/runs { };
+
   ruuvitag-ble = callPackage ../development/python-modules/ruuvitag-ble { };
 
   ruyaml = callPackage ../development/python-modules/ruyaml { };
@@ -13156,6 +13247,8 @@ self: super: with self; {
 
   safety = callPackage ../development/python-modules/safety { };
 
+  safety-schemas = callPackage ../development/python-modules/safety-schemas { };
+
   sagemaker = callPackage ../development/python-modules/sagemaker { };
 
   salmon-mail = callPackage ../development/python-modules/salmon-mail { };
@@ -13342,6 +13435,8 @@ self: super: with self; {
 
   selenium = callPackage ../development/python-modules/selenium { };
 
+  selenium-wire = callPackage ../development/python-modules/selenium-wire { };
+
   semantic-version = callPackage ../development/python-modules/semantic-version { };
 
   semaphore-bot = callPackage ../development/python-modules/semaphore-bot { };
@@ -13500,6 +13595,8 @@ self: super: with self; {
 
   signedjson = callPackage ../development/python-modules/signedjson { };
 
+  signxml = callPackage ../development/python-modules/signxml { };
+
   sigrok = callPackage ../development/python-modules/sigrok { };
 
   sigstore = callPackage ../development/python-modules/sigstore { };
@@ -13838,6 +13935,8 @@ self: super: with self; {
 
   speechbrain = callPackage ../development/python-modules/speechbrain { };
 
+  speechrecognition = callPackage ../development/python-modules/speechrecognition { };
+
   speedtest-cli = callPackage ../development/python-modules/speedtest-cli { };
 
   speg = callPackage ../development/python-modules/speg { };
@@ -14310,6 +14409,8 @@ self: super: with self; {
 
   sympy = callPackage ../development/python-modules/sympy { };
 
+  symspellpy = callPackage ../development/python-modules/symspellpy { };
+
   syncedlyrics = callPackage ../development/python-modules/syncedlyrics { };
 
   syncer = callPackage ../development/python-modules/syncer { };
@@ -14401,6 +14502,8 @@ self: super: with self; {
 
   tcxreader = callPackage ../development/python-modules/tcxreader { };
 
+  tdir = callPackage ../development/python-modules/tdir { };
+
   teamcity-messages = callPackage ../development/python-modules/teamcity-messages { };
 
   telegram = callPackage ../development/python-modules/telegram { };
@@ -14749,10 +14852,14 @@ self: super: with self; {
 
   tinydb = callPackage ../development/python-modules/tinydb { };
 
+  tinygrad = callPackage ../development/python-modules/tinygrad { };
+
   tinyobjloader-py = callPackage ../development/python-modules/tinyobjloader-py { };
 
   tinyrecord = callPackage ../development/python-modules/tinyrecord { };
 
+  tinysegmenter = callPackage ../development/python-modules/tinysegmenter { };
+
   tissue = callPackage ../development/python-modules/tissue { };
 
   titlecase = callPackage ../development/python-modules/titlecase { };
@@ -14960,7 +15067,9 @@ self: super: with self; {
 
   treq = callPackage ../development/python-modules/treq { };
 
-  trezor-agent = callPackage ../development/python-modules/trezor-agent { };
+  trezor-agent = callPackage ../development/python-modules/trezor-agent {
+    pinentry = pkgs.pinentry-curses;
+  };
 
   trezor = callPackage ../development/python-modules/trezor { };
 
@@ -15000,6 +15109,8 @@ self: super: with self; {
 
   ttls = callPackage ../development/python-modules/ttls { };
 
+  ttn-client = callPackage ../development/python-modules/ttn-client { };
+
   ttp = callPackage ../development/python-modules/ttp { };
 
   ttp-templates = callPackage ../development/python-modules/ttp-templates { };
@@ -15016,6 +15127,8 @@ self: super: with self; {
 
   turnt = callPackage ../development/python-modules/turnt { };
 
+  tuya-device-sharing-sdk = callPackage ../development/python-modules/tuya-device-sharing-sdk { };
+
   tuya-iot-py-sdk = callPackage ../development/python-modules/tuya-iot-py-sdk { };
 
   tuyaha = callPackage ../development/python-modules/tuyaha { };
@@ -15978,6 +16091,8 @@ self: super: with self; {
 
   uncompyle6 = callPackage ../development/python-modules/uncompyle6 { };
 
+  undefined = callPackage ../development/python-modules/undefined { };
+
   unearth = callPackage ../development/python-modules/unearth { };
 
   unicodecsv = callPackage ../development/python-modules/unicodecsv { };
@@ -16060,6 +16175,8 @@ self: super: with self; {
 
   update-dotdee = callPackage ../development/python-modules/update-dotdee { };
 
+  uplc = callPackage ../development/python-modules/uplc { };
+
   upnpy = callPackage ../development/python-modules/upnpy { };
 
   uproot = callPackage ../development/python-modules/uproot { };
@@ -16317,6 +16434,8 @@ self: super: with self; {
 
   wallbox = callPackage ../development/python-modules/wallbox { };
 
+  wallet-py3k = callPackage ../development/python-modules/wallet-py3k { };
+
   walrus = callPackage ../development/python-modules/walrus { };
 
   wand = callPackage ../development/python-modules/wand { };
@@ -16550,6 +16669,8 @@ self: super: with self; {
 
   wtforms-bootstrap5 = callPackage ../development/python-modules/wtforms-bootstrap5 { };
 
+  wunsen = callPackage ../development/python-modules/wunsen { };
+
   wtf-peewee = callPackage ../development/python-modules/wtf-peewee { };
 
   wurlitzer = callPackage ../development/python-modules/wurlitzer { };
@@ -16651,6 +16772,8 @@ self: super: with self; {
 
   xml-marshaller = callPackage ../development/python-modules/xml-marshaller { };
 
+  xmod = callPackage ../development/python-modules/xmod { };
+
   xmodem = callPackage ../development/python-modules/xmodem { };
 
   xnatpy = callPackage ../development/python-modules/xnatpy { };
diff --git a/nixpkgs/pkgs/top-level/release-cross.nix b/nixpkgs/pkgs/top-level/release-cross.nix
index 6fae32c9290b..93d1eaa9a83a 100644
--- a/nixpkgs/pkgs/top-level/release-cross.nix
+++ b/nixpkgs/pkgs/top-level/release-cross.nix
@@ -20,9 +20,40 @@
   nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
 }:
 
-with import ./release-lib.nix { inherit supportedSystems scrubJobs nixpkgsArgs; };
-
 let
+  release-lib = import ./release-lib.nix {
+    inherit supportedSystems scrubJobs nixpkgsArgs;
+  };
+
+  inherit (release-lib)
+    all
+    assertTrue
+    darwin
+    forMatchingSystems
+    hydraJob'
+    linux
+    mapTestOnCross
+    pkgsForCross
+    unix
+    ;
+
+  inherit (release-lib.lib)
+    mapAttrs
+    addMetaAttrs
+    elem
+    getAttrFromPath
+    isDerivation
+    maintainers
+    mapAttrsRecursive
+    mapAttrsRecursiveCond
+    recursiveUpdate
+    systems
+    ;
+
+  inherit (release-lib.lib.attrsets)
+    removeAttrs
+    ;
+
   nativePlatforms = all;
 
   embedded = {
@@ -42,14 +73,14 @@ let
     cargo = nativePlatforms;
   };
 
-  gnuCommon = lib.recursiveUpdate common {
+  gnuCommon = recursiveUpdate common {
     buildPackages.gcc = nativePlatforms;
     coreutils = nativePlatforms;
     haskell.packages.ghcHEAD.hello = nativePlatforms;
     haskellPackages.hello = nativePlatforms;
   };
 
-  linuxCommon = lib.recursiveUpdate gnuCommon {
+  linuxCommon = recursiveUpdate gnuCommon {
     buildPackages.gdb = nativePlatforms;
 
     bison = nativePlatforms;
@@ -60,7 +91,7 @@ let
     patch = nativePlatforms;
   };
 
-  windowsCommon = lib.recursiveUpdate gnuCommon {
+  windowsCommon = recursiveUpdate gnuCommon {
     boehmgc = nativePlatforms;
     guile_1_8 = nativePlatforms;
     libffi = nativePlatforms;
@@ -120,7 +151,7 @@ in
     # good idea lest there be some irrelevant pass-through debug attrs that
     # cause false negatives.
     testEqualOne = path: system: let
-      f = path: crossSystem: system: builtins.toString (lib.getAttrFromPath path (pkgsForCross crossSystem system));
+      f = path: crossSystem: system: toString (getAttrFromPath path (pkgsForCross crossSystem system));
     in assertTrue (
         f path null system
         ==
@@ -129,7 +160,7 @@ in
 
     testEqual = path: systems: forMatchingSystems systems (testEqualOne path);
 
-    mapTestEqual = lib.mapAttrsRecursive testEqual;
+    mapTestEqual = mapAttrsRecursive testEqual;
 
   in mapTestEqual {
     boehmgc = nativePlatforms;
@@ -142,105 +173,107 @@ in
     guile = nativePlatforms;
   };
 
-  crossIphone64 = mapTestOnCross lib.systems.examples.iphone64 darwinCommon;
+  crossIphone64 = mapTestOnCross systems.examples.iphone64 darwinCommon;
 
-  crossIphone32 = mapTestOnCross lib.systems.examples.iphone32 darwinCommon;
+  crossIphone32 = mapTestOnCross systems.examples.iphone32 darwinCommon;
 
   /* Test some cross builds to the Sheevaplug */
-  crossSheevaplugLinux = mapTestOnCross lib.systems.examples.sheevaplug (linuxCommon // {
+  crossSheevaplugLinux = mapTestOnCross systems.examples.sheevaplug (linuxCommon // {
     ubootSheevaplug = nativePlatforms;
   });
 
   /* Test some cross builds on 32 bit mingw-w64 */
-  crossMingw32 = mapTestOnCross lib.systems.examples.mingw32 windowsCommon;
+  crossMingw32 = mapTestOnCross systems.examples.mingw32 windowsCommon;
 
   /* Test some cross builds on 64 bit mingw-w64 */
-  crossMingwW64 = mapTestOnCross lib.systems.examples.mingwW64 windowsCommon;
+  crossMingwW64 = mapTestOnCross systems.examples.mingwW64 windowsCommon;
 
   /* Linux on mipsel */
-  fuloongminipc = mapTestOnCross lib.systems.examples.fuloongminipc linuxCommon;
-  ben-nanonote = mapTestOnCross lib.systems.examples.ben-nanonote linuxCommon;
+  fuloongminipc = mapTestOnCross systems.examples.fuloongminipc linuxCommon;
+  ben-nanonote = mapTestOnCross systems.examples.ben-nanonote linuxCommon;
 
   /* Javacript */
-  ghcjs = mapTestOnCross lib.systems.examples.ghcjs {
+  ghcjs = mapTestOnCross systems.examples.ghcjs {
     haskell.packages.ghcjs.hello = nativePlatforms;
     haskell.packages.native-bignum.ghcHEAD.hello = nativePlatforms;
     haskellPackages.hello = nativePlatforms;
   };
 
   /* Linux on Raspberrypi */
-  rpi = mapTestOnCross lib.systems.examples.raspberryPi rpiCommon;
-  rpi-musl = mapTestOnCross lib.systems.examples.muslpi rpiCommon;
+  rpi = mapTestOnCross systems.examples.raspberryPi rpiCommon;
+  rpi-musl = mapTestOnCross systems.examples.muslpi rpiCommon;
 
   /* Linux on the Remarkable */
-  remarkable1 = mapTestOnCross lib.systems.examples.remarkable1 linuxCommon;
-  remarkable2 = mapTestOnCross lib.systems.examples.remarkable2 linuxCommon;
+  remarkable1 = mapTestOnCross systems.examples.remarkable1 linuxCommon;
+  remarkable2 = mapTestOnCross systems.examples.remarkable2 linuxCommon;
 
   /* Linux on armv7l-hf */
-  armv7l-hf = mapTestOnCross lib.systems.examples.armv7l-hf-multiplatform linuxCommon;
+  armv7l-hf = mapTestOnCross systems.examples.armv7l-hf-multiplatform linuxCommon;
 
-  pogoplug4 = mapTestOnCross lib.systems.examples.pogoplug4 linuxCommon;
+  pogoplug4 = mapTestOnCross systems.examples.pogoplug4 linuxCommon;
 
   /* Linux on aarch64 */
-  aarch64 = mapTestOnCross lib.systems.examples.aarch64-multiplatform linuxCommon;
-  aarch64-musl = mapTestOnCross lib.systems.examples.aarch64-multiplatform-musl linuxCommon;
+  aarch64 = mapTestOnCross systems.examples.aarch64-multiplatform linuxCommon;
+  aarch64-musl = mapTestOnCross systems.examples.aarch64-multiplatform-musl linuxCommon;
 
   /* Linux on RISCV */
-  riscv64 = mapTestOnCross lib.systems.examples.riscv64 linuxCommon;
-  riscv32 = mapTestOnCross lib.systems.examples.riscv32 linuxCommon;
+  riscv64 = mapTestOnCross systems.examples.riscv64 linuxCommon;
+  riscv32 = mapTestOnCross systems.examples.riscv32 linuxCommon;
 
   /* Linux on LoongArch */
-  loongarch64-linux = mapTestOnCross lib.systems.examples.loongarch64-linux linuxCommon;
+  loongarch64-linux = mapTestOnCross systems.examples.loongarch64-linux linuxCommon;
 
-  m68k = mapTestOnCross lib.systems.examples.m68k linuxCommon;
-  s390x = mapTestOnCross lib.systems.examples.s390x linuxCommon;
+  m68k = mapTestOnCross systems.examples.m68k linuxCommon;
+  s390x = mapTestOnCross systems.examples.s390x linuxCommon;
 
   /* (Cross-compiled) Linux on x86 */
-  x86_64-musl = mapTestOnCross lib.systems.examples.musl64 linuxCommon;
-  x86_64-gnu = mapTestOnCross lib.systems.examples.gnu64 linuxCommon;
-  i686-musl = mapTestOnCross lib.systems.examples.musl32 linuxCommon;
-  i686-gnu = mapTestOnCross lib.systems.examples.gnu32 linuxCommon;
-
-  ppc64le = mapTestOnCross lib.systems.examples.powernv linuxCommon;
-  ppc64le-musl = mapTestOnCross lib.systems.examples.musl-power linuxCommon;
-
-  android64 = mapTestOnCross lib.systems.examples.aarch64-android-prebuilt linuxCommon;
-  android32 = mapTestOnCross lib.systems.examples.armv7a-android-prebuilt linuxCommon;
-
-  wasi32 = mapTestOnCross lib.systems.examples.wasi32 wasiCommon;
-
-  msp430 = mapTestOnCross lib.systems.examples.msp430 embedded;
-  mmix = mapTestOnCross lib.systems.examples.mmix embedded;
-  vc4 = mapTestOnCross lib.systems.examples.vc4 embedded;
-  or1k = mapTestOnCross lib.systems.examples.or1k embedded;
-  avr = mapTestOnCross lib.systems.examples.avr embedded;
-  arm-embedded = mapTestOnCross lib.systems.examples.arm-embedded embedded;
-  armhf-embedded = mapTestOnCross lib.systems.examples.armhf-embedded embedded;
-  aarch64-embedded = mapTestOnCross lib.systems.examples.aarch64-embedded embedded;
-  aarch64be-embedded = mapTestOnCross lib.systems.examples.aarch64be-embedded embedded;
-  powerpc-embedded = mapTestOnCross lib.systems.examples.ppc-embedded embedded;
-  powerpcle-embedded = mapTestOnCross lib.systems.examples.ppcle-embedded embedded;
-  i686-embedded = mapTestOnCross lib.systems.examples.i686-embedded embedded;
-  x86_64-embedded = mapTestOnCross lib.systems.examples.x86_64-embedded embedded;
-  riscv64-embedded = mapTestOnCross lib.systems.examples.riscv64-embedded embedded;
-  riscv32-embedded = mapTestOnCross lib.systems.examples.riscv32-embedded embedded;
-  rx-embedded = mapTestOnCross lib.systems.examples.rx-embedded embedded;
-
-  x86_64-freebsd = mapTestOnCross lib.systems.examples.x86_64-freebsd common;
-  x86_64-netbsd = mapTestOnCross lib.systems.examples.x86_64-netbsd common;
+  x86_64-musl = mapTestOnCross systems.examples.musl64 linuxCommon;
+  x86_64-gnu = mapTestOnCross systems.examples.gnu64 linuxCommon;
+  i686-musl = mapTestOnCross systems.examples.musl32 linuxCommon;
+  i686-gnu = mapTestOnCross systems.examples.gnu32 linuxCommon;
+
+  ppc64le = mapTestOnCross systems.examples.powernv linuxCommon;
+  ppc64le-musl = mapTestOnCross systems.examples.musl-power linuxCommon;
+
+  android64 = mapTestOnCross systems.examples.aarch64-android-prebuilt linuxCommon;
+  android32 = mapTestOnCross systems.examples.armv7a-android-prebuilt linuxCommon;
+
+  wasi32 = mapTestOnCross systems.examples.wasi32 wasiCommon;
+
+  msp430 = mapTestOnCross systems.examples.msp430 embedded;
+  mmix = mapTestOnCross systems.examples.mmix embedded;
+  vc4 = mapTestOnCross systems.examples.vc4 embedded;
+  or1k = mapTestOnCross systems.examples.or1k embedded;
+  avr = mapTestOnCross systems.examples.avr embedded;
+  arm-embedded = mapTestOnCross systems.examples.arm-embedded embedded;
+  armhf-embedded = mapTestOnCross systems.examples.armhf-embedded embedded;
+  aarch64-embedded = mapTestOnCross systems.examples.aarch64-embedded embedded;
+  aarch64be-embedded = mapTestOnCross systems.examples.aarch64be-embedded embedded;
+  powerpc-embedded = mapTestOnCross systems.examples.ppc-embedded embedded;
+  powerpcle-embedded = mapTestOnCross systems.examples.ppcle-embedded embedded;
+  i686-embedded = mapTestOnCross systems.examples.i686-embedded embedded;
+  x86_64-embedded = mapTestOnCross systems.examples.x86_64-embedded embedded;
+  riscv64-embedded = mapTestOnCross systems.examples.riscv64-embedded embedded;
+  riscv32-embedded = mapTestOnCross systems.examples.riscv32-embedded embedded;
+  rx-embedded = mapTestOnCross systems.examples.rx-embedded embedded;
+
+  x86_64-freebsd = mapTestOnCross systems.examples.x86_64-freebsd common;
+  x86_64-netbsd = mapTestOnCross systems.examples.x86_64-netbsd common;
 
   # we test `embedded` instead of `linuxCommon` because very few packages
   # successfully cross-compile to Redox so far
-  x86_64-redox = mapTestOnCross lib.systems.examples.x86_64-unknown-redox embedded;
+  x86_64-redox = mapTestOnCross systems.examples.x86_64-unknown-redox embedded;
 
   /* Cross-built bootstrap tools for every supported platform */
   bootstrapTools = let
     tools = import ../stdenv/linux/make-bootstrap-tools-cross.nix { system = "x86_64-linux"; };
-    maintainers = [ lib.maintainers.dezgeg ];
+    meta = {
+      maintainers = [ maintainers.dezgeg ];
+    };
     mkBootstrapToolsJob = drv:
-      assert lib.elem drv.system supportedSystems;
-      hydraJob' (lib.addMetaAttrs { inherit maintainers; } drv);
-  in lib.mapAttrsRecursiveCond (as: !lib.isDerivation as) (name: mkBootstrapToolsJob)
+      assert elem drv.system supportedSystems;
+      hydraJob' (addMetaAttrs meta drv);
+  in mapAttrsRecursiveCond (as: !isDerivation as) (name: mkBootstrapToolsJob)
     # The `bootstrapTools.${platform}.bootstrapTools` derivation
     # *unpacks* the bootstrap-files using their own `busybox` binary,
     # so it will fail unless buildPlatform.canExecute hostPlatform.
@@ -248,9 +281,9 @@ in
     # attribute, so there is no way to detect this -- we must add it
     # as a special case.  We filter the "test" attribute (only from
      # *cross*-built bootstrapTools) for the same reason.
-    (builtins.mapAttrs (_: v: builtins.removeAttrs v ["bootstrapTools" "test"]) tools);
+    (mapAttrs (_: v: removeAttrs v ["bootstrapTools" "test"]) tools);
 
   # Cross-built nixStatic for platforms for enabled-but-unsupported platforms
-  mips64el-nixCrossStatic = mapTestOnCross lib.systems.examples.mips64el-linux-gnuabi64 nixCrossStatic;
-  powerpc64le-nixCrossStatic = mapTestOnCross lib.systems.examples.powernv nixCrossStatic;
+  mips64el-nixCrossStatic = mapTestOnCross systems.examples.mips64el-linux-gnuabi64 nixCrossStatic;
+  powerpc64le-nixCrossStatic = mapTestOnCross systems.examples.powernv nixCrossStatic;
 }
diff --git a/nixpkgs/pkgs/top-level/release-cuda.nix b/nixpkgs/pkgs/top-level/release-cuda.nix
index c96f08af41bf..f9577b9b72c7 100644
--- a/nixpkgs/pkgs/top-level/release-cuda.nix
+++ b/nixpkgs/pkgs/top-level/release-cuda.nix
@@ -18,10 +18,15 @@
   nixpkgsArgs ? { config = { allowUnfree = true; inHydra = true; }; }
 }:
 
-with import ./release-lib.nix {inherit supportedSystems nixpkgsArgs; };
-with lib;
-
 let
+  release-lib = import ./release-lib.nix {
+    inherit supportedSystems nixpkgsArgs;
+  };
+
+  inherit (release-lib) linux mapTestOn packagePlatforms pkgs;
+
+  inherit (release-lib.lib) genAttrs;
+
   # Package sets to evaluate
   packageSets = [
     "cudaPackages_10_0"
diff --git a/nixpkgs/pkgs/top-level/release-haskell.nix b/nixpkgs/pkgs/top-level/release-haskell.nix
index 435e17da15e0..67e56fbbc7d7 100644
--- a/nixpkgs/pkgs/top-level/release-haskell.nix
+++ b/nixpkgs/pkgs/top-level/release-haskell.nix
@@ -72,6 +72,7 @@ let
     ghc963
     ghc964
     ghc981
+    ghc982
   ];
 
   # packagePlatforms applied to `haskell.packages.*`
@@ -306,8 +307,6 @@ let
         hledger-web
         hlint
         hpack
-        # hyper-haskell  # depends on electron-10.4.7 which is marked as insecure
-        # hyper-haskell-server-with-packages # hyper-haskell-server is broken
         icepeak
         ihaskell
         jacinda
@@ -333,7 +332,7 @@ let
         nota
         nvfetcher
         ormolu
-        pakcs
+        # pakcs broken by set-extra on 2024-03-15
         pandoc
         petrinizer
         place-cursor-at
@@ -344,6 +343,7 @@ let
         sourceAndTags
         spacecookie
         spago
+        specup
         splot
         stack
         stack2nix
@@ -359,7 +359,7 @@ let
         uusi
         uqm
         uuagc
-        vaultenv
+        # vaultenv: broken by connection on 2024-03-16
         wstunnel
         xmobar
         xmonadctl
@@ -374,7 +374,7 @@ let
           elm
           elm-format
           elm-instrument
-          elmi-to-json
+          # elmi-to-json broken by hashable-time on 2024-03-16
           ;
       };
 
@@ -448,8 +448,8 @@ let
               ;
             };
 
-            haskell.packages.native-bignum.ghc981 = {
-              inherit (packagePlatforms pkgs.pkgsStatic.haskell.packages.native-bignum.ghc981)
+            haskell.packages.native-bignum.ghc982 = {
+              inherit (packagePlatforms pkgs.pkgsStatic.haskell.packages.native-bignum.ghc982)
                 hello
                 random
                 QuickCheck
@@ -489,18 +489,23 @@ let
       # working as expected.
       cabal-install = lib.subtractLists [
         compilerNames.ghc981
+        compilerNames.ghc982
       ] released;
       Cabal_3_10_2_1 = lib.subtractLists [
         compilerNames.ghc981
+        compilerNames.ghc982
       ] released;
       Cabal-syntax_3_10_1_0 = lib.subtractLists [
         compilerNames.ghc981
+        compilerNames.ghc982
       ] released;
       cabal2nix = lib.subtractLists [
         compilerNames.ghc981
+        compilerNames.ghc982
       ] released;
       cabal2nix-unstable = lib.subtractLists [
         compilerNames.ghc981
+        compilerNames.ghc982
       ] released;
       funcmp = released;
       haskell-language-server = lib.subtractLists [
@@ -510,20 +515,23 @@ let
         compilerNames.ghc902
       ] released;
       hoogle = lib.subtractLists [
-        compilerNames.ghc963
         compilerNames.ghc981
+        compilerNames.ghc982
       ] released;
       hlint = lib.subtractLists [
-        compilerNames.ghc963
+        compilerNames.ghc902
         compilerNames.ghc981
+        compilerNames.ghc982
       ] released;
       hpack = lib.subtractLists [
         compilerNames.ghc981
+        compilerNames.ghc982
       ] released;
       hsdns = released;
       jailbreak-cabal = released;
       language-nix = lib.subtractLists [
         compilerNames.ghc981
+        compilerNames.ghc982
       ] released;
       large-hashable = [
         compilerNames.ghc928
@@ -531,6 +539,7 @@ let
       nix-paths = released;
       titlecase = lib.subtractLists [
         compilerNames.ghc981
+        compilerNames.ghc982
       ] released;
       ghc-api-compat = [
         compilerNames.ghc8107
@@ -541,12 +550,15 @@ let
       ];
       ghc-lib = lib.subtractLists [
         compilerNames.ghc981
+        compilerNames.ghc982
       ] released;
       ghc-lib-parser = lib.subtractLists [
         compilerNames.ghc981
+        compilerNames.ghc982
       ] released;
       ghc-lib-parser-ex = lib.subtractLists [
         compilerNames.ghc981
+        compilerNames.ghc982
       ] released;
       ghc-source-gen = [
         # Feel free to remove these as they break,
@@ -555,26 +567,20 @@ let
         compilerNames.ghc902
         compilerNames.ghc928
       ];
-      ghc-tags = lib.subtractLists [
-        compilerNames.ghc981
-      ] released;
+      # broken on 2024-03-16
+      # ghc-tags = lib.subtractLists [
+      #   compilerNames.ghc981
+      #   compilerNames.ghc982
+      # ] released;
       hashable = lib.subtractLists [
         compilerNames.ghc981
+        compilerNames.ghc982
       ] released;
       primitive = released;
-      weeder = [
-        compilerNames.ghc8107
-        compilerNames.ghc902
-        compilerNames.ghc925
-        compilerNames.ghc926
-        compilerNames.ghc927
-        compilerNames.ghc928
-        compilerNames.ghc945
-        compilerNames.ghc946
-        compilerNames.ghc947
-        compilerNames.ghc948
-        compilerNames.ghc963
-      ];
+      weeder = lib.subtractLists [
+        compilerNames.ghc981
+        compilerNames.ghc982
+      ] released;
     })
     {
       mergeable = pkgs.releaseTools.aggregate {
@@ -675,7 +681,7 @@ let
         constituents = accumulateDerivations [
           jobs.pkgsStatic.haskell.packages.native-bignum.ghc948 # non-hadrian
           jobs.pkgsStatic.haskellPackages
-          jobs.pkgsStatic.haskell.packages.native-bignum.ghc981
+          jobs.pkgsStatic.haskell.packages.native-bignum.ghc982
         ];
       };
     }
diff --git a/nixpkgs/pkgs/top-level/release-lib.nix b/nixpkgs/pkgs/top-level/release-lib.nix
index 38e6f8072776..9f2886895689 100644
--- a/nixpkgs/pkgs/top-level/release-lib.nix
+++ b/nixpkgs/pkgs/top-level/release-lib.nix
@@ -7,13 +7,33 @@
 
 let
   lib = import ../../lib;
-in with lib;
-
-rec {
-
-  pkgs = packageSet (lib.recursiveUpdate { system = "x86_64-linux"; config.allowUnsupportedSystem = true; } nixpkgsArgs);
-  inherit lib;
 
+  inherit (lib)
+    addMetaAttrs
+    any
+    derivations
+    filter
+    flip
+    genAttrs
+    getAttrFromPath
+    hydraJob
+    id
+    isDerivation
+    lists
+    maintainers
+    mapAttrs
+    mapAttrs'
+    mapAttrsRecursive
+    matchAttrs
+    meta
+    nameValuePair
+    platforms
+    recursiveUpdate
+    subtractLists
+    systems
+    ;
+
+  pkgs = packageSet (recursiveUpdate { system = "x86_64-linux"; config.allowUnsupportedSystem = true; } nixpkgsArgs);
 
   hydraJob' = if scrubJobs then hydraJob else id;
 
@@ -57,8 +77,8 @@ rec {
 
   # More poor man's memoisation
   pkgsForCross = let
-    examplesByConfig = lib.flip lib.mapAttrs'
-      lib.systems.examples
+    examplesByConfig = flip mapAttrs'
+      systems.examples
       (_: crossSystem: nameValuePair crossSystem.config {
         inherit crossSystem;
         pkgsFor = mkPkgsFor crossSystem;
@@ -68,7 +88,7 @@ rec {
     candidate = examplesByConfig.${crossSystem.config} or null;
   in if crossSystem == null
       then native
-    else if candidate != null && lib.matchAttrs crossSystem candidate.crossSystem
+    else if candidate != null && matchAttrs crossSystem candidate.crossSystem
       then candidate.pkgsFor
     else mkPkgsFor crossSystem; # uncached fallback
 
@@ -80,12 +100,12 @@ rec {
   # This is written in a funny way so that we only elaborate the systems once.
   supportedMatches = let
       supportedPlatforms = map
-        (system: lib.systems.elaborate { inherit system; })
+        (system: systems.elaborate { inherit system; })
         supportedSystems;
     in metaPatterns: let
       anyMatch = platform:
-        lib.any (lib.meta.platformMatch platform) metaPatterns;
-      matchingPlatforms = lib.filter anyMatch supportedPlatforms;
+        any (meta.platformMatch platform) metaPatterns;
+      matchingPlatforms = filter anyMatch supportedPlatforms;
     in map ({ system, ...}: system) matchingPlatforms;
 
 
@@ -135,7 +155,6 @@ rec {
     (path: metaPatterns: testOnCross crossSystem metaPatterns
       (pkgs: f (getAttrFromPath path pkgs)));
 
-
   /* Similar to the testOn function, but with an additional 'crossSystem'
    * parameter for packageSet', defining the target platform for cross builds,
    * and triggering the build of the host derivation. */
@@ -148,7 +167,7 @@ rec {
   packagePlatforms = mapAttrs (name: value:
       if isDerivation value then
         value.meta.hydraPlatforms
-          or (lib.subtractLists (value.meta.badPlatforms or [])
+          or (subtractLists (value.meta.badPlatforms or [])
                (value.meta.platforms or [ "x86_64-linux" ]))
       else if value.recurseForDerivations or false || value.recurseForRelease or false then
         packagePlatforms value
@@ -156,8 +175,24 @@ rec {
         []
     );
 
-
+in {
   /* Common platform groups on which to test packages. */
   inherit (platforms) unix linux darwin cygwin all mesaPlatforms;
 
+  inherit
+    assertTrue
+    forAllSystems
+    forMatchingSystems
+    hydraJob'
+    lib
+    mapTestOn
+    mapTestOnCross
+    packagePlatforms
+    pkgs
+    pkgsFor
+    pkgsForCross
+    supportedMatches
+    testOn
+    testOnCross
+    ;
 }
diff --git a/nixpkgs/pkgs/top-level/release-python.nix b/nixpkgs/pkgs/top-level/release-python.nix
index bc54860d45f6..81ea4d3403a7 100644
--- a/nixpkgs/pkgs/top-level/release-python.nix
+++ b/nixpkgs/pkgs/top-level/release-python.nix
@@ -21,10 +21,15 @@
   }; }
 }:
 
-with import ./release-lib.nix {inherit supportedSystems nixpkgsArgs; };
-with lib;
-
 let
+  release-lib = import ./release-lib.nix {
+    inherit supportedSystems nixpkgsArgs;
+  };
+
+  inherit (release-lib) mapTestOn pkgs;
+
+  inherit (release-lib.lib) isDerivation mapAttrs optionals;
+
   packagePython = mapAttrs (name: value:
     let res = builtins.tryEval (
       if isDerivation value then
@@ -33,7 +38,7 @@ let
         packagePython value
       else
         []);
-    in lib.optionals res.success res.value
+    in optionals res.success res.value
     );
 
   jobs = {
diff --git a/nixpkgs/pkgs/top-level/release-r.nix b/nixpkgs/pkgs/top-level/release-r.nix
index 4c715a7786d6..898436de8cc4 100644
--- a/nixpkgs/pkgs/top-level/release-r.nix
+++ b/nixpkgs/pkgs/top-level/release-r.nix
@@ -6,7 +6,13 @@
 */
 { supportedSystems ? [ "x86_64-linux" "aarch64-linux" ] }:
 
-with import ./release-lib.nix { inherit supportedSystems; };
+let
+  inherit (import ./release-lib.nix { inherit supportedSystems; })
+    mapTestOn
+    packagePlatforms
+    pkgs
+    ;
+in
 
 mapTestOn {
   rPackages = packagePlatforms pkgs.rPackages;
diff --git a/nixpkgs/pkgs/top-level/release-small.nix b/nixpkgs/pkgs/top-level/release-small.nix
index 30e0c188bb70..2b143248948f 100644
--- a/nixpkgs/pkgs/top-level/release-small.nix
+++ b/nixpkgs/pkgs/top-level/release-small.nix
@@ -7,7 +7,13 @@
   nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
 }:
 
-with import ./release-lib.nix { inherit supportedSystems nixpkgsArgs; };
+let
+  release-lib = import ./release-lib.nix {
+    inherit supportedSystems nixpkgsArgs;
+  };
+
+  inherit (release-lib) all linux darwin mapTestOn unix;
+in
 
 {
 
diff --git a/nixpkgs/pkgs/top-level/release.nix b/nixpkgs/pkgs/top-level/release.nix
index a8f1e69b361f..c3ea17b85d6c 100644
--- a/nixpkgs/pkgs/top-level/release.nix
+++ b/nixpkgs/pkgs/top-level/release.nix
@@ -52,15 +52,30 @@
 , attrNamesOnly ? false
 }:
 
-let release-lib = import ./release-lib.nix { inherit supportedSystems scrubJobs nixpkgsArgs; }; in
-with release-lib;
-
 let
+  release-lib = import ./release-lib.nix {
+    inherit supportedSystems scrubJobs nixpkgsArgs;
+  };
+
+  inherit (release-lib) mapTestOn pkgs;
+
+  inherit (release-lib.lib)
+    collect
+    elem
+    genAttrs
+    hasInfix
+    hasSuffix
+    id
+    isDerivation
+    optionals
+    ;
+
+  inherit (release-lib.lib.attrsets) unionOfDisjoint;
 
-  supportDarwin = lib.genAttrs [
+  supportDarwin = genAttrs [
     "x86_64"
     "aarch64"
-  ] (arch: builtins.elem "${arch}-darwin" supportedSystems);
+  ] (arch: elem "${arch}-darwin" supportedSystems);
 
   nonPackageJobs =
     { tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease supportedSystems; };
@@ -162,8 +177,8 @@ let
               jobs.tests.stdenv.hooks.patch-shebangs.x86_64-linux
               */
             ]
-            ++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools
-            ++ lib.optionals supportDarwin.x86_64 [
+            ++ collect isDerivation jobs.stdenvBootstrapTools
+            ++ optionals supportDarwin.x86_64 [
               jobs.stdenv.x86_64-darwin
               jobs.cargo.x86_64-darwin
               jobs.cachix.x86_64-darwin
@@ -190,7 +205,7 @@ let
               jobs.tests.stdenv.hooks.patch-shebangs.x86_64-darwin
               */
             ]
-            ++ lib.optionals supportDarwin.aarch64 [
+            ++ optionals supportDarwin.aarch64 [
               jobs.stdenv.aarch64-darwin
               jobs.cargo.aarch64-darwin
               jobs.cachix.aarch64-darwin
@@ -210,8 +225,7 @@ let
             ];
         };
 
-      stdenvBootstrapTools = with lib;
-        genAttrs bootstrapConfigs (config:
+      stdenvBootstrapTools = genAttrs bootstrapConfigs (config:
           if hasInfix "-linux-" config then
             let
               bootstrap = import ../stdenv/linux/make-bootstrap-tools.nix {
@@ -244,13 +258,13 @@ let
   # Conflicts usually cause silent job drops like in
   #   https://github.com/NixOS/nixpkgs/pull/182058
   jobs = let
-    packagePlatforms = if attrNamesOnly then lib.id else release-lib.packagePlatforms;
+    packagePlatforms = if attrNamesOnly then id else release-lib.packagePlatforms;
     packageJobs = {
       haskell.compiler = packagePlatforms pkgs.haskell.compiler;
       haskellPackages = packagePlatforms pkgs.haskellPackages;
       # Build selected packages (HLS) for multiple Haskell compilers to rebuild
       # the cache after a staging merge
-      haskell.packages = lib.genAttrs [
+      haskell.packages = genAttrs [
         # TODO: share this list between release.nix and release-haskell.nix
         "ghc90"
         "ghc92"
@@ -285,8 +299,6 @@ let
       then pkgs // packageJobs
       else mapTestOn ((packagePlatforms pkgs) // packageJobs);
   in
-    lib.attrsets.unionOfDisjoint
-      nonPackageJobs
-      mapTestOn-packages;
+    unionOfDisjoint nonPackageJobs mapTestOn-packages;
 
 in jobs
diff --git a/nixpkgs/pkgs/top-level/ruby-packages.nix b/nixpkgs/pkgs/top-level/ruby-packages.nix
index 267d79607f13..232c48c739b1 100644
--- a/nixpkgs/pkgs/top-level/ruby-packages.nix
+++ b/nixpkgs/pkgs/top-level/ruby-packages.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "052k2zx8fvm6g2x0ylfhrlhif98vv98xsxgihhknh9d2w4j6ywqg";
+      sha256 = "0ifiz4nd6a34z2n8lpdgvlgwziy2g364b0xzghiqd3inji0cwqp1";
       type = "gem";
     };
-    version = "7.1.3";
+    version = "7.1.3.2";
   };
   actionmailbox = {
     dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" "net-imap" "net-pop" "net-smtp"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "083p1yd52p60fqrbx29yp5kia42mljhylvbpnmwxkxb65lxmibzw";
+      sha256 = "1adqnf5zc4fdr71ykxdv5b50h7n4xfvrc0qcgwmgidi0cxkzx4r4";
       type = "gem";
     };
-    version = "7.1.3";
+    version = "7.1.3.2";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "net-imap" "net-pop" "net-smtp" "rails-dom-testing"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1329z1vz01isncgkqzh2xqncf2y7hzz1gw0rqbxama323iwrv7nz";
+      sha256 = "012mxn5dfhwbssrckw6kvf851m6rlfa87n4nikk28g05ydfsvcys";
       type = "gem";
     };
-    version = "7.1.3";
+    version = "7.1.3.2";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "nokogiri" "racc" "rack" "rack-session" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -38,10 +38,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g8ff6lgaskr6kigni7chdcazh68qgr8dhgslrj7zlzll4xx3sg3";
+      sha256 = "0n1v4r5cyac5wfdlf8bly45mnh60vbp067yjpkyb05vyszamiydq";
       type = "gem";
     };
-    version = "7.1.3";
+    version = "7.1.3.2";
   };
   actiontext = {
     dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "globalid" "nokogiri"];
@@ -49,10 +49,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l9sf6jqfvzh9hy2s3hsdakf6x8r6w9776v9hgih1ac5axqp7sxz";
+      sha256 = "0an5sfy96cbd7f43igq47h3m228ivngqjj40gj6iqllhjhchgs7c";
       type = "gem";
     };
-    version = "7.1.3";
+    version = "7.1.3.2";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ldhlwkdlz0h409wwdl3ink0qii54m0lg9b87aji12x53lk3fssv";
+      sha256 = "1kq9b4xnwiknjqg4y6ixvv0cf1z0dcxs68inc8bx05s0fqrim6rn";
       type = "gem";
     };
-    version = "7.1.3";
+    version = "7.1.3.2";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bjng98n0h1mlqfy9rkm2xbkalmmbvdlra1b101m0kjzfa9dqyh1";
+      sha256 = "08gjywvd65yzgjw7ynsgvi00scxc4fmgj70wajn7wsdqx00hbafj";
       type = "gem";
     };
-    version = "7.1.3";
+    version = "7.1.3.2";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "097wj2g8wgc4n5n22nbk35c8s752pb9pxkm8vw0a30q78nbdmngd";
+      sha256 = "0p3ibps515151ja4gadrhh8frvjvvq4h5fpxw2acccv3z5i553hh";
       type = "gem";
     };
-    version = "7.1.3";
+    version = "7.1.3.2";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport" "timeout"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lbmjxn7yr1w65d9xk2khh9rvdn0mk8syngmrq2pdzrshaj46kp0";
+      sha256 = "0ww1qxn12nlp0ivysq0pxj6cvajf0fbq781fr4pqx5206c690wj8";
       type = "gem";
     };
-    version = "7.1.3";
+    version = "7.1.3.2";
   };
   activestorage = {
     dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel"];
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1na9x5y2y5s1jqip81dyml4cnhmbgdlh2ppa3qziff6hfzc7vcqx";
+      sha256 = "09wp0qqp7xr31ipcv42bs81fmyksz9l3jmraryf53qjsbbqpfdr8";
       type = "gem";
     };
-    version = "7.1.3";
+    version = "7.1.3.2";
   };
   activesupport = {
     dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "minitest" "mutex_m" "tzinfo"];
@@ -115,10 +115,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09zrw3sydkk6lwzjhzia38wg1as5aab2lgnysfdr1qxh39zi7z7v";
+      sha256 = "0blbbf2x7dn7ar4g9aij403582zb6zscbj48bz63lvaamsvlb15d";
       type = "gem";
     };
-    version = "7.1.3";
+    version = "7.1.3.2";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -157,10 +157,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rqhn05qvfzr7d3d4kv4z8ssw04ggg28gfnq92adpxxvkl6wqkms";
+      sha256 = "11lcig7dr3nanwdgsacv2hbdpdk5yfaqzfjl8gav41mjbk90w15q";
       type = "gem";
     };
-    version = "4.2.0";
+    version = "4.2.1";
   };
   awesome_print = {
     groups = ["default"];
@@ -217,20 +217,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00db5v09k1z3539g1zrk7vkjrln9967k08adh6qx33ng97a2gg5w";
+      sha256 = "0cq1c29zbkcxgdihqisirhcw76xc768z2zpd5vbccpq0l1lv76g7";
       type = "gem";
     };
-    version = "3.1.6";
+    version = "3.1.7";
   };
   bindata = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04y4zgh4bbcb8wmkxwfqg4saky1d1f3xw8z6yk543q13h8ky8rz5";
+      sha256 = "08r67nglsqnxrbn803szf5bdnqhchhq8kf2by94f37fcl65wpp19";
       type = "gem";
     };
-    version = "2.4.15";
+    version = "2.5.0";
   };
   builder = {
     groups = ["default"];
@@ -269,10 +269,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jk90pjw4a0fl8ridv63h2w5c5xa2w9ajbq7z02ii70qi2z9j4rm";
+      sha256 = "06y99zan4apgi4bsqqwnsdlsyss8dk2plr2gksh4yw8lkkk3a5zs";
       type = "gem";
     };
-    version = "4.2.0";
+    version = "4.2.1";
   };
   camping = {
     dependencies = ["kdl" "listen" "mab" "rack" "rack-session" "rackup" "zeitwerk"];
@@ -600,10 +600,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "175yx0csfr34h7q5ybvrl6hnyhz6z24lvhzyx75bmc7zlgbiq4sl";
+      sha256 = "0imaai3zmm3mx35kmfhsir8c3ijcs0s2zm8gd2rhqmk26gn3xqbm";
       type = "gem";
     };
-    version = "0.5.3";
+    version = "0.5.4";
   };
   cocoapods-wholemodule = {
     groups = ["default"];
@@ -835,10 +835,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1a5k4wj0ic2z1zrxyvhj1r1pv51qy0nslgbjf3rxkd720s00v29b";
+      sha256 = "0ffcxmrm1dnqip6xq9hsrycz4dggk8pj3cd6q99ji6024npjaal6";
       type = "gem";
     };
-    version = "7.7.0";
+    version = "7.8.0";
   };
   dnsruby = {
     dependencies = ["simpleidn"];
@@ -846,10 +846,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17bjlic4ac9980vas3pgnhi5lkisq28vd730bhcg8jdh8xcp6r48";
+      sha256 = "15zh7qi60zwzy184rdmmp55d857ss96f2lad78gcwnpr1223q4mj";
       type = "gem";
     };
-    version = "1.70.0";
+    version = "1.71.0";
   };
   do_sqlite3 = {
     dependencies = ["data_objects"];
@@ -887,21 +887,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1n0pi8x8ql5h1mijvm8lgn6bhq4xjb5a500p5r1krq4s6j9lg565";
+      sha256 = "1d5jv27p3gpj68pc1cxj3cp1bs11r25w2336sndsdfkx34p6hzlb";
       type = "gem";
     };
-    version = "2.8.1";
+    version = "3.1.0";
   };
   drb = {
-    dependencies = ["ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03ylflxbp9jrs1hx3d4wvx05yb9hdq4a0r706zz6qc6kvqfazr79";
+      sha256 = "0h5kbj9hvg5hb3c7l425zpds0vb42phvln2knab8nmazg2zp5m79";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.1";
   };
   e2mmap = {
     groups = ["default"];
@@ -941,10 +940,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l4znxsrcsa6a1ylig4wkml1kdydyvb3qzh7mr1gn39zn25wflj0";
+      sha256 = "0g2jghbn2pmi1k8lnqbslyjix2rablalp4gjjsh4k9gxpvx5r1x1";
       type = "gem";
     };
-    version = "0.7.1";
+    version = "0.7.2";
   };
   erubi = {
     groups = ["default"];
@@ -982,10 +981,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kmmwgjzlrnc3nnrdnw1z67c95nbw0hv54a73yj8jw6pcvl9585x";
+      sha256 = "1m3gzvp1wqki0yh4b7761qhdy4pyr4phy429b7s9w25nrkhp4lsz";
       type = "gem";
     };
-    version = "0.109.0";
+    version = "0.110.0";
   };
   execjs = {
     groups = ["default"];
@@ -1035,10 +1034,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c2caqm9wqnbidcb8dj4wd3s902z15qmgxplwyfyqbwa0ydki7q1";
+      sha256 = "1844j58cdg2q6g0rqfwg4rrambnhf059h4yg9rfmrbrcs60kskx9";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.3.2";
   };
   ffi-rzmq-core = {
     dependencies = ["ffi"];
@@ -1120,10 +1119,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dpqlsfv44bxzixh386qwz28wfynhwkp9qz97b6zjx4wjh4fg4gj";
+      sha256 = "0nbzvmg3aa0r9iadkpiz3fzr1dnv09vx6bi7cc5wgpg13d3i3rbl";
       type = "gem";
     };
-    version = "4.2.0";
+    version = "4.2.1";
   };
   gdk_pixbuf2 = {
     dependencies = ["gio2"];
@@ -1131,10 +1130,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hmfbddsjj7x5i2aj0i8l9jhp19lrcm4d6q4xqm7gyjnrs98v5q5";
+      sha256 = "1lrs0g6s5l050ld8mfjscijg0iycx9hq2wgdwc76y3nm47gs78na";
       type = "gem";
     };
-    version = "4.2.0";
+    version = "4.2.1";
   };
   gemoji = {
     groups = ["default"];
@@ -1152,10 +1151,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ij82r1b1190vry1xwqh7nz4qasdh2fppmx93nrv1jam4hy0gm7k";
+      sha256 = "1zpz71ybilrk7i9ym7jx807fza22sdjm18l6qydds3gm7bpybvdz";
       type = "gem";
     };
-    version = "4.2.0";
+    version = "4.2.1";
   };
   git = {
     dependencies = ["addressable" "rchardet"];
@@ -1174,10 +1173,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0iddm5yxs6js6xdvhb4jwdyqvyngkwawjqdc4fhhyjzrfzrwdg1k";
+      sha256 = "0608fr1ggyrk2f6pfc4zwy9i9prkxx0dsfb4k9j8s249kczqmlbr";
       type = "gem";
     };
-    version = "229";
+    version = "231";
   };
   github-pages-health-check = {
     dependencies = ["addressable" "dnsruby" "octokit" "public_suffix" "typhoeus"];
@@ -1206,10 +1205,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05qg16pxnzshgzgfky83b948r9d03lachq2clm8qrsj4c202smq3";
+      sha256 = "0lbvk3jz21kw811hn411xvql7l14bb8kfnqc10inkkyli3a2ifv3";
       type = "gem";
     };
-    version = "4.2.0";
+    version = "4.2.1";
   };
   globalid = {
     dependencies = ["activesupport"];
@@ -1228,10 +1227,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03n47jlyqygxyc5fsf39szfswlcnnmmwqly12cqjqfmk6skvfhc5";
+      sha256 = "08ysbhg8njdf1sb4mmx90baswqbya5ihw8kyym3rw43sl2gswnsk";
       type = "gem";
     };
-    version = "4.2.0";
+    version = "4.2.1";
   };
   gpgme = {
     dependencies = ["mini_portile2"];
@@ -1250,10 +1249,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15jk1q82g6jfswmz4b20kg2nxq4yc8wpidn9si9j7n0haxph3vxy";
+      sha256 = "1hk0anmyczicvjzri5pdj6f65ibf1pyarychayhzxjl50n9sf1wd";
       type = "gem";
     };
-    version = "4.2.0";
+    version = "4.2.1";
   };
   haml = {
     dependencies = ["temple" "thor" "tilt"];
@@ -1332,10 +1331,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y55dx25l3wwc025mwl6jsbcsqrm30gs2d2pxnaxg07yh22ckq4x";
+      sha256 = "0nrqvgja3pbmz4v27zc5ir58sk4mv177nq7hlssy2smawbvhhgdl";
       type = "gem";
     };
-    version = "1.4.2";
+    version = "1.4.3";
   };
   http = {
     dependencies = ["addressable" "base64" "http-cookie" "http-form_data" "llhttp-ffi"];
@@ -1405,10 +1404,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
+      sha256 = "0lbm33fpb3w06wd2231sg58dwlwgjsvym93m548ajvl6s3mfvpn7";
       type = "gem";
     };
-    version = "1.14.1";
+    version = "1.14.4";
   };
   iconv = {
     groups = ["default"];
@@ -1457,10 +1456,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f8wms39b7z83x6pflq2sjh3sikpk0xjh680igbpkp1j3pl0fpx0";
+      sha256 = "17ak21ybbprj9vg0hk8pb1r2yk9vlh50v9bdwh3qvlmpzcvljqq7";
       type = "gem";
     };
-    version = "1.11.2";
+    version = "1.12.0";
   };
   jaro_winkler = {
     groups = ["default"];
@@ -1489,10 +1488,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zsy65w10bnqm0pla94xfj4a01d9ji82sbbbl4ly2g103j9hnpjx";
+      sha256 = "1w36kbn1ijbqfn33xbx14rpzr6adgiw2ip5g95jrzi1nh3qraan2";
       type = "gem";
     };
-    version = "3.9.4";
+    version = "3.9.5";
   };
   jekyll-archives = {
     dependencies = ["jekyll"];
@@ -1675,10 +1674,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0d88azs1cfw0y74yiw218dk3pmsb4i5srm608lc7bbpf931m87l3";
+      sha256 = "0vfx90ajxyj24lz406k3pqknlbzy8nqs7wpz0in4ps9rggsh24yi";
       type = "gem";
     };
-    version = "0.7.0";
+    version = "0.6.1";
   };
   jekyll-remote-theme = {
     dependencies = ["addressable" "jekyll" "jekyll-sass-converter" "rubyzip"];
@@ -1974,25 +1973,26 @@
     version = "1.0.7";
   };
   jwt = {
+    dependencies = ["base64"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16z11alz13vfc4zs5l3fk6n51n2jw9lskvc4h4prnww0y797qd87";
+      sha256 = "02m3vza49pb9dirwpn8vmzbcypi3fc6l3a9dh253jwm1121g7ajb";
       type = "gem";
     };
-    version = "2.7.1";
+    version = "2.8.1";
   };
   kdl = {
-    dependencies = ["simpleidn"];
+    dependencies = ["base64" "bigdecimal" "simpleidn"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zr1b2s5gmxjzca24v15isjfs24nkv8iy7b65bw8q1aw6cnj32mh";
+      sha256 = "02kpqgss9psmxb1c2gzq6l5i41ykskwqiacppqdm86ky0f88j6cb";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.0.4";
   };
   keystone-engine = {
     dependencies = ["ffi"];
@@ -2033,10 +2033,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094yfjjv5p3whvf4vhqg5yy87dqk1n2hhnvqb51l1h6p0a77r0sk";
+      sha256 = "00sms1hsjsw3w9a7z4qn3sl1dhkjg9wfnfmjbxk6n5glz7ymfwnj";
       type = "gem";
     };
-    version = "1.7.5";
+    version = "1.7.8";
   };
   language_server-protocol = {
     groups = ["default"];
@@ -2063,10 +2063,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p6hdglfjx9r0rycn2fb0zjg2czl72nyfx8mmrf20w4qmslj0fj9";
+      sha256 = "1pib5bfwg684f1sczrhf3lzk9hb24dhsw5cmlnxm4rq66sx0slss";
       type = "gem";
     };
-    version = "5.0.2";
+    version = "5.0.3";
   };
   link-header-parser = {
     groups = ["default"];
@@ -2158,10 +2158,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kky3yiwagsk8gfbzn3mvl2fxlh3b39v6nawzm4wpjs6xxvvc4x0";
+      sha256 = "190n2mk8m1l708kr88fh6mip9sdsh339d2s6sgrik3sbnvz4jmhd";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.0.4";
   };
   markaby = {
     dependencies = ["builder"];
@@ -2220,10 +2220,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zpn5brxdf5akh7ij511bkrd30fxd7697shmxxszahqj9m62zvn5";
+      sha256 = "00x7w5xqsj9m33v3vkmy23wipkkysafksib53ypzn27p5g81w455";
       type = "gem";
     };
-    version = "3.2024.0206";
+    version = "3.2024.0305";
   };
   mini_magick = {
     groups = ["default"];
@@ -2271,10 +2271,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0667vf0zglacry87nkcl3ns8421aydvz71vfa3g3yjhiq8zh19f5";
+      sha256 = "07lq26b86giy3ha3fhrywk9r1ajhc2pm2mzj657jnpnbj1i6g17a";
       type = "gem";
     };
-    version = "5.22.2";
+    version = "5.22.3";
   };
   msgpack = {
     groups = ["default"];
@@ -2577,10 +2577,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n41ywk853l3arii0ksnbwhzncy16y6n8kfxvd548433gx2355qw";
+      sha256 = "1lpl4klg2f1rq8rpsgkmjndkpf4zh2b8jjwryi8s3s5w9lb3314y";
       type = "gem";
     };
-    version = "4.2.0";
+    version = "4.2.1";
   };
   parallel = {
     groups = ["default"];
@@ -2660,10 +2660,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pfj771p5a29yyyw58qacks464sl86d5m3jxjl5rlqqw2m3v5xq4";
+      sha256 = "071b55bhsz7mivlnp2kv0a11msnl7xg5awvk8mlflpl270javhsb";
       type = "gem";
     };
-    version = "1.5.4";
+    version = "1.5.6";
   };
   pkg-config = {
     groups = ["default"];
@@ -2711,10 +2711,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19pby3y7by0v9glfw26kc6kd6g324aq1n8p1dw95y9k7nnjlx6xn";
+      sha256 = "0pgxgng905jbhp0pr54w4w2pr4nqcq80ijj48204bj4x4nigj8ji";
       type = "gem";
     };
-    version = "0.21.0";
+    version = "0.24.0";
   };
   pry = {
     dependencies = ["coderay" "method_source"];
@@ -2807,10 +2807,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b3ybjvj5mzj178y6r1xd4q34aj8hgpgyqxva6mlzwwdprzln47m";
+      sha256 = "1m76b32zh6mgql7mzfx36rijnygjl2nzkdj909mn87isfgzdf9jl";
       type = "gem";
     };
-    version = "3.0.9";
+    version = "3.0.9.1";
   };
   rack-protection = {
     dependencies = ["base64" "rack"];
@@ -2862,10 +2862,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1313wjykqqgvh3023rnmrwksgbl2g45p5h75s682abpj89y2bvaf";
+      sha256 = "185zq5r9g56sfks852992bm0xf2vm9569jyiz5jyww3vx1jply1d";
       type = "gem";
     };
-    version = "7.1.3";
+    version = "7.1.3.2";
   };
   rails-dom-testing = {
     dependencies = ["activesupport" "minitest" "nokogiri"];
@@ -2895,10 +2895,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19jh5gwjz11rrzjfncxcrmyqzza95k2skdcpknd26vr9jffca7bs";
+      sha256 = "0435sfvhhrd4b2ic9b4c2df3i1snryidx7ry9km4805rpxfdbz2r";
       type = "gem";
     };
-    version = "7.1.3";
+    version = "7.1.3.2";
   };
   rainbow = {
     groups = ["default"];
@@ -2999,21 +2999,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xsv742kwq1bdxmsgb7v9kspgvwh4msabiz1lspl4ln4pxnd50l9";
+      sha256 = "1lx4wsrk7gd6733sjgrkwmj1x9jalnbfppawqfk0ljnw95c0557c";
       type = "gem";
     };
-    version = "2.8.0";
+    version = "2.9.0";
   };
   red-colors = {
-    dependencies = ["matrix"];
+    dependencies = ["json" "matrix"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xqnbbcqg55abn985m716l6n5izyaaf4zdllhc8095cfqz2fbjcx";
+      sha256 = "16lj0h6gzmc07xp5rhq5b7c1carajjzmyr27m96c99icg2hfnmi3";
       type = "gem";
     };
-    version = "0.3.0";
+    version = "0.4.0";
   };
   redcarpet = {
     groups = ["default"];
@@ -3042,10 +3042,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1afyfxg5kxmrxsbsvqvk9zmqdi85wa0v164a3x3dwb3x03plp06y";
+      sha256 = "1swaj27qiix9r92hcvjxf6fzd817i7lfgfg2r50ifs41407rzhq3";
       type = "gem";
     };
-    version = "0.19.1";
+    version = "0.21.0";
   };
   redis-rack = {
     dependencies = ["rack-session" "redis-store"];
@@ -3085,10 +3085,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fhwdmw89zqb1fdxcd6lr57zabbfi08z8j6kqwngak0xnxi2j10l";
+      sha256 = "1zx7sdh11p4z77c3f9ka6f065mgl6xwbamnsq4rrgwk310qhn41n";
       type = "gem";
     };
-    version = "0.4.2";
+    version = "0.4.3";
   };
   rest-client = {
     dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"];
@@ -3128,10 +3128,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qnpp0alpr7ibqzx9av3pz5kqa47i0s65sjl47m6hbc5r3nrh8ly";
+      sha256 = "1blqchqfbvqrwn9izzqf8wzkgfw6zafyrsl2ksg1w1d9qxj0c15s";
       type = "gem";
     };
-    version = "5.4.1";
+    version = "5.4.4";
   };
   rouge = {
     groups = ["default"];
@@ -3202,10 +3202,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0msjfw99dkbvmviv3wsid4k9h1prdgq7pnm52dcyf362p19mywhf";
+      sha256 = "03z7gpqz5xkw9rf53835pa8a9vgj4lic54rnix9vfwmp2m7pv1s8";
       type = "gem";
     };
-    version = "3.13.0";
+    version = "3.13.1";
   };
   rubocop = {
     dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
@@ -3213,10 +3213,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0v67rgbhzanbf02fy5xasaxgmhxghlqb2cxjvbplinm2zfzs0380";
+      sha256 = "0daamn13fbm77rdwwa4w6j6221iq6091asivgdhk6n7g398frcdf";
       type = "gem";
     };
-    version = "1.60.2";
+    version = "1.62.1";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -3224,10 +3224,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cs9cc5p9q70valk4na3lki4xs88b52486p2v46yx3q1n5969bgs";
+      sha256 = "1v3q8n48w8h809rqbgzihkikr4g3xk72m1na7s97jdsmjjq6y83w";
       type = "gem";
     };
-    version = "1.30.0";
+    version = "1.31.2";
   };
   rubocop-performance = {
     dependencies = ["rubocop" "rubocop-ast"];
@@ -3278,10 +3278,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qvdm19n2jmw2l9c8yvw6k4zcjjaz22bnlw743y2w6z6r2h7jzdk";
+      sha256 = "0scavp3jlgzbg7bh6y5rd110aak03l9zw56smazahq3lcjxgfc49";
       type = "gem";
     };
-    version = "0.14.0";
+    version = "0.14.5";
   };
   ruby-lxc = {
     groups = ["default"];
@@ -3319,10 +3319,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16vkhdb9ss8z4alg46n675n4z1115g8akyg44nzkp8vpxksgrr1v";
+      sha256 = "0yycazz91ywwwv2iz3fgjkfn1z687bl4z5jjn7cwmky507b43652";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.1";
   };
   ruby2_keywords = {
     groups = ["default"];
@@ -3457,10 +3457,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08xi8cly6w6082ycxp28q04i2pfsmcx41hfdw64kkac95izpi1px";
+      sha256 = "0qs5mrjsr2hs03f2c1a611qrvxsk8pqlmhymxgwccwvr6arh3iby";
       type = "gem";
     };
-    version = "0.21.2";
+    version = "0.21.3";
   };
   sequel = {
     dependencies = ["bigdecimal"];
@@ -3468,10 +3468,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fnpcsppl27f1wn3niazqcgy6i5900c1cjk2lnhyal6brxnk0sq4";
+      sha256 = "186wldacv9zdd3bxi85lika9hz6ac09r7kp1h4cjv23436qmsjq2";
       type = "gem";
     };
-    version = "5.77.0";
+    version = "5.78.0";
   };
   sequel_pg = {
     dependencies = ["pg" "sequel"];
@@ -3604,10 +3604,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m6gpmhy25zv8d2r3vy9dcmnbgccv3y62anmwrsjv0ykl5sqkapb";
+      sha256 = "1xnq3zdrnwhncfxvrhvkil26dq9v1h196i54l936l36zxdhnf383";
       type = "gem";
     };
-    version = "0.5.11247";
+    version = "0.5.11292";
   };
   sqlite3 = {
     dependencies = ["mini_portile2"];
@@ -3698,10 +3698,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hx77jxkrwi66yvs10wfxqa8s25ds25ywgrrf66acm9nbfg7zp0s";
+      sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.3.1";
   };
   thrift = {
     groups = ["default"];
@@ -3988,10 +3988,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "013yrnwx1zhzhn1fnc19zck22a1qgimsaglp2iwgf5bz9l8h93js";
+      sha256 = "1r0b8w58p7gy06wph1qdjv2p087hfnmhd9jk23vjdj803dn761am";
       type = "gem";
     };
-    version = "0.9.34";
+    version = "0.9.36";
   };
   zeitwerk = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/top-level/stage.nix b/nixpkgs/pkgs/top-level/stage.nix
index d8bf53af86aa..3b84026b4696 100644
--- a/nixpkgs/pkgs/top-level/stage.nix
+++ b/nixpkgs/pkgs/top-level/stage.nix
@@ -110,8 +110,9 @@ let
   trivialBuilders = self: super:
     import ../build-support/trivial-builders {
       inherit lib;
+      inherit (self) config;
       inherit (self) runtimeShell stdenv stdenvNoCC;
-      inherit (self.pkgsBuildHost) shellcheck-minimal;
+      inherit (self.pkgsBuildHost) jq shellcheck-minimal;
       inherit (self.pkgsBuildHost.xorg) lndir;
     };
 
diff --git a/nixpkgs/pkgs/top-level/unixtools.nix b/nixpkgs/pkgs/top-level/unixtools.nix
index bcbbd6799d88..454c4802dc91 100644
--- a/nixpkgs/pkgs/top-level/unixtools.nix
+++ b/nixpkgs/pkgs/top-level/unixtools.nix
@@ -10,9 +10,14 @@
 # instance, if your program needs to use "ps", just list it as a build
 # input, not "procps" which requires Linux.
 
-with lib;
-
 let
+  inherit (lib)
+    getBin
+    getOutput
+    mapAttrs
+    platforms
+    ;
+
   version = "1003.1-2008";
 
   singleBinary = cmd: providers: let
@@ -23,7 +28,7 @@ let
       meta = {
         mainProgram = cmd;
         priority = 10;
-        platforms = lib.platforms.${stdenv.hostPlatform.parsed.kernel.name} or lib.platforms.all;
+        platforms = platforms.${stdenv.hostPlatform.parsed.kernel.name} or platforms.all;
       };
       passthru = { inherit provider; };
       preferLocalBuild = true;
@@ -187,7 +192,7 @@ let
 
   # Compatibility derivations
   # Provided for old usage of these commands.
-  compat = with bins; lib.mapAttrs makeCompat {
+  compat = with bins; mapAttrs makeCompat {
     procps = [ ps sysctl top watch ];
     util-linux = [ fsck fdisk getopt hexdump mount
                   script umount whereis write col column ];